第二章 80x86 微处理器 § 1 8086/8088 的结构

50
第第第 80x86 第第第第 § 8086/8088 第第第 8086/8088CPU 第 Intel 第第第 1978 第第第第 16 第 第第第第 第第第第第第第第 16 第 CPU 第第第 一。 第 8086CP U 第第第第第第第 16 第第 8088CPU 第第 第第第第第 8 第第第第第第第第第第第第 16 第 , 第第第 16 第第第 , 第第第第 8 第第第 第第第第 20 第 , 第第第第第第第第第 1m 第第 第第第 第第第第 8080/8085 第第 第第第第第 5mhz 第第 第第第第 第第第第第第第第第 第第第-5 V 第第

Upload: freya

Post on 18-Mar-2016

130 views

Category:

Documents


0 download

DESCRIPTION

第二章 80x86 微处理器 § 1 8086/8088 的结构 8086/8088CPU 是 Intel 公司于 1978 年推出的一种 16 位微处理器,是最早投入市场的 16 位 CPU 产品之一。其中 8086CPU 外部数据总线是 16 位的,而 8088CPU 外部数据总线是 8 位的。 主要特点如下: - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第二章    80x86 微处理器 § 1   8086/8088 的结构

第二章 80x86 微处理器§ 1 8086/8088 的结构 8086/8088CPU 是 Intel 公司于 1978 年推出的一种 16 位 微处理器,是最早投入市场的 16 位 CPU 产品之一。其 中 8086CPU 外部数据总线是 16 位的,而 8088CPU 外部 数据总线是 8 位的。 主要特点如下: 数据总线 16 位 , 能处理 16 位数据 , 也能处理 8 位数据。 地址总线 20 位 , 可寻址的地址空间为 1m 字节。 在汇编语言上与 8080/8085 兼容 时钟频率为 5mhz 具有一整套以之相配的外围接口芯片 采用单-5 V 电源

Page 2: 第二章    80x86 微处理器 § 1   8086/8088 的结构

一、 8086 功能结构 8086CPU 从功能上来说可分成两大部分,即总线接 口单元和执行单元。功能结构框图如图示。 1、总线接口单元 BIU 总线接口单元由段地址寄存器,指令指针寄存器 ,20 位的地址加法器和 6 字节的指令队列等组成。 总线接口单元负责与存贮器, I/O 端口传送数据。如 取出指令,取 / 存操作数。 2 、执行单元 EU 执行单元 EU 由 4 个通用寄存器, 4 个专用寄存器,标 志寄存器和算术逻辑单元 ALU 组成。执行单元 EU 负责指令的执行。 3、指令的执行过程

Page 3: 第二章    80x86 微处理器 § 1   8086/8088 的结构
Page 4: 第二章    80x86 微处理器 § 1   8086/8088 的结构

二、 8086 中的寄存器 1、通用寄存器 4 个 16 位寄存器 : AX,BX,CX,DX 。其中 AX 是累加器。8 个 8 位寄存器: AH,AL,BH,BL,CH,CL,DH,DL 。 2、专用寄存器 SP :堆栈指针寄存器 , 用于确定堆栈在内存中位置 BP :基数指针寄存器 , 用于寄存器间接寻址中 SI :源变址寄存器 , 用于寄存器间接寻址中 DI :目的变址寄存器 , 用于寄存器间接寻址 3 、标志寄存器

Page 5: 第二章    80x86 微处理器 § 1   8086/8088 的结构

A、状态标志 辅助进位标志AF:在字节操作中 , 低半字节向高半 字节有进位 , 则 AF=1, 否则 AF=0. 进位标志 CF : 当操作结果的最高位产生进位, 则 CF=1 ,否则 C=0 。 溢出标志 OF : 当操作结果超出了带符号数能表 达的范围,则 OF=1 ,否则 OF=0 符号标志 SF : 当操作结果为负, 则 SF=1 ,否则 SF=0 。 奇偶标志 PF : 当操作结果低 8 位中的1的个数 为偶数 , 则 PF=1 ,否则 PF=0 。 零标志 ZF : 当操作结果为零,则 ZF=1 ,否则 ZF=0 。

Page 6: 第二章    80x86 微处理器 § 1   8086/8088 的结构

