CN110968473A - 存储器控制器和包括存储器控制器的存储装置 - Google Patents
存储器控制器和包括存储器控制器的存储装置 Download PDFInfo
- Publication number
- CN110968473A CN110968473A CN201910413995.7A CN201910413995A CN110968473A CN 110968473 A CN110968473 A CN 110968473A CN 201910413995 A CN201910413995 A CN 201910413995A CN 110968473 A CN110968473 A CN 110968473A
- Authority
- CN
- China
- Prior art keywords
- block
- memory
- monitoring
- group
- monitored
- 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.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 193
- 238000012544 monitoring process Methods 0.000 claims abstract description 214
- 230000002950 deficient Effects 0.000 claims description 22
- 238000000034 method Methods 0.000 abstract description 37
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 230000005856 abnormality Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000012795 verification Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 5
- 101100219315 Arabidopsis thaliana CYP83A1 gene Proteins 0.000 description 4
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 4
- 101100269674 Mus musculus Alyref2 gene Proteins 0.000 description 4
- 101100140580 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) REF2 gene Proteins 0.000 description 4
- 101100481703 Arabidopsis thaliana TMK2 gene Proteins 0.000 description 3
- 101100481704 Arabidopsis thaliana TMK3 gene Proteins 0.000 description 3
- 230000000052 comparative effect Effects 0.000 description 3
- 101000806846 Homo sapiens DNA-(apurinic or apyrimidinic site) endonuclease Proteins 0.000 description 2
- 101000835083 Homo sapiens Tissue factor pathway inhibitor 2 Proteins 0.000 description 2
- 102100026134 Tissue factor pathway inhibitor 2 Human genes 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- 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/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/079—Root cause analysis, i.e. error or fault diagnosis
-
- 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
- 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/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0727—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
-
- 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/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/076—Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
-
- 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/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3034—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3495—Performance evaluation by tracing or monitoring for 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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/0658—Controller construction 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/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
- 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
-
- 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
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)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Debugging And Monitoring (AREA)
Abstract
公开了存储器控制器和包括存储器控制器的存储装置。所述存储装置包括:非易失性存储器,包括多个存储器组;以及存储器控制器,被配置为:从所述多个存储器组之中确定监测组,从包括在监测组中的多个块之中确定监测块,以及在监测组的故障之前,通过使用虚设数据监测监测块来确定监测组是否是故障组。
Description
本申请要求于2018年10月1日提交到韩国知识产权局的第10-2018-0117106号韩国专利申请的权益,所述韩国专利申请的公开通过引用整体包含于此。
技术领域
本发明构思的示例实施例涉及存储装置。例如,至少一些示例实施例涉及能够预先检测故障组(fail group)的存储器控制器和/或包括该存储器控制器的存储装置。
背景技术
作为非易失性存储器的闪存即使在电源被切断时也可保持存储的数据。近来,包括闪存的存储装置(诸如,固态驱动器(SSD)、存储卡等)已被广泛使用。一些非易失性存储器可能由于各种原因而暴露于累进式故障,因此,包括在非易失性存储器中的裸片中的一些可被确定为故障裸片(fail die)或失效裸片(failure die)。这里,故障裸片可表示由于在裸片中产生的坏块的数量超过参考数量而不能执行与裸片中的保留块进行块替换的裸片。
发明内容
本发明构思的示例实施例提供一种能够预先检测包括在非易失性存储器装置中的故障组的存储器控制器和/或包括该存储器控制器的存储装置。
根据本发明构思的示例实施例,提供一种存储装置,包括:非易失性存储器,包括多个存储器组;以及存储器控制器,被配置为:从所述多个存储器组之中确定监测组,从包括在监测组中的多个块之中确定监测块,以及在监测组的故障之前,通过使用虚设数据监测监测块来确定监测组是否是故障组。
根据本发明构思的另一示例实施例,提供一种存储器控制器,包括:存储器;以及处理器,被配置为:从多个存储器组之中确定监测组,其中,监测组包括坏块和健康块中的一个或多个,从包括在监测组中的多个块之中确定监测块,监测监测块以确定监测块是坏块中的一个还是健康块中的一个,基于包括在监测组中的坏块的数量来确定监测组是否是故障组,以及将健康块中的一个分配为用于对用户数据进行的存储器操作的用户块。
根据本发明构思的另一示例实施例,提供一种存储器控制器,包括:存储器,存储与多个存储器组中的不同的存储器组对应的多个块状态表;以及处理器,被配置为:从所述多个存储器组之中确定监测组,从包括在监测组中的多个块之中确定监测块,使用虚设数据监测监测块以生成结果,基于所述结果从所述多个块状态表之中更新与监测组对应的第一块状态表,以及在监测组的故障之前,基于第一块状态表来确定监测组是否是故障组。
附图说明
从下面结合附图的详细描述,本发明构思的示例实施例将被更清楚地理解,其中:
图1是示出根据本发明构思的示例实施例的存储系统的框图;
图2示出根据本发明构思的示例实施例的监测块的示例;
图3是示出根据本发明构思的示例实施例的存储器控制器的框图;
图4是示出根据本发明构思的示例实施例的存储器控制器的框图;
图5是示出根据本发明构思的示例实施例的预先检测故障组的方法的流程图;
图6示出根据本发明构思的示例实施例的确定监测组的操作的示例;
图7示出根据本发明构思的示例实施例的确定监测块的操作的示例;
图8A示出根据本发明构思的示例实施例的对监测块执行的监测操作的示例,图8B示出根据本发明构思的示例实施例的对监测块执行的状态确定操作的示例;
图9是示出根据本发明构思的示例实施例的确定监测组的方法的流程图;
图10A示出根据本发明构思的示例实施例的异常表(exception table)的示例,图10B示出根据本发明构思的示例实施例的裸片状态表的示例;
图11是更详细地示出根据本发明构思的示例实施例的确定监测组的方法的流程图;
图12示出根据本发明构思的示例实施例的监测裸片的示例;
图13是示出根据本发明构思的示例实施例的对监测块执行的监测方法的示例的流程图;
图14示出根据本发明构思的示例实施例的块状态表的示例;
图15是示出根据本发明构思的示例实施例的对监测块执行的监测方法的另一示例的流程图;
图16是示出根据本发明构思的示例实施例的存储系统的框图;
图17示出第一情况和第二情况,第一情况示出根据本发明构思的对比示例的用户块的处理,第二情况示出根据本发明构思的示例实施例的监测块的处理;
图18示出根据本发明构思的示例实施例的计算系统。
具体实施方式
图1是示出根据本发明构思的示例实施例的存储系统10的框图。
参照图1,存储系统10可包括存储装置100和主机HT。存储装置100可包括存储器控制器110和非易失性存储器(NVM)120。存储器控制器110可包括故障组检测器DET、组状态表TB1和块状态表TB2。例如,如下面参照图3和图4所讨论的,存储器控制器110可包括处理器和存储器,其中,处理器执行计算机可读指令以将处理器转换成用于执行故障组检测器的功能的专用处理器,存储器存储上述表。在下文中,为了方便起见,存储器控制器110将被称为“控制器”。
主机HT可通过各种接口与存储装置100通信。例如,主机HT可被实现为应用处理器(AP)或片上系统(SoC)。此外,例如,主机HT可被实现为集成电路、主板或数据库服务器,但不限于此。主机HT可向存储装置100发送写入请求或读取请求。存储装置100可响应于写入请求将数据写入NVM120或响应于读取请求从NVM 120读取数据。
NVM 120可包括多个存储器组121。多个存储器组121中的每个可包括多个存储器块(在下文中,被称为“块”)。多个块中的每个可包括多个页。多个页中的每个可包括多个存储器单元。例如,块可以是擦除的单位,页可以是写入和读取的单位。在一些示例实施例中,多个存储器组121可包括多个存储器芯片、多个裸片或多个面(plane)。在示例实施例中,NVM 120可包括闪存装置(例如,NAND闪存装置)。然而,本发明构思不限于此。NVM120可包括电阻式存储器装置(诸如,电阻式RAM(ReRAM))、相变RAM(PRAM)和磁性RAM(MRAM)。
控制器110可控制NVM 120,并且可从多个存储器组121之中预先检测故障组。故障组检测器DET可在多个存储器组121中的一个被确定为故障组之前,检测具有高故障可能性的存储器组并监测预先检测的存储器组。在下文中,由故障组检测器DET预先检测的存储器组将被称为“监测组”。
故障组检测器DET可确定包括在监测组中的多个块之中的监测块。在示例实施例中,故障组检测器DET可将多个块之中的不包括编程有有效数据的有效页的块确定为监测块。例如,监测块可以是保留块(例如,图2中的241a)或空闲块(例如,图2中的241b)。
故障组检测器DET可对监测块执行监测操作。在示例实施例中,故障组检测器DET可使用虚设数据来对监测块执行监测操作。在示例实施例中,监测操作可对监测块执行存储器操作,并且可包括基于执行存储器操作的结果来确定监测块是否是坏块的操作,其中,存储器操作包括擦除操作、编程操作和读取操作中的至少一个。
故障组检测器DET可基于执行监测操作的结果来预先确定监测组是否是故障组。在示例实施例中,故障组检测器DET可基于包括在监测组中的坏块的数量来预先确定监测组是否是故障组。
故障组检测器DET可管理用于多个存储器组121的组状态表TB1。组状态表TB1可存储关于多个存储器组121中的每个是故障组还是监测组的信息。在示例实施例中,故障组检测器DET可根据确定监测组的结果来更新组状态表TB1。在示例实施例中,故障组检测器DET可基于对监测块执行监测操作的结果将监测组改变为故障组。
此外,故障组检测器DET可管理用于包括在每个存储器组中的多个块的块状态表TB2。块状态表TB2可存储关于多个块是否是坏块的信息。在示例实施例中,故障组检测器DET可通过对监测块执行监测操作来将监测块确定为坏块或健康块,并且可在块状态表TB2中更新确定的结果。此外,故障组检测器DET可基于块状态表TB2来确定监测组是否是故障组。
例如,组状态表TB1和块状态表TB2可被加载到控制器110中的内部存储器(例如,图3中的112)中。尽管组状态表TB1和块状态表TB2包括在图1中的控制器110中,但是本发明构思的示例实施例不限于此。在一些示例实施例中,组状态表TB1和块状态表TB2中的至少一个可被加载到实现控制器110的控制器芯片外部的存储器芯片(例如,动态随机存取存储器(DRAM)芯片(例如,图4中的130))中。
例如,存储系统10可被实现为:个人计算机(PC)、数据服务器、联网存储装置、物联网(IoT)装置或便携式电子装置。便携式电子装置可以是膝上型计算机、移动电话、智能电话、平板PC、个人数字助理(PDA)、企业数字助理(EDA)、数码相机、数码摄像机、音频装置、便携式多媒体播放器(PMP)、个人导航装置(PND)、MP3播放器、手持游戏机、电子书、可穿戴装置等。
在一些示例实施例中,存储装置100可以是嵌入在电子装置中的内部存储器。例如,存储装置100可以是SSD、嵌入式通用闪存(UFS)存储器装置或嵌入式多媒体卡(eMMC)。在一些示例实施例中,存储装置100可以是能够从电子装置移除的外部存储器。例如,存储装置100可以是UFS存储卡、紧凑型闪存(CF)卡、安全数字(SD)卡、微型安全数字(Micro-SD)卡、迷你安全数字(Mini-SD)卡、极限数字(xD)卡或记忆棒。
图2示出根据本发明构思的示例实施例的监测块241的示例。
参照图2,存储器芯片200可包括第一裸片210至第四裸片240。例如,存储器芯片200可以是图1的NVM 120的示例,并且第一裸片210至第四裸片240可以是图1中示出的多个存储器组121的示例。例如,当在第一裸片210至第四裸片240之中的第四裸片240中发生多于参考次数的异常EXC时,第四裸片240可被确定为监测裸片。例如,异常EXC可包括擦除失败、编程失败和读取失败。
在示例实施例中,当在第四裸片240中发生针对存储器操作的连续失败时,第四裸片240可被确定为监测裸片。根据示例实施例,在裸片被确定为监测裸片之前连续失败的阈值次数可变化。例如,当在第四裸片240中连续地发生两次失败时,第四裸片240可被确定为监测裸片。作为另一示例,当在第四裸片240中连续地发生多于三次失败时,第四裸片240可被确定为监测裸片。
在示例实施例中,当在第四裸片240中针对存储器操作的失败的次数大于或等于参考次数时,第四裸片240可被确定为监测裸片。例如,当在第四裸片240中针对存储器操作的失败的次数等于或大于第一参考值并且等于或小于第二参考值时,则第四裸片240可被确定为监测裸片,其中,第二参考值大于第一参考值。例如,当在第四裸片240中针对存储器操作的失败的次数大于第二参考值时,第四裸片240可被确定为故障裸片。
在包括在第四裸片240中的多个块之中,可确定监测块241。在示例实施例中,监测块241可包括保留块241a。这里,保留块241a可表示用于与坏块进行块替换的预定义块。在示例实施例中,监测块241可包括空闲块241b。这里,空闲块241b可表示未存储有效用户数据的块。例如,空闲块241b可以是对其完整地执行擦除操作的块,并且可以是能够再次执行编程操作的块。在示例实施例中,监测块241可包括保留块241a和空闲块241b二者。
图3是示出根据本发明构思的示例实施例的存储器控制器110的框图。
参照图1和图3,存储器控制器110可包括可经由总线115彼此通信的处理器111、存储器112、主机接口113和非易失性存储器接口114。处理器111可包括中央处理器、微处理器等,并且可控制控制器110的整体操作。在示例实施例中,处理器111可被实现为多核处理器(例如,双核处理器或四核处理器)。
存储器112可在处理器111的控制下操作,并且可用作操作存储器、缓冲器存储器、高速缓冲存储器等。例如,存储器112可被实现为易失性存储器(诸如,DRAM、SRAM)或非易失性存储器(诸如,PRAM或闪存)。
存储器112可存储可由处理器111执行的闪存转换层(FTL)代码。在一些示例实施例中,当启动时,FTL代码可从NVM 120加载到存储器112中,使得存储器112可被加载有故障组检测器DET、组状态表TB1和块状态表TB2。故障组检测器DET可被实现为固件或软件并且可被加载到存储器112中。
在一些示例实施例中,处理器111可执行存储在存储器112中的FTL代码,以将处理器111转换成用于执行故障组检测器DET的功能的专用处理器,使得处理器111执行下面讨论的图5中示出的操作。因此,处理器111可通过在故障之前检测故障组来改进存储系统10本身的功能,从而通过优选地分配健康块来降低故障的概率,并通过将虚设数据(dummydata)存储在监测块中来减少故障时在坏块与多个健康块之一之间迁移的数据量。
然而,本发明构思的示例实施例不限于此。在一些示例实施例中,故障组检测器DET可被实现为硬件,或者可被设置在存储器112外部。
主机接口113可根据例如通用串行总线(USB)、MMC、快速PCI(PCI-E)、AT附件(ATA)、串行AT附件(SATA)、并行AT附件(PATA)、小型计算机系统接口(SCSI)、串行连接SCSI(SAS)、增强型小型磁盘接口(ESDI)、集成驱动电子设备(IDE)等提供主机HT与控制器110之间的接口。
非易失性存储器接口114可提供控制器110与NVM 120之间的接口。例如,元数据(诸如,组状态表TB1、块状态表TB2或映射表)、写入数据和读取数据可经由非易失性存储器接口114在控制器110与NVM 120之间发送和接收。在示例实施例中,非易失性存储器接口114的数量可对应于包括在存储装置100中的非易失性存储器芯片的数量或控制器110与NVM 120之间的通道的数量。
图4是示出根据本发明构思的示例实施例的存储器控制器110'的框图。
参照图4,存储器控制器110'可包括可经由总线115彼此通信的处理器111、存储器112a、主机接口113、非易失性存储器接口114和DRAM接口116。根据本示例实施例的控制器110'可对应于图3的控制器110的修改的示例,因此将省略其冗余的描述。根据本示例实施例,组状态表TB1和块状态表TB2可被加载到DRAM芯片130中。DRAM接口116可提供控制器110'与DRAM芯片130之间的接口。例如,包括在组状态表TB1和块状态表TB2中的一些数据可经由DRAM接口116在控制器110'与DRAM芯片130之间发送和接收。
图5是示出根据本发明构思的示例实施例的预先检测故障组的方法的流程图。
参照图5,根据本示例实施例的预先检测故障组的方法可以是在多个存储器组之中出现故障组之前预先(例如,在故障之前)检测具有高的故障可能性的存储器组的方法,并且可包括例如由图1的存储器控制器110在时间上连续地执行的操作。在下文中,将参照图1和图5描述根据本示例实施例的预先检测故障组的方法。
在操作S110中,可在多个存储器组之中确定监测组。例如,控制器110可将包括在NVM 120中的多个存储器组121之中的具有等于或大于失败参考次数的失败或异常的次数的存储器组确定为监测组。此外,控制器110可根据确定监测组的结果来更新组状态表TB1。例如,控制器110可周期性地或非周期性地监测在多个存储器组121中发生的异常或失败的次数。在下文中,将参照图6更详细地描述操作S110。
图6示出根据本发明构思的示例实施例的确定监测组的操作的示例。
一起参照图1和图6,NVM 120可包括第一存储器组121a至第m存储器组121m。这里,m是正整数。此时,异常EXC可发生在第一存储器组121a中,并且故障组检测器DET可将第一存储器组121a确定为监测组。根据示例实施例,监测组的数量可变化。在一些示例实施例中,多个存储器组可被确定为监测组。
再次参照图5,在操作S130中,可在包括在监测组中的多个块之中确定监测块。例如,控制器110可基于块状态表TB2将包括在监测组中的多个块之中的没有存储有效用户数据的至少一个块确定为监测块。在下文中,将参照图7更详细地描述操作S130。
图7示出根据本发明构思的示例实施例的确定监测块MB的操作的示例。
参照图1和图7,监测组MG可包括多个块BLK0至BLK_N。这里,N是正整数。例如,监测组MG可以是图6的第一存储器组121a。例如,多个块BLK0至BLK_N中的一些块BLK0、BLK2和BLK4可以是包括存储有有效用户数据的有效页的有效块。故障组检测器DET可将多个块BLK0至BLK_N之中的不包括有效页的至少一个块(例如,块BLK1)确定为监测块MB。然而,本发明构思不限于此。在一些示例实施例中,多个块BLK1、BLK3、BLK5、…、BLK_N可被确定为监测块。
再次参照图5,在操作S150中,可对监测块执行监测操作。例如,控制器110可通过执行包括擦除操作、编程操作和读取操作中的至少一个的存储器操作来对监测块执行监测操作。例如,控制器110可对监测块周期性地或非周期性地执行监测操作。在下文中,将参照图8A更详细地描述操作S150。
图8A示出根据本发明构思的示例实施例的对监测块MB执行的监测操作的示例。
参照图8A,对监测块MB执行的监测操作可包括顺序地执行的擦除操作、编程操作和读取操作。首先,可对监测块MB执行擦除操作,然后可执行擦除验证操作以确定对监测块MB的擦除操作的通过/失败,并将擦除失败结果(例如,擦除失败的次数)更新到异常表(例如,图10A中的300)。例如,当擦除失败结果超过参考次数时,监测组可被确定为故障组。
接下来,可使用虚设数据对监测块MB执行编程操作,然后可执行编程验证操作以确定对监测块MB的编程操作的通过/失败,并将编程失败结果(例如,编程失败的次数)更新到异常表。例如,当编程失败结果超过参考次数时,监测组可被确定为故障组。在示例实施例中,可对包括在监测块MB中的所有的页执行编程操作。在示例实施例中,可对包括在监测块MB中的一些页执行编程操作。
接下来,可对监测块MB执行读取操作,然后可执行读取验证操作以确定对监测块MB的读取操作的通过/失败,并将读取失败结果(例如,读取失败的次数)更新到异常表。例如,当读取失败结果超过参考次数时,监测组可被确定为故障组。此时,作为读取验证操作的结果,不可使用纠错码(ECC)校正的错误可被称为不可校正纠错码(UECC)错误。
再次参照图5,在操作S170中,可确定监测组是否是故障组。例如,控制器110可对监测块执行监测操作以确定监测块是否是坏块。此外,例如,控制器110可基于包括在监测组中的坏块的数量来确定监测组是否是故障组。在下文中,将参照图8B更详细地描述操作S170。
图8B示出根据本发明构思的示例实施例的对监测块MB执行的状态确定操作的示例。
参照图8B,监测块MB的状态可基于对监测块MB执行监测操作的结果而被确定为好或坏。换句话说,监测块MB可被确定为好块MB1或坏块MB2。在下文中,好块MB1将被称为“健康块”。然后,监测块MB的状态确定结果可被更新到块状态表(例如,图14中的600)。
图9是示出根据本发明构思的示例实施例的确定监测组的方法的流程图。
参照图9,根据本示例实施例的确定监测组的方法可包括例如由图1的存储装置100在时间上连续地执行的多个操作。例如,根据本示例实施例的监测方法可对应于图5中的操作S110的示例。在下文中,将参照图1和图9描述确定监测组的方法。
在操作S210中,存储装置100可对存储器组执行包括擦除、编程和读取中的至少一个的存储器操作。在示例实施例中,存储器操作可包括NVM 120的响应于来自主机HT的写入请求或读取请求而执行的各种输入/输出操作。然而,本发明构思不限于此。在一些示例实施例中,存储器操作可包括NVM120的根据控制器110的控制操作的各种输入/输出操作(例如,后台操作)。在一些示例实施例中,根据操作S210的存储器操作可包括对存储器组的验证操作,其中,所述验证操作包括擦除验证操作、编程验证操作和读取验证操作中的至少一个。
在操作S220中,控制器110可确定是否已经发生异常作为执行存储器操作的结果。这里,“异常”可包括擦除失败、编程失败和读取失败。
当控制器110确定未发生异常时,在操作S270中,可完成存储器操作。然后,控制器110可向主机HT发送指示存储器操作已经完成的响应消息。
相反,当控制器110确定已经发生异常时,可执行操作S230。
在操作S230中,控制器110可更新异常表。在下文中,将参照图10A来描述异常表。
图10A示出根据本发明构思的示例实施例的异常表300的示例。
参照图10A,异常表300可存储针对多个存储器组(例如,多个裸片)中的每个的读取失败的次数、编程失败的次数和擦除失败的次数。针对多个裸片中的一个,当读取失败的次数、编程失败的次数、擦除失败的次数或者它们的和超过参考次数时,该裸片可被确定为故障裸片。例如,异常表300可被加载到图3的存储器112或图4的DRAM芯片130中。
再次参照图9,在操作S240中,控制器110可确定存储器组是否是故障组。作为确定的结果,当存储器组是故障组时,可在操作S260中对存储器组执行故障组处理。例如,故障组处理可以是“原地失败(FiP)”处理。具体地讲,FiP可表示将与故障裸片对应的逻辑地址映射到另一区域(例如,另一裸片)的逻辑地址并迁移数据的操作。
另一方面,作为确定的结果,当确定存储器组不是故障组时,可执行操作S250。在操作S250中,控制器110可确定存储器组是否是监测组。在一些示例实施例中,根据操作S250确定监测组的操作可包括根据确定的结果更新组状态表TB1的操作。在下文中,将参照图10B来描述裸片状态表作为组状态表TB1的示例。
图10B示出根据本发明构思的示例实施例的裸片状态表400的示例。
参照图10B,裸片状态表400可存储指示每个裸片是否是故障裸片的信息。例如,当在图9的操作S240中确定裸片是故障裸片时,可在裸片状态表400中将该裸片更新为故障裸片。例如,当确定裸片是故障裸片时,FiP处理可被执行。
此外,裸片状态表400可存储指示每个裸片是否是监测裸片的信息。例如,作为执行图9中的操作S250的结果,当确定裸片是监测裸片时,可在裸片状态表400中将该裸片更新为监测裸片。例如,当确定裸片是监测裸片时,可对监测块执行监测操作。例如,裸片状态表400可被加载到图3的存储器112或图4的DRAM芯片130中。
图11是更详细地示出根据本发明构思的示例实施例的确定监测组的方法的流程图。
参照图11,根据本示例实施例的确定监测组的方法可对应于图9的操作S240和操作S250的实施示例。在操作S310中,控制器110可确定失败的次数是否等于或大于第一参考次数REF1。例如,失败的次数可对应于图10A的异常表300中的读取失败的次数、编程失败的次数、擦除失败的次数或者它们的和。作为确定的结果,当失败的次数等于或大于第一参考次数REF1时,在操作S320中可将存储器组确定为故障组。
同时,当确定失败的次数小于第一参考次数REF1时,在操作S330中,控制器110可确定失败的次数是否大于或等于第二参考次数REF2。这里,第二参考次数REF2可小于第一参考次数REF1。作为确定的结果,当失败的次数等于或大于第二参考次数REF2时,控制器110可在操作S340中将存储器组确定为监测组。另一方面,作为确定结果,当失败的次数小于第二参考次数REF2时,控制器110可在操作S350中将存储器组确定为正常组。
图12示出根据本发明构思的示例实施例的监测裸片500的示例。
参照图12,监测裸片500可包括有效块BLK0、BLK2、BLK3、BLK5和BLK7、坏块BLK1、BLK4和BLK6、保留块BLK11、BLK12和BLK13以及空闲块BLK8、BLK9和BLK10。在一些示例实施例中,监测块510可包括保留块BLK11、BLK12和BLK13以及空闲块BLK8、BLK9和BLK10。然而,本发明构思的示例实施例不限于此。在一些示例实施例中,监测块510可包括保留块BLK11、BLK12和BLK13中的至少一个或空闲块BLK8、BLK9和BLK10中的至少一个。
图13是示出根据本发明构思的示例实施例的对监测块执行的监测方法的示例的流程图。
参照图13,本示例实施例的监测方法可对应于对监测块执行的前台监测方法。例如,根据本示例实施例的监测方法可对应于图5中的操作S150的示例。例如,根据本示例实施例的监测方法可包括由图1的存储器控制器110在时间上连续地执行的操作。在下文中,将参照图1和图13描述根据本示例实施例的监测方法。
在操作S400中,控制器110可开始块分配。在示例实施例中,当从主机HT接收到写入请求时,控制器110可将包括在多个存储器组之一中的块分配为写入块,其中,多个存储器组包括在NVM 120中。在示例实施例中,当发起坏块管理操作时,控制器110可将包括在多个存储器组之一中的块分配为写入块,其中,多个存储器组包括在NVM 120中。例如,控制器110可将包括在图12的监测裸片500中的空闲块BLK8分配为写入块。
在操作S410中,控制器110可确定分配的块是否包括在监测组中。作为确定的结果,当块包括在监测组中时,可执行操作S420。另一方面,当确定块不包括在监测组中时,可在操作S480中完成块分配。例如,分配的块BLK8可被确定为写入块,并且响应于来自主机HT的写入请求,用户数据可被编程在分配的块BLK8中。例如,分配的块BLK8可被确定为写入块,并且存储在坏块中的数据可被复制,以将复制的数据编程在分配的块BLK8中。
在操作S420中,控制器110可接着进行对块的前台监测。在操作S430中,可对块执行擦除操作。此外,操作S430可包括在擦除操作之后执行的擦除验证操作。在操作S440中,可对块执行编程操作。例如,虚设数据可被编程在块中。此外,操作S440可包括在编程操作之后执行的编程验证操作。在操作S450中,可对块执行读取操作。此外,操作S450可包括在读取操作之后执行的读取验证操作。例如,编程在块中的虚设数据可被读取。然而,本发明构思的示例实施例不限于此。在一些示例实施例中,可执行操作S430至S450中的至少一个。此外,在一些示例实施例中,可改变操作S430至S450的顺序。
在操作S460中,控制器110可确定块是否是坏块。例如,控制器110可基于执行擦除验证操作的结果、执行编程验证操作的结果和执行读取验证操作的结果中的至少一个来确定该块是否是坏块。当确定该块不是坏块时,可执行操作S470。在操作S470中,控制器110可将该块确定为健康块。例如,控制器110可在块状态表(例如,图14中的600)中将块BLK8的状态保持为空闲块,并且将块BLK8的状态指示为健康块。
另一方面,当确定该块是坏块时,可执行操作S490。在操作S490中,控制器110可改变块状态。例如,控制器110可更新块状态表600以反映改变的块状态。例如,控制器110可在块状态表600中将块BLK8的状态改变为坏块,并且将块BLK8的状态指示为非健康块。
在操作S495中,控制器110可更新异常表(例如,图10A中的300)。控制器110可根据在操作S430至S450中发生的失败的类型来更新异常表。例如,当发生擦除失败时,控制器110可更新异常表中的擦除失败的次数。例如,当发生编程失败时,控制器110可更新异常表中的编程失败的次数。例如,当发生读取失败时,控制器110可更新异常表中的读取失败的次数。另一方面,当确定块不是坏块时,控制器110可在操作S470中将该块确定为健康块。在操作S480中,控制器110可分配确定为健康块的块。
图14示出根据本发明构思的示例实施例的块状态表600的示例。
参照图14,块状态表600可包括多个块BLK0至BLK13的状态信息,其中,多个块BLK0至BLK13例如包括在图12的监测裸片500中。例如,块BLK0、BLK2、BLK3、BLK5和BLK7可被指示为有效块,并且块BLK1、BLK4和BLK6可被指示为坏块。此外,例如,块BLK11、BLK12和BLK13可被指示为保留块,并且块BLK8、BLK9和BLK10可被指示为空闲块。
此外,块状态表600可包括指示多个块BLK0至BLK13是否是健康块的信息。指示多个块BLK0至BLK13是否是健康块的信息可通过反映对监测块执行监测操作的结果而改变。在示例实施例中,作为通过将虚设数据编程在监测块中来执行监测操作的结果,当发生编程失败时,监测块可被确定为非健康块(即,坏块)。另一方面,作为通过将虚设数据编程在监测块中来执行监测操作的结果,当没有发生编程失败时,监测块可被确定为健康块。
图15是示出根据本发明构思的示例实施例的对监测块执行的监测方法的另一示例的流程图。
参照图15,本示例实施例可对应于对监测块执行的后台监测方法。例如,根据本示例实施例的监测方法可对应于图5中的操作S150的另一示例。例如,根据本示例实施例的监测方法可包括由图1的存储器控制器110在时间上连续地执行的操作。在下文中,将参照图1和图15描述根据本示例实施例的监测方法。
在操作S500中,控制器110可对监测块执行后台监测。例如,控制器110可对包括在图12的监测裸片500中的空闲块BLK9执行后台监测。在操作S510中,可对监测块执行擦除操作。此外,操作S510可包括在擦除操作之后执行的擦除验证操作。在操作S520中,可对监测块执行编程操作。例如,虚设数据可被编程在块中。此外,操作S520可包括在编程操作之后执行的编程验证操作。在操作S530中,可对监测块执行读取操作。此外,操作S530可包括在读取操作之后执行的读取验证操作。例如,可读取编程在块中的虚设数据。然而,本发明构思的示例实施例不限于此。在一些示例实施例中,可执行操作S510至S530中的至少一个。此外,在一些示例实施例中,可改变操作S510至S530的顺序。
在操作S540中,控制器110可确定监测块是否是坏块。例如,控制器110可基于执行擦除验证操作的结果、执行编程验证操作的结果和执行读取验证操作的结果中的至少一个来确定监测块是否是坏块。当确定监测块不是坏块时,可执行操作S550。在操作S550中,控制器110可将监测块确定为健康块。例如,控制器110可在块状态表(例如,图14中的600)中将块BLK9的状态保持为空闲块,并且将块BLK9的状态指示为健康块。
同时,当确定监测块是坏块时,可执行操作S560。在操作S560中,控制器110可改变块状态。例如,控制器110可更新块状态表600以反映改变的块状态。例如,在块状态表600中,控制器110可将块BLK9的状态改变为坏块,并且将块BLK9的状态指示为非健康块。
在操作S570中,控制器110可更新异常表(例如,图10A中的300)。控制器110可根据在操作S510至S530中发生的失败的类型来更新异常表。例如,当发生擦除失败时,控制器110可更新异常表中的擦除失败的次数。例如,当发生编程失败时,控制器110可更新异常表中的编程失败的次数。例如,当发生读取失败时,控制器110可更新异常表中的读取失败的次数。
图16是示出根据本发明构思的示例实施例的存储系统10a的框图。
参照图16,存储系统10a可包括存储装置100a和主机HT。存储装置100a可包括存储器控制器110a和NVM 120。存储器控制器110a可包括故障组检测器DET、组状态表TB1、块状态表TB2和块分配器BA。NVM 120可包括多个存储器组121。根据本示例实施例的存储装置100a可对应于图1中示出的存储装置100的修改。因此,以上参照图1至图15提供的描述可被应用于本示例实施例,并且冗余的描述将被省略。
故障组检测器DET可通过确定多个存储器组121之中的监测组并对包括在监测组中的多个块之中的监测块执行监测操作,来将监测块确定为坏块或健康块。在示例实施例中,可使用虚设数据而不是用户数据来执行监测操作,从而预先确定监测块的状态。此外,故障组检测器DET可将确定的结果更新到针对监测组的块状态表(图14中的600),并且基于块状态表确定监测组是否是故障组。
块分配器BA可将块状态表中的健康块分配为用于对用户数据进行的存储器操作的用户块。具体地,块分配器BA可将多个监测块(即,未被编程有用户数据的空闲块或保留块)之中的作为监测的结果被确定为健康块的块分配为用户块。例如,块分配器BA可将在图14中示出的块状态表600中被指示为健康块的多个块中的一个分配为用户块。另一方面,块分配器BA可将多个监测块(即,未被编程有用户数据的空闲块或保留块)之中的作为监测的结果被确定为坏块的块不分配为用户块。
如上所述,通过优先使用包括在具有高故障可能性的监测组中的多个块之中的健康块,可提高监测组的块利用率。此外,通过优先使用多个块之中的健康块,可延迟监测组中产生大于参考数量的坏块的时间,因此可延迟监测组被作为故障组处理的时间。
图17示出第一情况700和第二情况800,其中,第一情况700示出根据本发明构思的对比示例的用户块710的处理,第二情况800示出根据本发明构思的示例实施例的监测块810的处理。
参照图17,在根据本发明构思的对比示例的第一情况700中,用户块710可包括编程有用户数据的有效页。例如,对应于第一逻辑地址LBA 100的用户数据可被编程在字线WL0上,对应于第二逻辑地址LBA 500的用户数据可被编程在字线WLk上。这里,k可以是任何正整数。当针对用户块710发生编程失败或者由于读取失败而发生UECC时,可对用户块710执行坏块处理或坏块管理。
具体地,编程在用户块710中的用户数据可被复制并编程到另一个块720。此时,坏块处理可能花费相当长的时间。当用户数据被编程到包括在用户块710中的所有的k条字线时,可能花费非常长的时间来复制用户数据并将用户数据编程到另一个块720。
然而,在根据本发明构思的示例实施例的第二情况800中,监测块810可包括编程有虚设数据而不是用户数据的虚设页。例如,虚设数据可被编程到字线WL0至WLk。当针对监测块810发生编程失败或由于读取失败而发生UECC时,监测块810可被作为坏块处理。然而,在这种情况下,由于编程在监测块810中的虚设数据不被复制并编程到另一个块,因此与第一情况700相比,坏块处理所需的时间可被显著减少。
图18示出根据本发明构思的示例实施例的计算系统1000。
参照图18,计算系统1000可包括存储器系统1100、处理器1200、RAM1300、输入/输出装置1400和电源单元1500。同时,尽管在图18中未示出,但是计算系统1000还可包括能够与视频卡、声卡、存储卡、USB装置等通信或者与其他电子装置通信的端口。计算系统1000可被实现为个人计算机,或者可被实现为便携式电子装置,诸如,笔记本计算机、移动电话、个人数字助理(PDA)、相机等。
处理器1200可执行特定的计算或任务。根据示例实施例,处理器1200可以是微处理器或中央处理器(CPU)。处理器1200可经由总线1600(诸如,地址总线、控制总线和数据总线)与RAM 1300、输入/输出装置1400和存储器系统1100通信。此时,存储器系统1100可使用图1至图17中示出的实施例来实现。例如,存储器系统1100可包括存储器装置1110和存储器控制器1120。根据示例实施例,处理器1200还可连接到扩展总线(诸如,外围组件互连(PCI)总线)。
RAM 1300可存储计算系统1000的操作所需的数据。例如,RAM 1300可被实现为DRAM、移动DRAM、SRAM、PRAM、FRAM、RRAM和/或MRAM。输入/输出装置1400可包括输入工具(诸如,键盘、小键盘、鼠标等)以及输出工具(诸如,打印机、显示器等)。电源单元1500可提供计算系统1000的操作所需的操作电压。
虽然已经参照本发明构思的一些示例实施例具体示出并描述了本发明构思,但是将理解的是,在不脱离权利要求的精神和范围的情况下,可在其中进行形式和细节的各种改变。
Claims (20)
1.一种存储装置,包括:
非易失性存储器,包括多个存储器组;以及
存储器控制器,被配置为:
从所述多个存储器组之中确定监测组,
从包括在监测组中的多个块之中确定监测块,以及
在监测组的故障之前,通过使用虚设数据监测监测块来确定监测组是否是故障组。
2.根据权利要求1所述的存储装置,其中,存储器控制器被配置为通过以下操作来监测监测块:
对监测块执行存储器操作,其中,存储器操作包括擦除操作、编程操作和读取操作中的至少一个,以及
基于存储器操作的结果来确定监测块是否是坏块。
3.根据权利要求2所述的存储装置,其中,存储器控制器被配置为:基于包括在监测组中的坏块的数量来确定监测组是否是故障组。
4.根据权利要求1所述的存储装置,其中,存储器控制器还被配置为通过以下操作来确定监测组是否是故障组:
将监测块确定为坏块或健康块,
基于监测块是坏块还是健康块来更新针对监测组的块状态表,以及
基于块状态表来确定监测组是否是故障组。
5.根据权利要求4所述的存储装置,其中,存储器控制器还被配置为:将健康块分配为用于对用户数据进行的存储器操作的用户块。
6.根据权利要求1所述的存储装置,其中,所述多个存储器组包括多个存储器芯片和/或多个存储器裸片。
7.根据权利要求1所述的存储装置,其中,存储器操作包括连续地执行擦除操作、编程操作和读取操作,并且存储器控制器被配置为将所述多个存储器组中针对存储器操作出现失败的存储器组确定为监测组。
8.根据权利要求1所述的存储装置,其中,存储器控制器被配置为:将所述多个存储器组中的具有大于或等于第一参考值并且小于第二参考值的存储器操作的失败次数的存储器组确定为监测组,其中,第二参考值大于第一参考值,存储器操作包括擦除操作、编程操作和读取操作中的至少一个。
9.根据权利要求8所述的存储装置,其中,存储器控制器还被配置为:
将所述多个存储器组中的具有等于或大于第二参考值的失败次数的存储器组确定为故障组,以及
将所述多个存储器组中的具有小于第一参考值的失败次数的存储器组确定为正常组。
10.根据权利要求1所述的存储装置,其中,存储器控制器还被配置为:将所述多个块中的不包括编程有有效数据的有效页的块确定为监测块。
11.根据权利要求1所述的存储装置,其中,监测块是保留块或空闲块。
12.根据权利要求1所述的存储装置,其中,存储器控制器还被配置为:当用于针对用户数据的存储器操作的块被分配为分配的块时,执行以下操作:
确定分配的块是否包括在监测组中,以及
当分配的块包括在监测组中时,监测分配的块。
13.根据权利要求1所述的存储装置,其中,存储器控制器被配置为:在空闲时间监测监测块。
14.根据权利要求1所述的存储装置,其中,存储器控制器被配置为:通过监测包括在监测块中的一部分页来监测监测块。
15.根据权利要求1所述的存储装置,其中,存储器控制器被配置为:通过监测包括在监测块中的所有的页来监测监测块。
16.一种存储器控制器,包括:
存储器;以及
处理器,被配置为:
从多个存储器组之中确定监测组,其中,监测组包括坏块和/或健康块,
从包括在监测组中的多个块之中确定监测块,
监测监测块,以确定监测块是坏块还是健康块,
基于包括在监测组中的坏块的数量来确定监测组是否是故障组,以及
将健康块中的一个分配为用于对用户数据进行的存储器操作的用户块。
17.根据权利要求16所述的存储器控制器,其中,存储器控制器被配置为通过以下操作监测监测块:
对监测块执行存储器操作,其中,存储器操作包括擦除操作、编程操作和读取操作中的至少一个,以及
基于存储器操作的结果来确定监测块是否是坏块中的一个。
18.根据权利要求16所述的存储器控制器,其中,监测块是保留块或空闲块。
19.一种存储器控制器,包括:
存储器,存储与多个存储器组中的不同的存储器组对应的多个块状态表;以及
处理器,被配置为:
从所述多个存储器组之中确定监测组,
从包括在监测组中的多个块之中确定监测块,
使用虚设数据监测监测块,以生成结果,
基于所述结果更新所述多个块状态表之中的与监测组对应的第一块状态表,以及
在监测组的故障之前,基于第一块状态表来确定监测组是否是故障组。
20.根据权利要求19所述的存储器控制器,其中,处理器被配置为通过以下操作监测监测块:
对监测块执行存储器操作以生成所述结果,其中,存储器操作包括擦除操作、编程操作和读取操作中的至少一个,以及
基于所述结果确定监测块是否是坏块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0117106 | 2018-10-01 | ||
KR1020180117106A KR102554418B1 (ko) | 2018-10-01 | 2018-10-01 | 메모리 컨트롤러 및 이를 포함하는 스토리지 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110968473A true CN110968473A (zh) | 2020-04-07 |
CN110968473B CN110968473B (zh) | 2024-08-23 |
Family
ID=69945927
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910413995.7A Active CN110968473B (zh) | 2018-10-01 | 2019-05-17 | 存储器控制器和包括存储器控制器的存储装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11144380B2 (zh) |
KR (1) | KR102554418B1 (zh) |
CN (1) | CN110968473B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11205483B2 (en) * | 2016-04-11 | 2021-12-21 | SK Hynix Inc. | Memory system having dies and operating method of the memory system outputting a command in response to a status of a selected die |
DE102020135087A1 (de) | 2020-03-27 | 2021-09-30 | Samsung Electronics Co., Ltd. | Halbleitergehäuse |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070180328A1 (en) * | 2006-01-27 | 2007-08-02 | Cornwell Michael J | Monitoring health of non-volatile memory |
CN101243417A (zh) * | 2005-07-15 | 2008-08-13 | 松下电器产业株式会社 | 非易失性存储装置、存储控制器以及不良区域检测方法 |
US20120054582A1 (en) * | 2010-08-31 | 2012-03-01 | Apple Inc. | Detecting corrupted data for a system having non-volatile memory |
US20150287478A1 (en) * | 2014-04-02 | 2015-10-08 | Lsi Corporation | Bad memory unit detection in a solid state drive |
CN107766257A (zh) * | 2016-08-19 | 2018-03-06 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8341332B2 (en) | 2003-12-02 | 2012-12-25 | Super Talent Electronics, Inc. | Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices |
US7464306B1 (en) | 2004-08-27 | 2008-12-09 | Lexar Media, Inc. | Status of overall health of nonvolatile memory |
US7185246B2 (en) * | 2004-12-15 | 2007-02-27 | International Business Machines Corporation | Monitoring of solid state memory devices in active memory system utilizing redundant devices |
KR100734307B1 (ko) * | 2006-01-23 | 2007-07-02 | 삼성전자주식회사 | 포스트 비터비 에러 정정 방법 및 이에 적합한 장치 |
KR101214285B1 (ko) * | 2010-12-30 | 2012-12-20 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
US20130173972A1 (en) | 2011-12-28 | 2013-07-04 | Robert Kubo | System and method for solid state disk flash plane failure detection |
KR20140026889A (ko) * | 2012-08-23 | 2014-03-06 | 삼성전자주식회사 | 선택적으로 리프레쉬를 수행하는 저항성 메모리 장치 및 저항성 메모리장치의 리프레쉬 방법 |
US9349476B2 (en) * | 2013-02-21 | 2016-05-24 | Sandisk Technologies Inc. | Methods, systems, and computer readable media for early detection of potential flash failures using an adaptive system level algorithm based on flash program verify |
US9317350B2 (en) | 2013-09-09 | 2016-04-19 | International Business Machines Corporation | Method and apparatus for faulty memory utilization |
US9286176B1 (en) | 2013-11-08 | 2016-03-15 | Western Digital Technologies, Inc. | Selective skipping of blocks in an SSD |
US9471428B2 (en) | 2014-05-06 | 2016-10-18 | International Business Machines Corporation | Using spare capacity in solid state drives |
US9449717B2 (en) * | 2014-06-20 | 2016-09-20 | Arm Limited | Memory built-in self-test for a data processing apparatus |
US10235056B2 (en) | 2014-09-26 | 2019-03-19 | Western Digital Technologies, Inc. | Storage device health diagnosis |
TWI705682B (zh) | 2015-02-17 | 2020-09-21 | 南韓商愛思開海力士有限公司 | 嵌入式系統及其方法 |
TWI571742B (zh) * | 2015-10-07 | 2017-02-21 | 慧榮科技股份有限公司 | 資料儲存裝置及資料維護方法 |
TWI571871B (zh) * | 2015-10-19 | 2017-02-21 | 円星科技股份有限公司 | 記憶體資料之寫入追蹤裝置與方法 |
KR102329800B1 (ko) * | 2015-10-22 | 2021-11-22 | 삼성전자주식회사 | 메모리 장치 및 메모리 장치의 에지 워드라인 관리 방법 |
KR20170076883A (ko) * | 2015-12-24 | 2017-07-05 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작방법 |
KR102653401B1 (ko) * | 2016-07-18 | 2024-04-03 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작방법 |
KR102435890B1 (ko) | 2017-08-17 | 2022-08-25 | 삼성전자주식회사 | 스토리지 장치의 어드레스 맵핑 방법 및 동작 방법 |
KR102610395B1 (ko) * | 2019-01-22 | 2023-12-05 | 삼성전자주식회사 | 비휘발성 메모리 장치를 포함하는 메모리 시스템 |
-
2018
- 2018-10-01 KR KR1020180117106A patent/KR102554418B1/ko active IP Right Grant
-
2019
- 2019-05-16 US US16/414,079 patent/US11144380B2/en active Active
- 2019-05-17 CN CN201910413995.7A patent/CN110968473B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101243417A (zh) * | 2005-07-15 | 2008-08-13 | 松下电器产业株式会社 | 非易失性存储装置、存储控制器以及不良区域检测方法 |
US20070180328A1 (en) * | 2006-01-27 | 2007-08-02 | Cornwell Michael J | Monitoring health of non-volatile memory |
US20120054582A1 (en) * | 2010-08-31 | 2012-03-01 | Apple Inc. | Detecting corrupted data for a system having non-volatile memory |
US20150287478A1 (en) * | 2014-04-02 | 2015-10-08 | Lsi Corporation | Bad memory unit detection in a solid state drive |
CN107766257A (zh) * | 2016-08-19 | 2018-03-06 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
KR102554418B1 (ko) | 2023-07-11 |
KR20200037642A (ko) | 2020-04-09 |
US20200104201A1 (en) | 2020-04-02 |
US11144380B2 (en) | 2021-10-12 |
CN110968473B (zh) | 2024-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102549605B1 (ko) | Raid 스토리지 장치의 리커버리 방법 | |
CN107168886B (zh) | 数据存储装置及其操作方法 | |
US20160179596A1 (en) | Operating method of data storage device | |
CN110825655A (zh) | 存储器件、存取数据的方法及管理数据的方法 | |
CN112015329A (zh) | 存储系统及其操作方法 | |
CN110069357B (zh) | 集成电路存储器装置及其操作方法 | |
CN112582011A (zh) | 存储器设备及其操作方法 | |
US12061543B2 (en) | Power loss protection in memory sub-systems | |
CN115793959A (zh) | 主机装置、存储器控制器及包括它们的计算系统 | |
CN110968473B (zh) | 存储器控制器和包括存储器控制器的存储装置 | |
CN114764396A (zh) | 数据存储装置及其操作方法 | |
US11055020B2 (en) | Data storage device sharing operations with another data storage device and method of operating the same | |
CN106935265B (zh) | 非易失性存储器装置以及包括该非易失性存储器装置的数据存储装置 | |
CN112328516A (zh) | 控制器、控制器的操作方法以及包括控制器的存储装置 | |
US11586379B2 (en) | Memory system and method of operating the same | |
US11416163B2 (en) | Systems and methods for dynamic logical block address distribution between multicores | |
US11157401B2 (en) | Data storage device and operating method thereof performing a block scan operation for checking for valid page counts | |
CN114579356A (zh) | 存储器控制器及其操作方法 | |
KR20220070989A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
CN111143255A (zh) | 存储装置及其操作方法 | |
CN112015339B (zh) | 一种存储器的数据保存系统,保存方法及存储系统 | |
US11650873B2 (en) | Memory controller, method of operating the memory controller, and storage device including memory controller | |
US12118217B2 (en) | Memory system, memory controller and method for operating memory system, capable of determining target meta memory block on the basis of detected target state | |
KR20230018873A (ko) | 메모리 시스템 및 그 동작 방법 | |
CN115640161A (zh) | 存储器控制器、其操作方法以及包括其的计算机系统 |
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 |