CN113110799A - 用于针对损耗均衡操作选择牺牲块的控制器和方法 - Google Patents

用于针对损耗均衡操作选择牺牲块的控制器和方法 Download PDF

Info

Publication number
CN113110799A
CN113110799A CN202011035427.7A CN202011035427A CN113110799A CN 113110799 A CN113110799 A CN 113110799A CN 202011035427 A CN202011035427 A CN 202011035427A CN 113110799 A CN113110799 A CN 113110799A
Authority
CN
China
Prior art keywords
block
memory
logical address
candidate
hot
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.)
Withdrawn
Application number
CN202011035427.7A
Other languages
English (en)
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 CN113110799A publication Critical patent/CN113110799A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0703Error 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/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

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)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本公开涉及一种用于操作控制器的方法,该控制器用于控制包括存储块的存储器装置,该方法包括:基于存储块的擦除计数来确定候选块;基于与候选块中的每一个的多个页面相关联的逻辑地址的数据更新计数来确定候选块之中的牺牲块;并且将该牺牲块的数据移动到目的块中。

Description

用于针对损耗均衡操作选择牺牲块的控制器和方法
相关申请的交叉引用
本申请要求于2020年1月9日提交的申请号为10-2020-0002093的韩国专利申请优先权,其通过引用整体并入本文
技术领域
本发明的各个实施例涉及一种用于控制存储器装置的控制器。
背景技术
计算机环境范式已经向普适计算转变,这使得计算系统能够随时随地使用。因此,诸如移动电话、数码相机和膝上型计算机的便携式电子装置的使用迅速增加。这些便携式电子装置通常使用具有用于存储数据的一个或多个存储器装置的存储器系统。存储器系统可以用作便携式电子装置的主存储器装置或辅助存储器装置。
由于没有移动部件,存储器系统提供诸如稳定性和耐久性好、信息存取速度快、功耗低等优点。具有这些优点的存储器系统的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡和固态驱动器(SSD)。
发明内容
本发明的实施例涉及一种能够有效地执行损耗均衡操作的控制器以及用于操作控制器的方法。
根据本发明的实施例,一种用于操作控制器的方法,该控制器用于控制包括存储块的存储器装置,该方法包括:基于存储块的擦除计数来确定候选块;基于与候选块中的每一个的多个页面相关联的逻辑地址的数据更新计数来确定候选块中的牺牲块;以及将牺牲块的数据移动到目的块中。
根据本发明的另一实施例,一种用于控制包括多个存储块的存储器装置的控制器,该控制器包括:存储器,适于存储针对每个逻辑地址的、存储器装置中存储的数据的更新计数并且针对每个存储块存储擦除计数;以及闪存转换层(FTL),适于基于存储块的擦除计数来确定一个或多个候选块,基于与候选块中的每一个的多个页面相关联的逻辑地址的数据更新计数来确定候选块中的牺牲块,以及将牺牲块的数据移动到目的块中。
根据本发明的又一实施例,存储器系统包括:存储器装置,包括多个存储块;以及控制器,联接到多个存储块,适于:基于每个存储块的擦除计数,确定多个存储块中的候选块;基于每个候选块的热页面计数,选择候选块中的牺牲块;并将牺牲块的数据移动到目的块中。
附图说明
图1是示意性地示出根据本发明的实施例的包括控制器的数据处理系统的框图。
图2是示出根据本发明的实施例的控制器的操作的流程图。
图3至图5示出根据本发明的实施例的控制器的操作的示例。
具体实施方式
下面参照附图更详细地描述本发明的各个实施例。然而,本发明可以以不同形式实施,因此不应被解释为限于本文阐述的实施例。相反,提供这些实施例使得本公开是彻底和完整的,并且向本领域技术人员充分传达本发明的范围。在整个本公开中,相同的附图标记在各个附图和实施例中指代相同的部件。此外,在整个说明书中,对“实施例”、“另一实施例”等的参考不一定仅指一个实施例,并且对任何此类短语的不同参考不一定是指相同实施例。
图1是示出根据本发明的实施例的数据处理系统100的框图。
参照图1,数据处理系统100可以包括可操作地联接到存储器系统110的主机102。
主机102可以包括诸如移动电话、MP3播放器和膝上型计算机的各种便携式电子装置中的任意一种,或者包括诸如台式计算机、游戏机、电视(TV)和投影仪的各种非便携式电子装置中的任意一种。
主机102可以包括至少一个操作系统(OS),该操作系统可以管理和控制主机102的全部功能和操作,并提供主机102与使用数据处理系统100或存储器系统110的用户之间的操作。OS可以支持与用户的使用目的和用途相对应的功能和操作。例如,根据主机102的移动性,可以将该OS分为通用OS和移动OS。根据用户的环境,通用OS可分为个人OS和企业OS。
存储器系统110可响应于主机102的请求而操作以存储主机102的数据。存储器系统110的非限制性示例包括固态驱动器(SSD)、多媒体卡(MMC)、安全数字(SD)卡、通用串行总线(USB)装置、通用闪存(UFS)装置、紧凑型闪存(CF)卡、智能媒体卡(SMC)、个人计算机存储卡国际协会(PCMCIA)卡和记忆棒。MMC可包括嵌入式MMC(eMMC)、减小尺寸的MMC(RS-MMC)和/或微型MMC。SD卡可以包括迷你SD卡和/或微型SD卡。
存储器系统110可以由各种类型的存储装置中的任意一种来实现。此类存储装置的示例包括但不限于诸如动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)的易失性存储器装置和诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM),电可擦除可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻式RAM(RRAM或ReRAM)和闪速存储器等非易失性存储器装置。闪速存储器可以具有三维(3D)堆叠结构。
存储器系统110可以包括控制器130和存储器装置150。存储器装置150可以存储主机102的数据,并且控制器130可以控制数据存储到存储器装置150中。
控制器130和存储器装置150可以集成到单个半导体装置中。例如,控制器130和存储器装置150可以集成为一个半导体装置来构成固态驱动器(SSD)。当存储器系统110用作SSD时,可以提高连接到该存储器系统110的主机102的操作速度。另外,控制器130和存储器装置150可以集成为一个半导体装置来构成存储卡,例如个人计算机存储卡国际协会(PCMCIA)卡,紧凑型闪存(CF)卡,智能媒体(SM)卡,记忆棒,包括减小尺寸的MMC(RS-MMC)和微型MMC的多媒体卡(MMC)、包括迷你SD卡、微型SD卡和SDHC卡的安全数字(SD)卡,或通用闪存(UFS)装置。
存储器系统110的非限制性应用示例包括计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航系统、黑盒、数码相机、数字多媒体广播(DMB)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图像记录器、数字图像播放器、数字视频记录器、数字视频播放器、构成数据中心的存储装置、能够在无线环境中发送/接收信息的装置、构成家庭网络的各种电子装置之一、构成计算机网络的各种电子装置之一、构成远程信息处理系统的各种电子装置之一、射频识别(RFID)装置或构成计算系统的各种组件之一。
存储器装置150可以是非易失性存储器装置,并且即使没有供电,也可以保留存储在其中的数据。存储器装置150可以存储通过编程操作从主机102提供的数据,并通过读取操作将其中存储的数据提供到主机102。存储器装置150可以包括多个存储块,存储块中的每一个可以包括多个页面。页面中的每一个可以包括联接到字线的多个存储器单元。在实施例中,存储器装置150可以是闪速存储器。该闪速存储器可以具有三维(3D)堆叠结构。
存储器装置150的编程操作可基于页面单位执行,擦除操作可基于存储块单位执行。换言之,存储器装置150的编程操作和擦除操作的单位可以彼此不同。存储器装置150不支持重写功能。因此,控制器130可以控制存储器装置150在另一页面中将待更新的数据进行编程,以更新存储器装置150的一页面中存储的数据,即现有数据,并使编程了现有数据的页面无效。当存储器装置150中的被无效的页面的数量变得过高时,控制器130可以执行垃圾收集操作以获得存储空间。每当在主机102中更新数据时,存储器装置150的存储数据的物理位置可以改变。控制器130可以保持主机102中使用的逻辑地址和存储器装置150中使用的物理地址之间的映射信息,以便主机102可以访问数据。
存储器装置150可能具有有限的耐久性。耐久性可被定义为在存储器装置150丧失可靠性之前可应用于存储块的擦除操作的次数,即擦除计数。
当编程操作和擦除操作集中在存储块上时,存储器装置150的寿命可能大大缩短。为了防止存储器装置150的寿命突然缩短,可以执行损耗均衡操作,以便在存储器装置150的所有存储块上均等地执行擦除操作。损耗均衡操作可以包括将在存储块之中选择的牺牲块的数据移动到目的块中的操作。损耗均衡操作可以由下面描述的控制器130执行。当控制器130执行损耗均衡操作时,可以对已经具有相对较高的擦除计数并因此具有较短剩余寿命的存储块更少地执行擦除操作,而可以对具有相对较低的擦除计数并因此具有更长剩余寿命的存储块更多地执行擦除操作,从而将存储块的损耗调整到均匀的水平,使得存储块的剩余寿命基本上相同。
控制器130可以响应于来自主机102的请求来控制存储器装置150。例如,控制器130可以将从存储器装置150读取的数据提供到主机102,并将主机102提供的数据存储到存储器装置150中。对于该操作,控制器130可以控制存储器装置150的读取操作、编程操作和擦除操作。
控制器130可以包括主机接口(I/F)132、处理器134、诸如NAND闪存控制器(NFC)的存储器I/F 142和存储器144,所有这些都经由内部总线可操作地联接。
主机I/F 132可以被配置为处理主机102的命令和数据,并且可以通过诸如以下的各种接口协议中的一个或多个与主机102通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串行连接SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)和/或电子集成驱动器(IDE)。
主机I/F 132可以通过被称为主机接口层(HIL)的固件驱动,以便与主机交换数据。
存储器I/F 142可以作为存储器/存储接口,用于接口连接控制器130和存储器装置150,使得控制器130响应于来自主机102的请求控制存储器装置150。当存储器装置150是闪速存储器或具体地是NAND闪速存储器时,存储器I/F 142可以生成用于存储器装置150的控制信号,并在处理器134的控制下处理待提供到存储器装置150的数据。存储器I/F 142可以充当用于处理控制器130和存储器装置150之间的命令和数据的接口(例如,NAND闪存接口)。具体地,存储器I/F 142可以支持控制器130和存储器装置150之间的数据传输。
存储器I/F 142可以通过被称为闪存接口层(FIL)的固件驱动,以便与存储器装置150交换数据。
处理器134可以控制存储器系统110的全部操作。处理器134可以驱动固件来控制存储器系统110的全部操作。该固件可以被称为闪存转换层(FTL)。此外,处理器134可以被实现为微处理器或中央处理单元(CPU)。
控制器130可以执行与从主机102接收到的命令相对应的命令操作。控制器130可以执行前台操作,作为与从主机102接收到的命令相对应的命令操作。例如,控制器130可以执行与写入命令相对应的编程操作、与读取命令相对应的读取操作、与擦除命令相对应的擦除操作以及与设置参数命令或设置特征命令相对应的参数设置操作。
而且,控制器130可以通过处理器134对存储器装置150执行后台操作。例如,后台操作可以包括垃圾收集(GC)操作、损耗均衡(WL)操作、映射清除操作和/或坏块管理操作。
控制器130可以包括FTL 136。该FTL 136可基于存储块的剩余寿命,即擦除计数,来确定用于执行损耗均衡操作的牺牲块。然而,当FTL 136仅基于擦除计数来确定牺牲块时,难以实现损耗均衡操作的目的。
当特定存储块中存储的数据被更新时,现有数据可能被无效。具有存储无效数据的多个页面的存储块可以优先被擦除。具有较大擦除计数的存储块可以通过存储较不频繁更新的数据来防止进一步的擦除操作。
仅使用存储块的擦除计数,可能难以确定存储块中存储的数据是否被频繁更新。当FTL 136将具有较小擦除计数的存储块确定为牺牲块并且将牺牲块的现有数据移动到具有较大擦除计数的存储块中时,存储块可能没有受到足够的保护以防止擦除操作。
根据本发明的实施例,FTL 136可以不仅基于存储块的擦除计数,而且还基于存储块中存储的数据的更新计数来确定牺牲块。下面参照图2至图5描述本发明的实施例。
存储器144可以由易失性存储器实现。例如,存储器144可以由静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)来实现。存储器144可以设置在控制器130内部或外部。图1例示了设置在控制器130内的存储器144。在另一实施例中,存储器144可以由具有在存储器144和控制器130之间传送数据的存储器接口的外部易失性存储器来实现。
如上所述,存储器144可以存储在主机102和存储器装置150之间执行数据写入/读取操作所需的数据以及当执行数据写入/读取操作时的数据。为了存储这样的数据,存储器144可以包括程序存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等。
存储器144可以存储逻辑地址管理(LBA MGMT)表、地址(ADDR)映射表和块管理(MGMT)表。逻辑地址管理表可以按每个逻辑地址来存储存储块中存储的数据的更新计数,并且存储基于更新计数确定的针对逻辑地址中的每一个的数据的属性。地址映射表可以存储逻辑地址和物理地址之间的映射关系。块管理表可以存储存储器装置150的每个存储块的擦除计数,并存储热页面计数,该热页面计数指示每个存储块中存储了多少被频繁更新的数据。参照图3至图5详细描述逻辑地址管理表、地址映射表和块管理表。
图2是示出根据本发明的实施例的控制器130的操作的流程图。
参照图2,在步骤S202中,FTL 136可以基于存储器装置150中的存储块的擦除计数来确定牺牲块的候选块。
例如,FTL 136可以基于擦除计数确定一个或多个存储块作为牺牲块的候选块,并以擦除计数的降序识别候选块。
在步骤S204中,FTL 136可以基于候选块中存储的数据的更新计数来确定候选块中的牺牲块。
例如,FTL 136可以确定每个逻辑地址的数据的更新计数,并且基于相应的更新计数来确定每个逻辑地址是与热数据还是冷数据相关联。热数据可指相对频繁更新的数据,而冷数据可指相对不频繁更新的数据。在下文中,与热数据相关联的逻辑地址被称为热逻辑地址,与冷数据相关联的逻辑地址被称为冷逻辑地址。
在一些实施例中,FTL 136可针对每个存储块基于与热逻辑地址相关联的页面的数量或与冷逻辑地址相关联的页面的数量来确定牺牲块。在下面的描述中,与热逻辑地址相关联的页面可以被称为热页面,与冷逻辑地址相关联的页面可以被称为冷页面。例如,FTL 136可以确定候选块之中存储最小数量的热数据的存储块,即具有最低的热页面计数的块作为牺牲块。
在步骤S206中,FTL 136可以将牺牲块的数据移动到目的地块中。
例如,FTL 136可以控制存储器装置150将牺牲块的数据编程到具有最高擦除计数的块中。
根据本发明的实施例,FTL 136可以通过在存储块中存储不频繁更新的数据来有效地抑制已经具有较高擦除计数的存储块的擦除计数增加。换言之,可以提高FTL 136的损耗均衡性能,使得可以更快地均衡具有较大擦除计数的存储块和具有较低擦除计数的存储块的剩余寿命。这样,可以进一步提高存储器系统110的性能和寿命。
图3示出根据本发明的实施例的控制器130的操作。具体地,图3是用于描述FTL136基于逻辑地址管理表将存储器装置150的每个逻辑地址区分为热逻辑地址或冷逻辑地址的方法的示图。
参照图3,存储器144可以包括或存储逻辑地址管理表,该表存储每个逻辑地址LBA的数据更新计数UPDATE COUNT和标志FLAG。该标志可以指示每个逻辑地址是热逻辑地址还是冷逻辑地址。在图3的示例中,标志“0”指示逻辑地址是冷逻辑地址,而标志“1”指示逻辑地址是热逻辑地址。然而,这种位约定可以颠倒过来。
逻辑地址管理表中的数据更新计数和标志可以根据从主机102接收到的命令而改变。图3的第一到第四表TABLE1到TABLE4可以表示逻辑地址管理表的数据更新计数和标志随时间而变化。
FTL 136可基于从主机102接收到的写入命令和相关联的逻辑地址来对每个逻辑地址的数据的每次更新进行计数,并增加相应的更新计数。当与逻辑地址相对应的数据在主机102中被更新时,主机102可以向存储器系统110提供将更新的数据写入该逻辑地址处的命令。在图3的示例中,当从主机102接收到与逻辑地址相关联的写入命令时,FTL 136可以将该逻辑地址的数据更新计数增加“1”(参见TABLE 2)。
在本发明的实施例中,FTL 136可以将所有逻辑地址的数据更新计数周期性地减少设定量。在图3的示例中,每当主机102接收到命令的次数,即命令接收计数,变为“5”的倍数(例如,10)时,FTL 136可以将所有逻辑地址的数据更新计数减少“1”(参见TABLE 3)。命令接收计数可以包括写入命令接收计数和读取命令接收计数。当FTL 136周期性地减少所有逻辑地址的数据更新计数时,可以减少过去的数据更新计数对针对每个逻辑地址确定热逻辑地址或冷逻辑地址的影响。
在本发明的实施例中,FTL 136可以基于逻辑地址的数据更新计数将逻辑地址确定为冷逻辑地址或热逻辑地址。在图3的示例中,当冷逻辑地址的数据更新计数增加到大约“10”或更多时,FTL 136可以将该逻辑地址更改为热逻辑地址并显示标志“1”(参见TABLE2)。当热逻辑地址的数据更新计数减少到大约“8”或更少时,FTL 136可以将该逻辑地址更改为冷逻辑地址并显示标志“0”(参见TABLE 4)。
第一表TABLE1可以表示第一时间的逻辑地址管理表。在第一时间的第一到第四逻辑地址的数据更新计数可以分别为“2”、“9”、“3”和“9”。第一到第四逻辑地址的标志可以分别是“0”、“0”、“0”和“0”,这表示第一到第四逻辑地址都是冷逻辑地址。
第二表TABLE2可以表示在第一时间之后的第二时间的逻辑地址管理表。图3示出在第一时间和第二时间之间接收到针对第二逻辑地址的一个写入命令,并且进一步接收到两个读取命令的状态。在第二时间,第二逻辑地址的数据更新计数可以是“10”。因为曾为冷逻辑地址的第二逻辑地址的数据更新计数大于或等于“10”,所以FTL 136可以将第二逻辑地址更改为热逻辑地址。第二表TABLE2示出与第二逻辑地址相关联的标志被更改为“1”的状态。
第三表TABLE3可以表示在第二时间之后的第三时间的逻辑地址管理表。图3示出在第二时间和第三时间之间接收到针对第四逻辑地址的两个写入命令的状态。FTL 136可将第四逻辑地址的数据更新计数增加“2”。因为第三时间从主机102接收到的命令的数量是5,所以FTL 136可以将第一到第四逻辑地址的数据更新计数减少“1”。在第三时间,第一到第四逻辑地址的数据更新计数可以分别被改变为“1”、“9”、“2”和“10”。因为曾作为冷逻辑地址的第四逻辑地址的数据更新计数变得大于或等于“10”,所以FTL 136可以将与第四逻辑地址相关联的标志更改为“1”。
第四表TABLE4表示第三时间之后的第四时间的逻辑地址管理表。图3示出在第三时间和第四时间之间接收到五个读取命令的状态。因为在第四时间从主机102接收到的命令的数量是5,所以FTL 136可以将第一到第四逻辑地址的数据更新计数减少“1”。在第四时间,第一到第四逻辑地址的数据更新计数可以分别被改变为“0”、“8”、“1”和“9”。FTL 136可以将与第二逻辑地址相关联的标志更改为“0”,因为曾作为热逻辑地址的第二逻辑地址的数据更新计数变得小于或等于“8”。
图4示出根据本发明的实施例的控制器130的操作。具体地,图4示出FTL 136如何基于逻辑地址管理表和地址映射表对每个存储块执行热页面计数操作的方法。
参照图4,存储器144存储逻辑地址管理表和地址映射表。
图4的左表示出逻辑地址管理表的一部分。具体地,图4所示的逻辑地址管理表表示每个逻辑地址LBA的标志FLAG;省略数据更新计数。如图3所示,标志可以用“1”表示热逻辑地址,用“0”表示冷逻辑地址。
图4的右表可以示出地址映射表。具体地,图4所示的地址映射表可以表示分别与第一存储块BLOCK1的第一到第五页面PAGE1到PAGE5相关联的逻辑地址。
存储块可以包括页面,页面中的每一个可以与逻辑地址相关联。在图4的示例中,第一存储块BLOCK1的第一页面PAGE1可以存储与第一逻辑地址LBA1相对应的数据。FTL 136可基于与存储块中的页面相关联的热逻辑地址或冷逻辑地址的数量来确定在存储块中存储了多少冷数据。在下面的描述中,与热逻辑地址相关联的页面可以被称为热页面,与冷逻辑地址相关联的页面可以被称为冷页面。
FTL 136可以参照逻辑地址管理表和地址映射表来对存储块包括多少热页面进行计数。参照图4的地址映射表,第一存储块BLOCK 1的第一到第五页面PAGE1到PAGE5可以分别与第一、第二、第七、第八和第九逻辑地址相关联。参照图4的逻辑地址管理表,第一、第二、第七、第八和第九逻辑地址的标志可以分别是“0”、“0”、“1”、“0”和“1”。因此,第一存储块的第一、第二和第四页面可以是与冷逻辑地址相关联的冷页面,并且第三页面和第五页面可以是与热逻辑地址相关联的热页面。FTL136可将第一存储块BLOCK1的热页面计数确定为“2”。
图5示出根据本发明的实施例的控制器130的操作。具体地,图5是用于描述FTL136如何通过参照块管理表来确定候选块并确定候选块中的牺牲块的示图。
参照图5,存储器144包括或存储块管理表。图5示例性地示出包括针对每个存储块的擦除计数和热页面计数的块管理表。例如,第一存储块可以具有擦除计数15,并且目前可以包括50个当前热页面。
如参照图2所述,FTL 136可以通过参考块管理表,以擦除计数的降序确定一个或多个存储块作为候选块。在图5的示例中,FTL 136可以确定作为具有最低擦除计数的块的第二存储块和第三存储块为候选块。图5中所示的虚线可以表示候选块。
FTL 136可以通过参照块管理表来选择候选块之中存储最多冷数据的存储块作为牺牲块。在图5的示例中,FTL 136可将候选块之中具有最低热页面计数的存储块确定为存储最多冷数据的存储块。在图5的示例中,第二存储块具有最低热页面计数;因此,FTL 136可以将第二和第三存储块中的第二存储块确定为牺牲块。
FTL 136可以将牺牲块的数据移动到目的块中。FTL 136可以通过参考块管理表来确定具有最高擦除计数的存储块作为目的块。
本发明的概念和精神不限于参照图3到图5所描述的示例。例如,逻辑地址管理表可利用标志“1”来指示冷逻辑地址并且利用标志“0”来指示热逻辑地址。块管理表可以存储针对每个存储块的冷页面计数,而不是存储针对每个存储块的热页面计数。
根据本发明的实施例,FTL 136可以控制存储器装置150将具有较低擦除计数并存储大量冷数据的存储块的数据存储在具有较大擦除计数的存储块中。FTL 136可以将具有较高擦除计数的存储块的数据与具有较低擦除计数的存储块的数据交换,同时减少具有较高擦除计数的存储块中存储的数据量。FTL 136可以通过防止在具有较大擦除计数的存储块上执行擦除操作来更快地均衡存储块的擦除计数。
本发明的实施例提供了一种可以通过有效地执行损耗均衡操作来提高存储器系统的性能和寿命的控制器,以及一种操作该控制器的方法。
虽然已经关于具体实施例对本发明进行了说明和描述,但是对于本领域技术人员来说,显而易见的是,可以在不脱离如所附权利要求所定义的本发明的精神和范围的情况下进行各种改变和修改。因此,本发明涵盖落入权利要求范围内的所有此类改变和修改。