B、控制标志: ( 它能由程序置位或复位,以变更 CPU的 操作 ) 方向标志 DF : DF=1, 串操作指令为自动减量指令 DF=0, 串操作指令为自动增量指令 中断允许标志 IF :当 IF=1 ,则允许中断, 当 DF=0, 则禁止中断。 追踪标志 TF : 当 TF=1, 则 CPU 进入单步方式。 CPU 每 执行一条指令后 , 便产生一个内部 中断,允许程序在每条指令执行完 后进行检查。 C、例:

Page 7: 第二章    80x86 微处理器 § 1   8086/8088 的结构

4、段地址寄存器 CS : 16 位的代码段寄存器;用来产生指令的 20 位地址 DS : 16 位的数据段寄存器;用来产生数据的 20 位地址 ES : 16 位的扩展段寄存器;用来产生数据的 20 位地址 SS : 16 位的堆栈段寄存器;用来产生 20 位的堆栈指针 5、指令指针寄存器 IP (类同于 PC) IP 用来存放下一次要取出的指令的偏移地址 指令的真正物理地址为:

CS 段寄存器内容左移 4 位+ IP 内容。 例:

Page 8: 第二章    80x86 微处理器 § 1   8086/8088 的结构

三、 8086 中存贮器与 I/O 组织 由于 8086CPU 具有1 m 字节的存贮器地址空间 (00000H~ FFFFFH) ,而其内部寄存器都是 16 位 ,显 然用寄存器不能直接对1 m 的内存空间进行寻址。为 此引入了分段概念。 1、存贮器采用分段编址 A、 8086 中物理地址的形成

Page 9: 第二章    80x86 微处理器 § 1   8086/8088 的结构

注:a . 取指令: 物理地址= CS * 16+IP b . 堆栈操作: 物理地址= SS * 16+SP c .存取操作数:物理地址= DS(ES)*16+BP(BX,SI,DI) B、采用分段编址的优点 2、数的存贮方式 通常一个基本存贮单元只能存放一个字节 (8 位 ) 数, 而 8086CPU 的基本 操作长度为一个字。为此 , 8086CPU提供了两条信号线 BHE 和 A0, 以决定是访问高 字节,还是低字节,还是整个字。BHE A0 性能 0 0 从偶地址开始访问字 1 0 从偶地址开始访问字节 访问字从奇 0 1 从奇地址开始访问字节 地址开始 1 1 无

Page 10: 第二章    80x86 微处理器 § 1   8086/8088 的结构

实际上, 1m 字节存贮器分成两个体,偶数地址单元 形成一个体,其数据线连数据总线低 8 位 , 而奇数地 址形成一个体 , 其数据线连数据总线高 8 位。 3、 I/O 编址

8086 允许有 64k个 8 位 I/O 端口,两个编号相邻的 8 位 端口可以组合成一个 16 位端口, CPU设有访问 8 位 (16 位 ) 端口的 I/O 指令。 (0UT/IN)在系统设计时,也可通过硬件将 I/O 端口和存贮器放 在一起统一编址 ,这样可以用对存贮器的访问指令来 实现对 I/O 端口的读写。

Page 11: 第二章    80x86 微处理器 § 1   8086/8088 的结构

§ 2 8086 的引脚信号与功能8086CPU 是有四十个引脚的器件 ,随使用场合不同, 可使它工作在最小模式和最大模式。当在系统中只有 8086 一个微处理器时,系统的所有 总线控制信号都直接由 8086 产生,系统较简单,此 时 8086 可连成最小模式。当在系统中除一个 8086 主处理器外 , 还有协助 8086 处理器工作的协处理器 , 如数值运算协处理器 8087 ,I/O协处理器 8089 。此时 ,8086 应连成最大模式。

一、两种模式下,通用引脚信号

Page 12: 第二章    80x86 微处理器 § 1   8086/8088 的结构

1、 AD0-15 :地址/数据线,输出,双向,三态 总线周期T 1 :输出地址 总线周期T 2-4 :输出数据 2、 A16-19/ S3-6 :地址/状态线、输出、三态 总线周期T 1 :输出地址高 4 位 总线周期 2-4 :输出状态信息 S4 S3 0 0: 当前正在使用 ES 0 1: 当前正在使用 SS 1 0: 当前正在使用 CS, 或未用任何段寄存器 1 1: 当前正在使用 DS S5: 允许中断标志位 S6: 为低 (未用 )

