- try:
- (cpu_sequencers, dir_cntrls, all_cntrls) = \
- eval("%s.create_system(options, physmem, piobus, dma_devices)" \
- % protocol)
- except:
- print "Error: could not create sytem for ruby protocol %s" % protocol
- sys.exit(1)
-
- #
- # Important: the topology constructor must be called before the network
- # constructor.
- #
- if options.topology == "crossbar":
- net_topology = makeCrossbar(all_cntrls)
- elif options.topology == "mesh":
- #
- # The uniform mesh topology assumes one router per cpu
- #
- net_topology = makeMesh(all_cntrls,
- len(cpu_sequencers),
- options.mesh_rows)
-
- elif options.topology == "mesh_dir_corner":
- #
- # The uniform mesh topology assumes one router per cpu
- #
- net_topology = makeMeshDirCorners(all_cntrls,
- len(cpu_sequencers),
- options.mesh_rows)
+ # Options related to cache structure
+ parser.add_option("--ports", action="store", type="int", default=4,
+ help="used of transitions per cycle which is a proxy \
+ for the number of ports.")
+
+ # ruby network options
+ parser.add_option("--topology", type="string", default="Crossbar",
+ help="check src/mem/ruby/network/topologies for complete set")
+ parser.add_option("--mesh-rows", type="int", default=1,
+ help="the number of rows in the mesh topology")
+ parser.add_option("--garnet-network", type="choice",
+ choices=['fixed', 'flexible'], help="'fixed'|'flexible'")
+ parser.add_option("--network-fault-model", action="store_true", default=False,
+ help="enable network fault model: see src/mem/ruby/network/fault_model/")
+
+ # ruby mapping options
+ parser.add_option("--numa-high-bit", type="int", default=0,
+ help="high order address bit to use for numa mapping. " \
+ "0 = highest bit, not specified = lowest bit")
+
+ # ruby sparse memory options
+ parser.add_option("--use-map", action="store_true", default=False)
+ parser.add_option("--map-levels", type="int", default=4)
+
+ parser.add_option("--recycle-latency", type="int", default=10,
+ help="Recycle latency for ruby controller input buffers")