
8201, 8202, 8203, 8204 Acceleration Processor Data Sheet, DS-0157-05
Page 113
Exar Confidential
Figure 5-1 illustrates how the CPP pre-fetches 8 command pointers using 64-bit addressing.
Initially, the host software writes 9 command pointers into the command pointer ring and
updates the CPR write pointer for the 820x. At this point, the 820x CPR read pointer is zero
because it has not read any of the commands. Once the CPP discovers that the CPR buffer
is empty and CPR Read Pointer is not equal to the CPR write pointer, the 820x will fetch the
8 CPR entries and store them into the CPR buffer.
Note: If dual command ring mode is enabled, the CPP will maintain two CPR buffers. The
arbitration of the two CPR buffer read requests uses a round-robin scheme.
5.1.4
Read Request Controller
The Read Request controller (RRC) arbitrates the read requests from multiple sources,
builds the TLP, and sends a read request to the POM. The main functions of the RRC are:
Store the source descriptor starting address and byte count
Arbitrate read requests from both channel managers, the PKP manager and the CPP
Split the source descriptor into TLP read requests and send requests to the POM
Arbitrate command process requests from the dual command ring using a round-
robin scheme.
Send out the command read request and then update the command pointer ring
read pointer
Figure 5-1. DMA Command Pointer Prefetch Example