Page 13: 第二章    80x86 微处理器 § 1   8086/8088 的结构

3、 BHE/S7 :高 8 位数据总线允许/状态线,输出,三态 总线周期T 1 : BHE 有效,表高 8 位数据总线上的信 息有效 , 可使用。 总线周期T 2-4 :输出 S7信息, ( 在 8086 中,未被赋 于实际意义 ) 注: BHE 与 AO合起来告知连接在总线上的存贮器和接口 , 当前的数据在总线上将以何种格式出现。4、 RD :读选通信息、输出、三态、低电平有效 表示正在进行存贮器或 I/O读。5、 READY:准备就绪信息,输入,高电平有效 表示内存或 I/O设备准备就绪,马上可进行一次数据 传输。若 此信息无效 ( 为低 ), 则 CPU 在T 3 状态后自动 插入等待状态 TW,直到READY为高后,才进入T 4完成 一次数据传输。

Page 14: 第二章    80x86 微处理器 § 1   8086/8088 的结构

6、 INTR:可屏蔽中断请求信号、输入、高电平有效 NMI :非屏蔽中断信号、输入、正跳沿有效7、 TEST :测试信号输入,低电平有效 TEST信号与指令WAIT 结合起来使用,以实现 CPU和外 部硬件的同步。 CPU 执行WAIT 指令时, CPU 处于空转状 态进行等待,当 TEST 有效时,则等待结束, CPU继 续往下执行指令。8、MN/MX :最小/最大模式控制信号、输入 MN/MX=1 最小模式 MN/MX=0 最大模式

Page 15: 第二章    80x86 微处理器 § 1   8086/8088 的结构

9、 RESET :复位信号、输入、高电平有效 复位信号有效时,将对 F,IP,DS,SS,ES及指令队列清 零, CS设置为 FFFFH 。当复位信号由高变低时,CPU 将从 FFFFOH开始执行程序。 CS FFFF0H + IP OOOOH ────── FFFF0H10、 CLK:时钟信号、输入 8086 要求 CLK信号的占空比为 33% , 即 1/3周期高 ,2/3 为低。其频率为 5MHZ 。1 1 、 VCC :+ 5V 电源 GND :+ 5V 地

Page 16: 第二章    80x86 微处理器 § 1   8086/8088 的结构

二、最小模式下的专用引脚信号 1、 INTA :中断响应信号,低电平有效输出。此信号有 效可作为中断向量的读选通信号。 2、 ALE : 地址锁存允许信号输出,高电平有效 用于锁存 AD 线上的地址。 3、 DEN: 数据允许信号输出、三态、低电平有效。此 号表示 CPU 当前准备发送或接收一个数据。 用于接收和发送 AD 线上的数据。 4、 DT/R:数据发送/接收信号,输出,三态。此信号 作为数据收发方向的控制信号, DT/R为高表 数据发送,为低表数据接收。 5、M/IO :存贮器 /IO 控制信号输出。 M/IO=1 表示CPU 与 存贮器进行数据传输, M/IO=0 表示 CPU 与 I/O 设备进行数据传输。 8088 中该脚为 IO/M。

Page 17: 第二章    80x86 微处理器 § 1   8086/8088 的结构

6、WR:写信号、输出、低电平有效 7、 HOLD :总线保持请求信号、输入、高电平有效。 此信号是 CPU 之外的其他主部件要求占用总线,向 CPU 发出的请求信号。 8、 HLDA :总线保持响应信号、输出、高电平有效。 此信号表示 CPU对其他主部件的总线请求作出响应, 与此同时,所有与三态门相接的 CPU 的引脚呈现高 阻,从而让出了总线。

Page 18: 第二章    80x86 微处理器 § 1   8086/8088 的结构

三、最大模式下的专用引脚信号 1、 QS0,1 :指令队列状态信号、输出 QS0,1 两信号组合起来提供了前一个时钟周期中指令 队列的状态,以便于外部对 CPU 内部指令队列的动作 跟踪。 QS0,QS1 的代码组合所对应的含义如下表示: QS1 QS0 含义 0 0 无操作 0 1 从指令队列的第一个字节中取走代码 1 0 队列已空 1 1 除第一个字节外,还取走了后续字节 中的代码

Page 19: 第二章    80x86 微处理器 § 1   8086/8088 的结构

2、 S2~ 0 :总线周期状态信号、输出 S2~ 0信号组合起来可以指出当前总线周期中所进行 的数据传输过程的类型。在最大模式系统中的总线控 制器 8288就是利用这些状态信号来产生对存贮器和 I/O 的控制信号。 S2 、 S1 、 S0 的代码组合所对应的操 作如下表所示: S2 S1 S0 操作过程泟 0 0 0 发中断响应信号 (INTA) 0 0 1 读 I/O 端口 (IOR) 0 1 0 写 I/O 端口 (IOW) 0 1 1 暂停 1 0 0 取指令 1 0 1 读内存 (MEMR) 1 1 0 写内存 (MEMW) 1 1 1 无源状态

Page 20: 第二章    80x86 微处理器 § 1   8086/8088 的结构

3、 LOCK:总线封锁信号、输出、低电平有效。

此信号有效,表示系统中其它总线主部件不能占有总线 ,LOCK �信号由前缀指令“ LOCK”使其 有效,且 在下一条指令完成以前保持有效。 4、 RQ/GT1-0 :总线请求信号输入/总线请求允许信号 输出。

这些请求 / 允许信号是由外部总线主设备请求总线,促使 CPU 在现行总线周期结束后让出总线控制权用的。 RQ/GT0-1 每一脚为双向 ,且RQ/GT0比RQ/GT1 有 更高的优先权。四、最小/最大模式下, 8086 的典型配置

Page 21: 第二章    80x86 微处理器 § 1   8086/8088 的结构
Page 22: 第二章    80x86 微处理器 § 1   8086/8088 的结构
Page 23: 第二章    80x86 微处理器 § 1   8086/8088 的结构

从图中,我们可以看到,最大模式配置和最小模式 配置的主要差别是 : 在最大模式中,采用 8288 总线控制器来对 CPU发出的 S0-2 控制信号进行变换组合,以得到对 存贮器, I/O 的读 /写信号,得到对地址锁存器 和收发器的控制信号。 附:1、 8284 :时钟发生器。 (16脚 ) 用于提供频率稳定的 CLK信号,实现与 READY和 RES信号同步。 2、 8282 : 8 位锁存器。 (20脚 )/三态输出, 8 位单向 . 用于锁存地址。 3、 8286 : 8 位总线收发器 (20脚 )/8 位双向,三态 . 用于数据总线接口。 4、 8288 :总线控制器。 对状态进行译码,产生相应控制信号。

Page 24: 第二章    80x86 微处理器 § 1   8086/8088 的结构

§ 3 8086 的操作和时序 一、系统的复位和启动操作 8086 的复位和启动操作是通过在 RESET引脚上加复 位信号来实现的。 1、对复位信号的要求 上电复位:复位信号维持高电平时间≥ 50us 运行中复位:复位信号维持高电平时间≥ 4 个 T周期 2、复位时各内部寄存器的值 IF 清零 指令队列 空 IP 清零 其它寄存器 清零 DS.ES.SS 清零 CS FFFFH

Page 25: 第二章    80x86 微处理器 § 1   8086/8088 的结构

3、复位后的启动操作 复位信号由高电平变低时, 8086CPU将从内存的FFFF0H 处开始执行指令: CS*16+IP=FFFFH*16+0000H =FFFF0H 通常一般在 FFFF0H 处存放一条无条件转移指令,转 移到系统程序的入口处。

Page 26: 第二章    80x86 微处理器 § 1   8086/8088 的结构

二、总线周期 1、指令周期总线周期与时钟周期 A、指令周期:执行一条指令所需的时间。它由若干 个总线周期所组成 B、总线周期: CPU 通过总线与外部逻辑 ( 存贮器或外 设 )� 进行一次通信所需的时间。一个 总线周期由若干个 T� 状态组成 , 其基本 总线周期由 4 个 T 状态组成。 C、时钟周期:时钟周期又称 T 状态 , 它是 CPU 的基本 时间计量单位。它由主频决定, 8086 的主频为 5MHZ 。即一个时钟周期为 200ns。

Page 27: 第二章    80x86 微处理器 § 1   8086/8088 的结构

