一种支持处理器的功率操作模式的高速缓存存储器 【技术领域】
本发明一般地涉及高速缓存存储器。更具体地,本发明涉及支持低功率操作模式的高速缓存存储器。
背景技术
众所周知,高速缓存或高速缓存存储器为诸如计算机或计算系统存储信息。高速缓存存储器的作用往往使处理器减少数据检索的时间。主存储器将要存储的特定的数据子集转送到高速缓存存储器之中。数据的一些实例包括指令和地址。典型地,高速缓存存储器中的至少一个高速缓存行(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所描述的示意性高速缓存存储器和方法。
尽管参照具体的实施例描述了所要求保护的主题,但是并不意味着将这些描述解释为具有限制意义。通过参考对于所要求保护的主题的描述,对所公开的实施例的各种修改,以及所要求保护的主题的其他可选的实施例对于本领域的技术人员是明显的。因此,可以理解在不偏离如权利要求所限定的所要求保护的主题的精神和范围的情况下,可以进行这样的修改。