CN110502449A - 存储装置及其操作方法 - Google Patents
存储装置及其操作方法 Download PDFInfo
- Publication number
- CN110502449A CN110502449A CN201811586038.6A CN201811586038A CN110502449A CN 110502449 A CN110502449 A CN 110502449A CN 201811586038 A CN201811586038 A CN 201811586038A CN 110502449 A CN110502449 A CN 110502449A
- Authority
- CN
- China
- Prior art keywords
- block
- memory
- storage device
- garbage collection
- free block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000003860 storage Methods 0.000 title claims abstract description 155
- 238000011017 operating method Methods 0.000 title abstract description 3
- 230000015654 memory Effects 0.000 claims abstract description 325
- 239000010813 municipal solid waste Substances 0.000 claims abstract description 84
- 238000000034 method Methods 0.000 claims description 41
- 230000008569 process Effects 0.000 claims description 23
- 239000000872 buffer Substances 0.000 description 35
- 238000010586 diagram Methods 0.000 description 26
- 238000004891 communication Methods 0.000 description 17
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 14
- 230000008859 change Effects 0.000 description 10
- 230000002093 peripheral effect Effects 0.000 description 10
- 239000012536 storage buffer Substances 0.000 description 10
- 238000013507 mapping Methods 0.000 description 8
- 230000004044 response Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 238000004519 manufacturing process Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 5
- 239000007787 solid Substances 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 230000005684 electric field Effects 0.000 description 4
- 230000005611 electricity Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012856 packing Methods 0.000 description 4
- 101150013423 dsl-1 gene Proteins 0.000 description 3
- 102100031885 General transcription and DNA repair factor IIH helicase subunit XPB Human genes 0.000 description 2
- 101000920748 Homo sapiens General transcription and DNA repair factor IIH helicase subunit XPB Proteins 0.000 description 2
- 101100049574 Human herpesvirus 6A (strain Uganda-1102) U5 gene Proteins 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000005086 pumping Methods 0.000 description 2
- 101150064834 ssl1 gene Proteins 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 101000934888 Homo sapiens Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Proteins 0.000 description 1
- 102100025393 Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Human genes 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000009413 insulation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000009987 spinning Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
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/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
- 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/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
-
- 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
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)
Abstract
本发明可以提供一种存储装置及其操作方法。该存储装置可以包括:存储器装置,包括多个存储块;以及存储器控制器,被配置为控制存储器装置并基于多个存储块之中无效数据块的数量和空闲块的数量之和来执行获得未存储数据的空闲块的垃圾收集操作,其中根据存储在多个存储块中的无效数据的大小来确定无效数据块的数量。
Description
相关申请的交叉引用
本申请要求于2018年5月18日提交的申请号为10-2018-0056863的韩国专利申请的优先权,其通过引用整体并入本文。
技术领域
本公开的各个实施例总体涉及一种电子装置。特别地,实施例涉及一种存储装置和操作该存储装置的方法。
背景技术
存储装置是在诸如计算机、智能电话或智能平板的主机装置的控制下存储数据的装置。根据存储数据的装置,存储装置的示例包括诸如将数据存储在磁盘中的硬盘驱动器(HDD)的装置,以及诸如将数据存储在半导体存储器中,尤其是存储在非易失性存储器中的固态驱动器(SSD)或存储卡的装置。
存储装置可以包括存储数据的存储器装置和控制存储器装置中的数据存储的存储器控制器。
存储器装置可以分类为易失性存储器和非易失性存储器。非易失性存储器的代表性示例包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、相变随机存取存储器(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、铁电RAM(FRAM),等等。
发明内容
本公开的各种实施例涉及一种执行改进的垃圾收集操作的存储装置,以及操作该存储装置的方法。
本公开的实施例可以提供一种存储装置。该存储设备可以包括:存储器装置,包括多个存储块;以及存储器控制器,被配置为控制存储器装置并基于多个存储块之中无效数据块的数量和空闲块的数量之和来执行获得未存储数据的空闲块的垃圾收集操作,其中根据存储在多个存储块中的无效数据的大小来确定无效数据块的数量。
本公开的实施例可以提供一种存储装置。存储装置可以包括:存储器装置,包括多个存储块;以及存储器控制器,被配置为根据存储块之中空闲块的数量和生长坏块的数量中的任何一个来向外部主机提供警报信号,在所述空闲块中未存储数据,所述生长坏块是在存储器装置被使用时所产生的坏块。
本公开的实施例可以提供一种操作存储器控制器的方法,该存储器控制器控制包括多个存储块的存储器装置。该方法可以包括:当多个存储块之中未存储数据的空闲块的数量小于空闲块的参考数量时,执行获得空闲块的垃圾收集操作;并且当该空闲块的数量小于第一阈值时,输出指示是时候获得空闲块了的紧急警报信号,其中第一阈值小于空闲块的参考数量。
本公开的实施例可以提供一种存储器系统。存储器系统可以包括多个存储块和控制器,控制器被配置为根据潜在空闲块的数量来控制存储器装置对存储块执行垃圾收集操作,并且基于潜在空闲块的数量和当前空闲块的数量来防止存储器装置对存储块执行垃圾收集操作和写入操作,其中潜在空闲块的数量是基于当前存储在存储块中的无效数据的大小。
附图说明
图1是示出根据本公开的实施例的存储装置的框图。
图2是示出图1的存储器装置结构的示图。
图3是示出图2的存储器单元阵列的实施例的示图。
图4是示出图3的存储块BLK1至BLKz中的任意一个存储块BLKa的示例的电路图。
图5是示出图3的存储块BLK1至BLKz中的任意一个存储块BLKb的示例的电路图。
图6是描述存储装置的垃圾收集操作的示图。
图7是描述存储装置的容量变化的示图。
图8是示出图1的垃圾收集控制器的操作的示图。
图9是示出图1的垃圾收集控制器的结构的方框图。
图10是描述根据本公开的实施例的操作存储器控制器的方法的流程图。
图11是示出图1的存储器控制器的实施例的示图。
图12是示出应用根据本公开的实施例的存储装置的存储卡系统的框图。
图13是示出应用根据本公开的实施例的存储装置的固态驱动器(SSD)系统的示例的框图。
图14是示出应用根据本公开实施例的存储装置的用户系统的框图。
具体实施方式
在本说明书或申请中引入的本公开的实施例中的具体结构或功能描述仅用于描述本公开的实施例。这些描述不应被解释为限于本说明书或申请中描述的实施例。
将基于实施例更详细地描述本公开。然而,本公开可以以许多不同的形式实施,并且不应被解释为仅限于本文阐述的实施例,而是应被解释为涵盖落入本公开的构思和技术范围内的变型方案、等同方案或可选方案。本公开不旨在将本公开限制于特定的实践模式,并且应当理解,不脱离本公开的精神和技术范围的所有改变、等同方案和替代方案都包含在本公开中。
应当理解,尽管可以在本文中使用术语“第一”和/或“第二”来描述各种元件,但是这些元件不应受这些术语的限制。这些术语仅用于将一个元件与另一元件区分开。例如,在不脱离本公开的教导的情况下,下面讨论的第一元件可以被称为第二元件。类似地,第二元件也可以称为第一元件。
应当理解,当元件被称为“联接”或“连接”到另一元件时,它可以直接联接或连接到另一元件,或者它们之间可以存在中间元件。相反,应该理解,当元件被称为“直接联接”或“直接连接”到另一个元件时,不存在中间元件。解释元件之间关系的其他表达,例如“在......之间”、“直接在...之间”、“与......相邻”或“与......直接相邻”应该以相同的方式来解释。
本文使用的术语仅用于描述特定实施例的目的,并不旨在限制。在本公开中,除非上下文另有明确说明,否则单数形式也旨在包括复数形式,并且反之亦然。将进一步理解的是,当在本说明书中使用时,术语“包含”、“含有”、“具有”等指定所述特征、整数、步骤、操作、元件、组件和/或它们的组合的存在,但不排除存在或添加一个或多个其他特征、整数、步骤、操作、元素、组件和/或其组合。
除非另有定义,否则本文使用的包括技术和科学术语的所有术语具有与本公开所属领域的普通技术人员通常理解的含义相同的含义。将进一步理解,本文使用的术语应被解释为具有与本说明书和相关领域的背景中的含义一致的含义,并且将不以理想化或过于形式化的含义来解释,除非本文明确地如此定义。
将省略本领域技术人员公知的功能和结构的详细描述,以避免模糊本公开的主题。这旨在省略不必要的描述,以使本公开的主题清楚。
应注意的是,对“实施例”的参考不一定意味着仅针对一个实施例,并且对“实施例”的不同参考不一定是针对相同的实施例。
现在将在下文中参照附图更全面地描述本公开的各种实施例,其中示出了本公开的优选实施例,使得本领域普通技术人员可以容易地实现本公开的技术构思。
图1是示出根据本公开的实施例的存储装置50的框图。
参照图1,存储装置50可以包括存储器装置100和存储器控制器200。
存储装置50可以是在主机300的控制下存储数据的装置。主机300的非限制性示例可以包括例如移动电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、电视(TV)、平板PC或车载信息娱乐系统。
存储装置50可以根据主机接口被制造为各种类型的存储装置中的任何一种,该主机接口即为与主机300的通信方案。例如,存储装置50可以被实施为例如以下的各种类型的存储装置中的任何一种:固态硬盘(SSD),诸如MMC、嵌入式MMC(eMMC)、缩小尺寸的MMC(RS-MMC)或微型MMC的多媒体卡,诸如SD、迷你-SD或微型-SD的安全数字卡,通用存储总线(USB)存储装置,通用闪存(UFS)装置,个人计算机存储卡国际协会(PCMCIA)卡型存储装置,外围部件互连(PCI)卡型存储装置,高速PCI(PCI-e或PCIe)卡型存储装置,紧凑型闪存储(CF)卡,智能媒体卡以及记忆棒。
存储装置50可以被制造为各种类型的封装形式中的任何一种。例如,存储装置50可以被制造为诸如以下的各种类型的封装形式中的任何一种:堆叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB),晶圆级制造封装(WFP)和晶圆级堆叠封装(WSP)。
存储器装置100可以存储数据。存储器装置100响应于存储器控制器200的控制来操作。存储器装置100可以包括存储器单元阵列,该存储单元阵列包括存储数据的多个存储器单元。存储器单元阵列可包括多个存储块。每个存储块可以包括多个存储单元。单个存储块可以包括多个页面。在实施例中,页面可以是将数据存储在存储器装置100中,或者读取存储在存储器装置100中的数据的单位。存储块可以是擦除数据的单位。
根据每个存储块中是否存储数据,可以将存储块划分成空闲块和数据块。
空闲块可以是未存储数据的空块。数据块可以是存储数据的块。存储在数据块中的数据片段可以被分类为有效数据和无效数据。
存储块中,不能存储数据的块可以是坏块。坏块可以被分类为制造坏块(MBB)和生长坏块(GBB),制造坏块在制造存储器装置100时产生,生长坏块在每个存储块随时间的使用进程中产生。当读取存储数据的存储块时,产生不可校正的错误(即,不可校正的ECC,UECC)的存储块可以是生成坏块(GBB)。
在实施例中,存储器装置100可以采用许多替代形式,例如双倍数据速率同步动态随机存取存储器(DDR SDRAM)、低功率双倍数据速率第四代(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功耗DDR(LPDDR)SDRAM、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器装置、电阻式RAM(RRAM)、相变存储器(PRAM)、磁阻RAM(MRAM)、铁电RAM(FRAM)或自旋转移力矩RAM(STT-RAM)。在本说明书中,为了便于描述,将在假设存储器装置100是NAND闪速存储器的情况下进行描述。
在实施例中,存储器装置100可以被实施为三维(3D)阵列结构。本公开不仅可以应用于电荷存储层由导电浮置栅极(FG)形成的闪速存储器装置,而且还可以应用于电荷存储层由绝缘层形成电荷撷取闪速(CTF)存储器装置。
存储器装置100可以从存储器控制器200接收命令和地址,并且可以访问由地址选择的存储器单元阵列的区域。也就是说,存储器装置100对由地址选择的区域执行与命令相对应的操作。例如,存储器装置100可以执行写入操作(即,编程操作)、读取操作和擦除操作。在编程操作期间,存储器装置100可以将数据编程到由地址选择的区域。在读取操作期间,存储器装置100可以从由地址选择的区域读取数据。在擦除操作期间,存储器装置100可以擦除存储在由地址选择的区域中的数据。
存储器控制器200可以响应于来自主机300的请求或者不管来自主机300的请求而控制存储器装置100的操作。
例如,存储器控制器200可以控制存储器装置100,使得存储器装置100响应于来自主机300的请求执行编程操作、读取操作或擦除操作。在编程操作期间,存储器控制器200可以向存储器装置100提供编程命令、物理地址和数据。在读取操作期间,存储器控制器200可以向存储器装置100提供读取命令和物理地址。在擦除操作期间,存储器控制器200可以向存储器装置100提供擦除命令和物理地址。
在实施例中,存储器控制器200可以在没有接收到来自主机300的请求的情况下自主地生成编程命令、地址和数据,并且可以将所生成的命令、地址和数据传送到存储器装置100。例如,存储器控制器200可以向存储器装置100提供命令、地址和数据,以便执行用于损耗均衡的编程操作和用于垃圾收集的编程操作。
存储器控制器200还可以包括垃圾收集控制器210。
垃圾收集控制器210可以执行垃圾收集操作。垃圾收集操作可以是由存储器控制器200执行以获得空闲块的后台操作。当空闲块的数量减少到小于空闲块的参考数量时,可以执行垃圾收集操作。详细地,垃圾收集操作可以是从数据块中选择牺牲块、读取存储在牺牲块中的有效数据、将读取的有效数据存储在新的空闲块中并且擦除牺牲块,从而获得空闲块的操作。
在实施例中,可以选择两个或更多个牺牲块以执行垃圾收集操作。在实施例中,可以根据无效数据的大小或每个数据块中包括的有效数据来选择牺牲块。
垃圾收集控制器210可以根据存储块的状态来控制垃圾收集操作的执行。或者,垃圾收集控制器210可以根据存储块的状态向主机300提供警报信号。主机300可以基于警报信号确定存储装置50的状态。
例如,当包括在存储器装置100中的空闲块的数量减少到小于第一阈值时,垃圾收集控制器210可以生成紧急警报信号以提供给主机300,并且可以将紧急警报信号提供给主机300。
在实施例中,当包括在存储器装置100中的生长坏块(GBB)的数量大于第二阈值时,垃圾收集控制器210可以生成警告信号以提供给主机300,并且可以将警告信号提供给主机300。
在实施例中,当无效数据块的数量和空闲块的数量之和减少到小于第三阈值时,垃圾收集控制器210可以挂起(suspend)垃圾收集操作,其中无效数据块的数量基于包括在牺牲块中的无效数据的大小来确定。在这种情况下,存储器控制器200可以控制存储装置50对存储块仅执行读取操作而不进一步执行写入操作。也就是说,当无效数据块的数量和空闲块的数量之和减小到小于第三阈值时,存储装置50可以作为只读存储器(ROM)操作。
存储器控制器200可以运行固件(FW)以控制存储器装置100。当存储器装置100是闪速存储器装置时,存储器控制器200可以管理诸如闪存转换层(FTL)的固件,以用于控制主机300和存储器装置100之间的通信。详细地,存储器控制器200可以将来自主机300的请求中包括的逻辑地址转换为物理地址。
存储器控制器200可以包括缓冲存储器(未示出)。在实施例中,存储器控制器200可以控制主机300和缓冲存储器之间的数据交换。或者,存储器控制器200可以将用于控制存储器装置100的系统数据临时存储在缓冲存储器中。例如,存储器控制器200可以将从主机300输入的数据临时存储在缓冲存储器中,并且然后可以将临时存储在缓冲存储器中的数据传送到存储器装置100。
在各种实施例中,缓冲存储器可以用作存储器控制器200的工作存储器或高速缓冲存储器。缓冲存储器可以存储由存储器控制器200执行的代码或命令。或者,缓冲存储器可以存储由存储器控制器200处理的数据。此外,缓冲存储器可以存储逻辑-物理地址映射表,该表配置逻辑地址和物理地址之间的映射关系。在实施例中,缓冲存储器可以被实施为诸如双倍数据速率同步动态随机存取存储器(DDR SDRAM)、双倍数据速率第四代(DDR4)SDRAM、低功率双倍数据速率第四代(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)SDRAM或Rambus DRAM(RDRAM)的DRAM或者被实施为静态RAM(SRAM)。在各种实施例中,缓冲存储器可以作为单独的DRAM或SRAM被包括在存储装置50中,而不是被包括在存储器控制器200中。
在实施例中,存储器控制器200可以控制至少两个存储器装置100。在这种情况下,存储器控制器200可以以交错(interleave)方式控制存储器装置100以改善操作性能。
主机300可以使用诸如通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe或PCI-e)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)和低负载DIMM(LRDIMM)通信方法的各种通信方法中的至少一种与存储装置50通信。
存储装置50可以根据主机接口被制造为各种类型的存储装置中的任何一种,该主机接口即为与主机300的通信方案。例如,存储装置50可以被实施为例如以下的各种类型的存储装置中的任何一种:固态硬盘(SSD),诸如MMC、嵌入式MMC(eMMC)、减小尺寸的MMC(RS-MMC)或微型MMC的多媒体卡,诸如SD、迷你-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中的每一个可以包括多个虚设(dummy)单元。作为虚设单元,一个或多个虚设单元可以串联联接在漏极选择晶体管和存储器单元之间以及源极选择晶体管和存储器单元之间。
存储器装置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来选择所选择存储块的至少一个字线。
在编程操作期间,地址解码器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包括第一至第m页面缓冲器PB1至PBm。第一至第m页面缓冲器PB1至PBm分别通过第一至第m位线BL1至BLm联接到存储器单元阵列110。第一到第m页面缓冲器PB1到PBm在控制逻辑130的控制下操作。
第一到第m页面缓冲器PB1到PBm执行与数据输入/输出电路124的数据通信。在编程操作期间,第一至第m页面缓冲器PB1至PBm通过数据输入/输出电路124和数据线DL接收待被存储的数据DATA。
在编程操作期间,当编程脉冲施加到每个所选择字线时,第一到第m页面缓冲器PB1到PBm可以通过位线BL1到BLm将通过数据输入/输出电路124接收的数据传送到所选择存储器单元。基于传送的数据对所选择页面中的存储器单元进行编程。联接到施加编程许可电压(例如,接地电压)的位线的存储器单元可具有增加的阈值电压。可以保持联接到施加编程禁止电压(例如,电源电压)的位线的存储器单元的阈值电压。在编程验证操作期间,第一至第m页面缓冲器可以通过位线BL1至BLm从所选择存储器单元读取页面数据。
在读取操作期间,读取和写入电路123可以通过位线BL从所选择页面中的存储器单元读取数据,并且可以将读取的数据输出到数据输入/输出电路124。
在擦除操作期间,读取和写入电路123可以允许位线BL浮置。在实施例中,读取和写入电路123可以包括列选择电路。
数据输入/输出电路124通过数据线DL联接到第一至第m页面缓冲器PB1至PBm。数据输入/输出电路124在控制逻辑130的控制下操作。
数据输入/输出电路124可以包括用于接收输入数据的多个输入/输出缓冲器(未示出)。在编程操作期间,数据输入/输出电路124从外部控制器(未示出)接收待被存储的数据DATA。在读取操作期间,数据输入/输出电路124将从包括在读取和写入电路123中的第一至第m页面缓冲器PB1至PBm接收的数据输出到外部控制器。
控制逻辑130可以连接到地址解码器121、电压发生器122、读取和写入电路123以及数据输入/输出电路124。控制逻辑130可以控制存储器装置100的全部操作。可以响应从外部装置接收的命令CMD来操作控制逻辑130。
图3是示出图2的存储器单元阵列的实施例的示图。
参照图3,存储器单元阵列110包括多个存储块BLK1至BLKz。每个存储块可以具有三维(3D)结构。每个存储块包括堆叠在衬底上的多个存储器单元。这种存储器单元沿正X(+X)方向、正Y(+Y)方向和正Z(+Z)方向布置。下面将参照图4和图5详细描述每个存储块的结构。
图4是示出图3的存储块BLK1至BLKz中的任意一个存储块BLKa的电路图。
参照图4,存储块BLKa包括多个单元串CS11至CS1m和CS21至CS2m。在实施例中,单元串CS11至CS1m和单元串CS21至CS2m中的每一个可以形成为“U”形。在存储块BLKa中,m个单元串沿行方向(即,正(+)X方向)布置。尽管图4示出了沿列方向(即正(+)Y方向)布置的两个单元串,但这仅仅是为了便于描述和说明,并且应注意,本公开不限于此。也就是说,沿列方向布置的单元串的数量可以根据设计而变化。
多个单元串CS11至CS1m和单元串CS21至CS2m中的每一个包括至少一个源极选择晶体管SST、第一至第n存储器单元MC1至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的源极选择晶体管可以共同联接到单个源极选择线。
每个单元串中的第一至第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。
沿列方向布置的单元串联接到沿列方向延伸的位线。在图4中,第一列中的单元串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中的一个或多个可以用作虚设(dummy)存储器单元。例如,设置一个或多个虚设存储器单元以减小源极选择晶体管SST与存储器单元MC1至MCp之间的电场。可选地,设置一个或多个虚设存储器单元以减小漏极选择晶体管DST与存储器单元MCp+1至MCn之间的电场。当设置较多的虚设存储器单元时,存储块BLKa的操作可靠性得到改善,但存储块BLKa的大小增加。当设置较少的存储器单元时,存储块BLKa的大小减小,但存储块BLKa的操作可靠性可能会劣化。
为了有效地控制一个或多个虚设存储器单元,虚设存储器单元中的每一个可以具有所需的阈值电压。在对存储块BLKa执行擦除操作之前或之后,可以对所有或一些虚设存储器单元执行编程操作。当在已执行编程操作之后执行擦除操作时,虚设存储器单元的阈值电压控制施加到与各个虚设存储器单元联接的虚设字线的电压,因此虚设存储器单元可具有所需的阈值电压。
图5是示出图3的存储块BLK1至BLKz中的任意一个存储块BLKb的示例的电路图。
参照图5,存储块BLKb包括多个单元串CS11'至CS1m'和CS21'至CS2m'。多个单元串CS11'至CS1m'和CS21'至CS2m'中的每一个沿正Z(+Z)方向延伸。单元串CS11'至CS1m'和CS21'至CS2m'中的每一个包括至少一个源极选择晶体管SST、第一至第n存储器单元MC1至MCn以及至少一个漏极选择晶体管DST,它们堆叠在存储块BLKb下方的衬底(未示出)上。
每个单元串的源极选择晶体管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。
因此,图5的存储块BLKb具有与图4的存储块BLKa的电路类似的电路。例如,从图5的存储块BLKb中的每个单元串中去除包括在图4的存储块BLKa中的每个单元串中的管道晶体管PT。
在实施例中,可以设置偶数位线和奇数位线,而不是第一至第m位线BL1至BLm。此外,布置在行方向上的单元串CS11'至CS1m'或CS21'至CS2m'之中的偶数编号单元串可以分别联接到偶数位线,并且布置在行方向上的单元串CS11'至CS1m'或CS21'至CS2m'之中的奇数编号单元串可以分别联接到奇数位线。
在实施例中,第一至第n存储器单元MC1至MCn中的一个或多个可以用作虚设存储器单元。例如,设置一个或多个虚设存储器单元以减小源极选择晶体管SST与存储器单元MC1至MCn之间的电场。可选地,设置一个或多个虚设存储器单元以减小漏极选择晶体管DST与存储器单元MC1至MCn之间的电场。当设置较多的虚设存储器单元时,存储块BLKb的操作可靠性得到改善,但存储块BLKb的大小增加。当设置较少的存储器单元时,存储块BLKb的大小减小,但存储块BLKb的操作可靠性可能会劣化。
为了有效地控制一个或多个虚设存储器单元,虚设存储器单元中的每一个可以具有所需的阈值电压。在对存储块BLKb执行擦除操作之前或之后,可以对所有或一些虚设存储器单元执行编程操作。当在已执行编程操作之后执行擦除操作时,虚设存储器单元的阈值电压控制施加到与各个虚设存储器单元联接的虚设字线的电压,因此虚设存储器单元可具有所需的阈值电压。
图6是描述存储装置的垃圾收集操作的示图。
垃圾收集操作可以是为获得空闲块而执行的操作。垃圾收集可以是将包括在牺牲块中的有效数据复制到空闲块并擦除牺牲块的操作。
尽管在图6中,为了便于描述和说明,单个存储块被示出为具有四个页面,即第一至第四页面PG1至PG4,但是本公开的实施例不限于此。
参照图6,可以通过步骤STEP1至STEP3来描述垃圾收集操作。
在STEP1,选择块0(表示为“Victim BLK0”)和块1(表示为“Victim BLK1”)作为牺牲块。可以基于各种类型的标准来执行选择牺牲块的方法。例如,可以选择存储的有效数据量小于或等于预定水平的存储块作为牺牲块。或者,可以使用存储的有效数据和无效数据的比率来选择牺牲块。块0BLK0中的第一页面(表示为“PG1”)和第二页面(表示为“PG2”)可以是存储无效数据的无效页面,并且块0BLK0中的第三页面(表示为“PG3”)和第四页面(表示为“PG4”)可以是存储有效数据的有效页面。块1BLK1中的第一页面和第四页面可以是存储无效数据的无效页面,并且块1BLK1中的第二页面和第三页面可以是存储有效数据的有效页面。存储器控制器可以将存储在块0和块1的有效页面中的数据片段复制到空闲块,即目标块(表示为“Free BLK”)。可以使用从相应有效页面读取数据并将读取的数据编程到空闲块的方法来执行复制进程。
在STEP2,存储器控制器可以对块0和块1执行擦除操作。通过存储器控制器的擦除操作,可以擦除存储在块0和块1中的所有数据。
在STEP3,块0和块1可以是空闲块,并且在STEP1中作为空闲块的目标块可以是包括有效数据的数据块。因此,通过执行垃圾收集操作,可以将执行垃圾收集操作之前存在的空闲块的数量(一个)增加到两个。
图7是描述存储装置的容量变化的示图。
参照图7,存储装置50可以包括具有多个存储块BLK1至BLKz的存储器装置100。在实施例中,存储装置50可以包括一个或多个存储器装置。存储在存储装置50中的存储块BLK1至BLKz可以被分类为数据块、空闲块和坏块。
每个空闲块可以是未存储数据的空块。每个数据块可以是存储数据的块。存储在数据块中的数据可以被划分为有效数据和无效数据。
根据每一个坏块产生的时间点,坏块可以被划分为制造坏块(MBB)705和生长坏块(GBB)707,制造坏块(MBB)705在制造存储器装置时产生,生长坏块(GBB)707在相应存储块随时间使用进程中产生。
用户容量701,即可以由用户来存储数据的容量,可以是存储装置的、除了坏存储块705和707的容量和预留空间(over-provisioning)区域703的容量之外的整个数据存储容量。预留空间区域703可以是被分配用来平稳地操作驱动存储装置所需的各种功能,例如损耗均衡和坏块管理而被保留的区域。由于预留空间区域703是用户不可访问的区域,因此将其从用户容量701中去除。
在实施例中,预留空间区域703可以不改变其容量的大小。因此,可以根据坏块的数量来增加或减少用户容量701。详细地,MBB 705的数量可以不改变。然而,随着存储装置随时间的使用,GBB 707的数量可能增加。当GBB 707的数量增加时,用户容量可能减少。
在实施例中,当充满无效数据的存储块的数量和空闲块的数量之和减小到预定水平或更低时,即使执行了垃圾收集操作,也可能无法获得空闲块。详细地,当无效数据块的数量,即通过将无效数据的大小除以存储块的容量而获得的数量等于或大于空闲块的数量时,空闲块的数量在执行垃圾收集操作之前和之后可能不更改。因此,在这种情况下,需要挂起对不必要的垃圾收集操作的执行。
图8是示出图1的垃圾收集控制器210的操作的示图。
参照图8,横轴表示存储装置50的老化,并且纵轴表示存储块的数量。
由虚线指示的图形801表示空闲块的数量。空闲块的数量可以随着存储装置50的使用而减少。当空闲块的数量减少到小于空闲块的参考数量时,存储器控制器200可以执行垃圾收集操作。然而,当空闲块的数量减少到小于空闲块的参考数量的第一阈值①时,存储装置50可以向主机300提供紧急警报信号,该紧急警报信号指示是时候获得空闲块以用于存储数据了。也就是说,第一阈值①可以指示不可存储附加数据的时间点即将到来的标准。
由点划线指示的图形802表示生长坏块(GBB)的数量。GBB的数量可能随着存储装置50随时间的使用而增加。当GBB的数量大于第二阈值②时,存储装置50可以向主机300提供警告信号。该警告信号可以指示由于GBB数量的增加而难以保持用户容量701的情况的信号。
由实线指示的图形803表示通过将无效数据块的数量和空闲块的数量相加而获得的块的数量。无效数据块的数量可以是通过将包括在牺牲块中的无效数据的大小除以存储块的容量而获得的值。当无效数据块的数量等于或大于空闲块的数量时,空闲块的数量可在执行垃圾收集操作之前和之后不改变。因此,当通过将无效数据块的数量和空闲块的数量相加而获得的块的数量减少到小于第三阈值③时,存储装置50可以挂起垃圾收集操作。在实施例中,存储装置50可以被指定为仅执行读取所存储的数据的读取操作而不进一步存储数据。也就是说,存储器控制器可以将存储装置设置为ROM。
垃圾收集控制器210的操作根据第一至第三阈值与存储块的数量之间的比较而被总结在下面的表1中。
表1
图9是示出图1的垃圾收集控制器210的结构的框图。
参照图9,垃圾收集控制器210可以包括垃圾收集处理器211和垃圾收集信息存储器212。
垃圾收集处理器211可以控制垃圾收集操作。详细地,垃圾收集处理器211可以基于存储在垃圾收集信息存储器212中的垃圾收集相关的信息来控制垃圾收集操作。
例如,垃圾收集处理器211可以根据存储块的状态来控制是否执行垃圾收集操作(GC)。可选地,垃圾收集处理器211可以根据存储块的状态来控制是否执行将数据存储在存储块中的写入操作和从存储块读取数据的读取操作。可选地,垃圾收集处理器211可以根据存储块的状态向主机300提供警报信号ALARM(表示为“GC读取/写入警报”)。
详细地,当空闲块的数量减少到小于第一阈值时,垃圾收集处理器211可以生成紧急警报信号并且可以将紧急警报信号提供给主机300。紧急警报信号可以是指示是时候获得空闲块了的信号。可选地,紧急警报信号可以是指示不可存储附加数据的时间点即将到来的信号。在实施例中,第一阈值可以是小于空闲块的参考数量的值,空闲块的参考数量是是用于启动垃圾收集操作的空闲块的数量。
当包括在存储器装置100中的GBB的数量大于第二阈值时,可以生成警告信号,并且然后可以将该警报信息提供给主机300。警告信号可以是指示由于GBB的数量增加而难以保持用户容量701的情况的信号。在实施例中,第二阈值可以是导致用户容量701减小的GBB的数量。
当无效数据块的数量和空闲块的数量之和减少到小于第三阈值时,垃圾收集控制器210可以挂起垃圾收集操作。可选地,当无效数据块的数量和空闲块的数量之和减少到小于第三阈值时,垃圾收集控制器210可以设置存储装置,使得存储装置对存储块仅执行读取操作而不进一步执行写入操作。也就是说,当无效数据块的数量和空闲块的数量之和减少到小于第三阈值时,存储装置可以作为只读存储器(ROM)操作。在实施例中,第三阈值可以是在即使执行垃圾收集操作空闲块的数量也不发生改变的状态下的无效数据块的数量和空闲块的数量之和。
垃圾收集信息存储器212可以存储垃圾收集相关的信息。详细地,垃圾收集相关的信息可以包括无效数据信息212a,生长坏块(GBB)信息212b和空闲块信息212c。
无效数据信息212a可以包括关于无效数据块的数量的信息。无效数据块的数量可以是通过将存储在数据块中的无效数据的大小除以存储块的大小而获得的值。在实施例中,无效数据块的数量可以是通过将存储在数据块之中的牺牲块中的无效数据的大小除以存储块的大小而获得的值。
GBB信息212b可以是关于生长坏块(GBB)的信息。在实施例中,GBB信息212b可以包括关于GBB数量的信息。这种GBB可以是当读取存储数据的存储块时其中发生不可校正的错误(即,不可校正的ECC,UECC)的存储块。GBB的数量可以随着存储装置50随时间的使用而增加。
空闲块信息212c可以是关于空闲块的信息。在实施例中,空闲块信息212c可以包括关于空闲块的数量的信息。
图10是描述根据本公开的实施例的存储器控制器200的操作的流程图。
参照图10,在步骤S1001中,存储器控制器200可以确定空闲块的数量是否小于第一阈值。当确定空闲块的数量小于第一阈值(即,在步骤S1001中为“是”)时,进程进行到步骤S1003。当确定空闲块的数量不小于第一阈值(即,在步骤S1001中为“否”)时,进程进行到步骤S1005。
在步骤S1003中,存储器控制器可以生成紧急警报信号,并且可以将紧急警报信号提供给主机300。紧急警报信号可以是指示是时候获得空闲块了的信号。可选地,紧急警报信号可以是指示不可存储附加数据的时间点即将到来的信号。在实施例中,第一阈值可以是小于空闲块的参考数量的值,空闲块的参考数量是用于启动垃圾收集操作的空闲块的数量。
在步骤S1005中,当确定空闲块的数量不小于第一阈值时,存储器控制器200可以确定GBB的数量是否大于第二阈值。这种GBB可以是当读取存储数据的存储块时其中发生不可校正的错误(即,不可校正的ECC,UECC)的存储块。随着存储装置随时间的使用,GBB的数量可能增加。当确定GBB的数量大于第二阈值(即,在步骤S1005中为“是”)时,进程进行到步骤S1007。当确定GBB的数量不大于第二阈值(即,在步骤S1005中为“否”)时,进程进行到步骤S1009。
在步骤S1007中,存储器控制器200可以生成警告信号并且可以将该警告信号提供给主机300。警告信号可以是指示由于GBB的数量增加而难以保持用户容量的情况的信号。在实施例中,第二阈值可以是导致用户容量减小的GBB的数量。
在步骤S1009中,当确定GBB的数量不大于第二阈值时,存储器控制器200可以确定无效数据块的数量和空闲块的数量之和是否小于第三阈值。当确定无效数据块的数量和空闲块的数量之和小于第三阈值(即,在步骤S1009中为“是”)时,进程进行到步骤S1011。当确定无效数据块的数量和空闲块的数量之和不小于第三阈值(即,在步骤S1009中为“否”)时,进程可以终止。在实施例中,第三阈值可以是在即使垃圾收集操作空闲块的数量也不发生改变的状态下的无效数据块的数量和空闲块的数量之和。
在步骤S1011中,存储器控制器200可以挂起垃圾收集操作。
在步骤S1013中,存储器控制器200可以设置存储装置50,使得存储装置50对存储块仅执行读取操作而不进一步执行写入操作。也就是说,存储器控制器200可以将存储装置50设置为ROM。
图11是示出图1的存储器控制器200的示例的示图。
存储器控制器1000联接到主机和存储器装置。响应于从主机接收的请求,存储器控制器1000可以访问存储器装置。例如,存储器控制器1000可以被配置为控制存储器装置的写入操作、读取操作、擦除操作和后台操作。存储器控制器1000可以提供存储器装置和主机之间的接口。存储器控制器1000可以运行用于控制存储器装置的固件。
参照图11,存储器控制器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可以使用映射表接收LBA并将LBA转换为PBA。根据映射单位,通过FTL执行的地址映射方法的示例可以包括各种方法。代表性地址映射方法包括页面映射方法、块映射方法和混合映射方法。
处理器1010可以对从主机接收的数据进行随机化。例如,处理器1010可以使用随机化种子来对从主机接收的数据进行随机化。随机化的数据可以作为待被存储的数据而提供给存储器装置,并且可以被编程在存储器单元阵列中。
处理器可以在读取操作期间对从存储器装置接收的数据去随机化。例如,处理器1010可以使用去随机化种子对从存储器装置接收的数据进行去随机化。去随机化的数据可以被输出到主机。
在实施例中,处理器1010可以运行软件或固件以执行随机化和去随机化操作。
存储器缓冲器1020可以用作处理器1010的工作存储器、高速缓冲存储器或缓冲存储器。存储器缓冲器1020可以存储由处理器1010执行的代码和命令。存储器缓冲器1020可以存储由处理器1010处理的数据。存储器缓冲器1020可以包括静态RAM(SRAM)或动态RAM(DRAM)。
ECC部件1030可以执行错误校正。ECC部件1030可以基于待通过存储器接口1060而被写入存储器装置的数据来执行错误校正码(ECC)编码。ECC编码的数据可以通过存储器接口1060传输到存储器装置。ECC部件1030可以基于通过存储器接口1060从存储器装置接收的数据来执行ECC解码。在示例中,ECC部件1030可以作为存储器接口1060的部件而被包括在存储器接口1060中。
主机接口1040可以在处理器1010的控制下与外部主机通信。主机接口1040可以使用诸如通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(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。
图12是示出应用根据本公开的实施例的存储装置的存储卡系统的框图。
参照图12,存储卡系统2000可包括存储器控制器2100、存储器装置2200和连接器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(PCI-E)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机小型接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙和高速非易失性存储器(NVMe)协议。在实施例中,连接器2300可以由上述各种通信协议中的至少一种来定义。
在实施例中,存储器装置2200可以被实施为诸如以下的各种非易失性存储器装置中的任何一种:电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)、自旋力矩磁性RAM(STT-MRAM)。
存储器控制器2100和存储器装置2200可以集成到单个半导体装置中以配置存储卡。例如,存储器控制器2100和存储器装置2200可以集成到单个半导体装置中以配置诸如以下的的存储卡:PC卡(个人计算机存储卡国际协会:PCMCIA)、紧凑型闪存卡(CF)、智能媒体卡(SM或SMC)、记忆棒、多媒体卡(MMC、RS-MMC、微型MMC或eMMC)、SD卡(SD、迷你SD、微型SD、或SDHC)或通用闪存(UFS)。
图13是示出应用根据本公开的实施例的存储装置的固态驱动器(SSD)系统的示例的框图。
参照图13,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(PCI-E)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机小型接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙和高速非易失性存储器(NVMe)接口的各种接口中的至少一种所定义的信号。
辅助电源3230可以通过电源连接器3002联接到主机3100。辅助电源3230可以由主机3100供应电力PWR并且可以被充电。当不能平稳地执行来自主机3100的电力供应时,辅助电源3230可以供应SSD 3200的电力。在实施例中,辅助电源3230可以位于SSD 3200内部或者位于SSD 3200外部。例如,辅助电源3230可以设置在主板中,并且可以向SSD3200提供辅助电力。
缓冲存储器3240用作SSD 3200的缓冲存储器。例如,缓冲存储器3240可以临时存储从主机3100接收的数据或从多个闪速存储器3221至322n接收的数据,或者可以临时存储闪速存储器3221至322n的元数据(例如,映射表)。缓冲存储器3240可以包括诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM的易失性存储器,或者诸如FRAM、ReRAM、STT-MRAM和PRAM的非易失性存储器。
图14是示出应用根据本公开的实施例的存储装置的用户系统的框图。
参照图14,用户系统4000可以包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可以运行包括在用户系统4000、操作系统(OS)或用户程序中的部件。在实施例中,应用处理器4100可以包括用于控制包括在用户系统4000中的部件的控制器、接口、图形引擎等。应用处理器4100可被设置为片上系统(SoC)。
存储器模块4200可用作用户系统4000的主存储器、工作存储器、缓冲存储器或高速缓冲存储器。存储器模块4200可以包括诸如DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3SDRAM、LPDDR SDRAM和LPDDR3 SDRAM的易失性RAM,或者诸如PRAM、ReRAM、MRAM和FRAM的非易失性RAM。在实施例中,应用处理器4100和存储器模块4200可以基于堆叠封装(POP)被封装,并且然后可以被设置为单个半导体封装。
网络模块4300可与外部装置通信。例如,网络模块4300可以支持无线通信,例如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、WiMAX、WLAN、UWB、蓝牙或Wi-Fi通信。在实施例中,网络模块4300可以包括在应用处理器4100中。
存储模块4400可以存储数据。例如,存储模块4400可以存储从应用处理器4100接收的数据。或者,存储模块4400可以将存储在存储模块4400中的数据传送到应用处理器4100。在实施例中,存储模块4400可以被实施为非易失性半导体存储器装置,诸如相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、NAND闪速存储器、NOR闪速存储器或具有三维(3D)结构的NAND闪速存储器。在实施例中,存储模块4400可以被设置为诸如存储卡的可移动存储介质(即,可移动驱动器),或者用户系统4000的外部驱动器。
在实施例中,存储模块4400可以包括多个非易失性存储器装置,非易失性存储器装置中的每一个可以以与上面参照图2至图5描述的存储器装置相同的方式操作。存储模块4400可以以与上面参照图1描述的存储装置50相同的方式操作。
用户接口4500可以包括将数据或指令输入到应用处理器4100或将数据输出到外部装置的接口。在实施例中,用户接口4500可以包括用户输入界面,诸如键盘、小键盘、按钮、触摸板、触摸屏、触摸板、触摸球、相机、麦克风、陀螺仪传感器、振动传感器和压电装置。用户接口4500还可以包括用户输出接口,诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监视器。
提供了一种执行改进的垃圾收集操作的存储装置,以及操作该存储装置的方法。
虽然出于说明性目的已经公开了本公开的示例性实施例,但是本领域技术人员将理解,可以进行各种修改、添加和替换。因此,本公开的范围必须由所附权利要求和权利要求的等同方案来限定,而不是由前面的描述来限定。
尽管已经公开了本公开的实施例,但是本领域技术人员将理解,在不脱离本公开的范围和精神的情况下,可以进行各种修改、添加和替换。
因此,本公开的范围必须由所附权利要求和权利要求的等同方案来限定,而不是由前面的描述来限定。
在上面讨论的实施例中,可以选择性地执行或跳过所有步骤。另外,每个实施例中的步骤可以不总是按给定顺序来顺序执行,而是可以随机执行。此外,本说明书和附图中公开的实施例旨在帮助本领域的普通技术人员更清楚地理解本公开,而不是旨在限制本公开的范围。换句话说,本公开所属领域的普通技术人员将能够容易地理解,基于本公开的技术范围,各种修改是可能的。
已经参考附图描述了本公开的实施例,并且应当根据本公开的精神来解释在说明书中使用的特定术语或词语,而不限制其主题。应当理解,本文描述的基本发明构思的许多变化和修改仍将落入如所附权利要求及其等同方案中所限定的本公开的精神和范围内。
Claims (20)
1.一种存储装置,包括:
存储器装置,包括多个存储块;以及
存储器控制器,控制所述存储器装置并基于所述多个存储块之中无效数据块的数量和空闲块的数量之和来执行获得未存储数据的空闲块的垃圾收集操作,
其中根据存储在所述多个存储块中的无效数据的大小来确定所述无效数据块的数量。
2.根据权利要求1所述的存储装置,其中所述存储器控制器包括:
垃圾收集处理器,将所述无效数据块的数量和所述空闲块的数量之和与预设阈值进行比较,并且然后根据所述比较来确定是否执行所述垃圾收集操作;以及
垃圾收集信息存储器,存储关于所述无效数据的信息以及关于所述空闲块的数量的信息。
3.根据权利要求2所述的存储装置,其中当所述空闲块的数量小于空闲块的参考数量时,所述垃圾收集处理器执行所述垃圾收集操作。
4.根据权利要求3所述的存储装置,其中所述阈值是小于所述空闲块的参考数量的值。
5.根据权利要求3所述的存储装置,其中所述阈值是即使执行所述垃圾收集操作也不会导致所述空闲块的数量发生改变的所述无效数据块的数量和所述空闲块的数量之和。
6.根据权利要求2所述的存储装置,其中当所述无效数据块的数量和所述空闲块的数量之和小于所述阈值时,所述垃圾收集处理器挂起所述垃圾收集操作。
7.根据权利要求2所述的存储装置,其中当所述无效数据块的数量和所述空闲块的数量之和小于所述阈值时,所述垃圾收集处理器将所述存储装置设置为只读存储器,即ROM。
8.根据权利要求2所述的存储装置,其中所述垃圾收集信息存储器进一步存储关于所述多个存储块之中的生长坏块的信息,所述生长坏块是在所述存储器装置被使用时所产生的坏块。
9.根据权利要求1所述的存储装置,其中所述无效数据块的数量是通过将所述无效数据的大小除以所述多个存储块中的任意一个的大小而获得的值。
10.一种存储装置,包括:
存储器装置,包括多个存储块;以及
存储器控制器,根据所述多个存储块之中空闲块的数量和生长坏块的数量中的任何一个来向外部主机提供警报信号,其中在所述空闲块中未存储数据,并且所述生长坏块是在所述存储器装置被使用时所产生的坏块。
11.根据权利要求10所述的存储装置,其中所述存储器控制器包括:
垃圾收集处理器,根据所述空闲块的数量或所述生长坏块的数量来确定是否生成所述警报信号;以及
垃圾收集信息存储器,存储关于所述空闲块的数量的信息以及关于所述生长坏块的信息。
12.根据权利要求11所述的存储装置,其中当所述空闲块的数量小于预设第一阈值时,所述垃圾收集处理器生成指示是时候获得所述空闲块的紧急警报信号。
13.根据权利要求12所述的存储装置,其中所述第一阈值是小于空闲块的参考数量的值,所述空闲块的参考数量指示用于启动所述垃圾收集操作的所述空闲块的数量。
14.根据权利要求11所述的存储装置,其中当所述生长坏块的数量大于预设第二阈值时,所述垃圾收集处理器生成指示难以保持所述存储装置中的可用存储容量的情况的警告信号。
15.根据权利要求14所述的存储装置,其中所述第二阈值是导致用户容量减小的所述生长坏块的数量。
16.根据权利要求11所述的存储装置,其中所述生长坏块是所述多个存储块之中的、在读取数据时产生不可校正的错误的存储块。
17.根据权利要求11所述的存储装置,其中随着所述存储装置的使用,所述生长坏块的数量增加。
18.一种操作存储器控制器的方法,所述存储器控制器控制包括多个存储块的存储器装置,所述方法包括:
当所述多个存储块之中未存储数据的空闲块的数量小于空闲块的参考数量时,执行获得所述空闲块的垃圾收集操作;并且
当所述空闲块的数量小于第一阈值时,输出指示是时候获得所述空闲块了的紧急警报信号,所述第一阈值小于所述空闲块的参考数量。
19.根据权利要求18所述的方法,进一步包括:当生长坏块的数量大于第二阈值时,输出指示难以保持所述存储器装置中的可用容量的情况的警告信号,所述生长坏块是在所述存储器装置被使用时所产生的坏块。
20.根据权利要求18所述的方法,进一步包括:当无效数据块的数量与所述空闲块的数量之和小于第三阈值时,挂起所述垃圾收集操作,所述无效数据块的数量根据存储在所述存储块中的无效数据的大小来设置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0056863 | 2018-05-18 | ||
KR1020180056863A KR102620255B1 (ko) | 2018-05-18 | 2018-05-18 | 저장 장치 및 그 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110502449A true CN110502449A (zh) | 2019-11-26 |
CN110502449B CN110502449B (zh) | 2024-01-26 |
Family
ID=68534501
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811586038.6A Active CN110502449B (zh) | 2018-05-18 | 2018-12-25 | 存储装置及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10884922B2 (zh) |
KR (1) | KR102620255B1 (zh) |
CN (1) | CN110502449B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020071632A (ja) * | 2018-10-31 | 2020-05-07 | レノボ・シンガポール・プライベート・リミテッド | 情報処理装置、制御方法、及びプログラム |
KR20200085513A (ko) * | 2019-01-07 | 2020-07-15 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 |
KR20200114009A (ko) * | 2019-03-27 | 2020-10-07 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
KR20210127026A (ko) * | 2020-04-13 | 2021-10-21 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
US11467744B2 (en) | 2020-05-27 | 2022-10-11 | Western Digital Technologies, Inc. | System to identify aggressor blocks causing back to back erase failure |
US11152071B1 (en) * | 2020-05-27 | 2021-10-19 | Western Digital Technologies, Inc. | Erase operation reattempt to recover misidentified bad blocks resulting from consecutive erase failures |
JP2022143231A (ja) * | 2021-03-17 | 2022-10-03 | キオクシア株式会社 | ストレージデバイス、ストレージシステム、及び制御方法 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040024798A1 (en) * | 2002-07-31 | 2004-02-05 | Texas Instruments Incorporated | Conditional garbage based on monitoring to improve real time performance |
US20090106519A1 (en) * | 2007-10-17 | 2009-04-23 | Silicon Motion, Inc. | Storage Device and Method of Accessing a Status Thereof |
KR20100036743A (ko) * | 2008-09-30 | 2010-04-08 | 삼성전자주식회사 | 메모리 저장 장치의 모드 설정 방법 및 초기화 방법 |
WO2010078222A1 (en) * | 2009-01-05 | 2010-07-08 | Sandisk Corporation | Non-volatile memory and method with write cache partitioning |
CN102622189A (zh) * | 2011-12-31 | 2012-08-01 | 成都市华为赛门铁克科技有限公司 | 存储虚拟化的装置、数据存储方法及系统 |
US20120284453A1 (en) * | 2011-03-10 | 2012-11-08 | Kabushiki Kaisha Toshiba | Information processing device, external storage device, host device, relay device, control program, and control method of information processing device |
KR20160078611A (ko) * | 2014-12-24 | 2016-07-05 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 그것의 동작 방법 |
US9436595B1 (en) * | 2013-03-15 | 2016-09-06 | Google Inc. | Use of application data and garbage-collected data to improve write efficiency of a data storage device |
US20160266792A1 (en) * | 2015-03-12 | 2016-09-15 | Kabushiki Kaisha Toshiba | Memory system and information processing system |
US9639463B1 (en) * | 2013-08-26 | 2017-05-02 | Sandisk Technologies Llc | Heuristic aware garbage collection scheme in storage systems |
US20170160976A1 (en) * | 2015-12-03 | 2017-06-08 | Sandisk Technologies Inc. | Efficiently Managing Unmapped Blocks to Extend Life of Solid State Drive with Low Over-Provisioning |
CN106874217A (zh) * | 2015-12-14 | 2017-06-20 | 株式会社东芝 | 存储器系统及控制方法 |
CN107025178A (zh) * | 2015-09-22 | 2017-08-08 | 三星电子株式会社 | 存储器控制器、非易失性存储器系统及其操作方法 |
CN107168886A (zh) * | 2016-03-07 | 2017-09-15 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US223216A (en) * | 1880-01-06 | catlin | ||
US7802155B2 (en) * | 2000-01-06 | 2010-09-21 | Super Talent Electronics, Inc. | Non-volatile memory device manufacturing process testing systems and methods thereof |
US20060161724A1 (en) * | 2005-01-20 | 2006-07-20 | Bennett Alan D | Scheduling of housekeeping operations in flash memory systems |
TW200743113A (en) * | 2006-05-08 | 2007-11-16 | Apacer Technology Inc | Dynamic management method of portable data storage device |
US7653778B2 (en) * | 2006-05-08 | 2010-01-26 | Siliconsystems, Inc. | Systems and methods for measuring the useful life of solid-state storage devices |
US20090198952A1 (en) * | 2008-02-04 | 2009-08-06 | Apple Inc | Memory Mapping Architecture |
US8327066B2 (en) * | 2008-09-30 | 2012-12-04 | Samsung Electronics Co., Ltd. | Method of managing a solid state drive, associated systems and implementations |
WO2010144587A2 (en) * | 2009-06-12 | 2010-12-16 | Violin Memory, Inc. | Memory system having persistent garbage collection |
US9734911B2 (en) * | 2012-12-31 | 2017-08-15 | Sandisk Technologies Llc | Method and system for asynchronous die operations in a non-volatile memory |
JP6005566B2 (ja) * | 2013-03-18 | 2016-10-12 | 株式会社東芝 | 情報処理システム、制御プログラムおよび情報処理装置 |
IN2015CH04361A (zh) * | 2015-08-20 | 2015-09-04 | Wipro Ltd | |
KR102602694B1 (ko) | 2015-12-15 | 2023-11-15 | 삼성전자주식회사 | 스토리지 컨트롤러의 작동 방법과 이를 포함하는 스토리지 장치의 작동 방법 |
KR20170099018A (ko) | 2016-02-22 | 2017-08-31 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작방법 |
JP6524039B2 (ja) * | 2016-09-23 | 2019-06-05 | 東芝メモリ株式会社 | メモリシステム及び制御方法 |
KR20180138398A (ko) * | 2017-06-21 | 2018-12-31 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작방법 |
-
2018
- 2018-05-18 KR KR1020180056863A patent/KR102620255B1/ko active IP Right Grant
- 2018-12-03 US US16/207,487 patent/US10884922B2/en active Active
- 2018-12-25 CN CN201811586038.6A patent/CN110502449B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040024798A1 (en) * | 2002-07-31 | 2004-02-05 | Texas Instruments Incorporated | Conditional garbage based on monitoring to improve real time performance |
US20090106519A1 (en) * | 2007-10-17 | 2009-04-23 | Silicon Motion, Inc. | Storage Device and Method of Accessing a Status Thereof |
KR20100036743A (ko) * | 2008-09-30 | 2010-04-08 | 삼성전자주식회사 | 메모리 저장 장치의 모드 설정 방법 및 초기화 방법 |
WO2010078222A1 (en) * | 2009-01-05 | 2010-07-08 | Sandisk Corporation | Non-volatile memory and method with write cache partitioning |
US20120284453A1 (en) * | 2011-03-10 | 2012-11-08 | Kabushiki Kaisha Toshiba | Information processing device, external storage device, host device, relay device, control program, and control method of information processing device |
CN102622189A (zh) * | 2011-12-31 | 2012-08-01 | 成都市华为赛门铁克科技有限公司 | 存储虚拟化的装置、数据存储方法及系统 |
US9436595B1 (en) * | 2013-03-15 | 2016-09-06 | Google Inc. | Use of application data and garbage-collected data to improve write efficiency of a data storage device |
US9639463B1 (en) * | 2013-08-26 | 2017-05-02 | Sandisk Technologies Llc | Heuristic aware garbage collection scheme in storage systems |
KR20160078611A (ko) * | 2014-12-24 | 2016-07-05 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 그것의 동작 방법 |
US20160266792A1 (en) * | 2015-03-12 | 2016-09-15 | Kabushiki Kaisha Toshiba | Memory system and information processing system |
CN107025178A (zh) * | 2015-09-22 | 2017-08-08 | 三星电子株式会社 | 存储器控制器、非易失性存储器系统及其操作方法 |
US20170160976A1 (en) * | 2015-12-03 | 2017-06-08 | Sandisk Technologies Inc. | Efficiently Managing Unmapped Blocks to Extend Life of Solid State Drive with Low Over-Provisioning |
CN106874217A (zh) * | 2015-12-14 | 2017-06-20 | 株式会社东芝 | 存储器系统及控制方法 |
CN107168886A (zh) * | 2016-03-07 | 2017-09-15 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
KR102620255B1 (ko) | 2024-01-04 |
US20190354476A1 (en) | 2019-11-21 |
KR20190131901A (ko) | 2019-11-27 |
US10884922B2 (en) | 2021-01-05 |
CN110502449B (zh) | 2024-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11461227B2 (en) | Storage device and operating method thereof | |
CN110321070B (zh) | 存储器控制器及其操作方法 | |
CN110502449A (zh) | 存储装置及其操作方法 | |
CN110069212A (zh) | 存储装置及存储装置的操作方法 | |
CN110083304A (zh) | 存储器控制器及其操作方法 | |
CN110503997A (zh) | 存储器装置及其操作方法 | |
CN109388578A (zh) | 存储装置及其操作方法 | |
KR102535104B1 (ko) | 저장 장치 및 그 동작 방법 | |
US11543986B2 (en) | Electronic system including host, memory controller and memory device and method of operating the same | |
CN110399092A (zh) | 存储装置以及操作存储装置的方法 | |
CN110389717A (zh) | 存储装置及其操作方法 | |
KR20200114149A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
CN110389720A (zh) | 存储装置及其操作方法 | |
CN110175132A (zh) | 存储装置及其操作方法 | |
US11243715B2 (en) | Memory controller and operating method thereof | |
CN113035254A (zh) | 存储装置及其操作方法 | |
CN110175133B (zh) | 存储装置及其操作方法 | |
CN111752856A (zh) | 存储器控制器及其操作方法 | |
CN111105836A (zh) | 存储装置及其操作方法 | |
CN111338978B (zh) | 存储装置以及操作存储装置的方法 | |
CN110389722A (zh) | 存储装置及其操作方法 | |
CN110619912A (zh) | 存储装置以及该存储装置的操作方法 | |
CN111210862A (zh) | 存储器控制器及操作该存储器控制器的方法 | |
CN110413219A (zh) | 存储器控制器、存储器系统及其操作方法 | |
US11636899B2 (en) | Memory device and method of operating the same |
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 |