CN113448492B - 数据存储系统以及非挥发式存储器控制方法 - Google Patents
数据存储系统以及非挥发式存储器控制方法 Download PDFInfo
- Publication number
- CN113448492B CN113448492B CN202010227634.6A CN202010227634A CN113448492B CN 113448492 B CN113448492 B CN 113448492B CN 202010227634 A CN202010227634 A CN 202010227634A CN 113448492 B CN113448492 B CN 113448492B
- Authority
- CN
- China
- Prior art keywords
- factor
- size
- valid
- cold
- compression performance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- 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/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/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
Abstract
钥值存储架构的数据压缩技术。运算单元对一非挥发式存储器计算钥值数据于该非挥发式存储器的一平均压缩效能因子,并根据该平均压缩效能因子估算该非挥发式存储器的一容量消耗,以供判断是否切换该非挥发式存储器为禁制写入。该平均压缩效能因子随着该非挥发式存储器的程序化动态调整,为该非挥发式存储器中多个空间的压缩效能因子的权重结果。
Description
技术领域
本发明有关于非挥发式存储器的控制,其中特别关于钥值存储(key-valuestorage)架构的数据压缩(data compression)。
背景技术
非挥发式存储器有多种形式─例如,闪存(flash memory)、磁阻式随机存取存储器(Magnetoresistive RAM)、铁电随机存取存储器(Ferroelectric RAM)、电阻式随机存取存储器(Resistive RAM)、自旋转移力矩随机存取存储器(Spin Transfer Torque-RAM,STT-RAM)…等,用于长时间数据保存,可做为存储媒体实现一数据存储装置。
非挥发式存储器有其特殊的存储特性,其操作以及管理需特殊设计。
发明内容
本案特别应用于钥值存储(key-value storage)架构。此架构下,后台可对非挥发式存储器所存储的数据更实施压缩(data compression),最大化利用数据存储空间。本案提出非挥发式存储器的容量估算技术。
根据本案一种实施方式实现的一数据存储系统包括一非挥发式存储器、以及一运算单元。运算单元耦接该非挥发式存储器,建构来计算钥值数据于该非挥发式存储器的一平均压缩效能因子,并根据该平均压缩效能因子估算该非挥发式存储器的一容量消耗,以供判断是否切换该非挥发式存储器为禁制写入。该平均压缩效能因子随着该非挥发式存储器的程序化动态调整,为该非挥发式存储器中多个空间的压缩效能因子的权重结果。
一种实施方式中,该非挥发式存储器为闪存。该运算单元令钥值数据压缩至该闪存为多个冷超级区块。该运算单元为各冷超级区块估算一个对应的压缩效能因子,据以估算该平均压缩效能因子。
一种实施方式中,该运算单元为各冷超级区块估算的该个压缩效能因子为cr_factor,所作估算为:
cr_factor=total_sb_space/total_kv_size,
其中,total_sb_space为所对应的冷超级区块的一额定容量;且total_kv_size为所对应的冷超级区块内有效以及无效的钥值数据的原始尺寸。
一种实施方式中,各钥值数据的原始尺寸为kv_size,该运算单元估算:
kv_size=len(prefix)+len(key)+len(value)+len(mark)
其中:prefix为所属钥值数据的前缀,尺寸为len(prefix);key为所属钥值数据的钥,尺寸为len(key);value为所属钥值数据的值,尺寸为len(value);且mark为所属钥值数据的记号,尺寸为len(mark)。
一种实施方式中,该平均压缩效能因子为ave_cr_factor,且该运算单元估算:
ave_cr_factor(new)=a*ave_cr_factor(old)+
(1-a)*cr_factor(new)
其中:ave_cr_factor(new)为新版本的平均压缩效能因子;ave_cr_factor(old)为前一版本的平均压缩效能因子;cr_factor(new)为最新形成的冷超级区块的压缩效能因子;且a为权重。
一种实施方式中,该运算单元令该平均压缩效能因子为ave_cr_factor的初始值乃基于所使用的一压缩算法的一压缩效能因子预设值而设定。一种实施方式中,该运算单元令该平均压缩效能因子为ave_cr_factor的初始值乃头一个冷压缩超级区块的压缩效能因子。
一种实施方式中,该运算单元令钥值数据程序化至该闪存为多个热超级区块,再压缩至该等冷超级区块。该运算单元为上述冷超级区块以及热超级区块分别估算其内有效的钥值数据的原始尺寸,为valid_kv_size,与该平均压缩效能因子(ave_cr_factor)以及上述压缩效能因子(cr_factor)联合应用于估算该容量消耗。
一种实施方式中,该运算单元进行运算:
estimate_hot_disk_usage=
(valid_kv_size[h_1]+valid_kv_size[h_2]+…
+valid_kv_size[h_n])*ave_cr_factor;以及
estimate_cold_disk_usage=
valid_kv_size[c_1]*cr_factor[c_1]+
valid_kv_size[c_2]*cr_factor[c_2]+…+
valid_kv_size[c_m]*cr_factor[c_m];
其中:estimate_hot_disk_usage对应该非挥发式存储器所有上述热超级区块组成的一热空间,为一第一压缩尺寸;h_1、h_2…至h_n为该非挥发式存储器所有上述热超级区块,且其内有效的钥值数据的原始尺寸分别为valid_kv_size[h_1]、valid_kv_size[h_2]…至valid_kv_size[h_n];estimate_cold_disk_usage对应该非挥发式存储器所有上述冷超级区块组成的一冷空间,为一第二压缩尺寸;且c_1、c_2…至c_m为该非挥发式存储器所有上述冷超级区块,且其内有效的钥值数据的原始尺寸分别为valid_kv_size[c_1]、valid_kv_size[c_2]…至valid_kv_size[c_m],且其压缩效能因子分别为cr_factor[c_1]、cr_factor[c_2]…至cr_factor[c_m]。
一种实施方式中,该运算单元进行运算:
estimate_disk_usage=
estimate_hot_disk_usage+estimate_cold_disk_usage
其中,estimate_disk_usage为该容量消耗。
一种实施方式中,该运算单元设置于一主机,经该非挥发式存储器所在的一装置端的一控制器操控该非挥发式存储器。一种实施方式中,该运算单元由该非挥发式存储器所在的一装置端的一控制器实现,且该控制器响应一主机操控该非挥发式存储器。
以上运算单元对非挥发式存储器的操作也可以由其他结构实现。本案更可以前述概念实现非挥发式存储器的控制方法。
下文特举实施例,并配合所附图示,详细说明本发明内容。
附图说明
图1图解闪存一区块Blk的结构;
图2根据本案一种实施方式图解一钥值KV格式200;
图3图解钥(key)至值(value)所在闪存空间的映射(mapping);
图4为方块图,根据本案一种实施方式图解一数据存储系统400;以及
图5为流程图,图解根据本案一种实施方式所实现的容量消耗估算方法。
附图标记
200~钥值KV格式;
202~前缀字段;
204~钥字段;
206~值字段;
208~记号字段;
400~数据存储系统;
402~主机;
404~数据存储装置;
405~运算单元;
406~钥值应用程序编程接口;
408~钥值装置驱动器;
410~控制器;
412~闪存;
414~热空间;
416~冷空间;
Area0~闪存空间;
Blk、Blk0、Blk1以及Blk2~区块;
c_1…c_m~冷超级区块;
h_1…h_n~热超级区块;
key0~钥;以及
S502…S510~步骤。
具体实施方式
以下叙述列举本发明的多种实施例。以下叙述介绍本发明的基本概念,且并非意图限制本发明内容。实际发明范围应依照权利要求书界定之。
非挥发式存储器可以是闪存(Flash Memory)、磁阻式随机存取存储器(Magnetoresistive RAM)、铁电随机存取存储器(Ferroelectric RAM)、电阻式存储器(Resistive RAM,RRAM)、自旋转移力矩随机存取存储器(Spin Transfer Torque-RAM,STT-RAM)…等,提供长时间数据保存的存储媒体。以下特别以闪存为例进行讨论。
现今数据存储装置常以闪存为存储媒体,实现存储卡(Memory Card)、通用串行总线闪存装置(USB Flash Device)、固态硬盘(SSD)…等产品。有一种应用是采多芯片封装、将闪存与其控制器包装在一起─称为嵌入式闪存模块(如eMMC)。
以闪存为存储媒体的数据存储装置可应用于多种电子装置中。所述电子装置包括智能型手机、穿戴装置、平板计算机、虚拟现实设备…等。电子装置的运算模块可视为主机(Host),操作所使用的数据存储装置,以存取其中闪存。
以闪存为存储媒体的数据存储装置也可用于建构数据中心。例如,服务器可操作固态硬盘(SSD)阵列形成数据中心。服务器即可视为主机,操作所链接的固态硬盘,以存取其中闪存。
闪存有其特殊的存储特性,以下叙述之。
闪存的物理空间是划分为多个区块(Blocks)配置使用。图1图解闪存一区块Blk的结构。区块Blk包括多个页面(Pages),例如,页面0…页面255。各页面包括多个区段(Sectors),例如32个区段,每一区段可存储512B长度的用户数据。一种实施方式根据页面编号─由低编号至高编号─循序使用一区块的存储空间。或者,某些实施方式使用的是多信道技术,将不同信道存取的区块视为一个超级区块(Super Block),将不同信道之间的页面视为超级页面(Super Page)。多信道技术可根据超级页面编号─由低编号至高编号─循序使用一超级区块的存储空间。多信道架构可提升数据吞吐量。以下例子,都可利用在多信道技术中。
特别是,闪存的数据更新并非覆写至旧数据的存储空间。新版本的数据须写入空白处。旧空间的内容无效。由于闪存的存储空间需抹除(Erase,例如,以区块为单位)方能再次使用,备用空间逐渐消耗。备用空间不足时(如,闲置区块数量低于阀值),垃圾回收(Garbage Collection)需求产生。一区块留存的零星有效数据经垃圾回收集中到其他空间。徒留无效数据的区块释出,抹除后即可再使用。备用空间可由垃圾回收补足,确保闪存的正常使用。
本案提出一种数据压缩(Data Compression)技术,应用于钥值(Key-Value,KV)架构的数据存储装置。在钥值KV架构中,一笔钥值KV数据是由一个特定的钥(Key)以及对应值(Responding Value)所组成。钥作为钥值KV数据的代表,钥的长度较佳为固定的,例如:32Bytes。每一特定的钥对应至一个对应值,对应值的长度较佳为非固定的。主机可输出写入命令以将钥以及对应值写入至采用钥值KV架构的数据存储装置,例如:KV SSD。之后主机可输出读取命令以自数据存储装置读取钥的对应值。另外,数据存储装置在进行垃圾回收时同时进行数据压缩(Data Compression),数据压缩可使数据存储装置的数据存储空间(数据存储量)最大化,本案相应的提出数据存储装置中数据存储空间估算技术。
图2图解钥值KV架构中记录数据所采用的钥值KV格式200,包括前缀字段(Prefix)202、钥字段204、值字段206、以及记号字段(Mark)208。前缀字段202可为固定长度,例如16个字节(Bytes)。前缀字段202的内容为钥值KV格式200的长度值,或是钥值KV格式200的格式代码等。钥字段204用以记录钥值KV数据中的钥,值字段206用以记录钥值KV数据中的对应值。记号字段208可为固定长度,例如1个字节。
图3图解钥(Key)至闪存空间的映射(Mapping)信息。钥值KV架构的数据存储装置或主机中需建立闪存转换层(Flash Translation Layer,简称FTL),可用以记录每笔钥值KV数据与闪存的物理地址及相关信息的映射关连性(又称为映射信息),并将映射关连性记录至钥值KV映射表中。钥值KV映射表较佳以钥(Key)为索引,内容则记录映射信息,映射信息较佳包括:起始区块(Starting Blk)编号以及偏移量(Offset)。以钥值KV数据的密钥key0为例,映射信息指向闪存空间Area0。闪存空间Area0的起始区块为Blk1,偏移量为16个区段(Sectors)或4096Bytes,且横跨区块Blk1以及Blk2。
数据存储装置中的控制器可启动垃圾回收(Garbage Collection)程序以及数据压缩程序,将有效的数据先进行数据压缩,之后,将压缩后的有效数据复制至一个新的物理地址,以回收原数据所在的一个区块(或一个超级区块)的闪存空间(数据存储空间)。压缩后的有效数据仍旧遵循钥值KV格式200,且同样是以闪存转换层(FTL)进行映射管理。
事实上,数据压缩之后,数据存储装置的数据存储空间会相对地增加。假如数据存储装置提供800G额定存储空间,当用户欲写入900G钥值KV数据至数据存储装置,可能只有100G钥值KV数据被压缩为50G,因此,仍有50G钥值KV数据无法写入至数据存储装置。然而,在完成垃圾回收程序以及数据压缩程序之后,900G钥值KV数据可能最后被压缩为450G,换句话说,数据存储装置仍可提供350G存储空间。因应之,本案提出一种符合现实的闪存容量消耗判断技术。
一种实施方式中,本案采用一个压缩效能因子cr_factor,用于计算写入并压缩的钥值KV数据所占用的存储空间。
一种实施方式,数据存储装置的控制器将来自主机的钥值KV数据写入至超级区块,或称为热超级区块(Hot Super Block)。热超级区块上的钥值KV数据可经垃圾回收而压缩至冷超级区块(Cold Super Block)。控制器可依据下列方程式来计算冷超级区块的压缩效能因子cr_factor:
cr_factor=total_sb_space/total_kv_size
其中,数值total_sb_space为冷超级区块所提供的存储空间,数值total_kv_size为冷超级区块内钥值KV数据(有效以及无效)的原始尺寸。以钥值KV格式200为例,钥值KV数据1的原始尺寸如下:
kv1_size=len(prefix)+len(key)+len(value)+len(mark)
len(prefix)为前缀202长度。len(key)为钥204长度。len(value)为值206长度。len(mark)为记号208长度。一个冷超级区块上,每个钥值KV数据(kv)的长度不定,一一算出、加总,即可算出数值total_kv_size。压缩效能因子cr_factor算出后,可存储在该个冷超级区块的最后4KB空间。一种实施方式中,压缩效能因子cr_factor是与该个冷超级区块的存储空间尺寸total_sb_space一起存储在该冷超级区块的特定空间中。
举例说明之,一个冷超级区块可用于存储1GB的钥值KV数据,且其中实际存储的钥值KV数据(无论有效、无效)为1024*1024个,各自为4KB。如此一来,数值total_sb_space为1GB,且数值total_kv_size为1024*1024*4KB(即4GB)。该冷超级区块的压缩效能因子cr_factor为1GB除以4GB,即0.25。
一种实施方式中,运算单元随着冷超级区块的使用,动态维护一平均压缩效能因子ave_cr_factor;计算如下:
ave_cr_factor(new)=a*ave_cr_factor(old)+(1-a)*cr_factor(new)
平均压缩效能因子ave_cr_factor的前一版本数值以及新版本数值分别为ave_cr_factor(old)以及ave_cr_factor(new)。cr_factor(new)为最新关闭(写入结尾信息)的冷超级区块的压缩效能因子cr_factor。a为权重,为0~1之间,可依照经验设定。一种实施方式是看重新数据,则权重a大于0.5。
如此设计下,平均压缩效能因子ave_cr_factor随着闪存的程序化动态调整,为闪存中所有冷超级区块的压缩效能因子cr_factor的权重结果。
平均压缩效能因子ave_cr_factor的初始值可有多种选择。选用的压缩算法所宣称的压缩率即可转换后,得出压缩效能预设值,供直接、或微调作为平均压缩效能因子ave_cr_factor的初始值。一种实施方式是以第一个冷超级区块的压缩效能因子cr_factor作为平均压缩效能因子ave_cr_factor的初始值。一种实施方式则是依照产品应用场景设定平均压缩效能因子ave_cr_factor的初始值。
一种实施方式中,平均压缩效能因子ave_cr_factor的初始值为0.5,权重a为0.6。以下讨论之。
第一个冷超级区块的压缩效能因子cr_factor为0.25时,平均压缩效能因子ave_cr_factor更新为0.6*0.5+(1-0.6)*0.25,为0.4。
第二个冷超级区块的压缩效能因子cr_factor为0.25时,平均压缩效能因子ave_cr_factor更新为0.6*0.4+(1-0.6)*0.25,为0.34。
第三个冷超级区块的压缩效能因子cr_factor为0.25时,平均压缩效能因子ave_cr_factor更新为0.6*0.34+(1-0.6)*0.25,为0.3。
第四个冷超级区块的压缩效能因子cr_factor为0.5时,平均压缩效能因子ave_cr_factor更新为0.6*0.30+(1-0.6)*0.5,为0.38。
根据压缩效能因子cr_factor都是0.25的第一个~第三个冷超级区块所算出的平均压缩效能因子ave_cr_factor乃稳定趋近0.25;0.5→0.4→0.34→0.3。第四个冷超级区块的压缩效能因子cr_factor虽然骤升为0.5,也不会过度偏移平均压缩效能因子ave_cr_factor;0.3→0.38。根据本案技术动态维护的平均压缩效能因子ave_cr_factor可信度相当高。平均压缩效能因子ave_cr_factor详细应用如下。
一种实施方式中,运算单元更为各超级区块估算其中所有有效钥值KV数据的原始尺寸,得数值valid_kv_size。如果一超级区块所有的钥值KV数据都为有效,则数值valid_kv_size等于数值total_kv_size。若该些钥值KV数据中,存在无效的钥值KV数据1(尺寸为kv1_size),则数值valid_kv_size为数值total_kv_size减去kv1_size。
以热超级区块h_1、h_2…h_n组成的热空间为例,运算单元为其存储内容预估第一压缩尺寸estimate_hot_disk_usage,为:
estimate_hot_disk_usage=
(valid_kv_size[h_1]+valid_kv_size[h_2]+…
+valid_kv_size[h_n])*ave_cr_factor
以冷超级区块c_1、c_2…c_m组成的冷空间为例,运算单元为其存储内容预估第二压缩尺寸estimate_cold_disk_usage,为:
estimate_cold_disk_usage=
valid_kv_size[c_1]*cr_factor[c_1]+
valid_kv_size[c_2]*cr_factor[c_2]+…+
valid_kv_size[c_m]*cr_factor[c_m]
运算单元更加总上述第一以及第二压缩尺寸estimate_hot_disk_usage以及estimate_cold_disk_usage,得出完整数据存储空间消耗estimate_disk_usage,计算如下:
estimate_disk_usage=
estimate_hot_disk_usage+estimate_cold_disk_usage
相较于闪存的额定容量disk_usage,即可决定是否要锁住该闪存。
一种实施方式中,容量消耗estimate_disk_usage小于额定容量disk_usage至少一临界值,闪存被判定空间充裕。反之,闪存需被锁住禁写。
图4为方块图,根据本案一种实施方式图解数据存储系统400,包括主机402以及数据存储装置404。主机402上建立钥值KV应用程序编程接口(Key-Value ApplicationProgramming Interface)406与用户沟通。主机402的运算单元405更可实现钥值KV装置驱动器(Key-Value Device Driver)408,根据用户经钥值KV应用程序编程接口402所提出的要求,驱动数据存储装置404,通过装置端的控制器410操作闪存412。
主机402要求写入闪存412的数据是先写入热超级区块,如标号h_1…h_n,其集合为热空间414。用户没有通过钥值KV应用程序编程接口406发出闪存412存取要求时,钥值KV装置驱动器408即可以背景方式(后台)实行压缩型垃圾回收;例如,将热空间414的有效钥值KV数据以压缩形式收集至冷空间416。钥值KV装置驱动器408会监控闪存412的数个数据,包括:热超级区块h_1…h_n中有效钥值KV数据(kv)的原始尺寸valid_kv_size[h_1]…valid_kv_size[h_n]、冷超级区块c_1…c_m中有效钥值KV数据(kv)的原始尺寸valid_kv_size[c_1]…valid_kv_size[c_m]、冷超级区块c_1…c_m的压缩效能因子cr_factor[c_1]…cr_factor[c_m]、以及整体闪存412的平均压缩效能因子ave_cr_factor。
钥值KV装置驱动器408将根据这些数值进行压缩结果估算,预估出闪存412的容量消耗estimate_disk_usage,据以判定是否要锁住数据存储装置404的写入功能。
如此压缩型垃圾回收以及/或压缩结果估算不限定由主机402端的运算单元405执行钥值KV装置驱动器408而实现。其他实施方式是由数据存储装置404上的控制器410提供的处理器运算实现,或是由数据存储装置412以及主机402联合运算实现。
图5为流程图,图解根据本案一种实施方式所实现的容量消耗估算方法。所示流程可由钥值KV装置驱动器408实现,或者,由控制器410实现,或者,由钥值KV装置驱动器408以及控制器410联合实现。
步骤S502随着闪存412的使用动态更新数值valid_kv_size[h_1]…valid_kv_size[h_n]、valid_kv_size[c_1]…valid_kv_size[c_m]、cr_factor[c_1]…cr_factor[c_m]、以及ave_cr_factor。
步骤S504判断主机402要求写入闪存412的钥值KV数据是否累积到爆卡临界。若否,流程继续步骤S502的数值动态更新。反之,流程进行步骤S506。
步骤S506估算第一压缩尺寸estimate_hot_disk_usage以及第二压缩尺寸estimate_cold_disk_usage,加总出容量消耗estimate_disk_usage。
步骤S508判断容量消耗estimate_disk_usage是否也达爆卡临界。若否,流程继续步骤S502的数值动态更新。反之,流程进行步骤S510。
步骤S510锁卡因应爆卡状况。
以上控制器对闪存的操作设计也可以由其他结构实现。凡是根据前述概念操作对钥值KV数据所产生的容量消耗做出准确估算者,都属于本案欲保护范围。本案更可以前述概念实现非挥发式存储器的控制方法。
虽然本发明已以较佳实施例公开如上,然其并非用以限定本发明,任何本领域的技术人员,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当视前附的权利要求书所界定者为准。
Claims (22)
1.一种数据存储系统,其特征在于,包括:
一非挥发式存储器;以及
一运算单元,耦接该非挥发式存储器,建构来计算钥值数据于该非挥发式存储器的一平均压缩效能因子,并根据该平均压缩效能因子估算该非挥发式存储器的一容量消耗,以供判断是否切换该非挥发式存储器为禁制写入,
其中:
该平均压缩效能因子随着该非挥发式存储器的程序化动态调整,为该非挥发式存储器中多个空间的压缩效能因子的权重结果。
2.如权利要求1所述的数据存储系统,其特征在于:
该非挥发式存储器为闪存;
该运算单元令钥值数据压缩至该闪存为多个冷超级区块;
该运算单元为各冷超级区块估算一个对应的压缩效能因子,据以估算该平均压缩效能因子。
3.如权利要求2所述的数据存储系统,其特征在于:
该运算单元为各冷超级区块估算的该个压缩效能因子为cr_factor,所作估算为:
cr_factor=total_sb_space/total_kv_size,
其中,
total_sb_space为所对应的冷超级区块的一额定容量;且
total_kv_size为所对应的冷超级区块内有效以及无效的钥值数据的原始尺寸。
4.如权利要求3所述的数据存储系统,其特征在于:
各钥值数据的原始尺寸为kv_size;且
该运算单元估算:
kv_size=len(prefix)+len(key)+len(value)+len(mark),
其中:
prefix为所属钥值数据的前缀,尺寸为len(prefix);
key为所属钥值数据的钥,尺寸为len(key);
value为所属钥值数据的值,尺寸为len(value);且
mark为所属钥值数据的记号,尺寸为len(mark)。
5.如权利要求3所述的数据存储系统,其特征在于:
该平均压缩效能因子为ave_cr_factor;且
该运算单元估算:
ave_cr_factor(new)=a*ave_cr_factor(old)+(1-a)*cr_factor(new)
其中:
ave_cr_factor(new)为新版本的平均压缩效能因子;
ave_cr_factor(old)为前一版本的平均压缩效能因子;
cr_factor(new)为最新形成的冷超级区块的压缩效能因子;且
a为权重。
6.如权利要求5所述的数据存储系统,其特征在于:
该运算单元令该平均压缩效能因子为ave_cr_factor的初始值乃基于所使用的一压缩算法的一压缩效能因子预设值而设定。
7.如权利要求5所述的数据存储系统,其特征在于:
该运算单元令该平均压缩效能因子为ave_cr_factor的初始值乃头一个冷压缩超级区块的压缩效能因子。
8.如权利要求5所述的数据存储系统,其特征在于:
该运算单元令钥值数据程序化至该闪存为多个热超级区块,再压缩至该等冷超级区块;
该运算单元为上述冷超级区块以及热超级区块分别估算其内有效的钥值数据的原始尺寸,为valid_kv_size,与该平均压缩效能因子以及上述压缩效能因子联合应用于估算该容量消耗。
9.如权利要求8所述的数据存储系统,其特征在于,该运算单元进行运算:
estimate_hot_disk_usage=
(valid_kv_size[h_1]+valid_kv_size[h_2]+…
+valid_kv_size[h_n])*ave_cr_factor;以及
estimate_cold_disk_usage=
valid_kv_size[c_1]*cr_factor[c_1]+
valid_kv_size[c_2]*cr_factor[c_2]+…+
valid_kv_size[c_m]*cr_factor[c_m];
其中:
estimate_hot_disk_usage对应该非挥发式存储器所有上述热超级区块组成的一热空间,为一第一压缩尺寸;
h_1、h_2…至h_n为该非挥发式存储器所有上述热超级区块,且其内有效的钥值数据的原始尺寸分别为valid_kv_size[h_1]、valid_kv_size[h_2]…至valid_kv_size[h_n];
estimate_cold_disk_usage对应该非挥发式存储器所有上述冷超级区块组成的一冷空间,为一第二压缩尺寸;且
c_1、c_2…至c_m为该非挥发式存储器所有上述冷超级区块,且其内有效的钥值数据的原始尺寸分别为valid_kv_size[c_1]、valid_kv_size[c_2]…至valid_kv_size[c_m],且其压缩效能因子分别为cr_factor[c_1]、cr_factor[c_2]…至cr_factor[c_m]。
10.如权利要求9所述的数据存储系统,其特征在于,该运算单元进行运算:
estimate_disk_usage=
estimate_hot_disk_usage+estimate_cold_disk_usage
其中:
estimate_disk_usage为该容量消耗。
11.如权利要求1所述的数据存储系统,其特征在于:
该运算单元设置于一主机,经该非挥发式存储器所在的一装置端的一控制器操控该非挥发式存储器。
12.如权利要求1所述的数据存储系统,其特征在于:
该运算单元由该非挥发式存储器所在的一装置端的一控制器实现;
该控制器响应一主机操控该非挥发式存储器。
13.一种非挥发式存储器控制方法,其特征在于,包括:
计算钥值数据于一非挥发式存储器的一平均压缩效能因子;且
根据该平均压缩效能因子估算该非挥发式存储器的一容量消耗,以供判断是否切换该非挥发式存储器为禁制写入,
其中:
该平均压缩效能因子随着该非挥发式存储器的程序化动态调整,为该非挥发式存储器中多个空间的压缩效能因子的权重结果。
14.如权利要求13所述的方法,其特征在于:
该非挥发式存储器为闪存;
钥值数据压缩至该闪存为多个冷超级区块;且
所述方法为各冷超级区块估算一个对应的压缩效能因子,据以估算该平均压缩效能因子。
15.如权利要求14所述的方法,其特征在于,更为各冷超级区块估算的该个压缩效能因子为cr_factor,所作估算为:
cr_factor=total_sb_space/total_kv_size,
其中,
total_sb_space为所对应的冷超级区块的一额定容量;且
total_kv_size为所对应的冷超级区块内有效以及无效的钥值数据的原始尺寸。
16.如权利要求15所述的方法,其特征在于:
各钥值数据的原始尺寸为kv_size;且
该方法包括估算:
kv_size=len(prefix)+len(key)+len(value)+len(mark),
其中:
prefix为所属钥值数据的前缀,尺寸为len(prefix);
key为所属钥值数据的钥,尺寸为len(key);
value为所属钥值数据的值,尺寸为len(value);且
mark为所属钥值数据的记号,尺寸为len(mark)。
17.如权利要求15所述的方法,其特征在于:
该平均压缩效能因子为ave_cr_factor;且
该方法包括估算:
ave_cr_factor(new)=a*ave_cr_factor(old)+(1-a)*cr_factor(new)
其中:
ave_cr_factor(new)为新版本的平均压缩效能因子;
ave_cr_factor(old)为前一版本的平均压缩效能因子;
cr_factor(new)为最新形成的冷超级区块的压缩效能因子;且
a为权重。
18.如权利要求17所述的方法,更包括:
令该平均压缩效能因子为ave_cr_factor的初始值乃基于所使用的一压缩算法的一压缩效能因子预设值而设定。
19.如权利要求17所述的方法,其特征在于,更包括:
令该平均压缩效能因子为ave_cr_factor的初始值乃头一个冷压缩超级区块的压缩效能因子。
20.如权利要求17所述的方法,其特征在于,更包括:
令钥值数据程序化至该闪存为多个热超级区块,再压缩至该等冷超级区块;
为上述冷超级区块以及热超级区块分别估算其内有效的钥值数据的原始尺寸,为valid_kv_size,与该平均压缩效能因子以及上述压缩效能因子联合应用于估算该容量消耗。
21.如权利要求20所述的方法,其特征在于,更包括进行运算:
estimate_hot_disk_usage=
(valid_kv_size[h_1]+valid_kv_size[h_2]+…
+valid_kv_size[h_n])*ave_cr_factor;以及
estimate_cold_disk_usage=
valid_kv_size[c_1]*cr_factor[c_1]+
valid_kv_size[c_2]*cr_factor[c_2]+…+
valid_kv_size[c_m]*cr_factor[c_m];
其中:
estimate_hot_disk_usage对应该非挥发式存储器所有上述热超级区块组成的一热空间,为一第一压缩尺寸;
h_1、h_2…至h_n为该非挥发式存储器所有上述热超级区块,且其内有效的钥值数据的原始尺寸分别为valid_kv_size[h_1]、valid_kv_size[h_2]…至valid_kv_size[h_n];
estimate_cold_disk_usage对应该非挥发式存储器所有上述冷超级区块组成的一冷空间,为一第二压缩尺寸;且
c_1、c_2…至c_m为该非挥发式存储器所有上述冷超级区块,且其内有效的钥值数据的原始尺寸分别为valid_kv_size[c_1]、valid_kv_size[c_2]…至valid_kv_size[c_m],且其压缩效能因分别为cr_factor[c_1]、cr_factor[c_2]…至cr_factor[c_m]。
22.如权利要求21所述的方法,其特征在于,更包括进行运算:
estimate_disk_usage=
estimate_hot_disk_usage+estimate_cold_disk_usage
其中:
estimate_disk_usage为该容量消耗。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010227634.6A CN113448492B (zh) | 2020-03-27 | 2020-03-27 | 数据存储系统以及非挥发式存储器控制方法 |
US17/163,739 US11402995B2 (en) | 2020-03-27 | 2021-02-01 | Data storage system in a key-value storage architecture with data compression, and non-volatile memory control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010227634.6A CN113448492B (zh) | 2020-03-27 | 2020-03-27 | 数据存储系统以及非挥发式存储器控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113448492A CN113448492A (zh) | 2021-09-28 |
CN113448492B true CN113448492B (zh) | 2022-06-24 |
Family
ID=77807744
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010227634.6A Active CN113448492B (zh) | 2020-03-27 | 2020-03-27 | 数据存储系统以及非挥发式存储器控制方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11402995B2 (zh) |
CN (1) | CN113448492B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116414727A (zh) * | 2023-06-12 | 2023-07-11 | 深圳大普微电子科技有限公司 | 闪存设备的空间管理方法、存储控制芯片及闪存设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101956606A (zh) * | 2010-09-05 | 2011-01-26 | 张显荣 | 辐流式涡轮发动机 |
US8169825B1 (en) * | 2008-09-02 | 2012-05-01 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells subjected to long retention periods |
CN109254926A (zh) * | 2017-07-13 | 2019-01-22 | 慧荣科技股份有限公司 | 数据储存装置及非挥发式存储器操作方法 |
US10521399B1 (en) * | 2016-08-07 | 2019-12-31 | .Infinidat Ltd | Compression control based on compression ratio estimation |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5382227B2 (ja) * | 2010-08-31 | 2014-01-08 | 日本電気株式会社 | ストレージシステム |
US9772939B2 (en) * | 2015-01-05 | 2017-09-26 | International Business Machines Corporation | Heat-based key-value slot organization for flash-optimized data placement in multi-tiered storage systems |
US10768993B2 (en) * | 2017-09-29 | 2020-09-08 | Nicira, Inc. | Adaptive, performance-oriented, and compression-assisted encryption scheme |
US10732884B1 (en) * | 2019-03-28 | 2020-08-04 | International Business Machines Corporation | Implementing redundant array of independent disks (RAID) arrays having compressed data stored therein |
-
2020
- 2020-03-27 CN CN202010227634.6A patent/CN113448492B/zh active Active
-
2021
- 2021-02-01 US US17/163,739 patent/US11402995B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8169825B1 (en) * | 2008-09-02 | 2012-05-01 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells subjected to long retention periods |
CN101956606A (zh) * | 2010-09-05 | 2011-01-26 | 张显荣 | 辐流式涡轮发动机 |
US10521399B1 (en) * | 2016-08-07 | 2019-12-31 | .Infinidat Ltd | Compression control based on compression ratio estimation |
CN109254926A (zh) * | 2017-07-13 | 2019-01-22 | 慧荣科技股份有限公司 | 数据储存装置及非挥发式存储器操作方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113448492A (zh) | 2021-09-28 |
US11402995B2 (en) | 2022-08-02 |
US20210303171A1 (en) | 2021-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10915475B2 (en) | Methods and apparatus for variable size logical page management based on hot and cold data | |
US8364931B2 (en) | Memory system and mapping methods using a random write page mapping table | |
US8078794B2 (en) | Hybrid SSD using a combination of SLC and MLC flash memory arrays | |
US8321652B2 (en) | Process and method for logical-to-physical address mapping using a volatile memory device in solid state disks | |
EP2519880B1 (en) | Micro-update architecture for address tables | |
TWI306263B (zh) | ||
US20110264884A1 (en) | Data storage device and method of operating the same | |
US20110099323A1 (en) | Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping | |
US20080183955A1 (en) | Flash translation layer apparatus | |
JP2015530685A (ja) | ソリッドステートドライブにおける物理論理マッピングのための方法、装置及びシステム | |
US9830106B2 (en) | Management of memory array with magnetic random access memory (MRAM) | |
US11520698B2 (en) | Data storage device in a key-value storage architecture with data compression, and non-volatile memory control method | |
JP2008507756A (ja) | 最適化されたシーケンシャルなクラスタの管理のためのfat分析 | |
EP3346387B1 (en) | Storage system and system garbage collection method | |
US20090132757A1 (en) | Storage system for improving efficiency in accessing flash memory and method for the same | |
KR101017067B1 (ko) | 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법 | |
US11334480B2 (en) | Data storage device and non-volatile memory control method | |
TWI718710B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
CN111610930A (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
CN113448492B (zh) | 数据存储系统以及非挥发式存储器控制方法 | |
Kwon et al. | An efficient and advanced space-management technique for flash memory using reallocation blocks | |
CN112100087B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
CN112130750A (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
CN111610929B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
TWI713032B (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 |