以推测方式使高速缓存中的缓存行失效的方法及系统技术方案

技术编号:2871056 阅读:186 留言:0更新日期:2012-04-11 18:40
设定成以推测方式使缓存行失效的高速缓存控制器,可立即响应失效请求或指令,而不必等候错误检查的完成。为了避免错误检查判定该失效操作是错误的而不应执行该失效操作,所以在该错误检查完成之前,该高速缓存控制器使在推测方式下失效的该缓存行不会被修改。在此种方式下,如果后来发现该失效操作是错误的,则可撤销该推测方式失效操作。如果完成了错误检查,且并未检测到任何错误,则该推测方式失效操作变成非推测方式。(*该技术在2022年保护过期,可自由使用*)

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及高速缓存,特别是涉及使高速缓存中的缓存行失效。
技术介绍
因为通常是在对密度而非在速度的考虑下设计主系统内存,所以微处理器设计者已将高速缓存加入其设计中,以便减少微处理器对直接存取主存储器的需求。高速缓存是一种存取速度快于主存储器的一种小容量内存。计算机系统可以有若干不同阶层的高速缓存。例如,一个计算机系统可以有″第一级″(L1)高速缓存及″第二级″(L2)高速缓存。通常是将这些高速缓存与微处理器集成。通常是以诸如静态随机存取内存(Static Random Access Memory;简称SRAM)等快速的存储单元构成高速缓存,而SRAM的存取时间快于主系统存储器所用的内存(通常是动态随机存取内存(Dynamic Random AccessMemory;简称DRAM)或同步动态随机存取内存(SynchronousDynamic Random Access Memory;简称SDRAM))之存取时间。因为SRAM的组件密度较低且成本较高,所以通常不将较快速的SRAM用于主系统内存。许多其它类型的高速缓存也是可行的。例如,可将主系统内存用来作为系统的速度较慢的直接存取储存装置(例如硬盘机)的高速缓存。诸如硬盘机等的其它装置亦可设有内部的高速缓存,用以提升该装置的性能。当微处理器需要内存中的数据时,该微处理器通常先检查其L1高速缓存,以便确定所需的数据是否已存放在该高速缓存中。如果并非如此,则检查L2高速缓存。在此同时,可向内存请求该数据,以防并未命中(miss)L2高速缓存。如果L2高速缓存储存了该数据,则L2高速缓存将该数据提供给微处理器(通常在比主系统内存可做到的快许多的速度及短许多的存取时间下提供该数据),而且如果曾经向内存请求该数据,则取消该请求。如果该数据并未缓冲储存在L1或L2高速缓存(称之为″高速缓存未命中″),则从主系统内存或其它类型的海量储存装置(例如硬盘机)读取数据。与自L1高速缓存存取数据相比时,从内存存取数据要耗用更多的时钟周期。同样地,如果数据并未存放在主系统内存,则自海量储存装置存取数据甚至要耗用更多的时钟周期。通常是在引用的区域性(locality of reference)原理下运行高速缓存,引用的区域性是指最近使用过的数据(及该区域中的数据)现在存取的可能性要大于其余的数据。该原理是有把握的,这是因为计算机软件通常具有循环及分支,因而要重新执行先前执行过的程序代码。通过将最近存取的指令及数据储存在高速缓存中,因此微处理器不需要等候从主存储器读取的指令及数据,所以可提升系统性能。微处理器及计算机系统设计者又进一步利用了引用的区域性原理,其方式为利用诸如分支预测等技术,而在微处理器实际需要用到指令及数据之前,就以前瞻的方式先将这些指令及数据储存在高速缓存中。额外的,当从内存读取指令或数据字节时,读取在该指令或数据之后的一些额外字节,并将这些字节储存在高速缓存中。引用的区域性原理再一次表明总体说来,处理器需要这些额外的指令及数据字节的可能性大于其它的数据或指令。有数种不同的方式可将系统内存映射到高速缓存。一种常见的方式是采用n路组关联(set-associative)高速缓存,其中将该高速缓存分成若干组。每一组包含n个缓存行(cache lines)。缓存行是一串连续的字节(例如32或64个字节)。为了效率上的考虑,高速缓存通常是以缓存行,而不是以单个字节进行处理。可将主存储器中可存放在高速缓存中的各存储区域分别指定给这些组缓存行中的一组缓存行。因此,可将每一存储位置缓冲储存在指定的组内的n个区域中的任一区域。该n路组关联高速缓存的一个特殊情况是直接映射式高速缓存。在直接映射式高速缓存中,n=1,因而每一存储花卉只映射至该高速缓存中的一个区域。该n路组关联高速缓存的另一种特殊情况是完全关联高速缓存。在此种情况中,n=m,其中m是高速缓存中缓存行的数目(且因而只有一″组″)。在此种情况中,每一存储区域可映射至这些高速缓存区域中的任一区域。高速缓存的两个基本性能准则是命中率(hit rate)(亦即,在高速缓存中找到的内存存取次数与内存存取总次数间之比率)及搜索速度(亦即,做出命中或未命中判定的速度)。在直接映射式高速缓存中,搜索速度最佳化,但其代价是命中率较低。这是因为直接映射式高速缓存较易判定命中/未命中(因为存储位置只映射至一条缓存行,所以只须检查该缓存行即可),但较难有较高的命中率,这是因为多个存储位置映射至单一的缓存行。相反地,完全关联高速缓存将命中率最佳化,但却牺牲了搜索速度。由于可让所有的存储位置映射至任何缓存行,所以提高了命中的机率,但是却大幅增加了搜索的复杂性,这是因为必须为每一存储位置搜索所有的缓存行。组关联高速缓存由于提供了比直接映射式高速缓存更多的关联性(因而有较高的命中率),同时也提供了比完全关联高速缓存更快的搜索速度,进而试图在上述两种内存之间提供一种折衷方案。因为高速缓存容量受到若干因素(其中包括晶粒尺寸、电力消耗及成本)的限制,所以当将信息加载到高速缓存时,必须要小心处理。一个特别的考虑是设计者决定一方针,用以覆写高速缓存中现有的指令及数据,或使现有的指令及数据失效,以便腾出新指令及数据的空间。因此,在n>1的组关联高速缓存(因而有要用哪一缓存行来缓冲储存一特定的存储位置的选择)中,要有某一方式在可能的各缓存行中选出哪一缓存行来填入新的资料。一种常用的解决方案是追踪对每一缓冲储存的存储位置存取的相对顺序,然后以新的指令或数据取代最近最少使用的指令或数据。该解决方案是基于最近存取的缓存行有较大的可能再度被存取的原理。其它的解决方案包括随机取代及先进先出技术。平均上,最近最少使用的(Least-Recently Used;简称LRU)高速缓存取代算法提供了比其它算法较佳的性能。然而,为了要在n路组关联高速缓存中决定最近最少使用的(LRU)缓存行,传统的方式需要有相当大量的复杂硬件(其中包括计数器及n路多任务器)来实施LRU算法。此外,要用每一高速缓存数据项的状态位来追踪每一数据项的使用情况。当在该组中做出一个新的数据项时,即扫描这些状态位,以便决定哪一缓存行是最近最少使用的或失效的。然后收回该最近最少使用的或失效的缓存行,以便腾出用于新数据项的空间。传统LRU取代算法的缺点包括硬件量、状态位数目、及实施该算法所需的时间、以及扫描该组中失效的数据项所需的时间及硬件。一般而言,最好是能提升高速缓存子系统的性能。例如,当处理器的速度提高时,最好是能提供可更迅速地供应更多数据的高速缓存子系统。
技术实现思路
使高速缓存中的缓存行失效通常可能是有用的。然而,缓存行的失效操作可能取决于许多基本的因素。在许多情况中,执行错误检查,以便决定这些基本的因素是否正确。如果这些因素不正确,则该失效操作是错误的,且不应执行该失效操作。因为错误检查可能要耗用相当长的时间才能完成,所以当高速缓存控制器实际收到失效请求时,可能无法得到该失效操作是否为错误的判定。因此,失效请求便请求高速缓存控制器耗用时间等候错误检查的判定,而使得该高速缓存控制器无法执行其它待处理的工作。同时,缓存行的失效操作是错误的情况是很少见的,因而该高速缓存控制器用来等候错误检查完成的时本文档来自技高网
...

【技术保护点】
一种计算机系统,包含:    处理器(409);     系统内存(425);    连接到该处理器且包含多个缓存行储存区域的高速缓存(423);     连接而接收第一请求的高速缓存控制器(419),其中该高速缓存控制器设定成:响应该第一请求,而以推测方式使第一缓存行储存区域中的第一缓存行失效;且其中响应以推测方式使该第一缓存行失效,该高速缓存控制器进一步设定成:在该第一缓存行的失效操作变成非推测式之前,禁止修改该第一缓存行储存区域;以及    错误检测单元(603),该错误检测单元设定成执行对应于该第一请求的至少一个检查,其中如果执行了该检查,且并未检测到任何错误,则该第一缓存行的该失效操作变成了非推测式。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:TC谭BT森德
申请(专利权)人:先进微装置公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1