Re: [Gems-users] FILE_SPECIFIED: Network Interconnect


Date: Sun, 21 Jan 2007 09:54:36 -0600 (CST)
From: Mike Marty <mikem@xxxxxxxxxxx>
Subject: Re: [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.
>

This file is specific to the DNUCA SLICC protocol that implements a
controller called "Collector"

> 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?
>

It is used for adaptive routing to compute the routes


> 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?
>

Yes, thats correct.

The network will route the message to the destination you choose by
computing the shortest route.  Adaptive routing also takes into account
network congestion.  You can disable adaptive routing if you want.

--Mike

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