CN1206150A - 改良的高速缓存系统 - Google Patents

改良的高速缓存系统 Download PDF

Info

Publication number
CN1206150A
CN1206150A CN97123043A CN97123043A CN1206150A CN 1206150 A CN1206150 A CN 1206150A CN 97123043 A CN97123043 A CN 97123043A CN 97123043 A CN97123043 A CN 97123043A CN 1206150 A CN1206150 A CN 1206150A
Authority
CN
China
Prior art keywords
register
address
entry address
stack
circuit
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
Application number
CN97123043A
Other languages
English (en)
Other versions
CN1093962C (zh
Inventor
C·P·米勒
D·E·庞修斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1206150A publication Critical patent/CN1206150A/zh
Application granted granted Critical
Publication of CN1093962C publication Critical patent/CN1093962C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Abstract

在高速缓存系统中使用最近最少使用替换机制处理无效数据的方法和结构,它包括:第一寄存器栈,第二寄存器栈和栈控制逻辑。第一寄存器栈含有保持入口地址信息的寄存器。栈控制逻辑含有禁止在第一寄存器栈的最近经常使用寄存器中进行无效入口地址替换。栈控制逻辑还指令将任何新的入口地址放置在第一寄存器栈中已经存有无效入口地址的单元中。无效入口地址通过第二寄存器栈从高速缓存中输出,而有效最近最少使用入口地址则保留在第一寄存器栈中。

Description

改良的高速缓存系统
本发明总的来说涉及高速缓存设备,更具体地说,涉及具有最近最少使用(LRU)替换机制的高速缓存设备。本发明还涉及处理高速缓存系统中无效数据的方法。
个人计算机系统在本专业中是众所周知的。一般来说个人计算机,尤其是IBM个人计算机已经得到了广泛的应用,为今天的现代社会的各个方面提供计算功能。个人计算机一般被定义为台式的,落地式的,或便携式微型计算机,它包括具有以下部件的系统单元:中央处理单元(CPU),或处理器;以及相关的易失“或非”易失性存储器,所述存储器包括所有的随机存储器RAM和基本输入输出系统只读存储器BIOS ROM;系统监视器;键盘;一个或多个软磁盘驱动器;固定盘驱动器(也被称为“硬盘”);被称作“鼠标器”的指示器;和任选的打印机。这些系统显著的特点之一是使用母板或系统板将这些部件在电气上连接在一起。这些系统首先被设计用来给个人用户以独立的计算能力,并且其低廉的价格使得个人或小公司能够买得起。这种个人计算机系统的例子如,IBM’s个人计算机AT(IBMPC/AT),IBM’s APTIVA,个人系统/1(IBM PS/1),以及个人系统/2(IBM PS/2)。
这种系统的心脏是微处理器或中央处理单元(CPU)(一般称之为“处理器”)。所述处理器负责完成大多数的应用程序功能。系统执行的能力与CPU的关系密切:CPU执行程序指令越快,整个系统运线的越快。
早期的处理器根据比较慢的系统存储器来执行指令,执行一条单指令需要几个时钟周期。它们要从存储器中读取一条指令,对所述指令译码,完成所需的动作,并将结果回写到存储器中,所有这些需要花一个或多个时钟周期的时间来完成。
由于实际应用要求处理器的能力更加强大,所以在处理器中增加了内部和外部高速缓存。高速缓存(以下称为高速缓存cache)是位于处理器内部或外部,非常快速的存储器部分,并与处理器紧密连接。将指令或数据块从相对较慢的系统存储器(DRAM)中拷贝到快速的高速缓存中,这样处理器能够快速地存取这些指令和数据。
高速缓存通常被分为两类:直接映象高速缓存和关联高速缓存。在直接映象高速缓存中,高速缓存包括直接与系统存储器中数据地址单元相对应的数据。直接映象的缺点是对应于主存储器的一块或多块高速缓存数据比系统存储器要小,并且经常被新的对应于主存储器不同的块的新数据所替换。因此,为了保持主存储器的块与关联存储器一样的有效,直接映象高速缓存必须经常地大于关联高速缓存。但不幸的是,制作大的直接映象高速缓存的结果将导致高速缓存性能的降低。由于这种原因,所以经常避免使用直接映象高速缓存。
关联高速缓存与直接映象高速缓存不同,因为关联高速缓存在它的寄存器中动态地分配数据。即,关联高速缓存中的数据与在主存储器中的数据具有不同的的物理地址。而关联高速缓存一般给数据分配一个由存储在高速缓存的数据单元所确定的高速缓存地址。由于高速缓存在报告所需信息不存在之前(即,被称为“错过”),需要进线高速缓存的查询,所以关联高速缓存一般比直接映象高速缓存慢。
然而,现在已经开发出直接映象高速缓存和关联高速缓存技术相结合的n路组关联高速缓存。在n路组关联高速缓存中,高速缓存被分成“n”块,其中每一块对应于系统存储器中的绝对地址。在“n”块的每一块中,根据所述块中存储器的位置,数据可以被动态赋值。用这种方法,n路组关联高速缓存表现出直接映象高速缓存的快速和关联高速缓存动态地址赋值的灵活性。名词术语“入口entry”与“路way”是同义词下面将被互用。
另外一个影响高速缓存性能的重要特性是当为新数据留空间时数据被从高速缓存中替换或废弃的方法。可以在先进先出(FIFO),最近最少使用(LRU),最少使用(LFU)等的基础上选择被替换的数据。虽然不存在单一最佳替换方案,但是研究表明,某种方案对于特定的一类问题是最佳的,而对于其它类问题则较差。结果,很多磁盘/主存储器系统利用近似于真正的LRU方案的非最近使用方案。使用这种方案预期“命中”将更加有可能产生随后的读操作,因为最近已经被访问的数据保留在高速缓存中,而在多次高速缓存操作之后没有被访问的数据将不保留。对于更小的关联度(2,4,或8路),非关联功能能够提供足够的LRU替换。但是对于具有高关联度(32路,64路,或更高)的高速缓存,这种方案需要大的逻辑扇入以及存储大数量的位对(bit-pairs)。对于大关联度来说,通过利用地址顺序关联可以实现真正的LRU替换。见Matick,Richard E.,计算机存储系统和技术(John Wily & Sons 1977)第591-597页。当使用多路高速缓存时,这种方案更快,更加有效。
在这种方案中,LRU替换机制将信息从上到下或从下到上存储在寄存器栈中。顶部寄存器一般包含了最近经常使用(以下称为MRU)信息,而底部寄存器一般包含了LRU信息,或者相反。所述寄存器栈一般是下推或上推栈,根据高速缓存中有无“命中”,栈顶部或底部的信息将在寄存器中向上或向下移动。“命中hit”表示所述高速缓存包含了所需信息。当一个“命中”发生在高速缓存中时,包含有所需信息的路或入口地址被放入MRU寄存器,而所有其它最近使用路或入口地址将被向下或向上朝栈的末端LRU推入。在这种方法中,路或入口地址被再次排序并在所述寄存器栈中的任何路地址单元表示它对于其它路或入口地址的相对最近程度。为进一步详细地了解LRU替换的机制,请见Matick,Richard E.,计算机存储系统和技术(John Wily & Sons 1977)第591-597页。因此,当在高速缓存中替换数据时,通过保持路或入口使用信息,真正的最近最少使用地址将被选择。
使用LRU和MRU关联排序计算的高速缓存还必需能够处理无效数据。高速缓存信息当它已经在存储器的某些区域,而不是在其它区域中被修改后,将变为无效,停滞或旧的数据,例如,在多处理器系统中,最初被存储在主存储器中的信息可能被其它的存储器修改,在这种情况下,被存储在另外的高速缓存中的信息将不再是当前信息,因为它不再是当前信息,所以所述数据被称为旧的,停滞的或无效的数据。为了检测这种情况,许多存储器系统启动所谓窥探周期。窥探周期在系统存储器,象高速缓存中查找非当前信息,并且告诉存储设备这个信息不再是当前的并且不应该再被使用。然而,这将在高速缓存中产生一个无效的入口,因为所述入口对于处理器来说将是不可用的。因为这个信息对于处理来说不再可用,因此高速缓存将被剥夺一个可用的存储单元,直到所述无效入口作为一个可替换的地址被移出LRU替换电路为止。这将需要几个周期。另外,在高速缓存中无效入口数目越大,处理器中的高速缓存越少,因此产生“命中”的高速缓存更少。最终结果是,当无效的地址信息没有尽可能快地转换成为可替换的地址时,高速缓存是低效率的。因此,需要高速缓存能够处理这种非当前的,停滞的或无效的数据。
根据本发明,为提高利用最近最少使用替换程序的多路高速缓存系统的性能和效率而提供一种方法和电路。本发明也提供一种在计算机系统中执行最近最少使用替换机制的方法。计算机系统包括一个地址内容可编址存储器和一个寄存器栈,所述寄存器栈至少含有:N个最近经常使用入口存储器;N+1个次最近经常使用入口寄存器;和N+Z最近最少使用入口寄存器,其中N是任意一个等于或大于0的整数,Z是任意一个等于或大于2的整数。每一个寄存器包括含有可以代表入口地址的二进制数的内容。执行最近最少使用替换机制的方法包括下面的步骤:确定在地址内容可编址存储器中高速缓存的访问是否被完成;如果比较操作指示在地址内容可编址存储器中的肯定匹配时,则产生新的入口地址;将新的入口地址传送到寄存器栈的若干入口地址比较器中;将新的入口地址与被存储在寄存器栈中、除了MRU或N寄存器的每一寄存器的入口地址相比较;识别出包含入口地址的寄存器栈中唯一的N+M寄存器,其中M的范围是从1到Z,并且将寄存器N到N+M-1的内容移到寄存器N+1至N+M中,而将新的入口地址移到N或MRU寄存器中。另外,所述方法规定:确定地址内容可编址存储器中高速缓存的访问操作是否被完成的的步骤还包括确定地址内容可编址存储器中比较操作或写地址操作是否被完成的步骤。
本发明同时提供一种方法,所述方法禁止多路高速缓存系统在窥探比较操作期间由窥探周期所引起的LRU寄存器栈更新。所述系统包括:地址内容可编址存储器;动态入口地址总线;LRU寄存器栈和栈控制逻辑,并且其中第一寄存器栈至少包括用来存储入口地址的N和接着的N+1入口寄存器,其中N是等于或大于0的任意整数,并且其中N和接着的N+1入口寄存器包含入口地址。禁止窥探操作期间由窥探周期所引起的LRU寄存器栈更新的方法包括下面的步骤:检测地址内容可编址存储器中高速缓存的访问操作;检测地址内容可编址存储器中的窥探周期;以及产生响应地址内容可编址存储器中高速缓存操作被执行以及地址内容可编址存储器中窥探周期被执行的禁止信号。另外,产生禁止信号的步骤包括检测地址内容可编址存储器中地址比较操作或检测地址内容可编址存储器中写地址操作的步骤。
本发明同时提供在利用最近最少使用替换机制的高速缓存系统中处理无效数据的系统和方法。在多路高速缓存系统中实现所述方法,所述多路高速缓存系统包括:地址可编址存储器,动态入口地址总线,第一寄存器栈,第二寄存器栈,栈控制逻辑,计数器,与第一寄存器栈和第二寄存器栈通信连接的多路转换器,和LRU输出。第一寄存器栈至少包括N和N+1入口寄存器,用来存储入口地址,其中,N是等于或大于0的任意整数,并且其中N和接着的N+1入口寄存器包含入口地址。第二寄存器栈至少包括M无效入口寄存器,用来存储无效入口地址,其中M是等于或大于0的任意整数,和M至1的输入/输出多路转换器,所述转换器将计数值译码并且将动态入口地址总线引入M寄存器的输入端中的一个,并将M寄存器的输出端中的一个引入所述栈输出端。在多路高速缓存中执行最近最少使用替换算法的寄存器栈,处理无效入口或路地址的方法包括下面的步骤:在栈控制逻辑电路中检测地址无效操作;输出对应于动态真和辅助入口地址总线上的系统地址的入口地址;输出从栈控制逻辑电路来的无效入口地址信号;通过多路转换器将入口地址放入M寄存器作为计数值函数;识别第二寄存器栈包括至少一个入口地址;以及把计数器增量,以指示被存储在第二寄存器栈的入口地址数量。另外所述方法还包括在第一寄存器栈中禁止更新操作的步骤,以及通过M至1多路转换器将M寄存器的输出作为计数值的函数,并将这个入口地址作为LRU信息输出。第二寄存器栈还包括至少一个M+1无效入口寄存器。每次来自第二寄存器的无效入口都被用来存储新的数据,所述计数器被减一,并且所述无效入口地址被从第二寄存器中删除。而且,所述识别第二寄存器包括至少一个入口地址的步骤包括设定标志的步骤,以指示在第二寄存器栈中至少存在一个入口地址,或换句话说,包括检查计数值的步骤,以确定它是否大于预定的值,例如零。
在栈控制逻辑电路中检测地址无效操作的步骤包括下面的步骤:检测写地址操作,检测窥探周期。换句话说,在栈控制逻辑电路中检测地址无效操作的步骤可以包括下面的步骤:检测写地址操作和检测有效位状态信息。
另外,检测窥探周期的步骤包括以下步骤:检测高速缓存数据输出控制,以确定在地址内容可编址存储器中检测比较操作时,高速缓存数据输出是否被启动。根据本发明,在高速缓存数据输出被禁止的情况下的比较操作被认为是一种窥探操作。作为一种选择,可以提供分离的窥探输入以表示执行窥探操作。
本发明还提供一种对于多路高速缓存系统,利用最近最少使用替换机制的高速缓存系统中处理无效入口和路地址的方法。所述系统包括:地址内容可编址存储器,动态入口地址总线,第一寄存器栈,第二寄存器栈,栈控制逻辑电路,计数器,与第一寄存器栈和第二寄存器栈通信连接的多路转换器。第一寄存器栈至少包括N和接着的N+1入口寄存器,用来存储入口地址,其中N是等于或大于0的任意整数,其中N和接着的N+1入口寄存器包含有入口地址。第二寄存器栈包括至少一个M无效入口寄存器,用来存储无效入口地址,其中M是等于或大于0的任意整数。在多路高速缓存中执行最近最少使用替换算法的寄存器栈,处理无效入口或路地址的方法包括下面的步骤:使被存储在地址内容可编址存储器中的系统地址无效;将来自地址内容可编址存储器的无效入口地址输出到动态入口地址总线;将来自动态入口地址总线的无效入口地址输入到第二寄存器栈的M无效入口寄存器;设置一种标志,以指示第二寄存器栈包含至少一个入口地址;计数器加一,以指示被存储在第二寄存器栈中的入口地址数目;将第一寄存器栈中的N入口寄存器中的地址信息移到接着的N+1入口寄存器中;当所述无效入口被用来存储新的信息时,在第一寄存器栈的N入口寄存器中存储后继入口地址。
所述方法还包括下面的步骤:输出存储在第二寄存器栈的入口地址信息;当所述无效入口被用来存储新的信息时,将计数器减一,以指示保留在第二寄存器栈中的无效入口地址的数目。而且,使经过窥探周期存储在地址内容可编址存储器中的系统地址无效的步骤包括检测写地址操作和检测无效位状态信息的步骤。
按照上述方法,本发明还提供一种高速缓存的最近最少使用替换结构。所述结构包括:N-路可编址存储器,用来保持系统地址和路地址的一致;与N路地址内容可编址存储器通信连接的N路数据阵列,用来存储数据;和N入口寄存器栈,用来存储入口地址,其中N路寄存器栈至少包括第一寄存器、中间寄存器和最后寄存器。每一寄存器包括若干位,其中若干位包含有与存储在地址内容可编址存储器中的每一二进制入口地址相关的位数量。中间和最后寄存器还包括比较器,比较存储在入口地址中的新的入口地址。第一寄存器还包括最近经常使用入口的地址。中间寄存器还包含下一个最近经常使用入口的地址,最后寄存器包含一个最近最少使用入口的地址。
所述结构还包含存储最近经常使用入口地址的第二寄存器,以及若干含有N个编码器的入口地址编码器。每一编码器包括与ACAM通信的电路输入端,用来接收来自ACAM的路选择信号;和与入口地址总线通信的电路输出端,用来输出入口地址信息。所述结构还包括与地址内容可编址存储器通信连接的入口地址写编码器电路;以及包括若干位输入电路,所述电路在写操作期间,将被输入的入口地址驱动到双动态真和补入口地址总线上。
所述结构还包括:寄存器栈控制逻辑电路,用来控制N入口寄存器栈并且与N入口寄存器栈通信连接;以及预充电电路。字线““或非”NOR”电路也与ACAM通信连接,所述电路用来指示数据阵列是否包含给定的信息资料。字线“或非”电路包括与若干来自ACAM字线输出端通信连接的若干字线输入端。
寄存器栈反馈电路也被包含并与寄存器栈控制逻辑电路和N入口寄存器栈通信连接,所述电路是用来将在N入口寄存器栈中执行的比较操作的进展反馈到寄存器栈控制逻辑电路。所述寄存器栈反馈电路包括:真和补入口位输入电路;栈反馈输出电路和与栈反馈输出电路通信连接的复位电路,所述栈反馈输出电路包括若干个用来提供驱动和适当的电路延迟的反相门。
在所述结构中还包括:若干自定时入口地址反相驱动器电路,所述电路与入口地址编码器和N入口寄存器栈通信连接,所述电路用来产生自定时RTZ真并将补入口地址送上RTZ真入口地址总线;以及RTZ补入口地址总线。每一个自定时反相动态入口地址反相器电路包括:用来输入入口地址的RTZ入口地址位电路;用来输出RTZ入口地址位的输出端;以及自定时复位输入端,用来随着从RTZ真和补入口地址总线采样的一对RTZ真/补地址位而将所述输出端复位。
所述结构还包括入口地址总线,用来将回零入口地址传输到N入口寄存器栈,所述入口地址总线与入口地址驱动器以及N入口寄存器栈通信连接。
本发明还提供一种高速缓存设备,用来在最近最少使用的替换算法中处理无效的入口或路数据。高速缓存设备包括用来存储地址信息的第一寄存器栈,后者至少含有N和接着的N+1寄存器,其中N是等于或大于0的任意整数。第一寄存器还包括:位寄存器,它具有用来存储真和补入口地址位的第一锁存电路;以及与第一锁存电路通信连接的第二锁存电路,用来存储真和补入口地址位,其中第二锁存电路包括输入端和输出端;以及比较电路,用来把第二锁存电路输出和在RTZ(返回到零)真和补入口地址总线上的真和补入口地址位相比较。
所述高速缓存设备包括每路或入口的动态入口地址编码器,用来对真和补入口地址总线上的选择入口地址编码。每一动态入口地址编码器包括放电电路,用来将预充电的唯一地址总线线路组合放电,其中放电电路包括字线或路输入端。字线或路输入端用来接收字线或路选择信号。一般来说,路选择信号是任意字线信号或任意表示数据阵列中路或入口启动的其它信号。另外,高速缓存设备还包括动态入口写地址编码器电路,所述电路包含若干个入口地址位输入端,并且所述电路连接到地址内容可编址存储器和双动态真和补入口地址总线。
所述高速缓存设备还包括:若干自定时反相动态入口地址反相驱动器电路,所述电路用来在RTZ真入口地址总线上产生自定时RTZ真和补入口地址;以及RTZ补入口地址总线。由于某些电路可能使用补输入和其它真输入,所以,双补信号(即,真和补)通过使输入逻辑检测反相来启动反相地址驱动器以提供逻辑上正确的输出。补输入产生真输出以及真输入产生补输出。自定时反相动态入口地址反相器电路包括:输入入口地址的入口地址位电路;输出RTZ入口地址位的输出端;和自定时复位输入,用来随着从RTZ真和补入口地址总线采样的一对RTZ真/补地址位而使输出端复位。所述高速缓存设备中还包括:与动态入口地址编码器通信连接的动态入口地址总线;预充电电路和自定时反相动态入口地址反相器电路、用来发送真和补入口地址。RTZ真/补入口地址总线将自定时反相动态入口地址反相器电路连接到LRU寄存器栈。
自定时第一寄存器栈反馈电路也包含在高速缓存系统和与RTZ真/补入口地址总线通信连接的电路中,并用来测量第一寄存器栈比较操作的进程。自定时第一寄存器栈反馈电路包括:RTZ真和补入口位输入电路;栈反馈输出电路;以及与栈反馈输出电路通信连接的复位电路,并且包含若干个提供驱动和适当电路延迟的反相器门。
高速缓存设备还包括:与自定时寄存器栈反馈电路通信连接的栈控制逻辑;动态入口地址编码器;第一寄存器栈和预充电电路,并且所述高速缓存设备还用来控制第一寄存器栈的输入和输出。栈控制逻辑包括:栈更新电路,所述电路包括用来禁止第一寄存器栈更新操作的禁止更新逻辑;和产生无效入口地址状态信号的无效入口地址状态电路。所述栈更新电路包括:比较入口地址操作输入电路,用来检测比较入口地址状态信号的状态;窥探操作输入电路,用来检测窥探操作状态信号的状态;写地址操作输入电路,用来检测写地址信号的状态;以及栈更新输出端,用来产生栈更新输出信号。在某种情况下不产生栈更新信号,以便禁止第一寄存器栈的更新。栈控制逻辑还包括无效入口地址状态输出端,用来产生无效入口地址状态信号。所述无效入口地址状态电路包括:无效位状态输入电路,用来输入入口地址无效状态位的状态;和无效入口地址状态输出电路,用来产生无效地址状态信号。另外,还可以直接提供一种窥探输入电路,用来检测地址内容地址存储器中存在窥探操作。
高速缓存设备还包括一个与栈控制逻辑电路和自定时反相动态入口地址反相器驱动器电路通信连接的MRU输出寄存器,用来存储最近经常使用(MRU)的入口地址。MRU输出寄存器包括:真入口地址位输入电路,用来接收真入口地址位;补入口地址位输入电路,用来输入补入口地址位;MRU入口位输出,用来输出MRU入口位;复位电路,用来将MRU入口位输出端复位。在窥探SNOOP地址比较操作期间,MRU输出寄存器还为高速控制逻辑提供入口地址信息。即使第一寄存器栈更新被禁止时也可得到所述信息,并且还为进线后续地址无效操作提供入口地址。所述复位电路包括复位低电路,用来将MRU入口位复位到逻辑低电位,以及复位高电路,用来将MRU入口位复位到逻辑高电位。
尤其重要的是,所述高速缓存设备还包含第二寄存器栈,用来存储与反相动态入口地址反相驱动电路通信连接的地址信息。第二寄存器至少包括M寄存器,其中M是等于或大于0的整数,而M寄存器包括位寄存器电路,用来存储入口地址位。位寄存器电路包括输入端和输出端。
高速缓存设备还包括:与栈控制逻辑通信连接的计数控制器电路;LRU输出多路转换器,用来控制LRU输出;和计数器电路,用来对存储在第二寄存器中的入口地址数目进线计数。
本发明的优点在于提供了处理无效信息的方法,在最近最少使用替换机制中,通过提供第二寄存器栈无效信息将被替换,并移出高速缓存电路。
本发明的另外的优点在于提供了处理处理无效信息的方法和结构,所述方法在最近最少使用替换机制中,不需要改变最近最少使用寄存器栈。
本发明另外的优点在于提供了在多路高速缓存芯片中完成有效LRU替换机制的方法和结构。
因此,本发明的方法和装置提供了一种方法和结构,在全关联多路高速缓存中通过保留真LRU替换流程,以及通过减少和/或消除LRU寄存器栈中的无效信息,保持整个LRU栈的性能和功能,因此改进高速缓存的性能。
在引入的并构成本说明书的一部分的附图中,举例说明了本发明的实施例,这些附图与上面给出的对本发明的一般描述以及下面将要给出对本发明详细描述一起将用来举例说明本发明的原理。
图1是说明本发明的高速缓存系统的各个组成部分以及它们之间相互连接的方框图。
图2A是使用双补地址总线结构的LRU替换机制的方框图。
图2B是使用第一和第二寄存器栈的LRU替换机制的第二实施例的方框图。
图3A是说明为产生双动态真/补地址总线的入口地址编码电路的电路图。
图4A和4B是返回到零真/补自定时反相电路的另一实施例的电路图。
图5是说明栈反馈电路的电路图。
图6是说明在第一寄存器栈中存储入口地址信息位的存储器电路的电路图。
图7是说明第一寄存器栈的某些组成部分的方框图。
图8A是说明第二时钟产生电路的电路图。
图8B是说明具有窥探功能输入的第二时钟产生电路的电路图。
图9是显示地址信号位的第二MRU寄存器电路的电路图。
图10A和10B是说明LRU栈更新电路的电路图,所述电路含有在窥探周期期间,禁止LRU栈更新的逻辑。
图10C是说明图10A和图10B所示电路的另一实施例的电路图。
图11A和11B是说明产生无效入口状态或标志信号电路的电路图。
图11C是图11A和11B所示产生无效入口状态或标志信号电路的另一实施例。
图12显示本发明的递增和递减控制电路的电路图。
本发明涉及含有32路的高速缓存。每一“路”被编码成为32个入口地址(或路地址)中的一个。一般来说,入口地址被存储在LRU栈中。当一个新的数据资料被放入高速缓存时,它被指定到一个入口(或路),LRU表示所述入口(或路)为最近最少使用入口或路(即,LRU栈的LRU输出),盖写事先存储在同一入口(或路)中的旧数据。
(存储在高速缓存的数据部分中的)数据资料的系统地址被存储在CAM(内容可编址存储器)地址中。地址CAM(ACAM)保留系统地址和入口地址之间对应关系。当数据被放入数据高速缓存入口中时,在ACAM中的对应的入口单元被系统地址更新,使得编址的入口与系统地址之间的关系被保留在ACAM中。
一般来说,被应用的数据资料的大小最多可以达到4倍的L1数据线(即,256字节),它等于总共32个入口(或路)的整个4KB数据存储量。由于它被用作L1线缓冲区,所以我们的高速缓存被作成大约为L1线的大小。
当高速缓存被查询它是否保留有系统所需要的数据时,系统地址被提交给ACAM,并且传播到所有32个被存储的系统地址,用来进线比较操作。如果任何一个入口与被提交的系统地址相匹配,如果数据高速缓存的输出被启动,则在相应数据高速缓存入口中的数据将被交给系统。然而,利用执行查询,无需启动数据高速缓存输出,ACAM的查询可以被执行用来寻找出系统地址是否驻留在ACAM中的某处。这种操作被称为窥探(SNOOP)。
另外,系统可以通知高速缓存,它正执行将专用的窥探(SNOOP)输入到高速缓存的窥探周期,而且,窥探操作也可以被执行来查询存储器设备,以确定它们是否保留有无效数据。表1所说明的是各种输入信号和它们的源,这些源将在下面对本发明的详细描述中被提到。现在将要被说明的是本发明结构的特点,以及在多路高速缓存中执行真LRU替换算法的寄存器栈中处理无效入口或路地址的方法。
    输入信号     信号源
  字线【0:31】(图2A)复位(图2B)字线第3号(图3)ENTADTC(图4A和B)复位(图4A)CMPADENN(图4B)MATRES(图5)T&C(图5)复位低和高(图6)第一时钟(图6)选通的2D时钟(图6)IN1&IN1RTZ真入口位(图6)RTZ补入口位(图6)位0-位4(图7)第二时钟(图7)栈反馈信号(图8A和B)窥探(图8B) ACAM104存储控制器ACAM104动态入口地址总线116复位启动203LRU栈控制逻辑114LRU栈控制逻辑114RTZ真和补(T/C)入口地址总线(220和218)LRU栈控制逻辑1 14LRU栈控制逻辑114LRU栈1 10LRU栈1 10(前一寄存器)RTZ真和补(T/C)入口地址总线(220和21 8)RTZ真和补(T/C)入口地址总线(220和21 8)RTZ真和补(T/C)入口地址总线(220和218)LRU栈控制逻辑114栈反馈电路202存储控制器
  复位低和复位高(图9)RTZ地址真(图9)RTZ地址补(图9)复位(图10A)REGCLK2(图10A)CMPD(图10A)窥探N(图10A)AWED(图10B)AWED(图11B)LBVALID1  (图11B)LBVALID0 (图11C)PHI2(图11A)AWED(图11C)INVALID(图12)AWECLK(图12和10C)计数控制器(图12) LRU栈控制逻辑114RTZ真和补(T/C)入口地址总线(220和218)RTZ真和补(T/C)入口地址总线(220和218)LRU栈控制逻辑114LRU栈控制逻辑114ACAM104存储控制器ACAM104ACAM104存储控制器存储控制器存储控制器ACAM104LRU栈控制逻辑1 14ACAM104计数控制器器234
LRU替换机制结构
现在参考附图,并根据图1,画有各种组成部分以及说明它们之间相互连接的本发明的高速缓存系统的方框图。所述结构使用左数据阵列100和右数据阵列108,位于中间的地址比较器(ACAM)104,32寄存器LRU栈110,LRU栈控制逻辑114,双动态真/补(T/C)入口地址总线116,动态入口地址编码器102,回零(RTZ)T/C入口地址比较总线118,RTZ T/C入口地址反相器/驱动器112,入口地址总线预充电电路117,带有独立地址位输入的入口地址编码器123,以及通过左字线总线122和右字线总线120指示的32位宽度的字线“或非”(NOR)结构106。左字线总线122和右字线总线120被ACAM104同时驱动,并含有相同的信息。32寄存器LRU栈110保持寄存器栈结构,所述结构包含按最近经常使用(MRU)到最近最少使用的顺序排列的32个5位编码的入口。在所述寄存器栈中的第一入口包含有MRU入口并被称为MRU寄存器。在所述寄存器栈中的最后入口包含LRU入口并被称为LRU寄存器。
ACAM104起全关联高速缓存标记(cache-tag)结构的作用,含有每个27位的32个标记(32tags)。在比较操作中,25位地址相应地与所有ACAM104入口和两个状态位进线比较,以检查其有效性。ACAM104中的“命中”将启动位于ACAM104中字线驱动器电路的时钟。在“命中”期间,入口地址值通过动态入口地址编码器102进线编码。动态入口地址编码器102将入口地址值(即,地址)经过双动态T/C入口地址总线116传送到RTZ T/C入口反相驱动器电路112中。然而,在写地址期间,ACAM104将所述地址经过写地址总线121传送到入口地址编码器123中,所述编码器包括单地址位输入并且由此在总线125上产生双动态入口地址。
RTZ T/C入口反相驱动器112产生真和补入口地址,所述地址经过RTZ T/C入口地址比较总线118被送到32位寄存器LRU栈110中。RTZ T/C入口地址比较总线118将被编码的RTZ T/C入口地址经RTZT/C入口地址驱动器112中含有的快速,自定时电路提供给LRU栈。已编码的RTZ T/C入口地址被用来更新MRU寄存器并将入口新地址传播给32位寄存器LRU栈110的所有寄存器栈比较器。所述寄存比较器确定先前驻留在32位寄存LRU栈中的当前命中入口位置,并产生移位脉冲将在栈中所有更加近期入口下移一个寄存器位置。字线NOR电路106确定给出的对ACAM104的访问是“命中”还是在高速缓存输出信号要命中之前“错过”。“命中”或“错过”都将经过字线NOR输出信号128报告给LRU栈控制逻辑114。
现在参考图2A,图中举例说明用于改进栈操作的双补地址总线结构的本发明的一个实施例。图2A所示的实施例应用了整个图1的系统结构,而图2A集中说明所述实施例的特殊性。具体地说,所述结构包括栈控制逻辑114,栈反馈电路202,寄存器LRU栈110,复位启动电路203,RTZ反相/驱动电路112和112A,以及入口地址编码器102和123。所述栈控制逻辑114经过控制总线115与寄存器栈212及复位驱动电路203通信连接,并负责控制栈操作,如装载,移位和入口地址比较。栈控制逻辑114还包括总线113真和补入口地址位时总线输入,用来经过时序总线119控制预充电电路117的时序。RTZ反相/驱动电路112和112A经过RTZ真和补(T/C)入口地址总线220和218与寄存器栈212通信连接,并且它还经过真和补入口地址总线205A和205B(在图1中集中地显示为总线116)与入口地址编码器102通信连接。RTZ反相/驱动电路112和112A也与入口地址编码器123通信连接,所述电路含有经过总线201A和201B(在图1中集中地显示为总线125)的独立的入口地址位输入端。栈反馈电路与寄存器栈212、复位启动电路203以及栈控制逻辑114通信连接,并负责测量栈操作的进度。入口地址编码器102和123还通过字线总线122(如图2A中,被显示为“WORDLINE[0]”)和T/C入口地址输入端(如图1中的总线121所示)与ACAM104通信连接(如图1所示)。
寄存器栈212包括32个排列在栈结构中的寄存器,每一寄存器为5位宽。顶部寄存器,即REG.0,保持MRU入口。底部寄存器,即REG.31,保持LRU入口。第一寄存器栈212包括一种栈结构,所述栈结构支持在寄存器之间的移位操作。例如,REG.0的内容可以被移位到REG.1中,并且REG.1的内容可以被移位到REG.2中等等。
RTZ反相/驱动电路112和112A如图4A和4B所示,并将在与所述图相关的正文中进线讨论。类似地,对于如图3A所示的入口地址编码器102中入口地址编码器的详细的讨论,以及对于如图3B所示的具有独立输入的入口地址编码器123,如图5所示的栈反馈电路202,如图6和图7所示的32个LRU寄存器栈110的讨论也将在与这些附图相关的正文中进线。虽然现在的讨论不需要对上述电路进线讨论,但是读者可以随意地参考适当的图例和正文。因此,现在的讨论将集中在对于目前实施例的操作上。
简单地回顾一下,本发明的LRU替换机制将入口地址和入口地址所使用的信息从上到下或从下到上地存储在寄存器栈中。一般地顶部寄存器含有MRU信息,底部寄存器含有LRU信息。一般地寄存器栈使用在寄存器栈顶部存储MRU信息并最终将其下推到寄存器栈,或LRU寄存器的最底部的下推式结构。因此,通过保持MRU信息和移出LRU信息,在高速缓存中出现“命中”的可能性更大,因为在多次读操作之后,并且已经多次被访问的信息(即,地址)趋于保持在高速缓存中的当前单元,被存储在高速缓存中的新的信息将被置于没有被请求的单元(即,入口)中。
现在参考图1和图2B,在ACAM102中,当进线“比较”操作或“写地址”操作时,本实施例被触发。如果“比较”操作导致ACAM102中的“命中”,则在入口地址编码器102中的入口地址编码器将产生被驱动到真/补入口地址总线205A和205B上的入口地址。所述入口地址是代表被激活的入口字线的地址的二进制数。新近产生的入口地址被传送到RTZ反相/驱动电路112和112A,后者又将所述入口地址传送到32个寄存器LRU栈110中。
然后所述入口地址被装入最近经常使用(MRU)寄存器(REG.0)中。寄存器栈212的其它每一个寄存器(REG.1到REG.31)包括比较电路(图2A中没有显示),所述比较器将入口寄存器的内容与RTZ入口地址总线218和220上出现的入口地址相比较。如果任何入口寄存器(REG.1到REG.0)所含有的入口地址与RTZ T/C入口地址总线220和218上的相同,即表示一个匹配条件,则寄存器单元被确认匹配信号所标识,以表明所述寄存器作为一个匹配入口寄存器。
一旦匹配入口寄存器被识别,更近入口寄存器的内容将被向下移动到匹配寄存器中,最终用下一个最近经常使用的入口寄存器内容盖写匹配寄存器内容。例如,如果REG.5被识别为匹配寄存器(即,含有的入口地址与RTZ入口地址总线218和220上所呈现的入口地址相同),与REG.5相匹配的入口地址被放入REG.0中,寄存器REG.1到REG.4的内容将被移动,使得REG.0先前的内容被存储在REG.1中,REG.2的内容被存储在REG.3中,…等等,直到REG.4的内容被存储在匹配入口寄存器REG.5中,用这种方法,栈中所有寄存器的更新将在一个单一移位操作中完成,所述操作将同时在栈中的所有更近寄存器中进线。
因为新的LRU地址计算将通过入口地址比较操作产生,所述比较操作是在进行同时发生于所有更近栈寄存器中的移位操作之后同时在栈中所有比MRU寄存器次近的寄存器中进行的,所以,LRU地址计算时间不随路数或入口数目的增加呈几何式的增加,而使用非关联方法经验电路计数和延迟将随着高速缓存中的路数或入口数目的增加而呈现几何式的增长。使用关联序列的LRU地址计算为高速缓存和其它具有大量路数和入口的存储系统提供一种更快更有效的计算方法。
无效数据处理LRU替代机制
现在参考图2B,该图是使用如图所示第一寄存器栈212和第二寄存器栈210的LRU替换机制的第二实施例的方框图。第一寄存器栈包括32个安排在栈结构中的寄存器,每一寄存器5位宽。顶部寄存器REG.0是MRU入口。底部寄存器REG.31是LRU入口。第一寄存器栈212含有支持在寄存器间移位操作的栈结构。例如,REG.0的内容可以被移动到REG.1中,并且REG.1的内容可以被移动到REG.2中,等等。
第二寄存器栈210含有N个寄存器,这里N可以是任何从0到第一寄存器栈212的大小的整数。在被说明的实施例中,第一寄存器栈212包括32个寄存器。因此,第二寄存器210可以最多含有32个寄存器。然而,为了举例的目的,现假设第二寄存器栈210含有4个寄存器(即,N=4)。第二寄存器栈210还包括寄存器I/O多路转换器242,它的操作将在下面进一步详细地描述。
仍然参考图2B,LRU替换机制还使用LRU栈控制逻辑114,栈反馈电路202,计数控制器204,无效入口地址计数器206,编码器208,第二MRU寄存器214和LRU输出多路转换器216。RTZ T/C入口驱动器112(如图1所示)驱动RTZ真入口地址比较地址总线218和RTZ补入口地址比较总线220,以下集中称为RTZ真和补入口地址总线218和220。RTZ入口地址总线218和220将真和补入口地址输入到第一寄存器栈212的每一个寄存器、寄存器I/O多路转换器242、第二MRU寄存器214,和栈反馈电路202中。
LRU栈控制逻辑114将第一时钟222和第二时钟224提供到第一寄存器栈212中。LRU栈控制逻辑114也将MRU寄存器控制器226提供给第二MRU寄存器214。LRU栈控制逻辑114同时将无效入口地址状态信号228提供给计数控制器204。
计数控制器204具有作为输出信号的加一信号230和减一信号232,这两个信号被馈入无效入口地址计数器206。计数控制器204还含有控制输出信号234,它被馈入LRU输出多路转换器216。无效入口地址计数器206具有计数器输出总线236,所述总线被馈入编码器208,并被反馈到计数控制器204。编码器208将由计数输出总线236所提供的计数值编码成为多路转换器选择信号,所述信号经过译码器输出总线240被馈入到寄存器I/O多路转换器242中。
回顾一下,本发明的LRU替换机制将入口地址和入口地址使用信息从上到下,或从下到上存储在寄存器栈中。顶部寄存器一般含有MRU信息,底部寄存器一般含有LRU信息。一般地寄存器栈使用在寄存器栈顶部存储MRU信息并最终将其下推到寄存器栈,或LRU寄存器最底部的下推式结构。因此,通过保持MRU信息和移出LRU信息,在高速缓存中出现“命中”的可能性更大,因为在多次读操作之后,并且已经多次被访问的信息(即,地址)趋于保持在高速缓存中的当前单元,被存储在高速缓存中的新的信息将被置于没有被请求的单元(即,入口)中。
然而,寄存器栈可以含有已经无效的,不再表示“使用”信息的入口地址(即,无效信息)。回顾一下,当信息已经在存储器的某些区域上被更改而在另外的区域上没有被更改时,高速缓存中的信息变成呆滞的,老的或无效的信息。因此,产生窥探操作使呆滞的,老的或无效的数据无效,这些数据可以驻留在其他系统存储器中,如在高速缓存中。由于在高速缓存(和寄存器栈)中的信息现在已成为无效的数据并占据寄存器栈中的一个入口,所以现在寄存器栈包含大家所熟知的“气泡bubble”。“气泡bubble”是一种寄存器入口,所述入口由于含有无效信息所以对于高速缓存来说,它已不再可用了。因此,实际上,32个入口寄存器栈将成为31个寄存器栈,直到所述无效入口经过LRU入口退出所述栈为止。
因此,由于寄存器中无效入口的数目越来越大,所以使得寄存器栈越来越小。
在系统通电并复位时,高速缓存以及LRU逻辑必须被初始化。LRU替换机制的第一寄存器栈212在系统通电时没有用于访问的先前的入口地址,所以在初始化期间,寄存器栈从最近到最远的入口地址是任意排列的。这保证了在所述栈中的所有寄存器保持唯一的入口地址。
参考图1,2A和图2B,在初始化时,ACAM104没有有效地址,并且所有有效状态位被初始化为无效状态。由于在ACAM104中没有有效地址,所以在ACAM104中的地址比较操作将在高速缓存中产生“错过miss”。作为所述差错的结果,被要求的数据将被放在数据阵列中,并且相应的系统地址将被放在将一个或多个有效状态位设置成为有效状态的ACAM104中。当将这些新的系统地址装入ACAM104中时,相应的ACAM104入口地址将被作为新的MRU入口地址放在第一寄存器栈212的顶部。在ACAM104中同样产生“错过”的下一地址比较操作将导致另外一个被放置在第一寄存器栈212的MRU入口中的入口地址。驻留在MRU入口寄存器(REG.0)的先前的信息将被下推到下一个入口寄存器,即,REG.1。
然而,经过一段时间之后或所述高速缓存被填满之后,ACAM104中的地址比较操作也将产生“命中”。在这种情况下,所述“命中”表示所述高速缓存含有与现有系统地址对应的数据。随着同时被放置在MRU入口或REG.0中,在寄存器栈12中对应的入口地址将由次最近寄存器的内容所替换。例如,如果在寄存器栈212中对应的入口地址位于REG.10中,则所有驻留在REG.10之前的寄存器中的入口信息(即,REG.0到REG.9)将被移到下面的寄存器中,即,REG.0中的入口信息现在位于REG.1中,依此类推,直到REG.9中的入口信息被移入REG.10为止。RTZ T/C入口总线218和220将入口信息传送到第一寄存器栈212的MRU入口中,这样REG.10中的入口信息将被移到REG.0的MRU入口中。
如果完成窥探/比较操作并产生“命中”,则跟着将进线地址无效操作。当地址无效操作使得ACAM104中的入口无效时,将设置无效入口标志来指示当前的入口地址是无效的。同时,LRU栈控制逻辑114禁止无效入口信息放入第一栈寄存器212的MRU入口寄存器和第一寄存器栈212的栈移动。经过RTZ T/C入口总线220和218,无效入口地址将被写入寄存器I/O多路转换器242,并且LRU输出多路转换器216将直接从第二寄存器栈210输出到LRU入口的输出端。随后,当新的信息被写入高速缓存时,LRU入口输出信号将指示新的入口信息将被写入由LRU入口输出信号所指出的入口中。通过这种方法,被放入高速缓存中的新信息将被写入在保持有无效数据的入口之前已经被无效了的入口中。
当新信息被写入高速缓存时,栈控制逻辑114将写地址操作理解为在ACAM104中的一次“命中”,并且由当前LRU入口输出给出接受新信息的相应的入口地址。当新信息被写入高速缓存时,通过高速缓存控制器它将被指向对应于当前LRU入口输出的高速缓存的入口,而高速缓存响应关联写地址操作,其响应的方法类似于在写地址操作期间的一次“命中”。结果,由地址写操作所新产生的入口地址同时与当前LRU入口输出相一致,并且通过双动态T/C入口地址总线,所述地址被输送到第一寄存器栈212。然后,所述栈控制逻辑114在第一寄存器栈212中进线比较和移位。因此,当关联写地址操作发生时,如果LRU入口输出从第二寄存器栈210输出一个无效的地址,则新信息将被写入无效地址,并且无效地址计数器206减一,而第一寄存器栈212中进线的移位操作将用来在第一寄存器栈212中消除无效的入口地址。如果无效地址计数器206减到它的初始状态,则计数控制器逻辑114将LRU输出多路转换器216切换到第一寄存器栈212的输出。用这种方法,在保留有无效入口地址的入口之前,所述无效入口地址被用来存储新信息。例如,如果第二寄存器栈210含有与第一寄存器栈212中REG.10的内容相同的地址,则新的系统地址和关联数据将被写入与第二寄存器栈210和第一寄存器栈212的REG.10所含有的入口地址相同的入口中。当新的系统地址被写入ACAM104时,所述入口地址将被送到第一寄存器栈212。所述入口地址将被写入第二MRU寄存器214,并且同时第一寄存器栈212的REG.0将与REG.1至REG.31的内容相比较。因为这个入口地址与REG.10的内容相匹配,所以REG.0到REG.9的内容将被移到REG.1到REG.10,从而消除第一寄存器栈212中的“气泡”。同时,计数控制器逻辑204将无效入口地址计数器206减一。如果第二寄存器栈210只含有一个无效入口,则所述无效入口地址计数器206将返回到它的初始计数值,所述计数值可以由计数控制器逻辑204进线译码,从而将无效入口地址标志复位。在这种情况下,控制信号234,或标志将被复位,从而使得LRU输出多路转换器216指向来自第一寄存器栈212的LRU入口输出。
同时,每当一个入口地址被无效时,LRU栈控制逻辑114将产生无效入口地址状态信号228,所述信号被馈送到计数控制器204中。计数控制器204在每次第一寄存器栈212无效时,将产生加一信号232。无效入口地址计数器206一般地被初始化为零值,并且通过计数控制器204对每次无效操作加一。当计数值大于0时,计数控制器204将产生控制信号234,所述控制信号控制LRU输出多路转换器216的输出。每当计数值大于0时,表示第二寄存器栈210在其寄存器中含有无效入口信息,控制信号234被激活。当控制信号234激活时,LRU输出多路转换器216经过寄存器I/O多路转换器242输出第二寄存器210中的无效入口地址信息。寄存器I/O多路转换器242从第二寄存器栈210中N寄存器中之一选择输出,其输出由译码器208和无效入口地址计数器206确定。每次新数据被存储在当前无效的高速缓存入口时,计数控制器204将产生减一信号,所述信号将无效入口地址计数器206减一。用这种方法,无效入口地址计数器206根据无效入口地址信息的放置从零值加一,并根据写到无效入口地址中的新的数据减一。
图12所说明的是用于计数控制器电路204的加一控制电路1200和减一控制电路1230。加一控制电路1200包括反相门1202-1210,PFET器件1212-1216,NFET器件1218-1222,和“或非”门1224。加一控制电路1200还包括无效INVALID输入端和INC输出端。无效INVALID输入信号的上升沿将在INC输出端产生逻辑高HI脉冲。反相门1204-1210,PFET器件212-1216和NFET器件1218-1222用来加入电路延迟功能,从而确定脉冲输出的宽度。减一控制电路1230包括与非门NAND1232和反相门1233。每一时钟脉冲输入端AWECLK启动“与非”门1232,并且如果当“与非”门1232被启动时,输入端计数控制器COUNTER COUNTROL是高HI电位,只要AWECLK和COUNTER COUNTROL都是高HI电位,则输出DEC将为高HI电位。
无效入口地址计数器206计数值经过计数器输出总线236被反馈到计数控制器204。只要无效入口地址计数器206计数值大于0,则计数控制器204将保持控制信号234有效,以便使得LRU输出多路转换器216作为LRU入口信息继续从第二寄存器栈210输出无效入口地址。当无效入口地址计数器206计数值等于0时,计数控制器204将使控制信号234无效,表示第二寄存器栈210不含有任何无效入口地址。LRU输出多路转换器216则将从第一寄存器栈212的LRU入口寄存器输出入口信息。
现在参考图3A,该图是举例说明用来使双动态真/补(T/C)地址总线放电的入口地址编码器电路300的电路图。所述电路包括NFET下拉器件304-312,所述器件随着选择的字线和器件304-312的漏极连接线的硬件编程而将适当的入口总线线路放电。例如,电路300表示#3字线的编程编码。NFET下拉期间304到308具有连接到#3字线输入端302的栅极,并且它们的源极接地。另外,NFET下拉器件304到308具有连接到入口地址真总线EA4T,EA3T和EA2T的漏极。NFET下拉器件310和312也将它们的栅极连接到#3字线的输入端302,并且它们的源极接地。然而,NFET下拉器件310和312的漏极分别接到入口地址补总线EA1C和EA0C。因此,当#3字线输入端302有效时,NFET下拉器件304到308将把入口地址真总线EA4T,EA3T和EA2T放电,而NFET下拉器件310到312将把入口地址补总线EA1C和EA0C放电。32根字线总线的每一根字线将被输入到唯一的双动态T/C入口地址编码器中,所述编码器与类似于电路300的、为特定的被选字线编程的放电电路通信连接。例如,对于本专业的技术人员来说是显而易见的,#1字线的放电电路NFET下拉器件304到310的漏极连接到入口地址真总线EA4T-EA1T。具体地说,NFET下拉器件310的漏极连接到入口地址总线EA1T,而NFET下拉器件304到308和312的连接如图3所示。具有预充电补动态总线的电路300的主要优点是它具有提供不包括额外的负载设备的、与入口编程无关的恒定字线负载的能力。
图3B所示是具有各自的地址位输入端的入口地址编码器123的电路。入口地址编码器123包括若干个NFET器件320-338。每一个NFET器件的栅极连接到总线IN4T-IN0C,所述总线含有在来自ACAM104的双动态入口地址总线之中,并且将各个位输入形成入口地址编码器123。NFET器件320-338的漏极连接到双动态补地址总线EA4C-EA0T(如图中总线125所示)。在工作中,当在ACAM104中将写地址初始化时,ACAM104将把5位真和补入口地址放在总线IN4T-IN0C上。然后入口地址编码器123将通过NFET器件320-338中适当的器件把适当的双动态补地址总线EA4C-EA0T放电。
现在参考图4A和4B,如图所示的是回零(RTZ)真/补(T/C)自定时反相电路400A和400B的另一实施例的电路图。现在特别参考图4A,RTZ T/C入口地址线能够随着双动态T/C入口地址总线218和220(如图1所示)的预充电而自动地复位。电路400A如图所示作为真或补单地址位的反相驱动电路。电路400A包括NFET器件404A和PFET器件402A。PFET器件402A的栅极连接到双动态T/C入口总线116的总线线路ENTADTC上,而NFET器件404A的栅极连接到RESET线。预充电地址总线线路ENTADTC的放电在自定时转换时经过PFET器件402A在输出端CMPAD被反相。当连接到NFET器件404A的栅极的RESET线为高电位时,输出CMPAD被复位。如图所示,RESET可以是经过如所示的分路连接406A的预充电地址总线线路ENTADTC的功能。在这种情况下,输出端CMPAD的复位将通过入口地址总线存储的自定时的方法来完成。
现在参考图4B所示自定时反相驱动电路的另外一个实施例。图4B中的电路400B是带有CMPADENN启动输入端,ENTADTC位输入端以及CMPAD输出端的高增益反馈寄存器。电路400B含有PFET器件402B,404B,406B和408B,以及含有NFET器件410B,412B,414B和416B。电路400B还含有反相器418B和420B。PFET器件402B和408B和NFET器件414B和412B的栅极被连接到启动复位信号端CMPADENN。PFET器件404B和NFET器件410B的栅极被连接到双动态T/C入口地址总线116的总线线路ENTADTC。反相器418B的输入端连接到PFET器件404B和408B以及NFET器件414B,412B和410B的源极。反相器418B的输出端被连接到反相器420B的输入端以及PFET器件406B和NFET器件416B的栅极。反相器418B的输入节点已被标记为A,反相器418B的输出节点已被标记为B。反相器420B的输出端是自定时反相驱动电路400B的输出端CMPAD。
图4B中的电路400B允许入口总线线路的放电自定时启动关闭,但是也允许独立于双动态T/C入口地址总线116的CMPAD输出端复位。所述电路还提供更高的驱动能力。通过使输出端CMPAD在双动态T/C入口地址总线116复位之前或期间,而不是之后复位,可以提供更快的周期时间。总线线路ENTADTC一般是预充电线路,并且当输入端CMPADENN为低电位时,电路400B被启动。因此,当ENTADTC开始放电时,PFET器件404B将导通并将节点A上拉为逻辑高电位。随着节点A电位的升高,反相器418B将节点B的输出驱动为低电位。在节点B的低的输入将使得反相器420B驱动CMPAD输出端为逻辑高电位。然而,当CMPADENN被驱动到高电位时,NFET器件414B将驱动节点A到逻辑低电位,并且从而使得在反相器418B输出端的节点B电位升高到逻辑高电位。因此,反相器输出端CMPAD将被驱动到逻辑低电位。用这种方法,图4B的电路400B被复位。
现在参考图5,图中所示为栈反馈电路524的电路图。栈反馈电路524被用来作为在第一寄存器栈212(如图2所示)进线的比较操作的反映。反馈电路524能够用于启动第一寄存器栈212中的移位操作,以及完成第一寄存器栈212中的比较操作后,图4A和4B中自定时反相电路的复位。电路524包括:若干个反相器门504-516,NFET器件518和520,PFET器件522和526,以及或“非”门502。栈反馈电路524具有作为输入信号MATRES的真(T)和补(C)信号,以及输出信号STKFB和LRUTCFB。栈反馈信号STKFB用来测算栈比较操作的进程并同时确定如何能够迅速地将RTZ T/C入口地址总线220和218复位。栈反馈电路524输入信号T和C可以是到达它们被驱动的第一寄存器栈212(如图2所示)的反向端的真和补位地址总线线路。当MATRES被放电时,PFET器件526将被导通并使得节点A5的电压升高。反相门510和512将使得输出STKFB电位随A5的升高而升高。STKFB被预充电为高HI之后,栈反馈电路524被启动,并且升高的输入端T或C将使得NFET器件520导通,节点A5将被下拉为低电位。当节点A5被下拉为低电位时,反相门510和512使得输出STKFB也将被下拉到逻辑低电位。用这种方法,通过栈反馈电路524从它的T和C输入到STKFB输出所产生的电路延迟可以构成对在第一寄存器栈212(如图2所示)的反向端产生的比较操作的反映,由此确定移位操作如何能够快速地开始,以及RTZ T/C入口地址总线220和218可以被复位。LRUTCFB输出信号提供第一寄存器栈212中真和补位入口状态指示。
现在参考图6和图7,图6所示为第一寄存器栈212中存储入口地址信息位的存储器电路的电路图,图7所示为第一存储器栈212的全部栈结构的方框图。现在特别地参考图6,每一栈寄存器的每一位由主从配置形式的双D型锁存器和比较器所组成。第一锁存器646包括NFET器件600-603,和反相门616-622。第一锁存器646含有输入IN1, IN1,和第一时钟FIRST CLOCK,以及输出OUT1, OUT1。第二锁存器648具有NFET器件604-607,以及反相门624-640。第二锁存器648具有输入IN2, IN2,第二时钟2ND CLOCK以及输出OUT2, OUT2。第一锁存器646的输出OUT1, OUT1被连接到第二锁存器648的输入IN2和 IN2。输出端OUT2, OUT2与比较器644的输入端连接。图6电路中还包括NFET器件608和609。NFET器件608和609的栅极连接到RESET HIGH和RESET LOW信号端,并被用于在通电或冲洗(flush)操作之后将所有第二寄存器设定为编程状态。
由于第一锁存器646和第二锁存器648是时钟D-型锁存器,所以当第一时钟FIRST CLOCK和第二时钟2ND CLOCK信号在每一寄存器上确立时,呈现在IN1, IN1和IN2, IN2的输入信号将出现在输出端OUT1, OUT1和输出端OUT2, OUT2。比较器644将第二锁存器648的输出端OUT2, OUT2的状态与RTZ T/C入口地址总线218和220上的指定位(如RTZ TRUE ENTRY BIT和RTZ COMP ENTRYBIT所示)进线比较。比较器644输出端MATCH被预充电为高电位HI,并且当OUT2, OUT2与RTZ TRUE ENTRY BIT和RTZ COMPENTRY BIT不相等时,所述输出端将变为逻辑低电位LOW。MATCH RESTORE输入信号将PFET器件614导通并将MATCH输出端预充电为逻辑高电位HI,并可以共用与同一匹配线通信的通用比较器。
现在参考图7,如图所示为第一寄存器栈212结构中某些元件的方框图。位寄存器700-710是图6电路的方框图。第一锁存器输入端IN1 T&C与栈中前面的寄存器的输出端OUT2 T&C连接。例如,位寄存器702的IN1 T&C连接到位寄存器700的输出端OUT2 T&C。每一位寄存器的MATCH端被连接到多输入“或非”门(NOR)结构(所述结构选通第二时钟),使得当任何位寄存器本身的MATCHLINE或任何次最近寄存器的MATCH LINE预示肯定的匹配条件时,通过第二时钟更新每一位寄存器700,704,708和702,706和710的第二锁存器。例如,每个位寄存器700,704和708的MATCH输出端都与含有“或非”门NOR712和714的“或非”门电路和反相器716相连接。因此,当每个位寄存器700-708的MATCH输出保持在高电位HI、表示匹配条件时,“或非”门712驱动它的输出为低电位,并且启动“或非”门714,当第二时钟2ND CLOCK为高电位HI时,驱动它的输出为高电位HI。当位寄存器700-708的输出MATCH指示非MATCH条件,并且“或非”门712的所有其它输入也指示非MATCH条件时,“或非”门NOR712的输出将为高电位,因此禁止“或非”门714。“或非”门714的输出将被驱动为低电位LOW。用这种方法,多输入端“或非”门电路选通第二时钟,使得当它本身的MATCHLINE或任何次最近5位寄存器的MATCH LINE出现肯定匹配条件时,通过第二时钟更新位寄存器700-708的第二锁存器。
图8A说明的是第二时钟产生电路800的电路图。第二时钟产生电路800使用图5栈反馈电路中的栈反馈信号、多输入端“或非”门电路,以便提供关于反馈信号的负载,所以反馈信使匹配寄存器负载与跟踪信号延迟匹配,所述延迟用来反映寄存器比较操作的进程,将第二时钟信号的产生延迟直到第一寄存器栈212中最坏情况多输入端“或非”门已经稳定为止。第二时钟产生电路800包括32个输入端的“或非”门802和反相器门804和806。当第一寄存器栈212的栈反馈信号为低电位时,表示每一寄存已经在RTZ T/C入口地址总线220和218(如图2所示)上接收了入口地址。“或非”门(NOR)802将驱动它的输出为高电位HI,使得反相门806将它的输出驱动为高电位HI。因此,第二时钟产生电路800的第二时钟输出2ND CLOCK在32个寄存器栈中每一寄存器(即,第一寄存器栈212)已经接收到RTZ T/C入口地址总线220上的入口地址之后将被确立,并进线比较操作和完成最差情况寄存器的比较操作。反馈信号被指定来模拟第一寄存器栈中最慢MATCH LINE信号,来保证这种最坏情况方案也能满意。最坏情况寄存器是栈中完成比较操作的最后的寄存器。图8B中说明的电路除了在反相器808上增加了窥探输入之外,与图8A中电路基本上是相同的。在同一方法中所述电路也除了考虑窥探功能之外,与图8A所示的电路功能相同,它可以作为图8A电路的替换电路。
图9中所示为5位寄存器入口地址的单独一位的第二MRU寄存器214的电路图。第二MRU寄存器214包括反相门902-914和PFET器件916和922,以及NFET器件918和920。第二MRU寄存器214组成单个复位置位(RS)触发器。第二MRU寄存器214包括RTZ补地址位输入(RTZ地址补),RTZ真地址位(RTZ地址真)和复位低,复位高输入。复位低和复位高功能用来将第二MRU寄存器214的输出MRU入口位复位成为逻辑低LOW或逻辑高HI电位。第二MRU寄存器214根据总线218和220(如图2所示)上的RTZ T/C入口地址自动地更新,并提供比第一寄存器栈212(如图2所示)MRU寄存器更快的MRU更新,因为它不用等到第二时钟产生才进线更新。该第二MRU寄存器也将更新窥探比较操作。
现在参考图10A和10B,所述图说明LRU栈更新电路1000,所述电路含有在窥探周期期间禁止LRU栈更新的逻辑。作为通常操作的一部分,第一寄存器栈212将更新它的寄存器以进线比较和写地址操作。而且,在窥探地址比较操作期间,高速缓存数据输出被禁止。电路1000位于栈控制逻辑114之中,并且具有:比较输入端(CMPD),窥探状态输入端(SNOOPN),写地址启动输入端(AWENB),复位输入端(RESET)和时钟输入端(REGCLK2)。电路1000含有:反相器门1002-1024和1028-1-32;PFET器件1034-1040,1043,1044,1050和1052;NFET器件1042,1046,1048,1054-1058;“与非”门NAND1024,1026,1060和1062;“或非”门NOR1064和1066。当在高速缓存中开始进线写地址操作或当地址比较操作完成之后,电路1000将产生STKUPDATN输出。然而,如果SNOOP输入端指示这些操作是发生在窥探周期期间时,它将禁止输出。
输出信号STKUPDATN通过由输入信号的转变(在这种情况下是CMPD的上升沿)激励的单触发脉冲而被激活。当SNOOP为高电位HI时,所述输入信号被向下通过两条不同的支路传送到“或非”门1064。具体地说,第一条支路包括与非门1062,第二条支路包括与非门1060和反相器1018-1022。在这两条支路之间传播时间的差确定了激励STKUPDATN输出的激励脉冲的宽度。同样地,SNOOPN为高HI时,AWENB上升沿将产生激励脉冲激励输出STKUPDATN。PFET和NFET器件1043-1056的功能通过反相器1018-1022和1028-1032进一步地延缓电路延迟,并增加脉冲宽度。因此,当在AWENB或CMPD输入端出现上升沿时,电路1000将通过将其驱动为低电位LOW来激励输出STKUPDATN,并因此指示控制栈控制逻辑114更新第一寄存器212。输出端STKUPDATN由第二寄存器时钟复位。
图10C所说明的是图10A和图10B所示电路的另一实施例。具体地说,图10C中所示电路1099包括根据比较操作的执行和输出启动OE输入的状态,以及写地址操作的执行和系统地址有效位的状态禁止第一寄存器栈212(如图2A和2B所示)更新的逻辑。电路1099包括:反相器门1082-1098,“与非”门1079和1080,“或非”门1075-1078,NFET器件1071-1074和PFET器件1067-1070。电路1099还包括:输入复位错过MISSRST,复位RESET,LRU真和补反馈LRUCFB,比较CMPD,输出启动OE,有效位状态LBVALID0和LBVALID1,以及写地址启动时钟AWECLK和输出STKUPDATN。输出STKUPDATN在MISSRST或RESET为高的任何时间,通过“或非”门1076和PFET器件1067,被复位成为逻辑高电位HI。输出STKUPDATN也在输入LRUTCFB为高电位HI的任意时间,通过反相器门1086和PFET器件1068被复位。
在电路1099的两个方案下,输出端STKUPDATN可以被置为低电位LOW。第一方案与图10A和图10B的电路操作相似,其中输出端STKUPDATN通过由输入信号的转变启动的单触脉冲(在这种情况下为CMPD的上升沿)而被激励,同时,所述输出启动OE输入信号为高电位HI。输出启动OE信号由高速缓存控制器产生。当高速缓存中的窥探比较操作完成时,由于在窥探比较操作中没有数据被查找,所以OE被用来禁止高速缓存数据输出。激励STKUPDATN信号也将由于产生脉冲而封锁CMPD信号。所述输入信号的转变向下经两个不同支路传输到“或非”门NOR1075。第一支路包括“与非”门NAND1079,第二支路包括:“与非”门NAND1080;反相器门1088-1092;PFET器件1069和1070;以及NFET器件1072和1074。“或非”门1075的输出端将单触发脉冲输入到NFET器件1072,所述器件将驱动输出端STKUPDATN到低电位LOW状态。在这两个支路中传播时间的差确定了激励STKUPDATN的单触发脉冲输出信号的宽度。在第二个方案中,在有效位状态输入信号LBVALID0和LBVALID1中的任一个为高电位HI的同时,AWECLK输入的上升沿将产生从“或非”门1077输出的冲触发脉冲到NFET器件1071。所述脉冲宽度由AWECLK信号的脉冲宽度来确定。因此,当在CMPD或AWECLK输入端中任一个上检测到上升沿时,电路1099将通过把输出端STKUPDATN驱动为位低电位LOW来激励输出端STKUPDATN,从而命令栈控制逻辑114更新第一寄存器栈212。因此,当输出启动OE输入信号为低电位LOW时,或者当有效位状态输入信号LBVALID0和LBVALID1为低电位LOW时,第一寄存器栈的更新将被禁止。
现在参考图11A和11B,图中说明产生所示有效入口状态或标志信号的电路1000的电路图。电路1000位于栈控制逻辑114中,并包括双启动反相器电路1156-1162,“与非”门1150-1154和反相门1133。双启动反相器1156包括反相器门1179和1180,PFET器件1163和1164以及NFET器件1171和1172。双启动反相器电路1158-1162与双启动反相器电路1156的结构相同。双启动电路1156具有经过反相器门1187和1188的LBVALID0和PHI2输入端。
在操作中,写地址周期期间,电路1100利用有效位信息识别地址无效操作和禁止第一寄存器栈212(如图2所示)的更新。具体地说,当启动信号PHI2和AWED确立时,把有效状态位LBVALID0和LBVAUD1比较。在这种条件下,当LBVALID0和LBVALID1为逻辑高电位HI时,INVALNB将被驱动为低电位LOW。这将禁止第一寄存器栈212将有效入口输入到MRU入口寄存器REG.0中。INVALNB输出将输入到图2B中计数控制器电路204中并作为标志表示第二寄存器栈包括无效入口地址信息。INVALNB信号将指示寄存器I/O多路转换器242从RTZ T/C入口地址总线220和218将入口地址信息输入到第一寄存器栈210。
图11C所示是图11A和11B电路部分的另外一个实施例,所述电路根据写地址(AWED)和有效位输入信号(LBVALID0和LBVALID1)确定地址无效周期。图11C中的电路1199根据写地址启动AWED输入信号和窥探输入信号SNOOPN确定地址无效周期是否正在被执行。所述电路包括反相器门1160和与非门NAND1162。当AWED输入信号为高电位HI并且SNOOPN输入信号为低电位LOW时,输出端INVALNB将被激励为低电位LOW,用来指示在高速缓存中进线窥探操作的同时,高速缓存中写地址操作也正在进线。
虽然,已经通过对实施例的描述说明了本发明,并且对各实施例已经进线了相当详细的描述,但是,申请人的意图不是以任何方式把后面所附权利要求书的范围限制在这些细节。对于本专业的技术人员来说,本发明其它的优点和对本发明进线的修改是显而易见的。例如,第二寄存器栈可以含有任意数目的寄存器用来保存无效入口地址,或者第一寄存器栈可以比32个寄存器更大或更小。因此,对于本发明,就其范围来说,是不受上面详细描述,典型装置,和所描述及其所示的举例说明限制的。因此,可以在不背离本发明申请者总的概念精神或范围的情况下利用所述细节来进行修改。

Claims (29)

1.一种在计算机中执行最近最少使用替换机制的方法,所述计算机包括:地址内容可编址存储器;至少含有N个最近经常使用入口寄存器,N+1个次最近经常使用入口寄存器,以及N+Z个最近最少使用入口寄存器的寄存器栈,其中N是等于或大于0的整数,Z是等于或大于2的整数,其中,每一个寄存器包括含有能够代表入口地址的二进制数的内容,其特征在于所述方法包括以下步骤:
(a)确定地址内容可编址存储器中是否正进行高速缓存访问操作;
(b)如果比较操作表示在地址内容可编址存储器中有肯定的匹配,则产生新的入口地址;
(c)将新的入口地址发送到寄存器栈中的若干个入口地址比较器中;
(d)将新的入口地址与存储在寄存器栈中除了第N个寄存器外的寄存器中的入口地址相比较;
(f)识别包括所述入口地址的寄存器栈中第N+M个寄存器,M的范围是1到Z;
(g)将寄存器N到N+M-1中的内容移到寄存器N+1到N+M中,同时将新的入口地址移到第N个寄存器中。
2.根据权利要求1的方法,其特征在于:确定地址内容可编址存储器中是否正进行高速缓存访问操作的步骤包括确定在地址内容可编址存储器中是否正进行比较操作的步骤。
3.根据权利要求1的方法,其特征在于:确定地址内容可编址存储器中是否正进行高速缓存访问操作的步骤包括确定地址内容可编址存储器中是否正进行写地址操作的步骤。
4.在含有地址内容可编址存储器、动态入口地址总线、LRU寄存器栈、以及栈控制逻辑的多路高速缓存系统中,其中第一寄存器栈包括至少第N个和接着第N+1个入口寄存器,用来存储入口地址,其中N是等于或大于0的任意整数,并且第N个和第N+1个入口寄存器含有入口地址,在所述高速缓存系统中一种处理寄存器栈中无效入口或路地址的方法,用来进行多路高速缓存的最近最少使用替换算法,所述方法包括在由窥探周期所产生的窥探操作期间禁止更新LRU寄存器栈的步骤,其特征在于还包括下面的步骤:
(a)检测地址内容可编址存储器中高速缓存访问操作;
(b)检测地址内容可编址存储器中的窥探周期;
(c)产生应答地址内容可编址存储器中正执行高速缓存操作和在地址内容可编址存储器中正执行窥探周期的禁止信号,所述步骤包括以下步骤:
(1)在地址内容可编址存储器中检测地址比较操作;
(2)在地址内容可编址存储器中检测写地址操作。
5.根据权利要求4的方法,其特征在于:产生禁止信号的步骤还包括检测写地址启动信号以确定入口地址无效操作是否被启动的步骤。
6.在含有地址内容可编址存储器、动态入口地址总线、第一寄存器栈、第二寄存器栈、栈控制逻辑、计数器、以及与第一寄存器栈和第二寄存器栈通信连接的多路转换器的多路高速缓存系统中,其中第一寄存器栈中包括至少第N个和接着第N+1个入口寄存器,用来存储入口地址,其中N是等于或大于0的任意整数,并且第N个和接着第N+1个入口寄存器含有入口地址,其中第二寄存器栈包括至少M个无效入口寄存器用来存储无效入口地址,其中M是任意等于0或大于0的整数,在所述高速缓存系统中一种处理寄存器栈中无效入口或路地址的方法,用来进行多路高速缓存的最近最少使用替换算法,其特征在于所述方法包括下面的步骤:
(a)检测栈控制逻辑中地址无效操作,其中检测栈控制逻辑中窥探周期的步骤包括以下步骤:
(1)检测写地址操作;
(2)检测窥探周期;
(b)将对应于系统地址的入口地址在动态入口地址总线上输出;
(c)输出来自栈控制逻辑的无效入口地址信号;
(d)随着所述计数器值、将入口地址经多路转换器送到M寄存器中;
(e)识别含有至少一个入口地址的第二寄存器栈;
(f)将计数器值加一,以表示存储在第二寄存器栈中的入口地址数目。
7.根据权利要求6的方法,其特征在于:第二寄存器栈还包括至少一个M+1无效入口寄存器,并且所述方法还含有如果第二寄存器栈含有至少一个入口地址,则将M无效入口寄存器的内容移到第M+1无效入口寄存器中的步骤。
8.根据权利要求6的方法,其特征在于:检测地址无效操作还包括下面的步骤:
(a)检测写地址操作;
(b)检测有效位状态信息。
9.根据权利要求6的方法,其特征在于:还包括禁止第一寄存器栈更新操作的步骤。
10.根据权利要求6的方法,其特征在于:还包括输出来自第二寄存器栈的入口地址的步骤。
11.根据权利要求6的方法,其特征在于:还包括一旦利用用来存储新的入口地址信息的无效入口地址,就将计数器值减一的步骤。
12.在含有地址内容可编址存储器、动态入口地址总线、第一寄存器栈、第二寄存器栈、栈控制逻辑、计数器、以及与第一寄存器栈和第二寄存器栈通信连接的多路转换器的多路高速缓存系统中,其中第一寄存器栈中包括至少第N个和接着的第N+1个入口寄存器,用来存储入口地址,其中N是等于或大于0的任意整数,并且第N和接着的第第N+1个入口寄存器含有入口地址,其中第二寄存器栈包括至少M个无效入口寄存器用来存储无效入口地址,其中M是等于0或大于0的任意整数,在所述高速缓存系统中一种处理寄存器栈中无效入口或路地址的方法,用来进行多路高速缓存的最近最少使用替换算法,其特征在于所述方法包括下面的步骤:
(a)将存储在地址内容可编址存储器中的系统地址无效;
(b)将来自地址内容可编址总线的无效入口地址输出到动态入口地址总线上;
(c)将来自动态入口地址总线的无效入口地址输出到第二寄存器栈的M无效入口寄存器中;
(d)设置指示第二寄存器栈至少包含一个入口地址的标记;
(e)将计数器值加一以便指示存储在第二寄存器栈内的入口地址数目;
(f)将第一寄存器栈中N入口寄存器的信息移位到N+1入口寄存器中;
(g)将后续入口地址存储在第一寄存器栈的第N个入口寄存器中。
13.根据权利要求12的方法,其特征在于:还包括输出存储在第二寄存器栈中的入口地址信息的步骤。
14.根据权利要求13的方法,其特征在于:还含有将计数器值减一,以表示存储在第二寄存器栈中的入口地址数目的步骤。
15.根据权利要求12的方法,其特征在于:通过窥探周期将由存储在第一寄存器栈中接着的第N+1个入口寄存器中的入口地址所代表的系统地址无效的步骤包括以下步骤:
(a)检测地址内容可编址存储器中写地址操作;
(b)检测与系统地址有关的有效位状态信息。
16.高速缓存中最近最少使用替换结构,其特征在于包括:
(a)N路地址内容可编址存储器,用来保持系统地址和路地址的一致性;
(b)与N路地址内容可编址存储器通信连接的N路数据阵列,用来存储数据;
(c)存储入口地址的N-入口寄存器栈,其中N-入口寄存器栈至少包括第一寄存器,中间寄存器和最后寄存器,其中每一个寄存器包括若干位,其中若干位包括与每一个存储在地址内容可编址存储器中的入口的二进制地址相关的很多位;
其中在中间和最后寄存器中还含有用来比较新入口地址和被存储的入口地址的比较器;
其中第一寄存器还包含最近经常使用入口地址;
其中中间寄存器还包含最近次经常使用入口地址;
其中最后寄存器包含最近最少使用入口地址;
(d)存储最近经常使用入口地址的第二寄存器;
(e)由N个编码器组成的若干入口地址编码器,每一编码器包括:
(1)与数据阵列连接的第一输入端,用来接收来自数据阵列的路选择信号;
(2)与地址内容可编址存储器连接的第二输入端,用来接收来自地址内容可编址存储器的写路选择信号;
(3)与地址内容可编址存储器相连接的输出端,用来输出入口地址信息;
(f)控制N-入口寄存器栈并与N-入口寄存器栈通信连接的寄存器栈控制逻辑;
(g)与数据阵列相连接的字线“或非”门电路,用来指示数据阵列是否含有给定的信息资料,字线“或非”门NOR电路包括若干个与来自地址内容可编址存储器的若干个输出端连接的字线输入端;
(h)与寄存器栈控制逻辑和N-入口寄存器栈通信连接的寄存器栈反馈电路,用来将N-入口寄存器栈中执行的比较操作的进程反馈到寄存器栈控制逻辑电路中;
(i)与入口地址编码器和N-入口寄存器栈通信连接的入口地址启动电路,用于入口地址编码器与N-入口寄存器栈的通信;以及
(j)与N-入口地址寄存器栈和入口地址驱动器通信连接的入口地址总线,用来将回零入口地址发送到N-入口寄存器栈。
17.根据权利要求16的结构,其特征在于:每一个寄存器还包括位寄存器,后者具有:
(a)用来存储真和补入口地址位的第一锁存电路;
(b)用来存储真和补入口地址位、与第一锁存器通信连接的第二锁存电路,其中第二锁存电路包括输入端和输出端;
(c)用来将第二锁存电路的输出与入口地址总线上的真和补入口地址进行比较的比较电路。
18.根据权利要求16的结构,其特征在于入口地址驱动电路包括:
(a)输入入口地址的入口地址位电路;
(b)输出入口地址位的输出端;以及
(c)自定时复位电路,它随着所述入口地址位电路而将所述输出端复位。
19.根据权利要求16的结构,其特征在于寄存器栈反馈电路包括:
(a)真和补入口位输入电路;
(b)栈反馈输出电路;以及
(c)与栈反馈输出电路通信连接并且包括若干用来产生传输延迟的反相器门的复位电路。
20.以最近最少使用替换算法处理无效入口或路数据的高速缓存设备,其特征在于所述高速缓存设备包括:
(a)存储地址信息的第一寄存器栈,所述第一寄存器栈至少包括N和接着的N+1寄存器,其中N是任意大于或等于0的整数;
(b)将入口地址编码为真和补入口地址的动态入口地址编码器;
(c)产生自定时真入口地址总线和自定时补入口地址总线的自定时反向动态入口地址反相驱动电路;
(d)与动态入口地址编码器和自定时反相动态入口地址反相器电路通信连接的动态入口地址总线,用来传输真和补入口地址;
(e)与自定时反相动态入口地址反相器驱动电路通信连接的自定时第一寄存器栈反馈电路,所述电路用来测量第一寄存器栈比较操作的进程;
(f)与自定时第一寄存器栈反馈电路,动态入口地址编码器和第一寄存器栈通信连接的栈控制逻辑电路,所述电路用来控制寄存器栈的输入和输出;
(g)与栈控制逻辑电路和自定时反相动态入口地址反相器电路通信连接的MRU寄存器,所述寄存器用来存储最近经常使用入口地址;
(h)与自定时反相动态入口地址反相器电路通信连接,用来存储地址信息的第二寄存器栈;以及
(i)与栈控制逻辑电路和LRU多路转换器通信连接,用来控制LRU多路转换器的计数控制器电路。
21.根据权利要求20的高速缓存设备,其特征在于:第一寄存器栈还包括位寄存器,后者具有:
(a)存储真和补入口地址位的第一锁存电路;
(b)与第一锁存电路通信连接,用来存储真和补入口地址位的第二锁存电路,其中第二锁存电路包括输入端和输出端;
(c)用来把第二锁存电路与真和补入口地址位比较的比较电路;
22.根据权利要求20的高速缓存设备,其特征在于:动态入口地址编码器包括放电电路,用来使动态入口地址总线放电,其中放电电路包括字线输入端。
23.根据权利要求20的高速缓存设备,其特征在于:自定时反相动态入口地址反相器驱动电路包括:
(a)用来输入入口地址的入口地址位电路;
(b)用来输出入口地址位的输出端;
(c)随着栈反馈而将所述输出端复位的自定时复位电路。
24.根据权利要求20的高速缓存设备,其特征在于:自定时第一寄存器栈反馈电路包括:
(a)真和补入口位输入电路;
(b)栈反馈输出电路;
(c)与栈反馈输出电路通信连接,包括若干个产生传输延迟的反相门的复位电路。
25.根据权利要求20的高速缓存设备,其特征在于:所述栈控制逻辑电路包括:
(a)用来禁止第一寄存器栈更新操作的栈更新电路,所述栈更新电路包括:
(1)用来检测比较入口地址状态信号的状态的比较入口地址操作输入电路;
(2)用来检测窥探操作状态信号的状态的窥探操作输入电路;
(3)用来检测写地址信号状态的写地址驱动输入电路;
(4)产生栈更新输出信号的栈更新输出端;
(b)用来产生无效入口地址状态信号的写地址操作输入电路,所述无效入口地址状态电路包括:
(1)用来输入入口地址有效状态位的状态的有效位状态输入电路;
(2)产生无效入口地址状态信号的无效入口地址状态输出电路。
26.根据权利要求20的高速缓存设备,其特征在于:MRU寄存器包括:
(a)接收真入口地址位的真入口地址位输入电路;
(b)接收补入口地址位的补入口地址位输入电路;
(c)输出MRU入口位的MRU入口位输出端;
(d)用来将MRU入口位输出信号复位的复位电路,所述复位电路包括:
(1)将MRU入口位复位到低逻辑电位的低复位电路;
(2)将MRU入口位复位到高逻辑电位的高复位电路。
27.根据权利要求20的高速缓存设备,其特征在于:所述第二寄存器至少包括M寄存器,其中M是等于或大于0的任意整数,所述M寄存器包括用来存储入口地址位的位寄存器,所述位寄存器电路包括输入端和输出端。
28.根据权利要求20的高速缓存设备,其特点还在于:还包括用来计算存储在第二寄存器中的入口地址数量的计数电路。
29.根据权利要求20的高速缓存设备,其特征在于:自定时反相动态入口地址反相器驱动电路包括:
(a)输入入口地址的入口地址位电路;
(b)输出入口地址位的输出端;
(c)随着所述入口地址位电路而将所述输出端复位的复位电路。
CN97123043A 1996-12-24 1997-11-24 高速缓存中最近最少使用替换结构及其机制的执行方法 Expired - Fee Related CN1093962C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US772819 1996-12-24
US08/772,819 US5809528A (en) 1996-12-24 1996-12-24 Method and circuit for a least recently used replacement mechanism and invalidated address handling in a fully associative many-way cache memory

Publications (2)

Publication Number Publication Date
CN1206150A true CN1206150A (zh) 1999-01-27
CN1093962C CN1093962C (zh) 2002-11-06

Family

ID=25096342

Family Applications (1)

Application Number Title Priority Date Filing Date
CN97123043A Expired - Fee Related CN1093962C (zh) 1996-12-24 1997-11-24 高速缓存中最近最少使用替换结构及其机制的执行方法

Country Status (4)

Country Link
US (1) US5809528A (zh)
KR (1) KR100282751B1 (zh)
CN (1) CN1093962C (zh)
TW (1) TW374132B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1296832C (zh) * 2002-04-25 2007-01-24 国际商业机器公司 用破坏读取高速缓冲存储器来缓冲的破坏读取随机访问存储器系统
CN1333347C (zh) * 2002-07-31 2007-08-22 思科技术公司 用于随机化缓存条目替换的方法和装置
CN100407172C (zh) * 2003-07-25 2008-07-30 飞思卡尔半导体公司 选择替换用高速缓冲存储器路的方法与装置
CN100407168C (zh) * 2003-09-29 2008-07-30 刘志明 层次化视频点播中的磁盘缓存替换算法
CN100428200C (zh) * 2006-12-28 2008-10-22 北京时代民芯科技有限公司 一种片上指令cache的实现方法
CN100429633C (zh) * 2004-04-27 2008-10-29 皇家飞利浦电子股份有限公司 一种处理来自磁盘的数据的方法以及使用该方法的装置
CN100429632C (zh) * 2003-09-19 2008-10-29 松下电器产业株式会社 高速缓冲存储器和高速缓冲存储器控制方法
CN101038775B (zh) * 2006-03-19 2010-08-11 联发科技股份有限公司 用于调校从光储存媒体所读出数据的缓存的方法及装置
CN103870204A (zh) * 2012-12-11 2014-06-18 华为技术有限公司 一种cache中数据写入和读取方法、cache控制器
CN106055490A (zh) * 2015-04-09 2016-10-26 想象技术有限公司 在多线程处理器中的高速缓存器操作

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6161167A (en) * 1997-06-27 2000-12-12 Advanced Micro Devices, Inc. Fully associate cache employing LRU groups for cache replacement and mechanism for selecting an LRU group
US6378047B1 (en) * 1997-07-07 2002-04-23 Micron Technology, Inc. System and method for invalidating set-associative cache memory with simultaneous set validity determination
US6105115A (en) * 1997-12-31 2000-08-15 Intel Corporation Method and apparatus for managing a memory array
US6321375B1 (en) * 1998-05-14 2001-11-20 International Business Machines Corporation Method and apparatus for determining most recently used method
US6389527B1 (en) * 1999-02-08 2002-05-14 Kabushiki Kaisha Toshiba Microprocessor allowing simultaneous instruction execution and DMA transfer
US6338120B1 (en) * 1999-02-26 2002-01-08 International Business Machines Corporation Apparatus for cache use history encoding and decoding including next lru and next mru and method therefor
US6952741B1 (en) * 1999-06-30 2005-10-04 Computer Sciences Corporation System and method for synchronizing copies of data in a computer system
US6496907B1 (en) * 1999-10-22 2002-12-17 Apple Computer, Inc. System and method for updating from a read-only to a read-write entry and concurrently invalidating stale cache copies from head-to-tail and tail-to-head directions
DE69937611T2 (de) * 1999-12-06 2008-10-23 Texas Instruments Inc., Dallas Intelligenter Puffer-Speicher
EP1124199A1 (en) * 2000-02-08 2001-08-16 STMicroelectronics S.r.l. A method for processing fuzzy inferences and corresponding processing structure
US6823434B1 (en) * 2000-02-21 2004-11-23 Hewlett-Packard Development Company, L.P. System and method for resetting and initializing a fully associative array to a known state at power on or through machine specific state
US6408364B1 (en) * 2000-03-17 2002-06-18 Advanced Micro Devices, Inc. Apparatus and method for implementing a least recently used cache replacement algorithm
US6598123B1 (en) 2000-06-28 2003-07-22 Intel Corporation Snoop filter line replacement for reduction of back invalidates in multi-node architectures
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
US6848024B1 (en) 2000-08-07 2005-01-25 Broadcom Corporation Programmably disabling one or more cache entries
US6574718B2 (en) 2001-02-28 2003-06-03 International Business Machines Corporation Excessive spin detection and avoidance for systems using a least recently used page replacement algorithm
US6748495B2 (en) 2001-05-15 2004-06-08 Broadcom Corporation Random generator
US6823427B1 (en) * 2001-05-16 2004-11-23 Advanced Micro Devices, Inc. Sectored least-recently-used cache replacement
US7266587B2 (en) * 2002-05-15 2007-09-04 Broadcom Corporation System having interfaces, switch, and memory bridge for CC-NUMA operation
US7437532B1 (en) * 2003-05-07 2008-10-14 Marvell International Ltd. Memory mapped register file
US6961280B1 (en) 2003-12-08 2005-11-01 Altera Corporation Techniques for implementing address recycling in memory circuits
US7321954B2 (en) * 2004-08-11 2008-01-22 International Business Machines Corporation Method for software controllable dynamically lockable cache line replacement system
US7334107B2 (en) * 2004-09-30 2008-02-19 Intel Corporation Caching support for direct memory access address translation
KR100617875B1 (ko) * 2004-10-28 2006-09-13 장성태 다중 캐쉬 구조의 다중 프로세서 시스템 및 그 원격캐쉬의 교체 방법
US20060179191A1 (en) * 2005-02-10 2006-08-10 Young David W Covert channel firewall
US7386669B2 (en) * 2005-03-31 2008-06-10 International Business Machines Corporation System and method of improving task switching and page translation performance utilizing a multilevel translation lookaside buffer
US8842127B1 (en) * 2005-04-25 2014-09-23 Apple Inc. Text rendering with improved glyph cache management
CN101059775B (zh) * 2006-04-19 2010-07-14 深圳市朗科科技股份有限公司 降低便携式设备功耗的方法
US8788758B1 (en) * 2008-11-04 2014-07-22 Violin Memory Inc Least profitability used caching scheme
US8521963B1 (en) * 2009-09-21 2013-08-27 Tilera Corporation Managing cache coherence
US9378789B2 (en) 2014-09-26 2016-06-28 Qualcomm Incorporated Voltage level shifted self-clocked write assistance

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4361878A (en) * 1980-10-27 1982-11-30 Control Data Corporation Degradable LRU circuit
US4463424A (en) * 1981-02-19 1984-07-31 International Business Machines Corporation Method for dynamically allocating LRU/MRU managed memory among concurrent sequential processes
US4513367A (en) * 1981-03-23 1985-04-23 International Business Machines Corporation Cache locking controls in a multiprocessor
US4422145A (en) * 1981-10-26 1983-12-20 International Business Machines Corporation Thrashing reduction in demand accessing of a data base through an LRU paging buffer pool
US4783735A (en) * 1985-12-19 1988-11-08 Honeywell Bull Inc. Least recently used replacement level generating apparatus
US4843542A (en) * 1986-11-12 1989-06-27 Xerox Corporation Virtual memory cache for use in multi-processing systems
EP0309668A3 (de) * 1987-09-30 1990-02-28 Siemens Aktiengesellschaft Schaltungsanordnung zur Realisierung eines LRU (Least Recently Used)-ähnlichen Mechanismus für viele Elemente, insbesondere für Datenverarbeitungssysteme
US5055999A (en) * 1987-12-22 1991-10-08 Kendall Square Research Corporation Multiprocessor digital data processing system
JPH0786848B2 (ja) * 1989-11-01 1995-09-20 三菱電機株式会社 キャッシュメモリ
JPH03216744A (ja) * 1990-01-22 1991-09-24 Fujitsu Ltd 内蔵キャッシュ・メモリ制御方式
JPH03219326A (ja) * 1990-01-24 1991-09-26 Mitsubishi Electric Corp データ比較回路
US5163140A (en) * 1990-02-26 1992-11-10 Nexgen Microsystems Two-level branch prediction cache
JP2879607B2 (ja) * 1990-03-15 1999-04-05 サン・マイクロシステムズ・インコーポレーテッド 機能停止キャッシュを提供する装置と方法
US5317718A (en) * 1990-03-27 1994-05-31 Digital Equipment Corporation Data processing system and method with prefetch buffers
US5261066A (en) * 1990-03-27 1993-11-09 Digital Equipment Corporation Data processing system and method with small fully-associative cache and prefetch buffers
US5031141A (en) * 1990-04-06 1991-07-09 Intel Corporation Apparatus for generating self-timing for on-chip cache
US5014195A (en) * 1990-05-10 1991-05-07 Digital Equipment Corporation, Inc. Configurable set associative cache with decoded data element enable lines
EP0461926B1 (en) * 1990-06-15 1998-09-02 Compaq Computer Corporation Multilevel inclusion in multilevel cache hierarchies
ATE158882T1 (de) * 1990-06-15 1997-10-15 Compaq Computer Corp Vorrichtung zur echten lru-ersetzung
US5594885A (en) * 1991-03-05 1997-01-14 Zitel Corporation Method for operating a cache memory system using a recycled register for identifying a reuse status of a corresponding cache entry
US5339399A (en) * 1991-04-12 1994-08-16 Intel Corporation Cache controller that alternately selects for presentation to a tag RAM a current address latch and a next address latch which hold addresses captured on an input bus
GB2256512B (en) * 1991-06-04 1995-03-15 Intel Corp Second level cache controller unit and system
US5353424A (en) * 1991-11-19 1994-10-04 Digital Equipment Corporation Fast tag compare and bank select in set associative cache
US5325503A (en) * 1992-02-21 1994-06-28 Compaq Computer Corporation Cache memory system which snoops an operation to a first location in a cache line and does not snoop further operations to locations in the same line
US5493667A (en) * 1993-02-09 1996-02-20 Intel Corporation Apparatus and method for an instruction cache locking scheme
US5452440A (en) * 1993-07-16 1995-09-19 Zitel Corporation Method and structure for evaluating and enhancing the performance of cache memory systems
US5590308A (en) * 1993-09-01 1996-12-31 International Business Machines Corporation Method and apparatus for reducing false invalidations in distributed systems
US5526512A (en) * 1993-09-20 1996-06-11 International Business Machines Corporation Dynamic management of snoop granularity for a coherent asynchronous DMA cache
US5551001A (en) * 1994-06-29 1996-08-27 Exponential Technology, Inc. Master-slave cache system for instruction and data cache memories

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1296832C (zh) * 2002-04-25 2007-01-24 国际商业机器公司 用破坏读取高速缓冲存储器来缓冲的破坏读取随机访问存储器系统
CN1333347C (zh) * 2002-07-31 2007-08-22 思科技术公司 用于随机化缓存条目替换的方法和装置
CN100407172C (zh) * 2003-07-25 2008-07-30 飞思卡尔半导体公司 选择替换用高速缓冲存储器路的方法与装置
CN100429632C (zh) * 2003-09-19 2008-10-29 松下电器产业株式会社 高速缓冲存储器和高速缓冲存储器控制方法
CN100407168C (zh) * 2003-09-29 2008-07-30 刘志明 层次化视频点播中的磁盘缓存替换算法
CN100429633C (zh) * 2004-04-27 2008-10-29 皇家飞利浦电子股份有限公司 一种处理来自磁盘的数据的方法以及使用该方法的装置
CN101038775B (zh) * 2006-03-19 2010-08-11 联发科技股份有限公司 用于调校从光储存媒体所读出数据的缓存的方法及装置
CN100428200C (zh) * 2006-12-28 2008-10-22 北京时代民芯科技有限公司 一种片上指令cache的实现方法
CN103870204A (zh) * 2012-12-11 2014-06-18 华为技术有限公司 一种cache中数据写入和读取方法、cache控制器
CN103870204B (zh) * 2012-12-11 2018-01-09 华为技术有限公司 一种cache中数据写入和读取方法、cache控制器
CN106055490A (zh) * 2015-04-09 2016-10-26 想象技术有限公司 在多线程处理器中的高速缓存器操作

Also Published As

Publication number Publication date
TW374132B (en) 1999-11-11
US5809528A (en) 1998-09-15
CN1093962C (zh) 2002-11-06
KR19980063500A (ko) 1998-10-07
KR100282751B1 (ko) 2001-02-15

Similar Documents

Publication Publication Date Title
CN1093962C (zh) 高速缓存中最近最少使用替换结构及其机制的执行方法
TW589571B (en) Microprocessor with repeat prefetch instruction
CN1287292C (zh) 使用类型位跟踪二级高速缓存中储存的错误校正码及预解码位
KR101533564B1 (ko) 메모리 내 cpu 캐시 아키텍처
US7739477B2 (en) Multiple page size address translation incorporating page size prediction
US10210096B2 (en) Multi-stage address translation for a computing device
US9530499B2 (en) Semiconductor memory device and information processing device
US5617348A (en) Low power data translation circuit and method of operation
US5717885A (en) TLB organization with variable page size mapping and victim-caching
JP3666689B2 (ja) 仮想アドレス変換方法
EP0911737A1 (en) Cache memory with reduced access time
US6757817B1 (en) Apparatus having a cache and a loop buffer
JPH09506729A (ja) 浮動小数点データと整数データを記憶するためのローカルキャッシュとグローバルキャッシュを含むメモリシステム
US11409663B2 (en) Methods and systems for optimized translation of a virtual address having multiple virtual address portions using multiple translation lookaside buffer (TLB) arrays for variable page sizes
JP2001184263A (ja) 旧キャッシュラインを無効化および除去する装置
JP2735781B2 (ja) キャッシュ・メモリ制御システム及び方法
JPH07104816B2 (ja) コンピュータシステムを動作する方法及びコンピュータシステムにおけるメモリ管理装置
JP4445081B2 (ja) キャッシュ・メモリ
CN1120196A (zh) 地址变换电路
US5732405A (en) Method and apparatus for performing a cache operation in a data processing system
US6032241A (en) Fast RAM for use in an address translation circuit and method of operation
US6643742B1 (en) Method and system for efficient cache memory updating with a least recently used (LRU) protocol
KR100320977B1 (ko) 짝수/홀수 캐시 디렉토리 어드레싱 방법 및 장치
US20220398198A1 (en) Tags and data for caches
US6324633B1 (en) Division of memory into non-binary sized cache and non-cache areas

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
C19 Lapse of patent right due to non-payment of the annual fee
CF01 Termination of patent right due to non-payment of annual fee