CN1255675A - 具有冻结功能的高速缓存器 - Google Patents
具有冻结功能的高速缓存器 Download PDFInfo
- Publication number
- CN1255675A CN1255675A CN99122311A CN99122311A CN1255675A CN 1255675 A CN1255675 A CN 1255675A CN 99122311 A CN99122311 A CN 99122311A CN 99122311 A CN99122311 A CN 99122311A CN 1255675 A CN1255675 A CN 1255675A
- Authority
- CN
- China
- Prior art keywords
- shunt
- information
- data
- freezing
- frz
- 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.)
- Pending
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/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
- 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
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
一种N-分路-成组相联高速缓存器,用由冻结功能修改的LRU技术操作。高速缓存器具有一个替换控制器,通过使用冻结信息修改从LRU信息存贮器提供的访问历史。替换控制器由有线逻辑电路实现,简化了修改算法,并可高速操作。
Description
本发明涉及一种具有冻结功能的高速缓存器,特别涉及采用由冻结功能修改的最近最少使用原理(LRU)技术的高速缓存器。
一般来说,在计算机系统中使用的主存储设备与中央处理单元(CPU)的操作速度相比具有较低的操作速度。这样一种主存储器一般带有一个高速缓存器,该高速缓存器由具有较高操作速度和较小容量的SRAM实现,并置于CPU的内部或附近。通过在高速缓存器中存储一些数据或程序(此后在大多数情况下简称为数据)并从其读取,CPU可以以一较高操作速度进行操作。
在具有高速缓存器的计算机系统中,当在高速缓存器中未找到(或未命中)由CPU访问的数据时,将由CPU从主存储器读取的一些数据作为新记录数据存储在高速缓存器的空块中。如果在高速缓存器中没有可供新记录数据使用的空块,则选择高速缓存器中最近最少使用的、其中存储有记录数据的一块作为对空块的替代。于是,可以将新记录数据存储在选择的一块中。这个过程一般被称为LRU技术或LRU算法,其中,在所有分路中选择存储最近最少使用分路(数据)的块,用于以新记录数据替换最近最少使用的数据。LRU算法提高了高速缓存器的效率。
然而,在微处理器运行的所有程序中,存在一个不太经常被访问但一旦被启动就被要求以较高操作速度操作的特定程序。控制汽车的微处理器就是其中的一个例子,这里将就控制显示屏和刹车系统进行讨论。
由于在驾驶操作期间汽车的速度和哩数的当前指示在显示面板上随时改变,所以微处理器在任何时候都在运行面板控制程序。另一方面,控制在紧急刹车操作时防止轮胎摆动的程序不象显示面板程序那样经常使用。于是,在常规的高速缓存器中,面板控制程序被经常访问并存储在高速缓存器中,而刹车控制程序不太经常在高速缓存器中访问,并且中断控制程序存储在高速缓存器中的概率较低。也就是说,不要求运行得非常快的显示哩数等的程序占据了高速缓存器,导致微处理器要花较长时间来启动运行刹车控制程序,从而降低高速缓存器的整体效率或微处理器的操作速度。
为了解决上述问题,公知的是在高速缓存器内提供一个冻结功能和一个清除功能。冻结功能是使得一个指定程序被存储并冻结在高速缓存器中而不进行替换,其中该指定程序一旦被启动操作,微处理器必须在该指定程序上以高速运行,而不管其访问频率如何。该冻结功能使微处理器能在任何时间读取并运行在存储在高速缓存器中的指定程序上,以减少处理时间。
清除功能是通过将程序从高速缓存器中释放而在其中产生一个空间,使得一个被更频繁地访问但不要求以较高速度操作微处理器的程序不在高速缓存器中存储较长时间。清除功能可以提高高速缓存器的使用效率,并减少微处理器的整体处理时间。
专利公开JP-A-6-110787描述了成组相联高速缓冲器中的一个冻结功能,其中,每组高速缓存器中的多个分路中的单个分路可以受到冻结。图1显示了成组相联高速缓冲器中的冻结控制方框。
冻结控制方框包括标记信息存贮器(标记存储器)51、数据存贮器(数据存储器)52、清除/冻结寄存器43、LRU清除/冻结控制器42、优先权数据更新单元44、LRU信息存贮器40、地址比较器57、控制部分58、以及选择器59。
标记存储器51包括分路-A(51A)至分路-D(51D),并在其中存储高速缓存器中的高速缓存数据的地址。标记存储器51除了标记数据之外还存储有效位。数据存储器52包括分路-A(52A)至分路-D(52D),并在其中存储高速缓存数据。数据存储器52用具有较高访问速度的半导体存储器、例如SRAM实现。
清除/冻结寄存器43根据来自CPU的指令确定数据存储器52中存储的高速缓存数据是否从其中清除或在其中被冻结,并根据从CPU提供的数据确定优先权等级。LRU清除/冻结控制器42根据LRU算法使用清除/冻结寄存器43中存储的数据重写标记存储器51中的有效位。
优先权数据更新单元44根据LRU清除/冻结控制器42的控制重写存储在LRU信息存贮器40中的高速缓存数据的优先权级别。地址比较器57将从CPU或DMA(直接存储器寻址)控制器提供的访问地址与根据访问地址从标记存储器51读取的高速缓存地址进行比较,从而判断高速缓存器是否命中。
控制部分58响应地址比较器57的比较结果、从LRU信息存贮器40提供的优先权数据和从外部提供的用于定时控制的读使能信号,从而控制高速缓存器52的输入/输出和选择器59。选择器59选择高速缓存器的一个分路,用于存储从外部提供的数据,选择高速缓存器的另一个分路用于从其中读数据。
在操作中,当从CPU或DMA控制器提供一个访问地址时,将访问地址提供给标记存储器51,其中,将访问地址变换成在数据存储器52中使用的地址,并提供给地址比较器57。
将每个高速缓存数据的优先权级别存储在LRU信息存贮器40中。地址比较器57将读操作的访问地址与存储在标记存储器51中的地址进行比较,以判断高速缓存数据被命中还是未命中。如果高速缓存数据被命中,则将存储在数据存储器52中的数据输出到CPU,而如果高速缓存数据未被命中,则从主存储设备读取存储在其中的数据,并存储在数据存储器52中。
将由清除/冻结指令或来自CPU的指令指定的每个高速缓存数据的优先权级别存储在清除/冻结寄存器43中。LRU清除/冻结控制器42根据优先权级别数据控制优先权数据更新单元44,以处理存储在LRU信息存贮器40中的优先权级别数据,从而指定一个最优清除/冻结操作。在清除的情况下,LRU清除/冻结控制器42还处理存储在标记存储器51中的有效位,并使对应于标记地址的数据无效。
图2显示了LRU清除/冻结控制器42进行的冻结操作的流程图。首先从清除/冻结寄存器43读出高速缓存数据的冻结优先权数据(步骤S1)。然后,从LRU信息存贮器40读出所有记录的最近最少使用的数据(步骤S2),然后对其进行修改,使得具有较高冻结优先权级别的分路具有LRU优先权级别中的较高优先权(步骤S3和S4)。在步骤S3和S4中,每次在该组中的一个分路被访问时进行修改。例如,如果分路-A具有冻结优先权,当分路-D被访问时分路-A经受一次伪访问操作,从而使分路-A具有较高的LRU优先权用于保护。这补偿了硬件限制,其中,在系统中未使用的高速缓存数据的优先权级别自动下降。
关于LRU清除/冻结控制器42的清除操作,从清除/冻结寄存器43读出在清除方面的优先权级别。接着,从LRU信息存贮器40的所有记录继续读出LRU优先权级别信息,并进行更新,以使得相应优先权级别的分路变成最低等级的优先权级别。另外,使标记存储器51中的有效位变为无效,以舍弃数据。
通过采用上述处理,以图3中的影线标记的、被更频繁地访问的记录、即记录52Bb,52Bc,52Ca,…经受清除/冻结处理。
如上所述,高速缓存器采用以冻结指令修改的LRU技术。这是根据存储在清除/冻结寄存器中的数据进行的,该数据包括清除/冻结指令和指定的优先权顺序。
在该公开文本所描述的半导体存储器件中,进行修改处理,其中,当读出优先权级别信息时,修改所有记录的优先权级别信息。另外,如果高速缓存器未命中,则高速缓存器接收新的访问数据,以新的访问数据替换最近最少使用的分路,并重写存储在LRU信息存贮器40中的数据。
LRU信息存贮器40具有记录41a、40b和40c,如图3所示,用于存储替换信息,而数据存储器具有包括记录52Aa、52Ab和52Ac的分路-A(52A)、包括记录52Ba、52Bb和52Bc的分路-B(52B)和包括记录52Ca、52Cb和52Cc的分路-C(52C)以及包括类似记录的分路-D(未显示)。例如,如果对于记录40b选择分路-B(52B)用于冻结,记录40b可能包括数据C>A>B,其中,如图所示,分路-C最近最多使用,分路-B最近最少使用,而不管命中还是未命中分路-C。在这种情况下,如果高速缓存数据在以后未被命中,则由一新数据替换分路-B,重写LRU信息存贮器,使得B>C>A。这应该由LRU信息存贮器本身中的用于冻结分路-C的C>B>A进行替换。也就是说,在出现高速缓存数据的未命中之后,LRU信息存贮器必须被替换,这就产生一个问题,即修改替换需要处理时间,降低了高速缓存器的效率。
为了克服上述问题,在该公开文本所描述的高速缓存器中,将进行LRU算法的分路的数目限制为每组中的分路总数减1。在上述例子中,分路总数是4,而要进行LRU算法的分路数目是3。这提供了一种配置,其中,要经受冻结的三个分路中的每一个都不作为最近最少使用的分路对待,因为要经受冻结的分路的访问历史没有表明这些分路中的每一个是处于LRU算法的顺序中的第四个等级。于是,这三个分路中的每一个都不由新数据替换。
然而,这意味着不经受冻结的剩下那个分路在每次高速缓存数据未被命中时都被替换,从而不能达到提供多个分路用于有效替换的最初目的。
例如,如图3所示,分路-A、分路-B和分路-C的访问历史存储在LRU信息存贮器40中,并且不考虑分路-D的访问历史。这意味着存储在LRU信息存贮器中的数据在命中分路-A、分路-B和分路-C中的任何一个的情况下被更新,而存储在LRU信息存贮器中的数据在命中分路-D的情况下不更新。于是,在图5中,考虑在未命中的情况下将新数据存储在分路-D中,这意味着高速缓存器用作为一个1-分路-成组相联高速缓存器,并减小了命中的概率,降低了CPU的处理通过量。
另外,由于如上所述的高速缓存器可以只对多个分路中的一单个分路进行冻结,当一个程序具有对应于高速缓存器中的两个或多个分路的中等长度时,只有程序的一部分能进行冻结,从而程序的剩余部分被从高速缓存器中舍弃,在每次程序被访问时重复进行。这意味着在高速缓存器中未获得足够的冻结功能。
因此,本发明的一个目的是提供一种高速缓存器,具有冻结功能和较高通过量而不降低高速缓存器的通过量。
本发明的另一个目的是提供一种用于控制具有冻结功能和较高通过量的高速缓存器的方法。
本发明提供了一种高速缓存器装置,包括具有多个分路的数据存贮部分,每个分路用于存储所需数据;LRU信息存贮部分,用于存储多个分路的访问信息;冻结信息存贮部分,用于存储至少一个分路的冻结信息;替换控制器,用于根据访问历史和冻结信息产生替换信息,而不修改存储在所述LRU信息存贮部分中的所述访问历史。
依据本发明的高速缓存器,由于与LRU信息存贮器分开提供了一个替换控制器,所以通过在每次高速缓存数据被替换时采用冻结信息,不修改原始访问历史,从而高速缓存器可以以更高操作速度进行操作。
本发明还提供了一种用于控制高速缓存器的方法,该高速缓存器具有多个用于储存所需数据的分路。所述方法包括下列步骤:存储分路的访问信息,存储至少一个分路的冻结信息,以及根据所述访问历史和所述冻结信息产生一个替换信息,而不修改访问历史本身。
通过下面参考附图的说明,本发明的上述和其他目的、特征和优点将变得更加明显。
图1是常规高速缓存器的方框图。
图2是由图1的高速缓存器中的常规LRU清除/冻结控制器进行的冻结处理的流程图。
图3是用于显示清除/冻结控制的图1的LRU信息存贮器和数据存储器的构造的示意图。
图4是依据本发明的一个实施例的高速缓存器的方框图。
图5A至5D是分别用于显示在n-分路-成组相联高速缓存器中的访问历史的示意图,其中n=2,3,4和5。
图6是显示在图4的高速缓存器中的访问历史的列表。
图7是显示在图4的高速缓存器中的访问历史的另一个列表。
图8是图4的高速缓存器中的标记存储器和相关部分的方框图。
图9是图4的高速缓存器中的数据存储器和相关部分的方框图。
图10是图4的高速缓存器中的LRU信息存贮器和相关部分的方框图。
图11是图4的高速缓存器中的冻结存储器和相关部分的方框图。
图12是根据冻结I/O指令的冻结组(set)处理的流程图。
图13是显示在主存储器中的地址空间安排的示意图。
图14是根据冻结组指令的冻结组处理的流程图。
图15是在图4的高速缓存器中的替换部分和相关部分的方框图。
现在参考附图更加具体地说明本发明。
参考图4,具有依据本发明的一个实施例的高速缓存器的计算机系统包括CPU 10、高速缓存器11、总线控制单元(BCU)12、系统总线13和主存贮设备14。将该实施例中的高速缓存器11实施为一个4-分路-成组相联高速缓存器,在具有多组的高速缓存器的每组中包括四个分路。高速缓存器11采用LRU算法,将一些分路进行冻结。
CPU 10进行数据处理,同时控制计算机系统中的每个装置。特别地,CPU 10向高速缓存器11提供一个地址信号“AD”,以发送/接收专门的指令或数据。
一旦“数据命中”、即对应于从CPU 11提供的地址AD的数据被存储在高速缓存器11中,则高速缓存器11提供存储在其中的数据DT[]([]在这里一般用于将分路的序号夹在其间,有时可以省略)。
另一方面,一旦“未命中”、即对应于从CPU 10提供的地址AD的数据DTM[]未存储在高速缓存器11中,则高速缓存器向BCU 12提供一个地址信号BAD,从而请求BCU 12实现一个存储器读周期。
BCU 12通过系统总线13向主存贮设备14发送一个地址信号BAD,从而从主存贮设备14接收数据BDT。BCU 12然后向高速缓存器11提供数据BDT,高速缓存器11将数据BDT存储在高速缓存器11的一特定地址,并将数据BDT发送给CPU 10。如果在高速缓存器11中没有存储新数据BDT的空间,则高速缓存器11将存储在高速缓存器中的最近最少使用的数据写回(通过复制)到主存贮设备14,并以新数据BDT替换最近最少使用的数据。
因此,CPU 10可以在其和高速缓存器11之间传输所需数据。
在图4中,高速缓存器11包括标记存储器31、比较器模块32、数据存储器33、选择器34、LRU信息存贮器(LRU存储器)35、冻结信息存贮器(冻结存储器)36、替换控制器37以及控制单元38。在图4的例示性配置中,主存贮设备14具有1兆字节(MB)的存储容量,而高速缓存器11的数据存储器33具有1kB的存储容量。数据存储器33中包括四个分路,每个分路具有64个单独的记录,每个记录中存储四字节或32位的数据DTM。也就是说,每个分路具有256字节(64×4字节)的存储容量,四个分路存储1kB数据。主存贮设备14具有4,096个单独块,每块具有256字节的存储容量。
从CPU 10提供的用于存取数据DTM[]的地址信号AD的位长度是20,其两个最低有效位用作从数据的四个字节选择出一个字节的字节地址。地址信号AD的中间六位用作选择每个分路中的64个记录之一的索引地址IAD。地址信号AD的最高有效12位用作选择主存贮设备14的4,096块之一的标记地址。
标记存储器31存储一个对应于每个分路的每个记录的标记地址TAD以及表明存储在主存贮设备14中的数据是否与存储在数据存储器33中的数据相符合的页面重写标志位DRT。标记存储器31根据索引地址IAD访问一个标记地址TAD,其中索引地址IAD构成从控制单元38提供的地址信号ADT的中间六位,并将存储在其中的标记地址TAD传送给比较器模块32。如果由于未命中将新数据DTM[]传送给数据存储器33,则标记存储器31存储与指定分路的指定记录相应的地址中新数据的标记地址TAD。
控制单元38在更新数据存储器33的内容之前从标记存储器31读取一个页面重写标志位DRTO[]。如果页面重写标志位DRTO[]为“1”,在将数据存储器33中的数据DTM[]复制回主存贮设备14之后,舍弃高速缓存器11中的数据。另一方面,如果页面重写标志位DRTO[]为“0”,则控制单元38以新数据重写数据存储器33。
比较器模块32包括在个数上对应于每组中的分路个数的比较器。每个比较器将从控制单元38提供的标记地址TAD[]与从标记存储器31提供的标记地址TAM[]进行比较,其中标记地址TAD[]是地址信号AD的最高有效12位,在比较结果为一致时发送一个输出“1”作为命中信号,在未匹配时发送一个输出“0”作为未命中信号。在这里将分路-0至分路-3的命中信号分别表示为HIT[0]至HIT[3]。
数据存储器33具有一个对应于四个分路的64个记录的存储器,用于存储数据DTM。当向其提供一个索引地址IADD时,将对应于由索引地址IADD指定的四个分路中的记录的数据从数据存储器33取出或提供到数据存储器33。
选择器34根据对应于命中信号HIT[]的选择信号DSL[]选择在从数据存储器33读出的数据中被命中的分路中的数据DTM[],并将选择出的数据作为数据DTD[]发送给控制单元38。选择器34还根据对应于替换信号OUT[]的选择信号DSL[]选择分路之一,用于替换其中的数据,并将选定分路中的数据发送给数据存储器33。
LRU信息存贮器35为每个记录存储访问历史,该访问历史指示数据存储器33中的分路的访问顺序。当从控制单元38提供一个索引地址IADL时,LRU信息存贮器35传送对应于输入索引地址的6-位访问历史。如果高速缓存器被命中,每次在命中信号HIT[]从比较器模块32发送出时,控制单元38发送对应于命中信号HIT[]的新访问分路信号NAW[]。根据新访问分路信号NAW[],LRU信息存贮器35更新其内容作为访问历史。在这种情况下,NAW[n]=HIT[n],其中n=0到3。
另一方面,当高速缓存器未被命中时,控制单元38向LRU信息存贮器35发送一个对应于替换信号OUT[]的新访问分路信号NAW[]。LRU信息存贮器35根据新访问分路信号从LRU信息存贮器35的存储器阵列检索出一个对应于索引地址IADT的访问历史,将最近最少使用的分路的信息DSL传送给选择器34,并将新访问数据DTM[]字储在数据存储器33中。在这种情况下,NAW[n]=HIT[n],其中n=0到3。
冻结存储器36根据CPU 10的指令为其中的每个记录存储用于冻结分路的冻结信息。当从控制单元38提供出索引地址IADL时,冻结信息存贮器36传送一个对应于索引地址的3-位冻结信息FRZ[]。当冻结写数据FW[]和冻结写使能信号FE[]从控制单元38提供到冻结存储器36时,冻结存储器36还在对应于索引地址的地址写一个冻结信息FRZ[]。3-位冻结信息FRZ[]可用于指定冻结四个分路中的三个。在下面的说明中,假设指定分路-0至分路-2用于冻结,并且其冻结信息由FRZ[0]至FRZ[2]表示。
替换控制器37根据从LRU信息存贮器35提供的访问历史(或LRU信息)W[A,B]和从冻结信息存贮器36提供的冻结信息FRZ[],传送表示哪一分路将由新数据替换的替换信号。替换信号包括对应于分路-0至分路-3的四位OUT[0]至OUT[3]。
在“命中”操作中,将地址信号AD从CPU 10提供给控制单元38,并临时存储在其中。将在地址信号AD中作为中间六位的索引地址IADD和IADT提供给数据存储器33和标记存储器31。在这种情况下,索引地址IADD和IADT都是相同的。从四个分路分路-0至分路-3中的每一个读出对应于索引地址IDAT的标记存储器31的内容,并输入到比较模块32中的四个比较器中的每一个。同时,将对应于索引地址IADD的四个分路的数据DTM[]读出到选择器34。
另一方面,将从控制单元38传送出的地址AD中的标记地址TAD提供给比较器32的另一个输入,并在比较器32中与从标记存储器31提供的标记地址TAM进行比较。比较器32然后发送一个命中信号HIT[L]=1,表示命中四个分路中的一个(L),并将剩余分路的命中信号HIT[N]设置为“0”,其中0≤N≤3并且N≠L。
控制单元38根据命中信号HIT[]产生一个选择信号DSL和一个新访问分路信号NAW[],并将选择信号DSL[]传送给选择器34,将新访问分路信号NAW[]传送给LRU信息存贮器35。选择器34选择存储在对应于选择信号DSL的分路中的数据DTM,传送给CPU 10。
此后,LRU信息存贮器35根据对应于命中信号HIT[]的新访问分路信号NAW[]重写访问历史,以指明新命中分路是最近最多使用的分路。
在高速缓存器“未命中”的情况下,直至比较器模块32的比较的操作与上述的“命中”情况相同。如果比较器模块32传送HIT[n]=“0”,其中n=0至3,表明新访问数据未命中高速缓存器中的四个分路中的任何一个,则控制单元38向BCU 12传送存储在其中的地址信号BAD,BCU 12根据地址BAD从主存贮设备14读取数据BDT。
控制单元38将对应于地址信号BAD的索引地址IADL传送给LRU信息存贮器35和冻结信息存贮器36,并读出主存贮设备14中存储的数据。响应于此,LRU信息存贮器35和冻结信息存贮器36分别向替换控制器37传送访问历史W[]和冻结信息FRZ[]。替换控制器37根据所接收的信号产生一个替换信号OUT[],并将其传送给控制单元38,控制单元38随即发送与替换信号OUT[]相对应的选择信号DSL[]。
将通过BCU 12读出的数据BDT输入到控制单元38,然后传送给CPU 10。控制单元38将对应于地址信号BAD的索引地址IADD提供给数据存储器33,并将数据BDT作为数据DTD通过选择器34。控制单元38检查存储在标记存储器31中的页面重写标志位DRTO[],如果数据存储器33的内容不同于主存贮设备14的内容,将数据存储器33的内容写回主存贮设备14。此后,选择器34将数据DTM[]=DTD传送给数据存储器33中的由选择信号DSL指定的分路。数据存储器33将数据DTM[]存储在由索引地址IADD指定的存储单元。
接着,控制单元38向LRU信息存贮器35输出表示替换分路的信息的新访问分路信号NAW[],LRU信息存贮器35根据新访问分路信号重写访问历史。在这种情况下,NAW[n]=OUT[n],其中n=0到3。
基本上,数据到高速缓存器11的存储与上述的数据从高速缓存器11的读出相类似地进行。
下面将说明LRU信息存贮器35的控制。图5A到5D显示了n-分路-成组相联高速缓存器的要存储在LRU信息存贮器35中的访问历史的位W[A,B],其中n分别等于2到5。在图5A到5D的每一个中,如果在箭头尖部显示的分路-A最近较多被访问,则假设分路-A和分路-B的位W[A,B]为“1”,如果在箭头起点显示的分路-B最近较多被访问,则假设位W[A,B]为“0”。
对于图5A到5D所示的例子,LRU信息存贮器35包括多个存储单元,对应于用于指定在这些附图中显示的所有分路中的访问历史的位的个数与在每个分路中提供的记录的个数的乘积。
在图5A到5D所示的例子中,用于定义访问历史的位的个数(Q)由下式表示:
于是,在图5A到5D中用于指定访问历史的位的个数分别是1、3、6和10,对应于n=2到5。
例如,如果在图5A到5D中W[0,1]是“0”,则表示分路-1比分路-0最近更多地被访问。在这种情况下,如果分路-0后来被命中,W[0,1]假设为“1”,而如果分路-1后来被命中,W[0,1]保持为“0”。
图6显示了对应于图5C所示的4-分路-成组相联的表,其中,为分路-0到分路-3中的访问历史的每种情况显示了在每两个分路(分路-A和分路-B)之间的访问历史的位W[A,B]。左列(t4←t3←t2←t1)显示了基于最近最多访问的分路在每个方框中分类的诸分路的访问历史,而右边六列表示访问历史的各个位W[A,B]。例如,如果以分路-2←分路-1←分路-3←分路-0这个顺序命中分路,其中分路-2是最近最多访问的分路,分路-0是最近最少使用的分路,则从W[0,1]到W[2,3]的访问历史的六位为“000011”。另外,如果在访问历史“000011”之后命中分路-1,则访问历史的顺序变为分路-1←分路-2←分路-3←分路-0,W[0,1]到W[2,3]的访问历史的六位为“000111”。
参考图8,显示了标记信息存贮器(标记存储器)31和比较模块32,标记存储器31包括标记地址译码器61、标记数据写电路62、以及包括四个存储块31a至31d的存储单元阵列,比较器模块32包括四个比较器32a至32d。
每个存储块31a至31d对于数据存储器33中的一个相应分路而配置,以存储分路中每个记录的标记地址TAD和一个表示主存贮设备14的内容是否与数据存储器33中的内容一致的页面重写标志位(dirty bit)DRT。每个存储块31a至31d由具有对应于分路个数(4)与记录个数(64)与地址线的个数(14位)加1的和的乘积的容量的SRAM实现,即3840位的SRAM。
标记地址译码器61从控制单元38接收索引地址IADT的中间六位,对该中间六位进行译码,以启动存储块31a至31d的一个字线,从而选择分路中的一个记录。存储块31a至31d将选定记录的标记信息TAM[0]至TAM[3]传送给比较器模块32,将页面重写标志位DRTO[]传送给控制单元38。
标记写电路62从控制单元38接收索引地址IADT、选择信号DSL[]和页面重写标志位写信息DRTI[]。如果被访问数据未被命中,则标记写电路62在由选择信号DSL[]指定的分路中配置的索引地址ADT指定的记录中写入新标记地址TAD,并将“0”存储在页面重写标志位DRT中。如果访问数据被命中,则标记写电路62将“1”写在页面重写标志位DRT中,同时保持标记地址TAD不变。
存储块31a至31d分别向比较器32a至32d输出由地址信号ADT的中间六位的索引地址IADT指定的标记地址TAM[0]至TAM[3],并存储从标记写电路62提供的标记地址TAD。存储块31a至31d同样存储并读页面重写标志位DRT。将从存储块31a至31d读出的页面重写标志位DRT作为页面重写标志位读信息DRTO[]传送到控制单元38。
控制单元38检查页面重写标志位读信息DRTO[],如果页面重写标志位读信息DRTO[]为“1”,在更新数据存储器33的内容之前将数据DTD写回主存贮设备14。另一方面,如果页面重写标志位读信息DRTO[]为“0”,控制单元38以新数据DTD重写数据存储器33。除了上述功能之外,控制单元38还具有保持从CPU 10提供的地址信号ADT的功能,以便输出作为地址信号的最高有效位的标记地址TAD、作为地址信号的中间位的索引地址IAD、以及作为地址信号的最低有效位的字节地址(字地址)。
参考图9,数据存储器33包括数据存储器地址译码器(DM地址译码器)64和存储单元阵列,存储单元阵列包括对应于四个分路的四个存储块33a至33d。数据存储器33在对应于索引地址IADD的地址存储存储在标记存储器31中的标记地址TAD和存储在主存贮设备14中的数据DT。
存储块33a至33d在由索引地址IADD指定的地址存储在标记存储器31的各个块31a至31d中存储的标记地址,以及在主存贮设备14中存储的数据。索引地址IADD不同于访问时的索引地址IADL。数据存储器33由具有等于高速缓存器11中的分路个数与每个分路中的记录个数与每个分路的每个记录的字节个数的乘积的存储容量的SRAM实现,在这个例子中即为4×64×4≈1k字节。
DM地址译码器64接收索引地址IADD、即从控制单元38提供的地址信号的中间六位,并对其进行译码,用于激活数据存储器33的对应于一个记录的一个字线。存储块33a至33d向选择器34输出选定记录的数据DTM[0]至DTM[3]。
选择器34根据比较器模块32检测到一致的分路,选择从由索引地址指定的存储单元读出的四个数据DTM[0]至DTM[3]中的一个,然后将所选择的数据作为数据DTD传送给控制单元38。一旦未命中高速缓存器数据,其中数据存储器33将被新访问数据重写,则数据存储器33通过与读出数据DTM[]类似地选择记录而存储从主存贮设备14读出的数据DTD。
更具体地说,选择器34从数据存储器33的存储块33a至33d接收数据DTM[0]至DTM[3],并根据在命中高速缓存器之后从控制单元38提供的选择信号DSL[]选择数据DTD中的一个,然后将选择的数据DTD传送给控制单元38,选择信号DSL[]指定数据存储器33中的一个分路。一旦未命中,选择器34向由选择信号DSL指定的一个分路传送从主存贮设备14读出的数据BAD。将数据作为新数据DTM[]存储在由索引地址IADD指定的记录中。
控制单元38中包括内部选择器65,内部选择器65选择命中信号HIT[]和替换信号OUT[]中的一个,并将选择的信号作为选择信号DSL传送给选择器34。也就是说,一旦命中高速缓存器,则DSL[n]=HIT[n],而一旦未命中,则DSL[n]=OUT[n],其中n=0至3。
参考图10,LRU信息存贮器35包括用于译码索引地址IADL的LRU地址译码器、具有六个用于存储每个记录的一访问历史位的存储块的存储单元阵列15、用于产生LRU信息数据的数据发生器16、以及用于将LRU信息写到存储块15的写电路67。
存储块15以6位信息存储每个记录的访问历史。每个存储块15存储一个相应位W[A,B],如图6和图7所示。图7显示了访问历史位,最近最少访问的分路在一个方框中。例如,第一个方框显示了分路-0是最近最少使用的分路的情况,并定义一位的替换信号OUT[0]。
LRU信息存贮器35的存储块15由具有对应于每个分路中的记录个数与分路的存储历史的位的个数的乘积的存储容量、即64×6=384位的SRAM实现。
LRU地址译码器66接收从控制单元38提供的索引地址IADL,对其进行译码,以便激活一个字线。存储块15将一个选定记录的访问历史位传送给替换控制器37。
在控制单元38中提供的另一个内部选择器68选择命中信号HIT[]和替换信号OUT[]中的一个,并将选定的信号作为新访问分路信号NAW[]传送给LRU数据发生器16。一旦命中,NAW[n]=HIT[n],其中n=0至3,而一旦未命中,NAW[n]=OUT[n]。
LRU数据发生器16根据NAW[]产生一个6位LRU写数据LW[]和一个6位LRU写使能信号LE[],并传送给存储块15,用于更新其内容。
在这里,对于分路-A和分路-B,6位LRU写使能信号中的一位和6位LRU写数据中的一位分别由LE[A,B]和LW[A,B]表示。在分路-L被命中之后,写数据LW[A,B]为LW[A,L]=0以及LW[L,B]=1,其中A<L<B。在这种情况下,写使能信号可以由LE[A,L]=LE[L,B]=1表示。
在LRU算法中,访问历史被对于分路的每个组合在每两个分路之间哪个分路最近最多被访问这个事实所限定。于是,用N(N-1)/2位表示N分路的访问历史。将包括多个位W[A,B]的访问历史存储在LRU信息存贮器35的存储块15中。
访问历史W[]在每次高速缓存器11被命中并被访问以存储最近的数据时被更新,其中命中数据被变为最近最多访问的数据。如果高速缓存器未被命中,更新访问历史,以便将替换最近最少使用的数据的新数据定义为最近最多使用的数据。然而,在这种情况下,如果最近最多使用的数据再次被命中,则数据不被替换。
一旦更新了访问历史,LRU数据发生器16根据分路命中或替换信息产生如表-1所示的访问历史。
表1
命中 | LW[0,1] | LW[0,2] | LW[0,3] | LW[1,2] | LW[1,3] | LW[2,3] |
分路-0 | 1 | 1 | 1 | 0 | 0 | 0 |
分路-1 | 0 | 0 | 0 | 1 | 1 | 0 |
分路-2 | 0 | 0 | 0 | 0 | 0 | 1 |
分路-3 | 0 | 0 | 0 | 0 | 0 | 0 |
LRU数据写电路16重写由LRU写使能信号LE[A,B]指定的6-位访问历史的三位。表2显示了每种命中情况下的LRU写使能信号。
表2
命中 | LE[0,1] | LE[0,2] | LE[0,3] | LE[1,2] | LE[1,3] | LE[2,3] |
分路-0 | 1 | 1 | 1 | 0 | 0 | 0 |
分路-1 | 1 | 0 | 0 | 1 | 1 | 0 |
分路-2 | 0 | 1 | 0 | 1 | 0 | 1 |
分路-3 | 0 | 0 | 1 | 0 | 1 | 1 |
LRU数据发生器16在命中分路-L之后根据表1和表2产生新访问历史,并将新访问历史写到指定位上。例如,如果分路=1被命中,LRU数据写电路67以新数据“011”重写访问历史的位W[0,1]、W[1,2]和W[1,3],从而获得一个新访问历史如“0dd11d”,其中“d”保持访问历史的先前位。
参考图11,冻结信息存贮器36包括存储单元阵列20、冻结访问译码器69和冻结数据写电路70。
存储单元阵列(冻结存储阵列)20为其中的每个记录存储分路的冻结信息FRZ[]。分路-0至分路-2的冻结数据分别对应于FRZ[0]至FRZ[2]。如果存储的冻结信息FRZ[]假设为“1”,则使相应数据被冻结,不由新访问数据替换,而如果存储的冻结信息假设为“0”,则可以用新访问数据替换相应数据。
冻结存储阵列20由具有对应于分路个数减1与每个分路中的记录个数的乘积的存储容量、即3×64=192位的SRAM实现。存储容量可以根据要进行冻结的面积而改变。例如,对于冻结四个分路的情况,存储容量可以具有4×64位,对于冻结单个分路的情况,存储容量可以具有1×64位。
冻结地址译码器69接收索引地址IADL,其中索引地址IADL是从控制单元38提供的地址信号的中间六位,然后对其进行译码,以激活冻结存储阵列20的一个字线用于访问。冻结存储阵列20将选定记录的冻结信息FRZ[0]至FRZ[2]传送给替换控制器37。在本实施例的一种修改方案中,通过使用LRU地址译码器66来访问冻结存储阵列20,可以省略冻结地址译码器69。另外,例如LRU信息存贮器35的存储阵列15和冻结存储阵列20例如可以用具有公共字线的单个SRAM来实现。
冻结数据写电路70根据从控制单元38提供的冻结写数据FW[]和冻结写使能信号FE[]将冻结信息写在冻结存储阵列20中由索引地址IADL指定的存储单元。例如,如果分路-K(0≤K≤2)将要进行冻结,将冻结写数据FW[K]=1和冻结写使能信号FE[K]=1和FE[A]=0(A≠K)提供给冻结数据写电路70,冻结数据写电路70将所需数据写入冻结存储阵列20。
分路-K从冻结状态的释放可以通过在控制单元38中将冻结写数据FW[K]设置在“0”以及将冻结写使能信号FE[K]设置在“1”并将冻结写数据FW[K]和冻结写使能信号FE[K]传送给冻结数据写电路70来实现,其中冻结数据写电路70将冻结写数据写到冻结存储阵列20。
参考图12,显示了在计算机系统启动之后将冻结信息写到冻结存储阵列20的过程的流程图。在该过程中,通过应用冻结I/O指令,复制存储在主存贮设备14的指定单元中的数据,用于将数据存储在高速缓存器11中的指定位置。主存贮设备14具有一个存储器空间,如图13所示,包括在地址ADR0和ADR4-1之间的程序区域,以及在地址ADR4以上的数据区域。在这个例子中,将要经受冻结的程序存储在主存贮设备14的地址ADR2和地址ADR3-1之间。
数据区域包括在地址ADR5和ADR6-1之间的数据区域内的工作区域,用于在将程序传输到高速缓存器11的分路-0以进行冻结之前临时存储程序。类似地,在地址ADR6和地址ADR7-1之间以及在地址ADR7和地址ADR8-1之间的工作区域是为分路-1和分路-2配置的。在这个例子中,将存储在地址ADR2和地址ADR3-1之间的并要被冻结的程序传输给分路-1。
在图12的步骤S11,通过块复制把要冻结的程序复制到为分路-1配置的在地址ADR6和地址ADR7-1之间的工作区域,以便为使用预先建立好的标准冻结I/O指令将工作区域中的数据复制到分路-1作准备。
在步骤S12,CPU 10执行冻结I/O指令,以设置主存贮设备在ADR2/ADR3-1的起始/结束地址以及在分路-1的程序的目的单元。在另一个例子中,CPU 10可以与分路信息分开传送主存贮设备中的程序的地址信息,或者可以根据分路信息产生地址信息。
在步骤S13,控制单元38向总线控制单元(BCU)12输出一个地址信号BAD,并从主存贮设备14读出程序的数据BDT。在这种情况下,将读地址从地址ADR6增至ADR7-1。
在步骤S14,控制单元38将对应于在步骤S13提供的读地址BAD的索引地址IADD传送给数据存储器33,将数据BDT和选择信号DSL传送给选择器34,从而将数据DAT存储在数据存储器33的分路-1中。
在步骤S15,控制单元38将对应于读地址BAD的索引地址IADL传送给LRU信息存贮器35和冻结信息存贮器36,并将新访问分路信息、即NAW[1]=1传送给LRU信息存贮器35。控制单元38然后将冻结写数据FW[1]=1和冻结写使能信号FE[1]=1传送给冻结信息存贮器36,从而将冻结数据FRZ[1]=1写到冻结存储阵列20的地址IADL,并将分路-1的相应地址设置为冻结。
在步骤S16,控制单元38递增地址DR。在步骤S17,控制单元检查地址ADR是否到达结束地址ADR7。如果地址低于结束地址,则步骤返回步骤S13,重复上述过程,如果地址达到结束地址,则结束冻结传输过程。
参考图14,显示了将冻结信息存储到冻结存储阵列20的另一个过程的流程图。
在这个例子中,把要被冻结并存储在主存贮设备的地址ADR1(图13)的程序传输到高速缓存器的分路-2,并应用冻结指令进行冻结。
在步骤S21,从CPU提供一个加载指令,用于读取主存贮设备14的地址ADR1中存储的一单行程序,同时将地址ADR1提供给控制单元38。
在步骤S22,控制单元38将对应于地址ADR5的索引地址IADT传送给标记信息存贮器31,并将一个标记地址TAD传送给比较器模块32。
在步骤S23,检查比较器模块32是否传送一命中信号HIT[]。如果比较器模块32传送一命中信号,则步骤进行到步骤S35,如果否,则进行到步骤S24。
在步骤S24,控制单元38将地址信号BAD=ADR1传送给BCU12,并从主存贮设备14读出要冻结的数据BDT。
在步骤S25,控制单元38将对应于地址ADR1的索引地址IADL传送给冻结信息存贮器36,并接收冻结信息FRZ[0]-FRZ[2]。
在步骤S26,控制单元38判断冻结是否有可能进行。如果冻结信息FRZ[0]-FRZ[2]中的一位为“0”,则控制单元38判断为冻结有可能进行,进行到步骤S27。另一方面,如果冻结信息FRZ[0]-FRZ[2]中的每个位都为“1”,则控制单元判断为冻结不可能进行,结束该过程。
在步骤S27,控制单元38将对应于地址ADR1的索引地址IADL传送给LRU信息存贮器35,并接收替换信号OUT[0]至OUT[3]。
在步骤S28,控制单元38检查替换信号OUT[0]至OUT[2]。如果OUT[0]至OUT[2]中的一个为“1”,则控制单元38进行到步骤S30,而如果OUT[3]为“1”,则进行到步骤S29。
在步骤S29,控制单元38按照FRZ[2]、FRZ[1]和FRZ[0]的顺序检查冻结信息,从而检测不被冻结的分路,即具有冻结信息FRZ[F]=0的分路(分路-F)。将首先检测到的分路F确定为要被替换的主题(subject)分路,过程进行到步骤S31。
在步骤S30,将具有OUT[F]=1的分路(分路-F)确定为要被替换的主题分路。
在步骤S31,控制单元38将对应于地址ADR1的索引地址IADT传送给标记存储器31,从而接收一个页面重写标志位读信息DRTO[F]。
在步骤S32,控制单元38检查页面重写标志位读信息DRTO[F],如果DRTO[F]为“1”,则进行到步骤S33,而如果DRTO[F]为“0”,则进行到步骤S34。
在步骤S33,控制单元38将对应于地址ADR1的索引地址IADD传送给数据存储器33,接收要被替换的主题数据DTM[F],并将其传送给BCU 12,将对应于地址ADR1的索引地址IADT传送给标记存储器33。控制单元38接收要被替换的主题分路的地址TAM[F],将地址信号BAD传送给BCU 12,并将数据存储器33的内容复制回主存贮设备14。接着,控制单元38将对应于标记地址TAD的页面重写标志位重写为“0”。
在步骤S34,控制单元38将受冻结的数据BDT写到要被替换的数据存储器33的分路-F中。
在步骤S35,CPU 10执行冻结设置指令,从而允许控制单元38将对应于地址ADR1的索引地址传送到LRU信息存贮器35和冻结信息存贮器36,并将新访问分路信息NAW[F]=1传送给LRU信息存贮器35。控制单元38将冻结写数据FW[F]=1和冻结写使能信号FE[F]=1传送给冻结存储器36,从而将FRZ[F]=1存储在冻结存储阵列20的地址IADL中,并将分路-F的对应地址设置为冻结状态。
还有两种技术用于将冻结信息写到冻结存储阵列20,包括“预置技术”和“请求式技术”。预置技术是这样一种技术,即在开始或执行程序之前存储高速处理所需的程序或数字数据,用于高速缓存器的冻结。更具体地,预置操作由CPU实现,CPU从主存贮设备的指定地址读取数据,并根据I/O指令将数据直接写到数据存储器、标记存储器和冻结存储器。
请求式技术是这样一种技术,即首先将高速处理所需的专门程序或数字数据无冻结地存储在高速缓存器中。在执行程序期间,将程序或数据进行冻结或从冻结状态释放。更具体地,CPU从主存贮设备读取程序或数字数据,并将其传送给高速缓存器。CPU为存储了程序的分路读取信息,然后直接存储用于冻结或从冻结状态释放在高速缓存数据的记录地址中的程序的指令数据,以及对应于该分路的冻结存储器的位。
参考图15,替换控制器37由有线逻辑电路实现,包括冻结控制器21和LRU译码器22。冻结控制器由多个逻辑元件实现,接收6位访问信息W[0,1]至W[2,3]和3位冻结信息FRZ[0]至FRZ[2],以传送6位中间信息M[0,1]至M[2,3]。
LRU译码器22也由逻辑元件实现,根据6位中间信息M[0,1]至M[2,3]传送一个包括三位OUT[0]至OUT[3]的替换信号。
现在将说明第一种情况下的替换控制器37的操作,其中,冻结信息的所有位FRZ[0]至FRZ[2]为“0”,因此不执行冻结处理。在这种情况下,M[A,B]=W[A,B]。
LRU译码器22根据从LRU信息存贮器35读出的6位访问历史W[0,1]至W[2,3]检测四个分路中的最近最少使用的分路,从而输出一个替换信号OUT[0]至OUT[3]。在任何情况下,替换信号OUT[0]至OUT[3]中的一位假设为“1”,剩下的假设为“0”,其中对应于假设为“1”的位的分路将被替换。
如同从图7可理解的,例如,如果分路-0是最近最少使用的分路,则访问历史为使得W[0,1]、W[0,2]和W[0,3]取“0”。根据图7,替换信号的位OUT[0]至OUT[3]按照访问历史可以由下式表示:
OUT[0]=(!W[0,1])×(!W[0,2])×(!W[0,3]) (1)
OUT[1]=(W[0,1])×(!W[1,2])×(!W[1,3]) (2)
OUT[2]=(W[0,2])×(W[1,2])×(!W[2,3]) (3)
OUT[3]=(W[0,3])×(W[1,3])×(W[2,3]) (4)其中,在一特定信号之前放置的“!”表示带有的“!”信号是指定信号的反转。
在更一般性的表达中,在N-分路-成组相联高速缓存器中,中间信息M[A,B]包括(N(N-1)/2)个位,每位定义在每两个分路、即分路-A和分路-B之间。按照访问历史WA,B]和冻结信息FRZ[A]和FRZ[B]将中间信息的每位M[A,B]定义如下:
M[A,B]=W[A,B]+FRZ[A] 其中0≤A<B=N-1 (5)
M[A,B]=(W[A,B]+FRZ[A])×!FRZ[B]其中0≤A<B<N-1(6)
在冻结控制器21中计算中间信息。
中间信息用于在LRU译码器22中产生一个替换信息。替换信息由中间信息定义如下: 其中0<X<N-1 一般地,∏函数定义如下:
替换信息可以以更具体的形式表示如下:
OUT[0]=!M[0,1]×!M[0,2]×…×!M[0,N-1]
OUT[1]=M[0,1]×!M[1,2]×…×!M[1,N-1]
OUT[2]=M[0,2]×M[1,2]×…×!M[0,N-1]
……
OUT[N-1]=M[0,N-1]×M[1,N-1]×…×M[N-2,N-1]
一般地,4-分路-成组相联高速缓存器具有关于三个分路、即FRZ[0]、FRZ[1]和FRZ[2]的冻结信息,剩下一个分路(分路-4)是要被替换的分路。在4-分路-成组相联高速缓存器中,中间信息由下式表不:
M[0,1]=(W[0,1]+FRZ[0])×!FRZ[1]
M[0,2]=(W[0,2]+FRZ[0])×!FRZ[2]
M[0,3]=(W[0,3]+FRZ[0])
M[1,2]=(W[1,2]+FRZ[1])×!FRZ[2]
M[1,3]=(W[0,3]+FRZ[1])
M[2,3]=(W[2,3]+FRZ[2])
在这种情况下,替换信息由下式表示:
OUT[0]=!M[0,1]×!M[0,2]×!M[0,3]
OUT[1]=M[0,1]×!M[1,2]×!M[1,3]
OUT[2]=M[0,2]×M[1,2]×!M[2,3]
OUT[3]=M[0,3]×M[1,3]×M[2,3]
接着,将给出4-分路-成组相联高速缓存器的中间信息和替换信息的具体例子。
首先,考虑一种情况,在高速缓存器中不考虑冻结信息,并且访问历史表明在最近最多使用基础上的分路-0、分路-1、分路-2和分路-3的访问顺序,即如图7的顶行所示的分路-0←分路-1←分路-2←分路-3。在这种情况下,替换信息如下:
OUT[0]=!1×!0×!1=0
OUT[1]=1×!0×!1=0
OUT[2]=0×0×!1=0以及
OUT3=1×1×1=1
于是,分路-3是最近最少使用的分路,是接着要替换的主题分路。
然而,在本发明中,因为LRU算法由冻结信息修改了,所以情况是不同的。假设访问历史表明在最近最多使用基础上的分路-3、分路-1、分路-2和分路-0的访问顺序,如图6的命中分路-3的第四个数据方框中的第四行所示(从下面数第三行),并且分路-0先被冻结。在这种情况下,如图6所示,访问历史表明W[0,1]、W[0,2]、W[0,3]、W[1,2]、W[1,3]和W[2,3]=“000100”,而冻结信息表明FRZ[0]=1、FRZ[1]=1以及FRZ[2]=1。
中间信息的计算如下:
M[0,1]=(W[0,1]+FRZ[0])×!FRZ[1]=1
M[0,2]=(W[0,2]+FRZ[0])×!FRZ[2]=1
M[0,3]=(W[0,3]+FRZ[0])=1
M[1,2]=(W[1,2]+FRZ[1])×!FRZ[2]=1
M[1,3]=(W[0,3]+FRZ[1])=0
M[2,3]=(W[2,3]+FRZ[2])=0
由上式获得的结果显示出,用中间信息表示的访问历史对应于分路-0、分路-3、分路-1和分路-2的访问顺序,如图6的第五行所示。也就是说,可以表达为,虽然LRU信息存贮器中存储的访问历史本身未改变,但从冻结控制器提供的用中间信息表示的访问历史由访问顺序分路-0、分路-3、分路-1和分路-2重写,其中分路-0是最近最多使用的分路。
LRU译码器22传送如下的替换信息:
OUT[0]=!M[0,1]×!M[0,2]×!M[0,3]=0
OUT[1]=M[0,1]×!M[1,2]×!M[1,3]=0
OUT[2]=M[0,2]×M[1,2]×!M[2,3]=1
OUT[3]=M[0,3]×M[1,3]×M[2,3]=0
因此,分路-2根据替换信息被替换,而分路-0根据冻结信息不被替换。
在另一个例子中,在访问顺序为分路-3、分路-1、分路-2和分路-0的情况下,假设分路-0和分路-1要被冻结。在这种情况下,冻结信息表明FRZ[0]=1、FRZ[1]=1以及FRZ[2]=0,而访问历史表明W[0,1]、W[0,2]、W[0,3]、W[1,2]、W[1,3]和W[2,3]=“000100”。
中间信息的计算如下:
M[0,1]=(W[0,1]+FRZ[0])×!FRZ[1]=0
M[0,2]=(W[0,2]+FRZ[0])×!FRZ[2]=1
M[0,3]=(W[0,3]+FRZ[0])=1
M[1,2]=(W[1,2]+FRZ[1])×!FRZ[2]=1
M[1,3]=(W[0,3]+FRZ[1])=1
M[2,3]=(W[2,3]+FRZ[2])=0
由上式获得的结果“011110”显示出,用中间信息表示的访问历史对应于分路-1、分路-0、分路-3和分路-2的访问顺序。也就是说,可以表达为,虽然LRU信息存贮器中存储的访问历史本身未改变,但从冻结控制器21提供的用中间信息表示的访问历史由访问顺序分路-1、分路-0、分路-3和分路-2重写,其中分路-0和分路-1是最近最多使用的两个分路。
LRU译码器22传送如下的替换信息:
OUT[0]=!M[0,1]×!M[0,2]×!M[0,3]=0
OUT[1]=M[0,1]×!M[1,2]×!M[1,3]=0
OUT[2]=M[0,2]×M[1,2]×!M[2,3]=1
OUT[3]=M[0,3]×M[1,3]×M[2,3]=0
因此,分路-2根据替换信息被替换,而分路-0和分路-1根据冻结信息不被替换。
在上述实施例中,用中间信息表示的有效访问历史由冻结信息修改,而在每两个分路之间表示的访问历史本身不改变。这提供了具有冻结功能的高速缓存器的简单结构。
在上述例子中,访问历史、中间信息(修改的访问历史)和替换信息都用正逻辑表达。然而,也可以采用负逻辑来代替。另外,替换控制器37的冻结控制器21和LRU译码器22中的每个都可以用软件程序实现。在这种情况下,可以将初始访问历史存储在LRU信息存贮器中,用于产生中间信息。只要LRU信息可以根据存储的访问信息获得,就不需要LRU信息存贮器存储LRU本身的访问信息。
在本实施例中,由于除了最后一个分路以外的任何个数的分路都可以进行冻结,所以可以进行冻结的设计选择。
此外,在高速缓存器在冻结基础上的一些操作之后,如果将冻结存储器复位以存储零冻结,由于LRU信息存贮器存储最近的访问历史而没有修改,所以高速缓存器可以只在LRU的基础上操作,而不在冻结基础上修改。
冻结信息存贮器为每个记录存储具有N-1位的冻结信息,这只需要中等个数的位用于此目的。例如,在具有64个记录的4-分路-成组相联高速缓存器的情况下,只需要192=3×64位就足够用于存储冻结信息。这提供了更简单结构的高速缓存器。另外,在未命中之后,LRU信息存贮器本身不被重写,可以提高高速缓存器的通过量。
在本发明的实施例中,由于多个分路可以进行冻结,所以可以将具有大量数据的程序存储在高速缓存器中用于冻结。在常规的高速缓存器中,由于只有单个分路可以被冻结,所以具有超过单个分路容量的大的程序不能进行冻结。
一般地,要求能够根据小数目的设计通过采用程序稍微修改设计以适应专门需求来制造半导体器件。依据本发明的高速缓存器可以被应用到以LRU技术操作的没有冻结功能的任何一个高速缓存器、以LRU技术操作的由冻结功能修改的高速缓存器以及采用具有由高速ROM或RAM实现的部分的高速缓存器的计算机系统上。于是,该高速缓存器的单个设计可用于许多种高速缓存器。
特别地,将LRU信息变换成中间信息的冻结控制器的构造使得通过在高速缓存器中增加一个简单的元件,就可以修改以LRU技术操作的高速缓存器的现有设计,以获得具有冻结功能的高速缓存器。
由于仅以例示方式描述了上述实施例,本发明并不限于上述实施例和各种修改或改变。
Claims (13)
1.一种高速缓存装置,包括具有多个分路的数据存贮部分,每个分路用于存储所需数据;LRU信息存贮部分,用于存储记录所述多个分路的访问顺序的访问信息;冻结信息存贮部分,用于存储至少一个所述分路的冻结信息;替换控制器,用于根据通过使用所述冻结信息从所述访问信息修改的修改访问信息产生替换信息,而不用所述修改的访问信息替换存储在所述LRU信息存贮部分中的所述访问信息,所述替换信息防止在至少一个所述分路中的数据被新数据替换。
2.如权利要求1所述的高速缓存装置,其中,所述访问信息包括多个位,每个位对应于两个所述分路的组合,所述替换信息包括个数等于所述分路的个数的多个位。
3.如权利要求2所述的高速缓存装置,其中,所述替换控制器包括一个用于产生所述修改的访问信息的冻结控制器,以及一个用于译码所述修改的访问信息以产生所述替换信息的译码器。
4.如权利要求3所述的高速缓存装置,其中,所述修改的访问信息的每位M[A,B]由下式表示:
M[A,B]=W[A,B]+FRZ[A] 对于0≤A<B=N-1;以及
M[A,B]=(W[A,B]+FRZ[A])×!FRZ[B] 对于0≤A<B<N-1
其中,W[A,B]、FRZ[A]、FRZ[B]、!FRZ[B]是在分路-A和分路-B之间的所述访问历史位、分路-A的所述冻结信息位、分路-B的所述冻结信息位、以及分路-B的冻结信息反转位。
6.如权利要求1所述的高速缓存装置,其中,所述冻结信息包括个数等于所述分路个数减1的多个位。
7.如权利要求6所述的高速缓存装置,其中,所述修改的访问信息为使得被冻结的任何一个所述分路具有用N个所述分路中的LRU表示的在第一和第(N-1)之间的顺序。
8.如权利要求1所述的高速缓存装置,其中,所述替换控制器由一个有线逻辑电路实现。
9.一种用于控制高速缓存器的方法,该高速缓存器具有多个用于存储所需数据的分路,所述方法包括下列反复的步骤:存储记录分路的访问历史的访问信息,存储至少一个分路的冻结信息,以及根据通过使用所述冻结信息从所述访问信息修改的修改访问信息产生替换信息,而不用所述修改的访问信息替换所述存储的访问信息。
10.如权利要求9所述的方法,其中,所述访问信息包括多个位,每个位对应于两个所述分路的组合,所述替换信息包括个数等于所述分路的个数的多个位。
11.如权利要求10所述的方法,其中,所述修改的访问信息的每个位M[A,B]由下式表示:
M[A,B]=W[A,B]+FRZ[A] 对于0≤A<B=N-1;以及
M[A,B]=(W[A,B]+FRZ[A])×!FRZ[B] 对于0≤A<B<N-1其中,W[A,B]、FRZ[A]、FRZ[B]、!FRZ[B]分别是在分路-A和分路-B之间的所述访问历史位、分路-A的所述冻结信息位、分路-B的所述冻结信息位、以及分路-B的冻结信息反转位。
12.如权利要求11所述的方法,其中,所述替换信息的每位OUT[X]由下式表示,其中0≤X≤N-1: 其中0<X<N-1
13.如权利要求9所述的方法,其中,所述冻结信息包括个数等于所述分路个数减1的多个位。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP311044/1998 | 1998-10-30 | ||
JP31104498 | 1998-10-30 | ||
JP285512/1999 | 1999-10-06 | ||
JP11285512A JP2000200221A (ja) | 1998-10-30 | 1999-10-06 | キャッシュメモリ装置及びその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1255675A true CN1255675A (zh) | 2000-06-07 |
Family
ID=26555922
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN99122311A Pending CN1255675A (zh) | 1998-10-30 | 1999-10-29 | 具有冻结功能的高速缓存器 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP0997821A1 (zh) |
JP (1) | JP2000200221A (zh) |
CN (1) | CN1255675A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1322430C (zh) * | 2003-11-24 | 2007-06-20 | 佛山市顺德区顺达电脑厂有限公司 | 高速缓存代换方法 |
CN100397367C (zh) * | 2002-12-12 | 2008-06-25 | 国际商业机器公司 | 用于实时应用程序的改进的存储器管理 |
CN100429633C (zh) * | 2004-04-27 | 2008-10-29 | 皇家飞利浦电子股份有限公司 | 一种处理来自磁盘的数据的方法以及使用该方法的装置 |
CN100440177C (zh) * | 2004-08-11 | 2008-12-03 | 国际商业机器公司 | 用于软件可控动态可锁高速缓冲存储器线替换系统的方法 |
CN101151599B (zh) * | 2005-03-31 | 2011-08-03 | 株式会社半导体能源研究所 | 算术处理装置和使用算术处理装置的电子设备 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6848024B1 (en) * | 2000-08-07 | 2005-01-25 | Broadcom Corporation | Programmably disabling one or more cache entries |
US6748492B1 (en) | 2000-08-07 | 2004-06-08 | Broadcom Corporation | Deterministic setting of replacement policy in a cache through way selection |
US6732234B1 (en) | 2000-08-07 | 2004-05-04 | Broadcom Corporation | Direct access mode for a cache |
US6748495B2 (en) | 2001-05-15 | 2004-06-08 | Broadcom Corporation | Random generator |
US7266587B2 (en) | 2002-05-15 | 2007-09-04 | Broadcom Corporation | System having interfaces, switch, and memory bridge for CC-NUMA operation |
KR100837479B1 (ko) | 2003-12-22 | 2008-06-12 | 마쯔시다덴기산교 가부시키가이샤 | 캐시 메모리 및 그 제어 방법 |
WO2013098919A1 (ja) | 2011-12-26 | 2013-07-04 | ルネサスエレクトロニクス株式会社 | データ処理装置 |
CN102916776B (zh) * | 2012-10-15 | 2015-09-09 | 青岛海信宽带多媒体技术有限公司 | 光模块参数传输方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4361878A (en) * | 1980-10-27 | 1982-11-30 | Control Data Corporation | Degradable LRU circuit |
US4513367A (en) * | 1981-03-23 | 1985-04-23 | International Business Machines Corporation | Cache locking controls in a multiprocessor |
JPH0667980A (ja) * | 1992-05-12 | 1994-03-11 | Unisys Corp | 4ブロックキャッシュメモリへのアクセスを最適化するためのキャッシュ論理システムおよびメインフレームコンピュータの高速キャッシュメモリへのアクセス時のダブルミスを防ぐ方法 |
US5584014A (en) * | 1994-12-20 | 1996-12-10 | Sun Microsystems, Inc. | Apparatus and method to preserve data in a set associative memory device |
-
1999
- 1999-10-06 JP JP11285512A patent/JP2000200221A/ja active Pending
- 1999-10-22 EP EP99121146A patent/EP0997821A1/en not_active Withdrawn
- 1999-10-29 CN CN99122311A patent/CN1255675A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100397367C (zh) * | 2002-12-12 | 2008-06-25 | 国际商业机器公司 | 用于实时应用程序的改进的存储器管理 |
CN1322430C (zh) * | 2003-11-24 | 2007-06-20 | 佛山市顺德区顺达电脑厂有限公司 | 高速缓存代换方法 |
CN100429633C (zh) * | 2004-04-27 | 2008-10-29 | 皇家飞利浦电子股份有限公司 | 一种处理来自磁盘的数据的方法以及使用该方法的装置 |
CN100440177C (zh) * | 2004-08-11 | 2008-12-03 | 国际商业机器公司 | 用于软件可控动态可锁高速缓冲存储器线替换系统的方法 |
CN101151599B (zh) * | 2005-03-31 | 2011-08-03 | 株式会社半导体能源研究所 | 算术处理装置和使用算术处理装置的电子设备 |
Also Published As
Publication number | Publication date |
---|---|
JP2000200221A (ja) | 2000-07-18 |
EP0997821A1 (en) | 2000-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1276358C (zh) | 用于存储设备的地址转换单元 | |
CN1152287C (zh) | 二进制程序转换设备和转换方法 | |
CN1295706C (zh) | 非易失存储器、记录装置和记录方法 | |
CN1879092A (zh) | 高速缓冲存储器及其控制方法 | |
CN1315057C (zh) | 重映射闪速存储器的方法 | |
CN1186729C (zh) | 从虚地址计算页表索引的方法和装置 | |
CN1255675A (zh) | 具有冻结功能的高速缓存器 | |
CN1934543A (zh) | 高速缓冲存储器及其控制方法 | |
CN1227589C (zh) | 用于保存返回状态的数据处理设备和方法 | |
CN1278243C (zh) | 用于合并存贮的数据项的按块擦除存储系统和方法 | |
CN1159644C (zh) | 盘式存储装置和数据预读方法 | |
CN1260665C (zh) | 用于管理可换存储媒体的设备和方法 | |
CN101046771A (zh) | 使用闪存的存储系统及其平均读写方法和平均读写程序 | |
CN1881183A (zh) | 信息处理装置、进程控制方法及其计算机程序 | |
CN1632877A (zh) | 可变延滞时间堆栈快取存储器及提供资料的方法 | |
CN101030157A (zh) | 一种用户词库同步更新的方法和系统 | |
CN1613058A (zh) | 配有jit编译器的虚拟计算机,操作所述计算机的方法以及包括所述虚拟计算机的终端设备 | |
CN1848010A (zh) | 程序变换装置 | |
CN1297905C (zh) | 高速缓存控制器、高速缓存控制方法以及计算机系统 | |
CN1898654A (zh) | 高速缓冲存储器及其控制方法 | |
CN1904859A (zh) | 复合型记录装置、数据写入方法和数据写入程序 | |
CN1882923A (zh) | 高速缓冲存储器及其控制方法 | |
CN101065725A (zh) | 命令供给装置 | |
CN1194321C (zh) | 高速信息检索系统 | |
CN1241111C (zh) | 用于支持在计算机系统上进行程序设计的设备和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
ASS | Succession or assignment of patent right |
Owner name: NEC ELECTRONICS TAIWAN LTD. Free format text: FORMER OWNER: NIPPON ELECTRIC CO., LTD. Effective date: 20030410 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20030410 Address after: Kanagawa, Japan Applicant after: NEC Corp. Address before: Tokyo, Japan Applicant before: NEC Corp. |
|
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |