掌桥专利:专业的专利平台
掌桥专利
首页

存储器系统中执行地址故障检测的分层ROM编码器系统

文献发布时间:2024-04-18 19:53:33


存储器系统中执行地址故障检测的分层ROM编码器系统

技术领域

本发明公开了用于使用分层ROM编码系统在存储器系统中执行地址故障检测的各种实施方案。

背景技术

存储器系统在现代电子设备中是普遍的。重要的是,当存储或检索数据时,存储器系统以准确且可靠的方式操作。

图1示出了示例性的现有技术存储器系统100。阵列101包括多个存储器单元,该多个存储器单元按行和列布置。每行耦合到多个字线106中的一个字线,并且每列耦合到多个位线107中的一个位线。阵列101由行解码器102和列解码器103访问,该行解码器选择字线并且由此选择行,该列解码器选择位线并且由此选择列。存储器单元可以是易失性存储器单元(诸如DRAM或SRAM单元)或非易失性存储器单元(诸如闪存存储器单元)。

在此示例中,行解码器102和列解码器103各自接收地址A,该地址A是阵列101中选择用于读取或写入(程序)操作的地址。地址A包括行地址组件104和列地址组件105。例如,如果地址A包括8位[b0:b7],则行地址组件104可以包括前四位[b0:b3],并且列地址组件105可以包括后四位[b4:b7],反之亦然。在替代方案中,行地址组件104和列地址组件105可以使用解码算法从地址A导出。

行解码器102接收和解码行地址组件104,这使得多个字线106中的一个字线由行解码器102生效。如果行地址组件104是m位,然后将存在2

列解码器103接收并解码列地址组件105。在读取操作期间,列解码器103还接收来自阵列101中的所有位线107的信号。列解码器103使用列地址组件105来解码位线107以选择特定列,并且从该列感测的值作为输出提供。在写入(程序)操作期间,列解码器103接收输入并且响应于列地址组件而将其应用于由解码动作选择的位线。如果列地址组件105是n位,然后将存在2

以此方式,行地址组件104和列地址组件105选择用于读取或写入(程序)操作的特定存储器单元。

由于材料或随机环境干扰的缺陷,在读取或写入(程序)操作期间可能发生地址故障。具体地,可能发生的地址故障类型包括:

·实际选择的行和/或列对应于与地址A不同的地址;

·当打算选择行和/或列时,实际上未选择任何行和/或列;或者

·当仅打算选择一行和/或一列时,实际上选择多于一行和/或多于一列。

例如,如果地址A对应于字线0001,则相反地址故障可能导致选择字线0011(由于第二位的位翻转)。类似地,如果地址A对应于位线1100,则相反地址故障可能导致选择两个位线,诸如位线1100和1110。本领域普通技术人员将理解,如果未检测到或校正地址故障,则将发生错误读取或写入/程序操作。

图2示出了地址故障问题的现有技术解决方案。存储器系统200包括与图1中的存储器系统100相同的组件,以及ROM行编码器201、ROM列编码器202和比较器203。ROM行编码器201包括阵列101中的每行的一行ROM单元,并且ROM列编码器202包括阵列101中的每列的一行ROM单元。ROM行编码器201和ROM列编码器202的目的是提供可以用于识别地址故障的附加数据。

ROM行编码器201在图1中接收所有字线106,即解码行地址组件104,对应于ROM行编码器201中的行的每个字线,并且当在阵列101中选择特定行时,在ROM行编码器201中选择对应行,并且将数据205输出到比较器203。

ROM列编码器202从列解码器103接收可识别所选列的解码列信号,并且当在阵列101中选择特定列时,在ROM列编码器202中选择对应行,并且将数据206输出到比较器203。

在这种设计中,ROM行编码器201已经被编程为输出包括与所选行相关联的行地址组件的值,并且ROM列编码器202已经被编程为输出包括与所选列相关联的列地址组件的值。例如,在无地址故障发生的情况下,如果行地址组件104是“0010”,则ROM行编码器201将具有包括输出205中的位“0010”的对应输出,并且如果列地址组件105是“1111”,则ROM列编码器202将具有包括输出206中的位“1111”的对应输出。

