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
Public Functions Documentation
function Assign
Implements simtix::Instr::Assign
function CanCommit
Implements simtix::Instr::CanCommit
function CanExecute
Implements simtix::Instr::CanExecute
function CanIssue
Implements simtix::Instr::CanIssue
function CanRetire
Implements simtix::Instr::CanRetire
function Commit
Implements simtix::Instr::Commit
function Decode
Implements simtix::Instr::Decode
function Execute
Implements simtix::Instr::Execute
function Issue
Implements simtix::Instr::Issue
function OperandCollect
Implements simtix::Instr::OperandCollect
function Reset
Implements simtix::Instr::Reset
function exception_valid
Implements simtix::Instr::exception_valid
Public Static Functions Documentation
function DecodeCSR
function DecodeUimm
Protected Attributes Documentation
variable committed_
variable csr_
variable op_
variable rd_data_
variable rs1_data_
variable rs1_data_ready_
variable uimm_
Protected Functions Documentation
function InstrSystem
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