Skip to content

Class simtix::InstrSystem

ClassList > simtix > InstrSystem

InstrSystem class handles the operations for instruction with SYSTEM.More...

  • #include <instr_system.h>

Inherits the following classes: simtix::Instr

Public Types

Type Name
typedef void(InstrSystem::*)() Op

Public Types inherited from simtix::Instr

See simtix::Instr

Type Name
enum uint8_t ExecutionUnit
enum uint8_t Opcode
Opcode definitions.

Public Functions

Type Name
virtual void Assign (const Instr * other) override
virtual bool CanCommit () override const
virtual bool CanExecute () override const
virtual bool CanIssue () override const
virtual bool CanRetire () override const
virtual void Commit () override
virtual void Decode () override
virtual void Execute () override
virtual void Issue () override
virtual void OperandCollect () override
virtual void Reset () override
virtual bool exception_valid () override const

Public Functions inherited from simtix::Instr

See simtix::Instr

Type Name
virtual void Assign (const Instr * other)
virtual bool CanCommit () const = 0
virtual bool CanExecute () const = 0
virtual bool CanIssue () const = 0
virtual bool CanRetire () const = 0
virtual void Commit () = 0
virtual void Decode ()
virtual void Execute () = 0
virtual void Issue ()
virtual void OperandCollect () = 0
virtual void Reset ()
virtual bool barrier_valid () const
virtual bool exception_valid () const
ExecutionUnit execution_unit () const
bool illegal () const
uint32_t iword () const
virtual bool may_change_ctrl_flow () const
uint8_t opcode () const
void set_ssw (std::optional< uint32_t > ssw)
uint32_t sswid () const
uint8_t tswid () const
uint32_t wid () const
uint64_t wpc () const

Public Static Functions

Type Name
uint16_t DecodeCSR (uint32_t iword)
uint64_t DecodeUimm (uint32_t iword)

Public Static Functions inherited from simtix::Instr

See simtix::Instr

Type Name
constexpr uint32_t BitMask (uint32_t width)
uint8_t DecodeFunct3 (uint32_t iword)
uint8_t DecodeFunct7 (uint32_t iword)
uint8_t DecodeOpcode (uint32_t iword)
uint8_t DecodeRd (uint32_t iword)
uint8_t DecodeRs1 (uint32_t iword)
uint8_t DecodeRs2 (uint32_t iword)

Protected Attributes

Type Name
bool committed_ = false
uint16_t csr_ = 0
Op op_ = nullptr
std::vector< int64_t > rd_data_
std::vector< int64_t > rs1_data_
bool rs1_data_ready_ = false
uint64_t uimm_ = 0

Protected Attributes inherited from simtix::Instr

See simtix::Instr

Type Name
std::vector< Thread * > active_threads_
ExecutionUnit execution_unit_ = kALU
uint8_t funct3_ = 0
uint8_t funct7_ = 0
bool illegal_ = false
uint32_t iword_
std::string mnemonic_
uint8_t opcode_ = 0
uint8_t rd_ = 0
uint8_t rs1_ = 0
uint8_t rs2_ = 0
std::optional< uint32_t > ssw_
uint8_t tswid_ = 0
Warp * warp_
uint64_t wpc_

Protected Functions

Type Name
InstrSystem (Warp * warp, uint32_t iword, uint64_t wpc)
virtual void Reinitialize (Warp * warp, uint32_t iword, uint64_t wpc) override

Protected Functions inherited from simtix::Instr

See simtix::Instr

Type Name
Instr (Warp * warp, uint32_t iword, uint64_t wpc)
virtual void Reinitialize (Warp * warp, uint32_t iword, uint64_t wpc)
virtual ~Instr () = default

Detailed Description

opcode. This class decodes and executes system-level instructions, such as reading and writing CSR and handling system calls, ensuring proper system-level control and operations.

Public Types Documentation

typedef Op

using simtix::InstrSystem::Op =  void (InstrSystem::*)();

Public Functions Documentation

function Assign

virtual void simtix::InstrSystem::Assign (
    const Instr * other
) override

Implements simtix::Instr::Assign


function CanCommit

inline virtual bool simtix::InstrSystem::CanCommit () override const

Implements simtix::Instr::CanCommit


function CanExecute

inline virtual bool simtix::InstrSystem::CanExecute () override const

Implements simtix::Instr::CanExecute


function CanIssue

virtual bool simtix::InstrSystem::CanIssue () override const

Implements simtix::Instr::CanIssue


function CanRetire

inline virtual bool simtix::InstrSystem::CanRetire () override const

Implements simtix::Instr::CanRetire


function Commit

virtual void simtix::InstrSystem::Commit () override

Implements simtix::Instr::Commit


function Decode

virtual void simtix::InstrSystem::Decode () override

Implements simtix::Instr::Decode


function Execute

virtual void simtix::InstrSystem::Execute () override

Implements simtix::Instr::Execute


function Issue

virtual void simtix::InstrSystem::Issue () override

Implements simtix::Instr::Issue


function OperandCollect

virtual void simtix::InstrSystem::OperandCollect () override

Implements simtix::Instr::OperandCollect


function Reset

virtual void simtix::InstrSystem::Reset () override

Implements simtix::Instr::Reset


function exception_valid

inline virtual bool simtix::InstrSystem::exception_valid () override const

Implements simtix::Instr::exception_valid


Public Static Functions Documentation

function DecodeCSR

static inline uint16_t simtix::InstrSystem::DecodeCSR (
    uint32_t iword
) 

function DecodeUimm

static inline uint64_t simtix::InstrSystem::DecodeUimm (
    uint32_t iword
) 

Protected Attributes Documentation

variable committed_

bool simtix::InstrSystem::committed_;

variable csr_

uint16_t simtix::InstrSystem::csr_;

variable op_

Op simtix::InstrSystem::op_;

variable rd_data_

std::vector<int64_t> simtix::InstrSystem::rd_data_;

variable rs1_data_

std::vector<int64_t> simtix::InstrSystem::rs1_data_;

variable rs1_data_ready_

bool simtix::InstrSystem::rs1_data_ready_;

variable uimm_

uint64_t simtix::InstrSystem::uimm_;

Protected Functions Documentation

function InstrSystem

simtix::InstrSystem::InstrSystem (
    Warp * warp,
    uint32_t iword,
    uint64_t wpc
) 

function Reinitialize

virtual void simtix::InstrSystem::Reinitialize (
    Warp * warp,
    uint32_t iword,
    uint64_t wpc
) override

Implements simtix::Instr::Reinitialize



The documentation for this class was generated from the following file projects/simtix/src/simtix/sm/instr_system.h