CN104216836A - 一种存储系统的并行读写方法和装置 - Google Patents
一种存储系统的并行读写方法和装置 Download PDFInfo
- Publication number
- CN104216836A CN104216836A CN201410431275.0A CN201410431275A CN104216836A CN 104216836 A CN104216836 A CN 104216836A CN 201410431275 A CN201410431275 A CN 201410431275A CN 104216836 A CN104216836 A CN 104216836A
- Authority
- CN
- China
- Prior art keywords
- read
- task
- write
- reading
- storage system
- 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
Abstract
本发明实施例公开了一种存储系统的并行读写方法,包括:获取存储系统的存储访问接口的数量;根据所述存储访问接口的数量设置读写任务并行度;生成与所述读写任务并行度对应数量的并行读写任务,并对所述存储系统执行所述读写任务。相应地,本发明实施例还公开了一种存储系统的并行读写装置。采用本发明实施例,可以避免因CPU开启过多的任务而造成竞争和排队,从而提高CPU的存储能力,并且,提高存储系统的并行利用率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种存储系统的并行读写方法和装置。
背景技术
条带化技术就是将一块连续的数据分成很多小数据块,并将这些划分后的数据块分别存储到不同磁盘上。如图1出示的SSD(固态硬盘)内部结构示意图,SSD内部包含多个存储域(即domian),每个存储域中包含多个存储块(即chunk),利用条带化技术,可以将第一个存储块chunk#0存储于domian#0中,将第二个存储块chunk#1存储于domian#1中,以此类推。
当CPU(Central Processing Unit,中央处理器)需要执行读写任务时,CPU可以根据预先设置的并行度开启等量的读写任务,再通过存储访问接口对存储系统执行该读写任务,CPU开启的读写任务的数量会直接影响CPU的处理能力。因此,如何设置CPU的并行度是一个关键问题。
目前,主要是根据CPU的核数来设置CPU的并行度,但是,如果CPU的并行度大于存储系统的并行能力,则会造成竞争和排队,例如,CPU为八核,存储访问接口的数量为5,CPU同时执行的8个任务在通过存储访问接口时,存在竞争和排队,降低了CPU的存储能力;如果CPU的并行度小于存储系统的并行能力,则不能充分利用存储系统的并行能力。
发明内容
本发明实施例提供了一种存储系统的并行读写方法和装置,可以提高存储系统的并行利用率。
本发明实施例第一方面提供了一种存储系统的并行读写方法,包括:
获取存储系统的存储访问接口的数量;
根据所述存储访问接口的数量设置读写任务并行度;
生成与所述读写任务并行度对应数量的并行读写任务,并对所述存储系统执行所述读写任务。
在第一方面的第一种可能的实现方式中,所述根据所述存储访问接口的数量设置读写任务并行度之前,还包括:
获取所述存储系统的存储域的数量,所述存储域为共享访问通道的存储单元;
所述根据所述存储访问接口的数量设置读写任务并行度包括:
比较所述存储域的数量与所述存储访问接口的数量;
如果,所述存储域的数量小于所述存储访问接口的数量,则将所述存储域的数量设置为所述读写任务并行度;
如果,所述存储域的数量大于所述存储访问接口的数量,则将所述存储访问接口的数量设置为所述读写任务并行度。
结合第一方面的第一种可能实现方式,在第二种可能的实现方式中,所述存储域包括多个存储块,所述获取存储系统的存储域的数量包括:
获取所述存储系统的存储块的存储容量;
同步重复执行第一读写任务和第二读写任务,所述第一读写任务和第二读写任务起始的起始地址处于同一存储块中,其中,所述第一读写任务每次执行的起始地址偏移量为0,所述第二读写任务每次执行的起始地址偏移量与所述存储块的存储容量相等,当确定执行第二读写任务的起始地址再次与执行第一读写任务的起始地址处于同一存储域中时,则根据所述第二读写任务的执行次数确定所述存储系统的存储域的数量。
结合第一方面的第二种可能实现方式,在第三种可能的实现方式中,所述方法还包括:
记录每次执行第一读写任务和第二读写任务时,所述存储系统的存储访问接口的第一响应时长;
所述确定执行第二读写任务的起始地址与执行第一读写任务的起始地址处于同一存储域中包括:
比较所述记录的第一响应时长,当记录中出现相邻的第一响应时长的时间差值大于预设阈值时,则判定执行第二读写任务的起始地址与执行第一读写任务的起始地址处于同一存储域中。
结合第一方面的第二种或第三种中任一种可能实现方式,在第四种可能的实现方式中,所述获取所述存储系统的存储块的存储容量包括:
重复执行固定读写数据量的第三读写任务,且所述第三读写任务每次执行的起始地址偏移量为预设的固定偏移量,并记录每次执行第三读写任务时所述存储系统的存储访问接口的第二响应时长,其中,所述读写数据量大于所述固定偏移量;
比较所述记录的第二响应时长,根据两次相邻最短响应时长之间所述第三读写任务的执行次数以及所述固定偏移量确定所述存储系统的存储容量。
本发明实施例第二方面提供了一种存储系统的并行读写装置,包括:
存储访问接口获取模块,用于获取存储系统的存储访问接口的数量;
并行度设置模块,用于根据所述存储访问接口的数量设置读写任务并行度;
执行模块,用于生成与所述读写任务并行度对应数量的并行读写任务,并对所述存储系统执行所述读写任务。
在第二方面的第一种可能的实现方式中,所述装置还包括:
存储域获取模块,用于获取所述存储系统的存储域的数量,所述存储域为共享访问通道的存储单元;
所述并行度设置模块具体用于:
比较所述存储域的数量与所述存储访问接口的数量;
如果,所述存储域的数量小于所述存储访问接口的数量,则将所述存储域的数量设置为所述读写任务并行度;
如果,所述存储域的数量大于所述存储访问接口的数量,则将所述存储访问接口的数量设置为所述读写任务并行度。
结合第二方面的第一种可能实现方式,在第二种可能的实现方式中,所述存储域包括多个存储块,所述存储域获取模块包括:
存储块容量获取单元,用于获取所述存储系统的存储块的存储容量;
存储域获取单元,用于同步重复执行第一读写任务和第二读写任务,所述第一读写任务和第二读写任务起始的起始地址处于同一存储块中,其中,所述第一读写任务每次执行的起始地址偏移量为0,所述第二读写任务每次执行的起始地址偏移量与所述存储块的存储容量相等,当确定执行第二读写任务的起始地址再次与执行第一读写任务的起始地址处于同一存储域中时,则根据所述第二读写任务的执行次数确定所述存储系统的存储域的数量。
结合第二方面的第二种可能实现方式,在第三种可能的实现方式中,所述存储域获取模块还包括:
记录单元,用于记录每次执行第一读写任务和第二读写任务时,所述存储系统的存储访问接口的第一响应时长;
所述存储域获取单元确定执行第二读写任务的起始地址与执行第一读写任务的起始地址处于同一存储域中具体包括:
比较所述记录的第一响应时长,当记录中出现相邻的第一响应时长的时间差值大于预设阈值时,则判定执行第二读写任务的起始地址与执行第一读写任务的起始地址处于同一存储域中。
结合第二方面的第二种或第三种中任一种可能实现方式,在第四种可能的实现方式中,所述存储块容量获取单元具体用于:
重复执行固定读写数据量的第三读写任务,且所述第三读写任务每次执行的起始地址偏移量为预设的固定偏移量,并记录每次执行第三读写任务时所述存储系统的存储访问接口的第二响应时长,其中,所述读写数据量大于所述固定偏移量;
比较所述记录的第二响应时长,根据两次相邻最短响应时长之间所述第三读写任务的执行次数以及所述固定偏移量确定所述存储系统的存储容量。
实施本发明实施例,具有以下有益效果:本发明实施例可以获取存储系统的存储访问接口的数量,根据所述存储访问接口的数量设置读写任务并行度,则根据所述并行度开启的等量任务与存储访问接口的数量相等,从而提高了存储系统的并行利用率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种固态硬盘的结构示意图;
图2是本发明实施例提供的一种存储系统的并行读写方法的流程示意图;
图3是本发明实施例提供的另一种存储系统的并行读写方法的流程示意图;
图4是本发明实施例提供的一种偏移量与响应时长的关系的曲线图;
图5是本发明实施例提供的一种存储系统的并行读写装置的结构示意图;
图6是本发明实施例提供的另一种存储系统的并行读写装置的结构示意图;
图7是本发明实施例提供的一种存储域获取模块的结构示意图;
图8是本发明实施例提供的另一种存储系统的并行读写装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图2,图2是本发明实施例提供的一种存储系统的并行读写方法的流程示意图。本发明实施例提供的存储系统的并行读写方法可以实现在个人电脑、PAD、手机等包含存储系统的终端设备中。如图2所示本实施例中的存储系统的并行读写流程可以包括:
步骤S210,获取存储系统的存储访问接口的数量。
CPU可以通过所述存储访问接口与所述存储系统中的存储器连接以及进行数据交换。当终端系统初始化时,终端可以对CPU的并行度进行设置,从而获取存储系统的存储访问接口的数量。
具体地,终端可以检测存储系统的存储访问接口,从而获取该存储系统中存储访问接口的数量。
步骤S220,根据所述存储访问接口的数量设置读写任务并行度。
所述并行度是指CPU的指令并行执行的最大条数,其中在指令流水中,同时执行多条指令称为指令并行。
当终端获取到存储系统的存储访问接口的数量时,终端可以根据所述存储访问接口的数量设置CPU读写任务的并行度,也就是说,终端可以设置CPU的并行度等于存储访问接口的数量,例如,终端获取得到的存储系统的存储访问接口的数量为4,终端则可以设置CPU的并行度为4,避免了因开启过多的任务而造成竞争和排队,从而提高了CPU的存储能力,并且终端开启的并行读写任务数量与存储访问接口的数量相当,提高了存储系统的并行利用率。
进一步地,终端还可以获取所述存储系统的存储域的数量,所述存储域为共享访问通道的存储单元,再根据所述存储域的数量与所述存储访问接口的数量设置所述CPU的并行度。
具体实现中,终端在系统初始化时,终端还可以获取所述存储系统的存储域的数量,然后,比较所述存储域的数量和所述存储访问接口的数量;
如果,所述存储域的数量小于所述存储访问接口的数量,则将所述存储域的数量设置为所述读写任务并行度,例如,所述存储域的数量为4,所述存储访问接口的数量为5,终端则设置所述CPU的并行度为4;
如果,所述存储域的数量大于所述存储访问接口的数量,则将所述存储访问接口的数量设置为所述读写任务并行度,例如,所述存储域的数量为6,所述存储访问接口的数量为5,终端则设置所述CPU的并行度为5。
其中,终端可以获取所述存储系统的存储块的存储容量,再同步重复执行第一读写任务和第二读写任务,所述第一读写任务和第二读写任务起始的起始地址处于同一存储块中,其中,所述第一读写任务每次执行的起始地址偏移量为0,所述第二读写任务每次执行的起始地址偏移量与所述存储块的存储容量相等,当确定执行第二读写任务的起始地址再次与执行第一读写任务的起始地址处于同一存储域中时,则根据所述第二读写任务的执行次数确定所述存储系统的存储域的数量。
步骤S230,生成与所述读写任务并行度对应数量的并行读写任务,并对所述存储系统执行所述读写任务。
当终端设置了CPU的并行度之后,每当CPU需要对存储系统执行读写任务时,终端可以生成与所述读写任务并行度对应数量的并行读写任务,并对所述存储系统执行所述读写任务。
在图2所示的实施例中,终端可以获取存储系统的存储访问接口的数量,根据该存储访问接口的数量设置CPU读写任务并行度,终端可以根据该并行度开启与存储访问接口数量相同的任务,避免了因开启过多的任务而造成竞争和排队,从而提高了CPU的存储能力以及存储系统的并行利用率。
请参阅图3,图3是本发明实施例提供的另一种存储系统的并行读写方法的流程示意图。本发明实施例提供的存储系统的并行读写方法可以实现在个人电脑、PAD、手机等包含存储系统的终端设备中。如图3所示本实施例中的存储系统的并行读写流程可以包括:
步骤S310,获取存储系统的存储访问接口的数量。
CPU可以通过所述存储访问接口与所述存储系统中的存储器连接以及进行数据交换。当终端系统初始化时,终端可以对CPU的并行度进行设置,从而获取存储系统的存储访问接口的数量。
具体地,终端可以检测存储系统的存储访问接口,从而获取该存储系统中存储访问接口的数量。
步骤S320,获取所述存储系统的存储块的存储容量。
一个存储域中可以包含多个存储块,如图2所示,所述存储块用于存储固定容量的数据。
作为一种可选的实施方式,若存储系统存储数据的分布策略为条带化,终端可以重复执行固定读写数据量的第三读写任务,且所述第三读写任务每次执行的起始地址偏移量为预设的固定偏移量,并记录每次执行第三读写任务时所述存储系统的存储访问接口的第二响应时长,其中,所述读写数据量大于所述固定偏移量,再比较所述记录的第二响应时长,根据两次相邻最短响应时长之间所述第三读写任务的执行次数以及所述固定偏移量确定所述存储系统的存储容量。
具体实现中,终端可以从预设起始地址,如第一起始地址读写固定读写数据量的数据,并记录存储系统的存储访问接口响应当次读写任务的响应时长(这里,将执行第三读写任务的响应时长记录为第二响应时长),然后以固定偏移量偏移所述第一起始地址,即在所述第一起始地址的基础上加上所述固定偏移量获得第二起始地址,再从所述第二起始地址读写固定读写数据量的数据,同样并记录存储访问接口响应当次读写任务的第二响应时长,然后再以固定偏移量偏移所述第二起始地址,以此类推;
当终端读写的数据在两个存储块中时,终端可以并行读写,并且,当终端读写的数据均分在两个存储块中时,存储访问接口响应当次读写任务的第二响应时长相对其它情况而言最短,终端比较执行第三读写任务所记录的第二响应时长,根据两次相邻最短响应时长之间第三读写任务的执行次数以及所述固定偏移量确定所述存储系统的存储容量。
其中,终端可以将两次相邻最短响应时长之间(不包括两次最短响应时长)第三读写任务的执行次数加一的结果再乘以固定偏移量作为所述存储块的存储容量。
假设,终端每次读写的固定读写数据量为4K,固定偏移量为512字节,第一起始地址为0000,记录存储访问接口每次响应读写任务的第二响应时长,以固定偏移量为横坐标,以存储访问接口的响应时长为纵坐标作图,可以获得如图4所示的坐标图,如图4所示,两个波谷之间,终端执行的读写任务的次数为9,因此,存储块的存储容量为:(9+1)*512字节=5K。
需要说明的是,在本发明实施实例中,终端先执行获取存储系统的存储访问接口的数量的步骤,再执行获取所述存储系统的存储块的存储容量的步骤,在其他可选实施例中,终端可先执行获取所述存储系统的存储块的存储容量的步骤,再执行获取存储系统的存储访问接口的数量的步骤,或者,终端同时执行获取存储系统的存储访问接口的数量的步骤以及获取所述存储系统的存储块的存储容量的步骤,本发明不做限定。
步骤S330,同步重复执行第一读写任务和第二读写任务,所述第一读写任务和第二读写任务起始的起始地址处于同一存储块中,其中,所述第一读写任务每次执行的起始地址偏移量为0,所述第二读写任务每次执行的起始地址偏移量与所述存储块的存储容量相等。
具体实现中,当终端获取到存储系统的存储块的存储容量时,终端可以同步重复执行第一读写任务以及第二读写任务,所述第一读写任务和第二读写任务的起始地址处于同一存储块中,其中,所述第一读写任务每次执行的起始地址偏移量为0,所述第二读写任务每次执行的起始地址偏移量与所述存储块的存储容量相等,当第一读写任务与第二读写任务同时读写同一存储域的存储块的数据时,终端执行读写任务存在先后顺序。
假设,终端先执行第一读写任务再执行第二读写任务,当终端获取到所述存储系统的存储块的存储容量时,终端先执行第一读写任务读取预设存储块的数据,再执行第二读写任务同样读写该预设存储块的数据,当终端执行完第一读写任务以及第二读写任务时,一方面,终端继续读写该预设存储块的数据,另一方面,终端以存储块的存储容量作为起始地址偏移量,偏移起始地址,读写下一存储域的存储块的数据,以此类推。
例如,存储系统的内部结构如图1所示,当终端获取到所述存储系统的存储块的存储容量时,终端执行第一读写任务,读写存储块chunk#0的数据,再执行第二读写任务,读写存储块chunk#0的数据;然后,终端继续执行第一读写任务,读写存储块chunk#0的数据,同时,终端继续执行第二读写任务,读写存储块chunk#1的数据;然后,终端继续执行第一读写任务,读写存储块chunk#0的数据,同时,终端继续执行第二读写任务,读写存储块chunk#2的数据,以此类推。
步骤S340,当确定执行第二读写任务的起始地址再次与执行第一读写任务的起始地址处于同一存储域中时,则根据所述第二读写任务的执行次数确定所述存储系统的存储域的数量。
作为一种可选的实施方式,终端可以记录每次执行第一读写任务和第二读写任务时,所述存储系统的存储访问接口的第一响应时长,也就是说,终端可以将每次执行第一读写任务和第二读写任务所用时间记录为第一响应时长,然后,比较执行第一读写任务和第二读写任务所记录的第一响应时长,当记录中出现相邻的第一响应时长的时间差值大于预设阈值时,终端则判定执行第二读写任务的起始地址与执行第一读写任务的起始地址处于同一存储域中,此时,终端可以结束第一读写任务和第二读写任务,并根据所述第二读写任务的执行次数确定所述存储系统的存储域的数量。
具体实现中,终端可以每记录一次第一响应时长,则将该第一响应时长与上一次记录的第一响应时长进行比较,假设,该第一响应时长减去上一次记录的第一响应时长的时间差值大于预设阈值,终端则判定执行第二读写任务的起始地址与执行第一读写任务的起始地址处于同一存储域中。
例如,存储系统的内部结构如图1所示,终端执行第一读写任务,读写存储块chunk#0的数据,再执行第二读写任务,读写存储块chunk#0的数据,终端记录的存储访问接口的第一响应时长为t1;然后,终端继续执行第一读写任务,读写存储块chunk#0的数据,同时,终端继续执行第二读写任务,读写存储块chunk#1的数据,终端记录的存储访问接口的第一响应时长为t2,如果,第一读写任务与第二读写任务在同一存储域中时,终端在执行读写任务时存在竞争;如果,第一读写任务与第二读写任务不在同一存储域中时,终端可以同时执行第一读写任务和第二读写任务,因此,t1>t2,以此类推,只有当第二读写任务读写chunk#20的数据时,第一响应时长减去上一次记录的第一响应时长的时间差值才会大于预设阈值,终端则判定执行第二读写任务的起始地址与执行第一读写任务的起始地址处于同一存储域中,此时,终端可以将执行第二读写任务的执行次数减一作为所述存储系统的存储域的数量。
步骤S350,判断所述存储域的数量是否大于所述存储访问接口的数量。
具体实现中,当终端获取到存储域的数量以及存储访问接口的数量时,终端可以判断所述存储域的数量是否大于所述存储访问接口的数量,如果所述存储域的数量是大于所述存储访问接口的数量,则执行步骤S360;如果所述存储域的数量小于或等于所述存储访问接口的数量,则执行步骤S370。
其中,如果所述存储域的数量等于所述存储访问接口的数量,终端也可以执行步骤S360。
步骤S360,若是,则将所述存储访问接口的数量设置为所述读写任务并行度。
具体地,如果,所述存储域的数量大于所述存储访问接口的数量,则将所述存储访问接口的数量设置为所述读写任务并行度,例如,所述存储域的数量为6,所述存储访问接口的数量为5,终端则设置所述CPU的并行度为5。
步骤S370,若否,则将所述存储域的数量设置为所述读写任务并行度。
具体地,如果,所述存储域的数量小于所述存储访问接口的数量,则将所述存储域的数量设置为所述读写任务并行度,例如,所述存储域的数量为4,所述存储访问接口的数量为5,终端则设置所述CPU的并行度为4;
步骤S380,生成与所述读写任务并行度对应数量的并行读写任务,并对所述存储系统执行所述读写任务。
当终端设置了CPU的并行度之后,每当CPU需要对存储系统执行读写任务时,终端可以生成与所述读写任务并行度对应数量的并行读写任务,并对所述存储系统执行所述读写任务。
在图3所示的实施例中,终端可以获取存储访问接口以及存储域的数量,比较存储域的数量与存储访问接口的数量,如果存储域的数量小于存储访问接口的数量,则将存储域的数量设置为读写任务并行度,如果存储域的数量大于存储访问接口的数量,则将存储访问接口的数量设置为读写任务并行度的数量,与上一实施例相比,终端可以进一步结合存储域的数量设置CPU读写任务并行度,进一步避免了竞争和排队,从而进一步提高了CPU的存储能力。
请参阅图5,图5是本发明实施例提供的一种存储系统的并行读写装置的结构示意图。本发明实施例提供的存储系统的并行读写装置可以实现在个人电脑、PAD、手机等包含存储系统的终端设备中。如图5所示本实施例中的存储系统的并行读写50至少可以包括:存储访问接口获取模块51、并行度设置模块52以及执行模块53,其中:
存储访问接口获取模块51,用于获取存储系统的存储访问接口的数量。
具体地,当系统初始化时,存储访问接口获取模块51可以检测存储系统的存储访问接口,从而获取该存储系统中存储访问接口的数量。
并行度设置模块52,用于根据所述存储访问接口的数量设置读写任务并行度。
具体地,当存储访问接口获取模块51获取到存储系统的存储访问接口的数量时,并行度设置模块52可以根据所述存储访问接口的数量设置CPU读写任务的并行度,也就是说,并行度设置模块52可以设置CPU的并行度等于存储访问接口的数量。
执行模块53,用于生成与所述读写任务并行度对应数量的并行读写任务,并对所述存储系统执行所述读写任务。
具体地,当并行度设置模块52设置了CPU的并行度之后,每当CPU需要对存储系统执行读写任务时,执行模块53可以生成与所述读写任务并行度对应数量的并行读写任务,并对所述存储系统执行所述读写任务。
进一步地,如图6所示的另一种存储系统的并行读写装置的结构示意图,所述存储系统的并行读写装置50还可以包括:存储域获取模块54,用于获取所述存储系统的存储域的数量,所述存储域为共享访问通道的存储单元。
具体实现中,所述存储域包括多个存储块,所述存储域获取模块54如图7所示进一步可以包括:存储块容量获取单元541以及存储域获取单元542,其中:
存储块容量获取单元541,用于获取所述存储系统的存储块的存储容量。
具体实现中,所述存储块容量获取单元541可以重复执行固定读写数据量的第三读写任务,且所述第三读写任务每次执行的起始地址偏移量为预设的固定偏移量,并记录每次执行第三读写任务时所述存储系统的存储访问接口的第二响应时长,其中,所述读写数据量大于所述固定偏移量,再比较所述记录的第二响应时长,根据两次相邻最短响应时长之间所述第三读写任务的执行次数以及所述固定偏移量确定所述存储系统的存储容量。
其中,存储块容量获取单元541可以从预设起始地址,如第一起始地址读写固定读写数据量的数据,并记录存储系统的存储访问接口响应当次读写任务的响应时长,然后以固定偏移量偏移所述第一起始地址,即在所述第一起始地址的基础上加上所述固定偏移量获得第二起始地址,再从所述第二起始地址读写固定读写数据量的数据,同样并记录存储访问接口响应当次读写任务的第二响应时长,然后再以固定偏移量偏移所述第二起始地址,以此类推;
当存储块容量获取单元541读写的数据在两个存储块中时,存储块容量获取单元541可以并行读写,并且,当读写的数据均分在两个存储块中时,存储访问接口响应当次读写任务的第二响应时长相对其它情况而言最短,存储块容量获取单元541比较执行第三读写任务所记录的第二响应时长,根据两次相邻最短响应时长之间第三读写任务的执行次数以及所述固定偏移量确定所述存储系统的存储容量。
存储域获取单元542,用于同步重复执行第一读写任务和第二读写任务,所述第一读写任务和第二读写任务起始的起始地址处于同一存储块中,其中,所述第一读写任务每次执行的起始地址偏移量为0,所述第二读写任务每次执行的起始地址偏移量与所述存储块的存储容量相等,当确定执行第二读写任务的起始地址再次与执行第一读写任务的起始地址处于同一存储域中时,则根据所述第二读写任务的执行次数确定所述存储系统的存储域的数量。
具体地,当存储块容量获取单元541获取到存储系统的存储块的存储容量时,存储域获取单元542可以同步重复执行第一读写任务以及第二读写任务,所述第一读写任务和第二读写任务的起始地址处于同一存储块中,其中,所述第一读写任务每次执行的起始地址偏移量为0,所述第二读写任务每次执行的起始地址偏移量与所述存储块的存储容量相等,当第一读写任务与第二读写任务同时读写同一存储域的存储块的数据时,存储域获取单元542执行读写任务存在先后顺序,当确定执行第二读写任务的起始地址再次与执行第一读写任务的起始地址处于同一存储域中时,则根据所述第二读写任务的执行次数确定所述存储系统的存储域的数量。
假设,存储域获取单元542先执行第一读写任务再执行第二读写任务,当获取到所述存储系统的存储块的存储容量时,存储域获取单元542先执行第一读写任务读取预设存储块的数据,再执行第二读写任务同样读写该预设存储块的数据,存储域获取单元542当执行完第一读写任务以及第二读写任务时,一方面,继续读写该预设存储块的数据,另一方面,以存储块的存储容量作为起始地址偏移量,偏移起始地址,读写下一存储域的存储块的数据,以此类推。
可选的,所述存储域获取模块54如图7所示进一步还包括记录单元543,用于记录每次执行第一读写任务和第二读写任务时,所述存储系统的存储访问接口的第一响应时长,进一步地,所述存储域获取单元542可以比较所述记录的第一响应时长,当记录中出现相邻的第一响应时长的时间差值大于预设阈值时,则判定执行第二读写任务的起始地址与执行第一读写任务的起始地址处于同一存储域中。
具体实现中,记录单元543可以记录每次执行第一读写任务和第二读写任务时,所述存储系统的存储访问接口的第一响应时长,也就是说,记录单元543可以将每次执行第一读写任务和第二读写任务所用时间记录为第一响应时长,然后,存储域获取单元542比较执行第一读写任务和第二读写任务所记录的第一响应时长,当记录中出现相邻的第一响应时长的时间差值大于预设阈值时,存储域获取单元542则判定执行第二读写任务的起始地址与执行第一读写任务的起始地址处于同一存储域中,此时,存储域获取单元542可以结束第一读写任务和第二读写任务,并根据所述第二读写任务的执行次数确定所述存储系统的存储域的数量。
再进一步地,所述并行度设置模块52具体可以用于:
比较所述存储域的数量与所述存储访问接口的数量;
如果,所述存储域的数量小于所述存储访问接口的数量,则将所述存储域的数量设置为所述读写任务并行度;
如果,所述存储域的数量大于所述存储访问接口的数量,则将所述存储访问接口的数量设置为所述读写任务并行度。
在图5所示的实施例中,存储访问接口获取模块可以获取存储系统的存储访问接口的数量,并行度设置模块可以根据该存储访问接口的数量设置CPU读写任务并行度,执行模块可以根据该并行度开启与存储访问接口数量相同的任务,避免了因开启过多的任务而造成竞争和排队,从而提高了CPU的存储能力以及存储系统的并行利用率;
进一步地,在图6所示的实施例中,存储域获取模块可以获取存储系统的存储域的数量,并行度设置模块可以比较存储域的数量与存储访问接口的数量,如果存储域的数量小于存储访问接口的数量,则将存储域的数量设置为读写任务并行度,如果存储域的数量大于存储访问接口的数量,则将存储访问接口的数量设置为读写任务并行度的数量,与图5所示的实施例相比,并行度设置装置可以进一步结合存储域的数量设置CPU读写任务并行度,进一步避免了竞争和排队,从而进一步提高了CPU的存储能力。
请参阅图8,图8是本发明实施例提供的另一种存储系统的并行读写装置的结构示意图,如图8所示,该存储系统的并行读写装置80可以包括:至少一个处理器81,例如CPU,至少一个通信总线82以及存储器83。通信总线82用于实现这些组件之间的连接通信。存储器83可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器83中存储一组程序代码,且处理器81用于调用存储器83中存储的程序代码,用于执行以下操作:
获取存储系统的存储访问接口的数量;
根据所述存储访问接口的数量设置读写任务并行度;
生成与所述读写任务并行度对应数量的并行读写任务,并对所述存储系统执行所述读写任务。
进一步地,处理器81在根据所述存储访问接口的数量设置读写任务并行度之前,还可以执行以下操作:
获取所述存储系统的存储域的数量,所述存储域为共享访问通道的存储单元;
再进一步地,处理器81根据所述存储访问接口的数量设置读写任务并行度具体可以为:
比较所述存储域的数量与所述存储访问接口的数量;
如果,所述存储域的数量小于所述存储访问接口的数量,则将所述存储域的数量设置为所述读写任务并行度;
如果,所述存储域的数量大于所述存储访问接口的数量,则将所述存储访问接口的数量设置为所述读写任务并行度。
其中,所述存储域包括多个存储块,处理器81获取存储系统的存储域的数量具体可以为:
获取所述存储系统的存储块的存储容量;
同步重复执行第一读写任务和第二读写任务,所述第一读写任务和第二读写任务起始的起始地址处于同一存储块中,其中,所述第一读写任务每次执行的起始地址偏移量为0,所述第二读写任务每次执行的起始地址偏移量与所述存储块的存储容量相等,当确定执行第二读写任务的起始地址再次与执行第一读写任务的起始地址处于同一存储域中时,则根据所述第二读写任务的执行次数确定所述存储系统的存储域的数量。
可选的,处理器81还可以执行以下操作:
记录每次执行第一读写任务和第二读写任务时,所述存储系统的存储访问接口的第一响应时长;
进一步地,处理器81确定执行第二读写任务的起始地址与执行第一读写任务的起始地址处于同一存储域中具体可以为:
比较所述记录的第一响应时长,当记录中出现相邻的第一响应时长的时间差值大于预设阈值时,则判定执行第二读写任务的起始地址与执行第一读写任务的起始地址处于同一存储域中。
其中,处理器81获取所述存储系统的存储块的存储容量具体可以为:
重复执行固定读写数据量的第三读写任务,且所述第三读写任务每次执行的起始地址偏移量为预设的固定偏移量,并记录每次执行第三读写任务时所述存储系统的存储访问接口的第二响应时长,其中,所述读写数据量大于所述固定偏移量;
比较所述记录的第二响应时长,根据两次相邻最短响应时长之间所述第三读写任务的执行次数以及所述固定偏移量确定所述存储系统的存储容量。
可理解的是,本实施例的存储系统的并行读写装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,可以具体对应参考图1至图2方法实施例的相关描述,此处不再赘述。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不是必须针对相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的程序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种存储系统的并行读写方法,其特征在于,包括:
获取存储系统的存储访问接口的数量;
根据所述存储访问接口的数量设置读写任务并行度;
生成与所述读写任务并行度对应数量的并行读写任务,并对所述存储系统执行所述读写任务。
2.如权利要求1所述的方法,其特征在于,所述根据所述存储访问接口的数量设置读写任务并行度之前,还包括:
获取所述存储系统的存储域的数量,所述存储域为共享访问通道的存储单元;
所述根据所述存储访问接口的数量设置读写任务并行度包括:
比较所述存储域的数量与所述存储访问接口的数量;
如果,所述存储域的数量小于所述存储访问接口的数量,则将所述存储域的数量设置为所述读写任务并行度;
如果,所述存储域的数量大于所述存储访问接口的数量,则将所述存储访问接口的数量设置为所述读写任务并行度。
3.如权利要求2所述的方法,其特征在于,所述存储域包括多个存储块,所述获取存储系统的存储域的数量包括:
获取所述存储系统的存储块的存储容量;
同步重复执行第一读写任务和第二读写任务,所述第一读写任务和第二读写任务起始的起始地址处于同一存储块中,其中,所述第一读写任务每次执行的起始地址偏移量为0,所述第二读写任务每次执行的起始地址偏移量与所述存储块的存储容量相等,当确定执行第二读写任务的起始地址再次与执行第一读写任务的起始地址处于同一存储域中时,则根据所述第二读写任务的执行次数确定所述存储系统的存储域的数量。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
记录每次执行第一读写任务和第二读写任务时,所述存储系统的存储访问接口的第一响应时长;
所述确定执行第二读写任务的起始地址与执行第一读写任务的起始地址处于同一存储域中包括:
比较所述记录的第一响应时长,当记录中出现相邻的第一响应时长的时间差值大于预设阈值时,则判定执行第二读写任务的起始地址与执行第一读写任务的起始地址处于同一存储域中。
5.如权利要求3-4任一项所述的方法,其特征在于,所述获取所述存储系统的存储块的存储容量包括:
重复执行固定读写数据量的第三读写任务,且所述第三读写任务每次执行的起始地址偏移量为预设的固定偏移量,并记录每次执行第三读写任务时所述存储系统的存储访问接口的第二响应时长,其中,所述读写数据量大于所述固定偏移量;
比较所述记录的第二响应时长,根据两次相邻最短响应时长之间所述第三读写任务的执行次数以及所述固定偏移量确定所述存储系统的存储容量。
6.一种存储系统的并行读写装置,其特征在于,包括:
存储访问接口获取模块,用于获取存储系统的存储访问接口的数量;
并行度设置模块,用于根据所述存储访问接口的数量设置读写任务并行度;
执行模块,用于生成与所述读写任务并行度对应数量的并行读写任务,并对所述存储系统执行所述读写任务。
7.如权利要求6所述的装置,其特征在于,所述装置还包括:
存储域获取模块,用于获取所述存储系统的存储域的数量,所述存储域为共享访问通道的存储单元;
所述并行度设置模块具体用于:
比较所述存储域的数量与所述存储访问接口的数量;
如果,所述存储域的数量小于所述存储访问接口的数量,则将所述存储域的数量设置为所述读写任务并行度;
如果,所述存储域的数量大于所述存储访问接口的数量,则将所述存储访问接口的数量设置为所述读写任务并行度。
8.如权利要求7所述的装置,其特征在于,所述存储域包括多个存储块,所述存储域获取模块包括:
存储块容量获取单元,用于获取所述存储系统的存储块的存储容量;
存储域获取单元,用于同步重复执行第一读写任务和第二读写任务,所述第一读写任务和第二读写任务起始的起始地址处于同一存储块中,其中,所述第一读写任务每次执行的起始地址偏移量为0,所述第二读写任务每次执行的起始地址偏移量与所述存储块的存储容量相等,当确定执行第二读写任务的起始地址再次与执行第一读写任务的起始地址处于同一存储域中时,则根据所述第二读写任务的执行次数确定所述存储系统的存储域的数量。
9.如权利要求8所述的装置,其特征在于,所述存储域获取模块还包括:
记录单元,用于记录每次执行第一读写任务和第二读写任务时,所述存储系统的存储访问接口的第一响应时长;
所述存储域获取单元确定执行第二读写任务的起始地址与执行第一读写任务的起始地址处于同一存储域中具体包括:
比较所述记录的第一响应时长,当记录中出现相邻的第一响应时长的时间差值大于预设阈值时,则判定执行第二读写任务的起始地址与执行第一读写任务的起始地址处于同一存储域中。
10.如权利要求8-9任一项所述的装置,其特征在于,所述存储块容量获取单元具体用于:
重复执行固定读写数据量的第三读写任务,且所述第三读写任务每次执行的起始地址偏移量为预设的固定偏移量,并记录每次执行第三读写任务时所述存储系统的存储访问接口的第二响应时长,其中,所述读写数据量大于所述固定偏移量;
比较所述记录的第二响应时长,根据两次相邻最短响应时长之间所述第三读写任务的执行次数以及所述固定偏移量确定所述存储系统的存储容量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410431275.0A CN104216836B (zh) | 2014-08-28 | 2014-08-28 | 一种存储系统的并行读写方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410431275.0A CN104216836B (zh) | 2014-08-28 | 2014-08-28 | 一种存储系统的并行读写方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104216836A true CN104216836A (zh) | 2014-12-17 |
CN104216836B CN104216836B (zh) | 2018-01-23 |
Family
ID=52098349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410431275.0A Active CN104216836B (zh) | 2014-08-28 | 2014-08-28 | 一种存储系统的并行读写方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104216836B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106775492A (zh) * | 2016-12-30 | 2017-05-31 | 华为技术有限公司 | 一种固态硬盘中写入数据的方法和存储系统 |
CN110941479A (zh) * | 2018-09-25 | 2020-03-31 | 广州虎牙信息科技有限公司 | 任务数据执行方法、服务器以及计算机存储介质 |
CN112181662A (zh) * | 2020-10-13 | 2021-01-05 | 深圳壹账通智能科技有限公司 | 任务调度方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6965527B2 (en) * | 2002-11-27 | 2005-11-15 | Matrix Semiconductor, Inc | Multibank memory on a die |
CN101467136A (zh) * | 2006-06-09 | 2009-06-24 | 微软公司 | 高速非易失性存储器设备 |
CN101644995A (zh) * | 2008-08-05 | 2010-02-10 | 晶天电子(深圳)有限公司 | 多层控制多闪存装置、存储装置和数据分割固态硬盘 |
CN101681302A (zh) * | 2008-02-29 | 2010-03-24 | 株式会社东芝 | 存储器系统 |
CN103348314A (zh) * | 2010-09-15 | 2013-10-09 | 净睿存储股份有限公司 | Ssd环境中的i/o的调度 |
CN103370685A (zh) * | 2010-09-15 | 2013-10-23 | 净睿存储股份有限公司 | 存储环境中的i/o写入的调度 |
-
2014
- 2014-08-28 CN CN201410431275.0A patent/CN104216836B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6965527B2 (en) * | 2002-11-27 | 2005-11-15 | Matrix Semiconductor, Inc | Multibank memory on a die |
CN101467136A (zh) * | 2006-06-09 | 2009-06-24 | 微软公司 | 高速非易失性存储器设备 |
CN101681302A (zh) * | 2008-02-29 | 2010-03-24 | 株式会社东芝 | 存储器系统 |
CN101644995A (zh) * | 2008-08-05 | 2010-02-10 | 晶天电子(深圳)有限公司 | 多层控制多闪存装置、存储装置和数据分割固态硬盘 |
CN103348314A (zh) * | 2010-09-15 | 2013-10-09 | 净睿存储股份有限公司 | Ssd环境中的i/o的调度 |
CN103370685A (zh) * | 2010-09-15 | 2013-10-23 | 净睿存储股份有限公司 | 存储环境中的i/o写入的调度 |
Non-Patent Citations (2)
Title |
---|
胡洋: "高性能固态盘的多级并行性及算法研究", 《中国博士学位论文全文数据库(信息科技辑)》 * |
黄平: "基于固态盘特征的存储优化研究", 《中国博士学位论文全文数据库(信息科技辑)》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106775492A (zh) * | 2016-12-30 | 2017-05-31 | 华为技术有限公司 | 一种固态硬盘中写入数据的方法和存储系统 |
CN106775492B (zh) * | 2016-12-30 | 2020-06-26 | 华为技术有限公司 | 一种固态硬盘中写入数据的方法和存储系统 |
CN110941479A (zh) * | 2018-09-25 | 2020-03-31 | 广州虎牙信息科技有限公司 | 任务数据执行方法、服务器以及计算机存储介质 |
CN112181662A (zh) * | 2020-10-13 | 2021-01-05 | 深圳壹账通智能科技有限公司 | 任务调度方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104216836B (zh) | 2018-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103279309B (zh) | 基于fpga的ddr控制装置及方法 | |
CN104160384B (zh) | 用于动态优先级控制的系统和方法 | |
CN111124305B (zh) | 固态硬盘磨损均衡方法、装置及计算机可读存储介质 | |
US20150006794A1 (en) | Apparatus and method for controlling multi-way nand flashes by using input-output pins | |
US20080195833A1 (en) | Systems, methods and computer program products for operating a data processing system in which a file system's unit of memory allocation is coordinated with a storage system's read/write operation unit | |
CN106445398B (zh) | 一种基于新型存储器的嵌入式文件系统及其实现方法 | |
CN109753443A (zh) | 一种数据处理方法、装置及电子设备 | |
CN103064792A (zh) | 数据写入方法及装置 | |
CN111324303B (zh) | Ssd垃圾回收方法、装置、计算机设备及存储介质 | |
CN109388582B (zh) | 数据储存装置以及其数据抹除方法 | |
WO2016105858A9 (en) | Tier mode for access operations to 3d memory | |
CN104699417A (zh) | 数据储存装置以及其数据存取方法 | |
EP2927779A1 (en) | Disk writing method for disk arrays and disk writing device for disk arrays | |
US10643736B2 (en) | Method, apparatus and electronic device for read/write speed testing | |
CN104216836A (zh) | 一种存储系统的并行读写方法和装置 | |
CN104700902B (zh) | 数据储存装置及其模式检测方法 | |
CN106155572B (zh) | 数据储存装置以及数据存取方法 | |
CN107704200A (zh) | 一种数据存放方法 | |
US20160364148A1 (en) | Buffer memory accessing method, memory controller and memory storage device | |
US9146860B2 (en) | Flash memory controller, flash memory system, and flash memory control method | |
CN105264608A (zh) | 存储数据的方法、内存控制器和中央处理器 | |
CN105404591B (zh) | 处理器系统及其存储器控制方法 | |
CN104270630A (zh) | 一种终端测试方法及终端 | |
CN111210863B (zh) | 嵌入式存储器的测试方法、装置、设备和计算机存储介质 | |
CN104008072B (zh) | 控制方法、连接器与存储器存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |