CN111273856A - 控制器以及控制器的操作方法 - Google Patents

控制器以及控制器的操作方法 Download PDF

Info

Publication number
CN111273856A
CN111273856A CN201911211965.4A CN201911211965A CN111273856A CN 111273856 A CN111273856 A CN 111273856A CN 201911211965 A CN201911211965 A CN 201911211965A CN 111273856 A CN111273856 A CN 111273856A
Authority
CN
China
Prior art keywords
memory
blocks
free blocks
block
controller
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
Application number
CN201911211965.4A
Other languages
English (en)
Other versions
CN111273856B (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 CN111273856A publication Critical patent/CN111273856A/zh
Application granted granted Critical
Publication of CN111273856B publication Critical patent/CN111273856B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • 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/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/70Details relating to dynamic memory management
    • G06F2212/702Conservative garbage collection
    • 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/7205Cleaning, compaction, garbage collection, erase control
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明提供一种控制器的操作方法,该控制器控制包括多个存储块的存储器装置。该操作方法可以包括:当存储器装置中的真实空闲块的数量小于第一阈值时,基于各个存储块的有效页面计数计算存储器装置中的扩展空闲块的数量;并且当扩展空闲块的数量小于第二阈值时,执行垃圾收集操作。

Description

控制器以及控制器的操作方法
相关申请的交叉引用
本申请要求于2018年12月5日提交的申请号为10-2018-0155011的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
各个实施例涉及一种控制器,并且更特别地,涉及一种用于控制存储器装置的控制器。
背景技术
计算机环境范例已经转变成能够随时随地使用计算系统的普适计算。因此,诸如移动电话、数码相机和膝上型计算机的便携式电子装置的使用已经迅速增加。这些便携式电子装置通常使用具有一个或多个存储器装置的存储器系统来存储数据。存储器系统可以用作便携式电子装置的主存储器装置或辅助存储器装置。
由于存储器系统不具有移动部件,因此存储器系统提供诸如以下的优点:优异的稳定性和耐用性、高信息访问速度和低功耗。具有这些优点的存储器系统的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡以及固态驱动器(SSD)。
发明内容
各个实施例涉及一种能够防止可由垃圾收集导致的存储器系统性能劣化的控制器。
在实施例中,提供一种控制器的操作方法,该控制器控制包括多个存储块的存储器装置。该操作方法可以包括:当存储器装置中的真实(substantive)空闲块的数量小于第一阈值时,基于各个存储块的有效页面计数计算存储器装置中的扩展(extended)空闲块的数量;并且当扩展空闲块的数量小于第二阈值时,执行垃圾收集操作。
在实施例中,提供一种控制器,该控制器控制包括多个存储块的存储器装置。该控制器可以包括:存储器,适于存储各个存储块的有效页面计数;以及处理器,适于当存储器装置中的真实空闲块的数量小于第一阈值时,基于各个存储块的有效页面计数计算存储器装置中的扩展空闲块的数量;并且当扩展空闲块的数量小于第二阈值时,执行垃圾收集操作。
在实施例中,提供一种控制器的操作方法,该控制器用于控制包括多个存储块的存储器装置。该操作方法可以包括:在每次访问存储块时,更新真实空闲块的第一数量和伪空闲块的第二数量,伪空闲块具有预定数量或更少的有效页面;并且当第一数量为第一阈值或更少并且第一数量与第二数量之和为第二阈值或更少时,控制存储器装置对存储块执行垃圾收集操作。
在实施例中,提供一种控制器的操作方法,该控制器用于控制包括多个存储块的存储器装置。该操作方法可以包括:在每次访问存储块时,更新真实空闲块的第一数量和扩展空闲块的第二数量,第二数量是存储块的总有效页面的比率与存储块的总数量的乘积;并且当第一数量为第一阈值或更少并且第二数量为第二阈值或更少时,控制存储器装置对存储块执行垃圾收集操作。
附图说明
图1示出由控制器控制的存储器装置中包括的存储器单元阵列。
图2A和图2B示出包括多个存储块的存储器装置。
图3A和图3B是示出当根据相关技术执行垃圾收集操作时,存储器装置中真实空闲块的数量和存储器装置的吞吐量的曲线图。
图4示意性地示出根据实施例的包括控制器的存储器系统。
图5示出根据实施例的块状态表和块数量表。
图6A和图6B是示出根据实施例的控制器的操作的流程图。
图7示出根据实施例的块状态表和块数量表。
图8A和图8B是示出根据实施例的控制器的操作的流程图。
图9A和图9B是示出当根据实施例执行垃圾收集操作时存储器系统的吞吐量的曲线图。
图10至图18是示意性示出根据本发明的各个实施例的数据处理系统的应用示例的示图。
具体实施方式
下面将参照附图更详细地描述各个实施例。以下描述将仅集中于理解根据本实施例的操作所需的部分,并且将排除对其它部分的描述,以免不必要地模糊本发明的主题。
在下文中,将参照附图更详细地描述各个实施例。
参照图1,可以对应于(在图4中描述的)存储器系统110的存储器装置150中包括的多个存储块152至156中的任意一个的存储块330可以包括联接到多个相应位线BL0至BLm-1的多个单元串340。每列的单元串340可以包括一个或多个漏极选择晶体管DST和一个或多个源极选择晶体管SST。多个存储器单元MC0至MCn-1可以串联地联接在漏极选择晶体管DST和源极选择晶体管SST之间。在实施例中,存储器单元晶体管MC0至MCn-1中的每一个可以通过能够存储多位数据信息的MLC来实现。单元串340中的每一个可以电联接到多个位线BL0至BLm-1之中的相应位线。例如,如图1所示,第一单元串联接到第一位线BL0,并且最后单元串联接到最后位线BLm-1。作为参照,在图1中,“DSL”表示漏极选择线,“SSL”表示源极选择线,“CSL”表示共源线。
虽然图1示出NAND闪速存储器单元,但是本发明不限于此方式。要注意的是,存储器单元可以是NOR闪速存储器单元,或者包括其中组合的两个或更多个类型的存储器单元的混合闪速存储器单元。而且,要注意的是,存储器装置150可以是包括作为电荷存储层的导电浮栅的闪速存储器装置,或者包括作为电荷存储层的绝缘层的电荷捕获闪存(CTF)存储器装置。
存储器装置150可以进一步包括提供字线电压的电压供应310,字线电压包括根据操作模式供应至字线的编程电压、读取电压和通过电压。电压供应310的电压生成操作可以由控制电路(未示出)来控制。在控制电路的控制下,电压供应310可以选择存储器单元阵列的存储块(或扇区)中的一个,选择所选择的存储块的字线中的一个,并且按可能的需要将字线电压提供给所选择的字线和未选择的字线。
存储器装置150可以包括由控制电路控制的读取和写入(读取/写入)电路320。在验证/正常读取操作期间,读取/写入电路320可以作为用于从存储器单元阵列读取数据的读出放大器而操作。在编程操作期间,读取/写入电路320可以作为用于根据待存储在存储器单元阵列中的数据来驱动位线的写入驱动器而操作。在编程操作期间,读取/写入电路320可以从缓冲器(未示出)接收待存储到存储器单元阵列中的数据,并根据所接收的数据驱动位线。读取/写入电路320可以包括分别对应于列(或位线)或者列对(或位线对)的多个页面缓冲器322至326,并且页面缓冲器322至326中的每一个可以包括多个锁存器(未示出)。
根据一个存储器单元中可以存储的位的数量,存储器装置150中包括的存储块中的每一个可以是单层单元(SLC)存储块、多层单元(MLC)存储块、三层单元(TLC)存储块、四层单元(QLC)存储块以及能够在一个存储器单元中存储五位或更多位数据的多层单元存储块之中的一种。
存储器装置150可以由二维(2D)或三维(3D)存储器装置来实现。存储器装置150可以由具有3D堆叠结构的非易失性存储器装置来实现。当存储器装置150具有3D结构时,存储器装置150可以包括多个存储块BLOCK0至BLOCKN-1。存储块152至156中的每一个可以以3D结构(或垂直结构)来实现。例如,存储块152至156可以是具有在例如x轴方向、y轴方向和z轴方向的第一至第三方向上延伸的尺寸的三维结构。
根据本发明的实施例,存储器装置150被描述为非易失性存储器,诸如闪速存储器,例如NAND闪速存储器。然而,存储器装置150可以被实现为以下中的任意一种:相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM或ReRAM)、铁电随机存取存储器(FRAM)、自旋转移力矩磁性随机存取存储器(STT-RAM或STT-MRAM)。
图2A和图2B示出包括多个存储块的存储器装置150。
图2A和图2B示出存储器装置150包括五个存储块。存储块中的每一个可以对应于参照图1描述的存储块330。
存储块中的每一个可以包括联接至多个字线的存储器单元。当联接至一个字线的存储器单元被称为页面时,存储块中的每一个可以包括多个页面。图2A和图2B中所示的存储块中的每一个可以包括十个页面。
图1的电压供应310可以将电压施加到字线以执行写入操作。也就是说,存储器装置150的写入操作的最小单元可以对应于联接至一个字线的存储器单元,即一个页面。
电压供应310可以将电压施加到存储块330中包括的所有字线以执行擦除操作,从而去除被捕获在存储块330中包括的存储器单元中的电荷。也就是说,存储器装置150的擦除操作的最小单元可以对应于一个存储块。
也就是说,可以已不同的单位执行存储器装置150的写入操作和擦除操作,并且存储器装置150可以不支持重写操作。因此,为了更新存储在某个页面中的数据,用于控制存储器装置150的控制器可以控制存储器装置150将待更新的数据写入到另一页面,并且使现有页面无效。
在图2A和图2B中,作为参考,有效页面由“Valid”表示,无效页面由“Invalid”表示,并且经擦除页面由“Erase”表示。
图2A示出仅第五块Block5是真实空闲块而其它存储块是脏块的情况。真实空闲块可以指示所有页面是经擦除页面或无效页面的存储块,即将很快能够被擦除的存储块。脏块可以指示不是真实空闲块的存储块。
参照图2A,当存储器装置150中的无效页面的数量增加时,存储器装置150可能缺少能够存储数据的存储器空间。
控制器控制存储器装置150将牺牲块的有效页面写入到目标块,并且控制存储器装置150对牺牲块执行擦除操作以便去除存储块的无效页面的一系列操作可以被称为垃圾收集(GC)操作。
图2B示出在图2A的存储器装置150中已经执行了GC操作。当第二至第四块Block2到Block4的有效数据被收集在第五块Block5中时,可以生成三个真实空闲块。参照图2B,存储器装置150可以执行GC操作以确保能够存储数据的存储器空间。
GC操作是后台操作。虽然为了确保存储器装置150的存储器空间而需要GC操作,但是在执行GC操作的同时,可能会降低存储器系统的前台操作的吞吐量。具体地,存储器装置150在执行作为GC操作的具体操作的读取/写入/擦除操作的同时,不能同时根据主机的请求执行读取/写入操作。因此,可能会降低前台操作的吞吐量。
当在存储器装置150中未存储大量数据时,存储器装置150可以不执行GC操作以便维持吞吐量。因此,根据现有技术,当存储器装置150中包括的真实空闲块的数量小于阈值时,控制器可以执行GC操作。
图3A和图3B是示出当根据相关技术执行GC操作时,存储器装置150中的真实空闲块的数量和存储器装置150的吞吐量的曲线图。图3A和图3B示出当执行将数据连续写入到存储器装置150的测试时,存储器装置150中的真实空闲块的数量以及存储器装置150的吞吐量。
图3A示出根据存储在存储器装置150中的有效数据量的真实空闲块的数量。在图3A中,横轴可以指示时间,且纵轴可以指示真实空闲块的数量。
参照图3A中的时间点t1和t2,即使没有存储大量有效数据,真实空闲块的数量也可能达到待执行GC操作的阈值。这是因为在更新存储在存储器装置150中的数据的同时,出现包括大量无效页面的存储块,诸如图2A的第二至第四块Block2至Block4。
重新参照图2A,存储器装置150中的真实空闲块的数量可以对应于存储块的总数量的20%。然而,由于在图2A中存储器装置150的整个页面的仅26%是有效页面,因此用户可以认识到仅使用了存储器装置150的存储器空间的26%。
此时,当如图2B所示执行GC操作时,包括多个无效页面的存储块的有效数据可以被收集在真实空闲块中,使得生成多个真实空闲块。图3A示出在时间点t1和t2已执行GC操作之后,存储器装置150中的真实空闲块的数量立即增加。
图3B是示出根据存储在存储器装置150中的有效数据量的存储器系统的实际吞吐量的曲线图。在图3B中,横轴可以指示时间,且纵轴可以指示存储器系统的吞吐量。图3B的横轴可以与图3A的横轴比例相同。
参照图3B,当存储器装置150的大部分的存储器空间未被使用时,即使在例如时间点t1和t2执行GC操作,也可能会降低存储器装置150的性能。
当大部分的存储器空间未被使用时,用户可能期望将不执行GC操作,并且存储器装置150将表现出高性能。然而,根据基于真实空闲块的数量执行GC操作的相关技术,即使当如参照图2A至图3B所描述的大部分的存储器空间未被使用时,仍可以执行GC操作。因此,根据相关技术,存储器装置150可能不会表现出用户所期望的性能。
根据实施例,作为是否执行GC操作的参考的存储块可以被定义为扩展空闲块。扩展空闲块可以包括真实空闲块和伪空闲块。用于控制存储器装置150的控制器可以基于扩展空闲块的数量来执行GC操作。
在实施例中,可以将包括相对少数量的有效页面的存储块定义为伪空闲块。此外,控制器可以基于真实空闲块的数量和伪空闲块的数量来计算扩展空闲块的数量,并且基于扩展空闲块的数量执行GC操作。
在实施例中,控制器可以基于存储器装置150的总有效页面计数来计算扩展空闲块的数量,并且基于扩展空闲块的数量来执行GC操作。
当基于扩展空闲块的数量执行GC操作时,即使存储器装置150包括少数量的真实空闲块,当未在存储器装置150中存储大量的有效数据时,控制器也可以不会执行GC操作。因此,包括存储器装置150的存储器系统可以提供用户所期望的性能。
图4示意性地示出根据实施例的包括控制器130的存储器系统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)和静态RAM(SRAM)的易失性存储器装置,以及诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻式RAM(RRAM或ReRAM)和闪速存储器的非易失性存储器装置。闪速存储器可以具有三维(3D)堆叠结构。
存储器系统110可以包括存储器装置150和控制器130。
控制器130和存储器装置150可以被集成到单个半导体装置中,该单个半导体装置可以被包括在如上所例示的各种类型的存储器系统中。例如,控制器130和存储器装置150可以被集成为一个半导体装置以构成固态驱动器(SSD)。当存储器系统110用作SSD时,可以提高连接到存储器系统110的主机102的操作速度。另外,控制器130和存储器装置150可以被集成为一个半导体装置以构成存储卡。例如,控制器130和存储器装置150可以构成诸如以下的存储卡:个人计算机存储卡国际协会(PCMCIA)卡,紧凑型闪存(CF)卡,智能媒体(SM)卡,记忆棒,包括尺寸减小的MMC(RS-MMC)和微型MMC的多媒体卡(MMC),包括迷你SD、微型SD和SDHC的安全数字(SD)卡,或通用闪存(UFS)装置。
存储器系统110的非限制性应用示例可以包括计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、平板计算机、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航系统、黑盒、数码相机、数字多媒体广播(DMB)播放器、三维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、构成数据中心的存储装置、能够在无线环境下传送/接收信息的装置、构成家庭网络的各种电子装置中的一种、构成计算机网络的各种电子装置中的一种、构成远程信息处理网络的各种电子装置中的一种、射频识别(RFID)装置或构成计算系统的各种组件中的一种。
存储器装置150可以是非易失性存储器装置,并且即使不供应电力也可保留其中存储的数据。存储器装置150可以通过写入操作来存储从主机102提供的数据,并且通过读取操作将存储在其中的数据提供至主机102。存储器装置150可以包括多个存储块152、154、156……(在下文中,称为“存储块152至156”),多个存储块152至156中的每一个可以包括多个页面,并且多个页面中的每一个可以包括联接到字线的多个存储器单元。在实施例中,存储器装置150可以是闪速存储器。闪速存储器可具有三维(3D)堆叠结构。
已经参照图1详细地描述存储器装置150的结构。
控制器130可以响应于来自主机102的请求来控制存储器装置150。例如,控制器130可以将从存储器装置150读取的数据提供至主机,并可以将从主机提供的数据存储到存储器装置150中。对于该操作,控制器130可以控制存储器装置150的读取操作、写入操作、编程操作和擦除操作。
控制器130可以包括全部经由内部总线可操作地联接的主机接口(I/F)132、处理器134、诸如NAND闪速控制器(NFC)的存储器I/F142以及存储器144。
主机接口132可以被配置成处理主机102的命令和数据,并可以通过诸如以下的各种接口协议中的一种或多种与主机102通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)以及电子集成驱动器(IDE)。
主机接口132可以通过称为主机接口层(HIL)的固件来驱动,以便与主机交换数据。
存储器I/F 142可以用作用于将控制器130和存储器装置150接口连接的存储器/存储接口,使得控制器130响应于来自主机102的请求来控制存储器装置150。当存储器装置150是闪速存储器或具体地是NAND闪速存储器时,存储器I/F 142可以在处理器134的控制下生成用于存储器装置150的控制信号并处理待提供至存储器装置150的数据。存储器I/F142可以用作用于处理控制器130和存储器装置150之间的命令和数据的接口(例如,NAND闪存接口)。具体地,存储器I/F142可以支持控制器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内部或外部。图4例示了设置在控制器130内部的存储器144。在实施例中,存储器144可以通过具有在存储器144和控制器130之间传送数据的存储器接口的外部易失性存储器来实现。
如上所述,存储器144可以存储在主机和存储器装置150之间执行数据写入/读取操作所需的数据以及当执行数据写入/读取操作时的数据。为了存储这种数据,存储器144可以包括程序存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等。
根据实施例,存储器144可以存储块管理表。块管理表可以包括存储器装置150中包括的各个存储块的有效页面的数量以及各个存储块的块状态。下面将参照图5和图7详细描述块管理表。
处理器134可以控制存储器系统110的全部操作。处理器134可以驱动固件以控制存储器系统110的全部操作。该固件可以被称为闪存转换层(FTL)。而且,处理器134可以被实现为微处理器或中央处理单元(CPU)。
例如,控制器130可以通过被实施为微处理器或中央处理单元(CPU)的处理器134来执行前台操作。
控制器130可以通过被实施为微处理器或CPU的处理器134对存储器装置150执行后台操作。也可以在处理器134的控制下执行作为后台操作的上述GC操作。具体地,处理器134可以基于块管理表中包括的数据执行GC操作。
图5示出根据实施例的块状态表500和块数量表502。
块状态表500和块数量表502可以包括图4的块管理表。
块状态表500可以包括各个存储块的标识符字段、有效页面计数字段和块状态字段。
可以将块状态设置成脏块、真实空闲块和伪空闲块中的任意一种。可以基于有效页面计数来判定存储块中的每一个的块状态。具体地,可以将有效页面计数为“0”的存储块,即不包括有效页面的存储块判定为真实空闲块。有效页面计数等于或小于阈值的存储块是能够通过仅将少量的有效数据存储到另一存储块中并擦除相应存储块的操作而变成真实空闲块的存储块,并且可以被判定为伪空闲块。可以将有效页面计数大于阈值的存储块判定为脏块。
图5示出存储器装置150中的存储块的总数量为100并且存储块中的每一个包括100个页面的情况。在块状态表500中,例如,可以将有效页面计数等于或小于10的存储块判定为伪空闲块。
块数量表502可以存储包括在存储器装置150中的存储块的数量、真实空闲块的数量、伪空闲块的数量以及扩展空闲块的数量。可以基于存储在块状态表500中的各个存储块的块状态来判定真实空闲块的数量和伪空闲块的数量。可以基于真实空闲块的数量和伪空闲块的数量来判定扩展空闲块的数量。控制器130可以基于扩展空闲块的数量来判定是否执行GC操作。
在实施例中,可以基于块状态表500的块状态的变化来周期性地更新块数量表502。图6A和图6B示出处理器134在判定是否执行GC操作的同时更新块数量表502。然而,本实施例不限于此,而是可以独立地更新块数量表502,并且处理器134可以参考块数量表502以便判定GC操作。
图6A和图6B是示出根据实施例的控制器130的操作的流程图。
图6A示出控制器130判定是否执行GC操作的方法的实施例。
在步骤S602中,处理器134可以基于块状态表500的块状态对真实空闲块的数量进行计数。处理器134可以基于所计数的真实空闲块的数量来更新块数量表502。
在步骤S604中,处理器134可以检查真实空闲块的数量是否等于或小于第一阈值Threshold1。
当真实空闲块的数量超过第一阈值(在步骤S604中为“否”)时,处理器134可以结束操作。
当真实空闲块的数量等于或小于第一阈值(在步骤S604中为“是”)时,在步骤S606中,处理器134可以基于块状态来计算扩展空闲块的数量。
根据本实施例,处理器134可以基于块状态对伪空闲块的数量进行计数,并且更新块数量表502。控制器134可以基于真实空闲块的数量和伪空闲块的数量来计算扩展空闲块的数量,并且更新块数量表502。在实施例中,可以通过将真实空闲块的数量和伪空闲块的数量求和来得出扩展空闲块的数量。
在步骤S608中,处理器134可以检查扩展空闲块的数量是否等于或小于第二阈值。
当扩展空闲块的数量超过第二阈值(在步骤S608中为“否”)时,这指示,即使真实空闲块的数量等于或小于第一阈值,也可以存在足够数量的伪空闲块。当扩展空闲块的数量超过第二阈值时,处理器134可以通过稍后执行GC操作以在不久的将获得多个真实空闲块。因此,处理器134可以结束操作而不执行GC操作。
当扩展空闲块的数量等于或小于第二阈值(在步骤S608中为“是”)时,在步骤S610中,处理器134可以执行GC操作。
图6B示出控制器130判定是否执行GC操作的方法的实施例。
可以以与参照图6A描述的相同的方式执行步骤S602至S606。
在步骤S608中,处理器134可以检查扩展空闲块的数量是否等于或小于第二阈值。
当扩展空闲块的数量等于或小于第二阈值(在步骤S608中为“是”)时,在步骤S610中,处理器134可以执行GC操作。
另一方面,当即使扩展空闲块的数量超过第二阈值(在步骤S608中为“否”),存储器装置也不具有真实空闲块时,处理器134不能执行GC操作。因此,在步骤S612中,处理器134可以检查真实空闲块的数量是否等于或小于第三阈值。第三阈值可以指示为处理器134执行GC操作而需要被维持的真实空闲块的最小数量。
当真实空闲块的数量等于或小于第三阈值(在步骤S612中为“是”)时,在步骤S610中,处理器134可以执行GC操作。
当真实空闲块的数量超过第三阈值(在步骤S612中为“否”)时,处理器134可以结束操作。
图7示出根据实施例的块状态表700和块数量表702。
图4的块管理表可以包括块状态表700和块数量表702。
块状态表700可以包括各个存储块的标识符字段、有效页面计数字段和块状态字段。
可以将块状态设置成脏块和真实空闲块中的任意一种。可以基于有效页面计数来判定存储块中的每一个的块状态。可以将不具有有效页面的存储块判定为真实空闲块,并且可以将具有有效页面的存储块判定为脏块。
图7示出存储器装置150中的存储块的总数量为100并且存储块中的每一个包括100个页面的情况。
块数量表702可以存储包括在存储器装置150中的存储块的数量、总有效页面计数、真实空闲块的数量和扩展空闲块的数量。总有效页面计数可以指示通过对包括在存储器装置150中的所有存储块的有效页面计数求和而获得的值。
可以基于存储块的总数量和总有效页面计数来判定扩展空闲块的数量。在图7的示例中,通过将存储器装置150的总有效页面计数(7500)的比率(75%)乘以存储块的总数量(100)而获得的值是75。该值75可以指示有效数据被存储在存储器空间总量达存储器装置150中的总共100个存储块之中的75个存储块中。通过将总有效页面计数的比率乘以存储块的总数量而获得的值可以被定义为实际有效块的数量。
因此,理想地,总存储块之中除实际有效块之外的剩余25个存储块可以立即准备用于存储数据。也就是说,通过从存储块的总数量减去实际有效块的数量而获得的值可以指示扩展空闲块的数量。
控制器130可以基于扩展空闲块的数量来判定是否执行GC操作。
图8A和图8B是示出根据实施例的控制器130的操作的流程图。
图8A示出控制器130判定是否执行GC操作的方法的实施例。
在步骤S802中,处理器134可以基于块状态表700的块状态对真实空闲块的数量进行计数。处理器134可以基于所计数的真实空闲块的数量来更新块数量表702。
在步骤S804中,处理器134可以检查真实空闲块的数量是否等于或小于第一阈值Threshold1。
当真实空闲块的数量超过第一阈值(在步骤S804中为“否”)时,处理器134可以结束操作。
当真实空闲块的数量等于或小于第一阈值(在步骤S804中为“是”)时,在步骤S806中,处理器134可以基于块状态来计算扩展空闲块的数量。
如上所述,处理器134可以基于总有效页面计数和存储块的总数量来计算实际有效块的数量,并且计算扩展空闲块的数量。
在步骤S808中,处理器134可以检查扩展空闲块的数量是否等于或小于第二阈值。
当扩展空闲块的数量超过第二阈值(在步骤S808中为“否”)时,其指示,即使真实空闲块的数量等于或小于第一阈值,也可以存在足够数量的伪空闲块。当扩展空闲块的数量超过第二阈值时,即使不立即执行GC操作,处理器134也可以通过稍后执行GC操作来在不久的将来获得多个真实空闲块。因此,处理器134可以结束操作而无需执行GC操作。
当扩展空闲块的数量等于或小于第二阈值(在步骤S808中为“是”)时,在步骤S810中,处理器134可以执行GC操作。
图8B示出控制器130判定是否执行GC操作的方法的实施例。
可以以与参照图8A描述的相同的方式执行步骤S802至S806。
在步骤S808中,处理器134可以检查扩展空闲块的数量是否等于或小于第二阈值。
当扩展空闲块的数量等于或小于第二阈值(在步骤S808中为“是”)时,在步骤S810中,处理器134可以执行GC操作。
另一方面,当扩展空闲块的数量超过第二阈值(在步骤S808中为“否”)时,在步骤S812中,处理器134可以检查真实空闲块的数量是否等于或小于第三阈值。第三阈值可以指示处理器134执行GC操作所需的真实空闲块的最小数量。
当真实空闲块的数量等于或小于第三阈值(在步骤S812中为“是”)时,在步骤S810中,处理器134可以执行GC操作。
当真实空闲块的数量超过第三阈值(在步骤S812中为“否”)时,处理器134可以结束操作。
图9A和图9B是示出当根据实施例执行GC操作时存储器系统110的性能的曲线图。图3A和图3B示出当执行将数据连续写入到存储器系统110的测试时存储器系统110的性能。
根据本实施例,控制器130可以基于扩展空闲块的数量执行GC操作,该扩展空闲块的数量是基于包括在存储器装置150中的各个存储块的有效页面计数来计算的。
图9A示出根据存储在存储器装置150中的有效数据量的真实空闲块的数量。在图9A中,横轴可以指示时间,且纵轴可以指示真实空闲块的数量。
参照图9A的时间点t1,如在步骤S604和S804所述,即使当存储器装置150中的真实空闲块的数量等于或小于第一阈值时,处理器134也可以不执行GC操作。在实施例中,当存储器装置150中的真实空闲块的数量等于或小于第一阈值并且扩展空闲块的数量等于或小于第二阈值时,或者当存储器装置150具有较小的有效页面计数时,处理器134可以执行GC操作。参照图9A和图9B的时间点t2',根据实施例,当存储器装置150中的真实空闲块的数量等于或小于第三阈值时,处理器134可以执行GC操作。
参照图9A的时间点t3,当有效页面计数随着存储器装置150被使用而减少时,可以在连续执行GC操作的同时恒定地维持存储器装置150中扩展空闲块的数量。
图9B示出根据存储在存储器装置150中的有效数据量的存储器装置150的吞吐量。在图9B中,横轴可以指示时间,且纵轴可以指示存储器装置150的吞吐量。图9B的横轴可以与图9A的横轴比例相同。
虽然真实空闲块的数量非常少以至于需要执行GC操作,但是因为在时间点t1有足够数量的扩展空闲块,所以当如果稍后执行GC操作则能够获得多个真实空闲块时,处理器134可以不执行GC操作。因此,根据本实施例,当从用户的角度,大部分的存储器空间未被使用时,可以不执行GC操作。因此,可以提供用户所期望的存储器系统110的足够吞吐量。
图10至图18是示意性示出根据各个实施例的图1至图9的数据处理系统的应用示例的示图。
图10是示意性示出根据实施例的包括存储器系统的数据处理系统的示图。图10示意性地示出应用根据实施例的存储器系统的存储卡系统6100。
参照图10,存储卡系统6100可以包括存储器控制器6120、存储器装置6130和连接器6110。
具体地,存储器控制器6120可以被连接至通过非易失性存储器(NVM)实现的存储器装置6130,并被配置成访问存储器装置6130。例如,存储器控制器6120可以被配置成控制存储器装置6130的读取操作、写入操作、擦除操作和后台操作。存储器控制器6120可以被配置成提供存储器装置6130和主机(未示出)之间的接口,并驱动用于控制存储器装置6130的固件。也就是说,存储器控制器6120可以对应于参照图4描述的存储器系统110的控制器130,并且存储器装置6130可以对应于参照图4描述的存储器系统110的存储器装置150。
因此,如图4所示,存储器控制器6120可以包括随机存取存储器(RAM)、处理器、主机接口、存储器接口和错误校正组件。
存储器控制器6120可以通过连接器6110与例如图4的主机102的外部装置通信。例如,如参照图4所述,存储器控制器6120可以被配置成通过诸如以下的各种通信协议中的一种或多种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCIe)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(SCSI)、增强型小型磁盘接口(EDSI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、无线保真(Wi-Fi或WiFi)和蓝牙。因此,根据实施例的存储器系统和数据处理系统可以应用于有线和/或无线电子装置,特别是移动电子装置。
存储器装置6130可以由非易失性存储器来实施。例如,存储器装置6130可以由诸如以下的各种非易失性存储器装置中的任意一种来实施:可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)以及自旋转移力矩磁性RAM(STT-RAM)。
存储器控制器6120和存储器装置6130可以被集成至单个半导体装置中。例如,存储器控制器6120和存储器装置6130可以被集成以形成固态驱动器(SSD)。而且,存储器控制器6120和存储器装置6130可以形成诸如以下的存储卡:PC卡(例如,个人计算机存储卡国际协会(PCMCIA))、紧凑型闪存(CF)卡、智能媒体卡(例如,SM和SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC、微型MMC和eMMC)、安全数字(SD)卡(例如,SD、迷你SD、微型SD和SDHC)以及通用闪存(UFS)。
图11是示意性示出根据实施例的包括存储器系统的数据处理系统6200的另一示例的示图。
参照图11,数据处理系统6200可以包括具有一个或多个非易失性存储器(NVM)的存储器装置6230和用于控制存储器装置6230的存储器控制器6220。数据处理系统6200可以用作如参照图4描述的存储介质,诸如存储卡(CF、SD、微型SD等)或USB装置。存储器装置6230可以对应于图4中所示的存储器系统110中的存储器装置150,并且存储器控制器6220可以对应图4中所示的存储器系统110中的控制器130。
存储器控制器6220可以响应于主机6210的请求控制对存储器装置6230的读取操作、写入操作或擦除操作,并且存储器控制器6220可以包括一个或多个中央处理单元(CPU)6221、诸如随机存取存储器(RAM)6222的缓冲存储器、错误校正码(ECC)电路6223、主机接口6224以及诸如NVM接口6225的存储器接口。
CPU 6221可以控制对存储器装置6230的全部操作,例如读取操作、写入操作、文件系统管理操作和坏页面管理操作。RAM 6222可以根据CPU 6221的控制来操作,并且用作工作存储器、缓冲存储器或高速缓冲存储器。当RAM 6222用作工作存储器时,通过CPU 6221处理的数据可以被临时存储在RAM 6222中。当RAM 6222用作缓冲存储器时,RAM 6222可以用于缓冲从主机6210传送到存储器装置6230或从存储器装置6230传送到主机6210的数据。当RAM 6222用作高速缓冲存储器时,RAM 6222可以辅助存储器装置6230以高速运转。
ECC电路6223可以生成用于校正从存储器装置6230提供的数据的失败位或错误位的错误校正码(ECC)。ECC电路6223可以对被提供到存储器装置6230的数据执行错误校正编码,从而形成具有奇偶校验位的数据。奇偶校验位可以被存储在存储器装置6230中。ECC电路6223可以对从存储器装置6230输出的数据执行错误校正解码。ECC电路6223可以使用奇偶校验位来校正错误。ECC电路6223可以使用低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhri-Hocquenghem,BCH)码、涡轮码、里德-所罗门码、卷积码、递归系统码(RSC)或诸如网格编码调制(TCM)或分组编码调制(BCM)的编码调制来校正错误。
存储器控制器6220可以通过主机接口6224向主机6210传送数据和/或从主机6210接收数据,并通过NVM接口6225向存储器装置6230传送数据/从存储器装置6230接收数据。主机接口6224可以通过并行高级技术附件(PATA)总线、串行高级技术附件(SATA)总线、小型计算机系统接口(SCSI)、通用串行总线(USB)、高速外围组件互连(PCIe)或NAND接口而连接到主机6210。存储器控制器6220可以具有利用诸如无线保真(WiFi)或长期演进(LTE)的移动通信协议的无线通信功能。存储器控制器6220可以连接到外部装置,例如主机6210或另一外部装置,然后向外部装置传送数据和/或从外部装置接收数据。特别地,由于存储器控制器6220被配置成通过各种通信协议中的一种或多种与外部装置通信,因此根据实施例的存储器系统和数据处理系统可以应用于有线和/或无线电子装置,特别是移动电子装置。
图12是示意性示出根据实施例的包括存储器系统的数据处理系统的另一示例的示图。图12示意性地示出可以应用存储器系统的固态驱动器(SSD)6300。
参照图12,SSD 6300可以包括控制器6320和包括多个非易失性存储器(NVM)的存储器装置6340。控制器6320可以对应于图4的存储器系统110中的控制器130,并且存储器装置6340可以对应于图4的存储器系统中的存储器装置150。
具体地,控制器6320可以通过多个通道CH1至CHi连接至存储器装置6340。控制器6320可以包括一个或多个处理器6321、错误校正码(ECC)电路6322、主机接口6324、缓冲存储器6325和例如非易失性存储器接口6326的存储器接口。
缓冲存储器6325可以临时存储从主机6310提供的数据或从包括在存储器装置6340中的多个非易失性存储器NVM提供的数据,或者临时存储多个非易失性存储器存储器NVM的元数据,例如,包括映射表的映射数据。缓冲存储器6325可以由诸如动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、双倍数据速率(DDR)SDRAM、低功率DDR(LPDDR)SDRAM和图形RAM(GRAM)的易失性存储器实现,或者由诸如铁电RAM(FRAM)、电阻式RAM(RRAM或ReRAM)、自旋转移力矩磁性RAM(STT-MRAM)和相变RAM(PRAM)的非易失性存储器实现。为便于描述,图12示出缓冲存储器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中选择一个或多个存储器系统或SSD 6300,并将对应于写入命令的数据输出到所选择的SSD 6300。此外,当RAID控制器响应于从主机6310提供的读取命令而执行读取操作时,RAID控制器可以根据多个RAID级别,也就是从主机6310提供的读取命令的RAID级别信息,在SSD 6300中选择一个或多个存储器系统或SSD 6300,并将从所选择的SSD6300读取的数据提供到主机6310。
图13是示意性示出根据实施例的包括存储器系统的数据处理系统的另一示例的示图。图13示意性地示出可以应用存储器系统的嵌入式多媒体卡(eMMC)6400。
参照图13,eMMC 6400可以包括控制器6430和通过一个或多个NAND闪速存储器实现的存储器装置6440。控制器6430可以对应于图4的存储器系统110中的控制器130,并且存储器装置6440可以对应于图4的存储器系统110中的存储器装置150。
具体地,控制器6430可以通过多个通道连接至存储器装置6440。控制器6430可以包括一个或多个内核6432、主机接口(I/F)6431和例如NAND接口(I/F)6433的存储器接口。
内核6432可以控制eMMC 6400的全部操作,主机接口6431可以提供控制器6430和主机6410之间的接口功能,并且NAND接口6433可以提供存储器装置6440和控制器6430之间的接口功能。例如,主机接口6431可以用作并行接口,例如参照图4所描述的MMC接口。此外,主机接口6431可以用作串行接口,例如超高速(UHS)-I和UHS-II接口。
已经参照图10至图13描述的存储器控制器6120、存储器控制器6220、控制器6320和控制器6430可以基于扩展空闲块的数量分别对存储器装置6130、存储器装置6230、存储器装置6340和存储器装置6440执行GC操作,从而维持存储器系统的性能。
图14至图17是示意性示出根据一个或多个实施例的包括存储器系统的数据处理系统的其它示例的示图。图14至图17示意性地示出可以应用存储器系统的通用闪存(UFS)系统。
根据参照图1至图13描述的各个实施例的存储器系统可以应用于参照图14至图17描述的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可以由图4中所示的存储器系统110实现。例如,在UFS系统6500、6600、6700和6800中,UFS装置6520、6620、6720和6820可以以参照图11至图13描述的数据处理系统6200、SSD 6300或eMMC 6400的形式来实现,并且UFS卡6530、6630、6730和6830可以以参照图10描述的存储卡系统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协议以外例如通用存储总线(USB)、闪存驱动器(UFD)、多媒体卡(MMC)、安全数字(SD)、迷你SD和微型SD的各种协议彼此通信,。
在图14所示的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。
在图15所示的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。
在图16所示的UFS系统6700中,主机6710、UFS装置6720以及UFS卡6730中的每一个可以包括UniPro。主机6710可以通过执行交换操作的交换模块6740,例如通过在UniPro处执行例如L3交换的链路层交换的交换模块6740,与UFS装置6720或UFS卡6730通信。此时,UFS装置6720和UFS卡6730可以通过交换模块6740在UniPro处的链路层交换来彼此通信,并且交换模块6740可以在UFS装置6720内部或外部与UFS装置6720集成为一个模块。在实施例中,为便于描述,已经例示一个UFS装置6720和一个UFS卡6730连接到交换模块6740的配置。然而,每个包括交换模块6740和UFS装置6720的多个模块可以并联或以星型形式连接至主机6710,或者串联或以链型形式彼此连接。此外,多个UFS卡可以并联或以星型形式连接至UFS装置6720。
在图17所示的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。
图18是示意性示出根据实施例的包括存储器系统的数据处理系统的另一示例的示图。图18是示意性示出可以应用存储器系统的用户系统6900的示图。
参照图18,用户系统6900可以包括用户接口6910、存储器模块6920、应用处理器6930、网络模块6940以及存储模块6950。
具体地,应用处理器6930可以驱动包括在例如操作系统(OS)的用户系统6900中的组件,并且包括控制用户系统6900中包括的组件的控制器、接口和图形引擎。应用处理器6930可以被设置为片上系统(SoC)。
存储器模块6920可以用作用户系统6900的主存储器、工作存储器、缓冲存储器或高速缓冲存储器。存储器模块6920可以包括诸如动态RAM(DRAM)、同步DRAM(SDRAM)、双倍数据速率(DDR)SDRAM、DDR2 SDRAM、DDR3 SDRAM、LPDDR SDRAM、LPDDR2SDRAM或LPDDR3 SDRAM的易失性随机存取存储器(RAM),或者诸如相变RAM(PRAM)、电阻式RAM(ReRAM)、磁阻RAM(MRAM)或铁电RAM(FRAM)的非易失性RAM。例如,可基于堆叠封装(POP)来封装和安装应用处理器6930和存储器模块6920。
网络模块6940可以与外部装置通信。例如,网络模块6940不仅可支持有线通信,还可支持诸如以下的各种无线通信:码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、全球微波接入互操作性(Wimax)、无线局域网(WLAN)、超宽带(UWB)、蓝牙、无线显示(WI-DI),从而与有线/无线电子装置或特别是移动电子装置通信。因此,根据本发明的实施例,存储器系统和数据处理系统能够应用于有线/无线电子装置。网络模块6940可以被包括在应用处理器6930中。
存储模块6950可以存储数据,例如从应用处理器6930接收的数据,然后将所存储的数据传送到应用处理器6930。存储模块6950可以由诸如以下的非易失性半导体存储器装置实现:相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(ReRAM)、NAND闪存、NOR闪存和3D NAND闪存,并且存储模块6950可以被设置为诸如用户系统6900的存储卡或外部驱动器的可移动存储介质。存储模块6950可以对应于参照图4描述的存储器系统110。此外,存储模块6950可以被实现为如上参照图12至图17描述的SSD、eMMC和UFS。
在实施例中,当即使存在较少数量的真实空闲块,却存在足够数量的扩展空闲块时,存储模块6950可以不执行GC操作,以便维持存储器系统的性能。
用户接口6910可以包括用于将数据或命令输入至应用处理器6930或将数据输出到外部装置的接口。例如,用户接口6910可以包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件的用户输入接口,以及诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监控器的用户输出接口。
此外,当图4的存储器系统110应用于用户系统6900的移动电子装置时,应用处理器6930可以控制移动电子装置的全部操作,并且网络模块6940可以用作用于控制与外部装置进行有线和/或无线通信的通信模块。用户接口6910可以在移动电子装置的显示/触摸模块上显示由处理器6930处理的数据,或支持从触摸面板接收数据的功能。
根据本实施例,可以提供能够防止可由GC操作导致的存储器系统性能劣化的控制器,以及控制器的操作方法。
虽然已经为了说明性目的描述了各个实施例,但是对于本领域技术人员将显而易见的是,在不脱离如所附权利要求所限定的本发明的精神和范围的情况下,可以进行各种改变和修改。

