fpx network platform 1 john lockwood, [email protected] assistant professor washington...

60
FPX Network Platform 1 John Lockwood, [email protected] Assistant Professor Washington University Department of Computer Science Applied Research Lab 1 Brookings Drive Saint Louis, MO 63130 http://www.arl.wustl.edu/arl/projects/fpx/workshop_0801/ agenda.html Supported by: NSF ANI-0096052 and Xilinx Corp. Field-programmable Port Extender (FPX) August 2001 Workshop

Upload: brook-mccoy

Post on 04-Jan-2016

218 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 1

John Lockwood,[email protected]

Assistant Professor

Washington UniversityDepartment of Computer Science

Applied Research Lab1 Brookings Drive

Saint Louis, MO 63130

http://www.arl.wustl.edu/arl/projects/fpx/workshop_0801/agenda.html

Supported by: NSF ANI-0096052 and Xilinx Corp.

Field-programmable Port Extender (FPX)August 2001 Workshop

Page 2: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 2

Workshop Objectives

• Learn to accelerate network processing with reprogrammable hardware

• Understand System-On-Chip design

• Perform Hardware/Software Co-design

• Obtain hands-on experience with the Field Programmable Port Extender (FPX)

Page 3: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 3

Outline

• Motivation – Hardware enables packet processing at link speed– FPGAs provide flexibility for dynamically reconfiguration– Networks can be extended with FPGAs to provide

enhanced functionality and performance.

• Research Results– Field programmable Port Extender (FPX) allows modules

to be dynamically installed in a network.– FPX serves as an open platform for rapid prototype of

firewall and router plug-in modules– Courses and Workshops held at Washington University to

develop new System-On-Chip networking modules

Page 4: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 4

Workshop Activities

• Integrate FPX Infrastructure Components– SDRAM Memory Controller– Internet Protocol Wrappers

• Operate FPX Software Tools– NCHARGE Control Software– PARBIT FPGA Tools

• Implement Networking Modules on the FPX– Cell processing module in VHDL– Packet Processing Module– KCPSM Active Networking Module

Page 5: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 5

FPX Workshop Agenda: Times and Location

– Wednesday, Aug 15, 2001 • 8am: Breakfast

– 5th floor Jolley Atrium

• 9am-Noon: Session I – Sever 201 Lab

• Lunch – WashU Campus

• 1pm-5pm: Session II– Sever 201 Lab

– Thursday, Aug 16, 2001

• 8am: Breakfast – 5th floor Jolley Atrium

• 9am-Noon: Session III – Sever 201 Lab

• Lunch – 5th floor Jolley Atrium

• 1pm-5pm: Session IV – Sever 201 Lab

On-line Agenda:http://www.arl.wustl.edu/arl/projects/fpx/workshop_0801/agenda.html

Page 6: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 6

Building Networks with Reprogrammable hardware

Page 7: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 7

Technology Options for Evolvable Internet Hardware

...

...

...

... ...

......

Reprogrammable Hardware

Network Processors

Fle

xibi

lity

Performance

FullyReprogrammable

HighPerformance

Microprocessor

ASIC

Page 8: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 8

Reprogrammable Device Configuration

GRMLocal R outing

CLB PIP

• Routing Module : • Interconnection of Blocks

4 LUT

G4

G3

G2

G1

G

4 LUT

F4

F3

F2

F1

F

3 LUT

H

S

R

D Q

S

R

D Q

H1

Din Clk

YQ

Y

XQ

X

M

M

M

M

CLB • CLB : • Primitive element of FPGA

...

...

...

... ...

......

3rd Generation LUT-based FPGA

Pad Routing CLB M atrix I/O

M acroBlock(uP,M em)

• FPGA : • Matrix of CLBs and

Routing Modules

Page 9: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 9

The FPX Network Platform

Page 10: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 10

Configuration of Network Packet Processor

• Packet processing hardware performs:– Packet classification– Packet forwarding– Address Translation– Data modification– Packet buffering– Active Networking (Application-level data processing)

FPX

ExtenderPort

programmableField- Card

OC3/OC12/OC48

LineCardOC3/OC12/OC48

Line

NetworkPackets

NetworkPackets

