CN1849591A - 使用高速缓存未命中模式来寻址跨距预测表 - Google Patents

使用高速缓存未命中模式来寻址跨距预测表 Download PDF

Info

Publication number
CN1849591A
CN1849591A CNA2003801039526A CN200380103952A CN1849591A CN 1849591 A CN1849591 A CN 1849591A CN A2003801039526 A CNA2003801039526 A CN A2003801039526A CN 200380103952 A CN200380103952 A CN 200380103952A CN 1849591 A CN1849591 A CN 1849591A
Authority
CN
China
Prior art keywords
cache
spt
data
memory
miss
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
Application number
CNA2003801039526A
Other languages
English (en)
Inventor
J·-W·范德维尔德特
J·霍格尔布鲁格
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN1849591A publication Critical patent/CN1849591A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using a prefetch buffer or dedicated prefetch cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6026Prefetching based on access pattern detection, e.g. stride based prefetch

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)
  • Advance Control (AREA)

Abstract

使用数据预取来降低存储器引用的平均等待时间以便从中获取数据。所述预取过程一般是基于预测将来处理器数据引用的。在示例性实施例中,提供了一种数据获取的方法,其包括提供第一存储器电路(610)、跨距预测(611)表(SPT)和高速缓存器电路(612)。执行用于访问在第一存储器内数据(613)的指令。检测高速缓存未命中(614)。只有当检测到高速缓存未命中时,才访问并更新(615)所述SPT。该实施例的特征包括把流缓冲器用作为高速缓存器电路。另一特征包括把随机访问高速缓存器用作为高速缓存器电路。

Description

