存储设备的智能数据分流与流跟踪制造技术

技术编号:23672080 阅读:30 留言:0更新日期:2020-04-04 17:37
本申请公开了存储设备的智能数据分流与流跟踪。所公开的智能数据分流包括以下步骤:获取IO命令;根据IO命令获取更新参数;以及根据更新参数为IO命令分配流。

Intelligent data diversion and flow tracking of storage devices

【技术实现步骤摘要】
存储设备的智能数据分流与流跟踪
本申请涉及存储技术,尤其涉及将访问存储设备的数据识别为多个流,以及自适应地跟踪所识别的多个数据流。
技术介绍
图1展示了存储设备的框图。存储设备102同主机相耦合,用于为主机提供存储能力。主机同存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATA(SerialAdvancedTechnologyAttachment,串行高级技术附件)、SCSI(SmallComputerSystemInterface,小型计算机系统接口)、SAS(SerialAttachedSCSI,串行连接SCSI)、IDE(IntegratedDriveElectronics,集成驱动器电子)、USB(UniversalSerialBus,通用串行总线)、PCIE(PeripheralComponentInterconnectExpress,PCIe,高速外围组件互联)、NVMe(NVMExpress,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与固态存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个NVM芯片105以及DRAM(DynamicRandomAccessMemory,动态随机访问存储器)110。NAND闪存、相变存储器、FeRAM(FerroelectricRAM,铁电存储器)、MRAM(MagneticRandomAccessMemory,磁阻存储器)、RRAM(ResistiveRandomAccessMemory,阻变存储器)等是常见的NVM。接口103可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光纤通道等方式与主机交换数据。控制部件104用于控制在接口103、NVM芯片105以及DRAM110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。控制部件104可通过软件、硬件、固件或其组合的多种方式实现,例如,控制部件104可以是FPGA(Field-programmablegatearray,现场可编程门阵列)、ASIC(ApplicationSpecificIntegratedCircuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件104的硬件来处理IO(Input/Output)命令。控制部件104还可以耦合到DRAM110,并可访问DRAM110的数据。在DRAM可存储FTL表和/或缓存的IO命令的数据。控制部件104包括闪存接口控制器(或称为介质接口控制器、闪存通道控制器),闪存接口控制器耦合到NVM芯片105,并以遵循NVM芯片105的接口协议的方式向NVM芯片105发出命令,以操作NVM芯片105,并接收从NVM芯片105输出的命令执行结果。已知的NVM芯片接口协议包括“Toggle”、“ONFI”等。在固态存储设备中,利用FTL(FlashTranslationLayer,闪存转换层)来维护从逻辑地址到物理地址的映射信息。逻辑地址构成了操作系统等上层软件所感知到的固态存储设备的存储空间。物理地址是用于访问固态存储设备的物理存储单元的地址。在相关技术中还可利用中间地址形态实施地址映射。例如将逻辑地址映射为中间地址,进而将中间地址进一步映射为物理地址。存储了从逻辑地址到物理地址的映射信息的表结构被称为FTL表。FTL表是固态存储设备中的重要元数据。通常FTL表的数据项记录了固态存储设备中以数据页为单位的地址映射关系。图2示出了大块的示意图。大块包括来自多个逻辑单元(称为逻辑单元组)的每个的物理块。可选的,每个逻辑单元为大块提供一个物理块。作为举例,在每16个逻辑单元(LUN)上构造大块。每个大块包括16个物理块,来自16个逻辑单元(LUN)的每一个。在图2的例子中,大块0包括来自16个逻辑单元(LUN)的每个的物理块0,大块1包括来自每个逻辑单元(LUN)的物理块1。也可以有多种其他方式来构造大块。作为一种可选的方式,在大块中构造页条带,每个逻辑单元(LUN)内相同物理地址的物理页构成了“页条带”。图2中,物理页0-0、物理页0-1……与物理页0-x构成了页条带0,其中物理页0-0、物理页0-1……物理页0-14用于存储用户数据,而物理页0-15用于存储根据条带内的所有用户数据计算得到的校验数据。类似地,图2中,物理页2-0、物理页2-1……与物理页2-x构成了页条带2。可选地,用于存储校验数据的物理页可以位于页条带中的任意位置。当逻辑页被重复写入数据,FTL表条目中记录逻辑页地址与最新的物理页地址的对应关系,而曾经被写入数据但不再被引用(例如,FTL表中没有记录)的物理页地址中记录的数据成为“垃圾”(数据)。将已经被写入数据,且被引用(例如,在FTL表中有记录)的数据称为有效数据,而将“垃圾”称为脏数据。将含有脏数据的物理块称为“脏物理块”,将未被写入数据的物理块称为“空闲物理块”。
技术实现思路
存储设备中记录的数据被时常更新。将数据两次被更新之间的时间间隔称为数据的生命周期。多种数据具有不同的生命周期。例如,视频类数据生命周期较长或接近只读,作为互联网网页缓存的数据生命周期相对较短,也许为几小时、几天或几个月。从而随着使用,以存储设备中记录的数据逐渐因更新而变为无效。通过垃圾回收等操作来释放无效数据占据的空间。由于有效数据与无效数据被混合记录在存储介质中,导致垃圾回收过程需要搬移有效数据。对有效数据的搬移引起了写放大效应,影响了存储设备的性能与寿命。现有技术的垃圾回收操作,选择无效数据占比更高的存储介质进行垃圾回收,以努力降低写放大。根据本申请的实施例,将写入存储设备的数据区分为多个流,每个流的数据具有相同或相似的生命周期。以及还根据各个流的数据的生命周期的变化,使得属于流的数据即使生命周期发生波动,仍被划分为相同的流。流也有机会被拆分或合并,以使得流更好地指示所属数据的生命周期特征。相同流被尽量存储在存储介质的相同或临近的物理块或大块,不同的流被尽量存储在存储介质的不同的物理块或大块。物理块或大块在垃圾回收过程中作为整体被回收。由于属于同一流的数据具有相似的生命周期,在垃圾回收时,更容易得到无效数据占比更多的物理块或大块,从而降低垃圾回收过程引起的写放大。除了应用于垃圾回收过程,数据流也为存储设备优化对IO的处理提供了机会。根据本申请的第一方面,提供了根据本申请第一方面的第一分配数据流的方法,其中,包括以下步骤:获取IO命令;根据IO命令获取更新参数;以及根据更新参数为IO命令分配流。根据本申请第一方面的第一分配数据流的方法,提供了本申请第一方面的第二分配数据流的方法,其中,IO命令中携带更新参数。根据本申本文档来自技高网
...

【技术保护点】
1.一种分配数据流的方法,其特征在于,包括以下步骤:/n获取IO命令;/n根据IO命令获取更新参数;以及根据更新参数为IO命令分配流。/n

【技术特征摘要】
1.一种分配数据流的方法,其特征在于,包括以下步骤:
获取IO命令;
根据IO命令获取更新参数;以及根据更新参数为IO命令分配流。


2.根据权利要求1的分配数据流的方法,其特征在于,获取IO命令访问的数据单元,获取数据单元的更新时间间隔,根据g’=(1-k)*g+k*(dt)计算更新参数,其中g’是计算得到的更新参数,g是旧的更新参数,dt为更新时间间隔,0<k<1。


3.根据权利要求1-2任一项的分配数据流的方法,其特征在于,比较获取的数据单元的更新参数与一个或多个流的更新参数,为所述IO命令分配其更新参数同获取的更新参数的距离在阈值内的流。


4.根据权利要求3的分配数据流的方法,其特征在于,响应于为IO命令访问的数据单元分配流,根据数据单元的更新参数计算数据流的更新参数。


5.根据权利要求4的分配数据流的方法,其特征在于,若...

【专利技术属性】
技术研发人员:路向峰孙丛王金一
申请(专利权)人:北京忆恒创源科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1