14.06.2015 Views

Power ISA™ Version 2.03 - Power.org

Power ISA™ Version 2.03 - Power.org

Power ISA™ Version 2.03 - Power.org

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Version</strong> <strong>2.03</strong><br />

5.7.5 Virtual Address Generation<br />

Conversion of a 64-bit effective address to a virtual<br />

address is done by searching the Segment Lookaside<br />

Buffer (SLB) as shown in Figure 15.<br />

ESID V B VSID K s K p NLC / LP<br />

64-bit Effective Address<br />

64-s s-p p<br />

Bit(s) Name Description<br />

0:35 ESID Effective Segment ID<br />

ESID Page Byte<br />

36 V Entry valid (V=1) or invalid (V=0)<br />

0 63-s 64-s 63-p 64-p 63<br />

37:38 B Segment Size Selector<br />

0b00 - 256 MB (s=28)<br />

0b01 - 1 TB (s=40)<br />

0b10 - reserved<br />

Segment Lookaside<br />

Buffer (SLB)<br />

39:88 VSID<br />

0b11 - reserved<br />

Virtual Segment ID<br />

89 K s Supervisor (privileged) state storage<br />

SLBE0 ESID V B VSID KsKpNLC LP<br />

key (see Section 5.7.9)<br />

90 K p Problem state storage key (See<br />

Section 5.7.9.)<br />

≈ ≈ ≈ ≈ ≈ ≈<br />

91 N No-execute segment if N=1<br />

≈ ≈<br />

92 L Virtual page size selector bit 0.<br />

93 C Class<br />

95:96 LP Virtual page size selector bits 1:2.<br />

SLBEn<br />

0 35 37 39 88 89 93 95 96<br />

78-s s-p p<br />

VSID Page Byte<br />

Virtual Page Number (VPN)<br />

78-bit Virtual Address<br />

Figure 15. Translation of 64-bit effective address to<br />

78 bit virtual address<br />

.<br />

0 36 37 39 89 94 95 96<br />

All other fields are reserved. B 0 (SLBE 37 )is treated as a<br />

reserved field.<br />

Figure 16. SLB Entry<br />

Instructions cannot be executed from a No-execute<br />

(N=1) page.<br />

The L and LP bits specify the page size or sizes that<br />

the segment may contain as shown in Figure 17. A<br />

Mixed Page Size (MPS) segment is a segment that<br />

may contain 4 KB pages, 64 KB pages, or a mixture of<br />

both. A Uniform Page Size (UPS) segment is a segment<br />

that must contain pages of only a single size.<br />

5.7.5.1 Segment Lookaside Buffer<br />

(SLB)<br />

The Segment Lookaside Buffer (SLB) specifies the<br />

mapping between Effective Segment IDs (ESIDs) and<br />

Virtual Segment IDs (VSIDs). The number of SLB<br />

entries is implementation-dependent, except that all<br />

implementations provide at least 32 entries.<br />

The contents of the SLB are managed by software,<br />

using the instructions described in Section 5.9.3.1. See<br />

Chapter 10. “Synchronization Requirements for Context<br />

Alterations” on page 467 for the rules that software<br />

must follow when updating the SLB.<br />

SLB Entry<br />

Each SLB entry (SLBE, sometimes referred to as a<br />

“segment descriptor”) maps one ESID to one VSID.<br />

Figure 16 shows the layout of an SLB entry<br />

SLBE L||LP<br />

Segment<br />

Virtual Page Size(s)<br />

Type<br />

0b000 MPS 4 KB, 64 KB if PTE L LP specifies<br />

64 KB page in MPS segment, or<br />

both sizes<br />

0b101 UPS 64 KB if PTE L LP specifies 64 KB<br />

page in UPS segment<br />

additional<br />

values 1 UPS 2 p bytes, where p > 12 and may<br />

differ among SLB L||LP values<br />

1 The “additional values” of SLB L||LP are implementation-dependent,<br />

as are the corresponding virtual<br />

page sizes.<br />

Figure 17. SLBL L||LP Encoding<br />

Chapter 5. Storage Control<br />

413

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!