Hello Gabriel

Thank you for your answers.

To address the points you have raised:

>> [GB] First, downstream_destination is the set of possible destinations for 
>> this component. It does not mean that it will actually communicate will all 
>> of them. It depends on the rest of your configuration.

The command line I am using to run the simple test being:

./build/ARM/gem5.opt configs/example/se.py --ruby --topology=Pt2Pt --num-cpus=4 
--num-dirs=2 --num-l3caches=2 --cmd=tests/test-progs/hello/bin/arm/linux/hello

So this is making use of the default CHI.py and CHI_config.py

>> Second, you don’t specify explicitly which snf a given hnf communicates 
>> with. Instead, each hnf is responsible for a given [set of] address ranges 
>> and each snf is also responsible for a [set of] address ranges. There is no 
>> need for hnf and snf address ranges to correspond.

As mentioned above, I am using the default configs. Therefore, where could I 
find the above information (ie which snf a given hnf communicates with). I 
could not see it in config.ini.



>> However, if you setup an hnf and a snf to be mapped to the same address 
>> ranges, they will exclusively communicate with each other.

That makes sense.


>> With the default CHI.py file, I believe this corresponds to configurations 
>> where --num-dirs and num-l3caches are equal.

Yes. I tried using different values for –num-dirs and num-l3caches and this 
then generated a run time error.


Best regards
JO
From: Gabriel Busnot [mailto:gabriel.bus...@arteris.com]
Sent: 02 June 2021 15:44
To: gem5 users mailing list <gem5-users@gem5.org>
Cc: Javed Osmany <javed.osm...@huawei.com>
Subject: RE: Running CHI protocol configurations

Hi Javed,

Answers inline.

Best,
Gabriel

From: Javed Osmany via gem5-users 
<gem5-users@gem5.org<mailto:gem5-users@gem5.org>>
Sent: 02 June 2021 16:21
To: gem5 users mailing list <gem5-users@gem5.org<mailto:gem5-users@gem5.org>>
Cc: Javed Osmany <javed.osm...@huawei.com<mailto:javed.osm...@huawei.com>>
Subject: [gem5-users] Running CHI protocol configurations


[EXTERNAL EMAIL]
Hello

Have generated an ARM ISA gem5.opt executable, where the PROTOCOL CHI.

Running the simple “Hello World” program on a config of [4 RNFs, 2 HNFs, 2 
SNFs] and looking at the config.ini file, there are a few things I don’t 
understand.

The command I use being:

./build/ARM/gem5.opt configs/example/se.py --ruby --topology=Pt2Pt --num-cpus=4 
--num-dirs=2 --num-l3caches=2 --cmd=tests/test-progs/hello/bin/arm/linux/hello

From config.ini, we have

[system]
type=System
children=clk_domain cpu0 cpu1 cpu2 cpu3 cpu_clk_domain cpu_voltage_domain 
dvfs_handler mem_ctrls0 mem_ctrls1 redirect_paths0 redirect_paths1 
redirect_paths2 ruby sys_port_proxy voltage_domain workload
          :
mem_mode=timing
mem_ranges=0:536870912 <== Memory is 512 MBytes
memories=system.mem_ctrls0.dram system.mem_ctrls1.dram

[system.ruby]
type=RubySystem
children=clk_domain hnf0 hnf1 network power_state rnf0 rnf1 rnf2 rnf3 snf0 snf1 
<== So have instantiated the 4 x RNFs, 2 x HNFs, 2 x SNFs
access_backing_store=false
all_instructions=false
block_size_bytes=64
clk_domain=system.ruby.clk_domain
eventq_index=0
hot_lines=false
memory_size_bits=48
num_of_sequencers=4
number_of_virtual_networks=4
phys_mem=Null
power_model=
power_state=system.ruby.power_state
randomization=false
system=system

[system.ruby.hnf0.cntrl]
type=Cache_Controller
children=cache datIn datOut mandatoryQueue power_state prefetchQueue 
replTriggerQueue reqIn reqOut reqRdy retryTriggerQueue rspIn rspOut snpIn 
snpOut snpRdy triggerQueue
addr_ranges=0:536870912:0:64 <== What does this mean?? (range is 0: 512 Mbytes. 
What does :0:64 imply??) (Similar query for system.ruby.h
nf1.cntrl.addr_range)

[GB] This is an interleaved address range. In that particular case, hnf are 
interleaved on 64 bytes blocks and there are as many interleavings as there are 
hnf (2 in your case). 0:64 means that it is the interleaving with ID 0 and 64 
is the base 10 representation of the interleaving mask (single mask in that 
case). Please look carefully at AddrRange in src/python/m5/params.py for more 
details about address interleaving in gem5.
              :
downstream_destinations=system.ruby.snf0.cntrl system.ruby.snf1.cntrl <== If I 
wanted a configuration where hnf0.cntrl only communicated to 
system.ruby.snf0.cntrl, would I need to generate a custom version of 
CHI_configs.py or do I need to provide a custom version of CHI.py and 
CHI_configs.py?
[GB] First, downstream_destination is the set of possible destinations for this 
component. It does not mean that it will actually communicate will all of them. 
It depends on the rest of your configuration.
Second, you don’t specify explicitly which snf a given hnf communicates with. 
Instead, each hnf is responsible for a given [set of] address ranges and each 
snf is also responsible for a [set of] address ranges. There is no need for hnf 
and snf address ranges to correspond.
However, if you setup an hnf and a snf to be mapped to the same address ranges, 
they will exclusively communicate with each other.
With the default CHI.py file, I believe this corresponds to configurations 
where --num-dirs and num-l3caches are equal.
-          num-dirs corresponds to the number of memory interfaces that 
historically were directories in ruby but are snf in CHI
-          num-l3caches corresponds to the number of hnf that contain both a 
system-level cache as well as a directory… It’s a bit confusing but is a 
consequence of legacy parameter naming in gem5 python.

[system.ruby.hnf0.cntrl.cache]
type=RubyCache
children=replacement_policy
assoc=16
block_size=0 <== Why is the block size 0 ??
           :

[GB] 0 means default ruby block size value (64 bytes). You can find such 
information in the .py file containing the paramemter description for a given 
SimObject subclass. In that case,  src/mem/ruby/structures/RubyCache.py and 
src/mem/ruby/system/RubySystem.py.
Thanks in advance
JO

To reduce fraud or cyber-crime risks, Arteris IP will never instruct you to 
change wire payment instructions or bank account details using email or fax. If 
you receive such an email or fax appearing to be from Arteris IP, please call 
your Arteris IP’s contact to verify. Please do not verify by email.
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to