天天看點

armv8 mmu Memory region attributes

D5.5 Memory region attributes

記憶體屬性:記憶體類型,cache,shareability,記憶體一緻性等。

The memory region attribute fields control the memory type, accesses to the caches, and whether the memory region is Shareable and therefore is coherent. This section also describes some additional translation table fields, that this manual groups with the memory region attributes.

D5.5.1 The stage 1 memory region attributes

The description of the memory region attributes in a translation descriptor divides into:

Memory type and Cacheability

        These are described indirectly, by registers referenced by bits in the table descriptor. This is

        described as remapping the memory type and attribute description. Stage 1 memory region          type and  Cacheability attributes describes this encoding.

Shareability         The SH[1:0] field in the translation table descriptor encodes shareability  information. Stage 1  

          Shareability attribute, for Normal memory on page D5-2629 describes this encoding

Stage 1 memory region type and Cacheability attributes

頁表項中的AttrIndx[2:0]用來索引MAIR_ELx寄存器中定義的記憶體屬性

In the VMSAv8-64 translation table format, the AttrIndx[2:0] field in a block or page translation table descriptor  for a stage 1 translation indicates the 8-bit field in the MAIR_ELx that specifies the attributes for the corresponding  memory region. The required field is Attrn, where n = AttrIndx[2:0]. For more information about AttrIndx[2:0] see  Attribute fields in stage 1 VMSAv8-64 Block and Page descriptors on page D5-2601

記憶體類型:device或normal

Each MAIR_ELx.Attrn field defines, for the corresponding memory region:

• The memory type, Device or Normal.

• For Device memory, the Device memory type, one of:

— Device-nGnRnE.

— Device-nGnRE.

— Device-nGRE.

— Device-GRE.

• For Normal memory:

— The inner and outer cacheability, Non-cacheable, Write-Through, or Write-Back.

— For Write-Through Cacheable and Write-Back Cacheable regions, the Read-Allocate and

Write-Allocate policy hints, each of which is Allocate or No Allocate, and the Transient allocation

hints, if supported.

For more information about the memory type and attributes, see Memory types and attributes on page B2-153 and

Cacheability, cache allocation hints, and cache transient hints on page D4-2502

Stage 1 Shareability attribute, for Normal memory

講述頁表項中SH字段

When using the VMSAv8-64 translation table format, the SH[1:0] field in a block or page translation table descriptor specifies the Shareability attributes of the corresponding memory region. Table D5-35 shows the encoding of this field.

armv8 mmu Memory region attributes

使用連續的頁表項組成一個連續的位址

D5.5.6 Other fields in the VMSAv8-64 translation table format descriptors

The following subsections describe the other fields in the translation table block and page descriptors:

• The Contiguous bit.

• IGNORED fields on page D5-2634.

• Field reserved for software use on page D5-2634.

The Contiguous bit

When the value of the Contiguous bit is 1, it indicates that the entry is one of a number of adjacent translation table entries that point to a contiguous output address range. The required number of adjacent entries depends on the current translation granule size, as follows:

16個相鄰的頁表項,可以祖冊一個contiguous輸出位址,但是這些頁表項必須通路權限和屬性一緻。

4KB granule  

    16 adjacent translation table entries point to a contiguous output address range that has the same permissions and attributes. These 16 entries must be aligned in the translation table. If accessing a full-sized 4KB translation table, this means that the top 5 of the 9 input addresses bits that index the descriptor positions in the translation table are the same for all of the entries. The contiguous output address range must be aligned to size of 16 translation table entries at the same translation table level.

......

IGNORED fields

忽略的字段,軟體可能用到

In the VMSAv8-64 translation table descriptors, the following fields are identified as IGNORED, meaning the

architecture guarantees that a PE makes no use of these fields:

• In the stage 1 and stage 2 Table descriptors, bits[58:51] and bits[11:2].

• In the stage 1 and stage 2 Block and Page descriptors, bit[63] and bits[58:55]. //bits[58:55]是留給軟體使用的,對于block或者page頁表項,軟體可以使用

• In the stage 1 and stage 2 Block and Page descriptors in an implementation that does not include

ARMv8.2-TTPBHA, bits[62:59].

Of these fields:

• In the stage 1 and stage 2 block and page descriptors, bits[58:55] are reserved for software use, see Field

reserved for software use.

• In the stage 2 block and page descriptors:

— Bit[63] is reserved for use by a System MMU.

— In an implementation that does not include ARMv8.2-TTPBHA, bits[62:59] are reserved for use by a System MMU.

Field reserved for software use

The architecture reserves a 4-bit IGNORED field in the Block and translation table descriptors, bits[58:55], for software use. The definition of IGNORED means the architecture guarantees that hardware makes no use of this field.

繼續閱讀