CN1729445A - 预取计算机系统中的数据 - Google Patents

预取计算机系统中的数据 Download PDF

Info

Publication number
CN1729445A
CN1729445A CNA038218518A CN03821851A CN1729445A CN 1729445 A CN1729445 A CN 1729445A CN A038218518 A CNA038218518 A CN A038218518A CN 03821851 A CN03821851 A CN 03821851A CN 1729445 A CN1729445 A CN 1729445A
Authority
CN
China
Prior art keywords
address
prefetch
coupled
speed cache
cache
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.)
Granted
Application number
CNA038218518A
Other languages
English (en)
Other versions
CN100388185C (zh
Inventor
E·施普兰格尔
A·罗布拉
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN1729445A publication Critical patent/CN1729445A/zh
Application granted granted Critical
Publication of CN100388185C publication Critical patent/CN100388185C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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

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)

Abstract

一种方法和装置,用于检测和过滤出预取输入队列中的冗余超高速缓冲存储器线地址,并且用于根据关于该高速缓存-存储器控制器总线的该队列中的该检测器条目数量来动态地调整该检测器窗口尺寸。检测器对应于可以表示各级高速缓冲存储器中的高速缓存不命中的超高速缓冲存储器线地址。

Description

预取计算机系统中的数据
                           发明背景
发明领域
本发明涉及该计算机系统领域,更具体地说,涉及从存储位置预取数据。
相关技术的说明
预取是通常在处理器中加以执行的技术。在它实际上被该处理器的核心执行单元(EU)利用之前,预取处理器所要求的数据和指令。作为预取的结果,该EU可按该处理器的内部总线的相对较高的数据传输速率来获得该被预取的数据。处理器中的硬件预取引擎(HWP)通常预取该EU所要求的该数据。由于无论何时该EU要求它,这些被预取的数据和指令(数据)都可用,因此,预取通常会改善该处理器的总体性能。
但是,如果不正确地执行预取,则预取可能会削弱处理器或系统的性能。为了(例如)从外部存储器中预取数据和/或指令,可使用该外部存储器总线。因此,预取可能占用该外部存储器总线的各种资源,从而减小该外部存储器总线的有效带宽。可以将被预取的该数据/指令存储在接近该处理器的高速缓冲存储器中。为了提高效率,可以使用多级高速缓冲存储器。但是,由于该高速缓冲存储器的尺寸有限,新的数据/指令的预取可以重写仍然需要的、先前被取出的数据/指令。
在典型的处理器中,可以预取整条超高速缓冲存储器线。例如,如果超高速缓冲存储器线包括32个字节,并且如果在该高速缓存中发生不命中,那么,在某时,可以从外部存储器中预取32个字节,并将其存储在该高速缓存中。如果该相同的超高速缓冲存储器线中发生多个不命中,则该HWP可以多次预取该相同的整条超高速缓冲存储器线。这个预取方法既冗余、又效率低。
                         附图简述
通过参考下文和被用于举例说明的附图,可以理解本发明的各个实施例。在这些附图中:
图1表现了根据本发明的一个实施例的计算机系统的一个部分的框图。
图2表现了流程图,它展示根据本发明的一个实施例的滤波器电路的该操作。
图3表现了流程图,它展示根据本发明的一个实施例的输入队列中的队列条目的服务。
图4A、4B表现了流程图,它展示根据本发明的一个实施例的关于高速缓存不命中的检测器指派以及该窗口尺寸的动态调整。
图5表现了流程图,它展示根据本发明的一个实施例来分配关于L2高速缓存不命中的检测器。
图6表现了根据本发明的一个实施例的滤波器电路。
图7表现了根据本发明的一个实施例的监视器,用于分配检测器和调整该检测器窗口尺寸。
                            详细说明
