
Contents
iii
20695H/0—March 1998
AMD-K6
Processor Data Sheet
Preliminary Information
Contents
Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
About This Data Sheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Part One
AMD-K6
Processor Family
3
1
AMD-K6
Processor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2
Internal Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1
2.2
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
AMD-K6
Processor Microarchitecture Overview . . . . . . . . . 7
Enhanced RISC86
Microarchitecture . . . . . . . . . . . . . . . . . . . 8
Cache, Instruction Prefetch, and Predecode Bits . . . . . . . . . 11
Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Prefetching. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Predecode Bits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Instruction Fetch and Decode . . . . . . . . . . . . . . . . . . . . . . . . . 13
Instruction Fetch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Instruction Decode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Centralized Scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
Execution Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
Branch-Prediction Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Branch History Table. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Branch Target Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Return Address Stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
Branch Execution Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Software Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3
2.4
2.5
2.6
2.7
3
3.1
Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
General-Purpose Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Integer Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Segment Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Segment Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24
Instruction Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Floating-Point Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Floating-Point Register Data Types. . . . . . . . . . . . . . . . . . . . .28
MMX Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
EFLAGS Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Control Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Debug Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Model-Specific Registers (MSR) . . . . . . . . . . . . . . . . . . . . . . . 37