2、基本总线周期完成的动作 T 1 :发地址信息 ,发M/IO,ALE,DT/R,BHE T 2 :撤消地址,通过 A16-19/S3-6发总线周期状态信息 ,发RD/WR,DEN T 3 :读/写数据 通过 READY可插入TW状态 T 4 :总线周期结束 三、总线操作 1、最小方式下的总线读 A、 8086读/写周期时序图

Page 28: 第二章    80x86 微处理器 § 1   8086/8088 的结构
Page 29: 第二章    80x86 微处理器 § 1   8086/8088 的结构
Page 30: 第二章    80x86 微处理器 § 1   8086/8088 的结构

B、读/写周期时序分析 T 1 状态:M/IO 指出 CPU 是内存还是 I/O 进行读 /写 , ALE 有效指出 20 位地址有效 , BHE 有效指出高 8 位数据总线上信息可使用 DT/R有效指出数据传送方向 T 2 状态:输出状态信息 S3-6,DEN有效 , 从而获得数据 允许信号,它作为收发器的选通信号 RD 或 WR有效 . T 3 状态:读:内存或 I/O将数据送到数据总线上 写: CPU提供要写入的数据在数据总线上不变 T 4 状态:读: CPU对数据总线进行采样,从而获得数据 写: CPU认为数据已写入至存贮器或 I/O� 中 到此各控制信号和状态信息无效

Page 31: 第二章    80x86 微处理器 § 1   8086/8088 的结构

2、最大方式下的总线读/写操作最大方式下的总线读/写操作在逻辑上是和最小模式下的读/写操作一样的,在时序分析上,最大方式下要考虑 CPU 和总线控制器两者产生的信号,在 此,请同学们自学。

3、总线空操作总线接口部件不与内存或 I/O 之间传输数据的总线周 期为总线空闲周期。在空闲周期中,状态信息 S3-6 和前一个总周期是一样的,实际上总线空操作是总线接口部件对执行部件的等待。

Page 32: 第二章    80x86 微处理器 § 1   8086/8088 的结构

§ 4 从 80286到 Pentium系列 CPU 的发展 自从 1978 年推出 8086 之后, Intel 相继推出 80286 、80386 、 80486 和 Pentium 。 Intel系列的 CPU ,且采用向下兼容的策略,每一种新的 CPU都对原有的系列产品保持兼容,从而使此前的软件都能够继续运行。 微处理器的主要性能指标: 字长:指 CPU 能同时处理的数据位数。 8086/80286 字长为 16 位。 80386/80486/Pentium 字长为 32 位。 Itanium 字长为 64 位。 主频:即 CPU 的时钟频率,主频越高,运算速度越快。 8086 的主频为 5MHz 。 Pentium 主频高达 3.2GHz 。 随着 CPU 的升级,集成度越来越高、速度越来越快。在 CPU设计中采用了许多新的技术,下面将简要介绍80386 和 Pentium 的技术要点。

Page 33: 第二章    80x86 微处理器 § 1   8086/8088 的结构

一、 Intel 80386 CPU 80386 是 Intel 公司于 1985 年 10月推出的 32 位微处理 器。它在一个芯片上集成了 275000 个晶体管,采 用 32 位数据总线, 32 位地址总线,直接寻址能力达 4GB 。其时钟频率为 16MHz 。 80386CPU 采用了流水线和指令重叠执行技术、虚拟 存储技术、片内存储管理技术、存储体管理分段分 页保护技术,这些技术为在 32 位微型机实现多用户 多任务操作系统提供了有力的支持。 1 、 80386 的功能结构: 80386 的功能结构如图所示 从功能上看, 80386 由 6 个功能部件组成。 指令预取部件 IPU 指令译码部件 lDU 执行部件 EU 分段部件 SU 分页部件 PU 总线接口部件 BIU

Page 34: 第二章    80x86 微处理器 § 1   8086/8088 的结构
Page 35: 第二章    80x86 微处理器 § 1   8086/8088 的结构

2 、 80386 的内部寄存器: 80386 有 32 个寄存器,分为 8类,即:通用寄存器、段 寄存器、指令指针、标志寄存器、控制寄存器、系统 地址寄存器、排错寄存器和测试寄存器。 A 、 80386 的通用寄存器和指令指针 EIP : 通用寄存器皆由 8086/8088 、 80286 的相应 16 位寄存器 扩展成 32 位而得。 由于 80386 地址线是 32 条, 故 EIP 中存放的是下一条 要取出的指令的偏移地址。 当然,这是相对于代码段 CS 的基址的偏移量。

