Hi,
I just started working with GEMS, and was trying to understand in which
function the resource availability is checked and instructions
scheduled. Specifically, I am initially trying to count the number of
pipeline stalls caused due to the unavailability of 1. ROB entries and
2. Store queue entries.
Is this the the function where all of the resources are checked before
scheduling?
dynamic_inst_t *iwindow_t::scheduleInstruction( void )
{
// make sure instruction window is not full
if( rangeSubtract(m_last_scheduled, m_last_retired) >= (int32)
m_win_size)
return NULL;
// calculate the next slot in the window (wrap around)
m_last_scheduled = iwin_increment(m_last_scheduled);
// return instruction
return (m_window[m_last_scheduled]);
}
I was wondering where the load/store queue occupancy was checked. I
would appreciate any help.
thanks,
Aniket
|