Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Tài liệu đang bị lỗi
File tài liệu này hiện đang bị hỏng, chúng tôi đang cố gắng khắc phục.
Tài liệu ARM Architecture Reference Manual- P18 ppt
Nội dung xem thử
Mô tả chi tiết
Memory Management Unit
ARM DDI 0100E Copyright © 1996-2000 ARM Limited. All rights reserved. B3-9
3.3.5 Coarse page table descriptor
If the first-level descriptor is a coarse page table descriptor, the fields have the following meanings:
Bits[1:0] Identify the type of descriptor (0b01 marks a coarse page table descriptor).
Bits[4:2] The meaning of these bits is IMPLEMENTATION DEFINED.
Bits[8:5] The domain field specifies one of the sixteen possible domains for all the pages controlled
by this descriptor.
Bit[9] This bit is not currently used, and should be zero.
Bits[31:10] The Page Table Base Address is a pointer to a coarse second-level page table, giving the
base address for a second-level fetch to be performed. Coarse second-level page tables must
be aligned on a 1KB boundary.
If a coarse page table descriptor is returned from the first-level fetch, a second-level fetch is initiated to
retrieve a second-level descriptor, as shown in Figure 3-4.
Figure 3-4 Accessing coarse page table second-level descriptors
Translation
table base
Virtual
address
Address of
first-level descriptor
First-level descriptor
First-level fetch
31 14 13 0
Translation base 0 0
Translation base SBZ
Page table base address Domain IMP 0 1
Page table base address 0 0 Second-level
table index
31 14 1 13 2 0
First-level
table index
First-level
table index
Second-level
table index
31 20 19 0 12 11
Address of
second-level descriptor
31 9 0 8 5 4 2 1
31 9 0 2 1
10
10
S
B
Z
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Memory Management Unit
B3-10 Copyright © 1996-2000 ARM Limited. All rights reserved. ARM DDI 0100E
3.3.6 Fine page table descriptor
If the first-level descriptor is a fine page table descriptor, the fields have the following meanings:
Bits[1:0] Identify the type of descriptor (0b11 marks a fine page table descriptor).
Bits[4:2] The meaning of these bits is IMPLEMENTATION DEFINED.
Bits[8:5] The domain field specifies one of the sixteen possible domains for all the pages controlled
by this descriptor.
Bit[11:9] These bits are not currently used, and should be zero.
Bits[31:12] The Page Table Base Address is a pointer to a fine second-level page table, giving the base
address for a second-level fetch to be performed. Fine second-level page tables must be
aligned on a 4KB boundary.
If a fine page table descriptor is returned from the first-level fetch, a second-level fetch is initiated to retrieve
a second-level descriptor, as shown in Figure 3-5.
Figure 3-5 Accessing fine page table second-level descriptors
Translation
table base
Virtual
address
Address of
first-level descriptor
First-level descriptor
First-level fetch
31 14 13 0
Translation base 0 0
Translation base SBZ
Page table base address IMP Domain 1 1
Page table base address 0 0 Second-level
table index
31 14 1 13 2 0
First-level
table index
First-level
table index
31 20 19 0 10 9
Address of
second-level descriptor
31 8 5 4 2 1 0
31 11 0 12 2 1
SBZ
Second-level
table index
12 9 11
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Memory Management Unit
ARM DDI 0100E Copyright © 1996-2000 ARM Limited. All rights reserved. B3-11
3.3.7 Second-level descriptor
Each entry in a coarse second-level table corresponds to how a 4KB virtual address range is mapped, and
each entry in a fine second-level table corresponds to how a 1KB virtual address range is mapped. The
entries are page descriptors, and can describe a page which is larger than 4KB or 1KB respectively. When
this happens, the descriptor must be repeated enough times in the second-level table to ensure that the same
descriptor is always used for the page, regardless of which virtual address is being accessed within the page.
There are four possibilities for a second-level descriptor, selected by bits[1:0] of the descriptor as shown in
Table 3-2:
• If bits[1:0] == 0b00, the associated virtual addresses are unmapped, and attempts to access them
generate a translation fault (see Aborts on page B3-18). Software can use bits[31:2] for its own
purposes in such a descriptor, as they are ignored by the hardware. Where appropriate, it is suggested
that bits[31:2] continue to hold valid access permissions for the descriptor.
• If bits[1:0] == 0b01, the entry is a large page descriptor, describing 64KB of virtual addresses. See
Translating large page references on page B3-13 for details.
A large page descriptor must be repeated 64 times in a fine second-level table or 16 times in a coarse
second-level table to ensure that all of its virtual addresses are described.
• If bits[1:0] == 0b10, the entry is a small page descriptor, describing 4KB of virtual addresses. See
Translating small page references on page B3-14 for details.
A small page descriptor must be repeated four times in a fine second-level table to ensure that all of
its virtual addresses are described. In a coarse second-level table, only one instance of each small
page descriptor is needed.
• If bits[1:0] == 0b11, the entry is a tiny page descriptor, describing 1KB of virtual addresses. See
Translating tiny page references on page B3-15 for details.
Only one instance of each tiny page descriptor is needed in a fine second-level table. Tiny page
descriptors must not appear in coarse second-level tables. If they do, the results are UNPREDICTABLE.
Table 3-2 Second-level descriptor format
31 16 15 12 11 10 9 8 7 6 5 4 3 2 1 0
Fault IGN 0 0
Large page Large table base address SBZ AP3 AP2 AP1 AP0 C B 0 1
Small page Small page base address AP3 AP2 AP1 AP0 C B 1 0
Tiny page Tiny page base address SBZ AP C B 1 1
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.