----- Original Message -----
Sent: Monday, November 30, 2009 3:32 PM
Subject: questions about how to modify the
makeRequest interface function
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