The main features of ARP32 program cache are:
- 32-KB direct mapped cache
- 32-B line size
- Hit throughput: 32-bits per cycle, 100% throughput
- Read-only (from ARP32 perspective), all accesses are cacheable
- Read and write by debug OCP port
- Software directed preload
- Demand based prefetch
- Software directed invalidate
- Debug support:
- Single register one-line invalidate (for breakpoint support)
- Tags memory mapped
- SRAM memory mapped
- Cache miss signaling to SCTM
- Hamming code based error detection: 10-bits per 256-bit location + tag + address
Program cache is a direct-mapped cache, therefore software controls the linking of the functions in external memory to minimize conflict misses. The program cache supports error detection encoding and can correct two errors per 256 bits of program code.