描述了一种方法和装置,用于使用滤波器电路来处理处理器中的指令。此外,该方法和装置可以根据关于该总线的条目数量来动态地调整检测器窗口。在下文中,陈述众多特殊的细节(例如,逻辑实施、操作码、用于规定操作数的工具、系统部件的类型和相互关系、以及逻辑划分或集成选择),以便提供对本发明的彻底的理解。但是,掌握该技术领域的普通技能的人将会明白:可以在没有这些特殊细节的条件下实践本发明。在其他实例中,还没有示出众所周知的构造、控制结构、门级电路、完全的软件指令序列和技术等,以避免不必要地使对该说明的理解模糊不清。利用这些所包括的说明,掌握该技术领域的普通技能的人将能够执行适当的功能性,而无须执行过度的实验。
本说明书中对“一个实施例”、“实施例”、“范例实施例”等的参考指出:所描述的该实施例可以包括特定的特点、结构或特征,但每个实施例可能不一定都包括这个特定的特点、结构或特征。而且,这类短语不一定指的是相同的实施例。另外,当连同实施例来描述特定的特点、结构或特征时,认为:无论是否加以明确的描述,精通该技术领域的人都可以连同其他实施例来影响这种特点、结构或特征。
在以下的说明和权利要求书中,可以连同诸如“按通讯方式被耦合”等派生词一起来使用术语“被耦合”和“被连接”。应该理解:这些术语并不意在作为彼此的同义词。相反,在特定的实施例中,可以使用“被连接”来指出:两个或更多的元件彼此直接物理接触或电接触。但是,“被耦合”也可以意味着:两个或更多的元件彼此没有直接接触,但仍然彼此合作或相互作用。
使用精通该技术领域的人通常所运用的术语来呈现该说明的各个部分,以便向精通该技术领域的其他人传达其工作的实质。也按照通过执行编程指令来加以执行的操作,来呈现该说明的各个部分。如精通该技术领域的人所熟知的,这些操作经常采取能够通过(例如)电部件来加以存储、传送、结合和操作的电信号、磁信号或光信号的形式。
图1是根据本发明的一个实施例的计算机系统的一个部分的框图。在图1所展示的该实施例中,处理器100包括被耦合到L1高速缓存105的执行单元(EU)160,该L1高速缓存105被耦合到滤波器电路110。产生于来自L1高速缓存105的高速缓存不命中的超高速缓冲存储器线请求可以被输入滤波器电路110。超高速缓冲存储器线请求是关于来自主存储器或来自另一级高速缓冲存储器的数据和/或指令块的请求。在一个实施例中,L1高速缓存105是内部存储器(即处理器100内部的存储器),但其他实施例可以使用其他配置(例如,处理器100外部的存储器)。输入队列115和输出队列125可以包括控制电路和缓冲存储器,以处理包括来自EU 160的高速缓存不命中的请求。
在本发明的一个实施例中,通过滤波器电路110而进入输入队列115的这些请求是读请求。这些请求可能是关于EU 160将要利用的数据、指令或两者(数据/指令)的请求。这些读请求可以从将要被读取的该数据中识别存储地址。这些地址可以经受地址转换,以便当被输入队列115接收时,它们可以表示物理地址或虚拟地址。滤波器电路110被耦合到输入队列115,输入队列115被耦合到HWP 120。滤波器电路110可以过滤出来自输入滤波器队列115的冗余超高速缓冲存储器线请求。在一个实施例中,超高速缓冲存储器线请求包括关于超高速缓冲存储器线的请求,该超高速缓冲存储器线包含来自与L1高速缓存不命中相对应的地址位置的数据/指令。这样,输入队列115中的每个条目可以包含用于检索单一超高速缓冲存储器线的地址。
在图1的该实施例中,HWP 120被耦合到输出队列125,输出队列125被耦合到L2请求队列152。L2请求队列152被耦合到L2高速缓存153,L2高速缓存153经由前侧总线(FSB)157而被耦合到存储控制器150。虽然该术语FSB有时在本揭示说明中被用来描述该高速缓存-存储器控制器总线,但是,对于掌握该技术领域的普通技能的人而言,将会显而易见:其他术语可以被用于在高速缓存与主存储器之间传送数据的总线,而不会偏离本发明的各个实施例。
监视器140可以监控这些超高速缓冲存储器线请求(例如,在输出队列125中),并将检测器指派给超高速缓冲存储器线请求。在本发明的一个实施例中,监视器140可以被耦合到该HWP 120,或可以构成该HWP 120的一部分。在本发明的其他实施例中,监视器140可以被耦合到输出队列125,作为单独实体;或者,可以构成输出队列125的不可分割的一部分。存储控制器150从L2高速缓存153那里接收这些超高速缓冲存储器线请求,并且经由存储器总线170来从存储器(例如,DRAM 155)中检索数据/指令。这里所描述的每个队列(例如,输入队列115、输出队列125和L2请求队列152)可以具有控制和缓冲器电路,以便管理和存储这些超高速缓冲存储器线请求、该被预取的数据、以及其他的变量和计数器。
在获得关于EU 160的该数据/指令的过程中,该EU可以将请求发送到该L1高速缓存。如果在该L1高速缓存中没有发现该被请求的数据/指令,则触发高速缓存不命中(例如,可以设置标志,并且可以通过该插入逻辑而将关于该需要的数据/指令的超高速缓冲存储器线请求发送到该L2高速缓存)。在一个实施例中,一旦第一超高速缓冲存储器线请求被HWP 120接收,HWP120或监视器140就可以预测EU 160将要求的下一条超高速缓冲存储器线,并且连同该第一超高速缓冲存储器线请求一起将关于那下一个超高速缓冲存储器线请求的请求发送到该L2高速缓存。如果在该L2高速缓存153中没有发现超高速缓冲存储器线请求,则该超高速缓冲存储器线请求可以经由FSB队列157而被转送到外部存储器(即,到DRAM 155)。
由于对相同的指令超高速缓冲存储器线的多个超高速缓冲存储器线请求相对罕见,因此,在一个实施例中,只有关于高速缓存数据不命中的超高速缓冲存储器线请求被输入滤波器电路110,而关于高速缓存指令不命中的超高速缓冲存储器线请求被直接输入输入队列115(见图1中的虚线箭头)。由于HWP 120在超高速缓冲存储器线或块中进行预取,因此,相同的存储块内的地址不需要生成复制的超高速缓冲存储器线请求。例如,如果超高速缓冲存储器线包括32个字节,并且如果高速缓存不命中发生在地址位置9,那么,关于包括地址位置9的超高速缓冲存储器线的请求被输入输入队列115。但是,如果以后高速缓存不命中发生在地址位置10(假设:地址位置10在与地址位置9相同的超高速缓冲存储器线中),那么,关于该相同的超高速缓冲存储器线的第二请求不被放置在输入队列115中。所以,滤波器电路110可以过滤出关于已被发送到输入队列115的超高速缓冲存储器线的超高速缓冲存储器线请求。与“将超高速缓冲存储器线请求发送到关于每个L1高速缓存不命中的输入队列115”相比,通过滤波器电路110所执行的冗余超高速缓冲存储器线请求的该过滤,可以允许HWP 120按较低频率运行(从而消耗较少的功率,并且设计起来更简单)。
根据图2和图6来描述根据本发明的一个实施例的滤波器电路110的该操作。如图2和图6中所展示的,在205处,重置或清除滤波器缓冲器605A-D和地址寄存器620。在210处,计数器I(未示出)被初始化为零。计数器I可以位于各种电路中(例如,在滤波器电路600中或在控制器610中)。在本发明的一个实施例中,计数器I指向其中接下来存储超高速缓冲存储器线请求的该缓冲位置。在215处,确定:该EU所需要的该数据/指令是否会导致高速缓存不命中。如果该L1高速缓存中没有该数据/指令,则触发高速缓存不命中。
通过触发高速缓存不命中,可使与触发过该高速缓存不命中的该请求(即超高速缓冲存储器线请求)相对应的超高速缓冲存储器线的该地址被存储在地址寄存器620中。如果无条目被存储在缓冲器605A-D中,则该超高速缓冲存储器线请求被存储在计数器I所指向的该缓冲位置。在225处,例如,由控制器610确定:该超高速缓冲存储器线的该地址是否与缓冲器605A-D中所存储的任何条目的该超高速缓冲存储器线地址相匹配。虽然图6中的该实施例比较各个超高速缓冲存储器线地址,但是,其他实施例可以存储在缓冲器605A-D中,并比较其他尺寸递增(例如,字节地址、字地址等)。在一个实施例中,比较电路(例如,包括一系列异或门电路(未示出))将地址寄存器620中所存储的这些超高速缓冲存储器线请求的各个位与缓冲器605A-D中所存储的这些超高速缓冲存储器线请求进行比较。如果地址寄存器620中的该超高速缓冲存储器线请求与缓冲器605A-D中的条目相匹配,那么,在本发明的一个实施例中,放弃地址寄存器620中的该超高速缓冲存储器线请求(例如,该地址寄存器可以被重置为空值)。在本发明的一个实施例中,允许一个处理器周期过去,而不是放弃地址寄存器620中的这些超高速缓冲存储器线请求;并且,在这下一个处理器周期期间,这些接下来的超高速缓冲存储器线请求(对应于这下一个高速缓存不命中)被存储在地址寄存器620中。
但是,如果地址寄存器620中所存储的这些超高速缓冲存储器线请求不与缓冲器605A-D中的条目相匹配,那么,用地址寄存器620中所存储的这些超高速缓冲存储器线请求来取代该计数器I所指向的该缓冲器中的该超高速缓冲存储器线请求。在235处,在本发明的一个实施例中,在将该超高速缓冲存储器线请求写入该缓冲器之后,该计数器I递增。在240处,(例如)由控制器610确定:计数器I是否指向这个最后的缓冲位置。如果该计数器I指向这个最后的缓冲位置,从而指出“所有缓冲位置605A-D都充满”,那么,可以引入等待周期,其间,该HWP为缓冲器605A-D中的这些超高速缓冲存储器线请求提供服务,从而为这下一个非冗余超高速缓冲存储器线地址而释放缓冲位置。
在本发明的一个实施例中,当为超高速缓冲存储器线请求服务时,这些超高速缓冲存储器线请求按先进先出(FIFO)方式而逐次前进通过这些缓冲位置。例如,当缓冲位置605a中的该超高速缓冲存储器线请求被提供服务(即,被发送到该HWP,再到该输出队列)时,缓冲位置605b-d中的其他超高速缓冲存储器线请求上移一个间隔,以填充缓冲位置605a中所创建的该空位。这样,这个新的非冗余超高速缓冲存储器线请求被拷贝到空闲的缓冲位置605d,并且,最老的条目(从时间上来说)经由该输入队列而被发送到该HWP。在245处,如果缓冲器可用,则该超高速缓冲存储器线地址被写入那个缓冲器。在245处将该超高速缓冲存储器线请求加入该缓冲器之后,该周期可以在215处再次开始。虽然图6中的该实施例展示了被标注为605A-D的4个缓冲器,但是,其他实施例可以具有不同数量的缓冲器并且/或者带有其他标签。在图6所展示的该实施例中,控制器610执行高速缓存不命中地址到超高速缓冲存储器线请求的转换,并且可以将这些超高速缓冲存储器线请求写入地址寄存器620以及(当这些缓冲位置变得可用时)缓冲器605A-D。
图3是流程图,它展示了该输入队列中的队列条目的服务。在301处,EU 160将关于数据/指令的请求发送到高速缓存105。在302处,确定:是否有超高速缓冲存储器线请求(由高速缓存不命中来触发)。如果没有超高速缓冲存储器线请求,那么,在304处,输入队列115触发等待周期,并且,这时没有采取行动。但是,如果在302处有对输入队列115的超高速缓冲存储器线请求,那么,在一个实施例中,在303处,最老的超高速缓冲存储器线请求(即已经在输入队列115中的该超高速缓冲存储器线请求——最长的)退出队列,以便为这个新的请求腾出空位。使请求退出队列意味着:由(例如)HWP 120来为已在该队列中的超高速缓冲存储器线请求提供服务。在305处,(例如)由HWP 120确定:输入队列115中的这个退出队列的超高速缓冲存储器线请求是否是基于L1高速缓存不命中的请求。在本发明的一个实施例中,通过检验与每个超高速缓冲存储器线请求相对应的标志来确定该不命中类型,HWP 120可确定该不命中类型。如果在305处,该超高速缓冲存储器线请求被确定是L1数据或指令高速缓存不命中,那么,在307处,将该地址与先前所定义的这些检测器进行比较。在本发明的一个实施例中,检测器被定义为:具有等同于先前创建的超高速缓冲存储器线预取请求的地址。但是,如果305处的该超高速缓冲存储器线请求不是L1高速缓存不命中,那么,在306处,确定:该高速缓存不命中是L2高速缓存不命中。如果该高速缓存不命中是L2高速缓存不命中,那么,如根据图5而解释的,该L2超高速缓冲存储器线请求(对应于该L2高速缓存不命中)被分配检测器。
在本发明的一个实施例中,可以由可构成HWP 120的一部分的匹配检测电路来发现该检测器分配。在其它实施例中,可以由单独电路(例如,由被耦合到输出队列125的监视器140)来执行该检测器分配。在本发明的一个实施例中,由包括地址、方向和窗口尺寸的参数来定义检测器。该输入队列中的该超高速缓冲存储器线请求的该地址可以在该检测器地址+/-该窗口尺寸的范围以内。该检测器的该方向可以是以下任何一个值:零、+1或-1。零可以意味着:该检测器还没有被分配方向。+1可以指出:该检测器具有向前的方向;-1可以指出:该检测器具有相反的方向。该检测器的该地址指出这下一个超高速缓冲存储器线预取请求的该地址,并且,该检测器的该方向被用来计算这些接连的预取请求。例如,具有100的地址并具有+1的方向的检测器暗示:这下一个超高速缓冲存储器线预取请求将是100——后面是101。
图4A、4B展示了流程图,它表现根据本发明的一个实施例的关于高速缓存不命中的该检测器指派和该窗口尺寸的动态调整。图7展示了根据本发明的一个实施例的监视器。在本发明的一个实施例中,监视器700可以被耦合到图1中的线路121所指出的HWP 120。在本发明的其它实施例中,监视器700可以是被耦合到输出队列125的单独电路。参照图4A、4B和图7来解释该检测器指派。如图4A所展示的,在401处,(例如)由被耦合到输入队列115的控制器710来检测L1超高速缓冲存储器线请求。在405处,表示检测器的变量“D”被初始化为(例如)零。在415处,确定:检测器“D”的该方向是否是零(即,指出:还没有指派该检测器的该方向)。在本发明的一个实施例中,这些检测器被存储在缓冲器705A-D中。
每个检测器至少具有地址位、指出相对于该检测器地址(方向标志)的从那里预取数据的该方向的一个或多个位、检测器前面命中(HAD)计数器、检测器后面命中(HBD)计数器、以及最近最少使用的标志(LRU)标记。如果该检测器的该方向标志具有零的值,那么,在420处,(例如)由控制器710确定:det ector”D”address≥cachelineaddress≥det ector”D”address-windowsize...[1]是否为真。特别是,控制器710确定:检测器D的该地址是大于、还是等于该超高速缓冲存储器线地址;以及,该超高速缓冲存储器线地址是大于、还是等于检测器D的该地址减去该窗口尺寸。如果两者都是,那么,递增该HBD计数器,并更新该LRU标记。
在本发明的一个实施例中,检测器窗口尺寸730是确定预取数据的侵占性的全局变量。大的窗口尺寸指出侵占性预取,反之亦然。如果方程式[1]为真,那么,递增被称作为“HBD计数器”的计数器,并且,该LRU标记被加以设置——例如,具有指出该时间的值。在440处,(例如)由控制器710确定:关于该检测器的该HBD计数器是否具有大于(例如)三的值。如果该HBD计数器大于三,那么,在445处,检测器的方向“D”被设置为-1。此外,在本发明的一个实施例中,在445处,该检测器的该地址被设置为该超高速缓冲存储器线地址(不命中地址)减去该窗口尺寸。在本发明的一个实施例中,如果在440处,该HBD计数器没有大于三的值,则该过程在450处结束。如果在420处,方程式[1]为假,那么,在425处,(例如)由控制器710确定:det ector”D”address≤cachelineaddress≤detector”D”address+windowsize...[2]是否为真。
特别是,控制器710确定:检测器D的该地址是小于、还是等于该超高速缓冲存储器线地址;以及,该超高速缓冲存储器线地址是小于、还是等于检测器D的该地址加上该窗口尺寸。如果条件[2]为真,那么,在452处,递增该HAD计数器,并更新该LRU标记。在452处递增该HAD计数器和关于检测器“D”的该LRU标记之后,在454处确定:HAD计数器是否大于二。如果该HAD计数器大于二,那么,在456处,检测器“D”的该方向被设置为加一,并且,该检测器的该地址被设置为该不命中地址加上该窗口尺寸。在456处设置该检测器的该地址和方向之后,该过程在450处结束。如果在425处,条件[2]的该结果为假,那么,在430处,该计数器“D”递增一,并且,该过程被加以重复。
但是,如果在415处,该检测器的该方向被确定不等于零,那么,在458处,(例如)由控制器710确定:检测器“D”的该方向是否等于一。特别是,具有1的方向的检测器意味着:被预取的这下一个超高速缓冲存储器线地址具有比这个被指派的检测器的该地址更大的地址。因此,被预取的该数据是与该检测器地址相对应的该数据,而且是与这下一个超高速缓冲存储器线地址相对应的该数据。如果在458处,该检测器方向等于一,那么,在460处,(例如)由控制器710确定:det ector”D”address≥cachelineaddress≥det ector”D”address-windowsize...[3]是否为真。特别是,控制器710确定:检测器D的该地址是大于、还是等于该超高速缓冲存储器线地址;以及,该超高速缓冲存储器线地址是大于、还是等于检测器D的该地址减去该窗口尺寸。
在本发明的一个实施例中,一旦检测器被指派超高速缓冲存储器线地址,对应于这个被指派的检测器前面和后面的超高速缓冲存储器线的数据就被自动预取。如果该条件[3]为假,那么,在427处,该变量“D”递增一,并且,过程流动到410。在410处,(例如)由控制器710确定:所有这些检测器都已被指派超高速缓冲存储器线地址。但是,如果条件[3]为真,那么,在464处,控制器710使检测器D排队,并获得对应于检测器D的数据、以及对应于其地址在检测器D的该地址右边的该邻近的超高速缓冲存储器线的数据(即,对应于这下一个最高的超高速缓冲存储器线请求地址)。接下来,在465处,该检测器地址被设置为等同于该检测器地址加上两倍的该检测器方向。检测器D的该方向递增2,以便随后的预取可获得对应于这接下来的两个超高速缓冲存储器线请求的数据。
如果在458处,检测器D的该方向不等于1,那么,在466处,确定:det ector”D”address≤cachelineaddress≤det ector”D”address+windowsize...[4]是否为真。特别是,控制器710确定:检测器D的该地址是小于、还是等于该超高速缓冲存储器线地址;以及,该超高速缓冲存储器线地址是小于、还是等于检测器D的该地址加上该窗口尺寸。如果条件[4]为真,则该过程流动到464。但是,如果条件[4]为假,则该过程流动到427。
在本发明的一个实施例中,该监视器根据FSB队列732中的超高速缓冲存储器线请求的数量来调整该窗口尺寸。该算法确保:如果该窗口尺寸太大,那么,与该窗口尺寸太小相比,有可能触发更多的检测器。触发检测器意味着:该检测器被指派超高速缓冲存储器线地址,并且被发送到输出队列125或该L2请求队列,以取出该对应的数据。如果FSB队列732处于被欠利用的状态,则增加该窗口尺寸;并且,如果FSB队列732具有太多条目(被过度利用),那么,减小该窗口尺寸。当减小该窗口尺寸时,触发较少的检测器。
在470处,(例如)由控制器710确定:FSB队列732中的该条目数量是否小于最大FSB阈值727。在本发明的一个实施例中,最大FSB阈值727、最小FSB阈值728、最大检测器窗口尺寸726、最小检测器窗口尺寸725和检测器窗口尺寸730是被存储在监视器700中的变量。如果FSB队列732中的该条目数量小于最大FSB阈值727,那么,在472处,(例如)由控制器710确定:检测器窗口尺寸730是否小于最大检测器窗口尺寸726。如果在472处,检测器窗口尺寸730小于最大检测器窗口尺寸726,那么,在474处,检测器窗口尺寸730递增一,并且,该过程在484处结束。
但是,如果FSB队列732中的该条目数量不小于最大FSB阈值727,那么,在476处,(例如)由控制器710确定:FSB队列732中的该条目数量是否大于最小阈值728。如果FSB队列732中的该条目数量大于最小阈值728,那么,在478处,(例如)由控制器710确定:检测器窗口尺寸730大于最小检测器窗口尺寸725。如果在478处,检测器窗口尺寸730大于最小检测器窗口尺寸725,那么,在480处,检测器窗口尺寸变量730被设置为等于该检测器窗口减去一。但是,如果在478处,检测器窗口尺寸430小于最小检测器窗口尺寸725,则该过程在484处结束。
这样,根据该FSB队列中的该条目数量来调整该窗口尺寸。如果FSB队列732具有很少的条目,则增加检测器窗口尺寸730。如果FSB队列732具有太多条目,则减小窗口尺寸730。
图5展示了流程图,用于根据本发明的一个实施例来分配关于L2高速缓存不命中的检测器。如图5所展示的,在505处,输入队列115检测新的L2超高速缓冲存储器线。在510处,指出该检测器数量的变量“D”由(例如)控制器710来初始化为零。在515处,(例如)由控制器710确定:detector”D”address≤cachelineaddress≤det ector”D”address+windowsize...[5]是否为真。特别是,控制器710确定:检测器D的该地址是小于、还是等于该超高速缓冲存储器线地址;以及,该超高速缓冲存储器线地址是小于、还是等于检测器D的该地址加上该窗口尺寸。如果条件[5]为真,则该过程在525处结束。如果[5]为假,那么,在520处,(例如)由控制器710确定:det ector”D”address≥cachelineaddress≥det ector”D”address-windowsize...[6]是否为真。特别是,控制器710确定:检测器D的该地址是大于、还是等于该超高速缓冲存储器线地址;以及,该超高速缓冲存储器线地址是大于、还是等于检测器D的该地址减去该窗口尺寸。如果条件[6]为真,则该过程在525处结束。但是,如果条件[6]为假,那么,(例如)由控制器710确定:“D”是否小于检测器的该最大数量。如果D小于监视器700所指派的检测器的最大数量,那么,在540处,通过比较这些检测器的各个时间标记,(例如)由控制器710来识别该LRU检测器。一旦识别该LRU检测器,就在545处对该最近最少使用的检测器进行初始化。在一个实施例中,对该最近最少使用的检测器进行初始化意味着:将该检测器地址设置为该不命中地址,并将该检测器的该方向设置为零。也意味着:将该HBD计数器设置为零,将该HAD计数器设置为零,并更新该LRU检测器计数器。在对该LRU检测器进行初始化之后,该过程在550处结束。
如前所述,通过调整关于最大和最小检测器窗口尺寸以及关于该FSB队列中的最大和最小条目数量的各个参数,可以调整该过滤操作的侵占性。可以为各种操作模式而协调这些参数和关联的侵占性。例如,如果该处理器处于单一线程(ST)模式,则可以使用更具侵占性的参数集;而如果该处理器处于同时多线程模式(SMT),则可以使用侵占性较小的参数集。这些参数也可以为其他操作模式和/或操作条件而加以调整,并且,甚至可以被调整,以适应操作条件的组合(而不是单一的操作条件)。可以使用各种用于为这些参数编程的方法。在一个实施例中,一个或多个位被设置成指出该操作条件,并且,硬件将这些位的该状态转变成这些关联的参数。在另一个实施例中,这些参数被直接编程到寄存器中——从那里,该有关的电路可存取这些参数。也可以使用为这些有关的参数编程的其他技术。
这样,已揭示了一种方法和装置,用于过滤该输入队列中的超高速缓冲存储器线地址,并根据该FSB中的该条目数量来动态地调整该检测器窗口尺寸。已展示和描述了目前所认为的本发明的范例实施例,但精通该技术领域的人将会理解:在不脱离本发明的真实范围的前提下,可以进行各种其他的修改,并可以替换相等物。此外,在不脱离这里所描述的该中心发明概念的前提下,可以进行许多修改,以便使特定情况适应本发明的教导。所以,本发明并不意在局限于所揭示的这些特定实施例,而是意在包括处于所附权利要求书的范围以内的所有实施例。

Claims (50)

1.一种装置,其特征在于包括:
多个地址缓冲器,用于接收和存储多个预取地址;以及,
滤波器电路,它被耦合到这多个地址缓冲器,用于将被存储的这多个预取地址与被接收的预取地址进行比较,如果这个被接收的预取地址等同于被存储的这多个预取地址中的任何一个预取地址,则所述滤波器电路放弃这个被接收的预取地址。
2.权利要求1的装置,其特征在于:其中,如果这个被接收的预取地址不等同于这些被存储的预取地址中的任何一个预取地址,则该滤波器电路将这个被接收的预取地址存储在这多个地址缓冲器之一中。
3.权利要求1的装置,其特征在于:其中,这些预取地址包括高速缓存中的数据不命中的地址和高速缓存中的指令不命中的地址中的至少一个地址。
4.权利要求1的装置,其特征在于:其中,这多个预取地址和这个被接收的预取地址是超高速缓冲存储器线地址。
5.权利要求1的装置,其特征在于:其中,该滤波器电路被耦合到硬件预取引擎,所述硬件预取引擎预取这些预取地址所指向的信息。
6.权利要求1的装置,其特征在于:其中,该滤波器电路被耦合到输入队列。
7.权利要求6的装置,其特征在于:其中,该输入队列被耦合到硬件预取引擎。
8.权利要求7的装置,其特征在于:其中,该硬件预取引擎被耦合到输出队列。
9.权利要求8的装置,其特征在于:其中,该输出队列被耦合到L2请求队列。
10.权利要求5的装置,其特征在于:其中,该硬件预取引擎从处理器高速缓存和外部存储器中的至少一项中预取数据和指令中的至少一项。
11.权利要求1的装置,其特征在于:其中,该滤波器电路被耦合到处理器核心。
12.一种方法,其特征在于包括:
接收第一预取地址;
存储该第一预取地址;
接收第二预取地址;
将这个被接收的第二预取地址与这个被存储的第一预取地址进行比较;以及,
如果该第二预取地址等同于这个被存储的第一预取地址,则放弃这个被接收的第二预取地址。
13.权利要求12的方法,其特征在于:其中,这些预取地址包括高速缓存中的数据不命中的地址和高速缓存中的指令不命中的地址中的至少一个地址。
14.权利要求12的方法,其特征在于:进一步包括:如果该第二高速缓存不命中地址等同于这个被存储的第一预取地址,则存储这个被接收的第二预取地址。
15.权利要求12的方法,其特征在于:进一步包括:将这些被存储的预取地址发送到硬件预取引擎,以预取这些被存储的预取地址所指向的信息。
16.权利要求12的方法,其特征在于:这些预取地址是超高速缓冲存储器线地址。
17.一种计算机系统,其特征在于包括:
外部总线;
被耦合到该外部总线的外部存储器;
被耦合到高速缓冲存储器和该外部存储器的处理器核心;
多个地址缓冲器,用于接收和存储多个预取地址;以及,
滤波器电路,它被耦合到这多个地址缓冲器,用于将被存储的这多个预取地址与被接收的预取地址进行比较,如果这个被接收的预取地址与被存储的这多个预取地址中的任何一个预取地址相匹配,则所述滤波器电路放弃这个被接收的预取地址。
18.权利要求17的计算机系统,其特征在于:其中,如果这个被接收的预取地址不与这些被存储的预取地址中的任何一个预取地址相匹配,则该滤波器电路将这个被接收的预取地址存储在这多个地址缓冲器之一中。
19.权利要求17的计算机系统,其特征在于:其中,这些预取地址包括高速缓存中的数据不命中的地址和高速缓存中的程序指令不命中的地址中的至少一个地址。
20.权利要求17的计算机系统,其特征在于:其中,这多个预取地址和这个被接收的预取地址是超高速缓冲存储器线地址。
21.权利要求17的计算机系统,其特征在于:其中,该滤波器电路被耦合到硬件预取引擎,所述硬件预取引擎预取这些预取地址所指向的信息。
22.权利要求17的计算机系统,其特征在于:其中,该滤波器电路被耦合到输入队列。
23.权利要求17的计算机系统,其特征在于:其中,该输入队列被耦合到硬件预取引擎。
24.权利要求17的计算机系统,其特征在于:其中,该硬件预取引擎被耦合到输出队列。
25.权利要求17的计算机系统,其特征在于:其中,该输出队列被耦合到仲裁器,该仲裁器被耦合到高速缓冲存储器。
26.权利要求17的计算机系统,其特征在于:其中,该预取引擎从该外部存储器中预取包括数据和程序指令的信息。
27.一种方法,其特征在于包括:
生成多个检测器,每个检测器与预取地址和检测器窗口尺寸变量相对应;
将这多个检测器中的至少一个检测器发送到高速缓存-存储器控制器总线队列,以预取数据和指令中的至少一项;
监控该高速缓存-存储器控制器总线队列中的这多个检测器中的该至少一个检测器的数量;以及,
根据该高速缓存-存储器控制器总线队列中的这多个检测器中的该至少一个检测器的该数量,来调整该检测器窗口尺寸变量。
28.权利要求27的方法,其特征在于:其中,该预取地址包括高速缓存中的数据不命中的地址和高速缓存中的指令不命中的地址中的至少一个地址。
29.权利要求27的方法,其特征在于:其中,该预取地址是超高速缓冲存储器线地址。
30.权利要求27的方法,其特征在于:其中,如果该高速缓存-存储器控制器总线队列中有少于预定的第一数量的检测器,则动态地增加该检测器窗口尺寸;如果该高速缓存-存储器控制器总线队列中有多于预定的第二数量的检测器,则动态地减少该检测器窗口尺寸。
31.权利要求30的方法,其特征在于:其中,如果该检测器窗口尺寸小于最大检测器窗口尺寸变量,则动态地增加该检测器窗口尺寸。
32.权利要求30的方法,其特征在于:其中,如果该检测器窗口尺寸大于最小检测器窗口尺寸变量,则动态地减少该检测器窗口尺寸。
33.一种装置,其特征在于包括:
多个检测器缓冲器,用于存储多个检测器;
超高速缓冲存储器线请求缓冲器,它被耦合到这多个检测器缓冲器;以及,
被耦合到这多个检测器缓冲器和该超高速缓冲存储器线请求缓冲器的控制器,所述控制器将检测器分配给超高速缓冲存储器线请求,并且动态地调整被发送到高速缓存-存储器控制器总线队列的该检测器数量。
34.权利要求33的装置,其特征在于:其中,这些超高速缓冲存储器线请求包括高速缓存中的数据不命中的地址和高速缓存中的指令不命中的地址中的至少一个地址。
35.权利要求33的装置,其特征在于:其中,如果该高速缓存-存储器控制器总线队列中的该检测器数量小于预定的第一数量,那么,该控制器将要监控该高速缓存-存储器控制器总线队列并增加被发送到该高速缓存-存储器控制器总线的该检测器数量;如果该高速缓存-存储器控制器总线队列中的该检测器数量大于预定的第二数量,那么,该控制器将要减少被发送到该高速缓存-存储器控制器总线队列的该检测器数量。
36.权利要求33的装置,其特征在于:其中,该控制器将要监控检测器窗口尺寸变量,该检测器窗口尺寸变量对应于该高速缓存-存储器控制器总线队列中的该条目数量而加以动态的调整。
37.权利要求33的装置,其特征在于:其中,该控制器被耦合到输出队列。
38.权利要求37的装置,其特征在于:其中,该输出队列被耦合到该FSB队列。
39.权利要求33的装置,其特征在于:其中,该控制器被耦合到硬件预取引擎。
40.一种计算机系统,其特征在于包括:
外部总线;
被耦合到该外部总线的外部存储器;
被耦合到高速缓冲存储器和该外部存储器的处理器核心,所述处理器包括:
用于存储多个检测器的多个检测器缓冲器;
被耦合到这多个检测器缓冲器的超高速缓冲存储器线请求缓冲器;以及,
被耦合到这多个检测器缓冲器和该超高速缓冲存储器线请求缓冲器的控制器,所述控制器将检测器分配给超高速缓冲存储器线请求,并且动态地调整被发送到高速缓存-存储器控制器总线队列的该检测器数量。
41.权利要求40的计算机系统,其特征在于:其中,这些超高速缓冲存储器线请求包括高速缓存中的数据不命中的地址和高速缓存中的指令不命中的地址中的至少一个地址。
42.权利要求40的计算机系统,其特征在于:其中,如果该高速缓存-存储器控制器总线队列中的该检测器数量小于预定的第一数量,那么,该控制器将要监控该高速缓存-存储器控制器总线队列并增加被发送到该高速缓存-存储器控制器总线队列的该检测器数量;如果该高速缓存-存储器控制器总线队列中的该检测器数量大于预定的第二数量,那么,该控制器将要减少被发送到该高速缓存-存储器控制器总线队列的该检测器数量。
43.权利要求40的计算机系统,其特征在于:其中,该控制器将要监控检测器窗口尺寸变量,该检测器窗口尺寸变量对应于该高速缓存-存储器控制器总线队列中的该条目数量而加以动态的调整。
44.权利要求40的计算机系统,其特征在于:其中,该控制器被耦合到输出队列。
45.权利要求40的计算机系统,其特征在于:其中,该输出队列被耦合到该高速缓存-存储器控制器总线队列。
46.权利要求40的计算机系统,其特征在于:其中,该控制器被耦合到硬件预取引擎。
47.权利要求40的计算机系统,其特征在于:其中,该输出队列被耦合到存储器。
48.权利要求47的计算机系统,其特征在于:其中,该存储器是动态随机存取(DRAM)存储器。
49.权利要求40的计算机系统,其特征在于:其中,该检测器数量的该动态调整基于该处理器的操作模式。
50.权利要求49的计算机系统,其特征在于:其中,该处理器的该操作模式是单一线程模式和同时多线程模式之一。
CNB038218518A 2002-09-16 2003-09-06 预取计算机系统中的数据 Expired - Fee Related CN100388185C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/244,250 2002-09-16
US10/244,250 US7032076B2 (en) 2002-09-16 2002-09-16 Prefetching data in a computer system

Publications (2)

Publication Number Publication Date
CN1729445A true CN1729445A (zh) 2006-02-01
CN100388185C CN100388185C (zh) 2008-05-14

Family

ID=31991868

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB038218518A Expired - Fee Related CN100388185C (zh) 2002-09-16 2003-09-06 预取计算机系统中的数据

Country Status (5)

Country Link
US (2) US7032076B2 (zh)
EP (1) EP1573512A3 (zh)
CN (1) CN100388185C (zh)
AU (1) AU2003270317A1 (zh)
WO (1) WO2004025457A2 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101464845B (zh) * 2009-01-09 2012-09-05 威盛电子股份有限公司 用于总线系统的预取装置、预取系统及预取数据方法
CN108255517A (zh) * 2016-12-29 2018-07-06 展讯通信(上海)有限公司 处理器及请求指令缓存数据的方法
CN109074331A (zh) * 2016-03-27 2018-12-21 高通股份有限公司 具有系统高速缓存和本地资源管理的功率降低存储器子系统
CN112231241A (zh) * 2019-07-15 2021-01-15 深圳市中兴微电子技术有限公司 一种数据读取方法和装置、计算机可读存储介质

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7370081B2 (en) * 2003-06-19 2008-05-06 International Business Machines Corporation Method, system, and program for communication of code changes for transmission of operation requests between processors
US7363629B2 (en) * 2003-06-19 2008-04-22 International Business Machines Corporation Method, system, and program for remote resource management
US8117392B2 (en) * 2003-10-22 2012-02-14 Intel Corporation Method and apparatus for efficient ordered stores over an interconnection network
US7383403B1 (en) * 2004-06-30 2008-06-03 Sun Microsystems, Inc. Concurrent bypass to instruction buffers in a fine grain multithreaded processor
US7434000B1 (en) 2004-06-30 2008-10-07 Sun Microsystems, Inc. Handling duplicate cache misses in a multithreaded/multi-core processor
US7206902B2 (en) * 2004-08-17 2007-04-17 Nvidia Corporation System, apparatus and method for predicting accesses to a memory
US7441087B2 (en) * 2004-08-17 2008-10-21 Nvidia Corporation System, apparatus and method for issuing predictions from an inventory to access a memory
US8037250B1 (en) 2004-12-09 2011-10-11 Oracle America, Inc. Arbitrating cache misses in a multithreaded/multi-core processor
US7350029B2 (en) * 2005-02-10 2008-03-25 International Business Machines Corporation Data stream prefetching in a microprocessor
US7380066B2 (en) * 2005-02-10 2008-05-27 International Business Machines Corporation Store stream prefetching in a microprocessor
JP4574712B2 (ja) * 2006-02-28 2010-11-04 富士通株式会社 演算処理装置、情報処理装置及び制御方法
JP4862566B2 (ja) * 2006-09-04 2012-01-25 富士通株式会社 動画像処理装置及びプリフェッチ制御方法
US8060701B2 (en) * 2006-12-08 2011-11-15 Qualcomm Incorporated Apparatus and methods for low-complexity instruction prefetch system
US8200905B2 (en) * 2008-08-14 2012-06-12 International Business Machines Corporation Effective prefetching with multiple processors and threads
US9146873B2 (en) * 2012-03-30 2015-09-29 Intel Corporation Adaptive queuing of a cache for a processing element
GB2506902A (en) * 2012-10-12 2014-04-16 Ibm Jump position and frame shifting in list based prefetching
US9170955B2 (en) * 2012-11-27 2015-10-27 Intel Corporation Providing extended cache replacement state information
US9158702B2 (en) 2012-12-28 2015-10-13 Intel Corporation Apparatus and method for implementing a scratchpad memory using priority hint
CN103762208B (zh) * 2014-01-28 2016-08-10 扬智科技股份有限公司 半导体结构
JP6252348B2 (ja) * 2014-05-14 2017-12-27 富士通株式会社 演算処理装置および演算処理装置の制御方法
US10078514B2 (en) * 2016-05-11 2018-09-18 International Business Machines Corporation Techniques for dynamic sequential instruction prefetching
US10970222B2 (en) 2019-02-28 2021-04-06 Micron Technology, Inc. Eviction of a cache line based on a modification of a sector of the cache line
US10908821B2 (en) * 2019-02-28 2021-02-02 Micron Technology, Inc. Use of outstanding command queues for separate read-only cache and write-read cache in a memory sub-system
US11288199B2 (en) 2019-02-28 2022-03-29 Micron Technology, Inc. Separate read-only cache and write-read cache in a memory sub-system
US11106609B2 (en) 2019-02-28 2021-08-31 Micron Technology, Inc. Priority scheduling in queues to access cache data in a memory sub-system
CN112148639A (zh) * 2019-06-26 2020-12-29 深圳市航顺芯片技术研发有限公司 一种高效小容量高速缓冲存储器替换方法及系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5210842A (en) * 1991-02-04 1993-05-11 Motorola, Inc. Data processor having instruction varied set associative cache boundary accessing
US5367657A (en) * 1992-10-01 1994-11-22 Intel Corporation Method and apparatus for efficient read prefetching of instruction code data in computer memory subsystems
JPH08263424A (ja) * 1995-03-20 1996-10-11 Fujitsu Ltd コンピュータ装置
US6604190B1 (en) * 1995-06-07 2003-08-05 Advanced Micro Devices, Inc. Data address prediction structure and a method for operating the same
US5819079A (en) * 1995-09-11 1998-10-06 Intel Corporation Instruction fetch on demand for uncacheable memory which avoids memory mapped I/O side effects in a processor with speculative instruction fetch
US5918245A (en) * 1996-03-13 1999-06-29 Sun Microsystems, Inc. Microprocessor having a cache memory system using multi-level cache set prediction
US5809566A (en) * 1996-08-14 1998-09-15 International Business Machines Corporation Automatic cache prefetch timing with dynamic trigger migration
US5978888A (en) * 1997-04-14 1999-11-02 International Business Machines Corporation Hardware-managed programmable associativity caching mechanism monitoring cache misses to selectively implement multiple associativity levels
US5958040A (en) * 1997-05-28 1999-09-28 Digital Equipment Corporation Adaptive stream buffers
US6138209A (en) * 1997-09-05 2000-10-24 International Business Machines Corporation Data processing system and multi-way set associative cache utilizing class predict data structure and method thereof
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
US6216208B1 (en) * 1997-12-29 2001-04-10 Intel Corporation Prefetch queue responsive to read request sequences
US5948095A (en) * 1997-12-31 1999-09-07 Intel Corporation Method and apparatus for prefetching data in a computer system
WO1999064954A2 (en) 1998-06-08 1999-12-16 Koninklijke Philips Electronics N.V. Processor with memory and data prefetch unit
US6317811B1 (en) * 1999-08-26 2001-11-13 International Business Machines Corporation Method and system for reissuing load requests in a multi-stream prefetch design

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101464845B (zh) * 2009-01-09 2012-09-05 威盛电子股份有限公司 用于总线系统的预取装置、预取系统及预取数据方法
CN109074331A (zh) * 2016-03-27 2018-12-21 高通股份有限公司 具有系统高速缓存和本地资源管理的功率降低存储器子系统
CN108255517A (zh) * 2016-12-29 2018-07-06 展讯通信(上海)有限公司 处理器及请求指令缓存数据的方法
CN108255517B (zh) * 2016-12-29 2020-05-05 展讯通信(上海)有限公司 处理器及请求指令缓存数据的方法
CN112231241A (zh) * 2019-07-15 2021-01-15 深圳市中兴微电子技术有限公司 一种数据读取方法和装置、计算机可读存储介质
CN112231241B (zh) * 2019-07-15 2023-02-17 深圳市中兴微电子技术有限公司 一种数据读取方法和装置、计算机可读存储介质

