Specifications

Intel
®
Quark Core—Protected Mode Architecture
Intel
®
Quark SoC X1000 Core
Developer’s Manual October 2013
74 Order Number: 329679-001US
Segments identified as data segments (E=0, S=1) are used for two types of Intel
®
Quark SoC X1000 Core segments: stack and data segments. The expansion direction
(ED) bit specifies if a segment expands downward (stack) or upward (data). If a
segment is a stack segment, all offsets must be greater than the segment limit. On a
data segment, all offsets must be less than or equal to the limit. In other words, stack
segments start at the base linear address plus the maximum segment limit and grow
down to the base linear address plus the limit. On the other hand, data segments start
at the base linear address and expand to the base linear address plus limit.
The write W bit controls the ability to write into a segment. Data segments are read-
only if W=0. The stack segment must have W=1.
The B bit controls the size of the stack pointer register. If B=1, then PUSHes, POPs, and
CALLs all use the 32-bit ESP register for stack references and assume an upper limit of
FFFFFFFFH. If B=0, stack instructions all use the 16-bit SP register and assume an
upper limit of FFFFH.
6.2.4.3 System Descriptor Formats
System segments describe information about operating system tables, tasks, and
gates. Figure 29 shows the general format of system segment descriptors, and the
various types of system segments. Intel
®
Quark SoC X1000 Core system descriptors
contain a 32-bit base linear address and a 20-bit segment limit.
Table 26. Access Rights Byte Definition for Code and Data Descriptions
Bit
Position
Name Function
7Present (P)
P = 1
P = 0
Segment is mapped into physical memory.
No mapping to physical memory exits, base and limit
are not used.
6–5
Descriptor Privilege
Level (DPL)
Segment privilege attribute used in privilege tests.
4
Segment
Descriptor (S)
S = 1
S = 0
Code or Data (includes stacks) segment descriptor.
System Segment Descriptor or Gate Descriptor.
If Data Segment (S = 1, E = 0)
3 Executable (E) E = 0 Descriptor type is data segment
2
Expansion
Direction (ED)
ED = 0
ED = 1
Expand up segment, offsets must be limit.
Expand down segment, offsets must be > limit.
1Writeable (W)
W = 0
W = 1
Data segment may not be written to.
Data segment may be written to.
If Code Segment (S = 1, E = 1)
3 Executable (E) E = 1 Descriptor type is code segment
2 Conforming (C) C = 1
Code segment may only be executed when CPL ³ DPL
and CPL remains unchanged.
1Readable (R)
R = 0
R = 1
Code segment may not be read.
Code segment may be read.
0Accessed (A)
A = 0
A = 1
Segment has not been accessed.
Segment selector has been loaded into segment
register or used by selector test instructions.