高速缓存的动态字线驱动器的制作方法

文档序号:6761136阅读:180来源:国知局
专利名称:高速缓存的动态字线驱动器的制作方法
技术领域
本发明一般地涉及数字信号处理,特别涉及一种用于管理高速缓存设备的存储器驱动电路结构。
背景技术
随着计算机系统应用的增加,对计算机系统的要求也持续增长。为了满足增长的要求和扩展的用户库,已经提供了具有更高性能特性的计算机系统。中央处理单元或CPU的速度提高是非常显著的。然而,为了最大限度地利用更快的CPU,其他基本的计算机子系统也必须稳步地提高,以便能够以更高的系统速度运行。而且,应用程序复杂度的增长也对计算机子系统提出了更高的要求,以使得计算机系统不仅能够以更快的速度运行,还要能够处理更加复杂的应用程序和数据处理要求。
在计算机系统中,高速缓存子系统已经成为改进的一个关键地方。更特别地,控制高速缓存阵列中的存储单元的字线驱动电路还没有经过多少改变。在过去,因为高速缓存很简单并且在高速缓存中只实现很少的操作,所以字线驱动器是简单且易实现的。随着微处理器变得更强大、更快、更复杂,高速缓存子系统和字线驱动电路也必须被改进,以便最优化地使用提高的CPU性能。对于大多数应用程序,高速缓存电路的大小和速度必须被改进,以允许在运行现代复杂的计算机应用程序中可以由CPU更快地访问到更大数量的程序设计和数据。然而,随着带宽的提高,产生了定时问题,这个问题在某些情况下可能会严重到足以影响电路的可靠性。因此,需要一种改进的高速缓存子系统和高速缓存控制电路,以便为现代计算机系统应用程序提供更大的高速缓存能力。

发明内容
本发明提供了实现一个有效地去除在较高带宽、动态高速缓存控制系统中出现的许多定时问题的高速缓存控制系统的方法和装置。在一个实施例中,提供了一个虚拟内容可寻址存储器(CAM)单元,并将其关键地放置在距离高速缓存字线驱动电路最远的芯片布局上。虚拟输出信号是一个高速缓存命中(hit)评价电路所需的输入,以便去除过早的高速缓存命中输出。虚拟单元被设计为当任何地址位线、特别是那些远离字线驱动电路的位线产生一个不匹配指示时对一个高速缓存匹配线进行快速放电,并指示一种未命中状态。这种方法在扩展带宽、动态系统中特别有用,在该系统中,带宽更加扩展,系统与预定且固定的持续时钟周期同步。高速缓存控制系统还提供了一种预取模式,用于确定下一个周期地址是否位于该高速缓存内。在一种再充模式中,高速缓存控制电路将数据从L2高速缓存或主存储器或其他存储器存储设备传送进高速缓存。还包括一种测试模式,用于确定该高速缓存不是有故障的。还实现一种“I-高速缓存”块无效(ICBI)模式,以执行预取操作,如果一个“有效”位为低,则表示那个高速缓存线或字线变得无效,不被使用。高速缓存还可以产生一个复位信号,表示在高速缓存中的数据是无效的。当产生复位信号时,系统CPU将不使用该数据。
根据本发明的一个方面,提供了一种用于操作高速缓存器的方法,所述方法包括提供一个时钟信号,所述时钟信号被有效地用于定义顺序的时钟定时周期;确定在一单个时钟周期要完成的多个可选择操作的高速缓存功能中的选定的一个;以及在所述单个时钟周期完成所述选定高速缓存功能。
根据本发明的另一个方面,提供了一种用于操作一个高速缓存器的高速缓存器控制电路,所述高速缓存器控制电路包括被安排为接收包括一个时钟信号的输入信号的端子装置,所述时钟信号可有效地定义顺序的时钟定时周期;与所述端子装置相连的模式信号提供装置,所述模式信号提供装置,该装置可操作地用于提供代表多个可选择操作的高速缓存功能的模式信号,其中,在一单个时钟周期期间将完成所述高速缓存功能中的所选定一个;以及电路装置,响应于所述模式信号,用于在所述单个时钟周期期间完成选定的高速缓存功能。


当下面结合附图对最佳实施例进行详细说明时,可以更好地理解本发明,

