Welcome to the PAT-Noxim, cycle accurate Network-on-Chip(NoC) simulator.
Networks-on-Chip (NoCs) have proven to be a low-latency and highly scalable in many-core architectures. Due to the importance of scalability, designers try to optimize latency, power and temperature across the network. Therefore, developing a precise tool to calculate the aforementioned attributes is of utmost importance. Designers need to evaluate their proposed techniques in a NoC simulated environment. So, we propose PAT-Noxim to address the shortcomings in design and post-design stages. PAT-Noxim, developed based on Access-Noxim, provides an environment to simulate a NoC in power consumption, area, delay and temperature models. PAT-Noxim is developed to support several predefined and custom architectures. it can be downloaded under GPL license terms.
If you use PAT-Noxim in your research, we would appreciate the following citation in any publications to which it has contributed:
A. Norollah, D. Derafshi, H. Beitollahi and A. Patooghy, "PAT-Noxim: A Precise Power & Thermal Cycle-Accurate NoC Simulator," 2018 31st IEEE International System-on-Chip Conference (SOCC), Arlington, VA, USA, 2018, pp. 163-168. doi: 10.1109/SOCC.2018.8618491
Get in touch with me by [email protected]
PAT-Noxim works with three different simulators in harmony to cover aforementioned models:
- Orion 3.0 measures power consumption and area of routers by using orion model. We modified this simulator to work with PAT-Noxim.
- McPAT calculates area and power consumption of different processing elements, implemented by designer.
- Hotspot 6.0 receives area of routers and PEs from PAT-Noxim to calculate temperature more accurately than Access-Noxim.
Change list for the latest version of PAT-Noxim:
- Adding virtual channels
- Implementing several router architectures
- Ability to change pipeline architectures such as 3-stage, 4-stage and 5-stage pipelines in runtime
- Adding credit signals to each router
- Improved power model for routers through Orion 3.0
- Improved area model for routers through Orion 3.0 to measure temperature more accurately in Hotspot 6.0
- Adding power and area models of several practical processors through McPAT
- Updating power and area of NoC with each change in router architecture.
- Adding support for 22, 32, 45, 65, 90 nm manufacturing technology.
- Calculating leakage current by Temperature Effect Inversion (TEI), taking into account the initial leakage current
- Measuring leakage current by TEI Through improved Orion 3.0
- Obtaining temperature feedback from tiles to calculate leakage current by TEI in a specific time interval.
- Increasing the accuracy of power and thermal measurements in sub-90 nm manufacturing technologies.
- Report the chip surface temperature once every 100,000 cycles.
- Bug fixes
First, you need to install SystemC 2.2.0 (Follow the link: https://github.com/systemc/systemc-2.2.0)
-
Change to the top level directory (systemc-2.2)
-
Create a temporary directory, e.g.,
$ mkdir objdir
- Change to the temporary directory, e.g.,
$ cd objdir
$ sudo apt-get install tcsh
$ tcsh
$ setenv CXX g++
- Configure the package for your system, e.g., (The configure script is explained below.)
$ ../configure
- Compile the package.
$ gmake
$ gmake install
$ cd ..
$ rm -rf objdir
$ exit
- make sure directory "lib-linux" exist! if this name is "lib-linux64", rename it to "lib-linux".
To install the PAT-Noxim, you need to follow a few simple steps.
$ cd PAT-Noxim/bin
$ make
$ make install
Some of the main simulator files are listed in the following table:
Files | Description |
---|---|
NoximParameters.h | All of the pre-compile settings are in this file (for PAT-Noxim, Orion and Hotspot) |
NoximMain.cpp | Link the simulator to various components |
NoximNoC.cpp | Defines the overall structure of the network |
NoximRouter.cpp | Router architectures includes. Routing algorithms are defined in this file |
NoximProcessingElement.cpp | Includes the Processing Element(PE) architecture for sending and receiving messages |
NoximVLink.cpp | Determines the policy of communication between the tiles in the third dimension |
NoximTile.h | Defining and connecting components of a tile, consisting of the router and the PE |
NoximVCState.cpp | Defines the virtual channel states on the router |
NoximPower.cpp | The power consumption and the area of the network components are calculated in this section |