Hi all,
I want to modify the makeRequest() function, which is the
interface function between functional module OPAL(simics) and memory module
RUBY. Here I would like to add a new field "access_seq" for
each "memop" instruction and pass that value to the RUBY and
SLICC protocol module so that the RUBY and the cache
controller will be aware of the sequence of any memop
instructions.
The makeRequest() function interface in RUBY module
is like this:
void OpalInterface::makeRequest(int
cpuNumber, la_t logicalAddr, pa_t
physicalAddr,
int requestSize, OpalMemop_t
typeOfRequest,
la_t virtualPC, int isPriv, int thread)
The modified version:
void OpalInterface::makeRequest(int cpuNumber,
la_t logicalAddr, pa_t
physicalAddr,
int requestSize, OpalMemop_t
typeOfRequest,
la_t virtualPC, int isPriv, int thread, int
access_seq)
Also, the makeRequest function interface in OPAL module is
modified accordingly:
rubycache_t: void
(*makeRequest)( int cpuNumber, la_t logicalAddr, pa_t
physicalAddr,
int requestSize, OpalMemop_t
typeOfRequest,
la_t virtualPC, int isPriv, int thread, int
access_seq);
There are also makeRequest() function instances within the
Ruby/Sequencer.C file. But the comments suggests that it was related with
SIMICS(I am running RUBY+OPAL).
I am not sure whether the modification
above would be right and I am looking forward
to your advices!
Any help will be appreciated!
Regards,
shuchang
|