Indian Institute of Science Supercomputer Education and ...people.ac.upc.edu/govind/tr_lhpc.pdf ·...

30
Indian Institute of Science Supercomputer Education and Research Center Performance Modeling and Architecture Exploration of Network Processors S. Govind R. Govindarajan SERC Technical Memo TR-LHPC-1-04 June 30, 2005 High Performance Computing Laboratory Supercomputer Education and Research Center Indian Institute of Science Bangalore - 560 012, INDIA. SERC Indian Institute of Science Bangalore India 560 012 WWW: http://hpc.serc.iisc.ernet.in/

Transcript of Indian Institute of Science Supercomputer Education and ...people.ac.upc.edu/govind/tr_lhpc.pdf ·...

Page 1: Indian Institute of Science Supercomputer Education and ...people.ac.upc.edu/govind/tr_lhpc.pdf · Supercomputer Education and Research Center Performance Modeling and Architecture

Indian Institute of Science

Supercomputer Education and Research Center

Performance Modeling and Architecture Exploration of

Network Processors

S. Govind

R. Govindarajan

SERC Technical Memo TR-LHPC-1-04

June 30, 2005

High Performance Computing Laboratory

Supercomputer Education and Research Center

Indian Institute of Science

Bangalore - 560 012, INDIA.

SERC • Indian Institute of Science • Bangalore • India • 560 012

WWW: http://hpc.serc.iisc.ernet.in/

Page 2: Indian Institute of Science Supercomputer Education and ...people.ac.upc.edu/govind/tr_lhpc.pdf · Supercomputer Education and Research Center Performance Modeling and Architecture

Contents

1 Introduction 1

2 Background 3

2.1 IXP Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 3

2.2 Packet Flow in IXP Processors . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . 5

3 Network Applications 5

3.1 IP Forwarding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . 6

3.2 Network Address Translation . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . 6

3.3 IP Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 7

4 Petri Net Model of the Network Processor 8

4.1 A Single Microengine Petri Net Model . . . . . . . . . . . . . . . . .. . . . . . . . . 8

4.2 Multiple Microengine Petri Net Model . . . . . . . . . . . . . . . .. . . . . . . . . . 10

4.3 Memory Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 10

5 Performance Evaluation and Simulation Results 12

5.1 Simulation Methodology . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 12

5.2 Validation Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 13

5.3 Throughput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 15

5.4 Architecture Exploration . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . 19

5.4.1 Impact of DRAM Banks and Hash Units . . . . . . . . . . . . . . . . .. . . 19

5.4.2 Better Utilization of SRAM . . . . . . . . . . . . . . . . . . . . . . .. . . . 21

5.4.3 Limiting the Number of Pending DRAM Requests . . . . . . . .. . . . . . . 22

6 Related Work 23

7 Conclusions 24

i

Page 3: Indian Institute of Science Supercomputer Education and ...people.ac.upc.edu/govind/tr_lhpc.pdf · Supercomputer Education and Research Center Performance Modeling and Architecture

List of Figures

1 Internal IXP 2400 Architecture. . . . . . . . . . . . . . . . . . . . . . .. . . . . . . 3

2 Petri Net Model for a Single Microengine in IXP 2400 RunningIPv4 Application . . . 9

3 shows the Petri net model for memory access to DDR DRAM and Rambus DRAM . . 11

4 Transmit Rates from PN and SDK Simulations. . . . . . . . . . . . . .. . . . . . . . 14

5 Comparison of Microengine Utilization from PN and SDK Simulations. . . . . . . . . 16

6 DRAM utilization for Different Bank Probabilities. . . . . .. . . . . . . . . . . . . . 17

7 Average Microengine Queue Length for Different Bank Probabilities. . . . . . . . . . 18

8 Impact of Architecture Exploration. . . . . . . . . . . . . . . . . . .. . . . . . . . . 20

9 Performance Enhancements from Storing Packet Header in SRAM . . . . . . . . . . . 22

10 Impact of Limiting Pending DRAM Accesses per Microengine. . . . . . . . . . . . . 23

List of Tables

1 Time Average DRAM Queue Length and Stall Percentage for 8 threads per ME. . . . . 15

ii

Page 4: Indian Institute of Science Supercomputer Education and ...people.ac.upc.edu/govind/tr_lhpc.pdf · Supercomputer Education and Research Center Performance Modeling and Architecture

Abstract

This paper proposes a Petri net model for a commercial network processor (Intel IXP architec-

ture) which is a multithreaded multiprocessor architecture. We consider and model three different

applications viz., IPv4 forwarding, Network Address Translation, and IP Security running on IXP

2400/2850. A salient feature of the Petri net model is its ability to model the application, archi-

tecture and their interaction in great detail. The model is validated using the Intel proprietary tool

(SDK 3.51 for IXP architecture) over a range of configurations.

We conduct a detailed performance evaluation, identify thebottleneck resource, and propose a

few architectural extensions and evaluate them in detail.

1 Introduction

In recent years there has been an exponential growth in Internet traffic leading to increasing network

bandwidth requirements which has led to stringent processing requirements on network layer devices

like routers. Present backbone routers on OC 48 links (2.5Gbps) have to process four million minimum-

sized packets per second. In addition, the processing requirements on the routers have changed, with

a need to support encryption/decryption of data, intelligent routing, and quality of service guarantees

at line rates. As a consequence, application specific processors in routers (network processors) have

become the core element in design of routers.

Commercial network processors [8] [9] are store-forward architectures that buffer incoming packets

in a buffer memory (usually the DRAM), process the packets, and forward it to the corresponding

output port. NPs employ multiple parallel processors to exploit packet level parallelism inherent in

network workloads. Network workloads are memory intensivestreaming applications and NPs use

hardware multithreading to reduce the latency effects of memory accesses.

1

Page 5: Indian Institute of Science Supercomputer Education and ...people.ac.upc.edu/govind/tr_lhpc.pdf · Supercomputer Education and Research Center Performance Modeling and Architecture

Previous work on performance evaluation of NPs [4] uses a simple analytical model. However

this work ignores the processor memory interaction of network application. In particular packets are

assumed to be in the memory (DRAM). Our study shows that packet buffer memory (DRAM) is the

bottleneck and hence processor-memory interaction needs to be modeled accurately. Further, earlier

performance evaluation studies of NPs [19] do not evaluate the performance of different applications

on the NPs. We have developed Petri net models for different applications running on the IXP series

of processors. The application modeled include IPv4, NAT onIXP 2400, and IPSec protocols (AH,

ESP) on IXP 2850. Our model captures the packet flow from the Receive FIFO to the Transmit FIFO.

The performance of an application on the architecture is evaluated by simulating the Petri net using

CNET [23], a Petri net simulator. The main feature of our model is its ability to model the processor,

