Sorry for those who already saw this in the m5-users mailing list, but I
later decided it was more of a dev question since Ruby seems to be in the
development stages for M5.

I am trying to implement additional topologies, but I am having difficulty
understanding Crossbar.py.  Is it capable of multiple simultaneous point to
point connections?  From what I gather the 'xbar' node would prevent
multiple nodes from communicating at the same time, making this topology a
bus?  Or am I missing something?

Another question, why is there the extra layer of switches buffering each
external node from the "xbar switch" in Crossbar.py?

That is to ask, why couldn't this snippet:

>  ext_links = [ExtLink(ext_node=n, int_node=i)

 for (i, n) in enumerate(nodes)]

 xbar = len(nodes) # node ID for crossbar switch

 int_links = [IntLink(node_a=i, node_b=xbar) for i in range(len(nodes))]

 return Crossbar(ext_links=ext_links, int_links=int_links,

 num_int_nodes=len(nodes)+1)


Instead be implemented as so?:

>  ext_links = [ExtLink(ext_node=n, int_node=0)

 for (i, n) in enumerate(nodes)]

 int_links = []

 return Crossbar(ext_links=ext_links, int_links=int_links,

 num_int_nodes=1)


Or why doesn't a crossbar have all point to point connections such as this?:

>  ext_links = [ExtLink(ext_node=n, int_node=i)

 for (i, n) in enumerate(nodes)]

 int_links = []

 for i in range(len(nodes)):

 for j in range(len(nodes)):

 if(i != j):

 int_links.append(IntLink(node_a=i, node_b=j))

 return Crossbar(ext_links=ext_links, int_links=int_links,

 num_int_nodes=len(nodes))m5
_______________________________________________
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to