如下,其中图1是显示一个芯片布局实例的一部分的图解表示,该芯片布局包括几个包含某些芯片电路和阵列的物理区域;图2是显示图1的字线驱动电路的一部分的示意图;图3是字线驱动电路的另一部分的示意图;图4是字线驱动电路的另一部分的示意图;图5是字线驱动电路的另一部分的示意图;图6是字线驱动电路的另一部分的示意图;图7是字线驱动电路的另一部分的示意图;图8是字线驱动电路的另一部分的示意图;图9是字线驱动电路的另一部分的示意图;图10是一个WLRSTB信号发生电路实例的图解表示;图11是显示产生RSTB信号的逻辑的示意图;图12是显示在产生RSTB时实现的逻辑电路的示意图;图13是显示一个虚拟ECAM单元电路实例的示意图;图14是显示与这里公开的字线驱动电路的EMATCH线相连的输入电路的一个实施例的示意图;图15是帮助解释高速缓存系统的几个信号的操作的信号时序图;以及图16是显示由本发明公开的实施例实现的功能的操作顺序的流程图。
具体实施例方式
虽然本公开文本为了简化的缘故显示了分离的逻辑电路,应该理解,本发明并不限于显示的实施例,而是还包括实施这里所指出的方法的系统,或是作为一单个系统CPU或其他更大的半导体系统、芯片、处理器或集成电路的一部分的系统。并且,在这里的例子中,术语“源”或“源电位”或“VDD”可以互换地用来表示逻辑“1”或“高”电平电位。并且,术语“零电平”、“地电位”或“地”也可以互换地表示逻辑“0”或“低”电平电位。此外,术语“PFET”(p型场效应晶体管)和PMOS(p型金属氧化物半导体)在本公开中可以互换地使用,术语“NFET”(n型场效应晶体管)和“NMOS”(n型金属氧化物半导体)也可以互换地使用。信号名称和电路节点也可以互换地表示在电路中的特定点或节点处的信号以及节点本身。
参考图1,图1显示了在一个集成电路芯片上的特定物理区域的布局示例图,在该集成电路芯片上安排有几个电路和阵列。在布局的左边显示了一个RAM(随机存取存储器)阵列101,与两个“虚拟”CAM(内容地址存储器)单元线103并列放置。RAM阵列101与一个写驱动器102和一个读出放大器104相连。接着CAM单元线103显示的是一个ECAM(有效地址内容可寻址存储器)单元105。ECAM从诸如系统CPU接收一个12位“有效地址”。一个字线驱动电路107与ECAM单元105相邻,一个RCAM(实际地址内容可寻址存储器)单元109与字线驱动电路107相邻。在该示例中,RCAM从一个分段“先行”或一个表“先行”缓冲器接收一个32位“实际地址”。另一组虚拟CAM单元线111位于RCAM单元109和另一个RAM阵列113之间。RAM阵列113也与一个写驱动电路114和一个读出放大器116相连。一个“字线”115(WL)显示为是“虚拟”CAM单元117和119。虚拟ECAM单元117与ECAM105相连,用于有效地址匹配,虚拟RCAM单元119与RCAM109相连,用于实际地址匹配。ECAM单元包括一个ECAM匹配线121,RCAM单元包括一个RCAM匹配线123。在下面的说明中将更加详细地显示所示电路和阵列的细节。
图2至图9显示了字线驱动电路107的一个例示性结构的各个部分。在图2中,安排了一个端子201,向PFET203的栅极提供一个WLRSTB(字线复位条形(bar))信号。晶体管203连在一个源或逻辑“1”电位205和一个公共节点207之间。三个NFET器件209、211和213串联在公共节点207和地或逻辑“0”电平电位之间。安排了一个反相器217,接收一个EMATCHB(有效地址匹配“条形”)信号并将反相信号EMATCH(有效地址匹配条形)信号加到NFET211的栅极上。将NFET209安排为在其栅极接收一个EA SEL信号(来自图13),将NFET213的栅极安排为接收时钟信号C2。PFET器件219和NFET器件221串联在源和地之间。在晶体管219和221之间的公共点与公共节点207相连,并且连到一个反相器223的输入端。反相器223的输出端提供一个输出信号EMATCH WL(有效地址匹配字线),该信号也加到“保持器”晶体管219和221的栅极。
在图3中,在该示例中,端子301向一个反相器303的输入端提供一个EA SEL信号,反相器303的输出连到NAND门309的一个输入端。另一个端子305向一个反相器307的输入端提供一个REFILL信号,反相器307的输出端连到NAND门309的另一个输入端。NAND门309的输出端连到一个公共节点311,该公共节点311然后连到另一个NAND门313的一个输入端。NAND门313的第二个输入端连到一个反相器315的输出端,反相器315的输入端被安排为接收C2时钟信号。一个NFET327连在M0节点和逻辑0电位或地之间,晶体管327的栅极连到一个NOR门321的输出端。NOR门321的一个输入端连到NAND门309的输出端,NOR门321的另一个输入端连到一个反相器319的输出端。反相器319的输入端接收来自端子317的信号EMATCH。两个PFET器件323和325并联在源电位和反相器319的输入端之间。PFET323的栅极连到NAND门313的输出端,PFET325的栅极连到反相器319的输出端。反相器319的输出端提供EMATCHB输出信号。如果信号REFILL为低,这表明系统处于“读”模式,如果信号REFILL为“高”(处于高逻辑电平),则系统处于“写”模式。并且,如果信号EA SEL为低以及REFILL和C2都为低,则EMATCH线WL被预充电到VDD,在该示例中即为逻辑“1”电位。当C2变高,则PFET323“关闭”。
在图4中,将EMATCH WL信号加到一个反相器401的输入端,该反相器401的输出端连到NAND门403的一个输入端。NAND门403的另一个输入端连到反相器405的输出端,反相器405在其输入端接收WLRSTB信号。NAND门403的输出端连到一个反相器407的输入端。反相器407的输出端连到另一个反相器409的输入端,反相器409的输出端连到一个PFET器件411的栅极。PFET器件连在源或逻辑“1”电位和M0节点之间。反相器409的输出端还提供一个输出RS4信号。
如图5所示,将WLRSTB信号加到一个PFET器件501的栅极。PFET器件501连在源电位和节点M1 519之间。一对串联的NFET器件505和509连在M1节点和节点520之间。输入端503向NFET505的栅极提供信号REFILL SEL,端子507向NFET509的栅极提供信号PLRU SEL(最近最少使用的线选择)。一旦出现了一个高速缓存未命中(miss),从L2高速缓存或主存储器取出数据。选择最近最少使用的高速缓存线(PLRU SEL),再充(refill)信号(REFILL)变高以选择字线WL。然后将数据写入该特定的高速缓存线。M1节点连到一个反相器511的输入,反相器511的输出连到节点M2,节点M2连到一个NFET器件516的栅极。一个PFET器件513和一个NFET器件515串联在源和地电位之间。在晶体管513和515之间的公共点连到M1节点,晶体管513和515的栅极连到反相器511的输出M2节点。晶体管516连在M0节点和地之间。M0节点还通过两个串联NFET器件517和518与地相连。晶体管517的栅极接收GWL(全局字线)信号,晶体管518的栅极接收RS4信号。
图6显示了连到一个反相器601的输入的M0节点,反相器601的输出连到一个公共节点609。节点609接着连到两个串联反相器611和613,以提供WL(字线)信号。一个PFET器件603连在源电位和反相器601的输入端之间。GWL节点609还提供一个直接连接,作为从图6电路的一个输出。反相器601的输出连到晶体管603的栅极,还连到端子520(在图5中也显示了)。端子520连到一个NFET器件607的栅极。晶体管607连在一个输出LINE HITB节点605和地之间。
如图7所示,将一个FUSE COM信号从端子701加到一个NFET器件703的栅极。FUSE COM信号用于检验冗余项。如果一个字线或一行工作不正常,则FUSE COM变低,不选择该字线或行。晶体管703与另外两个NFET器件705和707串联在端子519和地之间。将晶体管705和707之间的公共点提供为端子520的输出。NAND门709接收三个输入信号TST D1、TST D2和TST D3,并将其输出通过一个反相器711连到NFET器件705的栅极。测试信号测试高速缓存系统内的地址,这些信号例如是从一个内建自测试(BIST)程序产生的。将时钟信号C2通过四个串联反相器713、715、717和719加到NAND门721的一个输入端。NAND门721的另一个输入端直接接收C2。NAND门721的输出端通过一个反相器723连到NFET器件707的栅极。
在图8中,将GWL信号加到一个反相器801的输入端,反相器801的输出端连到一个三输入NAND门803的一个输入端。NAND门803的另一个输入端接收EMATCH WL信号,第三个输入REFILL C1来自端子805。NAND门801的输出端连到另一个NAND门809的一个输入端。NAND门809的第二个输入端连到NAND门807的输出端。NAND门807的一个输入端与端子920相连,第二个输入端接收信号ICBI C1。NAND门809的第三个输入端接收信号RESET B。NAND门809的输出端通过两个串联反相器811和813提供VBIT RESET(有效位复位)。在高速缓存或CAM电路中,在存储器中的每个线有一个VBIT(有效位)指示位。如果任何线的VBIT等于“0”,则该特定线无效。在ICBI周期中,将实际地址与RCAM的内容进行比较。ICBI信号为高,并且如果RCAM的所有位都相等,时钟C2为高,RA SEL为低,则R5节点被拉低,RMATCH线将为高(图9)。NAND门807的输出(节点ICBI RESET)将被强制为低,VBIT RESET将变高。当VBIT RESET被强制为高时,有效位VBIT将被设置为零,这意味着该高速缓存线或字线变得无效,未被使用。如果在RCAM中有一个未命中,则不将VBIT设置为零。在这种情况下,信号RESETB被拉低,VBIT RESET将变高(图8)。随后将所有有效位VBIT设置为零。
在图9中,一个PFET器件901与一个NFET器件903串联在源和地电位之间。晶体管901和903之间的公共点连到一个反相器905的输入端。反相器905的输出端连到PFET901的栅极、一个输出端920、以及NFET器件903和907的栅极。NFET907连在一个输出端909和地之间。输出端909提供输出信号RCOM HITB。一个PFET器件913连在源和公共点911之间。PFET913的栅极接收WLRSTB信号。三个串联NFET器件915、917和919连在公共点911和地之间。公共点911还连到反相器905的输入端。将信号RA SEL通过端子921加到一个反相器923的输入端。反相器923的输出端(R0节点)通过两个串联反相器925和927连到NFET915的栅极(节点R5)。反相器925的输出端(节点R1)还连到一个两输入NAND门929的一个输入端上。NAND门929的另一个输入端连到一个反相器931的输出端,反相器931接收一个输入C2信号。还将C2输入加到NFET器件919的栅极。两个PFET器件933和934并联在源电位和一个RMATCH节点935之间。NAND门929的输出端(节点R2)连到PFET器件933的栅极。节点935连到反相器937的输入端,反相器937的输出端(节点R3)通过另一个反相器939连到NFET器件917的栅极(节点R4)。反相器937的输出端还连到PFET器件934的栅极。
在图10中,一个WP ICACHE WLRST(字线复位)电路1001接收三个输入信号,即RDRESET(读复位)、WTRESET(写复位)和RESETB(复位“条形”或复位反相)。WP ICACHE WLRST电路1001输出一个DUM WLRSTB信号,将该信号与来自端子1005的另一个输入C2 EARLY加到一个WP ICACHE WLRST BUF缓冲电路1003上。缓冲电路1003在端子1007提供一个输出WLRSTB信号。
图11显示了一个RST信号在端子1101加到一个反相器1103的输入端,一个C2 EARLY信号在端子1107加到另一个反相器1109的输入端。反相器1103和1109的输出加到一个两输入NAND门1105的输入端。NAND门1105的输出端连到四个串联反相器1111、1113、1115和1117,以在端子1119提供一个WLRSTB输出信号。如果WLRSTB为低,字线WL被预充电,如果WLRSTB为高,则字线WL处于评价状态。
在图12中,信号WTRESET指示一个写操作已完成,将其在端子1201加到一个反相器1203的输入端。指示一个读操作已完成的信号RDRESET在端子1207加到另一个反相器1209的输入端。反相器1203和1209的输出端连到一个三输入NAND门1205的两个输入端。NAND门1205的的第三个输入端连到一个加有信号RESETB的端子1211。RESETB与图8中的RESETB是相同的。如果RESETB为低,所有的高速缓存线被无效,即VBIT被设置为“0”。如果RESETB为高,则进行正常的高速缓存操作。NAND门1205的输出端连到一个反相器1213,在端子1215提供一个输出信号RST,该输出信号RST是图11中的反相器1103的输入。
最初,WTRESET和RDRESET为低,这将强制WLRSTB为高,并且字线WL处于评价模式。当最后一位从阵列中读出时,则强制RDRESET信号为高,这使得一个低输入加到NAND门1205上,RST信号变低。同样,当最后一位写入阵列中时,则强制WTRESET信号为高,这使得一个低输入加到NAND门1205上,RST信号变低。如果C2 EARLY也为低,则强制WLRSTB为低,字线驱动器变为预充电状态,即WL被强制为低。
在图13中,信号COMP和COMPB是在将距离字线驱动器107最远的有效地址或标志地址位与ECAM105的内容进行比较时从虚拟ECAM117产生的比较信号。COMP和COMPB信号分别加在虚拟ECAM单元电路117的端子1301和1305,虚拟ECAM单元电路117在图13中进行了详细显示。端子1301和1305连到一个两输入NAND门1303的输入端。NAND门1303的输出端通过两个串联反相器1305和1307连到一个公共节点1309。两个串联PFET1311和1313连在源电位和一个公共点1327之间,两个串联NFET器件1315和1317连在公共点1327和地之间。同样,两个串联PFET器件1319和1321连在源或逻辑1电位和公共点1327之间,两个NFET器件1323和1325串连在公共点1327和地之间。晶体管1319、1321、1323和1317的栅极相连,以接收COMPB信号,晶体管1311、1313、1315和1325的栅极被安排为接收信号COMP。公共点1327还连到一个NFET器件1329的栅极,该NFET器件1329连在公共点1331和地之间。该公共点连到一个反相器1333的输入端。反相器1333的输出端连到一个两输入NAND门1339的一个输入端。NAND门1339的另一个输入端连到节点1309。两个PFET器件1337和1335并联在源电位和反相器1333的输入端之间。晶体管1337的栅极连到节点1339,晶体管1335的栅极连到反相器1333的输出端。NAND门1339的输出端通过串联的反相器1341和1343在端子1345提供一个输出信号EA SEL。当CPU请求地址或“标记”地址与ECAM的内容进行比较时,或者COMP为高,COMPB为低,或者反之,即,COMP和COMPB信号是相反的逻辑状态。在这种情况下,系统处于一种评价模式,EA SEL(有效地址选择)为低。当COMP和COMPB都为高时,系统处于一种预充电模式,输出到反相器303(图3)的EA SEL为高。
在图14中,显示了与字线驱动电路107相连的EMATCH线118,其中,字线驱动电路107已经在前面结合图1进行了说明。图14还显示了一个包括一系列NFET器件的输入电路,其中,NFET121用于接收输入ECAMMB IN(0)(即,有效内容可寻址存储器匹配“条形”信号串129中的第一个),NFET123用于接收ECAMMB IN(1),这样一直将125持续到NFET127。将NFET127安排为接收输入ECAMMB IN(n),其中“(n)”代表与系统中的地址总线宽度有关的全整数。如图所示,另一个NFET器件128连在EMATCH LINE 118和地之间,接收一个VBIT输入信号,该VBIT信号处于高状态时表示一种有效输入位状态。例如,当系统处理器从存储器请求一个地址时,检验该地址是否处于高速缓存器中。将所请求地址的各位与高速缓存地址的对应位进行匹配,如果请求的有效地址和ECAM(有效内容可寻址存储器)在(0)位线上的内容相匹配,则ECAMMB IN(0)将为低。否则,如果不匹配,线ECAMMB IN(0)将为高,表示“不匹配”。在不匹配时,由于不存在匹配条件,EMATCH线将变低。然而,在过去(没有这里所公开的“虚拟”ECAM或RCAM单元和字线驱动电路107),如果只有一位或一个输入不匹配,尽管剩下的各位都匹配,也没有匹配条件,而只有一个NFET或NMOS晶体管将EMATCH LINE拉低。由于固有电容和其他因素,当只有一个或几个NFET器件121-127正运行以拉低EMATCHLINE时,将会出现相对长的时间延迟。另外,如果“不匹配”位距离字线驱动电路107最远,则延迟将更大,会出现明显的定时问题,例如,EMATCH LINE可能未在一个给定时间内放电,EMATCH LINE将返回一个高状态,指示在高速缓存中有一个匹配,而实际上并没有匹配。在本设计中,将“虚拟”CAM单元(图13中所示)放在EMATCH LINE距离字线驱动器最远的一端。在EMATCH LINE被采样之前,虚拟单元的输出EA SEL是一个请求输入。这种结构在很大程度上去除了在现有技术设备中所固有的许多定时问题。
在运行中,L1高速缓存系统从系统CPU接收一个指令的12位“有效地址”,从例如一个“先行”缓冲器接收32位“实际地址”。有效地址代表实际地址的后12位。高速缓存系统还从系统CPU接收几个控制信号,包括一个“再充”信号、来自一个内建自测试程序的测试信号和一个FUSE COM冗余信号。高速缓存系统还从系统时钟实现三个时钟信号C1、C2和C2 EARLY。除了存储器输出,L1高速缓存系统提供输出信号ECAM HITB和RCAM HITB,分别表示在有效地址内容可寻址存储器(ECAM)和实际地址内容可寻址存储器(RCAM)中的“命中”。
信号WLRSTB(字线复位条形)对L1高速缓存电路的字线驱动部分进行预充电。字线驱动电路如图2至图9所示。WLRSTB的发生电路如图10所示。如图10和图11所示,信号WLRSTB由C2 EARLY CLK和DUM WLRSTB产生。如果RST和C2 EARLY都为“低”(处于低逻辑电平),则WLRSTB将为低,字线驱动器处于预充电模式。否则,WLRSTB将为高,表示字线驱动器电路处于评价模式。通过组合WTRESET(写复位)、RDRESET(读复位)和RESETB(复位“条形”或RESET反相)来产生DUM WLRSTB(“虚拟”字线复位“条形”信号),如图12所示。一旦高速缓存(图1)被复位,即,如果高速缓存中的所有线都被强制无效,则RESETB被强制为低。这将把WLRSTB拉到一个低电位,接着所有字线驱动电路都变成预充电模式(高速缓存字线或WL被强制为低)。并且,当高速缓存中的VBIT节点被设置为零时,高速缓存线无效。
如果高速缓存未复位,则高速缓存正被访问。一旦高速缓存被访问,高速缓存或者处于读模式或者处于写模式操作。在读模式操作中,当C1 CLK变“高”(高逻辑电平)时,信号RDRESET将产生一个高脉冲,WLRSTB跟着变低。同样,在写操作中,当C1 CLK变“高”时,信号WTRSTB(写复位条形)将变高,WLRSTB跟着变低。当RDRESET和WTRESET变低时,经过一预定时间延迟之后,WLRSTB也变低。
在该高速缓存电路实施例中,当C2 CLK变高、C1 CLK为低时,则高速缓存处于评价模式。在这种情况下,如果C2 CLK为高、C1 CLK为低,并且如果有一个有效高速缓存命中(ECAM为高)或者高速缓存处于下文所述的再充周期或测试模式周期,WLRSTB将为高,字线WL(将变高)将被选定。当C2 CLK(该信号为C1 CLK的反相)变低、C1 CLK变高时,则高速缓存将数据从高速缓存阵列中传送出去或者将数据写入高速缓存阵列。在这种情况下,RDRESET或WTRESET将变高。C2 EARLY CLK与C2 CLK具有相同的相位,但比C2 CLK触发得稍有些超前。
在图2到图9中所示的字线驱动电路中,一旦信号WLRSTB变低,则为复位条件,节点M1和M0将变高。节点E5也被强制为高,EMATCHWL变低。这将会将VBIT RESET拉低,经过一定延迟后,节点M0将被预充电为高,字线将变低。为了防止在VBIT RESET线上产生任何错误脉冲,在字线(WL)被拉低之前将VBIT RESET拉低。一旦信号WLRSTB变高,字线WL115就可以评价了。
在显示的高速缓存电路例子中,有两组CAM(内容可寻址存储器)单元。一组用于有效内容地址存储器(ECAM),第二组用于“实际”内容地址存储器(RCAM)。字线驱动电路107位于阵列的中间。在两组CAM单元中都加上两组“虚拟”CAM单元线103和111,这些单元线的位置距离字线驱动器最远,如图1所示。虚拟CAM单元用于定时的目的。虚拟ECAM单元电路如图13所示,在实际中位于图1的底部中间。一旦执行一个ECAM或RCAM取周期,COMP将保持为高,COMPB被拉低。这将使节点N6和节点N1变高,EA SEL也变高。COMP和COMPB在预充电模式中都保持为高,在REFILL周期或写模式中也保持为高。这使EA SEL保持为高,从而使EMATCH线为高。
在图15中,显示了字线驱动电路107内的几个信号的相对定时关系。如图所示,为基本电路定时提供了时钟信号C1和C2,在该实施例中还提供了另一个时钟定时信号C2 EARLY。当C2变高、C1变低时,在转换时间之前使信号C2 EARLY变高几百皮可(微微)秒。在C2 EARLY变高和C2变高的时间之间的时间是预充电周期进行的时间。在C2变高的同时,字线驱动电路107处于一种“评价”状态,在该评价状态期间进行信号评价。当C2变低直到C2 EARLY变高,出现一种数据传送状态。在数据传送期间,读取数据,然后送出高速缓存,或者将数据写入高速缓存阵列。当ECAM中例如出现“命中”时(即,发现一个请求的有效地址位于“有效地址内容可寻址存储器内),ECAM匹配线EMATCH将保持为高(假定一个现有的高状态),而“未命中”将使匹配线变低。一旦EMATCH为高、EA SEL变低,则ECAM HITB信号变低,字线信号WL将变高。
如图16中的流程图所示,一个例示性操作开始130,字线驱动电路107被预充电132到一个初始状态。当信号C2变高时134,驱动器确定136在输入到驱动器的有效地址和驻留在ECAM中的有效地址之间是否匹配。如果没有匹配,则电路预充电138并返回139到方框134,等待C2到高状态的下一个转换。如果有ECAM匹配136(EMATCH)并且EA SEL为低140,则ECAM HITB变低142,强制字线WL为高144。当C2接着变低152时,EMATCH被预充电到VDD156,完成与所请求的有效地址有关的读操作或写操作158。接着,当字线复位“条形”信号WLRSTB变低160时,字线驱动器被预充电162,系统返回到方框134,等待C2下一次变为高脉冲。上面描述了一种在字线驱动电路示例中执行的正常取操作。
如果字线驱动器107处于一种“预取”模式,除了用RCAM109代替ECAM105以及要匹配的地址是从一个“先行”缓冲器或表输出的32位实际地址之外,驱动器执行相似的操作。在预取模式中,在C2变高134之后,判定在请求的“实际”地址和实际地址内容可寻址存储器RCAM的内容之间是否匹配。如果是,RMATCH将变高180。如果一个实际地址选择信号RA SEL也为高182,则RCAM HITB信号将被强制为低184。此后,当C2变低186并且指令高速缓存块无效(ICBI)信号为高188时,则VBIT RESET变高190,RMATCH被预充电192,并且系统返回方框134,等待C2下一次脉冲变高。以与产生用于有效地址输入(12位)的ECAM HITB信号相似的方式产生用于到驱动器的实际地址输入(32位)的RCAM HITB信号,除了RCAM HITB信号是预取操作的一部分并指示在用于实际地址输入的RCAM中是否有匹配、而ECAMHITB信号是用于从CPU接收的有效地址的正常取操作的一部分。在预取周期中,当实际地址和RCAM内容之间有一个命中或匹配时,RCAMHITB为低,但不从高速缓存中读取数据(WL未选定)。这与正常取周期是不同的,在正常取周期中,读出驻留在有效地址的数据158。
一旦检测到C2变高134,除了进入取操作或预取操作,字线驱动器107还可以实现一个测试功能或再充或写功能。在测试功能或测试模式中,由一个内建自测试信号(ABIST)对高速缓存写入或读出。如果确定字线驱动器处于测试模式172,并且FUSE COM信号为高174,则选定字线176,并执行一个读或写测试操作178。此后,如果WLRSTB为低160,则字线驱动器被预充电162,系统返回到方框134,等待C2下一次变高的转换。如果ECAM或RCAM被测试为好的,则信号FUSE COM(图7)将为高。如果FUSE COM为低,一特定行被测试为坏的,将不再选定该行。由一个额外的内建冗余行代替该行。当所有地址(在该例子中为TST D1,TST D2和TST D3)以及时钟C2也为高(图7)时,并且如果FUSE COM也为高,则M1节点519(图5)被拉低。M2节点将变高,M0节点(图5)被拉低。选定全局字线WL。一旦该字线变高,将完成正在运行的“测试读”或“测试写”。
在再充周期164中,如果REFILL为高,将数据写进阵列。最近最少使用的电路(PLRU信号)选定该线。一旦选定该线,信号PLRU被强制为高(图6)。如果C2时钟为高,并且由于高速缓存处于再充模式,信号REFILL被强制为高。在这种情况下,节点M1被拉低,M2被拉高。节点M0被拉低(图5),这将选定全局字线WL176(图16),并且将数据写进RAM阵列170。如果PLRU或REFILL为低,则字线未选定(WL保持为低)。此后,WLRSTB变低160,字线WL被预充电162,系统返回方框134,等待C2下一次变高的转换。
如果REFILL(见图3)为低(读模式),并且EA SEL变低,则节点311将变低。这将强制预充电晶体管323关闭,电路根据EMATCH线的状态响应。在例示的有效地址命中/未命中高速缓存操作中,将EMATCH线、节点M0和M1和RMATCH线预充电到高逻辑电平。周期以C2时钟信号变高开始。如果有效地址与ECAM单元的内容是相同的,则EMATCH线保持为高。当EA SEL变高(图3),则门321的输出被强制为高。这将会将节点M0拉低,节点GWL(图6)被强制为高。全局字线GWL将变高,LINE HITB(图6)也被拉低。如果LINE HITB(“线命中”条形)被拉低,则在高速缓存中有一个线“命中”。如果有效地址与CAM单元的内容不同,则EMATCH线被拉低,门321的输出被强制为低。节点M0为高,保持在预充电模式,全局字线WL还将保持为低。信号LINE HITB将保持在预充电模式(高)。
这里已经结合一个最佳实施例描述了本发明的方法和装置。虽然已经显示并详细说明了本发明的一个实施例以及某些变化,本领域普通技术人员可以容易地构造包含本发明的说明的许多其他改变的实施例。因此,本发明并不限于这里所陈述的特定形式,相反,可以覆盖能够包括在本发明的精神和范围内的替换、修改和等效替换。
权利要求
1.一种高速缓存器电路包括一个数字信号线,被安排为处于一个代表多个逻辑状态中的一个的电位上;多个连接在所述数字信号线和地之间的“n”开关设备;一个评价电路,用于对所述数字信号线的所述电位进行评价;所述开关设备被安排为,将第一所述开关设备放置在距离所述评价电路相对近的地方,将所述“第n”开关设备放置在任一个所述开关设备中距离所述评价电路最远的地方,其中,任一个所述开关设备中的一个开关在顺沿所述第一开关设备一个相对短的延迟以及在顺沿所述“第n”个开关设备一个相对长时间延迟之后有效地改变所述数字信号线的所述逻辑状态;以及可选择操作的电路装置,用于不早于所述“第n”开关设备所需的一个时间延迟向所述评价电路提供一个评价完成控制信号,以实现所述数字信号线中的状态改变。
2.如权利要求1所述的高速缓存器电路,其特征在于,所述电路装置包括一个与所述“第n”开关设备邻近相连的虚拟内容可寻址存储器(CAM)单元。
3.一种当一个多位地址输入信号相对于在一个高速缓存器内可用的多个地址的比较评价已经完成时用于定时的方法,所述高速缓存器包括一个用于存储代表一个匹配条件的逻辑状态的匹配线,所述比较评价由一系列开关设备来完成,所述开关设备位于相对于所述高速缓存器中的一个评价电路具有变化的距离的位置上,其特征在于,所述方法包括确定所述开关设备中的哪一个是距离所述评价电路最远的最远开关设备;以及当足够时间已经过去时,提供一个评价完成信号,以允许一个来自所述最远开关设备的开关信号被传送到所述评价电路。
全文摘要
这里提供了用于实现一个有效地去除出现在动态、高带宽高速缓存控制系统中的许多定时问题的高速缓存控制系统的方法和装置。在一个实施例中,提供了一个虚拟内容可寻址存储器(CAM)单元,将其关键地放置在距离高速缓存字线驱动电路最远的芯片布局上。虚拟输出信号是一个高速缓存命中评价电路所需的输入,以便去除过早的高速缓存命中输出。虚拟单元被设计为当任何地址位线产生一个不匹配指示时对一个高速缓存匹配线进行快速放电、并指示一种未命中状态,特别适用于扩展带宽的动态系统,在这种系统中,地址线更加扩展,系统与预定时钟周期同步。高速缓存系统还运行于一种预取模式中,以便为下一个联机请求地址确定命中。系统还包括测试模式、再充、ICACHE块无效和高速缓存复位信号产生的实现。
文档编号G11C11/413GK1516024SQ20031011792
公开日2004年7月28日 申请日期1999年1月15日 优先权日1998年2月17日
发明者M·库马, H·V·帕哈, M 库马, 帕哈 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1