论文部分内容阅读
随着半导体制造工艺的提高,芯片集成的晶体管数量的增加,计算机系统更易受到射线、高能量粒子(电子、中子、质子等)的影响,从而增加软错误的出现概率。软错误使得处理器的可靠性计算不能被保证,程序更容易因为这种软错误而运行出错。所以利用冗余执行和预测技术以及根据指令的被相关度作为优先级的ALU调度来提升微处理器的可靠性,在保证处理器系统准确性的同时降低计算系统的性能损失以及降低系统功耗是目前微处理器架构研究的重点之一。由于时间冗余实现起来较硬件简单,从性价比和设计复杂度方面考虑是更理想的选择。而且随着各终端电子设备应用越来越广泛,通过冗余执行来提高系统可靠性和性能具有重要的理论意义与广泛的实用价值。本文的设计属于时间冗余。是在高出错率的环境下,在性能和功耗方面都优于指令双执行的容错系统。首先,基于保留站的结构,提出了可靠站来提高传统的双执行的恢复效率。从而在保证系统可靠性的前提下,又能使处理器的性能损失低于双执行。当指令被执行两遍之后,结果会暂存在可靠站中进行对比,如果相等则流水线正常进行,否则指令会被重新执行进行容错。而传统的双执行在指令复制和冗余执行与可靠站是相同的,在错误检查时若相等则继续执行,若出错它需要清空重定序缓存ROB,然后重新取指执行。这将耗费处理器大量的操作时间和能量,因为有很多的存储器访问和数据转发的操作。其次,本文针对数据在总线传输过程中的出错提出并设计了冗余方案。当数据在转发过程中出现位翻转时双执行是探测不到错误的。例如数据由寄存器传送到发射逻辑的过程中发生了位翻转,从而发射逻辑接收到的数据是错误的,此时这个脏数据会同时被初始指令和复制指令使用。因此即使两次执行的结果相等,也是错误的。所以本文专门针对此类型错误设计了冗余电路。即经过数据总线的数据都要被两次传输,在两次传输都到达时利用比较器进行对比。如果收到的两个数据相等则可以正常使用,否则需要重新传输。最后一个是基于指令被相关程度的ALU调度,就是把被依赖的程度作为分配ALU的优先级,越被相关,越早分配ALU。这样那些和这条指令存在相关的指令因为操作条件满足而得到执行。因为在一个指令序列当中,不同指令的被依赖程度是不一样的,所以我们是先对每条指令的被相关程度进行统计,然后在发射段指令申请执行单元的时候根据这个被相关的权重大小来决定分配ALU的优先级,当然只有需要同类执行部件的指令才需要比较。