CN1517886A - 一种支持处理器的功率操作模式的高速缓存存储器 - Google Patents

一种支持处理器的功率操作模式的高速缓存存储器 Download PDF

Info

Publication number
CN1517886A
CN1517886A CNA200310115494XA CN200310115494A CN1517886A CN 1517886 A CN1517886 A CN 1517886A CN A200310115494X A CNA200310115494X A CN A200310115494XA CN 200310115494 A CN200310115494 A CN 200310115494A CN 1517886 A CN1517886 A CN 1517886A
Authority
CN
China
Prior art keywords
cache memory
cache
request
road
roads
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
CNA200310115494XA
Other languages
English (en)
Other versions
CN100356348C (zh
Inventor
����ɯ��J��������������
萨曼莎·J·埃迪里苏里亚
苏亚特·雅米尔
E
戴维·E·迈纳
��ˡ��²�����˹
R·弗兰克·奥布莱奈斯
J
史蒂文·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.)
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 CN1517886A publication Critical patent/CN1517886A/zh
Application granted granted Critical
Publication of CN100356348C publication Critical patent/CN100356348C/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/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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

本发明公开了一种用于支持低功率操作模式的高速缓存存储器的方法、装置和系统。在一个实施例中,提供了一种具有处理器的系统,该处理器产生对于高速缓存存储器的高速缓存行的请求;所述系统还包括具有多个m路的高速缓存存储器,该高速缓存存储器被耦合到所述的处理器上以接收所述的请求,并且所述的高速缓存存储器允许所述多个路中的n路存储至少一个脏行,其中n小于m,并且所述的高速缓存存储器禁止在所述的多个路中剩余的(m-n)路中存储脏行。在另一个实施例中,高速缓存存储器可以对不允许存储脏行的路断电,以支持低功率操作模式。

Description

