Re: [Gems-users] How is ruby configured?


Date: Tue, 25 Jul 2006 15:07:00 +0200
From: "Daniele Bordes" <daniele.bordes@xxxxxxxxx>
Subject: Re: [Gems-users] How is ruby configured?
2006/7/25, mehmetderin.harmanci@xxxxxxx <mehmetderin.harmanci@xxxxxxx>:

 Hello,

   I'm a new GEMS user. I have a few question about the usage of ruby.

   1) Is the memory hierarchy configurable in ruby (e.g. can we design a
      system with private I & D L1 caches followed by a shared L2 cache
      (shared between L1 caches of all processors), similarlarly can we
      configure a system with private L1 and L2 caches for each processors?)
      If we can configure the systems how is it done? in rubyconfig.defaults?


You can configure memory parameters editing rubyconfig.defaults only
BEFORE compiling ruby;
if you use simics, you can change the parameters at run-time by using
simics commands like this ones:

ruby0.setparam L1_CACHE_ASSOC 12
ruby0.setparam g_NUM_PROCESSORS 4

and so on...

If you use the tester.exec, you can change only some parameters by
using some command line options: for instance:

tester.exec -p 8

which set g_NUM_PROCESSORS = 8

Take a look inside /GEMS/ruby/tester/test_framework.C:  you will find
all command line options you can use to change parameters; obviously,
you can add command line flags in test_framework.C and recompile ruby
and the tester.

    2) I compiled and finally managed to run ruby. However I'm not sure it
       works properly. Is there a way to test if it functions properly?
       (I compiled the protocol which is pointed in the Documentation -
        Quickstart page) Does the tester do this?


At first, I think you should read this:

http://www.cs.wisc.edu/gems/doc/wiki/moin.cgi/How_do_I_understand_a_Protocol

Tester.exec allows you to perform trace-driven simulations; the url
I've given shows you only two kind of memory operations:  data load
(LD) and data store (ST); to find other kind of possible operations, I
think you should find a file containing the definition of
"string_to_CacheRequestType" function; this function is called in
TraceRecord::input, and is used to "interpret" the operations (which
could be LD, ST and many others...) you specify in the trace file.

    3) For measuring average memory request latency do we need to add some
       extra code or is this already given in the statistics created by
       ruby0.dump-stats (I looked into the file but there are many
       statistics that I'm not sure of).


Well, I think you don't need to add extra code, but I'm not sure; try
to look inside output files and search for "latency".

I hope this information are useful for you; well, this is all I know,
surely Gems's Authors will be more and more accurate.
[← Prev in Thread] Current Thread [Next in Thread→]