使用高速缓存未命中模式来寻址跨距预测表
本发明涉及数据预取领域,并且尤其涉及引导从存储器中预取数据的硬件。
目前,处理器比一般的RAM快得多以致当从RAM存储器中获取数据时出现处理器停滞周期。所述处理器停滞周期增加了完成数据访问操作的处理时间。执行从RAM存储器中预取数据的过程以求减少处理器停滞周期。从而,使用支持不同存储器访问速度的不同级别的高速缓存器来存储不同的预取数据。当访问的数据不同于存在于被预取到高速缓存器内的数据时,就出现高速缓存未命中条件,这可以通过插入处理器停滞周期来解决。此外,不被处理器所需要却被预取到高速缓存器中的数据可能会产生高速缓存污染;即移去了有用的高速缓存数据而为无用的预取数据腾出了空间。由于所替换的数据可能会再次被处理器查找,所以这将产生不必要的高速缓存未命中。
数据预取对那些本领域内技术人员来说是已知的技术,其用于减少从存储器中获取数据的存储器引用的平均等待时间。所述预取过程一般是基于预测将来处理器数据引用的。在处理器需要数据元之前,把来自在存储器分级体系内低层的数据元带到在所述存储器分级体系内的高层,在所述高层内所述数据元更容易被所述处理器访问,这在处理器看来减少了平均数据获取等待时间。结果,大大地改善了处理器性能。
在现有技术中公开了几种预取方法,从完全基于软件的预取实施方式到完全基于硬件的预取实施方式。使用基于软件和硬件混合的预取方法被认为是较好的。在授权给Mehrotra的、美国专利号5,822,790中,公开了一种共享预取数据存储结构以用于基于硬件和软件的预取。令人遗憾地是,对于被作为高速缓存器数据部分的所有数据参考都要访问高速缓存器以便跨距(stride)预测,从而这会有益于减少或消除由这些访问操作所消耗的时间。
跨距检测和跨距预测所要求的SPT访问提出了一个问题。太多的访问时间可能会引起处理器停滞周期。然而可以通过制作多端口的SPT结构从而允许对所述结构多重同时访问来解决所述问题。令人遗憾地是,多端口导致向该结构增加管芯面积。
依照本发明提供了一种设备包括:跨距预测表(SPT);和供所述SPT使用的过滤电路,所述过滤电路对于确定将要访问并更新所述SPT的实例,所述实例只有当检测高速缓存未命中时才出现。
依照本发明提供了一种数据获取的方法,包括步骤:提供第一存储器电路;提供跨距预测表(SPT);提供高速缓存器电路;执行用于访问在第一存储器内数据的指令;检测高速缓存未命中;以及只有当检测到高速缓存未命中时才访问并更新所述SPT。
现在将参照附图描述本发明,其中:图1a举例说明了现有技术中流缓冲器体系结构;图1b举例说明了现有技术中包括流缓冲器的一般单处理器系统的逻辑结构;图2举例说明了现有技术中由多个条目组成的跨距预测表(SPT);图3举例说明了现有技术中具有管理任务的SPT访问流程图;图4更详细地举例说明了现有技术中具有管理任务的SPT访问流程图;图5a举例说明了现有技术中串行流高速缓存器;图5b举例说明了现有技术中并行流高速缓存器;图6a举例说明了供本发明实施例使用的体系结构;图6b举例说明了供执行本发明实施例使用的方法步骤;图7a举例说明了包括循环的第一伪码C程序,所述循环提供了用于拷贝N个条目的拷贝功能;图7b举例说明了用于提供与在图7a中示出的拷贝功能相同的第二伪码C程序;和图7c举例说明了用于把元素从第一数组添加到第二数组的伪码C程序。
依照本发明实施例,提出了一种组合来自流缓冲器方法和基于SPT方法的技术的预取方法。
基于硬件预取的现有方法包括下列现有技术。现有技术中授权给Jouppi等人的美国专利号5,261,066(‘066)公开了流缓冲器的原理。在上述专利中提出了两种结构:小的全相联高速缓存器,也称为牺牲者(victim)高速缓存,其用来保持牺牲的高速缓存行,以及用来解决在低关联或直接映射高速缓存设计中的高速缓存冲突未命中。然而,这种小的全相联高速缓存器与预取无关。提出的其它结构是与预取有关的流缓冲器。这种结构一般用于解决容量和强迫的高速缓存未命中。在图1a中,示出了现有技术中的流缓冲器体系结构。
流缓冲器与预取有关,其中使用它们来存储从存储器中预取的数据元的序列流。执行应用流,以便从存储器获取行,处理器100首先检查高速缓存器104以便确定所述行是否为驻留在所述高速缓存器104内的高速缓存行。当所述行不同于存在于所述高速缓存器内的行时,就发生了高速缓存未命中并且分配流缓冲器101。流缓冲器控制器自动地开始按照出现高速缓存未命中的高速缓存行,来从主存储器102中预取顺次的高速缓存行,直到所分配的流缓冲器的高速缓存行容量已经满了为止。从而所述流缓冲器向所述处理器提供了提高的处理效率,这是因为由预取的、驻留在流缓冲器101中的高速缓存行来选择性地服务将来的高速缓存行未命中。然后优选地是,把所预取的高速缓存行从流缓冲器101中拷贝到高速缓存器104中。这有益地释放了所述流缓冲器的存储容量,使得在流缓冲器内的这个存储单元可以用于接收新的预取的高速缓存行。使用流缓冲器,确定所分配的流缓冲器的数量以便能够支持在某个时间帧内执行的过程中所存在于的数据流的数量。
一般地,流检测是基于高速缓存行未命中信息,并且在多个流缓冲器的情况下,每个单个的流缓冲器包含用于检测应用流的逻辑电路和用于存储预取的高速缓存行数据的存储电路,所述高速缓存行数据与所述应用流相关联。此外,把预取的数据存储在流缓冲器中而不是直接存储在高速缓存器中。
当存在至少与数据流一样多的流缓冲器时,所述流缓冲器高效地工作。如果应用流的数量大于分配的流缓冲器的数量,那么令人遗憾地是,把流缓冲器重新分配给不同的应用流可能会损坏由该方法实现的潜在性能益处。从而,当希望支持不同的软件应用和流时,硬件实现流缓冲器预取是困难的。所述流缓冲器方法还扩展到支持借助于不同的跨距所进行的预取。所扩展的方法不再限于顺次的高速缓存行未命中模式,而是支持具有用恒定跨距分开的连续引用的高速缓存行未命中模式。
现有技术:授予Kessler等人的、美国专利号5,761,706通过提供流缓冲器之外还提供过滤器来建立于在‘066专利中所公开的流缓冲器结构上。现有技术:图1b举例说明了包括流缓冲器的一般单处理器系统的逻辑结构。该系统包括处理器100,其连接到过滤的流缓冲器模块103和主存储器102。过滤的流缓冲器模块103从主存储器102中预取高速缓存块,这产生比在只具有芯上高速缓存器和主存储器102的系统中更快的芯上未命中的服务。定义过滤的过程以便选择所有存储器访问的子集,这将更可能受益于使用流缓冲器101,并且只为在该子集中的访问分配流缓冲器101。对于每个应用流,如在现有技术‘066专利中那样分配独立的流缓冲器101。此外,Kessler等人公开了单位跨距和非单位跨距预取,而‘066仅限于单位跨距预取。
另一个用于预取的通常的现有技术方法依赖于跨距预测表(SPT)200,如现有技术图2所示,其用于预测应用流,如在下面公开出版物中公开:J.W.Fu,J.H.Patel和B.L.Janssens于1992年12月,在第25届微体系结构国际讨论年会会议(波特兰,OR)上发表的“Stride Directed Prefetching in Scalar Processors”,第102-110页,在此引入以供参考。
在图3中示出了SPT操作流程图。在SPT方法中,应用流检测一般基于程序计数器(PC)和加载/存储指令的数据引用地址,使用用所述PC的地址作为索引的查找表。此外,多个流可由SPT 200支持,只要它们在SPT 200内具有不同条目的索引。使用所述SPT方法,把预取的数据直接存储在高速缓存器中而不是SPT 200中。
当执行应用流时,所述SPT 200记录由处理器向高速缓存器发出的数据引用加载和存储指令的模式。该方法使用这些指令的PC来作为指向330SPT 200的索引。在SPT 200中的SPTEntry.pc字段210中存储了一个指令PC的值,该指令PC曾被用于在SPT内作为条目的索引,把数据引用地址存储在SPTEntry.address字段211中,并且选择性地把跨距大小存储在SPTEntry.stride 212中,以及把计数器值存储在SPTEntry.counter字段213中。把PC字段210用作标记字段以便匹配300在应用流内正在索引SPT 200的指令PC值。所述SPT 200由多个这种条目组成。当用8位地址来索引所述SPT时,一般存在256个这种条目。
所述数据引用地址一般用于为位于存储在SPTEntry.pc字段210中地址值的指令确定数据引用访问模式。当在检测跨距应用流时,可选择的SPTEntry.stride字段212和SPTEntry.counter字段213允许SPT方法以增加的可靠性来操作,如在由T.-F.Chen和J.-L.Baer在计算机IEEE学报上公布的“Effective Hardware-Based DataPrefetching for High-Performance Processors”,卷44,第609-623页,1995年5月,在此引入以供参考。
当然,基于SPT的方法本身也具有局限性。即,一般的处理器支持在单个处理器时钟周期内执行的多个并行加载和存储指令。结果,基于SPT的方法每个时钟周期支持多个SPT管理任务。依照在图3中示出的流程图,这种管理任务一般对SPT 200执行2次访问。使用第一访问来取得SPT条目字段301,而使用另一个访问302来更新SPT 200内的条目。为该应用流,使用PC的低8位来作为SPT 200的索引,其中把PC的低8位与SPTEntry.pc 210比较300以便确定它们是匹配301还是不匹配302。
在取得SPT条目字段301中,根据当前地址和SPTEntry.address211来确定310跨距,然后从主存储器中在位于所述当前地址加上跨距的地址处预取存储器块。此后,把SPTEntry.address 211替换为当前地址312。在更新在所述SPT 200内的条目302的过程中,用当前PC来更新320SPTEntry.pc 210,而用当前地址321来更新SPTEntry.address 211。
依照在图4中示出的流程图,另外在SPT 200内还访问SPTEntry.counter和SPTEntry.stride字段,其中这种管理任务一般对于所述SPT使用2次以上的访问。使用第一访问来取得SPT条目字段401,而使用另一个访问402来更新在SPT 200内的条目。为该应用流使用PC的低8位来作为SPT 200的索引,其中把PC的低8位与SPTEntry.pc 210比较400以便确定它们是匹配401还是不匹配402。如果发现匹配,那么计算410跨距,其中所述跨距等于当前地址减去SPTEntry.address 211。
接下来,把SPTEntry.stride 212与所述跨距相比较以便看看它们是否相等,并且比较SPTEntry.counter以便看看它是否等于三(3)411。如果满足412所述比较结果,那么从主存储器中预取位于当前地址加上跨距的存储块。否则,如果不满足413所述比较结果,那么把SPTEntry.address设置为当前地址415,而把SPTEntry.stride设置为跨距416。接下来确定所述SPTEntry.counter是否小于三(3)417,如果是这样的话418,那么递增419 SPTEntry.counter。在更新SPT中的条目402方面,把SPTEntry.pc设置为等于当前PC 420,把SPTEntry.address设置为当前地址421,而把SPTEntry.counter设置为1,422。
结果,对于并行执行的3个同时加载和存储指令,优选地是,执行在图3和图4中详述的管理任务。从而优选地是,把所述SPT 200设计成能在单个处理器时钟周期内支持:3*2=6次访问。SPT一般以比处理器更高的时钟速率操作意味着使存储以及向或从所述SPT200提供数据便于进行。当然,所述SPT可以是多端口或双份的,不过令人遗憾地是这产生较大的管芯面积,这是不可取的。
当然,使用PC的低8位可以用于作为所述SPT的索引,但是取决于指令系统结构(ISA),还存在多个取决于处理器类型的选择。例如,对于MIPS ISA,所有指令大小是4字节,结果所述PC始终以4的倍数改变,并且所述PC位1和0始终是‘0’。因此在这种情况下,使用PC位9到2,PC[9:2]。类似地对于VLIW机,所述指令大小倾向于更大,具有在2和28字节之间的任意大小。因此,使用某些更高有效位而不是位7到0,可能更好。用于作为所述SPT索引的位不必是所述PC的最低8位;其它组合位也可能更可取。
另外,流检测是基于指令数据引用地址的。为了确保要加以预取的数据尚不在高速缓存器中,优选地是,使用预取高速缓存行标记查找来防止预取已经驻留在所述高速缓存器中的高速缓存行。预取已经驻留在高速缓存器中的高速缓存行会产生对临界存储带宽的不必要使用。一般把预取的数据直接存储在高速缓存器中。因此,对于小的高速缓存器大小,这产生把有用的高速缓存行从高速缓存器中除去,以便为预取的高速缓存行腾出空间。这产生高速缓存污染,其中潜在地不必要的、预取的高速缓存行替换了现有的高速缓存行,从而降低了高速缓存的效率。当然,所述高速缓存污染问题降低了由高速缓存器实现的性能益处。
在由D.F.Zucker等人于2000年8月在视频技术的电路和系统上IEEE学报5,卷10,第782-796页,“Hardware and SoftwareCache Prefetching Techniques for MPEG Benchmarks”中提出了克服高速缓存污染,在此引用以供参考。在该公开出版物中,提出了串行流(现有技术图5a)和并行流(现有技术图5b)。这些方法增加了小的全相联高速缓存器结构来保持预取的高速缓存行。
在所述串行流高速缓存结构中,如图5a所示,流高速缓存503与高速缓存器501串联连接。在高速缓存器501未命中之后,查询串行流高速缓存503,并且串行流高速缓存503被用来使用由处理器500想要的数据来填充所述高速缓存器501。如果所述数据在高速缓存器501中未命中并且其不在流高速缓存503中,那么将其直接从主存储器504获取到高速缓存器501。只有当出现SPT 502命中时才把新的数据提取到该流高速缓存中。
如图5b所示,除把流高速缓存503的位置从高速缓存器501的再填充路径移到平行于所述高速缓存器501的位置之外,并行流高速缓存与串行流高速缓存相似。把预取的数据带到流高速缓存503,但是不把它拷贝到高速缓存器501中。因此高速缓存访问并行搜索高速缓存器501和流高速缓存503。当不能从高速缓存器501或流高速缓存503中满足高速缓存未命中时,把数据直接从主存储器504取到高速缓存器中,这产生处理器停滞周期。
在应用中的不同应用流之间共享流高速缓存存储容量。结果这些流高速缓存没有经受针对流缓冲方法所描述的那些缺点。在该方法中,由所述SPT提供应用流检测,并且由流高速缓存503提供用于存储高速缓存行数据的存储容量。
在图6中示出了预取体系结构的硬件实现,其组合了流缓冲器方法和基于SPT的方法。在该体系结构中,处理器601与过滤电路602和数据高速缓存器603耦合。提供跨距预测表604以便由过滤电路602访问该跨距预测表。在主存储器605和数据高速缓存之间提供了流高速缓存606。在本实施例中,在共享的存储电路607内提供了SPT 604以及数据高速缓存器603。
在使用图6a示出的体系结构的过程中,所述处理器601执行应用流。依照在图6b中举例说明的步骤来访问SPT,其中最初提供了612第一存储器电路610、SPT 611和高速缓存器电路。所述应用流一般包含采用加载和存储指令的形式的多个存储器访问指令。当由该处理器处理613加载指令时,根据在数据高速缓存器603中是否发生了高速缓存行未命中,来从高速缓存器603或主存储器605中获取数据。当在所述数据高速缓存器中出现614高速缓存行未命中时,优选地是,在访问主存储器605之前访问并更新615所述SPT 604以便确定跨距。
把SPT访问操作限制在发生614高速缓存行未命中时而不是对所有的加载和存储指令都适用,这允许高效的实现SPT和数据高速缓存,而不会对在图6a中示出的系统性能有明显的改变。优选地是,把预取的高速缓存行存储在临时的缓冲器中,诸如以流高速缓存606形式的流缓冲器,或作为选择,将其直接存储在数据高速缓存器603中。
通过使用所述SPT来根据高速缓存行未命中信息执行流检测,来实现下列优点。由于高速缓存未命中一般不会频繁出现,所以简单的实现SPT 604是可能的,并且结果,单端口的SRAM存储器足以实现所述SPT 604。这产生更小的芯片面积并且减少整体功率消耗。由于用高速缓存行未命中信息来作为SPT的索引,所以优选地是,在大小上减少了SPT条目的地址和跨距字段。对于32位地址空间和64字节高速缓存行大小,选择性地把所述地址字段大小减少到26位,而不是更常规的32位。类似地,在SPT 212内的跨距字段表示高速缓存行跨距,而不是数据引用跨距,并且因此选择性地在大小上减小了该跨距字段。此外,如果所述预取模式是更积极的,那么把预取计数器值设置为2而不是3要更好。
实现SPT和高速缓存器的共享存储器结构有益地允许更高的管芯面积效率。此外,对于那些本领域内技术人员来说,已知的是:流缓冲器具有不同的数据处理速率,并且结果具有多个流缓冲器的共享存储器容量有益地允许改善处理不同的流缓冲器数据处理速率。
有益地是,通过把预取限制到数据高速缓存行未命中信息,提供高效的过滤器来防止不必要的访问和更新SPT内的条目。只用未命中信息访问SPT一般要求在SPT内较少的条目,并且此外不牺牲其性能。
在图7a中,第一伪码C程序包括提供拷贝功能的循环,所述拷贝功能用于把来自第二数组b[i]702的N个条目拷贝到第一数组a[i]701。在执行所述循环N次的过程中,把第二数组702的所有条目拷贝到第一数组701。在图7b中,示出了第二伪码C程序,其提供了与在图7a中示出的相同的拷贝功能。所述第一程序具有两个应用流,因此结合本发明实施例以及基于现有技术SPT的预取方法来使用两个SPT条目。在第二程序中,展开(unroll)所述循环两次,即每当执行完全出现循环的必要操作两次时,执行所述循环N/2次,照这样在循环的每遍内执行两个拷贝指令。两个程序具有相同的两个应用流,并且依照本发明的实施例使用两个SPT条目。令人遗憾地是,当用基于现有技术SPT的预取方法来执行时,对于展开的循环,要求四个SPT条目。当然,这是假定:高速缓存行保持2×32位整数数据元大小的整数倍。循环展开是一种常用技术,用于减少循环控制开销,其中循环展开通过在所执行的每遍循环对所述SPT需要两次以上访问而使SPT访问变得复杂。
在图7c中,伪码C程序根据32位整数和变量703来把第二数组b[i]702的元素添加到第一数组a[i]701。令人遗憾地是,在使用基于现有技术SPT的预取方法的过程中,可以不采用输入流b[i]的访问模式来检测数据访问操作的规律性。从而,当在数据高速缓存内行保持与b[i]有关的多个流数据元时,当依照本发明实施例执行拷贝功能时,当满足在循环a[i]>=0的条件时,至少对于每个高速缓存行实现了性能提高。
实验上已经发现当用于测试本发明而实现的本发明的实施例被用于超长指令字(VLIW)处理器时,每个处理器时钟周期多达2个数据引用是可执行的,而在数据高速缓存中未命中的数据引用的数量接近于百分之一个处理器时钟周期。此外,依照本发明实施例的SPT实施方式当制造时占据小的管芯面积。
在不脱离本发明精神或范围的情况下可以设想许多的其它实施例。

