微处理器体系结构的最新发展——从pentium开始的旅程引言在人类

上传人:kms****20 文档编号:40581843 上传时间:2018-05-26 格式:DOC 页数:29 大小:61.50KB
返回 下载 相关 举报
微处理器体系结构的最新发展——从pentium开始的旅程引言在人类_第1页
第1页 / 共29页
微处理器体系结构的最新发展——从pentium开始的旅程引言在人类_第2页
第2页 / 共29页
微处理器体系结构的最新发展——从pentium开始的旅程引言在人类_第3页
第3页 / 共29页
微处理器体系结构的最新发展——从pentium开始的旅程引言在人类_第4页
第4页 / 共29页
微处理器体系结构的最新发展——从pentium开始的旅程引言在人类_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《微处理器体系结构的最新发展——从pentium开始的旅程引言在人类》由会员分享,可在线阅读,更多相关《微处理器体系结构的最新发展——从pentium开始的旅程引言在人类(29页珍藏版)》请在金锄头文库上搜索。

1、微处理器体系结构的最新发展微处理器体系结构的最新发展从从 PentiumPentium 开始的旅程引言在人开始的旅程引言在人类类本人精心整理的文档,文档来自网络本人仅收藏整理如有错误还请自己查证!微处理器体系结构的最新发展从 Pentium 开始的旅程引言在人类不断创建更强大的 PC 的过程中英特尔公司的 Pentium CPU 的产生是一个重要的里程碑该处理器的高性能归功于其超标量体系结构、整数流水线以及强大的片上浮点单元本章从 Pentium 问世时 PC 和工作站领域的状况开始讨论这将帮助读者理解从 Pentium 开始的高级微处理器的发展进程当 80386/486 引领 PC 世界的时

2、候一批基于 RISC 的在速度和图像处理等方面具有更高性能的工作站处理器已经在市场中出现比如SUN 公司的工作频率为 50MHz 的 microSPARC 处理器或者 DEC 公司的100MHz 的 Alpha AXP 系列等因此基于 RISC 体系结构的工作站处理器相比基于 386 或 486 CPU 开发的PC 而言具有一定的优势RISC 体系结构的一些天然优势归功于其采用了精简的指令、精简的寻址模式和简单的指令译码器RISC 体系结构之所以强大也缘于其大量流水线(并行技术)的采用并与其他体系结构技术相结合例如,寄存器窗口技术等当我们比较基于 CISC 的 PC 和基于 RISC 系统的体

3、系结构时可以得出很多重要结论除了寻址模式和指令集的复杂性之外传统 CISC CPU如 386 或 486 等没有充分利用并行技术(流水线技术)也是导致其比基于 RISC 的 CPU 速度更慢的原因独立数学协处理器的加入可能是早期 CPU 的主要性能瓶颈之一和 8086 搭档的数学协处理器 8087每当遇到一条浮点指令就会执行它这些数学协处理器的体系结构已经从 8087 逐步演变到 80387也就是 80386 的搭档处理器有趣的是80386 和 80387 间指令和数据的传输是通过 I/O 握手的模式进行的80386 需要大约 15 个时钟周期来执行和 80387 的 I/O 握手操作并执行一

4、些必要的内部管理性操作因此尽管这些数学协处理器的操作速度已经提高了但是整体浮点运算性能还是没有特别明显的提高这就是为什么在设计 80486 CPU 的时候将数学协处理器集成到片内的原因了80486 只需要大概 4 个时钟周期将浮点运算移交给浮点单元来执行因此得到了更好的浮点运算性能协处理器体系结构的另一个缺陷在于 8087/387 甚至 80487 CPU 只能使用很少的内部寄存器只有 8 个因而这些寄存器在大部分情况下用作堆栈寄存器而很少能用作数值寄存器从而限制了处理器的速度但是也有一些其他厂商开发的数学协处理器(如 Weitek 数学协处理器)可以在单个时钟周期内执行单精度浮点运算在两个时

