体系结构15_多指令流出技术

前面的解决办法都使CPI的值接近1,而不能达到1

多指令流出技术

1.多指令流出处理器

   - 实现一个时钟周期内流出多条指令时

   -达到CPI小于1

2.多流出处理器2种基本结构

   超标量(Superscalar)

     a.超标量每个时钟周期流出的指令数不定

     b.可以编译器静态调度,也可以硬件动态调度

   超长指令字(VLIW、Very long Instruction Word)

      a.每个时钟周期流出的指令数是固定的,只能通过编译静态调度

扫描二维码关注公众号,回复: 12229299 查看本文章

超标量处理机

1.超标量处理机的原型来自于IBM实验室的“America”处理器

   RS/6000第一个采用超标量技术

   现在,几乎所有高性能处理器都是用该技术

2.超标量处理机的硬件支持每个时钟周期发出1-8条不存在相关的指令

   如果指令流中的指令相关或不满足限制条件,则只能流出这条指令前面的指令,因此超标量处理器流出的指令数是不定的。

我们的超标量处理机

假设有这样一个简单的超标量处理器,每个时钟周期它可以流出两条指令

    1.一条指令可以是取指令、存指令、分支指令或整数运算操作

    2.另一条指令可以是任意的浮点操作

    3.这种配置与HP 7100结构类似

超标量处理机的技术问题

1.每个时钟周期流出两条指令意味着取指令和解码部件都是64位

   假设:指令按要求组合成对,且与64位边界对齐,整数指令顺序在前

   需要使得浮点部件流水化或增加相关部件来减少结构相关

2.另一个限制超标量流水线性能发挥的障碍是取操作和分支操作的延迟

   分支指令肯定是指令组合的第一条指令,影响配对指令和后续两条指令,分支延迟也变为3条指令

超长指令字技术

1.一台超标量机器每周期能够流出4-8条指令

   由于必须要用硬件分析指令间的相关,为其实现带来了困难

2.另一种选择:长指令字(LIW,Long Instruction Word)或称为超长指令字(VLIW,Very Long Instruction Word)体系结构

   第一种商用LIW机器是AP-120B,由Floating Point Systems开发

   FPS-164是较新的机器,它的每个指令字含有对应于10个不同功能单元的10条指令。

VLIW基本机构

1.VLIW采用多个独立的功能单元,多个不同的操作封装在一条长指令字中,每个功能单元在VLIW指令中都有一定的对应区域

    一般每个功能单元占用16-24位

    例如:2个整数、2个浮点、2个访存、1个分支,则该指令的长度位112-168位

 2.VLIW硬件只是简单地将指令字中对应的部分送给各个功能单元,功能单元在哪一个时钟周期执行什么操作由编译器来确定

    如果某个功能单元在某个周期没有任务,则执行NOP指令

VLIW例子

VLIW的技术难题

第一,从线性代码片段中产生足够的操作需要进行激进的循环展开,这增加了代码大小

第二,无论指令是否被充满,没有被使用的功能单元也在指令字编码过程占据了相应的位。将近一半的指令是被浪费的

     -在主存中压缩指令,在cache中解压缩指令

第三,VLIW带来了二进制代码兼容性问题

     -采用模拟的方法解决

猜你喜欢

转载自blog.csdn.net/weixin_42596333/article/details/104233106