Changes between Version 12 and Version 13 of VirtualMemory


Ignore:
Timestamp:
Jun 29, 2009, 12:35:34 PM (15 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • VirtualMemory

    v12 v13  
    110110
    111111Similarly, the L1 cache controller contains two separated hardware MMUs for instruction and data. Each MMU contains a 64 entries TLB (Translation Look-aside Buffer).
    112 These TLBs are implemented as set-associative caches (16 sets of 4 ways). Each entry in these TLBs can contain either a 4 Kbytes page descriptor, or a 2 Mbytes page descriptor.
     112These TLBs are implemented as set-associative caches (16 sets of 4 ways). Each entry in these TLBs can contain either a 4 Kbytes page descriptor, or a 2 Mbytes page descriptor. The figure below illustrate the general structure of the TSAR L1 caches.
    113113
    114114[[Image(cache_tlb.png, nolink)]]
     
    127127=== 2.2 Generic MMU exceptions ===
    128128
     129The hardware MMU can signal exceptions by rising the general instruction_bus_error and data_bus_error signals (for an instruction or data accesss respectively).
     130The error type is written in the INS_ERROR_TYPE & DATA_ERROR_TYPE registers, as described below:
     131
     132|| Exeption type                              || code  || cause                                                         || severity ||
     133||                                                       ||            ||                                                                    ||                      ||
     134||MMU_PT1_UNMAPPED                ||            || Page fault on Table1 (invalid PTE)   || non fatal error ||
     135||MMU_PT2_UNMAPPED                ||            || Page fault on Table 2 (invalid PTE)  || non fatal error ||
     136||MMU_PRIVILEGE_VIOLATION         ||            ||Protected access in user mode         || user  error ||
     137||MMU_WRITE_VIOLATION             ||            || Write access to a non write page             || user error ||
     138||MMU_EXEC_VIOLATION              ||            || Exec access to a non exec page               || user error ||
     139||MMU_UNDEFINED_XTN               ||            || Undefined external access address     || user error ||
     140||MMU_PT1_ILLEGAL_ACCESS          ||            || Bus Error accès Table1                               || kernel error ||
     141||MMU_PT2_ILLEGAL_ACCESS          ||            || Bus Error accès Table2                               || kernel error ||
     142||MMU_CACHE_ILLEGAL_ACCESS ||            || Bus Error during the cache access      ||kernel error ||
     143
     144
    129145=== 2.3 generic MMU registers mapping ===
    130146
    131 The software controlled following registers are the  by appending
     147The generic MMU contains a set of registers (or pseudo-registers) that can be accessed by operating system,
     148through a dedicated MMU driver.
     149In the case of the MIPS processor, these registers are implemented in coprocessor 2, and are accessed
     150using the ''mtc2'' (write) and ''mfc2'' (read) instructions.
     151
     152These registers are described below :
     153
     154|| register name               || index  || description                                                    || mode ||
     155||                                         ||             ||                                                                         ||            ||
     156|| MMU_PTPR                    ||             || Page Table Pointer Register                       || R/W   ||
     157|| MMU_TLB_EN               ||             || Data & Inst TLBs Mode Register                || R/W   ||
     158|| MMU_ICACHE_FLUSH   ||                    || Instruction Cache flush                          || W       ||
     159|| MMU_DCACHE_FLUSH ||              || Data Cache flush                                         || W       ||
     160|| MMU_ITLB_INVAL         ||             || Instruction TLB line invalidation                || W       ||
     161|| MMU_DTLB_INVAL           ||             || Data TLB line Invalidation                                || W       ||
     162|| MMU_ICACHE_INVAL   ||             || Instruction Cache line invalidation            || W       ||
     163|| MMU_DCACHE_INVAL  ||             || Data Cache line invalidation                       || W       ||
     164|| MMU_IETR                         ||             || Instruction Exception Type Register          || R/W  ||
     165|| MMU_IBVAR                   ||             || Instruction Bad Virtual Address Register  || R/W  ||
     166|| MMU_DETR                    ||             || Data Exception Type Register                    || R/W   ||
     167|| MMU_DBVAR                 ||             || Data Bad Virtual Address Register             || R/W  ||
     168
    132169
    133170