Hi everyone,
I am using GEMS for x86, and my simulation crashed in
Sequencer::isReady:
// LUKE - disallow more than one request type per address
// INVARIANT: at most one request type per address, per
processor
int smt_threads = RubyConfig::numberofSMTThreads();
for(int p=0; p < smt_threads; ++p){
if(
m_writeRequestTable_ptr[p]->exist(line_address(request.getAddress()))
||
m_readRequestTable_ptr[p]->exist(line_address(request.getAddress()))
){
cout << "OUTSTANDING REQUEST EXISTS " << p
<< " VER " << m_version << endl; //binh: bug is
here
//printProgress(cout);
return false;
}
}
Is there any reason why we have to keep the invariant: one request
type per address above? To me, it is possible to have multiple
requests per address in the cache...
Thank you in advance for your time and help,
Binh
|
|