快速和廉价的存储-加载冲突调度和转送机制制造技术

技术编号:2913587 阅读:204 留言:0更新日期:2012-04-11 18:40
诸实施例提供用于执行指令的方法和设备。在一个实施例中,该方法包括接收加载指令和存储指令以及计算加载指令的加载数据的加载有效地址和存储指令的存储数据的存储有效地址。该方法还包括比较加载有效地址和存储有效地址以及推测性地将存储指令的存储数据从正在其中执行存储指令的第一流水线转送到正在其中执行加载指令的第二流水线。加载指令接收来自第一流水线的存储数据和来自数据高速缓存器的被请求数据。如果加载有效地址匹配存储有效地址,则将推测性地转送的存储数据与加载数据合并。如果加载有效地址不匹配存储有效地址,则将来自数据高速缓存器的被请求数据与加载数据合并。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术一般涉及在处理器中执行指令。具体地,本申请涉及最小化由于存储-加载冲突引起的处理器停止(stall)。
技术介绍
现代计算机系统一般包含若干集成电路(IC),包括可用于在计算机系统中处理信息的处理器。由处理器处理的数据可包括由处理器执行的计算机指令以及由处理器使用计算机指令操纵的数据。计算机指令和数据一般存储在计算机系统的主存储器中。处理器一般通过以一系列小步骤执行指令来处理指令。在一些情形中,为增加由处理器处理的指令数量(且因此增加处理器的速度),可将处理器流水线化。流水线化指在处理器中提供多个独立的级(stage),其中每一级完成执行指令所必需的小步骤中的一个或多个。在一些情形中,流水线(除其它电路系统以外)可放在处理器的被称为处理器内核的部分中。一些处理器可以具有多个处理器内核,并且在一些情形中,每一个处理器内核可具有多个流水线。如果处理器内核具有多个流水线,则可并行地将指令组(称为发布组:issue group)发布给这多个流水线并且由这些流水线每一个并行地执行。作为在流水线中执行指令的示例,当收到第一指令时,第一流水线级可处理该指令的一小部分。当第一流水线级已经结束处理该指令的这一小部分时,第二流水线级可开始处理第一指令的另一小部分,同时第一流水线级接收并开始处理第二指令的一小部分。因而,处理器可同时(并行)处理二个或更多个指令。为提供对数据和指令的更快速存取以及更好地利用处理器,处理器可具有若干高速缓存器。高速缓存器是通常比主存储器小的存储器,-->且通常与处理器制造在同一管芯(die)(即芯片)。现代处理器一般具有若干级高速缓存器。最接近处理器内核的最快的高速缓存器称为1级高速缓存器(L1高速缓存器)。除了L1高速缓存器之外,处理器一般还具有第二个更大的高速缓存器,称为2级高速缓存器(L2高速缓存器)。在一些情形中,处理器可具有其它附加的高速缓存器级(例如,L3高速缓存器和L4高速缓存器)。处理器一般提供加载和存储指令来存取位于高速缓存器和/或主存储器中的信息。加载指令可包含存储器地址(直接在指令中提供或者使用地址寄存器)并标识目的寄存器(Rt)。当执行加载指令时,可检索存储在存储器地址处的数据(例如,从高速缓存器、从主存储器或者从其它存储装置)并且将其放入由Rt标识的目的寄存器中。同样,存储指令可包含存储器地址和源寄存器(Rs)。当执行存储指令时,可将来自Rs的数据写到存储器地址。通常,加载指令和存储指令使用在L1高速缓存器中高速缓存的数据。在一些情形中,当执行存储指令时,正被存储的数据可能不被立即放入L1高速缓存器中。例如,在加载指令开始在流水线中执行之后,可能占用若干处理器周期供加载指令完成流水线中的执行。作为另一个示例,在被写回到L1高速缓存器之前,正被存储的数据可能被放在存储队列中。使用存储队列有若干原因。例如,多个存储指令在处理器流水线中可能比将被存储数据写回L1高速缓存器更快地被执行。存储队列可保持这多个存储指令的结果,且因此允许较慢的L1高速缓存器稍后存储加载指令的结果并且“赶上”较快的处理器流水线。用存储指令的结果更新L1高速缓存器所需的时间称为存储指令的“等待时间”。如果来自存储指令的数据因等待时间而在L1高速缓存器中不是立即可用,则某些指令组合可能导致执行错误。例如,可能执行将数据存储到存储器地址的存储指令。如上所述,被存储数据可能在L1高速缓存器中不是立即可用的。如果在该存储指令之后不久就执行从相同存储器地址加载数据的加载指令,则该加载指令可能从L1高速-->缓存器接收在用该存储指令的结果更新L1高速缓存器之前的数据。因而,加载指令可能接收不正确或者“失效”的数据(例如,来自L1高速缓存器的、应当用先前执行的存储指令的结果代替的较旧数据)。如果加载指令从与先前执行的存储指令相同的地址加载数据,则加载指令可被称为从属加载指令(加载指令所接收的数据依赖于存储指令所存储的数据)。如果从属加载指令因为存储指令的等待时间而接收来自高速缓存的不正确数据,则所产生的执行错误可称为加载-存储冲突。因为从属加载指令可能已经接收了不正确的数据,所以随后发布的、使用不正确地加载的数据的指令也可能不正确地执行,并且得到不正确的结果。为检测这样的错误,可将加载指令的存储器地址与存储指令的存储器地址比较。如果存储器地址相同,则可检测到加载-存储冲突。然而,因为加载指令的存储器地址可能在执行加载指令之后才会知道,因此可能在已经执行了加载指令之后才检测到加载-存储冲突。因而,为解决检测到的错误,可从流水线中刷新(flush)所执行的加载指令和随后发布的指令(例如,可以丢弃加载指令和随后执行的指令的结果)并且可重新发布每一个被刷新的指令并且在流水线中重新执行。尽管加载指令和随后发布的指令被无效和重新发布,但L1高速缓存器可用由存储指令所存储的数据来更新。当第二次执行重新发布的加载指令时,加载指令就可接收来自L1高速缓存器的正确更新的数据。在加载-存储冲突之后执行、无效和重新发布加载指令和随后执行的指令可能占用许多处理器周期。因为加载指令和随后发布的指令的初始结果被无效,所以执行这些指令所花费的时间基本上浪费了。因而,加载-存储冲突一般导致处理器效率低下。因此,需要改进的方法来执行加载和存储指令。按照第一方面,本专利技术提供一种在处理器中执行指令的方法,该方法包括:接收加载指令和存储指令;计算加载指令的加载数据的加-->载有效地址以及存储指令的存储数据的存储有效地址;比较加载有效地址和存储有效地址;将存储指令的存储数据从正在其中执行存储指令的第一流水线转送到正在其中执行加载指令的第二流水线,其中加载指令接收来自第一流水线的存储数据和来自数据高速缓存器的被请求数据;如果加载有效地址与存储有效地址匹配,则将转送的存储数据与加载数据合并(merge);以及如果加载有效地址与存储有效地址不匹配,则将来自数据高速缓存器的被请求数据与加载数据合并。较佳地,本专利技术提供一种方法,其中仅当加载数据的页码与存储数据的页码的一部分匹配时合并转送的数据。较佳地,本专利技术提供一种方法,其中仅当加载数据的加载物理地址的一部分与存储数据的存储物理地址的一部分匹配时合并转送的数据。较佳地,本专利技术提供一种方法,其中加载物理地址是使用加载有效地址来获得的,以及其中存储物理地址是使用存储有效地址来获得的。较佳地,本专利技术提供一种方法,其中使用加载有效地址的仅一部分和存储有效地址的仅一部分来执行比较。较佳地,本专利技术提供一种方法,其中加载指令和存储指令是由第一流水线和第二流水线在没有将每一指令的有效地址变换成每一指令的实地址的情况下执行的。较佳地,本专利技术提供一种方法,它还包括:在将推测性地转送的存储数据与加载数据合并之后,执行验证,其中将存储数据的存储物理地址与加载数据的加载物理地址比较以确定存储物理地址是否与加载物理地址匹配。从第二方面来看,本专利技术包括一种处理器,它包括:高速缓存器;第一流水线;第二流水线;以及配置为执行以下步骤的电路系统:接收来自高速缓存器的加载指令和存储指令;计算加载指令的加载数据的加载有效地址和存储指令的存储数据的存储有效地址;将加载有效地址与存储有效地址比较;将存储指令的存储数据从正在其中执行存本文档来自技高网...