Page 11: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 11

Field Programmable Port Extender

Page 12: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 12

Configuration of Internet Router

• Additionally, Router interface performs:– Internet route lookup– Traffic policing and shaping

IPP

IPP OPP

OPP

Switch

Fabric

Gigabit

IPP

IPP

OPP

OPP

FPX

ExtenderPort

programmableField-Card

OC3/OC12/OC48

Line

NetworkPackets

FPX

ExtenderPort

programmableField-Card

OC3/OC12/OC48

Line

NetworkPackets

Page 13: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 13

Port Processing at edge of Gigabit Switch

• Original Network Switch– Line card connects to

Gigabit switch backplane

Fiber Optics

Gigabit switch backplane

FPX

Line Card

SDRAMs

NID RAD SRAMs

VRM

Gigabit switch backplane SDRAMsVRM

FiberOpticsLine Card

• FPX-Enhanced Router– Line card connects to

Gigabit switch backplane

Page 14: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 14

Complete Router Platform

Page 15: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 15

Combination Router Hardware and Software

• Implement link speed opertions on hardware• Implement higher-level functions in software• Migrate functionality on the critical path

ExtenderPort

programmableField-

FPXExtender

Field-

Port

IPP

programmable

OPP

IPP

IPP OPP

OPP

IPP

FabricSwitchGigabit

WUGS

OPPFPXCardOC3/

OC12/OC48

Line

Card

SPCSmartPort

Card

SPCSmartPort

CardOC3/

OC12/OC48

Line

Page 16: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 16

Port Configuration

SRAM

To/

Fro

m o

ther

net

wor

k po

rts

InterfaceProgramming

SelectMap

Interfacetemp

AsynchronousInterface

FPX

Switch

Three Port

APICM

odul

e

Pentium

Line

Car

d

SPC

Hardware-basedPacket Processing

Virtual Circuit

Mod

ule

Software-basedPacket Processing

NID

RAD

WUGS

Switching

Lookup Table

ECEC

ccp

VC VC

VC

Error Check

VC

Circuit

Control CellProcessor

Switch

Four Port

Synch, Buffered

Data

SRAM

SRAMData

BridgeSouth

RAD

SDRAM

SRAM

Program

Bridge

North

DataData

SDRAM

Data

ModuleIntel Embedded

PCI Bus

PCI Interface

Page 17: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 17

The FPX Architecture

Page 18: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 18

Architecture of the FPX • RAD

– Large Xilinx FPGA– Attaches to SRAM and

SDRAM– Reprogrammable over

network– Provides two user-defined

Module Interfaces

• NID – Provides Utopia

Interfaces between switch & line card

– Forwards cells to RAD– Programs RAD

SRAM

EC

Mo

du

le

EC

NID

Switch LineCard

Mo

du

le

RAD

VC VC

VCVC

RAD

Program

SDRAM SDRAM

Data Data

SRAM

Data

SRAM

Data

Page 19: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 19

Field Programmable Port Extender

– NID : Network Interface Device– RAD : Reprogrammable Application Device

Page 20: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 20

FPX SRAM

– Provide low latency for fast table-lookups– Zero Bus Turnaround (ZBT) allows back-to-back

read / write operations every 10ns– Dual, Independent Memories – 36-bit wide bus

Page 21: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 21

FPX SDRAM

– Dual, independent SDRAM memories– 64-bit wide, 100 MHz– 64MByte / Module : 128 Mbyte total [expandable]– Burst-based transactions [1-8 word transfers]– Latency of 14 cycles to Read/Write 8-word burst

Page 22: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 22

Hardware Device

Page 23: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 23

FPX Module Interface

Page 24: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 24

FPX Interfaces Provides

• Well defined Interface– Utopia-like 32-bit fast data interface– Flow control allows back-pressure

• Flow Routing– Arbitrary permutations of packet flows through ports

• Dynamically Reprogrammable– Other modules continue to operate even while new

module is being reprogrammed

• Memory Access– Shared access to SRAM and SDRAM– Request/Grant protocol

Page 25: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 25

Reprogrammable Application Device (RAD)

• Spatial Re-use of FPGA Resources– Modules implemented using FPGA logic– Module logic can be individually reprogrammed