5、钟周期内执行双精度浮点运算这些数学协处理器包含更多内部寄存器因而能够更多地当作数值寄存器来使用我们讲这么多主要想表达的意思就是浮点操作的存在确实是 286、386 或者 486 这样的处理器的主要性能瓶颈所在在了解这些情况的基础上下面将要给出 Pentium 处理器的体系结构它的出现对于缩小基于 CISC 的低端 PC 和基于 RISC 的高端工作站之间的性能差距而言是一个非常具有挑战性的尝试11.1 80586(Pentium)的显著特征在开篇引言部分我们已经说明了 Pentium 的设计者头脑中有两个非常明确的理念(1) 需要设计具有增强复杂指令集的 CPU必须和早期 x86 CPU(从

6、8086 到 80486)保持二进制代码兼容(2) 需要获取和第三代 RISC 处理器相匹配的性能在设计 Pentium CPU 的时候这两个要求都得到了最大限度的满足因此 Pentium 设计者也就在保持早期 x86 CPU 支持的复杂指令集风格的同时在设计时加入了大量具有 RISC 特征的技术Pentium 的一个显著特征是它的超标量、超流水体系结构它有两条整数流水线 U 和 V每条流水线都是 5 级流水的这在很大程度上提高了 Pentium 处理器整数算术运算的速度除此之外它还有一个片上浮点单元和 80386/486 处理器的浮点处理性能相比Pentium 处理器的浮点处理性能有了很大的

7、提高Pentium 处理器的另一个特征是它包含两个独立的 Cache即数据 Cache 和指令 Cache而 80486 包含的是一个混合的数据/指令 CachePentium 处理器的这些特征在本章的剩余部分都将进行详细的介绍在介绍 Pentium 体系结构之前必须先介绍一些高级的体系结构概念这将帮助读者更好地理解诸如 Pentium 处理器之类的高级 CPU 的超标量流水体系结构11.2 计算机体系结构的一些相关概念在设计现代计算机体系结构的时候一个非常关键的问题就是:如何保证系统的最大吞吐量在获取最大吞吐量方面我们已经运用了各种不同的高级体系结构技术在此我们只对其中一部分技术进行讨论迄今

8、为止在讨论英特尔公司的 CPU 体系结构的时候从 8086 到 80486我们发现每个周期只能发送一条指令这显然使译码和执行过程变得很慢为了提高处理器性能使每个周期发射多条指令计算机体系结构设计者采用了多指令发送(Multiple Instruction IssueMII)技术因此能够在每个周期发出多条指令的微处理器被称为 MII 微处理器显然为了在每个周期执行多条指令微处理器必须具备多条执行通路从而导致了两个问题即:如何发射多条指令;如何并发执行它们带着这两个问题MII 体系结构再次被分为两类一类是超长指令字(VLIW)体系结构一类是超标量体系结构在 VLIW 处理器中编译器重新组织从存储器

9、顺序读取的代码流将其变成固定宽度的指令组每次并行发送一个指令组并进行执行而在超标量体系结构中则由硬件在运行期间动态决定哪些指令会并行发送Pentium CPU 基于超标量体系结构在 Pentium 这样的超标量体系结构中硬件变得非常复杂因为在这样的处理器中每个周期必须有多条指令发送到执行单元中这里涉及到的另一个比较重要的概念就是流水在 80486 CPU 中我们已经解释了进行整数算术运算的流水体系结构其实从 8086 开始在英特尔公司的所有处理器中都多多少少地实现了流水比如指令预取并存储到一个队列中也是一种流水的概念在了解这些情况之后下面对 Pentium 体系结构进行介绍11.3 系统体系结

10、构图 11-1 给出了 Pentium 处理器的模块图显示了其整体结构下面将对其重要特征进行详细讲述图 11-1 Pentium CPU 体系结构11.3.1 超标量执行在前一节已经介绍过了Pentium 处理器的一个显著特征就是它支持超标量体系结构为了同时执行多条指令Pentium 处理器同时发送两条指令到两个独立的整数流水线即 U 流水线和 V 流水线中这两条流水线都是 5 级流水线如图 11-2 所示这两条流水线和 80486 CPU 中的流水线非常相似其功能简单介绍如下图 11-2 超标量结构(1) 在流水线的预取段CPU 从指令 Cache 中取指在该段CPU 也将代码进行合理对齐这

11、样做主要是因为指令的长度不一致而每条指令的第一个操作码字节必须对齐在预取段之后是两个代码段 D1 和 D2(2) 在流水线的 D1 段CPU 对指令进行译码并产生控制字对于简单的 RISC 指令而言比如涉及到寄存器数据传输或者算术逻辑运算的指令单个控制字就足够启动指令的执行了但是X86 体系结构支持复杂的 CISC 指令因此需要一个微码控制序列才能够正确执行指令(3) 需要第二个译码段 D2用于对 D1 流水段产生的控制字进行再次译码同时CPU 也在该段产生数据存储器访问的地址(4) 在执行段也就是 E 段CPU 要么访问数据 Cache;要么由执行单元进行算术/逻辑运算或浮点运算(5) 在

