CS/CoE 536 : Lockwood 1 CS/CoE 536 Reconfigurable System On Chip Design Lecture 9 : MP3 Working Draft Washington University Fall 2002

Slides:



Advertisements
Similar presentations
Identifying MPLS Applications
Advertisements

NetFPGA Project: 4-Port Layer 2/3 Switch Ankur Singla Gene Juknevicius
EECB 473 Data Network Architecture and Electronics Lecture 3 Packet Processing Functions.
Differentiated Services. Service Differentiation in the Internet Different applications have varying bandwidth, delay, and reliability requirements How.
Nick McKeown CS244 Lecture 6 Packet Switches. What you said The very premise of the paper was a bit of an eye- opener for me, for previously I had never.
4-1 Network layer r transport segment from sending to receiving host r on sending side encapsulates segments into datagrams r on rcving side, delivers.
10 - Network Layer. Network layer r transport segment from sending to receiving host r on sending side encapsulates segments into datagrams r on rcving.
t Popularity of the Internet t Provides universal interconnection between individual groups that use different hardware suited for their needs t Based.
CS 268: Lecture 12 (Router Design) Ion Stoica March 18, 2002.
Katz, Stoica F04 EECS 122: Introduction to Computer Networks Switch and Router Architectures Computer Science Division Department of Electrical Engineering.
Internet QoS Syed Faisal Hasan, PhD (Research Scholar Information Trust Institute) Visiting Lecturer ECE CS/ECE 438: Communication Networks.
24-1 Chapter 24. Congestion Control and Quality of Service part Quality of Service 23.6 Techniques to Improve QoS 23.7 Integrated Services 23.8.
Computer Networks Switching Professor Hui Zhang
A Scalable, Cache-Based Queue Management Subsystem for Network Processors Sailesh Kumar, Patrick Crowley Dept. of Computer Science and Engineering.
WAN Technologies & Topologies Lecture 8 October 4, 2000.
T. S. Eugene Ngeugeneng at cs.rice.edu Rice University1 COMP/ELEC 429 Introduction to Computer Networks Lecture 8: Bridging Slides used with permissions.
Jon Turner (and a cast of thousands) Washington University Design of a High Performance Active Router Active Nets PI Meeting - 12/01.
Integrated Services (RFC 1633) r Architecture for providing QoS guarantees to individual application sessions r Call setup: a session requiring QoS guarantees.
The Layered Protocol Wrappers 1 Florian Braun, Henry Fu The Layered Protocol Wrappers: A Solution to Streamline Networking Functions to Process ATM Cells,
10/8/2015CST Computer Networks1 IP Routing CST 415.
Applied research laboratory David E. Taylor Users Guide: Fast IP Lookup (FIPL) in the FPX Gigabit Kits Workshop 1/2002.
Washington WASHINGTON UNIVERSITY IN ST LOUIS Packet Routing Within MSR Fred Kuhns
Salim Hariri HPDC Laboratory Enhanced General Switch Management Protocol Salim Hariri Department of Electrical and Computer.
CS/CoE 536 : Lockwood 1 CS/CoE 536 Reconfigurable System On Chip Design Lecture 4 : Demonstration of Machine Problem 1 : CAM-based Firewall Washington.
© 2006 Cisco Systems, Inc. All rights reserved. Optimizing Converged Cisco Networks (ONT) Module 3: Introduction to IP QoS.
1 Congestion Control Computer Networks. 2 Where are we?
Extensible Networking Platform Lockwood / Zuver - Applied Research Laboratory -- Extensible Networking Development of a System-On-Chip Extensible.
CS/CoE 536 : Lockwood 1 Project Integration : In order to ensure that projects can be integrated at the end of the semester, a few rules have been developed.
4/19/20021 TCPSplitter: A Reconfigurable Hardware Based TCP Flow Monitor David V. Schuehler.
Lecture 13: Reconfigurable Computing Applications October 10, 2013 ECE 636 Reconfigurable Computing Lecture 11 Reconfigurable Computing Applications.
Hot Interconnects TCP-Splitter: A Reconfigurable Hardware Based TCP/IP Flow Monitor David V. Schuehler
Field Programmable Port Extender (FPX) 1 Modular Design Techniques for the FPX.
Department of Computer Science and Engineering Applied Research Laboratory Architecture for a Hardware Based, TCP/IP Content Scanning System David V. Schuehler.
CS 447 Network & Data Communication QoS Implementation for the Internet IntServ and DiffServ Department of Computer Science Southern Illinois University.
CS/CoE 536 : Lockwood 1 CS/CoE 536 Reconfigurable System On Chip Design Lecture 7 : Demonstration of Machine Problem 2 : SPAM FILTER Washington University.
High-Speed Policy-Based Packet Forwarding Using Efficient Multi-dimensional Range Matching Lakshman and Stiliadis ACM SIGCOMM 98.
T. S. Eugene Ngeugeneng at cs.rice.edu Rice University1 COMP/ELEC 429 Introduction to Computer Networks Lecture 18: Quality of Service Slides used with.
CS440 Computer Networks 1 Packet Switching Neil Tang 10/6/2008.
+ Routing Concepts 1 st semester Objectives  Describe the primary functions and features of a router.  Explain how routers use information.
1 A quick tutorial on IP Router design Optics and Routing Seminar October 10 th, 2000 Nick McKeown
CS/CoE 536 : Lockwood 1 Step 1 : Submit Project Information Visit : –Provide Project.
Virtual-Channel Flow Control William J. Dally
EE 122: Integrated Services Ion Stoica November 13, 2002.
CS/CoE 536 : Lockwood 1 CS/CoE 536 Reconfigurable System On Chip Design Lecture 11 : Priority and Per-Flow Queuing in Machine Problem 3 (Revision 2) Washington.
Network Layer4-1 Chapter 4 Network Layer All material copyright J.F Kurose and K.W. Ross, All Rights Reserved Computer Networking: A Top Down.
Field Programmable Port Extender (FPX) 1 Modular Design Techniques for the Field Programmable Port Extender John Lockwood and David Taylor Washington University.
CS/CoE 536 : Lockwood 1 CS/CoE 536 Reconfigurable System On Chip Design Lecture 10 : MP3 Working Draft Washington University Fall 2002
Jon Turner Extreme Networking Achieving Nonstop Network Operation Under Extreme Operating Conditions DARPA.
1 Lecture 15 Internet resource allocation and QoS Resource Reservation Protocol Integrated Services Differentiated Services.
Network layer (addendum) Slides adapted from material by Nick McKeown and Kevin Lai.
Chapter 3 Part 3 Switching and Bridging
Washington University
Instructor Materials Chapter 6: Quality of Service
Modular Design Techniques for the FPX
CS 268: Router Design Ion Stoica February 27, 2003.
ARP and RARP Objectives Chapter 7 Upon completion you will be able to:
Packet Forwarding.
Chapter 3 Part 3 Switching and Bridging
© 2008 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Chapter 6: Quality of Service Connecting Networks.
Washington University
Network Core and QoS.
Layered Protocol Wrappers Design and Interface review
Washington University
Implementing an OpenFlow Switch on the NetFPGA platform
EE 122: Lecture 7 Ion Stoica September 18, 2001.
COMP/ELEC 429 Introduction to Computer Networks
Chapter 3 Part 3 Switching and Bridging
Introduction to Packet Scheduling
Introduction to Packet Scheduling
Network Core and QoS.
Presentation transcript:

