Need to create an off-chip network

27 views
Skip to first unread message

F. A. Faisal

unread,
Feb 5, 2015, 12:13:56 AM2/5/15
to topaz-...@googlegroups.com
I have tried to create a very irregular topology. And I have many off-chip connections. My network needs to be send message from on-chip to off-chip.
So the problem is the current TPZinjectorFlow.cpp file assumes the routing for on-chip connections. Hence the routing is fixed as because of the below line-

"net->routingRecord(returnMsg->source(),returnMsg->destiny(),xdelta, ydelta,zdelta,returnMsg->isOrdered());"

But if we can send message from router to router in the TPZinjectorFlow.cpp file then off-chip network can also be simulated. So please help me how can I make sure to send the message router to router instead of on-chip fixed source and destination.

Thanks....



F. A. Faisal

unread,
Feb 6, 2015, 11:33:07 AM2/6/15
to topaz-...@googlegroups.com
For the better understanding of the network, I have added a sample file.
In this file, there is 2 on-chip network. So using the connection of the we can easily define the router output direction as X-,X+, Y-,Y+.
But now the problem is when we want to reach a node from source node 00 to 02 then routing should be X+( to reach 01) then X+(to reach 03) then X-( to reach 02).
So deltaX = 1 + 1 - 1 = 1 which is creating the misleading routing by the routingRecord() function. 
I can easily create initializeConnectionsFor(TPZPosition(i,j,k)) function for this network. But the routingRecord() is creating error routing.

So please advise me how to make routing router by router. Or any other suggestion might also help.

Thanks....
Sample.pdf

Valentín Puente

unread,
Feb 6, 2015, 12:52:07 PM2/6/15
to topaz-...@googlegroups.com
I think that you cant do that. You need support for irregular networks (tables based routing, different deadlock avoidance, etc... ). In the old days the simulator had it but we suppress it. Take a look at sycosys simulator. The code is public and you can recover it... But the code is dirtier than topaz (topaz is a refactored / cleaner version of sycosys).

Another potential approach (if on chip an off chip are regular) is to combine multiple simulations in one with the different topologies. It might be easier an cleaner.. But i don't know for sure.

--
Valentin
--
You received this message because you are subscribed to the Google Groups "topaz-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to topaz-discus...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
<Sample.pdf>

F. A. Faisal

unread,
Feb 6, 2015, 1:35:59 PM2/6/15
to topaz-...@googlegroups.com
The off-chip and on-chip network are regular. So as you said the option is to do multiple simulation with different topologies.
As I read more detailed of the Topaz code I came to know that message is send using the below function-

Boolean TPZInjectorFlowCT :: outputWriting() 

and inside this function below line is responsible for sending message-

TPZMessage* msg = getNextFlitToSend(); 

So if I change this function for every router destination like- delx = abs(sX - dX) and call the getNextFlitToSend( ) function with new source Node repeatedly, it should be able to send message for every router. Now another question is that is it will make another unknown issue.

---------

Thanks


F. A. Faisal

unread,
Feb 6, 2015, 3:37:03 PM2/6/15
to topaz-...@googlegroups.com
I have tried the above solution. Now the problem is the below line-

getMessageQueue().elementAt(0,topMessage) // inside the function of getNextFlitToSend(); 

before I call function this function I need to set the 0 element of getMessageQueue using the last sent msg. 

So please tell me how I can create function as setMessageQueue() which will set the last router msg as the 0 element of getMessageQueue.

Otherwise I am getting the segmentation fault 11.

F. A. Faisal

unread,
Feb 7, 2015, 2:12:03 AM2/7/15
to topaz-...@googlegroups.com
I have solved the above problem.
But I am unable to extract any result from the simulator. My first goal is to send a message router by router. 
And call the outputInterfaz()->sendData(msg) to send message for each individual router to router.
And then finally get the total time of message delivery when it reaches the destination router.

Please advice me to do the needful...

Valentín Puente

unread,
Feb 7, 2015, 2:26:34 AM2/7/15
to topaz-...@googlegroups.com
You cant do that. Even if it works, the system is deadlock prone. Take a look at the books to understand irregular networks.

--
Valentin
--

F. A. Faisal

unread,
Feb 7, 2015, 3:45:27 AM2/7/15
to topaz-...@googlegroups.com
In this case, as I have sent you the pdf file, if I prepare the only function of routingRecords and neglect the connections of the routers.
So to reach 00 to 02 node the routingRecord will give me 3 hope distance regardless of what is the available connections from the router.

Please explain this case, will I can obtain the same result of total transfer time and as I experienced about this simulator this case I had obtained the same average distance as I have expected... 
Reply all
Reply to author
Forward
0 new messages