CN112449693B - 在存储系统的两遍编程之前执行读取操作 - Google Patents
在存储系统的两遍编程之前执行读取操作 Download PDFInfo
- Publication number
- CN112449693B CN112449693B CN201880092010.9A CN201880092010A CN112449693B CN 112449693 B CN112449693 B CN 112449693B CN 201880092010 A CN201880092010 A CN 201880092010A CN 112449693 B CN112449693 B CN 112449693B
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- memory cells
- memory cell
- programming
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 309
- 238000012545 processing Methods 0.000 claims description 47
- 238000012937 correction Methods 0.000 claims description 25
- 238000000034 method Methods 0.000 claims description 22
- 230000004044 response Effects 0.000 claims description 9
- 230000003287 optical effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- 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
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- 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/08—Address circuits; Decoders; Word-line control 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/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/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- 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/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
- G11C16/3427—Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
-
- 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
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
从多个存储器单元中的存储器单元的第一部分读取数据。通过将新数据提供到所述多个存储器单元中的另一存储器单元,对所述另一存储器单元执行第一编程遍次。通过基于所述存储器单元的所述第一部分的所述读取将额外数据提供到所述存储器单元的所述第一部分,对所述存储器单元执行第二编程遍次。所述第一编程遍次及所述第二编程遍次对应于与所述多个存储器单元相关联的两遍编程操作。
Description
技术领域
本公开大体上涉及一种存储系统,且更确切地说,涉及在存储系统的两遍编程之前执行读取操作。
背景技术
存储系统(例如,固态驱动器)可包含存储数据的一或多个存储器组件。举例来说,存储系统可包含存储器装置,例如非易失性存储器装置。存储系统可进一步包含可管理存储器装置中的每一个及分配将存储于存储器装置处的数据的控制器。主机系统可利用存储系统及从存储系统请求数据。控制器可从对应存储器装置检索数据及将检索到的数据返回到主机系统。
附图说明
根据下文给出的详细描述及本公开的各种实施方案的附图,将更充分地理解本公开。
图1说明根据本公开的一些实施例的包含存储系统的实例计算环境。
图2是根据本公开的一些实施例的用于在两遍编程之前执行读取操作的实例方法的流程图。
图3是根据本公开的一些实施例的用于对在存储器单元的部分处读取的数据执行错误校正操作的实例方法的流程图。
图4说明根据本公开的一些实施例的对存储器装置的存储器单元执行两遍编程的实例。
图5是本公开的实施方案可在其中操作的实例计算机系统的框图。
具体实施方式
本公开的方面涉及在存储系统的两遍编程之前执行读取操作。一般来说,主机系统可利用包含一或多个存储器装置的存储系统。存储系统的实例是固态驱动器(SSD)。主机系统可提供将存储于存储系统处的数据及可请求从存储系统检索数据。
存储系统可将数据存储在包含在存储系统中的存储器装置。存储器装置可包含存储器单元。存储器单元中的每一个可存储对应于从主机系统接收的数据的二进制数据的一或多个位。存储器装置可包含四层级单元(QLC)存储器。在QLC存储器中,每一存储器单元可存储四个数据位。举例来说,在QLC存储器中,存储器单元可存储对应于从主机系统接收的数据的四个数据位(例如,1111、0000、1101等)。存储器单元的每个位存储于存储器单元的不同部分(下文还称为“页”)处。QLC存储器的存储器单元可具有总共四个页。举例来说,存储器单元可包含下页(LP)、上页(UP)、额外页(XP)及首页(TP),其中每个页存储数据位。举例来说,位可由存储器单元的四个页中的每一个表示。
一般来说,存储系统可从主机系统接收请求,以执行编程操作来将数据存储在QLC存储器处。存储系统然后可在存储器单元上执行两遍编程操作。在两遍编程操作的第一编程遍次期间,控制器可将数据编程或写入到存储系统的存储器单元的三个部分。举例来说,控制器可编程(例如,将数据写入到)存储器单元的LP、UP及XP。
在闪存存储器中,彼此相邻或接近的存储器单元可耦合,使得提供给第一存储器单元的数据可更改先前存储在与第一存储器单元相邻或接近的第二存储器单元处的数据。举例来说,第一存储器单元的LP、UP及XP的编程可更改存储在第二存储器单元的XP处的数据。所述更改可为经施加以对第一存储器单元进行编程的电压也会影响存储在第二存储器单元处的数据的电压的结果。第二存储器单元的XP的此更改可导致存储在第二存储器单元的XP处的数据的错误。因此,在第一编程遍次期间对第一存储器单元执行的编程操作可提高先前存储在与第一存储器单元相邻或接近的第二存储器单元处的数据的错误率。因此,在常规的两遍编程操作中的第二编程遍次期间,存储系统可对第二存储器单元的第一部分执行读取操作。举例来说,存储系统可对第二存储器单元的XP执行读取操作。
在读取操作的执行期间,存储系统可确定存储在第二存储器单元的XP处的数据是否包含错误。如果存储系统确定存储在第二存储器单元的XP处的数据包含错误,则存储系统可使用错误校正操作来校正第二存储器单元的XP处的错误。在第二存储器单元的第二编程遍次期间,存储系统也可对第二存储器单元的第二部分进行编程。举例来说,存储系统可在执行第二存储器单元的XP的读取操作及错误校正之后,对第二存储器单元的TP执行编程操作。然后,控制器可对第二存储器单元的第一部分进行编程。举例来说,存储系统可通过将在读取操作期间通过错误校正操作校正的数据提供到XP来对第二存储器单元的XP进行编程,及可在经校正数据被提供到XP之后对第二存储器单元的TP进行编程。
然而,闪存存储器的数据传递速率(下文还称为“带宽”)可在第一编程遍次与第二编程遍次之间改变。举例来说,在第一编程遍次期间的带宽可大于在第二编程遍次期间的带宽。因此,在具有低于第一编程遍次的带宽的第二编程遍次期间执行三个操作(例如,XP的读取操作及TP及XP的两个编程操作)可在执行编程或写入操作时增加存储系统的时延,从而导致降低存储系统的性能。
此外,在常规存储系统中,如果在两遍编程操作期间出现电力丢失,则可能没有足够的时间来从存储器装置读取数据及对数据执行任何错误校正操作。因此,可在已完成两遍编程操作之后读取数据。如果数据包含错误并且用于校正错误的错误校正操作不成功,则可将先前在两遍编程操作期间编程到存储器单元的数据重新编程到新的存储器单元。这导致对存储器装置执行的编程操作的量增加,因为相同数据被编程两次(例如,一次被编程到与不成功的错误校正操作相关联的存储器单元及一次被编程到新的存储器单元)。这可能导致在执行编程或写入操作时增加存储系统的时延,从而导致降低存储系统的性能。
本公开的方面通过在两遍编程操作之前执行读取操作来解决以上及其它缺陷。可对存储器装置的存储器单元的第一部分执行读取操作。在读取操作期间,可识别与存储在存储器单元的第一部分处的数据相关联的错误。如果识别到错误,则可对数据执行错误校正操作以校正数据。可通过提供将存储在另一存储器单元处的数据来执行两遍编程操作中的第一编程遍次。
然后对在第一编程遍次之前读取的存储器单元执行两遍编程操作中的第二编程遍次。通过基于在第一编程遍次之前对存储器单元的第一部分执行的读取操作将数据提供到存储器单元的第一部分,存储系统执行第二编程遍次。在一个实施方案中,提供通过错误校正操作校正的数据以存储在存储器单元的第一部分处。举例来说,可将经校正数据提供到存储器单元的XP。在一些实施方案中,从存储器单元的第一部分读取的数据可确定为不包含错误。因此,可将在第一编程遍次期间读取的数据提供到存储器单元的第一部分以刷新存储在存储器单元处的数据。
因此,通过在具有比第一编程遍次低的宽带的第二编程遍次之前执行额外操作(例如,存储器单元的读取操作),在两遍编程操作之前执行读取操作可引起改进存储系统的性能。因此,减少用于在存储系统处执行第一及第二编程遍次两者的总体时间。因此,可通过减少在将数据编程或写入到存储系统时存储系统的时延来改进存储系统的性能。
另外,在电力丢失的情况下,在两遍编程操作之前执行读取操作可引起改进存储系统的性能。通过在执行两遍编程操作之前执行读取操作,可在对包含与不成功的错误校正操作相关联的数据的存储器单元执行任何编程操作之前识别对数据的不成功错误校正操作。响应于不成功的错误校正操作,可识别用于将被执行两遍编程操作的新存储器单元,而不是存储与不成功的错误校正操作相关联的数据的存储器单元。这可减少由存储系统执行的编程操作的次数,从而通过减小在电力丢失的情况下存储系统的时延而引起改进存储系统的性能。
图1说明根据本公开的一些实施方案的包含存储器系统的实例计算环境100。存储器系统可包含媒体,例如存储器装置112A到112N。存储器装置112A到112N可为易失性存储器装置、非易失性存储器装置,或这类装置的组合。在一些实施例中,存储器系统是存储系统(例如,存储系统110)。存储系统110的实例是固态驱动器(SSD)。一般来说,计算环境100可包含使用存储系统110的主机系统120。在一些实施方案中,主机系统120可将数据写入到存储系统110并且从存储系统110读取数据。在一些实施例中,存储器系统是混合式存储器/存储系统。
主机系统120可为计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置或包含存储器及处理装置的此种计算装置。主机系统120可包含或耦合到存储系统110,使得主机系统120可从存储系统110读取数据或将数据写入到存储系统110。主机系统120可经由物理主机接口耦合到存储系统110。如本文中所使用,“耦合到”通常指代组件之间的连接,其可为间接通信连接或直接通信连接(例如,不具有介入组件),无论有线或无线,包含例如电连接、光学连接、磁性连接等连接。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行连接的SCSI(SAS)等。物理主机接口可用于在主机系统120与存储系统110之间传输数据。当存储系统110通过PCIe接口与主机系统120耦合时,主机系统120可进一步利用NVM高速(NVMe)接口来存取存储器装置112A到112N。物理主机接口可提供用于在存储系统110与主机系统120之间传递控制、地址、数据及其它信号的接口。
如图1中所示,存储系统110可包含控制器111及存储器装置112A到112N。在一些实施方案中,存储器装置112A到112N可基于非易失性存储器。在一些实施方案中,存储器装置112A到112N可为“与非”(NAND)类型闪存存储器。存储器装置112A到112N中的每一个可包含存储器单元的一或多个阵列,所述存储器单元例如单层级单元(SLC)或多层级单元(MLC)(例如,三层级单元(TLC)或四层级单元(QLC))。在一些实施方案中,特定存储器装置可包含存储器单元的SLC部分及MLC部分两者。存储器单元中的每一个可存储由主机系统120使用的数据位(例如,数据块)。尽管描述例如NAND类型闪存存储器的非易失性存储器装置,但是存储器装置112A到112N可基于任何其它类型的存储器,例如易失性存储器。在一些实施方案中,存储器装置112A到112N可为但不限于随机存取存储器(RAM)、只读存储器(ROM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、相变存储器(PCM)、磁性随机存取存储器(MRAM)、“或非”(NOR)闪存存储器、电可擦除可编程只读存储器(EEPROM)及非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。另外,与许多基于闪存的存储器相反,交叉点非易失性存储器可执行就地写入操作,其中可在先前未擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。此外,存储器装置112A到112N的存储器单元可分组为存储器页或数据块,其可指用于存储数据的存储器装置的单元。
控制器111可与存储器装置112A到112N通信以执行操作,例如在存储器装置112A到112N处读取数据、写入数据或擦除数据及其它此类操作。控制器111可包含硬件,例如一或多个集成电路及/或离散组件、处理装置、缓冲存储器;软件,例如固件或其它指令;或其组合。一般来说,控制器111可从主机系统120接收命令或操作,且可将所述命令或操作转换为指令或适当命令以实现对存储器装置112A到112N的所需存取。控制器111可负责与存储器装置112A到112N相关联的其它操作,例如耗损均衡操作、垃圾收集操作、错误检测及错误校正码(ECC)操作、加密操作、高速缓存操作,以及逻辑块地址与物理地址之间的地址转译。控制器111可进一步包含主机接口电路系统,以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收到的命令转换成存取存储器装置112A到112N的命令指令,以及将与存储器装置112A到112N相关联的响应转换成用于主机系统120的信息。
参考图1,控制器111可包含可用于对存储器装置112A到112N执行编程操作(例如,第一及第二编程遍次)的编程序列组件113。编程序列组件113可识别存储器装置112A到112N的存储器单元。编程序列组件113可对所识别存储器单元执行第一编程遍次。随后,编程序列组件113可对所识别存储器单元执行第二编程遍次。在一些实施方案中,编程序列组件113可对从所识别存储器单元读取的数据执行错误校正操作。下文描述关于编程序列组件113的操作的其它细节。
存储系统110还可包含未说明的额外电路系统或组件。在一些实施方案中,存储系统110可包含缓存及缓冲器(例如,DRAM),及地址电路系统(例如,行解码器及列解码器),所述地址电路系统可从控制器111接收地址及对地址进行解码以存取存储器装置112A到112N。
图2是根据本公开的一些实施例的用于在两遍编程之前执行读取操作的实例方法200的流程图。方法200可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施方案中,方法200可通过图1的编程序列组件113执行。
在框210处,读取存储器装置的存储器单元的第一部分。举例来说,可读取在存储器单元的XP处的数据。在一些实施方案中,在前一编程操作(例如,先前两遍编程操作的先前第一编程遍次)期间将从存储器单元的第一部分读取的数据写入到存储器单元。在一个实施方案中,响应于将其它数据存储在存储器装置处的请求,读取存储器单元的第一部分。在一些实施方案中,处理装置可确定在存储器单元的第一部分处读取的数据包含错误。因此,可对在第一部分处读取的数据执行错误校正操作。在一些实施方案中,错误校正码(ECC)操作或另一类型的错误检测和校正操作可用于检测及校正错误。举例来说,如果在存储器单元的第一部分处读取的数据对应于值1,则可通过将值从1改变到0来校正错误。在框220处,对存储器装置的另一存储器单元执行第一编程遍次。举例来说,可将新数据提供到另一存储器单元。在一些实施方案中,在框210处读取的存储器单元及另一存储器单元可处于存储器装置的同一字线上。举例来说,存储器单元可与同一字线处的另一存储器单元耦合。在一个实施方案中,可将数据提供到另一存储器单元的LP、UP及XP。举例来说,可将从主机系统接收的数据写入到另一存储器单元的LP、UP及XP。
在框230处,通过将额外数据提供到存储器单元的第二部分,对存储器单元执行第二编程遍次。举例来说,可将额外数据提供到第二存储器单元的TP。在一些实施方案中,提供到第二存储器单元的TP的数据可对应于从主机系统接收的数据。在框240处,第二编程遍次基于存储器单元的第一部分的读取将数据提供到存储器单元的第一部分。举例来说,如果在框210处在存储器单元的XP处读取的数据包含错误,则处理装置可将经校正数据提供到存储器单元的XP。在实施方案中,处理装置可确定在XP处读取的数据不包含错误。因此,处理装置可将在框210处读取的数据提供到存储器单元的XP,以刷新存储在存储器单元的XP处的数据。
因此,可相对于第一存储器单元及第二存储器单元执行两遍编程操作。在执行两遍编程操作的第一编程遍次之前,可执行读取操作以从第二存储器单元的部分检索数据。在先前的两遍编程操作期间将检索的数据编程到第二存储器单元。可校正来自检索到的数据的错误以产生经校正数据。可对第一存储器单元执行两遍编程操作的第一编程遍次。然后,第二编程遍次可将额外数据提供到第二存储器单元的另一部分。然后,可通过将经校正数据提供到第二存储器单元的部分对第二存储器单元执行第二编程遍次。因此,如果另一编程遍次无意地改变存储在第二存储器单元的部分处的数据,则将经校正数据提供到存储器单元的第二部分可确保存储在第二存储器单元的部分处的数据不包含错误。
图3是根据本公开的一些实施例的用于对在存储器单元的部分处读取的数据执行错误校正操作的实例方法300的流程图。方法300可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施方案中,方法300可通过图1的编程序列组件113执行。
在框310处,读取存储器单元的部分。举例来说,可从先前作为先前两遍编程操作中的第一编程遍次的一部分被编程的存储器单元的XP中读取数据。在框320处,处理装置确定存储在存储器单元的部分处的数据是否包含错误。举例来说,处理装置可确定存储在存储器单元的XP处的数据是否包含错误。在框330处,如果存储器单元的部分不包含错误,则可将数据提供到存储器单元的部分。举例来说,处理装置可将在框310处读取的数据提供到存储器单元的XP。在一个实施方案中,处理装置可在新的两遍编程操作的第二编程遍次期间将数据提供到存储器单元的部分。
在框340处,如果处理装置确定存储器单元的部分包含错误,则处理装置可对数据执行错误校正操作。举例来说,处理装置可执行对应于ECC的错误校正操作。在一个实施方案中,处理装置可通过将数据的位值从0切换到1或反之亦然来校正错误。在框350处,可将经校正数据提供到存储器单元的部分。举例来说,可将来自框340的经校正数据提供到存储器单元的XP。在实施方案中,可在两遍编程操作的第二编程遍次期间将经校正数据提供到第二存储器单元的部分。
图4说明根据本公开的一些实施例的对存储器装置的存储器单元400执行两遍编程操作的实例。在一些实施方案中,可通过图1的编程序列组件113执行两遍编程操作。如先前所论述,可对存储器装置的存储器单元400中的第一存储器单元及第二存储器单元执行两遍编程操作。在实施方案中,第一存储器单元及第二存储器单元可为QLC存储器。
在第一编程遍次之前,处理装置对存储器单元执行读取操作。举例来说,可对存储器单元的XP(例如,XP1)执行读取操作。在一些实施方案中,可对从存储器单元读取的数据执行错误校正操作。在第一第一编程遍次期间,可对另一存储器单元的第一部分执行编程操作。举例来说,可将数据提供到另一存储器单元的LP。在一些实施方案中,另一存储器单元的LP的编程可在对存储器单元的XP执行读取操作期间或在执行读取操作之后开始。可对另一存储器单元的第二部分执行编程操作。举例来说,可将数据提供到另一存储器单元的UP。在实施方案中,可在另一存储器单元的LP的编程和/或存储器单元的XP的读取期间对另一存储器单元的UP进行编程。可对另一存储器单元的第三部分执行编程操作。举例来说,可将数据提供到另一存储器单元的XP(例如,XP2)。在一个实施方案中,可在另一存储器单元的LP的编程、存储器单元的XP的读取,及/或另一存储器单元的UP的编程期间对另一存储器单元的XP进行编程。
处理装置可开始对存储器单元执行第二编程遍次。第二编程遍次可通过对存储器单元的第二部分执行编程操作开始。举例来说,可将数据提供到存储器单元的TP。可对存储器单元的第一部分执行编程操作。举例来说,可将数据提供到存储器单元的XP(例如,XP1)。在一个实施方案中,如先前所论述,可基于对存储器单元的第一部分的读取操作将经校正数据提供到存储器单元的XP。在一些实施方案中,可在存储器单元的TP的编程期间对存储器单元的XP进行编程。
图5说明计算机系统500的实例机器,在所述计算机系统内可执行用于使机器执行本文中所论述的方法中的任何一或多种的指令集。举例来说,计算机系统500可对应于包含或利用存储系统(例如,图1的存储系统110)的主机系统(例如,图1的主机系统120),或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的编程序列组件113的操作)。在替代实施方案中,机器可连接(例如,联网)到LAN、内联网、外联网及/或互联网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。
所述机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够执行(依序或以其它方式)指定将由所述机器采取的动作的指令集的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一组(或多组)指令以执行本文中所论述的方法中的任何一或多种。
实例计算机系统500包含处理装置502、主存储器504(例如,只读存储器(ROM)、闪存存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器506(例如,闪存存储器、静态随机存取存储器(SRAM)等),及数据存储系统518,其经由总线530彼此通信。
处理装置502表示一或多个通用处理装置,例如微处理器、中央处理单元等。更具体来说,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置502也可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置502经配置以执行指令526以用于执行本文中所论述的操作及步骤。计算机系统500可进一步包含网络接口装置508以在网络520上通信。
数据存储系统518可包含机器可读存储媒体524(也称为计算机可读媒体),其上存储有体现本文中所描述的任何一或多种方法或功能的一或多个指令526或软件的集。指令526还可在其由计算机系统500执行期间完全地或至少部分地驻存在主存储器504内及/或处理装置502内,主存储器504及处理装置502也构成机器可读存储媒体。机器可读存储媒体524、数据存储系统518,及/或主存储器504可对应于图1的存储系统110。
在一个实施方案中,指令526包含用于实施对应于编程序列组件(例如,图1的编程序列组件113)的功能的指令。尽管机器可读存储媒体524在实例实施方案中示为单个媒体,但是术语“机器可读存储媒体”应被认为包含存储一或多个指令集的单个媒体或多个媒体(例如,集中化或分布式数据库,及/或相关联的缓存及服务器)。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集合且使机器执行本公开的方法中的任何一种或多种的任何媒体。因此,术语“机器可读存储媒体”应被认为包含但不限于固态存储器、光学媒体以及磁性媒体。
已在针对计算机存储器内的数据位的操作的算法及符号表示方面呈现了先前详细描述的一些部分。这些算法描述及表示是数据处理领域的技术人员用于将其工作的主旨最有效地传达给本领域其它技术人员的方式。在本文中且一般将算法构想为产生所需结果的步骤的自恰序列。操作是要求对物理量进行物理控制的操作。通常(但未必),这些量采用能够被存储、组合、比较及以其它方式控制的电信号或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为位、值、元件、符号、字符、术语、数目等是方便的。
然而,应牢记,所有这些及类似术语应与适当物理量相关联,且仅仅是应用于这些量的方便标签。除非另外明确地说明,否则如从以上论述显而易见,应了解,在整个描述中,本公开的方面可指将表示为计算机系统的寄存器及存储器内的物理(电子)量的数据控制及变换成类似地表示为计算机系统存储器或寄存器或其它此类信息存储系统内的物理量的其它数据的计算机系统或类似电子计算装置的动作及过程。
本公开还涉及一种用于执行本文中的操作的设备。此设备可专门构造用于所需目的,或其可包括通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘,包含软盘、光盘、CD-ROM及磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适合于存储电子指令并且各自耦合到计算机系统总线的任何类型的媒体。
本文中呈现的算法及显示器并非在本质上与任何特定计算机或其它设备相关。各种通用系统可根据本文中的教示与程序一起使用,或其可证明为便于构造更专用设备以执行所述方法。如下文的描述中阐述,将明白各种这些系统的结构。另外,不参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施如本文所描述的本公开的教示。
本公开可提供为计算机程序产品或软件,其可包含在其上存储有指令的机器可读媒体,所述指令可用于编程计算机系统(或其它电子装置)以执行根据本公开的过程。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。举例来说,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、闪存存储器装置等。
在前述说明书中,本公开的实施方案已经参考其特定的实例实施方案进行描述。将显而易见的是,可在不脱离所附权利要求书中阐述的本公开的实施方案的更广精神及范围的情况下对其进行各种修改。因此,说明书及图式应被视为具有说明性意义而非限制性意义。
Claims (20)
1.一种系统,包括:
存储器;及
处理装置,其与所述存储器可操作地耦合以:
从多个存储器单元中的存储器单元的第一部分读取数据;
通过将新数据提供到所述多个存储器单元中的另一存储器单元,对所述另一存储器单元执行第一编程遍次;及
通过基于所述数据从所述存储器单元的所述第一部分的所述读取将额外数据提供到所述存储器单元的所述第一部分,对所述存储器单元执行第二编程遍次,其中所述第一编程遍次及所述第二编程遍次对应于与所述多个存储器单元相关联的两遍编程操作。
2.根据权利要求1所述的系统,其中为了从所述存储器单元的所述第一部分读取所述数据,所述处理装置进一步用于:
确定存储在所述存储器单元的所述第一部分处的所述数据包括错误;及
对存储在所述多个存储器单元中的所述存储器单元处的所述数据执行错误校正操作以产生所述额外数据。
3.根据权利要求1所述的系统,其中为了通过将新数据提供到所述另一存储器单元来对所述另一存储器单元执行所述第一编程遍次,所述处理装置进一步用于:
将所述新数据提供到所述另一存储器单元的多个页。
4.根据权利要求1所述的系统,其中为了对所述存储器单元执行所述第二编程遍次,所述处理装置进一步用于:
将数据提供到所述存储器单元的特定页。
5.根据权利要求1所述的系统,其中所述处理装置进一步用于:
接收将存储在所述多个存储器单元处的后续数据,其中从所述多个存储器单元中的所述存储器单元的所述第一部分读取所述数据是响应于接收到将存储在所述多个存储器单元处的所述后续数据的。
6.根据权利要求1所述的系统,其中所述多个存储器单元中的所述存储器单元及所述另一存储器单元处于同一字线上。
7.根据权利要求1所述的系统,其中为了从所述存储器单元的所述第一部分读取所述数据,所述处理装置进一步用于:
确定从所述存储器单元的所述第一部分读取的所述数据不包括错误;及
响应于确定从所述存储器单元的所述第一部分读取的所述数据不包括错误,提供所述额外数据以刷新存储在所述多个存储器单元中的所述存储器单元的所述第一部分处的所述数据。
8.一种方法,包括:
从多个存储器单元中的存储器单元的第一部分读取数据;
由处理装置通过将新数据提供到所述多个存储器单元中的另一存储器单元来对所述另一存储器单元执行第一编程遍次;及
通过基于所述数据从所述存储器单元的所述第一部分的所述读取将额外数据提供到所述存储器单元的所述第一部分,对所述存储器单元执行第二编程遍次,其中所述第一编程遍次及所述第二编程遍次对应于与所述多个存储器单元相关联的两遍编程操作。
9.根据权利要求8所述的方法,其中从所述存储器单元的所述第一部分读取所述数据包括:
确定存储在所述存储器单元的所述第一部分处的所述数据包括错误;及
对存储在所述多个存储器单元中的所述存储器单元处的所述数据执行错误校正操作以产生所述额外数据。
10.根据权利要求8所述的方法,其中通过将所述新数据提供到所述另一存储器单元来对所述另一存储器单元执行所述第一编程遍次包括:
将所述新数据提供到所述另一存储器单元的多个页。
11.根据权利要求8所述的方法,其中对所述存储器单元执行所述第二编程遍次包括:
将数据提供到所述存储器单元的特定页。
12.根据权利要求8所述的方法,其进一步包括:
接收将存储在所述多个存储器单元处的后续数据,其中从所述多个存储器单元中的所述存储器单元的所述第一部分读取所述数据是响应于接收到将存储在所述多个存储器单元处的所述数据的。
13.根据权利要求8所述的方法,其中所述多个存储器单元中的所述存储器单元及所述另一存储器单元处于同一字线上。
14.根据权利要求8所述的方法,其中从所述存储器单元的所述第一部分读取所述数据包括:
确定从所述存储器单元的所述第一部分读取的所述数据不包括错误;及
响应于确定从所述存储器单元的所述第一部分读取的所述数据不包括错误,提供所述额外数据以刷新存储在所述多个存储器单元中的所述存储器单元的所述第一部分处的所述数据。
15.一种非暂时性计算机可读存储媒体,其包括在由处理装置执行时使所述处理装置执行以下操作的指令:
从多个存储器单元中的存储器单元的第一部分读取数据;
通过将新数据提供到另一存储器单元,对所述另一存储器单元执行第一编程遍次;及
通过基于所述数据从所述存储器单元的所述第一部分的所述读取将额外数据提供到所述存储器单元的所述第一部分,对所述存储器单元执行第二编程遍次,其中所述第一编程遍次及所述第二编程遍次对应于与所述多个存储器单元相关联的两遍编程操作。
16.根据权利要求15所述的非暂时性计算机可读存储媒体,其中为了从所述存储器单元的所述第一部分读取所述数据,所述处理装置进一步用于:
确定存储在所述存储器单元的所述第一部分处的所述数据包括错误;及
对存储在所述多个存储器单元中的所述存储器单元处的所述数据执行错误校正操作以产生所述额外数据。
17.根据权利要求15所述的非暂时性计算机可读存储媒体,其中为了通过将数据提供到所述另一存储器单元来对所述另一存储器单元执行所述第一编程遍次,所述处理装置进一步用于:
将所述新数据提供到所述另一存储器单元的多个页。
18.根据权利要求15所述的非暂时性计算机可读存储媒体,其中为了对所述存储器单元执行所述第二编程遍次,所述处理装置进一步用于:
将数据提供到所述存储器单元的特定页。
19.根据权利要求15所述的非暂时性计算机可读存储媒体,其中所述处理装置进一步用于:
接收将存储在所述多个存储器单元处的后续数据,其中从所述多个存储器单元中的所述存储器单元的所述第一部分读取所述数据是响应于接收到将存储在所述多个存储器单元处的所述数据的。
20.根据权利要求15所述的非暂时性计算机可读存储媒体,其中为了从所述存储器单元的所述第一部分读取所述数据,所述处理装置进一步用于:
确定从所述存储器单元的所述第一部分读取的所述数据不包括错误;及
响应于确定从所述存储器单元的所述第一部分读取的所述数据不包括错误,提供所述额外数据以刷新存储在所述多个存储器单元中的所述存储器单元的所述第一部分处的所述数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410602477.0A CN118363787A (zh) | 2018-03-07 | 2018-03-07 | 在存储系统的两遍编程之前执行读取操作 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/078340 WO2019169586A1 (en) | 2018-03-07 | 2018-03-07 | Performing read operation prior to two-pass programming of storage system |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410602477.0A Division CN118363787A (zh) | 2018-03-07 | 2018-03-07 | 在存储系统的两遍编程之前执行读取操作 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112449693A CN112449693A (zh) | 2021-03-05 |
CN112449693B true CN112449693B (zh) | 2024-05-24 |
Family
ID=67846421
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410602477.0A Pending CN118363787A (zh) | 2018-03-07 | 2018-03-07 | 在存储系统的两遍编程之前执行读取操作 |
CN201880092010.9A Active CN112449693B (zh) | 2018-03-07 | 2018-03-07 | 在存储系统的两遍编程之前执行读取操作 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410602477.0A Pending CN118363787A (zh) | 2018-03-07 | 2018-03-07 | 在存储系统的两遍编程之前执行读取操作 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10991440B2 (zh) |
CN (2) | CN118363787A (zh) |
WO (1) | WO2019169586A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114258531A (zh) * | 2019-08-22 | 2022-03-29 | 美光科技公司 | 非易失性存储器的多遍编程的粒度错误报告 |
CN113409850A (zh) * | 2021-06-17 | 2021-09-17 | 芯天下技术股份有限公司 | 一种提高编程效率的方法、装置、存储介质和终端 |
KR20240112940A (ko) * | 2021-12-02 | 2024-07-19 | 양쯔 메모리 테크놀로지스 씨오., 엘티디. | 메모리 디바이스, 메모리 시스템 및 그 프로그램 동작 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2680811A1 (en) * | 2008-09-25 | 2010-03-25 | Research In Motion Limited | System and method for analyzing movements of an electronic device |
CN101960436A (zh) * | 2008-02-29 | 2011-01-26 | 高通股份有限公司 | 针对地址/控制信号使用双倍数据速率方案的具有减少的接口引脚需要的双通道存储器架构 |
CN103222006A (zh) * | 2010-11-02 | 2013-07-24 | 美光科技公司 | 回拷操作 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1180356C (zh) * | 2001-11-27 | 2004-12-15 | 华为技术有限公司 | 一种双通道共享存储器的实现方法 |
CN2704877Y (zh) * | 2003-11-03 | 2005-06-15 | 戴主文 | 硬盘双通道插拔接口 |
US8014209B2 (en) * | 2008-07-02 | 2011-09-06 | Sandisk Technologies Inc. | Programming and selectively erasing non-volatile storage |
CN202049471U (zh) * | 2010-12-06 | 2011-11-23 | 李晟 | 双通道硬盘加速装置 |
US20140040773A1 (en) * | 2012-07-31 | 2014-02-06 | Apple Inc. | Transient Panel Enabling Message Correction Capabilities Prior to Data Submission |
WO2016028717A1 (en) * | 2014-08-17 | 2016-02-25 | Aplus Flash Technology, Inc | Vsl-based vt-compensation and analog program scheme for nand array without csl |
US10540228B2 (en) * | 2018-03-07 | 2020-01-21 | Micron Technology, Inc. | Providing data of a memory system based on an adjustable error rate |
-
2018
- 2018-03-07 WO PCT/CN2018/078340 patent/WO2019169586A1/en active Application Filing
- 2018-03-07 CN CN202410602477.0A patent/CN118363787A/zh active Pending
- 2018-03-07 US US16/636,309 patent/US10991440B2/en active Active
- 2018-03-07 CN CN201880092010.9A patent/CN112449693B/zh active Active
-
2021
- 2021-04-26 US US17/241,015 patent/US11688475B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101960436A (zh) * | 2008-02-29 | 2011-01-26 | 高通股份有限公司 | 针对地址/控制信号使用双倍数据速率方案的具有减少的接口引脚需要的双通道存储器架构 |
CA2680811A1 (en) * | 2008-09-25 | 2010-03-25 | Research In Motion Limited | System and method for analyzing movements of an electronic device |
CN103222006A (zh) * | 2010-11-02 | 2013-07-24 | 美光科技公司 | 回拷操作 |
Also Published As
Publication number | Publication date |
---|---|
US20210043263A1 (en) | 2021-02-11 |
CN112449693A (zh) | 2021-03-05 |
US20210249093A1 (en) | 2021-08-12 |
US10991440B2 (en) | 2021-04-27 |
US11688475B2 (en) | 2023-06-27 |
CN118363787A (zh) | 2024-07-19 |
WO2019169586A1 (en) | 2019-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111954863B (zh) | 基于可调整错误率提供存储器系统的数据 | |
US11455194B2 (en) | Management of unmapped allocation units of a memory sub-system | |
US11682446B2 (en) | Selective wordline scans based on a data state metric | |
CN111819631B (zh) | 减缓存储器子系统中存储器单元的电压状况 | |
CN114981892A (zh) | 预读取及读取阈值电压优化 | |
CN114174976B (zh) | 从多个写入操作模式选择写入操作模式 | |
US11688475B2 (en) | Performing read operation prior to two-pass programming of storage system | |
US11836392B2 (en) | Relocating data to low latency memory | |
US11282567B2 (en) | Sequential SLC read optimization | |
CN112673429A (zh) | 与写入操作相关联的预读取操作的调整 | |
US10977182B2 (en) | Logical block mapping based on an offset | |
US20230207028A1 (en) | Managing an adaptive data path selection threshold for a memory sub-system | |
US11599300B2 (en) | Voltage threshold prediction-based memory management | |
US11436154B2 (en) | Logical block mapping based on an offset | |
US20230064822A1 (en) | Temperature controlled media management operations at a memory sub-system |
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 |