Io优化处理的方法及其系统的制作方法

文档序号:6383473阅读:271来源:国知局
专利名称:Io优化处理的方法及其系统的制作方法
技术领域
本发明涉及存储技术领域,尤其涉及一种IO优化处理的方法及其系统。
背景技术
闪存具备存取速度快,无噪音,散热小的特点,在存储市场上得到了广泛的应用。由于闪存的物理介质特点,存在一些存取限制,它可以单一字节的方式读或写入,但是抹除一定是一整个区块,同时对于覆盖写,必须先将块上的有效数据读取到内存中,然后擦除整块,再将有效数据同更新数据一同写入块中,这一过程简称“读-修改-写”。此夕卜,在SSD (solid state disk)中,通常封装了 Flash文件系统数据管理器-NAND FTL (Flash Translation Layer,闪存转换层)也称之为 FTL(FlashTranslationLayer,闪存转换层)。FTL是一个NAND闪存芯片与基础文件系统之间的一个转换层,它使操作系统和文件系统能够像访问硬盘一样访问NAND闪存设备。FTL整体管理flash设备,包括从底层flash设备分配块、地址转换、动态平均读写和垃圾收集。在某些flash设备中,可以在硬件中实现一部分FTL。在现有技术的FTL实现中,往往将其功能实现在一个封闭的控制芯片中或是一个独立模块中,往往提供较少的接口显示内部工作状态。也就是说应用数据与FTL缺乏协调,导致FTL性能较低,不利于IO (input/output,输入输出)优化处理。综上可知,现有的IO优化处理技术在实际使用上,显然存在不便与缺陷,所以有必要加以改进。

发明内容
针对上述的缺陷,本发明的目的在于提供一种IO优化处理的方法及其系统,以提高应用数据与闪存转换层之间的协调性以及闪存转换层的性能。为了实现上述目的,本发明提供一种IO优化处理的方法,所述方法包括如下步骤获取闪存转换层的状态特征;根据所述闪存转换层的状态特征选择IO队列中合适IO和/或应用数据的进行优先处理。根据所述的方法,所述获取闪存转换层的状态特征的步骤包括获取所述闪存转换层正在进行垃圾回收的页和/或块的信息;和/或获取所述闪存转换层正在进行的均衡磨损的块的信息;和/或获取所述闪存转换层正在进行的读-修改-写的块的信息。根据所述的方法,所述根据所述闪存转换层的状态特征选择IO队列中合适的进行优先处理的步骤包括选择与所述闪存转换层正在进行垃圾回收的页和/或块相关的IO进行优先处理;和/或
选择与所述闪存转换层正在进行的均衡磨损的块的相关的IO进行优先处理;和/或选择与所述闪存转换层正在进行的读-修改-写的块相关的IO进行优先处理。根据所述的方法,在所述闪存转换层处理的IO对应的应用具有写高速缓存器系统时,所述根据所述闪存转换层的状态特征选择IO队列中合适的进行优先处理的步骤包括选择与所述闪存转换层正在进行垃圾回收的页和/或块相关的垃圾数据进行优先处理;和/或选择与所述闪存转换层正在进行的均衡磨损的块的相关的垃圾数据进行优先处理;和/或选择与所述闪存转换层正在进行的读-修改-写的块相关的垃圾数据进行优先处理。根据所述的方法,在所述获取闪存转换层的状态特征的步骤之前包括记录所述闪存转换层的状态特征的步骤。为了实现本发明的另一发明目的,本发明还提供了一种IO优化处理的系统,所述系统包括获取模块,用于获取闪存转换层的状态特征;处理模块,用于根据所述闪存转换层的状态特征选择IO队列中合适的IO和/或应用数据进行优先处理。根据所述的系统,所述获取模块包括第一获取子模块,用于获取所述闪存转换层正在进行垃圾回收的页和/或块的信息;和/或第二获取子模块,用于获取所述闪存转换层正在进行的均衡磨损的块的信息;和/或第三获取子模块,用于获取所述闪存转换层正在进行的读-修改-写的块的信息。根据所述的系统,所述处理模块包括第一处理子模块,用于选择与所述闪存转换层正在进行垃圾回收的页和/或块相关的IO进行优先处理;和/或第二处理子模块,用于选择与所述闪存转换层正在进行的均衡磨损的块的相关的IO进行优先处理;和/或第三处理子模块,用于选择与所述闪存转换层正在进行的读-修改-写的块相关的IO进行优先处理。根据所述的系统,在所述闪存转换层处理的IO对应的应用具有写高速缓存器系统时,所述第一处理子模块选择与所述闪存转换层正在进行垃圾回收的页和/或块相关的垃圾数据进行优先处理;和/或所述第二处理子模块选择与所述闪存转换层正在进行的均衡磨损的块的相关的垃圾数据进行优先处理;和/或所述第三处理子模块选择与所述闪存转换层正在进行的读-修改-写的块相关的垃圾数据进行优先处理。
根据所述的系统,所述系统还包括记录模块,用于记录所述闪存转换层的状态特征。本发明通过获取闪存转换层的状态特征;然后根据所述闪存转换层的状态特征选择IO队列中合适IO和/或应用数据的进行优先处理。使FTL与应用相结合,优选的,通过FTL检测自身的状态,主动从IO队列或是应用中获取数据进行处理,从而加速了应用数据的存储效率,提升了应用的IO性能,提高应用数据与FTL之间的协调性以及FTL的性能。


