Changes between Version 39 and Version 40 of VirtualMemory


Ignore:
Timestamp:
Oct 29, 2009, 7:01:10 PM (15 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • VirtualMemory

    v39 v40  
    223223
    224224The hardware MMU can signal exceptions by rising the general instruction_bus_error and data_bus_error signals (for an instruction or data accesss respectively).
    225 The access type (Read or Write) and the error type is written in the INS_ERROR_TYPE & DATA_ERROR_TYPE registers, as described below:
     225The access type (Read or Write) and the error type is written in the MMU_IETR & MMU_DETR registers, as described below:
    226226
    227227|| Exception type                                            || code      || cause                                                                                    || severity           ||
     
    273273|| MMU_PARAMS                      ||  15      || Caches & TLBs hardware parameters        || R      ||
    274274|| MMU_RELEASE                      ||  16      || Generic MMU release number                    || R      ||
     275|| MMU_
    275276
    276277'''Note''': A change to this table should be kept in sync with https://www.soclib.fr/trac/dev/wiki/Component/Iss2Api
     278
     279==== 3.3.1 MMU_PTPR ====
    277280
    278281The '''MMU_PTPR''' register contains the base address of the currently used first level page table.
     
    282285|| 00000 || BASE_ADDRESS[39:13] ||
    283286
    284 The '''MMU_MODE''' register has four bits and these 16 values are described as below :
    285 
    286 ||   MODE3   ||    MODE2   ||     MODE1   ||     MODE0    ||    description                                                                     ||
    287 || (INS TLB) || (DATA TLB) || (INS CACHE) || (DATA CACHE) ||                                                                                    ||
    288 ||           ||            ||             ||              ||                                                                                    ||
    289 ||     0     ||      0     ||      0      ||       0      || TLBs and caches deactivated                                                        ||
    290 ||     0     ||      0     ||      0      ||       1      || TLBs and instruction cache deactivated, data cache actived                         ||
    291 ||     0     ||      0     ||      1      ||       0      || TLBs and data cache deactivated, instruction cache actived                         ||
    292 ||     0     ||      0     ||      1      ||       1      || TLBs deactivated, caches actived                                                   ||
    293 ||     0     ||      1     ||      0      ||       0      || Instruction TLB and caches deactivated, data TLB actived                           ||
    294 ||     0     ||      1     ||      0      ||       1      || Instruction TLB and instruction cache deactivated, data TLB and data cache actived ||
    295 ||     0     ||      1     ||      1      ||       0      || Instruction TLB and data cache deactivated, data TLB and instruction cache actived ||
    296 ||     0     ||      1     ||      1      ||       1      || Instruction TLB deactivated, data TLB and caches actived                           ||
    297 ||     1     ||      0     ||      0      ||       0      || Data TLB and caches deactivated, instruction TLB actived                           ||
    298 ||     1     ||      0     ||      0      ||       1      || Data TLB and instruction cache deactivated, instruction TLB and data cache actived ||
    299 ||     1     ||      0     ||      1      ||       0      || Data TLB and data cache deactivated, instruction TLB and instruction cache actived ||
    300 ||     1     ||      0     ||      1      ||       1      || Data TLB deactivated, instruction TLB and caches actived                           ||
    301 ||     1     ||      1     ||      0      ||       0      || Caches deactivated, TLBs actived                                                   ||
    302 ||     1     ||      1     ||      0      ||       1      || Instruction cache deactivated, TLBs and data cache actived                         ||
    303 ||     1     ||      1     ||      1      ||       0      || Data cache deactivated, TLBs and instruction cache actived                         ||
    304 ||     1     ||      1     ||      1      ||       1      || TLBs and caches actived                                                            ||
     287=== 3.3.2 MMU_MODE ===
     288
     289The '''MMU_MODE''' register has four bits and these 16 values are described as below.
     290A device is activated when the corresponding bit is set to 1.
     291||   MODE3   ||    MODE2   ||     MODE1   ||     MODE0    ||
     292|| (INS TLB) || (DATA TLB) || (INS CACHE) || (DATA CACHE) ||
     293
     294=== 3.3.3 MMU_ICACHE_FLUSH & MMU_DCACHE_FLUSH ===
     295
     296Writing any value  in the '''MMU_ICACHE_FLUSH''' register (resp. '''MMU_DCACHE_FLUSH''' register) invalidates all cache lines stored in the  instruction cache (resp. data cache).
     297
     298=== 3.3.4 MMU_ITLB_INVAL & MMU_DTLB_INVAL ===
     299
     300The value written in the 32 bits '''MMU_ITLB_INVAL''' register (resp. '''MMU_DTLB_INVAL''' register) is interpreted as a virtual address. If the instruction TLB (resp. the data TLB) contains an entry corresponding to this address, this entry is invalidated.
     301
     302=== 3.3.5 MMU_ICACHE_INVAL & MMU_DCACHE_INVAL ===
     303
     304The value written in the 32 bits '''MMU_ICACHE_INVAL''' register (resp. '''MMU_DCACHE_INVAL''' register) is interpreted as a virtual address. This address is translated to a physical address. If the instruction cache (resp. the data cache) contains an entry corresponding to this address, this entry is invalidated.
     305
     306=== 3.3.6 MMU_ICACHE_PREFETCH & MMU_DCACHE_PREFETCH ===
     307
     308The value written in the 32 bits '''MMU_ICACHE_PREFETCH''' register (resp. '''MMU_DCACHE_PREFETCH''' register) is interpreted as a virtual address. This address is translated to a physical address. If the instruction cache (resp. the data cache) does not contain the corresponding cache line, this cache line is fetched from memory.
     309
     310=== 3.3.x MMU_PARAMS ===
    305311
    306312The '''MMU_PARAMS''' register define the instruction and data caches & TLBs characteristics :