一种支持处理器的功率操作模式的高速缓存存储器
技术领域
本发明一般地涉及高速缓存存储器。更具体地,本发明涉及支持低功率操作模式的高速缓存存储器。
背景技术
众所周知,高速缓存或高速缓存存储器为诸如计算机或计算系统存储信息。高速缓存存储器的作用往往使处理器减少数据检索的时间。主存储器将要存储的特定的数据子集转送到高速缓存存储器之中。数据的一些实例包括指令和地址。典型地,高速缓存存储器中的至少一个高速缓存行(cache line)被用新的数据更新,通常被称为“脏行(dirty line)或已修改”。相反,高速缓存的洁行(clean line)具有并未相对于主存储器变化的数据。最后,脏行的新数据被回写到主存储器中,以保证高速缓存存储器和主存储器之间的一致性。
根据被映射到预定的高速缓存位置的地址位置,高速缓存存储器具有一系列不同的结构。例如,高速缓存存储器可以是直接映射的或完全关联的。或者,还有一种高速缓存存储器是组关联高速缓存,此组关联高速缓存是直接映射高速缓存和完全关联高速缓存之间的折衷。在直接映射高速缓存中,每个组中有一个地址位置。相反地,N-路关联的完全关联高速缓存在该高速缓存中具有总数为N的块。最后,通常被称为N路组关联高速缓存的组关联高速缓存将高速缓存分成多个N路,其中关联地搜索每个地址以找到标签(tag)地址。
对功能更加强大的计算机和通信产品的需求导致了更快速的处理器,此处理器常常会具有更高的芯片温度,并且消耗的功率的大小不断增加。但是,设计工程师们努力降低功率消耗和芯片温度。例如,高速缓存需要保证与主存储器的数据同步和支持处理器的低功率操作模式,诸如利用低水平功率的空闲状态。但是,一般的高速缓存存储器的每一路都需要接收功率,直至脏行已被回写至主存储器。刷新(flush)操作启动将脏行向主存储器的回写。由此,一般的高速缓存存储器的每一路都需要接收功率直至刷新操作完成。因此,一般的高速缓存存储器不能支持在低功率操作模式期间间歇空闲的处理器。此外,一般的高速缓存存储器只有在刷新操作完成之后才可以支持长期空闲的处理器。
发明内容
因此,本发明的目的在于提供用于支持低功率操作模式的高速缓存存储器的方法、装置和系统。
根据本发明的第一方面,提供了一种用于存储至少一个高速缓存脏行的方法,包括:选择至少高速缓存存储器的第一路,以允许存储所述的高速缓存脏行;以及禁止所述的高速缓存存储器的第二路存储所述的高速缓存脏行。
根据本发明的第二方面,提供了一种具有多个路以接收写入请求的的高速缓存存储器,包括:所述的高速缓存存储器允许所述的多个路的一个子集存储至少一个脏行;以及所述的高速缓存存储器确定所述的写入请求的高速缓存行是否满足命中条件,如果为是的话,若所述的写入请求的高速缓存行被存储在所述多个路的被允许存储所述一个脏行的子集中,则所述的高速缓存存储器更新所述的写入请求的高速缓存行。
根据本发明的第三方面,提供了一种具有多个接收读取请求的路的高速缓存存储器,包括:所述的高速缓存存储器允许所述多个路的一个子集存储至少一个脏行;以及所述的高速缓存存储器确定所述的读取请求的高速缓存行是否满足命中条件,如果为是的话,则所述的高速缓存行将所述的读取请求的高速缓存行转送至代理。
根据本发明的第四方面,提供了一种系统,包括:处理器,该处理器产生对于高速缓存存储器的高速缓存行的请求;和具有多个m路的高速缓存存储器,所述的高速缓存存储器被耦合到所述的处理器上以接收所述的请求,并且所述的高速缓存存储器允许所述多个路中的n路存储至少一个脏行,其中n小于m,并且所述的高速缓存存储器禁止在所述的多个路中剩余的(m-n)路中存储脏行。
根据本发明的第五方面,提供了一种系统,包括:处理器,该处理器产生对于高速缓存存储器的高速缓存行的请求,所述的高速缓存存储器支持处理器的功率操作模式;和具有多个m路的高速缓存存储器,所述的高速缓存存储器被耦合到所述的处理器上以接收所述的请求,并且所述的高速缓存存储器允许所述多个路中的n路存储至少一个脏行,其中n小于m,并且所述的高速缓存存储器禁止在所述的多个路中剩余的(m-n)路中存储脏行。
根据本发明的第六方面,提供了一种高速缓存存储器,具有接收存储脏行请求的多个路,所述高速缓存存储器包括:所述的高速缓存存储器允许多个路的第一路存储所述的脏行;以及所述的高速缓存存储器对除所述第一路之外的所述多个路断电,以支持功率操作模式。
根据本发明所提供的方法、装置和系统,只允许高速缓存存储器中的部分路存储脏行,无需等待刷新操作的进行就可以将只允许存储洁行的路断电,从而可以支持在低功率操作模式期间间歇空闲的处理器。
附图说明
本发明的权利要求详细地指出了主题并明确地要求保护该主题。通过结合附图参考下述的详细描述,可以更好地理解关于操作的方法和结构,并连同其目的、特征和优点的所要求保护的主题,其中:
图1是说明了根据所要求保护的主题的高速缓存存储器的一个实施例的示意图;
图2是说明了根据所要求保护的主题的方法的一个实施例的流程图;
图3是说明了根据所要求保护的主题的方法的一个实施例的流程图;
图4是说明了可以使用图1、图2或图3,或它们中的全部的实施例的系统的方框图。
具体实施方式
在下面的详细描述中阐述了很多具体细节,以便于充分理解本发明。但是,本领域的技术人员将可以理解,没有这些具体细节也可以实施所要求保护的主题。在另外一些例子里,没有对公知的方法、过程、部件和电路进行详细的描述,以避免模糊所要求保护的主题。
当前技术发展的一个领域涉及通过减小功率消耗来使通信产品以及计算机或计算系统获得更长的电池寿命。目前,为了使高速缓存存储器支持处理器的长时间的低功率操作模式,需要完成刷新操作。同样,高速缓存存储器的每一路都需要接收功率直至刷新操作的完成。但是,如前面所讨论的,因为每一路都需要接收功率,所以在刷新操作完成以前,高速缓存存储器不能支持在低功率操作模式期间间歇空闲的处理器。
相反,将脏行存储在预定的路之中的装置、系统和方法允许高速缓存存储器支持处理器的低功率操作模式。例如,具有8路即路0至路7的高速缓存存储器可以仅仅让路0和路1存储脏行。因此,在处理器的低功率操作模式期间,无需完成刷新操作就可以将路2至路7断电。此外,在对路0和路1进行刷新操作之后,可以将路0和路1断电。由此,通过对不储存脏行的路进行断电,所要求保护的主题减少了功率消耗。同样地,因为仅对存储脏行的预定的路进行刷新操作并导致用于整个高速缓存的刷新操作的功率消耗的减小,  所以所要求保护的主题提高了高速缓存的性能。相反,一般的高速缓存存储器对所有的路都进行刷新操作。
图1是一个说明了根据所要求保护的主题的高速缓存存储器的一个实施例的示意图。示意图100包括但不限于具有多个路的高速缓存存储器。在一个实施例中,高速缓存存储器是8路组关联高速缓存。但是,所要求保护的主题不限于8路组关联高速缓存。例如,所要求保护的主题支持具有不同构造的高速缓存,包括16路组关联高速缓存、完全关联高速缓存或任何具有多个路的高速缓存存储器。
一方面,示意图便于高速缓存存储器通过将脏行存储在预定的路中来支持处理器的低功率操作模式。例如,在一个实施例中,预定让路0和路1允许存储脏行。相反,路2至路7存储洁行而不允许存储脏行。此外,允许路0和路1存储洁行。但是,所要求保护的主题不限于仅允许路0和路1来存储脏行的实施例。例如,可以允许一个路或超过二个的路来存储脏行。
相反,在另一个实施例中,路0和路1被预定允许存储脏行。相反,路2至路7存储洁行而不允许存储脏行。此外,不允许路0和路1存储洁行。
示意图100支持各种高速缓存替换协议,例如随机协议、最近最少使用(LRU)协议、伪LRU协议、最近未使用(NRU)协议以及循环(round-robin)协议。
示意图100支持各种高速缓存状态协议,例如已修改/专有/共享/无效(MESI)协议和已修改/已持有/专有/共享/无效(MOESI)协议。在本领域中,MESI协议和MOESI协议是众所周知的。此外,MESI协议允许一个处理器具有一高速缓存行,此高速缓存行具有与主存储器不同的数据。相反,MOESI协议允许两个或更多处理器具有不同于主存储器的高速缓存行,因为一个处理器操作处在“已持有”状态下的高速缓存行,而另一处理器具有处在“共享”状态下的相同的高速缓存行。具有处在“已持有”状态下的高速缓存行的处理器负责将所述的高速缓存行回写至主存储器,以更新主存储器。
所述的示意图支持各种读取和写入操作,例如来自处理器的加载和存储请求,这将结合图2和图3进行讨论。所要求保护的主题支持来自诸如微控制器、微处理器和芯片组的各种代理的读取和写入操作。
因此,图1中所描述的所要求保护的主题示出了选择至少一个允许存储脏行的路,并禁止剩余的路存储脏行。如前面所讨论的,因为对多个路的禁止存储脏行的子集进行刷新操作,所以所要求保护的主题提高了高速缓存的性能。相反,现有技术的高速缓存对多个路中的全部进行刷新操作。此外,所要求保护的主题减小功率消耗,因为在各种情况下可以将不允许存储脏行的路断电,所述的情况例如,为了支持处理器的低功率操作模式或对路断电的外部请求。
图2是说明了根据所要求保护的主题的方法的一个实施例的流程图。该流程图包括但不限于多个菱形框以及方框202、204、206、208、210、212、214、216、218、220和222。在一个实施例中,所要求保护的主题描述了通过将脏行存储在预定的路中以便高速缓存存储器支持处理器的低功率操作模式。另一方面,所要求保护的主题允许对不存储脏行的路进行断电以支持处理器的低功率操作模式。另一方面,所要求保护的主题支持来自处理器的写入请求,以允许将脏行存储在预定的路中。
在一个实施例中,如方框202所示,所要求保护的主题选择高速缓存存储器的至少一个路来存储脏行。如方框204所示,高速缓存存储器接收写入请求,如对于高速缓存存储器的高速缓存行的存储请求。
随后,菱形框206执行确定写入请求的高速缓存行在高速缓存存储器中是否存在并处在有效的状态中(常常被称为命中条件)的判断。如果为是的话,则菱形框208执行确定写入请求的高速缓存行是否存储在允许存储脏行的路中的判断。但是,否则的话,则如将在下面讨论的方框218所示的,执行读取和无效命令。
如果如菱形框208所确定的,写入请求的高速缓存行被存储在允许存储脏行的路中,则如方框210所示,所要求保护的主题对在高速缓存存储器中的所述的相同位置的高速缓存行进行更新。在一个实施例中,对所述高速缓存行的专有所有权进行获取,来保证在更新此高速缓存行之前只有一个处理器具有此高速缓存行的拷贝,以支持MESI协议和MOESI协议。
如果如菱形框208所确定的,写入请求的高速缓存行被存储在不允许存储脏行的路中,则如方框212所示,所要求保护的主题进行读取所述的高速缓存行并使写入请求的高速缓存行无效。在一个实施例中,对所述高速缓存行的专有所有权进行获取,来保证在读取和无效此高速缓存行之前只有一个处理器具有此高速缓存行的拷贝,以支持MESI协议和MOESI协议。随后,如方框214所示,所要求保护的主题将写入数据和写入请求的高速缓存行中的数据合并。例如,在一个实施例中,写入数据和所述高速缓存行中的数据的合并允许仅仅更新在所述高速缓存行中的需要修改的字节。接着,如方框216所示,将写入请求的高速缓存行写入允许存储脏行的路。
如菱形框206所确定的,在不满足命中条件时,如方框218所示,所要求保护的主题在总线上执行读取和无效命令,以获取写入请求的高速缓存行的专有所有权。随后,如方框220所示,所要求保护的主题将写入数据和从系统存储器或另外的高速缓存存储器中检索(“取得”)的数据合并。然后,如方框222所示,将写入请求的高速缓存行写入允许存储脏行的路中。
因此,所要求保护的主题描述了一种高速缓存存储器,此高速缓存存储器通过减小功率消耗来支持代理对于写入请求的低功率操作模式,因为不存储脏行的路可以被断电而不用进行刷新操作,也不用管低功率操作模式的持续时间。此外,因为仅仅对被指定来存储脏行的路进行刷新操作,所以所要求保护的主题描述了性能提高的高速缓存存储器。相反,现有技术中的高速缓存存储器对所有的路都进行刷新操作。
方框202确定对允许存储脏行的路的选择。可以通过一系列外部引脚进行预定的路的选择。例如,在一个实施例中,对于一个8-路高速缓存存储器的三个外部引脚的译码值确定可以存储脏行的路的数量。因此,值“001”允许一个路(路0)来存储脏行;值“002”允许两个路(路0和路1)来存储脏行,等等。或者,基本输入和输出系统(BIOS)固件可以确定被允许存储脏行的路的数量。
被允许存储脏行的路的数量可以允许动态变化。例如,高速缓存可以一开始允许仅仅两个路,路0和路1,来存储脏行。随后,可以增加被允许存储脏行的路的数量以支持存储更多的脏行。或者,可以减少被允许存储脏行的路的数量。例如,刚开始路0和路1被允许存储脏行。随后,需要减少支持存储脏行的路的数量,则禁止路0存储脏行。由此,对路0进行刷新操作来保证主存储器和路0之间的同步性。
在所述的方法中所描述的所要求保护的主题具有可选的方框。例如,方框210、212和218描述了由硬件一致性系统使用的一个例子。相反,如回写高速缓存所使用的,另一个实施例不包含在方框210、212和218中描述的专有所有权命令。
图3是说明了根据所要求保护的主题的方法的一个实施例的流程图。该流程图包括但不限于多个菱形框以及方框302、304、306、308、310和312。在一个实施例中,所要求保护的主题描述了通过将脏行存储在预定的路中以便高速缓存存储器支持处理器的低功率操作模式。另一方面,所要求保护的主题允许对不存储脏行的路进行断电以支持处理器的低功率操作模式。另一方面,所要求保护的主题支持来自处理器的读取请求以允许将脏行存储在预定的路中。
在一个实施例中,如方框302所示,所要求保护的主题选择高速缓存存储器的至少一个路来存储脏行。如方框304所示,高速缓存存储器接收读取请求,如对于高速缓存存储器的高速缓存行的加载请求。
随后,菱形框306执行确定读取请求的高速缓存行在高速缓存存储器中是否存在并处在有效的状态中(常常被称为命中条件)的判断。如果为是的话,则如方框308所示,高速缓存存储器将读取请求的高速缓存行转送给诸如处理器的代理。但是,否则的话,则如方框310所示,在总线上产生读取命令以从另一个高速缓存存储器或主存储器获取初始的读取请求的高速缓存行。随后,如方框312所示,在从读取命令接收到高速缓存行后,对于写入分配系统,进行将读取命令的高速缓存行写入到允许存储洁行的路中的操作。相反,非写入分配系统允许将读取命令的高速缓存行写入任意路中。例如,非写入分配系统可以允许任意的路来存储从读取未命中所取得的数据,以预防招致从只允许洁行的路读取数据并写入允许脏行的路中的不良后果,因为首次存储操作将决不会命中允许存储脏行的路。
可以通过一般的任意高速缓存替换策略,如随机协议、最近最少使用(LRU)协议,伪LRU协议、非最近使用(NRU)协议以及循环协议,来进行对于此读取请求的路的选择。
因此,所要求保护的主题描述了一种高速缓存存储器,此高速缓存存储器通过减小功率消耗来支持代理对于读取请求的低功率操作模式,因为不存储脏行的路可以被断电而不用进行刷新操作,也不用管低功率操作模式的持续时间。此外,因为仅仅对被指定来存储脏行的路进行刷新操作,所以所要求保护的主题描述了性能提高的高速缓存存储器。相反,现有技术中的高速缓存存储器对所有的路都进行刷新操作。
图4是说明了可能使用图1、图2或图3,或它们中的全部的实施例的系统的方框图。在一个实施例中,系统400是计算机或计算系统,如个人数字助理、因特网平台(Internet table)和通信设备。该系统包括但不限于处理器402和存储器404。处理器可以执行指令和从诸如高速缓存存储器的存储器请求数据。例如,处理器可以产生对于高速缓存存储器404的特定的高速缓存行的读取请求,如加载请求。同样地,处理器可以产生对于高速缓存存储器404的特定的高速缓存行的写入请求,如存储请求。
在一个实施例中,系统结合有参照图1所讨论的示意性的高速缓存存储器。在另一个实施例中,系统结合有参照图2和图3,或其两者所讨论的方法。在另一个实施例中,系统结合有参照图1、图2和图3所描述的示意性高速缓存存储器和方法。
尽管参照具体的实施例描述了所要求保护的主题,但是并不意味着将这些描述解释为具有限制意义。通过参考对于所要求保护的主题的描述,对所公开的实施例的各种修改,以及所要求保护的主题的其他可选的实施例对于本领域的技术人员是明显的。因此,可以理解在不偏离如权利要求所限定的所要求保护的主题的精神和范围的情况下,可以进行这样的修改。

