10.5. The Diamond 570T CPU’s RPU

The Diamond 570T CPU core uses the same region-protection unit (RPU) discussed in Chapter 8 on the 212GP processor.

Figure 10.6 shows how the Diamond RPU divides the Diamond 570T CPU’s 4-Gbyte memory space into eight equally sized, 512-Mbyte regions. The Diamond 570T CPU core’s local data-memory address space and the address space assigned to the XLMI port fall into memory-protection region 1. Its local instruction-memory address space falls into memory-protection region 2. Thus the RPU can prevent accidental writes to instruction memory through the proper use of its protection mechanisms. The Diamond 570T CPU core’s non-local address space (assigned to the PIF) falls into all eight memory-protection regions, so the Diamond 570T CPU core’s RPU is also useful for protecting PIF-attached memory and devices.

Figure 10.6. The Diamond 570T CPU core’s RPU divides the processor’s memory space into eight protected regions. The processor’s local data memory address space and XLMI port map into memory-protection region 1 and its local instruction-memory address space maps into memory-protection region 2 so the RPU can prevent accidental writes to instruction memory through the proper use of its protection mechanisms.


The Diamond 570T CPU sets the memory-protection attributes for each region independently by setting 4-bit access-mode values in separate, 8-entry instruction and data TLBs. (Note: The three-letter abbreviation TLB stands for translation lookaside buffer but, for Diamond processor core RPUs, its definition is widened to mean “translation hardware.”) Each TLB has an entry for each of the eight memory-protection regions.

The access modes control both the protection level and the cache behavior for each of the eight memory-protection regions. The access modes appear in Table 10.4 and descriptions of the modes appear in Table 10.5. (Note: Tables 7.3 and 7.4 from Chapter 7 are repeated in this chapter as Tables 10.4 and 10.5.)

Table 10.4. Diamond RPU access modes
Access-mode valueAccess-mode nameInstruction-fetch behaviorLoad behaviorStore behavior
0000No allocateInstruction-fetch exceptionNo allocateWrite-through/No allocate
0001 (see Note)Write-through/No write allocateAllocateAllocateWrite-through/No write allocate
0010BypassBypassBypassBypass
0011Not supportedUndefinedLoad exceptionStore exception
0100Write-backAllocateAllocateWrite-back/Write allocate
0101–1101ReservedInstruction-fetch exceptionLoad exceptionStore exception
1110IsolateInstruction-fetch exceptionDirect processor access to memory cacheDirect processor access to memory cache
1111IllegalInstruction-fetch exceptionLoad exceptionStore exception
Note: RPU access-mode 1 forces Diamond core data caches to operate in write-through mode even though all Diamond processor core data caches are pre-configured as write-back caches.

Table 10.5. Diamond RPU access-mode descriptions
RPU access modeAccess mode description
No allocateDo not allocate a cache line for this address. If the address is already cached, fetch or load the cached value. If the address has an allocated cache line but the cache line is not already in the cache, fetch or load the value from main memory and place the value in the cache.
BypassDo not use the cache.
Write-backWrite the value to the cache and then update main memory when the cache line is evicted or when the processor forces the cache line to be written to main memory.
IsolatePermits direct read/write access to the cache’s data and tag RAM arrays.
IllegalAny access causes an exception.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.224.32.46