Page 36: 第二章    80x86 微处理器 § 1   8086/8088 的结构

B 、标志寄存器 EFLAGS : 标志寄存器是 32 位的, 80386比 8086多 4 个标志。增 加的 4 个标志位如下: IOPL 特权标志 NT 嵌套标志 VM 虚拟方式标志 RF 恢复标志 C 、 80386 的段寄存器: 段寄存器仍是 16 位。 80386 内存单元的地址仍是由段 基址和段内偏移地址组成。段内偏移地址是 32 位, 段基址也是 32 位,由各种寻址方式确定。

Page 37: 第二章    80x86 微处理器 § 1   8086/8088 的结构

3 、虚拟储存技术: A 、虚拟存储技术的最终体现是建立一个虚拟存储器。 虚拟存储器由主存储器、辅助存储器和存储管理部 件共同组建。通过管理软件,达到主存和辅存密切 配合,使整个存储系统具有接近主存的速度和接近 辅存的容量。这种技术不断改进完善.就形成了虚 拟存储系统。 B 、程序运行时, CPU 用虚拟地址即逻辑地址访问主存, 在此过程中,先通过硬件和软件找出逻辑地址到物 理地址之间的对应关系,判断要访问单元的内容是 否已装入主存,如是,则直接访问,否则,存储器 管理软件和相应硬件会将要访问的单元及有关数据 块从辅存调入主存,覆盖掉主存中原有的一部分数 据,并且将虚拟地址变为物理地址。 C 、这种机制解决了存储器的大容量和低成本之间的矛 盾。有了虚拟存储器,用户程序不再受到主存容量 的限制。

Page 38: 第二章    80x86 微处理器 § 1   8086/8088 的结构

4 、流水线技术: A 、指令流水线: 指令流水线由总线接口部件、指令预取部件、指令 译码部件和执行部件构成。 a、指令预取部件将存储器中的指令按顺序取到长度为 16B 的预取指令队列中。只要指令队列向指令译码部 件输送一条指令,从而使指令队列有部分空字节 时,指令预取部件就会向总线接口部件发出总线请 求,从存储器取指令填充到指令预取队列中。 b、指令译码部件中除了指令译码器外,还有译码指令 队列,此队列能容纳 3 条译好码的指令。只要译码指 令队列有剩余空间,译码部件就会从指令预取队列 取下一条指令进行译码。 c 、在指令流水线设计中,将访问存储器的一条指令和 执行前一条指令重叠起来,有效地提高了指令执行 速度。

Page 39: 第二章    80x86 微处理器 § 1   8086/8088 的结构

B 、地址流水线: a、逻辑地址、线性地址和物理地址作 逻辑地址是程序员所看到的地址,也叫虚拟地址。 逻辑地址由 16 位的选择子和 32 位的偏移量指出,选 择子对应于一个段基地址,它指向一个逻辑地址空 间,偏移量(有效地址)则指向此逻辑空间中的一 个字节。 80386 的每个任务最多可拥有 16384(2l4B) 个段,每 段可长达 4GB( 即 232B) ,所以,一个任务的逻辑地址 空间可达 64TB( 即 246 B) 。 分段部件将包含选择子和偏移量的逻辑地址转换为 32 位线性地址,其空间的寻址能力也是 32 位。 分页部件将线性地址转换为物理地址,物理地址和 芯片引脚上的地址信号相对应,指出存储单元在存 储体中的具体位置。

Page 40: 第二章    80x86 微处理器 § 1   8086/8088 的结构

b、地址流水线就是由分段部件、分页部件和总线接口 部件组成的。 c、在 80386 的程序中,一个偏移量可能由立即数和另外 一两个寄存器给出的值构成,分段部件把各地址分 量送到一个加法器中,形成有效地址,然后,再经 过另一个加法器和段基址相加,得到线性地址,同 时还要通过一个 32 位的减法器和段的界限值比较, 检查是否越界。接着,分段部件把线性地址送到分 页部件,由分页部件将线性地址转换为物理地址, 并且负责向总线接口部件请求总线服务。 d、在 80386 中,地址流水线技术具体体现在有效地址的 形成、逻辑地址往线性地址的转换、线性地址往物 理地址的转换这三个动作的重叠进行,通常,当前 一个操作还在总线上进行时,下一个物理地址就已 经算好了。

