首页 > 编程知识 正文

超标量流水线时空图,采用度为4的超标量流水线

时间:2023-05-05 08:48:14 阅读:109466 作者:1796

另一方面,超级流水线技术超级流水线(Super Pieline )技术是RISC采用的并行处理技术。 他通过细化流水、增加级数、提高主频,使每台机器周期都能进行一两个浮点操作。 其本质是时间换取空间。 超流水机器的特点是所有功能单元都使用流水,具有更高的时钟频率和更深的流水深度。 二.超标量技术超标量(Super Scalar )技术是RISC采用的处理技术之一。 通过内置多条管线,同时执行多项处理。 其本质是交换空间和时间。 流水线实现中的问题与解决3 .超线程技术超线程技术是指一个CPU同时运行多个程序,共享一个CPU内的资源的技术,理论上要同时运行两个线程,就像两个CPU一样因此,新一代P4 HT的die的面积比以往的P4大了5%。 剩下的部分,例如ALU (整数运算单元)、fpu (L2 cache ) )保持不变,这些部分是共享的。 超线程的具体解释33603358 publish.it 168.com/cword/962.shtml-------shtml 流水线的工作原理就像工业生产上的装配流水线。 在CPU中,由5~6个不同功能的电路单元构成一个指令处理流水线,通过将一个X86指令分成5~6个步骤在各个电路单元中执行,能够在一个CPU时钟周期内完成一个指令,因此CPU的运算超级流水线是指某型CPU内部流水线超过正常5~6个步骤以上,例如奔腾pro的流水线长达14个步骤。 设计流水线的步骤(等级)数越多,完成一个指令的速度就越快,因此可以应对更高动作频率的CPU。 超出量是指在一个时钟周期内CPU可以执行一个或多个指令。 这在486或以前的CPU上是无法想象的,只有奔腾级以上的CPU才有这样的超标量结构。 这是因为现代的CPU开始采用RISC技术,有超过基准量的CPU。 请参见----------------------------------------- -

既然不能大幅提高ALU的速度,有什么替代的方法吗? 并行处理的方法再次发挥了强大的作用。 超标CPU是指只集成多个ALU、多个FPU、多个解码器、多个流水线的CPU,通过并行处理提高性能。

我觉得过剂量技术很容易理解,但有件事需要注意。 不管理“过剂量”之前的数字,例如“9路过”。 不同的制造商对这个数字有不同的定义,更多的这只是商业宣传手段。

2、管线(Pipeline ) )

流水线是现代RISC核的重要设计,大大提高了性能。

一个具体的指令执行过程通常可以分为取指令、解码指令、取操作数、运算(ALU )、写结果五个部分。 其中,前三步通常由指令控制器完成,后两步由运算器完成。 在传统方式中,当所有命令按顺序执行时,首先命令控制器动作,第一个命令的前三步完成,接着运算器动作,接下来的两步完成,命令控制器动作,第二个命令的前三步完成,运算器动作,2 指令控制器工作的时候运算器基本上在休息,但是运算器工作的时候指令控制器在休息,造成了相当大的资源浪费。 解决方法很简单。 命令控制器完成第一个命令的前三个步骤后,立即开始操作第二个命令。 运算单元也是如此。 这样就有了流水线系统。 这是二级管线。

对于超标的系统,假设有3个指令控制单元和2个运算单元,则在第一个指令的地址获取工作结束后,可以立即开始第二个指令的地址获取。 这时,第一个指令正在解码,接下来第三个指令取地址,第二个指令解码,第一个指令取操作数……这是五级流水线。 显然,五级管线的平均理论速度是不使用管线时的四倍。

流水线系统充分利用了CPU资源,使各个部件按时钟周期工作,大大提高了效率。 但是,流水线有两个非常大的问题。 是关联和转移。

在管线系统中,如果第二个指令需要第一个指令的结果,则称为相关性。 以上面的哪一条五级流水线为例,当第二条指令需要取操作数时,第一条指令的运算还没有完成。 此时,如果第二个指令去取操作数,则会得到错误的结果。 所以,此时,必须停止整个管线,等待第一条命令的完成。 这是一个很令人讨厌的问题,特别是对于相对长的流水线(例如20级),这种停顿通常会丢失十几个时钟的周期。 目前解决这个问题的办法是无序地执行。 无序执行的原理是在两个相关命令中插入无关联的命令,使整个流水线顺畅。 例如,在上面的示例中,在开始执行第一条指令后,立即开始执行第三条指令,然后开始执行第二条指令。 这样,当第二个指令需要取操作数时,第一个指令正好完成,第三个指令也即将完成,整个管线不会停止。 当然,管道堵塞现象不能完全避免。 特别是相关指令非常多的情况。

另一个大问题是条件转移。 在上面的示例中,如果第一个指令是条件分支指令,则系统必须等待不知道是否应该执行下一个指令的第一个指令

的判断结果出来才能执行第二条指令。条件转移所造成的流水线停顿甚至比相关还要严重的多。所以,现在采用分支预测技术来处理转移问题。虽然我们的程序 中充满着分支,而且哪一条分支都是有可能的,但大多数情况下总是选择某一分支。比如一个循环的末尾是一个分支,除了最后一次我们需要跳出循环外,其他的时 候我们总是选择继续循环这条分支。根据这些原理,分支预测技术可以在没有得到结果之前预测下一条指令是什么,并执行它。现在的分支预测技术能够达到90% 以上的正确率,但是,一旦预测错误,CPU仍然不得不清理整条流水线并回到分支点。这将损失大量的时钟周期。所以,进一步提高分支预测的准确率也是正在研 究的一个课题。

  越是长的流水线,相关和转移两大问题也越严重,所以,流水线并不是越长越好,超标量也不是越多越好,找到一个速度与效率的平衡点才是最重要的。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。