If the network topology is FILE_SPECIFIED, the files in
ruby/network/simple/Network_Files are used. The appropriate file is
chosen with the g_CACHE_DESIGN parameter which should be "NUCA" for
MOESI_CMP_directory
This file specifies all the network links and the latency and bandwidth
for each one (relative to the global bandwidth parameter which must be set
to 1000, for the NUCA network files, which is specified in these files as
well).
L1 latencies are always 1 cycle because by default, the system "sequencer"
will check the cache if it has the block before issueing a request to
Ruby. This can be turned off however.
The appropriate latency parameter for MOESI_CMP_directory can be found by
looking at the SLICC code. MOESI_CMP_directory-L2cache appears to use the
"L2_RESPONSE_LATENCY" parameter which is likely defined in
ruby/config/RubyConfig.h. It probably uses some randomization for
workload variability, and is probably based on some fixed constant set in
config/rubyconfig.defaults. Have a look
--Mike
> More about CMP configuration
>
> If I only simulate a single CMP, can I ignore
> "g_NETWORK_TOPOLOGY: FILE_SPECIFIED
> NUMBER_OF_VIRTUAL_NETWORKS: 5" ?
>
> I am still not sure about TIMING parameters:
>
> Your "target system parameters" and my guessing
>
> interconnect latency 2ns => ON_CHIP_LINK_LATENCY: 2
>
> memory/dir controller 6ns => ???
>
> L1 2ns => L1_BANK_LATENCY_MINUS_1: 1
> & L1_REQUEST_LATENCY: 1
>
> L2 7ns => L2_BANK_LATENCY_MINUS_2: 5
> & L2_REQUEST_LATENCY: 5
>
> latency to controller 20 ns => ???
>
> DRAM latency 80ns => MEMORY_LATENCY: 80
>
> Do we need to changes other timing parameters?
>
>
>
> following is all the timing parameters in rubyconfig.defaults
>
> // TIMING PARAMETERS
> NULL_LATENCY: 1
> ISSUE_LATENCY: 2
> CACHE_RESPONSE_LATENCY_MINUS_1: 11
> MEMORY_LATENCY: 80
> DIRECTORY_LATENCY: 80
> NETWORK_LINK_LATENCY: 14
> COPY_HEAD_LATENCY: 4
> ON_CHIP_LINK_LATENCY: 1
> RECYCLE_LATENCY: 10
> L2_RECYCLE_LATENCY: 5
> TIMER_LATENCY: 10000
> // for a 3 cycle L1 cache
> L1_BANK_LATENCY_MINUS_1: 2
> // for a 6 cycle L2 cache bank
> L2_BANK_LATENCY_MINUS_2: 4
> TBE_RESPONSE_LATENCY: 1
> PERIODIC_TIMER_WAKEUPS: true
>
> // constants used by CMP protocols
> // cache bank access times
> L1_REQUEST_LATENCY: 2
> L2_REQUEST_LATENCY: 4
> // Allows on a single accesses to a multi-cycle L2 bank.
> // Ensures the cache array is only accessed once for every L2_REQUEST_LATENCY
> // number of cycles. However the TBE table can be accessed in parallel.
> SINGLE_ACCESS_L2_BANKS: true
>
> // Ruby cycles between when a sequencer issues a request and it arrives at
> // the L1 cache controller
> SEQUENCER_TO_CONTROLLER_LATENCY: 4
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> On Sat, 5 Mar 2005 23:34:12 -0600, Weihang Jiang
> <weihang.jiang@xxxxxxxxx> wrote:
> > Thank you so much :)
> >
> >
> > On Sat, 5 Mar 2005 23:29:36 -0600 (CST), Mike Marty <mikem@xxxxxxxxxxx> wrote:
> > > DirectoryCMP in my HPCA paper used the MOESI_CMP_directory SLICC protocol
> > >
> > > Make the following changes to rubyconfig.defaults:
> > >
> > > g_NETWORK_TOPOLOGY: FILE_SPECIFIED
> > > NUMBER_OF_VIRTUAL_NETWORKS: 5
> > >
> > > In Simics, the following parameters must be set for a 4 CMP, 4 procs/chip
> > > system (total 16 processors)
> > >
> > > ruby0.setparam g_endpoint_bandwidth 1000
> > > ruby0.setparam g_PROCS_PER_CHIP 4
> > > ruby0.setparam g_NUM_PROCESSORS 16
> > >
> > > I think this should work.
> > >
> > > --Mike
> > >
> > >
> > > > Dear Mike,
> > > > I am trying to configure a single-CMP system in GEMS/SIMICS. But I
> > > > am not sure whether I have configured all the parameters listed in
> > > > file rubyconfig.defaults correctly.
> > > > I just noticed that you had a M-CMP setup in your HPCA05
> > > > paper,which is close to the system I want. If you still keep the
> > > > configuration file, could you please help me?
> > > > TIA
> > > > --
> > > > Weihang Jiang
> > > >
> > >
> >
> > --
> > Weihang Jiang
> >
>
>
> --
> Weihang Jiang
>
|