CN110096385A - 存储器***及其操作方法 - Google Patents
存储器***及其操作方法 Download PDFInfo
- Publication number
- CN110096385A CN110096385A CN201811223632.9A CN201811223632A CN110096385A CN 110096385 A CN110096385 A CN 110096385A CN 201811223632 A CN201811223632 A CN 201811223632A CN 110096385 A CN110096385 A CN 110096385A
- Authority
- CN
- China
- Prior art keywords
- data
- block
- task
- host
- memory
- 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
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/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
- 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/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on 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/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/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/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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- 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/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- 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/26—Using a specific storage system architecture
- G06F2212/261—Storage comprising a plurality of storage devices
- G06F2212/262—Storage comprising a plurality of storage devices configured as RAID
-
- 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/7205—Cleaning, compaction, garbage collection, erase control
-
- 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
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
本发明涉及一种存储器***,包括:存储器装置;以及控制器,选择在第一任务和第二任务中需要执行的至少一个共同操作,选择第一任务或第二任务,并且基于选择的信息选择性地执行有效数据扫描操作、有效数据读取操作、有效数据写入操作和有效数据映射更新操作中的一个或多个,其中第一任务是对主机数据块、***数据块和映射数据块执行的垃圾收集操作,其中第二任务是在有效数据映射更新操作期间发生突然断电(SPO)之后执行的恢复操作。
Description
相关申请的交叉引用
本申请要求于2018年1月30日提交的申请号为10-2018-0011373的韩国专利申请的优先权,其公开全文通过引用并入本文。
技术领域
本发明的各个实施例涉及一种存储器***。特别地,实施例涉及一种能够控制垃圾收集操作和突然断电恢复操作的存储器***及存储器***的操作方法。
背景技术
计算机环境范例已经转变至使计算***能够随时随地使用的普适计算。因此,诸如移动电话、数码相机和膝上型计算机的便携式电子装置的使用已经迅速增加。这些便携式电子装置通常使用具有用于存储数据的一个或多个存储器装置的存储器***。存储器***可用作便携式电子装置的主存储器装置或辅助存储器装置。
与硬盘驱动器相比,因为存储器***不具有移动部件,所以存储器***提供了优良的稳定性、耐久性、高信息访问速度和低功耗。具有这种优点的存储器***的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡和固态驱动器(SSD)。
发明内容
本发明的各个实施例涉及一种存储器***及存储器***的操作方法,该存储器***可在单个模块中对垃圾收集操作和突然断电恢复操作中共同需要的操作进行管理。
根据本发明的实施例,一种存储器***包括:存储器装置;以及控制器,适于选择在第一任务和第二任务中需要执行的至少一个共同操作,选择第一任务或第二任务,并且基于选择的信息选择性地执行有效数据扫描操作、有效数据读取操作、有效数据写入操作和有效数据映射更新操作中的一个或多个,其中第一任务是对主机数据块、***数据块和映射数据块执行的垃圾收集操作,其中第二任务是在有效数据映射更新操作期间发生突然断电(SPO)之后执行的恢复操作。
根据本发明的实施例,一种存储器***的操作方法包括:检查选择的任务是第一任务还是第二任务;选择在第一任务和第二任务中需要执行的一个或多个共同操作;以及基于选择的信息选择性地执行有效数据扫描操作、有效数据读取操作、有效数据写入操作和有效数据映射更新操作中的一个或多个,其中第一任务是对主机数据块、***数据块和映射数据块执行的垃圾收集操作,其中第二任务是在有效数据映射更新操作期间发生突然断电(SPO)之后执行的恢复操作。
根据本发明的实施例,一种存储器***包括:存储器装置,包括多个单元;以及控制器,适于识别并选择针对垃圾收集操作和突然断电(SPO)恢复操作两者对存储器装置共同执行的至少一个进程,并且垃圾收集操作和突然断电恢复操作共用至少一个进程的执行,其中至少一个进程包括有效数据扫描操作、有效数据读取操作、有效数据写入操作和有效数据映射更新操作中的至少一个。
附图说明
图1是示出根据本发明的实施例的包括存储器***的数据处理***的框图。
图2是示出在图1所示的存储器***中采用的存储器装置的示例性配置的示意图。
图3是示出图1所示的存储器装置中的存储块的存储器单元阵列的示例性配置的电路图。
图4是示出根据本发明的实施例的存储器***的存储器装置和控制器的框图。
图5是示出根据本发明的实施例的垃圾收集操作和突然断电恢复操作的流程图。
图6A是示出垃圾收集操作中需要映射更新操作的情况的示图。
图6B是示出垃圾收集操作中不需要映射更新操作的情况的示图。
图7是示出第二任务中跳过有效数据写入操作的示图。
图8至图16是示意性地示出根据本发明的各个实施例的数据处理***的示例性应用的示图。
具体实施方式
以下参照附图更详细地描述本发明的各个实施例。然而,本发明可以其它形式和任何所描述的实施例的变型来实现,因此不限于本文所述的实施例。相反,提供所描述的实施例使得本公开完整和全面并将本发明充分地传达给本发明所属领域的技术人员。在整个本公开中,相同的附图标记在本发明的各个附图和实施例中表示相同的部件。而且,在整个说明书中,对“实施例”等的参考不一定仅针对一个实施例,并且对“实施例”等的不同参考不一定针对相同的实施例。
将理解的是,虽然术语“第一”、“第二”、“第三”等可在本文使用以辨认各种元件,但是这些元件不受这些术语限制。这些术语用于将一个元件与具有相同或相似名称的另一个元件区分开。因此,在不脱离本发明的精神和范围的情况下,以下描述的第一元件也可被称为第二元件或第三元件。
附图不一定按比例绘制,在一些情况下,为了清楚地示出实施例的特征,可能已经夸大了比例。当元件被称为连接至或联接到另一元件时,应当理解的是前者可直接连接或联接到后者,或者经由一个或多个中间元件电连接或联接到后者。
将进一步理解的是,当一个元件被称为“连接至”或“联接至”另一元件时,它可以直接在其它元件上、连接至或联接至其它元件,或可存在一个或多个中间元件。另外,还将理解的是,当元件被称为在两个元件“之间”时,其可以是这两个元件之间的唯一元件,或者也可存在一个或多个中间元件。
本文使用的术语是为了描述特定实施例而不旨在限制本发明。
如本文使用的,单数形式旨在包括复数形式,并且反之亦然,除非上下文另有清楚地说明。
将进一步理解的是,当在本说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,其说明所陈述元件的存在,但不排除一个或多个其它元件的存在或添加。如本文使用的,术语“和/或”包括一个或多个所列项目的任何一个和所有组合。
除非另有限定,否则本文所使用的包括技术术语和科学术语的所有术语具有与本发明所属领域中普通技术人员通常理解的含义相同的含义。将进一步理解的是,诸如在常用词典中限定的那些术语的术语应被理解为具有与它们在本公开的上下文和相关领域中的含义一致的含义并且不以理想化或过于正式的意义来解释,除非本文如此明确地限定。
在以下描述中,为了提供本发明的彻底理解,阐述了许多具体细节。本发明可在没有一些或全部这些具体细节的情况下被实施。在其它情况下,为了避免不必要地模糊本发明,未详细地描述公知的进程结构和/或进程。
还注意的是,在一些情况下,如对于相关领域的技术人员显而易见的是,除非另有明确说明,否则结合一个实施例所描述的特征或元件可单独使用或与另一个实施例的其它特征或元件组合使用。
图1是示出根据本发明的实施例的包括存储器***110的数据处理***100的框图。
参照图1,数据处理***100可包括被可操作地联接到存储器***110的主机102。
主机102可包括诸如移动电话、MP3播放器和膝上型计算机的各种便携式电子装置中的任何一种或诸如台式电脑、游戏机、TV和投影仪的各种非便携式电子装置中的任何一种。
主机102可包括至少一个OS(操作***),其可管理和控制主机102的全部功能和操作。OS可支持主机102和使用数据处理***100或存储器***110的用户之间的操作。OS可支持用户请求的功能和操作。例如,根据主机102的移动性,OS可被划分为通用OS和移动OS。根据用户的环境,通用OS可被分为个人OS和企业OS。例如,配置为支持向普通用户提供服务的功能的个人OS可包括Windows和Chrome,并且配置为确保和支持高性能的企业OS可包括Windows服务器、Linux和Unix。此外,被配置为支持向用户提供移动服务的功能和***省电功能的移动OS可包括Android、iOS和Windows Mobile。主机102可包括多个操作***。主机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可包括各种类型的存储装置。这种存储装置的非限制性示例包括诸如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可被集成为单个半导体装置以构成诸如以下的存储卡:PCMCIA(个人计算机存储卡国际协会)卡,CF卡,SMC(智能媒体卡),记忆棒,包括RS-MMC和微型-MMC的MMC,包括迷你-SD、微型-SD和SDHC的SD卡,或UFS装置。
存储器***110的非限制性应用示例可包括计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、平板计算机、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航***、黑盒、数码相机、数字多媒体广播(DMB)播放器、3维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、建立数据中心的存储装置、能够在无线环境下传输/接收信息的装置、建立家庭网络的各种电子装置中的一个、建立计算机网络的各种电子装置中的一个、建立远程信息处理的各种电子装置中的一个、射频识别(RFID)装置或建立计算***的各种部件中的一个。
存储器装置150可以是非易失性存储器装置,其即使不供应电力,也可保留存储的数据。存储器装置150可通过写入操作来存储从主机102提供的数据,并且通过读取操作将存储在其中的数据输出给主机102。在实施例中,存储器装置150可包括多个存储器管芯(未示出),并且每一个存储器管芯可包括多个平面(未示出)。每一个平面可包括多个存储块152至156,存储块152至156中的每一个可包括多个页面,多个页面中的每一个可包括联接到字线的多个存储器单元。在实施例中,存储器装置150可以是具有3维(3D)堆叠结构的闪速存储器。
控制器130可响应于来自主机102的请求控制存储器装置150。例如,控制器130可以将从存储器装置150读取的数据提供给主机102,并且将从主机102提供的数据存储到存储器装置150中。对于该操作,控制器130可以控制存储器装置150的读取操作、写入操作、编程操作和擦除操作。
更具体地,控制器130可包括全部经由内部总线可操作地联接或接合的主机接口(I/F)132、处理器134、错误校正码(ECC)单元138、电源管理单元(PMU)140、存储器接口142和存储器144。
主机接口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可通过诸如低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)码、涡轮码、里德-所罗门(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可使用固件,即闪存接口层(FIL)来与存储器装置150交换数据。
存储器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可通过可被实现为微处理器或CPU的处理器134对存储器装置150执行后台操作。对存储器装置150执行的后台操作可包括:将存储在存储器装置150的存储块152至156之中的一些存储块中的数据复制并处理到其它存储块的操作,例如垃圾收集(GC)操作;在存储块152至156之间或存储块152至156的数据之间执行交换的操作,例如损耗均衡(WL)操作;将存储在控制器130中的映射数据存储在存储块152至156中的操作,例如映射清除操作;或者管理存储器装置150的坏块的操作,例如检测并处理存储器装置150中的存储块152至156之中的坏块的坏块管理操作。
而且,在根据本发明的实施例的存储器***110中,控制器130可执行与从主机102接收的多个命令相对应的多个命令执行。例如,控制器130可在存储器装置150中执行对应于多个写入命令的多个编程操作、对应于多个读取命令的多个读取操作和/或对应于多个擦除命令的多个擦除操作。而且,控制器130可根据命令执行来更新元数据(特别是映射数据)。
控制器130的处理器134可包括用于执行存储器装置150的坏块管理操作的管理单元(未示出)。管理单元可执行在多个存储块152至156中检查在编程操作期间由于NAND闪速存储器的特性而发生编程失败的坏块的坏块管理操作。管理单元可以将坏块的编程失败数据写入新存储块。在具有3D堆叠结构的存储器装置150中,坏块管理操作可能降低存储器装置150的使用效率和存储器***110的可靠性。因此,需要能够保持***可靠性的坏块管理操作。参照图2至图3详细描述根据本发明的实施例的存储器***的存储器装置。
图2是示出存储器装置150的示意图。图3是示出存储器装置150中的存储块330的存储器单元阵列的示例性配置的电路图。
参照图2,存储器装置150可包括多个存储块BLOCK0至BLOCKN-1,其中N为大于1的整数。块BLOCK0至BLOCKN-1中的每一个可包括多个页面,例如2M或M个页面,页面的数量可根据电路设计而变化,M是大于1的整数。页面中的每一个可包括联接到多个字线WL的多个存储器单元。
而且,各个存储块BLOCK0至BLOCKN-1中的存储器单元可以是存储1位数据的单层单元(SLC)存储块或存储2位数据的多层单元(MLC)存储块中的一个或多个。因此,存储器装置150可根据在存储块中的存储器单元的每一个中可以表达或存储的位的数量而包括SLC存储块或MLC存储块。SLC存储块可包括由每一个都存储一位数据的存储器单元实现的多个页面。SLC存储块通常可比MCL存储块具有更高的数据计算性能和更高的耐久性。MLC存储块可包括多个页面,多个页面都通过每一个存储多位(例如,2位或更多位)数据的存储器单元实现。MLC存储块通常可比SLC存储块具有更大的数据存储空间,即更高的集成度。在另一实施例中,存储器装置150可包括多个三层单元(TLC)存储块。在另一实施例中,存储器装置150可包括多个四层单元(QLC)存储块。TLC存储块可包括由每一个都能够存储3位数据的存储器单元实现的多个页面。QLC存储块可包括由每一个都能够存储4位数据的存储器单元实现的多个页面。
存储器装置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可包括分别对应于列(或位线)或列对(或位线对)的多个页面缓冲器322至326。页面缓冲器322至326中的每一个可包括多个锁存器(未示出)。
读取干扰现象是指对特定块中的多个页面执行读取操作并且该块中的另一页面的邻近单元的电平增加的现象。当读取干扰现象累积时,可能超过ECC单元138的错误校正能力。当读取计数等于或高于阈值时,读取回收操作是指将存储在牺牲块中的有效页面存储在目标块中并对包括在牺牲块中的剩余页面执行擦除操作以避免不可恢复的错误的操作。
读取回收操作是在没有来自主机的命令的情况下,在控制器130的控制下在存储器装置150中执行的后台操作。当该后台操作执行超出设置或预定的时间时,基于来自主机的命令执行的前台操作中可能出现开销(overhead)。因此,控制器130通常不会一次对大量的牺牲块执行读取回收操作。相反,控制器130通常以设置或预定的时间间隔对相对较少的设置或预定的数量的存储块执行读取回收操作。执行读取回收操作的时间间隔可根据存储块的损坏程度(例如,数据丢失的风险或可能性)来确定。可在设置或预定的时间间隔对累积的牺牲块执行读取回收操作。因此,可防止或最小化不可恢复的错误的发生。
在常规存储器***中,当根据来自主机的读取命令读取的数据量等于或大于设置或预定的阈值时,对检测到的读取回收目标块,即牺牲块,执行读取回收操作。
如果以这种方式执行读取回收操作,则读取回收操作的性能可能不会反映存储块的实际损坏程度。
如果经常对特定存储块的数据执行读取操作,则该存储块的读取计数增加,这转而增加了读取干扰现象发生的频率,导致发生不可恢复的错误。因此,读取计数等于或高于阈值的存储块可能相对于读取计数低于阈值的其它存储块具有更高的发生不可恢复的错误的可能性,即更高的损坏程度。存储块的损坏程度通常与存储块的读取计数成比例。即使响应于来自主机的读取命令而读取的数据量基本相同,但读取计数可能因为使用不同的方法不同地测量或命令的类型而变化。也就是说,即使数据量相等,但存储块的损坏程度可能根据如何测量读取计数或命令的类型而变化。
具体地,存储块的损坏程度取决于对来自主机的命令的处理或执行。例如,即使根据命令读取的数据量相等,但顺序访问并输出单个存储块中的数据时测量的读取计数可能高于任意访问并输出数个块中的数据时测量的读取计数。因此,如果仅基于根据命令读取的数据量来确定是否执行读取回收操作,则考虑到存储块的实际损坏程度,读取回收操作可能执行得太过频繁。此外,当执行随机读取操作时,在根据主机的命令读取的数据量达到阈值之前,即在对牺牲块执行读取回收操作之前,存储块可能快速损坏,并且可能发生不可恢复的错误。
存储块的损坏程度取决于测量读取计数的方法。即使根据主机的命令读取的数据量彼此相等,但以单个存储块为单位测量的读取计数可能不同于以超级块为单位测量的读取计数。也就是说,即使数据量彼此相等,但存储块的损坏程度可能根据测量读取计数的方法而被不同地确定。因此,仅基于根据主机的命令读取的数据量难以正确地确定存储块的实际损坏程度。
根据本发明的实施例,考虑到存储块的损坏程度,可基于存储块的实际读取计数而非根据来自主机的命令读取的数据量来执行读取回收操作。
与硬盘不同,闪速存储器具有以页面为单位写入和读取数据、以块为单位擦除数据以及不支持重写操作的特性。由于这些特性,为了校正记录在页面上的数据,将校正后的数据写入新的页面,并且使原始数据的页面无效。
垃圾收集操作是指周期性地将无效页面转换为空白页面以避免闪速存储器空间由于无效页面而浪费的操作。垃圾收集操作包括从存储器装置中的所有存储块中选择牺牲块并将牺牲块的有效页面复制在目标块的空白页面中的操作。在将所有有效页面都复制在目标块中之后,可将牺牲块的所有页面置于空白状态。因此,可通过垃圾收集操作来恢复存储器空间。
可从所有存储块之中的诸如存储映射数据的块、存储主机数据的块和存储***数据的块的各种存储块中选择牺牲块。垃圾收集操作的详细操作可能根据从中选择牺牲块的存储块的类型而变化。通常,在垃圾收集操作中顺序地执行扫描牺牲块的有效数据的操作、从牺牲块读取有效数据的操作、将读取的有效数据写入目标块的操作以及对写入的有效数据的映射信息进行更新的操作。
突然断电恢复操作是指恢复由于突然断电而发生编程失败或更新失败的数据的操作。例如,当正将主机数据编程在主机开放块中时发生突然断电时,在恢复操作期间,从主机块扫描未完成编程操作的有效数据,从主机块读取有效数据,将有效数据编程在主机块中,并且对编程的有效数据执行映射更新操作。
在常规的存储器***中,即使当垃圾收集操作和突然断电恢复操作中共同包括扫描有效数据的操作、读取有效数据的操作、写入有效数据的操作和映射更新操作时,控制器也单独执行上述操作。
而且,在常规的存储器***中,垃圾收集操作根据垃圾收集目标块的种类而单独地执行。具体地,映射数据块、主机数据块和***数据块可被选择为垃圾收集目标块,但是没有使用单个模块对多种块执行垃圾收集操作。
因为多个任务的共同操作没有进行集中管理,并且对各种垃圾收集目标块的垃圾收集操作没有在单个模块中执行,所以常规的存储器***存在***的开销和复杂性增加的问题。
根据本发明的实施例,可在单个模块中对多个任务的共同操作和各种垃圾收集目标块的共同操作进行管理,从而可减少***开销,并且可快速完成任务。
图4是示出根据本发明的实施例的存储器***110的存储器装置和控制器的框图。
图4示出了与本发明的方面相关的存储器***110的组成。
如以上参照图1所述,处理器134可控制存储器***110的全部操作。例如,处理器134可控制包括在对存储器装置150执行的后台操作中的编程操作和读取操作,并且可执行映射更新操作。
处理器134可确定待执行的任务是对应于第一任务还是第二任务。第一任务是执行垃圾收集操作,第二任务是由于在主机开放块中的映射更新操作期间发生突然断电而执行恢复操作。
存储器装置150可包括主机数据块401、402、403,***数据块404,映射数据块405、406、407以及突然断电恢复(SPOR)块408、409、410。主机数据块401、402、403可存储主机数据,***数据块404可存储***数据,映射数据块405、406、407可存储映射数据。SPOR块408、409、410可包括多个主机开放块408、409和多个映射数据块410。
当待执行的任务对应于第一任务或第二任务时,处理器134可根据任务的种类将第一任务和第二任务共同的操作作为单个模块来执行。处理器134可从模块中执行的多个操作中分类出第一任务或第二任务不需要的操作。当待执行的任务是第一任务时,可根据垃圾收集目标块的种类从模块中执行的多个操作中分类出不需要执行的操作。
具体地,第一任务和第二任务共同执行的操作可包括对有效数据的操作,例如读取有效数据的操作、写入有效数据的操作以及更新有效数据的映射信息的操作。
当确定待执行的任务是第一任务时,处理器134可确定垃圾收集目标块是对应于主机数据块401、402、403,***数据块404还是映射数据块405、406、407。
当待执行的任务是第一任务,并且垃圾收集目标块对应于主机数据块401、402、403和***数据块404中的任何一个时,处理器134可将模块中共同执行的多个操作确定为需要执行的操作。
根据本发明的实施例,当选择主机数据块401、402、403作为垃圾收集目标块时,处理器134可检测主机数据牺牲块401和主机数据目标块403。主机数据牺牲块401可以是主机数据块401、402、403中无效页面的数量等于或大于阈值的块,主机数据目标块403可以是主机数据块401、402、403中空闲页面的数量等于或大于阈值的块。当待执行的任务是第一任务,并且垃圾收集目标块是主机数据块401、402、403时,处理器134可扫描存储在主机数据牺牲块401中的有效数据。处理器134可从主机数据牺牲块401读取扫描的有效数据,并将读取的有效数据写入主机数据目标块403。处理器134可更新有效数据的改变的地址信息,并将更新的地址信息存储在映射数据块405中,使得可从改变的地址读取有效数据。即使当***数据块404被选择为垃圾收集目标块时,处理器134也可以与上述相同的方式执行第一任务。
当待执行的任务是第一任务,并且垃圾收集目标块对应于映射数据块405、406、407时,处理器134可确定不需要执行模块中共同执行的多个操作中的更新映射信息的操作。
根据本发明的实施例,当映射数据块405、406、407被选择为垃圾收集目标块时,处理器134可确定不需要执行模块中共同执行的多个操作中的更新映射信息的操作,并且检测映射数据牺牲块406和映射数据目标块407。映射数据牺牲块406可以是映射数据块405、406、407中无效页面的数量等于或大于阈值的块,并且映射数据目标块407可以是映射数据块405、406、407中空闲页面的数量等于或大于阈值的块。当待执行的任务是第一任务,并且垃圾收集目标块是映射数据块405、406、407时,处理器134可扫描存储在映射数据牺牲块406中的有效数据。处理器134可从映射数据牺牲块406读取扫描的有效数据并将读取的有效数据写入映射数据目标块407。处理器134可针对映射更新操作传输NULL信号以跳过映射更新操作。
当确定待执行的任务是第二任务时,处理器134可确定不需要执行模块中共同执行的多个操作中的写入有效数据的操作。第二任务可以是在映射数据块410中执行映射更新操作时发生突然断电之后,对写入主机开放块409的数据的映射信息执行突然断电恢复操作的操作。处理器134可针对有效数据写入操作传输NULL信号以跳过有效数据写入操作。处理器134可再次在映射数据块410中执行映射更新操作,以更新由于发生突然断电而没有改变的映射数据。
图5是示出根据本发明的实施例的垃圾收集操作和突然断电恢复操作的流程图。控制器130可控制存储器装置150执行垃圾收集操作和突然断电恢复操作。
参照图5,在步骤S501中,处理器134可选择待执行的任务。
在步骤S551中,处理器134可确定所选择的任务是对应于第一任务还是对应于第二任务。此处,第一任务是执行垃圾收集操作的任务,第二任务是由于主机开放块中的映射更新操作期间发生突然断电而执行恢复操作的任务。
根据本发明的实施例,处理器134可在单个模块中执行扫描有效数据的操作、读取有效数据的操作、写入有效数据的操作以及更新有效数据的映射信息的操作。具体地,当待执行的任务被确定为第一任务或第二任务时,处理器134可从模块中执行的多个操作中分类出不需要在第一任务或第二任务中执行的操作。处理器134可跳过分类出的不需要的操作,并且顺序地执行剩余的操作。
当在步骤S551中待执行的任务被确定为第一任务时,在步骤S571中,处理器134可确定垃圾收集目标块是对应于主机数据块401、402、403,***数据块404还是映射数据块405、406、407。
主机数据块401、402、403可存储主机数据,***数据块404可存储***数据,映射数据块405、406、407可存储映射数据。
当作为步骤S571中确定的结果,垃圾收集目标块对应于主机数据块401、402、403和***数据块404中的任何一个时,在步骤S503中,处理器134可选择对主机数据块401、402、403和***数据块404执行垃圾收集操作所需要的操作。
当对主机数据块401、402、403和***数据块404执行垃圾收集操作时,可将牺牲块的有效数据传输到目标块,并且可改变有效数据的地址信息。因此,当完成将有效数据写入目标块的操作时,处理器134可更新有效数据的映射数据以重新存储改变的地址信息。
在步骤S503中,当待执行的任务是第一任务,并且垃圾收集目标块是主机数据块401、402、403和***数据块404中的任何一个时,处理器134可确定扫描有效数据的操作、读取有效数据的操作、写入有效数据的操作和更新有效数据的映射信息的操作为模块中需要执行的操作。
在步骤S505中,处理器134可扫描存储在第一牺牲块401中的有效数据。牺牲块可存储主机数据或***数据,并且处理器134可检测无效页面计数等于或大于阈值的块作为第一牺牲块401。处理器134可从第一牺牲块扫描有效数据以存储有效数据的地址信息。
当在步骤S505中完成扫描有效数据的操作时,在步骤S507中,处理器134可基于有效数据的地址信息从第一牺牲块401读取有效数据。
当在步骤S507中完成从第一牺牲块401读取有效数据的操作时,在步骤S509中,处理器134可将读取的有效数据写入第一目标块403。处理器134可选择空闲页面计数等于或大于阈值的块作为第一目标块403。
当在步骤S509中完成将有效数据写入第一目标块403的操作时,在步骤S511中,处理器134可更新有效数据的地址信息。也就是说,处理器134可更新存储有效数据的地址信息的映射数据。
当作为步骤S571中确定的结果,垃圾收集目标块对应于映射数据块405、406、407时,在步骤S513中,处理器134可选择对映射数据块405、406、407执行垃圾收集操作所需要的操作。
特定数据的地址信息被存储在映射数据中。当与存储在映射数据中的地址信息相对应的数据被存储在特定页面中并且数据的地址信息变化时,可更新映射数据。
通常,当对特定块执行垃圾收集操作时,存储在该块中的有效数据可被存储在另一块中,并且有效数据的地址信息可以变化。因此,处理器134可执行映射更新操作以存储有效数据的变化的地址信息。然而,当垃圾收集操作的目标块是存储映射数据的块时,不需要单独执行映射更新操作。
图6A示出了在对特定块执行的垃圾收集操作中需要映射更新操作的一般情况。图6B示出了当垃圾收集操作的目标块是映射数据块时不需要映射更新操作的情况。
参照图6A,主机数据牺牲块401可包括多个页面,并且多个页面中的无效页面的数量可等于或大于阈值。主机数据目标块403可包括多个页面,并且多个页面中的空闲页面的数量可等于或大于阈值。映射数据块405可存储主机数据牺牲块401和主机数据目标块403中存储的数据的映射信息。当主机数据牺牲块401被选择为第一任务执行目标块时,处理器134可扫描主机数据牺牲块401的有效数据。当作为扫描的结果,检查到有效数据Data_H存储在主机数据牺牲块401的第二页面PAGE2中时,处理器134可从主机数据牺牲块401的第二页面PAGE2中读取有效数据Data_H,并将读取的数据Data_H写入主机数据目标块403的第一页面PAGE1。因为存储数据Data_H的地址从主机数据牺牲块401的第二页面PAGE2改变为主机数据目标块403的第一页面PAGE1,所以处理器134可在映射数据块405中更新数据Data_H的映射信息。
参照图6B,映射数据牺牲块406可包括多个页面,并且多个页面中的无效页面的数量可等于或大于阈值。映射数据目标块407可包括多个页面,并且多个页面中的空闲页面的数量可等于或大于阈值。存储在映射数据牺牲块406的第二页面PAGE2中的数据Data_M可存储主机数据块402的第二页面PAGE2中存储的数据Data_Hs的映射信息。当映射数据牺牲块406被选择为第一任务执行目标块时,处理器134可将映射信息更新操作确定为不需要执行的操作,并且扫描映射数据牺牲块406中的有效数据。当作为扫描的结果,检查到有效数据Data_M存储在映射数据牺牲块406的第二页面PAGE2中时,处理器134可从映射数据牺牲块406的第二页面PAGE2中读取有效数据Data_M,并将读取的数据Data_M写入映射数据目标块407的第一页面PAGE1。处理器134可针对映射更新操作传输NULL信号以跳过映射更新操作。
具体地,在图6A中,当执行第一任务时,随着数据Data_H的地址从主机数据牺牲块401的第二页面PAGE2改变为主机数据目标块403的第一页面PAGE1,存储数据Data_H的地址信息的映射数据块405的数据Data_Ms也可改变。因此,处理器134可在执行第一任务时更新数据Data_Ms以改变映射数据块405的数据Data_Ms。
在图6B中,当执行第一任务时,即使数据Data_M的地址从映射数据牺牲块406的第二页面PAGE2改变到映射数据目标块407的第一页面PAGE1,但存储在数据Data_M中的主机数据块402的数据Data_Hs的地址也可保持在主机数据块402的第二页面PAGE2中。因此,因为尽管对数据Data_M执行了垃圾收集操作但存储在数据Data_M中的数据Data_Hs的地址信息没有改变,所以处理器134可不需要对数据Data_M执行映射更新操作。
重新参照图5,在步骤S513中,当待执行的任务是第一任务,并且垃圾收集目标块是映射数据块405、406、407时,处理器134可确定扫描有效数据的操作、读取有效数据的操作和写入有效数据的操作为模块中需要执行的操作。
在步骤S515中,处理器134可扫描存储在第二牺牲块406中的有效数据。第二牺牲块406可存储映射数据,并且处理器134可检测无效页面计数等于或大于阈值的块作为第二牺牲块406。处理器134可从第二牺牲块406扫描有效数据以存储有效数据的地址信息。
当在步骤S515中完成扫描有效数据的操作时,在步骤S517中,处理器134可基于有效数据的地址信息从第二牺牲块406读取有效数据。
当在步骤S517中完成从第二牺牲块406读取有效数据的操作时,在步骤S519中,处理器134可将读取的有效数据写入第二目标块407。处理器134可选择空闲页面计数等于或大于阈值的块作为第二目标块407。
当在步骤S519中完成将有效数据写入第二目标块407的操作时,在步骤S521中,处理器134可基于当前执行的任务对应于第一任务并且第二牺牲块406选自于映射数据块的信息而跳过映射更新操作。例如,当待执行的任务是第一任务,并且垃圾收集目标块是映射数据块405、406、407时,处理器134可针对映射更新操作传输NULL信号,并且跳过映射更新操作。
当在步骤S551中待执行的任务被确定为第二任务时,在步骤S523中,处理器134可在模块中执行的多个操作中选择执行第二任务所需要的操作。
在步骤S523中,当待执行的任务是第二任务时,处理器134可确定扫描有效数据的操作、读取有效数据的操作和更新有效数据的映射信息的操作为第二任务中需要执行的操作。
在步骤S525中,处理器134可扫描存储在主机开放块409中的有效数据。处理器134可存储从主机开放块409扫描的有效数据的地址信息。
当在步骤S525中完成扫描有效数据的操作时,在步骤S527中,处理器134可基于有效数据的地址信息从主机开放块409读取有效数据。
当在步骤S527中完成读取有效数据的操作时,在步骤S529中,处理器134可跳过写入有效数据的操作。例如,处理器134可针对写入有效数据的操作传输NULL信号,并且跳过写入有效数据的操作。
图7示出了在第二任务中跳过有效数据写入操作。
参照图7,当在数据Data_Ho从第一主机数据开放块408的第一页面PAGE1写入第二主机数据开放块409的第二页面PAGE2之后对存储数据Data_Ho的地址信息的映射数据块410的数据Data_Mo进行更新时,发生突然断电恢复(SPOR)。因此,数据Data_Mo可能未更新被改变为第二主机数据开放块409的第二页面PAGE2的数据Data_Ho的地址。当再次供电以更新由于突然断电而未更新的数据Data_Mo中的地址,即数据Data_Ho的地址时,处理器134可扫描数据Data_Ho。作为扫描的结果,处理器134可检查数据Data_Ho存储在第二主机数据开放块409的第二页面PAGE2中。处理器134可读取存储在第二主机数据开放块409的第二页面PAGE2中的数据Data_Ho,并且将作为Data_Ho的地址信息的数据Data_Mo从第一主机数据开放块408的第一页面PAGE1更新为第二主机数据开放块409的第二页面PAGE2。因为在数据Data_Ho被写入作为非易失性存储器的第二主机开放块409之后发生突然断电,所以不需要从第一主机数据开放块408的第一页面PAGE1另外读取数据Data_Ho并将读取的数据Data_Ho写入第二主机数据开放块409的第二页面PAGE2的操作。
重新参照图5,在步骤S531中,处理器134可更新读取的有效数据的映射信息。
图8是示意性地示出根据实施例的包括存储器***的数据处理***的另一示例的示图。图8示意性地示出了可以应用存储器***的存储卡***。
参照图8,存储卡***6100可包括存储器控制器6120、存储器装置6130和连接器6110。
更具体地,存储器控制器6120可电联接到由非易失性存储器实现的存储器装置6130并且可被配置成访问由非易失性存储器实现的存储器装置6130。例如,存储器控制器6120可被配置成控制存储器装置6130的读取操作、写入操作、擦除操作和后台操作。存储器控制器6120可被配置为提供存储器装置6130和主机之间的接口并且使用用于控制存储器装置6130的固件。也就是说,存储器控制器6120可对应于参照图1描述的存储器***110的控制器130,并且存储器装置6130可对应于参照图1描述的存储器***110的存储器装置150。
因此,存储器控制器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可被集成到单个半导体装置中以形成固态驱动器(SSD)。而且,存储器控制器6120和存储器装置6130可被集成以形成诸如以下的存储卡:PC卡(PCMCIA:个人计算机存储卡国际协会)、标准闪存(CF)卡、智能媒体卡(例如,SM和SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC、微型MMC和eMMC)、SD卡(例如,SD、迷你SD、微型SD和SDHC)以及通用闪存(UFS)。
图9是示意性地示出根据实施例的包括存储器***的数据处理***的另一示例的示图。
参照图9,数据处理***6200可包括具有一个或多个非易失性存储器的存储器装置6230和用于控制存储器装置6230的存储器控制器6220。图9所示的数据处理***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用作缓冲存储器时,RAM6222可用于缓冲从主机6210传输到存储器装置6230的数据,反之亦然。当RAM 6222用作高速缓冲存储器时,RAM6222可辅助低速存储器装置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接收数据。存储器控制器6220可通过NVM接口6225将数据传输到存储器装置6230/从存储器装置6230接收数据。主机接口6224可通过PATA总线、SATA总线、SCSI、USB、PCIe或NAND接口连接到主机6210。存储器控制器6220可利用诸如WiFi或长期演进(LTE)的移动通信协议具有无线通信功能。存储器控制器6220可连接至外部装置,例如主机6210或另一个外部装置,然后向外部装置传输数据/接收来自外部装置的数据。特别地,由于存储器控制器6220被配置成根据各种通信协议中的一种或多种与外部装置通信,因此根据实施例的存储器***和数据处理***可被应用于有线/无线电子装置,特别是移动电子装置。
图10是示意性地示出根据实施例的包括存储器***的数据处理***的示例的示图。图10示意性地示出可以应用存储器***的SSD。
参照图10,SSD 6300可包括控制器6320和包括多个非易失性存储器的存储器装置6340。控制器6320可对应于图1的存储器***110中的控制器130,并且存储器装置6340可对应于图1的存储器***中的存储器装置150。
更具体地,控制器6320可通过多个通道CH1至CHi连接至存储器装置6340。控制器6320可包括一个或多个处理器6321、缓冲存储器6325、ECC电路6322、主机接口6324以及诸如非易失性存储器接口6326的存储器接口。
缓冲存储器6325可临时存储从主机6310提供的数据或者从包括在存储器装置6340中的多个闪速存储器NVM提供的数据。进一步地,缓冲存储器6325可临时存储多个闪速存储器NVM的元数据,例如包括映射表的映射数据。缓冲存储器6325可由诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM的各种易失性存储器或诸如FRAM、ReRAM、STT-MRAM和PRAM的各种非易失性存储器中的任何一个来实现。图10示出了缓冲存储器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。
图11是示意性地示出根据实施例的包括存储器***的数据处理***的另一示例的示图。图11示意性地示出可以应用存储器***的嵌入式多媒体卡(eMMC)。
参照图11,eMMC 6400可包括控制器6430和通过一个或多个NAND闪速存储器实施的存储器装置6440。控制器6430可对应于图1的存储器***110的控制器130。存储器装置6440可对应于图1的存储器***110中的存储器装置150。
更具体地,控制器6430可通过多个通道连接至存储器装置6440。控制器6430可包括一个或多个内核6432、主机接口6431和诸如NAND接口6433的存储器接口。
内核6432可以控制eMMC 6400的全部操作,主机接口6431可以在控制器6430和主机6410之间提供接口功能,并且NAND接口6433可以提供存储器装置6440和控制器6430之间的接口功能。例如,主机接口6431可用作并行接口,例如参照图1所描述的MMC接口。此外,主机接口6431可用作串行接口,例如UHS((超高速)-I/UHS-II)接口。
图12至图15是示意性地示出根据实施例的包括存储器***的数据处理***的其它示例的示图。图12至图15示意性地示出了可以应用存储器***的UFS(通用闪存)***。
参照图12至图15,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可以参照图8至图10描述的数据处理***6200、SSD 6300或eMMC 6400的形式来实现,并且UFS卡6530、6630、6730、6830可以参照图8描述的存储卡***6100的形式来实现。
此外,在UFS***6500、6600、6700、6800中,主机6510、6610、6710、6810,UFS装置6520、6620、6720、6820以及UFS卡6530、6630、6730、6830可通过例如MIPI(移动工业处理器接口)中的MIPI M-PHY和MIPI UniPro(统一协议)的UFS接口来彼此通信。此外,UFS装置6520、6620、6720、6820以及UFS卡6530、6630、6730、6830可通过除UFS协议之外的例如UFD、MMC、SD、迷你SD和微型SD的各种协议中的任何一种彼此通信。
在图12所示的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。
在图13所示的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。
在图14所示的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。
在图15所示的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。
图16是示意性地示出根据本发明的实施例的包括存储器***的数据处理***的另一示例的示图。图16示意性地示出了可以应用存储器***的用户***。
参照图16,用户***6900可包括应用处理器6930、存储器模块6920、网络模块6940、存储模块6950和用户接口6910。
更具体地,应用处理器6930可驱动例如OS的用户***6900中的部件,并且包括用于控制包括在用户***6900中的部件的控制器、接口、图形引擎等。应用处理器6930可被设置为片上***(SoC)。
存储器模块6920可用作用户***6900的主存储器、工作存储器、缓冲存储器或高速缓冲存储器。存储器模块6920可包括诸如DRAM、SDRAM、DDR SDRAM、DDR2SDRAM、DDR3SDRAM、LPDDRSDRAM、LPDDR2SDRAM和LPDDR3SDRAM的易失性RAM或诸如PRAM、ReRAM、MRAM和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闪存和3维NAND闪存,并且被设置为诸如用户***6900的存储卡和外部驱动器的可移除存储介质。存储模块6950可对应于参照图1描述的存储器***110。此外,存储模块6950可被实施为如上参照图10至图15所述的SSD、eMMC和UFS。
用户接口6910可包括用于向应用处理器6930输入数据或命令或者用于将数据输出到外部装置的接口。例如,用户接口6910可包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件的用户输入接口以及诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、发光二极管(LED)、扬声器和马达的用户输出接口。
此外,当图1的存储器***110被应用于用户***6900的移动电子装置时,应用处理器6930可控制移动电子装置的全部操作,并且网络模块6940可用作用于控制与外部装置的有线/无线通信的通信模块。用户接口6910可在移动电子装置的显示/触摸模块上显示通过处理器6930处理的数据或支持从触摸面板接收数据的功能。
根据本发明的实施例,因为基于存储块的读取计数而非主机读取量来对牺牲块执行读取回收操作,所以可考虑存储块的实际损坏程度来调整读取回收操作的频率。
虽然已经针对具体实施例描述了本发明,但是基于本公开,对于本领域技术人员显而易见的是,在不脱离如所附权利要求所限定的本发明的精神和范围的情况下,可进行各种改变和修改。
Claims (20)
1.一种存储器***,包括:
存储器装置;以及
控制器,选择在第一任务和第二任务中需要执行的至少一个共同操作,选择所述第一任务或所述第二任务,并且基于选择的信息选择性地执行有效数据扫描操作、有效数据读取操作、有效数据写入操作和有效数据映射更新操作中的一个或多个,
其中所述第一任务是对主机数据块、***数据块和映射数据块执行的垃圾收集操作,
其中所述第二任务是在所述有效数据映射更新操作期间发生突然断电即SPO之后执行的恢复操作。
2.根据权利要求1所述的存储器***,其中当选择的任务是所述第一任务并且垃圾收集目标块是所述映射数据块时,所述控制器跳过所述有效数据映射更新操作。
3.根据权利要求1所述的存储器***,其中当选择的任务是所述第二任务时,所述控制器跳过所述有效数据写入操作。
4.根据权利要求1所述的存储器***,其中当选择的任务是所述第一任务并且垃圾收集目标块是所述主机数据块和所述***数据块中的任何一个时,所述控制器扫描存储在牺牲块中的有效数据,从所述牺牲块读取所述有效数据,将从所述牺牲块读取的所述有效数据写入目标块,并且更新存储在所述映射数据块中的所述有效数据的映射信息。
5.根据权利要求4所述的存储器***,其中所述牺牲块是无效页面计数等于或大于阈值的块。
6.根据权利要求4所述的存储器***,其中所述目标块是空闲页面计数等于或大于阈值的块。
7.根据权利要求1所述的存储器***,其中当选择的任务是所述第二任务时,所述控制器扫描有效页面,读取所述有效页面,并更新所述有效页面的映射信息,其中将主机开放块的数据存储在所述有效页面中的映射数据的更新操作未完成。
8.根据权利要求7所述的存储器***,其中所述主机开放块是写入主机数据的块。
9.根据权利要求4所述的存储器***,其中所述映射数据块是存储映射数据的块,所述映射数据存储主机数据和***数据的地址信息。
10.根据权利要求3所述的存储器***,其中所述控制器生成NULL信号以跳过所述有效数据写入操作。
11.一种存储器***的操作方法,包括:
检查选择的任务是第一任务还是第二任务;
选择在所述第一任务和所述第二任务中需要执行的一个或多个共同操作;以及
基于选择的信息选择性地执行有效数据扫描操作、有效数据读取操作、有效数据写入操作和有效数据映射更新操作中的一个或多个,
其中所述第一任务是对主机数据块、***数据块和映射数据块执行的垃圾收集操作,
其中所述第二任务是在所述有效数据映射更新操作期间发生突然断电即SPO之后执行的恢复操作。
12.根据权利要求11所述的操作方法,其中当选择的任务是所述第一任务并且垃圾收集目标块是所述映射数据块时,跳过所述有效数据映射更新操作。
13.根据权利要求11所述的操作方法,其中当选择的任务是所述第二任务时,跳过所述有效数据写入操作。
14.根据权利要求11所述的操作方法,其中当选择的任务是所述第一任务并且垃圾收集目标块是所述主机数据块和所述***数据块中的任何一个时,扫描存储在牺牲块中的有效数据,从所述牺牲块读取所述有效数据,将从所述牺牲块读取的所述有效数据写入目标块,并且更新存储在所述映射数据块中的所述有效数据的映射信息。
15.根据权利要求14所述的操作方法,其中所述牺牲块是无效页面计数等于或大于阈值的块。
16.根据权利要求14所述的操作方法,其中所述目标块是空闲页面计数等于或大于阈值的块。
17.根据权利要求11所述的操作方法,其中当选择的任务是所述第二任务时,扫描有效页面,读取所述有效页面,并且更新所述有效页面的映射信息,其中将主机开放块的数据存储在所述有效页面中的映射数据的更新操作未完成。
18.根据权利要求17所述的操作方法,其中所述主机开放块是写入主机数据的块。
19.根据权利要求14所述的操作方法,其中所述映射数据块是存储映射数据的块,所述映射数据存储主机数据和***数据的地址信息。
20.根据权利要求13所述的操作方法,其中生成NULL信号以跳过所述有效数据写入操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0011373 | 2018-01-30 | ||
KR1020180011373A KR20190092054A (ko) | 2018-01-30 | 2018-01-30 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110096385A true CN110096385A (zh) | 2019-08-06 |
CN110096385B CN110096385B (zh) | 2023-07-14 |
Family
ID=67393409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811223632.9A Active CN110096385B (zh) | 2018-01-30 | 2018-10-19 | 存储器***及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10866889B2 (zh) |
KR (1) | KR20190092054A (zh) |
CN (1) | CN110096385B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102583810B1 (ko) * | 2018-05-15 | 2023-10-05 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR20200120159A (ko) * | 2019-04-11 | 2020-10-21 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 이의 동작 방법 |
KR20220025401A (ko) * | 2020-08-24 | 2022-03-03 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 |
KR20220066688A (ko) | 2020-11-16 | 2022-05-24 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
KR20220108342A (ko) | 2021-01-27 | 2022-08-03 | 에스케이하이닉스 주식회사 | 메모리 시스템 내 프리 블록을 확보하는 장치 및 방법 |
US11494102B2 (en) * | 2021-03-09 | 2022-11-08 | Micron Technology, Inc. | Media management operations based on a ratio of valid data |
US11762779B1 (en) * | 2022-07-08 | 2023-09-19 | Micron Technology, Inc. | Data block transfer with extended read buffering |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130173850A1 (en) * | 2011-07-01 | 2013-07-04 | Jae Ik Song | Method for managing address mapping information and storage device applying the same |
US20160179422A1 (en) * | 2014-12-19 | 2016-06-23 | Samsung Electronics Co., Ltd. | Method of performing garbage collection and raid storage system adopting the same |
US20160274808A1 (en) * | 2015-03-20 | 2016-09-22 | Sk Hynix Memory Solutions Inc. | Scalable spor algorithm for flash memories |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102330391B1 (ko) | 2014-09-11 | 2021-11-24 | 삼성전자주식회사 | 저장 장치 및 그것을 포함하는 데이터 저장 시스템의 가비지 컬렉션 방법 |
JP6450598B2 (ja) * | 2015-01-19 | 2019-01-09 | 東芝メモリ株式会社 | 情報処理装置、情報処理方法およびプログラム |
KR102301772B1 (ko) | 2015-03-09 | 2021-09-16 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 가비지 컬렉션 방법 |
KR102547642B1 (ko) * | 2016-05-18 | 2023-06-28 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR20180031853A (ko) * | 2016-09-19 | 2018-03-29 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
TWI628542B (zh) * | 2017-04-21 | 2018-07-01 | 慧榮科技股份有限公司 | 快閃記憶體的垃圾回收斷電回復方法以及使用該方法的裝置 |
KR102259256B1 (ko) * | 2017-05-16 | 2021-06-02 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR102233400B1 (ko) * | 2017-05-29 | 2021-03-26 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR20190000562A (ko) * | 2017-06-23 | 2019-01-03 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR20190030790A (ko) * | 2017-09-14 | 2019-03-25 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
TWI649755B (zh) * | 2017-12-22 | 2019-02-01 | 慧榮科技股份有限公司 | 資料儲存裝置與記憶體裝置之資料處理方法 |
TWI646535B (zh) * | 2017-12-27 | 2019-01-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體操作方法 |
KR102430798B1 (ko) * | 2018-01-11 | 2022-08-10 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
TWI643066B (zh) * | 2018-01-15 | 2018-12-01 | 慧榮科技股份有限公司 | 用來於一記憶裝置中重新使用關於垃圾收集的一目的地區塊之方法、記憶裝置及其控制器以及電子裝置 |
TWI658462B (zh) * | 2018-01-19 | 2019-05-01 | 慧榮科技股份有限公司 | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置 |
US11163679B2 (en) * | 2018-04-04 | 2021-11-02 | SK Hynix Inc. | Garbage collection strategy for memory system and method of executing such garbage collection |
US11112997B2 (en) * | 2018-08-21 | 2021-09-07 | Samsung Electronics Co., Ltd. | Storage device and operating method thereof |
-
2018
- 2018-01-30 KR KR1020180011373A patent/KR20190092054A/ko unknown
- 2018-08-22 US US16/109,070 patent/US10866889B2/en active Active
- 2018-10-19 CN CN201811223632.9A patent/CN110096385B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130173850A1 (en) * | 2011-07-01 | 2013-07-04 | Jae Ik Song | Method for managing address mapping information and storage device applying the same |
US20160179422A1 (en) * | 2014-12-19 | 2016-06-23 | Samsung Electronics Co., Ltd. | Method of performing garbage collection and raid storage system adopting the same |
US20160274808A1 (en) * | 2015-03-20 | 2016-09-22 | Sk Hynix Memory Solutions Inc. | Scalable spor algorithm for flash memories |
Also Published As
Publication number | Publication date |
---|---|
CN110096385B (zh) | 2023-07-14 |
US20190236005A1 (en) | 2019-08-01 |
US10866889B2 (en) | 2020-12-15 |
KR20190092054A (ko) | 2019-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108255739A (zh) | 存储器***及其操作方法 | |
CN110096385A (zh) | 存储器***及其操作方法 | |
CN107632777A (zh) | 存储器***及其操作方法 | |
CN107643985A (zh) | 存储器***及其操作方法 | |
CN107766257A (zh) | 存储器***及其操作方法 | |
CN109388594A (zh) | 存储器***及其操作方法 | |
CN110244907A (zh) | 存储器***及该存储器***的操作方法 | |
CN107622019A (zh) | 存储器***及其操作方法 | |
CN109284202A (zh) | 控制器及其操作方法 | |
CN107818057A (zh) | 存储器***及其操作方法 | |
CN109656472A (zh) | 存储器***及其操作方法 | |
CN109426449A (zh) | 存储器***及其操作方法 | |
CN110058797A (zh) | 存储器***及其操作方法 | |
CN109656837A (zh) | 存储器***及其操作方法 | |
CN108268212A (zh) | 控制器及操作方法 | |
CN110321069A (zh) | 存储器***及其操作方法 | |
CN108932203A (zh) | 数据处理***和数据处理方法 | |
CN110347330A (zh) | 存储器***及其操作方法 | |
CN110531922A (zh) | 存储器***、控制器及其操作方法 | |
CN110457230A (zh) | 存储器***及其操作方法 | |
CN110032471A (zh) | 存储器***及其操作方法 | |
CN110489271A (zh) | 存储器***及其操作方法 | |
CN109656749A (zh) | 存储器***及其操作方法 | |
CN109656469A (zh) | 用于控制一个或多个存储器装置的控制器及其操作方法 | |
CN108932202A (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 |