Page 41: 第二章    80x86 微处理器 § 1   8086/8088 的结构

二、 Pentium CPU 1993 年 3月 Intel 公司推出了 64 位 Pentium CPU ,中文 名为“奔腾”。它在一个芯片上集成了 310万个晶体 管,采用 32 位数据总线(外部数据总线为 64 位), 36 位地址总线,直接寻址能力达 64GB 。其时钟频率 为 66-200MHZ 。 Pentium CPU 采用了 CISC 和RISC 相结合的技术、超标 量流水线技术、分支预测技术,并且设置了独立的 指令 Cache 和数据 Cache ,从而使CPU 的性能得到了进 一步提高。 1 、内部功能结构: Pentium 的结构框图如图示。从功能上看, Pentium 由 10 个功能部件组成: 总线接口部件, U流水线和 V流水线,指令 Cache ,数 据 Cache ,指令预取部件,指令译码器,浮点处理部 件 FPU ,分支目标缓冲器 BTB ,控制ROM,寄存器组。

Page 42: 第二章    80x86 微处理器 § 1   8086/8088 的结构
Page 43: 第二章    80x86 微处理器 § 1   8086/8088 的结构

2 、 CISC 和 RISC 相结合的技术: CISC 和 RISC 相结合的技术是指复杂指令集计算机技 术和简化指令集计算机技术。 Intel 公司在 Pentium 之前的 CPU均属于 CISC体系,从 Pentium开始,将 CISC 和 RISC 结合。 Pentium 的大多数指令是简化指 令,但仍然保留了一部分复杂指令,而对这部分指 令采用硬件来实现, Pentium吸取了两者之长。 3 、超标量流水线技术: 所谓超标量,就是一个处理器中有多条指令流水 线。在 Pentium 中,采用 U 和 V 两条流水线,每条流水 线均含有独立的 ALU 地址生成电路和连接数据 Cache 的接口,由此可通过各自的接口对 Cache 存取数据, 这称为 Cache双端接口。双端接口使 Pentium 具有更 高的速度。超标量流水线机制使得 Pentium 能够对应 一个时钟周期执行两条整数运算指令,这样,比相 同频率的前一代 CPU实际速度提高一倍。

Page 44: 第二章    80x86 微处理器 § 1   8086/8088 的结构

4 、分支预测技术: Pentium提供了一个称为分支目标缓冲器 BTB 的小型 Cache 来动态地预测程序的分支操作。当某条指令导 致程序分支时, BTB记下该条指令和分支目标的地 址,并用这些信息预测该条指令再次产生分支时的 路径,预先从该处预取,保证流水线的指令预取步 骤不会空置。这一机构的设置,可以减少每次在循 环操作时,对循环条件的判断所占用的 CPU 的时间。 5 、增强型浮点运算器 FPU : 在 FPU 中,采用快速硬件来实现浮点加、乘、除运 算,使其浮点运算速度比前一代 CPU快三倍以上。 6 、独立的指令 Cache 和数据 Cache : Cache 是指速度非常高、容量较小的存储器。 Cache技术通过一种映像机制,使 CPU 在运行程序 时,将原先需要访问主存储器的操作大部分转换为 访问高速 Cache 的操作,有效减少了 CPU访问相对速 度较低的主存储器的次数,因此提高了速度。

Page 45: 第二章    80x86 微处理器 § 1   8086/8088 的结构

三、 Pentium系列微处理器的技术发展 在 1993 年推出 Pentium 以后, Intel又相继推出 PentiumⅡ、 PentiumⅢ和 PentiumⅣ。在此过程中, CPU 的集成度和主频不断提高,其 PentiumⅣ内部含 有 4 200万个晶体管时钟频率高达 3.06GHz 。 PentiumⅣ采用如下一系列新技术来面向网络功能和 图像功能。 1 、超级流水线技术: 将指令流水线划分为 20级,指令流水线的级数越 多,会使每级的执行过程越简单,每一步可以更 快完成,对应电路结构也更简化。这样,有利于提 高时钟频率。 2 、跟踪性指令 Cache技术: 这种技术将指令 Cache 和数据 Cache彻底分开,并且 只把数据 Cache 作为一级 Cache 。将指令 Cache 作为二 级 Cache ,并采用一种跟踪性机制,在分支预测出错 时,由于是跟踪性的,所以,可很快从指令 Cache 取 指重建指令流水线。

