English
Language : 

82596DX Datasheet, PDF (17/77 Pages) Intel Corporation – HIGH-PERFORMANCE 32-BIT LOCAL AREA NETWORK COPROCESSOR
82596DX SX
Ready Suspended No Receive Resources etc ) in-
terrupt bits (Command Completed Frame Received
CU Not Ready and RU Not Ready) and statistical
counters
The Command List functions as a program for the
CU individual commands are placed in memory
units called Command Blocks (CBs) These CBs
contain the parameters and status of specific high-
level commands called Action Commands e g
Transmit or Configure
Transmit causes the 82596 to transmit a frame The
Transmit CB contains the destination address the
length field and a pointer to a list of linked buffers
holding the frame that is to be constructed from sev-
eral buffers scattered throughout memory The
Command Unit operates without CPU intervention
the DMA for each buffer and the prefetching of ref-
erences to new buffers is performed in parallel The
CPU is notified only after a transmission is complete
The Receive Frame Area is a list of Free Frame De-
scriptors (descriptors not yet used) and a list of user-
prepared buffers Frames arrive at the 82596 unso-
licited the 82596 must always be ready to receive
and store them in the Free Frame Area The Re-
ceive Unit fills the buffers when it receives frames
and reformats the Free Buffer List into received-
frame structures The frame structure is for all prac-
tical purposes identical to the format of the frame to
be transmitted The first Frame descriptor is refer-
enced by the SCB Unless the 82596 is configured
to Save Bad Frames the frame descriptor and the
associated buffer descriptor which is wasted when
a bad frame is received are automatically reclaimed
and returned to the Free Buffer List
Receive buffer chaining (storing incoming frames in
a linked buffer list) significantly improves memory
utilization Without buffer chaining the user must al-
locate consecutive blocks of memory each capable
of containing a maximum frame (for Ethernet 1518
bytes) Since an average frame is about 200 bytes
this is very inefficient With buffer chaining the user
can allocate small buffers and the 82596 will only
use those that are needed
Figure 7 A–D illustrates how the 82596 uses the
Receive Frame Area Figure 7A shows an unused
Receive Frame Area composed of Free Frame De-
scriptors and Free Receive Buffers prepared by the
user The SCB points to the first Frame Descriptor of
the Frame Descriptor List Figure 7B shows the
same Receive Frame Area after receiving one
frame This first frame occupies two Receive Buffers
and one Frame Descriptor a valid received frame
will only occupy one Frame Descriptor After receiv-
ing this frame the 82596 sets the next Free Frame
Descriptor RBD pointer to the next Free RBD Figure
7C shows the RFA after receiving a second frame
In this example the second frame occupies only one
Receive Buffer and one RFD The 82596 again sets
the RBD pointer This process is repeated again in
Figure 7D showing the reception of another frame
using one Receive Buffer in this example there is an
extra Frame Descriptor
TRANSMIT AND RECEIVE MEMORY
STRUCTURES
There are three memory structures for reception and
transmission The 82586 memory structure the
Flexible memory structure and the Simplified memo-
ry structure The 82586 mode is selected by config-
uring the 82596 during initialization In this mode all
the 82596 memory structures are compatible with
the 82586 memory structures
When the 82596 is not configured to the 82586
mode the other two memory structures Simplified
and Flexible are available for transmitting and re-
ceiving These structures are selected by setting the
S F bit in the Transmit Command and or the Re-
ceive Frame Descriptor (see Figures 29 30 41 and
42) It is recommended that any linked list of buffers
be relegated to a single type either simplified or
flexible The Simplified memory structure offers a
simple structure for ease of programming (see Fig-
ure 8) All information about a frame is contained in
one structure for example during reception the RFD
and data field are contained in one structure
The Flexible memory structure (see Figure 9) has a
control field that allows the programmer to specify
the amount of receive data the RFD will contain for
receive operations and the amount of transmit data
the Transmit Command Block will contain for trans-
mit operations For example when the control field
in the RFD is set to 20 bytes during a reception the
first 20 bytes of the data field are stored in the RFD
(6 Bytes of Destination Address 6 Bytes of Source
Address 2 Bytes of Length Field and 6 Bytes of
Data) and the remainder of the data field is stored in
the Receive Data Buffers This is useful for capturing
frame headers when header information is con-
tained in the data field The header information can
then be automatically stored in the RFD partitioned
from the Receive Data Buffer
The control field can also be used for the Transmit
Command when the Flexible memory structure is
used The quantity of data field bytes to be transmit-
ted from the Transmit Command Block is specified
by the variable control field
17