CS/CoE 536 : Lockwood 1 CS/CoE 536 Reconfigurable System On Chip Design Lecture 9 : MP3 Working Draft Washington University Fall John Lockwood Copyright 2002

CS/CoE 536 : Lockwood 2 Overall CS536 Machine Problem Structures Layered Protocol Wrappers Content- based Match (regex) (MP2) CAM-based Firewall (MP1) Flow Buffer Queue Manager (MP 3) Input Traffic From Linecard Firewall on a Chip ( Boundry of the RAD on the FPX, a VirtexE 2000 FPGA ) Output Traffic To Linecard or switch p ppp Off-Chip Synchronous Random Access Memory (SDRAM) Match vector Flow# from CAM Free List Manager Identify packets Based on Head.PtrTail.Ptr Free.Ptr 16 Off-Chip Static Random Access Memory (SRAM)

CS/CoE 536 : Lockwood 3 Extension to CAM Lookup Filter Number of CAM entries –Expanded to 4 entries Additional Field in CAM –FlowID returns Additional Field in Control Packet –FlowID –Now 128 bits Priority Encoder –Output from the CAM has the FlowID from the lowest matching CAM entry.

CS/CoE 536 : Lockwood 4 Interface to Flow Buffer Signal Description --packet data going to the flow buffer PktDataIn : in std_logic_vector(31 downto 0); PktDataInValid : in std_logic; SoPktIn : in std_logic; EoPktIn : in std_logic; --packet data going out of the flow buffer PktDataOut : in std_logic_vector(31 downto 0); PktDataOutValid : in std_logic; SoPktOut : in std_logic; EoPktOut : in std_logic; --Interface with the Queue Contex ---The following two signals come from the QueueContext Tail : in std_logic_vector(31 downto 0);; TailValid : in std_logic; ---The following two signals go to the queue context NextTail : out std_logic_vector(31 downto 0);; NextTailValid : out std_logic; ---The following two signals come from the QueueContext Head : in std_logic_vector(31 downto 0);; HeadValid : in std_logic; ---The following two signals go to the queue context NextHead : out std_logic_vector(31 downto 0);; NextHeadValid : out std_logic;

