寄存器写冲突检测方法及装置、以及处理器的制作方法

文档序号:6376382阅读:167来源:国知局
专利名称:寄存器写冲突检测方法及装置、以及处理器的制作方法
技术领域
本发明涉及计算机技术领域,更具体地说,本发明涉及一种用于指令发射的寄存器写冲突检测方法及寄存器写冲突检测装置,此外,本发明还涉及一种采用了该用于指令发射的寄存器写冲突检测方法或装置的处理器。
背景技术
现代处理器一般采用流水线技术来提高处理器的处理速度。流水线技术是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。更具体地说,流水线技术将一条指令执行过程分为多个阶段,其中在不同阶段执行不同指令,从而实现指令的并行,由此可以提高处理器的处理速度。现有的处理器流水线发射机制,主要有乱序发射和顺序发射两种。
一方面,通常的乱序发射机制主要是为了改善指令流水线的性能。更具体地说,在乱序发射机制的情况下,只要指令就绪,就可以发射指令,当指令执行完,写入物理寄存器文件。但是,这种乱序发射的问题是,由于未考虑指令完成的时机,因此存在多条指令同时写物理寄存器文件的可能,需要实现多个写端口,从而增大了物理寄存器文件的复杂性。另一方面,通常的顺序发射机制主要是为了降低指令流水线的复杂性。更具体地说,在顺序发射机制中,指令就绪后,要等前面已经发射的指令执行完后才能继续发射。虽然顺序发射降低了物理寄存器文件的复杂性,只要实现一个写端口,但是也降低了指令流水线的效率。因此,希望能够提供一种可利用较少的硬件复杂性实现指令的乱序发射来提高指令流水线的效率的技术方案。

发明内容
本发明所要解决的技术问题是针对现有技术中存在上述缺陷,提供一种可利用较少的硬件复杂性实现指令的乱序发射来提高指令流水线的效率的用于指令发射的寄存器写冲突检测方法、以及采用了该用于指令发射的寄存器写冲突检测方法的处理器。根据本发明的第一方面,提供了一种用于指令发射的寄存器写冲突检测方法,其包括第一步骤,用于初始地对写有效队列进行重置,以便将写有效队列中的数据位置都重置为表示允许发射指令的写有效位值;第二步骤,用于获取处于指令准备发射状态的指令的指令执行延迟;第三步骤,用于读取写有效队列中与所述处于指令准备发射状态的指令的指令执行延迟等时长的队列位置的写有效位值,所述写有效位值表示允许发射指令或者表示不允许发射指令;第四步骤,用于判断所读取的写有效队列读取的写有效位值表示允许发射指令还是不允许发射指令;第五步骤,用于在所述第四步骤中判断读取的值表示允许发射指令时允许发射所述处于指令准备发射状态的指令;第六步骤,用于在第五步骤之后在写有效队列中与处于指令准备发射状态的指令的指令执行延迟等时长的位置处设置不允许发射指令的写有效位值;以及第七步骤,用于在所述第四步骤中判断读取的值为不允许发射指令时不允许发射所述处于指令准备发射状态的指令。优选地,根据本发明第一方面所述的用于指令发射的寄存器写冲突检测方法还包括第八步骤,其在所述第六步骤或所述第七步骤之后执行,用于使所述写有效队列向队列头逻辑移位一位,并且在所述写有效队列的队列尾的位置处设置一个表示允许发射指令的写有效位值。优选地,在根据本发明第一方面所述的用于指令发射的寄存器写冲突检测方法中,所述寄存器写冲突检测方法在执行完所述第八步骤之后回到所述第二步骤。优选地,在根据本发明第一方面所述的用于指令发射的寄存器写冲突检测方法中,数值“0”表示允许发射指令的写有效位值,并且数值“ I ”表示不允许发射指令的写有效位值。根据本发明的第二方面,提供了一种采用了根据本发明第一方面所述的用于指令发射的寄存器写冲突检测方法的处理器。 根据本发明的第三方面,提供了一种用于指令发射的寄存器写冲突检测装置,其包括存储单元,其中存储了与指令的最长的指令执行延迟等长的写有效队列;以及控制单元,用于执行下述操作初始地对写有效队列进行重置,以便将写有效队列中的数据位置都重置为表示允许发射指令的写有效位值;获取处于指令准备发射状态的指令的指令执行延迟;读取写有效队列中与所述处于指令准备发射状态的指令的指令执行延迟等时长的队列位置的写有效位值,所述写有效位值表示允许发射指令或者表示不允许发射指令;判断所读取的写有效队列读取的写有效位值表示允许发射指令还是不允许发射指令;在判断读取的值表示允许发射指令时,允许发射所述处于指令准备发射状态的指令,并在写有效队列中与处于指令准备发射状态的指令的指令执行延迟等时长的位置处设置不允许发射指令的写有效位值;以及在判断读取的值为不允许发射指令时不允许发射所述处于指令准备发射状态的指令。优选地,在根据本发明第三方面所述的用于指令发射的寄存器写冲突检测装置中,所述控制单元还用于在不允许发射所述处于指令准备发射状态的指令或者允许发射所述处于指令准备发射状态的指令之后,使所述写有效队列向队列头逻辑移位一位,并且在所述写有效队列向的队列尾的位置处设置一个表示允许发射指令的写有效位值。优选地,在根据本发明第三方面所述的用于指令发射的寄存器写冲突检测装置中,所述存储单元是通过处理器的寄存器装置实现的。优选地,在根据本发明第三方面所述的用于指令发射的寄存器写冲突检测装置中,所述控制单元是通过处理器的中央处理单元实现的。根据本发明的第四方面,提供了一种配置了根据本发明的第三方所述的用于指令发射的寄存器写冲突检测装置的处理器。根据本发明,通过使用统一的写有效队列逻辑移位和冲突判断,允许指令乱序写寄存器文件,从而提高指令发射的效率。更具体地说,本发明的指令发射方案通过对写寄存器文件的冲突判断,使用较少的硬件开销,允许短延迟指令超越长延迟指令先写寄存器文件,实现乱序写寄存器文件,充分利用寄存器文件的写端口,从而提高指令发射效率。由此,本发明提供一种基于寄存器写冲突的检测方法和装置,该检测方法和装置可利用较少的硬件复杂性实现指令的乱序发射,以提高指令流水线的效率。


结合附图,并通过参考下面的详细描述,将会更容易地对本发明有更完整的理解并且更容易地理解其伴随的优点和特征,其中图I示意性地示出了根据本发明优选实施例的用于指令发射的寄存器写冲突检测方法的流程图。图2示意性地示出了根据本发明优选实施例的写有效队列的示例。图3示意性地示出了根据本发明优选实施例的用于指令发射的寄存器写冲突检测装置的框图。需要说明的是,附图用于说明本发明,而非限制本发明。注意,表示结构的附图可能并非按比例绘制。并且,附图中,相同或者类似的元件标有相同或者类似的标号。
具体实施例方式为了使本发明的内容更加清楚和易懂,下面结合具体实施例和附图对本发明的内容进行详细描述。<第一实施例>图I示意性地示出了根据本发明优选实施例的用于指令发射的寄存器写冲突检测方法的流程图。需要说明的是,本说明书中的术语“寄存器写冲突检测”针对即是“物理寄存器文件”的“写冲突检测”,简称为寄存器写冲突检测”。如图I所示,根据本发明优选实施例的用于指令发射的寄存器写冲突检测方法包括第一步骤1,用于初始地(例如在处理器启动时)对写有效队列进行重置,以便将写有效队列中的数据位置都重置为表示允许发射指令的写有效位值;例如,如图I所示,可以在初始时,使写有效队列清零,即,使写有效队列中的数据位置都为零(在本实施例中,采用值“ 0 ”来表示允许发射指令)。第二步骤2,当指令处于“指令准备发射”状态时,获取该指令的指令执行延迟。即,在第二步骤2获取处于“指令准备发射”状态的指令的指令执行延迟。具体地说,上述的术语“指令准备发射”是指这样的状态指令的源操作数已经准备好,并且该指令和已经发射执行的指令之间不存在真相关和输出相关,而且该指令正等待发射。术语“指令执行延迟”是指令的一个属性,其在指令进入发射阶段之前就已经产生;具体地说,“指令执行延迟”是指一条指令从发射到完成执行、并准备写入物理寄存器文件所需要的节拍数,真正写入物理寄存器文件通常在该节拍数之后的下一节拍。其中,物理寄存器文件(本领域中,有时候简称“寄存器文件”),是指用来读取指令执行所需操作数,以及用来保存指令执行结果的一种存储器。第三步骤3,读取写有效队列中与该准备发射的指令(S卩,处于“指令准备发射”状态的指令)的指令执行延迟等时长的队列位置的写有效位值。其中,写有效位值要么表示允许发射指令,要么表示不允许发射指令。换言之,后续将通过读取写有效队列中与该准备发射的指令的指令执行延迟等时长的队列位置的写有效位值来判断是否发射该指令。需要说明的是,术语“等时长的队列位置”指的是写有效队列队中经过相应的延迟(例如指令执行延迟)到达写有效队列队列头的位置。第四步骤4,判断所读取的写有效队列读取的写有效位值。具体地说,判断所读取的写有效队列读取的写有效位值表示“允许发射指令”还是“不允许发射指令”。第五步骤5,如果在第四步骤4中判断读取的值为“0”(本实施例中表示允许发射指令的写有效位值),则允许发射该指令。第六步骤6,其在第五步骤5之后执行,用于在写有效队列中与该发射指令执行延迟等时长的位置处置“I”(本实施例中表示不允许发射指令的写有效位值)。由此,可以针对所有指令的指令执行延迟设置一个与指令中的最长指令执行延迟等长的写有效队列。“与指令的最长指令执行延迟等长”指的是,当经过最长指令执行延迟时,写有效队列的队列尾的数据正好位移到队列头。写有效队列在经过所述寄存器写冲突检测方法的一个操作周期时沿着队列位移 方向X向队列头B方向进行一位的逻辑移位(如图2所示)。通过结合第五步骤5和第六步骤6,可以看出,当写有效队列的队列头B位置处的写有效位值为“I”时,表明当前节拍有结果准备写回寄存器文件(即,第五步骤5中允许发射的指令在相应的指令执行延迟之后将写入物理寄存器文件,而此时,在第六步骤6中设置的“ I ”正好处于写有效队列的队列头B位置处),相应地,应该不允许发射指令。第七步骤7,如果在第四步骤4中判断读取的值为“I”(本实施例中表示不允许发射指令的写有效位值),不允许发射该指令。由此,可以保证不会发生有多个写同一个寄存器文件条目的指令处于对寄存器进行操作的状态中(避免寄存器写冲突)。第八步骤8,其在所述第六步骤6或所述第七步骤7之后执行,用于使得写有效队列向队列头B逻辑移位,移I位。具体的,在第八步骤8中,由于向队列头B移位,在队列尾A的位置处设置一个表示允许发射指令的写有效位值(在本实施例中为数值“ 0 ”)。在第八步骤8之后回到第二步骤2。此后,重复执行第二步骤2至第八步骤8的操作周期。在上述寄存器写冲突检测方法中,通过使用统一的写有效队列逻辑移位和冲突判断,允许指令乱序写寄存器文件,从而提高指令发射的效率。更具体地说,本发明上述实施例公开的指令发射方法通过对写寄存器文件的冲突判断,使用较少的硬件开销,允许短延迟指令超越长延迟指令先写寄存器文件,实现乱序写寄存器文件,充分利用寄存器文件的与端口,从而提闻指令发射效率。由此,本发明的上述实施例提供一种基于寄存器写冲突的检测方法,该检测方法可利用较少的硬件复杂性实现指令的乱序发射,以提高指令流水线的效率。需要说明的是,虽然上述实施例以数值“0”表示允许发射指令的写有效位值,并且以数值“ I ”表示不允许发射指令的写有效位值;但是,反过来进行表示也是可行的,也就是说,在另一实施例中,可以以数值“I”表示允许发射指令的写有效位值,并且以数值“0”表示不允许发射指令的写有效位值。根据本发明的另一优选实施例,本发明还提供了一种采用了上述用于指令发射的寄存器写冲突检测方法的处理器,例如微处理器。<第二实施例>图3示意性地示出了根据本发明优选实施例的用于指令发射的寄存器写冲突检测装置的框图。如图2所示,根据本发明优选实施例的用于指令发射的寄存器写冲突检测装置100包括存储单元1,其中存储了与指令的最长的指令执行延迟等长的写有效队列11 ;以及控制单元2,用于执行图I所示的根据本发明优选实施例的用于指令发射的寄存器写冲突检测方法。其中,针对指令执行延迟设置了一个与指令的最长的指令执行延迟等长的写有效
队列11,该写有效队列11针对图I所示的根据本发明优选实施例的用于指令发射的寄存器写冲突检测方法的每操作周期向队列头B方向(队列位移方向X)进行一位的逻辑移位,当队列头B为写有效位为例如“I”时,表明当拍有结果准备写回寄存器文件。如图2所示,写有效队列由队列尾A向队列头B进行逻辑移位,每移一位,队列尾A的位置处补“O”。其中,存储单元I可以通过处理器的原有的寄存器装置来实现,而无需额外地增加存储介质。控制单元2可以通过处理器的原有的处理控制单元来实现,例如中央处理单元,而无需额外地增加处理控制单元。更具体地说,控制单元2用于执行下述操作初始地对写有效队列进行重置,以便将写有效队列中的数据位置都重置为表示允许发射指令的写有效位值;获取处于指令准备发射状态的指令的指令执行延迟;读取写有效队列中与所述处于指令准备发射状态的指令的指令执行延迟等时长的队列位置的写有效位值,所述写有效位值表示允许发射指令或者表示不允许发射指令;判断所读取的写有效队列读取的写有效位值表示允许发射指令还是不允许发射指令;在判断读取的值表示允许发射指令时,允许发射所述处于指令准备发射状态的指令,并在写有效队列中与处于指令准备发射状态的指令的指令执行延迟等时长的位置处设置不允许发射指令的写有效位值;以及在判断读取的值为不允许发射指令时不允许发射所述处于指令准备发射状态的指令。由此,控制单元2还可用于在不允许发射所述处于指令准备发射状态的指令或者允许发射所述处于指令准备发射状态的指令之后,使写有效队列11向队列头逻辑移位一位,并且在所述写有效队列向的队列尾的位置处设置一个表示允许发射指令的写有效位值。同样,优选地,以数值“0”表示允许发射指令的写有效位值,并且以数值“I”表示不允许发射指令的写有效位值;可替换地,反过来进行表示也是可行的,也就是说,在另一实施例中,可以以数值“I”表示允许发射指令的写有效位值,并且以数值“0”表示不允许发射指令的写有效位值。因此,类似地,在上述寄存器写冲突检测装置中,通过使用统一的写有效队列逻辑移位和冲突判断,允许指令乱序与寄存器文件,从而提闻指令发射的效率。更具体地说,本发明上述实施例通过对写寄存器文件的冲突判断,使用较少的硬件开销,允许短延迟指令超越长延迟指令先写寄存器文件,实现乱序写寄存器文件,充分利用寄存器文件的写端口,从而提闻指令发射效率。由此,本发明的上述实施例提供一种基于寄存器写冲突的检测装置,该检测方法可利用较少的硬件复杂性实现指令的乱序发射,以提高指令流水线的效率。
根据本发明的另一优选实施例,本发明还提供了一种配置有上述用于指令发射的寄存器写冲突检测装置的处理器,例如微处理器。需要说明的是,说明书中的术语“第一”、“第二”、“第三”等描述仅仅用于区分说明书中的各个组件、元素、步骤等,而不是用于表示各个组件、元素、步骤之间的逻辑关系或者顺序关系等。可以理解的是,虽然本发明已以较佳实施例披露如上,然而上 述实施例并非用以限定本发明。对于任何熟悉本领域的技术人员而言,在不脱离本发明技术方案范围情况下,都可利用上述揭示的技术内容对本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
权利要求
1.一种用于指令发射的寄存器写冲突检测方法,其特征在于包括 第一步骤,用于初始地对写有效队列进行重置,以便将写有效队列中的数据位置都重置为表示允许发射指令的写有效位值; 第二步骤,用于获取处于指令准备发射状态的指令的指令执行延迟; 第三步骤,用于读取写有效队列中与所述处于指令准备发射状态的指令的指令执行延迟等时长的队列位置的写有效位值,所述写有效位值表示允许发射指令或者表示不允许发射指令; 第四步骤,用于判断所读取的写有效队列读取的写有效位值表示允许发射指令还是不允许发射指令; 第五步骤,用于在所述第四步骤中判断读取的值表示允许发射指令时允许发射所述处于指令准备发射状态的指令; 第六步骤,用于在第五步骤之后在写有效队列中与处于指令准备发射状态的指令的指令执行延迟等时长的位置处设置不允许发射指令的写有效位值;以及 第七步骤,用于在所述第四步骤中判断读取的值为不允许发射指令时不允许发射所述处于指令准备发射状态的指令。
2.根据权利要求I所述的用于指令发射的寄存器写冲突检测方法,其特征在于还包括 第八步骤,其在所述第六步骤或所述第七步骤之后执行,用于使所述写有效队列向队列头逻辑移位一位,并且在所述写有效队列向的队列尾的位置处设置一个表示允许发射指令的写有效位值。
3.根据权利要求I或2所述的用于指令发射的寄存器写冲突检测方法,其特征在于,所述寄存器写冲突检测方法在执行完所述第八步骤之后回到所述第二步骤。
4.根据权利要求I或2所述的用于指令发射的寄存器写冲突检测方法,其特征在于,数值“O”表示允许发射指令的写有效位值,并且数值“ I”表示不允许发射指令的写有效位值。
5.一种采用了根据权利要求I至4之一所述的用于指令发射的寄存器写冲突检测方法的处理器。
6.一种用于指令发射的寄存器写冲突检测装置,其特征在于包括 存储单元,其中存储了与指令的最长的指令执行延迟等长的写有效队列;以及 控制单元,用于执行下述操作初始地对写有效队列进行重置,以便将写有效队列中的数据位置都重置为表示允许发射指令的写有效位值;获取处于指令准备发射状态的指令的指令执行延迟;读取写有效队列中与所述处于指令准备发射状态的指令的指令执行延迟等时长的队列位置的写有效位值,所述写有效位值表示允许发射指令或者表示不允许发射指令;判断所读取的写有效队列读取的写有效位值表示允许发射指令还是不允许发射指令;在判断读取的值表示允许发射指令时,允许发射所述处于指令准备发射状态的指令,并在写有效队列中与处于指令准备发射状态的指令的指令执行延迟等时长的位置处设置不允许发射指令的写有效位值;以及在判断读取的值为不允许发射指令时不允许发射所述处于指令准备发射状态的指令。
7.根据权利要求6所述的用于指令发射的寄存器写冲突检测装置,其特征在于,所述控制单元还用于在不允许发射所述处于指令准备发射状态的指令或者允许发射所述处于指令准备发射状态的指令之后,使所述写有效队列向队列头逻辑移位一位,并且在所述写有效队列向的队列尾的位置处设置一个表示允许发射指令的写有效位值。
8.根据权利要求6或7所述的用于指令发射的寄存器写冲突检测装置,其特征在于,所述存储单元是通过处理器的寄存器装置实现的。
9.根据权利要求6或7所述的用于指令发射的寄存器写冲突检测装置,其特征在于,所述控制单元是通过处理器的中央处理单元实现的。
10.一种配置了根据权利要求6至9之一所述的用于指令发射的寄存器写冲突检测装置的处理器。
全文摘要
本发明提供了一种寄存器写冲突检测方法及装置、以及处理器。初始地对写有效队列进行重置。获取所述指令的指令执行延迟。读取写有效队列中与处于指令准备发射状态的指令的指令执行延迟等时长的队列位置的写有效位值。判断所读取的写有效队列读取的写有效位值。在判断读取的值表示允许发射指令时允许发射所述处于指令准备发射状态的指令;并且在写有效队列中与处于指令准备发射状态的指令的指令执行延迟等时长的位置处设置不允许发射指令的写有效位值。在判断读取的值为不允许发射指令时不允许发射处于指令准备发射状态的指令。本发明提供了一种基于寄存器写冲突的检测方法,可利用较少的硬件复杂性实现指令的乱序发射,以提高指令流水线的效率。
文档编号G06F9/30GK102799419SQ20121032533
公开日2012年11月28日 申请日期2012年9月5日 优先权日2012年9月5日
发明者过锋, 许勇, 任秀江, 高红光, 郑方, 唐勇, 施晶晶 申请人:无锡江南计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1