ONL Stats Engine David M. Zar Applied Research Laboratory Computer Science and Engineering Department.

Slides:



Advertisements
Similar presentations
8086 Ahad.
Advertisements

Supercharging PlanetLab A High Performance,Multi-Alpplication,Overlay Network Platform Reviewed by YoungSoo Lee CSL.
1 SpaceWire Update NASA GSFC November 25, GSFC SpaceWire Status New Link core with split clock domains complete (Much faster) New Router core.
John DeHart ONL NP Router Block Design Review: Lookup (Part of the PLC Block)
David M. Zar Applied Research Laboratory Computer Science and Engineering Department ONL Stats Block.
Michael Wilson Block Design Review: ONL Header Format.
1 - Charlie Wiseman - 05/11/07 Design Review: XScale Charlie Wiseman ONL NP Router.
Block Design Review: Queue Manager and Scheduler Amy M. Freestone Sailesh Kumar.
David M. Zar Applied Research Laboratory Computer Science and Engineering Department ONL Freelist Manager.
1 - Charlie Wiseman, Shakir James - 05/11/07 Design Review: Plugin Framework Charlie Wiseman and Shakir James ONL.
John DeHart An NP-Based Router for the Open Network Lab Memory Map.
David M. Zar Block Design Review: PlanetLab Line Card Header Format.
1 - John DeHart, Jing Lu - 3/8/2016 SRAM ONL NP Router Rx (2 ME) HdrFmt (1 ME) Parse, Lookup, Copy (3 MEs) TCAM SRAM Mux (1 ME) Tx (1 ME) QM (1 ME) xScale.
Mart Haitjema Block Design Review: ONL NP Router Multiplexer (MUX)
John DeHart Netgames Plugin Issues. 2 - JDD - 6/13/2016 SRAM ONL NP Router Rx (2 ME) HdrFmt (1 ME) Parse, Lookup, Copy (3 MEs) TCAM SRAM Mux (1 ME) Tx.
Supercharged PlanetLab Platform, Control Overview
Processes and threads.
Flow Stats Module James Moscola September 12, 2007.
ONL NP Router xScale xScale TCAM SRAM Rx (2 ME) Mux (1 ME) Parse,
Microprocessor and Assembly Language
Microcomputer Programming
William Stallings Computer Organization and Architecture 8th Edition
University of Gujrat Department of Computer Science
An NP-Based Router for the Open Network Lab
Instruction Formats Each instruction consists of two parts:
Symbolic Instruction and Addressing
An NP-Based Ethernet Switch for the Open Network Lab Design
ONL NP Router xScale xScale TCAM SRAM Rx (2 ME) Mux (1 ME) Parse,
Instructor: Alexander Stoytchev
Design of a Diversified Router: Common Router Framework
Design of a Diversified Router: Project Management
ONL NP Router Plugins Shakir James, Charlie Wiseman, Ken Wong, John DeHart {scj1, cgw1, kenw,
Basic Processing Unit Unit- 7 Engineered for Tomorrow CSE, MVJCE.
techX and ONL Summer 2008 Plans
An NP-Based Router for the Open Network Lab
CS170 Computer Organization and Architecture I
Design of a Diversified Router: IPv4 MR (Dedicated NP)
Flow Stats Module James Moscola September 6, 2007.
Introduction to Micro Controllers & Embedded System Design Addressing Mode Department of Electrical & Computer Engineering Missouri University of Science.
An NP-Based Router for the Open Network Lab Overview by JST
8086 Ahad.
Supercharged PlanetLab Platform, Control Overview
Next steps for SPP & ONL 2/6/2007
IXP Based Router for ONL: Architecture
An NP-Based Router for the Open Network Lab
Morgan Kaufmann Publishers Computer Organization and Assembly Language
Symbolic Instruction and Addressing
QM Performance Analysis
Design of a Diversified Router: Project Assignments and Status Updates
SPP V1 Memory Map John DeHart Applied Research Laboratory Computer Science and Engineering Department.
Planet Lab Memory Map David M. Zar Applied Research Laboratory Computer Science and Engineering Department.
Code Review for IPv4 Metarouter Header Format
Code Review for IPv4 Metarouter Header Format
An NP-Based Router for the Open Network Lab Meeting Notes
An NP-Based Router for the Open Network Lab Project Information
Implementing an OpenFlow Switch on the NetFPGA platform
Introduction to Micro Controllers & Embedded System Design
Symbolic Instruction and Addressing
A High Performance PlanetLab Node
SPP Router Plans and Design
IXP Based Router for ONL: Architecture
8051 ASSEMBLY LANGUAGE PROGRAMMING
Chapter 6 –Symbolic Instruction and Addressing
Design of a Diversified Router: Project Management
Reference Router on NetFPGA 1G
Chapter 11 Processor Structure and function
Information Representation: Machine Instructions
Computer Architecture
Part I Data Representation and 8086 Microprocessors
COMPUTER ARCHITECTURE
Presentation transcript:

ONL Stats Engine David M. Zar Applied Research Laboratory Computer Science and Engineering Department

Stats Engine The Stats Engine will be a single ME devoted to accepting messages in a scratch ring and performing increment and add operations to counters. All MEs that need to update counters will use the Stats Engine Operations supported will be Atomic increment (+1) Atomic add (+data) Format of the commands will be Opcode(4b) Data (12b) Index (16b)

Opcodes Opcode – 0011 +1, +data pre-q counter specified in Index Opcode(4b) Data (12b) Index (16b) Opcode – 0011 +1, +data pre-q counter specified in Index 0111 +1, +data post-q counter specified in Index 0010 +1 pre-q counter specified in Index 0110 +1 post-q counter specified in Index 0001 +data pre-q counter specified in Index 0101 +data post-q counter specified in Index 1011 +1, +data register specified in Index 1010 +1 register specified in Index

Stats Counters Each Index specifies a group of four counters Pre-Q packet count Pre-Q byte count Post-Q packet count Post-Q byte count The packet counters get updated when the +1 instructions are specified (opcodes 0-1-) The byte counter get updated when the +data instructions are specified (opcodes 0--1) For plug-ins, the use for each counter can be redefined but the opcodes do not change (i.e. each stats index corresponds to two incrementers and two adders).

Stats Registers For system-wide counters, we define a separate set of registers to handle them. RX (packet and byte, 5 ports  10 words) TX (packet and byte, 5 ports  10 words) Drop counts (10 words) Plug-in use (four per plug-in  20 words) 10+10+10+20 = 50 so reserve 64 words for these The register gets incremented when the +1 instructions are specified (opcodes 101-) The register gets added to updated when the +data instructions are specified (opcodes 10-1) The RX and TX counters will be assigned on even-word boundaries (lsb = 0) so we associate the packet and byte coutners, together, and can do the +1, +data instruction on them in one command For plug-ins, the allocation of each register is under the control of the plug-in.

ONL Router Counter Registers // RX Per Port registers: (Updated by MUX) ONL_ROUTER_RX_PORT0_PKT_CNTR ONL_ROUTER_RX_PORT0_BYTE_CNTR ONL_ROUTER_RX_PORT1_PKT_CNTR ONL_ROUTER_RX_PORT1_BYTE_CNTR ONL_ROUTER_RX_PORT2_PKT_CNTR ONL_ROUTER_RX_PORT2_BYTE_CNTR ONL_ROUTER_RX_PORT3_PKT_CNTR ONL_ROUTER_RX_PORT3_BYTE_CNTR ONL_ROUTER_RX_PORT4_PKT_CNTR ONL_ROUTER_RX_PORT4_BYTE_CNTR // TX Per Port registers: (Updated by HF) ONL_ROUTER_TX_PORT0_PKT_CNTR ONL_ROUTER_TX_PORT0_BYTE_CNTR ONL_ROUTER_TX_PORT1_PKT_CNTR ONL_ROUTER_TX_PORT1_BYTE_CNTR ONL_ROUTER_TX_PORT2_PKT_CNTR ONL_ROUTER_TX_PORT2_BYTE_CNTR ONL_ROUTER_TX_PORT3_PKT_CNTR ONL_ROUTER_TX_PORT3_BYTE_CNTR ONL_ROUTER_TX_PORT4_PKT_CNTR ONL_ROUTER_TX_PORT4_BYTE_CNTR // IP Drop registers (Updated by PLC) ONL_ROUTER_IP_HEC_DROP_CNTR ONL_ROUTER_IP_LENGTH_ERR_DROP_CNTR ONL_ROUTER_IP_HDR_LENGTH_ERR_DROP_CNTR ONL_ROUTER_IP_VERSION_ERR_DROP_CNTR

ONL Router Counter Registers // PLC Drop registers (Updated by Parse, Lookup or Copy) ONL_ROUTER_PLC_TO_PLUGIN_DROP_CNTR ONL_ROUTER_PLC_TO_XSCALE_DROP_CNTR // QM Drop registers (Updated by QM) ONL_ROUTER_QUEUE_OVERFLOW_DROP_CNTR // XScale Drop registers (Updated by XScale) ONL_ROUTER_XSCALE_DROP_CNTR // Rx Drop registers (Updated by Rx) ONL_ROUTER_RX__DROP_CNTR // Tx Drop registers (Updated by Tx) ONL_ROUTER_TX_DROP_CNTR // Per Block Generic Error Counters ONL_ROUTER_RX_GENERIC_ERROR_CNTR ONL_ROUTER_MUX_GENERIC_ERROR_CNTR ONL_ROUTER_PLC_GENERIC_ERROR_CNTR ONL_ROUTER_QM_GENERIC_ERROR_CNTR ONL_ROUTER_HF_GENERIC_ERROR_CNTR ONL_ROUTER_TX_GENERIC_ERROR_CNTR ONL_ROUTER_STATS_GENERIC_ERROR_CNTR ONL_ROUTER_FREELISTMGR_GENERIC_ERROR_CNTR

ONL Router Counter Registers // Plugin 0 Counters (for use however Plugin writer wants to use them) ONL_ROUTER_PLUGIN_0_CNTR_0 ONL_ROUTER_PLUGIN_0_CNTR_1 ONL_ROUTER_PLUGIN_0_CNTR_2 ONL_ROUTER_PLUGIN_0_CNTR_3 // Plugin 2 Counters (for use however Plugin writer wants to use them) ONL_ROUTER_PLUGIN_1_CNTR_0 ONL_ROUTER_PLUGIN_1_CNTR_1 ONL_ROUTER_PLUGIN_1_CNTR_2 ONL_ROUTER_PLUGIN_1_CNTR_3 ONL_ROUTER_PLUGIN_2_CNTR_0 ONL_ROUTER_PLUGIN_2_CNTR_1 ONL_ROUTER_PLUGIN_2_CNTR_2 ONL_ROUTER_PLUGIN_2_CNTR_3 // Plugin 3 Counters (for use however Plugin writer wants to use them) ONL_ROUTER_PLUGIN_3_CNTR_0 ONL_ROUTER_PLUGIN_3_CNTR_1 ONL_ROUTER_PLUGIN_3_CNTR_2 ONL_ROUTER_PLUGIN_3_CNTR_3 // Plugin 4 Counters (for use however Plugin writer wants to use them) ONL_ROUTER_PLUGIN_4_CNTR_0 ONL_ROUTER_PLUGIN_4_CNTR_1 ONL_ROUTER_PLUGIN_4_CNTR_2 ONL_ROUTER_PLUGIN_4_CNTR_3

Stats Counter Priority There are two levels of priority for Stats Counters High-priority (high-speed) are kept in local memory. There are 64 sets of counters for the router and 64 for the plug-ins Low-priority (low-speed) are in SRAM. There are 216-128 = 65408 of these. Stats Counters 0-127 point to the high-priority counters while 128-65535 are low-priority counters. Using low-priority Stats Counters to count events that happen at high speed may degrade system performance (being a pre-Q counter on a high-priority queue, for example) Plug-ins need to be aware of the segmentation of priority so they can use the proper priority counters based on needs Stats Registers are always high-priority One ME thread will be used to write 8W chunks of the local memory counters/registers to SRAM so that each counter/register is updated in SRAM several times a second.

Local Memory Map Status Registers 63 Reserved 64 127 63 Reserved 64 127 Stats Counters (router) 64*4W = 256W 128 383 Stats Counters (plug-ins) 384 639