本文转载自:https://blog.csdn.net/qq_32092885/article/details/83349275

流水线

流水线技术是一种将每条指令分解为多步,并让各步操作重叠,从而实现几条指令并行处理的技术。程序中的指令仍是一条条顺序执行,但可以预先取若干条指令,并在当前指令尚未执行完时,提前启动后续指令的另一些操作步骤。这样显然可加速一段程序的运行过程。 
市场上推出的各种不同的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中有一条以上的流水线,并且每时钟周期内可以完成一条以上的指令,这种设计就叫超标量技术。 其实质是以空间换取时间。而超流水线是通过细化流水、提高主频,使得在一个机器周期内完成一个甚至多个操作,其实质是以时间换取空间。

将一条指令分成若干个周期处理以达到多条指令重叠处理,从而提高cpu部件利用率的技术叫做标量流水技术。超级标量是指cpu内一般能有多条流水线,这些流水线能够并行处理。在单流水线结构中,指令虽然能够重叠执行,但仍然是顺序的,每个周期只能发射(issue)或退休(retire)一条指令。超级标量结构的cpu支持指令级并行,每个周期可以发射多条指令(2-4条居多)。可以使得cpu的IPC(InstructionPerClock)>,从而提高cpu处理速度。超级标量机能同时对若干条指令进行译码,将可以并行执行的指令送往不同的执行部件,在程序运行期间,由硬件(通常是状态记录部件和调度部件)来完成指令调度。超级标量机主要是借助硬件资源重复(例如有两套译码器和ALU等)来实现空间的并行操作。熟知的pentium系列(可能是p-II开始),还有SUNSPARC系列的较高级型号,以及MIPS若干型号等都采用了超级标量技术。

超长指令字

超常指令字(VLIW:VeryLongInstructionWord)是由美国Yale大学教授Fisher提出的。它有点类似于超级标量,是一条指令来实现多个操作的并行执行,之所以放到一条指令是为了减少内存访问。通常一条指令多达上百位,有若干操作数,每条指令可以做不同的几种运算。那些指令可以并行执行是由编译器来选择的。通常VLIW机只有一个控制器,每个周期启动一条长指令,长指令被分为几个字段,每个字段控制相应的部件。由于编译器需要考虑数据相关性,避免冲突,并且尽可能利用并行,完成指令调度,所以硬件结构较简单。   

VLIW机器较少,可能不太容易实现,业界比较有名的VLIW公司之一是Transmeta,在加州硅谷SantaClara(硅谷圣地之一,还有SanJose,PaloAlto)。它做的机器采用X86指令集,VLIW实现,具体资料可以去访问公司的网站。

向量机

平时接触的计算机都是标量机,向量机都是大型计算机,一般用于军事工业,气象预报,以及其他大型科学计算领域,这也说明了向量机都很贵。国产的银河计算机就是向量机普通的计算机所做的计算,例如加减乘除,只能对一组数据进行操作,被称为标量运算。向量运算一般是若干同类型标量运算的循环。向量运算通常是对多组数据成批进行同样运算,所得结果也是一组数据。很多做科学计算的大(巨)型机都是向量机,例如国产银河。

SIMD技术

单指令多数据(SingleInstructionMultipleData)简称SIMD。SIMD结构的CPU有多个执行部件,但都在同一个指令部件的控制下。SIMD在性能优势呢:以加法指令为例,单指令单数据(SISD)的CPU对加法指令译码后,执行部件先访问内存,取得第一个操作数;之后再一次访问内存,取得第二个操作数;随后才能进行求和运算。而在SIMD型CPU中,指令译码后几个执行部件同时访问内存,一次性获得所有操作数进行运算。这个特点使得SIMD特别适合于多媒体应用等数据密集型运算。AMD公司的3DNOW!技术其实质就是SIMD,这使K6-2处理器在音频解码、视频回放、3D游戏等应用中显示出优异性能。

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

  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 ...

  10. RealSync Quest SharePlex 技术对比

    http://blogold.chinaunix.net/u3/115561/showart_2249177.html RealSync & Quest SharePlex 技术对比     ...

最新文章

  1. Java项目:网上商城系统(java+SSM+jsp+mysql+maven)
  2. 【组队学习】【27期】动手学数据分析
  3. 代码注释照样可以玩出花来
  4. vue组件通信之父组件主动获取子组件数据和方法
  5. Zuul Gateway 网关
  6. Effective C++ --4 设计与声明
  7. 高等数学:第十二章 微分方程(1)微分方程的概念,可分离变量的微分方程,齐次方程
  8. centos配置ntp时间同步_Linux CentOS配置ntpd时间同步
  9. 华为全球第一、荣耀中国前二!余承东宣布新目标:苹果三星怎么看?
  10. 多用户企业文件管理系统源码_设计项目管理系统,可以,并有必要
  11. 最近让我焦灼的四个问题
  12. Word 2010:22个经典小技巧大放送
  13. 《编程珠玑》学习记录第八章算法设计技术
  14. 基因组学---基因结构解剖
  15. 【题解】P2916 [USACO08NOV]安慰奶牛Cheering up the Cow-C++
  16. bp神经网络和cnn神经网络,bp神经网络与cnn区别
  17. type object ‘TestGetToken‘ has no attribute ‘test_right_gett_token‘
  18. 单片机晶振概述及工作原理
  19. Linux CentOS7 基础:网络管理技术
  20. django html跳转页面跳转页面,django 常见页面的跳转,渲染,以及返回

热门文章

  1. linux如何删除tree命令,误删tree命令如何恢复
  2. AVPlayer 音视频缓存方案
  3. linux oracle12c rman,12C CDB模式下RMAN备份与恢复
  4. jic标准_美标JIC是什么螺纹
  5. 智能小车52单片机c语言,基于STC89C52单片机的智能循迹小车设计
  6. 利用 bat 脚本强制杀死 Windows 进程
  7. esp32的MQTT物联网开发记录
  8. ddwrt php,DD-WRT官方支持设备列表_ddwrt
  9. Redis3.x 源码安装
  10. 将安卓手机摄像头打造成电脑高清摄像头