Claims (20)

1.一种用于操作控制器的方法,所述控制器用于控制包括存储块的存储器装置,所述方法包括:
基于所述存储块的擦除计数来确定候选块;
基于与所述候选块中的每一个中的多个页面相关联的逻辑地址的数据更新计数来确定所述候选块之中的牺牲块;
将所述牺牲块的数据移动到目的块中。
2.根据权利要求1所述的方法,其中基于所述存储块的所述擦除计数来确定所述候选块包括:
在所述存储块之中以所述擦除计数的降序来确定存储块作为所述候选块。
3.根据权利要求2所述的方法,其中在所述存储块之中以所述擦除计数的降序来确定存储块作为所述候选块包括:
确定具有最低擦除计数的存储块作为所述候选块。
4.根据权利要求2所述的方法,其中基于与所述候选块中的每一个中的多个页面相关联的逻辑地址的数据更新计数来确定所述候选块之中的牺牲块包括:
基于每个逻辑地址的数据更新计数,确定所述逻辑地址中的每一个是热逻辑地址还是冷逻辑地址;以及
基于与所述多个页面相关联的所述逻辑地址之中的热逻辑地址或冷逻辑地址的数量来确定所述候选块之中的牺牲块。
5.根据权利要求4所述的方法,其中基于与所述多个页面相关联的所述逻辑地址中的所述热逻辑地址或所述冷逻辑地址的数量来确定所述候选块之中的所述牺牲块包括:
将具有最高数量的冷逻辑地址的候选块确定为所述牺牲块。
6.根据权利要求4所述的方法,其中基于与所述多个页面相关联的所述逻辑地址中的所述热逻辑地址或所述冷逻辑地址的数量来确定所述候选块之中的所述牺牲块包括:
确定具有最低数量的热逻辑地址的候选块作为所述牺牲块。
7.根据权利要求2所述的方法,进一步包括:
确定所述存储块之中具有最高擦除计数的块作为所述目的块。
8.根据权利要求4所述的方法,进一步包括:
当从主机接收到与逻辑地址相关联的写入命令时,增加所述逻辑地址的数据更新计数。
9.根据权利要求8所述的方法,进一步包括:
每当从所述主机接收到的命令的数量达到设定数量时,减小与所述存储器装置中存储的数据相关联的所有逻辑地址的数据更新计数。
10.根据权利要求8所述的方法,其中基于每个逻辑地址的所述数据更新计数来确定所述逻辑地址中的每一个是热逻辑地址还是冷逻辑地址包括:
当冷逻辑地址的数据更新计数大于或等于第一阈值时,将所述冷逻辑地址更改为热逻辑地址;以及
当热逻辑地址的数据更新计数小于或等于第二阈值时,将所述热逻辑地址更改为冷逻辑地址。
11.一种控制器,控制包括多个存储块的存储器装置,所述控制器包括:
存储器,存储针对每个逻辑地址的、所述存储器装置中存储的数据的数据更新计数,并存储针对每个存储块的擦除计数;以及
闪存转换层即FTL,基于所述存储块的擦除计数来确定候选块,基于与所述候选块中的每一个中的多个页面相关联的逻辑地址的数据更新计数来确定所述候选块之中的牺牲块,并且将所述牺牲块的数据移动到目的块中。
12.根据权利要求11所述的控制器,其中所述FTL在所述存储块之中以所述擦除计数减小的降序来确定存储块作为所述候选块。
13.根据权利要求12所述的控制器,其中所述FTL确定具有最低擦除计数的存储块作为所述候选块。
14.根据权利要求12所述的控制器,其中所述FTL
根据每个逻辑地址的数据更新计数,确定所述逻辑地址中的每一个是热逻辑地址还是冷逻辑地址,以及
基于与多个页面相关联的逻辑地址中的热逻辑地址或冷逻辑地址的数量来确定所述候选块之中的所述牺牲块。
15.根据权利要求14所述的控制器,其中所述FTL确定具有最高数量的冷逻辑地址的候选块作为所述牺牲块。
16.根据权利要求14所述的控制器,其中所述FTL确定具有最低数量的热逻辑地址的候选块作为所述牺牲块。
17.根据权利要求14所述的控制器,其中当从主机接收到与逻辑地址相关联的写入命令时,所述FTL增加所述逻辑地址的数据更新计数。
18.根据权利要求17所述的控制器,其中每当从所述主机接收到的命令的数量达到设定数量时,所述FTL减小与所述存储器装置中存储的数据相关联的所有逻辑地址的数据更新计数。
19.根据权利要求17所述的控制器,其中
当冷逻辑地址的数据更新计数大于或等于第一阈值时,所述FTL将所述冷逻辑地址更改为热逻辑地址;并且
当热逻辑地址的数据更新计数小于或等于第二阈值时,所述FTL将所述热逻辑地址更改为冷逻辑地址。
20.一种存储器系统,包括:
存储器装置,包括多个存储块;以及
控制器,联接到所述多个存储块:
基于每个存储块的擦除计数,确定所述多个存储块之中的候选块;
基于每个候选块的热页面计数,选择所述候选块之中的牺牲块;以及
将所述牺牲块的数据移动到目的块中。
CN202011035427.7A 2020-01-09 2020-09-27 用于针对损耗均衡操作选择牺牲块的控制器和方法 Withdrawn CN113110799A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2020-0002903 2020-01-09
KR1020200002903A KR20210089853A (ko) 2020-01-09 2020-01-09 컨트롤러 및 컨트롤러의 동작방법

Publications (1)

Publication Number Publication Date
CN113110799A true CN113110799A (zh) 2021-07-13

Family

ID=76709023

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011035427.7A Withdrawn CN113110799A (zh) 2020-01-09 2020-09-27 用于针对损耗均衡操作选择牺牲块的控制器和方法

Country Status (3)

Country Link
US (1) US11449418B2 (zh)
KR (1) KR20210089853A (zh)
CN (1) CN113110799A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4120089A1 (en) * 2021-07-15 2023-01-18 Samsung Electronics Co., Ltd. Systems and methods for load balancing in a heterogeneous memory system
US11922034B2 (en) 2021-09-02 2024-03-05 Samsung Electronics Co., Ltd. Dual mode storage device

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11698732B2 (en) * 2021-02-19 2023-07-11 Micron Technology, Inc. Storage provisioning in a data storage device
US11790998B2 (en) * 2021-08-25 2023-10-17 Micron Technology, Inc. Eliminating write disturb for system metadata in a memory sub-system
US11960753B2 (en) * 2021-08-25 2024-04-16 Western Digital Technologies, Inc. Solution for super device imbalance in ZNS SSD
US11966618B2 (en) 2021-08-25 2024-04-23 Western Digital Technologies, Inc. Purposeful super device imbalance for ZNS SSD efficiency
CN116107491A (zh) * 2021-11-10 2023-05-12 三星电子株式会社 存储器控制器、存储装置和存储装置的操作方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120317337A1 (en) 2011-06-09 2012-12-13 Microsoft Corporation Managing data placement on flash-based storage by use
KR102639670B1 (ko) 2016-06-30 2024-02-26 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작방법
KR20180064198A (ko) * 2016-12-05 2018-06-14 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR20180065075A (ko) 2016-12-06 2018-06-18 에스케이하이닉스 주식회사 메모리 시스템 및 이를 이용한 웨어-레벨링 방법
US10445230B2 (en) * 2017-12-08 2019-10-15 Macronix International Co., Ltd. Managing block arrangement of super blocks

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4120089A1 (en) * 2021-07-15 2023-01-18 Samsung Electronics Co., Ltd. Systems and methods for load balancing in a heterogeneous memory system
US11922034B2 (en) 2021-09-02 2024-03-05 Samsung Electronics Co., Ltd. Dual mode storage device

