Re: [Gems-users] interaction with cache controller


Date: Thu, 05 Oct 2006 23:20:20 -0400
From: Greg Byrd <gbyrd@xxxxxxxx>
Subject: Re: [Gems-users] interaction with cache controller

Don't know what you mean by "observing the address bus," but the
cache model certainly sees every load/store address.  So if you can
do this through memory-mapped locations, it would be fairly easy
to look for these addresses in the cache.
Another approach would be to a ruby command that can be
invoked from the Simics command line (similar to ruby0.clear-stats).
Then you could setup a callback function for magic instructions
(see Simics manual) that invokes that command.  The tricky part
here is passing the argument through the magic instruction.
(Presumably, you want to pass in a prefetch address or something.)
Again, read the Simics documentation to learn how to do this -- it's
a Simics issue, not a GEMS issue.

Yes, you can read processor registers from Ruby, using the
Simics API.

I have no idea "how much work is involved,"  but you can start
by looking at the ruby/system/Sequencer.C code to see how memory
requests from the processor are relayed to the cache model.

...gb



Dave Z. wrote:
Could you please help me with the following issues? Your help will be greatly appreciated.

Regards,

Dave

----- Original Message ----
From: Dave Z. <zhu_dave@xxxxxxxxx>
To: gems Users <gems-users@xxxxxxxxxxx>
Sent: Thursday, October 5, 2006 10:25:06 AM
Subject: [Gems-users] interaction with cache controller

Hello All,

I would like to interact with Ruby's cache controller
dynamically. For example, by sending flags to the
cache controller so that it takes certain
actions/transitions. My main goal is to provide
prefetching hints from the program itself to the cache
controller. One way to establish interaction between
programs and Ruby is to use magic instructions, but I
believe this will not work in my case as magic
instructions are dynamic and the cache controller's
behavior is generated at compile time. Is there a way
to establish such interaction?

Another way to modify the cache controller behavior at
run time could involve monitoring the address bus and
checking to see if certain registers/memory locations
have been accessed. Is it possible to monitor the
address bus and add this functionality to the cache
controller? If yes, can you give me a sense of how
much work is involved and where to start?

Also, is it possible to access registers via Ruby or
should this be done at a lower level? Thank you very
much.

Regards,

Dave

__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com _______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/gems-users
Use Google to search the GEMS Users mailing list by adding "site:https://lists.cs.wisc.edu/archive/gems-users/";; to your search.







_______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/gems-users
Use Google to search the GEMS Users mailing list by adding "site:https://lists.cs.wisc.edu/archive/gems-users/"; to your search.


[← Prev in Thread] Current Thread [Next in Thread→]