CN109947359A - 存储器系统及其操作方法 - Google Patents
存储器系统及其操作方法 Download PDFInfo
- Publication number
- CN109947359A CN109947359A CN201810983121.0A CN201810983121A CN109947359A CN 109947359 A CN109947359 A CN 109947359A CN 201810983121 A CN201810983121 A CN 201810983121A CN 109947359 A CN109947359 A CN 109947359A
- Authority
- CN
- China
- Prior art keywords
- queue
- queued
- sacrificial block
- block
- reading
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 123
- 238000011017 operating method Methods 0.000 title claims description 15
- 230000015654 memory Effects 0.000 claims abstract description 157
- 238000006386 neutralization reaction Methods 0.000 claims 1
- 238000012545 processing Methods 0.000 description 25
- 239000000872 buffer Substances 0.000 description 18
- 238000004891 communication Methods 0.000 description 15
- 239000010410 layer Substances 0.000 description 14
- 238000000034 method Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 238000007726 management method Methods 0.000 description 9
- 238000012937 correction Methods 0.000 description 8
- 238000004064 recycling Methods 0.000 description 8
- 230000004044 response Effects 0.000 description 7
- 239000004065 semiconductor Substances 0.000 description 7
- 238000013507 mapping Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 238000012546 transfer Methods 0.000 description 3
- 101000934888 Homo sapiens Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Proteins 0.000 description 2
- 102100025393 Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Human genes 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 230000007774 longterm 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
- 230000001360 synchronised effect Effects 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000005621 ferroelectricity Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 238000005549 size reduction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- 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
- 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/073—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 memory management context, e.g. virtual memory or cache management
-
- 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/1068—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 in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
-
- 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
-
- 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/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/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/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/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
-
- 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/7201—Logical to physical mapping or translation of blocks or pages
-
- 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/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- 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/7205—Cleaning, compaction, garbage collection, erase control
-
- 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
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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本公开涉及一种存储器系统,该存储器系统包括:多个存储块;第一队列和第二队列;以及控制器:将多个存储块中的、错误信息值等于或大于阈值的第一牺牲块排队在第一队列中,将多个存储块中的、读取计数等于或大于阈值的第二牺牲块排队在第二队列中,基于读取回收值将被排队在第一队列中的第一牺牲块的优先级顺序和被排队在第二队列中的第二牺牲块的优先级顺序进行重新排列,并且基于优先级顺序对第一牺牲块和第二牺牲块执行读取回收操作。
Description
相关申请的交叉引用
本申请要求于2017年12月21日提交的申请号为10-2017-0176874的韩国专利申请的优先权,其公开通过引用整体并入本文。
技术领域
本发明的各个示例性实施例涉及一种存储器系统。特别地,实施例涉及一种控制读取回收操作的存储器系统以及存储器系统的操作方法。
背景技术
计算机环境范例已经转变为能够在任何时间和任何地点使用计算系统的普适计算。因此,诸如移动电话、数码相机和膝上型计算机的便携式电子装置的使用已经迅速增长。这些便携式电子装置通常使用具有一个或多个存储器装置的存储器系统来存储数据。存储器系统可用作便携式电子装置的主存储器装置或辅助存储器装置。
不具有移动部件的存储器系统提供优良的稳定性、耐用性、高的信息存取速度以及低功耗。具有这种优点的存储器系统的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡以及固态硬盘(SSD)。
发明内容
本发明的各个实施例涉及一种存储器系统以及存储器系统的操作方法,该存储器系统根据发生原因来划分且管理作为读取回收操作的目标的牺牲块并且根据优先级顺序对牺牲块执行读取回收操作。
根据本发明的实施例,一种存储器系统包括:多个存储块;第一队列和第二队列;以及控制器,适于:将多个存储块中的、错误信息值等于或大于阈值的第一牺牲块排队在第一队列中,将多个存储块中的、读取计数等于或大于阈值的第二牺牲块排队在第二队列中,基于读取回收值将被排队在第一队列中的第一牺牲块的优先级顺序和被排队在第二队列中的第二牺牲块的优先级顺序进行重新排列,并且基于优先级顺序对第一牺牲块和第二牺牲块执行读取回收操作。
根据本发明的实施例,一种存储器系统的操作方法包括:将多个存储块中的、错误信息值等于或大于阈值的第一牺牲块排队在第一队列中并且将多个存储块中的、读取计数等于或大于阈值的第二牺牲块排队在第二队列中;基于读取回收值,将被排队在第一队列中的第一牺牲块的优先级顺序和被排队在第二队列中的第二牺牲块的优先级顺序进行重新排列;并且基于优先级顺序,对第一牺牲块和第二牺牲块执行读取回收操作。
根据本发明的实施例,一种存储器控制器包括:第一队列,适于排队多个存储块中的第一牺牲块;第二队列,适于排队多个存储块中的第二牺牲块;以及控制器,适于:将第一牺牲块排队在第一队列中,将第二牺牲块排队在第二队列中,基于读取回收值,将被排队在第一队列中的第一牺牲块的优先级顺序和被排队在第二队列中的第二牺牲块的优先级顺序进行重新排列,并且基于优先级顺序对第一牺牲块和第二牺牲块执行读取回收操作。
附图说明
图1是示出根据本发明的实施例的包括存储器系统的数据处理系统的框图。
图2是示出在图1所示的存储器系统中采用的存储器装置的示例性配置的示意图。
图3是示出图1所示的存储器装置中的存储块的存储器单元阵列的示例性配置的电路图。
图4是示出根据本发明的实施例的读取回收操作的流程图。
图5至图13是示意性示出根据本发明的各个实施例的数据处理系统的应用示例的示图。
具体实施方式
以下参照附图更详细地描述本发明的各个实施例。然而,注意到的是,本发明可以不同的其他实施例、形式及其变型实施,且不应被解释为限于本文所阐述的实施例。相反,提供所描述的实施例使得本公开将完整和全面并将本发明充分地传达给本发明所属领域的技术人员。在整个本公开中,相同的附图标记在本发明的各个附图和实施例中表示相同的部件。注意的是,对“实施例”的参考不一定表示仅针对一个实施例,并且对“实施例”的不同参考不一定针对相同的实施例。
将理解的是,虽然可在本文中使用术语“第一”、“第二”、“第三”等来描述各个元件,但是这些元件不受这些术语的限制。这些术语用于将一个元件与另一个元件区分开。因此,在不脱离本发明的精神和范围的情况下,以下描述的第一元件也可被称为第二元件或第三元件。
附图不一定按比例绘制,并且在一些情况下,为了清楚地说明实施例的特征,比例可能已经被夸大。当元件被称为连接至或联接到另一元件时,应当理解的是前者可直接连接或联接到后者,或者经由其间的中间元件电连接或联接到后者。
将进一步理解的是,当元件被称为“连接至”或“联接到”另一元件时,它可直接在其它元件上、连接至或联接到其它元件,或者可存在一个或多个中间元件。此外,还将理解的是,当元件被称为在两个元件“之间”时,其可以是这两个元件之间的唯一元件,或者也可存在一个或多个中间元件。
本文使用的术语仅是为了描述特定实施例的目的,并不旨在限制本发明。
如本文所使用的,除非上下文另有明确说明,否则单数形式也旨在包括复数形式。
将进一步理解的是,当在本说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,其说明所陈述元件的存在,并不排除一个或多个其它元件的存在或添加。如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任意和全部组合。
除非另有定义,否则本文使用的包括技术术语和科学术语的所有术语具有与本发明所属领域的普通技术人员基于本公开所通常理解的含义相同的含义。将进一步理解的是,诸如在常用字典中定义的那些术语的术语应当被解释为具有与其在本公开和相关技术语境中的含义一致的含义,并且将不以理想化或过于正式的意义来解释,除非本文中明确地这样定义。
在下面的描述中,为了提供对本发明的全面理解,描述了大量具体细节。本发明可在没有一些或全部这些具体细节的情况下被实施。在其它情况下,为了避免不必要地模糊本发明,未详细地描述公知的进程结构和/或进程。
还注意的是,在一些情况下,如对于相关领域的技术人员显而易见的是,除非另有明确说明,否则结合一个实施例所描述的特征或元件可单独使用或与另一个实施例的其它特征或元件组合使用。
在下文中,将参照附图详细地描述本发明的各个实施例。
图1是示出根据本发明的实施例的包括存储器系统110的数据处理系统100的框图。
参照图1,数据处理系统100可包括被可操作地联接至存储器系统110的主机102。
例如,主机102可以包括诸如移动电话、MP3播放器和膝上型计算机的便携式电子装置或诸如台式计算机、游戏装置、电视(TV)和投影仪的非便携式电子装置。
主机102可以包括至少一个操作系统(OS)。OS可以管理和控制主机102的全部功能和操作,并且在主机102和使用数据处理系统100或存储器系统110的用户之间提供接口连接。OS可以支持与用户的使用目的和使用相对应的功能和操作。例如,根据主机102的移动性,OS可以被划分为通用OS和移动OS。根据用户的环境,通用OS可以被划分为个人OS和企业OS。例如,被配置为支持向普通用户提供服务的功能的个人OS可以包括Windows和Chrome,并且被配置为保护和支持高性能的企业OS可以包括Windows服务器、Linux和Unix。此外,被配置为支持向用户提供移动服务的功能和系统的省电功能的移动OS可以包括安卓、iOS和Windows Mobile。主机102可以包括多个OS,并且可以执行OS以对存储器系统110执行与用户的请求相对应的操作。此处,主机102可以向存储器系统110提供与用户的请求相对应的多个命令,并且因此存储器系统110可以执行与多个命令相对应的某些操作,即与用户的请求相对应的某些操作。
存储器系统110可以响应于主机102的请求存储用于主机102的数据。存储器系统110的非限制性实施例可以包括固态硬盘(SSD)、多媒体卡(MMC)、安全数字(SD)卡、通用串行总线(USB)装置、通用闪存(UFS)装置、标准闪存(CF)卡、智能媒体卡(SMC)、个人计算机存储卡国际协会(PCMCIA)卡和记忆棒。MMC可以包括嵌入式MMC(eMMC)、尺寸减小的MMC(RS-MMC)和微型-MMC。SD卡可以包括迷你-SD卡和微型-SD卡。
存储器系统110可以包括各种类型的存储装置。在根据本发明的一个实施例中,包括在存储器系统110中的存储装置可以包括诸如动态随机存取存储器(DRAM)和静态RAM(SRAM)的易失性存储器装置以及诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻式RAM(RRAM或ReRAM)和闪速存储器的非易失性存储器装置。
存储器系统110可以包括控制器130和存储器装置150。存储器装置150可以存储用于主机102的数据,并且控制器130可以控制将数据存储到存储器装置150中。
控制器130和存储器装置150可以被集成到单个半导体装置中,其中单个半导体装置可以被包括在如上所例示的各种类型的存储器系统中。例如,控制器130和存储器装置150可以被集成为一个半导体器装置以构成SSD。当存储器系统110用作SSD时,连接到存储器系统110的主机102的操作速度可以被提高。在另一示例中,控制器130和存储器装置150可以被集成为一个半导体器装置以构成存储卡。例如,控制器130和存储器装置150可以构成诸如以下的存储卡:个人计算机存储卡国际协会(PCMCIA)卡、CF卡、智能媒体卡(SMC)、记忆棒、包括RS-MMC和微型-MMC的MMC、包括迷你-SD、微型-SD和SDHC的SD卡、或UFS装置。
在根据本发明的一个实施例中,存储器系统110可以包括计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航系统、黑盒、数码相机、数字多媒体广播(DMB)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、构成数据中心的存储装置、能够在无线环境下传输/接收信息的装置、构成家庭网络的各种电子装置之一、构成计算机网络的各种电子装置之一、构成远程信息处理网络的各种电子装置之一、射频识别(RFID)装置或构成计算系统的各种部件之一。
存储器装置150可以是非易失性存储器装置,并且即使不供应电力也可保留存储的数据。存储器装置150可通过写入操作来存储从主机102提供的数据,并且通过读取操作将存储在其中的数据提供给主机102。在实施例中,存储器装置150可包括多个存储器管芯(未示出),每个存储器管芯可以包括多个平面(未示出),并且每个平面可以包括多个存储块152至156。存储块152至156中的每一个可包括多个页面,并且页面中的每一个可包括联接到字线的多个存储器单元。在实施例中,存储器装置150可以是具有三维(3D)堆叠结构的闪速存储器。
控制器130可响应于来自主机102的请求来控制存储器装置150。例如,控制器130可将从存储器装置150读取的数据提供给主机102,并且将从主机102提供的数据存储到存储器装置150中。对于该操作,控制器130可以控制存储器装置150的读取操作、写入操作、编程操作和擦除操作。
更具体地,控制器130可包括主机接口(I/F)132、处理器134、错误校正码(ECC)部件138、电源管理单元(PMU)140、存储器接口(I/F)142以及存储器144,其全部通过内部总线可操作地联接。存储器144可以包括第一队列402和第二队列404。
主机接口132可处理主机102的命令和数据,并可通过诸如以下的各种接口协议中的一种或多种与主机102通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-E)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)以及电子集成驱动器(IDE)。主机接口132可以经由固件来驱动,即经由用于与主机102交换数据的主机接口层(HIL)来驱动。
ECC部件138可以校正待由存储器装置150处理的数据的错误位并且可以包括ECC编码器和ECC解码器。ECC编码器可对待被编程到存储器装置150中的数据执行错误校正编码以生成添加了奇偶校验位的数据。包括奇偶校验位的数据可以被存储在存储器装置150中。ECC解码器可以检测并且校正从存储器装置150读取的数据中包含的错误。换言之,ECC部件138可以通过在ECC编码进程期间使用的ECC代码,对从存储器装置150读取的数据执行错误校正解码进程。根据错误校正解码进程的结果,ECC部件138可以输出信号,例如错误校正成功/失败信号。当错误位的数量大于可校正错误位的阈值时,ECC部件138可以不校正错误位,并且可以输出错误校正失败信号。
ECC部件138可通过诸如以下的编码调制执行错误校正:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhri-Hocquenghem,BCH)码、turbo码、里德-所罗门(Reed-Solomon)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)以及分组编码调制(BCM)。然而,ECC部件138不限于此。ECC部件138可包括用于错误校正的所有电路、模块、系统或装置。
PMU 140可提供和管理控制器130的电力。
存储器接口142可以用作用于接口连接控制器130和存储器装置150的存储器接口或存储接口,使得控制器130可以响应于来自主机102的请求来控制存储器装置150。当存储器装置150是闪速存储器或具体是NAND闪速存储器时,存储器接口142可以是NAND闪速控制器(NFC)并且可以在处理器134的控制下生成用于存储器装置150的控制信号并且处理待提供至存储器装置150的数据。存储器接口142可以用作处理控制器130和存储器装置150之间的命令和数据的接口(例如,NAND闪存接口)。具体地,存储器接口142可以支持控制器130和存储器装置150之间的数据传送。存储器接口142可以经由固件来驱动,即经由用于与存储器装置150交换数据的闪存接口层(FIL)来驱动。
存储器144可用作存储器系统110和控制器130的工作存储器,并且存储用于驱动存储器系统110和控制器130的数据。控制器130可响应于来自主机102的请求控制存储器装置150执行读取操作、编程操作和擦除操作。控制器130可将从存储器装置150读取的数据提供给主机102,可将从主机102提供的数据存储到存储器装置150中。存储器144可存储控制器130和存储器装置150执行这些操作所需的数据。
存储器144可以是易失性存储器。例如,存储器144可以是静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。存储器144可以被设置在控制器130的内部或外部。图1例示了设置在控制器130内的存储器144。在实施例中,存储器144可以是具有在存储器144和控制器130之间传输数据的存储器接口的外部易失性存储器。
如上所述,存储器144可以包括编程存储器、数据存储器、写入缓冲器或高速缓冲器、读取缓冲器或高速缓冲器、数据缓冲器或高速缓冲器以及映射缓冲器或高速缓冲器,以存储在主机102和存储器装置150之间执行数据写入操作和读取操作所需的数据以及控制器130和存储器装置150执行这些操作所需的数据。
处理器134可控制存储器系统110的全部操作。处理器134可驱动固件来控制存储器系统110的全部操作。固件可以被称为闪存转换层(FTL)。
例如,控制器130可以通过被实施为微处理器、中央处理单元(CPU)等的处理器134,对存储器装置150执行由主机102请求的操作。换言之,控制器130可以执行与从主机102接收的命令相对应的命令操作。在本文中,控制器130可以执行前台操作作为与从主机102接收的命令相对应的命令操作。例如,控制器130可以执行对应于写入命令的编程操作、对应于读取命令的读取操作、对应于擦除命令的擦除操作以及对应于作为设置命令的设置参数命令或设置特征命令的参数设置操作。
而且,控制器130可以通过被实现为微处理器或CPU的处理器134,对存储器装置150执行后台操作。后台操作的示例可以包括:将存储器装置150的存储块152至156之中的一些存储块中存储的数据复制到存储器装置150的存储块152至156中的其它存储块中并进行处理的操作,例如,垃圾收集(GC)操作。后台操作的示例可以包括在存储器装置150的存储块152至156之间或存储块152至156的数据之间执行交换的操作,例如,损耗均衡(WL)操作。后台操作的示例可以包括将控制器130中存储的映射数据存储在存储器装置150的存储块152至156中的操作,例如,映射清除(flush)操作。后台操作的示例可以包括管理存储器装置150的坏块的操作,例如,在包括在存储器装置150中的存储块152至156中检测并处理坏块的坏块管理操作。
进一步地,控制器130可以在存储器装置150中执行与从主机102接收的多个命令相对应的多个命令执行,例如,对应于多个写入命令的多个编程操作、对应于多个读取命令的多个读取操作以及对应于多个擦除命令的多个擦除操作。而且,控制器130可以根据命令执行更新元数据(特别是映射数据)。
控制器130的处理器134可以包括用于执行存储器装置150的坏块管理操作的管理单元(未示出)。管理单元可以执行在包括在存储器装置150中的多个存储块152至156之中检测坏块的坏块管理操作,其中在编程操作期间由于NAND闪速存储器的特性,在坏块中可能发生编程失败。管理单元可以将坏块的编程失败的数据写入到新存储块。在具有3D堆叠结构的存储器装置150中,坏块可能降低存储器装置150的使用效率和存储器系统110的可靠性。因此,需要更可靠地来执行坏块管理操作。在下文中,参照图2至图3详细描述根据本发明的实施例的存储器系统的存储器装置。
图2是示出存储器装置150的示意图,并且图3是示出存储器装置150中的存储块330的存储器单元阵列的示例性配置的电路图。
参照图2,存储器装置150可以包括多个存储块BLOCK0 210至BLOCKN-1 240。块BLOCK0 210至BLOCKN-1 240中的每一个可以包括多个页面,例如,2M个页面,页面的数量可以根据电路设计而变化。在本文中,虽然描述了存储块中的每一个包括2M个页面,但是存储块210至240中的每一个也可以包括M个页面。页面中的每一个可以包括联接到多个字线WL的多个存储器单元。
而且,包括在各个存储块BLOCK0 210至BLOCKN-1 240中的存储器单元可以是存储1位数据的单层单元(SLC)存储块或存储2位数据的多层单元(MLC)存储块中的一个或多个。因此,根据在存储块中的存储器单元的每一个中可以表达或存储的位的数量,存储器装置150可以包括SLC存储块或MLC存储块。SLC存储块可以包括由每一个存储1位数据的存储器单元实施的多个页面,并且通常可以具有高数据计算性能和高耐久性。MLC存储块可以包括由每一个存储多位(例如,2位或多位)数据的存储器单元实施的多个页面,并且通常可以具有比SLC存储块更大的数据存储空间,即更高的集成密度。在另一实施例中,存储器装置150可以包括多个三层单元(TLC)存储块。在又一实施例中,存储器装置150可以包括多个四层单元(QLC)存储块。TLC存储块可以包括由每一个能够存储3位数据的存储器单元实施的多个页面。QLC存储块可以包括由每一个能够存储4位数据的存储器单元实施的多个页面。
虽然为了方便起见,本发明的实施例示例性地描述了存储器装置150可以是诸如NAND闪速存储器的闪速存储器,但是存储器装置150还可以由诸如以下的各种其它存储器装置来实施:相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM或ReRAM)、铁电随机存取存储器(FRAM)、自旋转移力矩磁阻随机存取存储器(STT-RAM或STT-MRAM)等。
存储器装置210、220、230和240可以通过编程操作来存储从主机102传输的数据,并且通过读取操作将存储在存储器装置210、220、230和240中的数据传输到主机102。
参照图3,存储块330可以包括联接到多个相应位线BL0至BLm-1的多个单元串340。每列的单元串340可以包括一个或多个漏极选择晶体管DST和一个或多个源极选择晶体管SST。在源极选择晶体管SST和漏极选择晶体管DST之间,多个存储器单元MC0至MCn-1可以串联联接。在实施例中,存储器单元晶体管MC0至MCn-1中的每一个可以由能够存储多位数据的MLC来实施。单元串340中的每一个可以电联接到多个位线BL0至BLm-1中的相应位线。例如,如图3所示,第一单元串联接到第一位线BL0,并且最后单元串联接到最后位线BLm-1。
虽然图3示出了NAND闪速存储器单元,但是本公开不限于此。应当注意的是,存储器单元可以是NOR闪速存储器单元,或者包括组合在其中的两种或更多种存储器单元的混合闪速存储器单元。而且,应注意的是,存储器装置150可以是包括作为电荷存储层的导电浮栅的闪速存储器装置或包括作为电荷存储层的绝缘层的电荷撷取闪速(CTF)存储器装置。
存储器装置150可以进一步包括电源310,其提供包括编程电压、读取电压和通过电压的字线电压,以根据操作模式提供至字线。控制电路(未示出)可以控制电源310的电压生成操作。在控制电路的控制下,电源310可以选择存储器单元阵列的存储块(或扇区)中的一个,选择所选择的存储块的字线中的一个,并且根据需要将字线电压提供至所选择的字线和未选择的字线。
存储器装置150可以包括由控制电路控制的读取和写入(读取/写入)电路320。在验证/正常读取操作期间,读取/写入电路320可以用作用于从存储块330的存储器单元阵列读取数据的读出放大器。在编程操作期间,读取/写入电路320可用作根据待被存储在存储器单元阵列中的数据来驱动位线的写入驱动器。在编程操作期间,读取/写入电路320可以从缓冲器(未示出)接收待被存储到存储器单元阵列中的数据并且根据接收的数据来驱动位线。读取/写入电路320可以包括分别对应于列(或位线)或列对(或位线对)的多个页面缓冲器(PB)322至326。页面缓冲器322至326中的每一个可包括多个锁存器(未示出)。
读取干扰现象是指对包括在特定块中的多个页面执行读取操作并且包括在该块中的另一页面的单元层(cell-level)增加的现象。当读取干扰现象被累积时,可能超过ECC138的错误校正能力。在这种情况下,读取回收操作是指将存储在读取计数或错误信息值等于或大于阈值的牺牲块中的有效页面存储在目标块中并且对包括在牺牲块中的剩余页面执行擦除操作的操作。因此,通过读取回收操作可以防止发生不可恢复的错误。
在常规的存储器系统中,当特定块的读取计数和错误信息值中的任何一个等于或大于阈值时,图1的控制器130可以将该块检测为牺牲块。控制器130可以按照牺牲块被检测到的顺序,将牺牲块的地址信息排队在读取回收队列中。根据通用队列管理方式,例如先进先出(FIFO)方式,控制器130可以对读取回收队列中的第一个排队的牺牲块执行读取回收操作。
通常,当牺牲块的地址信息被排队到读取回收队列中时,不再考虑牺牲块的特性。即,当控制器以FIFO方式执行读取回收操作时,在不对读取计数等于或大于阈值的牺牲块和错误信息值等于或大于阈值的牺牲块进行分类的情况下,将牺牲块的地址信息排队在读取回收队列中。
如上所述,在常规的存储器系统中,根据地址信息被排队的顺序来执行读取回收操作。因此,当牺牲快的地址信息被排队在读取回收列队中时,可能在不考虑牺牲快的损坏程度的情况下执行读取回收操作。例如,当特定牺牲块的读取计数远大于另一牺牲块的读取计数时,具有较大读取计数的牺牲块的损坏程度可能较高。然而,由于损坏程度较高的牺牲块的排队顺序靠后(slow),因此可以较迟地对该牺牲块执行读取回收操作。
根据本发明的实施例,可以通过综合考虑牺牲块的读取计数、错误信息值和地址信息被排队在读取回收队列中的时间,优先地对具有较高损坏程度的牺牲块执行读取回收操作。
图4是示出根据本发明的实施例的读取回收操作的流程图。图1的控制器130可以控制存储器装置150以执行读取回收操作。
参照图4,在步骤S501处,处理器134可以在存储器装置150中包括的存储块152至156之中检测作为读取回收操作的目标的牺牲块。处理器134可以检测错误信息值等于或大于阈值的块作为第一牺牲块。错误信息值可以是存储块的错误位数量和存储块的错误步骤数量中的任何一个。进一步地,处理器134可以检测读取计数等于或大于阈值的块作为第二牺牲块。可以将检测到的第一牺牲块和第二牺牲块分别排队在第一队列402和第二队列404中。
错误步骤数量可以表示在ECC单元138中校正第一牺牲块的错误所需的解码次数。
在步骤S503处,处理器134可以根据下面的等式1计算第一牺牲块中的每一个的第一读取回收值RRCV1C。第一读取回收值RRCV1C可以表示对第一牺牲块中的每一个执行读取回收操作的优先级顺序。
RRCV1C=EIRV*QSTY1 (1)
在等式1中,“EIRV”表示错误信息范围值,并且“QSTY1”表示第一牺牲块的地址被排队在第一队列402中的时间(在下文中被称为“第一排队时间”)。
错误信息范围值EIRV可以是预定范围内分配的值,其中第一牺牲块中的每一个的错误信息值属于该预定范围。错误信息范围值EIRV可以表示第一牺牲块的损坏程度。错误信息范围值EIRV越大,第一牺牲块的损坏程度越高。
根据实施例,当错误位数量等于或大于0且小于80时,错误信息范围值EIRV可以是“1”。当错误位数量等于或大于80且小于120时,错误信息范围值EIRV可以是“2”。当错误位数量等于或大于120且小于160时,错误信息范围值EIRV可以是“3”。当错误位数量等于或大于160时,错误信息范围值EIRV可以是“10”。
根据另一实施例,当错误步骤数量等于或大于0且小于5时,错误信息范围值EIRV可以是“1”。当错误步骤数量等于或大于5且小于10时,错误信息范围值EIRV可以是“2”。当错误步骤数量等于或大于10且小于20时,错误信息范围值EIRV可以是“3”。当错误步骤数量等于或大于20时,错误信息范围值EIRV可以是“10”。
第一排队时间QSTY1可以表示第一牺牲块的地址被排队在第一队列402中的时间。例如,第一排队时间QSTY1的初始值可以是“1”。可以根据需要更新第一排队时间QSTY1。
例如,随着第一牺牲块的错误信息值被排队在第一队列402中的时间增加,第一牺牲块的错误信息值可能增加。第一排队时间QSTY1可以反映错误信息值,其中错误信息值可以随着第一牺牲块被排队在第一队列402中的时间而变化。
在步骤S505处,处理器134可以确定第一队列402是否充满第一牺牲块的地址信息,即,第一队列402是否已满。换言之,处理器134可以确定第一队列402的容量是否有剩余。
作为步骤S505处的确定结果,当第一队列402的容量有剩余时,即,当第一队列402未满(即,在步骤S505处为“否”)时,在步骤S507处,处理器134可以将第一牺牲块的地址和读取回收值排队在第一队列402中。
在步骤S509处,处理器134可以基于与被排队在第一队列402中的地址相对应的第一牺牲块的第一读取回收值RRCV1C,将被排队在第一队列402中的地址的排队顺序进行重新排列。例如,可以按照第一读取回收值RRCV1C的降序,将被排队在第一队列402中的地址的排队顺序进行重新排列。处理器134可以通过更新第一排队时间QSTY1来更新第一读取回收值RRCV1C,并且基于更新的第一读取回收值RRCV1C将被排队在第一队列402中的地址的排队顺序进行重新排列。
在步骤S511处,处理器134可以计算与被排队在第一队列402中的地址相对应的第一牺牲块的第一读取回收值RRCV1C的总和RRCV1total(在下文中被称为“第一总和”)。
作为步骤S505处的确定结果,当第一队列402的容量没有剩余时,即,当第一队列402已满(即,在步骤S505处为“是”)时,在步骤S513处,处理器134可以确定第二队列404是否充满第二牺牲块的地址信息,即,第二队列404是否已满。换言之,处理器134可以确定第二队列404的容量是否有剩余。
作为步骤S513处的确定结果,当第二队列404的容量有剩余时,即,当第二队列404未满(即,在步骤S513处为“否”)时,在步骤S515处,处理器134可以将剩余容量分配给第一队列402以增加第一队列402的容量,并且执行步骤S507至步骤S511。
作为步骤S513处的确定结果,当第二队列404的容量没有剩余时,即,当第二队列404已满(即,在步骤S513处为“是”)时,在步骤S517处,处理器134可以确定第一牺牲块的第一读取回收值RRCV1C是否大于与被排队在第一队列402中地址相对应的第一牺牲块的最小第一读取回收值RRCV1min。
作为步骤S517处的确定结果,当第一牺牲块的第一读取回收值RRCV1C大于与被排队在第一队列402中的地址相对应的第一牺牲块的最小第一读取回收值RRCV1min(即,在步骤S517处为“是”)时,在步骤S519处,处理器134可以将具有最小第一读取回收值RRCV1min的第一牺牲块的地址从第一队列402出队,以确保第一队列402的容量,并且随后执行步骤S507至步骤S511。
作为步骤S517处的确定结果,当第一牺牲块的第一读取回收值RRCV1C等于或小于与被排队在第一队列402中的地址相对应的第一牺牲块的最小第一读取回收值RRCV1min(即,在步骤S517处为“否”)时,处理器134可以在步骤S563处将第一牺牲块的地址排队在第一队列402中。此时,因为在步骤S561处,处理器134可以控制存储器装置150对第一队列402和第二队列404选择性执行读取回收操作,所以确保了第一队列402的容量,这将在下面描述。
在步骤S533处,处理器134可以根据下面的等式2计算第二牺牲块中的每一个的第二读取回收值RRCV2C。第二读取回收值RRCV2C可以表示对第二牺牲块中的每一个执行读取回收操作的优先级顺序。
[等式2]
RRCV2C=RCRV*QSTY2 (2)
在等式2中,“RCRV”表示读取计数范围值,并且“QSTY2”表示第二牺牲块的地址被排队在第二队列404中的时间(在下文中被称为“第二排队时间”)。
读取计数范围值RCRV可以是预定范围内分配的值,其中第二牺牲块中的每一个的读取计数属于该预定范围。读取计数范围值RCRV可以表示第二牺牲块的损坏程度。读取计数范围值RCRV越大,第二牺牲块的损坏程度越高。
根据实施例,当读取计数等于或大于0且小于50000时,读取计数范围值RCRV可以是“1”。当读取计数等于或大于50000且小于100000时,读取计数范围值RCRV可以是“2”。当读取计数等于或大于100000且小于200000时,读取计数范围值RCRV可以是“3”。当读取计数等于或大于200000时,读取计数范围值RCRV可以是“10”。
第二排队时间QSTY2可以表示第二牺牲块的地址被排队在第二队列402中的时间。例如,第二排队时间QSTY2的初始值可以是“1”。可以根据需要更新第二排队时间QSTY2。
例如,随着第二牺牲块的读取计数被排队在第二队列404中的时间增加,第二牺牲块的读取计数可能增加。第二排队时间QSTY2可以反映读取计数,其中读取计数可以随着第二牺牲块被排队在第二队列404中的时间而变化。
在步骤S535处,处理器134可以确定第二队列404是否充满第二牺牲块的地址信息,即,第二队列404是否已满。换言之,处理器134可以确定第二队列404的容量是否有剩余。
作为步骤S535处的确定结果,当第二队列404的容量有剩余时,即,当第二队列404未满(即,在步骤S535处为“否”)时,在步骤S537处,处理器134可以将第二牺牲块的地址和读取回收值排队在第二队列404中。
在步骤S539处,处理器134可以基于与被排队在第二队列404中的地址相对应的第二牺牲块的第二读取回收值RRCV2C,将被排队在第二队列404中的地址的排队顺序进行重新排列。例如,可以按照第二读取回收值RRCV2C的降序,将被排队在第二队列404中的地址的排队顺序进行重新排列。处理器134可以通过更新第二排队时间QSTY2来更新第二读取回收值RRCV2C,并且基于更新的第二读取回收值RRCV2C将被排队在第二队列404中的地址的排队顺序进行重新排列。
在步骤S541处,处理器134可以计算与被排队在第二队列404中的地址相对应的第二牺牲块的第二读取回收值RRCV2C的总和RRCV2total(在下文中被称为“第二总和”)。
作为步骤S535处的确定结果,当第二队列404的容量没有剩余时,即,当第二队列404已满(即,在步骤S535处为“是”)时,在步骤S543处,处理器134可以确定第一队列402是否充满第一牺牲块的地址信息。换言之,处理器134可以确定第一队列402的容量是否有剩余。
作为步骤S543处的确定结果,当第一队列402的容量有剩余时,即,当第一队列402未满(即,在步骤S543处为“否”)时,在步骤S545处,处理器134可以将第一队列402的剩余容量分配给第二队列404以增加第二队列404的容量,并且执行步骤S537至步骤S541。
作为步骤S543处的确定结果,当第一队列402的容量没有剩余时,即,当第一队列402已满(即,在步骤S543处为“是”)时,在步骤S547处,处理器134可以确定第二牺牲块的第二读取回收值RRCV2C是否大于与被排队在第二队列404中的地址相对应的第二牺牲块的最小第二读取回收值RRCV2min。
作为步骤S547处的确定结果,当第二牺牲块的第二读取回收值RRCV2C大于与被排队在第二队列404中的地址相对应的第二牺牲块的最小第二读取回收值RRCV2min(即,在步骤S547处为“是”)时,在步骤S549处,处理器134可以将具有最小第二读取回收值RRCV2min的第二牺牲块的地址从第二队列404出队,以确保第二队列404的容量,并且随后执行步骤S537至步骤S541。
作为步骤S547处的确定结果,当第二牺牲块的第二读取回收值RRCV2C等于或小于与被排队在第二队列404中的地址相对应的第二牺牲块的最小第二读取回收值RRCV2min(即,在步骤S547处为“否”)时,处理器134可以在步骤S563处将第二牺牲块的地址排队在第二队列404中。此时,因为在步骤S561处,处理器134可以控制存储器装置150对第一队列402和第二队列404选择性执行读取回收操作,所以确保了第二队列404的容量,这将在下面描述。
在步骤S511和步骤S541或步骤S511和S541中的任何一个之后,在步骤S561处,处理器134可以基于第一总和RRCV1total和第二总和RRCV2total,根据在第一队列402和第二队列404中重新排列的地址的排队顺序,来控制存储器装置150对与被排队在第一队列402中的地址相对应的第一牺牲块和与被排队在第二队列404中的地址相对应的第二牺牲块选择性执行读取回收操作。
根据实施例,处理器134可以根据第一总和RRCV1total和第二总和RRCV2total的比例,来控制存储器装置150对与被排队在第一队列402中的地址相对应的第一牺牲块和与被排队在第二队列404中的地址相对应的第二牺牲块选择性执行读取回收操作。
例如,当第一总和RRCV1total与第二总和RRCV2total的比例是2比1时,处理器134可以控制存储器装置150对具有最高优先级的两个第一牺牲块顺序地执行读取回收操作并且对具有最高优先级的一个第二牺牲块执行读取回收操作,其中具有最高优先级的两个第一牺牲块,即与被排队在第一队列402中的地址相对应的第一牺牲块之中的、具有最大第一读取回收值RRCV1C的两个第一牺牲块,以及具有最高优先级的一个第二牺牲块,即与被排队在第二队列404中的地址相对应的第二牺牲块之中的、具有最大第二读取回收值RRCV2C的一个第二牺牲块。
被排队在第一队列402和第二队列404中的一个或多个队列中的第一牺牲块和第二牺牲块的一个或多个地址可以通过步骤S561的读取回收操作而出队,并且因此,可以确保队列的容量以用于对另外的牺牲块地址进行排队。
作为步骤S517处的确定结果,当第一牺牲块的第一读取回收值RRCV1C等于或小于与被排队在第一队列402中的地址相对应的第一牺牲块的最小第一读取回收值RRCV1min(即,在步骤S517处为“否”)时,并且作为步骤S547处的确定的结果,当第二牺牲块的第二读取回收值RRCV2C等于或小于与被排队在第二队列404中的地址相对应的第二牺牲块的最小第二读取回收值RRCV2min(即,在步骤S547处为“否”)时,在步骤S563处,处理器134可以控制存储器装置150将第一牺牲块的地址和第二牺牲块的地址排队在第一队列402和第二队列404中的一个或多个队列中,该进程通过在步骤S561处对第一队列402和第二队列404选择性执行读取回收操作而被确保。
如上所述,根据本发明的实施例,控制器130可以基于读取回收值RRCV1C和RRCV2C来确定在第一队列402中排队的第一牺牲块的优先级顺序和在第二队列404中排队的第二牺牲块的优先级顺序。因此,可以根据确定的优先级顺序执行读取回收操作。
在下文中,将参照图5至图13详细描述应用包括根据本公开的实施例的参照图1至图4描述的存储器装置150和控制器130的存储器系统110的各种数据处理系统和电子装置。
图5是示意性示出包括根据本实施例的存储器系统的数据处理系统的另一示例的示图。图5示意性示出了应用根据本实施例的存储器系统的存储卡系统6100。
参照图5,存储卡系统6100可包括存储器控制器6120、存储器装置6130和连接器6110。
更具体地,存储器控制器6120可被连接至通过非易失性存储器(NVM)实施的存储器装置6130,并被配置成访问存储器装置6130。例如,存储器控制器6120可被配置成控制存储器装置6130的读取操作、写入操作、擦除操作和后台操作。存储器控制器6120可被配置成提供存储器装置6130和主机(未示出)之间的接口并驱动固件以控制存储器装置6130。也就是说,存储器控制器6120可对应于参照图1描述的存储器系统110的控制器130,并且存储器装置6130可对应于参照图1描述的存储器系统110的存储器装置150。
因此,如图1所示,存储器控制器6120可包括随机存取存储器(RAM)、处理单元、主机接口、存储器接口和错误校正单元。
存储器控制器6120可通过连接器6110与例如图1的主机102的外部装置通信。例如,如参照图1所述,存储器控制器6120可被配置成通过诸如以下的各种通信协议中的一种或多种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCIe)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(SCSI)、增强型小型磁盘接口(EDSI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、WIFI以及蓝牙。因此,根据本实施例的存储器系统和数据处理系统可应用于有线和/或无线电子装置,或者特别是移动电子装置。
存储器装置6130可通过非易失性存储器来实施。例如,存储器装置6130可通过诸如以下的各种非易失性存储器装置来实施:可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)以及自旋转移力矩磁性RAM(STT-MRAM)。
存储器控制器6120和存储器装置6130可被集成至单个半导体装置中。例如,存储器控制器6120和存储器装置6130可通过集成至单个半导体装置中构成固态驱动器(SSD)。此外,存储器控制器6120和存储器装置6130可构成存储卡,诸如PC卡(例如,个人计算机存储卡国际协会(PCMCIA))、标准闪存(CF)卡、智能媒体卡(例如,SM和SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC、微型MMC和eMMC)、安全数据(SD)卡(例如,SD、迷你SD、微型SD和SDHC)以及通用闪存(UFS)。
图6是示意性示出包括根据本实施例的存储器系统的数据处理系统6200的示例的示图。
参照图6,数据处理系统6200可包括具有一个或多个非易失性存储器(NVM)的存储器装置6230和用于控制存储器装置6230的存储器控制器6220。数据处理系统6200可作为如参照图1所描述的诸如存储卡(例如,CF、SD、微型SD等)或USB装置的存储介质。存储器装置6230可对应于图1所示的存储器系统110中的存储器装置150,并且存储器控制器6220可对应于图1所示的存储器系统110中的控制器130。
存储器控制器6220可响应于主机6210的请求控制对存储器装置6230的读取操作、写入操作或擦除操作,并且存储器控制器6220可包括一个或多个中央处理单元(CPU)6221、诸如随机存取存储器(RAM)6222的缓冲存储器、错误校正码(ECC)电路6223、主机接口6224以及诸如NVM接口6225的存储器接口。
CPU 6221可控制对存储器装置6230的全部操作,例如读取操作、写入操作、文件系统管理操作和坏页面管理操作。RAM 6222可根据CPU 6221的控制来操作且用作工作存储器、缓冲存储器或高速缓冲存储器。当RAM 6222用作工作存储器时,通过CPU 6221处理的数据可被临时存储在RAM 6222中。当RAM 6222用作缓冲存储器时,RAM 6222可用于缓冲从主机6210传输到存储器装置6230的数据或从存储器装置6230传输到主机6210的数据。当RAM6222用作高速缓冲存储器时,RAM 6222可辅助存储器装置6230以高速运行。
ECC电路6223可对应于图1所示的控制器130的ECC单元138。如参照图1所述,ECC电路6223可生成用于校正从存储器装置6230提供的数据的失效位或错误位的错误校正码(ECC)。ECC电路6223可对提供给存储器装置6230的数据执行错误校正编码,从而形成具有奇偶校验位的数据。奇偶校验位可被存储在存储器装置6230中。ECC电路6223可对从存储器装置6230输出的数据执行错误校正解码。此时,ECC电路6223可使用奇偶校验位来校正错误。例如,如参照图1所述,ECC电路6223可使用低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(BCH)码、turbo码、里德-所罗门码、卷积码、递归系统码(RSC)、诸如网格编码调制(TCM)或分组编码调制(BCM)的编码调制来校正错误。
存储器控制器6220可通过主机接口6224向主机6210传输数据并接收来自主机6210的数据,并通过NVM接口6225向存储器装置6230传输数据并接收来自存储器装置6230的数据。主机接口6224可通过并行高级技术附件(PATA)总线、串行高级技术附件(SATA)总线、小型计算机系统接口(SCSI)、通用串行总线(USB)、高速外围组件互连(PCIe)或NAND接口连接至主机6210。存储器控制器6220可利用诸如无线保真(WiFi)或长期演进(LTE)的移动通信协议具有无线通信功能。存储器控制器6220可连接至外部装置,例如主机6210或另一个外部装置,然后向外部装置传输数据并接收来自外部装置的数据。特别地,由于存储器控制器6220被配置成通过各种通信协议中的一种或多种与外部装置通信,因此根据本实施例的存储器系统和数据处理系统可被应用于有线和/或无线电子装置或特别是移动电子装置。
图7是示意性示出包括根据本实施例的存储器系统的数据处理系统的示例的示图。图7示意性示出应用根据本实施例的存储器系统的固态硬盘(SSD)6300。
参照图7,SSD 6300可包括控制器6320和包括多个非易失性存储器(NVM)的存储器装置6340。控制器6320可对应于图1的存储器系统110中的控制器130,并且存储器装置6340可对应于图1的存储器系统中的存储器装置150。
更具体地,控制器6320可通过多个通道CH1至CHi连接至存储器装置6340。控制器6320可包括一个或多个处理器6321、错误校正码(ECC)电路6322、主机接口6324、缓冲存储器6325以及诸如非易失性存储器接口6326的存储器接口。
缓冲存储器6325可临时存储从主机6310提供的数据或从包括在存储器装置6340中的多个闪速存储器NVM提供的数据,或者临时存储多个闪速存储器NVM的元数据,例如,包括映射表的映射数据。缓冲存储器6325可以由诸如动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、双倍数据速率(DDR)SDRAM、低功率DDR(LPDDR)SDRAM和图形RAM(GRAM)的易失性存储器或诸如铁电RAM(FRAM)、电阻式RAM(RRAM或ReRAM)、自旋转移力矩磁阻RAM(STT-MRAM)和相变RAM(PRAM)的非易失性存储器来实现。为便于描述,图7说明缓冲存储器6325存在于控制器6320中。然而,缓冲存储器6325可存在于控制器6320的外部。
ECC电路6322可在编程操作期间计算待被编程到存储器装置6340的数据的错误校正码(ECC)值,在读取操作期间基于ECC值对从存储器装置6340读取的数据执行错误校正操作,并在失效数据恢复操作期间对从存储器装置6340恢复的数据执行错误校正操作。
主机接口6324可提供与诸如主机6310的外部装置的接口功能,并且非易失性存储器接口6326可提供与通过多个通道连接的存储器装置6340的接口功能。
此外,可提供应用了图1的存储器系统110的多个SSD 6300来实施数据处理系统,例如,独立磁盘冗余阵列(RAID)系统。此时,RAID系统可包括多个SSD 6300和用于控制多个SSD 6300的RAID控制器。当RAID控制器响应于从主机6310提供的写入命令执行编程操作时,RAID控制器可根据多个RAID级别,即,从主机6310提供的写入命令的RAID级别信息,在SSD 6300中选择一个或多个存储器系统或SSD6300,并将对应于写入命令的数据输出到选择的SSD 6300。此外,当RAID控制器响应于从主机6310提供的读取命令执行读取操作时,RAID控制器可根据多个RAID级别,即,从主机6310提供的读取命令的RAID级别信息,在SSD6300中选择一个或多个存储器系统或SSD6300,并将从所选择的SSD 6300读取的数据提供给主机6310。
图8是示意性示出包括根据本实施例的存储器系统的数据处理系统的示例的示图。图8示意性示出应用了根据本实施例的存储器系统的嵌入式多媒体卡(eMMC)6400。
参照图8,eMMC 6400可包括控制器6430和通过一个或多个NAND闪速存储器实施的存储器装置6440。控制器6430可对应于图1的存储器系统110中的控制器130,并且存储器装置6440可对应于图1的存储器系统110中的存储器装置150。
更具体地,控制器6430可通过多个通道连接至存储器装置6440。控制器6430可包括一个或多个内核6432、主机接口(I/F)6431和诸如NAND接口(I/F)6433的存储器接口。
内核6432可控制eMMC 6400的全部操作。主机接口6431可提供控制器6430和主机6410之间的接口功能。NAND接口6433可提供存储器装置6440和控制器6430之间的接口功能。例如,主机接口6431可用作并行接口,例如参照图1所描述的MMC接口。此外,主机接口6431可用作串行接口,例如超高速(UHS)-I和UHS-II接口。
图9至图12是示意性示出包括根据本实施例的存储器系统的数据处理系统的各种示例的示图。图9至图12示意性示出应用根据本实施例的存储器系统的UFS(通用闪存)系统。
参照图9至图12,UFS系统6500、6600、6700和6800可分别包括主机6510、6610、6710和6810,UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830。主机6510、6610、6710和6810可用作有线和/或无线电子装置或特别是移动电子装置的应用处理器。UFS装置6520、6620、6720和6820可用作嵌入式UFS装置。UFS卡6530、6630、6730和6830可用作外部嵌入式UFS装置或可移除UFS卡。
各个UFS系统6500、6600、6700和6800中的主机6510、6610、6710和6810,UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830可通过UFS协议与诸如有线/无线电子装置或特别是移动电子装置的外部装置通信。UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830可通过图1所示的存储器系统110来实施。例如,在UFS系统6500、6600、6700和6800中,UFS装置6520、6620、6720和6820可以参照图6至图8描述的数据处理系统6200、SSD 6300或eMMC 6400的形式来实施,并且UFS卡6530、6630、6730和6830可以参照图5描述的存储卡系统6100的形式来实施。
此外,在UFS系统6500、6600、6700和6800中,主机6510、6610、6710和6810,UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830可通过UFS接口,例如,MIPI(移动行业处理器接口)中的MIPI M-PHY和MIPI UniPro(统一协议)彼此通信。此外,UFS装置6520、6620、6720和6820与UFS卡6530、6630、6730和6830可通过除UFS协议以外的各种协议,例如,通用串行总线(USB)闪存驱动器(UFD)、多媒体卡(MMC)、安全数字(SD)、迷你SD和微型SD彼此通信。
在图9所示的UFS系统6500中,主机6510、UFS装置6520以及UFS卡6530中的每一个可包括UniPro。主机6510可执行交换操作,以便与UFS装置6520和UFS卡6530通信。特别地,主机6510可通过例如UniPro处的L3交换的链路层交换与UFS装置6520或UFS卡6530通信。此时,UFS装置6520和UFS卡6530可通过主机6510的UniPro处的链路层交换来彼此通信。在本实施例中,为便于描述,已经例示了其中一个UFS装置6520和一个UFS卡6530连接至主机6510的配置。然而,多个UFS装置和UFS卡可并联或以星型形式连接至主机6510,并且多个UFS卡可并联或以星型形式连接至UFS装置6520,或者串联或以链型形式连接至UFS装置6520。
在图10所示的UFS系统6600中,主机6610、UFS装置6620和UFS卡6630中的每一个可包括UniPro,并且主机6610可通过执行交换操作的交换模块6640,例如,通过在UniPro处执行链路层交换例如L3交换的交换模块6640,与UFS装置6620或UFS卡6630通信。UFS装置6620和UFS卡6630可通过UniPro处的交换模块6640的链路层交换来彼此通信。在本实施例中,为便于描述,已经例示了其中一个UFS装置6620和一个UFS卡6630连接至交换模块6640的配置。然而,多个UFS装置和UFS卡可并联或以星型形式连接至交换模块6640,并且多个UFS卡可串联或以链型形式连接至UFS装置6620。
在图11所示的UFS系统6700中,主机6710、UFS装置6720和UFS卡6730中的每一个可包括UniPro。主机6710可通过执行交换操作的交换模块6740,例如通过在UniPro处执行链路层交换例如L3交换的交换模块6740,与UFS装置6720或UFS卡6730通信。此时,UFS装置6720和UFS卡6730可通过UniPro处的交换模块6740的链路层交换来彼此通信,并且交换模块6740可在UFS装置6720内部或外部与UFS装置6720集成为一个模块。在本实施例中,为便于描述,已经例示了其中一个UFS装置6720和一个UFS卡6730连接至交换模块6740的配置。然而,每个都包括交换模块6740和UFS装置6720的多个模块可并联或以星型形式连接至主机6710,或者串联或以链型形式彼此连接。此外,多个UFS卡可并联或以星型形式连接至UFS装置6720。
在图12所示的UFS系统6800中,主机6810、UFS装置6820和UFS卡6830中的每一个可包括M-PHY和UniPro。UFS装置6820可执行交换操作,以便与主机6810和UFS卡6830通信。特别地,UFS装置6820可通过用于与主机6810通信的M-PHY和UniPro模块和用于与UFS卡6830通信的M-PHY和UniPro模块之间的交换操作,例如通过目标标识符(ID)交换操作,来与主机6810或UFS卡6830通信。此时,主机6810和UFS卡6830可通过UFS装置6820的M-PHY和UniPro模块之间的目标ID交换来彼此通信。在本实施例中,为便于描述,已经例示了其中一个UFS装置6820连接至主机6810且一个UFS卡6830连接至UFS装置6820的配置。然而,多个UFS装置可并联或以星型形式连接至主机6810,或串联或以链型形式连接至主机6810,并且多个UFS卡可并联或以星型形式连接至UFS装置6820,或串联或以链型形式连接至UFS装置6820。
图13是示意性示出包括根据本发明的实施例的存储器系统的数据处理系统的另一示例的示图。图13是示意性示出应用了根据本实施例的存储器系统的用户系统6900的示图。
参照图13,用户系统6900可包括用户接口6910、存储器模块6920、应用处理器6930、网络模块6940和存储模块6950。
更具体地,应用处理器6930可驱动包括在诸如操作系统(OS)的用户系统6900中的组件,并且包括控制包括在用户系统6900中的组件的控制器、接口和图形引擎。应用处理器6930可作为片上系统(SoC)被提供。
存储器模块6920可用作用户系统6900的主存储器、工作存储器、缓冲存储器或高速缓冲存储器。存储器模块6920可包括诸如动态RAM(DRAM)、同步DRAM(SDRAM)、双倍数据速率(DDR)SDRAM、DDR2SDRAM、DDR3SDRAM、低功率DDR(LPDDR)SDARM、LPDDR3SDRAM或LPDDR3SDRAM的易失性随机存取存储器(RAM),或诸如相变RAM(PRAM)、电阻式RAM(ReRAM)、磁阻式RAM(MRAM)或铁电RAM(FRAM)的非易失性RAM。例如,可基于堆叠式封装(POP)封装和安装应用处理器6930和存储器模块6920。
网络模块6940可与外部装置通信。例如,网络模块6940不仅可支持有线通信,而且支持各种无线通信协议,诸如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、全球微波接入互操作性(WiMAX)、无线局域网(WLAN)、超宽带(UWB)、蓝牙、无线显示(WI-DI),从而与有线/无线电子装置或特别是移动电子装置通信。因此,根据本发明的实施例的存储器系统和数据处理系统可应用于有线/无线电子装置。网络模块6940可被包括在应用处理器6930中。
存储模块6950可存储数据,例如从应用处理器6930接收的数据,然后可将所存储的数据传输到应用处理器6930。存储模块6950可通过诸如相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(ReRAM)、NAND闪存、NOR闪存和3D NAND闪存的非易失性半导体存储器装置来实施,并且可被提供为诸如用户系统6900的存储卡或外部驱动器的可移除存储介质。存储模块6950可对应于参照图1描述的存储器系统110。此外,存储模块6950可被实施为如上参照图7至图12所述的SSD、eMMC和UFS。
用户接口6910可包括用于向应用处理器6930输入数据或命令或者用于将数据输出到外部装置的接口。例如,用户接口6910可包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件的用户输入接口,以及诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监视器的用户输出接口。
此外,当图1的存储器系统110应用于用户系统6900的移动电子装置时,应用处理器6930可控制移动电子装置的全部操作,并且网络模块6940可用作用于控制与外部装置的有线和/或无线通信的通信模块。用户接口6910可在移动电子装置的显示和触摸模块上显示通过处理器6930处理的数据或支持从触摸面板接收数据的功能。
根据本发明的实施例,可以根据牺牲块的优先级顺序执行读取回收操作,从而可以快速恢复存储器装置的损坏。
虽然已经针对具体实施例描述了本发明,但是对于本领域技术人员显而易见的是,在不脱离如所附权利要求所限定的本发明的精神和范围的情况下,可进行各种改变和修改。
Claims (20)
1.一种存储器系统,包括:
多个存储块;
第一队列和第二队列;以及
控制器,将所述多个存储块中的、错误信息值等于或大于阈值的第一牺牲块排队在所述第一队列中,将所述多个存储块中的、读取计数等于或大于阈值的第二牺牲块排队在所述第二队列中,基于读取回收值将被排队在所述第一队列中的所述第一牺牲块的优先级顺序和被排队在所述第二队列中的所述第二牺牲块的优先级顺序进行重新排列,并且基于所述优先级顺序对所述第一牺牲块和所述第二牺牲块执行读取回收操作。
2.根据权利要求1所述的存储器系统,其中所述控制器通过将错误信息范围值乘以第一排队时间来确定所述第一牺牲块的读取回收值,并且通过将读取计数范围值乘以第二排队时间来确定所述第二牺牲块的读取回收值。
3.根据权利要求2所述的存储器系统,其中所述第一排队时间包括所述第一牺牲块被排队在所述第一队列中的时间,并且所述第二排队时间包括所述第二牺牲块被排队在所述第二队列中的时间。
4.根据权利要求1所述的存储器系统,其中当所述控制器分别将所述第一牺牲块和所述第二牺牲块排队在所述第一队列中和所述第二队列中时,所述控制器同时对所述读取回收值进行排队。
5.根据权利要求4所述的存储器系统,其中所述控制器通过更新第一排队时间和第二排队时间来更新被排队的所述读取回收值。
6.根据权利要求5所述的存储器系统,其中所述控制器按照所更新的读取回收值的降序,将被排队在所述第一队列中的第一牺牲块的优先级顺序和被排队在所述第二队列中的第二牺牲块的优先级顺序进行重新排列。
7.根据权利要求1所述的存储器系统,其中当所述第一队列和所述第二队列中的任何一个的容量有剩余时,所述控制器将相应队列的容量分配给另一队列。
8.根据权利要求1所述的存储器系统,其中控制器基于第一总和与第二总和的比例,对被排队在所述第一队列中的第一牺牲块和被排队在所述第二队列中的第二牺牲块选择性执行所述读取回收操作。
9.根据权利要求8所述的存储器系统,其中所述第一总和包括被排队在所述第一队列中的第一牺牲块的读取回收值的总和,并且所述第二总和包括被排队在所述第二队列中的第二牺牲块的读取回收值的总和。
10.根据权利要求1所述的存储器系统,其中所述错误信息值包括错误位数量或错误步骤数量中的任何一个。
11.一种存储器系统的操作方法,包括:
将多个存储块中的、错误信息值等于或大于阈值的第一牺牲块排队在第一队列中并且将所述多个存储块中的、读取计数等于或大于阈值的第二牺牲块排队在第二队列中;
基于读取回收值,将被排队在所述第一队列中的第一牺牲块的优先级顺序和被排队在所述第二队列中的第二牺牲块的优先级顺序进行重新排列;并且
基于所述优先级顺序,对所述第一牺牲块和所述第二牺牲块执行读取回收操作。
12.根据权利要求11所述的操作方法,其中通过将错误信息范围值乘以第一排队时间来确定所述第一牺牲块的读取回收值,并且通过将读取计数范围值乘以第二排队时间来确定所述第二牺牲块的读取回收值。
13.根据权利要求12所述的操作方法,其中所述第一排队时间包括所述第一牺牲块被排队在所述第一队列中的时间,并且所述第二排队时间包括所述第二牺牲块被排队在所述第二队列中的时间。
14.根据权利要求11所述的操作方法,其中当分别将所述第一牺牲块和所述第二牺牲块排队在所述第一队列中和所述第二队列中时,同时对所述读取回收值进行排队。
15.根据权利要求14所述的操作方法,进一步包括:
通过更新第一排队时间和第二排队时间来更新所排队的读取回收值。
16.根据权利要求15所述的操作方法,其中按照所更新的读取回收值的降序,将被排队在所述第一队列中的第一牺牲块的优先级顺序和被排队在所述第二队列中的第二牺牲块的优先级顺序进行重新排列。
17.根据权利要求11所述的操作方法,进一步包括:
当所述第一队列和所述第二队列中的任何一个的容量有剩余时,将相应队列的容量分配给另一队列。
18.根据权利要求11所述的操作方法,其中基于第一总和与第二总和的比例,对被排队在所述第一队列中的第一牺牲块和被排队在所述第二队列中的第二牺牲块选择性执行所述读取回收操作。
19.根据权利要求18所述的操作方法,其中所述第一总和包括被排队在所述第一队列中的第一牺牲块的读取回收值的总和,并且所述第二总和包括被排队在所述第二队列中的第二牺牲块的读取回收值的总和。
20.根据权利要求11所述的操作方法,其中所述错误信息值包括错误位数量或错误步骤数量中的任何一个。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2017-0176874 | 2017-12-21 | ||
KR1020170176874A KR20190075353A (ko) | 2017-12-21 | 2017-12-21 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109947359A true CN109947359A (zh) | 2019-06-28 |
CN109947359B CN109947359B (zh) | 2021-10-26 |
Family
ID=66950347
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810983121.0A Active CN109947359B (zh) | 2017-12-21 | 2018-08-27 | 存储器系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10521340B2 (zh) |
KR (1) | KR20190075353A (zh) |
CN (1) | CN109947359B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102389542B1 (ko) * | 2017-12-12 | 2022-04-25 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR20210138996A (ko) * | 2020-05-13 | 2021-11-22 | 삼성전자주식회사 | 메모리 장치, 이를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법 |
KR20220049397A (ko) * | 2020-10-14 | 2022-04-21 | 삼성전자주식회사 | 메모리 장치, 이를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103339617A (zh) * | 2011-02-02 | 2013-10-02 | 美光科技公司 | 存储器系统中的至少半自主模块及其方法 |
US20140237165A1 (en) * | 2013-02-19 | 2014-08-21 | Samsung Electronics Co., Ltd. | Memory controller, method of operating the same and memory system including the same |
US20150355845A1 (en) * | 2014-06-05 | 2015-12-10 | Samsung Electronics Co., Ltd. | Memory systems that support read reclaim operations and methods of operating same to thereby provide real time data recovery |
US20150364199A1 (en) * | 2014-06-11 | 2015-12-17 | Hee-Woong Kang | Memory system having overwrite operation control method thereof |
CN106155585A (zh) * | 2015-05-13 | 2016-11-23 | 爱思开海力士有限公司 | 自适应读取干扰收回策略 |
CN106775474A (zh) * | 2016-12-16 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种Nand Flash磨损均衡方法、装置及存储器 |
US9727488B1 (en) * | 2016-10-07 | 2017-08-08 | International Business Machines Corporation | Counter-based victim selection in a cache memory |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9940246B1 (en) * | 2016-10-07 | 2018-04-10 | International Business Machines Corporation | Counter-based victim selection in a cache memory |
-
2017
- 2017-12-21 KR KR1020170176874A patent/KR20190075353A/ko unknown
-
2018
- 2018-07-19 US US16/040,213 patent/US10521340B2/en active Active
- 2018-08-27 CN CN201810983121.0A patent/CN109947359B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103339617A (zh) * | 2011-02-02 | 2013-10-02 | 美光科技公司 | 存储器系统中的至少半自主模块及其方法 |
US20140237165A1 (en) * | 2013-02-19 | 2014-08-21 | Samsung Electronics Co., Ltd. | Memory controller, method of operating the same and memory system including the same |
US20150355845A1 (en) * | 2014-06-05 | 2015-12-10 | Samsung Electronics Co., Ltd. | Memory systems that support read reclaim operations and methods of operating same to thereby provide real time data recovery |
US20150364199A1 (en) * | 2014-06-11 | 2015-12-17 | Hee-Woong Kang | Memory system having overwrite operation control method thereof |
CN106155585A (zh) * | 2015-05-13 | 2016-11-23 | 爱思开海力士有限公司 | 自适应读取干扰收回策略 |
US9727488B1 (en) * | 2016-10-07 | 2017-08-08 | International Business Machines Corporation | Counter-based victim selection in a cache memory |
CN106775474A (zh) * | 2016-12-16 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种Nand Flash磨损均衡方法、装置及存储器 |
Also Published As
Publication number | Publication date |
---|---|
US20190196958A1 (en) | 2019-06-27 |
CN109947359B (zh) | 2021-10-26 |
KR20190075353A (ko) | 2019-07-01 |
US10521340B2 (en) | 2019-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108255739A (zh) | 存储器系统及其操作方法 | |
CN108572927A (zh) | 存储器系统及其操作方法 | |
CN108304141A (zh) | 存储器系统及其操作方法 | |
CN109144408A (zh) | 存储器系统及其操作方法 | |
CN109284202A (zh) | 控制器及其操作方法 | |
CN109426449A (zh) | 存储器系统及其操作方法 | |
CN109656472A (zh) | 存储器系统及其操作方法 | |
CN110471866A (zh) | 存储器系统和存储器系统的操作方法 | |
CN109388594A (zh) | 存储器系统及其操作方法 | |
CN110058797A (zh) | 存储器系统及其操作方法 | |
CN109656837A (zh) | 存储器系统及其操作方法 | |
CN110096385A (zh) | 存储器系统及其操作方法 | |
CN107591182A (zh) | 存储器系统及其操作方法 | |
CN108268212A (zh) | 控制器及操作方法 | |
CN110473582A (zh) | 存储器系统及其操作方法 | |
CN110457230A (zh) | 存储器系统及其操作方法 | |
CN109521947A (zh) | 存储器系统以及存储器系统的操作方法 | |
CN109390003A (zh) | 存储器系统及其操作方法 | |
CN108074613A (zh) | 存储器系统及其操作方法 | |
CN109656749A (zh) | 存储器系统及其操作方法 | |
CN108932203A (zh) | 数据处理系统和数据处理方法 | |
CN108427536A (zh) | 存储器系统及其操作方法 | |
CN109697171A (zh) | 控制器及其操作方法 | |
CN110032471A (zh) | 存储器系统及其操作方法 | |
CN110322915A (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240613 Address after: American Texas Patentee after: Mimi IP Co.,Ltd. Country or region after: U.S.A. Address before: Gyeonggi Do, South Korea Patentee before: Sk Hynix Inc. Country or region before: Republic of Korea |
|
TR01 | Transfer of patent right |