Claims (20)

1.一种控制器的操作方法,所述控制器控制包括多个存储块的存储器装置,所述操作方法包括:
当所述存储器装置中的真实空闲块的数量小于第一阈值时,基于各个存储块的有效页面计数计算所述存储器装置中的扩展空闲块的数量;并且
当所述扩展空闲块的数量小于第二阈值时,执行垃圾收集操作。
2.根据权利要求1所述的操作方法,其中计算所述扩展空闲块的数量包括:
基于所述有效页面计数判定伪空闲块的数量和所述真实空闲块的数量;并且
基于所述伪空闲块的数量和所述真实空闲块的数量计算所述扩展空闲块的数量。
3.根据权利要求2所述的操作方法,进一步包括当所述真实空闲块的数量小于第三阈值时,执行垃圾收集操作,所述第三阈值小于所述第一阈值。
4.根据权利要求2所述的操作方法,其中判定所述伪空闲块的数量和所述真实空闲块的数量包括:
将有效页面计数小于预定阈值的存储块判定为伪空闲块;并且
将有效页面计数为“0”的存储块判定为真实空闲块。
5.根据权利要求1所述的操作方法,其中计算所述扩展空闲块的数量包括:
通过将所述各个存储块的有效页面计数求和来计算总有效页面计数;并且
基于所述总有效页面计数计算所述扩展空闲块的数量。
6.根据权利要求5所述的操作方法,其中计算所述扩展空闲块的数量包括:
基于所述总有效页面计数和存储块的总数量,计算实际有效块的数量;并且
基于所述实际有效块的数量和所述存储块的总数量,计算所述扩展空闲块的数量。
7.根据权利要求5所述的操作方法,进一步包括:
基于所述有效页面计数判定所述各个存储块的块状态;并且
当所述真实空闲块的数量小于第三阈值时,执行垃圾收集操作,所述第三阈值小于所述第一阈值。
8.根据权利要求7所述的操作方法,其中基于所述有效页面计数判定所述各个存储块的块状态包括:
将有效页面计数为“0”的存储块判定为真实空闲块;并且
将具有非零有效页面计数的存储块判定为脏块。
9.根据权利要求1所述的操作方法,其中执行所述垃圾收集操作包括:
将存储在脏块的有效页面中的数据写入到真实空闲块;并且
擦除所述脏块。
10.一种控制器,控制包括多个存储块的存储器装置,所述控制器包括:
存储器,存储各个存储块的有效页面计数;以及
处理器:
当所述存储器装置中的真实空闲块的数量小于第一阈值时,基于所述各个存储块的有效页面计数计算所述存储器装置中的扩展空闲块的数量;并且
当所述扩展空闲块的数量小于第二阈值时,执行垃圾收集操作。
11.根据权利要求10所述的控制器,其中所述处理器通过下列计算所述扩展空闲块的数量:
基于所述有效页面计数判定伪空闲块的数量和所述真实空闲块的数量;并且
基于所述伪空闲块的数量和所述真实空闲块的数量计算所述扩展空闲块的数量。
12.根据权利要求11所述的控制器,其中所述处理器进一步:当所述真实空闲块的数量小于第三阈值时,执行垃圾收集操作,所述第三阈值小于所述第一阈值。
13.根据权利要求11所述的控制器,其中所述处理器通过下列判定所述伪空闲块的数量和所述真实空闲块的数量:
通过将有效页面计数小于预定阈值的存储块判定为伪空闲块;并且
将有效页面计数为“0”的存储块判定为真实空闲块来判定所述各个存储块的块状态。
14.根据权利要求10所述的控制器,其中所述处理器通过下列计算所述扩展空闲块的数量:
通过将所述各个存储块的有效页面计数求和来计算总有效页面计数;并且
基于所述总有效页面计数计算所述扩展空闲块的数量。
15.根据权利要求14所述的控制器,其中所述处理器通过下列计算所述扩展空闲块的数量:
基于所述总有效页面计数和存储块的总数量,计算实际有效块的数量;并且
基于所述实际有效块的数量和所述存储块的总数量,计算所述扩展空闲块的数量。
16.根据权利要求14所述的控制器,其中所述处理器进一步:当所述扩展空闲块的数量等于或大于阈值时,在所述真实空闲块的数量小于执行垃圾收集操作需要维持的真实空闲块的最小数量的情况下执行所述垃圾收集操作。
17.根据权利要求14所述的控制器,其中所述处理器进一步:通过将有效页面计数为“0”的存储块判定为真实空闲块并通过将具有非零有效页面计数的存储块判定为脏块来判定所述各个存储块的块状态。
18.根据权利要求10所述的控制器,其中所述处理器通过将存储在脏块的有效页面中的数据写入到真实空闲块并擦除所述脏块来执行所述垃圾收集操作。
19.一种控制器的操作方法,所述控制器用于控制包括多个存储块的存储器装置,所述操作方法包括:
在每次访问所述存储块时,更新真实空闲块的第一数量和伪空闲块的第二数量,所述伪空闲块具有预定数量或更少的有效页面;并且
当所述第一数量为第一阈值或更少并且所述第一数量与所述第二数量之和为第二阈值或更少时,控制所述存储器装置对所述存储块执行垃圾收集操作。
20.一种控制器的操作方法,所述控制器用于控制包括多个存储块的存储器装置,所述操作方法包括:
在每次访问所述存储块时,更新真实空闲块的第一数量和扩展空闲块的第二数量,所述第二数量是所述存储块的总有效页面的比率与所述存储块的总数量的乘积;并且
当所述第一数量为第一阈值或更少并且所述第二数量为第二阈值或更少时,控制所述存储器装置对所述存储块执行垃圾收集操作。
CN201911211965.4A 2018-12-05 2019-12-02 控制器以及控制器的操作方法 Active CN111273856B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180155011A KR20200068259A (ko) 2018-12-05 2018-12-05 컨트롤러 및 컨트롤러의 동작방법
KR10-2018-0155011 2018-12-05

