流水线

流水线技术是一种将每条指令分解为多步,并让各步操作重叠,从而实现几条指令并行处理的技术。程序中的指令仍是一条条顺序执行,但可以预先取若干条指令,并在当前指令尚未执行完时,提前启动后续指令的另一些操作步骤。这样显然可加速一段程序的运行过程。 
市场上推出的各种不同的1 6位/ 3 2位微处理器基本上都采用了流水线技术。如8 0 4 8 6和P e n t i u m均使用了6步流水线结构,流水线的6步为: 
( 1 ) 取指令。C P U从高速缓存或内存中取一条指令。 
( 2 ) 指令译码。分析指令性质。 
( 3 ) 地址生成。很多指令要访问存储器中的操作数,操作数的地址也许在指令字中,也许要经过某些运算得到。 
( 4 ) 取操作数。当指令需要操作数时,就需再访问存储器,对操作数寻址并读出。 
( 5 ) 执行指令。由A L U执行指令规定的操作。 
( 6 ) 存储或"写回"结果。最后运算结果存放至某一内存单元或写回累加器A。 
       在理想情况下,每步需要一个时钟周期。当流水线完全装满时,每个时钟周期平均有一条指令从流水线上执行完毕,输出结果,就像轿车从组装线上开出来一样。P e n t i u m、Pentium Pro和Pentium II处理器的超标量设计更是分别结合了两条和三条独立的指令流水线,每条流水线平均在一个时钟周期内执行一条指令,所以它们平均一个时钟周期分别可执行2条和3条指令。 
     流水线技术是通过增加计算机硬件来实现的。例如要能预取指令,就需要增加取指令的硬件电路,并把取来的指令存放到指令队列缓存器中,使M P U能同时进行取指令和分析、执行指令的操作。因此,在1 6位/3 2位微处理器中一般含有两个算术逻辑单元A L U,一个主A L U用于执行指令,另一个A L U专用于地址生成,这样才可使地址计算与其它操作重叠进行。

超流水线

超级流水线以增加流水线级数的方法来缩短机器周期,相同的时间内超级流水线执行了更多的机器指令。采用简单指令以加快执行速度是所有流水线的共同特点,但超级流水线配置了多个功能部件和指令译码电路,采用多条流水线并行处理,还有多个寄存器端口和总线,可以同时执行多个操作,因此比普通流水线执行的更快,在一个机器周期内可以流出多条指令。

一般而言,CPU执行一条指令需要经过以下阶段:取指->译码->地址生成->取操作数->执行->写回,每个阶段都要消耗一个时钟周期,同时每个阶段的计算结果在周期结束以前都要发送到阶段之间的锁存器上,以供下一个阶段使用。所以,每个时钟周期所消耗的时间就是由以上几个阶段中的耗时最长的那个决定的。假设耗时最长的阶段耗时为s秒,那么时钟频率就只能设计到1/s赫兹(这里不考虑阶段间信号传递的时间和锁存器的反应时间)。

那么,要提高时钟频率,一种可能的方法就是减小每个阶段的时间消耗。其中一种最简单的办法,就是将每个阶段再进行细分成更小的步骤,同样是细分后的每个阶 段,单个阶段的运算量小了,单位耗时s也就减少,这样实际上就是提高了时钟频率。这种将标准流水线细分的技术,就是超级流水线技术。当然,流水线和超级流 水线之间并没有很明显的区别。这样的技术,虽然提高了CPU的主频,但是也带来了很大的副作用:

首先,细分后的每一个阶段都要在其后使用锁存器锁存,因此将一个阶段细分为N的子阶段并不能让单位时间减少到s/N, 而是s/N + d, 其中d为锁存器的反应时间。这实际上就是增加了多余的时间消耗。

其次,随着流水线级数的加深,一旦分支预测出现错误,会导致CPU中大量的指令作废,这样的消耗是十分巨大的。

以上原因,也就是什么Pentium IV具有31级的流水线,指令的执行效率却赶不上只有14级流水线的Pentium M

超标量
  超标量(superscalar)是指在CPU中有一条以上的流水线,并且每时钟周期内可以完成一条以上的指令,这种设计就叫超标量技术。 其实质是以空间换取时间。而超流水线是通过细化流水、提高主频,使得在一个机器周期内完成一个甚至多个操作,其实质是以时间换取空间。

流水线、超流水线、超标量技术对比相关推荐

  1. Linux网络报文捕获/抓包技术对比:napi、libpcap、afpacket、PF_RING、PACKET_MMAP、DPDK、XDP(eXpress Data Path)

    Table of Contents 1.传统linux网络协议栈流程和性能分析 协议栈的主要问题 针对单个数据包级别的资源分配和释放 流量的串行访问 从驱动到用户态的数据拷贝 内核到用户空间的上下文切 ...

  2. 去中心化存储项目终极指南 | Filecoin, Storj 和 PPIO 项目技术对比(上)

    去中心化存储项目终极指南 | Filecoin, Storj 和 PPIO 项目技术对比(上) > 价值定位 > 技术层次架构 > 服务质量(QoS) > 去中心化 > ...

  3. 结构光、双目、ToF——三种3D技术对比

    本文虽然命名为对比文档,但是对比意义不是特别强烈的内容仍不在少数--如三种3D技术的误差等部分--换言之,本文旨在通过对比的形式对三种3D技术的特点和特性进行总结.资料主要来自于网络,部分相关参考文献 ...

  4. 蓝牙与UWB的技术对比

    一.蓝牙 自1995年蓝牙技术诞生经过多次技术变迁,直至蓝牙5.1协议的推出后,蓝牙定位开始在大众视野中引发众多关注.利用AOA.AOD算法大幅提升蓝牙在室内定位空间的可用性,细数蓝牙技术优势,主要存 ...

  5. 5G与WiFi6空口技术对比

    一.两种无线通信 1.移动通信 移动通信从90年代GSM开始,到2G.3G.4G以及5G,是三大运营商在城市中布了一个大家都可以共享的无线网络. 到2018年,移动通信网已经有80亿以上用户,而每年新 ...

  6. 华为虚拟化CSS与H3C虚拟化 IRF2技术对比

    华为CSS与H3C IRF2技术对比 一.华为CSS技术介绍 CSS是Cluster Switch System的简称,又被称为集群交换机系统(简称为CSS或集群).是将几台交换机通过专用的集群线缆链 ...

  7. 开源架构Fabric、FISCO BCOS(以下简称“BCOS”)、CITA 技术对比

    转自 https://www.coingogo.com/news/41300 联盟链技术哪家强?开源架构Fabric.FISCO BCOS(以下简称"BCOS").CITA 技术对 ...

  8. nb信号和4g信号_三大运营商NB—IoT技术对比

    龙源期刊网 http://www.qikan.com.cn 三大运营商 NB - IoT 技术对比 作者:通信世界网 来源:<物联网技术> 2018 年第 02 期 摘 要: NB-IoT ...

  9. 常见室内定位技术对比,你了解吗?

    常见室内定位技术对比,你了解吗? 1      室内定位技术对比 定位技术 定位精度 可靠性 成本 安全性 蓝牙 3m 中 高 中 红外线 5m 低 高 高 射频技术 5m 中 低 中 WIFI 3m ...

最新文章

  1. 判断设备网络状态_生成树RSTP,快速生成树协议,交换网络必用的破环协议,面试必备...
  2. Vue项目如何提高效率?大厂2大实践总结告诉你
  3. Oracle查看对象依赖关系
  4. LeetCode 873. 最长的斐波那契子序列的长度(动态规划)
  5. 快讯:Oracle 发布了传闻已久的 18.3 RPM 安装版本
  6. 空间异常即刻诊断,华为云数据管理服务DAS又出新招~
  7. python 常用字符串 列表元祖字典都 自带的函数方法
  8. leetcode934.ShortestBridge
  9. 媒体管理工具Media Encoder 2022 for Mac
  10. harmonyos鸿蒙,HarmonyOS鸿蒙入门篇
  11. 【imessage软件群推送】 “CMCC“ | grep password #待补充 重置后撤销暂存的变更
  12. HFSS(ANSYS Electronics)仿真2.45GHz矩形微带天线
  13. Exadata通过ILOM远程MOUNT ISO实现刷机Reimage
  14. Pojo、Po、Vo、Dto的含义
  15. 记录一下自己用STM32完整开发一台双模机械键盘的过程(附代码和原理图)
  16. 授人以鱼:教你找电影
  17. 深入解析设置磁盘写保护
  18. mysql查询表_mysql数据库表的查询操作-总结
  19. TMS320f28335实现步进电机的驱动程序及原理分析
  20. Windows远程桌面连接后被连接的桌面锁屏

热门文章

  1. webpack学习1-打包
  2. 强制浏览器使用兼容模式,Web.config,httpProtocol
  3. 详解spl_autoload_register()函数
  4. [Python图像识别] 四十八.Pytorch构建Faster-RCNN模型实现小麦目标检测
  5. [Python图像处理] 二十一.图像金字塔之图像向下取样和向上取样
  6. 基于VSM的命名实体识别、歧义消解和指代消解
  7. HarmonyOS之系统设置项的查询和使用
  8. Metal之基本简介及常用组件说明
  9. LeetCode Algorithm 240. 搜索二维矩阵 II
  10. 99. Recover Binary Search Tree 恢复二叉搜索树