CN112597068A - 主机系统及其操作方法、包括该主机系统的数据处理系统 - Google Patents
主机系统及其操作方法、包括该主机系统的数据处理系统 Download PDFInfo
- Publication number
- CN112597068A CN112597068A CN202010626362.7A CN202010626362A CN112597068A CN 112597068 A CN112597068 A CN 112597068A CN 202010626362 A CN202010626362 A CN 202010626362A CN 112597068 A CN112597068 A CN 112597068A
- Authority
- CN
- China
- Prior art keywords
- block
- blocks
- free
- erase
- count value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims description 44
- 238000011017 operating method Methods 0.000 title description 2
- 238000013519 translation Methods 0.000 claims abstract description 17
- 238000000034 method Methods 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 7
- 239000007787 solid Substances 0.000 claims description 3
- 230000015654 memory Effects 0.000 description 34
- 238000010586 diagram Methods 0.000 description 17
- 238000007726 management method Methods 0.000 description 11
- 238000013403 standard screening design Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 239000012212 insulator Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005442 molecular electronic Methods 0.000 description 1
- 239000002071 nanotube Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
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)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
一种被配置为与储存系统通信的主机系统,其包括:被配置为管理储存系统中包括的多个块的主机闪存转换层(FTL),其中主机FTL包括块分配模块,块分配模块被配置为基于多个块中的空闲块的擦除计数值而生成指示空闲块的优先级的优先级信息,并且其中主机FTL被配置为基于优先级信息为数据写入操作分配空闲块中的具有最低擦除计数值的空闲块;计数电路,其被配置为对对多个块中的每一个执行的擦除操作的数目进行计数;以及接口电路,其被配置为将块地址连同对储存系统的访问请求一起发送到储存系统,块地址指示被分配的空闲块的位置。
Description
相关申请的交叉引用
本申请基于并要求于2019年10月2日在韩国知识产权局提交的韩国专利申请No.10-2019-0122655的优先权,其全部内容通过引用并入本文。
技术领域
本公开涉及主机系统,更具体地,涉及被配置为管理空闲块的分配的主机系统、包括该主机系统的数据处理系统、以及操作该主机系统的方法。
背景技术
基于闪存装置的储存系统的示例可以是固态驱动器(SSD)。用于储存系统(诸如,SSD)的接口可包括串行高级技术附件(SATA)、外围组件互连快速(PCIe)和串行附接小型计算机系统接口(SCSI)(SAS)。此外,已经提出了基于现有技术的PCIe总线的接口,诸如,非易失性存储器快速(NVMe)。
SSD的示例可以是开放信道(open-channel)SSD。在开放信道SSD的情况下,可以在主机系统侧执行先前在SSD中执行的各种功能,例如,地址转换操作。作为示例,当主机系统包括闪存转换层(FTL)时,主机系统可以直接执行各种管理操作。在这种情况下,还没有提出在开放信道SSD环境中由主机系统有效地执行损耗均衡(wear-leveling)处理的方法。因此,开放信道SSD的寿命可能降低,从而导致数据可靠性劣化。
发明内容
提供了一种主机系统、包括该主机系统的数据处理系统、以及操作该主机系统的方法,该主机系统可以有效地执行损耗均衡操作以增加储存系统的寿命并提高数据可靠性。
根据实施例,一种被配置为与储存系统通信的主机系统包括:主机闪存转换层(FTL),其被配置为管理所述储存系统中包括的多个块,其中所述主机FTL包括块分配模块,所述块分配模块被配置为基于所述多个块中的空闲块的擦除计数值来生成指示所述空闲块的优先级的优先级信息,并且其中所述主机FTL被配置为基于所述优先级信息为数据写入操作分配所述空闲块中的具有最低擦除计数值的空闲块;计数电路,其被配置为对对所述多个块中的每一个执行的擦除操作的数目进行计数;以及接口电路,其被配置为将块地址连同对所述储存系统的访问请求一起发送到所述储存系统,所述块地址指示所述被分配的空闲块的位置。
根据实施例,一种操作被配置为与包括多个块的储存系统通信的主机系统的方法包括:对对所述多个块执行的擦除操作的数目进行计数;基于所述多个块中的第一空闲块至第(N-1)空闲块的擦除计数值来生成排序数据结构,其中N是大于或等于2的整数;通过控制所述储存系统对所述多个块中的块执行擦除操作来生成第N空闲块;基于所述第N空闲块的第N擦除计数值来更新所述排序数据结构;以及根据更新后的排序数据结构为数据写入操作分配第一空闲块至第N空闲块中的具有最低擦除计数值的空闲块。
根据实施例,一种包括储存系统的数据处理系统包括:储存装置,其包括至少一个闪存装置,其中所述至少一个闪存装置中的每个闪存装置包括多个块;以及控制器,其包括第一接口电路,所述第一接口电路被配置为从外部装置接收对所述多个块的访问请求和对所述多个块的擦除请求,所述控制器被配置为基于所述访问请求来控制对所述多个块的访问操作,并且基于所述擦除请求来控制对所述多个块的擦除操作,其中,基于响应于所述擦除请求在擦除所述多个块中的第二块之前擦除所述多个块中的第一块,在将所述第二块改变为第二空闲块之前将所述第一块改变为第一空闲块,并且基于所述第一块的第一擦除计数值高于所述第二块的第二擦除计数值,在所述第一块之前为数据写入操作分配所述第二块。
附图说明
从以下结合附图的详细描述中,将更清楚地理解本公开的实施例,在附图中:
图1是根据实施例的数据处理系统的框图;
图2是根据实施例的主机系统的示例的框图;
图3和图4是根据实施例的操作数据处理系统的方法的示例的流程图;
图5是根据实施例的数据处理系统的操作的示例的概念图;
图6和图7示出了根据实施例的被配置为分配用于写入数据的空闲块的数据结构的示例;
图8是根据实施例的主机系统的示例的框图;
图9是根据实施例的数据处理系统的操作的示例的概念图;
图10是根据实施例的数据处理系统的框图;
图11是根据实施例的数据处理系统的框图;以及
图12是根据实施例的包括服务器系统的网络系统的框图。
具体实施方式
在下文中,将参照附图详细描述实施例。
图1是根据实施例的数据处理系统10的框图。
参照图1,数据处理系统10可以包括主机系统100和储存系统200。此外,储存系统200可以包括控制器210和储存装置220。主机系统100可以向储存系统200提供数据写入请求或数据读取请求。另外,响应于来自主机系统100的数据擦除请求,储存系统200可以对关于由主机系统100指示的区域的数据执行擦除操作。可以以各种单位执行擦除操作。在示例中,储存系统200可以包括多个块(例如,存储器块),并且可以以由主机系统100指示的块为单位执行擦除操作。
储存系统200可以包括被配置为响应于来自主机系统100的请求而存储数据的储存介质。作为示例,储存系统200可以包括至少一个固态驱动器(SSD)。当储存系统200包括SSD时,储存装置220可以包括被配置为以非易失性方式存储数据的多个闪存装置,例如NAND闪存芯片。在实施例中,储存装置220可以对应于一个闪存装置。在实施例中,储存装置220可以包括存储卡,该存储卡包括至少一个闪存芯片。
当储存系统200包括闪存装置时,闪存装置可以包括二维(2D)NAND存储器阵列或三维(3D)(或竖直)NAND(V-NAND)存储器阵列。3D存储器单元阵列可以单片地形成在电路的至少一个物理级(physical level)中,该电路与具有设置在硅衬底上方的有源区的存储器单元的阵列的操作或存储器单元的操作相关联,其中该相关联的电路可以位于硅衬底上方或硅衬底内。术语“单片”可以意味着3D存储器单元阵列的每级的层直接沉积在3D存储器单元阵列的每个下面的级的层上。
在实施例中,3D存储器单元阵列可以包括竖直NAND串,其中至少一个存储器单元在竖直方向上位于另一存储器单元上。该至少一个存储器单元可以包括电荷捕获层。
以下专利文献(其以引用的方式并入本文中)公开了用于3D存储器单元阵列的合适配置,其中3D存储器单元阵列被配置在多个级处,其中字线和/或位线在级之间共享:美国专利No.7,679,133;No.8,553,466;No.8,654,587;No.8,559,235;以及美国专利公开No.2011/0233648。
作为另一个示例,储存系统200可以包括各种其他种类的存储器。例如,储存系统200可以包括非易失性存储器。非易失性存储器可以包括各种种类的存储器,诸如,磁随机存取存储器(MRAM)、自旋转移矩MRAM、导电桥RAM(CBRAM)、铁电RAM(FeRAM)、相变RAM(PRAM)、电阻RAM(RRAM)、纳米管RAM、聚合物RAM(PoRAM)、纳米浮栅存储器(NFGM)、全息存储器、分子电子存储器、或绝缘体电阻变化存储器。
主机系统100可以通过各种接口与储存系统200通信。根据实施例,主机系统100可以通过各种接口协议中的一种与储存系统200通信,所述各种接口协议诸如通用串行总线(USB)协议、多媒体卡(MMC)协议、外围组件互连快速(PCI-E)协议、高级技术附件(ATA)协议、串行ATA(SATA)协议、并行ATA(PATA)协议、小型计算机系统接口(SCSI)协议、增强型小型装置接口(ESDI)协议、以及智能驱动电子(IDE)协议。此外,非易失性存储器快速(NVMe)可以用作针对储存系统200(诸如,SSD)进行优化的接口,并且NVMe接口可以应用于根据实施例的数据处理系统10。
作为储存系统200的示例,储存系统200可以包括开放信道SSD。在开放信道SSD中,主机系统100中可以包括闪存转换层(FTL)110。因此,主机系统100可以对储存系统200执行各种管理操作。作为示例,主机系统100可以执行逻辑地址和指示将要存储实际数据的位置的物理地址之间的转换操作,并且主机系统100可以向储存系统200提供物理地址并访问数据。FTL 110可以设置在主机系统100侧,并且可以被称作主机FTL。
根据实施例,主机系统100可以包括第一接口电路130以及FTL110。此外,控制器210可以包括第二接口电路211。由于第一接口电路130和第二接口电路211之间的通信,储存装置220可以响应于来自主机系统100的请求而执行存储器操作。作为示例,储存装置220可以以由主机系统100指示的块为单位执行擦除操作。随后可以将执行了擦除操作的块分配为在数据写入操作中使用的空闲块。作为示例,由于垃圾收集操作,存储在多个块中的有效数据可以被移动到相对小数量的空闲块,并且可以对该多个块执行擦除操作,因此,储存装置220可以确保相对大数量的空闲块。
可以对储存装置220中包括的块频繁地执行擦除操作。随着擦除操作的数目增加,执行了擦除操作的块的寿命可能减少,并且存储在该块中的数据的可靠性可能比存储在执行了少量擦除操作的块中的数据低。当特定块被频繁擦除并且数据被写入到被频繁擦除的块时,写入的数据可能具有低可靠性。此外,当数据被写入到特定块时,特定块可以极有可能被再次擦除。因此,特定块的寿命可能进一步减少,从而减少储存系统200的寿命。
主机系统100可以对储存系统200执行损耗均衡操作,并且均匀地管理储存装置220中包括的块的损耗级别。因此,可以增加储存系统200的寿命。作为示例,损耗均衡操作可以包括管理在数据写入操作中使用的块的分配的操作。根据实施例,主机系统100可以基于储存装置220中包括的块的擦除计数值的确认结果来控制分配块(例如,空闲块)的操作。
根据实施例,主机系统100可以包括块分配模块111。当与块的分配相关的操作由软件控制时,块分配模块111可以被包括在FTL110中。此外,主机系统100还可以包括计数电路120,计数电路120被配置为对储存装置220中包括的块的擦除计数值进行计数。
主机系统100和储存系统200可以发送和接收与块的分配有关的各种信息。第一接口电路130和第二接口电路211可以通过诸如NVMe接口的各种接口来发送和接收各种信息。在操作的示例中,储存系统200可以在初始化处理期间将指示储存系统200中包括的块的数量和位置的块信息Info_BLK发送到主机系统100。此外,在诸如数据写入操作的访问处理期间,主机系统100可以将访问请求Req_Acc发送到储存系统200,并且还可以将指示为数据写入操作分配的空闲块的块地址ADD_BLK发送到储存系统200。
计数电路120可以对储存系统200中包括的多个块中的每个块的擦除计数值进行计数。作为示例,垃圾收集操作可以在主机系统100的控制下执行。在垃圾收集操作期间,存储在储存系统200中包括的特定块(例如,第一块)中的有效数据可以被移动到另一个块。当对第一块执行擦除操作时,第一块可以被改变为空闲块。在这种情况下,计数电路120可以增加第一块的擦除计数值。
当为数据写入操作分配空闲块时,块分配模块111可以基于计数电路120的擦除计数值来控制块的分配顺序。作为示例,块分配模块111可以参考储存系统200中包括的多个块中的空闲块的擦除计数值,并且优先地为数据写入操作分配具有相对低的擦除计数值的空闲块。为此,块分配模块111可以基于擦除计数值对空闲块执行排序操作,并且可以通过基于多个空闲块的擦除计数值管理排序数据结构来执行排序操作。排序数据结构可以基于各种类型的数据管理操作。作为示例,可以应用基于最小堆的数据结构,其中具有较低擦除计数值的空闲块具有较高的优先级。
在示例中,当为数据写入操作分配空闲块时,可以基于上述排序数据结构来确定空闲块的分配优先级。块分配模块111可以优先地为数据写入操作分配具有最低擦除计数值的空闲块。当对空闲块执行数据写入操作时,存储在执行数据写入操作的块中的有效数据可以被移动到之后的另一个块,并且相应的块可以极有可能被擦除。因此,可以使多个块的擦除计数的数目相等或大体上相等。因此,可以防止特定块的擦除计数的数目过度增加,因此,可以防止一些块被处理为坏块,或者可以防止可靠性劣化。
当如上所述选择了要为数据写入操作分配的空闲块时,主机系统100可以将指示选择的块的块地址ADD_BLK发送到储存系统200。作为示例,FTL 110可以包括被配置为将逻辑地址转换成物理地址的转换模块,并且转换模块可以生成指示选择的块的块地址ADD_BLK。
当在开放信道SSD的环境中在不利用擦除计数值的情况下为数据写入操作首先分配第一产生的空闲块时,可以极有可能为数据写入操作首先分配具有高擦除计数值的空闲块。在这种情况下,在开放信道SSD的损耗均衡操作中可能招致相对大的成本。相反,根据实施例,可以在主机系统100侧动态地管理多个块的擦除计数值,并且可以基于擦除计数值来管理空闲块的排序数据结构,因此,可以控制空闲块的分配。结果,主机系统100可以动态地对储存系统200执行损耗均衡操作。另外,随着储存系统200的容量增加,管理多个块的擦除计数值的操作可以对应于管理大数据的操作。在实施例中,由于可以在具有相对大的资源的主机系统100侧控制根据上述实施例的操作,所以可以有效地执行损耗均衡操作。
尽管图1示出了主机系统100对一个SSD执行损耗均衡操作的示例,但是主机系统100可以对多个SSD执行根据上述实施例的损耗均衡操作。根据实施例,块分配模块111可以针对多个SSD共同实现,或者针对多个SSD中的每一个分别实现,因此,可以以SSD为单位分别管理块分配操作。
图2是根据实施例的主机系统300的示例的框图。图2示出了对储存系统中包括的N个块执行损耗均衡操作的示例。
参照图2,主机系统300可以包括块分配器310、计数电路320和请求发生器330。此外,块分配器310可以包括空闲块确定器311、计数更新控制器312和空闲块排序器313。此外,计数电路320可以包括第一计数器321_1至第N计数器321_N,第一计数器321_1至第N计数器321_N被配置为对储存系统的N个块(例如,第一块至第N块)的擦除计数值进行计数。
由图2所示的组件中的块分配器310执行的功能可以利用硬件、软件或其组合来实现。也就是说,尽管在图2中将空闲块确定器311、计数更新控制器312和空闲块排序器313示为分离的硬件配置,但是这些组件中的一些可以利用包括程序的软件模块来实现。
块分配器310可以接收指示与多个块中的空闲块对应的块的第一信息Info_FB,并且接收指示要被擦除的块的第二信息Info_E。可以使用各种方法来生成第一信息Info_FB和第二信息Info_E。在示例中,当主机系统300正在控制储存系统时,可以使用各种管理操作来确定关于当前处于空闲块状态的块的信息。另外,当向储存系统提供擦除请求时,可以确定关于要被擦除的块的信息,并且可以基于所确定的信息在主机系统300中生成第一信息Info_FB和第二信息Info_E。
另外,块分配器310可以向计数电路320提供用于增加要被擦除的块的擦除计数值的控制信号Ctrl,并且从计数电路320接收指示第一块到第N块的擦除计数值的第三信息Info_cnt。作为示例,计数更新控制器312可以基于指示要被擦除的块的第二信息Info_E来生成控制信号Ctrl,并且控制计数电路320。
空闲块确定器311可以基于第一信息Info_FB来确定可以在数据写入操作期间分配的空闲块,并且提供关于与空闲块对应的块的信息。空闲块排序器313可以生成第四信息Info_A,第四信息Info_A指示通过基于空闲块的擦除计数值对空闲块进行排序而获得的结果,并且第四信息Info_A可以包括关于要被优先分配的块的信息。请求发生器330可以向储存系统提供用于存储器操作(诸如,数据写入操作和数据读取操作)的访问请求Req_Acc,并且还可以输出指示要被访问的块的位置的块地址ADD_BLK。根据上述实施例,可以基于第四信息Info_A来选择要访问的空闲块或者要向其写入数据的空闲块。作为示例,可以输出指示多个空闲块中的具有最低擦除计数值的空闲块的块地址ADD_BLK。
虽然本实施例示出了请求发生器330基于第四信息Info_A来选择要为数据写入操作分配的空闲块的示例,但是本公开不限于此。作为示例,空闲块排序器313可以基于包括在其中的排序数据结构来确定关于要被优先分配的空闲块的信息。主机系统300可以被实现为使得空闲块排序器313可以直接向请求发生器330提供要为数据写入操作分配的空闲块的地址。在实施例中,主机系统300可以被实现为使得主机FTL包括被配置为生成物理地址的转换模块,并且转换模块生成指示基于第四信息Info_A选择的空闲块的块地址、并向请求发生器330提供块地址。
图3和图4是示出根据实施例的操作数据处理系统的方法的流程图。根据实施例,数据处理系统可以包括主机系统和储存系统。在实施例中,图3和图4的操作可以由数据处理系统10、数据处理系统500、数据处理系统600、或数据处理系统的任何其他实施例的一个或多个元件来执行。
参照图3,在操作S11处,主机系统可以控制对储存系统的数据访问和对块的擦除操作,并且每当储存系统中包括的多个块被擦除时,主机系统可以执行计数操作,并且主机系统可以确认由于计数操作导致的多个块的擦除计数值。此外,在操作S12处,主机系统可以由于各种操作(诸如,垃圾收集操作)而提供对块的擦除请求,并且产生新的空闲块。此外,在操作S13处,可以确认新的空闲块的擦除计数值。
在操作S14处,主机系统可以基于空闲块的擦除计数值来管理空闲块的排序数据结构以管理空闲块的分配顺序,并且可以由于新的空闲块的产生而更新排序数据结构。作为示例,可以基于新的空闲块的擦除计数值来不同地配置排序数据结构,并且要为数据写入操作分配的空闲块的优先级可以根据更新后的排序数据结构而变化。可以基于更新后的排序数据结构来执行分配随后要被用于写入数据的新的空闲块的操作。在这种情况下,在操作S15处,可以优先为数据写入操作分配多个空闲块中的具有最小擦除计数值的空闲块。
图4示出了对第一块和第二块的分配操作的示例。参照图4,主机系统可以请求对储存系统中包括的第一块的擦除操作,因此,在操作S21处,储存系统可以擦除第一块并产生空闲块。此外,在操作S22处,主机系统可以在对第一块的擦除操作期间更新与第一块对应的擦除计数值。在擦除第一块之后,主机系统可以请求对储存系统中包括的第二块的擦除操作,并且在操作S23处,储存系统可以擦除第二块并产生空闲块,并且在操作S24处,主机系统可以更新与第二块对应的擦除计数值。
此后,当为数据写入操作分配新的空闲块时,可以将第一块的擦除计数值与第二块的擦除计数值进行比较,并且在操作S25处可以确认晚于第一块作为空闲块产生的第二块的擦除计数值低于第一块的擦除计数值。因此,在操作S26处,主机系统可以在第一块之前为数据写入操作分配第二块。
图5是根据实施例的数据处理系统的操作的示例的概念图。图5示出了主机系统中包括的主机FTL和可以是储存系统的示例的开放信道SSD(OC-SSD)。在实施例中,图5的操作可以由数据处理系统10、数据处理系统500、数据处理系统600、或数据处理系统的任何其他实施例的一个或多个元件来执行。
首先,在操作①处,可以对开放信道SSD执行初始化操作。在初始化操作期间,主机系统可以请求传输以非易失性方式存储在开放信道SSD中的多个块的擦除计数值,并且在操作②处,开放信道SSD可以响应于该请求而发送包括多个块的擦除计数值的信息。此外,在一些实施例中,开放信道SSD还可以将与块的擦除计数的阈值相关的信息发送到主机系统。擦除计数的阈值可以指示块可以保持可靠的擦除计数的值。主机系统可以考虑擦除计数的阈值来管理块的分配操作或对坏块执行管理操作。
在操作③处,主机系统可以存储在初始化操作期间从开放信道SSD提供的擦除计数值。随后,可以在对开放信道SSD的擦除操作期间更新多个块的擦除计数值。此外,在操作④处,可以确认多个块中的空闲块的擦除计数值,可以基于所确认的值来管理排序数据结构,并且可以确定该排序数据结构以为数据写入操作分配空闲块。此外,在操作⑤处,主机系统可以基于确定结果将指示数据写入操作的访问请求发送到开放信道SSD,并且还可以将指示空闲块的分配结果的信息发送到开放信道SSD。
图6和图7示出了根据实施例的被配置为分配用于写入数据的空闲块的数据结构的示例。图6示出了根据实施例的基于典型链表(linked list)的管理来分配空闲块的示例。图7示出了根据实施例的基于排序数据结构的管理来分配空闲块的示例。
参照图6,主机系统可以使用典型链表来管理块的分配。在这种情况下,当擦除块时,被擦除的块可以作为空闲块被顺序地包括在列表中。作为示例,当第三块BLK 3与最近已被执行擦除操作的空闲块对应时,第三块BLK 3可以位于链表中的最后。第一块BLK 1可以在第三块BLK 3之前被包括在链表中,并且第二块BLK 2可以在第一块BLK 1之前被包括在链表中。
在这种情况下,可以基于链表的信息顺序地分配要为数据写入操作新分配的块。作为示例,可以优先为数据写入操作分配作为空闲块首先被包括在链表中的块。作为示例,可以比其他块更早地为数据写入操作分配首先被包括在链表中的第二块BLK 2。可以在不考虑块的擦除计数的情况下进行上述分配操作。也就是说,即使第二块BLK 2具有相对高的擦除计数值,也可以为数据写入操作优先分配第二块BLK 2。结果,第二块BLK 2的寿命可能迅速降低。
相反,图7示出了根据实施例的第一块BLK 1至第九块BLK 9的排序数据结构。图7示出了将最小堆(minimum-heap)排序数据结构应用于分配第一块BLK 1至第九块BLK 9的操作的示例。
根据实施例,可以将各种排序结构应用于排序数据结构。作为示例,图7示出了具有二叉树结构的最小堆排序数据结构。在这种情况下,堆树(heap tree)可以具有树结构,该树结构使用排列的索引。在本实施例中,排列可以对应于第一块BLK 1至第九块BLK 9,并且索引可以对应于第一块BLK 1至第九块BLK 9的擦除计数值,此外,由于排序数据结构可以基于最小堆,所以母节点的索引可以被配置为低于子节点的索引。
在示例中,可以管理第一块BLK 1至第九块BLK 9的擦除计数值。因为与空闲块对应的第一块BLK 1至第九块BLK 9中的第一块BLK 1具有最低擦除计数值,所以第一块BLK 1可以对应于排序数据结构中的最高母节点。因此,当为下一数据写入操作分配空闲块时,最高优先级可以被施加到第一块BLK 1,随后是具有擦除计数值5的第三块BLK 3、具有擦除计数值7的第六块BLK 6,以及最后是具有擦除计数值8的第七块BLK 7。
在这种情况下,可以对储存系统的第十块BLK 10执行擦除操作。因此,可以假设第十块BLK 10被新产生为空闲块,并且第十块BLK 10的擦除计数对应于3。在这种情况下,主机系统可以将第十块BLK 10包括在空闲块的排序数据结构中,并且可以基于第十块BLK 10的擦除计数值来确定第十块BLK 10的优先级。如图7所示,可以基于擦除计数值来重新更新空闲块的树结构,并且在分配空闲块的操作期间,第十块BLK 10可以具有高于第三块BLK3、第六块BLK 6和第七块BLK 7的优先级。
尽管图7示出了堆排序数据结构作为可应用于实施例的示例,但是实施例不限于此,并且可以将诸如快速排序、合并排序和插入排序的各种数据结构应用于实施例。可以使用各种排序数据结构来为数据写入操作优先分配具有最小擦除计数值的空闲块。
图8是根据实施例的主机系统400的示例的框图。图8示出了这样的示例:其中,对储存系统中包括的N个块执行损耗均衡操作,并且使用具有基于计数结果获得的值的索引信息。
参照图8,主机系统400可以包括块分配器410和计数电路420。块分配器410可以包括空闲块排序器411。此外,计数电路420可以包括第一计数器421_1至第N计数器421_N以及第一索引计数器422_1至第N索引计数器422_N,其中第一计数器421_1至第N计数器421_N被配置为对储存系统的第一块BLK 1至第N块BLK N的擦除计数值进行计数,第一索引计数器422_1至第N索引计数器422_N被配置为生成关于第一块BLK 1至第N块BLK N中的每一个的擦除计数值的索引信息Info_cnt_I[1:N]。在实施例中,主机系统400可以包括被配置为根据上述实施例控制储存系统并执行数据访问操作的各种其他组件。
根据上述实施例,空闲块排序器411可以基于空闲块的擦除计数值来管理排序数据结构,并且生成指示空闲块的排序结果的信息Info_A。可以在选择要为数据写入操作分配的空闲块的后续处理期间使用信息Info_A。根据实施例,空闲块排序器411可以接收上述索引信息Info_cnt_I[1:N],并基于索引信息Info_cnt_I[1:N]生成指示空闲块的排序结果的信息Info_A。
每当执行对第一块BLK 1至第N块BLK N的擦除操作时,计数电路420可以执行计数操作。作为示例,参照第一块BLK 1,在第一计数器421_1执行了预定计数值的计数操作后,可以重置第一计数器421_1的计数值。此外,每当第一计数器421_1的计数值对应于设定值时,与第一计数器421_1对应的第一索引计数器422_1可以执行计数操作。第一索引计数器422_1的计数结果可以用作关于用于分配空闲块的第一块BLK 1的索引信息Info_cnt_I[1]。图8示出了每当第一计数器421_1计数到10时第一索引计数器422_1执行计数操作的情况。
空闲块排序器411可以通过使用与第一块BLK 1至第N块BLK N对应的索引信息Info_cnt_I[1:N]来执行根据实施例的排序操作。作为示例,可以将具有小的索引信息Info_cnt_I[1:N]的值的块优先分配为在数据写入操作中使用的空闲块。作为示例,当应用上述基于最小堆的排序数据结构时,可以基于索引信息Info_cnt_I[1:N]来形成第一块BLK1至第N块BLK N的树结构,并且具有小的索引信息Info_cnt_I[1:N]的值的块在分配空闲块的处理期间可以具有优先权。
根据实施例,更新关于空闲块的索引信息Info_cnt_I[1:N]的操作的频率可以降低。因此,可以降低使用数据结构的排序操作的频率,从而减少了用于管理数据结构的资源消耗。
图9是根据实施例的数据处理系统的操作的示例的概念图。
参照图9,主机系统可以控制对开放信道SSD(OC-SSD)的各种存储器操作。此外,主机系统可以包括主机FTL,其可以对开放信道SSD执行各种管理操作。在实施例中,图9的操作可以由数据处理系统10、数据处理系统500、数据处理系统600、或数据处理系统的任何其他实施例的一个或多个元件来执行。
作为示例,在垃圾收集操作期间,在操作S90处,主机系统可以将用于至少一个块的擦除命令发送到开放信道SSD,并且因此产生空闲块。此外,在操作S91处,主机系统可以更新与被擦除的块对应的擦除计数值,并基于使用空闲块的擦除计数值的排序数据结构来执行排序操作。此外,由于如上所述产生新的空闲块,因此在操作S92处,排序数据结构可以包括新产生的空闲块。
在操作S93处,主机系统可以在特定时间点处或周期性地将与空闲块的擦除计数值相关的信息存储在开放信道SSD中。也就是说,主机系统可以将与各种管理操作相关的信息临时存储在内部随机存取存储器(RAM)中,并且周期性地或非周期性地将该信息存储在开放信道SSD的非易失性储存空间中。
此后,可以将包括主机系统和开放信道SSD的数据处理系统断电。作为示例,在操作S94处可以发生非预期的突然断电(SPO)。当再次向数据处理系统施加电力时,可以在主机系统和开放信道SSD之间执行初始化操作,并且可以在初始化操作期间在主机系统和开放信道SSD之间发送和接收各种信息。在这种情况下,在操作S95处,主机系统可以向开放信道SSD请求发送与空闲块的擦除计数值相关的信息,并且在操作S96处,开放信道SSD可以将与该请求对应的信息发送到主机系统。
主机系统可以基于从开放信道SSD接收的与空闲块的擦除计数值相关的信息来执行根据上述实施例的排序操作。也就是说,可以在主机系统侧生成排序数据结构,使得可以优先地为数据写入操作分配具有相对低的擦除计数值的空闲块。所生成的排序数据结构可以用于将空闲块分配给后续的数据写入操作。
图10是根据实施例的数据处理系统500的框图。
参照图10,数据处理系统500可以包括主机系统510和储存系统520。储存系统520可以包括控制器521和储存装置522。此外,主机系统510可以包括FTL 511、写入计数电路512和擦除计数电路513,并且FTL 511可以包括块分配模块。根据上述实施例,储存系统520可以将块信息Info_BLK发送到主机系统510。此外,根据上述实施例,主机系统510可以为数据写入操作分配具有相对低的擦除计数值的空闲块,并且将访问请求Req_Acc连同指示所分配的空闲块的块地址ADD_BLK一起发送到储存系统520。
随着写入操作的数目随着擦除操作的数目的增加而增加,储存系统520中包括的块的寿命可能减少。根据实施例,写入计数电路512和擦除计数电路513可以分别对写入计数值和擦除计数值进行计数。当为数据写入操作分配根据实施例的空闲块时,可以在分配操作中使用写入计数值和擦除计数值。
作为示例,写入计数电路512和擦除计数电路513可以以各种单位执行计数操作。一个块可以包括多个页。写入操作可以以页为单位执行,而擦除操作可以以块为单位执行。在这种情况下,写入计数电路512可以以页为单位或以块为单位生成写入计数值。也就是说,写入计数电路512可以以页为单位提供每个写入计数值,或者提供与对块执行的写入操作的总数相对应的写入计数值。
另外,根据实施例,当排序数据结构被配置为为数据写入操作分配空闲块时,块的写入计数值可以高于块的擦除计数值。因此,根据上述实施例的索引信息可以被应用于写入计数值。也就是说,每当写入计数值达到预定值时,可以执行索引计数操作,并且可以基于空闲块中的每一个的擦除计数值和与写入操作相关的索引信息的组合来执行分配空闲块的操作。
根据实施例,可以以各种方式利用擦除计数值和写入计数值。作为示例,在分配空闲块的操作期间,可以将优先级应用于擦除计数值和写入计数值中的任何一个。在实施例中,擦除计数值可以与写入计数值组合,并且分配操作可以被控制为使得可以优先为数据写入操作分配寿命的降低程度低的空闲块。
图11是根据实施例的数据处理系统600的框图。图11示出了SSD 620包括多个闪存装置并且闪存装置中的每一个包括多个块的示例。
参照图11,数据处理系统600可以包括主机系统610和SSD 620。SSD 620可以对应于根据上述实施例的开放信道SSD。SSD 620可以通过信号连接器SGL向主机系统610发送信号和从主机系统610接收信号,并且通过电力连接器PWR接收电力。SSD 620可以包括控制器621、辅助电源622、和多个存储器系统(例如,存储器系统623、624和625)。存储器系统623、624和625中的每一个可以包括至少一个闪存装置作为储存装置。此外,每个闪存装置可以包括至少一个管芯(die),并且可以在每个管芯中布置至少一个块。
根据上述实施例,控制器621可以通过多个信道Ch1至Chn与存储器系统623、624和625通信。此外,控制器621可以响应于从主机系统610提供的访问请求和块地址而从选择的块访问数据。此外,主机系统610可以包括至少一个块分配模块(例如,块分配模块611_1至611_n),并且可以由于根据上述实施例的块分配操作而分配要被写入数据的空闲块。
控制器621可以通过多个信道Ch1至Chn独立地访问存储器系统623、624和625,并且主机系统610可以以各种单位对SSD 620中包括的块执行管理操作。管理操作可以是例如根据擦除计数的数目管理排序数据结构的操作。作为示例,通过第一信道Ch1连接到控制器621的第一闪存装置可以包括M个块BLK 1至BLK M,通过第n信道Chn连接到控制器621的第n闪存装置可以包括N个块BLK 1至BLK N,并且可以以闪存装置为单位管理排序数据结构。
主机系统610可以管理每个信道的擦除计数值、每个闪存装置的擦除计数值、或每个闪存装置中包括的每个管芯的擦除计数值,并且基于所管理的擦除计数值生成排序数据结构。图11示出了以闪存装置为单位管理排序数据结构的示例。第一块分配模块611_1可以管理第一闪存装置的M个块BLK 1至BLK M的擦除计数值。此外,第一块分配模块611_1可以管理排序数据结构,使得可以基于空闲块的擦除计数值优先分配M个块BLK 1至BLK M中的具有相对低的擦除计数值的空闲块。此外,在通过单独信道访问的第n闪存装置中,第n块分配模块611_n可以管理N个块BLK 1至BLK N的擦除计数值并使用基于实施例的排序数据结构来分配空闲块。
图11示出了块分配模块被布置为与连接到多个信道Ch1至Chn中的不同信道的多个闪存装置相对应的示例,但实施例不限于此。作为示例,如上所述,可以针对每个闪存装置或相同信道的每个管芯分别实现块分配模块,作为排序数据结构的单位。尽管在图11中仅示出了一个SSD,但是主机系统610可以管理多个SSD并且管理对多个SSD分配空闲块的操作。
图12是根据实施例的包括服务器系统710的网络系统700的框图。图12示出了多个终端(例如,计算节点),以及服务器系统710。可以使用根据上述实施例的数据处理系统来呈现服务器系统710。
参照图12,网络系统700可以包括多个终端731_1至731_n,其被配置为通过网络720与服务器系统710一起执行通信操作。服务器系统710可以包括服务器711和用作储存系统的SSD 712。服务器711可以用作根据上述实施例的主机系统。
服务器711可以处理从连接到网络720的多个终端731_1至731_n发送的请求。作为示例,服务器711可以将由多个终端731_1至731_n提供的数据存储在SSD 712中。此外,根据实施例,服务器711可以对SSD 712中包括的块执行管理操作。作为示例,服务器711可以确定SSD 712中包括的块的寿命,基于确定结果选择为数据写入操作分配的空闲块,并且动态地执行损耗均衡操作。另外,根据上述实施例,可以使用擦除计数的数目和/或写入计数的数目来执行对块的寿命的确定,并且可以优先为数据写入操作分配具有相对低的擦除计数值或相对低的写入计数值的空闲块。
如在本发明构思的领域中的传统,以功能块、单元和/或模块描述和图示了实施例。本领域技术人员将理解,这些块、单元和/或模块在物理上通过电子(或光学)电路(诸如,逻辑电路、分立组件、微处理器、硬连线电路、存储器元件、布线连接等)来实现,电子(或光学)电路可以使用基于半导体的制造技术或其他制造技术来形成。在由微处理器或类似物实现块、单元和/或模块的情况下,可以使用软件(例如,微代码)对它们进行编程以执行本文中讨论的各种功能,并且可以可选地由固件和/或软件驱动它们。可替换地,每个块、单元和/或模块可以由专用硬件实现,或者实现为执行一些功能的专用硬件和执行其他功能的处理器(例如,一个或多个被编程的微处理器和相关联的电路系统)的组合。此外,在不脱离本发明构思的范围的情况下,实施例的每个块、单元和/或模块可以物理地分离成两个或更多个相互作用的且分立的块、单元和/或模块。此外,在不脱离本发明构思的范围的情况下,实施例的块、单元和/或模块可以物理地组合成更复杂的块、单元和/或模块。
尽管已经参照本发明构思的实施例具体示出和描述了本发明构思,但是将理解,在不脱离所附权利要求的精神和范围的情况下,可以在其中进行形式和细节上的各种改变。
Claims (20)
1.一种被配置为与储存系统通信的主机系统,所述主机系统包括:
主机闪存转换层,其被配置为管理所述储存系统中包括的多个块,其中所述主机闪存转换层包括块分配模块,所述块分配模块被配置为基于所述多个块中的空闲块的擦除计数值来生成指示所述空闲块的优先级的优先级信息,并且其中所述主机闪存转换层被配置为基于所述优先级信息为数据写入操作分配所述空闲块中的具有相对低的擦除计数值的空闲块;
计数电路,其被配置为对对所述多个块中的每一个执行的擦除操作的数目进行计数;以及
接口电路,其被配置为将块地址连同对所述储存系统的访问请求一起发送到所述储存系统,所述块地址指示所述被分配的空闲块的位置。
2.根据权利要求1所述的主机系统,其中,所述接口电路还被配置为从所述储存系统接收关于所述多个块的块信息,并且
其中,所述计数电路还被配置为生成所述多个块的擦除计数值。
3.根据权利要求1所述的主机系统,其中,所述计数电路还被配置为基于所述擦除操作的数目增加到预定设定值而增加索引计数值,
其中,基于所述索引计数值来确定所述具有相对低的擦除计数值的空闲块。
4.根据权利要求1所述的主机系统,其中,所述块地址包括指示所述被分配的空闲块的物理地址信息,并且
其中,所述主机闪存转换层还被配置为基于由所述块分配模块生成的所述优先级信息来生成所述块地址。
5.根据权利要求1所述的主机系统,其中,所述块分配模块包括:
空闲块确定器,其被配置为从所述多个块中确定所述空闲块;
计数更新控制器,其被配置为增加被执行擦除操作的块的擦除计数值;以及
空闲块排序器,其被配置为基于所述空闲块的擦除计数值来设定所述空闲块的优先级。
6.根据权利要求1所述的主机系统,其中,所述块分配模块还被配置为管理所述空闲块的排序数据结构,使得基于所述空闲块的擦除计数值为所述数据写入操作分配具有最低擦除计数值的空闲块。
7.根据权利要求6所述的主机系统,其中,所述排序数据结构与具有根据所述擦除计数值确定的树结构的最小堆排序数据结构相对应。
8.根据权利要求6所述的主机系统,其中,基于所述储存系统对所述多个块中的第一块执行擦除操作的请求,所述第一块被包括在所述空闲块中,并且
其中,所述块分配模块还被配置为基于所述第一块的第一擦除计数值来更新所述排序数据结构。
9.根据权利要求8所述的主机系统,其中,第二块在所述第一块之前被包括在所述排序数据结构中,并且
其中,基于所述第二块的第二擦除计数值高于所述第一擦除计数值,所述块分配模块还被配置为在所述第二块之前为所述数据写入操作分配所述第一块。
10.根据权利要求1所述的主机系统,其中,所述主机系统被配置为周期性地存储所述多个块的擦除计数值,并且被配置为在初始化操作期间从所述储存系统接收所述多个块的擦除计数值。
11.根据权利要求1所述的主机系统,其中,所述主机系统被配置为管理所述储存系统中包括的多个闪存装置,
其中,所述块分配模块包括被布置为与所述多个闪存装置对应的多个块分配模块,并且
其中,所述多个块分配模块中的每一个被配置为基于所述多个闪存装置中的对应的闪存装置来生成所述优先级信息。
12.一种操作被配置为与包括多个块的储存系统通信的主机系统的方法,所述方法包括:
对对所述多个块执行的擦除操作的数目进行计数;
基于所述多个块中的第一空闲块至第(N-1)空闲块的擦除计数值来生成排序数据结构,其中N是大于或等于2的整数;
通过控制所述储存系统对所述多个块中的块执行擦除操作来生成第N空闲块;
基于所述第N空闲块的第N擦除计数值来更新所述排序数据结构;以及
根据更新后的排序数据结构为数据写入操作分配所述第一空闲块至所述第N空闲块中的具有最低擦除计数值的空闲块。
13.根据权利要求12所述的方法,其中,所述主机系统包括主机闪存转换层并且被配置为管理所述储存系统,并且
其中,所述储存系统包括开放信道固态驱动器。
14.根据权利要求12所述的方法,还包括:
发送存储所述擦除计数值的请求;以及
在所述储存系统与所述主机系统之间的初始化处理期间从所述储存系统接收包括所述擦除计数值的信息。
15.根据权利要求12所述的方法,其中,所述第一空闲块在所述第N空闲块之前被包括在所述排序数据结构中,并且
其中,基于所述第N空闲块的所述第N擦除计数值低于所述第一空闲块的第一擦除计数值,在所述第一空闲块之前为所述数据写入操作分配所述第N空闲块。
16.根据权利要求12所述的方法,其中,所述对擦除操作的数目进行计数包括通过基于擦除操作的数目增加到预定设定值而执行索引计数操作来生成索引信息,并且
其中,基于所述索引信息来确定所述具有最低擦除计数值的空闲块。
17.根据权利要求12所述的方法,其中,所述排序数据结构与具有基于所述擦除计数值的树结构的最小堆排序数据结构相对应。
18.一种包括储存系统的数据处理系统,其中所述储存系统包括:
储存装置,其包括至少一个闪存装置,其中所述至少一个闪存装置中的每个闪存装置包括多个块;以及
控制器,其包括第一接口电路,所述第一接口电路被配置为从外部装置接收对所述多个块的访问请求和对所述多个块的擦除请求,所述控制器被配置为基于所述访问请求来控制对所述多个块的访问操作,并且基于所述擦除请求来控制对所述多个块的擦除操作,
其中,基于响应于所述擦除请求在擦除所述多个块中的第二块之前擦除所述多个块中的第一块,在将所述第二块改变为第二空闲块之前将所述第一块改变为第一空闲块,并且
基于所述第一块的第一擦除计数值高于所述第二块的第二擦除计数值,在所述第一块之前为数据写入操作分配所述第二块。
19.根据权利要求18所述的数据处理系统,其中,所述外部装置包括主机系统,
其中,所述主机系统包括:
主机闪存转换层,其被配置为基于所述多个块中包括的空闲块的擦除计数值来管理所述储存系统和排序数据结构;
计数电路,其被配置为对对所述多个块执行的擦除操作的数目进行计数;以及
第二接口电路,其被配置为与所述储存系统通过接口连接,并且
其中,所述主机闪存转换层被配置为基于所述排序数据结构在所述第一块之前为所述数据写入操作分配所述第二块。
20.根据权利要求19所述的数据处理系统,其中,所述主机系统被配置为通过所述第二接口电路周期性地将对所述多个块的擦除计数值的储存请求发送到所述储存系统,并且
其中,所述储存系统被配置为在所述数据处理系统的初始化操作期间,通过所述第一接口电路将与所述多个块的擦除计数值相关的信息发送到所述主机系统。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190122655A KR20210039872A (ko) | 2019-10-02 | 2019-10-02 | 프리 블록의 할당을 관리하는 호스트 시스템, 이를 포함하는 데이터 처리 시스템 및 호스트 시스템의 동작방법 |
KR10-2019-0122655 | 2019-10-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112597068A true CN112597068A (zh) | 2021-04-02 |
CN112597068B CN112597068B (zh) | 2024-07-09 |
Family
ID=75180097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010626362.7A Active CN112597068B (zh) | 2019-10-02 | 2020-07-02 | 主机系统及其操作方法、包括该主机系统的数据处理系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11275516B2 (zh) |
KR (1) | KR20210039872A (zh) |
CN (1) | CN112597068B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114527945A (zh) * | 2022-02-24 | 2022-05-24 | 太仓市同维电子有限公司 | 一种确保nand flash写均衡的方法 |
CN117032599A (zh) * | 2023-10-10 | 2023-11-10 | 湖北长江万润半导体技术有限公司 | 一种提高闪存块管理中闪存块组织效率的方法与装置 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113204681B (zh) * | 2021-05-07 | 2024-09-10 | 北京柠檬微趣科技股份有限公司 | 数据排序方法、装置、设备、存储介质及程序产品 |
KR20240019429A (ko) * | 2022-08-04 | 2024-02-14 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 이를 포함하는 전자 장치와 그 동작 방법 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100174845A1 (en) * | 2009-01-05 | 2010-07-08 | Sergey Anatolievich Gorobets | Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques |
US20110320688A1 (en) * | 2010-06-29 | 2011-12-29 | Samsung Electronics Co., Ltd. | Memory Systems And Wear Leveling Methods |
US20140215129A1 (en) * | 2013-01-28 | 2014-07-31 | Radian Memory Systems, LLC | Cooperative flash memory control |
US20150261671A1 (en) * | 2014-03-12 | 2015-09-17 | Silicon Motion, Inc. | Garbage collection method for flash memory |
WO2018050006A1 (zh) * | 2016-09-14 | 2018-03-22 | 阿里巴巴集团控股有限公司 | 在基于闪存的存储介质中写入存储数据的方法和装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100857761B1 (ko) | 2007-06-14 | 2008-09-10 | 삼성전자주식회사 | 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법 |
KR20100013485A (ko) | 2008-07-31 | 2010-02-10 | 삼성전자주식회사 | 메모리 장치 및 웨어 레벨링 방법 |
KR101586047B1 (ko) | 2009-03-25 | 2016-01-18 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 프로그램 방법 |
US8447915B2 (en) | 2009-07-23 | 2013-05-21 | Hitachi, Ltd. | Flash memory device for allocating physical blocks to logical blocks based on an erase count |
TW201239619A (en) | 2011-03-21 | 2012-10-01 | Silicon Motion Inc | Writing method of a flash memory and flash memory device |
CN102955743A (zh) | 2011-08-25 | 2013-03-06 | 建兴电子科技股份有限公司 | 固态储存装置及其损耗平均控制方法 |
US9436595B1 (en) * | 2013-03-15 | 2016-09-06 | Google Inc. | Use of application data and garbage-collected data to improve write efficiency of a data storage device |
US10331364B2 (en) * | 2015-10-16 | 2019-06-25 | Cnex Labs, Inc. | Method and apparatus for providing hybrid mode to access SSD drive |
KR102618699B1 (ko) | 2016-09-28 | 2024-01-02 | 삼성전자주식회사 | 호스트에 의해 제어되는 스토리지 장치를 포함하는 컴퓨팅 시스템 |
US11733873B2 (en) | 2017-12-01 | 2023-08-22 | Micron Technology, Inc. | Wear leveling in solid state drives |
US10860228B1 (en) * | 2019-06-24 | 2020-12-08 | Western Digital Technologies, Inc. | Method to switch between traditional SSD and open-channel SSD without data loss |
-
2019
- 2019-10-02 KR KR1020190122655A patent/KR20210039872A/ko unknown
-
2020
- 2020-04-24 US US16/857,953 patent/US11275516B2/en active Active
- 2020-07-02 CN CN202010626362.7A patent/CN112597068B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100174845A1 (en) * | 2009-01-05 | 2010-07-08 | Sergey Anatolievich Gorobets | Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques |
US20110320688A1 (en) * | 2010-06-29 | 2011-12-29 | Samsung Electronics Co., Ltd. | Memory Systems And Wear Leveling Methods |
US20140215129A1 (en) * | 2013-01-28 | 2014-07-31 | Radian Memory Systems, LLC | Cooperative flash memory control |
US20150261671A1 (en) * | 2014-03-12 | 2015-09-17 | Silicon Motion, Inc. | Garbage collection method for flash memory |
WO2018050006A1 (zh) * | 2016-09-14 | 2018-03-22 | 阿里巴巴集团控股有限公司 | 在基于闪存的存储介质中写入存储数据的方法和装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114527945A (zh) * | 2022-02-24 | 2022-05-24 | 太仓市同维电子有限公司 | 一种确保nand flash写均衡的方法 |
CN117032599A (zh) * | 2023-10-10 | 2023-11-10 | 湖北长江万润半导体技术有限公司 | 一种提高闪存块管理中闪存块组织效率的方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
US20210103394A1 (en) | 2021-04-08 |
CN112597068B (zh) | 2024-07-09 |
US11275516B2 (en) | 2022-03-15 |
KR20210039872A (ko) | 2021-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11520504B2 (en) | Data storage device and operating method thereof | |
KR102533207B1 (ko) | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 | |
CN112597068B (zh) | 主机系统及其操作方法、包括该主机系统的数据处理系统 | |
CN109074318B (zh) | 用于执行转换层表的自适应主机存储器缓冲区高速缓存的系统和方法 | |
US20200089421A1 (en) | Data storage device, operation method thereof, and storage system including the same | |
US11262928B2 (en) | Storage system and method for enabling partial defragmentation prior to reading in burst mode | |
CN111414131B (zh) | 数据存储装置、其操作方法和包括其的存储系统 | |
US11543987B2 (en) | Storage system and method for retention-based zone determination | |
JP7293458B1 (ja) | ストレージフラグメンテーションを定量化し性能低下を予測するための記憶システム及び方法 | |
US11635896B2 (en) | Method and data storage apparatus for replacement of invalid data blocks due to data migration | |
CN113811847A (zh) | 来自主机系统的写入命令的部分执行 | |
US11995327B2 (en) | Data storage device and method for adaptive host memory buffer allocation based on virtual function prioritization | |
US11720280B2 (en) | Storage system and method for improving utilization of a communication channel between a host and the storage system | |
US11119938B2 (en) | Apparatus and method to synchronize memory map between a storage device and host | |
CN113467708A (zh) | 电子装置、数据存储装置及其操作方法 | |
US11487449B2 (en) | Data storage device and method for enabling higher lane utilization in run time via device hints on workload patterns | |
US12067293B2 (en) | Data storage device and method for host multi-command queue grouping based on write-size alignment in a multi-queue-depth environment | |
US20240143227A1 (en) | Data Storage Device and Method for Reducing Flush Latency | |
US20230221888A1 (en) | Data Storage Device and Method for Memory-Die-State-Aware Host Command Submission | |
CN114968832A (zh) | 数据存储设备及其操作方法 | |
CN113391763A (zh) | 存储器裸片资源管理 | |
CN111881061A (zh) | 数据存储装置、其控制器及其操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |