SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
Software Direct Preload SDP allows preloading of a range of system memory into the program cache. Software sets the preload base address register (EVE_PC_PBAR), along with a preload byte counter (EVE_PC_PBC) register (maximum = 0x8000). Hardware will issue a cache line fill request to the system for the associated line for the programmed address range. When the data is returned for each line, it is written into the cache (32-bits per write, to minimize program stalls) and the tag is marked as valid for the new address. This process is repeated for every cache line in the requested range. When the operation completes, the EVE_PC_PBC register is set to 0.
Software must verify that the previous operation is completed before issuing another SDP operation.
Functional ARP32 requests are given a lower priority relative to software preload requests. The normal operation of the software preload results in many idle cycles while preload requests are in flight through the system. During that time ARP32 CPU accesses that result in cache hits proceed unhindered. If a CPU cache miss occurs while SDP operation is active, the two operations proceed in parallel.
The start address can be any arbitrary byte address, whereas the preload operation occurs on cache lines (32-bit aligned).Thus, the range preloaded is effectively rounded down to the nearest cache-line address relative to the start address, and rounded up to include the entire cache line relative to the end address.
Preload requests operate in parallel with the DBP block and do not use the buffering provided by the DBP block. Instead, the returned data for software direct preload is written directly to the program cache as highest priority, thus minimizing the required buffering and minimizing the impact on the system.