236 Hardware Reference Manual
Intel® IXP2800 Network Processor
SHaC — Unit Expansion
7.1.3 Hash Unit

The SHaC unit contains a Hash Unit that can take 48-, 64-, or 128-bit data and produce a 48-, 64-,

or a 128-bit hash index, respectively. The Hash Unit is accessible by the Microengines and the

Intel XScale® core. Figure 87 is a block diagram of the Hash Unit.

.Figure 87. Hash Unit Block Diagram
A9758-01
PULL0 FIFO
(32 x 32 bit)
SP0_PULL_DATA
HASH_
PULL_DATA
HASH_CMD
HASH_PULL_
DATA_SEL
HASH_CMD_VALID
SCR_HASH_CMD
SCR_HASH_TAKE_
PULL0_DATA
PULL1 FIFO
(32 x 32 bit)
Hash
State
Machine

Hash

Algorithm

SP1_PULL_DATA
SCR_HASH_TAKE_
PULL_DATA
HASH_
PUSH_CMD
HASH_PUSH_
DATA_REQ
Hash Select 2
HASH_DATA 1
Hash Multiplier
From
SCR
From
PULL1
Arb
To SCR
From
SCR
From
PULL0
Arb
From
SCR
3-Stage
Command
Pipe
3-Stage
Output
Buffer
HASH_
RESULT
128 Bit
HASH_REMINDER

HASH_RESULT

To SCR
Notes:1. 128 bits, shifted 16 bits per CLK.
2. 128 bit, 64-bit, or 4-bit