Altera Nios II User Manual page 96

Hide thumbs Also See for Nios II:
Table of Contents

Advertisement

3–56
f
Refer to the
Handbook for details of which processor cores implement bit-31 cache bypass. Refer to
Instruction Set Reference
the cache bypass instructions.
Code written for a processor core with cache memory behaves correctly on a
processor core without cache memory. The reverse is not true. If it is necessary for a
program to work properly on multiple Nios II processor core implementations, the
program must behave as if the instruction and data caches exist. In systems without
cache memory, the cache management instructions perform no operation, and their
effects are benign.
f
For a complete discussion of cache management, refer to the
Memory
Some consideration is necessary to ensure cache coherency after processor reset. Refer
to
"Reset Exceptions" on page 3–35
f
For information about the cache architecture and the memory hierarchy refer to the
Processor Architecture
Virtual Address Aliasing
A virtual address alias occurs when two virtual addresses map to the same physical
address. When an MMU and caches are present and the caches are larger than a page
(4 KB), the operating system must prevent illegal virtual address aliases. Because the
caches are virtually-indexed and physically-tagged, a portion of the virtual address is
used to select the cache line. If the cache is 4 KB or less in size, the portion of the
virtual address used to select the cache line fits with bits 11:0 of the virtual address
which have the same value as bits 11:0 of the physical address (they are untranslated
bits of the page offset). However, if the cache is larger than 4 KB, bits beyond the page
offset (bits 12 and up) are used to select the cache line and these bits are allowed to be
different than the corresponding physical address.
For example, in a 64-KB direct-mapped cache with a 16-byte line, bits 15:4 are used to
select the line. Assume that virtual address 0x1000 is mapped to physical address
0xF000 and virtual address 0x2000 is also mapped to physical address 0xF000. This is
an illegal virtual address alias because accesses to virtual address 0x1000 use line 0x1
and accesses to virtual address 0x2000 use line 0x2 even though they map to the same
physical address. This results in two copies of the same physical address in the cache.
With an n-byte direct-mapped cache, there could be n/4096 copies of the same
physical address in the cache if illegal virtual address aliases are not prevented. The
bits of the virtual address that are used to select the line and are translated bits (bits 12
and up) are known as the color of the address. An operating system avoids illegal
virtual address aliases by ensuring that if multiple virtual addresses map the same
physical address, the virtual addresses have the same color. Note though, the color of
the virtual addresses does not need to be the same as the color as the physical address
because the cache tag contains all the bits of the PFN.
Nios II Processor Reference Handbook
Nios II Core Implementation Details
chapter of the Nios II Processor Reference Handbook for details of
chapter of the Nios II Software Developer's Handbook.
chapter of the Nios II Processor Reference Handbook.
chapter of the Nios II Processor Reference
for more information.
Chapter 3: Programming Model
Memory and Peripheral Access
Cache and Tightly Coupled
February 2014 Altera Corporation

Advertisement

Table of Contents
loading

Table of Contents