Skip to content

Class simtix::InstrFormosa

ClassList > simtix > InstrFormosa

InstrFormosa handles the operations for CUSTOM-1 opcode instructions.More...

  • #include <instr_formosa.h>

Inherits the following classes: simtix::Instr

Public Types

Type Name
typedef void(InstrFormosa::*)() 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 barrier_valid () override const
virtual bool may_change_ctrl_flow () 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 committed_ = false
Op op_ = nullptr

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
InstrFormosa (Warp * warp, uint32_t iword, uint64_t wpc)

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 Formosa instructions change the priority of threads and manage synchronization barriers. They are our customized extension for RISC-V SIMT processors.

Public Types Documentation

typedef Op

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

Public Functions Documentation

function Assign

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

Implements simtix::Instr::Assign


function CanCommit

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

Implements simtix::Instr::CanCommit


function CanExecute

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

Implements simtix::Instr::CanExecute


function CanIssue

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

Implements simtix::Instr::CanIssue


function CanRetire

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

Implements simtix::Instr::CanRetire


function Commit

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

Implements simtix::Instr::Commit


function Decode

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

Implements simtix::Instr::Decode


function Execute

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

Implements simtix::Instr::Execute


function Issue

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

Implements simtix::Instr::Issue


function OperandCollect

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

Implements simtix::Instr::OperandCollect


function Reset

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

Implements simtix::Instr::Reset


function barrier_valid

inline virtual bool simtix::InstrFormosa::barrier_valid () override const

Implements simtix::Instr::barrier_valid


function may_change_ctrl_flow

inline virtual bool simtix::InstrFormosa::may_change_ctrl_flow () override const

Implements simtix::Instr::may_change_ctrl_flow


Protected Attributes Documentation

variable committed_

bool simtix::InstrFormosa::committed_;

variable op_

Op simtix::InstrFormosa::op_;

Protected Functions Documentation

function InstrFormosa

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


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