1 / 27

GeNoLator – Generic Network Simulator Final Presentation

18/08/2009. GeNoLator – Generic Network Simulator Final Presentation. Students: Gal Ben-Haim, Dan Blechner Supervisor: Isask'har Walter Winter 08/09. Agenda. Background Project Goals Project Overview Network Architecture SW Architecture Conclusion. Key Definitions.

savea
Download Presentation

GeNoLator – Generic Network Simulator Final Presentation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 18/08/2009 GeNoLator – Generic Network Simulator Final Presentation Students: Gal Ben-Haim, Dan Blechner Supervisor: Isask'har Walter Winter 08/09

  2. Agenda • Background • Project Goals • Project Overview • Network Architecture • SW Architecture • Conclusion GeNolator - QNoC Simulator

  3. Key Definitions • QoS – Quality of Service. • Network Object – any network component (router, node, link). • Packet – data/control message from one network object to another. • Flit – Packet’s building block, smaller group of bits. • S.L – Service Level. GeNolator - QNoC Simulator

  4. Background • Today - SOC (System On Chip) use BUS for inner chip communication. • Future - QNoC (QoS Network on Chip) - revolutionary communication protocol for SOC. • QNoC - experimental design, depends heavily on simulation for development and methodologies testing. GeNolator - QNoC Simulator

  5. Background - QNoC diagram GeNolator - QNoC Simulator

  6. The Need • Current solution - general network simulator, licensed, expensive, slow, many patches. • Our Solution - open source, fast, dedicated QNoC simulator. GeNolator - QNoC Simulator

  7. Project Goals • Creating an open source generic simulator for QNoC • High Modularity • Maximum flexibility (minimum fixed parameters) • Full Documentation • Verification & Evaluation • Simulator will be the base for future QNoC implementations simulations. GeNolator - QNoC Simulator

  8. Architectural Design • Event-driven. • All events implemented using messages • Built from QNoC’s basic building blocks: generator, sink, link and router. • System definitions read from external file. • Packets randomly generated in generator with random sink destinations. • Message sending is based on credits. • Every generation, transmission and reception of packets is documented in output file. GeNolator - QNoC Simulator

  9. GENERATOR GENERATOR IN IN IN IN IN IN IN IN OUT OUT OUT OUT OUT OUT OUT OUT ROUTER ROUTER Network Architecture SINK MSG LINK SINK LINK MSG MSG GeNolator - QNoC Simulator

  10. Software Architecture User input (ini file) Init (building database) Network Simulation Output File GeNolator - QNoC Simulator

  11. SW Arch. – Network Simulation EVT time:xx EVT time:xx EVT time:xx EVT time:xx EVT time:xx LOG (output file) Event Queue EVT time:xx EVT time:xx EVT time:xx Sink generator Router Link EVT time:xx GeNolator - QNoC Simulator

  12. Node Virtual Init ( ); Virtual handle_msg ( ); Get_id ( ); Get_xy ( ); …… Router Init ( ); handle_msg ( ); Routing_func ( ); Check_route ( ); …… Sink Init ( ); handle_msg ( ); Receive_msg ( ); Link Init ( ); handle_msg ( ); Get_latency ( ); Get_bw ( ); …… Generator Init ( ); handle_msg ( ); Generate_pkt ( ); Inc_credits ( ); …… Class Diagram GeNolator - QNoC Simulator

  13. Event list Insert_event ( ); Delete_event ( ); static list<pEvent> ev_list; …… Packet Get_type ( ); Get_sl ( ); List<pFlit> flits_; …… Flit Get_type ( ); Get_sl ( ); …… Event Get_type ( ); Ger_sndr ( ); …… Class Diagram GeNolator - QNoC Simulator

  14. Event Get_type ( ); Ger_sndr ( ); …… Event list Insert_event ( ); Delete_event ( ); …… EVT time:xx EVT time:xx EVT time:xx EVT time:xx EVT time:xx Event Queue (Event Driven Simulation Engine) • control and advance trough simulation. • Store all Events: flit arrived, try to send flit, credits messages and more. • Events ordered by future execution time. GeNolator - QNoC Simulator

  15. Generator • Generates packets - length, destination, sending time. • statistical function (uniformly distributed) calculates length and send time. • Control (generate packet, send flit) by events. Generator Init ( ); handle_msg ( ); Generate_pkt ( ); Inc_credits ( ); …… GeNolator - QNoC Simulator

  16. Sink Init ( ); handle_msg ( ); Receive_msg ( ); Sink • Receives flits, assembles it to packets and writes to log. Packet Get_type ( ); Get_sl ( ); …… Flit Get_type ( ); Get_sl ( ); …… GeNolator - QNoC Simulator

  17. Link • Connects between any 2 other network objects (generator, sink, router). • Link simulation based on user input of BW, latency, basic time unit (for link busy calculation). Link Init ( ); handle_msg ( ); Get_latency ( ); Get_bw ( ); …… GeNolator - QNoC Simulator

  18. Router • 4 inputs, 4 outputs. Routes flits according to XY routing function, S.L priority, and round robin to prevent starvation. • Load balance of link partner is based on credits. • Enables QoS by giving routing priority to high S.L flits above low S.L flits. Router Init ( ); handle_msg ( ); Routing_func ( ); Check_route ( ); …… GeNolator - QNoC Simulator

  19. Simulator Modularity • Adding functionality to simulated hardware is very easy. • Example1: changing routing algorithm • Replace ‘routing_func’ method in router.cpp with new implementation • Example2: add more S.L: • Change defined SL_num parameter in global.h • Example3: change link modulation: • Replace ‘get_delay’ method implementation in link.cpp GeNolator - QNoC Simulator

  20. Coding Procedures • VIRTUAL functions in parent classes - enforce rules on future code additions • Using standard STL library • Event Driven, no polling • Emphasis on faster run time: • Not using managed code (simple C++) • Simple hierarchies • Using initializer list feature • Return Value Optimization (RVO) • Inlining (more memory, less run rime) GeNolator - QNoC Simulator

  21. GENERATOR Output log example 2 1 4 • Simple Network setup: • Part of the log (all events shown) [time] [node_id] [action performed] • 488.943 - node_2: routing FLIT from node:4 to node:5 • 488.943 - node_5: passing FLIT from node:2 to node:3 • 488.944 - node_1: sent flt type=2 of pkt 31 to link node_id=4 • 488.944 - node_3: received flit type=1 • 488.944 - node_1: increasing credits by 5 • 488.944 - node_4: passing FLIT from node:1 to node:2 • 488.945 - node_2: routing FLIT from node:4 to node:5 • 488.945 - node_5: passing FLIT from node:2 to node:3 • 492.791 - node_1: generated pkt node_id=1 sl=1 length=4 dst=3 • 492.791 - node_1: sent flt type=0 of pkt 32 to link node_id=4 • 492.791 - node_4: passing FLIT from node:1 to node:2 • 498.943 - node_3: received flit type=1 3 5 ROUTER SINK GeNolator - QNoC Simulator

  22. Work Left • Testing & verification • Separating log messages to layers by importance • Writing project book GeNolator - QNoC Simulator

  23. Conclusions • The most complicated module is the router – should be built at the beginning. • Starting from a simple simulator helps to better understand the system. • Writing your own simulator allows for fast/easy feature addition and maintains structural hierarchy. GeNolator - QNoC Simulator

  24. Points For Future Expansion • Generator - Add different statistic generation models • Router – Support more S.L, add different routing function, links load balancing. • Multithreading ? • Log – interactive display to support our logging layers GeNolator - QNoC Simulator

  25. Gratitude's • Thanks to Zigi for helping and mentoring us through the different stages of the project. • Thanks to SW lab for the facilities. • Thanks to Ilana. • Project is based on the article: “QNoC: QoS architecture and design process for Network on Chip” by Evgeny Bolotin, Israel Cidon, Ran Ginosar and Avinoam Kolodny. • Diagrams are borrowed from QNoC2003 article • link to article: http://webee.technion.ac.il/matrics/papers/QNoC-Dec2003.pdf GeNolator - QNoC Simulator

  26. Backup1 – Router Architecture GeNolator - QNoC Simulator

  27. Backup2 – Router Data Flow GeNolator - QNoC Simulator

More Related