CN111161781A - 用于处理编程错误的存储器系统及其方法 - Google Patents
用于处理编程错误的存储器系统及其方法 Download PDFInfo
- Publication number
- CN111161781A CN111161781A CN201911077636.5A CN201911077636A CN111161781A CN 111161781 A CN111161781 A CN 111161781A CN 201911077636 A CN201911077636 A CN 201911077636A CN 111161781 A CN111161781 A CN 111161781A
- Authority
- CN
- China
- Prior art keywords
- memory
- command
- firmware
- location
- programming operation
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 210
- 238000000034 method Methods 0.000 title claims description 23
- 238000012545 processing Methods 0.000 title description 10
- 239000000872 buffer Substances 0.000 claims description 56
- 230000004044 response Effects 0.000 claims description 15
- 238000011084 recovery Methods 0.000 claims description 4
- 239000010410 layer Substances 0.000 description 23
- 239000004065 semiconductor Substances 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 238000013519 translation Methods 0.000 description 9
- 238000012937 correction Methods 0.000 description 6
- 102100030999 Phosphoglucomutase-1 Human genes 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 101100481703 Arabidopsis thaliana TMK2 gene Proteins 0.000 description 4
- 101000583553 Homo sapiens Phosphoglucomutase-1 Proteins 0.000 description 4
- 101001072903 Homo sapiens Phosphoglucomutase-2 Proteins 0.000 description 3
- 102100036629 Phosphoglucomutase-2 Human genes 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 101100481704 Arabidopsis thaliana TMK3 gene Proteins 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 101001114057 Homo sapiens P antigen family member 1 Proteins 0.000 description 1
- 102100023219 P antigen family member 1 Human genes 0.000 description 1
- 101710105361 Phosphoglucomutase 1 Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012005 ligant binding assay Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 239000004557 technical material Substances 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
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/3468—Prevention of overerasure or overprogramming, e.g. by verifying whilst erasing or writing
- G11C16/3481—Circuits or methods to verify correct programming of nonvolatile memory cells whilst programming is in progress, e.g. by detecting onset or cessation of current flow in cells and using the detector output to terminate programming
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- 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
- 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
-
- 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/52—Protection of memory contents; Detection of errors in memory contents
-
- 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/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/1057—Data output buffers, e.g. comprising level conversion circuits, circuits for adapting load
-
- 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/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/1084—Data input buffers, e.g. comprising level conversion circuits, circuits for adapting load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/004—Error avoidance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/82—Solving problems relating to consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7209—Validity control, e.g. using flags, time stamps or sequence numbers
-
- 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/0409—Online test
-
- 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
- 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/44—Indication or identification of errors, e.g. for repair
- G11C29/4401—Indication or identification of errors, e.g. for repair for self repair
-
- 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/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/76—Masking faults in memories by using spares or by reconfiguring using address translation or modifications
- G11C29/765—Masking faults in memories by using spares or by reconfiguring using address translation or modifications in solid state disks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请针对存储器系统提供了一种处理编程错误的方案,该存储器系统包括存储器装置和控制器,控制器包括固件和存储器接口。固件向存储器接口发出用于编程操作的命令。在检测到特定存储块中的失败编程操作之后,固件将编程操作重新路由到不同存储块中的不同位置,并且采取进一步动作以减少发生了失败编程操作的相同存储块中发生后续错误的可能性。
Description
相关申请的交叉引用
本申请要求于2018年11月7日提交的申请号为62/756,950的美国临时申请的权益,该申请的全部内容通过引用并入本文。
技术领域
本公开的实施例涉及一种用于存储器系统的编程错误处理方案。
背景技术
计算机环境范例已经转变为可随时随地使用的普适计算系统。因此,诸如移动电话、数码相机和笔记本计算机的便携式电子装置的使用已经快速增长。这些便携式电子装置通常使用具有存储器装置的存储器系统,即数据存储装置。数据存储装置用作便携式电子装置的主存储器装置或辅助存储器装置。
使用存储器装置的存储器系统因不具有移动部件而提供优良的稳定性、耐用性、高信息存取速度以及低功耗。具有这种优点的存储器系统的示例包括通用串行总线(USB)存储器装置、诸如通用闪存(UFS)的具有各种接口的存储卡以及固态驱动器(SSD)。
在存储器系统中,可能发生诸如编程错误的各种错误。在这种背景下,提出了本发明的实施例。
发明内容
本发明的各方面涉及一种用于处理存储器系统中的编程错误的方案。
在一个方面,存储器系统包括:存储器装置,包括多个块;以及控制器,包括固件和联接到多个块的存储器接口。固件向存储器接口发出用于编程操作的命令,使得存储器接口存储包括用于第一编程操作的第一命令和用于第二编程操作的第二命令的命令,并控制存储器装置以响应于所存储的命令来顺序地执行第一和第二编程操作。固件检测对多个块之中选择的块的第一位置执行的第一编程操作是否失败。当检测到第一编程操作失败时,固件控制存储器接口以将第一编程操作重新路由(reoute)到多个块之中除选择的块之外的块中的第二位置,并取消第二编程操作。
在另一方面,提供了一种用于操作控制器的方法,该控制器包括固件和存储器接口,该存储器接口联接到存储器装置中的多个块。该方法包括:由固件向存储器接口发出用于编程操作的命令,该命令包括用于第一编程操作的第一命令和用于第二编程操作的第二命令,使得存储器接口存储命令并控制存储器装置以响应于所存储的命令来顺序地执行第一和第二编程操作;由固件检测对多个块之中选择的块的第一位置执行的第一编程操作是否失败;并且当检测到第一编程操作失败时,由固件控制存储器接口以将第一编程操作重新路由到多个块之中除选择的块之外的块中的第二位置,并且取消第二编程操作。
从以下描述中,本发明另外的方面将变得显而易见。
附图说明
图1是示出根据本发明的实施例的数据处理系统的框图。
图2是示出根据本发明的实施例的存储器系统的框图。
图3是示出根据本发明的实施例的存储器装置的存储块的电路图。
图4是示出根据本发明的实施例的存储器系统的示图。
图5是示出根据本发明的实施例的存储器系统的操作的示图。
图6是示出根据本发明的实施例的超级块布局的示图。
图7是示出根据本发明的实施例的存储器系统的操作的流程图。
图8是示出根据本发明的实施例的存储器系统的操作的流程图。
具体实施方式
以下参照附图更详细地描述各个实施例。然而,本发明可以不同形式实施,因此不应被解释为限于本文阐述的实施例。相反地,提供这些实施例以使本公开是彻底且充分的,并且将本发明的范围全面地传达给本领域技术人员。此外,本文中对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。在整个公开中,相同的附图标记在本发明的附图和实施例中表示相同的部件。
本发明可以多种方式实施,包括作为进程;设备;系统;呈现在计算机可读存储介质上的计算机程序产品;和/或处理器,诸如适于执行存储在联接到处理器的存储器上的指令和/或由联接到处理器的存储器提供的指令的处理器。在本说明书中,这些实施方式或本发明可能采取的任何其它形式可被称为技术。通常,公开进程的步骤的顺序可在本发明的范围内改变。除非另有说明,否则被描述为适于执行任务的诸如处理器或者存储器的部件可被暂时配置为在给定时间执行任务的一般部件或被制造为执行任务的特定部件。如本文所使用的,术语“处理器”等指适于处理诸如计算机程序指令的数据的一个或多个装置、电路和/或处理内核。
下面提供了本发明的实施例的详细描述以及示出本发明各方面的附图。结合这些实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求限定。本发明包括权利要求范围内的许多替换、修改和等同方案。为了提供对本发明的全面理解,在下面的描述中阐述了许多具体细节。为了示例的目的提供这些细节,并且可在没有一些或所有这些具体细节的情况下,根据权利要求实施本发明。为了清楚,没有详细描述与本发明相关的技术领域中公知的技术内容,以免不必要地模糊本发明。
图1是示出根据本发明的实施例的数据处理系统2的框图。
参照图1,数据处理系统2可包括主机装置5和存储器系统10。存储器系统10可从主机装置5接收请求并且响应于接收的请求而操作。例如,存储器系统10可存储待由主机装置5访问的数据。
主机装置5可利用各种类型电子装置中的任意一种来实施。在各个实施例中,主机装置5可包括诸如以下的电子装置:台式计算机、工作站、三维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、和/或数字视频记录器以及数字视频播放器。在各个实施例中,主机装置5可包括诸如以下的便携式电子装置:移动电话、智能电话、电子书、MP3播放器、便携式多媒体播放器(PMP)和/或便携式游戏机。
存储器系统10可利用诸如固态驱动器(SSD)和存储卡的各种类型的存储装置中的任意一种来实施。在各个实施例中,存储器系统10可被提供为诸如以下的电子装置中的各种部件中的一种:计算机、超移动个人计算机(PC)(UMPC)、工作站、上网本计算机、个人数字助理(PDA)、便携式计算机、网络平板PC、无线电话、移动电话、智能电话、电子书阅读器、便携式多媒体播放器(PMP)、便携式游戏装置、导航装置、黑盒、数码相机、数字多媒体广播(DMB)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、数据中心的存储装置、能够在无线环境中接收和发送信息的装置、射频识别(RFID)装置以及家庭网络的各种电子装置中的一种、计算机网络的各种电子装置中的一种、远程信息处理网络的各种电子装置中的一种或计算系统的各种部件中的一种。
存储器系统10可包括存储器控制器100和半导体存储器装置200。存储器控制器100可控制半导体存储器装置200的全部操作。为了简单,在下文中有时将存储器控制器100和半导体存储器装置200分别称为控制器100和存储器装置200。
半导体存储器装置200可在存储器控制器100的控制下执行一个或多个擦除操作、编程操作和读取操作。半导体存储器装置200可通过输入/输出线接收命令CMD、地址ADDR和数据DATA。半导体存储器装置200可通过电源线接收电力PWR,并且通过控制线接收控制信号CTRL。根据存储器系统10的设计和配置,控制信号CTRL可包括命令锁存使能信号、地址锁存使能信号、芯片使能信号、写入使能信号、读取使能信号以及其它操作信号。
存储器控制器100和半导体存储器装置200可被集成在诸如固态驱动器(SSD)的单个半导体装置中。SSD可包括用于在其中存储数据的存储装置。当在SSD中使用半导体存储器系统10时,可显著提高联接到存储器系统10的主机装置(例如,图1的主机装置5)的操作速度。
存储器控制器100和半导体存储器装置200可被集成在诸如存储卡的单个半导体装置中。例如,存储器控制器100和半导体存储器装置200可被如此集成以配置:个人计算机存储卡国际协会(PCMCIA)的个人计算机(PC)卡、紧凑式闪存(CF)卡、智能媒体(SM)卡、记忆棒、多媒体卡(MMC)、缩小尺寸的多媒体卡(RS-MMC)、微型版本的MMC(微型MMC)、安全数字(SD)卡、迷你安全数字(迷你SD)卡、微型安全数字(微型SD)卡、高容量安全数字(SDHC)和/或通用闪存(UFS)。
图2是示出根据本发明的实施例的存储器系统的框图。例如,图2的存储器系统可描述图1所示的存储器系统10。
参照图2,存储器系统10可包括存储器控制器100和半导体存储器装置200。存储器系统10可响应于来自主机装置(例如,图1的主机装置5)的请求而操作,并且特别地,存储待由主机装置访问的数据。
存储器装置200可存储待由主机装置访问的数据。
存储器装置200可利用诸如动态随机存取存储器(DRAM)和/或静态随机存取存储器(SRAM)的易失性存储器装置或诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电随机存取存储器(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)和/或电阻式RAM(RRAM)的非易失性存储器装置来实施。
控制器100可控制数据在存储器装置200中的存储。例如,控制器100可响应于来自主机装置的请求来控制存储器装置200。控制器100可将从存储器装置200读取的数据提供到主机装置并可将从主机装置提供的数据存储到存储器装置200中。
控制器100可包括通过总线160联接的存储装置110、可被实施为诸如中央处理单元(CPU)的处理器的控制部件120、错误校正码(ECC)部件130、主机接口(I/F)140和存储器接口(I/F)150。
存储装置110可用作存储器系统10和控制器100的工作存储器,并且存储用于驱动存储器系统10和控制器100的数据。当控制器100控制存储器装置200的操作时,存储装置110可存储由控制器100和存储器装置200用于诸如读取操作、写入操作、编程操作和擦除操作的操作的数据。
存储装置110可利用诸如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)的易失性存储器实施。如上所述,存储装置110可将主机装置使用的数据存储在存储器装置200中,以用于读取操作和写入操作。为了存储数据,存储装置110可包括程序存储器、数据存储器、写入缓冲器、读取缓冲器、映射缓冲器等。
控制部件120可控制存储器系统10的一般操作,以及响应于来自主机装置的写入请求或读取请求控制用于存储器装置200的写入操作或读取操作。控制部件120可驱动被称为闪存转换层(FTL)的固件来控制存储器系统10的一般操作。例如,FTL可执行诸如逻辑到物理(L2P)映射、损耗均衡、垃圾收集和/或坏块处理的操作。L2P映射被称为逻辑块寻址(LBA)。
ECC部件130可检测并校正在读取操作期间从存储器装置200读取的数据中的错误。当错误位的数量大于或等于可校正错误位的阈值数量时,ECC部件130可不校正错误位,并且相反地,可输出指示校正错误位失败的错误校正失败信号。
在各个实施例中,ECC部件130可基于诸如以下的编码调制来执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)码、turbo码、turbo乘积码(TPC)、里德-所罗门(Reed-Solomon,RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)或分组编码调制(BCM)。然而,错误校正不限于这些技术。这样,ECC部件130可包括适于错误校正操作的任意和所有电路、系统或装置。
主机接口140可通过诸如以下的各种接口协议中的一种或多种与主机装置通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、高速非易失性存储器(NVMe)以及通用闪存(UFS)。
存储器接口150可提供在控制器100和存储器装置200之间的接口,以允许控制器100响应于来自主机装置的请求来控制存储器装置200。存储器接口150可在控制部件120的控制下生成用于存储器装置200的控制信号并处理数据。当存储器装置200是诸如NAND闪速存储器的闪速存储器时,存储器接口150可在控制部件120的控制下生成用于存储器的控制信号并处理数据。
存储器装置200可包括存储器单元阵列210、控制电路220、电压生成电路230、行解码器240、可以是页面缓冲器阵列形式的页面缓冲器250、列解码器260以及输入和输出(输入/输出)电路270。存储器单元阵列210可包括可存储数据的多个存储块211。电压生成电路230、行解码器240、页面缓冲器阵列250、列解码器260和输入/输出电路270可形成存储器单元阵列210的外围电路。外围电路可执行存储器单元阵列210的编程操作、读取操作或擦除操作。控制电路220可控制外围电路。
电压生成电路230可生成各种电平的操作电压。例如,在擦除操作中,电压生成电路230可生成各种电平的操作电压,诸如擦除电压和通过电压。
行解码器240可与电压生成电路230和多个存储块211电通信。行解码器240可响应于由控制电路220生成的行地址而在多个存储块211之中选择至少一个存储块,并将从电压生成电路230提供的操作电压传送到选择的存储块。
页面缓冲器阵列250可通过位线BL与存储器单元阵列210联接(如图3所示)。响应于由控制电路220生成的页面缓冲器控制信号,页面缓冲器阵列250可利用正电压对位线BL进行预充电,在编程操作和读取操作中向选择的存储块传输数据以及从选择的存储块接收数据,或者临时存储传输的数据。
列解码器260可向页面缓冲器阵列250传输数据和从页面缓冲器阵列250接收数据,或者向输入/输出电路270传输数据和从输入/输出电路270接收数据。
输入/输出电路270可通过输入/输出电路270向控制电路220传输从外部装置(例如,图1的存储器控制器100)接收的命令和地址,将数据从外部装置传输到列解码器260,或将数据从列解码器260输出到外部装置。
控制电路220可响应于命令和地址控制外围电路。
图3是示出根据本发明的实施例的半导体存储器装置的存储块的电路图。例如,图3的存储块可以是图2所示的存储器单元阵列210的存储块211中的任意一个。
参照图3,示例性存储块211可包括联接到行解码器240的多个字线WL0至WLn-1、漏极选择线DSL和源极选择线SSL。这些线可并行地布置,其中多个字线处于DSL与SSL之间。
示例性存储块211可进一步包括分别联接到位线BL0至BLm-1的多个单元串221。每列的单元串可包括一个或多个漏极选择晶体管DST和一个或多个源极选择晶体管SST。在所示实施例中,每一个单元串具有一个DST和一个SST。在单元串中,多个存储器单元或存储器单元晶体管MC0至MCn-1可串联联接在选择晶体管DST和SST之间。存储器单元中的每一个可被形成为多层单元。例如,存储器单元中的每一个可被形成为存储1位数据的单层单元(SLC)。存储器单元中的每一个可被形成为存储2位数据的多层单元(MLC)。存储器单元中的每一个可被形成为存储3位数据的三层单元(TLC)。存储器单元中的每一个可被形成为存储4位数据的四层单元(QLC)。
每个单元串中的SST的源极可联接到共源线CSL,并且每个DST的漏极可联接到对应的位线。单元串中的SST的栅极可联接到SSL,并且单元串中的DST的栅极可联接到DSL。跨越单元串的存储器单元的栅极可联接到各自的字线。也就是说,存储器单元MC0的栅极联接到相应的字线WL0,存储器单元MC1的栅极联接到相应的字线WL1等。联接到特定字线的存储器单元组可被称为物理页面。因此,存储块211中的物理页面的数量可对应于字线的数量。
页面缓冲器阵列250可包括联接到位线BL0至BLm-1的多个页面缓冲器251。页面缓冲器251可响应于页面缓冲器控制信号进行操作。例如,在读取或验证操作期间,页面缓冲器251可临时存储通过位线BL0至BLm-1接收的数据,或者感测位线的电压或电流。
在一些实施例中,存储块211可包括NAND型闪速存储器单元。然而,存储块211不限于这种单元类型,而是可包括NOR型闪速存储器单元。存储器单元阵列210可被实施为混合闪速存储器或1-NAND闪速存储器,其中混合闪速存储器中组合了两种或更多种类型的存储器单元,1-NAND闪速存储器中控制器嵌入在存储器芯片内部。
在一些实施例中,存储块211可包括NAND型闪速存储器单元。然而,存储块211不限于这种单元类型,而是可包括NOR型闪速存储器单元。存储器单元阵列210可被实施为混合闪速存储器或1-NAND闪速存储器,其中混合闪速存储器中组合了两种或更多种类型的存储器单元,1-NAND闪速存储器中控制器嵌入在存储器芯片内部。
诸如闪速存储器(例如,NAND闪速存储器)的存储器装置可包括多个存储块(例如,数百至数千个存储块)。每个块通常可包括多个字线(例如,数百个字线)。联接到每个字线的每个单元可包括多个逻辑页面。存储器装置可包括多个存储器单元,并且通过编程操作将单元调制成不同的状态或编程电压(PV)电平来存储每单元多个位。
图4是示出根据本发明的实施例的存储器系统的示图。
参照图4,存储器系统可包括控制器100和存储器装置200。存储器装置200可包括多个平面PLANE0至PLANE(k-1)。多个平面中的每一个可包括多个块BLK0至BLK(p-1)。多个块中的每一个包括多个页面。多个页面中的每一个可具有物理地址。
控制器100可包括控制组件120和存储器接口150。控制组件120可包括固件(FW)120A。在一些实施例中,固件120A可包括主机接口层(HIL)、闪存转换层(FTL)以及闪存接口层(FIL)。
主机接口层可控制图2中的主机接口140的操作。例如,主机接口层可从主机5接收与待执行的操作和存储器装置200中的相关位置相关联的命令(例如,用于编程操作、读取操作和擦除操作的命令)、数据和/或逻辑地址(LBA)。进一步地,主机接口层可将命令、数据和/或地址转发到闪存转换层。
闪存转换层可控制图2中的控制组件120的操作。例如,闪存转换层可从主机接口层接收逻辑地址,并将该逻辑地址转换成物理地址。进一步地,闪存转换层可从主机接口层接收命令,并将该命令转换成操作命令。此外,闪存转换层可从主机接口层接收数据,并将该数据提供到闪存接口层。
闪存接口层可控制图2中的存储器接口150的操作。例如,闪存接口层可从闪存转换层接收数据、物理地址和操作命令,并将数据、物理地址和操作命令传送到存储器接口150。
存储器接口150可包括先进先出(FIFO)缓冲器150A。存储器接口150可从控制器120接收数据、物理地址和操作命令。存储器接口150可根据FIFO方案将操作命令存储在FIFO缓冲器150A中。进一步地,存储器接口150可根据FIFO方案将所存储的操作命令CMD输出到存储器装置200。换言之,存储器接口150可控制存储器装置200以对存储器装置200中的至少一个块执行操作(例如,编程操作、读取操作或擦除操作)。
在一些实施例中,存储器接口150可基于延迟(或异步)命令执行方法来处理操作命令。根据延迟命令执行方法,固件120A可向存储器接口150发出(或提交)用于编程操作的命令,而与命令将何时执行或以什么顺序执行以及它们相应的操作完成无关。固件120A可不处理命令定时、数据传送和状态检查。进一步地,固件120A可不具有特定命令的当前状态的任何指示。因此,发生在相同存储块上的紧接(back-to-back)的编程错误的数量可能增加,存储器接口150中用于处理这种错误的保留硬件资源的量也可能增加。因此,期望提供一种用于处理编程错误的方案,以减少或最小化已失败存储块上的编程错误的数量和用于处理编程错误的保留资源的量。
图5是示出根据本发明的实施例的存储器系统的操作的示图。
参照图5,存储器系统可包括控制器和存储器装置200。如图5所示,控制器可包括控制组件120的固件(FW)120A和存储器接口150的FIFO缓冲器150A。在一些实施例中,当存储器装置200利用闪速存储器(例如,NAND闪速存储器)实施时,存储器接口150可用作闪存控制器。
固件120A可向存储器接口150的FIFO缓冲器150A发出用于操作的命令CMD。作为示例而非限制,命令可包括用于第一编程操作的第一编程命令PGM1和用于第二编程操作的第二编程命令PGM2。可对存储器装置200中的多个块之中的选择的块的第一位置(LOCATIONA)(例如,页面)执行第一编程操作。可进行设置以对选择的块中与第一位置相邻的后续位置执行第二编程操作。进一步地,命令可包括对应于第一编程命令PGM1的第一读取命令RD1。
存储器接口150可从固件120A接收发出的命令,并将所接收的命令存储在FIFO缓冲器150A中。作为示例而非限制,存储器接口150可接收第一编程命令PGM1、第二编程命令PGM2和第一读取命令RD1并将其存储在FIFO缓冲器150A中。在一些实施例中,FIFO缓冲器150A可包括与命令的优先级相对应的FIFO。例如,FIFO缓冲器150A可包括用于存储低优先级命令(例如,编程命令或擦除命令)的FIFO和用于存储高优先级命令(例如,读取命令)的FIFO。换言之,FIFO缓冲器150A可包括用于存储编程命令PGM1、PGM2的第一FIFO(FIFO1)和用于存储读取命令RD1的第二FIFO(FIFO2)。FIFO缓冲器150A可将其中存储的命令输出到存储器装置200,使得对应于所存储的命令的操作被顺序地执行。
FIFO缓冲器150A可基于延迟(或异步)命令执行方法来输出命令。换言之,FIFO缓冲器150A可在时间t2向存储器装置200发出存储在其中的命令,而固件120A可在时间t1向FIFO缓冲器150A发出命令,该时间t1不同于时间t2。
在一些实施例中,固件120A可响应于来自存储器装置200的状态信号,检测对选择的块的第一位置的第一编程操作是否失败。当检测到第一编程操作失败时,固件120A可控制FIFO缓冲器150A以将第一编程操作重新路由到第二位置(LOCATION B),该第二位置(LOCATION B)不同于第一位置(LOCATION A)。例如,第二位置可位于除第一位置的块之外的块中。因此,可从存储器装置200中的多个块之中的剩余块中选择第二位置的块。因此,可对第一编程操作PGM1的数据重新编程。
在一些实施例中,固件120A可取消所有发出的对已失败存储块的编程操作的编程命令。当对选择的存储块的第一编程操作失败并且将对相同存储块执行第二编程操作时,固件120A可取消第二编程操作。因此,通过取消相同块中可能导致另一编程错误(即,紧接的编程错误)的编程操作,固件120A可减少恢复时间和为处理编程错误而保留的硬件资源。
进一步地,固件120A可将对已失败存储块的读取操作重新路由到另一存储块,使得可保持与读取操作相关联的数据完整性,并且可能不会丢失相应的读取数据。例如,固件120A可将对已失败存储块的第一位置(LOCATION A)的读取操作重新路由到第二位置(LOCATION B)。第二位置(LOCATION B)可以是第一编程操作被重新路由到的相同位置。
图6是示出根据本发明的实施例的存储器装置的超级块布局的示图。
参照图6,存储器装置可包括多个存储块BLK0至BLK3。存储块BLK0至BLK3中的每一个可包括多个页面PAGE0至PAGE(q-1)。存储块BLK0至BLK3可由图4和图5的存储器接口150来编程。
在一些实施例中,存储器接口150可将存储块BLK0至BLK3配置为超级块,并且对该超级块执行编程操作。当固件120A异步地发出用于对超级块的编程操作的命令时,存储器接口150的FIFO缓冲器150A可接收并存储用于对超级块的页面PAGE0的单触发编程操作的第一编程命令和用于对超级块的页面PAGE1的单触发编程操作的第二编程命令。FIFO缓冲器150A可顺序地向存储器装置200发出第一编程命令和第二编程命令。首先,可对存储块BLK0至BLK3的页面PAGE0执行单触发编程。当存储器装置200对存储块BLK2的页面PAGE0执行编程操作时,可能发生编程错误。此时,可能发出了对存储块BLK0至BLK3的页面PAGE1的单触发编程操作,但尚未执行。因此,存储块BLK2可包括具有编程错误的页面、编程待处理页面(即,发出了编程操作但尚未执行)和剩余页面。在一些实施例中,可能需要从计算有效页面计数中排除剩余页面,这将在下面说明。
图7是示出根据本发明的实施例的存储器系统的操作700的流程图。操作700可由图4和图5的固件120A来执行。
参照图7,在步骤710,固件120A可向存储器接口150的FIFO缓冲器150A发出用于编程操作的命令。命令可包括用于第一编程操作的第一命令和用于第二编程操作的第二命令。存储器接口150可存储命令并控制存储器装置200以响应于所存储的命令来顺序地执行第一和第二编程操作。在一些实施例中,可对存储器装置200的多个块之中的选择的块的第一位置执行第一编程操作,并且可进行设置以对选择的块的后续位置(相对于第一位置)执行第二编程操作。
在步骤720,固件120A可检测对选择的块的第一位置的第一编程操作是否失败。换言之,固件120A可检测针对第一位置的第一编程操作是否发生错误。
在步骤730,当检测到第一编程操作失败(在720中为是)时,固件120A可控制存储器接口150以将第一编程操作重新路由到多个块之中与具有第一位置的块不同的块中的第二位置。进一步地,固件120A可控制存储器接口150以取消作为对选择的块的后续编程操作的第二编程操作。
在步骤740,固件120A可控制存储器接口150以对第二位置执行第一编程操作。
在步骤750,当第一编程操作成功时,即,未检测到失败(720中为否)时,固件120A可对选择的块的后续位置执行第二编程操作。
图8是示出根据本发明的实施例的用于处理存储器系统中的编程错误的操作800的流程图。当对存储器装置200中的已失败存储块的第一位置(例如,页面)的第一编程操作失败时,可执行操作800。操作800可由图4和图5的固件120A来执行。
参照图8,在步骤810,固件120A可暂停对FIFO缓冲器150A的处理,即暂停命令流进入和离开FIFO缓冲器150A,并且搜索FIFO缓冲器150A以找到待处理命令,即等待执行的命令。进一步地,固件120A可删除FIFO缓冲器150A中的待处理命令,并且将待处理命令备份到单独的数据缓冲器中。因此,FIFO缓冲器150A不再存储任何命令。
在步骤820,固件120A可在没有命令的情况下恢复对FIFO缓冲器150A的处理。进一步地,固件120A可向存储器装置200的页面缓冲器发出读取命令,以便提取用户数据。此外,固件120A可在诸如闪存转换层(FTL)表的映射表中将已失败存储块标记为有缺陷。
在步骤830,固件120A可将失败的编程操作重新路由到与已失败存储块不同的存储块中的另一位置。不同的存储块可以是存储器装置200中的剩余存储块中的任意一个。进一步地,固件120A可将除用于对已失败存储块进行操作的编程命令之外的所有先前待处理命令恢复到FIFO缓冲器150A。
在步骤840,固件120A可取消对已失败存储块中的后续位置(例如,页面或字线)的编程操作。取消操作可以是不将用于对已失败存储块的操作的编程命令恢复到FIFO缓冲器150A的结果。可删除FIFO缓冲器150A中剩余的任何这样的命令,在这种情况下,这将用作取消操作。
在步骤850,固件120A可取消对已失败存储块中的失败位置和后续位置的读取和/或读取错误恢复操作。换言之,固件120A可不恢复(或删除)FIFO缓冲器150A中的相应命令。进一步地,固件120A可将读取操作重新路由到已失败编程操作被重新定向到的相同位置。
在步骤860,固件120A可调整已失败存储块的有效计数。例如,当以单触发编程方案对超级块执行编程操作时,固件120A需要在将编程失败位置添加到缺陷映射表之后减少超级块大小。超级块的有效计数可通过以下等式(等式1)来调整:
MaxValidCountOfSuperBlock=
(PhysicalBlockValidCount–
(FailedWordLineNumber-OverlappingMetaDataAtTheEndOfSuperBlock)
*ValidCountPerPhysicalPage)…………………(等式1)
在等式1中,MaxValidCountOfSuperBlock表示超级块的最大有效计数,PhysicalBlockValidCount表示物理块的有效计数,FailedWordLineNumber表示超级块中的失败字线的数量,ValidCountPerPhysicalPage表示每物理页面的有效计数,OverlappingMetaDataAtTheEndOfSuperBlock表示超级块末端的重叠元数据。
进一步地,固件120A可调整已失败存储块中与奇偶校验相关联的有效页面的数量。例如,固件120A可通过奇偶校验组中取消的编程操作的数量来调整正进行的奇偶校验操作的有效页面的数量。需要取消的编程操作已在映射表中计数(例如,芯片猎杀/奇偶校验映射),因此需要调整计数器。
此外,固件120A可调整奇偶校验位置发生的编程失败中的排队/延迟的奇偶校验组结构。固件120A可能不会在等待奇偶校验计数器匹配XOR缓冲器的数量的同时,停止向超级块中的另一管芯发出(或提交)编程操作。固件120A可具有需要清除的未完成(或排队的)奇偶校验页面的单独队列。固件120A可将奇偶校验页面与用户页面一起保留,因此当在这些平面中的一个中发生编程错误时,需要调整其结构。
如上所述,实施例提供了一种用于处理存储器系统中的编程错误的方案。实施例可将对已失败存储块的编程操作重新路由到另一位置,并且取消对已失败存储块的所有待处理编程操作。因此,可减少已失败存储块上的编程错误的数量和用于处理编程错误的保留资源的量。
虽然为了清楚和理解的目的已经详细说明和描述了前述实施例,但是本发明不限于所提供的细节。正如本领域技术人员根据前述公开内容将理解的,存在许多实施本发明的可选方式。因此,公开的实施例是说明性的,而非限制性的。本发明旨在涵盖落入权利要求范围内的所有修改和替换。
Claims (18)
1.一种存储器系统,包括:
存储器装置,包括多个块;以及
控制器,包括固件和存储器接口,所述存储器接口联接到所述多个块,
其中所述固件:
向所述存储器接口发出用于编程操作的命令,所述命令包括用于第一编程操作的第一命令和用于第二编程操作的第二命令,使得所述存储器接口存储所述命令,并且控制所述存储器装置以响应于所存储的命令来顺序地执行所述第一编程操作和所述第二编程操作;
检测对所述多个块之中的选择的块的第一位置执行的所述第一编程操作是否失败;以及
当检测到所述第一编程操作失败时,控制所述存储器接口以将所述第一编程操作重新路由到所述多个块之中除所述选择的块之外的块中的第二位置,并且取消所述第二编程操作。
2.根据权利要求1所述的存储器系统,其中所述存储器接口包括先进先出缓冲器,即FIFO缓冲器,以FIFO方案来存储和输出所述第一命令和所述第二命令。
3.根据权利要求2所述的存储器系统,其中进行设置以对所述选择的块中与所述第一位置相邻的后续位置执行所述第二编程操作。
4.根据权利要求3所述的存储器系统,其中所述固件删除所述FIFO缓冲器中的所述第二命令,以取消所述第二编程操作。
5.根据权利要求4所述的存储器系统,其中所述固件将所述第二命令备份到数据缓冲器中。
6.根据权利要求5所述的存储器系统,其中在对所述第二位置执行所述第一编程操作之后,所述固件将所述第二命令从所述数据缓冲器恢复到所述FIFO缓冲器。
7.根据权利要求4所述的存储器系统,其中所述固件向所述存储器接口发出读取命令,以检测所述第一编程操作是否失败。
8.根据权利要求7所述的存储器系统,其中所述固件取消对所述第一位置的读取操作和读取错误恢复操作,并且控制所述存储器接口以对所述第二位置执行读取操作。
9.根据权利要求4所述的存储器系统,其中所述固件调整所述选择的块的有效计数和与奇偶校验相关联的有效页面的数量。
10.一种操作控制器的方法,所述控制器包括固件和存储器接口,所述存储器接口联接到存储器装置中的多个块,所述方法包括:
由所述固件向所述存储器接口发出用于编程操作的命令,所述命令包括用于第一编程操作的第一命令和用于第二编程操作的第二命令,使得所述存储器接口存储所述命令,并且控制所述存储器装置以响应于所存储的命令来顺序地执行所述第一编程操作和所述第二编程操作;
由所述固件检测对所述多个块之中的选择的块的第一位置执行的所述第一编程操作是否失败;并且
当检测到所述第一编程操作失败时,由所述固件控制所述存储器接口以将所述第一编程操作重新路由到所述多个块之中除所述选择的块之外的块中的第二位置,并且取消所述第二编程操作。
11.根据权利要求10所述的方法,其中所述存储器接口包括先进先出缓冲器,即FIFO缓冲器,以FIFO方案来存储和输出所述第一命令和所述第二命令。
12.根据权利要求11所述的方法,其中进行设置以对所述选择的块中与所述第一位置相邻的后续位置执行所述第二编程操作。
13.根据权利要求12所述的方法,进一步包括:
删除所述FIFO缓冲器中的所述第二命令以取消所述第二编程操作。
14.根据权利要求13所述的方法,进一步包括:
将所述第二命令备份到数据缓冲器。
15.根据权利要求14所述的方法,进一步包括:
在对所述第二位置执行所述第一编程操作之后,将所述第二命令从所述数据缓冲器恢复到所述FIFO缓冲器。
16.根据权利要求13所述的方法,进一步包括:
向所述存储器接口发出读取命令,以检测所述第一编程操作是否失败。
17.根据权利要求16所述的方法,进一步包括:
取消对所述第一位置的读取操作和读取错误恢复操作;并且
控制所述存储器接口以对所述第二位置执行读取操作。
18.根据权利要求13所述的方法,进一步包括:
调整所述选择的块的有效计数和与奇偶校验相关联的有效页面的数量。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862756950P | 2018-11-07 | 2018-11-07 | |
US62/756,950 | 2018-11-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111161781A true CN111161781A (zh) | 2020-05-15 |
Family
ID=70459904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911077636.5A Pending CN111161781A (zh) | 2018-11-07 | 2019-11-06 | 用于处理编程错误的存储器系统及其方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11531605B2 (zh) |
CN (1) | CN111161781A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220094726A (ko) * | 2020-12-29 | 2022-07-06 | 삼성전자주식회사 | 메모리 컨트롤러, 비휘발성 메모리 장치 및 그 스토리지 장치 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101673226A (zh) * | 2008-06-30 | 2010-03-17 | 英特尔公司 | Nand错误管理 |
CN106205702A (zh) * | 2015-05-26 | 2016-12-07 | 桑迪士克科技有限责任公司 | 对编程故障自动响应的非易失性存储装置 |
US20170192719A1 (en) * | 2015-12-31 | 2017-07-06 | SK Hynix Inc. | Controller coupled to semiconductor memory device and operating method thereof |
CN107025926A (zh) * | 2015-11-04 | 2017-08-08 | 三星电子株式会社 | 存储装置和操作存储装置的方法 |
CN107240418A (zh) * | 2016-03-28 | 2017-10-10 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN108388525A (zh) * | 2017-02-02 | 2018-08-10 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8095765B2 (en) | 2009-03-04 | 2012-01-10 | Micron Technology, Inc. | Memory block management |
US9652376B2 (en) * | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
KR20150051056A (ko) * | 2013-11-01 | 2015-05-11 | 에스케이하이닉스 주식회사 | 반도체 장치 및 그 동작 방법 |
US10055267B2 (en) * | 2015-03-04 | 2018-08-21 | Sandisk Technologies Llc | Block management scheme to handle cluster failures in non-volatile memory |
KR20170025714A (ko) * | 2015-08-31 | 2017-03-08 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR20170074264A (ko) * | 2015-12-21 | 2017-06-30 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
US10514863B2 (en) * | 2016-08-02 | 2019-12-24 | SK Hynix Inc. | Memory system and operation method for the same |
US10678633B2 (en) * | 2017-11-30 | 2020-06-09 | SK Hynix Inc. | Memory system and operating method thereof |
US10019332B1 (en) | 2017-03-10 | 2018-07-10 | Western Digital Technologies, Inc. | Non-volatile memory with program failure recovery |
KR102233400B1 (ko) * | 2017-05-29 | 2021-03-26 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR20190042970A (ko) * | 2017-10-17 | 2019-04-25 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작방법 |
TW202008171A (zh) * | 2018-07-20 | 2020-02-16 | 大陸商深圳大心電子科技有限公司 | 資料寫入方法以及儲存控制器 |
KR20200010933A (ko) * | 2018-07-23 | 2020-01-31 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
KR102617411B1 (ko) * | 2018-08-31 | 2023-12-26 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
US10706936B1 (en) * | 2019-04-26 | 2020-07-07 | Western Digital Technologies, Inc. | System and method for avoiding back to back program failure |
US11182242B2 (en) * | 2019-06-21 | 2021-11-23 | Intel Corporation | Technologies for preserving error correction capability in compute-in-memory operations |
KR20220049109A (ko) * | 2020-10-14 | 2022-04-21 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
-
2019
- 2019-11-06 CN CN201911077636.5A patent/CN111161781A/zh active Pending
- 2019-11-07 US US16/677,290 patent/US11531605B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101673226A (zh) * | 2008-06-30 | 2010-03-17 | 英特尔公司 | Nand错误管理 |
CN106205702A (zh) * | 2015-05-26 | 2016-12-07 | 桑迪士克科技有限责任公司 | 对编程故障自动响应的非易失性存储装置 |
CN107025926A (zh) * | 2015-11-04 | 2017-08-08 | 三星电子株式会社 | 存储装置和操作存储装置的方法 |
US20170192719A1 (en) * | 2015-12-31 | 2017-07-06 | SK Hynix Inc. | Controller coupled to semiconductor memory device and operating method thereof |
CN107240418A (zh) * | 2016-03-28 | 2017-10-10 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN108388525A (zh) * | 2017-02-02 | 2018-08-10 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US11531605B2 (en) | 2022-12-20 |
US20200142793A1 (en) | 2020-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109616148B (zh) | 具有解码器的存储器系统、其操作方法和解码器 | |
US10180805B2 (en) | Memory system and operating method thereof | |
CN109801669B (zh) | 具有软读取挂起方案的存储器系统及其操作方法 | |
CN109428606B (zh) | 具有ldpc解码器的存储器系统及其操作方法 | |
US10847231B2 (en) | Memory system with adaptive read-threshold scheme and method of operating such memory system | |
US11681554B2 (en) | Logical address distribution in multicore memory system | |
CN110444242B (zh) | 有基于深度学习的干扰校正能力的存储器系统及操作方法 | |
US10169289B2 (en) | Memory system and method for accelerating boot time | |
CN110750380B (zh) | 具有奇偶校验高速缓存方案的存储器系统以及操作方法 | |
US9946644B2 (en) | Memory system and operating method thereof | |
US11367488B2 (en) | Memory system and method for read operation based on grouping of word lines | |
CN110277124B (zh) | 具有混合解码方案的存储器系统及其操作方法 | |
US11531605B2 (en) | Memory system for handling program error and method thereof | |
CN110569143A (zh) | 用于存储器系统的解码器及其方法 | |
CN112216328B (zh) | 具有低复杂度解码的存储器系统及其操作方法 | |
US11087846B1 (en) | Memory system with single decoder, multiple memory sets and method for decoding multiple codewords from memory sets using the single decoder | |
US11210008B2 (en) | Memory system for multi-clustering read thresholds and method thereof | |
CN110941567B (zh) | 存储器控制器及其操作方法 | |
CN110275844B (zh) | 利用自适应阈值解码的存储器系统及其操作方法 | |
CN110444245B (zh) | 具有混合迭代解码能力的存储器系统及其操作方法 | |
US20200090731A1 (en) | Memory system to process multiple word line failures with limited storage and method of operating such memory system | |
US11354188B2 (en) | Data processing system including host with reliability management of memory systems and method for the same |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200515 |