12、5 级流水线的最后一级即 WB(写回)段上依据执行结果CPU 会对寄存器的内容或者标志寄存器中的状态位进行更新尽管如我们所说Pentium 流水线结构和 80486 流水线结构多少有些相似但是 Pentium 还在每一个流水段上集成了附加的硬件因而速度比 80486 快许多这样一来80486 也许需要 2 个时钟周期才能完成一些指令的译码而 Pentium 则只需要 1 个时钟周期11.3.2 分离的指令 Cache 和数据 Cache和 80486 微处理器的 8KB 混合指令/数据 Cache 不同Pentium 处理器包含两个分离的 8KB 大小的 Cache分别为指令 Cache 和数

13、据 Cache从 Cache 操作的基本原理来看诸如 80486 所具有的混合 Cache比两个分离的 Cache 通常都具有更高的命中率那为什么 Pentium 会采取两个独立的 Cache 这样的方式呢?这可能是为了支持超标量的体系结构因而需要更高的带宽而这是统一 Cache 难以提供的更进一步为了有效执行分支指令(将在本节稍后讲述)采用分离的 Cache 更为有效11.3.3 浮点单元在引言部分我们已经提到了为了减少通信开销不能再采用 80486 CPU 所实现的协处理器方式80486 CPU 包含一个非流水的浮点单元(FPU)Pentium 的 FPU 则包含 8 级流水线流水线的前

14、5 段和 U、V 整数流水线的功能一模一样在取操作数段FPU 从浮点寄存器文件或者数据 Cache 中取来操作数在 FPU 中一共有 8 个通用浮点寄存器在 Pentium 微处理器中和 80486 不同的是它具有两个执行段即第一级执行段(X1 段)和第二级执行段(X2 级)在这两个段中浮点单元从数据 Cache 中读取数据并执行浮点运算在流水线的写回段FPU 将结果写入浮点寄存器文件在 FPU 中有一个额外的错误报告段用于报告内部状态(包括错误)信息浮点单元根据这些信息进行一些额外的操作从而保证完全执行完一个浮点运算浮点单元的结构如图 11-3 所示该单元可以大致分为 5 个模块用于执行 5

15、 种不同的浮点操作下面进行简单描述图 11-3 浮点单元模块的组织(1) 浮点加法模块(FADD) 该模块负责浮点数据的加法运算执行的浮点指令包括加法、减法和比较该模块在流水线的 X1 段和 X2 段保持有效对单精度、双精度和扩展精度数据进行操作(2) 浮点乘法模块(FAND) 该模块执行单精度、双精度和扩展精度数据的浮点乘法运算(3) 浮点除法模块(FDD) 该模块执行浮点除法和平方根指令每个周期计算 2 位商在流水线的 X1 段和 X2 段进行操作(4) 浮点指数模块(FEXP) 该模块计算浮点指数这是一个非常重要的模块它和其他所有浮点模块进行交互在浮点运算的最后一个阶段对尾数和指数进行必

16、要的调整(5) 浮点舍入模块(FRD) 浮点加法或除法运算的结果可能需要在写回到浮点寄存器之前进行舍入处理该模块在写回段之前执行舍入操作11.3.4 浮点操作异常和执行整数算术运算一样Pentium 微处理器可能产生 5 种浮点运算异常分别是:除 0 异常、上溢、下溢、非规格化操作数和非法操作这些异常的意义和往常理解的一样并无特殊之处除 0 异常、非法操作异常和非规格化操作数异常在实际浮点运算之前通过简单的手段就可以检查出来Pentium 微处理器中实现了一个称为安全指令识别(Safe Instruction RecognitionSIR)的机制该机制用于确定一个浮点操作是否在执行的时候不会产生任何异常如果一条指令能够毫无异常地执行完毕那么就允许该指令继续执行直到完成如果一条浮点指令并不安全流水线会在产生异常之后停顿 3 个周期11.4 分支预测在 x86 指令集的所有指令中分支指令出现的频率适中(平均 15%25%)在 Pentium 系统中这些指令会改变程序的正常控制流顺序同时暂停流水操作分支指令进一步又可以分为两类:条件分支和无条件分

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号