CN112035061A - 固态硬盘资源分配方法、装置和存储介质 - Google Patents

固态硬盘资源分配方法、装置和存储介质 Download PDF

Info

Publication number
CN112035061A
CN112035061A CN202010835691.2A CN202010835691A CN112035061A CN 112035061 A CN112035061 A CN 112035061A CN 202010835691 A CN202010835691 A CN 202010835691A CN 112035061 A CN112035061 A CN 112035061A
Authority
CN
China
Prior art keywords
solid state
partition
state disk
hard disk
disk
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
Application number
CN202010835691.2A
Other languages
English (en)
Other versions
CN112035061B (zh
Inventor
刘永恒
吴超
廖清
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Peng Cheng Laboratory
Original Assignee
Peng Cheng Laboratory
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Peng Cheng Laboratory filed Critical Peng Cheng Laboratory
Priority to CN202010835691.2A priority Critical patent/CN112035061B/zh
Publication of CN112035061A publication Critical patent/CN112035061A/zh
Application granted granted Critical
Publication of CN112035061B publication Critical patent/CN112035061B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种固态硬盘资源分配方法,包括以下步骤:当硬盘IO从IO队列中被取出执行时,获取硬盘IO的属性以及固态硬盘的状况信息;将属性和状况信息识别为预设的强化模型的状态集中的其中一种状态;基于强化模型,获取与识别出的状态对应的动作;执行动作,以将硬盘IO分配给所述单位存储颗粒介质分区或三位存储颗粒介质分区。本发明还公开了一种装置和计算机可读存储介质,解决了无法充分考虑IO属性从而适应不同的负载需求的问题和无法均衡设备磨损的问题。

Description

固态硬盘资源分配方法、装置和存储介质
技术领域
本发明涉及计算机存储技术领域,尤其涉及一种固态硬盘资源分配方法、装置和计算机存储介质。
背景技术
固态硬盘(SSD)已经进入存储市场的主流行列,以其具有抗震抗摔、读取速度快、功耗低、重量低、噪音低等优越性,已经被越来越多的使用到了笔记本硬盘、微硬盘、移动固态硬盘等计算机领域。
传统的混合固态硬盘通常是在三位存储颗粒介质(TLC)上开辟某一块区域作为单位存储颗粒介质(SLC),结合TLC容量大低成本和SLC高性能寿命长的优点,但是在传统的混合固态硬盘中针对SLC资源的分配通常基于单一IO请求属性。因此,现有技术还存在无法充分考虑IO属性从而适应不同的负载需求的问题和无法均衡设备磨损的问题。
发明内容
本发明主要目的在于提供一种基于强化学习的固态硬盘资源分配方法、装置和计算机存储介质,旨在解决现有技术还存在无法充分考虑IO属性从而适应不同的负载需求的问题和无法均衡设备磨损的问题。
为实现上述目的,本发明提供一种固态硬盘资源分配方法,所述固态硬盘资源分配方法包括以下步骤:
当硬盘IO从IO队列中被取出执行时,获取所述硬盘IO的属性以及固态硬盘的状况信息;
将所述属性和状况信息识别为预设的强化模型的状态集中的其中一种状态;
基于所述强化模型,获取与识别出的状态对应的动作;
执行所述动作,以将所述硬盘IO分配给所述单位存储颗粒介质分区或三位存储颗粒介质分区。
在一实施例中,所述硬盘IO的属性包括:要求操作的存储空间的大小、IO队列中的硬盘IO的数量、是否为热数据以及操作类型;
所述固态硬盘的状况信息包括:单位存储颗粒介质分区和三位存储颗粒介质分区的大小、平均擦除次数。
在一实施例中,还包括:
计算所述强化模型的反馈参数并更新所述强化模型。
在一实施例中,所述计算所述强化模型的反馈参数并更新所述强化模型的步骤中,采用如下公式计算反馈参数:
Reward=(SD+α*TD+N)/T,
其中,T为上一时间段的硬盘IO延迟的平均值,N为所述上一时间段处理硬盘IO的数量,SD为单位存储颗粒介质分区的剩余寿命,TD为三位存储颗粒介质分区的剩余寿命,所述剩余寿命定义为剩余擦除次数与总擦除次数的比值,α为三位存储颗粒介质分区的寿命权重超参数,范围是0-1。
在一实施例中,所述基于所述强化模型,获取与识别出的状态对应的动作的步骤中,采用贪婪算法获取所述动作。
在一实施例中,所述执行所述动作的步骤包括:
获取所述动作对应的目标分区;所述目标分区为单位存储颗粒介质分区或者三位存储颗粒介质分区;
执行物理地址分配算法,将所述硬盘IO分配到对应的目标分区的具体物理页;
将所述硬盘IO的物理页信息更新到映射表中,对单位存储颗粒介质分区和三位存储颗粒介质分区分别维护各自的映射表算法,单位存储颗粒介质分区采用页映射,三位存储颗粒介质分区采用块映射。
在一实施例中,所述执行所述动作的步骤中,在执行物理地址分配算法之前还包括:
遍历所述动作的目标分区,计算所述目标分区的剩余空间和无效数据;
根据所述目标分区的剩余空间和无效数据判断所述目标分区是否需要执行垃圾回收,当所述目标分区满足垃圾回收的条件时,执行垃圾回收算法并将回收空间初始化为三位存储颗粒介质空间。
在一实施例中,所述垃圾回收条件包括以下二者至少之一:
固态硬盘处于空闲期,空闲块的数量少于预先设定的空闲块数量阈值;
固态硬盘处于空闲期,无效数据的总比例超过设定无效比例的阈值。
为实现上述目的,本发明还提供一种装置,所述装置包括存储器、处理器以及存储在所述存储器并可在所述处理器上运行的固态硬盘资源分配程序,所述固态硬盘资源分配程序被所述处理器执行时实现如上所述的固态硬盘资源分配方法的各个步骤。
为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有固态硬盘资源分配程序,所述固态硬盘资源分配程序被处理器执行时实现如上所述的固态硬盘资源分配方法的各个步骤。
本发明提供的固态硬盘资源分配方法、装置和计算机存储介质,当硬盘IO从IO队列中被取出执行时,获取硬盘IO的属性以及固态硬盘的状况信息;将属性和状况信息识别为预设的强化模型的状态集中的其中一种状态;基于强化模型,获取与识别出的状态对应的动作;执行动作,以将硬盘IO分配给单位存储颗粒介质分区或三位存储颗粒介质分区。由于识别硬盘IO的属性和固态硬盘的状况信息为预设的强化模型的状态集中的其中一种状态,根据强化模型识别出状态对应的动作,强化模型经过大量的IO负载训练,则通过强化学习从强化模型中可以选择最优动作,将IO分配到对应的单位存储颗粒介质分区或者三位存储颗粒介质分区,从而解决了现有技术还存在无法充分考虑IO属性从而适应不同的负载需求的问题和无法均衡设备磨损的问题。
附图说明
图1为本发明实施例涉及的装置结构示意图;
图2为本发明固态硬盘资源分配方法的第一实施例的流程示意图;
图3为本发明固态硬盘资源分配方法的第二实施例的流程示意图;
图4为本发明固态硬盘资源分配方法的第三实施例的流程示意图;
图5为本发明固态硬盘资源分配方法的第四实施例的流程示意图。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:当硬盘IO从IO队列中被取出执行时,获取硬盘IO的属性以及固态硬盘的状况信息;将属性和状况信息识别为预设的强化模型的状态集中的其中一种状态;基于强化模型,获取与识别出的状态对应的动作;执行动作,以将硬盘IO分配给单位存储颗粒介质分区或三位存储颗粒介质分区。由于识别硬盘IO的属性和固态硬盘的状况信息为预设的强化模型的状态集中的其中一种状态,根据强化模型识别出状态对应的动作,强化模型经过大量的IO负载训练,则通过强化学习从强化模型中可以选择最优动作,将IO分配到对应的单位存储颗粒介质分区或者三位存储颗粒介质分区,从而解决了现有技术还存在无法充分考虑IO属性从而适应不同的负载需求的问题和无法均衡设备磨损的问题。
作为一种实现方式,可以如图1所示,图1是本发明实施例方案涉及的装置结构示意图。
装置1000包括至少一个处理器(例如CPU)1100、存储器1200。
处理器1100可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1100中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1100可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1200,处理器1100读取存储器1200中的信息,结合其硬件完成上述方法的步骤。
可以理解,本发明实施例中的存储器1200可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本发明实施例描述的系统和方法的存储器1200旨在包括但不限于这些和任意其它适合类型的存储器。
对于软件实现,可通过执行本发明实施例所述功能的模块(例如过程、函数等)来实现本发明实施例所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
基于上述结构,提出本发明固态硬盘资源分配方法的实施例。
参照图2,图2为本发明固态硬盘资源分配方法的第一实施例,所述固态硬盘资源分配方法包括以下步骤:
步骤S110,当硬盘IO从IO队列中被取出执行时,获取所述硬盘IO的属性以及固态硬盘的状况信息;
步骤S120,将所述属性和状况信息识别为预设的强化模型的状态集中的其中一种状态;
步骤S130,基于所述强化模型,获取与识别出的状态对应的动作;
步骤S140,执行所述动作,以将所述硬盘IO分配给所述单位存储颗粒介质分区或三位存储颗粒介质分区。
在本实施例中,SSD即固态硬盘(Solid State Disk或Solid State Drive),也称作电子硬盘或者固态电子盘,是由控制单元和固态存储单元(DRAM或FLASH芯片)组成的存储设备,目前支持SATA、FC、SAS接口,可以替代普通的机械硬盘。固态硬盘的接口规范和定义、功能及使用方法上与普通硬盘的相同,在产品外形和尺寸上也与普通硬盘一致。目前,固态硬盘主要以闪存和DRAM两种存储介质为主,闪存包括NAND和NOR两种类型,本发明涉及的是基于闪存NAND的固态硬盘,基于NAND闪存的SSD分为采用同质结构和异质结构组成,同质结构即采用单一的SLC(单位存储颗粒介质)、MLC(二位存储颗粒介质)、TLC(三位存储颗粒介质)芯片构成底层的物理存储。SLC结构简单,每个单元存储1bit数据;MLC结构相对来说复杂,每个单元存储2bit数据;TLC结构相对来说最复杂,每个单元存储3bit数据。SLC的速度快,寿命长,容量小,价格贵;MLC的速度一般,寿命一般,容量相对来说较大,价格适中;TLC速度慢,寿命短,容量最大,价格低。所以本发明是结合SLC与TLC优点的混合固态硬盘的应用。
在本实施例中,硬盘IO指的是固态硬盘IO,IO请求在被执行前会进入IO队列等待调度,当硬盘IO从IO队列中被取出执行的时候,获取IO的属性和固态硬盘的状况信息,硬盘IO的属性包括但不限于要求操作的存储空间的大小即硬盘IO的尺寸、IO队列中的硬盘IO的数量、是否为热数据,热数据的定义为最近时间片内是否重复访问或更新、操作类型。操作类型包括硬盘IO为读数据操作或者写数据操作。四个属性按照观察结果分为若干个范围,例如IO尺寸被划分为0KB-100KB、100KB-1MB、1MB-100MB、100MB-1GB等;IO数量被划分为0-100、100-500、500-1000、1000-10000等;热数据数量被划分为0-100、100-500、500-1000、1000-10000等。固态硬盘的状况信息包括但不限于:固态硬盘中单位存储颗粒介质分区的大小,它包括单位颗粒介质分区已使用存储空间的大小和空闲存储空间的大小;固态硬盘中三位存储颗粒介质分区的大小,它包括已使用存储空间的大小和空闲存储空间的大小。平均擦除次数指的是单位存储颗粒介质分区的平均擦除次数和三位存储颗粒介质分区的平均擦除次数,对于单位存储颗粒介质分区和三位存储颗粒介质分区来说擦除次数都是有限的,超过擦除次数后该存储单元存储数据不再可靠,当然单位存储颗粒介质分区的可擦除次数是远远大于三位存储颗粒介质分区的可擦除介质分区,所以分区各自的平均擦除次数在对固态硬盘资源分配的一个重要指标。强化模型将单位存储颗粒介质区域和三位存储颗粒介质区域的尺寸以及各自的平均擦除次数也各自分为若干个区域(粗粒度可以按照通道分,细粒度可以按照芯片,die(晶圆)或者plane(分条)来分,具体粒度取决于固态硬盘的体积以及运行状态),例如,将SLC分区尺寸分为0-64MB、64MB-128MB、128MB-256MB、256MB-512MB等;将TLC分区尺寸分为0-1GB、1GB-32GB、32GB-64GB、64GB-512GB等;将SLC分区平均擦除次数分为0-1000、1000-5000、5000-10000、10000-5000等;将TLC分区平均擦除次数分为0-100、100-1000、1000-3000、3000-10000等。当然这些划分只是列出的大概范围,其他数值范围的划分也应当属于本申请的保护范围之内。
在本实施例中,强化模型根据IO属性和固态硬盘的硬件结构来设定,使用大量的IO负载来训练强化模型,存储强化模型,该强化模型的数据库可以为一个二维表格,横轴为所有的状态,纵轴为每个状态下对应的动作,所以当硬盘IO被取出执行时,将硬盘IO的属性和固态硬盘的状况信息识别为强化模型的状态集中的其中一种状态,基于设定的强化模型,通过贪婪算法从强化模型中获取与识别出的状态对应的动作。按照IO属性划分的示例如下表所示:
Figure BDA0002636289890000081
在本实施例中,通过强化学习来识别状态对应的动作,强化学习(reinforcementlearning)又称再励学习、评价学习,是一种重要的机器学习。是智能体(Agent)在环境中学习如何将状态映射到动作从而最大化数字奖励信号的一种学习方法。其学习过程可以归结为三个信号在一个Agent和它的环境之间依据策略来回传递。三个信号分别为:Agent所处的环境的状态(state),记为s;Agent所做出的动作(action),奖赏值记为r。Agent和环境间传递模式如下:
(1)Agent感知当前的环境状态s;
(2)根据当前的s,Agent选择一个动作a并执行;
(3)当Agent所做出的a作用于环境时,环境转移到s',并给出奖赏值r;
(4)Agent根据环境反馈的r,计算回报(return),并以此作为内部策略更新的依据。
强化学习框架由5个基本部分组成:状态s,动作a,策略π,奖赏值r和环境。策略π:S→A被定义为从状态空间到动作空间的映射。Agent在当前s下依据策略π来选择一个a,执行a后转移至下一个状态s',并接受环境反馈回来的r。环境是强化学习过程中对外界环境状态的仿真。强化学习是根据当前的状态通过调整策略选择优动作以最大化取得数值回报的问题。
在本实施例中,执行强化模型中识别出的状态对应的动作,将硬盘IO分配给单位存储颗粒介质分区或者三位存储颗粒介质分区中,例如,硬盘IO尺寸较大,但是该硬盘IO最近时间片内重复访问,那么根据硬盘IO的属性和固态硬盘的状况信息识别出在强化模型的状态对应的动作为:将IO分配给单位存储颗粒介质分区,则将该硬盘IO分配到单位存储颗粒介质分区保证负载重复访问时的性能最优;例如,硬盘IO尺寸较小,但是负载小尺寸IO特别多,为了防止负载小尺寸IO特别多而导致单位存储颗粒介质资源的寿命损耗加快而导致单位存储颗粒介质分区击穿,那么根据硬盘IO的属性和固态硬盘的状况信息识别出在强化模型的状态对应的动作为:将IO分配给三位存储颗粒介质分区,则将该硬盘IO分配到三位存储颗粒介质分区保证单位存储颗粒介质分区的寿命更佳,均衡设备的磨损。
在本实施例提供的技术方案中,当硬盘IO从IO队列中被取出执行时,获取硬盘IO的属性以及固态硬盘的状况信息;将属性和状况信息识别为预设的强化模型的状态集中的其中一种状态;基于强化模型,获取与识别出的状态对应的动作;执行动作,以将硬盘IO分配给单位存储颗粒介质分区或三位存储颗粒介质分区。由于识别硬盘IO的属性和固态硬盘的状况信息为预设的强化模型的状态集中的其中一种状态,根据强化模型识别出状态对应的动作,强化模型经过大量的IO负载训练,则通过强化学习从强化模型中可以选择最优动作,将IO分配到对应的单位存储颗粒介质分区或者三位存储颗粒介质分区,从而解决了现有技术还存在无法充分考虑IO属性从而适应不同的负载需求的问题和无法均衡设备的磨损的问题。
参照图3,图3为本发明固态硬盘资源分配方法的第二实施例,所述固态硬盘资源分配方法包括以下步骤:
步骤S210,当硬盘IO从IO队列中被取出执行时,获取所述硬盘IO的属性以及固态硬盘的状况信息;
步骤S220,将所述属性和状况信息识别为预设的强化模型的状态集中的其中一种状态;
步骤S230,基于所述强化模型,获取与识别出的状态对应的动作;
步骤S240,执行所述动作,以将所述硬盘IO分配给所述单位存储颗粒介质分区或三位存储颗粒介质分区;
步骤S250,计算所述强化模型的反馈参数并更新所述强化模型。
与第一实施例相比,第二实施例包含步骤S250,其他步骤与第一实施例相同,不再赘述。
在本实施例中,反馈需要考虑固态硬盘的性能和寿命两个要素,主要包括IO的延迟,IO的吞吐量以及SLC和TLC区域各自的擦除次数。因此,计算强化模型的反馈参数可优选为:采集上一秒硬盘IO的延迟,在缓存中存储上一秒的所有硬盘IO延迟,计算上一秒硬盘IO的平均延迟以及上一秒的存储硬盘IO数量,同时采集当前单位存储颗粒介质和三位存储颗粒介质分区的剩余寿命,通过公式
Reward=(SD+α*TD+N)/T,
来计算反馈参数,其中,T为上一秒的硬盘IO延迟的平均值,N为上一秒处理的硬盘IO的数量,这两个值分别用各自的采集最大值来正交化;SD为单位存储颗粒介质分区的剩余寿命,TD为三位存储颗粒介质分区的剩余寿命,寿命定义为剩余擦除次数与总擦除次数的比值,α为三位存储颗粒介质分区的寿命权重超参数,范围是0-1,可由厂家根据各自单位存储颗粒介质和三位存储颗粒介质的总擦除次数来自行设定,在这里可优选为0.1。然后将计算得到的反馈参数更新到强化模型中。
在本实施例提供的技术方案中,通过公式计算反馈参数,将反馈参数更新到强化模型中,综合考虑固态硬盘的性能和固态硬盘的寿命,根据反馈参数实时更新强化模型中的状态集对应的动作,使后面接收到的硬盘IO选择更优的操作,保证了固态硬盘的性能更优固态硬盘的寿命最佳。
参照图4,图4为本发明固态硬盘资源分配方法的第三实施例,所述固态硬盘资源分配方法包括以下步骤:
步骤S310,当硬盘IO从IO队列中被取出执行时,获取所述硬盘IO的属性以及固态硬盘的状况信息;
步骤S320,将所述属性和状况信息识别为预设的强化模型的状态集中的其中一种状态;
步骤S330,基于所述强化模型,获取与识别出的状态对应的动作;
步骤S340,获取所述动作对应的目标分区;所述目标分区为单位存储颗粒介质分区或者三位存储颗粒介质分区;
步骤S350,执行物理地址分配算法,将所述硬盘IO分配到对应分区的具体物理页;
步骤S360,将所述硬盘IO的物理页信息更新到映射表中,对单位存储颗粒介质分区和三位存储颗粒介质分区分别维护各自的映射表算法,单位存储颗粒介质分区采用页映射,三位存储颗粒介质分区采用块映射。
与第一实施例相比,第四实施例包含步骤S340,步骤S350,步骤S360,其他步骤与第一实施例相同,不再赘述。
在本实施例中,为了隐藏闪存的写前擦除和异地更新特性,当接收到来自文件系统的更新写命令时,FTL(闪存转换层)会采用地址重映射机制,将存储着旧版本数据的物理地址标记为无效,然后为新的数据分配新的空闲物理地址。按照地址映射的粒度,地址映射可以分为页级映射、块级映射和混合映射,在本实施例应用了页级映射和块级映射。
在本实施例中,获取动作对应的目标分区,目标分区可以是单位存储颗粒介质分区,也可以是三位存储颗粒介质分区,然后再执行物理地址分配算法,将硬盘IO分配到对应分区的具体物理页。
在本实施例中,页级映射需要建立逻辑页和物理页之间的映射关系。这种映射机制优点是映射灵活,可以充分地利用闪存内的所有物理块;缺点是维护页映射关系表需要大量的SRAM空间。块级映射中,逻辑地址由逻辑块号和偏移量组成,而逻辑块和物理块内的偏移量是相同的,块映射表仅需维护逻辑块与物理块之间的映射信息,由于映射粒度大,与页映射相比,块级映射可以大量减少维护映射表所需的SRAM空间,然而,这种映射机制的缺陷是灵活性差。所以我们综合考虑页映射和块映射的优缺点,对不同的分区采用不同的地址映射。将硬盘IO的物理页信息更新到映射表中,对单位存储颗粒介质分区和三位存储颗粒介质分区分别维护各自的映射表算法,单位存储颗粒介质分区采用页映射的处理方式,三位存储颗粒介质分区采用块映射的处理方式。
在本实施例提供的技术方案中,获取动作对应的目标分区,目标分区为单位存储颗粒介质分区或者三位存储颗粒介质分区,执行物理地址分配算法,将所述硬盘IO分配到对应分区的具体物理页,将所述硬盘IO的物理页信息更新到映射表中,对单位存储颗粒介质分区采用页映射,三位存储颗粒介质分区采用块映射。由于对单位存储颗粒介质分区采用页映射的处理方式保证该分区的IO性能,对三位存储颗粒介质分区采用块映射的处理方式来减少映射表的缓存开销。
参照图5,图5为本发明固态硬盘资源分配方法的第四实施例,所述固态硬盘资源分配方法包括以下步骤:
步骤S410,当硬盘IO从IO队列中被取出执行时,获取所述硬盘IO的属性以及固态硬盘的状况信息;
步骤S420,将所述属性和状况信息识别为预设的强化模型的状态集中的其中一种状态;
步骤S430,基于所述强化模型,获取与识别出的状态对应的动作;
步骤S440,获取所述动作对应的目标分区;所述目标分区为单位存储颗粒介质分区或者三位存储颗粒介质分区;
步骤S450,遍历所述执行动作的目标分区,计算所述目标分区的剩余空间和无效数据;
步骤S460,根据所述目标分区的剩余空间和无效数据判断所述目标分区是否需要执行垃圾回收,当所述目标分区满足垃圾回收的条件时,执行垃圾回收算法并将回收空间初始化为三位存储颗粒介质空间;
步骤S470,执行物理地址分配算法,将所述硬盘IO分配到对应分区的具体物理页;
步骤S480,将所述硬盘IO的物理页信息更新到映射表中,对单位存储颗粒介质分区和三位存储颗粒介质分区分别维护各自的映射表算法,单位存储颗粒介质分区采用页映射,三位存储颗粒介质分区采用块映射。
与第三实施例相比,第四实施例包含步骤S450,S460,其他步骤与第三实施例相同,不再赘述。
在本实施例中,所谓遍历(Traversal),是指沿着某条搜索路线,依次对树(或图)中每个节点均做一次访问。在这里指的是对执行动作的目标分区进行遍历,然后计算目标分区的剩余空间和无效数据,计算目标分区剩余空间其实就是计算目标分区的空闲空间的大小。判断该目标分区是否需要执行垃圾回收,因为闪存具有写前擦除特性的限制,闪存不能像磁盘一样采用原地更新,而只能采取异地更新方式,即在新数据写入之前,需要将原始数据标记为无效,然后将新数据写入新的空闲物理空间。然而,随着该过程的不断重复,无效数据占用的空间越来越多,被分配的空闲空间也在不断增加,最终会导致闪存的空闲空间不足,而垃圾回收就是将被无效数据占据的空间转化成空闲空间。
在本实施例中,垃圾回收的条件包括但不限于以下二者至少之一:固态硬盘处于空闲期,空闲块的数量少于预先设定的阈值;固态硬盘处于空闲期,无效数据的总比例超过设定的阈值。为了不影响固态硬盘的正常工作,在固态硬盘处于空闲期时才考虑进行垃圾回收,当空闲块的数量少于预先设定的空闲块数量阈值时可以进行垃圾回收,这个空闲块数量阈值可以优选为厂家根据固态硬盘的特征进行设置;当无效数据的总比例超过预先设定的无效比例阈值时可以进行垃圾回收,这个无效比例阈值可以优选为厂家根据固态硬盘的特征进行设置;当满足空闲块的数量少于预先设定空闲块数量的阈值和无效数据的总比例超过预先设定的无效比例阈值可以进行垃圾回收。所以当目标分区满足垃圾回收的条件时,执行垃圾回收算法并将回收空间初始化为三位存储颗粒介质空间,垃圾回收算法有很多选择,例如,GR(Greedy,贪婪)垃圾回收算法、CB(Cost-Benefit,成本效益)垃圾回收算法、CAT(Cost-Age-Times,成本时效时间)垃圾回收算法、基于物理块年龄和逻辑页热度的磨损均衡算法GCbAH(GC based Age and Hot)等,在这里就不作过多的阐述。因为三位存储颗粒介质空间的容量大,所以将回收空间优选初始化为三位存储颗粒介质空间。
在本实施例提供的技术方案中,遍历执行动作的目标分区,计算目标分区的剩余空间和无效数据,当满足垃圾回收条件时执行垃圾回收算法,并将回收空间初始化为三位存储颗粒介质空间,保证了固态硬盘的正常使用,均衡了设备间的磨损。
本发明还提供一种装置,所述装置包括存储器、处理器以及存储在所述存储器并可在所述处理器上运行的固态硬盘资源分配程序,所述固态硬盘资源分配程序被所述处理器执行时实现如上所述的固态硬盘资源分配方法的各个步骤。
本发明还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有固态硬盘资源分配程序,所述固态硬盘资源分配方法程序被处理器执行时实现如上所述的固态硬盘资源分配方法的各个步骤。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种固态硬盘资源分配方法,其特征在于,所述固态硬盘包括单位存储颗粒介质分区和三位存储颗粒介质分区,所述固态硬盘资源分配方法包括以下步骤:
当硬盘IO从IO队列中被取出执行时,获取所述硬盘IO的属性以及固态硬盘的状况信息;
将所述属性和状况信息识别为预设的强化模型的状态集中的其中一种状态;
基于所述强化模型,获取与识别出的状态对应的动作;
执行所述动作,以将所述硬盘IO分配给所述单位存储颗粒介质分区或三位存储颗粒介质分区。
2.如权利要求1所述的固态硬盘资源分配方法,其特征在于,所述硬盘IO的属性包括:要求操作的存储空间的大小、IO队列中的硬盘IO的数量、是否为热数据以及操作类型;
所述固态硬盘的状况信息包括:单位存储颗粒介质分区和三位存储颗粒介质分区的大小、平均擦除次数。
3.如权利要求1所述的固态硬盘资源分配方法,其特征在于,还包括:
计算所述强化模型的反馈参数并更新所述强化模型。
4.如权利要求3所述的固态硬盘资源分配方法,其特征在于,所述计算所述强化模型的反馈参数并更新所述强化模型的步骤中,采用如下公式计算反馈参数:
Reward=(SD+α*TD+N)/T,
其中,T为上一时间段的硬盘IO延迟的平均值,N为所述上一时间段处理硬盘IO的数量,SD为单位存储颗粒介质分区的剩余寿命,TD为三位存储颗粒介质分区的剩余寿命,所述剩余寿命定义为剩余擦除次数与总擦除次数的比值,α为三位存储颗粒介质分区的寿命权重超参数,范围是0-1。
5.如权利要求1所述的固态硬盘资源分配方法,其特征在于,所述基于所述强化模型,获取与识别出的状态对应的动作的步骤中,采用贪婪算法获取所述动作。
6.如权利要求1所述的固态硬盘资源分配方法,其特征在于,所述执行所述动作的步骤包括:
获取所述动作对应的目标分区;所述目标分区为单位存储颗粒介质分区或者三位存储颗粒介质分区;
执行物理地址分配算法,将所述硬盘IO分配到对应的目标分区的具体物理页;
将所述硬盘IO的物理页信息更新到映射表中,对单位存储颗粒介质分区和三位存储颗粒介质分区分别维护各自的映射表算法,单位存储颗粒介质分区采用页映射,三位存储颗粒介质分区采用块映射。
7.如权利要求6所述的固态硬盘资源分配方法,其特征在于,所述执行所述动作的步骤中,在执行物理地址分配算法之前还包括:
遍历所述动作的目标分区,计算所述目标分区的剩余空间和无效数据;
根据所述目标分区的剩余空间和无效数据判断所述目标分区是否需要执行垃圾回收,当所述目标分区满足垃圾回收的条件时,执行垃圾回收算法并将回收空间初始化为三位存储颗粒介质空间。
8.如权利要求7所述的固态硬盘资源分配方法,其特征在于,所述垃圾回收条件包括以下二者至少之一:
固态硬盘处于空闲期,空闲块的数量少于预先设定的空闲块数量阈值;
固态硬盘处于空闲期,无效数据的总比例超过设定的无效比例阈值。
9.一种装置,其特征在于,所述装置包括存储器、处理器以及存储在所述存储器并可在所述处理器上运行的固态硬盘资源分配程序,所述固态硬盘资源分配程序被所述处理器执行时实现如权利要求1-8任一项所述的固态硬盘资源分配方法的各个步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有固态硬盘资源分配程序,所述固态硬盘资源分配程序被处理器执行时实现如权利要求1-8任一项所述的固态硬盘资源分配方法的各个步骤。
CN202010835691.2A 2020-08-17 2020-08-17 固态硬盘资源分配方法、装置和存储介质 Active CN112035061B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010835691.2A CN112035061B (zh) 2020-08-17 2020-08-17 固态硬盘资源分配方法、装置和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010835691.2A CN112035061B (zh) 2020-08-17 2020-08-17 固态硬盘资源分配方法、装置和存储介质

Publications (2)

Publication Number Publication Date
CN112035061A true CN112035061A (zh) 2020-12-04
CN112035061B CN112035061B (zh) 2024-05-10

Family

ID=73578509

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010835691.2A Active CN112035061B (zh) 2020-08-17 2020-08-17 固态硬盘资源分配方法、装置和存储介质

Country Status (1)

Country Link
CN (1) CN112035061B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112988080A (zh) * 2021-05-10 2021-06-18 鹏城实验室 多数据页同时写入方法、3d闪存装置及计算机存储介质
CN113157325A (zh) * 2021-03-30 2021-07-23 深圳市吉方工控有限公司 一种通过识别数据内容来定位存储设备端口的方法
CN114415963A (zh) * 2021-12-03 2022-04-29 武汉深之度科技有限公司 一种硬盘数据清理方法、装置及计算设备
CN114443445A (zh) * 2021-12-31 2022-05-06 苏州浪潮智能科技有限公司 硬盘点灯方法、装置、电子设备及存储介质
CN116795735A (zh) * 2023-08-23 2023-09-22 四川云海芯科微电子科技有限公司 固态硬盘空间分配方法、装置、介质及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140359197A1 (en) * 2013-05-28 2014-12-04 International Business Machines Corporation Implementing reinforcement learning based flash control
CN105892949A (zh) * 2016-03-31 2016-08-24 上海新储集成电路有限公司 一种提高混合固态硬盘性能的方法及系统
US20190171372A1 (en) * 2017-12-01 2019-06-06 Micron Technology, Inc. Wear Leveling in Solid State Drives
CN110874186A (zh) * 2018-09-04 2020-03-10 合肥沛睿微电子股份有限公司 闪存控制器及相关的存取方法及电子装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140359197A1 (en) * 2013-05-28 2014-12-04 International Business Machines Corporation Implementing reinforcement learning based flash control
CN105892949A (zh) * 2016-03-31 2016-08-24 上海新储集成电路有限公司 一种提高混合固态硬盘性能的方法及系统
US20190171372A1 (en) * 2017-12-01 2019-06-06 Micron Technology, Inc. Wear Leveling in Solid State Drives
CN110874186A (zh) * 2018-09-04 2020-03-10 合肥沛睿微电子股份有限公司 闪存控制器及相关的存取方法及电子装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
叶青;方子叶;: "虚拟资源分配优化量子学习算法仿真研究", 计算机仿真, no. 06, 15 June 2020 (2020-06-15) *
牛艺霏;刘嵩岩;陈妍霖;刘欢;王晓雯;: "固态存储技术研究概述", 计算机产品与流通, no. 07, 7 June 2019 (2019-06-07) *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113157325A (zh) * 2021-03-30 2021-07-23 深圳市吉方工控有限公司 一种通过识别数据内容来定位存储设备端口的方法
CN112988080A (zh) * 2021-05-10 2021-06-18 鹏城实验室 多数据页同时写入方法、3d闪存装置及计算机存储介质
CN112988080B (zh) * 2021-05-10 2021-07-30 鹏城实验室 多数据页同时写入方法、3d闪存装置及计算机存储介质
CN114415963A (zh) * 2021-12-03 2022-04-29 武汉深之度科技有限公司 一种硬盘数据清理方法、装置及计算设备
CN114415963B (zh) * 2021-12-03 2023-09-19 武汉深之度科技有限公司 一种硬盘数据清理方法、装置及计算设备
CN114443445A (zh) * 2021-12-31 2022-05-06 苏州浪潮智能科技有限公司 硬盘点灯方法、装置、电子设备及存储介质
CN114443445B (zh) * 2021-12-31 2024-05-24 苏州浪潮智能科技有限公司 硬盘点灯方法、装置、电子设备及存储介质
CN116795735A (zh) * 2023-08-23 2023-09-22 四川云海芯科微电子科技有限公司 固态硬盘空间分配方法、装置、介质及系统
CN116795735B (zh) * 2023-08-23 2023-11-03 四川云海芯科微电子科技有限公司 固态硬盘空间分配方法、装置、介质及系统

Also Published As

Publication number Publication date
CN112035061B (zh) 2024-05-10

Similar Documents

Publication Publication Date Title
CN109902039B (zh) 存储器控制器、存储器系统及于一存储器中管理数据配置的方法
CN112035061B (zh) 固态硬盘资源分配方法、装置和存储介质
US10838859B2 (en) Recency based victim block selection for garbage collection in a solid state device (SSD)
CN105045523B (zh) 存储控制器、存储装置和系统及操作存储控制器的方法
US8438361B2 (en) Logical block storage in a storage device
US20160062885A1 (en) Garbage collection method for nonvolatile memory device
US9223694B2 (en) Data storage device and operating method thereof
US11640354B2 (en) Logical-to-physical mapping of data groups with data locality
US20200073591A1 (en) Flash memory controller and associated accessing method and electronic device
TW201917581A (zh) 管理快閃記憶體模組的方法及相關的快閃記憶體控制器
CN113138939A (zh) 用于垃圾收集的存储器系统及其操作方法
US11416389B2 (en) Managing garbage collection in a memory subsystem based on characteristics of data streams
US20240143219A1 (en) Software-hardware combination method for internal mapping address query of zoned namespace
US11609848B2 (en) Media management based on data access metrics
KR101403922B1 (ko) 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법
KR20160105624A (ko) 데이터 처리 시스템 및 그것의 동작 방법
US11138104B2 (en) Selection of mass storage device streams for garbage collection based on logical saturation
TWI692688B (zh) 快閃記憶體控制器及相關電子裝置
US20210019074A1 (en) Managing garbage collection in a memory subsystem based on characteristics of data streams
Lin et al. Dynamic garbage collection scheme based on past update times for NAND flash-based consumer electronics
CN112130749B (zh) 数据储存装置以及非挥发式存储器控制方法
US11403018B2 (en) Method and apparatus for performing block management regarding non-volatile memory
CN102880553A (zh) 一种基于mcu的片外flash文件系统的读写方法
US10990520B2 (en) Method for gabage collecting for non-volatile memory
CN114579044A (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