Class simtix::InstrLoad
ClassList > simtix > InstrLoad
InstrLoad handles the operations for instruction with LOAD opcode.More...
#include <instr_load.h>
Inherits the following classes: simtix::Instr
Public Types
Type | Name |
---|---|
typedef void(InstrLoad::*)() | 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 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 | access_fault_ = false |
std::vector< uint8_t > | buf_ |
bool | committed_ = false |
bool | executed_ = false |
uint64_t | fault_addr_ = 0 |
int64_t | imm_ = 0 |
uint32_t | num_pending_load_ = 0 |
Op | op_ = nullptr |
std::vector< int64_t > | rd_data_ |
std::vector< int64_t > | rs1_data_ |
bool | rs1_data_ready_ = false |
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 |
---|---|
InstrLoad (Warp * warp, uint32_t iword, uint64_t wpc) |
|
virtual void | Reinitialize (Warp * warp, uint32_t iword, uint64_t wpc) override |
void | VectorLoad () Do the load access on all active thread ids. |
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
The load instructions get the base addresses and offsets to calculate the load addresses, and then read the data from the addresses and store in the target registers.
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
Protected Attributes Documentation
variable access_fault_
variable buf_
variable committed_
variable executed_
variable fault_addr_
variable imm_
variable num_pending_load_
variable op_
variable rd_data_
variable rs1_data_
variable rs1_data_ready_
Protected Functions Documentation
function InstrLoad
function Reinitialize
Implements simtix::Instr::Reinitialize
function VectorLoad
Do the load access on all active thread ids.
The documentation for this class was generated from the following file projects/simtix/src/simtix/sm/instr_load.h