Address: 87.5000.0C00 The Cache Valid map registers can be used by a cache flusher to break the cache flush down into smaller pieces and continue the flush after clock interrupts and other short interruptions. The flusher flushes a section, clears the CVM bit(s) corresponding to the section flushed. Later, the flusher can check the CVM Registers to find any areas of cache that have been reloaded since the flush and flush them again. The primary use of this register is during power management. There is the possibility that cache may be large enough that it would make flushing the entire cache take longer than a single interval timer cycle. This register provides the power management code the means to break the cache flushing sequence down into manageable pieces. The table below describes the actual mapping of the register. The table contains the base address for the particular bit position and is 32 KB in length. The CVM register will encompass cache sizes from 0 to 1 MB. The register can be used for caches larger than 1 MB as each bit is aliased. The bit field then represents the offset within each 1 MB bank. | ||
Bit Position | CVM | |
---|---|---|
<0> | 00000000 | |
<1> | 00008000 | |
<2> | 00010000 | |
<3> | 00018000 | |
<4> | 00020000 | |
<5> | 00028000 | |
<6> | 00030000 | |
<7> | 00038000 | |
<8> | 00040000 | |
<9> | 00048000 | |
<10> | 00050000 | |
<11> | 00058000 | |
<12> | 00060000 | |
<13> | 00068000 | |
<14> | 00070000 | |
<15> | 00078000 | |
<16> | 00080000 | |
<17> | 00088000 | |
<18> | 00090000 | |
<19> | 00098000 | |
<20> | 000A0000 | |
<21> | 000A8000 | |
<22> | 000B0000 | |
<23> | 000B8000 | |
<24> | 000C0000 | |
<25> | 000C8000 | |
<26> | 000D0000 | |
<27> | 000D8000 | |
<28> | 000E0000 | |
<29> | 000E8000 | |
<30> | 000F0000 | |
<31> | 000F8000 |