Also Published As

Publication number Publication date
US20210216446A1 (en) 2021-07-15
US11449418B2 (en) 2022-09-20
KR20210089853A (ko) 2021-07-19

Similar Documents

Publication Publication Date Title
CN110781096B (zh) 用于通过预测需求时间来执行垃圾收集的设备和方法
US11449418B2 (en) Controller and method for selecting victim block for wear leveling operation
KR20200022118A (ko) 데이터 저장 장치 및 그 동작 방법
US10860231B2 (en) Memory system for adjusting map segment based on pattern and operating method thereof
US20200320012A1 (en) Memory system and method for operating the same
US11526296B2 (en) Controller providing host with map information of physical address for memory region, and operation method thereof
US11392309B2 (en) Memory system for performing migration operation and operating method thereof
US11334272B2 (en) Memory system and operating method thereof
CN111581121B (zh) 用于管理存储器系统中的映射数据的方法和设备
US11422930B2 (en) Controller, memory system and data processing system
CN114371812A (zh) 控制器及其操作方法
US11409444B2 (en) Memory system and operation method thereof
US11775209B2 (en) Controller and operation method thereof
US20220012180A1 (en) Memory system for meta data management and operating method of memory system
US11392310B2 (en) Memory system and controller
CN115080457A (zh) 控制器及其操作方法
CN114328294A (zh) 控制器、其操作方法以及包括控制器的存储器系统
KR20220072357A (ko) 컨트롤러, 및 이를 포함하는 메모리 시스템 및 데이터 처리 시스템
CN114691534A (zh) 控制器以及包括控制器的存储器系统
CN111831577A (zh) 用于确定存储器系统中的存储块的特性的设备和方法
CN114518840A (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
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20210713