application and their interaction in sufficient detail. Theperformance results thus obtained are validated

by running the same application on the Intel SDK 3.5 tool.

Our performance results indicate that the DRAM memory used for packet buffering is the bottleneck.

They show that multithreading is effective only up to a certain number of threads. Beyond this threshold

packet buffer memory (DRAM) is fully utilized and multithreading is not beneficial. Since the transmit

rate is limited by the packet buffer memory utilization, we investigate the following approaches to reduce

the DRAM utilization.

• In the IXP processor, the SRAM is utilized only upto 27% whilethe DRAM is fully utilized.

Hence we explore placing the packet header in SRAM and packetpayload in DRAM. This gives

an improvement in transmit rate by upto 20%.

• Increasing the number of DRAM banks from 4 to 8 improves the throughput by upto 20%. How-

ever when the number of banks is 8, the hash unit, a task specific unit used for performing hard-

ware lookup, becomes the bottleneck. Increasing the numberof hash units from 1 to 2 gives an

improvement in the throughput by upto 60% as compared to the base case. The additional hash

units can replace a few microengines without affecting the performance.

2

Page 6: Indian Institute of Science Supercomputer Education and ...people.ac.upc.edu/govind/tr_lhpc.pdf · Supercomputer Education and Research Center Performance Modeling and Architecture

• Throttling the number of outstanding memory requests results in an improvement in transmit rate

by upto 47% as compared to the base case.

In the following section we provide an overview of the IXP processor architecture. Section 3 de-

scribes the different network applications used in our study. In Section 4 we describe the Petri net model.

In section 5 we present the performance results. Section 6 reviews the related work in this domain and

section 7 provides concluding remarks.

2 Background

2.1 IXP Architecture

IXP processors [10] are multithreaded multiprocessor architectures which are typically employed in

backbone routers.

Hash Unit M

E

Media Switch Fabric (MSF)

SRAM Channel

Intel XScaleCore

SRAMDRAM

NETWORK PORTS

Scratch padMemoryTBUF

DRAM ChannelRBUF

ME

ME

ME

ME

ME

ME

ME

Figure 1: Internal IXP 2400 Architecture.

The architecture of IXP 2400 processor is depicted in Figure1, consists of a Xscale core, eight

microengines, and application specific hardware units likehash and crypto unit.

3

Page 7: Indian Institute of Science Supercomputer Education and ...people.ac.upc.edu/govind/tr_lhpc.pdf · Supercomputer Education and Research Center Performance Modeling and Architecture

The Xscale is a 32 bit RISC processor, used to handle control and management plane functions [22]

(e.g., routing table update) and to load the microengine instructions. IXP 2400 contains eight 32 bit

microengines each running at 600 MHz. Each microengine contains eight hardware contexts, for a

total of 64 threads. There is no context switch overhead. There are 256 programmable General Purpose

Registers in each microengine equally shared between the eight threads. There is a 4K instruction store

associated with each microengine. The IXP 2850 has 16 microengines, 128 threads, and operates at

1400 MHz.

The IXP chip contains task specific functional units, hash unit (in IXP 2400 and 2850) and crypto

unit (in IXP 2850), accessible by all the microengines. The hash unit can be used in a hash based

destination address lookup [19]. The IXP2850 contains two crypto units which implement 3DES, AES,

SHA-1 algorithms in hardware. The crypto unit has 1KB RAM forbuffering input data.

The IXP processor provides supports for SRAM and DRAM. The RAMs are off chip and com-

municate with the processor using a high speed data path of bandwidth 6.4 Gbps (for IXP 2400). The

DRAM is used for packet buffering and SRAM stores state tableinformation like routing table, NAT

table, and SPI (Security Parameter Index) index. IXP 2400 supports DRAM and SRAM sizes up to 512

MB and 8 MB respectively.

The IXP chip has a pair of FIFOs, Receive FIFO and Transmit FIFO, used to send/receive packets

to/from the network ports, each of size 8 KB. A data path exists between the microengines and DRAMs

to the FIFOs.

A thread in a microengine requesting a memory access or a hash/crypto unit places the request

in the following way. The thread places its access request inthe respective microengine command

queue. A maximum of four outstanding requests can be placed in a single microengine command

4

Page 8: Indian Institute of Science Supercomputer Education and ...people.ac.upc.edu/govind/tr_lhpc.pdf · Supercomputer Education and Research Center Performance Modeling and Architecture

queue. A common command bus arbiter moves the request from the microengine command queue

to the respective task unit/memory. Requests in the task units are processed in FIFO order. In case

of memory (DRAM), memory accesses to the same bank are processed in FIFO order. Each FIFO

allows a maximum of sixteen requests to be placed in its FIFO.If any of the memory/task FIFOs fills

to a threshold level (a queue length of 10) then the corresponding unit (memory/task unit) applies a

back pressure mechanism on the command bus arbiter. This prevents further issue of requests from all

microengines containing a request of this type at the head oftheir command queue. This consequently

can fill the microengine command queue. So in this scenario a thread in a microengine attempting to

place a request in the command queue stalls since the queue isfull. Our performance results indicate

that these stalls result in significant wastage of microengine clock cycles since other threads waiting to

execute in the microengine are prevented in doing so.

2.2 Packet Flow in IXP Processors

Packets arrive from the external link to the input ports and get buffered at the input port buffers. Packets

are then transferred to the RFIFO of the NP through a high speed media interface. When a thread

in a microengine is available it takes control of the packet and transfers the packet from the RFIFO

to the DRAM. The packet/packet header is read from the DRAM bythe corresponding thread. The

thread processes the packet/header, modifies it as necessary, and writes back the new packet/header to

the DRAM. Next the thread places the packet in the TFIFO of theNP and writes the packet to the

corresponding output port buffer through the media interface. The thread is freed and the packet is

forwarded to the next hop through the external link.

3 Network Applications

Network applications can be broadly classified, depending on the type of processing, into two types:

Header Processing Applications (HPA) and Payload Processing Applications (PPA) [4]. The processing

5

Page 9: Indian Institute of Science Supercomputer Education and ...people.ac.upc.edu/govind/tr_lhpc.pdf · Supercomputer Education and Research Center Performance Modeling and Architecture

in HPA is independent of the packet size and type of the packetpayload. These applications involve

a header field interrogation, and table lookup. Examples include IPv4 forwarding and NAT. PPA

represent applications that access the entire packet, and the amount of processing is dependent on the

size of the packet. These applications typically involve anencryption/decryption on the entire packet.

Examples include IP Security protocols.

We have selected four applications each representative of HPA or PPA in our study. The HPA

programs chosen are IPv4 forwarding [1] and NAT [18], and thePPA programs used are IP Security

protocols: Authentication Header(AH) [14] and Encapsulation Security Payload(ESP) [15].

3.1 IP Forwarding

IP forwarding is a fundamental operation performed by the router. We focus on forwarding for IP

version 4 packets [1]. IPv4 uses the IP header of the packet todetermine the destination address. A

lookup is performed based on the destination address in the IP to determine the destination port number

and the next hop address. The lookup table is stored in the SRAM. This paper uses a hash based lookup

[19]. Further, the time to live field in the IP header is decremented, the cyclic redundancy checksum

(CRC) is recomputed, and the packet is then forwarded to the next hop.

3.2 Network Address Translation

Network Address Translation or NAT [18] is a method by which many network addresses and their

TCP/UDP ports are translated into a single network address and its TCP/UDP ports. We focus on NAT

for TCP protocols. When a host in the LAN, which is assigned a local IP address, initiates a TCP

session through the router to an external network, the router changes the source IP address field in the

IP header to the globally visible router IP address. In addition, a unique port number is allocated by the

router to the session.

6

Page 10: Indian Institute of Science Supercomputer Education and ...people.ac.upc.edu/govind/tr_lhpc.pdf · Supercomputer Education and Research Center Performance Modeling and Architecture

The tuple consisting of protocol (TCP or UDP), source IP address, and the source port number dis-

tinguishes a connection. The translation table stores the tuple and the corresponding private IP address.It

is used to route packets from the external network to the corresponding local node. The translation table

is typically stored in the SRAM.

3.3 IP Security

IPSec protocols [20] are used to provide privacy and authentication services at the IP layer. The

two protocols supported by IPSec are: Authentication Header(AH) [14] and Encapsulation Security

Payload (ESP) [15].

IP Authentication Header (AH) is used to provide connectionless integrity and data origin authen-

tication for IP datagrams while the IP Encapsulation Security Payload (ESP) encrypts the TCP/UDP

segment in addition to the AH features.

IPSec protocols use a network handshake mechanism between the source and the destination using

a security association (SA) . The security Association is a 3tuple containing security protocol (AH or

ESP), source IP address and a 32 bit connection identifier referred to as SPI (Security Parameter Index).

SPI contains a shared key used for encryption, and the encryption algorithm. After the handshake, the

requisite computation is done depending on the protocol. A digital signature is computed over the packet

payload. The key shared with the destination is used in the signature computation. The AH/ESP header

is placed after the IP layer protocol but before the higher level protocols. In case of ESP, in addition to

all the processing needed in AH , the higher layer protocol isencrypted and placed after the ESP header.

We assume that the SPI data, in particular the shared key is stored in SRAM.

7

Page 11: Indian Institute of Science Supercomputer Education and ...people.ac.upc.edu/govind/tr_lhpc.pdf · Supercomputer Education and Research Center Performance Modeling and Architecture

4 Petri Net Model of the Network Processor

We initially describe the Petri net model for a single microengine running IP forwarding algorithm and

later provide extension for multiprocessors. The model forother applications are developed in a similar

manner.

We make the following assumptions in our model. We assume that all microengines are executing

the same application. We also assume packets of constant size (64 Byte), equal to the minimum sized

packet in Ethernet, as in [19]. This assumption correspondsto the performance of the network pro-

cessor under Denial of Service attacks [5]. We have used the timed Petri net model in our performance

evaluation study.

4.1 A Single Microengine Petri Net Model

Figure 2 shows the part of the Petri net model for a single microengine running the IPv4 application.

For clarity, only a part of the model which captures the flow ofpackets from the external link to

DRAM through the MAC is shown. The firing time of a timed transition in our model takes either

deterministic or exponentially distributed (over a mean) values. In the following description, words in

italics represent places/transitions.

The placeINPUT-LINE represents the external link. Packets arrive atIMAC, the input MAC, from

the external link at line speed. If an input port (IPORT) in the MAC is free and if there is sufficient

MAC memory, i.e., at least a token inIMAC, the packet gets buffered in MAC. A token inRMACMEM

indicates that a packet has been buffered in the MAC. If a thread is free, denoted by a token in

THREAD, it takes control of the packet and transfers the packet to the receive buffer (RFIFO) in the

IXP chip. The initial marking of placeTHREAD denotes the total number of threads in a microengine.

If the microengine is free, represented by a token inUE, the thread executes forUE-PROCESSING

8

Page 12: Indian Institute of Science Supercomputer Education and ...people.ac.upc.edu/govind/tr_lhpc.pdf · Supercomputer Education and Research Center Performance Modeling and Architecture

DRAM

UE

RFIFO

THREAD

RMACMEM

IMAC

LINE_RATE

IPORT

INPUT−LINE

MAC−FIFO

UE−RFIFO

UE−PROCESSING

SWAP−OUT

MEM−R1

UE−CMD−Q

DRAM−Q

WAITCMDBUS1

CMD−BUS

MV−DQ

MEM−R1

RFIFO−DRAM

DRAM−XFER

Figure 2: Petri Net Model for a Single Microengine in IXP 2400Running IPv4 Application

amount of clock cycles, and moves the packet fromRFIFO to DRAM. The thread swaps out, denoted

by the arc fromSWAP-OUT to UE, after initiating a memory transaction by placing the request for

memory access in the microengine command queue (UE-CMD-Q). The availability of a free entry

in the command queue is denoted by a token in the placeUE-CMD-Q. The memory request is then

moved fromUE-CMD-Q to DRAM-Q through the command bus arbiter (CMD-BUS). The memory

request gets processed byDRAM and a token is placed inDRAM-XFER indicating the completion of

the memory operation.

The placesUE, DRAM, CMD-BUS represent conflicts, i.e., there can be two events competingfor a

common resource. Conflicts are resolved by assigning probabilities to the conflicting events. Our Petri

net model assigns equal probabilities for accessing sharedresources.

The transitions,MAC-FIFO, and RFIFO-DRAM represent packet flow from MAC to RFIFO, and

RFIFO to DRAM respectively. These transitions also represent the packet flow in the network processor.

9

Page 13: Indian Institute of Science Supercomputer Education and ...people.ac.upc.edu/govind/tr_lhpc.pdf · Supercomputer Education and Research Center Performance Modeling and Architecture

The placesUE, THREAD, UE-CMD-Q, DRAM-Q, CMD-BUS represent various resources in the

architecture and hence model the processor architecture. The timed transitionsUE-PROCESSING and

RFIFO-DRAM represent the specific tasks and the time taken by these transitions models the time taken

by the corresponding tasks in the specific unit. Thus the Petri net model is able to capture the processor

architecture, applications, and their interaction in detail.

4.2 Multiple Microengine Petri Net Model

We use coloured Petri nets for modeling multiple microengines. In network applications, each

microengine processes packets which are independent of packets processed by other microengines

[3]. The processing done by each microengine (described in the earlier subsection) is represented

by a colour. The number of microengines is represented by tokens, of different colours, in the placeUE .

4.3 Memory Modeling

IXP processors support mulitple memory banks. IXP 2400 supports 4 The DRAM in IXP 2XXX

has 4 banks. Figure 3 shows a detailed Petri net model of DRAM accesses in IXP chip. There

exists a difference in memory architecture between 2400 and28XX processors. IXP 2400 supports

DDR-DRAMs while the 28XX series provides support only for Rambus DRAM. The Rambus DRAMs

differ from DDR-DRAMs in that they support pipelined memoryaccesses [13]. Our Petri net model is

able to model both these type of DRAMs. Rest of this subsection describes the Petri net modeling of

memory accesses in DDR-DRAM and Rambus DRAM. Note that thereare a total of 4 DRAM banks

in IXP chip.

Figure 3(a) shows the Petri net model for memory accesses to aDDR-DRAM. A token in DRAM

10

Page 14: Indian Institute of Science Supercomputer Education and ...people.ac.upc.edu/govind/tr_lhpc.pdf · Supercomputer Education and Research Center Performance Modeling and Architecture

indicates that the DRAM is free for memory access. We give an initial marking of 4 for the place

DRAM to represent four available DRAM banks.

MEMR2

P11−P1

BANK_CONFLICT

DRAMUE−DRAM

WAITMEM2

WAITMEM1

(a) DDR DRAM banking

MEMR2

WAITP1

PIPE1

PIPE CONFLICT

PIPE CONFLICT

PIPESTAGE2

PIPE STAGE1

WAITPIPE2

WAITP2

WAITP3

(b) Rambus DRAM banking

Figure 3: shows the Petri net model for memory access to DDR DRAM and Rambus DRAM

We say that a bank conflict arises when two memory accesses areattempting access to the same

bank. Figure 3(a) models the bank conflict as follows. A tokenis placed inMEMR2 for accessing

the packet header. The token is returned back toMEMR2 after BANK-CONFLICT clock cycles with

a probability 1-p1 or the token is placed inWAITMEM1. Thus when a memory request is not getting

processed immediately, it is made to wait forBANK-CONFLICT clock cycles before accessing the

DRAM. TheBANK-CONFLICT time is chosen as the averageDRAM memory access time for a packet.

11

Page 15: Indian Institute of Science Supercomputer Education and ...people.ac.upc.edu/govind/tr_lhpc.pdf · Supercomputer Education and Research Center Performance Modeling and Architecture

Bank conflicts are assigned probablities as shown in Figure 3. Memory accesses go to different

memory banks with probability (1-p1). So a probability of p1implies that probablity that memory

accesses go to different banks is 1-p1 (see figure 3(a)).

5 Performance Evaluation and Simulation Results

5.1 Simulation Methodology

We have developed Petri net models for IPv4 and NAT running onIXP 2400 and IPSec protocols

(AH and ESP) running on IXP 28501. The PN model is simulated using CNET [23], for different

applications. In order to validate the Petri net results we have implemented all the applications in

MicroengineC [12], a high level programming language for Intel network processors and simulated

on SDK 3.51 [11]. The simulations were performed for different number of microengine/thread

configurations for a total of 16 configurations. We model packet arrivals as exponentially distributed [2]

with a meanλ, whereλ is the mean inter arrival time for a given distribution. In our study we assume a

line rate of 6 Gbps and a fixed packet size of 64 bytes2. Further, we assume that to access 8B of data,

the DRAMs and SRAMs take 50 nano seconds and 8 nano seconds respectively [13]. However to

access larger chunks of data (like 64 B) in DRAM which are in contiguous memory locations, only an

additional 5 nanosecond per 8B is required [7].

We make the following assumptions in our simulation. The packet sizes are assumed to be constant

and of minimum size (64 B), this assumption is used for worst case scenarios in case of DoS attacks.

In case of NAT, we assume a constant session size of 10 kilobytes, we also assume that packets from

the external link and packets from local network arrive in the NP from mutually exclusive ports. In the

1IXP 2400 does not provide specific support for cryptographicapplications and the crypto unit is only present in 28XX.2For these parametersλ is 0.24 micro seconds.

12

Page 16: Indian Institute of Science Supercomputer Education and ...people.ac.upc.edu/govind/tr_lhpc.pdf · Supercomputer Education and Research Center Performance Modeling and Architecture

following subsection we use the following conventions. A reference to PN simulation refers to Petri

net model simulation. A 2X8 configuration refers to a configuration with 2 microengines and each

microengine is executing from 8 threads.

5.2 Validation Results

The following system parameters have been measured from theSDK simulation and the PN simulation.

We use these parameters to compare the results from the PN model and the Intel SDK simulator.

• Throughput : The throughput of the NP, measured in Gigabits per second, is the aggregated (from

all ports) number of packets transmitted.

• Microengine Utilization : This parameter gives the time average utilization of each microengine

which includes the time the microengine is executing, aborted, and stalled.

• Microengine command queue length : This parameter gives the time averaged command queue

length of a single microengine.

• DRAM Queue Length: This metric is the time averaged queue length of the DRAM queue.

• Microengine Stall Percentage: This metric gives the percentage of time a thread in a microengine

is stalled.

Due to space constraints, we present here only results for IPv4 and AH which are representative

of HPA and PPA applications respectively. Results for NAT and ESP are similar to IPv4 and AH

respectively and can be found in [?]. The results presented have been arranged in the increasing order

of the total number of threads.

Figure 4 shows the transmit rates obtained from Petri net andSDK simulations for IPv4 and

AH. In the Petri net simulation, we used different bank conflict probabilities. For all applications we

13

Page 17: Indian Institute of Science Supercomputer Education and ...people.ac.upc.edu/govind/tr_lhpc.pdf · Supercomputer Education and Research Center Performance Modeling and Architecture

observe that the transmit rates obtained from the Petri net simulations follow a similar trend to the SDK

simulation. In particular, the throughput rates from the SDK simulation closely follow that of the Petri

net simulation for bank conflict probabilities 0.5 and 0.7. Even though the variation for other bank

conflict probabilities are somewhat higher, the Petri net simulation is able to predict the trend in general

well.

0

1

2

3

4

5

1x1 1x2 2x1 1x4 2x2 4x1 1x8 2x4 4x2 8x1 2x8 4x4 8x2 4x8 8x4 8x8

Tx R

AT

E (

Gbps)

Micro engine- Number of threads

IPv4 SDK RESULTCNET RESULT BANK PROB=0.3CNET RESULT BANK PROB=0.5CNET RESULT BANK PROB=0.7CNET RESULT BANK PROB=0.9

(a) IP4

0

20

40

60

80

100

120

1x1 1x2 2x1 1x4 2x2 4x1 1x8 2x4 4x2 8x1 2x8 4x4 8x2 4x8 8x4 8x8

PE

R M

E U

TIL

IZA

TIO

N %

Micro engine- Number of threads

NAT SDK RESULTCNET RESULT BANK PROB=0.3CNET RESULT BANK PROB=0.5CNET RESULT BANK PROB=0.7CNET RESULT BANK PROB=0.9

(b) NAT

0

1

2

3

4

5

1x1 1x2 2x1 1x4 2x2 4x1 1x8 2x4 4x2 8x1 2x8 4x4 8x2 4x8 8x4 8x8

Tx R

AT

E (

Gbps)

Micro engine- Number of threads

IPSEC AH SDK RESULTCNET RESULT BANK PROB=0.3CNET RESULT BANK PROB=0.5CNET RESULT BANK PROB=0.7CNET RESULT BANK PROB=0.9

(c) AH

0

20

40

60

80

100

1-1 1-2 2-1 1-4 2-2 4-1 1-8 2-4 4-2 8-1 2-8 4-4 8-2 4-8 8-4 8-8

PE

R M

E U

TIL

IZA

TIO

N %

Micro engine- Number of threads

IPSEC ESP SDK RESULTCNET RESULT BANK PROB=0.3CNET RESULT BANK PROB=0.5CNET RESULT BANK PROB=0.7CNET RESULT BANK PROB=0.9

(d) ESP

Figure 4: Transmit Rates from PN and SDK Simulations.

14

Page 18: Indian Institute of Science Supercomputer Education and ...people.ac.upc.edu/govind/tr_lhpc.pdf · Supercomputer Education and Research Center Performance Modeling and Architecture

In Figure 5, we compare the average utilization of microengine as observed from the Petri net and

SDK simulations. Once again these values closely match and follow the same trend. These results

essentially validate our Petri net model and their performance results obtained from them.

The throughput varies differently in payload processing applications as compared to header

processing applications This is because the PPA applications are computationally more intensive and

hence the microengine utilization is high (refer to Figure 5). This explains the decrease in throughput

for configurations with higher threads per microengine.

5.3 Throughput

Figure 4 shows the transmit rates for IPv4 and AH. We observe that as the total number of threads

increases, the throughput increases and reaches 3 Gbps for header processing applications (IPV4) and

nearly 4 Gbps for payload processing applications (AH). These correspond to OC-48 and higher line

rates. Also we observe that the throughput saturates beyonda total of 16 threads which occurs due to a

high DRAM utilization (refer to Figure 6).

DRAM Q length Stall %

Config IP4 NAT AH ESP IP4 NAT AH ESP

4X8 10.9 9.7 4.7 5.08 29.5 11.5 13.8 22.4

8X8 10.8 8.3 9.2 9.63 76.8 65 31.96 61.5

Table 1: Time Average DRAM Queue Length and Stall Percentagefor 8 threads per ME.

We further observe that the throughput drops in SDK simulations in case of IPv4 for 4X4 configu-

rations and beyond. This is due to the negative feedback mechanism, as discussed in section 2.1, which

15

Page 19: Indian Institute of Science Supercomputer Education and ...people.ac.upc.edu/govind/tr_lhpc.pdf · Supercomputer Education and Research Center Performance Modeling and Architecture

0

20

40

60

80

100

120

1x1 1x2 2x1 1x4 2x2 4x1 1x8 2x4 4x2 8x1 2x8 4x4 8x2 4x8 8x4 8x8

PE

R M

E U

TIL

IZA

TIO

N %

Micro engine- Number of threads

IPv4 SDK RESULTCNET RESULT BANK PROB=0.3CNET RESULT BANK PROB=0.5CNET RESULT BANK PROB=0.7CNET RESULT BANK PROB=0.9

(a) IP4

0

20

40

60

80

100

120

1x1 1x2 2x1 1x4 2x2 4x1 1x8 2x4 4x2 8x1 2x8 4x4 8x2 4x8 8x4 8x8

PE

R M

E U

TIL

IZA

TIO

N %

Micro engine- Number of threads

NAT SDK RESULTCNET RESULT BANK PROB=0.3CNET RESULT BANK PROB=0.5CNET RESULT BANK PROB=0.7CNET RESULT BANK PROB=0.9

(b) NAT

0

20

40

60

80

100

1x1 1x2 2x1 1x4 2x2 4x1 1x8 2x4 4x2 8x1 2x8 4x4 8x2 4x8 8x4 8x8

PE

R M

E U

TIL

IZA

TIO

N %

Micro engine- Number of threads

IPSEC AH SDK RESULTCNET RESULT BANK PROB=0.3CNET RESULT BANK PROB=0.5CNET RESULT BANK PROB=0.7CNET RESULT BANK PROB=0.9

(c) AH

0

20

40

60

80

100

1-1 1-2 2-1 1-4 2-2 4-1 1-8 2-4 4-2 8-1 2-8 4-4 8-2 4-8 8-4 8-8

PE

R M

E U

TIL

IZA

TIO

N %

Micro engine- Number of threads

IPSEC ESP SDK RESULTCNET RESULT BANK PROB=0.3CNET RESULT BANK PROB=0.5CNET RESULT BANK PROB=0.7CNET RESULT BANK PROB=0.9

(d) ESP

Figure 5: Comparison of Microengine Utilization from PN andSDK Simulations.

arises when the average DRAM queue length is greater than thethreshold (10.81 for IPv4). It results in

the threads to stall (76% stall for IPv4) thus leading to a lower throughput.

The DRAM utilization in AH and ESP are lower (less than 60%) for 16 or more threads3. This is

3DRAM utilization for Rambus DRAM is calculated as the average utilization for all the four pipe stages.

16

Page 20: Indian Institute of Science Supercomputer Education and ...people.ac.upc.edu/govind/tr_lhpc.pdf · Supercomputer Education and Research Center Performance Modeling and Architecture

0

20

40

60

80

100

120

1x1 1x2 2x1 1x4 2x2 4x1 1x8 2x4 4x2 8x1 2x8 4x4 8x2 4x8 8x4 8x8

DR

AM

UT

ILIZ

AT

ION

%

Micro engine- Number of threads

CNET RESULT BANK PROB=0.3CNET RESULT BANK PROB=0.5CNET RESULT BANK PROB=0.7CNET RESULT BANK PROB=0.9

(a) IP4

0

20

40

60

80

100

120

1x1 1x2 2x1 1x4 2x2 4x1 1x8 2x4 4x2 8x1 2x8 4x4 8x2 4x8 8x4 8x8

DR

AM

UT

ILIZ

AT

ION

%

Micro engine- Number of threads

CNET RESULT BANK PROB=0.3CNET RESULT BANK PROB=0.5CNET RESULT BANK PROB=0.7CNET RESULT BANK PROB=0.9

