1 / 23

Genesis Kernel on IXP1200

Genesis Kernel on IXP1200. Stephen Chou Michael Kounavis Andrew Campbell John Vicente Columbia University. programming a network processor-based router. architectural constraints. resource constraints. performance constraints. binding policy/methods. time scale. complexity.

aradia
Download Presentation

Genesis Kernel on IXP1200

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. Genesis Kernel on IXP1200 Stephen Chou Michael Kounavis Andrew Campbell John Vicente Columbia University

  2. programming a network processor-based router architectural constraints resource constraints performance constraints binding policy/methods time scale complexity

  3. StrongARM Core PCI PCI SRAM SRAM SDRAM SDRAM IX Bus Interface Microengines NPs and general-purpose processors

  4. IXP1200 microengine • 4 contexts • 128 General Purpose Registers (GPRs) divided into Banks A and B • 128 Address Registers • read and write transfer registers • SDRAM and SRAM • addressing modes • absolute • context relative

  5. programming the data path Code Granularity Fine grain Coarse grain Code Synthesis Dynamic binding Monolithic Loader Scripting Complexity? High ?? Low Flexibility? High High Low Reusability? High Low

  6. dynamic binding issues • headroom limitations • register space and state management • choice of the binding method • data path admission control • processor handoffs • instruction store limitation

  7. binding methods • dispatch loop • MicroACE Extensions of the ACE framework in Intel IXP SDK 2.0 • nested if-then-else on global binding state for determining the next code module • vector table • table (stored in fast memory) of pointers to code modules • code morphing • used by NetBind

  8. entry point entry point input argument input argument input argument input argument input argument input argument immed_w0[arg1,0x0420] immed_w1[arg1, 0x0500] exit_point#: br[entry_point2#] exit point exit point exit point exit_point#: br[entry_point1#] .tmd module .tmd module .tmd module .tmd module entry point entry point entry_point1#: input arguments global variables entry points exit points input arguments global variables entry points exit points input arguments global variables entry points exit points input arguments global variables entry points exit points immed_w0[arg2,0x3300] immed_w1[arg2,0x0000] exit point exit point exit_point#: br[entry_point2#] entry point entry point entry_point2#: immed_w0[arg2,0x0200] immed_w1[arg2,0x0400] exit point exit point After Binding NetBind code space + immed_w0[arg1,0x0000] immed_w1[arg1, 0x0000] exit_point0#: br[0] exit_point1#: br[0] entry_point1#: immed_w0[arg2,0x0000] immed_w1[arg2,0x0000] exit_point1#: br[0] entry_point2#: immed_w0[arg2,0x0000] immed_w1[arg2,0x0000] Before Binding

  9. NetBind state space pipeline #2 argument registers (addresses:9-12) shared absolute registers (addresses: 13-15) register space algorithm #1 algorithm #2 algorithm #3 component #1 component #2 component #3 pipeline #1 pipeline registers (addresses:0-8) pipeline registers SRAM SDRAM Scratchpad memory space packet buffers routing table MIB, performance stats forwarding table

  10. binding overhead

  11. throughout analysis

  12. delay analysis

  13. virtual networks on demand virtual network physical network

  14. programming environment state control plane data path routelet: virtual router binding interface base metabus routelet state control unit spawning controller datapath controller allocation controller composition controller forwarding engine output port input port

  15. Genesis Kernel (GK) 1.0 architecture algorithms binding interface base component storage profiling scripts metabus script parser control plane routelet state naming service spawning controller datapath controller composition controller allocation controller loader cp binder admission controller forwarding engine output port input port data path netbind

  16. routlet profiling script routelet state virtual links mappings routing table entries module listing component bindings forwarding engine forwarding engine output port output port input port input port spawning a routelet control plane spawning controller composition controller allocation controller datapath controller spawning cp binder routing mgr admission controller NetBind IXP datapath VN Demultiplexer capacity arbitrator packets data path

  17. data path specifications forwarding engines virtual: router specification input ports output ports pipelines network processor specification components symbols exit point global variable input argument physical: IXP1200 realization entry point transport modules

  18. dynamic binding in GK network processor related specification datapath constructor transport modules (.tmd files) StrongARM Core IXP1200 related specification datapath admission control binder microengines

  19. Genesis Developer Workbench

  20. Genesis “Box” testbed

  21. Genesis Kernel status • NetBind Code release • www.comet.columbia.edu/genesis/netbind • Genesis Kernel (GK) v1.0 developed • datapaths implemented on IXP1200 • Genesis Developer Workbench front-end • Genesis testbed consisting of 15 IXP1200 evaluation platforms • Release March 2002

  22. Genesis publications • "The Genesis Kernel: A Programming System for Spawning Network Architectures", JSAC, March 2001. • “Sphere: A Binding Model and Middleware for Routing Protocols “, OPENARCH' 01, April 2001. • "Netbind: A Binding Tool for Constructing Data Paths in Network Processor-Based Routers", OPENARCH’02, June 2001.

  23. thanks for listening

More Related