Publications (2)

Publication Number Publication Date
CN111273856A true CN111273856A (zh) 2020-06-12
CN111273856B CN111273856B (zh) 2023-08-08

Family

ID=70971951

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911211965.4A Active CN111273856B (zh) 2018-12-05 2019-12-02 控制器以及控制器的操作方法

Country Status (3)

Country Link
US (1) US11210213B2 (zh)
KR (1) KR20200068259A (zh)
CN (1) CN111273856B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210017481A (ko) * 2019-08-08 2021-02-17 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
US11467942B2 (en) 2020-12-16 2022-10-11 Western Digital Technologies, Inc. Predictive performance indicator for storage devices
US11507502B2 (en) * 2021-02-23 2022-11-22 Western Digital Technologies, Inc. Data storage device performance prediction based on valid fragment count

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110022778A1 (en) * 2009-07-24 2011-01-27 Lsi Corporation Garbage Collection for Solid State Disks
CN102609218A (zh) * 2012-01-18 2012-07-25 清华大学 并行闪存转换层方法与系统
CN102915208A (zh) * 2011-08-01 2013-02-06 株式会社东芝 信息处理装置、半导体存储装置及半导体存储装置的控制方法
CN103403691A (zh) * 2011-03-10 2013-11-20 株式会社东芝 信息处理装置、外部储存装置、主机装置、中继装置、控制程序以及信息处理装置的控制方法
US20140101373A1 (en) * 2012-09-27 2014-04-10 Samsung Electronics Co., Ltd. Method of managing data storage device and data storage device
CN104808951A (zh) * 2014-01-28 2015-07-29 国际商业机器公司 进行存储控制的方法和设备
CN107544754A (zh) * 2017-07-28 2018-01-05 紫光华山信息技术有限公司 一种垃圾回收法及装置
CN107632777A (zh) * 2016-07-18 2018-01-26 爱思开海力士有限公司 存储器系统及其操作方法
US20180267720A1 (en) * 2017-03-14 2018-09-20 International Business Machines Corporation Techniques for selecting storage blocks for garbage collection based on longevity information

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100706808B1 (ko) * 2006-02-03 2007-04-12 삼성전자주식회사 쓰기 버퍼로서 동작하는 불 휘발성 메모리를 구비한 데이터저장 장치 및 그것의 블록 회수 방법
US8799561B2 (en) * 2012-07-27 2014-08-05 International Business Machines Corporation Valid page threshold based garbage collection for solid state drive
TWI516922B (zh) * 2014-03-12 2016-01-11 慧榮科技股份有限公司 資料儲存裝置及快閃記憶體零散資料收集方法
KR102509540B1 (ko) 2015-06-30 2023-03-14 삼성전자주식회사 저장 장치 및 그것의 가비지 컬렉션 방법
IN2015CH04361A (zh) * 2015-08-20 2015-09-04 Wipro Ltd
KR20170044780A (ko) 2015-10-15 2017-04-26 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
EP3203377A1 (en) * 2016-02-08 2017-08-09 Wipro Limited Method and system for optimized garbage collection in a storage device
US10445230B2 (en) * 2017-12-08 2019-10-15 Macronix International Co., Ltd. Managing block arrangement of super blocks
US10838859B2 (en) * 2018-09-25 2020-11-17 Western Digital Technologies, Inc. Recency based victim block selection for garbage collection in a solid state device (SSD)

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110022778A1 (en) * 2009-07-24 2011-01-27 Lsi Corporation Garbage Collection for Solid State Disks
CN103403691A (zh) * 2011-03-10 2013-11-20 株式会社东芝 信息处理装置、外部储存装置、主机装置、中继装置、控制程序以及信息处理装置的控制方法
CN102915208A (zh) * 2011-08-01 2013-02-06 株式会社东芝 信息处理装置、半导体存储装置及半导体存储装置的控制方法
CN102609218A (zh) * 2012-01-18 2012-07-25 清华大学 并行闪存转换层方法与系统
US20140101373A1 (en) * 2012-09-27 2014-04-10 Samsung Electronics Co., Ltd. Method of managing data storage device and data storage device
CN104808951A (zh) * 2014-01-28 2015-07-29 国际商业机器公司 进行存储控制的方法和设备
CN107632777A (zh) * 2016-07-18 2018-01-26 爱思开海力士有限公司 存储器系统及其操作方法
US20180267720A1 (en) * 2017-03-14 2018-09-20 International Business Machines Corporation Techniques for selecting storage blocks for garbage collection based on longevity information
CN107544754A (zh) * 2017-07-28 2018-01-05 紫光华山信息技术有限公司 一种垃圾回收法及装置

