前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >流水线、超流水线、超标量(superscalar)技术对比

流水线、超流水线、超标量(superscalar)技术对比

作者头像
zy010101
发布于 2020-08-17 09:03:02
发布于 2020-08-17 09:03:02
6K0
举报
文章被收录于专栏:程序员程序员

本文转载自: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游戏等应用中显示出优异性能。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/08/17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【考研408&计算机组成原理】微程序设计重要考点&指令流水线&考研真题+考点分析
题目描述: 某计算机采用微程序控制器,共有32条指令。公共的取指令微程序包含2条微指令,各指令对应的微程序平均由4条微指令组成。采用断定法(下地址字段法)确定下条微指令地址。求:
苏泽
2024/07/01
5720
【考研408&计算机组成原理】微程序设计重要考点&指令流水线&考研真题+考点分析
跟着博主玩转计算机组成结构--中央处理器CPU(不知道CPU干啥的小伙伴看过来)
CPU的工作过程就是不停的执行指令,计算机各个部分的所进行的工作可以说都是由CPU根据指令来启动的(指的是进入操作系统之后,纯硬件的话还是有南北桥)。因为CPU的速度太快,为了使CPU减少等待时间,甚至不参与计算机输入输出过程(等待时间太久),采取程序中断的方式和DMA的方式。这两种方式下,外部设备需要向CPU提出中断请求或DMA请求,因此在执行指令过程中,CPU还要按时通过采样相应的引脚来查询有没有中断请求或DMA请求。一般, 在一个机器 周期结束时,查询是否有DMA请求,如果有,则CPU脱离总线,由DMA控制器控制使用总线。在一个指令周期结束时,查询是否有中断请求,如果有,则进入中断响应机器周期,相当于执行了一条中断响应隐指令。在中断响应过程中,得到中断服务程序的入口地址,并送程序计数器(PC)中,下个指令周期开始时,取出中断服务程序的第一条指令 执行。
风骨散人Chiam
2020/10/28
2.5K1
全网最详细的Intel CPU体系结构分析(内核源码)
前段meldown漏洞事件的影响,那段时间也正好在读Paul的论文关于内存屏障的知识,其中有诸多细节想不通,便陷入无尽的煎熬和冥想中,看了《计算机系统结构》、《深入理解计算机系统》、《大话处理器》等经典书籍,也在google上搜了一大堆资料,前前后后、断断续续地折腾了一个多月,终于想通了,现在把自己的思想心得记录下来,希望对有这方面困惑的朋友有些帮助。
嵌入式Linux内核
2022/09/22
9530
全网最详细的Intel CPU体系结构分析(内核源码)
微机原理与接口技术 重点详解与章节总结——微处理器的系统结构
微处理器可以分为:通用型微处理器和嵌入式微处理器(Micro-processor Unit,MPU)。通用型微处理器指的是通用计算机中的CPU,嵌入式微处理器指单片机、ARM、嵌入式DSP处理器(Digital Signal Processor)等。
timerring
2022/07/20
1.9K0
微机原理与接口技术 重点详解与章节总结——微处理器的系统结构
CPU介绍
cpu基本想到的是计算,因此有算数计算,还有逻辑计算单元以及移位简单的运算;fp运算单独拿出;要运算就需要输入数字,因此有寄存器组,即通用寄存器组,可以程序改变的比如,把某个数置到被加数的寄存器中;还有表示一些状态的专用寄存器比如进位了,这些只能有cpu自己决定,不能程序改变;
全栈程序员站长
2022/07/15
7810
【计算机基本概念】中央处理器
中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。 中央处理器主要包括运算器(算术逻辑运算单元,ALU,Arithmetic Logic Unit)和高速缓冲存储器(Cache)及实现它们之间联系的数据(Data)、控制及状态的总线(Bus)。它与内部存储器(Memory)和输入/输出(I/O)设备合称为电子计算机三大核心部件。 物理
程序员互动联盟
2018/03/15
9720
嵌入式:ARM的流水线技术
在3级流水线的执行过程中,当通过R15寄存器直接访问PC时,必须考虑到此时流水线的执行过程的真实情况
timerring
2022/12/13
1.5K0
嵌入式:ARM的流水线技术
CPU流水线竞争解决方案
解决流水线冒险问题,还有更高效解决方案吗?既不用简单花钱加硬件电路这样“堆资源”,也不纯粹等待之前任务完成。 有的,操作数前推。
JavaEdge
2023/01/14
6740
CPU流水线竞争解决方案
芯片设计之流水线设计-IC学习笔记(四)
pipeline流水线设计是一种典型的 面积换性能的设计。一方面通过对长功能路径的合理划分,在同一时间内同时并行多个该功能请求,大大提高了某个功能的吞吐率;另一方面由于长功能路径被切割成短路径,可以达到更高的工作频率,如果不需要提高工作频率,多出来的提频空间可以用于降压降功耗。
全栈程序员站长
2022/09/21
2.9K0
芯片设计之流水线设计-IC学习笔记(四)
计算机组成原理 指令流水线
计算机的流水线把一个重复的过程分解为若干子过程,每个子过程与其他子过程并行执行。由于采用流水线技术只需增加少量硬件就能把计算机的运算速度提高几倍,因此成为计算机中普遍使用的一种并行处理技术。
onenewcode
2024/01/25
3150
CPU的流水线指令设计
程序的性能=指令数×CPI×时钟周期,和周期相关的只有一个时钟周期,即CPU主频的倒数。 一个CPU的时钟周期可以认为是可以完成一条最简单的计算机指令的时间。
JavaEdge
2021/12/07
1.6K0
CPU的流水线指令设计
处理器结构--PipeLine&SuperScalar
最初开始,指令一条一条顺序执行,后来当工艺进步了,CPU中的元件越来越多,而在原来的顺序执行的过程中,只有一条指令的某一个阶段在执行,如取指,取数据等等,其他元件都处于等待的状态,于是为了提高CPU吞吐量,以及指令并行的效率,于是PipeLine应运而生
None_Ling
2018/10/24
1.5K0
处理器结构--PipeLine&SuperScalar
编译过程中的并行性优化概述
并行性是指计算机系统具有可以同时进行运算或操作的特性,在同一时间完成两种或两种以上工作。并行性等级可以分为作业级或程序级、任务级或程序级、指令之间级和指令内部级。
云微
2023/02/11
8170
编译过程中的并行性优化概述
从洗衣机的故事中理解计算机的工作原理:优化指令执行速度
CPU执行一条指令也是类似的操作:取址-》解码-》执行,不断重复。此时一条指令需要三个时钟周期才能完成(取址,解码,执行)。
北洋
2023/09/22
2810
【《超标量处理器基础》学习笔记一】处理器设计
体系结构指指令集体系结构,即指令集的规范,而微体系结构是指体系结构的具体逻辑实现,同一种指令集体系结构可以用不同的微体系结构,并采用不同的流水线设计,不同的分支预测算法等。
闪电gogogo
2019/11/14
1.4K0
处理器基础知识总结
先描述下一般处理器的概念,维基百科的定义是 “In computing, a processor is an electronic circuit which performs operations on some external data source, usually memory or some other data stream”。最为常见的处理器有 CPU(可以运行任何程序)、GPU(图形图像处理)和 DSP(处理数字信号),还有专门用来做 DNN 应用神经网络处理器。
用户3719891
2023/01/17
3210
计算机中的流水线技术到底是个啥?
作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。自开源半年多以来,已成功为十几家中小型企业提供了精准定时调度方案,经受住了生产环境的考验。为使更多童鞋受益,现给出开源框架地址:
冰河
2021/02/05
1.3K0
计算机中的流水线技术到底是个啥?
甄建勇:五分钟搞定计算机体系结构(上)
甄建勇,高级架构师(某国际大厂),十年以上半导体从业经验。主要研究领域:CPU/GPU/NPU架构与微架构设计。感兴趣领域:经济学、心理学、哲学。
Linux阅码场
2021/11/24
1.3K0
甄建勇:五分钟搞定计算机体系结构(上)
【愚公系列】软考中级-软件设计师 008-计算机系统知识(计算机体系结构)
计算机体系结构,也称为计算机架构或计算机结构,是指计算机硬件和软件之间的结构和组织方式。它描述了计算机整体的组成、功能和相互关系,以及指导计算机硬件和软件的设计和实现。
愚公搬代码
2024/01/20
2730
CPU流水线与指令重排序
青蛙见了蜈蚣,好奇地问:"蜈蚣大哥,我很好奇,你那么多条腿,走路的时候先迈哪一条啊?"
蝉沐风
2022/12/19
1.1K0
CPU流水线与指令重排序
推荐阅读
相关推荐
【考研408&计算机组成原理】微程序设计重要考点&指令流水线&考研真题+考点分析
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档