Hello everyone,

My name is Jiyong Yu, and I am right now using the gem5 Ruby cache, 
specifically MESI_Three_Level.

My question is, in gem5 Ruby cache, especially in MESI_Two_Level_xxx.sm or 
MESI_Three_Level_xxx.sm, for each transition, it looks like
Transition {I, Load, IS} {
              allocateDCacheBlock;
              …..
}

But in MOSEI protocol that gem5 provides, for each transition, it looks like:
Transition(I, C0_Load_L1_Miss, IE0S) {L1D0TagArrayRead, L2TagArrayRead} {
              ……
}

There is a significant difference between MESI code and MOSEI code: in MOSEI 
code, “XXTagArrayRead” etc. functions appear in each transition. They call the 
CacheMemory::checkResourceAvailable and CacheMemory::recordRequest functions to 
monitor the cache access latency. In MESI code, these functions are missing. 
Only the message traffic latency is counted with request_latency or 
response_latency in enqueue() functions.

When I set the TagArray access latency and DataArray access latency for cache 
levels in configuration files, these variables are only used in 
CacheMemory::checkResourceAvailable and CacheMemory::recordRequest. So without 
adding the “XXTagArrayRead” etc. functions, we will never count the actual 
cache access latency from them.

In gem5 tutorial 
http://learning.gem5.org/book/part3/MSI/cache-actions.html?highlight=latency,  
it says “The enqueue block takes three parameters, the message buffer to send 
the message, the type of the message, and a latency. This latency (1 cycle in 
the example above and throughout this cache controller) is the cache latency.” 
Basically in MESI the latency of each request being served in the queue is the 
cache access latency.

My question is, why are these “L1DTagArrayRead” functions missing in the 
transition functions? And without it how should one simulate the cache timing 
properly (e.g. when he/she needs to measure the banking effect)? If I 
understand correctly the latency appears in the enqueue function are supposed 
to be the latency when the request/response is served, so treat them as cache 
access latency is quite inaccurate.

Thank you so much!

Best.
Jiyong Yu

_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to