Hardware Reference Manual 231
Intel® IXP2800 Network Processor
SHaC — Unit Expansion
When the RMW command reaches the head of the Command pipe, the Scratchpad reads the
memory location in the RAM. If the source requests the pre-modified data (Token[0] set), it is sent
to the Push Arbiter at the time of the read. If the RMW requires pull data, the command waits for
the data to be placed into the Pull Data FIFO before performing the operation; otherwise the
operation is performed immediately. Once the operation has been performed, the modified data is
written back to the Scratchpad RAM.
Up to two Microengine signals are assigned to each read-modify-write reference. Microcode
should always tag the read-modify-write reference with an even-numbered signal. If the operation
requires a pull, then the requested signal is sent on the pull. If the read data is to be returned to the
Microengine, then the Microengine is sent (requested signal OR 1) when that data is pushed.
For all atomic operations, whether or not the read data is returned, is determined by Command bus
Token[0].
Note: The Intel XScale® core can do atomic commands using aliased addresses in Scratchpad. An Intel
XScale® core Store instruction to an atomic command address will do the RMW without returning
the read data, and an Intel XScale® core Swap instruction (SWP) to an atomic command address
will do the RMW and return the read data to Intel XScale® core.
7.1.2.3.2 Ring Commands
The Scratchpad provides 16 Rings used for interprocess communication. The rings provide two
operations.
Get(ring, length)
Put(ring, length)
Ring is the number of the ring (0 — 15) to get from or put to, and length specifies the number of
longwords to transfer. A logical view of one of the rings is shown in Figure86.
Figure 86. Ring Communication Logic Diagram
A9757-01
Read/Write/Atomic
Addresses
Full
1 of 16 Head Tail Base Size
Address
Decoder Scratchpad RAM