CN109918315B - 存储器系统及存储器系统的操作方法 - Google Patents

存储器系统及存储器系统的操作方法 Download PDF

Info

Publication number
CN109918315B
CN109918315B CN201810984836.8A CN201810984836A CN109918315B CN 109918315 B CN109918315 B CN 109918315B CN 201810984836 A CN201810984836 A CN 201810984836A CN 109918315 B CN109918315 B CN 109918315B
Authority
CN
China
Prior art keywords
queue
memory
victim block
read
block information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810984836.8A
Other languages
English (en)
Other versions
CN109918315A (zh
Inventor
金长铉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN109918315A publication Critical patent/CN109918315A/zh
Application granted granted Critical
Publication of CN109918315B publication Critical patent/CN109918315B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding 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
    • G06F11/1056Updating check bits on partial write, i.e. read/modify/write
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Abstract

本发明涉及一种存储器系统,该存储器系统包括:缓冲器,其缓存牺牲块信息;队列,其将牺牲块信息排队;调度单元,其检测读取回收安全时段并生成触发信号;队列管理单元,其在安全时段期间检测队列的剩余容量;缓冲器管理单元,其在安全时段期间将与队列的剩余容量一样多的缓存的牺牲块信息排队在队列中;以及执行单元,其在安全时段期间基于排队的牺牲块信息执行读取回收操作。

Description

存储器系统及存储器系统的操作方法
相关申请的交叉引用
本申请要求于2017年12月12日提交的申请号为10-2017-0170085的韩国专利申请的优先权,其公开整体通过引用并入本文。
技术领域
本发明的各个示例性实施例涉及一种控制读取回收操作的存储器系统,以及存储器系统的操作方法。
背景技术
计算机环境范例已经移动到使得计算系统能够在任何时间和任何地点使用的普适计算。因此,诸如移动电话、数码相机和膝上型计算机的便携式电子装置的使用已经迅速增长。这些便携式电子装置通常使用具有一个或多个存储器装置的存储器系统来存储数据。存储器系统可用作便携式电子装置的主存储器装置或辅助存储器装置。
因为与硬盘装置相比,存储器系统不具有移动部件(例如,具有读取/写入头部的机械臂),所以它们提供优良的稳定性、耐用性、高的信息存取速度以及低功耗。具有这种优点的存储器系统的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡以及固态驱动器(SSD)。
发明内容
本发明的各个实施例涉及一种能够利用临时存储装置来执行读取回收操作以保证读取回收操作的稳定性的存储器系统,以及存储器系统的操作方法。
根据本发明的实施例,一种存储器系统包括:缓冲器,其适于缓存牺牲块信息;队列,其适于对牺牲块信息排队;调度单元,其适于检测读取回收安全时段并生成触发信号;队列管理单元,其适于在安全时段期间检测队列的剩余容量;缓冲器管理单元,其适于在安全期期间将与队列的剩余容量一样多的缓存的牺牲块信息排队在队列中;以及执行单元,其适于在安全时段期间基于排队的牺牲块信息执行读取回收操作。
根据本发明的实施例,一种存储器系统包括:用于存储数据的非易失性存储器装置中的至少一个;以及控制器,其适于:检测数据的错误以生成牺牲块信息,监控请求或命令的执行以确定安全时段;基于可用的排队大小加载待被排队的牺牲块信息中的一些;以及在安全时段期间基于排队的牺牲块信息执行读取回收操作。
根据本发明的实施例,一种存储器系统的操作方法包括:将牺牲块信息存储在缓冲器中;检测读取回收安全时段并生成触发信号;在安全时段期间检测队列的剩余容量;在安全时段期间将与队列的剩余容量一样多的缓存的牺牲块信息排队在队列中;以及在安全时段期间基于排队的牺牲块信息执行读取回收操作。
附图说明
图1是示出根据本公开的实施例的包括存储器系统的数据处理系统的框图。
图2是示出在图1所示的存储器系统中采用的存储器装置的示例性配置的示意图。
图3是示出图1所示的存储器装置中的存储块的存储器单元阵列的示例性配置的电路图。
图4是示出图1所示的存储器系统中采用的存储器装置和控制器的示例性配置的示意图。
图5是示出图4所示的读取回收操作的流程图。
具体实施方式
以下参照附图更详细地描述本发明的各个实施例。然而,注意到的是,本发明可以不同的其他实施例、形式及其变型实施,且不应被解释为限于本文所阐述的实施例。相反,提供所描述的实施例使得本公开将完整和全面并将本发明充分地传达给本发明所属领域的技术人员。在整个本公开中,相同的附图标记在本发明的各个附图和实施例中表示相同的部件。
将理解的是,虽然可在本文中使用术语“第一”、“第二”、“第三”等来描述各个元件,但是这些元件不受这些术语的限制。这些术语用于将一个元件与另一个元件区分开。因此,在不脱离本发明的精神和范围的情况下,以下描述的第一元件也可被称为第二元件或第三元件。
附图不一定按比例绘制,并且在一些情况下,为了清楚地说明实施例的特征,比例可能已经被夸大。当元件被称为连接至或联接到另一元件时,应当理解的是前者可直接连接或联接到后者,或者经由其间的中间元件电连接或联接到后者。
将进一步理解的是,当元件被称为“连接至”或“联接到”另一元件时,它可直接在其它元件上、连接至或联接到其它元件,或者可存在一个或多个中间元件。此外,还将理解的是,当元件被称为在两个元件“之间”时,其可以是这两个元件之间的唯一元件,或者也可存在一个或多个中间元件。
本文使用的术语仅是为了描述特定实施例的目的,并不旨在限制本发明。
如本文所使用的,除非上下文另有明确说明,否则单数形式也旨在包括复数形式。
将进一步理解的是,当在本说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,其说明所陈述元件的存在,并不排除一个或多个其它元件的存在或添加。如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任何和全部组合。
除非另有定义,否则本文使用的包括技术术语和科学术语的所有术语具有与本发明所属领域的普通技术人员基于本公开所通常理解的含义相同的含义。将进一步理解的是,诸如在常用字典中定义的那些术语的术语应当被解释为具有与其在本公开和相关技术语境中的含义一致的含义,并且将不以理想化或过于正式的意义来解释,除非本文中明确地这样定义。
在下面的描述中,为了提供对本发明的全面理解,描述了大量具体细节。本发明可在没有一些或全部这些具体细节的情况下被实施。在其它情况下,为了避免不必要地模糊本发明,未详细地描述公知的进程结构和/或进程。
还注意的是,在一些情况下,如对于相关领域的技术人员显而易见的是,除非另有明确说明,否则结合一个实施例所描述的特征或元件可单独使用或与另一个实施例的其它特征或元件组合使用。
图1是示出包括根据本发明的实施例的存储器系统110的数据处理系统100的框图。
参照图1,数据处理系统100可包括被电联接至存储器系统110的主机102。
作为示例而非限制,主机102可以包括诸如移动电话、MP3播放器和膝上型计算机的便携式电子装置或诸如台式电脑、游戏机、TV和投影仪的非便携式电子装置。
主机102可以包括至少一个OS(操作系统)。OS可以管理和控制主机102的全部功能和操作。OS可以支持主机102和用户之间的操作,这可以由数据处理系统100或存储器系统110实现或实施。OS可以支持由用户请求的功能和操作。作为示例而非限制,根据OS是否针对主机102的移动性而定制,OS可以被划分为通用OS和移动OS。根据用户的环境,通用OS可以被划分为个人OS和企业OS。例如,被配置为支持向一般用户提供服务的功能的个人OS可以包括Windows和Chrome,并且被配置为保护和支持高性能的企业OS可以包括Windows服务器、Linux和Unix。此外,配置为支持向用户提供移动服务的定制功能和系统的省电功能的移动OS可以包括安卓、iOS和Windows Mobile。主机102可以包括多个OS。主机102可以执行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动态随机存取存储器(DRAM)和静态RAM(SRAM)的易失性存储器装置以及诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻式RAM(RRAM)和闪速存储器的非易失性存储器装置。
存储器系统110可以包括存储器装置150和控制器130。存储器装置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)堆叠结构的闪速存储器。
以下将参照图2至图4详细描述存储器装置150的结构和存储器装置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、牺牲块检测单元410、调度单元412、缓冲器管理单元414、队列管理单元416和执行单元418。主机接口(I/F)单元132、错误校正码(ECC)单元138、电源管理单元(PMU)140、存储器接口单元(I/F)142、牺牲块检测单元410、调度单元412、缓冲器管理单元414、队列管理单元416和执行单元418可以包括它们的各个操作和功能所需的所有电路、系统、固件和装置。
主机接口单元132可以处理主机102的命令和数据。主机接口单元132可以在诸如以下的各种接口协议中的一种或多种下与主机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可以输出错误校正失败信号。
作为示例而非限制,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)。存储器接口单元142可以生成用于存储器设备150的控制信号,以在处理器134的控制下处理提供到存储器装置150中的数据。存储器接口单元142可以用作用于处理控制器130和存储器装置150之间的命令和数据的接口(例如,NAND闪存接口)。具体地,存储器接口单元142可以支持控制器130和存储器装置150之间的数据传送。存储器接口单元142可以包括固件,即,用于与存储器装置150交换数据的闪存接口层(FIL)。
存储器144可以用作存储器系统110和控制器130的工作存储器。存储器144可以存储用于驱动存储器系统110和控制器130的数据。控制器130可以响应于来自主机102的请求来控制存储器装置150执行读取操作、编程操作和擦除操作。控制器130可以将从存储器装置150读取的数据输出到主机102。控制器130可以将从主机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可以通过处理器134在存储器装置150中执行由主机102请求的操作,处理器134可以由微处理器、CPU等实施。换言之,控制器130可以执行与从主机102接收的命令相对应的命令操作。在本文中,控制器130可以执行前台操作作为与从主机102接收的命令相对应的命令操作。作为示例而非限制,前台操作可以包括对应于写入命令的编程操作、对应于读取命令的读取操作、对应于擦除命令的擦除操作以及对应于作为设置的命令的设置的参数命令或设置的特征命令的参数设置操作。
并且,控制器130可以通过处理器134对存储器装置150执行后台操作,处理器134可以由微处理器或CPU来实施。在本文中,对存储器装置150执行的后台操作可以包括:将存储在存储器装置150的存储块152至156中的一些存储块中的数据复制并处理到其它存储块中的操作,例如,垃圾收集(GC)操作;用于在存储器装置150的存储块152至156之间或存储块152至156的数据之间执行交换的操作,例如,磨损均衡(WL)操作;用于将存储在控制器130中的映射数据存储在存储器装置150的存储块152至156中的操作,例如,映射刷新操作;或者用于管理存储器装置150的坏块的操作,例如,检测和处理包括在存储器装置150中的存储块152至156中的坏块的坏块管理操作。
并且,在根据本发明的实施例的存储器系统110中,控制器130可以在存储器装置150中执行对应于从主机102接收的多个命令的多个命令执行,例如,对应于多个写入命令的多个编程操作、对应于多个读取命令的多个读取操作以及对应于多个擦除命令的多个擦除操作。并且,控制器130可以根据多个命令执行偶尔地或周期性地更新元数据(特别是映射数据)。
控制器130的处理器134可以包括用于执行存储器装置150的坏块管理操作的管理单元(未示出)。管理单元可以对包括在存储器装置150中的多个存储块152至156中的且在编程操作期间由于NAND闪速存储器的特征而发生编程失败的坏块进行检查的坏块管理操作。管理单元可以将坏块的编程失败的数据写入到新存储块。当存储器装置150具有3D堆叠结构时,坏块管理操作可降低存储器装置150的使用效率和存储器系统110的可靠性。因此,需要以更高可靠性执行的坏块管理操作。在下文中,参照图2至图3详细描述根据本发明的实施例的存储器系统中的存储器装置。
图2是示出存储器装置150的示意图,并且图3是示出存储器装置330中的存储块的存储器单元阵列的示例性配置的电路图。
参照图2,存储器装置150可以包括多个存储块BLOCK0至BLOCKN-1,并且块BLOCK0至BLOCKN-1中的每一个可以包括例如2M个页面的多个页面,其数量可以根据电路设计而变化。在本文中,虽然为了描述的方便而描述了存储块的每一个包括2M个页面,但是存储块中的每一个也可以包括M个页面。页面中的每一个可以包括联接到多个字线WL的多个存储器单元。
并且,包括在各个存储块BLOCK0至BLOCKN-1中的存储器单元可以是存储1位数据的单层单元(SLC)存储块和/或存储2位数据的多层单元(MLC)存储块中的一个或多个。因此,根据在存储块中的存储器单元的每一个中表示或存储的位的数量,存储器装置150可以包括SLC存储块或MLC存储块。SLC存储块可以包括由各自存储一位数据的存储器单元实现的多个页面。与MLC存储块相比,SLC存储块通常可以具有更高的数据计算性能和更高的耐用性。MLC存储块可以包括由存储器单元体现的多个页面,每个存储器单元存储多位数据(例如,2位或更多位)。MLC存储块通常可以具有比SLC存储块更大的数据存储空间,即更高的集成密度。在另一实施例中,存储器装置150可以包括多个三层单元(TLC)存储块。在又一实施例中,存储器装置150可以包括多个四层单元(QLC)存储块。TLC存储块可以包括由每一个能够存储3位数据的存储器单元实施的多个页面。QLC存储块可以包括由每一个能够存储3位数据的存储器单元实施的多个页面。
虽然本发明的实施例示例性地描述存储器装置150可以是非易失性存储器,但是其可以由以下中的任何一个来实施:相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM(ReRAM))、铁电随机存取存储器(FRAM)以及自旋转移力矩磁阻随机存取存储器(STT-RAM(STT-MRAM))。
存储器装置210、220、230、240可以通过编程操作来存储从主机102传送的数据,并且通过读取操作将存储在其中的数据传送到主机102。
参照图3,存储块330可以包括联接到多个相应的位线BL0至BLm-1的多个单元串340。每个列的单元串340可以包括一个或多个漏极选择晶体管DST和一个或多个源极选择晶体管SST。在漏极选择晶体管DST和源极选择晶体管SST之间,多个存储器单元MC0至MCn-1可以串联联接。在实施例中,存储器单元晶体管MC0至MCn-1中的每一个可以由能够存储多个位的数据信息的MLC来实施。单元串340中的每一个可以电联接到多个位线BL0至BLm-1中的相应位线。例如,如图3所示,第一单元串联接到第一位线BL0,并且最后的单元串联接到最后的位线BLm-1。
虽然图3示出NAND闪存单元,但是本公开不限于此。应当注意的是,存储器单元可以是NOR闪速存储器单元,或者包括组合在其中的两种或更多种存储器单元的混合闪速存储器单元。并且,应注意的是,存储器装置150可以是包括作为电荷存储层的导电浮栅的闪速存储器装置或包括作为电荷存储层的绝缘层的电荷撷取闪速(CTF)存储器。
存储器装置150可以进一步包括电压供给单元310,其提供包括根据操作模式供给到字线的编程电压、读取电压和通过电压的字线电压。编程电压、读取电压和通过电压可以具有用于其功能的不同电压水平。电压供给单元310的电压产生操作可以由控制电路(未示出)来控制。在控制电路的控制下,电压供给单元310可以选择存储器单元阵列的存储块(或扇区)中的一个并且选择所选择的存储块的字线中的一个。电压供给单元310可以根据需要将字线电压提供给选择的字线和未选择的字线。
存储器装置150可以包括由控制电路控制的读取/写入电路320。在验证/正常读取操作期间,读取/写入电路320可以用作用于从存储器单元阵列读取数据的读出放大器。在编程操作期间,根据待被存储在存储器单元阵列中的数据,读取/写入电路320可以用作写入驱动器,以用于控制流动通过位线的电流水平。在编程操作期间,读取/写入电路320可以从缓冲器(未示出)接收待被存储到存储器单元阵列中的数据。读取/写入电路320可以根据接收的数据控制流动通过位线的电流水平。读取/写入电路320可以包括分别对应于列(或位线)或列对(或位线对)的多个页面缓冲器322至326。页面缓冲器322至326中的每一个可以包括多个锁存器(未示出)。
读取干扰现象是指在具体块中执行多个页面读取操作以增加包括在块中的其它页面的单元层(cell-level)的现象。当累积读取干扰现象时,可能超过ECC解码器的错误校正能力。为了避免不可恢复的错误,如下实现读取回收操作:当读取计数等于或大于阈值时,将存储在牺牲块中的有效页面转移或移动到目标块中并擦除包括在牺牲块中的剩余页面。
根据现有技术,每当在存储器系统中检测到牺牲块时,关于牺牲块的信息(在下文中被称为“牺牲块信息”)被排队。基于排队的牺牲块信息,对相应的存储块顺序地执行读取回收操作。存储器装置包括多个用户数据块和系统数据块。用户数据块存储从主机输入的数据,而系统数据块存储与存储器系统的操作有关的数据。
传统的存储器系统可能具有与牺牲块信息的排队定时有关的问题。具体地,当对系统数据块执行在存储器系统的后台操作期间执行的第一读取回收操作,例如垃圾收集操作和映射更新操作时,具体系统数据块被检测为牺牲块并且关于系统数据块的信息被排队,从而当对系统数据块执行第二读取回收操作时,导致系统信息不一致。换言之,当对系统数据块冗余地执行第一读取回收操作和第二读取回收操作时,存储在系统数据块中的系统信息变得不一致。
另外,传统的存储器系统可能具有与牺牲块信息的队列大小有关的问题。具体地,当不仅系统数据块而且用户数据块被检测为牺牲块并且关于块的信息被排队时,如果排队的块信息超过其队列大小,则一部分牺牲块信息不会被排队并且被丢弃。
根据本发明的实施例,可以避免如上所述的排队定时和队列大小的问题。
图4是示出图1所示的存储器系统110中采用的存储器装置150和控制器130的示例性配置的示意图。
控制器130可以包括牺牲块检测单元410、调度单元412、缓冲器管理单元414、队列管理单元416和执行单元418。牺牲块检测单元410、调度单元412、缓冲器管理单元414、队列管理单元416和执行单元418可以包括它们的各个操作和功能所需的所有电路、系统、固件和装置。
存储器装置150可以包括主机数据块402、系统数据块404、缓冲器406和队列408。
主机数据块402可以存储主机数据,而系统数据块404可以存储系统数据。虽然未示出,但是多个主机数据块和多个系统数据块可以构成包括在存储器装置中的存储器单元阵列。
在包括在存储器单元阵列中的多个存储块中,牺牲块检测单元410可以检测具有包括不可恢复错误的读取数据的存储块或者具有超过阈值的读取计数的存储块并且将检测的存储块用作读取回收目标块,即,牺牲块。
牺牲块检测单元410可以临时存储关于检测的牺牲块的信息(在下文中被称为“牺牲块信息”),例如,缓冲器406中的牺牲块的地址。
调度单元412可以检测读取回收安全时段(在下文中被称为“安全时段”)以传输读取回收触发信号(在下文中被称为“触发信号”)。具体地,调度单元412可以在安全时段期间将触发信号传输到缓冲器管理单元414、队列管理单元416和执行单元418中的至少一个,以控制在安全时段期间待执行的读取回收操作。与安全时段不同,风险时段可以是在存储器系统的后台操作期间对系统数据块执行读取回收操作,诸如垃圾收集操作和映射更新操作的时段。即,风险时段可以是其中系统数据块处于繁忙状态的时段。当牺牲块检测单元410将具体系统数据块检测为牺牲块并且在风险时段期间对系统数据块执行读取回收操作时,可以对单个块冗余地执行读取回收操作,并且因此存储在系统数据块中的系统信息可能变得不一致。由于作为不包括风险时段的剩余时段的安全时段是在后台操作期间未对系统数据块执行读取回收操作的时段,即,系统数据块处于空闲状态,因此牺牲块检测单元410可以仅对从系统数据块检测的牺牲块执行读取回收操作。根据本发明的实施例,可以基于从调度单元412传输的触发信号在安全时段期间执行读取回收操作,使得系统信息可能不会不一致。
队列管理单元416可以根据从调度单元412传输的触发信号的将队列408的剩余容量信息传输到缓冲器管理单元414。剩余容量可以表示在安全时段开始时队列408能够存储信息的容量。
缓冲器管理单元414可以根据从调度单元412传输的触发信号将存储在缓冲器406中的牺牲块信息排队在队列408中。缓冲器管理单元414可以基于从队列管理单元416传输的队列408的剩余容量信息将牺牲块信息排队在队列408中。例如,缓冲器管理单元414可以从缓冲器406读出基于剩余容量信息的牺牲块信息。对于队列408的适当排队操作,牺牲块信息的量可以通过队列408的可用队列大小来确定。
缓冲器管理单元414可以从缓冲器406中移除在队列408中排队的牺牲块信息。
执行单元418可以响应于从调度单元412传输的触发信号,基于在队列408中排队的牺牲块信息来执行读取回收操作。
图5是示出图4所示的读取回收操作的流程图。
根据本发明的实施例的读取回收操作可以包括在步骤S511中检测牺牲块,在步骤S513中将牺牲块信息缓存在缓冲器406中,在步骤S515中检测安全时段并将读取回收触发信号传输到缓冲器管理单元414、队列管理单元416和执行单元418,在步骤S517中响应于触发信号检测队列408的剩余容量信息并将检测的剩余容量信息传输到缓冲器管理单元414,在步骤S519中响应于触发信号将牺牲块信息排队在队列408中,在步骤S521中从缓冲器406中移除在队列408中排队的牺牲块信息,并且在步骤S523中基于牺牲块信息对牺牲块执行读取回收操作。
在步骤S511中,作为读取回收操作的目标的牺牲块可以被检测。包括在存储器装置中的存储器单元阵列可以包括多个主机数据块和多个系统数据块。在步骤S511中,在包括在存储器单元阵列中的多个存储块中输出包括不可恢复错误的读取数据的存储块或者其读取计数超过阈值的存储块可以被检测为读取回收目标块,即,牺牲块。
在步骤S513中,在步骤S511中检测到的牺牲块信息,例如,牺牲块的地址可以被缓存在缓冲器406中。
存储在步骤S511中的牺牲块信息不会被立刻传输到队列408。在步骤S515、步骤S517、步骤S519中,可以确定将牺牲块信息从缓冲器406传输到队列408的时间和牺牲块信息的容量。
在步骤S515中,为了确定将在步骤S513中存储在缓冲器406中的牺牲块信息传输到队列408的时间,可以检测读取回收安全时段,并且可以生成读取回收触发信号。由于在安全时段期间不对系统数据块执行在存储器系统的后台操作期间执行的读取回收操作,诸如垃圾收集操作和映射更新操作,因此可以仅对在步骤S511中从系统块检测到的牺牲块执行读取回收操作。在步骤S515中,在不太可能发生系统信息不一致的安全时段期间,触发信号可被传输到缓冲器管理单元414、队列管理单元416和执行单元418,使得可以执行读取回收操作。
在步骤S517中,队列408的剩余容量信息可以响应于在步骤S515中传输的触发信号被检测。剩余容量可以表示在安全时段期间能够存储信息的队列408的容量。
在步骤S519中,牺牲块信息可以基于在步骤S517中检测到的剩余容量信息被排队在队列408中。例如,队列408当前能够排队的长度的牺牲块信息可以从缓冲器406中被读出,并且基于剩余容量信息被排队在队列408中。
在步骤S521中,在步骤S519中排队在队列408中的牺牲块信息可以从缓冲器406中被移除。
在步骤S523中,可以响应于从调度单元412传输的触发信号,基于在队列408中排队的牺牲块信息来执行读取回收操作。
根据本发明的实施例,牺牲块信息可以在包括在控制器中的调度单元的控制下在安全时段期间被临时存储在缓冲器中,并且随后被传输到队列,从而防止由于系统信息与系统块中发生的读取回收目标块不一致而发生错误。
另外,根据本发明的实施例,与队列的剩余容量一样多的牺牲块信息可以被排队在队列中,这处于包括在控制器中的队列管理单元的控制下,从而可以解决超过队列的容量的传统问题。
虽然已经针对具体实施例描述本发明,但是对于本领域技术人员显而易见的是,在不脱离如权利要求中限定的本发明的精神和范围的情况下,可以进行各种改变和变型。

