CN110275673B - 存储装置及其操作方法 - Google Patents
存储装置及其操作方法 Download PDFInfo
- Publication number
- CN110275673B CN110275673B CN201811365801.2A CN201811365801A CN110275673B CN 110275673 B CN110275673 B CN 110275673B CN 201811365801 A CN201811365801 A CN 201811365801A CN 110275673 B CN110275673 B CN 110275673B
- Authority
- CN
- China
- Prior art keywords
- block
- memory
- blocks
- sub
- storage device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- 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
- 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
- G06F12/0261—Garbage collection, i.e. reclamation of unreferenced memory using reference counting
-
- 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/0629—Configuration or reconfiguration of 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/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/0658—Controller construction arrangements
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
-
- 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/70—Details relating to dynamic memory management
- G06F2212/702—Conservative garbage collection
-
- 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
Abstract
存储装置及其操作方法。一种用于使用部分块擦除操作来执行垃圾收集操作的存储装置包括:存储器件,该存储器件包括多个主块,所述多个主块各自包括多个子块;以及存储控制器,该存储控制器被配置为执行用于保证所述多个主块当中的没有存储数据的空闲块的垃圾收集操作,其中,所述存储控制器包括写处置器,该写处置器被配置为根据至少一个受害块中的有效数据的量是否超过一个主块的存储容量来擦除所述多个主块当中的目标块的至少一部分。
Description
技术领域
本公开总体上涉及电子装置,更具体地,涉及存储装置及其操作方法。
背景技术
存储装置在诸如计算机、智能电话或智能平板这样的主机装置的控制下存储数据。存储装置包括用于在磁盘上存储数据的装置(诸如硬盘驱动器(HDD))或者用于在半导体存储器上存储数据的装置(即,诸如固态驱动器(SSD)或存储卡这样的非易失性存储器)。
存储装置可以包括用于存储数据的存储器件和用于控制存储器件的存储控制器。存储器件可以是易失性存储器件或非易失性存储器件。非易失性存储器件可以是只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存存储器、相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、铁电RAM(FRAM)等。
发明内容
实施方式提供了一种用于使用部分块擦除操作来执行垃圾收集操作的存储装置以及该存储装置的操作方法。
根据本公开的一方面,提供了一种存储装置,该存储装置包括:存储器件,该存储器件包括多个主块,所述多个主块各自包括多个子块;以及存储控制器,该存储控制器被配置为执行用于保证所述多个主块当中的没有存储数据的空闲块的垃圾收集操作,其中,所述存储控制器包括写处置器,该写处置器被配置为根据至少一个受害块(victim block)中的有效数据的量是否超过一个主块的存储容量来擦除所述多个主块当中的目标块的至少一部分。
根据本公开的另一方面,提供了一种用于操作存储装置的方法,该存储装置包括:存储器件,该存储器件包括各自包括多个子块的多个主块;以及存储控制器,该存储控制器用于执行用于保证所述多个主块当中的没有存储数据的空闲块的垃圾收集操作,该方法包括以下步骤:确定所述多个主块当中的至少一个受害块中的有效数据的量是否超过一个主块的存储容量;以及基于确定操作的结果,擦除所述多个主块当中的目标块的至少一部分。
根据本公开的一方面,提供了一种存储装置,该存储装置包括:存储器件,该存储器件包括:第一主块和第二主块,该第一主块和第二主块各自包括多个页;以及子块设置组件,该子块设置组件被配置为存储各自包括所述多个页中的一组或更多组的一个或更多个子块的信息;以及控制器,该控制器被配置为控制所述存储器件在对分别作为目标块和受害块的所述第一主块和所述第二主块的垃圾收集操作中,根据存储在所述子块设置组件中的信息对所述第一主块的子块当中存储无效数据的一个或更多个子块执行擦除操作,其中,存储在所述第一主块中的无效数据的量大于存储在所述第二主块中的有效数据的量。
附图说明
现在,将参照附图更充分地描述各种实施方式;然而,可以以与本文中例示和描述的方式不同的方式来配置或布置元件和特征。因此,本发明不限于本文中阐述的实施方式。相反,提供这些实施方式,使得本公开是彻底和完整的,并且把实施方式的范围充分传达给本领域技术人员。
在附图中,为了清楚例示,可能夸大尺寸。应该理解,当一元件被称为“在”两个元件“之间”时,它可以是这两个元件之间的唯一元件,或者还可以存在一个或更多个中间元件。相似的参考标号始终指代相似的元件。另外,在整篇说明书中,对“一实施方式”、“另一实施方式”等的引用不一定是指唯一一个实施方式,并且对任何这种短语的不同引用不一定是指同一实施方式。
图1是例示根据本公开的实施方式的存储装置的框图。
图2是例示根据本公开的实施方式的图1的存储器件的结构的图。
图3是例示根据本公开的实施方式的图2的存储单元阵列的图。
图4是例示根据本公开的实施方式的图3的任何一个存储块的电路图。
图5是例示图3的存储块的另一实施方式的电路图。
图6是例示根据本公开的实施方式的设置子块的图。
图7是例示根据本公开的另一实施方式的设置子块的图。
图8是例示根据本公开的另一实施方式的设置子块的图。
图9是例示根据本公开的实施方式的在仅擦除存储块的一部分的部分块擦除操作中施加的电压的图。
图10是例示根据本公开的实施方式的、存储控制器提供给存储器件以设置子块的控制信号的图。
图11是例示根据本公开的实施方式的包括响应于图10的控制信号而设置的子块的主块的图。
图12是例示根据常规方法的系统块的更新过程的图。
图13是例示根据本公开的实施方式的系统块的更新过程的图。
图14是例示根据本公开的实施方式的系统块的使用状态的图。
图15是例示根据本公开的实施方式的写缓冲器的刷新操作(flush operation)的图。
图16是例示根据本公开的实施方式的存储装置的垃圾收集操作的图。
图17是例示根据本公开的实施方式的垃圾收集操作的图。
图18是例示根据本公开的实施方式的图1的写处置器的结构的框图。
图19是例示根据本公开的实施方式的存储装置的操作方法的流程图。
图20是例示根据本公开的另一实施方式的存储装置的操作方法的流程图。
图21是例示根据本公开的另一实施方式的存储装置的操作方法的流程图。
图22是例示图1的存储控制器的另一实施方式的图。
图23是例示根据本公开的实施方式的、应用了存储装置的存储卡系统的框图。
图24是例示根据本公开的实施方式的、应用了存储装置的固态驱动器(SSD)系统的框图。
图25是例示根据本公开的实施方式的、应用了存储装置的用户系统的框图。
具体实施方式
本文的具体结构性描述和功能性描述是出于描述本公开的实施方式的目的。所公开的实施方式可以以各种方式实现,因此本发明不限于本文所阐述的实施方式。
可以以各种方式修改所公开的实施方式,包括在装置和组件的配置和形状方面的修改。因此,本公开的实施方式不限于指定的形状或配置。而是,本公开包括不脱离本公开的精神和技术范围的所有改变、等同物或替代物。
虽然诸如“第一”和“第二”这样的术语可用于标识各种组件,但是这些组件不受上述术语的限制。上述术语仅用于将一个组件与另一个组件区分开,否则这些组件具有相同或相似的名称。例如,第一组件可以被称为第二组件而不脱离本公开的权利范围,并且同样地,第二组件可以被称为第一组件。
应当理解,当一元件被称为“连接”或“联接”到另一元件时,它可以直接连接或联接到另一元件,或者也可以存在一个或更多个中间元件。相反,当一元件被称为“直接连接”或“直接联接”到另一元件时,不存在中间元件。诸如“在…之间”、“紧接地在…之间”或者“与…相邻”和“与…直接相邻”之类的描述组件之间的关系的其它表达可以被类似地解释。
本申请中使用的术语仅用于描述具体实施方式,并不旨在限制本公开。除非上下文另有明确说明,否则本公开中的单数形式旨在包括复数形式,反之亦然。还将理解的是,诸如“包括”或“具有”等的术语旨在指示存在所陈述的特征、数量、操作、动作、组件、部件或其组合,但是并不旨在排除可以存在或添加一个或更多个其它特征、数量、操作、动作、组件、部件或其组合的可能性。
只要没有被不同地定义,本文使用的所有术语(包括技术或科学术语)具有本公开所属领域的技术人员通常理解的含义。具有如在字典中定义的含义的术语应当被理解为使得它们具有与相关技术的上下文一致的含义。只要本申请中没有明确定义,不应以理想或过于刻板的方式理解术语。
在描述那些实施方式时,可以省略对本公开所属的领域公知和与本公开不直接相关的技术的描述,以免不必要地模糊对本公开的特征的描述。
将参照附图详细描述本公开的各种实施方式,以便本领域技术人员能够实践本公开。
图1是例示根据本公开的实施方式的存储装置的框图。
参照图1,存储装置50可包括存储器件100和存储控制器200。
存储装置50在诸如移动电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、TV、平板PC或车载信息娱乐系统这样的主机300的控制下存储数据。
存储器件100可存储数据。存储器件100在存储控制器200的控制下操作。存储器件100可包括存储单元阵列,该存储单元阵列包括用于存储数据的多个存储单元。存储单元阵列可包括多个存储块。每个存储块可包括多个存储单元。一个存储块可包括多个页。在一实施方式中,页可以是用于将数据存储在存储器件100中或者读取存储在存储器件100中的数据的单元。存储块可以是用于执行擦除操作的单元。
根据数据是否被存储在其中,存储块可以是空闲块、开放块(open block)和封闭块(closed block)中的一个。空闲块可以是空的而不存储任何数据的存储块。开放块可以是部分地存储数据的存储块。封闭块可以是完全存储数据的存储块。
在一实施方式中,一个存储块可包括多个子块。可以在存储控制器200的控制下对子块的大小进行各种设置。
在一实施方式中,本公开的存储器件100可以以子块为单位执行擦除操作。当一个存储块包括多个子块时,存储器件100可以擦除存储块中的特定子块。也就是说,存储器件100可以擦除存储块的一部分。在本说明书中,存储块被定义为主块。一个主块可以包括多个子块,并且子块的大小可以由存储控制器200改变。以主块为单位执行的擦除操作被称为正常擦除操作,而以子块为单位执行的擦除操作被称为部分块擦除操作。
存储器件100还可以包括子块设置组件131。子块设置组件131可以设置子块的大小。子块设置组件131可以用寄存器实现。在一实施方式中,子块设置组件131可以用SRAM实现。存储器件100可以根据存储在子块设置组件131中的值来设置子块的大小。
在一实施方式中,存储器件100可以响应于从存储控制器200提供的设置特征命令来设置子块设置组件131的特征数据。因此,存储器件100的子块的大小可以在存储控制器200的控制下改变。
在一实施方式中,存储器件100可以是双倍数据速率同步动态随机存取存储器(DDR SDRAM)、低功率双倍数据速率4(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SRAM、低功率DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)、NAND闪存存储器、垂直NAND闪存存储器、NOR闪存存储器、电阻式随机存取存储器(RRAM)、相变随机存取存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)、自旋转移力矩随机存取存储器(STT-RAM)等。在本说明书中,为了便于描述,假设并描述了存储器件100是NAND闪存存储器的情况。
在一实施方式中,存储器件100可以以三维阵列结构实现。本公开不仅可以应用于其中利用浮栅(FG)来配置电荷存储层的闪存存储器件,而且也可以应用于其中利用绝缘层来配置电荷存储层的电荷陷阱闪存(CTF)。
存储器件100被配置为从存储控制器200接收命令和地址并且访问存储单元阵列中的由地址选择的区域。也就是说,存储器件100可以对由地址选择的区域执行与命令相对应的操作。例如,存储器件100可以执行写入(编程)操作、读取操作和擦除操作。在编程操作中,存储器件100可以将数据编程在由地址选择的区域中。在读取操作中,存储器件100可以从由地址选择的区域读取数据。在擦除操作中,存储器件100可以擦除存储在由地址选择的区域中的数据。
存储控制器200可以响应于来自主机300的请求或者与主机300的请求无关地控制存储器件100的操作。
例如,存储控制器200可以响应于来自主机300的请求而控制存储器件100执行编程操作、读取操作、擦除操作等。在编程操作中,存储控制器200可以向存储器件100提供编程命令、物理地址和数据。在读取操作中,存储控制器200可以向存储器件100提供读取命令和物理地址。在擦除操作中,存储控制器200可以向存储器件100提供擦除命令和物理地址。
在一实施方式中,存储控制器200可以在没有来自主机300的任何请求的情况下自主地生成编程命令、地址和数据,并且将编程命令、地址和数据发送到存储器件100。例如,存储控制器200可以将命令、地址和数据提供给存储器件100以执行诸如用于耗损均衡的编程操作和用于垃圾收集的编程操作这样的后台操作。
存储控制器200还可以包括写处置器210。
写处置器210可以接收并处理从主机300输入的写请求。
当从主机300输入写请求时,写处置器210可以确定存储器件100中的当前空闲块的数量是否足够。当当前空闲块的数量不足时,写处置器210可以执行垃圾收集操作以保证更多的空闲块。
例如,当当前空闲块的数量超过第一参考值TH1时,空闲块供应充足,因此,写处置器210可以响应于输入的写请求而将数据存储在空闲块中。
当当前空闲块的数量小于或等于第一参考值TH1时,写处置器210可以执行垃圾收集操作。
在一实施方式中,写处置器210可以根据当前空闲块的数量是否超过第二参考值TH2来确定是作为后台操作还是作为前台操作来执行垃圾收集操作。后台操作可以是在存储器件100处于空闲状态时执行的操作。存储器件100可在正在作为前台操作而执行垃圾收集操作的同时不执行另一操作。
例如,当当前空闲块的数量超过第二参考值TH2时,写处置器210可以将垃圾收集操作执行为后台操作。当当前空闲块的数量小于或等于第二参考值TH2时,写处置器210可以将垃圾收集操作执行为前台操作。
在一实施方式中,第一参考值TH1大于第二参考值TH2。
在各种实施方式中,写处置器210可以选择受害块中的至少一个以便执行垃圾收集操作。封闭块可以在其中包括有效数据和无效数据。可以根据封闭块中包括的有效数据或无效数据的量来确定受害块。例如,可以选择有效数据的量是一定量或更少量的存储块作为存储块当中的受害块。
如果在垃圾收集操作被执行为前台操作时存储在受害块中的有效数据的量超过单个存储块的存储容量,则写处置器210可以在垃圾收集操作中执行正常擦除操作。
在一实施方式中,如果存储在受害块中的有效数据的量小于单个存储块的存储容量,则写处置器210可以在垃圾收集操作中执行部分块擦除操作。
稍后将参照图12至图16更详细地描述在写处置器210的控制下执行的垃圾收集操作。
存储控制器200可以执行用于控制存储器件100的固件(FW)。当存储器件100是闪存存储器件时,存储控制器200可以被配置为操作诸如闪存转换层(FTL)这样的固件,用于控制主机300和存储器件100之间的通信。具体地,存储控制器200可以将包括在来自主机300的请求中的逻辑地址转换为物理地址,该物理地址是要提供给存储器件100的地址。
存储控制器200可以包括缓冲存储器(未示出)。在一实施方式中,存储控制器200可以控制主机300和缓冲存储器之间的数据交换。另选地,存储控制器200可以将用于控制存储器件100的系统数据临时存储在缓冲存储器中。例如,存储控制器200可以将从主机300输入的数据临时存储在缓冲存储器中,然后将临时存储在缓冲存储器中的数据发送到存储器件100。
在各种实施方式中,缓冲存储器可以用作存储控制器200的工作存储器或缓存缓冲器。缓冲存储器可以存储由存储控制器200执行的代码或命令。另选地,缓冲存储器可以存储由存储控制器200处理的数据。此外,缓冲存储器可以存储建立逻辑地址和物理地址之间的映射关系的逻辑-物理地址映射表。
在一实施方式中,缓冲存储器可以用动态随机存取存储器(DRAM)(诸如双倍数据速率同步DRAM(DDR SDRAM)、低功率双倍数据速率4(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)或Rambus动态随机存取存储器(RDRAM))或者静态随机存取存储器(SRAM)实现。
在一实施方式中,存储控制器200可以控制至少两个存储器件100。存储控制器200可以根据交织方案控制存储器件100,从而改进操作性能。
主机300可以使用各种通信协议(诸如通用串行总线(USB)、串行AT附件(SATA)、高速芯片间互连(HSIC)、小型计算机系统接口(SCSI)、火线、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存存储(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、已注册DIMM(RDIMM)和负载减少DIMM(LRDIMM))中的至少一种与存储装置50通信。
存储装置50可以根据能够与主机300进行通信的主机接口被制造为各种类型的存储装置中的任何一种。例如,存储装置50可以用各种类型的存储装置(诸如固态驱动器(SSD)的多媒体卡、多媒体卡(MMC)、嵌入式多媒体卡(eMMC)、缩小大小的多媒体卡(RS-MMC)以及微型多媒体卡(micro-MMC)类型、安全数字(SD)、迷你安全数字(mini-SD)和微型安全数字(micro-SD)类型的安全数字(SD)卡、通用存储总线(USB)存储装置、通用闪存存储(UFS)装置、个人计算机存储卡国际协会(PCMCIA)卡类型的存储装置、外围组件互连(PCI)卡类型的存储装置、高速PCI(PCI-E)卡类型的存储装置、紧凑型闪存(CF)卡、智能媒体卡和记忆棒)中的任何一种来实现。
存储装置50可以被制造为各种封装类型中的任何一种。例如,存储装置50可以被制造为堆叠式封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)和晶圆级层叠封装(WSP)中的任何一种。
图2是例示图1的存储器件100的结构的图。
参照图2,存储器件100可以包括存储单元阵列110、外围电路120和控制逻辑130。
存储单元阵列110包括多个存储块BLK1至BLKz。多个存储块BLK1至BLKz通过行线RL联接到地址解码器121。多个存储块BLK1至BLKz通过位线BL1至BLm联接到读/写电路123。多个存储块BLK1至BLKz中的每一个包括多个存储单元。
在一实施方式中,多个存储单元可以是非易失性存储单元。在多个存储单元当中,联接到同一字线的存储单元可以被定义为一页。也就是说,存储单元阵列110可以包括多个页。在实施方式中,存储单元阵列110中的多个存储块BLK1至BLKz中的每一个可以包括多个虚设单元。一个或更多个虚设单元可以串联联接在漏极选择晶体管和存储单元之间以及源极选择晶体管和存储单元之间。
存储器件100的每一个存储单元可以是用于存储一个数据比特的单层单元(SLC)、用于存储两个数据比特的多层单元(MLC)、用于存储三个数据比特的三层单元(TLC)或者用于存储四个数据比特的四层单元(QLC)。
外围电路120可以包括地址解码器121、电压发生器122、读/写电路123和数据输入/输出电路124。
外围电路120驱动存储单元阵列110。例如,外围电路120可以驱动存储单元阵列110以执行编程操作、读取操作和擦除操作。
地址解码器121通过行线RL联接到存储单元阵列110。行线RL可以包括漏极选择线、字线、源极选择线和公共源极线。在一实施方式中,字线可以包括正常字线和虚设字线。在一实施方式中,行线RL还可以包括管道选择线。
地址解码器121可以在控制逻辑130的控制下操作。地址解码器121从控制逻辑130接收地址ADDR。
地址解码器121可以解码所接收的地址ADDR中的块地址。地址解码器121根据经解码的块地址选择存储块BLK1至BLKz当中的至少一个存储块。地址解码器121可以解码所接收的地址ADDR中的行地址。地址解码器121可以通过根据经解码的行地址通过将从电压发生器122提供的电压施加到字线WL来选择所选择的存储块的至少一条字线WL。
在编程操作中,地址解码器121可以将编程电压施加到被选字线,并且将电平低于编程电压的电平的通过电压施加到未选字线。在编程验证操作中,地址解码器121可以将验证电压施加到被选字线,并且将高于验证电压的验证通过电压施加到未选字线。
在读取操作中,地址解码器121可以将读取电压施加到被选字线,并且将高于读取电压的通过电压施加到未选字线。
在一实施方式中,以存储块为单位执行存储器件100的擦除操作。在擦除操作中,输入到存储器件100的地址ADDR包括块地址。地址解码器121可以对块地址进行解码,并根据经解码的块地址选择一个存储块。在擦除操作中,地址解码器121可以将接地电压施加到与所选择的存储块联接的字线。
在一实施方式中,地址解码器121可以解码向其发送的地址ADDR中的列地址。可以将经解码的列地址(DCA)发送到读/写电路123。作为示例,地址解码器121可以包括诸如行解码器、列解码器和地址缓冲器这样的组件。
电压发生器122可以通过使用提供给存储器件100的外部电源电压来产生多个电压。电压发生器122在控制逻辑130的控制下操作。
在一实施方式中,电压发生器122可以通过调节外部电源电压来产生内部电源电压。由电压发生器122产生的内部电源电压用作存储器件100的操作电压。
在一实施方式中,电压发生器122可以通过使用外部电源电压或内部电源电压来产生多个电压。电压发生器122可以被配置为产生存储器件100所需的各种电压。例如,电压发生器122可以产生多个编程电压、多个通过电压、多个选择读取电压或多个未选读取电压。
例如,电压发生器122可以包括用于接收内部电源电压的多个泵电容器,并且通过在控制逻辑130的控制下选择性地激活多个泵电容器来产生多个电压。
可以通过地址解码器121将多个产生的电压提供给存储单元阵列110。
读/写电路123包括第一页缓冲器PB1至第m页缓冲器PBm,其通过相应的第一位线BL1至第m位线BLm联接至存储单元阵列110。页缓冲器PB1至PBm在控制逻辑130的控制下操作。
第一页缓冲器PB1至第m页缓冲器PBm与数据输入/输出电路124进行数据通信。在编程操作中,页缓冲器PB1至PBm通过数据输入/输出电路124和数据线DL接收要存储的数据DATA。
在编程操作中,当编程脉冲被施加到被选字线时,第一页缓冲器PB1至第m页缓冲器PBm可以通过位线BL1至BLm将通过数据输入/输出电路124接收的数据DATA传送到所选择的存储单元。根据传送的数据DATA对所选择的页的存储单元进行编程。联接到被施加以编程允许电压(例如,接地电压)的位线的存储单元可具有增加的阈值电压。联接到被施加以编程禁止电压(例如,电源电压)的位线的存储单元的阈值电压可被保持。在编程验证操作中,第一页缓冲器PB1至第m页缓冲器PBm通过位线BL1至BLm从所选择的存储单元读取页数据。
在读取操作中,读/写电路123通过位线BL从所选择的页的存储单元读取数据DATA,并将所读取的数据DATA输出到数据输入/输出电路124。
在擦除操作中,读/写电路123可以将位线BL浮置。在一实施方式中,读/写电路123可以包括列选择电路。
数据输入/输出电路124通过数据线DL联接到第一页缓冲器PB1至第m页缓冲器PBm。数据输入/输出电路124在控制逻辑130的控制下操作。
数据输入/输出电路124可以包括接收输入数据的多个输入/输出缓冲器(未示出)。在编程操作中,数据输入/输出电路124可以从外部控制器(未示出)接收要存储的数据DATA。在读取操作中,数据输入/输出电路124向外部控制器输出从读/写电路123中的第一页缓冲器PB1至第m页缓冲器PBm发送的数据。
控制逻辑130可以联接到地址解码器121、电压发生器122、读/写电路123和数据输入/输出电路124。控制逻辑130可以被配置为控制存储器件100的整个操作。控制逻辑130可以响应于从外部装置发送的命令CMD而操作。
在一实施方式中,控制逻辑130还可以包括如参照图1所描述的子块设置组件131。
子块设置组件131可以设置子块的大小。子块设置组件131可以用寄存器实现。在一实施方式中,子块设置组件131可以用SRAM实现。存储器件100可以根据存储在子块设置组件131中的值来设置子块的大小。
在一实施方式中,存储器件100可以响应于从存储控制器200提供的设置特征命令来设置子块设置组件131的特征数据。稍后将参照图10和图11更详细地描述用于根据特征数据设置主块中的子块的大小的方法。
图3是例示图2的存储单元阵列的实施方式的图。
参照图3,存储单元阵列110可以包括多个存储块BLK1至BLKz。每个存储块可以具有三维结构。每个存储块可以包括层叠在基板(未示出)上的多个存储单元。多个存储单元可以沿着+X方向、+Y方向和+Z方向布置。将参照图4和图5更详细地描述每个存储块的结构。
图4是例示图3的存储块BLK1至BLKz中的任意一个存储块BLKa的电路图。
参照图4,存储块BLKa可以包括多个单元串CS11至CS1m和CS21至CS2m。在一实施方式中,多个单元串CS11至CS1m和CS21至CS2m中的每一个可以被形成为“U”形。在存储块BLKa中,m个单元串沿着行方向(即,+X方向)布置。尽管图4例示了沿着列方向(即,+Y方向)布置的两个单元串,但是本公开不限于此。也就是说,为了清楚说明,图4中所示的是两个串布置;应当理解,可以在列方向上布置三个或更多个单元串。
多个单元串CS11至CS1m和CS21至CS2m中的每一个可以包括至少一个源极选择晶体管SST、第一存储单元MC1至第n存储单元MCn、管式晶体管PT和至少一个漏极选择晶体管DST。
选择晶体管SST和DST以及存储单元MC1至MCn可以具有彼此类似的结构。在实施方式中,选择晶体管SST和DST以及存储单元MC1至MCn中的每一个可以包括沟道层、隧道绝缘层、电荷存储层和阻挡绝缘层。在一实施方式中,可以在每个单元串中设置用于提供沟道层的柱。在一实施方式中,可以在每个单元串中设置用于提供沟道层、隧道绝缘层、电荷存储层和阻挡绝缘层中的至少一个的柱。
每个单元串的源极选择晶体管SST联接在公共源极线CSL和存储单元MC1至MCp之间。
在一实施方式中,布置在同一行上的单元串的源极选择晶体管联接到沿着行方向延伸的源极选择线,并且布置在不同行上的单元串的源极选择晶体管联接到不同的源极选择线。在图4中,第一行上的单元串CS11至CS1m的源极选择晶体管联接到第一源极选择线SSL1。第二行上的单元串CS21至CS2m的源极选择晶体管联接到第二源极选择线SSL2。
在另一实施方式中,单元串CS11至CS1m和CS21至CS2m的源极选择晶体管可共同联接至一条源极选择线。
每个单元串的第一存储单元MC1至第n存储单元MCn联接在源极选择晶体管SST和漏极选择晶体管DST之间。
第一存储单元MC1至第n存储单元MCn可以被划分为第一存储单元MC1至第p存储单元MCp以及第(p+1)存储单元MCp+1至第n存储单元MCn。第一存储单元MC1至第p存储单元MCp沿着+Z方向的相反方向顺序布置,并且串联联接在源极选择晶体管SST和管式晶体管PT之间。第(p+1)存储单元MCp+1至第n存储单元MCn沿着+Z方向顺序布置,并且串联联接在管式晶体管PT和漏极选择晶体管DST之间。第一存储单元MC1至第p存储单元MCp和第(p+1)存储单元MCp+1至第n存储单元MCn通过管式晶体管PT联接。每个单元串的第一存储单元MC1至第n存储单元MCn的栅极分别联接至第一字线WL1至第n字线WLn。
每个单元串的管式晶体管PT的栅极联接到管线PL。
每个单元串的漏极选择晶体管DST联接在相应的位线和存储单元MCp+1至MCn之间。沿着行方向布置的单元串联接到沿着行方向延伸的漏极选择线。第一行上的单元串CS11至CS1m的漏极选择晶体管联接到第一漏极选择线DSL1。第二行上的单元串CS21至CS2m的漏极选择晶体管联接到第二漏极选择线DSL2。
沿着列方向布置的单元串联接到沿着列方向延伸的位线。在图4中,第一列上的单元串CS11和CS21联接到第一位线BL1。第m列上的单元串CS1m和CS2m联接到第m位线BLm。
在沿着行方向布置的单元串中联接到同一字线的存储单元构成一页。例如,第一行上的单元串CS11至CS1m中的联接到第一字线WL1的存储单元构成一页。第二行上的单元串CS21到CS2m中的联接到第一字线WL1的存储单元构成另一页。当选择漏极选择线DSL1和DSL2中的任何一条时,可以选择沿一个行方向布置的单元串。当选择字线WL1至WLn中的任何一条时,可以在所选择的单元串中选择一个页。
在另一实施方式中,可以设置偶数位线和奇数位线来代替第一位线BL1至第m位线BLm。此外,在行方向上布置的单元串CS11至CS1m或CS21至CS2m当中的偶数编号的单元串可以分别联接到偶数位线,而在行方向上布置的单元串CS11至CS1m或CS21至CS2m当中的奇数编号的单元串可以分别联接到奇数位线。
在一实施方式中,第一存储单元MC1至第n存储单元MCn中的至少一个可以用作虚设存储单元。例如,可以提供虚设存储单元以减小源极选择晶体管SST与存储单元MC1至MCp之间的电场。另选地,可以提供虚设存储单元以减小漏极选择晶体管DST与存储单元MCp+1至MCn之间的电场。当虚设存储单元的数量增加时,存储块BLKa的操作的可靠性得到改善。另一方面,存储块BLKa的大小增加。当虚设存储单元的数量减少时,存储块BLKa的大小减小。另一方面,存储块BLKa的操作的可靠性可能劣化。
为了高效地控制虚设存储单元,这些单元可以具有所需的阈值电压。在存储块BLKa的擦除操作之前或在存储块BLKa的擦除操作之后,可以对虚拟存储单元中的所有或一些执行编程操作。当在执行编程操作之后执行擦除操作时,虚设存储单元的阈值电压控制被施加到联接到相应虚设存储单元的虚设字线的电压,使得虚设存储单元可以具有所需的阈值电压。
图5是例示图3的存储块BLK1至BLKz当中的存储块(例如,存储块BLKb)的另一实施方式的电路图。
参照图5,存储块BLKb可以包括多个单元串CS11'至CS1m'和CS21'至CS2m'。多个单元串CS11'至CS1m'和CS21'至CS2m'中的每一个沿着+Z方向延伸。多个单元串CS11'至CS1m'和CS21'至CS2m'中的每一个包括至少一个源极选择晶体管SST、第一存储单元MC1至第n存储单元MCn和至少一个漏极选择晶体管DST,它们层叠在存储块BLKb下方的基板(未示出)上。
每个单元串的源极选择晶体管SST联接在公共源极线CSL和存储单元MC1至MCn之间。布置在同一行上的单元串的源极选择晶体管联接到同一源极选择线。布置在第一行上的单元串CS11'至CS1m'的源极选择晶体管联接到第一源极选择线SSL1。布置在第二行上的单元串CS21'至CS2m'的源极选择晶体管联接到第二源极选择线SSL2。在另一实施方式中,单元串CS11'至CS1m'和CS21'至CS2m'的源极选择晶体管可以共同联接到一条源极选择线。
每个单元串的第一存储单元MC1至第n存储单元MCn串联联接在源极选择晶体管SST和漏极选择晶体管DST之间。第一存储单元MC1至第n存储单元MCn的栅极分别联接至第一字线WL1至第n字线WLn。
每个单元串的漏极选择晶体管DST联接在相应的位线和存储单元MC1至MCn之间。沿着行方向布置的单元串的漏极选择晶体管联接到沿着行方向延伸的漏极选择线。第一行上的单元串CS11'至CS1m'的漏极选择晶体管联接至第一漏极选择线DSL1。第二行上的单元串CS21'至CS2m'的漏极选择晶体管联接到第二漏极选择线DSL2。
因此,除了从图5中的每个单元串中排除管式晶体管PT以外,图5的存储块BLKb具有与图4的存储块BLKa的电路类似的电路。
在另一实施方式中,可以设置偶数位线和奇数位线来代替第一位线BL1至第m位线BLm。另外,沿着行方向布置的单元串CS11'至CS1m'或CS21'至CS2m'当中的偶数编号的单元串可以分别联接到偶数位线,并且沿着行方向布置的单元串CS11'至CS1m'或CS21'至CS2m'当中的奇数编号的单元串可以分别联接到奇数位线。
在一实施方式中,第一存储单元MC1至第n存储单元MCn中的至少一个可以用作虚设存储单元。例如,可以提供虚设存储单元以减小源极选择晶体管SST与存储单元MC1至MCn之间的电场。另选地,可以提供虚设存储单元以减小漏极选择晶体管DST与存储单元MC1至MCn之间的电场。当虚设存储单元的数量增加时,存储块BLKb的操作的可靠性得到改善。另一方面,存储块BLKb的大小增加。当虚拟存储单元的数量减少时,存储块BLKb的大小减小。另一方面,存储块BLKb的操作的可靠性可能劣化。
为了高效地控制虚设存储单元,这些单元可以具有所需的阈值电压。在存储块BLKb的擦除操作之前或在存储块BLKb的擦除操作之后,可以对虚拟存储单元中的所有或一些执行编程操作。当在执行编程操作之后执行擦除操作时,虚设存储单元的阈值电压控制被施加到联接到相应虚设存储单元的虚设字线的电压,使得虚设存储单元可以具有所需的阈值电压。
图6是例示根据本公开的实施方式的设置子块的图。
参照图6,存储单元阵列110a可以包括主块BLK0至BLKz。主块可以是用于执行正常擦除操作的单元。
在一实施方式中,主块可以包括从第0页Page 0到第n页Page n。每一页可以被配置有联接到一条字线的存储单元。例如,联接到第零字线的存储单元可以构成第零页,并且联接到第一字线的存储单元可以构成第一页。
在图6的实施方式中,一个主块可以被分成两个子块。具体地,主块BLK0至BLKz中的每一个可以包括第零子块sub-block 0和第一子块sub-block 1。
在一实施方式中,一个子块可以是主块的约一半大小。例如,第零子块可以包括与第0页至第n页的一半对应的页。第一子块可以包括与第0页至第n页的另一半对应的页。
当对一个主块执行正常擦除操作时,存储在主块中的数据可都被擦除。
然而,当对单个主块中的子块执行部分块擦除操作时,可以仅擦除存储在主块中的数据当中的存储在子块中的数据。例如,当对第零子块执行部分块擦除操作时,可以擦除存储在第零子块中的数据。然而,仍然可以保持存储在第一子块中的数据。
图7是例示根据本公开的另一实施方式的设置子块的图。
参照图7,存储单元阵列110b可以包括主块BLK0至BLKz。主块可以是用于执行正常擦除操作的单元。
在一实施方式中,主块可以包括第0页Page 0至第n页Page n。每一页可以配置有联接到一条字线的存储单元。例如,联接到第零字线的存储单元可以构成第零页,并且联接到第一字线的存储单元可以构成第一页。
在图7的实施方式中,一个主块可以被分成四个子块。具体地,主块BLK0至BLKz中的每一个可以包括第零子块sub-block 0至第三子块sub-block 3。
在一实施方式中,一个子块可以对应于主块的约1/4大小。例如,第零子块可以包括与第0页Page 0至第n页Page n的1/4对应的页。第一子块可以包括与第0页Page 0至第n页Page n的另一1/4对应的页。
当对一个主块执行正常擦除操作时,存储在主块中的数据可都被擦除。
然而,当对单个主块中的子块执行部分块擦除操作时,可以仅擦除存储在主块中的数据当中的存储在相应子块中的数据。例如,当对第零子块执行部分块擦除操作时,可以擦除存储在第零子块中的数据。然而,可以仍然保持存储在作为其它子块的第一子块至第三子块中的数据。
图8是例示根据本公开的另一实施方式的设置子块的图。
参照图8,存储单元阵列110c可以包括主块BLK0至BLKz。主块可以是用于执行正常擦除操作的单元。
在一实施方式中,主块可以包括第0页Page 0至第n页Page n。每一页可以配置有联接到一条字线的存储单元。例如,联接到第零字线的存储单元可以构成第零页,并且联接到第一字线的存储单元可以构成第一页。
在图8的实施方式中,一个主块可以被分成三个子块。具体地,主块BLK0至BLKz中的每一个可以包括第零子块sub-block 0至第二子块sub-block 2。
在图8的实施方式中,第零子块sub-block 0至第二子块sub-block 2可以具有不同的大小(设置大小部分A、B、C)。也就是说,第零子块sub-block 0、第一子块sub-block 1和第二子块sub-block 2可以具有不同的存储容量。因此,第零子块sub-block 0、第一子块sub-block 1和第二子块sub-block 2中的页的数量也可以不同。
当对一个主块执行正常擦除操作时,存储在主块中的数据可都被擦除。
然而,当对单个主块中的子块执行部分块擦除操作时,可以仅擦除存储在主块中的数据当中的存储在相应子块中的数据。例如,当对第零子块执行部分块擦除操作时,可以擦除存储在第零子块中的数据。然而,可以仍然保持存储在作为其它子块的第一子块和第二子块中的数据。由于子块具有不同的大小,所以实际擦除的页的数量可以不同,这取决于执行部分块擦除操作的子块。
图9是例示在仅擦除存储块的一部分的部分块擦除操作中施加的电压的图。
参照图9,部分块擦除操作可以被划分为用于施加擦除电压的部分(擦除)和用于验证擦除操作的部分(HEV)。部分块擦除操作可以擦除一个主块中的多个子块当中的至少一个被选子块。未选子块不被部分块擦除操作擦除。
在用于施加擦除电压的部分(擦除)中,可以在部分块擦除操作中将擦除电压Vers施加到基板。存储单元在基板上沿着行和列设置,并且可以在与基板交叉的方向上层叠以形成三维结构。
可以将接地电压(0V)施加到被选子块。例如,可以将0V的电压施加到与被选子块对应的字线。未选子块被浮置。例如,与未选子块对应的字线可被浮置。
在用于验证擦除操作的部分(HEV)中,可以将擦除验证电压HEV施加到被选子块。例如,可以将擦除验证电压施加到与被选子块对应的字线。当施加擦除验证电压时,联接到对应于被选子块的字线的存储单元可以处于导通或截止状态。可以将通过电压Vpass_r施加到未选子块。例如,将通过电压Vpass_r施加到与未选子块对应的字线。
可以通过重复用于施加擦除电压的部分(擦除)和用于验证擦除操作的部分(HEV)来执行部分块擦除操作。可以执行部分块擦除操作,直到联接到与被选子块对应的字线的所有存储单元在用于验证擦除操作的部分(HEV)中都处于导通状态为止。每当重复用于施加擦除电压的部分(擦除)和用于验证擦除操作的部分(HEV)时,施加到基板的擦除电压Vers可以增加。
在上述条件下,当执行部分块擦除操作时,可以擦除存储在被选子块中的页中的数据,并且可以保持存储在未选子块中的页中的数据。
图10和图11是例示根据本公开的实施方式的用于设置子块的大小的方法的图。
图10是例示存储控制器向存储器件提供以设置子块的控制信号的图。
参照图10,存储控制器可使用特征设置命令(Set Feature(设置特征))来设置或改变存储在存储器件中的子块设置组件中的数据。例如,子块设置组件可以是存储器件中的寄存器。特征设置命令(Set Feature(设置特征))可以是用于改变或设置与特征地址(Feature Address)对应的寄存器的值的命令。
存储器件基于存储在对应于子块设置组件的寄存器中的值来设置子块的大小。因此,可以响应于特征设置命令而改变主块中的子块的大小。
具体地,存储控制器可以顺序地向存储器件提供特征设置命令、指示要设置或改变的寄存器的地址的特征地址以及作为要设置或改变的数据的特征数据(Feature DATA)。
存储器件可以对输入命令进行解码,并且识别相应的命令是特征设置命令。存储器件可以将与连续输入的特征地址相对应的寄存器的值设置为特征数据。
存储器件可以根据寄存器的设置值来设置子块的大小。
随后,存储控制器可以向存储器件提供擦除命令和地址(由图10中的“擦除命令/块地址”表示),使得存储器件执行部分块擦除操作或正常擦除操作。当输入与部分块擦除操作对应的擦除命令和块地址时,存储器件可以对相应的子块执行擦除操作。
因此,存储控制器使用特征设置命令Set Feature(设置特征)来将要擦除的区域设置为一个子块,然后为该子块提供部分块擦除命令,使得能够选择性地仅擦除特定区域(例如,该子块)。
图11是例示包括响应于图10的控制信号而设置的子块的主块的图。
图11的(a)是例示存储在存储器件中的子块设置组件(可以是寄存器)中的数据的图。图11的(b)是例示根据特征数据(Feature DATA)设置的子块的结构的图。
参照图11的(a)和(b),连同特征设置命令(Set Feature)一起从存储控制器接收的特征数据可以包括P1至P4数据。
P1至P4数据可以是子特征参数值(子特征参数1至子特征参数4),其表示存储在子块设置组件131中的特征参数值。
具体地,P1数据可以是表示用于设置子块的起始点的值。例如,P1数据可以是与主块中的多个页当中的一子块的起始点对应的页码。
P2至P4数据可以是用于确定相应子块之间的边界点的值。
例如,P2数据可以表示作为第一个子块的第零子块(Sub-Block 0)中的页的数量,该第一个子块包括与P1数据对应的页作为第一页。P3数据可以表示作为位于紧接在第零子块(Sub-Block 0)的最后一页之后的第二个子块的第一子块(Sub-Block 1)中的页的数量。P4数据可以表示作为位于紧接在第一子块(Sub-Block 1)的最后一页之后的第三个子块的第二子块(Sub_Block 2)中的页的数量。
图12是例示根据常规方法的系统块的更新过程的图。
参照图12,存储控制器200可以包括系统缓存缓冲器。存储在系统缓存缓冲器中的数据可以通过周期性地或在存储控制器200的控制下将它们移动到存储器件100中的系统数据缓冲器中来更新。在一实施方式中,系统缓存缓冲器可以是SRAM或DRAM。将更详细地描述更新作为在其中存储系统信息的存储块的系统块的过程。
步骤①:更新存储在系统缓存缓冲器中的与映射信息L0、L1和L2P,有效页计数(VPC),擦除计数(EC)和读取计数(RC)对应的数据。
步骤②:擦除作为新块的块目标B(Target B),使得系统数据存储在块目标B中。在NAND闪存中,数据不能再次被存储在已经存储有数据的存储块中。因此,系统数据不能被重新存储在块原件A(Original A)中,块原件A是先前存储系统数据的系统块。存储控制器200要开放存储器件100中的存储块当中的新块,并将系统数据存储在开放的新块中。因此,作为新块的块目标B被擦除。
步骤③:存储控制器200在块目标B中存储系统缓存缓冲器中存储的与映射信息L0、L1和L2P,有效页计数(VPC),擦除计数(EC)和读取计数(RC)对应的数据。
步骤④:存储控制器200可以在块目标B中存储系统缓存缓冲器中所存储的开放块信息和热/冷信息。
步骤⑤:存储控制器200将块原件A处理为无效。
因此,当通过步骤①至⑤更新系统块时,将使用作为新存储块的块目标B。因此,将使用一个开放块。另外,发生用于存储未改变的开放块信息和热/冷信息的数据输入/编程时间。
图13是例示根据本公开的实施方式的系统块的更新过程的图。
参照图13,存储控制器200可以包括系统缓存缓冲器。存储在系统缓存缓冲器中的数据可以通过周期性地或在存储控制器200的控制下将数据移动到存储器件100中的系统数据缓冲器中来更新。在一实施方式中,系统缓存缓冲器可以是SRAM或DRAM。将更详细地描述更新作为在其中存储系统信息的存储块的系统块的过程。
步骤①:更新存储在系统缓存缓冲器中的与映射信息L0、L1和L2P,有效页计数(VPC),擦除计数(EC)和读取计数(RC)对应的数据。
步骤②:对块原件A中的区域当中的要被更新的区域执行部分块擦除操作。也就是说,根据本公开的实施方式,可以以子块为单位擦除存储块。也就是说,可以仅擦除块原件A的一部分。因此,不使用新的开放块,并且可以使用作为现有系统数据缓冲器块的块原件A。
步骤③:存储控制器200在块原件A的擦除后的区域中存储系统缓存缓冲器中存储的与映射信息L0、L1和L2P,有效页计数(VPC),擦除计数(EC)和读取计数(RC)对应的数据。
因此,与图12的技术相比,不使用任何新块,并且不发生用于存储未改变的开放块信息和热/冷信息的任何数据输入/编程时间。
图14是例示根据本公开的实施方式的系统块的使用状态的图。
当“固件FW”和“检查点1C1”的每个区域被分配给整个固定的单个主块时,在存储块的大小增加时保证维持存储装置的性能所需的超额供应(over-provisioning)区域可能是不利的。
然而,参照图14,当根据本公开的实施方式将单个存储块划分为具有不同大小的多个子块(例如,两个子块)时,“固件FW”的区域和“检查点1C1”的区域可以被分别分配给单个存储块的子块。“固件FW”和“检查点1C1”是仅读取计数增加的区域,因此不太可能会发生擦除/写入次数。因此,当根据本公开的实施方式将单个存储块划分为具有不同大小的多个子块以供使用时,能够提高存储装置的可靠性。
图15是例示根据本公开的实施方式的写缓冲器的刷新操作的图。
参照图15,存储控制器200可以响应于从主机输入的刷新命令来将数据从数据写缓冲器移动到存储器件100中的数据缓冲器中。在一实施方式中,数据写缓冲器可以是SRAM或DRAM。将更详细地描述将存储在数据写缓冲器中的数据更新到存储器件100中的数据缓冲器的过程。
步骤①:将数据0和数据1输入到数据写缓冲器(CachedWriteBuffer)。
步骤②:对块原件A中的区域当中的要被更新的区域执行部分块擦除操作。也就是说,根据本公开的实施方式,可以以子块为单位擦除存储块。也就是说,可以仅擦除块原件A的一部分。因此,不使用新的开放块,并且可以使用作为现有数据缓冲器块的块原件A。
步骤③:存储控制器200将存储在数据写缓冲器中的数据0和数据1存储在块原件A的擦除后的区域中。
因此,根据本公开的实施方式,即使当数据缓冲器中的正常数据来自缓存缓冲器(如系统块)时,存储控制器200也不使用单独的空闲块。此外,不发生用于存储不被更新的数据的任何数据输入/编程时间。
图16是例示存储装置的垃圾收集操作的图。
参照图16,垃圾收集操作可以是为保证空闲块而执行的操作。垃圾收集操作可以是将也存储有无效数据的受害块中的有效数据复制到空闲块并擦除受害块以使它们成为空闲块的操作。
为了清楚和便于描述,图16例示了一个存储块包括四个页,即第一页PG1至第四页PG4,但是本公开不限于此。
图16的垃圾收集操作可以通过步骤S1至S3执行。
在步骤S1中,选择块0(BLK0)和块1(BLK1)作为受害块(受害BLK0和受害BLK1)。可以基于各种基准来执行用于选择受害块的方法。例如,可以选择有效数据的量是一定水平或更小水平的存储块作为受害块。另选地,可以使用有效数据与无效数据的比率来选择受害块。
块0(受害BLK0)的第一页和第二页可以是其中存储无效数据的无效页,并且块0(受害BLK0)的第三页和第四页可以是其中存储有效数据的有效页。
受害BLK1的第一页和第四页可以是其中存储无效数据的无效页,并且受害BLK1的第二页和第三页可以是其中存储有效数据的有效页。
存储控制器可以将存储在受害BLK0和受害BLK1的有效页中的数据复制到空闲块(空闲BLK),该空闲块是垃圾收集操作的目标块。可以使用读取存储在受害BLK0和受害BLK1的有效页中的数据并且将所读取的数据编程到空闲BLK中的方法来执行复制过程。
在步骤S2中,存储控制器可以对受害BLK0和受害BLK1执行正常擦除操作。存储在受害BLK0和受害BLK1中的所有数据可以通过擦除操作被擦除。
在步骤S3中,受害BLK0和受害BLK1可以变为空闲块,并且过去是空闲块的目标块可以变为开放块或封闭块。
图17是例示根据本公开的实施方式的垃圾收集操作的图。
参照图17,在阶段(A)中,当从主机输入写请求时,存储控制器将输入的写请求传送到写处置器。
在阶段(B)中,存储控制器可以根据存储器件100中的当前空闲块的数量来确定触发条件,该触发条件与参照图1所描述的第一参考值TH1和第二参考值TH2相关。
在阶段(C)中,当当前空闲块的数量足够时,存储控制器确定触发条件对应于正常状态。当当前空闲块的数量不足时,存储控制器确定触发条件对应于紧急状态。当在垃圾收集期间要从受害块复制到目标块中的有效数据的量小于单个存储块(即,目标块)的存储容量时,可以在垃圾收集操作中执行部分块擦除操作。
在阶段(D)中,存储控制器在正常状态下将垃圾收集操作执行为后台操作,并且在紧急状态下将垃圾收集操作执行为前台操作。另外,当有效数据的量小于单个存储块的存储容量时,可以在垃圾收集操作中执行部分块擦除操作。在图17中,部分块擦除操作被称为“灵活擦除”。
在阶段(E)中,当在垃圾收集操作中执行部分块擦除操作时,存储控制器可以从受害块中选择一些页Partial Page(部分页)(即,一个或更多个子块),擦除存储在被选子块中的数据,将有效数据存储在被选子块中,并且执行映射更新。下面将参照图18至图21更详细地描述根据本公开的实施方式的垃圾收集操作。
图18是例示图1的写处置器210的结构的框图。
参照图18,写处置器210可以包括垃圾收集控制器211和空闲块信息存储装置212。
空闲块信息存储装置212可以存储关于存储器件中的存储块的状态的信息。例如,空闲块信息存储装置212可以存储指示存储器件100的各个存储块的空闲、开放和封闭状态的信息。空闲块信息存储装置212可以存储存储块当中的空闲块的数量。
垃圾收集控制器211可以控制存储器件的垃圾收集操作。
具体地,垃圾收集控制器211可以根据存储在空闲块信息存储装置212中的空闲块的数量来确定是否要执行垃圾收集操作。例如,当空闲块的数量超过第一参考值TH1时,垃圾收集控制器211可以不执行垃圾收集操作。
当空闲块的数量小于或等于第一参考值TH1时,垃圾收集控制器211可以执行垃圾收集操作。
在一实施方式中,垃圾收集控制器211可以根据空闲块的数量是否超过第二参考值TH2来确定是要将垃圾收集操作作为后台操作来执行还是作为前台操作来执行。后台操作可以是在存储器件处于空闲状态时执行的操作。当垃圾收集操作正被执行为前台操作时,存储器件可以不执行另一操作。
例如,当空闲块的数量超过第二参考值TH2时,垃圾收集控制器211可以将垃圾收集操作执行为后台操作。当空闲块的数量小于或等于第二参考值TH2时,迫切需要保证空闲块,因此可以将垃圾收集操作执行为前台操作。
在一实施方式中,垃圾收集控制器211可以选择存储块当中的至少一个封闭存储块作为受害块。
垃圾收集控制器211可以通过将至少一个受害块中的有效数据复制到空闲块并擦除受害块来保证空闲块。
在一实施方式中,当垃圾收集操作被作为前台操作执行时,垃圾收集控制器211可以确定受害块中的有效数据的量是否超过一个主块的存储容量。
当受害块中的有效数据的量超过一个主块的存储容量时,垃圾收集控制器211可以使用正常擦除操作来执行垃圾收集操作。
当受害块中的有效数据的量没有超过一个主块的存储容量时,垃圾收集控制器211可以使用部分块擦除操作来执行垃圾收集操作。
具体地,垃圾收集控制器211可以选择要在其中存储受害块中的有效数据的目标块。目标块可以是封闭块,该封闭块的无效数据的量大于受害块中的有效数据的量。
垃圾收集控制器211可以根据在图10和11中描述的设置子块的操作将其中存储目标块的无效数据的无效页设置为至少一个子块。
垃圾收集控制器211可以使用部分块擦除操作来选择性地擦除目标块中的至少一个子块。
垃圾收集控制器211可以将受害块中的有效数据复制到擦除后的子块。
垃圾收集控制器211可以通过擦除受害块来保证空闲块。
图19是例示根据本公开的实施方式的存储装置的操作方法的流程图。
参照图19,在步骤S1401中,存储装置(例如,存储装置50)可以从主机接收写请求。
在步骤S1403中,存储装置可以确定空闲块的数量是否小于或等于第一参考值TH1。当确定空闲块的数量大于第一参考值TH1时,存储装置进行到步骤S1411。当确定空闲块的数量小于或等于第一参考值TH1时,存储装置进行到步骤S1405。
在步骤S1405中,存储装置可以确定空闲块的数量是否小于或等于第二参考值TH2。当确定空闲块的数量大于第二参考值TH2时,存储装置进行到S1407。当确定空闲块的数量小于或等于第二参考值TH2时,存储装置进行到S1409。
在步骤S1407中,存储装置可以将垃圾控制操作执行为后台操作。稍后将参照图20更详细地描述由存储装置执行作为后台操作的垃圾控制操作的方法。
在步骤S1409中,存储装置可以将垃圾控制操作执行为前台操作。稍后将参照图21更详细地描述由存储装置执行作为前台操作的垃圾控制操作的方法。
在步骤S1411中,存储装置可以处理写请求。具体地,存储装置可以在空闲块中存储与写请求相对应的写数据。
图20是例示根据本公开的另一实施方式的存储装置的操作方法的流程图。
图20是例示图19中所描述的作为后台操作执行的垃圾控制操作的图。
参照图20,在步骤S1501中,存储装置(例如,存储装置50)可以选择受害块。具体地,存储装置可以选择封闭存储块当中的至少一个封闭存储块作为受害块。可以基于各种基准来执行选择受害块的方法。例如,可以选择有效数据的量是一定水平或更小水平的存储块作为受害块。另选地,可以使用有效数据与无效数据的比率来选择受害块。
在步骤S1503中,存储装置可以将有效数据复制到空闲块。具体地,存储装置可以读取其中存储至少一个受害块中的有效数据的有效页,并且将所读取的有效数据编程到空闲块。
在步骤S1505中,存储装置可以擦除受害块。
可以使用正常擦除操作来执行受害块的擦除操作。
在步骤S1507中,存储装置可以更新映射信息。具体地,存储装置可以更新指示与有效数据对应的逻辑地址和物理地址之间的映射关系的映射信息。
图21是例示根据本公开的另一实施方式的存储装置的操作方法的流程图。
图21是例示图19中所描述的作为前台操作执行的垃圾控制操作的图。
参照图21,在步骤S1601中,存储装置(例如,存储装置50)可以选择受害块。具体地,存储装置可以选择封闭存储块当中的至少一个封闭存储块作为受害块。可以基于各种基准来执行选择受害块的方法。例如,可以选择有效数据的量是一定水平或更小水平的存储块作为受害块。另选地,可以使用有效数据与无效数据的比率来选择受害块。
在步骤S1603中,存储装置可以确定受害块中的有效数据的量是否超过一个主块的存储容量。当确定受害块中的有效数据的量超过一个主块的存储容量时,存储装置进入步骤S1605。当确定受害块中的有效数据的量没有超过一个主块的存储容量时,存储装置进行到步骤S1611。
在步骤S1605中,存储装置可以将有效数据复制到空闲块。具体地,存储装置可以读取其中存储至少一个受害块中的有效数据的有效页,并且将所读取的有效数据编程到空闲块。
在步骤S1607中,存储装置可以擦除受害块。
可以使用正常擦除操作来执行受害块的擦除操作。
在步骤S1609中,存储装置可以更新映射信息。具体地,存储装置可以更新指示与有效数据对应的逻辑地址和物理地址之间的映射关系的映射信息。
在步骤S1611中,存储装置可以选择目标块。目标块可以是这样的封闭块,该封闭块的无效数据的量大于受害块中的有效数据的量。
在步骤S1613中,存储装置可以擦除目标块的一部分。具体地,存储装置可以擦除目标块中的多个页当中的存储无效数据的无效页。例如,存储装置可以将目标块中的无效页设置为至少一个子块。存储装置可以使用部分块擦除操作来擦除所设置的子块。
在步骤S1615中,存储装置可以将受害块中的有效数据存储在目标块中的擦除后的子块中。
在步骤S1617中,存储装置可以擦除受害块。
可以使用正常擦除操作来执行受害块的擦除操作。
在步骤S1619中,存储装置可以更新映射信息。具体地,存储装置可以更新指示与有效数据对应的逻辑地址和物理地址之间的映射关系的映射信息。
图22是例示图1的存储控制器200的另一实施方式1000的图。
存储控制器1000联接到主机和存储器件。存储控制器1000被配置为响应于从主机接收的请求来访问存储器件。例如,存储控制器1000被配置为控制存储器件的读取操作、编程操作、擦除操作和后台操作。存储控制器1000被配置为提供存储器件和主机之间的接口。存储控制器1000被配置为驱动用于控制存储器件的固件。
参照图22,存储控制器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可以使用随机化种子来使从主机接收的数据随机化。随机化后的数据被提供为要存储到存储器件的数据,以在存储单元阵列中进行编程。
在读取操作中,处理器1010被配置为对从存储器件接收的数据进行去随机化。例如,处理器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。存储缓冲器1020和缓冲控制电路1050中的任一者或两者可以单独提供或者它们的功能中的一种或两种被分布在存储控制器1000内。
在一示例中,处理器1010可以通过使用代码来控制存储控制器1000的操作。处理器1010可以从存储控制器1000中设置的非易失性存储器件(例如,只读存储器(ROM))加载代码。在另一示例中,处理器1010可以通过存储接口1060从存储器件加载代码。
在一示例中,存储控制器1000的总线1070可以分为控制总线和数据总线。数据总线可以被配置为在存储控制器1000中传输数据,并且控制总线可以被配置为在存储控制器1000中传输诸如命令和地址这样的控制信息。数据总线和控制总线彼此分离,并且不会彼此干扰或影响。数据总线可以联接到主机接口1040、缓冲控制电路1050、ECC电路1030和存储接口1060。控制总线可以联接到主机接口1040、处理器1010、缓冲控制电路1050、存储缓冲器1020和存储接口1060。
图23是例示根据本公开的实施方式的可以将存储装置应用到的存储卡系统的框图。
参照图23,存储卡系统2000包括存储控制器2100、存储器件和连接器2300。
存储控制器2100联接到存储器件2200。存储控制器2100被配置为访问存储器件2200。例如,存储控制器2100被配置为控制存储器件2200的读取操作、写入操作、擦除操作和后台操作。存储控制器2100被配置为提供存储器件2200和主机之间的接口。存储控制器2100被配置为驱动用于控制存储器件2200的固件。存储控制器2100可以与参照图1描述的存储控制器200等同地实现。
在一示例中,存储控制器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(EPROM)、NAND闪存存储器、NOR闪存存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)和自旋转移力矩磁RAM(STT-MRAM)这样的各种非易失性存储器件实现。
存储控制器2100和存储器件2200可以被集成到单个半导体装置中以构成存储卡,诸如PC卡(个人计算机存储卡国际协会(PCMCIA))、紧凑型闪存(CF)卡、智能媒体卡(SM和SMC)、记忆棒、多媒体卡(MMC、RS-MMC、MMCmicro和eMMC)、SD卡(SD、miniSD、microSD和SDHC)和/或通用闪存存储(UFS)。
图24是例示根据本公开的实施方式的可以将存储装置应用到的固态驱动器(SSD)系统的框图。
参照图24,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这样的接口中的至少一种定义的信号。
辅助电源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)。
图25是例示根据本公开的实施方式的可以将存储装置应用到的用户系统的框图。
参照图25,用户系统4000包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可以驱动包括在用户系统4000中的组件、操作系统(OS)、用户程序等。在一示例中,应用处理器4100可以包括用于控制包括在用户系统4000中的组件、接口、图形引擎等的控制器。应用处理器4100可以被提供为片上系统(SoC)。
存储器模块4200可以作为用户系统4000的主存储器、工作存储器、缓冲存储器或缓存缓冲器操作。存储器模块4200可以包括易失性随机存取存储器(诸如DRAM、SDRAM、DDRSDRAM、DDR2SDRAM、DDR3SDRAM、LPDDR SDRAM、LPDDR2SDRAM和LPDDR3SDRAM)或非易失性随机存取存储器(诸如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可以包括多个非易失性存储器件,并且这多个非易失性存储器件可以与参照图1至图11描述的存储器件等同地操作。存储模块4400可以与参照图1描述的存储装置50等同地操作。
用户接口4500可以包括用于向应用处理器4100输入数据或命令或者将数据输出到外部装置的接口。在一示例中,用户接口4500可以包括诸如键盘、小键盘、按钮、触摸板、触摸屏、触摸垫、触摸球、相机、麦克风、陀螺仪传感器、振动传感器和压电元件这样的用户输入接口。用户接口4500可以包括诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和电机这样的用户输出接口。
根据本公开的实施方式,提供了一种用于使用部分块擦除操作来执行垃圾收集操作的存储装置和该存储装置的操作方法。
本文已经公开了各种实施方式,并且尽管采用了特定术语,但是它们被使用并且将被解释为一般性和描述性的含义而不是出于限制的目的。在一些情况下,对提交本申请时的本领域技术人员而言显而易见的,除非另外具体指明,否则结合具体实施方式描述的特征、特性和/或元件可以被单独使用或与结合其它实施方式描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,可以在不脱离所附的权利要求中阐述的本公开的精神和范围的情况下进行形式和细节上的各种改变。
相关申请的交叉引用
本申请要求于2018年3月13日提交的韩国专利申请No.10-2018-0029341的优先权,其通过引用全部并入本文中。
Claims (19)
1.一种存储装置,该存储装置包括:
存储器件,该存储器件包括多个主块,所述多个主块各自包括多个子块;以及
存储控制器,该存储控制器被配置为执行用于保证所述多个主块当中的没有存储数据的空闲块的垃圾收集操作,
其中,所述存储控制器包括写处置器,该写处置器被配置为:
当至少一个受害块中的有效数据的量超过一个主块的存储容量时,擦除所述多个主块当中的目标块,并且
当所述有效数据的量没有超过所述一个主块的存储容量时,擦除所述目标块的一部分。
2.根据权利要求1所述的存储装置,其中,所述存储器件包括子块设置组件,该子块设置组件被配置为设置所述子块的大小。
3.根据权利要求2所述的存储装置,其中,所述写处置器包括:
空闲块信息存储装置,该空闲块信息存储装置被配置为存储所述空闲块的数量;以及
垃圾收集控制器,该垃圾收集控制器被配置为当所述空闲块的数量小于或等于第一参考值时执行垃圾收集操作。
4.根据权利要求3所述的存储装置,其中,所述垃圾收集控制器将所述空闲块的数量与小于所述第一参考值的第二参考值进行比较,并且基于比较结果确定是否要执行所述垃圾收集操作。
5.根据权利要求4所述的存储装置,其中,当所述空闲块的数量小于或等于所述第二参考值时,所述垃圾收集控制器将所述垃圾收集操作执行为前台操作。
6.根据权利要求4所述的存储装置,其中,当所述空闲块的数量超过所述第二参考值时,所述垃圾收集控制器将所述垃圾收集操作执行为后台操作。
7.根据权利要求5所述的存储装置,其中,当所述至少一个受害块中的所述有效数据的量超过所述一个主块的存储容量时,所述垃圾收集控制器选择所述空闲块当中的至少一个空闲块作为所述目标块。
8.根据权利要求7所述的存储装置,其中,所述垃圾收集控制器将存储在所述至少一个受害块中的有效数据复制到所述目标块。
9.根据权利要求8所述的存储装置,其中,在将存储在所述至少一个受害块中的有效数据复制到所述目标块之后,所述垃圾收集控制器擦除所述至少一个受害块。
10.根据权利要求5所述的存储装置,其中,当所述至少一个受害块中的所述有效数据的量没有超过一个主块的存储容量时,所述垃圾收集控制器选择存储了大于存储在所述至少一个受害块中的有效数据的量的无效数据的量的主块作为所述目标块。
11.根据权利要求10所述的存储装置,其中,所述子块设置组件将存储无效数据的无效页设置为所述目标块中的至少一个子块。
12.根据权利要求11所述的存储装置,其中,所述垃圾收集控制器擦除所述至少一个子块。
13.根据权利要求12所述的存储装置,其中,所述垃圾收集控制器将所述至少一个受害块中的有效数据复制到擦除后的所述至少一个子块。
14.根据权利要求13所述的存储装置,其中,所述垃圾收集控制器擦除所述至少一个受害块。
15.一种用于操作存储装置的方法,该存储装置包括存储器件和存储控制器,该存储器件包括各自包括多个子块的多个主块,该存储控制器用于执行用于保证所述多个主块当中的没有存储数据的空闲块的垃圾收集操作,该方法包括以下步骤:
确定所述多个主块当中的至少一个受害块中的有效数据的量是否超过一个主块的存储容量;
当所述有效数据的量超过所述一个主块的存储容量时,擦除所述多个主块当中的目标块;以及
当所述有效数据的量没有超过所述一个主块的存储容量时,擦除所述目标块的一部分。
16.根据权利要求15所述的方法,该方法还包括以下步骤:
当确定所述至少一个受害块中的所述有效数据的量超过所述一个主块的存储容量时,选择所述多个主块当中的至少一个空闲块作为所述目标块;
将所述至少一个受害块中的所述有效数据复制到所述目标块;以及
擦除所述至少一个受害块。
17.根据权利要求15所述的方法,该方法还包括以下步骤:
当所述至少一个受害块中的所述有效数据的量没有超过所述一个主块的存储容量时,选择存储了比存储在所述至少一个受害块中的所述有效数据的量大的无效数据的量的主块作为所述目标块;以及
擦除所述目标块中存储无效数据的无效页。
18.根据权利要求17所述的方法,其中,擦除所述无效页的步骤包括以下步骤:
将所述无效页设置为至少一个子块;以及
擦除所述至少一个子块。
19.根据权利要求18所述的方法,其中,擦除所述至少一个受害块的步骤还包括以下步骤:将存储在所述至少一个受害块中的有效数据复制到擦除后的所述至少一个子块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0029341 | 2018-03-13 | ||
KR1020180029341A KR102596407B1 (ko) | 2018-03-13 | 2018-03-13 | 저장 장치 및 그 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110275673A CN110275673A (zh) | 2019-09-24 |
CN110275673B true CN110275673B (zh) | 2023-05-12 |
Family
ID=67905573
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811365801.2A Active CN110275673B (zh) | 2018-03-13 | 2018-11-16 | 存储装置及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10802959B2 (zh) |
KR (1) | KR102596407B1 (zh) |
CN (1) | CN110275673B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190120966A (ko) * | 2018-04-17 | 2019-10-25 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
KR102624620B1 (ko) * | 2018-11-02 | 2024-01-15 | 에스케이하이닉스 주식회사 | 메모리 장치 및 이를 포함하는 메모리 시스템 |
US11347860B2 (en) * | 2019-06-28 | 2022-05-31 | Seagate Technology Llc | Randomizing firmware loaded to a processor memory |
KR20210044564A (ko) * | 2019-10-15 | 2021-04-23 | 삼성전자주식회사 | 스토리지 장치 및 그것의 가비지 컬렉션 방법 |
US11238916B2 (en) * | 2019-12-31 | 2022-02-01 | Winbond Electronics Corp. | Method for refreshing a memory device, in which the victim row refresh operation is hidden in the normal refresh operation without affecting the time allocated for the normal refresh operation |
JP2021140851A (ja) * | 2020-03-06 | 2021-09-16 | キオクシア株式会社 | 半導体記憶装置 |
CN117059153A (zh) * | 2021-03-11 | 2023-11-14 | 长江存储科技有限责任公司 | 存储器件的读取操作中的基于开放块的读取偏移量补偿 |
TWI813362B (zh) * | 2022-06-30 | 2023-08-21 | 群聯電子股份有限公司 | 部分抹除管理方法、記憶體儲存裝置及記憶體控制電路單元 |
KR20240030819A (ko) * | 2022-08-31 | 2024-03-07 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 컨트롤러의 동작 방법 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101681677A (zh) * | 2007-03-07 | 2010-03-24 | 莫塞德技术公司 | 用于闪速存储器的部分块擦除架构 |
CN102163456A (zh) * | 2010-02-17 | 2011-08-24 | 三星电子株式会社 | 非易失性存储器件、其操作方法以及包括其的存储系统 |
CN103456357A (zh) * | 2012-06-01 | 2013-12-18 | 三星电子株式会社 | 具有非易失性存储器件的存储设备以及写方法 |
CN104102456A (zh) * | 2013-04-15 | 2014-10-15 | 旺宏电子股份有限公司 | 存储器装置机器操作方法 |
WO2015196153A1 (en) * | 2014-06-19 | 2015-12-23 | Sandisk Enterprise Ip Llc | Sub-block garbage collection |
CN106504789A (zh) * | 2015-09-07 | 2017-03-15 | 爱思开海力士有限公司 | 储存器件及其操作方法 |
CN106802768A (zh) * | 2015-11-25 | 2017-06-06 | 旺宏电子股份有限公司 | 存储器装置的抹除方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8843691B2 (en) * | 2008-06-25 | 2014-09-23 | Stec, Inc. | Prioritized erasure of data blocks in a flash storage device |
US8688948B2 (en) | 2009-10-15 | 2014-04-01 | Freescale Semiconductor, Inc. | Flexible memory controller for autonomous mapping of memory |
KR102147628B1 (ko) * | 2013-01-21 | 2020-08-26 | 삼성전자 주식회사 | 메모리 시스템 |
US9558108B2 (en) * | 2013-04-15 | 2017-01-31 | Macronix International Co., Ltd. | Half block management for flash storage devices |
KR20160078611A (ko) * | 2014-12-24 | 2016-07-05 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 그것의 동작 방법 |
KR102301772B1 (ko) * | 2015-03-09 | 2021-09-16 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 가비지 컬렉션 방법 |
KR102467032B1 (ko) * | 2015-10-08 | 2022-11-14 | 삼성전자주식회사 | 메모리 스케줄링 방법 및 메모리 시스템의 동작방법 |
JP6414852B2 (ja) * | 2015-12-14 | 2018-10-31 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
JP2018160156A (ja) * | 2017-03-23 | 2018-10-11 | 東芝メモリ株式会社 | メモリシステム |
US10452282B2 (en) * | 2017-04-07 | 2019-10-22 | Micron Technology, Inc. | Memory management |
US10521375B2 (en) * | 2017-06-22 | 2019-12-31 | Macronix International Co., Ltd. | Controller for a memory system |
KR102457400B1 (ko) * | 2017-11-16 | 2022-10-21 | 삼성전자주식회사 | 가비지 컬렉션 방법, 이를 수행하는 저장 장치 및 이를 포함하는 컴퓨팅 시스템 |
KR102469539B1 (ko) * | 2017-12-22 | 2022-11-22 | 삼성전자주식회사 | 비휘발성 메모리 장치, 비휘발성 메모리 장치의 동작 방법 및 저장 장치 |
-
2018
- 2018-03-13 KR KR1020180029341A patent/KR102596407B1/ko active IP Right Grant
- 2018-10-26 US US16/172,385 patent/US10802959B2/en active Active
- 2018-11-16 CN CN201811365801.2A patent/CN110275673B/zh active Active
-
2020
- 2020-09-10 US US17/016,945 patent/US11461227B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101681677A (zh) * | 2007-03-07 | 2010-03-24 | 莫塞德技术公司 | 用于闪速存储器的部分块擦除架构 |
CN102163456A (zh) * | 2010-02-17 | 2011-08-24 | 三星电子株式会社 | 非易失性存储器件、其操作方法以及包括其的存储系统 |
CN103456357A (zh) * | 2012-06-01 | 2013-12-18 | 三星电子株式会社 | 具有非易失性存储器件的存储设备以及写方法 |
CN104102456A (zh) * | 2013-04-15 | 2014-10-15 | 旺宏电子股份有限公司 | 存储器装置机器操作方法 |
WO2015196153A1 (en) * | 2014-06-19 | 2015-12-23 | Sandisk Enterprise Ip Llc | Sub-block garbage collection |
CN106575256A (zh) * | 2014-06-19 | 2017-04-19 | 桑迪士克科技有限责任公司 | 子块垃圾收集 |
CN106504789A (zh) * | 2015-09-07 | 2017-03-15 | 爱思开海力士有限公司 | 储存器件及其操作方法 |
CN106802768A (zh) * | 2015-11-25 | 2017-06-06 | 旺宏电子股份有限公司 | 存储器装置的抹除方法 |
Also Published As
Publication number | Publication date |
---|---|
US11461227B2 (en) | 2022-10-04 |
CN110275673A (zh) | 2019-09-24 |
US10802959B2 (en) | 2020-10-13 |
KR20190107963A (ko) | 2019-09-23 |
US20200409836A1 (en) | 2020-12-31 |
US20190286556A1 (en) | 2019-09-19 |
KR102596407B1 (ko) | 2023-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110275673B (zh) | 存储装置及其操作方法 | |
CN110069212B (zh) | 存储装置及存储装置的操作方法 | |
CN110321070B (zh) | 存储器控制器及其操作方法 | |
CN111696608A (zh) | 存储器装置及其操作方法 | |
CN109388578B (zh) | 存储装置及其操作方法 | |
CN110287130B (zh) | 存储装置及其操作方法 | |
KR102620255B1 (ko) | 저장 장치 및 그 동작 방법 | |
CN110780802B (zh) | 存储器控制器及其操作方法 | |
CN110399092B (zh) | 存储装置以及操作存储装置的方法 | |
KR20200114149A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
CN111105832B (zh) | 存储装置和操作存储装置的方法 | |
CN111177020B (zh) | 存储装置及其操作方法 | |
CN111105836B (zh) | 存储装置及其操作方法 | |
CN110175133B (zh) | 存储装置及其操作方法 | |
CN111445939B (zh) | 存储装置及其操作方法 | |
CN111338979B (zh) | 存储器控制器及其操作方法 | |
CN111435333B (zh) | 存储装置及其操作方法 | |
CN111580744B (zh) | 存储器控制器及其操作方法 | |
CN110827873B (zh) | 存储器控制器 | |
CN110619912B (zh) | 存储装置以及该存储装置的操作方法 | |
CN111258931A (zh) | 存储器控制器及操作该存储器控制器的方法 | |
CN114078530A (zh) | 存储器装置及其操作方法 | |
CN111506515B (zh) | 存储器控制器及其操作方法 | |
CN111338978B (zh) | 存储装置以及操作存储装置的方法 | |
CN113760794A (zh) | 存储装置和操作存储装置的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |