用于预取指令线的方法和处理器技术

技术编号:2839676 阅读:197 留言:0更新日期:2012-04-11 18:40
本发明专利技术的实施例提供了一种用于预取指令线的方法和装置。在一个实施例中,所述方法包括:从第2级别高速缓冲存储器读取第一指令线;在第一指令线中识别以在该第一指令线外部的指令为目标的分支指令;从所识别的分支指令提取地址;以及使用所提取的地址从第2级别高速缓冲存储器预取包含作为目标的指令的第二指令线。

【技术实现步骤摘要】

本专利技术总体涉及计算机处理器领域。更具体地说,本专利技术涉及一种计算机处理器使用的高速缓冲存储机制。
技术介绍
现代的计算机系统通常包含多个集成电路(IC),其中包括可以用于在所述计算机系统中处理信息的处理器。由处理器处理的数据可以包括由处理器执行的计算机指令以及由处理器使用计算机指令而操纵的数据。所述计算机指令和数据通常存储在计算机系统中的主存储器中。处理器通常通过以一系列小步骤执行指令来处理指令。在一些情况下,为了增大由处理器处理的指令的数目(并因此提高处理器的速度),可以使处理器流水线化(pipeline)。流水线化指的是在处理器中提供分离的多个级(stage),其中,每个级执行用于执行指令所需要的一个或多个小步骤。在一些情况下,(除了其它电路之外)流水线也可以置于处理器中的被称为处理器核芯的部分中。一些处理器可以具有多个处理器核芯。作为在流水线中执行指令的示例,当接收到第一指令时,第一流水线级可以处理所述指令的一小部分。当第一流水线级已经结束处理指令的该小部分时,第二流水线级可以开始处理所述第一指令的另一小部分,同时第一流水线级接收并开始处理第二指令的一小部分。因此,处理器可以同时(并行地)处理两个或多个指令。为了提供对于数据和指令的更快的访问以及更好地利用处理器,处理器可以具有多个高速缓冲存储器。高速缓冲存储器是通常小于主存储器的存储器,并且通常与处理器制造在同一集成块(die)(即芯片)上。现代处理器通常具有多个高速缓冲存储器级别(level)。最接近处理器核芯的最快的高速缓冲存储器被称为第1级别高速缓冲存储器(L1高速缓冲存储器)。除了L1高速缓冲存储器之外,处理器通常还具有另一更大的高速缓冲存储器,被称为第2级别高速缓冲存储器(L2高速缓冲存储器)。在一些情况下,处理器可以具有其它的附加高速缓冲存储器级别(例如,L3高速缓冲存储器和L4高速缓冲存储器)。为了向处理器提供用于填充(fill)处理器的流水线的每个级的足够指令,处理器可以从L2高速缓冲存储器以被称为指令线的包含多个指令的组来取出指令。所取出的指令线可以被置于L1指令高速缓冲存储器(I-高速缓冲存储器),其中,处理器的核芯可以访问在指令线中的指令。要由处理器处理的数据块可以类似地从L2高速缓冲存储器取出,并置于L1高速缓冲存储器数据高速缓冲存储器(D-高速缓冲存储器)中。从较高的高速缓冲存储器级别取出信息以及将所述信息置于较低的高速缓冲存储器级别的处理可以被称为读取(fetching),并且通常需要一定的时间量(等待时间)。例如,如果处理器核芯请求信息并且所述信息不在L1高速缓冲存储器中(被称为高速缓冲存储器未中(cache miss)),则从L2高速缓冲存储器读取所述信息。当向下一个高速缓冲存储器/存储器级别搜索所请求的信息时,每个高速缓冲存储器未中导致另外的等待时间。例如,如果所请求的信息不在L2高速缓冲存储器中,则所述处理器可以在L3高速缓冲存储器或者在主存储器中查找所述信息。在一些情况下,处理器可能比从高速缓冲存储器和/或存储器取出指令和数据更快地处理所述指令和数据。例如,在已经处理了指令线后,需要花时间来访问要处理的下一个指令线(例如,如果当向L1高速缓冲存储器搜索包含下一个指令的指令线时存在高速缓冲存储器未中)。当处理器正在从更高级别的高速缓冲存储器或存储器取出下一个指令线时,流水线级可能完成了处理先前的指令,并且没有剩下的要处理的指令(被称为流水线停止(stall))。当流水线停止时,处理器未被充分使用,并且损失流水线化的处理器核芯提供的益处。因为指令(并且因此指令线)通常被依序处理,因此一些处理器试图通过读取依序编址的指令线的块来防止流水线停止。通过读取依序编址的指令线的块,当需要时在L1高速缓冲存储器中可以已经获得下一个指令线,以便处理器核芯当它结束处理在当前指令线中的指令时可以容易地访问在下一个指令线中的指令。在一些情况下,读取依序编址的指令线的块不能防止流水线停止。例如,被称为退出分支指令(exit branch instructions)的一些指令可以使处理器分支到在依序编址的指令线的块之外的指令(被称为目标指令)。一些退出分支指令可以分支到不在当前指令线或下一个已经读取的依序编址的指令线中的目标指令。因此,当处理器确定进行该分支时,在L1高速缓冲存储器中可能不能获得包含所述退出分支的目标指令的下一个指令线。结果,流水线可能停止,并且处理器可能低效率地运行。关于读取数据,在指令访问数据的情况下,处理器可能试图在L1高速缓冲存储器中定位包含所述数据的数据线。如果所述数据线不能被定位在L1高速缓冲存储器中,则所述处理器可能在对存储器的L2高速缓冲存储器和更高的级别搜索期望的数据线时停止。因为期望数据的地址可能直到执行指令时才知道,因此处理器可能直到执行所述指令时才能够去搜索期望的数据线。当处理器搜索数据线时,可能发生高速缓冲存储器未中,导致流水线停止。一些处理器可以通过读取包含当前访问的数据地址附近的数据地址的数据线块,来防止这样的高速缓冲存储器未中。读取附近的数据线依赖于这样的假设当访问在数据线中的数据地址时,也将通常访问附近的数据地址(被称为引用局域性(locality of reference))。但是,在一些情况下,该假定可能证明是错误的,如通过指令来访问不在当前数据线附近的数据线中的数据,由此导致高速缓冲存储器未中和处理器低效率。因此,需要在使用高速缓冲存储的存储器的处理器中的取出指令和数据的改进的方法。
技术实现思路
本专利技术的实施例提供了一种用于预取指令线的方法和装置。在一个实施例中,所述方法包括(a)从第2级别高速缓冲存储器读取第一指令线;(b)在第一指令线中识别以在第一指令线外部的指令为目标的分支指令;(c)从所识别的分支指令提取地址;以及(d)使用所提取的地址从第2级别高速缓冲存储器预取包含作为目标的指令的第二指令线。在一个实施例中,提供了处理器。所述处理器包括第2级别高速缓冲存储器、第1级别高速缓冲存储器、处理器核芯、和电路。第1级别高速缓冲存储器被配置来从第2级别高速缓冲存储器接收指令线,其中,每个指令线包括一个或多个指令。所述处理器核芯被配置来执行从第1级别高速缓冲存储器取出的指令。所述电路被配置来(a)从第2级别高速缓冲存储器读取第一指令线;(b)在第一指令线中识别以在第一指令线外部的指令为目标的分支指令;(c)从所识别的分支指令提取地址;以及(d)使用所提取的地址从第2级别高速缓冲存储器预取包含作为目标的指令的第二指令线。在一个实施例中,提供了一种用于在指令线中存储退出分支地址的方法。所述指令线包括一个或多个指令。所述方法包括执行在所述指令线中的一个或多个指令之一;确定是否所述一个或多个指令中的该一个分支到在另一指令线中的指令;以及,如果如此的话,则将退出地址附加到对应于另一指令线的指令线。附图说明为了使得获得和详细地理解本专利技术的上述特征、优点和目的,可以通过参见在附图中图解的本专利技术的实施例来获得上面简单总结的本专利技术的更具体的说明。但是,应当注意,所附的附图仅仅图解本专利技术的典型实施例,因此不被理解为限制其范围,因为本专利技术可以允许其它等同效果的实施例。图1是描述按照本专利技术的本文档来自技高网
...

【技术保护点】
一种预取指令线的方法,包括:(a)从第2级别高速缓冲存储器读取第一指令线;(b)在所述第一指令线中识别以在所述第一指令线外部的指令为目标的分支指令;(c)从所识别的分支指令提取地址;以及(d)使用所提取的地址从所述第2级别高速缓冲存储器预取包含作为目标的指令的第二指令线。

【技术特征摘要】
US 2006-2-3 11/347,4121.一种预取指令线的方法,包括(a)从第2级别高速缓冲存储器读取第一指令线;(b)在所述第一指令线中识别以在所述第一指令线外部的指令为目标的分支指令;(c)从所识别的分支指令提取地址;以及(d)使用所提取的地址从所述第2级别高速缓冲存储器预取包含作为目标的指令的第二指令线。2.按照权利要求1的方法,还包括重复步骤(a)-(d)以预取包含由在所述第二指令线中的分支指令作为目标的指令的第三指令线。3.按照权利要求1的方法,还包括重复步骤(a)-(d),直到预取了阈值数目的指令线。4.按照权利要求1的方法,还包括重复步骤(a)-(d),直到从所述第2级别高速缓冲存储器预取了包含阈值数目的不可预测退出分支指令的多个预取的指令线。5.按照权利要求1的方法,还包括在所述第一指令线中识别以在所述第一指令线外部的第二指令作为目标的第二分支指令;从所识别的第二分支指令中提取第二地址;以及使用所提取的第二地址来从所述第2级别高速缓冲存储器预取包含作为目标的第二指令的第三指令线。6.按照权利要求1的方法,其中,所提取的地址存储为附加到所述第一指令线的有效地址。7.按照权利要求6的方法,其中,在所识别的分支指令的先前执行期间计算所述有效地址。8.按照权利要求1的方法,其中,所述第一指令线包含以在所述第一指令线外部的二个或更多指令作为目标的二个或更多分支指令,并且其中,在所述第一指令线中存储的分支历史值指示所识别的分支指令是所述第一指令线的预测的分支。9.一种处理器,包括第2级别高速缓冲存储器;第1级别高速缓冲存储器,被配置来从所述第2级别高速缓冲存储器接收指令线,其中,每个指令线包括一个或多个指令;处理器核芯,被配置来执行从所述第1级别高速缓冲存储器取出的指令;以及电路,被配置来(a)从第2级别高速缓冲存储器读取第一指令线;(b)在所述第一指令线中识别以在所述第一指令线外部的指令为目标的分支指令;(c)从所识别的分支指令提取地址;以及(d)使用所提取的地址从所述第2级别高速缓冲存储器预取包含作为目标的指令的第二指令线。10.按照权利要求9的处理器,其中,所述控制电路还被配置来重复步骤(a)-(d),以预取包含被在所述第二指令线中的分支指令作为目标的指令的第三指令线。11.按照权利要求9的处理器,其中,所述控制电路还被配置来重复步骤(a)-(d),直到预取了阈值数目的指令线。12.按照权利要求9的处理器,其中,所述控制电路还被配置来重复步骤(a)-(d),直到从所述第2级...

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

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

1