存储系统的冗余格式地址译码器的制作方法

文档序号:6749548阅读:252来源:国知局
专利名称:存储系统的冗余格式地址译码器的制作方法
技术领域
本发明有关一个存储器的地址译码器。
微处理器及其它集成电路在存储系统中存储数据。存储系统存储诸如程序指令或可变数据的数字数据。如

图1所示,一个典型的存储系统100包括一个地址译码器110,一个存储器120,并还可包括一个选择开关130。存储器120按行组织,称为“存储行”。每个存储行拥有一个唯一的地址。当一个地址被送给一个地址译码器110时,地址译码器110使相应存储行中的数据从存储系统100中输出。
在一些应用中,可能希望只检索存储行中的一部分。例如,一个处理器可以一次一行地将数据装入存储器120中,但可以以更小的增量使用所装入数据。在这类应用中,选择开关130允许存储行中的一个选定部分从存储系统100中输出。到一个公共总线的输出被加到选择开关上。这样,来自一个启动存储行的数据被提供给选择开关130。选择开关130选择要由存储系统100提供的存储行的选定部分。
要以信号形式访问所希望数据部分时,地址译码器110一般接收一个不仅标识所要求存储行,而且标识该存储行的一部分的地址信号。该存储行由地址的第一部分标识(Addrs-Addrn);存储行的一部分由地址的第二部分(Addro-Addrs)标识。
图2中详细示出了地址译码器110。地址译码器110由一组与门组成,存储器120中的每个存储行一个。每个与门,例如与门112,接收地址第一部分(Addrs-Addrn)的每个比特位置的一个输入信号。而且,对于每个比特位置i,地址信号Addn都被反相(Addn#),因此,地址位的真值或其补码可被送给一个与门。对于任意与门,当提供了合适的地址信号时,该门与Addn或Addn#中值为1的那个相连接。
例如,当给地址译码器送地址“0000”时,与门112应启动其存储行。响应于“0000”,对于所有i,Addn=0。不过对于所有i,Addn#=1。于是,与门112从Addr0#,Addr1#,Addr2#等接收输入信号。类似地,当地址“0001”被送给地址译码器时,与门114应启动其存储行。从而,对于所有的i≠0,Addn#被送给与门114。对于地址“0001”,Addr0=1并被送给与门114,而不是Addr0#。按照与门应响应的地址,每个与门都连接到地址线上。
存储系统的一个目标是尽可能快地检索所要求数据。从发送地址到用户可以使用所要求数据这段时间内出现的任何延迟都是不希望的。不过,有时地址数据可以作为一个或多个算术运算发送。算术运算必须在地址可以被送给地址译码器110之前被执行。传统的算术运算速度很慢,它们增加了数据检索操作中不希望的延迟。
图3中示出了一个传统的加法器。这里,四个位输入X和Y被相加在一起,得到一个四位和S和一个单独的进位位Cout。加法器包括一个内部进位链,它在加法器的每个比特位置间传播。来自一个第一比特位置的进位可以影响第二个比特位置处的和的值(S2)。来自第二个比特位置的进位可以影响第三个比特位置处和的值(S3)。进位链继续直到最高有效位。由于进位影响结果和值,所以直到进位链横越整个加法器长度时,才能输出结果。
当顺序执行几个算术运算时,对每次操作,进位链必须完成。地址数据上的串行算术运算使存储器操作非常缓慢。
因此,需要一种技术,当数据要进行算述运算时,存储系统能提供对所需数据的快速检索。
已知“冗余格式”地址比传统地址快。图4中示出了一个三个输入冗余格式加法器的例子。这里,加法器从输入W,X和Y生成一个多位和,标记为 。结果和(例如 中的每个“比特位置”实际上是由两个位代表的。冗余格式加法器没有传统加法器中的内部进位链。因此,相对于传统算术运算,冗余格式算术运算非常快。为获得一个传统,非冗余结果,每个比特位置处的两位必须由一个传统加法器相加起来。例如,冗余格式加法器输出的每个加法位置 的两位可以输入给图3的传统加法器以获得一个非冗余结果。
传统存储器无法对以冗余格式输入的地址数据操作。还没有存储系统对冗余格式的地址数据执行地址译码。
本发明实例提供了一个存储系统,该系统根据冗余格式地址数据检索数据。该存储系统包括一个有多个存储行的存储器,及一个根据冗余格式地址数据启动存储行之一的地址译码器。
图1是一个已知存储系统的方块图。
图2是一个存储系统的一个已知地址译码器的方块图。
图3是一个传统加法器电路的方块图。
图4是一个已知的冗余格式加法器电路的方块图。
图5是一个根据本发明第一个实例构造的一个存储系统的方块图。
图6是按照本发明的一个实例构造的一个单级冗余格式译码器电路的方块图。
图7是按本发明一个实例构造的一个单态冗余格式解码器电路的方块图。
图8是按本发明的一个实例构造的一个冗余格式地址译码器的存储器驱动器的方块图。
图9是按本发明的一个第二实例构造的一个存储系统的方块图。
图10是按本发明的一个第二实例构造的一个存储器驱动器的方块图。
图11是按本发明的一个第三实例构造的一个存储系统的方块图。
图12是按本发明的一个实例构造的一个单级冗余格式译码器电路的方块图。
图13是一个方块图,举例说明了两个非冗余值相加以得到一个冗余格式结果的过程怎样不使用相加。
本发明方法提供了一个存储系统,该系统根据冗余格式的地址信息输入信号检索数据。当对地址数据信号执行算术运算时,从该存储系统中检索数据比从传统系统中检索数据快。
图5举例说明了一个按本发明第一实例构造的存储系统200。该存储系统200包括一个地址译码器210和一个存储器220。该地址译码器210接收冗余格式的数据信号;即,每个“比特位置” 两个比特。根据冗余格式的地址数据信号值,地址译码器210访问存储器220中的一个选定存储行。存储器220从所选存储行222中输出数据信号。
在该实例中,地址译码器210可以是一个两级译码器。第一级230包括一个冗余格式的译码器,其中,冗余格式的地址数据信号被译码为本实例中的地址信号线。对于所有的比特位置i(i≠0),冗余格式译码器230生成四个地址信号,标记为Zia,Zib,Zic和Zid,分为不同的对(Zia=Zib#,Zic=Zib#)。冗余格式译码器230是由一些冗余格式译码电路构成的(图5中未示出)。第二级包括一个存储器驱动器240,其中,根据地址线上的数据信号生成存储器启动信号。图6举例说明了按本发明的一个实例为比特位置 (i≠0)构造的一个冗余格式译码器电路300。为了标记,将 的两位分别记为Ai和Bi。解码器电路300根据 (Ai,Bi)和 (Ai-1和Bi-1)的值生成地址信号Zia,Zib,Zic和Zid。信号Ai,Bi,Ai-1和Bi-1分别在输入口302,304,306和308输入给译码器300。地址信号Zia,Zib,Zic和Zid分别在输出口310,312,314和316从译码器300输出。
Ai,Bi是到第一XOR门320的输入信号。XOR门320在线路322上生成一个输出信号。线路322输入给一对XOR门324和326。XOR门324生成第一相异地址信号对Zia和Zib。XOR门326生成第二相异地址信号对Zic和Zid。
Ai-1和Bi-1输入到一个与门328和一个OR门334与门328在线路332上生成一个输出信号,线路332输入XOR门324。OR门334在线路338上生成一个输出信号,该信号输入XOR门326。
冗余格式译码器电路300很大程度上类似于一个传统加法路。线路322提供一个非冗余和,该和可通过将Ai与Bi相加得到。线路332和338提供在合适情况下来自位置计的进位·线路332上的信号代表Si-1=1时来自位置计的进位(以下将介绍)。
·线路338上的信号代表Si-1=0时来自位置计的进位(以下将介绍)。
这样,Zia或Zic代表非冗余和位Si。根据附加信息,确定携带Si的正确值的一个地址线的标识。这将在以下联系图8讨论。
不过,一个传统加法器将使用一个内部进位链,该链通过加法的每个比特位置传播。在该例中,冗余格式译码器电路300不将来自位置i-z的任何进位包含在内。
冗余格式译码器电路300可以仅仅是一个多位译码器的一级。图6中的门可以与其它级共享以生成一个完整的多位译码器。例如,另外的门340和342(以虚线表示)举例说明了用来将输入信号Ai和Bi连接到i+1位置译码器上的门。在i+1位置译码器中的门340和342对应于i位置译码器上的门328和334。门330(也以虚线表示)也可用在一个i-1位置译码器中。
图7举例说明了一个按本发明实例构造的冗余格式译码器电路400。该译码器电路400适用于冗余格式位 。为了标记,将 的两位分别标记为A0和B0。它们在输入端402和404输入译码器电路400。译码器电路400在输出端406和408上生成一个单独的相异地址线对Z0a和Z0b。
A0和B0被输入一个XOR门410。XOR门410在线路412上生成一个输出信号。如果为比特位置0提供一个进位Cin,则Cin在输入端416输入。第二个XOR门414从线路412和终端416接收输入信号。第二个XOR门416在输出端406和408生成Z0a和Z0b。
图8举例说明了按本发明实例构造的地址译码器210(图5)的一个存储器驱动器240的电路图。存储器驱动器240由一些与门242-246组成。每个与门(例如门242)都与存储器220中的存储行(图4)之一相联系。作为输入,每个与门242都从冗余格式译码器230接收地址线Zia-Zid(i=1到n)之一。每个与门242还接收比特位置i=0的地址线对Z0a-Z0b之一。根据一个冗余格式输入地址信号,启动存储线222(图5)之一。
如对图6的冗余格式译码器300所提到的,地址线Zia和Zic之一携带非冗余Si的正确信号值。对于常规加法器,该正确信号值可由一个内部进位链确定(有时称为“完全相加”)。不过,通过省略内部进位链,可以得到改善了的性能。
在该实例中,每个与门242-246都映射到一个具有唯一地址R的存储行222上。该地址可被作为信息的一个额外部分用来标识Zia或Zic中哪一个携带有非冗余的正确值Si。具体地,比特位置i-1处的地址R的非冗余值(Ri-1)取为非冗余和Si-1的值(Ri-1=Si-1)。该假设是这样验证的,即,若该假设不正确,则到驱动与门(即253)的一些其它输入信号在地址解码过程中将为零。在这样一个情况下,与门253将不驱动与它相应的存储线。换句话说,当完全相加生成一个与地址位Ri-1相等的Si-1时,与门253动作。当输入信号值Ai,Bi,Ai-1和Bi-1已知且非冗余和Si-1“已知”为Ri-1时,可以计算非冗余值Si。
表1举例说明了对于Ai,Bi,Ai-1,Bi-1和Si-1的所有可能排列,从冗余格式译码电路300输出的Si和Zia-Zid的值。该表中首先存储Si,然后是Si。如表所示,当Si-1为0时,Zik=Si。当Si-1=1时Zia=Si。
表1当然,一个与门253只有在接收的输入信号为1时,才能响应。不过,有时Si的正确值为0(当Ri=0时)。当Si输入与门253时,即使所选Si值是正确的,它也不起作用。这样,当Si的正确值被选定但Si=0时,Si被反相并输入给与门253。由于Zib=Zia#且Zid=Zic#,所以在Si=0时它们被用作输入信号。
这样,对于每个比特位置i(i≠0),根据地址位Ri,Ri-1的非冗余值,一个与门被连接到四个地址线Zia-Zid之一上。表2证明了怎样进行连接
在图8中,与门252-255说明了按这种规则,为i=1所作的连接。
如参照图5所介绍的,比特位置i=0用于寻址一条存储线222。在该实例中,对于端接在0的地址R(R0=0)相关的每个与门,与门从线路Z0b接收一个输入。对于每个端接在1的地址R(R0=1)相关的与门,与门从线路Z0a接收一个输入信号。
当冗余格式输入数据信号的最低有效位用在存储线222的地址中的,本发明可以不需要完全相加。不过,当冗余格式数据的最低有效位与存储线地址的最低有效位不一致时,可以使用完全相加。例如,若冗余格式输入数据从
扩展到
,但只有
编址存储线时,则对冗余格式位
可以使用完全相加。
图9举例说明了一个按本发明第二实例构造的存储系统500。在第二实例中,根据冗余格式地址数据信号,从存储器中读出一个校准数据信号。类似于图5中的系统200,存储系统500包括一个地址译码器510和一个存储器520。地址译码器510由两级译码器组成,包括一个冗余格式译码器530和一个存储器驱动器540。存储系统500还包括一个选择开关550。在第二个实例中,要进行算术处理的冗余格式地址位
中,只有一部分位
用来寻址各个存储线。剩余的位
代表存储行中的数据信号。
图9中的存储系统500读出“校准数据”。校准数据由包含在一个存储行中的预定块内的数据信号组成。每个存储行522都被划分为多个块。图9中示出了两个块高块524和低块526。在一个存储行522中,块由位置S-1处的地址数据Ss-1标识。在该实例中,所需数据不跨越块间的界限。冗余格式译码器530由多级图6中的冗余格式译码器电路300组成。冗余格式译码器电路300适合于对所有的冗余和位 (i=s到s+n)译码。
图10举例说明了按本发明的一个实例构造的地址译码器510的存储器驱动器。存储器驱动器由一些与门541-545组成,每个门都与存储行中的一块相联系。在图9的存储器驱动器540中,与门541-545的数量是存储行数量的两倍。这里,一个存储行522被分配一个由比特Rs-Rs+n组成的地址R,则每个存储行中的块都由较低级的位Rs-1到Rs-m寻址。在图9的两块例子中,比特Rs-1编址一个存储行中的块。
对于每个比特位置i(i从s到s+n),作为一个输入信号,每个与门541-545接收一个由冗余格式地址译码器530生成的地址线Zia,Zib,Zic或Zid。按照以上表2中所列出的规则,由与门的地址位Ri和Ri-1确定一个与门要连接到哪条地址线Zia-Zid上。
在图10的存储器驱动器中,两个与门541,542响应于一个预定的冗余格式地址。第一个与门541挑选一个较低次序的块526。当Ss-1=0时,所选较低次序的块526被正确寻址。第二个与门542挑选一个较高次序的块524。当Ss-1=1时,所选较高次序的块被正确寻址。选择开关550(图9)确定哪个所选数据块要从存储系统500中选出。
所要求数据块由选择开关550根据非冗余Ss-1选出。最初,Ss-1是未知的。为得到Ss-1希望对比特位置0到s-1执行一个冗余格式地址数据 的传统加法。当得到一个Ss-1的非冗余值时,它被选择开关550用来挑选正确的数据块。选择开关550挑选的块是这样一个块,已知它的译码与门已接收了一个正确的输入信号。
尽管在图9的实例中可能执行了一个完全进位加,但与以前的系统相比,该实例仍获得了性能上的改善。该进位链只通过位0到s-1传播,不经过地址的整个长度(0到s+n)。这样,进位链被缩短了。
借助于存储器的操作特性,执行这种短的完全加法所用的时间也可被调整。传统地,一旦一条存储行被启动,则存储器在从该存储行输出数据时有些慢。一条存储行被启动以后,到选择开关可以使用数据,这之间存在一个固有的等待时间。这样,在一小段地址数据上执行一个传统加法,例如从位0到s-1,不会明显降低从存储器取数的时间。
换一种方式,可以使用图9的逻辑生成选择开关550的输入控制信号。选择开关550本身可由冗余格式逻辑控制。
图11举例说明了按本发明另一实例构造的一个存储系统600。存储系统600存储“非校准”数据,该数据不被限定在存储器的高块或低块中。所需数据可以跨越一个存储行622的四分之一到一半。和前面的实例一样,存储系统600包括一个地址译码器610和一个存储器620。地址译码器610包括一个冗余格式译码器630和一个存储驱动器640。冗余格式译码器630将冗余格式地址输入译码为多个译码地址行,以下同对输出。存储驱动器640在存储启动行上生成启动信号。
存储器620由多个存储行622构成。每个存储行622又被划分为一个高位块623和一个低位块624。来自存储驱动器640的一个独立存储器启动线驱动每个块623,624。这样,在该实例中,存储器启动线的数量是存储行622的两倍。
如参照图8的校准数据实例所提到的,存储驱动器540根据一个单独的地址输入驱动存储器520中的两个块。第一个块(即一个高位块524)包含所需数据。第二个块(一个低位块)不包含所需数据。两个块可以是,但不是必须是,位于同一存储行522中。在图8的校准实例中,由于所需数据被限定在两个块之一中,所以,第二个块是否被正确寻址是不重要的。第二个块输出的数据被输入选择开关550,但不从存储系统500中输出。选择开关只从第一个块输出数据。不过,在图11的非校准实例中,所需数据可能跨越一个块边界。
在图11的实例中,每个存储行被划分为四个数据“碎块”625-628。每个碎块都由一个复合地址R寻址,地址R包括碎块的存储行622的地址(由地址位Rs-Rs+n代表)和一个两位的地址,代表碎块自身(由地址位Rs-2-Rs-1表示)。所需数据可能跨越碎块间的界限,但只跨越一个界限。若所需数据分布在两个碎块(例如,块625和626)中,则输入地址数据以两个块中较低的一个为起始点。相应地,根据一个输入地址R,可以在该地址所标识的碎块(即块625)中,及最多在与该地址相邻的一个碎块(626)中找到所需数据。
地址译码器630是一个多比特译码器,由一些译码器级组成(图1中未示出)。它接收一个输入地址R(包括位Rs-2-Rs+n)并输出比特位置i=s到s+n的译码地址信号(Zia-Zid)。冗余格式译码电路300(图6)适合于所有的比特位置i≠s。
图12举例说明了一个按本发明实例构造的译码器电路700。它适合于为比特位置i=s译码地址信号。译码器电路700根据冗余格式输入数据信号 生成两个相异对的地址信号Zsa-Zsd。冗余格式地址数据信号As,Bs,As-1,Bs-1,As-2和Bs-2分别在输入端701-706输入给冗余格式译码器电路700。译码器电路700分别在输出线路707-710上输出译码地址信号Zsa-Zsd。地址数据信号As和Bs被输入一个XOR门712。来自XOR门712的一个输出信号又被输入XOR门714和716。XOR门716生成信号Zsa和Zsb,XOR门714生成信号Zsc和Zsd。
地址数据信号As-1和Bs-1被输入到一个与门718和一个OR门720。OR门720的一个输出信号(线路722)被输入XOR门714。地址数据信号As-2和Bs-2被输入另一个与门724。线路722上的一个输出信号也被输入与门724。与门724的一个输出信号(线路730上)和与门718上的一个输出信号(在线路728上)都被输入一个OR门726。OR门726的一个输出(线路732上)被输入XOR门716。
译码器电路700确保了当输入的冗余格式输入数指向块627时,存储器驱动器640驱动同一存储行中的两个块623和624。应指出的是,当输入地址数据指向块628时,所需数据必须全部在较低块624中寻找。当输入地址数据指向块626或625时,所需数据必须全部在较高块623中寻找。
在一个实例中,可按图10所示构造存储器驱动器640。对于所有的比特位置,根据位置Ri和Ri-1处与门的地址R的值(见表2),一个与门与地址线Zia-Zid之一相连接。根据位s-1和s-2的非冗余地址,控制选择开关。
在对以上提供的冗余格式地址数据的讨论中,假设在结果地址数据被输入一个地址译码器之前,对地址数据执行了一个或一系列冗余格式算术操作。在一种特殊情况下,算术操作可从存储器操作中省略。当一个存储器操作会使得要执行两个非冗余地址的单一加法时,该存储器操作可被省略。取而代之的是,两个非冗余地址可被直接输入地址译码。
如图13所示,两个非冗余数的一个冗余格式加法会生成一个冗余格式和 ,这里 ,对于所有i。
这样,本发明的这一实例提供了单一加法实现中地址数据的需延时译码。
本发明提供了一个对冗余格式地址数据译码的地址译码器。该地址译码器允许以非常高的速度对地址数据进行算术操作,从而,降低这些算术操作中存在的存储器操作延时。由于地址译码器省略了传统加法器中共有的内部进位链,所以,与包含算术操作的传统存储器操作相比,它能提供惊人的性能改善。
此外,具体介绍并例证了本发明的一些实例。不过,可以认识到,在不脱离本发明精神和范围的前提下,前面所述技术及所附权利要求中涵盖了本发明的一些修改和变形。
权利要求
1.1个存储系统,包括一个地址译码器,用于接收冗余格式地址信号,一个由存储行构成的存储器,每个存储行都组织为第一和第二块,每个块都通过启动线与地址译码器连接。
2.权利要求1中的系统,其中存储器存储非校准数据。
3.如权利要求1的系统,其中地址译码器包括多级冗余格式译码器,至少一个级具有三个比特位置的冗余格式地址信号输入,并具有比特位置之一的一个译码地址信号输出。
4.如权利要求2的存储系统,其中至少一个级具有两个比特位置处的冗余格式地址数据输入,并具有比特位置之一的一个译码地址数据输出。
5.如权利要求1的存储系统,其中存储行被分为碎块,一个块分两个碎块。
6.权利要求5的存储系统,其中每个碎块都与一个合成地址相联系。
7.如权利要求1的存储系统,还包括一个选择开关,与存储行连接。
8.权利要求1的存储系统,其中地址译码器包括一个冗余格式译码器,具有一个冗余格式地址信号输入端,和一个存储器驱动器,通过译码地址线与冗余格式译码器连接,并有一个与启动线耦接的输出端。
9.权利要求8的存储系统,其中冗余格式译码器是一个多级译码器。
10.一个存储系统,包括一个存储器,由多个存储行组成,每个存储行由第一和第二块组成,每个存储行都与一个预定宽度的地址相关,一个地址译码器,有一个冗余格式地址信号输入端,该地址信号代表存储器中数据的地址数据,地址译码器通过启动线与存储器耦接。
11.权利要求10的存储系统,其中冗余格式地址数据包括存储地址的每个比特位置及与存储地址的最低有效比特位置相邻的两个比特位置的冗余格式数据。
12.权利要求11的存储系统,其中,存储行组织为碎块,碎块由两个比特位置处的冗余格式输入数据索引。
13.权利要求10的存储系统,其中地址译码器包括一个与输入端耦接的冗余格式译码器,和一个存储驱动器,通过译码地址线与冗余格式译码器耦接,并与启动线连接。
14.权利要求13的存储系统,其中冗余格式译码器是一个多级译码器。
15.权利要求14的存储系统,其中冗余格式译码器包括存储地址的每个比特位置的级。
16.权利要求14的存储系统,其中,至少一个级从一个比特位置和一个相邻较低比特位置处的地址数据中为存储器地址的这一比特位置得出译码地址数据。
17.权利要求14的存储系统,其中,至少一个级从冗余格式中为存储器地址的一个比特位置得出地址数据。
18.权利要求14的存储系统,其中,一个级输出与存储器地址的一个比特位置相关的译码地址线。
19.权利要求18的存储系统,其中,一个级输出一对译码地址线,一个代表当该级中进位为零时的非冗余和,另一个则代表当该级中进位为1时的非冗余和。
20.访问一个存储器中的数据的一种方法,该存储器由存储行组成,每个行分为第一和第二块,每个存储行都与预定宽度的地址相关,该方法包括为存储地址的每个比特位置及存储地址最低有效比特位置以下的至少两个比特位置接收冗余格式地址数据,对该冗余格式地址数据译码,并根据译码地址数据,驱动第一个块和第二个块。
21.权利要求20的方法,还包括,根据两个比特位置处的冗余格式数据,从所驱动的第一或第二个块之一中输出数据。
22.权利要求20的方法,其中存储行被组织为块中的碎块,且两个比特位置处的冗余格式地址数据代表一个编址碎块。
23.权利要求22的方法,其中,当编址碎块表明,所需数据可能位于一个存储行中的两个块中时,驱动步骤驱动该存储行中的第一和第二个块。
全文摘要
本发明提供了一个存储系统(200),该系统根据冗余格式地址数据检索数据。该存储系统(200)包括一个具有多个存储行(222)的存储器(220),和一个地址译码器(210),它根据一个冗余格式地址信号启动存储行(222)之一。一个冗余格式译码器(230)将冗余格式数据译码为一个存储地址的每个比特位置处的一个相异译码地址线对。两个相异对之一带有正确的地地址数据。以逐个存储行为基础,利用存储行自身的地址,确定要使用哪条地址线。冗余格式地址译码器(230)避免了完全加法,从而可以非常快速地存取存储器。
文档编号G11C8/00GK1325533SQ99812853
公开日2001年12月5日 申请日期1999年8月27日 优先权日1998年9月4日
发明者D·J·萨格尔 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1