
178
Bt8230
ATM Segmentation and Reassembly Controller—SAR
N8230DS1F
B.3 SEG Host Status Queue
Each segmentation host status queue entry indicates to the host processor that a
host buffer (in streaming mode) or PDU (in message mode) has been completely
segmented. If this queue fills, segmentation halts unless bit SEG_HS_DIS is set
to one in the SEG_CRTL register. For optimum performance, the queue should be
sized large enough to avoid overflows.
A sizing strategy similar to those discussed for the SEG Host Transmit Queue
must be applied. If the host has a fixed-size buffer pool, sizing this queue to be
greater than or equal to the number of buffers will guarantee that there are no
overflows. If the host has a variable-sized buffer pool, host servicing of the queue
must be capable of handling the worst-case queue entry depth in order to avoid
overflows. The rate of queue entry processing is a function of the host processor
queue service frequency and the number of entries processed per service. The rate
of queue additions by the Bt8230 is a function of the number of active VCCs, the
number of buffers per PDU, the segmentation mode (streaming or message), and
the PDU scheduling. Assuming that the host can process all queued entries with
each status queue service, the function is reduced to the equation below. The
examples below will help in determining the correct values to plug into this equa-
tion:
queue size required = Np * Nb
where:Np = maximum number of PDUs completing segmentation during a host
processor status queue service interval.
Nb = maximum number of buffers per PDU (in streaming mode)
(in message mode, this = 1)
The number of active VCC connections is an important factor in sizing this
queue. In the simplest case, only one active VCC, the rate of status queue entries
is easily approximated. Entries are made sequentially as PDUs are segmented.
Overflow of the status queue can be avoided using the smallest queue size, by
matching the average rate of status queue entry additions with the host’s average
rate of status queue entry processing or deletions. However, as the number of
active VCCs increases, the likelihood of bursts of status queue entries increases.
This may cause the queue to overflow, thereby halting segmentation. (See Exam-
ples 1 and 2 following).
Example 1: One Active VCC
Suppose there is one active VCC and that the average segmentation
completion rate is 10 buffers every 0.5 ms. If the host polls and services
the status queue once every 5 ms, it could process roughly 100 buffers
each time. A minimum queue size of 256 entries would be adequate. If
the host polled and serviced the status queue once every 25 ms and pro-
cessed roughly 500 buffers each time, a queue size of 1024 would suf-
fice. If the host software is interrupt driven rather than polled, then the
queue entries are processed as they are added and a minimum queue size
would suffice.