CN112199037A - 存储器控制器及其操作方法 - Google Patents
存储器控制器及其操作方法 Download PDFInfo
- Publication number
- CN112199037A CN112199037A CN201911283096.6A CN201911283096A CN112199037A CN 112199037 A CN112199037 A CN 112199037A CN 201911283096 A CN201911283096 A CN 201911283096A CN 112199037 A CN112199037 A CN 112199037A
- Authority
- CN
- China
- Prior art keywords
- block
- sub
- memory
- blocks
- victim
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- 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/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- 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/7209—Validity control, e.g. using flags, time stamps or sequence numbers
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)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本公开涉及一种存储器控制器。该存储器控制器在不移动有效页面的数据的情况下执行垃圾收集,控制包括存储数据的多个存储块的存储器装置。该存储器控制器包括:牺牲块设置电路,用于在执行垃圾收集时,通过接收代表多个存储块的每一个中是否包括有效页面和无效页面的存储块信息来在存储块之中选择牺牲块;以及子块控制器,用于通过将牺牲块划分成子块,输出用于确定牺牲块内的子块中的每一个中包括的有效页面的子块读取命令,并且通过从存储器装置接收对应于子块读取命令的子块信息,输出用于选择性地擦除牺牲块中包括的子块的一部分的子块擦除命令。
Description
相关申请的交叉引用
本申请要求于2019年7月8日提交的申请号为10-2019-0082154的韩国专利申请的优先权,其通过引用整体并入本文。
技术领域
本公开总体涉及一种电子装置,且更特别地,涉及一种存储器控制器及其操作方法。
背景技术
存储装置是用于在诸如计算机、智能电话或智能平板的主机装置的控制下存储数据的装置。存储装置可包括被配置成诸如硬盘驱动器(HDD)的将数据存储在磁盘上的装置,以及/或者被配置成诸如固态驱动器(SSD)或存储卡的将数据存储在半导体存储器上,即非易失性存储器上的装置。通常将被配置成将数据存储到半导体存储器上的装置称为存储器装置。
也可将包括被配置成存储数据的存储器装置和被配置成控制该存储器装置的存储器控制器的存储装置称为存储器系统。存储器装置可分为易失性存储器装置和非易失性存储器装置。非易失性存储器装置的示例包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)以及铁电RAM(FRAM)等。
对改进的电子装置的需求要求存储器系统的结构和功能不断改进。
发明内容
本发明的实施例提供了一种用于存储器系统的改进的存储器控制器,其能够在不移动有效页面的数据的情况下执行垃圾收集。本发明的实施例还提供了一种存储器控制器的操作方法。
根据本公开的一方面,提供了一种用于控制存储器装置的存储器控制器,该存储器装置包括存储数据的多个存储块,该存储器控制器包括:牺牲块设置电路,被配置成在执行垃圾收集时,通过接收代表多个存储块的每个中是否包括有效页面和无效页面的存储块信息来在存储块之中选择牺牲块;以及子块控制器,被配置成通过将牺牲块划分成子块,输出用于确定牺牲块内的子块中的每个中包括的有效页面的子块读取命令,并且通过从存储器装置接收对应于子块读取命令的子块信息,输出用于选择性地擦除牺牲块中包括的子块的一部分的子块擦除命令。
根据本公开的另一方面,提供了一种用于操作存储器控制器的方法,该存储器控制器用于控制存储器装置,该存储器装置包括存储数据的多个存储块,该方法包括:在执行垃圾收集时,接收代表多个存储块中的每个中是否包括有效页面和无效页面的存储块信息;基于存储块信息在存储块之中选择牺牲块;通过将牺牲块划分成子块,在牺牲块内的子块之中确定待擦除子块,并且输出用于擦除所确定的子块的子块擦除命令。
根据本公开的另一方面,提供了一种存储器系统,该存储器系统包括:存储器装置,包括牺牲存储块,该牺牲存储块具有多个子块,每个子块具有多个页面;以及控制器,被配置成在对牺牲存储块进行垃圾收集操作期间,控制存储器装置以擦除牺牲存储块内仅具有无效页面的子块,并且将该牺牲存储块设置为开放存储块,而不将有效数据从该牺牲存储块移动到任意的存储块。
附图说明
现在将参照附图在下文中更全面地描述示例性实施例;然而,这些实施例可以不同的形式来实施,并且不应被解释为限于本文阐述的实施例。而是,提供这些实施例以使本公开将是彻底且完整的,并且将示例实施例的范围全面地传达给本领域技术人员。
在附图中,为了说明清楚,可放大尺寸。相同的附图标记始终表示相同的元件。
图1是示出存储装置的框图。
图2是示出根据本公开的实施例的图1所示的存储器控制器的结构以及垃圾收集操作的示图。
图3是示出图1所示的存储器装置的结构的示图。
图4是示出图3所示的存储块中的一些的示图。
图5是示出常规的垃圾收集操作的示图。
图6是示出根据本公开的实施例的垃圾收集操作的示图。
图7示出对牺牲块中的子块进行擦除操作中的位图。
图8示出在对牺牲块中的子块进行擦除操作之后被选择为开放块的牺牲块。
图9是示出图3所示的存储器单元阵列的实施例的示图。
图10是示出图9所示的存储块之中的任意一个存储块的电路图。
图11是示出图9所示的存储块之中的一个存储块的另一实施例的电路图。
图12是示出根据本公开的实施例的存储器控制器的操作的示图。
图13是示出根据本公开的实施例的存储器控制器的操作的示图。
图14是示出根据本公开的实施例的存储器控制器的操作的示图。
图15是示出图1所示的存储器控制器的另一实施例的示图。
图16是示出根据本公开的实施例的应用了存储装置的存储卡系统的框图。
图17是示例性地示出根据本公开的实施例的应用了存储装置的固态驱动器(SSD)系统的框图。
图18是示出根据本公开的实施例的应用了存储装置的用户系统的框图。
具体实施方式
本文公开的具体结构或功能描述仅是说明性的,以用于描述根据本公开的技术方案的实施例的目的。根据本公开的技术方案的实施例可以各种形式实施,并且不能被解释为限于本文阐述的实施例。
根据本公开的技术方案的实施例可进行各种修改并具有各种形式。实施例在附图中示出,并且旨在在本文中被详细描述。然而,根据本公开的技术方案的实施例不被解释为限于特定公开,并且包括不脱离本公开的精神和技术范围的所有改变、等同方案或替代方案。
虽然诸如“第一”和“第二”的术语可用于描述各个组件,但这些组件不应被理解为被限于上述术语。上述术语仅用于将一个组件与另一个组件区分开。例如,在不脱离本公开的范围的情况下,第一组件可被称为第二组件,并且同样地,第二组件可被称为第一组件。
如本文所使用的,“A、B和C中的至少一个”的表述可表示“A”、“B”、“C”、“A和B”、“B和C”、“A和C”及“A、B和C”中的任意一个。另外,“A、B和C中的至少一个”的表述可与“A、B或C中的至少一个”的表述相同,或者具有包括A中包括的组件中的任意一个、B中包括的组件中的任意一个以及C中包括的组件中的任意一个的含义。
将理解的是,当元件被称为“连接”或“联接”到另一元件时,它可直接连接或联接到其它元件,或者也可存在中间元件。相反地,当元件被称为“直接连接”或“直接联接”到另一元件时,不存在中间元件。同时,可类似地来解释描述组件之间关系的其它表述,诸如“在……之间”、“直接在……之间”或“与……相邻”和“直接与……相邻”。
本申请中使用的术语仅用于描述特定实施例,并不旨在限制本公开。除非上下文另有明确说明,否则本公开中的单数形式也旨在包括复数形式。将进一步理解的是,诸如“包括”或“具有”等术语旨在指示本说明书中公开的特征、数字、操作、动作、组件、部件或其组合的存在,并且不旨在排除可能存在或可能添加一个或多个其它特征、数字、操作、动作、组件、部件或其组合的可能性。
只要没有进行不同的定义,则本文所使用的包括技术或科学术语的所有术语具有本公开所属领域的技术人员通常理解的含义。具有字典中限定的定义的术语应当被理解为这些术语具有与相关技术的背景一致的含义。只要本申请中没有明确定义,则不应以理想化或过于形式化的方式来理解术语。
应当理解的是,附图是所描述的装置的简化示意图,并且可能不包括公知的细节,以免模糊本发明的特征。
还应当注意的是,在不脱离本发明的范围的情况下,一个实施例中存在的特征可与另一实施例的一个或多个特征一起使用。
如在本说明书和权利要求书中使用的,术语“电路”、“组件”、“模块”等指代硬件或硬件与软件/固件的组合。作为进一步的示例,如在本申请中所使用的,任意的上述术语还覆盖仅处理器(或多个处理器)或处理器的部分及其(或它们)的附带软件和/或固件的实施方案。
在描述这些实施例时,将省略对本公开所属领域公知并且与本公开不直接相关的技术的描述。通过省略不必要的描述,这旨在更清楚地公开本公开的主旨。
在下文中,将参照附图详细地描述本公开的各个实施例,以使本领域技术人员能够容易地实施本公开的技术方案。
图1是示出存储装置50的框图。
参照图1,存储装置50可包括可操作地彼此联接的存储器装置100和存储器控制器200。
存储装置50可在主机300的控制下存储数据。主机300可以是例如移动电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、电视机、平板电脑和车载信息娱乐中的至少一种。
根据作为与主机300的通信方案的主机接口,存储装置50可被制造成各种类型的存储装置中的任意一种。例如,存储装置50可利用诸如以下的各种类型的存储装置中的任意一种来实施:固态驱动器(SSD)、多媒体卡(MMC)、嵌入式多媒体卡(eMMC)、缩小尺寸的MMC(RS-MMC)、微型MMC(micro-MMC)、安全数字(SD)卡、迷你-SD卡、微型-SD卡、通用串行总线(USB)存储装置、通用闪存(UFS)装置、紧凑式闪存(CF)卡、智能媒体卡(SMC)、记忆棒等。
存储装置50可被制造成各种种类的封装类型中的任意一种。例如,存储装置50可被制造成诸如以下的各种种类的封装类型中的一种:堆叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)以及晶圆级堆叠封装(WSP)。
存储器装置100可存储数据。存储器装置100可在存储器控制器200的控制下操作。存储器装置100可包括存储器单元阵列,该存储器单元阵列包括用于存储数据的多个存储器单元。存储器单元阵列可包括多个存储块。每个存储块可包括多个存储器单元,并且多个存储器单元可构成多个页面。在实施例中,页面可以是用于将数据存储在存储器装置100中或读取存储器装置100中存储的数据的单位。存储块可以是用于擦除数据的单位。
在实施例中,存储器装置100可以是:双倍数据速率同步动态随机存取存储器(DDRSDRAM)、低功率双倍数据速率4(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SRAM、低功率DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器、电阻式随机存取存储器(RRAM)、相变随机存取存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)、自旋转移力矩随机存取存储器(STT-RAM)等。在本说明书中,为便于描述,描述了存储器装置100是NAND闪速存储器的情况。
在实施例中,存储器装置100可被实施为二维阵列结构或三维阵列结构。在下文中,作为实施例描述存储器装置100以三维阵列结构实施的情况,然而,本公开不限于三维阵列结构。本公开不仅可应用于其中电荷存储层配置有浮栅(FG)的闪速存储器装置,而且可应用于其中电荷存储层配置有绝缘层的电荷撷取闪存(CTF)。
在实施例中,存储器装置100可使用其中一个存储器单元中存储一个数据位的单层单元(SLC)方案来操作。可选地,存储器装置100可使用其中一个存储器单元中存储至少两个数据位的方案来操作。例如,存储器装置100可使用其中一个存储器单元中存储两个或多个数据位的多层单元(MLC)方案来操作。可将其中一个存储器单元中存储三个数据位的方案称为三层单元(TLC)方案,并且可将其中一个存储器单元中存储四个数据位的方案称为四层单元(QLC)方案。
存储器装置100可被配置成从存储器控制器200接收命令和地址,并且可访问存储器单元阵列中由地址选择的区域。也就是说,存储器装置100可对存储器单元阵列中的由地址选择的区域执行对应于命令的操作。例如,存储器装置100可根据所接收的命令来执行写入(编程)操作、读取操作和擦除操作。例如,当接收到编程命令时,存储器装置100可在由地址选择的区域中编程数据。当接收到读取命令时,存储器装置100可从由地址选择的区域读取数据。当接收到擦除命令时,存储器装置100可擦除由地址选择的区域中存储的数据。
存储器控制器200可包括牺牲块设置电路210。在实施例中,当存储器控制器200执行垃圾收集(GC)操作时,牺牲块设置电路210可从存储器装置100中包括的多个存储块之中选择待执行GC的存储块作为牺牲块。牺牲块可以是多个存储块之中包括存储无效数据的无效页面和存储有效数据的有效页面的存储块。
可在存储器装置100不执行任何操作的空闲时间执行GC操作。也就是说,可在存储器装置100不执行任何命令的时候执行GC操作。可选地,当存储器装置100处于就绪状态时,可执行GC操作。在另一实施例中,可响应于来自存储器控制器200或主机300的请求来执行GC操作,而不考虑存储器装置100的操作时间。
可执行GC操作来获得其中可存储数据的空闲块。
在GC操作中,可将牺牲块中的有效数据移动到空闲块,然后可擦除该牺牲块以变成空闲块。本文执行的擦除操作可以是擦除整个牺牲块的块擦除操作。通过块擦除操作,牺牲块可变成空闲块,并且可在该空闲块中编程新数据。
然而,在本公开中,在GC操作期间,可对牺牲块执行子块擦除操作而非块擦除操作,而不将有效数据从牺牲块移动到空闲块。子块擦除操作可以是以子块为单位来擦除牺牲块中包括的页面的擦除操作。
例如,可将存储块中包括的页面划分成多个子块。子块可包括两个页面或更多个页面。存储块中包括的子块可包括相同数量或不同数量的页面。在子块擦除操作中可选择一个或多个子块,并且可同时或顺序地擦除选择的子块。选择的子块可仅包括存储块的无效页面。
牺牲块设置电路210可以子块单位方案来选择存储块作为待擦除牺牲块。牺牲块设置电路210可以子块单位方案来选择存储块作为待擦除牺牲块,并且生成关于设置的牺牲块的牺牲块信息。
存储器控制器200可包括子块控制器220。子块控制器220可根据牺牲块信息来擦除牺牲块中包括的子块,并且控制该牺牲块以被设置为开放块。开放块是具有有效页面和空闲页面的块。
例如,子块控制器220可以子块单位来读取一个牺牲块中包括的页面,并且基于读取结果而仅擦除不包括有效页面的子块。可将一个牺牲块中的所有无效页面分配到一个或多个子块中。当擦除仅包括无效页面的子块时,仅有效页面和经擦除页面可保持在该一个牺牲块中。
子块控制器220可生成关于牺牲块中经擦除子块的子块信息。
子块控制器220可生成关于牺牲块中的待擦除子块的子块擦除信息。子块擦除信息包括关于牺牲块中包括的子块之中待执行擦除操作的子块的信息。
在GC操作期间不将有效数据从牺牲块移动到另一存储块的情况下完成对仅具有无效页面的子块的擦除操作之后,子块控制器220可将牺牲块设置为开放块,并且可将数据编程到被设置为开放块的牺牲块中。可将位图信息输出到存储器装置100,以将数据编程到被设置为开放块的牺牲块。基于位图信息,存储器装置100可将数据编程到被擦除的子块中包括的页面之中的任意一个页面。
存储器控制器200可包括位图控制器230。位图控制器230可包括用于存储器装置100中包括的每个存储块的位图。位图中最初包括的位值可以是默认值。
位图控制器230可基于从子块控制器220接收的子块擦除信息来改变位图中包括的位值。位图控制器230可控制牺牲块的位图中包括的位值之中对应于待擦除子块的位值。位图中包括的位值可基于子块擦除操作而改变。例如,对应于牺牲块中的待擦除子块的位值可从“0”(即,默认值)改变为“1”。在另一实施例中,对应于牺牲块中的待擦除子块的位值可从“1”(即,默认值)改变为“0”。
随后,当牺牲块被设置为开放块,并且对相应存储块中包括的页面执行编程操作时,位图控制器230可向存储器装置100输出关于相应存储块的位图信息。
存储器控制器200可控制存储装置50的全部操作。
当向存储装置50供应电源电压时,存储器控制器200可运行固件(FW)。当存储器装置100为闪速存储器装置时,存储器控制器200可运行诸如FTL的FW,用以控制主机300和存储器装置100之间的通信。
在实施例中,存储器控制器200可从主机300接收数据和逻辑块地址(LBA),并且将LBA转换为物理块地址(PBA),该物理块地址(PBA)表示包括在存储器装置100中的、待存储数据的存储器单元的地址。而且,存储器控制器200可在缓冲存储器中存储逻辑-物理地址映射表,该逻辑-物理地址映射表在LBA和PBA之间建立映射关系。
存储器控制器200可响应于来自主机300的请求,控制存储器装置100执行编程操作、读取操作、擦除操作等。例如,当从主机300接收到编程请求时,存储器控制器200可将编程请求改变为编程命令,并且向存储器装置100提供编程命令、PBA和数据。当从主机300接收到读取请求和LBA时,存储器控制器200可将读取请求改变为读取命令,选择对应于LBA的PBA,然后向存储器装置100提供读取命令和PBA。当从主机300接收到擦除请求和LBA时,存储器控制器200可将擦除请求改变为擦除命令,选择对应于LBA的PBA,然后向存储器装置100提供擦除命令和PBA。
在实施例中,存储器控制器200可在没有来自主机300的任何请求的情况下自主生成编程命令、地址和数据,并且将编程命令、地址和数据传输到存储器装置100。例如,存储器控制器200可向存储器装置100提供命令、地址和数据以执行后台操作,诸如用于损耗均衡的编程操作和用于垃圾收集的编程操作。
在实施例中,存储装置50可进一步包括缓冲存储器(未示出)。存储器控制器200可控制主机300和缓冲存储器之间的数据交换。可选地,存储器控制器200可将用于控制存储器装置100的系统数据临时存储在缓冲存储器中。例如,存储器控制器200可将从主机300输入的数据临时存储在缓冲存储器中,然后将临时存储在缓冲存储器中的数据传输到存储器装置100。
在各个实施例中,缓冲存储器可用作存储器控制器200的工作存储器或高速缓存存储器。缓冲存储器可存储由存储器控制器200运行的代码或命令。可选地,缓冲存储器可存储由存储器控制器200处理的数据。
在实施例中,缓冲存储器可利用诸如双倍数据速率同步DRAM(DDR SDRAM)、DDR4SDRAM、低功率双倍数据速率4(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)的动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)来实施。
在各个实施例中,缓冲存储器可在存储装置50的外部联接到该存储装置50。因此,在存储装置50的外部联接到该存储装置50的易失性存储器装置100可执行缓冲存储器的功能。
在实施例中,存储器控制器200可控制至少两个存储器装置100。存储器控制器200可根据交错(interleave)方案控制存储器装置,以便提高操作性能。
主机300可使用诸如以下的各种通信方式中的至少一种来与存储装置50通信:通用串行总线(USB)、串行AT附件(SATA)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、火线、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)以及低负载DIMM(LRDIMM)。
图2是示出根据本公开的实施例的图1所示的存储器控制器的结构以及垃圾收集操作的示图。
参照图2,存储器控制器200可包括牺牲块设置电路210、子块控制器220和位图控制器220。
在实施例中,当存储器控制器200执行垃圾收集(GC)时,牺牲块设置电路210可从存储器装置100接收存储块信息BLK_INF。存储块信息BLK_INF可包括关于分别在存储器装置100中包括的存储块中包括的页面的信息。
在实施例中,存储块信息BLK_INF可包括关于每个存储块中包括的有效页面和无效页面的数量的信息。也就是说,存储块信息BLK_INF可代表每个存储块中是否包括存储有效数据的有效页面和存储无效数据的无效页面两者。例如,存储块信息BLK_INF可指示第一存储块中包括两个有效页面和四个无效页面,并且第二存储块中包括两个有效页面和三个无效页面。
牺牲块设置电路210可基于存储块信息BLK_INF来确定牺牲块。在实施例中,牺牲块设置电路210可选择包括有效和无效页面两者的存储块作为牺牲块。由牺牲块设置电路210设置的牺牲块的数量可以变化。
当牺牲块设置电路210选择牺牲块时,牺牲块设置电路210可生成牺牲块信息VICBLK_INF作为关于牺牲块的信息。牺牲块设置电路210可将所生成的牺牲块信息VICBLK_INF输出到子块控制器220。牺牲块信息VICBLK_INF中可包括牺牲块的地址。
在实施例中,子块控制器220可根据牺牲块信息VICBLK_INF而将被设置为牺牲块的存储块划分为一个或多个子块,并且对至少一个子块执行读取操作。子块可配置有多个页面。也就是说,子块可包括至少两个页面。子块中包括的页面的数量可以变化。
子块控制器220可向存储器装置100输出子块读取命令SBR_CMD。子块读取命令SBR_CMD可对应于对牺牲块中的子块中包括的页面进行读取的操作。存储器装置100可对牺牲块中的子块执行读取操作,并且输出子块信息SB_INF,该子块信息包括关于经读取子块中包括的页面仅具有有效页面还是无效页面的信息。子块控制器220可基于子块信息SB_INF来确定牺牲块中待执行擦除操作的子块。例如,如果经读取子块仅具有无效页面,则然后可擦除该经读取子块。如果子块仅包括有效页面,则不将擦除该子块。
在实施例中,当子块控制器220针对牺牲块确定待擦除子块时,子块控制器220可输出用于擦除相应子块的子块擦除命令SBERS_CMD。也就是说,子块控制器220可输出子块擦除命令SBERS_CMD来擦除除仅包括有效页面的子块之外的子块。即,子块控制器220可进行控制以擦除仅包括无效页面的子块。存储器装置100可响应于子块擦除命令SBERS_CMD,对牺牲块中的子块执行擦除操作。
在本公开中,不将牺牲块中的有效页面中存储的有效数据移动到空闲块。也就是说,因为将牺牲块划分成子块,并且擦除除了包括有效页面的子块之外的子块,所以可在不移动任何有效数据的情况下执行GC。因此,在GC操作中,可省略将有效数据复制到空闲块的操作,因此,可提高GC的效率。
在实施例中,当子块控制器220针对每个牺牲块确定待擦除子块时,子块控制器220可向位图控制器230输出子块擦除信息SBERS_INF,该子块擦除信息包括关于每个牺牲块的经确定的子块的信息。
在实施例中,位图控制器230可基于子块擦除信息SBERS_INF来改变位图中包括的位值。位图控制器230可包括用于每个存储块的位图。位图控制器230可改变位图中包括的位值之中对应于待擦除子块的位值。
例如,当生成初始位图时,与存储块中包括的子块中的每一个相对应的位值可以是作为默认值的“0”。在另一实施例中,与牺牲块中包括的子块中的每一个相对应的默认值可以是“1”。
随后,在本公开中,当执行GC操作时,位图控制器230可将子块擦除信息SBERS_INF中包括的与牺牲块中的待擦除子块相对应的位值从作为默认值的“0”改变为“1”,或者从作为默认值的“1”改变为“0”。也就是说,位图控制器230可通过改变与待擦除子块相对应的位值来表示子块是待擦除子块。
在实施例中,在擦除牺牲块中仅包括无效数据的子块之后,牺牲块可变成开放块。当牺牲块变成开放块时,可将数据编程到牺牲块中经擦除的子块。在牺牲块变成开放块之后,位图控制器230可在对先前是牺牲块的开放块的编程操作中向存储器装置100输出位图信息BITMAP_INF。存储器装置100可基于位图信息BITMAP_INF对开放块中经擦除的子块中包括的页面执行编程操作。
图3是示出图1所示的存储器装置的结构的示图。
参照图3,存储器装置100可包括存储器单元阵列110、外围电路120和控制逻辑130。
存储器单元阵列110包括多个存储块BLK1至BLKz。多个存储块BLK1至BLKz通过行线RL联接到行解码器121。多个存储块BLK1至BLKz通过位线BL1至BLn联接到页面缓冲器组123。多个存储块BLK1至BLKz中的每一个包括多个存储器单元。在实施例中,多个存储器单元可以是非易失性存储器单元。联接到相同字线的存储器单元可被定义为一个页面。因此,一个存储块可包括多个页面。
行线RL可包括至少一个源极选择线、多个字线和至少一个漏极选择线。
存储器单元阵列110中包括的存储器单元中的每一个可被配置成存储一个数据位的单层单元(SLC)、存储两个数据位的多层单元(MLC)、存储三个数据位的三层单元(TLC)或存储四个数据位的四层单元(QLC)。
外围电路120可在控制逻辑130的控制下对存储器单元阵列110中的选择的区域执行编程操作、读取操作或擦除操作。外围电路120可驱动存储器单元阵列110。例如,外围电路120可在控制逻辑130的控制下将各种操作电压施加到行线RL和位线BL1至BLn或者放电所施加的电压。
外围电路120可包括行解码器121、电压生成器122、页面缓冲器组123、列解码器124、输入/输出电路125及感测电路126。
行解码器121通过行线RL联接到存储器单元阵列110。行线RL可包括至少一个源极选择线、多个字线和至少一个漏极选择线。在实施例中,字线可包括普通字线和虚设字线。在实施例中,行线RL可进一步包括管道选择线。
行解码器121对从控制逻辑130接收的行地址RADD进行解码。行解码器121根据经解码的地址来在存储块BLK1至BLKz之中选择至少一个存储块。而且,行解码器121可根据经解码的地址,选择所选择的存储块的至少一个字线WL,以将由电压生成器122生成的电压施加到该至少一个字线WL。
例如,在编程操作中,行解码器121可将编程电压施加到所选择字线并将电平低于编程电压的电平的编程通过电压施加到未选择的字线。在编程验证操作中,行解码器121可将验证电压施加到所选择的字线并将具有高于验证电压的电平的验证通过电压施加到未选择的字线。
在读取操作中,行解码器121可将读取电压施加到所选择的字线并将具有高于读取电压的电平的读取通过电压施加到未选择的字线。
在实施例中,以存储块单位来执行对存储器装置100的擦除操作。在擦除操作中,行解码器121可根据经解码的地址来选择一个存储块。在擦除操作中,行解码器121可将接地电压施加到与所选择存储块联接的字线。
电压生成器122在控制逻辑130的控制下操作。电压生成器122通过使用供应到存储器装置100的外部电源电压来生成多个电压。具体地,电压生成器可响应于操作信号OPSIG而生成在编程操作、读取操作和擦除操作中使用的各种操作电压Vop。例如,在控制逻辑130的控制下,电压生成器122可生成编程电压、验证电压、通过电压、读取电压、擦除电压等。
在实施例中,电压生成器122可通过调节外部电源电压来生成内部电源电压。通过电压生成器122生成的内部电源电压用作存储器装置100的操作电压。
在实施例中,电压生成器122通过使用外部电源电压或内部电源电压来生成多个电压。
例如,电压生成器122可包括用于接收内部电源电压的多个泵浦电容器,并且可在控制逻辑130的控制下通过选择性地启用多个泵浦电容器来生成多个电压。
多个所生成的电压可通过行解码器121供给到存储器单元阵列110。
页面缓冲器组123包括第一至第n页面缓冲器PB1至PBn。第一至第n页面缓冲器PB1至PBn通过第一至第n位线BL1至BLn分别联接到存储器单元阵列110。第一至第n位线BL1至BLn在控制逻辑130的控制下操作。具体地,第一至第n位线BL1至BLn可响应于页面缓冲器控制信号PBSIGNALS而操作。例如,在读取操作或验证操作中,第一至第n页面缓冲器PB1至PBn可临时存储通过第一至第n位线BL1至BLn接收的数据,或者感测位线BL1至BLn的电压或电流。
具体地,在编程操作中,当编程电压被施加到所选择的字线时,第一至第n页面缓冲器PB1至PBn可通过第一至第n位线BL1至BLn将通过输入/输出电路125接收到的数据DATA传输到所选择的存储器单元。根据所传输的数据DATA对所选择的页面的存储器单元进行编程。在编程验证操作中,第一至第n页面缓冲器PB1至PBn通过感测通过第一至第n位线BL1至BLn从所选择的存储器单元接收的电压或电流来读取页面数据。
在读取操作中,第一至第n页面缓冲器PB1至PBn通过第一至第n位线BL1至BLn从所选择的页面的存储器单元读取数据DATA,并且在列解码器124的控制下将读取的数据DATA输出到输入/输出电路125。
在擦除操作中,第一至第n页面缓冲器PB1至PBn可使第一至第n位线BL1至BLn浮置(float)或者施加擦除电压。
列解码器124可响应于列地址CADD而在输入/输出电路125和页面缓冲器组123之间通信数据。例如,列解码器124可通过数据线EL与第一至第n页面缓冲器PB1至PBn通信数据,或者通过列线CL与输入/输出电路125通信数据。
输入/输出电路125可将从参照图描述的存储器控制器200接收的命令CMD和地址ADDR传输到控制逻辑130,或者与列解码器124交换数据DATA。
在读取操作或验证操作中,感测电路125可响应于允许位VRYBIT信号生成参考电流,并且通过将从页面缓冲器组123接收的感测电压VPB与由参考电流产生的参考电压进行比较来输出通过或失败信号PASS/FAIL。
控制逻辑130可响应于命令CMD和地址ADDR,通过输出操作信号OPSIG、行地址RADD、页面缓冲器控制信号PBSIGNALS和允许位VRYBIT来控制外围电路120。例如,控制逻辑130可响应于子块读取命令和地址来控制对所选择的存储块的读取操作。而且,控制逻辑130可根据子块擦除命令和地址来控制对所选择的存储块中包括的所选择的子块的擦除操作。而且,控制逻辑130可响应于通过或失败信号PASS/FAIL来确定验证操作是已经通过还是失败。
存储器单元阵列110中包括的存储器单元中的每一个可根据其中存储的数据而被编程为多个编程状态之中的任意一个编程状态。根据存储器单元中存储的数据,可将存储器单元的目标编程状态确定为多个编程状态中的任意一个。
图4是示出图3所示的存储块中的一些的示图。
参照图4,图4示出作为图3所示的存储块中的一些的第一至第三存储块BLK1至BLK3。在图4中,第一和第二存储块BLK1和BLK2是被选择作为牺牲块的存储块,并且第三存储块BLK3是空闲块。
在实施例中,存储器控制器200可执行垃圾收集(GC)。可在图2所示的存储器装置100不执行任何操作的空闲时间执行GC。进一步地,可执行GC以获得将存储数据的空闲块。
第一至第三存储块BLK1至BLK3可配置有多个页面PAGE1至PAGE8。多个页面可包括多个存储器单元。虽然在图4中示出每个存储块包括第一至第八页面PAGE1至PAGE8,即包括八个页面的情况,但每个存储块中可包括更多的页面。
第一和第二存储块BLK1和BLK2可以是开放块,第三存储块BLK3可以是空闲块。也就是说,数据可存储在第一和第二存储块BLK1和BLK2中,并且第三存储块BLK3可以是待被设置为开放块的存储块。
在实施例中,有效数据VALID和无效数据INVALID可存储在第一和第二存储块BLK1和BLK2中。第三存储块BLK3可具有未存储任何有效数据VALID或无效数据INVALID的空页面EMPTY。
参照图4,第一存储块BLK1的第一和第二页面PAGE1和PAGE2可以是存储了有效数据VALID的有效页面,并且第一存储块BLK1的第三至第六页面PAGE3至PAGE6可以是存储了无效数据INVALID的无效页面。无效数据INVALID可存储在第一存储块BLK1的第三至第六页面PAGE3至PAGE6中。无效数据INVALID可以是在有效数据VALID之中被指定为待擦除数据的数据。
第二存储块BLK2的第一至第三页面PAGE1至PAGE3可以是存储了无效数据INVALID的无效页面,并且第二存储块BLK2的第四和第五页面PAGE4和PAGE5可以是存储了有效数据VALID的有效页面。
因为第一和第二存储块BLK1和BLK2是存储了数据的开放块,所以数据可存储在第一存储块BLK1的第七和第八页面PAGE7和PAGE8以及第二存储块BLK2的第六至第八页面PAGE6至PAGE8中。
在实施例中,可选择第一和第二存储块BLK1和BLK2作为牺牲块。也就是说,因为第一和第二存储块BLK1和BLK2中包括无效页面和有效页面,所以可选择第一和第二存储块BLK1和BLK2作为牺牲块。当选择第一和第二存储块BLK1和BLK2作为牺牲块时,可执行用于获得作为空闲块的第一和第二存储块BLK1和BLK2的操作。
在下文中,将参照图5描述常规的垃圾收集操作,并且将参照图6至图8描述本公开中的垃圾收集操作。
图5是示出常规的垃圾收集操作的示图。
参照图4和图5,图5所示的第一至第三存储块BLK1至BLK3可以是与图4所示的第一至第三存储块BLK1至BLK3相同的存储块。图5示出当图2所示的存储器控制器200执行垃圾收集GC时,在选择第一和第二存储块BLK1和BLK2作为牺牲块之后的操作。
在实施例中,在GC操作中,在将作为牺牲块的第一和第二存储块BLK1和BLK2中包括的页面之中存储有效数据VALID的有效页面的数据复制到作为空闲块的第三存储块BLK3之后,可擦除第一和第二存储块BLK1和BLK2。因此,当执行GC时,空闲块的数量可增加。
例如,可将第一存储块BLK1中作为有效页面的第一页面PAGE1的数据复制到第三存储块BLK3的第一页面PAGE1,并且可将第一存储块BLK1中作为另一有效页面的第二页面PAGE2的数据复制到第三存储块BLK3的第二页面PAGE2。另外,可将第二存储块BLK2中作为有效页面的第四页面PAGE4的数据复制到第三存储块BLK3的第四页面PAGE4,并且可将第二存储块BLK2中作为另一有效页面的第五页面PAGE5的数据复制到第三存储块BLK3的第五页面PAGE5。
当作为牺牲块的第一和第二存储块BLK1和BLK2的有效页面的数据被复制到作为空闲块的第三存储块BLK3时,可擦除第一和第二存储块BLK1和BLK2。当作为牺牲块的第一和第二存储块BLK1和BLK2被擦除时,第一和第二存储块BLK1和BLK2可变成空闲块。当第一和第二存储块BLK1和BLK2变成空闲块时,可将第一和第二存储块BLK1和BLK2分配为在随后待执行的编程操作中存储数据的开放块。
如图5所示,在常规的GC中,图2所示的存储器控制器200将被选择作为牺牲块的存储块的有效页面中存储的有效数据VALID复制到空闲块,然后擦除该牺牲块。也就是说,在常规的GC中执行将有效页面中存储的有效数据VALID移动到空闲块的复制操作和擦除整个牺牲块的块擦除操作,因此,GC中消耗的功率和时间可能增加。
然而,在本公开的GC中,如图6的附图所示,不执行将有效页面中存储的有效数据VALID移动到空闲块的复制操作,因此可减少GC中消耗的功率和时间。
在下文中,将描述本公开的GC。
图6是示出根据本公开的实施例的垃圾收集操作的示图。
参照图4和图6,图6所示的第一至第三存储块BLK1至BLK3可以是与图4所示的第一至第三存储块BLK1至BLK3相同的存储块。图6示出当图2所示的存储器控制器200执行垃圾收集GC时,在选择第一和第二存储块BLK1和BLK2作为牺牲块之后的操作。在本公开中,操作可与常规的GC相同,直到选择了牺牲块。
图6示出用于将被选择作为牺牲块的存储块划分成子块并对子块执行擦除操作的方法。
在实施例中,牺牲块可配置有多个子块,并且子块可包括至少一个页面。每个子块中包括的页面的数量可以是预定的。在图6中,子块中包括的页面的数量为2。然而,在另一实施例中,子块中可包括更多的页面。
在实施例中,图6中所示的(a)示出被选择作为牺牲块的第一存储块BLK1。
在图6所示的(a)中,第一存储块BLK1可配置有第(1_1)至第(1_4)子块SB1_1至SB1_4。第(1_1)至第(1_4)子块SB1_1至SB1_4中的每一个可包括两个页面。也就是说,第(1_1)子块SB1_1可包括第一和第二页面PAGE1和PAGE2,第(1_2)子块SB1_2可包括第三和第四页面PAGE3和PAGE4,第(1_3)子块SB1_3可包括第五和第六页面PAGE5和PAGE6,并且第(1_4)子块SB1_4可包括第七和第八页面PAGE7和PAGE8。
在实施例中,第(1_1)子块SB1_1可仅包括有效页面。也就是说,第(1_1)子块SB1_1中包括的第一和第二页面PAGE1和PAGE2可以是存储有效数据VALID的有效页面。然而,第(1_2)和第(1_3)子块SB1_2和SB1_3中包括的第三至第六页面PAGE3至PAGE6可以是存储无效数据INVALID的无效页面。进一步地,第(1_4)子块SB1_4中包括的第七和第八页面PAGE7和PAGE8可以是未存储数据的空页面EMPTY。
因此,在作为牺牲块的第一存储块BLK1中包括的第(1_1)至第(1_4)子块SB1_1至SB1_4之中,可仅第(1_1)子块SB1_1中包括有效页面。
在本公开中,图2所示的存储器控制器200中的图2所示的子块控制器220可通过从图2所示的存储器装置100接收的子块信息来检查第一存储块BLK1中包括的子块之中仅包括有效页面的第(1_1)子块SB1_1。也就是说,子块控制器可将第一存储块BLK1划分成仅包括有效页面的第(1_1)子块SB1_1和其它块SB1_2至SB1_4。
在本公开中,在GC操作中,当确定在牺牲块中包括的子块之中存在仅具有有效页面的子块,并且其它子块中不包括任何有效页面时,可擦除除了仅具有有效页面的子块之外的子块。也就是说,在本公开中,当执行GC时,可执行该GC而不将牺牲块中包括的有效数据VALID移动到空闲块,并且仅擦除除了仅具有有效页面的子块之外的子块而不擦除整个牺牲块。
因此,在图6所示的(a)中,基于从存储器装置接收的子块信息,当检查到在第一存储块BLK1中包括的子块之中第(1_1)子块SB1_1中仅包括有效页面,并且其它子块中不包括任何有效页面时,第(1_1)子块SB1_1不能变成待擦除的块,并且仅可擦除第(1_2)和第(1_3)子块SB1_2和SB1_3(SB_ERASE)。因为第(1_4)子块SB1_4仅具有空页面,所以第(1_4)子块SB1_4不能是待擦除的块。
当除了仅具有空页面的第(1_4)子块SB1_4之外的第(1_1)子块SB1_1以及第(1_2)和第(1_3)子块SB1_2和SB1_3被擦除时,第(1_2)和第(1_3)子块SB1_2和SB1_3中包括的第三至第六页面PAGE3至PAGE6可变成空页面EMPTY。
在实施例中,图6所示的(b)示出被选择作为牺牲块的第二存储块BLK2。
在图6所示的(b)中,第二存储块BLK2可配置有第(2_1)至第(2_4)子块SB2_1至SB2_4。第(2_1)至第(2_4)子块SB2_1至SB2_4中的每一个可包括两个页面。也就是说,第(2_1)子块SB2_1可包括第一和第二页面PAGE1和PAGE2,第(2_2)子块SB2_2可包括第三和第四页面PAGE3和PAGE4,第(2_3)子块SB2_3可包括第五和第六页面PAGE5和PAGE6,并且第(2_4)子块SB2_4可包括第七和第八页面PAGE7和PAGE8。
在实施例中,在第(2_1)至第(2_4)子块SB2_1至SB2_4之中,可能不存在任何子块仅包括存储有效数据VALID的有效页面。也就是说,因为第(2_2)子块SB2_2包括作为有效页面的第四页面PAGE4,但也包括作为无效页面的第三页面PAGE3,所以第(2_2)子块SB2_2不是仅具有有效页面的子块。类似地,因为第(2_3)子块SB2_3包括作为有效页面的第五页面PAGE5,但也包括作为空页面的第六页面PAGE6,所以第(2_3)子块SB2_3不是仅具有有效页面的子块。
因此,第二存储块BLK2不包括仅具有有效页面的任何子块,因此,在第二存储块BLK2中,可不执行以子块为单位的擦除操作。换言之,因为在第二存储块BLK2中不存在仅具有有效页面的子块,所以在第二存储块BLK2中,可不执行以子块为单位的擦除操作。
图7示出对牺牲块中的子块进行擦除操作中的位图。
参照图6和图7,图7示出图2所示的位图控制器230中包括的位图。位图控制器可包括用于每个存储块的位图。在图7中,示出多个位图之中的第一存储块BLK1的位图。
当最初生成每个存储块的位图时,位图可以存储块中包括的子块为单位来生成位值。当生成位图时,对应于每个子块的位值可以是作为默认值的“0”。在该图中,默认值为“0”。可选地,在一些存储器装置中,可将默认值设置为“1”。
在实施例中,第一存储块BLK1可配置有第(1_1)至第(1_4)子块SB1_1至SB1_4。当生成第一存储块BLK1的位图时,与第(1_1)至第(1_4)子块SB1_1至SB1_4中的每一个相对应的位值可以是作为默认值的“0”。
在实施例中,位图控制器230可基于从图2所示的子块控制器220接收的子块擦除信息来改变位图中包括的位值。
具体地,作为牺牲块的第一存储块BLK1中包括的子块之中仅第(1_1)子块SB1_1具有有效页面,并且其它子块SB1_2至SB1_4中不包括任何有效页面。因此,子块控制器220可确定待擦除第(1_2)和第(1_3)子块SB1_2和SB1_3。因此,子块控制器可生成代表待擦除第(1_2)和第(1_3)子块SB1_2和SB1_3的子块擦除信息,并且将所生成的子块擦除信息输出到位图控制器。
图2所示的位图控制器230可通过接收子块擦除信息来改变对应于该子块的位值。也就是说,位图控制器可将与第(1_2)和第(1_3)子块SB1_2和SB1_3中的每一个相对应的位值从作为默认值的“0”改变为“1”。
另外,位图控制器可将与仅包括空页面的第(1_4)子块SB1_4相对应的位值从作为默认值的“0”改变为“1”。还可改变与仅包括空页面的第(1_4)子块SB1_4相对应的位值,以代表第(1_4)子块SB1_4是可通过位图来编程数据的子块。
因此,与作为执行擦除操作的子块的第(1_2)和第(1_3)子块SB1_2和SB1_3相对应的位值以及与仅包括空页面的第(1_4)子块SB1_4相对应的位值可从默认值改变为特定值。
在子块被擦除之后,可将第一存储块BLK1设置为开放块。当第一存储块BLK1被设置为开放块时,新数据可存储在第一存储块BLK1中。
当新数据被编程到第一存储块BLK1时,位图控制器可将第一存储块BLK1的位图输出到图2所示的存储器装置100。也就是说,位图控制器可输出关于第一存储块BLK1中包括可编程页面的子块的信息,并且存储器装置可检查可编程页面,然后执行编程操作。
图8示出在对牺牲块中的子块进行擦除操作之后将牺牲块设置为开放块的情况。
参照图6和图8,图8示出在擦除作为牺牲块的第一存储块BLK1中包括的第(1_2)和第(1_3)子块SB1_2和SB1_3之后,对第(1_2)子块SB1_2执行编程操作的情况。
具体地,在擦除第一存储块BLK1中包括的第(1_2)和第(1_3)子块SB1_2和SB1_3之后,可选择第一存储块BLK1作为开放块。当第一存储块BLK1被选择为开放块时,新数据可存储在第一存储块BLK1中。当新数据存储在第一存储块BLK1中时,可基于从图2所示的位图控制器230接收的位图信息来存储新数据
在实施例中,在对第(1_2)和第(1_3)子块SB1_2和SB1_3执行擦除操作之后,第(1_2)和第(1_3)子块SB1_2和SB1_3可仅具有空页面EMPTY。因此,当第一存储块BLK1被设置为开放块时,数据可存储在仅具有空页面的第(1_2)和第(1_3)子块SB1_2和SB1_3中。
例如,在第一存储块BLK1被选择为开放块之后,存储器装置可从图2所示的存储器控制器200接收指示待对第一存储块BLK1中包括的页面执行编程操作的编程命令。当存储器装置从存储器控制器接收编程命令时,存储器装置也可从位图控制器接收位图信息。
随后,存储器装置可基于位图信息检查第(1_2)至第(1_4)子块SB1_2至SB1_4仅具有空页面,并且对第(1_2)至第(1_4)子块SB1_2至SB1_4中包括的页面执行编程操作。例如,可对第(1_2)子块SB1_2中包括的第三和第四页面PAGE3和PAGE4执行编程操作。
因此,有效数据VALID可存储在第一存储块BLK1中的第(1_1)子块SB1_1的第一和第二页面PAGE1和PAGE2以及第(1_2)子块SB1_2的第三和第四页面PAGE3和PAGE4中,并且第三和第四页面PAGE3和PAGE4可变成存储有效数据VALID数据的有效页面。
图9是示出图3所示的存储器单元阵列的实施例的示图。
参照图9,存储器单元阵列110可包括多个存储块BLK1至BLKz。每个存储块可具有三维结构。每个存储块可包括堆叠在衬底(未示出)上的多个存储器单元。多个存储器单元可沿+X、+Y和+Z方向布置。将参照图10和图11更详细地描述每个存储块的结构。
图10是示出图9所示的存储块BLK1至BLKz之中的任意一个存储块BLKa的电路图。
参照图10,存储块BLKa可包括多个单元串CS11至CS1m和CS21至CS2m。在实施例中,多个单元串CS11至CS1m和CS21至CS2m中的每一个可形成为“U”形。在存储块BLKa中,在行方向(即,+X方向)上布置m个单元串。图10示出在列方向(即,+Y方向)上布置两个单元串。然而,这是为便于描述,将理解的是,可在列方向上布置三个单元串。
多个单元串CS11至CS1m和CS21至CS2m中的每一个可包括至少一个源极选择晶体管SST、第一至第n存储器单元MC1至MCn、管道晶体管PT以及至少一个漏极选择晶体管DST。
每个单元串的源极选择晶体管SST联接在公共源极线CSL和存储器单元MC1至MCp之间。
在实施例中,布置在相同行中的单元串的源极选择晶体管联接到在行方向上延伸的源极选择线,并且布置在不同行中的单元串的源极选择晶体管联接到不同的源极选择线。在图10中,第一行上的单元串CS11至CS1m的源极选择晶体管联接到第一源极选择线SSL1。第二行上的单元串CS21至CS2m的源极选择晶体管联接到第二源极选择线SSL2。
在另一实施例中,单元串CS11至CS1m和CS21至CS2m的源极选择晶体管可共同联接到一个源极选择线。
每个单元串的第一至第n存储器单元MC1至MCn联接在源极选择晶体管SST和漏极选择晶体管DST之间。
第一至第n存储器单元MC1至MCn可被划分成第一至第p存储器单元MC1至MCp与第(p+1)至第n存储器单元MCp+1至MCn。第一至第p存储器单元MC1至MCp顺序地布置在+Z方向的相反方向上,并且串联联接在源极选择晶体管SST和管道晶体管PT之间。第(p+1)至第n存储器单元MCp+1至MCn顺序地布置在+Z方向上,并且串联联接在管道晶体管PT和漏极选择晶体管DST之间。第一至第p存储器单元MC1至MCp和第(p+1)至第n存储器单元MCp+1至MCn通过管道晶体管PT联接。每个单元串的第一至第n存储器单元MC1至MCn的栅电极分别联接到第一至第n字线WL1至WLn。
每个单元串的管道晶体管PT的栅极联接到管线PL。
每个单元串的漏极选择晶体管DST联接在相应位线和存储器单元MCp+1至MCn之间。布置在行方向上的单元串联接到在行方向上延伸的漏极选择线。第一行上的单元串CS11至CS1m的漏极选择晶体管联接到第一漏极选择线DSL1。第二行上的单元串CS21至CS2m的漏极选择晶体管联接到第二漏极选择线DSL2。
布置在列方向上的单元串联接到在列方向上延伸的位线。在图10中,第一列上的单元串CS11和CS21联接到第一位线BL1。第m列上的单元串CS1m和CS2m联接到第m位线BLm。
在布置在行方向的单元串中,联接到相同字线的存储器单元构成一个页面。例如,在第一行上的单元串CS11至CS1m中,联接到第一字线WL1的存储器单元构成一个页面。在第二行上的单元串CS21至CS2m中,联接到第一字线WL1的存储器单元构成另一页面。当选择漏极选择线DSL1和DSL2中的任意一个时,可选择布置在一个行方向上的单元串。当选择字线WL1至WLn中的任意一个时,可在所选择的单元串中选择一个页面。
在另一实施例中,可设置偶数位线和奇数位线代替第一至第m位线BL1至BLm。另外,布置在行方向上的单元串CS11至CS1m或CS21至CS2m之中的偶数编号的单元串可分别联接到偶数位线,并且布置在行方向上的单元串CS11至CS1m或CS21至CS2m之中的奇数编号的单元串可分别联接到奇数位线。
在实施例中,第一至第n存储器单元MC1至MCn中的至少一个可用作虚设存储器单元。例如,可设置至少一个虚设存储器单元以减小源极选择晶体管SST与存储器单元MC1至MCp之间的电场。可选地,可设置至少一个虚设存储器单元以减小漏极选择晶体管DST与存储器单元MCp+1至MCn之间的电场。当虚设存储器单元的数量增加时,存储块BLKa的操作的可靠性提高。另一方面,存储块BLKa的大小增大。当虚设存储器单元的数量减少时,存储块BLKa的大小减小。另一方面,可能使存储块BLKa的操作的可靠性劣化。
为了有效地控制至少一个虚设存储器单元,虚设存储器单元可具有所需的阈值电压。在存储块BLKa的擦除操作之前或之后,可对全部或一些虚设存储器单元执行编程操作。当在执行了编程操作之后执行擦除操作时,虚设存储器单元的阈值电压控制施加到联接到各个虚设存储器单元的虚设字线的电压,使得虚设存储器单元可以具有所需的阈值电压。
图11是示出图9所示的存储块BLK1至BLKz之中的一个存储块的另一实施例BLKb的电路图。
参照图11,存储块BLKb可包括多个单元串CS11'至CS1m'和CS21'至CS2m'。多个单元串CS11'至CS1m'和CS21'至CS2m'中的每一个沿+Z方向延伸。多个单元串CS11'至CS1m'和CS21'至CS2m'中的每一个包括堆叠在存储块BLKb下方的衬底(未示出)上的至少一个源极选择晶体管SST、第一至第n存储器单元MC1至MCn以及至少一个漏极选择晶体管DST。
每个单元串的源极选择晶体管SST联接在公共源极线CSL和存储器单元MC1至MCn之间。布置在相同行上的单元串的源极选择晶体管联接到相同的源极选择线。布置在第一行上的单元串CS11'至CS1m'的源极选择晶体管联接到第一源极选择线SSL1。布置在第二行上的单元串CS21'至CS2m'的源极选择晶体管联接到第二源极选择线SSL2。在另一实施例中,单元串CS11'至CS1m'和CS21'至CS2m'的源极选择晶体管可共同联接到一个源极选择线。
每个单元串的第一至第n存储器单元MC1至MCn串联联接在源极选择晶体管SST和漏极选择晶体管DST之间。第一至第n存储器单元MC1至MCn的栅极分别联接到第一至第n字线WL1至WLn。
每个单元串的漏极选择晶体管DST联接在相应位线和存储器单元MC1至MCn之间。布置在行方向上的单元串的漏极选择晶体管联接到在行方向上延伸的漏极选择线。第一行上的单元串CS11'至CS1m'的漏极选择晶体管联接到第一漏极选择线DSL1。第二行上的单元串CS21'至CS2m'的漏极选择晶体管联接到第二漏极选择线DSL2。
因此,除了管道晶体管PT被排除在图11中的每个单元串中之外,图11的存储块BLKb具有与图10的存储块BLKa的电路相似的电路。
在另一实施例中,可设置偶数位线和奇数位线代替第一至第m位线BL1至BLm。另外,布置在行方向上的单元串CS11'至CS1m'或CS21'至CS2m'之中的偶数编号的单元串可分别联接到偶数位线,并且在行方向上布置的单元串CS11'至CS1m'或CS21'至CS2m'之中的奇数编号的单元串可分别联接到奇数位线。
另外,第一至第n存储器单元MC1至MCn中的至少一个可用作虚设存储器单元以减小源极选择晶体管SST与存储器单元MC1至MCn之间的电场。
图12是示出根据本公开的实施例的存储器控制器的操作的示图。
参照图12,在步骤S1201中,当存储器控制器执行垃圾收集(GC)时,存储器控制器可从存储器装置接收存储块信息。存储块信息可包括关于存储器装置中包括的多个存储块的每一个中是否包括存储有效数据的有效页面和存储无效数据的无效页面的信息。
当存储器控制器从存储器装置接收到存储块信息时,存储器控制器可选择存储块作为牺牲块(S1203)。例如,可将多个存储块之中包括有效和无效页面的存储块设置为牺牲块。被设置为牺牲块的存储块的数量可以变化。而且,可根据存储器装置的性能来确定被设置为牺牲块的存储块的数量。
当选择了至少一个牺牲块时,存储器控制器可向存储器装置输出针对该牺牲块中的子块的读取命令(S1205)。牺牲块可配置有多个子块,并且子块中的每一个可包括至少一个页面。
在实施例中,存储器控制器可输出用于检查牺牲块中的子块中包括的页面是有效页面还是无效页面的读取命令。存储器控制器可接收对应于读取命令的子块信息(S1207)。子块信息可包括关于牺牲块中的子块中包括的有效页面或无效页面的信息。
在存储器控制器接收到子块信息之后,在步骤S1209中,存储器控制器可输出用于擦除除了具有有效页面的子块之外的其它子块的子块擦除命令。
在实施例中,存储器控制器可基于子块信息,确定牺牲块中包括的子块之中仅具有有效页面的子块。当检查到存在仅具有有效页面的子块,并且在其它子块中不存在任何有效页面时,存储器控制器可输出用于擦除相应牺牲块中除了仅具有有效页面的子块之外的子块的命令。可不对仅具有空页面的子块执行任何擦除操作。
在本公开中,当执行GC时,不将牺牲块中的有效页面的数据移动到空闲块,并且擦除子块,而非擦除整个牺牲块。因此,可有效地执行GC。
图13是示出根据本公开的实施例的存储器控制器的操作的示图。
参照图12和图13,图13示出在图12所示的步骤S1207和S1209之间执行的操作。具体地,可在步骤S1207和S1209之间执行确定牺牲块中的子块之中的待擦除子块的操作。
在步骤S1207中,当存储器控制器执行垃圾收集(GC)时,存储器控制器可从存储器装置接收子块信息。子块信息可包括关于牺牲块中的子块中包括的有效页面或无效页面的信息。
存储器控制器可基于所接收的子块信息来确定是否存在仅包括有效页面的子块(S1303)。例如,当第一存储块被设置为牺牲块时,存储器控制器可确定第一存储块中包括的子块之中是否存在仅包括有效页面的子块。
在实施例中,当牺牲块中包括的子块之中存在仅包括有效页面的子块(S1303:是)时,存储器控制器可确定牺牲块中包括的子块之中除了仅包括有效页面的子块之外的子块中是否包括有效页面(S1305)。另一方面,当牺牲块中包括的子块之中不存在仅包括有效页面的子块(S1303:否)时,因为第二存储块BLK2中不存在仅具有有效页面的子块,所以可不执行以子块为单位的擦除操作。
当牺牲块中包括的子块之中除了仅包括有效页面的子块之外的子块中都不包括任何有效页面时(S1305:否),存储器控制器可输出用于擦除除了仅包括有效页面的子块之外的其它子块的子块擦除命令(S1209)。对应于子块擦除命令,存储器装置可擦除除了仅包括有效页面的子块之外的子块。
图14是示出根据本公开的实施例的存储器控制器的操作的示图。
参照图14,图14示出在通过本公开的GC擦除牺牲块中的子块之后的步骤。
在步骤S1401中,存储器控制器可将牺牲块设置为开放块。也就是说,因为擦除了牺牲块中除了仅包括有效页面的子块之外的子块,所以可将相应的牺牲块设置为用于存储数据的开放块。
当牺牲块被设置为开放块时,存储器控制器可输出针对开放块中包括的页面的编程命令(S1403)。
在实施例中,存储器控制器可控制数据以被编程到经擦除的子块或开放块中包括的子块之中仅具有空页面的子块。因此,当存储器控制器输出编程命令时,存储器控制器可输出位图信息(S1405)。
在实施例中,可针对存储块中包括的每个子块设置位值。对应于子块的位值可在子块被擦除后改变,或者在子块仅具有空页面时改变。因此,基于包括关于经改变的位值的信息的位图信息,存储器装置可检查子块中包括的空页面,然后将数据编程到空页面中。
图15是示出图1所示的存储器控制器的另一实施例的示图。
参照图15,存储器控制器1000联接到主机和存储器装置。存储器控制器1000被配置成响应于从主机接收的请求来访问存储器装置。例如,存储器控制器1000被配置成控制存储器装置的读取操作、编程操作、擦除操作和后台操作。存储器控制器1000被配置成提供存储器装置与主机之间的接口。存储器控制器1000被配置成驱动用于控制存储器装置的固件。
存储器控制器1000可包括处理器1010、存储器缓冲器1020、错误校正码(ECC)电路1030、主机接口1040、缓冲器控制电路1050、存储器接口1060和总线1070。
总线1070可被配置成提供存储器控制器1000的组件之间的通道。
处理器1010可控制存储器控制器1000的全部操作,并且执行逻辑操作。处理器1010可通过主机接口1040与外部主机通信,并且通过存储器接口1060与存储器装置通信。而且,处理器1010可通过缓冲器控制电路1050与存储器缓冲器1020通信。处理器1010可使用存储器缓冲器1020作为工作存储器、高速缓存存储器或缓冲存储器来控制存储装置的操作。
处理器1010可执行闪存转换层(FTL)的功能。处理器1010可通过FTL将由主机提供的逻辑块地址(LBA)转换成物理块地址(PBA)。FTL可接收待使用映射表而被转换为PBA的LBA。根据映射单位,存在数个FTL地址映射方法。代表性的地址映射方法包括页面映射方法、块映射方法和混合映射方法。
处理器1010被配置成使从主机接收的数据随机化。例如,处理器1010可使用随机化种子来使从主机接收的数据随机化。将经随机化数据作为待存储的数据提供到存储器装置,以被编程在存储器单元阵列中。
当图2所示的存储器控制器200执行垃圾收集GC时,处理器1010可执行GC,而不将存储器装置中包括的存储块之中被选择为牺牲块的存储块的有效数据移动到空闲块。在实施例中,处理器1010可以子块为单位来划分牺牲块,并且当子块中仅包括有效页面时,擦除除了仅包括有效页面的子块之外的其它子块。因此,除了仅包括有效页面的子块之外的其它子块中不应当存在任何有效页面。
随后,当被选择作为牺牲块的存储块被选择作为开放块时,数据可存储在被选择作为开放块的存储块的子块之中的经擦除的子块中,或者存储在未经擦除的子块之中仅包括空页面的子块中。
处理器1010可通过驱动软件或固件来执行随机化和去随机化。
存储器缓冲器1020可用作处理器1010的工作存储器、高速缓存存储器或缓冲存储器。存储器缓冲器1020可存储由处理器1010运行的代码和命令。存储器缓冲器1020可包括静态RAM(SRAM)或动态RAM(DRAM)。
ECC电路1030可执行ECC操作。ECC电路1030可对待通过存储器接口1060被写入存储器装置中的数据执行ECC编码。经ECC编码的数据可通过存储器接口1060而传输到存储器装置。ECC电路1030可通过存储器接口1060对从存储器装置接收的数据执行ECC解码。在示例中,ECC电路1030可作为存储器接口1060的组件而包括在存储器接口1060中。
主机接口1040可在处理器1010的控制下与外部主机通信。主机接口1040可使用诸如以下的各种通信方式中的至少一种来与主机通信:通用串行总线(USB)、串行AT附件(SATA)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、火线、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)以及低负载DIMM(LRDIMM)。
缓冲器控制电路1050被配置成在处理器1010的控制下控制存储器缓冲器1020。
存储器接口1060被配置成在处理器1010的控制下与存储器装置通信。存储器接口1060可通过通道与存储器装置通信命令、地址和数据。
在示例中,存储器控制器1000可不包括存储器缓冲器1020和缓冲器控制电路1050。
在示例中,处理器1010可通过使用代码来控制存储器控制器1000的操作。处理器1010可从设置在存储器控制器1000中的非易失性存储器装置(例如,只读存储器(ROM))加载代码。在另一示例中,处理器1010可通过存储器接口1060从存储器装置加载代码。
在示例中,存储器控制器1000的总线1070可被划分成控制总线和数据总线。数据总线可被配置成在存储器控制器1000中传输数据,控制总线可被配置成在存储器控制器1000中传输诸如命令和地址的控制信息。数据总线和控制总线彼此分离,并且可能不会彼此干扰或影响。数据总线可联接到主机接口1040、缓冲器控制电路1050、ECC电路1030和存储器接口1060。控制总线可联接到主机接口1040、处理器1010、缓冲器控制电路1050、存储器缓冲器1020和存储器接口1060。
图16是示出根据本公开的实施例的应用了存储装置的存储卡系统的框图。
参照图16,存储卡系统2000包括存储器控制器2100、存储器装置和连接器2300。
存储器控制器2100联接到存储器装置2200。存储器控制器2100被配置成访问存储器装置2200。例如,存储器控制器2100被配置成控制存储器装置2200的读取操作、写入操作、擦除操作和后台操作。存储器控制器2100被配置成提供存储器装置2200与主机之间的接口。存储器控制器2100被配置成驱动用于控制存储器装置2200的固件。存储器装置2200可与参照图3描述的存储器装置100相同地来实施。
当存储器控制器2100执行垃圾收集GC时,存储器控制器2100可执行GC,而不将存储器装置2200中包括的存储块之中被选择为牺牲块的存储块的有效数据移动到空闲块。在实施例中,存储器控制器2100可以子块为单位来划分牺牲块,并且当子块中仅包括有效页面时,擦除除了仅包括有效页面的子块之外的其它子块。因此,除了仅包括有效页面的子块之外的其它子块中不应当存在任何有效页面。
随后,当被选择作为牺牲块的存储块被选择作为开放块时,数据可存储在被选择作为开放块的存储块的子块之中的经擦除的子块中,或者存储在未经擦除的子块之中仅包括空页面的子块中。
在示例中,存储器控制器2100可包括诸如随机存取存储器(RAM)、处理单元、主机接口、存储器接口和ECC电路的组件。
存储器控制器2100可通过连接器2300与外部装置通信。存储器控制器2100可根据特定通信协议与外部装置(例如,主机)通信。在示例中,存储器控制器2100可通过诸如以下的各种通信协议中的至少一种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙以及NVMe。
在示例中,存储器装置2200可利用诸如以下的各种非易失性存储器装置来实施:电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)以及自旋力矩转移磁性RAM(STT-MRAM)。
在实施例中,存储器装置2200可确定被分别包括在多个平面中的预测块中存储的ROM数据是否相同,或者被分别包括在多个平面中的预测块中存储的ROM数据与存储器装置2200中的ROM中存储的ROM数据是否相同。当ROM数据不完全相同时,存储器装置2200可确定大多数ROM数据,并且执行校正少数ROM数据中发生的错误的操作或者执行利用大多数ROM数据替换少数ROM数据的操作。
存储器控制器2100和存储器装置2200可被集成到单个半导体装置中以构成存储卡。例如,存储器控制器2100和存储器装置2200可构成诸如以下的存储卡:PC卡(个人计算机存储卡国际协会(PCMCIA))、紧凑型闪存(CF)卡、智能媒体卡(SM和SMC)、记忆棒、多媒体卡(MMC、RS-MMC、微型MMC和eMMC)、SD卡(SD、迷你SD、微型SD和SDHC)以及通用闪存(UFS)。
图17是示例性地示出根据本公开的实施例的应用了存储装置的固态驱动器(SSD)系统的框图。
参照图17,SSD系统3000包括主机3100和SSD 3200。SSD 3200通过信号连接器3001与主机3100交换信号SIG,并且通过电源连接器3002接收电力PWR。SSD 3200包括SSD控制器3210、多个闪速存储器3221至322n、辅助电源3230和缓冲存储器3240。
在实施例中,SSD控制器3210可用作参照图1描述的存储器控制器200。
SSD控制器3210可响应于从主机3100接收的信号SIG来控制多个闪速存储器3221至322n。在示例中,信号SIG可以是基于主机3100和SSD 3200之间的接口的信号。例如,信号SIG可以是由诸如以下的接口中的至少一种来限定的信号:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙以及NVMe。
当SSD控制器3210执行垃圾收集GC时,SSD控制器3210可执行GC,而不将多个闪速存储器3221至322n中包括的存储块之中被选择为牺牲块的存储块的有效数据移动到空闲块。在实施例中,SSD控制器3210可以子块为单位来划分牺牲块,并且当子块中仅包括有效页面时,擦除除了仅包括有效页面的子块之外的其它子块。因此,除了仅包括有效页面的子块之外的其它子块中不应当存在任何有效页面。
随后,当被选择作为牺牲块的存储块被选择作为开放块时,数据可存储在被选择作为开放块的存储块的子块之中的经擦除的子块中,或者存储在未经擦除的子块之中仅包括空页面的子块中。
辅助电源3230通过电源连接器3002联接到主机3100。当来自主机3100的电力供应不平稳时,辅助电源3230可提供SSD 3200的电力。在示例中,辅助电源3230可位于SSD 3200中,或者位于SSD 3200的外部。例如,辅助电源3230可位于主板上,并且向SSD 3200提供辅助电力。
缓冲存储器3240作为SSD 3200的缓冲存储器操作。例如,缓冲存储器3240可临时存储从主机3100接收的数据或从多个闪速存储器3221至322n接收的数据,或者临时存储闪速存储器3221至322n的元数据(例如,映射表)。缓冲存储器3240可包括诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM的易失性存储器或诸如FRAM、ReRAM、STT-MRAM和PRAM的非易失性存储器。
图18是示出根据本公开的实施例的应用了存储装置的用户系统的框图。
参照图18,用户系统4000包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可驱动包括在用户系统4000中的组件、操作系统(OS)、用户程序等。在示例中,应用处理器4100可包括用于控制包括在用户系统4000中的组件的控制器、接口、图形引擎等。应用处理器4100可被设置为片上系统(SoC)。
当应用处理器4100执行垃圾收集GC时,应用处理器4100可执行GC,而不将存储模块4400中包括的存储块之中被选择为牺牲块的存储块的有效数据移动到空闲块。在实施例中,应用处理器4100可以子块为单位来划分牺牲块,并且当子块中仅包括有效页面时,擦除除了仅包括有效页面的子块之外的其它子块。因此,除了仅包括有效页面的子块之外的其它子块中不应当存在任何有效页面。
随后,当被选择作为牺牲块的存储块被选择作为开放块时,数据可存储在被选择作为开放块的存储块的子块之中的经擦除的子块中,或者存储在未经擦除的子块之中仅包括空页面的子块中。
存储器模块4200可作为用户系统4000的主存储器、工作存储器、缓冲存储器或高速缓存存储器操作。存储器模块4200可包括诸如DRAM、SDRAM、DDR SDRAM、DDR2 SDRM、DDR3SDRAM、LPDDR SDRAM、LPDDR2 SDRAM和LPDDR3 SDRAM的易失性随机存取存储器或者诸如PRAM、ReRAM、MRAM和FRAM的非易失性随机存取存储器。在示例中,应用处理器4100和存储器模块4200可通过基于堆叠封装(PoP)来封装而被设置为一个半导体封装。
网络模块4300可与外部装置通信。在示例中,网络模块4300可支持诸如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、Wimax、WLAN、UWB、蓝牙或Wi-Fi的无线通信。在示例中,网络模块4300可包括在应用处理器4100中。
存储模块4400可存储数据。例如,存储模块4400可存储从应用处理器4100接收的数据。可选地,存储模块4400可将其中存储的数据传输到应用处理器4100。在示例中,存储模块4400可利用诸如以下的非易失性半导体存储器装置来实施:相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、NAND闪存、NOR闪存或具有三维结构的NAND闪存。在示例中,存储模块4400可被设置为可移动驱动器,诸如用户系统4000的存储卡或外部驱动器。
在示例中,存储模块4400可包括多个非易失性存储器装置,并且多个非易失性存储器装置可与参照图3及图9至图11描述的存储器装置相同地进行操作。存储模块4400可与参照图1描述的存储装置50相同地进行操作。
用户接口4500可包括用于向应用处理器4100输入数据或命令,或用于将数据输出到外部装置的接口。在示例中,用户接口4500可包括诸如以下的用户输入接口:键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件。用户接口4500可包括诸如以下的用户输出接口:液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监视器。
根据本公开,当执行垃圾收集时,牺牲块不被完全擦除,而是被以子块为单位来擦除,而不将牺牲块的有效数据移动到空闲块,从而可有效地执行垃圾收集。
虽然已参照本公开的某些实施例示出和描述了本公开,但本领域技术人员将理解的是,在不脱离由所附权利要求及其等同方案限定的本公开的精神和范围的情况下,可进行形式和细节上的各种改变。因此,本公开的范围不应限于上述实施例,而是应当由不仅所附权利要求还有其等同方案来确定。
在上述实施例中,可选择性地执行所有步骤或可省略部分步骤。在每个实施例中,步骤不一定按照所描述的顺序执行,并且可被重新排列。本说明书和附图中公开的实施例仅是示例以帮助理解本公开,并且本公开不限于此。也就是说,对于本领域技术人员应显而易见的是,可基于本公开的技术范围进行各种修改。
已在附图和说明书中描述了本公开的实施例。虽然本文使用了特定的术语,但这些术语仅用于描述本公开的实施例。因此,本公开不限于上述实施例,并且在本公开的精神和范围内可进行许多变化。对于本领域技术人员应显而易见的是,除本文公开的实施例之外,还可基于本公开的技术范围进行各种修改。
Claims (21)
1.一种存储器控制器,所述存储器控制器控制存储器装置,所述存储器装置包括存储数据的多个存储块,所述存储器控制器包括:
牺牲块设置电路,在执行垃圾收集时,通过接收代表所述多个存储块的每一个中是否包括有效页面和无效页面的存储块信息来在所述存储块之中选择牺牲块;以及
子块控制器:
通过将所述牺牲块划分成子块,输出确定所述牺牲块内的子块中的每一个中包括的有效页面的子块读取命令,以及
通过从所述存储器装置接收对应于所述子块读取命令的子块信息,输出选择性地擦除所述牺牲块中包括的所述子块的一部分的子块擦除命令。
2.根据权利要求1所述的存储器控制器,其中所述子块信息代表所述牺牲块内的子块中的每一个是否仅包括有效页面。
3.根据权利要求2所述的存储器控制器,其中,当基于所述子块信息,所述子块之中存在仅具有有效页面的子块时,所述子块控制器确定除了仅具有有效页面的子块之外的子块中的每一个是否包括有效页面。
4.根据权利要求3所述的存储器控制器,其中,当除了仅具有有效页面的子块之外的子块中的每一个包括有效页面时,所述子块控制器暂停执行所述垃圾收集的操作。
5.根据权利要求3所述的存储器控制器,其中,当除了仅具有有效页面的子块之外的子块中的每一个不包括任何有效页面时,所述子块控制器输出所述子块擦除命令,以擦除除了仅具有有效页面的子块之外的子块。
6.根据权利要求5所述的存储器控制器,其中,当输出所述子块擦除命令时,所述子块控制器对应于所述子块擦除命令而生成指示待擦除子块的子块擦除信息。
7.根据权利要求6所述的存储器控制器,进一步包括位图控制器,所述位图控制器包括所述多个存储块中的每一个的位图,并且控制所述位图中包括的位值,
其中针对子块中的每一个确定所述位图中包括的所述位值。
8.根据权利要求7所述的存储器控制器,其中所述位图控制器改变对应于所述牺牲块的所述位图中包括的位值之中、对应于所述待擦除子块的位值和对应于仅具有空页面的子块的位值。
9.根据权利要求8所述的存储器控制器,其中,当在所述牺牲块中包括的子块被擦除之后所述牺牲块变成开放块时,基于所述牺牲块的所述位图来确定待存储从主机接收的新数据的页面。
10.根据权利要求9所述的存储器控制器,其中将与所述牺牲块的所述位图中包括的所述位值之中经改变的位值相对应的子块中包括的页面中的任意一个确定为待存储从所述主机接收的新数据的页面。
11.一种操作存储器控制器的方法,所述存储器控制器控制存储器装置,所述存储器装置包括存储数据的多个存储块,所述方法包括:
当执行垃圾收集时,接收代表所述多个存储块中的每一个中是否包括有效页面和无效页面的存储块信息;
基于所述存储块信息,在所述存储块之中选择牺牲块;
通过将所述牺牲块划分成子块,确定所述牺牲块内的所述子块之中的待擦除子块;以及
输出擦除所确定的子块的子块擦除命令。
12.根据权利要求11所述的方法,其中所述确定是通过接收子块信息来执行的,所述子块信息代表所述牺牲块内的子块中的每一个中是否仅包括有效页面。
13.根据权利要求12所述的方法,其中确定所述子块之中的所述待擦除子块包括确定除了仅具有有效页面的子块之外的子块中的每一个中是否包括有效页面。
14.根据权利要求13所述的方法,进一步包括当除了仅具有有效页面的子块之外的子块中的每一个中包括有效页面时,控制暂停所述垃圾收集。
15.根据权利要求13所述的方法,其中当除了仅具有有效页面的子块之外的子块中的每一个中不包括任何有效页面时,输出所述子块擦除命令。
16.根据权利要求15所述的方法,进一步包括当输出所述子块擦除命令时,对应于所述子块擦除命令,生成指示所述待擦除子块的子块擦除信息。
17.根据权利要求16所述的方法,进一步包括基于所述子块擦除信息,改变所述牺牲块的位图中包括的位值,
其中针对所述牺牲块中包括的子块中的每一个设置所述位值。
18.根据权利要求17所述的方法,其中改变对应于所述牺牲块的位图中包括的所述位值之中、对应于所述待擦除子块的位值和对应于仅具有空页面的子块的位值。
19.根据权利要求18所述的方法,进一步包括当在擦除所述牺牲块中包括的子块之后所述牺牲块变成开放块时,基于所述牺牲块的所述位图,确定待存储新数据的页面。
20.根据权利要求19所述的方法,其中将与所述牺牲块的所述位图中包括的所述位值之中经改变的位值相对应的子块中包括的页面中的任意一个确定为待存储所述新数据的页面。
21.一种存储器系统,包括:
存储器装置,包括牺牲存储块,所述牺牲存储块具有多个子块,所述多个子块中的每一个具有多个页面;以及
控制器:
在对所述牺牲存储块进行垃圾收集操作期间,控制所述存储器装置以擦除所述牺牲存储块内仅具有无效页面的子块,并且
将所述牺牲存储块设置为开放存储块,而不将有效数据从所述牺牲存储块移动到任何存储块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190082154A KR102626058B1 (ko) | 2019-07-08 | 2019-07-08 | 메모리 컨트롤러 및 그 동작 방법 |
KR10-2019-0082154 | 2019-07-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112199037A true CN112199037A (zh) | 2021-01-08 |
Family
ID=74004708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911283096.6A Withdrawn CN112199037A (zh) | 2019-07-08 | 2019-12-13 | 存储器控制器及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11269767B2 (zh) |
KR (1) | KR102626058B1 (zh) |
CN (1) | CN112199037A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220103340A (ko) * | 2021-01-15 | 2022-07-22 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9466384B1 (en) * | 2015-04-13 | 2016-10-11 | Macronix International Co., Ltd. | Memory device and associated erase method |
US20170060738A1 (en) * | 2015-08-25 | 2017-03-02 | Sandisk Technologies Inc. | Memory System and Method for Performing Garbage Collection on Blocks Based on Their Obsolescence Patterns |
US20190018784A1 (en) * | 2017-07-11 | 2019-01-17 | Fujitsu Limited | Storage control apparatus and computer-readable storage medium storing storage control program |
US20190114258A1 (en) * | 2017-10-16 | 2019-04-18 | Fujitsu Limited | Storage control apparatus and method of controlling garbage collection |
CN109684230A (zh) * | 2017-10-19 | 2019-04-26 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140094278A (ko) | 2013-01-22 | 2014-07-30 | 에스케이하이닉스 주식회사 | 반도체 장치 및 이의 동작 방법 |
KR102301772B1 (ko) | 2015-03-09 | 2021-09-16 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 가비지 컬렉션 방법 |
JP6441171B2 (ja) * | 2015-06-12 | 2018-12-19 | 東芝メモリ株式会社 | メモリシステム |
US9898215B2 (en) * | 2015-12-07 | 2018-02-20 | International Business Machines Corporation | Efficient management of page retirement in non-volatile memory utilizing page retirement classes |
KR102653401B1 (ko) * | 2016-07-18 | 2024-04-03 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작방법 |
KR102512727B1 (ko) * | 2017-12-22 | 2023-03-22 | 삼성전자주식회사 | 가비지 컬렉션을 수행하는 스토리지 장치, 및 스토리지 장치의 가비지 컬렉션 방법 |
-
2019
- 2019-07-08 KR KR1020190082154A patent/KR102626058B1/ko active IP Right Grant
- 2019-11-22 US US16/692,615 patent/US11269767B2/en active Active
- 2019-12-13 CN CN201911283096.6A patent/CN112199037A/zh not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9466384B1 (en) * | 2015-04-13 | 2016-10-11 | Macronix International Co., Ltd. | Memory device and associated erase method |
US20170060738A1 (en) * | 2015-08-25 | 2017-03-02 | Sandisk Technologies Inc. | Memory System and Method for Performing Garbage Collection on Blocks Based on Their Obsolescence Patterns |
US20190018784A1 (en) * | 2017-07-11 | 2019-01-17 | Fujitsu Limited | Storage control apparatus and computer-readable storage medium storing storage control program |
US20190114258A1 (en) * | 2017-10-16 | 2019-04-18 | Fujitsu Limited | Storage control apparatus and method of controlling garbage collection |
CN109684230A (zh) * | 2017-10-19 | 2019-04-26 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US20210011844A1 (en) | 2021-01-14 |
KR20210006178A (ko) | 2021-01-18 |
KR102626058B1 (ko) | 2024-01-18 |
US11269767B2 (en) | 2022-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111435289B (zh) | 映射数据访问性能提高的存储器控制器及其操作方法 | |
CN110389720B (zh) | 存储装置及其操作方法 | |
US11543984B2 (en) | Memory controller, storage device and operating method thereof | |
US11543986B2 (en) | Electronic system including host, memory controller and memory device and method of operating the same | |
CN111352855B (zh) | 具有提高的映射更新速度的存储装置及其操作方法 | |
KR20210142981A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
KR20190123544A (ko) | 저장 장치 및 그 동작 방법 | |
US11119950B2 (en) | Storage device and method of operating the same | |
CN111105836B (zh) | 存储装置及其操作方法 | |
KR20190131901A (ko) | 저장 장치 및 그 동작 방법 | |
CN114625673A (zh) | 存储装置及其操作方法 | |
CN112463664A (zh) | 存储装置及其操作方法 | |
CN112988049A (zh) | 存储装置及其操作方法 | |
US11543998B2 (en) | Memory controller for controlling different numbers of memory devices and storage device including the same | |
CN111752856A (zh) | 存储器控制器及其操作方法 | |
KR20210090439A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
CN111445939B (zh) | 存储装置及其操作方法 | |
CN111338978B (zh) | 存储装置以及操作存储装置的方法 | |
CN112309446A (zh) | 存储设备和操作存储设备的方法 | |
CN111796962A (zh) | 存储装置以及存储装置的操作方法 | |
US11269767B2 (en) | Memory controller and operating method thereof | |
CN115509957A (zh) | 主机装置、存储装置及其操作方法 | |
CN114388038A (zh) | 存储器设备及其操作方法 | |
CN114443508A (zh) | 存储装置及其操作方法 | |
CN113342708A (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 |
Application publication date: 20210108 |
|
WW01 | Invention patent application withdrawn after publication |