全集成高速缓冲存储器结构的制作方法

文档序号:6743436阅读:133来源:国知局
专利名称:全集成高速缓冲存储器结构的制作方法
技术领域
本发明一般涉及存储器的体系结构领域,更具体地涉及低功率高速缓冲存储器设计。
在微处理器设计中,阻碍其更高性能的典型的关键因素是对主存储器的数据访问循环时间。现有技术的动态随机存取存储器(DRAM),在页模式或其它流水线存储模式操作中数据率是40毫微秒量级时,通常存取时间为60-80毫微秒量级。即使在该速度下,存取数据比CPU处理指令要耗费长的多的时间。
为解决这一问题,高速缓冲存储器已被用于保存处理器操作的数据,典型地,数据是从DRAM主存储器装载到缓存中。典型地,缓存由静态RAM存储单元陈列组成(SRAM可在比DRAM高得多的速度下存取,现有技术的SRAM可产生5 ns级的数据率)。现已有多种确定缓存如何初始装载数据的转移推算(branch prediction)或初始缓存装载算法。
之后,通过确定缓存器是否保存了处理器的特定操作所需的数据而存取缓存器。这是通过将指明主存储器中从何处获得数据的地址数据(称为“标记”)与相应于保存在缓存中的数据的标记进行比较而完成。如果输入的标记与缓存中的数据保存标记一致,则产生缓存“命中”信号以指明所需数据保存在缓存中。应注意,标记协议可设定为“直接映射”(即每个标记相应于保存在缓存中的一行数据。或组相关”(即一组的一个“变址”或地址相应于保存在缓存中给定数量行的数据,每行有一个相关的标记)。因此,例如,在“4-路组相关”存缓器中,一个变址相应于存缓中四行数据,每行有自己的标记。
典型地,缓存还使用数据指明保存在缓存中数据的有效性。一般来说,所有缓存都遵循某种缓存一致性(coherency)协议,保证保存在缓存中的数据与保存在主存储器中的数据相同。因此,例如,在保存在缓存中的数据更新后,必须将其写入主存储器,在返回“拷贝”(“copyback”)缓存一致性协议中,一旦数据被写入缓存,则它以任何多种已知算法之一在总线上没有其它通信时的稍后时间从缓存写入主存储器。在“写入”(“write through”)缓存一致性协议中,当新数据写入缓存时,则在下循环被写入主存储器,而暂停其它冲突的总线操作,该优先写回操作保证了对于给定相同地址,主存储器与缓存保存相同数据。在“返回拷贝”模式中,如果缓存入口在被访问地址包含与主存储器该地址中的数据不同的数据,则必须根据哪个保存了有效数据更新缓存或主存储器。实际上,“总线探测(snooping)”和其它技术可被用于确定主存储器中的数据源。如果数据是从外部数据源写入主存储器,可能是缓存中的数据无效。不以来自主存储器的正确数据更新缓存入口,而是改变一个数据位(一般称作“数据有效”或“有效”位)(例如从1变为0状态)以指示,在该地址缓存未保存有效数据,并在某一方便时刻,有效数据将从主存储器写入缓存。
有效性位的状态被用于确定是否必须从主存储器取回数据,即,即使标记相同,如果缓存中数据无效,则必须从主存储器中取回数据。有效性位的状态还被用于确定应在何处保存来自主存储器的数据。当数据被从主存储器存入缓存时,将检查被访问组的有效性位的状态,将来自主存储器的数据写入存储了无效数据的那组中。用于确定在何处保存取回的数据的另一种方法是称为“最近最少使用”协议,其中存缓数据被替代是根据缓存中哪个数据在最长时间内未被使用(并因此是将来缓存访问中最不可能被使用的)而确定。但是,正如美国专利4,811,209“每个数据有多个有效性位而在不同内容中指示有效性的缓存存储器”(89年3月授与Rubinstein并转让给惠普公司)中指出的,传统的LRU算法在硬件上很难实现并经受较长执行周期,因此更常用地是简单地设定优先权系统,该系统中,如果给定组中数据的所有行(或“缓存行”)是有效的,则总是替换“第一”缓存行,之后是第二行,等等,典型地,缓存由保存变址数据的第一芯片,以及保存相应标记数据、有效位和LRU信息的分立寄存器(例如在存储器管理单元或总线主控上)组成。即,即使标记和变址数据在相同地址是可访问的,它们一般位于不同阵列中。见例如美国专利5,014,240“半导体存储器件”(91年5月,授与Suzuki并转让给富士通公司),特别是图2-4。但是,已有了这样的缓存设计,其中所有缓存、标记和有效性信息都保存在相同的物理可寻址区。这种设计的优点在于它减小了用于缓存存储的硅片总面积,减少了支持数据存储在物理上不同的阵列所需的地址缓冲区、地址解码器等支持电路的不必要的重复,并从总线控制器或存储器管理器等其它微处量器元件中消除了设计费用。见例如以上提到的专利5,014,240的

图1,美国专利4,714,990“数据存储装置”(87年12月,授与Desyllas等并转让给国际计算机公司)和美国专利4,914,582“缓存标记旁观(lookaside)”(90年4月与Bryg等和转让给惠普公司)。
但是,上述专利中提出的用于实现数据和相关“访问”信息(即用于确定是否变址数据被访问的信息。例如标记地址,有效性数据,LRU数据等)两者都保存在相同物理可寻址区的缓存的设计并未能使缓存最佳化而提高性能。典型地,当变址指明一缓存行被访问,则该行被读出(即该行驱动器电路被允许访问存储器单元,设定读出放大器以检测数据等)。之后,如果访问信息指明在给周期数据不能被访问,则数据输入/输出驱动器被就禁止。因此,例如,如果输入标记地址与一个被访问缓存变址相关的标记地址相同,则产生一个缓存“遗漏”并结束缓存访问。这种方法的问题是准备被访问数据中消耗了过多功率。在工作站和其它高端计算机应用中,过多的功率开销还可忍受。但在例如低功率个人计算机应用,膝上机,个人数字辅助器和其它的低功率应用中,该功率开销会成为障碍。
先有技术集成缓存设计中的另一缺点是它们设有提供真正的最近最少使用模式以便用来自主存储器的数据更新缓存。理想地,LRU硬件实现应与缓存设计结合在一起以使缓存的命中(hit)速率最佳。
典型的集成缓存作为分立的功能单元(或宏)排布在微处理器芯片上。由于微处理器上的CPU和其它功能块从外部信号源接收数据,在芯片被封装时它们必须支持与外管脚连接的互连焊盘。随着缓存尺寸的增加,它占了微处理器更多的空间。因此,它们限制了从CPU等至互连焊盘的金属化图形,因为缓存数据可被噪音和/或容性耦合所干扰,该干扰来自须重叠的金属化图形从外部信号源向CPU等的高频信号传输。
因此,需要在该领域中开发这样一种集成缓存设计,它可在没有附加功率开销的情况下实现在相同物理可寻址阵列中保存数据和相关访问信息的优点。
因此本发明的一个目的是提供一种集成缓存,它以降低功率损耗的方式保存数据和相关访问信息两者。
本发明的另一目的是提供一种集成缓存结构,它提供真正的最近最少使用缓存更新过程。
本发明的再一目的是提供一种LRU缓存更新过程的简单实现,它不增加缓存的循环时间。
本发明进一步的目的是优化本发明集成缓存上金属线的布局以支持在微处理器其它功能块上的重叠互连金属化。
本发明的另一目的是有利于本发明的缓存的不同尺寸方面的调整以适应芯片上的可使用面积。例如,缓存可减小到3路组相关缓存或扩大为5路组相关缓存。可增加几条位线以提供奇偶校验,应注意已初始化的LRU阵列有相同的奇偶性,因此可不增设附加位线而增加奇偶校验。
本发明的上述和其它方面是通过在集成电路芯片上形成一保存从主存储装置取回的数据的缓存器而实现的,该缓存器包括多个变址线,每个所述变址线在第一存储区有存储主存储器数据的第一存储单元组,在第二存储区有存储相应于主存储器数据的访问信息的第二存储单元组,所述第一和第二存储区有大致相同的周期时间,且所述第二存储区在所述第一存储区之前被访问;第一控制器,它对所述多个变址线中选定的一个接收所述访问信息,以对所述多个变址线的给定的一个检测存储在所述第一存储阵列中的所述主存储器数据是否被访问;和阵列控制器,用于在一个访问周期结束前有选择地释放至少一部分所述多个变址线的所述被选择的一个的所述第一存储阵列。
本发明的另一方面,该缓存阵列包括多个存储单元;位于所述多个存储单元之上并与之耦合的多个电源线;位于所述多个存储单元之上的多个主字线;位于所述多个存储单元之上的多个局部字线,所述多个电源线、所述多个主字线和所述多个局部字线基本平行地排列,所述多个主字线的每一个耦合至一组所述多个局部字线,一组所述多个存储单元耦合至所述多个局部字线的所述组之一,每个所述多个主字线和至少一个局部字线的所述组位于耦合至一个局部字线的所述组的所述多个存储单元的所述组之上,所述主字线的各部分与其它部分相隔开,并耦合至所述电源线之一。
本发明的另一方面,本发明包括一中央处理单元,一保存数据的主存储器,和带有多个变址线的缓存单元,每个所述变址线存储来自所述主存储器的被选择区的多个数据字,从所述主存储器向所述缓存写入更新的数据字的方法包括以下步骤对于一给定变址线,确定任一个所述多个数据字是否是无效的,和如果是,则将所述更新数据字写入存储有所述无效数据字的所述给定变址线的一部分;
对所述给定变址线更新第一访问数据,以反映原来存储了所述无效数据字的所述给定变址线现存储了有效数据;
如果所有所述多个数据字对于所述给定变址线都有效,则确定所述多个数据字的哪一个是所述中央处理单元最近最少被访问的,并将所述更新数据字写入存储了所述最近最少被访问数据字的那部分所述给定变址线;
对所述给定变址线更新第二访问数据以反映以前存储所述最近最少被访问数据字的所述给定变址线最近已被访问,以指示所述给定变址线中所述多个数据字的另一个是所述中央处理单元最近最少访问的。
本发明的上述和其它结构和特征将结合附图详细描述。附图包括说明本发明的不同方面的多幅图,其中图1是根据本发明第一实施例的微处理器芯片的方框图;
图2是根据本发明第二实施例的第二个微处理器芯片的方框图;
图3是本发明的集成缓存的逻辑方框图,说明了访问地址如何访问存储在缓存中的标记、有效性和变址数据;
图4是本发明的存储器阵列的主/局部字线的示意图;
图5A-5B分别是图4的数据阵列和标记阵列的部分简化顶视图;
图6是示于图1的微处理器的部分顶视图;
图7是示于图4的单元A的电路图;
图8是示于图4的单元C的电路图;
图9是图3的LWL控制器200的电路图;
图10是图3数据阵列更详细的方框图;
图11A和11B分别是图4的局部字线驱动器和读出放大器的电路图;
图12是示于图4的阵列的主和局部字线相对访问时序的简化时序图;
图13A-13I是示出顺序访问的更新LRUA阵列中数据的一系列表格;
图14是示于图3的LRU控制器150的电路方框图;和图15是示于图14的多路(mux)控制信号的产生的电路图。
参考图1,本发明的第一个实施例是微处理器模件10,它在一块集成电路芯片10上带有一CPU 20,一存储器管理单元30,和缓存存储装置40。与X86 系列微处理器的传统应用相同,CPU20包括一执行单元,一取单元等,为简化说明未详细示出。总线单元24与外围设备,例如主存储器52、协处理器56、键盘或其它外设54通过数据总线50通信。一般来说,微处理器通过从主存储器52经过总线50和总线单元24取指令,或通过从缓存经过总线单元24取指令而操作。之后,微处理器执行该指令,这是经过执行单元22进行处理,在存储器管理单元30的控制下从缓存40访问所需数据,并在缓存40或主存储器52中(最好通过某种缓存一致性协议在两者中,这将在以下详细讨论)保存指令执行结果。
另一实施例示于图2。图2中,与图1中有相同结构和操作的电路方框用相同标号标示。示于图1和2的两实施例最主要的区别在于图2的实施例被设计为将芯片面积减为最小。具体地,应注意存储器管理单元30未集成到微处理器内,而是经过数据总线50和总线主控器24与微处理器通信。此外,为减小缓存一致性操作中,从缓存写回主存储器的延迟,应注意,缓存40从它自己的专用存储总线58发送和接收数据至主存储器52。
在这两个实施例中,缓存40与其它电路一起集成在微处理器10上,通过使这些电路模块位于同一芯片上,减小了这些结构因在不同芯片上采用不同处理工艺等引起的处理灵敏性和其它性能的降低。
图1和2的缓存40的总的方框图示于图3。缓存40包括存储阵列41。该阵列包括一存储4条缓存线A-D的数据部分(DATA部分);一存储相应于4条缓存线的标记A-D的标记部分(TAG部分);一LRUA部分,它将最近最少使用信息存储在RU1、MRU2、MRU3和LRU中;一和存储每条缓存线A-D的数据有效性信息的有效性部分(VALID部分)。本发明的一个特征是,一个单组的所有这些数据都存储在一单一的物理可寻址字线上。因此,如以下更详细描述的,单条字线耦合至每个上述阵列的存储单元,这样通过访问单条物理可寻址字线,可访问上述所有数据。
一般来说,缓存40响应其从总线单元24接收的通过取或装载/存储单元产生的访问地址(ACCESS ADDRESS)信号而被访问,总线单元24按顺序从执行单元接收该地址,应注意本发明还可用于并行处理或协处理模式,其中这些地址可从例如作为外设54与缓存通信的协处理器56或同等处理器的芯片外信号源产生。在这些模式中,缓存40可被这些其它处理器通过或者备用状态操作(即其它处理器只能在缓存40未服务于来自CPU 20的访问请求时才能访问缓存40),或者多个已知优先权中断协议的一个(即总线单元24在来自CPU 20的访问请求的优先级与来自其它设备的之间进行判断)而被访问。
不论地址来自何处,它将以相同的普通32一位格式提供。注意,32一位地址只是为了举例而给出,也可使用其它地址位长。二十个最高位A31-A12表示标记地址(即,来自主存的被访问数据的地址),下面八位A11-A4表示变址(即,存储该数据的组的地址),和最低位A3-A0表示被访问数据字的哪一字节将被访问,更具体地,A3和A2表示被访问的128-位数据字中哪32-位子字将被访问,A1和A0表示被访问的32-位子字中哪8-位将被访问。
当微处理器运行于缓存标记命中/未中(TAG HIT/MISS)模式时,被缓存接收的20-位虚标记与存储在被指示的变址中的标记相比较。即,缓存执行256中1(1-in-256)解码(使用传统CMOS 地址缓冲器和解码器)以确定256字组(或组)中的哪一个被变址访问。通过访问一给定组,读出相关标记,而读出的标记与接收的标记相比较。当微处理器运行在虚模式下时,接收的标记可来自翻译旁观缓冲区(TLB60)。由于虚地址必须再映射成实际物理地址,再映射可从CPU或通过使用TLB直接进行,MUXI将在微处理器处于虚模式时输出TLB的输入,否则它将简单地传递标记访问地址。
比较器CA-CD比较由MUXI传递的标记和在被访问组保存的标记A-D,标记A-D来自缓存阵列的标记部分。注意,在这种情况下,缓存是4-路组相关的,意味着对于给定组保存4个标记。本发明可应用于任何n-路组相关结构。注意,比较器CA-CD还接收来自相应于每条缓存线A-D的阵列的有效区的有效位。如果给定有效位为低,则相关缓存线保存着无效数据。有效位用作比较器的取代输入,即如果有效位为低则比较将被取代,且将指示缓存丢失。比较器CA-CD的各个输出标示为HITA,HITB,HITC和HITD。这些线通常被保持为高。如果这些比较器CA-CD之一确定了输入标记与来自被访问组的标记相一致,其相关输出HITA-D将保持高,剩下的输出线将被拉低。
这四个输出HITA-D由异或门140进行比较,以确定是否已产生任何缓存被命中的指示,如果产生了缓存命中,则输出将为高。该信号与有效位一起被LRU控制器150接收。如以下将详述的那样,在缓存命中的情况下,LRU控制器150将更新保存在LRUA阵列中的最近最少使用的信息,而在缓存未中的情况下,下一个缓存更新循环将保存从主存储器取回的数据至一选择的缓存线,作为有效位状态的函数和将信息存储在LRUA阵列。
输出HITA-D还被LWL控制器200接收,LWL控制器200控制对数据阵列中缓存线A-D的访问,LWL控制器200还接收来自读/写控制器160的SA设定(SA SET)和SA恢复(SA RESTORE)输入,以及来自W/B解码器170的字/字节选择信号BO-B3和WO-W3。
正如将在以下详述的,在一个缓存访问循环中,被访问组中所需字的所有储存单元如上所述被初始访问以获得标记、有效性和LRU信息,作为字/字节选择信息的一个函数,之后,被访问组的不需要的部分在全访问循环完成前被释放,作为缓存命中信息的一个函数,显著节省了功耗。例如,如果所需的是对缓存线A的子字3的访问,所有子字0、1和2将一直不被激活而缓存线B-D的其它子字3将在访问循环完成前被禁止。此外,如果只需要子字3的字节1,则只有每个子字3的字节0和1被访问,而一旦HITA信息变为可用则不需要的部分被禁止(见图9)。
图4是本发明集成缓存40的阵列的部分电路图。该阵列包括多个主字线MWL0至MWL255(为简化说明,只示出了第一主字线MWL0和最后一个主字线MWL255,其余的在图的中部用点表示。实践上,缓存包括至少四个冗余主字线,和用于同步目的的模拟字线)。被接收变址A-A将由主字线解码器MWL0解码器至MWL255解码器解码,以确定这256条主字线的哪一个被允许,这些解码器是传统的CMOS或非解码器(也可使用与非解码器),它们从芯片上的地址缓冲区(为简化未示出)接收地址。被允许的那个解码器将激活它相应的主字线驱动器MWL0驱动器-MWL255驱动器以升高相应主字线MWL0-MWL255的电平从而访问保存在被选组中的信息。每条字线控制被选组的所有信息-数据、标记、有效性位和LRU。主字线驱动器是传统的CMOS推拉驱动器,其大小能驱动这些主字线引起的大的容性负载。如图4所示,每条主字线耦合至一组局部字线。
实际上,为减小局部字线的阻一容延迟并提高性能,局部字线被金属捆扎。图5A是至图4中所示的耦合局部字线LWLOA的单元A的一部分和相邻的延LWLOA的单元AB和单元AC(为简化未在图4中示出)的顶视图。每个单元由多个扩散区组成,扩散区由阴影方框表示,如图7和8所示,本发明所使用的存储单元是标准6装置(Six-device)SRAM结构,它带有访问存储单元的位转换装置BS3、BS4,存储单元包括交叉耦合的装置对T1、T2,用以经过位线BLC、BLD读出或写入存储单元。单一的栅极导体LWL POLY横过所有存储单元以形成存储单元访问装置(即将存储单元耦合至位线的晶体管,见例如图8的晶体管BS3,BS4)的栅极导体。显然这个多晶硅导体实际上有更复杂的结构,以形成其它装置的栅极导体。为简化说明,多晶硅的全态结构并未示出,本说明的关键部件是横过图5A的所有存储单元的LWL POLY线。多晶硅只是为了说明而给出,实际上其它基于多晶硅的栅极导体例如高熔点金属硅化物、多晶硅和硅化物的多层结构也可使用。位线BLC,BLD(还有单元AB的BLCA、BLDA和单元AC的BLCB、BLDB)由第一层金属(例如铝或铝合金)形成。
金属的下一层M2(一般与M1的成分相同)覆盖芯片以形成基本平行的线,从图5A的底部至顶部,这些线包括提供高电压(例如5伏)至存储单元的VDD M2;提供地或低电压的GND M2;主字线MWL M2;和为LWL POLY形成金属捆扎的LWL M2。应注意,接触区M2/M1/POLY触点由打叉方框表示。这些接触区提供沿局部字线的每个其它存储单元处LWL M2与LWL POLY之间的触点。这种结构的优点是局部字线降低了电阻特性而不增加存储单元的间距,使得选取的MWL0-MWL255更快地被选通。
参考图4,本发明的一个特征是每条主字线直接耦合至并驱动存储访问信息(即,标记,有效性,和LRU信息)的存储单元,并通过局部字线LWLOA-LWLOD间接驱动存储变址数据的存储单元。使用“主”字线驱动分段字线部分的一般概念是已知的,见美国专利4,596,000“半导体存储器”,86年6月授与Wiedmann并转让给本发明的受让人,“主”字线一般不直接耦合至一些存储单元。而是如Wiedmann的专利的图2所示,主字线一般被用作使能输入以驱动局部字线。这是因为主/局部字线结构一般用于减小由于容性负载引起的字线性能延迟,因此,设计者一般通过直接耦合存储单元至主字线而避免主字线负载下降。本发明中,除上述那样连接局部字线至M2外,主字线布置在M2中,并穿过M2而与LWL M2的分立部分相接触。如图5B所示,应注意,对于直接耦合至MWL的装置,MWL M2从它传统位置穿过而与LWL M2的一部分相接触,该部分已从图5A所示的LWL M2线切断。还应注意,应当已是MWL的M2部分已耦合至GND M2,以形成穿过该阵列的GND M2′导体(注意,GND M2′导体与下面的集成电路没有任何触点)。因此,本发明,LWL和MWL两者都是金属导体,因而少数存储单元可直接耦合至主字线而不损害性能。
本结构的一个特征是基本与上面的噪声源屏蔽。即,如图5A和5B所示,存储单元基本被上层M2所覆盖。组合起来,这些导体产生屏蔽作用,使得存储单元中保存的逻辑状态不受从上层导体耦合的噪声或电容的影响。因此,如图6所示,另一金属层M3可用于提供从微处理器的各部分(例如CPU 20)经过位于芯片边缘的脚管P1-P3至外部信号源的互连。以前的微处理器芯片中,管脚结点围绕缓存阵列而排列以防止数据丢失,或带有阵列位线的人为扭曲。本发明的结构显著增加了芯片抗噪声能力,因为所有M2导体接收一些激活电位(即,没有一个是浮动的)。这就是为什么MWL M2的“未使用的”部分与相邻的地导体相连接。
因此,示于图3的TAG、LRU和VALID阵列中的存储单元直接耦合至主字线MWL0...MWL255,并物理上靠近字线驱动器MWL0驱动器...MWL255驱动器而设置。图4中,存储单元由标有M的方框表示。存储单元具有与图5、7和8的相同的总体结构,注意,图4中,为清楚起见,已省去了位线,并为方便说明,将存储单元的数目减为最小(例如,实际上TAGA,TAGB阵列每一个有至少40个存储单元,或每一个TAG有20个)。与传统SRAM阵列设计相同,各个阵列中沿字线上相同位置的所有存储单元应耦合至相同的一组位线。因此,例如,单元B(TAGA阵列中沿MWL0的第一个存储单元)和单元D(TAGA阵列中延MWL255的第一个存储单元)耦合至相同的BLA、BLB字线,如图7所示。
本发明中,为减小有关访问整个阵列引入的功耗,需要在变址数据被访问前访问标记等数据。通过将保存访问信息的阵列置于物理上靠近字线驱动器,访问信息将比变址数据更先提供,这样未保存被访问的变址数据的阵列部分可不被选择,在示于图4的实施例中,TAG、LRU和V阵列在字线驱动器的任一侧分别分割为TAGA,TAGB,LRUAB,和VALIDA,VALIDB,用以均衡对各个阵列中的信息的访问时间。但是,在本发明的另一实施例中,这些阵列作为一个整体,并放于字线驱动器的一边或另一边。因此,例如,LRUAA和LRUAB阵列组合成为位于字线驱动器左侧的单一LRUA阵列,而TAGA和TAGB阵列则组合成为位于字线驱动器右侧的单一TAG阵列。在一些应用中可考虑后一种结构。
缓存线数据被存储在各分立的局部字线组中。例如,对于MWL0,每四个局部字线LWLOA-LWLOD存储一个缓存线,TAG阵列中每个TAG一条。应注意,虽然示出了四条局部字线,实际上每条又分为更小的局部字线以提高性能。例如,对于所示每条局部字线,实际上使用了8条局部字线,每个耦合至16(如果包含奇偶校检位则为18)个存储单元。这样示于图4的局部字线可以是单一局部字线或(最好是)一组局部字线,它接收相同的控制/使能信号。如果缓存的构造要支持不同组相关性(例如,8-路组相关缓存),应将有8条缓存线,且每个主字线至少8组局部字线。
耦合至局部字线的存储单元M与示于图8的单元A的不同点在于,晶体管BS3、BS4的栅极不是耦合至局部字线LWLOA,而是耦合至一条主字线。因此,如图7所示,示于图3的单元的BS1、BS2的栅极耦合至MWL0。还应注意,示于图4的局部字线结构不应理解为耦合至该局部字线的存储单元也应耦合至相同位线作为访问信息;而是,例如,与示于图3和8的单元C相同,单元A(沿LWLOA的存储单元)应耦合至同一组位线BLC,BLD。
运行中,主字线MWL0...MWL255中的一条作为主字线解码器中变址的函数被选择和被驱动。由于一条主字线被选择以选择给定组,对每个缓存线A-D,TAG,LRU和WALID阵列中的信息被访问和被读出,如图11B所示,使用了带传统交叉耦合反相器对的CMOS读出放大器,它带有P-型位线隔离器IS01、IS02,它们接收SASET信号作为控制输入,而在读出时将位线与交叉耦合的读出放大器隔离。这一特性是调节LRU、TAG和Valid阵列的读-修改-写循环所需的。该读出放大器还有减小功耗的特性,其位线并不在整个循环被驱动,因而它们除了在写循环外从不被完全放电,如上结合图3所述,如果被访问的标志不与从处理器接收的标记一致,被访问组的缓存线的任一条都不存储所需信息并且通过从异或140接收未中信号而禁止读/写使能块160,从而中止对缓存线的访问。
本发明的一个特征是在缓存被命中的情况下,访问应继续,但只对需要提供所需数据的缓存线(或缓存线的一部分)访问。这一功能由LWL控制200完成。图9是示于图3的LWL控制200的更详细的电路图。实际上LWL控制200应包括32个图9所示的电路结构模块,每条缓存线A-D有8个,并带有如下所述的不同的输入。每个LWL控制200模块接收四字节使能信号BE0-BE3中的两个和字使能信号WE0-WE4中的一个的组合。具体地,每个模块在一个输入端接收或者BE0或者BE2,在另一输入端接收BE1或BE3。每个LWL控制块还接收HITA-D四个信号之一。在图9所示的特例中,LWL控制器接收BE0、BEI、HITA和WE0。这些输入经过与非门ND24、ND25,或非门NR31,NR30和与非门20,与非门ND21-ND23,反相器I1,和与非门ND30而被处理,结果,LWL控制器知道缓存线A上有一命中,而且128-位缓存线中第一个32-位字0的字节0和1将被访问。结果,LWL控制器将产生信号SSELA以驱动缓存线A的局部字线,并产生信号SASELA以设定读出放大器至第一个16位线(从面只访问WE0的一半)。WRTT0和WRTT1信号用于有选择地选通写至每个被选择的32-位字中的被选择的字节0和1。
如图10所示,这些信号用于激活阵列41的被选部分。如图10所示,应注意,缓存线数据位于主字线解码器/驱动器(位于阵列中央)的任一边。如前所述,实际上,缓存线被分为8条局部字线。在示于图10的实施例中,缓存阵列的排布为,每条缓存线的第一局部字线(即存储第一数据字0的字节0和1的字线)在第一子阵列S中,每条缓存线的第二局部字线(即存储第一数据字0的字节2和3的字线)位于第二子阵列T中,第二子阵列T位于主字线解码器的另一边,第三局部字线在阵列S附近的第三子阵列U中,等等。HITA-HITD信号被发送至每个子阵列S-Z的每个LWL控制器。如前所述,有32个LWL控制器200,每个提供SSEL和SASEL信号的离散组。为简化说明,示出了一组信号SASELA-D和SSELA-D。在访问循环的开始,对于所需字将所有段选择信号SSELA-SSELS置为高,并且对于所选主字线(即被选组),该字的所有局部字线将被选通。但是,一旦已比较了TAG(标记),并检测到命中,(例如,如上所述,HITA保持高而HITB-D降低),只有来自LWL控制器的SSELA信号将保持为高,其它信号SSELB-D将降低而SASETA将变为高,如图11A所示,局部字线驱动器接收SSELA-D作为使能输入,从而使只有缓存线A的局部字线在整个访问循环被使能,剩下的局局字线不被选择和被释放。如图11B所示,接收SASETA作为激活信号的读出放大器将在整个读出循环操作,剩下的读出放大器被禁止,禁止了相关位线。
总的操作示于图12,在循环的开始,被选组被允许(例如MWL0被允许,剩下的主字线保持去激活)。结果,在主字线存储单元上存储的访问数据(例如示于图4和7的单元B)被访问,驱动它们相关的位线(例如BLA,BLB)。该循环的稍后,LWL0-4被允许,所有适当的局部字线将开始导通,但是,如上所述,如果检测到-HITA,只有LWLOA将继续被允许以驱动相关位线BLC、BLD,而剩下的局部字线(与它们相关的读出放大器)被去激活。因此,本发明节省了一般为维持被选组的所有位线在整个循环被允许所消耗的不必要的功率。这主要由本发明的主/局布字线结构所完成,该结构利用这些存储单元直接连接至主字线而允许被读出的访问信息并在循环的更早期输出。
如上所述,本发明支持全集成LRU存储器至缓存写模式。如图3所示,LRU控制器150接收由异或门140产生的信号。如果该信号表示缓存命中,则LRU控制器150的检测输出(这将在以下详述,该LRU仍在缓存命访问中更新。存储的LRU数据)。对被指定标记的访问按如上所述而继续。如果该信号表示在写循环期间的缓存未中,则CPU必须到主存储器取存数据,并将以LRU控制150指定的缓存线上的给定变址把数据存入缓存。
首先,LRU控制150检查来自缓存阵列的VALID部分的数据有效位状态。如果这些位的任一个指出,给定缓存线A-D存储了无效数据,则LRU控制150将输出相应于给定部分的两位信号,而LWL控制200如上所述为该缓存线产生部分选择和读出放大器使能信号。在该访问循环,LWL控制200将更新被选缓存线A-D的数据有效位以指示被选部分现存储了有效数据。在下一个循环,在缓存未中的情况下,数据有效位再次被询问,而存储了无效变址数据的所选组中任何缓存线将再次被访问。
这一过程将继续直至被选组的所有部分都存储了有效数据。之后,如果对于该给定组产生另一个缓存未中,该循环的LRU部分被调用,如图3所示,缓存中的LRUA阵列被分为四个存储区MRU1,MRU2,MRU3和LRU。这些存储区的每一个存储了一相应于一条缓存线的两位信号。这两位是由图3的编码器ENC编码的HITA-D线的编码等效物,并只在命中发生时有效。MRU1存储区存储了一最近最常使用的缓存线A-D的两位信号,MRU2存储区存储了下一个最近最常使用的缓存线A-D的两位信号,MRU3存储区存储了一下一个最近最常使用的缓存线A-D的两位信号;和LRU存储阵列存储了一最近很少使用的缓存线A-D的两位信号,因此,在LRU模式下,由LRU存储区指示的部分A-D将被访问。LRU控制150简单地输出由LRU存储区存储的两位信号,将它解码至4个命中信号并发送至LWL控制200,且那部分的部分选择和读出放大器使能信号将被输出。当该阵列首次通电时,LRU阵列中所有数据是随机的,指示存储在缓存阵列的数据的所有数据有效位是无效的。因为在通电时有效位被清除。
图13A-13I示出了单一被选缓存线在初始缓存装入时LRU操作顺序的一个例子,只对该例假设,上电时LRU数据全部为零。每个表表示,存储在各存储区MRU1,MRU2,MRU3和LRU中的两位值。在以下讨论中,两位信号0,0相应于缓存线A;信号0,1相应于缓存线B;信号1,0相应于缓存线C;和信号1,1相应于缓存线D。如上所述,上电时所有LRU数据是0,0。这示于图13A。如图13B-13E,被选组按顺序分别写入缓存线A、C、B和D。这是因为在初始缓存装入时所有有效位都关闭才发生的。当多个有效位为关闭时,使用优先权编码来选择该顺序。应注意,在每条缓存线被访问时,LRUA数据被有效地从一个LRUA存储区转移到下一个,即从MRU1至MRU2,从MRU2至MRU3,和从MRU3至LRU。因此,如图13E所示,在初始装入结束时MRU1存储了缓存线D的两位信号,MRU2存储了缓存线B的信号,MRU3存储了缓存线C的信号,和LRU存储了缓存线A的信号。
之后,如图13F-13H所示,在正常缓存操作期间,相同组的缓存线A-D的不同的一个被访问。更具体地,在图13G中,应注意,缓存线B访问,这样,已前存储在区MRU3(见图13F)相应于缓存线B的两位信号(此后称为“指示器”)现存储在区MRU1;已前存储在MRU1的指示器移到MRU2;和以前存储在MRU2的指示器移到MRU3。但是,应注意,最近最少使用的数据不应改变-以前存储缓存线3的0,1指示器(见图13F)的LRU区在图13G中不应改变,因为缓存线C还是最近极少使用。因此,本发明包括终止图13G中的LRU存区存储区的转移的LRU控制电路,换言之,本发明,在存储了当前被访问的缓存线的指示器的存储区或其上的存储区被更新,那个存储区之下的不更新。在示于图13F-13G的例子中,以前存储了当前被访问缓存变址线的表示的存储区(MRU3,它以前存储了部分B的表示)的之上的所有存储区(MRU1和MRU2)被更新,而该存储区以下的存储区(LRU)不更新。应注意,当我们提到存储区位于另一个“之上”或“以下”时,我们是指以最近使用阶段的降序上存储了缓存线指示器的存储区。因此,MRU1在MRU2“之上”,等等,存储区可沿主字线的任何给定顺序安排,虽然实际应用中接近上述逻辑关系的结构是最佳的(即,如图3所示,存储区沿主字线顺序安排,使它们有相邻的位线地址)。
图13H中,缓存线A被访问,使得A指示器从MRU2再装入MRU1,且使老的MRU1数据装入MRU2。再次注意,转移停止在MRU3,它是以前存储了被访问缓存线的指示器的MRU2存储区以下的存储区。
图13H中,检测到一个缓存未中(例如至变址数据的部分B的缓存未中)。这种情况下,LRU存储区不改变。在一个循环,当数据从主存储器转移至缓存时,数据有效位被查询。假设,它们都表示,所有缓存线A-D都存储有效数据,则主存储器数据将被写入缓存线C,该缓存线是在图13H中LRU存储区中指示的存储了最近最少被访问数据的缓存线。这种情况下,LRUA阵列中的所有数据将被转移(比较图13I和图13H)。
图14是说明LRU控制150一部分的硬件实现的电路方框图。该电路由三个多路转接器MUXA-MUXC组成。多路转接器的输出分别控制每个LRUA存储区MRU2、MRU3和LRU的两位。每个多路转接器作为输入接收存储在各个LRUA存储区的当前指示器,和紧靠的更高有效的LRUA存储区的指示器。因此,例如,MUXA接收存储在MRU1和MRU2的指示器。多路转接器分别由控制信号S1-S3控制。如图15所示,当前存储在MSB1、MRU2和MRU3的每个指示器的最低有效位(0)和最高有效位(1)与当前被访问的缓存线的指示器的最低有效位CURR(0)和最高有效位(1)相比较。该电路由一系列或门或非门组成,最终的信号S1-S3将根据比较而改变状态,例如,如果当前缓存线C被访问,且当前缓存线C的指示器存储在MRU3中,则C指示器将被存储在MRU1中,信号S1将升高使得MUXA输出以前存储在MRU1的指示器到MRU2,信号S2将升高便得MUXB输出以前存贮在MRU2的指示器到MRU3,信号S3将保持为低(因为当前被访问的指示器与以前存储在MRU3中的指示器一致),使得MUXC将不产生转移,且LRU存储区域将继续存储以前存储的相同指示器。LRU控制器的这种实现是简单和区有效的,有利于使用实现数据有效性检查的真正的LRU算法。
应理解,虽然可对上述本发明的结构和教导做出不同修改,但都没有背离本发明的实质和范围。
权利要求
1.一种在集成电路芯片上形成的用于存储从主存储装置取出的数据的缓存器,其特征在于,它包括多个变址线,每个所述变址线带有在第一存储区的用于存储主存储器数据的第一组存储单元,和第二存储区中的用于存储相应于所述主存储器数据的访问信息的第二组存储单元,所述第一和第二存储区有大致相同的循环时间,所述第二存储区在所述第一存储之前被访问;第一控制器,它为被选出的所述多个变址线的一个接收所述访问信息,对所述多个变址线的给定的一个,检测是否存储在所述第一存储阵列中的任一个所述主存储器数据要被访问;和阵列控制器,它在访问循环完成之前,有选择地释放所述被选的一个所述多个变址线的至少一部分第一存储阵列。
2.如权利要求1的缓存器,其特征在于,所述第二存储阵列在所述多个变址线的每一个上存储着至少一个标记地址。
3.如权利要求2的缓存器,其特征在于,所述第二存储阵列在所述多个变址线的每一个上存储多个位,这些位指示分别存储在所述第一存储阵列中各个所述多个变址线上的所述主存储器数据的有效性。
4.如权利要求3的缓存器,其特征在于,所述多个变址线的每一个存储了多个主存储器数据字,每个所述主存储器数据字包括多个可寻址数据字。
5.如权利要求4的缓存器,其特征在于,所述第二存储阵列在所述多个变址线的每一个上存储多个位,这些位提供一相关指示,表明存储在各个所述多个变址线上的所述多个主存储器数据字的每一个当前如何被访问。
6.一种用于存储要被处理器访问的数据的存储器,其特征在于,它包括多个字线,每个所述字线包括一主字线和耦合至所述主字线并由其控制的多个局部字线;耦合至所述字线的第一组存储单元;和耦合至所述多个局部字线的第二组存储单元,所述第二组存储单元存储有将被处理器访问的多个数据字,和至少部分所述第一组存储单元,这些单元存储相应于所述第二组存储器单元存储的所述多个数据字的访问信息。
7.如权利要求6所述的存储器,其特征在于,所述第一组存储单元存储至少一个标记地址。
8.如权利要求6所述的存储器,其特征在于,所述第一组存储单元存储有指示在所述第二组存储单元中存储的数据的有效性的多个有效位。
9.如权利要求8所述的存储器,其特征在于,所述第二组存储单元存储多个数据字,且所述第一组存储单元存储有指示所述多个数据字的哪一个是最近最少被访问的多个位。
10.一种存储器阵列,其特征在于,它包括耦合至多个位线和多个字线的多个存储单元,所述多个字线的每一个包括一主字线和耦合至所述主字线并由其控制的多个局部字线,至少一些所述多个存储单元直接耦合至所述主字线,而其它所述多个存储单元耦合至各个所述多个局部字线;在给定访问循环中选通所述多个主字线之一的主字线驱动装置;和用于选择要被访问的一些所述多个局部字线的控制装置,所述控制装置禁止其它的所述多个局部字线。
11.如权利要求10所述的存储器阵列,其特征在于,所述存储器阵列在集成电路衬底上形成,所述主字线和至少一个所述多个局部字线两者都位于至少部分所述多个存储单元之上。
12.如权利要求11所述的存储器阵列,其特征在于,所述主字线和至少给定的一个所述多个局部字线两者都位于几乎所有所述多个存储单元之上,这些存储单元耦合至所述给定的一个所述多个局部字线上。
13.如权利要求11所述的存储器阵列,其特征在于,所述主字线和所述多个局部字线的所述被选的一个基本平行排列。
14.如权利要求13所述的存储器阵列,其特征在于,所述主字线的第一部分和所述选择的一个所述多个局部字线位于直接耦合至所述主字线的那些选择的所述多个存储单元之上,它们分别与所述主字线和所述多个局部字线的所述被选的一个的其它部分相隔离。
15.如权利要求14所述的存储器阵列,其特征在于,所述主字线的所述其它部分电耦合至所述多个局部字线的所述被选的一个的所述第一部分。
16.如权利要求15所述的存储器阵列,其特征在于,所述主字线的所述第一部分连接至电源电压。
17.一种存储器阵列,其特征在于,它包括多个存储单元;位于所述多个存储单元之上并与其耦合的多个电源电压线;位于所述多个存储单元之上的多个主字线;位于所述多个存储单元之上的多个局部字线,所述多个电源电压线,所述多个主字线,和所述多个局布字线基本平行地排布,每个所述多个主字线耦合至一组所述局部字线,一组所述多个存储单元耦合至所述多个局部字线的所述组之一,每个所述多个主字线和至少一个局部字线的所述组位于耦合至局部字线的所述组的所述的一个的所述多个存储单元的所述组之上,所述主字线的各部分与其剩余的部分相隔离并耦合至所述电源电压线之一。
18.如权利要求17所述的存储器阵列,其特征在于,至少部分所述多个存储单元耦合至所述多个主字线。
19.如权利要求18所述的存储器阵列,其特征在于,所述至少部分所述多个存储单元耦合至多个局部字线的多个部分,这些部分与其剩余的部分相隔离并电气耦合至所述多个主字线的所述剩余部分。
20.如权利要求17所述的存储器阵列,其特征在于,它包括多个电源线,和一位于所述多个主字线、所述多个局部字线和所述多个电源线之上并与之相隔离的金属层,所述多个主字线,所述多个局部字线,和所述多个电源线平行排布并组合起来基本上覆盖所述多个存储单元,以提供对于所述金属层传输信号的信号屏蔽。
21.在包括一中央处理单元、一存储数据的主存储器和带有多个变址线的缓存器处理器系统中,每个所述变址线存储来自所述主存储器中被选区的多个数据字,将来自所述主存储器的更新数据字写入所述缓存的方法,其特征在于,包括以下步骤对于一给定变址线,确定是否有任何所述多个数据字是无效的,如果是无效的,将所述更新数据字写入存储了所述无效数据字的一部分给定变址线;对所述给定的变址线更新第一访问数据,以反映以前存储了所述无效数据字的所述给定变址线的所述部分现在存储了有效数据;如果对于所述给定变址线,所有所述多个数据字是有效的,确定哪个所述多个数据字是由所述中央处理单元最近最少访问的,并将所述更新数据字写入存储所述最近最少访问数据的所述给字变址线的一部分;和更新所述给定变址线的第二访问数据,以反映以前存储了所述最近最少被访数据字的所述给定变址线的所述部分最近被访问,以指示所述给定变址线上的所述多个数据字的不同的一个是所述中央处理单元最近最少访问的。
22.如权利要求21所述的方法,其特征在于,所述给定缓存变址线存储所述第一访问数据。
23.如权利要求22所述的方法,其特征在于,所述给定缓存变址线存储所述第二访问数据。
24.如权利要求21所述的方法,其特征在于,所述第二访问数据表示存储数据字的所述给定变址线的所有部分的相对使用时间,和更新所述第二访问数据的所述步骤包括以下步骤更新所述第二访问数据的第一部分,以指示其中存储了所述更新数据字的所述给定变址线的该部分现为最近最常被使用;更新所述第二访问数据的第二部分,以指示以前被指示为最近最常使用的所述给定变址线的一部分现是下一个最近最常使用的;和继续所述第二该问数据的相继部分的所述更新循环,直至(a)所述第二访问数据的给定部分中的访问数据不再改变,或(b)所述第二访问数据的最后部分已被更新以指示所述给定变址线的哪个部分是最近最少使用的。
25.一种执行最近最少使用(LRU)方法的处理器系统,该方法在缓存未中的情况下,更新带有主存储器数据字的n-路组相关缓存的给定缓存行的一部分,该系统的特征在于,它包括用于确定是否所述给定缓存线的任何部分存储了无效数据的第一装置;响应所述第一装置将所述主存储器数据字写入存储了无效数据的所述给定缓存的一部分的第二装置;如果所述给定缓存线的所有所述部分都存储了有效数据,所述第一装置确定哪个所述给定缓存线的所述部分存储了最近最少被访问的数据,所述第二装置将所述主存储器数据字写入最近最少被访问的所述给定缓存线的一部分;包含用于存储指示所述给定缓存线的所述部分的使用的数据的多个存储区的第三装置,其中,所述多个存储区的第一个区指示所述给定缓存变址线的哪个部分是最近最常被访问的,至少所述多个存储区的第二个区指示所述给定缓存变址线的哪个部分是下一个最近最常被访问的,和所述多个存储区的最后一个区指示哪一个所述缓存线的所述部分是最近最少被访问的;和用于通过所述第三装置更新所述数据的第四装置,它包括多个多路转换器装置,其写输出端耦合至各个所述多个存储区,每个所述多路转换器接收由前一个所述存储区存储的数据作为第一输入和接收其写输出端耦合的各个所述多个存储区存储的数据作为第二输入,所述多个多路转换器装置中给定的一个在所述第一和第二输入相同时在其输出端提供所述第二输入和当所述第一和第二输入不同时在其输出端提供所述第一输入。
26.如权利要求25所述的处理器系统,其特征在于,当所述数据字从所述主存储器写入所述缓存的所述给定变址线的所述最近最少使用部分时,所述第四装置用来自所述最后一个存储区的数据更新所述第一存储区。
全文摘要
一种缓存器,在主字线上直接存储TAG、变址和LRU信息,并在局部字线上存储缓存线数据。在循环的早期可获得访问信息,使得缓存禁止不需要的局部字线,通过将主和局部字线排布在使存储的数据不受上面的噪声源影响的金属层上,缓存可不影响存储的数据而实现高频互连,该缓存包括高效地更新地更新所存储的LRU信息的电路,从而支持组合的数据有效/全LRU缓存协议。
文档编号G11C15/04GK1106951SQ9410436
公开日1995年8月16日 申请日期1994年4月19日 优先权日1993年5月11日
发明者A·戴维斯, D·W·米尔顿 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1