Hardware Reference Manual 227
Intel® IXP2800 Network Processor
SHaC — Unit Expansion
7.1.2 Scratchpad

7.1.2.1 Scratchpad Description

The SHaC Unit contains a 16-Kbyte Scratchpad memory, organized as 4K 32-bit words, that is
accessible by the Intel XScale® core and Microengines. The Scratchpad connects to the internal
Command, S_Push and S_Pull, CSR, and APB buses, as shown in Figure85.
The Scratchpad memory provides the following operations:
Normal reads and writes. 1 — 16 longwords (32 bits) can be read/written with a single
command. Note that Scratchpad is not byte-writable. Each write must write all four bytes.
Atomic read-modify-write operations, bit-set, bit-clear, increment, decrement, add, subtract,
and swap. The Read-Modify-Write (RMW) operations can also optionally return the
premodified data.
16 Hardware Assisted Rings for interprocess communication.1
Standard support of APB peripherals such as UART, Timers, and GPIOs through the ARM*
Advanced Peripheral Bus (APB).
Fast write and standard read and write operations to CSRs through the CSR Bus. For a fast
write, the write data is supplied with the command, rather than pulled from the source.
Push/Pull Reflector Mode that supports reading from a device on the pull bus and writing the
data to a device on the push bus (reflecting the data from one bus to the other). A typical
implementation of this mode is to allow a Microengine to read or write the transfer registers or
CSRs in another Microengine. Note that the Push/Pull Reflector Mode only connects to a
single Push/Pull bus. If a chassis implements more than one Push/Pull bus, it can only connect
one specific bus to the CAP.
Scratchpad memory is provided as a third memory resource (in addition to SRAM and DRAM)
that is shared by the Microengines and Intel XScale® core. The Microengines and Intel XScale®
core can distribute memory accesses between these three types of memory resources to provide a
greater number of memory accesses occurring in parallel.
1. A ring is a FIFO that uses a head and tail pointer to store/read information in Scratchpad memory.