(b) NAT

0

20

40

60

80

100

120

1x1 1x2 2x1 1x4 2x2 4x1 1x8 2x4 4x2 8x1 2x8 4x4 8x2 4x8 8x4 8x8

DR

AM

UT

ILIZ

AT

ION

%

Micro engine- Number of threads

CNET RESULT BANK PROB=0.3CNET RESULT BANK PROB=0.5CNET RESULT BANK PROB=0.7CNET RESULT BANK PROB=0.9

(c) AH

0

20

40

60

80

100

120

1x1 1x2 2x1 1x4 2x2 4x1 1x8 2x4 4x2 8x1 2x8 4x4 8x2 4x8 8x4 8x8

DR

AM

UT

ILIZ

AT

ION

%

Micro engine- Number of threads

CNET RESULT BANK PROB=0.3CNET RESULT BANK PROB=0.5CNET RESULT BANK PROB=0.7CNET RESULT BANK PROB=0.9

(d) ESP

Figure 6: DRAM utilization for Different Bank Probabilities.

because for these applications, certain memory accesses such as packet header, only the first pipeline

stage in the DRAM is used. Hence the DRAM utilization is lower.

It is interesting to note that the throughput rate for payload processing application is higher by

33% compared to that for header processing applications. This is because of faster accesses in Rambus

17

Page 21: Indian Institute of Science Supercomputer Education and ...people.ac.upc.edu/govind/tr_lhpc.pdf · Supercomputer Education and Research Center Performance Modeling and Architecture

0

1

2

3

4

5

6

1x1 1x2 2x1 1x4 2x2 4x1 1x8 2x4 4x2 8x1 2x8 4x4 8x2 4x8 8x4 8x8

AV

ER

AG

E M

E Q

UE

UE

LE

NG

TH

Micro engine- Number of threads

SDK RESULTCNET RESULT BANK PROB=0.3CNET RESULT BANK PROB=0.5CNET RESULT BANK PROB=0.7CNET RESULT BANK PROB=0.9

(a) IP4

0

1

2

3

4

5

6

1x1 1x2 2x1 1x4 2x2 4x1 1x8 2x4 4x2 8x1 2x8 4x4 8x2 4x8 8x4 8x8

AV

ER

AG

E M

E Q

UE

UE

LE

NG

TH

Micro engine- Number of threads

SDK RESULTCNET RESULT BANK PROB=0.3CNET RESULT BANK PROB=0.5CNET RESULT BANK PROB=0.7CNET RESULT BANK PROB=0.9

(b) NAT

0

1

2

3

4

5

6

1x1 1x2 2x1 1x4 2x2 4x1 1x8 2x4 4x2 8x1 2x8 4x4 8x2 4x8 8x4 8x8

AV

ER

AG

E M

E Q

UE

UE

LE

NG

TH

Micro engine- Number of threads

SDK RESULTCNET RESULT BANK PROB=0.3CNET RESULT BANK PROB=0.5CNET RESULT BANK PROB=0.7CNET RESULT BANK PROB=0.9

(c) AH

0

1

2

3

4

5

6

1x1 1x2 2x1 1x4 2x2 4x1 1x8 2x4 4x2 8x1 2x8 4x4 8x2 4x8 8x4 8x8

AV

ER

AG

E M

E Q

UE

UE

LE

NG

TH

Micro engine- Number of threads

IPSEC ESP SDK RESULTCNET RESULT BANK PROB=0.3CNET RESULT BANK PROB=0.5CNET RESULT BANK PROB=0.7CNET RESULT BANK PROB=0.9

(d) ESP

Figure 7: Average Microengine Queue Length for Different Bank Probabilities.

DRAM which helps in supporting higher number of memory requests and hence the higher throughput.

Figure 5 and Figure 7 show the microengine utilization and the average microengine command

queue length respectively on a per microengine basis. Both these parameters follow a triangular pattern

for all the applications. This can be explained as follows. In a 1X8 configuration, all the 8 threads

18

Page 22: Indian Institute of Science Supercomputer Education and ...people.ac.upc.edu/govind/tr_lhpc.pdf · Supercomputer Education and Research Center Performance Modeling and Architecture

execute on the same microengine whereas in a 8X1 the eight threads execute on different microengines.

This leads to a higher microengine utilization for 1X8, nearly 60% for IPv4, as compared to a 8X1

configuration, nearly 10% for IPv4.

5.4 Architecture Exploration

The main advantage of the PN model over the Intel SDK simulator is the relative ease with which

new architectural features can be evaluated. Having validated the Petri net approach using the SDK

simulator, we can now use the former for evaluating the performance of a few enhancements that we

propose to improve the throughput of the network processor.

We explore the memory architecture only for header processing applications since their performance

is memory limited by the DRAM utilization. Below we present the results for IPv4. The results for NAT

are identical and are not presented here due to space limitations.

5.4.1 Impact of DRAM Banks and Hash Units

The validation results indicate that DRAM limits the throughput significantly in IPv4 and NAT. Hence

a larger number of DRAM banks can be beneficial. Since the number of banks is typically in powers

of 2 we consider increasing the DRAM banks to 8. Since DRAM is off chip, pin count is the only

constraint in increasing the number of banks. We assume the width of DRAM channel to be same as in

the base IXP processor, and accordingly model the channel.

The performance results in Figure 8 indicate an improvementin throughput by up to 20% (3.6

Gbps) with respect to the base case. In particular, the performance improvement increases when the

number of threads increase from 8 to 16 (for configurations like 2X8 and 4X4). Further we observe that

the DRAM utilization decreases from 90% to 60%. As the DRAM utilization reduces by upto 40%, the

19

Page 23: Indian Institute of Science Supercomputer Education and ...people.ac.upc.edu/govind/tr_lhpc.pdf · Supercomputer Education and Research Center Performance Modeling and Architecture

0

1

2

3

4

5

6

7

8

1x1 1x2 2x1 1x4 2x2 4x1 1x8 2x4 4x2 8x1 2x8 4x4 8x2 4x8 8x4 8x8

Tx R

AT

E (

Gbps)

Micro engine x Number of threads

4 BANK, PROB=0.5 4 BANK, PROB=0.9 8 BANK, PROB=0.5 8 BANK, PROB=0.9

8 BANK + 2 HASH , PROB=0.5 8 BANK + 2 HASH, PROB=0.9

(a) Transmit rate

0

20

40

60

80

100

120

1x1 1x2 2x1 1x4 2x2 4x1 1x8 2x4 4x2 8x1 2x8 4x4 8x2 4x8 8x4 8x8

DR

AM

UT

ILIZ

AT

ION

%

Micro engine x Number of threads