【技术保护点】
一种在处理器中执行指令的方法,该方法包括: 接收加载指令和存储指令; 计算所述加载指令的加载数据的加载有效地址和所述存储指令的存储数据的存储有效地址; 比较所述加载有效地址和所述存储有效地址; 将所述存储指令的存储数 据从其中正在执行所述存储指令的第一流水线转送到其中正在执行所述加载指令的第二流水线,其中所述加载指令接收来自所述第一流水线的存储数据和来自数据高速缓存器的被请求数据; 如果所述加载有效地址匹配所述存储有效地址,则将所转送的存储数据与所 述加载数据合并;以及 如果所述加载有效地址不匹配所述存储有效地址,则将来自所述数据高速缓存器的被请求数据与所述加载数据合并。

【技术特征摘要】
【国外来华专利技术】US 2006-6-7 11/422,6301.一种在处理器中执行指令的方法,该方法包括:接收加载指令和存储指令;计算所述加载指令的加载数据的加载有效地址和所述存储指令的存储数据的存储有效地址;比较所述加载有效地址和所述存储有效地址;将所述存储指令的存储数据从其中正在执行所述存储指令的第一流水线转送到其中正在执行所述加载指令的第二流水线,其中所述加载指令接收来自所述第一流水线的存储数据和来自数据高速缓存器的被请求数据;如果所述加载有效地址匹配所述存储有效地址,则将所转送的存储数据与所述加载数据合并;以及如果所述加载有效地址不匹配所述存储有效地址,则将来自所述数据高速缓存器的被请求数据与所述加载数据合并。2.如权利要求1所述的方法,其中仅当所述加载数据的页码匹配所述存储数据的页码的一部分时才合并所转送的数据。3.如权利要求1所述的方法,其中仅当所述加载数据的加载物理地址的一部分匹配所述存储数据的存储物理地址的一部分时才合并所转送的数据。4.如权利要求3所述的方法,其中所述加载物理地址是使用所述加载有效地址来获得的,所述存储物理地址是使用所述存储有效地址来获得的。5.如权利要求1所述的方法,其中使用所述加载有效地址的仅一部分和所述存储有效地址的仅一部分来执行所述比较。6.如权利要求1所述的方法,其中所述加载指令和所述存储指令是由所述第一流水线和所述第二流水线在没有将每个指令的有效地址变换成每个指令的实地址的情况下执行的。7.如权利要求1所述的方法,还包括:在将所转送的存储数据与所述加载数据合并之后,执行验证,其中将所述存储数据的存储物理地址与所述加载数据的加载物理地址比较以确定所述存储物理地址是否匹配所述加载物理地址。8.一种处理器包括:高速缓存器;第一流水线;第二...

【专利技术属性】
技术研发人员:DA鲁克
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

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

1