一种存储块处理方法、装置、设备及存储介质与流程

文档序号:23799402发布日期:2021-02-02 12:05阅读:79来源:国知局
一种存储块处理方法、装置、设备及存储介质与流程

[0001]
本申请涉及存储技术领域,特别是涉及一种存储块处理方法、装置、设备及存储介质。


背景技术:

[0002]
随着存储技术的快速发展,各类存储系统在各行业的应用逐渐增多。较为常见的是基于全闪磁盘阵列的存储系统。
[0003]
基于全闪磁盘阵列的存储系统由多个存储设备构成,每个存储设备通过存储块进行数据存储。对于一个存储块而言,如果该存储块中的数据需要更新,不会在该存储块中更新,而是会重新写入到其他存储块中,这样无效数据仍保留在该存储块上,从而产生大量的失效数据,也称为数据垃圾,需要对存储块进行回收。
[0004]
目前,多是由技术人员通过对存储块中数据的查看确定哪些存储块可以被回收等,如果判断不准确,容易导致存储块被重复回收等误操作,占用较多系统资源,影响存储系统存储性能。


技术实现要素:

[0005]
本申请的目的是提供一种存储块处理方法、装置、设备及存储介质,以防止存储块被重复回收等误操作,避免占用较多系统资源,提升存储系统存储性能。
[0006]
为解决上述技术问题,本申请提供如下技术方案:
[0007]
一种存储块处理方法,包括:
[0008]
在标记有可回收状态的存储块中确定待回收的第一存储块;
[0009]
如果所述第一存储块中存在有效数据,则将所述第一存储块中的有效数据全部迁移到标记有正在使用状态的存储块上;
[0010]
在迁移完成后,将所述第一存储块的状态更新为迁移完成状态;
[0011]
在确定所述第一存储块上的全部读i/o均完成之后,将所述第一存储块的状态更新为正在清除数据状态;
[0012]
对所述第一存储块中的数据进行清除操作;
[0013]
在清除操作完成后,将所述第一存储块的状态更新为空闲状态。
[0014]
在本申请的一种具体实施方式中,所述在标记有可回收状态的存储块中确定待回收的第一存储块,包括:
[0015]
针对标记有可回收状态的存储块中的每个存储块,根据该存储块的无效率,确定是否将该存储块确定为待回收的第一存储块。
[0016]
在本申请的一种具体实施方式中,所述根据该存储块的无效率,确定是否将该存储块确定为待回收的第一存储块,包括:
[0017]
如果该存储块的无效率满足系统回收条件,则确定将该存储块确定为待回收的第一存储块。
[0018]
在本申请的一种具体实施方式中,在确定将该存储块确定为待回收的第一存储块的情况下,还包括:
[0019]
将所述第一存储块的状态更新为正在回收状态。
[0020]
在本申请的一种具体实施方式中,还包括:
[0021]
在要对存储块进行分配的情况下,确定要分配的第二存储块的状态是否为空闲状态;
[0022]
如果是,则对所述第二存储块进行分配,以使所述第二存储块提供数据存储服务,并将所述第二存储块的状态更新为正在使用状态。
[0023]
在本申请的一种具体实施方式中,在所述将所述第二存储块的状态更新为正在使用状态之后,还包括:
[0024]
对所述第二存储块的使用率进行监测;
[0025]
在监测到所述第二存储块的使用率达到预设使用率阈值的情况下,将所述第二存储块的状态更新为使用完成状态。
[0026]
在本申请的一种具体实施方式中,在所述将所述第二存储块的状态更新为使用完成状态之后,还包括:
[0027]
确定所述第二存储块上的所有写i/o是否均完成返回;
[0028]
如果是,则将所述第二存储块的状态更新为可回收状态。
[0029]
在本申请的一种具体实施方式中,在所述将所述第一存储块的状态更新为空闲状态之后,还包括:
[0030]
将所述第一存储块在全局存储块位图中的比特位置为第一值;
[0031]
相应的,在所述将所述第二存储块的状态更新为正在使用状态之后,还包括:
[0032]
将所述第二存储块在所述全局存储块位图中的比特位置为第二值。
[0033]
一种存储块处理装置,包括:
[0034]
待回收存储块确定单元,用于在标记有可回收状态的存储块中确定待回收的第一存储块;
[0035]
有效数据迁移单元,用于在所述第一存储块中存在有效数据的情况下,将所述第一存储块中的有效数据全部迁移到标记有正在使用状态的存储块上;
[0036]
存储块状态控制单元,用于在迁移完成后,将所述第一存储块的状态更新为迁移完成状态;
[0037]
所述存储块状态控制单元,还用于在确定所述第一存储块上的全部读i/o均完成之后,将所述第一存储块的状态更新为正在清除数据状态;
[0038]
数据清除单元,用于对所述第一存储块中的数据进行清除操作;
[0039]
所述存储块状态控制单元,还用于在清除操作完成后,将所述第一存储块的状态更新为空闲状态。
[0040]
一种存储块处理设备,包括:
[0041]
存储器,用于存储计算机程序;
[0042]
处理器,用于执行所述计算机程序时实现上述任一项所述存储块处理方法的步骤。
[0043]
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述
计算机程序被处理器执行时实现上述任一项所述存储块处理方法的步骤。
[0044]
应用本申请实施例所提供的技术方案,在标记有可回收状态的存储块中确定待回收的第一存储块,对第一存储块中的有效数据进行迁移操作,在迁移完成后,将第一存储块的状态更新为迁移完成状态,在确定第一存储块上的全部读i/o均完成之后,将第一存储块的状态更新为正在清除状态,对第一存储块中的数据进行清除操作,在清除操作完成后,将第一存储块的状态更新为空闲状态。对存储块所处的每个状态均进行标记,可以通过存储块当前标记的状态,准确确定是否可以对存储块进行相应操作,可以防止存储块被重复回收等误操作,避免占用较多系统资源,提升存储系统存储性能。
附图说明
[0045]
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0046]
图1为本申请实施例中一种存储块处理方法的实施流程图;
[0047]
图2为本申请实施例中一种存储块状态变化示意图;
[0048]
图3为本申请实施例中一种存储块处理装置的结构示意图;
[0049]
图4为本申请实施例中一种存储块处理设备的结构示意图。
具体实施方式
[0050]
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0051]
参见图1所示,为本申请实施例所提供的一种存储块处理方法的实施流程图,该方法可以包括以下步骤:
[0052]
s110:在标记有可回收状态的存储块中确定待回收的第一存储块。
[0053]
在实际应用中,随着存储块的被使用,存储块中的无效数据会越来越多。这就涉及到对存储块的回收处理。可以预先设定回收处理触发条件,当达到该回收处理触发条件时,认为需要对存储块进行回收处理,触发对存储块的回收处理操作。回收处理触发条件可以根据实际情况进行设定和调整,如在接收到存储块回收指令时,认为达到回收处理触发条件,或者,在监测到可回收的存储块达到一定比例时,认为达到回收处理触发条件。
[0054]
在需要对存储块进行回收处理时,可以先确定哪些存储块标记有可回收状态。只有标记有可回收状态的存储块才能作为回收候选存储块。当通过一定手段判定一个存储块达到可以回收的条件,则可以将该存储块的状态标记为可回收状态。在标记有可回收状态的存储块中确定待回收的第一存储块。确定出的第一存储块可以是一个或多个。
[0055]
在本申请的一种具体实施方式中,该步骤可以包括以下步骤:
[0056]
针对标记有可回收状态的存储块中的每个存储块,根据该存储块的无效率,确定是否将该存储块确定为待回收的第一存储块。
[0057]
在实际应用中,标记有可回收状态的存储块可能有多个,针对标记有可回收状态的存储块中的每个存储块,可以确定该存储块的无效率。对于一个存储块而言,该存储块的无效率可以通过该存储块中无效数据与总数据的占比来确定,或者通过该存储块中无效数据与有效数据的比例来确定。
[0058]
根据该存储块的无效率,可以确定是否将该存储块确定为待回收的第一存储块。具体的,如果该存储块的无效率满足系统回收条件,则确定将该存储块确定为待回收的第一存储块。系统回收条件可以根据实际情况进行设定和调整。如在该存储块的无效率大于设定比例阈值时,认为满足系统回收条件,或者,在该存储块的无效率为当前最大的n个无效率中的一个时,认为满足系统回收条件。如果该存储块的无效率满足系统回收条件,则可以确定将该存储块确定为待回收的第一存储块。
[0059]
在本申请的一种具体实施方式中,在确定将该存储块确定为待回收的第一存储块的情况下,还可以将第一存储块的状态更新为正在回收状态,进入回收处理过程。
[0060]
本申请实施例确定出的第一存储块如果是多个,则对于每一个第一存储块均按照本申请方案进行回收处理。
[0061]
s120:如果第一存储块中存在有效数据,则将第一存储块中的有效数据全部迁移到标记有正在使用状态的存储块上。
[0062]
在标记有可回收状态的存储块中确定待回收的第一存储块后,可以对第一存储块中的数据进行识别,确定第一存储块中是否存在有效数据。
[0063]
如果第一存储块中不存在有效数据,则可以直接进行步骤s140的操作。
[0064]
如果第一存储块中存在有效数据,则可以将第一存储块中的有效数据全部迁移到标记有正在使用状态的存储块上。正在使用状态的存储块是已经分配出来供使用的存储块。在实际迁移过程中,可以优先将第一存储块中的有效数据迁移到标记有正在使用状态的剩余空间较大的存储块上。
[0065]
s130:在迁移完成后,将第一存储块的状态更新为迁移完成状态。
[0066]
在第一存储块中存在有效数据的情况下,将第一存储块中的有效数据全部迁移到标记有正在使用状态的存储块上,可以对迁移状态进行监测。在迁移完成后,可以将第一存储块的状态更新为迁移完成状态。
[0067]
s140:在确定第一存储块上的全部读i/o均完成之后,将第一存储块的状态更新为正在清除数据状态。
[0068]
第一存储块在被分配出来供存储数据使用到回收完成这个阶段,都可以接收读请求,存在读i/o(input/output,输入/输出)。在将第一存储块中的有效数据全部迁移到标记有正在使用状态的存储块上迁移完成后,可以进一步确定第一存储块上的全部读i/o是否均完成,如果均完成,则可以将第一存储块的状态更新为正在清除数据状态。
[0069]
s150:对第一存储块中的数据进行清除操作。
[0070]
在将第一存储块的状态更新为正在清除数据状态后,可以认为第一存储块中的数据均为无效数据,在这种情况下,可以对第一存储块中的数据进行清除操作。
[0071]
s160:在清除操作完成后,将第一存储块的状态更新为空闲状态。
[0072]
在对第一存储块中的数据进行清除操作完成后,可以将第一存储块的状态更新为空闲状态。当第一存储块的状态为空闲状态时,可以对第一存储块再次进行分配等处理。
[0073]
应用本申请实施例所提供的方法,在标记有可回收状态的存储块中确定待回收的第一存储块,对第一存储块中的有效数据进行迁移操作,在迁移完成后,将第一存储块的状态更新为迁移完成状态,在确定第一存储块上的全部读i/o均完成之后,将第一存储块的状态更新为正在清除状态,对第一存储块中的数据进行清除操作,在清除操作完成后,将第一存储块的状态更新为空闲状态。对存储块所处的每个状态均进行标记,可以通过存储块当前标记的状态,准确确定是否可以对存储块进行相应操作,可以防止存储块被重复回收等误操作,避免占用较多系统资源,提升存储系统存储性能。
[0074]
在本申请的一个实施例中,该方法还可以包括以下步骤:
[0075]
步骤一:在要对存储块进行分配的情况下,确定要分配的第二存储块的状态是否为空闲状态;如果是,则执行步骤二;
[0076]
步骤二:对第二存储块进行分配,以使第二存储块提供数据存储服务,并将第二存储块的状态更新为正在使用状态。
[0077]
为便于描述,将上述两个步骤结合起来进行说明。
[0078]
在实际应用中,为满足数据存储需求,需要对存储块进行分配,这里的分配可以是初次分配还可以是回收后再次分配。分配过程可以包括预分配过程和实际分配过程。预分配即为在还没有数据写入请求时,预先分配一些存储块待用,在有数据写入请求时,再从预分配出来的存储块中分配出存储块供写入数据。在分配过程包括预分配过程和实际分配过程的情况下,如果要对存储块进行分配,则表明是要对存储块进行预分配。在分配过程只包括实际分配过程的情况下,如果要对存储块进行分配,则表明是要对存储块进行实际分配。
[0079]
在要对存储块进行分配的情况下,可以先确定要分配的第二存储块的状态是否为空闲状态。只有处于空闲状态的存储块才能被分配出来。第二存储块可以为当前存储系统中任意一个存储块。
[0080]
如果确定要分配的第二存储块的状态为空闲状态,则可以对第二存储块进行分配,以使第二存储块提供数据存储服务,在将第二存储块实际分配出来后,可以向第二存储块中写入数据。
[0081]
在对第二存储块进行分配后,可以将第二存储块的状态更新为正在使用状态。当再次有分配需求,要对存储块进行分配时,因为第二存储块的状态为正在使用状态,非空闲状态,所以不会分配第二存储块,避免了重复分配问题的产生。
[0082]
在本申请的一个实施例中,在将第二存储块的状态更新为正在使用状态之后,还可以对第二存储块的使用率进行监测,在监测到第二存储块的使用率达到预设使用率阈值的情况下,将第二存储块的状态更新为使用完成状态。
[0083]
在本申请实施例中,在对第二存储块进行分配,并将第二存储块的状态更新为正在使用状态之后,可以对第二存储块的使用率进行监测。一个存储块的使用率可以通过该存储块中已有数据占用的容量与该存储块的总容量的比值进行表征。
[0084]
可以预先设定一个使用率阈值,该使用率阈值可以根据实际情况进行设定和调整,如设定为80%。
[0085]
在监测到第二存储块的使用率达到预设使用率阈值的情况下,可以将第二存储块的状态更新为使用完成状态,第二存储块中可以不再进行数据写入。
[0086]
在本申请的一个实施例中,在将第二存储块的状态更新为使用完成状态之后,还
可以确定第二存储块上的所有写i/o是否均完成返回,如果是,则将第二存储块的状态更新为可回收状态。
[0087]
在本申请实施例中,在将第二存储块的状态更新为使用完成状态之后,可以进一步确定第二存储块上的所有写i/o是否均完成返回,如果是,则表明当前第二存储块上没有写i/o,所有写i/o均已完成,且已经返回写成功信息。在这种情况下,可以将第二存储块的状态更新为可回收状态。当要进行存储块的回收处理时,第二存储块即可作为标记有可回收状态的存储块中的一个,在标记有可回收状态的存储块中确定待回收的第一存储块。
[0088]
在本申请的一个实施例中,在将第一存储块的状态更新为空闲状态之后,该方法还包括以下步骤:
[0089]
将第一存储块在全局存储块位图中的比特位置为第一值;
[0090]
相应的,在将第二存储块的状态更新为正在使用状态之后,该方法还可以包括以下步骤:
[0091]
将第二存储块在全局存储块位图中的比特位置为第二值。
[0092]
在本申请实施例中,可以通过全局存储块位图对各个存储块的空闲状态或者正在使用状态进行标识。在对第一存储块进行回收处理时,在将第一存储块的状态更新为空闲状态之后,可以将第一存储块在全局存储块位图中的比特位置为第一值,如0,标识第一存储块的空闲状态。在对第二存储块进行分配处理时,在讲第二存储块的状态更新为正在使用状态之后,可以将第二存储块在全局存储块位图中的比特位置为第二值,如1,以标识第二存储块的正在使用状态。
[0093]
为便于理解,以图2所示存储块状态变化示意图为例,对本申请实施例技术方案进行说明。
[0094]
在全闪磁盘阵列的实现中,系统对存储池中的所有的存储块进行统一管理,存储块用block来表示,总容量可以为128mbyte。由lsa(log structure architecture,日志结构架构)模块对block进行预分配和实际分配。lsa预分配的block用来存储用户的写数据,用户开始写数据并在上层缓存模块进行了i/o合并之后会下刷到block中,此时可以通过lsa模块将block的状态标记为using状态,即正在使用状态。
[0095]
block状态在lsa模块中以位图(bitmap)方式记录,初始化之后的空闲状态为0,预分配之后设置为1。
[0096]
block上的写i/o完成之后,由se(space efficience,精简池卷)模块通知lsa模块,lsa模块记录block的使用容量,通过使用容量可以得到使用率。
[0097]
block的使用率达到预设使用率阈值后,lsa模块通知gc(garbage collection,垃圾回收)模块,gc模块记录block的状态为used状态,即使用完成状态。
[0098]
在该block上的所有写i/o都完成返回之后,gc模块更新block的状态为gc_candidate状态,即可回收状态,表明可以对该block进行迁移回收处理。
[0099]
当block的无效率满足系统当前的回收条件时,会被系统选中作为当前回收的block,此时gc模块将block状态更新为gcing状态,即正在回收状态,该状态表明当前block正在被回收,以避免被重复选中。
[0100]
当该block的上有效数据全部迁移完成之后,gc模块将该block的状态更新为migrated状态,即迁移完成状态,表明该block上的有效数据全部迁移完成,当前block可以
被回收。
[0101]
当前block可能有主机读i/o还没完成,主机在该block上的全部读i/o都完成之后,gc模块会更新该block的状态为trimming状态,即正在清除数据状态,对该block进行trim操作,也就是对该block进行数据清除。
[0102]
trim完成之后,block可以作为新的block重新分配,gc模块更新block的状态为idle状态,即空闲状态,并且通知lsa模块将全局存储块位图中相应的bit位置0。
[0103]
至此,block完成整个生命周期的状态转换过程。
[0104]
本申请实施例在实现全闪磁盘阵列中,对存储块的整个生命周期的各个阶段进行状态转换标记,可以有效防止被重复分配或者重复回收等误操作。
[0105]
相应于上面的方法实施例,本申请实施例还提供了一种存储块处理装置,下文描述的存储块处理装置与上文描述的存储块处理方法可相互对应参照。
[0106]
参见图3所示,该装置可以包括以下单元:
[0107]
待回收存储块确定单元310,用于在标记有可回收状态的存储块中确定待回收的第一存储块;
[0108]
有效数据迁移单元320,用于在第一存储块中存在有效数据的情况下,将第一存储块中的有效数据全部迁移到标记有正在使用状态的存储块上;
[0109]
存储块状态控制单元330,用于在迁移完成后,将第一存储块的状态更新为迁移完成状态;
[0110]
存储块状态控制单元330,还用于在确定第一存储块上的全部读i/o均完成之后,将第一存储块的状态更新为正在清除数据状态;
[0111]
数据清除单元340,用于对第一存储块中的数据进行清除操作;
[0112]
存储块状态控制单元330,还用于在清除操作完成后,将第一存储块的状态更新为空闲状态。
[0113]
应用本申请实施例所提供的装置,在标记有可回收状态的存储块中确定待回收的第一存储块,对第一存储块中的有效数据进行迁移操作,在迁移完成后,将第一存储块的状态更新为迁移完成状态,在确定第一存储块上的全部读i/o均完成之后,将第一存储块的状态更新为正在清除状态,对第一存储块中的数据进行清除操作,在清除操作完成后,将第一存储块的状态更新为空闲状态。对存储块所处的每个状态均进行标记,可以通过存储块当前标记的状态,准确确定是否可以对存储块进行相应操作,可以防止存储块被重复回收等误操作,避免占用较多系统资源,提升存储系统存储性能。
[0114]
在本申请的一种具体实施方式中,待回收存储块确定单元310,用于:
[0115]
针对标记有可回收状态的存储块中的每个存储块,根据该存储块的无效率,确定是否将该存储块确定为待回收的第一存储块。
[0116]
在本申请的一种具体实施方式中,待回收存储块确定单元310,用于:
[0117]
如果该存储块的无效率满足系统回收条件,则确定将该存储块确定为待回收的第一存储块。
[0118]
在本申请的一种具体实施方式中,存储块状态控制单元330,还用于:
[0119]
在确定将该存储块确定为待回收的第一存储块的情况下,将第一存储块的状态更新为正在回收状态。
[0120]
在本申请的一种具体实施方式中,还包括:
[0121]
存储块分配单元,用于在要对存储块进行分配的情况下,确定要分配的第二存储块的状态是否为空闲状态;如果是,则对第二存储块进行分配,以使第二存储块提供数据存储服务;
[0122]
存储块状态控制单元330,还用于将第二存储块的状态更新为正在使用状态。
[0123]
在本申请的一种具体实施方式中,还包括:
[0124]
使用率监测单元,用于在将第二存储块的状态更新为正在使用状态之后,对第二存储块的使用率进行监测;
[0125]
存储块状态控制单元330,还用于在监测到第二存储块的使用率达到预设使用率阈值的情况下,将第二存储块的状态更新为使用完成状态。
[0126]
在本申请的一种具体实施方式中,存储块状态控制单元330,还用于:
[0127]
在将第二存储块的状态更新为使用完成状态之后,确定第二存储块上的所有写i/o是否均完成返回;
[0128]
如果是,则将第二存储块的状态更新为可回收状态。
[0129]
在本申请的一种具体实施方式中,还包括位图更新单元,用于:
[0130]
在将第一存储块的状态更新为空闲状态之后,将第一存储块在全局存储块位图中的比特位置为第一值;
[0131]
相应的,在将第二存储块的状态更新为正在使用状态之后,将第二存储块在全局存储块位图中的比特位置为第二值。
[0132]
相应于上面的方法实施例,本申请实施例还提供了一种存储块处理设备,包括:
[0133]
存储器,用于存储计算机程序;
[0134]
处理器,用于执行计算机程序时实现上述存储块处理方法的步骤。
[0135]
如图4所示,为存储块处理设备的组成结构示意图,存储块处理设备可以包括:处理器10、存储器11、通信接口12和通信总线13。处理器10、存储器11、通信接口12均通过通信总线13完成相互间的通信。
[0136]
在本申请实施例中,处理器10可以为中央处理器(central processing unit,cpu)、特定应用集成电路、数字信号处理器、现场可编程门阵列或者其他可编程逻辑器件等。
[0137]
处理器10可以调用存储器11中存储的程序,具体的,处理器10可以执行存储块处理方法的实施例中的操作。
[0138]
存储器11中用于存放一个或者一个以上程序,程序可以包括程序代码,程序代码包括计算机操作指令,在本申请实施例中,存储器11中至少存储有用于实现以下功能的程序:
[0139]
在标记有可回收状态的存储块中确定待回收的第一存储块;
[0140]
如果第一存储块中存在有效数据,则将第一存储块中的有效数据全部迁移到标记有正在使用状态的存储块上;
[0141]
在迁移完成后,将第一存储块的状态更新为迁移完成状态;
[0142]
在确定第一存储块上的全部读i/o均完成之后,将第一存储块的状态更新为正在清除数据状态;
[0143]
对第一存储块中的数据进行清除操作;
[0144]
在清除操作完成后,将第一存储块的状态更新为空闲状态。
[0145]
在一种可能的实现方式中,存储器11可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及至少一个功能(比如状态标记功能、数据清除功能)所需的应用程序等;存储数据区可存储使用过程中所创建的数据,如状态数据、监测数据等。
[0146]
此外,存储器11可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件或其他易失性固态存储器件。
[0147]
通信接口13可以为通信模块的接口,用于与其他设备或者系统连接。
[0148]
当然,需要说明的是,图4所示的结构并不构成对本申请实施例中存储块处理设备的限定,在实际应用中存储块处理设备可以包括比图4所示的更多或更少的部件,或者组合某些部件。
[0149]
相应于上面的方法实施例,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述存储块处理方法的步骤。
[0150]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
[0151]
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0152]
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
[0153]
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1