现有技术设计的一个缺点是ROM行编码器201和ROM列编码器202需要显著的裸片空间。图3示出了现有技术ROM编码器300,其可以用于ROM编码器行201或ROM列编码器202。为简单起见,在此示例中,ROM编码器300含有对应于阵列101中的字线[WL0:WL3]的四行,其又对应于地址位[A1:A0]。对于本领域普通技术人员而言,ROM编码器300可以包括数量大得多的行和列。

通过设计,代替仅在两个位线中编码地址位[A1:A0],ROM编码器300还包括那些地址位的互补位。在此示例中,位[B1:B0]含有对应于地址位[A1:A0]的位,并且因此可以通过比较器203直接针对地址位[A1:A0]进行比较。位B3是位B1的补码,并且位B2是位B0的补码。除地址位本身之外,存储互补位使得系统能够稳健地识别发生的任何地址故障。在图3所示的特定配置中,每个地址位[A1,A0]组合的对应的生效的字线和输出将为:

表1:ROM编码器300的输入输出

再次参考图2,应用表1的示例,比较器203将来自输出205的位B1和B0与行地址组件104进行比较,特别是位A1和A0。比较器203还将来自输出205的位B3和B2与位B1和B0的倒数进行比较。使用ROM列编码器202和列地址组件105的输出206进行类似的比较。如果所有四个比较匹配,则无地址故障,并且标记204具有指示无地址故障的值(例如,“0”)。如果四个比较中的一个或多个比较不匹配,则存在地址故障,并且标记204具有指示地址故障的值(例如,“1”)。

表2含有基于地址位[0,0]的输入使用ROM编码器300的输出的地址故障的检测的示例。

表2:使用ROM编码器300的行地址故障检测

可以看出,此设计中需要8个交换机来编码两个地址位[A1,A0]的数据。更一般地,ROM编码器300中需要的交换机的数量等于:(可能的字线数量)x(地址中的位数),在此示例中该数量为4×2=8。在此,每个交换机用NMOS或PMOS晶体管实施。这些交换机利用大量的裸片空间。

需要一种改进的地址故障检测系统,该地址故障检测系统可以检测地址故障,同时利用比现有技术设计更少的组件和更少的裸片空间。

发明内容

本发明公开了用于使用分层ROM编码系统在存储器系统中执行地址故障检测的各种实施方案。在一个实施方案中,分层ROM编码系统包括两级ROM编码器,该两级ROM编码器用于检测地址故障。在另一个实施方案中,分层ROM编码系统包括三级ROM编码器,该三级ROM编码器用于检测地址故障。

附图说明

图1示出了现有技术存储器系统。

图2示出了具有地址故障检测系统的现有技术存储器系统。

图3示出了现有技术ROM编码器。

图4A示出了分层ROM编码器系统的实施方案。

图4B和图4C示出了利用图4A的分层ROM编码器系统的具有改进的地址故障检测系统的存储器系统的实施方案。

图5A和图5B示出了具有改进的地址故障检测系统的存储器系统的另一个实施方案。

图6A和图6B示出了具有改进的地址故障检测系统的存储器系统的另一个实施方案。

图7A和图7B示出了具有改进的地址故障检测系统的存储器系统的另一个实施方案。

具体实施方式

图4A示出了分层ROM编码器系统411。ROM编码器系统411包括ROM编码器的两级分层结构,具体地,ROM编码器401和ROM编码器402。ROM编码器系统411进一步包括逻辑块403,该逻辑块包括一组OR门。在此示例中,ROM编码器系统411含有对应于4位行或列地址[A3:A0]的16个字线。本领域普通技术人员将理解,ROM编码器系统411可以被构造成具有对应于行或列地址中的较多数量的位的较多数量的字线,或对应于行或列地址中的较少数量的位的较少数量的字线。

