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.