Claims (34)

1.一种用于存储至少一个高速缓存脏行的方法,包括:
至少选择高速缓存存储器的第一路,以允许存储所述的高速缓存脏行;以及
禁止所述的高速缓存存储器的第二路存储所述的高速缓存脏行。
2.如权利要求1所述的方法,还包括:
允许所述的第二路来存储至少一个高速缓存洁行。
3.如权利要求1所述的方法,其中至少部分地基于高速缓存替换协议来存储所述的脏行。
4.如权利要求1所述的方法,其中至少部分地基于高速缓存替换协议来存储所述的高速缓存洁行。
5.一种具有多个路以接收写入请求的高速缓存存储器,包括:
所述的高速缓存存储器允许所述的多个路的一个子集存储至少一个脏行;以及
所述的高速缓存存储器确定所述的写入请求的高速缓存行是否满足命中条件,如果为是的话,若所述的写入请求的高速缓存行被存储在所述多个路的被允许存储所述一个脏行的子集中,则所述的高速缓存存储器更新所述的写入请求的高速缓存行。
6.如权利要求5所述的高速缓存存储器,其中在不满足命中条件的情况下,所述的高速缓存存储器将执行:
总线上的读取和无效命令来获取所述的写入请求的高速缓存行的专有所有权;
将所述的写入请求的写入数据与所述的高速缓存行的数据合并;以及
将所述的写入请求的高速缓存行写入至所述的多个路的被允许存储脏行的子集中的一个。
7.如权利要求5所述的高速缓存存储器,其中如果所述的写入请求的高速缓存行满足命中条件,而所述的写入请求的高速缓存行没有被存储在所述的多个路的被允许存储脏行的子集中,则所述的高速缓存存储器将执行:
所述的写入请求的高速缓存行的读取操作,以及然后所述的写入请求的高速缓存行的无效操作;
将所述的写入请求的写入数据与所述的高速缓存行的数据合并;以及
将所述的写入请求的高速缓存行写入至所述的多个路的被允许存储脏行的子集中的一个。
8.如权利要求5所述的高速缓存存储器,其中所述的多个路包含8个路。
9.如权利要求5所述的高速缓存存储器,其中所述的高速缓存存储器是8路组关联高速缓存。
10.如权利要求5所述的高速缓存存储器,其中所述的高速缓存存储器被耦合到处理器上。
11.如权利要求5所述的高速缓存存储器,其中所述的高速缓存存储器支持MESI协议。
12.如权利要求5所述的高速缓存存储器,其中所述的高速缓存存储器支持MOESI协议。
13.如权利要求5所述的高速缓存存储器,其中所述的高速缓存存储器支持LRU高速缓存替换协议、随机高速缓存替换协议或NRU高速缓存替换协议中的一种。
14.如权利要求10所述的高速缓存存储器,其中所述的写入请求是来自所述处理器的存储请求。
15.一种具有多个接收读取请求的路的高速缓存存储器,包括:
所述的高速缓存存储器允许所述多个路的一个子集存储至少一个脏行;以及
所述的高速缓存存储器确定所述的读取请求的高速缓存行是否满足命中条件,如果为是的话,则所述的高速缓存行将所述的读取请求的高速缓存行转送至代理。
16.如权利要求15所述的高速缓存存储器,其中在不满足命中条件的情况下,所述的高速缓存存储器将执行:
读取命令以定位所述的读取命令的高速缓存行;以及
在完成所述的读取命令后,将所述的读取请求的高速缓存行写入至所述的多个路的被允许存储脏行的子集中的一个。
17.如权利要求15所述的高速缓存存储器,其中所述的多个路包含8个路。
18.如权利要求15所述的高速缓存存储器,其中所述的高速缓存存储器是8路组关联高速缓存。
19.如权利要求15所述的高速缓存存储器,其中所述的高速缓存存储器被耦合到处理器上。
20.如权利要求15所述的高速缓存存储器,其中所述的高速缓存存储器支持MESI协议。
21.如权利要求15所述的高速缓存存储器,其中所述的高速缓存存储器支持MOESI协议。
22.如权利要求15所述的高速缓存存储器,其中所述高速缓存存储器支持LRU高速缓存替换协议、随机高速缓存替换协议、NRU高速缓存替换协议、循环高速缓存替换协议或伪随机高速缓存替换协议中的一个。
23.如权利要求19所述的高速缓存存储器,其中所述的读取请求是来自所述处理器的加载请求。
24.一种系统,包括:
处理器,该处理器产生对于高速缓存存储器的高速缓存行的请求;和
具有多个m路的高速缓存存储器,所述的高速缓存存储器被耦合到所述的处理器上以接收所述的请求,并且所述的高速缓存存储器允许所述多个路中的n路存储至少一个脏行,其中n小于m,并且所述的高速缓存存储器禁止在所述的多个路中剩余的(m-n)路中存储脏行。
25.如权利要求24所述的系统,还包括所述的高速缓存存储器确定对于所述请求的高速缓存行是否满足命中条件,如果是,则:
若所述的请求是读取请求,则对于所述的请求将所述的高速缓存行转送至所述处理器;以及
对于写入请求,确定所述请求的高速缓存行是否被存储在所述的n路中的一个中,如果是,则更新所述高速缓存存储器中的所述高速缓存行。
26.如权利要求24所述的系统,其中所述的多个路为8路。
27.如权利要求24所述的系统,其中所述的高速缓存存储器是8路组关联高速缓存。
28.一种系统,包括:
处理器,该处理器产生对于高速缓存存储器的高速缓存行的请求,所述的高速缓存存储器支持处理器的功率操作模式;和
具有多个m路的高速缓存存储器,所述的高速缓存存储器被耦合到所述的处理器上以接收所述的请求,并且所述的高速缓存存储器允许所述多个路中的n路存储至少一个脏行,其中n小于m,并且所述的高速缓存存储器禁止在所述的多个路中剩余的(m-n)路中存储脏行。
29.如权利要求28所述的系统,其中所述的系统将进行刷新操作以支持所述的处理器的功率操作模式,所述系统包括:
对所述的多个路中的剩余的(m-n)路断电,并对所述的n路进行刷新操作。
30.如权利要求29所述的系统,其中所述的处理器的功率操作模式是低功率操作模式。
31.一种高速缓存存储器,具有接收存储脏行请求的多个路,所述高速缓存存储器包括:
所述的高速缓存存储器允许多个路的第一路存储所述的脏行;以及
所述的高速缓存存储器对除所述第一路之外的所述多个路断电,以支持功率操作模式。
32.如权利要求31所述的高速缓存存储器,其中所述的第一路将存储至少一个高速缓存洁行。
33.如权利要求31所述的高速缓存存储器,其中禁止除所述第一路之外的所述多个路存储脏行,并且除所述第一路之外的所述多个路被允许存储高速缓存洁行。
34.如权利要求31所述的高速缓存存储器,其中所述的功率操作模式是处理器的低功率操作模式。
CNB200310115494XA 2003-01-07 2003-11-26 一种支持处理器的功率操作模式的高速缓存存储器 Expired - Fee Related CN100356348C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/338,207 US7290093B2 (en) 2003-01-07 2003-01-07 Cache memory to support a processor's power mode of operation
US10/338,207 2003-01-07