• Shared Access to off-chip resources– Memory Interfaces to SRAM and SDRAM– Common Datapath to send and receive data

Mo

du

le

Mo

du

le

Network Interfaces to NID

RAD

SRAMData

SRAM

SDRAM SDRAM

Data Data

Data

Page 26: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 26

Network Module Hardware Interface

SRAM_D_OUT[35:0]SRAM_ADDR[17:0]SRAM_WR_RD

SRAM_REQSRAM_GR

SRAM_D_IN[35:0] SRAMInterface

FPXNetworkModule

READY_L

CLKRESET_L

ENABLE_L

ModuleInterface

SDRAM_RQ

SDRAM_BL[4:0]SDRAM_ADDR[26:0]SDRAM_WR_RD

SDRAM_GRSDRAM_DATA[63:0] SDRAM

Interface

SDRAM_EN

SDRAM_OP_FIN

TCA_MOD_OUT

D_MOD_IN[31:0]SOC_MOD_IN

D_MOD_OUT[31:0]SOC_MOD_OUT

TCA_MOD_IN

DataInterface

fpx_module.vhd

Page 27: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 27

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)

Page 28: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 28

Infrastructure Services

Page 29: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 29

Routing Traffic Flows Between Modules

• Functions– Check packets for errors– Process commands

• Control, status, & reprogramming

– Implement per-flow forwarding

NID

LineCardSwitch

EC ECEC

VC VC

VC VC

VC

ccp

ccp

• Traffic flows routed among– Switch– Line Card– RAD.Switch– RAD.Linecard

Page 30: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 30

Example NID Routing Configurations

• Hardware Module Bypass (Default)

0VC

EC

LineCard

VC

ccpEC

VC VC

Switch

NID

RAD

No Modules Installed

1

2 3

Default Flow Action(Bypass)

0VC

EC

LineCardSwitch

VC

ccpEC

VC VC

Mod

ule One

ModuleInstalled

2 3

1

(Per-flow Output Queueing)Egress (SW) Processing

NID

RAD

0VC

EC

VC

ccpEC

VC

LineCardSwitch

VC

Mod

uleOne

InstalledModule

1

2 3

(IP Routing)Ingress (LC) Processing

NID

RAD

00

VC

ccp

VC

EC

VC VC

LineCardSwitch

Mod

ule

Mod

ule

EC

1

2 3

Full RAD Processing(Packet Routing and Reassembly)

NID

RAD

0

Mod

ule

Mod

ule

VCVC

ECccp

VC

EC

VC

LineCardSwitch

1

2 3

Full Loopback Testing(System Test)

NID

RAD

0

Switch

Mod

ule

Mod

ule

VCVC

ECccp

VC

EC

VC

LineCard

2 3

1

(Chained Modules)Dual Egress Processing

NID

RAD

• Egress Processing

• Ingress Processing

• Ingress+Egress

• Loopback

• Chained Egress Processing

Page 31: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 31

NID Flow Entry Example

• Problem:– Route flow on VCI 45

from Switch to Mod_sw– Route Flow on VCI 45

from Mod_sw to LC– Route Flow on VCI 45

from Linecard to Switch

• Solution– VCI [45] = 1,3,X,0

0VC

EC

NID

VC

ccpEC

VC

LineCardSwitch

VC

RAD

Mod

uleOne

InstalledModule

1

2 3

(IP Routing)Ingress (LC) Processing

__ __ __ __VCI 45

d1 d2 d3 d4

Page 32: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 32

FPX Control : NCHARGE

Page 33: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 33

Fpx_control{0-7}.{0/1}

Pictorial view of fpx_control interfaced with hardware

Control Cell Format for 32/36 bit RAD SRAM Memory Operations

OpCode = 0x15 SRAM Memory Operation ResponseOpCode = 0x14 SRAM Memory OperationVPI = 0x000, VCI = 0x0023 (35) RAD Control Cell

N/AX C(7:5)

N/AModuleIDOpCode

WORD 1

FRDV

1

F - 32 or 36 bit: 1 = 36 bit, 0 = 32 bit

FRDV

