CN1763730A - 用于在处理环境中提供路径记忆的系统和方法 - Google Patents
用于在处理环境中提供路径记忆的系统和方法 Download PDFInfo
- Publication number
- CN1763730A CN1763730A CNA2005101079952A CN200510107995A CN1763730A CN 1763730 A CN1763730 A CN 1763730A CN A2005101079952 A CNA2005101079952 A CN A2005101079952A CN 200510107995 A CN200510107995 A CN 200510107995A CN 1763730 A CN1763730 A CN 1763730A
- Authority
- CN
- China
- Prior art keywords
- address
- buffer element
- cache memory
- path
- address buffer
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0864—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
- G06F2212/6082—Way prediction in set-associative cache
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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
提供了一种用于路径记忆设备,其可利用存储器地址缓冲元件,该存储器地址缓冲元件可操作以存储与先前访问过的地址相关的信息。可访问该存储器地址缓冲元件以减少在访问高速缓存存储器时的能耗。可在该存储器地址缓冲元件中存储与多个数据段相关的多个条目。对于所选的一个或更多个所述条目,有指示包括所需数据段的路径的地址字段。该存储器地址缓冲元件包括一个或更多个路径,所述路径可存储一个或更多个可从所述高速缓存存储器查找的数据段。一个或更多个先前访问过的地址可以用与一个或更多个先前访问过的地址相关的一个或更多个标识符和一个或更多个组索引来替换。
Description
技术领域
本发明一般涉及电路设计,更具体地,涉及在处理环境中提供路径记忆(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)并不希望通过说明书中的任何语句以在所附权利要求书中并未反映的任何方式限制本发明。
Claims (25)
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所述的设备,其中,可提供一个或更多个标志,所述标志与一个或更多个先前访问过的地址相对应,并且识别一个或更多个所述数据段是否有效。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/970,882 US20060090034A1 (en) | 2004-10-22 | 2004-10-22 | System and method for providing a way memoization in a processing environment |
US10/970,882 | 2004-10-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1763730A true CN1763730A (zh) | 2006-04-26 |
CN100367242C CN100367242C (zh) | 2008-02-06 |
Family
ID=36207336
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101079952A Expired - Fee Related CN100367242C (zh) | 2004-10-22 | 2005-09-30 | 用于在处理环境中提供路径记忆的系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20060090034A1 (zh) |
JP (1) | JP2006120163A (zh) |
CN (1) | CN100367242C (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100418331C (zh) * | 2006-03-03 | 2008-09-10 | 清华大学 | 基于网络处理器的路由查找结果缓存方法 |
WO2008128476A1 (en) * | 2007-04-18 | 2008-10-30 | Mediatek Inc. | Data access tracing |
CN101523359B (zh) * | 2006-08-18 | 2011-06-22 | Mips技术公司 | 具有减小数据高速缓存访问功率的微标签阵列的处理器及其应用 |
CN101387986B (zh) * | 2007-09-13 | 2011-07-27 | 索尼株式会社 | 集成器件及其布置方法 |
CN101533371B (zh) * | 2008-03-12 | 2012-12-12 | Arm有限公司 | 使用微标签进行高速缓存存取的装置和方法 |
WO2016192045A1 (zh) * | 2015-06-02 | 2016-12-08 | 华为技术有限公司 | 存储器的访问系统及方法 |
CN109952567A (zh) * | 2016-09-08 | 2019-06-28 | 优普梅姆公司 | 用于旁通高级dram存储器控制器的内部高速缓存的方法和装置 |
CN113138657A (zh) * | 2020-01-17 | 2021-07-20 | 炬芯科技股份有限公司 | 一种降低cache访问功耗的方法和电路 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2836407B1 (fr) * | 2002-02-28 | 2004-05-14 | Thermagen | Procede de fabrication d'emballage metallique |
GB2456636B (en) * | 2006-08-18 | 2011-10-26 | Mips Tech Inc | Processor having a micro tag array that reduces data cache access power and applications thereof |
US7650465B2 (en) * | 2006-08-18 | 2010-01-19 | Mips Technologies, Inc. | Micro tag array having way selection bits for reducing data cache access power |
US7594079B2 (en) | 2006-09-29 | 2009-09-22 | Mips Technologies, Inc. | Data cache virtual hint way prediction, and applications thereof |
US20080082793A1 (en) * | 2006-09-29 | 2008-04-03 | Mips Technologies, Inc. | Detection and prevention of write-after-write hazards, and applications thereof |
US9946547B2 (en) | 2006-09-29 | 2018-04-17 | Arm Finance Overseas Limited | Load/store unit for a processor, and applications thereof |
US8108848B2 (en) * | 2007-08-15 | 2012-01-31 | Microsoft Corporation | Automatic and transparent memoization |
US7827356B2 (en) * | 2007-09-10 | 2010-11-02 | Qualcomm Incorporated | System and method of using an N-way cache |
JP4635063B2 (ja) * | 2008-03-11 | 2011-02-16 | 株式会社東芝 | キャッシュメモリ制御回路及びプロセッサ |
JP5142868B2 (ja) * | 2008-07-17 | 2013-02-13 | 株式会社東芝 | キャッシュメモリ制御回路及びプロセッサ |
US20100217937A1 (en) * | 2009-02-20 | 2010-08-26 | Arm Limited | Data processing apparatus and method |
JP2011065503A (ja) * | 2009-09-18 | 2011-03-31 | Renesas Electronics Corp | キャッシュメモリシステム及びキャッシュメモリのway予測の制御方法 |
US9262416B2 (en) * | 2012-11-08 | 2016-02-16 | Microsoft Technology Licensing, Llc | Purity analysis using white list/black list analysis |
US8752021B2 (en) | 2012-11-08 | 2014-06-10 | Concurix Corporation | Input vector analysis for memoization estimation |
US8752034B2 (en) | 2012-11-08 | 2014-06-10 | Concurix Corporation | Memoization configuration file consumed at runtime |
US9176856B2 (en) | 2013-07-08 | 2015-11-03 | Arm Limited | Data store and method of allocating data to the data store |
GR20130100707A (el) | 2013-12-23 | 2015-07-31 | Arm Limited, | Μεταφραση διευθυνσης σε μια συσκευη επεξεργασιας δεδομενων |
US10073787B2 (en) * | 2016-04-18 | 2018-09-11 | Via Alliance Semiconductor Co., Ltd. | Dynamic powering of cache memory by ways within multiple set groups based on utilization trends |
KR20210097345A (ko) | 2020-01-30 | 2021-08-09 | 삼성전자주식회사 | 캐시 메모리 장치, 이를 포함하는 시스템 및 캐시 메모리 장치의 동작 방법 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2176918B (en) * | 1985-06-13 | 1989-11-01 | Intel Corp | Memory management for microprocessor system |
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 |
US5860151A (en) * | 1995-12-07 | 1999-01-12 | Wisconsin Alumni Research Foundation | Data cache fast address calculation system and method |
US5943687A (en) * | 1997-03-14 | 1999-08-24 | Telefonakiebolaget Lm Ericsson | Penalty-based cache storage and replacement techniques |
JP2000099399A (ja) * | 1998-09-19 | 2000-04-07 | Apriori Micro Systems:Kk | ウェイ予測型キャッシュメモリとそのアクセス方法 |
US6393544B1 (en) * | 1999-10-31 | 2002-05-21 | Institute For The Development Of Emerging Architectures, L.L.C. | Method and apparatus for calculating a page table index from a virtual address |
US6546462B1 (en) * | 1999-12-30 | 2003-04-08 | Intel Corporation | CLFLUSH micro-architectural implementation method and system |
US6643739B2 (en) * | 2001-03-13 | 2003-11-04 | Koninklijke Philips Electronics N.V. | Cache way prediction based on instruction base register |
US6678792B2 (en) * | 2001-06-22 | 2004-01-13 | Koninklijke Philips Electronics N.V. | Fast and accurate cache way selection |
US6735682B2 (en) * | 2002-03-28 | 2004-05-11 | Intel Corporation | Apparatus and method for address calculation |
US6938126B2 (en) * | 2002-04-12 | 2005-08-30 | Intel Corporation | Cache-line reuse-buffer |
US6976126B2 (en) * | 2003-03-11 | 2005-12-13 | Arm Limited | Accessing data values in a cache |
US6961276B2 (en) * | 2003-09-17 | 2005-11-01 | International Business Machines Corporation | Random access memory having an adaptable latency |
US7296134B2 (en) * | 2004-02-11 | 2007-11-13 | Infineon Technologies Ag | Fast unaligned memory access system and method |
US7461211B2 (en) * | 2004-08-17 | 2008-12-02 | Nvidia Corporation | System, apparatus and method for generating nonsequential predictions to access a memory |
US7430642B2 (en) * | 2005-06-10 | 2008-09-30 | Freescale Semiconductor, Inc. | System and method for unified cache access using sequential instruction information |
US7461208B1 (en) * | 2005-06-16 | 2008-12-02 | Sun Microsystems, Inc. | Circuitry and method for accessing an associative cache with parallel determination of data and data availability |
-
2004
- 2004-10-22 US US10/970,882 patent/US20060090034A1/en not_active Abandoned
-
2005
- 2005-09-30 CN CNB2005101079952A patent/CN100367242C/zh not_active Expired - Fee Related
- 2005-10-21 JP JP2005307503A patent/JP2006120163A/ja active Pending
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100418331C (zh) * | 2006-03-03 | 2008-09-10 | 清华大学 | 基于网络处理器的路由查找结果缓存方法 |
CN101523359B (zh) * | 2006-08-18 | 2011-06-22 | Mips技术公司 | 具有减小数据高速缓存访问功率的微标签阵列的处理器及其应用 |
WO2008128476A1 (en) * | 2007-04-18 | 2008-10-30 | Mediatek Inc. | Data access tracing |
CN101387986B (zh) * | 2007-09-13 | 2011-07-27 | 索尼株式会社 | 集成器件及其布置方法 |
CN101533371B (zh) * | 2008-03-12 | 2012-12-12 | Arm有限公司 | 使用微标签进行高速缓存存取的装置和方法 |
WO2016192045A1 (zh) * | 2015-06-02 | 2016-12-08 | 华为技术有限公司 | 存储器的访问系统及方法 |
CN107710172A (zh) * | 2015-06-02 | 2018-02-16 | 华为技术有限公司 | 存储器的访问系统及方法 |
CN107710172B (zh) * | 2015-06-02 | 2020-07-07 | 华为技术有限公司 | 存储器的访问系统及方法 |
US10901640B2 (en) | 2015-06-02 | 2021-01-26 | Huawei Technologies Co., Ltd. | Memory access system and method |
CN109952567A (zh) * | 2016-09-08 | 2019-06-28 | 优普梅姆公司 | 用于旁通高级dram存储器控制器的内部高速缓存的方法和装置 |
CN109952567B (zh) * | 2016-09-08 | 2023-08-22 | 优普梅姆公司 | 用于旁通高级dram存储器控制器的内部高速缓存的方法和装置 |
CN113138657A (zh) * | 2020-01-17 | 2021-07-20 | 炬芯科技股份有限公司 | 一种降低cache访问功耗的方法和电路 |
Also Published As
Publication number | Publication date |
---|---|
JP2006120163A (ja) | 2006-05-11 |
US20060090034A1 (en) | 2006-04-27 |
CN100367242C (zh) | 2008-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100367242C (zh) | 用于在处理环境中提供路径记忆的系统和方法 | |
US8370575B2 (en) | Optimized software cache lookup for SIMD architectures | |
US9053049B2 (en) | Translation management instructions for updating address translation data structures in remote processing nodes | |
Chen et al. | C-pack: A high-performance microprocessor cache compression algorithm | |
US7890699B2 (en) | Processing unit incorporating L1 cache bypass | |
CN102498477B (zh) | Tlb预取 | |
CN100573477C (zh) | 管理锁定的高速缓冲存储器中的组替换的系统和方法 | |
US8195884B2 (en) | Network on chip with caching restrictions for pages of computer memory | |
CN105224476A (zh) | 高速缓存路预测 | |
CN101689146B (zh) | 分层的高速缓存标签架构 | |
US5548739A (en) | Method and apparatus for rapidly retrieving data from a physically addressed data storage structure using address page crossing predictive annotations | |
CN101911025A (zh) | 带有取回保护的动态地址转换 | |
US20090217004A1 (en) | Cache with prefetch | |
CN102057442A (zh) | 在数据处理系统中用ecc选择性地执行单周期写操作 | |
CN105993000B (zh) | 用于浮点寄存器混叠的处理器和方法 | |
US20230376420A1 (en) | Method And Apparatus For a Page-Local Delta-Based Prefetcher | |
US20200257534A1 (en) | Hierarchical metadata predictor with periodic updates | |
CN101390047A (zh) | 数据处理系统和用于预取数据和/或指令的方法 | |
US20090129138A1 (en) | Semiconductor Integrated Circuit | |
CN112579175A (zh) | 分支预测方法、分支预测装置和处理器核 | |
KR20040063793A (ko) | 로우-레벨 캐시를 포함한 액세스 촉진용 리버스 디렉토리 | |
TW202219745A (zh) | 微處理器和預取指調整方法 | |
US8386712B2 (en) | Structure for supporting simultaneous storage of trace and standard cache lines | |
CN101419543B (zh) | 预测高速寄存器的存取位置的方法及系统 | |
US12111765B2 (en) | Prefetch circuit for cache memory |
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: 20080206 Termination date: 20120930 |