SmallNoC
The SmallNoC tool, which is inspired by small-world networks, automatically inserts application-specific long-range links to a 2D mesh network for a given (set of) application(s). The goal is to maximize the sustainable network throughput with a constraint on the total number of long-range links.
Features and Highlights
The SmallNoC tool optimizes an underlying 2D mesh network with given dimensions for a target set of applications, which are described in a file specified in the command line using the ”-traffic_file” switch. Each line in the input file contains a 3-tuple, which specifies the source IP, the destination IP and the packet rate from the source to the destination. Besides the target application, the constraint on the total number of long-range links and the size of the mesh are taken as inputs. Finally, the optimized NoC and the routing table are written to a file specified by the ”-architecture_file” switch in the command line. This output and the application file can be readily used to simulate the optimized NoC using worm_sim simulator.
Example Usage: ./SmallNoC -num_of_rows 4 -num_of_columns 4 -constraint 10 -traffic_file traffic.config \ -architecture_file output.config
Complete list of command line parameters are provided in the README file.
Downloads and Install
SmallNoC was developed and tested mainly in GNU/Linux. To install, download the tgz file and use the command “tar xvzf SmallNoC.tgz” to extract the files. Just run “make” in SmallNoC/src directory and the executable named “SmallNoC” will be compiled. Copy or link this binary to a directory in your search path if you like.
Running “SmallNoC -h” will print a brief description of switches available. At the same time, please refer to the README.txt file included in the release for more detailed usage and explanation of the tool.
Some simple examples are also provided with the release which can be checked out under “examples” directory.
References
It's a small world after all: NoC performance optimization via long-range link insertion Journal Article
In: IEEE Transactions on very large scale integration (VLSI) systems, vol. 14, no. 7, pp. 693–706, 2006.