R - Read or Write: 1 = Read, 0 = WriteD - Device: 1 = Device 1, 0 = Device 0V - Valid Command: 1 = Valid command, 0 = Invalid, EOC

32 Bit format'N' Address

36 Bit format1 Address

36 Bit format2 Address

WORD 0 (31:0)

WORD 1 (31:0)

WORD 0 (31:0)

V FRD

HEC

ADDR(18:0)

ADDR(18:0)

ADDR(18:0)

WORD N

CRCSequence #

CM DATA

WORD 0

N/AW0(35:32)

W1(35:32)W0(35:32)

PTI

0

PAD

VCIGFC / VPI

OpCode

HEC

HDR

PL2

PL3

PL4

PL5

PL6

PL7

PL8

PL9

PL10

PL11

PL1

12345678910111213141516171819202122232425262728293031 0

ModuleID = 0x00 RAD Control Cell Processor

SwitchController

Page 34: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 34

Controlling the FPX

• Methods of Communication- NCHARGE- Telnet- Web Interface / CGI- Basic_send- User Applications

• Software Plug-ins- Concepts- Functionality

• Emulation– Nid_listener– Rad_listener

BasicSend

CGI

Fip MemoryManager

AccessWEBBasic Telnet

Send

NID NID

RAD

0.0

Gigabit Switch

OC-3 Link

NCHARGE 7.1

SoftwareController

Fip

RemoteApplications

VCI 76 (NID), VCI 100 (RAD)

VCI 115 (NID), VCI 123 (RAD)

(up to 32 VCIs)

Read

Washington University

RAD

NCHARGE

Page 35: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 35

Web Access to NCHARGE

- Radio Button Interface- Allows user to submit commands using CGI scripts- Provides for Switch Reset- http://fpx.arl.wustl.edu

Web Access Provides:

Page 36: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 36

FPX Control and Reconfiguration

Page 37: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 37

Switch Element

IPPIPPIPPIPPIPPIPPIPP

OPPOPPOPPOPPOPPOPPOPPOPPIPP

LCLCLCLCLCLCLCLC

LCLCLCLCLCLCLCLC

WUGS

Example: Write Configuration Memory

R A DReprogrammable

ApplicationDevice

Virtex1000E fg680

S D R A M

(ba cks id e)

8Mb

it Z

BT

SR

AM

8Mb

it Z

BT

SR

AM

S D R A M

(ba cks id e)

O SC6 2.5 M H z

O SC1 00 M H z

DeviceInterfaceNetworkN ID

R ADP rogram

FIFO E PR O MN ID

WU

GS

Sw

itch

Bac

kpla

ne C

onn

ect

or

OC

3 /

OC

12

/ OC

48 L

inec

ard

Con

nect

or

(backside)

V R M

V R M

1.8V

2.5V(backside)

P C B Trace D e ns ity

FPX

VPI

PTI = 0 0

VCI = 0x34

HEC

Reserved

7 06 5 4 2 13

CRC

Sequence #

CMData

OPCODE

Control CellSwitchController

• Switch Controller generates command to write 32-byte data element to RAD Configuration Memory

ccp

• Control Cell sent containing Memory Address and Data

• Switch Element routes control cell to FPX

• NID Element on FPX writes Data from Payload into Rad Configuration Memory

RAD Configuration Memory

Page 38: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 38

Reprogramming Logic

R A DReprogrammable

ApplicationDevice

Virtex1000E fg680

S D R A M

(ba cks id e)

8Mb

it Z

BT

SR

AM

8Mb

it Z

BT

SR

AM

S D R A M

(ba cks id e)

O SC6 2.5 M H z

O SC1 00 M H z

DeviceInterfaceNetworkN ID

R ADP rogram

FIFO E PR O MN ID

WU

GS

Sw

itch

Bac

kpla

ne C

onn

ect

or

OC

3 /

OC

12

/ OC

48 L

inec

ard

Con

nect

or

(backside)

V R M

V R M

1.8V

2.5V(backside)

P C B Trace D e ns ity

• Switch Controller writes RAD configuration memory to NID

• NID reads RAD config memory to program RAD

• NID programs at boot from EPROM

– Bitfile for RAD arrives transmitted over network via control cells

– Performs complete or partial reprogramming of RAD

