CN1726477A - 用于预取和存储器管理的页描述符 - Google Patents
用于预取和存储器管理的页描述符 Download PDFInfo
- Publication number
- CN1726477A CN1726477A CN200380106104.0A CN200380106104A CN1726477A CN 1726477 A CN1726477 A CN 1726477A CN 200380106104 A CN200380106104 A CN 200380106104A CN 1726477 A CN1726477 A CN 1726477A
- Authority
- CN
- China
- Prior art keywords
- label
- page
- leaf
- line
- prefetch buffer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 239000000872 buffer Substances 0.000 claims abstract description 60
- 238000000034 method Methods 0.000 claims abstract description 40
- 239000013598 vector Substances 0.000 claims description 36
- 230000005540 biological transmission Effects 0.000 claims description 7
- 238000013277 forecasting method Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims 1
- 230000008676 import Effects 0.000 claims 1
- 230000006399 behavior Effects 0.000 abstract description 6
- 230000002708 enhancing effect Effects 0.000 abstract 1
- 238000004364 calculation method Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000008034 disappearance Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6022—Using a prefetch buffer or dedicated prefetch cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6024—History based prefetching
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Traffic Control Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开一种用于增强高速缓存预取行为的计算机系统和方法。一种计算机系统包括处理器、主存储器、预取控制器、高速缓冲存储器、预取缓冲器、以及主存储器,其中主存储器中的每个页具有与其相关联的标签,该标签用于控制预取来自该页的线以及来自至少一个其它页的线的可变子集。并且,预取控制器耦接到处理器,其中通过使用对应的标签取出对应的数据线,并将该对应数据线发送到高速缓冲存储器,其中该对应标签要被存储在预取缓冲器中,预取控制器响应处理器确定数据线发生了错误(或缺失)。
Description
技术领域
本发明一般涉及一种具有处理器、主存储器和高速缓存的计算机系统,特别涉及一种用于增强高速缓存预取行为的计算机系统和方法。
背景技术
计算机设计中的常见问题是不断增长的在计算机系统的处理器(或多个处理器)与主存储器之间传输数据或信息所需的按照处理器循环的等待时间(latency)。增大数目的处理器循环导致了处理器芯片上的高速缓存不断变大,但是该方案产生了不断减小的回报。减小存储器等待时间的另一个方案是试图将数据预取到一个或多个高速缓存中。已经提出了大量用于预取的机制,并且在众多计算机系统中采用预取。一种常见方案是(假定一个线(line)L(i,j)发生高速缓存错误(fault),其中线L(i,j)表示页j中的第i线)不仅取出期望线而且取出下一线。在名称为“SpecialSection on High Performance Memory Systems”(IEEE Transactions onComputers,vol.50,No.11,Nov.2001)的论文中,该论文包括全部问题和减轻其的各种方案的描述。
在上述预取方案中和在当前预取方案中,这些方案通过观察当前访问行为,例如正在取出哪些线,并且可能观察其与当前位于高速缓存中的其它线的关系而工作。
在名称为“Adaptive Variation of the Transfer Unit in a StorageHierarchy”(P.A Franaszek和B.T.Bennett,IBM J.Res.Develop,Vol.22,No.4,July 1978,pp.405-412)的论文中,该论文讨论了一种模型,在该模型中存储分级结构中的预取是基于存储在存储器中的关于对各个页的引用的信息。例如,存储和更新这样的信息,假定一页发生错误,其确定是应当取出该页还是还应当取出该页以及固定的其它页集合。上述论文中的方法应用于将页从盘存储装置取到主存储器中而非从主存储器取到高速缓存线(cache line)中。
现有技术的预取方法没有考虑有用于改善预取性能的访问模式行为。
因此,需要通过针对存储器中的每个单独页存储和更新关于访问模式的相关信息、以及由软件提供的预取指示(directives)来改善预取性能。
发明内容
在计算机系统中,通过在该系统中为每个页维护确定预取行为的页历史标签(或PHT)来增强高速缓存预取行为。该历史标签可由高速缓存硬件、操作系统或者其它适合的软件更新。假定线L(i,j)发生高速缓存错误,则访问由H(j)表示的页j的PHT。然后,H(j)确定预取哪些线或页。
在本发明的实施例中,维护每个页的标签,其保存用于对该页和其它页中的多条线的高速缓存访问和预取的信息。因此,假定线发生错误,则可使用标签信息预取来自其中存在该期望线的页和来自另外页的线的选定可变子集。本发明的另一个实施例提供在页标签中插入由软件提供的预取指示。
本发明的另一个实施例提供了一种计算机系统,其包括:处理器;主存储器,其中主存储器中的每个页具有与其相关联的标签,该标签用于预取来自该页的线以及来自至少一个其它页的线的可变子集;高速缓冲存储器,耦接到处理器和主存储器,其中从主存储器读取数据块或信息页,并将其存储在高速缓冲存储器中;预取控制器,耦接到处理器,其中预取控制器响应处理器确定在保存于高速缓冲存储器内的页中发现了错误(或缺失)线;以及预取缓冲器,耦接到预取控制器、高速缓冲存储器和主存储器,其中通过使用要存储在预取缓冲器中的对应标签取出对应的数据线,并将该对应数据线发送到高速缓冲存储器,预取控制器响应错误线的检测。
该计算机系统还提供了通过删除在预取缓冲器中保存了最长时间量的标签来更新预取缓冲器,并且将该标签的更新版本存储在主存储器中。
此外,可通过发生对页内的各线的访问来确定标签的更新。
此外,对页内的线的预取可以是存储在其对应的标签中的信息和对页内的线的访问的函数。
另外,上述计算机系统提供了用于存储标签的装置和用于处理标签的处理器,其中处理器包括更新用于预取的标签,并且确定应当将哪些标签保存在预取缓冲器中。
此外,上述计算机系统提供了用于基于监视对高速缓存线的访问来修改和更新标签。
本发明的另一个实施例提供了一种用于在计算机系统内传输信息(数据)的预取方法,其包括检测给定页内的错误线,访问与给定页相关联的页历史标签,并且从该页历史标签确定要预取哪些线或页。
另外,上述方法可包括更替预取缓冲器内的选定标签和线。
此外,上述方法中检测错误线的步骤可包括将错误线置于高速缓冲存储器中,确定错误线是否当前位于预取缓冲器内,如果关联的选定标签当前不位于预取缓冲器内,则将该标签从主存储器取到预取缓冲器中,并且以从主存储器预取的关联选定标签更替预先存在的选定标签,并且将与该标签和页相关联的信息更新到主存储器中。
此外,上述方法中访问标签的方法步骤可包括在标签上存储与对页的访问对应的信息,其中标签包括至少第一和第二历史向量,并且表示该至少第一和第二向量的第i比特,以确定是否访问了与预取缓冲器中的标签对应的线。
从本发明的第一方面来看,本发明提供了一种计算机系统,其包括:处理器;主存储器,具有多个页,该多个页的每一个具有多条线和各自的标签,其中该标签用于控制对线的可变子集的预取;高速缓冲存储器,耦接到处理器和主存储器,其中从主存储器读取数据块或信息线,并将其存储在高速缓冲存储器中;预取控制器,用于从处理器接收命令,并且基于该标签控制预取。
优选地,本发明提供了一种计算机系统,其中主存储器具有多个页,该多个页的每一个具有多条线和各自的标签,该标签用于控制对线的可变子集的预取,该主存储器还包括这样的该各自标签,其用于控制预取来自其各自页的线以及来自至少一个其它页的线的可变子集。
优选地,本发明提供了一种预取控制器,其响应处理器确定发生了高速缓存错误(或缺失)。
优选地,本发明提供了一种计算机系统,其还包括:预取缓冲器,其中通过使用要存储在预取缓冲器中的对应标签取出对应数据线并将该对应数据线发送到高速缓冲存储器,预取控制器响应错误线的检测。
优选地,本发明提供了一种计算机系统,其中预取控制器还包括通过删除选定标签来更新预取缓冲器,并将该标签的更新版本存储在主存储器中。
优选地,本发明提供了一种计算机系统,其还包括通过发生对页内的各条线的访问而更新标签。
优选地,本发明提供了一种计算机系统,其还包括作为存储在对应的标签中的信息和对页内的线的访问的函数来预取页内的线。
优选地,本发明提供了一种计算机系统,其还包括用于存储标签的装置,以及用于处理标签的处理器,其中处理器包括更新用于预取的标签,并且确定应当将哪些标签保存在预取缓冲器中。
优选地,本发明提供了一种计算机系统,其还包括用于基于监视对高速缓存线的访问而修改和更新标签的装置。
优选地,本发明提供了一种计算机系统,其还包括通过系统软件更新和/或修改标签。
优选地,本发明提供了一种计算机系统,其还包括将标签与关联的高速缓存线相分离。
优选地,本发明提供了一种计算机系统,其还包括即使当高速缓存没有保存来自页的任何线时,也将标签保存在预取缓冲器中。
从第二方面来看,本发明提供了一种用于在计算机系统内传输信息(数据)的预取方法,该计算机系统包括处理器、主存储器、高速缓冲存储器、预取控制器、以及预取缓冲器,其中预取控制器耦接到处理器、高速缓冲存储器,并且预取缓冲器耦接到预取控制器、高速缓冲存储器和主存储器,所述方法包括以下步骤:检测给定页内的错误线;访问与给定页相关联的页历史标签;以及从该页历史标签确定要预取哪些线或页。
优选地,本发明提供了一种方法,其还包括以下步骤:更替预取缓冲器内的选定标签和线。
优选地,本发明提供了一种方法,其还包括以下步骤:通过系统软件修改页历史标签。
优选地,本发明提供了检测错误线还包括以下步骤:将错误线置于高速缓冲存储器中;确定错误线是否当前位于预取缓冲器内;如果关联的选定标签当前不位于预取缓冲器内,则将该标签从主存储器取到预取缓冲器中;以关联的选定标签更替预先存在的选定标签;以及将与该标签和页相关联的信息更新到主存储器中。
优选地,本发明提供了一种方法,其中访问标签还包括以下步骤:在标签上存储与对页的访问对应的信息,其中标签包括至少第一和第二历史向量;并且表示该至少第一和第二向量的第i比特,以确定是否访问了与预取缓冲器中的标签对应的线。
优选地,本发明提供了一种如权利要求17所述的方法,其中在第一向量上存储信息还包括以下步骤:为在对标签的最近访问期间所引用的每条高速缓存线输入一。
优选地,本发明提供了一种方法,其中在第二向量上存储信息还包括以下步骤:在对标签的最近访问期间收集信息,并且将该信息存储在第二标签中。
优选地,本发明提供了一种方法,其中在标签上存储信息还包括以下步骤:命令预取,对页进行寻址,并且使用第三向量将判定比特设为一。
优选地,本发明提供了一种方法,其中使用第三向量将判定比特设成一还包括以下步骤:将判定比特设成零,其中将判定比特设成零表示无需预取来自另一页的线。
从另一个方面来看,本发明提供了一种用于在包括处理器、主存储器、高速缓冲存储器和预取缓冲器的计算机系统内传输信息(数据)的方法,所述方法包括以下步骤:检测给定页内的错误线;确定页历史标签的位置,其中页历史标签位于主存储器或预取缓冲器中;以及访问与错误线相关联的页历史标签。
优选地,本发明提供了一种方法,其中访问与错误线相关联的页历史标签还包括以下步骤:将关联的标签从主存储器取到预取缓冲器中;以及检查存储在该标签中的多个比特向量,以确定要预取哪些线或页,其中该多个比特包括判定比特。
优选地,本发明提供了一种方法,其中检查存储在该标签中的多个比特向量以确定要预取哪些线或页,其中该多个比特包括判定比特,还包括以下步骤:预取判定比特被设成一的页或线。
从第三方面来看,本发明提供了一种可机读的程序存储装置,其有形地实施可由机器执行的指令的程序,以便执行用于增强计算机系统内的预取性能的方法步骤,这些方法步骤包括:检测给定页内的错误线;访问与给定页相关联的页历史标签;以及从该页历史标签确定要预取哪些线或页。
优选地,本发明提供了一种程序存储装置,其还包括用于以下步骤的指令:更替预取缓冲器内的选定标签和线。
优选地,本发明提供了一种程序存储装置,其中用于检测错误线的指令包括用于以下步骤的指令:确定错误线是否当前位于预取缓冲器内;如果错误线当前不位于预取缓冲器内,则将关联的标签从主存储器取到预取缓冲器中;以选定的标签更替预先存在的选定标签;以及将与该标签和页相关联的信息更新到主存储器中。
优选地,本发明提供了一种程序存储装置,其中用于访问标签的指令还包括用于以下步骤的指令:在标签上存储与对页的访问对应的信息,其中标签包括第一和第二历史向量;并且表示第一和第二向量的第i比特,以确定是否访问了与预取缓冲器中的标签对应的线。
优选地,本发明提供了一种程序存储装置,其中用于在第一向量上存储信息的指令还包括用于以下步骤的指令:为在对标签的最近访问期间所引用的每条高速缓存线输入一。
优选地,本发明提供了一种程序存储装置,其中用于在第二向量上存储信息的步骤的指令还包括用于以下步骤的指令:在对标签的最近访问期间收集信息,并且将该信息存储在第二标签中。
优选地,本发明提供了一种程序存储装置,其中用于在标签上存储信息的指令还包括用于以下步骤的指令:命令预取,并且对页进行寻址。
优选地,本发明提供了一种程序存储装置,其中用于在标签上存储信息的指令还包括用于以下步骤的指令:使用第三向量将至少一个判定比特设为一。
优选地,本发明提供了一种程序存储装置,其中用于使用第三向量将判定比特设成一的指令还包括用于以下步骤的指令:将判定比特设成零,其中将判定比特设成零表示无需预取来自另一页的线。
从另一个方面来看,本发明提供了一种可机读的程序存储装置,其有形地实施可由机器执行的指令的程序,以便执行用于增强计算机系统内的预取性能从而在包括处理器、主存储器、高速缓冲存储器和预取缓冲器的计算机系统内传输信息(数据)的方法步骤,所述方法包括以下步骤:检测给定页内的错误线;确定页历史标签的位置,其中页历史标签位于主存储器或预取缓冲器中;以及访问与错误线相关联的页历史标签。
优选地,本发明提供了一种程序存储装置,其中用于访问与错误线相关联的页历史标签的指令还包括用于以下步骤的指令:将关联的标签从主存储器取到预取缓冲器中;以及检查存储在该标签中的多个比特向量,以确定要预取哪些线或页,其中该多个比特包括判定比特。
优选地,本发明提供了一种程序存储装置,其中用于检查存储在该标签中的多个比特向量以确定要预取哪些线或页,其中该多个比特包括判定比特的指令还包括用于以下步骤的指令:预取判定比特被设成一的页或线。
附图说明
下面参照附图仅作为示例详细描述本发明的多个实施例,其中:
图1是示出根据本发明实施例的计算机系统的结构的方框图;
图1A是示出根据本发明另一个实施例的计算机系统的结构的方框图;以及
图2是示出根据本发明另一个实施例的页历史标签或PHT的格式的图;
图3是示出根据本发明另一个实施例的用于预取判定的控制流程的流程图;以及
图4A和4B是示出根据本发明另一个实施例的用于更新页历史标签的控制流程的流程图。
具体实施方式
应当理解,这里描述的根据本发明的系统和方法可以以硬件、软件、固件、专用处理器或者其任意组合的各种形式实现。优选地,本发明作为包括有形地实施在一个或多个程序存储装置(例如,磁性软盘、RAM、CD Rom、Rom和闪存)上且可由包括适合架构的任何装置或机器执行的程序指令的应用程序采用软件实现。
还应当理解,由于在附图中示出的组成系统模块和方法步骤优选地采用软件实现,因此系统组件之间的实际连接(或者处理步骤的流程)可根据本发明被编程的方式而不同。参考这里的教导,相关领域的普通技术人员将能够考虑本发明的这些和类似的实现或配置。
图1示出了计算机系统的方框图。该计算机系统包括处理器101、高速缓存102、预取缓冲器104、预取控制器103以及主存储器107,其中预取缓冲器104保存预取线105和标签107,并且主存储器107将每个页j的标签H(j)109存储在存储器中,并且将每个页j存储在存储器108中。这些标签可由处理器单独寻址,并且因此通过软件单独寻址。为了举例说明起见,该系统中的每条线为128字节,并且每个页包含32条这样的线,或者4K字节。预取缓冲器可分成两个部分,即保存预取线的部分105和保存标签的另一个部分106。在本实施例中,以先入先出或FIFO的方式(或者任何其它适合的方法)更替预取线和标签的每一个。例如,当从页j预取n条线的某个集合时,删除目前位于预取缓冲器内时间最长的n条线。类似地,如果其标签当前不位于预取缓冲器内的页j发生错误,则将关联的标签从主存储器107取到缓冲器中。删除位于预取缓冲器内时间最长的关联标签,并且如下面和图4所述,将其更新值存储回到主存储器107中。
图1A是示出根据本发明另一个实施例的计算机系统的结构的方框图。更具体地说,图1A示出具有附加特征的图1的计算机系统,该附加特征是预取缓冲器104可分成至少两个预取缓冲器。在本实施例中为预取线缓冲器105A和标签缓冲器106A。
图2示出存储在标签H(j)中的信息的格式。为了在本实施例中举例说明起见,标签包括两个历史向量,其用来存储对该页的访问的相关信息。每个向量具有均为1比特的32个条目,其中第i比特表示在对预取缓冲器106中的标签的某次访问期间是否访问了该页内的第i线。向量V1对于在对H(j)的最近访问期间被引用到106中的每条高速缓存线具有1的条目。向量V2用来为当前访问收集此信息。并且,如果在对标签H(j)的当前访问中将线L(i,j)引用到缓冲器106中,则将向量V2中的第i条目设为1。在标签中还包括了可通过软件设置以命令预取的32比特向量VS、以及假如访问当前页且通过软件或计算机系统将判定比特Dd设为1则要预取的页g的地址。如果通过软件或计算机系统将Dd设为1,则不预取页g。在本实施例中,页g的地址通过软件设置,判定比特Dd也是如此。
本发明的另一个实施例提供了执行由操作系统装载的程序的预取控制器处理器。图3示出与图1A所示的系统相关的方法。在本实施例中,如图3所示,对当前不位于高速缓存102内的线L(i,j)(被称作错误线)进行引用,步骤31。将期望线从缓冲器105A或主存储器107取到高速缓存中,步骤32。如果期望线不位于缓冲器105A内,则从主存储器107取出期望线。下一步,需要确定关联标签的位置,步骤33。如果关联的标签不位于缓冲器106A内,则将关联的标签从主存储器107取到缓冲器106A中,步骤34。当将标签H(j)取到缓冲器106A中(步骤34)时,控制器检查存储在该标签中的比特向量,以确定要预取哪些线或页。在本实施例中,预取与向量V1和VS中的1条目对应的那些线,并将其置于缓冲器105A中,步骤35。下一步,例如,如果该标签中的判定比特Dd被设为1,则该标签表示要预取页g,步骤36。然后,取出该页的标签,预取在H(g)中与向量V1和VS中的1条目对应的那些线,步骤37-39。注意,除了判定和预取步骤37-39与H(g)相关之外,步骤37-39类似于步骤33-35。此外,在该实现中,如果H(g)中的判定比特Dd被设为零,则不检查H(g),并且不存在进一步的页预取(步骤36)。
图4A示出向量V2的更新。如果引用当前不位于高速缓存102内的线L(i,j)(步骤41),例如,发生L(i,j)的错误,则将1输入到标签H(j)中向量V2的第i分量中。
参照图4B,图4B示出用于更新缓冲器106中的标签例如H(j)的方法。单独地,当从缓冲器106逐出每个标签H(j)(步骤401)时,在该标签中将向量V1替换为V2,并且将V2中的各条目设为0,步骤402。然后,将H(j)回写到主存储器107,步骤403。
Claims (19)
1.一种用于在计算机系统内传输信息的预取方法,该计算机系统包括处理器、主存储器、高速缓冲存储器、以及预取控制器,其中预取控制器耦接到处理器、高速缓冲存储器、以及预取缓冲器,并且预取缓冲器耦接到预取控制器、高速缓冲存储器和主存储器,该方法包括以下步骤:
检测给定页内的错误线;
访问与给定页相关联的页历史标签;以及
从该页历史标签确定要预取哪个错误线或特定页。
2.如权利要求1所述的方法,还包括以下步骤:
更替预取缓冲器内的预取标签和线。
3.如权利要求1所述的方法,还包括以下步骤:
通过系统软件修改页历史标签。
4.如权利要求1所述的方法,其中检测错误线还包括以下步骤:
将错误线置于高速缓冲存储器中;
确定错误线是否当前位于预取缓冲器内;
如果关联的选定标签当前不位于预取缓冲器内,则将该标签从主存储器取到预取缓冲器中;
以关联的选定标签更替预先存在的选定标签;以及
将与该标签和页相关联的信息更新到主存储器中。
5.如权利要求1所述的方法,其中访问标签还包括以下步骤:
在标签上存储与对页的访问对应的信息,其中标签包括至少第一和第二历史向量;以及
表示该至少第一和第二向量的第i比特,以确定是否访问了与预取缓冲器中的标签对应的线。
6.如权利要求1所述的方法,其中在第一向量上存储信息还包括以下步骤:
为在对标签的最近访问期间所引用的每条高速缓存线输入一。
7.如权利要求6所述的方法,其中在第二向量上存储信息还包括以下步骤:
在对标签的最近访问期间收集信息,并且将该信息存储在第二标签中。
8.如权利要求6所述的方法,其中在标签上存储信息还包括以下步骤:
命令预取,对页进行寻址,并且使用第三向量将判定比特设为一。
9.如权利要求8所述的方法,其中使用第三向量将判定比特设成一还包括以下步骤:
将判定比特设成零,其中将判定比特设成零表示无需预取来自另一页的线。
10.一种用于在计算机系统内传输信息的系统,该计算机系统包括处理器、主存储器、高速缓冲存储器、以及预取控制器,其中预取控制器耦接到处理器、高速缓冲存储器、以及预取缓冲器,并且预取缓冲器耦接到预取控制器、高速缓冲存储器和主存储器,该系统包括:
用于检测给定页内的错误线的装置;
用于访问与给定页相关联的页历史标签的装置;以及
用于从该页历史标签确定要预取哪些线或页的装置。
11.如权利要求10所述的系统,还包括:
用于更替预取缓冲器内的选定标签和线的装置。
12.如权利要求10所述的系统,还包括:
用于通过系统软件修改页历史标签的装置。
13.如权利要求10所述的系统,其中用于检测错误线的装置还包括:
用于将错误线置于高速缓冲存储器中的装置;
用于确定错误线是否当前位于预取缓冲器内的装置;
用于如果关联的选定标签当前不位于预取缓冲器内则将该标签从主存储器取到预取缓冲器中的装置;
用于以关联的选定标签更替预先存在的选定标签的装置;以及
用于将与该标签和页相关联的信息更新到主存储器中的装置。
14.如权利要求10所述的系统,其中用于访问标签的装置还包括:
用于在标签上存储与对页的访问对应的信息的装置,其中标签包括至少第一和第二历史向量;以及
用于表示该至少第一和第二向量的第i比特以确定是否访问了与预取缓冲器中的标签对应的线的装置。
15.如权利要求10所述的系统,其中用于在第一向量上存储信息的装置还包括:
用于为在对标签的最近访问期间所引用的每条高速缓存线输入一的装置。
16.如权利要求14所述的系统,其中用于在第二向量上存储信息的装置还包括:
用于在对标签的最近访问期间收集信息并将该信息存储在第二标签中的装置。
17.如权利要求14所述的系统,其中用于在标签上存储信息的装置还包括:
用于命令预取、对页进行寻址、并且使用第三向量将判定比特设为一的装置。
18.如权利要求17所述的系统,其中用于使用第三向量将判定比特设成一的装置还包括:
用于将判定比特设成零的装置,其中用于将判定比特设成零的装置表示无需预取来自另一页的线。
19.一种可直接装载到数字计算机的内部存储器中的计算机程序产品,包括用于当在计算机上运行所述产品时执行以便实施如权利要求1到9所述的本发明的软件代码部分。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/326,634 | 2002-12-20 | ||
US10/326,634 US7334088B2 (en) | 2002-12-20 | 2002-12-20 | Page descriptors for prefetching and memory management |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1726477A true CN1726477A (zh) | 2006-01-25 |
Family
ID=32594065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200380106104.0A Pending CN1726477A (zh) | 2002-12-20 | 2003-12-11 | 用于预取和存储器管理的页描述符 |
Country Status (8)
Country | Link |
---|---|
US (2) | US7334088B2 (zh) |
EP (1) | EP1573555B1 (zh) |
CN (1) | CN1726477A (zh) |
AT (1) | ATE475140T1 (zh) |
AU (1) | AU2003288458A1 (zh) |
DE (1) | DE60333483D1 (zh) |
IL (1) | IL169265A0 (zh) |
WO (1) | WO2004057479A2 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102195874A (zh) * | 2010-03-02 | 2011-09-21 | 马维尔以色列(M.I.S.L.)有限公司 | 数据分组的预提取 |
CN101630291B (zh) * | 2009-08-03 | 2012-11-14 | 中国科学院计算技术研究所 | 虚拟存储系统和方法 |
CN103077129A (zh) * | 2012-12-31 | 2013-05-01 | 上海算芯微电子有限公司 | 信息处理方法与装置 |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7437593B2 (en) * | 2003-07-14 | 2008-10-14 | International Business Machines Corporation | Apparatus, system, and method for managing errors in prefetched data |
US7111126B2 (en) * | 2003-09-24 | 2006-09-19 | Arm Limited | Apparatus and method for loading data values |
JP4537893B2 (ja) * | 2004-06-23 | 2010-09-08 | 株式会社リコー | 情報処理装置、移動履歴管理方法 |
US7395406B2 (en) * | 2005-05-12 | 2008-07-01 | International Business Machines Corporation | System and method of large page handling in a virtual memory system |
WO2007015195A1 (en) * | 2005-08-02 | 2007-02-08 | Philips Intellectual Property & Standards Gmbh | Illumination system, light-sensing plate and display device |
WO2012069874A1 (en) * | 2010-11-22 | 2012-05-31 | Freescale Semiconductor, Inc. | Integrated circuit device, signal processing system and method for prefetching lines of data therefor |
US20120144123A1 (en) * | 2010-12-01 | 2012-06-07 | International Business Machines Corporation | Read-ahead processing in networked client-server architecture |
CN102662690B (zh) * | 2012-03-14 | 2014-06-11 | 腾讯科技(深圳)有限公司 | 应用程序启动方法和装置 |
US9244980B1 (en) | 2012-05-05 | 2016-01-26 | Paraccel Llc | Strategies for pushing out database blocks from cache |
US8930631B2 (en) * | 2012-08-20 | 2015-01-06 | International Business Machines Corporation | Efficient management of computer memory using memory page associations and memory |
US9201806B2 (en) * | 2013-01-04 | 2015-12-01 | International Business Machines Corporation | Anticipatorily loading a page of memory |
US8843827B2 (en) | 2013-01-22 | 2014-09-23 | Tealium Inc. | Activation of dormant features in native applications |
US8805946B1 (en) | 2013-08-30 | 2014-08-12 | Tealium Inc. | System and method for combining content site visitor profiles |
US11695845B2 (en) | 2013-08-30 | 2023-07-04 | Tealium Inc. | System and method for separating content site visitor profiles |
US9537964B2 (en) | 2015-03-11 | 2017-01-03 | Tealium Inc. | System and method for separating content site visitor profiles |
US20150066587A1 (en) | 2013-08-30 | 2015-03-05 | Tealium Inc. | Content site visitor processing system |
KR101904421B1 (ko) | 2013-09-27 | 2018-11-30 | 삼성전자주식회사 | 캐시 메모리를 제어하는 방법 및 장치. |
US9081789B2 (en) | 2013-10-28 | 2015-07-14 | Tealium Inc. | System for prefetching digital tags |
WO2015069659A1 (en) | 2013-11-05 | 2015-05-14 | Tealium Inc. | Universal visitor identification system |
WO2015157646A1 (en) | 2014-04-11 | 2015-10-15 | Ensighten, Inc. | Url prefetching |
US9569364B1 (en) | 2016-02-08 | 2017-02-14 | International Business Machines Corporation | Multiple history based micro partition prefetch optimization |
US10175987B2 (en) * | 2016-03-17 | 2019-01-08 | International Business Machines Corporation | Instruction prefetching in a computer processor using a prefetch prediction vector |
US10135936B1 (en) | 2017-10-13 | 2018-11-20 | Capital One Services, Llc | Systems and methods for web analytics testing and web development |
US11146656B2 (en) | 2019-12-20 | 2021-10-12 | Tealium Inc. | Feature activation control and data prefetching with network-connected mobile devices |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6154547A (ja) | 1984-08-24 | 1986-03-18 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | 3レベルの階層メモリを備えたデ−タ処理システム |
US5410653A (en) * | 1992-06-16 | 1995-04-25 | International Business Machines Corporation | Asynchronous read-ahead disk caching using multiple disk I/O processes and dynamically variable prefetch length |
US5732242A (en) * | 1995-03-24 | 1998-03-24 | Silicon Graphics, Inc. | Consistently specifying way destinations through prefetching hints |
US5761468A (en) * | 1996-05-15 | 1998-06-02 | Sun Microsystems Inc | Hardware mechanism for optimizing instruction and data prefetching by forming augmented prefetch instructions |
US6195735B1 (en) * | 1996-12-31 | 2001-02-27 | Texas Instruments Incorporated | Prefetch circuity for prefetching variable size data |
JP3699249B2 (ja) | 1997-07-28 | 2005-09-28 | Ntn株式会社 | ハブユニット軸受およびその製造方法 |
US6047363A (en) | 1997-10-14 | 2000-04-04 | Advanced Micro Devices, Inc. | Prefetching data using profile of cache misses from earlier code executions |
US6134643A (en) * | 1997-11-26 | 2000-10-17 | Intel Corporation | Method and apparatus for cache line prediction and prefetching using a prefetch controller and buffer and access history |
US6484239B1 (en) * | 1997-12-29 | 2002-11-19 | Intel Corporation | Prefetch queue |
GB2348024B (en) * | 1999-03-16 | 2003-06-25 | Ibm | Cache memory systems |
US6633968B2 (en) * | 1999-03-30 | 2003-10-14 | Microsoft Corporation | Pre-fetching of pages prior to a hard page fault sequence |
US6360299B1 (en) * | 1999-06-30 | 2002-03-19 | International Business Machines Corporation | Extended cache state with prefetched stream ID information |
-
2002
- 2002-12-20 US US10/326,634 patent/US7334088B2/en not_active Expired - Fee Related
-
2003
- 2003-12-11 DE DE60333483T patent/DE60333483D1/de not_active Expired - Lifetime
- 2003-12-11 AU AU2003288458A patent/AU2003288458A1/en not_active Abandoned
- 2003-12-11 EP EP03780378A patent/EP1573555B1/en not_active Expired - Lifetime
- 2003-12-11 WO PCT/GB2003/005401 patent/WO2004057479A2/en not_active Application Discontinuation
- 2003-12-11 AT AT03780378T patent/ATE475140T1/de not_active IP Right Cessation
- 2003-12-11 CN CN200380106104.0A patent/CN1726477A/zh active Pending
-
2005
- 2005-06-17 IL IL169265A patent/IL169265A0/en unknown
-
2007
- 2007-08-23 US US11/844,086 patent/US7904660B2/en not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101630291B (zh) * | 2009-08-03 | 2012-11-14 | 中国科学院计算技术研究所 | 虚拟存储系统和方法 |
CN102195874A (zh) * | 2010-03-02 | 2011-09-21 | 马维尔以色列(M.I.S.L.)有限公司 | 数据分组的预提取 |
CN102195874B (zh) * | 2010-03-02 | 2016-06-08 | 马维尔以色列(M.I.S.L.)有限公司 | 数据分组的预提取 |
CN103077129A (zh) * | 2012-12-31 | 2013-05-01 | 上海算芯微电子有限公司 | 信息处理方法与装置 |
CN103077129B (zh) * | 2012-12-31 | 2016-07-13 | 上海算芯微电子有限公司 | 信息处理方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
US20070294483A1 (en) | 2007-12-20 |
AU2003288458A1 (en) | 2004-07-14 |
DE60333483D1 (de) | 2010-09-02 |
US7334088B2 (en) | 2008-02-19 |
ATE475140T1 (de) | 2010-08-15 |
EP1573555A2 (en) | 2005-09-14 |
IL169265A0 (en) | 2007-07-04 |
WO2004057479A3 (en) | 2004-12-23 |
WO2004057479A2 (en) | 2004-07-08 |
US7904660B2 (en) | 2011-03-08 |
EP1573555B1 (en) | 2010-07-21 |
US20040123044A1 (en) | 2004-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1726477A (zh) | 用于预取和存储器管理的页描述符 | |
US7783837B2 (en) | System and storage medium for memory management | |
EP1654660B1 (en) | A method of data caching | |
US6807607B1 (en) | Cache memory management system and method | |
JP3618385B2 (ja) | データをバッファリングする方法およびそのシステム | |
US6584549B2 (en) | System and method for prefetching data into a cache based on miss distance | |
US5778434A (en) | System and method for processing multiple requests and out of order returns | |
US7516279B2 (en) | Method using stream prefetching history to improve data prefetching performance. | |
US8583874B2 (en) | Method and apparatus for caching prefetched data | |
US8566564B2 (en) | Method and system for caching attribute data for matching attributes with physical addresses | |
US6668307B1 (en) | System and method for a software controlled cache | |
CN1659525A (zh) | 简化了缓存替换策略的实现的多线程缓存方法和装置 | |
CN1195817A (zh) | 在非包含的高速缓存存储器分级体系内使用的实现高速缓存一致性机制的方法和系统 | |
US20160103765A1 (en) | Apparatus, systems, and methods for providing a memory efficient cache | |
CN1302393C (zh) | 高速缓冲存储器系统和控制高速缓冲存储器系统的方法 | |
US7716424B2 (en) | Victim prefetching in a cache hierarchy | |
JPH07104816B2 (ja) | コンピュータシステムを動作する方法及びコンピュータシステムにおけるメモリ管理装置 | |
US7383418B2 (en) | Method and apparatus for prefetching data to a lower level cache memory | |
CN1286006C (zh) | 高速缓存系统与管理高速缓存的方法 | |
US6598124B1 (en) | System and method for identifying streaming-data | |
CN110941565B (zh) | 用于芯片存储访问的内存管理方法和装置 | |
WO2002027498A2 (en) | System and method for identifying and managing streaming-data | |
WO2004059491A1 (en) | Cache victim sector tag buffer | |
CN113419709B (zh) | 软件优化方法及装置、电子设备、可读存储介质 | |
CN114090080A (zh) | 指令高速缓存器、指令读取方法及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20060125 |