ROM编码器401中的每行对应于图1中的阵列101中的字线106中的一个字线,这里示出为字线[WL0:WL15]。逻辑块403也接收字线106。逻辑块403包括单独OR门,诸如OR门403-1和OR门403-2。在此示例中,每个OR门接收四个字线并在那些四个字线上执行“OR”功能。代替4输入OR门,逻辑块403替代地可利用其它数量的输入的OR门。每个OR门的输出(逻辑块输出)耦合到ROM编码器402中的相应行。因此,虽然ROM编码器401的输入是16个字线[WL0:WL15],但是ROM编码器402的输入是含有OR操作的结果的4线(WL0或WL1或WL2或WL3)、(WL4、WL5、WL6或WL7)、(WL8、WL9、WL10或WL11)以及(WL12、WL13、WL14和WL15)。

在此示例中,ROM编码器401接收所有16个字线(WL0至WL15),并使用图3中所示的相同位模式,每4行存储相同的位模式,其对应于地址中的至少2个有效位[A1:A0]。例如,存储在WL0至WL3中的位模式与存储在WL4至WL7中的位模式相同。这是因为每个4行分组存储与地址的2个最低有效位相关联的值。

ROM编码器402存储对2个最高有效位[A3:A2]的编码。那些2位基本上指示已经选择了4字线分组中的哪一个。相应OR门403-1、403-2(但不限于逻辑块403)的输出是对2个最高有效位(在此示例中为A[3:2])的解码。也就是说,由ROM编码器402接收的四个信号表示A[3:2]的四种可能组合。例如,如果A3=0并且A2=0,则将选择字线WL0、WL1、WL2和WL3中的一个字线,并且OR门403-1的输出将是“1”,其将使附接到OR门403-1的输出的ROM编码器402中的行生效,等等。

分层ROM编码器系统411还包括逻辑(未示出,但在后续图中示出),该逻辑用于将ROM编码器401和ROM编码器402的输出与地址A进行比较,其中ROM编码器401的输出含有地址和其补码的两个最低有效位,并且ROM编码器402的输出反映地址和其补码的两个最高有效位。逻辑还将所存储的补码与所存储的地址部分的倒数进行比较。

图4B和图4C示出了分层ROM编码器系统411在较大存储器系统中的用途。

在图4B中,存储器系统400包括阵列101、行解码器102和分层ROM编码器系统411,其在此被示出为进一步包括比较器404、比较器405、OR门406和标记407(其是行地址故障检测信号)。

在操作期间,ROM编码器401响应于其生效行而输出第一输出,并且响应于从逻辑块403接收到的信号,ROM编码器402响应于其生效行而输出第二输出。比较器404将第一输出与行地址组件104的第一部分进行比较,并且比较器405将第二输出与行地址组件104的第二部分进行比较。在一个示例中,比较器404还将第一输出的补码部分与第一输出的地址部分的倒数进行比较,并且比较器405还将第二输出的补码部分与第二输出的地址部分的倒数进行比较。比较器404和405的结果通过OR门406进行OR功能以生成标记407。标记407的第一值(例如,“1”)指示行地址故障,并且第二值(例如,“0”)指示无行地址故障。

图4C示出了图4B中描述的相同机制,但是用于列解码器103而不是行解码器102。存储器系统400包括阵列101并且进一步包括列解码器103和分层ROM编码器系统411',其在此被示出为进一步包括比较器404'、比较器405'、OR门406'和标记407'(其是列地址故障检测信号)。

在操作期间,ROM编码器401’响应于其生效行而输出第一输出,并且响应于从逻辑块403'接收到的信号,ROM编码器402’响应于其生效行而输出第二输出。比较器404'将第一输出与列地址组件105的第一部分进行比较,并且比较器405'将第二输出与列地址组件104'的第二部分进行比较。在一个示例中,比较器404'还将第一输出的补码部分与第一输出的地址部分的倒数进行比较,并且比较器405'还将第二输出的补码部分与第二输出的地址部分的倒数进行比较。比较器404'和405'的结果通过OR门406'进行OR功能以生成标记407'。标记407'的第一值(例如,“1”)指示列地址故障,并且第二值(例如,“0”)指示无列地址故障。