Also Published As

Publication number Publication date
KR20200068259A (ko) 2020-06-15
CN111273856B (zh) 2023-08-08
US11210213B2 (en) 2021-12-28
US20200183851A1 (en) 2020-06-11

Similar Documents

Publication Publication Date Title
KR102651425B1 (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
KR102529696B1 (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
US10866898B2 (en) Method and apparatus for migrating data between nonvolatile main memory and first or second caches
KR102468751B1 (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
KR102605609B1 (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
KR102593352B1 (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
KR102559528B1 (ko) 메모리 시스템 및 메모리 시스템의 동작방법
KR20190074677A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
CN110750207B (zh) 存储器系统及其操作方法
KR102415875B1 (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
KR102653389B1 (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
US20190121733A1 (en) Controller and operating method thereof
KR102553170B1 (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
CN110765029B (zh) 控制器及用于操作该控制器的方法
US20200210295A1 (en) Memory system and operating method thereof
KR20200008273A (ko) 메모리 시스템 및 메모리 시스템의 동작방법
KR102475798B1 (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
US20200226063A1 (en) Memory system and operation method thereof
KR102643467B1 (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
CN111273856B (zh) 控制器以及控制器的操作方法
KR102409760B1 (ko) 메모리 시스템
KR102593552B1 (ko) 컨트롤러, 메모리 시스템 및 그의 동작 방법
CN110688060B (zh) 存储器系统及该存储器系统的操作方法
CN110045914B (zh) 存储器系统及其操作方法
KR20190031692A (ko) 데이터 처리 시스템 및 데이터 처리 시스템의 동작방법

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