Class simtix::AtomicLoadStoreUnit
ClassList > simtix > AtomicLoadStoreUnit
Inherits the following classes: simtix::BaseLoadStoreUnit, simtix::sim::Clocked
Classes
Type | Name |
---|---|
struct | Request |
Public Types inherited from simtix::BaseLoadStoreUnit
Type | Name |
---|---|
typedef mem::MemoryInterface::OnResp | OnResp |
typedef mem::MemoryInterface::Payload | Payload |
typedef mem::MemoryInterface::RespStatus | RespStatus |
Public Functions
Type | Name |
---|---|
AtomicLoadStoreUnit (const std::string & name, uint32_t num_outstanding_requests, const ArchParam & p=kDefaultArchParam) |
|
virtual bool | Busy () override |
virtual std::optional< InstrPtr > | Get () override |
virtual void | PushReadRequest (uint32_t tid, Payload payload, OnResp on_resp) override |
virtual void | PushWriteRequest (uint32_t tid, Payload payload, OnResp on_resp) override |
virtual bool | Put (InstrPtr instr) override |
~AtomicLoadStoreUnit () |
Public Functions inherited from simtix::BaseLoadStoreUnit
Type | Name |
---|---|
virtual void | AttachDMem (mem::MemoryInterface * dmem_port) |
BaseLoadStoreUnit (const std::string & name, const ArchParam & p=kDefaultArchParam) |
|
virtual void | PushReadRequest (uint32_t tid, Payload payload, OnResp on_resp) = 0 |
virtual void | PushWriteRequest (uint32_t tid, Payload payload, OnResp on_resp) = 0 |
Public Functions inherited from simtix::BaseFunctionUnit
Type | Name |
---|---|
virtual bool | Busy () = 0 |
virtual std::optional< InstrPtr > | Get () = 0 |
virtual bool | Put (InstrPtr instr) = 0 |
virtual | ~BaseFunctionUnit () = default |
Public Functions inherited from simtix::sim::Clocked
Type | Name |
---|---|
Clocked (const std::string & name, TickPri pri=kDefaultPri) Constructor for clocled. |
|
const std::string & | name () const Get the name of the clocked object. |
virtual | ~Clocked () |
Protected Attributes
Type | Name |
---|---|
std::vector< Request > | outstanding_requests_ |
bool | requesting_ = false |
Protected Attributes inherited from simtix::BaseLoadStoreUnit
Type | Name |
---|---|
mem::MemoryInterface * | dmem_port_ = nullptr |
Protected Attributes inherited from simtix::sim::Clocked
Type | Name |
---|---|
std::string | name_ |
TickPri | pri_ |
Protected Static Attributes inherited from simtix::sim::Clocked
Type | Name |
---|---|
bool | busy_ = true |
std::map< TickPri, std::vector< Clocked * > > | clocked_objs_map_ |
uint64_t | cur_tick_ = 0 |
Protected Functions
Type | Name |
---|---|
virtual bool | HasPendingTasks () override Checks if any registered clocked objects have pending tasks at the current tick. |
virtual void | Tick () override Global tick function that advances the simulation by one cycle. |
Protected Functions inherited from simtix::sim::Clocked
Type | Name |
---|---|
virtual bool | HasPendingTasks () = 0 Checks if any registered clocked objects have pending tasks at the current tick. |
virtual void | Tick () = 0 Global tick function that advances the simulation by one cycle. |
Protected Static Functions inherited from simtix::sim::Clocked
Type | Name |
---|---|
void | Register (Clocked * c) Register a clocked object to participate in tick-driven simulation. |
void | Unregister (Clocked * c) Unregister a clocked object from tick-driven simulation. |
Public Functions Documentation
function AtomicLoadStoreUnit
inline explicit simtix::AtomicLoadStoreUnit::AtomicLoadStoreUnit (
const std::string & name,
uint32_t num_outstanding_requests,
const ArchParam & p=kDefaultArchParam
)
function Busy
Implements simtix::BaseFunctionUnit::Busy
function Get
Implements simtix::BaseFunctionUnit::Get
function PushReadRequest
virtual void simtix::AtomicLoadStoreUnit::PushReadRequest (
uint32_t tid,
Payload payload,
OnResp on_resp
) override
Implements simtix::BaseLoadStoreUnit::PushReadRequest
function PushWriteRequest
virtual void simtix::AtomicLoadStoreUnit::PushWriteRequest (
uint32_t tid,
Payload payload,
OnResp on_resp
) override
Implements simtix::BaseLoadStoreUnit::PushWriteRequest
function Put
Implements simtix::BaseFunctionUnit::Put
function ~AtomicLoadStoreUnit
Protected Attributes Documentation
variable outstanding_requests_
variable requesting_
Protected Functions Documentation
function HasPendingTasks
Checks if any registered clocked objects have pending tasks at the current tick.
Returns:
True if there are pending tasks, false otherwise.
Implements simtix::sim::Clocked::HasPendingTasks
function Tick
Global tick function that advances the simulation by one cycle.
Call this function to drive all registered tick-driven objects.
Implements simtix::sim::Clocked::Tick
The documentation for this class was generated from the following file projects/simtix/src/simtix/sm/fu/lsu/atomic.h