Intel486 DX2 Microprocessor Data Book Jul92
Intel486 DX2 Microprocessor Data Book Jul92
Intel486 DX2 Microprocessor Data Book Jul92
• Software
Binary Compatible with Large
Base
• Compatibility
IEEE 1149.1 Boundary Scan
The Intel486 DX2 CPU offers the highest performance for DOS, OS/2, Windows, and UNIX System V/lntel386
applications. It is 100% binary compatible with the Intel386™ CPU. Over one million transistors integrate the
RISC integer core, 8 Kbyte cache memory, floating point hardware, and memory management on-chip while
retaining binary compatibility with previous members of the Inte1386/lnte1486 architectural family. The RISC
integer core executes frequently-used instructions in one core clock cycle, providing leadership performance
levels. An 8 Kbyte unified code and data cache allow the high performance levels to be sustained. A
106 MByte/sec burst bus at 33 MHz bus clock ensures high system throughput even with inexpensive DRAMs.
New features enhance multiprocessing systems; new instructions speed manipulation of memory-based sem-
aphores; and on-chip hardware ensures cache consistency and provides hooks for multilevel caches.
The built-in self-test extensively tests on-chip logic, cache memory, and the on-chip paging translation cache.
Debug features include breakpoint traps on code execution and data accesses.
II
-
Linear Address;::."":.'~_ _ _..,
Paging
.u. 32
PCD. PWT
II Bue Interface A2-A31,
B[0.-B[3.
~
Barrel Shifter Basel Unit cache Unit A.ddress Drivers
1-----1 Index
~ Descriptor Write Buffers
~
~ ------------
Register rne Registers 20 8k Byte
1-----1 32 .-.,,.--l
I--:l-:-,m""n Translation
Physical
Addreas
cache
"x 32
DO-03'
T:~~~:rs ~/R# D/e#
Al" Attribute Lockaside
~J
PLA Buffer
32 W/IO. PCO.PWT
1..F ~
llfIL_--:=__-.-:::,,--I---r--:~~-l
U 128 Bus Control
ROY. LOCk" PlOCK#
BOF'F# A,201ol# BREQ
~~~D NHw'iDA RESET
-to--"-.-.-.-.-
Request Sequencer
::~t&~~~~ration ~3
------------- TCK
Bou=~a~can ~~~~
TOO
241245-1
Intel Corporation assumes no responsibility for the use of any circuitry other than Circuitry embodied in an Intel product. No other circuit patent
licenses are implied. Information contained herein supersedes previously published specffications on these devices from Intel. July 1992
© INTEL CORPORATION, 1992 Order Number: 241245.(102
infel . Intel486TM DX2 MICROPROCESSOR
Intel Corporation makes no warranty for the use of its products and assumes no responsibility for any errors which may
appear in this document nor does it make a commitment to update the information contained herein.
Intel retains the right to make changes to these specifications at any time, without notice.
Contact your local sales office to obtain the latest specifications before placing your order.
The following are trademarks of Intel Corporation and may only be used to identify Intel products:
MDS is an ordering code only and is not used as a product name or trademark. MDS is a registered trademark of Mohawk
Data Sciences Corporation.
CHMOS and HMOS are patented processes of Intel Corp.
Intel Corporation and Intel's FASTPATH are not affiliated with Kinetics, a division of Excelan, Inc. or its FASTPATH trade-
mark or products.
Additional copies of this manual or other Intel literature may be obtained from:
Intel Corporation
LiteJature Sales
P.O. Box 7641
Mt. Prospect, IL 60056-7641
©INTEL CORPORATION 1992
iRMX, iRMK, Intel386, i386, Intel387, i387, Intel486, i486, Intel487, i487 are trademarks of Intel Corporation.
'MS-DOS@ is a registered trademark of Microsoft Corporation.
"OS/2TM and Windows™ are trademarks of Microsoft Corporation.
"'UNIXTM is a trademark of UNIX Systems Laboratories.
ii
Quick Reference to Chapters
CONTENTS PAGE CONTENTS PAGE
1.0 INTRODUCTION ..................... 1-1 10.0 INSTRUCTION SET SUMMARY ... 10-1
iii
Intel486™ DX2 Microprocessor
CONTENTS PAGE CONTENTS PAGE
2.7.8 Double Fault ................. 2-30
1.0 INTRODUCTION ..................... 1-1
2.7.9 Floating Point Interrupt
Pinout .................................. 1-1 Vectors ......................... 2-30
Brief Pin Descriptions .................. 1-4
3.0 REAL MODE ARCHITECTURE . ...... 3-1
2.0 ARCHITECTURAL OVERViEW ...... 2-1 3.1 Real Mode Introduction ............ 3-1
2.1 Register Set ....................... 2-1 3.2 Memory Addressing ............... 3-2
2.1.1 Base Architecture 3.3 Reserved Locations ............... 3-2
Registers ........................ 2-2
3.4 Interrupts .......................... 3-2
2.1.2 System Level Registers ....... 2-6
3.5 Shutdown and Halt ................ 3-2
2.1.3 Floating Point Registers ...... 2-10
2.1.4 Debug and Test Registers ... 2-17 4.0 PROTECTED MODE
2.1.5 Register Accessibility ........ 2-17 ARCHITECTURE ...................... 4-1
2.1.6 Compatibility ................. 2-18 4.1 Introduction ........................ 4-1
2.2 Instruction Set .................... 2-19 4.2 Addressing Mechanism ............ 4-1
2.3.1 Address Spaces ............. 2-19 4.3.1 Segmentation Introduction .... 4-2
2.3.2 Segment Register Usage .... 2-20 4.3.2 Terminology .................. 4-2
2.4 I/O Space ........................ 2-20 4.3.3 Descriptor Tables ............. 4-2
4.6.3 Paging in Virtual Mode ....... 4-23 6.3 Write Buffers ...................... 6-9
4.6.4 Protection and Virtual 8086 6.3.1 Write Buffers and I/O
Mode to I/O Permission Cycles .......................... 6-10
Bitmap .......................... 4-24 6.3.2 Write Buffers Implications on
4.6.5 Interrupt Handling ............ 4-25 locked Bus Cycles .............. 6-10
5.6 Page Cacheability .................. 5-4 7.1.1 Memory and 1/0 Spaces ...... 7-1
5.7 Cache Flushing .................... 5-5 7.1.2 Memory and 1/0 Space
Organization ..................... 7-2
5.8 Caching Translation lookaside
Buffer Entries ....................... 5-5 7.1.3 Dynamic Data Bus Sizing ...... 7-3
7.1.4 Interfacing with 8-, 16- and 32-
6.0 HARDWARE INTERFACE ........... 6-1 bit Memories ..................... 7-4
6.1 Introduction ........................ 6-1 7.1.5 Dynamic Bus Sizing during
6.2 Signal Descriptions ................ 6-2 Cache Line Fills .................. 7-6
6.2.1 Clock (ClK) ................... 6-2 7.1.6 Operand Alignment ........... 7-6
6.2.13 Numeric Error Reporting ..... 6-7 7.2.11 Special Bus Cycles ......... 7-28
6.2.14 Bus Size Control 7.2.12 Bus Cycle Restart .......... 7-29
(BS16#, BS8#) .................. 6-8 7.2.13 Bus States ................. 7-30
7.2.14 Floating Point Error
Handling ........................ 7-31
v
CONTENTS PAGE CONTENTS PAGE
8.0 TESTABILITY ........................ 8-1 10.0 INSTRUCTION SET SUMMARY ... 10-1
8.1 Built-In Self Test (BIST) ............ 8-1 10.1 Intel486TM DX2 Microprocessor
8.2 On-Chip Cache Testing ............ 8-1 Instruction Encoding and Clock
Count Summary .... . . . . . . . . . . . . . . .. 10-1
8.2.1 Cache Testing Registers TR3,
TR4 and TR5 .................... 8-1 10.2 Instruction Encoding ........... 10-20
8.2.2 Cache Testability Write ........ 8-2 10.2.1 Overview .................. 10-20
8.2.3 Cache Testability Read ....... 8-4 10.2.2 32-Bit Extensions of the
Instruction Set ................. 10-21
8.2.4 Flush Cache .................. 8-4
10.2.3 Encoding of Integer
8.3 Translation Lookaside Buffer (TLB) Instruction Fields ............... 10-21
Testing ............................. 8-4
10.2.4 Encoding of Floating Point
8.3.1 Translation Lookaside Buffer Instruction Fields ............... 10-27
Organization ..................... 8-4
8.3.2 TLB Test Registers: TR6 and 11.0 DIFFERENCES WITH THE
TR7 .............................. 8-5 Intel386TM MICROPROCESSOR ..... 11-1
8.3.3 TLB Write Test ................ 8-7 12.0 UPGRADE SOCKET ............... 12-1
8.3.4 TLB Lookup Test ............. 8-7 12.0.1 Upgrade Processor
8.4 3-state Output Test Mode .......... 8-7 Overview ....................... 12-2
8.5 Intel486TM DX2 Microprocessor 12.1 Upgrade Circuit Design .......... 12-2
Boundary Scan (JTAG) .............. 8-7 12.2 Socket Layout ................... 12-3
8.5.1 Boundary Scan 12.2.1 Backward Compatibility ..... 12-3
Architecture ...................... 8-8
12.2.2 Physical Dimensions ........ 12-3
8.5.2 Data Registers ................ 8-8
12.2.3 "End User Easy" ........... 12-4
8.5.3 Instruction Register ........... 8-9
12.2.4 LlF and ZIF Socket
8.5.4 Test Access Port (TAP) Vendors ........................ 12-5
Controller ....................... 8-11
12.3 Thermal Management ........... 12-5
8.5.5 Boundary Scan Register
Cell ............................. 8-14 12.3.1 Thermal Calculations for
Hypothetical System ............ 12-5
8.5.6 TAP Controller Initialization .. 8-14
12.3.2 Heat Sinks ................. 12-6
8.5.7 Boundary Scan Description
Language (BSDL) ............... 8-15 12.3.3 Airflow ..................... 12-6
12.4 BIOS and Software .............. 12-7
9.0 DEBUGGING SUPPORT ............. 9-1
12.4.1 Intel486 DX2 Upgrade
9.1 Breakpoint Instructions ............ 9-1 Processor Detection ............ 12-7
9.2 Single Step Instructions ............ 9-1 12.4.2 Timing Dependent Loops ... 12-7
9.3 Debug Registers ................... 9-1 12.5 Test Requirements .............. 12-7
9.3.1 Linear Address Breakpoint 12.6 Upgrade Socket Pinout .......... 12-7
Registers ........................ 9-2
12.6.1 Pinout ...................... 12-8
9.3.2 Debug Control Register ....... 9-2
12.6.2 Pin Description ............ 12-10
9.3.3 Debug Status Register ........ 9-5
12.6.3 Reserved Pin
9.3.4 Use of Resume Flag (RF) in Specification ................... 12-10
Flag Register ..................... 9-5
12.7 D.C.lA.C. Specifications ........ 12-11
vi
CONTENTS PAGE CONTENTS PAGE
vii
DATA SHEET DESIGNATONS
Intel uses various data sheet markings to designate each phase of the document as it relates to the product.
The marking appears in the upper, right-hand corner of the data sheet. The following is the definition of these
markings:
'Specifications within these data sheets are subject to change without notice. Verify with your local Intel sales
office that you have the latest data sheet before finalizing a design.
int:eL Intel486TM DX2 MICROPROCESSOR
1.0 INTRODUCTION
A B C D E F G H J K L M N P Q R S
1 020 019 011 09 VSS OPl VSS VSS VCC VSS VSS VSS 02 DO A31 A28 A27 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2 022 021 018 013 VCC 08 VCC 03 05 VCC 06 VCC 01 A29 VSS A25 A26 2
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
3 TCK VSS ClK 017 010 015 012 OP2 016 014 07 04 OPO A30 A17 VCC A23 3
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
4 023 VSS VCC A19 VSS NC 4
0 0 0 0 0 0
5 OP3 VSS VCC A21 A18 A14 5
0 0 0 0 0 0
6 024 025 027 A24 VCC VSS 6
0 0 0 0 0 0
7 vss VCC 026 A22 A15 A12 7
0 0 0 0 0 0
8 029 031 028 A20 VCC VSS 8
0 0 0 0 0 0
Intel486 DX2 MICROPROCESSOR
9 vss VCC 030 A16 vcc vss 9
0 0 0 PIN SIDE VIEW 0 0 0
10 NC NC NC A13 VCC VSS 10
0 0 0 0 0 0
11 vss VCC UP# A9 vce vss 11
0 0 0 0 0 0
12 Ne NC NC A5 All vss 12
0 0 0 0 0 0
13 NC NC NC A7 A8 Al0 13
0 0 0 0 0 0
14 TOI TMS FERR# A2 VCC vss 14
0 0 0 0 0 0
15 IGNNE# NMI FlUSH# A20t.t# HOlO KEN# NC BROY# BE2# BEO# PWT o/c# lOCK# HlOA BREQ A3 A6 15
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 INTR TOO RESET BS8# vec ROY# VCC vee BE1# VCC VCC VCC M/IO# VCC PLOCK# BLAST# A4 16
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17 AHOLO EADS# 8516# BOFF# VSS BE3# VSS VSS PCO VSS VSS VSS W/R# VSS PCHK# NC AOS# 17
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A B C D E F G H J K L M N P Q R S
241245-2
Figure 1.1
1-1
int:eL Intel486TM DX2 MICROPROCESSOR
S R Q P N M L K J H G F E D C B A
1 A27 A28 A31 00 02 VSS VSS VSS VCC VSS VSS OPl VSS 09 011 019 020 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2 A26 A25 VSS A29 01 VCC 06 VCC 05 03 VCC 08 VCC 013 018 021 022 2
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
3 A23 VCC A17 A30 OPO 04 07 014 016 OP2 012 015 010 017 CLK VSS TCK 3
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
4 NC VSS A19 VCC VSS 023 4
0 0 0 0 0 0
5 AU A18 A21 VCC VSS OP3 5
0 0 0 0 0 0
6 vss vcc A24 027 025 024 6
0 0 0 0 0 0
7 A12 A15 A22 026 VCC VSS 7
0 0 0 0 0 0
8 vss VCC A20 028 031 029 8
0 0 0 0 0 0
9 vss VCC A16 Intel486 DX2 MICROPROCESSOR 030 vcc VSS 9
0 0 0 0 0 0
TOP SIDE VIEW
10 vss VCC A13 NC NC NC 10
0 0 0 0 0 0
11 vss VCC A9 UP# VCC vss 11
0 0 0 0 0 0
12 VSS All AS NC NC NC 12
0 0 0 0 0 0
13 Al0 A8 A7 NC NC NC 13
0 0 0 0 0 0
14 vss VCC A2 FERR# TMS TOI 14
0 0 0 0 0 0
15 A6 A3 BREQ HLOA LOCK# o/c# PWT BEO# BE2# BROY# NC KEN# HOLD A20M# FLUSH# NMI IGNNE# 15
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 A4 BlAST# PLOCK# VCC M/IO# VCC VCC VCC BE1# vcc VCC RDY# vcc BS8# RESET TOO INTR 16
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17 AOS# NC PCHK# vss W/R# VSS VSS vss pco vss VSS BE3# vss BOFf# 8516# EADS# AHOLD 17
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
S R Q P N M L K J H G F E D C B A
241245-3
Figure 1.2
1-2
intet Intel486TM DX2 MICROPROCESSOR
NOTE:
1. These pins were No-Connects on the 25 MHz and 33 MHz Intel486 OX microprocessors. For compatibility with old
designs they can still be left unconnected.
1-3
intel . Intel486TM DX2 MICROPROCESSOR
1-4
int'eL Intel486™ DX2 MICROPROCESSOR
1-5
intel~ Intel486™ DX2 MICROPROCESSOR
1-6
intel· Intel486TM DX2 MICROPROCESSOR
1-7
intel. Intel486TM DX2 MICROPROCESSOR
1-8
intel· Intel486TM DX2 MICROPROCESSOR
1-9
infel . Intel486™ DX2 MICROPROCESSOR
2-1
Intel486TM DX2 MICROPROCESSOR
The register set can be split into the following cate- The base architecture and floating point registers
gories: are accessible by the applications program. The sys-
tem level registers are only accessible at privilege
Base Architecture Registers level 0 and are used by the systems level program.
General Purpose Registers The debug and test registers are also only accessi-
ble at privilege level o.
Instruction Pointer
Flags Register
Segment Registers 2.1.1 BASE ARCHITECTURE REGISTERS
Figure 2.1 shows the Intel486 DX2 microprocessor
Systems Level Registers
base architecture registers. The contents of these
Control Registers registers are task-specific and are automatically
System Address Registers loaded with a new context upon a task switch opera-
tion.
Floating Point Registers
Data Registers The base architecture includes six directly accessi-
ble descriptors, each specifying a segment up to
Tag Word 4 Gbytes in size. The descriptors are indicated by
Status Word the selector values placed in the Intel486 DX2 mi-
Instruction and Data Pointers croprocessor segment registers. Various selector
values can be loaded as a program executes.
Control Word
The selectors are also task-specific, so the segment
Debug and Test Registers registers are automatically loaded with new context
upon a task switch operation.
General Purpose Registers
31 24123 16 15 al7 0 2.1.1.1 General Purpose Registers
AH AX AL EAX
The eight 32-bit general purpose registers are
BH BX BL EBX shown in Figure 2.1. These registers hold data or
CH CX CL ECX
address quantities. The general purpose registers
can support data operands of 1, 8, 16 and 32 bits,
OH OX OL EOX
and bit fields of 1 to 32 bits. Address operands of 16
Sl ESI and 32 bits are supported. The 32-bit registers are
01 EOI named EAX, EBX, ECX, EDX, ESI, EDI, EBP and
ESP.
BP EBP
SP ESP The least significant 16 bits of the general purpose
registers can be accessed separately by using the
Segment Registers 16-bit names of the registers AX, BX, CX, OX, 51, 01,
15 0 BP and SP. The upper 16 bits of the register are not
CS Code Segment
changed when the lower 16 bits are accessed sepa-
rately.
SS Stack Segment
2-2
int'eL Intel486™ DX2 MICROPROCESSOR
FLAGS
3322222222221111111111
10987654321098765432109876543210
ALlGN~ENT CHE~~K====~J
VIRTUAL MODE
RESUIiIE FLAG
NESTED TASK FLAG ------~
I/o PRIVILEGE LEVEL -------~
OVERFLOW ~~~=========~J
DIRECTION FLAG
INTERRUPT ENABLE
241245-4
NOTE:
~indicates Intel Reserved: do not define; see Section 2.1.6.
instruction pointer named IP, which is used for 16-bit register and it enables faults on accesses to misa-
addressing. ligned data.
AC (Alignment Check, bit 18)
2.1.1.3 Flags Register The AC bit enables the generation of faults if a
memory reference is to a misaligned address.
The flags register is a 32-bit register named Alignment faults are enabled when AC is set
EFLAGS. The defined bits and bit fields within to 1. A mis-aligned address is a word access
EFLAGS control certain operations and indicate to an odd address, a dword access to an ad-
status of the Intel486 DX2 microprocessor. The low- dress that is not on a dword boundary, or an
er 16 bits (bits 0-15) of EFLAGS contain the 16·bit 8-byte reference to an address that is not on a
register named FLAGS, which is most useful when 64·bit word boundary. See Section 7.1.6 for
executing 8086 and 80286 code. EFLAGS is shown more information on operand alignment.
in Figure 2.2.
Alignment faults are only generated by pro-
grams running at privilege level 3. The AC bit
EFLAGS bits 1, 3, 5,15 and 19-31 are "undefined".
When these bits are stored during interrupt process· setting is ignored at privilege levels 0, 1 and 2.
ing or with a PUSHF instruction (push flags onto Note that references to the descriptor tables
stack), a one is stored in bit 1 and zeros in bits 3, 5, (for selector loads), or the task state segment
15 and 19-31. (TSS) , are implicitly level 0 references even if
the instructions causing the references are
The EFLAGS register in the Intel486 OX microproc- executed at level 3. Alignment faults are re-
essor contains a new bit not previously defined. The ported through interrupt 17, with an error code
new bit, AC, is defined in the upper 16 bits of the of O. Table 2.1 gives the alignment required
for the Intel486 OX microprocessor data
types.
IMPLEMENTATION NOTE: that the current nested task's Task State Seg-
Several instructions on the Intel486 DX microproc- ment (TSS) has a valid back link to the previ-
essor generate misaligned references, even if their ous task's TSS. This bit is set or reset by con-
memory address is aligned. For example, on the In- trol transfers to other tasks. The value of NT
tel486 DX microprocessor, the SGDT/SIDT (store in EFLAGS is tested by the IRET instruction to
global/interrupt descriptor table) instruction reads/ determine whether to do an inter-task return
writes two bytes, and then reads/writes four bytes or an intra-task return. A POPF or an IRET
from a "pseudo-descriptor" at the given address. instruction will affect the setting of this bit ac-
The Intel486 DX microprocessor will generate misa- cording to the image popped, at any privilege
ligned references unless the address is on a 2 mod level.
4 boundary. The FSAVE and FRSTOR instructions 10PL (Input/Output Privilege Level, bits 12-13)
(floating point save and restore state) will generate
misaligned references for one-half of the register This two-bit field applies to Protected Mode.
save/restore cycles. The Intel486 DX microproces- 10PL indicates the numerically maximum CPL
sor will not cause any AC faults if the effective ad- (current privilege level) value permitted to ex-
dress given in the instruction has the proper align- ecute I/O instructions without generating an
ment. exception 13 fault or consulting the I/O Per-
mission Bitmap. It also indicates the maximum
VM (Virtual 8086 Mode, bit 17) CPL value allowing alteration of the IF (INTR
The VM bit provides Virtual 8086 Mode within Enable Flag) bit when new values are popped
Protected Mode. If set while the Intel486 DX into the EFLAG register. POPF and IRET in-
microprocessor is in Protected Mode, the In- struction can alter the 10PL field when execut-
tel486 DX microprocessor will switch to Virtual ed at CPL = O. Task switches can always al-
8086 operation, handling segment loads as ter the 10PL field, when the new flag image is
the 8086 does, but generating exception 13 loaded from the incoming task's TSS.
faults on privileged opcodes. The VM bit can OF (Overflow Flag, bit 11)
be set only in Protected Mode, by the IRET
instruction (if current privilege level = 0) and OF is set if the operation resulted in a signed
by task switches at any privilege level. The overflow. Signed overflow occurs when the
VM bit is unaffected by POPF. PUSHF always operation resulted in carry/borrow into the
pushes a a in this bit, even if executing in Vir- sign bit (high-order bit) of the result but did not
tual 8086 Mode. The EFLAGS image pushed result in a carry/borrow out of the high-order
during interrupt processing or saved during bit, or vice-versa. For 8-, 16-, 32-bit opera-
task switches will contain a 1 in this bit if the tions, OF is set according to overflow at bit 7,
interrupted code was executing as a Virtual 15,31, respectively.
8086 Task. DF (Direction Flag, bit 10)
RF (Resume Flag, bit 16) DF defines whether ESI and/or EDI registers
The RF flag is used in conjunction with the postdecrement or postincrement during the
debug register breakpoints. It is checked at string instructions. Postincrement occurs if DF
instruction boundaries before breakpoint pro- is reset. Postdecrement occurs if DF is set.
cessing. When RF is set, it causes any debug IF (INTR Enable Flag, bit 9)
fault to be ignored on the next instruction. RF The IF flag, when set, allows recognition of
is then automatically reset at the successful external interrupts signalled on the INTR pin.
completion of every instruction (no faults are When IF is reset, external interrupts signalled
signalled) except the IRET instruction, the on the INTR are not recognized. 10PL indi-
POPF instruction, (and JMP, CALL, and INT cates the maximum CPL value allowing altera-
instructions causing a task switch). These in- tion of the IF bit when new values are popped
structions set RF to the value specified by the into EFLAGS or FLAGS.
memory image. For example, at the end of the
breakpoint service routine, the IRET instruc- TF (Trap Enable Flag, bit 8)
tion can pop an EFLAG image having the RF TF controls the generation of exception 1 trap
bit set and resume the program's execution at when single-stepping through code. When TF
the breakpoint address without generating an- is set, the Intel486 DX microprocessor gener-
other breakpoint fault on the same location. ates an exception 1 trap after the next instruc-
NT (Nested Task, bit 14) tion is executed. When TF is reset, exception
1 traps occur only as a function of the break-
This flag applies to Protected Mode. NT is set point addresses loaded into debug registers
to indicate that the execution of this task is DRO-DR3.
nested within another task. If set, it indicates
2-4
Intel486TM DX2 MICROPROCESSOR
SEGMENT
REGISTERS DESCRIPTOR REGISTERS (LOADED AUTOMATICALLY)
~ ~
r \ r Other \
Segment
15 0 Physical Base Address Segment Limit Attributes from Descriptor
Selector CS- -
Selector SS- - -
Selector DS- - - -
Selector ES- - - -
Selector FS- - - -
Selector GS- - - -
Figure 2.3. Intel486™ DX Microprocessor Segment Registers
and Associated Descriptor Cache Registers
2-5
int:et Intel486TM DX2 MICROPROCESSOR
When a selector value is loaded into a segment reg- unit (FPU) and the segmentation and paging mecha-
ister, the associated descriptor cache register is au- nisms. These registers are only accessible to pro-
tomatically updated with the correct information. In grams running at privilege level 0, the highest privi-
Real Address Mode, only the base address is updat- lege level.
ed directly (by shifting the selector value four bits to
the left), since the segment maximum limit and attri- The system level registers include three control reg-
butes are fixed in Real Mode. In Protected Mode, isters and four segmentation base registers. The
the base address, the limit, and the attributes are all three control registers are CRO, CR2 and CR3. CR1
updated per the contents of the segment descriptor is reserved for future Intel processors. The four seg-
indexed by the selector. mentation base registers are the Global Descriptor
Table Register (GDTR), the Interrupt Descriptor Ta-
Whenever a memory reference occurs, the segment ble Register (IDTR), the Local Descriptor Table Reg-
descriptor cache register associated with the seg- ister (LDTR) and the Task State Segment Register
ment being used is automatically involved with the (TR).
memory reference. The 32-bit segment base ad-
dress becomes a component of the linear address
calculation, the 32-bit limit is used for the limit-check 2.1.2.1 Control Registers
operation, and the attributes are checked against
Control Register 0 (CRO)
the type of memory reference requested.
CRO, shown in Figure 2.5, contains 10 bits for con-
2.1.2 SYSTEM LEVEL REGISTERS trol and status purposes. Five of the bits defined in
the Intel486 DX microprocessor's CRO are newly de-
The system level registers, Figure 2.4, control opera- fined. The new bits are CD, NW, AM, WP and NE.
tion of the on-chip cache, the on-chip floating point The function of the bits in CRO can be categorized
as follows:
GDTRI
IDTR I I
SYSTEM SEGMENT
REGISTERS DESCRIPTOR REGISTERS (AUTOMATICALLY LOADED)
• ;.
~5
(
0' 32-BIT LINEAR BASE ADDRESS 20·BIT SEGMENT LIMIT ATTRIBUTES'
TR I SELECTOR I
LDTR I SELECTOR I I I II II
Figure 2.4. System Level Registers
MSW
Intel486 DX Microprocessor Operating Modes: PG, The low-order 16 bits of CRO are also known as the
PE (Table 2.2) Machine Status Word (MSW), for compatibility with
On-Chip Cache Control Modes: CD, NW (Table 2.3) the 80286 protected mode. LMSW and SMSW (load
and store MSW) instructions are taken as special
On-Floating Point Unit Control: TS, EM, MP, NE aliases of the load and store CRO operations, where
(Table 2.4) only the low-order 16 bits of CRO are involved. The
Alignment Check Control: AM LMSW and SMSW instructions in the Intel486 DX
Supervisor Write Protect: WP microprocessor work in an identical fashion to the
LMSW and SMSW instructions in the 80286 (i.e.,
Table 2.2. Processor Operating Modes they only operate on the low-order 16 bits of CRO
and ignores the new bits). New Intel486 DX micro-
PG PE Mode processor operating systems should use the MOV
0 0 REAL Mode. Exact 8086 semantics, CRO, Reg instruction.
with 32-bit extensions available with
prefixes. The defined CRO bits are described below.
0 1 Protected Mode. Exact 80286 PG (Paging Enable, bit 31)
semantics, plus 32-bit extensions The PG bit is used to indicate whether paging is
through both prefixes and "default" enabled (PG= 1) or disabled (PG=O). See Ta-
prefix setting associated with code ble 2.2.
segment descriptors. Also, a sub- CD (Cache Disable, bit 30)
mode is defined to support a virtual
8086 within the context of the The CD bit is used to enable the on-chip cache.
extended 80286 protection model. When CD = 1, the cache will not be filled on
cache misses. When CD = 0, cache fills may be
1 0 UNDEFINED. Loading CRO with this performed on misses. See Table 2.3.
combination of PG and PE bits will
raise a GP fault with error code O. The state of the CD bit, the cache enable input
pin (KEN #), and the relevant page cache dis-
1 1 Paged Protected Mode. All the able (PCD) bit determine if a line read in re-
facilities of Protected mode, with sponse to a cache miss will be installed in the
paging enabled underneath cache. A line is installed in the cache only if
segmentation. CD = 0 and KEN # and PCD are both zero. The
relevant PCD bit comes from either the page
Table 2.3. On-Chip Cache Control Modes table entry, page directory entry or control reg-
ister 3. Refer to Section 5.6 for more details on
CD NW Operating Mode
page cacheability.
1 1 Cache fills disabled"write-through and CD is set to one after RESET.
invalidates disabled.
NW (Not Write-Through, bit 29)
1 0 Cache fills disabled, write-through and
invalidates enabled. The NW bit enables on-chip cache write-
throughs and write-invalidate cycles (NW = 0).
0 1 INVALID. If CRO is loaded with this When NW = 0, all writes, including cache hits,
configuration of bits, a GP fault with are sent out to the pins. Invalidate cycles are
error code is raised. enabled when NW = o. During an invalidate cy-
0 0 Cache fills enabled, write-through and cle a line will be removed from the cache if the
invalidates enabled. invalidate address hits in the cache. See Table
2.3.
Table 2.4. On-Chip Floating Point Unit Control When NW = 1, . write-throughs and write-invali-
date cycles are disabled. A write will not be sent
CROBIT Instruction Type to the pins ilthe write hits in the cache. With
EM TS MP Floating-Point Wait NW =1 the only Write cycles that reach the ex-
ternal bus are cache misses. Write hits with
0 0 0 Execute Execute NW = 1 will never update main memory. Invali-
0 0 1 Execute Execute date cycles are ignored when NW = 1.
0 1 0 Trap 7 Execute AM (Alignment Mask, bit 18)
0 1 1 Trap 7 Trap 7
. 1 The AM bit controls whether the alignment
0 0 Trap 7 Execute
check (AC) bit in the flag register (EFLAGS) can
1 0 1 Trap 7 Execute allow an alignment fault. AM = 0 disables the
1 1 0 Trap 7 Execute AC bit. AM = 1 enables the AC bit. AM = 0 is the
1 1 1 Trap 7 Trap 7 Intel386 microprocessor compatible mode.
2-7
intel . Intel486™ DX2 MICROPROCESSOR
2-8
in1:et Intel486™ DX2 MICROPROCESSOR
31 0
LI_____________________PA_G_E__FA_U_L_T_L_IN_E_A_R__
A_D_D_R_ES_S_R_E_G_I_S_T_ER____________________ ~ICR2
31
NOTE:
P indicates Intel reserved: Do not define; See Section 2.1.6.
Figure 2.6. Control Registers 2 and 3
CR3, shown in Figure 2.6, contains the physical Four special registers are defined to reference the
base address of the page directory table. The In- tables or segments supported by the 80286, In-
tel486 OX microprocessor page directory is always tel386 and Intel486 OX microprocessor protection
page aligned (4 Kbyte-aligned). This alignment is en- model. These tables or segments are:
forced by only storing bits 20-31 in CR3.
GOT (Global Descriptor Table)
In the Intel486 OX microprocessor CR3 contains two lOT (Interrupt Descriptor Table)
new bits, page write-through (PWT) (bit 3) and page LOT (Local Descriptor Table)
cache disable (PC D) (bit 4). The page table entry TSS (Task State Segment)
(PTE) and page directory entry (POE) also contain
PWT and PCO bits. PWT and PCO control page The addresses of these tables and segments are
cacheability. When a page is accessed in external stored in special registers, the System Address and
memory, the state of PWT and PCO are driven out System Segment Registers, illustrated in Figure 2.4.
on the PWT and PCO pins. The source of PWT and These registers are named GOTR, 10TR, LOTR and
PCO can be CR3, the PTE or the POE. PWT and TR respectively. Section 4, Protected Mode Archi-
PCO are sourced from CR3 when the POE is being tecture, describes the use of these registers.
updated. When paging is disabled (PG = 0 in CRO),
PCO and PWT are assumed to be 0, regardless of System Address Registers: GDTR and IDTR
their state in CR3.
The GOTR and 10TR hold the 32-bit linear base ad-
A task switch through a task state segment (TSS) dress and 16-bit limit of the GOT and lOT, respec-
which changes the values in CR3, or an explicit load tively.
into CR3 with any value, will invalidate all cached
page table entries in the translation lookaside buffer Since the GOT and lOT segments are global to all
(TLB). tasks in the system, the GOT and lOT are defined by
32-bit linear addresses (subject to page translation if
The page directory base address in CR3 is a physi- paging is enabled) and 16-bit limit values.
cal address. The page directory can be paged out
while its associated task is suspended, but the oper- System Segment Registers: LDTR and TR
ating system must ensure that the page directory is
resident in physical memory before the task is dis- The LOTR and TR hold the 16-bit selector for the
patched. The entry in the TSS for CR3 has a physi- LOT descriptor and the TSS descriptor, respectively.
cal address, with no provision for a present bit. This
means that the page directory for a task must be Since the LOT and TSS segments are task specific
resident in physical memory. The CR3 image in a segments, the LOT and TSS are defined by selector
TSS must point to this area, before the task can be values stored in the system segment registers.
dispatched through its TSS.
NOTE:
A programmer-invisible segment descriptor register
is associated with each system segment register.
2-9
Intel486TM DX2 MICROPROCESSOR
2.1.3 FLOATING POINT REGISTERS into "fields" corresponding to the FPU's extended-
precision data type.
Figure 2.7 shows the floating point register set. The
on·chip FPU contains eight data registers, a tag The FPU's register set can be accessed either as a
word, a control register, a status register, an instruc- stack, with instructions operating on the top one or
tion pointer and a data pointer. two stack elements, or as a fixed register set, with
instructions operating on explicitly designated regis-
ters. The TOP field in the status word identifies the
Tag current top-of-stack register. A "push" operation
Field decrements TOP by one and loads a value into the
79 78 64 63 0 1 0 new top register. A "pop" operation stores the value
,----
RO Sign Exponent Significand from the current top register and then increments
f--- TOP by one. Like other Intel486 OX microprocessor
R1
I--- stacks in memory, the FPU register stack grows
R2 "down" toward lower-addressed registers.
f---
R3
I--- Instructions may address the data registers either
R4
f--- implicitly or explicitly. Many instructions operate on
R5 the register at the TOP of the stack. These instruc-
f---
R6 tions implicitly address the register at which TOP
I--- points. Other instructions allow the programmer to
R7
'--- explicitly specify which register to use. This explicit
register addressing is also relative to TOP.
15 0 47 0
Control Register I Instruction Pointer I 2.1.3.2 Tag Word
Status Register I Data Pointer I The tag word marks the content of each numeric
Tag Word data register, as shown in Figure 2.8. Each two-bit
tag represents one of the eight data registers. The
Figure 2.7. Floating Point Registers principal function of the tag word is to optimize the
FPUs performance and stack handling by making it
The operation of the Intel486 OX microprocessor's possible to distinguish between empty and nonemp-
on-chip floating point unit is exactly the same as the ty register locations. It also enables exception han-
Intel387 math coprocessor. Software written for the dlers to check the contents of a stack location with-
Intel387 math coprocessor will run on the on-chip out the need to perform complex decoding of the
floating point unit (FPU) without any modifications. actual data.
Floating point computations use the Intel486 OX mi- The 16-bit status word reflects the overall state of
croprocessor's FPU data registers. These eight 80- the FPU. The status word is shown in Figure 2.9 and
bit registers provide the equivalent capacity of twen- is located in the status register.
ty 32-bit registers. Each of the eight data registers is
divided
15 o
TAG (7) TAG (6) TAG (5) TAG (4) TAG (3) TAG (2) TAG (1) TAG (0)
NOTE:
The index i of tag(i) is not top-relative. A program typically uses the "top" field of Status Word to determine which tag(i)
field refers to logical top of stack.
TAG VALUES:
00 = Valid
01 = Zero
10 = ONaN. SNaN. Infinity. Denormal and Unsupported Formats
11 = Empty
2-10
inteL Intel486™ DX2 MICROPROCESSOR
r---------------------------------------BUSY
EXCEPTION FLAGS:
PRECISION -------------------'
UNDERFLOW
OVERFLOW
ZERO DIVIDE --------------------------'
DENORMALIZED OPERAND
INVALID OPERATION
241245-5
ES is set il any unmasked exception bit is set; cleared otherwise.
See Table 2.5 lor interpretation 01 condition code.
TOP values:
.
000 ~ Register a is Top 01 Stack
001 ~ Register 1 is Top 01 Stack
The B bit (Busy, bit 15) is included for 8087 compati- The four numeric condition code bits, CO-C3, are
bility. The B bit reflects the contents of the ES bit (bit similar to the flags in EFLAGS. Instructions that per·
7 of the status word). form arithmetic operations update CO-C3 to reflect
the outcome. The effects of these instructions on
Bits 13 -11 (TOP) point to the FPU register that is the condition codes are summarized in Tables 2.5
the current top-of-stack. through 2.8.
2-11
int:et Intel486TM DX2 MICROPROCESSOR
FCOM, FCOMP,
FCOMPP, FTST, Result of comparison Operand is not
Zero
FUCOM, FUCOMP, (see Table 2.7) comparable
orO/U#
FUCOMPP, FICOM, (Table 2.7)
FICOMP
FXAM Operand class Sign Operand class
(see Table 2.8) orO/U# (Table 2.8)
FCHS, FABS, FXCH,
FINCTOP, FDECTOP,
Constant loads, Zero
UNDEFINED UNDEFINED
FXTRACT, FLD, or O/U#
FILD, FBLD,
FSTP (ext real)
FIST, FBSTP,
FRNDINT, FST,
FSTP, FADD, FMUL,
FDIV, FDIVR, Roundup
UNDEFINED UNDEFINED
FSUB, FSUBR, orO/U#
FSCALE, FSORT,
FPATAN, F2XM1,
FYL2X, FYL2XP1
FPTAN, FSIN Roundup Reduction
FCOS, FSINCOS UNDEFINED orO/U#, 0= complete
undefined 1 = incomplete
ifC2 = 1
FLDENV, FRSTOR Each bit loaded from memory
FINIT Clears these bits
FLDCW, FSTENV,
FSTCW, FSTSW, UNDEFINED
FCLEX, FSAVE
O/U# When both IE and SF bits of status word are set, indicating a stack exception, this bit
distinguishes between stack overflow (C1 = 1) and underflow (C1 = 0).
Reduction If FPREM or FPREM1 produces a remainder that is less than the modulus, reduction is
complete. When reduction is incomplete the value at the top of the stack is a partial
remainder, which can be used as input to further reduction. For FPTAN, FSIN, FCOS, and
FSINCOS, the reduction bit is set if the operand at the top of the stack is too large. In this
case the original operand remains at the top of the stack.
Roundup When the PE bit of the status word is set, this bit indicates whether the last rounding in the
instruction was upward.
UNDEFINED Do not rely on finding any specific value in these bits.
2-12
infel . Intel486TM DX2 MICROPROCESSOR
..
Table 2 7 Condition Code Resulting from Comparison
Order C3 C2 CO
TOP> Operand 0 0 0
TOP < Operand 0 0 1
TOP = Operand 1 0 0
Unordered 1 1 1
2-13
Intel486TM DX2 MICROPROCESSOR
Bit 7 is the error summary (ES) status bit. The ES bit register o. The exception condition must be resolved
is set if any unmasked exception bit (bits 0-5 in the via an interrupt service routine. The FPU saves the
status word) is set; ES is clear otherwise. The address of the floating point instruction that caused
FERR# (floating point error) signal is asserted when the exception and the address of any memory oper-
ES is set. and required by that instruction in the instruction and
data pointers (see Section 2.1.3.4).
Bit 6 is the stack flag (SF). This bit is used to distin-
guish invalid operations due to stack overflow or un- Note that when a new value is loaded into the status
derflow. When SF is set, bit 9 (C1) distinguishes be- word by the FLDENV (load environment) or
tween stack overflow (C1 = 1) and underflow FRSTOR (restore state) instruction, the value of ES
(C1 =0). (bit 7) and its reflection in the B bit (bit 15) are not
derived from the values loaded from memory. The
Table 2.9 shows the six exception flags in bits 0-5 values of ES and B are dependent upon the values
of the status word. Bits 0-5 are set to indicate that of the exception flags in the status word and their
the FPU has detected an exception while executing corresponding masks in the control word. If ES is set
an instruction. in such a case, the FERR# output of the Intel486
DX microprocessor is activated immediately.
The six exception flags in the status word can be
individually masked by mask bits in the FPU control
word. Table 2.9 lists the exception conditions, and 2.1.3.4 Instruction and Data Pointers
their causes in order of precedence. Table 2.9 also
Because the FPU operates in parallel with the ALU
shows the action taken by the FPU if the corre-
(in the Intel486 DX and Intel486 microprocessors
sponding exception flag is masked.
the arithmetic and logic unit (ALU) consists of the
base architecture registers), any errors detected by
An exception that is not masked by the control word
the FPU may be reported after the ALU has execut-
will cause three things to happen: the corresponding
ed the floating point instruction that caused it. To
exception flag in the status word will be set, the ES
allow identification of the failing numeric instruction,
bit in the status word will be set and the FERR#
the Intel486 DX microprocessor contains two pointer
output signal will be asserted. When the Intel486 DX
registers that supply the address of the failing nu-
microprocessor attempts to execute another floating
meric instruction and the address of its numeric
point or WAIT instruction, exception 16 occurs or an
memory operand (if appropriate).
external interrupt happens if the NE = 1 in control
2-14
int'et Intel486™ DX2 MICROPROCESSOR
The instruction and data pointers are provided for attribute in effect (32-bit operand or 16-bit operand).
user-written error handlers. These registers are ac- When the Intel486 DX microprocessor is in the virtu-
cessed by the FLDENV (load environment), al-86 mode, the real address mode formats are
FSTENV (store environment), FSAVE (save state) used. The four formats are shown in Figures 2.10-
and FRSTOR (restore state) instructions. Whenever 2.13. The floating point instructions FLDENV,
the Intel486 DX microprocessor decodes a new FSTENV, FSAVE and FRSTOR are used to transfer
floating point instruction, it saves the instruction (in- these values to and from memory. Note that the val-
cluding any prefixes that may be present), the ad- ue of the data pointer is undefined if the prior float-
dress of the operand (if present) and the opcode. ing point instruction did not have a memory operand.
IPOFFSET C
00000
I OPCODE10 .. 0 CSSELECTOR 10
Figure 2.10. Protected Mode FPU Instruction and Data Pointer Image in Memory, 32-Bit Format
0000
I INSTRUCTION POINTER 31 .. 16 I 0 I OPCODE 10 .. 0 10
0000
I OPERAND POINTER 31..16
I 0000 00000000 18
Figure 2.11. Real Mode FPU Instruction and Data Pointer Image in Memory, 32-Bit Format
2-15
int:et Intel486TM DX2 MICROPROCESSOR
OPERAND SELECTOR C
DP 19.16 I0 I0 0 0 0 0 0 0 0 000 C
The FPU provides several processing options that are selected by loading a control word from memory into
the control register. Figure 2.14 shows the format and encoding of fields in the control word.
r-,--,------------------ RESERVED
, - - - - - - - - - - - - - - - - RESERVED'
, - - , - - - - - - - - - - - - - - ROUNDING CONTROL
, - , - - - - - - - - - - - - PRECISION CONTROL
RESERVED _ _ _ _ _ _-'-..J
• "0" AFTER RESET OR FINIT;
CHANGEABLE UPON LOADING THE
EXCEPTION MASKS:
CONTROL WORD (CW). PROGRAMS
PRECISION - - - - - - - - - ' MUST IGNORE THIS BIT.
UNDERFLOW
OVERFLOW
ZERO DIVIDE - - - - - - - - - - - - - - '
DENORMALIZED OPERAND
INVALID OPERATION
241245-6
Precision Control Rounding Control
00-24 bits (single precision) OO-Round to nearest or even
01-(reserved) 01-Round down (toward - 00)
10-53 bits (double precision) 10-Round up (toward + 00)
11--.04 bits (extended precision) 11-Chop (truncate toward zero)
2-16
intel~ Intel486TM DX2 MICROPROCESSOR
The RC bits provide for directed rounding and Intel Reserved Do Not Define DR5
true chop, as well as the unbiased round to BREAKPOINT STATUS DR6
nearest even mode specified in the IEEE stan- BREAKPOINT CONTROL DR?
dard. Rounding control affects only those in-
structions that perform rounding at the end of
the operation (and thus can generate a preci- Test Registers
sion exception); namely, FST, FSTP, FIST, all CACHE TEST DATA TR3
arithmetic instructions (except FPREM,
FPREM1, FXTRACT, FABS and FCHS), and all CACHE TEST STATUS TR4
transcendental instructions. CACHE TEST CONTROL TR5
PC (Precision Control, bits 8-9) TLB TEST CONTROL TR6
The PC bits can be used to set the FPU internal TLB TEST STATUS TR?
operating precision of the significand at less TLB = Translation Lookaside Buffer
than the default of 64 bits (extended precision).
This can be useful in providing compatibility with Figure 2.15
early generation arithmetic processors of small-
er precision. PC affects only the instructions
ADD, SUB, DIV, MUL, and SORT. For all other 2.1.4.2 Test Registers
instructions, either the precision is determined
by the opcode or extended precision is used. The Intel486 OX microprocessor contains five test
registers. The test registers are shown in Figure
2.15. TR6 and TR7 are used to control the testing of
2.1.4 DEBUG AND TEST REGISTERS the translation lookaside buffer. TR3, TR4 and TR5
are used for testing the on-chip cache. The use of
2.1.4.1 Debug Registers the test registers is discussed in Section 8.
2-17
int'et Intel486TM DX2 MICROPROCESSOR
NOTES:
PL = 0: The registers can be accessed only when the current privilege level is zero.
*IOPL: The PUSHF and POPF instructions are made I/O Privilege Level sensitive in Virtual 86 Mode.
2-18
intel~ Intel486™ DX2 MICROPROCESSOR
2.2 Instruction Set byte at the high address. Dwords are stored in four
consecutive bytes in memory with the low-order byte
The Intel486 OX microprocessor instruction set can at the lowest address, the high-order byte at the
be divided into 11 categories of operations: highest address. The address of a word or dword is
the byte address of the low-order byte.
Data Transfer
Arithmetic In addition to these basic data types, the Intel486
Shift/Rotate OX microprocessor supports two larger units of
String Manipulation memory: pages and segments. Memory can be di-
Bit Manipulation vided up into one or more variable length segments,
Control Transfer which can be swapped to disk or shared between
High Level Language Support programs. Memory can also be organized into one
Operating System Support or more 4 Kbyte pages. Finally, both segmentation
Processor Control and paging can be combined, gaining the advan-
Floating Point tages of both systems. The Intel486 OX microproc-
Floating Point Control essor supports both pages and segments in order to
provide maximum flexibility to the system designer.
The Intel486 OX microprocessor instructions are list- Segmentation and paging are complementary. Seg-
ed in Section 10. Note that all floating point unit in- mentation is useful for organizing memory in logical
struction mnemonics begin with an F. modules, and as such is a tool for the application
programmer, while pages are useful for the system
All Intel486 OX microprocessor instructions operate programmer for managing the physical memory of a
on either 0, 1, 2 or 3 operands; where an operand system.
resides in a register, in the instruction itself or in
memory. Most zero operand instructions (e.g., CLI, 2.3.1 ADDRESS SPACES
STI) take only one byte. One operand instructions
generally are two bytes long. The average instruc- The Intel486 OX microprocessor has three distinct
tion is 3.2 bytes long. Since the Intel486 OX micro- address spaces: logical, linear, and physical. A
processor has a 32-byte instruction queue, an aver- logical address (also known as a virtual address)
age of 10 instructions will be prefetched. The use of consists of a selector and an offset. A selector is the
two operands permits the following types of com- contents of a segment register. An offset is formed
mon instructions: by summing all of the addressing components
(BASE, INDEX, DISPLACEMENT) discussed in Sec-
Register to Register tion 2.5.3 Memory Addressing Modes into an ef-
Memory to Register fective address. Since each task on the Intel486 OX
Memory to Memory microprocessor has a maximum of 16K (2 14 -1) se-
Immediate to Register lectors, and offsets can be 4 gigabytes, (2 32 bits)
Register to Memory this gives a total of 246 bits or 64 terabytes of logi-
Immediate to Memory cal address space per task. The programmer sees
this virtual address space.
The operands can be either 8, 16, or 32 bits long. As
a general rule, when executing code written for the The segmentation unit translates the logical ad-
Intel486 OX, Intel486 or Intel386 microprocessors dress space into a 32-bit linear address space. If the
(32-bit code), operands are 8 or 32 bits; when exe- paging unit is not enabled then the 32-bit linear ad-
cuting existing 80286 or 8086 code (16-bit code), dress corresponds to the physical address. The
operands are 8 or 16 bits. Prefixes can be added to paging unit translates the linear address space into
all instructions which override the default length of the physical address space. The physical address
the operands (Le., use 32-bit operands for 16-bit is what appears on the address pins.
code, or 16-bit operands for 32-bit code).
The primary difference between Real Mode and Pro-
tected Mode is how the segmentation unit performs
2.3 Memory Organization the translation of the logical address into the linear
address. In Real Mode, the segmentation unit shifts
the selector left four bits and adds the result to the
Introduction offset to form the linear address. While in Protected
Mode every selector has a linear base address as-
Memory on the Intel486 OX microprocessor is divid- sociated with it. The linear base address is stored in
ed up into 8-bit quantities (bytes), 16-bit quantities one of two operating system tables (Le., the Local
(words), and 32-bit quantities (dwords). Words are Descriptor Table or Global Descriptor Table). The
stored in two consecutive bytes in memory with the selector's linear base address is added to the offset
low-order byte at the lowest address, the high order to form the final linear address.
2-19
Intel486TM DX2 MICROPROCESSOR
I INDEX
J
I BASE I~ I DISPLACEIIENT I
I SCALE
1,2,4,8
J 31
PHYSICAL
0
.~
IIEIIORY
8E3#- BEO#
-~ A31-A2
l32 EFFECTIVE
ADDRESS
15 320 SEGMENTATION 32 PAGING UNIT 32
LOGICAL OR
II RL1~VIRTUAL ADDRESS UNIT LINEAR (OPTIONAL USE) PHYSICAL
PL I
ADDRESS ADDRESS
SELECTOR DESCRIPTOR
INDEX
SEGIIENT
REGISTER
241245-7
Figure 2.16 shows the relationship between the vari- and create a system with a four gigabyte linear ad-
ous address spaces. dress space. This creates a system where the virtual
address space is the same as the linear address
space. Further details of segmentation are dis-
2.3.2 SEGMENT REGISTER USAGE cussed in Section 4.1.
The main data structure used to organize memory is
the segment. On the Intel486 OX microp~ocessor,
segments are variable sized blocks of linear ad- 2.4 I/O Space
dresses which have certain attributes associated
The Intel486 OX microprocessor has two distinct
with them. There are two main types of segments: physical address spaces: Memory and I/O. General-
code and data, the segments are of variable ~ize ly, peripherals are placed in I/O space although the
and can be as small as 1 byte or as large as 4 giga- Intel486 OX microprocessor also supports memory-
bytes (232 bytes). mapped peripherals. The I/O space consists of
64 Kbytes, it can be divided into 64K 8-bit ports, 32K
In order to provide compact instruction encoding, 16-bit ports, or 16K 32-bit ports, or any combination
and increase processor performance, instructions of ports which add up to less than 64 Kbytes. The
do not need to explicitly specify which segment reg- 64K I/O address space refers to physical memory
ister is used. A default segment register is automati- rather than linear address since I/O instructions do
cally chosen according to the rules of Table 2.11
not go through the segmentation or paging hard-
(Segment Register Selection Rules). In general, data
ware. The MIIO# pin acts as an additional address
references use the selector contained in the OS reg- line thus allowing the system designer to easily de-
ister; Stack references use the SS register and In-
termine which address space the processor is ac-
struction fetches use the CS register. The contents
cessing.
of the Instruction Pointer provide the offset. Special
segment override prefixes allow the ~xplicit u~e o! ~ The I/O ports are accessed via the IN and OUT 110
given segment register, and over~lde th~ ImpliCit instructions, with the port address supplied as an
rules listed in Table 2.11. The override prefixes also immediate 8-bit constant in the instruction or in the
allow the use of the ES, FS and GS segment regis- OX register. All 8- and 16-bit port addresses are zero
ters. extended on the upper address lines. The 110 in-
structions cause the M/IO# pin to be driven low.
There are no restrictions regarding the overlapping
of the base addresses of any segments. Thus, all 6 110 port addresses 00F8H through OOFFH are re-
segments could have the base address set to zero
served for use by Intel.
2-20
intel . Intel486TM DX2 MICROPROCESSOR
2-21
Intel486TM DX2 MICROPROCESSOR
mode is especially useful for accessing arrays or Based Mode: A BASE register's contents is added
structures. to a DISPLACEMENT to form the operand's offset.
EXAMPLE: MOV ECX, [EAX + 24]
Combinations of these 4 components make up the 9
additional addressing modes. There is no perform- Index Mode: An INDEX register's contents is added
ance penalty for using any of these addressing com- to a DISPLACEMENT to form the operand's offset.
binations, since the effective address calculation is EXAMPLE: ADD EAX, TABLE[ESIl
pipelined with the execution of other instructions.
The one exception is the simultaneous use of Base Scaled Index Mode: An INDEX register's contents is
and Index components which requires one addition- multiplied by a scaling factor which is added to a
al clock. DISPLACEMENT to form the operand's offset.
EXAMPLE: IMUL EBX, TABLE[ESI*4],7
As shown in Figure 2.17, the effective address (EA)
of an operand is calculated according to the follow- Based Index Mode: The contents of a BASE register
ing formula. is added to the contents of an INDEX register to
form the effective address of an operand.
EA = Base Reg + (Index Reg * Scaling) + Displacement EXAMPLE: MOV EAX, [ESI] [EBX]
Direct Mode: The operand's offset is contained as Based Scaled Index Mode: The contents of an IN-
part of the instruction as an 8-, 16- or 32-bit dis- DEX register is multiplied by a SCALING factor and
placement. the result is added to the contents of a BASE regis-
EXAMPLE: INC Word PTR [500] ter to obtain the operand's offset.
EXAMPLE: MOV ECX, [EDX*S] [EAX]
Register Indirect Mode: A BASE register contains
the address of the operand.
EXAMPLE: MOV [ECX], EDX
SEGMENT REGISTER
SS
GS
FS
ES
EFFECTIVE
ADDRE SS SEGMENT
LIMIT
/'
"\
LINEAR
DESCRIPTOR REGISTERS ADDRESS
• TARGET ADDRESS
SS
GS SELECTED
FS SEGMENT
ES
DS
ACCESS RIGHTS CS
LIMIT
BASE ADDRESS ------~
./
SEGMENT BASE ADDRESS
241245-8
2-22
intel . Intel486™ DX2 MICROPROCESSOR
Based Index Mode with Displacement: The contents Address Length Prefix since, with D = 0, the default
of an INDEX Register and a BASE register's con- addressing mode is 16 bits.
tents and a DISPLACEMENT are all summed to-
gether to form the operand offset. Example: The D bit is 1, and the program wants to
EXAMPLE: ADD EDX, [ES!] [EBP + OOFFFFFOH] store a 16-bit quantity. The Operand Length Prefix is
used to specify only a 16-bit value; MOV MEM16,
Based Scaled Index Mode with Displacement: The DX.
contents of an INDEX register are multiplied by a
SCALING factor, the result is added to the contents The OPERAND LENGTH and Address Length Pre-
of a BASE register and a DISPLACEMENT to form fixes can be applied separately or in combination to
the operand~s offset. any instruction. The Address Length Prefix does not
EXAMPLE: MOV EAX, LOCALTABLE[EDI04] allow addresses over 64 Kbytes to be accessed in
[EBP+80] Real Mode. A memory address Which exceeds
FFFFH will result in a General Protection Fault. An
Address Length Prefix only allows the use of the ad-
2.5.4 DIFFERENCES BETWEEN 16- AND 32-BIT ditional Intel486 DX Microprocessor addressing
ADDRESSES modes.
In order to provide software compatibility with the
When executing 32-bit code, the Intel486 DX Micro-
80286 and the 8086, the Intel486 DX Microproces-
processor uses either 8-, or 32-bit displacements,
sor can execute 16-bit instructions in Real and Pro-
and any register can be used as base or index regis-
tected Modes. The processor determines the size of
the instructions it is executing by examining the D bit ters. When executing 16-bit code, the displacements
are either 8, or 16 bits, and the base and index regis-
in the CS segment Descriptor. If the D bit is 0 then
ter conform to the 80286 model. Table 2.12 illus-
all operand lengths and effective addresses are as-
trates the differences.
sumed to be 16 bits long. If the D bit is 1 then the
default length for operands and addresses is 32 bits.
In Real Mode the default size for operands and ad-
dresses is 16 bits. 2.6 Data. Formats
Regardless of the default precision of the operands 2.6.1 DATA TYPES
or addresses, the Intel486 DX Microprocessor is
able to execute either 16- or 32-bit instructions. This The Intel486 DX Microprocessor can support a wide
is specified via the use of override prefixes. Two pre- variety of data types. In the following descriptions,
fixes, the Operand Size Prefix and the Address the on-chip floating point unit (FPU) consists of the
Length Prefix, override the value of the D bit on an floating point registers. The central processing unit
individual instruction basis. These prefixes are auto- (CPU) consists of the base architecture registers.
matically added by Intel assemblers.
2.6.1.1 Unsigned Data Types
Example: The processor is executing in Real Mode
and the programmer needs to access the EAX regis- The FPU does not support unsigned data types. Re-
ters. The assembler code for this might be MOV fer to Table 2.13.
EAX, 32-bit MEMORYOP, ASM486 Macro Assem-
bler automatically determines that an Operand Size Byte: Unsigned 8-bit quantity
Prefix is needed and generates it. Word: Unsigned 16-bit quantity
Dword: Unsigned 32-bit quantity
Example: The D bit is 0, and the programmer wishes
to use Scaled Index addressing mode to access an The least significant bit (LSB) in a byte is bit 0, and
array. The Address Length Prefix allows the use of the most significant bit is 7.
MOV DX, TABLE[E51°2]. The assembler uses an
Table 2.12. BASE and INDEX Registers for 16- and 32-Blt Addresses
16-Bit Addressing 32-Bit Addressing
BASE REGISTER BX,BP Any 32-bit GP Register
INDEX REGISTER 51,DI Any 32-bit GP Register
Except ESP
SCALE FACTOR none 1,2,4,8
DISPLACEMENT 0,8,16 bits 0,8,32 bits
2-23
Intel486TM DX2 MICROPROCESSOR
2-24
Intel486TM DX2 MICROPROCESSOR
8-Bit Unpacked BCD X 0-9 1 Digit One BCD Digit per Byte I
7 0
8-Bit Packed BCD X 0-9 2 Digits Two BCD Digits per Byte I
79 72 0
31 23 0
SignBil t
63 52 0
SignBil t
79 63 0
Biased
Extended Precision Real X ± 10±4932 64 Bits
t
I Exp.
SignBft
11
Significand
2-25
Intel486™ DX2 MICROPROCESSOR
CJ ...
1 0
Byte String 17 017 01
A+4N+3 A+4N+2 A+4N+1 A+4N A+7 A+6 A+5 A+4 A+3 A+2 A+1 A
Dword!
String 31
i
I
N
i
01
... 131
i
1
I i
0131
i
I
0
i
01
A+ 268,435,455 A- 268,435,456
-J, A+3 A+2 A+1 A A-1 A-2 A-3 -J,
Bit !
String 7
i
017 01 II 17 017 017 017 ... 1 017
i i i
017 017 01 II 17 017
i
01
ASCII Character
D
2.6.1.7 Pointer Data Types Table 2.15. Pointer Data Types
Least Sig Byte
A pointer data type contains a value that gives the -J,
address of a piece of data. The Intel486 OX micro-
processor supports two types of pointers. Refer to
Data Format I I I I I I I I I
Table 2.15, 47 31 0
2-26
Intel486TM DX2 MICROPROCESSOR
2.6.2 LITTLE ENDIAN vs BIG ENDIAN Hardware interrupts occur as the result of an exter-
DATA FORMATS nal event and are classified into two types: maskable
or non-maskable. Interrupts are serviced after the
The Intel486 DX microprocessor, as well as all other execution of the current instruction. After the inter-
members of the 86 architecture use the "Iittle-endi- rupt handler is finished servicing the interrupt, exe-
an" method for storing data types that are larger cution proceeds with the instruction immediately af-
than one byte. Words are stored in two consecutive ter the interrupted instruction. Sections 2.7.3 and
bytes in memory with the low-order byte at the low- 2.7.4 discuss the differences between Maskable and
est address and the high order byte at the high ad- Non-Maskable interrupts.
dress. Dwords are stored in four consecutive bytes
in memory with the low-order byte at the lowest ad- Exceptions are classified as faults, traps, or aborts
dress and the high order byte at the highest address. depending on the way they are reported, and wheth-
The address of a word or dword data item is the byte er or not restart of the instruction causing the excep-
address of the low-order byte. tion is supported. Faults are exceptions that are de-
tected and serviced before the execution of the
Figure 2.18 illustrates the differences between the faulting instruction. A fault would occur in a virtual
big-end ian and little-end ian formats for dwords. The memory system, when the processor referenced a
32 bits of data are shown with the low order bit num- page or a segment which was not present. The oper-
bered bit 0 and the high order bit numbered 32. Big- ating system would fetch the page or segment from
end ian data is stored with the high-order bits at the disk, and then the Intel486 DX microprocessor
lowest addressed byte. Little-endian data is stored would restart the instruction. Traps are exceptions
with the high-order bits in the highest addressed that are reported immediately after the execution of
byte. the instruction which caused the problem. User de-
fined interrupts are examples of traps. Aborts are
The Intel486 DX microprocessor has two instruc- exceptions which do not permit the precise location
tions which can convert 16- or 32-bit data between of the instruction causing the exception to be deter-
the two byte orderings. BSWAP (byte swap) handles mined. Aborts are used to report severe errors, such
four byte values and XCHG (exchange) handles two as a hardware error, or illegal values in system ta-
byte values. bles.
2-27
Intel486TM DX2 MICROPROCESSOR
2-28
int:eL Intel486TM DX2 MICROPROCESSOR
The IF bit in the EFLAG registers is reset when an 2.7.6 INTERRUPT AND EXCEPTION
interrupt is being serviced. This effectively disables PRIORITIES
servicing additional interrupts during an interrupt
service routine. However, the IF may be set explicitly Interrupts are externally-generated events. Maska-
by the interrupt handler, to allow the nesting of inter- ble Interrupts (on the INTR input) and Non-Maskable
rupts. When an IRET instruction is executed the Interrupts (on the NMI input) are recognized at in-
original state of the IF is restored. struction boundaries. When NMI and maskable
INTR are both recognized at the same instruction
boundary, the Intel486 OX microprocessor invokes
2.7.4 NON-MASKABLE INTERRUPT the NMI service routine first. If, after the NMI service
routine has been invoked, maskable interrupts are
Non-maskable interrupts provide a method of servic-
still enabled, then the Intel486 OX microprocessor
ing very high priority interrupts. A common example
of the use of a non-maskable interrupt (NMI) would will invoke the appropriate interrupt service routine.
be to activate a power failure routine. When the NMI
Table 2.17a. Intel486TM OX Microprocessor
input is pulled high it causes an interrupt with an
internally supplied vector value of 2. Unlike a normal Priority for Invoking Service Routines in
hardware interrupt, no interrupt acknowledgment se- Case of Simultaneous External Interrupts
quence is performed for an NMI.
1. NMI
While executing the NMI servicing procedure, the In- 2.INTR
tel486 OX microprocessor will not service further
NMI requests until an interrupt return (IRET) instruc-
Exceptions are internally-generated events. Excep-
tion is executed or the processor is reset. If NMI
occurs while currently servicing an NMI, its presence tions are detected by the Intel486 OX microproces-
will be saved for servicing after executing the first sor if, in the course of executing an instruction, the
Intel486 OX microprocessor detects a problematic
IRET instruction. The IF bit is cleared at the begin-
ning of an NMI interrupt to inhibit further INTR inter- condition. The Intel486 OX microprocessor then im-
mediately invokes the appropriate exception service
rupts.
routine. The state of the Intel486 OX microprocessor
is such that the instruction causing the exception
2.7.5 SOFTWARE INTERRUPTS can be restarted. If the exception service routine has
taken care of the problematic condition, the instruc-
A third type of interrupt/exception for the Intel486 tion will execute without causing the same excep-
OX microprocessor is the software interrupt. An INT tion.
n instruction causes the processor to execute the
interrupt service routine pointed to by the nth vector It is possible for a single instruction to generate sev-
in the interrupt table. eral exceptions (for example, transferring a single
operand could generate two page faults if the oper-
A special case of the two byte software interrupt INT and location spans two "not present" pages). How-
n is the one byte INT 3, or breakpoint interrupt. By ever, only one exception is generated upon each at-
inserting this one byte instruction in a program, the tempt to execute the instruction. Each exception
user can set breakpoints in his program as a debug- service routine should correct its corresponding ex-
ging tool. ception, and restart the instruction. In this manner,
exceptions are serviced until the instruction exe-
A final type of software interrupt is the single step cutes successfully.
interrupt. It is discussed in Section 9.2.
As the Intel486 OX microprocessor executes instruc-
tions, it follows a consistent cycle in checking for
exceptions, as shown in Table 2.17b. This cycle is
repeated as each instruction is executed, and oc-
curs in parallel with instruction decoding and execu-
tion.
2-29
int'eL Intel486™ DX2 MICROPROCESSOR
Consider the case of the Intel486 DX microproc- The Intel486 DX microprocessor fully supports re-
essor having just completed an instruction. It starting all instructions after faults. If an exception is
then performs the following checks before reach- detected in the instruction to be executed (exception
ing the point where the next instruction is com- categories 4 through 10 in Table 2.17b), the Intel486
pleted: DX microprocessor invokes the appropriate excep-
tion service routine. The Intel486 DX microprocessor
1. Check for Exception 1 Traps from the instruc-
is in a state that permits restart of the instruction, for
tion just completed (single-step via Trap Flag,
all cases but those in Table 2.17 c. Note that all such
or Data Breakpoints set in the Debug Regis-
cases are easily avoided by proper design of the
ters).
operating system.
2. Check for Exception 1 Faults in the next in-
struction (Instruction Execution Breakpoint Table 2.17c. Conditions Preventing
set in the Debug Registers for the next in- Instruction Restart
struction).
3. Check for external NMI and INTR. An instruction causes a task switch to a task
4. Check for Segmentation Faults that prevent- whose Task State Segment is partially "not
ed fetching the entire next instruction (excep- present". (An entirely "not present" TSS is re-
tions 11 or 13). startable.) Partially present TSS's can be avoid-
5. Check for Page Faults that prevented fetching ed either by keeping the TSS's of such tasks
the entire next instruction (exception 14). present in memory, or by aligning TSS segments
to reside entirely within a single 4K page (for TSS
6. Check for Faults decoding the next instruction segments of 4 Kbytes or less).
(exception 6 if illegal opcode; exception 6 if in
Real Mode or in Virtual 8086 Mode and at- NOTE:
tempting to execute an instruction for Protect- These conditions are avoided by using the oper-
ed Mode only (see Section 4.6.4); or excep- ating system designs mentioned in this table.
tion 13 if instruction is longer than 15 bytes, or
privilege violation in Protected Mode (Le., not
at IOPL or at CPL = 0).
2.7.8 DOUBLE FAULT
7. If WAIT opcode, check if TS= 1 and MP= 1
(exception 7 if both are 1). A Double Fault (exception 8) results when the proc-
8. If opcode for Floating Point Unit, check if essor attempts to invoke an exception service rou-
EM = 1 or TS = 1 (exception 7 if either are 1). tine for the segment exceptions (10, 11, 12 or 13),
but in the process of doing so, detects an exception
9. If opcode for Floating Point Unit (FPU), check
other than a Page Fault (exception 14).
FPU error status (exception 16 if error status
is asserted).
A Double Fault (exception 8) will also be generated
10. Check in the following order for each memo- when the processor attempts to invoke the Page
ry reference required by the instruction: Fault (exception 14) service routine, and detects an
a. Check for Segmentation Faults that pre- exception other than a second Page Fault. In any
vent transferring the entire memory quan- functional system, the entire Page Fault service rou-
tity (exceptions 11, 12, 13). tine must remain "present" in memory.
b. Check for Page Faults that prevent trans-
When a Double Fault occurs, the Intel486 DX micro-
ferring the entire memory quantity (ex-
processor invokes the exception service routine for
ception 14).
exception 8.
NOTE:
The order stated supports the concept of the 2.7.9 FLOATING POINT INTERRUPT VECTORS
paging mechanism being "underneath" the seg-
mentation mechanism. Therefore, for any given Several interrupt vectors of the Intel486 DX micro-
code or data reference in memory, segmenta- processor are used to report exceptional conditions
tion exceptions are generated before paging ex- while executing numeric programs in either real or
ceptions are generated. protected mode. Table 2.18 shows these interrupts
and their causes.
2-30
int:et Intel486™ DX2 MICROPROCESSOR
2-31
inteL Intel486TM DX2 MICROPROCESSOR
15 o
19 o
SELECTED
SEGMENT
~----------~~--------~---
SEGMENT BASE
241245-9
3-1
intel . Intel486TM DX2 MICROPROCESSOR
Table 3_1. Exceptions with Different Meanings in Real Mode (see Table 2.16)
Interrupt Related Return
Function
Number Instructions Address Location
Interrupt table limit too small 8 INT Vector is not Before
within table limit Instruction
CS, OS, ES, FS, GS 13 Word memory reference Before
Segment overrun exception beyond offset = FFFFH. Instruction
An attempt to execute
past the end of CS segment.
SS Segment overrun exception 12 Stack Reference Before
beyond offset = FFFFH Instruction
3-2
Intel486TM DX2 MICROPROCESSOR
4-1
Intel486TM DX2 MICROPROCESSOR
,. 48 BIT POINTER
I SEGMENT
I OFFSET
"' PHYSICAL ADDRESS
4K BYTES
15 31
I 0
4K BYTES
Intol486 DX
CPU 4K BYTES
ACCESS RIGHTS PHYSICAL
PAGING
LIMIT ~ P MECHANISM ADDRESS
MEMORY OPERAND PHYSICAL PAGE:
~ BASE ADDRESS
~ LINEAR;'
PAGE FRAME
4K BYTES
4K BYTES
4K BYTES
241245-11
PL: Privilege Level-One of the four hierarchical The descriptor tables define all of the segments
privilege levels. Level 0 is the most privileged level which are used in a Intel486 microprocessor system.
and level 3 is the least privileged. More privileged There are three types of tables on the Intel486 DX2
levels are numerically smaller than less privileged microprocessor which hold descriptors: the Global
levels. Descriptor Table, Local Descriptor Table, and the In-
terrupt Descriptor Table. All of the tables are vari-
RPL: Requestor Privilege Level-The privilege level able length memory arrays. They can range in size
of the original supplier of the selector. RPL is deter- between 8 bytes and 64 Kbytes. Each table can hold
mined by the least two significant bits of a selector. up to 8192 8-byte descriptors. The upper 13 bits of a
selector are used as an index into the descriptor ta-
DPL: Descriptor Privilege Level-This is the least ble. The tables have registers associated with them
privileged level at which a task may access that de- which hold the 32-bit linear base address, and the
scriptor (and the segment associated with that de- 16-bit limit of each table.
scriptor). Descriptor Privilege Level is determined by
bits 6:5 in the Access Right Byte of a descriptor.
4-2
intel . Intel486™DX2 MICROPROCESSOR
Each of the tables has a register associated with it, nism for isolating a given task's code and data seg-
the GDTA, LDTA, and the IDTR (see Figure 4.3). ments from the rest of the operating system,. while
The LGDT, LLDT, and LlDT instructions, load the the GDT contains descriptors for segments. which
base and limit of the Global, Local, and Interrupt De- are common to all tasks. A segment cannot be ac-
scriptor Tables, respectively, into the appropriate cessed by a task if its segment descriptor does not
register. The SGDT, SLDT, and SIDT store the base exist in either the current LDT or the GDT. This pro-
and limit values. These tables are manipulated by vides both isolation and protection for a task's seg-
the operating system. Therefore, the load descriptor ments, while still allowing global data to be shared
table instructions are privileged instructions. among tasks.
r-;..---.., :• •.---111!1----------
15 o
a base address and limit, the visible portion of the
LDT register contains only a 16-bit selector. This se-
LDTR LOT LIMIT
lector refers to a Local Descriptor Table descriptor in
'--_ _ _..I.
• the GDT.
,.-_ _ _.,0 :
•• 4.3.3.4 Interrupt Descriptor Table
lOT LIMIT
•• PROGRAM INVISIBLE The third table needed for Intel486 microprocessor
_.&------4 : AUTOMATICALLY LOADED systems is the Interrupt Descriptor Table. (See Fig-
IDTR ._------------ ..
• FROM LOT DESCRIPTOR
ure 4.4.) The IDT contains the descriptors which
point to the location of up to 256 interrupt service
o routines. The IDT may contain only task gates, inter-
rupt gates, and trap gates. The IDT should be at
least 256 bytes in size in order to hold the descrip-
tors for the 32 Intel Reserved Interrupts. Every inter-
rupt used by a system must have an entry in the lOT.
GDTR
The IDT entries are referenced via INT instructions,
external interrupt vectors, and exceptions. (See Sec-
tion 2.7 Interrupts).
J!41245-12
4-3
intel~ Intel486™ DX2 MICROPROCESSOR
attributes include the 32-bit base linear address of The Intel486 OX microprocessor has two main cate-
the segment, the 20-bit length and granularity of the gories of segments: system segments and non-sys-
segment, the protection level, read, write or execute tem segments (for code and data). The segment S
privileges, the default size of the operands (16-bit or bit in the segment descriptor determines if a given
32-bit), and the type of segment. All of the attribute segment is a system segment or a code or data seg-
information about a segment is contained in 12 bits ment. If the S bit is 1 then the segment is either a
in the segment descriptor. Figure 4.5 shows the gen- code or data segment, if it is 0 then the segment is a
eral format of a descriptor. All segments on the In- system segment.
tel486 microprocessor have three attribute fields in
common: the P bit, the DPL bit, and the S bit. The
Present P bit is 1 if the segment is loaded in physical 4.3.4.2 Intel486 CPU Code, Data Descriptors
memory, if P = 0 then any attempt to access this (S= 1)
segment causes a not present exception (exception
Figure 4.6 shows the general format of a code and
11). The Descriptor Privilege Level DPL is a two-bit
data descriptor and Table 4.1 illustrates how the bits
field which specifies the protection level 0-3 associ-
in the Access Rights Byte are interpreted.
ated with a segment.
31 0 BYTE
ADDRESS
SEGMENT BASE 15 ... 0 SEGMENT LIMIT 15 ... 0
0
31 0
SEGMENT BASE 15 ... 0 SEGMENT LIMIT 15 ... 0 0
ACCESS BASE
LIMIT
BASE 31 ... 24 G 0 0 AVL RIGHTS +4
19 ... 16 23 ... 16
BYTE
DIB 1 = Default Instruction Attributes are 32-Bits
0= Default Instruction Attributes are 16-Bits
AVL Available field for user or as
G Granularity Bit 1 = Segment length is page granular
0= Segment length is byte granular
0 Bit must be zero (0) for compatibility with future processors
4-4
infel . Intel486™ DX2 MICROPROCESSOR
Table 4.1. Access Rights Byte Definition for Code and Data Descriptions
Bit
Name Function
Position
7 Present (P) P=1 Segment is mapped into physical memory.
P=O No mapping to physical memory exits, base and limit are
not used.
6-5 Descriptor Privilege Segment privilege attribute used in privilege tests.
r
Level (DPL)
4 Segment Descrip· S=1 Code or Data (includes stacks) segment descriptor.
tor (S) S=O System Segment Descriptor or Gate Descriptor.
3
2
Executable (E)
Expansion Direc·
E ~0
ED = 0
""-"" type • data ...ment
Expand up segment, offsets must be :s: limit. Data
tion (ED) ED = 1 Expand down segment, offsets must be > limit. Segment
1 Writeable (W) W= 0 Data segment may not be written into. (S = 1,
Type W= 1 Data segment may be written into. E = 0)
Field 3 Executable (E) E= 1 Descriptor type is code segment:
r
Definition C=1
2 Conforming (C) Code segment may only be executed Code
when CPL :?: DPL and CPL Segment
remains unchanged. (S = 1,
1 Readable (R) R=O Code segment may not be read. E = 1)
R = 1 Code segment may be read.
0 Accessed (A) A=O Segment has not been accessed.
A=1 Segment selector has been loaded into segment register
or used by selector test instructions.
Code and data segments have several descriptor The D bit indicates the default length for operands
fields in common. The accessed A bit is set whenev- and effective addresses. If D= 1 then 32-bit oper-
er the processor accesses a descriptor. The A bit is ands and' 32·bit addressing modes are assumed. If
used by operating system~ to keep usage statistics D = 0 then 16-bit operands and 16-bit addressing
on a given segment. The G bit, or granularity bit, modes are assumed. Therefore all existing 80286
specifies if a segment length is byte-granular or code segments will execute on the Intel486 DX mi-
page-granular. Intel486 DX microprocessor seg- croprocessor assuming the D bit is set o.
ments can be one megabyte long with byte granular-
ity (G = 0) or four gigabytes with page granularity Another attribute of code segments is determined by
(G = 1), (i.-e., 220 pages each page is 4 Kbytes in the conforming C bit. Conforming segments, C = 1,
length). The granularity is totally unrelated to paging. can be executed and shared by programs at differ-
A Intel486 DX microprocessor system can consist of ent privilege levels. (See Section 4.4 Protection.)
segments with byte granularity, and page granularity,
whether or not paging is enabled. Segments identified as data segments (E=O, S= 1)
are used for two types of Intel486 DX microproces-
The executable E bit tells if a segment is a code or sor segments: stack and data segments. The expan-
data segment. A code segment (E = 1, S = 1) may be sion direction (ED) bit specifies if a segment ex-
execute-only or execute/read as determined by the pands downward (stack) or upward (data). If a seg-
Read R bit. Code segments are execute only if ment is a stack segment all offsets must be greater
R = 0, and execute/read if R = 1. Code segments than the segment limit. On a data segment all off-
may never be written into. sets must be less than or equal to the limit. In other
words, stack segments start at the base linear ad-
NOTE: dress plus the maximum segment limit and grow
Code segments may be modified via aliases. Alias- down to the base linear address plus the limit. On
es are writeable data segments which occupy the the other hand, data segments start at the base lin-
same range of linear address space as the code ear address and expand to the base linear address
segment. plus limit.
4-5
intel· Intel486TM DX2 MICROPROCESSOR
The write W bit controls the ability to write into a permit nesting tasks. The TYPE field is used to indi-
segment. Data segments are read-only if W = O. The cate whether the task is currently BUSY (i.e., on a
stack segment must have W= 1. chain of active tasks) or the TSS is available. The
TYPE field also indicates if the segment contains a
The B bit controls the size of the stack pointer regis- 80286 or an Intel486 DX microprocessor TSS. The
ter. If B = 1, then PUSHes, POPs, and CALls all use Task Register (TR) contains the selector which
the 32-bit ESP register for stack references and as- points to the current Task State Segment.
sume an upper limit of FFFFFFFFH. If B = 0, stack
instructions all use the 16-bit SP register and as-
sume an upper limit of FFFFH. 4.3.4.6 Gate Descriptors (S = 0,
TVPE=4-7, C, F)
4.3.4.3 System Descriptor Formats Gates are used to control access to entry points
within the target code segment. The various types of
System segments describe information about oper- gate descriptors are call gates, task gates, inter-
ating system tables, tasks, and gates. Figure 4.7 rupt gates, and trap gates. Gates provide a level of
shows the general format of system segment de- indirection between the source and destination of
scriptors, and the various types of system segments. the control transfer. This indirection allows the proc-
Intel486 DX microprocessor system descriptors con- essor to automatically perform protection checks. It
tain a 32-bit base linear address and a 20-bit seg- also allows system designers to control entry points
ment limit. 80286 system descriptors have a 24-bit to the operating system. Call gates are used to
base address and a 16-bit segment limit. 80286 sys- change privilege levels (see Section 4.4 Protec-
tem descriptors are identified by the upper 16 bits tion), task gates are used to perform a task switch,
being all zero. and interrupt and trap gates are used to specify in-
terrupt service routines.
4.3.4.4 LDT Descriptors (S = 0, TYPE = 2) Figure 4.8 shows the format of the four types of gate
LDT descriptors (S = 0, TYPE = 2) contain informa- descriptors. Call gates are primarily used to transfer
tion about Local Descriptor Tables. LDTs contain a program control to a more privileged level. The call
gate descriptor consists of three fields: the access
table of segment descriptors, unique to a particular
task. Since the instruction to load the LDTR is only byte, a long pointer (selector and offset) which
available at privilege level 0, the DPL field is ignored. points to the start of a routine and a word count
which specifies how many parameters are to be cop-
LDT descriptors are only allowed in the Global De-
scriptor Table (GDT). ied from the caller's stack to the stack of the called
routine. The word count field is only used by call
gates when there is a change in the privilege level,
4.3.4.5 TSS Descriptors (S = 0, other types of gates ignore the word count field.
TVPE= 1,3,9, B)
Interrupt and trap gates use the destination selector
A Task State Segment (TSS) descriptor contains in- and destination offset fields of the gate descriptor as
formation about the location, size, and privilege level a pointer to the start of the interrupt or trap handler
of a Task State Segment (TSS). A TSS in turn is a routines. The difference between interrupt gates and
special fixed format segment which contains all the trap gates is that the interrupt gate disables inter-
state information for a task and a linkage field to rupts (resets the IF bit) while the trap gate does not.
31 16 0
SEGMENT BASE 15 ... 0 SEGMENT LIMIT 15 ... 0 0
4-6
int:et Intel486™ DX2 MICROPROCESSOR
Task gates are used to switch tasks. Task gates 4.3.4.7 Differences Between Intel486 DX2
may only refer to a task state segment (see Section Microprocessor and 80286 Descriptors
4.4.6 Task Switching) therefore only the destination
selector portion of a task gate descriptor is used, In order to provide operating system compatibility
and the destination offset is ignored. between the 80286 and Intel486 DX2 microproces-
sor, the Intel486 DX microprocessor supports all of
Exception 13 is generated when a destination selec- the 80286 segment descriptors. Figure 4.9 shows
tor does not refer to a correct descriptor type, i.e., a the general format of an 80286 system segment de-
code segment for an interrupt, trap or call gate, a scriptor. The only differences between 80286 and
TSS for a task gate. Intel486 DX microprocessor descriptor formats are
that the values of the type fields, and the limit and
The access byte format is the same for all gate de- base address fields have been expanded for the In-
scriptors. P = 1 indicates that the gate contents are tel486 DX microprocessors. The 80286 system seg-
valid. P = 0 indicates the contents are not valid and ment descriptors contained a 24-bit base address
causes exception 11 if referenced. DPL is the de- and 16-bit limit, while the Intel486 DX microproces-
scriptor privilege level and specifies when this de- sor system segment descriptors have a 32-bit base
scriptor may be used by a task (see Section 4.4 Pro- address, a 20-bit limit field, and a granularity bit.
tection). The S field, bit 4 of the access rights byte,
must be 0 to indicate a system control descriptor.
The type field specifies the descriptor type as indi-
cated in Figure 4.8.
31 24 16 8 5 o
SELECTOR OFFSET 15 ... 0 o
WORD
OFFSET 31 ... 16 P DPL 0 TYPE 0 0 0 COUNT +4
4 ... 0
Gate Descriptor Fields
Name Value Description
Type 4 80286 call gate
5 Task gate (for 80286 or Intel486TM DX CPU task)
6 80286 interrupt gate
7 80286 trap gate
C Intel486™ DX CPU call gate
E Intel486™ DX CPU interrupt gate
F Intel486™ DX CPU trap gate
P o Descriptor contents are not valid
I Descriptor contents are valid
DPL-Ieast privileged level at which a task may access the gate. WORD COUNT 0-31-the number of parameters to copy from caller's stack
to the called procedure's stack. The parameters are 32-bit quantities for Intel486TM DX CPU gates, and 16-bit quantities for 80286 gates.
DESTINATION 16·bit Selector to the target code segment
SELECTOR selector or
Selector to the target task state segment for task gate
31 0
SEGMENT BASE 15 ... 0 SEGMENT LIMIT 15 ... 0 0
Intel Reserved
BASE
Set to 0
Base Address of the segment
P I DPL
DPL
lsi TYPE I
Descriptor Privilege Level 0-3
BASE
23 ... 16
+4
4-7
intel . Intel486™ DX2 MICROPROCESSOR
By supporting 80286 system segments the Intel486 Entry Index (Index), and Requestor (the selector's)
OX microprocessor is able to execute 80286 appli- Privilege Level (RPL) as shown in Figure 4.10. The
cation programs on an Intel486 OX microprocessor TI bits select one of two memory-based tables of
operating system. This is possible because the proc- descriptors (the Global Descriptor Table or the Local
essor automatically understands which descriptors Descriptor Table). The Index selects one of 8K de-
are 80286-style descriptors and which descriptors scriptors in the appropriate descriptor table. The
are Intel486 OX Microprocessor-style descriptors. In RPL bits allow high speed testing of the selector's
particular, if the upper word of a descriptor is zero, privilege attributes.
then that descriptor is a 80286-style descriptor.
The only other differences between 80286-style de- 4.3.4.9 Segment Descriptor Cache
scriptors and Intel486 OX microprocessor-style de- In addition to the selector value, every segment reg-
scriptors is the interpretation of the word count field
ister has a segment descriptor cache register asso-
of call gates and the B bit. The word count field ciated with it. Whenever a segment register's con-
specifies the number of 16-bit quantities to copy for
tents are changed, the 8-byte descriptor associated
80286 call gates and 32-bit quantities for Intel486 with that selector is automatically loaded (cached)
OX microprocessor call gates. The B bit controls the
on the chip. Once loaded, a" references to that seg-
size of PUSHes when using a call gate; if B = 0
ment use the cached descriptor information instead
PUSHes are 16 bits, if B = 1 PUSHes are 32 bits. of reaccessing the descriptor. The contents of the
descriptor cache are not visible to the programmer.
4.3.4.8 Selector Fields Since descriptor caches only change when a seg-
ment register is changed, programs which modify
A selector in Protected Mode has three fields: Local the descriptor tables must reload the appropriate
or Global Descriptor Table Indicator (TI), Descriptor segment registers after changing a descriptor's val-
ue.
SELECTOR
15 4 3 2 1 0
SEGMENT
REGISTER I. I
0 0 ---- 0 I 0 1111~11 R~L
.
I
INDEX TABLE
INDICATOR
TI=l TI-O l
N N
DESCRIPTOR
NUMBER
6 6
5 5
4 4
~} ......... /:
DESCRiPTOR 3
2 2
1 1
0 0 NULL
LOCAL GLOBAL
DESCRIPTOR DESCRIPTOR
TABLE TABLE
241245-14
4-8
intel® Intel486TM DX2 MICROPROCESSOR
4.3.4.10 Segment Descriptor Register Settings the 8086 architecture, the base is set to sixteen
times the current selector value, the limit is fixed at
The contents of the segment descriptor cache vary OOOOFFFFH, and the attributes are fixed so as to
depending on the mode the Intel486 OX microproc- indicate the segment is present and fully usable. In
essor is operating in. When operating in Real Ad- Real Address Mode, the internal "privilege level" is
dress Mode, the segment base, limit, and other attri- always fixed to the highest level, level 0, so 1/0 and
butes within the segment cache registers are de- other privileged opcodes may be executed.
fined as shown in Figure 4.11. For compatibility with
'Except the 32·bit CS base is initialized to FFFFFOOOH after reset until first intersegment control transfer (Le., intersegment CALL, or
intersegment JMP, or INT). (See Figure 4.13 Example.)
Key: Y = yes o = expand down
N = no B = byte granularity
o = privilege level 0 P = page granularity
1 = privilege level 1 W = push/pop 16·bit words
2 = privilege level 2 F = push/pop 32·bit dwords
3 = privilege level 3 - = does not apply to that segment cache register
U = expand up
4-9
Intel486™ DX2 MICROPROCESSOR
When operating in Protected Mode, the segment according to the contents of the segment descriptor
base, limit, and other attributes within the segment indexed by the selector value loaded into the seg-
cache registers are defined as shown in Figure 4.12. ment register.
In Protected Mode, each of these fields are defined
11
READABLE - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ,
EXPANSION DIRECTION
GRANULARITY
ACCESSED
PRIVILEGE LEVEL
Figure 4.12. Segment Descriptor Caches for Protected Mode (Loaded per Descriptor)
4-10
in1et Intel486™ DX2 MICROPROCESSOR
When operating in a Virtual 8086 Mode within the OOOOFFFFH, and the attributes are fixed so as to
Protected Mode, the segment base, limit, and other indicate the segment is present and fully usable. The
attributes within the segment cache registers are de- virtual program executes at lowest privilege level,
fined as shown in Figure 4.13. For compatibility with level 3, to allow trapping of all IOPL-sensitive in-
the 8086 architecture, the base is set to sixteen structions and level-a-only instructions.
times the current selector value, the limit is fixed at
Figure 4.13. Segment Descriptor Caches for Virtual 8086 Mode within Protected Mode
(Segment Limit and Attributes are Fixed)
4-11
intel" Intel486TM DX2 MICROPROCESSOR
The four-level hierarchical privilege system is illus- 4.4.3.3 I/O Privilege and I/O Permission Bitmap
trated in Figure 4-14. It is an extension of the user/
supervisor privilege mode commonly used by mini- The I/O privilege level (IOPL, a 2-bit field in the
computers and, in fact, the user/supervisor mode is EFLAG register) defines the least privileged level at
fully supported by the Intel486 OX Microprocessor which I/O instructions can be unconditionally per-
paging mechanism. The privilege levels (PL) are formed. I/O instructions can be unconditionally per-
numbered 0 through 3. Level 0 is the most privileged formed when CPL ~ 10PL. (The I/O instructions are
or trusted level. IN, OUT, INS, OUTS, REP INS, and REP OUTS.)
When CPL > 10PL, and the current task is associat-
ed with a 286 TSS, attempted I/O instructions cause
4.4.2 RULES OF PRIVILEGE
an exception 13 fault. When CPL > 10PL, and the
The Intel486 OX Microprocessor controls access to current task is associated with an Intel486 OX Micro-
both data and procedures between levels of a task, processor TSS, the I/O Permission Bitmap (part of
according to the following rules. an Intel486 OX Microprocessor TSS) is consulted on
whether I/O to the port is allowed, or an exception
• Oata stored in a segment with privilege level p
13 fault is to be generated instead. For diagrams of
can be accessed only by code executing at a
the I/O Permission Bitmap, refer to Figures 4.15a
privilege level at least as privileged as p.
and 4.15b. For further information on how the I/O
• A code segment/procedure with privilege level p Permission Bitmap is used in Protected Mode or in
can only be called by a task executing at the Virtual 8086 Mode, refer to Section 4.6.4 Protection
same or a lesser privilege level than p. and I/O Permission Bitmap.
4-12
Intel486TM DX2 MICROPROCESSOR
31
0000000000000000
16
I
15
BACK LINK
o0 .J TSS BASE
ESPO 4
0000000000000000 SSO 8
I
ESPI C
STACKS
10 FOR
0000000000000000 I SSI CPL 0,1,2
ESP2 14
0000000000000000 SS2 18
I
CR3 lC
EIP 20
EFLAGS 24
EAX 28
ECX 2C
EOX 30
EBX 34
ESP 38
EBP 3C
CURRENT
ESI 40
TASK
44 STATE
EOI
0000000000000000 ES 48
0000000000000000 CS 4C
0000000000000000 SS 50
0000000000000000 OS 54
0000000000000000 FS 58
0000000000000000 GS 5C
60
o
0000000000000000 LDT
~
IT
NOTE:
BIT-MAP_OFFSET
must be ,;; DFFFH
AVAILABLE
---
SYSTEM STATUS, ETC.
IN Int.1486OX CPU TSS
DEBUG
TRAP BIT
31 24 23 16 15 8 7 0
63 56 55 48 47 40 39 32 I 'BILMAP .OFFSET
95 88 87 80 79 72 71 64
.-------------.
I
I
I
I
ACCESS
RIGHTS
I TSS
LIMIT
I
I
I
I
f-
96 OFFSET
OFFSET
+C
+ 10
I ~
I
I
I
BASE l, I
I/o PERMISSION BITMAP ~
I 65472 + 1FF8
t-
65503 OFFSET
TR SELECTOR
65535 I 65504 OFFSET + 1FFC
15 0 "FFH" OFFSET + 2000
241245-19
Type = 9: Available Intel486TM OX CPU TSS,
Type = B: Busy Intel486TM OX CPU TSS
4-13
intel . Intel486TM DX2 MICROPROCESSOR
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
31 1 1 1 1 0 1 1 0 o 0 o 0 1 1 1 1 0 1 o 0 1 1 o 0 o 0 0 0 0 0 1 1
63 0 0 1 0 o 0 1 1 1 1 o 0 1 0 1 0 1 1 1 1 1 1 o 0 1 1 1 1 1 0 0 1
95 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
127 0 0 0 0 o 0 o 0 o 0 o 0 000 o 0 o 0 o 0 000 o 0 0 0 0 0 o 0
1 1 1 1 1 1 1 1
't'. ole.
110 Ports Accessible: 2 ~ 9, 12, 13, 15, 20 ~ 24, 27, 33, 34, 40, 41, 48, 50, 52, 53, 58 ~ eo, 62, 63, 96 ~ 127 241245-20
ments. The OPL and RPL must equal the CPL. All - CALLs can be made to a non-conforming code
other descriptor types or a privilege level violation segment with the same privilege or via a gate to a
will cause exception 13. A stack not present fault more privileged level.
causes exception 12. Note that an exception 11 is - Interrupts handled within the task obey the same
used for a not-present code or data segment. privilege rules as CALLs.
- Conforming Code segments are accessible by
4.4.4 PRIVILEGE LEVEL TRANSFERS privilege levels which are the same or less privi-
leged than the conforming-code segment's OPL.
Inter-segment control transfers occur when a selec-
- Both the requested privilege level (RPL) in the
tor is loaded in the CS register. For a typical system
most of these transfers are simply the result of a call selector pointing to the gate and the task's CPL
must be of equal or greater privilege than the
or a jump to another routine. There are five types of
gate's OPL.
control transfers which are summarized in Table 4.3.
Many of these transfers result in a privilege level - The code segment selected in the gate must be
transfer. Changing privilege levels is done only via the same or more privileged than the task's CPL.
control transfers, by using gates, task switches, and - Return instructions that do not switch tasks can
interrupt or trap gates. only return control to a code segment with same
or less privilege.
Control transfers can only occur if the operation
- Task switches can be performed by a CALL,
which loaded the selector references the correct de-
scriptor type. Any violation of these descriptor usage JMP, or INT which references either a task gate
or task state segment who's DPL is less privi-
rules will cause an exception 13 (e.g. JMP through a
call gate, or IRET from a normal subroutine call). leged or the same privilege as the old task's CPL.
4-15
intel . Intel486TM DX2 MICROPROCESSOR
When RETurning to the original privilege level, use between tasks or processes. The Intel486 OX micro-
of the lower-privileged stack is restored as part of processor directly supports this operation by provid-
the RET or IRET instruction operation. For subrou- ing a task switch instruction in hardware. The In-
tine calls that pass parameters on the stack and tel486 OX microprocessor task switch operation
cross privilege levels, a fixed number of words (as saves the entire state of the machine (all of the reg-
specified in the gate's word count field) are copied isters, address space, and a link to the previous
from the previous stack to the current stack. The task), loads a new execution state, performs protec-
inter-segment RET instruction with a stack adjust- tion checks, and commences execution in the new
ment value will correctly restore the previous stack task, in about 10 microseconds. Like transfer of con-
pointer upon return. trol via gates, the task switch operation is invoked by
executing an inter-segment JMP or CALL instruction
which refers to a Task State Segment (TSS), or a
4.4.5 CALL GATES
task gate descriptor in the GOT or LOT. An INT n
Gates provide protected, indirect CALLs. One of the instruction, exception, trap, or external interrupt may
major uses of gates is to provide a secure method of also invoke the task switch operation if there is a
privilege transfers within a task. Since the operating task gate descriptor in the associated lOT descriptor
system defines all of the gates in a system, it can slot.
ensure that all gates only allow entry into a few trust-
ed procedures (such as those which allocate memo- The TSS descriptor points to a segment (see Figure
ry, or perform I/O). 4.15) containing the entire Intel486 OX microproces-
sor execution state while a task gate descriptor con-
Gate descriptors follow the data access rules of priv- tains a TSS selector. The Intel486 OX microproces-
ilege; that is, gates can be accessed by a task if the sor supports both 80286 and Intel486 OX microproc-
EPL, is equal to or more privileged than the gate essor style TSSs. Figure 4.16 shows a 80286 TSS.
descriptor's OPL. Gates follow the control transfer The limit of an Intel486 OX microprocessor TSS
rules of privilege and therefore may only transfer must be greater than 0064H (002BH for a 80286
control to a more privileged level. TSS), and can be as large as 4 Gigabytes. In the
additional TSS space, the operating system is free
Call Gates are accessed via a CALL instruction and to store additional information such as the reason
are syntactically identical to calling a normal subrou- the task is inactive, time the task has spent running,
tine. When an inter-level Intel486 OX call gate is ac- and open files belong to the task.
tivated, the following actions occur.
1. Load CS:EIP from gate check for validity Each task must have a TSS associated with it. The
2. SS is pushed zero-extended to 32 bits current TSS is identified by a special register in the
Intel486 OX microprocessor called the Task State
3. ESP is pushed Segment Register (TR). This register contains a se-
4. Copy Word Count 32-bit parameters from the lector referring to the task state segment descriptor
old stack to the new stack that defines the current TSS. A hidden base and limit
5. Push Return address on stack register associated with TR are loaded whenever TR
is loaded with a new selector. Returning from a task
The procedure is identical for 80286 Call gates, ex- is accomplished by the IRET instruction. When IRET
cept that 16-bit parameters are copied and 16-bit is executed, control is returned to the task which
registers are pushed. was interrupted. The current executing task's state
is saved in the TSS and the old task state is restored
Interrupt Gates and Trap gates work in a similar from its TSS.
fashion as the call gates, except there is no copying
of parameters. The only difference between Trap Several bits in the flag register and machine status
and Interrupt gates is that control transfers through word (CRO) give information about the state of a
an Interrupt gate disable further interrupts (i.e. the IF task which are useful to the operating system. The
bit is set to 0), and Trap gates leave the interrupt Nested Task (NT) (bit 14 in EFLAGS) controls the
status unchanged. function of the IRET instruction. If NT = 0, the IRET
instruction performs the regular return; when NT =
1, IRET performs a task switch operation back to the
4.4.6 TASK SWITCHING
previous task. The NT bit is set or reset in the follow-
A very important attribute of any multi-tasking/multi- ing fashion:
user operating systems is its ability to rapidly switch
4-16
Intel486TM DX2 MICROPROCESSOR
CX 14
The T bit in the Intel486 OX Microprocessor TSS
indicates that the processor should generate a de-
OX 16
bug exception when switching to a task. If T = 1
ax 18
then upon entry to a new task a debug exception 1
CURRENT
SP 1A TASK will be generated.
BP IC STATE
SI IE
4.4.7 INITIALIZATION AND TRANSITION TO
01 20
PROTECTED MODE
ES SELECTOR 22
The Intel486 OX Microprocessor Task State Seg- After enabling Protected Mode, the next instruction
ment is marked busy by changing the descriptor type should execute an intersegment JMP to load the CS
field from TYPE 9H to TYPE BH. An 80286 TSS is register and flush the instruction decode queue. The
marked busy by changing the descriptor type field final step is to load all of the data segment registers
from TYPE 1 to TYPE 3. Use of a selector that refer- with the initial selector values.
ences a busy task state segment causes an excep-
tion 13. An alternate approach to entering Protected Mode
which is especially appropriate for multi-tasking op-
The Virtual Mode (VM) bit 17 is used to indicate if a erating systems, is to use the built in task-switch to
task, is a virtual 8086 task. If VM = 1, then the tasks load all of the registers. In this case the GOT would
will use the Real Mode addressing mechanism. The contain two TSS descriptors in addition to the code
virtual 8086 environment is only entered and exited and data descriptors needed for the first task. The
via a task switch (see Section 4.6 Virtual Mode). first JMP instruction in Protected Mode would jump
to the TSS causing a task switch and loading all of
The FPU's state is not automatically saved when a the registers with the values stored in the TSS. The
task switch occurs, because the incoming task may Task State Segment Register should be initialized to
not use the FPU. The Task Switched (TS) Bit (bit 3 in point to a valid TSS descriptor since a task switch
the CRO) helps deal with the FPU's state in a multi- saves the state of the current task in a task state
tasking environment. Whenever the Intel486 OX Mi- segment.
4-17
infel . Intel486TM DX2 MICROPROCESSOR
3••1-R-E-SE-T-R-0-UT-IN-E-S.....::0 FFFFFFFF
15 0
~';';;;;;~;;;;:':'::':':;;:""-I FFFFFFFO
ss~ INITIALIZATION
ROUTINES
GS~
CS
GDTR ~;,;.;.;~;;;;;;.:..,
00000118]
t--"';';';';";;;;;";"~-I 00000110
t-~"';';;;';;;';;';";';;;';"'-I 00000108 GOT
'\....o......~~;;;;;;.;.;.;;.;;...-I 00000100
IDTR
......---....,;...;;.;.., INTERRUPT +
lOT
DESCRIPTORS (32)
'-<0-'-_ _ _ _ _....
t
00000000
241245-22
LIMIT
2
BASE 31 ... 24 G D 0
0 19.16 1 001 o 0 1
o BASE 23 ... 16
00 (H) 1 1 00 (H)
F(H)
DATA SEGMENT BASE 15 ... 0 SEGMENT LIMIT 15 ... 0
DESCRIPTOR 0118 (H) FFFF(H)
LIMIT
1
BASE 31 ... 24 G D
0 0 19.16 1 o 0 1 1 o 1
o BASE23 ... 16
00 (H) 1 1 00 (H)
F(H)
CODE SEGMENT BASE 15 ... 0 SEGMENT LIMIT 15 ... 0
DESCRIPTOR 0118 (H) FFFF(H)
NULL DESCRIPTOR
0
31 24 16 15 8 0
4-18
int:et Intel486™ DX2 MICROPROCESSOR
structure of a program. While segment selectors can 4.5.2.2 Page Descriptor Base Register
be considered the logical "name" of a program
module or data structure, a page most likely corre- CR2 is the Page Fault Linear Address register. It
sponds to only a portion of a module or data struc- holds the 32-bit linear address which caused the last
ture. page fault detected.
By taking advantage of the locality of reference dis- CR3 is the Page Directory Physical Base Address
played by most programs, only a small number of Register. It contains the physical starting address of
pages from each active task need be in memory at the Page Directory. The lower 12 bits of CR3 are
anyone moment. always zero to ensure that the Page Directory is al-
ways page aligned. Loading it via a MOV CR3, reg
instruction causes the Page Table Entry cache to be
4.5.2 PAGING ORGANIZATION flushed, as will a task switch through a TSS which
changes the value of CRO. (See 4.5.5 Translation
4.5.2.1 Page Mechanism Lookaside Buffer).
LINEAR
~ DIRECTORY I TABLE I OFFSET I USER
MEMORY
ADDRESS I 12
10 lot
CRO
31
Intel486 OX CPU
I
0
31
'f
31
'f ADDRESS
t f-+
CRl
PAGE TABLE
CR2
CR3 ROOT
DIRECTORY
CONTROL REGISTERS
241245-23
31 12 11 10 9 8 7 6 5 4 3 2 1 0
OS P P U R
PAGE TABLE ADDRESS 31..12 RESERVED 0 0 D A C W - - P
D T S W
4-19
infel . Intel486TM DX2 MICROPROCESSOR
31 12 11 10 9 8 7 6 5 4 3 2 1 0
OS P P U R
PAGE FRAME ADDRESS 31 .. 12 RESERVED 0 0 0 A C W - - P
0 T S W
4.5.2.4 Page Tables The (User/Supervisor) U/S bit 2 and the (Read/
Write) R/W bit 1 are used to provide protection attri-
Each Page Table is 4 Kbytes and holds up to 1024 butes for individual pages.
Page Table Entries. Page Table Entries contain the
starting address of the page frame and statistical
information about the page (see Figure 4.21). Ad- 4.5.3 PAGE LEVEL PROTECTION
dress bits A 12-A21 are used as an index to select (R/W, U/S BITS)
one of the 1024 Page Table Entries. The 20 upper-
The Intel486 OX microprocessor provides a set of
bit page frame address is concatenated with the
protection attributes for paging systems. The paging
lower 12 bits of the linear address to form the physi-
mechanism distinguishes between two levels of pro-
cal address. Page tables can be shared between
tection: User which corresponds to level 3 of the
tasks and swapped to disks.
segmentation based protection, and supervisor
which encompasses all of the other protection levels
4.5.2.5 Page Directory/Table Entries (0,1,2).
The lower 12 bits of the Page Table Entries and The R/W and U/S bits are used in conjunction with
Page Directory Entries contain statistical information the WP bit in the flags register (EFLAGS). The In-
about pages and page tables respectively. The P tel386 microprocessor does not contain the WP bit.
(Present) bit 0 indicates if a Page Directory or Page The WP bit has been added to the Intel486 OX mi-
Table entry can be used in address translation. If croprocessor to protect read-only pages from super-
P = 1 the entry can be used for address translation visor write accesses. The Intel386 microprocessor
if P = 0 the entry can not be used for translation, allows a read-only page to be written from protection
and all of the other bits are available for use by the levels 0, 1 or 2. WP = 0 is the Intel386 microproces-
software. For example the remaining 31 bits could sor compatible mode. When WP = 0 the supervisor
be used to indicate where on the disk the page is can write to a read-only page as defined by the U/S
stored. and R/W bits. When WP = 1 supervisor access to a
read-only page (R/W = 0) will cause a page fault (ex-
The A (Accessed) bit 5, is set by the Intel486 OX ception 14).
microprocessor for both types of entries before a
read or write access occurs to an address covered Table 4.4 shows the affect of the WP, UlS and R/W
by the entry. The D (Dirty) bit 6 is set to 1 before a bits on accessing memory. When WP = 0, the super-
write to an address covered by that page table entry visor can write to pages regardless of the state of
occurs. The 0 bit is undefined for Page Directory the R/W bit. When WP = 1 and R/W = 0 the supervi-
Entries. When the P, A and 0 bits are updated by the sor cannot write to a read-only page. A user attempt
Intel486 OX microprocessor, the processor gener- to access a supervisor only page (U/S = 0), or write
ates a Read-Modify-Write cycle which locks the bus to a read only page will cause a page fault (excep-
and prevents conflicts with other processors or per- tion 14).
pherials. Software which modifies these bits should
use the LOCK prefix to ensure the integrity of the The R/W and U/S bits provide protection from user
page tables in multi-master systems. access on a page by page basis since the bits are
contained in the Page Table Entry and the Page Di-
The 3 bits marked OS Reserved in Figure 4.20 and rectory Table. The U/S and R/W bits in the first level
Figure 4.21 (bits 9-11) are software definable. OSs Page Directory Table apply to all entries in the page
are free to use these bits for whatever purpose they table pointed to by that directory entry. The U/S and
wish. An example use of the OS Reserved bits R/W bits in the second level Page Table Entry apply
would be to store information about page aging. By only to the page described by that entry. The most
keeping track of how long a page has been in mem- restrictive of the U/S and R/W bits from the Page
ory since being accessed, an operating system can Directory Table and the Page Table Entry are used
implement a page replacement algorithm like Least to address a page.
Recently Used.
Example: If the UlS and R/W bits for the Page Di-
rectory entry were 10 (user read/execute) and the
4-20
Intel486TM DX2 MICROPROCESSOR
U/S and R/W bits for the Page Table Entry were 01 When paging is enabled (PG = 1 in CRO), the bits
(no user access at all), the access rights for the from the page table entry are cached in the transla-
page would be 01, the numerically smaller of the tion lookaside buffer (TLB), and are driven any time
two. the page mapped by the TLB entry is referenced.
For normal memory cycles run with paging enabled,
Note that a given segment can be easily made read- the PWT and PCD bits are taken from the Page Ta-
only for level 0, 1 or 2 via use of segmented protec- ble Entry. During TLB refresh cycles when the Page
tion mechanisms. (Section 4.4 Protection). Directory and Page Table entries are read, the PWT
and PCD bits must be obtained elsewhere. The bits
are taken from CR3 when a Page Directory Entry is
4.5.4 PAGE CACHEABILITY being read. The bits are taken from the Page Direc-
(PWT AND PCD BITS) tory Entry when the Page Table Entry is being updat-
PWT (page write through) and PCD (page cache dis- ed.
able) are two new bits defined in entries in both lev-
The PCD or PWT bits in CR3 are initialized to zero at
els of the page table structure, the Page Directory
reset, but can be set to any value by level 0 soft-
Table and the Page Table Entry. PCD and PWT con-
ware.
trol page cacheability and write policy.
PWT controls write policy. PWT = 1 defines a write- 4.5.5 TRANSLATION LOOKASIDE BUFFER
through policy for the current page. PWT = 0 allows
the possibility of write~back. PWT is ignored internal- The Intel486 OX Microprocessor paging hardware is
ly because the Intel486 OX microprocessor has a designed to support demand paged virtual memory
write-through cache. PWT can be used to control systems. However, performance would degrade
the write policy of a second level cache. substantially if the processor was required to access
two levels of tables for every memory reference. To
PCD controls cacheability. PCD=O enables caching solve this problem, the Intel486 OX Microprocessor
in the on-chip cache. PCD alone does not enable keeps a cache of the most recently accessed pages,
caching, it must be conditioned by the KEN# (cache this cache is called the Translation Lookaside Buffer
enable) input signal and the state of the CD (cache (TLB). The TLBjs a four-way set associative 32-en-
disable bit) and NW (no write-through) bits in control try page table cache. It automatically keeps the most
register 0 (CRO). When PCD = 1, caching is disabled commonly used Page Table Entries in the proces-
regardless of the state of KEN#, CD and NW. (See sor. The 32-entry TLB coupled with a 4K page size,
Section 5.0, On-Chip Cache). results in coverage of 128 Kbytes of memory ad-
dresses. For many common multi-tasking systems,
The state of the PCD and PWT bits are driven out on the TLB will have a hit rate of about 98%. This
the PCD and PWT pins during a memory access. means that the processor will only have to access
the two-level page structure on 2% of all memory
The PWT and PCD bits for a bus cycle are obtained references. Figure 4.22 illustrates how the TLB com-
either from control register3 (CR3), the Page Direc- plements the Intel486 OX Microprocessor's paging
tory Entry or the Page Table Entry, depending on the mechanism.
type of cycle run. However, when paging is disabled
(PG = 0 in CRO) or for cycles which bypass paging Reading a new entry into the TlB (TLB refresh) is a
(i.e., I/O (input/output) references, INTR (interrupt two step process handled by the Inte1486>DX micro-
request) and HALT cycles), the PCD and PWT bits processor hardware. The sequence of data cycles to
of CR3 are ignored. The Intel486 OX CPU assumes perform a TLB refresh are:
PCD = 0 and PWT = 0 and drives these values on
the PCD and PWT pins.
4-21
int:et Intel486™ DX2 MICROPROCESSOR
1. Read the correct Page Directory Entry, as point- However, if the page table entry is not in the TLB,
ed to by the page base register and the upper the Intel486 OX Microprocessor will read the appro-
10 bits of the linear address. The page base priate Page Directory Entry. If P = 1 on the Page
register is in control register 3. Directory Entry indicating that the page table is in
1a. Optionally perform a locked read/write to set memory, then the Intel486 OX Microprocessor will
the accessed bit in the directory entry. The di- read the appropriate Page Table Entry and set the
rectory entry will actually get read twice if the Access bit. If P = 1 on the Page Table Entry indicat-
Intel486 OX microprocessor needs to set any of ing that the page is in memory, the Intel486 OX Mi-
the bits in the entry. If the page directory entry croprocessor will update the Access and Dirty bits
changes between the first and second reads, as needed and fetch the operand. The upper 20 bits
the data returned for the second read will be of the linear address, read from the page table, will
used. be stored in the TLB for future accesses. However, if
P = 0 for either the Page Directory Entry or the
2. Read the correct entry in the Page Table and Page Table Entry, then the processor will generate a
place the entry in the TLB. page fault, an Exception 14.
2a. Optionally perform a locked read/write to set
the accessed and/or dirty bit in the page table The processor will also generate an exception 14
entry. Again, note that the page table entry will page fault, if the memory reference violated the
actually get read twice if the Intel486 OX micro- page protection attributes (Le., U/S or R/W) (e.g.,
processor needs to set any of the bits in the trying to write to a read-only page). CR2 will hold the
entry. Like the directory entry, if the data chang- linear address which caused the page fault. If a sec-
es between the first and second read the data ond page fault occurs, while the processor is at-
returned for the second read will be used. tempting to enter the service routine for the first,
then the processor will invoke the page fault (excep-
Note that the directory entry must always be read tion 14) handler a second time, rather than the dou-
into the processor, since directory entries are never ble fault (exception 8) handler. Since Exception 14 is
placed in the paging TLB. Page faults can be sig- classified as a fault, CS: EIP will point to the instruc-
naled from either the page directory read or the tion causing the page fault. The 16-bit error code
page table read. Page directory and page table en- pushed as part of the page fault handler will contain
tries may be placed in the Intel486 OX on-chip status bits which indicate the cause of the page
cache just like normal data. fault.
4.5.6 PAGING OPERATION The 16-bit error code is used by the operating sys-
tem to determine how to handle the page fault. Fig-
32 ENTRIES
PHYSICAL ure 4.23a shows the format of the page-fault error
TRANSLATION
MEMORY code and the interpretation of the bits.
~I~~::SS-- LOOKASIDE
BUFFER HIT
NOTE:
MISS Even though the bits in the error code (U/S, W/R,
31 0
and P) have similar names as the bits in the Page
Directory/Table Entries, the interpretation of the er-
ror code bits is different. Figure 4.23b indicates
-
15 3 2 1 0
PAGE
DIRECTORY
PAGE
TABLE
.98% HIT RATE
[u[u[u[u[u[u[u[u[u[u[u[u[u[u[~[~[p[
241245-24 Figure 4.23a. Page Fault Error Code Format
Figure 4.22. Translation Lookaside Buffer
U/S: The U/S bit indicates whether the access
The paging hardware operates in the following fash- causing the fault occurred when the processor was
ion. The paging unit hardware receives a 32-bit lin- executing in User Mode (U/S = 1) or in Supervisor
ear address from the segmentation unit. The upper mode (U/S = 0).
20 linear address bits are compared with all 32 en-
tries in the TLB to determine if there is a match. If W/R: The W/R bit indicates whether the access
there is a match (i.e., a TLB hit), then the 32-bit causing the fault was a Read (W/R = 0) or a Write
physical address is calculated and will be placed on (W/R = 1).
the address bus.
4-22
intel.. Intel486™ DX2 MICROPROCESSOR
P: The P bit indicates whether a page fault was anism. In particular, the Intel486 DX Microprocessor
caused by a not-present page (P = 0), or by a page allows the simultaneous execution of 8086 operating
level protection violation (P = 1). systems and its applications, and an Intel486 DX Mi-
croprocessor operating system and both 80286 and
U: UNDEFINED Intel486 DX Microprocessor applications. Thus, in a
multi-user Intel486 DX Microprocessor computer,
one person could be running an MS-DOS spread-
U/S W/R Access Type
sheet, another person using MS-DOS, and a third
0 0 Supervisor* Read person could be running multiple Unix utilities and
0 1 Supervisor Write applications. Each person in this scenario would be-
1 0 User Read lieve that he had the computer completely to him-
self. Figure 4.24 illustrates this con~ept.
. 1
Descnptor table access
is executing at level 3.
1
WIll
User Write
fault WIth U/S ~ 0, even if the program
4.6.2 VIRTUAL 8086 MODE ADDRESSING
Figure 4.23b. Type of Access MECHANISM
Causing Page Fault
One of the major differences between Intel486 DX
Microprocessor Real and Protected modes is how
4.5.7 OPERATING SYSTEM RESPONSIBILITIES the segment selectors are interpreted. When the
processor is executing in Virtual 8086 Mode the seg-
The Intel486 DX Microprocessor takes care of the
ment registers are used in an identical fashion to
page address translation process, relieving the bur-
Real Mode. The contents of the segment register is
den from an operating system in a demand-paged
shifted left 4 bits and added to the offset to form the
system. The operating system is responsible for set-
segment base linear address.
ting up the initial ~age tables, and handling any page
faults. The operating system also is required to inval-
!he Intel486 DX Microprocessor allows the operat-
idate (Le., flush) the TLB when any changes are
Ing system to specify which programs use the 8086
made to any of the page table entries. The operating
style address mechanism, and which programs use
system must reload eR3 to cause the TLB to be
Protected Mode addressing, on a per task basis.
flushed.
Through the use of paging, the one megabyte ad-
dress space of the Virtual Mode task can be mapped
Setting. up the tables is simply a matter of loading
to anywhere in the 4 gigabyte linear address space
eR3 ~Ith the address of the Page Directory, and
of the Intel486 DX Microprocessor. Like Real Mode
Virtual Mode effective addresses (Le., segment off~
allocating space for the Page Directory and the
Page Tables. The primary responsibility of the oper-
sets) that exceed 64 Kbyte will cause an exception
ating system is to implement a swapping policy and
13. However, these restrictions should not prove to
handle all of the page faults.
be important, because most tasks running in Virtual
8086 Mode will simply be existing 8086 application
A final concern of the operating system is to ensure
programs.
that the TLB cache matches the information in the
paging tables. In particular, any time the operating
system sets the P present bit of page table entry to 4.6.3 PAGING IN VIRTUAL MODE
zero, the TLB must be flushed. Operating systems
may want to take advantage of the fact that eR3 is The paging hardware allows the concurrent running
stored as part of a TSS, to give every task or group of multiple Virtual Mode tasks, and provides protec-
of tasks its own set of page tables. tion a~d operating system isolation. Although it is
not strictly necessary to have the paging hardware
enabled to run Virtual Mode tasks, it is needed in
4.6 Virtual 8086 Environment order to run multiple Virtual Mode tasks or to relo-
cate the address space of a Virtual Mode task to
physical address space greater than one megabyte.
4.6.1 EXECUTING 8086 PROGRAMS
The Intel486 DX Microprocessor allows the execu- The paging hardware allows the 20-bit linear ad-
tion of 8086 application programs in both Real Mode dress produced by a Virtual Mode program to be
and in the Virtual 8086 Mode (Virtual Mode). Of the divided into up to 256 pages. Each one of the pages
two. methods, Virtual 8086 Mode offers the system can be located anywhere within the maximum 4 gig-
designer the most flexibility. The Virtual 8086 Mode abyte physical address space of the Intel486 DX Mi-
allows the execution of 8086 applications, while still croprocessor. In addition, since eR3 (the Page Di-
allowing the system designer to take full advantage rectory Base Register) is loaded by a task switch
of the Intel486 DX Microprocessor protection mech- each Virtual Mode task can use a different mapping
scheme to map pages to different physical locations.
4-23
infel . Intel486TM DX2 MICROPROCESSOR
Finally, the paging hardware allows the sharing of LIDT; MOV DRn,reg; MOV reg,DRn;
the 8086 operating system code between multiple LGDT; MOV TRn, reg; MOV reg,TRn;
8086 applications. Figure 4.24 shows how the In- LMSW; MOV CRn,reg; MOV reg,CRn.
tel486 OX Microprocessor paging hardware enables CLTS;
multiple 8086 programs to run under a virtual memo- HLT;
ry demand paged system.
Several instructions, particularly those applying to
the multitasking model and protection model, are
4.6.4 PROTECTION AND 1/0 PERMISSION available only in Protected Mode. Therefore, at-
BITMAP tempting to execute the following instructions in
All Virtual 8086 Mode programs execute at privilege Real Mode or in Virtual 8086 Mode generates an
level 3, the level of least privilege. As such, Virtual exception 6 fault:
8086 Mode programs are subject to all of the protec- LTR; STR;
tion checks defined in Protected Mode. (This is dif- LLDT; SLDT;
ferent from Real Mode which implicitly is executing LAR; VERR;
at privilege level 0, the level of greatest privilege.) LSL; VERW;
Thus, an attempt to execute a privileged instruction ARPL.
when in Virtual 8086 Mode will cause an exception
13 fault. The instructions which are IOPL-sensitive in Protect-
ed Mode are:
The following are privileged instructions, which may
be executed only at Privilege Level o. Therefore, at- IN; STI;
tempting to execute these instructions in Virtual OUT; CLI
8086 Mode (or anytime CPL > 0) causes an excep- INS;
tion 13 fault: OUTS;
REP INS;
REP OUTS;
PHYSICAL
MEMORY
~~~~~ 02000000(H)
VIRTUAL MODE
8086 TASK
OOOOOOOO(H)
4-24
int:et Intel486TM DX2 MICROPROCESSOR
In Virtual 8086 Mode, a slightly different set of in- required, while allowing the fully general case if de-
structions are made 10PL-sensitive. The following in- sired.
structions are 10PL-sensitive in Virtual 8086 Mode:
INT n; STI; EXAMPLE OF BITMAP FOR 110 PORTS 0-255:
PUSHF; eLI; Setting the TSS limit to {biLMap_Offset + 31
POPF; IRET + 1"l [*' see note below] will allow a 32-byte bit-
map for the 110 ports #0-255, plus a terminator
The PUSHF, POPF, and IRET instructions are 10PL- byte of all 1's [ •• see note below]. This allows the
sensitive in Virtual 8086 Mode only. This provision 110 bitmap to control 110 Permission to 110 port 0-
allows the IF flag (interrupt enable flag) to be virtual- 255 while causing an exception 13 fault on attempt-
ized to the Virtual 8086 Mode program. The INT n ed 110 to any 110 port 80256 through 65,565.
software interrupt instruction is also 10PL-sensitive
in Virtual 8086 Mode. Note, however, that the INT 3 "IMPORTANT IMPLEMENTATION NOTE: Beyond
(opcode OCCH), INTO, and BOUND instructions are the last byte of 110 mapping information in the 110
not 10PL-sensitive in Virtual 8086 mode (they aren't Permission Bitmap must be a byte containing all 1'so
10PL sensitive in Protected Mode either). The byte of all 1's must be within the limit of the
Intel486 microprocessor TSS segment (see Figure
Note that the JlO instructions (IN, OUT, INS, OUTS, 4.15a).
REP INS, and REP OUTS) are not 10PL-sensitive in
Virtual 8086 mode. Rather, the 110 instructions be- 4.6.5 INTERRUPT HANDLING
come automatically sensitive to the 1/0 Permission
Bitmap contained in the Intel486 DX Microproces- In order to fully support the emulation of an 8086
sor Task State Segment. The 110 Permission Bit- machine, interrupts in Virtual 8086 Mode are han-
map, automatically used by the Intel486 DX micro- dled in a unique fashion. When running in Virtual
processor in Virtual 8086 Mode, is illustrated by Fig- Mode all interrupts and exceptions involve a privi-
ures 4.15a and 4.15b. lege change back to the host Intel486 DX micro-
processor operating system. The Intel486 DX micro-
The 110 Permission Bitmap can be viewed as a 0- processor operating system determines if the inter-
64 Kbit bit string, which begins in memory at offset rupt comes from a Protected Mode application or
BiLMap_Offset in the current TSS. BiLMap_ from a Virtual Mode program by examining the VM
Offset must be :s:: DFFFH so the entire bit map and bit in the EFLAGS image stored on the stack.
the byte FFH which follows the bit map are all at
offsets :s:: FFFFH from the TSS base. The 16-bit When a Virtual Mode program is interrupted and ex-
pointer BiLMap_Offset (15:0) is found in the word ecution passes to the interrupt routine at level 0, the
beginning at offset 66H (102 decimal) from the TSS VM bit is cleared. However, the VM bit is still set in
base, as shown in Figure 4.15a. the EFLAG image on the stack.
Each bit in the 110 Permission Bitmap corresponds The Intel486 DX operating system in turn handles
to a single byte-wide 110 port, as illustrated in Figure the exception or interrupt and then returns control to
4.15a. If a bit is 0, 110 to the corresponding byte- the 8086 program. The Intel486 DX operating sys-
wide port can occur without generating an excep- tem may choose to let the 8086 operating system
tion. Otherwise the 110 instruction causes an excep- handle the interrupt or it may emUlate the function of
tion 13 fault. Since every byte~wide 110 port must be the interrupt handler. For example, many 8086 oper-
protectable, all bits corresponding to a word-wide or ating system calls are accessed by PUSHing param-
dword-wide port must be 0 for the word-wide or eters on the stack, and then executing an INT n in-
dword-wide 110 to be permitted. If all the referenced struction. If the 10PL is set to 0 then alllNT n instruc-
bits are 0, the 110 will be allowed. If any referenced tions will be intercepted by the Intel486 DX operat-
bits are 1, the attempted 110 will cause an exception ing system. The Intel486 DX operating system could
13 fault. emUlate the 8086 operating system's call. Figure
4.25 shows how the Intel486 DX operating system
Due to the use of a pointer to the base of the 110 could intercept an 8086 operating system's calJ to
Permission Bitmap, the bitmap may be located any- "Open a File".
where within the TSS, or may be ignored completely
by pointing the BiLMap_Offset (15:0) beyond the A Intel486 DX operating system can provide a Virtu-
limit of the TSS segment. In the same manner, only al 8086 Environment which is totally transparent to
a small portion of the 64K 110 space need have an the application software via intercepting and then
associated map bit, by adjusting the TSS limit to emulating 8086 operating system's calls, and inter-
truncate the bitmap. This eliminates the commitment cepting IN and OUT instructions.
of 8K of memory when a complete bitmap is not
4-25
int:eL Intel486TM DX2 MICROPROCESSOR
4.6.6 ENTERING AND LEAVING VIRTUAL The segment registers in the TSS will contain 8086
8086 MODE segment base values rather than selectors.
Virtual 8086 mode is entered by executing an IRET A task switch into a task described by a Intel486 OX
instruction (at CPL = 0), or Task Switch (at any CPL) TSS will have an additional check to determine if the
to a Intel486 OX task whose Intel486 OX TSS has a incoming task should be resumed in virtual 8086
FLAGS image containing a 1 in the VM bit position mode. Tasks described by 80286 format TSSs can-
while the processor is executing in Protected Mode. not be resumed in virtual 8086 mode, so no check is
That is, one way to enter Virtual 8086 mode is to required there (the FLAGS image in 80286 format
switch to a task with a Intel486 OX TSS that has a 1 TSS has only the low order 16 FLAGS bits). Before
in the VM bit in the EFLAGS image. The other way is loading the segment register images from a Intel486
to execute a 32-bit IRET instruction at privilege level OX TSS, the FLAGS image is loaded, so that the
0, where the stack has a 1 in the VM bit in the segment registers are loaded from the TSS image
EFLAGS image. POPF does not affect the VM bit, as 8086 segment base values. The task is now
even if the processor is in Protected Mode or level 0, ready to resume in virtual 8086 execution mode.
and so cannot be used to enter Virtual 8086 Mode.
PUSHF always pushes a 0 in the VM bit, even if the
processor is in Virtual 8086 Mode, so that a program 4.6.6.2 Transitions Through Trap and Interrupt
cannot tell if it is executing in REAL mode, or in Vir- Gates, and IRET
tual 8086 mode. A task switch is one way to enter or exit virtual 8086
mode. The other method is to exit through a Trap or
The VM bit can be set by executing an IRET instruc- Interrupt gate, as part of handling an interrupt. and
tion only at privilege level 0, or by any instruction or to enter as part of executing an IRET instruction.
Interrupt which causes a task switch in Protected The transition out must use a Intel486 OX Micro-
Mode (with VM = 1 in the new FLAGS image), and processor Trap Gate (Type 14), or Intel486 OX Inter-
can be cleared only by an interrupt or exception in rupt Gate (Type 15), which must pOint to a non-con-
Virtual 8086 Mode. IRET and POPF instructions exe- forming level 0 segment (OPL = 0) in order to permit
cuted in REAL mode or Virtual 8086 mode will not the trap handler to IRET back to the Virtual 8086
change the value in the VM bit. program. The Gate must point to a non-conforming
level 0 segment to perform a level switch to level 0
The transition out of virtual 8086 mode to Intel486 so that the matching IRET can change the VM bit.
OX protected mode occurs only on receipt of an in- Intel486 OX gates must be used, since 80286 gates
terrupt or exception (such as due to a sensitive in- save only the low 16 bits of the FLAGS register, so
struction). In Virtual 8086 mode, all interrupts and that the VM bit will not be saved on transitions
exceptions vector through the protected mode lOT, through the 80286 gates. Also, the 16-bit IRET (pre-
and enter an interrupt handler in protected Intel486 sumably) used to terminate the 80286 interrupt han-
OX mode. That is, as part of interrupt processing, dier will pop only the lower 16 bits from FLAGS, and
the VM bit is cleared. will not affect the VM bit. The action taken for a
Intel486 OX Trap or Interrupt gate if an interrupt oc-
Because the matching IRET must occur from level 0, curs while the task is executing in virtual 8086 mode
if an Interrupt or Trap Gate is used to field an inter- is given by the following sequence.
rupt or exception out of Virtual 8086 mode, the Gate
must perform an inter-level interrupt only to level O. (1) Save the FLAGS register in a temp to push later.
Interrupt or Trap Gates through conforming seg- Turn off the VM and TF bits, and if the interrupt
ments, or through segments with OPL> 0, will raise a is serviced by an Interrupt Gate, turn off IF also.
GP fault with the CS selector as the error code. (2) Interrupt and Trap gates must perform a level
switch from 3 (where the VM86 program exe-
cutes) to level 0 (so IRET can return). This pro-
4.6.6.1 Task Switches To/From Virtual cess involves a stack switch to the stack given
8086 Mode in the TSS for privilege level O. Save the Virtual
Tasks which can execute in virtual 8086 mode must 8086 Mode SS and ESP registers to push in a
be described by a TSS with the Intel486 OX Micro- later step. The segment register load of SS will
processor format (TYPE 9 or 11 descriptor). be done as a Protected Mode segment load,
since the VM bit was turned off above.
A task switch out of virtual 8086 mode will operate
exactly the same as any other task switch out of a
task with an Intel486 OX TSS. All of the programmer
visible state, including the FLAGS register with the
VM bit set to 1, is stored in the TSS.
4-26
intet Intel486™ DX2 MICROPROCESSOR
241245-26
8086 Application makes "Open File Call" -> causes
General Protection Fault (Arrow # 1)
Virtual 8086 Monitor intercepts call. Calls Intel486TM OX as (Arrow # 2)
Intel486™ OX as opens file returns control to 8086as (Arrow # 3)
8086 as returns control to application. (Arrow #4)
Transparent to Application
(3) Push the 8086 segment register values onto the with null (0) selectors before entering the interrupt
new stack, in the order: GS, FS, OS, ES. These handler. This will permit the handler to safely save
are pushed as 32-bit quantities, with undefined and restore the OS, ES, FS, and GS registers as
values in the upper 16 bits. Then load these 4 80286 selectors. This is needed so that interrupt
registers with null selectors (0). handlers which don't care about the mode of the
(4) Push the old 8086 stack pointer onto the new interrupted program can use the same prolog and
stack by pushing the SS register (as 32-bits, high epilog code for state saving (i.e., push all registers in
bits undefined), then pushing the 32-bit ESP reg- prolog, pop all in epilog) regardless of whether or not
ister saved above. a "native" mode or Virtual 8086 mode program was
interrupted. Restoring null selectors to these regis-
(5) Push the 32-bit FLAGS register saved in step 1. ters before executing the IRET will not cause a trap
(6) Push the old 8086 instruction pointer onto the in the interrupt handler. Interrupt routines which ex-
new stack by pushing the CS register (as 32-bits, pect values in the segment registers, or return val-
high bits undefined), then pushing the 32-bit EIP ues in segment registers will have to obtain/return
register. values from the 8086 register images pushed onto
(7) Load up the new CS:EIP value from the interrupt the new stack. They will need to know the mode of
gate, and begin execution of the interrupt routine the interrupted program in order to know where to
in protected Intel486 OX Microprocessor mode. find/return segment registers, and also to know how
to interpret segment register values.
The transition out of virtual 8086 mode performs a
level change and stack switch, in addition to chang- The IRET instruction will perform the inverse of the
ing back to protected mode. In addition, all of the above sequence. Only the extended Intel486 OX
8086 segment register images are stored on the IRET instruction (operand size=32) can be used,
stack (behind the SS:ESP image), and then loaded and must be executed at level 0 to change the VM
bit to 1.
4-27
intel" Intel486TM DX2 MICROPROCESSOR
(1) If the NT bit in the FLAGs register is on, an inter- (5) If VM = 1, load segment registers ES, OS, FS,
task return is performed. The current state is and GS from memory locations SS:[ESP+S],
stored in the current TSS, and the link field in the SS:[ESP+ 12], SS:[ESP+ 16], and
current TSS is used to locate the TSS for the SS:[ESP+ 20], respectively, where the new val-
interrupted task which is to be resumed. ue of ESP stored in step 4 is used. Since VM = 1,
Otherwise, continue with the following se- these are done as SOS6 segment register loads.
quence. Else if VM = 0, check that the selectors in ES,
(2) Read the FLAGS image from SS:S [ESP] into the OS, FS, and GS are valid in the interrupted rou-
FLAGS register. This will set VM to the value tine. Null out invalid selectors to trap if an at-
active in the interrupted routine. tempt is made to access through them.
(3) Pop off the instruction pointer CS:EIP. EIP is (6) If (RPL(CS) > CPL), pop the stack pointer
popped first, then a 32-bit word is popped which SS:ESP from the stack. The ESP register is
contains the CS value in the lower 16 bits. If popped first, followed by 32-bits containing SS in
VM=O, this CS load is done as a protected the lower 16 bits. If VM = 0, SS is loaded as a
mode segment load. If VM = 1, this will be done protected mode segment register load. If VM = 1,
as an SOS6 segment load. an SOS6 segment register load is used.
(4) Increment the ESP register by 4 to bypass the (7) Resume execution of the interrupted routine. The
FLAGS image which was "popped" in step 1. VM bit in the FLAGS register (restored from the
interrupt routine's stack image in step 1) deter-
mines whether the processor resumes the inter-
rupted routine in Protected mode of Virtual SOS6
mode.
4-2S
int'et Intel486TM DX2 MICROPROCESSOR
The on-chip cache has been designed for maximum The cache organization is 4-way set associative and
flexibility and performance. The cache has several each line is 16 bytes wide. The eight Kbytes of
operating modes offering flexibility during program cache memory are logically organized as 128 sets,
execution and debugging. Memory areas can be de- each containing four lines.
fined as non-cacheable by software and external
hardware. Protocols for cache line invalidations and The cache memory is physically split into four
replacement are implemented in hardware, easing 2-Kbyte blocks each containing 128 lines (see Fig-
system design. ure 5.1). Associated with each 2-Kbyte block are
128 21-bit tags. There is a valid bit for each line in
the cache. Each line in the cache is either valid or
not valid. There are no provisions for partially valid
lines.
,,·EO c=J Js
16-Byte Line Size
-I rag 1
k Bytes
Sets
o
o c=J
o c=J
r -3 LRU ~ 4 valid-j
Bits BitsI I
......._----_... IJ
Figure 5.1. On-Chip Cache Physical Organization
241245-27
5-1
intel" Intel486™ DX2 MICROPROCESSOR
5-2
infel~ Intel486™ DX2 MICROPROCESSOR
Cache line fills can be performed over 8- and 16-bit valid bits are checked to see if there is a non-valid
busses using the dynamic bus sizing feature. Refer line that can be replaced. If a non-valid line is found,
to Section 7.1.3 for a description of dynamic bus that line is marked for replacement.
sizing.
The four lines in the set are labeled 10, 11, 12, and 13.
Refer to Section 7.2.3 for further information on The order in which the valid bits are checked during
cacheable cycles. an invalidation is 10, 11, 12 and 13. All valid bits are
cleared when the processor is reset or when the
cache is flushed.
5.4 Cache Line Invalidations
Replacement in the cache is handled by a pseudo
The Intel486 OX microprocessor contains both a least recently used (LRU) mechanism when all four
hardware and software mechanism for invalidating lines in a set are valid. Three bits, BO, B1 and B2,
lines in its internal cache. Cache line invalidations are defined for each of the 128 sets in the cache.
are needed to keep the Intel486 OX microproces- These bits are called the LRU bits. The LRU bits are
sor's cache contents consistent with external mem- updated for every hit or replace in the cache.
ory.
If the most recent access to the set was to 10 or 11,
Refer to Section 7.2.8 for further information on BO is set to 1. BO is set to 0 if the most recent ac-
cache line invalidations. cess was to 12 or 13. If the most recent access to
10:11 was to 10, B1 is set to 1, else B1 is set to O. If
the most recent access to 12:13 was to 12, B2 is set to
5.5 Cache Replacement 1, else B2 is set to O.
When a line needs to be placed in its internal cache The pseudo LRU mechanism works in the following
the Intel486 OX microprocessor first checks to see if manner. When a line must be replaced, the cache
there is a non-valid line in the set that can be re- will first select which of 10:11 and 12:13 was least re-
placed. If all four lines in the set are valid, a pseudo cently used. Then the cache will determine which of
least-recently-used mechanism is used to determine the two lines was least recently used and mark it for
which line should be replaced. replacement. This decision tree is shown in Figure
5.2. When the processor is reset or when the cache
A valid bit is associated with each line in the cache. is flushed all 128 sets of three LRU bits are set to O.
When a line needs to be placed in a set, the four
80=0?
Ves: 10 or 11 least recently used No: 12 or 13 least recently used
B1 = O? B2=0?
~
Replace Replace
~
Replace Replace
10 11 12 13
241245-28
5-3
Intel486TM DX2 MICROPROCESSOR
5.6 Page Cacheability The PCD bit controls cacheability on a page by page
basis. The PCD bit is internally ANDed with the
Two bits for cache control, PWT and PCD, are de- KEN # signal to control cacheability on a cycle by
fined in the page table and page directory entries. cycle basis (see Figure 5.3). PCD=O enables cach-
The state of these bits are driven out on the PWT ing while PCD = 1 forbids it. Note that cache fills are
and PCD pins during memory access cycles. enabled when PCD=O AND KEN# =0. This logical
AND is implemented physically with a NOR gate.
The PWT bit controls write policy for second level
caches used with the Intel486 DX microprocessor. The state of the PCD bit in the page table entry is
Setting PWT= 1 defines a write-through policy for driven on the PCD pin when a page in external mem-
the current page while PWT = 0 allows the possibility ory is accessed. The state of the PCD pin informs
of write-back. The state of PWT is ignored internally the external system of the cacheability of the re-
by the Intel486 DX microprocessor since the on-chip quested information. The external system then re-
cache is write through. turns KEN # telling the Intel486 DX microprocessor
if the area is cacheable. The Intel486 DX microproc-
essor initiates a cache line fill if PCD and KEN #
indicate that the requested information is cacheable.
CRa
FLUSH#
CACHE CONTROL LOGIC
KEN#
CACHE MEMORY
31 22 12 a
DIRECTORY 1 TABLE -I aFFSET-1
LINEAR
ADDRESS 1aV
1t PCD
PWT
31 a 31 a
31 a
I CRa I
t
I
I C R1 PCD, PWT
I
IC R2
I
ICR3 PCD, PWT
<rI pca, PWT
CD
I PAGE TABLE
I (From CRO)
DIRECTORY
I CONTROL REGISTERS
I
241245-29
5-4
intel . Intel486TM DX2 MICROPROCESSOR
The PCD bit is masked with the CD (cache disable) 6.2.5 for the bus cycle definition pins and Section
bit in control register 0 to determine the state of the 7.2.11 for special bus cycles). Refer to the Intel486
PCD pin. If CD = 1 the Intel486 OX microprocessor OX microprocessor programmers reference manual
forces the PCD pin HIGH. If CD=O the PCD pin is for detailed instruction definitions.
driven with the value for the page table entry/direc-
tory. See Figure 5.3. The results of the INVD and WBINVD instructions
are identical for the operation of the Intel486 OX mi-
The PWT and PCD bits for a bus cycle are obtained croprocessor's on-chip cache since the cache is
from either CR3, the page directory or page table write-through. Note that the INVD and WBINVD in-
entry. These bits are assumed to be zero during real structions are machine dependent. Future members
mode, whenever paging is disabled, or for cycles of the Intel486 OX microprocessor family may
that bypass paging, (110 references, interrupt ac- change the definition of this instruction.
knowledge and Halt cycles), the PWT and PCD bits
are taken from CR3. These bits are initialized to 0 on
reset, but can be set to any value by level 0 soft- 5.8 Caching Translation Lookaside
ware. Buffer Entries
When paging is enabled, the bits from the page table The Intel486 OX microprocessor contains an inte-
entry are cached in the TLB, and are driven any time grated paging unit with a translation lookaside buffer
the page mapped by the TLB entry is referenced. (TLB). The TLB contains 32 entries. The TLB has
For normal memory cycles, PWT and PCD are taken been enhanced over the Intel386 microprocessor's
from the page table entry. During TLB refresh cycles TLB by upgrading the replacement strategy to a
where the page table and directory entries are read, pseudo-LRU (least recently used) algorithm. The
the PWT and PCD bits must be obtained elsewhere. pseudo-LRU replacement algorithm is the same as
During page table updates the bits are obtained from that used in the on-chip cache.
the page directory. When the page directory is up-
dated the bits are obtained from CR3. The paging TLB operation is automatic whenever
paging is enabled. The TLB contains the most re-
5_7 Cache Flushing cently used page table entries. A page table entry
translates the linear address pointing to a particular
The on-chip cache can be flushed by external hard- page to the physical address where the page is
ware or by software instructions. Flushing the cache stored in memory (refer to Section 4.5, Paging).
clears all valid bits for all lines in the cache. The
cache is flushed when external hardware asserts the The paging unit will look up the linear address in the
FLUSH# pin. TLB in response to an internal bus request. The cor-
responding physical address is passed on to the on-
The flush pin needs to be asserted for one clock if chip cache or the external bus (in the event of a
driven synchronously or for two clocks if driven cache miss) when the linear address is present in
asynchronously. The flush input is asynchronous but the TLB.
setup and hold times must be met. The flush pin
should be deasserted after the cache flush is com- The paging unit will access the page tables in exter-
plete. Failure to deassert the pin will cause execu- nal memory if the linear address is not in the TLB.
tion to stop as the processor will be repeatedly flush- The required page table entry will be read into the
ing the cache. If external hardware activates flush in TLB and'then the cache or bus cycle for the actual
response to an 1/0 write, flush must be asserted for data will take place. The process of reading a new
at least two clocks prior to ready being returned for page table entry into the TLB is called a TLB refresh.
the 1/0 write. This ensures that the flush completes
before the CPU begins execution of the instruction A TLB refresh is a two step process. The paging unit
following the OUT instruction, must first read the page directory entry which points
Flush is recognized during HOLD just like EADS#. to the appropriate page table. The page table entry
to be stored in the TLB is then read from the page
The instructions INVD and WBINVD cause the on- table. Control register 3 (CR3) points to the base of
cache to be flushed. External caches connected to the page directory table.
the Intel486 OX microprocessor are signalled to
flush their contents when these instructions are exe- The Intel486 OX microprocessor will allow page di-
cuted. rectory and page table entries (returned during TLB
refreshes) to be stored in the on-chip cache. Setting
WBINVD will cause an external write-back cache to the PCD bits in CR3 and the page directory entry to
write back dirty lines before flushing its contents. 1 will prevent the page directory and page table en-
The external cache is signalled using the bus cycle tries from being stored in the on-chip cache (see
definition pins and the byte enables (refer to Section Section 5.6, Page Cacheablllty).
5-5
Intel486TM DX2 MICROPROCESSOR
A
ClK
")
-y A2-A31 )
" 32-Bi\
Address
..
BE3#
Intel"S6DX2
)~
DATA BUS Bu.
t.ticroprocessor BE2#
Byt.
32-Bi\ {00-031
Data <A "
BEI#
BEO#
ADS#
Bu.
Control { ROY# M/IO#
D/c#
INTR W/R# Bu. Cycl.
Interrupt
Signals { RESET
NMI
lOCK#
PlOCK#
) Definition
AHOlD
HOLD
Cache { EADS#
Invalidation HlDA
Bu.
BOFF# ) Arbitration
KEN#
Cache
Control { FlUSH#
BREQ
PWT BRDY#
Page
Caching
Control { PCD BlAST#
Bur.\
} Control
FERR#
Numeric
Error
Reporting { IGNNE#
BS8#
BSI6#
Bu. Size
} C0ntrol
Boundary
Scan
1 HAS
TOI
TDO
DPI
DPO
PCHK#
241245-30
Section 6 and 7 will discuss bus cycles and data Addresses are driven back into the Intel486 OX mi-
cycles. A bus cycle is at least two clocks long and croprocessor over A31-A4 during cache line invali-
begins with ADS # active in the first clock and ready dations. The address lines are active HIGH. When
active in the last clock. Data is transferred to or from used as inputs into the processor, A31-A4 must
the Intel486 OX microprocessor during a data cycle. meet the setup and hold times, t22 and t23. A31-A2
A bus cycle contains one or more data cycles. are not driven during bus or address hold.
6-2
infel~ Intel486™ DX2 MICROPROCESSOR
The byte enable outputs, BEO#-BE3#, determine end of the previous clock. Parity is checked during
which bytes must be driven valid for read and write code reads, memory reads and 1/0 reads. Parity is
cycles to external memory. not checked during interrupt acknowledge cycles.
PCHK # only checks the parity status for enabled
BE3# applies to 024-031 bytes as indicated by the byte enable and bus size
BE2# applies to 016-023 signals. It is valid only in the clock immediately after
read data is returned to the Intel486 OX microproc-
BE1 # applies to 08-015 essor. At all other times it is inactive (HIGH).
BEO# applies to 00-07 PCHK# is never floated.
BEO#-BE3# can be decoded to generate AO, A1 Driving PCHK # is the only effect that bad input pari-
and BHE# signals used in 8- and 16-bit systems ty has on the Intel486 OX microprocessor. The In-
(see Table 7.5). BEO#-BE3# are active LOW and tel486 OX microprocessor will not vector to a bus
are not driven during bus hold. error interrupt when bad data parity is returned. In
systems that will not employ parity, PCHK# can be
ignored. In systems not using parity, OPO-OP3
6_2.3 DATA LINES (D31-DO) should be connected to Vee through a pullup resis-
The bidirectional lines, 031-00, form the data bus tor.
for the Intel486 OX microprocessor. 00-07 define
the least significant byte and 024-031 the most sig- 6.2.5 BUS CYCLE DEFINITION
nificant byte. Oata transfers to 8- or 16-bit devices is
possible using the data bus sizing feature controlled M/IO#, D/C#, W/R# Outputs
by the BS8# or BS16# input pins.
MIIO#, O/C# and W/R# are the primary bus cycle
031-00 are active HIGH. For reads, 031-00 must definition signals. They are driven valid as the AOS#
meet the setup and hold times, t22 and t23. 031-00 signal is asserted. M/IO# distinguishes between
are not driven during read cycles and bus hold. memory and 1/0 cycles, O/C# distinguishes be-
tween data and control cycles and W/R# distin-
guishes between write and read cycles.
6.2.4 PARITY
Data Parity Input/Outputs (DPO-DP3) Bus cycle definitions as a function of MilO #, O/C #
and W/R# are given in Table 6.1. Note there is a
OPO-OP3 are the data parity pins for the processor. difference between the Intel486 OX microprocessor
There is one pin for each byte of the data bus. Even and Intel386 microprocessor bus cycle definitions.
parity is generated or checked by the parity genera- The halt bus cycle type has been moved to location
torsi checkers. Even parity means that there are an 001 in the Intel486 OX microprocessor from location
even number of HIGH inputs on the eight corre- 101 in the Intel386 microprocessor. Location 101 is
sponding data bus pins and parity pin. now reserved and will never be generated by the
Intel486 OX microprocessor.
Oata parity is generated on all write data cycles with
the same timing as the data driven by the Intel486 Table 6.1. ADS# Initiated Bus Cycle Definitions
OX microprocessor. Even parity information must be M/IO# D/C# W/R# Bus Cycle Initiated
driven back to the Intel486 OX microprocessor on
these pins with the same timing as read information 0 0 0 Interrupt Acknowledge
to insure that the correct parity check status is indi- 0 0 1 Halt/Special Cycle
cated by the Intel486 OX microprocessor. 0 0 1/0 Read
0 1 1 I/O Write
The values read on these pins do not affect program 0 0 Code Read
execution. It is the responsibility of the system to 0 1 Reserved
take appropriate actions if a parity error occurs. 0 Memory Read
Memory Write
Input signals on OPO-OP3 must meet setup and
hold times t22 and t23 for proper operation.
Special bus cycles are discussed in Section 7.2.11.
Parity Status Output (PCHK#)
Bus Lock Output (LOCK #)
Parity status is driven on the PCHK# pin, and a pari-
ty error is indicated by this pin being LOW. PCHK# LOCK # indicates that the Intel486 OX microproces-
is driven the clock after ready for read operations to sor is running a read-modify-write cycle where the
indicate the parity status for the data sampled at the external bus must not be relinquished between the
6-3
intel . Intel486TM DX2 MICROPROCESSOR
read and write cycles. Read-modify-write cycles are 6.2.6 BUS CONTROL
used to implement memory-based semaphores.
Multiple reads or writes can be locked. The bus control Signals allow the processor to indi-
cate when a bus cycle has begun, and allow other
When LOCK # is asserted, the current bus cycle is system hardware to control burst cycles, data bus
locked and the Intel486 DX microprocessor should width and bus cycle termination.
be allowed exclusive access to the system bus.
LOCK # goes active in the first clock of the first Address Status Output (ADS#)
locked bus cycle and goes inactive after ready is
returned indicating the last locked bus cycle. The ADS # output indicates that the address and
bus cycle definition signals are valid. This signal will
The Intel486 DX microprocessor will not acknowl- go active in the first clock of a bus cycle and go
edge bus hold when LOCK # is asserted (though it inactive in the second and subsequent clocks of the
will allow an address hold). LOCK# is active LOW cycle. ADS# is also inactive when the bus is idle.
and is floated during bus hold. Locked read cycles
will not be transformed into cache fill cycles if KEN # ADS# is used by external bus circuitry as the indica-
is returned active. Refer to Section 7.2.6 for a de- tion that the processor has started a bus cycle. The
tailed discussion of Locked bus cycles. external circuit must sample the bus cycle definition
pins on the next riSing edge of the clock after ADS #
Pseudo-Lock Output (PLOCK #) is driven active.
The pseudo-lock feature allows atomic reads and ADS# is active LOW and is not driven during bus
writes of memory operands greater than 32 bits. hold.
These operands require more than one cycle to
transfer. The Intel486 DX microprocessor asserts Non-burst Ready Input (RDY #)
PLOCK # during floating point long reads and writes
(64 bits), segment table descriptor reads (64 bits) RDY # indicates that the current bus cycle is com-
and cache line fills (128 bits). plete. In response to a read, RDY # indicates that
the external system has presented valid data on the
When PLOCK # is asserted no other master will be data pins. In response to a write request, RDY # indi-
given control of the bus between cycles. A bus hold cates that the external system has accepted the In-
request (HOLD) is not acknowledged during pseudo- tel486 DX microprocessor data. RDY # is ignored
locked reads and writes, with one exception. During when the bus is idle and at the end of the first clock
non-cacheable non-bursted code prefetches, HOLD of the bus cycle. Since RDY # is sampled during ad-
is recognized on memory cycle boundaries even dress hold, data can be returned to the processor
though PLOCK# is asserted. The Intel486 DX mi- when AHOLD is active.
croprocessor will drive PLOCK # active until the ad-
dresses for the last bus cycle of the transaction RDY # is active LOW, and is not provided with an
have been driven regardless of whether BRDY # or internal pullup resistor. This input must satisfy setup
RDY # are returned. and hold times t16 and t17 for proper chip operation.
6-4
int:el.. Intel486™ DX2 MICROPROCESSOR
lines A2-A3 and byte enables will change to reflect sure program interruption. Refer to Section 7.2.10
the next data item expected by the Intel486 DX mi- for a detailed discussion of interrupt acknowledge
croprocessor. cycles.
If RDY # is returned simultaneously with BRDY #, The INTR pin is active HIGH and is not provided with
BRDY # is ignored and the burst cycle is premature- an internal pulldown resistor. INTR is asynchronous,
ly aborted. An additional complete bus cycle will be but the INTR setup and hold times, t20 and t21, must
initiated after an aborted burst cycle if the cache line be met to assure recognition on any specific clock.
fill was not complete. BRDY # is treated as a normal
ready for the last data cycle in a burst transfer or for Non-maskable Interrupt Request Input (NMI)
non-burstable cycles. Refer to Section 7.2.2 for
burst cycle timing. NMI is the non-maskable interrupt request signal.
Asserting NMI causes an interrupt with an internally
BRDY # is active lOW and is provided with a small supplied vector value of 2. External interrupt ac-
internal pullup resistor. BRDY # must satisfy the set- knowledge cycles are not generated since the NMI
up and hold times t16 and t17. interrupt vector is internally generated. When NMI
processing begins, the NMI signal will be masked
Burst Last Output (BLAST #) internally until the IRET instruction is executed.
BLAST # indicates that the next time BRDY # is re-
NMI is rising edge sensitive after internal synchroni-
turned it will be treated as a normal RDY #, terminat- zation. NMI must be held lOW for at least four elK
ing the line fill or other multiple-data-cycle transfer. periods before this rising edge for proper operation.
BLAST # is active for all bus cycles regardless of NMI is not provided with an internal pulldown resis-
whether they are cacheable or not. This pin is active tor. NMI is asynchronous but setup and hold times,
lOW and is not driven during bus hold. t20 and t21 must be met to assure recognition on any
specific clock.
6.2.8 INTERRUPT SIGNALS (RESET, INTR,
NMI)
6.2.9 BUS ARBITRATION SIGNALS
The interrupt signals can interrupt or suspend exe-
This section describes the mechanism by which the
cution of the processor's current instruction stream.
processor relinquishes control of its local bus when
Reset Input (RESET) requested by another bus master.
RESET forces the Intel486 DX2 microprocessor to Bus Request Output (BREQ)
begin execution at a known state. For a power-up
(cold start) reset, Vee and ClK must reach their The Intel486 DX microprocessor asserts BREa
proper DC and AC specifications for at least whenever a bus cycle is pending internally. Thus,
1 ms before the Intel486 DX2 microprocessor be- BREa is always asserted in the first clock of a bus
gins instruction execution. The RESET pin should cycle, along with ADS#. Furthermore, if the Intel486
remain active during this time to ensure proper In- DX microprocessor is currently not driving the bus
tel486 DX2 microprocessor operation. However, for (due to HOLD, AHOlD, or 80FF#), BREa is assert-
a warm boot-up case, RESET is required to re- ed in the same clock that ADS# would have been
main active for a minimum of 15 clocks. The test- asserted if the processor were driving the bus. After
ability operating modes are programmed by the fail- the first clock of the bus cycle, 8REa may change
ing (inactive going) edge of RESET. (Refer to Sec- state. It will be asserted if additional cycles are nec-
tion 8.0 for a description of the test modes during essary to complete a transfer (via 8S8 #, 8S 16 # ,
reset.) KEN#), or if more cycles are pending internally.
However, if no additional cycles are necessary to
Maskable Interrupt Request Input (INTR) complete the current transfer, 8REa can be negat-
ed before ready comes back for the current cycle.
INTR indicates that an external interrupt has been External logic can use the 8REa signal to arbitrate
generated. Interrupt processing is initiated if the IF among multiple processors. This pin is driven re-
flag is active in the EFLAGS register. gardless of the state of bus hold or address hold.
BREa is active HIGH and is never floated. During a
The Intel486 DX microprocessor will generate two hold state, internal events may cause 8REa to be
locked interrupt acknowledge bus cycles in re- deasserted prior to any bus cycles.
sponse to asserting the INTR pin. An 8-bit interrupt
number will be latched from an external interrupt Bus Hold Request Input (HOLD)
controller at the end of the second interrupt ac-
knowledge cycle. INTR must remain active until the HOLD allows another bus master complete control
interrupt acknowledges have been performed to as- of the Intel486 DX microprocessor bus. The Intel486
6-5
intel. Intel486TM DX2 MICROPROCESSOR
OX microprocessor will respond to an active HOLD Any data returned to the processor while BOFF # is
signal by asserting HLDA and placing most of its asserted is ignored. BOFF # has higher priority than
output and input/output pins in a high impedance ROY # or BRDY #. If both BOFF # and ready are
state (floated) after completing its current bus cycle, returned in the same clock, BOFF # takes effect. If
burst cycle, or sequence of locked cycles. In addi- BOFF# is asserted while the bus is idle, the Intel486
tion, if the Intel486 OX CPU receives a HOLD re- OX microprocessor will float its bus in the next bus
quest while performing a non-cacheable, non-burst- clock. BOFF # is active LOW and must meet setup
ed code prefetch and that cycle is backed off and hold times t18 and t19 for proper chip operation.
(BOFF #), the Intel486 OX CPU will recognize HOLD
before restarting the cycle. The BREQ, HLDA, 6.2.10 CACHE INVALIDATION
PCHK # and FERR # pins are not floated during bus
hold. The Intel486 OX microprocessor will maintain The AHOLD and EADS# inputs are used during
its bus in this state until the HOLD is deasserted. cache invalidation cycles. AHOLD conditions the In-
Refer to Section 7.2.9 for timing diagrams for a bus tel486 OX microprocessors address lines, A4-A31,
hold cycle. to accept an address input. EADS# indicates that
an external address is actually valid on the address
Unlike the Intel386 microprocessor, the Intel486 DX inputs. Activating EADS# will cause the Intel486 OX
microprocessor will recognize HOLD during re- microprocessor to read the external address bus
set. Pullup resistors are not provided for the outputs and perform an internal cache invalidation cycle to
that are floated in response to HOLD. HOLD is ac- the address indicated. Refer to Section 7.2.8 for
tive HIGH and is not provided with an internal pull- cache invalidation cycle timing.
down resistor. HOLD must satisfy setup and hold
times t18 and t19 for proper chip operation. Address Hold Request Input (AHOLD)
Bus Hold Acknowledge Output (HLDA) AHOLD is the address hold request. It allows anoth-
er bus master access to the Intel486 OX microproc-
HLDA indicates that the Intel486 OX microprocessor essor address bus for performing an internal cache
has given the bus to another local bus master. HLDA invalidation cycle. Asserting AHOLD will force the
goes active in response to a hold request presented Intel486 OX microprocessor to stop driving its ad-
on the HOLD pin. HLDA is driven active in the same dress bus in the next clock. While AHOLD is active
bus clock cycle that the Intel486 OX microprocessor only the address bus will be floated, the remainder
floats its bus. of the bus can remain active. For example, data can
be returned for a previously specified bus cycle
HLDA will be driven inactive when leaving bus hold when AHOLD is active. The Intel486 OX microproc-
and the Intel486 OX microprocessor will resume essor will not initiate another bus cycle during ad-
driving the bus. The Intel486 OX microprocessor will dress hold. Since the Intel486 OX microprocessor
not cease internal activity during bus hold since the floats its bus immediately in response to AHOLD, an
internal cache will satisfy the majority of bus re- address hold acknowledge is not required. If AHOLD
quests. HLDA is active HIGH and remains driven is asserted while a bus cycle is in progress, and no
during bus hold. readies are returned during the time AHOLD is as-
serted, the Intel486 OX will redrive the same ad-
Backoff Input (BOFF #) dress (that it originally sent out) once AHOLD is neg-
ated.
Asserting the BOFF# input forces the Intel486 OX
microprocessor to release control of its bus in the AHOLD is recognized during reset. Since the entire
next clock. The pins floated are exactly the same as cache is invalidated by reset, any invalidation cycles
in response to HOLD. The response to BOFF # dif- run during reset will be unnecessary. AHOLD is ac-
fers from the response to HOLD in two ways: First, tive HIGH and is provided with a small internal pull-
the bus is floated immediately in response to down resistor. It must satisfy the setup and hold
BOFF # while the Intel486 OX microprocessor com- times t18 and t19 for proper chip operation. This pin
pletes the current bus cycle before floating its bus in determines whether or not the built in self test fea-
response to HOLD. Second the Intel486 OX does tures of the Intel486 OX microprocessor will be exer-
not assert HLDA in response to BOFF#. cised on assertion of RESET.
The processor remains in bus hold until BOFF # is External Address Valid Input (EADS#)
negated. Upon negation, the Intel486 OX microproc-
essor restarts the bus cycle aborted when BOFF # EADS# indicates that a valid external address has
was asserted. To the internal execution engine the been. driven onto the Intel486 OX address pins. This
effect of BOFF # is the same as inserting a few wait address will be used to perform an internal cache
states to the original cycle. Refer to Section 7.2.12 invalidation cycle. The external address will be
for a description of bus cycle restart. checked with the current cache contents. If the ad-
6-6
Intel486™ DX2 MICROPROCESSOR
dress specified matches any areas in the cache, that PCD is masked by the CD (cache disable) bit in con-
area will immediately be invalidated. trol register 0 (CRO). When CD = 1 (cache line fills
disabled) the Intel486 OX microprocessor forces
An invalidation cycle may be run by asserting PCD HIGH. When CD = 0, PCD is driven with the
EADS# regardless of the state of AHOLD, HOLD value of the page table entry/directory.
and BOFF#. EADS# is active LOW and is provided
with an internal pullup resistor. EADS# must satisfy The purpose of PCD is to provide a cacheable/non-
the setup and hold times t12 and t13 for proper chip cacheable indication on a page by page basis. The
operation. Intel486 OX will not perform a cache fill to any page
in which bit 4 of the page table entry is set. PWT
corresponds to the write-back bit and can be used
6.2.11 CACHE CONTROL
by an external cache to provide this functionality.
Cache Enable Input (KEN#) PCD and PWT bits are assigned to be zero during
real mode or whenever paging is disabled. Refer to
KEN # is the cache enable pin. KEN # is used to Sections 4.5.4 and 5.6 for a discussion of non-
determine whether the data being returned by the cacheable pages.
current cycle is cacheable. When KEN # is active
and the Intel486 OX microprocessor generates a cy- PCD and PWT have the same timing as the cycle
cle that can be cached (most any memory read cy- definition pins (M/IO#, D/C#, W/R#). PCD and
cle), the cycle will be transformed into a cache line PWT are active HIGH and are not driven during bus
fill cycle. hold.
1. Exceptions other than on all transcendental in- tion in any specific clock. For correct operation of
structions, integer arithmetic instructions, the chip, A20M # should be sampled high 2 clocks
FSQRT, FSCALE, FPREM(1), FXTRACT, F8LO. before and 2 clocks after RESET goes low.
and F8STP.
2. Any exception on all basic arithmetic, load, com- 6.2.16 BOUNDARY SCAN TEST SIGNALS
pare, and control instructions (i.e., all other in-
structions).
Test Clock (TCK)
Ignore Numeric Error Input (IGNNE#) TCK is an input to the Intel486 OX2 CPU and pro-
vides the clocking function required by the JTAG
The Intel486 OX microprocessor will ignore a numer-
boundary scan feature. TCK is used to clock state
ic error and continue executing non-control floating information and data into and out of the component.
point instructions when IGNNE # is asserted, but State select information and data are clocked into
FERR # will still be activated. When deasserted, the
the component on the rising edge of TCK on TMS
Intel486 OX microprocessor will freeze on a non- and TOI, respectively. Oata is clocked out of the part
control floating point instruction if a previous instruc- on the falling edge of TCK on TOO.
tion caused an error. IGNNE# has no effect when
the NE bit in control register 0 is set. In addition to using TCK as a free running clock, it
may be stopped in a low, 0, state, indefinitely as
The IGNNE# input is active LOW and is provided described in IEEE 1149.1. While TCK is stopped in
with a small internal pullup resistor. This input is the low state, the boundary scan latches retain their
asynchronous, but must meet setup and hold times state.
t20 and t21 to insure recognition on any specific
clock. When boundary scan is not used, TCK should be
tied high or left as a NC (This is important during
6.2.14 BUS SIZE CONTROL (BS16#, BS8#) power up to avoid the possibility of glitches on the
TCK which could prematurely initiate boundary scan
The 8S16# and 8S8# inputs allow external 16- and operations). TCK is supplied with an internal pullup
8-bit busses to be supported with a small number of resistor.
external components. The Intel486 OX CPU sam-
ples these pins every clock. The value sampled in TCK is a clock signal and is used as a reference for
the clock before ready determines the bus size. sampling other JTAG signals. On the riSing edge of
When asserting 8S16# or 8S8# only 16 or 8 bits of TCK, TMS and TOI are sampled. On the falling edge
the data bus need be valid. If both 8S16# and of TCK, TOO is driven.
BS8 # are asserted, an 8-bit bus width is selected.
When 8S16# or 8S8# are asserted the Intel486 OX Test Mode Select (TMS)
microprocessor will convert a larger data request to TMS is decoded by the JTAG TAP (Tap Access
the appropriate number of smaller transfers. The Port) to select the operation of the test logic, as de-
byte enables will also be modified appropriately for scribed in Section 8.5.4.
the bus size selected.
To guarantee deterministic behavior of the TAP con-
BS16# and 8S8# are active LOW and are provided troller, TMS is provided with an internal pull-up resis-
with small internal pullup resistors. 8S16# and tor. If boundary scan is not used, TMS may be tied
BS8# must satisfy the setup and hold times t14 and high or left unconnected. TMS is sampled on the
t15 for proper chip operation. rising edge of TCK. TMS is used to select the inter-
nal TAP states required to load boundary scan in-
6.2.15 ADDRESS BIT 20 MASK (A20M#) structions to data on TOI. For proper initialization of
the JTAG logiC, TMS should be driven high, "1", for
Asserting the A20M# input causes the Intel486 OX at least four TCK cycles following the riSing edge of
microprocessor to mask physical address bit 20 be- RESET.
fore performing a lookup in the internal cache and
before driving a memory cycle to the outside world.
When A20M # is asserted, the Intel486 OX micro- Test Data Input (TDI)
processor emulates the 1 Mbyte address wrap- TOI is the serial input used to shift JTAG instructions
around that occurs on the 8086. A20M # is active and data into the component. The shifting of instruc-
LOW and must be asserted only when the processor tions and data occurs during the SHIFT-IR and
is in real mode. The A20M # is not defined in Pro- SHIFT-OR controller states, respectively. These
tected Mode. A20M # is asynchronous but should states are selected using the TMS signal as de-
meet setup and hold times t20 and t21 for recogni- scribed in Section 8.5.4.
6-8
int'eL Intel486TM DX2 MICROPROCESSOR
An internal pull-up resistor is provided on TOI to en- Reordering of a read with the writes pending in the
sure a known logic state if an open circuit occurs on buffers can only occur once before all the buffers
the TOI path. Note that when "1" is continuously are emptied. Reordering read once only maintains
shifted into the instruction register, the BYPASS cache consistency. Consider the following example:
instruction is selected. TOI is sampled on the The CPU writes to location X. Location X is in the
rising edge of TCK, during the SHIFT-IR and the internal cache, so it is updated there immediately.
SHIFT-OR states. Ouring all other TAP controller However, the bus is busy so the write out to main
states, TOI is a "don't care". memory is buffered (see Figure 6.3(a)). At this point,
any reads to location X would be cache hits and
most up-to-date data would be read.
Test Data Output (TOO)
'I-~"I '1--' 1
and SHIFT-OR TAP controller states, respectively. w
These states are selected using the TMS signal as X data x
described in Section 8.5.4. When not in SHIFT-IR or y data y
SHIFT-OR state, TOO is driven to a high impedance Z
state to allow connecting TOO of different devices in
parallel. Figure 6.3(a)
TOO is driven on the falling edge of TCK during the The next instruction causes a read to location Y.
SHIFT-IR and SHIFT-OR TAP controller states. At Location Y is not in the cache (a cache miss). Since
all other times TOO is driven to the high impedance the write in the write buffer is a cache hit, the read is
state. reordered. When location Y is read, it is put into the
cache. The possibility exists that location Y will re-
place location X in the cache. If this is true, location
6.3 Write Buffers X would no longer be cached (see Figure 6.3(b)).
When all four buffers are empty and the bus is idle, a
write request will propagate directly to the external
bus bypassing the write buffers. If the bus is not
available at the time the write is generated internally, Figure 6.3(b)
the write will be placed in the write buffers and prop-
agate to the bus as soon as the bus becomes avail- Cache consistency has been maintained up to this
able. The write is stored in the on-chip cache imme- point. If a subsequent read is to location X (now a
diately if the write is a cache hit. cache miss) and it was reordered in front of the buff-
ered write to location X, stale data would be read.
Writes will be driven onto the external bus in the This is why only 1 read is allowed to be reordered.
same order in which they are received by the write Once a read is reordered, all the writes in the write
buffers. Under certain conditions a memory read will buffer are flagged as cache misses to ensure that no
go onto the external bus before the memory writes more reads are reordered. Since one of the condi-
pending in the buffer even though the writes oc- tions to reorder a read is that all writes in the write
curred earlier in the program execution. buffer must be cache hits, no more reordering is al-
lowed until all of those flagged writes propogate to
A memory read will only be reordered in front of all the bus. Similarly, if an invalidation cycle is run all
writes in the buffers under the following conditions: If entries in the write buffer are flagged as cache
all writes pending in the buffers are cache hits and misses.
the read is a cache miss. Under these conditions the
Intel486 OX microprocessor will not read from an For multiple processor systems and/or systems us-
external memory location that needs to be updated ing OMA techniques, such as bus snooping, locked
by one of the pending writes. semaphores should be used to maintain cache con-
sistency.
6-9
inteL Intel486™ DX2 MICROPROCESSOR
6.3.1 WRITE BUFFERS AND 1/0 CYCLES The Intel486 OX microprocessor will assert the
LOCK # pin after the write buffers are emptied dur-
Input/Output (1/0) cycles must be handled in a dif- ing a locked bus cycle. With the LOCK# pin assert-
ferent manner by the write buffers. ed, the microprocessor will read the data, operate
on the data and place the results in a write buffer.
110 reads are never reordered in front of buffered The contents of the write buffer will then be written
memory writes. This insures that the Intel486 OX mi- to external memory. LOCK # will become inactive
croprocessor will update all memory locations be- after the write part of the locked cycle.
fore reading status from an 1/0 device.
6-10
infel· Intel486™ DX2 MICROPROCESSOR
The longest latency between when an interrupt re- Table 6.2. Register Values after Reset
quest is presented on the INTR.pin and when the
interrupt service begins is: longest instruction used Initial Value Initial Value
Register
+ the two clocks for synchronization + one clock (BIST) (NoBlst)
required to vector into the interrupt service micro- EAX Zero (Pass) Undefined
code.
ECX Undefined Undefined
EOX 0400+ Revision 10 0400+ Revision 10
6.4.2 NMI LOGIC EBX Undefined Undefined
The NMI pin has a synchronizer like that used on the ESP Undefined Undefined
INTR line. Other than the synchronizer, the NMllog- EBP Undefined Undefined
ic is different from that of the maskable interrupt. ESI Undefined Undefined
EOI Undefined Undefined
NMI is edge triggered as opposed to the level trig- EFLAGS 00000OO2h 00000002h
gered INTR signal. The rising edge of the NMI signal EIP OFFFOh OFFFOh
is used to generate the interrupt request. The NMI
ES OOOOh OOOOh
input need not remain active until the interrupt is ac-
CS FOOOh· FOOOh·
tually serviced •. The NMI pin only needs to remain
active for a single clock if the required setup and SS OOOOh OOOOh
hold times are met. NMI will operate properly if it is OS OOOOh OOOOh
held active for an arbitrary number of clocks. FS OOOOh OOOOh
GS OOOOh OOOOh
The NMI input must be held inactive for at least four 10TR Base = 0, Limit=3FFh Base=O, Limit=3FFh
clocks after it is asserted to reset the edge triggered CRO 60000010h 60000010h
logic. A subsequent NMI may not be generated if the
OR7 OOOOOOOOh OOOOOOOOh
NMI is not held inactive for at least two clocks after
being asserted.
CW 037Fh Unchanged
The NMI input is internally masked whenever the SW OOOOh Unchanged
NMI routine is entered. The NMI input will remain TW FFFFh Unchanged
masked until an IRET (return from interrupt) instruc- FIP OOOOOOOOh Unchanged
tion is executed. Masking the NMI signal prevents FEA OOOOOOOOh Unchanged
recursive NMI calls. If another NMI occurs while the FCS OOOOh Unchanged
NMI is masked off, the pending NMI will be executed
FOS OOOOh Unchanged
after the current NMI is done. Only one NMI can be
pending while NMI is masked. FOP OOOh Unchanged
FSTACK Undefined Unchanged
6-11
intal.. Intel486TM DX2 MICROPROCESSOR
RESET forces the Intel486 OX microprocessor to After the first FINIT or FNINIT instruction, FERR#
terminate all execution and local bus activity. No in- pin and the FPU status word register bits (0-7) will
struction or bus activity will occur as long as RESET be inactive irrespective of the Built-In Self-Test
is active. (BIST).
6-12
ClK
AHOlD
FlUSH#
(aync)
FlUSH#
(urnc)
A20M"
(sync)
A20N"
(oyne)
:!!
CD
...
c:
CD
ADS"
!» BREQ
~
"3"
fn
A31 -A.. , MIO#, BLAST
A31 ......... A2 A1 AO
The byte enable outputs are asserted when their as-
sociated data bus bytes are involved with the pres- A31 ......... A2 0 0 X X X Low
ent bus cycle, as listed in Table 7.1. Byte enable
patterns which have a negated byte enable separat-
A31 ......... A2 0 1 X X Low High
ing two or three asserted byte enables will never A31 ......... A2 1 0 X Low High High
occur (see Table 7.5). All other byte enable patterns
are possible.
A31 ......... A2 1 1 Low High High High
7-1
infel . Intel486TM DX2 MICROPROCESSOR
FFFFFFFFH
~
I/(~~
PHYSICAL
MEMORY
4GBYTE
I~/NOT I).
OOOOFFFFH
~
:W1
B} ACCESSIBLE
64 kBYTE PROGRAMMED
OOOOOOOOH L.._ _--' OOOOOOOOH I/o SPACE 241245-33
Physical Memory Space 1/0 Space
I I I I r~'~
32-Bit Wide Organization
ORGANIZATION
The Intel486 OX microprocessor data path to memo-
ry and input/output (110) spaces can be 32-, 16- or m"'~
8-bits wide. The byte enable signals, BEO#-BE3#,
00000003H '-. • • • • • ~ oOOOOOOOH
allow byte granularity when addressing any memory
OJ
or 110 structure whether 8, 16 or 32 bits wide. BE3# BE2# BE1# 9EO#
241245-34
The Intel486 OX microprocessor includes bus con-
trol pins, BS16 # and BS8 #, which allow direct con- 16-Blt Wide Organization
nection to 16- and 8-bit memories and 110 devices. FFFFFFFFH FFFFFFFEH
Cycles to 32-, 16- and 8-bit may occur in any se-
quence, since the 8S8# and 8S16# signals are
sampled during each bus cycle.
7-2
intel@ Intel486TM DX2 MICROPROCESSOR
16-bit memories are organized as arrays of physical The Intel486 OX microprocessor will drive the byte
2-byte words. Physical 2-byte words begin at ad- enables appropriately during extra cycles forced by
dresses divisible by two. The byte enables 8EO#- 888# and 8816#. A2-A31 will not change if ac-
8E3#, must be decoded to A1, 8LE# and 8HE# to cesses are to a 32-bit aligned area. Table 7.3 shows
address 16-bit memories (see 8ection 7.1.4). the set of byte enables that will be generated on the
next cycle for each of the valid possibilities of the
To address 8-bit memories, the two low order ad- byte enables on the current cycle.
dress bits AO and A1, must be decoded from 8EO #-
8E3 #. The same logic can be used for 8- and 16-bit The dynamic bus sizing feature of the Intel486 OX
memories since the decoding logic for 8LE# and AO microprocessor is significantly different than that of
are the same (see 8ection 7.1.4). the Intel386 microprocessor. Unlike the Intel386 mi-
croprocessor, the Intel486 OX microprocessor re-
quires that data bytes be driven on the addressed
7.1.3 DYNAMIC DATA BUS SIZING data pins. The simplest example of this function is a
32-bit aligned, 8816# read. When the Intel486 OX
Oynamic data bus sizing is a feature allowing proc-
essor connection to 32-, 16- or 8-bit buses for mem- microprocessor reads the two high order bytes, they
ory or liD. A processor may connect to all three bus must be driven on the data bus pins 016-031. The
sizes. Transfers to or from 32-, 16- or 8-bit devices Intel486 OX microprocessor expects the two low or-
are supported by dynamically determining the bus der bytes on 00-015. The Intel386 microprocessor
width during each bus cycle. Address decoding cir- expects both the high and low order bytes on 00-
cuitry may assert 8816# for 16-bit devices, or 015. The Intel386 microprocessor always reads or
888# for 8-bit devices during each bus cycle. 888# writes data on the lower 16 bits of the data bus when
and 8816# must be negated when addressing 32- 8816# is asserted.
bit devices. An 8-bit bus width is selected if both
8816# and 888# are asserted. The external system must contain buffers to enable
the Intel486 OX microprocessor to read and write
data on the appropriate data bus pins. Table 7.4
8816#.and 888# force the Intel486 OX microproc-
essor to run additional bus cycles to complete re- shows the data bus lines where the Intel486 OX mi-
croprocessor expects data to be returned for each
quests larger than 16- or 8 bits. A 32-bit transfer will
be converted into two 16-bit transfers (or 3 transfers valid combination of byte enables and bus sizing op-
if the data is misaligned) when 8816# is asserted. tions.
Asserting 888# will convert a 32-bit transfer into
four 8-bit transfers. Valid data will only be driven onto data bus pins cor-
responding to active byte enables during write cy-
Extra cycles forced by 8816# or 888# should be cles. Other pins in the data bus will be driven but
viewed as independent bus cycles. 8816# or 888# they will not contain valid data. Unlike the Intel386
microprocessor, the Intel486 OX microprocessor will
must be driven active during each of the extra cycles
unless the addressed device has the ability to not duplicate write data onto parts of the data bus
change the number of bytes it can return between for which the corresponding byte enable is negated.
cycles.
7-3
infel . Intel486TM DX2 MICROPROCESSOR
7.1.4 INTERFACING WITH 8-,16- AND 32-BIT 16- and 8-bit memories require external byte swap-
MEMORIES ping logic for routing data to the appropriate data
lines and logic for generating BHE #, BLE # and A 1.
In 32-bit physical memories such as Figure 7.3, each In systems where mixed memory widths are used,
4-byte word begins at a byte address that is a multi- extra address decoding logic is necessary to assert
ple of four. A2-A31 are used as a 4-byte word se- B816# or B88#.
lect. BEO#-BE3# select individual bytes within the
4-byte word. B88# and B816# are negated for all Figure 7.4 shows the Intel486 OX microprocessor
bus cycles involving the 32-bit array. address bus interface to 32-, 16- and 8-bit memo-
ries. To address 16-bit memories the byte enables
must be decoded to produce A1, BHE# and BLE#
32 DATA BUS (00-031) (AO). For 8-bit wide memories the byte enables must
be decoded to produce AO and A1. The same byte
ADDRESS BUS (BEO#-BE3#,A2-A31)
select logic can be used in 16- and 8-bit systems
since BLE# is exactly the same as AO (see Table
7.5).
"HIGH" "HIGH"
241245-36 BEO#-BE3# can be decoded as shown in Table
7.5 to generate A1, BHE# and BLE#. The byte se-
Figure 7.3. Intel486™ DX Microprocessor lect logic necessary to generate BHE# and BLE# is
with 32-Bit Memory shown in Figure 7.5.
B58# 1 1 BS16#
A31-A2
Addre•• 16-8it
Decode ~ BHE#, BLE#, A 1
Memory
8EO#-8E3# Byte
Select Logic
AO(BLE#), A 1
a-Bit
A31-A2 Memory
241245-37
7-4
intel~ Intel486™ DX2 MICROPROCESSOR
Table 7.5. Generating A1, BHE# and BLE# for Addressing 16·Bit Devices
Intel486TM DX CPU Signals 8, 16·Bit Bus Signals
Comments
BE3# BE2# BE1# BEO# A1 BHE# BLE# (AO)
H* H* H* H* x x x x-no active bytes
H H H L L H L
H H L H L L H
H H L L L L L
H L H H H H L
H* L* H* L* x x x x-not contiguous bytes
H L L H L L H
H L L L L L L
L H H H H L H
L* H* H* L* x x x x-not contiguous bytes
L* H* L* H* x x x x-not contiguous bytes
L* H* L* L* x x x x-not contiguous bytes
L L H H H L L
L* L* H* L* x x x x-not contiguous bytes
L L L H L L H
L L L L L L L
BLE# asserted when 00-07 of 16-bit bus is active.
BHE # asserted when 08-015 of 16-bit bus is active.
A 1 low for all even words; A 1 high for all odd words.
Key:
x = don't care
H = high voltage level
L = low voltage level
• = a non-occurring pattern of Byte Enables; either none are asserted,
or the pattern has Byte Enables asserted for non-contiguous bytes
BEO# BE1#
_BE_1_#-a..[_~ _BE_3_#-a..[_~
241245-38 241245-39
241245-40
Figure 7.5. Logic to Generate A1, BHE# and BLE# for 16·Bit Busses
Combinations of BEO#-BE3# which never occur Figure 7.6 shows a Intel486 OX microprocessor data
are those in which two or three asserted byte en- bus interface to 16- and 8-bit wide memories. Exter-
ables are separated by one or more negated byte nal byte swapping logic is needed on the data lines
enables. These combinations are "don't care" con- so that data is supplied to, and received from the
ditions in the decoder. A decoder can use the non- Intel486 OX microprocessor on the correct data pins
occurring BEO # - BE3 # combinations to its best ad- (see Table 7.4).
vantage.
7-5
Intel486™ DX2 MICROPROCESSOR
00-07 4
08-015 4
Inlol486 OX 32-Bil
Microprocessor 016-023 4 Memory
024-031 4
BSS #
BS16# (A2-A31, BEO#-BE3#)
Bylo
I
16-Bil
Swap
logic • )
, 16
·1
Memory
I
Bylo 8-Bit
Address
,,
Decode Swap
Logic
• 8
·1
Memory
241245-41
Table 7.6. Generating AD, A1 and BHE# from the Intel486™ OX Microprocessor Byte Enables
First Cache Fill Cycle Any Other Cycle
BE3# BE2# BE1# BED#
AD A1 BHE# AD A1 BHE#
1 1 1 0 0 0 0 0 0 1
1 1 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0
'0 0 0 0 0 0 0 0 0 0
1 1 0 1 0 0 0 1 0 0
1 0 0 1 0 0 0 1 0 0
'0 0 0 1 0 0 0 1 0 0
1 0 1 1 0 0 0 0 1 1
'0 0 1 1 0 0 0 0 1 0
'0 1 1 1 0 0 0 1 1 0
7-6
int'et Intel486TM DX2 MICROPROCESSOR
Table 7.7. Transfer Bus Cycles for Bytes, Words and Dwords
KEY:
b = byte transfer
w = 2-byte transfer
3 = 3-byte transfer
h = high-order portion
I = low-order portion
m = mid-order portion
4-Byte Operand Ib mlb I I
mhb hb
d = 4-byte transfer i i
byte with byte with
lowest highest
address address
The function of unaligned transfers with dynamic This section begins with basic non-cacheable non-
bus sizing is not obvious. When the external systems burst single cycle transfers. It moves on to multiple
asserts BS16# or BS8# forcing extra cycles, law- cycle transfers and introduces the burst mode.
order bytes or words are transferred first (opposite Cacheability is introduced in Section 7.2:3. The re-
to the example above). When the Intel486 OX micro- maining sections describe locked, pseudo-locked,
processor requests a 4-byte read and the external invalidate, bus hold and interrupt cycles.
system asserts BS16#, the lower 2 bytes are read
first followed by the upper 2 bytes. Bus cycles and data cycles are discussed in this
section. A bus cycle is at least two clocks long and
In the unaligned transfer described above, the proc- begins with ADS# active in the first clock and ready
essor requested three bytes on the first cycle. If the active in the last clock. Data is transferred to or from
external system asserted B$16# during this 3-byte the Intel486 OX microprocessor during a data cycle.
transfer, the lower word is transferred first followed A bus cycle contains one or more data cycles.
by the upper byte. In the final cycle the lower byte of
the 4-byte operand is transferred as in the 32-bit ex- Refer to Section 7.2.13 for a description of the bus
ample above. states shown in the timing diagrams.
7-7
infel . Intel486TM DX2 MICROPROCESSOR
reads and the second to writes. For example, if a 7.2.2 MULTIPLE AND BURST CYCLE BUS
wait state needs to be added to a write, the cycle TRANSFERS
would be called 2-3.
Multiple cycle bus transfers can be caused by inter-
Basic two clock read and write cycles are shown in nal requests from the Intel486 DX microprocessor or
Figure 7.7. The Intel486 DX microprocessor initiates by the external memory system. An internal request
a cycle by asserting the address status signal for a 64-bit floating point load or a 128-bit pre-fetch
(ADS#) at the rising edge of the first clock. The must take more than one cycle. Internal requests for
AOS# output indicates that a valid bus cycle defini- unaligned data may also require multiple bus cycles.
tion and address is available on the cycle definition A cache line fill requires multiple cycles to complete.
lines and address bus. The external system can cause a multiple cycle
transfer when it can only supply 8 or 16 bits per
The non-burst ready input (RDY #) is returned by the cycle.
external system in the second clock. RDY # indi-
cates that the external system has presented valid Only multiple cycle transfers caused by internal re-
data on the data pins in response to a read or the quests are considered in this section. Cacheable cy-
external system has accepted data in response to a cles and 8- and 16-bit transfers are covered in Sec-
write. tions 7.2.3 and 7.2.5.
Ti T1 T2 T1 T2 11 12 T1 T2 Ti
ClK
ADS#
\ / \ / \ / \ /
A2-A31
M/IO#
D/C# X X X X
BEO-3#
W/R#
\ / \ /
RDY#
BlAST#
X \ / ~ / \ / ~ C
DATA FROM CPU TO FROM CPU
CPU
I
PCHK#
0) OJ
READ WRITE READ WRITE
241245-42
Ti 11 T2 T2 11 T2 T2 Ti
ClK
ADS#
\ / \ /
A2-A31
M/IO#
D/C#
BEO-3#
X X
W/R#
\ /
RDY#
BLAST#
X \ / \ I
I
C
I
DATA
READ
®CPU (
WRITE
: FROM CPU
I
)-
241245-43
7-9
inial. li1te1486TM DX2 MICROPROCESSOR
Burst cycles are not limited to cache line fills. Any the external system returns KEN#, BS8# and
multiple cycle read request by the Intel486 OX mi- BS16#. BLAST# should only be sampled in the
croprocessor can be converted into a burst cycle. second and subsequent clocks of a cycle when the
The Intel486 OX microprocessor will only burst the external system returns ROY # or BROY #.
number of bytes needed to complete a transfer. For
example, eight bytes will be bursted in for a 64-bit The system may terminate a burst cycle by returning
floating point non-cacheable read. ROY # instead of BROY #. BLAST # will remain
deasserted until the last transfer. However, any
The external system converts a multiple cycle re- transfers required to complete a cache line fill will
quest into a burst cycle by returning BROY # active follow the burst order, e.g., if burst order was 4, 0, C,
rather than ROY # (non-burst ready) in the first cycle 8 and ROY # was returned at after 0, the next trans-
of a transfer. For cycles that cannot be bursted such fers will be from C and 8.
as interrupt acknowledge and halt, BROY # has the
same effect as ROY #. BROY"" is ignored if both
BROY # and ROY # are returned in the same clock. 7.2.2.3 Non-Cacheable, Non-Burst, Multiple
Memory areas and peripheral devices that cannot Cycle Transfers
perform bursting must terminate cycles with ROY"". Figure 7.9 illustrates a 2 cycle non-burst, non-cache-
able multiple cycle read. This transfer is simply a
7.2.2.2 Terminating Multiple and sequence of two single cycle transfers. The Intel486
Burst Cycle Transfers OX microprocessor indicates to the external system
that this is a multiple cycle transfer by driving
The Intel486 OX microprocessor drives BLAST# in- BLAST # inactive during the second clock of the first
active for all but the last cycle in a multiple cycle cycle. The external system returns ROY # active in-
transfer. BLAST# is driven inactive in the first cycle dicating that it will not burst the data. The external
to inform the external system that the transfer could system also indicates that the data is not cacheable
take additional cycles. BLAST# is driven active in by returning KEN # inactive one clock before it re-
the last cycle of the transfer indicating that the next turns ROY # active. When the Intel486 OX micro-
time BROY # or ROY"" is returned the transfer is processor samples ROY # active it ignores BROY #.
complete.
Each cycle in the transfer begins when AOS# is
BLAST # is not valid in the first clock of a bus cycle. driven active and the cycle is complete when the
It should be sampled only in the second and subse- external system returns ROY # active.
quent clocks when ROY # or BROY # is returned.
The Intel486 OX microprocessor indicates the last
The number of cycles in a transfer is a function of cycle of the transfer by driving BLAST# active. The
several factors including the number of bytes the mi- next ROY # returned by the external system termi-
croprocessor needs to complete an internal request nates the transfer.
(1, 2, 4, 8, or 16), the state of the bus size inputs
(BS8# and BS16#), the state of the cache enable
input (KEN #) and alignment of the data to be trans- 7.2.2.4 Non-Cacheable Burst Cycles
ferred. The external system converts a multiple cycle re-
quest into a burst cycle by returning BROY # active
When the Intel486 OX microprocessor initiates a re- rather than ROY # in the first cycle of the transfer.
quest it knows how many bytes will be transferred This is illustrated in Figure 7.10.
and if the data is aligned. The external system must
tell the microprocessor whether the data is cache- There are several features to note in the burst read.
able (if the transfer is a read) and the width of the AOS# is only driven active during the first cycle of
bus by returning the state of the KEN#, BS8# and the transfer. ROY"" must be driven inactive when
BS16# inputs one clock before ROY# or BROY# is BROY # is returned active.
returned. The Intel486 OX microprocessor deter-
mines how many cycles a transfer will take based on BLAST # behaves exactly as it does in the non-burst
its internal information and inputs from the external read. BLAST# is driven inactive in the second clock
system. of the first cycle of the transfer indicating more cy-
cles to follow. In the last cycle, BLAST# is driven
BLAST # is not valid in the first clock of a bus cycle active telling the external memory system to end the
because the Intel486 OX microprocessor cannot de- burst after returning the next BROY #.
termine the number of cycles a transfer will take until
7-10
int:eL Intel486TM DX2 MICROPROCESSOR
Ti Tl T2 Tl T2 Ti
ClK
ADS#
\ / \ /
A2-A31
M/IO#
D/C#
W/R#
X X
BEO-3#
RDY#
BRDY#
KEN#
BlAST#
X 7 ~ ~ I
I I
DATA
® CPU
I
®--
CPU
I
Ti Tl T2 T2 Ti Ti
ClK
ADS#
A2-A31
\ /
M/IO#
D/C#
W/R#
X X
BEO-3#
RDY#
BRDY#
KEN#
BlAST#
X 7 \ L
I
DATA
~ CPU CPU
241245-45
7-11
int:el.. Intel486TM DX2 MICROPROCESSOR
7.2.3 CACHEABLE CYCLES 7.2.3.1 Byte Enables during a Cache Line Fill
Any memory read can become a cache fill operation. For the first cycle in the line fill, the state of the byte
The external memory system can allow a read re- enables should be ignored. In a non-cacheable
quest to fill a cache line by returning KEN # active memory read, the byte enables indicate the bytes
one clock before ROY # or BROY # during the first actually required by the memory or code fetch.
cycle of the transfer on the external bus. Once
KEN # is asserted and the remaining three require- The Intel486 OX microprocessor expects to receive
ments described below are met, the Intel486 OX mi- valid data on its entire bus (32 bits) in the first cycle
croprocessor will fetch an entire cache line regard- of a cache line fill. Oata should be returned with the
less of the state of KEN #. KEN # must be returned assumption that all the byte enable pins are driven
active in the last cycle of the transfer for the data to active. However if BS8 # is asserted only one byte
be written into the internal cache. The Intel486 OX need be returned on data lines 00-07. Similarly if
microprocessor will only convert memory reads or BS16# is asserted two bytes should be returned on
prefetches into a cache fill. 00-015.
KEN # is ignored during write or 1/0 cycles. Memory The Intel486 OX microprocessor will generate the
writes will only be stored in the on·chip cache if addresses and byte enables for all subsequent cy-
there is a cache hit. 1/0 space is never cached in cles in the line fill. The order in which data is read
the internal cache. during a line fill depends on the address of the first
item read. Byte ordering is discussed in Section
To transform a read or a prefetch into a cache line 7.2.4.
fill the following conditions must be met:
1. The KEN # pin must be asserted one clock pri- 7.2.3.2 Non-Burst Cacheable Cycles
or to ROY # or BROY # being returned for the
first data cycle. Figure 7.11 shows a non-burst cacheable cycle. The
2. The cycle must be of the type that can be inter- cycle becomes a cache fill when the Intel486 OX
nally cached. (Locked reads, 1/0 reads, and microprocessor samples KEN # active at the end of
interrupt acknowledge cycles are never cach- the first clock. The Intel486 OX microprocessor
ed). drives BLAST # inactive in the second clock in re-
sponse to KEN #. BLAST # is driven inactive be-
3. The page table entry must have the page cause a cache fill requires 3 additional cycles to
cache disable bit (PCO) set to o. To cache a complete. BLAST # remains inactive until the last
page table entry, the page directory must have transfer in the cache line fill. KEN # must be re-
PCO=O. To cache reads or prefetches when turned active in the last cycle of the transfer for the
paging is disabled, or to cache the page direc- data to be written into the internal cache.
tory entry, control register 3 (CR3) must have
PCO=O. Note that this cycle would be a single bus cycle if
4. The cache disable (CO) bit in control register 0 KEN # was not sampled active at the end of the first
(CRO) must be clear. clock. The subsequent three reads would not have
happened since a cache fill was not requested.
External hardware can determine when the Intel486
OX microprocessor has transformed a read or pre- The BLAST # output is invalid in the first clock of a
fetch into a cache fill by examining the KEN # , cycle. BLAST # may be active during the first clock
M/IO#, O/C#, W/R#, LOCK#, and PCO pins. due to earlier inputs. Ignore BLAST # until the sec-
These pins convey to the system the outcome of ond clock.
conditions 1-3 in the above list. In addition, the In-
tel486 OX drives PCO high whenever the CO bit in Ouring the first cycle of the cache line fill the exter-
CRO is set, so that external hardware can evaluate nal system should treat the byte enables as if they
condition 4. are all active. In subsequent cycles in the burst, the
Intel486 OX microprocessor drives the address lines
Cacheable cycles can be burst or non-burst. and byte enables (see Section 7.2.4.2 for Burst and
Cache Line Fill Order).
7-12
Intel486TM DX2 MICROPROCESSOR
Ti Tl T2 Tl T2 T1 T2 T1 T2 Ti
elK
ADS#
A2-A31
''---!--If ''-----L.......If
1.4/10#
D/C#
W/R#
BEO-3#
____~X~_r----~X~~----~X~_r----~XL_r-------
RDY#
BRDY#
w
I
KEN#
W
BlAST#
____~x'--. . . . . . . /. \'--.....J....-'.l...-.-_C,---
DATA ------~------~----~~~----~----~~~----~----~~~----~----~
241245-46
7.2.3.3 Burst Cacheable Cycles The external system informs the Intel486 OX micro-
processor that it will burst the line in by driving
Figure 7.12 illustrates a burst mode cache fill. As in BROY # active at the end of the first cycle in the
Figure 7.11, the transfer becomes a cache line fill transfer.
when the external system returns KEN # active at
the end of the first clock in the cycle. Note that during a burst cycle ADS# is only driven
with the first address.
7-13
intel . Intel486TM DX2 MICROPROCESSOR
Ti T1 T2 T2 T2 T2 Ti
ClK
ADS#
\\.-....J........I!
A4-A31,
1.1/10#,
O/C#,
W/R# ____~x~~--~----~--~--~----
A2-A3,
BEO-3#
RDY#
BRDY#
I
I
KEN#
\J) I
BlAST#
_~x i /
DATA
PCHK#
241245-47
7.2.3.4 Effect of Changing KEN# during a would be a cache line fill. Similarly, it uses the value
Cache Line Fill of KEN # in the last cycle, before early ROY # to
load the line just retrieved from the memory into the
KEN# can change multiple times as long as it ar· cache. KEN # is sampled every clock, it must satisfy
rives at its final value in the clock before ROY # or setup and hold time.
BROY# is returned. This is illustrated in Figure 7.13.
Note that the timing of BLAST# follows that of KEN # can also change multiple times before a burst
KEN# by one clock. The Intel486 OX samples cycle as long as it arrives at its final value one clock
KEN # every clock and uses the value returned in before ready is returned active.
the clock before ready to determine if a bus cycle
7·14
intet Intel486™ DX2 MICROPROCESSOR
Ti T1 T2 T2 T2 T1 T2
ClK
ADS#
\ / \ /
A4-A31,
~
1.4/10#,
D/C#,
W/R#
~ ~
A2-A3,
BEO-3#
RDY#
KEN#
W W
BlAST#
X / \ / \ /
DATA
@
CPU @-
CPU
241245-48
7.2.4 BURST MODE DETAILS data into the chip when either ROY # or BRDY # are
active. Driving BRDY # and ROY # inactive adds a
wait state to the transfer. A burst cycle where two
7.2.4.1 Adding Wait States to Burst Cycles clocks are required for every burst item is shown in
Figure 7.14.
Burst cycles need not return data on every clock.
The Intel486 OX microprocessor will only strobe
7-15
int:et Intel486™ DX2 MICROPROCESSOR
Ti Tl T2 T2 T2 T2 T2 T2 T2
CLK
ADS#
\ I
A4-A31,
t.l/IO#,
D/C#,
W/R#
X
A2-A3,
BEO-3# X X X X
RDY#
BRDY#
KEN#
\JJ
BLAST#
I I I
241245-49
7.2.4.2 Burst and Cache Line Fill Order Table 7.7. Burst Order
The burst order used by the Intel486 DX microproc- First Second Third Fourth
essor is shown in Table 7.7. This burst order is fol- Addr. Addr. Addr. Addr.
lowed by any burst cycle (cache or not), cache line 0 4 8 C
fill (burst or not) or code prefetch.
4 0 C 8
This burst order is optimized for a two-way inter- 8 C 0 4
leaved memory architecture. This means that if the C 8 4 0
memory is built as 64-bit (versus 32-bit) words which
are multiplexed into the 32-bit data bus, the Intel486 An example of burst address sequencing is shown in
CPU will read all 64 bits before accessing the next Figure 7.15.
location.
7-16
If>OO~I!..O~OOO~OOW
intel~ Intel486™ DX2 MICROPROCESSOR
Ti Tl T2 T2 T2 T2 Ti
ClK
ADS#
\ /
A2-A31
X
104
X100 i X10C i X108:
RDY#
BRDY#
KEN#
W W
BlAST#
X / \ r=
DATA
241245-50
The sequences shown in Table 7.7 accommodate any time. The Intel486 OX microprocessor will auto-
systems with 64-bit busses as well as systems with matically generate another normal bus cycle after
32-bit data busses. The sequence applies to all being interrupted to complete the data transfer. This
bursts, regardless of whether the purpose of the is called an interrupted burst cycle. The external sys-
burst is to fill a cache line, do a 64-bit read, or do a tem can respond to an interrupted burst cycle with
pre-fetch. If either BS8# or BS16# is returned ac- another burst cycle.
tive, the Intel486 OX microprocessor completes the
transfer of the current 32-bit word before progress- The external system can interrupt a burst cycle by
ing to the next 32-bit word. For example, a BS16# returning ROY # instead of BROY #. ROY # can be
burst to address 4 has the following order: 4-6-0-2- returned after any number of data cycles terminated
C-E-8-A. with BROY#.
7-17
int:et Intel486TM DX2 MICROPROCESSOR
Ti T1 T2 T2 T1 T2 T2 Ti
ClK
ADS#
\L....---!---If
A2-A31 ___ ..L.-..JX~_i-_1_04_-i-..JX 100 : X~_i-_1_0C_-i-....IX~1_08-+-:_ __
RDY#
BRDY#
KEN#
w
BlAST#
'\...-......1........1 \,--_LL.....-
DATA
241245-51
Figure 7.16. Interrupted Burst Cycle
KEN # need not be returned active in the first data An example of the order in which the Intel486 OX
cycle of the second part of the transfer in Figure microprocessor requests operands during a cycle in
7.16. The cycle had been converted to a cache fill in which the external system mixes ROY # and
the first part of the transfer and the Intel486 OX mi- BROY# is shown in Figure 7.17. The Intel486 OX
croprocessor expects the cache fill to be completed. microprocessor initially requests a transfer begin-
Note that the first half and second half of the trans- ning at location 104. The transfer becomes a cache
fer in Figure 7.16 are each two cycle burst transfers. line fill when the external system returns KEN # ac-
tive. The first cycle of the cache fill transfers the
The order in which the Intel486 OX microprocessor contents of location 104 and is terminated with
requests operands during an interrupted burst trans- ROY #. The Intel486 OX microprocessor drives out a
fer is determined by Table 7.7. Mixing ROY# and new request (by asserting AOS#) to address 100. If
BROY # does not change the order in which oper- the external system terminates the second cycle
and addresses are requested by the Intel486 OX mi- with BROY #, the Intel486 OX microprocessor will
croprocessor. next request/expect address 10C. The correct order
is determined by the first cycle in the transfer, which
may not be the first cycle in the burst if the system
mixes ROY # with BROY #.
7-18
Intel486™ DX2 MICROPROCESSOR
Ti Tl T2 T1 T2 T2 T2 Ti
ClK
ADS#
\ / \ /
A2-A31
X
104
X
100 X10C i X108:
RDY#
BRDY#
KEN#
W W
BlAST#
X / \ / \ C
TO
DATA CPU
241245-52
7.2.5 8- AND 16-BIT CYCLES Driving the B816# and B88# active can force the
Intel486 DX microprocessor to run additional cycles
The Intel486 DX microprocessor supports both 16- to complete what would have been only a single
and 8-bit external busses through the 8816# and 32-bit cycle. B88# and B816# may change the
888# inputs. 8816# and 888# allow the external state of BLA8T # when they force subsequent cy-
system to specify, on a cycle by cycle basis, whether cles from the transfer.
the addressed component can supply 8, 16 or 32
bits. 8816# and 888# can be used in burst cycles Figure 7.18 shows an example in which B88#
as well as non-burst cycles. If both 8816# and forces the Intel486 DX microprocessor to run two
888 # are returned active for any bus cycle, the In- extra cycles to complete a transfer. The Intel486 DX
tel486 DX microprocessor will respond as if only microprocessor issues a request for 24 bits of infor-
8S8 # were active. mation. The external system drives B88# active in-
dicating that only eight bits of data can be supplied
The timing of 8816# and 888# is the same as that per cycle. The Intel486 DX microprocessor issues
of KEN#. B816# and B88# must be driven active two extra cycles to complete the transfer.
before the first RDY # or BRDY # is driven active.
7-19
intel . Intel486™ DX2 MICROPROCESSOR
Ti T1 T2 T1 T2 T1 T2 Ti
ClK
ADS#
L
\'------!---II \'------!---II
A2-A31
M/IO#
D/C#
W/R#
__~~X~~____~~____~____C=
BEO-3# __-+~X~~__~X~~__~X~~____c=
RDY#
BS8#
\JJ \JJ I
\JJ
BlAST#
cb ,'----I--\J..-...+--'-c_
DATA rrt\
----T----'----(Y:!:V>----'--~Y:!:V>---~----;~
rrt\ ~
241245-53
Extra cycles forced by the BS 16 # and BS8 # should BS8# and BS16# operate during burst cycles in ex-
be viewed as independent bus cycles. BS16# and actly the same manner as non-burst cycles. For ex-
BS8# should be driven active for each additional ample, a single non-cacheable read could be trans-
cycle unless the addressed device has the ability to ferred by the Intel486 DX microprocessor as four
change the number of bytes it can return between 8-bit burst data cycles. Similarly, a single 32-bit write
cycles. The Intel486 DX microprocessor will drive could be written as four 8-bit burst data cycles. An
BLAST # inactive until the last cycle before the example of a burst write is shown in Figure 7.19.
transfer is complete. Burst writes can only occur if BS8# or BS16# is
asserted.
Refer to Section 7.1.3 for the sequencing of ad-
dresses while BS8# or BS16# are active.
7-20
intel., Intel486TM DX2 MICROPROCESSOR
Ti T1 T2 T2 T2 T2 Ti
ClK
ADS#
ADDR
SPEC -J.........Jx'----...;.....---i----i-------r-----+---':
I
C
BEO-3#
RDY#
BRDY#
8S8#
\'--_ _-_--.J/
BlAST#
_---T""--IX'---+--',
DATA -----r---...J..--« :FROM CPU )-
~~:--~--~----~
241245-54
7.2.6 LOCKED CYCLES Locked cycles are implemented in hardware with the
LOCK # pin. When LOCK # is active, the processor
Locked cycles are generated in software for any in- is performing a read-modify-write operation and the
struction that performs a read-modify-write opera- external bus should not be relinquished until the cy-
tion. During a read-modify-write operation the proc- cle is complete. Multiple reads or writes can be
essor can read and modify a variable in external locked. A locked cycle is shown in Figure 7.20.
memory and be assured that the variable is not ac- LOCK # goes active with the address and bus defini-
cessed between the read and write. tion pins at the beginning of the first read cycle and
remains active until RDY # is returned for the last
Locked cycles are automatically generated during write cycle. For unaligned 32 bits read-modify-write
certain bus transfers. The xchg (exchange) instruc- operation, the LOCK # remains active for the entire
tion generates a locked cycle when one of its oper- duration of the multiple cycle. It will go inactive when
ands is memory based. Locked cycles are generat- RDY # is returned for the last write cycle.
ed when a segment or page table entry is updated
and during interrupt acknowledge cycles. Locked cy-
cles are also generated when the LOCK instruction
prefix is used with selected instructions.
7-21
Intel486™ DX2 MICROPROCESSOR
Ti Tl T2 Tl T2 Ti
CLK
ADS#
\ / \ /
A2-A31
1.1/10#
D/C#
8EO-3#
X X
W/R#
\ I
RDY#
I I
I
DATA @
CPU
I
( FROM PPU )-
LOCK#
\ f
READ WRITE
241245-55
When LOCK# is active, the Intel486 OX microproc- PLOCK# is asserted during the first write to indicate
essor will recognize address hold and backoff but that another write follows. This behavior is shown in
will not recognize bus hold. It is left to the external Figure 7.21.
system to properly arbitrate a central bus when the
Intel486 OX microprocessor generates LOCK#. The first cycle of a 64-bit floating point write is the
only case in which both PLOCK# and BLAST# are
asserted. Normally PLOCK# and BLAST# are the
7.2.7 PSEUDO-LOCKED CYCLES inverse of each other.
Pseudo-locked cycles assure that no other master
will be given control of the bus during operand trans- During all of the cycles where PLOCK# is asserted,
fers which take more than one bus cycle. Examples HOLD is not acknowledged until the cycle com-
include 64-bit floating point read and writes, 64-bit pletes. This results in a large HOLD latency, espe-
descriptor loads and cache line fills. cially when BS8# or BS16# is asserted. To reduce
the HOLD latency during these cycles, windows are
available between transfers to allow HOLD to be ac-
Pseudo-locked transfers are indicated by the
PLOCK # pin. The memory operands must be knowledged during non-cacheable, non-bursted
aligned for correct operation of a pseudo-locked cy- code prefetches. PLOCK # will be asserted since
cle. BLAST # is negated, but it is ignored and HOLD is
recognized during the prefetch.
PLOCK# need not be examined during burst reads.
A 64-bit aligned operand can be retrieved in one PLOCK # can change several times during a cycle
settling to its final value in the clock ready is re-
burst (note: this is only valid in systems that do not
interrupt bursts). turned.
The system must examine PLOCK # during 64-bit 7.2.8 INVALIDATE CYCLES
writes since the Intel486 OX microprocessor cannot
burst write more than 32 bits. However, burst can be Invalidate cycles are needed to keep the Intel486
used within each 32-bit write cycle if BS8 # or OX microprocessor's internal cache contents con-
B816# is asserted. BLAST will be deasserted in re- sistent with external memory. The Intel486 OX mi-
sponse to BS8 # or BS 16 #. A 64-bit write will be croprocessor contains a mechanism for listening to
driven out as two non-burst bus cycles. BLAST # is writes by other devices to external memory. When
asserted during both writes since a burst is not pos- the processor finds a write to a Section of external
sible.
7-22
inlet Intel486TM DX2 MICROPROCESSOR
Ti T1 T2 Tl T2 Ti
ClK
ADS#
\L..--+--" \L..--+--"
A2-A31
t.t/IO#
D/C#
BEO-3#
W/R#
PlOCK#
L
RDY#
, I
BlAST#
X ~ I
l ~ C
I
memory contained in its internal cache, the proces- float its address bus before ready is returned termi-
sor's internal copy is invalidated. nating the bus cycle.
Invalidations use two pins, address hold request When AHOlD is asserted only the address bus is
(AHOlD) and valid external address (EADS#). floated, the data bus can remain active. Data can be
There are two steps in an invalidation cycle. First, returned for a previously specified bus cycle during
the external system asserts the AHOlD input forcing address hold (see Figures 7.22, 7.23).
the Intel486 DX microprocessor to immediately relin-
quish its address bus. Next, the external system as- EADS# is normally asserted when an external mas-
serts EADS# indicating that a valid address is on ter drives an address onto the bus. AHOlD need not
the Intel486 DX microprocessor's address bus. be driven for EADS# to generate an internal invali-
EADS# and the invalidation address, Figure 7-22 date. If EADS# alone is asserted while the Intel486
shows the fastest possible invalidation cycle. The DX microprocessor is driving the address bus, it is
Intel486 DX CPU recognizes AHOlD on one ClK possible that the invalidation address will come from
edge and floats the address bus in response. To the Intel486 DX microprocessor itself.
allow the address bus to float and avoid contention,
EADS # and the invalidation address should not be Note that it is also possible to run an invalidation
driven until the following ClK edge. The microproc- cycle by asserting EADS# when HOLD or BOFF#
essor reads the address over its address lines. If the is asserted.
microprocessor finds this address in its internal
cache, the cache entry is invalidated. Note that the Running an invalidate cycle prevents the Intel486
Intel486 DX microprocessor's address bus is input! DX microprocessor cache from satisfying other inter-
output unlike the Intel386 microprocessor's bus, nal requests, so invalidations should be run only
which is output only. when necessary. The fastest possible invalidate cy-
cle is shown in Figure 7.22, while a more realistic
The Intel486 DX microprocessor immediately relin- invalidation cycle is shown in 7.23. Both of the ex-
quishes its address bus in the next clock upon as- amples take one clock of cache access from the
sertion of AHOlD. For example, the bus could be 3 rest of the Intel486 DX microprocessor.
wait states into a read cycle. If AHOlD is activated,
the Intel486 DX microprocessor· will immediately
7-23
infel~ Intel486TM DX2 MICROPROCESSOR
Ti T1 T2 Ti Ti Tl T2 Ti
ClK
ADS#
\ / ,,
\ /
AD DR
X ) ®CPu ( i C
AHOlD
/' ,
\
EADS#
\JJ,,
RDY#
,,
DATA @ CPU
~
,
CPU I
BREQ
/ \ \
241245-57
Ti Tl T2 Ti Ti Ti T1 T2
ClK
ADS#
\ / ,
\ I
ADDR
X ) ®
CPu (
AHOlD
/' \
EADS#
\JJ,
RDY#
DATA @
I CPU J
BREQ
/ \ \ /
241245-58
7-24
int:et Intel486™ DX2 MICROPROCESSOR
Ti T1 T2 T2 T2 T2 T2 T2 Ti
ClK
ADS#
U.-J I I
I
I
I I I
ADDR
____~~X i )~~---~----~----7-~(~~_____
AHOlD
_--;----11 I
\ I
I I
EADS#
\:Jf\2J
I I
RDY#
BRDY#
KEN#
UJ I
I
DATA
241245-60
NOTES:
1. Data returned must be consistent if its address equals the invalidation address in this clock
2. Data returned will not be cached if its address equals the invalidation address in this clock
If the system asserts EAOS # at the same time or processor, the Intel486 OX microprocessor can re-
after the first data in the line fill is returned (in the spond to HOLD by floating its bus and asserting
same clock that the first ROY # or BROY # is re- HLOA while RESET is asserted.
turned or any subsequent clock in the line fill) the
data will be read into the Intel486 OX microproces- Note that HOLD will be recognized during un-aligned
sors input buffers but it will not be stored in the on- writes (less than or equal to 32-bits) with BLAST #
chip cache. This is illustrated by asserted EAOS# being active for each write. For greater than 32-bit or
signal labeled 2 in Figure 7.25. The stale data will be un-aligned write, HOLO# recognition is prevented
used to satisfy the request that initiated the cache fill by PLOCK # getting asserted.
cycle.
The pins floated during bus hold are: BEO#-BE3#,
PCO, PWT, W/R#, O/C#, MIIO#, LOCK#,
7.2.9 BUS HOLD PLOCK#, AOS#, BLAST # , 00-031, A2-A31,
OPO-OP3.
The Intel486 OX microprocessor provides a bus
hold, hold acknowledge protocol using the bus hold
request (HOLD) and bus hold acknowledge (HLOA) 7.2.10 INTERRUPT ACKNOWLEDGE
pins. Asserting the HOLD input indicates that anoth-
er bus master desires control of the Intel486 OX mi- The Intel486 OX microprocessor generates interrupt
croprocessor's bus. The processor will respond by acknowledge cycles in response to maskable inter-
floating its bus and driving HLOA active when the rupt requests generated on the interrupt request in-
current bus cycle, or sequence of locked cycles is put (INTR) pin. Interrupt acknowledge cycles have a
complete. An example of a HOLO/HLOA transaction unique cycle type generated on the cycle type pins.
is shown in Figure 7.26. Unlike the Intel386 micro-
7-26
int'eL Intel486™ DX2 MICROPROCESSOR
Ti Ti Tl T2 Ti Ti T1
ClK
ADS# \~--~----~~U~____
A2-A31
M/IO#
D/C#
W/R#
8EO-3#
RDY#
HOLD _ - - - - - I ._ _ ~I
HlDA
241245-61
An example interrupt acknowledge transaction is The state of A2 distinguishes the first and second
shown in Figure 7.27. Interrupt acknowledge cycles interrupt acknowledge cycles. The byte address
are generated in locked pairs. Data returned during driven during the first interrupt acknowledge cycle is
the first cycle is ignored. The interrupt vector is re- 4 (A31-A3 low, A2 high, BE3#-BE1 # high, and
turned during the second cycle on the lower 8 bits of BEO# low). The address driven during the second
the data bus. The Intel486 DX microprocessor has interrupt acknowledge cycle is 0 (A31-A2 low,
256 possible interrupt vectors. BE3#-BE1 # high, BEO# low).
Ti Tl T2 Ti Ti Tl T2 Ti
ClK
ADS#
\ / I.
4 CLOCKS I
.: \ /
ADDR
X X
RDY#
DATA ~
----r-------<~
lOCK#
\'---i-------i ;-------;---+---11
241245-62
7-27
int:et Intel486TM DX2 MICROPROCESSOR
Each of the interrupt acknowledge cycles are termi- The external hardware must acknowledge these
nated when the external system returns ROY # or special bus cycles by returning ROY # or BROY #.
BROY #. Wait states can be added by withholding
ROY # or BROY #. The Intel486 OX microprocessor Table 7.8. Special Bus Cycle Encoding
automatically generates four idle clocks between the
Special
first and second cycles to allow for 8259A recovery BE3# BE2# BE1# BEO#
time. Bus Cycle
1 1 1 0 Shutdown
7.2.11 SPECIAL BUS CYCLES 1 1 0 1 Flush
1 0 1 1 Halt
The Intel486 OX microprocessor provides four spe- 0 1 1 1 Write Back
cial bus cycles to indicate that certain instructions
have been executed, or certain conditions have oc-
curred internally. The special bus cycles in Table 7.8 7.2.11.1 Halt Indication Cycle
are defined when the bus cycle definition pins are in
the following state: MIIO#=O, OfC#=O and The Intel486 OX microprocessor halts as a result of
WfR # = 1. During these cycles the address bus is executing a HALT instruction. Signaling its entrance
driven low while the data bus is undefined. into the halt state, a halt indication cycle is per-
formed. The halt indication cycle is identified by the
Two of the special cycles indicate halt or shutdown. bus definition signals in special bus cycle state and a
Another special cycle is generated when the In- byte address of 2. BEO# and BE2# are the only
tel486 OX microprocessor executes an INVO (invali- signals distinguishing halt indication from shutdown
date data cache) instruction and could be used to indication, which drives an address of o. During the
flush an external cache. The Write Back cycle is halt cycle undefined data is driven on 00-031. The
generated when the Intel486 OX microprocessor ex- halt indication cycle must be acknowledged by
ecutes the WBINVO (write-back invalidate data ROY # or BROY # asserted.
cache) instruction and could be used to synchronize
an external write-back cache.
Ti Tl T2 Tb Tb Tlb T2 T2 T2 T2
ClK
I I I
ADS#
I
I
I
I
LlJ I
I
A2-A31
M/IO#
D/C#
BEO-3#
RDY#
BRDY#
I I I
un
I I I
KEN#
BOFF#
W
I
I
, I
I
I
W
I
BlAST#
'LlJ I
I
\
CD I
I
U I
I
I
DATA
241245-63
7-28
intel® Intel486TM DX2 MICROPROCESSOR
Asserting BOFF# during a burst, BS8# or BS16# There are two possible solutions to this problem.
cycle will force the Intel486 DX microprocessor to The first is to have all devices recognize this condi-
ignore data returned for that cycle only. Data from tion and ignore ADS# until ready comes back. The
previous cycles will still be valid. For example, if second approach is to use a "two clock" backoff: in
BOFF # is asserted on the third BRDY # of a burst, the first clock AHOLD is asserted, and in the second
the Intel486 DX microprocessor assumes the data· clock BOFF # is asserted. This guarantees that
returned with the first and second BRDY # 's is cor- ADS# will not be floating low. This is only necessary
rect and restarts the burst beginning with the third in systems where BOFF # may be asserted in the
item. The same rule applies to transfers broken into same clock as ADS#.
multiple cycle by BS8# or BS16#.
Asserting BOFF # in the same clock as ADS # will 7.2.13 BUS STATES
cause the Intel486 DX microprocessor to float its
A bus state diagram is shown in Figure 7.30. A de-
bus in the next clock and leave ADS# floating low.
scription of the signals used in the diagram is given
Since ADS# is floating low, a peripheral may think
in Table 7.9.
that a new bus cycle has begun even though the
cycle was aborted.
REQUEST PENDING •
(RDY# ASSERTED + (BRDY# • BLAST#)ASSERTED) •
HOLD NEGATED •
AHOLD NEGATED •
BOFF# NEGATED •
REQUEST PENDING •
HOLD NEGATED •
AHOLD NEGATED . -
BOFF# NEGATED BOFF# NEGATE/
/BOFF# ASSERTED
AHOLD NEGATED •
BOFF# NEGATED •
(HOLD NEGATED 0)
• HOLD is only factored into this stote transition if Tb was entered while a
non-cacheable, non-bursted, code prefetch was in progress.
Otherwise, ignore HOLD.
241245-65
7.2.14 FLOATING POINT ERROR HANDLING The following class of floating point exceptions drive
FERR # only after encountering the next floating
The Intel486 DX microprocessor provides two op- point instruction.
tions for reporting floating point errors. The simplest 1. Exceptions other than on all transcendental in-
method is to raise interrupt 16 whenever an un- structions, integer arithmetic instructions,
masked floating point error occurs. This option may FSQRT, FSCALE, FPREM(1), FXTRACT, FBLD,
be enabled by setting the NE bit in control register 0 and FBSTP.
(CRO).
2. Any exception on all basic arithmetic, load, com-
The Intel486 DX microprocessor also provides the pare, and control instructions (Le., all other in-
option of allowing external hardware to determine structions).
how floating point errors are reported. This option is
necessary for compatibility with the error reporting For both sets of exceptions above, the Intel387
scheme used in DOS based systems. The NE bit Math Coprocessor asserts ERROR # when the error
must be cleared in CRO to enable user-defined error occurs and does not wait for the next floating point
reporting. User-defined error reporting is the default instruction to be encountered.
condition because the NE bit is cleared on reset.
IGNNE # is an input to the Intel486 DX microproces-
Two pins, floating point error (FERR#) and ignore sor.
numeric error (IGNNE#), are provided to direct the
actions of hardware if user-defined error reporting is When the NE bit in CRO is cleared, and IGNNE# is
used. The Intel486 DX microprocessor asserts the asserted, the Intel486 DX microprocessor will ignore
FERR # output to indicate that a floating point error a user floating point error and continue executing
has occurred. FERR # corresponds to the ERROR # floating point instructions. When IGNNE# is negat-
pin on the Intel387 math coprocessor. However, ed, the Intel486 DX microprocessor will freeze on
there is a difference in the behavior of the two. floating point instructions which get errors (except
for the control instructions FNCLEX, FNINIT,
In some cases FERR# is asserted when the next FNSAVE, FNSTENV, FNSTCW, FNSTSW, FNSTSW
floating point instruction is encountered and in other AX, FNENI, FNDISI and FNSETPM). IGNNE# may
cases it is asserted before the next floating point be asynchronous to the Intel486 DX clock.
instruction is encountered depending upon the exe-
cution state of the instruction causing the exception. In systems with user-defined error reporting, the
FERR # pin is connected to the interrupt controller.
The following class of floating point exceptions drive When an unmasked floating point error occurs, an
FERR # at the time the exception occurs (Le., before interrupt is raised. If IGNNE# is high at the time of
encountering the next floating point instruction). this interrupt, the Intel486 DX microprocessor will
freeze (disallowing execution of a subsequent float-
1. The stack fault, invalid operation, and denormal ing point instruction) until the interrupt handler is in-
exceptions on all transcendental instructions, in- voked. By driving the IGNNE# pin low (when clear-
teger arithmetic instructions, FSQRT, FSEALE, ing the interrupt request), the interrupt handler can
FPREM(1), FXTRACT, FBLD, and FBSTP. allow execution of a floating point instruction, within
2. Any exceptions on store instructions (including the interrupt handler, before the error condition is
integer store instructions). cleared (by FNCLEX, FNINIT, FNSAVE or
FNSTENV). If execution of a non-control floating
point instruction, within the floating point interrupt
handler, is not needed, the IGNNE# pin can be tied
HIGH.
7-31
int:eL Intel486™ DX2 MICROPROCESSOR
RESET
I/O PORT FO
Address decoder
I
Processor Bus
I)
I
Q
CLR
olI
0 -- FERR#
PR
Y.... 5V
Intel487™ sx
! Math
CoProcessor
Q
CLR
oLI
~
r0- O
PR
8259A
Programmable
L 5V
Interrupt IGNNE#
IRQ13 Controller
INTR
241245-96
7-32
intel® Intel486™ DX2 MICROPROCESSOR
Ti Tl T2 Tb Tb Tlb T2 Ti
ClK
\
ADS#
\ I \ I
ADDR
SPEC X
100 ) ( 100
C
RDY#
BRDY#
BOFF#
241245-64
A halted Intel486 OX microprocessor resumes exe- asserted is aborted and any data returned to the
cution when INTR (if interrupts are enabled) or NMI processor is ignored. The same pins are floated in
or RESET is asserted. response to BOFF # as are floated in response to
HOLD. HLOA is not generated in response to
BOFF #. BOFF # has higher priority than ROY # or
7.2.11.2 Shutdown Indication Cycle BROY #. If either ROY # or BROY # are returned in
The Intel486 OX microprocessor shuts down as a the same clock as BOFF #, BOFF # takes effect.
result of a protection fault while attempting to pro-
The device asserting BOFF # is free to run any cy-
cess a double fault. Signaling its entrance into the
shutdown state, a shutdown indication cycle is per- cles it wants while the Intel486 OX microprocessor
bus is in its high impedance state. If backoff is re-
formed. The shutdown indication cycle is identified
by the bus definition signals in special bus cycle quested after the Intel486 OX microprocessor has
started a cycle, the new master should wait for
state and a byte address of O.
memory to return ROY # or BROY # before assum-
ing control of the bus. Waiting for ready provides a
7.2.12 BUS CYCLE RESTART handshake to insure that the memory system is
ready to accept a new cycle. If the bus is idle when
In a mUlti-master system another bus master may BOFF # is asserted, the new master can start its
require the use of the bus to enable the Intel486 OX cycle two clocks after issuing BOFF # .
microprocessor to complete its current bus request.
In this situation the Intel486 OX microprocessor will The external memory can view BOFF # in the same
need to restart its bus cycle after the other bus mas- manner as BLAST #. Asserting BOFF # tells the ex-
ter has completed its bus transaction. ternal memory system that the current cycle is the
last cycle in a transfer.
A bus cycle may be restarted if the external system
asserts the backoff (BOFF#) input. The Intel486 OX The bus remains in the high impedance state until
microprocessor samples the BOFF # pin every BOFF# is negated. Upon negation, the Intel486 OX
clock. The Intel486 OX microprocessor will immedi- microprocessor restarts its bus cycle by driving out
ately (in the next clock) float its address, data and the address and status and asserting ADS #. The
status pins when BOFF # is asserted (see Figure bus cycle then continues as usual.
7.28). Any bus cycle in progress when BOFF # is
7-29
int:et Intel486™ DX2 MICROPROCESSOR
The TLB portion of the BIST verifies that the TLB is TR5 specifies which testability operation will be per-
functional and that it is possible to read and write to formed and the set and entry within the set which
the TLB. The BIST manipulates test registers TR6 will be accessed.
and TR? while testing the TLB. TR6 and TR? are
described in Section 8.3.
8-1
intet Intel486™ DX2 MICROPROCESSOR
The seven bit set select field determines which of Table 8.1 shows the encoding of the two control bits
the 128 sets will be accessed. in TR5 for the cache testability functions. Table 8.1
also shows the functionality of the entry and set se-
The functionality of the two entry select bits depend lect bits for each control operation.
on the state of the control bits. When the fill or read
buffers are being accessed, the entry select bits The cache tests attempt to use as much of the nor-
point to the 32-bit location in the buffer being ac- mal operating circuitry as possible. Therefore when
cessed. When a cache location is specified, the en- cache tests are being performed, the cache must be
try select bits point to one of the four entries in a set. disabled (the CD and NW bits in control register
Refer to Table 8.1. must be set to 1 to disable the cache. See Section
5).
Five testability functions can be performed on the
cache. The two control bits in TR5 specify the oper-
ation to be executed. The five operations are: 8_2.2 CACHE TESTABILITY WRITE
1. Write cache fill buffer A testability write to the cache is a two step process.
2. Perform a cache testability write First the cache fill buffer must be loaded with 128
bits of data and TR4 loaded with the tag and valid
3. Perform a cache testability read
bit. Next the contents of the fill buffer are written to a
4. Read the cache read buffer cache location. Sample assembly code to do a write
5. Perform a cache flush is given in Figure 8.2.
3t o
TR3
DATA Cache Data
'--_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _---'TestReglster
I
2
TR4
Cache Status
Test Register
4 3 2 t 0
TR5
Set Select
Test Register
i0 = unused
8-2
infel . Intel486™ DX2 MICROPROCESSOR
mov edi,tr4
8-3
infel . Intel486TM DX2 MICROPROCESSOR
Loading the fill buffer is accomplished by first writing transfer into TR3 and the control bits in TRS must be
to the entry select bits in TRS and setting the control loaded with 00. The register read of TR3 will initiate
bits in TRS to 00. The entry select bits identify one of the transfer of the 32-bit value from the read buffer
four 32-bit locations in the cache fill buffer to put 32 to the specified general purpose register.
bits of data. Following the write to TRS, TR3 is writ-
ten with 32 bits of data which are immediately Note that it is very important that the entire 128-bit
placed in the cache fill buffer. Writing to TR3 initiates quantity from the read buffer and also the informa-
the write to the cache fill buffer. The cache fill buffer tion from TR4 be read before any memory refer-
is loaded with 128 bits of data by writing to TRS and ences are allowed to occur. If memory operations
TR3 four times using a different entry select location are allowed to happen, the contents of the read buff-
each time. er will be corrupted. This is because the testability
operations use hardware that is used in normal
TR4 must be loaded with the 21-bit tag and valid bit memory accesses for the Intel486 DX2 microproc-
(bit 10 in TR4) before the contents of the fill buffer essor whether the cache is enabled or not.
are written to a cache location.
The contents of the cache fill buffer are written to a 8.2.4 FLUSH CACHE
cache location by writing TRS with a control field of The control bits in TRS must be written with 11 to
01 along with the set select and entry select fields. flush the cache. None of the other bits in TRS have
The set select and entry select field indicate the lo- any meaning when 11 is written to the control bits.
cation in the cache to be written. The normal cache Flushing the cache will reset the LRU bits and the
LRU update circuitry updates the internal LRU bits valid bits to 0, but will not change the cache tag or
for the selected set. data arrays.
Note that a cache testability write can only be done When the cache is flushed by writing to TRS the
when the cache is disabled for replaces (the CD bit special bus cycle indicating a cache flush to the ex-
is control register 0 is reset to 1). Also note that care ternal system is not run (see Section 7.2.11, Special
must be taken when directly writing to entries in the Bus Cycles). The cache should be flushed with the
cache. If the entry is set to overlap an area of mem- instruction INVD (Invalidate Data Cache) instruction
ory that is being used in external memory, that or the WBINVD (Write-back and Invalidate Data
cache entry could inadvertently be used instead of Cache) instruction.
the external memory. Of course, this is exactly the
type of operation that one would desire if the cache
were to be used as a high speed RAM.
8.3 Translation Lookaside Buffer
(TLB) Testing
8.2.3 CACHE TESTABILITY READ
The Intel486 DX2 microprocessor TLB testability
A cache testability read is a two step process. First hooks are similar to those in the Intel386 microproc-
the contents of the cache location are read into the essor. The testability hooks have been enhanced to
cache read buffer. Next the data is examined by provide added test features and to include new fea-
reading it out of the read buffer. Sample assembly tures in the Intel486 DX2 microprocessor. The TLB
code to do a testability read is given in Figure 8.2. testability hooks are designed to be accessible dur-
ing the BIST and for assembly language testing of
Reading the contents of a cache location into the the TLB.
cache read buffer is initiated by writing TRS with the
control bits set to 10 and the desired seven-bit set
select and two-bit entry select. In response to the 8.3.1 TRANSLATION LOOKASIDE BUFFER
write to TRS, TR4 is loaded with the 21-bit tag field ORGANIZATION
and the single valid bit from the cache entry read. The Intel486 DX2 microprocessors TLB is 4-way set
TR4 is also loaded with the three LRU bits and four associative and has space for 32 .entries. The TLB is
valid bits corresponding to the cache set that was logically split into three blocks shown in Figure 8.3.
accessed. The cache read buffer is filled with the
128-bit value which was found in the data array at The data block is physically split into four arrays,
the specified location. each with space for eight entries. An entry in the
data block is 22 bits wide containing a 20-bit physi-
The contents of the read buffer are examined by cal address and two bits for the page attributes. The
performing four reads of TR3. Before reading TR3 page attributes are the PCD (page cache disable) bit
the entry select bits in TRS must loaded to indicate and the PWT (page write-through) bit. Refer to Sec-
which of the four 32-bit words in the read buffer to tion 4.S.4 for a discussion of the PCD and PWT bits.
8-4
intel® Intel486TM DX2 MICROPROCESSOR
.--
I
Tag
17 Bits
Page
Protection
Physical
Address
Page
Attributes
+1
~i_~_itS_
20 Bits 2 Bits 8 Entries
8 TS L -_ _ _ _...... .....
L---_"'----....I~
1,-------III'--- ----I
1,-------III~______
I~------II~______
[J :rt
RU
Bits 8
241245-66
The tag block is also split into four arrays, one for TLB is the same as used by the on-chip cache. For a
each of the data arrays. A tag entry is 21 bits wide description of this algorithm refer to Section 5.5.
containing a 17-bit linear address and four protec-
tion bits. The protection bits are valid (V), user/su-
pervisor (U/S), read/write (R/W) and dirty (D). 8.3.2 TLB TEST REGISTERS TR6 AND TR7
The two TLB test registers are shown in Figure 8.4.
The third block contains eight three bit quantities
TR6 is the command test register and TR7 is the
used in the pseudo least recently used (LRU) re-
data test register. External access to these registers
placement algorithm. These bits are called the LRU
is provided through MOV reg,TREG and MOV
bits. The LRU replacement algorithm used in the
TREG,reg instructions.
31 12 11 10 9 8 7 6 5 4 o
Linear Address
.I
v
. . . . . . 1 ' ' ," " :~
1 D ID#I u lu#1 wlw) : ""~:1 p
Option I~~: Command
.Test Register
31 12 11 10 9 8 7 6 5 4 3 2 1 o
TR7
Physical Address TLB Data " c
8-5
intel . Intel486TM DX2 MICROPROCESSOR
Command Test Register: TR6 test write, TR7 contains the physical address and
the page attribute bits to be stored in the entry. After
TR6 contains the tag information and control infor- a TLB test lookup hit, TR7 contains the physical ad-
mation used in a TLB test. Loading TR6 with tag and dress, page attributes, LRU bits and entry location
control information initiates a TLB write or lookup from the access.
test.
TR7 contains a 20-bit physical address (bits 12-31),
TR6 contains three bit fields, a 20-bit linear address two bits for PCD (bit 11) and PWT (bit 10) and three
(bits 12-31), seven bits for the TLB tag protection bits for the LRU bits (bits 7-9). The LRU bits in TR7
bits (bits 5-11) and one bit (bit 0) to define the type are only used during a TLB lookup test. The func-
of operation to be performed on the TLB. tionality of TR7 bit 4 differs for TLB writes and look-
ups. The encoding of bit 4 is defined in Tables 8.4
The 20-bit linear address forms the tag information and 8.5. Finally TR7 contains two bits (bits 2-3) to
used in the TLB access. The lower three bits of the specify a TLB replacement pointer or the location of
linear address select which of the eight sets are ac- a TLB hit.
cessed. The upper 17 bits of the linear address form
the tag stored in the tag array. Table 8.4. Encoding of Bit 4 of TR7 on Writes
TR7 Replacement Pointer
The seven TLB tag protection bits are described be-
low. Bit 4 Used on TLB Write
V: The valid bit for this TLB entry 0 Pseudo-LRU Replacement Pointer
D,D#: The dirty bit for/from the TLB entry 1 Data Test Register Bits 3:2
U,U#: The user/supervisor bit for/from the TLB
entry Table 8.5. Encoding of Bit 4 of TR7 on Lookups
W,W#: The read/write bit for/from the TLB entry TR7 Meaning after TLB
Bit4 Lookup Operation
Two bits are used to represent the D, U/S and R/W
bits in the TLB tag to permit the option of a forced 0 TLB Lookup Resulted in a Miss
miss or hit during a TLB lookup operation. The 1 TLB Lookup Resulted in a Hit
forced miss or hit will occur regardless of the state
of the actual bit in the TLB. The meaning of these A replacement pointer is used during a TLB write.
pairs of bits is given in Table 8.2. The pointer indicates which of the four entries in an
accessed set is to be written. The replacement
The operation bit in TR6 determines if the TLB test pointer can be specified to be the internal LRU bits
operation will be a write or a lookup. The function of or bits 2-3 in TR7. The source of the replacement
the operation bit is given in Table 8.3. pointer is specified by TR7 bit 4. The encoding of bit
4 during a write is given by Table 8.4.
Table 8.3. TR6 Operation Bit Encoding
TR6 TLB Operation Note that both testability writes and lookups affect
the state of the internal LRU bits regardless of the
BitO to Be Performed
replacement pointer used. All TLB write operations
0 TLB Write (testability or normal operation) cause the written
1 TLB Lookup entry to become the most recently used. For exam-
ple, during a testability write with the replacement
pointer specified by TR7 bits 2-3, the indicated en-
Data Test Register: TR7 try is written and that entry becomes the most re-
cently used as specified by the internal LRU bits.
TR7 contains the information stored or read from the
data block during a TLB test operation. Before a TLB
8-6
inteL Intel486TM DX2 MICROPROCESSOR
There are two TLB testing operations: write entries Bits 9-7 will contain the LRU bits associated with
into the TLB, and perform TLB lookups. One major the accessed set. The state of the LRU bits is previ-
enhancement over TLB testing in the Intel386 micro- ous to their being updated for the current lookup.
processor is that paging need not be disabled while
executing testability writes or lookups. If bit 4 in TR7 indicated that the lookup test resulted
in a miss the remaining bits in TR7 are undefined.
Note that any time one TLB set contains the same
linear address in more than one of its entries, look- Again it should be noted that a TLB testability lookup
ing up that linear address will not result in a hit. operation affects the state of the LRU bits. The LRU
Therefore a single linear address should not be writ- bits will be updated if a hit occurred. The entry which
ten to one TLB set more than once. was hit will become the most recently used.
8-7
int:et Intel486™ DX2 MICROPROCESSOR
8.5.1 BOUNDARY SCAN ARCHITECTURE Each test data register is serially connected to TOI
and TOO, with TOI connected to the most significant
The boundary scan test logic contains the following bit and TOO connected to the least significant bit of
elements: the test data register. Data is shifted one stage (bit
- Test access port (TAP), consisting of input pins position within the register) on each riSing edge of
TMS, TCK, and TOI; and output pin TOO. the test clock (TCK).
- TAP controller, which interprets the inputs on the In addition the Intel486 OX2 CPU contains a runbist
test mode select (TMS) line and performs the register to support the RUNBIST boundary scan in-
corresponding operation. The operations per- struction.
formed by the TAP include controlling the in-
struction and data registers within the compo-
nent. 8.5.2.1 Bypass Register
- Instruction register (IR), which accepts instruc- The Bypass Register is a one-bit shift register that
tion codes shifted into the test logic on the test provides the minimal length path between TOI and
data input (TOI) pin. The instruction codes are TOO. This path can be selected when no test opera-
used to select the specific test operation to be tion is being performed by the component to allow
performed or the test data register to be ac- rapid movement of test data to and from other com-
cessed. ponents on the board. While the bypass register is
- Test data registers: The Intel486 OX2 microproc- selected, data is transferred from TOI to TOO with-
essor contains three test data registers: Bypass out inversion.
register (BPR), Device Identification register
(DID), and Boundary Scan register (BSR). 8.5.2.2 Boundary Scan Register
The instruction and test data registers are separate The Boundary Scan Register is a single shift register
shift-register paths connected in parallel and have a path containing the boundary scan cells that are
common serial data input and a common serial data connected to all input and output pins of the Intel486
output connected to the TAP signals, TOI and TOO, OX2 CPU. Figure 8.1 shows the logical structure of
respectively. the boundary scan register. While output cells deter-
mine the value of the signal driven on the corre-
8.5.2 DATA REGISTERS sponding pin, input cells only capture data; they do
not affect the normal operation of the device. Data is
The Intel486 OX2 CPU contains the two required transferred without inversion from TOI to TOO
test data registers; bypass register and boundary through the boundary scan register during scanning.
scan register. In addition, they also have a device The boundary scan register can be operated by the
identification register. EXTEST and SAMPLE instructions. The boundary
scan register order is described in Section 8.5.5 .
.--------------------------------------------------. I
I
BOUNDARY SCAN REGISTER I
I
I
I
I
I
I
I SYSTEM
BIDIRECTIONAL
I PIN
I
I
I
I
SYSTEM I
LOGICI---.,-i SYSTEM I
I
INPUT I LOGIC I
I SYSTEM
I
3-STATE
TCK
I OUTPUT
I
I I
I I
I I
I I
I I
._-------
I I
TDI TOO
241245-67
8.5.2.3 Device Identification Register tion register is four (4) bits wide. The most significant
bit is connected to TDI and the least significant bit is
The Device Identification Register contains the man- connected to TOO. There are no parity bits associat-
ufacturer's identification code, part number code, ed with the Instruction register. Upon entering the
and version code in the format shown in Figure 8.2. Capture-IR TAP controller state, the Instruction reg-
Table 8.1 lists the codes corresponding to the In- ister is loaded with the default instruction "0001 ",
tel486 DX2 CPU. SAMPLE/PRELOAD. Instructions are shifted into
the instruction register on the rising edge of TCK
while the TAP controller is in the Shift-IR state.
8.5.2.4 Runbist Register
The Runbist Register is a one bit register used to 8.5.3.1 Intel486 DX2 CPU Boundary Scan
report the results of the Intel486 DX2 CPU BIST Instruction Set
when it is initiated by the RUNBIST instruction. This
register is loaded with a "1" prior to invoking the The Intel486 DX2 CPU supports all three mandatory
BIST and is loaded with "0" upon successful com- boundary scan instructions (BYPASS, SAMPLE/
pletion. PRELOAD, and EXTEST) along with two optional in-
structions (IDCODE and RUNBIST). Table 8.2 lists
the Intel486 DX2 CPU boundary scan instruction
8.5.3 INSTRUCTION REGISTER codes. The instructions listed as PRIVATE cause
TOO to become enabled in the Shift-DR state and
The Instruction Register (IR) allows instructions to
be serially shifted into the device. The instruction cause "0" to be shifted out of TOO on the rising
selects the particular test to be performed, the test edge of TCK. Execution of the PRIVATE instructions
data register to be accessed, or both. The instruc- will not cause hazardous operation of the Intel486
DX2 CPU.
/31302926/27262524232221201918171615141312/11109676543 21/0/
MANUfACTURER
VERSION PART NUMBER 1
IDENTITY
/
241245-66
Table 8.1
Component Code Version Code Part Number Code Manufacturer Identity
Intel486 DX2 CPU (Ax) OOh 0432h 09h
Intel486 DX2 CPU (Bx) OOh 0433h 09h
8-9
Intel486TM DX2 MICROPROCESSOR
8-10
int:et Intel486™ DX2 MICROPROCESSOR
controller must remain in the Run-Test! The value of the test mode state (TMS) input signal
Idle state until BIST is completed. It re- at a rising edge of TCK controls the sequence of the
quires 1.2 million clock (ClK) cycles to state changes. The state diagram for the TAP con-
complete BIST and report the result to troller is shown in Figure 8.3. Test designers must
the runbist register. After completing consider the operation of the state machine in order
the 1.2 million clock (ClK) cycles, the to design the correct sequence of values to drive on
value in the runbist register should be TMS.
shifted out on TOO during the Shift-OR
state. A value of "0" being shifted out
on TOO indicates BIST successfully 8.5.4.1 Test-Logic-Reset State
completed. A value of "1" indicates a
In this state, the test logic is disabled so that normal
failure occurred. After executing the
operation of the device can continue unhindered.
RUNBIST instruction, the Intel486 OX2
This is achieved by initializing the instruction register
CPU must be reset prior to normal oper-
such that the IOCOOE instruction is loaded. No mat-
ation.
ter what the original state of the controller, the con-
troller enters Test-logic-Reset state when the TMS
8.5.4 TEST ACCESS PORT (TAP) input is held high (1) for at least five rising edges of
CONTROLLER TCK. The controller remains in this state while TMS
is high. The TAP controller is also forced to enter
The TAP controller is a synchronous, finite state ma- this state at power-up.
chine. It controls the sequence of operations of the
test logic. The TAP controller changes state only in
response to the following events: 8.5.4.2 Run-Test/Idle State
1. a rising edge of TCK A controller state between scan operations. Once in
2. power-up. this state, the controller remains in this state as long
as TMS is held low. In devices supporting the nates the scanning process. If TMS is held low and a
RUNBIST instruction, the BIST is performed during rising edge is applied to TCK, the controller enters
this state and the result is reported in the runbist the Pause-DR state.
register. For instruction not causing functions to exe-
cute during this state, no activity occurs in the test The test data register selected by the current in-
logic. The instruction register and all test data regis- struction retains its previous value during this state.
ters retain their previous state. When TMS is high The instruction does not change in this state.
and a rising edge is applied to TCK, the controller
moves to the Select-DR state.
8.5.4.7 Pause-Dr State
8.5.4.3 Select-OR-Scan State The pause state allows the test controller to tempo-
rarily halt the shifting of data through the test data
This is a temporary controller state. The test data register in the serial path between TDI and TOO. An
register selected by the current instruction retains its example of using this state could be to allow a tester
previous state. If TMS is held low and a rising edge to reload its pin memory from disk during application
is applied to TCK when in this state, the controller of a long test sequence.
moves into the Capture-DR state, and a scan se-
quence for the selected test data register is initiated. The test data register selected by the current in-
If TMS is held high and a rising edge is applied to struction retains its previous value during this state.
TCK, the controller moves to the Select-IR-Scan The instruction does not change in this state.
state.
The controller remains in this state as long as TMS
The instruction does not change in this state. is low. When TMS goes high and a rising edge is
applied to TCK, the controller moves to the Exit2-DR
state.
8.5.4.4 Capture-DR State
In this state, the boundary scan register captures 8.5.4.8 Exit2-0R State
input pin data if the current instruction is EXT EST or
SAMPLE/PRELOAD. The other test data registers, This is a temporary state. While in this state, if TMS
which do not have parallel input, are not changed. is held high, a rising edge applied to TCK causes the
controller to enter the Update-DR state, which termi-
The instruction does not change in this state. nates the scanning process. If TMS is held low and a
rising edge is applied to TCK, the controller enters
When the TAP controller is in this state and a rising the Shift-DR state.
edge is applied to TCK, the controller enters the
Exit1-DR state if TMS is high or the Shift-DR state if The test data register selected by the current in-
TMS is low. struction retains its previous value during this state.
The instruction does not change in this state.
8.5.4.5 Shift-DR State
8.5.4.9 Update-DR State
In this controller state, the test data register con-
nected between TDI and TOO as a result of the cur- The boundary scan register is provided with a
rent instruction, shifts data one stage toward its seri- latched parallel output to prevent changes at the
al output on each rising edge of TCK. parallel output while data is shifted in response to
the EXT EST and SAMPLE/PRELOAD instructions.
The instruction does not change in this state. When the TAP controller is in this state and the
boundary scan register is selected, data is latched
When the TAP controller is in this state and a rising onto the parallel output of this register from the shift-
edge is applied to TCK, the controller enters the register path on the falling edge of TCK. The data
Exit1-DR state if TMS is high or remains in the Shift- held at the latched parallel output does not change
DR state if TMS is low. other than in this state.
8-12
intet Intel486™ DX2 MICROPROCESSOR
8.5.4.10 Select-IR-Scan State controller to enter the Update-IR state, which termi-
nates the scanning process. If TMS is held low and a
This is a temporary controller state. The test data rising edge is applied to TCK, the controller enters
register selected by the current instruction retains its the Pause-IR state.
previous state. If TMS is held low and a rising edge
is applied to TCK when in this state, the controller The test data register selected by the current in-
moves into the Capture-IR state, and a scan se- struction retains its previous value during this state.
quence for the instruction register is initiated. If TMS The instruction does not change in this state.
is held high and a rising edge is applied to TCK, the
controller moves to the Test-Logic-Reset state.
8.5.4.14 Pause-IR State
The instruction does not change in this state. The pause state allows the test controller to tempo-
rarily halt the shifting of data through the instruction
8.5.4.11 Capture-IR State register.
In this controller state the shift register contained in The test data register selected by the current in-
the instruction register loads the fixed value "0001" struction retains its previous value during this state.
on the riSing edge of TCK. The instruction does not change in this state.
The test data register selected by the current in- The controller remains in this state as long as TMS
struction retains it previous value during this state. is low. When TMS goes high and a rising edge is
The instruction does not change in this state. applied to TCK, the controller moves to the Exit2-IR
state.
When the controller is in this state and a rising edge
is applied to TCK, the controller enters the Exit1-IR
state if TMS is held high, or the Shift-IR state if TMS 8.5.4.15 Exit2-IR State
is held low. This is a temporary state. While in this state, if TMS
is held high, a rising edge applied to TCK causes the
8.5.4.12 Shift-IR State controller to enter the Update-IR state, which termi-
nates the scanning process. If TMS is held low and a
In this state the shift register contained in the in- rising edge is applied to TCK, the controller enters
struction register is connected between TDI and the Shift-IR state.
TDO and shifts data one stage towards its serial out-
put on each rising edge of TCK. The test data register selected by the current in-
struction retains its previous value during this state.
The test data register selected by the current in- The instruction does not change in this state.
struction retains its previous value during this state.
The instruction does not change in this state.
8.5.4.16 Update-IR State
When the controller is in this state and a rising edge
The instruction shifted into the instruction register is
is applied to TCK, the controller enters the Exit1-IR
latched onto the parallel output from the shift-regis-
state if TMS is held high, or remains in the Shift-IR
ter path on the falling edge of TCK. Once the new
state if TMS is held low. instruction has been latched, it becomes the current
instruction.
8.5.4.13 Exit1-IR State
Test data registers selected by the current instruc-
This is a temporary state. While in this state, if TMS tion retain the previous value.
is held high, a rising edge applied to TCK causes the
8-13
int:et Intel486™ DX2 MICROPROCESSOR
8.5.5 BOUNDARY SCAN REGISTER CELL "RESERVED" corresponds to no connect "NC" sig-
nals on the Intel486 DX2 CPU.
The boundary scan register contains a cell for each
pin, as well as cells for control of 1/0 and 3-state All the 'CTL cells are control cells that are used to
pins. select the direction of bidirectional pins or 3-state
output pins. If "1" is loaded into the control cell
The following is the bit order of the Intel486 DX2 (*CTL), the associated pin(s} are 3-stated or select-
CPU boundary scan register: (from left to right and ed as input. The following lists the control cells and
top to bottom). their corresponding pins.
1. WRCTL controls the D31-0 and DP3-0 pins.
TOI - WRCTL ABUSCTL BUSCTL MISCCTL
ADS# BLAST# PLOCK# LOCK# PCHK# 2. ABUSCTL controls the A31-A2 pins.
BRDY# BOFF# BS16# BS8# RDY# KEN# 3. BUSCTL controls the ADS#, BLAST#,
HOLD AHOLD CLK HLDA WR# BREQ BEO# PLOCK#, LOCK#, WR#, BEO#, BE1#, BE2#,
BE1 # BE2# BE3# MIO# DC# PWT PCD BE3#, MIO#, DC#, PWT, and PCD pins.
EADS# A20M# RESET FLUSH# INTR NMI 4. MISCCTL controls the PCHK#, HLDA, BREQ,
UP# FERR# IGNNE# D31 D30 D29 D28 D27 and FERR # pins.
D26 D25 D24 DP3 D23 D22 D21 020 019 D18
D17 D16 DP2 D15 D14 D13 D12 D11 D10 D9
D8 DP1 D7 D6 05 D4 D3 D2 D1 DO DPO A31 8.5.6 TAP CONTROLLER INITIALIZATION
A30 A29 A28 A27 A26 A25 A24 A23 A22 A21
A20 A19 A18 A17 A16 A15 A14 A13 A12 A11 The TAP controller is automatically initialized when a
A10 A9 A8 A7 A6 RESERVED A5 A4 A3 device is powered up. In addition, the TAP controller
A2-TDO can be initialized by applying a high signal level on
the TMS input for five TCK periods.
8-14
int:et Intel486™ DX2 MICROPROCESSOR
entity Intel486TM_DX2 is
generic(PHYSICAL_PIN_MAP : string .- 'PGA_17xI7');
8-16
infel~ Intel486™ DX2 MICROPROCESSOR
--(*******************************************************************}
--( The first cell is closest to TDO )
--{++*****************************************************************}
241245-99
8-18
int'et Intel486™ DX2 MICROPROCESSOR
9.1 Breakpoint Instruction Since the exception 1 occurs as a trap (that is, it
occurs after the instruction has already executed),
A single-byte-opcode breakpoint instruction is avail- the CS:EIP pushed onto the debugger's stack points
able for use by software de buggers. The breakpoint to the next unexecuted instruction of the program
opcode is OCCH, and generates an exception 3 trap being debugged. An exception 1 handler, merely by
when executed. In typical use, a debugger program ending with an IRET instruction, can therefore effi-
can "plant" the breakpoint instruction at all desired ciently support single-stepping through a user pro-
code execution breakpoints. The single-byte break- gram.
point opcode is an alias for the two-byte general
software interrupt instruction, INT n, where n=3.
The only difference between INT 3 (OCCh) and INT n 9.3 Debug Registers
is that INT 3 is never IOPL-sensitive but INT n is
IOPL-sensitive in Protected Mode and Virtual 8086 The Debug Registers are an advanced debugging
Mode. feature of the Intel486 microprocessor family. They
allow data access breakpoints as well as code exe-
cution breakpoints. Since the breakpoints are indi-
9.2 Single-Step Trap cated by on-chip registers, an instruction execution
break-point can be placed in ROM code or in code
If the single-step flag (TF, bit 8) in the EFLAG regis- shared by several tasks, neither of which can be
ter is found to be set at the end of an instruction, a supported by the INT3 breakpoint opcode.
9-1
int:et Intel486™ DX2 MICROPROCESSOR
The Intel486 microprocessor contains six Debug equals the physical address. If paging is enabled,
Registers, providing the ability to specify up to four the linear address is translated to a physical 32-bit
distinct breakpoints addresses, breakpoint control address by the on-chip paging unit. Regardless of
options, and read breakpoint status. Initially after re- whether paging is enabled or not, however, the
set, breakpoints are in the disabled state. Therefore, breakpoint registers hold linear addresses.
no breakpoints will occur unless the debug registers
are programmed. Breakpoints set up in the Debug
Registers are autovectored to exception number 1. 9.3.2 DEBUG CONTROL REGISTER (DR7)
A Debug Control Register, DR? shown in Figure 9.1,
9.3.1 LINEAR ADDRESS BREAKPOINT allows several debug control functions such as en-
REGISTERS (DRO-DR3) abling the breakpoints and setting up other control
options for the breakpoints. The fields within the De-
Up to four breakpoint addresses can be specified by bug Control Register, DR?, are as follows:
writing into Debug Registers DRO-DR3, shown in
Figure 9.1. The breakpoint addresses specified are LENi (breakpoint length specification bits)
32-bit linear addresses. Intel486 microprocessor
hardware continuously compares the linear break- A 2-bit LEN field exists for each of the four break-
point addresses in DRO-DR3 with the linear ad- points. LEN specifies the length of the associated
dresses generated by executing software (a linear breakpoint field. The choices for data breakpoints
address is the result of computing the effective ad- are: 1 byte, 2 bytes, and 4 bytes. Instruction execu-
dress and adding the 32-bit segment base address). tion breakpoints must have a length of 1 (LENi =
Note that if paging is not enabled the linear address 00). Encoding of the LENi field is as follows:
31 16 15 o
BREAKPOINT 0 LINEAR ADDRESS ORO
BREAKPOINT 1 LINEAR ADDRESS DR1
BREAKPOINT 2 LINEAR ADDRESS DR2
BREAKPOINT 3 LINEAR ADDRESS DR3
Intel reserved. Do not define. DR4
Intel reserved. Do not define. DR5
DR6
DR?
31 16 15 o
NOTE:
!indicates Intel reserved: Do not define; SEE SECTION 2.3.10
9-2
int'et Intel486TM DX2 MICROPROCESSOR
01
1 byte
2 bytes
All 32-bits used to
specify a single-byte
breakpoint field.
I"I Ibk.tfl'21 1:::=: 0
9-3
int"eL Intel486TM DX2 MICROPROCESSOR
If the instruction beginning at the breakpoint address Gi and Li (breakpoint enable, global and local)
is about to be executed, the instruction execution
breakpoint condition has occurred, and if the break- If either Gi or Li is set then the associated breakpoint
point is enabled, an exception 1 fault will occur be- (as defined by the linear address in DRi, the length
fore the instruction is executed. in LENi and the usage criteria in RWi) is enabled. If
either Gi or Li is set, and the Intel486 microproces-
Note that an instruction execution breakpoint ad- sor detects the ith breakpoint condition, then the ex-
dress must be equal to the beginning byte address ception 1 handler is invoked.
of an instruction (including prefixes) in order for the
instruction execution breakpoint to occur. When the Intel486 microprocessor performs a task
switch to a new Task State Segment (TSS), all Li
GD (Global Debug Register access detect) bits are cleared. Thus, the Li bits support fast task
switching out of tasks that use some task-local
The Debug Registers can only be accessed in Real breakpoint registers. The Li bits are cleared by the
Mode or at privilege level 0 in Protected Mode. The processor during a task switch, to avoid spurious ex-
GD bit, when set, provides extra protection against ceptions in the new task. Note that the breakpoints
any Debug Register access even in Real Mode or at must be re-enabled under software control.
privilege level 0 in Protected Mode. This additional
protection feature is provided to guarantee that a All Intel486 microprocessor Gi bits are unaffected
software debugger can have full control over the De- during a task switch. The Gi bits support breakpoints
that are active in all tasks executing in the system.
9-4
int:et Intel486™ DX2 MICROPROCESSOR
9.3.3 DEBUG STATUS REGISTER (DR6) IMPORTANT NOTE: A flag Bi is set whenever the
hardware detects a match condition on enabled
A Debug Status Register, DR6 shown in Figure 9.1, breakpoint i. Whenever a match is detected on at
allows the exception 1 handler to easily determine least one enabled breakpoint i, the hardware imme-
why it was invoked. Note the exception 1 handler diately sets all Bi bits corresponding to breakpoint
can be invoked as a result of one of several events: conditions matching at that instant, whether enabled
1) ORO Breakpoint fault/trap. or not. Therefore, the exception 1 handler may see
that multiple Bi bits are set, but only set Bi bits corre-
2) DR1 Breakpoint fault/trap. sponding to enabled breakpoints (Li or Gi set) are
3) DR2 Breakpoint fault/trap. true indications of why the exception 1 handler was
4) DR3 Breakpoint fault/trap. invoked.
5) Single-step (TF) trap. BD (debug fault due to attempted register access
6) Task switch trap. when GO bit set)
7) Fault due to attempted debug register access
when GD=1. This bit is set if the exception 1 handler was invoked
due to an instruction attempting to read or write to
The Debug Status Register contains single-bit flags the debug registers when GO bit was set. If such an
for each of the possible events invoking exception 1. event occurs, then the GO bit is automatically
Note below that some of these events are faults (ex- cleared when the exception 1 handler is invoked,
ception taken before the instruction is executed), allowing handler access to the debug registers.
while other events are traps (exception taken after
the debug events occurred). BS (debug trap due to single-step)
The flags in DR6 are set by the hardware but never This bit is set if the exception 1 handler was invoked
cleared by hardware. Exception 1 handler software due to the TF bit in the flag register being set (for
should clear DR6 before returning to the user pro- single-stepping).
gram to avoid future confusion in identifying the
source of exception 1. BT (debug trap due to task switch)
The fields within the Debug Status Register, DR6, This bit is set if the exception 1 handler was invoked
are as follows: due to a task switch occurring to a task having a
Intel486 microprocessor TSS with the T bit set. Note
Bi (debug fault/trap due to breakpoint 0-3) the task switch into the new task occurs normally,
but before the first instruction of the task is execut-
Four breakpoint indicator flags, BO-B3, correspond ed, the exception 1 handler is invoked. With respect
one-to-one with the breakpoint registers in DRO- to the task switch operation, the operation is consid-
DR3. A flag Bi is set when the condition described ered to be a trap.
by DRi, LENi, and RWi occurs.
9.3.4 USE OF RESUME FLAG (RF) IN FLAG
If Gi or Li is set, and if the ith breakpoint is detected, REGISTER
the processor will invoke the exception 1 handler.
The exception is handled as a fault if an instruction The Resume Flag (RF) in the flag word can sup-
execution breakpoint occurred, or as a trap if a data press an instruction execution breakpoint when the
breakpoint occurred. exception 1 handler returns to a user program at a
user address which is also an instruction execution
breakpoint.
9-5
int'eL Intel486™ DX2 MICROPROCESSOR
Table 10.1. Intel486™ DX2 Microprocessor Integer Core Clock Count Summary
INSTRUCTION FORMAT Cache Hit Notes
INTEGER OPERATIONS
MOV ~ Move:
z instruction
0 MOVZX
1 MOVSX
PUSH ~ Push
or 101010 reg 1 1
POP ~ Pop
or 101011 reg 1 1
POPA ~ PopAIl
1 01100001 1 9
XCHG ~ Exchange
10-2
intet Intel486™ DX2 MICROPROCESSOR
Table 10.1.lnteI486™ DX2 Microprocessor Integer Core Clock Count Summary (Continued)
INSTRUCTION FORMAT Cache Hit Notes
INTEGER OPERATIONS (Continued)
Instruction TIT
ADD ~ Add 000
ADC ~ Add with Carry 010
AND ~ Logical AND 100
OR ~ Logical OR 001
SUB ~ Subtract 101
SSB = Subtract with Borrow 011
XOR ~ Logical Exclusive OR 110
Instruction TIT
INC = Increment 000
DEC = Decrement 001
or 101TTT reg I 1
memory
I lllllllw I mod TTT rim I 3 U/L
Instruction TIT
NOT ~ Logical Complement 010
NEG ~ Negate 011
memory I 1111011 w I
mod TTT rim I 3 U/L
CMP ~ Compare
re91 with re92 0011100w 111 regl reg21 1
10·3
intel" Intel486™ DX2 MICROPROCESSOR
Table 10.1.lnteI486™ DX2 Microprocessor Integer Core Clock Count Summary (Continued)
INSTRUCTION FORMAT Cache Hit Notes
INTEGER OPERATIONS (Continued)
MUL ~ Multiply (unsigned)
ace. with register I 1111011 w 111 100 reg 1
Multiplier-Byte 13/18 MN/MX,3
Word 13/26 MN/MX,3
Dword 13/42 MN/MX,3
reg1 with imm. to re92 1 01101 Os 1 111 regl reg21 immediate data
Multiplier-Byte 13/18 MN/MX,3
Word 13/26 MN/MX,3
Dword 13/42 MN/MX,3
memo with imm. to reg. I 01101 Os 1 1mod reg rIm 1 immediate data
Multiplier-Byte 13/18 MN/MX,3
Word 13/26 MN/MX,3
Dword 13/42 MN/MX,3
DIV ~ Divide (unsigned)
acc. by register I 1111011 w 111 110 reg 1
Divisor-Byte 16
Word 24
Dword 40
10-4
intaL Intel486TM DX2 MICROPROCESSOR
Table 10.1. Intel486™ DX2 Microprocessor Integer Core Clock Count Summary (Continued)
INSTRUCTION FORMAT CacheHil Notes
INTEGER OPERATIONS (Continued)
Instruction TTT
ROL ~ Rotate Left 000
ROR ~ Rotate Right 001
RCL ~ Rotate through Carry Left 010
RCR ~ Rotate through Carry Right 011
SHL/SAL ~ Shift Logical! Artthmetic Left 100
SHR ~ Shift Logical Right 101
SAR ~ Shift Arithmetic Right 111
Nol Through Carry (ROL, ROR, SAL, SAR, SHL, and SHR)
reg by 1 1 1101000w 11 TTT reg 3
mem by immediate count 1 1100000w mod TTT r/m·1 immediate a-bit data 4
reg by immediate count 1100000w 11 TTT reg I immediate a-bit data 8/30 MN/MX,4
mam by immediate count 1100000w mod TTT rim Iimmediate B-bit data 9/31 MN/MX,5
Instruction TTT
SHLD ~ Shift Left Double 100
SHRD ~ Shift Right Double 101
register with immediate 00001111 10TTT100 111 reg2 regl Iimm a·bit data 2
10-5
infel . Intel486TM DX2 MICROPROCESSOR
Table 10.1.lnteI486lM DX2 Microprocessor Integer Core Clock Count Summary (Continued)
INSTRUCTION FORMAT cache Hit Notea
CONTROL TRANSFER (within ""IImant)
NOTE: Times are jump takenlnot taken
Jccc = Jump on ccc
S·blt displacement I 0111111n I 8·bitdisp. I 3/1 TINT, 23
memory
I 00001111 I 1001111n I mod 000 rIm I 3/4
Mnemonic
CondlUon mn
eccc
0 Overflow 0000
NO NoOVerilow 0001
B/NAE Below/Not Above or Equal 0010
NB/AE Not BelowlAbove or Equal 0011
EIZ EquallZero 0100
NEINZ Nol Equal/Nol Zero 0101
BEINA Below or EquallNot Above 0110
NBE/A Nol Below or EquallAbove 0111
S Sign 1000
NS NolSign 1001
PIPE ParitylParity Even 1010
NP/PO Not ParitylParity Odd 1011
LlNGE Less ThanlNol Grealer or Equal 1100
NL/GE Nol Less ThanlGreater or Equal 1101
LEING Less Than or EquallGreater Than 1110
NLE/G Not Less Than or Equal/Grealer Than 1111
10-6
intet Intel486TM DX2 MICROPROCESSOR
Table 10.1. Intel486™ DX2 Microprocessor Integer Core Clock Count Summary (Continued)
INSTRUCTION FORMAT Cache Hit Notes
CONTROL TRANSFER (within aegment) (Continued)
MULTIPLE-sEGMENT INSTRUCTIONS
MOV- Move
reg. to segment reg. I 10001110 111 sreg3 reg I 3/9 RVlP, 9
PUSH - Push
segment reg. 1000sreg21101 3
(ES, CS, SS, or OS)
POP - Pop
segment reg. 1000sreg2111 3/9 RV/P,9
(ES, SS, or OS)
LFS - Load Pointer to FS I 00001111 10110100 1 mod reg rIm 1 6/12 RVlP, 9
LGS - Load PoInter to GS I 00001111 10110101 1 mod reg rIm 1 6112 RVlP, 9
LSS - Load Pointer to SS I 00001111 10110010 1 mod reg rIm 1 6/12 RVlP, 9
CALL - Call
Direct intersegment I 10011010 1 unsigned full offset, selector 18 R,7,22
to same level 20 P,9
thru Gate to same level 35 P,9
to inner level, no parameters 69 P,9
to inner level, x parameter (d) words n+4X P,11,9
toTSS 37+TS P,10,9
thru Task Gete 38+TS P,10,9
Indirect intersegment 1 11111111 1 mod 011 rIm 1 17 R,7
to same level 20 P,9
thru Gate to same level 35 P,9
to inner level, no parameters 89 P,9
to inner level, x parameter (d) words 77+4X+n P,11,9
toTSS 37+TS P,10,9
thru Task Gate 38+TS P,10,9
RET - Retum from CALL
Intersegment I 11001011 1 13 R,7
to same level 17 P,9
to outer level 35 P,9
intersegment adding
Imm.to SP
I 11001010 1 16-bitdisp. 1
14 R,7
to same level 18 P,9
to outer level 36 P,9
10·7
intel~ Intel486™ DX2 MICROPROCESSOR
Table 10.1. Intel486TM DX2 Microprocessor Integer Core Clock Count Summary (Continued)
INSTRUCTION FORMAT CacheHl1 Notes
MULTIPLE-8EGMENT INSTRUCTIONS (Continued)
JMP ~ Unconditional Jump
Direct intersegment I 11101010 Iunsigned full offset, selector 17 A,7,22
to same level 19 P,9
thru Call Gate to same level 32 P,9
thruTSS 42+TS P, 10,9
thru Task Gate 43+TS P,10,9
Indirect intersegment I 11111111 Imod 101 r/ml 13 A,7,9
to same level 18 P,9
thru Call Gate to same level 31 P,9
thruTSS 41+TS P,10,9
thru Task Gate 42+TS P,10,9
BIT MANIPULATION
BT ~ Test bit
register, immediate I 00001111 I 10111010 111 100 reg I imm. 8-bit data 3
memory, reg
I 00001111 I 10100011 I mod reg rim I 8
Instruction TTT
register. immediate I 00001111 I 10111010 111 TTT reg I imm. 8-bit data 6
memory. immediate I 00001111 I 10111010 I mod TTT rIm I imm. a-bit data 8 U/L
STRING INSTRUCTIONS
CMPS ~ Compare Byte Word I 1010011 w I 8 16
10·8
int:et Intel486TM DX2 MICROPROCESSOR
Table 10.1. Intel486™ DX2 Microprocessor Integer Core Clock Count Summary (Continued)
INSTRUCTION FORMAT Cache Hit Notes
REPEATED STRING INSTRUCTIONS
Repeated by Count in CX or ECX (C ~ Count in CX or ECX)
DECIMAL ARITHMETIC
AAA ~ ASCII Adjust lor Add I 00110111 I 3
10-9
intel· Intel486TM DX2 MICROPROCESSOR
Table 10.1. Intel486TM DX2 Microprocessor Integer Core Clock Count Summary (Continued)
INSTRUCTION FORMAT ClIChe Hit Nole8
DECIMAL ARITHMETIC (Continued)
AAD ~ ASCII AdJUst for
Divide
I 11010101 I 00001010 I 14
HLT ~ Halt
I 11110100 I 4
PREFIX BYTES
OS: 00111110 1
ES: 00100110 1
FS: 01100100 1
GS: 01100101 1
88: 00110110 ,
10-10
int:et Intel486TM DX2 MICROPROCESSOR
Table 10.1. Intel486™ DX2 Microprocessor Integer Core Clock Count Summary (Continued)
INSTRUCTION FORMAT Cache Hit Notes
PROTECTION CONTROL
ARPL ~ Adjust Requested Privilege Level
From register I 01100011 111 reg1 reg21 9
From memory
I 01100011 1 mod reg rIm 1 9
From memory
I 00001111 1 00000010 1 mod reg rIm 1 11
10-11
intel.. Intel486TM DX2 MICROPROCESSOR
Table 10.1. Inte1486TM DX2 Microprocessor Integer Core Clock Count Summary (Continued)
INSTRUCTION FORIIAT C8ch_HIt Notes
INTERRUPT INSTRUCTIONS
10-12
Intel486™ DX2 MICROPROCESSOR
AbbrevlaUons Definition
16/32 16/32 bit modes
U/L unlocked/locked
MN/MX minimum/maximum
LlNL loop/no loop
RVIP real and virtual mode/protected mode
R real mode
P protected mode
T/NT taken/not taken
H/NH hitlno hit
NOTES:
1. Assuming that the operand address and stack address fall in different cache sets.
2. Always locked, no cache hit case.
3. Clocks = 10 + max(log2(lml),n)
m = multiplier value (min clocks for m = 0)
n = 3/5 for ±m
4. Clocks = /quotient(countloperand length)J*7+9
= 8 if count s; operand length (8/16/32)
5. Clocks = {quotient(count/operand length)}*7+9
= 9 if count s; operand length (8/16/32)
6. Equal/not equal cases (penalty is the same regardless of lock).
7. Assuming that addresses for memory read (for indirection), stack push/pop, and branch fall in different cache sets.
8. Penalty for cache miss: add 6 clocks for every 16 bytes copied to new stack frame.
9. Add 11 clocks for each unaccessed deSCriptor load.
10. Refer to task switch clock counts table for value of TS.
11. Add 4 extra clocks to the cache miss penalty for each 16 bytes.
For notes 12-13: (b = 0-3, non-zero byte number);
(i = 0-1, non-zero nibble number);
(n = 0-3, non bit number in nibble);
12. Clocks = 8+4 (b+1) + 3(i+1) + 3(n+1)
= 6 if second operand = 0
13. Clocks = 9+4(b+1) + 3(i+1) + 3(n+1)
= 7 if second operand = 0
For notes 14-15: (n = bit position 0-31)
14. Clocks = 7 + 3(32 - n)
6 if second operand = 0
15. Clocks = 8 + 3(32-n)
7 if second operand = 0
16. Assuming that the two string addresses fall in different cache sets.
17. Cache miss penalty: add 6 clocks for every 16 bytes compared. Entire penalty on first compare.
18. Cache miss penalty: add 2 clocks for every 16 bytes of data. Entire penalty on first load.
19. Cache miss penalty: add 4 clocks for every 16 bytes moved.
(1 clock for the first operation and 3 for the second)
20. Cache miss penalty: add 4 clocks for every 16 bytes scanned.
(2 clocks each for first and second operations)
21. Refer to interrupt clock counts table for value of INT
22. Clock count includes one clock for using both displacement and immediate.
23. Refer to assumption 6 in the case of a cache miss.
10-13
intel . Intel486TM DX2 MICROPROCESSOR
Table 10.2.lnteI486TM DX2 Microprocessor 1/0 Instructions Core Clock Count Summary
Protected Protected
Real Virtual Ie
INSTRUCTION FORMAT Mode Mode Notes
Mode Mode
(CPL':IOPL) (CPL>IOPL)
1/0 INSTRUCTIONS
IN = Input from:
Fixed Port 1111001 Ow 1 port number I 17 12 32 30
REP INS = Input Siring 111110011 1011011 Ow 1 19+11c 13+11c 33+11c 32+11c 2
REP OUTS = Output SIrIng 111110011 1 0110111w I 2O+8c 14+8c 34+8c 33+8c 3
NOTES:
1. Two clock cache miss penalty in all cases.
2. c = count in CX or ECX.
3. Cache miss penalty in all modes: Add 2 clocks for every 16 bytes. Entire penalty on second operation.
10·14
infel~ Intel486TM DX2 MICROPROCESSOR
Table 10.3. Intel486TM DX2 Microprocessor Floating Point Core Clock Count Summary
Cache Hit
INSTRUCTION FORMAT Avg(Lower Notes
Range •••
Upper Range)
DATA TRANSFER
FLO ~ Real Load to ST(O)
32·Mmemory 111011 0011 mod 000 rIm I s-i·b/disp. I 3
FBSTP ~ Store BCD from 111011 111 mod 110 rIm I s-i·b/disp. I 175(172-176)
ST(O) and Pop
COMPARISON INSTRUCTIONS
FCOM ~ Compare ST(O) with Real
32·b~ memory 111011 ooolmodolo rIm I s-i·b/disp. I 4
10·15
intel .. Intel486TM DX2 MICROPROCESSOR
Table 10.3. Intel486™ DX2 Microprocessor Floating Point Core Clock Count Summary (Continued)
Cache Hit
INSTRUCTION FORMAT Avg(Lower Notes
Range ...
Upper Range)
COMPARISON INSTRUCTIONS (Continued)
CONSTANTS
ARITHMETIC
FADD = Add Real with ST(O)
ST(O) ..... ST(O) + 32-bit memory 111011 000 I
mod 000 rim I s-i-bl disp. I 10(8-20)
ST(O) ..... ST(O) + 64-bit memory 111011 100lmodOOO rim I s-i-bl disp. I 10(8-20)
ST(O) ..... ST(O) - 64-bit memory 111011 100lmod 100 rim I s-i-b/disp. I 10(8-20)
10-16
Intel486™ DX2 MICROPROCESSOR
Table 10.3.lnteI486™ DX2 Microprocessor Floating Point Core Clock Count Summary (Continued)
Cache Hit
INSTRUCTION FORMAT Avg(Lower Notes
Range .•.
Upper Range)
ARITHMETIC (Conlinued)
FSUBR ~ Subtract real reversed (Subtract ST(O) from real)
ST(O) +- 32-bit memory - ST(O) 111011 oooimod 101 rim I s-i-b/disp. I 10(8-20)
ST(O) +- 64-bil memory - ST(O) 111011 100lmod 101 r/ml s-i-b/disp. I 10(8-20)
ST(O) +- ST(O) x 64-bil memory 111011 100lmod 001 rim I s-i-b/ disp. I 14
ST(O) +- ST(O) + 32-bil memory 111011 ololmod 000 r/ml s-i-b/disp. I 22.5(19-32)
ST(O) +- ST(O) - 32-bit memory 111011 ololmod 100 rim I s-i-b/disp. I 22.5(19-32)
ST(O) +- 32-bit memory - ST(O) 111011 ololmod 101 r/ml s-i-b/disp. I 22.5(19-32)
ST(O) +- ST(O) x 32-bit memory 111011 0101 mod 001 r/ml s-i-b/disp. I 23.5(22-24)
ST(O) +- ST(0)/32-bit memory 111011 0101 mod 110 r/ml s-i-b/disp. I 85.5(84-86) 3
10-17
inteL Intel486TM DX2 MICROPROCESSOR
Table 10.3. Intel486TM DX2 Microprocessor Floating Point Core Clock Count Summary (Continued)
Cache Hit
INSTRUCTION FORMAT Avg(Lower Notes
Range .••
Upper Range)
ARITHMETIC (Continued)
FIDIVR ~ Integer Divide Reversed
ST(O) <-16-bit memoryIST(O) 111011 110 mod 111 rIm s-i-bl disp. I 87(85-89) 3
ST(O) <- 32-bit memoryIST(O) 111011 010 mod 111 rIm s-i-bl disp. I 85.5(84-86) 3
FRNDINT ~ Round ST(O) to integer 111011 001 1111 1100 29.1 (21-30)
TRANSCENDENTAL
FCOS ~ Cosine of ST(O) 11011 001 1111 11111 241(193-279) 6,7
FPTAN ~ Partial tangent of ST(O) 11011 001 1111 00101 244(200-273) 6,7
FSINCOS ~ Sine and cosine of ST(O) 11011 001 1111 1011 291 (243-329) 6,7
PROCESSOR CONTROL
10-18
int'et Intel486™ DX2 MICROPROCESSOR
Table 10.3. Intel486™ DX2 Microprocessor Floating Point Core Clock Count Summary (Continued)
Cache Hit
INSTRUCTION FORMAT Avg(Lower Notes
Range ...
Upper Range)
PROCESSOR CONTROL (Continued)
NOTES:
1. If operand is 0 clock counts = 27_
2. If operand is 0 clock counts = 28.
3. If CW_PC indicates 24 bit precision then subtract 38 clocks.
If CW_PC indicates 53 bit precision then subtract 11 clocks.
4. If there is a numeric error pending from a previous instruction add 17 clocks_
5. If there is a numeric error pending from a previous instruction add 18 clocks.
6. The INT pin is polled several times while this instruction is executing to assure short interrupt latency.
7. If ABS(operand) is greater than '11"14 then add n clocks_ Where n = (operand/('11"14)).
10-19
int'et Intel486™ DX2 MICROPROCESSOR
NOTE:
Tables 10.1-10.3 show encoding of individual instructions.
10-20
int'et Intel486TM DX2MICROPROCESSOR
10.2.2 32-BIT EXTENSIONS OF THE Unless specified otherwise, instructions with 8-bit
INSTRUCTION SET and 16·bit operands do not affect the contents of
the high·order bits of the extended registers.
The Intel486 DX2 supports all Intel486 extensions to
the 8086/80186/80286 instruction set.
10.2.3 ENCODING OF INTEGER
With the Intel486 microprocessor, the 8086/801861 INSTRUCTION FIELDS
80286 instruction set was extended in two orthogo·
Within the instruction are several fields indicating
nal directions: 32·bit forms of all 16·bit instructions
register selection, addressing mode and so on. The
are added to support the 32-bit data types, and
exact encodings of these fields are defined immedi-
32·bit addressing modes are made available for all
ately ahead.
instructions referencing memory. This orthogonal in·
struction set extension is accomplished having a De-
fault (D) bit in the code segment descriptor, and by 10.2.3.1 Encoding of Operand Length (w) Field
having 2 prefixes to the instruction set.
For any given instruction performing a data opera-
Whether the instruction defaults to operations of 16 tion, the instruction is executing as a 32-bit operation
bits or 32 bits depends on the setting of the 0 bit in or a 16·bit operation. Within the constraints of the
the code segment descriptor, which gives the de· operation size, the w field encodes the operand size
fault length (either 32 bits or 16 bits) for both oper· as either one byte or the full operation size, as
ands and effective addresses when executing that shown in the table below.
code segment. In the Real Address Mode or Virtual
8086 Mode, no code segment descriptors are used, Operand Size Operand Size
but a 0 value of 0 is assumed internally by the In-
wField During 16-Blt During 32-Blt
tel486 DX2 microprocessor when operating in those
modes (for 16·bit default sizes compatible -with the Data Operations Data Operations
8086/80186/80286). 0 8 Bits 8 Bits
1 16 Bits 32 Bits
Two prefixes, the Operand Size Prefix and the Effec-
tive Address Size Prefix, allow overriding individually
the Default selection of operand size and effective 10.2.3.2 Encoding of the General
address size. These prefixes may precede any op- Register (reg) Field
code bytes and affect only the instruction they pre-
cede. If necessary, one or both of the prefixes may The general register is specified by the reg field,
be placed before the opcode bytes. The presence of which may appear in the primary opcode bytes, or as
the Operand Size Prefix and the Effective Address the reg field of the "mod rim" byte, or as the rim
Prefix will toggle the operand size or the effective field of the "mod rim" byte.
address size, respectively, to the value "opposite"
from the Default setting. For example, if the default Encoding of reg Field When w Field
operand size is for 32-bit data operations, then pres- Is not Present In Instruction
ence of the Operand Size Prefix toggles the instruc-
tion to 16-bit data operation. As another example, if Register Selected Register Selected
the default effective address size is 16 bits, pres- reg Field During 16-Blt During 32-Blt
ence of the Effective Address Size prefix toggles the Data Operations Data Operations
instruction to use 32·bit effective address computa·
tions. 000 AX EAX
001 CX ECX
These 32-bit extensions are available in all Intel486 010 OX EDX
microprocessor modes, including the Real Address 011 BX EBX
Mode or the Virtual 8086 Mode. In these modes the 100 SP ESP
default is always 16 bits, so prefixes are needed to 101 BP EBP
specify 32·bit operands or addresses. For instruc· 110 SI ESI
tions with more than one prefix, the order of prefixes 111 01 EDI
is unimportant.
10·21
intel· Intel486TM DX2 MICROPROCESSOR
10-22
Intel486TM DX2 MICROPROCESSOR
10-23
Intel486™ DX2 MICROPROCESSOR
Encoding of 32-bit Address Mode with "mod rim" byte (no "s-I-b" byte present)
10-24
int:et Intel486TM DX2 MICROPROCESSOR
Encoding of 32-bit Address Mode ("mod rIm" byte and "s-i-b" byte present)
NOTE:
Mod field in "mod rim" byte; ss, index, base fields in
"s-i-b" byte.
10-25
infel . Intel486TM DX2 MICROPROCESSOR
10-26
int:et Intel486™ DX2 MICROPROCESSOR
Instruction Optional
First Byte Second Byte Fields
Instructions for the FPU assume one of the five ST(i) = Register stack element i
forms shown in the following table. In all cases, in- 000 = Stack top
structions are at least two bytes long and begin with 001 = Second stack element
the bit pattern 11011 S. •
•
OP = Instruction opcode, possible split into two •
fields OPA and OPS 111 = Eighth stack element
d = Destination
O-Destination is ST(O)
1-Destination is ST(i)
10-27
Intel486™ DX2 MICROPROCESSOR
11-1
Intel486™ DX2 MICROPROCESSOR
The Upgrade Processor will implement a superset of Component Orientation: The most common mis-
the Intel486 DX2 Microprocessor signals. The new take made by end users and resellers when install-
signals for the Upgrade Socket, in addition to the ing Math CoProcessor upgrades is incorrect orienta-
Intel486 DX2 CPU signals, support a writeback pro- tion of the chip. This can result in irreversible dam-
tocol for the on-chip cache in Intel's next generation age to the chip and/or the PC. To solve this prob-
processors. Implementation of the cache writeback lem, Intel has designed the Upgrade Socket and the
capability for the Upgrade Socket is optional. Imple- Upgrade Processor with a keying mechanism to en-
mentation of the Level 1 writeback protocol enables sure proper orientation of the upgrade component
maximum performance gain for the Upgrade Proces- by the PC user. The keying mechanism for the Up-
sor over the base Intel486 DX2 system. The signals grade Processor is three missing pins on one corner
required to implement this writeback are detailed in of the device. To be effective as a keying mecha-
a separate document and are marked reserved in nism the corresponding locations in the socket must
this databook. be plugged. The Upgrade Socket for Intel486 DX2
CPU-based systems is designed to be backward
As a new system architecture feature, the provision compatible with the 169-pin Upgrade Socket of In-
of the Upgrade Socket as a means for PC users to tel486 SX and Intel486 DX systems. In order to
take advantage of the ever more rapid advances in maintain compatibility, the Upgrade Socket for In-
software and hardware technology will help to main- tel486 DX2 Microprocessor systems should include
tain the competitiveness of X86 PC-compatible sys- the Key Pin at location E5. In addition, the location
tems over other architectures into the future. of the key corner should be clearly marked on the
motherboard or CPU card, for example by silk
The majority of upgrade installations which take ad- screening.
vantage of the Upgrade Socket will be performed by
end users and resellers. Therefore, it is important Insertion Force: The third major concern voiced by
that the deSign be "end user easy", and that end users refers to how much pressure should be
exerted on the upgrade chip and PC board for prop-
12-1
intel . Intel486TM DX2 MICROPROCESSOR
er installation without damage. This becomes even tion specifications must be implemented. Section
more of a concern with the larger components which 12.3 shows the Upgrade Processor heat dissipation
require up to 200 pounds of pressure for insertion requirements for a hypothetical system design at 25
into a standard screw machine socket. This level of MHz and 33 MHz. Because the system must operate
pressure can easily result in cracked traces and correctly with any Upgrade Processor without a
stress to solder joints. To minimize the risk of sys- BIOS change, BIOS and software restrictions and
tem damage, it is recommended that a Zero Inser- recommendations are provided in Section 12.4. Sec-
tion Force (ZIF) socket be used for the Upgrade tion 12.5 discusses Upgrade Socket test require-
Socket. Designing with a ZIF socket eliminates the ments. Finally, Sections 12.6 and 12.7 specify the
need to design in additional structural support to pinout and electrical characteristics of the Upgrade
prevent flexing of the PC board during installation, Processor, respectively.
and results in improved end user and reseller prod-
uct satisfaction due to easy "drop-in" installation.
12.1 Upgrade Circuit Design
12.0.1 UPGRADE SOCKET OVERVIEW The Upgrade Socket for Intel486 DX2 Microproces-
sor-based systems is designed to reside on the
The Upgrade Socket for Intel486 DX2 CPU-based
same processor bus as the Intel486 DX2 CPU. This
systems is deSigned such that when an Upgrade Upgrade Socket specifies a UP# output (Upgrade
Processor is, installed in the Upgrade Socket, the Present) pin which should be connected directly to
original CPU relinquishes control of the system to the UP# input pin of the Intel486 DX2 Microproces-
the Upgrade Processor by backing off the bus. The
sor. When the Upgrade Processor occupies the Up-
circuit design requirements for the Upgrade Socket grade Socket, the UP# signal (active low) forces the
are discussed in Section 12.1. In addition to the Up-
Intel486 DX2 Microprocessor to 3-state all outputs
grade Socket circuits, there are layout considera- and reduce power consumption. When the Upgrade
tions for the Upgrade Socket and Upgrade Proces- Processor is not in the Upgrade Socket, a pullup re-
sor spatial requirements. These issues are dis-
sistor, internal to the Intel486 DX2 Microprocessor,
cussed in Section 12.2. Because future high-per- drives UP# inactive and allows the Intel486 DX2 Mi-
formance Upgrade Processors must function in the croprocessor to control the processor bus.
Upgrade Socket, the Upgrade Socket heat dissipa-
CTRl
ADDR
DATA
r>ClK I>ClK
-
ClK
241245-83
12-2
int:eL Intel486™ DX2 MICROPROCESSOR
12.2 Socket Layout moved for orientation purposes. The Upgrade Proc-
essor will be provided with a heat sink attached (see
This section discusses four aspects for the Upgrade Section 12.3), to dissipate heat.
Socket: compatibility, size, upgradability, and ven-
dors. The maximum and minimum dimensions of the Up-
grade Processor package with the heat sink are
shown in Table 12-1.
12.2.1 BACKWARD COMPATIBILITY
Table 12-1. Upgrade Processor, 237-Pin, PGA
The Upgrade Socket for Intel486 OX2 Microproces-
Package Dimensions with Heat Sink Attached
sor-based systems is designed to be compatible
with the Upgrade Processor for Intel486 OX2 CPU- Dimension (Inches) Minimum Maximum
based systems as well as the Upgrade Processor for
Intel486 SX CPU- and Intel486 OX CPU-based sys- A. Heat Sink Width 1.772 1.790
tems. B. PGA Package 1.950 1.975
Width
The Upgrade Socket for Intel486 OX2 microproces-
sor-based systems has a fourth row of contacts C. Heat Sink Edge 0.037 0.138
around the outside of the 169 contacts defined for Gap
the Intel486 SX CPU- and Intel486 OX CPU-based O. Heat Sink Height 0.312 0.360
Upgrade Processor sockets. The three inner rows,
with inner key pin, are 100% compatible with the E. Adhesive 0.008 0.012
169-pin PGA Upgrade Processor, for Intel486-based Thickness
systems. For backward compatibility, the inner row 0.140 0.180
F. Package Height
key pin location (E5) must be included in the Up- from Stand-Ofts
grade Socket for Intel486 OX2 CPU-based systems.
G. Total Height from 0.460 0.552
Stand-Ofts to Top
12.2.2 PHYSICAL DIMENSIONS of Heat Sink
The Upgrade Socket for Intel486 OX2 microproces-
sor-based systems is equivalent to a standard
240-lead PGA package with three corner pins re-
I· A =:j ,1=
UPGRADE PROCESSOR f f
OMNI-DIRECTIONAL HEAT SINK D G
/ADHESIVE
"""----
LL
UPGRADE PROCESSOR, 237 PIN, PGA PACKAGE 11
. I
i
241245-84
Figure 12-2. Upgrade Processor, 237-Pin, PGA Package with Heat Sink Attached
12-3
Intel486TM DX2 MICROPROCESSOR
12.2.3 "END USER EASY" stallation in the Upgrade Socket simple and fool-
proof for the end user and reseller by implementing
PC buyers value easy and safe upgrade installation. the suggestions listed in Table 12-2.
PC manufacturers can make upgrade component in-
12-4
int:eL Intel486™ DX2 MICROPROCESSOR
Zero Insertion Force Upgrade Sockets and The maximum temperature specification for the Up-
Vendors: grade Processor is 80DC (with heat sink attached).
Therefore, the temperature of the heat sink surface
1. AMP Inc. (TS) cannot exceed BODC under the worst case spec-
P.O. Box 3608 ified operating conditions for the system. The vari-
Harrisburg, PA 17105-3608 ables which affect the heat sink temperature include
Tel: (800) 522-6752 ambient temperature inside the system box (TA)'
Part Number: TBD Vee, and Icc. An equation for the approximate Up-
Contact: Rick Simonic, New Product Manager grade Processor temperature (TS) is:
(717) 561-6143
2. Aries Electronics TS = TA + Power' (JSA where Power = Vcc' Icc
P.O. Box 130
Frenchtown, NJ 08825 In the above equation, the variables under worst
Tel: (908) 996-6841 case conditions are specified as follows:
Part Number: TBD TS: Specified as 80DC for the Upgrade Processor.
Contact: Frank Folmsbee, Marketing Manager TA: Specified by the PC manufacturer for the
(908) 996-6841 worst case system operating conditions.
3. JAE Vee: Specified for the Upgrade Processor as 5V.
599 N. Mathilda Ave., Suite 8
Sunnyvale, CA 94086 Icc: Specified for the Upgrade Processor and relat-
Tel: (408) 733-0493 ed to clock frequency.
Part Number: TBD (}SA: (}SA = (}JA - (}JS·
Contact: Bob Gerleman, Western Sales (}JA and (}JS are specified in Table 12-4.
Manager (408) 733-0493
4. Thomas and Betts ICC is dependent upon the system's Vee, bus load-
200 Executive Center Drive ing, software code sequences, and silicon process
P.O. Box 24901 variations. For the Upgrade Socket specifications,
Greenville, SC 29616-2401 the typical Icc value will be derived by testing a sam-
Tel: (803) 676-2900 ple of components under the following worst case
Part Number: TBD conditions: Vee = 5.3V, full D.C. current loads on all
Contact: Scott Roland, Product Marketing output pins, and running a file with the predicted
Manager (803) 676-2910 worst case software code sequences at the speci-
fied frequency. Icc typical is not a guaranteed speci-
5. Yamaichi Electronics fication.
1420 Koll Circle, Suite B
San Jose, CA 95112 The Icc maximum values in Table 12-3 is the best
Tel: (408) 452-0797 known design estimate and should be used as a
Part Number: TBD guaranteed maximum specification.
Contact: Jim Bennett, Sales Manager
(408) 452-0797
12-5
intel.. Intel486TM DX2 MICROPROCESSOR
12-6
int:et Intel486™ DX2 MICROPROCESSOR
12-7
int:et Intel486TM DX2 MICROPROCESSOR
12.6.1 PINOUT
u T s R Q P N M L K J H G F E o C B A •
o o
Ne
o o
vee
o o
Ne
o o
vss
o o
vee
o o
vss
o oNe o o
vee
o
Ne vss vss Ne vee vee Ne vss vss
2 o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2
Ne
A27
A28
A31 D2
vss
vss vee vss vss D11 D20
DO vss vss DPI D9 D19
3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3
A26 A25 vss Dl D6 D5 vee vee 013 D18 D22
vss A29 vee vee D3 D8 D21 vss
4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4
A23 vee A17 DPO 07 D16 D12 D15 Dl0 017 elK VSS Ne
vee A30 04 014 OP2 vee
5 o 0
NC
0 0
A19
o 0 0 0 5
vee vss 023
VSS VSS VSS
6 o 0 0 0 00006
Ne AU A18 A21 vee vss OP3 Ne
7 o 0 0 0 o 0 0 0 7
Ne VSS vee A24 027 025 024 RES 1
8 o 000 o 0 0 0 8
A12 A15 A22 026 vee VSS
VSS VSS
9 o 0 0 0 o 0 0 0 9
VSS vee A20 D28 029
vee D31 vce
10 o 000 o 0 0 0 10
VSS vee A16 D30 vee VSS
vee vec
11 o 000 o 0 0 0 11
VSS vee A13 Ne Ne
vee Ne vee
12 o 0 0 0 o 0 0 0 12
VSS A9 NC VSS
VSS vee VCC VSS
13 000 0 o 0 0 0 13
VSS AS Ne Ne
Ne Al1 Ne Ne
14 o 000 o 0 0 0 14
RES7 AID A7 Ne Ne FERR# RES2
A8
15 o 0 0 0 o 0 0 0 15
VSS A2 Ne Ne
VSS vee UP# VSS
16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16
vee
A6 u~~~~-_~~~~~_~~-=
17 o o o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17
VSS A4 BLAST# PLOCK# vee M/IO# vee vee vee BE 1# vee vee ROY# vee BS8# RESET Ne INTR VSS
18 o o 0 0 0 0 0 o 0 o
PCD
o o 0 0 0 0 0 0 0 18
Ne ADS# Ne PCHK# vss W/R# vss VSS VSS VSS VSS 8E3# VSS fA)FF# 8516# EADS# AHOlD NC
19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19
Ne Ne vss vee vss RES6 RESS vss vee vee vee vss RES4 RES3 vss vee vss Ne NC
u T s R Q P N M L K J H G F E o C B A
241245-85
Figure 12-3. Upgrade Socket Pinout for Intel486 DX2 Microprocessor System (Top Side View)
12-8
int:el.. Intel486TM DX2 MICROPROCESSOR
A B c D E F G H J K L M N p Q R S T u
o 0
vee
0 0
HC
0 000
vss VCC
0 0
vss
0 0
NC
0 0
vee
0 0 0
HC
vss vss NC VCC VCC HC vss vss HC
2 o o o o o o o o o o o o o o o o o o 2
020
019
011
09
vss OPl
vss vss vee vss vss vss 02
DO
A31
A28
A27
HC
3 0 0 0 0 0 0 000 0 0 0 0 0 0 0 0 003
vss 022
021 018 013 VCC
08
VCC
03
05
vee 06
VCC
01
A29
vss A25 A26 vss
4 0 0 0 0 0 0 000 000 0 0 0 0 0 .0 0 4
HC 012 016 014 07 OPO A17
VCC vss ClK 017 010 015 OP2 0< A30 vee A23 VCC
5 o 0 0 0 o 0 0 0 5
023 VCC A19 HC
vss vss vss vss
6 o 0 0 0 o 0 0 0 6
OP3 VCC A21
NC vss A18 A14 NC
7 o 0 0 0 o 0 007
RES 1 024 025 027 A24 vcc VSS NC
8 0 0 0 0 o 0 008
VSS vss VCC 026 A22
A15 A12 VSS
9 o .0 0 0 o 0 0 0 9
029 028 A20 vec vss vce
vee 031
10 o o o o o 000 10
vee vss vee 030 A16 VCC vss VCC
11 o o o o o 0 0 0 11
NC HC A13 vcc vss vee
VCC HC
12 o 0 0 0 o 0 0 0 12
vss vss VCC
HC A9 VCC vss vss
13 o o o o o 000 13
HC NC A5 All VSS HC
NC NC
14 o o o o o 000 14
RES2 FERR# HC NC A7 A8 Al0 RES7
15 o 000 o 0 0 0 15
HC NC A2 vss vss
vss UP# VCC
16 o o o o o o o o o o o o o o o o 000 16
vee IGNNE# NWI FLU5H# A20t.t# HOLD KEN# Ne BROY# BE2# B[O# PWT o/c# lOCK# HlOA BREQ A3 A6
VCC
17 o 0 0 .0 0 0 000 0 0 o 000 0 0 o o 17
VSS INTR NC RESET BS8# vee ROY# VCC VCC BE1# vee vee vcc M/IO# VCC PLOCK#BLAST# A4 vss
18 o 0 0 0 0 0 000 o
PCO
o 000 0 0 0 o 0 18
HC AHOLD EADS# BS16# BOFF# VSS BE3# VSS VSS VSS VSS VSS W/R# VSS PCHK# HC ADS# Ne
19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19
Ne Ne vss vee vss RES3 RES4 vss vee vee vee vss RESS RES6 vss vee vss Ne Ne
A B c D E F G H J K L N p Q R S T u
241245-86
Figure 12-4. Upgrade Socket Pinout for Intel486 DX2 Microprocessor System (Bottom Side View)
12-9
intel . Intel486TM DX2 MICROPROCESSOR
NOTE:
The Upgrade Socket for Intel486 DX2 Microprocessor-based systems provides orientation guides for Upgrade Processors
via one "KEY" pin and three c~rner plugs.
The signal pin descriptions for the Upgrade- Proces- 8even pins in the Upgrade 80cket are defined as
sor are identical to the pin descriptions for the In- reserved. The function of these pins is documented
tel486 OX2 Microprocessor except for the Upgrade separately. These signals will be used to implement
Present pin (UP#) and KEY pin. The pin descrip- a Write Back level 1 (on-chip) cache protocol. These
tions for these two signals are shown in Table 12-7. signals must not be connected unless they are used
to implement a level 1 Write Back solution using the
information available separately.
12-10
infel . Intel486TM DX2 MICROPROCESSOR
NOTES:
1. Functional operating range: Vee = 5V; Ts = O"C to +80"C.
2. This parameter is measured at:
....;. Address, Data, BEn 4.0 mA
- Definition, Control 5.0 mA
3. This parameter is measured at:
- Address, Data, BEn -1.0 mA
- Definition, Control -0.9 mA
4. This parameter is for inputs without pullups or pulldowns and 0 ,;;; VIN ,;;; Vee.
5. This parameter is for inputs with pulldowns and VIH = 2.4V.
6. This parameter is for inputs with pullups and VIL = 0.45V.
7. Not 100% tested.
12-11
intel· Intel486™ DX2 MICROPROCESSOR
13-1
intel.. Intel486™ DX2 MICROPROCESSOR
REMOVE REMOVE
Intel486 OX Intel486 OX
CPU CPU
REPLACE
INSTALL 33 MHz CPU
CRYSTAL
NEW BIOS WITH 25 MHZ
VERSION
INSTALL
NEW BIOS
MODIFY VERSION
POWER AND
COOLING
MODIFY
INSERT POWER AND
Inte1486Tt.l DX2 COOLING
CPU
INSERT
Inte1486Tt.l DX2
241245-92
CPU
TUNE
MEMORY
SYSTEM
241245-93
Figure 13.1. Flowchart for Intel486™ OX CPU to Intel486TM OX2 CPU Conversion
13·2
intet Intel486TM DX2 MICROPROCESSOR
The graph shown in Figure 13.2 shows a set of A typical ISA chip set with an L2 cache, for example,
benchmarks known to have a poor cache hit rate. allows 6-4-4-4 bus cycles at 33 MHz with 80 ns
This is shown for purposes of memory tuning and DRAMs for the Intel486 OX CPU. Without modifying
not to be taken as absolute performance. Please re- the memory subsystem, the 50 MHz Intel486 DX2
fer to the /nte/486TM DX2 Microprocessor Perform- CPU achieved an average of 7%-12% improve-
ance Brief (Order # 241254) for performance de- ment over the 33 MHz Intel486 OX CPU. By reduc-
tails. ing the bus cycles at 25 MHz to 5-2-2-2 (still with
80 ns DRAMs), the 50 MHz Intel486 DX2 CPU im-
With the absence of a second-level cache, the mem- proved to achieve an average of 15%-20% more
ory subsystem becomes critical to gaining perform- performance than the 33 MHz Intel486 OX CPU. By
ance when converting from a 33 MHz Intel486 OX replacing the DRAMs with faster devices (70 ns) bus
CPU to a qO MHz Intel486 DX2 CPU. For slow mem- cycles could be reduced to 4-2-2-2 at 25 MHz, im-
ory systems without tuning, the 50 MHz Intel486 proving the performance of the 50 MHz Intel486
DX2 CPU can possibly run slower than the 33 MHz DX2 CPU even greater.
Intel486 OX CPU (see Figure 13.2). By tuning the
memory design, the 50 MHz Intel486 DX2 CPU can A typical EISA solution is shown in Figure 13.3, using
reach equivalent performance to the 33 MHz In- the Intel 82350DT Chip Set, which was specifically
tel486 OX CPU running applications with low cache designed to permit variation in CPU type and fre-
hit rates, and increase performance for applications quency.
with higher hit rates. Tuning the memory design can
be done easily by either removing a wait state from In an 82350DT based design the memory subsys-
the memory design (if timing permits), and/or adding tem iscQntrolled by the combination of a flexible
faster DRAM and removing wait state(s) from the Programmable State Tracker (PST) and a highly
memory deSign. configurable 82359 DRAM Controller. The PST,
which is typically implemented as a 3 to 5 PLD solu~
Changing the wait state configuration for the system tion, is responsible for converting the CPU's clock-
is often done by programming the DRAM controller dependent handshake protocol into a clock-less
in the chip set on the motherboard. Each chip set is memory interface protocol. The 82359 in turn uses
programmed differently at the BIOS level, requiring a the clock-less memory interface protocol to control
BIOS modification. For testing purposes, the chip main memory as well as to forward host CPU cycles
set may be programmed on the fly from a DOS pro- to the EISA bus if needed. As a result of this clock-
gram if the register locations are known.
20.00%
0.00% +----II----+-,-...,..--t---+---t---f---i
0000(0) 3121(6) 3121(6) 3222(7) 3222(8) 4222(8) 4333(8) 6444(9)
0(0) 2(6) 3(6) 2(6) 3(6) 3(6) 3(6) 4(7)
Figure 13.2. Performance of 50 MHz Intel486TM DX2 CPU vs. 33 MHz Intel486TM DX CPU
13-3
_.
l
Modular
HOST BUS
Asynch Interface
128-BIT
-i
5'
CD
Ii!
MAIN
DATA
EVEN BYTE ~=============i====:i
g c
><
N
MEMORY 128-BIT is:
(;
ODD BYTE
DATA .. 11:==========: :zJ
o
'U
:zJ
g
m
~:zJ
X-Bus
EISA BUS
241245-95
intel . Intel486TM DX2 MICROPROCESSOR
less protocol, the system design becomes indepen- length tracking, CPU "Ready" generation, and
dent of the CPU and cache combination being used cache invalidation control. Although the PST con-
and the speed of the CPU clock. Therefore, whenev- tains a number of state machines only a few of the
er a new CPU and cache combination is to be used state machines need to be re-evaluated to deter-
with an 82350DT based system, the only re-design mine whether any wait states can be removed for
that is necessary is to the CPU subsection, leaving converting from a 33 MHz Intel486 DX CPU to a
the main memory and EISA subsections unchanged. 50 MHz Intel486 DX2 CPU. The state machines that
Typically, this CPU subsection re-design entails need to be re-evaluated are the deterministic cycle
modifying only the PST functionality and the pro- tracker and the snoop cycle tracker.
grammable registers of the 82359.
The deterministic cycle tracker is responsible for
There are five steps to determine whether wait generating RDY or BRDY to the CPU and cache for
states can be removed from the main memory de- cycles that are deterministic in length. All main mem-
sign of an 82350DT system when converting from a ory cycles, except locked cycles which require EISA
33 MHz Intel486 DX CPU to a 50 MHz Intel486 DX2 arbitration, are deterministic cycles. Once the deter-
CPU. An overview of these five steps is covered ministic cycle tracker knows that a deterministic cy-
here; the system designer is referred to the cle is occurring, it uses the 82359 CYCLN(2:0) and
82350DT EISA Chip Set Design Guide (Order PAGEHIT# outputs to determine when to generate
# 296911) for detailed design information. RDY or BRDY to the CPU. For burst cycles the de-
1. Calculate the 82359 delay line tap values for opti- terministic cycle tracker also uses the IF(1 :0) and
mal 25 MHz operation SPEED(1 :0) outputs of the 82359 for generating
BRDY. After this analysis has been completed the
2. Determine all memory cycle lengths for operation system designer can then determine if the determi-
at 25 MHz nistic cycle tracker can be optimized to take advan-
3. Re-evaluate the PST design (deterministic & tage of converting from a 33 MHz Intel486 DX CPU
snoop cycle trackers) to a 50 MHz Intel486 DX2 CPU.
4. Modify the PLD equations for the PST
The other state machine that must be re-evaluated
5. Update system BIOS to reflect new 82359 pro- for correct system functionality is the snoop cycle
grammable register values tracker. The snoop cycle tracker state machine de-
sign must meet two goals; respond to a SNUPRQ
Step one is to perform a timing analysis· of the main with a SNUPACK # within 180 ns (based on an EISA
memory subsystem to determine the minimum num- burst write cycle), and maintain a snoop cycle fre-
ber of CPU clocks required for each memory cycle. quency capability that is equal to or faster than the
Once the memory cycle lengths are known, the PST fastest system bus master write cycle frequency.
design can be re-evaluated with the goal of remov- Due to the change of CPU clock frequency from
ing unnecessary wait states. Before the system de- 33 MHz to 25 MHz, the system designer must re-
signer can determine the memory cycle lengths, the evaluate the snoop cycle tracker state machine to
delay line timings of the 82359 must be analyzed. determine if the two design goals are still being met
in the 50 MHz Intel486 DX2 CPU implementation.
The timing for the DRAM control and address sig-
nals of the 82359 is based on four integrated asyn- In conclusion, when converting an 82350DT based
chronous delay line elements which can be con- design from a 33 MHz Intel486 DX CPU to a 50 MHz
trolled by the 82359 programmable registers. Once Intel486 DX2 CPU the system designer must re-eval-
the delay line tap values have been verified or modi- uate the main memory cycle timings to determine
fied, the system designer should determine the mini- whether the PST and 82359 programmable registers
mum number of CPU clocks required for the differ- need to be modified to take advantage of the in-
ent memory cycles (Le., read page hit, page miss creased performance benefits of the 50 MHz In-
write, burst read, etc.). Armed with the delay line tap tel486 DX2 CPU. Once the system designer has de-
programming values and the number of CPU clocks cided to modify the PST and the 82359 programma-
required for each type of memory cycle, the system ble registers, the conversion from a 33 MHz Intel486
designer can now evaluate the PST design to deter- DX CPU to a 50 MHz Intel486 DX2 CPU is usually
mine if any unneeded wait states can be removed. just as simple as modifying the PLD equations, re-
programming the PST PLDs, and upgrading the sys-
The PST for an 82350DT based system can be sep- tem BIOS to reflect the new 82359 programmable
arated into four primary functions: bus cycle Gontrol register values.
(including arbitration and posted write control), cycle
13-5
inteL Intel486™ DX2 MICROPROCESSOR
14.1 Power and Grounding For reliable operation, always connect unused in-
puts to an appropriate signal level. Active LOW in-
puts should be connected to Vee through a pullup
14.1.1 POWER CONNECTIONS
resistor. Pullups in the range of 20 KO are recom-
The Intel486 DX2 microprocessor is implemented in mended. Active HIGH inputs should be connected to
CHMOS V technology and has modest power re- GND.
quirements. However, its high clock frequency out-
put buffers can cause power surges as multiple out-
put buffers drive new signal levels simultaneously. 14.2 Maximum Ratings
For clean on-chip power distribution at high frequen-
Table 14.1 is a stress rating only, and functional op-
cy, 24 Vee and 28 Vss pins feed the Intel486 DX2
microprocessor. eration at the maximums is not guaranteed. Function
operating conditions are given in 14.3 D.C. Specifi-
Power and ground connections must be made to all cations and 14.4 A.C. Specifications.
external Vee and GND pins of the Intel486 DX2 mi-
Extended exposure to the Maximum Ratings may af-
croprocessor. On the circuit board, all Vee pins must
fect device reliability. Furthermore, although the In-
be connected on a Vee plane. All VSS pins must be
likewise connected on a GND plane. tel486 DX2 microprocessor contains protective cir-
cuitry to resist damage from static electric discharge,
always take precautions to avoid high static voltages
14.1.2 POWER DECOUPLING or electric fields.
RECOMMENDATIONS
Table 12.1. Absolute Maximum Ratings
Liberal decoupling capacitance should be placed
near the Intel486 DX2 microprocessor. The Intel486 Case Temperature under Bias ... - 65°C to + 110°C
DX2 microprocessor driving its 32-bit parallel ad-
dress and data busses at high frequencies can
Storage Temperature .......... - 65°C to + 150°C
cause transient power surges, particularly when driv- Voltage on Any Pin with
ing large capacitive loads. Respect to Ground ......... -0.5 to Vee + 0.5V
Supply Voltage with
Low inductance capacitors and interconnects are Respectto Vss ............... -0.5V to + 6.5V
recommended for best high frequency electrical per-
formance. Inductance can be reduced by shortening
circuit board traces between the Intel486 DX2 micro-
processor and decoupling capacitors as much as
possible. Capacitors specifically for PGA packages
are also commercially available.
14-1
ini'eL Intel486™ DX2 MICROPROCESSOR
NOTES:
1. This parameter is measured at:
Address, Data, BEn 4.0 mA
Definition, Control 5.0 mA
2. This parameter is measured at:
Address, Data, BEn -1.0 mA
Definition, Control -0.9 mA
3. Typical supply current:
775 mA @ 50 MHz
975 mA @ 66 MHz
4. This parameter is for inputs without internal pullups or pulldowns and 0 ~ VIN ~ Vcc.
5. This parameter is for inputs with internal pull downs and VIH = 2.4V.
6. This parameter is for inputs with internal pullups and VIL = 0.45V.
7. Not 100% tested.
8. The ICCF specification in the above table is a target value. It has not been tested.
14.4 A.C. Specifications the voltage levels indicated by Figure 14.3 when
A.C. specifications are measured. Intel486 DX2 mi-
The A.C. specifications, given in Table 14.3, consist croprocessor output delays are specified with mini-
of output delays, input setup requirements and input mum and maximum limits, measured as shown. The
hold requirements. All A.C. specifications are rela- minimum Intel486 DX2 microprocessor delay times
tive to the rising edge of the ClK signal. are hold times provided to external circuitry. Intel486
DX2 microprocessor input setup and hold times are
A.C. specifications measurement is defined by Fig- specified as minimums, defining the smallest ac-
ures 14.1-14.7. All timings are referenced to 1.5V ceptable sampling window. Within the sampling win-
unless otherwise specified. Inputs must be driven to dow, a synchronous input signal must be stable for
correct Intel486 DX2 microprocessor operation.
14-2
int:et Intel486™ DX2 MICROPROCESSOR
NOTES:
1. Not 100% tested. Guaranteed by design characterization.
2. All timing specifications assume CL = 50 pF. Charts 14.4.3 provides the charts that may be used to determine the delay
due to derating, depending on the lumped capacitive loading, that must be added to these specification values.
3. The minimum Intel486 DX2 output valid delays are hold times provided to external circuitry.
4. A reset pulse width of 15 ClK cycles is required for warm resets. Power-up resets require RESET to be asserted for at
least 1 ms after Vce and ClK are stable.
14-3
intet Intel486™ DX2 MICROPROCESSOR
NOTES:
1. Not 100% tested. Guaranteed by design characterization.
2. All timing specifications assume CL = 50 pF. Charts 14.4.3 provides the charts that may be used to determine the delay
due to derating, depending on the lumped capacitive loading, that must be added to these specification values.
3. The minimum Intel486 DX2 output valid delays are hold times provided to external circuitry.
4. A reset pulse width of 15 ClK cycles is required for warm resets. Power·up resets require RESET to be asserted for at
least 1 ms after Vce and ClK are stable.
14-4
Intel486TM DX2 MICROPROCESSOR
Table 14.4.3. Intel486 DX2 Microprocessor A.C. Characteristics for Boundary Scan Test Signals
Vee = 5V ± 5%, T case = O·C to + 85·C, CL = 0 pF
All Inputs and Outputs are TTL Level (Note 4)
Symbol Parameter Min Max Unit Figure Notes
t24 TCK Frequency 25 MHz 1xCIock
t25 TCK Period 40 ns (Note 2)
t26 TCK High Time 10 ns at 2.0V
t27 TCKLowTime 10 ns at O.BV
t28 TCK Rise Time 4 ns (Note 1)
t29 TCKFaliTime 4 ns (Note 1)
t30 TDI, TMS Setup Time B ns 14.7 (Note 3)
t31 TDI, TMS Hold Time 7 ns 14.7 (Note 3)
t32 TOO Valid Delay 3 25 ns 14.7 (Note 3)
t33 TOO Float Delay TBD
t34 All Outputs (Non-Test) Valid Delay 3 25 ns 14.7 (Note 3)
t35 All Outputs (Non-Test) Float Delay 36 ns 14.7 (Note 3)
t36 All Inputs (Non-Test) Setup Time B ns 14.7 (Note 3)
t37 All Inputs (Non-Test) Hold Time 7 ns 14.7 (Note 3)
NOTES:
1. Rise/Fall times are measured between 0.8V and 2.0V. Rise/Fall times can be relaxed by 1 ns per 10 ns increase in TCK
period.
2. TCK period :2: ClK period.
3. Parameter measured from TCK.
4. Boundary Scan A.C. Specifications in the above table are target values. They have not been characterized. Therefore
they are subject to change.
14-5
int:et Intel486™ DX2 MICROPROCESSOR
1.5V
t5
k------- t1 ------~
241245-70
Tx Tx Tx Tx
ClK [
EADS# [
~~~---+----~~
BS8#, BS 16#, [
KEN# ~~~~_ _ + __ ~~~
BOFF#, AHOlD,
HOLD [
RESET, FLUSH#,
A20t.4#, IGNNE#,
INTR, Nt.41
[
A4-A31
(READ) [
241245-71
Tx Tx Tx
ClK [
241245-72
14-6
intel . Intel486TM DX2 MICROPROCESSOR
Tx Tx Tx
ClK [
00-031 [
OPO-OP3 .u.l~It.Mo"-~--t---....,j~~
PCHK# [
241245-73
Tx Tx Tx Tx
ClK [
00-031, DPO-3, [
(WRITE)
BlAST#, PlOCK# [
241245-74
Tx Tx Tx Tx
ClK [
DO-D31, DPO-3, [
(WRITE)
BLAST#, PlOCK# [
241245-75
14-7
infel· Intel486™ DX2 MICROPROCESSOR
TCK
TOO
~~~~~~~~"~--------'
t34i _------t3-5~
S~~~~! XXXXXXXXXXXXX X"'------r-
"l;:t36 t37:::j~
Si~~~! ~XXXXXXXXXX~~~~~~~ ~
241245-76
14.4.1 TYPICAL OUTPUT VALID DELAY VERSUS LOAD CAPACITANCE UNDER WORST CASE
CONDITIONS FOR THE 50 MHz AND 66 MHz INTEL486 DX2 CPU
nom+6 .---.---.---.---,.......,."'"
nom+4 1---+--,
j
'"c....
'"0.
....
'"o
-'
~
ii:
~
14.4.2 TYPICAL OUTPUT RISE TIME VERSUS LOAD CAPACITANCE UNDER WORST-CASE
CONDITIONS
241245-80
NOTE:
This graph will not be linear outside of the CL range shown.
14-8
inteL Intel486™ DX2 MICROPROCESSOR
5
/
4 /
3
/
Loading Delay 2
/
(ns) /
o V
-1 ./
-2 V
-3 ~
o 25 50 100 150
2.5 /
2 /
1.5 /
/
Loading Delay 0 5
(ns) .
/
o /
-0.5 ./
./
-----
-1
-1.5
-2
o 25 50 100 150
14-9
Intel486TM DX2 MICROPROCESSOR
+ ~L~'r-
¢1.65 @@@@@@@@@@@@@@@@@
R~F.
L-@@@@@@@@@@@@@@@@@
.-@@@@@@@@@@@@@@~@@
T @@@ @@@
11
......
@@@
@@@
@@@
@@@
- .-.. SEATING
@@@
(
@@@ -- PLANE ~
¢B (ALL PINS) I
@@@
@@@
@@@
@@@ \ D ......
f=~
m
@@@ @@@
PIN C 3 " @@@
@@@
'- / @@@
@@@ .-..... SWAGGED
PIN
DETAIL
o@@@@
@ @ @@@
...-=
@@o@@@@@@@@@@@il@@
@@@@@@@@@@@@@@@o@
~@@@@@@@@@@@@@@@o@
-- -
r-
~:;~ REF. SW~f~ED
\ Al-~L
BASE - A2
450 CHAMFER (4 PL) PLANE-
(INDEX CORNER)
241245-81
15-1
int'et Intel486™ DX2 MICROPROCESSOR
NOTES:
1. Controlling dimension: millimeter.
2. Dimension "e1" ("e") is non-cumulative.
3. Seating plane (standoff) is defined by P.C. board hole size: 0.0415-0.0430 inch.
4. Dimensions "S", "S1" and "c" are nominal.
5. Details of Pin 1 identifier are optional.
15.1 Package Thermal Specifications where TJ, T A, TC = Junction, Ambient and Case
Temperature respectively. OJC, OJA = Junction-to-
The Intel486 DX2 microprocessor is specified for op- Case and Junction-to-Ambient Thermal Resistance,
eration when T C (the case temperature) is within the respectively.
range of DOC-85°C. T C may be measured in any en-
vironment to determine whether the Intel486 DX2 P = Maximum Power Consumption
microprocessor is within specified operating range.
The case temperature should be measured at the The values for OJA and OJC are given in Table 13.2
center of the top surface opposite the pins. lor the 1.75 sq. in., 168-pin, ceramic PGA.
The ambient temperature (TA) is guaranteed as long Table 13.3 shows the TA allowable (without exceed-
as TC is not violated. The ambient temperature can ing T cl at various airflows and operating frequencies
be calculated from 0JC and 0JA from the following (fCLK)'
equations.
Note that TA is greatly improved by attaching "fins"
TJ = Tc + P • i!JC or a "heat sink" to the package. P (the maximum
power consumption) is calculated by using the maxi-
TA=TJ-P*i!JA
mum Icc at 5V as tabulated in the DC Characteris-
TA = Tc - (P * i!CA) tics of Section 14.
Tc = TA + P' [i!JA -i!Jcl
Table 15.2. Thermal Resistance ("C/W) OJC and OCA for the 50 MHz and 66 MHz Intel486 DX2 CPU
OCA vs Airflow-ft/min (m/sec)
OJC 0 200 400 600 800 1000
(0) (1.01) (2.03) (3.04) (4.06) (5.07)
I With Heat Sink' 2.5 10.5 7.0 4.5 3.5 3.0 2.5
15-2
int'eL Intel486™ DX2 MICROPROCESSOR
DDDDDDDDDDD
DDDDDDDDDDD I
1.540"
DDDDDDDDDDD
DDDDDDDDDDD I
1-------1.536"'----------J 0.079"-/ I-
24124S-A2
15-3
Intel486TM DX2 MICROPROCESSOR
16-1
inter DOMESTIC SALES OFFICES
ALABAMA CONNECTICUT MASSACHUSETTS Intel Corp. UTAH
5540 Centerview Or.
tlntal Corp.
5015 Bradford Dr., #2
tlntel Corp.
301 Lee Farm Corporate Park ~~~r~rp. Center Suite 215
Raleigh 27606 ~::~'K400 South
Huntsville 35805 83 Wooster Heights Rd. 3 ca~lsle Rood Tel: (919) 851-9537 Suite 104
Danbury 06810 2nd Floor
~~j}~~)~~~ FAX: (919) 851·8974 Murray 84107
Tel: (203) 748-3130 Westiord 01886 Tel: (801) 263-8051
FAX: (203) 794-0339 Tel: (508) 692-3222 OHIO FAX: (801) 268-1457
TWX: 710-343-6333
ARIZONA FAX: (508) 692·7867 tlntal Corp. *
FLORIDA 3401 Park Center Drive VIRGINIA
tlntel Corp. Suite 220
MICHIGAN
11225 N. 26th Dr.
Suite D·214 ~31 ~":l"6th Way Dayton 45414 tlntel Corp.
1504 Santa Rosa Road
Phoenix 85029
Tel: (602) 869-4980
Suite 100
Ft. Lauderdale 33309
tlntel Corp.
7071 Orchard Lake Rood i~:lJrL~~ Sune 108
Suite 100 FAX: (513) 890-8658 Richmond 23288
FAX: (602) 869-4294 Tel: (305) 771-0800 Tel: (804) 282-5668
TWX: 510-956-9407 West Bloomfield 48322
FAX: (305) 772-11193 Tel: (313) 851·8096 ~~~C~~ Pal1< Dr. FAX: (216) 464-2270
rJ!s~ona
Suite 215
Usa Rd.
tlntel Corp.
FAX: (313) 851·8770
Suite 100
Beachwood 44122 WASHINGTON
Tucson 85741 5850 T.G. Lee Blvd. MINNESOTA Tel: (216) 464·2738
Tel: (802) 544-0227 Suite 340 TWX: 810·427·9298 tlntel Corp.
FAX: (602) 544·0232 Orlando 32822 tlntel Corp. 155 1oath Avenue N.E.
3500 W. BOth SI. FAX: (804) 282-Q673
Tel: (4O~240-80oo Suite 386
FAX: (40 240-8097 Suite 380 Bellevue 98004
CALIFORNIA Bloomington 55431 OKLAHOMA
EUROPEAN DISTRIBUTORS/REPRESENTATIVES
AUSTRIA Metrologie GmbH Lasi Elettronica S.pA SCANDINAVIA Bytech Systems
Steinerstrasse 15 P.I. 00839000155 Unit 3
Bacher Electronics GmbH 8000 Muenchen 70 Viale Fulvio Testi, N.280 OY Fintronic AB The Western Centre
Rotenmuehlgasse 26 Tel: 49 89 724470 20126 Milano Heikkilantie 2a Western Road
A-1120 Wien SF-02100 Helsinki
FAX: 49 89 72447111 Tel: 39 2 66101370 Bracknell
Tel: 43 222 81356460 FAX: 39 2 66101385 Finland Berks RG12 1RW
FAX: 43 222 834276 ITT Multikomponent Elektronik Tel: 358 0 6926022 Tel: 0344 55333
Vertrieb In Multicomponents FAX: 358 0 6821251 FAX: 0344 867270
BELGIUM Bahnhofstr. 44 P.1. 06550110156
Palazzo E5 Milanofiori ITT Multikomponent A/S Conformix
Inelco Belgium SA 7141 Moeglmgen Naverland 29
Tel: 49 7141 4879 20094 Assago (Milano) Rapid House
Oorlogskruisenlaan 94 Tel: 39 2 824701 DK-2600 Glostrup Oxford Road
B-1120 Bruxelles FAX: 49 7141487210 Denmark
FAX: 39 2 8242631 High Wycombe
Tel: 32 2 244 2811 Proelectron Vertriebs GmbH Tel: 0104542451822 Bucks
FAX: 32 2 2163304 Max-Planck-Strasse 1-3 Silverstar Ltd. S.p.A. FAX: 010 45 42 457624 Herts HP11 2EE
6072 Dreieich P.I. 00751300153 Tel: 0494 474147
FRANCE Viale Fulvio Testi N.280 Nordisk Elektronik A/S
Tel: 4961033040 Postboks 122 FAX: 0494452144
FAX: 49 6103 304344 20126 Milano
Almex Smedsvingen 4 Jermyn
Tel: 392 66125
48, Rue de l'Aubepine N-1364 Hvalstad Vestry Estate
FAX: 39 2 66101359
B.P.102 GREECE Norway Otford Road
92164 Antony Cedex Telcom s.r.1. - Divisione MDS Tel: 47 2 846210 Sevenoaks
Tel: 33 1 40965400 Pouliadis Associates Corp. Via Trombetta FAX: 47 2 846545 Kent TN 14 5EU
FAX: 33 1 4666 6028 5 Koumbari Street Zona Marconi - Strada Cassanese Tel: 0732450144
Nordisk Electronik AB
Kolonaki Square Segrate - Milano FAX: 0732 451251
Jermyn Box 36
10674 Athens Tel: 39248704100
73-79 Rue des Solets Torshamnsgatan 39
Tel: 30 1 3603741 FAX: 39 2 48705355 MMD
Silic 585 S-16493 Kista
FAX: 30 1 360 7501 3 Bennet Court
94663 Rungis Cedex Sweden
NETHERLANDS Bennet Road
Tel: 33 1 49784878 Tel: 46 8 7034630 Reading
FAX: 33 1 4978 0599 IRELAND Konin~ en Hartman B.V. FAX: 4687039845 Berkshire RG2 OOX
Metrologie Micro Marketing Energleweg 1 Tel: 0734313232
2627 AP Delft SWITZERLAND
Tour d'Asnieres Tony Hall FAX: 0734 313255
4, Avenue Laurent Cely The Netherlands Industrade A.G.
Eglinton Terrace Rapid Silicon
92606 Asnieres Cedex Dundrum, Dublin Tel: 31 15609906 Hertistrasse 31
FAX: 31 15619194 CH-8304 Wallis ellen 3 Bennet Court
Tel: 33 1 47906240 Tel: 0001 989 400
Tel: 41 1 8328111 Bennet Road
FAX: 33 1 4790 5947 FAX: 0001 989 8282 Reading
PORTUGAL FAX: 41 1 8307550
Tekelec-Airtronic Berks RG2 OOX
Cite des Bruyeres ISRAEL ATD Electronica LOA UNITED KINGDOM Tel: 0734750697
Rue Carle Vernet - BP 2 Rua Dr. Faria de Vasconcelos, 3a FAX: 0734312728
92310 Sevres Eastronics Ltd. 1900 Lisboa Accent Elect Comp Ltd.
Rozanis 11 Tel: 351 1 8472200 Jubilee House Metro Systems
Tel: 33 1 4534 7535
P.O.B.39300 FAX: 351 1 8472197 Jubilee Road Rapid House
FAX: 33 1 45072191
Tel Baruch, Tel-Aviv 61392 Letchworth Oxford Road
Tel: 972 3 475151 SPAIN Hertsfordshire High Wycombe
GERMANY
FAX: 972 3 475125 SG610H Bucks HP11 2EE
E2000 Vertriebs-AG ATD Electronica Tel: 0462 480888 Tel: 0494 474171
Stahlgruberring 12 Plaza Ciudad de Viena, 6 FAX: 0462 682467 FAX: 0494 21860
8000 Muenchen 82 ITALY 28040 Madrid
Tel: 49 89 420010 Tel: 34 1 5344000/09 Bytech Components Limited YUGOSLAVIA
FAX: 49 89 42001209 Intesi Div. DeHa Deutsche FAX: 34 1 534 7663 12a Cedarwood
Divisione In Industries GmbH Chineham Business Park H.R. Microelectronics Corp.
Jermyn GmbH P.I. 06550110156 Metrologia Iberica Crockford Lane 2005 de la Cruz Blvd., Ste. 223
1m Dachsstueck 9 Milanoffori palazzo E5 Ctra De Fuencarral N.80 Basingstoke Santa Clara, CA 95050
6250 Limburg 20094 Assago (Milano) 28100 Alcobendas (Madrid) Hants RG12 lRW U.S.A.
Tel: 49 6431 5080 Tel: 39 2 824701 Tel: 34 1 6538611 Tel: 0256 707107 Tel: (1) (408) 988-0286
FAX: 49 6431 508289 FAX: 39 2 8242631 FAX: 34 1 6517549 FAX: 0256 707162 TLX: 387452
CG/SALE/07319
INTERNATIONAL SALES OFFICES
AUSTRALIA INDIA Intel Japan K.K. * KOREA
Kawa-asa Bldg.
Intel Australia Ply. Ltd. Intel Asia Electronics, Inc. 2-11-5 Shin-Yokohama Intel Korea, Ltd.
Unit 13 4/2, Samrah Plaza Kohoku-ku, Yokohama-shi 16th Floor, Life Bldg.
Allambie Grove Business Park St. Mark's Road Kanagawa, 222 61 VOldo-dong, Youngdeungpo-Ku
25 Frenchs Forest Road East Bangalore 560001 Tel: 045-474-7661 Seoul 150-010
Frenchs Forest, NSW, 2086 Tel: 91-812-215773 FAX: 045-471-4394 Tel: (2) 784-8186
Tel: 61-2975-3300 TLX: 953-845-2646 INTEL IN FAX: (2) 784-8096
FAX: 61-2975-3375 FAX: 091-812-215067 Intel Japan K.K. *
Ryokuchi-Eki Bldg.
BRAZIL 2-4-1 T erauchi SINGAPORE
JAPAN
Intel Semiconductores do Brazil LTDA
Avenida Paulista, 1159-CJS 404/405
+~r:oon6~~~i~io~saka 560 Intel Singapore Technology, Ltd.
01311· Sao Paulo - S.P. Intel Japan K.K. FAX: 06-863-1084 101 Thomson Road #08-03/06
Tel: 55-11-287-5899 5-6 Tokodai, Tsukuba-shi United Square
TLX: 11-37-557-1508 Ibaraki, 300-26 Intel Japan K.K. Singapore 1130
FAX: 55-11-287-5119 Tet: 0298-47-8511 Shinmaru Bldg. Tel: (65) 250-7611
FAX: 0298-47-8450 1-5-1 Marunouchi FAX: (65) 250-9256
CHINA/HONG KONG Chiyoda-ku, Tokyo 100
Intel Japan K.K. * Tel: 03-3201-3621
Intel PRC Corporation Hachioji ON Bldg. FAX: 03-3201-6850 TAIWAN
15/F, Office 1, Citic Bldg. 4-7-14 Myojin-machi
Jian Guo Men Wai Street Hachloji-shi, Tokyo 192 Intel Japan K.K. Intel Technology Far East Ltd.
Beijing, PRC Tel: 0426-48-8770 Green Bldg. Taiwan Branch Office
Tel: (1) 500-4850 FAX: 0426-48-8775 1-16-20 Nishiki 8th Floor, No. 205
TLX: 22947 INTEL CN Naka-ku, Nagoya-shi Bank Tower Bldg.
FAX: (1) 500-2953 Intel Japan K. K * Aichi 450 Tung Hua N. Road
Bldg. Kumagaya Tel: 052-204-1261 Taipei
Intel Semiconductor Ltd, '* 2-69 Hon-cho Tel: 886-2-5144202
10fF East Tower FAX: 052-204-1285
Kumagaya-shi, Saitama 360 FAX: 886-2-717-2455
Bond Center Tel: 0485-24-6871
Queensway, Central FAX: 0485-24-7518
Hong Kong
Tel: (852) 844-4555
FAX: (852) 868-1989
INTERNATIONAL DISTRIBUTORS/REPRESENTATIVES
ARGENTINA Micronic Devices Okaya Koki NEW ZEALAND
No. 516 5th Floor 2-4-18 Sakae
Dafsys S.R.L. Swastik Chambers Naka-ku, Nagoya-shi 460 Email Electronics
Chacabuco, 90-6 Piso Sion, Trombay Road Tel: 052-204-2916 36 Olive Road
1069"Buenos Aires Chembur FAX: 052-204-2901 Penrose, Auckland
Tel: 54-1-34-7726 Tel: 011-64-9-591-155
Bombay 400 071
FAX: 54-1-34-1871 Ryoyo Electro Corp. FAX: 011-64-9-592-681
TLX: 9531 171447 MOEV
Konwa Bldg.
AUSTRALIA Micronic Devices 1-12-22 Tsukiji SAUDI ARABIA
25/6, 1st Floor Chuo-ku, Tokyo 104
Email Electronics Tel: 03-3546-5011
Bada Bazaar Marg ME Systems, Inc.
15-17 Hume Street FAX: 03-3546-5044
Old Rajinder Nagar 642 N. Pastoria Ave
Huntingdale, 3166
New Delhi 110060 Sunnyvale, CA 94086
Tel: 011-61-3-544-8244 KOREA
Tel: 011-91-11-5723509 U.SA
TLX: M30895 Tel: (408) 732-1710
FAX: 011-61-3-543-8179 011-91-11-589771 J-T ek Corporation
TLX: 031-63253 MONO IN FAX: (408) 732-3095
Dong Sung Bldg. 9/F
NSD-Australia TLX: 494-3405 ME SYS
158-24. Samsung-Dong, Kangnam-Ku
205 Middleborough Rd. Micronic Devices Seoul 135-090
Box Hill, Victoria 3126 6-3-346/12A owarakapuri Colony Tel: (822) 557-8039 SINGAPORE
Tel: 03 8900970 Hyderabad 500 482 FAX: (822) 557-8304
FAX: 03 8990819 Tel: 011-91-842-226748 Electronic Resources Pte, Ltd.
Samsung Electronics 17 Harvey Road
BRAZIL S&S Corporation Samsung Main Bldg. #03·01 Singapore 1336
1587 Kooser Road 150 Taepyung-Ro-2KA, Chung-Ku Tel: (65) 283-0888
Eleora Componentes Seoul 100-102 TWX: AS 56541 EAS
San Jose, CA 95118
Rua Geraldo Flausina Gomes, 76 C.P.O. Box 8780 FAX: (65) 289-5327
Tel: (408) 978-6216
7 Andar TLX: 820281 Tel: (822) 751-3680
04575 - Sao Paulo - S.P. TWX: KOASST K 27970
FAX: (408) 978-8635 SOUTH AFRICA
Tel: 55-11-534-9641 FAX: (822) 753-9065
TLX: 55-11-54593/54591
FAX: 55+11-534-9424 JAPAN MEXICO ~j~ct~~~~~~~i~;.nroNlw~~~~eyet St.)
Meyerspark. Pretoria, 0184
CHINA/HONG KONG Asahi Electronics Co. Ltd. SSB Electronics, Inc. Tel: 011-2712-803-7680
KMM Bldg. 2-14-1 Asano 675 Palomar Street, Bldg. 4, Suite A FAX: 011-2712-803-8294
Novel Precision Machinery Co., Ltd. Chula Vista, CA 92011
Room 726 Trade Square Kokurakita-ku
Kitakyushu-shi 802 Tel: (619) 585-3253
661 Cheung Sha Wan Road TLX: 287751 CBALL UA TAIWAN
Kowloon, Hong Kong Tel: 093-511-6471
FAX: 093-551-7861 FAX: (619) 585-8322 Micro Electronics Corporation
Tel: (852) 360-8999
TWX: 32032 NVTNL HX Dicopet SA 12th Floor, Section 3
FAX: (852) 725-3695 CTC Components Systems Co., Ltd. Tochtli 368 Fracc. Ind. San Antonio 285 Nanking East Road
4-8-1 Dobashi, Miyamae-ku Azcapotzalco Taipei, R.O.C.
INDIA Kawasaki-shi, Kanagawa 213 C.P. 02760-Mexico, D.F. Tel: (886) 2-7198419
Tel: 044-852-5121 Tel: 52-5-561-3211 FAX: (886) 2-7197916
Micronic Devices FAX: 044-877-4268 TLX: 177 3790 Dicome
Arun Complex FAX: 52-5-561-1279 Acer Sertek Inc.
No. 65 D.V.G. Road Dia Semicon Systems, Inc. 15th Floor, Section 2
Basavanagudi Flower Hill Shinmachi Higashl-kan PSI SA de C.V. Chien Kuo North Rd.
Bangalore 560 004 1-23-9 Shlnmachi, Setagaya-ku Fco. Villa esq. Ajusco sIn Taipei 18479 R.O.C.
Tel: 011-91-612-600-631 Tokyo 154 Cuernavaca - Morelos Tel: 886-2-501-0055
011-91-812-611-365 Tel: 03-3439-1600 Tel: 52-73-13-9412 TWX: 23756 SEATEK
TLX: 9538458332 MOBG FAX: 03-3439-1601 FAX: 52-73-17-5333 FAX: (886) 2-5012521