Claims (16)

1.一种数据获取的方法,包括如下步骤:提供第一存储电路(610);提供跨距预测(611)表(SPT);提供高速缓存器电路(612);执行用于访问第一存储器内的数据(613)的指令;检测高速缓存未命中(614);并且只有当检测到高速缓存未命中时才访问并更新(615)所述SPT。
2.如权利要求1所述的方法,其中所述高速缓存器电路是流缓冲器。
3.如权利要求1所述的方法,其中所述高速缓存器电路是随机访问高速缓存器。
4.如权利要求1所述的方法,其中所述高速缓存器电路和所述SPT在相同的物理存储空间内。
5.如权利要求1所述的方法,其中第一存储器是与执行所述指令的处理器分离的外存储器电路。
6.如权利要求1所述的方法,其中检测高速缓存未命中的步骤包括如下步骤:确定正由所述处理器执行的指令是否是存储器访问指令;当所述指令是存储器访问指令时,确定在所述存储器访问指令的存储单元的数据是否存在高速缓存内;并且当所述数据不在所述高速缓存内时,检测高速缓存未命中。
7.如权利要求1所述的方法,其中检测高速缓存未命中的步骤包括如下步骤:确定要由所述处理器加以执行的指令是否是存储器访问指令;当所述指令是存储器访问指令时,确定在所述存储器访问指令的存储单元的数据是否存在高速缓存内;并且当所述数据不在所述高速缓存内时,检测高速缓存未命中,并且只有当已经发生了高速缓存未命中时才访问并更新所述SPT。
8.如权利要求1所述的方法,其中访问步骤提供了过滤步骤,用于防止不必要的访问和更新所述SPT内的条目。
9.如权利要求1所述的方法,其中把高速缓存器电路与执行所述指令的处理器整合。
10.如权利要求1所述的方法,其中所述SPT包括地址字段,并且其中地址字段的大小小于用于作为所述SPT索引的地址空间。
11.一种设备包括:跨距预测(604)表(SPT);和供所述SPT使用的过滤电路(602),所述过滤电路对于确定其中将要访问并更新所述SPT的实例,所述实例只有当检测到高速缓存未命中时才发生。
12.如权利要求11所述的设备,包括存储器电路,所述存储器电路用于在其中存储所述SPT。
13.如权利要求12所述的设备,包括高速缓存器,所述高速缓存器驻留在所述存储器电路(605)内。
14.如权利要求13所述的设备,其中所述存储器电路是单端口的存储器电路。
15.如权利要求13所述的方法,其中所述存储器电路是随机访问存储器电路。
16.如权利要求1所述的方法,其中所述高速缓存器电路是流缓冲器(606)。
CNA2003801039526A 2002-11-22 2003-11-11 使用高速缓存未命中模式来寻址跨距预测表 Pending CN1849591A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US42828502P 2002-11-22 2002-11-22
US60/428,285 2002-11-22

