Hey everyone, hope you are doing well.
For my research purposes, I'm using Gem5 in FS mode, with PARSEC benchmark
suite to do some research related to Network-on-Chip.
I have built gem5 using the default command and I'm using 2-D Mesh topology
- python3 `which scons` build/X86/gem5.opt -j n
and I'm also using the default protocol "MESI_Two_Level" defined in the
"./gem5/build_opts/X86" file.
The default protocol uses 3 virtual networks to inject messages.
I want to use only one virtual network instead of using 3 virtual networks.
Can I change the protocol to inject all the messages into one virtual
network? If so, how?
I tried to change the value of virtual_network in these files to be the
same
- gem5/src/mem/ruby/protocol/MESI_Two_Level-dir.sm
- gem5/src/mem/ruby/protocol/MESI_Two_Level-dma.sm
- gem5/src/mem/ruby/protocol/MESI_Two_Level-L1cache.sm
- gem5/src/mem/ruby/protocol/MESI_Two_Level-L2cache.sm
MessageBuffer * requestToDir, network="From", virtual_network="0",
vnet_type="request";
MessageBuffer * responseToDir, network="From", virtual_network="1",
vnet_type="response";
MessageBuffer * responseFromDir, network="To", virtual_network="1",
vnet_type="response";
But I got an assert error when one of the previous files had two identical
"network", and "virtual_network" values.
AssertionError: :
File "/gem5/SConstruct", line 816:
duplicate=GetOption('duplicate_sources'))
File "/usr/lib/scons/SCons/Script/SConscript.py", line 614:
return method(*args, **kw)
File "/usr/lib/scons/SCons/Script/SConscript.py", line 551:
return _SConscript(self.fs, *files, **subst_kw)
File "/usr/lib/scons/SCons/Script/SConscript.py", line 256:
call_stack[-1].globals)
File "/gem5/src/SConscript", line 557:
duplicate=GetOption('duplicate_sources'))
File "/usr/lib/scons/SCons/Script/SConscript.py", line 614:
return method(*args, **kw)
File "/usr/lib/scons/SCons/Script/SConscript.py", line 551:
return _SConscript(self.fs, *files, **subst_kw)
File "/usr/lib/scons/SCons/Script/SConscript.py", line 256:
call_stack[-1].globals)
File "/gem5/src/mem/ruby/protocol/SConscript", line 105:
nodes = env.SLICC([], sources)
File "/usr/lib/scons/SCons/Environment.py", line 260:
return MethodWrapper.__call__(self, target, source, *args, **kw)
File "/usr/lib/scons/SCons/Environment.py", line 224:
return self.method(*nargs, **kwargs)
File "/usr/lib/scons/SCons/Builder.py", line 645:
return self._execute(env, target, source, OverrideWarner(kw), ekw)
File "/usr/lib/scons/SCons/Builder.py", line 564:
tlist, slist = self._create_nodes(env, target, source)
File "/usr/lib/scons/SCons/Builder.py", line 528:
target, source = self.emitter(target=tlist, source=slist, env=env)
File "/gem5/src/mem/ruby/protocol/SConscript", line 71:
slicc.writeCodeFiles(output_dir.abspath, slicc_includes)
File "/gem5/src/mem/slicc/parser.py", line 83:
self.symtab.writeCodeFiles(code_path, includes)
File "/gem5/src/mem/slicc/symbols/SymbolTable.py", line 151:
symbol.writeCodeFiles(path, includes)
File "/gem5/src/mem/slicc/symbols/StateMachine.py", line 248:
self.printControllerCC(path, includes)
File "/gem5/src/mem/slicc/symbols/StateMachine.py", line 719:
assert (vnet, network) not in vnet_dir_set
Best Regards,
*Eng. Karim Soliman*
Teaching Assistant
Computer Engineering Department
Pharos University in Alexandria (P.U.A)
_______________________________________________
gem5-users mailing list -- [email protected]
To unsubscribe send an email to [email protected]