CN112988080B - 多数据页同时写入方法、3d闪存装置及计算机存储介质 - Google Patents
多数据页同时写入方法、3d闪存装置及计算机存储介质 Download PDFInfo
- Publication number
- CN112988080B CN112988080B CN202110507590.7A CN202110507590A CN112988080B CN 112988080 B CN112988080 B CN 112988080B CN 202110507590 A CN202110507590 A CN 202110507590A CN 112988080 B CN112988080 B CN 112988080B
- Authority
- CN
- China
- Prior art keywords
- flash memory
- memory device
- multiple data
- sub
- delay
- 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/061—Improving I/O performance
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
Abstract
本发明公开了一种多数据页同时写入方法、3D闪存装置及计算机存储介质,所述多数据页同时写入方法包括:当新的硬盘IO被加入IO队列中时,获取3D闪存设备的运行状态;将所述运行状态识别为预设的强化模型的状态集中的其中一种状态;基于所述强化模型,获取与识别出的运行状态对应的动作;执行所述动作,以将符合预设条件的IO请求进行打包;将打包后的IO请求用于多数据页同时写入;本发明解决多数据页同时写入导致IO性能波动加剧以及IO末端延迟延长的问题,实现了降低IO性能波动以及IO末端延迟,从而提升用户体验。
Description
技术领域
本申请涉及3D闪存设备强化学习的技术领域,尤其涉及一种多数据页同时写入方法、3D闪存装置及计算机存储介质。
背景技术
基于charge-trap(CT)的3D固态硬盘已经拥有越来越高的市场占有率,通过消除存储介质胞之间的相互干扰,基于CT的3D固态硬盘可以同时写入多个数据页,从而极大提升了系统IO吞吐量。
现有技术中采用OSP(one-shot-programming,多数据页同时写入)可以同时写3个数据页,但是,多数据页同时写入技术会损害IO延迟性能,导致IO性能波动加剧以及IO末端延迟延长,进而影响用户体验。
发明内容
本发明的主要目的在于提供一种多数据页同时写入方法、3D闪存装置及计算机存储介质,旨在解决多数据页同时写入导致IO性能波动加剧以及IO末端延迟延长的问题。
为实现上述目的,本申请提供一种多数据页同时写入方法,所述方法包括以下步骤:
当新的硬盘IO被加入IO队列中时,获取3D闪存设备的运行状态;
将所述运行状态识别为预设的强化模型的状态集中的其中一种状态;
基于所述强化模型,获取与识别出的运行状态对应的动作;
执行所述动作,以将符合预设条件的IO请求进行打包;
将打包后的IO请求用于多数据页同时写入。
在一实施例中,所述3D闪存设备的运行状态包括:3D闪存设备的忙闲状态和存储颗粒的空间使用情况。
在一实施例中,多数据页同时写入方法,还包括:
学习3D闪存设备在不同运行状态下的不同动作,建立对应关系;
根据所述对应关系,建立预设的强化模型的状态集。
在一实施例中,所述基于所述强化模型,获取与识别出的运行状态对应的动作的步骤中,采用Ƹ-贪婪算法获取所述动作。
在一实施例中,所述将符合预设条件的IO请求进行打包,包括:
将多个3D 闪存设备IO拆分为多个以数据页为单位的子请求;
选择同一Host端或者同一进程的IO子请求进行打包。
在一实施例中,所述将打包后的IO子请求用于多数据页同时写入,包括:
获取所述打包后的IO子请求对应的目标分区;
执行物理地址分配算法,将所述打包后的IO请求对应的IO分配到存储颗粒具体的物理页中;
将所述存储颗粒具体的物理页信息更新到映射表中。
在一实施例中,多数据页同时写入方法,还包括:
计算所述强化模型的反馈参数并更新所述强化模型。
在一实施例中,所述计算所述强化模型的反馈参数并更新所述强化模型,包括:
获取子请求动作对应的3D闪存设备IO延迟,将所述3D闪存设备IO延迟划分为三个区域;
采用如下条件计算反馈参数:
若子请求动作对应的3D闪存设备IO延迟在所述三个区域中是延迟最短的区域,则所述反馈参数为1;
若子请求动作对应的3D闪存设备IO延迟在所述三个区域中是延迟位于中间的区域,则所述反馈参数为0;
若子请求动作对应的3D闪存设备IO延迟在所述三个区域中是延迟最长的区域,则所述反馈参数为-1。
本申请实施例还提供了一种计算机存储介质,所述计算机存储介质上存储有强化学习的3D闪存设备多数据页同时写入的程序,所述强化学习的3D闪存设备多数据页同时写入的程序被处理器执行时实现如上所述的强化学习的3D闪存设备多数据页同时写入方法的步骤。
本申请实施例还提供了一种3D闪存装置,包括一个或者多个处理器存储器及存储在存储器上并可在处理器上运行的多数据页同时写入方法程序,所述处理器执行所述多数据页同时写入方法程序时实现如上所述的多数据页同时写入方法的步骤。
本申请实施例中提供的多数据页同时写入方法、3D闪存装置及计算机存储介质的技术方案,至少具有如下技术效果:
1、由于采用学习3D闪存设备在不同运行状态下的不同动作,建立对应关系,根据所述对应关系,建立预设的强化模型的状态集,当新的硬盘IO被加入IO队列中时,获取3D闪存设备的运行状态,将所述运行状态识别为预设的强化模型的状态集中的其中一种状态,基于所述强化模型,通过Ƹ-贪婪算法从强化模型数据库中获取与识别出的状态对应的动作的技术方案,解决了无法自适应识别打包操作的问题,通过强化学习获取与识别出对应的打包操作实现自适应识别打包操作的效果。
2、由于采用执行所述动作,以将符合预设条件的IO请求进行打包,通过获取当前3D闪存设备运行状态的最优动作,将每一个host端IO在设备中会被拆分为若干个以页为单位的子请求,打包来自同一个host IO的子请求或者打包来自同一个进程的子请求,获取所述打包后的IO子请求对应的目标分区,执行物理地址分配算法,将所述打包后的IO请求对应的IO分配到存储颗粒具体的物理页中,将所述存储颗粒具体的物理页信息更新到映射表中的技术方案,解决了现有技术IO延迟被扩散到不同host IO以及IO延迟会卡顿多个用户进程的问题,实现降低IO性能波动与IO延迟卡顿的效果。
3、由于采用计算所述强化模型的反馈参数并更新所述强化模型,通过获取子请求动作对应的3D闪存设备IO延迟,将所述3D闪存设备IO延迟划分为三个区域,分别计算反馈参数的技术方案,解决了现有技术多数据页同时写入IO延迟的问题,实现降低IO末端延迟的效果。
附图说明
图1为本申请实施例涉及的3D闪存装置的结构示意图;
图2为本申请多数据页同时写入方法第一实施例的流程示意图;
图3为本申请多数据页同时写入方法第二实施例的流程示意图;
图4为本申请多数据页同时写入方法第二实施例步骤S260的一个具体流程示意图;
图5为本申请多数据页同时写入方法第二实施例步骤S270的一个具体流程示意图;
图6为本申请多数据页同时写入方法第三实施例的流程示意图;
图7为本申请多数据页同时写入方法第三实施例步骤S260的一个具体流程示意图;
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
本申请为了解决多数据页同时写入导致IO性能波动加剧以及IO末端延迟延长的问题,采用了当新的硬盘IO被加入IO队列中时,获取3D闪存设备的运行状态;将所述运行状态识别为预设的强化模型的状态集中的其中一种状态;基于所述强化模型,获取与识别出的运行状态对应的动作;执行所述动作,以将符合预设条件的IO请求进行打包;将打包后的IO请求用于多数据页同时写入的技术方案,实现了降低IO性能波动以及IO末端延迟,从而提升用户体验。
为了更好地理解上述技术方案,下面将参照附图更详细地描述本申请的示例性实施例。虽然附图中显示了本申请的示例性实施例,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
本领域技术人员可以理解,图1所示的3D闪存装置的硬件结构并不构成对3D闪存装置的限定,3D闪存装置可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
作为一种实现方式,可以如图1所示,图1为本申请实施例涉及的3D闪存装置的结构示意图。
装置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旨在包括但不限于这些和任意其它适合类型的存储器。
在本申请实施例中,处理器1100可以用于调用存储在存储器1200中的强化学习的多数据页同时写入程序,并执行以下操作:
当新的硬盘IO被加入IO队列中时,获取3D闪存设备的运行状态;
将所述运行状态识别为预设的强化模型的状态集中的其中一种状态;
基于所述强化模型,获取与识别出的运行状态对应的动作;
执行所述动作,以将符合预设条件的IO请求进行打包;
将打包后的IO请求用于多数据页同时写入。
在一实施例中,处理器1100可以用于调用存储在存储器1200中的强化学习的多数据页同时写入程序,并执行以下操作:
学习3D闪存设备在不同运行状态下的不同动作,建立对应关系;
根据所述对应关系,建立预设的强化模型的状态集。
在一实施例中,处理器1100可以用于调用存储在存储器1200中的强化学习的多数据页同时写入程序,并执行以下操作:
将多个3D 闪存设备IO拆分为多个以数据页为单位的子请求;
选择同一Host端或者同一进程的IO子请求进行打包。
在一实施例中,处理器1100可以用于调用存储在存储器1200中的强化学习的多数据页同时写入程序,并执行以下操作:
获取所述打包后的IO子请求对应的目标分区;
执行物理地址分配算法,将所述打包后的IO请求对应的IO分配到存储颗粒具体的物理页中;
将所述存储颗粒具体的物理页信息更新到映射表中。
在一实施例中,处理器1100可以用于调用存储在存储器1200中的强化学习的多数据页同时写入程序,并执行以下操作:
计算所述强化模型的反馈参数并更新所述强化模型。
在一实施例中,处理器1100可以用于调用存储在存储器1200中的强化学习的多数据页同时写入程序,并执行以下操作:
获取子请求动作对应的3D闪存设备IO延迟,将所述3D闪存设备IO延迟划分为三个区域;
采用如下条件计算反馈参数:
若子请求动作对应的3D闪存设备IO延迟在所述三个区域中是延迟最短的区域,则所述反馈参数为1;
若子请求动作对应的3D闪存设备IO延迟在所述三个区域中是延迟位于中间的区域,则所述反馈参数为0;
若子请求动作对应的3D闪存设备IO延迟在所述三个区域中是延迟最长的区域,则所述反馈参数为-1。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
如图2所示,图2为本申请多数据页同时写入方法第一实施例的流程示意图,包括以下步骤:
步骤S110,当新的硬盘IO被加入IO队列中时,获取3D闪存设备的运行状态。
在本实施例中,硬盘IO指的是3D闪存设备IO,IO请求在被执行前会进入IO队列等待调度,当硬盘IO从IO队列中被取出执行的时候,获取3D闪存设备的运行状态;3D闪存设备的运行状态包括但不限于各个3D闪存设备的繁忙状态、各个3D闪存设备的空闲状态、存储颗粒空间的使用情况。
步骤S120,将所述运行状态识别为预设的强化模型的状态集中的其中一种状态。
在本实施例中,当硬盘IO被取出执行时,将3D闪存设备的运行状态识别为预设的强化模型的状态集中的其中一种状态,预设的强化模型的建立如步骤S210与S220所示,这里不再赘述;基于设定的强化模型,通过Ƹ-贪婪算法从强化模型数据库中获取与识别出的状态对应的动作。
步骤S130,基于所述强化模型,获取与识别出的运行状态对应的动作。
在本实施例中,通过强化学习来识别状态对应的动作,强化学习( 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。环境是强化学习过程中对外界环境状态的仿真。强化学习是根据当前的状态通过调整策略选择优动作以最大化取得数值回报的问题。
在本实施例中,涉及的当前的环境状态s是指3D闪存设备的运行状态,包括但不限于各个3D闪存设备的繁忙状态、各个3D闪存设备的空闲状态、存储颗粒空间的使用情况;涉及的动作a是指选择同一Host端或者同一进程的IO子请求进行打包。
在本实施例中,采用Ƹ-贪婪算法从强化模型中获取与识别出的状态对应的动作;贪婪算法是一种对某些求最优解问题的更简单、更迅速的设计技术,该贪婪算法的工作原理是采用自顶向下,以迭代的方法做出相继的贪婪选择,每做一次贪婪选择,就将所求问题简化为一个规模更小的子问题,通过每一步贪婪选择,可得到问题的一个最优解,即最优动作;其中,Ƹ定义为选择随机动作的概率,该Ƹ-贪婪算法决定系统每一次选择状态是随机选择还是选择当前状态下反馈值最大的动作,在强化模型搭建初期数据库刚初始化的时候,系统必须充分经历所有状态下所有动作来实现强化模型的充分训练,因此Ƹ-贪婪算法可以实现充分训练与最优化动作选择之间的平衡。
步骤S140,执行所述动作,以将符合预设条件的IO请求进行打包。
在本实施例中,根据贪婪算法获取当前3D闪存设备运行状态的最优动作,执行所述最优动作以将符合预设条件的IO请求进行打包;动作是指在3D闪存设备请求队列中考虑哪些请求作为打包请求,所述动作可以是选择同一Host端或者同一进程的IO子请求进行打包;打包是指将符合预设条件的IO同时写入对应的数据页中。
步骤S150,将打包后的IO请求用于多数据页同时写入。
在本实施例中,将符合预设条件的IO请求进行打包并用于数据页同时写入,每一次经过多数据页同时写入打包操作后,将打包后的硬盘IO下发到目标分区。
在本实施例的技术方案中,当新的硬盘IO被加入IO队列中时,获取3D闪存设备的运行状态,将所述运行状态识别为预设的强化模型的状态集中的其中一种状态,基于所述强化模型,通过Ƹ-贪婪算法从强化模型数据库中获取与识别出的状态对应的动作,执行所述动作,以将符合预设条件的IO请求进行打包,将打包后的IO请求用于多数据页同时写入的技术方案,解决解决了现有技术无法自适应识别满足预设条件的IO请求,降低多数据页同时写入收益最大化的问题,实现自适应识别IO请求,降低IO性能波动的效果。
如图3所述,图3为本申请多数据页同时写入方法第二实施例的流程示意图,包括以下步骤:
步骤S210,学习3D闪存设备在不同运行状态下的不同动作,建立对应关系。
在本实施例中,强化模型根据硬件IO和3D闪存设备的运行状态来设定,使用大量的IO负载来训练强化模型,学习3D闪存设备在不同运行状态下的不同动作并建立对应关系,例如,学习3D闪存设备在3D闪存芯片处于繁忙状态下的同一进程的IO子请求动作,建立对应关系;或者学习3D闪存设备在3D闪存芯片处于空闲状态下的同一进程的IO子请求动作,建立对应关系;或者学习3D闪存设备在Plane(分条)存储颗粒空间使用情况为0-64MB下的同一进程的IO子请求动作,建立对应关系等。
步骤S220,根据所述对应关系,建立预设的强化模型的状态集。
在本实施例中,根据对应关系建立预设的强化模型的状态集,存储强化模型于强化模型数据库中,该强化模型的数据库可以为一个二维表格,横轴为所有的状态,纵轴为每个状态下对应的动作,当硬盘IO被取出执行时,将3D闪存设备的运行状态识别为强化模型的状态集中的其中一种状态。
步骤S230,当新的硬盘IO被加入IO队列中时,获取3D闪存设备的运行状态。
步骤S240,将所述运行状态识别为预设的强化模型的状态集中的其中一种状态。
步骤S250,基于所述强化模型,获取与识别出的运行状态对应的动作。
步骤S260,执行所述动作,以将符合预设条件的IO请求进行打包。
如图4所示,图4为本申请多数据页同时写入方法第二实施例步骤S260的一个具体流程示意图,包括以下步骤:
步骤S261,将多个3D 闪存设备IO拆分为多个以数据页为单位的子请求。
在本实施例中,Host端是通过LBA(Logical BlockAddress,逻辑地址块)访问3D闪存设备的,每个LBA代表着一个Sector(一般为512B大小),操作系统一般以4K为单位访问3D闪存设备的,我们把Host端访问3D闪存设备的的基本单元叫用户页(Host Page),将多个3D闪存设备IO拆分为多个以数据页为单位的子请求即将多个3D 闪存设备IO拆分为多个以用户页为单位的子请求。
步骤S262,选择同一Host端或者同一进程的IO子请求进行打包,选择同一Host端或者同一进程的IO子请求进行打包,其中,所述Host端与所述3D闪存设备连接,用于将IO进程信息传递至所述3D闪存设备中。
在本实施例中,Host端用于连接3D闪存设备,其可以是主机通过Host接口连接3D闪存设备;由于每一个Host端IO在设备中会被拆分为若干个以页为单位的子请求,符合预设条件的IO请求包括但不限于以下两个条件,第一,优先考虑打包来自同一个Host IO的子请求,以避免长IO延迟被扩散到不同Host IO;第二,优先考虑打包来自同一个进程的子请求,以避免长IO延迟会卡顿多个用户进程;Host端与所述3D闪存设备连接,用于将IO进程信息传递至所述3D闪存设备中。
步骤S270,将打包后的IO请求用于多数据页同时写入。
如图5所示,图5为本申请多数据页同时写入方法第二实施例步骤S270的一个具体流程示意图,包括以下步骤:
步骤S271,获取所述打包后的IO子请求对应的目标分区。
在本实施例中,获取所述打包后的IO子请求对应的目标分区;目标定义为处于空闲状态的3D闪存芯片以及空间使用率低的Plane(分条)存储颗粒,目标分区是指将IO子请求分配到对应的空间使用率低的Plane(分条)存储颗粒范围中,存储颗粒的空间使用情况是指每个plane(分条)存储颗粒中各个范围的空间使用情况;其中,每个plane(分条)存储颗粒的空间使用情况默认被划分为3个范围,例如,在4GB Flash (闪存)中,每个plane(分条)存储颗粒的空间使用情况为:0-64MB、64MB-256MB、256MB-512MB;也可以将每个plane(分条)颗粒划分为数量个范围。
步骤S272,执行物理地址分配算法,将所述打包后的IO请求对应的IO分配到存储颗粒具体的物理页中。
在本实施例中,执行物理地址分配算法,将打包后的IO请求对应的IO分配到对应的空间使用率低的Plane(分条)存储颗粒具体的物理页中,可以使用厂家自定义的地址分配策略将IO请求对应的IO分配到对应的Plane(分条)存储颗粒具体的物理页中,Plane(分条)存储颗粒具体的物理页默认为3个物理页,也可根据实际要求设置更多的物理页。
在本实施例中,一个Flash Page(物理页)由两个或者多个Die(晶片),这些Dies(晶片)可以共享I/0数据总线和一些控制信号线,一个Die(晶片)又可以分为多个Plane(分条),而每个Plane(分条)又包含多个Block(物理块),每个Block(物理块)又分为多个Page(物理页)。以4GB Flash(闪存)为例,一个4GB的Flash (闪存)由两个2GB的Die(晶片)组成,共享8位I/0数据总线和一些控制信号线。每个Die(晶片)由4个Plane(分条)组成,每个Plane(分条)包含2048个Block(物理块),每个Block(物理块)又包含64个4KB大小的Page(物理页)。
步骤S273,将所述存储颗粒具体的物理页信息更新到映射表中。
在本实施例中,页级映射需要建立逻辑页和物理页之间的映射关系,这种映射机制优点是映射灵活,可以充分地利用闪存内的所有物理页,将硬盘IO的物理页信息更新到映射表中。
在本实施例中,在3D闪存设备的内部,3D闪存设备的主控与Flash(闪存)之间是Flash Page(物理页)为基本单元访问Flash(闪存)的,我们称Flash Page为物理页(Physical Page)。Host端每写入一个Host Page, 3D闪存设备主控会找一个PhysicalPage把Host数据写入,3D闪存设备内部同时记录了这样一条映射(Map)。有了这样一个映射关系后,下次Host端需要读某个Host Page 时,3D闪存设备就知道从Flash(闪存)的哪个位置把数据读取上来。
与第一实施例相比,第二实施例包含步骤S210、步骤S220,其他步骤与第一实施例相同,这里不再赘述。
在本实施例的技术方案中,学习3D闪存设备在不同运行状态下的不同动作,建立对应关系,根据所述对应关系,建立预设的强化模型的状态集,当新的硬盘IO被加入IO队列中时,获取3D闪存设备的运行状态,将所述运行状态识别为预设的强化模型的状态集中的其中一种状态,基于所述强化模型,通过Ƹ-贪婪算法从强化模型数据库中获取与识别出的状态对应的动作,执行所述动作,以将符合预设条件的IO请求进行打包,通过获取当前3D闪存设备运行状态的最优动作,将每一个Host端IO在设备中会被拆分为若干个以页为单位的子请求,打包来自同一个Host 端IO的子请求或者打包来自同一个进程的子请求,将打包后的IO请求用于多数据页同时写入,通过获取所述打包后的IO子请求对应的目标分区,执行物理地址分配算法,将所述打包后的IO请求对应的IO分配到存储颗粒具体的物理页中,将所述存储颗粒具体的物理页信息更新到映射表中的技术方案,解决了现有技术IO延迟被扩散到不同host IO以及IO延迟会卡顿多个用户进程的问题,实现降低IO性能波动的效果。
如图6所述,图6为本申请多数据页同时写入方法第三实施例的流程示意图,包括以下步骤:
步骤S310,当新的硬盘IO被加入IO队列中时,获取3D闪存设备的运行状态。
步骤S320,将所述运行状态识别为预设的强化模型的状态集中的其中一种状态。
步骤S330,基于所述强化模型,获取与识别出的运行状态对应的动作。
步骤S340,执行所述动作,以将符合预设条件的IO请求进行打包。
步骤S350,将打包后的IO请求用于多数据页同时写入。
步骤S360,计算所述强化模型的反馈参数并更新所述强化模型。
在本实施例中,完成多数据页同时写入操作后,获取IO延迟,根据IO延迟计算强化模型的反馈参数,反馈需要考虑IO性能。
如图7所示,图7为本申请多数据页同时写入方法第三实施例步骤S260的一个具体流程示意图,包括以下步骤:
步骤S361,获取子请求动作对应的3D闪存设备IO延迟,将所述3D闪存设备IO延迟划分为三个区域。
在本实施例中,IO延迟又称IO响应时间,IO响应时间一般为10ms,IO延迟是指下发IO子请求打包动作,到接收IO子请求过程中所消耗的时间,IO延迟消耗的时间与IO性能特征、IO的硬件结构以及当前3D闪存设备的运行状态有关,将3D闪存设备IO延迟划分为三个区域以计算每个区域的反馈参数,将反馈参数更新至强化模型数据库中以更新数据。
采用如下条件计算反馈参数:
步骤S362,若子请求动作对应的3D闪存设备IO延迟在所述三个区域中是延迟最短的区域,则所述反馈参数为1。
步骤S363,若子请求动作对应的3D闪存设备IO延迟在所述三个区域中是延迟位于中间的区域,则所述反馈参数为0。
步骤S364,若子请求动作对应的3D闪存设备IO延迟在所述三个区域中是延迟最长的区域,则所述反馈参数为-1。
在本实施例中,在强化模型中,所述3D闪存设备IO延迟划分包括但不限于三个区域,判断子请求动作对应的3D闪存设备IO延迟在三个区域中的位置以计算反馈参数,区域的大小可根据IO的性能以及开发需求进行区域划分,以满足在执行多数据页同时写入操作是最大化减小IO性能波动以及IO末端延迟的现象,每一次IO打包下发,系统识别当前状态并且从强化模型的数据库映射表中取出一个动作,执行该动作后记录IO延迟计算反馈,然后将反馈更新入数据库表格的对应状态-动作栏中。
与第一实施例相比,第三实施例包含步骤S360,其他步骤与第一实施例相同,这里不再赘述。
在本实施例的技术方案中,由于采用计算所述强化模型的反馈参数并更新所述强化模型,通过获取子请求动作对应的3D闪存设备IO延迟,将所述3D闪存设备IO延迟划分为三个区域,若子请求动作对应的3D闪存设备IO延迟在所述三个区域中是延迟最短的区域,则所述反馈参数为1;若子请求动作对应的3D闪存设备IO延迟在所述三个区域中是延迟位于中间的区域,则所述反馈参数为0;若子请求动作对应的3D闪存设备IO延迟在所述三个区域中是延迟最长的区域,则所述反馈参数为-1的技术方案,解决了现有技术多数据页同时写入IO延迟的问题,实现降低IO末端延迟的效果。
基于同一发明构思,本申请实施例还提供了一种计算机存储介质,所述计算机存储介质上存储有基于强化学习的多数据页同时写入的程序,所述基于强化学习的多数据页同时写入的程序被处理器执行时实现如上述的基于强化学习的多数据页同时写入方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
由于本申请实施例提供的计算机存储介质,为实施本申请实施例的方法所采用的计算机存储介质,故而基于本申请实施例所介绍的方法,本领域所属人员能够了解该计算机存储介质的具体结构及变形,故而在此不再赘述。凡是本申请实施例的方法所采用的计算机存储介质都属于本申请所欲保护的范围。
基于同一发明构思,本申请实施例还提供了一种3D闪存装置,所述3D闪存装置包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的基于强化学习的多数据页同时写入的程序,所述基于强化学习的多数据页同时写入的程序被所述处理器执行时实现如上述的基于强化学习的多数据页同时写入方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
由于本申请实施例提供的3D闪存装置,为实施本申请实施例的方法所采用的3D闪存装置,故而基于本申请实施例所介绍的方法,本领域所属人员能够了解该无人机系统的具体结构及变形,故而在此不再赘述。凡是本申请实施例的方法所采用的无人机系统都属于本申请所欲保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统),和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框,以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二,以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1.一种多数据页同时写入方法,其特征在于,所述方法包括以下步骤:
当新的硬盘IO被加入IO队列中时,获取3D闪存设备的运行状态;
将所述运行状态识别为预设的强化模型的状态集中的其中一种状态;
基于所述强化模型,获取与识别出的运行状态对应的动作,其中,采用Ƹ-贪婪算法获取所述运行状态对应的动作;
执行所述动作,以将多个3D 闪存设备IO拆分为多个以数据页为单位的子请求,选择同一Host端或者同一进程的IO子请求进行打包,其中,所述Host端与所述3D闪存设备连接,用于将IO进程信息传递至所述3D闪存设备中,所述打包是指将同一Host端或者同一进程的IO子请求对应的数据页进行打包;
将打包后的IO请求用于多数据页同时写入。
2.如权利要求1所述的多数据页同时写入方法,其特征在于,所述3D闪存设备的运行状态包括:3D闪存设备的忙闲状态和存储颗粒的空间使用情况。
3.如权利要求1所述的多数据页同时写入方法,其特征在于,还包括:
学习3D闪存设备在不同运行状态下的不同动作,建立对应关系;
根据所述对应关系,建立预设的强化模型的状态集。
4.如权利要求1所述的多数据页同时写入方法,其特征在于,所述将打包后的IO子请求用于多数据页同时写入,包括:
获取所述打包后的IO子请求对应的目标分区;
执行物理地址分配算法,将所述打包后的IO请求对应的IO分配到存储颗粒具体的物理页中;
将所述存储颗粒具体的物理页信息更新到映射表中。
5.如权利要求1所述的多数据页同时写入方法,其特征在于,还包括:
计算所述强化模型的反馈参数并更新所述强化模型。
6.如权利要求5所述的多数据页同时写入方法,其特征在于,所述计算所述强化模型的反馈参数并更新所述强化模型,包括:获取子请求动作对应的3D闪存设备IO延迟,将所述3D闪存设备IO延迟划分为三个区域;
采用如下条件计算反馈参数:
若子请求动作对应的3D闪存设备IO延迟在所述三个区域中是延迟最短的区域,则所述反馈参数为1;
若子请求动作对应的3D闪存设备IO延迟在所述三个区域中是延迟位于中间的区域,则所述反馈参数为0;
若子请求动作对应的3D闪存设备IO延迟在所述三个区域中是延迟最长的区域,则所述反馈参数为-1。
7.一种计算机存储介质,其特征在于,其上存储有多数据页同时写入方法程序,其特征在于,该多数据页同时写入方法程序被处理器执行时实现权利要求1-6任一所述的方法。
8.一种3D闪存装置,其特征在于,包括一个或者多个处理器存储器及存储在存储器上并可在处理器上运行的多数据页同时写入方法程序,所述处理器执行所述多数据页同时写入方法程序时实现权利要求1-6任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110507590.7A CN112988080B (zh) | 2021-05-10 | 2021-05-10 | 多数据页同时写入方法、3d闪存装置及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110507590.7A CN112988080B (zh) | 2021-05-10 | 2021-05-10 | 多数据页同时写入方法、3d闪存装置及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112988080A CN112988080A (zh) | 2021-06-18 |
CN112988080B true CN112988080B (zh) | 2021-07-30 |
Family
ID=76337430
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110507590.7A Active CN112988080B (zh) | 2021-05-10 | 2021-05-10 | 多数据页同时写入方法、3d闪存装置及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112988080B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114185492B (zh) * | 2021-12-14 | 2023-07-07 | 福建师范大学 | 一种基于强化学习的固态硬盘垃圾回收方法 |
CN115758206B (zh) * | 2022-11-07 | 2023-05-16 | 武汉麓谷科技有限公司 | 一种快速查找ZNS固态硬盘中NorFlash上次写结束位置的方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102831014A (zh) * | 2012-07-30 | 2012-12-19 | 华中科技大学 | 一种利用多请求队列提升io并行性和减少小io延迟的方法 |
US9176671B1 (en) * | 2011-04-06 | 2015-11-03 | P4tents1, LLC | Fetching data between thread execution in a flash/DRAM/embedded DRAM-equipped system |
CN107046563A (zh) * | 2017-01-19 | 2017-08-15 | 无锡华云数据技术服务有限公司 | 一种分布式高效云盘的实现方法、系统及云平台 |
CN107562383A (zh) * | 2017-09-05 | 2018-01-09 | 联想(北京)有限公司 | 信息处理方法、存储设备及存储介质 |
CN111868676A (zh) * | 2018-03-15 | 2020-10-30 | 净睿存储股份有限公司 | 在基于云的存储系统中服务i/o操作 |
CN112035061A (zh) * | 2020-08-17 | 2020-12-04 | 鹏城实验室 | 固态硬盘资源分配方法、装置和存储介质 |
CN112433682A (zh) * | 2020-12-15 | 2021-03-02 | 合肥大唐存储科技有限公司 | 固态硬盘中控制参数的获取方法、存储介质和电子装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107193503B (zh) * | 2017-05-27 | 2020-05-29 | 杭州宏杉科技股份有限公司 | 一种数据重删方法及存储设备 |
US11137913B2 (en) * | 2019-10-04 | 2021-10-05 | Hewlett Packard Enterprise Development Lp | Generation of a packaged version of an IO request |
-
2021
- 2021-05-10 CN CN202110507590.7A patent/CN112988080B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9176671B1 (en) * | 2011-04-06 | 2015-11-03 | P4tents1, LLC | Fetching data between thread execution in a flash/DRAM/embedded DRAM-equipped system |
CN102831014A (zh) * | 2012-07-30 | 2012-12-19 | 华中科技大学 | 一种利用多请求队列提升io并行性和减少小io延迟的方法 |
CN107046563A (zh) * | 2017-01-19 | 2017-08-15 | 无锡华云数据技术服务有限公司 | 一种分布式高效云盘的实现方法、系统及云平台 |
CN107562383A (zh) * | 2017-09-05 | 2018-01-09 | 联想(北京)有限公司 | 信息处理方法、存储设备及存储介质 |
CN111868676A (zh) * | 2018-03-15 | 2020-10-30 | 净睿存储股份有限公司 | 在基于云的存储系统中服务i/o操作 |
CN112035061A (zh) * | 2020-08-17 | 2020-12-04 | 鹏城实验室 | 固态硬盘资源分配方法、装置和存储介质 |
CN112433682A (zh) * | 2020-12-15 | 2021-03-02 | 合肥大唐存储科技有限公司 | 固态硬盘中控制参数的获取方法、存储介质和电子装置 |
Non-Patent Citations (1)
Title |
---|
基于强化学习的智能I/O调度算法;李琼等;《计算机工程与科学》;20100731;第32卷(第7期);第58页摘要-第61页第5节 * |
Also Published As
Publication number | Publication date |
---|---|
CN112988080A (zh) | 2021-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112988080B (zh) | 多数据页同时写入方法、3d闪存装置及计算机存储介质 | |
US8769190B1 (en) | System and method for reducing contentions in solid-state memory access | |
US11573742B2 (en) | Dynamic data placement for collision avoidance among concurrent write streams | |
US20210133096A1 (en) | Memory system and operating method thereof | |
CN112035061B (zh) | 固态硬盘资源分配方法、装置和存储介质 | |
KR102130578B1 (ko) | 반도체 장치 | |
US12050809B2 (en) | Multi-pass data programming in a memory sub-system having multiple dies and planes | |
CN105740946A (zh) | 一种应用细胞阵列计算系统实现神经网络计算的方法 | |
US10769004B2 (en) | Processor circuit, information processing apparatus, and operation method of processor circuit | |
CN105608490A (zh) | 细胞阵列计算系统以及其中的通信方法 | |
CN110333827B (zh) | 一种数据加载装置和数据加载方法 | |
US10241687B2 (en) | Method for operating semiconductor device and semiconductor system | |
US20190042089A1 (en) | Method of improved data distribution among storage devices | |
CN114185818A (zh) | 基于扩展页表的gpu访存自适应优化方法及装置 | |
US20190042415A1 (en) | Storage model for a computer system having persistent system memory | |
KR102142509B1 (ko) | 고체 상태 디바이스를 위한 다중 어드레스 레지스터를 위한 장치 및 방법 | |
US11232031B2 (en) | Allocation of memory ranks based on access traffic | |
US9213498B2 (en) | Memory system and controller | |
CN109285574B (zh) | 于记忆装置中进行编程管理的方法、记忆装置及控制器 | |
US20210373790A1 (en) | Inference in memory | |
CN113253939B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
US11886727B2 (en) | Memory system and method for controlling nonvolatile memory | |
US11669720B2 (en) | Storage device and method of operating the same | |
US11704065B2 (en) | Memory system limiting fetching from host submission queue based on free space of corresponding completion queue and control method thereof | |
CN113052291B (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 |