Publications (1)

Publication Number Publication Date
CN1849591A true CN1849591A (zh) 2006-10-18

Family

ID=32393375

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2003801039526A Pending CN1849591A (zh) 2002-11-22 2003-11-11 使用高速缓存未命中模式来寻址跨距预测表

Country Status (6)

Country Link
US (1) US20060059311A1 (zh)
EP (1) EP1586039A2 (zh)
JP (1) JP2006516168A (zh)
CN (1) CN1849591A (zh)
AU (1) AU2003280056A1 (zh)
WO (1) WO2004049169A2 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105453041A (zh) * 2013-09-24 2016-03-30 英特尔公司 用于高速缓存占据确定和指令调度的方法和装置
CN106776371A (zh) * 2015-12-14 2017-05-31 上海兆芯集成电路有限公司 跨距参考预取器、处理器和将数据预取到处理器的方法
CN109074314A (zh) * 2016-04-08 2018-12-21 高通股份有限公司 基于存储器请求大小的预测减少存储器访问带宽
CN109564549A (zh) * 2016-08-19 2019-04-02 超威半导体公司 数据高速缓存区域预取器

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7669194B2 (en) * 2004-08-26 2010-02-23 International Business Machines Corporation Fine-grained software-directed data prefetching using integrated high-level and low-level code analysis optimizations
US7464246B2 (en) * 2004-09-30 2008-12-09 International Business Machines Corporation System and method for dynamic sizing of cache sequential list
US7373480B2 (en) * 2004-11-18 2008-05-13 Sun Microsystems, Inc. Apparatus and method for determining stack distance of running software for estimating cache miss rates based upon contents of a hash table
US7366871B2 (en) 2004-11-18 2008-04-29 Sun Microsystems, Inc. Apparatus and method for determining stack distance including spatial locality of running software for estimating cache miss rates based upon contents of a hash table
US20070150653A1 (en) * 2005-12-22 2007-06-28 Intel Corporation Processing of cacheable streaming data
US7774578B2 (en) * 2006-06-07 2010-08-10 Advanced Micro Devices, Inc. Apparatus and method of prefetching data in response to a cache miss
AU2010201718B2 (en) * 2010-04-29 2012-08-23 Canon Kabushiki Kaisha Method, system and apparatus for identifying a cache line
CN102662713B (zh) 2012-04-12 2014-04-16 腾讯科技(深圳)有限公司 提高应用程序运行速度的方法、装置及终端
US20140122796A1 (en) * 2012-10-31 2014-05-01 Netapp, Inc. Systems and methods for tracking a sequential data stream stored in non-sequential storage blocks
JP6341045B2 (ja) * 2014-10-03 2018-06-13 富士通株式会社 演算処理装置および演算処理装置の制御方法
US10592414B2 (en) 2017-07-14 2020-03-17 International Business Machines Corporation Filtering of redundantly scheduled write passes
US10713053B2 (en) * 2018-04-06 2020-07-14 Intel Corporation Adaptive spatial access prefetcher apparatus and method
US10467141B1 (en) * 2018-06-18 2019-11-05 International Business Machines Corporation Process data caching through iterative feedback
US10671394B2 (en) 2018-10-31 2020-06-02 International Business Machines Corporation Prefetch stream allocation for multithreading systems
US11194575B2 (en) * 2019-11-07 2021-12-07 International Business Machines Corporation Instruction address based data prediction and prefetching

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5261066A (en) * 1990-03-27 1993-11-09 Digital Equipment Corporation Data processing system and method with small fully-associative cache and prefetch buffers
US5761706A (en) * 1994-11-01 1998-06-02 Cray Research, Inc. Stream buffers for high-performance computer memory system
US5822790A (en) * 1997-02-07 1998-10-13 Sun Microsystems, Inc. Voting data prefetch engine
KR100560948B1 (ko) * 2004-03-31 2006-03-14 매그나칩 반도체 유한회사 6 트랜지스터 듀얼 포트 에스램 셀

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105453041A (zh) * 2013-09-24 2016-03-30 英特尔公司 用于高速缓存占据确定和指令调度的方法和装置
US10140210B2 (en) 2013-09-24 2018-11-27 Intel Corporation Method and apparatus for cache occupancy determination and instruction scheduling
CN105453041B (zh) * 2013-09-24 2019-10-01 英特尔公司 用于高速缓存占据确定和指令调度的方法和装置
CN106776371A (zh) * 2015-12-14 2017-05-31 上海兆芯集成电路有限公司 跨距参考预取器、处理器和将数据预取到处理器的方法
CN106776371B (zh) * 2015-12-14 2019-11-26 上海兆芯集成电路有限公司 跨距参考预取器、处理器和将数据预取到处理器的方法
CN109074314A (zh) * 2016-04-08 2018-12-21 高通股份有限公司 基于存储器请求大小的预测减少存储器访问带宽
CN109564549A (zh) * 2016-08-19 2019-04-02 超威半导体公司 数据高速缓存区域预取器

