Changes between Version 35 and Version 36 of VirtualMemory


Ignore:
Timestamp:
Sep 11, 2009, 1:44:10 PM (15 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • VirtualMemory

    v35 v36  
    245245
    246246
    247 === 3.3 generic MMU registers mapping ===
    248 
    249 The generic MMU contains a set of registers (or pseudo-registers) that can be accessed by operating system,
     247=== 3.3 generic MMU registers format & mapping ===
     248
     249The generic MMU contains a set of 32 bits registers (or pseudo-registers) that can be accessed by operating system,
    250250through a dedicated MMU driver.
    251251In the case of the MIPS processor, these registers are implemented in coprocessor 2, and are accessed
     
    271271|| MMU_IBVAR                          ||  13      || Instruction Bad Virtual Address Register  || R      ||
    272272|| MMU_DBVAR                        ||  14      || Data Bad Virtual Address Register             || R      ||
    273 || MMU_PARAMS                      ||  14      || Caches & TLBs hardware parameters        || R      ||
    274 
    275 The MMU_MODE register has four bits and these 16 values are described as below :
     273|| MMU_PARAMS                      ||  15      || Caches & TLBs hardware parameters        || R      ||
     274|| MMU_RELEASE                      ||  16      || Generic MMU release number                    || R      ||
     275
     276The '''MMU_PTPR''' register contains the base address of the currently used first level page table.
     277As this base address is aligned on a 8 Kbytes boundary, and we want to support (up to) 40 bits
     278physical addresses, the PTPR register contains only the 27 MSB bits of the base address :
     279
     280|| 00000 || BASE_ADDRESS[39:13] ||
     281
     282The '''MMU_MODE''' register has four bits and these 16 values are described as below :
    276283
    277284||   MODE3   ||    MODE2   ||     MODE1   ||     MODE0    ||    description                                                                     ||
     
    295302||     1     ||      1     ||      1      ||       1      || TLBs and caches actived                                                            ||
    296303
    297 The MMU_PARAMS register define the instruction and data caches & TLBs characteristics:
    298   ||NWAYS_TLB_D||NSETS_TLB_D||NWAYS_CAHE_D||NSETS_CACHE_D||NWAYS_TLB_I||NSETS_TLB_I||NWAYS_CAHE_I||NSETS_CACHE_I||NWORDS||
    299  * NWAYS_TLB (3 bits) : Ln(number of associative ways for the TLB)
    300  * NSETS_TLB (4 bits) : Ln(number of associative ways for the TLB)
    301  * NWAYS_CACHE = Ln(number of associative ways for the TLB)
    302  * NSETS_CACHE (4 bits) : Ln(number of associative ways for the TLB)
    303  * NWORDS_CACHE Ln(number of associative ways for the TLB)
     304The '''MMU_PARAMS''' register define the instruction and data caches & TLBs characteristics :
     305
     306  ||WTD||STD||WCD||SCD||WTI||STI||WCII||SCI||NBL||
     307 * WTD (3 bits) : Ln(number of associative ways for the Data TLB)
     308 * STD (4 bits) : Ln(number of sets for the Data TLB)
     309 * WCD (3 bits) : Ln(number of associative ways for the Data Cache)
     310 * SCD (4 bits) : Ln(number of sets ways for the Data Cache)
     311 * WTI (3 bits) : Ln(number of associative ways for the Instruction TLB)
     312 * STI (4 bits) : Ln(number of sets for the Instruction TLB)
     313 * WCI (3 bits) : Ln(number of associative ways for the Instruction Cache)
     314 * SCI (4 bits) : Ln(number of sets ways for the Instruction Cache)
     315 * NBL (4 bits) : Ln(number of bytes per Data or Instruction cache line)
     316
     317The '''MMU_RELEASE''' register contains the release number for a given hardware implementation :
     318|| SPECIFICATION_INDEX || IMPLEMENTATION_INDEX ||
     319 * SPECIFICATION_INDEX (16 bits)
     320 * IMPLEMENTATION_INDEX (16 bits)