4 BANK, PROB=0.5 4 BANK, PROB=0.9 8 BANK, PROB=0.5 8 BANK, PROB=0.9

8 BANK + 2 HASH , PROB=0.5 8 BANK + 2 HASH, PROB=0.9

(b) DRAM Utilization

0

20

40

60

80

100

120

1x1 1x2 2x1 1x4 2x2 4x1 1x8 2x4 4x2 8x1 2x8 4x4 8x2 4x8 8x4 8x8

HA

SH

UT

ILIZ

AT

ION

%

Micro engine x Number of threads

4 BANK, PROB=0.5 4 BANK, PROB=0.9 8 BANK, PROB=0.5 8 BANK, PROB=0.9

8 BANK + 2 HASH , PROB=0.5 8 BANK + 2 HASH, PROB=0.9

(c) HASH Utilization

Figure 8: Impact of Architecture Exploration.

utilization of the hash unit increases to more than 90% and itbecomes the bottleneck.

Next we evaluate the impact of increasing the number of hash units. We consider a NP with 2 hash

units. We obtain a throughput of 4.8 Gbps (shown in Figure 8) an improvement of upto 60% in compar-

ison with the base IXP architecture. Further, we observe that the transmit rate does not increase beyond

4 microengines, especially for configurations such as 8X2, 8X4. Also note that the utilization of hash

20

Page 24: Indian Institute of Science Supercomputer Education and ...people.ac.upc.edu/govind/tr_lhpc.pdf · Supercomputer Education and Research Center Performance Modeling and Architecture

units decreases to 60% and the DRAM utilization also remainsaround 60%. So an IXP architecture with

only 4 microengines and 2 hash units gives a significant throughput improvement (66%) but consumes

almost the same area as the base IXP processor. This is based on the area estimates given in [4] where

a hash unit consumes almost the same area as four microengines. So we believe that future network

processor architecture will need to scale special processing units like hash units to support higher line

rates.

5.4.2 Better Utilization of SRAM

The performance results for HPA indicate that DRAM is saturated beyond 16 threads whereas the

SRAM utilization is only 27 %. Further the memory access timefor DRAM is at least 5 times greater

than a similar SRAM access. Hence we consider placing the packet header, fixed length of 20 Bytes, in

SRAM and the packet payload in DRAM.

This results in a performance improvement of up to 20% (Figure 9) in case of IPv4. Further we

observe that SRAM is now the bottleneck resource. This improvement is due to the lesser memory

access time for SRAM as compared to DRAM. A major concern withthis approach is the buffering

space in SRAM, as the SRAM size is typically limited to 8 MB or 16 MB. However, even with an 8

MB SRAM and leaving 2 MB for lookup table and other state information, we can still store as many

as 300,000 (6 MB/20 B) packet headers. This scheme looks particularly attractive since a significant

performance improvement can be achieved without any additional hardware overhead. This also

indicates alternative ways of buffering packet headers in existing on chip memory, like the scratch pad

and local memory, can give significant performance improvement without any additional cost.

21

Page 25: Indian Institute of Science Supercomputer Education and ...people.ac.upc.edu/govind/tr_lhpc.pdf · Supercomputer Education and Research Center Performance Modeling and Architecture

0

1

2

3

4

5

1x1 1x2 2x1 1x4 2x2 4x1 1x8 2x4 4x2 8x1 2x8 4x4 8x2 4x8 8x4 8x8

Tx R

AT

E (

Gbps)

Micro engine x Number of threads

4 BANK, PROB=0.5 4 BANK, PROB=0.9

PKT HDR IN SRAM , BANK PROB=0.5PKT HDR IN SRAM, BANK PROB=0.9

(a) Transmit rate

0

20

40

60

80

100

120

1x1 1x2 2x1 1x4 2x2 4x1 1x8 2x4 4x2 8x1 2x8 4x4 8x2 4x8 8x4 8x8

DR

AM

UT

ILIZ

AT

ION

%

Micro engine x Number of threads

4 BANK, PROB=0.5 4 BANK, PROB=0.9

PKT HDR IN SRAM , BANK PROB=0.5PKT HDR IN SRAM, BANK PROB=0.9

(b) DRAM Utilization

0

20

40

60

80

100

120

1x1 1x2 2x1 1x4 2x2 4x1 1x8 2x4 4x2 8x1 2x8 4x4 8x2 4x8 8x4 8x8

SR

AM

UT

ILIZ

AT

ION

%

Micro engine x Number of threads

4 BANK, PROB=0.5 4 BANK, PROB=0.9

PKT HDR IN SRAM , BANK PROB=0.5PKT HDR IN SRAM, BANK PROB=0.9

(c) SRAM Utilization

Figure 9: Performance Enhancements from Storing Packet Header in SRAM

5.4.3 Limiting the Number of Pending DRAM Requests

In IPv4, we observe that the DRAM queue length to be greater than 10, and stalls account for 75% of

microengine utilization (refer to Table 1).

Whenever the DRAM queue length exceeds 10, the feedback mechanism (discussed in section

22

Page 26: Indian Institute of Science Supercomputer Education and ...people.ac.upc.edu/govind/tr_lhpc.pdf · Supercomputer Education and Research Center Performance Modeling and Architecture

2.1) prevents further issue of DRAM accesses from the microengine command queue to the DRAM

command queue. This results in blocking of other requests such as SRAM requests or hash requests.

To alleviate this, we limit the number of pending DRAM requests from each microengine. This allows

the execution of ready threads as well as prevents blocking of other accesses from each microengine

command queue.

0

1

2

3

4

5

1x4 1x8 2x4 2x8 4x4 4x8 8x4 8x8

Tx

RA

TE

(G

bps)

Micro engine x Number of threads

IPv4 RESULT COUNT =1IPv4 RESULT COUNT =2IPv4 RESULT COUNT =3

IPv4 RESULT NO COUNTER

(a) Transmit rate

Figure 10: Impact of Limiting Pending DRAM Accesses per Microengine

In Figure 10 we plot the transmit rate under various configuration when the number of pending

DRAM requests (COUNT) per microengine is limited to 1, 2 or 3.Limiting the pending DRAM requests

to 2 or 3, increases the throughput by upto 47%. Note that the throughput obtained in this case is also

the the maximum throughput obtained for IPv4 (refer to Figure 4).

6 Related Work

Wolf et al. [4] use an analytical performance model for NPs toquantify different design alternatives

and optimize the design for power consumed per unit area for different applications. Theile et al. [21]

23

Page 27: Indian Institute of Science Supercomputer Education and ...people.ac.upc.edu/govind/tr_lhpc.pdf · Supercomputer Education and Research Center Performance Modeling and Architecture

develop a framework for design space exploration of networkprocessors. These approaches have used

an analytical model for their evaluation.

Other approaches [3] [22] have used a simulation based modelfor their evaluation. Crowley et