Claims (20)

1.一种存储器系统,包括:
缓冲器,其缓存牺牲块信息;
队列,其对所述牺牲块信息排队;
调度单元,其检测读取回收安全时段并生成触发信号;
队列管理单元,其在所述安全时段期间检测所述队列的剩余容量;
缓冲器管理单元,其在所述安全时段期间将与所述队列的剩余容量一样多的缓存的牺牲块信息排队在所述队列中;以及
执行单元,其在所述安全时段期间基于所排队的牺牲块信息执行读取回收操作。
2.根据权利要求1所述的存储器系统,其中所述队列管理单元、所述缓冲器管理单元和所述执行单元响应于所述触发信号操作。
3.根据权利要求1所述的存储器系统,其中所述牺牲块信息是关于包括在存储器装置中的主机数据块和系统数据块中的所述读取回收操作的目标块的信息。
4.根据权利要求3所述的存储器系统,其中所述安全时段是作为所述读取回收操作的目标的系统数据块处于空闲状态的时段。
5.根据权利要求4所述的存储器系统,其中所述剩余容量是在所述安全时段开始时所述队列能够存储所述牺牲块信息的容量。
6.根据权利要求4所述的存储器系统,其中所述空闲状态是不对所述系统数据块执行所述读取回收操作的状态。
7.根据权利要求1所述的存储器系统,进一步包括:
牺牲块检测单元,其检测作为所述读取回收操作的目标的牺牲块,并将所检测的牺牲块信息存储在所述缓冲器中。
8.根据权利要求1所述的存储器系统,其中所述缓冲器管理单元从所述缓冲器中移除缓冲的牺牲块信息中的在所述队列中排队的所述牺牲块信息。
9.根据权利要求1所述的存储器系统,其中所述牺牲块信息是作为所述读取回收操作的目标的牺牲块的地址。
10.根据权利要求3所述的存储器系统,其中用于所述读取回收操作的目标块是读取计数等于或高于预定阈值的块。
11.一种存储器系统的操作方法,包括:
将牺牲块信息存储在缓冲器中;
检测读取回收安全时段并生成触发信号;
在所述安全时段期间检测队列的剩余容量;
在所述安全时段期间将与所述队列的剩余容量一样多的缓存的牺牲块信息排队在所述队列中;以及
在所述安全时段期间基于所排队的牺牲块信息执行读取回收操作。
12.根据权利要求11所述的操作方法,其中响应于所述触发信号来执行检测所述队列的剩余容量、将缓冲的牺牲块信息排队在所述队列中以及执行所述读取回收操作。
13.根据权利要求11所述的操作方法,其中所述牺牲块信息是关于包括在存储器装置中的主机数据块和系统数据块中的作为所述读取回收操作的目标块的信息。
14.根据权利要求13所述的操作方法,其中所述安全时段是作为所述读取回收操作的目标的系统数据块处于空闲状态的时段。
15.根据权利要求14所述的操作方法,其中所述剩余容量是在所述安全时段开始时所述队列能够存储所述牺牲块信息的容量。
16.根据权利要求14所述的操作方法,其中所述空闲状态是不对所述系统数据块执行所述读取回收操作的状态。
17.根据权利要求11所述的操作方法,进一步包括:
检测作为所述读取回收操作的目标的牺牲块,并将所检测的牺牲块信息存储在所述缓冲器中。
18.根据权利要求11所述的操作方法,其中将缓冲的牺牲块信息排队在所述队列中包括从所述缓冲器中移除所缓存的牺牲块信息中的在所述队列中排队的所述牺牲块信息。
19.根据权利要求11所述的操作方法,其中所述牺牲块信息是作为所述读取回收操作的目标的牺牲块的地址。
20.根据权利要求13所述的操作方法,其中用于所述读取回收操作的目标块是具有等于或高于预定阈值的读取计数的块。
CN201810984836.8A 2017-12-12 2018-08-28 存储器系统及存储器系统的操作方法 Active CN109918315B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020170170085A KR102389542B1 (ko) 2017-12-12 2017-12-12 메모리 시스템 및 메모리 시스템의 동작 방법
KR10-2017-0170085 2017-12-12

Publications (2)

Publication Number Publication Date
CN109918315A CN109918315A (zh) 2019-06-21
CN109918315B true CN109918315B (zh) 2023-08-25

Family

ID=66696172

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810984836.8A Active CN109918315B (zh) 2017-12-12 2018-08-28 存储器系统及存储器系统的操作方法

Country Status (3)

Country Link
US (1) US10769061B2 (zh)
KR (1) KR102389542B1 (zh)
CN (1) CN109918315B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220021992A (ko) 2020-08-14 2022-02-23 삼성전자주식회사 비휘발성 메모리 장치, 그것의 동작 방법, 그것을 제어하는 제어기, 및 그것을 포함하는 저장 장치
KR20220150147A (ko) * 2021-05-03 2022-11-10 에스케이하이닉스 주식회사 메모리 장치 및 그 동작 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7676633B1 (en) * 2007-01-31 2010-03-09 Network Appliance, Inc. Efficient non-blocking storage of data in a storage server victim cache
CN102129412A (zh) * 2010-01-18 2011-07-20 厄塞勒拉特公司 存取调度器
CN105718378A (zh) * 2014-12-19 2016-06-29 爱思开海力士有限公司 存储系统及其操作方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7710777B1 (en) * 2006-12-20 2010-05-04 Marvell International Ltd. Semi-volatile NAND flash memory
US8239638B2 (en) * 2007-06-05 2012-08-07 Apple Inc. Store handling in a processor
US9183085B1 (en) * 2012-05-22 2015-11-10 Pmc-Sierra, Inc. Systems and methods for adaptively selecting from among a plurality of error correction coding schemes in a flash drive for robustness and low latency
US9436634B2 (en) * 2013-03-14 2016-09-06 Seagate Technology Llc Enhanced queue management
KR102211868B1 (ko) 2014-12-15 2021-02-04 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US9542269B1 (en) * 2015-06-29 2017-01-10 SK Hynix Inc. Controller controlling semiconductor memory device and operating method thereof
US9727488B1 (en) * 2016-10-07 2017-08-08 International Business Machines Corporation Counter-based victim selection in a cache memory
US9940246B1 (en) * 2016-10-07 2018-04-10 International Business Machines Corporation Counter-based victim selection in a cache memory
KR20190075353A (ko) * 2017-12-21 2019-07-01 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7676633B1 (en) * 2007-01-31 2010-03-09 Network Appliance, Inc. Efficient non-blocking storage of data in a storage server victim cache
CN102129412A (zh) * 2010-01-18 2011-07-20 厄塞勒拉特公司 存取调度器
CN105718378A (zh) * 2014-12-19 2016-06-29 爱思开海力士有限公司 存储系统及其操作方法

Also Published As

Publication number Publication date
US10769061B2 (en) 2020-09-08
KR102389542B1 (ko) 2022-04-25
US20190179743A1 (en) 2019-06-13
KR20190069803A (ko) 2019-06-20
CN109918315A (zh) 2019-06-21

Similar Documents

Publication Publication Date Title
CN109426449B (zh) 存储器系统及其操作方法
CN110765035B (zh) 存储器系统及其操作方法
CN109284202B (zh) 控制器及其操作方法
KR102468751B1 (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
CN110058797B (zh) 存储器系统及其操作方法
KR20180076765A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
CN110321069B (zh) 存储器系统及其操作方法
CN109671459B (zh) 存储器系统及其操作方法
KR102564774B1 (ko) 메모리 시스템 혹은 데이터 처리 시스템의 동작을 진단하는 장치 혹은 진단을 통해 신뢰성을 확보하는 방법
CN109390003B (zh) 存储器系统及其操作方法
CN110096385B (zh) 存储器系统及其操作方法
CN110457230B (zh) 存储器系统及其操作方法
CN109656749B (zh) 存储器系统及其操作方法
US20180373629A1 (en) Memory system and operating method thereof
CN110765029B (zh) 控制器及用于操作该控制器的方法
CN110781023A (zh) 用于在存储器系统中处理数据的设备和方法
US11675543B2 (en) Apparatus and method for processing data in memory system
CN109656470B (zh) 存储器系统及其操作方法
KR102559549B1 (ko) 메모리 시스템에서의 블록 상태를 관리하는 방법 및 장치
CN112988054A (zh) 存储器系统及其操作方法
KR20190069806A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
CN110045914B (zh) 存储器系统及其操作方法
CN109947359B (zh) 存储器系统及其操作方法
CN109918315B (zh) 存储器系统及存储器系统的操作方法
US11815985B2 (en) Apparatus and method for checking an operation status of a memory device in a memory system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant