用于在处理环境中提供路径记忆的系统和方法

文档序号:6649325阅读:191来源:国知局
专利名称:用于在处理环境中提供路径记忆的系统和方法
技术领域
本发明一般涉及电路设计,更具体地,涉及在处理环境中提供路径记忆(way memoization)的系统和方法。
背景技术
集成电路的快速发展使得对许多装置、部件和结构中所包括的数字系统的设计的要求不断提高。包括集成电路的数字系统的数量持续稳定地增加这种增加是在大量产品和系统的驱动下而产生的。集成电路中可包含附加的功能,从而在它们的相应应用或环境中执行附加的任务或进行更复杂的操作(潜在地更快速)。
与集成电路相关的计算机处理器通常具有许多会消耗大量能量的高速缓存存储器。通常有两种类型的高速缓存存储器指令高速缓存(I高速缓存)和数据高速缓存(D高速缓存)。许多高速缓存存储器可通过指令地址总线和数据地址总线或者多路传输总线(其可用于数据和指令地址)与其它部件进行连接(interface)。从高速缓存存储器散发的能量与集成电路总能耗相比很显著。这些缺陷是对肩负缓解这种能耗问题的任务的系统设计者和部件制造者的巨大挑战。

发明内容
根据本发明,提供了用于减少相关高速缓存存储器的能耗的技术。根据具体实施例,这些技术可通过减少访问高速缓存存储器时执行的比较来减少电子装置的能耗。
根据具体实施例,提供了一种用于减少高速缓存存储器上能量的设备,其包括与高速缓存存储器连接的存储器地址缓冲元件。可为高速缓存存储器实现路径记忆,该路径记忆利用存储器地址缓冲元件,该存储器地址缓冲元件可操作以存储与先前访问过的地址相关的信息。可访问存储器地址缓冲元件,以减少在访问高速缓存存储器时的能耗。可以在存储器地址缓冲元件中存储与多个数据段相关的多个条目(entry),并且对于所选择的一个或更多个条目,有指向包括所需数据段的路径的地址字段。一个或更多个先前访问过的地址可以由与一个或更多个先前访问过的地址相关的一个或更多个标识符(tag)和一个或更多个组索引(set index)来替换。
本发明的实施例可提供各种技术优点。一些实施例显著地减少了与给定高速缓存存储器相关的比较活动。因为由存储有与先前访问数据相关的重要信息的存储器地址缓冲器来查阅适当的路径,所以还可以使特定路径无效或不可用。最小限度的比较和路径活动通常可减少能耗并减少高速缓存存储器系统的损耗。因此,这种方法通常减少了高速缓存储存器的活动。另外,这种方法并不需要修改高速缓存存储器的结构。这是尤为重要的,因为这使得可以使用具有先前设计的高速缓存存储器的处理器核心或者由不同销售集团(vendor group)提供的处理器系统。
本发明的其它技术优点对于本领域技术人员是显而易见的。另外,尽管上面已经列举了具体优点,但是本发明的不同实施例可以不具有这些优点,或者具有这些优点中的一些或全部。


要想更全面了解本发明及其优点,可以结合附图参考后文的说明。在附图中图1的简化框图示出了根据本发明的各个实施例的、用于在处理器中提供通信记忆技术的系统;图2的简化示意图示出了与图1的系统相关的各种示例的路径结构以及存储器地址缓冲器;以及图3是可包括在图1系统中的多个电路的示例结构的简化框图。
具体实施例方式
图1的简化框图示出了根据本发明的各个实施例的用于在处理器12中提供通信记忆技术的系统10。处理器12可包括主存储器(未示出)和高速缓存存储器14,这两个存储器可使用地址总线和数据总线而相互连接。高速缓存存储器14可包括存储器地址18,该存储器地址18包括标识符(tag)、组索引和偏移。高速缓存存储器14还可包括路径零(way0)22、路径一(way1)24和多路器(multiplexer)30、32和34。路径零可包括TAG0(标识符0),而路径一可包括TAG1(标识符1),从而各个路径可与它们的相应标识符结构适当地连接。图1的视图代表了在一个示例实施例中两路径联合的高速缓存存储器系统10可容易地包含对该结构的变更和替换。注意,图1还包括多个位结构和大小,提供它们仅作为与高速缓存存储器14相关的一些可能结构的示例。这种代表是任意的,并因此应该解释成是任意的。
系统10操作以实现去除多余的高速缓存标识符和高速缓存路径访问(way access)从而减少能耗的技术。系统10可在存储器地址缓冲器(MAB)中保持少量的最近最多使用(MRU,most recently used)地址,并在存在MAB命中的情况下,删除多余的标识符和路径访问。由于该方法只在MAB中保持标识符和组索引值,因此能量和区域开销(areaoverhead)相对较小即使对于具有大量条目的MAB也是如此。另外,该方法并不会牺牲性能在操作期间,循环时间和所执行的循环数量都不会增加。因此,在MAB中存储有标识符值和组索引值,而不是存储器地址值。标识符条目的数目和组索引条目的数目可以不同。这有助于减少MAB的区域而不牺牲MAB的命中率。此外,因为MAB访问可与地址计算并行地进行,所以可使延迟开销为零(zero-delay overhead)。
处理器12可包括在任何合适的结构中,另外其包括以任意合适形式(例如,软件、硬件等)具体实现的算法。例如,处理器12可以是微处理器并且可以是简单的集成芯片、特定用途集成电路(ASIC)、现场可编程门阵列(FPGA)、或者任何其它适当的处理对象、装置或部件的一部分。地址总线和数据总线是能够传送数据(例如,二进制数据)的导线。可选地,可由其它任何适当的、便于数据传播的技术(例如,光辐射、激光技术等)来替换这种导线。
高速缓存存储器14是可用于保持可以由处理器12访问的信息的存储元件。高速缓存存储器14可以是随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、快速循环RAM(FCRAM)、静态RAM(SRAM)或者任何其它合适的可便于这种存储操作的物体。在其它实施例中,高速缓存存储器14可以被能够与这里论述的方式相似的方式与处理器12连接的另一处理器或软件来替换。
应注意,为了讲授和讨论的目的,提供一些关于本发明操作方式的背景概述是有益的。下面的基本信息描述了本发明可以解决的一个问题。该背景信息可以视为可正确地解释本发明的基础。该信息仅是为了解释目的而提供的,因此不应理解为以任何方式限制本发明及其潜在应用的宽广范围。
芯片上型高速缓存存储器(on-chip cache memory)是处理器(尤其是微处理器)最耗能的部件之一。通常有两种类型的高速缓存存储器指令高速缓存(I高速缓存)和数据高速缓存(D高速缓存)。在给定的高速缓存存储器中,有多个“路径”。基于数据的地址,数据可存储在高速缓存存储器中对应于给定地址的多个位置中的任一个处。例如,如果有两个路径,则数据可设置在任一路径中。图1表示包括两个路径22和24的结构。存储器地址可用作行索引。基于该存储器地址,可选择给定行。因此,数据可以包括在给定路径中的给定行中。
通常存在用于各个路径并用于存储在高速缓存存储器14中的各个数据段的标识符。存储器地址的标识符可以与路径零和路径一的标识符进行比较。如果存在匹配,则这表明该数据段存在于高速缓存存储器14中的情况。如果不存在匹配,则存在缓存缺失(cache miss)从而应查阅主存储器(未示出)以检索数据。
每次访问高速缓存存储器14都消耗能量和电能。因此,上述比较使处理系统产生负担。如果可以使该访问处理最少化,则可以减少能耗。应注意,就实际而言,如果高速缓存存储器14中的给定位置被访问了,则将来也将接着对其进行访问。因此,通过跟踪存储器访问,可开发一有力的工具以记录先前访问过的访问地址。可使用表(也就是MAB)来存储这种信息。
图2的简化示意图示出了与图1的系统10相关的各种示例路径以及存储器地址缓冲器。图2表示这样的情况,其中在MAB 38中存储有少量最近最多使用(MRU)地址和目标高速缓存路径编号。如果存在MAB命中,则不相关的高速缓存标识符存储器和不需要的高速缓存路径被无效。
考虑与图2相关的解释性的示例。如果访问了存储在路径一中的地址2,则该信息可记录在MAB 38中。MAB 38表示保持这种信息的存储表。可以以这种方式存储所访问的地址(包括它们的相应路径和/或行)。在后续的任务中,考虑试图再次访问地址2的情况。相应地,查阅MAB 38,确定出该地址先前已经被访问过。因此,对于该地址存在高速缓存命中。因此,可确定该数据段包含在路径一24中。在执行该查阅功能时,避免了标识符比较。另外,该方法允许断开路径零22的读出放大器(senseamplifier)。因此,通过识别包括所期望数据段的路径,可将其它路径无效。这节省了进行标识符比较和接通所有路径以识别数据段的位置所需的功率。在MAB 38中的数据可在任何合适的时间适当地更新。如果在高速缓存存储器14中一个地址被另一地址替换,则MAB 38必须更新以反映该情况。
在一个实施例中,可以为MAB 38配置实现本文所述的功能的软件。可选地,可对任何合适的硬件、部件、装置、ASIC、FPGA、ROM元件、RAM元件、EPROM、EEPROM、算法、元件或可操作的对象提供这种增加或提高,以执行这些操作。应注意,这种(MAB)功能性可设置在处理器12中或者设置在处理器12的外部,以允许在系统10的任何适当的位置由MAB 38实现适当的存储。
应注意,与用于D高速缓存存储器的MAB不同,用于指令高速缓存存储器的MAB 38的输入可以为如下三种类型中的一种1)存储在连接寄存器中的地址,2)基地址(即,当前程序计数器地址)和偏移值(即,分支偏移),以及3)当前程序计数器地址及其跨距(stride)。在高速缓存间行连续流(inter-cache-line sequential flow)的情况下,当前程序计数器地址和程序计数器的跨距可选择作为MAB 38的输入。该跨距可作为偏移值处理。如果当前操作为“分支(或跳转)到连接目标”,则连接寄存器中的地址可选择为MAB 38的输入。另外,基地址和偏移可用于数据高速缓存。
应注意,由于通过用于地址生成的加法器并行地访问MAB 38,所以通常没有延迟开销。另外,该方法并不需要修改高速缓存存储器结构。这是尤为有利的,因为可使用具有先前设计高速缓存存储器的处理器芯或者由不同销售者提供的其它处理器。因此,系统10实现了显著地减少了与高速缓存存储器14相关的比较活动。因为由存储器地址缓冲器来查阅适当的路径,所以可以使特定路径无效或不可用。最少的比较和最少的路径活动通常可减少能耗并减轻高速缓存存储器14的损耗。因此,这种方法通常减少了高速缓存储存器活动,增加了系统性能,并甚至可用于适应增加的带宽。
应注意,MAB 38具有两种条目1)标识符(18位)和cflag(2位);以及2)组索引(9位)。2位的cflag可用于存储14位加法器的进位和偏移值符号。如果标识符的条目数为n1,并且组索引的条目数为n2,则MAB 38可存储关于n1×n2个地址的信息。例如,2×8个条目的MAB可存储关于16个地址的信息。对于每一地址,可有表示该信息是否有效的标志。对应于标识符条目i和组索引条目j的标志可用vflag[i][j]表示。可使用任何适当的协议,例如使用最近最少使用(LRU,least recently used)原则来更新MAB条目。
图3是可包括在图1系统10中的几种电路50和60的示例结构的简化框图。应注意,如这里详细描述的,高速缓存存储器14可将偏移项(即,偏移地址或偏移值)添加到基地址上。这两个对象反映了两个指令字段,从而这种要素可以由项62和64来反映。这两项一起提供了目标地址。因此,可将两个数相加以生成该目标地址。MAB 38可计算标识符和组索引参数以处理该情况。这些可用于检测MAB命中。
结合图2的详细描述来考虑图1中所述的2路径设定联合高速缓存。如果地址1存储在TAG0中,则在对应于该地址1的MAB条目中路径数位将为0。同样,对应于地址2、地址3和地址4的路径数将分别为1、0和0。当有MAB命中时,只激活由路径数位指定的单个路径,而其它路径及其相应的标识符存储器保持未被激活。这种技术可将多余的标识符访问数量减少70%-90%。不幸的是,在多数处理器中,生成存储器地址的单元在关键路径上。因此,在生成存储器地址之后访问MAB 38会增加循环时间。
这种技术基于这样的观点目标地址是基地址和偏移的和,通常取很少的值。另外,这些值通常较小。因此,可通过仅保持少量的最近最多使用的标识符来提高MAB 38的命中率。例如,假设标识符存储器的位宽、高速缓存中的组数、以及高速缓存行的大小分别为18、512和32字节。组索引和偏移字段的宽度将分别为9和5位。由于多数偏移值小于214,因此可以在不生成地址的情况下容易地计算标识符值。这可通过检查基地址的高18位、偏移的符号扩展(sign-extension)以及14位加法器的进位(carry bit)来实现,该加法器将基地址的低14位和偏移相加。因此,所添加的电路的延迟是14位加法器的延迟与访问组索引表的延迟之和。该延迟通常小于用于计算地址的32位加法器的延迟。因此,这种技术(如这里所述)并不带来任何延迟代价。应注意,如果偏移值大于或等于214或小于-214,则会有MAB缺失,但是发生该缺失的机会通常小于1%。
考虑另一示例,其中存在有对应于标识符值x和组索引值y的地址。根据对x和y的命中或缺失,有四种不同的可能。可能性一命中了x和y两者。在这种情况下,对应于(x,y)的地址在所述表中。假设i和j分别表示x和y的条目号,则将vflag[i][j]设为1。可能性二对于x缺失而命中了y。如果j表示y的条目号,x替换MAB 38中的条目i,则vflag[i][j]必须设为1,而其它vflag[i][*]设为0。可能性三命中x而对于y缺失。假设i表示x的条目号,且y替换MAB 38中的条目j,则将vflag[i][j]设为1,而其它vflag[*][j]设为0。可能性四最后,对于x和y都缺失。如果x和y替换MAB 38中的条目i和条目j,则将vflag[i][j]设为1,而将其它vflag[i][*]和vflag[*][j]设为0。
为了保持MAB 38与高速缓存存储器14一致,如果偏移的高18位不全为零并且也不全为一,则将对应于条目LRU的vflag设为0。只要MAB38中标识符条目数小于高速缓存存储器路径数,则这可确保MAB 38与高速缓存存储器之间的一致性。换言之,如果在MAB 38中的标识符和组索引对有效,则与它们相对应的数据将一直存在于高速缓存存储器14中。关键路径延迟是14位加法器延迟和9位比较器延迟之和,其小于目标处理器的时钟周期。
应注意,图3的情况反映了这样的情形,其中并不需要改变管线结构或高速缓存构造。这种构造易于获得作为可合成核心(RTL编码),并易于集成(适于基于软IP的设计)。另外,这种结构并不会有损性能。与地址生成并行地进行MAB查找,从而MAB 38的延迟小于32位ALU的延迟。在MAB缺失的情况下并不需要额外的循环。
前面的描述集中于MAB 38的操作。然而,如上所述,系统10考虑使用这些功能元件的任何适当的组合和排列以提供存储功能,并且这些技术可与其它技术适当地组合。在图3中示出的一些步骤可在适当的情况下改变或删除,并且也可在流程中添加附加步骤。这些改变可基于特定的通信系统构造或特定排列或结构,并且不会脱离本发明的范围或教导。应注意,前面的说明详细地描述了减少高速缓存存储器14的能量的技术,这是非常重要的。尽管这些技术是在特定布置和组合中描述的,但系统10预期高速缓存存储器14可使用这些操作的任何合适组合和顺序来实现能耗减少。
尽管已经参照图1至图3中所示的具体实施例详细地描述了本发明,但是应理解,在不脱离本发明的精神和范围的情况下可对其进行各种其它改变、替换和修改。例如,尽管已经参照包括在系统10内的多个元件描述了本发明,但是这些元件可重新布置或定位以适应任何合适的处理和通信结构。另外,在适当的情况下,上述元件中的任一个都可设置为相对于系统10或者相对于彼此分离的外部部件。本发明在这些元件的布置以及它们的内部元件方面具有极大的灵活性。可以在适当的情况下基于具体处理需要来设计这些结构。
对于本领域的技术人员可得知多种其它改变、替换、变动、变更和修改,并且本发明旨在将所有这些改变、替换、变动、变更和修改都包括在所附权利要求的范围内。为了有助于美国专利商标局(USPTO)以及关于该申请的任何专利的任何读者来理解所附权利要求,申请人希望注意的是,申请人(a)并不希望所附权利要求中的任一项(如在其申请日存在的一样)引用35U.S.C.部分112的第六段(6),除非在特定权利要求中具体使用词语“用于…的装置”或“用于…的步骤”;以及(b)并不希望通过说明书中的任何语句以在所附权利要求书中并未反映的任何方式限制本发明。
权利要求
1.一种用于减少高速缓存存储器的能量的方法,包括以下步骤为高速缓存存储器实现路径记忆,该路径记忆利用存储器地址缓冲元件,该存储器地址缓冲元件可操作以存储与先前访问过的地址相关的信息,其中可访问该存储器地址缓冲元件来减少在访问高速缓存存储器时的能耗;存储与多个数据段相关的多个条目,其中对于选出的一个或更多个所述条目,存在指向包括所需数据段的路径的地址字段;以及用与所述一个或更多个先前访问过的地址相关的一个或更多个标识符和一个或更多个组索引来替换所述一个或更多个先前访问过的地址。
2.根据权利要求1所述的方法,还包括查阅所述存储器地址缓冲元件,以确定所需数据段目前是否存在于所述高速缓存存储器中。
3.根据权利要求1所述的方法,还包括确定是否存在存储器地址缓冲元件命中,该命中反映了这样的情况,其中所需数据段存在于所述高速缓存存储器中;以及一旦识别出所选出的一个路径中包括所需数据段,则使所述路径中的一个或更多个无效。
4.根据权利要求1所述的方法,还包括通过用一个或更多个附加地址来替换所述高速缓存存储器中包括的一个或更多个先前访问过的地址,来更新存储器地址缓冲元件。
5.根据权利要求1所述的方法,还包括通过使用基地址和偏移项而生成与所需数据段相关的目标地址,利用该目标地址可以与所述存储器地址缓冲元件沟通以查找所需数据段。
6.根据权利要求1所述的方法,还包括在一处理器上实现所述高速缓存存储器,该处理器可操作以执行一个或更多个电子任务并从所述高速缓存存储器请求一个或更多个所述数据段。
7.一种用于减少高速缓存存储器的能量的系统,其包括用于为高速缓存存储器实现路径记忆的装置;利用存储器地址缓冲元件的装置,该存储器地址缓冲元件可操作以存储与先前访问过的地址相关的信息,其中可访问该存储器地址缓冲元件来减少访问高速缓存存储器时的能耗;用于存储与多个数据段相关的多个条目的装置,其中对于选出的一个或更多个条目,有指示包括所需数据段的路径的地址字段;以及装置,用于利用与所述一个或更多个先前访问过的地址相关的一个或更多个标识符和一个或更多个组索引来替换所述一个或更多个先前访问过的地址。
8.根据权利要求7所述的系统,还包括用于查阅所述存储器地址缓冲元件,以确定所需数据段目前是否存在于所述高速缓存存储器中的装置。
9.根据权利要求7所述的系统,还包括用于确定是否存在存储器地址缓冲元件命中的装置,该命中反映了这样的情况,其中所需数据段存在于所述高速缓存存储器中;以及一旦识别出所选出的一个路径中包括所需数据段,则使所述路径中的一个或更多个路径无效。
10.根据权利要求7所述的系统,还包括装置,通过用一个或更多个附加地址来替换包括在所述高速缓存存储器中的一个或更多个先前访问过的地址,来更新存储器地址缓冲元件。
11.根据权利要求7所述的系统,还包括装置,通过使用基地址和偏移项而生成与所需数据段相关的目标地址,利用该目标地址可以与所述存储器地址缓冲元件沟通以查找所需数据段。
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所述的设备,其中,可提供一个或更多个标志,所述标志与一个或更多个先前访问过的地址相对应,并且识别一个或更多个所述数据段是否有效。
全文摘要
提供了一种用于路径记忆设备,其可利用存储器地址缓冲元件,该存储器地址缓冲元件可操作以存储与先前访问过的地址相关的信息。可访问该存储器地址缓冲元件以减少在访问高速缓存存储器时的能耗。可在该存储器地址缓冲元件中存储与多个数据段相关的多个条目。对于所选的一个或更多个所述条目,有指示包括所需数据段的路径的地址字段。该存储器地址缓冲元件包括一个或更多个路径,所述路径可存储一个或更多个可从所述高速缓存存储器查找的数据段。一个或更多个先前访问过的地址可以用与一个或更多个先前访问过的地址相关的一个或更多个标识符和一个或更多个组索引来替换。
文档编号G06F12/08GK1763730SQ20051010799
公开日2006年4月26日 申请日期2005年9月30日 优先权日2004年10月22日
发明者石原亨, 法尔扎·法拉赫 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1