Professional Documents
Culture Documents
Pentium Family
9/28/16
Introduction
The knowledge acquired here about the
Pentium processor features,
architecture, signals and key bus cycles
will serve a foundation for the boards
based on this processor.
This overview will describe the features
of the Pentium as used in a typical
Single Processor PC system in Real
Mode.
OBJECTIVES:
Describe the basic architecture of the Pentium
processor.
Explain the use of the Pentium Registers.
Describe the various Pentium buses.
Explain the use of the Byte Enables .
Discuss Pentium address generation.
Discuss Pentium Bus Cycle Definitions.
Discuss Pentium Signal Descriptions.
Pentium
Processor
Architecture
32 bits
64 bits
256 bits
Prefetch
Buffers
U pipe
64 bit bus
Interface
Branch
Prediction
V pipeline
Integer
ALU
Pipelined
Floating-Point
Unit
Integer
ALU
Multiply
Register Set
Add
Divide
Data Cache
32 bits
64 bits
256 bits
Branch
Prediction
Prefetch
Buffers
U pipeline
64 bit bus
Interface
V pipeline
Pipelined
Floating-Point
Integer
ALU
Integer
ALU
Unit
Register
Multiply
Set
Add
Divide
Data Cache
Code Cache
32 bits
64 bits
256 bits
Prefetch
Buffers
U pipeline
64 bit bus
Interface
Pipeline
sequence
Prefetch
Decode1
Decode2
Execute
Write Back
Branch
Prediction
Integer
ALU
V pipeline
Integer
ALU
Pipelined
Floating-Point
Unit
Multiply
Register Set
Add
Divide
Data Cache
Hardwired
Instructions
Pentium
Processor
Registers
General Registers
31
23
Pentium Registers
16 15
AH
DH
CH
BH
AL
DL
CL
BL
16-BIT
32-BIT
AX
EAX
DX
EDX
CX
ECX
BX
EBX
EBP
ESI
EDI
ESP
Segment Registers
CS
SS
DS
ES
FS
GS
0
EFLAGS
EIP
Segmented Addressing
Code
Segment
CS
SS
DS
ES
FS
GS
Stack
Segment
Data
Segment
Data
Segment
Data
Segment
Data
Segment
Segmented Addressing
Operand
15
Segment Register
15
e.g - CS
0
e.g - IP
31
V
II V
00 00 00 00 00 00 00 00 00 00
I
DD I
PP
15
VV
II
FF
AA VV RR
N
00 N
CC MM FF
TT
II II
OO OO OO DD I I
PP PP FF FF FF
LL LL
7
TT
FF
SS
FF
ZZ
A
P
C
00 A 00 P 11 C
FF
FF
FF
FF
0
DF
C Direction Flag
IF
VIF
TF
X Trap Flag
AC
X Alignment Check
SF
S Sign Flag
VM
ZF
S Zero Flag
RF
X Resume Flag
AF
NT
X Nested Task
PF
S Parity Flag
CF
S Carry Flag
ID
OF
S Overflow Flag
S = Status Flag
C = Control Flag
X = System Flag
LEN
2
R/W
2
LEN
1
R/W
1
LEN
0
R/W
0
0 0 GD 0 0 1
G L G L
E E 3 3
B B B
G L G L G L
2 2 1 1 0 0
1111111111111111 T S D011111111
Reserved
Reserved
DR3 - Breakpoint 3 Linear Address
DR2 - Breakpoint 2 Linear Address
DR1 - Breakpoint 1 Linear Address
DR0 - Breakpoint 0 Linear Address
B B B B
3 2 1 0
Pentium Bus
Description
Bus Description
0
Data Types
Byte Byte
Address N
15
High
Byte
Address
N+1
Address
N
Each location in
memory is Byte wide
0
Low
Byte
Word
15
31
High Word
Doubleword
Low Word
63
47
High Doubleword
31
15
Low Doubleword
Quadword
Chunk
0000FFFFH
00000003H
64 KByte
I/O Space
0000FFFCH
00000000H
(in Hex)
(in Hex)
0000 0000
0000 0001
0000 0002
0000 0003
0000 0004
0000 0005
0000 0006
0000 0007
0000 0000
0000 0000
0000 0000
0000 0000
0000 0000
0000 0000
0000 0000
0000 0000
0000 0008
0000 0009
0000 000a
0000 000b
0000 000c
0000 000d
0000 000e
0000 000f
0000 0008
0000 0008
0000 0008
0000 0008
0000 0008
0000 0008
0000 0008
0000 0008
(in Hex)
0000 0010
0000 0011
0000 0012
0000 0013
0000 0014
0000 0015
0000 0016
0000 0017
0000 0010
0000 0010
0000 0010
0000 0010
0000 0010
0000 0010
0000 0010
0000 0010
0000 0018
0000 0019
0000 001a
0000 001b
0000 001c
0000 001d
0000 001e
0000 001f
0000 0018
0000 0018
0000 0018
0000 0018
0000 0018
0000 0018
0000 0018
0000 0018
Byte Enable
Location in Qword
BE0#
BE1#
BE2#
BE3#
BE4#
BE5#
BE6#
BE7#
D07:00
D15:08
D23:16
D31:24
D39:32
D47:40
D55:48
D63:56
FIRST
SECOND
THIRD
FOURTH
FIFTH
SIXTH
SEVENTH
EIGHT
Pentium
Signal
Description
Signal Description
Clock
Probe Mode
Initialization
TAP Port
Address Bus
SMM
Address Mask
FP Error Reporting
Interrupts
Pentium
Bus Arbitration
Cache Flush
Cache Snooping
Cache Control
Signal Description
CLOCK
CLK - Clock (Input)
Fundamental Timing for the Pentium
The CPU uses this signal as the internal processor clock.
Signal Description
Initialization
RESET - (Input)
Forces the CPU to begin execution at a known
state.
Signal Description
Address Bus
A31:A3 - ADDRESS bus lines
Output except for cache snooping
Signal Description
Address Bus
BE7#:BEO#: Byte Enable lines (Outputs)
Byte Enables to enable each of the 8 bytes in the 64bit data path.
Helps define the physical area of memory or I/O accessed.
The Pentium uses Byte Enables to address locations within
a QWORD.
In effect a decode of the address lines A2-A0 which the
Pentium does not generate.
Which lines go active depends on the address, and whether
a byte, word, double word or quad word is required.
Signal Description
Address Mask
A20M#: Address 20 Mask (Input)
Emulates the address wraparound at 1 MByte which occurs on
the 8086.
When A20M# is asserted, the Pentium processor masks
physical address bit 20 (A20) before performing a lookup to
the internal caches or driving a memory cycle on the bus.
A20#M must be asserted only when the processor is in real
mode.
Internal Parity
IERR# - Internal Error (Output)
Alerts System of Internal Parity Errors
Signal Description
Address Parity
AP Address Parity (I/O)
Bi-directional address parity pin for the address lines.
Address Parity is driven by the Pentium processor with even
parity information on all CPU generated cycles in the same clock
that the address is driven
Even parity must be driven back to the CPU during inquire cycles
on this pin in the same clock as EADS#.
Not supported on all systems
Signal Description
Data Bus.
D63:DO - Data Lines (I/O).
The bi-directional 64-bit data path to or from the CPU.
The signal W/R# distinguishes direction.
During reads, the CPU samples the data bus when
BRDY# is asserted.
Signal Description
Bus Control
ADS# - Address Strobe (output)
Indicates that a new valid bus cycle is currently
being driven by the Pentium processor.
The following are some of the signals which are
valid when ADS#=0
Addresses (A31:3)
Byte Enables (BE7#:0#)
Bus Cycle definition (M/IO#; D/C#; W/R#, CACHE#)
Signal Description
Bus Control (Cont.)
BRDY# - Burst Ready (Input)
Transfer complete indication.
The burst ready input indicates that the external system has
presented data on the data pins in response to a read or that
the external system has accepted the Pentium processor data
in response to a write request.
This signal ends the current bus cycle and is used to extend
bus cycles to allow slow devices extra time.
If LOW (non-burst cycles), this signal ends the current bus
cycle and the next bus cycle can begin.
If HIGH the Pentium is prevented from continuing processing
and wait states are added.
Signal Description
Bus Cycle Definition
M/IO# - Memory or Input/Output (output)
M/IO# distinguishes between Memory and I/O
cycles.
The memory/input-output is one of the primary bus
cycle definition pins.
1 = Memory Cycle
0 = Input/Output Cycle
Signal Description
Bus Cycle Definition (Cont.)
D/C# - Data or Code (output)
D/C# distinguishes between data and code or
special cycles (control)
The data/code output is one of the primary bus
cycle definition pins.
1 = Data
0 = Code / Control
Control for Interrupt Acknowledge or Special Cycles
Signal Description
Bus Cycle Definition (Cont.)
W/R# - Write or Read (output)
W/R# distinguishes between Write and Read
cycles.
Write/read is one of the primary bus cycle
definition pins.
1 = Write
0 = Read
Signal Description
Bus Cycle Definition (Cont.)
Cache# - Cacheability (output)
Processor indication of internal cacheability.
The L1 cache must be enabled using the CD bit in CR0 for
Cache# to be asserted low.
The Cache# signal could also be described as the BURST
instruction signal, because the Cache# signal (qualified with
KEN#) results in a burst mode transfer of 32 bytes of code or
data.
Cache# and Ken# are used together to determine if a read will
be turned into a linefill. (Burst cycle).
During write-back cycles, the CPU asserts the CACHE# signal
(KEN# does not have to be asserted)
Signal Description
Bus Cycle Definition (Cont.)
NA# - Next Address (Input)
Indicates external memory is prepared for a pipeline cycle.
An active next address input indicates that the external
memory system is ready to accept a new bus cycle although
all data transfers for the current cycle have not yet completed.
When NA# is asserted, the Pentium supplies the address for
the start of the next transfer early, so that the memory system
can latch the new address before the transfer is ready to start.
A detailed discussion of Address Pipelining is beyond the
scope of this course.
Signal Description
Bus Cycle Definition (Cont.)
Lock# - Bus Lock (Output)
The bus lock pin indicates that the current bus cycle is locked,
typically for a read-modify-write operation.
The CPU will not allow a bus hold when LOCK# is asserted.
Locked cycles are generated when the programmer prefixes
certain instructions with the LOCK prefix.
e.g. LOCK INC [EDI]
Signal Description
Cache Control
KEN# - Cache Enable (Input)
Indicates to the Pentium whether or not the system can support
a cache line fill for the current cycle.
Cache# and Ken# are used together to determine if a read will
be turned into a linefill. (Burst cycle).
Signal Description
Cache Snooping
AHOLD - Address Hold (Input)
Floats the address bus so an inquire cycle can be driven to the
Pentium.
AHOLD allows another bus master (e.g. DMA ctlr) to drive the
CPU address bus with the address for an inquire cycle.
Effectively changes address lines to inputs.
All other signals remain active so data for previously sent bus
cycles can still be transferred.
Signal Description
Cache Snooping (Cont.)
HIT# - On Chip Cache hit (Output)
Inquire Cycle Hit/Miss Indication
Externally indicates whether an inquire cycle resulted in
a hit or miss.
Signal Description
Cache Flush
Flush# - Cache Flush (Input)
Signal Description
Bus Arbitration
HOLD - Bus Hold (Input)
Allows another bus master complete control of the CPU
bus.
In response to the bus hold request, the Pentium processor
will float most of its output and input/output pins and assert
HLDA after completing all outstanding bus cycles.
The Pentium processor will maintain its bus in this state
until HOLD is de-asserted.
Signal Description
Bus Arbitration (Cont.)
BOFF# - Backoff (Input)
Forces the Pentium to get off the bus in the next clock.
After BOFF# is removed, the Pentium restarts the bus
cycle.
Signal Description
Interrupts
INTR - Maskable Interrupt (Input)
Indicates that an external interrupt has been generated.
If the IF(Interrupt Enable Flag) bit in the EFLAGS register is set,
the Pentium processor will generate two locked interrupt
acknowledge bus cycles (to get type number) and vectors to an
interrupt handler after the current instruction execution is
completed.
Signal Description
Floating Point Error Reporting
FERR# - Floating Point Error (Output)
FERR# is included for compatibility with systems using
DOS-type floating point error reporting (IRQ13)
Indicates that an unmasked error occurred
FERR# is similar to the ERROR# pin on the Intel387TM math
coprocessor.
Signal Description
Signal Description
Test Access Port (TAP)
Signals for Hardware Debug Support (ITP) &
Boundary Scan Testing.
Signal Description
Test Access Port (TAP) (Cont.)
TDI - Test Data Input (Input)
The test data input is a serial input for the test logic.
TAP instructions and data are shifted into the Pentium
processor on the TDI pin on the rising edge of TCK
when the TAP controller is in an appropriate state.
Signal Description
Test Access Port (TAP) (Cont.)
TRST# - Test Reset (Input)
When asserted, the test reset input allows the TAP controller to be
asynchronously initialized
Probe Mode
R/S# - Resume/Stop [Run/Scan] (Input)
The run/stop input is an asynchronous, edge-sensitive interrupt
used to stop the normal execution of the processor and place it into
an idle state.