> However, the question is: when we move to interconnects that decouple
> these two things, what entity becomes responsible for mapping
> addresses to destinations?  There must be some logic or a routing
> table that uses the address to generate a destination ID.  Without
> having given it a ton of thought, I'd argue that that function should
> not be part of the interconnect itself; it's going to be tied in to
> some extent with the coherence protocol, and may be something we want
> to specify as part of the configuration.  If you buy this, then at the
> level of the interconnect, there should only be two options: broadcast
> or a specific destination.  So the interface is fine.
That makes sense and I feel now that we've had this discussion before.
 I guess my problem is that I'm trying to build a multi-hop network,
so the meaning of src and dest get confusing.  I was trying to use
them as a port id on a router, but  I guess that they have to mean the
node ids at the edge of the network.  I'll need to record routing
information in the senderState variable I guess.

I understand the point you have about the coherence protocol needing
to control the routing since a three-hop protocol would be impossible
otherwise.  Hopefully having SLICC will make this whole thing less
confusing since it will be autogenerated or something.

> Another way to look at this is to declare that it's already the case
> that all routing (i.e., mapping of addresses to interconnect
> destinations) must be done outside the interconnect.  It's just an
> anomaly of a bus interconnect that "* -> Broadcast" is a valid routing
> function.

Understood.  We really need a better mechanism for doing this stuff.
Putting in a different network with different coherence is too much of
a mess.

  Nate
_______________________________________________
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to