• Switch Controller issues {Full/Partial} reconfigure command

Switch Element

IPPIPPIPPIPPIPPIPPIPP

OPPOPPOPPOPPOPPOPPOPPOPPIPP

LCLCLCLCLCLCLCLC

LCLCLCLCLCLCLCLC

Page 39: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 39

System-On-Chip Design using Dynamic Hardware Plugins (DHP)

Page 40: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 40

Module Loading / Unloading

FP

X M

od

ule

FP

X M

od

ule

FP

X M

od

ule

SD

RA

MS

RA

M

FPGA’s Long Lines

Intrachip Module Switching

...

Data

Combining Modules within the Chip

• Modules fit together at static I/O interfaces

• Partial reprogramming of FPGA used to install/remove modules

• Modules added and removed while other modules process packts

• Statically-configured ‘Long Lines’ provide chip-wide routing

Page 41: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 41

Implementing modules in Virtex1000E•Virtex 1000E logic resources

–Globally accessible IOBs–64 x 96 CLB array

• 4 flops/LUTs per CLB–96 Block SelectRAMs

• 4096 bits per block• 6 columns of 16 blocks• 6 columns of dedicated interconnect

Ingress Path Egress Path

Dou

ble

DH

P M

odu

le

Dou

ble DH

P M

odule

DH

P M

odu

le

DH

P M

odu

le DH

P M

odule

DH

P M

odule

•DHP Modules–64 x 12 CLB array(768 CLBs, 3072 flops)

•Double DHP Modules–64 x 24 CLB array(1536 CLBs, 6144 flops)

•16 BRAMs (8KB) per Module•3 DHP Modules per path•1 SRAM interface per path•1 SDRAM interface per path

IOB RingVersaRing

CLB columns BRAMsBRAM Interconnect

Page 42: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 42

Dynamic Hardware Plugins [On RAD FPGA]

• Module Synthesis Constraints– Infrastructure

with target regions reserved for DHP modules insertions

– PARBIT parameters

• Target Locations (Row, Col)

Right IO

BsL

eft I

OB

s

Top IOBs

RA

M

RA

M

RA

M

RA

M

RA

M

RA

M

TARGET 1 TARGET 2 TARGET 3 TARGET 4T1 (7,8) T2 (7,20) T3 (7,68) T4 (7,80)

Bottom IOBs

INFRASTRUCUTURE

Page 43: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 43

Example Application : String Processing

Page 44: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 44

“Hello, World” Module Function

P46

.. Payload ..

P45 P47P44 P47

.. Payload ..

Compare

P45 P44 P46

'L'

VCI=5

[48 bytes in12 words]

Header[5 bytes in

2 words]

Payload

'H' 'E' 'L' 'L'

'O' ' ' 'W' 'O'

PAD

'R' 'L' 'D' '.'

'H' 'E' 'L'

'O' P5

VPI VCI=5

PAD

VPI=X

P8 P9 P10 P11

P6 P7

... Copy

32 bits

Copy

Write

Match+Write

Match

Match

...

JWL:ARL 07/00

Page 45: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 45

Evolvable Internet Hardware

Place and Route FPGA

Gates(Xilinx)

Module to RAD(Ncharge)

Download

SynthesizeTo Logic

(Synplicity)

Compile Design(Vcom)

Observe NetworkBehaviour

Through Module(Ncharge)

Route Traffic

TweakDesign

Page 46: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 46

Modular Interface to SDRAM

Page 47: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 47

SDRAM Controller Overview

Module 0

Module 1

Module 2

SDRAM

SDRAM Controller

Page 48: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 48

Example : Leaky Bucket

- Buffers the incoming cells in a FIFO - Generates tokens at a regular interval

- Gives out a cell from the FIFO when the number of tokens > 0 - Destroys a token when a cell is given out

bursty data leaking data

Page 49: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 49

Internet Protocol Wrappers

Page 50: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 50

Payload Processing Environment

– Higher-Level data processing on the FPX– Wrapper Framework

NetApp

Wrapper

Wrapper

Page 51: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 51

Frame / IP Packet / UDP / Application Layers

UDP Processor

IP Processor

Cell Processor

Frame Processor

