存储器装置与其编程方法

文档序号:1289178 发布日期:2020-08-28 浏览:20次 >En<

阅读说明:本技术 存储器装置与其编程方法 (Memory device and programming method thereof ) 是由 刘亦峻 于 2019-05-16 设计创作,主要内容包括:本发明公开了一种存储器装置与其编程方法,该存储器装置(memory device)包括存储单元阵列(memory cell array)和存储器控制器(memory controller)。存储单元阵列包括多个存储区块(memory blocks)。各这些存储区块包括多条字线(Word lines)。多个记忆块(memory chunks)耦接到这些字线的至少其中之一。存储器控制器架构成通过执行块操作(chunk operation)将数据编程至多个记忆块的特定记忆块(particular memory chunk),该块操作包括从多条字线中选择特定字线(particular word line),从耦接到特定字线的多个记忆块中选择特定记忆块,并将编程电压施加到对应于特定记忆块的特定存储区块(particular memory block),以将数据编程到特定记忆块。(The invention discloses a memory device and a programming method thereof, wherein the memory device (memory device) comprises a memory cell array (memory cell array) and a memory controller (memory controller). The memory cell array includes a plurality of memory blocks (memory blocks). Each of these memory blocks includes a plurality of Word lines (Word lines). A plurality of memory blocks (memory banks) are coupled to at least one of the word lines. The memory controller is configured to program data to a specific memory block (specific memory chunk) of the plurality of memory blocks by performing a block operation (chunk operation) including selecting a specific word line (specific word line) from a plurality of word lines, selecting a specific memory block from the plurality of memory blocks coupled to the specific word line, and applying a program voltage to the specific memory block (specific memory block) corresponding to the specific memory block to program the data to the specific memory block.)

存储器装置与其编程方法

技术领域

本发明是有关于一种存储器装置(memory device),特别是涉及将数据 编程到存储器装置中的存储单元(memory cell)。

背景技术

在编程周期(programming cycle)期间,通过施加一组电压来编程存储 单元。特别是,为将数据编程到高密度存储器装置(high-density memory device)(例如高密度NAND快闪存储器装置(high-density NAND flash memory device)或NOR快闪存储器装置(NOR flash memory device)),在适 当周期(suitable periods)的不同时序(timings)中施加不同电平(levels)的电压 至存储器装置。

发明内容

本发明描述了将数据编程(program)到存储器装置(memory device)中 的存储单元(memory cell)的技术。特别是在存储器控制器(memory controller)将多级数据(multi-level data)编程到存储区块(memory blocks)中 的多个记忆块(memory chunks)的情况下,记忆块之间会发生干扰 (disturbance)。此外,在存储区块具有磨损(wear-out)或损坏(broken)状态的 情况下,存储区块更容易有干扰问题。如果记忆块之间存在干扰,则存储 器控制器无法正确地将数据编程到特定记忆块(particular memory chunk)。 因此,干扰会导致存储器装置中的可靠性(reliability)问题。此外,在存储 器装置需要高可靠性(high reliability)的情况下(例如存储器装置用于通信 设备),应该避免有干扰问题,以确保一定程度的可靠性。

本发明技术可以减少或基本上消除发生于存储器装置中的干扰问题。 特别是,存储器控制器获得关于存储区块错误率的数据,并确定存储器控 制器执行哪种编程操作。例如在存储区块具有高错误率的情况下,存储器 控制器可以执行单脉冲编程操作(one-shotprogramming operations),以避免 干扰。另一方面,在存储区块具有低错误率的情况下,存储器控制器可以 执行多级编程操作(multi-level programming operations),以提高编程操作的 效率。因此,该技术可在不降低存储器装置效率的前提下来提高存储器装 置的可靠性。

一般来说,本说明书所描述技术可以实施于存储器装置,该存储器装 置包含存储单元阵列(memory cell array)和存储器控制器。存储单元阵列包 括多个存储区块。各存储区块包括多条字线(word lines)。多个记忆块耦接 到这些字线的至少其中之一。存储器控制器架构成通过执行块操作(chunk operation)将数据编程至多个记忆块的特定记忆块,该块操作包括从多条字 线中选择特定字线(particular word line),从耦接到特定字线的多个记忆块 中选择特定记忆块,并将编程电压施加到对应于特定记忆块的特定存储区 块(particular memory block),以将数据编程到特定记忆块。

上述和其他实施方式可以各自选择性地(optionally)单独(alone)或组合(combination)包括以下技术特征中的一或多个。特别是,亦可有一种实施 方式包括以下所有特征的组合。存储器控制器可以架构成依序(sequentially) 从多条字线中选择特定字线。存储器控制器可架构成依序从多个记忆块中 选择特定记忆块。存储器控制器可架构成随机地(randomly)从多条字线中 选择特定字线。存储器控制器可架构成随机地从多个记忆块中选择特定记 忆块。存储器控制器可架构成通过提供12V和26V之间的编程电压,以对特定存储区块执行块操作。

存储器装置可以包括侦错电路(error detection circuit),该侦错电路架构 成探测发生于特定存储区块的一或多个错误,并产生错误率。当错误率满 足阈值(thresholdvalue)时,存储器控制器可以架构成执行块操作。

存储器装置可包括多条位线(bit lines),各这些位线分别耦接到多个记 忆块的一或多个记忆块。在块操作的单一周期(single cycle)期间,存储器 控制器可以架构成执行块操作至这些位线的一位线中的单一记忆块(single memory chunk)。

本说明书所描述技术可以实施于存储器装置,该存储器装置包括存储 单元阵列、侦错电路和存储器控制器。存储单元阵列包括多个存储区块。 各这些存储区块包括多条字线。多个记忆块耦接到这些字线的至少其中之 一。侦错电路架构成探测发生于存储区块的一或多个错误,并产生错误率。 存储器控制器架构成通过包括从侦错电路所获得的错误率的操作执行来 将数据编程到多个记忆块的特定记忆块。当错误率满足阈值时,存储器控制器决定特定存储区块的状态。根据特定存储区块的状态,存储器控制器 从第一编程操作(first programming operation)和第二编程操作(second programming operation)之间决定执行哪种编程操作,以及对特定存储区块 执行已决定的编程操作。

上述和其他实施方式可以各自选择性地单独或组合包括以下特征中 的一个或多个。特别是一种实施方式包括以下所有特征的组合。第一编程 操作可以包括从多条字线中选择特定字线,从耦接到特定字线的多个记忆 块中选择特定记忆块,并将编程电压施加到特定存储区块,以将数据编程 到特定记忆块。第二编程操作可以包括选择特定存储区块中的一或多个第 一记忆块、施加第一编程电压到特定存储区块来同时将数据编程到一或多个第一记忆块,选择特定存储区块中的一或多个第二记忆块,以及将施加 第二编程电压到特定存储区块来同时将数据编程到一或多个第二记忆块。

本说明书所描述技术可以用一方法来实施,在编程周期(programming cycle)期间,由存储器控制器来编程一或多个存储器装置的存储单元。该 方法包括由存储器控制器从存储器装置的存储单元阵列中的多个存储区 块的特定存储区块所包括的多条字线中选择特定字线,其中多个记忆块耦 接到这些字线的至少其中之一。存储器控制器从耦接到特定字线的多个记 忆块中选择特定记忆块。存储器控制器施加编程电压至对应于特定记忆块 的特定存储区块,以将数据编程到特定记忆块。

上述和其他实施方式可以各自单独或组合地选择包括以下特征中的 一个或多个。特别是一种实施方式包括以下所有特征的组合。选择特定字 线可以包括依序从多条字线中选择特定字线。选择特定记忆块可以包括依 序从多个记忆块中选择特定记忆块。选择特定字线可以包括随机地从多条 字线中选择特定字线。选择特定记忆块可以包括随机地从多个记忆块中选 择特定记忆块。施加的编程电压可以包括提供12V和26V之间的编程电压。

该方法可以包括用于存储器装置中的侦错电路来探测发生于特定存 储区块的一或多个错误。回应于所探测的一或多个错误,侦错电路可以产 生错误率。在错误率满足阈值时,存储器控制器可以施加编程电压至对应 于特定记忆块的特定存储区块,以将数据编程到特定记忆块。

在编程周期期间,从多个记忆块中所选择的特定记忆块可以包括在存 储器装置的多条位线的位线中所选择的单一记忆块。各这些位线可以耦接 到多个记忆块的一或多个记忆块。

所公开的一或多个实施方式的细节将搭配底下附图来进行说明。通过 说明书、附图和权利要求书,本发明的其他特征、方面和优点将变得显而 易见。

附图说明

图1示例说明存储器装置。

图2绘示存储器装置中的存储单元阵列。

图3A、图3B及图3C绘示存储器装置的示例记忆块。

图4A和图4B绘示对字线的记忆块执行编程操作的示例时序图。

图5A、图5B绘示对存储区块的字线执行编程操作的示例时序图。

图6绘示用于存储区块中的特定记忆块的单脉冲编程操作的示例图。

图7A、图7B绘示对特定存储区块执行编程操作的示例图。

【附图标记说明】

100、200:存储器装置

102:存储器控制器

104、204:存储单元阵列

106:侦错电路

108:储存器

310、320、330:记忆块

311、321:第一组存储单元

313、323:第二组存储单元

325:第三组存储单元

331、333、335、337、339:屏蔽区域

332、334、336:存储单元

BL0~BL63、BLN:位线

MC0~MC63、MC11~MCML:记忆块

WL0~WL7、WLM:字线

MB:存储区块

VverifyA、VverifyB、VverifyC:验证电压

VP1~VPn:编程电压

Vbypass:读取通过电压

具体实施方式

各附图中相同的参考编号和名称表示相同的元件。理应理解在图中所 示的各种示例性实施方式仅是说明性表示,并不需要按比例绘制。

可以对存储器装置(memory device)中的存储单元(memory cell)进行编 程(programmed)(例如于编程周期(programming cycle)期间,在适当的时间 周期(timeperiod)的特定时间(particular timing)中可通过施加适当电压至存 储单元来写入(written)、读取(read)或擦除(erased)来自存储单元的数据。

图1示例说明存储器装置。存储器装置100包括存储器控制器(memorycontroller)102和存储单元阵列(memory cell array)104。存储器控制器102 包括硬件(hardware)和软件(software)逻辑(logic),以执行各种操作 (operations),其包括编程存储单元阵列104,例如对存储单元阵列104的 写入、读取或擦除。在一些实施方式中,存储器控制器102包括一或多个 处理器(processors),以编程存储单元阵列104中的存储单元。例如,存储 器控制器102可以执行操作,以编程存储单元阵列104。通过存储器控制 器102可将操作储存于储存器(storage)。在一些实施方式中,操作可储存 于快闪存储器(flashmemory)或硬盘(hard disk)。在一些实施方式中,操作 可储存于储存器(例如储存器108)。在一些实施方式中,操作可储存于存 储单元阵列104的专用部分,该专用部分不同于待编程的存储单元。

在一些实施方式中,存储器装置100未包括存储器控制器102。在这 些实施方式中,存储器装置100可与存储器装置100外部的装置来进行通 信,并且外部装置(externaldevice)控制关于存储单元阵列104所执行的各 种操作。例如,外部设备可以包括一或多个计算机(computers),以对存储 单元阵列104执行编程操作。在一些实施方式中,控制信号可以通过适当 的输入/输出端(input/output ports)来传输至存储器设备100和外部设备之间。 在一些其它实施方式中,存储器装置100可以包括存储器控制器102,并 且该存储器装置100与外部设备进行通信,以对存储单元阵列104执行操 作。例如,可以由存储器控制器102来控制一些操作,并且可以由外部设 备来控制其他操作。

存储单元阵列104包括一或多个存储区块。在一些实施方式中,各这 些存储区块可包括多条字线。多个记忆块(memory chunks)可耦接到各字线。 记忆块可包括多个存储单元。在一些实施方式中,特定数量的存储单元组 成一个记忆块。例如,一个记忆块可以包括16、32或64个存储单元。搭 配图3A和图3B将更详细说明记忆块。

存储单元阵列104中的存储单元可以是单级存储单元(single-level cells) 或多级存储单元(multi-level cells)。在一些实施方式中,存储单元阵列104 包括非挥发性存储单元(nonvolatile memory cells),例如快闪存储单元(flash memory cells)。然而,存储单元阵列104可包括任何类型的存储单元,但 不限于2D NAND快闪存储单元(2D NANDflash memory cells)、包括U形 串列(U-shaped strings)的3D NAND快闪存储单元(3DNAND flash memory cells)、包括非U形串列的3D NAND快闪存储单元和NOR快闪存储单元(NOR flash memory cells)。

存储器装置100还包括侦错电路(error detection circuit)106。侦错电路 106分别探测存储单元阵列104中的各特定存储区块的错误。例如,侦错 电路106可以是错误位数(error bit count,EBC)电路,该错误位数电路计算 特定时间段内特定存储区块中所发生的错误数量。所计算出的错误数量可 以报告给存储器控制器102以使该存储器控制器102可以根据错误数量来 决定存储区块的状态。例如,在所计算出的错误数量未满足(例如小于)第 一阈值(a first threshold)的情况下,存储器控制器102可以决定存储区块的状态为良好。作为另一示例,在所计算出的错误数量满足(例如大于)第一 阈值但未满足(例如小于)第二阈值(a second threshold)的情况下,存储器控 制器102可以决定存储区块的状态为已磨损(wear-out)。作为另一示例,在 所计算出的错误数量满足(例如大于)第二阈值的情况下,存储器控制器102 可以决定存储区块的状态为破损(broken)。并非报告所计算出的错误数量, 侦错电路106可以报告存储区块的错误率(error rate)(例如每单位时间(per unit time)的错误数量)。存储器控制器102可以比较错误率与阈值错误率(athreshold error rate),以决定存储区块的状态。

在一些实施方式中,存储器控制器102可根据存储单元(cell)状态来执 行不同的编程操作。例如,在存储单元状态为良好情况下,存储器控制器 102可以对存储区块执行多级编程操作。作为另一示例,在存储单元状态 为已磨损或损坏的情况下,存储器控制器102可以对存储区块执行单脉冲 (one-shot)编程操作,而非多级编程操作。

在一些实施方式中,即使在存储单元状态良好的情况下,存储器控制 器102可对存储区块执行单脉冲编程操作。例如,在存储器装置100需要 高可靠性(highreliability)的情况下,存储器控制器102可以对存储区块执 行一次通过的编程操作,而不是多级编程操作。搭配图7A和图7B将更 详细说明多级编程操作和一次通过的编程操作。

在一些实施中,存储器装置100还可以包括储存器108,以用于储存 在编程存储单元阵列104的存储单元所需的信息。例如,该信息可包括执 行编程操作的电压数据,用以定义在一个或多个时间周期内对存储单元阵 列104施加特定电压电平(particular voltagelevels)的时序数据(timing data)。 对存储单元阵列施加不同电压电平的时序数据可能有多种格式(formats), 例如特定电压电平的开始时间(start timing)和结束时间(endtiming),或者是 特定电压电平的开始时间和持续时间(durations)。储存器108可以是任何 合适类型的储存器。例如,储存器108可以是静态随机存取存储器(static randomaccess memory,SRAM)、NAND快闪存储器(NAND flash memory) 或一组暂存器(registers)。在一些实施方式中,储存器108可以是暂存器。 在一些实施方式中,储存器108可实施为存储单元阵列104的一部分,其 可不同于待编程的存储单元。

图2绘示存储器装置200中的存储单元阵列204。例如,存储单元阵 列204可以是图1的存储单元阵列,以及存储器装置200可以是图1的存 储器装置100。为方便起见,图2所绘示的存储器装置200仅包括存储单 元阵列204。然而,如同图2的存储器装置100,存储器装置200可以包 括任何合适的元件,像是如图1所述的存储器控制器和储存器。

存储单元阵列204包括多个存储区块。例如,存储单元阵列204可包 括特定数量的存储区块MB0-MBX-1(例如X={2,3,4,...})。存储器装置 200的存储器控制器可将数据编程到存储区块MB0-MBX-1中的一或多个 存储单元。在一些实施方式中,存储区块MB0-MBX-1可以具有相同结构。 在一些实施方式中,存储区块MB0-MBX-1的一些存储区块可以具有相同 结构,并且存储区块MB0-MBX-1的其他存储区块可以具有不同结构。

存储区块MB0-MBX的各存储区块包括多条字线。例如,存储区块 MB1可以包括字线WL0-WLY-1(例如Y={2,3,4,...})。在一些实施方式中, 存储区块MB0-MBX-1的其他存储区块也可以包括相同数量的字线。在一 些实施方式中,存储区块MB0-MBX-1的其它存储区块可包括不同数目的 字线。例如,在存储区块MB1包括128条字线的情况下,存储区块MB0 可以包括64条字线。

字线WL0-WLY-1的各字线包括多个记忆块。例如,字线WL1可以包 括记忆块MC0-MCZ-1(例如Z={2,3,4,...})。在一些实施方式中,字线 WL0-WLY-1的其它字线也还可包括相同数目的字线。例如,各这些字线 WL0-WLY-1可以包括128个记忆块。在一些实施方式中,字线WL0-WLY-1 的其它字线可包括不同数目的字线。例如,在字线WL1包括128个记忆 块的情况下,字线WL0可以包括64个记忆块。

图3A和图3C绘示存储器装置的示例记忆块。记忆块包括多个存储 单元。在一些实施方式中,记忆块可以包括一组存储单元,其用于储存数 据。在一些实施方式中,记忆块可以包括多组存储单元,分别用于储存数 据或者当成冗余(redundancy)。在一些实施方式中,记忆块还可包括一或多 个屏蔽区域(shielding areas)以保护用于储存数据的存储单元。

图3A绘示记忆块的第一示例。例如,图3A的记忆块310可以是图2 的记忆块MC0-MCZ-1的一记忆块。在此示例中,记忆块310包括用于储 存数据的第一组存储单元311以及当成冗余(例如错误校正码 (error-correction code,ECC))的第二组存储单元313。也就是说,存储器控 制器可以将数据编程到第一组存储单元311,并且将ECC储存第二组存储单元313内,ECC用于探测或校正内部损坏数据(internal data corruption)。 在一些实施方式中,第一组存储单元311或第二组存储单元313可包括单 一存储单元(single memorycell)。

图3B绘示记忆块的第二示例。例如,图3B的记忆块320可以是图2 的记忆块MC0-MCZ-1的一记忆块。在此示例中,记忆块320包括用于储 存第一数据的第一组存储单元321、用于储存第二数据的第二组存储单元 323以及当成冗余(例如奇偶校验(parity))的第三组存储单元325。由于记忆 块320包括两组存储单元321和323,存储器控制器可以将不同数据(例如 数据1或数据2)分别编程到第一组存储单元321或第二组存储单元323。 此外,存储器控制器可以利用第三组存储单元325作为奇偶校验。在存储 器控制器无法将数据编程到第一组存储单元321或第二组存储单元323的 情况下,存储器控制器可以利用储存于第三组存储单元325的数据来创建 替代储存区域(replacement storage area)。在一些实施方式中,第一组存储 单元321、第二组存储单元323或第三组存储单元325可包括单一存储单 元。

图3C绘示记忆块的第三示例。例如,图3C的记忆块330可以是图2 的记忆块MC0-MCZ-1的一记忆块。在该示例中,记忆块330包括分别用 于储存数据(例如一位数据)的多个存储单元332、334和336,以及多个屏 蔽区域331、333、335、337。这些存储单元的各存储单元由各自的屏蔽区 域来保护。例如,存储单元332被屏蔽区域331和333所保护,存储单元334被屏蔽区域333和335所保护,并且存储单元336被屏蔽区域337和339所保护。在一些实施方式中,记忆块的存储单元(例如存储单元332、 334和336)分别耦接到位线。关于图3C,记忆块330包括n(n=2,3,4,...) 个存储单元,其分别耦接到n条位线。例如,当n=8,则记忆块330包括 分别耦接到8条位线的8个存储单元。在一些实施方式中,记忆块中的存 储单元数量与存储区块中的字线数目相同。在这种情况中,例如在一个记 忆块包括8条字线的情况下,存储区块的记忆块包括分别耦接到8条位线 的8个存储单元。

在一些实施方式中,当存储器控制器编程记忆块330时,存储器控制 器在一个编程周期期间仅编程记忆块330中的一个存储单元。例如,在一 个编程周期中,存储器控制器可以仅编程存储单元332,而在另一编程周 期中编程另一个存储单元334。通过在一个编程周期中编程一个存储单元, 可以防止耦接到相同记忆块的相邻位线之间所发生的错误。

当存储器控制器对除了存储单元332、334和336之外的存储单元执 行读取操作(reading operations)或编程操作时,屏蔽区域331、333、335、 337和339可以保护在存储单元332、334和336中所编程的数据。虽然图 3C绘示由屏蔽区域所保护的一个存储单元,由屏蔽区域所保护的存储单 元数量不限于特定数量。在一些实施方式中,可以由屏蔽区域保护多个存 储单元。例如,不只保护存储单元332,屏蔽区域331和333可以保护两 个或更多存储单元。

图4A和图4B绘示对字线中的记忆块执行编程操作的示例时序(timing) 图。例如,绘示于图4A和图4B的存储区块MB可以是绘示于图2的存 储区块MB1。为方便起见,绘示于图4A和图4B的存储区块MB包括8 条字线和64个记忆块。然而,字线和记忆块的数量不限于特定数量,并 且可以是任何适当的数量。在此示例中,存储区块MB包括多条字线 WL0-WL7。这些字线WL0-WL7的各字线包括多个记忆块MC0-MCM63。 字线WL0-WL7中的记忆块MC0耦接到位线BL0,字线WL0-WL7中的 记忆块MC1耦接到位线BL1,字线WL0-WL7中的记忆块MC2是耦接到 位线BL2,字线WL0-WL7中的记忆块MC3耦接到位线BL3,字线 WL0-WL7中的记忆块MC4耦接到位线BL4,记忆块MC5in字线WL0-WL7耦接到位线BL5,字线WL0-WL7中的记忆块MC6耦接到位线 BL6,字线WL0-WL7中的记忆块MC7耦接到位线BL7,…,以及字线 WL0-WL7中的记忆块MC63耦接到位线BL63。虽然所述的记忆块耦接到 一条位线,但耦接到记忆块的位线数量不限于一条。任意适当数量的位线 可以耦接到记忆块。例如,8条位线可以耦接到记忆块MC0。

图4A绘示对字线中的记忆块执行编程操作的第一示例时序图。在此 示例中,存储器控制器(例如图1中的存储器控制器102)可以特定顺序 (particular order)将数据编程到记忆块,例如,在连续周期中,依序(sequential order)来编程字线中的相邻记忆块(adjacent memory chunks)。

当存储器控制器将数据编程到存储区块MB中的记忆块时,在一个周 期期间,存储器控制器将数据编程到一条位线中的单一记忆块(single memory chunk),使得干扰(disturbance)不会传播到位线。例如,在周期T 期间,存储器控制器可以同时将数据编程到字线WL0中的记忆块MC0、 字线WL1中的记忆块MC1、字线WL2中的记忆块MC2、字线WL3中的记忆块MC3、字线WL4中的记忆块MC4、字线WL5中的记忆块MC5、 字线WL6中的记忆块MC6以及字线WL7中的记忆块MC7。

在下一个周期T+1期间,存储器控制器依序地编程记忆块(例如在周 期T期间,将数据编程到邻近于立即编程这些记忆块的记忆块)。例如, 在周期T+1期间,存储器控制器可以将数据编程到字线WL0中的记忆块 MCl、字线WLl中的记忆块MC2、字线WL2中的记忆块MC3、字线 WL3中的记忆块MC4、字线WL4中的记忆块MC5,字线WL5中的记忆 块MC6,字线WL6中的记忆块MC7以及和字线WL7中的记忆块MC8。 在一些实施方式中,可以使用不同顺序将数据编程到记忆块。在一些实施 方式中,存储器控制器可以在多个周期期间编程字线中的所有记忆块。例 如,在64个周期期间,存储器控制器可以将数据编程到字线中的64个记 忆块。

图4B绘示对字线中的记忆块执行编程操作的第二示例时序图。在此 该示例中,存储器控制器(例如图1的存储器控制器102)能以随机顺序 (random order)将数据编程到各字线中的记忆块。在一些实施方式中,虽然 以随机顺序来执行编程操作,但存储器控制器不会对在一先前编程周期 (previous programming cycles)内已编程记忆块进行编程。

当存储器控制器将数据编程到存储区块中的记忆块时,存储器控制器 在一个周期期间将数据编程到一条位线中的单一记忆块,使得干扰不会传 播到位线。例如,在周期T期间,存储器控制器可以将数据编程到字线 WL0中的记忆块MC3、字线WL1中的记忆块MC0、字线WL2中的记忆 块MC5、字线WL3中的记忆块MC1、字线WL4中的记忆块MC6、字线 WL5中的记忆块MC4、字线WL6中的记忆块MC2、字线WL7中的记忆 块MC7。

在下一个周期T+1期间,存储器控制器可以将数据编程至周期T期间 未被编程的记忆块。此外,存储器控制器在一个周期期间将数据编程到一 条位线中的单一记忆块。例如,在周期T+1期间,存储器控制器可以将数 据编程到字线WL0中的记忆块MC0、字线WL1中的记忆块MC2、字线 WL2中的记忆块MC6、字线WL3中的记忆块MC5、字线WL4中的记忆 块MC4、字线WL5中的记忆块MC7、字线WL6中的记忆块MC1、字线 WL7中的记忆块MC3。在一些实施方式中,存储器控制器可以在多个周 期期间对字线中的所有记忆块进行编程。例如,在64个周期期间,存储 器控制器可以将数据编程到字线中的64个记忆块。

图5A、图5B绘示对存储区块的字线执行编程操作的示例时序图。例 如,绘示于图4A和图4B的存储区块MB可以是绘示于图2的存储区块 MB1。为方便起见,绘示于图4A和图4B的存储区块MB包括8条字线。 然而,字线数量不限于特定数量,并且可以是任何适当的数量。

图5A绘示对存储区块MB的字线执行编程操作的第一示例时序图。 存储区块MB包括多条字线WL0-WL7。在此示例中,存储器控制器(例如 图1的存储器控制器102)以特定顺序(例如依照字线的顺序)来选择字线, 以编程字线的记忆块。

如图5A所示,在周期T期间,存储器控制器选择字线WL1来将数 据编程到字线WL1中的一个或多个记忆块。在下一个周期T+1期间,存 储器控制器依序地选择字线(例如字线WL1旁边的字线WL2),以将数据 编程到字线WL2中的记忆块。

然而,在一些实施方式中,使用不同顺序来选择字线。例如,存储器 控制器可以在周期T期间选择字线WL1,在周期T+1期间选择字线WL3, 并且在周期T+2期间选择字线WL5。在一些实施方式中,存储器控制器 架构成一组周期数量(a set number of cycles)内选择所有字线。例如,在各 周期内,存储器控制器可以选择先前未选择的字线,直到选择所有字线。 此时,该过程可以重置。例如,在8个周期期间,存储器控制器可以选择 8条字线。

在一些实施方式中,如参照图5B的描述,存储器控制器(例如图1的 存储器控制器102)以随机顺序来选择字线,以编程记忆块。在这种情况下, 尽管以随机顺序来执行编程操作,但存储器控制器不会对在一先前编程周 期内已编程的字线进行编程。

如图5B所示,在周期T期间,存储器控制器选择字线WL1,以将数 据编程到字线WL1中的一或多个记忆块。在下一个周期T+1期间,存储 器控制器以随机顺序来选择另一条字线(例如在周期T期间未选择的字线 WL5),以将数据编程到字线WL5中的记忆块。在周期T+2期间,存储器 控制器尚可随机地选择另一条字线(例如在先前周期T和T+1期间未选择 的字线WL3),以将数据编程到字线WL3中的记忆块。在一些实施方式中, 存储器控制器架构成多个周期内选择所有字线。例如,在各周期中,存储 器控制器可以选择先前未选择的字线,直到已经选择了所有字线。此时, 该过程可以重置。例如,存储器控制器可以在8个周期期间选择8条字线。

图6绘示用于存储区块中的特定记忆块(particular memory chunk)的单 脉冲编程操作的示例图。图6的存储区块MB可以是图2的存储区块MB1。 存储区块MB包括多条字线WL1、WL2、...、WLM(M=2,3,4,...)。各这些 字线包括多个记忆块。例如,字线WL2包括L(L=2,3,4,...)个记忆块MC21、 MC22、...MC2L。在一些实施方式中,记忆块耦接到特定数目的位线。例 如,各记忆块MC12、MC22、...MCM2中可以耦接到N(N=2,3,4,...)条位 线BL1-BLN。在一些实施方式中,这些记忆块的各记忆块MC21、 MC22、...MC2L耦接到相同数目的位线。在其他实施方式中,这些记忆块 的不同记忆块MC21、MC22、...MC2L耦接到不同数量的位线。

在该示例中,侦错电路(例如图1的侦错电路106)探测存储区块MB 的错误率,并将错误率报告至存储器控制器(例如图1的存储器控制器102)。 在一些实施方式中,侦错电路106可以报告存储区块的错误率(例如每单位 时间的错误数量),而非报告所计算出的错误数量。根据存储区块MB的 错误率,存储器控制器决定存储区块MB的状态(例如存储器控制器102 可以将错误率与阈值错误率进行比较,以决定存储区块的状态)。

一旦存储器控制器决定存储区块MB的状态,存储器控制器将可以决 定执行哪种编程操作来将数据编程到存储区块MB。例如,在存储区块 MB的状态为磨损或不良的情况下,存储器控制器可以决定执行一次通过 的编程操作,以将数据编程到存储区块。在其它情况中,在存储区块MB 状态良好的情况下,存储器控制器可以决确定执行多级编程操作,以将数 据编程到存储区块MB。在一些实施方式中,即使在存储区块MB状态良 好的情况下,若存储器装置需要高可靠性,则存储器控制器可以决定执行 一次通过的编程操作,以将数据编程到存储区块MB。在一些实施方式中, 单脉冲编程操作也称为块操作,其中,通过施加编程电压至包含特定记忆 块的存储区块,耦接到字线的多个记忆块的一特定记忆块是在编程周期内 被编程。

在存储器控制器决定要执行块操作或一次通过的编程操作的情况中, 存储器控制器使用参考图5A与图5B所述的方法来选择存储区块MB中 的特定字线,以及使用关于图4A与图4B所述的方法来选择已选定字线 (selected word line)中的特定记忆块。例如,在一些实施方式中,存储器控 制器以选定字线的顺序来选择各条字线,如图5A所述。在其他实施方式 中,存储器控制器以选定字线的随机顺序来选择各条字线,如图5B所述。 在任一情况下,在一些实施中,于连续编程周期中,存储器控制器依序对 相关于选定字线的这些记忆块进行编程(如图4A所述)。然而,在其他实 施方式中,于连续编程周期中,存储器控制器以随机顺序将相关于选定字 线的这些记忆块进行编程(如图4B所述)。

在一些实施方式中,在单脉冲编程操作中,在一周期内,存储器控制 器对耦接到多条位线的多个记忆块中的一记忆块进行编程。例如,如图6 所示,多个记忆块MC12、MC22、...MCM2耦接到一组位线BL1,...,BLN。 在此示例中,在执行块操作时,存储器控制器在特定编程周期中将数据编 程到耦接到位线BL1,...,BLN的记忆块MC12、MC22、...MCM2的一个。 通过在一个周期内,编程单一记忆块,可以显着减少或消除耦接到相同位 线的多个记忆块之间所发生的干扰。这提高存储器装置的可靠性 (reliability)。

在一些实施方式中,存储器控制器根据特定规则(rules)来执行块操作。 例如,存储器控制器可以根据以下规则来执行块操作:

规则1:0≤XM≤M

规则2:X1+X2+...+XM≤M

XM表示特定字线WLM(M=1,2,3,...)的已编程记忆块(programmed memorychunks)数量。例如,X1表示字线WL1的已编程记忆块数量,而 X2表示字线WL2的已编程记忆块数量。为了验证编程操作是否已正确执 行,存储器控制器计算各字线的已编程记忆块数量。例如,如图6所示, 对于字线WL1,记忆块MC11-MC1L的任一记忆块未被编程。对于字线WL2,在记忆块MC21-MC2L之中,记忆块MC22已经编程。对于字线 WLM,在记忆块MCM1-MCML之中,记忆块MCM1和MCML已经编程。 根据计算,存储器控制器决定X1为0,X2为1,以及XM为2。假设M=192, 存储器控制器决定X1,X2和X192满足规则1以及X1+X2+...+X192 满足规则2。因此,存储器控制器可以根据规则来验证这些记忆块已经正 确编程。

图7A、图7B绘示对特定存储区块执行编程操作的示例图。在此示例 中,存储器控制器(例如图1的存储器控制器102)可以执行编程操作,以 将数据编程到存储区块(例如图6的存储区块MB)。

图7A绘示在一个编程周期期间执行多级编程操作的示例图。编程周 期包括多个阶段(stages)400。在各阶段中,存储器控制器提供编程电压脉 冲,接着是一系列验证电压脉冲。阶段400的数量可以等于存储单元能编 程的数据状态数量(或者比包含擦除状态(erase state)的状态总数少一个)。 例如,如果可以将存储单元编程为数据A、数据B或数据C,则可以有三 个阶段。

如果存储器控制器正在编程目标字线,则施加编程电压脉冲到目标字 线。例如,存储器控制器可以在第一阶段施加编程电压VP1,在第二阶段 施加编程电压VP2等。各连续阶段的编程电压可以大于前一阶段的编程电 压。

如果目标字线中的存储单元需要保持其当前状态(present state)(擦除 或处于特定数据状态(given Data state)的其中之一),则存储器控制器施加 “开(on)”或“高(high)”电压(例如Vcc电压)到存储单元的位线。这将抑 制(inhibit)存储单元的编程。否则,例如若编程目标字线中的存储单元,则 存储器控制器将接地线(ground)施加于存储单元的位线上。这将编程所选 定的存储单元(selected cell)。

在各阶段内,施加编程电压脉冲之后,存储器控制器施加一系列验证 电压脉冲。验证电压脉冲的数量可以等于能设置存储单元的数据状态数量 (或者比包含擦除状态的状态总数少一个)。例如,如果有四种状态(数据A、 数据B、数据C和擦除),则存储器控制器可施加三个验证电压脉冲,个 别具有验证电压VverifyA、VverifyB和VverifyC。各验证电压脉冲的验证电压可 以大于前一个验证电压脉冲的验证电压。各验证电压可以与各自的数据状 态相关联。例如,验证电压VverifyA、VverifyB和VverifyC可分别与数据A,数 据B,数据C相关联。

使用验证电压脉冲,存储器控制器可以确认特定存储单元(given cell) 的阈值电压是否已达到验证电压。如果存储单元的电压阈值已达到与存储 单元所需数据相关联的验证电压,则不在下一阶段编程存储单元。另一方 面,如果存储单元的电压阈值尚未达到与存储单元所需数据相关联的验证 电压,则在下一阶段编程存储单元。例如,若存储器控制器要编程存储单 元至数据B,则存储器控制器可以在各编程脉冲之后确认存储单元的阈值 电压是否已达到VverifyB。如果存储单元的阈值电压已达到VverifyB,则在下 一阶段期间不该编程存储单元,所以存储器控制器应施加Vcc到位线上。 另一方面,如果存储单元的阈值电压尚未达到VverifyB,则在下一阶段期间, 存储器控制器应将接地线施加于位线上,以编程存储单元。

图7B绘示在一个编程周期内执行块编程操作或一次通过的编程操作 的示例图。在编程周期期间,存储器控制器提供编程电压VP来将数据编 程到存储区块的特定记忆块(例如图6的记忆块MC1)。在此示例中,由于 存储器控制器利用编程电压VP(例如,高于编程电压VP1的电压)来编程 数据,则不需要数据擦除程序。当使用编程电压VP来编程数据时,编程 于记忆块的数据可以不用额外的擦除程序来擦除。此外,由于存储器控制 器将数据编程到单一记忆块,则不需要多个程序来编程多级数据(例如数据 A、数据B和数据C)。因此,存储器控制器所执行的编程操作的速度快于 多级编程操作。此外,存储器控制器将数据编程到单一记忆块,使得两个 记忆块之间的干扰不会发生于存储区块中。在一些实施方式中,编程电压 VP设定为介于12V(伏特)与26V之间的值。

关于图7A与7B图,擦除电压电平和编程电压电平之间的间隙(gap) “间隙B”大于擦除电压电平和最低编程电压电平之间的间隙“间隙A”。 因此,通过减少或消除读取干扰,利用图7B的一次通过的编程方法所编 程的存储器装置相较于利用图7A的方法来编程的存储器装置具有更大的 容许偏差(tolerance)。

本发明和其他示例可以实现为一个或多个计算机编程产品(computer programproducts),例如,在计算机可读取介质(a computer readable medium) 上执行编码(encoded)的一或多个计算机编程操作模块(modules of computer programoperations),或者是控制数据处理设备(data processing apparatus) 的操作。该实施可包括算法的单一或分散式(distributed)演算法处理 (processing of algorithms)。计算机可读取介质可以是机器可读取储存装置 (machine-readable storage device)、机器可读储存基板(machine-readable storage substrate)、存储器装置、或是一或多个的组合。术语“数据处理设 备”包括用于处理数据的所有设备、装置和机器、由可编程处理器(programmable processor)、计算机或多个处理器或计算机所包括的示例方 式。除了硬件之外,设备可以包括代码(code),其创造正在讨论中的计算 机编程(computer program)的执行环境,例如,代码可构成处理器固件(processor firmware)、协定堆叠(protocolstack)、数据库管理系统(database management system)、操作系统(operating system)或其组合。

计算机编程(也称为编程(program)、软件、软件应用程序(softwareapplication)、脚本(script)或代码)可以用任何形式的编程语言(programminglanguage)来编写,该编程语言包括编译(compiled)或解释语言(interpretedlanguages),并且可以以任何形式来配置,包括作为独立编程(standalone program)或模块(module)、元件(component)、子程序(subroutine)、或适用 于计算环境(computingenvironment)的其他单元(unit)。

本文所描述的程序和逻辑流程(logic flows)可以由执行一或多个计算 机编程的一或多个可编程处理器(programmable processors)来执行,以执行 本文所描述的功能。也可以由程序和逻辑流程来执行,以及设备也可以实 施为专用逻辑电路(specialpurpose logic circuitry)(例如FPGA(现场可编程 门阵列)或ASIC(本申请专用集成电路)。

作为示例,适合执行计算机编程的处理器包括通用和专用微处理器两 者,以及任何类型的数位计算机的任一或多个处理器。适合储存计算机编 程操作和数据的计算机可读取媒体(Computer readable media)可包括所有 形式的非挥发性存储器、媒体和存储器装置、由半导体(semiconductor)存 储器装置(例如EPROM,EEPROM和快闪存储器装置)所包括的示例方式。 处理器和存储器可以由专用逻辑电路来辅助或并入。

虽然本文件描述了许多特定例子,但这些例子不应被用来限制本发明 所要主张的范围或可以被主张的范围,而应被认为是对特定实施例的特定 特征的描述。相反地,在单个实施例的上下文中描述的各种特征也可在多 个实施例中单独或以任何合适的子组合来实现。此外,尽管上文将特征描 述为在某些组合下起作用,即使最初主张如此,但是在一些情况下,来自 所要求保护的组合的一或多个特征可从该组合中删除,并且所要求保护的组合可针对子组合或子组合的变形。相似地,尽管在图式中以特定的顺序 描述操作,但这不应被理解为必须要以所示出的特定顺序或顺序执行这样 的操作,或者要执行所有示出的操作,以实现所要的结果。

本文仅公开了一些示例和实施方式。本领域普通技术人员可基于所公 开的内容对所描述的示例和实现以及其他实施做出变化、修改和增强。

23页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于闪存中的抹除方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!