• Keine Ergebnisse gefunden

The Alpha A.XP workstation, DEC 3000 A.XP Model 500 was chosen for our research. The system is built around Digital's 21064 64-bit, reduced instruc­

tion set computer (RISC) microprocessor.

Digital's 21064 Microprocesso r The DECchip 21064 CPU chip is a RISC microprocessor that is fully pipel ined and capable of issu ing two instructions per clock cycle. t3. 14 The DECchip 21064 micropro­

cessor can execute up to 400 mill ion operations per second. The chip includes

An 8-kb direct-mapped instruction cache with a 32-byte line size

An 8-kb d irect-mapped data cache with a 32-byte line size

Two associated translation buffers

A four-entry (32-byte-per-entry) write buffer

45

DECnet Open Networking

MEMORY

CPU ADDRESS ADDRESS

DECCHIP SECONDARY

t

SYSTEM MAIN

21 064 CACHE CROSSBAR MEMORY

CPU 5 1 2 KB

t

MEMORY DATA

CPU DATA

SYSTEM 1/0 BUS (TURBOCHANNEL)

t >

�---,t--____;_---..,

TURBOCHAN NEL BUS I NTERFACE

DMA E N G I N E FOOl

ADAPTER PACKET MEMORY

Figure 1 The Alpha AXP Workstation-CPU, Memory Subsystem, and the FDDicontroller/TURBOchannel Adapter

A p ipelined 64-bit i nteger execution unit with a 32-entry register file

A pipelined floating-point unit with an addi­

tional 32 registers

The DEC 3000 AXP Model 500 Workstation The DEC 3000 AXP Model 500 workstation is built around the DECchip 21064 m icroprocessor running at 150 megahertz (MHz) . 1' In addition to the on-chip caches, there is an on-board second-level cache of 512 ki lobytes (kB). Main memory can be from 32 MB to 256 MB (1 GB with 16 M B dynamic random-access memories [DRAMs] ) . The memory bus is 256 bits plus error-correcting code (ECC) wide and has a bandwidth of l l4 MB/s. Standard on the system is also a 10-Mb/s Ethernet interface (LANCE). For con­

nection to external peripherals there is an on-board small computer systems interface (SCSI)-2 i nterface and six TURBOchannel slots with a maximum l/0 throughput of 100 M B/s. One of the TURBOchannel slots is occupied by the graphics adapter.

The system uses the second-level cache to help mini mize the performance penalty of misses and write throughs i n the two relatively smaller pri­

mary caches in the DECchip 21064 processor. The second-level cache is a direct-mapped, write-back cache with a block size of 32 bytes, chosen to match the block size of the primary caches. The cache

46

block allocation policy a llocates on both read misses and write misses. Hardware keeps the cache coherent on DMAs; DMA reads probe the second­

level cache, and DMA writes update the second­

level cache, while invalidating the primary data cache. More details of the DEC 3000 A.XP Model 500 AXP workstation may be obtained from "The Design of the DEC 3000 A.XP Systems, Two High­

performance Workstations." I' DEC OSF/ 1 Operating System

DEC OSF/ 1 operating system version 1 .2 for Alpha A.XP systems is an implementation of the Open Software Fou ndation (OSF) OSF/ 1 version 1 .0 and version 1 .1 technology. The operating system is a 64-bit kernel architecture based on Carnegie­

Mellon University's Mach version 2.5 kernel.

Components from 4.3 BSD are included, in addition to UNIX System Laboratories System V i nterface compatibi l i ty.

D igi tal's version of OSF/1 offers both rel iability and high performance. The standard TCP/IP and UDP/!P networking software, interfaces, a nd proto­

cols remain the same to ensure full multivendor interoperabi l ity. Tbe software has been tuned ancl new enhancements have been added that improve performance. The i nterfaces between the user application and the internet protocols i nclude both

Vol. 5 No. 1 Winter 1993 D igital Teclmicaljournal

High-performance TCP/IP and UDP/IP Networking in DEC OSF/ I jo1· Alpha AXP

the BSD socket interface and the X/Open Transport Interface. 12 The internet implementation condi­

tional ly conforms to RFC 1 122 and RFC 1 123. 16· 17 Some of the networking utilities i ncluded are Telnet; file transfer protocol (FTP); the Berkeley "r"

util ities (rlogin, rep, etc.); serial line internet proto­

col (SLIP) with optional compression; Local Area Transport (LAT); screend, which is a filter for con­

trol l i ng network access to systems when DEC OSF/ 1 is used as a gateway; and prestoserve, a file system accelerator that uses nonvolatile RAM to improve Network File System (NFS) server response time.

The implementation also provides a STREA.I\1S i nter­

face, the transport layer interface, and allows for STREAMS (SVID2) and sockets to coexist at the data link layer. There is support for STREAMS drivers to socket protocol stacks and support for BSD drivers to STREAMS protocol stacks via the data li nk provider in terface.

The OSF/ 1 Network Protocol Implementation

The overall performance of network l/0 of a work­

station depends on a variety of components: the processor speed, the memory subsystem, the host bus characteristics, the network interface and finally, and probably the most important, software structuring of the network 1/0 functions. To und er­

stand the ways in which each of these aspects influ­

ences performance, it is helpful to understand the structuring of the software for network l/0 and the characteristics of the computer system (processor, memory, system bus). We focus here on the struc­

turing of the end system networking code related to the internet protocol suite in the DEC OSF/l oper­

ating system, fol lowing the design of the net­

working code (4.3 BSD-Reno) in the Berkeley UNfX d istribu tion.8.9.12

A user process typical ly interfaces to the net­

work through the socket l ayer. The protocol mod­

u les for UDP, TCP (transport layers) and IP (network layer) are below the socket layer in the kernel of the operating system. Data is passed between user pro­

cesses and the protocol modules through socket buffe rs. On message transmission, the data is typi­

cally moved by the host processor from user space to kernel memory for the protocol layers to packet­

ize and del iver to the data l ink device driver for transmission. The boundary crossing from user to kernel memory space is usual ly needed in a general­

purpose operating system for protection purposes.

Figure 2 shows where the incremental overhead for

Digital Technical journal Vol. 5 No. 1 Winter 1993

packet processing, based on packet size, occurs in a typical BSD 4.3 distribution.

The kernel memory is organized as bu ffers of var­

ious types. These are called mbufs. They are the pri­

mary means for carrying data (and protocol headers) through the protocol layers. The protocol modules organize the data into a packet, compute its checksum, and pass the packet (which is a set of mbufs chained together by pointers) to the data l ink driver for transmission. From these kernel mbufs, the data has to be moved to the buffers on the adapter across the system bus. Once the adapter has a copy of the header and data, it may return an indication of transmit completion to the host. This allows the device driver to release the kernel mbufs to be reused by the higher l ayers for transmitting or for receiving packets (if buffers are shared between transmit and receive).

While receiving packets, the adapter moves the received data i nto the host's kernel mbufs using DMA. The adapter then interrupts the host proces­

sor, indicating the reception of the packet. The data l in k driver then executes a filter fu nction to enable posting the packet to the appropriate protocol pro­

cessing queue. The data remains in the same kernel mbufs during protocol processing. Buffer pointers are manipu lated to pass references to the data between the elements processing each of the proto­

col layers. Finally, on identifying the user process of the received message, the data is moved from the kernel mbufs to the user's address space.

Another important incremental operation per­

formed i n the host is that of computing the check­

sum of the data on receive or transmit. Every byte of the packet data has to be examined by the pro­

cessor for errors, adding overhead in both CPU pro­

cessing and memory bandwidth. One desirable characteristic of doing the checksum after the data is in memory is that it provides end-to-end protec­

tion for the data between the two commun icating end systems. Because data movement and check­

sum operations are frequently performed and exer­

cise components of the system architecture (memory) that are difficult to speed up signifi­

cantly, we looked at these in detail as candidates for optimization.

The Internet Protocol Suite:

TCP/IP and UDP/IP

The protocols targeted for our efforts were TCP/lP and UDP/IP, part of what is conventional ly known as the internet protocol suiteJ,9

47

DEC net Open Networking

TRANSMIT USER RECEIVE USER

-- ,

; :�I�

-

- - - ��;:�' - - - �T� ;,

-COPY COPY

� �

(2)

I

CHECKSUM

J I

CHECKSUM

I

(2)

_ _ _ _ _ _ _ _ _ _ TRANSPORT _ _ __ _ _ __ _ _

LAYER