Data Output

Data Input

Application-levelHardware Module

Interfaces to Off-Chip Memories

Page 52: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 52

Soft-core Active Network Processor : The KCPSM Network Module

Page 53: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 53

The FPX KCPSM Module

KCPSM

DATA

MEMORY

PROGRAM

MEMORY

ADDR INST

INTERFACED_MOD_IN

CONTROL

ADDR DATA

PROTOCOL WRAPPERS

INSTADDRPORT_IDBUSI/O

BUS

UD

P P

AC

KE

TS

AT

M C

EL

LS

D_OUT_MOD

CONTROLSIGNALS

UD

P P

AC

KE

TS

AT

M C

EL

LS

ENABLE_L READY_L

SOC_MOD_IN

TCA_MOD_IN

SOC_OUT_MOD

TCA_OUT_MOD

D_OUT_MODD_MOD_IN

CLKRESET_L

SIGNALS

Page 54: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 54

Simulating a KCPSM Program

• The input data cell

• The output data cell

The 1st – 2nd word is the ATM Cell Header

The 1st – 2nd word is the ATM Cell Header

The 3rd – 7th word is the Internet Protocol Header

The 3rd – 7th word is the Internet Protocol Header

The 8th – 9th word is the UDP Header

The 8th – 9th word is the UDP Header

The 10th word specifies it is a data packet

The 10th word specifies it is a data packet

The 11th – 13th word is the data string ‘Hello World’

The 11th – 13th word is the data string ‘Hello World’

The 1st – 2nd word is the ATM Cell Header

The 1st – 2nd word is the ATM Cell Header

The 3rd – 7th word is the Internet Protocol Header

The 3rd – 7th word is the Internet Protocol Header

The 8th – 9th word is the UDP Header

The 8th – 9th word is the UDP Header

The 10th word specifies it is a data packet

The 10th word specifies it is a data packet

The 11th – 13th word is the data string ‘Uryyb Jbeyq’

The 11th – 13th word is the data string ‘Uryyb Jbeyq’

Page 55: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 55

Applications for the FPX: Fast IP Lookup (FIPL)

Page 56: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 56

Fast IP Lookup Algorithm

– Function:• Search for best matching prefix using Trie algorithm

– Contributors• Will Eatherton, Zubin Dittia, Jon Turner, David Taylor, David Wilke,

Prefix Next Hop*

01*47

10* 2110* 90001* 11011* 000110* 501011* 3

0 1

0

0 0

0

0

0

1 1

1

1 1

1

1

1

1

Page 57: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 57

Hardware Implementation in the FPX

SRAM1

SRAM2

IP LookupEngine

counter

On-Chip Cell Store

SRAM1 Interface

Control CellProcessor

PacketReassembler

RAD FPGA

NID FPGA

ExtractIP Headers

Remap VCIsfor IP packets

LC SW

RequestGrant0 1

0

0 0

0

0

0

1 1

1

1 1

1

1

1

1

Page 58: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 58

Fast IP Lookup (FIPL) ApplicationRoute add 141.142.5.0/24 8Route delete 141.142.0.0/16

Controlcells

FIPLFast IP Lookup Lookup

(X.Y.Z.W)Nexthop

FPGA

RAM External SRAM

FIPLMemory Manager

Software

Commands

HardwareLookup

Page 59: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 59

Conclusion

• Field programmable Port Extender (FPX) Platform

– Open Platform for hardware development• Modular Interfaces

– Allows integration components to build System-on-Chip (SoC)

• Library of Internet packet processing functions– Simplifies design of new functionality

• Interoperable w/existing software systems– Unifies Active Networking Hardware with Software

– FPX Homepage• http://www.arl.wustl.edu/arl/projects/fpx/

Page 60: FPX Network Platform 1 John Lockwood, Lockwood@arl.wustl.edu Assistant Professor Washington University Department of Computer Science Applied Research

FPX Network Platform 60

Acknowledgements

• Several Individuals have contributed to this work:

– Washington University• Jon Turner• Sarang Dharmapurikar • Todd Sproull• David Taylor• Florian Braun• Henry Fu• Dave Lim• Edson Horta

– Xilinx• Dave Parlour