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