具有冗余读出放大器的存储器转让专利

申请号 : CN201380011619.6

文献号 : CN104160453A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : M·R·赛宁根M·E·鲁纳斯

申请人 : 苹果公司

摘要 :

本发明公开了可减小读取弱数据存储单元时的误读可能性的存储器的实施例。该存储器可包括多个数据存储单元、列复用器、第一读出放大器和第二读出放大器,以及输出电路。第一读出放大器的增益电平可高于第二读出放大器的增益电平。输出电路可包括复用器,该复用器可用于可控地选择第一读出放大器和第二读出放大器的输出之一并传递所选择的读出放大器的值。输出电路可包括耦合第一读出放大器和第二读出放大器的输出的节点,并且第一读出放大器和第二读出放大器的输出能够被设置为高阻抗状态。

权利要求 :

1.一种装置,包括:

多个数据存储单元;以及

多个读取电路;

其中每个所述读取电路包括:

具有第一增益电平的第一读出放大器,所述第一读出放大器被配置为从所述多个数据存储单元中所选择的一个数据存储单元接收输入数据;以及具有第二增益电平的第二读出放大器,其中所述第二增益电平大于所述第一增益电平,所述第二读出放大器被配置为从所述多个数据存储单元中所选择的一个数据存储单元接收输入数据;以及输出电路,所述输出电路被配置为接收所述第一读出放大器的输出和所述第二读出放大器的输出,并对它们进行逻辑组合。

2.根据权利要求1所述的装置,其中所述第二增益电平高于所述第一增益电平。

3.根据权利要求1或2所述的装置,其中同时启用所述第一读出放大器和所述第二读出放大器。

4.根据权利要求1-3的任一项所述的装置,其中在选择第一数据存储单元时启用所述第一读出放大器,并在选择第二数据存储单元时启用所述第二读出放大器。

5.根据权利要求1或2所述的装置,

其中所述多个数据存储单元包括在多个列中,其中所述数据存储单元的每一给定数据存储单元被配置为使得响应于行选择信号的断言,所述给定数据存储单元生成列输出;

其中所述装置还包括被耦合以从所述多个列接收输入数据的列复用器,其中所述列复用器被配置为从所述多个列之一可控地选择数据以根据列选择信号生成列复用器输出;

其中为了从所述多个数据存储单元中所选择的一个数据存储单元接收输入数据,所述第一读出放大器被进一步配置为响应于第一控制信号的断言而将所述列复用器输出信号放大所述第一增益电平并生成第一读出放大器输出信号;

其中为了从所述多个数据存储单元中所选择的一个数据存储单元接收输入数据,所述第二读出放大器被进一步配置为响应于第二控制信号的断言而将所述列复用器输出信号放大所述第二增益电平并生成第二读出放大器输出信号;并且其中所述输出电路被进一步配置为基于输出选择信号对所述第一读出放大器输出信号和所述第二读出放大器输出信号进行逻辑组合。

6.根据权利要求5所述的装置,其中所述输出电路包括复用器,所述复用器被配置为根据所述输出选择信号可控地选择所述第一读出放大器输出信号或所述第二读出放大器输出信号。

7.根据权利要求5所述的装置,其中所述第一读出放大器被进一步配置为根据所述输出选择信号的第一状态而生成高阻抗输出,并且其中所述第二读出放大器被进一步配置为根据所述输出选择信号的第二状态而生成高阻抗。

8.根据权利要求7所述的装置,其中所述输出电路包括将所述第一读出放大器的所述输出耦合到所述第二读出放大器的所述输出的节点。

9.一种存储器电路,包括:

多个子阵列,每个子阵列包括如权利要求5所述的装置的实例;

定时和控制单元,被配置为生成所述第一控制信号、所述第二控制信号和所述输出选择信号;以及地址解码器,所述地址解码器被耦合以生成耦合到所述多个子阵列的多个行选择信号和耦合到所述多个子阵列的多个列选择信号,其中所述地址解码器被配置为接收输入地址,使得响应于所述输入地址的值,所述地址解码器断言所述行选择信号之一和所述列选择信号之一。