图1是本发明第一实施例提供的IO优化处理的系统结构示意图;图2是本发明第二、三、五实施例提供的IO优化处理的系统结构示意图;图3是本发明第六实施例提供的IO优化处理的方法流程图;图4是本发明一个实施例提供的应用与闪存转换层的交互示意图;图5是本发明一个实施例提供的IO优化处理的方法流程图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。参见图1,在本发明的第一实施例中提供了一种IO优化处理的系统100,所述系统包括获取模块10,用于获取闪存转换层的状态特征;处理模块20,用于根据所述闪存转换层的状态特征选择IO队列中合适IO和/或应用数据的进行优先处理。在该实施中,通过获取模块10首先获取闪存转换层的状态特征,处理模块20通过闪存转换层的状态特征可以掌握当前闪存转换层处理IO的情况,然后将适合优先处理的IO和/或应用数据提前进行处理。这样可以提高应用数据与FTL之间的协调性以及FTL的性能。参见图2,在本发明的第二实施例中,获取模块10包括第一获取子模块11,用于获取所述闪存转换层正在进行垃圾回收的页和/或块的信息;和/或第二获取子模块12,用于获取所述闪存转换层正在进行的均衡磨损的块的信息;和/或第三获取子模块13,用于获取所述闪存转换层正在进行的读-修改-写的块的信
肩、O在该实施例中,第一获取子模块11获取所述闪存转换层正在进行垃圾回收的页和/或块的信息;通过这些垃圾回收的页和/或块的信息将掌握当前相关的IO处理情况;第二获取子模块12获取所述闪存转换层正在进行的均衡磨损的块的信息,则通过这些均衡磨损的块的信息,也将掌握当前闪存转换层正在处理的相关IO的情况;此外,第三获取子模块13还将获取所述闪存转换层正在进行的读-修改-写的块的信息,以掌握当前闪存转换层正在处理的相关IO的情况。参见图2,在本发明的第三实施例中,处理模块20包括第一处理子模块21,用于选择与所述闪存转换层正在进行垃圾回收的页和/或块相关的IO进行优先处理;和/或第二处理子模块22,用于选择与所述闪存转换层正在进行的均衡磨损的块的相关的IO进行优先处理;和/或第三处理子模块23,用于选择与所述闪存转换层正在进行的读-修改-写的块相关的IO进行优先处理。在该实施例中,第一处理子模块21、第二处理子模块22以及第三处理子模块23分别选择对应的相关的IO进行优先处理,这样将及时的将相关的IO进行处理,减少IO处理的时间,提高IO处理的效率。在本发明的第四实施例中,在所述闪存转换层处理的IO对应的应用具有写高速缓存器系统时,所述第一处理子模块21选择与所述闪存转换层正在进行垃圾回收的页和/或块相关的dirty (垃圾)数据进行优先处理;和/或所述第二处理子模块22选择与所述闪存转换层正在进行的均衡磨损的块的相关的dirty (垃圾)数据进行优先处理;和/或所述第三处理子模块23选择与所述闪存转换层正在进行的读-修改-写的块相关的dirty (垃圾)数据进行优先处理。在该实施例中,第一处理子模块21、第二处理子模块22以及第三处理子模块23分别将相应的应用数据即时进行处理,从而加速了应用数据的存储效率。因此,闪存转换层通过检测自身的状态,主动从IO队列或是应用中获取数据进行处理,不但加速了应用数据的存储效率,还提升了应用的IO性能。参见图2,在本发明的第五实施例中,系统100还包括记录模块30,用于记录所述闪存转换层的状态特征。在该实施例中,记录模块30将记录的关键信息包括1)正在进行垃圾回收的页、块信息;2)正在进行均衡磨损的块信息3)正在进行读-修改-写的块信息。根据这些信息可以及时掌握当前固态硬盘需要处理的数据。在上述多个实施例中,该系统100的多个模块可以是软件单元,硬件单元或软硬件结合单元。参见图3,在本发明的第六实施例中,提供了一种IO优化处理的方法,所述方法包括如下步骤步骤S301中,获取模块10获取闪存转换层的状态特征;步骤S302中,处理模块20根据所述闪存转换层的状态特征选择IO队列中合适的IO和/或应用数据进行优先处理。在该实施例中,提供了 FTL与应用的协调的方法,具体的至于FTL中的地址转换、均衡磨损(wear-leveling)、垃圾回收(Garbage Collector),同现有技术中的FTL实现,在这里不做描述重点。在本发明的第七实施例中,所述步骤S301包括第一获取子模块11获取所述闪存转换层正在进行垃圾回收的页和/或块的信息;和/或第二获取子模块12获取所述闪存转换层正在进行的均衡磨损的块的信息;和/或第三获取子模块13获取所述闪存转换层正在进行的读-修改-写的块的信息。在该实施例中,通过获取模块10的多个子模块,分别获取闪存转换层的多个状态下处理的相关数据块的信息。优选的,获取模块10和处理模块20均可设置在闪存转换层中。在本发明的第八实施例中,所述步骤S302包括第一处理子模块21选择与所述闪存转换层正在进行垃圾回收的页和/或块相关的IO进行优先处理;和/或第二处理子模块22选择与所述闪存转换层正在进行的均衡磨损的块的相关的IO进行优先处理;和/或第三处理子模块23选择与所述闪存转换层正在进行的读-修改-写的块相关的IO进行优先处理。在该实施例中处理模块20中的多个子模块根据闪存转换层当前的特征状态,选择合适的IO进行处理,以提高应用数据的存储效率,提升了应用的IO性能。在本发明的第九实施例中,在所述闪存转换层处理的IO对应的应用具有写高速缓存器系统时,所述步骤S302包括第一处理子模块21选择与所述闪存转换层正在进行垃圾回收的页和/或块相关的dirty (垃圾)数据进行优先处理;和/或第二处理子模块22选择与所述闪存转换层正在进行的均衡磨损的块的相关的dirty (垃圾)数据进行优先处理;和/或第三处理子模块23选择与所述闪存转换层正在进行的读-修改-写的块相关的dirty (垃圾)数据进行优先处理。在该实施例中,选择应用IO队列中合适的IO进行优先处理。当FTL在进行垃圾回收、均衡磨损、读-修改-写时,根据FTL当前的状态特征信息,选择与这些page、块相关的IO优先进行处理。在应用存在write cache系统时,当FTL在进行垃圾回收、均衡磨损、读-修改-写时,选择与这些page、块相关的dirty数据优先进行处理。在本发明的多个实施例中,dirty数据也可以表述为旧的数据。所述优先处理可以是立即处理,提前对所述相关数据的处理。在本发明的第十实施例中,在所述步骤S301之前包括记录模块30记录所述闪存转换层的状态特征的步骤,以记录FTL内部运行状态信息。参见图4,在本发明的一个实施例中,提供了应用与闪存转换层的交互示意过程,描述如下FTL在执行垃圾回收、均衡磨损或是读-修改-写时,根据其涉及的page/块地址,从IO队列获取关联IO进行处理;在存在write cache (与闻速缓冲存储器)的系统中,从write cache中获取关联的dirty数据进行处理。具体的FTL中的垃圾回收算法选择一个最优块进行垃圾回收,该块中的一些页面数据已无效,但可能存在一些有效页的页面;然后各厂商算法均不同。而在FTL的动态均衡磨损算法中,对空闲块池进行浏览,寻找一个擦除计数值最小的块单元(block)。一旦找到符合要求的块,就将新数据写入,并将该块送入数据块池,然后将新块的物理地址与主机发送过来的逻辑地址在转换映射表上建立彼此的映射关系。而最初映射的物理块将被擦除,更新擦除计数并送入空闲块池中,但该块可能存在有效页的页面,那么这部分数据也必须搬移到新块中。取得该块中有效页的页面的逻辑地址;在上层IO队列中查找与有效页的页面相关联的10,即该IO地址范围与有效页的页面地址存在交集或相连;另外,在存在write cache的系统中,继续在write cache中查找与所述最初映射的物理块中有效页的页面相关联的dirty数据,即该数据的地址范围与有效页的页面地址存在交集或相连。在获取上述信息后,FTL中的垃圾回收算法、均衡磨损算法即可进行优化,加速用户数据的处理。参见图5,在本发明的一个实施例中,提供的IO优化处理的方法,描述如下步骤S501中,选择执行垃圾回收、均衡磨损、读-修改-写的某块;步骤S502中,将执行上叙操作涉及的页拷贝到缓存中;步骤S503中,从IO队列中查找读命令是否命中上叙缓存,如果是,返回读IO数据;步骤S504中,从IO队列中查找写命令是否关联该块内页,如果是执行优化操作;步骤S505中,从write cache查找dirty数据是否关联该块内页,如果是执行优化操作。在该实施例中,当FTL选择一个块执行垃圾回收、均衡磨损、读-修改-写时,先读取有效页到缓存中,此时可在IO队列中检查是否存在读命令命中该缓存,如果存在,则返回数据。当FTL选择一个块执行垃圾回收时,先读取有效页到缓存中,这时可判断IO队列中是否存在写命令数据与有效页相连或存在交集,如果存在,那么将该IO数据连同有效页写入新的空闲块中,从而提升IO处理效率。同理,在存在write cache的系统中,寻找与有效页相连的dirty数据,一并写入新的空闲块中。当FTL在进行静态均衡磨损时,目标块中的有效页也会拷贝到空闲块中,也可做上叙的IO优化动作。当FTL采取的是静态均衡磨损时,在动态均衡磨损算法的基础上,对那些处于不活动状态的块单元进行寻址,如果闲置块超过了所设定的上限,FTL启动浏览操作,寻找在数据块池中擦除计数值最小的块单元,以及空闲块池中擦除计数值最大的块单元。将数据块池中最小的擦除计数值与空闲块池中最大的计数值进行相减,如果结果超过了设定上限,那么在数据块池中擦除计数值最小的块单元的数据就会被转移到空闲块池中擦除计数值最大的块单元中。即数据块池中擦除计数值最小的块就会被擦除,并放置到空闲块池中。而原先在空闲块池中计数值最大的块则由于已经被写入了其他块的内容,而被转移到数据块池中。转换完成后,在FTL中转换映射表就要进行更新。在上述过程中,目标块即数据块池中擦除计数值最小的块单元,该块存在有效页的页面。这些有效页面的数据会复制到缓存当中,然后在IO队列中或是write cache中查找到与目标块有效页的页面关联的数据,将这些数据与有效页的页面数据合并,即如果存在交集,用查找到的最新数据更新缓存中的数据;如果相连,将查找到的数据与缓存数据联合,然后统一写入空闲块中。在该过程完成后,该关联IO数据已完全写入空闲块中,IO返回;write cache中该关联的dirty数据已完全写入空闲块中,该dirty数据标识为清除状态。当FTL中的一个块在执行读-修改-写时,有效页也会拷贝到缓存中,也可做上叙的IO优化动作。具体的执行读-修改-写时的操作过程包括块中的有效数据读入缓存中;新数据写入该缓存中,可能覆盖所述块中的有效数据,同时标识块中存在有效数据的页;擦除该块;在IO队列、write cache中查找与该块有效页关联的数据;将这些数据与上述缓存中的数据合并。将合并后的缓存数据写入已擦除完的块当中;新数据以及关联IO数据完全写入该块中,IO返回;write cache中该关联的dirty数据已完全写入该块中,dirty数据标识为清除状态。综上所述,本发明通过获取闪存转换层的状态特征;然后根据所述闪存转换层的状态特征选择IO队列中合适IO和/或应用数据的进行优先处理。使FTL与应用相结合,优选的,通过FTL检测自身的状态,主动从IO队列或是应用中获取数据进行处理,从而加速了应用数据的存储效率,提升了应用的IO性能,提高应用数据与FTL之间的协调性以及FTL的性能。当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种IO优化处理的方法,其特征在于,所述方法包括如下步骤 获取闪存转换层的状态特征; 根据所述闪存转换层的状态特征选择IO队列中合适IO和/或应用数据的进行优先处理。
2.根据权利要求1所述的方法,其特征在于,所述获取闪存转换层的状态特征的步骤包括 获取所述闪存转换层正在进行垃圾回收的页和/或块的信息;和/或 获取所述闪存转换层正在进行的均衡磨损的块的信息;和/或 获取所述闪存转换层正在进行的读-修改-写的块的信息。
3.根据权利要求2所述的方法,其特征在于,所述根据所述闪存转换层的状态特征选择IO队列中合适的进行优先处理的步骤包括 选择与所述闪存转换层正在进行垃圾回收的页和/或块相关的IO进行优先处理;和/或 选择与所述闪存转换层正在进行的均衡磨损的块的相关的IO进行优先处理;和/或 选择与所述闪存转换层正在进行的读-修改-写的块相关的IO进行优先处理。
4.根据权利要求3所述的方法,其特征在于,在所述闪存转换层处理的IO对应的应用具有写高速缓存器系统时,所述根据所述闪存转换层的状态特征选择IO队列中合适的进行优先处理的步骤包括 选择与所述闪存转换层正在进行垃圾回收的页和/或块相关的垃圾数据进行优先处理;和/或 选择与所述闪存转换层正在进行的均衡磨损的块的相关的垃圾数据进行优先处理;和/或 选择与所述闪存转换层正在进行的读-修改-写的块相关的垃圾数据进行优先处理。
5.根据权利要求1所述的方法,其特征在于,在所述获取闪存转换层的状态特征的步骤之前包括 记录所述闪存转换层的状态特征的步骤。
6.一种IO优化处理的系统,其特征在于,所述系统包括 获取模块,用于获取闪存转换层的状态特征; 处理模块,用于根据所述闪存转换层的状态特征选择IO队列中合适的IO和/或应用数据进行优先处理。
7.根据权利要求6所述的系统,其特征在于,所述获取模块包括 第一获取子模块,用于获取所述闪存转换层正在进行垃圾回收的页和/或块的信息;和/或 第二获取子模块,用于获取所述闪存转换层正在进行的均衡磨损的块的信息;和/或 第三获取子模块,用于获取所述闪存转换层正在进行的读-修改-写的块的信息。
8.根据权利要求7所述的系统,其特征在于,所述处理模块包括 第一处理子模块,用于选择与所述闪存转换层正在进行垃圾回收的页和/或块相关的IO进行优先处理;和/或 第二处理子模块,用于选择与所述闪存转换层正在进行的均衡磨损的块的相关的IO进行优先处理;和/或 第三处理子模块,用于选择与所述闪存转换层正在进行的读-修改-写的块相关的IO进行优先处理。
9.根据权利要求8所述的系统,其特征在于,在所述闪存转换层处理的IO对应的应用具有写高速缓存器系统时,所述第一处理子模块选择与所述闪存转换层正在进行垃圾回收的页和/或块相关的垃圾数据进行优先处理;和/或 所述第二处理子模块选择与所述闪存转换层正在进行的均衡磨损的块的相关的垃圾数据进行优先处理;和/或 所述第三处理子模块选择与所述闪存转换层正在进行的读-修改-写的块相关的垃圾数据进行优先处理。
10.根据权利要求6所述的系统,其特征在于,所述系统还包括 记录模块,用于记录所述闪存转换层的状态特征。
全文摘要
本发明适用于存储技术领域,提供了一种IO优化处理的方法及其系统,所述方法包括如下步骤获取闪存转换层的状态特征;根据所述闪存转换层的状态特征选择IO队列中合适IO和/或应用数据的进行优先处理。借此,本发明提高了应用数据与闪存转换层之间的协调性以及闪存转换层的性能。
文档编号G06F9/46GK103049312SQ20121052157
公开日2013年4月17日 申请日期2012年12月7日 优先权日2012年12月7日
发明者曹庭华 申请人:记忆科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1