CN117631987A - 包括非易失性存储器装置的存储装置及其操作方法 - Google Patents
包括非易失性存储器装置的存储装置及其操作方法 Download PDFInfo
- Publication number
- CN117631987A CN117631987A CN202311113315.2A CN202311113315A CN117631987A CN 117631987 A CN117631987 A CN 117631987A CN 202311113315 A CN202311113315 A CN 202311113315A CN 117631987 A CN117631987 A CN 117631987A
- Authority
- CN
- China
- Prior art keywords
- partition
- memory controller
- data
- memory
- write
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000005192 partition Methods 0.000 claims abstract description 1823
- 230000015654 memory Effects 0.000 claims abstract description 972
- 239000000872 buffer Substances 0.000 claims description 297
- 238000013507 mapping Methods 0.000 claims description 134
- 238000010586 diagram Methods 0.000 description 165
- 230000004044 response Effects 0.000 description 159
- 238000013508 migration Methods 0.000 description 124
- 230000005012 migration Effects 0.000 description 124
- 238000012005 ligant binding assay Methods 0.000 description 84
- 238000011084 recovery Methods 0.000 description 62
- 238000012546 transfer Methods 0.000 description 23
- 230000008569 process Effects 0.000 description 19
- 230000005540 biological transmission Effects 0.000 description 16
- 230000010076 replication Effects 0.000 description 16
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 13
- 238000012545 processing Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 230000003139 buffering effect Effects 0.000 description 10
- 239000003623 enhancer Substances 0.000 description 10
- 238000012937 correction Methods 0.000 description 8
- 239000000758 substrate Substances 0.000 description 7
- 101150101057 PBA1 gene Proteins 0.000 description 6
- 101000648827 Homo sapiens TPR and ankyrin repeat-containing protein 1 Proteins 0.000 description 5
- 102100028173 TPR and ankyrin repeat-containing protein 1 Human genes 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 101100520663 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) ADD66 gene Proteins 0.000 description 4
- 230000004913 activation Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011010 flushing procedure Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 235000012431 wafers Nutrition 0.000 description 2
- 101100243399 Caenorhabditis elegans pept-2 gene Proteins 0.000 description 1
- 101150104728 GPR88 gene Proteins 0.000 description 1
- 102100031885 General transcription and DNA repair factor IIH helicase subunit XPB Human genes 0.000 description 1
- 101000920748 Homo sapiens General transcription and DNA repair factor IIH helicase subunit XPB Proteins 0.000 description 1
- 102100038404 Probable G-protein coupled receptor 88 Human genes 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 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/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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0656—Data buffering 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/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]
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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
公开了包括非易失性存储器装置的存储装置及其操作方法。所述存储装置包括:非易失性存储器装置,包括多个存储器单元;以及控制器,配置为:基于从外部主机装置接收到的请求将多个分区分配给非易失性存储器装置的存储空间,基于分区映射表从包括在所述多个存储器单元中的多个擦除单元之中选择两个或更多个擦除单元以分配给所述多个分区中的每个,固定地且顺序地管理写入所述多个分区中的数据的逻辑地址,非易失性存储器装置包括多个存储器芯片,所述多个存储器芯片中的每个存储器芯片包括多个存储器块,所述多个存储器块中的每个存储器块包括至少两个擦除单元,并且其中,控制器还被配置为从每个存储器块选择至少一个擦除单元以分配给分区。
Description
本申请要求在韩国知识产权局于2022年8月31日提交的第10-2022-0109942号韩国专利申请、于2022年11月10日提交的第10-2022-0149964号韩国专利申请、于2023年1月12日提交的第10-2023-0005050号韩国专利申请、于2023年1月12日提交的第10-2023-0005013号韩国专利申请、于2023年1月12日提交的第10-2023-0004966号韩国专利申请、于2023年1月12日提交的第10-2023-0005044号韩国专利申请、于2023年1月12日提交的第10-2023-0005043号韩国专利申请、于2023年1月12日提交的第10-2023-0005046号韩国专利申请、于2023年1月12日提交的10-2023-0005058号韩国专利申请、于2023年1月12日提交的第10-2023-0005040号韩国专利申请、于2023年1月12日提交的第10-2023-0005053号韩国专利申请、于2023年1月12日提交的第10-2023-0005048号韩国专利申请、于2023年1月12日提交的第10-2023-0005033号韩国专利申请、于2023年1月12日提交的第10-2023-0005041号和第10-2023-0004994号韩国专利申请的优先权,所述韩国专利申请的公开通过引用全部包含于此。
技术领域
公开涉及一种电子装置,并且更具体地,涉及一种包括非易失性存储器装置的存储装置以及该存储装置的操作方法。
背景技术
存储装置可表示在主机装置(诸如,计算机、智能电话或智能平板)的控制下存储数据的装置。存储装置可包括将数据存储在磁盘(诸如,硬盘驱动器(HDD))上的装置或将数据存储在半导体存储器(例如,非易失性存储器(诸如,固态驱动器(SSD)或存储卡))中的装置。
非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、相变RAM(PRAM)、磁RAM(MRAM)、电阻式RAM(RRAM)、铁电RAM(FRAM)等。
随着半导体制造技术发展,可提高主机装置的操作速度。此外,存储装置和存储装置的主机装置中使用的内容的大小正不断增大。至少出于这些原因,具有提高的操作速度的存储装置可以是有益的。
发明内容
提供一种具有提高的操作速度的存储装置以及存储装置的操作方法。
附加的方面将部分地在下面的描述中阐述,并且部分地将从描述清楚,或者可通过实践呈现的实施例来学习。
根据公开的一方面,一种存储装置包括:非易失性存储器装置,包括多个存储器单元;以及控制器,被配置为对包括在所述多个存储器单元中的至少一个写入单元执行写入操作,并且对包括在所述多个存储器单元中的至少一个擦除单元执行擦除操作,其中,控制器还被配置为:基于从外部主机装置接收到的请求将多个分区分配给非易失性存储器装置的存储空间,基于分区映射表从包括在所述多个存储器单元中的多个擦除单元之中选择两个或更多个擦除单元以分配给所述多个分区中的每个,固定地且顺序地管理写入所述多个分区中的数据的逻辑地址,其中,非易失性存储器装置包括多个存储器芯片,其中,所述多个存储器芯片中的每个存储器芯片包括多个存储器块,其中,所述多个存储器块中的每个存储器块包括至少两个擦除单元,并且其中,控制器还被配置为从每个存储器块选择至少一个擦除单元以分配给分区。
根据公开的一方面,一种存储装置包括:非易失性存储器装置,包括多个存储器单元;以及控制器,被配置为对包括在所述多个存储器单元中的至少一个写入单元执行写入操作,并且对包括在所述多个存储器单元中的至少一个擦除单元执行擦除操作,其中,控制器还被配置为基于从外部主机装置接收到的请求来将多个分区分配给非易失性存储器装置的存储空间,其中,控制器还被配置为:基于分区映射表在包括在所述多个存储器单元中的多个擦除单元之中选择两个或更多个擦除单元以分配给所述多个分区中的每个,固定地且顺序地管理写入所述多个分区中的数据的逻辑地址,其中,非易失性存储器装置包括多个存储器芯片,其中,所述多个存储器芯片中的每个存储器芯片包括多个存储器块,其中,所述多个存储器块中的每个存储器块包括两个或更多个擦除单元,其中,控制器还被配置为从每个存储器块选择至少一个擦除单元以分配给分区,其中,基于从外部主机装置接收到的垃圾收集请求来执行针对所述多个分区的垃圾收集,并且其中,针对所述多个分区的垃圾收集由控制器作为后台操作来执行。
根据公开的一方面,一种包括非易失性存储器装置和控制器的存储装置的操作方法包括:由控制器基于分区映射表来分配多个分区,所述多个分区包括包含在非易失性存储器装置中的两个或更多个擦除单元;由控制器基于从外部主机装置接收到的请求对所述多个分区执行垃圾收集;由控制器在不接收外部主机装置的新请求的情况下将针对装置分区的垃圾收集作为后台操作来执行,其中,装置分区之中的每个装置分区包括两个或更多个分区。
根据公开的一方面,一种存储装置包括:非易失性存储器装置,包括多个存储器芯片,其中,所述多个存储器芯片中的每个存储器芯片包括多个存储器块,并且其中,所述多个存储器块中的每个存储器块包括至少两个擦除单元;以及控制器,被配置为:将至少一个擦除单元从每个存储器块分配给主机分区,并且将至少一个存储器块从每个存储器芯片分配给装置分区。
根据公开的一方面,一种存储装置包括:非易失性存储器装置,包括多个存储器芯片,其中,所述多个存储器芯片中的每个存储器芯片包括多个存储器块,并且其中,所述多个存储器块中的每个存储器块包括至少两个擦除单元;以及控制器,被配置为:将至少一个第一擦除单元从每个存储器块分配给第一主机分区,将至少一个第二擦除单元从每个存储器块分配给第二主机分区,将至少一个第三擦除单元从每个存储器块分配给第三主机分区,并且将至少一个第四擦除单元从每个存储器块分配给第四主机分区,基于第一主机分区、第二主机分区、第三主机分区和第四主机分区中的两个或更多个主机分区被设置为繁忙主机分区,将第一主机分区和第二主机分区分配给第一装置分区,并且将第三主机分区和第四主机分区分配给第二装置分区,对非易失性存储器装置执行垃圾收集操作,并且基于垃圾收集操作的结果将所述两个或更多个主机分区中的至少一个设置为空闲主机分区。
根据公开的一方面,一种管理存储装置的方法包括:将至少一个第一擦除单元从包括在非易失性存储器装置中的每个存储器块分配给第一主机分区,将至少一个第二擦除单元从每个存储器块分配给第二主机分区,将至少一个第三擦除单元从每个存储器块分配给第三主机分区,并且将至少一个第四擦除单元从每个存储器分区分配给第四主机分区,基于第一主机分区、第二主机分区、第三主机分区和第四主机分区之中的两个或更多个主机分区被设置为繁忙主机分区,将第一主机分区和第二主机分区分配给第一装置分区,并且将第三主机区和第四主机区分配给第二装置分区,对非易失性存储器装置执行垃圾收集操作,并且基于垃圾收集操作的结果将所述两个或更多个主机分区设置为空闲主机分区。
附图说明
根据以下结合附图的描述,本公开的特定实施例的以上和其他方面、特征和优点将清楚,在附图中:
图1是示出根据实施例的存储装置的示图;
图2是示出根据实施例的非易失性存储器装置的框图;
图3A至图3E是示出根据实施例的存储装置的存储器控制器管理非易失性存储器装置的存储空间的示例的示图;
图4是示出根据实施例的由图1的控制器执行的模块的示例的示图;
图5是示出根据实施例的由外部主机装置开放存储装置的分区的第一示例的示图;
图6是示出根据实施例的由外部主机装置开放存储装置的分区的第二示例的示图;
图7是示出根据实施例的在分区中存在映射的逻辑地址和物理地址的第一示例的示图;
图8是示出根据实施例的在分区中存在映射的逻辑地址和物理地址的第二示例的示图;
图9是示出根据实施例的存储装置使用间隙分区(gap zone)来管理分区的示例的示图;
图10是示出根据实施例的存储装置开放保留分区的第一示例的示图;
图11是示出根据实施例的存储装置开放保留分区的第二示例的示图;
图12是示出根据实施例的存储装置开放保留分区的第三示例的示图;
图13是示出根据实施例的存储装置开放保留分区的第四示例的示图;
图14是示出根据实施例的存储装置开放保留分区的第五示例的示图;
图15是示出根据实施例的存储装置开放保留分区的第六示例的示图;
图16是示出根据实施例的存储装置将数据写入非易失性存储器装置中的示例的示图;
图17是示出根据实施例的基于图16的方法将数据写入非易失性存储器装置中的示例的示图;
图18是示出根据实施例的存储装置在执行写入操作的同时开放分区的第一示例的示图;
图19是示出根据实施例的执行越分区写入(over-zone write)的示例的示图;
图20是示出根据实施例的存储装置确定是否开放下一分区的第一示例的示图;
图21是示出根据实施例的存储装置确定是否开放下一分区的第二示例的示图;
图22是示出根据实施例的存储装置在执行写入操作的同时开放分区的第二示例的示图;
图23是示出根据实施例的存储装置调整越分区写入的设置的示例的示图;
图24是示出根据实施例的存储装置提供分区映射服务的第一示例的示图;
图25是示出根据实施例的基于图24的方法激活分区映射服务的示例的示图;
图26是示出根据实施例的存储装置提供分区映射服务的第二示例的示图;
图27是示出根据实施例的存储器控制器管理内部缓冲器中的元数据的示例的示图;
图28是示出根据实施例的存储装置基于分区映射表和页映射表提供读取服务的示例的示图;
图29是示出根据实施例的存储装置管理关于分区映射服务的激活信息的示例的示图;
图30是示出根据实施例的存储装置处理访问错误的恢复的示例的示图;
图31是示出根据实施例的存储装置执行后恢复操作的第一示例的示图;
图32A至图32D是示出根据实施例的生成恢复操作的处理的第一示例的示图;
图33A至图33E是示出根据实施例的生成恢复操作的处理的第二示例的示图;
图34是示出根据实施例的存储装置执行后恢复操作的第二示例的示图;
图35A和图35B是示出根据实施例的生成用于生成失败表的恢复操作的第一示例的示图;
图36A和图36B是示出根据实施例的当发生访问错误时更新分区映射表的示例的示图;
图37A至图37F是示出根据实施例的当发生访问错误时如何生成和更新失败表的示图;
图38是示出根据实施例的存储装置执行备份操作的第一示例的示图;
图39是示出根据实施例的存储装置执行备份操作的第二示例的示图;
图40是示出根据实施例的存储装置执行备份操作的第三示例的示图;
图41是示出根据实施例的存储装置执行备份操作的第四示例的示图;
图42是示出根据实施例的存储装置选择用于备份的擦除区域的方法的示例的示图;
图43是示出根据实施例的存储装置基于目标特征和装置特征来选择单元类型的示例的示图;
图44是示出根据实施例的通过备份操作将分区缓冲器的数据写入非易失性存储器装置中的示例的示图;
图45是示出根据实施例的存储装置在备份擦除单元中收集数据的示例的示图;
图46是示出根据实施例的存储装置将备份擦除单元的数据迁移到目标分区的示例的示图;
图47A至图47C是示出根据实施例的存储装置使用具有与SLC对应的单元类型的备份擦除单元执行缓冲的示例的示图;
图48A至图48C是示出根据实施例的存储装置使用具有与MLC对应的单元类型的备份擦除单元执行缓冲的示例的示图;
图49是示出根据实施例的存储装置执行与两个或更多个分区相关联的数据的备份操作的示例的示图;
图50是示出根据实施例的存储装置备份分区缓冲器的数据的示例的示图;
图51是示出根据实施例的将分区的数据备份到备份擦除单元的示例的示图;
图52是示出根据实施例的存储装置使用非易失性存储器装置执行缓冲的另一示例的示图;
图53是示出根据实施例的存储装置触发迁移的方法的示例的示图;
图54是示出根据实施例的存储装置执行迁移的第一示例的示图;
图55A至图55D是示出根据实施例的存储装置执行迁移的处理的示例的示图;
图56是示出根据实施例的存储装置将数据写入共享写入增强缓冲器中的示例的示图;
图57是示出根据实施例的存储装置选择作为迁移的目标的分区的数据的第一示例的示图;
图58是示出根据实施例的存储装置选择作为迁移的目标的分区的数据的第二示例的示图;
图59是示出根据实施例的存储装置执行迁移的第二示例的示图;
图60是示出根据实施例的存储装置执行迁移的第三示例的示图;
图61是示出根据实施例的存储装置执行预取的方法的示例的示图;
图62A和图62B是示出根据实施例的执行越分区预取的示例的示图;
图63是示出根据实施例的存储装置调整越分区预取的设置的示例的示图;
图64是示出根据实施例的存储装置执行垃圾收集的第一示例的示图;
图65是示出根据实施例的存储装置执行垃圾收集的第二示例的示图;
图66A是示出根据实施例的图65的分区复制请求的格式的示例的示图;
图66B是示出根据实施例的接收图65的源信息所通过的格式的示例的示图;
图67是示出根据实施例的存储装置基于图66A的分区复制请求和图66B的源信息执行分区复制的示例的示图;
图68A至图68D是示出根据实施例的存储装置基于图67的方法执行分区复制的示例的示图;
图69是示出根据实施例的存储装置执行垃圾收集的第三示例的示图;
图70A是示出根据实施例的图69的分区复制请求的格式的示例的示图;
图70B是示出根据实施例的图70A的传输长度的示例的示图;
图71是示出根据实施例的存储装置基于图69的分区复制请求执行分区复制的示例的示图;
图72是示出根据实施例的外部主机装置执行分区单元的垃圾收集的示例的示图;
图73是示出根据实施例的通过图72的方法将第七分区的数据复制到新分区的示例的示图;
图74是示出根据实施例的外部主机装置完成分区单元的垃圾收集的示例的示图;
图75是示出根据实施例的通过图74的方法的垃圾收集的示例的示图;
图76是示出根据实施例的图2的存储器块中的一个存储器块的示例的电路图;
图77是示出根据实施例的非易失性存储器装置的第一存储器芯片至第四存储器芯片的示例的示图;
图78是示出根据实施例的存储装置管理装置分区和主机分区的方法的示例的示图;
图79A至图79F是示出根据实施例的存储装置管理第一装置分区的处理的示例的示图;
图80A和图80B是示出根据实施例的外部主机装置以主机分区为单元执行垃圾收集的处理的示例的示图;
图81示出根据实施例的存储装置执行垃圾收集作为后台操作的示例;
图82是示出根据实施例的系统的示图。
具体实施方式
下面,将参照附图详细描述本公开的实施例。下面,术语“和/或”意在包括关于该术语列出的项中的任何一个,或者列出的项中的一些的组合。
图1示出根据本公开的实施例的存储装置100。参照图1,存储装置100可包括非易失性存储器装置110和存储器控制器120。非易失性存储器装置110可包括多个存储器单元。多个存储器单元中的每个可存储一个位或者两个或更多个位。
例如,非易失性存储器装置110可包括各种非易失性存储器装置(诸如,闪存装置、相变存储器装置、铁电存储器装置、磁存储器装置和电阻式存储器装置)中的至少一个。
存储器控制器120可从外部主机装置接收用于将数据写入非易失性存储器装置110中或者用于从非易失性存储器装置110读取数据的请求。
存储器控制器120可通过第一信号线SIGL1和第二信号线SIGL2来访问非易失性存储器装置110。例如,存储器控制器120可通过第一信号线SIGL1将命令和地址发送到非易失性存储器装置110。存储器控制器120可通过第一信号线SIGL1与非易失性存储器装置110交换数据。
存储器控制器120可通过第二信号线SIGL2将第一控制信号发送到非易失性存储器装置110。存储器控制器120可通过第二信号线SIGL2从非易失性存储器装置110接收第二控制信号。
在一个实施例中,非易失性存储器装置110可包括两个或更多个非易失性存储器芯片。存储器控制器120可被配置为控制两个或更多个非易失性存储器芯片。存储器控制器120可针对两个或更多个非易失性存储器芯片中的每个提供第一信号线和第二信号线。
作为另一示例,存储器控制器120可与两个或更多个非易失性存储器芯片共享第一信号线。在一个实施例中,存储器控制器120可在两个或更多个非易失性存储器芯片中的一些之间共享第二信号线中的一些,并且可针对两个或更多个非易失性存储器芯片中的每个提供第二信号线中的其他第二信号线。
存储器控制器120可包括总线121、主机接口122、内部缓冲器123、处理器124、存储器管理器126和纠错码块127(示出为“ECC”)。
总线121可提供存储器控制器120中的组件之间的通信通道。主机接口122可从外部主机装置接收请求,并且可对接收的请求进行解析。主机接口122可将解析后的请求存储在内部缓冲器123中。
主机接口122可将响应发送到外部主机装置。主机接口122可按照给定的通信协议与外部主机装置交换信号。例如,主机接口122可按照通用闪存存储(UFS)通信协议与外部主机装置交换信号。内部缓冲器123可包括随机存取存储器。例如,内部缓冲器123可包括静态随机存取存储器或动态随机存取存储器。
处理器124可驱动用于存储器控制器120的操作的操作系统或固件。处理器124可读取存储在内部缓冲器123中的解析后的请求,并且可生成用于控制非易失性存储器装置110的命令和地址。处理器124可将生成的命令和地址提供到存储器管理器126。
处理器124可将用于管理存储装置100的元数据存储在内部缓冲器123中。处理器124可控制存储器管理器126,使得存储在内部缓冲器123中的用户数据被传送到非易失性存储器装置110。
处理器124可控制主机接口122,使得存储在内部缓冲器123中的数据被传送到外部主机装置。处理器124可控制存储器管理器126,使得从非易失性存储器装置110接收的数据被存储在内部缓冲器123中。处理器124可控制主机接口122,使得从外部主机装置接收的数据被存储在内部缓冲器123中。
存储器管理器126可在处理器124的控制下通过第一信号线SIGL1和第二信号线SIGL2与非易失性存储器装置110通信。
存储器管理器126可在处理器124的控制下访问非易失性存储器装置110。例如,存储器管理器126可通过第一信号线SIGL1和第二信号线SIGL2来访问非易失性存储器装置110。存储器管理器126可基于协议(例如,按照标准定义的协议,或者由制造商定义的协议)与非易失性存储器装置110通信。
纠错码块127可使用纠错码ECC对要发送到非易失性存储器装置110的数据执行纠错编码。纠错码块127可使用纠错码ECC对从非易失性存储器装置110接收到的数据执行纠错解码。
图2是示出根据本公开的实施例的非易失性存储器装置200的框图。在一个实施例中,非易失性存储器装置200可对应于图1的非易失性存储器装置110。参照图1和图2,非易失性存储器装置200可包括存储器单元阵列210、行解码器块220、页缓冲器块230、通过/失败检查块240(示出为“PFC”)、数据输入和输出块250、缓冲器块260和控制逻辑块270。
存储器单元阵列210可包括多个存储器块BLK1至BLKz。存储器块BLK1至BLKz中的每个可包括多个存储器单元。存储器块BLK1至BLKz中的每个可通过至少一条地选择线GSL、字线WL和至少一条串选择线SSL与行解码器块220连接。字线WL中的一些可用作虚设字线。存储器块BLK1至BLKz中的每个可通过多条位线BL与页缓冲器块230连接。多个存储器块BLK1至BLKz可与多条位线BL共同连接。
在一个实施例中,存储器块BLK1至BLKz中的每个可以是擦除操作的单元。在一个实施例中,操作“的单元”或以元件“为单元”执行的操作可表示与操作对应的基本单元是元件。例如,这可表示操作可由元件的一个或多个实例指定或对应于元件的一个或多个实例,或者元件是执行操作的最小单元。因此,基于存储器块BLK1至BLKz中的每个是擦除操作的单元,可例如在单个擦除操作期间同时擦除属于存储器块BLK1至BLKz中的每个的存储器单元。作为另一示例,存储器块BLK1至BLKz中的每个可被划分为多个子块。多个子块中的每个可对应于擦除操作的单元。因此,可同时擦除属于每个子块的存储器单元。下面,擦除操作的单元可被称为“擦除单元”。在一个实施例中,擦除单元可以是存储器块或子块。
每个存储器块可包括多个页。多个页可分别与字线WL连接。每个页可以是写入操作的单元。写入操作的单元可被称为“写入单元”。
写入一个页的存储器单元中的位可被包括在逻辑页中。当在一个存储器单元中写入三个位时,一个物理页可包括三个逻辑页。当在一个存储器单元中写入一个位时,一个物理页可包括一个逻辑页。逻辑页或物理页可以是读取操作的单元。读取操作的单元可被称为“读取单元”。
行解码器块220可通过地选择线GSL、字线WL和串选择线SSL与存储器单元阵列210连接。行解码器块220可在控制逻辑块270的控制下操作。
行解码器块220可对从缓冲器块260接收的行地址RA进行解码,并且可基于解码后的行地址来控制要施加到串选择线SSL、字线WL和地选择线GSL的电压。
页缓冲器块230可通过多条位线BL与存储器单元阵列210连接。页缓冲器块230通过多条数据线DL与数据输入和输出块250连接。页缓冲器块230可在控制逻辑块270的控制下操作。
在编程操作中,页缓冲器块230可存储要写入存储器单元中的数据。页缓冲器块230可基于存储的数据将电压施加到多条位线BL。在读取操作中或在可在编程操作或擦除操作期间执行的验证读取操作中,页缓冲器块230可感测位线BL的电压且可存储感测结果。
在与编程操作或擦除操作相关联的验证读取操作中,通过/失败检查块240可验证页缓冲器块230的感测结果。例如,在与编程操作相关联的验证读取操作中,通过/失败检查块240可对分别与未被编程到目标阈值电压或更大的导通单元对应的值的数量进行计数。在一个实施例中,值的数量可以是零(“0”)的数量,但是实施例不限于此。
在与擦除操作相关联的验证读取操作中,通过/失败检查块240可对分别与未被擦除到目标阈值电压或更小的截止单元对应的值的数量进行计数。在一个实施例中,值的数量可以是一(“1”)的数量,但是实施例不限于此。当计数结果大于或等于阈值时,通过/失败检查块240可将指示失败的信号输出到控制逻辑块270。当计数结果小于阈值时,通过/失败检查块240可将指示通过的信号输出到控制逻辑块270。根据通过/失败检查块240的验证结果,可进一步执行编程操作的编程循环,或者可进一步执行擦除操作的擦除循环。
数据输入和输出块250可通过多条数据线DL与页缓冲器块230连接。数据输入和输出块250可从缓冲器块260接收列地址CA。数据输入和输出块250可根据列地址CA将由页缓冲器块230读取的数据输出到缓冲器块260。数据输入和输出块250可基于列地址CA将从缓冲器块260接收的数据提供到页缓冲器块230。
通过第一信号线SIGL1,缓冲器块260可从外部装置接收命令CMD和地址ADDR,并且可与外部装置交换数据DATA。缓冲器块260可在控制逻辑块270的控制下操作。缓冲器块260可将命令CMD提供到控制逻辑块270。缓冲器块260可将地址ADDR的行地址RA提供到行解码器块220,并且可将地址ADDR的列地址CA提供到数据输入和输出块250。缓冲器块260可与数据输入和输出块250交换数据DATA。
控制逻辑块270可通过第二信号线SIGL2与外部装置交换控制信号CTRL。控制逻辑块270可准许缓冲器块260路由命令CMD、地址ADDR和数据DATA。控制逻辑块270可对从缓冲器块260接收的命令CMD进行解码,并且可基于解码后的命令来控制非易失性存储器装置200。
在一个实施例中,可使用接合方法制造非易失性存储器装置200。可使用第一晶片制造存储器单元阵列210,并且可使用第二晶片制造行解码器块220、页缓冲器块230、数据输入和输出块250、缓冲器块260以及控制逻辑块270。非易失性存储器装置200可通过将第一晶片和第二晶片结合以使得第一晶片的上表面和第二晶片的上表面彼此面对来实现。
作为另一示例,非易失性存储器装置200可以以外围上单元(COP)方法制造。包括行解码器块220、页缓冲器块230、数据输入和输出块250、缓冲器块260和控制逻辑块270的外围电路可实现在基底上。存储器单元阵列210可实现在外围电路上。外围电路和存储器单元阵列210可使用贯穿过孔连接。
在一个实施例中,存储装置100可以是分区存储装置。分区存储装置可在非易失性存储器装置110的存储空间的至少一部分中以分区为单元管理存储空间。例如,当外部主机装置请求数据写入操作时,存储装置100可开放分区。分区的开放可包括针对数据写入操作分配未被写入数据的新分区。例如,分区可包括至少一个擦除单元或至少两个擦除单元。在开放的分区中,外部主机装置可基于顺序的逻辑地址(例如,逻辑块地址)写入数据。
因为外部主机装置基于分区内的顺序的逻辑地址写入数据,所以存储装置100可在与顺序的物理地址对应的页写入与顺序的逻辑地址对应的数据。
分区可由外部主机装置关闭。分区的关闭可包括分配被写入数据的分区以便用于读取操作(即使可存在未被写入数据的页),而不在其中另外写入数据。
分区可由外部主机装置重置。分区的重置可包括通过使写入分区中的数据无效,准许存储器控制器120在任意时间或根据期望或需要擦除无效的分区的数据。因为分区无效可由外部主机装置管理,所以基于分区的垃圾收集操作也可由外部主机装置管理。
图3A至图3E是示出存储装置100的存储器控制器120管理非易失性存储器装置110的存储空间SM的示例的示图。参照图1、图2和图3A,存储空间SM可包括用户区域UA、保留区域RVA和元区域MA。用户区域UA、保留区域RVA和元区域MA中的每个可包括多个擦除单元。
存储装置100的存储器控制器120可将用户区域UA提供到外部主机装置作为可访问的存储空间。外部主机装置可将逻辑地址分配给用户区域UA。存储装置100的存储器控制器120可不将保留区域RVA提供到外部主机装置。存储装置100的存储器控制器120可使用保留区域RVA来提高存储装置100的性能。例如,存储器控制器120可使用保留区域RVA作为用于替换坏块的存储器、备份存储器或缓冲存储器。存储装置100的存储器控制器120可不将元区域MA提供到外部主机装置。存储装置100的存储器控制器120可将元数据存储在元区域MA中,元数据可由存储装置100用于操作。
存储装置100的存储器控制器120可将用户区域UA划分为多个逻辑单元LU。每个逻辑单元LU可包括一个或多个存储器块或擦除单元。可分配每个逻辑单元LU以支持分区写入ZW或随机写入RW。
存储装置100的存储器控制器120可将分区(例如,第一分区Z1、第二分区Z2、第三分区Z3和第四分区Z4)分配给被分配给分区写入ZW的逻辑单元LU。能够分配给被分配给分区写入ZW的逻辑单元LU的分区的数量和每个分区的大小可由外部主机装置或存储装置100确定。每个分区可包括至少一个擦除单元或者两个或更多个擦除单元。
存储器控制器120可使用分区映射表将分区映射到擦除单元,并且可使用页映射表将逻辑地址映射到页。例如,存储器控制器120可使用包括两个或更多个映射表的多级映射表MM来管理分区写入ZW和逻辑单元LU。
存储器控制器120可在不改变的情况下(或在固定状态下)将顺序的逻辑地址分配给每个分区。存储器控制器120可固定地且顺序地管理写入多个分区中的数据的逻辑地址。例如,在分配给分区写入ZW的逻辑单元LU中,特定逻辑地址的数据可总是被写入固定分区的固定逻辑地址上的位置,并且固定逻辑地址可被顺序地分配。存储器控制器120可基于内部策略不同地分配被分配给每个分区的擦除单元。
根据外部主机装置的请求,存储装置100可开放特定分区。例如,存储器控制器120可将开放分区的单元类型固定为一种单元类型,或者可选择两种或更多种不同的单元类型中的一种。开放分区的单元类型可被分类为四级单元(QLC)类型、三级单元(TLC)类型、多级单元(MLC)类型或单级单元(SLC)类型,但是实施例不限于此。
关于开放分区,外部主机装置可向存储装置100请求基于顺序的逻辑地址的顺序写入。存储器控制器120可将擦除单元的顺序的物理地址映射到每个分区的顺序的逻辑地址。例如,可确保每个分区中的逻辑地址和物理地址的顺序性。
当分区填满数据时,或者基于从外部主机装置接收的请求,存储器控制器120可关闭分区。存储器控制器120可禁止针对关闭分区的附加写入。存储器控制器120可将关闭分区管理为只读分区。
在一个实施例中,存储器控制器120还可管理分区映射表中的未开放的分区。存储器控制器120可在分区映射表中将每个分区的状态管理为“开放”、“关闭”或“未开放”,但是实施例不限于此。
存储装置100的存储器控制器120可使用页映射表PM来管理分配给随机写入RW的逻辑单元LU。存储器控制器120可支持针对分配给随机写入RW的逻辑单元LU的随机写入。
在一个实施例中,存储器控制器120可将分配给分区写入ZW的逻辑单元LU的分区映射表和页映射表PM以及分配给随机写入RW的逻辑单元LU的页映射表PM存储在元区域MA中。存储器控制器120可将分配给分区写入ZW的逻辑单元LU的分区映射表以及分配给分区写入ZW的逻辑单元LU和分配给随机写入RW的逻辑单元LU的页映射表PM的一部分加载并使用到内部缓冲器123。
参照图1、图2和图3B,存储器控制器120还可分配共享写入增强缓冲器SWBB。在一个实施例中,存储器控制器120可将用户区域UA的一部分分配给一个或多个逻辑单元和共享写入增强缓冲器SWBB以便被复制(或重叠)。共享写入增强缓冲器SWBB可包括至少一个擦除单元。
共享写入增强缓冲器SWBB可被分配为例如被设置为SLC单元类型。存储器控制器120可响应于从外部主机装置接收的写入请求而优先地将数据写入共享写入增强缓冲器SWBB中。之后,在空闲时间或在省电模式下,存储器控制器120可将写入共享写入增强缓冲器SWBB中的数据迁移到一个或多个目标逻辑单元。当使用共享写入增强缓冲器SWBB时,可提高存储装置100的写入速度。
存储器控制器120可将要写入多个逻辑单元LU中的所有数据优先写入共享写入增强缓冲器SWBB中。例如,共享写入增强缓冲器SWBB可由多个逻辑单元LU共享。
在一个实施例中,存储器控制器120可根据数据被写入用户区域UA中的比例自适应地调整共享写入增强缓冲器SWBB的容量。当用户区域UA的数据写入比例增大时,存储器控制器120可减小共享写入增强缓冲器SWBB的容量或者可使共享写入增强缓冲器SWBB去激活,并且因此,用户区域UA的存储空间可完全由外部主机装置可用。
参照图1、图2和图3C,存储器控制器120可将用户区域UA的存储空间的一部分分配为作为共享写入增强缓冲器SWBB专用。例如,用户区域UA的存储空间可减少与共享写入增强缓冲器SWBB的存储空间相同的量。存储器控制器120可通过以固定方案分配共享写入增强缓冲器SWBB的存储空间来进一步提高存储装置100的写入速度。
参照图1、图2和图3D,存储器控制器120可分配专用写入增强缓冲器DWBB而不是共享写入增强缓冲器SWBB。例如,存储器控制器120可将用户区域UA的一部分分配给一个或多个逻辑单元和专用写入增强缓冲器DWBB以便被复制(或重叠)。
专用写入增强缓冲器DWBB可专用并用于特定逻辑单元。在图3D中示出专用写入增强缓冲器DWBB被分配给第一逻辑单元LU的示例。
当专用写入增强缓冲器DWBB不专用于一个逻辑单元时,专用写入增强缓冲器DWBB可以以与图3B的共享写入增强缓冲器SWBB相同的方式被使用。因此,可省略附加描述以避免冗余。
参照图1、图2和图3E,存储器控制器120可将用户区域UA的存储空间的一部分分配为专用于专用写入增强缓冲器DWBB。例如,用户区域UA的存储空间可减少与专用写入增强缓冲器DWBB的存储空间相同的量。存储器控制器120可通过以固定方案分配专用写入增强缓冲器DWBB的存储空间来进一步提高存储装置100的写入速度。
下面,给出写入分配给分区写入ZW的逻辑单元LU中的数据或要写入分配给分区写入ZW的逻辑单元LU中的数据的示例。无论分配给分区写入ZW的逻辑单元LU如何,存储器控制器120都可根据外部主机装置的请求访问分配给随机写入RW的逻辑单元LU。
图4是示出可由图1的存储器控制器120执行的模块300的示例的示图。在一个实施例中,模块300可以是或可包括由存储器控制器120的处理器124执行的固件或软件。
参照图1和图4,模块300可包括分区分配器310、多级映射表管理器320、分区恢复管理器330、分区备份管理器340、分区迁移管理器350、分区预取管理器360、分区复制管理器370、分区垃圾收集管理器380以及读取和写入管理器390。
分区分配器310可根据外部主机装置的请求或根据内部定义的策略来分配分区。分区分配器310可通过将擦除单元分配给分区来开放分区。分区分配器310可设置分区的单元类型(例如,每个存储器单元写入的位的数量)或各种特征。
多级映射表管理器320可生成并管理至少两个不同的映射表(例如,多级映射表MM的分区映射表和页映射表)。多级映射表管理器320可使用分区映射表和/或页映射表来将从外部主机装置接收到的一个或多个逻辑地址转换成非易失性存储器装置110的一个或多个物理地址。
当在从外部主机装置请求的访问中发生错误(可被称为故障或失败)时,分区恢复管理器330可控制用于纠错的恢复操作。分区恢复管理器330可执行针对包括错误的数据的恢复操作以及用于保持发生错误的分区中的数据的逻辑地址的顺序性的操作。
当需要或期望备份存储在内部缓冲器123中的数据时,分区备份管理器340可控制备份操作,使得存储在内部缓冲器123中的数据被写入非易失性存储器装置110中。分区备份管理器340可选择要被写入内部缓冲器123的数据的擦除单元。例如,分区备份管理器340可从保留区域RVA(例如,如图3A至图3E中所示)的擦除单元之中选择要被写入内部缓冲器123的数据的擦除单元。
分区迁移管理器350可控制迁移操作,使得写入保留区域RVA中的数据被迁移到用户区域UA中的分配给分区写入ZW的逻辑单元LU之中的一个或多个目标逻辑单元。一个或多个目标逻辑单元可以是与同外部主机装置的写入请求一起接收的一个或多个逻辑地址对应的一个或多个分区。在将数据迁移到一个或多个目标逻辑单元之后,分区迁移管理器350可使源擦除单元(例如,通过备份操作被写入数据的擦除单元)中的相关数据无效。
分区预取管理器360可控制写入分配给分区写入ZW的逻辑单元LU中的数据的预取。例如,基于从主机接收到针对顺序的逻辑地址的读取请求,存储器控制器120可在没有外部主机装置的请求的情况下预取与后续逻辑地址对应的数据。因此,可提高外部主机装置对存储装置100执行随机读取的速度。
分区复制管理器370可控制分区复制操作。基于从外部主机装置接收到分区复制命令,存储器控制器120可从分配给分区写入ZW的逻辑单元LU的分区之中的第一分区读取数据,并且可将从第一分区读取的数据写入分配给分区写入ZW的逻辑单元LU的第二分区中或另一分区写入ZW的逻辑单元LU的第二分区中。在一个实施例中,分区复制管理器370可准许外部主机装置执行基于分区的垃圾收集。
分区垃圾收集管理器380可在没有外部主机装置的请求的情况下以分配给分区写入ZW的逻辑单元LU的分区之中的两个或更多个分区为单元执行垃圾收集。例如,在存储装置100中,可响应于外部主机装置的请求而以分区为单元执行垃圾收集,并且可在存储器控制器120的控制下以两个或更多个分区为单元执行垃圾收集。
读取和写入管理器390可控制非易失性存储器装置110的读取操作和写入操作。
图5是示出由外部主机装置开放存储装置100的分区的第一示例的示图。参照图1和图5,在操作S110中,存储装置100的存储器控制器120可从外部主机装置接收开放分区请求OZ。可使用命令UFS协议信息单元(UPIU)或查询请求UPIU来接收开放分区请求OZ。
在操作S120中,存储器控制器120可确定是否可开放请求的分区。例如,存储器控制器可确定请求的分区是否可用于被开放。当请求的分区的开放不可行时,在操作S130中,存储器控制器120可将提供请求的分区的开放不可行的通知的响应发送到外部主机装置。
当请求的分区的开放可行时,在操作S140中,存储器控制器120可分配新分区。例如,存储器控制器120可通过将擦除单元分配给请求的分区来开放请求的分区。之后,在操作S150中,存储器控制器120可将提供请求的分区被开放的通知的响应发送到外部主机装置。在一个实施例中,存储器控制器120可使用响应UPIU或查询响应UPIU将响应发送到外部主机装置。
图6是示出由外部主机装置开放存储装置100的分区的第二示例的示图。参照图1和图6,在操作S210中,存储装置100的存储器控制器120可从外部主机装置接收写入请求WR。可使用命令UPIU接收写入请求WR。
在操作S220中,存储器控制器120可确定写入请求WR是否与新分区相关联。当写入请求WR与新分区相关联时,在操作S230中,存储器控制器120可分配新分区。在一个实施例中,如参照图5所述,存储器控制器120可确定新分区的开放是否可行;当新分区的开放不可行时,存储器控制器120可将响应发送到外部主机装置;并且当开放可行时,存储器控制器120可分配新分区,使得分区被开放(例如,可执行分区开放操作)。
在操作S240中,存储器控制器120可将请求写入的数据写入与写入请求WR的一个或多个逻辑地址对应的目标分区中。在操作S250中,存储器控制器120可将提供请求的写入完成的通知的响应发送到外部主机装置。当新分区被开放时,存储器控制器120可在响应中包括提供新分区被开放的通知的信息。在一个实施例中,存储器控制器120可使用响应UPIU将响应发送到外部主机装置。
在一个实施例中,在操作S210与操作S240之间(或在操作S230与操作S240之间),可执行附加操作(例如,由存储器控制器120响应于写入请求WR而将“准备好传送”UPIU发送到外部主机装置的操作,以及在存储器控制器120处从外部主机装置与“数据输出”UPIU一起接收写入数据的操作)。
如参照图5和图6所述,存储器控制器120可响应于开放分区请求OZ或写入请求WR而开放分区。
图7是示出在分区中存在映射的逻辑地址和物理地址的第一示例的示图。参照图1和图7,逻辑地址LBA“00000”、“00001”、“00010”、“00011”、“00100”、“00101”、“00110”和“00111”可被分配给第五分区Z5。可使用写入指针WP来管理分区的物理地址。写入指针WP“0000”、“0001”、“0010”、“0011”、“0100”、“0101”、“0110”和“0111”可被分配给第五分区Z5。
第五分区Z5之后的第六分区Z6可具有连续的逻辑地址。逻辑地址LBA“01000”、“01001”、“01010”、“01011”、“01100”、“01101”、“01110”和“01111”可被分配给第六分区Z6。写入指针WP“0000”、“0001”、“0010”、“0011”、“0100”、“0101”、“0110”和“0111”可被分配给第六分区Z6。
逻辑地址LBA和写入指针WP(可以是或可指示或表示物理地址)可具有固定的顺序性。当从外部主机装置接收到逻辑地址“00100”时,存储器控制器120可使用分区映射表来识别第五分区Z5。此外,存储器控制器120可根据包括在逻辑地址“00100”中的偏移“0100”来计算写入指针WP“0100”。因此,存储器控制器120可在没有页映射表的情况下支持基于分区映射表的读取操作。
图8是示出在分区中存在映射的逻辑地址和物理地址的第二示例的示图。参照图1和图8,逻辑地址LBA“00000”、“00001”、“00010”、“00011”、“00100”、“00101”、“00110”和“00111”可被分配给第五分区Z5。可使用写入指针WP来管理分区的物理地址。写入指针WP“0000”、“0001”、“0010”、“0011”、“0100”、“0101”、“0110”和“0111”可被分配给第五分区Z5。
逻辑地址LBA“10000”、“10001”、“10010”、“10011”、“10100”、“10101”、“10110”和“10111”可被分配给第六分区Z6。写入指针WP“0000”、“0001”、“0010”、“0011”、“0100”、“0101”、“0110”和“0111”可被分配给第六分区Z6。
如以上示例中所示,根据实施例,每个分区的起始地址的低位可被设置为与写入指针WP的起始地址相同。因此,可容易地计算写入指针WP与逻辑地址LBA的偏移。
第五分区Z5的最后逻辑地址“00111”可不与第六分区Z6的起始逻辑地址“10000”连续。存储器控制器120可识别出在第五分区Z5的最后逻辑地址“00111”与第六分区Z6的起始逻辑地址“10000”之间存在虚拟间隙分区。
图9是示出存储装置100使用间隙分区GZ来管理分区的示例的示图。参照图1和图9,在基于逻辑地址LBA的逻辑存储区域LSA中,第五分区Z5可具有从“00000”至“00111”的逻辑地址LBA。在基于逻辑地址LBA的逻辑存储区域LSA中,间隙分区GZ可具有从“01000”至“01111”的逻辑地址LBA。在基于逻辑地址LBA的逻辑存储区域LSA中,第六分区Z6可具有从“10000”至“10111”的逻辑地址LBA。
在基于物理地址PBA的物理存储区域PSA中,第五分区Z5可具有擦除单元的写入指针WP“0000”至“0111”。在基于物理地址PBA的物理存储区PSA中,第六分区Z6可具有其他擦除单元的写入指针WP“0000”至“0111”。存储器控制器120可使用分区映射表来识别第五分区Z5的擦除单元和第六分区Z6的擦除单元。
在基于逻辑地址LBA的逻辑存储区域LSA中,具有从“01000”至“01111”的逻辑地址LBA的间隙分区GZ可不被映射到物理存储区域PSA。存储器控制器120可将间隙分区GZ识别为只读分区。当从外部主机装置接收到针对间隙分区GZ的写入请求时,存储器控制器120可将指示错误的响应发送到外部主机装置。当从外部主机装置接收到针对间隙分区GZ的读取请求时,存储器控制器120可将虚设数据、给定模式数据或指示间隙分区的数据发送到外部主机装置。
通过在第五分区Z5与第六分区Z6之间设置虚拟间隙分区GZ,存储装置100可解决由逻辑存储区域LSA中的第五分区Z5和第六分区Z6的逻辑地址LBA的不连续性引起的问题。
在一个实施例中,为了增大存储装置100的存储容量,可将分区设置为存储装置100支持的最高单元类型。例如,当由存储装置100支持的最大单元类型对应于TLC单元类型时,分区可以是TLC分区。当由存储装置100支持的最大单元类型对应于QLC单元类型时,分区可以是QLC分区。与分区不同,用于存储需要快速的数据或重要数据的另一分区可被设置为比存储装置100支持的最高单元类型低的单元类型。
当分区的单元类型是由存储装置100支持的最大单元类型时,分区的写入速度可以是存储装置100支持的最慢写入速度。为了提高存储装置100的写入速度,UFS协议可激活写入增强器。如参照图3A至图3E所述,当写入增强器被激活时,存储装置100可将写入数据优先写入写入增强缓冲器(例如,共享写入增强缓冲器SWBB或专用写入增强缓冲器DWBB)中。写入增强缓冲器的单元类型可对应于SLC单元类型,并且因此,写入增强缓冲器的写入速度可高于分区的写入速度。
关于以上写入增强器,当开放分区时,存储装置100可选择分区的类型(例如,单元类型)。当开放保留分区可行时,存储器控制器120可开放具有比由存储装置100支持的最高单元类型低的单元类型的保留分区。来自外部主机装置的写入数据可被写入保留分区中。数据被写入保留分区中的速度可高于数据被写入目标分区中的速度。因此,可提高存储装置100的操作速度。在一个实施例中,存储器控制器120可将保留分区管理为类似于写入增强缓冲器,或者可将保留分区管理为写入增强缓冲器。
图10是示出存储装置100开放保留分区的第一示例的示图。参照图1、图3A至图3E和图10,在操作S310中,存储装置100的存储器控制器120可从外部主机装置接收开放分区请求OZ或写入请求WR。例如,写入请求WR可以是导致新分区的开放的写入请求。可使用命令UPIU或查询请求UPIU来接收开放分区请求OZ或写入请求WR。
响应于开放分区请求OZ或导致新分区的开放的写入请求WR,在操作S320中,存储器控制器120可确定空闲擦除单元EU的数量是否大于第一阈值TH1。
在一个实施例中,当目标分区和保留分区被设置为在逻辑单元LU内被生成时,空闲擦除单元EU的数量可以是逻辑单元LU中的空闲擦除单元的数量。当目标分区和保留分区被设置为在用户区域UA内被生成时,空闲擦除单元EU的数量可以是用户区域UA中的空闲擦除单元EU的数量。当保留分区被设置为在保留区域RA内被生成时,空闲擦除单元EU的数量可以是保留区域RA的空闲擦除单元EU的数量。
当空闲擦除单元EU的数量大于第一阈值TH1时,在操作S330中,存储器控制器120可开放具有第一类型的分区(例如,保留分区)。存储器控制器120可将专用于使得保留分区被生成的区域的擦除单元分配给保留分区。第一类型分区可具有比目标分区的单元类型低的单元类型。例如,第一类型分区可具有SLC单元类型。存储器控制器120可允许关于具有第一类型的分区的随机写入。
当空闲擦除单元EU的数量不大于第一阈值TH1时,例如当空闲擦除单元EU的数量小于或等于第一阈值TH1时,在操作S340中,存储器控制器120可开放具有第二类型的分区(例如,目标分区)。第二类型分区可具有目标分区的单元类型。存储器控制器120可将专用于使得目标分区被生成的逻辑单元的擦除单元分配给目标分区。存储器控制器120可仅允许基于关于具有第二类型的分区的顺序的逻辑地址的顺序写入。
在一个实施例中,当在操作S310中接收到写入请求WR时,在操作S310与操作S350之间(或者在操作S330或操作S340与操作S350之间),可执行附加操作(例如,在存储器控制器120处响应于写入请求WR而将“准备好传送”UPIU发送到外部主机装置的操作,以及在存储器控制器120处从外部主机装置与“数据输出”UPIU一起接收写入数据的操作,以及在存储器控制器120处将与写入请求WR对应的数据写入开放的分区的操作)。
在操作S350中,存储器控制器120可将包括分区类型的响应发送到外部主机装置。例如,响应可包括关于是否生成第一类型分区和第二类型分区中的任何一个的信息。可使用响应UPIU或查询响应UPIU来输出响应。在一个实施例中,当在操作S310中接收到写入请求WR时,响应可包括提供写入完成的通知的信息。
在保留分区被开放之后,存储器控制器120可触发迁移,使得保留分区的数据被移动到目标分区。触发迁移可表示开始迁移作为后台操作。存储器控制器120可根据外部主机装置的请求执行操作;在这种情况下,存储器控制器120可根据请求在操作之间持续地执行迁移作为后台操作。
在一个实施例中,存储器控制器120可在关闭目标分区时重置目标分区的保留分区。在一个实施例中,存储器控制器120可在保留分区的迁移完成时重置保留分区。在一个实施例中,当专用于生成保留分区的区域的空闲擦除单元EU的数量小于阈值时,存储器控制器120可直接将保留分区的数据移动到目标分区并且可重置保留分区。在一个实施例中,当专用于生成保留分区的区域的空闲擦除单元EU的数量小于阈值时,并且当目标分区的数据的逻辑地址与保留分区的数据的逻辑地址之间的顺序性不能被确保时,存储器控制器120可备份保留分区的数据并且可重置保留分区。备份数据可被写入保留区域RA的擦除单元中。
图11是示出存储装置100开放保留分区的第二示例的示图。参照图1、图3A至图3E和图11,在操作S410中,存储装置100的存储器控制器120可从外部主机装置接收开放分区请求OZ或写入请求WR。例如,写入请求WR可以是导致新分区的开放的写入请求。可使用命令UPIU或查询请求UPIU来接收开放分区请求OZ或写入请求WR。
响应于开放分区请求OZ或导致新分区的开放的写入请求WR,在操作S420中,存储器控制器120可确定写入增强器是否被激活。当写入增强器被激活时,在操作S430中,存储器控制器120可确定空闲擦除单元EU的数量是否大于第二阈值TH2。第二阈值TH2可与第一阈值TH1相同或不同。
在一个实施例中,如图3B和图3D中所示,当写入增强缓冲器被生成为与逻辑单元LU重叠时,空闲擦除单元EU的数量可以是用户区域UA中的空闲擦除单元EU的数量。如图3C和图3E中所示,当写入增强缓冲器是专用写入增强缓冲器时,空闲擦除单元EU的数量可以是写入增强缓冲器中的空闲擦除单元EU的数量。当写入增强缓冲器是专用写入增强缓冲器时,第二阈值TH2可比包括在一个分区中的擦除单元的数量小多达“1”。例如,当新分区的开放在写入增强缓冲器中可行时,存储器控制器120可开放保留分区。
当空闲擦除单元EU的数量大于第二阈值TH2时,在操作S440中,存储器控制器120可开放具有第一类型的分区(例如,保留分区)。存储器控制器120可将写入增强缓冲器的擦除单元分配给保留分区。第一类型分区可具有比目标分区的单元类型低的单元类型。第一类型分区可具有SLC单元类型。存储器控制器120可允许关于具有第一类型的分区的随机写入。
当写入增强器被激活并且空闲擦除单元EU的数量不大于第二阈值TH2时,或者当写入增强器被去激活时,在操作S450中,存储器控制器120可开放具有第二类型的分区(例如,目标分区)。第二类型分区可具有目标分区的单元类型。存储器控制器120可将专用于使得目标分区被生成的逻辑单元的擦除单元分配给目标分区。存储器控制器120可仅允许基于关于具有第二类型的分区的顺序的逻辑地址的顺序写入。
在一个实施例中,当在操作S410中接收到写入请求WR时,在操作S410与操作S460之间(或者在操作S440或操作S450与操作S460之间),可执行附加操作(例如,在存储器控制器120处响应于写入请求WR而将“准备好传送”UPIU发送到外部主机装置的操作,在存储器控制器120处从外部主机装置与“数据输出”UPIU一起接收写入数据的操作,以及在存储器控制器120处将与写入请求WR对应的数据写入开放的分区的操作)。
在操作S460中,存储器控制器120可将包括分区类型的响应发送到外部主机装置。例如,响应可包括关于是否生成第一类型分区和第二类型分区中的任何一个的信息。可使用响应UPIU或查询响应UPIU来输出响应。在一个实施例中,当在操作S410中接收到写入请求WR时,响应可包括提供写入完成的通知的信息。
存储器控制器120可触发写入写入增强缓冲器中的数据的迁移。
图12是示出存储装置100开放保留分区的第三示例的示图。参照图1、图3A至图3E和图12,在操作S510中,存储装置100的存储器控制器120可从外部主机装置接收开放分区请求OZ或写入请求WR。例如,写入请求WR可以是导致新分区的开放的写入请求。开放分区请求OZ或写入请求WR可包括关于旨在开放的分区的类型的信息。可使用命令UPIU或查询请求UPIU来接收开放分区请求OZ或写入请求WR。
响应于开放分区请求OZ或导致新分区的开放的写入请求WR,在操作S520中,存储器控制器120可确定由外部主机装置请求的分区的类型是否是第一类型。当请求的分区的类型是第一类型时,在操作S530中,存储器控制器120可确定空闲擦除单元EU的数量是否大于第三阈值TH3。
在一个实施例中,当目标分区和保留分区被设置为在逻辑单元LU内被生成时,空闲擦除单元EU的数量可以是逻辑单元LU中的空闲擦除单元的数量。当目标分区和保留分区被设置为在用户区域UA内被生成时,空闲擦除单元EU的数量可以是用户区域UA中的空闲擦除单元EU的数量。当保留分区被设置为在保留区域RA内被生成时,空闲擦除单元EU的数量可以是保留区域RA的空闲擦除单元EU的数量。
当空闲擦除单元EU的数量大于第三阈值TH3时,在操作S540中,存储器控制器120可开放具有第一类型的分区(例如,保留分区)。存储器控制器120可将专用于使得保留分区被生成的区域的擦除单元分配给保留分区。第一类型分区可具有比目标分区的单元类型低的单元类型。第一类型分区可具有SLC单元类型。存储器控制器120可允许关于具有第一类型的分区的随机写入。
当由外部主机装置请求的分区的类型是第一类型时,并且当空闲擦除单元EU的数量不大于第三阈值TH3时,或者当由外部主机装置请求的分区的类型是第二类型时,在操作S550中,存储器控制器120可开放具有第二类型的分区(例如,目标分区)。第二类型分区可具有目标分区的单元类型。存储器控制器120可将专用于使得目标分区被生成的逻辑单元的擦除单元分配给目标分区。存储器控制器120可仅允许基于关于具有第二类型的分区的顺序的逻辑地址的顺序写入。
在一个实施例中,当在操作S510中接收到写入请求WR时,在操作S510与操作S560之间(或者在操作S540或操作S550与操作S560之间),可执行附加操作(例如,在存储器控制器120处响应于写入请求WR而将“准备好传送”UPIU发送到外部主机装置的操作,在存储器控制器120处从外部主机装置与“数据输出”UPIU一起接收写入数据的操作,以及在存储器控制器120处将与写入请求WR对应的数据写入开放的分区的操作)。
在操作S560中,存储器控制器120可将包括分区类型的响应发送到外部主机装置。例如,当开放与由外部主机装置请求的分区的类型不同的类型的分区时,响应可包括关于开放的分区的信息。当开放的分区具有由外部主机装置请求的类型时,响应可不包括关于开放的分区的信息。可使用响应UPIU或查询响应UPIU来输出响应。在一个实施例中,当在操作S510中接收到写入请求WR时,响应可包括提供写入完成的通知的信息。
在保留分区被开放之后,存储器控制器120可触发迁移,使得保留分区的数据被移动到目标分区。在一个实施例中,存储器控制器120可在关闭目标分区时重置目标分区的保留分区。在一个实施例中,存储器控制器120可在保留分区的迁移完成时重置保留分区。在一个实施例中,当专用于生成保留分区的区域的空闲擦除单元EU的数量小于阈值时,存储器控制器120可直接将保留分区的数据移动到目标分区并且可重置保留分区。在一个实施例中,当专用于生成保留分区的区域的空闲擦除单元EU的数量小于阈值时,并且当目标分区的数据的逻辑地址与保留分区的数据的逻辑地址之间的顺序性不能被确保时,存储器控制器120可备份保留分区的数据并且可重置保留分区。备份数据可被写入保留区域RA的擦除单元中。
图13是示出存储装置100开放保留分区的第四示例的示图。参照图1、图3A至图3E和图13,在操作S610中,存储装置100的存储器控制器120可从外部主机装置接收开放分区请求OZ或写入请求WR。例如,写入请求WR可以是导致新分区的开放的的写入请求。可使用命令UPIU或查询请求UPIU来接收开放分区请求OZ或写入请求WR。
响应于开放分区请求OZ或导致新分区的开放的写入请求WR,在操作S620中,存储器控制器120可确定空闲擦除单元EU的数量是否大于第四阈值TH4。
在一个实施例中,当目标分区和保留分区被设置为在逻辑单元LU内被生成时,空闲擦除单元EU的数量可以是逻辑单元LU中的空闲擦除单元的数量。当目标分区和保留分区被设置为在用户区域UA内被生成时,空闲擦除单元EU的数量可以是用户区域UA中的空闲擦除单元EU的数量。当保留分区被设置为在保留区域RA内被生成时,空闲擦除单元EU的数量可以是保留区域RA中的空闲擦除单元EU的数量。
当空闲擦除单元EU的数量大于第四阈值TH4时,在操作S630中,存储器控制器120可确定具有第一类型的分区(例如,保留分区)可用。当空闲擦除单元EU的数量不大于第四阈值TH4时,在操作S640中,存储器控制器120可确定第一类型分区不可用。在操作S650中,存储器控制器120可将包括关于可用分区类型的信息的响应发送到外部主机装置。可使用响应UPIU或查询响应UPIU来输出响应。
在操作S660中,存储器控制器120可从外部主机装置接收用于选择分区类型的请求。用于选择分区类型的请求可包括关于第一类型分区和第二类型分区之中的外部主机装置期望开放的分区的类型的信息。可使用命令UPIU或查询UPIU来接收用于选择分区类型的请求。
在操作S670中,存储器控制器120可响应于用于选择分区类型的请求而开放具有选择的类型的分区。
当第一类型分区(例如,保留分区)被选择时,存储器控制器120可将专用于使得保留分区被生成的区域的擦除单元分配给保留分区。第一类型分区可具有比目标分区的单元类型低的单元类型。第一类型分区可具有SLC单元类型。存储器控制器120可允许关于具有第一类型的分区的随机写入。
当第二类型分区被选择时,存储器控制器120可开放第二类型分区(例如,目标分区)。第二类型分区可具有目标分区的单元类型。存储器控制器120可将专用于使得目标分区被生成的逻辑单元的擦除单元分配给目标分区。存储器控制器120可仅允许基于关于具有第二类型的分区的顺序的逻辑地址的顺序写入。
在一个实施例中,当在操作S610中接收到写入请求WR时,在操作S610与操作S660之间(或者在操作S670与操作S680之间),可执行附加操作(例如,在存储器控制器120处响应于写入请求WR而将“准备好传送”UPIU发送到外部主机装置的操作,在存储器控制器120处从外部主机装置与“数据输出”UPIU一起接收写入数据的操作,以及在存储器控制器120处将与写入请求WR对应的数据写入开放的分区的操作)。
在操作S680中,存储器控制器120可将提供分区被开放的通知的响应发送到外部主机装置。例如,当开放与由外部主机装置请求的分区的类型不同的类型的分区时,响应可包括关于开放的分区的信息。当开放的分区具有由外部主机装置请求的类型时,响应可不包括关于开放的分区的信息。可使用响应UPIU或查询响应UPIU来输出响应。在一个实施例中,当在操作S610中接收到写入请求WR时,响应可包括提供写入完成的通知的信息。
在保留分区被开放之后,存储器控制器120可触发迁移,使得保留分区的数据被移动到目标分区。在一个实施例中,存储器控制器120可在关闭目标分区时重置目标分区的保留分区。在一个实施例中,存储器控制器120可在保留分区的迁移完成时重置保留分区。在一个实施例中,当专用于生成保留分区的区域的空闲擦除单元EU的数量小于阈值时,存储器控制器120可直接将保留分区的数据移动到目标分区并且可重置保留分区。在一个实施例中,当专用于生成保留分区的区域的空闲擦除单元EU的数量小于阈值时,并且当目标分区的数据的逻辑地址与保留分区的数据的逻辑地址之间的顺序性不能被确保时,存储器控制器120可备份保留分区的数据并且可重置保留分区。备份数据可被写入保留区域RA的擦除单元中。
图14是示出存储装置100开放保留分区的第五示例的示图。参照图1、图3A至图3E和图14,在操作S710中,存储装置100的存储器控制器120可从外部主机装置接收开放分区请求OZ或写入请求WR。例如,写入请求WR可以是导致新分区的开放的写入请求。可使用命令UPIU或查询请求UPIU来接收开放分区请求OZ或写入请求WR。
响应于开放分区请求OZ或导致新分区的开放的写入请求WR,在操作S720中,存储器控制器120可确定写入增强器是否被激活。当写入增强器未被激活时,在操作S730中,存储器控制器120可选择第二类型分区。
当写入增强器被激活时,在操作S740中,响应于开放分区请求OZ或导致新分区的开放的写入请求WR,存储器控制器120可确定空闲擦除单元EU的数量是否大于第五阈值TH5。
在一个实施例中,如图3B和图3D中所示,当写入增强缓冲器被生成为与逻辑单元LU重叠时,空闲擦除单元EU的数量可以是用户区域UA中的空闲擦除单元EU的数量。如图3C和图3E中所示,当写入增强缓冲器是专用写入增强缓冲器时,空闲擦除单元EU的数量可以是写入增强缓冲器中的空闲擦除单元EU的数量。当写入增强缓冲器是专用写入增强缓冲器时,第五阈值TH5可比包括在一个分区中的擦除单元的数量小多达“1”。例如,当可新分区的开放在写入增强缓冲器中可行时,存储器控制器120可开放保留分区。
当空闲擦除单元EU的数量大于第五阈值TH5时,在操作S750中,存储器控制器120可确定具有第一类型的分区(例如,保留分区)可用。当空闲擦除单元EU的数量不大于第五阈值TH5时,在操作S760中,存储器控制器120可确定第一类型分区不可用。在操作S770中,存储器控制器120可将包括关于可用分区类型的信息的响应发送到外部主机装置。可使用响应UPIU或查询响应UPIU来输出响应。
在操作S780中,存储器控制器120可从外部主机装置接收用于选择分区类型的请求。用于选择分区类型的请求可包括关于第一类型分区和第二类型区域之中的外部主机装置期望开放的分区的类型的信息。可使用命令UPIU或查询UPIU来接收用于选择分区类型的请求。
在操作S790中,存储器控制器120可响应于用于选择分区类型的请求而开放具有选择的类型的分区。在一个实施例中,存储器控制器120可开放在操作S730中选择的第二类型分区。
当第一类型分区(例如,保留分区)被选择时,存储器控制器120可将专用于使得保留分区被生成的区域的擦除单元分配给保留分区。第一类型分区可具有比目标分区的单元类型低的单元类型。第一类型分区可具有SLC单元类型。存储器控制器120可允许关于具有第一类型的分区的随机写入。
当第二类型分区被选择时,存储器控制器120可开放第二类型分区(例如,目标分区)。第二类型分区可具有目标分区的单元类型。存储器控制器120可将专用于使得目标分区被生成的逻辑单元的擦除单元分配给目标分区。存储器控制器120可仅允许基于关于具有第二类型的分区的顺序的逻辑地址的顺序写入。
在一个实施例中,当在操作S710中接收到写入请求WR时,在操作S710与操作S790之间(或者在操作S790与操作S795之间),可执行附加操作(例如,在存储器控制器120处响应于写入请求WR而将“准备好传送”UPIU发送到外部主机装置的操作,在存储器控制器120处从外部主机装置与“数据输出”UPIU一起接收写入数据的操作,以及在存储器控制器120处将与写入请求WR对应的数据写入开放的分区的操作)。
在操作S795中,存储器控制器120可将提供分区被开放的通知的响应发送到外部主机装置。例如,当开放与由外部主机装置请求的分区的类型不同的类型的分区时,响应可包括关于开放的分区的信息。当开放的分区具有由外部主机装置请求的类型时,响应可不包括关于开放的分区的信息。可使用响应UPIU或查询响应UPIU来输出响应。在一个实施例中,当在操作S710中接收到写入请求WR时,响应可包括提供写入完成的通知的信息。
存储器控制器120可触发写入写入增强缓冲器中的数据的迁移。
图15是示出存储装置100开放保留分区的第六示例的示图。参照图1、图3A至图3E和图15,在操作S810中,存储装置100的存储器控制器120可从外部主机装置接收开放分区请求OZ或写入请求WR。例如,写入请求WR可以是导致新分区的开放的写入请求。开放分区请求OZ或写入请求WR可包括关于旨在开放的分区的类型的信息。可使用命令UPIU或查询请求UPIU来接收开放分区请求OZ或写入请求WR。
响应于开放分区请求OZ或导致新分区的开放的写入请求WR,在操作S820中,存储器控制器120可确定外部主机装置请求的分区的类型是否是第一类型。当请求的分区的类型不是第一类型时,在操作S830中,存储器控制器120可选择第二类型分区。
当请求的分区的类型是第一类型时,在操作S840中,存储器控制器120可确定空闲擦除单元EU的数量是否大于第六阈值TH6。
在一个实施例中,当目标分区和保留分区被设置为在逻辑单元LU内被生成时,空闲擦除单元EU的数量可以是逻辑单元LU中的空闲擦除单元的数量。当目标分区和保留分区被设置为在用户区域UA内被生成时,空闲擦除单元EU的数量可以是用户区域UA中的空闲擦除单元EU的数量。当保留分区被设置为在保留区域RA内被生成时,空闲擦除单元EU的数量可以是保留区域RA中的空闲擦除单元EU的数量。
当空闲擦除单元EU的数量大于第六阈值TH6时,在操作S850中,存储器控制器120可选择第一类型分区。
当空闲擦除单元EU的数量不大于第六阈值TH6时,在操作S860中,存储器控制器120可将包括关于不可用分区类型的信息的响应发送到外部主机装置。例如,存储器控制器120可将提供第一类型分区不可用的通知的响应发送到外部主机装置。可使用响应UPIU或查询响应UPIU来输出响应。
在操作S870中,存储器控制器120可从外部主机装置接收用于选择第二类型分区的请求。可使用命令UPIU或查询UPIU来接收用于选择第二类型分区的请求。
在操作S880中,存储器控制器120可响应于用于选择分区类型的请求而开放具有选择的类型的区域。例如,存储器控制器120可开放在操作S830中选择的第二类型分区、在操作S850中选择的第一类型分区或在操作S870中选择的第二类型分区。
在一个实施例中,当在操作S810中接收到写入请求WR时,在操作S810与操作S890之间(或者在操作S880与操作S890之间),可执行附加操作(例如,在存储器控制器120处响应于写入请求WR而将“准备好传送”UPIU发送到外部主机装置的操作,在存储器控制器120处从外部主机装置与“数据输出”UPIU一起接收写入数据的操作,以及在存储器控制器120处将与写入请求WR对应的数据写入开放的分区的操作)。
在操作S890中,存储器控制器120可将提供分区被开放的通知的响应发送到外部主机装置。可使用响应UPIU或查询响应UPIU来输出响应。在一个实施例中,当在操作S810中接收到写入请求WR时,响应可包括提供写入完成的通知的信息。
在保留分区被开放之后,存储器控制器120可触发迁移,使得保留分区的数据被移动到目标分区。在一个实施例中,存储器控制器120可在关闭目标分区时重置目标分区的保留分区。在一个实施例中,存储器控制器120可在保留分区的迁移完成时重置保留分区。在一个实施例中,当专用于生成保留分区的区域的空闲擦除单元EU的数量小于阈值时,存储器控制器120可直接将保留分区的数据移动到目标分区并且可重置保留分区。在一个实施例中,当专用于生成保留分区的区域的空闲擦除单元EU的数量小于阈值时,并且当目标分区的数据的逻辑地址与保留分区的数据的逻辑地址之间的顺序性不能被确保时,存储器控制器120可备份保留分区的数据并且可重置保留分区。备份数据可被写入保留域RA的擦除单元中。
图16是示出存储装置100将数据写入非易失性存储器装置110的示例的示图。参照图1和图16,在操作S910中,存储器控制器120可从外部主机装置接收写入请求WR。可使用命令UPIU接收写入请求WR。在一个实施例中,存储器控制器120可响应于写入请求WR而将“准备好传送”UPIU发送到外部主机装置,并且可从外部主机装置与“数据输出”UPIU一起接收写入数据。
在操作S920中,存储器控制器120可将数据存储在分区缓冲器中。在一个实施例中,存储器控制器120可将多个分区缓冲器分配给内部缓冲器123。每个分区缓冲器可存储要写入相应分区中的数据。存储器控制器120可基于与写入请求WR一起接收的数据的逻辑地址和分区映射表来识别目标分区,并且可将数据存储在目标分区的分区缓冲器中。
在操作S930中,存储器控制器120可确定目标分区的所有页数据是否被收集。例如,基于与TLC单元类型对应的目标分区的单元类型,当具有与写入目标分区中的最后数据的逻辑地址成顺序的逻辑地址的三个页数据被存储在分区缓冲器中时,存储器控制器120可确定目标分区的所有页数据被收集。
当目标分区的所有数据未被收集时,存储器控制器120可在数据被存储在分区缓冲器中的状态下结束处理。当目标分区的所有数据被收集时,在操作S950中,存储器控制器120可对目标分区执行写入操作。例如,存储器控制器120可通过对可被分配给目标分区的非易失性存储器装置110的一个或多个擦除单元执行写入操作来写入数据。在一个示例中,当目标分区的所有数据被收集时,在操作S940中,存储器控制器120可生成页映射表。
图17是示出基于图16的方法将数据写入非易失性存储器装置110中的示例的示图。尽管图17仅示出内部缓冲器123和一个非易失性存储器装置110,但是实施例不限于此,并且其他组件可存在或可被使用。
参照图1、图16和图17,内部缓冲器123可包括元缓冲器MB、读取缓冲器RB和分区缓冲器ZB。元缓冲器MB可用于存储元数据。例如,元缓冲器MB可存储分区映射表ZM和页映射表PM。读取缓冲器RB可用于存储从非易失性存储器装置110读取的数据。
分区缓冲器ZB可用于存储要写入分配给分区写入ZW的逻辑单元LU(例如,如图3A至图3E中所示)中的数据。示出分区缓冲器ZB包括与第五分区Z5对应的分区缓冲器BA_Z5和与第六分区Z6对应的分区缓冲器BA_Z6的实施例。在一个实施例中,内部缓冲器123还可包括用于存储要写入分配给随机写入RW的逻辑单元LU中的数据的缓冲器。
在数据输入步骤SDIN中,可将从外部主机装置接收以便写入第五分区Z5中的数据存储在第五分区Z5的分区缓冲器BA_Z5中。当与第五分区Z5的写入单元WU对应的数据被存储在第五分区Z5的分区缓冲器BA_Z5中时,在写入步骤SWR中,存储器控制器120可从第五分区Z5的分区缓冲器BA_Z5读取与写入单元WU对应的数据,并且可将读取的数据写入第五分区Z5中。例如,当第五分区Z5的单元类型对应于TLC单元类型时,第五分区Z5的写入单元WU可对应于三个页数据。
在将写入单元WU的数据写入第五分区Z5之前、之时或之后,存储器控制器120可生成映射逻辑地址LBA和物理地址PBA的页映射表PM。页映射表PM可被存储在内部缓冲器123的元缓冲器MB中。
图18是示出存储装置100在执行写入操作的同时开放分区的第一示例的示图。参照图1和图18,在操作S1010中,存储器控制器120可从外部主机装置接收写入请求WR。可使用命令UPIU接收写入请求WR。
在操作S1020中,存储器控制器120可确定请求写入的数据是否大于分区。例如,当由写入请求WR请求写入的数据量大于目标分区的空闲容量时,存储器控制器120可确定请求写入的数据大于分区。
当未请求大于分区的数据的写入时,存储器控制器120可将“准备好传送”UPIU发送到外部主机装置,并且可从外部主机装置与“数据输出”UPIU一起接收写入数据。在操作S1030中,存储器控制器可对目标分区执行写入。例如,存储器控制器120可将接收到的数据写入目标分区中。
当请求大于分区的数据的写入时,在操作S1040中,存储器控制器120可确定是否开放下一分区。当确定要开放下一分区时(例如,当需要或期望开放下一分区时),存储器控制器120可在不与外部主机装置通信的情况下在内部开放下一分区。下一分区可以是逻辑地址之后的分区。
在操作S1050中,存储器控制器120可对接收到的数据的目标分区执行写入。在操作S1020与操作S1050之间,存储器控制器120可将“准备好传送”UPIU发送到外部主机装置,并且可从外部主机装置与“数据输出”UPIU一起接收写入数据。
在操作S1060中,存储器控制器120可确定是否执行大于分区的写入(在下文中被称为“越分区(over-zone)写入”)。例如,当下一分区被开放时,存储器控制器120可确定执行越分区写入。例如,当下一分区未被开放时,存储器控制器120可确定不执行越分区写入。
当不执行越分区写入时,在操作S1070中,存储器控制器120可将响应发送到外部主机装置。响应可包括至少一条相关信息(诸如,提供针对目标分区的写入完成的通知的信息、提供写入未完成的通知的信息、以及关于写入完成的逻辑地址的信息)。可使用响应UPIU来输出响应。之后,可结束处理。
当执行越分区写入时,在操作S1080中,存储器控制器120可对下一分区执行写入。之后,在操作S1090中,存储器控制器120可将响应发送到外部主机装置。响应可包括至少一条相关信息(诸如,提供写入完成的通知的信息、提供新分区被开放的通知的信息、以及关于新分区的单元类型的信息)。可使用响应UPIU来输出响应。
图19是示出执行越分区写入的示例的示图。参照图1和图19,写入数据可从第七分区Z7的写入的起始被写入。当第七分区Z7被写入数据的一部分填满时,存储器控制器120可开放第八分区Z8。之后,写入数据可通过一次连续写入OCW被写入直至写入的结束。
图20是示出存储装置100确定是否开放下一分区的第一示例的示图。在一个实施例中,图20中示出的一个或多个操作可对应于图18的操作S1040。参照图1和图20,在操作S1110中,存储器控制器120可确定下一分区是否是可写入的。例如,当下一分区是只读分区时,则下一分区可不是可写入的。当下一分区不是可写入的时,存储器控制器120可确定不开放下一分区。
当下一分区是可写入的时,在操作S1120中,存储器控制器120可确定下一分区是否是空的。当数据已经被写入下一分区时,存储器控制器120可确定下一分区不是空的。
当下一分区是空的时,存储器控制器120可确定下一分区是否具有与目标分区相同的特征。例如,存储器控制器12根据目标分区的特征和下一分区的特征选择地开放下一分区。当目标分区的特征与下一分区的特征相同时,存储器控制器120可确定开放下一分区。当目标分区的特征和下一分区的特征彼此不同时,存储器控制器120可以确定不开放下一块。
例如,每个分区的特征可包括单元类型,单元类型是每个分区的每存储器单元写入的位的数量。当目标分区的单元类型与下一分区的单元类型相同时,存储器控制器120可开放下一分区。
每个分区的特征可包括流标识符。当从外部主机装置接收写入请求WR时,存储器控制器120可一起接收流标识符。存储器控制器120或外部主机装置可将流标识符分配给每个分区,并且可写入具有相应流标识符的数据。当分配给目标分区的流标识符与下一分区的流标识符相同时,存储器控制器120可开放下一分区。
每个分区的特征可包括温度。存储器控制器120可根据写入每个分区中的数据的更新频率将温度分配给每个分区。例如,当第一分区Z1的数据的更新频率低于第一阈值时,存储器控制器120可将第一分区Z1分类为冷分区。当第二分区Z2的数据的更新频率高于或等于第一阈值并且低于第二阈值时,存储器控制器120可将第二分区Z2分类为暖分区。当第三分区Z3的数据的更新频率高于或等于第二阈值时,存储器控制器120可将第三分区Z3分类为热分区。当目标分区的温度与下一分区的温度相同时,存储器控制器120可开放下一分区。
例如,当下一分区是可写入的且是空的,并且下一分区的特征与目标分区的特征相同时,在操作S1140中,存储器控制器120可确定使用下一分区继续进行越分区写入。
图21是示出存储装置100确定是否开放下一分区的第二示例的示图。在一个实施例中,图21中示出的一个或多个操作可对应于图18的操作S1040。参照图1和图21,在操作S1210中,存储器控制器120可确定下一分区是否是间隙分区。当下一分区是间隙分区时,在操作S1220中,存储器控制器120可选择下一分区之后的分区。之后,存储器控制器120可通过对下一分区之后的分区执行操作S1230、操作S1240、操作S1250和操作S1260来确定是否开放下一分区之后的分区。
当下一分区不是间隙分区时,在操作S1220中,存储器控制器120可维持下一分区的选择。之后,存储器控制器120可通过对下一分区执行操作S1230、操作S1240、操作S1250和操作S1260来确定是否开放下一分区。
与图20的操作S1110、操作S1120、操作S1130和操作S1140相同地执行操作S1230、操作S1240、操作S1250和操作S1260。因此,可省略冗余或重复的描述。
图22是示出存储装置100在执行写入操作的同时开放分区的第二示例的示图。参照图1和图22,在操作S1310中,存储器控制器120可从外部主机装置接收写入请求WR。可使用命令UPIU接收写入请求WR。
在操作S1320中,存储器控制器120可确定请求写入的数据是否大于分区。例如,当由写入请求WR请求写入的数据量大于目标分区的空闲容量时,存储器控制器120可确定请求写入的数据大于分区。
当未请求超越分区块的数据的写入时,存储器控制器120可将“准备好传送”UPIU发送到外部主机装置,并且可从外部主机装置与“数据输出”UPIU一起接收写入数据。在操作S1330中,存储器控制器可对目标分区执行写入。例如,存储器控制器120可将接收到的数据写入目标分区中。
当请求大于分区的数据的写入时,在操作S1340中,存储器控制器120可确定是否开放下一分区。当确定要开放下一分区时(例如,当需要或期望开放下一分区时),存储器控制器120可在不与外部主机装置通信的情况下在内部开放下一分区。下一分区可以是逻辑地址之后的区域。
在操作S1350中,存储器控制器120可确定是否执行越分区写入。例如,当下一分区被开放时,存储器控制器120可确定执行越分区写入。例如,当下一分区未被开放时,存储器控制器120可确定不执行越分区写入。
当不执行越分区写入时,在操作S1360中,存储器控制器120可将响应发送到外部主机装置。响应可包括至少一条相关信息(诸如,提供写入完成的通知的信息和提供数据量大于目标分区的空闲容量的通知的信息)。可使用响应UPIU来输出响应。之后,可结束处理。
当执行越分区写入时,在操作S1370中,存储器控制器120可对接收到的数据的目标分区执行写入。在操作S1320与操作S1350之间(或者在操作S1350与操作S1370之间),存储器控制器120可将“准备好传送”UPIU发送到外部主机装置,并且可从外部主机装置与“数据输出”UPIU一起接收写入数据。
在操作S1380中,存储器控制器120可对下一分区执行写入。之后,在操作S1390中,存储器控制器120可将响应发送到外部主机装置。响应可包括至少一条相关信息(诸如,提供写入完成的通知的信息、提供新分区被开放的通知的信息、以及关于新分区的单元类型的信息)。可使用响应UPIU来输出响应。
图23是示出存储装置100调整越分区写入的设置的示例的示图。参照图1和图23,在操作S1410中,存储器控制器120可从外部主机装置接收设置请求。可使用命令UPIU或查询请求UPIU来接收设置请求。
设置请求可包括关于用于执行越分区写入的参数的信息。在一个实施例中,设置请求可包括关于是否激活用于确定是否开放新分区的一个或多个条件(例如,参照图20或图21描述的条件)的信息。设置请求可包括关于是否激活参照图19描述的方法和/或参照图22描述的方法、或者是否使所有方法去激活的信息。
在操作S1420中,存储器控制器120可响应于设置请求而调整一个或多个越分区写入参数。在操作S1430中,存储器控制器120可将响应发送到外部主机装置。响应可包括提供越分区写入参数被成功调整的通知的信息。可使用响应UPIU或查询响应UPIU来输出响应。
图24是示出存储装置100提供分区映射服务的第一示例的示图。参照图1和图24,在操作S1510中,存储器控制器120可确定目标分区是否已满。例如,存储器控制器120可对目标分区执行写入操作,并且可确定目标分区的空闲容量是否被写入操作耗尽。
当目标分区未满时,存储器控制器120可不激活目标分区的分区映射服务。当目标分区已满时,存储器控制器120可激活目标分区的分区映射服务。当目标分区的分区映射服务被激活时,存储器控制器120可基于目标分区的分区映射表来处理针对目标分区的读取请求(例如,外部主机装置的读取请求)。
在针对目标分区的分区映射服务被激活之后,在操作S1530中,存储器控制器120可刷写(flush)目标分区的页映射表。例如,存储器控制器120可将目标分区的页映射表写入非易失性存储器装置110的元区域MA中(或备份到非易失性存储器装置110的元区域MA)。当目标分区的分区映射服务被激活时,因为不再使用目标分区的页映射表,所以存储器控制器120可从内部缓冲器123丢弃目标分区的页映射表。在一个实施例中,存储器控制器120可关闭充满数据的分区。
图25是示出基于图24的方法来激活分区映射服务的示例的示图。参照图1和图25,当数据被写入第七分区Z7时,可顺序地生成第七分区Z7的页映射表PM。当通过写入操作WO从写入的起始至写入的结束写入数据时,第七分区Z7可已满。当第七分区Z7已满时,对第七分区Z7的附加写入可被禁止,并且第七分区Z7可用作只读。当第七分区Z7的分区映射服务被激活时,存储器控制器120可使用第七分区Z7的分区映射表ZM_Z7来执行读取操作。
图26是示出存储装置100提供分区映射服务的第二示例的示图。参照图1和图26,在操作S1610中,存储器控制器120可确定目标分区是否被关闭。例如,存储器控制器120可基于从外部主机装置接收到的针对目标分区的关闭分区请求来确定目标分区是否被关闭。
当目标分区未被关闭时,存储器控制器120可不激活目标分区的分区映射服务。当目标分区被关闭时,在操作S1620中,存储器控制器120可确定要写入目标分区中的数据是否被全部写入目标分区中。例如,当要写入目标分区中的数据被全部写入目标分区中时,在操作S1630中,存储器控制器120可激活目标分区的分区映射服务。当目标分区的分区映射服务被激活时,存储器控制器120可基于目标分区的分区映射表来处理针对目标分区的读取请求(例如,外部主机装置的读取请求)。
在目标分区的分区映射服务被激活之后,在操作S1640中,存储器控制器120可刷写目标分区的页映射表。例如,存储器控制器120可将目标分区的页映射表写入非易失性存储器装置110的元区域MA中(或备份到非易失性存储器装置110的元区域MA)。当目标分区的分区映射服务被激活时,因为不再使用目标分区的页映射表,所以存储器控制器120可从内部缓冲器123丢弃目标分区的页映射表。
当要写入目标分区中的数据未被全部写入目标分区中时,例如,当要写入目标分区中的数据的一部分被写入用于备份的擦除单元中时,在操作S1650中,存储器控制器120可触发迁移,使得相应的数据被移动到目标分区。当迁移完成时,在操作S1630中,存储器控制器120可激活目标分区的分区映射服务。之后,在操作S1640中,存储器控制器120可刷写目标分区的页映射表。存储器控制器120可从内部缓冲器123丢弃目标分区的页映射表。
图27是示出存储器控制器120管理内部缓冲器123中的元数据的示例的示图。尽管图27仅示出内部缓冲器123和非易失性存储器装置110,但是实施例不限于此,并且其他组件可存在或可被使用。参照图1和图27,第一分区Z1的单元类型可对应于TLC单元类型。第一分区Z1可以是开放分区;在这种情况下,第一分区Z1可基于页映射表PM来管理。
第二分区Z2的单元类型可对应于TLC单元类型。第二分区Z2可以是开放分区;在这种情况下,第二分区Z2可基于页映射表PM来管理。第三分区Z3的单元类型可对应于SLC单元类型。第三分区Z3可以是开放分区;在这种情况下,第三分区Z3可基于页映射表PM来管理。第四分区Z4的单元类型可对应于TLC单元类型。第四分区Z4可是关闭分区;在这种情况下,四分区Z4可基于分区映射表ZM来管理第。
第五分区Z5的单元类型可对应于TLC单元类型。第五分区Z5可以是开放分区;在这种情况下,第五分区Z5可基于页映射表PM来管理。第六分区Z6的单元类型可对应于TLC单元类型。第六分区Z6可以是开放分区;在这种情况下,第六分区Z6可基于页映射表PM来管理。第七分区Z7的单元类型可对应于SLC单元类型。第七分区Z7可以是关闭分区;在这种情况下,第七分区Z7可基于分区映射表ZM来管理。第八分区Z8的单元类型可对应于TLC单元类型。第八分区Z8可以是开放分区;在这种情况下,第八分区Z8可基于页映射表PM来管理。
存储器控制器120可将第一分区Z1的页映射表PM_Z1、第二分区Z2的页映射表PM_Z2、第三分区Z3的页映射表PM_Z3、第四分区Z4的页映射表PM_Z4、第五分区Z5的页映射表PM_Z5、第六分区Z6的页映射表PM_Z6、第七分区Z7的页映射表PM_Z7、第八分区Z8的页映射表PM_Z8、以及分区映射表ZM存储在非易失性存储器装置110的元区域MA中。
存储器控制器120的内部缓冲器123可包括元缓冲器MB、读取缓冲器RB和分区缓冲器ZB。例如,分区缓冲器ZB可包括第五分区Z5的分区缓冲器BA_Z5和第六分区Z6的分区缓冲器BA_Z6。
存储器控制器120可将分区映射表ZM和部分页映射表pPM存储在内部缓冲器123的元缓冲器MB中。因为内部缓冲器123的存储容量有限,所以不能将非易失性存储器装置110的元区域MA的所有数据加载到元缓冲器MB。存储器控制器120可准许分区映射表ZM驻留在元缓冲器MB中,并且可将页映射表PM_Z1、PM_Z2、PM_Z3、PM_Z4、PM_Z5、PM_Z6、PM_Z7和PM_Z8的必要或期望部分加载到元缓冲器MB作为部分页映射表pPM。
图28是示出存储装置100基于分区映射表和页映射表提供读取服务的示例的示图。参照图1、图27和图28,在操作S1710中,存储器控制器120可从外部主机装置接收读取请求RD。
在操作S1720中,存储器控制器120可确定请求读取的目标分区的分区映射服务是否被激活。当请求读取的目标分区的分区映射服务被激活时,在操作S1780,存储器控制器120可从非易失性存储器装置110读取数据。例如,存储器控制器120可基于分区映射表ZM和包括在读取请求RD中的逻辑地址来识别目标分区,可计算写入指针WP与逻辑地址的偏移,并且可基于偏移来计算非易失性存储器装置110的物理地址。存储器控制器120可使用计算的物理地址来从非易失性存储器装置110读取数据。之后,在操作S1790中,存储器控制器120可将数据输出给外部主机装置。
当目标分区的分区映射服务未被激活时,在操作S1730中,存储器控制器120可确定是否发生页映射命中。例如,当包括在读取请求RD中的逻辑地址被存储在加载到内部缓冲器123的元缓冲器MB的部分页映射表pPM中时,可发生页映射命中。当发生页映射命中时,存储器控制器120可通过基于逻辑地址和部分页映射表pPM执行操作S1780和操作S1790来执行读取操作。
当没有发生页映射命中时,在操作S1740中,存储器控制器120可确定元缓冲器MB是否已满。当元缓冲器MB已满时,存储器控制器120可从部分页映射表pPM选择牺牲数据。例如,可选择首先加载到元缓冲器MB的数据或最长时间之前使用的数据作为牺牲数据。在操作S1750中,存储器控制器120可丢弃被选择为牺牲数据的页映射表。
当在元缓冲器MB中存在空闲空间时或者当通过丢弃被选择为牺牲数据的页映射表来保证空闲空间时,在操作S1760中,存储器控制器120可从非易失性存储器装置110的元区域MA读取与包括在读取请求RD中的逻辑地址对应的页映射表。在操作S1770中,存储器控制器120可将读取的页映射表作为部分页映射表pPM的一部分存储在内部缓冲器123的元缓冲器MB中。之后,存储器控制器120可通过基于逻辑地址和部分页映射表pPM执行操作S1780和操作S1790来执行读取操作。
如上所述,当分区映射服务被激活时,可省略确定页映射命中是否发生或者从非易失性存储器装置110读取页映射表的操作。因此,可提高存储装置100处理来自外部主机装置的读取请求的速度。
在一个实施例中,在存储装置100的通电事件中,存储器控制器120可从非易失性存储器装置110的元区域MA读取分区映射表ZM并且可将分区映射表ZM存储在内部缓冲器123的元缓冲器MB中。在存储装置100的断电事件中,存储器控制器120可将存储在内部缓冲器123的元缓冲器MB中的分区映射表ZM写入(例如,备份)非易失性存储器装置110的元区域MA中。
图29是示出存储装置100管理关于分区映射服务的激活信息的示例的示图。参照图1、图27和图29,存储器控制器120可使用有效映射VM来管理分区映射服务的激活。有效映射VM可以是包括分别与第一分区Z1、第二分区Z2、第三分区Z3、第四分区Z4、第五分区Z5、第六分区Z6、第七分区Z7和第八分区Z8对应的位的位图。
因为第一分区Z1、第二分区Z2、第三分区Z3、第五分区Z5、第六分区Z6和第八分区Z8处于开放状态,所以有效映射VM的相应位可被设置为位“I”,位“I”指示分区映射服务对于那些分区处于无效状态。因为第四分区Z4和第七分区Z7处于关闭状态,所以有效映射VM的相应位可被设置为位“V”,位“V”指示分区映射服务对于那些分区处于有效状态。
当从外部主机装置接收到针对任意分区的读取请求时,存储器控制器120可检查有效映射VM的相应位。当有效映射VM的相应位被设置为指示有效状态的位“V”时,存储器控制器120可基于逻辑地址和分区映射表来计算物理地址。当有效映射VM的相应位被设置为指示无效状态的位“I”时,存储器控制器120可通过执行图28的操作S1730至操作S1770来获得对应的页映射表,并且可基于逻辑地址和页映射表来获得物理地址。
图30是示出存储装置100处理访问错误的恢复的示例的示图。参照图1和图30,在操作S1810中,存储器控制器120可从外部主机装置接收访问请求。可使用命令UPIU来接收访问请求。
在操作S1820中,存储器控制器120可执行访问操作。例如,响应于访问请求,存储器控制器120可对与访问请求的逻辑地址对应的分区中的擦除单元的存储器单元执行访问操作(例如,写入操作或读取操作)。
在操作S1830中,存储器控制器120可确定是否发生访问错误。例如,当写入操作失败时或者当在读取操作中检测到的错误位的数量大于或等于阈值时,存储器控制器120可确定发生访问错误。
当没有发生访问错误时,在操作S1860中,存储器控制器120可将响应发送到外部主机装置。响应可包括提供访问操作成功的通知的信息。可使用响应UPIU来输出响应。
当发生访问错误时,在操作S1840中,存储器控制器120可将发生访问错误的数据写入恢复区域中。例如,存储器控制器120可将旨在写入操作的数据或旨在读取操作的数据写入恢复区域中。恢复区域可被定义在保留区域RVA中(例如,如图3A至图3E中所示)。恢复区域可具有与目标分区相同的特征(例如,与目标分区相同的单元类型)。恢复区域的容量可与目标分区的容量相同。包括在恢复区域中的擦除单元EU的数量可与包括在目标分区中的擦除单元EU的数量相同。将发生访问错误的数据写入恢复区域中可被称为“恢复操作”。
在操作S1850中,存储器控制器120可触发后恢复操作。后恢复操作可包括用于支持与写入目标分区中的数据和写入恢复区域中的数据相关联的读取操作的操作。之后,在操作S1860中,存储器控制器120可将响应发送到外部主机装置。响应可包括各种信息(诸如,提供发生访问错误的通知的信息和提供数据被写入恢复区域中的通知的信息)。作为另一示例,恢复操作(例如,包括后恢复操作)可在不将通知提供给外部主机装置的情况下由存储装置100在后台操作中执行。例如,响应可不包括关于访问错误或恢复操作的信息。可使用响应UPIU来输出响应。
图31是示出存储装置100执行后恢复操作的第一示例的示图。参照图1和图31,在操作S1910中,存储器控制器120可禁止发生访问错误的目标分区的分区映射服务。如果目标分区的分区映射服务处于激活状态,则存储器控制器120可使目标分区的分区映射服务去激活。之后,存储器控制器120可禁止激活目标分区的分区映射服务。如果目标分区的分区映射服务被去激活,则存储器控制器120可禁止激活目标分区的分区映射服务。存储器控制器120可基于页映射表来执行对目标分区的访问。存储器控制器120可维持对目标分区的分区映射服务的禁止,直至目标分区被重置为止。
在操作S1920中,存储器控制器120可将后续数据写入恢复区域中。例如,存储器控制器120可在恢复区域上执行由于外部主机装置对目标分区的写入请求而待决的写入。
在操作S1930中,存储器控制器120可触发先前数据向恢复区域的迁移。例如,存储器控制器120可触发迁移,使得在发生访问错误之前写入目标分区中的数据被从目标分区读取,并且读取的数据被写入恢复区域中。
当迁移完成时,在操作S1940中,存储器控制器120可用恢复区域替换目标分区。例如,存储器控制器120可将目标分区映射到分区映射表中的恢复区域的擦除单元。之后,在操作S1950中,存储器控制器120可重置先前的目标分区。
图32A至图32D是示出执行恢复操作(例如,包括后恢复操作)的处理的第一示例的示图。参照图1和图32A,存储器控制器120可将写入数据WD写入第七分区Z7中。写入数据WD可包括第一数据D1、第二数据D2和第三数据D3。存储器控制器120可成功地将第一数据D1写入第七分区Z7中。当存储器控制器120将第二数据D2写入第七分区Z7中时,可能发生写入失败PGMF(可被称为编程失败)。当发生写入失败PGMF时,存储器控制器120可执行恢复操作。
参照图1和图32B,存储器控制器120可开放第七分区Z7的恢复区域Z7_R。恢复区域Z7_R的特征(诸如,单元类型)可与第七分区Z7的特征(诸如,单元类型)相同。存储器控制器120可将发生写入失败PGMF的第二数据D2写入恢复区域Z7_R中。
参照图1和图32C,存储器控制器120可将写入数据WD的后续数据(例如,第三数据D3)写入恢复区域Z7_R中。
参照图32D,存储器控制器120可将目标分区的先前数据(例如,第一数据D1)从第七分区Z7迁移到恢复区域Z7_R。之后,存储器控制器120可用恢复区域Z7_R替换第七分区Z7,并且可重置先前的第七分区Z7。
存储器控制器120可基于页映射表支持针对第七分区Z7的写入和读取服务。因为在第七分区Z7中不能确保逻辑地址与物理地址之间的顺序性,所以存储器控制器120可禁止第七分区Z7的分区映射服务,直至第七分区Z7被重置为止。
图33A至图33E是示出执行恢复操作(例如,包括后恢复操作)的处理的第二示例的示图。参照图1和图33A,存储器控制器120可将写入数据WD写入第七分区Z7中。写入数据WD可包括第一数据D1和第二数据D2。存储器控制器120可成功地将写入数据WD之中的第一数据D1写入在第七分区Z7中。
参照图1和图33B,可从外部主机装置接收读取请求。第一数据D1可包括第1a数据D1a、第1b数据D1b和第1c数据D1c,并且读取请求可请求读取第1b数据D1b。当存储器控制器120对第1b数据D1b执行读取操作时,可能发生读取失败RDF。例如,当在针对第1b数据D1b的读取操作中检测到的错误位的数量大于或等于阈值时,存储器控制器120可确定发生读取失败RDF。在一个实施例中,存储器控制器120可将从第七分区Z7读取的第1b数据D1b输出给外部主机装置,并且可执行恢复操作。
参照图1和图33C,存储器控制器120可开放第七分区Z7的恢复区域Z7_R。恢复区域Z7_R的特征(诸如,单元类型)可与第七分区Z7的特征(诸如,单元类型)相同。存储器控制器120可将发生读取失败RDF的第1b数据D1b写入恢复区域Z7_R中。
参照图1和图33D,存储器控制器120可将写入数据WD的后续数据(例如,第二数据D2)写入恢复区域Z7_R中。
参照图33E,存储器控制器120可将目标分区的先前数据(例如,第1a数据D1a和第1c数据D1c)从第七分区Z7迁移到恢复区域Z7_R。之后,存储器控制器120可用恢复区域Z7_R替换第七分区Z7,并且可重置先前的第七分区Z7。
存储器控制器120可基于页映射表支持针对第七分区Z7的写入和读取服务。因为在第七分区Z7中不能确保逻辑地址与物理地址之间的顺序性,所以存储器控制器120可禁止第七分区Z7的分区映射服务,直至第七分区Z7被重置为止。
图34是示出存储装置100执行后恢复操作的第二示例的示图。参照图1和图34,在操作S2010中,存储器控制器120可生成发生访问错误的目标分区的失败表。失败表可包括关于错误和恢复区域的信息。失败表可辅助分区映射表,并且存储器控制器120可基于分区映射表和失败表来支持分区映射服务。
在操作S2020中,存储器控制器120可迁移后续数据。例如,当在读取操作中发生访问错误时,具有在发生访问错误的数据的逻辑地址之后的逻辑地址的数据可存在于目标分区中。存储器控制器120可将具有后续逻辑地址的数据从目标分区迁移到恢复区域。
在操作S2030中,存储器控制器120可将后续数据写入恢复区域中。在操作S2040中,存储器控制器120可确定分区是否关闭。当分区未被关闭时,存储器控制器120可再次执行操作S2030。例如,存储器控制器120可在恢复区域中处理从外部主机装置接收的写入请求,直至目标分区被关闭为止。
在操作S2050中,存储器控制器120可触发先前数据向恢复区域的迁移。例如,存储器控制器120可触发迁移,使得在发生访问错误之前写入目标分区中的数据被从目标分区读取,并且读取的数据被写入恢复区域中。
当迁移完成时,在操作S2060中,存储器控制器120可用恢复区域替换目标分区。例如,存储器控制器120可将目标分区映射到分区映射表中的恢复区域的擦除单元。之后,在操作S2070中,存储器控制器120可重置先前的目标分区。
在操作S2080中,存储器控制器120可激活目标分区的分区映射服务。例如,存储器控制器120可基于分区映射表和失败表来支持目标分区的分区映射服务。
图35A和图35B是示出生成用于生成失败表的恢复操作的第一示例的示图。在一个实施例中,图35A和35B示出在图32C之后执行的示例。参照图1和图35A,当外部主机装置请求将包括第四数据D4的写入数据WD写入第七分区Z7中时,存储器控制器120可将第四数据D4写入恢复区域Z7_R中。在写入第四数据D4之后,可关闭第七分区Z7。
参照图1和图35B,当第七分区Z7关闭时,存储器控制器120可将写入第七分区Z7中的第一数据D1迁移到恢复区域Z7_R。在恢复区域Z7_R中,第二数据D2、第三数据D3和第四数据D4可具有顺序的逻辑地址,并且因此,顺序性SEQ被确保。第一数据D1可具有顺序的逻辑地址,并且因此,顺序性SEQ被确保。因此,具有逻辑地址的顺序性的两个数据组可存在于恢复区域Z7_R中。存储器控制器120可在失败表处记录关于两个数据组的边界的信息。存储器控制器120可基于分区映射表和失败表来提供分区映射服务。
图36A和图36B是示出当发生访问错误时更新分区映射表ZM的示例的示图。参照图1和图36A,分区映射表ZM可包括关于第一分区Z1至第八分区Z8的标识信息、关于第一分区Z1至第八分区Z8的状态信息、关于映射至第一分区Z1至第八分区Z8的擦除单元EU的信息以及第一分区Z1至第八分区Z8的有效映射VM。
第一分区Z1可处于开放状态,并且可被映射到擦除单元EU“5”。与第一分区Z1对应的有效映射VM的位可具有值“0”。值“0”可指示分区映射服务处于无效状态。第二分区Z2可处于开放状态,并且可被映射到擦除单元EU“4”。与第二分区Z2对应的有效映射VM的位可具有值“0”。
第三分区Z3可处于开放状态,并且可被映射到擦除单元EU“7”。与第三分区Z3对应的有效映射VM的位可具有值“0”。第四分区Z4可处于关闭状态,并且可被映射到擦除单元EU“6”。与第四分区Z4对应的有效映射VM的位可具有值“1”。值“1”可指示分区映射服务处于有效状态。第五分区Z5可处于开放状态,并且可被映射到擦除单元EU“1”。与第五分区Z5对应的有效映射VM的位可具有值“0”。
第六分区Z6可处于开放状态,并且可被映射到擦除单元EU“2”。与第六分区Z6对应的有效映射VM的位可具有值“0”。第七分区Z7可处于开放状态,并且可被映射到擦除单元EU“3”。与第七分区Z7对应的有效映射VM的位可具有值“0”。第八分区Z8可处于开放状态,并且可被映射到擦除单元EU“8”。与第八分区Z8对应的有效映射VM的位可具有值“0”。
参照图1和图36B,当在第七分区Z7中发生访问错误时,存储器控制器120可更新分区映射表ZM中的关于第七分区Z7的擦除单元EU的信息,以便改变为失败表的第一索引Fail_1。存储器控制器120可参考分区映射表ZM,并且可通过失败表的第一索引Fail_1来识别关于第七分区Z7的访问错误的信息。
图37A至图37F是示出当发生访问错误时如何生成和更新失败表的示例的示图。参照图1和图37A,失败表FT可包括索引、发生错误的擦除单元EU、映射到恢复区域的擦除单元EU_R、指向发生访问错误的写入指针的失败指针、指示当发生多个访问错误时存储下一错误信息的失败表FT的索引的下一条目、以及指示在访问错误之后目标分区的数据是否被迁移到恢复区域的迁移标志。
参照图1、图37A和图37B,访问错误可发生在第三擦除单元EU3的写入指针WP300处。当执行恢复操作时,可首先将发生访问错误的写入指针WP300的数据写入与恢复区域对应的第九擦除单元EU9中。之后,可顺序写入具有在发生访问错误的逻辑地址之后的逻辑地址的数据。例如,可在确保顺序性SEQ的同时将要从写入指针WP300至WP799顺序写入(例如,要顺序写入到写入指针WP300至WP799)的第三擦除单元EU3的数据写入第九擦除单元EU9中。之后,通过迁移,可在确保顺序性SEQ的同时将先前从写入指针WP0至WP299写入的第三擦除单元EU3的数据写入第九擦除单元EU9中。
参照图1、图37C和图37D,在存储器控制器120将与第三擦除单元EU3的写入指针WP300至WP799对应的后续数据写入第九擦除单元EU9中的处理中,可发生与第三擦除单元EU3的写入指针WP500对应的数据的写入失败。
存储器控制器120可将与第二访问错误对应的信息写入失败表FT的索引“2”中。通过将“2”写入与第一访问错误对应的索引“1”的下一条目中,存储器控制器120可标识应当参考失败表FT的索引“2”。存储器控制器120可将关于发生访问错误的擦除单元EU的信息“9”、关于恢复区域的擦除单元EU_R的信息“10”、发生访问错误的失败指针“500”记录在失败表FT的索引“2”处。
存储器控制器120可将与发生访问错误的第三擦除单元EU3的写入指针WP500对应的数据写入第十擦除单元EU10中。存储器控制器120可将要在第三擦除单元EU3的写入指针WP500之后写入的数据写入第十擦除单元EU10中。例如,可在确保顺序性的同时将要从写入指针WP500至WP799写入的第三擦除单元EU3的数据写入第十擦除单元EU10中。
之后,存储器控制器120可执行迁移。例如,存储器控制器120可从要写入第三擦除单元EU3中的数据之中顺序地迁移未被写入第十擦除单元EU10中的数据。首先,存储器控制器120可将在第三擦除单元EU3的写入指针WP0至WP299处写入的数据迁移到第十擦除单元EU10。接下来,存储器控制器120可将请求写入第三擦除单元EU3的写入指针WP300至WP499处的数据从第九擦除单元EU9迁移到第十擦除单元EU10。因此,可在保证顺序性SEQ的同时将请求从写入指针WP0至WP499写入的第三擦除单元EU3的数据写入第十擦除单元EU10中。
参照图1、图37E和图37F,在存储器控制器120将写入在第三擦除单元EU3的写入指针WP0至WP299处的数据迁移到第九擦除单元EU9的处理中,可发生与第三擦除单元EU3的写入指针WP100对应的数据的访问错误(例如,迁移的读取错误或写入失败)。
存储器控制器120可将与第二访问错误对应的信息写入失败表FT的索引“2”中。通过将“2”写入与第一访问错误对应的索引“1”的下一条目中,存储器控制器120可标识应当参考失败表FT的索引“2”。存储器控制器120可将关于发生访问错误的擦除单元EU的信息“9”、关于恢复区域的擦除单元EU_R的信息“10”以及发生访问错误的失败指针“100”记录在在失败表FT的索引“2”处。
存储器控制器120可将与发生访问错误的第三擦除单元EU3的写入指针WP100对应的数据写入第十擦除单元EU10中。存储器控制器120可将在第三擦除单元EU3的写入指针WP100之后的数据迁移到在第十擦除单元EU10中。例如,存储器控制器120可通过将写入第三擦除单元EU3中的数据迁移到第十擦除单元EU10,来将与第三擦除单元EU3的写入指针WP100至WP299对应的数据写入第十擦除单元EU10中。
之后,存储器控制器120可将写入第九擦除单元EU9中的数据迁移到第十擦除单元EU10中。存储器控制器120可将与第三擦除单元EU3的写入指针WP300至WP799对应的数据从第九擦除单元EU9迁移到第十擦除单元EU10。接下来,存储器控制器120可将与第三擦除单元EU3的写入指针WP0至WP99对应的数据从第九擦除单元EU9迁移到第十擦除单元EU10。因此,可在确保顺序性SEQ的同时将请求从写入指针WP0至WP799写入的第三擦除单元EU3的数据写入第十擦除单元EU10中。
如上所述,当执行基于失败表FT的恢复时,将两个数据组写入分配给分区的擦除单元中,两个数据组中的每个具有顺序性SEQ。失败表FT可包括关于两个数据组的边界信息,两个数据组中的每个具有顺序性SEQ。使用分区映射表和失败表,存储器控制器120可根据从外部主机装置接收到的逻辑地址来计算用于从擦除单元(例如,第十擦除单元EU10)读取数据的物理地址(例如,第十擦除单元EU10的写入指针)。因此,存储器控制器120可基于分区映射表和失败表FT来支持分区映射服务。
图38是示出存储装置100执行备份操作的第一示例的示图。在一个实施例中,因为内部缓冲器123的容量有限,所以能够分配给内部缓冲器123的分区缓冲器的数量可小于能够分配给存储装置100的分区的数量。存储装置100可通过动态地生成和丢弃分区缓冲器来使用分区缓冲器。
参照图1和图38,在操作S2110中,存储器控制器120可从外部主机装置接收写入请求WR。可使用命令UPIU接收写入请求WR。
在操作S2120中,存储器控制器120可确定是否存在分区缓冲器。例如,存储器控制器120可确定是否在内部缓冲器123中生成(或分配)与写入请求WR请求写入数据的分区对应的分区缓冲器。当分区缓冲器存在时,存储器控制器120可将数据存储在分区缓冲器中。
当不存在分区缓冲器时,在操作S2130中,存储器控制器120可确定存在足够的空闲缓冲器。例如,存储器控制器120可确定在内部缓冲器123的容量之中的被定义为分配给分区缓冲器的容量中是否存在足以生成新分区缓冲器的空闲容量。当存在足以生成新分区缓冲器的空闲容量时,在操作S2160中,存储器控制器120可生成与写入请求WR对应的分区缓冲器,并且可将数据写入分区缓冲器中。
当不存在足以生成新分区缓冲器的空闲容量时,在操作S2140中,存储器控制器120可在分配给内部缓冲器123的分区缓冲器之中选择牺牲分区缓冲器。在操作S2150中,存储器控制器120可对牺牲分区缓冲器执行备份操作。例如,存储器控制器120可将存在于牺牲分区缓冲器中的数据写入从保留区域RVA(例如,如图3A至图3E中所示)的擦除单元之中选择用于备份的擦除单元中。之后,存储器控制器120可丢弃牺牲分区缓冲器。在操作S2160中,存储器控制器120可生成与写入请求WR对应的分区缓冲器,并且可将数据写入分区缓冲器中。
之后,如参照图15和图16所述,当在分区缓冲器中收集与目标分区的单元类型对应的数据时,可将收集的数据写入目标分区中。
图39是示出存储装置100执行备份操作的第二示例的示图。参照图1和图39,在操作S2210中,存储器控制器120可从外部主机装置接收写入请求WR。可使用命令UPIU接收写入请求WR。
在操作S2220中,存储器控制器120可确定接收到的写入请求WR是否对应于强制单元访问FUA。强制单元访问FUA可以是直接将数据写入非易失性存储器装置110中的请求。例如,存储装置100通常可以以回写方案进行操作,并且可响应于强制单元访问FUA而以直写方案进行操作。
当写入请求WR对应于强制单元访问FUA时,在操作S2230中,存储器控制器120可对与写入请求WR对应的写入数据执行备份操作。例如,存储器控制器120可将写入数据写入从保留区域RVA(例如,如图3A至图3E中所示)的擦除单元之中选择用于备份的擦除单元中。
当写入请求WR不对应于强制单元访问FUA时,在操作S2240中,存储器控制器120可基于参照图38描述的方法执行写入请求WR。
图40是示出存储装置100执行备份操作的第三示例的示图。参照图1和图40,在操作S2310中,存储器控制器120可接收断电通知PON。断电通知PON可提供外部主机装置将执行断电的通知。可使用命令UPIU、查询请求UPIU或单独的控制信号来接收断电通知PON。
在操作S2320中,响应于断电通知PON,存储器控制器120可对存储在所有分区缓冲器中的数据执行备份操作。例如,存储器控制器120可将存在于所有分区缓冲器中的数据写入从保留区域RVA(例如,如图3A至图3E中所示)的擦除单元之中选择用于备份的擦除单元中。之后,存储器控制器120可根据针对断电而定义的顺序来执行断电。
图41是示出存储装置100执行备份操作的第四示例的示图。参照图1和图41,在操作S2410中,存储器控制器120可从外部主机装置接收刷写请求。可使用命令UPIU或查询请求UPIU来接收刷写请求。
在操作S2420中,响应于刷写请求,存储器控制器120可对存储在所有分区缓冲器或一个或多个选择的分区缓冲器中的数据执行备份操作。例如,存储器控制器120可将存在于所有分区缓冲器或一个或多个选择的分区缓冲器中的数据写入从保留区域RVA(例如,如图3A至图3E中所示)的擦除单元之中选择用于备份的擦除单元中。之后,存储器控制器120可根据针对刷写而定义的顺序来执行刷写。
如参照图38、图39、图40和图41所述,存储装置100可由于各种因素而执行备份操作。为了优化备份操作,存储装置100可根据内部策略从保留区域RVA的擦除单元选择用于备份的擦除单元。
图42是示出存储装置100选择用于备份的擦除区域的方法的示例的示图。参照图1和图42,在操作S2510,存储器控制器120可确定是否存在备份擦除单元EU。例如,存储器控制器120可确定是否存在已经通过备份操作被写入数据的擦除单元EU。
当存在备份擦除单元EU时,在操作S2520,存储器控制器120可选择现有备份擦除单元EU。之后,在操作S2540中,存储器控制器120可将备份数据写入选择的擦除单元EU中。
当不存在备份擦除单元EU时,在操作S2530,存储器控制器120可基于目标特征和装置特征来选择用于备份的擦除单元EU的单元类型。
在操作S2540,存储器控制器120可将备份数据写入选择的擦除单元EU中。例如,存储器控制器120可根据情况将备份数据写入具有不同单元类型的擦除单元EU中。
作为另一示例,存储器控制器120可针对每个单元类型选择备份擦除单元。例如,存储器控制器120可选择具有SLC单元类型的备份擦除单元和具有MLC单元类型的备份擦除单元。在这种情况下,存储器控制器120可基于目标特征和装置特征来选择单元类型,并且可确定是否存在选择的单元类型的备份擦除单元。当存在选择的单元类型的备份擦除单元时,存储器控制器120可将旨在备份操作的数据写入已经存在的备份擦除单元中。当不存在选择的单元类型的备份擦除单元时,存储器控制器120可选择具有选择的单元类型的新的备份擦除单元,并且可将数据写入选择的备份擦除单元中。
图43是示出存储装置100基于目标特征和装置特征来选择单元类型的示例的示图。参照图1和图43,在操作S2610中,存储器控制器120可确定由外部主机装置请求写入的数据是否是强调性能或可靠性的数据。例如,存储器控制器120可基于可包括在从外部主机装置接收的写入请求中的信息(例如,性能要求(或目标)信息、可靠性要求(或目标)信息、优先级(或目标)信息和流标识符信息中的至少一个),来确定请求写入的数据是否是强调性能或可靠性的数据。当请求写入的数据是强调性能或可靠性的数据时,在操作S2620中,存储器控制器120可选择SLC单元类型作为备份擦除单元的单元类型。在一个实施例中,目标特征可包括性能要求、可靠性要求和优先级要求。
当请求写入的数据不是强调性能或可靠性的数据时,在操作S2630中,存储器控制器120可确定非易失性存储器装置110是否具有低耐久性。例如,当非易失性存储器装置110的平均擦除计数大于第一阈值时或者当从非易失性存储器装置110读取数据时的误码率大于第二阈值时,可确定非易失性存储器装置110的耐久性低。当非易失性存储器装置110的耐久性低时,在操作S2620,存储器控制器120可选择SLC单元类型作为备份擦除单元的单元类型。在一个实施例中,装置特征可包括耐久性。
当请求写入的数据不是强调性能或可靠性的数据时,并且当非易失性存储器装置110的耐久性不低时,在操作S2640中,存储器控制器120可选择具有(x-1)LC或更小的单元类型(其中,x对应于目标分区的单元类型)的擦除单元作为备份擦除单元。例如,存储器控制器120可选择其中每存储器单元写入的位的数量小于目标分区的每存储器单元写入的位的数量的擦除单元作为备份擦除单元。
在图43的示例中,性能和可靠性以及耐久性被示出为用于存储器控制器120选择备份擦除单元的单元类型的标准,但是实施例不限于此。例如,随着内部缓冲器123的分区缓冲器之中的存储在旨在备份操作的一个或多个分区缓冲器中的数据的大小增加,由存储器控制器120选择的擦除单元的单元类型可变得更低,例如,由存储器控制器120选择的擦除单元的每存储器单元写入的位的数量可减少。在一个实施例中,目标特征可包括数据的大小。
存储器控制器120可根据写入每个分区中的数据的更新频率将温度分配给每个分区。例如,当第一分区Z1的数据的更新频率低于第一阈值时,存储器控制器120可将第一分区Z1分类为冷分区。当第二分区Z2的数据的更新频率高于或等于第一阈值并且低于第二阈值时,存储器控制器120可将第二分区Z2分类为暖分区。当第三分区Z3的数据的更新频率高于或等于第二阈值时,存储器控制器120可将第三分区Z3分类为热分区。随着目标分区的数据的更新频率增加,由存储器控制器120选择的擦除单元的单元类型可变得更低,例如,由存储器控制器120选择的擦除单元的每存储器单元写入的位的数量可减少。在一个实施例中,目标特征可包括更新频率。
在一个实施例中,存储器控制器120可根据引起备份操作的因素来选择备份擦除单元的单元类型。例如,当响应于断电通知PON而执行备份操作时,存储器控制器120可选择具有与SLC单元类型对应的单元类型的擦除单元。当通过牺牲分区缓冲器的备份、强制单元访问FUA或刷写请求来执行备份操作时,存储器控制器120可基于以上因素中的至少一个来选择备份擦除单元的单元类型。在一个实施例中,目标特征可包括引起备份操作的因素。
根据一个实施例,在备份操作被执行之后,存储器控制器120可触发备份擦除单元的迁移。例如,当备份操作响应于断电通知PON而被执行时,存储器控制器120可在下一次通电之后触发备份擦除单元的迁移。
图44是示出通过备份操作将分区缓冲器的数据写入非易失性存储器装置110中的示例的示图。参照图1和图44,在数据输入步骤SDIN中,存储器控制器120可从外部主机装置接收要写入第五分区Z5中的数据。在一个实施例中,第五分区Z5的单元类型可对应于TLC单元类型,并且第五分区Z5的写入单元WU可包括三个页。当从外部主机装置接收到两个页的数据时,存储器控制器120可将两个页数据存储在第五分区Z5的分区缓冲器BA_Z5中。
如参照图38、图39、图40和图41所述,当执行备份操作时,基于第一选项OPT1,存储器控制器120可将第五分区Z5的分区缓冲器BA_Z5的数据存储在具有与SLC单元类型对应的单元类型的擦除单元的两个页处。在一个实施例中,基于第二选项OPT2,存储器控制器120可将第五分区Z5的分区缓冲器BA_Z5的数据存储在与具有与MLC单元类型对应的单元类型的擦除单元的一个页处。
根据实施例,当备份擦除单元中存在数据时,存储器控制器120可被实现为将存在于备份擦除单元中的数据加载到内部缓冲器123的相应的分区缓冲器,并且当与目标分区的写入单元对应的数据被收集在分区缓冲器中时将数据写入目标分区中。然而,当交替地执行针对各个分区的写入时,将备份擦除单元的数据加载到相应的分区缓冲器可准许能够多次执行参照图38描述的备份操作。这可导致写入放大的增加和存储装置100的寿命的减少。为了防止以上问题,根据本公开的实施例的存储装置100可被实现为在备份擦除单元中收集数据。
图45是示出存储装置100在备份擦除单元中收集数据的示例的示图。参照图1和图45,在操作S2710中,存储器控制器120可检测分区缓冲器的备份操作。在操作S2720中,存储器控制器120可将缓冲单元调整为备份擦除单元EU的单元类型。例如,缓冲单元可表示在用于存储器控制器120将数据写入分区中的内部缓冲器123的分区缓冲器中收集的数据的单元类型。在操作S2730中,存储器控制器120可将写入目的地调整为备份擦除单元EU。
例如,在执行备份操作之后,存储器控制器120可将缓冲单元调整为备份擦除单元EU的单元类型,并且可将数据写入备份擦除单元EU中。存储器控制器120可使用备份擦除单元EU执行缓冲。备份擦除单元EU可选自保留区域RVA(例如,如图3A至图3E中所示)的擦除单元。例如,存储器控制器120可使用内部缓冲器123的分区缓冲器和保留区域RA来执行双缓冲。
图46是示出存储装置100将备份擦除单元的数据迁移到目标分区的示例的示图。参照图1和图46,在操作S2810中,存储器控制器120可将数据写入备份擦除单元EU中。例如,存储器控制器120可响应于外部主机装置的写入请求而将数据存储在内部缓冲器123的分区缓冲器中。如参照图45所述,当存储在分区缓冲器中的数据对应于备份擦除单元EU的单元类型(或写入单元)时,存储器控制器120可将分区缓冲器的数据写入备份擦除单元EU中。
在操作S2820中,存储器控制器120可确定在备份擦除单元EU中收集的数据是否对应于目标分区的页数据。例如,存储器控制器120可确定在备份擦除单元EU中收集的数据是否达到与目标分区的单元类型对应的写入单元。当在备份擦除单元EU中收集的数据不对应于目标分区的单元类型时,存储器控制器120可结束处理。当在备份擦除单元EU中收集的数据对应于目标分区的单元类型时,存储器控制器120可执行操作S2830。
在操作S2830,存储器控制器120可迁移备份数据。例如,存储器控制器120可读取与目标分区的单元类型对应并被写入备份擦除单元EU中的数据,并且可将读取的数据写入目标分区。
在操作S2840,存储器控制器120可确定是否存在剩余备份数据。例如,存储器控制器120可确定目标分区的数据是否保留在备份擦除单元EU中。在一个实施例中,因为备份擦除单元EU的写入单元和目标分区的写入单元可不同,所以目标分区的数据可保留在备份擦除单元EU中。
当目标分区的数据保留在备份擦除单元EU中时,存储器控制器120可结束处理。当目标分区的数据没有保留在备份擦除单元EU中时,在操作S2850中,存储器控制器120可将缓冲单元调整为目标分区的单元类型。在操作S2860中,存储器控制器120可将写入目的地调整为目标分区。例如,在通过迁移将所有备份数据移动到目标分区之后,存储器控制器120可将缓冲单元调整为目标分区的单元类型,并且可将数据写入目标分区中。
图47A至图47C是示出存储装置100使用具有与SLC对应的单元类型的备份擦除单元执行缓冲的示例的示图。参照图1和图47A,在数据输入步骤SDIN中,存储器控制器120可将从外部主机装置接收的两个页数据存储在第五分区Z5的分区缓冲器BA_Z5中。之后,在备份步骤SBCK中,存储器控制器120可将存储在第五分区Z5的分区缓冲器BA_Z5中的两个页数据备份到具有与SLC单元类型对应的单元类型的擦除单元EU。如参照图45所述,存储器控制器120可调整第五分区Z5的缓冲单元和写入目的地,并且可使用具有与SLC单元类型对应的单元类型的擦除单元EU来执行双缓冲。
参照图1和图47B,在数据输入步骤SDIN中,当第五分区Z5的一个页数据从外部主机装置被接收到时,存储器控制器120可将接收到的一个页数据存储在第五分区Z5的分区缓冲器BA_Z5中。因为第五分区Z5的缓冲单元对应于SLC单元类型,所以在写入步骤SWR中,存储器控制器120可将存储在第五分区Z5的分区缓冲器BA_Z5中的数据写入具有与SLC单元类型对应的单元类型的擦除单元EU(例如,备份擦除单元)中。
参照图1、图47B和图47C,因为与第五分区Z5的TLC单元类型或第五分区Z5的写入单元WU对应的数据被收集在具有SLC单元类型的擦除单元EU中,所以存储器控制器120可将写入具有SLC单元类型的擦除单元EU中的数据迁移到第五分区Z5。之后,如参照图46所述,存储器控制器120可将缓冲单元的单元类型调整为第五分区Z5的单元类型并且将写入目的地调整为第五分区Z5。
图48A至图48C是示出存储装置100使用具有与MLC对应的单元类型的备份擦除单元执行缓冲的示例的示图。参照图1和图48A,在数据输入步骤SDIN中,存储器控制器120可将从外部主机装置接收的两个页数据存储在第五分区Z5的分区缓冲器BA_Z5中。之后,在备份步骤SBCK中,存储器控制器120可将存储在第五分区Z5的分区缓冲器BA_Z5中的两个页数据备份到具有与MLC单元类型对应的单元类型的擦除单元EU。如参照图45所述,存储器控制器120可调整第五分区Z5的缓冲单元和写入目的地,并且可使用具有与MLC单元类型对应的单元类型的擦除单元EU来执行双缓冲。
参照图1和图48B,在数据输入步骤SDIN中,当第五分区Z5的两个页数据从外部主机装置被接收到时,存储器控制器120可将接收到的两个页数据存储在第五分区Z5的分区缓冲器BA_Z5中。因为第五分区Z5的缓冲单元对应于MLC单元类型,所以在写入步骤SWR中,存储器控制器120可将存储在第五分区Z5的分区缓冲器BA_Z5中的数据写入具有与MLC单元类型对应的单元类型的擦除单元EU(例如,备份擦除单元)中。
参照图1、图48B和图48C,因为与第五分区Z5的TLC单元类型或第五分区Z5的写入单元WU对应的数据被收集在具有MLC单元类型的擦除单元EU中,所以存储器控制器120可将写入具有MLC单元类型的擦除单元EU中的数据之中的三个页数据迁移到第五分区Z5。如参照图46所述,因为一个页数据保留在具有MLC单元类型的擦除单元EU中,所以存储器控制器120可保持与具有MLC单元类型的擦除单元EU对应的第五分区Z5的缓冲单元和写入目的地。
在一个实施例中,当要写入第五分区Z5中的两个页数据进一步从外部主机装置被接收到时,存储器控制器120可将两个页数据写入具有MLC单元类型的擦除单元EU中,并且可将三个页数据从具有MLC单元类型的擦除单元EU迁移到第五分区Z5。之后,如参照图46所述,存储器控制器120可将第五分区Z5的缓冲单元和写入目的地调整为第五分区Z5。
图49是示出存储装置100执行与两个或更多个分区相关联的数据的备份操作的示例的示图。在一个实施例中,当从外部主机装置接收到针对两个或更多个分区的刷写请求时或者当从外部主机装置接收到断电通知时,可备份两个或更多个分区缓冲器的数据。
参照图1和图49,在操作S2910中,存储器控制器120可选择分区缓冲器。例如,存储器控制器120可选择旨在内部缓冲器123的备份操作的分区缓冲器之一。
在操作S2920中,存储器控制器120可以以逻辑地址LBA的顺序读取选择的分区缓冲器的数据。在操作S2930中,存储器控制器120可以以逻辑地址LBA的顺序写入数据。例如,存储器控制器120可以以逻辑地址LBA的顺序将从选择的分区缓冲器读取的数据写入备份擦除单元中。
在操作S2940中,存储器控制器120可确定选择的分区缓冲器是否是最后的分区缓冲器。例如,存储器控制器120可确定选择的分区缓冲器是否是旨在内部缓冲器123的备份操作的分区缓冲器之中的最后的分区缓冲器。当选择的分区缓冲器不是最后的分区缓冲器时,存储器控制器120可在操作S2910中选择下一分区缓冲器,并且可再次执行操作S2920、操作S2930和操作S2940。当选择的分区缓冲器是最后的分区缓冲器时,存储器控制器120可结束备份操作。
例如,当需要或期望备份存在于内部缓冲器123的两个或更多个分区缓冲器中的数据时,存储器控制器120可针对每个分区缓冲器收集存在于内部缓冲器123的两个或更多个分区缓冲器中的数据,以便写入备份擦除单元中。
图50是示出存储装置100备份分区缓冲器的数据的示例的示图。参照图1和图50,第五分区Z5的分区缓冲器BA_Z5可存储与逻辑地址“0100”和“0101”对应的数据。存储装置100可以以逻辑地址的顺序将与逻辑地址“0100”和“0101”对应的数据写入具有SLC单元类型的擦除单元EU中。
第六分区Z6的分区缓冲器BA_Z6可存储与逻辑地址“1100”和“1101”对应的数据。存储装置100可以以逻辑地址的顺序将与逻辑地址“1100”和“1101”对应的数据写入具有SLC单元类型的擦除单元EU中。
图51是示出将分区的数据备份到备份擦除单元的示例的示图。参照图1和图51,可以以逻辑地址的顺序将第五分区Z5的数据写入具有SLC单元类型的备份擦除单元EU中。接下来,可以以逻辑地址的顺序将第六分区Z6的数据写入具有SLC单元类型的备份擦除单元EU中。然后,可以以逻辑地址的顺序将第七分区Z7的数据写入具有SLC单元类型的备份擦除单元EU中。
可通过针对每个分区缓冲器(或针对每个分区)收集备份数据并以逻辑地址的顺序备份收集的数据,来加速将备份擦除单元EU的数据迁移到目标分区的处理。
图52是示出存储装置100使用非易失性存储器装置110执行缓冲的另一示例的示图。参照图1和图52,在操作S3010中,存储器控制器120可从外部主机装置接收写入请求WR。可使用命令UPIU接收写入请求WR。
在操作S3020中,存储器控制器120可将与写入请求WR一起接收的数据存储在内部缓冲器123(或分区缓冲器)中。在一个实施例中,在操作S3010与操作S3020之间,可执行附加操作(例如,在存储器控制器120处响应于写入请求WR而将“准备好传送”UPIU发送到外部主机装置的操作,以及在存储器控制器120处从外部主机装置与“数据输出”UPIU一起接收写入数据的操作)。
在操作S3030中,存储器控制器120可将存储在内部缓冲器123(或分区缓冲器)中的数据写入写入增强缓冲器WBB或第一类型分区(其示例在上面参照图10至图15进行描述)中。
例如,基于写入共享写入增强缓冲器SWBB中的数据(例如,如图3A至图3E中所示),当存储在内部缓冲器123中的数据对应于写入增强缓冲器WBB的单元类型而无论目标分区如何时,存储器控制器120可将存储在内部缓冲器123中的数据写入共享写入增强缓冲器SWBB中。
例如,基于写入专用写入增强缓冲器DWBB或第一类型分区中的数据,当存储在内部缓冲器123的分区缓冲器中以共享目标分区的数据对应于专用写入增强缓冲器DWBB或第一类型分区的单元类型时,存储器控制器120可将共享目标分区的数据写入与目标分区对应的第一类型分区或专用写入增强缓冲器DWBB中。
在操作S3040中,存储器控制器120可生成写入数据的页映射表。
图53是示出存储装置100触发迁移的方法的示例的示图。参照图1和图53,在操作S3110中,存储器控制器120可确定是否接收到关闭分区请求。当关闭分区请求被接收到时,在操作S3140中,存储器控制器120可触发与关闭分区请求对应的分区的迁移。
当关闭分区请求未被接收到时,在操作S3120中,存储器控制器120可确定存储装置100是否处于休眠状态(例如,省电状态)。当存储装置100处于休眠状态时,在操作S3140中,存储器控制器120可触发迁移。例如,存储器控制器120可触发写入备份擦除单元中的数据、存储在写入增强缓冲器WBB中的数据(例如,如图3A至图3E中所示)或写入第一类型分区中的数据的迁移。
当存储装置100不处于休眠状态时,在操作S3130中,存储器控制器120可确定存储装置100是否处于空闲状态。空闲状态可表示存储装置100中不存在待执行的请求的状态。当存储装置100处于空闲状态时,在操作S3140中,存储器控制器120可触发迁移。例如,存储器控制器120可触发写入备份擦除单元中的数据、存储在写入增强缓冲器WBB中的数据或写入第一类型分区中的数据的迁移。当存储装置100不处于空闲状态时,存储器控制器120可在不触发迁移的情况下结束确定。
在休眠状态或空闲状态下触发的迁移可与休眠状态或空闲状态的结束一起暂停。存储器控制器120可响应于再次进入休眠状态或空闲状态而恢复暂停的迁移。
如上所述,存储装置100可被实现为执行迁移作为未被外部主机装置识别的后台操作。
图54是示出存储装置100执行迁移的示例的示图。参照图1和图54,在操作S3210中,存储器控制器120可扫描在作为迁移源的写入增强缓冲器WBB、备份擦除单元或第一类型分区中共享目标分区的数据的逻辑地址的连续性。
例如,存储器控制器120可基于迁移的目标分区的写入单元或单元类型来确定连续性。写入迁移源中的数据的逻辑地址可按照目标分区的写入单元或单元类型被划分为组。当与划分的组的逻辑地址对应的所有数据被写入源分区中时,存储器控制器120可确定相应的组具有连续性。
在操作S3220中,存储器控制器120可迁移具有连续性的数据。例如,存储器控制器120可从最低逻辑地址顺序地迁移写入迁移源中的具有连续性的组。因此,在目标分区中,可确保物理地址和逻辑地址的顺序性。
图55A至图55D是示出存储装置100执行迁移的处理的示例的示图。参照图55A,迁移源可以是写入增强缓冲器、备份擦除单元或第一类型分区。迁移源可包括第一物理地址PBA1至第十六物理地址PBA16。目标分区可包括第一物理地址PBA1至第十六物理地址PBA16。因为迁移源的物理结构与目标分区的物理结构相同,所以物理地址的数量可相同。
在一个实施例中,为了描述迁移操作,存储器控制器120可将从外部主机装置与写入请求一起接收的数据写入迁移源中。
参照图55B,在操作S3311中,外部主机装置可请求写入与第一逻辑地址LBA1对应的数据。存储器控制器120可基于物理地址的顺序来写入数据。存储器控制器120可将数据写入与迁移源的第一物理地址PBA1对应的存储空间中,并且可存储关于第一物理地址PBA1和第一逻辑地址LBA1的映射信息。
在操作S3312中,外部主机装置可请求写入与第三逻辑地址LBA3对应的数据。存储器控制器120可将数据写入与迁移源的第二物理地址PBA2对应的存储空间中,并且可存储关于第二物理地址PBA2和第三逻辑地址LBA3的映射信息。
在操作S3313中,外部主机装置可请求写入与第四逻辑地址LBA4对应的数据。存储器控制器120可将数据写入与迁移源的第三物理地址PBA3对应的存储空间中,并且可存储关于第三物理地址PBA3和第四逻辑地址LBA4的映射信息。
在操作S3314中,外部主机装置可请求写入与第六逻辑地址LBA6对应的数据。存储器控制器120可将数据写入与迁移源的第四物理地址PBA4对应的存储空间中,并且可存储关于第四物理地址PBA4和第六逻辑地址LBA6的映射信息。
在操作S3315中,外部主机装置可请求写入与第七逻辑地址LBA7对应的数据。存储器控制器120可将数据写入与迁移源的第五物理地址PBA5对应的存储空间中,并且可存储关于第五物理地址PBA5和第七逻辑地址LBA7的映射信息。
在操作S3316中,外部主机装置可请求写入与第九逻辑地址LBA9对应的数据。存储器控制器120可将数据写入与迁移源的第六物理地址PBA6对应的存储空间中,并且可存储关于第六物理地址PBA6和第九逻辑地址LBA9的映射信息。
在操作S3317中,外部主机装置可请求写入与第十逻辑地址LBA10对应的数据。存储器控制器120可将数据写入与迁移源的第七物理地址PBA7对应的存储空间中,并且可存储关于第七物理地址PBA7和第十逻辑地址LBA10的映射信息。
在操作S3318中,外部主机装置请求写入与第十二逻辑地址LBA12对应的数据。存储器控制器120可将数据写入与迁移源的第八物理地址PBA8对应的存储空间中,并且可存储关于第八物理地址PBA8和第十二逻辑地址LBA12的映射信息。
根据图55B中示出的示例,因为不存在具有连续性的组,所以可不执行迁移MIG。
参照图55C,在操作S3321中,外部主机装置可请求与第二逻辑地址LBA2对应的数据的写入。存储器控制器120可将数据写入与迁移源的第九物理地址PBA9对应的存储空间中,并且可存储关于第九物理地址PBA9和第二逻辑地址LBA2的映射信息。
当TLC单元类型被用作目标分区的存储器单元的单元类型时,三个逻辑地址可被映射到目标分区的一个物理地址。存储器控制器120可确定与最低逻辑地址对应的组的连续性(例如,包括第一逻辑地址LBA1、第二逻辑地址LBA2和第三逻辑地址LBA3的组的连续性)被保证。
在操作S3322中,存储器控制器120可通过将包括第一逻辑地址LBA1、第二逻辑地址LBA2和第三逻辑地址LBA3的组的数据写入目标分区的第一物理地址PBA1来执行迁移MIG。在操作S3323中,存储器控制器120可存储关于目标分区的第一物理地址PBA1与第一逻辑地址LBA1、第二逻辑地址LBA2和第三逻辑地址LBA3的映射信息。
参照图55D,在操作S3331中,存储器控制器120可使第一逻辑地址LBA1、第二逻辑地址LBA2和第三逻辑地址LBA3的迁移数据和映射信息无效。
在操作S3332中,外部主机装置可请求与第十一逻辑地址LBA11对应的数据的写入。存储器控制器120可将数据写入与迁移源的第十物理地址PBA10对应的存储空间中,并且可存储关于第十物理地址PBA10和第十一逻辑地址LBA11的映射信息。
当第十一逻辑地址LBA11的数据被写入时,存储器控制器120可确定包括第十逻辑地址LBA10、第十一逻辑地址LBA11和第十二逻辑地址LBA12的组的连续性被保证。然而,因为连续性保证的组不是相对于包括第一逻辑地址LBA1、第二逻辑地址LBA2和第三逻辑地址LBA3的组的下一组(就逻辑地址顺序而言),所以存储器控制器120可不执行迁移MIG。
在操作S3333中,外部主机装置可请求与第五逻辑地址LBA5对应的数据的写入。存储器控制器120可将数据写入与迁移源的第十一物理地址PBA11对应的存储空间中,并且可存储关于第十一物理地址PBA11和第五逻辑地址LBA5的映射信息。
当第五逻辑地址LBA5的数据被写入时,存储器控制器120可确定包括第四逻辑地址LBA4、第五逻辑地址LBA5和第六逻辑地址LBA6的组的连续性被保证。连续性保证的组可以是相对于包括第一逻辑地址LBA1、第二逻辑地址LBA2和第三逻辑地址LBA3的组的下一组。
在操作S3334中,存储器控制器120可通过将包括第四逻辑地址LBA4、第五逻辑地址LBA5和第六逻辑地址LBA6的组的数据写入目标分区的第二物理地址PBA2来执行迁移MIG。在操作S3335中,存储器控制器120可存储关于目标分区的第二物理地址PBA2与第四逻辑地址LBA4、第五逻辑地址LBA5和第六逻辑地址LBA6的映射信息。
如上所述,存储器控制器120可通过以随机逻辑地址的顺序迁移写入迁移源中的数据来确保目标分区中的逻辑地址和物理地址的顺序性。
在以上实施例中,描述基于随机逻辑地址将数据写入迁移源中的示例。然而,可基于顺序的逻辑地址(例如,基于分区特性)将数据写入迁移源中。当基于顺序的逻辑地址将数据写入迁移源中时,如参照图47A至图47C和图48A至图48C所述,一旦每个组的逻辑地址的连续性被保证,存储器控制器120就可执行迁移。
图56是示出存储装置100将数据写入共享写入增强缓冲器SWBB中的示例的示图。参照图1和图56,存储器控制器120可根据从“1”至“20”的写入序列WS将数据写入共享写入增强缓冲器SWBB中。因为共享写入增强缓冲器SWBB由两个或更多个逻辑单元共享,所以写入共享写入增强缓冲器SWBB中的数据可包括第五分区Z5的数据、第六分区Z6的数据和第七分区Z7的数据。
写入共享写入增强缓冲器SWBB中的数据的有效性可由有效标志VF标记。被设置为“I”的有效标志VF可指示对应的数据是无效数据。被设置为“V”的有效标志VF可指示对应的数据是有效数据。
如上所述,存储器控制器120可将两个或更多个不同的分区的数据写入共享写入增强缓冲器SWBB中。根据实施例,当对写入共享写入增强缓冲器SWBB中的数据执行迁移时,存储器控制器120可以以任何方式选择要首先迁移的分区的数据。例如,存储器控制器120可基于存储在共享写入增强缓冲器SWBB中的数据的目标分区(例如,目标擦除单元)的特征来选择要迁移的数据。
图57是示出存储装置100选择作为迁移的目标的分区的数据的第一示例的示图。参照图1、图56和图57,在操作S3410,存储器控制器120可选择分区。例如,存储器控制器120可从与存储在共享写入增强缓冲器SWBB中的数据对应的分区之中选择分区。
在操作S3420中,存储器控制器120可计算无效比率。例如,存储器控制器120可计算存储在共享写入增强缓冲器SWBB中的选择的分区的有效数据与无效数据的比率。
在操作S3430中,存储器控制器120可确定选择的分区是否是最后的分区。例如,存储器控制器120可确定选择的分区是否是与存储在共享写入增强缓冲器SWBB中的数据对应的分区之中的最后的分区。当选择的分区不是最后的分区时,存储器控制器120可在操作S3410中选择下一分区,并且可再次执行操作S3420和操作S3430。
当选择的分区是最后的分区时,在操作S3440中,存储器控制器120可选择具有最高无效比率的分区。例如,存储器控制器120可选择具有最高无效比率的分区(或分区的擦除单元)的数据作为迁移目标。
在一个实施例中,如图56中所示,第五分区Z5的数据可包括四个无效数据和四个有效数据。第五分区Z5的无效比率可以是50%。第六分区Z6的数据可包括两个无效数据和六个有效数据。第六分区Z6的无效比率可以是25%。第五分区Z7的数据可包括四个有效数据而没有无效数据。第七分区Z7的无效比率可以是0%。
当迁移被触发时,存储器控制器120可选择第五分区Z5的数据作为迁移目标。当第五分区Z5的数据在第六分区Z6的数据和第七分区Z7的数据之前被迁移时,共享写入增强缓冲器SWBB的无效数据的比率可大幅增加。因此,共享写入增强缓冲器SWBB的擦除单元可被更快地无效,并且可在擦除之后被重新使用。
图58是示出存储装置100选择作为迁移的目标的分区的数据的第二示例的示图。参照图1、图56和图58,在操作S3510中,存储器控制器120可选择分区。例如,存储器控制器120可从与存储在共享写入增强缓冲器SWBB中的数据对应的分区之中选择分区。
在操作S3520中,存储器控制器120可计算写入速度。例如,存储器控制器120可计算存储在共享写入增强缓冲器SWBB中的选择的分区的数据被写入的速度。
在一个实施例中,存储器控制器120可计算最后写入选择的分区中的数据的最后写入次序与首先写入选择的分区中的数据的起始写入次序之间的差。存储器控制器120可通过将总写入计数除以计算的差来计算选择的分区的写入速度。
在操作S3530中,存储器控制器120可确定选择的分区是否是最后的分区。例如,存储器控制器120可确定选择的分区是否是与存储在共享写入增强缓冲器SWBB中的数据对应的分区之中的最后的分区。当选择的分区不是最后的分区时,存储器控制器120可在操作S3510中选择下一分区,并且可再次执行操作S3520和操作S3530。
当选择的分区是最后的分区时,在操作S3540中,存储器控制器120可选择具有最高写入速度的分区。例如,存储器控制器120可选择具有最高写入速度的分区的数据(或分区的擦除单元)作为迁移目标。
在一个实施例中,如图56中所示,第五分区Z5的数据的最后写入次序可以是20,并且起始写入次序可以是1。由存储器控制器120计算的第五分区Z5的差可以是19。由存储器控制器120计算的第五分区Z5的写入速度可以是“20/19”。第六分区Z6的数据的最后写入次序可以是19,并且起始写入次序可以是4。由存储器控制器120计算的第六分区Z6的差可以是15。由存储器控制器120计算的第六分区Z6的写入速度可以是“20/15”。第七分区Z7的数据的最后写入次序可以是17,并且起始写入次序可以是13。由存储器控制器120计算的第七分区Z7的差可以是4。由存储器控制器120计算的第七分区Z7的写入速度可以是“20/4”。
当针对两个或更多个分区的刷写请求或断电通知被接收到时,存储器控制器120可将两个或更多个分区的数据一起写入保留区域RVA(例如,如图3A至图3E中所示)的擦除单元中。可基于参照图56至图58描述的方法从保留区域RVA的擦除单元选择要迁移的分区(或分区的擦除单元)的数据。
图59是示出存储装置100执行迁移的第二示例的示图。参照图1和图59,在操作S3610中,存储器控制器120可从外部主机装置接收迁移请求。例如,可使用由UFS定义的命令UPIU或查询请求UPIU来接收迁移请求。
在操作S3620中,存储器控制器120可确定存储装置100是否处于休眠状态(例如,省电状态)。当存储装置100处于休眠状态时,在操作S3640中,存储器控制器120可触发迁移。
当存储装置100不处于休眠状态时,在操作S3630中,存储器控制器120可确定存储装置100是否处于空闲状态。空闲状态可表示存储装置100中不存在待执行的请求的状态。当存储装置100处于空闲状态时,在操作S3640中,存储器控制器120可触发迁移。当存储装置100不处于空闲状态时,存储器控制器120可不触发迁移。
在休眠状态或空闲状态下触发的迁移可与休眠状态或空闲状态的结束一起暂停。存储器控制器120可响应于再次进入休眠状态或空闲状态而恢复暂停的迁移。
在操作S3650中,存储器控制器120可确定迁移是否完成。当迁移未完成时,存储器控制器120可再次执行操作S3620。当迁移完成时,在操作S3660中,存储器控制器120可通知外部主机装置迁移完成。例如,存储器控制器120可将指示迁移完成的信息添加到响应于迁移请求或从外部主机装置接收的任意UPIU而要发送到外部主机装置的响应UPIU。
如上所述,存储装置100可被实现为响应于外部主机装置的请求而执行迁移作为未被外部主机装置识别的后台操作。
图60是示出存储装置100执行迁移的第三示例的示图。参照图1和图60,在操作S3710中,存储器控制器120可从外部主机装置接收迁移请求。可使用由UFS定义的命令UPIU或查询请求UPIU来接收迁移请求。
在操作S3720中,存储器控制器120可执行迁移。在操作S3730中,存储器控制器120可确定迁移是否完成。当迁移完成时,在操作S3740中,存储器控制器120可通知外部主机装置迁移完成。例如,存储器控制器120可将指示迁移完成的信息包括在迁移请求的响应UPIU中。
当要迁移到目标分区的数据的逻辑地址的连续性不被满足时,可无法完成迁移。当迁移未完成时,在操作S3750中,存储器控制器120可向外部主机装置通知迁移未完成。
例如,存储器控制器120可将指示迁移未完成的信息包括在迁移请求的响应UPIU中。存储器控制器120可将未迁移的有效数据的逻辑地址包括在响应UPIU中。
在一个实施例中,存储装置100可被实现为执行图53、图59和图60的操作方法(例如,迁移方法)之一。当存储装置100被实现为如参照图59和图60所述响应于外部主机装置的迁移请求而执行迁移时,存储装置100可在没有外部主机装置的迁移请求的情况下不在内部执行迁移(例如,如参照图53所述)。
存储装置100可被实现为执行图53、图59和图60的操作方法(例如,迁移方法)中的至少两种。存储装置100可由外部主机装置的查询请求UPIU设置以便执行两种或更多种方法中的一种。
图61是示出存储装置100执行预取的方法的示例的示图。参照图1和图61,在操作S3810中,存储器控制器120可确定外部主机装置是否请求顺序读取。例如,当外部主机装置请求与顺序的逻辑地址对应的读取的次数大于或等于阈值时,存储器控制器120可确定外部主机装置请求顺序读取。
当外部主机装置未请求顺序读取时,存储器控制器120可结束处理。当外部主机装置请求顺序读取时,在操作S3820中,存储器控制器120可开始预取。例如,即使在没有外部主机装置的请求的情况下,预取也可包括在存储器控制器120处从非易失性存储器装置110预取顺序读取的逻辑地址的顺序的后续逻辑地址的数据。
在操作S3830,存储器控制器120可确定预取是否到达分区边界。例如,当分区边界包括在预取的逻辑地址的范围内时,可在执行预取的同时到达分区边界。当分区边界未包括在预取的逻辑地址的范围内时,可在执行预取的同时不到达分区边界。当未到达分区边界时,存储器控制器120可完成预取,而不管分区边界如何。
当到达区边界时,在操作S3840中,存储器控制器120可确定下一分区是否具有任何不同的特征。例如,存储器控制器120可将经历顺序读取的分区的特征与下一分区的特征进行比较。当作为顺序读取的目标的分区的特征与下一分区的特征相同时,在操作S3850中,存储器控制器120可越分区边界执行预取(下文中称为“越分区预取”)直至下一分区。
当经历顺序读取的分区的特征不同于下一分区的特征时,存储器控制器120可不执行关于下一分区的预取。例如,关于预取的逻辑地址的范围,存储器控制器120可仅对属于经历顺序读取的分区的部分数据执行预取。
在一个实施例中,分区的特征可包括分区的单元类型。当经历顺序读取的分区的单元类型与下一分区的单元类型相同时,存储器控制器120可在区边界处执行越分区预取。
在一个实施例中,区域的特征可包括分区的温度。存储器控制器120可根据每个分区的更新频率将温度分配给每个分区。当经历顺序读取的分区的温度与下一分区的温度相同时,存储器控制器120可在分区边界处执行越分区预取。
在一个实施例中,分区的特征可包括写入分区中的数据的流标识符。存储器控制器120可从外部主机装置与写入数据一起接收流标识符。当写入经历顺序读取的分区中的数据的流标识符与写入下一分区中的数据的流标识符相同时,存储器控制器120可在分区边界处执行越分区预取。
在一个实施例中,存储器控制器120可组合单元类型、温度和流标识符中的至少两个作为分区的特征。根据从外部主机装置接收到的请求,存储器控制器120可确定是否使用单元类型、温度和流标识符中的任何一个(或多个)作为分区的特征。
在一个实施例中,基于从外部主机装置接收到的与预取数据的逻辑地址无关的读取请求的数量大于或等于阈值,存储器控制器120可通过预取来丢弃存储在内部缓冲器123中的数据。
图62A和图62B是示出执行越分区预取的示例的示图。参照图1和图62A,存储器控制器120可在第五分区Z5中执行顺序读取。读取的数据可被存储在内部缓冲器123的读取缓冲器RB中。当第五分区Z5和第六分区Z6具有相同的特征时,响应于顺序读取SR,存储器控制器120可在第五分区Z5和第六分区Z6中执行越分区预取PR。
参照图1和图62B,间隙分区GZ可存在于第五分区Z5与第六分区Z6之间。例如,第五分区Z5的下一分区可以是间隙分区GZ。当下一分区是间隙分区GZ时,存储器控制器120可根据与同间隙分区GZ连续的逻辑地址对应的第六分区Z6的特征和第五分区Z5的特征来选择性地执行预取PR。当第五分区Z5和第六分区Z6具有相同的特征时,响应于顺序读取SR,存储器控制器120可针对第五分区Z5和第六分区Z6越间隙分区GZ执行预取PR。
图63是示出存储装置100调整越分区预取的设置的示例的示图。参照图1和图63,在操作S3910中,存储器控制器120可从外部主机装置接收设置请求。可使用命令UPIU或查询请求UPIU来接收设置请求。
设置请求可包括关于用于执行越分区预取的参数的信息。在一个实施例中,设置请求可包括关于是否执行越分区预取、是否执行越间隙分区预取以及是否使用任何参数作为每个分区的特征的信息。
在操作S3920中,存储器控制器120可响应于设置请求来调整越分区预取参数。在操作S3930中,存储器控制器120可将响应发送到外部主机装置。响应可包括提供越分区预取参数被成功调整的通知的信息。可使用响应UPIU或查询响应UPIU来输出响应。
图64是示出存储装置100执行垃圾收集的第一示例的示图。在一个实施例中,可在外部主机装置的控制下执行分区单元的垃圾收集。
参照图1和图64,在操作S4010中,存储器控制器120可从外部主机装置接收读取请求RD。可使用命令UPIU接收读取请求。在操作S4020中,存储器控制器120可从非易失性存储器装置110读取数据,并且可将读取的数据输出给外部主机装置。可通过“数据输入”UPIU输出数据。在操作S4030中,存储器控制器120可将响应发送到外部主机装置。可使用响应UPIU来输出响应。操作S4010、操作S4020和操作S4030可形成用于垃圾收集的读取步骤。
在操作S4040中,存储器控制器120可从外部主机装置接收写入请求WR。可使用命令UPIU来接收写入请求。在操作S4050中,存储器控制器120可从外部主机装置接收数据。可使用“数据输出”UPIU来接收数据。在操作S4040与操作S4050之间,还可执行附加操作(例如,在存储器控制器120处将“准备好传送”UPIU发送到外部主机装置的操作)。在操作S4060中,存储器控制器120可将响应发送到外部主机装置。可使用响应UPIU来输出响应。操作S4040、操作S4050和操作S4060可形成用于垃圾收集的写入步骤。
当特定分区的有效数据通过垃圾收集操作移动时,存储器控制器120可根据从外部主机装置接收的重置请求来重置特定分区。可使用命令UPIU或查询请求UPIU来接收重置请求。
图65是示出存储装置100执行垃圾收集的第二示例的示图。在一个实施例中,可在外部主机装置的控制下执行分区单元的垃圾收集。
参照图1和图65,在操作S4110中,存储器控制器120可从外部主机装置接收分区复制请求ZCC。可使用命令UPIU或查询请求UPIU来接收分区复制请求。分区复制请求ZCC可包括关于作为复制的目标的目标分区的信息。例如,分区复制请求ZCC可在配置上类似于写入请求。
在操作S4120中,存储器控制器120可从外部主机装置接收源信息。源信息可包括关于作为复制的目标的源分区(例如,包括要复制的数据的源分区)的信息。例如,源信息可在配置上类似于“数据输出”UPIU。
在操作S4130中,存储器控制器120可执行分区复制操作。例如,存储器控制器120可从源分区读取与包括在源信息中的逻辑地址对应的数据,并且可将读取的数据顺序写入目标分区中。
当分区复制操作完成时,在操作S4140中,存储器控制器120可将响应发送到外部主机装置。可使用响应UPIU来输出响应。
与使用读取请求RD和写入请求WR的图64的方法相比,图65的方法可使用分区复制请求ZCC更快速且更简洁地将数据从源分区复制到目标分区。
在一个实施例中,当分区复制请求ZCC的目标分区不存在时,存储器控制器120可自动开放目标分区。存储器控制器120可根据外部主机装置的请求来确定是否自动开放目标分区。
图66A是示出图65的分区复制请求ZCC的格式的示例的示图。参照图1和图66A,示出分区复制请求ZCC的命令UPIU的命令描述符块(CDB)。
命令描述符块的第零字节的第零位至第七位可包括指示分区复制的操作码“A1h”。可保留命令描述符块的第一字节的第零位和第二位。命令描述符块的第一字节的第一位可包括强制单元访问非易失性(FUA_NV),FUA_NV可被保留,并且可具有值“0b”。
命令描述符块的第一字节的第三位可指示是否激活强制单元访问(FUA)。命令描述符块的第一字节的第四位可包括禁用页换出(DPO)并且可指示关于保留优先级的控制信息。命令描述符块的第一字节的第五位至第七位可包括WRPROTECT,并且可具有值“000b”。
命令描述符块的第二字节至第九字节可包括逻辑块地址的从最低有效位(LSB)至最高有效位(MSB)的位。逻辑块地址可包括数据通过分区复制要被复制到的目标分区的地址。命令描述符块的第十字节至第十三字节可包括传输长度的从LSB至MSB的位。传输长度可指示包括在源信息中的源分区的逻辑地址的长度。
命令描述符块的第十四字节的第零位至第四位可指示组编号,并且可指示复制的数据是具有系统数据特性还是链接到上下文标识符。可保留命令描述符块的第十四字节的第五位至第七位。命令描述符块的第十五字节可包括具有值“00h”的控制字段,并且可被忽略。
图66B是示出接收图65的源信息所通过的格式的示例的示图。参照图1和图66B,可使用“数据输出”UPIU接收源信息。源信息的“数据输出”UPIU可包括第零字段至第31字段。
源信息的第零字段可包括事务类型并且可具有值“xx000010b”。源信息的第一字段可包括与数据重传相关联的标志。源信息的第二字段可包括逻辑单元编号LUN。源信息的第三字段可包括任务标签并且可用于标识相关任务。
源信息的第四字段的一部分可包括用于发起任务的发起端标识符IID,并且其剩余部分可被保留。可保留源信息的第五字段和第六字段。源信息的第七字段的一部分可将发起端标识符IID的MSB存储为EXT_IID,并且其剩余部分可被保留。源信息的第八字段可包括总额外报头段(EHS)长度,并且可具有例如值“00h”。可保留源信息的第九字段。
源信息的第十字段可包括被包括作为数据部分的源分区的逻辑地址的长度的MSB部分,并且源信息的第十一字段可包括被包括作为数据部分的源分区的逻辑地址的长度的LSB部分。
源信息的第十二字段至第十五字段可包括数据缓冲偏移的从LSB至MSB的位,并且可指示作为分区复制(ZCC)的目标的所有逻辑地址之中的对应源信息的偏移。例如,存储器控制器120可在一个分区复制请求ZCC之后从外部主机装置接收一个或多个源信息。
源信息的第十六字段至第十九字段可包括数据传送计数的从LSB至MSB的位,并且可指示包括在对应源信息中作为数据部分的逻辑地址的大小。可保留源信息的第二十字段至第三十一字段。源信息可在源信息的第二十字段至第三十一字段之后包括报头端到端CRC(E2ECRC),并且当作为事务类型的第七位的HD位为“0”时,E2ECRC可被省略。
在报头E2ECRC之后,源信息可包括关于要从源分区复制的数据的逻辑地址的信息作为数据部分。例如,源信息可包括关于第k字段至第(k+L-1)字段中的逻辑地址的信息。在一个实施例中,L可对应于第十字段和第十一字段的数据段长度。
在第k字段至第(k+3)字段中,源信息可包括逻辑地址LBA条目的数量NLBA。逻辑地址LBA条目的数量NLBA可指示从其下一条目列出的逻辑地址LBA条目的数量。
之后,当源逻辑地址指示一个逻辑地址时,源信息可包括8个字段中的源逻辑地址LBA。例如,源信息可在第(k+4)字段至第(k+7)字段中包括第一源逻辑地址LBA[1]的位[63:32]。源信息可在第(k+8)字段至第(k+11)字段中包括第一源逻辑地址LBA[1]的位[31:0]。在随后的四个字段中,源信息可包括指示要复制的数据的长度的第一传输长度,第一传输长度从包括在前8个字段中的逻辑地址开始。
如上所述,源信息可在8个字段中包括逻辑地址,并且可在随后的4个字段中包括标识在逻辑地址LBA之后要复制的目标的传输长度。例如,在第(k+L-12)字段至第(k+L-9)字段中,源信息可包括第LNBA源逻辑地址LBA[NLBA]的位[63:32]。在第(k+L-8)字段至第(k+L-5)字段中,源信息可包括第NLBA源逻辑地址LBA[NLBA]的位[31:0]。在第(k+L-4)字段至第(k+L-1)字段中,源信息可包括与第LNBA源逻辑地址LBA[NLBA]对应的传输长度。
在包括关于要从源分区复制的数据的逻辑地址的信息作为数据部分之后,源信息可包括数据部分的E2ECRC,当作为事务类型的第六位的DD位是“0”时,E2ECRC可被省略。
在一个实施例中,当在要复制的数据的前一逻辑地址和下一逻辑地址处不存在要复制的数据时,例如,当要复制的数据处于孤立状态时,源信息可在数据部分包括没有传输长度的逻辑地址。例如,当源信息在8个字段中包括逻辑地址并且源信息在随后的8个字段中包括没有传输长度的逻辑地址时,在先的8个逻辑地址可指示仅复制逻辑地址的数据。
在一个实施例中,逻辑地址条目可包括8个字段或12个字段。包括8个字段的逻辑地址条目可指示仅复制与一个逻辑地址对应的数据。包括12个字段的逻辑地址条目可指示复制与一个逻辑地址和与其连续的至少一个逻辑地址对应的数据。
作为另一示例,逻辑地址条目可包括12个字段。传输长度为“1”的逻辑地址条目可指示仅复制与一个逻辑地址对应的数据。传输长度大于“1”的逻辑地址条目可指示复制与逻辑地址和与其连续的至少一个逻辑地址对应的数据。
图67是示出存储装置100基于图66A的分区复制请求ZCC和图66B的源信息执行分区复制的示例的示图。参照图1和图67,在操作S4210中,存储器控制器120可选择逻辑地址LBA条目。例如,存储器控制器120可选择源信息的数据部分的第一逻辑地址LBA条目。
在操作S4220中,存储器控制器120可确定传输长度。例如,当传输长度不存在或为“1”时,存储器控制器120可确定传输长度不存在。当传输长度不存在时,在操作S4230中,存储器控制器120可基于逻辑地址LBA条目来从非易失性存储器装置110的源分区读取数据。在操作S4240,存储器控制器120可将读取的数据写入非易失性存储器装置110的目标分区中。之后,存储器控制器120可执行操作S4270。
当传输长度存在或大于“1”时,存储器控制器120可确定传输长度存在。当传输长度存在时,在操作S4250,存储器控制器120可基于逻辑地址LBA条目和传输长度来从非易失性存储器装置110的源分区读取数据。例如,存储器控制器120可读取与两个或更多个逻辑地址对应的数据。在操作S4260,存储器控制器120可将读取的数据顺序写入非易失性存储器装置110的目标分区中。之后,存储器控制器120可执行操作S4270。
在操作S4270中,存储器控制器120可更新源分区和目标分区的页映射表PM。例如,存储器控制器120可生成复制到目标分区的数据的页映射表,并且可使从源分区复制的数据的页映射表无效。存储器控制器120可将从源分区复制的数据识别为无效数据。
在操作S4280中,存储器控制器120可确定选择的逻辑地址LBA条目是否是最后的逻辑地址LBA条目。例如,存储器控制器120可确定从包括在源信息的数据部分中的逻辑地址LBA条目选择的逻辑地址LBA条目是否是最后的逻辑地址LBA条目。选择的逻辑地址LBA条目是最后的逻辑地址LBA条目可表示分区复制操作完成,并且因此,存储器控制器120可结束处理。当选择的逻辑地址LBA条目不是最后的逻辑地址LBA条目时,在操作S4210中,存储器控制器120可选择包括在源信息中的数据部分的下一逻辑地址LBA条目。之后,存储器控制器120可再次执行操作S4220至操作S4280。
图68A至图68D是示出存储装置100基于图67的方法执行分区复制的示例的示图。参照图1和68A,第五分区Z5可对应于逻辑地址LBA“00000”至“00111”,并且可对应于写入指针WP“0000”至“0111”。第九分区Z9可对应于逻辑地址LBA“01000”至“01111”,并且可对应于写入指针WP“0000”至“0111”。在一个实施例中,第五分区Z5可以是关闭分区,并且可以是分区复制的源分区。第九分区Z9可以是新分区并且可以是分区复制的目标分区。
根据分区复制请求ZCC,与第五分区Z5的逻辑地址LBA“00000”和“00001”以及写入指针WP“0000”和“0001”对应的数据可被复制到与第九分区Z9的逻辑地址LBA“01000”和“01001”以及写入指针WP“0000”和“0001”对应的区域。
参照图1和图68B,如由斜线指示,复制的数据可在第五分区Z5中被无效。
参照图1和图68C,根据分区复制请求ZCC,与第五分区Z5的逻辑地址LBA“00100”和写入指针WP“0100”对应的数据可被复制到与第九分区Z9的逻辑地址LBA“01010”和写入指针WP“0010”对应的区域。
参照图1和图68D,如由斜线指示,复制的数据和具有复制的数据的先前(例如,较低)逻辑地址LBA(例如,逻辑地址LBA“00010”、“00011”和“00100”)的数据可在第五分区Z5中被无效。
外部主机装置可基于文件系统(例如,闪存友好文件系统(F2FS))来管理写入存储装置100中的数据。存储器控制器120可基于映射表(例如,分区映射表和页映射表)来管理写入非易失性存储器装置110中的数据。文件系统可通过修整(trim)操作与存储器控制器120共享关于删除的数据的信息,但是共享信息可发生时间差。
未由分区复制进行复制的数据可被外部主机装置视为先前删除的数据。因此,存储器控制器120可将未被外部主机装置的分区复制请求ZCC复制的数据识别为无效数据。
图69是示出存储装置100执行垃圾收集的第三示例的示图。在一个实施例中,可在外部主机装置的控制下执行分区单元的垃圾收集。
参照图1和图69,在操作S4310中,存储器控制器120可从外部主机装置接收分区复制请求ZCC。可使用命令UPIU或查询请求UPIU来接收分区复制请求ZCC。分区复制请求ZCC可包括关于作为复制的目标的目标分区的信息和关于作为复制的目标的源分区的信息。例如,分区复制请求ZCC可在配置上类似于写入请求。
在操作S4320中,存储器控制器120可执行分区复制操作。例如,存储器控制器120可从源分区读取与包括在分区复制请求ZCC中的源分区的逻辑地址LBA对应的数据,并且可将读取的数据顺序写入由包括在分区复制请求ZCC中的逻辑地址LBA指示的目标分区中。
当分区复制操作完成时,在操作S4330中,存储器控制器120可将响应发送到外部主机装置。可使用响应UPIU来输出响应。
与使用读取请求RD和写入请求WR的图64的方法相比,图69的方法可使用分区复制请求ZCC更快速且更简洁地将数据从源分区复制到目标分区。
在一个实施例中,当分区复制请求ZCC的目标分区不存在时,存储器控制器120可自动开放目标分区。存储器控制器120可根据外部主机装置的请求来确定是否自动开放目标分区。
图70A是示出图69的分区复制请求ZCC的格式的示例的示图。参照图1和图70A,示出分区复制请求ZCC的命令UPIU的命令描述符块(CDB)。除了命令描述符块的第零字节的第零位至第7位包括指示分区复制的操作码“8aH”并且传输长度用于另一目的之外,图70A的命令描述符块可类似于图66A的命令描述符块。因此,可省略冗余或重复的描述。
图70B是示出图70A的传输长度的示例的示图。在一个实施例中,分区复制请求ZCC的传输长度可包括双字Dword,每个双字Dword包括第零位至第三十一位。在一个实施例中,分区复制请求ZCC的命令描述符块的所有字段可以是双字,或者命令描述符块的传输长度的字段可以是双字。
在一个实施例中,传输长度字段的第零双字可包括签名。例如,签名可包括值“0x5950435A”,并且可将“ZCPY”指示为ASCII码。
在一个实施例中,传输长度字段的第一双字可指示报头大小。报头的范围可由UFS协议或与非易失性存储装置相关联的任何其他标准协议来定义。
传输长度字段的第二双字可包括有效位图大小。有效位图大小可指示下面描述的位图之中的有效位图的大小。
传输长度字段的第三双字和第四双字可包括源分区的标识符。传输长度字段的第五双字和第六双字可包括源分区的写入指针WP(或逻辑地址LBA)。
传输长度字段的第七双字和第八双字可包括目标分区的标识符。传输长度字段的第九双字和第十双字可包括目标分区的写入指针WP(或逻辑地址LBA)。
传输长度字段的第十一双字的第零位至第15位可包括分区复制用户写入速率,并且其第16位至第31位可包括分区复制迁移速率。存储器控制器120可根据分区复制用户写入速率和分区复制迁移速率通过分区复制对从外部主机装置接收的写入请求和写入请求进行节流。
传输长度字段的第十二双字可包括有效块计数。有效块计数可指示包括在有效位图中的位之中的指示有效性的位的数量。
请求块计数可指示来自分区复制的源分区的逻辑地址之中的要通过分区复制的逻辑地址的数量。
传输长度字段的第十四双字和第十五双字可被保留。在传输长度字段的第五双字之后,分区复制请求ZCC可包括与第十五双字至第(15+有效位图大小)双字对应的位图。
位图可包括标识从源分区写入指针WP(或逻辑地址LBA)开始的要复制的逻辑地址的信息。例如,用位图中的第一逻辑值标记的数据可通过分区复制请求ZCC被复制到目标分区,并且用第二逻辑值标记的数据可通过分区复制请求ZCC不被目标分区复制。
图71是示出存储装置100基于图69的分区复制请求ZCC执行分区复制的示例的示图。参照图1和图71,在操作S4410中,存储器控制器120可从分区复制请求ZCC的位图选择第一位。
在操作S4420中,存储器控制器120可确定位图的选择的位是否有效。当位图的选择的位无效时,存储器控制器120可执行操作S4460。
当位图的选择的位有效时,在操作S4430中,存储器控制器120可基于块计数和逻辑地址LBA从源分区读取数据。例如,基于块计数和逻辑地址LBA,存储器控制器120可从源分区读取与目标分区的单元类型或写入单元对应的数据。
在操作S4440中,存储器控制器120可将读取的数据写入目标分区中。在操作S4450中,存储器控制器120可更新源分区和目标分区的页映射表PM。之后,存储器控制器120可执行操作S4460。
在操作S4460中,存储器控制器120可增加块计数。当在操作S4470中确定块计数大于请求块计数RBC时,存储器控制器120可结束分区复制处理。当块计数不大于请求块计数RBC时,存储器控制器120可在操作S4410中选择另一位,并且可执行操作S4420至操作S4480。
图72是示出外部主机装置执行分区单元的垃圾收集的示例的示图。在图72的示例中,存储装置100可以是可假设每个分区的逻辑地址的顺序写入的分区存储装置。因此,存储装置100可假设目标分区的逻辑地址和写入指针的顺序性。
存储装置100可假设分区单元的数据管理由外部主机装置执行。因此,存储装置100可根据外部主机装置的请求执行分区单元的垃圾收集,并且可独立于外部主机装置执行内部垃圾收集以提高性能。
参照图1和图72,在操作S4510中,外部主机装置可检测休眠。例如,外部主机装置可确定与存储装置100的通信已进入休眠状态(例如,省电状态)。
在操作S4520中,外部主机装置可确定是否存在注册为垃圾收集的目标的分区。当不存在注册为垃圾收集的目标的分区时,在操作S4540中,外部主机装置可准许与存储装置100的通信进入休眠状态。
当存在注册为垃圾收集的目标的分区时,在操作S4530中,外部主机装置可将分区复制请求ZCC发送到存储装置100。例如,外部主机装置可将注册为垃圾收集目标的分区确定为源分区,并且可将针对源分区的数据之中的部分数据的分区复制请求ZCC发送到存储装置100。在将分区复制请求ZCC发送到存储装置100之后,在操作S4540中,外部主机装置可进入休眠状态。
当外部主机装置处于休眠状态时,存储装置100可响应于分区复制请求ZCC而执行分区复制请求ZCC。在一个实施例中,在外部主机装置与存储装置100之间的通信进入休眠状态之后,在操作S4560中,存储装置100可将分区复制请求ZCC的响应发送到外部主机装置。
图73是示出通过图72的方法将第七分区Z7的数据复制到新分区NZ的示例的示图。参照图1和图73,第七分区Z7的斜线部分可被外部主机装置识别为无效数据。第七分区Z7的虚线部分可被外部主机装置识别为有效数据。响应于分区复制请求ZCC,存储装置100可将第七分区Z7的有效数据的一部分复制到新分区NZ。
图74是示出外部主机装置完成分区单元的垃圾收集的示例的示图。参照图1和图74,在操作S4610中,外部主机装置可检测垃圾收集。例如,为了分配用于写入新数据的新分区,外部主机装置可确定要执行垃圾收集,或者需要垃圾收集。
在操作S4620中,外部主机装置可将分区复制请求ZCC发送到存储装置100。例如,外部主机装置可选择注册为垃圾收集目标的分区之一作为源分区。例如,如参照图72和图73所述,外部主机装置可通过分区复制请求ZCC选择部分数据被复制到的分区作为源分区。外部主机装置可将用于复制源分区的有效数据的分区复制请求ZCC发送到存储装置100。之后,在操作S4630中,外部主机装置可等待,直至根据分区复制请求ZCC的垃圾收集完成为止。
在操作S4640中,存储装置100可响应于分区复制请求ZCC而执行分区复制操作。在操作S4650中,存储装置100可将分区复制操作的响应发送到外部主机装置。在一个实施例中,外部主机装置可将分区复制请求ZCC发送到存储装置100两次或更多次,直至完成垃圾收集为止。
图75是示出通过图74的方法进行垃圾收集的示例的示图。参照图1和图75,在参照图73给出的描述中,基于第七分区Z7是源分区,第七分区Z7中的被复制到新分区的数据可被外部主机装置和存储装置100识别为第七分区Z7中的无效数据。
响应于图74的分区复制请求ZCC,存储装置100可将第七分区Z7的剩余有效数据复制到新分区NZ。基于第七分区Z7是源分区,第七分区Z7中的被复制到新分区NZ的数据可被外部主机装置和存储装置100识别为第七分区Z7中的无效数据。例如,第七分区Z7可被识别为仅包括无效数据。
当垃圾收集完成时,外部主机装置可通过重置第七分区Z7来确保能够分配新分区的擦除单元。
在一个实施例中,外部主机装置可基于参照图72描述的方法来执行垃圾收集作为后台操作。在确保足够次数或足够时间的休眠状态的情况下,外部主机装置可完成垃圾收集作为后台操作。
外部主机装置可基于参照图74描述的方法主动地执行垃圾收集。例如,当需要或期望立即分配新分区时,外部主机装置可通过将一个或多个分区的数据复制到新分区或现有分区并重置该一个或多个分区来确保用于分配新分区的擦除单元。
图76是示出图2的存储器块BLK1至BLKz中的一个存储器块BLKa的示例的电路图。参照图1、图2和图76,多个单元串CS11、CS12、CS21和CS22可按行和列布置在基底SUB上。每个行可沿着第一方向延伸。每个列可沿着第二方向延伸。多个单元串CS11、CS12、CS21和CS22可共同与形成在基底SUB上(或在基底SUB中)的共源极线CSL连接。在图76中,为了更好理解存储器块BLKa的结构,描绘基底SUB的位置作为示例。
每个行的单元串可共同与地选择线GSL连接,并且可与第一串选择线SSL1a和SSL1b以及第二串选择线SSL2a至SSL2b中的相应串选择线连接。每个列的单元串可与第一位线BL1和第二位线BL2中的相应位线连接。
每个单元串可包括与地选择线GSL连接的至少一个接地选择晶体管GST和分别与多条字线WL1至WL8连接的多个存储器单元MC1至MC8。第一行的单元串还可包括分别与第一串选择线SSL1a和SSL1b连接的串选择晶体管SSTa和SSTb。第二行的单元串还可包括分别与第二串选择线SSL2a和SSL2b连接的串选择晶体管SSTa和SSTb。
在每个单元串中,接地选择晶体管GST、存储器单元MC1至MC8以及串选择晶体管SSTa和SSTb可在垂直于基底SUB的方向(例如,第三方向)上串联连接,并且可在垂直于基底SUB的方向上顺序堆叠。在单元串CS11、CS12、CS21和CS22中的每个中,存储器单元MC1至MC8中的至少一个可用作虚设存储器单元。虚设存储器单元可不被编程(例如,可被禁止编程),或者可与存储器单元MC1至MC8中的除了虚设存储器单元之外的剩余存储器单元不同地被编程。
在一个实施例中,放置在相同高度处并且与一条串选择线SSL1a、SSL1b、SSL2a或SSL2b相关联的存储器单元可形成一个物理页。一个物理页的存储器单元可与一条子字线连接。位于相同高度处的物理页的子字线可共同与一条字线连接。在下文中,术语“字线”可用于指示字线或子字线,并且可基于上下文来解释。
示出存储器块BLKa在与第一串选择线SSL1a和SSL1b对应的第一行、与第二串选择线SSL2a和SSL2b对应的第二行、与第一位线BL1对应的第一列以及与第二位线BL2对应的第二列的交叉点处包括单元串CS11、CS12、CS21和CS22的实施例,但是包括在存储器块BLKa中的单元串的行和列的数量不受限制。
存储装置100的存储器控制器120可使用两个或更多个擦除单元来管理存储器块BLKa。例如,存储器控制器120可沿着垂直于基底SUB的方向将存储器块BLKa划分为两个或更多个擦除单元。存储器控制器120可彼此独立地擦除两个或更多个擦除单元。例如,可通过将擦除电压(例如,高电压)施加到垂直沟道、将低电压施加到作为擦除目标的擦除单元的字线、以及使不是擦除目标的一个或多个擦除单元的字线浮置来独立地擦除一个擦除目标。
在存储器块BLKa中,可根据存储器单元MC1至MC8的结构和特性来确定对存储器单元MC1至MC8进行编程的次序。例如,存储器控制器120可控制非易失性存储器装置110,使得存储器单元MC1至MC8按照从第一存储器单元MC1至第八存储器单元MC8的次序或者按照从第八存储器单元MC8至第一存储器单元MC1的次序被编程。编程(或编程操作)可表示非易失性存储器装置110执行以将数据写入存储器单元MC1至MC8的操作。
例如,存储器块BLKa的编程次序可以是固定的。在这种情况下,基于有效数据被写入存储器块BLKa的至少一个擦除单元中,即使存储器块BLKa的另一擦除单元被独立地擦除,数据也可被禁止被写入擦除的擦除单元中。例如,当有效数据被写入存储器块BLKa的至少一个擦除单元中时,存储器块BLKa的所有擦除单元的数据可被无效;在存储器块BLKa的所有擦除单元被擦除(或被设置为擦除状态)之后,存储器控制器120可将新数据写入存储器块BLKa中。
图77是示出非易失性存储器装置110的第一存储器芯片110_1至第四存储器芯片110_4的示例的示图。参照图1和图77,第一存储器芯片110_1至第四存储器芯片110_4中的每个可包括第一存储器块BLK1至第z存储器块BLKz。第一存储器块BLK1至第z BLKz中的每个可包括例如两个擦除单元EU。
在一个实施例中,随着分区的大小增加,外部主机装置执行分区的垃圾收集的开销可增加。为了减少外部主机装置的开销,存储器控制器120可将主机分区HZ和装置分区DZ分配给第一存储器芯片110_1至第四存储器芯片110_4的第一存储器块BLK1至第z存储器块BLKz的擦除单元EU。
在第一存储器芯片110_1至第四存储器芯片110_4中的每个中,存储器控制器120可选择一个(或至少一个)擦除单元以便分配给主机分区HZ。存储器控制器120可通知外部主机装置能够以主机分区为单元分配分区。外部主机装置开放的分区可被分配给主机分区HZ。外部主机装置可开放主机分区HZ中的分区,可执行垃圾收集,并且可重置分区。因为主机分区的大小HZ可小于装置分区的大小DZ,所以外部主机装置执行分区的垃圾收集的开销可减少。
在第一存储器芯片110_1至第四存储器芯片110_4中的每个中,存储器控制器120可选择要分配给装置分区DZ的一个(或至少一个)存储器块。如参照图76所述,当存储器块BLKa的擦除单元EU处于擦除状态时,允许将数据写入存储器块BLKa中。因此,在将数据写入属于一个装置分区DZ的一个主机分区HZ中的状态下,可禁止将数据写入处于擦除状态的另一主机分区HZ中。这可导致当外部主机装置意在开放空的主机分区HZ中的新分区时存储装置100不能够将数据写入分区中的问题。
为了防止以上问题,存储器控制器120可以以装置分区DZ为单元执行垃圾收集作为后台操作。存储器控制器120可通过执行垃圾收集作为后台操作来保证擦除状态的装置分区DZ。
例如,外部主机装置可开放主机分区HZ中的分区,并且可执行垃圾收集以保证空的主机分区HZ。装置分区DZ可包括两个或更多个主机分区HZ。存储装置100可执行垃圾收集以保证擦除状态的装置分区DZ。
在一个实施例中,主机分区HZ可包括第一存储器芯片110_1至第四存储器芯片110_4的不同擦除单元,并且因此,存储器控制器120可对外部主机装置访问第一存储器芯片110_1至第四存储器芯片110_4的主机分区HZ的请求执行并行或交织处理。
例如,在存储器控制器120通过彼此独立的通道与第一存储器芯片110_1至第四存储器芯片110_4连接的情况下,存储器控制器120可对外部主机装置访问第一存储器芯片110_1至第四存储器芯片110_4的主机分区HZ的请求执行并行处理。
在存储器控制器120通过共享通道与第一存储器芯片110_1至第四存储器芯片110_4连接的情况下,存储器控制器120可对外部主机装置访问第一存储器芯片110_1至第四存储器芯片110_4的主机分区HZ的请求执行交织处理。
在存储器控制器120通过第一共享通道与第一存储器芯片110_1和第二存储器芯片110_2连接并且通过第二共享通道与第三存储器芯片110_3和第四存储器芯片110_4连接的情况下,存储器控制器120可对外部主机装置访问主机分区HZ的请求执行并行和交织处理。
图78是示出存储装置100管理装置分区DZ和主机分区HZ的方法的示例的示图。参照图1和图78,在操作S4710中,存储器控制器120可将新分区分配在空闲主机分区HZ上。例如,响应于外部主机装置的开放分区请求或写入请求,存储器控制器120可将新分区分配在空闲主机分区HZ上。存储器控制器120可将其上分配有新分区的主机分区设置为繁忙主机分区。
在操作S4720中,基于外部主机装置重置分区,存储器控制器120可使繁忙主机分区无效。存储器控制器120可将无效的繁忙主机分区设置为无效主机分区。
在操作S4730中,存储器控制器120可擦除无效主机分区。例如,存储器控制器120可在空闲时间或根据期望或需要擦除无效主机分区。存储器控制器120可将主机分区设置为擦除主机分区。
在操作S4740中,存储器控制器120可基于装置分区中的所有主机分区是擦除主机分区来将主机分区分配给空闲主机分区。
图79A至图79F是示出存储装置100管理第一装置分区DZ1的处理的示例的示图。参照图1和图79A,第一装置分区DZ1可包括第一主机分区HZ1和第二主机分区HZ2。第一主机分区HZ1可以是空闲主机分区FZ。
基于外部主机装置的请求,存储器控制器120可将第十分区Z10分配给第二主机分区HZ2,并且可将新数据写入第二主机分区HZ2;在这种情况下,存储器控制器120可将第二主机分区HZ2设置为繁忙主机分区BZ。
参照图1和图79B,基于外部主机装置的请求,存储器控制器120可开放第一主机分区HZ1中的第十一分区Z11,并且可将新数据写入第十一分区Z11;在这种情况下,存储器控制器120可将第一主机分区HZ1设置为繁忙主机分区BZ。
参照图1和图79C,当存储器控制器120基于外部主机装置的请求重置第二主机分区HZ2的第十分区Z10时,存储器控制器120可将第二主机分区HZ2设置为无效主机分区IZ。
参照图1和图79D,当存储器控制器120擦除第二主机分区HZ2时,存储器控制器120可将第二主机分区HZ2设置为擦除主机区EZ。在一个实施例中,存储器控制器120可允许向空闲主机分区FZ分配新分区,但是可禁止向擦除主机分区EZ分配新分区。
参照图1和图79E,当存储器控制器120基于外部主机装置的请求重置第一主机分区HZ1的第十一分区Z11时,存储器控制器120可将第一主机分区HZ1设置为无效主机分区IZ。
参照图1和图79F,当存储器控制器120擦除第一主机分区HZ1时,第一装置分区DZ1的第一主机分区HZ1和第二主机分区HZ2两者都可被设置为擦除主机分区EZ。因此,存储器控制器120可将第一主机分区HZ1和第二主机分区HZ2中的每个设置为空闲主机分区FZ。
图80A示出外部主机装置以主机分区为单元执行垃圾收集的处理的示例。参照图1和图80A,第二装置分区DZ2的第一主机分区HZ1可以是繁忙主机分区BZ。第十一分区Z11可被分配给第二装置分区DZ2的第一主机分区HZ1。第二装置分区DZ2的第二主机分区HZ2可以是繁忙主机分区BZ。第十二分区Z12可被分配给第二装置分区DZ2的第二主机分区HZ2。第三装置分区DZ3的第一主机分区HZ1和第二主机分区HZ2中的每个可以是空闲主机分区FZ。
在一个实施例中,外部主机装置可在第三装置分区DZ3的第一主机分区HZ1中开放新分区。外部主机装置可执行垃圾收集,使得分配给第二装置分区DZ2的第一主机分区HZ1的第十一分区Z11的数据和分配给第二装置分区DZ2的第二主机分区HZ2的第十二分区Z12的数据被复制到分配在第三装置分区DZ3的第一主机分区HZ1上的新分区。当执行垃圾收集时,外部主机装置可保证第二装置分区DZ2的第一主机分区HZ1和第二主机分区HZ2作为能够分配新分区的容量。
存储装置100可擦除第二装置分区DZ2,使得第二装置分区DZ2的第一主机分区HZ1和第二主机分区HZ2中的每个被设置为空闲主机分区FZ。
图80B示出外部主机装置执行垃圾收集的另一示例。参照图1和图80B,第二装置分区DZ2的第一主机分区HZ1可以是繁忙主机分区BZ。第十一分区Z11可被分配给第二装置分区DZ2的第一主机分区HZ1。第二装置分区DZ2的第二主机分区HZ2可以是空闲主机分区FZ。
第三装置分区DZ3的第一主机分区HZ1可以是繁忙主机分区BZ。第十二分区Z12可被分配给第三装置分区DZ3的第一主机分区HZ1。第三装置分区DZ3的第二主机分区HZ2可以是空闲主机分区FZ。
在一个实施例中,外部主机装置可在第二装置分区DZ2的第二主机分区HZ2中开放新分区。外部主机装置可执行垃圾收集,使得分配给第二装置分区DZ2的第一主机分区HZ1的第十一分区Z11的数据和分配给第三装置分区DZ3的第一主机分区HZ1的第十二分区Z12的数据被复制到分配在第二装置分区DZ2的第二主机分区HZ2上的新分区。当垃圾收集被执行时,外部主机装置可保证第二装置分区DZ2的第一主机分区HZ1和第三装置分区DZ3的第一主机分区HZ1作为能够分配新分区的容量。
存储装置100可擦除第三装置分区DZ3,使得第三装置分区DZ3的第一主机分区HZ1和第二主机分区HZ2中的每个被设置为空闲主机分区FZ。
在一个实施例中,描述了基于装置分区DZ和主机分区HZ分配和管理分区的方法。然而,实施例不限于此。例如,存储装置100分配和管理分区的方法不限于上述装置分区DZ和主机分区HZ。
例如,基于外部主机装置需要或期望的性能(例如,外部主机装置意在开放的分区的需要或期望的性能),存储装置100可使用各种方案来分配装置分区DZ和对应的主机分区HZ。例如,当外部主机装置意在开放的分区的需要或期望的性能高时,存储装置100可通过针对第一存储器芯片110_1至第四存储器芯片110_4设置装置分区DZ和对应的主机分区HZ经由交织来规划性能的提高。
当外部主机装置意在开放的分区的需要或期望的性能低时,存储装置100可通过在至少一个非易失性存储器芯片的存储器块中开放装置分区DZ和对应的主机分区HZ或者在至少两个非易失性存储器芯片的存储器块中开放装置分区DZ和对应的主机分区HZ来提高分区管理的便利性或灵活性。可根据内部定义的策略,在存储装置100中动态地或自适应地改变一个装置分区DZ和对应的主机分区HZ到任何非易失性存储器芯片的任何存储器块(或擦除单元)的映射。
图81是示出存储装置100执行垃圾收集作为后台操作的示例的示图。参照图1和图81,第二装置分区DZ2的第一主机分区HZ1可以是无效主机分区IZ。第二装置分区DZ2的第二主机分区HZ2可以是繁忙主机分区BZ。第十一分区Z11可被分配给第二装置分区DZ2的第二主机分区HZ2。
第三装置分区DZ3的第一主机分区HZ1和第二主机分区HZ2中的每个可以是空闲主机分区FZ。
第四装置分区DZ4的第一主机分区HZ1可以是无效主机分区IZ。第四装置分区DZ4的第二主机分区HZ2可以是繁忙主机分区BZ。第十二分区Z12可被分配给第四装置分区DZ4的第二主机分区HZ2。
存储器控制器120可执行垃圾收集作为后台操作。例如,存储器控制器120可将第二装置分区DZ2的第二主机分区HZ2的数据复制到第三装置分区DZ3的第一主机分区HZ1。存储器控制器120可将第三装置分区DZ3的第一主机分区HZ1映射到第十一分区Z11。
存储器控制器120可将第四装置分区DZ4的第二主机分区HZ2的数据复制到第三装置分区DZ3的第二主机分区HZ2。存储器控制器120可将第三装置分区DZ3的第二主机分区HZ2映射到第十二分区Z12。
当垃圾收集被收集时,存储器控制器120可擦除第二装置分区DZ2和第四装置分区DZ4,并且可将第二装置分区DZ2的第一主机分区HZ1和第二主机分区HZ2以及第四装置分区DZ4的第一主机分区HZ1和第二主机分区HZ2设置为空闲主机分区。
图82是根据实施例的可应用存储装置的系统1000的示图。图82的系统1000可以是例如移动系统(诸如,便携式通信终端(例如,移动电话)、智能电话、平板个人计算机(PC)、可穿戴装置、医疗保健装置或物联网(IOT)装置)。然而,图82的系统1000不限于移动系统,并且根据实施例,系统1000可以是PC、膝上型计算机、服务器、媒体播放器或汽车装置(例如,导航装置)。
参照图82,系统1000可包括主处理器1100、存储器(例如,1200a和1200b)和存储装置(例如,1300a和1300b)。另外,系统1000可包括图像捕获装置1410、用户输入装置1420、传感器1430、通信装置1440、显示器1450、扬声器1460、电源1470和连接接口1480中的至少一个。
主处理器1100可控制系统1000的所有操作,更具体地,包括在系统1000中的其他组件的操作。主处理器1100可被实现为通用处理器、专用处理器或应用处理器。
主处理器1100可包括至少一个CPU核1110,并且还包括被配置为控制存储器1200a和1200b和/或存储装置1300a和1300b的控制器1120。在一些实施例中,主处理器1100还可包括加速器1130,加速器1130是用于高速数据操作(诸如,人工智能(AI)数据操作)的专用电路。加速器1130可包括图形处理器(GPU)、神经处理器(NPU)和/或数据处理单器(DPU),并且可被实现为与主处理器1100的其他组件物理地分离的芯片。
存储器1200a和1200b可用作系统1000的主存储器装置。尽管存储器1200a和1200b中的每个可包括易失性存储器(诸如,静态随机存取存储器(SRAM)和/或动态RAM(DRAM)),但是存储器1200a和1200b中的每个可包括非易失性存储器(诸如,闪存、相变RAM(PRAM)和/或电阻式RAM(RRAM))。存储器1200a和1200b可与主处理器1100实现在同一封装件中。
存储装置1300a和1300b可用作被配置为无论是否向其供电都存储数据的非易失性存储装置,并且具有比存储器1200a和1200b的存储容量大的存储容量。存储装置1300a和1300b可分别包括存储控制器(STRG CTRL)1310a和1310b以及NVM(非易失性存储器)1320a和1320b,NVM1320a和1320b被配置为经由存储控制器1310a和1310b的控制来存储数据。尽管NVM 1320a和1320b可包括具有二维(2D)结构或三维(3D)V-NAND结构的闪存,但是NVM1320a和1320b可包括其他类型的NVM(诸如,PRAM和/或RRAM)。
存储装置1300a和1300b可与主处理器1100物理地分离并且包括在系统1000中或者与主处理器1100实现在同一封装件中。另外,存储装置1300a和1300b可具有各种类型的固态装置(SSD)或存储卡,并且可通过接口(诸如。下面描述的连接接口1480)与系统1000的其他组件可移除地组合。存储装置1300a和1300b可以是应用标准协议(诸如,通用闪存存储(UFS)、嵌入式多媒体卡(eMMC)或非易失性存储器快速(NVMe))的装置,但不限于此。
图像捕获装置1410可捕获静止图像或运动图像。图像捕获装置1410可包括相机、摄像机和/或网络摄像头。
用户输入装置1420可接收由系统1000的用户输入的各种类型的数据,并且包括触摸板、键区、键盘、鼠标和/或麦克风。
传感器1430可检测可从系统1000的外部获得的各种类型的物理量,并将检测到的物理量转换为电信号。传感器1430可包括温度传感器、压力传感器、照度传感器、位置传感器、加速度传感器、生物传感器和/或陀螺仪传感器。
根据实施例,通信装置1440可根据任何通信协议在系统1000外部的其他装置之间发送和接收信号。通信装置1440可包括天线、收发器和/或调制解调器。
显示器1450和扬声器1460可用作输出装置,其被配置为分别将觉信息和听觉信息输出到系统1000的用户。
电源1470可适当地转换从嵌入在系统1000中的电池和/或外部电源供应的电力,并且将转换的电力供应给系统1000的每个组件。
连接接口1480可提供系统1000与外部装置之间的连接,外部装置连接到系统1000并且能够将数据发送到系统1000和从系统1000接收数据。连接接口1480可使用任何接口方案(诸如,高级技术附件(ATA)、串行ATA(SATA)、外部SATA(e-SATA)、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)、外围组件互连(PCI)、PCI快速(PCIe)、NVMe、IEEE 1394、通用串行总线(USB)接口、安全数字(SD)卡接口、多媒体卡(MMC)接口、eMMC接口、UFS接口、嵌入式UFS(eUFS)接口和紧凑型闪存(CF)卡接口)来实现。
在一个实施例中,参照图1至图81描述的存储装置100可用存储装置1300a和1300b中的一个来实现。存储装置1300a和1300b中的至少一个可以是分区存储装置。存储装置1300a和1300b中的至少一个可包括分配给分区写入的逻辑单元和分配给随机写入的逻辑单元。存储装置1300a和1300b中的至少一个可包括参照图4描述的分区分配器310、多级映射表管理器320、分区恢复管理器330、分区备份管理器340、分区迁移管理器350、分区预取管理器360、分区复制管理器370、分区垃圾收集管理器380以及读取和写入管理器390。存储装置1300a和1300b中的至少一个可使用多个映射表,并且可执行以下操作:分区分配(或开放)、分区恢复、分区备份、区域迁移、分区预取、分区复制和分区垃圾收集。
主处理器1100可被配置为执行操作系统和应用。在主处理器1100中执行的操作系统或应用可在属于存储装置1300a和1300b中的至少一个的分区写入的逻辑单元中开放分区。主处理器1100可对开放的分区执行顺序写入或随机写入。主处理器1100可对开放分区执行垃圾收集。主处理器1100以及存储装置1300a和1300b中的至少一个可选择性地执行参照图1至图81描述的一个或更多个操作。
在以上实施例中,使用术语“第一”、“第二”、“第三”等来描述根据本公开的组件。然而,术语“第一”、“第二”、“第三”等可用于将组件彼此区分开,并且不限制本公开。例如,术语“第一”、“第二”、“第三”等不涉及任何形式的次序或数字含义。
在以上实施例中,使用框来引用根据本公开的实施例的组件。框可以是实现的硬件装置(诸如,集成电路(IC)、专用IC(ASIC)、现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)、硬件装置中驱动的固件、软件(诸如,应用)、或硬件装置和软件的组合)。此外,框可包括利用集成电路中的半导体元件实现的电路,或者注册为知识产权(IP)的电路。
根据本公开,可以用执行顺序写入的分区来管理非易失性存储器装置的存储空间,并且提供关于分区分配、分区映射表、分区恢复、分区备份、分区迁移、分区预取和分区垃圾收集的各种算法。因此,可提供具有提高的操作速度的存储装置及其操作方法。
虽然已经参照本公开的实施例描述了本公开,但是对于本领域普通技术人员将清楚的是,在不脱离如所附权利要求中阐述的本公开的精神和范围的情况下,可对其进行各种改变和修改。
Claims (20)
1.一种存储装置,包括:
非易失性存储器装置,包括多个存储器单元;以及
控制器,被配置为对包括在所述多个存储器单元中的至少一个写入单元执行写入操作,并且对包括在所述多个存储器单元中的至少一个擦除单元执行擦除操作,
其中,控制器还被配置为:
基于从外部主机装置接收到的请求将多个分区分配给非易失性存储器装置的存储空间,
基于分区映射表从包括在所述多个存储器单元中的多个擦除单元之中选择两个或更多个擦除单元以分配给所述多个分区中的每个,
固定地且顺序地管理写入所述多个分区中的数据的逻辑地址,
其中,非易失性存储器装置包括多个存储器芯片,
其中,所述多个存储器芯片中的每个存储器芯片包括多个存储器块,其中,所述多个存储器块中的每个存储器块包括至少两个擦除单元,并且
其中,控制器还被配置为从每个存储器块选择至少一个擦除单元以分配给分区。
2.根据权利要求1所述的存储装置,其中,控制器还被配置为选择每个存储器芯片中的至少一个存储器块以作为装置分区进行管理。
3.根据权利要求2所述的存储装置,其中,基于从外部主机装置接收到的垃圾收集请求来执行针对所述多个分区的垃圾收集。
4.根据权利要求2所述的存储装置,其中,针对所述多个分区的垃圾收集由控制器作为后台操作来执行。
5.根据权利要求2所述的存储装置,其中,装置分区包括两个或更多个分区。
6.根据权利要求5所述的存储装置,其中,控制器还被配置为将所述分区分配为繁忙分区。
7.根据权利要求6所述的存储装置,其中,基于所述分区基于从外部主机装置接收到的重置请求而被重置,当包括所述分区的装置分区中包括的所有分区处于重置状态时,控制器还被配置为将所有分区分配为空闲分区。
8.根据权利要求6所述的存储装置,其中,控制器被配置为擦除包括在具有复位状态的分区中的擦除单元。
9.根据权利要求6所述的存储装置,其中,基于装置分区仅包括具有重置状态的分区,控制器还被配置为将装置分区分配为空闲装置分区。
10.根据权利要求6所述的存储装置,其中,控制器还被配置为通过执行垃圾收集来保证仅包括具有重置状态的分区的空闲装置分区。
11.根据权利要求1所述的存储装置,其中,控制器包括内部缓冲器,内部缓冲器包括分区缓冲器,
其中,基于针对顺序的逻辑地址的读取由外部主机装置请求,控制器还被配置为:
从非易失性存储器装置读取与顺序的逻辑地址对应的第一数据;并且
将第一数据输出到外部主机装置,并且
其中,基于针对顺序的逻辑地址的读取被请求,控制器还被配置为:通过不从外部主机装置接收后续的读取请求的情况下从非易失性存储器装置读取与后续的顺序的逻辑地址对应的第二数据并且将第二数据存储在内部缓冲器中来执行预取操作。
12.根据权利要求11所述的存储装置,其中,基于顺序的逻辑地址、后续的顺序的逻辑地址的属于所述多个分区之中的第一分区的一些逻辑地址、以及后续的顺序的逻辑地址的属于所述多个分区中之中的第二分区的剩余逻辑地址,控制器还被配置为:基于与第一分区对应的第一特征和与第二分区对应的第二特征来从非易失性存储器装置读取与剩余逻辑地址对应的第二数据。
13.根据权利要求12所述的存储装置,其中,基于第一特征与第二特征相同,控制器还被配置为从非易失性存储器装置读取与剩余逻辑地址对应的第二数据,并且
其中,基于第一特征不同于第二特征,控制器还被配置为:不从非易失性存储器装置读取与剩余逻辑地址对应的第二数据。
14.根据权利要求12所述的存储装置,其中,基于第二分区是间隙分区,控制器还被配置为:基于第一特征和与第三分区对应的第三特征来从非易失性存储器装置读取与第三分区的逻辑地址对应的第三数据,第三分区与第二分区相连续。
15.根据权利要求12所述的存储装置,其中,第一特征包括第一分区的单元类型,并且
其中,第二特征包括第二分区的单元类型。
16.根据权利要求12所述的存储装置,其中,控制器还被配置为基于与所述多个分区对应的更新频率来将温度指派给所述多个分区中的每个分区,
其中,第一特征包括第一分区的温度,并且
其中,第二特征包括第二分区的温度。
17.根据权利要求12所述的存储装置,其中,控制器还被配置为在每个分区中使用相同的流标识符,
其中,第一特征包括与第一分区对应的第一流标识符,并且
其中,第二特征包括与第二分区对应的第二流标识符。
18.根据权利要求11至权利要求17中的任一项所述的存储装置,其中,控制器还被配置为基于从外部主机装置接收到的针对顺序的逻辑地址的读取请求的数量大于或等于阈值来确定针对顺序的逻辑地址的读取被请求。
19.一种存储装置,包括:
非易失性存储器装置,包括多个存储器单元;以及
控制器,被配置为对包括在所述多个存储器单元中的至少一个写入单元执行写入操作,并且对包括在所述多个存储器单元中的至少一个擦除单元执行擦除操作,
其中,控制器还被配置为基于从外部主机装置接收到的请求来将多个分区分配给非易失性存储器装置的存储空间,
其中,控制器还被配置为:
基于分区映射表在包括在所述多个存储器单元中的多个擦除单元之中选择两个或更多个擦除单元以分配给所述多个分区中的每个,
固定地且顺序地管理写入所述多个分区中的数据的逻辑地址,
其中,非易失性存储器装置包括多个存储器芯片,
其中,所述多个存储器芯片中的每个存储器芯片包括多个存储器块,其中,所述多个存储器块中的每个存储器块包括两个或更多个擦除单元,其中,控制器还被配置为从每个存储器块选择至少一个擦除单元以分配给分区,
其中,基于从外部主机装置接收到的垃圾收集请求来执行针对所述多个分区的垃圾收集,并且
其中,针对所述多个分区的垃圾收集由控制器作为后台操作来执行。
20.一种存储装置的操作方法,存储装置包括非易失性存储器装置和控制器,所述方法包括:
由控制器基于分区映射表来分配多个分区,所述多个分区包括包含在非易失性存储器装置中的两个或更多个擦除单元;
由控制器基于从外部主机装置接收到的请求对所述多个分区执行垃圾收集;
由控制器在不接收外部主机装置的新请求的情况下将针对装置分区的垃圾收集作为后台操作来执行,
其中,装置分区之中的每个装置分区包括两个或更多个分区。
Applications Claiming Priority (16)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2022-0109942 | 2022-08-31 | ||
KR10-2022-0149964 | 2022-11-10 | ||
KR10-2023-0005033 | 2023-01-12 | ||
KR10-2023-0005048 | 2023-01-12 | ||
KR10-2023-0005050 | 2023-01-12 | ||
KR10-2023-0005040 | 2023-01-12 | ||
KR10-2023-0004994 | 2023-01-12 | ||
KR10-2023-0005043 | 2023-01-12 | ||
KR1020230005041A KR20240030950A (ko) | 2022-08-31 | 2023-01-12 | 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법 |
KR10-2023-0005053 | 2023-01-12 | ||
KR10-2023-0005058 | 2023-01-12 | ||
KR10-2023-0005046 | 2023-01-12 | ||
KR10-2023-0005041 | 2023-01-12 | ||
KR10-2023-0004966 | 2023-01-12 | ||
KR10-2023-0005044 | 2023-01-12 | ||
KR10-2023-0005013 | 2023-01-12 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117631987A true CN117631987A (zh) | 2024-03-01 |
Family
ID=90036564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311113315.2A Pending CN117631987A (zh) | 2022-08-31 | 2023-08-30 | 包括非易失性存储器装置的存储装置及其操作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117631987A (zh) |
-
2023
- 2023-08-30 CN CN202311113315.2A patent/CN117631987A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12013779B2 (en) | Storage system having a host directly manage physical data locations of storage device | |
US11768610B2 (en) | Storage system having a host that manages physical data locations of a storage device | |
US20130173954A1 (en) | Method of managing bad storage region of memory device and storage device using the method | |
US20190114255A1 (en) | Handling of Unaligned Sequential Writes | |
KR20180011665A (ko) | 데이터 저장 장치 및 이를 포함하는 컴퓨팅 시스템 | |
CN117631992A (zh) | 包括非易失性存储器装置的存储装置及其操作方法 | |
TW201935232A (zh) | 記憶體管理方法及使用所述方法的儲存控制器 | |
EP4332970A1 (en) | Storage device including nonvolatile memory device and operating method of storage device | |
EP4332968A2 (en) | Storage device including nonvolatile memory device and operating method of storage device | |
EP4332971A2 (en) | Storage device including nonvolatile memory device and operating method of storage device | |
EP4332972A1 (en) | Storage device including nonvolatile memory device and operating method of storage device | |
EP4332969A1 (en) | Storage device including nonvolatile memory device and operating method of storage device | |
EP4343767A2 (en) | Storage device including nonvolatile memory device and operating method of storage device | |
CN117631987A (zh) | 包括非易失性存储器装置的存储装置及其操作方法 | |
KR20240030956A (ko) | 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법 | |
US20240070067A1 (en) | Storage device including nonvolatile memory device and operating method of storage device | |
US20240078027A1 (en) | Storage device including nonvolatile memory device and operating method of storage device | |
KR102697634B1 (ko) | 스토리지 장치 및 전자 시스템 | |
CN116521059A (zh) | 存储装置及存储装置的操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |