CN114121103B - 用于编程自选存储器的技术 - Google Patents
用于编程自选存储器的技术 Download PDFInfo
- Publication number
- CN114121103B CN114121103B CN202110987232.0A CN202110987232A CN114121103B CN 114121103 B CN114121103 B CN 114121103B CN 202110987232 A CN202110987232 A CN 202110987232A CN 114121103 B CN114121103 B CN 114121103B
- Authority
- CN
- China
- Prior art keywords
- memory cells
- programming operation
- memory
- group
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0064—Verifying circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0069—Writing or programming circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/30—Power supply circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3404—Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0004—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0069—Writing or programming circuits or methods
- G11C2013/0088—Write with the simultaneous writing of a plurality of cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5647—Multilevel memory with bit inversion arrangement
Landscapes
- Read Only Memory (AREA)
- Semiconductor Memories (AREA)
Abstract
本申请针对用于编程自选存储器的技术。接收到的数据可包含各自具有第一逻辑值的第一位群组和各自具有第二逻辑值的第二位群组。所述第一和第二位群组可分别存储在第一组存储器单元和第二组存储器单元中。可执行用于将所述第二逻辑值写入到所述第一组和第二组存储器单元并验证所述第二逻辑值是否写入到所述第一组存储器单元、所述第二组存储器单元或这两者中的每一个的第一编程操作。第二编程操作可基于验证结果将所述第一逻辑值写入到所述第一组存储器单元或所述第二组存储器单元。
Description
交叉引用
本专利申请要求迪文森佐(Di Vincenzo)于2020年8月28日提交的标题为“用于编程自选存储器的技术(TECHNIQUES FOR PROGRAMMING SELF-SELECTING MEMORY)”的第17/006,197号美国专利申请的优先权,所述申请转让给本受让人且明确地以全文引用的方式并入本文中。
技术领域
技术领域涉及用于编程自选存储器的技术。
背景技术
存储器装置广泛用于将信息存储在例如计算机、无线通信装置、相机、数字显示器等各种电子装置中。通过将存储器装置内的存储器单元编程到各种状态来存储信息。例如,二进制存储器单元可编程到两种支持状态中的一种,常常由逻辑1或逻辑0来表示。在一些实例中,单个存储器单元可支持多于两个状态,所述状态中的任一个可被存储。为了存取所存储的信息,组件可读取或感测存储器装置中的至少一个所存储状态。为了存储信息,组件可写入或编程存储器装置中的状态。
存在各种类型的存储器装置和存储器单元,包含磁性硬盘、随机存取存储器(RAM)、只读存储器(ROM)、动态RAM(DRAM)、同步动态RAM(SDRAM)、铁电RAM(FeRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、快闪存储器、相变存储器(PCM)、自选存储器、硫族化物存储器技术等。存储器单元可为易失性或非易失性的。
发明内容
公开一种方法,其包含:接收包括第一组位和第二组位的数据,其中所述第一组位中的每一位具有第一逻辑值且对应于第一组存储器单元中的第一存储器单元,所述第二组位中的每一位具有第二逻辑值且对应于第二组存储器单元中的第二存储器单元;执行第一编程操作以将所述第二逻辑值写入到所述第一组存储器单元和所述第二组存储器单元中的每一存储器单元;确定在执行所述第一编程操作之后所述第二组存储器单元中的一或多个是否存储所述第一逻辑值;以及至少部分地基于所述确定,执行第二编程操作以将所述第一逻辑值写入到所述第一组存储器单元中的每一存储器单元或所述第二组存储器单元中的每一存储器单元。
公开一种设备,其包含:存储器阵列,其包括第一组存储器单元和第二组存储器单元;控制器,其与所述存储器阵列耦合且配置成接收包括第一组位和第二组位的数据,其中所述第一组位中的每一位具有第一逻辑值且对应于所述第一组存储器单元中的第一存储器单元,所述第二组位中的每一位具有第二逻辑值且对应于所述第二组存储器单元中的第二存储器单元;执行第一编程操作以将所述第二逻辑值写入到所述第一组存储器单元和所述第二组存储器单元中的每一存储器单元;确定在执行所述第一编程操作之后所述第二组存储器单元中的一或多个是否存储所述第一逻辑值;以及至少部分地基于所述确定,执行第二编程操作以将所述第一逻辑值写入到所述第一组存储器单元中的每一存储器单元或所述第二组存储器单元中的每一存储器单元。
公开一种非暂时性计算机可读媒体,其存储包括指令的代码,所述指令在由电子装置的处理器执行时使所述电子装置:接收包括第一组位和第二组位的数据,其中所述第一组位中的每一位具有第一逻辑值且对应于第一组存储器单元中的第一存储器单元,所述第二组位中的每一位具有第二逻辑值且对应于第二组存储器单元中的第二存储器单元;执行第一编程操作以将所述第二逻辑值写入到所述第一组存储器单元和所述第二组存储器单元中的每一存储器单元;确定在执行所述第一编程操作之后所述第二组存储器单元中的一或多个是否存储所述第一逻辑值;以及至少部分地基于所述确定,执行第二编程操作以将所述第一逻辑值写入到所述第一组存储器单元中的每一存储器单元或所述第二组存储器单元中的每一存储器单元。
附图说明
图1示出根据本文所公开的实例的支持用于编程自选存储器的技术的系统的实例。
图2示出根据本文所公开的实例的支持用于编程自选存储器的技术的存储器裸片的实例。
图3示出根据本文所公开的实例的支持用于编程自选存储器的技术的存储器单元的实例。
图4示出根据本文所公开的实例的支持用于编程自选存储器的技术的分布图的实例。
图5示出根据本文所公开的实例的支持用于编程自选存储器的技术的流程图的实例。
图6示出根据本文所公开的实例的支持用于编程自选存储器的技术的时序图的实例。
图7和8示出根据本文所公开的实例的支持用于编程自选存储器的技术的实例流程图。
图9示出根据本文所公开的实例的支持用于编程自选存储器的技术的时序图的实例。
图10示出根据本文所公开的实例的支持用于编程自选存储器的技术的控制器的框图。
图11示出根据本文所公开的实例的示出支持用于编程自选存储器的技术的一或多种方法的流程图。
具体实施方式
存储器装置可在一组存储器单元中存储数据。所述一组存储器单元可包含以非预期方式响应编程电压的一或多个存储器单元(也称为“有缺陷存储器单元”)。在一些实例中,有缺陷存储器单元可在用于编程高阈值电压的编程脉冲施加到存储器单元之后展现低阈值电压,且反之亦然。具有超过编程电压的阈值电压的有缺陷存储器单元(也称为“高Vth存储器单元”)可不受后续编程操作影响,因此,特定逻辑值(例如,逻辑值0)可无限地存储在存储器单元处。类似地,不同逻辑值(例如,逻辑值1)可无限地存储在具有低于阈值的最大阈值电压的有缺陷存储器单元(也称为“低Vth存储器单元”)处。因此,当在包含一个或多个有缺陷存储器单元的一组存储器单元中存储数据时,如果编程操作尝试将不同于由有缺陷存储器单元无限存储的逻辑状态的逻辑值写入到此存储器单元,那么所存储的数据可自动包含一或多个错误。
用于减少与高Vth存储器单元相关联的错误的一个技术可以是使用较大编程电压。并且,用于管理与有缺陷存储器单元相关联的错误的技术可以是使用错误校正电路系统来检测和/或校正从一组存储器单元读取的数据中的有限数目的错误。但是使用较大编程电压来适应高Vth存储器单元可能会增大存储器装置的能耗和/或缩短存储器单元的操作寿命。并且,使用错误校正电路系统检测/校正由有缺陷存储器单元造成的错误可减少由其它编程故障造成的错误校正电路系统能够检测/校正的错误的数量。
为了保持错误校正电路系统(例如,错误校正码)的错误校正能力,可以使用基于有缺陷存储器单元检测存储非反相(例如,原始)或反相数据的增强数据存储技术。例如,可以接收数据以用于存储在存储器阵列中的一组存储器单元中。数据可包含具有第一逻辑值(例如,‘1’)的第一组位和具有第二逻辑值(例如,‘0’)的第二组位。类似地,第一组位(和第一逻辑值)可对应于存储器单元的第一子集,且第二组位(和第二逻辑值)可对应于存储器单元的不重叠的第二子集。在接收数据之后,第一编程操作将第二逻辑值写入到第一子集和第二子集中的每一个存储器单元。在第一编程操作之后或作为其部分,可执行用于验证第二逻辑值是否已写入到存储器单元的第二子集中的每一个的操作。
如果第二存储器单元子集中的任一个被识别为不存储第二逻辑值,那么可执行将第一逻辑值写入到第二存储器单元子集的第二编程操作,使反相版本的数据存储在所述一组存储器单元处,例如同时错误的数量为零或减少。在一些实例中,第二编程操作还可以用于编程存储管理位(也称为“翻转位”),以指示所述一组存储器单元在第二编程操作之后存储反相数据。否则,如果第二存储器单元子集全都被识别为存储第二逻辑值,那么可执行将第一逻辑值写入到第一存储器单元子集的第二编程操作,使非反相版本的数据(也称为原始数据)存储在所述一组存储器单元处。通过执行增强数据存储程序,可以避免原本会由高Vth或低Vth存储器单元造成的错误。例如,这些技术会校正由卡在单个逻辑状态(例如,‘1’)的存储器单元造成的错误,而无需使用错误控制代码技术。
增强数据存储程序还可用于减小功耗。例如,供数据存储程序使用的编程电压的电压可减小,使得编程电压不被选择为适应具有异常高(但可编程)的阈值电压的存储器单元。在一些实例中,编程电压被选择为适应处于6σ范围的阈值电压,而不是处于高斯分布的7σ范围的阈值电压。在此类实例中,包含在第二存储器单元子集中的Vth异常高的存储器单元可能不编程成在第一编程操作执行之后存储第二逻辑值。因此,在第二编程操作期间,反相版本的数据可存储在所述一组存储器单元处,并且Vth异常高的存储器单元可在第二编程操作之后存储第一逻辑值,而不会将错误引入到所存储的反相版本的数据中。
本公开的特征一开始是在系统和裸片的上下文中描述的。本公开的特征进一步在流程图和过程图中描述。本公开的这些和其它特征进一步由与用于编程自选存储器的技术有关的设备图和流程图说明并参考其描述。
图1示出根据本文所公开的实例的支持用于编程自选存储器的技术的系统100的实例。系统100可包含主机装置105、存储器装置110和耦合主机装置105与存储器装置110的多个信道115。系统100可包含一或多个存储器装置,但是所述一或多个存储器装置110的各方面可以在单个存储器装置(例如,存储器装置110)的上下文中加以描述。
系统100可包含电子装置的部分,例如计算装置、移动计算装置、无线装置、图形处理装置、车辆或其它系统。例如,系统100可示出计算机、笔记本电脑、平板电脑、智能电话、移动电话、可穿戴装置、因特网连接装置、车辆控制器等等的各方面。存储器装置110可以是系统中可用于存储系统100的一或多个其它组件的数据的组件。
系统100的至少部分可为主机装置105的实例。主机装置105可为处理器或使用存储器来执行过程的装置内(例如计算装置、移动计算装置、无线装置、图形处理装置、计算机、笔记本电脑、平板电脑、智能电话、移动电话、可穿戴装置、因特网连接装置、车辆控制器、片上系统(SoC)或某一其它固定或便携式电子装置以及其它实例内)的其它电路的实例。在一些实例中,主机装置105可以指实施外部存储器控制器120的功能的硬件、固件、软件或其组合。在一些实例中,外部存储器控制器120可称为主机或主机装置105。
存储器装置110可为可用于提供可由系统100使用或参考的物理存储器地址/空间的独立装置或组件。在一些实例中,存储器装置110可配置成配合一或多个不同类型的主机装置105起作用。主机装置105与存储器装置110之间的信令可用于支持以下各者中的一或多者:调制信号的调制方案、用于传达信号的各种引脚配置、用于主机装置105和存储器装置110的物理封装的各种外观尺寸、主机装置105与存储器装置110之间的时钟信令及同步、定时惯例,或其它因素。
存储器装置110可用于存储用于主机装置105的组件的数据。在一些实例中,存储器装置110可充当主机装置105的从属型装置(例如,通过外部存储器控制器120对由主机装置105提供的命令作出响应且执行所述命令)。此类命令可包含用于写入操作的写入命令、用于读取操作的读取命令、用于刷新操作的刷新命令或其它命令中的一或多个。
主机装置105可包含外部存储器控制器120、处理器125、基本输入/输出系统(BIOS)组件130中的一或多个或例如一或多个外围组件或一或多个输入/输出控制器等其它组件。主机装置105的组件可使用总线135彼此耦合。
处理器125可用于对系统100的至少部分或主机装置105的至少部分提供控制或其它功能性。处理器125可为通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件,或这些组件的组合。在此类实例中,处理器125可为中央处理单元(CPU)、图形处理单元(GPU)、通用GPU(GPGPU)或SoC的实例,以及其它实例。在一些实例中,外部存储器控制器120可由处理器125实施,也可以是所述处理器的一部分。
BIOS组件130可以是包含作为固件操作的BIOS的软件组件,其可初始化且运行系统100或主机装置105的各种硬件组件。BIOS组件130还可管理处理器125与系统100或主机装置105的各种组件之间的数据流。BIOS组件130可包含存储于只读存储器(ROM)、快闪存储器或其它非易失性存储器中的一或多个中的程序或软件。
存储器装置110可包含装置存储器控制器155及一或多个存储器裸片160(例如,存储器芯片)以支持用于数据存储的所需容量或指定容量。每一存储器裸片160可包含本地存储器控制器165(例如,本地存储器控制器165-a、本地存储器控制器165-b、本地存储器控制器165-N)及存储器阵列170(例如,存储器阵列170-a、存储器阵列170-b、存储器阵列170-N)。存储器阵列170可为存储器单元的集合(例如,一或多个栅格、一或多个存储体、一或多个拼块、一或多个区段),其中每一存储器单元可用于存储至少一个数据位。包含两个或更多个存储器裸片的存储器装置110可称为多裸片存储器或多裸片封装或多芯片存储器或多芯片封装。
装置存储器控制器155可包含可用于控制存储器装置110的操作的电路、逻辑或组件。装置存储器控制器155可包含使得存储器装置110能够执行各种操作的硬件、固件或指令,且可用于接收、传输或执行与存储器装置110的组件相关的命令、数据或控制信息。装置存储器控制器155可用于与外部存储器控制器120、所述一或多个存储器裸片160或处理器125中的一或多者通信。在一些实例中,装置存储器控制器155可结合存储器裸片160的本地存储器控制器165控制本文中所描述的存储器装置110的操作。
本地存储器控制器165(例如,在存储器裸片160本地)可包含可用于控制存储器裸片160的操作的电路、逻辑或组件。在一些实例中,本地存储器控制器165可用于与装置存储器控制器155通信(例如,接收或传输数据或命令或这两者)。在一些实例中,存储器装置110可不包含装置存储器控制器155,且本地存储器控制器165或外部存储器控制器120可执行本文中所描述的各种功能。由此,本地存储器控制器165可用于与装置存储器控制器155、其它本地存储器控制器165或直接与外部存储器控制器120或处理器125或其组合通信。可包含于装置存储器控制器155或本地存储器控制器165或这两者中的组件的实例可包含用于接收信号(例如,从外部存储器控制器120)的接收器、用于传输信号(例如,到外部存储器控制器120)的传输器、用于解码或解调所接收信号的解码器、用于编码或调制要传输的信号的编码器,或可用于支持装置存储器控制器155或本地存储器控制器165或这两者的所描述操作的各种其它电路或控制器。
外部存储器控制器120可用于使得能够在系统100或主机装置105的组件(例如,处理器125)与存储器装置110之间传达信息、数据或命令中的一或多者。外部存储器控制器120可转换或转译在主机装置105的组件与存储器装置110之间交换的通信。在一些实例中,外部存储器控制器120或系统100的其它组件或主机装置105或本文中所描述的功能可由处理器125实施。例如,外部存储器控制器120可为由处理器125或系统100的其它组件或主机装置105实施的硬件、固件或软件或其某一组合。尽管外部存储器控制器120描绘为在存储器装置110外部,但在一些实例中,外部存储器控制器120或本文中所描述的功能可由存储器装置110的一或多个组件(例如,装置存储器控制器155、本地存储器控制器165)实施,反之亦可。
主机装置105的组件可使用一或多个信道115与存储器装置110交换信息。信道115可用于支持外部存储器控制器120和存储器装置110之间的通信。每个信道115可以是在主机装置105和存储器装置之间载送信息的传输介质的实例。每个信道115可包含与系统100的组件相关联的端子之间的一或多个信号路径或传输介质(例如,导体)。信号路径可以是可用于载送信号的导电路径的实例。例如,信道115可包含第一端子,所述第一端子包含在主机装置105处的一或多个引脚或衬垫和在存储器装置110处的一或多个引脚或衬垫。引脚可以是系统100的装置的导电输入或输出点的实例,并且引脚可用于充当信道的部分。
信道115(及相关联的信号路径和端子)可专门用于传达一或多种类型的信息。例如,信道115可包含一或多个命令和地址(CA)信道186、一或多个时钟信号(CK)信道188、一或多个数据(DQ)信道190、一或多个其它信道192,或其组合。在一些实例中,信令可以使用单倍数据速率(SDR)信令或双倍数据速率(DDR)信令通过信道115传达。在SDR信令中,信号的一个调制符号(例如,信号电平)可以针对每个时钟循环寄存(例如,在时钟信号的上升或下降边沿上)。在DDR信令中,信号的两个调制符号(例如,信号电平)可以针对每个时钟循环寄存(例如,在时钟信号的上升边沿和下降边沿两者上)。
为了保持错误校正电路系统或算法的错误校正能力,可以使用基于有缺陷存储器单元检测存储非反相(例如,原始)或反相数据的增强数据存储技术。例如,可以在存储器装置110处接收数据以存储在存储器阵列(例如,存储器阵列170-a)中的一组存储器单元中。数据可包含具有第一逻辑值的第一组位和具有第二逻辑值的第二组位。类似地,第一组位可对应于存储器单元的第一子集,且第二组位可对应于存储器单元的不重叠的第二子集。在接收数据之后,存储器装置110可执行将第二逻辑值写入到每一个存储器单元的第一编程操作,并且在一些实例中,还验证第二逻辑值是否已写入到第二存储器单元子集中的每一个。
如果第二存储器单元子集中的任一个被识别为不存储第二逻辑值,那么存储器装置110可执行将第一逻辑值写入到第二存储器单元子集的第二编程操作,使反相版本的数据存储在所述一组存储器单元处,例如同时错误为零或减少。在一些实例中,第二编程操作还可以用于编程控制位(也称为“翻转位”),以指示所述一组存储器单元在第二编程操作之后存储反相数据。否则,如果第二存储器单元子集全都被识别为存储第二逻辑值,那么存储器装置110可执行将第一逻辑值写入到第一存储器单元子集的第二编程操作,使非反相版本的数据(也称为原始数据)存储在所述一组存储器单元处。通过执行增强数据存储程序,可以避免原本会由高Vth或低Vth存储器单元造成的错误。
图2示出根据本文所公开的实例的支持用于编程自选存储器的技术的存储器裸片200的实例。存储器裸片200可以是参考图1所描述的存储器裸片160的实例。在一些实例中,存储器裸片200可以称为存储器芯片、存储器装置或电子存储器设备。存储器裸片200可包含各自可编程为存储不同逻辑状态(例如,一组两个或更多个可能状态中的一个经编程状态)的一或多个存储器单元205。例如,存储器单元205可用于每次存储一个信息位(例如,逻辑0或逻辑1)。在一些实例中,存储器单元205(例如,多层级存储器单元205)可用于每次存储超过一个信息位(例如,逻辑00、逻辑01、逻辑10、逻辑11)。在一些实例中,存储器单元205可布置成阵列,例如参考图1所描述的存储器阵列170。
存储器单元205可使用可配置材料存储逻辑状态,可配置材料可以称为存储器元件、存储器存储元件、材料元件、材料存储器元件、材料部分或极性写入材料部分等等。存储器单元205的可配置材料可以指基于硫族化物的存储组件,如参考图3更详细描述。例如,硫族化物存储元件可用于相变存储器(PCM)单元、阈值存储器单元或自选存储器单元。
存储器裸片200可包含以例如网格状图案的图案布置的存取线(例如,行线210和列线215)。存取线可由一或多个导电材料形成。在一些实例中,行线210可以称为字线。在一些实例中,列线215可以称为数字线或位线。对存取线、行线、列线、字线、数字线或位线或其类似物的提及是可互换的,不影响理解或操作。存储器单元205可定位在行线210和列线215的相交点处。
可通过激活或选择例如行线210或列线215中的一或多个的存取线在存储器单元205上执行例如读取和写入的操作。通过偏置行线210和列线215(例如,向行线210或列线215施加电压),可以在它们的相交点处存取单个存储器单元205。二维或三维配置中行线210和列线215的相交点可以称为存储器单元205的地址。存取线可以是与存储器单元205耦合的导电线,并且可用于在存储器单元205上执行存取操作。
可以通过行解码器220或列解码器225控制对存储器单元205的存取。例如,行解码器220可从本地存储器控制器260接收行地址,并基于接收到的行地址激活行线210。列解码器225可从本地存储器控制器260接收列地址,并且可基于接收到的列地址激活列线215。
感测组件230可用于检测存储器单元205的状态(例如,材料状态、电阻、阈值状态),并基于所存储的状态确定存储器单元205的逻辑状态。感测组件230可包含用于放大或以其它方式转换通过存取存储器单元205产生的信号的一或多个感测放大器。感测组件230可比较从存储器单元205检测到的信号与参考信号235(例如,参考电压)。存储器单元205的检测到的逻辑状态可以提供为感测组件230的输出(例如,提供给输入/输出240),并且可将检测到的逻辑状态指示给包含存储器裸片200的存储器装置的另一组件。
本地存储器控制器260可通过各种组件(例如,行解码器220、列解码器225、感测组件230)控制存储器单元205的存取。本地存储器控制器260可以是参考图1所描述的本地存储器控制器165的实例。在一些实例中,行解码器220、列解码器225和感测组件230中的一或多个可与本地存储器控制器260处于相同位置。本地存储器控制器260可用于从一或多个不同存储器控制器(例如,与主机装置105相关联的外部存储器控制器120、与存储器裸片200相关联的另一控制器)接收命令或数据中的一或多个,将命令或数据(或这两者)转化成可供存储器裸片200使用的信息,在存储器裸片200上执行一或多个操作,并基于执行所述一或多个操作将数据从存储器裸片200传送到主机装置105。本地存储器控制器260可产生行信号和列地址信号,以激活目标行线210和目标列线215。本地存储器控制器260还可产生和控制在存储器裸片200的操作期间使用的各种电压或电流。一般来说,本文所论述的所施加电压或电流的幅度、形状或持续时间可发生变化,并且可针对在操作存储器裸片200时论述的各种操作二不同。
本地存储器控制器260可用于在存储器裸片200的一或多个存储器单元205上执行一或多个存取操作。存取操作的实例可包含写入操作、读取操作、刷新操作、预充电操作或激活操作等等。在一些实例中,存取操作可由本地存储器控制器260响应于各种存取命令(例如,来自主机装置105)而执行或以其它方式协调。本地存储器控制器260可用于执行此处未列出的其它存取操作或与存储器裸片200的操作有关的其它操作(与存取存储器单元205不直接相关)。
本地存储器控制器260可用于在存储器裸片200的一或多个存储器单元205上执行写入操作(例如,编程操作)。在写入操作期间,存储器裸片200的存储器单元205可编程成存储所要逻辑状态。本地存储器控制器260可识别其上执行写入操作的目标存储器单元205。本地存储器控制器260可识别与目标存储器单元205(例如,目标存储器单元205的地址)耦合的目标行线210和目标列线215。本地存储器控制器260可激活目标行线210和目标列线215(例如,向行线210或列线215施加电压)以存取目标存储器单元205。本地存储器控制器260可在写入操作期间向列线215施加特定信号(例如,写入脉冲)以在存储器单元205的存储元件中存储特定状态。用作写入操作的部分的脉冲可在某一持续时间内包含一或多个电压电平。
本地存储器控制器260可用于在存储器裸片200的一或多个存储器单元205上执行读取操作(例如,感测操作)。在读取操作期间,可以确定存储于存储器裸片200的存储器单元205中的逻辑状态。本地存储器控制器260可识别其上执行读取操作的目标存储器单元205。本地存储器控制器260可识别与目标存储器单元205(例如,目标存储器单元205的地址)耦合的目标行线210和目标列线215。本地存储器控制器260可激活目标行线210和目标列线215(例如,向行线210或列线215施加电压)以存取目标存储器单元205。感测组件230可检测从存储器单元205接收到的信号,这基于施加到行线210的脉冲、施加到列线的脉冲和/或存储器单元205的电阻或阈值特性。感测组件230可放大信号。本地存储器控制器260可激活感测组件230(例如,锁存感测组件),并由此比较从存储器单元205接收到的信号与参考信号235。基于所述比较,感测组件230可确定存储在存储器单元205上的逻辑状态。用作读取操作的部分的脉冲可在某一持续时间内包含一或多个电压电平。
为了保持错误校正电路系统的错误校正能力,可以使用基于有缺陷存储器单元检测存储非反相(例如,原始)或反相数据的增强数据存储技术。例如,可以在本地存储器控制器245处接收数据以用于存储在存储器阵列中的一组存储器单元205中。数据可包含具有第一逻辑值的第一组位和具有第二逻辑值的第二组位。类似地,第一组位可对应于存储器单元205的第一子集,且第二组位可对应于存储器单元205的不重叠的第二子集。在接收数据之后,本地存储器控制器245可执行将第二逻辑值写入到每一个存储器单元205的第一编程操作,并且在一些实例中,还验证第二逻辑值是否已写入到存储器单元205的第二子集中的每一个。
如果第二存储器单元子集中的任一个被识别为不存储第二逻辑值,那么本地存储器控制器245可执行将第一逻辑值写入到存储器单元205的第二子集的第二编程操作,使反相版本的数据存储在所述一组存储器单元205处,例如同时错误为零或减少。在一些实例中,第二编程操作还可以用于编程控制位(也称为“翻转位”),以指示所述一组存储器单元205在第二编程操作之后存储反相数据。否则,如果存储器单元205的第二子集全都被识别为存储第二逻辑值,那么本地存储器控制器245可执行将第一逻辑值写入到存储器单元205的第一子集的第二编程操作,使非反相版本的数据(也称为原始数据)存储在所述一组存储器单元205处。通过执行增强数据存储程序,可以避免原本会由高Vth或低Vth存储器单元造成的错误。
图3示出根据本文所公开的实例的存储器阵列300的实例。存储器阵列300可以是参考图1和2描述的存储器阵列或存储器裸片的部分的实例。存储器阵列300可包含定位于衬底(未示出)上方的第一存储器单元叠组305和在第一阵列或叠组305的顶部上的第二存储器单元叠组310。尽管存储器阵列300的实例包含两个叠组305、310,但是存储器阵列300可包含任何数量的叠组(例如,一个或多于两个)。
存储器阵列300还可包含行线210-a、行线210-b、行线210-c、行线210-d、列线215-a和列线215-b,它们可以是参考图2所描述的行线210和列线215的实例。第一叠组305和第二叠组310的一或多个存储器单元可在存取线之间的导柱中包含一或多个硫族化物材料。例如,存取线之间的单个堆叠可包含第一电极、第一硫族化物材料(例如,选择器组件)、第二电极、第二硫族化物材料(例如,存储元件)或第三电极中的一或多个。尽管包含在图3中的一些元件用数字指示符标记,其它对应元件未标记,但是它们是相同的或者应理解为类似的,以便提高所描绘的特征的可见性和清晰度。
第一叠组305中的一或多个存储器单元可包含电极325-a、存储元件320-a或电极325-b中的一或多个。第二叠组310中的一或多个存储器单元可包含电极325-c、存储元件320-b或电极325-d中的一或多个。存储元件320可以是硫族化物材料的实例,例如相变存储元件、阈值存储元件或自选存储元件。在一些实例中,第一叠组305和第二叠组310的存储器单元可具有公共导电线,使得一或多个叠组305和一或多个叠组310的对应存储器单元可共享列线215或行线210。例如,第二叠组310的第一电极325-c和第一叠组305的第二电极325-b可与列线215-a耦合,使得列线215-a可由竖直相邻的存储器单元共享。
在一些实例中,存储元件320的材料可包含硫族化物材料或包含硒(Se)、碲(Te)、砷(As)、锑(Sb)、碳(C)、锗(Ge)、硅(Si)或铟(IN)的其它合金,或其各种组合。在一些实例中,主要具有硒(Se)、砷(As)和锗(Ge)的硫族化物材料可以称为SAG合金。在一些实例中,SAG合金还可包含硅(Si),此类硫族化物材料可以称为SiSAG合金。在一些实例中,SAG合金可包含硅(Si)或铟(In)或其组合,此类硫族化物材料分别可以称为SiSAG合金或InSAG合金,或其组合。在一些实例中,硫族化物玻璃可包含额外元素,例如氢(H)、氧(O)、氮(N)、氯(Cl)或氟(F),各自呈原子或分子形式。
在一些实例中,存储元件320可以是相变存储器单元的实例。在此类实例中,用于存储元件320的材料可基于合金(例如,上文所列的合金),并且可用于在存储器单元的正常操作期间进行相变或到不同物理状态的改变。例如,相变存储器单元可具有非晶状态(例如,相对无序的原子配置)和结晶状态(例如,相对有序的原子配置)。
在一些实例中,例如对于阈值存储器单元或自选存储器单元,存储器单元所支持的所述一组逻辑状态中的一些或全部可与硫族化物材料的非晶状态相关联(例如,呈单状态的材料可用于存储不同逻辑状态)。在一些实例中,存储元件320可以是自选存储器单元的实例。在此类实例中,用于存储元件320的材料可基于合金(例如,上文所列的合金),并且可用于在存储器单元的正常操作期间进行到不同物理状态的改变。例如,自选存储器单元可具有高阈值电压状态和低阈值电压状态。高阈值电压状态可对应于第一逻辑状态(例如,RESET状态),且低阈值电压状态可对应于第二逻辑状态(例如,SET状态)。
在自选存储器单元(例如,包含电极325-a、存储元件320-a和电极325-b)的编程(写入)操作期间,用于写入操作的极性可影响(确定、设置、编程)存储元件320的材料的特定特性或特征,例如材料的阈值电压。取决于存储元件320的材料所存储的逻辑状态的存储元件320的材料的阈值电压差(例如,材料存储逻辑状态‘0’时相对于材料存储逻辑状态‘1’时的阈值电压之间的差)可对应于存储元件320的读取窗口。
在一些实例中,存储器阵列300的架构可以称为交叉点架构,其中存储器单元形成于行线210和列线215之间的拓扑交叉点处。与其它存储器架构比较,此类交叉点架构可提供相对较高密度的数据存储以及较低的制造成本。例如,与其它架构比较,交叉点架构可具有区域减小且因此存储器单元密度增大的存储器单元。例如,与具有6F2存储器单元面积的其它架构(例如,具有三端子选择器元件的那些)比较,架构可具有4F2存储器单元面积,其中F是最小特征大小。例如,DRAM可使用为三端子装置的晶体管作为每一存储器单元的选择器元件,并且与交叉点架构比较,可具有较大存储器单元面积。
尽管图3的实例示出两个存储器叠组,但是其它配置是可能的。在一些实例中,存储器单元的单个存储器叠组可以构造在衬底上方,这可以称为二维存储器。在一些实例中,两个或更多个存储器单元叠组可以类似方式配置为三维交叉点架构。此外,在一些情况下,图3中所示或参考图3所描述的元件可如示出或描述的那样彼此电耦合,但是可以物理地重排(例如,存储元件320和可能的选择元件或电极325可行线210和列线215之间电气地串联,但是可能不呈导柱或堆叠配置)。
存储器装置(例如,图1的存储器装置110或图2的存储器裸片200)可配置成在存储器阵列300中存储数据。在一些实例中,存储器装置在存储器阵列300中存储从主机装置(例如,图1的主机装置105)接收到的数据。在一些实例中,存储器装置可在存储器阵列300中存储从主机装置接收到的数据的反相版本,而不是在存储器阵列中存储从主机装置接收到的数据,例如,如果存储器装置接收数据集{01001001},那么存储器装置实际上可存储反相数据集{10110110}。存储器装置还可存储用于指示所存储的数据集是否已在存储之前反相的额外位(也称为翻转位)。在存储之前使数据反相可改进存储器阵列300的操作(例如,提高可靠性、减少功耗、缩短读取持续时间、延长存储器单元的寿命等)。
如本文所描述,向存储器单元施加编程电压可使得存储器单元在编程操作之后具有特定阈值电压,例如,如果施加第一编程电压(例如,正电压),那么存储器单元可具有第一阈值电压(例如,约±6V),或者如果施加第二编程电压(例如,负电压),那么存储器单元可具有第二阈值电压(约±3.75V)。第一阈值电压可与第一逻辑值(例如,逻辑值1)相关联,第二阈值电压可与第二逻辑值(例如,逻辑值0)相关联。因此,可通过向存储器单元施加中间电压(例如,±4.5V)从存储器单元读取逻辑值,例如,如果电流流过存储器单元,那么存储器单元可被识别为存储逻辑值1,如果没有,那么存储器单元可被识别为存储逻辑值0。
在一些实例中,被编程有第一编程电压的一组存储器单元可展现阈值电压范围,例如,存储器单元的阈值电压可跨±3.5V到±4V的电压范围分布。类似地,被编程有第二编程电压的一组存储器单元可展现阈值电压范围,例如,存储器单元的阈值电压可跨±5V到±7V的电压范围分布。为了适应阈值电压的变化,中间读取电压可选择为大于第一阈值电压的上限(例如,大于±4V)且小于第二阈值电压的下限(例如,小于±5V)。类似地,为了适应阈值电压的变化,可选择大于第二阈值电压的上限(例如,大于±7V)的编程电压。在一些实例中,阈值电压的上限基于7σ内的高斯分布而确定。在一些实例中,一组存储器单元中存储第二逻辑值的除一个以外其余所有存储器单元可在执行编程操作之后具有在(例如,±5V到±7V)范围内的阈值电压。
在一些实例中,存储器阵列300内的一或多个存储器单元有缺陷,且存储器可以非预期方式响应编程电压。例如,存储器单元可具有异常低的阈值电压,不管跨存储器单元施加的编程电压如何,例如,存储器单元可在施加用于编程逻辑值0的第二编程电压(例如,负电压)而不是第二阈值电压(~±6V)之后具有小于±4.5V的阈值电压。此类存储器单元可以称为低Vth存储器单元或短路存储器单元。低Vth存储器单元可以读取为逻辑值1,而不管跨存储器单元施加的编程电压的量值、定时或极性如何。
在另一实例中,存储器单元可在跨存储器单元施加用于编程逻辑值0的第二编程电压之后具有异常高的阈值电压,例如,存储器单元可在施加第二编程电压之后具有超过±7V的阈值电压。在一些实例中,存储器单元可具有异常高的阈值电压,不管跨存储器单元施加的编程电压如何,例如,存储器单元可在施加用于编程逻辑值1的第一编程电压(例如,正电压)而不是第一阈值电压(约±3.5V)之后具有大于±7V的阈值电压。此类存储器单元可以称为高Vth存储器单元或开路存储器单元。类似地,如果高Vth存储器单元的阈值电压超过编程电压,那么高Vth存储器单元不可通过编程操作编程为不同逻辑状态。因此,高Vth存储器单元可以读取为逻辑值0,而不管跨存储器单元施加的编程电压的量值、定时或极性如何。
存储器装置可使用增强编程技术来减少与高Vth存储器单元相关联的错误,例如,通过使用适应较大阈值电压的较大编程电压。存储器装置还可使用错误校正技术(例如,ECC),使得数据能够存储在包含有限数目的有缺陷单元(例如,少于2个有缺陷单元)的存储器单元集中。也就是说,错误校正技术可用于检测存储器单元集中由有缺陷单元(和/或其它存储故障)造成的有限数目的错误和/或在从存储器单元集读取不正确数据之后校正全部或一部分检测到的错误。但是使用较大编程电压来适应高Vth存储器单元可增大存储器装置的能耗和/或减少存储器单元的操作寿命。并且,使用错误校正电路系统检测/校正由有缺陷存储器单元造成的错误可减少错误校正电路系统能够检测/校正的由其它编程故障造成的错误的数量。
为了保持错误校正电路系统的错误校正能力,可以使用基于有缺陷存储器单元检测存储非反相(例如,原始)或反相数据的增强数据存储技术。例如,可以接收数据以用于存储在存储器阵列中的一组存储器单元中。数据可包含具有第一逻辑值的第一组位和具有第二逻辑值的第二组位。在一些实例中,第一逻辑值是逻辑值0,第二逻辑值是逻辑值1。在其它实例中,第一逻辑值是逻辑值1,第二逻辑值是逻辑值0。当第一逻辑值是逻辑值0且第二逻辑值是逻辑值1时,对于数据{01001010},第一组位对应于第一、第三、第四、第六和第八位,第二组位对应于第二、第五和第七位。类似地,第一组位可对应于(例如,经调度以写入到)存储器单元的第一子集,第二组位可对应于(例如,经调度以写入到)存储器单元的不重叠的第二子集。在接收数据之后,可执行第一编程操作,此操作将第二逻辑值写入到每一个存储器单元,并且在一些实例中,还验证第二逻辑值是否已写入到第二存储器单元子集(也就是意在基于接收到的数据存储第二逻辑值的存储器单元子集)中的每一个。
如果第二存储器单元子集中的任一个被识别为不存储第二逻辑值(例如,如果第二存储器单元子集中的一个是高Vth存储器单元),那么可执行将第一逻辑值写入到第二存储器单元子集的第二编程操作,使反相版本的数据(例如,第二数据)存储在所述一组存储器单元处,例如同时错误的数量为零或减少。在一些实例中,第二编程操作还可以用于编程控制位(也称为“翻转位”),以指示所述一组存储器单元在第二编程操作之后存储反相数据。否则,如果第二存储器单元子集全都被识别为存储第二逻辑值,那么可执行将第一逻辑值写入到第一存储器单元子集的第二编程操作,使非反相版本的数据(例如,原始数据)存储在所述一组存储器单元处。通过执行增强数据存储程序,可以避免原本会由高Vth或低Vth存储器单元(取决于第一逻辑值是0还是1)造成的错误。
增强数据存储程序还可以用于减小功耗。例如,供数据存储程序使用的编程电压的电压可以减小,使得编程电压不被选择为适应具有异常高(但可编程)的阈值电压的存储器单元。在一些实例中,编程电压被选择为适应处于高斯分布的6σ范围而不是7σ范围的阈值电压。在此类实例中,包含在第二存储器单元子集中的Vth异常高的存储器单元可能不在执行第一编程操作执行之后存储第二逻辑值,且反相版本的数据可存储在所述一组存储器单元处,例如同时错误为零或减少。
在一些实例中,增强数据存储技术可包含在第二编程操作执行之后的额外操作。例如,如果在确定第二存储器单元子集全都被识别为存储第二逻辑值之后,第二编程操作将第一逻辑值写入到第一存储器单元子集,那么第二编程操作还可验证第一逻辑状态是否已写入到第一存储器单元子集中的每一个。如果第一存储器单元子集中的任一个被识别为不存储第一逻辑值,那么可执行将第一逻辑值写入到第二存储器单元子集并将第二逻辑值写入到第一存储器单元子集的第三编程操作,使反相版本的数据存储在所述一组存储器单元处,例如同时错误为零或减少。在一些实例中,第三编程操作还可以用于编程翻转位,以指示所述一组存储器单元在第三编程操作之后存储反相数据。但是,如果第一存储器单元子集全都被识别为存储第一逻辑值,那么可以不执行第三编程操作,使非反相版本的数据存储在存储器单元处。通过执行额外操作,可以避免原本会由高Vth或低Vth存储器单元造成的错误。
图4示出根据本文所公开的实例的支持用于编程自选存储器的技术的分布图的实例。
分布图400描绘阈值电压跨已编程成存储第一逻辑值(例如,逻辑值0)的多个存储器单元的分布。分布图400可描绘具有特定阈值电压的存储器单元的百分比。在一些实例中,阈值电压根据高斯分布进行分布,并且约68%的存储器单元具有在均值(μ)阈值电压的一个标准差(σ)内的阈值电压。约99%的存储器单元可具有在均值阈值电压的三个标准差内的阈值电压。均值可以表示为均值阈值电压430,且标准差可以表示为标准差435。
在一些实例中,较少数目(例如,一或多个)存储器单元可具有与均值相差至多六个标准差的阈值电压,更少数目个存储器单元可具有与均值相差至多七个标准差的阈值电压。例如,第一存储器单元的第一阈值电压420可在均值阈值电压430的六个标准差内(如以下6σ440和σx所表示),第二存储器单元的第一阈值电压425可在均值阈值电压430的七个标准差内(如以下7σ445和σy所表示)。在一些实例中,一或多个存储器单元可具有与均值阈值电压430相差超过七个标准差的阈值电压,例如,用作断路的有缺陷存储器单元。
在一些实例中,具有与均值阈值电压430相差超过三个标准差的阈值电压的存储器单元称为高Vth存储器单元。取决于用于编程存储器阵列内的存储器单元的逻辑状态的编程电压的量值,高Vth存储器单元可在编程成存储特定逻辑值(例如,逻辑值0)之后无限存储所述逻辑值,例如,如果存储器单元的阈值电压超过用于编程存储器阵列内的存储器单元的编程电压。为了适应高Vth存储器单元(例如,为了确保高Vth存储器单元可用于存储数据),可以使用超过电压上限的编程电压。例如,第二编程电压415可用于适应具有比均值阈值电压430大至多七个标准差的阈值电压的高Vth存储器单元。否则,如果使用的是第一编程电压410,那么与第一阈值电压425相关联的存储器单元可无限地编程为(或“卡在”)与特定逻辑值(例如,逻辑值0)相关联的逻辑状态,例如,因为第一编程电压可能不够大,无法重新编程具有第一阈值电压425的存储器单元。在一些实例中,在执行编程操作之前,当存储特定逻辑值(例如,逻辑值0)时,控制器可确定存储器阵列中的存储器单元的上限阈值电压,例如,通过跨存储器单元施加不断增加的电压。
类似地,当存储特定逻辑状态(例如,逻辑值0)时,一或多个存储器单元可具有比均值阈值电压430小超过三个标准差的阈值电压。当存储所述逻辑状态时,读取电压405可配置成比均值阈值电压430小三个或更多个标准差,以适应存储器阵列中具有下限阈值的存储器单元。在一些实例中,读取电压405还可以比与存储不同逻辑值(例如,逻辑值1)的存储器单元相关联的均值阈值电压高三个或更多个标准差。在一些实例中,已编程成存储特定逻辑值(例如,逻辑值0)的存储器单元可具有低于读取电压405的电压的阈值电压。在这些情况下,存储器单元可被无限地感测为存储所述不同逻辑值(例如,逻辑值1),也就是说,存储器单元可卡在存储所述不同逻辑值。此类存储器单元可以称为低Vth存储器单元。在一些实例中,低Vth存储器单元可用作短路。
如本文中所描述且更详细地参考图5到9,为了防止高Vth存储器单元和/或低Vth存储器单元妨碍存储器阵列的操作,可执行检查有缺陷存储器单元并潜在地将反相数据集写入到包含有缺陷存储器单元的一组存储器单元的增强编程操作。例如,增强编程操作识别所述一组存储器单元中调度为存储第一逻辑值的第一子集和所述一组存储器单元中调度为存储第二逻辑值的第二子集。接着,编程操作将第一逻辑值写入到所述一组存储器单元中的每一存储器单元,并在写入操作完成之后检查存储器单元子集中的任一存储器单元是否存储第二逻辑值。如果是,那么编程操作将所述不同逻辑值写入到存储器单元的第一子集。在一些实例中,第一逻辑值是逻辑值1,第二逻辑值是逻辑值0。在其它实例中,第一逻辑值是逻辑值0,第二逻辑值是逻辑值1。
在第一逻辑值是逻辑值1的情况下,增强编程操作可确定存储器单元子集中在第一写入操作之后存储逻辑值0的存储器单元是高Vth存储器单元。因此,增强编程操作并不是试图重新编程高Vth存储器单元以存储逻辑值1(例如,通过施加较大编程电压),而是可以使高Vth存储器单元通过将逻辑值0写入到存储器单元子集并使第二存储器单元子集保持存储逻辑值1来继续存储逻辑值0。因此,最初调度为存储逻辑值1的第一存储器单元子集实际上可存储逻辑值0,且最初调度为存储逻辑值0的第二存储器单元子集实际上可存储逻辑值1,也就是说,在增强编程操作完成之后由所述一组存储器单元存储的数据可以是经接收以用于存储在存储器单元中的原始数据的反相版本。因为不重新编程高Vth存储器单元,增强编程操作可使用较低编程电压,例如第一编程电压410,而不会产生存储错误。
图5示出根据本文所公开的实例的支持用于编程自选存储器的技术的流程图的实例。流程图500示出支持参考用于编程一组存储器单元的一组操作的增强编程操作的操作。流程图500可示出用于校正由高Vth存储器单元造成的错误的操作。流程图500中的一或多个操作可由控制器执行。流程图500的操作可经重排、省略或修改,而不妨害操作。
在框505处,可以(例如,在控制器处)接收到一组数据(或码字)以用于存储在一组存储器单元中。所述一组数据可包含多个位(例如,8、16、32、64、128、256位)。位的第一子集(或部分)可表示第一逻辑值(例如,逻辑值0),位的第二子集(或部分)可表示第二逻辑值(例如,逻辑值1)。控制器可确定所述一组数据中的哪些位位置存储哪些逻辑值,并且可将位的第一部分分组为第一群组(也称为“群组0位”),并将位的第二部分分组为第二群组(也称为“群组1位”)。第一位群组可对应于所述一组存储器单元的第一子集(也称为“群组0存储器单元”)(意在存储于其中)。第二位群组可对应于所述一组存储器单元的第二子集(也称为“群组1存储器单元”)(意在存储于其中)。
在框510处,第一位子集可以存储在第一寄存器中。第二位子集可以存储在第二寄存器中。在一些实例中,位子集可以存储在寄存器内对应于位在接收到的一组数据(或码字)内的位置的位置。所存储的位随后可用于将数据写入到所述一组存储器单元。
在框515处,可执行第一编程操作。第一编程操作可包含执行用于将逻辑值1写入到所述一组存储器单元中的存储器单元的操作。在一些实例中,用于将逻辑值1写入到存储器单元的操作包含跨存储器单元施加正电压。
在菱形520处,可执行用于验证在第一编程操作之后群组1存储器单元中的所有存储器单元是否存储逻辑值1的操作。在一些实例中,所述验证被执行为第一编程操作的一部分(例如,使用电流镜电路)。如果在写入操作之后群组1存储器单元全都存储逻辑值1,那么可以确定群组1存储器单元不包含任何高Vth存储器单元。因此,程序可进行到框525。否则,如果在写入操作之后群组1存储器单元中的一或多个存储逻辑值0,那么可以确定所述一或多个群组1存储器单元是将被读取为存储逻辑值0的高Vth存储器单元,而不管先前编程操作如何。因此,程序可进行到框530。
在框525处,可执行第二编程操作,其包含执行用于将逻辑值0写入到所有群组0存储器单元的操作以及保持由群组1存储器单元存储的逻辑值1。在一些实例中,用于将逻辑值0写入到群组0存储器单元的操作包含跨群组0存储器单元施加负电压。控制器可避免编程皆被识别为存储通过第一编程操作写入的逻辑值1的群组1存储器单元。由于在框525处执行的第二编程操作,由所述一组存储器单元存储的所述一组数据可与在框505处接收到的所述一组数据一致。
在框530处,可执行第二编程操作,其包含执行用于将逻辑值0写入到群组1存储器单元的操作。控制器可避免编程群组0存储器单元;因此,群组0存储器单元可继续存储通过第一编程操作写入的逻辑值1。由于在框530处执行的第二编程操作,由所述一组存储器单元存储的所述一组数据可相对于在框505处接收到的所述一组数据反相。通过将逻辑值0写入到群组1存储器单元并保持群组0存储器单元处的逻辑值1,可以避免原本会由所述一或多个高Vth群组1存储器单元引入的错误,例如因为高Vth群组1存储器单元用于存储逻辑值0,而不是最初预期的逻辑值1。
为了能够在后续读取操作期间从所述一组存储器单元读取正确数据(例如,原始的一组数据),可以将指示由所述一组存储器单元存储的数据是否已反相的位(也称为翻转位)设置为指示所述一组存储器单元存储反相数据。在一些实例中,作为第二编程操作的一部分,将翻转位设置为指示所述一组存储器单元存储反相数据,例如通过另外将逻辑值0写入到翻转位。
在这两种情况下,增强编程操作可绕过原本可能会由高Vth存储器单元(或低Vth存储器单元,视具体情况而定)造成的一或多个错误。也就是说,在确定群组1存储器单元中的每一个在第一编程操作后存储逻辑值1之后,群组0存储器单元编程成在第二编程操作期间存储逻辑值0。因此,不管第二编程操作的结果如何,任何高Vth群组0存储器单元都将正确地读取为存储逻辑值0。并且,在确定群组1存储器单元中的一或多个在第一编程操作后存储逻辑值0之后,群组1存储器单元编程成在第二编程操作期间存储逻辑值0。因此,包含所述一或多个高Vth群组1存储器单元的群组1存储器单元将正确地读取为存储逻辑值0,从而绕过因尝试在所述一或多个高Vth群组1存储器单元中存储逻辑值1造成的任何错误。
图6示出根据本文所公开的实例的支持用于编程自选存储器的技术的时序图的实例。时序图600可以在包含控制器620和存储器单元集635的存储器装置的上下文中描述。控制器620可配置成执行用于从存储器单元集635读取和向其写入的程序。
存储器单元集635可编程为存储数据。存储器单元集635可包含一或多个存储器单元。存储器单元集635可包含第一存储器单元群组(图6中由虚线图案指示)和第二存储器单元群组(图6中由对角线图案指示)。存储器单元集635还可包含存储翻转位630的存储器单元。翻转位630可用于指示存储器单元集635中的其它存储器单元是存储反相还是非反相数据。
第一存储器单元群组可对应于构成输入数据605的一部分的第一组位,第一组位各自表示第一逻辑值(例如,逻辑值0)。也就是说,第一存储器单元群组可意在存储第一组位。第二存储器单元群组可对应于构成输入数据605的第二部分的第二组位,第二组位各自表示第二逻辑值(例如,逻辑值1)。也就是说,第二存储器单元群组可意在存储第二组位。为了显示第一组位和第一存储器单元群组之间的对应关系,第一组位和第一存储器单元群组使用虚线图案指示。类似地,为了显示第二组位和第二存储器单元群组之间的对应关系,第二组位和第二存储器单元群组使用对角线图案指示。第一存储器单元群组可以称为群组0存储器单元,第一位群组可以称为群组0位。并且,第二存储器单元群组可以称为群组1存储器单元,第二位群组可以称为群组1位。
在一些实例中,输入数据605在控制器620处接收。输入数据605可包含一组位{10011010},其中第一位可对应于存储器单元集635的最顶部存储器单元(例如,意在存储于其中),第二位可对应于存储器单元集635中的第二顶部存储器单元(例如,被调度用于存储在其中),以此类推。控制器620可识别输入数据605中存储逻辑值0的位和输入数据605中存储逻辑值1的位。
接着,控制器620可以执行包含将第一数据610写入到存储器单元集635的第一编程操作。第一数据610可包含各自表示逻辑值1的一组位。在执行第一编程操作之后或作为第一编程操作的部分,控制器620可执行验证操作,验证第二存储器单元群组中的每一存储器单元是否存储逻辑值1(如由第二存储器单元群组周围的虚线所指示)。如图6中所描绘,存储器单元集635可包含在第一编程操作执行之后存储逻辑值0的有缺陷存储器单元625(其可以是高Vth存储器单元)。因此,控制器620可确定在第一编程操作执行之后第二存储器单元群组包含高Vth存储器单元。
在确定第二存储器单元群组包含高Vth存储器单元之后,控制器620可执行包含将第二数据615写入到存储器单元集635的第二编程操作。第二数据615可包含各自表示逻辑值0的一组位。包含在第二数据615中的位的数量可小于包含在输入数据605和第一数据610中的位的数量。在一些实例中,将第二数据615写入到存储器单元集635可包含将逻辑值0写入到第二存储器单元群组,同时避免跨第一存储器单元群组施加编程电压。因此,在第二编程操作执行之后,第一存储器单元群组(群组0存储器单元)可继续存储在第一编程操作期间写入的逻辑值1,并且第二存储器单元群组(群组1存储器单元)可编程成存储逻辑值0。因此,存储器单元集635可在第二编程操作执行之后存储为输入数据605的反相版本的数据。
在一些实例中,作为第二编程操作的部分,存储翻转位630的存储器单元可编程成存储指示存储器单元集635中的其它存储器单元存储反相数据的值。在其它实例中,存储翻转位630的存储器单元编程成在第二编程操作期间存储逻辑值0,其中逻辑值0可用于指示所存储的数据经反相。在一些实例中,存储翻转位630的存储器单元编程成在第二编程操作期间存储逻辑值1,其中逻辑值1可用于指示所存储的数据经反相。
当从存储器单元集635检索数据时,控制器可读取存储翻转位630的存储器单元以确定检索到的数据是否经反相。如果翻转位630指示检索数据经反相,那么控制器可使检索到的数据反相以获得输入数据605。在一些实例中,在使检索到的数据反相之后,一或多个错误仍在反相数据中(例如,由与高Vth存储器单元不相关的存储故障造成的错误)。在这些情况下,在输出匹配最初接收到的输入数据605的数据集之前,控制器可执行错误校正程序来检测和/或校正剩余错误。
在另一实例中,如果存储器单元集635不包含任何高Vth存储器单元,或如果高Vth存储器单元的出现限于第一存储器单元群组,那么控制器620可执行将逻辑值0写入到第一存储器单元群组(群组0存储器单元)并保持存储在第二存储器单元群组(群组1存储器单元)处的逻辑值1的第二编程操作。在此类实例中,在第二编程操作之后存储在存储器单元集处的数据可与输入数据605一致。
图7示出根据本文所公开的实例的支持用于编程自选存储器的技术的流程图的实例。流程图700示出支持参考用于编程一组存储器单元的一组操作的增强编程操作的操作。流程图700可示出用于校正由低Vth存储器单元造成的操作。流程图700中的一或多个操作可由控制器执行。流程图700的操作可经重排、省略或修改,而不妨害操作。
流程图700可镜射参考图5所描述的流程图500的各方面。例如,在框705处,第一组数据可以类似于参考图5的框505描述的方式接收和处理。在框710处,第一存储器位群组和第二存储器位群组可以类似于参考图5的框510描述的方式存储。
并且,在框715处,可以类似于参考图5的框515描述的方式执行第一编程操作,以将逻辑值0写入到包含第一存储器单元(群组0存储器单元)子集和第二存储器单元(群组1存储器单元)子集的一组存储器单元(但在图5中,是将逻辑值1写入到所述一组存储器单元)。
在菱形720处,以类似于参考图5的菱形520描述的方式执行用于验证群组0存储器单元中的所有存储器单元是否在第一编程操作之后(或作为其部分)存储逻辑值0的操作(但在图5中,验证操作验证第二存储器单元子集是否存储逻辑值1)。如果群组0存储器单元全都存储逻辑值0,那么程序可进行到框725。否则,可以确定群组0存储器单元中的一或多个是不管先前编程操作如何都存储逻辑值1的低Vth存储器单元,且程序可进行到框730。
在框725处,可以类似于参考图5的框525描述的方式执行用于将逻辑值1写入到群组1存储器单元并保持存储在所有群组0存储器单元处的逻辑值0的第二编程操作(但在图5中是将逻辑值0写入到第一存储器单元子集)。因此,由所述一组存储器单元存储的所述一组数据可与在框705处接收到的所述一组数据一致。
在框730处,可以类似于参考图5的框530描述的方式执行用于将逻辑值1写入到群组0存储器单元并保持存储在群组1存储器单元处的逻辑值0的第二编程操作(但在图5中是将逻辑值0写入到第二存储器单元子集)。由于框730处的第二编程操作,由群组0存储器单元存储的所述一组数据可相对于在框705处接收到的所述一组数据反相。通过将逻辑值1写入到群组0存储器单元并保持群组1存储器单元处的逻辑值0,可以避免原本会由所述一或多个低Vth群组0存储器单元引入的错误,例如,因为低Vth群组0存储器单元用于存储逻辑值1,而不是最初调度的逻辑值0。
为了能够在后续读取操作期间从所述一组存储器单元读取正确数据(例如,原始的一组数据),可以将指示由所述一组存储器单元存储的数据是否已反相的位(也称为翻转位)设置为指示所述一组存储器单元存储反相数据。在一些实例中,作为第二编程操作的一部分,将翻转位设置为指示所述一组存储器单元存储反相数据,例如通过另外将逻辑值1写入到翻转位。
在这两种情况下,增强编程操作可绕过原本可能会由低Vth存储器单元造成的一或多个错误。也就是说,在确定群组0存储器单元中的每一个在第一编程操作后存储逻辑值0之后,群组1存储器单元编程成在第二编程操作期间存储逻辑值1。因此,不管第二编程操作的结果如何,任何低Vth群组1存储器单元都将正确地读取为存储逻辑值1。并且,在确定群组0存储器单元中的一或多个在第一编程操作后存储逻辑值1之后,群组0存储器单元编程成在第二编程操作期间存储逻辑值1。因此,包含低Vth群组0存储器单元的群组0存储器单元将正确地读取为存储逻辑值1,从而绕过因尝试在低Vth群组0存储器单元中存储逻辑值0造成的任何错误。
图6所示的图示还可用于(具有微小修改)说明在流程图700中描述的操作的执行。也就是说,为了说明在流程图700中描述的操作的执行,第一数据610可修改为仅包含逻辑值0,存储器单元集635可包含群组0存储器单元中的低Vth存储器单元,而不是包含群组1存储器单元中的高Vth存储器单元。因此,低Vth群组0存储器单元可在编程操作之后存储逻辑值1,其余存储器单元可存储逻辑值0。因此,为了防止低Vth群组0存储器单元造成存储错误,可执行第二编程操作,以将逻辑值1写入到包含在第一存储器单元群组中的每一个存储器单元的,同时保持存储在群组1存储器单元处的逻辑值0。为了能够从存储器单元集635读取反相数据,存储翻转位630的存储器单元可编程成指示存储器单元集635中的剩余存储器单元存储反相数据,例如通过将逻辑值0写入到存储器单元。
在另一实例中,如果存储器单元集635不包含任何低Vth存储器单元,或如果低Vth存储器单元的出现限于群组1存储器单元,那么控制器620可执行将逻辑值1写入到群组1存储器单元并保持存储在群组0存储器单元处的逻辑值0的第二编程操作。在此类实例中,在第二编程操作之后存储在存储器单元集处的数据可与输入数据605一致。
在一些实例中,在图7的上下文中,逻辑值0可以称为第二逻辑值,逻辑值1可以称为第一逻辑值,群组0存储器单元可以称为第二存储器单元子集,群组1存储器单元可以称为第一存储器单元子集。
图8示出根据本文所公开的实例的支持用于编程自选存储器的技术的流程图的实例。
流程图800示出支持参考用于编程一组存储器单元的一组操作的增强编程操作的操作。流程图800可示出用于校正由低Vth存储器单元和/或高Vth存储器单元造成的错误的操作。流程图800中的一或多个操作可由控制器执行。流程图800的操作可经重排、省略或修改,而不妨害操作。
流程图800可镜射参考图5所描述的流程图500的各方面。例如,在框805处,第一组数据可以类似于参考图5的框505描述的方式接收和处理。在框810处,第一存储器位群组和第二存储器位群组可以类似于参考图5的框510描述的方式存储。在框815处,可以类似于参考图5的框515描述的方式执行第一编程操作,以将逻辑值1写入到包含第一存储器单元(群组0存储器单元)子集和第二存储器单元(群组1存储器单元)子集的一组存储器单元。
在菱形820处,可以类似于参考图5的菱形520描述的方式执行用于验证群组1存储器单元中的所有存储器单元是否在编程操作之后存储逻辑值1的操作。如果群组1存储器单元全都存储逻辑值1,那么程序可进行到框825,并以类似于参考图5的框525描述的方式执行将逻辑值0写入到群组0存储器单元的第二编程操作。
否则,如果群组1存储器单元中的一或多个存储逻辑值0,那么程序可进行到框830,并且以类似于参考图5的框530描述的方式执行将逻辑值0写入到群组1存储器单元并保持群组0存储器单元处的逻辑值1的存储的第二编程操作。并且,在框830处,翻转位可以类似于参考图5的框530描述的方式编程(例如,作为第二编程操作的部分)为指示所述一组存储器单元存储反相数据。因此,可以避免由包含在群组1存储器单元中的高Vth存储器单元造成的错误。在执行与框825相关联的操作之后,程序可进行到菱形835。
在菱形835处,可执行用于验证所有群组0存储器单元是否在第二编程操作之后存储逻辑值0的操作。在一些实例中,可作为第二编程操作的部分来验证所有群组0存储器单元是否存储逻辑值0。如果所有群组0存储器单元存储逻辑值0,那么增强编程程序可终止。也就是说,如果所有群组0存储器单元存储逻辑值0,那么可以确定在群组0存储器单元中包含任何有缺陷存储器单元的情况下,此类有缺陷存储器单元是不管先前编程操作如何都会被读取为存储逻辑值0的高Vth存储器单元。否则,程序可进行到框840,例如在确定群组0存储器单元中的一或多个是不管先前编程操作如何都存储逻辑值1的低Vth存储器单元之后。
在框840处,可执行用于将逻辑值0写入到群组1存储器单元并将逻辑值1写入到群组0存储器单元的第三编程操作。因此,所述一组存储器单元可存储相对于在框805处接收到的数据反相的数据。还可指示用于指示由所述一组存储器单元存储的数据是否已反相的翻转位,例如作为第三编程操作的部分。
因此,当在菱形820处确定群组1存储器单元中的一或多个存储逻辑值0时,在流程图800中描述的操作可用于适应包含在群组1存储器单元中的高Vth存储器单元。当在菱形820处确定所有群组1存储器单元都存储逻辑值1并在菱形835处确定所有群组0存储器单元都存储逻辑值0时,可用于适应包含在群组0存储器单元中的高Vth存储器单元。当在菱形820处确定所有群组1存储器单元都存储逻辑值1并在菱形835处确定群组0存储器单元中的一或多个存储逻辑值1时,可用于适应包含在群组0存储器单元中的低Vth存储器单元。
图9示出根据本文所公开的实例的支持用于编程自选存储器的技术的时序图的实例。
时序图900可在包含控制器920和存储器单元集935的存储器装置的上下文中描述。控制器920可配置成执行用于从存储器单元集935读取和向其写入的程序,并且可以是图6的控制器620的实例。
存储器单元集935可编程为存储数据。存储器单元集935可包含一或多个存储器单元。存储器单元集935可包含第一存储器单元群组(在图9中由虚线图案指示)和第二存储器单元群组(在图9中由对角线图案指示)。存储器单元集935还可包含存储翻转位930的存储器单元。翻转位930可用于指示存储器单元集935中的其它存储器单元是存储反相还是非反相数据。
第一存储器单元群组可对应于构成输入数据905的第一部分的第一组位,第一组位各自表示第一逻辑值(例如,逻辑值0)。也就是说,第一存储器单元群组可意在存储第一组位。第二存储器单元群组可对应于构成输入数据905的第二部分的第二组位,第二组位各自表示第二逻辑值(例如,逻辑值1)。也就是说,第二存储器单元群组可意在存储第二组位。为了显示第一组位和第一存储器单元群组之间的对应关系,第一组位和第一存储器单元群组使用虚线图案指示。类似地,为了显示第二组位和第二存储器单元群组之间的对应关系,第二组位和第二存储器单元群组使用对角线图案指示。第一存储器单元群组可以称为群组0存储器单元,第一位群组可以称为群组0位。并且,第二存储器单元群组可以称为群组1存储器单元,第二位群组可以称为群组1位。
在一些实例中,输入数据905在控制器920处接收。输入数据905可包含一组位{10011010},其中第一位可对应于存储器单元集935的最顶部存储器单元(例如,意在存储于其中),第二位可对应于存储器单元集935中的第二顶部存储器单元(例如,被调度用于存储在其中),以此类推。控制器920可识别输入数据905中存储逻辑值0的位和输入数据905中存储逻辑值1的位。
接着,控制器920可以执行包含将第一数据910写入到存储器单元集935的第一编程操作。第一数据910可包含各自表示逻辑值1的一组位。在执行第一编程操作之后或作为第一编程操作的部分,控制器920可执行验证操作,验证第二存储器单元群组中的每一存储器单元是否存储逻辑值1(如由第二存储器单元群组周围的虚线所指示)。如图9中所描绘,存储器单元集935可包含包含在第一存储器单元群组中且在第一编程操作执行之后存储逻辑值1的有缺陷存储器单元940(其可以是低Vth存储器单元)。因此,控制器920可确定在第一编程操作执行之后第二存储器单元群组不包含任何有缺陷存储器单元或包含低Vth存储器单元。
在确定第二存储器单元群组中的每一个存储逻辑值1之后,控制器920可执行包含将第二数据915写入到存储器单元集935的第二编程操作。第二数据915可包含各自表示逻辑值0的一组位。包含在第二数据915中的位的数量可小于包含在输入数据905和第一数据910中的位的数量。在一些实例中,将第二数据915写入到存储器单元集935可包含将逻辑值0写入到第一存储器单元群组,同时避免跨第二存储器单元群组施加编程电压。因此,在第二编程操作执行之后,第二存储器单元群组(群组1存储器单元)可继续存储在第一编程操作期间写入的逻辑值1。并且除了有缺陷存储器单元940之外的所有第一存储器单元群组(群组0存储器单元)可存储在第二编程操作期间写入的逻辑值0。因此,控制器920可确定在第二编程操作执行之后第一存储器单元群组包含低Vth存储器单元。
在确定第一存储器单元群组包含低Vth存储器单元之后,控制器920可执行包含将第三数据925写入到存储器单元集935的第三编程操作。第三数据925可以是输入数据905的反相版本。因此,在第三编程操作执行之后,第一存储器单元群组(群组0存储器单元)可编程成存储逻辑值1,第二存储器单元群组(群组1存储器单元)可编程成存储逻辑值0。因此,存储器单元集935可在第三编程操作执行之后存储是输入数据905的反相版本的数据。
在一些实例中,作为第三编程操作的部分,存储翻转位930的存储器单元可编程成存储指示存储器单元集935中的其它存储器单元存储反相数据的值。在一些实例中,存储翻转位930的存储器单元编程成在第三编程操作期间存储逻辑值0,其中逻辑值0可用于指示所存储的数据经反相。在其它实例中,存储翻转位930的存储器单元编程成在第三编程操作期间存储逻辑值1,其中逻辑值1可用于指示所存储的数据经反相。
当从存储器单元集935检索数据时,控制器可读取存储翻转位930的存储器单元以确定检索到的数据是否经反相。如果翻转位930指示检索数据经反相,那么控制器可使检索到的数据反相以获得输入数据905。在一些实例中,在使检索到的数据反相之后,一或多个错误仍在反相数据中(例如,由与高Vth存储器单元不相关的存储故障造成的错误)。在这些情况下,在输出匹配最初接收到的输入数据905的数据集之前,控制器可执行错误校正程序来检测和/或校正剩余错误。
在另一实例中,如果存储器单元集935不包含任何有缺陷存储器单元,或如果高Vth存储器单元的出现限于第一存储器单元群组,那么控制器920可避免执行第三编程操作,此操作将逻辑值0写入到第一存储器单元群组(群组0存储器单元),并保持存储在第二存储器单元群组(群组1存储器单元)处的逻辑值1。在此类实例中,在第二编程操作之后存储在存储器单元集处的数据可与输入数据905一致。
图10示出根据本文所公开的实例的支持用于编程自选存储器的技术的控制器1005的框图1000。控制器1005可以是参考图1、2、6和9所描述的控制器的各方面的实例。控制器1005可包含输入数据组件1010、编程组件1015、验证组件1020和反相组件1025。这些模块中的每一个彼此之间可直接或间接地(例如,经由一或多个总线)通信。
输入数据组件1010可接收包含第一组位和第二组位的数据,其中第一组位中的每一位具有第一逻辑值且对应于第一组存储器单元中的第一存储器单元,第二组位中的每一位具有第二逻辑值且对应于第二组存储器单元中的第二存储器单元。
在一些实例中,输入数据组件1010可基于接收到数据而在第一寄存器中存储第一组位并在第二寄存器中存储第二组位,其中确定第二组存储器单元中的一或多个是否存储第一逻辑值是基于存储在第一寄存器中的第一组位。
编程组件1015可执行第一编程操作以将第二逻辑值写入到第一组存储器单元和第二组存储器单元中的每一存储器单元。
在一些实例中,编程组件1015可基于所述确定,执行第二编程操作以将第一逻辑值写入到第一组存储器单元中的每一存储器单元或第二组存储器单元中的每一存储器单元。
在一些实例中,编程组件1015可基于确定在执行第一编程操作之后第二组存储器单元中的存储器单元存储第一逻辑值而选择用于第二编程操作的第二组存储器单元,其中执行第二编程操作是基于选择第二组存储器单元,并且其中第一组存储器单元和第二组存储器单元在执行第二编程操作之后存储是数据的反相版本的第二数据。
在一些实例中,编程组件1015可基于确定在执行第一编程操作之后第二组存储器单元中的每一个存储第二逻辑值而选择用于第二编程操作的第一组存储器单元,其中执行第二编程操作是基于选择第一组存储器单元,其中第一组存储器单元和第二组存储器单元在执行第二编程操作之后存储数据。
在一些实例中,编程组件1015可基于确定在执行第一编程操作之后第二组存储器单元中的每一个存储第二逻辑值而选择第一组存储器单元。
在一些实例中,编程组件1015可基于确定在执行第二编程操作之后第一组存储器单元中的存储器单元存储第二逻辑值,执行第三编程操作以将第一逻辑值写入到第二组存储器单元并将第二逻辑值写入到第一组存储器单元,其中第一组存储器单元和第二组存储器单元在执行第三编程操作之后存储是数据的反相版本的第二数据。
在一些情况下,第二逻辑值与由具有超过上限的阈值电压的存储器单元存储的逻辑值相反。在一些情况下,第一逻辑值和由具有超过上限的阈值电压的存储器单元存储的逻辑值对应于值零,第二逻辑值对应于值一。在一些情况下,第一组存储器单元包含具有超过上限的阈值电压的存储器单元,并且其中正电压的电平低于阈值电压。
在一些实例中,执行第一编程操作以写入第二逻辑值包含跨第一组存储器单元和第二组存储器单元施加正电压。在一些实例中,执行第二编程操作以写入第一逻辑值包含跨第一组存储器单元或第二组存储器单元中的一者的每一存储器单元施加负电压。
在一些情况下,第二逻辑值与由具有低于下限的阈值电压的存储器单元存储的逻辑值相反。在一些情况下,第一逻辑值和由具有低于下限的阈值电压的存储器单元存储的逻辑值对应于值一,第二逻辑值对应于值零。
在一些实例中,执行第一编程操作以写入第二逻辑值包含跨第一组存储器单元和第二组存储器单元施加负电压。在一些实例中,执行第二编程操作以写入第一逻辑值包含跨第一组存储器单元或第二组存储器单元中的一者的每一存储器单元施加正电压。
验证组件1020可确定在执行第一编程操作之后第二组存储器单元中的一或多个是否存储第一逻辑值。
在一些实例中,验证组件1020可确定在执行第二编程操作之后第一组存储器单元中的一或多个是否存储第二逻辑值。
在一些实例中,验证组件1020可执行识别由第二组存储器单元中的每一个存储的逻辑值的验证操作,其中确定第二组存储器单元中的一或多个是否存储第一逻辑值是基于验证操作。
反相组件1025可基于确定在执行第一编程操作之后第二组存储器单元中的存储器单元存储第一逻辑值,编程指示符以指示第一组存储器单元和第二组存储器单元存储第二数据。
在一些实例中,反相组件1025可基于确定在执行第一编程操作之后第二组存储器单元中的每一个存储第二逻辑值,编程指示符以指示第一组存储器单元和第二组存储器单元存储数据。
在一些实例中,反相组件1025可基于确定在执行第二编程操作之后第一组存储器单元中的存储器单元存储第二逻辑值,编程指示符以指示第一组存储器单元和第二组存储器单元存储第二数据。
图11示出根据本文所公开的实例的示出支持用于编程自选存储器的技术的一或多种方法1100的流程图。方法1100的操作可由如本文中所描述的控制器或其组件实施。例如,方法1100的操作可由参考图10所描述的控制器执行。在一些实例中,控制器可执行一组指令,以控制控制器的功能元件执行所描述的功能。另外或替代地,控制器可使用专用硬件执行所描述的功能的各方面。
在1105处,控制器可接收包含第一组位和第二组位的数据,其中第一组位中的每一位具有第一逻辑值且对应于第一组存储器单元中的第一存储器单元,第二组位中的每一位具有第二逻辑值且对应于第二组存储器单元中的第二存储器单元。操作1105可根据本文描述的方法执行。在一些实例中,操作1105的各方面可由参考图10所描述的输入数据组件执行。
在1110处,控制器可执行第一编程操作以将第二逻辑值写入到第一组存储器单元和第二组存储器单元中的每一存储器单元。操作1110可根据本文描述的方法执行。在一些实例中,操作1110的各方面可由参考图10所描述的编程组件执行。
在1115处,控制器可确定在执行第一编程操作之后第二组存储器单元中的一或多个是否存储第一逻辑值。操作1115可根据本文描述的方法执行。在一些实例中,操作1115的各方面可由参考图10所描述的验证组件执行。
在1120处,控制器可基于所述确定执行第二编程操作以将第一逻辑值写入到第一组存储器单元中的每一存储器单元或第二组存储器单元中的每一存储器单元。操作1120可根据本文描述的方法执行。在一些实例中,操作1120的各方面可由参考图10所描述的编程组件执行。
在一些实例中,如本文中所描述的设备可执行一或多种方法,例如方法1100。设备可包含用于以下操作的特征、构件或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读媒体):接收包含第一组位和第二组位的数据,其中第一组位中的每一位具有第一逻辑值且对应于第一组存储器单元中的第一存储器单元,第二组位中的每一位具有第二逻辑值且对应于第二组存储器单元中的第二存储器单元;执行第一编程操作以将第二逻辑值写入到第一组存储器单元和第二组存储器单元中的每一存储器单元;确定在执行第一编程操作之后第二组存储器单元中的一或多个是否存储第一逻辑值;以及基于所述确定,执行第二编程操作以将第一逻辑值写入到第一组存储器单元中的每一存储器单元或第二组存储器单元中的每一存储器单元。
本文中所描述的方法1100和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:基于确定在执行第一编程操作之后第二组存储器单元中的存储器单元存储第一逻辑值,选择用于第二编程操作的第二组存储器单元,其中执行第二编程操作可基于选择第二组存储器单元,并且其中第一组存储器单元和第二组存储器单元在执行第二编程操作之后存储可以是数据的反相版本的第二数据。
本文中所描述的方法1100和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:基于确定在执行第一编程操作之后第二组存储器单元中的存储器单元存储第一逻辑值,编程指示符以指示第一组存储器单元和第二组存储器单元存储第二数据。
本文中所描述的方法1100和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:基于确定在执行第一编程操作之后第二组存储器单元中的每一个存储第二逻辑值,选择用于第二编程操作的第一组存储器单元,其中执行第二编程操作可基于选择第一组存储器单元,其中第一组存储器单元和第二组存储器单元在执行第二编程操作之后存储数据。
本文中所描述的方法1100和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:基于确定在执行第一编程操作之后第二组存储器单元中的每一个存储第二逻辑值,编程指示符以指示第一组存储器单元和第二组存储器单元存储数据。
本文中所描述的方法1100和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:基于确定在执行第一编程操作之后第二组存储器单元中的每一个存储第二逻辑值而选择第一组存储器单元,并确定在执行第二编程操作之后第一组存储器单元中的一或多个是否存储第二逻辑值。
本文中所描述的方法1100和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:基于确定在执行第二编程操作之后第一组存储器单元中的存储器单元存储第二逻辑值,执行第三编程操作以将第一逻辑值写入到第二组存储器单元并将第二逻辑值写入到第一组存储器单元,其中第一组存储器单元和第二组存储器单元在执行第三编程操作之后存储可以是数据的反相版本的第二数据。
本文中所描述的方法1100和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:基于确定在执行第二编程操作之后第一组存储器单元中的存储器单元存储第二逻辑值,编程指示符以指示第一组存储器单元和第二组存储器单元存储第二数据。
在本文中所描述的方法1100和设备的一些实例中,第二逻辑值与由具有超过上限的阈值电压的存储器单元存储的逻辑值相反,并且执行第一编程操作以写入第二逻辑值可包含用于跨第一组存储器单元和第二组存储器单元施加正电压的操作、特征、构件或指令,执行第二编程操作以写入第一逻辑值可包含用于跨第一组存储器单元或第二组存储器单元中的一者的每一存储器单元施加负电压的操作、特征、构件或指令。
在本文中所描述的方法1100和设备的一些实例中,第一逻辑值和由具有超过上限的阈值电压的存储器单元存储的逻辑值对应于值零,且第二逻辑值对应于值一。
在本文中所描述的方法1100和设备的一些实例中,第一组存储器单元包含具有超过上限的阈值电压的存储器单元,并且其中正电压的电平可低于阈值电压。
在本文中所描述的方法1100和设备的一些实例中,第二逻辑值可与由具有可低于下限的阈值电压的存储器单元存储的逻辑值相反,并且执行第一编程操作以写入第二逻辑值可包含用于跨第一组存储器单元和第二组存储器单元施加负电压的操作、特征、构件或指令,执行第二编程操作以写入第一逻辑值可包含用于跨第一组存储器单元或第二组存储器单元中的一者的每一存储器单元施加正电压的操作、特征、构件或指令。
在本文中所描述的方法1100和设备的一些实例中,第一逻辑值和由具有低于下限的阈值电压的存储器单元存储的逻辑值对应于值一,且第二逻辑值对应于值零。
本文中所描述的方法1100和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:基于接收到数据,在第一寄存器中存储第一组且在第二寄存器中存储第二组位,其中第二组存储器单元中的一或多个是否存储第一逻辑值的确定可基于存储在第一寄存器中的第一组位。
在本文中所描述的方法1100和设备的一些实例中,执行第一编程操作可包含用于执行识别由第二组存储器单元中的每一个存储的逻辑值的验证操作的操作、特征、构件或指令,其中第二组存储器单元中的一或多个是否存储第一逻辑值的确定可基于验证操作。
应注意,本文中所描述的方法是可能的实施方案,且操作和步骤可重新布置或者被修改,并且其它实施方案是可能的。此外,可组合来自两个或更多个方法的部分。
描述一种设备。所述设备可包含:存储器阵列,其包含第一组存储器单元和第二组存储器单元;控制器,其与存储器阵列耦合且配置成:执行第一编程操作以将第二逻辑值写入到第一组存储器单元和第二组存储器单元中的每一存储器单元,确定在执行第一编程操作之后第二组存储器单元中的一或多个是否存储第一逻辑值,以及基于所述确定,执行第二编程操作以将第一逻辑值写入到第一组存储器单元中的每一存储器单元或第二组存储器单元中的每一存储器单元。
在一些实例中,控制器可进一步配置成基于确定在执行第一编程操作之后所述第二组存储器单元中的存储器单元存储第一逻辑值而选择用于第二编程操作的第二组存储器单元,其中执行第二编程操作可基于选择第二组存储器单元,其中第一组存储器单元和第二组存储器单元在执行第二编程操作之后存储可以是数据的反相版本的第二数据。
在一些实例中,控制器可进一步配置成基于确定在执行第一编程操作之后第二组存储器单元中的存储器单元存储第一逻辑值,编程指示符以指示第一组存储器单元和第二组存储器单元存储第二数据。
在一些实例中,控制器可进一步配置成基于确定在执行第一编程操作之后第二组存储器单元中的每一个存储第二逻辑值而选择用于第二编程操作的第一组存储器单元,其中执行第二编程操作可基于选择第一组存储器单元,其中第一组存储器单元和第二组存储器单元在执行第二编程操作之后存储数据。
在一些实例中,控制器可进一步配置成基于确定在执行第一编程操作之后第二组存储器单元中的每一个存储第二逻辑值,编程指示符以指示第一组存储器单元和第二组存储器单元存储数据。
在一些实例中,控制器可进一步配置成基于确定在执行第一编程操作之后第二组存储器单元中的每一个存储第二逻辑值而选择第一组存储器单元,确定在执行第二编程操作之后第一组存储器单元中的一或多个是否存储第二逻辑值,以及基于确定在执行第二编程操作之后第一组存储器单元中的存储器单元存储第二逻辑值,执行第三编程操作以将第一逻辑值写入到第二组存储器单元并将第二逻辑值写入到第一组存储器单元,其中第一组存储器单元和第二组存储器单元在执行第三编程操作之后存储可以是数据的反相版本的第二数据。
可使用多种不同技术和技艺中的任一个来表示本文中所描述的信息和信号。例如,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。一些图式可将信号示出为单个信号;然而,所述信号可表示信号总线,其中总线可具有多种位宽度。
术语“电子连通”、“导电接触”、“连接”和“耦合”可以指组件之间支持信号在组件之间流动的关系。如果组件之间存在可在任何时间支持信号在组件之间流动的任何导电路径,那么组件被视为彼此电子连通(或彼此导电接触,或彼此连接,或彼此耦合)。在任何给定时间,基于包含所连接组件的装置的操作,彼此电子连通(或彼此导电接触,或彼此连接,或彼此耦合)的组件之间的导电路径可以是开路或闭路。所连接组件之间的导电路径可以是组件之间的直接导电路径,或所连接组件之间的导电路径可以是可包含例如开关、晶体管或其它组件等中间组件的间接导电路径。在一些实例中,可例如使用例如开关或晶体管等一或多个中间组件中断所连接组件之间的信号流动一段时间。
术语“耦合”是指从组件之间的开路关系移动到组件之间的闭路关系的条件,在开路关系中,信号当前无法通过导电路径在组件之间传送,在闭路关系中,信号能够通过导电路径在组件之间传送。当例如控制器的一组件将其它组件耦合在一起时,那么所述组件引发允许信号通过导电路径在所述其它组件之间流动的改变,所述导电路径先前不允许信号流动。
术语“隔离”是指信号当前无法在组件之间流动的组件之间的关系。如果组件之间存在断路,那么它们彼此隔离。例如,由定位在两个组件之间的开关间隔开的组件在开关断开时彼此隔离。当控制器将两个组件隔离时,控制器实现以下改变:阻止信号使用先前准许信号流动的导电路径在组件之间流动。
如本文中所使用,术语“电极”可以指电导体,并且在一些实例中,可用作对存储器阵列的存储器单元或其它组件的电接触。电极可包含在存储器阵列的元件或组件之间提供导电路径的迹线、导线、导电线、导电层等等。
本文中所论述的包含存储器阵列的装置可形成于半导体衬底上,例如硅、锗、硅锗合金、砷化镓、氮化镓等。在一些实例中,衬底是半导体晶片。在其它实例中,衬底可为绝缘体上硅(SOI)衬底,例如玻璃上硅(SOG)或蓝宝石上硅(SOP),或另一衬底上的半导体材料的外延层。可通过使用包含(但不限于)磷、硼或砷的各种化学物质的掺杂来控制衬底或衬底的子区的导电性。可在衬底的初始形成或生长期间,通过离子植入或通过任何其它掺杂方法执行掺杂。
本文所论述的开关组件或晶体管可表示场效应晶体管(FET),并且包括包含源极、漏极和栅极的三端装置。端子可通过导电材料(例如金属)连接到其它电子元件。源极和漏极可为导电的,且可包括经重掺杂(例如简并)半导体区。源极与漏极可由轻掺杂的半导体区或沟道间隔开。如果沟道是n型(即,大部分载体为电子),那么FET可被称作n型FET。如果沟道是p型(即,大部分载体为空穴),那么FET可被称作p型FET。沟道可由绝缘栅极氧化物封端。可通过将电压施加到栅极来控制沟道导电性。例如,将正电压或负电压分别施加到n型FET或p型FET可导致沟道变得导电。当大于或等于晶体管的阈值电压的电压被施加到晶体管栅极时,晶体管可“接通”或“激活”。当小于晶体管的阈值电压的电压被施加到晶体管栅极时,晶体管可“断开”或“撤销激活”。
本文结合附图阐述的描述内容描述了实例配置,且并不表示可以实施的或在权利要求书的范围内的所有实例。本文中所使用的术语“示例性”是指“充当实例、例子或说明”,且不比其它实例“优选”或“有利”。详细描述包含特定细节,以便提供对所描述技术的理解。然而,这些技术可在没有这些特定细节的情况下实践。在一些例子中,以框图的形式展示众所周知的结构和装置以免混淆所描述实例的概念。
在附图中,类似组件或特征可以具有相同参考标记。此外,可通过在参考标记之后跟着长划线及区分类似组件的第二标记来区分为相同类型的各种组件。如果说明书中仅使用第一参考标记,那么描述适用于具有相同第一参考标记的类似组件中的任一个,而与第二参考标记无关。
可使用多种不同技术和技艺中的任一个来表示本文中所描述的信息和信号。例如,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。
结合本文中的公开内容所描述的各种说明性块和模块可使用经设计以执行本文中所描述的功能的通用处理器、DSP、ASIC、FPGA或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其任何组合来实施或执行。通用处理器可为微处理器,但在替代方案中,处理器可为任何处理器、控制器、微控制器或状态机。处理器也可实施为计算装置的组合(例如,DSP与微处理器的组合、多个微处理器、一或多个微处理器结合DSP核心,或任何其它此类配置)。
本文中所描述的功能可以硬件、由处理器执行的软件、固件或其任何组合来实施。如果以由处理器执行的软件来实施,那么可以将功能作为一或多个指令或代码存储于计算机可读媒体上或通过计算机可读媒体来传输。其它实例及实施方案在本公开及所附权利要求书的范围内。例如,由于软件的本质,本文所描述的功能可使用由处理器执行的软件、硬件、固件、硬连线或这些中的任一个的组合来实施。实施功能的特征也可物理上位于各个位置处,包含经分布以使得功能的各部分在不同物理位置处实施。并且,如本文中(包含在权利要求书中)所使用,项目的列表(例如,以例如“中的至少一个”或“中的一或多个”的短语结尾的项目的列表)中所使用的“或”指示包含性列表,使得(例如)A、B或C中的至少一个的列表意指A或B或C或AB或AC或BC或ABC(即,A和B和C)。并且,如本文中所使用,短语“基于”不应被理解为提及一组封闭条件。例如,在不脱离本公开的范围的情况下,描述为“基于条件A”的示例性步骤可基于条件A和条件B两者。换句话说,如本文中所使用,短语“基于”应同样地解释为短语“至少部分地基于”。
计算机可读媒体包含非暂时性计算机存储装置媒体和通信媒体两者,通信媒体包含有助于将计算机程序从一个地方传递到另一地方的任何媒体。非暂时性存储媒体可以是任何可用的媒体,它可以由通用或专用计算机存取。举例来说且不加限制,非暂时性计算机可读媒体可包括RAM、ROM、电可擦除可编程只读存储器(EEPROM)、光盘(CD)ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或任何其它可用于载送或存储呈指令或数据结构形式的所要程序代码构件且可以通过通用或专用计算机或通用或专用处理器存取的非暂时性媒体。并且,任何连接被适当地称为计算机可读媒体。例如,如果软件从网站、服务器或其它远程源使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或红外、无线电和微波等无线技术传输,那么同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或红外、无线电和微波等无线技术包含在媒体的定义中。如本文中所使用,磁盘和光盘包含CD、激光光盘、光学光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘用激光以光学方式再现数据。这些项的组合同样包含在计算机可读媒体的范围内。
提供本文中的描述使得所属领域的技术人员能够进行或使用本公开。所属领域技术人员将清楚对本公开的各种修改,且本文中所定义的一般原理可应用于其它变化形式而不会脱离本公开的范围。因此,本发明不限于本文中所描述的实例和设计,而是被赋予与本文中所公开的原理和新颖特征一致的最宽范围。
Claims (25)
1.一种方法,其包括:
接收包括第一组位和第二组位的数据,其中所述第一组位中的每一位具有第一逻辑值且对应于第一组存储器单元中的第一存储器单元,所述第二组位中的每一位具有第二逻辑值且对应于第二组存储器单元中的第二存储器单元;
执行第一编程操作以将所述第二逻辑值写入到所述第一组存储器单元和所述第二组存储器单元中的每一存储器单元;
确定在执行所述第一编程操作之后所述第二组存储器单元中的一或多个是否存储所述第一逻辑值;以及
至少部分地基于所述确定,执行第二编程操作以将所述第一逻辑值写入到所述第一组存储器单元中的每一存储器单元或所述第二组存储器单元中的每一存储器单元。
2.根据权利要求1所述的方法,其进一步包括:
至少部分地基于确定在执行所述第一编程操作之后所述第二组存储器单元中的存储器单元存储所述第一逻辑值,选择用于所述第二编程操作的所述第二组存储器单元,其中执行所述第二编程操作至少部分地基于选择所述第二组存储器单元,并且其中所述第一组存储器单元和所述第二组存储器单元在执行所述第二编程操作之后存储是所述数据的反相版本的第二数据。
3.根据权利要求2所述的方法,其进一步包括:
至少部分地基于确定在执行所述第一编程操作之后所述第二组存储器单元中的所述存储器单元存储所述第一逻辑值,编程指示符以指示所述第一组存储器单元和所述第二组存储器单元存储所述第二数据。
4.根据权利要求1所述的方法,其进一步包括:
至少部分地基于确定在执行所述第一编程操作之后所述第二组存储器单元中的每一个存储所述第二逻辑值,选择用于所述第二编程操作的所述第一组存储器单元,其中执行所述第二编程操作至少部分地基于选择所述第一组存储器单元,并且其中所述第一组存储器单元和所述第二组存储器单元在执行所述第二编程操作之后存储所述数据。
5.根据权利要求4所述的方法,其进一步包括:
至少部分地基于所述确定在执行所述第一编程操作之后所述第二组存储器单元中的每一个存储所述第二逻辑值,编程指示符以指示所述第一组存储器单元和所述第二组存储器单元存储所述数据。
6.根据权利要求1所述的方法,其进一步包括:
至少部分地基于确定在执行所述第一编程操作之后所述第二组存储器单元中的每一个存储所述第二逻辑值,选择所述第一组存储器单元;以及
确定在执行所述第二编程操作之后所述第一组存储器单元中的一或多个是否存储所述第二逻辑值。
7.根据权利要求6所述的方法,其进一步包括:
至少部分地基于确定在执行所述第二编程操作之后所述第一组存储器单元中的存储器单元存储所述第二逻辑值,执行第三编程操作以将所述第一逻辑值写入到所述第二组存储器单元并将所述第二逻辑值写入到所述第一组存储器单元,其中所述第一组存储器单元和所述第二组存储器单元在执行所述第三编程操作之后存储是所述数据的反相版本的第二数据。
8.根据权利要求7所述的方法,其进一步包括:
至少部分地基于确定在执行所述第二编程操作之后所述第一组存储器单元中的所述存储器单元存储所述第二逻辑值,编程指示符以指示所述第一组存储器单元和所述第二组存储器单元存储所述第二数据。
9.根据权利要求1所述的方法,其中:
所述第二逻辑值与由具有超过上限的阈值电压的存储器单元存储的逻辑值相反,
执行所述第一编程操作以写入所述第二逻辑值包括跨所述第一组存储器单元和所述第二组存储器单元施加正电压;以及
执行所述第二编程操作以写入所述第一逻辑值包括跨所述第一组存储器单元或所述第二组存储器单元中的一者的每一存储器单元施加负电压。
10.根据权利要求9所述的方法,其中所述第一逻辑值和由具有超过所述上限的所述阈值电压的存储器单元存储的所述逻辑值对应于值零,且所述第二逻辑值对应于值一。
11.根据权利要求9所述的方法,其中所述第一组存储器单元包括具有超过所述上限的阈值电压的存储器单元,并且其中所述正电压的电平低于所述阈值电压。
12.根据权利要求1所述的方法,其中:
所述第二逻辑值与由具有低于下限的阈值电压的存储器单元存储的逻辑值相反,
执行所述第一编程操作以写入所述第二逻辑值包括跨所述第一组存储器单元和所述第二组存储器单元施加负电压;且
执行所述第二编程操作以写入所述第一逻辑值包括跨所述第一组存储器单元或所述第二组存储器单元中的一者的每一存储器单元施加正电压。
13.根据权利要求12所述的方法,其中所述第一逻辑值和由具有低于所述下限的所述阈值电压的存储器单元存储的所述逻辑值对应于值一,且所述第二逻辑值对应于值零。
14.根据权利要求1所述的方法,其进一步包括:
至少部分地基于接收到所述数据,在第一寄存器中存储所述第一组位并在第二寄存器中存储所述第二组位,其中所述确定所述第二组存储器单元中的一或多个是否存储所述第一逻辑值至少部分地基于存储在所述第一寄存器中的所述第一组位。
15.根据权利要求1所述的方法,其中执行所述第一编程操作包括:
执行识别由所述第二组存储器单元中的每一个存储的逻辑值的验证操作,其中所述确定所述第二组存储器单元中的一或多个是否存储所述第一逻辑值至少部分地基于所述验证操作。
16.一种设备,其包括:
存储器阵列,其包括第一组存储器单元和第二组存储器单元;
控制器,其与所述存储器阵列耦合且配置成:
接收包括第一组位和第二组位的数据,其中所述第一组位中的每一位具有第一逻辑值且对应于所述第一组存储器单元中的第一存储器单元,所述第二组位中的每一位具有第二逻辑值且对应于所述第二组存储器单元中的第二存储器单元;
执行第一编程操作以将所述第二逻辑值写入到所述第一组存储器单元和所述第二组存储器单元中的每一存储器单元;
确定在执行所述第一编程操作之后所述第二组存储器单元中的一或多个是否存储所述第一逻辑值;以及
至少部分地基于所述确定,执行第二编程操作以将所述第一逻辑值写入到所述第一组存储器单元中的每一存储器单元或所述第二组存储器单元中的每一存储器单元。
17.根据权利要求16所述的设备,其中所述控制器进一步配置成:
至少部分地基于确定在执行所述第一编程操作之后所述第二组存储器单元中的存储器单元存储所述第一逻辑值,选择用于所述第二编程操作的所述第二组存储器单元,其中执行所述第二编程操作至少部分地基于选择所述第二组存储器单元,其中所述第一组存储器单元和所述第二组存储器单元在执行所述第二编程操作之后存储是所述数据的反相版本的第二数据。
18.根据权利要求17所述的设备,其中所述控制器进一步配置成:
至少部分地基于确定在执行所述第一编程操作之后所述第二组存储器单元中的所述存储器单元存储所述第一逻辑值,编程指示符以指示所述第一组存储器单元和所述第二组存储器单元存储所述第二数据。
19.根据权利要求16所述的设备,其中所述控制器进一步配置成:
至少部分地基于确定在执行所述第一编程操作之后所述第二组存储器单元中的每一个存储所述第二逻辑值,选择用于所述第二编程操作的所述第一组存储器单元,其中执行所述第二编程操作至少部分地基于选择所述第一组存储器单元,其中所述第一组存储器单元和所述第二组存储器单元在执行所述第二编程操作之后存储所述数据。
20.根据权利要求19所述的设备,其中所述控制器进一步配置成:
至少部分地基于所述确定在执行所述第一编程操作之后所述第二组存储器单元中的每一个存储所述第二逻辑值,编程指示符以指示所述第一组存储器单元和所述第二组存储器单元存储所述数据。
21.根据权利要求16所述的设备,其中所述控制器进一步配置成:
至少部分地基于确定在执行所述第一编程操作之后所述第二组存储器单元中的每一个存储所述第二逻辑值,选择所述第一组存储器单元;
确定在执行所述第二编程操作之后所述第一组存储器单元中的一或多个是否存储所述第二逻辑值;以及
至少部分地基于确定在执行所述第二编程操作之后所述第一组存储器单元中的存储器单元存储所述第二逻辑值,执行第三编程操作以将所述第一逻辑值写入到所述第二组存储器单元并将所述第二逻辑值写入到所述第一组存储器单元,其中所述第一组存储器单元和所述第二组存储器单元在执行所述第三编程操作之后存储是所述数据的反相版本的第二数据。
22.一种存储包括指令的代码的非暂时性计算机可读媒体,所述指令在由电子装置的处理器执行时使所述电子装置进行以下操作:
接收包括第一组位和第二组位的数据,其中所述第一组位中的每一位具有第一逻辑值且对应于第一组存储器单元中的第一存储器单元,所述第二组位中的每一位具有第二逻辑值且对应于第二组存储器单元中的第二存储器单元;
执行第一编程操作以将所述第二逻辑值写入到所述第一组存储器单元和所述第二组存储器单元中的每一存储器单元;
确定在执行所述第一编程操作之后所述第二组存储器单元中的一或多个是否存储所述第一逻辑值;以及
至少部分地基于所述确定,执行第二编程操作以将所述第一逻辑值写入到所述第一组存储器单元中的每一存储器单元或所述第二组存储器单元中的每一存储器单元。
23.根据权利要求22所述的非暂时性计算机可读媒体,其中所述指令能够进一步由所述处理器执行以使所述电子装置进行以下操作:
至少部分地基于确定在执行所述第一编程操作之后所述第二组存储器单元中的存储器单元存储所述第一逻辑值,选择用于所述第二编程操作的所述第二组存储器单元,其中执行所述第二编程操作至少部分地基于选择所述第二组存储器单元,其中所述第一组存储器单元和所述第二组存储器单元在执行所述第二编程操作之后存储是所述数据的反相版本的第二数据。
24.根据权利要求22所述的非暂时性计算机可读媒体,其中所述指令能够进一步由所述处理器执行以使所述电子装置进行以下操作:
至少部分地基于确定在执行所述第一编程操作之后所述第二组存储器单元中的每一个存储所述第二逻辑值,选择用于所述第二编程操作的所述第一组存储器单元,其中执行所述第二编程操作至少部分地基于选择所述第一组存储器单元,其中所述第一组存储器单元和所述第二组存储器单元在执行所述第二编程操作之后存储所述数据。
25.根据权利要求22所述的非暂时性计算机可读媒体,其中所述指令能够进一步由所述处理器执行以使所述电子装置进行以下操作:
至少部分地基于确定在执行所述第一编程操作之后所述第二组存储器单元中的每一个存储所述第二逻辑值,选择用于所述第二编程操作的所述第一组存储器单元,其中所述第一组存储器单元和所述第二组存储器单元在执行所述第二编程操作之后存储所述数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/006,197 US11238945B1 (en) | 2020-08-28 | 2020-08-28 | Techniques for programming self-selecting memory |
US17/006,197 | 2020-08-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114121103A CN114121103A (zh) | 2022-03-01 |
CN114121103B true CN114121103B (zh) | 2022-10-14 |
Family
ID=80034521
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110987232.0A Active CN114121103B (zh) | 2020-08-28 | 2021-08-26 | 用于编程自选存储器的技术 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11238945B1 (zh) |
CN (1) | CN114121103B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE112020007189T5 (de) | 2020-05-13 | 2023-04-20 | Micron Technology, Inc. | Zählerbasierte verfahren und systeme zum zugreifen auf speicherzellen |
US11238945B1 (en) * | 2020-08-28 | 2022-02-01 | Micron Technology, Inc. | Techniques for programming self-selecting memory |
US11367484B1 (en) | 2021-01-21 | 2022-06-21 | Micron Technology, Inc. | Multi-step pre-read for write operations in memory devices |
US11615854B2 (en) | 2021-04-02 | 2023-03-28 | Micron Technology, Inc. | Identify the programming mode of memory cells during reading of the memory cells |
US11514983B2 (en) | 2021-04-02 | 2022-11-29 | Micron Technology, Inc. | Identify the programming mode of memory cells based on cell statistics obtained during reading of the memory cells |
US11664073B2 (en) | 2021-04-02 | 2023-05-30 | Micron Technology, Inc. | Adaptively programming memory cells in different modes to optimize performance |
US11664074B2 (en) | 2021-06-02 | 2023-05-30 | Micron Technology, Inc. | Programming intermediate state to store data in self-selecting memory cells |
US11694747B2 (en) | 2021-06-03 | 2023-07-04 | Micron Technology, Inc. | Self-selecting memory cells configured to store more than one bit per memory cell |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108806746A (zh) * | 2017-04-28 | 2018-11-13 | 美光科技公司 | 混合式交叉点存储器装置及其操作方法 |
CN111465987A (zh) * | 2017-12-14 | 2020-07-28 | 美光科技公司 | 多层自选择存储器装置 |
CN111465988A (zh) * | 2017-12-14 | 2020-07-28 | 美光科技公司 | 存取自选择存储器装置的技术 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101246833B1 (ko) * | 2007-12-20 | 2013-03-28 | 삼성전자주식회사 | 저항체를 이용한 비휘발성 메모리 장치, 이를 포함하는메모리 시스템, 및 이의 구동 방법 |
US9570175B2 (en) * | 2013-08-05 | 2017-02-14 | Jonker Llc | Incrementally programmable non-volatile memory |
US9286450B2 (en) * | 2014-02-07 | 2016-03-15 | Bank Of America Corporation | Self-selected user access based on specific authentication types |
US9042160B1 (en) * | 2014-07-03 | 2015-05-26 | Sandisk Technologies Inc. | Memory device with resistive random access memory (ReRAM) |
US11238945B1 (en) * | 2020-08-28 | 2022-02-01 | Micron Technology, Inc. | Techniques for programming self-selecting memory |
-
2020
- 2020-08-28 US US17/006,197 patent/US11238945B1/en active Active
-
2021
- 2021-08-26 CN CN202110987232.0A patent/CN114121103B/zh active Active
-
2022
- 2022-01-11 US US17/573,229 patent/US11749360B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108806746A (zh) * | 2017-04-28 | 2018-11-13 | 美光科技公司 | 混合式交叉点存储器装置及其操作方法 |
CN111465987A (zh) * | 2017-12-14 | 2020-07-28 | 美光科技公司 | 多层自选择存储器装置 |
CN111465988A (zh) * | 2017-12-14 | 2020-07-28 | 美光科技公司 | 存取自选择存储器装置的技术 |
Also Published As
Publication number | Publication date |
---|---|
US11238945B1 (en) | 2022-02-01 |
US20220208291A1 (en) | 2022-06-30 |
US11749360B2 (en) | 2023-09-05 |
CN114121103A (zh) | 2022-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114121103B (zh) | 用于编程自选存储器的技术 | |
US11139016B1 (en) | Read refresh operation | |
US12014779B2 (en) | Programming techniques for polarity-based memory cells | |
US11798622B2 (en) | Refresh operation of a memory cell | |
KR102704064B1 (ko) | 극성 기록 메모리 셀에 대한 가변 극성 판독 동작 | |
US11783897B2 (en) | Memory cells for storing operational data | |
US11568952B2 (en) | Adjustable programming pulses for a multi-level cell | |
WO2023278946A1 (en) | Programming techniques for polarity-based memory cells | |
EP4399708A1 (en) | Cross point array architecture for multiple decks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |