SPRUIE9D May 2017 – May 2024 DRA74P , DRA75P , DRA76P , DRA77P
The Cortex-A15 processor memory system treats all write-through (WT) accesses as 'write-through, no-allocate'. This means that no cache line from any write-through page allocates in any L1 data or L2 cache. This implies that write-through lines are implemented as non-cacheable in Cortex-A15. Memory requests for write-through cache lines are not looked-up in the L1D or L2, and are sent directly to the AXI master interface. Not caching WT lines was done primarily to avoid back-and-forth L1/L2 snoop invalidations and increasing interconnect traffic when more than one CPU attempts to write to the same WT line. Coherency traffic is greatly reduced in an MP configuration when WT data is treated as 'write-through, no-allocate'.
For non-cacheable and WT memory, all Cortex-A15 memory read requests are 64 bytes. A15 over-reads and then allows forwarding of the data to multiple load instructions. If there is only a single load request for that line, there is no latency hit (since Cortex-A15 does critical word first) although there is potentially an increase in bus power. If there are multiple hits due to consecutive loads of data within the same line, there is a possibility of significant performance gains.