[Gems-users] FILE_SPECIFIED: Network Interconnect


Date: Sat, 20 Jan 2007 22:04:17 -0500
From: "Nitin Bhardwaj" <bhardwaj@xxxxxxxxxxxxxxxx>
Subject: [Gems-users] FILE_SPECIFIED: Network Interconnect
I am trying to understand the Ruby code base, and is experimenting with FILE_SPECIFIED network interconnect and coherence protocol.
I have few questions regarding the Ruby Network specification.

1.) In the rubyconfig.defaults when i specify (NUCA_Procs-8_ProcsPerChip-8_L2Banks-256_Memories-8.txt I get an error:

Warning: in fn MachineType string_to_MachineType(const std::string&) in generated/MOESI_CMP_directory/MachineType.C:38: str is Collector

I looked at the code and can see that in the Topology.C function makefilespecified() parses the NUCA*_*.txt file and gets the machine type info from the MachineType.C file. I haven't changed nything in the NUCA*_*.txt file.

2.) What does the function call to shortest path do? If i am using a NUCA network specified file then does this shortest path from one node to the other is going to change my topology by finding a  shortest path for node'x' to node'y' and creating a link between them? Or is it controlled by adaptive routing parameter?

3.) When I specify a network using the NUCA_**** file does that create a physical link between the 2 nodes. Meaning if i want to route packets from L1:0 to {L1:1 or L1:2 or L2:0}, depending on some condition's and i specify

bw_unit:1000
ext_node:L1Cache:0 int_node:0 link_latency:1 bw_multiplier:64
ext_node:L1Cache:1 int_node:1 link_latency:1 bw_multiplier:64
ext_node:L1Cache:2 int_node:2 link_latency:1 bw_multiplier:64
ext_node:L2Cache:0 int_node:0 link_latency:1 bw_multiplier:64
ext_node:L2Cache:1 int_node:1 link_latency:1 bw_multiplier:64
ext_node:L2Cache:2 int_node:2 link_latency:1 bw_multiplier:64

int_node:0 int_node:1 link_latency:1 bw_multiplier:16
int_node:0 int_node:2 link_latency:1 bw_multiplier:16
int_node:1 int_node:2 link_latency:1 bw_multiplier:16
....................

then my L1Cache0 to switch 0 [bandwidth is 64 bytes / cycle] and L1Cache1 to switch 1 [bandwidth is 64 bytes /cycle] and my switch0 to switch1 is connected with an internal bandwith of 16 bytes /cycle. Now, if i have to route the RequestMsg (packets) from L1:0 to {L1:1 or L1:2 or L2:0}? Then where should i specify the changes. Is it going to be in  slicc/protocol/L1-Cache.sm?

Any pointers to proceed further is really appreciable.

-Thank You
Nitin Bhardwaj

[← Prev in Thread] Current Thread [Next in Thread→]