C Subblock Ordering

C.2 Subblock Ordering


Subblock ordering allows the system to define the order in which the data elements are retrieved. The smallest data element of a block transfer for the R400 is a doubleword, and Figure C-2 shows the retrieval of a block of data that consists of 8 doublewords, in which DW2 is taken first.



Figure C-2 Retrieving Data in a Subblock Order

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 (0002).

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: 00102, 10112, and 01012. The subblock ordering is generated by an XOR of the subblock address (either 00102, 10112, and 01012) with the binary count of the doubleword (00002 through 11112). Thus, the eighth doubleword retrieved from a block of data with a starting address of 00102 is found by taking the XOR of address 00102 with the binary count of DW8, 01112. The result is 01012, or DW5 (shown in Table C-1).

The remaining tables illustrate this method of subblock ordering, using various address permutations.

Table C-1 Sequence of Doublewords Transferred Using Subblock Ordering: Address 00102

Table C-2 Sequence of Doublewords Transferred Using Subblock Ordering: Address 10112

Table C-3 Sequence of Doublewords Transferred Using Subblock Ordering: Address 01012



Copyright 1996, MIPS Technologies, Inc. -- 21 MAR 96

Generated with CERN WebMaker
statistics