![](http://datasheet.mmic.net.cn/260000/PTM1300FBEA_datasheet_15959396/PTM1300FBEA_292.png)
TM1300 Data Book
Philips Semiconductors
A-6
PRODUCT SPECIFICATION
allocx
Allocate a cache block with scaled index
SYNTAX
[ IF rguard ] allocx rsrc1 rsrc2
FUNCTION
if
rguard
then {
cache_block_mask = ~(cache_block_size -1)]
allocate adata cache blockwith [(rsrc1 + 4 x rsrc2) & cache_block_mask] address
}
ATTRIBUTES
Function unit
Operation code
Number of operands
Modifier
Modifier range
Latency
Issue slots
dmemspec
215
2
No
-
-
5
DESCRIPTION
The allocx operation allocate a cache block with the address computed from
[(rsrc1 + 4 x rscr2) & cache_block_mask]
and sets the status of this cache block as valid. No data is fetched from main memory for this operation. The allocated
cache block data is undefined after this operation. It is the responsibility of the programmer to update the allocated
cache block by store operations.
Refer to the ‘cache architecture’ section for details on the cache block size.
The
allocx
operation optionally takes a guard, specified in rguard If a guard is present, its LSB controls the
execution of the allocx operation. If the LSB of rguardis 1, allocx operation is executed; otherwise, it is not executed.
EXAMPLES
Initial Values
Operation
Result
r10 = 0xabcd, r12 = 0xc
cache_block_size = 0x40
allocx r10 r12
Allocates a cache block for the address space from
0xabc0 to 0x0xabff without fetching the data from
main memory; The data in this address space is
undefined.
since guard is false, allocx operation is not executed
r10 = 0xabcd, r11 = 0, r12=0xc,
cache_block_size = 0x40
r10 = 0xabff, r11 = 1, r12 =0x4,
cache_block_size = 0x40
IF r11 allocx r10 r12
IF r11 allocx r10 r12
Allocates a cache block for the address space from
0xac00 to 0xac3f without fetching the data from main
memory; the data in this address space is undefined.
SEE ALSO
allocd allocr