流水线、超流水线、超标量

流水线、超流水线、超标量

参考

流水线、超流水线、超标量(superscalar)技术对比(转)
单片机代码运行流程
超流水线【百度百科】

流水线

  • 流水线技术是一种将每条指令分解为多步,并让不同的指令的各步骤操作重叠,从而实现几条指令并行处理,以加速程序运行过程的技术。指令的每步有各自独立的电路来处理,每完成一步,就进到下一步,而前一步则处理后续指令。

  • 目前市场上常见的5步流水线步骤如下所示;
    (1)取指令 (Instruction Fetch,IF):CPU从指令寄存器中取出指令的过程
    (2)指令译码 (Instruction Decode,ID):指令译码器按照预定的指令格式,对取回的指令进行拆分和解释,识别区分出不同的指令类别以及各种获取操作数的方法。

    在组合逻辑控制的计算机中,指令译码器对不同的指令操作码产生不同的控制电位,以形成不同的微操作序列;在微程序控制的计算机中,指令译码器用指令操作码来找到执行该指令的微程序的入口,并从此入口开始执行。

    (3)指令执行 (Execute,EX):完成指令所规定的各种操作,具体实现指令的功能。为此,CPU的相关不同模块被连接起来,以执行所需的操作。
    (4)访存取数(Memory,MEM):若指令操作需要访问主存或者读取操作数等,则进入此阶段,根据指令地址码,得到操作数在主存中的地址,并从主存中读取该操作数用于运算。
    (5)结果写回(WriteBack,WB):把执行指令阶段的运行结果数据“写回”到某种存储形式。

    结果数据经常被写到CPU的内部寄存器中,以便被后续的指令快速地存取;
    在有些情况下,结果数据也可被写入相对较慢、但较廉价且容量较大的主存。许多指令还会改变程序状态字寄存器中标志位的状态,这些标志位标识着不同的操作结果,可被用来影响程序的动作。

  • 如下图所示,如果流水线的每一步都被装满时,那么每个时钟周期平均有一条指令在流水线上执行完毕,输出结果:
    在这里插入图片描述

超流水线

  • 超流水线是通过细化流水、提高主频,使得在一个机器周期内完成一个甚至多个操作,其实质是以空间换取时间。简单来说,超流水线增加了流水线的级数。
  • 一般而言,CPU执行一条指令执行上述所说的5各阶段,理论上每一阶段的实现都需要消耗一个时钟周期,且每个阶段的计算结果在时钟周期结束以前都存放在阶段之间的锁存器上,以供下一个阶段使用。以消耗时间最长的阶段作为时钟频率。假设耗时最长的阶段耗时为Max,那么理论上实际达到的时钟频率为1/Max(这里不考虑指令执行过程中的额外消耗)。
    那么要提高时钟频率,那么就要想方法减少每个阶段上的消耗,最直观的方式就是将每个阶段继续细分成为更小的操作步骤。这种将标准流水先细分的级数就是超级流水线技术。

超流水线也有其弊端:
1、由于在每个细分的阶段后都需要增加锁存器保存阶段结果,将结果发送到锁存器的时间也属于损耗;
2、由于级数的增加,CPU也需要增加大量的机器指令进行每一个级数的操作,如果在某个过程出现错误,那么大量的CPU的指令都将作废,所以很可能出现主频较高的CPU实际运算速度较低的现象

超标量

  • 超标量可以理解为同时有很多条并行的流水线,而不是只有一条流水线。所以在超标量结构中,CPU支持指令并行,每个周期可以发射多条指令。

在单流水线结构中,指令虽然重叠进行,但实际上,还是按照顺序执行的指令,每个周期只能发射或者退休一条指令。

  • 如下图所示,超标量结构可同时处理多条指令(常见为2-4条指令)
    在这里插入图片描述

超标量结构的实现主要借助硬件资源的重复来实现,例如多套译码器,访存结构等

  • 14
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
信息的熵:熵是信息论中一个重要的概念,用来表示信息的混乱程度,或者说信息的不确定性。熵越大,信息越不确定,越难以压缩。 固件:一种类型的软件,通常被储存在硬件设备中,具有固定的功能和指令。 透明性:指计算机系统在运行过程中对用户隐藏内部的复杂性和细节,使用户感觉操作简单、直观。 颗粒度:指计算任务的粒度大小,即任务被分解成多小块的程度。 空间局部性:指计算机程序在执行期间访问的内存地址呈现出一定的局部性,即访问的内存地址往往集中在一定的范围内。 存储体系:指计算机系统中用于存储数据的硬件设备和组成。 超标流水线:一种处理器设计技术,可以在同一个时钟周期内执行多个指令,提高处理器的效率。 RISC:一种计算机处理器架构,以简化指令集和高效的流水线设计为特点。 子纠缠效应:指两个或多个子粒子之间存在着一种特殊的关系,当其中一个粒子状态发生改变时,另一个粒子的状态也会相应地改变。 子比特:子计算机中的基本存储单元,可以存储0和1两种状态,也可以处于这两种状态的叠加状态。 子计算机:一种基于子力学原理设计的计算机,可以在特定情况下比传统计算机更快地执行某些计算任务。 向处理机:一种处理向数据的特殊计算机,能够大幅提高向计算的效率。 数值并行算法:一种利用并行计算的优势加速数值计算的算法。 并行处理:将计算任务分解成多个子任务,由多个处理器同时执行,以提高计算速度和效率。 机群:由多台计算机组成的集群,能够并行工作以加速计算任务。 网格计算:一种利用网络连接多个计算机资源并协同工作进行计算的方法。 进程:计算机中正在运行的程序的实例,包括程序计数器、寄存器集合、内存空间、打开的文件、网络连接等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值