
PCI Cache Mode
3-5
cache boundary quickly with no overow. 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 boundary. The SYM53C895
rst tries to align to a 4-dword boundary (0x0000, 0x0010, etc.) by using
single dword transfers (no bursting). Once this boundary has been
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-
evaluates 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 nished at this point.
Example: Cache Line Size - 16, Current Address = 0x01 – The chip
is not aligned to a 4-dword cache boundary (the stepping threshold), so
it issues four single-dword transfers (the rst is a 3-byte transfer). 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 SYM53C895 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 0x40, which is a cache line
size boundary. Alignment stops, and the burst size from then on is
switched to 16.
3.3.4 Memory Move Misalignment
The SYM53C895 does not operate in a cache alignment mode when a
Memory Move instruction 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, the write address is 0x42F,
and the cache line size is eight (8), the addresses are byte aligned, but
they are not the same distance from the nearest cache boundary. The
read address is 1 byte from the cache boundary 0x220 and the write