多端口寄存器堆的选择性旁路的方法和设备技术

技术编号:2872234 阅读:236 留言:0更新日期:2012-04-11 18:40
在多操作处理系统中有选择地旁路寄存器堆的方法,所述多操作处理系统具有多级段执行流水线,包含多个功能单元和具有多个读出端口与写入端口的寄存器堆,该方法包括步骤:    确定功能单元中同时产生的结果是否将用在其中产生该结果的相同功能单元中;    当结果将被用在其中产生该结果的相同功能单元中时,旁路寄存器堆。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术一般性地涉及处理器结构,更特别地是涉及多端口寄存器堆的选择旁路技术。
技术介绍
为了改善性能,当前处理器经常使用流水线技术以很高的速度执行指令。在这样的处理器上,指令处理过程被分为一系列操作,每个操作在相应的流水线级段中进行。几个指令中的独立操作可以同时由不同的流水线级段处理,这增加了处理器的指令吞吐量。微处理器中的常见指令流水线包含下列流水线级段指令获取(IF)、解码(Dec)、读数据(RD)、执行(EX)和写入(WR)。参照图1,其中图解了多操作微处理器的构成。如上所述,多操作微处理器包含双功能单元(FU)结构,该结构具有四读出端口(R1-R4)、两写入端口(W1、W2)的寄存器堆(150)。应当理解,虽然仅给出了双功能单元结构,但是这种处理器的功能单元的实际数目可能会比所显示的数目要多。而且,应当理解,尽管存在许多多操作微处理器的设计,但这里提出的设计允许从寄存器堆独立地访问数据单元,即使用针对寄存器堆的独立索引。当EX级段中执行的操作被独立地,即通过分立指令指定时,这种微处理器结构被称为超标量体系结构。相反,当通过对多个数据单元进行操作的单个指令指定操作时,这种微处理器结构被称为单指令多数据(SIMD)结构。在RD级段(110)期间,四个数据单元被同时从多端口寄存器堆(150)中读出,并分成两个单独的集合,每个集合包括两个单元。这里,这些单元集合被称为向量。在EX级段(120)期间,两个并行的功能单元(140、142)对这两个数据向量执行算术或逻辑操作。在WR级段(130)中,功能单元(140、142)中产生的结果被组成结果向量,并回写到寄存器堆(150)中。
技术实现思路
根据本专利技术的各种实施例,这种允许动态向量构成的寄存器堆可以被有选择地旁路,使得对于结果向量中的任何单元,当在产生该单元的相同位置上的相继操作中请求该单元时,该单元被旁路到相继操作的输入向量中。可选地,当请求动态组成向量的N个单元以作为顺序与其产生顺序相同、针对下一个操作的输入时,寄存器堆中待放置的结果可以被旁路到相继操作中。即,为了达到旁路的目的,N个向量单元作为单一实体进行处理。类似的原则可以应用到直写路径上。附图说明图1图解了没有旁路的多操作结构的流水线;图2图解了具有全旁路的多操作结构的流水线;图3图解了具有相同位置选择性旁路的多操作结构的流水线;图4图解了具有全有-全无(all-or-none)选择性旁路的多操作流水线的流水线;图5图解了具有选择性旁路的功能单元的优选布局图。具体实施例方式为了允许对向量数据进行不间断(即,返回-前进-返回)的操作,其中周期i的操作结果被用作i+1周期(旁路)的操作或周期i+2(直写)的操作的输入,来自EX和WR级段的输出的旁路可以被反馈并与RD级段的输出复用。全旁路结构允许结果向量的任何单元被旁路到两个输入操作数向量中的任何一个的任何单元。具有全旁路的流水线如图2所示。在RD级段期间,四个数据单元或者从多端口寄存器堆(250),功能单元(240、242)的输出中读出,或者从写入级段寄存器(244、246)的输出中读出。对于每个指向单一单元的读出索引(260),利用多个比较器(280)与单元写入索引(270)进行比较。如果读出的索引与最后周期的任何写入索引相匹配,则数据单元被从相应功能单元的相应单元输出中读出。如果不相匹配,则与第二最后的周期的单元写入索引进行比较。如果读出索引与这些写入索引中的任何一个匹配,则数据单元被从相应WR级段锁存器的相应单元输出中读出。在读出索引与任何写入索引不匹配的情况下,数据单元被简单地从具有相应读出索引的寄存器堆记录中读出。尽管连接没有明显地画出,然而应当理解,由复用器(230-236)使用比较结果。在EX级段期间,两个并行功能单元(240、242)均对两个输入向量进行操作,每个功能单元对一对数据单元进行操作,其中每个输入向量提供一个数据单元。操作的结果被锁存到WR级段锁存器中,并且如果需要的话,可被旁路复用器(230-236)得到,以便被后续指令立即使用。在WR级段上,结果向量被回写到寄存器堆250中,并且如果需要的话,可被旁路复用器(230-236)得到,以便被后续指令立即使用。对于寄存器堆具有2M个W位宽记录的N元向量结构,这涉及2N个数据复用器,每个具有2N+1个W位输入,和4N2个地址比较器,每个将M位读出地址与M位写入地址进行比较,除配线中的开销之外。全旁路的开销与N(每个向量中的单元数)的平方成比例。这表明在硅面积、功耗和定时方面都存在严重的问题。通过观察多数旁路向量结果被用于与其产生时相同的单元位置上的后续操作这一现象,提出了本专利技术以减轻这些问题。例如,向量累加将N个新单元重复地加到运行(running)N元和数中,而运行和数的单元位置逐个周期地被保持下来。一种利用这种观察的方式是定义选择性旁路结构,使得对于结果向量中的任何单元,当且仅当在与产生该单元时相同的位置上的相继操作中请求该单元时,该单元被旁路到相继操作的向量。类似的原则可应用到直写路径上。图3图解的是相同位置选择性旁路方案的布局。在RD级段期间,2N个数据单元根据下列原则或者从多端口寄存器堆(250)、功能单元(240、242)的输出中读出,或者从WR级段寄存器(244、246)的输出中读出对于1至N的每个单元读出索引i如果单元读出索引与最后周期的单元写入索引匹配,则从功能单元的输出中读出数据单元;否则,如果单元读出索引与第二最后的周期的单元写入索引匹配,则从WR级段锁存器的输出中读出数据单元;再否则,从具有对应读出索引的寄存器堆记录中读出数据单元。在EX级段期间,N个并行的功能单元对两个输入向量进行操作,每个功能单元对一对数据单元进行操作,其中每个输入向量提供一个数据单元。在WR级段中,结果向量被回写到寄存器堆(250)中,并且如果需要的话,还可被馈送相同功能单元的旁路复用器(230-236)得到,以便被后续指令立即使用。如图3所示,对于双单元结构,这种相同位置选择性旁路方案使用8个地址比较器(380)而不是16个比较器。一般地,相同位置选择性旁路方案需要4N个地址比较器。另一种利用上述观察的方式是定义选择性旁路结构,使得当且仅当动态组成向量的N个单元按照与产生这些单元时相同的顺序被请求作为下一个操作的输入时,待放置到寄存器堆的结果被旁路到相继操作。即,为了达到旁路目的,N个向量单元被作为单一实体对待。类似的原则可以应用到直写路径中。图4图解的是全有-全无选择性旁路方案的布局。在RD级段期间,2N个数据单元根据下列原则或者从多端口寄存器堆(250)、功能单元(240、242)的输出中读出,或者从WR级段的寄存器(244、246)中读出1.形成两个向量读出索引。每个向量读出索引通过将向量中N个单元的每个的单元读出索引连接在一起而形成。2.通过将结果向量的N个单元中的每个的单元写入索引连接在一起,形成一个向量写入索引。3.对于每个向量读出索引如果向量读出索引与最后周期的向量写入索引匹配,则从保持单元顺序的功能单元的输出中读出数据向量;否则,如果向量读出索引与第二最后的周期的向量写入索引匹配,则从保持单元顺序的WR级段锁存器的输出中读出数据向量;再否则,从具有本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:塞穆·阿萨德杰穆·H·莫瑞奴维克托·久班
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利