发明内容
本发明实施例提供一种基于多信道的数据读写处理方法,旨在解决现有技术中进行MLC或TLC直接写入时,无法兼顾到多信道并行的循序读取速度的问题。
本发明实施例是这样实现的,提供一种基于多信道的数据读写处理方法,包括以下步骤:
基于数据写入请求,将数据类型相同的写入数据以预设单位数据量依次通过多个信道分别写入与信道对应的存储块的存储单元,其中,数据类型相同的所述写入数据的逻辑地址之间存在连续性;
若获取到数据读取请求,则基于同一数据类型的所述写入数据的逻辑地址之间的连续性,通过多个信道并行从所述存储块的存储单元中读取目标读取数据。
更进一步地,所述基于数据写入请求,将数据类型相同的写入数据以预设单位数据量依次通过多个信道分别写入与信道对应的存储块的存储单元,包括:
获取所述数据写入请求,从所述数据写入请求中获取所述写入数据的数据类型;
若存在多种数据类型的所述写入数据,则将每种数据类型的所述写入数据以所述预设单位数据量作为单次传输数据量进行划分,通过多个信道将所述写入数据循序写入与信道对应的所述存储块的存储单元中,其中,所述存储块的每个存储单元大小至少存储两个所述预设单位数据量。
更进一步地,所述若存在多种数据类型的所述写入数据,则将每种数据类型的所述写入数据以所述预设单位数据量作为单次传输数据量进行划分,通过多个信道将所述写入数据循序写入与信道对应的所述存储块的存储单元中,包括:
判断所述写入数据中的数据类型是否存在至少两种;
若存在至少两种数据类型的所述写入数据,则将每种数据类型的所述写入数据以所述预设单位数据量作为单次传输数据量,基于数据类型优先方式,将其中一种数据类型的所述写入数据依次循序通过各信道进行传输,并在一种数据类型的所有写入数据传输完成后对下一数据类型的所述写入数据进行传输,其中,同一数据类型的所述写入数据在信道单次传输完成后进入下一信道传输;
基于所述信道的状态判断通过同一信道传输的各数据类型的所述写入数据是否传输完成;
若传输完成,则将通过同一信道传输的各数据类型的所述写入数据写入与信道对应的所述存储块的存储单元中,直到所有数据类型的所述写入数据完成写入。
更进一步地,所述若存在多种数据类型的所述写入数据,则将每种数据类型的所述写入数据以所述预设单位数据量作为单次传输数据量进行划分,通过多个信道将所述写入数据循序写入与信道对应的所述存储块的存储单元中,包括:
判断所述写入数据中的数据类型是否存在至少两种;
若存在至少两种数据类型的所述写入数据,则将每种数据类型的所述写入数据以所述预设单位数据量作为单次传输数据量,基于信道优先方式,将每种数据类型中的所述写入数据以所述单次传输数据量通过同一信道进行单次传输;
当同一信道完成每种数据类型的所述写入数据单次传输后,则将传输完成的信道中各数据类型的所述写入数据写入与信道对应的所述存储块的存储单元中,再进行下一信道的单次传输,直至所有数据类型的所述写入数据完成写入。
更进一步地,所述通过多个信道将所述写入数据循序写入与信道对应的所述存储块的存储单元中,包括:
当同一数据类型的所述写入数据完成首轮信道传输后,基于所述写入数据的数据写入量判断所述写入数据是否存在剩余未写入数据;
若存在所述剩余未写入数据,则基于信道编号顺序继续将所述剩余未写入数据循环写入与信道对应的所述存储块的存储单元中,其中,同一信道传输的总数据量不超过所述存储块的存储单元最大写入量。
更进一步地,所述若获取到数据读取请求,则基于同一数据类型的所述写入数据的逻辑地址之间的连续性,通过多个信道并行从所述存储块的存储单元中读取目标读取数据,包括:
当获取到数据读取请求时,获取所述数据读取请求中目标读取数据的目标读取数据类型;
基于所述目标读取数据类型在所述存储块的存储单元中查找所述目标读取数据,基于同一数据类型的所述写入数据的逻辑地址的连续性,通过写入所述目标读取数据的各个信道从所述存储块的存储单元中并行读取。
本发明实施例还提供一种基于多信道的数据读写处理装置,包括:
写入模块,用于基于数据写入请求,将数据类型相同的写入数据以预设单位数据量依次通过多个信道分别写入与信道对应的存储块的存储单元,其中,数据类型相同的所述写入数据的逻辑地址之间存在连续性;
读取模块,用于若获取到数据读取请求,则基于同一数据类型的所述写入数据的逻辑地址之间的连续性,通过多个信道并行从所述存储块的存储单元中读取目标读取数据。
更进一步地,所述写入模块包括:
获取单元,用于获取所述数据写入请求,从所述数据写入请求中获取所述写入数据的数据类型;
写入单元,用于若存在多种数据类型的所述写入数据,则将每种数据类型的所述写入数据以所述预设单位数据量作为单次传输数据量进行划分,通过多个信道将所述写入数据循序写入与信道对应的所述存储块的存储单元中,其中,所述存储块的每个存储单元大小至少存储两个所述预设单位数据量。
本发明实施例还提供一种电子设备,包括存储器、处理器以及存储在所述存储器中并能够在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如任一实施例中所述的一种基于多信道的数据读写处理方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如任一实施例中所述的一种基于多信道的数据读写处理方法。
本发明所达到的有益效果,本申请基于数据写入请求,将数据类型相同的写入数据以预设单位数据量依次通过多个信道分别写入与信道对应的存储块的存储单元,其中,数据类型相同的所述写入数据的逻辑地址之间存在连续性;若获取到数据读取请求,则基于同一数据类型的所述写入数据的逻辑地址之间的连续性,通过多个信道并行从所述存储块的存储单元中读取目标读取数据。本申请能够将相同数据类型的写入数据划分为多个预设单位数据量大小的数据分别通过每个信道写入到与信道对应的存储块的存储单元中,且同一数据类型的写入数据的逻辑地址是存在连续性的,当固件在循序读取时,能维持多信道的平行操作从存储块的存储单元中将目标读取数据以最高的效能读取出来,兼顾了多信道数据读取与写入,且通过多信道平行读取数据能够减少耗时,提高读取速度。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本申请能够将相同数据类型的写入数据划分为多个预设单位数据量大小的数据分别通过每个信道写入到与信道对应的存储块的存储单元中,且同一数据类型的写入数据的逻辑地址是存在连续性的,当固件在循序读取时,能维持多信道的平行操作从存储块的存储单元中将目标读取数据以最高的效能读取出来,兼顾了多信道数据读取与写入,且通过多信道平行读取数据能够减少耗时,提高读取速度。
实施例一
图1示出了本申请实施例提供的一种基于多信道的数据读写处理方法的流程图,如图1所示,该方法包括步骤S10至S20。各个步骤的具体实现原理如下:
S10、基于数据写入请求,将数据类型相同的写入数据以预设单位数据量依次通过多个信道分别写入与信道对应的存储块的存储单元,其中,数据类型相同的写入数据的逻辑地址之间存在连续性。
在本实施例中,本实施例提供的一种基于多信道的数据读写处理方法所运用的电子设备可以通过有线连接方式或者无线连接方式获取数据写入请求、数据读取请求或与其他电子设备进行数据传输。需要指出的是,上述无线连接方式可以包括但不限于3G/4G连接、WiFi连接、蓝牙连接、WiMAX连接、Zigbee连接、UWB(ultra wideband)连接、以及其他现在已知或将来开发的无线连接方式。
具体的,本申请提供的一种基于多信道的数据读写处理方法可以运用在搭载UFS的数码储存装置中,数码存储装置中可以集成有主控芯片、固件算法和闪存(存储块)。基于数码存储装置所在的主机端(PC端、终端)可以发出数据写入请求,主控芯片根据固件算法对数据写入请求进行数据处理,生成与数据写入请求对应的数据写入请求,并将写入数据通过多个信道写入到存储块的存储单元中。更具体的,在主控芯片的应用中可以搭载多信道闪存接口(Channel,简称CH),为了达到最大的写入速度,可以基于多个信道并行运作,例如:当规格配置为4个闪存接口信道数(CH0、CH1、CH2、CH3)以及每个信道配有1个CE(片选)时,会通过4个信道有序进行数据写入,以达到最快写入速度。其中,一个存储块包括多个存储单元,一个信道可以对应存储块中的一个存储单元,根据存储块的类型不同,每个存储单元所存储的数据量也不同。
需要说明的是,上述主机端包括但不限于相机、智能手机、平板电脑、膝上型便携计算机和台式计算机等。
更具体的,上述写入数据可以包括多种数据类型,每种数据类型的写入数据包括具有连续性的逻辑地址,同一数据类型逻辑地址具有连续性可以便于数据读取时,根据连续性快速查找到存储在不同存储单元中的同数据类型的数据以读取成功。同一信道可以对不同数据类型的写入数据分别进行传输,且可以将不同数据类型的写入数据同时写入与信道对应的存储单元中。上述预设单位数据量可以指一个page的数据量。上述存储块包括但不限于MLC存储块(MLC闪存)或TLC存储块(TLC闪存),例如:还包括QLC闪存。需要说明的是,上述MLC闪存的每个存储单元Cell表示2bit,可以储存2个pages的数据量,也即是2个预设单位数据量。TLC闪存的每个存储单元表示3bit,可以储存3个pages的数据量,也即是3个预设单位数据量。
更具体的,较于传统MLC闪存写入时,需要收集到2个pages的数据量后才进行一个WL的写入,以及TLC闪存会在收集到3个pages的数据量后进行一个WL的写入,在本申请中,当同一数据类型的写入数据包括多个pages数据量时,在写入时只要当前信道的写入数据一满足一个page的数据量,就会将写入数据中连续的下一个page的数据量写入下一信道,直到所有数据类型的写入数据分别通过不同信道写入到与信道对应的存储单元中。这样,相同类型且逻辑地址具有连续性的写入数据会以一个page的数据量为单位分配到不同的信道,分别依次通过不同的信道中写入存储块的存储单元中。
S20、若获取到数据读取请求,则基于同一数据类型的写入数据的逻辑地址之间的连续性,通过多个信道并行从存储块的存储单元中读取目标读取数据。
具体的,若主机端发出数据读取请求,则主控芯片可以生成读取命令进行数据读取。其中,数据读取请求中,可以请求读取一种数据类型的数据,也可以请求同时读取多种数据类型的数据。因同一数据类型的写入数据中逻辑地址具有连续性且是通过不同的信道写入,读取时便可以通过多信道并行读取同一数据类型的目标读取数据。当读取多种数据类型的数据时,可以根据写入信道的数据类型的顺序/倒序从不同的信道中并行读取目标读取数据,例如:数据类型a、数据类型b以及数据类型c的写入数据以数据类型为次序依次分别通过信道CH0、CH1、CH2、CH3写入存储单元,则通过多个信道同时读取时,可以先读取每个信道中的数据类型a,然后数据类型b,再到数据类型c,相反,读取数据顺序也可以是依次为数据类型c、b、a。这样,在通过多信道并行操作时,更便于将同一数据类型的目标读取数据从各信道同时读取,且以多信道并行的方式从闪存将数据以最高的效能读取出来。
在本发明实施例中,本申请基于数据写入请求,将数据类型相同的写入数据以预设单位数据量依次通过多个信道分别写入与信道对应的存储块的存储单元,其中,数据类型相同的写入数据的逻辑地址之间存在连续性;若获取到数据读取请求,则基于同一数据类型的写入数据的逻辑地址之间的连续性,通过多个信道并行从存储块的存储单元中读取目标读取数据。本申请能够将相同数据类型的写入数据划分为多个预设单位数据量大小的数据分别通过每个信道写入到与信道对应的存储块的存储单元中,且同一数据类型的写入数据的逻辑地址是存在连续性的,当固件在循序读取时,能维持多信道的平行操作从存储块的存储单元中将目标读取数据以最高的效能读取出来,兼顾了多信道数据读取与写入,且通过多信道平行读取数据能够减少耗时,提高读取速度。
实施例二
在本实施例中,基于上述实施例一,如图2所示,步骤S10包括步骤S201至S202。各个步骤的具体实现原理如下:
S201、获取数据写入请求,从数据写入请求中获取写入数据的数据类型。
S202、若存在多种数据类型的写入数据,则将每种数据类型的写入数据以预设单位数据量作为单次传输数据量进行划分,通过多个信道将写入数据循序写入与信道对应的存储块的存储单元中,其中,存储块的每个存储单元大小至少存储两个预设单位数据量。
其中,可以对数据写入请求进行解析,提取写入数据的数据类型。每个数据类型的写入数据量可以包括至少1个page的数据量,其中,数据类型包括但不限于LSB page、CSBpage和MSB page。根据每种数据类型的写入数据量以预设单位数据量(1个page的数据量)为单次传输数据量,划分为具有连续性的多个1page数据量,分别通过不同的信道将多个具有连续性的1page数据量依次写入与信道对应的存储单元。
当写入数据存在多种数据类型时,为保证写入速度,可以将相同数据类型的写入数据循序通过不同信道完成传输后,再对下一数据类型的写入数据循序通过不同信号进行传输,直到有信道的写入数据传输完毕后执行数据写入。当然,也可是先将同一信道的写入数据进行传输并写入到存储单元后再对下一信道进行传输及数据写入。其中,存储块的每个存储单元大小为至少两个单位数据量,可以表示每个存储单元至少可以存储2个pages的数据量,例如:为MLC存储块时,每个存储单元存储2个pages的数据量,且存储同一数据类型时,为该数据类型的2个pages的数据量,当存储两种数据类型时,为两种数据类型的各1个page的数据量。再例如:为TLC存储块时,每个存储单元存储3个pages的数据量,且存储同一数据类型时,为该数据类型的3个pages的数据量,当存储两种或三种数据类型时,为两种或三种数据类型总计的3个pages的数据量,且以1个page的数据量为单位。当写入时,同一数据类型的写入数据传输时只要满足1个page的数据量就可以通过信道写入对应信道的存储单元,具有连续性的后1个page的数据量继续通过下一信道写入对应当前信道的存储单元。
可选的,作为一种可能的实施方式,如图3所示,步骤S202包括步骤S301至S305。各个步骤的具体实现原理如下:
S301、判断写入数据中的数据类型是否存在至少两种。
S302、若存在至少两种数据类型的写入数据,则将每种数据类型的写入数据以预设单位数据量作为单次传输数据量,基于数据类型优先方式,将其中一种数据类型的写入数据依次循序通过各信道进行传输,并在一种数据类型的所有写入数据传输完成后对下一数据类型的写入数据进行传输,其中,同一数据类型的写入数据在信道单次传输完成后进入下一信道传输。
具体的,在进行数据写入之前,可以先根据数据写入请求确定写入数据包括的数据类型种类。对于只有一种数据类型的写入数据时,可以直接通过多个信道将写入数据写入存储块中与信道对应的存储单元,且达到1个page的数据量后,具有连续性的后1个page的数据量将写入下一信道。上述基于数据类型优先方式可以指同一数据类型的写入数据传输完后再进行下一数据类型的写入数据传输。当存在多种数据类型的写入数据时,可以将每一种数据类型的写入数据以单次传输数据量为1个page的数据量,依次将相同数据类型的写入数据进行传输,例如:数据类型1、2、3分别包括4个pages的数据量,则先将数据类型1的4个pages的数据量通过CH0~CH3进行传输,然后将数据类型2的4个pages的数据量通过CH0~CH3进行传输,最后将数据类型3的4个pages的数据量通过CH0~CH3进行传输。
S303、基于信道的状态判断通过同一信道传输的各数据类型的写入数据是否传输完成。
S304、若传输完成,则将通过同一信道传输的各数据类型的写入数据写入与信道对应的存储块的存储单元中,直到所有数据类型的写入数据完成写入。
具体的,当信道传输完成时可以获取到表示传输完成状态的信号,在所有写入数据传输的过程中,若检测到同一信道的传输的各数据类型的写入数据已完成传输,便可以将通过同一信道传输完成的各数据类型的写入数据写入到存储块中与信道对应的存储单元中。直到每个信道都完成数据传输后,根据传输完成的先后顺序分别将各信道传输的各数据类型的写入数据写入到存储块中与各信道对应的存储单元。
示意性的,为更好的说明本实施例,以下提供一种以TLC存储块直接写入LSBpage、CSB page和MSB page三种数据类型的数据为例进行说明,其中,显示必要的写入步骤以及逻辑地址(写入数据)如何分布于闪存。具体步骤如下所示:
Step 1.等待CH-0CE-0:LSB的数据0
Step 2.等待CH-1CE-0:LSB的数据1
Step 3.等待CH-2CE-0:LSB的数据2
Step 4.等待CH-3CE-0:LSB的数据3
Step 5.等待CH-0CE-0:CSB的数据4
Step 6.等待CH-1CE-0:CSB的数据5
Step 7.等待CH-2CE-0:CSB的数据6
Step 8.等待CH-3CE-0:CSB的数据7
Step 9.等待CH-0CE-0:MSB的数据8
Step 10.写入CH-0CE-0:LSB的数据0、CSB的数据4和MSB的数据8
Step 11.等待CH-1CE-0:MSB的数据9
Step 12.写入CH-1CE-0:LSB的数据1、CSB的数据5和MSB的数据9
Step 13.等待CH-2CE-0:MSB的数据10
Step 14.写入CH-2CE-0:LSB的数据2、CSB的数据6和MSB的数据10
Step 15.等待CH-3CE-0:MSB的数据11
Step 16.写入CH-3CE-0:LSB的数据3、CSB的数据7和MSB的数据11
具体的,在循序写入时,上述每个等待步骤可以表示正在数据传输处理,且每个数据的大小为1个page的数据量。根据上述步骤Step 1~Step 16分析可知,以数据类型优先,将同类数据类型进行传输后再对下一数据类型进行传输。在Step 1~Step 9完成后,可见需要写入CH-0CE-0的LSB的数据0、CSB的数据4和MSB的数据8已传输完成。因此,在Step 10便可以通过CH-0CE-0将LSB的数据0、CSB的数据4和MSB的数据8写入TLC存储块进行存储。可见,在信道CH-0CE-0中,包括了3种数据类型的,其他信道同样。
在循序读取时,一样能维持多信道的平行操作,如上,因为同一数据类型LSB page中具有连续性的数据0、数据1、数据2和数据3分别写在了CH-0、CH-1、CH-2、CH-3中,所以读取LSB page的数据时,可以通过4个信道同时并行读取。同样逻辑,后面连续的数据4至7,8至11皆能以多信道并行的方式从闪存将目标读取数据以最高的效能读取出来。上述只是以TLC存储块直接写入为例进行说明,当然相同逻辑理论也适用于MLC存储块直接写入。
在本实施例中,当存在至少两种数据类型的写入数据时,将每种数据类型的写入数据以1个page的数据量作为单次传输数据量,基于数据类型优先方式,将其中一种数据类型的写入数据依次循序通过各信道进行传输,并在一种数据类型的所有写入数据传输完成后对下一数据类型的写入数据进行传输,在有信道传输完成时,再将该信道的写入数据写入存储块中与信道对应的存储单元中。通过不同的信道写入同一数据类型的写入数据,在循序读取时,能维持多信道的平行操作从存储块中将目标读取数据以最高的效能读取出来,兼顾了多信道数据读取与写入,且通过多信道平行读取数据能够减少耗时,提高读取速度。
可选的,作为另一种可能的实施例方式,参考图4所示,图2中步骤S202包括步骤S401至S304。各个步骤的具体实现原理如下:
S401、判断写入数据中的数据类型是否存在至少两种。
S402、若存在至少两种数据类型的写入数据,则将每种数据类型的写入数据以预设单位数据量作为单次传输数据量,基于信道优先方式,将每种数据类型中的写入数据以单次传输数据量通过同一信道进行单次传输。
S403、当同一信道完成每种数据类型的写入数据单次传输后,则将传输完成的信道中各数据类型的写入数据写入与信道对应的存储块的存储单元中,再进行下一信道的单次传输,直至所有数据类型的写入数据完成写入。
具体的,在进行数据传输时,为加快存储块的直接写入速度,可以以信道优先的方式进行传输。具体的,在UFS的协议层规范中,当装置支持无次序数据写入功能(b DataOrdering=01h)并且在执行写数据任务中启用(b Out Of Order Data En=01h)时,固件即可在RTT UPIU指定主机端接下来数据写入任务的所属逻辑地址。以此为前提,便可以基于信道优先的顺序进行写入,基于信道优先方式可以指数据传输时,先将各数据类型的写入数据以1个page的数据量为单次传输数据量,同时通过同一信道进行单次传输,当该信道传输完成时直接写入对应该信道的存储单元,然后再将各数据类型的下一具有连续性的1个page的数据量同时写入下一信道。示意性的,为更好的说明本实施例,以下提供另一种以TLC存储块直接写入LSB page、CSB page和MSB page三种数据类型的数据为例进行说明,同样,只显示必要的写入步骤以及逻辑地址数据如何分布于闪存。具体步骤如下所示:
Step 1.等待CH-0CE-0:LSB的数据0
Step 2.等待CH-0CE-0:CSB的数据4
Step 3.等待CH-0CE-0:MSB的数据8
Step 4.写入CH-0CE-0:LSB的数据0、CSB的数据4和MSB的数据8
Step 5.等待CH-1CE-0:LSB的数据1
Step 6.等待CH-1CE-0:CSB的数据5
Step 7.等待CH-1CE-0:MSB的数据9
Step 8.写入CH-1CE-0:LSB的数据1、CSB的数据5和MSB的数据9
Step 9.等待CH-2CE-0:LSB的数据2
Step 10.等待CH-2CE-0:CSB的数据6
Step 11.等待CH-2CE-0:MSB的数据10
Step 12.写入CH-2CE-0:LSB的数据2、CSB的数据6和MSB的数据10
Step 13.等待CH-3CE-0:LSB的数据3
Step 14.等待CH-3CE-0:CSB的数据7
Step 15.等待CH-3CE-0:MSB的数据11
Step 16.写入CH-3CE-0:LSB的数据3、CSB的数据7和MSB的数据11
具体的,以一个阶段为例说明,从上述步骤Step 1~Step 3可知,为信道优先方式的传输过程,即每种数据类型的写入数据以1个page的数据量同时通过信道CH-0进行传输。在Step 1~Step 3完成后,可见写入CH-0CE-0的LSB的数据0、CSB的数据4和MSB的数据8已传输完成。因此,在Step 4便可以通过CH-0CE-0将LSB的数据0、CSB的数据4和MSB的数据8写入TLC存储块中与信道CH-0对应的存储单元进行存储。可见,在信道CH-0CE-0中,包括了3种数据类型。同样,其他信道的写入方式同上信道优先写入。在循序读取时,一样能维持多信道的平行操作,因为同一数据类型且连续的数据0、数据1、数据2和数据3都写入在不同的信道中。同样逻辑,后面连续的数据4至7,8至11皆能以多信道并行的方式从闪存将目标读取数据以最高的效能读取出来。同样,相同逻辑理论也适用于MLC存储块直接写入。且本实施例在写入程序可优化多信道并行运作,也不会耗费去等待其他信道的数据传输时间。同时具有连续性的逻辑地址也分布在各个信道,所以在循序读取任务发生时依然能维持多信道并行运作效能。
可选的,上述步骤S202还包括:
当同一数据类型的写入数据完成首轮信道传输后,基于写入数据的数据写入量判断写入数据是否存在剩余未写入数据。
若存在剩余未写入数据,则基于信道编号顺序继续将剩余未写入数据循环写入与信道对应的存储块的存储单元中,其中,同一信道传输的总数据量不超过存储块的存储单元最大写入量。
具体的,在对各个数据类型的写入数据进行传输时,可能一种数据类型的写入数据在第一轮无法完成全部传输,从而存在剩余未写入数据,对此,可以将剩余未写入数据以信道编号顺序为准,再次或多次循环通过信道进行写入,例如:信道有4个,数据类型1的写入数据有5个pages的数据量,每次通过1个信道传输1个page的数据量,则会剩余1个page的数据量没有匹配到第五个信道,对此,可以将剩余1个page的数据量通过第1个信道进行传输,并写入与信道对应的存储块的存储单元中。当然,同一信道传输的总数据量不超过存储块的存储单元最大写入量,也即是当存储单元A最大写入量为3个pages的数据量,已传输了2个pages的数据量,则若剩余未写入数据的数据量为1个page的数据量,则可以继续写入存储单元A,若剩余未写入数据的数据量为5个pages的数据量,但存储块的所有存储单元已写满,则此时不会再对该存储块进行写入。对于写满的情况,可以擦除也可以写入其他存储块中。
在本实施例中,对于剩余未写入数据可以循序通过各信道写入到与信道对应的存储单元中,在循序读取时,能维持多信道的平行操作从存储块中将目标读取数据以最高的效能读取出来,兼顾了多信道数据读取与写入,且通过多信道平行读取数据能够减少耗时,提高读取速度。
实施例三
在本实施例中,基于上述实施例二,如图5所示,步骤S20包括步骤S501至S502。各个步骤的具体实现原理如下:
S501、当获取到数据读取请求时,获取数据读取请求中目标读取数据的目标读取数据类型;
S502、基于目标读取数据类型在存储块的存储单元中查找目标读取数据,基于同一数据类型的写入数据的逻辑地址的连续性,通过写入目标读取数据的各个信道从存储块的存储单元中并行读取。
其中,当主机端要读取数据时,会发出数据读取请求,可以对数据读取请求进行解析获取目标读取数据,也即是读取目标逻辑地址。读取的目标读取数据可以包括同一数据类型中具有连续性的数据,当然,还可以包括多个数据类型具有连续性的数据。循序读取时,可以根据目标数据的数据类型对存储块的存储单元进行查找,查找到目标读取数据后,可以根据数据的连续性有序通过写入目标读取数据的多个信道并行从各个存储单元中将目标读取数据读取出。在本实施例中,当循序读取时,能维持多信道的平行操作从存储块中将目标读取数据以最高的效能读取出来,兼顾了多信道数据读取与写入,且通过多信道平行读取数据能够减少耗时,提高读取速度。
实施例四
对应于上述图1所示的一种基于多信道的数据读写处理方法,图6示出的是本申请实施例提供的一种基于多信道的数据读写处理装置的示意图,装置M60包括:
写入模块M601,用于基于数据写入请求,将数据类型相同的写入数据以预设单位数据量依次通过多个信道分别写入与信道对应的存储块的存储单元,其中,数据类型相同的写入数据的逻辑地址之间存在连续性;
读取模块M602,用于若获取到数据读取请求,则基于同一数据类型的写入数据的逻辑地址之间的连续性,通过多个信道并行从存储块的存储单元中读取目标读取数据。
可选的,参考图7所示,图7为本发明实施例提供的写入模块的结构示意图。写入模块M601包括:
第一获取单元M6011,用于获取数据写入请求,从数据写入请求中获取写入数据的数据类型;
写入单元M6012,用于若存在多种数据类型的写入数据,则将每种数据类型的写入数据以预设单位数据量作为单次传输数据量进行划分,通过多个信道将写入数据循序写入与信道对应的存储块的存储单元中,其中,存储块的每个存储单元大小至少存储两个预设单位数据量。
可选的,参考图8所示,图8为本发明实施例提供的写入单元的结构示意图。写入单元M6012包括:
第一判断子单元M60121,用于判断写入数据中的数据类型是否存在至少两种;
第一传输子单元M60122,用于若存在至少两种数据类型的写入数据,则将每种数据类型的写入数据以预设单位数据量作为单次传输数据量,基于数据类型优先方式,将其中一种数据类型的写入数据依次循序通过各信道进行传输,并在一种数据类型的所有写入数据传输完成后对下一数据类型的写入数据进行传输,其中,同一数据类型的写入数据在信道单次传输完成后进入下一信道传输;
第二判断子单元M60123,用于基于信道的状态判断通过同一信道传输的各数据类型的写入数据是否传输完成;
第一写入子单元M60124,用于若传输完成,则将通过同一信道传输的各数据类型的写入数据写入与信道对应的存储块的存储单元中,直到所有数据类型的写入数据完成写入。
可选的,参考图9所示,图9为本发明实施例提供的写入单元的结构示意图。写入单元M6012包括:
第三判断子单元M60125,用于判断写入数据中的数据类型是否存在至少两种;
第二传输子单元M60126,用于若存在至少两种数据类型的写入数据,则将每种数据类型的写入数据以预设单位数据量作为单次传输数据量,基于信道优先方式,将每种数据类型中的写入数据以单次传输数据量通过同一信道进行单次传输;
第二写入子单元M60127,用于当同一信道完成每种数据类型的写入数据单次传输后,则将传输完成的信道中各数据类型的写入数据写入与信道对应的存储块的存储单元中,再进行下一信道的单次传输,直至所有数据类型的写入数据完成写入。
可选的,写入单元M6012还包括:
第四判断子单元M60128,用于当同一数据类型的写入数据完成首轮信道传输后,基于写入数据的数据写入量判断写入数据是否存在剩余未写入数据;
第三写入子单元M60129,用于若存在剩余未写入数据,则基于信道编号顺序继续将剩余未写入数据循环写入与信道对应的存储块的存储单元中,其中,同一信道传输的总数据量不超过存储块的存储单元最大写入量。
可选的,参考图10所示,图10为本发明实施例提供的读取模块的结构示意图。读取模块M602包括:
第二获取单元M6021,用于当获取到数据读取请求时,获取数据读取请求中目标读取数据的目标读取数据类型;
读取单元M6022,用于基于目标读取数据类型在存储块的存储单元中查找目标读取数据,基于同一数据类型的写入数据的逻辑地址的连续性,通过写入目标读取数据的各个信道从存储块的存储单元中并行读取。
本发明实施例提供的基于多信道的数据读写处理装置能够实现上述方法实施例中一种基于多信道的数据读写处理方法实现的各个过程,为避免重复,这里不再赘述。且可以达到相同的有益效果。
实施例五
图11为本申请实施例提供的一种电子设备的结构示意图。如图11所示,该实施例的电子设备D11包括:至少一个处理器D110(图11中仅示出一个)、存储器D111、网络接口D112,以及存储在存储器D111中并可在至少一个处理器D110上运行的计算机程序。其中,处理器D110用于调用存储器D111存储的计算机程序,并执行如下步骤:
基于数据写入请求,将数据类型相同的写入数据以预设单位数据量依次通过多个信道分别写入与信道对应的存储块的存储单元,其中,数据类型相同的写入数据的逻辑地址之间存在连续性;
若获取到数据读取请求,则基于同一数据类型的写入数据的逻辑地址之间的连续性,通过多个信道并行从存储块的存储单元中读取目标读取数据。
可选的,处理器D110执行的基于数据写入请求,将数据类型相同的写入数据以预设单位数据量依次通过多个信道分别写入与信道对应的存储块的存储单元,包括:
获取数据写入请求,从数据写入请求中获取写入数据的数据类型;
若存在多种数据类型的写入数据,则将每种数据类型的写入数据以预设单位数据量作为单次传输数据量进行划分,通过多个信道将写入数据循序写入与信道对应的存储块的存储单元中,其中,存储块的每个存储单元大小至少存储两个预设单位数据量。
可选的,处理器D110执行的若存在多种数据类型的写入数据,则将每种数据类型的写入数据以预设单位数据量作为单次传输数据量进行划分,通过多个信道将写入数据循序写入与信道对应的存储块的存储单元中,包括:
判断写入数据中的数据类型是否存在至少两种;
若存在至少两种数据类型的写入数据,则将每种数据类型的写入数据以预设单位数据量作为单次传输数据量,基于数据类型优先方式,将其中一种数据类型的写入数据依次循序通过各信道进行传输,并在一种数据类型的所有写入数据传输完成后对下一数据类型的写入数据进行传输,其中,同一数据类型的写入数据在信道单次传输完成后进入下一信道传输;
基于信道的状态判断通过同一信道传输的各数据类型的写入数据是否传输完成;
若传输完成,则将通过同一信道传输的各数据类型的写入数据写入与信道对应的存储块的存储单元中,直到所有数据类型的写入数据完成写入。
可选的,处理器D110执行的若存在多种数据类型的写入数据,则将每种数据类型的写入数据以预设单位数据量作为单次传输数据量进行划分,通过多个信道将写入数据循序写入与信道对应的存储块的存储单元中,包括:
判断写入数据中的数据类型是否存在至少两种;
若存在至少两种数据类型的写入数据,则将每种数据类型的写入数据以预设单位数据量作为单次传输数据量,基于信道优先方式,将每种数据类型中的写入数据以单次传输数据量通过同一信道进行单次传输;
当同一信道完成每种数据类型的写入数据单次传输后,则将传输完成的信道中各数据类型的写入数据写入与信道对应的存储块的存储单元中,再进行下一信道的单次传输,直至所有数据类型的写入数据完成写入。
可选的,处理器D110执行的通过多个信道将写入数据循序写入与信道对应的存储块的存储单元中,包括:
当同一数据类型的写入数据完成首轮信道传输后,基于写入数据的数据写入量判断写入数据是否存在剩余未写入数据;
若存在剩余未写入数据,则基于信道编号顺序继续将剩余未写入数据循环写入与信道对应的存储块的存储单元中,其中,同一信道传输的总数据量不超过存储块的存储单元最大写入量。
可选的,处理器D110执行的若获取到数据读取请求,则基于同一数据类型的写入数据的逻辑地址之间的连续性,通过多个信道并行从存储块的存储单元中读取目标读取数据,包括:
当获取到数据读取请求时,获取数据读取请求中目标读取数据的目标读取数据类型;
基于目标读取数据类型在存储块的存储单元中查找目标读取数据,基于同一数据类型的写入数据的逻辑地址的连续性,通过写入目标读取数据的各个信道从存储块的存储单元中并行读取。
本发明实施例提供的电子设备D11能够实现一种基于多信道的数据读写处理方法实施例中的各个实施方式,以及相应有益效果,为避免重复,这里不再赘述。
D110-D112,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的电子设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备。
处理器D110在一些实施例中可以是中央处理单元(Central Processing Unit,CPU),该处理器D110还可以是其它通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器D111在一些实施例中可以是电子设备D11的内部存储单元,例如电子设备D11的硬盘或内存。存储器D111在另一些实施例中也可以是电子设备D11的外部存储设备,例如电子设备D11上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器D111还可以既包括电子设备D11的内部存储单元也包括外部存储设备。存储器D111用于存储操作***、应用程序、引导装载程序(BootLoader)、数据以及其它程序等,例如计算机程序的程序代码等。存储器D111还可以用于暂时地存储已经输出或者将要输出的数据。
D112可包括无线网络接口或有线网络接口,该网络接口D112通常用于在电子设备D11与其他电子设备之间建立通信连接。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器D110执行时实现本发明实施例提供的一种基于多信道的数据读写处理方法实施例的各个程,且能达到相同的技术效果,为避免重复,这里不再赘述。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。
本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。