Intel系列CPU的流水线技术的发展
Intel系列CPU的流水线技术的发展
CPU(Central processing Unit),又称“微处理器(Microprocessor)”,是现代计算机的核心部件。对于PC而言,CPU的规格与频率常常被用来作为衡量一台电脑性能强弱重要指标。
在提高CPU计算能力的过程中,流水线技术对提高CPU的效率产生了显著作用,就像流水生产在汽车制造业中一样,它对处理器的发展影响深远。
Intel公司创于1968年美国,纵观IT发展史,很少能有公司能像Intel这样屹立多年仍旧保持强大生命力的。作为现今世界上最大的CPU研发和生产者,如今的Intel就像是信息时代的一根支柱,为推动信息技术的发展做出了卓越的贡献。
接下来我将以个人眼光讲述Intel公司CPU流水线技术的发展历程和相关技术方法,分为四部分。
注:第一个采用指令流水线的机器是IBM7030 as known as Stretch
一 综述Inter系列CPU芯片中采用的流水线技术的发展过程
流水线是Intel首次在486芯片中开始使用的。流水线的工作方式就象工业生产上的装配流水线。在CPU中由5—6个不同功能的电路单元组成一条指令处理流水线,然后将一条X86指令分成5—6步后再由这些电路单元分别执行,这样就能实现在一个CPU时钟周期完成一条指令,因此提高CPU的运算速度。
经典奔腾每条整数流水线都分为四级流水,即指令预取、译码、执行、写回结果,浮点流水又分为八级流水。
Intel的初次流水线引入,i486五级流水线:
1989 年推出的 i486 处理器引入了五级流水线。这时,在 CPU 中不再仅运行一条指令,每一级流水线在同一时刻都运行着不同的指令。这个设计使得 i486 比同频率的 386 处理器性能提升了不止一倍。五级流水线中的取指阶段将指令从指令缓存中取出(i486 中的指令缓存为 8KB);第二级为译码阶段,将取出的指令翻译为具体的功能操作;第三级为转址阶段,用来将内存地址和偏移进行转换;第四级为执行阶段,指令在该阶段真正执行运算;第五级为退出阶段,运算的结果被写回寄存器或者内存。由于处理器同时运行了多条指令,大大提升了程序运行的性能。
80486利用“数据旁路”解决数据相关问题。
80486利用“预取转移目标”方法,加快指令分支操作。
但是这个阶段的CPU在执行一些数据相关的指令时,会存在流水线阻塞问题。
奔腾(Pentium)处理器
1993 年 Intel 推出了奔腾(Pentium)处理器。奔腾处理器架构增加了第二条独立的超标量流水线。主流水线工作方式类似于 i486,第二条流水线则并行的运行一些较简单的指令,比如说定点算术,而且该流水线能更快的进行该运算
奔腾 Pro (Pentium Pro)处理器
1995 年 Intel 推出了奔腾 Pro (Pentium Pro)处理器。和之前的处理器相比,奔腾 Pro 采用了完全不同的设计。该处理器采用了诸多新特性以提高性能,包括乱序执行的部件以及猜测执行。流水线扩展到了 12 级,而且引入了“超标量流水线”的概念,使得许多指令可以被同时处理。。
奔腾 4 处理器
2002 年发布的奔腾 4 处理器引入了超线程技术。乱序执行部件的设计使得指令被执行的速度比处理器能够提供指令的速度更快。因此对于大部分应用,CPU 的乱序执行部件在大部分时间处于空闲状态,甚至在高负载的情况下也不能充分利用。为了让指令流能充分的流入乱序执行部件,Intel 加入了第二套前端部件(注:在处理器结构中,前端是指取指,译码,寄存器重命名等模块,经过前端部件的处理后,指令等待发射进入乱序执行部件)。虽然实际上只有一个乱序执行部件,但对于操作系统来说,它能看到两个处理器。前端部件包含两组同样功能的 X86 寄存器,两个指令译码器根据两个指令指针指向的地址分别处理。所有的指令被一个共享的乱序执行部件执行,但对应用程序来说并不知情。当乱序执行部件执行完成,像之前一样退出流水线后,最终结果返回虚拟的两个处理器。
二 总结Intel CPU发展过程中,提高流水线性能及CPU性能的方法、相关技术
80486
Intel 80486整数处理部分实现了指令流水线,属于早期流水线技术,具有代表性。
整数指令采用了5个步骤的指令流水线,每个步骤一般需要一个时钟周期:
① PF步骤——指令预取(Prefetch)
② D1步骤——指令译码1(Decode Stage 1)
③ D2步骤——指令译码2(Decode Stage 2)
④ EX步骤——指令执行(Execute)
⑤ WB步骤——回写(Write Back)
80486利用“数据旁路”解决数据相关问题,设置相关专用通路,即不等前一条指令把计算结果写回寄存器组,下一条指令不再读寄存器组,而是直接把前一条指令的ALU的计算结果作为自己的输入数据开始计算过程,使本来需要暂停的操作变得可以继续执行,书本上称作『定向技术』。
80486利用“分支预测”方法,加快指令分支操作。
但是这个阶段的CPU在执行一些数据相关的指令时,会存在流水线阻塞问题。比如先写后读。
奔腾处理器
奔腾架构增加了第二条独立的超标量流水线,两条流水线可以并行运行,而且每条流水线可以同时有多条指令在不同流水级执行。它几乎可以同时执行比 i486 多一倍的指令。
奔腾 Pro (Pentium Pro)处理器
乱序执行:处理器在一个由输入数据可用性所决定的顺序中执行指令,而不是由程序的原始数据所决定。在这种方式下,可以避免因为获取下一条程序指令所引起的处理器等待,取而代之的处理下一条可以立即执行的指令。
奔腾 Pro 的乱序执行部件拥有 6 个执行单元:两个定点处理单元,一个浮点处理单元,一个取数单元,一个存地址单元,一个存数单元。这两个定点处理单元有所不同,一个能够处理复杂定点操作,一个能同时处理两个简单操作。在理想状况下,奔腾 Pro 的乱序执行部件可以在一个时钟周期内执行 7 条微指令。
猜测执行:通过提前判读并执行有可能需要的程序指令的方式提高执行速度。
12级流水线,超标量流水线:在一个时钟周期内一条流水线可执行一条以上的指令。一条指令分为十几段指令来由不同电路单元完成。
奔腾 4 处理器
引入超线程技术:利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算,进而兼容多线程操作系统和软件,减少了CPU的闲置时间,提高CPU的计算和运行效率。
三 展望Intel CPU提高流水线性能的技术方向
提高指令并行度,重复设置器件、流水线。
提高器件利用率,规划指令的执行顺序。
提高器件执行速率。
就像目前Intel执行的Tick-Tock研发战略一样,在架构和工艺两面轮流发力。
四 课程报告学习感受
我想说的是:
在学习这些知识之前从没想到过CPU里在发生着什么事情,现在感觉到CPU就像一个奇妙的小世界,飞快的运算靠的不是magic,而是一代又一代科研和工程人员的不懈奋斗,CPU真像是一个人为创造出来的奇妙天地,凝结着人类的智慧和想象力。
我每天都在使用计算机,享受着信息化带来的丰富知识和方便,如今的计算机相比过去而言,操作简单了很多,同时功能也大大丰富了,这不禁让人感觉使用计算机是一件再简单不过的事情,我曾经也一度这样认为。
如今,终于有机会更深入地了解面前的PC里那块隐藏着的小小硅片。
摩尔定律的推动了整个社会的信息化建设,为了提高运算速率人们创造出了许多奇妙而有效地方法,在架构和工艺上双管齐下,在硬件和软件上做优化。
从单流水线到超流水线,从单核到多核,目睹了一个问题的解决竟有如此多的方案,这让我颇有感慨:面对一个问题,解决方案可能多到你想不到,一定要打开思路,不要让思想受到局限。
《计算机系统结构》虽然是一门偏向硬件的专业课,但里面蕴含的哲理和思想启迪,一定会在未来的生活和工作中给我带来启发!
参考资料:
1.80486的指令流水线 钱晓捷
http://www5.zzu.edu.cn/qwfw/wjyl/9-xntgjs/4a44c05f3f5a870e013f70e4d3f4207c.html
2.A Journey Through the CPU Pipeline
Intel系列CPU的流水线技术的发展的更多相关文章
- intel 酷睿core系列cpu的类型:U M H HQ MQ
相对于笔记本来说.一般我们说的intel系列cpu是指应用于desktop桌面版,embedded嵌入式版, mobile移动版 桌面版和移动版cpu对比 http://tieba.baidu.com ...
- Intel系列微处理器的三种工作模式
body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...
- Intel X86 CPU 系列的寻址方式
Intel X86 CPU 系列的寻址方式 数据总线和地址总线要尽量相同,这个是一个地址就是一个指针.
- 第一篇:GPU 编程技术的发展历程及现状
前言 本文通过介绍 GPU 编程技术的发展历程,让大家初步地了解 GPU 编程,走进 GPU 编程的世界. 冯诺依曼计算机架构的瓶颈 曾经,几乎所有的处理器都是以冯诺依曼计算机架构为基础的.该系统架构 ...
- 剖析CPU温度监控技术【转】
转自:http://blog.csdn.net/hunanchenxingyu/article/details/46476545 迄今为止还没有一种cpu散热系统能保证永不失效.失去了散热系统保护伞的 ...
- 剖析CPU温度监控技术
转载 :剖析CPU温度监控技术 标签: CPU 温度控制技术 1805 具体温度检测调整代码(转载) 迄今为止还没有一种cpu散热系统能保证永不失效.失去了散热系统保护伞的“芯”,往 ...
- geotrellis使用(四十一)流水线技术
前言 之前 GeoTrellis 为方便用户将数据(GeoTiff 等遥感影像)导入到 backend (包含 Accumulo.File.Hadoop 等格式)中,编写了一个 ETL 类,该类的输入 ...
- AMD和Intel的CPU对比
http://www.lotpc.com/yjzs/5825.html 推荐文章:小白看AMD与intel的cpu架构,AMD慢的原因 CPU核心的发展方向是更低的电压.更低的功耗.更先进的制造工艺. ...
- FPGA技术的发展历史和动向
本文关键字:fpga技术,fpga发展, fpga培训,FPGA应用开发入门与典型实例 一.FPGA技术的发展历史 纵观数字集成电路的发展历史,经历了从电子管.晶体管.小规模集成电路到大规模以及超大规 ...
随机推荐
- linux 配合仅主机模式
- Centos和Redhat的区别和联系
网上看到的,转载给大家 CentOS与RedHat的关系: RedHat在发行的时候,有两种方式:二进制的发行方式以及源代码的发行方式.无论是哪一种发行方式,你都可以免费获得(例如从网上下载),并再次 ...
- [转]ASP.Net篇之Session与Cookie
本文转自:http://www.cnblogs.com/japanbbq/archive/2011/08/31/2160494.html Session: Session是“会话”的意思,然而,因为h ...
- HDU 2117 取(2堆)石子游戏【wzf博弈】
题意:威佐夫博弈原型,除了输出先手能不能胜,还要输出先手的第一手选择. 思路:预处理出1000000以内的所有奇异局势.对于每个自然数,其必然是某一个奇异局势的a或者b.故对于一个非奇异局势,必定有一 ...
- NOIP2000乘积最大[序列DP]
题目描述 今年是国际数学联盟确定的“2000――世界数学年”,又恰逢我国著名数学家华罗庚先生诞辰90周年.在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋友XZ也有幸得 ...
- NOIP2002矩形覆盖[几何DFS]
题目描述 在平面上有 n 个点(n <= 50),每个点用一对整数坐标表示.例如:当 n=4 时,4个点的坐标分另为:p1(1,1),p2(2,2),p3(3,6),P4(0,7),见图一. 这 ...
- jquery添加光棒效果的各种方式以及简单动画复杂动画
过滤器.绑定事件.动画 一.基本过滤器 语法 描述 返回值 :first 选取第一个元素 单个元素 :last 选取最后一个元素 单个元素 :not(selector) 选取去除所有与给定选择器匹 ...
- Flex布局教程及属性速查
一.Flex布局介绍 伸缩盒模型(flexbox)是一个新的盒子模型,意为"弹性布局",用来为盒状模型提供最大的灵活性,主要优化了UI布局.Flexbox的功能主要包手:简单使用一 ...
- lua upvalue
转自http://blog.chinaunix.net/uid-52437-id-2108789.html Lua 中的函数是一阶类型值(first-class value),定义函数就象创建普通类型 ...
- java多线程系类:基础篇:06线程让步
本系类的知识点全部来源于http://www.cnblogs.com/skywang12345/p/3479243.html,我只是复制粘贴一下,特在此说明. 概要 本章,会对Thread中的线程让步 ...