1
第 2章 80x86微处理器的结构
2.1 从 8086到 Itanium
2.2 80x86的编程结构
2.3 80x86的引脚和时序
2
2.1 从 8086到 Itanium
8086基本结构
80286 和 80386
Intel 80486
Pentium 系列处理器和 Itanium处理器
2.1 从 8086到 Itanium
2.1.1 8086基本结构一、总线接口部件 BIU
( Bus Interface Unit)
总线接口部件 BIU同外部总线连接,为执行部件 EU完成全部的总线操作,并且计算、形成 20位的内存储器的物理地址。
5
二、执行部件 EU(Execution Unit)
执行指令,完成指令所规定的操作。进行内存有效地址的计算。
由于 EU和 BIU这两个功能部件能相互独立地工作,在大多数情况下,取指令所需的时间“消失”了(隐含在上一指令的执行之中),大大减少等待取指令所需的时间,提高了微处理器的利用率和整个系统的执行速度。
2.1.2 80286 和 80386
8086 EU Execution Unit
(16位 ) BIU Bus Interface Unit
AU Address Unit
80286 IU Instruction Unit
(16位 ) BU Bus Unit
EU Execution Unit
BIU Bus Interface Unit
IPU Instruction Prefetch Unit
80386 IDU Instruction Predecode Unit
(32位 ) EU Execution Unit
SU Segmentation Unit
PU Paging Unit
SU
MMU( Memory Management Unit)
PU
ALU 外部 DB
80386 SX 32位 16位
80386 DX 32位 32位对 8位 16 位信息处理 SX 与 DX 一样(主频相同条件下)
对 32位信息处理 SX与 DX不一样取数 处理
80386 SX 2次 1次
80386 DX 1次 1次综合性能 80386DX比 80386SX好对大量的 8位,16位操作两者性能一样。
2.1.3 Intel 80486
Intel 80486DX
=高性能的 + 高性能的 + 8KBL1Cache
80386 80387
*面向多处理器结构
*主频提高 从 33MHz-50/60MHz
*采用部分 RISC 技术( Reduced Instruction Set
Computer)1.2条 /时钟
8087 NDP 数值数据处理器
80287与 80387 数学处理器
*突发式总线( Burst Bus)
给出一个地址后,与该地址相关的一组数据都可以进行输入 /输出。
* 486 SX / DX / DX2 / DX4
486 SX 不带 FPU 的 486
486 DX2 内频是外频的 2倍;
486DX4 内频是外频的 3倍;
内频:是处理器内部工作核心频率;
外频:是处理器外部工作频率,
在 Socket结构的主板上,外频即系统内存和 L2 Cache
总线的时钟频率,是主板提供的时钟。
486 DX/33MHz 内频 33MHz
外频 33MHz
486DX/66MHz 内频 66MHz
外频 66MHz
486DX2/66MHz 内频 66MHz
外频 33MHz
486DX4/100MHz 内频 100MHz
外频 33MHz
2.1.4 Pentium 系列处理器及 Itanium处理器
Pentium
奔腾 57条 MMX指令
Pentium Pro MMX
高能奔腾 多能奔腾
Pentium II
70条 SSE指令
Pentium III
144条 SSE2指令新的 IA-32 Pentium 4
广度深度
57条 MMX指令一,Pentium 处理器技术特点
1,超标量流水线 U / V
每条流水线有各自的 ALU / 地址生成部件指令预收指令译码地址生成指令执行回写
2,重新设计的浮点部件
8级流水线浮点 — 1~2条指令 / 时钟
3,独立的 I-cache与 D-cache
4,分支预测
5,64位外部数据总线内部 ALU仍为 32位
Intel Pentium TM Processor
代码 Cache 分支预测预取 Buf,超流水线
64位 整数 ALU 整数 ALU 浮点部件
Bus
接口 寄存器组 乘法加法数据 Cache 除法二,Pentium Pro处理器技术特点:
1,一个封装 2个芯片
*CPU内核 +2× 8 KB L1 Cache
*256KB L2 Cache (全速)
2,指令分解为微操作
3,超级流水线和超标量技术
14级流水线
3路超标量微结构
5个并行处理单元
5个并行处理单元整数单元 × 2
装入单元 × 1
储存单元 × 1
FPU× 1
4,乱序执行和推测执行三,Pentium with MMX
MMX ( Multi Media eXtention )
多媒体扩展 — 提高多媒体 和 通信处理能力主要特点
1.采用 SIMD(Single Instruction Multi Data)技术,使多条信息可由一条单一指令来处理。这是 MMX
的基础。
SIMD与 IA(Intel Architecture英特尔体系结构)
的超标量技术相结合,可极大增 强 PC机平台性能; MMX技术执行指令时,将 8bytes数据作为一个包装的 64位值进入 CPU,全部过程由一条指令立即处理。
19
2,MMX指令具有很强的通用性,不仅能满足建立在当前及未来算法上的 PC机应用程序的大部分要求,而且还可用于编码 /译码器,算法及驱动程序等。
3,MMX指令系统增加了 4种新的数据类型:
紧缩字节 (8× 8bit)
紧缩字 (4× 16bit)
紧缩双字 (2× 32bit)
四字 (64bit)
目的:
紧缩定点整数,将多个整数字组成一个单一的
64位数据。使系统在同一时刻能处理更多的数据。
21
4,增加 8个 64位 MMX寄存器 ----浮点寄存器。
5,增加了 57条 MMX指令,具有饱和运算和积和运算能力。
饱和运算:运算中“上溢”或“下溢”
的结果被截取到该类数据类型的最大值或最小值。
积和运算,PMADDWD P,packed
M,multiply
D,dual/double
这是紧缩字相乘并相加。
饱和运算:在图形学中应用很有效。
积和运算:矢量点积和矩阵乘法中应用极广,这是图象 / 音频 / 视频数据处理的基本算法。
广泛应用于音频 /视频图像的压缩 /解压缩。
四,Pentium II
技术特点
1,MMX技术
2,动态执行技术多分支跳转预测,数据流分析,推测执行
3,双重独立总线结构
DIB(Dual Independent Bus)
SEC插盒( Single Edge Contact)
Solt 插槽五 Pentium III
主要技术特性 仍是 Pentium Pro结构
1,更高的主频起始频率 450MHz/500MHz
2,SSE 指令 70条
Streaming SIMD Extension
数据流单指令多数据扩展提高多媒体和 浮点运算能力
3,LI Cache 16KB I-Cache
16KB D-Cache
L2 Cache 512KB(速度为 CPU核心频率 1/2)
增强音频,视频,3D图形处理能力。
用于 3D图像处理、语言识别、视频实时压缩
4,8个新的 128位单精度寄存器( 4× 32位)能同时处理
4个单精度浮点变量。可达 20亿次 /秒浮点运算速度。
L2 Cache 512KB(速度为 CPU核心频率的 1/2)
增强音频、视频,3D图形处理能力。用于 3D 图象处理、语音识别、视频实时压缩
5,8个新的 128位单精度寄存器( 4× 32位)
Coppermine—— 新一代的 PentiumIII
技术特性
1.内置工作在核心频率下的 L2Cache256KB
2.采用先进的缓存转换结构、内置 L2Cache采用 1条 256
位的宽带数据通路。相当于 64位数据通路的片外
L2Cache的 4倍。
3.采用先进的系统缓冲器。
4.采用适用于移动 PC系统的 Speedstep技术低压低速全压全速六,Pentium 4
主要技术特性采用新的 IA-32体系结构对 Pentium Pro进行彻底改造。
主频以 1.3G~1.5G Hz为起始频率。
这是基于内核体系结构的重新设计而非内核工艺的单纯提高。
28
1,采用 20级的超级流水线 (Super pipe line)
流水线深度越大 (级数越高 )越易提高内核工作频率。
带来短时钟周期,高主频和长运算延迟
(Latency,两个操作指令间的时间间隔较长 )的问题 。
解决方法:
* 加大 L1Cache
* 提高分支预测功能。
2,采用 256KB的 L1 Cache
1MB的 L2 Cache
3,整数运算单元
4,浮点运算单元摒弃 X87体系结构
5,总线结构采用 64位,100MHz的 4倍数据速率 (QDR)技术。
七,Intel Itanium
中文名“安腾”,原定名为 Merced
主要技术特性:
结构,IA-64结构
* 基础是 EPIC技术
Explicitly Parallel Instruction Computing
显性并行指令计算核心频率,800MHz以上
Cache,L1 Cache 全速,128KB(片内 )
L2 Cache 全速,256KB~1MB(片内 )
L3 Cache 全速,4MB(同封装 )
处理器核心 ∶
4个整数执行单元
4个 MMX / 浮点执行单元
128个整数寄存器,128个浮点寄存器
64位处理器
*一次可以处理 64位 (8Bytes)的数据
*可以用 64位地址来“访存”。
32位处理器访存 232位 =4GB
64位处理器访存 264位 =16MTB
是 32位处理器的 4G倍。 (4?10243)
浮点执行单元 4个一个时钟周期内可以执行 20个单精度浮点运算,12个双精度浮点运算
128个 82位浮点寄存器整数处理单元 4个
MMM处理单元 4个
33
寄存器:
通用寄存器
128个 (64位 +1位 )
64位供程序设计者用
1位称为 NAT (Not A Thing)位当寄存器中数据被确定为无用位时,只要发送 NAT位就可确定该寄存器中的数据无用。
浮点寄存器 128个 (82位 )
用于浮点运算预测寄存器 64个 (1位 )
控制分支以及有条件指令分支寄存器 64个 (8位 )
指定分支的目标地址
32位指令的兼容性
Itanium将完全兼容现有的 32位指令集。现有的 32位应用程序无须改动即可应用于
Itanium系统上。
EPIC技术这里的“并行处理技术”是指在处理器内部同一个处理单元同时并行处理多条指令。
应用了 LIW,Predication和 Speculative技术。
LIW(Long Instruction Word)
将 3条指令“拼接”成 128位的“束” (bundle)以加快处理速度,称,LIW编码”。
128位长的指令束中包含一个由编译程序写入的若干位的“模块” (template)清楚地告诉 CPU哪些指令可以并行地执行。
Instruction Predication (指令预测 )
一般的处理器在分支预测的计算中要花费大量时间;
Itanium的指令预测是一项基于程序编译器的技术,目的是对将要用到哪些分支进行更准确的预测。
注意 ∶ 指令预测是基于程序编译器的,指令预测技术代替分支预测,使 CPU并行执行所有可能的分支路径。
要求 ∶ CPU的编译程序必须有高超的分支预测能力,
Itanium必须是极宽的超标量芯片,拥有大量的备用资源。用芯片资源换取时间。
Speculative loading 推理装载在指令和数据没有被用到之前,Itanium处理器可以把这些指令和数据统统装入,把处理器本身有效地当做一个极好的缓存。它可能在处理器空闲时完成。通过提前装载没有用到的指令和数据来减少由于内存延迟造成的性能损失。
38
2.2 80x86的编程结构
8086的编程结构
80X86的编程结构 1 — 基本结构寄存器
80X86的编程结构 2— 系统级寄存器
80X86的编程结构 3 — 调试和测试寄存器
80X86的编程结构 4 — 浮点寄存器
2.2 80x86的编程结构
2.2.1 8086的编程结构一、通用寄存器 AX
AH AL
BX
BH BL
CX
CH CL
DX
DH DL
SP
BP
SI
DI
( 1) 数据寄存器累加器 AX( Accumulator)
基址寄存器 BX( Base)
计数寄存器 CX( Count)
数据寄存器 DX( Data)
这四个 16位寄存器可分为高 8位( AH,BH,CH和 DH)与低 8位( AL,BL,CL和 DL)
可分别寻址、独立操作。
( 2) 指针寄存器和变址寄存器堆栈指针寄存器 SP( Stack Pointer)
基址指针寄存器 BP( Base Pointer)
源变址寄存器 SI( Source Index)
目的变址寄存器 DI( Destination Index)
SP用来确定欲读写堆栈的地址,BP用来存放在现行堆栈段的一个数据区的“基地址”。 SI,DI用于变址操作,存放变址地址。
二、指令指针 IP和标志寄存器 F
指令指针 IP( Instruction Pointer)
指向当前需要取出的指令字节
IP指向的是指令地址的段内地址偏移量,又称偏移地址( Offset Address)或有效地址( EA,
Effective Address)。
程序员不能对 IP进行存取操作,程序中的转移指令、返回指令以及中断处理能对 IP进行操作。
IP
FR
标志寄存器 FR( Flag Register)
定义了 9位
6位状态位 C,A,Z,S,O,P
3位控制位 I,D,T
OF DF IF TF SF ZF AF PF CF
Interrupt enable Direction Trap
Carry Auxiliary Carry
Zero Sign Overflow
Parity
进位标志 CF,加减运算后有进位(借位) CF = 1,
CF = D7CY/D15CY
辅助进位标志 AF,AF = D3CY
零标志 ZF,结果为 0,ZF = 1
结果非 0,ZF = 0
符号标志 SF,结果为正,SF = 0
结果为负,SF =1
奇偶校验标志 PF,低 8位中,,1”的个数为偶数,PF = 1,
,1”的个数为奇数,PF = 0
溢出标志 OF,OF = 或 CY6CY7 DD? CY14CY15 D?
中断允许标志 IF:
用于控制可屏蔽中断。
IF = 1,开中,IF = 0关中。
方向标志 DF:
用于串操作
DF = 0,增量操作,DF = 1,减量操作。
陷阱标志 TF:
TF = 1,单步操作,TF = 0,连续操作。
三,段寄存器 ( Segment Register)
内存中通常存放着三类信息:
( 1) 代码 ( 指令 ) — 指示微处理器执行何种操作;
( 2) 数据 ( 字符,数值 ) — 程序处理的对象;
( 3) 堆栈信息 — 被保存的返回地址和中间结果等 。
CS
DS
SS
ES
段的起始地址由称为,段寄存器,的 4个 16位寄存器决定,这 4个段寄存器为:
( 1) 代码段寄存器 CS( Code Segment)
指向当前的代码段,指令由此段中取出;
( 2) 堆栈段寄存器 SS( Stack Segment)
指向当前的堆栈段,堆栈操作的对象就是该段中存储单元的内容;
48
( 3) 数据段寄存器 DS( Data Segment)
指向当前的数据段,通常用来存放程序变量 ( 存储器操作数 ) ;
( 4) 附加段寄存器 ES( Extra Segment)
指向当前的附加段,通常也用来存放数据,以及一些专用指令的操作数 。
四,8086系统中内存分段解决 20位内存地址和 16位地址计算能力的矛盾。
8086程序把 1M字节的存储空间看成为一组存储段,各段的功能由具体用途而定,
分别为代码段、堆栈段、数据段和附加段。
50
一个存储段是存储器的一个逻辑单位,其长度可达 64K字节,每段第一个字节的位置称为
“段起始地址” 。
对段起始地址的要求是:
最好能被 16整除(起始地址为 ×××× 0H)。
段寄存器中存放了与段起始地址有关的 16位“段基值”( Segment Base value),几个段可以相互重叠,也可指向同一个 64K字节空间。
在具有地址变换机构的计算机中,
有两种存储器地址:
一种是逻辑地址 ( Logical Address)
— 允许在程序中编排的地址一种是物理地址 ( Physical Address)
— 信息在存储器中实际存放的地址
52
8086系统中,对给定的任一存储单元而言有两部分逻辑地址;
,段基值,— 决定所在段第一个字节的位置;
,段内偏移量,( Offset) — 该存储单元相对于该段起始单元的距离 。
“段基值”存放在段寄存器( CS,SS,DS,ES)
中,
“段内偏移量”由 SP,BP,SI,DI,IP,BX和直接地址以及上述寄存器和直接地址的组合而形成。
8086系统中逻辑地址的来源可归纳如表所示 。
注,EA( Effective Address) 为有效地址,反映操作数的段内偏移地址 。
操作类型 隐含的段基值 可替换的段基值 偏移地址取指令 CS 无 IP
堆栈指令 SS 无 SP
BP用作基地址寄存器 SS CS,DS,ES EA
通用数据读写 DS CS,ES,SS EA
字符串操作(源地址) DS CS,ES,SS SI
字符串操作(目的地址) ES 无 DI
2.2.2 80X86的编程结构 1
— 基本结构寄存器一、通用寄存器
General Purpose Register
EAX AX AH AL
EBX BX BH BL
ECX CX CH CL
EDX DX DH DL
32位 16位 8位
ESP SP
EBP BP
ESI SI
EDI DI
32位 16位
32位寄存器仅用于 80386以上的处理器注意寄存器的隐含用法二,专用寄存器
Special Register
1,EIP (Instruction Pointer)
指示要执行的下一条指令的偏移地址 ( Offset)
该偏移值相对于指令所在代码段的基地址 (Base
Address)。
程序员不能直接对 EIP(IP)读写,程序转移指令能对 EIP(IP)进行操作 。
57
2,EFLAGS (Flags)
指示处理器的状态,控制其操作 。
从 8086- Pentium Pro所定义的标志位见教材各标志位的定义见教材三,段寄存器
Segment Register 6 个
DS,CS,SS,ES,FS,GS
用来保存标志现行可寻址存储段的选择子
( Selector,选择符 ) 值 。
在实地址方式下 ( 以及 8086) 段的长度固定为
64KB;
在保护方式下段的长度在 1Byte ~ 整个物理地址空间内任选 。
在 80286及以上的处理器中每个段寄存器都由一个
,段描述子寄存器,相对应,
该寄存器用来描述一个存储段的段基地址 段限 属性 ( 访问权限 )
Base Address Limit Access Right
Base 是线性地址或物理地址计算的一个分量
Limit 用于段限检查操作。
Access Right 对照所要求的存储器访问类型进行检验段寄存器对程序员而言是可见的;
段描述子寄存器对程序员是透明的。
2.2.3 80X86的编程结构 2—
系统级寄存器一,控制寄存器 5个 ( Control Register)
用于对 80x86的多种功能的控制 。
1,CR0
定义了 11 位控制位
80286中称为 MSW(Machine Status Word)
其中 PE( 0位 ) 为允许保护 (Protection Enable)
PE=0以实方式工作
PE=1 进入保护方式
2,CR2页故障线性地址寄存器
3,CR3页目录基地址 寄存器
CR2,CR3用于 386以上处理器,在分页操作中使用。
CR3中高 20位为页的目录基地址,在分页计算中用
4,CR4 用于 Pentium以上处理器。
二,系统地址寄存器 2个
( System Address Register)
描述子 (Descriptor):
保护方式下,用来描述存储器操作数所在段的性质的数据结构 。
描述子表 (Descriptor Table)
在一个系统中,存放所有段的描述子的存储区 。
63
系统地址寄存器:用来寻址和定义上述描述子表的地址 。
全局描述子表寄存器
GDTR(Global Descriptor Table Register)
存放全局描述子表的段基址 (Segment Base Address)和段限 (Limit)。
64
中断描述子表寄存器
IDTR(Interrupt Descriptor Table Register)
存放中断描述子表的 Base和 Limit 。
GDTR和 IDTR为 48( 40) 位寄存器其中 Base,32位 -386以上
24位 - 286;
Limit,16位 。
三,系统段寄存器 2个
(System Segment Register)
局部描述子表寄存器
LDTR (Local Descriptor Table Register)
16位寄存器内装入 16位选择子,通过该选择子访问
GDT。 找到相应的描述子,该描述子中包含 LDT的
Base,Limit和 Access Right(AR)。
每个 LDTR都有一个 64位的 LDT Cache描述子寄存器
( 或称段描述子及 Cache) 。
Base Limit AR
32位 20位 12位任务状态段寄存器
TR(Task State Segment Register)
一个任务即指一个应用程序 或一个过程 。
每个任务有一个相关的 TSS(任务状态段 ),
TSS中保存有当前任务的所有环境 ( 该任务的运行状态 ) 。
TSS的描述子存放在 GDT中,由 TR内的 16
位选择子来检索,检索所得之描述子自动装入 TSS Cache中 。 ( 同 LDTR和 LDT Cache)
2.2.4 80X86的编程结构 3 —
调试和测试寄存器一,调试寄存器 ( Debug Register)
用于排除故障
DR0-DR3设置线性断点地址
DR6显示断点状态
DR7设置断点二,测试寄存器 ( Test Register)
用于测试分页和 Cache状态 。 386/486分别定义了 2~5个 TR
Pentium以上处理器采用 MSR( Model Special Register,模型专用寄存器 ) 来替代,MSR用于控制可测试性,执行跟踪,性能监测和机器检查错误 。
TR与 MSR中用到 TLB
TLB(Translation Lookaside Buffer)转换后备缓冲器用来保存最常用的页表地址转换 。
Pentium处理器用 RDMSR( 读 MSR) 和 WRMSR( 写
MSR) 来访问 MSR。
用 ECX值 ( 仅用 8位 ) 确定所访问的 MSR( 见教材 ))
2.2.5 80X86的编程结构 4 —
浮点寄存器 (Floating Point Register)
数据寄存器 Data Register 8× 80位符号位 阶码 尾数
1 15 64
标记字 Tag Word
与 8个数据寄存器对应,各 2位 。
状态寄存器 Status Register
16位寄存器控制寄存器 Control Registor
16位寄存器指令指针( Instruction Pointer)
提供发生故障的数字指令的地址数字指针( Data Pointer)
提供发生故障的数字存储器操作数的地址注意,80486处理器片内集成有 FPU (Floating Processing
Unit,浮点处理部件 )这是对 80486而言的。
Pentium以上处理器在应用程序模式上不再使用上述浮点寄存器。
71
2.3 80x86的引脚和时序
8086的引脚信号
80X86引脚信号
80X86的时序图
2.3 80x86的引脚和时序一,引脚信号综述微处理器的信号引脚是处理器内部同外部世界 ( 内存或 I/O接口 ) 之间信息传输的通道 。 所以也称为芯片总线 。 理解微处理器的引脚功能是微机系统中存储器接口和 I/O接口的重要基础 。
73
二,计算机中软件与硬件的关系:
软件 ( 指令 ) 的功能是通过硬件 ( 引脚信号 ) 起作用的;硬件 ( 引脚 )信号是由软件 ( 指令 ) 产生的 。
三,有关引脚信号的一些基本知识
1.输入 /输出
2.高电平有效 /低电平有效
3.输出信号是二态 /三态
4,的意义IO/M
74
2.3.1 8086的引脚信号
8086的 40条引脚信号按功能可分为 4部分 ─地址总线,数据总线,控制总线以及其它 ( 时钟与电源 ) 。
一,双重总线,分时复用
1,21条引脚传送 42个信号
AD0~ AD15,
A16 / S3~ A19 / S6,
/ S7。BHE
2,三种周期
*指令周期 ( Instruction Cycle)
执行一条指令所需要的时间称为指令周期,
不同指令的指令周期是不等长的 。
*总线周期 ( Bus Cycle)
8086CPU与外部交换信息总是通过总线进行的 。 CPU的每一个这种信息输入,输出过程需要的时间称为总线周期,一个指令周期由一个或若干个总线周期组成 。
77
*时钟周期 ( Clock Cycle)
执行指令的一系列操作都是在时钟脉冲
CLK的统一控制下一步一步进行的,时钟脉冲的重复周期称为时钟周期,时钟周期是
CPU的时间基准,由计算机的主频决定,
8086CPU的总线周期至少由 4个时钟周期组成,分别以 T1,T2,T3和 T4表示 。
3.AD0~ AD15
在每个总线周期开始 ( T1) 时,用作地址总线的 16位 ( A15~ A0),给出内存单元 ( 或
I/O端口 ) 的地址;其它时间为数据总线,用于数据传输 。
A16/ S3~ A19 / S6,/S7
在每个总线周期开始 ( T1) 时,作地址总线的高 4位 ( A19~ A16) 和,
BHE
BHE
79
在存储器操作中为高 4位地址,在 I/O操作中,这 4位置,0”(低电平)。在总线周期的其余时间,这 4条信号线指示 CPU的状态信息。当 为低电平时,把读 /写的 8位数据与 AD15~ AD8连通。该信号与
A0(地址信号最低位)结合以决定数据字是高字节工作还是低字节工作。
BHE
二、控制总线 1 — 同工作方式有关的控制信号
1,MN/
最小 /最大方式控制线,用来控制 8086的工作方式。当 MN/ 接 +5V时,8086处于最小方式,
由 8086提供系统所需的全部控制信号,用来构成一个小型的单处理机系统。当 MN/ 接地时,
8086处于最大方式,系统的总线控制信号由专用的总线控制器 8288提供,用来构成一个多处理器或协处理器系统。
MX
MX
MX
、,译码表操作类型( CPU周期)
L L L 中断响应
L L H 读 I/O端口
L H L 写 I/O端口
L H H 暂停
H L L 取指
H L H 读存储器(数据)
H H L 写存储器
H H H 无效(无总线周期)
1S
2S 1S 0S
0S2S
2.,,— 总线周期状态信号(三态、输出)
表示 8086外部总线周期的操作类型,在最小方式下,、,三引脚分别为,和 。
为存储器 /IO控制信号 ( 输出,三态 ),
用于区分 CPU是访问存储器 ( = H),还是访问 I/O端口 ( = L) 。
2S 1S 0S
0S1S2S
IO/M
R/DT DENIO/M
IO/M
IO/M
83
为数据发送 /接收信号 ( 输出,三态 ),
用于指示 CPU是进行写操作 ( = H) 还是读操作 ( = L) 。
为数据允许信号(输出、三态),
在 CPU访问存储器或 I/O端口的总线周期的后一段时间内,该信号有效,用作系统中总线收发器的允许控制信号。
R/DT
DEN
R/DT
R/DT
3.,
请求 /允许总线访问控制信号(双向)。
在最小方式下,和 二引脚分别为
HOLD和 HLDA。 HOLD为保持请求信号(输入)。
HLDA为保持响应信号(输出),这是 CPU对 HOLD信号的响应信号。
0GT/RQ 1GT/RQ
0GT/RQ 1GT/RQ
4,QS1,QS0
指令队列状态信号(输出)。在最小方式下,
QS1,QS0二引脚分别为 ALE和 。 ALE为地址锁存允许信号(输出),为中断响应信号
(输出、三态)。
5,
总线优先权锁定信号(输出、三态)该信号用来封锁外部处理器的总线请求,当 输出低电平时,外部处理器不能控制总线,信号有效由指令 LOCK在程序中设置,在最小方式下,
引脚为 信号。
INTA
INTA
LOCK
LOCK
LOCK
LOCK
WR
三、控制总线 2 — 同工作方式无关的控制总线
─ 读控制信号(三态、输出)
READY─ 等待状态控制信号,又称准备就绪信号
(输入)。当被访问的部件无法在 8086CPU规定的时间内完成数据传送时,应由该部件向 8086CPU发出 READY= L(低电平),使 8086CPU处于等待状态,插入一个或几个等待周期 TW,当被访问的部件可以完成数据传输时,被访问的部件将使 READY
= H(高电平),8086CPU继续运行。
RD
INTR─中断请求信号(输入)
NMI─不可屏蔽中断请求信号(输入)
─等待测试控制信号(输入)
RESET─复位信号(输入)。当 RESETA为高电平时,系统处于复位状态,8086CPU停止正在运行的操作,把内部的标志寄存器 FR、段寄存器、指令指针 IP以及指令队列复位到初始化状态。注意,
代码段寄存器 CS的初始化状态为 FFFFH。
TEST
四,8086系统的二种配置
1,最小方式下的配置
2,最大方式下的配置主要部件
1,时钟发生器 8284A
⑴ 时钟信号发生器
⑵复位生成电路
⑶就绪控制电路
2,总线锁存器和总线收发器
3,总线控制器 8288
2.3.2 80X86引脚信号以 Pentium芯片为例引脚信号可分为如下几大类:
1.处理器控制信号,包括:
时钟 CLK
初始化 RESET,INIT
中断 INTR,NMI
总线仲裁 HOLK,HLDA等数字出错 FERR#,IGNNE#
Cache窥视 AHOLD,EADS#.,FLUSH#等系统管理 SMI#,SMIACT#
执行跟踪 IU,IV,IBT
FRC FRCM#,IERR
A20M#
2.总线接口信号,包括:
地址信号,A35-A3
APCHK#
BE7#-BE0#
数据信号,D63-D0
DP7-DP0
PEN#
PCHK#
BUSCHK#
总线周期控制信号:
ADS#
D/C#
W/R#
M/IO#
BRDY#
CACHE#
LOCK#
Cache控制信号:
PWT
PCD
KEN#
NA#
WB/WT#
EWBE#
总线周期定义信号
M/IO# D/C# W/R# 启动的总线周期
L L L 中断响应
L L H 停机 /暂停
L H L I/O读
L H H I/O写
H L L 读代码
H L H 保留
H H L 存储器读
H H H 存储器写在 ADS#有效时定义一个总线周期
2.3.3 80X86的时序图一,8086的时序 ( 最小方式 )
1.总线读操作
2,总线写操作
3,中断响应操作
4,总线保持与响应
5,系统复位三,80386的时序
1,80386的基本总线周期例如 80386-16MHz芯片
CLK2为 32MHz
CLK为 16MHz 时钟周期 T = 62ns
80386总线操作的最小时间单位为 T(又称总线状态 );完成数据传送的总线至少是 2T。
基本总线周期和地址流水线方式的总线周期 。
2,80386的流水线方式的总线周期