AMD AMD-X5

PRELIMINARY
Am5X86™
Microprocessor Family
Advanced
Micro
Devices
DISTINCTIVE CHARACTERISTICS
■ High-Performance Design
—
—
—
—
Industry-standard write-back cache support
Frequent instructions execute in one clock
105.6-million bytes/second burst bus at 33 MHz
Flexible write-through and write-back address
control
— Advanced 0.35-µ CMOS-process technology
— Dynamic bus sizing for 8-, 16-, and 32-bit buses
— Supports “soft reset” capability
■ High On-Chip Integration
— 16-Kbyte unified code and data cache
— Floating-point unit
— Paged, virtual memory management
■ Enhanced System and Power Management
— Stop clock control for reduced power
consumption
— Industry-standard two-pin System Management
Interrupt (SMI) for power management independent of processor operating mode and operating
system
— Static design with Auto Halt power-down support
— Wide range of chipsets supporting SMM available to allow product differentiation
■ Complete 32-Bit Architecture
— Address and data buses
— All registers
— 8-, 16-, and 32-bit data types
■ Standard Features
— 3-V core with 5-V tolerant I/O
— Available in a 133-MHz version
— Binary compatible with all Am486®DX,
Am486DX2, and Am486DX4 microprocessors
— Wide range of chipsets and support available
through the AMD FusionPCSM Program
■ 168-pin PGA package or 208-pin SQFP package
■ IEEE 1149.1 JTAG Boundary-Scan Compatibility
■ Supports Environmental Protection Agency's
Energy Star program
— 3-V operation reduces power consumption up to
40%
— Energy management capability provides excellent base for energy-efficient design
— Works with a variety of energy-efficient, powermanaged devices
GENERAL DESCRIPTION
The Am5X86™ microprocessor is an addition to the AMD
microprocessor product family. The new processor enhances system performance by raising the microprocessor operating frequency to the highest levels allowed by
current manufacturing technology, while maintaining
complete compatibility with the standard Am486 processor architecture and Microsoft® Windows®. The CPUs
incorporate write-back cache, flexible clock control, and
enhanced SMM. Table 1 shows available processors
in the Am5X86 microprocessor family.
Table 1. Clocking Options
Operating
Frequency
Input Clock
Available Package
133 MHz
33 MHz
168-pin PGA
133 MHz
33 MHz
208-pin SQFP
The Am5X86 microprocessor family allows write-back
configuration through software and cacheable access
control. On-chip cache lines are configurable as either
write-through or write-back. The CPU clock control feature permits the CPU clock to be stopped under controlled conditions, allowing reduced power consumption
during system inactivity. The SMM function is implemented with an industry standard two-pin interface.
This document contains information on a product under development at Advanced Micro Devices. The information is
intended to help you evaluate this product. AMD reserves the right to change or discontinue work on this proposed
product without notice.
Publication # 19751 Rev: C Amendment/0
Issue Date: March 1996
AMD
PRELIMINARY
BLOCK DIAGRAM
2
Am5X86 Microprocessor
PRELIMINARY
AMD
ORDERING INFORMATION
Standard Products
AMD standard products are available in several packages and operating ranges. The order number (Valid Combination) is
formed by a combination of the elements below.
AMD-X5 – 133
A
D
W
Case Temperature
W= 55° C
Z = 85° C
Operating Voltage
D = 3.45 V
F = 3.3 V
Package Type
A =168-pin PGA
S = 208-pin SQFP
Clock Speed
133 = 133 MHz
Family/Core
AMD-X5
Valid Combinations
OPN
Package Type
Operating Voltage
Case Temperature
(Max)
AMD-X5-133ADW
PGA
3.45 V
55° C
AMD-X5-133ADZ
PGA
3.45 V
85° C
AMD-X5-133SFZ
SQFP
3.3 V
85° C
AMD-X5-133SDZ
SQFP
3.45 V
85° C
Am5X86 Microprocessor
Valid Combinations
Valid Combinations list configurations planned to be supported in volume for this device. Consult the local
AMD sales office to confirm availability of specific valid combinations
and to check on newly released
combinations.
3
AMD
PRELIMINARY
Table of Contents
1
2
3
4
4
Connection Diagrams and Pin Designations ......................................................................................... 8
1.1 168-Pin PGA (Pin Grid Array) Package .......................................................................................... 8
1.2 168-Pin PGA Designations (Functional Grouping) ......................................................................... 9
1.3 208-Pin SQFP (Shrink Quad Flat Pack) Package ........................................................................ 10
1.4 208-Pin SQFP Designations (Functional Grouping) ..................................................................... 11
Logic Symbol ...................................................................................................................................... 12
Pin Description .................................................................................................................................... 13
Functional Description ........................................................................................................................ 18
4.1 Overview ....................................................................................................................................... 18
4.2 Memory ......................................................................................................................................... 18
4.3 Modes of Operation ...................................................................................................................... 18
4.3.1 Real mode ........................................................................................................................... 18
4.3.2 Virtual mode ........................................................................................................................ 18
4.3.3 Protected mode ................................................................................................................... 18
4.3.4 System Management mode ................................................................................................ 18
4.4 Cache Architecture ....................................................................................................................... 18
4.4.1 Write-Through Cache .......................................................................................................... 18
4.4.2 Write-Back Cache ............................................................................................................... 18
4.5 Write-Back Cache Protocol ........................................................................................................... 19
4.5.1 Cache Line Overview .......................................................................................................... 19
4.5.2 Line Status and Line State .................................................................................................. 19
4.5.2.1 Invalid ......................................................................................................................... 19
4.5.2.2 Exclusive .................................................................................................................... 19
4.5.2.3 Shared ....................................................................................................................... 19
4.5.2.4 Modified ..................................................................................................................... 19
4.6 Cache Replacement Description .................................................................................................. 20
4.7 Memory Configuration ................................................................................................................... 20
4.7.1 Cacheability ......................................................................................................................... 20
4.7.2 Write-Through/Write-Back ................................................................................................... 20
4.8 Cache Functionality in Write-Back mode ...................................................................................... 20
4.8.1 Processor-Initiated Cache Functions and State Transitions ............................................... 20
4.8.2 Snooping Actions and State Transitions ............................................................................. 21
4.8.2.1 Difference between Snooping Access Cases ............................................................ 21
4.8.2.2 HOLD Bus Arbitration Implementation ....................................................................... 22
4.8.2.2.1 Processor-Induced Bus Cycles ........................................................................ 22
4.8.2.2.2 External Read ................................................................................................... 22
4.8.2.2.3 External Write ................................................................................................... 22
4.8.2.2.4 HOLD/HLDA External Access TIming .............................................................. 22
4.8.3 External Bus Master Snooping Actions ............................................................................... 25
4.8.3.1 Snoop Miss ................................................................................................................. 25
4.8.3.2 Snoop Hit to a Non-Modified Line .............................................................................. 25
4.8.4 Write-Back Case ................................................................................................................. 25
4.8.5 Write-Back and Pending Access ......................................................................................... 26
4.8.5.1 HOLD/HLDA Write-Back Design Considerations ....................................................... 27
4.8.5.2 AHOLD Bus Arbitration Implementation .................................................................... 28
4.8.5.3 Normal Write-Back ..................................................................................................... 28
4.8.6 Reordering of Write-Backs (AHOLD) with BOFF ................................................................. 29
4.8.7 Special Scenarios For AHOLD Snooping ............................................................................ 30
4.8.7.1 Write Cycle Reordering due to Buffering ................................................................... 30
4.8.7.2 BOFF Write-Back Arbitration Implementation ............................................................ 32
4.8.8 BOFF Design Considerations .............................................................................................. 32
4.8.8.1 Cache Line Fills ......................................................................................................... 32
4.8.8.2 Cache Line Copy-Backs ............................................................................................ 32
4.8.8.3 Locked Accesses ....................................................................................................... 32
Am5X86 Microprocessor
PRELIMINARY
5
6
7
AMD
4.8.9 BOFF During Write-Back ..................................................................................................... 32
4.8.10 Snooping Characteristics During a Cache Line Fill ........................................................... 32
4.8.11 Snooping Characteristics During a Copy-Back ................................................................. 32
4.9 Cache Invalidation and Flushing in Write-Back mode .................................................................. 33
4.9.1 Cache Invalidation through Software .................................................................................. 33
4.9.2 Cache Invalidation through Hardware ................................................................................. 33
4.9.3 Snooping During Cache Flushing ........................................................................................ 34
4.10 Burst Write .................................................................................................................................. 34
4.10.1 Locked Accesses .............................................................................................................. 35
4.10.2 Serialization ....................................................................................................................... 35
4.10.3 PLOCK Operation in Write-Through mode ........................................................................ 36
Clock Control ...................................................................................................................................... 36
5.1 Clock Generation .......................................................................................................................... 36
5.2 Stop Clock ..................................................................................................................................... 36
5.2.1 External Interrupts in Order of Priority ................................................................................. 36
5.3 Stop Grant Bus Cycle ................................................................................................................... 36
5.4 Pin State during Stop Grant .......................................................................................................... 37
5.5 Clock Control State Diagram ........................................................................................................ 37
5.5.1 Normal State ........................................................................................................................ 37
5.5.2 Stop Grant State .................................................................................................................. 37
5.5.3 Stop Clock State .................................................................................................................. 39
5.5.4 Auto Halt Power Down State ............................................................................................... 39
5.5.5 Stop Clock Snoop State (Cache Invalidations) .................................................................... 39
5.5.6 Cache Flush State ............................................................................................................... 39
SRESET Function ............................................................................................................................... 39
System Management mode ................................................................................................................ 39
7.1 Overview ....................................................................................................................................... 39
7.2 Terminology .................................................................................................................................. 40
7.3 System Management Interrupt Processing ................................................................................... 40
7.3.1 System Management Interrupt Processing ......................................................................... 41
7.3.2 SMI Active (SMIACT) .......................................................................................................... 41
7.3.3 SMRAM ............................................................................................................................... 42
7.3.4 SMRAM State Save Map .................................................................................................... 43
7.4 Entering System Management mode ............................................................................................ 44
7.5 Exiting System Management mode .............................................................................................. 44
7.6 Processor Environment ................................................................................................................. 44
7.7 Executing System Management mode Handler ............................................................................ 45
7.7.1 Exceptions and Interrupts with System Management mode ............................................... 46
7.7.2 SMM Revisions Identifier ..................................................................................................... 46
7.7.3 Auto HALT Restart .............................................................................................................. 47
7.7.4 I/O Trap Restart ................................................................................................................... 47
7.7.5 I/O Trap Word ...................................................................................................................... 47
7.7.6 SMM Base Relocation ......................................................................................................... 48
7.8 SMM System Design Considerations ........................................................................................... 48
7.8.1 SMRAM Interface ................................................................................................................ 48
7.8.2 Cache Flushes .................................................................................................................... 49
7.8.3 A20M Pin ............................................................................................................................. 49
7.8.4 CPU Reset during SMM ...................................................................................................... 52
7.8.5 SMM and Second Level Write Buffers ................................................................................ 52
7.8.6 Nested SMI and I/O Restart ................................................................................................ 52
7.9 SMM Software Considerations ..................................................................................................... 52
7.9.1 SMM Code Considerations ................................................................................................. 52
7.9.2 Exception Handling ............................................................................................................. 52
7.9.3 Halt during SMM .................................................................................................................. 53
7.9.4 Relocating SMRAM to an Address above 1 Mbyte ............................................................. 53
Am5X86 Microprocessor
5
PRELIMINARY
AMD
8
9
10
11
12
13
Test Registers 4 and 5 Modifications .................................................................................................. 53
8.1 TR4 Definition ................................................................................................................................ 53
8.2 TR5 Definition ................................................................................................................................ 54
8.3 Using TR4 and TR5 for Cache Testing.......................................................................................... 55
8.3.1 Example 1: Reading the Cache (Write-back mode only) ..................................................... 55
8.3.2 Example 2: Writing the Cache .............................................................................................. 55
8.3.3 Example 3: Flushing the Cache ........................................................................................... 55
Am5X86 CPU Functional Differences ................................................................................................. 55
9.1 Status after Reset ......................................................................................................................... 55
9.2 Cache Status ................................................................................................................................ 55
9.3 CLKMUL Pin ................................................................................................................................. 55
Am5X86 CPU Identification ................................................................................................................. 56
10.1 DX Register at RESET ................................................................................................................ 56
10.2 CPUID Instruction ....................................................................................................................... 56
10.2.1 CPUID Timing ................................................................................................................... 56
10.2.2 CPUID Operation .............................................................................................................. 56
Electrical Data ..................................................................................................................................... 57
11.1 Power and Grounding ................................................................................................................. 57
11.1.1 Power Connections ........................................................................................................... 57
11.1.2 Power Decoupling Recommendations .............................................................................. 57
11.1.3 Other Connection Recommendations ............................................................................... 57
Package Thermal Specifications ......................................................................................................... 65
Physical Dimensions ........................................................................................................................... 66
LIST OF FIGURES
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Figure 13
Figure 14
Figure 15
Figure 16
Figure 17
Figure 18
Figure 19
Figure 20
Figure 21
Figure 22
Figure 23
Figure 24
Figure 25
Figure 26
Figure 27
Figure 28
Figure 29
6
Processor-Induced Line Transitions in Write-Back mode ....................................................... 20
Snooping State Transitions ..................................................................................................... 21
Typical System Block Diagram for HOLD/HLDA Bus Arbitration ............................................ 22
External Read ......................................................................................................................... 23
External Write .......................................................................................................................... 23
Snoop of On-Chip Cache That Does Not Hit a Line ................................................................ 24
Snoop of On-Chip Cache That Hits a Non-modified Line ........................................................ 24
Snoop That Hits a Modified Line (Write-Back) ........................................................................ 25
Write-Back and Pending Access ............................................................................................. 26
Valid HOLD Assertion During Write-Back ............................................................................... 27
Closely Coupled Cache Block Diagram .................................................................................. 28
Snoop Hit Cycle with Write-Back ............................................................................................. 29
Cycle Reordering with BOFF (Write-Back) .............................................................................. 30
Write Cycle Reordering Due to Buffering ................................................................................ 31
Latest Snooping of Copy-Back ................................................................................................ 33
Burst Write .............................................................................................................................. 34
Burst Read with BOFF Assertion ............................................................................................ 34
Burst Write with BOFF Assertion ............................................................................................. 35
Entering Stop Grant State ....................................................................................................... 37
Stop Clock State Machine ....................................................................................................... 38
Recognition of Inputs when Exiting Stop Grant State ............................................................. 38
Basic SMI Interrupt Service ..................................................................................................... 40
Basic SMI Hardware Interface.................................................................................................. 41
SMI Timing for Servicing an I/O Trap ...................................................................................... 41
SMIACT Timing ....................................................................................................................... 42
Redirecting System Memory Address to SMRAM ................................................................... 42
Transition to and from SMM .................................................................................................... 44
Auto HALT Restart Register Offset .......................................................................................... 47
I/O Instruction Restart Register Offset .................................................................................... 47
Am5X86 Microprocessor
PRELIMINARY
Figure 30
Figure 31
Figure 32
Figure 33
Figure 34
Figure 35
Figure 36
Figure 37
Figure 38
Figure 39
Figure 40
Figure 41
Figure 42
Figure 43
Figure 44
Figure 45
Figure 46
AMD
SMM Base Slot Offset ............................................................................................................. 48
SRAM Usage .......................................................................................................................... 48
SMRAM Location .................................................................................................................... 49
SMM Timing in Systems Using Non-Overlaid Memory Space and Write-Through Mode
with Caching Enabled During SMM.......................................................................................... 50
SMM Timing in Systems Using Non-Overlaid Memory Spaces and Write-Back Mode with
Caching Enabled During SMM ................................................................................................. 50
SMM Timing in Systems Using Non-Overlaid Memory Spaces and Write-Back Mode with
Caching Disabled During SMM ................................................................................................ 50
SMM Timing in Systems Using Overlaid Memory Space and Write-Through Mode with
Caching Enabled During SMM ................................................................................................. 51
SMM Timing in Systems Using Overlaid Memory Spaces and Write-Through Mode with
Caching Disabled During SMM ................................................................................................ 51
SMM Timing in Systems Using Overlaid Memory Spaces and Configured in
Write-Back Mode...................................................................................................................... 51
CLK Waveforms ...................................................................................................................... 61
Output Valid Delay Timing ...................................................................................................... 61
Maximum Float Delay Timing .................................................................................................. 62
PCHK Valid Delay Timing ....................................................................................................... 62
Input Setup and Hold Timing ................................................................................................... 63
RDY and BRDY Input Setup and Hold Timing ........................................................................ 63
TCK Waveforms ...................................................................................................................... 64
Test Signal Timing Diagram .................................................................................................... 64
LIST OF TABLES
Table 1
Table 2
Table 3
Table 4
Table 5
Table 6
Table 7
Table 8
Table 9
Table 10
Table 11
Table 12
Table 13
Table 14
Table 15
Table 16
Table 17
Table 18
Table 19
Table 20
Table 21
Table 22
Table 23
Clocking Options ....................................................................................................................... 1
EADS Sample Time ................................................................................................................ 14
Cache Line Organization ......................................................................................................... 19
Legal Cache Line States ......................................................................................................... 19
MESI Cache Line Status ......................................................................................................... 20
Key to Switching Waveforms ................................................................................................... 22
WBINVD/INVD Special Bus Cycles ......................................................................................... 33
FLUSH Special Bus Cycles ..................................................................................................... 34
Pin State during Stop Grant Bus State .................................................................................... 37
SMRAM State Save Map ........................................................................................................ 43
SMM Initial CPU Core Register Settings ................................................................................. 45
Segment Register Initial States ............................................................................................... 45
SMM Revision Identifier .......................................................................................................... 46
SMM Revision Identifier Bit Definitions ................................................................................... 46
HALT Auto Restart Configuration ............................................................................................ 47
I/O Trap Word Configuration ................................................................................................... 47
Test Register TR4 Bit Descriptions ......................................................................................... 53
Test Register TR5 Bit Descriptions ......................................................................................... 53
CPU ID Codes ......................................................................................................................... 56
CPUID Instruction Description ................................................................................................. 56
Thermal Resistance (°C/W) θJC and θJA for the Am5X86 CPU in 168-Pin PGA Package ....... 65
Maximum TA at Various Airflows in °C .................................................................................... 65
Maximum TA for SQFP Package by Clock Frequency ............................................................. 65
Am5X86 Microprocessor
7
PRELIMINARY
AMD
1
1.1
CONNECTION DIAGRAMS AND PIN DESIGNATIONS
168-pin PGA (Pin Grid Array) Package
A
B
C
D
E
F
G
H
D20
D19
D11
D9
VSS
DP1
VSS
VSS
J
K
L
M
N
P
Q
R
S
INC
VSS
VSS
VSS
D2
D0
A31
A28
A27
1
1
D22
D21
D18
D13
VCC
D8
VCC
D3
D5
VCC
D6
VCC
D1
A29
VSS
A25
A26
2
2
TCK
VSS
CLK
D17
D10
D15
D12
DP2
D16
D14
D7
D4
DP0
A30
A17
VCC
A23
3
3
D23
VSS
VCC
A19
VSS
VOLDET
4
4
DP3
VSS
VCC
D13
VCC
D8
VCC
D3
D5
VCC
D6
VCC
D1
A29
A21
A18
A14
5
5
D24
D25
D27
D13
VCC
D8
VCC
D3
D5
VCC
D6
VCC
D1
A29
A24
VCC
VSS
6
6
VSS
VCC
D26
D13
VCC
D8
VCC
D3
D5
VCC
D6
VCC
D1
A29
A22
A15
A12
7
7
D29
D31
D28
D13
VCC
D8
VCC
D3
D5
VCC
D6
VCC
D1
A29
A20
VCC
VSS
8
8
VSS
VCC
D30
D13
VCC
D8
VCC
D3PIN SIDE
D5 VIEW
VCC D6
VCC
D1
A29
A16
VCC
VSS
9
9
INV
SMI SRESET
VCC
D8
VCC
D3
D5
VCC
D6
VCC
D1
A29
A13
VCC
VSS
10
10
VSS
VCC
UP
D13
VCC
D8
VCC
D3
D5
VCC
D6
VCC
D1
A29
A9
VCC
VSS
11
11
HITM CACHE SMIACT
A5
A11
VSS
12
12
INC
WB/WT INC
A7
A8
A10
13
13
TDI
TMS FERR
A2
VCC
VSS
14
14
IGNNE NMI FLUSH A20M HOLD KEN STPCLK BRDY BE2
BE0
PWT
D/C
LOCK HLDA BREQ
A3
A6
15
15
INTR TDO RESET BS8
VCC
RDY
VCC
VCC
BE1
VCC
VCC
VCC
M/IO
VCC
PLOCK BLAST A4
16
16
AHOLD EADS BS16 BOFF
VSS
BE3
VSS
VSS
PCD
VSS
VSS
VSS
W/R
VSS PCHK CLKMUL ADS
17
17
A
8
B
C
D
E
F
G
H
J
K
L
Am5X86 Microprocessor
M
N
P
Q
R
S
PRELIMINARY
1.2
AMD
168-pin PGA Designations (Functional Grouping)
Address
Data
Control
Test
INC
Vcc
Vss
Pin
Name
Pin
No.
Pin
Name
Pin
No.
Pin
Name
Pin
No.
Pin
Name
Pin
No.
Pin
No.
Pin
No.
Pin
No.
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
A15
A16
A17
A18
A19
A20
A21
A22
A23
A24
A25
A26
A27
A28
A29
A30
A31
Q-14
R-15
S-16
Q-12
S-15
Q-13
R-13
Q-11
S-13
R-12
S-7
Q-10
S-5
R-7
Q-9
Q-3
R-5
Q-4
Q-8
Q-5
Q-7
S-3
Q-6
R-2
S-2
S-1
R-1
P-2
P-3
Q-1
D0
D1
D2
D3
D4
D5
D6
D7
D8
D9
D10
D11
D12
D13
D14
D15
D16
D17
D18
D19
D20
D21
D22
D23
D24
D25
D26
D27
D28
D29
D30
D31
P-1
N-2
N-1
H-2
M-3
J-2
L-2
L-3
F-2
D-1
E-3
C-1
G-3
D-2
K-3
F-3
J-3
D-3
C-2
B-1
A-1
B-2
A-2
A-4
A-6
B-6
C-7
C-6
C-8
A-8
C-9
B-8
A20M
ADS
AHOLD
BE0
BE1
BE2
BE3
BLAST
BOFF
BRDY
BREQ
BS8
BS16
CACHE
CLK
CLKMUL
D/C
DP0
DP1
DP2
DP3
EADS
FERR
FLUSH
HITM
HLDA
HOLD
IGNNE
INTR
INV
KEN
LOCK
M/IO
NMI
PCD
PCHK
PLOCK
PWT
RDY
RESET
SMI
SMIACT
SRESET
STPCLK
UP
VOLDET
WB/WT
W/R
D-15
S-17
A-17
K-15
J-16
J-15
F-17
R-16
D-17
H-15
Q-15
D-16
C-17
B-12
C-3
R-17
M-15
N-3
F-1
H-3
A-5
B-17
C-14
C-15
A-12
P-15
E-15
A-15
A-16
A-10
F-15
N-15
N-16
B-15
J-17
Q-17
Q-16
L-15
F-16
C-16
B-10
C-12
C-10
G-15
C-11
S-4
B-13
N-17
TCK
TDI
TDO
TMS
A-3
A-14
B-16
B-14
A-13
C-13
J-1
B-7
B-9
B-11
C-4
C-5
E-2
E-16
G-2
G-16
H-16
K-2
K-16
L-16
M-2
M-16
P-16
R-3
R-6
R-8
R-9
R-10
R-11
R-14
A-7
A-9
A-11
B-3
B-4
B-5
E-1
E-17
G-1
G-17
H-1
H-17
K-1
K-17
L-1
L-17
M-1
M-17
P-17
Q-2
R-4
S-6
S-8
S-9
S-10
S-11
S-12
S-14
Notes:
1. VOLDET is connected internally to VSS.
2. INC = Internal No Connect
Am5X86 Microprocessor
9
AMD
1.3
PRELIMINARY
208-pin SQFP (Shrink Quad Flat Pack) Package
TOP VIEW
10
Am5X86 Microprocessor
PRELIMINARY
1.4
AMD
208-pin SQFP Designations (Functional Grouping)
Address
Data
Control
Test
INC
Vcc
Vss
Pin Name
Pin
No.
Pin Name
Pin
No.
Pin
Name
Pin
No.
Pin
Name
Pin
No.
Pin
No.
Pin
No.
Pin
No.
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
A15
A16
A17
A18
A19
A20
A21
A22
A23
A24
A25
A26
A27
A28
A29
A30
A31
202
197
196
195
193
192
190
187
186
182
180
178
177
174
173
171
166
165
164
161
160
159
158
154
153
152
151
149
148
147
D0
D1
D2
D3
D4
D5
D6
D7
D8
D9
D10
D11
D12
D13
D14
D15
D16
D17
D18
D19
D20
D21
D22
D23
D24
D25
D26
D27
D28
D29
D30
D31
144
143
142
141
140
130
129
126
124
123
119
118
117
116
113
112
108
103
101
100
99
93
92
91
87
85
84
83
79
78
75
74
A20M
ADS
AHOLD
BE0
BE1
BE2
BE3
BLAST
BOFF
BRDY
BREQ
BS8
BS16
CACHE
CLK
CLKMUL
D/C
DP0
DP1
DP2
DP3
EADS
FERR
FLUSH
HITM
HLDA
HOLD
IGNNE
INTR
INV
KEN
LOCK
M/IO
NMI
PCD
PCHK
PLOCK
PWT
RDY
RESET
SMI
SRESET
STPCLK
SMIACT
UP
WB/WT
W/R
47
203
17
31
32
33
34
204
6
5
30
8
7
70
24
11
39
145
125
109
90
46
66
49
63
26
16
72
50
71
13
207
37
51
41
4
206
40
12
48
65
58
73
59
194
64
27
TCK
TDI
TDO
TMS
18
168
68
167
3
67
96
127
2
9
14
19
20
22
23
25
29
35
38
42
44
45
54
56
60
62
69
77
80
82
86
89
95
98
102
106
111
114
121
128
131
133
134
136
137
139
150
155
162
163
169
172
176
179
183
185
188
191
198
200
205
1
10
15
21
28
36
43
52
53
55
57
61
76
81
88
94
97
104
105
107
110
115
120
122
132
135
138
146
156
157
170
175
181
184
189
199
201
208
Note:
INC = Internal No Connect
Am5X86 Microprocessor
11
PRELIMINARY
AMD
2
LOGIC SYMBOL
CLK
STPCLK
CLKMUL
A20M
UP
Clock
Stop Clock
Clock Multiplier
Address Mask
Upgrade
Present
Voltage Detect
VOLDET
D31–D0
32
DP3–DP0
4
PCHK
28
Address Bus
2
A3–A2
4
BE3–BE0
BRDY
BLAST
CACHE
SMI
SMIACT
BS16
ADS
RDY
Am5X86
CPU
PWT
PCD
M/IO
D/C
Bus Cycle
Definition
Interrupts
WB/WT
INV
KEN
FLUSH
AHOLD
EADS
HITM
W/R
LOCK
PLOCK
INTR
NMI
RESET
SRESET
HOLD
BOFF
BREQ HLDA
Bus Arbitration
12
Data Parity
A31–A4
BS8
Bus Cycle
Control
Data Bus
IGNNE
FERR
Numeric Error
Reporting
Am5X86 Microprocessor
TCK
TDI
TMS
TDO
IEEE Test
Port Access
Burst
Control
SMM
Page
Cacheability
Cache Control/
Invalidation
PRELIMINARY
3
PIN DESCRIPTIONS
AMD
BE3–BE0
The Am5X86 microprocessor provides the complete interface support offered by the Enhanced Am486 microprocessor family products. The CLKMUL pin settings
have changed to accommodate the higher operating
speed selection.
A20M
Byte Enable (Active Low; Outputs)
The byte enable pins indicate which bytes are enabled
and active during read or write cycles. During the first
cache fill cycle, however, an external system should
ignore these signals and assume that all bytes are
active.
■ BE3 for D31–D24
Address Bit 20 Mask (Active Low; Input)
A Low signal on the A20M pin causes the microprocessor to mask address line A20 before performing a lookup
to the internal cache, or driving a memory cycle on the
bus. Asserting A20M causes the processor to wrap the
address at 1 Mbyte, emulating Real mode operation.
The signal is asynchronous, but must meet setup and
hold times t20 and t21 for recognition during a specific
clock. During normal operation, A20M should be sampled High at the falling edge of RESET.
A31–A4/A3–A2
Address Lines (Inputs/Outputs)/(Outputs)
Pins A31–A2 define a physical area in memory or indicate an input/output (I/O) device. Address lines A31–A4
drive addresses into the microprocessor to perform
cache line invalidations. Input signals must meet setup
and hold times t22 and t23. A31–A2 are not driven during
bus or address hold.
ADS
Address Status (Active Low; Output)
A Low output from this pin indicates that a valid bus
cycle definition and address are available on the cycle
definition lines and address bus. ADS is driven active by
the same clock as the addresses. ADS is active Low and is
not driven during bus hold.
■ BE2 for D23–D16
■ BE1 for D15–D8
■ BE0 for D7–D0
BE3–BE0 are active Low and are not driven during bus
hold.
BLAST
Burst Last (Active Low; Output)
Burst Last goes Low to tell the CPU that the next BRDY
signal completes the burst bus cycle. BLAST is active
for both burst and non-burst cycles. BLAST is active
Low and is not driven during a bus hold.
BOFF
Back Off (Active Low; Input)
This input signal forces the microprocessor to float all
pins normally floated during hold, but HLDA is not asserted in response to BOFF. BOFF has higher priority
than RDY or BRDY; if both are returned in the same
clock, BOFF takes effect. The microprocessor remains
in bus hold until BOFF goes High. If a bus cycle is in
progress when BOFF is asserted, the cycle restarts.
BOFF must meet setup and hold times t18 and t19 for
proper operation. BOFF has an internal weak pull-up.
BRDY
Burst Ready Input (Active Low; Input)
AHOLD
Address Hold (Active High; Input)
The external system may assert AHOLD to perform a
cache snoop. In response to the assertion of AHOLD,
the microprocessor stops driving the address bus A31–
A2 in the next clock. The data bus remains active and
data can be transferred for previously issued read or
write bus cycles during address hold. AHOLD is recognized even during RESET and LOCK. The earliest that
AHOLD can be deasserted is two clock cycles after
EADS is asserted to start a cache snoop. If HITM is
activated due to a cache snoop, the microprocessor
completes the current bus activity and then asserts ADS
and drives the address bus while AHOLD is active. This
starts the write-back of the modified line that was the
target of the snoop.
The BRDY signal performs the same function during a
burst cycle that RDY performs during a non-burst cycle.
BRDY indicates that the external system has presented
valid data in response to a read, or that the external
system has accepted data in response to a write. BRDY
is ignored when the bus is idle and at the end of the first
clock in a bus cycle. BRDY is sampled in the second
and subsequent clocks of a burst cycle. The data presented on the data bus is strobed into the microprocessor when BRDY is sampled active. If RDY is returned
simultaneously with BRDY, BRDY is ignored and the
cycle is converted to a non-burst cycle. BRDY is active
Low and has a small pull-up resistor, and must satisfy
the setup and hold times t16 and t17.
BREQ
Internal Cycle Pending (Active High; Output)
BREQ indicates that the microprocessor has generated
a bus request internally, whether or not the microprocessor is driving the bus. BREQ is active High and is
floated only during Tri-state Test mode (see FLUSH).
Am5X86 Microprocessor
13
PRELIMINARY
AMD
BS8/BS16
D/C
Bus Size 8 (Active Low; Input)/
Bus Size 16 (Active Low; Input)
Data/Control (Output)
The BS8 and BS16 signals allow the processor to operate with 8-bit and 16-bit I/O devices by running multiple
bus cycles to respond to data requests: four for 8-bit
devices, and two for 16-bit devices. The bus sizing pins
are sampled every clock. The microprocessor samples
the pins every clock before RDY to determine the appropriate bus size for the requesting device. The signals
are active Low input with internal pull-up resistors, and
must satisfy setup and hold times t14 and t15 for correct
operation. Bus sizing is not permitted during copy-back
or write-back operation. BS8 and BS16 are ignored during copy-back or write-back cycles.
CACHE
Internal Cacheability (Active Low; Output)
In Write-through mode, this signal always floats. In
Write-back mode for processor-initiated cycles, a Low
output on this pin indicates that the current read cycle
is cacheable, or that the current cycle is a burst writeback or copy-back cycle. If the CACHE signal is driven
High during a read, the processor will not cache the data
even if the KEN pin signal is asserted. If the processor
determines that the data is cacheable, CACHE goes
active when ADS is asserted and remains in that state
until the next RDY or BRDY is asserted. CACHE floats
in response to a BOFF or HOLD request.
CLK
Clock (Input)
The CLK input provides the basic microprocessor timing
signal. The CLKMUL input selects the multiplier value
used to generate the internal operating frequency for
the Am5X86 microprocessor family. All external timing
parameters are specified with respect to the rising edge
of CLK. The clock signal passes through an internal
Phase-Lock Loop (PLL).
CLKMUL
Clock Multiplier (Input)
The microprocessor samples the CLKMUL input signal
at RESET to determine the design operating frequency.
An internal pull-up resistor connects to VCC, which selects Clock-tripled mode if the input is High or left floating. For Clock-quadrupled mode, the input must be
pulled Low. For 133-MHz processors, this input must
always be connected to VSS to ensure correct operation.
D31–D0
Data Lines (Inputs/Outputs)
Lines D31–D0 define the data bus. The signals must
meet setup and hold times t22 and t23 for proper read
operations. These pins are driven during the second
and subsequent clocks of write cycles.
14
This bus cycle definition pin distinguishes memory and
I/O data cycles from control cycles. The control cycles
are:
■ Interrupt Acknowledge
■ Halt/Special Cycle
■ Code Read (instruction fetching)
DP3–DP0
Data Parity (Inputs/Outputs)
Data parity is generated on all write data cycles with the
same timing as the data driven by the microprocessor.
Even parity information must be driven back into the
microprocessor on the data parity pins with the same
timing as read information to ensure that the processor
uses the correct parity check. The signals read on these
pins do not affect program execution. Input signals must
meet setup and hold times t22 and t23. DP3–DP0 should
be connected to VCC through a pull-up resistor in systems not using parity. DP3–DP0 are active High and are
driven during the second and subsequent clocks of write
cycles.
EADS
External Address Strobe (Active Low; Input)
This signal indicates that a valid external address has
been driven on the address pins A31–A4 of the microprocessor to be used for a cache snoop. This signal is
recognized while the processor is in hold (HLDA is driven active), while forced off the bus with the BOFF input,
or while AHOLD is asserted. The microprocessor ignores EADS at all other times. EADS is not recognized
if HITM is active, nor during the clock after ADS, nor
during the clock after a valid assertion of EADS. Snoops
to the on-chip cache must be completed before another
snoop cycle is initiated. Table 2 describes EADS when
first sampled. EADS can be asserted every other clock
cycle as long as the hold remains active and HITM remains inactive. INV is sampled in the same clock period
that EADS is asserted. EADS has an internal weak pullup.
Table 2. EADS Sample Time
Trigger
AHOLD
EADS First Sampled
Second clock after AHOLD asserted
HOLD
First clock after HLDA asserted
BOFF
Second clock after BOFF asserted
Note:
The triggering signal (AHOLD, HOLD, or BOFF) must remain
active for at least 1 clock after EADS to ensure proper operation.
Am5X86 Microprocessor
PRELIMINARY
FERR
Floating-Point Error (Active Low; Output)
Driven active when a floating-point error occurs, FERR
is similar to the ERROR pin on a 387 math coprocessor.
FERR is included for compatibility with systems using
DOS-type floating-point error reporting. FERR is active
Low, and is not floated during bus hold, except during
Tri-state Test mode (see FLUSH).
FLUSH
Cache Flush (Active Low; Input)
In Write-back mode, FLUSH forces the microprocessor
to write-back all modified cache lines and invalidate its
internal cache. The microprocessor generates two flush
acknowledge special bus cycles to indicate completion
of the write-back and invalidation. In Write-through
mode, FLUSH invalidates the cache without issuing a
special bus cycle. FLUSH is an active Low input that
needs to be asserted only for one clock. FLUSH is asynchronous, but setup and hold times t20 and t21 must be
met for recognition in any specific clock. Sampling
FLUSH Low in the clock before the falling edge of
RESET causes the microprocessor to enter Tri-state
Test mode.
HITM
Hit Modified Line (Active Low; Output)
In Write-back mode (WB/WT=1 at RESET), HITM indicates that an external snoop cache tag comparison hit
a modified line. When a snoop hits a modified line in the
internal cache, the microprocessor asserts HITM two
clocks after EADS is asserted. The HITM signal stays
asserted (Low) until the last BRDY for the corresponding
write-back cycle. At all other times, HITM is deasserted
(High). During RESET, the HITM signal can be used to
detect whether the CPU is operating in Write-back
mode. In Write-back mode (WB/WT=1 at RESET), HITM
is deasserted (driven High) until the first snoop that hits
a modified line. In Write-through mode, HITM floats at
all times.
HLDA
Hold Acknowledge (Active High; Output)
The HLDA signal is activated in response to a hold request presented on the HOLD pin. HLDA indicates that
the microprocessor has given the bus to another local
bus master. HLDA is driven active in the same clock in
which the microprocessor floats its bus. HLDA is driven
inactive when leaving bus hold. HLDA is active High and
remains driven during bus hold. HLDA is floated only
during Tri-state Test mode (see FLUSH).
HOLD
Bus Hold Request (Active High; Input)
HOLD gives control of the microprocessor bus to another bus master. In response to HOLD going active, the
microprocessor floats most of its output and input/output
AMD
pins. HLDA is asserted after completing the current bus
cycle, burst cycle, or sequence of locked cycles. The
microprocessor remains in this state until HOLD is deasserted. HOLD is active High and does not have an internal pull-down resistor. HOLD must satisfy setup and
hold times t18 and t19 for proper operation.
IGNNE
Ignore Numeric Error (Active Low; Input)
When this pin is asserted, the Am5X86 microprocessor
will ignore a numeric error and continue executing
non-control floating-point instructions. When IGNNE is
deasserted, the Am5X86 microprocessor will freeze on
a non-control floating-point instruction if a previous floating-point instruction caused an error. IGNNE has no
effect when the NE bit in Control Register 0 is set. IGNNE
is active Low and is provided with a small internal pullup
resistor. IGNNE is asynchronous but must meet setup
and hold times t20 and t21 to ensure recognition in any
specific clock.
INTR
Maskable Interrupt (Active High; Input)
When asserted, this signal indicates that an external
interrupt has been generated. If the internal interrupt
flag is set in EFLAGS, active interrupt processing is initiated. The microprocessor generates two locked interrupt acknowledge bus cycles in response to the INTR
pin going active. INTR must remain active until the interrupt acknowledges have been performed to ensure
that the interrupt is recognized. INTR is active High and
is not provided with an internal pull-down resistor. INTR
is asynchronous, but must meet setup and hold times
t20 and t21 for recognition in any specific clock.
INV
Invalidate (Active High; Input)
The external system asserts INV to invalidate the cacheline state when an external bus master proposes a write.
It is sampled together with A31–A4 during the clock in
which EADS is active. INV has an internal weak pull-up.
INV is ignored in Write-through mode.
KEN
Cache Enable (Active Low; Input)
KEN determines whether the current cycle is cacheable.
When the microprocessor generates a cacheable cycle
and KEN is active one clock before RDY or BRDY during
the first transfer of the cycle, the cycle becomes a cache
line fill cycle. Returning KEN active one clock before
RDY during the last read in the cache line fill causes the
line to be placed in the on-chip cache. KEN is active
Low and is provided with a small internal pull-up resistor.
KEN must satisfy setup and hold times t14 and t15 for
proper operation.
Am5X86 Microprocessor
15
PRELIMINARY
AMD
LOCK
Bus Lock (Active Low; Output)
A Low output on this pin indicates that the current bus
cycle is locked. The microprocessor ignores HOLD
when LOCK is asserted (although it does acknowledge
AHOLD and BOFF). LOCK goes active in the first clock
of the first locked bus cycle and goes inactive after the
last clock of the last locked bus cycle. The last locked
cycle ends when RDY is returned. LOCK is active Low
and is not driven during bus hold. Locked read cycles
are not transformed into cache fill cycles if KEN is active.
M/IO
Memory/Input-Output (Active High/Active Low;
Output)
A High output indicates a memory cycle. A Low output
indicates an I/O cycle.
NMI
transaction requires more than one bus cycle. Examples
of such operations are segment table descriptor reads
(8 bytes) and cache line fills (16 bytes). The microprocessor drives PLOCK active until the addresses for the
last bus cycle of the transaction have been driven,
whether or not RDY or BRDY is returned. PLOCK is a
function of the BS8, BS16, and KEN inputs. PLOCK
should be sampled on the clock when RDY is returned.
PLOCK is active Low and is not driven during bus hold.
PWT
Page Write-Through (Active High; Output)
This pin reflects the state of the PWT bit in the page
table entry or page directory entry (programmable
through the PWT bit in CR3). If paging is disabled, the
CPU ignores the PWT bit and drives the PWT output
Low. PWT has the same timing as the cycle definition
pins (M/IO, D/C, and W/R). PWT is active High and is
not driven during bus hold.
Non-Maskable Interrupt (Active High; Input)
RESET
A High NMI input signal indicates that an external nonmaskable interrupt has occurred. NMI is rising-edge
sensitive. NMI must be held Low for at least four CLK
periods before this rising edge. The NMI input does not
have an internal pull-down resistor. The NMI input is
asynchronous, but must meet setup and hold times t20
and t21 for recognition in any specific clock.
Reset (Active High; Input)
PCD
Page Cache Disable (Active High; Output)
This pin reflects the state of the PCD bit in the page
table entry or page directory entry (programmable
through the PCD bit in CR3). If paging is disabled, the
CPU ignores the PCD bit and drives the PCD output
Low. PCD has the same timing as the cycle definition
pins (M/IO, D/C, and W/R). PCD is active High and is
not driven during bus hold. PCD is masked by the Cache
Disable bit (CD) in Control Register 0 (CR0).
PCHK
Parity Status (Active Low; Output)
Parity status is driven on the PCHK pin the clock after
RDY for read operations. The parity status reflects data
sampled at the end of the previous clock. A Low PCHK
indicates a parity error. Parity status is checked only for
enabled bytes as is indicated by the byte enable and
bus size signals. PCHK is valid only in the clock immediately after read data is returned to the microprocessor;
at all other times PCHK is inactive High. PCHK is floated
only during Tri-state Test mode (see FLUSH).
PLOCK
Pseudo-Lock (Active Low; Output)
In Write-back mode, the processor forces the output
High and the signal is always read as inactive. In Writethrough mode, PLOCK operates normally. When
asserted, PLOCK indicates that the current bus
16
RESET forces the microprocessor to initialize. The microprocessor cannot begin execution of instructions until at least 1 ms after VCC and CLK have reached their
proper DC and AC specifications. To ensure proper microprocessor operation, the RESET pin should remain
active during this time. RESET is active High. RESET
is asynchronous but must meet setup and hold times
t20 and t21 to ensure recognition on any specific clock.
RDY
Non-Burst Ready (Active Low; Input)
A Low input on this pin indicates that the current bus
cycle is complete, that is, either the external system has
presented valid data on the data pins in response to a
read, or the external system has accepted data from the
microprocessor in response to a write. RDY is ignored
when the bus is idle and at the end of the bus cycle’s
first clock. RDY is active during address hold. Data can
be returned to the processor while AHOLD is active.
RDY is active Low and does not have an internal pullup resistor. RDY must satisfy setup and hold times t16
and t17 for proper chip operation.
SMI
SMM Interrupt (Active Low; Input)
A Low signal on the SMI pin signals the processor to
enter System Management mode (SMM). SMI is the
highest level processor interrupt. The SMI signal is recognized on an instruction boundary, similar to the NMI
and INTR signals. SMI is sampled on every rising clock
edge. SMI is a falling-edge sensitive input. The SMI input
has an internal pull-up resister. Recognition of SMI is
guaranteed in a specific clock if it is asserted synchronously and meets the setup and hold times. If SMI is
asserted asynchronously, it must go High for a minimum
of two clocks before going Low, and it must remain Low
Am5X86 Microprocessor
PRELIMINARY
AMD
for at least two clocks to guarantee recognition. When
the CPU recognizes SMI, it enters SMM before executing the next instruction and saves internal registers in
SMM space.
rising edge of TCK during the SHIFT-IR and the
SHIFT-DR TAP (Test Access Port) controller states.
During all other TAP controller states, TDI is ignored.
TDI uses an internal weak pull-up.
SMIACT
TDO
SMM Interrupt Active (Active Low; Output)
Test Data Output (Active High; Output)
SMIACT goes Low in response to SMI. It indicates that
the processor is operating under SMM control. SMIACT
remains Low until the processor receives a RESET signal or executes the Resume Instruction (RSM) to leave
SMM. This signal is always driven. It does not float during bus HOLD or BOFF.
TDO is the serial output that shifts JTAG instructions
and data out of the component. TDO is driven on the
falling edge of TCK during the SHIFT-IR and SHIFT-DR
TAP controller states. Otherwise, TDO is tri-stated.
Note: Do not use SRESET to exit from SMM. The system should block SRESET during SMM.
Test Mode Select (Active High; Input)
SRESET
Soft Reset (Active High; Input)
TMS
TMS is decoded by the JTAG TAP to select the operation
of the test logic. TMS is sampled on the rising edge of
TCK. To guarantee deterministic behavior of the TAP
controller, the TMS pin has an internal pull-up resistor.
The CPU samples SRESET on every rising clock edge.
If SRESET is sampled active, the SRESET sequence
begins on the next instruction boundary. SRESET
resets the processor, but, unlike RESET, does not cause
it to sample UP or WB/WT, or affect the FPU, cache, CD
and NW bits in CR0, and SMBASE. SRESET is asynchronous and must meet the same timing as RESET.
The SRESET input has an internal pull-down resistor.
The processor samples the Upgrade Present (UP) pin
in the clock before the falling edge of RESET. If it is Low,
the processor tri-states its outputs immediately. UP
must remain asserted to keep the processor inactive.
The pin uses an internal pull-up resistor.
STPCLK
VOLDET—(168-pin PGA package only)
Stop Clock (Active Low; Input)
Voltage Detect (Output)
A Low input signal indicates a request has been made
to turn off the CLK input. When the CPU recognizes a
STPCLK, the processor:
VOLDET provides an external signal to allow the system
to determine the CPU input power level (3 V or 5 V). For
Am5X86 processors, the pin ties internally to VSS.
UP
Write/Read (Input)
■
Stops execution on the next instruction boundary
(unless superseded by a higher priority interrupt)
WB/WT
■
Empties all internal pipelines and write buffers
Write-Back/Write-Through (Input)
■
Generates a Stop Grant acknowledge bus cycle
If the processor samples WB/WT High at RESET, the
processor is configured in Write-back mode and all subsequent cache line fills sample WB/WT on the same
clock edge in which it finds either RDY or the first BRDY
of a burst transfer to determine if the cache line is designated as Write-back mode or Write-through. If the signal is Low on the first BRDY or RDY, the cache line is
write-through. If the signal is High, the cache line is writeback. If WB/WT is sampled Low at RESET, all cache
line fills are write-through. WB/WT has an internal weak
pull-down.
STPCLK is active Low and has an internal pull-up resistor. STPCLK is asynchronous, but it must meet setup
and hold times t20 and t21 to ensure recognition in any
specific clock. STPCLK must remain active until the Stop
Clock special bus cycle is issued and the system returns
either RDY or BRDY.
TCK
Test Clock (Input)
Test Clock provides the clocking function for the JTAG
boundary scan feature. TCK clocks state information
and data into the component on the rising edge of TCK
on TMS and TDI, respectively. Data is clocked out of
the component on the falling edge of TCK on TDO.
TDI
Test Data Input (Input)
TDI is the serial input that shifts JTAG instructions and
data into the tested component. TDI is sampled on the
W/R
Write/Read (Output)
A High output indicates a write cycle. A Low output indicates a read cycle.
Note: The Am5X86 microprocessor does not use the
VCC5 pin used by some 3-V, clock-tripled, 486-based
processors. The corresponding pin on the Am5X86 microprocessor is an Internal No Connect (INC).
Am5X86 Microprocessor
17
PRELIMINARY
AMD
4
4.1
FUNCTIONAL DESCRIPTION
Overview
Am5X86 microprocessors use a 32-bit architecture with
on-chip memory management and cache memory units.
The instruction set includes the complete 486 microprocessor instruction set along with extensions to serve the
new extended applications. All software written for the
486 microprocessor and previous members of the x86
architectural family can run on the Am5X86 microprocessor without modification.
The on-chip Memory Management Unit (MMU) is completely compatible with the 486 MMU. The MMU includes a segmentation unit and a paging unit.
Segmentation allows management of the logical address space by providing easy data and code relocatibility and efficient sharing of global resources. The
paging mechanism operates beneath segmentation and
is transparent to the segmentation process. Paging is
optional and can be disabled by system software. Each
segment can be divided into one or more 4-Kbyte segments. To implement a virtual memory system, the
Am5X86 microprocessor supports full restartability for
all page and segment faults.
4.2
The segmentation unit provides four levels of protection
for isolating and protecting applications and the operating system from each other. The hardware-enforced
protection allows high-integrity system designs.
Real Mode
In Real mode, the Am5X86 microprocessor operates as
a fast 8086. Real mode is required primarily to set up
the processor for Protected mode operation.
4.3.2
Virtual Mode
In Virtual mode, the processor appears to be in Real
mode, but can use the extended memory accessing of
Protected mode.
18
Protected mode provides access to the sophisticated
memory management paging and privilege capabilities
of the processor.
4.3.4
System Management Mode
SMM is a special operating mode described in detail in
Section 7.
4.4
Cache Architecture
The Am5X86 microprocessor family supports a superset
architecture of the standard 486 cache implementation.
This architectural enhancement improves not only CPU
performance, but total system performance.
4.4.1
Write-Through Cache
The standard 486DX-type write-through cache architecture is characterized by the following:
■ External read accesses are placed in the cache if
they meet proper caching requirements.
■ Subsequent reads to the data in the cache are made
if the address is stored in the cache tag array.
■ Write operations to a valid address in the cache are
The write-through cache implementation forces all
writes to flow through to the external bus and back to
main memory. Consequently, the write-through cache
generates a large amount of bus traffic on the external
data bus.
4.4.2
Write-Back Cache
The microprocessor write-back cache architecture is
characterized by the following:
■ External read accesses are placed in the cache if
they meet proper caching requirements.
■ Subsequent reads to the data in the cache are made
if the address is stored in the cache tag array.
Modes of Operation
The Am5X86 microprocessor has four modes of operation: Real Address mode (Real mode), Virtual 8086 Address mode (Virtual mode), Protected Address mode
(Protected mode), and System Management mode
(SMM).
4.3.1
Protected Mode
updated in the cache and to external memory. This
data writing technique is called write-through.
Memory
Memory is organized into one or more variable length
segments, each up to 4 Gbytes (232 bytes). A segment
can have attributes associated with it, including its location, size, type (i.e., stack, code, or data), and protection characteristics. Each task on a microprocessor can
have a maximum of 16,381 segments, each up to 4
Gbytes. Thus, each task has a maximum of 64 Tbytes
of virtual memory.
4.3
4.3.3
■ Write operations to a valid address in the cache that
is in the write-through (shared) state is updated in
the cache and to external memory.
■ Write operations to a valid address in the cache that
is in the write-back (exclusive or modified) state is
updated only in the cache. External memory is not
updated at the time of the cache update.
■ Modified data is written back to external memory
when the modified cache line is being replaced with
a new cache line (copy-back operation) or an external bus master has snooped a modified cache line
(write-back).
The write-back cache feature significantly reduces the
amount of bus traffic on the external bus; however, it
also adds complexity to the system design to maintain
memory coherency. The write-back cache requires en-
Am5X86 Microprocessor
PRELIMINARY
hanced system support because the cache may contain
data that is not identical to data in main memory at the
same address location.
4.5
Write-Back Cache Protocol
The Am5X86 microprocessor family write-back cache
coherency protocol reduces bus activity while maintaining data coherency in a multimaster environment. The
cache coherency protocol offers the following advantages:
4.5.2
AMD
Line Status and Line State
A cache line can occupy one of four legal states as
indicated by bits S0 and S1. The line states are shown
in Table 4. Each line in the cache is in one of these
states. The state transition is induced either by the processor or during snooping from an external bus master.
Table 4. Legal Cache Line States
S1
S0
Line State
■ No unnecessary bus traffic. The protocol dynamical-
0
0
Invalid
ly identifies shared data to the granularity of a cache
line. This dynamic identification ensures that the traffic on the external bus is the minimum necessary to
ensure coherency.
0
1
Exclusive
1
0
Modified
1
1
Shared
■ Software-transparent. Because the protocol gives
the appearance of a single, unified memory, software does not have to maintain coherency or identify
shared data. Application software developed for a
system without a cache can run without modification.
Software support is required only in the operating
system to identify non-cacheable data regions.
The Am5X86 microprocessor family implements a modified MESI protocol on systems with write-back cache
support. MESI allows a cache line to exist in four states:
modified, exclusive, shared, and invalid. The Am5X86
microprocessor family allocates memory in the cache
due to a read miss. Write allocation is not implemented.
To maintain coherency between cache and main memory, the MESI protocol has the following characteristics:
4.5.2.1
Invalid
An invalid cache line does not contain valid data for any
external memory location. An invalid line does not participate in the cache coherency protocol.
4.5.2.2
Exclusive
An exclusive line contains valid data for some external
memory location. The data exactly matches the data in
the external memory location.
4.5.2.3
Shared
A shared line contains valid data for an external memory
location, the data is shared by another cache, and the
shared data matches the data in the external memory
exactly; or the cache line is in Write-through mode.
■ The system memory is always updated during a
4.5.2.4
snoop when a modified line is hit.
■ If a modified line is hit by another master during
snooping, the master is forced off the bus and the
snooped cache writes back the modified line to the
system memory. After the snooped cache completes
the write, the forced-off bus master restarts the access and reads the modified data from memory.
4.5.1
Cache Line Overview
To implement the Am5X86 microprocessor cache coherency protocol, each tag entry is expanded to 2 bits:
S1 and S0. Each tag entry is associated with a cache
line. Table 3 shows the cache line organization.
Modified
A modified line contains valid data for an external memory location. However, the data does not match the data
in the external location because the processor has modified the data since it was loaded from the external memory. A cache that contains a modified line is responsible
for ensuring that the data is properly maintained. This
means that in the case of an external access to that line
from another external bus master, the modified line is
first written back to the external memory before the other
external bus master can complete its access. Table 5
shows the MESI cache line states and the corresponding availability of data.
Table 3. Cache Line Organization
Data Words (32 Bits)
D0
Address Tag and Status
Address Tag, S1, S0
D1
D2
D3
Am5X86 Microprocessor
19
PRELIMINARY
AMD
Table 5. MESI Cache Line Status
Situation Modified Exclusive
Shared
Invalid
Line valid? Yes
Yes
Yes
No
External
memory
is...
out-ofdate
valid
valid
status
unknown
A write to
this cache
line...
goes to
does not
goes
does not go the bus
go to the
directly to
to the bus and
bus
the bus
updates
4.6
Cache Replacement Description
The cache line replacement algorithm uses the standard
Am486 CPU pseudo LRU (Least-Recently Used) strategy. When a line must be placed in the internal cache,
the microprocessor first checks to see if there is an invalid line available in the set. If no invalid line is available,
the LRU algorithm replaces the least-recently used
cache line in the four-way set with the new cache line.
If the cache line for replacement is modified, the modified cache line is placed into the copy-back buffer for
copying back to external memory, and the new cache
line is placed into the cache. This copy-back ensures
that the external memory is updated with the modified
data upon replacement.
4.7
Memory Configuration
In computer systems, memory regions require specific
caching and memory write methods. For example, some
memory regions are non-cacheable while others are
cacheable but are write-through. To allow maximum
memory configuration, the microprocessor supports
specific memory region requirements. All bus masters,
such as DMA controllers, must reflect all data transfers
on the microprocessor local bus so that the microprocessor can respond appropriately.
4.7.1
4.8
Cache Functionality in Write-Back
Mode
The description of cache functionality in Write-back
mode is divided into two sections: processor-initiated
cache functions and snooping actions.
4.8.1
Processor-Initiated Cache Functions and
State Transitions
The microprocessor contains two new buffers for use
with the MESI protocol support: the copy-back buffer
and the write-back buffer. The processor uses the copyback buffer for cache line replacement of modified lines.
The write-back buffer is used when an external bus master hits a modified line in the cache during a snoop operation and the cache line is designated for write-back
to main memory. Each buffer is four doublewords in size.
Figure 1 shows a diagram of the state transitions induced by the local processor. When a read miss occurs,
the line selected for replacement remains in the modified
state until overwritten. A copy of the modified line is sent
to the copy-back buffer to be written back after replacement. When reload has successfully completed, the line
is set either to the exclusive or the shared state, depending on the state of PWT and WB/WT signals.
Cacheability
The Am5X86 CPU caches data based on the state of
the CD and NW bits in CR0, in conjunction with the KEN
signal, at the time of a burst read access from memory.
If the WB/WT signal is Low during the first BRDY, KEN
meets the standard setup and hold requirements and
the four 32-bit doublewords are still placed in the cache.
However, all cacheable accesses in this mode are considered write-through. When the WB/WT is High during
the first BRDY, the entire four 32-bit doubleword transfer
is considered write-back.
Note: The CD bit in CR0 enables (0) or disables (1) the
internal cache. The NW bit in CR0 enables (0) or disables (1) write-through and snooping cycles. RESET
sets CD and NW to 1. Unlike RESET, however, SRESET
does not invalidate the cache nor does it modify the
values of CD and NW in CR0.
4.7.2
pin indicates whether an individual write access is executed as write-through or write-back. The Am5X86 microprocessor does this on an access-by-access basis.
Once the cache line is in the cache, the STATUS bit is
tested each time the processor writes to the cache line
or a tag compare results in a hit during Bus-watching
mode. If the WB⁄WT signal is Low during the first BRDY
of the cache line read access, the cache line is considered a write-through access. Therefore, all writes to this
location in the cache are reflected on the external bus,
even if the cache line is write protected.
Write-Through/Write-Back
Invalid
Read_Miss
(WB/WT = 1) •
(PWT = 0)
Read_Hit
Shared
Exclusive
Write_Hit + Read_Hit
Note: Write_Hit
generates external
bus cycle.
Write_Hit
Modified
Read_Hit
+ Write_Hit
Figure 1. Processor-Induced Line Transitions in
Write-Back Mode
If the CPU is operating in Write-back mode (i.e., the
WB⁄WT pin was sampled High at RESET), the WB⁄WT
20
Read_Miss
[(WB/WT = 0) + (PWT = 1)]
Am5X86 Microprocessor
PRELIMINARY
If the PWT signal is 0, the external WB/WT signal determines the new state of the line. If the WB/WT signal
was asserted to 1 during reload, the line transits to the
exclusive state. If the WB/WT signal was 0, the line
transits to the shared state. If the PWT signal is 1, it
overrides the WB/WT signal, forcing the line into the
shared state. Therefore, if paging is enabled, the software programmed PWT bit can override the hardware
signal WB/WT.
Until the line is reallocated, a write is the only processor
action that can change the state of the line. If the write
occurs to a line in the exclusive state, the data is simply
written into the cache and the line state is changed to
modified. The modified state indicates that the contents
of the line require copy-back to the main memory before
the line is reallocated.
If the write occurs to a line in the shared state, the cache
performs a write of the data on the external bus to update
the external memory. The line remains in the shared
state until it is replaced with a new cache line or until it
is flushed. In the modified state, the processor continues
to write the line without any further external actions or
state transitions.
If the PWT or PCD bits are changed for a specified memory location, the tag bits in the cache are assumed to
be correct. To avoid memory inconsistencies with respect to cacheability and write status, a cache copyback and invalidation should be invoked either by using
the WBINVD instruction or asserting the FLUSH signal.
4.8.2
ing the W/R signal. The microprocessor compares the
address of the snoop request with addresses of lines in
the cache and of any line in the copy-back buffer waiting
to be transferred on the bus. It does not, however, compare with the address of write-miss data in the write
buffers. Two clock cycles after sampling EADS, the microprocessor drives the results of the snoop on the HITM
pin. If HITM is active, the line was found in the modified
state; if inactive, the line was in the exclusive or shared
state, or was not found.
Figure 2 shows a diagram of the state transitions induced by snooping accesses.
Invalid
(EADS = 0 * INV = 1)
+ FLUSH = 0
(EADS = 0 * INV = 1)
+ FLUSH = 0
EADS = 0 * INV = 0
* FLUSH = 1
Exclusive
Shared
EADS = 0 * INV = 0
* FLUSH = 1
(HITM asserted
+ write-back)
EADS = 0 * INV = 1
+ FLUSH = 0
(HITM asserted
+ write-back)
Snooping Actions and State Transitions
To maintain cache coherency, the CPU must allow
snooping by the current bus master. The bus master
initiates a snoop cycle to check whether an address is
cached in the internal cache of the microprocessor. A
snoop cycle differs from any other cycle in that it is initiated externally to the microprocessor, and the signal
for beginning the cycle is EADS instead of ADS. The
address bus of the microprocessor is bidirectional to
allow the address of the snoop to be driven by the system. A snoop access can begin during any hold state:
AMD
EADS = 0 * INV = 0
* FLUSH = 1
Modified
Figure 2. Snooping State Transitions
4.8.2.1
Difference between Snooping
Access Cases
Snooping accesses are external accesses to the microprocessor. As described earlier, the snooping logic has
a set of signals independent from the processor-related
signals. Those signals are:
■ EADS
■ While HOLD and HLDA are asserted
■ INV
■ While BOFF is asserted
■ HITM
■ While AHOLD is asserted
In addition to these signals, the address bus is required
as an input. This is achieved by setting AHOLD, HOLD,
or BOFF active.
In the clock in which EADS is asserted, the microprocessor samples the INV input to qualify the type of inquiry. INV specifies whether the line (if found) must be
invalidated (i.e., the MESI status changes to Invalid or
I). A line is invalidated if the snoop access was generated
due to a write of another bus master. This is indicated
by INV set to 1. In the case of a read, the line does not
have to be invalidated, which is indicated by INV set to 0.
The core system logic can generate EADS by watching
the ADS from the current bus master, and INV by watch-
Snooping can occur in parallel with a processor-initiated
access that has already been started. The two accesses
depend on each other only when a modified line is written back. In this case, the snoop requires the use of the
cycle control signals and the data bus. The following
sections describe the scenarios for the HOLD, AHOLD,
and BOFF implementations.
Am5X86 Microprocessor
21
PRELIMINARY
AMD
4.8.2.2
HOLD Bus Arbitration Implementation
The HOLD/HLDA bus arbitration scheme is used primarily in systems where all memory transfers are seen by
the microprocessor. The HOLD/HLDA bus arbitration
scheme permits simple write-back cache design while
maintaining a relatively high performing system. Figure
3 shows a typical system block diagram for HOLD/HLDA
bus arbitration.
.
Table 6. Key to Switching Waveforms
Waveform
Note: To maintain proper system timing, the HOLD
signal must remain active for one clock cycle after HITM
transitions active. Deassertion of HOLD in the same
clock cycle as HITM assertion may lead to unpredictable
processor behavior.
CPU
Local Bus
Peripheral
Inputs
Outputs
Must be steady
Will be steady
May change from
H to L
Will change
from H to L
May change from
L to H
Will change
from L to H
Don’t care; any
change permitted
Changing;
state unknown
Does not apply
Center line is
High-impedance
“Off” state
Address Bus
4.8.2.2.2 External Read
Data Bus
L2 Cache
Scenario: The data resides in external memory (see
Figure 4).
I/O Bus
Interface
Step 1 The processor starts the external read access
by asserting ADS = 0 and W/R = 0.
Address Bus
DRAM
Data Bus
Slow
Peripheral
Step 2 WB/WT is sampled in the same cycle as BRDY.
If WB/WT = 1, the data resides in a write-back
cacheable memory location.
Step 3 The processor completes its burst read and asserts BLAST.
Figure 3. Typical System Block Diagram
for HOLD/HLDA Bus Arbitration
4.8.2.2.3 External Write
Scenario: The data is written to the external memory
(see Figure 5).
4.8.2.2.1 Processor-Induced Bus Cycles
In the following scenarios, read accesses are assumed
to be cache line fills. The cases also assume that the
core system logic does not return BRDY or RDY until
HITM is sampled. The addition of wait states follows the
standard 486 bus protocol. For demonstration purposes, only the zero wait state approach is shown. Table 6
explains the key to switching waveforms.
22
Step 1 The processor starts the external write access
by asserting ADS = 0 and W/R = 1.
Step 2 The processor completes its write to the core
system logic.
4.8.2.2.4 HOLD/HLDA External Access TIming
In systems with two or more bus masters, each bus
master is equipped with individual HOLD and HLDA control signals. These signals are then centralized to the
core system logic that controls individual bus masters,
depending on bus request signals and the HITM signal.
Am5X86 Microprocessor
PRELIMINARY
AMD
CLK
ADR
n
n+4
n+8
n+12
M/IO
W/R
1
ADS
BLAST
3
2
BRDY
n
Data
n+4
n+8
n+12
KEN
WB/WT
BOFF
Note:
The circled numbers in this figure represent the steps in section 4.8.2.2.2.
Figure 4. External Read
CLK
n
ADR
M/IO
W/R
ADS
1
BLAST
2
BRDY
Data
n
WB/WT
BOFF
Note:
The circled numbers in this figure represent the steps in section 4.8.2.2.3.
Figure 5. External Write
Am5X86 Microprocessor
23
PRELIMINARY
AMD
CLK
valid
ADR
valid
INV
➁
EADS
➂
HITM
HOLD
➀
HLDA
Note:
The circled numbers in this figure represent the steps in section 4.8.3.1.
Figure 6. Snoop of On-Chip Cache That Does Not Hit a Line
CLK
ADR
valid
INV
valid
➁
EADS
➂
HITM
HOLD
➀
HLDA
Note:
The circled numbers in this figure represent the steps in section 4.8.3.2.
Figure 7. Snoop of On-Chip Cache That Hits a Non-modified Line
24
Am5X86 Microprocessor
PRELIMINARY
4.8.3
sertion. In the fastest case, this means that
HOLD was asserted one clock cycle before the
HLDA response.
External Bus Master Snooping Actions
The following scenarios describe the snooping actions
of an external bus master.
4.8.3.1
Snoop Miss
Scenario: A snoop of the on-chip cache does not hit a
line, as shown in Figure 6.
Step 1 The microprocessor is placed in Snooping
mode with HOLD. HLDA must be High for a
minimum of one clock cycle before EADS assertion. In the fastest case, this means that
HOLD was asserted one clock cycle before the
HLDA response.
Step 2 EADS and INV are applied to the microprocessor. If INV is 0, a read access caused the snooping cycle. If INV is 1, a write access caused the
snooping cycle.
Step 3 Two clock cycles after EADS is asserted, HITM
becomes valid. Because the addressed line is
not in the snooping cache, HITM is 1.
4.8.3.2
Snoop Hit to a Non-Modified Line
Scenario: The snoop of the on-chip cache hits a line,
and the line is not modified (see Figure 7).
Step 1 The microprocessor is placed in Snooping
mode with HOLD. HLDA must be High for a
minimum of one clock cycle before EADS asCLK
ADR
M/IO
CACHE
W/R
n
n
AMD
Step 2 EADS and INV are applied to the microprocessor. If INV is 0, a read access caused the snooping cycle. If INV is 1, a write access caused the
snooping cycle.
Step 3 Two clock cycles after EADS is asserted, HITM
becomes valid. In this case, HITM is 1.
4.8.4
Write-Back Case
Scenario: Write-back accesses are always burst writes
with a length of four 32-bit words. For burst writes, the
burst always starts with the microprocessor line offset
at 0. HOLD must be deasserted before the write-back
can be performed (see Figure 8).
Step 1 HOLD places the microprocessor in Snooping
mode. HLDA must be High for a minimum of
one clock cycle before EADS assertion. In the
fastest case, this means that HOLD asserts one
clock cycle before the HLDA response.
Step 2 EADS and INV are asserted. If INV is 0, snooping is caused by a read access. If INV is 1,
snooping is caused by a write access. EADS is
not sampled again until after the modified line
is written back to memory. It is detected again
as early as in Step 11.
n+4
n+8 n+1
n
floating/tri-stated
floating/tri-stated
5
ADS
BLAST
11
6
BRDY
INV
valid
valid
2
EADS
3
HITM
7
HOLD
1
4
9
HLDA
Data
External
bus master’s
BOFF signal
8
n
n+4
n+8 n+12
10
Note:
The circled numbers in this figure represent the steps in section 4.8.4.
Figure 8. Snoop That Hits a Modified Line (Write-Back)
Am5X86 Microprocessor
25
AMD
Step 3 Two clock cycles after EADS is asserted, HITM
becomes valid, and is 0 because the line is modified.
Step 4 In the next clock, the core system logic deasserts the HOLD signal in response to the
HITM = 0 signal. The core system logic backs
off the current bus master at the same time so
that the microprocessor can access the bus.
HOLD can be reasserted immediately after
ADS is asserted for burst cycles.
Step 5 The snooping cache starts it’s write-back of the
modified line by asserting ADS = 0, CACHE = 0,
and W/R = 1. The write access is a burst write.
The number of clock cycles between deasserting HOLD to the snooping cache and first
asserting ADS for the write-back cycles can
vary. In this example, it is one clock cycle, which
is the shortest possible time. Regardless of the
number of clock cycles, the start of the writeback is seen by ADS going Low.
Step 6 The write-back access is finished when BLAST
and BRDY both are 0.
Step 7 In the clock cycle after the final write-back access, the processor drives HITM back to 1.
CLK
ADR
M/IO
CACHE
W/R
n
Step 8 HOLD is sampled by the microprocessor.
Step 9 One cycle after sampling HOLD High, the microprocessor transitions HLDA transitions to 1,
acknowledging the HOLD request.
Step 10 The core system logic removes hold-off control
to the external bus master. This allows the external bus master to immediately retry the aborted access. ADS is strobed Low, which
generates EADS Low in the same clock cycle.
Step 11 The bus master restarts the aborted access.
EADS and INV are applied to the microprocessor as before. This starts another snoop cycle.
The status of the addressed line is now either shared
(INV = 0) or is changed to invalid (INV = 1).
4.8.5
Scenario: The following occurs when, in addition to the
write-back operation, other bus accesses initiated by
the processor associated with the snooped cache are
pending. The microprocessor gives the write-back access priority. This implies that if HOLD is deasserted,
the microprocessor first writes back the modified line
(see Figure 9).
n+4
n
Write-Back and Pending Access
n+8 n+12
n
floating/tri-stated
5
ADS
BLAST
11
6
BRDY
INV
valid
valid
2
EADS
3
HITM
7
HOLD
1
9
HLDA
Data
External
bus master’s
BOFF signal
n
n+4 n+8 n+12
10
Note:
The circled numbers in this figure represent the steps in section 4.8.5.
Figure 9. Write-Back and Pending Access
26
8
4
Am5X86 Microprocessor
PRELIMINARY
Step 1 HOLD places the microprocessor in Snooping
mode. HLDA must be High for a minimum of
one clock cycle before EADS assertion. In the
fastest case, this means that HOLD asserts one
clock cycle before the HLDA response.
Step 2 EADS and INV are asserted. If INV is 0, snooping is caused by a read access. If INV is 1,
snooping is caused by a write access. EADS is
not sampled again until after the modified line
is written back to memory. It is detected again
as early as in Step 11.
Step 3 Two clock cycles after EADS is asserted, HITM
becomes valid, and is 0 because the line is
modified.
Step 4 In the next clock the core system logic deasserts
the HOLD signal in response to the HITM = 0.
The core system logic backs off the current bus
master at the same time so that the microprocessor can access the bus. HOLD can be reasserted immediately after ADS is asserted for
burst cycles.
Step 5 The snooping cache starts its write-back of the
modified line by asserting ADS = 0, CACHE = 0,
and W/R = 1. The write access is a burst write.
The number of clock cycles between deasserting HOLD to the snooping cache and first asserting ADS for the write-back cycles can vary.
In this example, it is one clock cycle, which is
the shortest possible time. Regardless of the
AMD
number of clock cycles, the start of the writeback is seen by ADS going Low.
Step 6 The write-back access is finished when BLAST
and BRDY both are 0.
Step 7 In the clock cycle after the final write-back access, the processor drives HITM back to 1.
Step 8 HOLD is sampled by the microprocessor.
Step 9 A minimum of 1 clock cycle after the completion
of the pending access, HLDA transitions to 1,
acknowledging the HOLD request.
Step 10 The core system logic removes hold-off control
to the external bus master. This allows the external bus master to immediately retry the aborted access. ADS is strobed Low, which
generates EADS Low in the same clock cycle.
Step 11 The bus master restarts the aborted access.
EADS and INV are applied to the microprocessor as before. This starts another snoop cycle.
The status of the addressed line is now either shared
(INV = 0) or is changed to invalid (INV = 1).
4.8.5.1
HOLD/HLDA Write-Back Design
Considerations
When designing a write-back cache system that uses
HOLD/HLDA as the bus arbitration method, the following considerations must be observed to ensure proper
operation (see Figure 10).
CLK
ADS
BLAST
BRDY
HOLD
Valid Hold Assertion
HITM
HLDA
Figure 10. Valid HOLD Assertion During Write-Back
Am5X86 Microprocessor
27
PRELIMINARY
AMD
Step 1 During a snoop to the on-chip cache that hits a
modified cache line, the HOLD signal cannot
be deasserted to the microprocessor until the
next clock cycle after HITM transitions active.
Step 2 After the write-back has commenced, the HOLD
signal should be asserted no earlier than the
next clock cycle after ADS goes active, and no
later than in the final BRDY of the last write.
Asserting HOLD later than the final BRDY may
allow the microprocessor to permit a pending
access to begin.
Step 3 If RDY is returned instead of BRDY during a
write-back, the HOLD signal can be reasserted
at any time starting one clock after ADS goes
active in the first transfer up to the final transfer
when RDY is asserted. Asserting RDY instead
of BRDY will not break the write-back cycle if
HOLD is asserted. The processor ignores
HOLD until the final write cycle of the write-back.
4.8.5.2
AHOLD Bus Arbitration Implementation
The use of AHOLD as the control mechanism is often
found in systems where an external second-level cache
is closely coupled to the microprocessor. This tight coupling allows the microprocessor to operate with the least
amount of stalling from external snooping of the on-chip
cache. Additionally, snooping of the cache can be performed concurrently with an access by the microprocessor. This feature further improves the performance of
the total system (see Figure 11).
Note: To maintain proper system timing, the AHOLD
signal must remain active for one clock cycle after HITM
transitions active. Deassertion of AHOLD in the same
clock cycle as HITM assertion may lead to unpredictable
processor behavior.
Address Bus
Data Bus
L2 Cache
Address Bus
Data Bus
I/O Bus
Interface
Address Bus
Data Bus
Slow
Peripheral
Figure 11. Closely Coupled Cache Block Diagram
28
4.8.5.3
Normal Write-Back
Scenario: This scenario assumes that a processor-initiated access has already started and that the external
logic can finish that access even without the address
being applied after the first clock cycle. Therefore, a
snooping access with AHOLD can be done in parallel.
In this case, the processor-initiated access is finished
first, then the write-back is executed (see Figure 12).
The sequence is as follows:
Step 1 The processor initiates an external, simple,
non-cacheable read access, strobing ADS = 0
and W/R = 0. The address is driven from the
CPU.
Step 2 In the same cycle, AHOLD is asserted to indicate the start of snooping. The address bus
floats and becomes an input in the next clock
cycle.
Step 3 During the next clock cycles, the BRDY or RDY
signal is not strobed Low. Therefore, the processor-initiated access is not finished.
Step 4 Two clock cycles after AHOLD is asserted, the
EADS signal is activated to start an actual
snooping cycle, and INV is valid. If INV is 0, a
read access caused the snooping cycle. If INV
is 1, a write access caused the snooping cycle.
Additional EADS are ignored due to the hit of a
modified line. It is detected after HITM goes inactive.
Step 5 Two clock cycles after EADS is asserted, the
snooping signal HITM becomes valid. The line
is modified; therefore, HITM is 0.
Step 6 In this cycle, the processor-initiated access is
finished.
CPU
DRAM
The following sections describe the snooping scenarios
for the AHOLD implementation.
Step 7 Two clock cycles after the end of the processorinitiated access, the cache immediately starts
writing back the modified line. This is indicated
by ADS = 0 and W/R = 1. Note that AHOLD is
still active and the address bus is still an input.
However, the write-back access can be executed without any address. This is because the
corresponding address must have been on the
bus when EADS was strobed. Therefore, in the
case of the core system logic, the address for
the write-back must be latched with EADS to
be available later. This is required only if
AHOLD is not removed if HITM becomes 0.
Otherwise, the address of the write-back is put
onto the address bus by the microprocessor.
Am5X86 Microprocessor
PRELIMINARY
AMD
CLK
ADR
from CPU
from CPU
to CPU
M/IO
CACHE
W/R
ADS
7
1
9
BLAST
3
6
BRDY
8
AHOLD
2
INV
EADS
4
10
5
HITM
Data
Read
Wn
W n+4
W n+8
W n+C
Note:
The circled numbers in this figure represent the steps in section 4.8.5.3.
Figure 12. Snoop Hit Cycle with Write-Back
Step 8 As an example, AHOLD is now removed. In the
next clock cycle, the current address of the
write-back access is driven onto the address
bus.
Step 9 The write-back access is finished when BLAST
and BRDY both transition to 0.
Scenario: If there are outstanding processor-initiated
cycles on the bus, asserting BOFF clears the bus pipeline. If a snoop causes HITM to be asserted, the first
cycle issued by the microprocessor after deassertion of
BOFF is the write-back cycle. After the write-back cycle,
it reissues the aborted cycles. This translates into the
following sequence:
Step 10 In the clock cycle after the final write-back
access, the snooping cache drives HITM back
to 1.
Step 1 The processor starts a cacheable burst read
cycle.
The status of the snooped and written-back line is now
either shared (INV = 0) or is changed to invalid (INV = 1).
Step 2 One clock cycle later, AHOLD is asserted. This
switches the address bus into an input one clock
cycle after AHOLD is asserted.
4.8.6
Reordering of Write-Backs (AHOLD) with
BOFF
As seen previously, the Bus Interface Unit (BIU) completes the processor-initiated access first if the snooping
access occurs after the start of the processor-initiated
access. If the HITM signal occurs one clock cycle before
the ADS = 0 of the processor-initiated access, the writeback receives priority and is executed first.
However, if the snooping access is executed after the
start of the processor-initiated access, there is a
methodology to reorder the access order. The BOFF
signal delays outstanding processor-initiated cycles so
that a snoop write-back can occur immediately (see
Figure 13).
Step 3 Two clock cycles after AHOLD is asserted, the
EADS and INV signals are asserted to start the
snooping cycle.
Step 4 Two clock cycles after EADS is asserted, HITM
becomes valid. The line is modified, therefore
HITM = 0.
Step 5 Note that the processor-initiated access is not
completed because BLAST = 1.
Step 6 With HITM going Low, the core system logic
asserts BOFF in the next clock cycle to the
snooping processor to reorder the access.
BOFF overrides BRDY. Therefore, the partial
read is not used. It is reread later.
Am5X86 Microprocessor
29
PRELIMINARY
AMD
CLK
ADR
R1 from CPU
W1 to CPU
don’t care
W1 from CPU
W2
W3
W4
R2 from CPU
M/IO
CACHE
W/R
➈
➀
ADS
11
BLAST
➄
➉
BRDY
BOFF
➅
➁
➆➇
AHOLD
INV
EADS
➂
➃
HITM
12
Data
R1
R2
W1
W2
W3
W4
Note:
The circled numbers in this figure represent the steps in section 4.8.6.
Figure 13. Cycle Reordering with BOFF (Write-Back)
Step 7 One clock cycle later BOFF is deasserted. The
write-back access starts one clock cycle later
because the BOFF has cleared the bus pipeline.
Step 8 AHOLD is deasserted. In the next clock cycle
the address for the write-back is driven on the
address bus.
Step 9 One cycle after BOFF is deasserted, the cache
immediately starts writing back the modified
line. This is indicated by ADS = 0 and W/R = 1.
Step 10 The write-back access is finished when BLAST
and BRDY go active 0.
Step 11 The BIU restarts the aborted cache line fill with
the previous read. This is indicated by ADS = 0
and W/R = 0.
Step 12 In the same clock cycle, the snooping cache
drives HITM back to 1.
Step 13 The previous read is now reread.
4.8.7
Special Scenarios for AHOLD Snooping
In addition to the previously described scenarios, there
are special scenarios regarding the time of the EADS
and AHOLD assertion. The final result depends on the
time EADS and AHOLD are asserted relative to other
processor-initiated operations.
30
4.8.7.1
Write Cycle Reordering due to Buffering
Scenario: The MESI cache protocol and the ability to
perform and respond to snoop cycles guarantee that
writes to the cache are logically equivalent to writes to
memory. In particular, the order of read and write operations on cached data is the same as if the operations
were on data in memory. Even non-cached memory
read and write requests usually occur on the external
bus in the same order that they were issued in the program. For example, when a write miss is followed by a
read miss, the write data goes on the bus before the
read request is put on the bus. However, the posting of
writes in write buffers coupled with snooping cycles may
cause the order of writes seen on the external bus to
differ from the order they appear in the program. Consider the following example, which is illustrated in Figure
14. For simplicity, snooping signals that behave in their
usual manner are not shown.
Step 1 AHOLD is asserted. No further processor-initiated accesses to the external bus can be started. No other access is in progress.
Step 2 The processor writes data A to the cache, resulting in a write miss. Therefore, the data is put
into the write buffers, assuming they are not full.
No external access can be started because
AHOLD is still 1.
Am5X86 Microprocessor
PRELIMINARY
AMD
CLK
2
Write Buffer
Cached Data
AHOLD
XXX
3
A
B original
B modified
7
1
4
EADS
Ignored
5
HITM
10
9
6
ADS
11
BLAST
8
BRDY
B
Data
B+4
B+8
B+12
A
Note:
The circled numbers in this figure represent the steps in section 4.8.7.1.
Figure 14. Write Cycle Reordering Due to Buffering
Step 3 The next write of the processor hits the cache
and the line is non-shared. Therefore, data B is
written into the cache. The cache line transits
to the modified state.
Step 4 In the same clock cycle, a snoop request to the
same address where data B resides is started
because EADS = 0. The snoop hits a modified
line. EADS is ignored due to the hit of a modified
line, but is detected again as early as in step 10.
Step 5 Two clock cycles after EADS asserts, HITM becomes valid.
Step 6 Because the processor-initiated access cannot
be finished (AHOLD is still 1), the BIU gives
priority to a write-back access that does not require the use of the address bus. Therefore, in
the clock cycle, the cache starts the write-back
sequence indicated by ADS = 0 and W/R = 0.
Step 7 During the write-back sequence, AHOLD is
deasserted.
Step 8 The write-back access is finished when BLAST
and BRDY transition to 0.
Step 10 In the same clock cycle, the snooping cache
drives HITM back to 1.
Step 11 The write of data A is finished if BRDY transitions to 0 (BLAST = 0), because it is a single
word.
The software write sequence was first data A and then
data B. But on the external bus the data appear first as
data B and then data A. The order of writes is changed.
In most cases, it is unnecessary to strictly maintain the
ordering of writes. However, some cases (for example,
writing to hardware control registers) require writes to
be observed externally in the same order as programmed. There are two options to ensure serialization
of writes, both of which drive the cache to Write-through
mode:
1. Set the PWT bit in the page table entries.
2. Drive the WB/WT signal Low when accessing these
memory locations.
Option 1 is an operating-system-level solution not directly implemented by user-level code. Option 2, the
hardware solution, is implemented at the system level.
Step 9 After the last write-back access, the BIU starts
writing data A from the write buffers. This is
indicated by ADS = 0 and W/R = 0.
Am5X86 Microprocessor
31
AMD
4.8.7.2
PRELIMINARY
BOFF Write-Back Arbitration
Implementation
4.8.10 Snooping Characteristics During a Cache
Line Fill
The use of BOFF to perform snooping of the on-chip
cache is used in systems where more than one cacheable bus master resides on the microprocessor bus. The
BOFF signal forces the microprocessor to relinquish the
bus in the following clock cycle, regardless of the type
of bus cycle it was performing at the time. Consequently,
the use of BOFF as a bus arbitrator should be implemented with care to avoid system problems.
4.8.8
BOFF Design Considerations
The use of BOFF as a bus arbitration control mechanism
is immediate. BOFF forces the microprocessor to abort
an access in the following clock cycle after it is asserted.
The following design issues must be considered.
4.8.8.1
Cache Line Fills
The microprocessor aborts a cache line fill during a burst
read if BOFF is asserted during the access. Upon regaining the bus, the read access commences where it
left off when BOFF was recognized. External buffers
should take this cycle continuation into consideration if
BOFF is allowed to abort burst read cycles.
4.8.8.2
Cache Line Copy-Backs
Similar to the burst read, the burst write also can be
aborted at any time with the BOFF signal. Upon regaining access to the bus, the write continues from where it
was aborted. External buffers and control logic should
take into consideration the necessary control, if any, for
burst write continuations.
4.8.8.3
Locked Accesses
Locked bus cycles occur in various forms. Locked accesses occur during read-modify-write operations, interrupt acknowledges, and page table updates.
Although asserting BOFF during a locked cycle is permitted, extreme care should be taken to ensure data
coherency for semaphore updates and proper data ordering.
4.8.9
BOFF During Write-Back
If BOFF is asserted during a write-back, the processor
performing the write-back goes off the bus in the next
clock cycle. If BOFF is released, the processor restarts
that write-back access from the point at which it was
aborted. The behavior is identical to the normal BOFF
case that includes the abort and restart behavior.
32
The microprocessor takes responsibility for responding
to snoop cycles for a cache line only during the time that
the line is actually in the cache or in a copy-back buffer.
There are times during the cache line fill cycle and during
the cache replacement cycle when the line is “in transit”
and snooping responsibility must be taken by other system components.
The following cases apply if snooping is invoked via
AHOLD, and neither HOLD nor BOFF is asserted.
■ System designers should consider the possibility
that a snooping cycle may arrive at the same time
as a cache line fill or replacement for the same address. If a snooping cycle arrives at the same time
as a cache line fill with the same address, the CPU
uses the cache line fill, but does not place it in the
cache.
■ If a snooping cycle occurs at the same time as a
cache line fill with a different address, the cache line
fill is placed into the cache unless EADS is recognized before the first BRDY but after ADS is asserted, or EADS is recognized on the last BRDY of the
cache line fill. In these cases, the line is not placed
into the cache.
4.8.11 Snooping Characteristics During a
Copy-Back
If a copy-back is occurring because of a cache line replacement, the address being replaced can be matched
by a snoop until assertion of the last BRDY of the copyback. This is when the modified line resides in the copyback buffer. An EADS as late as two clocks before the
last BRDY can cause HITM to be asserted.
Figure 15 illustrates the microprocessor relinquishing
responsibility of recognizing snoops for a line that is
copied back. It shows the latest EADS assertion that
can cause HITM assertion. HITM remains active for only
one clock period in that example. HITM remains active
through the last BRDY of the corresponding write-back;
in that case, the write-back has already completed. This
is the latest point where snooping can start, because
two clock cycles later, the final BRDY of the write-back
is applied.
If a snoop cycle hits the copy-back address after the first
BRDY of the copy-back and ADS has been issued, the
microprocessor asserts HITM. Keep in mind that the
write-back was initiated due to a read miss and not due
to a snoop to a modified line. In the second case, no
snooping is recognized if a modified line is detected.
Am5X86 Microprocessor
PRELIMINARY
AMD
CLK
ADR
S
n
Address B
AHOLD
EADS
CACHE
HITM
ADS
BRDY
BLAST
Figure 15. Latest Snooping of Copy-Back
4.9
Cache Invalidation and Flushing in
Write-Back Mode
The Am5X86 microprocessor family supports cache invalidation and flushing, much like the Am486 microprocessor Write-through mode. However, the addition of
the write-back cache adds some complexity.
4.9.1
Cache Invalidation through Software
To invalidate the on-chip cache, the Am5X86 microprocessor family uses the same instructions as the Am486
microprocessor family. The two invalidation instructions, INVD and WBINVD, while similar, are slightly different for use in the write-back environment.
The WBINVD instruction first performs a write-back of
the modified data in the cache to external memory. Then
it invalidates the cache, followed by two special bus
cycles. The INVD instruction only invalidates the cache,
regardless of whether modified data exists, and follows
with a special bus cycle. The utmost care should be
taken when executing the INVD instruction to ensure
memory coherency. Otherwise, modified data may be
invalidated prior to writing back to main memory. In
Write-back mode, WBINVD requires a minimum of 4100
internal clocks to search the cache for modified data.
Writing back modified data adds to this minimum time.
WBINVD can only be stopped by a RESET.
Two special bus cycles follow the write-back of modified
data upon execution of the WBINVD instruction: first the
write-back, and then the flush special bus cycle. The
INVD operates identically to the standard 486 microprocessor family in that the flush special bus cycle is gen-
erated when the on-chip cache is invalidated. Table 7
specifies the special bus cycle states for the instructions
WBINVD and INVD.
Table 7. WBINVD/INVD Special Bus Cycles
A32–A2
M/IO D/C W/R BE3 BE2 BE1 BE0 Bus Cycle
0000 0000 h
0
0
1
0
1
1
1
Write-back1
0000 0000 h
0
0
1
1
1
0
1
Flush1, 2
Notes:
1. WBINVD generates first write-back, then flush.
2. INVD generates only flush.
4.9.2
Cache Invalidation through Hardware
The other mechanism for cache invalidation is the
FLUSH pin. The FLUSH pin operates similarly to the
WBINVD command, writing back modified cache lines
to main memory. After the entire cache has copied back
all the modified data, the microprocessor generates two
special bus cycles. These special bus cycles signal to
the external caches that the microprocessor on-chip
cache has completed its copy-back and that the second
level cache may begin its copy-back to memory, if so
required.
Two flush acknowledge cycles are generated after the
FLUSH pin is asserted and the modified data in the
cache is written back. As with the WBINVD instruction,
in Write-back mode, a flush requires a minimum of 4100
internal clocks to test the cache for modified data. Writing back modified data adds to this minimum time. The
flush operation can only be stopped by a RESET. Table
8 shows the special flush bus cycle configuration.
Am5X86 Microprocessor
33
PRELIMINARY
AMD
Table 8. FLUSH Special Bus Cycles
A32–A2
M/IO D/C W/R BE3 BE2 BE1 BE0 Bus Cycle
0000 0001h
0
0
1
0
1
1
1
First Flush
Acknowledge
0000 0001h
0
0
1
1
1
0
1
Second
Flush
Acknowledge
4.9.3
Snooping During Cache Flushing
As with snooping during normal operation, snooping is
permitted during a cache flush, whether initiated by the
FLUSH pin or WBINVD instruction. After completion of
the snoop, and write-back, if needed, the microprocessor completes the copy-back of modified cache lines.
line write-backs and copy-backs. Standard write operations are still supported. Burst writes are always four
32-bit words and start at the beginning of a cache line
address of 0 for the starting access. The timing of the
BLAST and BRDY signals is identical to the burst read.
Figure 16 shows a burst write access. (See Figure 17
and Figure 18 for burst read and burst write access with
BOFF asserted.) In addition to using BLAST, the
CACHE signal indicates burstable cycles.
CACHE is a cycle definition pin used when in Write-back
mode (CACHE floats in Write-through mode). For processor-initiated cycles, the signal indicates:
■
For a read cycle, the internal cacheability of the cycle
■
For a write cycle, a burst write-back or copy-back, if
KEN is asserted (for linefills).
4.10 Burst Write
The Am5X86 microprocessor improves system performance by implementing a burst write feature for cache
CLK
ADR
XX0
XX4
XX8
XXC
M/IO
W/R
CACHE
ADS
BLAST
BRDY
XX0
Data
XX4
XX8
XXC
Figure 16. Burst Write
CLK
ADR
XX0
XX4
XX4
XX8
XXC
XX8
XXC
M/IO
W/R
CACHE
ADS
BLAST
BRDY
BOFF
Data
to CPU
XX0
XX4
don’t care
XX4
Figure 17. Burst Read with BOFF Assertion
34
Am5X86 Microprocessor
PRELIMINARY
AMD
CLK
ADR
XX0
XX4
XX4
XX8
XXC
XX8
XXC
M/IO
W/R
CACHE
ADS
BLAST
BRDY
BOFF
Data
from CPU
XX0
XX4
XX4
Figure 18. Burst Write with BOFF Assertion
CACHE is asserted for cacheable reads, cacheable
code fetches, and write-backs/copy-backs. CACHE is
deasserted for non-cacheable reads, translation lookaside buffer (TLB) replacements, locked cycles (except
for write-back cycles generated by an external snoop
operation that interrupts a locked read/modify/write sequence), I/O cycles, special cycles, and write-throughs.
CACHE is driven to its valid level in the same clock as
the assertion of ADS and remains valid until the next
RDY or BRDY assertion. The CACHE output pin floats
one clock after BOFF is asserted. Additionally, the signal
floats when HLDA is asserted.
The following steps describe the burst write sequence:
1. The access is started by asserting: ADS = 0, M/IO
= 1, W/R = 1, CACHE = 0. The address offset always
is 0, so the burst write always starts on a cache line
boundary. CACHE transitions High (inactive) after
the first BRDY.
2. In the second clock cycle, BLAST is 1 to indicate
that the burst is not finished.
3. The burst write access is finished when BLAST is
0 and BRDY is 0.
When the RDY signal is returned instead of the BRDY
signal, the Am5X86 microprocessor halts the burst cycle
and proceeds with the standard non-burst cycle.
4.10.1 Locked Accesses
Locked accesses of an Am5X86 microprocessor occur
for read-modify-write operations and interrupt acknowledge cycles. The timing is identical to the DX microprocessor, although the state transitions differ from the
standard DX microprocessor. Unlike processor-initiated
accesses, state transitions for locked accesses are seen
by all processors in the system. Any locked read or write
generates an external bus cycle, regardless of cache
hit or miss. During locked cycles, the processor does
not recognize a HOLD request, but it does recognize
BOFF and AHOLD requests.
Locked read operations always read data from the external memory, regardless of whether the data is in the
cache. In the event that the data is in the cache and
unmodified, the cache line is invalidated and an external
read operation is performed. The data from the external
memory is used instead of the data in the cache, thus
ensuring that the locked read is seen by all other bus
masters. If a locked read occurs, the data is in the cache,
and it is modified. The microprocessor first copies back
the data to external memory, invalidates the cache line,
and then performs a read operation to the same location,
thus ensuring that the locked read is seen by all other
bus masters. At no time is the data in the cache used
directly by the microprocessor or a locked read operation before reading the data from external memory.
Since locked cycles always begin with a locked read
access, and locked read cycles always invalidate a
cache line, a locked write cycle to a valid cache line,
either modified or unmodified, does not occur.
4.10.2 Serialization
Locked accesses are totally serialized:
■
All reads and writes in the write buffer that precede
the locked access are issued on the bus before the
first locked access is executed.
■
No read or write after the last locked access is issued
internally or on the bus until the final RDY or BRDY
for all locked accesses.
■
It is possible to get a locked read, write-back, locked
write cycle.
Am5X86 Microprocessor
35
PRELIMINARY
AMD
4.10.3 PLOCK Operation in Write-Through Mode
As described in Section 3, PLOCK is only used in Writethrough mode; the signal is driven inactive in Write-back
mode. In Write-through mode, the processor drives
PLOCK Low to indicate that the current bus transaction
requires more than one bus cycle. The CPU continues
to drive the signal Low until the transaction is completed,
whether or not RDY or BRDY is returned. Refer to the
pin description for additional information.
5
5.1
CLOCK CONTROL
Clock Generation
The Am5X86 CPU is driven by a 1x clock that relies on
phased-lock loop (PLL) to generate the two internal
clock phases: phase one and phase two. The rising edge
of CLK corresponds to the start of phase one (ph1). All
external timing parameters are specified relative to the
rising edge of CLK.
5.2
Stop Clock
The Am5X86 CPU also provides an interrupt mechanism, STPCLK, that allows system hardware to control
the power consumption of the CPU by stopping the internal clock to the CPU core in a sequenced manner.
The first low-power state is called the Stop Grant state.
If the CLK input is completely stopped, the CPU enters
into the Stop Clock state (the lowest power state). When
the CPU recognizes a STPCLK interrupt, the processor:
■ Stops execution on the next instruction boundary
(unless superseded by a higher priority interrupt)
■ Waits for completion of cache flush
■ Stops the pre-fetch unit
■ Empties all internal pipelines and write buffers
■ Generates a Stop Grant bus cycle
■ Stops the internal clock
At this point the CPU is in the Stop Grant state.
The CPU cannot respond to a STPCLK request from an
HLDA state because it cannot empty the write buffers
and, therefore, cannot generate a Stop Grant cycle. The
rising edge of STPCLK signals the CPU to return to
program execution at the instruction following the interrupted instruction. Unlike the normal interrupts (INTR
and NMI), STPCLK does not initiate interrupt acknowledge cycles or interrupt table reads.
5.2.1
External Interrupts in Order of Priority
In Write-through mode, the priority order of external interrupts is:
1.
2.
3.
4.
5.
6.
36
RESET/SRESET
FLUSH
SMI
NMI
INTR
STPCLK
In Write-back mode, the priority order of external interrupts is:
1.
2.
3.
4.
5.
6.
7.
RESET
FLUSH
SRESET
SMI
NMI
INTR
STPCLK
STPCLK is active Low and has an internal pull-up resistor. STPCLK is asynchronous, but setup and hold
times must be met to ensure recognition in any specific
clock. STPCLK must remain active until the Stop Grant
special bus cycle is asserted and the system responds
with either RDY or BRDY. When the CPU enters the
Stop Grant state, the internal pull-up resistor is disabled,
reducing the CPU power consumption. The STPCLK
input must be driven High (not floated) to exit the Stop
Grant state. STPCLK must be deasserted for a minimum
of five clocks after RDY or BRDY is returned active for
the Stop Grant bus cycle before being asserted again.
There are two regions for the Low-power mode supply
current:
1. Low Power: Stop Grant state (fast wake-up, frequencyand voltage-dependent)
2. Lowest Power: Stop Clock state (slow wake-up, voltage-dependent)
5.3
Stop Grant Bus Cycle
The processor drives a special Stop Grant bus cycle to
the bus after recognizing the STPCLK interrupt. This
bus cycle is the same as the HALT cycle used by a
standard Am486 microprocessor, with the exception
that the Stop Grant bus cycle drives the value 0000
0010h on the address pins.
■ M/lO = 0
■ D/C = 0
■ W/R =1
■ Address Bus = 0000 0010h (A4 = 1)
■ BE3–BE0 = 1011
■ Data bus = undefined
The system hardware must acknowledge this cycle by
returning RDY or BRDY, or the processor will not enter
the Stop Grant state (see Figure 19). The latency between a STPCLK request and the Stop Grant bus cycle
depends on the current instruction, the amount of data
in the CPU write buffers, and the system memory performance.
Am5X86 Microprocessor
PRELIMINARY
AMD
.
CLK
STPCLK
t20
t21
Stop Grant Bus cycle
ADDR
RDY
Figure 19. Entering Stop Grant State
5.4
Pin State During Stop Grant
Table 9 shows the pin states during Stop Grant Bus
states. During the Stop Grant state, most output and
input/output signals of the microprocessor maintain the
level they held when entering the Stop Grant state. The
data and data parity signals are tri-stated. In response
to HOLD being driven active during the Stop Grant state
(when the CLK input is running), the CPU generates
HLDA and tri-states all output and input/output signals
that are tri-stated during the HOLD/HLDA state. After
HOLD is deasserted, all signals return to the same state
they were before the HOLD/HLDA sequence.
Table 9. Pin State During Stop Grant Bus State
Signal
Type
State
To achieve the lowest possible power consumption during the Stop Grant state, the system designer must ensure that the input signals with pull-up resistors are not
driven Low, and the input signals with pull-down resistors are not driven High.
All inputs except data bus pins must be driven to the
power supply rails to ensure the lowest possible current
consumption during Stop Grant or Stop Clock modes.
For compatibility, data pins must be driven Low to
achieve the lowest possible power consumption.
5.5
Clock Control State Diagram
Figure 20 shows the state transitions during a Stop
Clock cycle.
5.5.1
Normal State
A3–A2
O
Previous State
A31–A4
I/O
Previous State
D31–D0
I/O
Floated
BE3–BE0
O
Previous State
5.5.2
DP3–DP0
I/O
Floated
W/R, D/C, M/IO, CACHE
O
Previous State
ADS
O
Inactive
LOCK, PLOCK
O
Inactive
BREQ
O
Previous State
The Stop Grant state provides a low-power state that
can be entered by simply asserting the external STPCLK
interrupt pin. When the Stop Grant bus cycle has been
placed on the bus, and either RDY or BRDY is returned,
the CPU is in this state. The CPU returns to the normal
execution state 10–20 clock cycles after STPCLK has
been deasserted.
HLDA
O
As per HOLD
BLAST
O
Previous State
FERR
O
Previous State
PCHK
O
Previous State
SMIACT
O
Previous State
HITM
O
Previous State
This is the normal operating state of the CPU. While in
the normal state, the CLK input can be dynamically
changed within the specified CLK period stability limits.
Stop Grant State
While in the Stop Grant state, the pull-up resistors on
STPCLK and UP are disabled internally. The system
must continue to drive these inputs to the state they
were in immediately before the CPU entered the Stop
Grant State. For minimum CPU power consumption, all
other input pins should be driven to their inactive level
while the CPU is in the Stop Grant state.
Am5X86 Microprocessor
37
PRELIMINARY
AMD
(valid for Write-back mode only)
Figure 20. Stop Clock State Machine
CLK
STPCLK
Sampled
STPCLK
t20
t21
NMI
A
SMI
Note: A = Earliest time at which NMI or SMI is recognized.
Figure 21. Recognition of Inputs when Exiting Stop Grant State
A RESET or SRESET brings the CPU from the Stop
Grant state to the Normal state. The CPU recognizes
the inputs required for cache invalidations (HOLD,
AHOLD, BOFF, and EADS) as explained later. The CPU
does not recognize any other inputs while in the Stop
Grant state. Input signals to the CPU are not recognized
until 1 clock after STPCLK is deasserted (see Figure 21).
38
While in the Stop Grant state, the CPU does not recognize transitions on the interrupt signals (SMI, NMI, and
INTR). Driving an active edge on either SMI or NMI does
not guarantee recognition and service of the interrupt
request following exit from the Stop Grant state. However, if one of the interrupt signals (SMI, NMI, or INTR)
is driven active while the CPU is in the Stop Grant state,
and held active for at least one CLK after STPCLK is
deasserted, the corresponding interrupt will be serviced.
Am5X86 Microprocessor
PRELIMINARY
AMD
The Am5X86 CPU product family requires INTR to be
held active until the CPU issues an interrupt acknowledge cycle to guarantee recognition. This condition also
applies to the existing Am486 CPUs.
tioning active until the completion of the write-back. It
then powers down and returns to the previous state. The
CPU does not generate a bus cycle when it returns to
the previous state.
In the Stop Grant state, the system can stop or change
the CLK input. When the clock stops, the CPU enters
the Stop Clock state. The CPU returns to the Stop Grant
state immediately when the CLK input is restarted. You
must hold the STPCLK input Low until a stabilized frequency has been maintained for at least 1 ms to ensure
that the PLL has had sufficient time to stabilize.
5.5.6
The CPU generates a Stop Grant bus cycle when entering the state from the Normal or the Auto HALT Power
Down state. When the CPU enters the Stop Grant state
from the Stop Clock state or the Stop Clock Snoop state,
the CPU does not generate a Stop Grant bus cycle.
5.5.3
Stop Clock State
Stop Clock state is entered from the Stop Grant state
by stopping the CLK input (either logic High or logic
Low). None of the CPU input signals should change
state while the CLK input is stopped. Any transition on
an input signal (except INTR) before the CPU has returned to the Stop Grant state may result in unpredictable behavior. If INTR goes active while the CLK input
is stopped, and stays active until the CPU issues an
interrupt acknowledge bus cycle, it is serviced in the
normal manner. System design must ensure the CPU
is in the correct state prior to asserting cache invalidation
or interrupt signals to the CPU.
5.5.4
Auto Halt Power Down State
A HALT instruction causes the CPU to enter the Auto
HALT Power Down state. The CPU issues a normal
HALT bus cycle, and only transitions to the Normal state
when INTR, NMI, SMI, RESET, or SRESET occurs.
The system can generate a STPCLK while the CPU is
in the Auto HALT Power Down state. The CPU generates a Stop Grant bus cycle when it enters the Stop
Grant state from the HALT state. When the system deasserts the STPCLK interrupt, the CPU returns execution
to the HALT state. The CPU generates a new HALT bus
cycle when it reenters the HALT state from the Stop
Grant state.
5.5.5
Stop Clock Snoop State
(Cache Invalidations)
When the CPU is in the Stop Grant state or the Auto
HALT Power Down state, the CPU recognizes HOLD,
AHOLD, BOFF, and EADS for cache invalidation. When
the system asserts HOLD, AHOLD, or BOFF, the CPU
floats the bus accordingly. When the system asserts
EADS, the CPU transparently enters Stop Clock Snoop
state and powers up for one full clock to perform the
required cache snoop cycle. If a modified line is
snooped, a cache write-back occurs with HITM transi-
Cache Flush State
When configured in Write-back mode, the processor
recognizes FLUSH for copying back modified cache
lines to memory in the Auto Halt Power Down State or
Normal State. Upon the completion of the cache flush,
the processor returns to its prior state, and regenerates
a special bus cycle, if necessary.
6
SRESET FUNCTION
The Am5X86 microprocessor family supports a soft reset function through the SRESET pin. SRESET forces
the processor to begin execution in a known state. The
processor state after SRESET is the same as after RESET except that the internal caches, CD and NW in CR0,
write buffers, SMBASE registers, and floating-point registers retain the values they had prior to SRESET, and
cache snooping is allowed. The processor starts execution at physical address FFFFFFF0h. SRESET can
be used to help performance for DOS extenders written
for the 80286 processor. SRESET provides a method
to switch from Protected to Real mode while maintaining
the internal caches, CR0, and the FPU state. SRESET
may not be used in place of RESET after power-up.
In Write-back mode, once SRESET is sampled active,
the SRESET sequence begins on the next instruction
boundary (unless FLUSH or RESET occur before that
boundary). When started, the SRESET sequence continues to completion and then normal processor execution resumes, independent of the deassertion of
SRESET. If a snoop hits a modified line during SRESET,
a normal write-back cycle occurs. ADS is asserted to
drive the bus cycles even if SRESET is not deasserted.
7
7.1
SYSTEM MANAGEMENT MODE
Overview
The Am5X86 microprocessor supports four modes: Real, Virtual, Protected, and System Management mode
(SMM). As an operating mode, SMM has a distinct processor environment, interface, and hardware/software
features. SMM lets the system designer add new software-controlled features to the computer products that
always operate transparent to the operating system
(OS) and software applications. SMM is intended for
use only by system firmware, not by applications software or general purpose systems software.
The SMM architectural extension consists of the following elements:
■ System Management Interrupt (SMI) hardware in-
terface
Am5X86 Microprocessor
39
AMD
■ Dedicated and secure memory space (SMRAM) for
SMI handler code and CPU state (context) data with
a status signal for the system to decode access to
that memory space, SMIACT
■ Resume (RSM) instruction, for exiting SMM
■ Special features, such as I/O Restart and I/O instruction information, for transparent power management
of I/O peripherals, and Auto HALT Restart
7.2
Terminology
context normally consists of the CPU registers that
fully represent the processor state.
■ Context Switch: A context switch is the process of
either saving or restoring the context. The SMM discussion refers to the context switch as the process
of saving/restoring the context while invoking/exiting
SMM, respectively.
■ SMSAVE: A mechanism that saves and restores all
internal registers to and from SMRAM.
The following terms are used throughout the discussion
of System Management mode.
7.3
■ SMM: System Management mode. The operating
The system interrupts the normal program execution
and invokes SMM by generating a System Management
Interrupt (SMI) to the CPU. The CPU services the SMI
by executing the following sequence (see Figure 22).
environment that the processor (system) enters
when servicing a System Management Interrupt.
■ SMI: System Management Interrupt. This is the trig-
ger mechanism for the SMM interface. When SMI is
asserted (SMI pin asserted Low) it causes the processor to invoke SMM. The SMI pin is the only
means of entering SMM.
■ SMI handler: System Management mode handler.
This is the code that is executed when the processor
is in SMM. Example applications that this code might
implement are a power management control or a
system control function.
■ RSM: Resume instruction. This instruction is used
by the SMI handler to exit the SMM and return to the
interrupted OS or application process.
■ SMRAM: This is the physical memory dedicated to
SMM. The SMI handler code and related data reside
in this memory. The processor also uses this memory to store its context before executing the SMI handler. The operating system and applications should
not have access to this memory space.
■ SMBASE: This is a control register that contains the
base address that defines the SMRAM space.
■ Context: This term refers to the processor state. The
SMM discussion refers to the context, or processor
state, just before the processor invokes SMM. The
System Management Interrupt
Processing
1. The CPU asserts the SMIACT signal, instructing the
system to enable the SMRAM.
2. The CPU saves its state (internal register) to SMRAM. It starts at the SMBASE relative address location (see Section 7.3.3), and proceeds downward
in a stack-like fashion.
3. The CPU switches to the SMM processor environment (an external pseudo-real mode).
4. The CPU then jumps to the absolute address of
SMBASE + 8000h in SMRAM to execute the SMI
handler. This SMI handler performs the system
management activities.
Note: If the SMRAM shares the same physical address
location with part of the system RAM, it is “overlaid”
SMRAM. To preserve cache consistency and correct
SMM operation in systems using overlaid SMRAM, the
cache must be flushed via the FLUSH pin when entering
SMM.
5. The SMI handler then executes the RSM instruction
which restores the CPU’s context from SMRAM,
deasserts the SMIACT signal, and then returns control to the previously interrupted program execution.
SMI
Instr
Instr
Instr
Instr
#1
#2
#4
State Save
SMI Handler
RSM
State Restore
SMI
SMIACT
Figure 22. Basic SMI Interrupt Service
40
Instr
#3
Am5X86 Microprocessor
#5
PRELIMINARY
SMIACT
CPU
SMI
}
SMI Interface
Figure 23. Basic SMI Hardware Interface
For uses such as fast enabling of external I/O devices,
the SMSAVE mode permits the restarting of the I/O instructions and the HALT instruction. This is accomplished through I/O Trap Restart and Halt/Auto HALT
Restart slots. Only I/O and HALT opcodes are restartable. Attempts to restart any other opcode may result
in unpredictable behavior.
The System Management Interrupt hardware interface
consists of the SMI request input and the SMIACT output
used by the system to decode the SMRAM (see Figure
23).
7.3.1
System Management Interrupt Processing
SMI is a falling-edge-triggered, non-maskable interrupt
request signal. SMI is an asynchronous signal, but setup
and hold times must be met to guarantee recognition in
a specific clock. The SMI input does not have to remain
active until the interrupt is actually serviced. The SMI
input needs to remain active for only a single clock if the
required setup and hold times are met. SMI also works
correctly if it is held active for an arbitrary number of
clocks (see Figure 24).
The SMI input must be held inactive for at least four
clocks after it is asserted to reset the edge-triggered
logic. A subsequent SMI may not be recognized if the
SMI input is not held inactive for at least four clocks after
being asserted. SMI, like NMI, is not affected by the IF
bit in the EFLAGS register and is recognized on an instruction boundary. SMI does not break locked bus cycles. SMI has a higher priority than NMI and is not
masked during an NMI. After SMI is recognized, the SMI
signal is masked internally until the RSM instruction is
executed and the interrupt service routine is complete.
AMD
Masking SMI prevents recursive calls. If another SMI
occurs while SMI is masked, the pending SMI is recognized and executed on the next instruction boundary
after the current SMI completes. This instruction boundary occurs before execution of the next instruction in the
interrupted application code, resulting in back-to-back
SMI handlers. Only one SMI signal can be pending while
SMI is masked. The SMI signal is synchronized internally and must be asserted at least three clock cycles
prior to asserting the RDY signal to guarantee recognition on a specific instruction boundary. This is important
for servicing an I/O trap with an SMI handler.
7.3.2
SMI Active (SMIACT)
SMIACT indicates that the CPU is operating in SMM.
The CPU asserts SMIACT in response to an SMI interrupt request on the SMI pin. SMIACT is driven active
after the CPU has completed all pending write cycles
(including emptying the write buffers), and before the
first access to SMRAM when the CPU saves (writes) its
state (or context) to SMRAM. SMIACT remains active
until the last access to SMRAM when the CPU restores
(reads) its state from SMRAM. The SMIACT signal does
not float in response to HOLD. The SMIACT signal is
used by the system logic to decode SMRAM. The number of clocks required to complete the SMM state save
and restore is dependent on system memory performance. The values shown in Figure 25 assume 0 waitstate memory writes (2 clock cycles), 2–1–1–1 burst
read cycles, and 0 wait-state non-burst reads (two clock
cycles). Additionally, it is assumed that the data read
during the SMM state restore sequence is not cacheable. The minimum time required to enter a SMSAVE
SMI handler routine for the CPU (from the completion
of the interrupted instruction) is given by:
Latency to start of SMl handler = A + B + C = 161 clocks
and the minimum time required to return to the interrupted application (following the final SMM instruction before RSM) is given by:
Latency to continue application = E + F + G = 258 clocks
CLK
CLK2
SMI Sampled
SMI
tsu
thd
RDY
Figure 24. SMI Timing for Servicing an I/O Trap
Am5X86 Microprocessor
41
PRELIMINARY
AMD
T1
T2
CLK
CLK2
G
B
SMI
ADS
RDY
SMIACT
A
Normal State
A: Last RDY from non-SMM transfer to SMIACT assertion
B: SMIACT assertion to first ADS for SMM state save
C: SMM state save (dependent on memory performance)
D: SMI handler
E: SMM state restore (dependent on memory performance)
F: Last RDY from SMM transfer to deassertion of SMIACT
G: SMIACT deassertion of first non-SMM ADS
C
D
State
Save
E
SMM
Handler
F
State
Restore
Normal
State
Clock-Tripled CPU
Clock-Quadrupled CPU
2 CLKs minimum
15 CLKs minimum
100 CLKs
User-determined
180 CLKs
2 CLKs minimum
20 CLKs minimum
2 CLKs minimum
10 CLKs minimum
70 CLKs
User-determined
120 CLKs
2 CLKs minimum
20 CLKs minimum
Figure 25. SMIACT Timing
7.3.3
SMRAM
The CPU uses the SMRAM space for state save and
state restore operations during an SMI. The SMI handler, which also resides in SMRAM, uses the SMRAM
space to store code, data, and stacks. In addition, the
SMI handler can use the SMRAM for system management information such as the system configuration, configuration of a powered-down device, and system
designer-specific information.
Note: Access to SMRAM is through the CPU internal
cache. To ensure cache consistency and correct operation, always assert the FLUSH pin in the same clock
as SMI for systems using overlaid SMRAM.
The CPU asserts SMIACT to indicate to the memory
controller that it is operating in System Management
mode. The system logic should ensure that only the
CPU and SMI handler have access to this area. Alternate bus masters or DMA devices trying to access the
SMRAM space when SMIACT is active should be directed to system RAM in the respective area. The system logic is minimally required to decode the physical
memory address range 38000h–3FFFFh as SMRAM
area. The CPU saves its state to the state save area
42
from 3FFFFh downward to 3FE00h. After saving its
state, the CPU jumps to the address location 38000h to
begin executing the SMI handler. The system logic can
choose to decode a larger area of SMRAM as needed.
The size of this SMRAM can be between 32 Kbytes and
4 Gbytes.The system logic should provide a manual
method for switching the SMRAM into system memory
space when the CPU is not in SMM. This enables initialization of the SMRAM space (i.e., loading SMI handler) before executing the SMI handler during SMM (see
Figure 26).
System memory
accesses redirected
to SMRAM
CPU
accesses to
system
address
space used
for loading
SMRAM
SMRAM
System memory
accesses not
redirected to SMRAM
Normal
Memory
Space
Figure 26. Redirecting System Memory
Address to SMRAM
Am5X86 Microprocessor
PRELIMINARY
7.3.4
SMRAM State Save Map
When SMI is recognized on an instruction boundary, the
CPU core first sets the SMIACT signal Low, indicating
to the system logic that accesses are now being made
to the system-defined SMRAM areas. The CPU then
writes its state to the state save area in the SMRAM.
The state save area starts at SMBASE + [8000h +
7FFFh]. The default CS Base is 30000h; therefore, the
default state save area is at 3FFFFh. In this case, the
CS Base is also referred to as the SMBASE.
Table 10. SMRAM State Save Map
Register
Offset*
Register
Writable?
7FFCh
7FF8h
7FF4h
7FF0h
7FECh
7FE8h
7FE4h
7FE0h
7FDCh
7FD8h
7FD4h
7FD0h
7FCCh
7FC8h
7FC4h
7FC0h
7FBCh
7FB8h
7FB4h
7FB0h
7FACh
7FA8h
7FA7h–7F98h
7F94h
7F93h–7F8Ch
7F88h
7F87h–7F08h
7F04h
7F02h
7F00h
7EFCh
7EF8h
7EF7h–7E00h
CRO
CR3
EFLAGS
EIP
EDI
ESI
EBP
ESP
EBX
EDX
ECX
EAX
DR6
DR7
TR*
LDTR*
GS*
FS*
DS*
SS*
CS*
ES*
Reserved
IDT Base
Reserved
GDT Base
Reserved
I/O Trap Word
Halt Auto Restart
I/O Trap Restart
SMM Revision Identifier
State Dump Base
Reserved
No
No
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
Yes
Yes
Yes
Yes
No
Note:
*Upper 2 bytes are not modified.
AMD
If the SMBASE relocation feature is enabled, the SMRAM addresses can change. The following formula is
used to determine the relocated addresses where the
context is saved: SMBASE + [8000h + Register Offset],
where the default initial SMBASE is 30000h and the
Register Offset is listed in Table 10. Reserved spaces
are for new registers in future CPUs. Some registers in
the SMRAM state save area may be read and changed
by the SMI handler, with the changed values restored
to the processor register by the RSM instruction. Some
register images are read-only, and must not be modified.
(Modifying these registers results in unpredictable behavior.) The values stored in the “reserved” areas may
change in future CPUs. An SMI handler should not rely
on values stored in a reserved area.
The following registers are written out during SMSAVE
mode to the RESERVED memory locations (7FA7h–
7F98h, 7F93h–7F8Ch, and 7F87h–7F08h), but are not
visible to the system software programmer:
■ DR3–DR0
■ CR2
■ CS, DS, ES, FS, GS, and SS hidden descriptor
■
■
■
■
■
registers
EIP_Previous
GDT Attributes and Limits
IDT Attributes and Limits
LDT Attributes, Base, and Limits
TSS Attributes, Base, and Limits
If an SMI request is issued to power down the CPU, the
values of all reserved locations in the SMM state save
area must be saved to non-volatile memory.
The following registers are not automatically saved and
restored by SMI and RSM:
■ TR7–TR3
■ FPU registers:
—
—
—
—
—
—
—
STn
FCS
FSW
Tag Word
FP instruction pointer
FP opcode
Operand pointer
Note: You can save the FPU state by using an FSAVE
or FNSAVE instruction.
For all SMI requests except for power down suspend/
resume, these registers do not have to be saved because their contents will not change. During a power
down suspend/resume, however, a resume reset clears
these registers back to their default values. In this case,
the suspend SMI handler should read these registers
directly to save them and restore them during the power
up resume. Anytime the SMI handler changes these
registers in the CPU, it must also save and restore them.
Am5X86 Microprocessor
43
PRELIMINARY
AMD
7.4
Entering System Management Mode
SMM is one of the major operating modes, along with
Protected mode, Real mode, and Virtual mode. Figure
27 shows how the processor can enter SMM from any
of the three modes and then return.
processor enters the shutdown state. This occurs in the
following situations:
■ The value in the State Dump base field is not a
32-Kbyte aligned address
■ A combination of bits in CR0 is illegal: (PG=1 and
PE=0) or (NW=1 and CD=0)
Real
mode
Reset
or
PE=0
Reset
SMI
PE=1
Protected
mode
VM=0
Reset
or
RSM
SMI
RSM
System
Management
mode
VM=1
Virtual
mode
RSM
SMI
Figure 27. Transition to and from SMM
The external signal SMI causes the processor to switch
to SMM. The RSM instruction exits SMM. SMM is transparent to applications, programs, and operating systems for the following reasons:
■ The only way to enter SMM is via a type of non-
maskable interrupt triggered by an external signal
■ The processor begins executing SMM code from a
separate address space, referred to earlier as system management RAM (SMRAM)
■ Upon entry into SMM, the processor saves the reg-
ister state of the interrupted program (depending on
the save mode) in a part of SMRAM called the SMM
context save space
■ All interrupts normally handled by the operating sys-
tem or applications are disabled upon SMM entry
■ A special instruction, RSM, restores processor reg-
isters from the SMM context save space and returns
control to the interrupted program
Similar to Real mode, SMM has no privilege levels or
address mapping. SMM programs can execute all I/O
and other system instructions and can address up to 4
Gbytes of memory.
7.5
Exiting System Management Mode
The RSM instruction (opcode 0F AAh) leaves SMM and
returns control to the interrupted program. The RSM
instruction can be executed only in SMM. An attempt to
execute the RSM instruction outside of SMM generates
an invalid opcode exception. When the RSM instruction
is executed and the processor detects invalid state information during the reloading of the save state, the
44
In Shutdown mode, the processor stops executing instructions until an NMI interrupt is received or reset initialization is invoked. The processor generates a
shutdown bus cycle.
Three SMM features can be enabled by writing to control
slots in the SMRAM state save area:
1. Auto HALT Restart. It is possible for the SMI request to interrupt the HALT state. The SMI handler
can tell the RSM instruction to return control to the
HALT instruction or to return control to the instruction following the HALT instruction by appropriately
setting the Auto HALT Restart slot. The default operation is to restart the HALT instruction.
2. I/O Trap Restart. If the SMI was generated on an
I/O access to a powered-down device, the SMI handler can instruct the RSM instruction to re-execute
that I/O instruction by setting the I/O Trap Restart
slot.
3. SMBASE Relocation. The system can relocate the
SMRAM by setting the SMBASE Relocation slot in
the state save area. The RSM instruction sets SMBASE in the processor based on the value in the
SMBASE relocation slot. The SMBASE must be
aligned on 32-Kbyte boundaries.
A RESET also causes execution to exit from SMM.
7.6
Processor Environment
When an SMI signal is recognized on an instruction execution boundary, the processor waits for all stores to
complete, including emptying the write buffers. The final
write cycle is complete when the system returns RDY
or BRDY. The processor then drives SMIACT active,
saves its register state to SMRAM space, and begins to
execute the SMI handler.
SMI has greater priority than debug exceptions and external interrupts. This means that if more than one of
these conditions occur at an instruction boundary, only
the SMI processing occurs. Subsequent SMI requests
are not acknowledged while the processor is in SMM.
The first SMI request that occurs while the processor is
in SMM is latched, and serviced when the processor
exits SMM with the RSM instruction. Only one SMI signal
is latched by the CPU while it is in SMM. When the CPU
invokes SMM, the CPU core registers are initialized as
indicated in Table 11.
Am5X86 Microprocessor
PRELIMINARY
Table 11. SMM Initial CPU Core Register Settings
AMD
Table 12. Segment Register Initial States
Segment
Selector
Register
Base
Register
SMM Initial State
General Purpose
Registers
Unmodified
CS2
3000h
30000h
EFLAGS
0000 0002h
DS
0000h
00000000h
CR0
Bits 0, 2, 3, and 31 cleared (PE, EM, TS,
and PG); rest unmodified
ES
0000h
00000000h
DR6
Unpredictable state
FS
0000h
00000000h
DR7
0000 0400h
GS
0000h
00000000h
GDTR, LDTR,
IDTR, TSSR
Unmodified
SS
0000h
00000000h
EIP
0000 8000h
Attributes
16-bit,
expand up
16-bit,
expand up
16-bit,
expand up
16-bit,
expand up
16-bit,
expand up
16-bit,
expand up
Limit1
4 Gbytes
4 Gbytes
4 Gbytes
4 Gbytes
4 Gbytes
4 Gbytes
Notes:
Note:
Interrupts from INT and NMI are disabled on SMM entry.
The following is a summary of the key features in the
SMM environment:
■ Real mode style address calculation
■ 4-Gbyte limit checking
■ IF flag is cleared
■ NMI is disabled
■ TF flag in EFLAGS is cleared; single step traps are
■
■
■
■
disabled
DR7 is cleared; debug traps are disabled
The RSM instruction no longer generates an invalid
opcode error
Default 16-bit opcode, register, and stack use
All bus arbitration (HOLD, AHOLD, BOFF) inputs,
and bus sizing (BS8, BS16) inputs operate normally
while the CPU is in SMM
7.7
Executing System Management
Mode Handler
The processor begins execution of the SMI handler at
offset 8000h in the CS segment. The CS Base is initially
30000h, as shown in Table 12.
1. The segment limit check is 4 Gbytes instead of the usual
64 Kbytes.
2. The Selector value for CS remains at 3000h even if the
SMBASE is changed.
The CS Base can be changed using the SMM Base
relocation feature. When the SMI handler is invoked,
the CPU’s PE and PG bits in CR0 are reset to 0. The
processor is in an environment similar to Real mode,
but without the 64-Kbyte limit checking. However, the
default operand size and the default address size are
set to 16 bits. The EM bit is cleared so that no exceptions
are generated. (If the SMM was entered from Protected
mode, the Real mode interrupt and exception support
is not available.) The SMI handler should not use floating-point unit instructions until the FPU is properly detected (within the SMI handler) and the exception
support is initialized.
Because the segment bases (other than CS) are cleared
to 0 and the segment limits are set to 4 Gbytes, the
address space may be treated as a single flat 4-Gbyte
linear space that is unsegmented. The CPU is still in
Real mode and when a segment selector is loaded with
a 16-bit value, that value is then shifted left by 4 bits and
loaded into the segment base cache.
In SMM, the CPU can access or jump anywhere within
the 4-Gbyte logical address space. The CPU can also
indirectly access or perform a near jump anywhere within the 4-Gbyte logical address space.
Am5X86 Microprocessor
45
PRELIMINARY
AMD
7.7.1
Exceptions and Interrupts with System
Management Mode
When the CPU enters SMM, it disables INTR interrupts,
debug, and single step traps by clearing the EFLAGS,
DR6, and DR7 registers. This prevents a debug application from accidentally breaking into an SMI handler.
This is necessary because the SMI handler operates
from a distinct address space (SMRAM) and the debug
trap does not represent the normal system memory
space.
For an SMI handler to use the debug trap feature of the
processor to debug SMI handler code, it must first ensure that an SMM-compliant debug handler is available.
The SMI handler must also ensure DR3–DR0 is saved
to be restored later. The debug registers DR3–DR0 and
DR7 must then be initialized with the appropriate values.
For the processor to use the single step feature of the
processor, it must ensure that an SMM-compliant single
step handler is available and then set the trap flag in the
EFLAGS register. If the system design requires the processor to respond to hardware INTR requests while in
SMM, it must ensure that an SMM-compliant interrupt
handler is available, and then set the interrupt flag in the
EFLAGS register (using the STI instruction). Software
interrupts are not blocked on entry to SMM, and the
system software designer must provide an SMM-compliant interrupt handler before attempting to execute any
software interrupt instructions. Note that in SMM mode,
the interrupt vector table has the same properties and
location as the Real mode vector table.
NMI interrupts are blocked on entry to the SMI handler.
If an NMI request occurs during the SMI handler, it is
latched and serviced after the processor exits SMM.
Only one NMI request is latched during the SMI handler.
If an NMI request is pending when the processor executes the RSM instruction, the NMI is serviced before
the next instruction of the interrupted code sequence.
Although NMI requests are blocked when the CPU enters SMM, they may be enabled through software by
executing an IRET instruction. If the SMI handler requires the use of NMI interrupts, it should invoke a dummy interrupt service routine to execute an IRET
instruction. When an IRET instruction is executed, NMI
interrupt requests are serviced in the same Real mode
manner in which they are handled outside of SMM.
7.7.2
SMM Revisions Identifier
The 32-bit SMM Revision Identifier specifies the version
of SMM and the extensions that are available on the
processor. The fields of the SMM Revision Identifiers
and bit definitions are shown in Table 13 and Table 14.
Bit 17 or 16 indicates whether the feature is supported
(1=supported, 0=not supported). The processor always
reads the SMM Revision Identifier at the time of a restore. The I/O Trap Extension and SMM Base Relocation bits are fixed. The processor writes these bits out
at the time it performs a save state.
Note: Changing the state of the reserved bits may result
in unpredictable processor behavior.
Table 13. SMM Revision Identifier
31–18
Reserved
00000000000000
17
SMM Base
Relocation
16
I/O Trap
Extension
1
1
15–0
SMM Revision Level
0000h
Table 14. SMM Revision Identifier Bit Definitions
Bit Name
Description
Default
State
State at
SMM
Entry
State at
SMM Exit
Notes
SMM Base
Relocation
1=SMM Base Relocation Available
0=SMM Base Relocation
Unavailable
1
1
0
1
0
No Change in State
No Change in State
I/O Trap Extension
1=I/O Trapping Available
0=I/O Trapping Unavailable
1
1
0
1
0
No Change in State
No Change in State
46
Am5X86 Microprocessor
PRELIMINARY
7.7.3
.
Auto HALT Restart
The Auto HALT Restart slot at register offset (word location) 7F02h in SMRAM indicates to the SMI handler
that the SMI interrupted the CPU during a HALT state;
bit 0 of slot 7F02h is set to 1 if the previous instruction
was a HALT (see Figure 28). If the SMI did not interrupt
the CPU in a HALT state, then the SMI microcode sets
bit 0 of the Auto HALT Restart slot to 0. If the previous
instruction was a HALT, the SMI handler can choose to
either set or reset bit 0. If this bit is set to 1, the RSM
microcode execution forces the processor to re-enter
the HALT state. If this bit is set to 0 when the RSM
instruction is executed, the processor continues execution with the instruction just after the interrupted HALT
instruction. If the HALT instruction is restarted, the CPU
will generate a memory access to fetch the HALT instruction (if it is not in the internal cache), and execute
a HALT bus cycle.
15
1
Reserved
AMD
0
Register Offset 7F02h
HALT Auto Restart
Figure 28. Auto HALT Restart Register Offset
Table 15 shows the possible restart configurations. If
the interrupted instruction was not a HALT instruction
(bit 0 is set to 0 in the Auto HALT Restart slot upon SMM
entry), setting bit 0 to 1 will cause unpredictable behavior
when the RSM instruction is executed.
15
0
Register offset 7F00h
I/O instruction restart slot
Figure 29. I/O Instruction Restart Register Offset
When the RSM instruction is executed — if the I/O instruction restart slot contains the value 0FFh — the CPU
automatically re-executes the l/O instruction that the
SMI signal trapped. If the I/O instruction restart slot contains the value 00h when the RSM instruction is executed, then the CPU does not re-execute the I/O instruction.
The CPU automatically initializes the I/O instruction restart slot to 00h during SMM entry. The I/O instruction
restart slot should be written only when the processor
has generated an SMI on an I/O instruction boundary.
Processor operation is unpredictable when the I/O instruction restart slot is set when the processor is servicing an SMI that originated on a non-I/O instruction
boundary.
If the system executes back-to-back SMI requests, the
second SMI handler must not set the I/O instruction restart slot. The second back-to-back SMI signal will not
have the I/O Trap Word set.
7.7.5
I/O Trap Word
The I/O Trap Word contains the address of the I/O access that forced the external chipset to assert SMI,
whether it was a read or write access, and whether the
instruction that caused the access to the I/O address
was a valid I/O instruction. Table 16 shows the layout.
Table 15. HALT Auto Restart Configuration
Value at Value
Entry at Exit
Table 16. I/O Trap Word Configuration
Processor Action on Exit
31–16
15–2
1
0
0
0
Return to next instruction in interrupted
program
I/O Address
0
1
Unpredictable
1
0
Returns to instruction after HALT
Bits 31–16 contain the I/O address that was being accessed at the time SMI became active. Bits 15–2 are
reserved.
1
1
Returns to interrupted HALT instruction
7.7.4
I/O Trap Restart
The I/O instruction restart slot (register offset 7F00h in
SMRAM) gives the SMI handler the option of causing
the RSM instruction to automatically re-execute the interrupted I/O instruction (see Figure 29).
Reserved
Valid I/O Instruction
R/W
If the instruction that caused the I/O trap to occur was
a valid I/O instruction (IN, OUT, INS, OUTS, REP INS,
or REP OUTS), the Valid I/O Instruction bit is set. If it
was not a valid I/O instruction, the bit is saved as a 0.
For REP instructions, the external chip set should return
a valid SMI within the first access.
Bit 0 indicates whether the opcode that was accessing
the I/O location was performing either a read (1) or a
write (0) operation as indicated by the R/W bit.
Am5X86 Microprocessor
47
PRELIMINARY
AMD
If an SMI occurs and it does not trap an I/O instruction,
the contents of the I/O address and R/W bit are unpredictable and should not be used.
7.7.6
SMRAM
SMBASE + 8000h
+ 7FFFh
SMM Base Relocation
SMI Handler Entry Point
The Am5X86 CPU family provides a new control register, SMBASE. The SMRAM address space can be modified by changing the SMBASE register before exiting
an SMI handler routine. SMBASE can be changed to
any 32K-aligned value. (Values that are not 32K-aligned
cause the CPU to enter the shutdown state when executing the RSM instruction.) SMBASE is set to the default value of 30000h on RESET. If SMBASE is changed
by an SMI handler, all subsequent SMI requests initiate
a state save at the new SMBASE.
The SMBASE slot in the SMM state save area indicates
and changes the SMI jump vector location and SMRAM
save area. When bit 17 of the SMM Revision Identifier
is set, then this feature exists and the SMRAM base and
consequently, the jump vector, are as indicated by the
SMM Base slot (see Figure 30). During the execution
of the RSM instruction, the CPU reads this slot and initializes the CPU to use the new SMBASE during the
next SMI. During an SMI, the CPU does its context save
to the new SMRAM area pointed to by the SMBASE,
stores the current SMBASE in the SMM Base slot (offset
7EF8h), and then starts execution of the new jump vector based on the current SMBASE (see Figure 31).
0
31
Start of State Save
Register Offset 7EF8h
SMM Base
Figure 30. SMM Base Slot Offset
SMBASE + 8000h
SMBASE
Figure 31. SRAM Usage
To change the SMRAM base address and SMI jump
vector location, SMI handler modifies the SMBASE slot.
Upon executing an RSM instruction, the processor
reads the SMBASE slot and stores it internally. Upon
recognition of the next SMI request, the processor uses
the new SMBASE slot for the SMRAM dump and SMI
jump vector. If the modified SMBASE slot does not contain a 32-Kbyte aligned value, the RSM microcode causes the CPU to enter the shutdown state.
7.8
SMM System Design Considerations
7.8.1
SMRAM Interface
The hardware designed to control the SMRAM space
must follow these guidelines:
■ Initialize SMRAM space during system boot up. Ini-
tialization must occur before the first SMI occurs.
Initialization of SMRAM space must include installation of an SMI handler and may include installation
of related data structures necessary for particular
SMM applications. The memory controller interfacing SMRAM should provide a means for the initialization code to open the SMRAM space manually.
■ The memory controller must decode a minimum ini-
tial SMRAM address space of 38000h–3FFFFh.
The SMBASE must be a 32-Kbyte aligned, 32-bit integer
that indicates a base address for the SMRAM context
save area and the SMI jump vector. For example, when
the processor first powers up, the range for the SMRAM
area is from 38000h–3FFFFh. The default value for SMBASE is 30000h.
As illustrated in Figure 31, the starting address of the
jump vector is calculated by:
SMBASE + 8000h
■ Alternate bus masters (such as DMA controllers)
must not be able to access SMRAM space. The system should allow only the CPU, either through SMI
or during initialization, to access SMRAM.
■ To implement a 0-V suspend function, the system
must have access to all normal system memory from
within an SMI handler routine. If the SMRAM overlays normal system memory (see Figure 32), there
must be a method to access overlaid system memory independently.
The starting address for the SMRAM state save area is
calculated by:
SMBASE + [8000h + 7FFFh]
When this feature is enabled, the SMRAM register map
is addressed according to the above formula.
48
Am5X86 Microprocessor
PRELIMINARY
SMRAM
Normal
memory
SMRAM
Normal
memory
Overlaid region
Normal
memory
Non-overlaid
(no need to flush
caches)
Overlaid
(caches must
be flushed)
Figure 32. SMRAM Location
The recommended configuration is to use a separate
(non-overlaid) physical address for SMRAM. This nonoverlaid scheme prevents the CPU from improperly accessing the SMRAM or system RAM directly or through
the cache. Figure 33 shows the relative SMM timing for
non-overlaid SMRAM for systems configured in Writethrough mode. For systems configured in Write-back
mode, WB/WT must be driven Low (as shown in Figure
34) to force caching during SMM to be write-through.
Alternately, caching can be disabled during SMM by
deasserting KEN with SMI (as shown in Figure 35).
When the default SMRAM location is used, however,
SMRAM is overlaid with system main memory (at
38000h–3FFFFh). For simplicity, system designers may
want to use this default address, or they may select
another overlaid address range. However, in this case
the system control circuitry must use SMIACT to distinguish between SMRAM and main system memory, and
must restrict SMRAM space access to the CPU only.
To maintain cache coherency and to ensure proper
system operation in systems configured in Writethrough mode, the system must flush both the CPU internal cache and any second level caches in response to
SMIACT going Low. A system that uses cache during
SMM must flush the cache a second time in response
to SMIACT going High (see Figure 36). If KEN is driven
High when FLUSH is asserted, the cache is disabled
and a second flush is not required (see Figure 37). If the
system is configured in Write-back mode, the cache
must be flushed when SMI is asserted and then disabled
(see Figure 38).
7.8.2
Cache Flushes
The CPU does not unconditionally flush its cache before
entering SMM. Therefore, the designer must ensure
that, for systems using overlaid SMRAM, the cache is
flushed upon SMM entry and SMM exit if caching is
enabled.
Note: A cache flush in a system configured in Writeback mode requires a minimum of 4100 internal clocks
to test the cache for modified data, whether invoked by
AMD
the FLUSH pin input or the WBINVD instruction, and
therefore invokes a performance penalty. There is no
flush penalty for systems configured in Write-through
mode.
If the flush at SMM entry is not done, the first SMM read
could hit in a cache that contains normal memory space
code/data instead of the required SMI handler, and the
handler could not be executed. If the cache is not disabled and is not flushed at SMM exit, the normal read
cycles after SMM may hit in a cache that may contain
SMM code/data instead of the normal system memory
contents.
In Write-through mode, assert the FLUSH signal in response to the assertion of SMIACT at SMM entry, and,
if required because the cache is enabled, assert FLUSH
again in response to the deassertion of SMIACT at SMM
exit (see Figure 36 and Figure 37). For systems configured in Write-back mode, assert FLUSH with SMI (see
Figure 38).
Reloading the state registers at the end of SMM restores
cache functionality to its pre-SMM state.
7.8.3
A20M Pin
Systems based on the MS-DOS operating system contain a feature that enables the CPU address bit A20 to
be forced to 0. This limits physical memory to a maximum of 1 Mbyte, and is provided to ensure compatibility
with those programs that relied on the physical address
wraparound functionality of the original IBM PC. The
A20M pin on Am5X86 CPUs provides this function.
When A20M is active, all external bus cycles drive A20
Low, and all internal cache accesses are performed with
A20 Low.
The A20M pin is recognized while the CPU is in SMM.
The functionality of the A20M input must be recognized
in two instances:
1. If the SMI handler needs to access system memory
space above 1 Mbyte (for example, when saving
memory to disk for a 0-V suspend), the A20M pin
must be deasserted before the memory above 1
Mbyte is addressed.
2. If SMRAM has been relocated to address space
above 1 Mbyte, and A20M is active upon entering
SMM, the CPU attempts to access SMRAM at the
relocated address, but with A20 Low. This could
cause the system to crash, because there would be
no valid SMM interrupt handler at the accessed location.
To account for these two situations, the system designer
must ensure that A20M is deasserted on entry to SMM.
A20M must be driven inactive before the first cycle of
the SMM state save, and must be returned to its original
level after the last cycle of the SMM state restore. This
can be done by blocking the assertion of A20M when
SMIACT is active.
Am5X86 Microprocessor
49
PRELIMINARY
AMD
State
Save
SMI Handler
State Resume
Normal
Cycle
SMI
RSM
SMIACT
Figure 33. SMM Timing in Systems Using Non-Overlaid Memory Space
and Write-Through Mode with Caching Enabled During SMM
State
Save
SMI Handler
State Resume
Normal
Cycle
SMI
RSM
SMIACT
WB/WT
Note:
For proper operation of systems configured in Write-back mode when caching during SMM is allowed, force WB/WT Low to
force all caching to be write-through during SMM.
Figure 34. SMM Timing in Systems Using Non-Overlaid Memory Spaces
and Write-Back Mode with Caching Enabled During SMM
State
Save
SMI Handler
State Resume
SMI
RSM
SMIACT
KEN
Figure 35. SMM Timing in Systems Using Non-Overlaid Memory Spaces
and Write-Back Mode with Caching Disabled During SMM
50
Am5X86 Microprocessor
Normal
Cycle
PRELIMINARY
AMD
SMI
Instruction x+1
State
Save
Instruction x
State
Resume
SMI Handler
Normal
Cycle
SMI
RSM
SMIACT
FLUSH
Cache contents
invalidated
Cache contents
invalidated
Figure 36. SMM Timing in Systems Using Overlaid Memory Space and
Write-Through Mode with Caching Enabled During SMM
SMI
Instruction x+1
State
Save
Instruction x
State
Resume
SMI Handler
Normal
Cycle
SMI
RSM
SMIACT
FLUSH
Cache contents
invalidated
KEN
Figure 37. SMM Timing in Systems Using Overlaid Memory Spaces and
Write-Through Mode with Caching Disabled During SMM
Cache Flush State
State
Save
State
Resume
SMI Handler
Normal Cycle
SMI
RSM
SMIACT
KEN
FLUSH
Cache must
be empty
Figure 38. SMM Timing in Systems Using Overlaid Memory Spaces
and Configured in Write-Back Mode
Am5X86 Microprocessor
51
PRELIMINARY
AMD
7.8.4
CPU Reset During SMM
The system designer should take into account the following restrictions while implementing the CPU Reset
logic:
1. When running software written for the 80286 CPU,
a CPU RESET switches the CPU from Protected
mode to Real mode. RESET and SRESET have a
higher priority than SMI. When the CPU is in SMM,
the SRESET to the CPU during SMM should be
blocked until the CPU exits SMM. SRESET must
be blocked beginning from the time when SMI is
driven active. Care should be taken not to block the
global system RESET, which may be necessary to
recover from a system crash.
2. During execution of the RSM instruction to exit
SMM, there is a small time window between the
deassertion of SMIACT and the completion of the
RSM microcode. If a Protected mode to Real mode
SRESET is asserted during this window, it is possible that the SMRAM space will be violated. The
system designer must guarantee that SRESET is
blocked until at least 20 CPU clock cycles after SMIACT has been driven inactive or until the start of a
bus cycle.
3. Any request for a CPU RESET for the purpose of
switching the CPU from Protected mode to Real
mode must be acknowledged after the CPU has
exited SMM. To maintain software transparency,
the system logic must latch any SRESET signals
that are blocked during SMM.
For these reasons, the SRESET signal should be used
for any soft resets, and the RESET signal should be
used for all hard resets.
7.8.5
SMM and Second Level Write Buffers
Before the processor enters SMM, it empties its internal
write buffers. This is to ensure that the data in the write
buffers is written to normal memory space, not SMM
space. When the CPU is ready to begin writing an SMM
state save to SMRAM, it asserts SMIACT. SMIACT may
be driven active by the CPU before the system memory
controller has had an opportunity to empty the second
level write buffers.
To prevent the data from these second level write buffers
from being written to the wrong location, the system
memory controller needs to direct the memory write cycles to either SMM space or normal memory space. This
can be accomplished by saving the status of SMIACT
with the address for each word in the write buffers.
7.8.6
Nested SMI and I/O Restart
Special care must be taken when executing an SMI handler for the purpose of restarting an l/O instruction. When
the CPU executes a Resume (RSM) instruction with the
l/O restart slot set, the restored EIP is modified to point
to the instruction immediately preceding the SMI re52
quest, so that the l/O instruction can be re-executed. If
a new SMI request is received while the CPU is executing an SMI handler, the CPU services this SMI request
before restarting the original I/O instruction. If the I/O
restart slot is set when the CPU executes the RSM instruction for the second SMI handler, the RSM microcode decrements the restored EIP again. EIP then
points to an address different from the originally interrupted instruction, and the CPU begins execution at an
incorrect entry point. To prevent this from occurring, the
SMI handler routine must not set the I/O restart slot
during the second of two consecutive SMI handlers.
7.9
SMM Software Considerations
7.9.1
SMM Code Considerations
The default operand size and the default address size
are 16 bits; however, operand-size override and address-size override prefixes can be used as needed to
directly access data anywhere within the 4-Gbyte logical
address space.
With operand-size override prefixes, the SMI handler
can use jumps, calls, and returns to transfer a control
to any location within the 4-Gbyte space. Note, however,
the following restrictions:
1. Any control transfer that does not have an operandsize override prefix truncates EIP to 16 Low-order bits.
2. Due to the Real mode style of base-address formation,
a long jump or call cannot transfer control segment
with a base address of more than 20 bits (1 Mbyte).
7.9.2
Exception Handling
Upon entry into SMM, external interrupts that require
handlers are disabled (the IF in EFLAGS is cleared).
This is necessary because, while the processor is in
SMM, it is running in a separate memory space. Consequently, the vectors stored in the interrupt descriptor
table (IDT) for the prior mode are not applicable. Before
allowing exception handling (or software interrupts), the
SMM program must initialize new interrupt and exception vectors. The interrupt vector table for SMM has the
same format as for Real mode. Until the interrupt vector
table is correctly initialized, the SMI handler must not
generate an exception (or software interrupt). Even
though hardware interrupts are disabled, exceptions
and software interrupts can still occur. Only a correctly
written SMI handler can prevent internal exceptions.
When new exception vectors are initialized, internal exceptions can be serviced. Restrictions are as follows:
1. Due to the Real mode style of base address formation, an interrupt or exception cannot transfer control to a segment with a base address of more than
20 bits.
2. An interrupt or exception cannot transfer control to
a segment offset of more than 16 bits.
3. If exceptions or interrupts are allowed to occur, only
the Low order 16 bits of the return address are
Am5X86 Microprocessor
PRELIMINARY
8
pushed onto the stack. If the offset of the interrupted
procedure is greater than 64 Kbytes, it is not possible for the interrupt/exception handler to return control to that procedure. (One work-around is to
perform software adjustment of the return address
on the stack.)
If WB/WT meets the necessary setup timing and is sampled Low on the falling edge of RESET, the processor
is placed in Write-through mode and the test register
function is identical to the Am486 microprocessors. If
WB/WT meets the necessary setup timing and is sampled High on the falling edge of RESET, the processor
is placed in Write-back mode and the test registers TR4
and TR5 are modified to support the added write-back
cache functionality. Tables 17 and 18 show the individual bit functions of these registers. Sections 8.1 and 8.2
provide a detailed description of the field functions.
Note: The execution of an IRET instruction enables
Non-Maskable Interrupt (NMI) processing.
7.9.3 Halt during SMM
HALT should not be executed during SMM, unless interrupts have been enabled. Interrupts are disabled on
entry to SMM. INTR and NMI are the only events that
take the CPU out of HALT within SMM.
Relocating SMRAM to an Address above
1 Mbyte
Within SMM (or Real mode), the segment base registers
can be updated only by changing the segment register.
The segment registers contain only 16 bits, which allows
only 20 bits to be used for a segment base address (the
segment register is shifted left 4 bits to determine the
segment base address). If SMRAM is relocated to an
address above 1 Mbyte, the segment registers can no
longer be initialized to point to SMRAM.
Note: TR3 has the same functions in both Write-through
and Write-back modes.These functions are identical to
the TR3 register functions provided by Am486 microprocessors.
8.1
TR4 Definition
This section includes a detailed description of the bit
fields defined for TR4.
These areas can still be accessed by using address
override prefixes to generate an offset to the correct
address. For example, if the SMBASE has been relocated immediately below 16 Mbytes, the DS and ES
registers are still initialized to 0000 0000h. Data in SMRAM can still be accessed by using 32-bit displacement
registers
move esi,OOFFxxxxh
TEST REGISTERS 4 AND 5
MODIFICATIONS
The Cache Test Registers for the Am5X86 microprocessor are the same test registers (TR3, TR4, and TR5)
provided in Am486 microprocessors. TR3 is the cache
test data register. TR4, the cache test status register,
and TR5, the cache test control register, operate together with TR3.
4. The SMBASE Relocation feature affects the way
the CPU returns from an interrupt or exception during an SMI handler.
7.9.4
AMD
Note: Bits listed in Table 17 as Reserved or Not used
are not included in these descriptions.
■ Tag (bits 31–12): Read/Write, always available in
Write-through mode. Available only when EXT=0 in
TR5 in Write-back mode. For a cache write, this is
the tag that specifies the address in memory. On a
cache look-up, this is tag for the selected entry in the
cache.
;64K segment
immediately below 16M
move ax,ds:[esi]
Table 17. Test Register TR4 Bit Descriptions
31
30–29
28
27–26
25–24
EXT = 0
EXT = 1
23–22
21–20
19–16
15–12
11
10
9–7
6–3
2–0
0
Valid
LRU
Valid
(rd)
Not
used
Valid
LRU
Valid
(rd)
Not
used
Tag
Not
used
STn
Rsvd.
ST3
ST2
ST1
ST0
Reserved
Not used
Notes:
1. The values of STn and ST3–ST0 are: 00 = Invalid; 01 = Exclusive; 10 = Modified; 11 = Shared.
2. During a cache look-up, bit 11 is read only and always 0. The bit is read/write otherwise.
Table 18. Test Register TR5 Bit Descriptions
31–20
19
18–17
16
15–12
11–4
3–2
1–0
Not used
Ext
Set State
Reserved
Not used
Index
Entry
Control
Write-Through
Not used
Index
Entry
Notes:
1. Bit 19 in TR5 is EXT. If EXT = 0, TR4 has the standard 486 processor definition for write-through cache.
2. The values of Set State are: 00 = Invalid; 01 = Exclusive; 10 = Modified; 11 = Shared.
Control
Write-Back
Am5X86 Microprocessor
53
AMD
PRELIMINARY
■ STn (bits 30–29): Read Only, available only in Write-
back mode when Ext=1 in TR5. STn returns the status of the set (ST3, ST2, ST1, or ST0) specified by
the TR5 Set State field (bits 18–17) during cache
look-ups. Returned values are:
—
—
—
—
00 = invalid
01 = exclusive
10 = modified
11 = shared
back mode when Ext=1 in TR5. ST3 returns the status of Set 3 during cache look-ups. Returned values
are:
00 = invalid
01 = exclusive
10 = modified
11 = shared
00 = invalid
01 = exclusive
10 = modified
11 = shared
■ ST1 (bits 23–22): Read Only, available only in Write-
back mode when Ext=1 in TR5. ST1 returns the status of Set 1 during cache look-ups. Returned values
are:
back mode when Ext=1 in TR5. ST0 returns the status of Set 0 during cache look-ups. Returned values
are:
Note: Bits listed in Table 18 as Reserved or Not Used
are not included in the descriptions.
■ Ext (bit 19): Read/Write, available only in Write-back
mode. Ext, or extension, determines which bit fields
are defined for TR4: the address TAG field, or the
STn and ST3–ST0 status bit fields. In Write-through
mode, the Ext bit is not accessible. The following
describes the two states of Ext:
— Ext = 0, bits 31–11 of TR4 contain the TAG address
— Ext = 1, bits 30–29 of TR4 contain STn, bits 27–
20 contain ST3–ST0
■ Set State (bits 18–17): Read/Write, available only in
—
—
—
—
00 = invalid
01 = exclusive
10 = modified
11 = shared
■ Index (bits 11–4): Read/Write, independent of write-
00 = invalid
01 = exclusive
10 = modified
11 = shared
through or Write-back mode. Index selects one of
the 256 cache lines.
■ Entry (bits 3–2): Read/Write, independent of write-
■ Valid (bit 10): Read/Write, independent of the Ext bit
in TR5. This is the Valid bit for the accessed entry.
On a cache look-up, Valid is a copy of one of the bits
reported in bits 6–3. On a cache write in Writethrough mode, Valid becomes the new Valid bit for
the selected entry and set. In Write-back mode, writing to the Valid bit has no effect and is ignored; the
54
TR5 Definition
Write-back mode. The Set State field is used to
change the MESI state of the set specified by the
Index and Entry bits. The state is set by writing one
of the following combinations to this field:
00 = invalid
01 = exclusive
10 = modified
11 = shared
■ ST0 (bits 21–20): Read Only, available only in Write-
—
—
—
—
bit in TR5. On a cache look-up, these are the four
Valid bits of the accessed set. In Write-back mode,
these valid bits are set if a cache set is in the exclusive, modified, or shared state. Write operations to
these locations have no effect on the device.
This section includes a detailed description of the bit
fields in the TR5.
back mode when Ext=1 in TR5. ST2 returns the status of Set 2 during cache look-ups. Returned values
are:
—
—
—
—
bit in TR5. On a cache look-up, these are the three
LRU bits of the accessed set. On a cache write,
these bits are ignored; the LRU bits in the cache are
updated by the pseudo-LRU cache replacement algorithm. Write operations to these locations have
no effect on the device.
8.2
■ ST2 (bits 25–24): Read Only, available only in Write-
—
—
—
—
■ LRU (bits 9–7): Read Only, independent of the Ext
■ Valid (bits 6–3): Read Only, independent of the Ext
■ ST3 (bits 27–26): Read Only, available only in Write-
—
—
—
—
Set State bit locations in TR5 are used to set the
Valid bit for the selected entry and set.
through or Write-back mode. Entry selects between
one of the four entries in the set addressed by the
Set Select during a cache read or write. During
cache fill buffer writes or cache read buffer reads,
the value in the Entry field selects one of the four
doublewords in a cache line.
Am5X86 Microprocessor
PRELIMINARY
■ Control (bits 1–0): Read/Write, independent of Write-
through or Write-back mode. The control bits determine which operation to perform. The following is a
definition of the control operations:
— 00 = Write to cache fill buffer, or read from cache
read buffer
— 01 = Perform cache write
— 10 = Perform cache read
— 11 = Flush the cache (mark all entries invalid)
8.3
Using TR4 and TR5 for Cache Testing
The following paragraphs provide examples of testing
the cache using TR4 and TR5.
8.3.1
Example 1: Reading The Cache (Write-back
Mode Only)
1. Disable caching by setting the CD bit in the CR0
register.
2. In TR5, load 0 into the Ext field (bit 19), the required
index into the Index field (bits 10–4), the required
entry value into the Entry field (bits 3–2), and 10 into
the Control field (bits 1–0). Loading the values into
TR5 triggers the cache read. The cache read loads
the TR4 register with the TAG for the read entry,
and the LRU and Valid bits for the entire set that
was read. The cache read loads 128 data bits into
the cache read buffer. The entire buffer can be read
by placing each of the four binary combinations in
the Entry field and setting the Control field in TR5
to 00 (binary). Read each doubleword from the
cache read buffer through TR3.
3. Reading the Set State fields in TR4 during Writeback mode is accomplished by setting the Ext field
in TR5 to 1 and rereading TR4.
8.3.2
Example 2: Writing The Cache
1) Disable the cache by setting the CD bit in the CR0
register.
2. In TR5, load 0 into the Ext field (bit 19), the required
entry value into the Entry field (bits 3–2), and 00 into
the Control field (bits 1–0).
AMD
6. In TR5, load 0 into the Ext field (bit 19), the required
value into the Set State field (bits 18–17) (Writeback mode only), the required index into the Index
field (bits 10–4), the required entry value into the
Entry field (bits 3–2), and 01 into the Control field
(bits 1–0). Loading the values into TR5 triggers the
cache write. In Write-through mode, the Set State
field is ignored, and the Valid bit (bit 10) in TR4 is
used instead to define the state of the specified set.
8.3.3
Example 3: Flushing The Cache
The cache flush mechanism functions in the same way
in Write-back and Write-through modes. Load 11 into
the Control field (bits 1–0) of TR5. All other fields are
ignored, except for Ext in Write-back mode. The cache
flush is triggered by loading the value into TR5. All of
the LRU bits, Valid bits, and Set State bits are cleared.
9
Am5X86 CPU Functional Differences
Several important differences exist between Am5X86
microprocessors and standard Am486DX microprocessors:
■
The ID register contains a different version signature.
■
The EADS function performs cache line write-backs
of modified lines to memory in Write-back mode.
■
A burst write feature is available for copy-backs. The
FLUSH pin and WBINVD instruction copy back all
modified data to external memory prior to issuing the
special bus cycle or reset.
The Am5X86 processor is functionally identical to the
Enhanced Am486 processor except for the function of
the CLKMUL pin (see Section 9.3) and the redefinition
of TR4 and TR5 to access the 16-Kbyte cache (see
Section 8).
9.1
Status after Reset
The RESET state is invoked either after power up or
after the RESET signal is applied according to the standard Am486DX microprocessor specification.
9.2
Cache Status
3. Load the TR3 register with the data to write to the
cache fill buffer. The cache fill buffer write is triggered by loading TR3.
After reset, the STATUS bits of all lines are set to 0. The
LRU bits of each set are placed in a starting state.
4. Repeat steps 2 and 3 for the remaining three doublewords in the cache fill buffer.
9.3
5. In TR4, load the required values into TAG field (bits
31–11) and the Valid field (bit 10). In Write-back
mode, the Valid bit is ignored since the Set State
field in TR5 is used in place of the TR4 Valid bit. The
other bits in TR4 (9:0) have no effect on the cache
write.
CLKMUL Pin
For the standard Am486 processor, the Enhanced
Am486 processor, and the Am5X86 processor, if the
CLKMUL pin is driven High at RESET, the processor
uses a Clock-tripled mode.
To ensure correct operation of the 133-MHz Am5X86
processor, always connect the CLKMUL input to VSS.
Am5X86 Microprocessor
55
PRELIMINARY
AMD
10
Am5X86 CPU IDENTIFICATION
The Am5X86 microprocessor supports two standard
methods for identifying the CPU in a system. The reported values are assigned based on the RESET status
of the WB/WT pin input (Low = write-through; High =
write-back).
When the parameter passed in EAX is zero, the register
values returned upon instruction execution are:
EAX[31:0]
EBX[31:0]
ECX[31:0]
EDX[31:0]
00000001h
68747541h
444D4163h
69746E65h
10.1 DX Register at RESET
The DX register always contains a component identifier
at the conclusion of RESET. The upper byte of DX (DH)
contains 04 and the lower byte of DX (DL) contains a
CPU type/stepping identifier (see Table 19).
The values in EBX, ECX, and EDX indicate an AMD
microprocessor. When taken in the proper order:
■ EBX (least significant bit to most significant bit)
■ EDX (least significant bit to most significant bit)
■ ECX (least significant bit to most significant bit)
Table 19. CPU ID Codes
CLKMUL Setting/Cache mode
Component Revision
ID (DH)
ID (DL)
Write-through mode
04
Ex
Write-back mode
04
Fx
they decode to
AuthenticAMD
When the parameter passed in EAX is 1, the register
values returned are:
EAX[3:0]
EAX[7:4]
10.2 CPUID Instruction
The Am5X86 microprocessor family implements the
CPUID instruction that makes information available to
software about the family, model and stepping of the
microprocessor on which it is executing. Support of this
instruction is indicated by the presence of a user-modifiable bit in position EFLAGS.21, referred to as the
EFLAGS.ID bit. This bit is reset to zero at device reset
(RESET or SRESET) for compatibility with existing processor designs.
10.2.1 CPUID Timing
EAX[11:8]
EAX[15:12]
EAX[31:16]
EBX[31:0]
ECX[31:0]
EDX[31:0]
CPUID execution timing depends on the selected EAX
parameter values (see Table 20).
Table 20. CPUID Instruction Description
OP Instruction
Code
0F A2 CPUID
EAX
Input
Value
0
1
>1
CPU
Core
Description
Clocks
41
AMD string
14
CPU ID Register
9
null registers
Stepping ID*
model:
Am5X86 CPU:
Write-through mode = Eh
Write-back mode = Fh
Family
486 Instruction Set = 4h
0000
RESERVED
00000000h
00000000h
00000001h = all versions
The 1 in bit 0 indicates that the FPU
is present
Note:
*Please contact AMD at (800) 222-9323
for stepping ID details.
The value returned in EAX after CPUID instruction execution is identical to the value loaded into EDX upon
device reset. Software must avoid any dependency
upon the state of reserved processor bits.
When the parameter passed in EAX is greater than one,
register values returned upon instruction execution are:
10.2.2 CPUID Operation
The CPUID instruction requires the user to pass an input
parameter to the CPU in the EAX register. The CPU
response is returned to the user in registers EAX, EBX,
ECX, and EDX.
EAX[31:0]
EBX[31:0]
ECX[31:0]
EDX[31:0]
00000000h
00000000h
00000000h
00000000h
Flags affected: No flags are affected.
Exceptions: None
56
Am5X86 Microprocessor
PRELIMINARY
11
Electrical Data
AMD
11.1.2 Power Decoupling Recommendations
The following sections describe recommended electrical connections for the Am5X86 microprocessors and
electrical specifications.
11.1 Power and Grounding
11.1.1 Power Connections
Am5X86 microprocessors with 16 Kbytes of cache have
modest power requirements. However, the high clock
frequency output buffers can cause power surges as
multiple output buffers drive new signal levels simultaneously. For clean, on-chip power distribution at high
frequency, 23 VCC pins and 28 VSS pins feed the microprocessor in the 168-pin PGA package. The 208-pin
SQFP package includes 53 VCC pins and 38 VSS pins.
Power and ground connections must be made to all
external VCC and VSS pins of the microprocessors. On a
circuit board, all VCC pins must connect to a VCC plane.
Likewise, all VSS pins must connect to a common GND
plane.
Liberal decoupling capacitance should be placed near
the microprocessor. The microprocessor, driving its 32bit parallel address and data buses at high frequencies,
can cause transient power surges, particularly when
driving large capacitive loads.
Low inductance capacitors and interconnects are recommended for best high-frequency electrical performance. Inductance can be reduced by shortening circuit
board traces between the microprocessor and the decoupling capacitors. Capacitors designed specifically
for use with PGA packages are commercially available.
11.1.3 Other Connection Recommendations
For reliable operation, always connect unused inputs to
an appropriate signal level. Active Low inputs should be
connected to VCC through a pull-up resistor. Pull-ups in
the range of 20 KΩ are recommended. Active High inputs should be connected to GND.
The Am5X86 microprocessor family requires only 3.3 V
as input power. Unlike other 3-V processors, the
Am5X86 microprocessor family does not require a
VCC5 input of 5 V to indicate the presence of 5-V I/O
devices on the system motherboard. For socket compatibility, this pin is INC, allowing the Am5X86 CPU to
operate in 3-V sockets in systems that use 5-V I/O.
Am5X86 Microprocessor
57
PRELIMINARY
AMD
ABSOLUTE MAXIMUM RATINGS
OPERATING RANGES
Case Temperature under Bias . . . – 65°C to +110°C
Storage Temperature . . . . . . . . . . – 65°C to +150°C
Voltage on any pin
with respect to ground . . . . . . – 0.5 V to Vcc +2.6 V
Supply voltage with
respect to VSS . . . . . . . . . . . . . . – 0.5 V to +4.6 V
Commercial (C) Devices
TCASE . . . . . . . . . . . . . . . . . . . . . . . . . . . 0°C to 85°C
VCC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 V ±0.3 V
Operating Ranges define those limits between which the functionality of the device is guaranteed.
Stresses above those listed under Absolute Maximum Ratings
may cause permanent device failure. Functionality at or above
these limits is not implied. Exposure to Absolute Maximum
Ratings for extended periods may affect device reliability.
DC CHARACTERISTICS over COMMERCIAL operating ranges
VCC = 3.3 V ± 0.3 V; TCASE = 0°C to + 85°C
Symbol
Preliminary Info
Min
Max
Parameter
VIL
Input Low Voltage
– 0.3 V
+0.8 V
VIH
Input High Voltage
2.0 V
VCC + 2.4 V
VOL
Output Low Voltage
VOH
Output High Voltage
ICC
Power Supply Current:
0.45 V
2.4 V
133 MHz
Note 1
Note 2
931 mA
ICCSTOPGRANT Input Current in Stop Grant or Auto Halt mode:
or ICCAUTOHALT
133 MHz
ICCSTPCLK
Notes
93 mA
Input Current in Stop Clock mode
5 mA
Typical supply current: 825 mA @ 133
MHz. Inputs at rails, outputs unloaded.
Typical supply current for Stop Grant or
Auto Halt mode: 50 mA @ 133 MHz.
Typical supply current in Stop Clock
mode is 600 µA.
ILI
Input Leakage Current
±15 µA
Note 3
IIH
Input Leakage Current
200 µA
Note 4
IIL
Input Leakage Current
– 400 µA
Note 5
ILO
Output Leakage Current
CIN
Input Capacitance
10 pF
FC = 1 MHz (Note 6)
CO
I/O or Output Capacitance
14 pF
FC = 1 MHz (Note 6)
CLK Capacitance
12 pF
FC = 1 MHz (Note 6)
CCLK
±15 µA
Notes:
1. This parameter is measured at: Address, Data, BE3 –BE0 = 4.0 mA; Definition, Control = 5.0 mA
2. This parameter is measured at: Address, Data, BE3 –BE0 = –1.0 mA; Definition, Control = –0.9 mA
3. This parameter is for inputs without internal pull-ups or pull-downs and 0 ≤ VIN ≤ VCC.
4. This parameter is for inputs with internal pull-downs and VIH = 2.4 V.
5. This parameter is for inputs with internal pull-ups and VIL = 0.45 V.
6. Not 100% tested.
58
Am5X86 Microprocessor
PRELIMINARY
AMD
SWITCHING CHARACTERISTICS over COMMERCIAL operating ranges
The AC specifications, provided in the AC characteristics table, consist of output delays, input setup requirements, and input hold requirements. All AC specifications are relative to the rising edge of the CLK signal.
AC specifications measurement is defined by Figure 39.
All timings are referenced to 1.5 V unless otherwise
specified. Am5X86 microprocessor output delays are
specified with minimum and maximum limits, measured
as shown. The minimum microprocessor delay times
are hold times provided to external circuitry. Input setup
and hold times are specified as minimums, defining the
smallest acceptable sampling window. Within the sampling window, a synchronous input signal must be stable
for correct microprocessor operation.
33-MHz bus (133-MHz operating frequency)
VCC = 3.3 V ±0.3 V; TCASE = 0°C to + 85°C; CL = 50 pF unless otherwise specified
Symbol
Preliminary Info
Min
Max
8
33
Parameter
Frequency
t1
CLK Period
t1a
CLK Period Stability
t2
CLK High Time at 2 V
11
t3
CLK Low Time at 0.8 V
11
t4
30
Unit
MHz
Figure
125
ns
39
0.1%
∆
Notes
Note 2
Adjacent Clocks
Notes 3 and 4
ns
39
Note 3
ns
39
Note 3
ns
39
Note 3
ns
39
Note 3
CLK Fall Time (2 V–0.8 V)
3
t5
CLK Rise Time (0.8 V–2 V)
3
t6
A31–A2, PWT, PCD, BE3–BE0, M/IO, D/C, CACHE,
W/R, ADS, LOCK, FERR, BREQ, HLDA,
SMIACT, HITM Valid Delay
3
14
ns
40
t7
A31–A2, PWT, PCD, BE3–BE0, M/IO, D/C, CACHE,
W/R, ADS, LOCK Float Delay
3
20
ns
41
t8
Note 5
PCHK Valid Delay
3
14
ns
42
t8a
BLAST, PLOCK, Valid Delay
3
14
ns
40
t9
BLAST, PLOCK, Float Delay
3
20
ns
41
t10
D31–D0, DP3–DP0 Write Data Valid Delay
3
14
ns
40
t11
20
D31–D0, DP3–DP0 Write Data Float Delay
3
ns
41
t12
EADS, INV, WB/WT Setup Time
5
ns
43
t13
EADS, INV, WB/WT Hold Time
3
ns
43
t14
KEN, BS16, BS8 Setup Time
5
ns
43
t15
KEN, BS16, BS8 Hold Time
3
ns
43
t16
RDY, BRDY Setup Time
5
ns
44
t17
RDY, BRDY Hold Time
3
ns
44
t18
HOLD, AHOLD Setup Time
6
ns
43
t18a
Note 3
Note 3
Note 3
BOFF Setup Time
7
ns
43
t19
HOLD, AHOLD, BOFF Hold Time
3
ns
43
t20
RESET, FLUSH, A20M, NMI, INTR, IGNNE,
STPCLK, SRESET, SMI Setup Time
5
ns
43
Note 5
t21
RESET, FLUSH, A20M, NMI, INTR, IGNNE,
STPCLK, SRESET, SMI Hold Time
3
ns
43
Note 5
t22
D31–D0, DP3–DP0, A31–A4 Read Setup Time
5
ns
43, 44
t23
3
ns
43, 44
D32–D0, DP3–DP0, A31–A4 Read Hold Time
Notes:
1. Specifications assume CL = 50 pF. I/O Buffer model must be used to determine delays due to loading (trace and component). First
Order I/O buffer models for the processor are available.
2. 0-MHz operation guaranteed during stop clock operation.
3. Not 100% tested. Guaranteed by design characterization.
4. For faster transitions (>0.1% between adjacent clocks), use the Stop Clock protocol to switch operating frequency.
5. All timings are referenced at 1.5 V (as illustrated in the listed figures) unless otherwise noted.
Am5X86 Microprocessor
59
PRELIMINARY
AMD
Am5X86 Microprocessor AC Characteristics for
Boundary Scan Test Signals at 25 MHz
VCC = 3.3 V ±0.3 V; TCASE = 0°C to +85°C; CL = 50 pF unless otherwise specified
Preliminary Info
Symbol
Parameter
Min
Max
Unit
25
MHz
Notes
TCK Frequency
t25
TCK Period
40
ns
45, 46
t26
TCK High Time at 2 V
10
ns
45
t27
TCK Low Time at 0.8 V
10
ns
45
t28
TCK Rise Time (0.8 V–2 V)
4
ns
45
Note 2
t29
TCK Fall Time (2 V–0.8 V)
4
ns
45
Note 2
t30
TDI, TMS Setup Time
8
ns
46
Note 3
t31
TDI, TMS Hold Time
7
ns
46
Note 3
t32
TDO Valid Delay
3
25
ns
46
Note 3
t33
TDO Float Delay
36
ns
46
Note 3
t34
All Outputs (Non-Test) Valid Delay
25
ns
46
Note 3
t35
All Outputs (Non-Test) Float Delay
30
ns
46
Note 3
t36
All Inputs (Non-Test) Setup Delay
8
ns
46
Note 3
t37
All Inputs (Non-Test) Hold Time
7
ns
46
Note 3
3
Notes:
1. TCK period ≥ CLK period.
2. Rise/Fall times can be relaxed by 1 ns per 10-ns increase in TCK period.
3. Parameter measured from TCK.
60
Figure
t24
Am5X86 Microprocessor
1x Clock
Note 1
PRELIMINARY
AMD
Key to Switching Waveforms
Waveform
Inputs
Outputs
Must be steady
Will be steady
May change from
H to L
Will change
from H to L
May change from
L to H
Will change
from L to H
Don’t care; any
change permitted
Changing;
state unknown
Does not apply
Center line is
High-impedance
“Off” state
Figure 39. CLK Waveforms
Figure 40. Output Valid Delay Timing
Am5X86 Microprocessor
61
AMD
PRELIMINARY
Figure 41. Maximum Float Delay Timing
Figure 42. PCHK Valid Delay Timing
62
Am5X86 Microprocessor
PRELIMINARY
AMD
Figure 43. Input Setup and Hold Timing
Figure 44. RDY and BRDY Input Setup and Hold Timing
Am5X86 Microprocessor
63
AMD
PRELIMINARY
Figure 45. TCK Waveforms
Figure 46. Test Signal Timing Diagram
64
Am5X86 Microprocessor
PRELIMINARY
12
PACKAGE THERMAL
SPECIFICATIONS
AMD
Where:
The Am5X86 microprocessor is specified for operation
when TCASE (the case temperature) is within the range
of 0°C to +55°C or +85°C. TCASE can be measured in
any environment to determine whether the Am5X86 microprocessor is within specified operating range. The
case temperature should be measured at the center of
the top surface opposite the pins.
The ambient temperature (TA) is guaranteed if TCASE is
not violated. The ambient temperature can be calculated
from θJC and θJA and from the following equations:
TJ = TCASE + (P • θJC)
TA = TJ – (P • θJA)
TCASE = TA + (P • [θJA – θJC])
TJ, TA, TCASE = Junction, Ambient, and Case Temperature
= Junction-to-Case and Junction-to-Ambient
θJC, θJA
Thermal Resistance, respectively
P
= Maximum Power Consumption
The values for θJA and θJC are given in Table 21 for the
1.75 sq. in., 168-pin, ceramic PGA. For the 208-pin
SQFP plastic package, θJA = 14.0 and θJC = 1.5.
Table 22 shows the TA allowable (without exceeding
TCASE) at various airflows and TCASE values for the PGA
package. Note that TA is greatly improved by attaching
a heat sink to the package. P (the maximum power consumption) is calculated by using a maximum ICC value
of 931 mA at 3.3 V. Table 23 shows the TA allowable
(without exceeding TCASE) for the SQFP package using
a maximum ICC value of 931 mA at 3.3 V.
Table 21. Thermal Resistance (°C/W) θJC and θJA for the Am5X86 CPU in 168-Pin PGA Package
θJA vs. Airflow-Linear ft/min. (m/s)
Cooling
Mechanism
θJC
No Heat Sink
0
(0)
200
(1.01)
400
(2.03)
600
(3.04)
800
(4.06)
1000
(5.07)
1.5
16.5
14.0
12.0
10.5
9.5
9.0
Heat Sink*
2.0
12.0
7.0
5.0
4.0
3.5
3.25
Heat Sink* and fan
2.0
5.0
4.6
4.2
3.8
3.5
3.25
Note:
*0.350″ high unidirectional heat sink (Al alloy 6063-T5, 40 mil fin width, 155 mil center-to-center fin spacing)
Table 22. Maximum TA at Various Airflows in °C
TA by Cooling Type
TCASE
TA without Heat Sink
TA with Heat Sink
TA with Heat Sink and fan
TA without Heat Sink
TA with Heat Sink
TA with Heat Sink and fan
55°C
55°C
55°C
85°C
85°C
85°C
Clock
133 MHz
133 MHz
133 MHz
133 MHz
133 MHz
133 MHz
Airflow-Linear ft/min. (m/sec)
0
200
400
(0)
(1.01)
(2.03)
8.9°C
16.6°C
22.7°C
24.3°C
39.6°C
45.8°C
45.8°C
47.0°C
48.2°C
38.9°C
46.6°C
52.7°C
54.3°C
69.6°C
75.8°C
75.8°C
77.0°C
78.2°C
600
(3.04)
27.3°C
48.9°C
49.5°C
57.3°C
78.9°C
79.5°C
800
(4.06)
30.4°C
50.4°C
50.4°C
60.4°C
80.4°C
80.4°C
1000
(5.07)
32.0°C
51.2°C
51.2°C
62.0°C
81.2°C
81.2°C
Table 23. Maximum TA for SQFP Package by Clock Frequency
TCASE
Clock
TA
85°C
133 MHz
46.6°C
Am5X86 Microprocessor
65
PRELIMINARY
AMD
13
PHYSICAL DIMENSIONS
168-Pin PGA
1.735
1.765
1.595
1.605
Index
Corner
Base Plane
Seating Plane
0.017
0.020
1.595
1.605
1.735
1.765
0.090
0.110
0.105
0.125
Bottom View (Pins Facing Up)
0.025
0.045
Side View
Notes:
1. All measurements are in inches.
2. Not to scale. For reference only.
3. BSC is an ANSI standard for Basic Space Centering.
66
Am5X86 Microprocessor
0.140
0.180
0.110
0.140
PRELIMINARY
AMD
208-Pin SQFP
30.40
30.80
27.90
28.10
Pin 208
25.50
REF
Pin 156
Pin 1 I.D.
25.50
REF
27.90
28.10
30.40
30.80
Pin 52
Pin 104
Top View
0.50
BASIC
3.25
3.45
3.70
Max.
0.05
Min
0.50
0.75
Seating
Plane
Side View
Notes:
1. All measurements are in millimeters unless otherwise noted.
2. Not to scale. For reference only.
Trademarks
AMD, Am386, and Am486 are registered trademarks and Am5X86 is a trademark of Advanced Micro Devices, Inc.
FusionPC is a service mark of Advanced Micro Devices, Inc.
Microsoft and Windows are registered trademarks of Microsoft Corp.
Product names used in this publication are for identification purposes only and may be trademarks of their respective companies.
Am5X86 Microprocessor
67