信息处理单元、程序和指令序列生成方法

文档序号:6480695阅读:234来源:国知局
专利名称:信息处理单元、程序和指令序列生成方法
技术领域
这里所讨论的实施例是适合于在信息处理单元中执行的预取过程中 使用的技术。
背景技术
按照常规,计算机在中央处理单元(CPU)与主存储装置之间至少具
有一层高速緩存存储器,以隐藏主存储装置的存取等待时间并提高不充分
的吞吐量。
存储器系统的性能改iiit度较CPU的iUL/性能增强而言是低的,因 此在近年来变得越来越有必要提高高速緩存存储器的命中率并隐藏高速 緩存未命中等待时间。
作为应对这些问题的一种解决手段,使用了预取(prefetch)技术, 以将预期在不远的将来使用的数据提前读取到高速緩存存储器中。
预取的实现方法可以大致地划分成两种方法通过软件的软件预取和 通过硬件的硬件预取。
在软件预取中,编译器或者编程器通过预先将预取指令显式地插入到 指令序列中来执,取。
另一方面,在硬件预取中,既往地址模式(address pattern)如存储 器存取地址和高速緩存器未命中地址存储于预取地址队列中,而当根据既 往地址模式来执行连续存储器存取时,预取预期地址。
按照常规,关于硬件预取,已知一种用以确定用于预取的跨值(stride value)的技术和一种与用以从存储器预取指令以便存储于高速緩存中的指 令高速緩存装置有关的技术(参见例如PCT申请第2006-510082号的公 布日文翻译和日本专利申请公开第HEI11-306028号)。
在常规软件预取中,预取指令被预先插入到指令序列中,这导致灵活 的控制。然而,对于软件预取而言难以根据动态行为如高速緩存未命中的发生和地址计算结果来插入必要的预取指令。
另夕卜,软件预財实际上插入不必要的冗^H5取指令的问题,因为对 于软件预取而言,难以在执行预取的高速緩存行单元中插入必要的最小单 个预取指令,这导致预取指令频繁插入到所有高速緩存行中。
另一方面,在常皿件预取中,如果同时发生超过可以作为地址模式
在预取地址队列中记录的条目的数目的多个连续存取序列,则基于LRU (最近最少使用)控制、用与连续存財关的新地址模式絲写现有条目。
然而,由于多个连续存取序列同时发生,因此可能在多个序列之间发 生覆写,这产生以下问题不能检测到连续存取,使得未生成硬件预取。
例如,图10示出了在预取地址队列100中M的预取地址模式通过 常规LRU控制的变化。预取地址队列100具有条目0至3这四个条目, 并且可以记录四个地址模式。
图IO还示出了当五个不同序列(这里为存储器地址A至E)的存储 器存取同时发生时预取地址队列100的地址模式变化。这里,图10中的 竖直方向示出了时间。
首先,在时间tl至t4相继地登记序列A至D的地址模式。这里, 作为一般的硬件预取机制,在存取地址之后的高速緩存行地址A+l至D+l 被分别登记在预取地址队列的条目0至3作为地址模式。
也就是说,根据序列A的存取在时间tl的发生,在条目0登记地址 模式A+1。另外,根据序列B的存取在时间t2的发生,在条目l登记地 址模式B+1。另外,根据序列C的存取在时间t3的发生,在条目2躬己 地址模式C+1。然后,根据序列D的存取在时间t4的发生,在条目3登 记地址模式D+l。
因而,4吏用了预取地址队列100的所有条目0至3。
当连续存取进一步进行并且在时间t5发生后续序列E的存取时,通 过LRU控制来覆写最旧条目0的地址模式A+1,以在条目0登记地址模 式E+1。
然后,当在时间t6发生序列A的连续存取时,已经通过在时间t5进 行覆写而删除了在条目0的在时间t4以前登记的地址模式A+l。因此, 即使在该时间点发生序列A的连续存取,也不能发出序列A的预取请求。
然后在时间点,利用地址模式A+2来执行条目1的地址模式B+l覆写处理。
此后,如图10中所示,与序列A相似,即使在时间t7至t9发生序 列B至D的连续存取,也不能发出序列B至D的预取请求。
根据常规LRU控制,如以上所述,如果同时发生比预取地址队列100 的条目数目更多的序列的存取,则在预取地址队列100中相互覆写相应序 列的地址模式。结果引起不能发出预取请求的问题。
另夕卜,硬件预^f艮据实施为电路的算法来操作,因此执,取的定时 和提前多远距离来预取地址是固定的,这导致不如软件预取那么灵活的控 制。
另外,硬件预取常规上对于编译器和编程器而言是不可见的,因此硬 件预取和软件预取独立地被优化。因此有优化效率较低的问题,比如通过 石更件预取和錄」件预取来预取同 一地址。

发明内容
鉴于上述问题而提出了本发明,并且其目的在于通过预取来实现有效 的性能改进。
为了实现上述目的,本发明的信息处理单元包括至少一个高速緩存 存储器,其设置在指令执行部分与存储部分之间;以及控制部分,其基于 由硬件预取请求发出部分针对存储器存取而请求的地址与保存于地址信 息保存部分中的地址信息之间的比较处理结果来控制地址信息内容,其中 当控制部分使地址信息保存部分保存地址信息时、或者当地址信息保存部 分中的地址信息被更新时,将对地址信息的覆写处理禁止预定时段。
另外,为了实现上述目的,本发明的信息处理单元包括硬件预取目 标指示部分,其向存储器存取指令附加指示信息,所述指示信息指示存储 器存取指令是否为硬件预取请求发出部分的硬件预取请求发出目标,其中 硬件预取请求发出部分基于该指示信息来执行硬件预取请求的比较处理 和发出处理。
另夕卜,为了实现上述目的,需要本发明的一种程序,以使计算机作为 硬件预取目标指示部分来工作。
另夕卜,为了实现上述目的,本发明的一种指令序列生成方法才艮据存取 信息保存部分能够保存的地址信息条目的数目,向存储器存取指令附加指示信息,所述指示信息指示存储器存取指令是否为硬件预取请求发出部分 的硬件预取请求发出目标,并且所述方法禁止与指示硬件预取请求发出目 标的指示信息所附加到的存储器存取指令有关的软件预取指令的生成,而 生成与指示不是硬件预取请求发出目标的指示信息所附加到的存储器存 取指令有关的软件预取指令,以将该软件预取指令插入到指令序列中。
根据上述信息处理单元,如以上所述,当使地址信息保存部分保存地 址信息或者地址信息保存部分中的地址信息被更新时,控制部分将对地址 信息的覆写处理禁止预定时段。因此,可以禁止标识连续存取的有效地址
信息紧接在被登记或者被更新之后,如常规LRU控制那样通过覆写处理 被删除。也就是说,即使发生超过条目数目的多个序列的连续存取,也可 以可靠地防止多个序列的存储器存糾目互覆写登记的地址信息。结果,可 以有效地使用地址信息保存部分,并且可以高效地发出针对连续存取的预 取请求,以使得可以通过预取来实现本发明的信息处理单元的有效性能改 进。
另夕卜,根据上述程序和指令序列生成方法,由于预取目标指示部分将 指示存储器存取指令是否为预取请求发出目标的指示信息附加到存储器 存取指令,因此可以从软件预取侧来确定是否要执行硬件预取,以使得可 以使软件预取和硬件预取的在效率方面相一致。结果,可以通过预取来实 现有效的性能改进。
本发明(实施例)的另外的目的和优点将部分地在以下描述中阐述, 并且将部分地根据该描述而变得清楚,或者可以通iM"本发明的实践来知 悉。将借助在所附权利要求中特别指出的元素和组合来实现和达到本发明 的目的和优点。
应理解,以上总体描述和以下具体描述仅为示例性和说明性的,而不 是限制所要求保护的本发明。


图l是示出了作为实施例的信息处理单元的配置的框图; 图2是图示了作为实施例的信息处理单元的配置的示图; 图3是示出了用于作为实施例的信息处理单元的硬件预取控制装置
的IMt过禾呈的流禾呈图;图4是出了用于作为实施例示的信息处理单元的硬件预取控制装置 的预取地址队列更新部分的操作过程的流程图5是示出了当发生超过作为实施例的信息处理单元的硬件预取控 制装置中的预取地址队列的条目数目的连续存取时、预期地址队列中M 的地址模式的变化示例的示图6是示出了用于作为实施例的信息处理单元的处理器单元的编译 部分的操作过程的流程图7示出了作为实施例的信息处理单元的石更件预取控制装置中的预 取地址队列中M的地址模式的变化示例;
图8示出了作为实施例的信息处理单元的硬件预取控制装置中的预 取地址队列中保存的地址模式的变化示例;
图9是示出了用于作为改型的信息处理单元的硬件预取控制装置的 预取地址队列更新部分的操作过程的流程图;以及
图10示出了在预取地址队列中保存的地址模式通过常规LRU控制 的变化。
具体实施例方式
下文将参照附图来描述实施例。 [1实施例
首先将参照图1中所示的功能框图来描述作为本发明实施例的信息 处理单元l的配置。
如图1中所示,信息处理单元1具有编译部分2、处理器单元(指令 发出部分/指令执行部分)10、主存储装置(存储部分)11、主高速緩存 12、次高速緩存13以及硬件预取控制装置20。信息处理单元1以由编译 器生成的程序指令序列作为输入,并且该程序由指令发出部分/指令执行 部分10执行。
编译部分2由编译器实现,并且将用编程语言编写的源代码转换成处 理器单元10可执行的形式。
如图2中所示,编译器是软件,而在由编程器生成程序之后,由通过 编译器实现的编译部分2生成程序指令序列。编程器的程序生成可以包括随后描述的软件预取指令和硬件预取目 标指示的生成/插入。
编译部分2的指令序列生成处理包括通过编#分2具有的预取目标 指示部分(硬件预取目标指示部分)3的硬件预取目标指示和通过编译部 分2具有的存储器存取指令生成部分4的软件预取指令插入处理。
以这一方式,由编译部分2实现软件预取。
与作为软件的编译器对比,处理器单元10、主存储装置11、主高速 緩存存储器12a、次高速緩存存储器13a以及硬件预取控制装置20是硬 件。
图2中的示例是在处理器单元10内部提供主高速緩存存储器12a(也 就是主高速緩存12 )和硬件预取控制装置20的示例,但是在本发明中, 设置主高速緩存12、次高速緩存13以及硬件预取控制装置20的位置不 受限制。
当预取目标指示部分3基于转换的指令序列来识别连续存取时,预取 目标指示部分3针对导致连续存取的存储器存取指令,基于硬件预取来确 定是否执行预取。
也就是说,预取目标指示部分3确定导致连续存取的存储器存取指令 是否为硬件预取控制装置20的随后描述的硬件预取请求发出部分22a的 硬件预取请求发出目标(下文称为预取请求发出目标)。然后,预取目标 指示部分3向存储器存取指令附加指示信息(硬件预取目标指示),该指 示信息指示存储器存取指令是否为硬件预取请求发出部分22a的预取请 求发出目标。
也就是说,指示信息是指示是否导致硬件预取请求发出部分22a发出 硬件预取请求的信息。
存储器存取指令生成部分4生成与导致连续存取的存储器存取指令 有关的软件预取指令,并且将软件预取指令插入到指令序列中。编译部分 2输出指令序列,由存储器存取指令生成部分生成的软件预取指令被插入 到该输出指令序列以作为存储器存取指令。
更具体而言,存储器存取指令生成部分4禁止与由预取目标指示部分 3附加了指示信息的存储器存取指令有关的软件预取指令的生成,所述指 示信息指示预取请求发出目标。另 一方面,存储器存取指令生成部分4针对以下存储器存取指令来生 成用以执行软件预取的软件预取指令,并且将软件预取指令插入到指令序 列中,所述存储器存取指令由预取目标指示部分3确定为导致连续存取, 并且被附加有指示不是预取请求发出目标(也就是非预取发出目标)的指 示信息。
处理器单元10执行计算处理,并且具有指令解码部分14和指令执行 部分15。
指令解码部分14将由编译部分2生成的程序指令序列(或者简称为 指令序列)解码成指令执行部分15可执行的形式。
指令执行部分15执行由指令解码部分14解码的存储器存取指令,并 且向存储器高速緩存12进行存储器存取请求。在以下描述中,与存储器 存取请求有关的存储器存取请求地址将称为存取地址。
从指令执行部分15到主高速緩存12的存储器存取请求(存取地址) 还与由预取目标表示部分3附加的硬件预取目标指示一起被输入到硬件 预取控制装置20的随后描述的存M式监视部分22。
主存储装置11存储与由指令执行部分15执行的存储器存取指令有关 的数据。
主高速緩存12具有存^il度快的主高速緩存存储器12a及其控制装 置12b。主高速緩存12的控制单元为例如64B (字节)。
次高速緩存13具有存^il度比主存储装置11的存^Ul度更快并且容 量比主高速緩存12的主高速緩存存储器12a的容量更大的次高速緩存存 储器13a及其控制装置13b。次高速緩存13的控制单元为例如256B。
响应于来自处理器单元10的存储器存取请求,如果主高速緩存12 保存存取地址的数据(见图1中的"存储器存取数据"),则主高速緩存12 将该数据作为提取数据而输出到处理器单元。
另一方面,如果主高速緩存12未保存存取地址的数据,则主高速緩 存12向次高速緩存13请求数据(见图1中的"主高速緩存登记(registration) 请求")。
如果次高速緩存13保存由主高速緩存12请求的数据,则次高速緩存 13以该数据(见图1中的"主高速緩存登记数据")向主高速緩存12做出 响应。然而,如果次高速緩存13未##所请求的数据,则次高速緩存13 向主存储装置11请求数据(见图1中的"次高速緩存登记请求")。然后, 主存储装置11以该数据对次高速緩存13做出响应(见图1中的"次高速 緩存登记数据,,)。
然后,数据从主存储装置11经由次高速緩存13和主高速緩存12而 输出到处理器单元10。
硬件预取控制装置20基于登记的既往地址模式与用以发出对高速緩 存块的硬件预取请求的后续存储器存取指令的存取地址的比较处理结果 来检测连续存取。
然后,硬件预取控制装置20具有预取地址队列(地址信息M部分) 21、地址模式监视部分22、主高速緩存预:^请求发出部分23、次高速緩 存预取请求发出部分24和预取地址队列更新部分(控制部分)25。
预取地址队列21基于由指令执行部分15执行的存储器存取指令的存 取地址来保存地址模式(地址信息)。
这里,预取地址队列21具有条目0至N的(N+l)个条目,并且例 如在条目0至N中的每个条目保存继存取地址之后的高速緩存行地址作 为地址信息。
预取地址队列21的内容由预取地址队列更新部分25控制。
预取地址队列21还具有用以指示是否在条目0至N中的各条目登记 了地址模式的标志。
另外,预取地址队列21具有与多个条目O至N中的各条目对应的多 个计数器21a-0至N (在图1中表示为标号21a )。
计数器21a-0至N (在不具体区别时,下文简称为计数器21a)针对 多个条目0至N中的每个条目,对在新保存或者更新地址模式之后的时 钟周期数目进行计数。
这里,时钟周期^1信息处理单元1 (例如处理器单元10 )的时钟周期。
存M式监视部分22执行从处理器单元10的指令执行部分15进行 的存储器存取请求所针对的存取地址与保存于预取地址队列21中的地址 模式的比较处理。
这里,如果指示信息指示存储器存取请求是预取请求发出目标,则存 ,式监视部分22基于向存储器存取请求附加的指示信息来执行上述比较处理。
然而,如果指示信息指示存储器存取请求不是预取请求发出目标,则
存M式监视部分22不执行上述比较处理。也就是说,在这一情况下, 存,式监视部分22通过禁止执行比较处理来禁止预取请求发出处理。
因此,硬件预取控制装置20不响应于以下存储器存取请求来操作, 该存储器存取请求的指示信息指示存储器存取请求不是预取请求发出目 标。
然后,如果比较处理的结果是存取地址与保存于预取地址队列21中 的地址模式匹配,则存和漠式监视部分22使主高速緩存预取请求发出部 分23或者次高速緩存预取请求发出部分24发出预取请求。
也就是说,如果作为比较处理的结果,既往存取过相邻地址(即在预 取地址队列21中登记了地址模式)并且检测到进行中的连续存取,则存 ^^式监视部分22认为连续存取在不远的将来进一步继续,并且使预取 请求发出部分发出预取请求。
是使主高速緩存预取请求发出部分23还是次高速緩存预取请求发出 部分24发出预取请求在本发明中不受限制,并且例如按照硬件预取控制 装置20的规定来决定。
主高速緩存预取请求发出部分23根据来自存,式监视部分22的指 令向主高速緩存12发出预取请求。
更具体而言,主高速緩存预取请求发出部分23发出用以使主高速緩 存12预取地址模式、也就是继存取地址之后的高速緩存行的1块数据的 请求。
主高速緩存预取请求发出部分23或者次高速緩存预^^请求发出部分 24请求预取的块的数目和提前多远来预取高速緩存行的数据在本发明中 不受限制,并且例如按照硬件预取控制装置20的规定来决定。
次高速緩存预取请求发出部分24根据来自存M式监视部分22的指 令向次高速緩存13发出预取请求。
这里,与主高速緩存预取请求发出部分23相似,次高速緩存预取请 求发出部分24预取继存取地址之后的高速緩存行的数据。
因此,存取模式监视部分22、主高速緩存预取请求发出部分23和次 高速緩存预取请求发出部分24作为硬件预取请求发出部分22a来工作,所述硬件预取请求发出部分22a基于从指令执行部分15进行的存储器存 取请求所针对的存取地址与保存于预取地址队列21中的地址模式的比较 处理结果,向主高速緩存12或者次高速緩存13发出预取请求。
预取地址队列更新部分25 (下文简称为更新部分25)基于存取漠式
址模式内容。
更具体而言,如果作为存M式监视部分22的比较处理结果,未发 现在预取地址队列21中登记了存取地址,则更新部分25将基于存取地址 的地址模式新登记到预取地址队列21中。
然而,新登记假设指示不是预取发出目标的指示信息未附加到存取地 址、另外存在可以在预取地址队列21中登记的空条目0至N或者可M 写的条目0至N。
另一方面,如果作为存取漠式监视部分22的比较处理结果,发现在 预取地址队列21中登记了存取漠式,则更新部分25将地址模式内容设置 为下一高速緩存行的地址以进行更新。
如果更新部分25使预取地址队列21保存(也就是新登记)地址模式 或者更新预取地址队列21中的地址模式内容,则更新部分25将对地址模 式的覆写处理禁止预定时段。
这里,更新部分25将与登记地址模式的各条目0至N对应的计数器 21a的值取得预定值识别为预定时段,并且禁止通过删除在各条目O至N 的地址模式来登记另 一地址模式,直至计数器21a的值取得预定值。
将参照以下描述的图4来描述更新部分25的控制处理细节。
另夕卜,更新部分25具有用以对预取地址队列21的计数器21a进行控 制的计数器控制部分26。
当在条目O至N保存了地址模式时,计数器控制部分26根据系统时 钟将对应计数器21a的值以一为单位递增。
当在条目O至N中的任何一个条目登记新地址模式或者更新在条目0 至N中任何一个条目保存的地址模式时,计数器控制部分26将对应计数 器21a的值重置为0。
这里,将参照图3中所示流程图(步骤Sl至S4 )来提供用于硬件预 取控制装置20的操作过程的概述。首先,当来自处理器单元10的指令执行部分15的存储器存取指令存 取主高速緩存(步骤Sl)时,硬件预取控制装置20的存和虔式监视部分 22确定向存储器存取指令附加的指示信息是否为硬件预取目标指示(步 骤S2)。也就是说,存M式监视部分22确定指示信息是否指示预取请 求发出目标。
这里,如果存取模式监视部分22确定存储器存取指令包>|^更件预取 目标指示(在步骤S2的"是"路径),则硬件预取控制装置20根据图4示 出的过程,使用存储器存取地址来操作硬件预WM^ (步骤S3)。
也就是说,存M式监视部分22通过执行比较处理来险测连续存取, 而硬件预WM^J发出预取并且更新预取地址队列21。
另一方面,如果作为存^式监视部分22的比较处理结果,在预取 地址队列21中发生命中错误,则在预取地址队列21中新登记存储器存取 地址。
对照而言,如果存M式监视部分22确定存储器存取指令不含硬件 预取目标指示(在步骤S2的"否,,路径),则硬件预取控制装置20不针对 存储器存取地址操作硬件预^构(步骤S4 )。
也就是说,存取漠式监视部分22的比较处理和在预取地址队列21 中的新登记/更新处理均不执行。
接着,将参照图4中所示流程图(步骤S10至S18)来描述用于更新 部分25的处理过程。
首先,当根据存,式监视部分22的比较结果和指示信息而发生与 硬件预取操作目标的存储器存取请求有关的地址模式的新登记请求时,更 新部分25基于预取地址队列21的各条目0至N的标志来确定在条目0 至N中是否有无效条目、也就是未登记地址模式的条目(步骤Sll)。
这里,如果更新部分25确定没有无效条目(在步骤Sll的"否"路径), 则更新部分25接着确定在条目0至N中是否有未禁止(禁止)覆写处理 的条目(步骤S12)。
也就是说,在这里,更新部分25确定是否有其计数器21a具有预定 值的条目。
然后,如果没有未禁止覆写处理的条目(在步骤S12的"否"路径), 则更新部分25不新登记与发生的登记请求所针对的存储器存取请求有关的地址模式(步骤S13 ),并且终止处理。
也就是说,由于计数器21a的值尚未达到预定值,因此更新部分25 禁止在条目0至N对地址模式的覆写处理。
另一方面,如果有未禁止覆写处理的条目(在步骤S12的"是"路径), 则更新部分25从条目0至N中选择可以执行覆写处理的一个条目,并且 通过覆写处理来新登记地址模式(步骤S14 )。
在此时,如果在条目0至N中有其计数器21a具有同一值的多个条 目,则更新部分25选择例如多个条目中最旧的条目来进行覆写处理。
然后,在执行了更新部分25对新地址模式的覆写处理之后,计数器 控制部分26将与覆写的条目对应的计数器21a的值设置(重置)为0 (步 骤S15 )。随后,计数器控制部分26在每个循环中向计数器加l(步骤S15 )。
在步骤Sll,如果在条目0至N中有无效条目(在步骤Sll的"是,, 路径),则更新部分25选择无效条目并且登记与发生的新登记请求所针对 的存取地址有关的地址模式(步骤S16)。
然后,计数器控制部分26将与无效条目对应的计数器21a的值重置 为0,并且l^在每个循环中向计数器加l (步骤S15)。
如果在示出了硬件预取操作目标(也就是信息所指示的预取发出目 标)的存储器存取过程中,按照存取模式监视部分22的比较处理的匹配 结^r测到连续存取(步骤S17),则存M式监视部分22向主高速緩预 取请求发出部分23或者次高速緩存预取请求发出部分24发出对下一高速 緩存行的硬件预取。在此时,更新部分25更新在对应条目的地址模式(步 骤S18)。
然后,计数器控制部分26将对应条目的计数器21a的值重置为0, 并且随后在每个循环中向计数器加1 (步骤S15 )。
这里,图5示出了当发生超过预取地址队列21中的条目数目(条目 最大数目)的连续存取时保存于预取地址队列21中的地址模式的示例。
在随后描述的图5和图7、图8中所示的示例中,假设预M址队列 21具有条目0至3这四个条目,使得可以记录四个地址模式。随后描述 的图5和图7、图8中的竖直方向示出了时间。
首先,当发生针对存取地址A至D的存储器存取请求时,在时间tl 至t4相继地登记这些序列A至D的地址模式。这里,作为一种硬件预取机制,分别在预取地址队列的条目0至3登记继存取地址之后的高速緩存 行地址A+l至D+l作为地址模式。
也就是说,更新部分25根据序列A的存取在时间tl的发生,在条目 0新登记地址模式A+l 。另外,更新部分25根据序列B的存取在时间t2 的发生,在条目1新登记地址模式B+1。另外,更新部分25根据序列C 的存取在时间t3的发生,在条目2新登记地址模式C+1。然后,更新部 分25根据序列D的存取在时间t4的发生,在条目3新登记地址模式D+1。
因而,^使用了预取地址队列21的所有条目0至3。
接着,当在时间t5发生针对存取地址E的存储器存取请求时,更新 部分25以图4中的步骤SIO、 Sll、 S12和S13的顺序来执行处理,并且 在结束时禁止在条目0至3对条目的覆写处理,使得未新登记序列E的 地址模式。
也就是说,与条目0至3对应的计数器21 a在时间t5分别示出了 "4"、 "3"、 "2,,和"1",并且未达到预定值"8",使得更新部分25禁止覆写处理。
1^,当在时间t6至t9发生针对存W^址A+l至D+l的存储器存 取请求时,存M式监视部分22、主高速緩存预取请求发出部分23或者 次高速緩存预取请求发出部分24在各时间t6至t9进行地址A+2至D+2 的预取请求。
然后,更新部分25执行更新处理,以在对应条目0至3登记这些地 址A+2至D+2作为地址模式。
接着,将参照图6中所示流程图(步骤S20至S26)来描述编译部分 2 (预取目标指示部分3和存储器存取指令生成部分4)的操作过程的示 例。
首先,编译部分2的预取目标指示部分3确定编译的存储器存取指令 是否为连续存取(步骤S20)。
这里,如果预取目标指示部分3确定存储器存取指令为连续存取(在 步骤S20的"是"路径),则预取目标指示部分3接着确定每一高速緩存行 的高速緩存命中率是否等于或小于预设的预定值M (步骤S21)。预定值 M皿件(CPU等)而定。
通过以下公式(1)来确定高速緩存命中率
高速緩存命中率=[高速緩存命中的次数]/[最大的高速緩存命中次数(1)
高速緩存命中的次数示出了在循环了一圏时高速緩存命中发生多少
次,并且通过以下公式(2)来确定,而最大的高速緩存命中次数通过以 下公式(3)来确定
高速緩存命中的次数=[一个高速緩存行的大小/[每一循环的更新宽 度(2)
最大的高速緩存命中次数=[一个高速緩存行的大小/[存储器存取类 型(3)
然后,如果高速緩存命中率等于或者大于预定值M (在步骤S21的 "否"路径),则预取目标指示部分3确定同时导致连续存取的存储器序列 的数目是否等于或大于预取地址队列21能够记录的条目的最大数目(这 里为N)(步骤S22 )。同时导致连续存M这里并不意味着存储器存取完 全同时发生,而是存取序列在同一时间段中由编^HP分2编译,并且检测 到连续存取。
然后,如果存取序列的数目等于或者小于预取也址队列21的条目的 最大数目(在步骤S22的"否"路径),则预取目标指示部分3确定存储器 存取指令是硬件预取目标,并且向存储器存取指令附加指示预取请求发出 目标的指示信息(步骤S23 )。预取目标指示部分3由此在终止处理之前 指示存储器存取指令为硬件预取目标。
另 一方面,如果预取目标指示部分3在步骤S21确定高速緩存命中率 小于M (在步骤S21的"是"路径)或者在步骤S22确定同时发生的存取 序列的数目大于预取地址队列21的最大条目数目(在步骤S22的"是,,路 径),则预取目标指示部分3指示存储器存取指令为非硬件预取目标(步 骤S24 )。
也就是说,在这些情况下,预取目标指示部分3向存储器存取指令附 加指示不是预取请求发出目标的指示信息。
另外,预取目标指示部分3向在步骤S20确定为不是连续存取(在步 骤S20的"否"路径)的存储器存取指令附加指示不是预取请求发出目标的 指示信息(步骤S24 )。
然而,如果存储器存取指令是否为连续存取是未知的,则预取目标指 示部分3可以在步骤S24提供非硬件预取目标指示或者提供硬件预取目标 指示(步骤S23 )。接着,预取目标指示部分3确定是否针对在步骤S24被提供了非硬件 预取目标指示的存储器存取指令来执行软件预取(步骤S25 )。
然后,如果预取目标指示部分3确定执行软件预取(在步骤S25的"是" 路径),则存储器存取指令生成部分4为存储器存取指令生成软件预取指 令,并且在终止处理之前将软件预取指令插入到指令序列中(步骤S26)。
另一方面,如果预取目标指示部分3确定不执行软件预取(在步骤 S25的"否"路径),则存储器存取指令生成部分4终止处理而不执行在步 骤S26的处理。
存储器存取指令生成部分4禁止针对在步骤S23被提供了硬件预取目 标指示的存储器存取指令来生成软件预取指令。
因此,当同时发生多个序列的连续存取时,编^P分2的预取目标指 示部分3根据预取地址队列21能够保存的地址模式的条目数目N+l来附 加指示信息。
更具体而言,如果同时导致连续存取的指令序列的数目超过条目数目 N+l,则预取目标指示部分3将指示不是预取请求发出目标的指示信息附 加到指令序列中与超过条目数目 一样多数目的存储器存取指令。
然后,在此时,存储器存取指令生成部分4生成与指示不是预取请求 发出目标的指示信息所附加到的存储器存取指令有关的软件预取指令,并 且将软件预取指令插入到指令序列中。
这里,图7示出了根据指示信息(硬件预取目标指示)而保存于预取 地址队列21中的地址模式内容的示例。
首先,当在时间tl至t3发生针对指示硬件预取目标的存取地址A至 C的存储器存取请求时,更新部分25在条目0至2相继地登记序列A至 C的地址模式A+l至C+l 。
随后,当在时间t4和t5发生针对指示非硬件预取目标的存取地址D 和E的存储器存取请求时,存M式监视部分22禁止比较处理。另外, 虽然条目3是无效条目(空条目),但是更新部分25也禁止在预取地址队 列21中登ie^"取地址D和E的地址模式。
类似地,更新部分25也不在预取地址队列21中登记在时间t8发生 的存取地址F的地址模式。
另一方面,更新部分25针对在时间t6、 t7和t9发生的序列A和B的存储器存取请求来执行地址模式的更新处理。另外,由存取模式监视部
分22、主高速緩存预取请求发出部分23或者次高速緩存预取请求发出部 分24发出预取请求。
图8示出了当指令执行部分15执行软件预取指令时*于预取地址 队列21中的地址模式内容的示例。
如图8中所示,当在时间t5请求存取地址D+8的软件预取指令时, 存取漠式监视部分22禁止对存取地址D+8的比较处理,因为其指示信息 指示非硬件预取目标。另外,尽管条目3是无效条目(空条目),但是更 新部分25也禁止在预取地址队列21中登记存取地址D+8的地址模式。
在图8中,在时间t4、 t9和tl0发出针对指示非硬件预取目标的存取 地址D、 D+l和D+9的存储器存取请求,并且针对这些请求也禁止存取 模式监视部分22的比较处理和更新部分25的登记处理。
根据作为本发明实施例的信息处理单元l,如以上所述,如果更新部 分25使预取地址队列21在预取地址队列21中保存(新登记)地址模式 或者更新地址模式,则将对地址模式的覆写处理禁止预定时段。
因此,可以禁止标识连续存取的有效地址信息紧接在被登记或者被更 新之后、如常规LRU控制那样通过覆写处理被删除。也就是说,即使发 生超过预取地址队列21的条目数目N+l的多个序列的连续存取,也仍然 可靠地防止多个序列的存储器存拟目互覆写所登记的地址模式。
结果,可以有效地使用预取地址队列21,并且可以高效地发出针对 连续存取的预取请求。也就是说,可以通过预取来实现有效的性能改进, 比如隐藏高速緩存未命中等待时间和提高吞吐量。
更具体而言,更新部分25将对在保存或者更新地址信息之后的时钟 周期数目进行计数的计数器21a的值达到预定值识别为预定时段。因此, 禁止更新部分25对对应条目的地址模式的覆写处理,直至计数器21a计 到预定的时钟周期数目,以4吏得可以可靠地实现上述效果。
预取目标指示部分3向存储器存取指令附加指示存储器存取指令是 否为硬件预取请求发出目标的指示信息,并且硬件预取控制装置20基于 指示信息来执,取请求的比较处理和发出处理。因此,可以从编,分 2这一侧、也就是软件预取侧来确定是否导致执行硬件预取,使得可以使 软件预取和硬件预取在效率方面相一致。
也就是说,存储器存取指令生成部分4可以通过与以下存储器存取指令有关的软件预取指令的生成,来可靠地禁止针对同 一存储器存取指令执
行软件预取和硬件预取,所述存储器存取指令由预取目标指示部分3附加
了指示预取请求发出目标的指示信息。结果,不会vM4t件预取侧和硬件预
取侧发出同一预取请求,使得可以可靠地禁止发出冗,取请求。 更具体而言,当同时发生多个序列的连续存取时,预取目标指示部分
3根据预取地址队列21能够保存的条目数目N+l来附加指示信息。因此, 可以执行根据硬件预取控制装置20的硬件配置的处理,使得可以更高效 地使用预取地址队列21、并且也可以使关于连续存取的预取请求更高效。
也就是说,如果同时导致连续存取的指令序列的数目超过条目数目 N+1,则预取目标指示部分3将指示不是预取请求发出目标的指示信息附 加到指令序列中的与超过条目数目的数目 一样多的存储器存取指令。然 后,存储器存取指令生成部分4生成与指示不;1预取请求发出目标的指示 信息所附加到的存储器存取指关的软件预取指令,并且将软件预取指 令插入到指令序列中。因此,可以将数目超过预取地址队列21的条目数 目N+l的地址模式的登记处理的发生禁止到最少。另外,可以通过软件 预取来可靠地保护指令序列中超过条目数目N+l的一部分,使得可以更 可靠和高效地发出预取请求。另外,在硬件预取与软件预取之间共享所处 理的预取^清求,使得可以使硬件预取和软件预取在效率方面相一致。
[21其它实施例
本发明不限于上述实施例,并且可以在不脱离本发明精神的情况下以 各种改型来实现本发明。
例如,通过考虑在处理器单元10与主存储装置11之间设置了两个高 速緩存系统(高速緩存12和13 )的情况作为示例来描述上述实施例。然 而,本发明不限于此,并且在处理器单元10与主存储装置11之间设置的 至少 一个高速緩存存储器M够的。
另夕卜,通过考虑硬件预取控制装置20监视向处理器单元10的主高速 緩存12的存储器存取请求的情况作为示例来描述上述实施例。也就是说, 通过考虑存M式监视部分22获取向处理器单元10的存储器高速緩存 12的存储器存取请求及其指示信息并且执行比较处理的情况作为示例来 描述上述实施例。然而,本发明不限于此,并且存:^式监视部分22可 以根据信息处理单元1的规定来监视主高速緩存12向次高速緩存13的存 储器存取请求。或者存取漠式监视部分22可以监视次高速緩存13向主存储装置11的存储器存取请求。
另夕卜,通过考虑包括以下特征的情况作为示例来描述上述实施例,一
个特征在于处理器单元10的编译部分2具有预取目标指示部分3、并 且基于目标指示来执行与预取有关的处理,而另一特征在于更新部分 25基于计数器21a,将覆写禁止处理执行预定时段。然而,本发明不需要 必然同时包括这两个特征,而是可以包括两个特征之一。
另夕卜,通过考虑计数器21a对时钟周期数目进行计数的情况作为示例 来描述上述实施例。然而,本发明不限于此,并且例如作为本实施例的改 型,计数器21a可以对在对应条目0至N保存地址或者更新地址模式之 后、禁止更新部分25对地址模式的覆写处理的次数进行计数。
在这一情况下,更新部分25将计数器值达到预定值识别为禁止覆写 处理的预定时段。也就是说,更新部分25禁止对应条目的覆写处理,直 至将覆写处理禁止与预定次数一样多次。
更新部分25在这一情况下的处理过程作为流程图(步骤S10至S18、 S13')在图9中示出。在图9中,与图4中所示标号相同的标号指示与 图4中所示处理相同的处理或者基本上相同的处理,因此这里省略其具体 描述。
如图9中所示,当更新部分25在步骤S13不执^f登记、也就是禁 止对登记的地址模式的覆写处理时,计数器控制部分26向M记条目的 计数器(禁止覆写处理的次数)加1 (步骤S13,)。
因而,也可以实现与上述实施例中的操作效勤目同的操作效果。
也通过考虑以下情况作为示例来描述上述实施例,在该情况下,当计 数器控制部分26重置计数器21a时,无论条目O至N的类型如何都将计 数器21a重置为0。然而,本发明不限于此,并且例如更新部分25可以 将用于预取地址队列21中更新的地址模式的预定时段设置为长于用于由 预取地址队列21新保存的地址模式的预定时段。
更具体而言,例如,如果更新部分25的覆写处理的禁止控制在计数 器21a的值为8时被取消,并且登记新地址模式,则计数器控制部分26 将该值重置为4。另一方面,如果检测到连续存取并且更新地址模式,则 计数器控制部分26将计数器值重置为0。
因而,更新部分25将用于更新的地址模式的预定时段设置为长于用 于由预取地址队列21新保存的地址模式的预定时段。因此,可以施加控制,以通过将更新的并且表现为连续存取的地址模 式的覆写处理禁止时段设置为长于新登记的地址模式的覆写处理禁止时
段,来使预取地址队列21优先保存表现为连续存取的地址模式。结果, 可以更可靠地发出预取请求,以便对处理器单元10的性能改进、也就是 隐藏高速緩存未命中等待时间和提高吞吐量有帮助。
另外,通过考虑以下情况来描述上述实施例,在该情况下,当发生数 目超过预取地址队列21的条目数目N+l的序列的连续存取时,预取目标 指示部分3执行软件预取。然而,本发明不限于此,例如,如果硬件预取 控制装置20的预^巨离(这里为与下一高速緩存行的间距)不合适并且 距离过长/过短、也就是说距离在预定范围之外,则预取目标指示部分3 可以附加指示序列的存储器存取指令不是预取请求发出目标的指示信息。 然后在此时,存储器存取指令生成部分4生成存储器存取指令的软件预取 指令。
也就是说,在软件预取控制装置20中,与提前多远来预取高速緩存 行受电路中实施的算法和设计变化程度所限制有关的规定少。
另一方面,可以用各种方式来改变软件预取中的预^J巨离,因此如果 硬件预取控制装置20的硬件预W巨离不在预定范围内、并且在执行硬件 预取之后高速緩存命中率和吞吐量均未提高,则停止石更件预取,并且替代 地,基于软件预取而在最优预^J巨离执,取。
也就是说,确定硬件预取控制装置20是否从硬件预取中获得超过预 定值的比如高速緩存命中率和吞吐量这样的硬件预取效果。如果确定未获 得超过预定值的硬件预取效果,则预取目标指示部分3向相关存储器存取 指令附加指示不是预取请求发出目标的指示信息。另夕卜,存储器存取指令 生成部分4生成与存储器存取指令有关的软件预取指令,并且将软件预取 指令插入到指令序列中。
另 一方面,如果确定获得超过预定值的硬件预取效果,则预取目标指 示部分3继续执行硬件预取,并且存储器存取指令生成部分4不生成与存 储器存取指令有关的软件预取指令。也就是说,预取目标指示部分3向相 关存储器存取指令附加指示硬件预取请求发出目标的指示信息。
因而,可以更可靠地获得上述实施例中的^Mt效果。
信息处理单元1的操作者可以使用各种现有方法或者自动确定硬件 预取效果。另外,在上述改型和一个实施例中的编译部分2的部分或者所有处理 可以由编程器实现。
上述编译部分2、计数器21a、存取模式监视部分22、主高速緩存预 取请求发出部分23、次高速緩存预取请求发出部分24和预取地址队列更 新部分25的功能可以由计算机(包括CPU、信息处理单元和各种终端) 执行的预定应用程序(预取控制程序)实现。
以其中记录程序的计算机可读记录介质的形式提供程序,该介质比如 是软盘、CD(比如CD-ROM、CD-R和CD-RW )和DVD(比如DVD-ROM、 DVD-RAM、 DVD-R、 DVD國RW、 DVD+R和DVD+RW )。在这一情况下, 计算M记录介质读取预取控制程序,并且在使用程序之前传送和在内部 存储装置或者外部存储装置中存储程序。在存储装置中存储程序之后,也 可以经由通信路径从存储装置(记录介质)如磁盘、光盘和磁光盘^^供程 序到计算机。
这里,计算机是包括硬件和操作系统(OS)的概念,并且意味着在 OS的控制之下操作的硬件。如果不需要OS并且应用程序单独操作硬件, 则硬件本身对应于计算机。硬件至少包括微处理器如CPU和用于读取记
录于记录介质中的计算积4呈序的装置。
部分2、计数器21a、存M式监视部分22、主高速緩存预取请求发出部 分23、次高速緩存预取请求发出部分24和预取地址队列更新部分25的 功能的程序代码。部分功能可以由OS而不是应用程序实现。
这里记载的所有示例和条件语言旨在于教导目的,以帮助读者理解本 发明的原理和发明人为了促进本领^L艮而贡献的概念,并且应理解为不 限于这样具体记载的示例和IHis而这样的示例在说明书中的组织也不涉 及本发明优劣的展现。虽然已经具体描述了本发明的实施例,但是应当理 解,在不脱离本发明的精神和范围情况下可以对实施例进行各种变化、替 换和更改。
权利要求
1.一种信息处理单元,包括指令执行部分(15),其执行存储器存取指令;存储部分(11),其保存与由所述指令执行部分(15)执行的存储器存取指令有关的数据;至少一个高速缓存存储器(12,13),其设置在所述指令执行部分(15)与所述存储部分(11)之间;地址信息保存部分(21),其基于由所述指令执行部分(15)执行的存储器存取指令的地址来保存地址信息;硬件预取请求发出部分(22a),其基于由所述指令执行部分(15)针对存储器存取而请求的地址与保存于所述地址信息保存部分(21)中的地址信息之间的比较处理结果,向所述高速缓存存储器(12,13)发出硬件预取请求;以及控制部分(25),其基于所述比较处理结果来控制由所述地址信息保存部分(21)保存的地址信息内容,其中当使所述地址信息保存部分(21)保存地址信息时或者当所述地址信息保存部分(21)中的地址信息被更新时,所述控制部分(25)将对所述地址信息的覆写处理禁止预定时段。
2. 根据权利要求1所述的信息处理单元,还包括计数器(21a), 其对在保存或者更新所述地址信息之后的时钟周期的数目进行计数,其 中所述控制部分(25)将所述计数器(21a)的值达到预定值识别为所 述预定时段。
3. 根据权利要求1所述的信息处理单元,还包括计数器(21a), 其对在保存或者更新所述地址信息之后禁止所述控制部分(25 )对所i^ 址信息的覆写处理的次数进行计数,其中所述控制部分(25)将所述计数器(21a)的值达到预定值识别为所 述预定时段。
4. 根据权利要求1所述的信息处理单元,其中所述控制部分(25) 将与所述更新的地址信息有关的所述预定时段设置为长于由所述地址信息保存部分(21)新保存的地址信息的预定时段。
5. 根据权利要求1至4中任何一项权利要求所述的信息处理单元, 还包括硬件预取目标指示部分(3),其向所述存储器存取指令附加指示 信息,所述指示信息指示所述存储器存取指令是否为所述硬件预取请求发 出部分(22a)的硬件预取请求发出目标,其中所述硬件预取请求发出部分(22a)基于所述指示信息来执行硬件预 取请求的比较处理和发出处理。
6. —种信息处理单元,包括 指令执行部分(15 ),其执行存储器存取指令;存储部分(11 ),其保存与由所述指令执行部分(15 )执行的存储器 存取指令有关的数据;至少一个高速緩存存储器(12, 13 ),其设置在所述指令执行部分(15 ) 与所述存储部分(11)之间;地址信息保存部分(21 ),其基于由所述指令执行部分(5)执行的存 储器存取指令的地址来保存地址信息;硬件预取请求发出部分(22a ),其基于由所述指令执行部分(15)针 对存储器存取而请求的地址与保存于所i^址信息保存部分(21)中的地 址信息之间的比较处理结果,向所述高速緩存存储器(12, 13)发出硬件 预取请求;以及硬件预取目标指示部分(3 ),其向所述存储器存取指令附加指示信息, 所述指示信息指示所述存储器存取指令是否为所述硬件预取请求发出部 分(22a)的硬件预取请求发出目标,其中所述硬件预取请求发出部分(22a)基于所述指示信息来执行硬件预 取请求的比较处理和发出处理。
7. 根据权利要求6所述的信息处理单元,其中所述硬件预取请求发 出部分(22a)在所述指示信息指示是硬件预取请求发出目标时执行硬件 预取请求的比较处理和发出处理,而在所述指示信息指示不是硬件预取请 求发出目标时禁止执行硬件预取请求的比较处理和发出处理。
8. 根据权利要求6所述的信息处理单元,还包括存储器存取指令 生成部分(4 ),其生成与导致连续存取的存储器存取指令有关的软件预取 指令,以将所述软件预取指令插入到指令序列中,其中所述存储器存取指令生成部分(4 )禁止与由所述硬件预取目标指示 部分(3)附加了指示信息的存储器存取指令有关的软件预取指令的生成, 所述指示信息指示硬件预取请求发出目标。
9. 根据权利要求5至8中任何一项权利要求所述的信息处理单元, 其中当发生多个序列的连续存取时,所述硬件预取目标指示部分(3)根 据所述地址信息保存部分(21)能够保存的地址信息条目的数目来附加所 述指示信息。
10. 根据权利要求9所述的信息处理单元,其中当导致连续存取的指 令序列的数目大于所述条目数目时,所述硬件预取目标指示部分(3 )将 指示不是硬件预取请求发出目标的指示信息附加到所述指令序列中与超 过所述条目数目的数目 一样多的所述存储器存取指令;并且所述存储器存取指令生成部分(4)生成与指示不是硬件预取请求发 出目标的所述指示信息所附加到的所述存储器存取指令有关的软件预取 指令,并且将所述软件预取指令插入到指令序列中。
11. 根据权利要求8所述的信息处理单元,其中当硬件预取的距离在 预定范围之外时,所述硬件预取目标指示部分(3)向与所述地址信息有 关的存储器存取指令附加指示不是硬件预取请求发出目标的指示信息,而 所述存储器存取指令生成部分(4)生成与所述存储器存取指令有关的软 件预取指令。
12. —种程序,其使计算机实现用以执行对信息处理单元中的高速緩 存存储器(12, 13)的预取的功能,所述信息处理单元具有指令执行部 分(15),其执行存储器存取指令;存储部分(ll),其保存与由所述指令 执行部分(15 )执行的存储器存取指令有关的数据;至少一个高速緩存存 储器(12, 13 ),其设置在所述指令执行部分(15 )与所述存储部分(11) 之间;以及地址信息保存部分(21),其基于由所述指令执行部分(15) 执行的存储器存取指令的地址来保存地址信息,其中所述程序使所述计算机作为硬件预取请求发出部分(22a)和控制部 分(25)来工作,所述硬件预取请求发出部分(22a)基于由所述指令执 行部分(15)针对存储器存取而请求的地址与保存于所述地址信息保存部 分(21)中的地址信息之间的比较处理结果,向所述高速緩存存储器(12, 13)发出硬件预取请求,并且所述控制部分(25)基于所述比较处理结果来控制由所述地址信息保存部分(21) M的地址信息内容;并且所述程序使所述计算机以以下方式工作当使所述地址信息M部分 (21) *地址信息时或者当所述地址信息M部分(21)中的地址信息 被更新时,所述控制部分(25)将对所述地址信息的覆写处理禁止预定时 段。
13. —种程序,其使计算机实现用以执行向信息处理单元中的高速緩 存存储器(12, 13)的预取的功能,所述信息处理单元具有指令执行部 分(15),其执行存储器存取指令;存储部分(ll),其保存与由所述指令 执行部分(15 )执行的存储器存取指令有关的数据;至少一个高速緩存存 储器(12, 13 ),其设置在所述指令执行部分(15 )与所述存储部分(11) 之间;地址信息保存部分(21 ),其基于由所述指令执行部分(15)执行 的存储器存取指令的地址来保存地址信息;以及硬件预取请求发出部分(22a),其基于由所述指令执行部分(15)针对存储器存取而请求的地址 与保存于所述地址信息保存部分(21 )中的地址信息之间的比较处理结果, 向所述高速緩存存储器(12, 13)发出硬件预取请求,其中所述程序使所述计算机作为硬件预取目标指示部分(3)来工作,所 述硬件预取目标指示部分(3)向所述存储器存取指令附加指示信息,所 述指示信息指示所述存储器存取指令是否为所述硬件预取请求发出部分 (22a)的硬件预取请求发出目标。
14. 根据权利要求13所述的程序,其中使所述计算机作为存储器存 取指令生成部分(4)来工作,所述存储器存取指令生成部分(4)生成与 导致连续存取的存储器存取指令有关的软件预取指令,以将所述软件预取 指令插入到指令序列中;并且使所述计算机以以下方式工作所述存储器存取指令生成部分(4) 禁止与由所述硬件预取目标指示部分(3 )附加了指示硬件预取请求发出 目标的所述指示信息的存储器存取指令有关的软件预取指令的生成,并且 还生成与附加了指示不是硬件预取请求发出目标的所述指示信息的存储 器存取指令有关的软件预取指令,以将所述软件预取指令插入到指令序列 中。
15. 根据权利要求13或者14所述的程序,其中使所述计算机以以下 方式工作当发生多个序列的连续存取时,所述硬件预取目标指示部分(3 ) 根据所述地址信息保存部分(21)能够保存的地址信息条目的数目来附加所述指示信息。
16. 根据权利要求15所述的程序,其中使所述计算机以以下方式工 作当发生多个序列的连续存取时,所述硬件预取目标指示部分(3)在 所述条目数目的范围内向所述存储器存取指令附加指示硬件预取请求发 出目标的指示信息,而当超过所述条目数目时,所述硬件预取目标指示部 分将指示不是硬件预取请求发出目标的指示信息附加到指令序列中与超 过所述条目数目的数目 一样多的所述存储器存取指令。
17. —种在信息处理单元中生成指令序列的指令序列生成方法,所述 信息处理单元具有指令执行部分(15),其执行存储器存取指令;存储 部分(11),其保存与由所述指令执行部分(15)执行的存储器存取指令 有关的数据;至少一个高速緩存存储器(12, 13),其设置在所述指令执 行部分(15)与所述存储部分(11)之间;地址信息保存部分(21),其 基于由所述指令执行部分(15)执行的存储器存取指令的地址来保存地址 信息;以及硬件预取请求发出部分(22a),其基于由所述指令执行部分(15 ) 针对存储器存取而请求的地址与保存于所述地址信息保存部分(21)中的 地址信息之间的比较处理结果,向所述高速緩存存储器(12, 13)发出硬 件预取请求,其中根据所ii^址信息保存部分(21)能够保存的地址信息条目的数目, 将指示信息附加到所述存储器存取指令,所述指示信息指示所述存储器存 取指令是否为所述硬件预取请求发出部分(22a)的硬件预取请求发出目 标;并且在生成与指示不是硬件预取请求发出目标的指示信息所附加到的存 储器存取指令有关的软件预取指令、以将所述软件预取指令插入到指令序 列中时,禁止与指示硬件预取请求发出目标的指示信息所附加到的存储器 存取指令有关的软件预取指令的生成。
18. 根据权利要求17所述的指令序列生成方法,其中当发生多个序 列的连续存取时,在所述条目数目的范围内将指示硬件预取请求发出目标 的指令信息附加到所述存储器存取指令,而当超过所述条目数目时,将指 示不是硬件预取请求发出目标的指示信息附加到与超过所述条目数目的 数目 一样多的所述存储器存取指令。
19. 根据权利要求17或者18所述的指令序列生成方法,其中当硬件 预取的距离在预定范围之外时,将指示不是硬件预取请求发出目标的指示信息附加到与所述地址信息有关的存储器存取指令,并且生成与所述存储 器存取指令有关的软件预取指令。
20.根据权利要求17或者18所述的指令序列生成方法,其中确定所 述硬件预取请求发出部分(22a)是否通过硬件预取而获得等于或者高于 预定水平的硬件预取效果,并且如果确定未获得等于或者高于所述预定水 平的硬件预取效果,则将指示不是硬件预取请求发出目标的指示信息附加 到所述存储器存取指令,并且生成与所述存储器存取指令有关的软件预取 指令。
全文摘要
公开了一种信息处理单元、程序和指令序列生成方法。一种信息处理单元包括至少一个高速缓存存储器(12,13),其设置在指令执行部分(15)与存储部分(11)之间;以及控制部分(25),其基于由硬件预取请求发出部分(22a)针对存储器存取而请求的地址与保存于地址信息保存部分(21)中的地址信息之间的比较处理结果来控制地址信息内容,其中当控制部分(25)使地址信息保存部分(21)保存地址信息或者更新地址信息保存部分(21)中的地址信息时,将对地址信息的覆写处理禁止预定时段。
文档编号G06F9/38GK101539853SQ200910006039
公开日2009年9月23日 申请日期2009年1月22日 优先权日2008年3月21日
发明者原口正寿, 大河原英喜 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1