
Philips Semiconductors
DSPCPU Operations for TM1300
PRODUCT SPECIFICATION
A-5
Allocate a cache block with index
SYNTAX
[ IF r
guard ] allocr rsrc1 rsrc2
FUNCTION
if r
guard then {
cache_block_mask = ~(cache_block_size -1)]
allocate adata cache block with [(rsrc1 + rsrc2) & cache_block_mask] address
}
ATTRIBUTES
Function unit
dmemspec
Operation code
214
Number of operands
2
Modier
No
Modier range
-
Latency
-
Issue slots
5
DESCRIPTION
The allocr operation allocate a cache block with the address computed from [(rsrc1 + 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 undened 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 allocr
operation optionally takes a guard, specied in r
guard. If a guard is present, its LSB controls the
execution of the allocr operation. If the LSB of r
guard is 1, allocr operation is executed; otherwise, it is not executed.
EXAMPLES
Initial Values
Operation
Result
r10 = 0xabcd, r12 = 0x32
cache_block_size = 0x40
allocr r10 r12
Allocates a cache block for the address space from
0xabc0 to 0xabff without fetching the data from main
memory; The data in this address space is undened.
r10 = 0xabcd, r11 = 0, r12=0x32,
cache_block_size = 0x40
IF r11 allocr r10 r12
since guard is false, allocr operation is not executed
r10 = 0xabff, r11 = 1, r12 =0x4,
cache_block_size = 0x40
IF r11 allocr 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 undened.
SEE ALSO
allocd allocx
allocr