MIPS R4000 Microprocessor User's Manual C-3
Subblock Ordering
Using the subblock ordering shown in Figure C-2, the doubleword at the
target address is retrieved first (DW2), followed by the remaining
doubleword (DW3) in this quadword.
Next, the quadword that fills out the octalword are retrieved in the same
order as the prior quadword (in this case DW0 is followed by DW 1). This
is followed by the remaining octalword (DW8, DW7, DW4, DW5), that fills
out the hexword.
It may be easier way to understand subblock ordering by taking a look at
the method used for generating the address of each doubleword as it is
retrieved. The subblock ordering logic generates this address by
executing a bit-wise exclusive-OR (XOR) of the starting block address with
the output of a binary counter that increments with each doubleword,
starting at doubleword zero (000
2
).
Using this scheme, Tables C-1 through Table C-3 list the subblock ordering
of doublewords for a 32-word block, based on three different starting-
block addresses: 0010
2
, 1011
2
, and 0101
2
. The subblock ordering is
generated by an XOR of the subblock address (either 0010
2
, 1011
2
, and
0101
2
) with the binary count of the doubleword (0000
2
through 1111
2
).
Thus, the eighth doubleword retrieved from a block of data with a starting
address of 0010
2
is found by taking the XOR of address 0010
2
with the
binary count of DW8, 0111
2
. The result is 0101
2
, or DW5 (shown in Table
C-1).
The remaining tables illustrate this method of subblock ordering, using
various address permutations.