在图4B或图4C的示例中,ROM编码器401和401'各自需要32个交换机,ROM编码器402和402’各自需要8个交换机,并且逻辑块403和403’各自需要28个交换机以创建四个OR门,图4B和图4C中的每个图中总共68个交换机。使用单个ROM编码器的相同实施方式需要64个交换机用于检测行地址故障,并且需要64个交换机用于检测列地址故障,因此,对于16行的示例,在裸片空间中没有任何节省。然而,对于32行,与两个ROM编码器300中的每个ROM编码器的160个交换机相比,分层ROM编码器系统411和411’各自需要144个交换机,这节省了裸片空间。随着行的数量增加,节省增加,如下表3所示。

ROM编码器401和402的输出如何检测到地址故障的示例在表2中示出:

表2:分层ROM编码器系统411的输入输出

/>

图5A和图5B示出了存储器系统500。

在图5A中,存储器系统500包括阵列101、分层ROM编码器系统511和行解码器102。分层ROM编码器系统511包括ROM编码器的三级分层结构,具体地,ROM编码器501、ROM编码器503和ROM编码器505。分层ROM编码器系统511进一步包括逻辑块502(包括OR门)、逻辑块504(包括OR门)、比较器506、比较器507、比较器508、OR门509和标记510。

在图5B中,存储器系统500包括阵列101并且进一步包括分层ROM编码器系统511'和列解码器103。分层ROM编码器系统511'包括ROM编码器的三级分层结构,具体地,ROM编码器501'、ROM编码器503'和ROM编码器505'。分层ROM编码器系统511'进一步包括逻辑块502'(包括OR门)、逻辑块504'(包括OR门)、比较器506'、比较器507'、比较器508'、OR门509'和标记510'。

分层ROM编码器系统511和511'分别以与分层ROM编码器系统411和411'相同的方式操作,除了添加第三级。逻辑块504和504'分别接收来自ROM编码器503和503'的多位输出,并且对四个位的集合执行OR操作以生成逻辑块输出,该逻辑块输出然后分别用作ROM编码器505和505'的输入,其响应于其输入而生成第三输出。因此,ROM编码器503和503'分别含有的输入和行的数量为ROM编码器501和501’的四分之一,并且ROM编码器505和505'分别含有的输入和行的数量为ROM编码器503和503’的四分之一。

在操作期间,ROM编码器501和501'分别响应于其生效行而输出第一输出,ROM编码器502和502’分别响应于其生效行而输出第二输出,并且ROM编码器503和503’响应于其生效行而输出第三输出。比较器506和506'分别将第一输出与行地址组件104和列地址组件105的第一部分进行比较,比较器507和507'分别将第二输出与行地址组件104和列地址组件105的第二部分进行比较,并且比较器508和508'分别将第三输出与行地址组件104和列地址组件105的第三部分进行比较。比较器506、507和508的结果通过OR门509进行OR功能以生成标记510,该标记为行地址故障检测信号,并且比较器506'、507'和508'的结果通过OR门509'进行OR功能以生成标记510',该标记为列地址故障检测信号。标记510'的第一值(例如,“1”)指示地址故障,并且第二值(例如,“0”)指示无地址故障。

图6A和图6B示出了存储器系统600。在图6A中,存储器系统600包括阵列101、分层ROM编码器系统611和行解码器102。在图6B中,存储器系统600包括阵列101并且进一步包括分层ROM编码器系统611'和列解码器103。分层ROM编码器系统611包括ROM编码器的两级分层结构,具体地,ROM编码器601和ROM编码器602,并且分层编码器系统611'包括ROM编码器的两级分层结构,具体地,ROM编码器601’和ROM编码器602'。分层ROM编码器系统611进一步包括比较器603、比较器604、OR门605和标记606,并且分层ROM编码器系统611'进一步包括比较器603'、比较器604'、OR门605'和标记606'。值得注意的是,与分层ROM编码器系统511和511'不同,两个ROM编码器之间不需要单独的逻辑块。这是因为ROM编码器601替代地从行解码器102接收其输入,并且ROM编码器601'从列解码器103接收其输入,该列解码器执行单独的编码功能以替换存储器系统400中的逻辑块403或存储器系统500中的逻辑块502和/或504的OR门。

参考图6A,在操作期间,ROM编码器601响应于其生效行而输出第一输出,并且ROM编码器602响应于其生效行而输出第二输出。比较器603将第一输出与行地址组件104(或列地址组件105)的第一部分进行比较,并且比较器604将第二输出与行地址组件104(或列地址组件105)的第二部分进行比较。比较器603和604的结果通过OR门605进行OR功能以生成标记606。标记606的第一值(例如,“1”)指示行地址故障,并且第二值(例如,“0”)指示无行地址故障。

类似地,参考图6B,ROM编码器601’响应于其生效行而输出第一输出,并且ROM编码器602’响应于其生效行而输出第二输出。比较器603'将第一输出与列地址组件105的第一部分进行比较,并且比较器604'将第二输出与列地址组件105的第二部分进行比较。比较器603'和604'的结果通过OR门605'进行OR功能以生成标记606'。标记606'的第一值(例如,“1”)指示列地址故障,并且第二值(例如,“0”)指示无列地址故障。

每个设计所需的交换机/晶体管的总量总结在表3中:

图7A和图7B示出了存储器系统700。

在图7A中,存储器系统700包括阵列101、行解码器102和分层ROM编码器系统711。在图7B中,存储器系统700包括阵列101并且进一步包括列解码器103和分层ROM编码器系统711’。

分层ROM编码器系统711包括ROM编码器701、逻辑块702(包括NOR门)、ROM编码器703、逻辑块704(包括NAND门)、ROM编码器705、比较器706、比较器707、比较器708、OR门709和标记710(行地址故障检测信号)。类似地,分层ROM编码器系统711'包括ROM编码器701'、逻辑块702'(包括NOR门)、ROM编码器703'、逻辑块704'(包括NAND门)、ROM编码器705'、比较器706'、比较器707'、比较器708'、OR门709'和标记710'(列地址故障检测信号)。

分层ROM编码器系统711和711’分别类似于图5A和图5B中的分层ROM编码器系统511和511',除了逻辑块702和逻辑块702'包括NOR门,并且逻辑块704和704'包括NAND门,该NAND门可以减少与使用包括OR门的逻辑块502和502’和包括OR门的逻辑块504和504’相比所需的交换机数量,因为NOR门和NAND门需要比OR门更少的交换机。在图7A和图7B中,由于逻辑块的变化,ROM编码器701和705和701'和705'中的交换机由NMOS晶体管形成,并且ROM编码器703和703'中的交换机由PMOS晶体管形成,使得在选择每个编码器中的正确行的情况下执行正确的逻辑。

参考图7A,在操作期间,ROM编码器701响应于其生效行而输出第一输出,ROM编码器702响应于其生效行而输出第二输出,并且ROM编码器703响应于其生效行而输出第三输出。比较器706将第一输出与行地址组件104的第一部分进行比较,比较器707将第二输出与行地址组件104的第二部分进行比较,并且比较器708将第三输出与行地址组件104的第三部分进行比较。比较器706、707和708的结果通过OR门709进行OR功能以生成标记710,该标记为行地址故障检测信号。标记710的第一值(例如,“1”)指示行地址故障,并且第二值(例如,“0”)指示无行地址故障。

类似地,参考图7B,在操作期间,ROM编码器701’响应于其生效行而输出第一输出,ROM编码器702’响应于其生效行而输出第二输出,并且ROM编码器703’响应于其生效行而输出第三输出。比较器706'将第一输出与列地址组件105的第一部分进行比较,比较器707'将第二输出与列地址组件105的第二部分进行比较,并且比较器708'将第三输出与行地址组件104(或列地址组件105)的第三部分进行比较。比较器706'、707'和708'的结果通过OR门709'进行OR功能以生成标记710',该标记为列地址故障检测信号。标记710'的第一值(例如,“1”)指示列地址故障,并且第二值(例如,“0”)指示无列地址故障。

本领域普通技术人员将理解,分层ROM编码器系统可以使用本文所述的概念构建有多于3个级别(例如,n级)。

技术分类

06120116336353