Download presentation
Presentation is loading. Please wait.
1
GeNoLator – Generic Network Simulator Final Presentation Students: Gal Ben-Haim, Dan Blechner Supervisor: Isask'har Walter Winter 08/09 18/08/2009
2
GeNolator - QNoC Simulator2 Agenda Background Project Goals Project Overview Network Architecture SW Architecture Conclusion
3
GeNolator - QNoC Simulator3 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.
4
GeNolator - QNoC Simulator4 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.
5
GeNolator - QNoC Simulator5 Background - QNoC diagram
6
GeNolator - QNoC Simulator6 The Need Current solution - general network simulator, licensed, expensive, slow, many patches. Our Solution - open source, fast, dedicated QNoC simulator.
7
GeNolator - QNoC Simulator7 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.
8
GeNolator - QNoC Simulator8 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.
9
GeNolator - QNoC Simulator9 Network Architecture IN OUT IN OUT ROUTER GENERATOR SINK IN OUT IN OUT ROUTER SINK GENERATOR LINK LINK MSG
10
GeNolator - QNoC Simulator10 Software Architecture User input (ini file) Output File Init (building database) Network Simulation
11
GeNolator - QNoC Simulator11 SW Arch. – Network Simulation generatorSinkRouterLink Event Queue EVT time:xx EVT time:xx EVT time:xx EVT time:xx EVT time:xx EVT time:xx EVT time:xx EVT time:xx EVT time:xx LOG (output file)
12
GeNolator - QNoC Simulator12 Class Diagram 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 ( ); ……
13
GeNolator - QNoC Simulator13 Event list Insert_event ( ); Delete_event ( ); static list ev_list; …… Packet Get_type ( ); Get_sl ( ); List flits_; …… Class Diagram Event Get_type ( ); Ger_sndr ( ); …… Flit Get_type ( ); Get_sl ( ); ……
14
GeNolator - QNoC Simulator14 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. EVT time:xx EVT time:xx EVT time:xx EVT time:xx EVT time:xx Event Get_type ( ); Ger_sndr ( ); …… Event list Insert_event ( ); Delete_event ( ); ……
15
GeNolator - QNoC Simulator15 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 ( ); ……
16
GeNolator - QNoC Simulator16 Sink Receives flits, assembles it to packets and writes to log. Sink Init ( ); handle_msg ( ); Receive_msg ( ); Flit Get_type ( ); Get_sl ( ); …… Packet Get_type ( ); Get_sl ( ); ……
17
GeNolator - QNoC Simulator17 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 ( ); ……
18
GeNolator - QNoC Simulator18 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 ( ); ……
19
GeNolator - QNoC Simulator19 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
20
GeNolator - QNoC Simulator20 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)
21
GeNolator - QNoC Simulator21 Output log example 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 ROUTER GENERATOR SINK 1 4 2 5 3
22
GeNolator - QNoC Simulator22 Work Left Testing & verification Separating log messages to layers by importance Writing project book
23
GeNolator - QNoC Simulator23 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.
24
GeNolator - QNoC Simulator24 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
25
GeNolator - QNoC Simulator25 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.pdfhttp://webee.technion.ac.il/matrics/papers/QNoC-Dec2003.pdf
26
GeNolator - QNoC Simulator26 Backup1 – Router Architecture
27
GeNolator - QNoC Simulator27 Backup2 – Router Data Flow
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.