10.根据权利要求9所述的存储器电路,其中所述地址解码器包括存储阵列和被配置为将所述输入地址与所述存储阵列的内容进行比较的比较器。

11.根据权利要求10所述的存储器电路,其中所述地址解码器被进一步配置为在所述比较器检测到所述输入地址与所述存储阵列的内容之间的匹配时生成误读指示信号。

12.根据权利要求11所述的存储器电路,其中所述定时和控制单元被进一步配置为根据所述误读指示信号生成所述第一放大器启用信号、所述第二放大器启用信号和所述数据输出选择信号。

13.一种系统,包括:

一个或多个存储器;以及

耦合到所述一个或多个存储器的处理单元;

其中所述处理单元包括一个或多个存储阵列,每个所述存储阵列包括根据权利要求

1-4中任一项所述的装置的实例。

14.根据权利要求13所述的系统,其中所述处理单元包括测试单元,所述测试单元被配置为在测试模式期间提供第一放大器启用信号、第二放大器启用信号和输出数据选择信号,并且其中在根据权利要求1-4中任一项所述的装置的每个实例中,所述第一读出放大器被进一步配置为响应于所述第一放大器启用信号的断言而将所述输入数据放大所述第一增益电平,所述第二读出放大器被进一步配置为响应于所述第二放大器启用信号的断言而将所述输入数据放大所述第二增益电平,并且所述输出电路被配置为根据所述输出数据选择信号逻辑地组合所述第一读出放大器的所述输出或所述第二读出放大器的所述输出。

15.根据权利要求14所述的系统,其中所述测试单元被进一步配置为存储地址信息,所述地址信息指示选择了所述存储阵列中弱数据存储单元的地址。

16.一种方法,包括:

从数据存储单元接收输入数据;以及

根据控制输入利用具有第一增益电平的第一读出放大器或具有第二增益电平的第二读出放大器放大来自所述数据存储单元的数据,其中所述第二增益电平高于所述第一增益电平。

17.根据权利要求16所述的方法,还包括根据针对所述数据存储单元所检测到的单元强度,确定所述控制输入。

18.根据权利要求17所述的方法,还包括:

存储指示所检测到的单元强度的单元强度信息;以及

检查所存储的单元强度信息。

19.根据权利要求17或18所述的方法,还包括:

响应于所检测到的指示弱数据存储单元的单元强度,断言误读指示信号。

20.根据权利要求17-19的任一项所述的方法,其中所述放大还包括:响应于所检测到的指示弱数据存储单元的单元强度,选择所述第二读出放大器来放大存储于所述数据存储单元中的数据。

说明书 :

具有冗余读出放大器的存储器

技术领域

[0001] 本发明涉及存储器实现领域,更具体地涉及感测技术。

背景技术

[0002] 存储器通常包括多个数据存储单元,所述数据存储单元由构造在半导体基板上的互连晶体管构成。可以根据多种不同的电路设计类型来构建此类数据存储单元。例如,可将数据存储单元实现为耦合到电容器的单个晶体管以形成动态存储单元。作为另外一种选择,可采用交叉耦合反相器来形成静态存储单元,或者可使用浮栅MOSFET来创建非易失性存储单元。
[0003] 在半导体制造过程期间,光刻、晶体管掺杂物水平等的变化可能导致希望具有相同特性的存储单元之间的不同电气特性。由于反复操作设备,晶体管之内出现老化效应,而可能发生电气特性的其他变化。晶体管之间电气特性的这些差异可能导致数据存储单元针对所存储的相同数据输出不同的小信号电压。
[0004] 在一些情况下,给定数据存储单元的变化可能导致输出电压无法被读出放大器正确放大。在初始测试期间可能会将此类数据存储单元识别为硬故障,这将可能需要利用冗余数据存储单元进行替换以便实现制造产率目标。

