
Philips Semiconductors
DSPCPU Operations for TM1300
PRODUCT SPECIFICATION
A-145
prefetch with 32-bit scaled index
SYNTAX
[ IF r
guard ] pref32x rsrc1 rsrc2
FUNCTION
if r
guard then {
cache_block_mask = ~(cache_block_size - 1)
data_cache <- mem[(rsrc1 + (4 x rscr2)) & cache_block_mask]
}
ATTRIBUTES
Function unit
dmemspec
Operation code
212
Number of operands
2
Modier
No
Modier range
-
Latency
-
Issue slots
5
DESCRIPTION
The pref32x operation loads the one full cache block size of memory value from the address computed by ((rsrc1+
(4 x rscr2)) & cache_block_mask) and stores the data into the data cache. This operation is not guaranteed to be
executed. The prefetch unit will not execute this operation when the data to be prefetched is already in the data cache.
A pref32x operation will not be executed when the cache is already occupied with 2 cache misses, when the operation
is issued.
The pref32x operation optionally takes a guard, specied in rguard. If a guard is present, its LSB controls the
execution of the prefetch operation. If the LSB of rguard is 1, prefetch operation is executed; otherwise, it is not
executed..
EXAMPLES
NOTE: This operation is supported only in TM1000, TM1100 and TM1300 and it is not
guaranteed to be available in future generations of this product.
Initial Values
Operation
Result
r10 = 0xabcd, r12 = 0xd
cache_block_size = 0x40
pref32x r10 r12
Loads a cache line for the address space from
0xac00 to 0x0xac3f from the main memory. If the
data is already in the cache, the operation is not exe-
cuted.
r10 = 0xabcd, r11 = 0, r12=0xd,
cache_block_size = 0x40
IF r11 pref32x r10 r12
since guard is false, pref32x operation is not executed
r10 = 0xabff, r11 = 1, r12 =0x1,
cache_block_size = 0x40
IF r11 pref32x r10 r12
Loads a cache line for the address space from
0xac00 to 0x0xac3f from the main memory. If the
data is already in the cache, the operation is not exe-
cuted.
SEE ALSO
pref16x prefd prefr allocd
allocr allocx
pref32x