Describing the memory type

The memory type is not directly encoded into the translation table entry. Instead the Index field in the translation table entry is used to select an entry from the MAIR_ELx (Memory Attribute Indirection Register).  

A diagram showing memory attribute indirection register. 

The selected field determines the memory type and cacheability information. 

So why is an index to a register used instead of encoding the memory type directly into the translation table entries? The reason is because the number of bits in the translation table entries is limited. It requires 8 bits to encode the memory type, but only 3 bits to encode the index into MAIR_ELx. This way the architecture efficiently uses less bits in the table entries. 

Previous Next