发明内容

[0005] 本发明公开了存储器电路的各种实施例。在一个实施例中,存储器电路可包括数据存储单元、列复用器、具有第一增益电平的第一读出放大器、具有第二增益电平的第二读出放大器、以及输出电路。在一些实施例中,第二增益电平可高于第一增益电平。
[0006] 在一些实施例中,输出电路可包括复用器,并且复用器可用于可控地选择第一读出放大器的输出或第二读出放大器的输出。在其他实施例中,可以配置第一读出放大器和第二读出放大器,使得它们相应的输出可以进入高阻抗状态,并且输出电路可包括将第一读出放大器的输出耦合到第二读出放大器的输出的节点。
[0007] 在工作期间,可以在数据存储单元中存储测试数据。可利用第一读出放大器从数据存储单元读取数据并与初始测试数据比较。可利用第二读出放大器从数据存储单元读取数据并与初始测试数据比较。可利用这些比较的结果来确定数据存储单元的强度。可以存储指示数据存储单元强度的信息。
[0008] 在后续访问数据存储单元期间,可以检查所存储的针对数据存储单元的单元强度信息。如果所存储的针对数据存储单元的单元强度信息指示存储单元弱,则可利用第二读出放大器从数据存储单元读取数据。

附图说明

[0009] 以下详细描述参考了附图,现在简要描述附图。
[0010] 图1示出了数据存储单元的一个实施例。
[0011] 图2示出了用于对位线放电的可能波形。
[0012] 图3示出了存储器子阵列的一个实施例。
[0013] 图4示出了图3中所示实施例的一种可能操作方法。
[0014] 图5示出了存储器的一个实施例。
[0015] 图6示出了图5中所示实施例的一种可能操作方法。
[0016] 图7示出了测试存储器以发现弱位的一种可能方法。
[0017] 图8示出了用于读取存储器并将所存储的数据与先前加载的测试数据进行比较的一种可能方法。
[0018] 图9示出了计算系统的一个实施例。
[0019] 尽管本公开容易做出各种修改和替代形式,但附图中以举例的方式示出并将在本文中详细描述其具体实施例。不过应当理解,附图及具体实施方式并非旨在将本公开限制于例示的特定形式,正相反,其目的在于覆盖落在由所附权利要求限定的本公开的实质和范围之内的所有修改、等价要件和替代方案。本文使用的标题仅用于组织的目的,并非意在限制说明书的范围。如在整个本专利申请中所用的那样,以允许的意义(即,意味着具有可能性)而非强制的意义(即,意味着必须)使用“可以”一词。类似地,“包括”一词表示包括但不限于。
[0020] 各种单元、电路或其他部件可以被描述为“被配置为”执行一项任务或多项任务。在此类语境中,“被配置为”是一般表示“具有”在操作期间执行一项任务或多项任务的“电路系统”的结构的宽泛表述。如此,可以配置单元/电路/部件以在单元/电路/部件即使当前未接通时执行任务。通常,形成对应于“被配置为”结构的电路系统可包括硬件电路。
类似地,为了描述中方便,可将各种单元/电路/部件描述为执行一项任务或多项任务。此类描述应当被解释成包括短语“被配置为”。表述被配置为执行一项或多项任务的单元/电路/部件明确地旨在不援引35U.S.C.§112第六段对该单元/电路/部件的解释。更一般地,对任何元件的表述都明确旨在不援引35U.S.C.§112第六段针对该元件的解释,除非特别表述了“用于……的装置”或“用于……的步骤”这种语言。

具体实施方式

[0021] 在制造半导体存储器电路期间,光刻、注入水平等的差异可能导致本来希望在特性和性能方面相同的数据存储单元之间电气特性的差异。在一些情况下,数据存储单元电气特性的变化可能足够大,使得数据存储单元在存储器电路的正常工作状态下可能不工作(例如读取或写入),从而导致数据存储单元被识别为故障并需要用冗余数据存储单元替换。向存储器电路添加冗余数据存储单元来补偿电气特性不理想的数据存储单元可能会导致额外的芯片面积和功率消耗。下文例示的实施例可以提供技术来识别和补偿电气特性不理想的数据存储单元。
[0022] 图1示出了根据若干可能实施例之一的数据存储单元。在例示的实施例中,数据存储单元100包括表示为“bt”的真实I/O 102、表示为“bc”的补充I/O 103和表示为“wl”的选择输入101。
[0023] 在例示的实施例中,bt 102耦合到选择晶体管104,并且bc 101耦合到选择晶体管105。选择晶体管104和选择晶体管105受到wl 101的控制。选择晶体管104还通过节点110耦合到上拉晶体管108和下拉晶体管106,并且选择晶体管105还通过节点111耦合到上拉晶体管109和下拉晶体管107。上拉晶体管108和下拉晶体管106受到节点111的控制,并且上拉晶体管109和下拉晶体管107受到节点110的控制。
[0024] 需注意的是,尽管可将选择晶体管、上拉晶体管、下拉晶体管和预充电晶体管示为单独晶体管,但在其他实施例中,可利用多个晶体管或其他适当电路实现这些晶体管的任一种。即,在各种实施例中,“晶体管”可以对应于单独的晶体管或任何适当类型的开关元件(例如场效应晶体管(FET))或晶体管的集合。
[0025] 在开始存储操作时,真实I/O 102和补充I/O 103可以都为高,并且选择输入101为低。需注意的是,在这一实施例中,低是指地电势或近地电势的电压,并且高是指足以使得n沟道金属氧化物半导体场效应晶体管(MOSFET)导通和使得p沟道MOSFET截止的电压。在其他实施例中,可使用其他电路配置,并且构成低和高的电压可以不同。在存储或写入操作期间,可将选择输入101切换到高,以将真实I/O 102耦合到节点110和将补充I/O103耦合到节点111。为了将逻辑1存储到数据存储单元100中,可将补充I/O 103切换到低。由于选择晶体管105是导通的,因此节点111也被切换到低。节点111上的低电平激活上拉晶体管108,其将节点110充电到高电平。节点110上的高电平继而激活下拉晶体管
107,这进一步加强了节点111上的低电平,从而建立了再生反馈。一旦建立起节点110和
111之间的这种再生反馈,就可将选择输入101切换到低,从而截止选择晶体管104和选择晶体管105,并将节点110与真实I/O 102隔离以及将节点111与补充I/O 103隔离。存储逻辑0的方法可以是类似的。可将选择输入101切换到高,并且可将真实I/O 102切换到低。选择晶体管104将真实I/O 102上的低电平耦合到节点110,从而激活上拉晶体管
109。节点111上的高电平激活下拉晶体管106,从而加强了节点110上的低电平并建立了再生反馈。通常将经由再生反馈存储数据的数据存储单元称为静态单元。
[0026] 在例示的实施例中,数据存储单元100将其存储的数据输出为真实I/O102和补充I/O 103之间的电压差。(本文也可将作为两个电压之间的差异存储的数据称为“差分编码”。)在开始输出过程时,真实I/O 102和补充I/O 103可以都为高,选择输入101可以为低。断言(assert)选择输入101会激活选择晶体管104和选择晶体管105。如果节点111为低电平,并且节点110为高电平,那么电流将流经选择晶体管105和下拉晶体管107,从而导致补充I/O 103上的电压下降。如果节点110为低电平,节点111为高电平,那么电流将流经选择晶体管104和下拉晶体管106,从而导致真实I/O102上的电压下降。对于任一种数据状态,数据存储单元从真实I/O 102或补充I/O 103接收的电流都称为单元的读电流。
[0027] 理想情况下,下拉晶体管106和下拉晶体管107的电气特性将是相同的,如选择晶体管104和选择晶体管105的电气特性那样。此外,在理想的电路中,可能希望存储器设备中一个数据存储单元中的下拉晶体管106和下拉晶体管107具有与存储器设备中另一个数据存储单元中的下拉晶体管106和下拉晶体管107相同的电气特性。然而,在半导体制造过程期间,光刻中的差异、掺杂物水平的波动等可能导致这些晶体管具有不同电气特性(例如饱和电流)。例如,由例如热载流子注入诱发的老化效应也可能随时间改变晶体管的电气特性。由于制造和老化效应的原因,从一个数据存储单元到另一个数据存储单元的下拉晶体管106、下拉晶体管107、选择晶体管104和选择晶体管105的变化可能导致读电流的变化,从而相同的存储的数据的输出电压变化。
[0028] 在一些情况下,晶体管电气特性的变化可能导致读取存储单元时比平均值大的输出电压。可将生成比平均值大的输出电压的数据存储单元称为强单元。在一些情况下,晶体管电气特性的变化可能导致读取存储单元时比平均值小的输出电压。可将生成比平均值小的输出电压的数据存储单元称为弱单元。如果弱存储单元生成的输出电压值足够小,则可能无法正确确定数据存储单元中存储的数据,因为输出电压可能无法克服读出放大器之内的不平衡和信号噪声。
[0029] 需注意的是,图1中所示的晶体管数量和连接仅仅是例示性实例,在其他实施例中,可以采用其他数量、类型的晶体管和/或电路配置。还需注意的是,在其他数据存储单元实施例中,可以采用其他存储机制。例如,可使用电容器(例如,在动态随机存取存储器(DRAM)中)、晶体管植入物(例如,在耗尽可编程只读存储器(ROM)中)或浮栅结构(如在单一位或多位非易失性或闪速存储器中)在数据存储单元中存储数据。
[0030] 图2示出了图1所示的数据存储单元的实施例的操作所产生的可能波形。在时间t0205,断言选择输入101(波形201)。根据所存储数据的值,真实I/O 102或补充I/O 103将开始放电(波形203)。在时间t1206,由读出放大器放大真实I/O 102和补充I/O 103之间的小信号差别。可将包括一个或多个数据存储单元的系统模型化为电容器和电流源。电容器代表真实I/O 102或补充I/O 103上存在的总电容,可包括其他数据存储单元I/O端口的结电容和数据存储单元之间互连的电容。电流源是数据存储单元的读电流。利用这种模型,可利用公式1估计从时间t0到时间t1的走低I/O上的电压。
[0031]
[0032] 在时间和电压的有限范围内,可将读电流作为常数处理。这样能够如公式2所示简化公式。对于恒定负载电容而言,走低I/O上的电压变化与数据存储单元的读电流成比例。如果数据存储单元的读电流小于平均值,那么走低I/O上的电压变化将更小(波形204),从而在激活读出放大器时导致更小的差分电压。如果数据存储单元的读电流大于平均值,那么走低I/O上的电压变化将更大(波形202),从而在激活读出放大器时导致更大的差分电压。需注意的是,图2中所示的波形仅仅是例示性实例,并且在其他实施例中,不同的波形行为是可能的。
[0033]
[0034] 图3示出了存储器子阵列的实施例,其包括表示为“dout”的数据输出311、表示为“pchgb”的预充电控制输入316、表示为“saen1”的第一读出放大器启用输入308、表示为“saen2”的第二读出放大器启用输入309。例示的实施例还包括表示为“cs”的一个或多个列选择输入307和表示为“rs”的一个或多个行选择输入306。
[0035] 在例示的实施例中,列301a、301b、301c和301d通过位线312耦合到列复用器302的输入。列复用器302的差分编码的输出通过节点313a和313b耦合到第一读出放大器303和第二读出放大器304的差分输入。第一读出放大器303的输出和第二读出放大器304的输出耦合到输出电路305的输入,并且输出电路305的输出耦合到dout 311。
[0036] 每列301可包括一个或多个数据存储单元100。例如,列301之内每个数据存储单元100的各个位线bt 102可以耦合在一起以形成列301的真实位线312。同样地,列301之内的每个数据存储单元100的各个位线bc 103可以耦合在一起以形成列301的补充位线312。列301之内的每个数据存储单元100的各个字线wl 101可以耦合到行选择信号rs 306的相应一个,使得在断言给定rs 306时,相应的数据存储单元100在列301的真实位线和补充位线上创建差分编码的输出,而列301之内其余数据存储单元100的位线输出保持休眠。在其他实施例中,数据存储单元可以是动态存储单元、单一位或多位非易失性存储单元或掩模可编程只读存储单元。需注意的是,在一些实施例中,数据存储单元可以以单端方式传输数据。在这种情况下,仅需要每列单个位线。
[0037] 在一些实施例中,列复用器302可包含可由cs 307控制的一个或多个通过门。每个通过门的输入可以耦合到来自列301a、301b、301c和301d之一的真实或补充位线输出。耦合到真实位线的每个通过门的输出以连线或方式耦合到列复用器302的真实输出,并且耦合到补充位线的每个通过门的输出以连线或方式耦合到列复用器302的补充输出。在其他实施例中,列复用器302可以包含一个或多个被配置为执行复用器选择功能的逻辑门。
[0038] 在一些实施例中,第一读出放大器303和第二读出放大器304可使用模拟放大技术。在其他实施例中,第一读出放大器303和第二读出放大器304可以采用基于锁存器的放大技术。在一些实施例中,第一读出放大器303的增益电平和第二读出放大器304的增益电平可以相同,而在其他实施例中可以不同。
[0039] 在一些实施例中,例示的子阵列300可以如下工作。一起参考图3以及图4中所示的流程图,通过将pchgb 316设置为低电平,将rs 306、cs307、saen1 308和saen2 309设置到不活动状态,对子阵列进行初始化(框401),从而开始操作。一旦对子阵列300进行了初始化,就可以断言rs306之一(框402),选择列301a、301b、301c和301d的每个中的数据存储单元。然后可以断言cs 307之一(框403),使得列复用器302输出从位线312之一所选择的数据。
[0040] 操作然后取决于所选择的数据存储单元的强度(框404)。在所选择的数据存储单元具有正常强度时,可将saen1308设置为高电平,使得第一读出放大器303放大节点313a和313b上的数据,并输出节点315上的结果(框405)。然后可以断言dosel 310,使得输出电路305将节点315耦合到输出311。然后可以通过对saen1308以及已断言的rs 306和cs 307之一解除断言,并将pchgb 316设置为低电平,对子阵列300进行重新初始化(框401)。
[0041] 在所选择的数据存储单元弱时,可将saen2 309设置为高电平,使得第二读出放大器304放大节点313a和313b上的数据,并输出节点314上的结果(框406)。然后可以断言dosel 310,使得输出电路305将节点314耦合到dout 311。然后可以通过对saen2309以及已断言的rs 306和cs 307之一解除断言,并将pchgb 316设置为低电平,并对子阵列300进行重新初始化(框401)。
[0042] 图5示出了根据若干可能实施例之一的存储器。在例示的实施例中,存储器500包括表示为“dio”的数据I/O端口509、表示为“add”的地址总线输入512、表示为“mode”的模式选择输入511和表示为“clk”的时钟输入510。
[0043] 在例示的实施例中,存储器500包括子阵列501a、501b和501c,定时和控制单元502,地址解码器503和地址比较器504。子阵列501a、501b和501c可以结合上文参考子阵列300所述的一些或全部特征。耦合定时和控制单元502以向地址解码器503和地址比较器504提供解码器启用信号508,并向子阵列501a、501b和501c提供控制信号505。在一些实施例中,控制信号505可包括预充电信号、第一读出放大器启用信号、第二读出放大器启用和数据输出选择信号,它们可以如上文结合子阵列300所述的那样操作。
[0044] 耦合地址解码器503以响应于解码器启用信号508的断言和地址总线512上的地址值,向子阵列501a、501b和501c提供行选择506和列选择507。对地址比较器504进行耦合以基于add 512上的地址值与先前确定的地址值集合的比较向定时和控制单元502提供误读指示信号513,以选择子阵列501a、501b和501c中的弱数据存储单元。在一些实施例中,地址比较器504可包括被配置为存储选择弱数据存储单元的地址值的存储单元514。
[0045] 图6中示出了操作存储器500的一种可能方法。一起参考图5以及图6中所示的流程图,通过解除clk 510的断言以对存储器500进行初始化来开始操作(框601)。然后可以断言clk 510,使得定时和控制块502断言解码器启用508(框602)。地址解码器503然后可以响应于解码器启用508的断言对add 512上存在的地址解码(框603),使得行选择506之一和列选择507之一被断言(框604)。操作然后取决于存储器500是否处于测试模式中(框605)。在mode511指示存储器500处于测试模式中时,定时和控制单元502然后可以断言控制信号505中的适当信号以选择(框608)并激活(框61)子阵列501a、501b和501c中的第二读出放大器。第二读出放大器然后可以向dio 509输出放大的数据(框611),此时可以通过解除clk 510的断言对存储器500进行重新初始化(框601)。
[0046] 在mode511指示存储器500不在测试模式中时,地址比较器504针对先前确定的地址列表比较add 512上存在的地址以选择弱数据存储单元。在一些实施例中,地址列表可以包含于存储阵列514中。操作然后取决于在子阵列501a、501b和501c中所选择的数据存储单元的强度(框607)。在子阵列501a、501b和501c中所选择的数据存储单元是正常强度时,定时和控制单元502可以断言控制信号505中的适当控制信号,以选择(框609)并启用(框610)子阵列501a、501b和501c中的第一读出放大器。第一读出放大器然后可以向dio 509输出放大的数据(框611)。然后可以通过解除clk 510的断言对存储器500进行重新初始化(框601)。
[0047] 在子阵列501a、501b和501c中所选择的数据存储单元包含一个或多个弱数据存储单元时,地址比较器504可以断言误读指示信号513。定时和控制单元502然后可以断言控制信号505中的适当控制信号,以响应于误读指示信号513的断言来选择(框608)并启用(框610)子阵列501a、501b和501c中的第二读出放大器。第二读出放大器然后可以向dio 509输出放大的数据(框611),此时可以通过解除clk 510的断言对存储器500进行重新初始化(框601)。需注意的是,图6中所示的一些或全部操作可以按照不同次序进行或者可以同时进行而非相继进行。
[0048] 图7示出了操作存储器500以测试发现弱数据存储单元的一种可能方法。一起参考图5以及图7中所示的流程图,该操作开始于框701。将提供给add 512的值设置为零(框702)。操作然后取决于提供给add 512的值(框703)。在提供给add 512的值超过存储器500的最大地址时,测试结束(框707)。在提供给add 512的值小于存储器500的最大地址时,可将mode511设置为写入操作,可以向dio 509提供测试数据,并且可以断言clk 510,从而向由提供给add 512的值所选择的数据存储单元中写入测试数据(框704)。
[0049] 一旦加载了测试数据,就对存储器500进行重新初始化。可将mode511设置为读取和测试操作并断言clk 510,从而发起读取和比较操作,如将参考图8所述的(框705)。在完成读取和比较操作后,可以对存储器500进行重新初始化,并且可以增加提供给add 512的值(框706),并针对存储器500的最大地址检查该值(框703)。需注意的是,图7中所示的操作仅仅是例示性实例,并且在实际电路操作中,其他操作和操作次序也是可能的。
[0050] 图8中示出了操作存储器500读取和比较先前加载的测试数据的一种可能方法。一起参考图5以及图8中所示的流程图,可以通过对clk 510解除断言以对存储器500进行初始化来开始操作(框801)。可将mode511设置为正常读取操作,并且可以断言clk 510,使得定时和控制单元502断言解码器启用信号508。地址解码器503响应于解码器启用信号508的断言对提供给add 512的地址进行解码(框802),并断言行选择506之一和列选择507之一(框803),从而选择子阵列501a、501b和501c的每个中的数据存储单元。定时和控制单元502然后可以断言控制信号505中的适当信号,以激活子阵列501a、501b和
501c中的第一读出放大器(框804),使得第一读出放大器放大来自所选择的数据存储单元的数据并向dio 509输出放大的数据(框805)。
[0051] 操作然后取决于dio 509上的数据输出的值(框806)。在dio 509上的数据输出匹配初始加载的测试数据时,可将所选择的数据存储单元识别为正常(框807)。在这一测试流程中,不采取任何进一步动作,并且完成给定地址处数据存储单元的测试(框816)。在dio 509上的数据输出不匹配初始加载的测试数据时,可能需要进一步测试,并且可以解除clk 510的断言,从而对存储器500进行重新初始化(框808)。可以为测试读取操作设置mode511,并可以断言clk 510。响应于clk 510的断言,定时和控制单元602断言解码器启用508,使得解码器503对提供给add 512的地址进行解码(框809)。地址解码器503然后可以断言行选择506之一和列选择507之一,从而选择子阵列501a、501b和501c的每个中的数据存储单元(框810)。在一些实施例中,定时和控制单元502然后可以断言必要的控制信号505以激活子阵列501a、501b和501c中的第二读出放大器(框811),使得第二读出放大器放大来自所选择的数据存储单元的数据并向dio 509输出放大的数据(框812)。
[0052] 可将新读取的dio 509上的数据输出的值与初始加载的测试数据进行比较(框913)。在dio 509上的数据输出匹配初始加载的测试数据时,所选择的数据存储单元中的一个或多个可以是弱的。可将选择了这些数据存储单元的地址注释为包含弱单元(框
814)。可以完成在给定地址的测试操作(框816)。在dio 509上的数据输出不匹配初始加载的测试数据时,所选择的数据单元中的一个或多个可能包含硬故障。可将选择了这些数据存储单元的地址注释为包含硬故障(框815)。然后可以完成在给定地址的测试操作(框816)。在一些实施例中,可将选择了弱数据存储单元的地址加载到存储单元514中,使得在后续对存储器500进行读访问遇到所存储的地址时,地址比较器504断言误读指示信号513。需注意的是,在实际电路工作期间,图8中所示的一些或全部操作可以按照不同次序进行或者可以同时进行而非相继进行。
[0053] 现在转向图9,其示出了系统的框图。在例示的实施例中,系统900包括随机存取存储器(RAM)902和只读存储器(ROM)903的实例,其每者都可包括一个或多个子阵列,所述子阵列可以结合上文参考子阵列300所述的一些或全部特征。
[0054] 例示的实施例还包括CPU 901,其可包括一个或多个本地存储单元909。例如,CPU901可包括高速缓存数据RAM、标签RAM、一个或多个寄存器文件以及一个或多个FIFO。本地存储单元909的每个可包括一个或多个子阵列,所述子阵列可以结合上文参考子阵列300所述的一些或全部特征。在一些实施例中,CPU 901可包括被配置为操作所述子阵列的测试单元910。在其他实施例中,测试单元910还可以被配置为存储选择弱数据存储单元的地址。此外,例示的实施例包括I/O适配器905、显示器适配器904、用户界面适配器906和通信适配器907。
[0055] 一旦充分理解了以上公开,很多变型和修改对于本领域的技术人员而言将变得显而易见。本发明旨在将以下权利要求解释为涵盖所有此类变型和修改。