al. [3] study the impact of different processor architectures on network applications. Spalink et al. [19]

study the IXP 1200 processor for IPv4 forwarding and report forwarding rates for different number of

threads.

TPNs have been used in modeling multithreaded processors [6] [17]. Earlier works on Petri net

modeling for multithreaded processors [6] [17], focused onmodeling the processor architecture while

not accurately capturing the application running on the processor. We propose Petri net model and

evaluate its performance using CNET a Petri net simulator. Our model is different as it models the

architecture, application, and their interaction in greatdetail. The Petri net model has been validated

for different applications using the SDK simulator. So the architecture exploration investigated using

this model directly reflects the performance improvements that can be obtained in commercial network

processors.

7 Conclusions

This paper develops a Petri Net model for a commercial network processors (Intel IXP 2XXX) for

different applications. The PN model is developed for threedifferent applications viz IPv4, NAT and

IPSec protocols and validated using the Intel proprietary SDK simulator. The salient feature of our

model is its ability to capture the architecture, applications and their interaction in great detail.

We summarize our results as follows.

• Multithreading helps to improve the throughput. However increasing the total number of threads

beyond a certain point results in performance saturation.

24

Page 28: Indian Institute of Science Supercomputer Education and ...people.ac.upc.edu/govind/tr_lhpc.pdf · Supercomputer Education and Research Center Performance Modeling and Architecture

• Increasing the number of microengines beyond 4 provides no gain in the throughput.

• A network processor using lesser microengines but with morehash units and larger number of

DRAM memory banks (with respect to the base IXP processor) improves the transmit rate by

upto 60% as compared to the base case.

• An improvement in the transmit rate by up to 20% can be obtained by storing the packet header

into the SRAM. This scheme provides a significant improvement at no additional hardware cost.

As future work we plan to study the effect of network parameters like packet reordering on the

performance of the NP. It has been shown in earlier work that packet reordering can result in severe

under utilization of the network. So as future work we plan toevaluate our PN model taking into

account the effect of packet reordering. An orthogonal study could be the impact of bursty traffic on the

performance of the NP.

Acknowledgments

This work was partly supported by a research grant from the Consortium for Embedded and Internet-

working Technologies (CEINT) and Arizona State University, Tempe, USA. We would like to thank

Prof. W. M. Zuberek for allowing us to use CNET.

References

[1] F. Baker. RFC 1812 - Requirements for IP Version 4 Routers, June 1995.

[2] Jin Cao, William S. Cleveland, Dong Lin, Don X. Sun. On theNon stationarity of Internet Traffic.

Proceedings of ACM SIGMETRICS, pp 102–112, 2001.

[3] P. Crowley, M. Fiuczynski, J.L. Baer, B. Bershad. Characterizing processor architectures for pro-

grammable network interfaces. In Proceedings of International Conference on Supercomputing,

Feb 2000.

25

Page 29: Indian Institute of Science Supercomputer Education and ...people.ac.upc.edu/govind/tr_lhpc.pdf · Supercomputer Education and Research Center Performance Modeling and Architecture

[4] M. Franklin, T. Wolf. A Network Processor Performance and Design Model with Benchmark

Parameterization. First Workshop on Network Processors, Cambridge, MA, February 2002.

[5] L. Garber. Denial of Service attacks rip the Internet. IEEE Computer , 33,4:12–17, Apr. 2000.

[6] R. Govindarajan, F. Suciu, W. Zuberek. Timed Petri Net Models of Multithreaded Multiprocessor

Architectures, Proc. of the 7th International Workshop on Petri Nets and Performance Models,

pp.163-172, Saint Malo, France, June 1997.

[7] J. Hasan, Satish Chandra, T. N. Vijaykumar. Efficient Useof Memory Bandwidth to Improve

Network Processor Throughput. In Proceedings of International Symposium on Computer Archi-

tecture, June 2003.

[8] IBM. The Network Processor: Enabling Technology for high performance Networking. IBM Mi-

croelectronics, 1999.

[9] Intel Corporation, Intel IXP 1200 Network Processor Hardware Reference Manual. Revision 8, pp

27-29,102-104, August 2001.

[10] Intel Corporation, Intel IXP 2400 Network Processor Hardware Reference Manual. Revision 7,

November 2003.

[11] Intel IXP2400/IXP2800 Development Tools User.s Guide. Revision 11, March 2004.

[12] Intel IXP2400/IXP2800 Network Processors Microengine C Language Support Reference Manual.

Revision 9, November 2003.

[13] B. Jacob, D. Wang. DRAM: Architectures, Interfaces, and Systems: A Tutorial .

(http://www.ee.umd.edu/ blj/talks/DRAM-Tutorial-isca2002-2.pdf).

[14] S. Kent, R. Atkinson. RFC 2402 - IP Authentication Header (AH), November 1998.

[15] S. Kent, R. Atkinson. RFC 2406 - IP Encapsulating Security Payload (ESP), November 1998.

[16] Y. Narhari and N. Vishwanadham. Performance Modeling of Automated Manufacturing Systems,

Prentice Hall, 1992.

26

Page 30: Indian Institute of Science Supercomputer Education and ...people.ac.upc.edu/govind/tr_lhpc.pdf · Supercomputer Education and Research Center Performance Modeling and Architecture

[17] R. Saavedra-Barrera, D. Culler, and T. Von Eicken. Analysis of multithreaded architectures for

parallel computing. In Second Annual ACM Symposium on Parallel Algorithms and Architectures,

pages 169–178, July 1990.

[18] P. Saisuresh, K. Egevang. RFC 3022 - Traditional IP Network Address Translator (Traditional

NAT), January 2001.

[19] T. Spalink, Scott Karlin, Larry Peterson. Evaluating Network Processors for IP Forwarding. Tech-

nical Report TR-626-00, Department of Computer Science, Princeton University, Nov. 2000.

[20] R. Thayer, N. Doraswamy, R. Glenn. RFC 2411 - IP SecurityDocument Roadmap, November

1998.

[21] L. Thiele, Samarjit Chakraborty, Matthias Gries, Simon Kunzli. Design space exploration of net-

work processor architectures. First Workshop Workshop on Network Processors, Cambridge, MA,

February 2002.

[22] T. Wolf. and M. Franklin. Commbench : A Telecommunication benchmark for Network Proces-

sors. In Proceedings of the International Symposium on Performance Analysis of Systems and

Software, April 2000, pp. 154-162.

[23] W. M. Zuberek. Modeling using Timed Petri Nets - event-driven simulation, Technical Report No.

9602, Dept. of Computer Science, Memorial Univ. of Newfoundland, St. John’s, Canada, 1996

(ftp://ftp.ca.mun.ca/pub/techreports/tr-9602.ps.Z).

27