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