用于电子计算机存贮器的位线开关阵列的制作方法

文档序号:6407035阅读:200来源:国知局
专利名称:用于电子计算机存贮器的位线开关阵列的制作方法
技术领域
本发明涉及电子计算机存贮器。电子计算机存贮器存贮一个中央处理单元使用的数据和指令。为有优良性能,一个电子计算机存贮器应具有大容量,高速度,低成本的特性。
为了获得优良性能,在一个多存贮级的存贮器分级体系中构成电子计算机存贮器是已知的。例如,与中央处理单元直接联系的第一存贮级(L1)可以包括一个小容量的、每个存贮单元为高成本的高速电子计算机存储器。与第一存贮级联系而不直接与中央处理单元联系的第二存贮级(L2)可以包括一个较大容量的、但每个存贮单元为较低成本的较低速的电子计算机存储器。如果需要,与第二存贮级联系的、可选择性地与第一存贮级联系但不直接与中央处理单元联系的第三存贮级可以包括一个更大容量的、但每个存贮单元为更低成本的更慢的电子计算机存储器。如果需要可以提供另外的存贮级。
第一存贮级一般是一个成组相连的高速缓冲存贮器。为了获得高速度,该高速缓冲存贮器包括有大量读出放大器和写入驱动器,它们可以扩大到跨越两列或更多列存贮单元(即,可以扩大到跨越两条或更多条位/读出线)。在一个成组相连的高速存贮器中,利用中央处理单元的存取包括对其中只有一个含有所需要的数据或指令的两个或更多个高速缓冲存贮器数据块部分的一组存贮单元进行存取。从第一存贮级向更高存贮级的存取包括对含有所需要的数据或指令的整个高速缓冲存贮器数据块进行存取。
对于一个用于快速中央处理单元存取的成组相连高速缓冲存贮器的设计可能降低更高存贮级的存取速度,或者是可能要求附加的而且是更昂贵的电路以避免降低存取更高级存贮级的速度。
本发明的目的是提供一种电子计算机存贮器,它能够以高速度实现对中央处理单元的存取或对更高级存贮级的存取。
本发明的另一个目的是提供一种电子计算机存贮器,它能够以高速度实现对中央处理单元的存取或对更高级的存贮级的存取,而且能够利用一种简单的、低成本电路设计实现。
根据本发明,一个电子计算机存贮器包括一个存贮单元阵列。每个存贮单元存贮一个数据信号,而且每个存贮单元具有至少一个字线输入端和至少一个位线输出端。至少一条字线连接到至少第一,第二,第三和第四存贮单元的字线输入端。第一和第二读出放大器被用于从存贮单元中读取数据。
本发明中也提供有第一,第二,第三和第四开关,每一个都有一个控制输入端。第一开关可交换地将第一存贮单元的位线输出连接到第一读出放大器。第二开关可交换地将第二存贮单元的位线输出连接到第一读出放大器。第三开关可交换地将第三存贮单元的位线输出连接到第二读出放大器。第四开关可交换地将第四存贮单元的位线输出连接到第二读出放大器。第一,第二,第三和第四开关的控制输入端能够独立地被进行驱动。
本发明的另一个方面中,电子计算机存贮器包括一个存贮单元阵列,每个存贮单元至少具有一个位线输入端。第一和第二写入驱动器用于将数据写入存贮单元。第一开关可交换地将第一存贮单元的位线输入连接到第一写入驱动器。第二开关可交换地将第二存贮单元的位线输入连接到第一写入驱动器。第三开关可交换地将第三存贮单元的位线输入连接到第二写入驱动器,第四开关可交换地将第四存贮单元的位线输入连接到第二写入驱动器。第一,第二,第三和第四开关能够被独立地进行驱动。
该电子计算机存储器还可以包括地址解码装置,用于独立地驱动第一和第三开关或者第二和第四开关。
每个存贮单元可以具有(例如)两个位线输入端和/或两个位线输出端。
本发明的另一个方案是,电子计算机存贮器包括含有其中包括多排存贮单元的一个高速缓冲存贮器。每排存贮单元至少包括存贮单元的第一和第二数据块。每个存贮单元存贮一个数据信号,而且每个数据单元具有至少一个字线输入和至少一个位线输出。一条字线被连接到高速缓冲存贮器一排中的至少第一,第二,第三和第四存贮单元中的字线输入端。第一和第三存贮单元包含在第一数据块中,而第二和第四存贮单元包含在第二数据块中。第一和第二读出放大器被用于从存贮单元读取数据。
本发明中提供有每个都有一个控制输入端的第一,第二,第三和第四开关。第一开关将第一存贮单元的位线输出可交换地连接到第一读出放大器。第二开关将第二存贮单元的位线输出可交换地连接到第一读出放大器。第三开关将第三存贮单元的位线输出可交换地连接到第二读出放大器。第四开关将第四存贮单元的位线输出可交换地连接到第二读出放大器。该第一,第二,第三和第四开关能够被独立地驱动。
该电子计算机存贮器还可以包括选择装置,用于独立地驱动第一和第三开关,以将仅仅在第一高速缓冲存贮器数据块中的存贮单元连接到读出放大器,或者独立地驱动第一和第四开关,以将在第一和第二高速缓冲存贮器数据块中的存贮单元都连接到读出放大器。
该选择装置也可以独立地驱动第二和和第四开关,以将仅仅在第二数据块中的存贮单元连接到读出放大器,或者独立地驱动第二和第三开关,以将在第一和第二数据块中的存贮单元都连接到读出放大器。
本发明的另一种方案,存贮单元的第一排包括M块存贮单元(典型地,当存在一个高速缓冲存贮器存取错误时,该高速缓冲存贮器“数据块”或高速缓冲存贮器“线”由一个更高级存贮级代替该高速缓冲的存贮器的单元)。每块存贮单元包括N个存贮单元,计算机存贮器包括用于从存取单元中读取数据的N个读出放大器。计算机存贮器也包括M×N个开关。每个开关将每一排的仅仅一个存贮单元的位线输出可交换地连接到一个读出放大器。每个开关有一个控制输入端。该开关的控制输入端能够被独立地驱动。选择装置独立地驱动第一组开关,以将在一个数据块中的N个存贮单元连接到读出放大器,或者独立地驱动第二组开关,以将在M个数据块的每一个数据块中的N/M个存贮单元连接到读出放大器。
根据本发明的电子计算机存贮器通过利用能够被独立地驱动的开关,将存贮单元连接到读出放大器(即连接到写入驱动器)的方法,利用一个简单的和低成本的电路设计,能够实现向中央处理单元进行高速存取以及向更高的存贮级进行高速存取。


