
2-8
SYM53C876/876E Data Manual
Functional Description
PCI Functional Description
compares this value to the DMODE burst
size, then selects the smaller as the value
for the cache line size.
Alignment
The SYM53C876 uses the calculated line size
value to monitor the current address for align-
ment to the cache line size. When it is not aligned,
the chip attempts to align to the cache boundary
by using a “smart aligning” scheme. This means
that it attempts to use the largest burst size possi-
ble that is less than the cache line size, to reach
the cache boundary quickly with no overflow.
This process is a stepping mechanism that steps
up to the highest possible burst size based on the
current address.
The stepping process begins at a 4-dword bound-
ary. The SYM53C876 first tries to align to a 4-
dword boundary (0x0000, 0x0010, 0x0020, etc.)
by using single dword transfers (no bursting).
Once this boundary is reached, the chip evaluates
the current alignment to various burst sizes
allowed, and selects the largest possible as the
next burst size, while not exceeding the cache line
size. The chip then issues this burst and re-evalu-
ates the alignment to various burst sizes, again
selecting the largest possible while not exceeding
the cache line size, as the next burst size. This
stepping process continues until the chip reaches
the cache line size boundary or runs out of data.
Once a cache line boundary is reached, the chip
uses the cache line size as the burst size from then
on, except in the case of multiples (explained
below). The alignment process is finished at this
point.
Example: Cache Line Size = 16,
Current Address = 0x01h
The chip is not aligned to a 4-dword cache
boundary (the stepping threshold), so it issues 4
single-dword transfers (the first is a 3-byte trans-
fer). At address 0x10, the chip is aligned to a 4-
dword boundary, but not aligned to any higher
burst size boundaries that are less than the cache
line size. So, the part issues a burst of 4. At this
point, the address is 0x20, and the chip evaluates
that it is aligned not only to a 4-dword boundary,
but also to an 8-dword boundary. It selects the
highest, 8, and bursts 8 dwords. At this point, the
address is 0x40h, which is a cache line size
boundary. Alignment stops, and the burst size
from then on is switched to 16.
Memory Move Misalignment
The SYM53C876 does not operate in a cache
alignment mode when a Memory Move instruc-
tion type is issued and the read and write
addresses are different distances from the nearest
cache line boundary. For example, if the read
address is 0x21F and the write address is 0x42F,
and the cache line size is eight (8), the addresses
are byte aligned, but they are not the same dis-
tance from the nearest cache boundary. The read
address is 1 byte from the cache boundary 0x220
and the write address is 17 bytes from the cache
boundary 0x440. In this situation, the chip does
not align to cache boundaries.