CS/CoE 536 : Lockwood 5 `

6 Interface to Flow Buffer Protocol

CS/CoE 536 : Lockwood 7 Interface to Flow Buffer Timing Diagram Example

CS/CoE 536 : Lockwood 8 RAD Module Interface Cell I/O and Flow Control –32-bit wide UTOPIA-style interface w/ unique timing Off-chip Memory Access –Arbitrated access to SRAM and SDRAM via standard interface Control (clock, reset, and reconfiguration control)

CS/CoE 536 : Lockwood 9 SRAM Interface Module Interface to off-chip ZBT SRAM Abstracts modules from device specific timing Independent interface for each module Arbitrates requests and issues grant to winning module Modules retain access by holding request high after receiving grant –Modules responsible for preventing starvation

CS/CoE 536 : Lockwood 10 SRAM Interface Timing All I/O signals must be flopped at module boundary to ensure timing constraints are met Timing diagrams take reference point from inside module and assume boundary flops

CS/CoE 536 : Lockwood 11 Design Issues & Recommendations Conform to the Module Interface Specification –Make your design as easy to integrate as possible Use provided infrastructure –Enables resources on the FPGA to be shared Use Synchronous Design Techniques –Flop all module I/O signals –Use synchronous reset Simulate Design –Verify that the device Synthesize Design –Over-constrain timing delays –Optimize along the critical path of the circuit Share experience and wisdom with other developers

CS/CoE 536 : Lockwood 12 Queue Management A B C Reserved Empty Slot [implementation dependant] M[x] M[y] M[z] M[u] Other Flow State FiFi Head Pointer D M[v] Note that packets can be stored anywhere in memory Packet Store Flow State Head Pointer Tail Pointer Empty Slot Head Pointer Tail Pointer Packet Reads = 3 FiFi Packet Writes = 3

CS/CoE 536 : Lockwood 13 Initial State of Queue Reserved Empty Slot [implementation dependant] M[0] F1F1 F0F0 Head Pointer M[64k] Note that packets can be stored anywhere in memory Packet Store Flow State Head Pointer Tail Pointer Empty Slots Head Pointer Tail Pointer Packet Reads = 3 FiFi Packet Writes = 3 Reserved Empty Slot [implementation dependant] M[1]

CS/CoE 536 : Lockwood 14 New Packet Arrives A B C New Data Reserved Empty Slot [implementation dependant] M[u] FiFi Packet Store Flow State Head Pointer Tail Pointer Empty Slot Updated Pointers Head Pointer Tail Pointer Packet Reads = 3 Packet Writes = 3

CS/CoE 536 : Lockwood 15 Packet Departs Head Pointer Tail Pointer Packet Reads = 3 B C FiFi Note that packets can be stored anywhere in memory Packet Store Flow State Head Pointer Tail Pointer Empty Slot Packet Writes = 3

CS/CoE 536 : Lockwood 16 2: Queue Manager provides an address Memory pointer, x = Flow[i].tail Detailed Operation of the Flow Buffer Flow Buffer Queue Manager pp Off-Chip Synchronous Random Access Memory (SDRAM) Free List Manager Tail.PtrHead.Ptr Free.Ptr 1: New packet data arrives on Flow Number i Packet Data Flow# Packet Data 5: Queue Manager provided with new memory pointer, y. Set Flow[i].tail = y 4: New memory pointer, y, provided from free list 1: QM Decides it is time for a packet to depart. Reads Flow[i].head = z 2: packet from M[z] 3: Packet Data stored in M[x] 3: QM sets Flow[I].head = M[z].next 5: z returned to the Free List 4: M[z].data transmitted

CS/CoE 536 : Lockwood 17 LNE HE EMPTY L H A aa 12n aaa 1 n service queues traffic vector of 3DQ : destination group (for outport n) destination group (for outport 1) per-VC queues VC W VCy HEAD tail (cell room available) freelist ATM cell in cell room free cell room NE A j j LEVEL priority VC X multicast VC non-empty unicast VC VC.. linked list pointers VC table 3DQ Architecture Traffic groups –Can avoids HOL blocking Prioritized Service Queues –N Priority levels (4) –Highest priority first Per-flow Queues –Linked list –Multicast

CS/CoE 536 : Lockwood 18 VCwVCxVCyVCwVCxVCy HEAD tail head VC W VCxVCy tailhead VC LINKTO service queue removed VC re-enters link to VC removed (b) an non-SQR case (a) a service queue(c) a SQR case per-VC queue service queue: Queue Re-entry Mechanism –VC queue re-enters service queue when the VC queue is not empty –SQR Statistically and Fairly Allocates Bandwidth to VCs That Belong to the Same Service Queue.

CS/CoE 536 : Lockwood 19 DiffServ Topology At the Edge of network –Uses only a few bits of information per packet –Typically marked by a Packet Classifier Cannot trust end users to mark their own packets –Everyone would want their packets to be most important! –Berkeley Unix defaults to using high priority Cannot usually trust other networks Ingress Router (Classify) Interior Router Egress Router Interior Router Egress Router Source Host Destination Host Ingress Router (Classify) Autonomous System 1 Autonomous System 2

CS/CoE 536 : Lockwood 20 Acknowledgements This presentation mentions: –DiffServ material Van Jacobson, Differentiated Services for the Internet, First Internet2 Joint Applications/Engineering QoS Workshop, May 21-22, 1998 –IntServ / DiffServ material s02/lectures/comp249_s02_17/ –Hardware Queuing Design H. Duan, J. W. Lockwood, S. M. Kang, J.D. Will, A High- performance OC-12/OC-48 Queue Design Prototype for Input- buffered ATM Switches, IEEE Infocom '97, Kobe, Japan, April 7-11, 1997, pp

CS/CoE 536 : Lockwood 21 MP3 Assignment To Do List CAM –Provide 4 CAMs (from 2) –Add 16-bit entry called “Flow ID” to each CAM Provide output called FlowID from the CAM module Provide priority encoder so that the lower number CAM provides a value when multiple CAMs match –Add 16-bit entry called “Flow Hash” XORs bits in the header fields to produce a pseudo- unique flow identifier for each of the possible 2^112 Bits available to the CAM SRAM Flows –Initialize values to i for i=0..64k –

CS/CoE 536 : Lockwood 22 MP3 Laboratory Todo Coregen “tutorial” –Just a few screen shots that show Creation of a FIFO Instantiation of a FIFO Simulation of FIFO –We will demonstrate this in class on Monday PPT slides with screen dumps

CS/CoE 536 : Lockwood 23 Control Packet Update –Provide ability to update any CAM number, not just the first two –Add “No Transmit” and “Transmit” Control Bit (extra bit in header) Corresponds to Transmit_enable signal to QM When set, stops the QM from transmitting data. I.e., All data stays in the queue. I.e., Turn off the output I.e., Set C=0