CN103383672A - 高速缓存控制以减少事务回滚 - Google Patents
高速缓存控制以减少事务回滚 Download PDFInfo
- Publication number
- CN103383672A CN103383672A CN201310145331XA CN201310145331A CN103383672A CN 103383672 A CN103383672 A CN 103383672A CN 201310145331X A CN201310145331X A CN 201310145331XA CN 201310145331 A CN201310145331 A CN 201310145331A CN 103383672 A CN103383672 A CN 103383672A
- Authority
- CN
- China
- Prior art keywords
- cache
- level
- cache line
- priority
- speed
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/122—Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
- G06F9/467—Transactional memory
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
背景技术
微处理器可采用基于事务的处理,其中操作(例如算术、逻辑型、存储器、分支、浮点等)被组织为不可分的集合,称为事务。每个事务作为完整单位在由微处理器所处理中成功或失败。换句话说,微处理器确保在事务中的全部操作都没有错误地完成,或它们中没有一个完成。如果完成了操作中的一些但当尝试其他操作时发生错误,那么微处理器“回滚”事务的全部操作(包括成功的那些),从而擦除事务的全部痕迹并将系统还原到微处理器从其开始处理事务的一致的、已知的状态。如果事务的全部操作都成功完成,那么事务由微处理器所提交,全部改变成为永久的,并且已知状态得到更新。
事务处理提防可能留下部分完成的事务的硬件和软件错误,该错误可导致未知的、不一致的状态。例如,如果不包含在事务中的代理(例如处理核心、直接存储器访问(DMA)侦听存储器控制器、指令获取单元等)尝试访问或修改包含在事务中的数据,那么事务处理系统保证回滚在任意未提交的(即,未完全处理的)事务中的全部操作,并还原一致的状态。通过跟踪微处理器的已知的和一致的状态以及如果事务不可提交则回滚到这种状态,可防止微处理器中的数据完整性的损坏并可增加微处理器的操作稳定性。
虽然回滚事务会防止数据损坏,但仍存在与回滚相关联的性能代价。例如,相对于成功提交的事务,在从回滚恢复的期间为正在处理的附加的操作付出代价。具体地,对于大的或长时间运行的事务,性能代价可能很大。
附图说明
图1示出了根据本公开的计算设备的微处理器的实施例。
图2示出了用来表征高速缓存中的高速缓存行的替换优先级级别的示范性列表。
图3示意性地示出了由高速缓存所使用的树状LRU高速缓存行替换方案。
图4示出了用于控制高速缓存以减少事务回滚的方法的实施例。
具体实施方式
本讨论阐述了用于以减少事务被回滚的可能性的方式来控制微处理器的高速缓存的新颖的系统和方法。更具体地,本讨论涉及用于替换高速缓存中的高速缓存行的多级别方案。
在一个示例中,基于其替换引起事务回滚的可能性来区分高速缓存行的优先次序用于替换。具体地,对高速缓存中的每个高速缓存行指派从多个替换优先级级别中所选择的替换优先级(replacement priority)级别。例如,在包容型高速缓存中,可对在较低级别的高速缓存中所复制的高速缓存行指派低于无效高速缓存行的替换优先级级别,因为如果替换了在较低级别的高速缓存中所复制的高速缓存行,那么也将必须替换在较低级别的高速缓存中的相应高速缓存行。由于这种替换影响多个高速缓存,所以存在较高的对引起事务回滚的操作造成干扰的可能性。相比之下,无效高速缓存行可被替换而不影响另一级别的存储器。在该示例中,具有较高替换优先级级别的高速缓存行的替换相比具有较低替换优先级级别的高速缓存行的替换将具有较低的引起事务回滚的可能性。
在该方案中,选择具有最高可用替换优先级级别的、在高速缓存中(或在集合关联的(set-associative)高速缓存的情况下在高速缓存的高速缓存行集合中)的最近最少使用(LRU)高速缓存行。进一步地,根据替换方案来替换所选择的具有最高可用替换优先级级别的最近最少使用高速缓存行。在一个示例中,采用树状LRU高速缓存行替换方案来替换高速缓存中的所选择的高速缓存行。注意,最高可用替换优先级级别表示如果在高速缓存(或高速缓存中的指定高速缓存行集合)中没有高速缓存行由最高替换优先级级别所表征,那么搜索具有下一个最高替换优先级级别的LRU高速缓存行,并贯穿替换优先级级别来以此类推,直到选择具有最高可用替换优先级级别的LRU高速缓存行。通过采用除基元替换方法(例如树状LRU)之外还结合基于替换优先级级别来选择高速缓存行的多级别控制计划,相对于仅替换最近最少使用高速缓存行的方法,可减少事务被回滚的可能性。因此,相对于当决定高速缓存行替换时不考虑事务回滚代价的高速缓存控制方法来说,可增加微处理器的处理性能。
图1示意性地描绘了可结合本文所描述的系统和方法所采用的微处理系统100。微处理器100可以是基于事务的微处理器。微处理系统100不同程度地包括存储器层级102和/或与存储器层级102通信,该存储器层级102包括级别1(L1)数据高速缓存104、L1指令高速缓存106、级别2(L2)高速缓存108、级别3(L3)高速缓存110、主存储器114(例如一个或多个DRAM芯片)、二级存储116(例如磁和/或光存储单元)和/或三级存储118(例如磁带群)。典型地,L1-L3高速缓存在处理器裸片(die)上实现,并且更高级别的存储器/存储部件在片外(off-die)分开实现。通常,较低级别的存储器可能较小较快并且较高级别的存储器可能较大较慢。存储器控制器112操纵协议并提供主存储器114所要求的并且典型地调度存储器访问的信号接口。存储器控制器112可在处理器裸片上或在分开的裸片上实现。
应予以理解的是,以访问时间和容量递增的次序列出存储器/存储部件,尽管存在可能的例外。在一些实施例中,可从微处理器中省略这些部件的一个或多个。应予以理解的是,上文所提供的存储器层级是非限制性的并且可使用其他存储器层级,而不脱离本公开的范围。所描绘的存储器层级是示例性的例示,并且应予以理解的是可采用其他层级而不脱离本公开的精神。
在一些实施例中,至少一些不同级别的高速缓存(例如L1、L2、L3)可向至少一个其他不同级别的高速缓存报告高速缓存行的逐出和/或替换。换句话说,不同级别的高速缓存不会将行默默终止。在一个特定示例中,L1数据高速缓存104和L1指令高速缓存106向L2高速缓存行108报告高速缓存行的逐出和/或替换。该示例配置可特定适合于本文所描述的多级别替换方法,因为L2高速缓存108可基于L1高速缓存的当前内容做出替换决定。
另一方面,如果L1高速缓存正在分配高速缓存行并且当其终止高速缓存行时未向L2高速缓存报告,则最后每个高速缓存行将被声明由L1高速缓存所拥有。这种高速缓存行所有权声明将引起全部高速缓存行被表征为具有相同的优先级级别。如果全部高速缓存行都具有相同的替换优先级级别,那么多级别替换方案由于全部优先级都是相同的而瓦解为标准LRU替换方案,并且减少了防止回滚代价。
在一些实施例中,至少一些不同级别的高速缓存是包容型高速缓存,其分配高速缓存行用于来自至少一个较低级别的高速缓存的数据的复制。在一个示例中,L2高速缓存108是统一高速缓存,其是分配高速缓存行用于来自L1数据高速缓存104和L1指令高速缓存106的数据的复制的包容型高速缓存。该示例配置可特定适合于本文所描述的多级别替换方法,因为L2高速缓存108可基于L1高速缓存的当前内容做出替换决定。
在一些实施例中,微处理系统100是包括获取逻辑130、解码逻辑132、执行逻辑134、存储(mem)逻辑136以及回写逻辑138的管线化的处理器。获取逻辑130从主存储器和L2-L3高速缓存所支持的L1指令高速缓存中检索指令。解码逻辑132解码所获取的指令,例如通过解析操作码、操作数以及寻址模式。一旦经解析,指令随后由执行逻辑134所执行。对于产生结果的操作(例如与在执行程序中实施分支到另一个位置的那些相对),回写逻辑138将结果写到适当的位置,诸如处理器寄存器。在加载/存储架构中,存储逻辑136实施加载和存储操作,诸如将操作数从主存储器加载到处理器寄存器中。
应予以理解的是,上文5个阶段某种程度上特定于并包括在典型的精简指令集计算(RISC)实现方案中。更通常地,微处理器可包括获取、解码以及执行逻辑,而存储和回写功能由执行逻辑来实行。本公开同样适用于这些以及其他微处理器实现方案。
具体转到L2高速缓存108,本讨论集中于控制L2高速缓存108的操作,并且更具体地,集中于用于替换L2高速缓存108中的高速缓存行的多级别替换方案。L2高速缓存108包括分为多个高速缓存行的存储器空间。在一个特定示例中,每个高速缓存行是六十四字节。L2高速缓存行是集合关联的高速缓存并且高速缓存行逻辑上分为多个高速缓存行集合。应理解的是,L2高速缓存可包括任意合适数目的高速缓存行集合,高速缓存行中的每一个可以是任意合适的大小,并且每个高速缓存行中的若干字节可以不同,而不脱离本公开的范围。
高速缓存行集合中的高速缓存行的数目可以定义主存储器中的任意特定位置可映射于其的L2高速缓存108中的位置的数目。在一个示例中,L2高速缓存包括十六路的、集合关联的阵列,其中高速缓存行的每个集合是关联的并且包括其中可存储数据的十六个路。应予以理解的是,L2高速缓存108在高速缓存行集合中可包括任意合适数目的路或数据位置(例如二路的、八路的、全关联的等等),而不脱离本公开的范围。
L2高速缓存108的每个高速缓存行被分为提供不同信息的不同位字段。具体地,L2高速缓存108的每个高速缓存行包括最近最少使用(LRU)位、包括替换优先级级别位的标签位、以及数据位。LRU位指示高速缓存行集合中的最近最少使用(或访问)路。标签位标识其中存储与地址相对应的指令的指定路。替换优先级位指示表征高速缓存行的替换优先级级别。数据位存储用于高速缓存行的数据。
高速缓存行中的每一个的不同位字段可组织为由高速缓存控制器128所控制的不同阵列。具体地,L2高速缓存108包括LRU阵列120、包括替换优先级位124的标签阵列122、以及数据阵列126。LRU阵列120包括用于L2高速缓存108中的每个高速缓存行集合的LRU位。标签阵列122包括用于L2高速缓存108中的每个高速缓存行的标签位以及用于L2高速缓存108中的每个高速缓存行的替换优先级位124。数据阵列126包括用于L2高速缓存108中的每个高速缓存行的数据位。
应予以理解的是,替换优先级位124可存储在高速缓存行的任意适合的字段中或在不同的位置中而不脱离本公开的范围。进一步地,注意,不同级别的高速缓存和其他存储器/数据存储部件以简化形式示出并可包括替代或附加的元件。例如,L2高速缓存可包括替代或附加的阵列。
高速缓存控制器128配置为控制L2高速缓存108中的高速缓存行的替换。在一个示例中,高速缓存控制器128配置为对高速缓存中的每个高速缓存行指派从多个替换优先级级别中所选择的替换优先级级别。进一步地,高速缓存控制器128可动态更新高速缓存行的替换优先级级别。例如,无论何时发生改变高速缓存状态的事件,均可在高速缓存索引中更新替换优先级级别。改变高速缓存状态的事件的非限制性示例包括对高速缓存行的新条目的分配、命中高速缓存行的读/写请求、对高速缓存行的回写、高速缓存行的逐出。注意,可基于与替换优先级级别相同类型的事件来更新LRU位。
虽然根据影响不同级别的高速缓存的可能性来区分替换优先级级别的优先次序,但应予以理解的是,在一些实施例中,可针对不同的操作特性来区分优先级级别的优先次序而不脱离本公开的范围。例如,替换优先级级别可指向优化操作速度、功率减少等。
高速缓存控制器128配置为选择在L2高速缓存108中具有最高可用替换优先级级别的多个高速缓存行的最近最少使用高速缓存行。注意,如果L2高速缓存是集合关联的高速缓存,那么高速缓存控制器128可配置为从L2高速缓存的指定高速缓存行集合中的多个高速缓存行中选择具有最高可用替换优先级级别的最近最少使用高速缓存行。例如,指定高速缓存行集合可包括这样的高速缓存行集合:其包括与要存储在L2高速缓存中的数据的地址相对应的标签位。可依据影响较低级别的高速缓存的可能性来区分多个替换优先级级别的优先次序。具体地,具有较高替换优先级级别的高速缓存行的替换相比具有较低替换优先级级别的高速缓存行的替换将具有较低的影响较低级别的高速缓存及引起事务回滚的可能性。注意,如果没有高速缓存行由特定替换优先级级别所表征,那么可从搜索中忽略该替换优先级级别并可针对LRU高速缓存行搜索下一个最高可用替换优先级级别。
在一个示例中,高速缓存控制器128配置为搜索具有最高替换优先级级别的全部高速缓存行并选择具有最高替换优先级级别的最近最少使用高速缓存行用于替换。如果没有高速缓存行由最高替换优先级级别所表征,那么高速缓存控制器128配置为搜索具有下一个最高替换优先级级别的全部高速缓存行并选择具有下一个最高替换优先级级别的最近最少使用高速缓存行用于替换。高速缓存控制器128配置为从最高替换优先级级别向下移动来搜索高速缓存行,直到找到具有最高可用替换优先级级别的LRU高速缓存行为止。进一步地,高速缓存控制器128配置为根据替换方案来替换所选择的具有最高可用替换优先级级别的LRU高速缓存行。
应予以理解的是,任意合适的高速缓存行替换方案均可与替换优先级级别选择相结合采用以形成多级别控制方法,而不脱离本公开的范围。在一个示例中,替换方案包括最佳最近最少使用高速缓存行替换方案。在这种实现方案中,每次使用高速缓存行均更新用于高速缓存中的全部其他高速缓存行的LRU位,并且替换高速缓存中的最近最少使用高速缓存行。在另一个示例中,替换方案包括伪最近最少使用高速缓存行替换方案,诸如树状最近最少使用高速缓存行替换方案。这种方案可用于具有高关联性的高速缓存,因为跟踪最佳LRU的实现方案成本过高。在这种替换方案中,相对于最佳LRU替换方案,可使用较少的位来跟踪高速缓存行集合中的LRU。在又一个示例中,可利用先入先出(FIFO)高速缓存行替换方案来替换所选择的具有最高替换优先级级别的高速缓存行。在又一个示例中,可利用随机替换方案来替换所选择的具有最高替换优先级级别的高速缓存行。
注意,本文所描述的多级别替换方案可应用到任意合适级别的高速缓存或其他存储器部件以减少因微处理器的事务回滚的可能性,而不脱离本公开的范围。
图2示出了用来表征高速缓存中的高速缓存行的替换优先级级别的示范性列表200。列表200包括从最高的1到最低的5排名的五个替换优先级级别。可依据影响较低级别的高速缓存的可能性来区分多个替换优先级级别的优先次序,其中具有较高替换优先级级别的高速缓存行的替换相比具有较低替换优先级级别的高速缓存行的替换将具有较低的影响较低级别的高速缓存及引起事务回滚的可能性。
第一(1)替换优先级级别包括无效高速缓存行。无效高速缓存行可包括这样的高速缓存行,其未由任意高速缓存所拥有或正在使用或其包括对任意高速缓存都无用的无效数据。第二(2)替换优先级级别包括挂起逐出的高速缓存行。在一个示例中,每个高速缓存行可包括标签字段中的挂起逐出(pending eviction)位以指示高速缓存行是否挂起逐出。第三(3)替换优先级级别包括未由另一个高速缓存所拥有的有效高速缓存行。换句话说,这些高速缓存行可包括有效信息,并可由L2高速缓存所拥有。第四(4)替换优先级级别包括由L1指令高速缓存106所拥有且未由L1数据高速缓存所拥有的高速缓存行。第五(5)替换优先级级别包括由L1数据高速缓存104所拥有的高速缓存行。如上文所讨论的,L2高速缓存可以是包容型的,并且因此分配高速缓存行用于L1指令高速缓存和L1数据高速缓存中的数据的复制。这些高速缓存行具有较低的优先级级别,因为这些高速缓存行的替换可能影响L1指令高速缓存和L1数据高速缓存的状态,这可导致事务回滚。
应予以理解的是,上文所描述的替换优先级级别仅是示例,可采用更多或更少的替换优先级级别而不脱离本公开的范围。例如,在处理管线的回写逻辑138中的加载/存储单元(未示出)可对L2高速缓存108提供附加的信息,使得可减少可被考虑用于替换的高速缓存行的数目。这种设计可能更加快速,但潜在地增加了微处理器设计的复杂性。
图3示意性地示出了作为本公开的多级别替换方案的一部分的、可由L2高速缓存所采用的树状LRU高速缓存行替换方案300。对十六个高速缓存行或路的高速缓存行集合应用树状LRU高速缓存行替换方案300。在一个示例中,高速缓存行集合是组成十六路的、集合关联的L2高速缓存的多个高速缓存行集合中的一个。进一步地,可基于高速缓存行集合中的高速缓存行的标签位来选择高速缓存中的高速缓存行集合作为用于高速缓存行替换的候选。树状LRU替换方案选择高速缓存行集合中的十六路中的一路用于替换。编码LRU[14:0]表示LRU树中的十六路的临时关系。编码中的每个条目可被指派0值或1值以指示树中节点的适当的临时关系,以确定哪些路是最近最少使用的。例如,具有值1的LRU[4]指示路1相比路0是最近最少使用的,并且具有值0的LRU[4]指示路0相比路1是最近最少使用的。
如上文所讨论的,在多级别替换方案中,对于每个替换优先级级别,可遍历LRU树以选择LRU路。然后越过较低优先级级别LRU路挑选最高可用替换优先级级别LRU路。在选择了最高替换优先级级别LRU路之后,更新LRU[14:0]编码以反映新的LRU次序。在一个特定示例中,如果选择路6作为具有最高替换优先级级别的LRU路,那么更新LRU[14:0]编码以反映在与路6相关联的节点之间的临时关系中的改变。具体地,通过以下方式更新LRU位:LRU[8]=1、LRU[6]=0、LRU[1]=0、以及LRU[0]=1。LRU[14:0]编码中的其余位不改变。
注意,LRU树替换方案300仅是作为本公开的多级别替换方案的一部分的、用来替换高速缓存中的最高替换优先级级别高速缓存行的替换方案的一个示例。此外,任意合适的替换方案均可与替换优先级级别相结合使用,而不脱离本公开的范围。
图4示出了用于在基于事务的微处理器中控制高速缓存以减少事务回滚的可能性的方法400的实施例。微处理器可包括多个不同级别的高速缓存,并且不同级别的高速缓存中的至少一些可向至少一个其他不同级别的高速缓存报告高速缓存行的逐出和/或替换。进一步地,不同级别的高速缓存中的至少一些可以是包容型高速缓存,其分配高速缓存行用于来自至少一个较低级别的高速缓存的数据的复制。在一个特定示例中,由图1中所示的微处理系统100的L2高速缓存108的高速缓存控制器128实施方法400。在该示例中,L2高速缓存是统一高速缓存,该统一高速缓存是分配高速缓存行用于来自L1指令高速缓存106和L1数据高速缓存104的数据的复制的包容型高速缓存。此外,L1指令高速缓存106和L1数据高速缓存104向L2高速缓存108报告高速缓存行的逐出和/或替换。
此外,高速缓存中的每个高速缓存行由从多个替换优先级级别中所选择的替换优先级级别所表征。可依据影响较低级别的高速缓存的可能性来区分多个替换优先级级别的优先次序。具体地,具有较高替换优先级级别的高速缓存行的替换相比具有较低替换优先级级别的高速缓存行的替换具有较低的影响较低级别的高速缓存及引起事务回滚的可能性。在一个示例中,从最高优先级级别到最低优先级级别排名的多个替换优先级级别包括(1)无效高速缓存行、(2)挂起逐出的高速缓存行、(3)未由另一个高速缓存所拥有的有效高速缓存行、(4)由L1指令高速缓存所拥有且未由L1数据高速缓存所拥有的高速缓存行、以及(5)由L1数据高速缓存所拥有的高速缓存行。在一个特定示例中,每个高速缓存行包括替换优先级级别位,该替换优先级级别位与高速缓存行的标签位一起被包括。
注意,在一些情况下,可基于引起高速缓存的状态改变的事件以及其他事件来动态地更新高速缓存行的替换优先级级别。
在402,方法400包括选择高速缓存中的具有最高替换优先级级别的LRU高速缓存行。在一些实施例中(例如在高速缓存是集合关联的高速缓存的情况下),可从高速缓存的指定高速缓存行集合中选择LRU高速缓存行。在一些实施例中,可从高速缓存中的一些或全部高速缓存行中选择LRU高速缓存行。
在404,方法400包括确定是否针对最高替换优先级级别选择了LRU高速缓存行。如果针对最高替换优先级级别选择了LRU路,那么方法400移动至408。否则方法400移动至406。
在406,没有高速缓存行是由最高替换优先级级别所表征的高速缓存(或指定高速缓存行集合),并且方法400包括搜索下一个替换优先级级别以针对该替换优先级级别来选择LRU高速缓存行。方法400迭代地搜索替换优先级级别,直到选择了具有最高可用替换级别的LRU高速缓存行为止。
在408,方法400包括根据替换方案来替换具有最高可用替换优先级级别的LRU高速缓存行。替换可包括越过较低替换优先级级别的高速缓存行来选择较高替换优先级级别的高速缓存行用于替换,即使在较低替换优先级级别的高速缓存行相比较高替换优先级级别的高速缓存行是最近最少使用的情况下。换句话说,可越过LRU高速缓存行来选择最近较多使用的高速缓存行,因为相对于LRU高速缓存行,最近较多使用的高速缓存行的替换可以具有较低的对事务的完成造成干扰的可能性。这样,可减少与事务回滚相关联的代价。
此外,可使用任意合适的替换方案来替换最高替换优先级级别的高速缓存行。例如,替换方案可包括最佳最近最少使用高速缓存行替换方案、树状最近最少使用高速缓存行替换方案、以及先入先出高速缓存行替换方案中的一个。在替换方案不选择LRU高速缓存行的情况下,可选择具有较高优先级级别的高速缓存行用于替换而无论其在高速缓存行集合或高速缓存中是否是最近最少使用的。
注意,可由微处理器的任意合适级别的高速缓存或存储器部件来实现方法400,而不脱离本公开的范围。应予以理解的是,本文所描述的配置和/或方法本质上是示例性的,并且这些特定实施例或示例不视为具有限制性意义,因为可能有大量的变形。本文所描述的具体例程或方法可表示任意数目的处理策略中的一个或多个。这样,可以以所示出的顺序、以其他顺序、并行或在一些情况下省略实施所示出的各种动作。同样,可改变上文所描述的过程的次序。
本公开的主题包括本文所公开的各种过程、系统和配置,以及其他特征、功能、动作和/或属性的全部新颖的和非显而易见的组合和子组合,及其任意和全部等同物。
Claims (10)
1.一种微处理系统,包括:
高速缓存,包括:
多个高速缓存行,每一个由从多个替换优先级级别中所选择的替换优先级级别所表征;以及
高速缓存控制器,配置为(1)选择具有最高可用替换优先级级别的所述多个高速缓存行的最近最少使用高速缓存行,以及(2)根据替换方案来替换具有所述最高可用替换优先级级别的所述最近最少使用高速缓存行。
2.根据权利要求1所述的微处理系统,其中所述替换方案包括最佳最近最少使用高速缓存行替换方案、树状最近最少使用高速缓存行替换方案、以及先入先出高速缓存行替换方案中的一个。
3.根据权利要求1所述的微处理系统,其中所述替换方案是树状最近最少使用高速缓存行替换方案。
4.根据权利要求1所述的微处理系统,其中所述微处理器包括多个不同级别的高速缓存,并且所述不同级别的高速缓存中的至少一些向至少一个其他不同级别的高速缓存报告高速缓存行的逐出和/或替换。
5.根据权利要求4所述的微处理系统,其中所述不同级别的高速缓存中的所述至少一些是分配高速缓存行用于来自至少一个较低级别的高速缓存的数据的复制的包容型高速缓存。
6.根据权利要求4所述的微处理系统,其中所述高速缓存是L2统一高速缓存,所述L2统一高速缓存是分配高速缓存行用于来自L1指令高速缓存和L1数据高速缓存的数据的复制的包容型高速缓存。
7.根据权利要求1所述的微处理系统,其中所述微处理器是基于事务的微处理器。
8.根据权利要求7所述的微处理系统,其中依据影响较低级别的高速缓存的可能性来区分所述多个替换优先级级别的优先次序,其中具有较高替换优先级级别的高速缓存行的替换相比具有较低替换优先级级别的高速缓存行的替换将具有较低的影响所述较低级别的高速缓存及引起事务回滚的可能性。
9.根据权利要求1所述的微处理系统,其中所述多个替换优先级级别从最高优先级级别到最低优先级级别排名包括(1)无效高速缓存行、(2)挂起逐出的高速缓存行、(3)未由另一个高速缓存所拥有的有效高速缓存行、(4)由L1指令高速缓存所拥有且未由L1数据高速缓存所拥有的高速缓存行、以及(5)由所述L1数据高速缓存所拥有的高速缓存行。
10.根据权利要求1所述的微处理系统,其中每个高速缓存行包括优先级位,所述优先级位指示表征该高速缓存行的替换优先级级别。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/461,458 US10019381B2 (en) | 2012-05-01 | 2012-05-01 | Cache control to reduce transaction roll back |
US13/461,458 | 2012-05-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103383672A true CN103383672A (zh) | 2013-11-06 |
CN103383672B CN103383672B (zh) | 2016-05-11 |
Family
ID=49384598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310145331.XA Active CN103383672B (zh) | 2012-05-01 | 2013-04-24 | 高速缓存控制以减少事务回滚 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10019381B2 (zh) |
CN (1) | CN103383672B (zh) |
DE (1) | DE102013206336A1 (zh) |
TW (1) | TWI533201B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106126434A (zh) * | 2016-06-22 | 2016-11-16 | 中国科学院计算技术研究所 | 中央处理器的缓存区的缓存行的替换方法及其装置 |
CN108108312A (zh) * | 2016-11-25 | 2018-06-01 | 华为技术有限公司 | 一种高速缓存清理方法及处理器 |
CN108475197A (zh) * | 2016-01-15 | 2018-08-31 | 华为技术有限公司 | 用于嵌套抢占的高速缓存结构 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9170955B2 (en) * | 2012-11-27 | 2015-10-27 | Intel Corporation | Providing extended cache replacement state information |
US9158702B2 (en) | 2012-12-28 | 2015-10-13 | Intel Corporation | Apparatus and method for implementing a scratchpad memory using priority hint |
US9720847B2 (en) * | 2013-07-17 | 2017-08-01 | Nxp Usa, Inc. | Least recently used (LRU) cache replacement implementation using a FIFO storing indications of whether a way of the cache was most recently accessed |
EP3230874B1 (en) * | 2014-12-14 | 2021-04-28 | VIA Alliance Semiconductor Co., Ltd. | Fully associative cache memory budgeted by 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 |
EP3055775B1 (en) * | 2014-12-14 | 2019-08-21 | VIA Alliance Semiconductor Co., Ltd. | Cache replacement policy that considers memory access type |
WO2016097805A1 (en) | 2014-12-14 | 2016-06-23 | Via Alliance Semicoductor Co., Ltd. | Cache memory budgeted by ways on memory access type |
WO2016097813A1 (en) * | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Set associative cache memory with heterogeneous replacement policy |
US11106599B2 (en) * | 2016-09-30 | 2021-08-31 | Intel Corporation | System and method for replacement in associative memories using weighted PLRU trees |
US11886342B2 (en) * | 2021-12-01 | 2024-01-30 | International Business Machines Corporation | Augmenting cache replacement operations |
EP4359936B1 (en) * | 2022-09-12 | 2024-11-06 | Google LLC | Time-efficient implementation of cache replacement policy |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1490730A (zh) * | 2002-10-16 | 2004-04-21 | 国际商业机器公司 | 非均匀存储器访问计算机系统的可重构高速缓存控制器 |
CN1149486C (zh) * | 1997-03-14 | 2004-05-12 | 艾利森电话股份有限公司 | 基于惩罚的高速缓冲存储器和置换技术 |
US20100318741A1 (en) * | 2009-06-12 | 2010-12-16 | Cray Inc. | Multiprocessor computer cache coherence protocol |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5809527A (en) * | 1993-12-23 | 1998-09-15 | Unisys Corporation | Outboard file cache system |
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 |
US6490654B2 (en) * | 1998-07-31 | 2002-12-03 | Hewlett-Packard Company | Method and apparatus for replacing cache lines in a cache memory |
US8214601B2 (en) * | 2004-07-30 | 2012-07-03 | Hewlett-Packard Development Company, L.P. | Purging without write-back of cache lines containing spent data |
WO2007068122A1 (en) * | 2005-12-16 | 2007-06-21 | Univ Western Ontario | System and method for cache management |
TW201015579A (en) | 2008-09-18 | 2010-04-16 | Panasonic Corp | Buffer memory device, memory system, and data readout method |
JP5547208B2 (ja) * | 2008-11-24 | 2014-07-09 | インテル コーポレイション | シーケンシャル・プログラムを複数スレッドに分解し、スレッドを実行し、シーケンシャルな実行を再構成するシステム、方法および装置 |
US8255626B2 (en) * | 2009-12-09 | 2012-08-28 | International Business Machines Corporation | Atomic commit predicated on consistency of watches |
US8301840B2 (en) * | 2009-12-15 | 2012-10-30 | International Business Machines Corporation | Assigning cache priorities to virtual/logical processors and partitioning a cache according to such priorities |
US8752054B2 (en) * | 2010-03-11 | 2014-06-10 | Avaya Inc. | Intelligent merging of transactions based on a variety of criteria |
US9626187B2 (en) * | 2010-05-27 | 2017-04-18 | International Business Machines Corporation | Transactional memory system supporting unbroken suspended execution |
US9110691B2 (en) * | 2010-11-16 | 2015-08-18 | Advanced Micro Devices, Inc. | Compiler support technique for hardware transactional memory systems |
-
2012
- 2012-05-01 US US13/461,458 patent/US10019381B2/en active Active
-
2013
- 2013-04-10 DE DE102013206336A patent/DE102013206336A1/de active Pending
- 2013-04-23 TW TW102114419A patent/TWI533201B/zh active
- 2013-04-24 CN CN201310145331.XA patent/CN103383672B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1149486C (zh) * | 1997-03-14 | 2004-05-12 | 艾利森电话股份有限公司 | 基于惩罚的高速缓冲存储器和置换技术 |
CN1490730A (zh) * | 2002-10-16 | 2004-04-21 | 国际商业机器公司 | 非均匀存储器访问计算机系统的可重构高速缓存控制器 |
US20100318741A1 (en) * | 2009-06-12 | 2010-12-16 | Cray Inc. | Multiprocessor computer cache coherence protocol |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108475197A (zh) * | 2016-01-15 | 2018-08-31 | 华为技术有限公司 | 用于嵌套抢占的高速缓存结构 |
CN106126434A (zh) * | 2016-06-22 | 2016-11-16 | 中国科学院计算技术研究所 | 中央处理器的缓存区的缓存行的替换方法及其装置 |
CN108108312A (zh) * | 2016-11-25 | 2018-06-01 | 华为技术有限公司 | 一种高速缓存清理方法及处理器 |
Also Published As
Publication number | Publication date |
---|---|
US10019381B2 (en) | 2018-07-10 |
DE102013206336A1 (de) | 2013-11-07 |
CN103383672B (zh) | 2016-05-11 |
US20130297876A1 (en) | 2013-11-07 |
TWI533201B (zh) | 2016-05-11 |
TW201407469A (zh) | 2014-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103383672A (zh) | 高速缓存控制以减少事务回滚 | |
US7552286B2 (en) | Performance of a cache by detecting cache lines that have been reused | |
CN102498477B (zh) | Tlb预取 | |
CN100573477C (zh) | 管理锁定的高速缓冲存储器中的组替换的系统和方法 | |
US20140208038A1 (en) | Sectored cache replacement algorithm for reducing memory writebacks | |
US20180300258A1 (en) | Access rank aware cache replacement policy | |
KR102453192B1 (ko) | 다른 캐시에서의 엔트리들의 가용성을 기반으로 한 캐시 엔트리 교체 | |
JPH0364893B2 (zh) | ||
CN1659525A (zh) | 简化了缓存替换策略的实现的多线程缓存方法和装置 | |
JPH1196074A (ja) | 交換アルゴリズム動的選択コンピュータシステム | |
US10545879B2 (en) | Apparatus and method for handling access requests | |
CN103198026A (zh) | 指令高速缓存功耗降低 | |
US9323527B2 (en) | Performance of emerging applications in a virtualized environment using transient instruction streams | |
CN104813293A (zh) | 使用动态分配的脏掩码空间的存储器管理 | |
US7356650B1 (en) | Cache apparatus and method for accesses lacking locality | |
US11526449B2 (en) | Limited propagation of unnecessary memory updates | |
CN101645034A (zh) | 用于检测数据存取违例的方法和装置 | |
US7010649B2 (en) | Performance of a cache by including a tag that stores an indication of a previously requested address by the processor not stored in the cache | |
EP3485381B1 (en) | System and method for identifying pendency of a memory access request at a cache entry | |
CN103885890A (zh) | 高速缓冲存储器cache中cache块的替换处理方法和装置 | |
US8793437B2 (en) | Cache memory system using temporal locality information and a data storage method | |
US8356141B2 (en) | Identifying replacement memory pages from three page record lists | |
US20170357585A1 (en) | Setting cache entry age based on hints from another cache level | |
CN101419543B (zh) | 预测高速寄存器的存取位置的方法及系统 | |
US9760488B2 (en) | Cache controlling method for memory system and cache system thereof |
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 |