Page 46: 第二章    80x86 微处理器 § 1   8086/8088 的结构

3 、采用双沿指令快速执行机制: PentiumⅣ采用时钟缓 冲电路,使 ALU-在时钟的上升沿和下降沿都可进行 运算,即采用双沿机制,从而对应半个时钟周期就 可以完成一次算术运算,使总体运算速度显著高。 4 、能执行 SSE2 指令集: SSE2 指令集含 144 条指令,在 SSE 指令集基础上进一步提升了多媒体性能。 四、 Itanium 微处理器概述 Itanium 是 Intel 公司推出的具有超强处理能力的微 处理器,其数据总线为 64 位,地址总线也为 64 位。 Itanium 在 Pentium 基础上又引入了多个新技术,从 各方面提高了性能,综合起来有如下几方面。 1 、可拥有三级 Cache : ItaniumⅠ片内含二级 Cache ,一级 Cache包括 16KB 的 指令 Cache 和 16KB 的数据 Cache ,二级 Cache 容量为 96KB ,此外,还可外接 4MB 的三级 Cache 。 ItaniumⅡ则把 3MB 的三级 Cache 也容纳在片内。

Page 47: 第二章    80x86 微处理器 § 1   8086/8088 的结构

2 、多个执行部件和多个通道: Itanium将指令流水线分为 10级,从而可同时执行 6 条指令,此外 , 内部有 4 个整数执行部件 ALU 和 4 个浮 点执行部件 FMAC ,并有 9 个功能通道,这使 Itanium 在 1 个时钟周期中的峰值能力达到可执行 20 个操作, 从而特别适用于密集型浮点运算和三维图形处理。 3 、数量众多的寄存器: 内部含有 128 个通用寄存器 ,128 个浮点寄存器和 64 个 属性寄存器。众多寄存器使在峰值操作状态也能保 证内部寄存器充足够用,从而减少了等待与传输, 提高了效率,并且适用于多任务操作。 4 、采用完全并行指令计算 EPIC技术: EPIC技术的特点是指令的长度长,指令功能复杂, 指令中除了包含操作码以及和操作数据有关的信息 外,还包含并行执行的方法等信息。在运行程序 时,由编译器在编译过程中将程序编译成几组机器 代码,并进行分组和打包,多条指令打成一个包。 几组指令并行地在不同的执行部件中执行。

Page 48: 第二章    80x86 微处理器 § 1   8086/8088 的结构

5 、采用新机制的分支预测技术: Itanium 通过编译软件预先将分支结构的程序段分成 几个指令序列,然后利用 Itanium本身具有的很强的 并行处理能力同时执行这些指令序列,执行之后, 再舍弃其中的一部分,这样,所有的流水线分支总 是不会停顿和反复,客观上起到了消除分支预测出 错的效果。

Page 49: 第二章    80x86 微处理器 § 1   8086/8088 的结构

小 结 一、 CPU 结构 1 、通用寄存器: AX,BX,CX,DX/AH,AL,BH,BL,CH, CL,DH,DL 专用寄存器: SP,BP,SI,DI 。 标志寄存器: F,(AF,CF,OF,SF,PF,ZF//DF,IF,TF,) 段地址寄存器: CS,DS,ES,SS 指针寄存器: IP 2 、一个 20 位的物理地址可表示成段地址:偏移地址, 其计算方法如下: 物理地址= ( 段地址 X10H )+偏移地址

Page 50: 第二章    80x86 微处理器 § 1   8086/8088 的结构

3 、一个程序可包括四个段 代码段:包括可执行的指令 堆栈段:包括一个后进先出的数据区,用它保存返 回地址,数据及寄存器内容。 数据段:是程序的数据区。 附加段:也是一个数据区。它通常和数据段定义在 同一存贮区。 4 、字数据在存贮器中存放的顺序: 高地址字节存放高 8 位 低地址字节存放低 8 位 5 、存贮器分为两个体,即偶体, ( 低 8 位数据 ) 与奇体 ( 高 8 位据数 ) 。 8086 允许有 64k个 8 位 I/O 端口