Vol. 3A 6-9
TASK MANAGEMENT
6.2.4 Task Register

The task register holds the 16-bit segment selector and the entire segment descriptor (32-bit base

address, 16-bit segment limit, and descriptor attributes) for the TSS of the current task (see

Figure 2-5). This information is copied from the TSS descriptor in the GDT for the current task.

Figure 6-5 shows the path the processor uses to access the TSS (using the information in the task

register).

The task register has a visible part (that can be read and changed by software) and an invisible

part (maintained by the processor and is inaccessible by software). The segment selector in the

visible portion points to a TSS descriptor in the GDT. The processor uses the invisible portion

of the task register to cache the segment descriptor for the TSS. Caching these values in a

register makes execution of the task more efficient. The LTR (load task register) and STR (store

task register) instructions load and read the visible portion of the task register:

Figure 6-4. Format of TSS and LDT Descriptors in 64-bit Mode

31 2423 22 21 20 19 1615 13
14 12 11 870
P
Base 31:24 GD
P
L
Type
0
0
31 1615 0
Base Address 15:00 Segment Limit 15:00
Base 23:16
A
V
L
Limit
19:16
0
TSS (or LDT) Descriptor
AVL
B
BASE
DPL
G
Available for use by system software
Busy flag
Segment Base Address
Descriptor Privilege Level
Granularity
LIMIT
P
TYPE
Segment Limit
Segment Present
Segment Type
0
4
31 1312 870
Reserved
31 0
Base Address 63:32
Reserved
0
8
12