CN109947353A - 存储管理方法、固态硬盘及可读存储介质 - Google Patents
存储管理方法、固态硬盘及可读存储介质 Download PDFInfo
- Publication number
- CN109947353A CN109947353A CN201711380674.9A CN201711380674A CN109947353A CN 109947353 A CN109947353 A CN 109947353A CN 201711380674 A CN201711380674 A CN 201711380674A CN 109947353 A CN109947353 A CN 109947353A
- Authority
- CN
- China
- Prior art keywords
- memory block
- memory
- channel
- zone
- list
- 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
Links
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
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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种存储管理方法、固态硬盘及可读存储介质。所述方法包括:当检测到需要对存储通道传入的数据进行存储时,获取可用存储块,并将传入数据写入所述可用存储块中。当数据写入完成时,检测存储空间状态标识是否为非复写状态。在为非复写状态时,检测存储空间是否达到写满状态。当存储空间达到写满状态时,将存储空间状态标识切换为复写状态,并启动定时器,根据存储空间中各存储块的存储寿命系数及存储块的寿命平衡策略定时进行存储空间回收分配处理。由此,可对存储空间中的存储块进行均衡擦除,提升固态硬盘的整体使用寿命,提升数据读写效率。
Description
技术领域
本发明涉及存储技术领域,具体而言,涉及一种存储管理方法、固态硬盘及可读存储介质。
背景技术
固态硬盘(SSD,Solid State Drives)是采用固态电子存储芯片阵列而制成的硬盘,通常由主控芯片和闪存芯片组成,主控芯片是固态硬盘中负责控制数据存储的控制单元,闪存芯片是固态硬盘中负责存储数据的存储单元。其中,主控芯片的核心是FTL(FlashTranslationLayer,闪存转换层),FTL负责地址映射、垃圾回收、磨损均衡、坏块管理等业务,FTL算法策略的好坏决定了固态硬盘的性能、效率、寿命及稳定性的优劣。闪存是一种长寿命的非易失性(在断电情况下仍能保持存储的数据信息)的存储器,数据删除是以固定的区块为单位。与机械硬盘不同,闪存芯片每次写入新数据时,需要先将原有数据擦除才能写入新数据。
为了让固态硬盘拥有更长久的生命周期,避免一些存储块(Block)被频繁擦除,而另一些存储块极少被擦除的不均衡擦写导致固态硬盘整体生命周期缩短的弊端,存储领域技术人员提出了磨损均衡算法(Wear-Levelling)和垃圾回收策略(Garbage Collection)来这些问题。
垃圾回收策略可将碎片化的存储空间合并成整块的存储空间。磨损均衡算法是选择待擦除存储单元的算法,让所有存储块的擦除次数尽可能的均衡。
在数据监控领域,由于执行的监控任务的数据采集设备需要不断地将采集的数据写入固态硬盘,固态硬盘的存储空间始终处于邻近全满的存储状态,需要利用垃圾回收策略和磨损均衡算法对存储块进行循环复写。虽然,传统的标准固态硬盘的主控芯片具备标准的垃圾回收策略和磨损均衡算法,但在标准固态硬盘出厂时,主控芯片的FTL架构已完成设置,不可随意更改。标准固态硬盘在执行监控存储业务时,标准的FTL架构无法满足实际的业务存储需求,存储性能不够优越。并且,垃圾回收和磨损均衡会影响固态硬盘的读写效率,当固态硬盘的存储空间接近满状态时,性能不够优越的垃圾回收策略和磨损均衡算法不但无法提高存储速度,反而会限制固态硬盘的存储效率。
发明内容
本发明实施例提供一种存储管理方法、固态硬盘及可读存储介质。
第一方面,本发明实施例提供一种存储管理方法,所述方法包括:
当检测到需要对存储通道传入的数据进行存储时,获取可用存储块,并将传入数据写入所述可用存储块中;
当数据写入完成时,检测存储空间状态标识是否为非复写状态;
在为非复写状态时,检测存储空间是否达到写满状态;
当所述存储空间达到写满状态时,将所述存储空间状态标识切换为复写状态,并启动定时器,根据存储空间中各存储块的存储寿命系数及存储块的寿命平衡策略定时进行存储空间回收分配处理。
第二方面,本发明实施例提供一种固态硬盘,包括控制单元及存储有若干计算机指令的非易失性存储单元,所述计算机指令被所述控制单元执行时,所述控制单元执行上述的存储管理方法。
第三方面,本发明实施例提供一种可读存储介质,所述可读存储介质包括计算机程序,所述计算机程序运行时控制所述可读存储介质所在的固态硬盘执行上述的存储管理方法。
相对于现有技术而言,本发明具有以下有益效果:
本发明提供一种存储管理方法、固态硬盘及可读存储介质。所述方法包括:当检测到需要对存储通道传入的数据进行存储时,获取可用存储块,并将传入数据写入所述可用存储块中。当数据写入完成时,检测存储空间状态标识是否为非复写状态。在为非复写状态时,检测存储空间是否达到写满状态。当存储空间达到写满状态时,将存储空间状态标识切换为复写状态,并启动定时器,根据存储空间中各存储块的存储寿命系数及存储块的寿命平衡策略定时进行存储空间回收分配处理。由此,可对存储空间中的存储块进行均衡擦除,提升固态硬盘的整体使用寿命,提升数据读写效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是本发明实施例提供的监控系统的方框示意图。
图2是本发明实施例提供的固态硬盘的方框示意图。
图3是本发明实施例提供的存储管理方法的步骤流程图之一。
图4是本发明实施例提供的存储管理方法的步骤流程图之二。
图5是本发明实施例提供的图3所示的步骤S120的子步骤流程图。
图6是本发明实施例提供的图3所示的步骤S150的子步骤流程图之一。
图7是本发明实施例提供的图3所示的步骤S150的子步骤流程图之二。
图8是本发明实施例提供的图6所示的子步骤S1570的子步骤流程图。
图9是本发明实施例提供的图6所示的子步骤S1580的子步骤流程图。
图10是本发明实施例提供的图6所示的子步骤S1590的子步骤流程图。
图标:10-监控系统;100-存储设备;110-固态硬盘;111-控制单元;112-存储单元;200-数据采集设备。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
请参照图1,图1是本发明实施例提供的监控系统10的方框示意图。所述监控系统10包括:至少一个数据采集设备200及存储设备100。所述数据采集设备200与所述存储设备100通信连接。
在本实施例中,所述存储设备100包括至少一个用于存储数据信息的固态硬盘110。执行监控任务的数据采集设备200需要不间断的采集数据信息,并将采集的数据信息通过存储通道传输给所述存储设备100,以将数据信息保存到所述固态硬盘110中。
在本实施例中,所述数据采集设备200可以包括,但不限于,图像采集设备(比如,照相机、摄像机等)、音频采集设备(比如,录音机)。
请参照图2,图2是本发明实施例提供的固态硬盘110的方框示意图。所述固态硬盘110包括控制单元111及存储单元112。其中,所述控制单元111包括用于控制数据存储的主控芯片,所述存储单元112包括用于存储数据信息的非易失性闪存芯片。
对于消费级市场,由于需求的存储功能比较简单和统一,传统的标准固态硬盘即可满足需求。对于企业级市场,存储需求复杂,存在不同的操作系统和主板架构,传统的标准固态硬盘难以满足需求。用户希望能够自定义FTL,可根据自己的数据特点设计高效的FTL。比如,搜索引擎可以把索引表和SSD物理地址对应、日志数据可以直接流式写入SSD内部Flash通道、数据库希望key-value能对应到SSD物理地址等。在这个大背景前提下,CNEXlabs提出了Open ChannelSSD的概念,SSD的控制单元把SSD内部的通道开放给用户使用,控制单元只负责Flash数据传输、ECC(Error Correcting Code,错误检查和纠正)、RAID(Redundant Arrays of Independent Disks,磁盘阵列)、垃圾回收、错误处理、坏块管理等工作,而FTL层的设计由用户根据自身需求实现。
在本实施例中,本方案提供的固态硬盘110优选采用上述的OpenChannel SSD架构实现。采用Open Channel SSD架构的好处在于:主控芯片的FTL可以和产品驱动、文件系统高度融合,提升工作效率;存储业务根据需求定义FTL,FTL可以按照需求不断更新升级;针对不同应用可开发不同存储业务;可以集中管理多个SSD,组合高效的SSD阵列;可降低SSD主控芯片的负荷,可以使用更低的主频和更小的Memory,降低功耗和成本。
在本实施例中,所述存储单元112中存储有若干计算机指令。所述计算机指令被所述控制单元111执行时,所述控制单元111可执行下述的存储管理方法。
本发明提供一种可读存储介质,所述可读存储介质包括计算机程序。所述计算机程序运行时控制所述可读存储介质所在固态硬盘110执行下面的存储管理方法。
本发明提供一种存储管理方法。请参照图3,图3是本发明实施例提供的存储管理方法的步骤流程图之一。所述存储管理方法应用于上述固态硬盘110。下面对存储管理方法流程进行详细阐述。
步骤S120,当检测到需要对存储通道传入的数据进行存储时,获取可用存储块,并将传入数据写入所述可用存储块中。
步骤S130,当数据写入完成时,检测存储空间状态标识是否为非复写状态。
在本实施例中,在完成一次数据写入操作时,控制单元111需要检测存储空间状态标识是否为非复写状态。
在本实施例中,所述非复写状态是指初始启用固态硬盘110时,所述固态硬盘110的存储空间中存在较多的可用存储块,无需对存储块进行回收复写处理的初始化状态。
步骤S140,在为非复写状态时,检测存储空间是否达到写满状态。
在本实施例中,在为非复写状态时,所述控制单元111需要检测存储空间是否达到写满状态。
在本实施例中,所述控制单元111检测存储空间是否达到写满状态的方式可以包括,但不限于:1.检测存储空间中当前被数据占用的存储块数量是否超过存储满状态阈值,若超过存储满状态阈值,则可判定达到写满状态,反之则未达到写满状态。2.检测存储空间中当前处于空闲状态的存储块的数量是否低于存储下限阈值,若低于存储下限阈值,则可判定达到写满状态,反之则未达到写满状态。其中,所述存储满状态阈值或存储下限阈值可根据实际需求进行设定。
步骤S150,当所述存储空间达到写满状态时,将所述存储空间状态标识切换为复写状态,并启动定时器,根据存储空间中各存储块的存储寿命系数及存储块的寿命平衡策略定时进行存储空间回收分配处理。
在本实施例中,可对定时器的报警时刻进行设置,以便于在到达报警时刻时进行存储空间回收分配处理。
请参照图4,图4是本发明实施例提供的存储管理方法的步骤流程图之二。在进行数据写入的步骤S120之前,所述方法还需要对所述固态硬盘110进行初始化处理。进行初始化处理的步骤包括:步骤S110、步骤S112、步骤S114、步骤S116及步骤S118。
步骤S110,将存储空间划分为多个存储块。
在本实施例中,在进行固态硬盘110初始化处理时,首先需要将固态硬盘110的存储空间按照物理地址划分为多个若干等分的存储块。
在本实施例中,存储块是数据管理的基本单位,所有待存储的数据都需要写入某个存储块中进行保存。其中,存储块主要包括三种状态:1.空闲状态:未保存数据,可写入数据。2.有效状态:保存有有效数据(比如,索引数据、录像数据、图片数据、元数据、日志数据、报警记录等),不可写入数据。2.无效状态:保存有无效数据(即数据的保存时间已超出实际需要的存储时间),可以被复写,但由于无效数据未被擦除,尚不能写入新数据。
在本实施例中,监控系统10需要存储的监控数据可以包括,但不限于,视频录像、抓拍图片、报警消息、日志记录等业务数据、管理数据(比如,地址映射、存储块状态、存储通道状态等)以及业务数据对应的索引数据。所述监控系统10中的每个数据采集设备200可对应一个存储通道,每个数据采集设备200通过对应的存储通道可将需要存储的数据传输给存储设备100,以保存到所述固态硬盘110中。
在本实施例中,当同时存在多个存储通道保存数据时,需要根据具体业务对存储块的大小进行定义合理,以使每个存储通道可根据需求灵活指定需要占用的存储空间。例如,由于不同存储通道的复写速度不一致,可按照复写速度最慢的存储通道来定义存储块的大小。由此,每个存储通道可根据复写速度快慢选择存储块数量,比如,复写速度快的存储通道可获取较多的存储块以便于快速完成数据写入处理,提升存储处理效率。
在本实施例中,索引数据的复写速度相比于业务数据要慢很多,若按照索引数据的复写速度定义存储块的大小,由于索引数据占用空间较少,存储块会变得非常小,会影响存储效率,不利于管理。此时,可以采用以下策略的一种或多种进行优化。
策略1:索引数据不单独保存,可与业务数据合在一起进行存储。
策略2:将多个存储通道的索引合并在一起进行存储,增加复写速度。
策略3:采用冗余缓存块的方式实现数据循环复写和磨损平衡。比如,将B块作为A块的冗余缓存块,将索引数据交替循环写入A、B块中。
在本实施例中,对于管理数据的保存可以采用以下策略的一种或多种进行优化。
策略1:在固态硬盘110的头部独立划分一块用于保存管理数据的专用存储区域,所述专用存储区域也可划分为同样大小的存储块。由于存储块数量较少,可按照一定周期定时与固态硬盘110其余存储区域的存储块记性冷热交换处理,从而保证整体的磨损平衡。
策略2:单独采用额外的存储介质(比如,可采用擦除寿命较高、存储空间较小的SLC(Single-Level Cell,单层单元)或MLC(Multi-Level Cell,多层单元)闪存介质)保存管理数据。SLC的特点是成本高、容量小、速度快,MLC的特点是容量大、成本低、速度慢。
步骤S112,对存储空间状态标识进行初始化定义,将所述存储空间状态标识设置为非复写状态。
在本实施例中,为固态硬盘110的存储空间定义一个存储空间状态标识,将所述存储空间状态标识设置为非复写状态,即初始化状态。
步骤S114,为每个存储通道初始化配置一个可用存储块队列,并在每个可用存储块队列中添加可用存储块。
在本实施例中,为每个存储通道配置一个可用存储块队列,并在每个可用存储块队列中添加若干个可用存储块。所述添加的可用存储块的数量可根据实际需求进行设定。其中,添加的可用存储块数量不宜太多,优选添加1-2个。
步骤S116,将每个存储通道加入复写通道列表,并按照复写周期从大到小进行排序。
在本实施例中,建立一张复写通道列表,将每个存储通道加入所述复写通道列表,并将每个存储通道按照复写周期从大到小的顺序进行排序。
步骤S118,计算所述复写通道列表中每个存储通道的可复写存储块数目,并将所述可复写存储块数目对应记录到所述复写通道列表中。
在本实施例中,计算可复写存储块数目的公式可以包括,但不限于:m=s×T÷k。其中,m表示可复写存储块数目,s表示存储通道复写速度,T表示复写周期,k表示存储块的大小。
下面结合上述描述对图3中的步骤S120及步骤S150进行说明。
对于步骤S120,请参照图5,图5是本发明实施例提供的图3所示的步骤S120的子步骤流程图。所述步骤S120包括子步骤S121、子步骤S122、子步骤S123、步骤S124、子步骤S125及子步骤S126。
子步骤S121,当检测到所述存储通道对应的所述可用存储块队列中有可用存储块时,从所述可用存储块队列中获取预设数量的可用存储块,并将数据写入所述可用存储块中。
在本实施例中,控制单元111在检测到需要对存储通道传入的数据进行存储时,先检测所述存储通道对应的所述可用存储块队列中是否有可用存储块。在有可用存储块时,所述控制单元111可从所述可用存储块队列中获取预设数量的可用存储块,并将数据写入所述可用存储块中。其中,所述预设数量可根据所述可用存储块队列允许存放的可用存储块数量进行设定。
在本实施例中,若所述可用存储块队列中没有可用存储块,所述控制单元111可在存储空间中获取处于空闲状态的存储块,将所述处于空闲状态的存储块作为可用存储块加入到所述可用存储块队列中。若所述存储空间中没有处于空闲状态的存储块,则表明当前固态硬盘110没有可用的数据存储空间,无法进行数据写入。
在本实施例中,所述可用存储块队列中不会存放过多数量的可用存储块,本方案采用用完再取的策略,当所述可用存储块队列中的可用存储块用完时可重新添加,可有效避免存储资源的浪费。
子步骤S122,当检测到所述可用存储块写满时,将所述可用存储块从所述可用存储块队列中出队。
在本实施例中,当一个可用存储块写满时,所述控制单元111可将所述可用存储块移出所述可用存储块队列。
子步骤S123,检测数据写入操作是否完成。
在本实施例中,当写完一个可用存储块时,所述控制单元111可检测所述存储通道本次的数据写入操作是否完成。
子步骤S124,当数据写入未完成时,对所述存储空间状态标识的当前状态进行检测。
在本实施例中,当数据写入未完成时,所述控制单元111对所述存储空间状态标识的当前状态进行检测。当数据写入完成时,所述控制单元111循环执行上述子步骤S121-子步骤S123,直到本次数据写入操作完成为止。
子步骤S125,当所述当前状态为非复写状态时,从存储空间中获取处于空闲状态的存储块加入所述可用存储块队列,并从所述可用存储块队列中获取新的可用存储块进行数据写入。
子步骤S126,当所述当前状态为复写状态时,从所述可用存储块队列中获取新的可用存储块进行数据写入。
在本实施例中,基于所述存储空间状态标识的不同状态,所述可用存储块的获取方式也不同。
在本实施例中,当所述存储空间状态标识为非复写状态时,所述控制单元111可从存储空间中获取处于空闲状态的存储块加入所述可用存储块队列,并从所述可用存储块队列中获取新的可用存储块进行数据写入。
在本实施例中,当所述存储空间状态标识为复写状态时,所述控制单元111会定时进行存储空间回收分配处理,执行存储块回收分配的进程可将重新回收的存储块作为可用存储块自动放入所述可用存储块队列中。由此,所述控制单元111可从所述可用存储块队列中直接获取新的可用存储块进行数据写入。
对于步骤S150,请参照图6,图6是本发明实施例提供的图3所示的步骤S150的子步骤流程图之一。所述步骤S150包括子步骤S151、子步骤S152、子步骤S153、子步骤S154、子步骤S155、子步骤S156、子步骤S157、子步骤S1570、子步骤S158、子步骤S1580、子步骤S159及子步骤S1590。
在本实施例中,所述寿命平衡策略包括:热区分配策略、冷区分配策略及平衡区分配策略。
子步骤S151,将正在执行存储业务的存储通道加入待处理通道列表。
在本实施例中,所述控制单元111将每个正在执行存储业务的存储通道加入待处理通道列表。
子步骤S152,从所述待处理通道列表中获取一个待处理通道,对所述待处理通道对应的存储块进行遍历,查找处于有效状态的存储块。
在本实施例中,所述控制单元111可从所述待处理通道列表中获取一个待处理通道,获取相关的通道信息,并对所述待处理通道对应的存储块进行遍历,查找处于有效状态的存储块。其中,所述控制单元111可从所述待处理通道列表的表头、表尾或任意位置随机获取一个待处理通道。
子步骤S153,在所述处于有效状态的存储块中,按照数据写入时间顺序获取数量为所述可复写存储块数目的存储块,将所述存储块的状态设置为无效状态,并记录到回收列表。
在本实施例中,所述控制单元111可在所述处于有效状态的存储块中,按照数据写入的时间顺序获取数量为所述可复写存储块数目的存储块,将所述存储块的状态设置为无效状态,并记录到回收列表中。
在本实施例中,在按照数据写入的时间顺序获取需要修改状态的存储块时,还可检测被获取的存储块中存储的数据是否已失效,在数据失效(即数据的保存时间超出实际需要的存储时间,比如,录像数据的保存时间超出实际需要保存的录像周期)时,才会修改该存储块的状态,并记录到回收列表中,以避免在后续的回收处理中将存储块中的有效数据擦除。
子步骤S154,对记录在所述回收列表的存储块进行数据擦除处理,更新所述存储块的擦除次数,将所述存储块的状态更新为空闲状态,并将记录到分配列表。
在本实施例中,存储块每被擦除一次,就需要更新所述存储块的擦除次数,比如,将擦除次数加1。之后,再将所述存储块从无效状态切换为空闲状态,并将记录到分配列表中。
子步骤S155,检测所述待处理通道列表中是否存在未处理的待处理通道。
在本实施例中,在完成一个待处理通道的存储块擦除回收处理之后,所述控制单元111可检测所述待处理通道列表中是否存在未处理的待处理通道。若存在,所述控制单元111重复执行上述子步骤S152、子步骤S153及子步骤S154,直到将所述待处理通道列表中的待处理通道均被处理完为止。
子步骤S156,当不存在时,根据所述分配列表中每个存储块的当前擦除次数和擦除次数上限计算每个存储块的存储寿命系数。
在本实施例中,所述存储寿命系数的计算方法可以是,但不限于:存储寿命系数=当前擦除次数÷擦除次数上限。其中,每个存储块均有对应的擦除次数上限,所述擦除次数上限可在进行初始化处理时设置。
在本实施例中,采用存储块每被擦除一次,当前擦除次数加1的更新方式,由于擦除次数影响存储块的使用寿命,而每个存储块的擦除次数上限是一个固定值,当前擦除次数越多,该存储块的存储寿命系数就越大,由此,存储寿命系数越大表明存储块的可用寿命越短。
子步骤S157,遍历所述分配列表,将所述存储寿命系数大于热区阈值的存储块加入热区列表,并基于所述存储寿命系数对所述热区列表中的存储块进行排序。
在本实施例中,所述控制单元111遍历所述分配列表,将存储寿命系数大于热区阈值的存储块加入热区列表,并按照存储寿命系数从高到低的顺序对存储块进行排序。
子步骤S1570,根据热区分配策略对经过排序的所述热区列表中的存储块进行热区回收分配处理。
子步骤S158,将所述存储寿命系数小于冷区阈值的存储块加入冷区列表,并基于所述存储寿命系数对所述冷区列表中的存储块进行排序。
在本实施例中,所述控制单元111将存储寿命系数大于冷区阈值的存储块加入冷区列表,并按照存储寿命系数从低到高的顺序对存储块进行排序。
子步骤S1580,根据冷区分配策略对经过排序的所述冷区列表中的存储块进行冷区回收分配处理。
子步骤S159,将所述存储寿命系数位于所述热区阈值与所述冷区阈值之间的存储块加入平衡区列表,并基于所述擦除次数对所述平衡区列表中的存储块进行排序。
在本实施例中,所述控制单元111存储寿命系数位于所述热区阈值与所述冷区阈值之间的存储块加入平衡区列表,并按照所述擦除次数从高到低的顺序对所述平衡区列表中的存储块进行排序。除此之外,也可按照存储寿命系数从高到低的顺序进行排序。
子步骤S1590,根据平衡区分配策略对经过排序的所述平衡区列表中的存储块进行平衡区回收分配处理。
在本实施例中,除上述步骤之外,所述控制单元111还可定期对每个存储块的当前擦除次数进行统计,并计算得到平均擦除次数,对每个存储块的存储寿命系数进行统计,并计算得到平均存储寿命系数。
在本实施例中,所述控制单元111可基于当前擦除次数及存储寿命系数定期进行方差计算,并根据方差结果对擦除次数和/或使用寿命的离散程度进行评估。例如,可根据方差结果的离散程度设定热区阈值及冷区阈值。所述控制单元111可定义两个离散阈值(比如,R1,R2,R1>R2)。如果方差结果的离散程度小于R2,可使用默认的热区阈值和冷区阈值;如果方差结果的离散程度大于R1,或者离散程度在R1与R2之内,但离散程度有继续变大趋势,所述控制单元111可对热区阈值和冷区阈值记性动态调整,以增大热区范围和冷区范围。
请参照图7,图7是本发明实施例提供的图3所示的步骤S150的子步骤流程图之二。在子步骤S157之前,所述步骤S150还可包括子步骤S1500。其中,所述子步骤S1500只需保证在子步骤S157之前执行即可,例如,所述子步骤S1500也可在子步骤S151之前执行。
子步骤S1500,对复写通道列表进行更新,将每个存储通道的分配计数设置为该存储通道的可复写存储块数目。
在本实施例中,所述控制单元111对复写通道列表进行更新,遍历经过更新的所述复写通道列表,更新计算表中每个存储通道的可复写存储块数目,并将每个存储通道的分配计数设置为该存储通道的可复写存储块数目,将该存储通道标记为待处理状态。
下面基于上述对子步骤S1500的描述对子步骤S1570、子步骤S1580及子步骤S1590进行说明。
请参照图8,图8是本发明实施例提供的图6所示的子步骤S1570的子步骤流程图。所述子步骤S1570包括子步骤S1571、子步骤S1572、子步骤S1573及步骤S1574。
子步骤S1571,从所述热区列表的表头获取一个热区存储块。
在本实施例中,由于所述热区列表是按照存储寿命系数从高到低的顺序进行排序的,所述控制单元111从所述热区列表的表头依次获取热区存储块,即按照存储寿命系数从大到小的顺序获取存储块。
子步骤S1572,检测所述热区存储块是否已处理。
在本实施例中,所述控制单元111检测所述热区存储块是否已处理的方式可以包括,但不限于:检测所述热区存储块的当前分配通道号字段中是否存在有效通道号,若存在,可判定所述热区存储块已处理,反之则未处理;或者检测所述热区存储块的编号是否记录在已处理列表中,若已记录,可判定所述热区存储块已处理,反之则未处理。其中,所述有效通道号是指存储通道的通道号。
子步骤S1573,当未处理时,从所述复写通道列表的表头开始遍历所述复写通道列表,选择一个分配计数大于零的存储通道,将所述存储通道的通道号写入所述热区存储块的当前分配通道号字段中,并更新所述分配计数。
在本实施例中,由于所述复写通道列表是按照复写周期从大到小进行排序的,所述控制单元111从所述复写通道列表的表头顺序选择分配计数大于零的存储通道,即按照复写周期从大到小的顺序获取存储通道。由此,所述控制单元111可将存储寿命系数大的存储块优先分配给复写周期长的存储通道,可使该存储块不被频繁擦除,延长该存储块的使用寿命。
子步骤S1574,将所述热区存储块加入所述存储通道对应的可用存储块队列中。
在本实施例中,所述控制单元111在完成一个热区存储块处理后,可检测所述热区列表中是否还存在未处理的热区存储块,若存在,所述控制单元111重复执行上述子步骤S1571-子步骤S1574,直至所述热区列表中的热区存储块均处理完毕为止。
请参照图9,图9是本发明实施例提供的图6所示的子步骤S1580的子步骤流程图。所述子步骤S1580包括子步骤S1581、子步骤S1582、子步骤S1583及步骤S1584。
子步骤S1581,从所述冷区列表的表头获取一个冷区存储块。
在本实施例中,由于所述冷区列表是按照存储寿命系数从低到高的顺序进行排序的,所述控制单元111从所述冷区列表的表头依次获取冷区存储块,即按照存储寿命系数从小到大的顺序获取存储块。
子步骤S1582,检测所述冷区存储块是否已处理。
在本实施例中,所述控制单元111检测所述冷区存储块是否已处理的方式与上述检测热区存储块的方式相似,在此不在赘述。
子步骤S1583,当未处理时,从所述复写通道列表的表尾开始遍历所述复写通道列表,选择一个分配计数大于零的存储通道,将所述存储通道的通道号写入所述冷区存储块的当前分配通道号字段中,并更新所述分配计数,将所述冷区存储块标记为已处理。
在本实施例中,所述控制单元111从所述复写通道列表的表尾选择分配计数大于零的存储通道,即按照复写周期从小到大的顺序获取存储通道。由此,所述控制单元111可将存储寿命系数小的存储块优先分配给复写周期短的存储通道,即将使用寿命长的存储块优先分配给频繁进行复写的存储通道使用。
子步骤S1584,将所述冷区存储块加入所述存储通道对应的可用存储块队列中。
在本实施例中,所述控制单元111在完成一个冷区存储块处理后,可检测所述冷区列表中是否还存在未处理的冷区存储块,若存在,所述控制单元111重复执行上述子步骤S1581-子步骤S1584,直至所述冷区列表中的冷区存储块均处理完毕为止。
请参照图10,图10是本发明实施例提供的图6所示的子步骤S1590的子步骤流程图。所述子步骤S1590包括子步骤S1591、子步骤S1592、子步骤S1593及步骤S1594。
子步骤S1591,从所述复写通道列表的表头获取一个分配计数不为零的存储通道。
子步骤S1592,从所述平衡区列表的表头开始遍历所述平衡区列表,依次获取数目等于所述存储通道的分配计数的平衡区存储块。
子步骤S1593,将所述存储通道的通道号写入获取的所述平衡区存储块的当前分配通道号中,并将所述平衡区存储块标记为已处理,将所述存储通道的分配计数置零。
子步骤S1594,将所述平衡区存储块加入所述存储通道对应的可用存储块队列中。
在本实施例中,所述平衡区存储块的分配无需像热区存储块、冷区存储块一样按照存储寿命系数进行精细分配,所述平衡区存储块只要根据存储通道需求进行批量分配即可。
在本实施例中,本方案采用Open Channel SSD架构,用户可自行设计固态硬盘110的FTL,使固态硬盘110的垃圾回收算法和磨损均衡算法满足自身实际需求。本方案根据存储寿命系数将固态硬盘110的存储块划分为热区存储块、冷区存储块和平衡区存储块,不同区的存储块有对应的回收分配策略。可有效保证存储空间中所有存储块的擦除次数的均衡,提升固态硬盘110的整体使用寿命,提升数据读写效率。
综上所述,本发明实施例提供一种存储管理方法、固态硬盘及可读存储介质。所述方法包括:当检测到需要对存储通道传入的数据进行存储时,获取可用存储块,并将传入数据写入所述可用存储块中。当数据写入完成时,检测存储空间状态标识是否为非复写状态。在为非复写状态时,检测存储空间是否达到写满状态。当所述存储空间达到写满状态时,将所述存储空间状态标识切换为复写状态,并启动定时器,根据存储空间中各存储块的存储寿命系数及存储块的寿命平衡策略定时进行存储空间回收分配处理。由此,通过根据存储寿命将固态硬盘的存储块划分为热区存储块、冷区存储块和平衡区存储块,不同区的存储块有对应的回收分配策略。可均衡存储空间中存储块的擦除次数,提升固态硬盘的整体使用寿命,提升数据读写效率。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种存储管理方法,其特征在于,所述方法包括:
当检测到需要对存储通道传入的数据进行存储时,获取可用存储块,并将传入数据写入所述可用存储块中;
当数据写入完成时,检测存储空间状态标识是否为非复写状态;
在为非复写状态时,检测存储空间是否达到写满状态;
当所述存储空间达到写满状态时,将所述存储空间状态标识切换为复写状态,并启动定时器,根据存储空间中各存储块的存储寿命系数及存储块的寿命平衡策略定时进行存储空间回收分配处理。
2.根据权利要求1所述的方法,其特征在于,在所述获取可用存储块,并将传入数据写入所述可用存储块中之前,所述方法还包括:
将存储空间划分为多个存储块;
对存储空间状态标识进行初始化定义,将所述存储空间状态标识设置为非复写状态;
为每个存储通道初始化配置一个可用存储块队列,并在每个可用存储块队列中添加可用存储块;
将每个存储通道加入复写通道列表,并按照复写周期从大到小进行排序;
计算所述复写通道列表中每个存储通道的可复写存储块数目,并将所述可复写存储块数目对应记录到所述复写通道列表中。
3.根据权利要求2所述的方法,其特征在于,所述获取可用存储块,并将传入数据写入所述可用存储块中,包括:
当检测到所述存储通道对应的所述可用存储块队列中有可用存储块时,从所述可用存储块队列中获取预设数量的可用存储块,并将数据写入所述可用存储块中;
当检测到所述可用存储块写满时,将所述可用存储块从所述可用存储块队列中出队;
检测数据写入操作是否完成;
当数据写入未完成时,对所述存储空间状态标识的当前状态进行检测;
当所述当前状态为非复写状态时,从存储空间中获取处于空闲状态的存储块加入所述可用存储块队列,并从所述可用存储块队列中获取新的可用存储块进行数据写入;
当所述当前状态为复写状态时,从所述可用存储块队列中获取新的可用存储块进行数据写入。
4.根据权利要求2或3任意一项所述的方法,其特征在于,所述寿命平衡策略包括:热区分配策略、冷区分配策略及平衡区分配策略,所述根据存储空间中各存储块的存储寿命系数及存储块的寿命平衡策略定时进行存储空间回收分配处理,包括:
将正在执行存储业务的存储通道加入待处理通道列表;
从所述待处理通道列表中获取一个待处理通道,对所述待处理通道对应的存储块进行遍历,查找处于有效状态的存储块;
在所述处于有效状态的存储块中,按照数据写入时间顺序获取数量为所述可复写存储块数目的存储块,将所述存储块的状态设置为无效状态,并记录到回收列表;
对记录在所述回收列表的存储块进行数据擦除处理,更新所述存储块的擦除次数,将所述存储块的状态更新为空闲状态,并将记录到分配列表;
检测所述待处理通道列表中是否存在未处理的待处理通道;
当不存在时,根据所述分配列表中每个存储块的当前擦除次数和擦除次数上限计算每个存储块的存储寿命系数;
遍历所述分配列表,将所述存储寿命系数大于热区阈值的存储块加入热区列表,并基于所述存储寿命系数对所述热区列表中的存储块进行排序;
根据热区分配策略对经过排序的所述热区列表中的存储块进行热区回收分配处理;
将所述存储寿命系数小于冷区阈值的存储块加入冷区列表,并基于所述存储寿命系数对所述冷区列表中的存储块进行排序;
根据冷区分配策略对经过排序的所述冷区列表中的存储块进行冷区回收分配处理;
将所述存储寿命系数位于所述热区阈值与所述冷区阈值之间的存储块加入平衡区列表,并基于所述擦除次数对所述平衡区列表中的存储块进行排序;
根据平衡区分配策略对经过排序的所述平衡区列表中的存储块进行平衡区回收分配处理。
5.根据权利要求4所述的方法,其特征在于,在所述遍历所述分配列表之前,所述根据存储空间中各存储块的存储寿命系数及存储块的寿命平衡策略定时进行存储空间回收分配处理,还包括:
对复写通道列表进行更新,将每个存储通道的分配计数设置为该存储通道的可复写存储块数目。
6.根据权利要求5所述的方法,其特征在于,所述根据热区分配策略对经过排序的所述热区列表中的存储块进行热区回收分配处理,包括:
从所述热区列表的表头获取一个热区存储块;
检测所述热区存储块是否已处理;
当未处理时,从所述复写通道列表的表头开始遍历所述复写通道列表,选择一个分配计数大于零的存储通道,将所述存储通道的通道号写入所述热区存储块的当前分配通道号字段中,并更新所述分配计数;
将所述热区存储块加入所述存储通道对应的可用存储块队列中。
7.根据权利要求5所述的方法,其特征在于,所述根据冷区分配策略对经过排序的所述冷区列表中的存储块进行冷区回收分配处理,包括:
从所述冷区列表的表头获取一个冷区存储块;
检测所述冷区存储块是否已处理;
当未处理时,从所述复写通道列表的表尾开始遍历所述复写通道列表,选择一个分配计数大于零的存储通道,将所述存储通道的通道号写入所述冷区存储块的当前分配通道号字段中,并更新所述分配计数,将所述冷区存储块标记为已处理;
将所述冷区存储块加入所述存储通道对应的可用存储块队列中。
8.根据权利要求5所述的方法,其特征在于,所述根据平衡区分配策略对经过排序的所述平衡区列表中的存储块进行平衡区回收分配处理,包括:
从所述复写通道列表的表头获取一个分配计数不为零的存储通道;
从所述平衡区列表的表头开始遍历所述平衡区列表,依次获取数目等于所述存储通道的分配计数的平衡区存储块;
将所述存储通道的通道号写入获取的所述平衡区存储块的当前分配通道号中,并将所述平衡区存储块标记为已处理,将所述存储通道的分配计数置零;
将所述平衡区存储块加入所述存储通道对应的可用存储块队列中。
9.一种固态硬盘,包括控制单元及存储有若干计算机指令的非易失性存储单元,其特征在于,所述计算机指令被所述控制单元执行时,所述控制单元执行权利要求1-8中任意一项所述的存储管理方法。
10.一种可读存储介质,所述可读存储介质包括计算机程序,其特征在于:
所述计算机程序运行时控制所述可读存储介质所在的固态硬盘执行权利要求1-8中任意一项所述的存储管理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711380674.9A CN109947353B (zh) | 2017-12-20 | 2017-12-20 | 存储管理方法、固态硬盘及可读存储介质 |
PCT/CN2018/100884 WO2019119833A1 (zh) | 2017-12-20 | 2018-08-16 | 存储管理方法、装置、固态硬盘及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711380674.9A CN109947353B (zh) | 2017-12-20 | 2017-12-20 | 存储管理方法、固态硬盘及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109947353A true CN109947353A (zh) | 2019-06-28 |
CN109947353B CN109947353B (zh) | 2021-03-09 |
Family
ID=66992413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711380674.9A Active CN109947353B (zh) | 2017-12-20 | 2017-12-20 | 存储管理方法、固态硬盘及可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109947353B (zh) |
WO (1) | WO2019119833A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111651126A (zh) * | 2020-06-04 | 2020-09-11 | 重庆芯讯通无线科技有限公司 | 存储器的写操作方法、系统、电子设备和介质 |
CN111832087A (zh) * | 2020-06-28 | 2020-10-27 | 福建捷宇电脑科技有限公司 | 一种提高flash使用寿命的密钥管理方法和装置 |
CN112463048A (zh) * | 2020-11-26 | 2021-03-09 | 新华三技术有限公司成都分公司 | 一种compact处理速度的调整方法、装置、电子设备和介质 |
CN114546267A (zh) * | 2022-02-14 | 2022-05-27 | 深圳源创存储科技有限公司 | 一种基于大数据计算的固态硬盘及固态硬盘系统 |
CN115623151A (zh) * | 2022-12-20 | 2023-01-17 | 苏州万店掌网络科技有限公司 | 一种音视频存储方法及网络录像设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101441599A (zh) * | 2008-11-28 | 2009-05-27 | 成都市华为赛门铁克科技有限公司 | 一种固态硬盘的均衡方法和固态硬盘 |
CN101727396A (zh) * | 2008-10-10 | 2010-06-09 | 群联电子股份有限公司 | 用于非易失性存储器的存储器管理方法及其控制器 |
CN102081576A (zh) * | 2011-03-01 | 2011-06-01 | 华中科技大学 | 一种闪存的磨损平衡方法 |
CN102880556A (zh) * | 2012-09-12 | 2013-01-16 | 浙江大学 | 一种实现Nand Flash磨损均衡的方法及其系统 |
CN104461393A (zh) * | 2014-12-09 | 2015-03-25 | 华中科技大学 | 一种闪存存储器的混合映射方法 |
US20160139812A1 (en) * | 2014-11-14 | 2016-05-19 | Sk Hynix Memory Solutions Inc. | Hot-cold data separation method in flash translation layer |
CN106775496A (zh) * | 2013-10-23 | 2017-05-31 | 华为技术有限公司 | 一种存储数据处理方法及装置 |
CN107220185A (zh) * | 2017-05-23 | 2017-09-29 | 建荣半导体(深圳)有限公司 | 基于闪存的数据存储方法、装置以及闪存芯片 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102222046B (zh) * | 2011-06-09 | 2013-09-18 | 清华大学 | 一种磨损均衡方法及装置 |
-
2017
- 2017-12-20 CN CN201711380674.9A patent/CN109947353B/zh active Active
-
2018
- 2018-08-16 WO PCT/CN2018/100884 patent/WO2019119833A1/zh active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727396A (zh) * | 2008-10-10 | 2010-06-09 | 群联电子股份有限公司 | 用于非易失性存储器的存储器管理方法及其控制器 |
CN101441599A (zh) * | 2008-11-28 | 2009-05-27 | 成都市华为赛门铁克科技有限公司 | 一种固态硬盘的均衡方法和固态硬盘 |
CN102081576A (zh) * | 2011-03-01 | 2011-06-01 | 华中科技大学 | 一种闪存的磨损平衡方法 |
CN102880556A (zh) * | 2012-09-12 | 2013-01-16 | 浙江大学 | 一种实现Nand Flash磨损均衡的方法及其系统 |
CN106775496A (zh) * | 2013-10-23 | 2017-05-31 | 华为技术有限公司 | 一种存储数据处理方法及装置 |
US20160139812A1 (en) * | 2014-11-14 | 2016-05-19 | Sk Hynix Memory Solutions Inc. | Hot-cold data separation method in flash translation layer |
CN104461393A (zh) * | 2014-12-09 | 2015-03-25 | 华中科技大学 | 一种闪存存储器的混合映射方法 |
CN107220185A (zh) * | 2017-05-23 | 2017-09-29 | 建荣半导体(深圳)有限公司 | 基于闪存的数据存储方法、装置以及闪存芯片 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111651126A (zh) * | 2020-06-04 | 2020-09-11 | 重庆芯讯通无线科技有限公司 | 存储器的写操作方法、系统、电子设备和介质 |
CN111832087A (zh) * | 2020-06-28 | 2020-10-27 | 福建捷宇电脑科技有限公司 | 一种提高flash使用寿命的密钥管理方法和装置 |
CN111832087B (zh) * | 2020-06-28 | 2022-07-29 | 福建捷宇电脑科技有限公司 | 一种提高flash使用寿命的密钥管理方法和装置 |
CN112463048A (zh) * | 2020-11-26 | 2021-03-09 | 新华三技术有限公司成都分公司 | 一种compact处理速度的调整方法、装置、电子设备和介质 |
CN114546267A (zh) * | 2022-02-14 | 2022-05-27 | 深圳源创存储科技有限公司 | 一种基于大数据计算的固态硬盘及固态硬盘系统 |
CN114546267B (zh) * | 2022-02-14 | 2022-11-18 | 深圳源创存储科技有限公司 | 一种基于大数据计算的固态硬盘及固态硬盘系统 |
CN115623151A (zh) * | 2022-12-20 | 2023-01-17 | 苏州万店掌网络科技有限公司 | 一种音视频存储方法及网络录像设备 |
CN115623151B (zh) * | 2022-12-20 | 2023-03-03 | 苏州万店掌网络科技有限公司 | 一种音视频存储方法及网络录像设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2019119833A1 (zh) | 2019-06-27 |
CN109947353B (zh) | 2021-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109947353A (zh) | 存储管理方法、固态硬盘及可读存储介质 | |
US10430084B2 (en) | Multi-tiered memory with different metadata levels | |
TWI740110B (zh) | 在固態儲存驅動器陣列中的工作量適應超容量快取 | |
US9274941B1 (en) | Facilitating data migration between tiers | |
CN107943867B (zh) | 支持异构存储的高性能层次化存储系统 | |
US7702865B2 (en) | Storage system and data migration method | |
US8429346B1 (en) | Automated data relocation among storage tiers based on storage load | |
US9811288B1 (en) | Managing data placement based on flash drive wear level | |
CN104216665B (zh) | 多层单元固态硬盘的存储管理方法 | |
US8782324B1 (en) | Techniques for managing placement of extents based on a history of active extents | |
JP4749255B2 (ja) | 複数種類の記憶デバイスを備えたストレージシステムの制御装置 | |
CN102023813B (zh) | 在动态页重新分配存储系统中的应用和层配置管理 | |
CN106469029B (zh) | 数据分层存储处理方法、装置和存储设备 | |
US20140298116A1 (en) | Method and apparatus for an improved file repository | |
US20120317337A1 (en) | Managing data placement on flash-based storage by use | |
US20130061019A1 (en) | Storage control system with write amplification control mechanism and method of operation thereof | |
WO2019178845A1 (zh) | 一种存储介质垃圾回收方法、存储介质和程序产品 | |
CN107515728B (zh) | 发挥闪存设备内部并发特性的数据管理方法和装置 | |
JP2008015769A (ja) | ストレージシステム及び書き込み分散方法 | |
CN102135861A (zh) | 使用现行负载测量和分级在存储池中布局虚拟卷热点的方法 | |
KR20150105323A (ko) | 데이터 스토리지 방법 및 시스템 | |
CN101661473A (zh) | 固态存储器、计算机系统以及操作固态存储器的方法 | |
US9330009B1 (en) | Managing data storage | |
JP2010015446A (ja) | ストレージ装置及び電源の制御方法 | |
US11016889B1 (en) | Storage device with enhanced time to ready performance |
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 |