Skip to content

Class simtix::pipelined::FetchBuf

ClassList > simtix > pipelined > FetchBuf

Implement a buffer for fetching instructions.

  • #include <fetch_buf.h>

Classes

Type Name
struct Entry
Represent a single fetch buffer entry containing fetched instructions and control data.

Public Functions

Type Name
void Allocate (Warp * warp, uint64_t fetch_addr, std::optional< uint32_t > ssw)
Allocate an fetch buffer entry.
FetchBuf (const PipelinedSM::Param & p)
Construtor of Fetch Buffer.
Entry * GetPendingFetchReq ()
Retrieve the first pending fetch request.
Entry * GetPendingFetchResp ()
Retrieve the first pending fetch response.
void ServePendingFetchReq ()
Notify that the first pending fetch request is served.
void ServePendingFetchResp ()
Notify that the first pending fetch response is served.
bool empty () const
bool full () const

Protected Attributes

Type Name
std::vector< Entry > buf_
sim::SizedQueue< uint32_t > free_ids_
sim::SizedQueue< uint32_t > pending_req_ids_
sim::SizedQueue< uint32_t > pending_resp_ids_

Public Functions Documentation

function Allocate

Allocate an fetch buffer entry.

void simtix::pipelined::FetchBuf::Allocate (
    Warp * warp,
    uint64_t fetch_addr,
    std::optional< uint32_t > ssw
) 

Parameters:

  • warp Pointer to the warp for the fetch entry.
  • fetch_addr The address for the fetch entry.
  • ssw Spatial sub-warp ID.

function FetchBuf

Construtor of Fetch Buffer.

explicit simtix::pipelined::FetchBuf::FetchBuf (
    const PipelinedSM::Param & p
) 

Parameters:

  • p Pipeline configuration parameters from pipeline.h.

function GetPendingFetchReq

Retrieve the first pending fetch request.

Entry * simtix::pipelined::FetchBuf::GetPendingFetchReq () 

Returns:

The first pending fetch request if present, otherwise nullptr.


function GetPendingFetchResp

Retrieve the first pending fetch response.

Entry * simtix::pipelined::FetchBuf::GetPendingFetchResp () 

Returns:

The first pending fetch response if present, otherwise nullptr.


function ServePendingFetchReq

Notify that the first pending fetch request is served.

void simtix::pipelined::FetchBuf::ServePendingFetchReq () 


function ServePendingFetchResp

Notify that the first pending fetch response is served.

void simtix::pipelined::FetchBuf::ServePendingFetchResp () 


function empty

inline bool simtix::pipelined::FetchBuf::empty () const

function full

inline bool simtix::pipelined::FetchBuf::full () const

Protected Attributes Documentation

variable buf_

std::vector<Entry> simtix::pipelined::FetchBuf::buf_;

variable free_ids_

sim::SizedQueue<uint32_t> simtix::pipelined::FetchBuf::free_ids_;

variable pending_req_ids_

sim::SizedQueue<uint32_t> simtix::pipelined::FetchBuf::pending_req_ids_;

variable pending_resp_ids_

sim::SizedQueue<uint32_t> simtix::pipelined::FetchBuf::pending_resp_ids_;


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