Re: [Gems-users] LxCACHE_TRANSITIONS_PER_RUBY


Date: Tue, 24 Jul 2007 11:51:02 -0500 (CDT)
From: Mike Marty <mikem@xxxxxxxxxxx>
Subject: Re: [Gems-users] LxCACHE_TRANSITIONS_PER_RUBY

Ruby currently doesn't really model port contention in cache banks. It is possible to add this, but the default doesn't model it.

First, L1CACHE_TRANSITIONS_PER_RUBY_CYCLE is completely meaningless for the processor->cache ports because Ruby (usually) handles L1 hits without any transitions. You can use it to restrict the number of snoops the cache is able to handle per cycle. But only if the -cache.sm file does not use any zz_recycle* actions.

--Mike


Hi, Mike.
Thanks for your quick response.
I would like to keep my question for details.

// i.e. the number of ports to each controller
// L1cache is the sum of the L1I and L1D cache ports
For example, let's suppose that we have 2 ports(one input and one output) in
L1 cache. Then, should I set L1CACHE_TRANSITIONS_PER_RUBY to 2?
If it is the case, I think it might mean that mandatory queue will be search
twice in a cycle, and generate two requests with different addresses
individually at the same cycle.
Could you check if I go wrong? Thank you.


Regards,

Young





Well it determines how many transitions the L1 Controller will process
in a cycle.  For certain protocols, it can be used to approximate bank
contention.  However for any protocol that uses recycle, it is pretty
much meaningless and should probably be set to a high value.

It is specifically used in L1Cache_Controller::wakeup() in the generated
L1Cache_Wakeup.C file.

--Mike


Juyoung Jung wrote:
Dear Gems-Users,


Could anyone explain about what the variable
"L1CACHE_TRANSITIONS_PER_RUBY_CYCLE" in
ruby/config/rubyconfig.defaults means?
The comment in rubyconfig file says the below:

// Number of transitions each controller state machines can complete
per cycle
// i.e. the number of ports to each controller
// L1cache is the sum of the L1I and L1D cache ports

The default value is set to 32 for each type of machines such as L1,
L2, and Directory. Shoud I set the exact same number as the defined
ports for this variable?
I am worrying about this variable's role because I could ran
simulation without modifying this variable.
Thank you.

Regards,

Young

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