图1是根据本发明的电子计算机存贮器的一个范例的方框图。
图2用示意图表示了存贮单元的一个范例。
图3用示意图表示一个开关的范例。
图4用示意图表示一个读出放大器的范例。
图5用示意图表示一个写入驱动器的范例。
图6用示意图表示一个地址解码器的范例。
图7是根据本发明的另一个电子计算机存贮器的一个范例的方框图。
图8用示意图表示一个拉丁方格变址存贮单元阵列(Latinsquaremappedmemmorycellarray)一部分的范例。
图9用示意图表示一个拉丁方格变址存贮单元阵列一部分的更详细的范例。
图10用示意图表示图9的拉丁方格变址存贮单元阵列的缩简图。
图11用示意图表示用于一个电子计算机存贮器的18个位地址的一个范例。
图12用示意图表示用于一个电子计算机存贮器的一个位线开关阵列一部分的一个范例。
图13用示意图表示用于一个电子计算机存贮器的一个地址解码器一部分的一个范例。
图14用示意图表示用于一个电子计算机存贮器的一个地址解码器另一部分的一个范例。
图15用示意图表示用于一个电子计算机存贮器的一个最新选取地址解码器一部分的范例。
图16用示意图表示在一个拉丁方格变址存贮单元阵列中的数据排列的一个范例。
图17用示意图表示将由一个拉丁方格变址存贮器单元阵列读出或写入一个拉丁方格变址存贮器单元阵列的数据进行重新组合所需要的数据移位的范例。
图18用示意图表示用于实施图17中所示的重新组合的一个数据移位器/校准器的范例。
图19是根据本发明的另一个电子计算机存贮器范例的方框图。
图1是根据本发明的一个电子计算机存贮器范例的一个方框图。该电子计算机存贮器包括一个存贮单元阵列10A,10B,10C和10D。每个存贮单元10存贮一个数据信号。每个存贮单元至少有一个字线输入端和至少一个位线输出和/或输入端14。
图2用示意图表示包含有6个场效应晶体管的一个存贮单元10的一个范例。场效应晶体管16可以是(例如)N通道的,而场效应晶体管18可以是P通道的。存贮单元以第一状态或第二状态的形式存贮一个数据信号,第一状态即在节点20具有高电压而在节点22具有低电压,第二状态即在节点22有高电压而在节点20具有低电压。当一个合适的信号加到字线输入端29时,开关场效应晶体管24就分别将节点20和22接到位线输入端/输出端26和28。
回到图1,至少一个字线30被连接到至少第一,第二,第三和第四存贮单元10A,10B,10C和10D的字线输入端12。第一读出放大器或写入驱动器32用于从存贮单元读取数据或将数据写入存贮单元。第二读出放大器或写入驱动器34用于从存贮单元读取数据或将数据写入存贮单元。
第一开关36用于将第一存贮单元10A的位线输出/输入端14转换地连接到第一读出放大器或写入驱动器32。第一开关36具有一个控制输入端38。第二开关40用于将第二存贮单元10B的位线输出/输入端14转换地连接到第一读出放大器或写入驱动器32。第二开关40具有一个控制输入端42。第三开关44用于将第三存贮单元10D的位线输出/输入端14转换地连接到第二读出放大器或写入驱动器34。第三开关44具有一个控制输入端46。第四开关48用于将第四贮存贮单元10D的位线输出/输入端14转换地连接到第二读出放大器或写入驱动器34。第四开关具有一个控制输入端50。如图1所示,第一,第二,第三和第四开关36,40,44和48都能够被独立地进行驱动。
图3用示意图表示出开关36,40,44或48的一个范例,在该范例中,开关包括一个单个的场效应晶体管52,该场效应晶体管有一个构成控制输入端的栅极53,也可以使用其它的合适的开关。
图4用示意图表示出读出放大器32或34的一个范例。在该范例中,读出放大器包括交叉耦合的场效应晶体管54。将数据信号读入该读出放大器,而放大的数据信号在节点56从该读出放大器读出。
图5用示意图表示写入驱动器32或34的一个范例。在该范例中,写入驱动器包括N沟道场效应晶体管58和P沟道场效应晶体管60。“实”和“补”输出端62和64分别提供相应表示在输入端66的数据和在输入端66的数据的补码。
图6用示意图表示一个地址解码器的范例。在该范例中,地址解码器包括输入端68,70,72和74,或门76,以及输出端M,N,O和P。输出端M,N,O和P分别连接到图1的开关36,44,40和48的控制输入端38,46,42和50。通过在地址解码器的输入端68提供一个信号,就可启动第一和第三开关36和44。通过在地址解码器的输入端70提供一个信号,就可启动第一和第四开关36和48。在地址解码器输入端72提供一个信号启动第二和第四开关40和48,而在地址解码器输入端74提供一个信号启动第二和第三开关40和44。
当图1的存贮单元10形成一个高速缓冲存贮器的整排或部分排时,第一和第三存贮单元10A和10C可能包含在该存贮单元的第一数据块中,第二和第四存贮单元10B和10D可能包含在存贮单元的第二数据块中(如前所述,当存在一个高速存贮器存取错误时,典型地一个高速缓冲存贮器“数据块”由一个更高存贮级替代高速缓冲存贮器的该单元)。在这种情况下,图6的地址解码器形成一个选择装置,用于独立地启动第一和第三开关36和44,以便只将第一数据块中的存贮单元连接到读出放大器32和34。或者独立地启动第一和第四开关36和48,以便将第一和第二数据块二者中的存贮单元连接到读出放大器32和34。
图7是根据本发明的一个电子计算机存贮器优选实施例的一个范例的方框图。在该优选的存贮器分级体系中,第一存贮级(L1)最接近于中央处理单元(CPU)并由中央处理单元(CPU)存取,第一存贮级L1包括一个静态随机存取存贮器(SRAM)高速缓冲存贮器,构成为一个最新选择的四路成组相联阵列。第二存贮级(L2)包括一个动态随机存取存贮器(DRAM),该存贮器(DRAM)是一个后援存贮器,第一存贮级在高速缓冲存贮器错误时从其上重新加载。在该范例中,第一存贮级或第二存贮级可以从一个形成第三存贮级(L3)的一个主存贮器重新加载。第一和第二存贮级最好集成在一块芯片上(虽然不是必须的)。随着所希望的容量而定,一个典型的存贮器由一片或更多的这种芯片构成。
所希望的这种存贮器分级体系描述在1992年1月24日申请的系列号为826,306的美国专利申请中,该申请名称为具有多宽度,高速度通信缓冲放大器的电子计算机存贮器(ElectronicCompaterMemorySystemHavingMultipleWidth,HighSpeedCommuni-cationBuffer)。”为了更清楚地理解本发明,并且表示本发明的总的性能,将利用一组特定参数说明最佳实施例。
参看图7,第一存贮级由一个256,000(256k)字节静态随机存取存贮器单元阵列78构成,它是利用八个相同的芯片得到的。每个芯片包含有作为整个芯片一部分的一个256k静态随机存取存贮器阵列。该静态随机存取存贮器可以具有例如类似于在下述文章中所描述的特性,即名为“A2-nsCycle,3.8-nsAccess512-kbCMOSECLSRANwithaFullyPipelinedArchitecture”,该文章作者是T.Chappel,B.Chappel,S.Schuster,J.Allan,S.Klepner,R.Joshi和R.Franch(IEEE固体电路年报,第26卷第11期,1991年11月,第1577-1585页,ISSCC91技术论文摘要,1991年,2月13-15,美国旧金山市,第50-51页)。
利用每个256字节的高速缓冲存贮器数据块,将高速缓冲存贮器构成为一个四路成组相联的、最新选择阵列。每个高速缓冲存贮器数据块是该高速缓冲存贮器的一部分,在该高速缓冲存贮器中存贮有一组来自例如主存贮器的一个更高级存贮器数据的一组相关字节(在该范例中,256个相关字节)。该设计是一个高速存入缓冲存贮器。一个存贮通过(Storu-thru)高速缓冲存贮器是一个可行的选择,但在该系统中不是典型,而且也不是最佳实施例。假设由中央处理单元存取的希望的逻辑字(LW)是一个由八位字节组成的双字(DW),该八位字节由来自八个芯片的每个芯片形成。
静态随机存取存贮器单元阵列78构成为每一排的1024个存贮单元的256排的一个阵列。每一排存贮单元被提供有一条字线80,每一列存贮单元被提供有一条位/读出线(或者一条位/读出线“实”/“补”对)。在图7中,每条线82代表八个位/读出线(即,八个位/读出线“实”/“补”对)。为了获得高速度和高密度、非常大、集成优良的读出放大器,就需要跨越n个单元(位/读出线)。因此,适用的读出放大器的数量将是在每排存贮单元数量的四分之一至八分之一的范围内。我们将选择(例如)具有1024个存贮单元的每排256个读出放大器的设计。
为了获得一个四路成组相联的、最新选择高速缓冲存贮器设计(该设计具有快速重新加载能力),在组相关性、数据块容量、逻辑字规格、以及阵列结构之间必须存在确定的关系。存贮位的变换则必须以一种恰当的方式进行以达到该设计。对于某些确定的条件,一个非常简单的变换和阵列结构是可能的。这些条件是如果我们希望在2周期中的Nc芯片上加载和卸载一个Bb1字节的整个数据块,则每一排的数目(在每个实字线上的位)必须满足br≥ (8SBbl)/(αNc) = (sbbl)/(αNc) [1]其中bb1=8Bb1,而读出放大器可用于阵列的顶部或底部,为了从一个相合级读出四个双字,或从重新加载通路读出一个数据组,则必须等于或大于等式1中的br的最小值。
在我们的最佳实施例中,取S=4,Nc=8芯片,Bb1=256字节,和α=1周期,该简单的变换将需要bx≥每排1024字节以及1024个读出放大器的最小值。我们的阵列具有每排1024位的最小数目,但只有256个读出放大器。因此,简单的变换是不可能的。所以,就需要一个不同的而且更复杂的称为“拉丁方格”的变址类型以达到具有成组相联的,最新选择设计的快速重新加载带宽。(参看,例如,Matick,R.E等人的“Functional cache for improved system per-formanee”。IBM Journal of Research and Develop ment,第33卷第一期,1989年1月,第15-32页)。
以下的描述使图8所示的拉丁方格变换扩大应用。在高速缓冲存贮器数据块A,B,C和D上的符号0,1,2和3表示逻辑字边界,在该情况中,它是八字节的一个双字。
定义两种相同级,一种用于排,一种用于列。用于典型的成组相联的、最新选择高速缓冲存贮器设计的普通相同级的标记是排相同级RC,由图8中的排组成。它们被标为RC0,RC1,RC2和RC3,如图所示。每一排的相同级包含来自四个高速缓冲存贮器每一个数据块的一个双字。每个双字具有相同的双字标记数。因此,第一排包含第一个双字DW0,它来自在高速缓冲存贮器一个排上的四个高速缓冲存贮器数据块中的每一个。第二排包含第二个双字DW1,它来自在高速缓冲存贮器一个排上的四个高速缓冲存贮器数据块中的每一个。第三排包含第三个双字DW2,它来自在高速缓冲存贮器一个排上的四个高速缓冲存贮器数据块中的每一个。第四排包含第四个双字DW3,它来自在高速缓冲存贮器一个排上的四个高速缓冲存贮器数据块中的每一个。
由图8的每一列所表示的一种新型相合级,也只包含来自四个高速缓冲存贮器数据块中的每一个的一个双字。然而,在该情况中,每个双字都有一个不同的双字标记号。它被称为拉丁方格列相同级(LCC)。例如,在图8的变址中,每个拉丁方格列相同级包含逻辑字0,1,2和3,它们来自四个不同的高速缓冲存贮器数据块A,B,C和D。
由于来自一个拉丁方格变址的一排中的每个高速缓冲存贮器数据块的每个双字有相同的标记,通过对每一列提供一个存取端口,就能通过选择的列Ⅰ,Ⅱ,Ⅲ和Ⅳ及一个单排存取具有来自四个高速缓冲存贮器数据块的每一个的相同标记的双字。这就构成了一个用于最新选择高速缓冲存贮器设计的一个普通中央处理单元存取。
为了重新加载,所有端口都应进入一个高速缓冲存贮器数据块。由于每一列只包含来自每个高速缓冲存贮器数据块的一个双字,所以这对于拉丁方格变址是可能的。例如,高速缓冲存贮器数据块A通过选择在0排上的列1,在1排上的列Ⅱ,在2排上的列Ⅲ,在3排上的列Ⅳ进行重新加载。以类似的方式,高速缓冲存贮器数据块B,C或D通过排与列的适当的组合就能够进行选择。执行两种不同类型的寻址(一种用于普通存取,一种用于重新加载)的能力是由以下描述的特殊的寻址解码器完成的。
作为最佳实施例,利用一个交叉的拉丁方格型存同单元变址,产生图9所示的存贮单元阵列布局。每个存贮单元具有形式XLW,BIT的变换,此处x是数据块A,B,C或D中的一个,LW是序号,从D至32的逻辑字标引(每个逻辑字是一个八字节的双字),而此处的BIT是双字中的位数0至63。每个读出放大器84有一个形式为SALCC,BIT的标记,此处LCC是相关的拉丁方格列相同级,而BIT是在相关拉丁方格列相同级中的双字内的位数0至63。
读出放大器间距为四,意即每个读出放大器(SA)84为四个位/读出线服务,并要求对四个位/读出线82的一个输出进行解码。这是通过位开关86以下述方式完成的。读出放大器精确地匹配四组相关性,并提供一种交叉拉丁方格变换的方法,以将用于数据调整的移位长度减至最小,如将看到的那样。除了位单元由每个连续的芯片上的一个进行增加外,所有的八个芯片具有一致的变换,如图所示。因此,八字节逻辑字由沿着八个芯片上的一个排的相邻位组成。
为了简化变换图并使它们与拉丁方格变换排序相关,将以下方式表示该变换。注意沿着图9中的任意排(字线80)的第一个四位被连接到相同的读出放大器,并与图8中的第一列对应,即LCC-I。这样,这些四位即使属于一条单根的字线,也被表示为垂直地沿字线88。另外要注意图9中的第一组八个读出放大器都属于相同的双字(逻辑字)并具有相同的双字标引数。因此,为了变换的目的,我们可以认为八个读出放大器的每一组都属于一个拉丁方格列相同级,如图9下部所示。
由于中央处理单元逻辑字LW总数为八字节,即每个芯片八位,则任何高速缓冲存贮器数据组将由在八个芯片上的每一个上的256位组成。每个芯片上的一组四个高速缓冲存贮器数据块需要有4×256=1024位。由于这精确地等于每个芯片上的每个字线的比特,则在八个对应的芯片上的每一排存贮了整个相同级,即四个完整的数据块。由于任何给定的数据块只需要每个芯片上的256位,而且有256个读出放大器,因此,在一个周期中,可以将一个全数据块从一个重新加载缓冲器重新加载到高速缓冲存贮器阵列中。如果读出放大器间距是在八个中的一个而不是四个中的一个,则只给出128个读出放大器而不是256个读出放大器,那么一个全数据块卸载或重新加载将需要两个周期(参看,例如Matick,R.E等人的上述的1989年1月的文章)。
为了能够将最新选择的八字节模拟字存取到中央处理单元,则拉丁方格标引必须被完成。如图9所示,在双字(八字节)边界上标引为一个最小量。利用这个构形,就能够在相同的芯片上,以下述的有效方式提供所有需要的移位,寻址以及最新选择解码。
图9的全部位和单个位变换可以依所示的方式进行简化,以对每块芯片给出图10所示的简缩的拉丁方格变址。鉴于八块芯片作为一个单元,则每条字线(排跨接八块芯片)包含来自四个数据块中每一个数据块的32个双字(逻辑字)。第一字线包含来自四个数据块A,B,C和D一个组的32个双字(DW0到DW31)。第二字线包含来自四个数据块A,B,C和D的一个不同的组的32个双字(DW0到DW31),第三字线包含来自四个数据块的一个不同组的32个双字,等等。
图10所示的每个拉丁方格变换(跨接八块芯片)包含来自四个数据块中每一个数据块的四个双字,即一个完整的16个双字,如图所示。因此,每条字线具有八个这样的拉丁方格变换在字线0上的M(0,0)至M(0,7),在字线1上的M(1,0)至M(1,7)等等,其中符号表示法是M(字线,变换)。我们将利用这个变换接着讨论,以表示出所需要的各种功能和一些可能的实现方法。
分配给每个拉丁方格地址变换的双字(逻辑字)如图10所示,而且它们如下M(W,0)双字0,1,2和3M(W,1)双字4,5,6和7M(W,2)双字8,9,10和11M(W,3)双字12,13,14和15M(W,4)双字16,17,18和19M(W,5)双字20,21,22和23M(W,6)双字24,25,26和27M(W,7)双字28,29,30和31这些分配将用于获得用于以下各种情况的适宜的解码器。
对于图10的变换,静态随机存取存贮器的高速缓冲存器的十八位地址示于图11中。
字线位,W0至W7,选取256条字线中一条,每一条包含用于四个数据块中每一个数据块的双字。位D0至D5选取来自四个数据块中每一个数据块的32个双字之一。位D0和D1选取在每个变换地址中的四个双字标引中的一个,D2至D4选取八个可能的拉丁方格变换中的一个。位S0和S1选取的每条字线上的四个数据块中的一个,并由高速缓冲存贮器控制器提供。它规定,例如,数据被读为存贮返回,或被写为重新加载。位B0至B2选取在一个双字中的八字节中的一个字节。
如图7所示,只提供有一组256个读出放大器84,它们被提供在存贮单元阵列的下部。该读出放大器84被表示为每组八个读出放大器的32组。读出放大器组被标记为SAG0至SAG31。
对于一个正常的读存取,解码器90和位开关86选取32个可能的双字,从四个数据块的每一个数据块取8个。正确的双字和数据块的剩余解码由最新选取的图形逻辑92完成,这将进行描述。最新选取的图形逻辑92通过驱动在每个芯片上的八个三态驱动器98选取双字中的一个,如图12所示。
对于一个要求高速缓冲存贮器数据块中的一个数据块存贮返回的错误,解码器90和位开关86从在完成解码之前现在必须被确定的数据块中选取所有的32个双字。通常知道该数据块来自错误产生的在前的周期。通过位于图7靠上部的移位器/校准器96对这些32个双字(每块芯片256位)进行选通(gateup),然后进入存贮返回缓冲器98。
要想执行选取的32个双字,从四个数据块的每一个数据块选8个,或者所有的32个双字选自一个数据块两种功能,解码器90必须具有一个至每个变换的每个位开关86的单独输入。每个变换有16个位开关86,因此需要16个启动信号,如图12所示。所有的八个交叉的拉丁方格地址变换都如其中所示的那样进行并联连接。图12中表示的每一个位开关86是一组并联连接的八位开关(参看图9)。然而,由于只用一个单个的启动信号触发八个并联位开关的每一组,所以只需要16个启动信号。
图13用示意图表示用于产生触发位开关86的16个启动信号的解码器90的一部分。解码器90包括与门100和或门102,如图所示。对于中央处理单元通路,解码器90选取32个双字总量,从数据块的每个数据块的双字取8个。对一个字线中的八个拉丁方格变换中的每一个,解码器90通过只选取四排相同级RC0到RC3中的一个来完成这项工作。解码器90并不要求数据块完全相同,因此这种解码和位开关选择就能够与阵列存取和变换平行进行。换言之,拉丁方格变换并不将任何附加延迟引入该通路的这一部分。
图24用示意图表示出也构成最新选取图形逻辑92的解码器90的另一部分。通过与门100和非门104,地址位D0和D1产生一个适于四排相同级RC0,RC1,RC2或RC3之一的信号。
在由读出放大器84读出位之后,最新选取图形逻辑92必须从所希望的数据块中选取八个双字之一。但是,由于该数据是排列成行的拉丁方格,所以它必须被分解。最新选取的图形逻辑92分解该拉丁方格排列并利用图10中的八个可能的变址M,对四排相同级RC0至EC3中的32个指令的一个输出进行解码。该解码适合于四个数据块A,B,C和D,如图15所详细描绘的那样。最新选取图形逻辑92包括与门100和或门102。最新选取图形逻辑92接收来自图14所示逻辑的排相同级信号和变换号码信号,并从高速缓冲存贮器控制器接收一个最新数据块选取信号。从这些输入信号中,最新选取图形逻辑92产生启动信号E0至E31中的一个。生成的启动信号选取在每块芯片上的每组八个读出放大器的32组中的一组,如图12所示。这就向中央处理单元提供一个双字(跨接八块芯片)。但是,由于位总是在任意双字中排列成行,所以就不需要再排列。
如从图15所看到的,用于选取正确双字的这个解码的初始部分能够立即起动。由拉丁方格变换引入的附加延迟基本上就是在选择正确的双字以驱动中央处理单元之前的一个附加的与门的延时。
为了将数据从高速缓冲存贮器返存到第二存贮级,解码器90和位开关86从如图12和13所示的一个单个数据块A,B,C或D中选取32个双字。在八块芯片的每块芯块上的256个读出放大器恰好足以保持来自四个数据块的任一数据块的一个完整的数据块。
对于交叉的拉丁方格变换,在读出放大器中的地址将不必从左到右排列成行。进而,特别生成的排列将依赖于所选取的数据块进行变化。因此,在解码器90起动适当的位开关86以利用数据选取信号从一个确定的数据块中选取所有的32个双字之后,以及在32个双字从256个读出放大器中被读出之后,在读出放大器中的数据必须进行移位或被排列到正确的双字边界。
当解码器90和位开关86选取双字的整个数据块时,在读出放大器中的数据将被排列到由图10中的交叉拉丁方格变换确定的边界上。对于由解码器90选取的数据块中的每一个,其排列将如图16所示。数据块A排列很好而无需移位。数据块13排列到八位的一个读出放大器组(SAG)的右边,数据块C排列到两个读出放大器组的右边,数据块D排列到三个读出放大器组的右边。为了获得合适的排列,则数据块B,C和D将必须分别向左移位一个,二个和三个组,如图17所示。
由于拉丁方格变换的这种交叉构形,在任何数据上的最大移位距离是三个读出放大器组,即一个3×8=24位单元的实际距离。如果我们不使用交叉变换,而是使用一个跨接在一排的全部1024位上的直接拉丁方格变换,则移位距离将是31×8=248个位。这将增加线长和延迟,而且将给出一个很复杂的布线图,这对于一个高速的设计都是有坏处的。交叉变换极大地简化和减少了布线通路。
在数据被寄存之后,在读出放大器输出端上就进行数据排列。移位器/校准器可以包括,例如如图8=18所示的一个简单的位开关网络。输入启动信号简单地就是来自高速缓冲存贮器控制器的一般数据块选取信号。数据总是被移动规定的量以用于任何给定的数据块。如前所述,移位是在四个双字边界上进行的,而且存在八个这样的相同图形,其中的一个都用于图10中的M个变换中的每一个。
回到图7,为了从中央处理单元(CPU)或者从第二存贮级110写入存贮单元阵列78,假设在写入周期开始之前就完成了转换。为了从中央处理单元写入存贮单元阵列78,将八个写入驱动器108连接到位/读出线的顶端。为了从第二存贮级110写入存贮单元阵列78,在高速缓冲存贮器重新加载缓冲器112中的256个写入驱动器利用移位器/校准器96和一组重新加载启动开关114连接到位/读出线82的顶端。芯片在底端上的输出通路的反转必须在顶端上完全再现。这就要求解码器116和位开关118与解码器90和位开关86完全一样,最新选取图形逻辑120与最新选取图形逻辑92完全一样,以及相关的选择开关122将写入驱动器108连接到位/读出线82。
在第一存贮级的静态随机存取存贮器与第二和第三存贮器的动态随机存取存贮器之间的接口需要执行一定的功能。这些功能的精确方法和定位可能稍微变化。首先,利用交拉丁方格变换,使进入静态随机存取存贮器和从静态随机存取存贮器读出的数据必须进行移动/排列。第二,从第一存贮级的静态随机存取存贮器至第二存贮级的动态随机存取存贮器的接口是每个周期256比特,而第一和第三存贮级之间的接口是每周期32比特。然而,静态随机存取存贮器的存贮返回和重新加载通路由图7所示的存贮返回缓冲器98和重新加载缓冲器112进行缓冲。
移位器/校准器96可位于静态随机存取存贮器阵列和存贮返回及重新加载缓冲器之间,如图7所示,而且以双向模式工作,对输出数据和输入数据都进行移位。
移位器/校准器96的另一种位置可以在第二和第三存贮级L2/L3二者及存贮返回缓冲器98和高速缓冲存贮器重新加载缓冲器112二者之间,如图19所示。移位器/校准器仍然以双向模式工作。有时只有32比特通过移位器/校准器96,而在其它时间则有256比特,这要根据操作而定。移位器/校准器只是一组无源开关,因此,不存在有源的问题。对于送至或来自第二存贮级110、引出或者引入存贮返回缓冲器98或高速缓冲存贮器重新加载缓冲器112的数据,则多路转换器124,126或128将选择256位的通路。
对于送到或来自第三存贮级L3以及引出或引入存贮返回缓冲器98或高速缓冲存贮器重新加载缓冲器112的数据,多路转换器124,126或128选择256行的32行,其余行则处于高阻状态。对于此情况,整个数据块的传输要求8个周期,而且多路转换器124,126或128将必须控制增量地址以及32位连续组的选择。(参看,例如Matick,R.E等人的“Architecture,design,andoperatingCharac-teristicsofa12-nsCMOSfunctionalcacheChip”,IBMJour-nalofResearchanddevelopment,Vol.33,No.5,September1989,Page524-539)。
如果电路设计、布局、和/或速度要求限定一个单向移位器,可以通过使图19中的移位器/多路转换器“对”96/128基本完全一样的电路来实现,并利用“一对”作为向高速缓冲存贮器重新加载缓冲器112的输入,而另“一对”作为存贮返回缓冲器98的一个输出来实现。存在很多种选择方案,其中的一些将通过技术和综合说明来限定,然而基本原理没有变化。
按照总的系统操作的角度来看,在第二存贮级110的动态随机存取存贮器上的理想输入/输出接口应该是图7所示的可选32/256位通路。在第二存贮级110的动态随机存取存贮器和静态随机存取存贮器(存贮返回缓冲器98和高速缓冲存贮器重新加载缓冲器112)之间的转换通路将是256位,而第一和第三存贮级(存贮返回缓冲器/高速缓冲存贮器重新加载缓冲器)之间的转换通路将是32位,而不论其它通路情况如何。对于从第三存贮级L3向第一和第二存贮级的一个漏掉的数据块的重新加载,第一组32字节包含产生该遗漏的双字。第一组32字节被选通到高速缓冲存贮器重新加载缓冲器112,而负载通过(load-thru)通路被启动。被当前存取的双字由负载通过(load-thru)解码器130进行解码并通入中央处理单元。如果希望的话,可选择在随后周期上执行相同的功能。
眼前主要的问题是将每周期32位的八个周期转换成第二存贮级110的动态随机存取存贮器。如果第二存贮级110具有一个用以适于解码、选择的32位输入通路和一个输入缓冲寄存器(IBR)132,(类似于高速缓冲存贮顺重新加载缓冲器112),则在每一个周期这32位既可以输入高速缓冲存贮器重新加载缓冲器112,也可以输入缓冲寄存器132。在八个周期结束时,可以将输入缓冲寄存器132加载到动态随机存取存贮器。
如果第二存贮级只有256位输入能力,则可以按以下方法对第二存贮级110加载。在高速缓冲存贮器重新加载缓冲器112满载后,可以在一个机器周期中将数据复制到存贮返回缓冲器98,然后从该处作为256位加载到第二存贮级110中。如果第二存贮级110有一个输入缓冲寄存器132,该寄存器132具有用于排列位的256位输入通路,则需要将一个附加周期用于存贮返回缓冲器98,以对输入缓冲寄存器132加载,而用于该输入缓冲寄存器132的大约八个周期被写入动态随机存取存贮器。然而,在对输入缓冲寄存器132加载之后,存贮返回缓冲器98被释放。
利用图7和图19所示的高速缓冲放大器结构,当一个数据块从第二存贮级110被重新加载到第一存贮级时,引起遗漏的双字将在高速缓冲存贮器重新加载缓冲器满载的同时被加载在下一个周期。如果数据需要来自高速缓冲存贮器重新加载缓冲器112,则可以将整个高速缓冲存贮器重新加载缓冲器加载到静态随机存取存贮器,而所希望的双字就可以同时进行存取。
为了从第三存贮级L3向静态随机存取存贮器重新加载,在高速缓冲存贮器重新加载缓冲器112中的数据能够以相同的方式进行存取,除非是全数据块可能不存在而且仍然要求高速缓冲存贮器重新加载缓冲器112向存贮单元阵列78的连续加载。
以使高速缓冲存贮器重新加载缓冲器112中的数据对中央处理单元成为可存取的方式是另一种设计方案(参看,例如Matick,R.E.etal.(Architecturalimplicationinthedesignofmicropro-cessors”IBMsystemJournal,Vol.23,No.3,1984,Page264-280;Matick,R.E.etal,January1989,上面已提到过;以及Radin,G.“The801minicomputer”IBMJournalofresearchandDevel-opent,Vol.27,No.31983,page237-246)。
以下是最糟情况下的高速缓冲存贮器重新加载的一个范例。在该范例中,第一和第二存贮级二者都有一个遗漏而且二者都有一个被存贮返回的数据块,即,第一存贮级有一个到第二存贮级的存贮返回,第二存贮级有一个到第三存贮级的存贮返回,而该重新加载的数据块必须既输入到第一也输入第二存贮级。对于图19的构形,完成该过程的步骤将如下所述。
步骤1周期T1存取静态随机存取存贮器和动态随机存取存贮器目录;二者都给出遗漏及舍去指示,即,B3出自第一存贮级,B9出自第二存贮级,而数据块B6则从第三存贮级被重新加载。
步骤2周期T2将B3输入到静态随机存取存贮器并寄存到存贮返回缓冲器中。对于B9启动动态随机存取存贮器的存贮。对于B6启动第三存贮级的存贮。
步骤3周期T3将B3从存贮返回缓冲器转换到输入缓冲寄存器(一个周期)。
步骤4周期T2+TD(TD=在机器周期中的动态随机存取存贮器存取时间)数据块9进入输出缓冲寄存器。
步骤5a周期T2+TD+1起动输入缓冲寄存器(包含B3)至动态随机存取存贮器的一个写入周期。将B9从输出缓冲寄存器转换到高速缓冲存贮器重新加载缓冲器(一个周期)。
步骤5b周期T2+TD+2将高速缓冲存贮器重新加载缓冲器(B9)转换至存贮返回缓冲器(一个周期)。
步骤6周期T2+TD+1+TD现在B3在动态随机存取存贮器中(B9写入存贮返回缓冲器)。
步骤7周期T2+TM(TM为第三存贮级存取时间)首先将B6的32字节(包含产生遗漏的双字)转换到输入缓冲寄存器并输入高速缓冲存贮器重新加载缓冲器,将产生遗漏的双字加载通过中央处理单元。从第三存贮级来的重新加载继续用于七个附加周期。
步骤8周期T2+TM+7数据块B6被满载地重新加载到输入缓冲寄存器并输入到高速缓冲存贮重新加载缓冲器。
步骤9周期T2+TM+8
起动B6(在输入缓冲寄存器中)至阵列的动态随机存取存贮器写入周期。起动存贮返回缓冲器的存贮返回至第三存贮级。完整的存贮返回到第三存贮级将需要TM+7周期。
步骤10周期T2+TM+8+(TM+7)存贮返回缓冲器(B9)满载地存贮返回到第三存贮级。
在上述过程中,内含地假设有TM≥2×TD+1周期(9)因此,步骤6将自动地在步骤7之前产生。如果不是这种情况,则重新加载控制器将必须提供必要的控制,以便防止B3和B6的加载之间的矛盾进入到动态随机存取存贮器上的输入缓冲寄存器之中。另一方面,来自第三存贮级的32位数据通路仅仅能够被加载到高速缓冲存贮器重新加载缓冲器,而不直接输入到第二存贮级。其后,当来自第三存贮级的全数据块转换完成时,第二存贮级可利用存贮返回缓冲通路进行重新加载。
权利要求
1.一种电子计算机存贮器,其特征在于一个存贮单元阵列,每个存贮单元存贮一个数据信号,每个存贮单元具有至少一个字线输入端和至少一个位线输出端;至少一个字线被连接到至少第一,第二,第三和第四存贮单元的字线输入端;一个第一读出放大器,用于从存贮单元读取数据;一个第二读出放大器,用于从存贮单元读取数据;一个第一开关,用于将第一存贮单元的位线输出端交换地连接到第一读出放大器,所说的第一开关具有一个控制输入端;一个第二开关,用于将第二存贮单元的位线输出端交换地连接到第一读出放大器,所说的第二开关具有一个控制输入端;一个第三开关,用于将第三存贮单元的位线输出端交换地连接到第二读出放大器,所说的第三开关具有一个控制输入端;一个第四开关,用于将第四存贮单元的位线输出端交换地连接到第二读出放大器,所说的第四开关具有一个控制输入端;其中第一、第二,第三和第四开关的控制输入能够被独立地驱动。
2.如权利要求1所述的电子计算机存贮器,其特征在于地址解码装置用于独立驱动第一和第三开关或第一和第四开关。
3.如权利要求1所述的电子计算机存贮器,其特征在于每个存贮单元有两个位线输出端。
4.一种电子计算机存贮器,其特征在于一个存贮单元阵列,每个存贮单元存贮一个数据信号,每个存贮单元具有至少一个字线输入端和至少一个位线输入端;至少一个字线被连接到至少第一,第二,第三和第四存贮单元的字线输入端;一个第一写入驱动器,用于将数据写入到存贮单元;一个第二写入驱动器,用于将数据写入到存贮单元;一个第一开关,用于将第一存贮单元的位线输入端交换地连接到第一写入驱动器,所说的第一开关具有一个控制输入端;一个第二开关,用于将第二存贮单元的位线输入端交换地连接到第一写入驱动器,所说的第二开关具有一个控制输入端;一个第三开关,用于将第三存贮单元的位线输入端交换地连接到第二写入驱动器,所说的第三开关具有一个控制输入端;和一个第四开关,用于将第四存贮单元的位线输入端交换地连接到第二写入驱动器,所说的第四开关具有一个控制输入端;其中第一、第二、第三和第四开关的控制输入端能够被独立地驱动。
5.如权利要求4所述的电子计算机存贮器,其特征在于地址解码装置用于独立地驱动第一和第三开关或第一和第四开关。
6.如权利要求4所述的电子计算机存贮器,其特征在于每个存贮单元具有两个位线输入端。
7.一种电子计算机存贮器,其特征在于一个高速缓冲存贮器,包括多排存贮单元,每排存贮单元包括至少第一块和第二块存贮单元,每个存贮单元存贮一个数据信号,每个存贮单元具有至少一个字线输入端和至少一个位线输出端;一个字线被连接到一排高速缓冲存贮器中的至少第一,第二,第三和第四存贮单元的字线输入端,第一和第三存贮单元被包含在第一块中,第二和第四存贮单元被包含在第二块中;一个第一读出放大器,用于从存贮单元中读取数据;一个第二读出放大器,用于从存贮单元中读取数据;一个第一开关,用于将第一存贮单元的位线输出端交换地连接到第一读出放大器,所说的第一开关具有一个控制输入端;一个第二开关,用于将第二存贮单元的位线输出端交换地连接到第一读出放大器,所说的第二开关具有一个控制输入端;一个第三开关,用于将第三存贮单元的位线输出端交换地连接到第二读出放大器,所说的第三开关具有一个输入控制端;和一个第四开关,用于将第四存贮单元的位线输出端交换地连接到第二读出放大器,所说的第四开关具有一个输入控制端;其中第一,第二,第三和第四开关的控制输入端能够独立地被驱动。
8.如权利要求7的电子计算机存贮器,其特征在于选择装置用于独立地驱动第一和第三开关,以将仅仅在第一块中的存贮单元连接到读出放大器,或者独立地驱动第一和第四开关,以将在第一和第二两个块中的存贮单元连接到读出放大器。
9.如权利要求8所述的电子计算机存贮器,其特征在于选择装置另外独立地驱动第二和第四开关,以将仅在第二块中的存贮单元连接到读出放大器,或者独立地驱动第二和第三开关,以将在第一和第二两个块中的存贮单元连接到读出放大器。
10.如权利要求8的电子计算机存贮器,其特征在于每一排存单元包括M块存贮单元;每块存贮单元包括N个存贮单元;计算机存贮器包括N个用于从存贮单元读取数据的读出放大器。计算机存贮器包括M×N个开关,每个开关将每排仅仅一个存贮单元的位线输出端交换地连接到一个读出放大器,每个开关具有一个控制输入端;该开关的控制输入端能够被独立地驱动;和选择装置独立地驱动一个第一组开关,以将一个块中的N个存贮单元连接到读出放大器,或者独立地驱动一个第二组开关,以将M块的每一块中N/M个存贮单元连接到读出放大器。
全文摘要
一个高速缓冲存贮器,具有多排存贮单元,每一排至少具有第一和第二块存贮单元。每个存贮单元存贮一个数据信号,并具有至少一个字线输入端和至少一个位线输入端/输出端。第一和第三存贮单元被包含在第一块中,而第二和第四存贮单元被包含在第二块中。第一和第二开关将第一和第二存贮单元的位线输入端/输出端分别连接到第一读出放大器/写入驱动器。第三和第四开关将第三和第四存贮单元的位线输入端/输出端分别连接到第二读出放大器/写入驱动器。
文档编号G06F12/08GK1093473SQ9310408
公开日1994年10月12日 申请日期1993年4月8日 优先权日1992年4月10日
发明者瑞查德·E·玛屉科, 斯泰勒·E·理斯特 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1