Publications (2)

Publication Number Publication Date
CN1517886A true CN1517886A (zh) 2004-08-04
CN100356348C CN100356348C (zh) 2007-12-19

Family

ID=32681399

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB200310115494XA Expired - Fee Related CN100356348C (zh) 2003-01-07 2003-11-26 一种支持处理器的功率操作模式的高速缓存存储器

Country Status (2)

Country Link
US (4) US7290093B2 (zh)
CN (1) CN100356348C (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1808340B (zh) * 2004-12-29 2010-07-21 英特尔公司 维持监听吞吐量时为处理器提供低功率模式的方法和装置
CN101464714B (zh) * 2007-12-19 2011-12-07 国际商业机器公司 抢先热管理方法和设备
CN101299165B (zh) * 2007-05-01 2012-08-22 辉达公司 用于实施通用系统停顿的方法和系统
CN102934046A (zh) * 2010-05-11 2013-02-13 超威半导体公司 高速缓存控制的方法和装置
CN106445834A (zh) * 2012-04-20 2017-02-22 内存技术有限责任公司 管理存储器模块中的操作状态数据
CN107924221A (zh) * 2015-08-05 2018-04-17 高通股份有限公司 用于便携式计算设备中的高速缓存感知的低功率模式控制的系统和方法
US10540094B2 (en) 2008-02-28 2020-01-21 Memory Technologies Llc Extended utilization area for a memory device
US10877665B2 (en) 2012-01-26 2020-12-29 Memory Technologies Llc Apparatus and method to provide cache move with non-volatile mass memory system
US10983697B2 (en) 2009-06-04 2021-04-20 Memory Technologies Llc Apparatus and method to share host system RAM with mass storage memory RAM

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040111563A1 (en) * 2002-12-10 2004-06-10 Edirisooriya Samantha J. Method and apparatus for cache coherency between heterogeneous agents and limiting data transfers among symmetric processors
WO2006120507A1 (en) * 2005-05-11 2006-11-16 Freescale Semiconductor, Inc. Method for power reduction and a device having power reduction capabilities
US7899990B2 (en) * 2005-11-15 2011-03-01 Oracle America, Inc. Power conservation via DRAM access
US7516274B2 (en) * 2005-11-15 2009-04-07 Sun Microsystems, Inc. Power conservation via DRAM access reduction
US7873788B1 (en) * 2005-11-15 2011-01-18 Oracle America, Inc. Re-fetching cache memory having coherent re-fetching
US7934054B1 (en) 2005-11-15 2011-04-26 Oracle America, Inc. Re-fetching cache memory enabling alternative operational modes
US7958312B2 (en) * 2005-11-15 2011-06-07 Oracle America, Inc. Small and power-efficient cache that can provide data for background DMA devices while the processor is in a low-power state
JP4912789B2 (ja) * 2006-08-18 2012-04-11 富士通株式会社 マルチプロセッサシステム,システムボードおよびキャッシュリプレース要求処理方法
US7769729B2 (en) * 2007-05-21 2010-08-03 Sap Ag Block compression of tables with repeated values
US8990505B1 (en) 2007-09-21 2015-03-24 Marvell International Ltd. Cache memory bank selection
WO2010137164A1 (ja) * 2009-05-29 2010-12-02 富士通株式会社 キャッシュ制御装置およびキャッシュ制御方法
US20130036270A1 (en) * 2011-08-04 2013-02-07 The Regents Of The University Of Michigan Data processing apparatus and method for powering down a cache
JP5674613B2 (ja) * 2011-09-22 2015-02-25 株式会社東芝 制御システム、制御方法およびプログラム
US10229221B1 (en) * 2012-03-01 2019-03-12 EMC IP Holding Company LLC Techniques for cache updates based on quality of service
US9003126B2 (en) 2012-09-25 2015-04-07 Intel Corporation Apparatus, system and method for adaptive cache replacement in a non-volatile main memory system
KR101864831B1 (ko) * 2013-06-28 2018-06-05 세종대학교산학협력단 가상 캐시를 포함하는 메모리 및 그 관리 방법
US9811468B2 (en) * 2014-12-14 2017-11-07 Via Alliance Semiconductor Co., Ltd. Set associative cache memory with heterogeneous replacement policy
WO2016097806A1 (en) * 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Fully associative cache memory budgeted by memory access type
EP3055775B1 (en) * 2014-12-14 2019-08-21 VIA Alliance Semiconductor Co., Ltd. Cache replacement policy that considers memory access type
WO2016097812A1 (en) * 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Cache memory budgeted by chunks based on memory access type
EP3066571B1 (en) 2014-12-14 2018-06-13 VIA Alliance Semiconductor Co., Ltd. Cache memory budgeted by ways on memory access type
US10289558B2 (en) 2016-03-04 2019-05-14 Western Digital Technologies, Inc. Apparatus and method for reducing storage class memory write-backs
US10235302B2 (en) * 2016-12-12 2019-03-19 Intel Corporation Invalidating reads for cache utilization in processors
US11237972B2 (en) 2017-12-29 2022-02-01 Advanced Micro Devices, Inc. Method and apparatus for controlling cache line storage in cache memory
KR102529710B1 (ko) * 2018-02-19 2023-05-09 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US10831658B2 (en) * 2019-01-03 2020-11-10 Intel Corporation Read-with-invalidate modified data in a cache line in a cache memory
US11119935B2 (en) * 2019-05-24 2021-09-14 Texas Instruments Incorporated Methods and apparatus to facilitate atomic compare and swap in cache for a coherent level 1 data cache system

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4763250A (en) * 1985-04-01 1988-08-09 Motorola, Inc. Paged memory management unit having variable number of translation table levels
US5517626A (en) * 1990-05-07 1996-05-14 S3, Incorporated Open high speed bus for microcomputer system
US5014195A (en) 1990-05-10 1991-05-07 Digital Equipment Corporation, Inc. Configurable set associative cache with decoded data element enable lines
US5325509A (en) * 1991-03-05 1994-06-28 Zitel Corporation Method of operating a cache memory including determining desirability of cache ahead or cache behind based on a number of available I/O operations
US5369748A (en) * 1991-08-23 1994-11-29 Nexgen Microsystems Bus arbitration in a dual-bus architecture where one bus has relatively high latency
JP2839060B2 (ja) * 1992-03-02 1998-12-16 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理システムおよびデータ処理方法
US5465342A (en) * 1992-12-22 1995-11-07 International Business Machines Corporation Dynamically adaptive set associativity for cache memories
US5682515A (en) * 1993-01-25 1997-10-28 Benchmarq Microelectronics, Inc. Low power set associative cache memory with status inhibit of cache data output
US5450565A (en) * 1993-03-23 1995-09-12 Intel Corporation Circuit and method for selecting a set in a set associative cache
ZA954460B (en) * 1994-09-30 1996-02-05 Intel Corp Method and apparatus for processing memory-type information within a microprocessor
USRE38514E1 (en) * 1994-11-18 2004-05-11 Apple Computer, Inc. System for and method of efficiently controlling memory accesses in a multiprocessor computer system
US5657472A (en) * 1995-03-31 1997-08-12 Sun Microsystems, Inc. Memory transaction execution system and method for multiprocessor system having independent parallel transaction queues associated with each processor
US5655100A (en) * 1995-03-31 1997-08-05 Sun Microsystems, Inc. Transaction activation processor for controlling memory transaction execution in a packet switched cache coherent multiprocessor system
US5875315A (en) * 1995-06-07 1999-02-23 Advanced Micro Devices, Inc. Parallel and scalable instruction scanning unit
US5854921A (en) * 1995-08-31 1998-12-29 Advanced Micro Devices, Inc. Stride-based data address prediction structure
US5845323A (en) * 1995-08-31 1998-12-01 Advanced Micro Devices, Inc. Way prediction structure for predicting the way of a cache in which an access hits, thereby speeding cache access time
US5987561A (en) 1995-08-31 1999-11-16 Advanced Micro Devices, Inc. Superscalar microprocessor employing a data cache capable of performing store accesses in a single clock cycle
US5860105A (en) * 1995-11-13 1999-01-12 National Semiconductor Corporation NDIRTY cache line lookahead
US5864707A (en) * 1995-12-11 1999-01-26 Advanced Micro Devices, Inc. Superscalar microprocessor configured to predict return addresses from a return stack storage
US5859990A (en) * 1995-12-29 1999-01-12 Intel Corporation System for transferring data segments from a first storage device to a second storage device using an alignment stage including even and odd temporary devices
JPH09223068A (ja) * 1996-02-15 1997-08-26 Toshiba Microelectron Corp キャッシュメモリ
US6038645A (en) * 1996-08-28 2000-03-14 Texas Instruments Incorporated Microprocessor circuits, systems, and methods using a combined writeback queue and victim cache
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
US5930821A (en) * 1997-05-12 1999-07-27 Integrated Device Technology, Inc. Method and apparatus for shared cache lines in split data/code caches
US6044087A (en) * 1997-06-30 2000-03-28 Sun Microsystems, Inc. Interface for a highly integrated ethernet network element
DE19734028C2 (de) * 1997-08-06 1999-06-02 Siemens Ag Schaltung zur glitchfreien Umschaltung digitaler Signale
US6226680B1 (en) * 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing
US6026475A (en) 1997-11-26 2000-02-15 Digital Equipment Corporation Method for dynamically remapping a virtual address to a physical address to maintain an even distribution of cache page addresses in a virtual address space
US6078992A (en) * 1997-12-05 2000-06-20 Intel Corporation Dirty line cache
US6092159A (en) * 1998-05-05 2000-07-18 Lsi Logic Corporation Implementation of configurable on-chip fast memory using the data cache RAM
US6981096B1 (en) * 1998-10-02 2005-12-27 International Business Machines Corporation Mapping and logic for combining L1 and L2 directories and/or arrays
US6483516B1 (en) * 1998-10-09 2002-11-19 National Semiconductor Corporation Hierarchical texture cache
JP3495266B2 (ja) * 1998-11-13 2004-02-09 Necエレクトロニクス株式会社 キャッシュロック装置及びキャッシュロック方法
GB2385174B (en) * 1999-01-19 2003-11-26 Advanced Risc Mach Ltd Memory control within data processing systems
US6311280B1 (en) * 1999-02-22 2001-10-30 Nband Communications Low-power memory system with incorporated vector processing
US6178479B1 (en) * 1999-02-22 2001-01-23 Nband Communications Cycle-skipping DRAM for power saving
US6286082B1 (en) * 1999-04-19 2001-09-04 Sun Mocrosystems, Inc. Apparatus and method to prevent overwriting of modified cache entries prior to write back
US6434669B1 (en) * 1999-09-07 2002-08-13 International Business Machines Corporation Method of cache management to dynamically update information-type dependent cache policies
CN1181563C (zh) 1999-12-27 2004-12-22 精工爱普生株式会社 太阳电池以及太阳电池元件
US7089391B2 (en) 2000-04-14 2006-08-08 Quickshift, Inc. Managing a codec engine for memory compression/decompression operations using a data movement engine
US6523102B1 (en) 2000-04-14 2003-02-18 Interactive Silicon, Inc. Parallel compression/decompression system and method for implementation of in-memory compressed cache improving storage density and access speed for industry standard memory subsystems and in-line memory modules
US6965970B2 (en) * 2001-09-27 2005-11-15 Intel Corporation List based method and apparatus for selective and rapid cache flushes
US7266587B2 (en) * 2002-05-15 2007-09-04 Broadcom Corporation System having interfaces, switch, and memory bridge for CC-NUMA operation
US20040015669A1 (en) 2002-07-19 2004-01-22 Edirisooriya Samantha J. Method, system, and apparatus for an efficient cache to support multiple configurations
US7464227B2 (en) * 2002-12-10 2008-12-09 Intel Corporation Method and apparatus for supporting opportunistic sharing in coherent multiprocessors

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1808340B (zh) * 2004-12-29 2010-07-21 英特尔公司 维持监听吞吐量时为处理器提供低功率模式的方法和装置
CN101299165B (zh) * 2007-05-01 2012-08-22 辉达公司 用于实施通用系统停顿的方法和系统
CN101464714B (zh) * 2007-12-19 2011-12-07 国际商业机器公司 抢先热管理方法和设备
US11182079B2 (en) 2008-02-28 2021-11-23 Memory Technologies Llc Extended utilization area for a memory device
US11907538B2 (en) 2008-02-28 2024-02-20 Memory Technologies Llc Extended utilization area for a memory device
US11829601B2 (en) 2008-02-28 2023-11-28 Memory Technologies Llc Extended utilization area for a memory device
US11550476B2 (en) 2008-02-28 2023-01-10 Memory Technologies Llc Extended utilization area for a memory device
US10540094B2 (en) 2008-02-28 2020-01-21 Memory Technologies Llc Extended utilization area for a memory device
US11494080B2 (en) 2008-02-28 2022-11-08 Memory Technologies Llc Extended utilization area for a memory device
US11733869B2 (en) 2009-06-04 2023-08-22 Memory Technologies Llc Apparatus and method to share host system RAM with mass storage memory RAM
US10983697B2 (en) 2009-06-04 2021-04-20 Memory Technologies Llc Apparatus and method to share host system RAM with mass storage memory RAM
US11775173B2 (en) 2009-06-04 2023-10-03 Memory Technologies Llc Apparatus and method to share host system RAM with mass storage memory RAM
CN102934046B (zh) * 2010-05-11 2016-06-22 超威半导体公司 高速缓存控制的方法和装置
CN102934046A (zh) * 2010-05-11 2013-02-13 超威半导体公司 高速缓存控制的方法和装置
US10877665B2 (en) 2012-01-26 2020-12-29 Memory Technologies Llc Apparatus and method to provide cache move with non-volatile mass memory system
US11797180B2 (en) 2012-01-26 2023-10-24 Memory Technologies Llc Apparatus and method to provide cache move with non-volatile mass memory system
US11226771B2 (en) 2012-04-20 2022-01-18 Memory Technologies Llc Managing operational state data in memory module
CN106445834B (zh) * 2012-04-20 2022-11-18 内存技术有限责任公司 管理存储器模块中的操作状态数据
CN106445834A (zh) * 2012-04-20 2017-02-22 内存技术有限责任公司 管理存储器模块中的操作状态数据
US11782647B2 (en) 2012-04-20 2023-10-10 Memory Technologies Llc Managing operational state data in memory module
CN107924221A (zh) * 2015-08-05 2018-04-17 高通股份有限公司 用于便携式计算设备中的高速缓存感知的低功率模式控制的系统和方法

Also Published As

Publication number Publication date
US20050193176A1 (en) 2005-09-01
US20050204202A1 (en) 2005-09-15
US7404043B2 (en) 2008-07-22
CN100356348C (zh) 2007-12-19
US7685379B2 (en) 2010-03-23
US7487299B2 (en) 2009-02-03
US7290093B2 (en) 2007-10-30
US20050204195A1 (en) 2005-09-15
US20040133746A1 (en) 2004-07-08

Similar Documents

Publication Publication Date Title
CN100356348C (zh) 一种支持处理器的功率操作模式的高速缓存存储器
KR100389549B1 (ko) 템포럴 및 넌템포럴 명령어에 대한 공유 캐시 구조
US7493452B2 (en) Method to efficiently prefetch and batch compiler-assisted software cache accesses
US6782453B2 (en) Storing data in memory
US8285940B2 (en) Method and apparatus for high speed cache flushing in a non-volatile memory
US6912623B2 (en) Method and apparatus for multithreaded cache with simplified implementation of cache replacement policy
US6957304B2 (en) Runahead allocation protection (RAP)
US20130124794A1 (en) Logical to physical address mapping in storage systems comprising solid state memory devices
US6292871B1 (en) Loading accessed data from a prefetch buffer to a least recently used position in a cache
US20100217937A1 (en) Data processing apparatus and method
US20080301371A1 (en) Memory Cache Control Arrangement and a Method of Performing a Coherency Operation Therefor
US9128842B2 (en) Apparatus and method for reducing the flushing time of a cache
US7197605B2 (en) Allocating cache lines
EP1030243A1 (en) Optimized hardware cleaning function for virtual index virtual tag data cache
US7779205B2 (en) Coherent caching of local memory data
US11036639B2 (en) Cache apparatus and method that facilitates a reduction in energy consumption through use of first and second data arrays
US8214597B2 (en) Cache tentative read buffer
US20210390054A1 (en) Cache management circuits for predictive adjustment of cache control policies based on persistent, history-based cache control information
US7383390B1 (en) Resource-limited directories with fine-grained eviction
KR20070017551A (ko) Dma, 태스크 종료 및 동기화 동작들을 위한 캐시코히어런시 유지

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: 20071219

Termination date: 20131126