Also Published As

Publication number Publication date
CN100388185C (zh) 2008-05-14
US20040054853A1 (en) 2004-03-18
AU2003270317A8 (en) 2004-04-30
EP1573512A3 (en) 2005-09-21
US7032076B2 (en) 2006-04-18
WO2004025457A2 (en) 2004-03-25
AU2003270317A1 (en) 2004-04-30
EP1573512A2 (en) 2005-09-14
US7296140B2 (en) 2007-11-13
US20060117145A1 (en) 2006-06-01
WO2004025457A3 (en) 2005-07-28

Similar Documents

Publication Publication Date Title
CN100388185C (zh) 预取计算机系统中的数据
US7917701B2 (en) Cache circuitry, data processing apparatus and method for prefetching data by selecting one of a first prefetch linefill operation and a second prefetch linefill operation
JP3888508B2 (ja) キャッシュ・データ管理方法
US6983356B2 (en) High performance memory device-state aware chipset prefetcher
US6292871B1 (en) Loading accessed data from a prefetch buffer to a least recently used position in a cache
US5664147A (en) System and method that progressively prefetches additional lines to a distributed stream buffer as the sequentiality of the memory accessing is demonstrated
US5146578A (en) Method of varying the amount of data prefetched to a cache memory in dependence on the history of data requests
KR100227438B1 (ko) 적응 순환 예측 버퍼 메모리의 동작 방법 및 버퍼 메모리 제어기
US8850125B2 (en) System and method to provide non-coherent access to a coherent memory system
US20030105926A1 (en) Variable size prefetch cache
EP1573555B1 (en) Page descriptors for prefetching and memory management
EP0457403A2 (en) Multilevel instruction cache, method for using said cache, method for compiling instructions for said cache and micro computer system using such a cache
JPH09146835A (ja) データのプリフェッチのためのシステム
EP0612013A1 (en) Combination prefetch buffer and instruction cache cross references to related applications
KR101121592B1 (ko) 버스트 판독기록 동작을 구비한 처리 장치
US6457105B1 (en) System and method for managing data in an asynchronous I/O cache memory
US7047362B2 (en) Cache system and method for controlling the cache system comprising direct-mapped cache and fully-associative buffer
US6668307B1 (en) System and method for a software controlled cache
US7617364B2 (en) System, method and storage medium for prefetching via memory block tags
EP1586039A2 (en) Using a cache miss pattern to address a stride prediction table
CN1313935C (zh) 用于减少存储器设备等待时间的装置、方法和系统
JPH09160827A (ja) コールド・キャッシュ命令のプリフェッチ
EP2590082B1 (en) Cache memory apparatus, cache control method, and microprocessor system
JPH0363741A (ja) ディスク・キャッシュ装置
JPH06282489A (ja) コンピュータメモリシステム、データキャッシュ動作の方法およびデータキャッシュシステム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080514

Termination date: 20120906