CN1230750C - 临时指令与非临时指令共享的高速缓存结构 - Google Patents

临时指令与非临时指令共享的高速缓存结构 Download PDF

Info

Publication number
CN1230750C
CN1230750C CNB998047333A CN99804733A CN1230750C CN 1230750 C CN1230750 C CN 1230750C CN B998047333 A CNB998047333 A CN B998047333A CN 99804733 A CN99804733 A CN 99804733A CN 1230750 C CN1230750 C CN 1230750C
Authority
CN
China
Prior art keywords
data
cache
ephemeral
processor
cache memory
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.)
Expired - Lifetime
Application number
CNB998047333A
Other languages
English (en)
Other versions
CN1295687A (zh
Inventor
S·帕兰卡
N·L·科雷
A·纳朗
V·彭特科夫斯基
S·蔡
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 CN1295687A publication Critical patent/CN1295687A/zh
Application granted granted Critical
Publication of CN1230750C publication Critical patent/CN1230750C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • 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/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • 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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • 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

提供一种高速缓存器管理的方法和系统。系统包括:主存储器(11)、连接到主存储器的处理器、以及连接到处理器用于缓存数据的至少一个高速缓存器(50)。所说的至少一个高速缓存器含至少两条缓存路线(50),每条路线包含多个组(50)。多个组中的每一个有一位(50)表明至少两条缓存路线其中之一是否包含非临时数据。处理器从主存储器或至少一个高速缓存器访问数据。

Description

临时指令与非临时指令共享的高速缓存结构
发明背景
1发明领域
本发明总的涉及到处理器领域,更具体地,本发明涉及到为临时指令与非临时指令提供共享的高速缓存结构的技术。
2相关技术说明
使用具有处理器的高速缓存器有利于减小内存访问时间。高速缓存结构的基本思想是将访问最频繁的指令和数据保留在快速高速缓存器中,平均内存访问时间接近高速缓存器的访问时间。为得到尽可能快的操作速度,一般的的处理器实施高速缓存分级结构,即将高速缓存器分为不同层次。高速缓存器的不同层次对应于到处理器核心的不同距离。高速缓存器离处理器越近,数据访问速度越快。但是,数据访问速度越快,数据存储所需的代价就越高。因此,高速缓存器级越近,高速缓存器就越快、越小。
经常通过其命中率来检测高速缓存器的性能。当处理器访问内存并在高速缓存器中找到某字时,就认为是产生命中。如果在高速缓存器中没有找到该字,该字就在主内存中并视此为未命中。如果发生了未命中,就通过访问在索引了的入口生成一个分配。访问可以是向处理器装入数据,或从处理器向内存存入数据。缓存的信息由高速缓存器保留直到不再需要、无效或被其它数据替代时为止,这时释放高速缓存器入口。
在实行高速缓存分层时的处理器中,比如具有L1和L2高速缓存器的Pentium ProTM处理器,更快更小的L1层比L2层离处理器更近。当处理器请求可高速缓存数据,如装载指令,请求首先送至级L1。如果要求的数据在L1层,就提供给处理器。否则,L1未命中并将请求传送给L2层。同样,如果L2层命中,数据送到L1和处理器核心。如果L2未命中,请求传送到主存储器。主存储器响应级L2的未命中,将请求的数据提供给L1、L2及处理器核心。
一般地,存储在高速缓存器的数据类型包括程序的激活部分和数据。高速缓存器存满时,必须替代高速缓存器中现有的存储数据行,为新请求的数据行腾出空间。一个这样的替代技术包括应用最近最少使用算法(LRU),用新的请求行替代最近最少使用的数据行。在Pentium ProTM处理器中,由于L2比L1大,一般L2将L1中所有数据R和通过LRU算法在L1中被替代的其它数据行。
美国专利申请序列号为08/7677,950,1996年10月17日提交,题为“高速缓存器分层管理”,公开了一项通过使用与指令相关的位置因素来分配高速缓存器的技术。当处理器访问内存使数据在处理器和内存之间的传送时,根据与指令相关的位置因素,将访问分配给高速缓存器不同的层,或根本不分配给高速缓存器。某些指令使用得很少。比如,非临时预取指令预加载处理器没有立即要求,但在不远的将来请求的数据。这样的数据一般只用一次,在很近的将来不会再用,术语称“非临时数据”。频繁使用的指令叫“临时数据”。对非临时数据而言,由于数据不经常使用,优化性能命令高速缓存的应用编码和数据不会被这些不常用数据写满。为解决这个问题,申请序列号为08/767,950的美国专利申请通过提供与高速缓存器独立的缓冲区来存储不频繁使用的数据,如非临时预取的数据。但是,使用额外的,独立的缓冲区既占空间又花费很高。
因此,需要这样一项技术:不使用独立的缓冲区,为临时指令与非临时指令提供共享的高速缓存结构。
发明简述
这是一种提供高速缓存器管理的方法和系统。该系统包括一个主存储器、一个连接到主存储器的处理器、和至少一个连接到处理器用于缓存数据的高速缓存器。该至少一个高速缓存器具有至少两条高速缓存路线,每条路线包括多个组。多个组中的每个具有表明至少两条高速缓存路线是否含非临时数据的位。处理器从主存储器或至少一个高速缓存器其中之一访问数据。
附图简述
本发明通过图示来说明,而不是限制。相同标号表示相同部件。
图1是执行本发明的计算机系统的一个实施方案的电路框图,其中高速缓存器用于计算机系统的主存储器与处理器之间的数据访问。
图2是执行本发明的计算机系统的第二实施方案的电路框图,其中两个高速缓存器被设置为高速缓存器层次,用于计算机系统的主存储器与处理器之间的数据访问。
图3是一个框图,图示了实施本发明技术的一个实施方案的高速缓存器的结构组成。
图4示出了根据本发明的一个实施方案的高速缓存器管理技术。
图5A和图5B图解了根据本发明的一个实施方案中,临时指令命中高速缓存器组0的路线2前后的高速缓存器构成的一个示例。
图6A和6B图解了根据本发明的一个实施方案中,临时指令命中高速缓存器组0的路线2前后的高速缓存器构成的另一个示例。
图7A和7D图解了根据本发明的一个实施方案中,非临时指令命中高速缓存器组0的路线2前后的高速缓存器构成的一个示例。
图8A和8B图解了根据本发明的一个实施方案中,非临时指令命中高速缓存器组0的路线2前后的高速缓存器构成的另一个示例。
图9A和9B图解了根据本发明的一个实施方案,临时指令未命中高速缓存器组0前后的高速缓存器构成的一个示例。
图10A和10B图解了根据本发明的一个实施方案,非临时指令未命中高速缓存器组0前后的高速缓存器构成的一个示例。
发明详述
这里描述了提供高速缓存器管理的技术,其中高速缓存器的分配使由数据利用来决定。在下面的描述中,为了完整地理解本发明,阐明了许多的具体细节,如具体的存储器装置、电路图、处理器指令等。但本领域的技术人员可以在没有这些细节的情况下实施本发明是可以理解的。在其它实例中,为不使本发明晦涩难懂,熟知的技术和结构不再详细说明。这里描述了本发明优选实施方案的具体实施,但我们容易理解在不背离本发明实质和超出本发明范围的前提下还可以设计和实施其它方案。进一步说,可以理解本发明是参照一系列安排好的高速缓存器分层系统来描述的,但并不必要受这样的层次的限制。
参见图1,图示了一个典型的计算机系统。其中处理器10构成了计算机系统的中央处理单元(CPU),它通过总线14与主存储器11相连接。主存储器11一般包括随机存储器,通常叫做RAM。接下来,主存储器11一般连接到海量存储装置12,如磁或光存储器装置,用于存储信息。高速缓存存储器13(以后简称为高速缓存器)也连接到总线14。为举例说明其功能应用和与高速缓存器13相关的数据传送,我们看到高速缓存器13置于CPU10和主存储器11之间。可以理解高速缓存器13的实际物理位置可以根据系统和处理器的结构不同而不同。此外,图示中高速缓存其控制器15连接到高速缓存器13和总线14,控制高速缓存器13的操作。由于高速缓存器控制器,如控制器15的操作,已为本领域所熟知,因此在下面的图中没有示出高速缓存器控制器。假定一些控制器在CPU 10控制下控制高速缓存器的操作。
操作中,存储器11与CPU10之间的信息传送是通过CPU10对存储器的访问来实现的。当可缓存数据被CPU当前的或稍后访问时,该数据就被分配在高速缓存器13中。也就是说,当CPU10从存储器11访问特定信息时,它从高速缓存器13寻找该信息。如果被访问数据在高速缓存器13中,则称“命中”了。否则,叫“未命中”,并寻找数据的高速缓存器配置。如当前实施的,大多数访问(无论装入或存储)要求高速缓存器13的分配。只有不可缓存数据访问不用在高速缓存器中分配。
参见图2,图示了实施多个高速缓存器装置的计算机系统。CPU10还是通过总线14连接到主存储器11,主存储器11与海量存储装置12相连。但是,在图2的示例中,有两个独立的高速缓存器21和22。高速缓存器21-22串联排列,每个代表一个高速缓存器级,分别是级1(L1)和级2(L2)。另外,级L1高速缓存器21示为CPU10的一部分,而级L2高速缓存器22在CPU10的外部。这样的结构举例说明了当前惯例:将高速缓存器L1置于处理器芯片上而将较低层次的高速缓存器置于芯片的外部,较低层次的高速缓存器距处理器核心更远。实际的不同高速缓存器位置要根据处理器结构来选择设计。因而,L1高速缓存器置于CPU10的外部也是可以的。
一般地,CPU 10包括执行单元23、寄存器组24和取/解码单元25。执行单元23是CPU10执行各种运算(或无存储器)处理器指令的处理核心。寄存器组24是一套用于存储(保存)执行单元23要求的各种信息的基本寄存器。在更高级的系统中,可能不止一个寄存器组。取/解码器单元25从具有将要执行的程序指令的位置(如主存储器11)取出指令并将这些指令解码供执行单元23执行。在更先进的处理器中利用流水线结构,指令在实际需要前就被预取(prefetch)并解码,因此当真正需要时,处理器就不用等待取指令了。
CPU 10的各单元23-25连接到内部总线结构27。总线接口单元(BIU)26提供将CPU 10的各单元连接到总线14的接口。如图2所示,L1高速缓存器连接到内部总线27,其功能如同CPU10的内部高速缓存器。但是,还要强调L1高速缓存器可以在CPU10之外并连接到总线14。高速缓存器可以用来缓存数据、指令或同时缓存数据、指令。在有些系统中,L1高速缓存器实际上被分为了两部分,一部分用于缓存数据,另一部分用于缓存指令。但为简化解释起见,图中描述的各种高速缓存器被示为单一的缓存数据、指令或其它信息,这里以数据为参考。可以理解图2所示的各单元的操作是熟知的。另外,还应理解CPU10实际上还包括比图示的组件更多的组件。因此,图2仅图示了与理解本发明相关的结构。在一个实施方案中,本发明被用在具有数据高速缓存器的系统中。但本发明可以用于各种高速缓存器中。
还应注意到,计算机系统可以不止一个CPU(如图2的虚线所示)。在这样的系统中,一般是多个CPU共用主存储器11和/或集中存储单元12。因此部分或所有与计算机系统相关的高速缓存器可以为不同的计算机处理器所共享。比如,图2所示的系统中,每个处理器的L1高速缓存器21只被它的处理器使用,但主存储器11可以为系统的所有CPU所共享。另外,每个CPU具有一个关联的外部L2高速缓存器22。
本发明可以在单CPU或多CPU计算机系统中实施。还应注意到访问存储器时可以与这里所描述CPU有等效功能的装置(不是处理器)的其它形式,这样的装置能够与所描述CPU类似的执行存储器访问功能。比如,直接存储器访问(DMA)装置能容易地与这里所描述的处理器类似地访问存储器。因此,一个计算机系统有一个处理器(CPU),但有与这里描述的多处理器系统有等效功能的一个或多个存储器访问装置。
请注意,只示出了两个高速缓存器21-22。但计算机系统不必限制高速缓存器只有两级。现在尝试在更先进的系统中利用第三层(L3)高速缓存器。也尝试使高速缓存器有串行结构以使缓存在L1高速缓存器中的数据也能缓存到L2高速缓存器。如果有L3高速缓存器,缓存在L2的数据一般也缓存到L3。因此,缓存在某高速缓存器层的数据也缓存在更高层的高速缓存器层次里。
图3是一个方框图,图示了实施本发明技术的高速缓存结构的一个实施方案的结构组成。一般地,在高速缓存器结构中有“x”个组,每一组有“y”条线路(这里y>=2),每条路线含一个数据入口或一个高速缓存线。本发明提供一个LUR锁定位,它表明在该组内的线路是否包含非临时(NT)数据。如果有,普通或伪LRU位将更新指向NT数据。每一组还有“z”个普通或伪LRU位。除非设定了LRU锁定位,普通或伪LRU位指向根据最近最少算法技术执行的组内的路线。每组的普通或伪LRU的数量随每组的路线数量的不同而不同,以实施LRU(普通或伪)技术。
在图示的实施方案中,高速缓存器50由4线路组结合高速缓存器(4-way set associative cache)构成。在图3的示例中,图示的每一页等于高速缓存器的四分之一大小。具体的,高速缓存器50被分为等大小的四条路线(比如路线0(52)、路线1(54)、路线2(56)和路线3(58)),而主存储器11(参见图1、图2)看成分开的页(即从0页到n页)。在其它实施方案中,每页可以比高速缓存器或大或小。高速缓存器50的组织结构(如图3所示)可以在图1中的高速缓存器13,图2的L1高速缓存器和/或L2高速缓存器22中实施。
高速缓存器50还包括最近最少使用(LRU)位序列600-60n,每一位指向在具有最近最少使用数据(或NT数据,如果执行了基于LRU技术)的组内的路线。这样的列表是根据在高速缓存器控制器15控制下的LRU技术执行,以判断在高速缓存器已写满的情况下,哪个高速缓存入口需要被覆盖。LRU逻辑(没有示出)跟踪在具有最近最少使用的组中的高速缓存器位置。在一个实施方案中,可以实施严格跟踪最近最少使用路径算法技术。在另一实施方案中,实施试图达到最近最少使用路径的伪LRU算法。为讨论方便,如同位600-60n可参见LRU位600-60n,LRU位600-60n可以参见LRU位60。
正如下面将要详细说明的,高速缓存器50还包括LRU锁定位700-70n序列,它表明给定组中的路线52、54、56、58中由否包含不会污染高速缓存器50的数据(也就是不常用的数据)。
图4的例表解释了根据本发明基本原理的高速缓存器管理技术。本发明利用LRU锁定位700-70n阵列来表明某些相应的被缓存的数据是否是流的(streaming)或非临时的,这样是在高速缓存器的相应组未命中时首先被替换的入口。在一个实施方案中,当LRU锁定位置1时,表明对应组有一个非临时数据入口。如果LRU锁定位被清除,一旦高速缓存器被临时指令命中,对应的LRU位60按照实施的LRU技术被更新(参见图4的第1项)而不更新相联的LRU锁定位。但是,如果LRU锁定位70已经置为1(表明对应的组有非临时指令),LRU锁定位不更新,LRU位60也不更新(参见第2项)。
如果高速缓存器被非临时指令命中,不论LRU70处于何状态,LRU位60和LRU锁定位70都不更新(参见第3项)。在另一个实施方案中,由于受在L1高速缓存控制器内的控制寄存器的模式位的控制,由流或非临时指令命中的高速缓存强制LRU位转到被命中的路线(参见第4项)。另外,LRU锁定位70置为1。在此实施方案中,当高速缓存器未命中对应组时,由流或非临时指令命中的数据将首先被更新。
当高速缓存器未被临时指令命中时,清除LRU锁定位,LRU位60基于伪LRU技术被更新(参见第5项)。但是,当高速缓存器未被流动的或非临时指令命中,LRU锁定位70置为1,不更新对应的LRU位60(参见第6项)。
下面将对图4的表中的每一项进行举例说明。图5A和5B举例说明了临时指令命中高速缓存器组0的路线2前后的高速缓存器结构。本例对应图4的第1项。这里,LRU锁定位700事先为高速缓存组0被清除,以及由于高速缓存器组0被临时指令命中,LRU锁定位700不更新。但,按照实施的LRU技术,LRU位600被更新。本例中,假定伪LRU技术表明路线3是最近最少使用入口。
图6A和6B用另一个实例说明了临时指令命中高速缓存器组0的路线2前后的高速缓存器结构。本例对应图4的第2项。这里,LRU锁定位700事先为高速缓存器组0被设定,表明对应的组包含非临时数据。因此LRU锁定位700及LRU位600都不更新。
图7A-7D举例说明了非临时指令命中高速缓存器组0的路线2前后的高速缓存器结构。本例对应图4的第3项,可以通过将L1高速缓存器控制器内的模式位置为0来实现(参见图4)。第一种情况下(图7A和7B),LRU锁定位700事先为高速缓存器组0被清除,在此方案中,非临时高速缓存器命中不更新LRU锁定位70。因此,由于高速缓存器组0被非临时指令命中,LRU锁定位700及LRU 600都不被更新。在第二种情况下(图7C和7D),LRU锁定位700事先为高速缓存器组0被设置,表明对应组包含非临时数据。因此,LRU锁定位700及LRU 600都不被更新。
图8A-8D用另一个实例说明了非临时指令命中高速缓存器组0的路线2前后的高速缓存器结构。本例对应图4的第4项,可以通过将L1高速缓存器控制器内的模式位置为1来实现(参见图4)。第一种情况下(图8A和8B),LRU锁定位700事先为高速缓存器组0被清除。在对应图7A-7D所示的示例的另一个实施方案的本例中,非临时指令高速缓存器命中更新LRU锁定位70。因此,如图8A所示,由于高速缓存器组0被非临时指令命中,LRU锁定位700被更新(置为1),如图8B所示。另外,LRU位600被更新表明路线被命中。在LRU锁定位事先为高速缓存器组0被设置的情况下(图8C和8D),LRU锁定位700保持为1。另外,LRU位600被强迫指向被命中的组内的路线。
图9A和9B举例说明了临时指令未命中高速缓存器组0前后的高速缓存器结构。本例对应图4的第5项。这里,LRU锁定位700事先为高速缓存器组0被设置,由于临时指令未命中目标组0,当在高速缓存器内替换临时未命中时,LRU锁定位700被清除。但是,按照实施的LRU技术LRU位600被更新。本例中,伪LRU技术表明路线3时最少最近使用入口。
图10A-10B举例说明了非临时指令未命中高速缓存器组0前后的高速缓存器结构。本例对应图4的第6项。这里,LRU锁定位700事先为高速缓存器组0被清除。由于非临时指令未命中高速缓存器组0,为了指向相应组0的非临时数据,设置LRU锁定位700,保持LRU位600
通过实施本发明的装置和方法,可以得到一种管理临时与非临时指令的共享高速缓存器结构,这种结构在高速缓存器或高速缓存器层内的数据污染最小。本发明的实施可以不使用独立缓冲区,使用独立缓冲区既昂贵效率又不高。
在不背离本发明实质的前提下,本发明可以是别的特定形式。这里所描述的具体示例仅是解释性的,而决非限制。因此,本发明的适用范围不是前面所描述的,而是在随后的权利要求中表明。所有来自权利要求的等效范围和意图的改进都被包括在本发明的范围内。

Claims (51)

1.一种具有高速缓存存储器管理的计算机系统,该计算机系统包括:
主存储器;
连接到所述主存储器的处理器,所述处理器执行处理非临时数据和临时数据的指令;
至少一个连接到所述处理器的高速缓存存储器,所述至少一个高速缓存存储器包括至少两条高速缓存器路线,所述的至少两条高速缓存器路线的每条路线包括存储于所述至少一个高速缓存存储器的多个数据组,所述多个数据组的每个组具有在所述至少一个高速缓存存储器中的第一位和第二位,所述多个数据组的每个组的所述第一位表明相关数据组中的所述至少两条高速缓存器路线的一条是否包含可以被首先替代的所述非临时数据,所述非临时数据是处理器不常用的,所述第二位表明对应路线中的数据入口的顺序;
其中,所述处理器从所述主存储器中的一个或所述至少一个高速缓存存储器中访问数据。
2.如权利要求1的计算机系统,其中,该相关数据组不包含所述非临时数据,而所述顺序表明相对于相关数据组中的其他数据入口而言所述数据入口是否是处理器最近最少使用的入口。
3.如权利要求1的计算机系统,其中,设定所述第一位以表明相关数据组中所述至少两条高速缓存器路线其中之一包含所述非临时数据,非临时数据在高速缓存器命中失误时会被替代。
4.如权利要求3的计算机系统,其中,相关数据组包含所述非临时数据,而所述第二位指向相关数据组中所述至少两条高速缓存器路线其中之一中的所述非临时数据。
5.如权利要求1的计算机系统,其中,清除所述第一位以表明相关数据组中的所述至少两条高速缓存器路线没有一条包含所述非临时数据。
6.如权利要求1的计算机系统,进一步包括:连接到所述的至少一个高速缓存存储器和所述处理器的高速缓存器控制逻辑,所述高速缓存器控制逻辑控制所述至少一个高速缓存存储器。
7.如权利要求6的计算机系统,其中,所述处理器接收访问数据的指令,该处理器判断该数据是否在所说的至少一个高速缓存存储器内,如果是,从该至少一个高速缓存存储器访问该数据,如果不在,从所述主存储器访问该数据。
8.如权利要求7的计算机系统,其中,如果该数据是从所述的至少一个高速缓存存储器中访问的,所述高速缓存器控制逻辑判断该数据是否是临时数据,并且,如果该数据是临时的,而如果没有设定所述第一位以表明非临时数据,则更新与该被访问路线相应的所述第二位的顺序;如果不是,则不改变该顺序。
9.如权利要求8的计算机系统,其中,与被访问的该路线的数据组相关的所述第一位不改变。
10.如权利要求7的计算机系统,其中,如果从所述的至少一个高速缓存存储器中访问到的该数据是非临时的,所述高速缓存器控制逻辑设置所述第一位以表明该被访问的数据是非临时数据,该高速缓存器控制逻辑还更新该第二位的所述顺序。
11.如权利要求7的计算机系统,其中,如果该数据是从主存储器访问的,所述高速缓存器控制逻辑判断该数据是否是非临时的,如果是,设置所述第一位以表明该被访问的数据是非临时的,该高速缓存器控制逻辑不改变该第二位的所述顺序。
12.如权利要求11的计算机系统,其中,如果所述高速缓存器控制逻辑判断该数据是临时的,该高速缓存器控制逻辑设置该第一位以表明该被访问数据是临时的,该高速缓存器控制逻辑更新该第二位的所述顺序。
13.如权利要求1的计算机系统,其中,所述多个数据组中的每组的所述第一位是一锁定位。
14.如权利要求1的计算机系统,其中,所述非临时数据是被预先设定为处理器不常用的数据类型。
15.如权利要求1的计算机系统,其中,所述非临时数据是无需高速缓存的流式数据的数据类型。
16.一种计算机系统内分配取代用的高速缓存存储器的方法,该方法包括:
提供主存储器;
提供连接到所述主存储器的处理器,所述处理器执行处理非临时数据和临时数据的指令;
提供至少一个连接到所述处理器的高速缓存存储器,所述的至少一个高速缓存存储器包括至少两条高速缓存器路线,所述的至少两条高速缓存器路线的每条路线包括存储于所述至少一个高速缓存存储器的多个数据组,在所述至少一个高速缓存存储器中所述多个数据组的每个数据组具有第一位和第二位,所述多个数据组的每个数据组的所述第一位表明在所述相关数据组中所述至少两条高速缓存器路线的一条是否包含可以被首先替代的所述非临时数据,所述非临时数据是处理器不常用的,所述第二位表明对应路线中的数据入口的顺序;以及
所述处理器从所述主存储器中的一个或所述至少一个高速缓存存储器中访问数据。
17.如权利要求16所述的方法,其中,相关的数据组不包含所述非临时数据,而所述顺序表明相对于相关数据组中的其他数据入口而言所述数据入口是否是处理器最近最少使用的入口。
18.如权利要求16所述的方法,其中,设定所述第一位以表明相关数据中所述至少两条高速缓存器路线其中之一包含所述非临时数据,非临时数据在高速缓存器命中失误时会被取代。
19.如权利要求18所述的方法,其中,相关数据组包含所述非临时数据,而所述第二位指向相关数据组中所述至少两条高速缓存器路线其中之一中的所述非临时数据。
20.如权利要求16所述的方法,其中,清除所述第一位以表明相关数据中的所述至少两条高速缓存器路线没有一条包含所述非临时数据。
21.如权利要求16所述的方法,进一步包括:提供连接到所述的至少一个高速缓存存储器和所述处理器的高速缓存器控制逻辑,所述高速缓存器控制逻辑控制所述至少一个高速缓存存储器。
22.如权利要求21所述的方法,其中,所述处理器接收访问数据的指令,该处理器判断该数据是否在所说的至少一个高速缓存存储器内,如果是,从该至少一个高速缓存存储器访问该数据,如果不在,从主存储器访问该数据。
23.如权利要求22所述的方法,其中,如果该数据是从所述的至少一个高速缓存器中访问的,高速缓存存储器控制逻辑判断该数据是否是临时数据,并且,如果该数据是临时的,而如果没有设定所述第一位以表明非临时数据,则更新与该被访问路线相应的所述第二位的顺序;如果不是,则不改变该顺序。
24.如权利要求22所述的方法,其中,与被访问的该路线的数据组相关的所述第一位不改变。
25.如权利要求22所述的方法,其中,如果从所述的至少一个高速缓存存储器中访问到的该数据是非临时的,所述高速缓存器控制逻辑设置所述第一位以表明该被访问的数据是非临时数据,该高速缓存器控制逻辑还更新该第二位的所述顺序。
26.如权利要求22所述的方法,其中,如果该数据是从主存储器访问的,所述高速缓存器控制逻辑判断该数据是否是非临时的,如果是,设置所述第一位以表明该被访问的数据是非临时的,该高速缓存器控制逻辑不改变该第二位的所述顺序。
27.如权利要求26所述的方法,其中,如果所述高速缓存器控制逻辑判断该数据是临时的,该高速缓存器控制逻辑设置该第一位以表明该被访问数据是临时的,该高速缓存器控制逻辑更新该第二位的所述顺序。
28.如权利要求16所述的方法,其中,所述多个数据组中的每组的所述第一位是一锁定位。
29.如权利要求16所述的方法,其中,所述非临时数据是被预先设定为处理器不常用的数据类型。
30.如权利要求16所述的方法,其中,所述非临时数据是无需高速缓存的流式数据的数据类型。
31.一个用于存储临时和非临时数据的数据高速缓存存储器,数据高速缓存存储器包括:
一个或以上的高速缓存数据组,其中的每个数据组包括:
至少两条路线,该至少两条路线的每条存储用于相关的高速缓存数据组的数据;
一个或以上最近最少使用位,该最近最少使用位表明相关的高速缓存数据组的最近最少被处理器访问的路线;以及
一个锁定位,该锁定位表明相关的高速缓存数据组内的所述至少两线路的任一线路是否包含可以首先被替代的非临时数据。
32.如权利要求31所述的数据高速缓存存储器,其中,非临时数据是被预先设定为处理器不常用的数据类型。
33.如权利要求31所述的数据高速缓存存储器,其中,所述非临时数据是无需高速缓存的流式数据的数据类型。
34.如权利要求31所述的数据高速缓存存储器,其中,设定锁定位用于一个或以上的高速缓存数据组中的一个高速缓存数据组,以及
锁定位表明所述一个高速缓存数据组包含非临时数据,以及
更新所述一个或以上最近最少使用位以表明所述至少两路线中哪一路线包含非临时数据。
35.一种用于存储临时和非临时数据的数据高速缓存存储器的方法,该方法表明可以被其他数据替代的非临时数据入口,包括:
提供一高速缓存存储器,其具有,
一个或以上的数据组,该一个或以上的数据组的每个数据组包括:
至少两条路线,该至少两条路线的每个存储用于相关数据组的数据,
一个或以上最近最少使用位,一种情况下该最近最少使用位表明相关的数据组的最近最少被处理器访问的路线;
一个锁定位,该锁定位表明相关的数据组内的所述至少两路线的任一条是否包含可以首先被替代的非临时数据;
从位置因素判决数据是临时还是非临时,位置因素与处理该数据的指示相关;以及
存储于相关数据组的路线中的数据是非临时数据的情况下,对相关的数据组设定锁定位。
36.如权利要求35所述的方法,其中,非临时数据是被预先设定为不常用的数据类型。
37.如权利要求35所述的方法,其中,所述非临时数据是无需高速缓存的流式数据的数据类型。
38.如权利要求35所述的方法,进一步包括:
更新所述一个或以上最近最少使用位以表明所述至少两路线中哪一路线包含非临时数据。
39.如权利要求35所述的方法,进一步包括:
存储于相关数据组的路线中的数据在高速缓存器命中失误时是临时数据的情况下,对相关的数据组清除锁定位。
40.如权利要求35所述的方法,其中,利用位置因素处理所述数据的指令是非临时指令。
41.一种清除数据高速缓存存储器中的非临时数据污染的方法,该数据高速缓存存储器存储临时和非临时数据,该方法包括:
响应在执行非临时指令时,高速缓存器命中高速缓存组失误,动态地设定数据高速缓存存储器中的高速缓存数据组的第一位,第一位表明高速缓存数据组内至少两条路线之一包含非临时数据,高速缓存数据组中的第二位表明高速缓存数据组内所述至少两条路线中的数据入口顺序;
响应在执行临时指令时第一位被设定与高速缓存器命中高速缓存组失误的情况,以临时数据替代所述至少两路线之一中的非临时数据;以及
响应以临时数据替代所述至少两路线之一中的非临时数据,动态地清除高速缓存数据组中的第一位。
42.如权利要求41所述的方法,其中,非临时数据是被预先设定为不常用的数据类型。
43.如权利要求41所述的方法,其中,所述非临时数据是无需高速缓存的流式数据的数据类型。
44.如权利要求41所述的方法,其中
数据高速缓存存储器包括多个高速缓存数据组,而在对数据高速缓存存储器内多个高速缓存数据组的每个数据组进行指令访问期间,动态地设定第一位、动态地清除第一位和替代非临时数据都是以每次一个高速缓存器组来进行。
45.如权利要求41所述的方法,进一步包括:
响应在处理非临时指令时、高速缓存器命中失误高速缓存器组、更新高速缓存数据组的第二位以指向所述至少两条路线中包含非临时数据的那一条路线。
46.如权利要求45所述的方法,进一步包括:
响应在执行临时指令时,高速缓存器命中高速缓存器组的情况下,保持第一位的设定与保持第二位以指向所述至少两条路线中包含非临时数据的那一条路线。
47.如权利要求45所述的方法,进一步包括:
响应在执行非临时指令与模式位被清除时高速缓存器命中高速缓存器组,保持第一位的设定,而第二位未被更新从而保持指向所述至少两条路线中的包含非临时数据的那一条路线。
48.如权利要求45所述的方法,进一步包括:
响应在执行非临时指令与模式位被设定时高速缓存器命中高速缓存器组,设定第一位。
49.如权利要求48所述的方法,进一步包括:
响应在执行非临时指令与模式位被设定时高速缓存器命中高速缓存器组,更新高速缓存数据组的第二位以指向于所述至少两条路线中被命中的那一路线。
50.如权利要求41所述的方法,进一步包括:
响应在执行临时指令时高速缓存器命中高速缓存器组,保持高速缓存数据组中的第一位的设定。
51.如权利要求41所述的方法,其中:
所述第一位是一个锁定位。
CNB998047333A 1998-03-31 1999-03-24 临时指令与非临时指令共享的高速缓存结构 Expired - Lifetime CN1230750C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/053,386 US6202129B1 (en) 1998-03-31 1998-03-31 Shared cache structure for temporal and non-temporal information using indicative bits
US09/053386 1998-03-31
US09/053,386 1998-03-31

Publications (2)

Publication Number Publication Date
CN1295687A CN1295687A (zh) 2001-05-16
CN1230750C true CN1230750C (zh) 2005-12-07

Family

ID=21983863

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB998047333A Expired - Lifetime CN1230750C (zh) 1998-03-31 1999-03-24 临时指令与非临时指令共享的高速缓存结构

Country Status (10)

Country Link
US (2) US6202129B1 (zh)
EP (1) EP1066566B1 (zh)
JP (1) JP4486750B2 (zh)
KR (1) KR100389549B1 (zh)
CN (1) CN1230750C (zh)
AU (1) AU3364599A (zh)
BR (1) BR9909295A (zh)
RU (1) RU2212704C2 (zh)
TW (1) TW573252B (zh)
WO (1) WO1999050752A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9317429B2 (en) 2011-09-30 2016-04-19 Intel Corporation Apparatus and method for implementing a multi-level memory hierarchy over common memory channels
US9342453B2 (en) 2011-09-30 2016-05-17 Intel Corporation Memory channel that supports near memory and far memory access
US9378142B2 (en) 2011-09-30 2016-06-28 Intel Corporation Apparatus and method for implementing a multi-level memory hierarchy having different operating modes
US9600416B2 (en) 2011-09-30 2017-03-21 Intel Corporation Apparatus and method for implementing a multi-level memory hierarchy

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978379A (en) 1997-01-23 1999-11-02 Gadzoox Networks, Inc. Fiber channel learning bridge, learning half bridge, and protocol
US6202129B1 (en) * 1998-03-31 2001-03-13 Intel Corporation Shared cache structure for temporal and non-temporal information using indicative bits
US6216215B1 (en) 1998-04-02 2001-04-10 Intel Corporation Method and apparatus for senior loads
US6542966B1 (en) * 1998-07-16 2003-04-01 Intel Corporation Method and apparatus for managing temporal and non-temporal data in a single cache structure
US7430171B2 (en) 1998-11-19 2008-09-30 Broadcom Corporation Fibre channel arbitrated loop bufferless switch circuitry to increase bandwidth without significant increase in cost
US6560677B1 (en) * 1999-05-04 2003-05-06 International Business Machines Corporation Methods, cache memories, systems and computer program products for storing transient, normal, and locked entries in an associative cache memory
US6728835B1 (en) * 2000-08-30 2004-04-27 Unisys Corporation Leaky cache mechanism
US6681295B1 (en) * 2000-08-31 2004-01-20 Hewlett-Packard Development Company, L.P. Fast lane prefetching
US6578111B1 (en) * 2000-09-29 2003-06-10 Sun Microsystems, Inc. Cache memory system and method for managing streaming-data
AU2001294856A1 (en) * 2000-09-29 2002-04-08 Sun Microsystems, Inc. System and method for identifying and managing streaming-data
US6598124B1 (en) * 2000-09-29 2003-07-22 Sun Microsystems, Inc. System and method for identifying streaming-data
US6668307B1 (en) * 2000-09-29 2003-12-23 Sun Microsystems, Inc. System and method for a software controlled cache
US6766413B2 (en) * 2001-03-01 2004-07-20 Stratus Technologies Bermuda Ltd. Systems and methods for caching with file-level granularity
US6766389B2 (en) * 2001-05-18 2004-07-20 Broadcom Corporation System on a chip for networking
US6574708B2 (en) * 2001-05-18 2003-06-03 Broadcom Corporation Source controlled cache allocation
US7287649B2 (en) * 2001-05-18 2007-10-30 Broadcom Corporation System on a chip for packet processing
US7239636B2 (en) 2001-07-23 2007-07-03 Broadcom Corporation Multiple virtual channels for use in network devices
US6823426B2 (en) * 2001-12-20 2004-11-23 Intel Corporation System and method of data replacement in cache ways
US7328328B2 (en) * 2002-02-19 2008-02-05 Ip-First, Llc Non-temporal memory reference control mechanism
US7295555B2 (en) 2002-03-08 2007-11-13 Broadcom Corporation System and method for identifying upper layer protocol message boundaries
US7266587B2 (en) * 2002-05-15 2007-09-04 Broadcom Corporation System having interfaces, switch, and memory bridge for CC-NUMA operation
US7114043B2 (en) * 2002-05-15 2006-09-26 Broadcom Corporation Ambiguous virtual channels
US7269709B2 (en) * 2002-05-15 2007-09-11 Broadcom Corporation Memory controller configurable to allow bandwidth/latency tradeoff
US7035979B2 (en) * 2002-05-22 2006-04-25 International Business Machines Corporation Method and apparatus for optimizing cache hit ratio in non L1 caches
US7073030B2 (en) 2002-05-22 2006-07-04 International Business Machines Corporation Method and apparatus providing non level one information caching using prefetch to increase a hit ratio
US6904501B1 (en) * 2002-06-17 2005-06-07 Silicon Graphics, Inc. Cache memory for identifying locked and least recently used storage locations
US7934021B2 (en) 2002-08-29 2011-04-26 Broadcom Corporation System and method for network interfacing
US7346701B2 (en) 2002-08-30 2008-03-18 Broadcom Corporation System and method for TCP offload
US7411959B2 (en) 2002-08-30 2008-08-12 Broadcom Corporation System and method for handling out-of-order frames
US8180928B2 (en) 2002-08-30 2012-05-15 Broadcom Corporation Method and system for supporting read operations with CRC for iSCSI and iSCSI chimney
US7313623B2 (en) 2002-08-30 2007-12-25 Broadcom Corporation System and method for TCP/IP offload independent of bandwidth delay product
US7512498B2 (en) * 2002-12-31 2009-03-31 Intel Corporation Streaming processing of biological sequence matching
WO2005050455A1 (ja) * 2003-11-18 2005-06-02 Matsushita Electric Industrial Co., Ltd. キャッシュメモリ及びその制御方法
US7321954B2 (en) * 2004-08-11 2008-01-22 International Business Machines Corporation Method for software controllable dynamically lockable cache line replacement system
US20060101208A1 (en) * 2004-11-09 2006-05-11 Intel Corporation Method and apparatus for handling non-temporal memory accesses in a cache
US7356650B1 (en) * 2005-06-17 2008-04-08 Unisys Corporation Cache apparatus and method for accesses lacking locality
US7437510B2 (en) * 2005-09-30 2008-10-14 Intel Corporation Instruction-assisted cache management for efficient use of cache and memory
US7624257B2 (en) * 2005-11-30 2009-11-24 International Business Machines Corporation Digital data processing apparatus having hardware multithreading support including a register set reserved for special class threads
US20070150658A1 (en) * 2005-12-28 2007-06-28 Jaideep Moses Pinning locks in shared cache
US8527713B2 (en) * 2006-01-31 2013-09-03 Qualcomm Incorporated Cache locking without interference from normal allocations
GB0603552D0 (en) 2006-02-22 2006-04-05 Advanced Risc Mach Ltd Cache management within a data processing apparatus
WO2007097028A1 (ja) * 2006-02-27 2007-08-30 Fujitsu Limited Lru制御装置、lru制御方法およびlru制御プログラム
US20080147989A1 (en) * 2006-12-14 2008-06-19 Arm Limited Lockdown control of a multi-way set associative cache memory
US8078803B2 (en) 2008-01-30 2011-12-13 Qualcomm Incorporated Apparatus and methods to reduce castouts in a multi-level cache hierarchy
US7793049B2 (en) * 2007-10-30 2010-09-07 International Business Machines Corporation Mechanism for data cache replacement based on region policies
US8108614B2 (en) * 2007-12-31 2012-01-31 Eric Sprangle Mechanism for effectively caching streaming and non-streaming data patterns
MX2011000292A (es) * 2008-07-23 2011-02-23 Micro Motion Inc Sistema de procesamiento con cotrol de acceso a memoria externa.
US8364898B2 (en) * 2009-01-23 2013-01-29 International Business Machines Corporation Optimizing a cache back invalidation policy
US8312219B2 (en) * 2009-03-02 2012-11-13 International Business Machines Corporation Hybrid caching techniques and garbage collection using hybrid caching techniques
US9063825B1 (en) * 2009-09-21 2015-06-23 Tilera Corporation Memory controller load balancing with configurable striping domains
EP2513799B1 (en) * 2009-12-16 2014-03-12 Telefonaktiebolaget L M Ericsson (PUBL) A method, server and computer program for caching
US9323527B2 (en) * 2010-10-15 2016-04-26 International Business Machines Corporation Performance of emerging applications in a virtualized environment using transient instruction streams
US9122286B2 (en) * 2011-12-01 2015-09-01 Panasonic Intellectual Property Management Co., Ltd. Integrated circuit apparatus, three-dimensional integrated circuit, three-dimensional processor device, and process scheduler, with configuration taking account of heat
US9519549B2 (en) * 2012-01-11 2016-12-13 International Business Machines Corporation Data storage backup with lessened cache pollution
US8856455B2 (en) 2012-03-28 2014-10-07 International Business Machines Corporation Data cache block deallocate requests
US8874852B2 (en) 2012-03-28 2014-10-28 International Business Machines Corporation Data cache block deallocate requests in a multi-level cache hierarchy
CN103577480B (zh) * 2012-08-07 2017-05-31 中国银联股份有限公司 一种参数划分系统及其方法、一种业务处理系统及其方法
US9558121B2 (en) * 2012-12-28 2017-01-31 Intel Corporation Two-level cache locking mechanism
US9256539B2 (en) 2013-03-07 2016-02-09 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Sharing cache in a computing system
US9311239B2 (en) 2013-03-14 2016-04-12 Intel Corporation Power efficient level one data cache access with pre-validated tags
US20150095586A1 (en) * 2013-09-30 2015-04-02 Advanced Micro Devices , Inc. Storing non-temporal cache data
US11580125B2 (en) 2015-05-08 2023-02-14 Adp, Inc. Information system with temporal data
US10379827B2 (en) * 2016-12-29 2019-08-13 Intel Corporation Automatic identification and generation of non-temporal store and load operations in a dynamic optimization environment
US11681627B1 (en) * 2021-10-18 2023-06-20 Meta Platforms Technologies, Llc Distributed temporal cache for Systems on a Chip
US12072803B1 (en) * 2022-06-30 2024-08-27 Advanced Micro Devices, Inc. Systems and methods for tracking data cache miss requests with data cache tags

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5119453A (en) * 1974-08-08 1976-02-16 Fujitsu Ltd Patsufua memoriseigyohoshiki
JPS5534336A (en) * 1978-08-31 1980-03-10 Fujitsu Ltd Buffer memory control method
JPS58159285A (ja) * 1982-03-17 1983-09-21 Nec Corp バツフアメモリ制御方式
JPH01133162A (ja) * 1987-11-18 1989-05-25 Fujitsu Ltd キャッシュメモリ制御方式
US4905141A (en) 1988-10-25 1990-02-27 International Business Machines Corporation Partitioned cache memory with partition look-aside table (PLAT) for early partition assignment identification
JPH0358151A (ja) * 1989-07-26 1991-03-13 Nec Corp キャッシュメモリ装置
JPH0358252A (ja) * 1989-07-27 1991-03-13 Nec Corp キャッシュメモリ制御装置
JPH041838A (ja) * 1990-04-18 1992-01-07 Nec Corp キャッシュメモリ制御回路
JPH04215151A (ja) * 1990-12-13 1992-08-05 Nec Commun Syst Ltd キャッシュ制御方式
EP0496439B1 (en) * 1991-01-15 1998-01-21 Koninklijke Philips Electronics N.V. Computer system with multi-buffer data cache and method therefor
GB2255211B (en) * 1991-04-25 1995-05-17 Intel Corp LRU pointer updating in a controller for two-way set associative cache
GB2256512B (en) * 1991-06-04 1995-03-15 Intel Corp Second level cache controller unit and system
JPH05165726A (ja) * 1991-12-12 1993-07-02 Nec Corp データ処理装置
JPH05233454A (ja) * 1992-02-24 1993-09-10 Hitachi Ltd キャッシュメモリ装置
US5353425A (en) * 1992-04-29 1994-10-04 Sun Microsystems, Inc. Methods and apparatus for implementing a pseudo-LRU cache memory replacement scheme with a locking feature
US5471605A (en) * 1992-08-27 1995-11-28 Intel Corporation Apparatus for updating a multi-way set associative cache memory status array
US5434992A (en) 1992-09-04 1995-07-18 International Business Machines Corporation Method and means for dynamically partitioning cache into a global and data type subcache hierarchy from a real time reference trace
US5493667A (en) * 1993-02-09 1996-02-20 Intel Corporation Apparatus and method for an instruction cache locking scheme
JPH06348595A (ja) * 1993-06-07 1994-12-22 Hitachi Ltd キャッシュ装置
JPH07281957A (ja) * 1994-04-15 1995-10-27 Hitachi Ltd キャッシュ記憶装置およびアクセス命令生成方法
US5826052A (en) 1994-04-29 1998-10-20 Advanced Micro Devices, Inc. Method and apparatus for concurrent access to multiple physical caches
JPH07334428A (ja) * 1994-06-14 1995-12-22 Toshiba Corp キャッシュメモリ
US5584014A (en) * 1994-12-20 1996-12-10 Sun Microsystems, Inc. Apparatus and method to preserve data in a set associative memory device
US5701426A (en) * 1995-03-31 1997-12-23 Bull Information Systems Inc. Data processing system and method using cache miss address prediction and forced LRU status in a cache memory to improve cache hit ratio
US5845317A (en) * 1995-11-17 1998-12-01 Micron Technology, Inc. Multi-way cache expansion circuit architecture
GB2311880A (en) * 1996-04-03 1997-10-08 Advanced Risc Mach Ltd Partitioned cache memory
US5829025A (en) * 1996-12-17 1998-10-27 Intel Corporation Computer system and method of allocating cache memories in a multilevel cache hierarchy utilizing a locality hint within an instruction
JPH10207767A (ja) * 1997-01-16 1998-08-07 Toshiba Corp ロック機能付キャッシュメモリ及びこのキャッシュメモリを備えたマイクロプロセッサ
US6434671B2 (en) * 1997-09-30 2002-08-13 Intel Corporation Software-controlled cache memory compartmentalization
US6202129B1 (en) * 1998-03-31 2001-03-13 Intel Corporation Shared cache structure for temporal and non-temporal information using indicative bits
US6205520B1 (en) * 1998-03-31 2001-03-20 Intel Corporation Method and apparatus for implementing non-temporal stores
US6105111A (en) * 1998-03-31 2000-08-15 Intel Corporation Method and apparatus for providing a cache management technique
US6223258B1 (en) * 1998-03-31 2001-04-24 Intel Corporation Method and apparatus for implementing non-temporal loads

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9317429B2 (en) 2011-09-30 2016-04-19 Intel Corporation Apparatus and method for implementing a multi-level memory hierarchy over common memory channels
US9342453B2 (en) 2011-09-30 2016-05-17 Intel Corporation Memory channel that supports near memory and far memory access
US9378142B2 (en) 2011-09-30 2016-06-28 Intel Corporation Apparatus and method for implementing a multi-level memory hierarchy having different operating modes
US9600416B2 (en) 2011-09-30 2017-03-21 Intel Corporation Apparatus and method for implementing a multi-level memory hierarchy
US10102126B2 (en) 2011-09-30 2018-10-16 Intel Corporation Apparatus and method for implementing a multi-level memory hierarchy having different operating modes
US10241912B2 (en) 2011-09-30 2019-03-26 Intel Corporation Apparatus and method for implementing a multi-level memory hierarchy
US10241943B2 (en) 2011-09-30 2019-03-26 Intel Corporation Memory channel that supports near memory and far memory access
US10282322B2 (en) 2011-09-30 2019-05-07 Intel Corporation Memory channel that supports near memory and far memory access
US10282323B2 (en) 2011-09-30 2019-05-07 Intel Corporation Memory channel that supports near memory and far memory access
US10691626B2 (en) 2011-09-30 2020-06-23 Intel Corporation Memory channel that supports near memory and far memory access
US11132298B2 (en) 2011-09-30 2021-09-28 Intel Corporation Apparatus and method for implementing a multi-level memory hierarchy having different operating modes

Also Published As

Publication number Publication date
EP1066566A4 (en) 2002-10-23
CN1295687A (zh) 2001-05-16
WO1999050752A1 (en) 1999-10-07
US20020007441A1 (en) 2002-01-17
AU3364599A (en) 1999-10-18
TW573252B (en) 2004-01-21
EP1066566B1 (en) 2006-11-02
JP4486750B2 (ja) 2010-06-23
BR9909295A (pt) 2000-12-05
WO1999050752A9 (en) 2000-05-25
US6202129B1 (en) 2001-03-13
US6584547B2 (en) 2003-06-24
KR20010042262A (ko) 2001-05-25
JP2002510085A (ja) 2002-04-02
RU2212704C2 (ru) 2003-09-20
KR100389549B1 (ko) 2003-06-27
EP1066566A1 (en) 2001-01-10

Similar Documents

Publication Publication Date Title
CN1230750C (zh) 临时指令与非临时指令共享的高速缓存结构
US4980823A (en) Sequential prefetching with deconfirmation
EP2885714B1 (en) Data cache prefetch hints
US7783837B2 (en) System and storage medium for memory management
US8176255B2 (en) Allocating space in dedicated cache ways
US6823428B2 (en) Preventing cache floods from sequential streams
US6134643A (en) Method and apparatus for cache line prediction and prefetching using a prefetch controller and buffer and access history
US7552286B2 (en) Performance of a cache by detecting cache lines that have been reused
US6078992A (en) Dirty line cache
US7711901B2 (en) Method, system, and apparatus for an hierarchical cache line replacement
US6578111B1 (en) Cache memory system and method for managing streaming-data
US20070073974A1 (en) Eviction algorithm for inclusive lower level cache based upon state of higher level cache
US20040049640A1 (en) System and method for directional prefetching
JPH1196074A (ja) 交換アルゴリズム動的選択コンピュータシステム
CN1728112A (zh) 用于对芯片多处理器的共享高速缓存器分区的设备和方法
JPH0364893B2 (zh)
CN1425154A (zh) 高速缓冲存储器线清洗微结构执行方法和系统
US7107400B2 (en) System, apparatus, and process for evaluating projected cache sizes
US20120151149A1 (en) Method and Apparatus for Caching Prefetched Data
CN101826056A (zh) 数据处理设备和方法
US8589627B2 (en) Partially sectored cache
US6772299B2 (en) Method and apparatus for caching with variable size locking regions
US7493453B2 (en) System, method and storage medium for prefetching via memory block tags
US7293141B1 (en) Cache word of interest latency organization
US6598124B1 (en) System and method for identifying streaming-data

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
CX01 Expiry of patent term

Granted publication date: 20051207

CX01 Expiry of patent term