gem5 v24.0.0.0
Loading...
Searching...
No Matches
gem5::o3::FUPool::FUIdxQueue Class Reference

Class that implements a circular queue to hold FU indices. More...

Public Member Functions

 FUIdxQueue ()
 Constructs a circular queue of FU indices.
 
void addFU (int fu_idx)
 Adds a FU to the queue.
 
int getFU ()
 Returns the index of the FU at the head of the queue, and changes the index to the next element.
 

Private Attributes

int idx
 Circular queue index.
 
int size
 Size of the queue.
 
std::vector< int > funcUnitsIdx
 Queue of FU indices.
 

Detailed Description

Class that implements a circular queue to hold FU indices.

The hope is that FUs that have been just used will be moved to the end of the queue by iterating through it, thus leaving free units at the head of the queue.

Definition at line 98 of file fu_pool.hh.

Constructor & Destructor Documentation

◆ FUIdxQueue()

gem5::o3::FUPool::FUIdxQueue::FUIdxQueue ( )
inline

Constructs a circular queue of FU indices.

Definition at line 102 of file fu_pool.hh.

Member Function Documentation

◆ addFU()

void gem5::o3::FUPool::FUIdxQueue::addFU ( int fu_idx)
inline

Adds a FU to the queue.

Definition at line 59 of file fu_pool.cc.

References funcUnitsIdx, and size.

Referenced by gem5::o3::FUPool::FUPool().

◆ getFU()

int gem5::o3::FUPool::FUIdxQueue::getFU ( )
inline

Returns the index of the FU at the head of the queue, and changes the index to the next element.

Definition at line 66 of file fu_pool.cc.

References gem5::o3::FUPool::size().

Referenced by gem5::o3::FUPool::getUnit().

Member Data Documentation

◆ funcUnitsIdx

std::vector<int> gem5::o3::FUPool::FUIdxQueue::funcUnitsIdx
private

Queue of FU indices.

Definition at line 122 of file fu_pool.hh.

Referenced by addFU().

◆ idx

int gem5::o3::FUPool::FUIdxQueue::idx
private

Circular queue index.

Definition at line 116 of file fu_pool.hh.

◆ size

int gem5::o3::FUPool::FUIdxQueue::size
private

Size of the queue.

Definition at line 119 of file fu_pool.hh.

Referenced by addFU().


The documentation for this class was generated from the following files:

Generated on Tue Jun 18 2024 16:24:20 for gem5 by doxygen 1.11.0