![](http://datasheet.mmic.net.cn/330000/PEF20321_datasheet_16444041/PEF20321_357.png)
PEB 20321
PEF 20321
MUNICH32X Bus Utilization
Data Sheet
357
2001-02-14
15
MUNICH32X Bus Utilization
15.1
General
The MUNICH32X operates on linked lists within the shared memory. Handshaking with
the software also operating on the linked lists is performed via status information in the
linked descriptors and interrupt vectors which are written into queues also located in the
shared memory. In addition current descriptor addresses are written to the Channel
Configuration Block (CCB) which provide information about the MUNICH32X current
position in the linked descriptor lists. Evaluation of this current addresses depend on the
software implementation.
Configuration is handled via on-chip registers and through the Channel Configuration
Block (CCB). The CCB is prepared by software in the shared memory and read by the
MUNICH32X on request.
After initialization and configuration no further on-chip register access is neccessary
other than handling of exception conditions or configuration changes.
Transmit data flow:
The Host CPU prepares transmit data in linked lists. The MUNICH32X gets the start
address of this list via configuration procedure and starts processing the list by reading
the first descriptor (3 DWORDs read burst) and the corresponding data section
(multiple single DWORD read transfers depending on the packet size). After finishing
one descriptor an interrupt vector is generated and written to the corresponding
transmit interrupt queue. The MUNICH32X proceeds branching to the next descriptor
and updating the current descriptor address in the CCB.
For bus load calculation it is assumed that no linked list end condition occurs i.e. the
CPU always attaches new descriptors to the chain and that one interrupt vector per
packet is generated.
Receive data flow.
The Host CPU prepares a linked list of
‘
empty
’
receive descriptors and corresponding
receive data buffers. The MUNICH32X gets the start address of this list via
configuration procedure and starts reading the first descriptor (3 DWORDs read
burst). Receive data is transferred to the receive data section by multiple single
DWORD transfers depending on the packet size. After transfer of one complete
packet the receive descriptor is finished when the MUNICH32X overwrites one
DWORD in the descriptor with status and control information. One Interrupt vector is
generated and written into the corresponding receive interrupt queue. The
MUNICH32X proceeds branching to the next descriptor and updating the current
descriptor address in the CCB.
For bus load calculation it is assumed that no linked list end condition occurs i.e. the
CPU always attaches new descriptors to the chain and that one interrupt vector per
received packet is generated.
Data flow is illustrated in
Figure 109
.