Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Partially Connected 3D NoC
Authors:
Abhishek Madav (86378148) Suhas Tikoo (22363556)
Saurebh Raut (27481720) Urjit Khadilk...
Step 2: After the mesh has been built, we need to make changes in the Routing Algorithm involved.
To verify the constructi...
Step 4: To enable only the source_id to generate flits, we change the parameters to the canShot() function as
a part of th...
Step 6
The process of transmission fails when the buffer associated with the source_id or a local_id along the path
chose...
Test Cases:
The results for a specific test case has been shown:
1) Destination ID – 64 (layer 1)
2) Source ID – 0 (Layer ...
Similarly, we should be able to route packets through a path which does not involve invalidated vertical links.
Results fo...
Upcoming SlideShare
Loading in …5
×

Partially connected 3D NoC - Access Noxim.

1,023 views

Published on

Project for building a partially connected 3D NoC using Access Noxim co-simulator as a part of the EECS 213 - Advanced Computer Architecture course at University of California, Irvine.

Published in: Education
  • Thanks in advance and I really appreciate your future response
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Very great Job Abhishek, I have a question, how can you run Accessnoxim on windows? this is may be very obvious for you but for me it is really not,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Hi@Abhishek Madav!If I try to modify this approach in AccessNoxim Version 2.0 will this work?I have tried to install The version 3 in fedora 22 but during simulation,itiss giving segmentation fault.Can you please help in this regard/I trying to understand the 3D NoC but could not getting much help.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Partially connected 3D NoC - Access Noxim.

  1. 1. Partially Connected 3D NoC Authors: Abhishek Madav (86378148) Suhas Tikoo (22363556) Saurebh Raut (27481720) Urjit Khadilkar (24449837) Abstract: In this paper, we detail the design and implementation of a router for vertically-partially-connected 3D- NoCs based on stacked 2D-meshes. The project implements open source Access Noxim V0.3 for creating a 3D NoC and routing algorithms defined to adequately prove the partial implementation. Introduction: The Access Noxim is a co-simulation platform for 3D NoC system that couples the network model, power model and thermal model. The project starts with an implementation of a fully connected NoC and later invalidating the vertical links for all the diagonal elements in a layer. The process of invalidation stays consistent throughout the layers and can be certified by shooting flits from a source_id to a specific destination_id such that the path is across the layers and involve nodes which have their vertical links invalidated as a part of the BuildMesh() in NoximNoc.cpp. Step 1: Invalidate the vertical links for all diagonal elements in a layer (i==j) Also, as a part of the partial implementation, we invalidate the reservation stations linked for the choice of nodes.
  2. 2. Step 2: After the mesh has been built, we need to make changes in the Routing Algorithm involved. To verify the construction of a partially connected NoC, we use the XYZ algorithm, which is bound to fail for such a partial connection and we certify the failure using the notion that the buffer linked with the nodes along the path get full and cannot proceed due to invalidated vertical link.  Changing the type of routing involved: (NoximMain.h) #define DEFAULT_ROUTING_ALGORITHM ROUTING_XYZ Step 3: To demonstrate the path which cannot send packets through it because of an invalidated link, we set a source_id and a destination_id for which we shall trace the route taken. To specify a source_id and a destination_id, we modify the id’s within the trafficRandom() in NoximProcessingElement.cpp
  3. 3. Step 4: To enable only the source_id to generate flits, we change the parameters to the canShot() function as a part of the NoximProcessingElement.cpp by including an additional condition in the if statement. Step 5: As a part of the debugging, we could trace each flit an its consequent properties in the rxProcess() within the NoximRouter.cpp. The cout’s help understand the details regarding the received flit.
  4. 4. Step 6 The process of transmission fails when the buffer associated with the source_id or a local_id along the path chosen through a vertically invalidated node and to detect the same, we modify the code for routingXYZ() in NoximRouter.cpp to detect the buffer being full. The check for the same, certifies that the chosen path of source and destination cannot be completed, which in turn proves of an adequate implementation of the partial NoC. The function gets called, each time a local_id receives the first body flit. The counter implemented helps us track the number of buffers full and when it exceeds the default limit, it is safe to say that the path has been blocked and that “Packet Transmission Failed!”.
  5. 5. Test Cases: The results for a specific test case has been shown: 1) Destination ID – 64 (layer 1) 2) Source ID – 0 (Layer 0) The route should be stuck according to the implementation since the XYZ algorithm traces a path involving a node which has its vertical link invalidated.
  6. 6. Similarly, we should be able to route packets through a path which does not involve invalidated vertical links. Results for one such pair of source and destination can be depicted as: 1) Destination ID – 68 (layer 1) 2) Source ID – 0 (Layer 0) Intermediate result showing the trace for the route: Final result shows the sharing of the packets across the layers in the source and destination: Conclusion: The project has successfully implemented a 3D partially connected NoC with vertical links for all the diagonal elements invalidated. The test cases show correct results for different paths involving or exempting the node with vertical link invalidated.

×