
MT90500
61
Registers 3022h and 3032h are used to maintain statistics on the occurrence of RX_SAR underrun and
overrun conditions. The last VC where an underrun or overrun condition was detected is also recorded in the
event ID registers 3020h and 3030h.
Note:
Care must be taken when assigning the Maximum Lead value for small circular buffers: when the
Maximum Lead is too far from the TDM Read Pointer, the reception of a cell could write new data over the data
being read by the TDM module. This error can occur if {(Maximum Lead) + (# of Bytes in Cell)} > (Circular
Buffer Size).
4.4.2.4
Lost Cell Handling
In the event of a lost cell, the MT90500 maintains bit count integrity through buffer-fill level monitoring, rather
than through sequence number processing (ITU-T Rec. I.363.1 terminology). Sequence numbers are however
monitored, and errors are reported (registers 3000h and 3002h). In the event of an underflow (due to lost cells
or excessive CDV) the buffers are reset to “Avg. Lead” for all TDM channels carried by a particular VC.
In the event of a single cell loss:
RX_SAR Write Underrun will detect underrun if the CDV tolerance is depleted (3002h);
TDM Read Underrun will detect underrun if Rx Circular Buffer is depleted (6002h);
Sequence number error will be detected (3002h).
In the event of loss of multiple consecutive cells:
RX_SAR may detect Write Underrun or Write Overrun (dependent on number of cells lost, and Rx
circular buffer size);
TDM Read Underrun will detect underrun if Rx Circular Buffer is depleted;
Sequence number error will be detected.
In the event a VC gets disconnected:
TDM Read Underrun will detect underrun (once Rx Circular Buffer is depleted).
Note that the operation of the TDM Read Underrun Error bit requires that the TDM Read Underrun Detection
Enable bit in the External to Internal Memory Control Structure be asserted (for the particular TDM channel in
question) and 9-bit (parity) memory is used (36-bit rather than 32 bit external memory). In the event of a cell
loss not large enough to trigger one of the underrun alarms, the TDM data is read as normal from the Rx
Circular Buffer. This will “jump” the data from the lost cell, similar to a frame slip in TDM switches. In the event
of a TDM Read Underrun Error, the TDM output depends on the state of the External Memory to Internal
Memory Control Structure write-back disable bit, as explained in Section 4.4.2.2.
If enough cells are lost on a particular VC, causing the TDM Circular Buffer Read Pointer to advance far
enough to “wrap around”, it is possible for the RX_SAR to mistakenly declare an overrun when a cell finally
arrives. Using a larger circular buffer RAM allocation makes this less likely to occur, since the RAM is re-used
at greater intervals. (The delay is not increased, as delay is controlled by Maximum Lead and Average Lead,
not by the RAM allocation.) In any event, the TDM Read Underrun will correctly identify an underrun, even in
situations of large numbers of lost cells.