Also Published As

Publication number Publication date
US20060059311A1 (en) 2006-03-16
WO2004049169A3 (en) 2006-06-22
AU2003280056A8 (en) 2004-06-18
WO2004049169A2 (en) 2004-06-10
AU2003280056A1 (en) 2004-06-18
JP2006516168A (ja) 2006-06-22
EP1586039A2 (en) 2005-10-19

Similar Documents

Publication Publication Date Title
CN1849591A (zh) 使用高速缓存未命中模式来寻址跨距预测表
US8943272B2 (en) Variable cache line size management
JP4486750B2 (ja) テンポラリ命令及び非テンポラリ命令用の共用キャッシュ構造
US10133678B2 (en) Method and apparatus for memory management
JP6267314B2 (ja) キャッシュメモリの利用トレンドに基づく複数セットグループ内のウェイごとの動的パワー供給
JP3880581B2 (ja) キャッシュのロックを使用するストリーミング・データ
US6782454B1 (en) System and method for pre-fetching for pointer linked data structures
US20070156963A1 (en) Method and system for proximity caching in a multiple-core system
US20080086599A1 (en) Method to retain critical data in a cache in order to increase application performance
US20110173397A1 (en) Programmable stream prefetch with resource optimization
JP4451717B2 (ja) 情報処理装置および情報処理方法
US8250307B2 (en) Sourcing differing amounts of prefetch data in response to data prefetch requests
US8595443B2 (en) Varying a data prefetch size based upon data usage
JPH04324546A (ja) コンピュータ・システム
EP2271990B1 (en) Efficient processing of data requests with the aid of a region cache
Zhuang et al. A hardware-based cache pollution filtering mechanism for aggressive prefetches
JPH06348595A (ja) キャッシュ装置
EP1012723A1 (en) Cache hierarchy management with locality hints for different cache levels
CN1722110A (zh) 低等待时间存储器系统访问
US7493453B2 (en) System, method and storage medium for prefetching via memory block tags
EP1997003A1 (en) Data processing system and method for prefetching data and/or instructions
US20130232320A1 (en) Persistent prefetch data stream settings
US6959363B2 (en) Cache memory operation
US6026470A (en) Software-managed programmable associativity caching mechanism monitoring cache misses to selectively implement multiple associativity levels
US7162588B2 (en) Processor prefetch to match memory bus protocol characteristics

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: NXP CO., LTD.

Free format text: FORMER OWNER: KONINKLIJKE PHILIPS ELECTRONICS N.V.

Effective date: 20070817

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20070817

Address after: Holland Ian Deho Finn

Applicant after: Koninkl Philips Electronics NV

Address before: Holland Ian Deho Finn

Applicant before: Koninklijke Philips Electronics N.V.

C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication