Released
Datasheet
PM73487 QRT
PMC-Sierra, Inc.
PMC-980618
Issue 3
622 Mbps ATM Traffic Management Device
2.5 Receiver Operation
2.5.1 Receive Channel Lookup
The receive channel lookup uses two tables: VI_VPI_TABLE (refer to “VI_VPI_TABLE” on
page 175) and VCI_TABLE (refer to “VCI_TABLE” on page 176) to generate a channel number
for an incoming cell. The channel number in turn is used to access the Channel Control Block
(CCB), in the connection table. The CCB contains the configuration and state for the connection.
Figure 25 shows the method used to generate the channel number for VCCs: the Virtual Input
(VI) number and the VPI bits are used to index into a VI_VPI_TABLE of up to 4K entries per VI.
Each entry contains the base address of a block in the VCI_TABLE for that VP and the size of
that block. A VCI_TABLE entry contains a channel number for that VCC. On the other hand, if
channel is a VPC, its VI_VPI_TABLE contains the channel number directly (see Figure 26).
The number of active VC bits can be modified during operation of the QRT by creating a new
VCI_TABLE and then changing the VC_BASE and VCI_BITS (refer to “VCI_BITS” on page
176) values to point to the new table in one write. This is possible since the BLOCK_OFFSET
(refer to “BLOCK_OFFSET” on page 176) is just a pointer to the VCI_TABLE, and the
VCI_TABLE holds no state information. Thus, when the first connection arrives, the eventual
size of the VCI block can be initially guessed. Later, if the guess proves to be too low and the
table grows too big, there is no penalty: a new VCI_TABLE can be created on-the-fly.
This method of determining the CCB allows a flexible and wide range of active VPI and VCI bits
without requiring an expensive Content-Addressable Memory (CAM) or causing fragmentation
of the CCBs.
BLOCK_OFFSET,
VCI_BITS
Channel Number
VCI
VPI
Channel Control
Block (CCB)
VI_VPI_TABLE
Connection Table
VCI_TABLE (one table per VP)
Figure 25. VCC Channel Lookup
25