82
3.0 Functional Description
3.5 Reassembly Coprocessor
Bt8230
ATM Segmentation and Reassembly Controller—SAR
N8230DS1F
3.5.4 Scatter Method to Host Memory
The Bt8230 uses an intelligent scatter method to write cell payload data to host
memory. The reassembly coprocessor maintains the scatter operation and controls
the incoming DMA block during scatter DMA to host memory. Both message
mode and streaming mode are supported. Message mode writes a status entry at
the completion of a CPCS-PDU. The host can then traverse the linked cell buffers
to collect the complete CPCS-PDU. In streaming mode, a status entry is written
after each cell buffer is filled or the last cell of a CPCS-PDU has been received.
Three data structures are maintained, one in the host memory and two in local
memory. The linked cell buffers (HCELL_BUFF) reside in host memory, and the
free buffer queue (HFR_BUFF_QUE) and status queue (HSTAT_QU) reside in
local memory. The linked cell buffers contain the payload portion of the cell. The
free buffer queue is a circular buffer that contains pointers to linked cell buffers
and gives their length. The status queue contains information that allows the pro-
cessor to operate on the linked cell buffers.
3.5.4.1 Linked Cell
Buffers
The variable length-linked cell buffers (HCELL_BUFF), pointed to by the free
buffer queue entries, reside in host memory. The reassembly coprocessor writes
the payload part of the cell to this buffer space, see (Figure 3-27). The first two
words of the buffer are user defined and may be used to store buffer length and
offset. The last word of the buffer, NEXT_POINTER, is an optional pointer to the
next linked buffer. This entry is written by the reassembly coprocessor after it has
obtained a new buffer space for the corresponding connection or been written to
CBUFF_LEN
Current Buffer Length—Unused space of the current buffer in words.
CBUFF_CNT
Current Buffer Count—Buffer firewall count.
CBUFF_ADDR
Current Buffer Address—Pointer to the current unused position of the cell buffer where cell payload data
may be written.
BASIZE
BaSize—Used in AAL3/4 to record the BASIZE field in order to check against the LENGTH field.
NEXT_ST
Next Segment Type—Next AAL3/4 segment type expected.
NEXT_SN
Next Sequence Number—Next AAL3/4 sequence number expected.
BTAG
BTAG—Used in AAL3/4 to record the CPCS-BTAG field in order to check against the CPCS-ETAG field.
CRC_REM
Cycle Redundancy Check Remainder—CRC32 remainder used in AAL5 only.
CELL_CNT
Cell Count—Total number of cells received.
PDU_CNT
Protocol Data Unit Count—Number of unerrored CPCS-PDUs received.
PDU_TS
Protocol Data Unit Timestamp—Records the timestamp of when the current PDU started.
LAST_TS
Last Timestamp—Records the timestamp of the last cell received. Used for message time-out function.
LAST_COUNT
Last Count—Used by the local or host processor to record the value of the CELL_CNT field when the VCC
table was last read. Not required for Bt8230 operation.
CREDIT_TS
Credit Timestamp—Used by the local or host processor to record the last time that credit was checked. Not
required for Bt8230 operation.
Table 3-20. Reassembly VCC Table Format Field Descriptions (2 of 2)
Field Name
Description