Re: [Gems-users] Ruby_cycles != opal0.cycle ?!


Date: Fri, 4 Mar 2005 12:57:39 -0500
From: Milo Martin <milom@xxxxxxxxxxxxx>
Subject: Re: [Gems-users] Ruby_cycles != opal0.cycle ?!
Min and others -

Concerning the OPAL_RUBY_MULTIPLIER and the SIMICS_RUBY_MULTIPLIER variables. In many systems the memory system runs at a different frequency than the memory system. In GEMS, these two multiplier variables allow such a ratio of clocks. In general, I like to think of the memory system latencies as specified in nanoseconds, and the OPAL_RUBY_MULTIPLIER as determining the processor frequency. For example, an OPAL_RUBY_MULTIPLIER of 1, 2 and 4 would specify processor frequencies of 1Ghz, 2GHz, and 4Ghz, respectively. In essence, this allows the processor frequency to change with needing assume that DRAM latencies also changed.

- Milo

On Mar 4, 2005, at 12:35 PM, Min Xu (Hsu) wrote:

Weihang,

You are right. There are two MULTIPLIERs in ruby. I don't know why
both of them are set to 2 by default. Can someone else shine some
light here?

Hi group,

Bk tells me both parameters are changed by milo in revision 1.28
at Feb 03 2004. The comment simply says it "makes more sense" to
have both MULTIPLIER be 2, instead of SIMICS_RUBY_MULTIPIER
be 4 and OPAL_RUBY_MULTIPLIER be 1.

BTW, I found in opal/system/system.C:1894, there is another
"SIMICS_MULTIPLIER" constant, which seems to has something
to do with tracing. I wonder if the name for the constant
is too general. Should we rename it to some more specific
name?

-Min

On Fri, 04 Mar 2005 Weihang Jiang wrote :
Thank you so much, Min :)

One last question about this thread. I found two similar parameters:
SIMICS_RUBY_MULTIPLIER: and  OPAL_RUBY_MULTIPLIER.

I assume you were referring to the one of these. So my question is
what the other one is.

Acutually, I am not very sure how to use ruby/opal for multi-processor
simulation.

What I did is following "QuickStart":
ruby0.setparam g_NUM_PROCESSORS 2
ruby0.init
opal0.init

It is correct?

On Fri, 4 Mar 2005 00:32:55 -0600, Min Xu (Hsu) <xu@xxxxxxxxxxx> wrote:
Weihang,

First question first, the multiplier is used to allow us to
use the in-order simics cpu model to approximate a N-way issue
super-scalar processor. In other words, every ruby cycle, we
could allow N-instructions to be executed in simics.

However, when running with opal, the multiplier should be set
to 1, because every opal cycle, up to X number of instructions
are executed. There is no need to allow opal advance N cycles
for every 1 ruby cycle, unless you want to simulate a slower
memory somehow.

As to your second question, when opal is running with ruby,
its own cache model is not used. So the parameters you listed
are safe to ignore. The only case where opal's own cache model
is used is when running single processor simulation without
ruby. Opal's own cache model doesn't support coherence yet.

-Min

On Thu, 03 Mar 2005 Weihang Jiang wrote :
One related question:
opal0.listparam lists configuration related to Memory System:

IL1_ASSOC                                   :                1
IL1_SET_BITS                                :                8
IL1_BLOCK_BITS                              :                6
IL1_MSHR_ENTRIES                            :              256
IL1_STREAM_BUFFERS                          :                0
IL1_IDEAL                                   :                0
IL1_NL_TYPE                                 :                0
IL1_NL_LINES                                :                0
IL1_MSHR_QUEUE_SIZE                         :               32
IL1_MSHR_QUEUE_ISSUE_WIDTH                  :                2
DL1_ASSOC                                   :                1
DL1_SET_BITS                                :                8
DL1_BLOCK_BITS                              :                6
DL1_MSHR_ENTRIES                            :              256
DL1_STREAM_BUFFERS                          :                0
DL1_IDEAL                                   :                0
L2_ASSOC                                    :                4
L2_SET_BITS                                 :               12
L2_BLOCK_BITS                               :                6
L2_MSHR_ENTRIES                             :              128
L2_STREAM_BUFFERS                           :                0
L2_LATENCY                                  :                6
L2_IDEAL                                    :                0
MEMORY_DRAM_LATENCY                         :               80

Most of them can also be found in ruby. Do I need to unify these
values between ruby and opal? Or it is only useful when opal is used
alone?


On Thu, 3 Mar 2005 21:58:28 -0600, Weihang Jiang <weihang.jiang@xxxxxxxxx> wrote:
Min:
Yes, it has been set to 2. What is the exact use of "multiplier"? When
should it be used?


Thanks


On Thu, 3 Mar 2005 21:06:19 -0600, Min Xu (Hsu) <xu@xxxxxxxxxxx> wrote:
Weihang,

I notice the opal cycle is exactly twice of the ruby cycle.
I think the difference came from the ruby/opal multiplier.
Did you set the multiplier to 2?

-Min

On Thu, 03 Mar 2005 Weihang Jiang wrote :
Hi,
opal0.cycle tells me that "The current cycle is: 228737428". But
ruby0.dump-stats tells
me that "Ruby_cycles: 114368714". Why?





-- Weihang Jiang _______________________________________________ Gems-users mailing list Gems-users@xxxxxxxxxxx https://lists.cs.wisc.edu/mailman/listinfo/gems-users
_______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/gems-users


-- Weihang Jiang



--
Weihang Jiang
_______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/gems-users



--
Weihang Jiang
_______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/gems-users

--
Milo M. K. Martin (milom@xxxxxxxxxxxxx)
http://www.cis.upenn.edu/~milom/
Assistant Professor
Computer and Information Sciences Department
University of Pennsylvania

Attachment: smime.p7s
Description: S/MIME cryptographic signature

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