230 likes | 481 Views
Survey of NoC architectures - Network interfaces. Advanced Topics in VLSI Network-on-Chip. Ziv Berkovich. Spring 2008. Introduction. Networks on chip (NoC’s) have been proposed as a solution to the interconnect problem for highly complex chips.
E N D
Survey of NoC architectures - Network interfaces Advanced Topics in VLSINetwork-on-Chip Ziv Berkovich Spring 2008
Introduction Networks on chip (NoC’s) have been proposed as a solution to the interconnect problem for highly complex chips. We must provide a smooth transition from buses to NoC’s.
Main Goals (A) Decouple computation (IP modules) from communication (NoC). - Enables work with varied characteristics modules. (B) Provide backward compatibility to existing bus protocols. (transaction-based-protocols: AXI,OCP,DTL). (C) Low-cost implementation.
The NoC’s abstraction layers and its relation to the OSI reference stack The mapping of the three NoC’s abstraction layers to the OSI reference stack model. Encapsulation allows each layer to fully rely on the services provided by the level below
NA Layer The NA layer: Hides the topology and implementation the applications at the core layer. - Currently used are not suitable for chips.
The Network Adaptor Network Interface (NI): - Packet Based Format. - Adapted to the NoC. Core Interface (CI): - Transaction based messages. - Adapted to the core’s bus protocol.
Classification by Interface 3 Types of Network Adapter: 1. Slave Network Adapter: OCP interface: - can only receive OCP master signals. - can only respond with OCP slave signals. - contains an OCP slave control unit (controls the signal timing and communication phase). network interface : - recognizes response type packets . - output request type packets .
Classification by Interface 2. Master Network Adapter. 3. Duplex Network Adapter.
Definition /NA Tasks 1. Identify Traffic Type. Function accordingly. 2. Determining the packet formats. Assembling packets. 3. Handling congestion problem into the network (by the NA). 4. Setting priority for different traffic types and schedule them accordingly. 5. Connection setup and teardown. 6. Organizing un-ordered flits delivery. 7. Synchronization.
1.Determining Traffic Type. Function accordingly. Packing, Priority, Virtual Channel, Connection Setup will be followed accordingly. The first thing the NA does when presented with a request or response by the IP core. The NA recognize the type of the wanted connection/ service. (OCP:MCmd, MReqInfo).
2. Determining the packet formats. Assembling packets. Slave NA: - Determining the packet formats for different communication traffics in the network. - Building Packets. (Adding Headers: routing information/connection num, source address, packet type, credits). - Segment packet to flits. Regulating flow of information - A fast process on the IP core must not overrun a slow one. (registers, SCmdAccept OCP signal).
2. Determining the packet formats. Assembling packets. Master NA: - Assembling flits to packets. - Depacketizing response packets and presents it to the connected IP core while complying to the OCP protocol. • Determine packet type - handle payload accordingly. (issuing data, update connection tables).
3. Handling congestion problem into the network (by the NA). Ensure congestion avoidance? - for a known blocked route: can hold flits in output queues. - keep sending flits in other virtual channels. Problem: - long queues cost in latency, area…. Solution: - use a “full” signal for each virtual channel. - keep creating flits for other virtual channels. - if needed: NA will not raise SCmdAccept (OCP signal) back to the module.
4. Setting priority for different traffic types and schedule them accordingly. - Each virtual channel is assigned with a particular priority. - important for the NA when: - selecting which virtual channel to send a packet on. - deciding which virtual channel to select next when receiving a packet. - Priority level assignment for different traffic classes directly affects how a certain class of traffic can maintain a certain level of guaranteed service.
4. Setting priority for different traffic types and schedule them accordingly. - Contains a priority scheduler. - Once a channel is chosen for packet processing the NA priority scheduler will keep on choosing that channel until receiving all the flits of that packet have. This mechanism ensures that one packet is processed at a time. - Static priority: NA instantiation time. - at connection setup/teardown time – no need to update the scheduler. - Dynamic priority.
5. Connection setup and teardown. - Any Guaranteed Service (GS) must have a connection. - Multi-programmed IP Cores are possible - need to address multiple cores at the same time. - which message belongs to which connection? Naming Mechanism: providing a connection ID to each GS communication path. (using a connection ID table which maps each connection ID to the actual virtual channel).
7. Synchronization The synchronizer resides between the NA and the Routing node. • GALS: Synchronizes between the synchronous IP packet to the asynchronous NoC interconnect. • Synchronous Networks: Clock Domain Crossing. * Allows the IP cores to be running at different speeds.
modular network interface architecture Split the design of the network interface in two parts: • NI kernel:providing “core” functionality: • implements the channels, packetizes/ depacketizes messages, schedules packets, credits management, Network interface synchronization ext.
modular network interface architecture • (B) NI Shells:providing extended functionality: • - implement additional connections (e.g., narrowcast, multicast). • wrappers to provide an interface to existing bus protocols, such as AXI or DTL • - other higher-level issues specific to the protocol offered to the IP.
Summary & Conclusions - Reduce Buffering.
Summary & Conclusions • Delegating NA assignments to the Noc. • Send flits in-order. • Control congestion by using OCP signals. • Modular design. Designing the Noc according to NA’ s abilities – and not necessarily adapt NA’s to Nocs!