English
Language : 

DP83932C-20 Datasheet, PDF (16/98 Pages) National Semiconductor (TI) – MHz SONICTM Systems-Oriented Network Interface Controller
3 0 Buffer Management (Continued)
3 4 2 Receive Buffer Area (RBA)
The SONIC stores the actual data of a received packet in
the RBA The RBAs are designated by the resource descrip-
tors in the RRA as described above The RXrsrc buff
wc0 1 fields of the RRA indicate the length of the RBA
When the SONIC gets a RBA from the RRA the
RXrsrc buff wc0 1 values are loaded into the Remaining
Buffer Word Count registers (RBWC0 1) These registers
keep track of how much space (in words) is left in the buffer
When a packet is buffered in a RBA it is buffered contigu-
ously (the SONIC will not scatter a packet into multiple buff-
ers or fragments) Therefore if there is not enough space
left in a RBA after buffering a packet to buffer at least one
more maximum sized packet (the maximum legal sized
packet expected to be received from the network) a new
buffer must be acquired The End of Buffer Count (EOBC)
register is used to tell the SONIC the maximum packet size
that the SONIC will need to buffer
3 4 2 1 End of Buffer Count (EOBC)
The EOBC is a boundary in the RBA based from the bottom
of the buffer The value written into the EOBC is the maxi-
mum expected size (in words) of the network packet that
the SONIC will have to buffer This word count creates a line
in the RBA that when crossed causes the SONIC to fetch a
new RBA resource from the RRA
Note
The EOBC is a word count not a byte count Also the value pro-
grammed into EOBC must be a double word (32-bit) quantity when
the SONIC is in 32-bit mode (e g in 32-bit mode EOBC should be set
to 758 words not 759 words even though the maximum size of an
IEEE 802 3 packet is 759 words)
3 4 2 2 Buffering the Last Packet in an RBA
At the start of reception the SONIC stores the packet be-
ginning at the Current Receive Buffer Address (CRBA0 1)
and continues until the reception is complete Concurrent
with reception the SONIC decrements the Remaining Buff-
er Word Count (RBWC0 1) by one in 16-bit mode or by two
in 32-bit mode At the end of reception if the packet has
crossed the EOBC boundary the SONIC knows that the
next packet might not fit in the RBA This check is done by
comparing the RBWC0 1 registers with the EOBC If
RBWC0 1 is less than the EOBC (the last packet buffered
has crossed the EOBC boundary) the SONIC fetches the
next resource descriptor in the RRA If RBWC0 1 is greater
than or equal to the EOBC (the EOBC boundary has not
been crossed) the next packet reception continues at the
present location pointed to by CRBA0 1 in the same RBA
Figure 3-4 illustrates the SONIC’s actions for (1) RBWC0 1
t EOBC and (2) RBWC0 1 k EOBC See Section 3 4 4 4
for specific information about setting the EOBC
Note
It is important that the EOBC boundary be ‘‘crossed ’’ In other words
case 1 in Figure 3-4 must exist before case 2 exists If case 2
occurs without case 1 having occurred first the test for RBWC0 1
k EOBC will not work properly and the SONIC will not fetch a new
buffer The result of this will be a buffer overflow (RBAE in the Inter-
rupt Status Register Section 4 3 6)
FIGURE 3-3 Receive Resource Area Format
TL F 10492 – 12
Case 1
(RBWC0 1 t EOBC)
Case 2
(RBWC0 1 k EOBC)
TL F 10492 – 13
Case 1 SONIC buffers next packet in same RBA
Case 2 SONIC detects an exhausted RBA and will buffer the next packet in another RBA
FIGURE 3-4 Receive Buffer Area
16