一种储存器和数据处理方法、装置及存储介质
文献发布时间:2023-06-19 19:33:46
技术领域
本发明涉及数据缓冲技术领域,具体为一种储存器和数据处理方法、装置及存储介质。
背景技术
在为硬件项目编写软件程序时,往往需要用到很多不同宽度的储存区。由于硬件上的限制,储存区可以缓冲的数据宽度往往依赖于其中使用的静态随机存取储存器的宽度,如果在程序中使用了不同宽度的静态随机存取储存器,就需要为它们分别写不同的缓冲程序。
现有技术中需要根据储存区中所需要存放数据的宽度来对应编写缓冲程序,而且不同数据宽度的缓冲程序并不通用。因此,一个项目往往需要编写多个不同的缓冲程序,来适应项目中可能存在的不同宽度的数据,使得编程和调试的工作量比较大,并且编程内容比较重复,效率较低。
发明内容
本发明的目的在于提供一种储存器和数据处理方法、装置及存储介质,以解决不同数据宽度的缓冲程序并不通用,一个项目需要编写多个不同的缓冲程序的技术问题。为实现上述目的,本发明提供如下技术方案。
第一方面,本发明提出一种储存器,包括:
获取模块,用于获取目标数据;
储存区,包括至少一个静态随机存取储存器;
控制模块,用于将所述目标数据拆分成多个数据段,每个数据段的宽度小于或者等于所述静态随机存取储存器的宽度;
所述控制模块还用于,根据所述多个数据段的拆分顺序,将各个数据段依次存入所述储存区中的各个静态随机存取储存器中;
所述各个静态随机存取储存器顺序连接,每个所述静态随机存取储存器最多存储一个数据段。
第二方面,本发明提出一种数据处理方法,包括:
获取目标数据;
将所述目标数据存入储存区,所述储存区预先建立,所述储存区包括至少一个静态随机存取储存器;
所述将所述目标数据存入储存区包括:将所述目标数据拆分成多个数据段,每个数据段的宽度小于或者等于所述静态随机存取储存器的宽度;
以及,根据所述多个数据段的拆分顺序,将各个数据段依次存入所述储存区中的各个静态随机存取储存器中;
所述各个静态随机存取储存器顺序连接,每个所述静态随机存取储存器最多存储一个数据段。
第三方面,本发明提出一种数据处理装置,包括:储存模块和处理模块;
所述处理模块以用于:
获取目标数据;
以及,在所述储存模块中建立储存区,所述储存区包括至少一个静态随机存取储存模块;
以及,将所述目标数据拆分成多个数据段,每个数据段的宽度小于或者等于所述静态随机存取储存模块的宽度;
以及,根据所述多个数据段的拆分顺序,将各个数据段依次存入所述储存区中的各个静态随机存取储存模块中;
所述各个静态随机存取储存模块顺序连接,每个所述静态随机存取储存器最多存储一个数据段。
第四方面,本发明提出一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述的数据处理方法。
与现有技术相比,本发明方法将一个完整的数据拆分成几段,并且以多个串联的静态随机存取储存器对拆分出的各个数据段进行存取,以达到宽度小的静态随机存取储存器也能存储宽度较大的数据的目的。因此,本发明能够适用于不同宽度的数据,从而降低了数据处理准备工作的工作量,提升了工作效率。在一定程度上解决了面对不同规格的硬件和宽度长短不一的数据,需要分别编写数据处理程序而出现的麻烦和不便。
附图说明
图1为本发明方法实施例中的流程图;
图2为本发明方法实施例中将目标数据存入储存区的流程图;
图3为本发明实施例所提出的储存区的内部结构组成示意图;
图4为本发明实施例所提出的储存区中数据流向示意图;
图5为本发明实施例所提出的目标数据缓存一种流程图;
图6为本发明实施例所提出的目标数据缓存又一种流程图;
图7为本发明实施例所提出的储存器的结构示意图;
图8为本发明实施例所提出的数据处理装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施例作进一步地详细描述。显然,所描述的实施例仅仅是本发明一个实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
此处所称的“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含的包括一个或者更多个该特征。而且,术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明实施例能够以除了在这里图示或描述以外的顺序实施。此外,术语“包括”和“具有”/“为”以及他们/其的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元/模块的过程、方法、系统/装置、产品或设备不必限于清楚地列出的那些步骤或单元/模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元/模块。
下面介绍本发明提供的一种数据处理方法的示例性流程。图1是本发明实施例提供的一种数据处理方法的流程示意图,本说明书提供了如实施例或流程图所示的方法或者流程操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多执行顺序中的一种方式,不代表唯一的执行顺序,在实际执行时,可以按照实施例或者附图所示的方法或者流程顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
首先,对本发明提供的一种数据处理方法进行具体介绍。如图1所示,该方法包括:
S100:获取目标数据。
具体的,本发明方法中的目标数据是指,在为硬件项目编写软件程序时,需要进行缓冲的任意数据。当然,本发明方法也不只针对于硬件项目编写软件程序时的数据缓冲。在其他应用领域具有与本发明背景技术中同样的技术问题时,也可以采用本发明方法对数据进行缓冲。此时,上述的目标数据则为需要进行缓冲的任意数据。
需要清楚的是,在本发明方法中,所述目标数据,可以是任意对象。其包括但不仅限于页面、脚本、图片、视频、文件、程序和代码等。在本发明中获取目标数据的方法,可以是现有技术中的任意方法,本发明对其不做限制。例如:可以从数据库中直接读取或者从其他缓存区中进行调用等。
在本发明的一个具体的实施例当中,获取目标数据的方法为,按照硬件项目编写软件程序时,根据数据的调用顺序,依次从数据库中读取对应的数据。
S200:将所述目标数据存入储存区,所述储存区预先建立。
具体的,如图3所示,储存区100预先建立是指,基于需要进行缓冲的目标数据,在具有多个静态随机存取储存器的硬件中建立上述储存区100。而具有多个静态随机存取储存器的硬件可以是市面上任意一种常见的硬件设备,对此不做限制。建立的储存区100至少能够容纳下一个数据,也即,储存区100的存储容量为至少一个数据。
当然,在本发明的其他实施例中,储存区100也可以不预先建立。而是在对每个数据进行缓存前,建立与之对应的储存区100。容易联想到的是,若预先建立储存区100,在编写软件程序,并调用时序上相邻的两个数据时,则可以按照数据的调用顺序,使得先后两个数据在不同的时间节点上使用同一个储存区100,进而可以减少建立储存区100的流程,从而节省数据缓存时间。
由上可知,在本发明方法中,每个进行缓存的数据均需要具有与其相适应的储存区100。也即,所述储存区100能够容纳下所述目标数据。例如:在S100步骤中获取目标数据之后,若没有与所述目标数据相适应的储存区100则建立该储存区100;若具有与所述目标数据相适应的储存区100则可以不用再次建立与所述目标数据相对应的储存区100。
在本发明方法一个具体的实施例中,如图2所示,S200步骤中的将所述目标数据存入储存区包括:
S210:将所述目标数据拆分成多个数据段,而将目标数据拆分成多个数据段的主要目的就是为了能够将目标数据以数据段的形式存入串联的静态随机存取储存器当中,便于存储和后续拼接得到所述目标数据。因此,我们需要知道的是,在对所述目标数据进行拆分时,每个数据段的宽度需要小于或者等于所述静态随机存取储存器的宽度,以便于后续能够将拆分的数据段存入各个静态随机存取储存器当中。
由上可知,采用本发明方法所建立的所述储存区100包括至少一个静态随机存取储存器。容易联想到的是,若所述储存区100只有一个静态随机存取储存器,则所述储存区100所能够缓存数据的最大宽度等于一个静态随机存取储存器的宽度。若所述储存区100具有若干个静态随机存取储存器,则所述储存区100所能够缓存数据的最大宽度等于若干个静态随机存取储存器的宽度之和。因此,在本发明方法中,如图3所示,预先建立的所述储存区100具有n个静态随机存取储存器,其中n为大于等于1的正整数。在本实施例中各个静态随机存取储存器的数据存储容量相同。当然,在本发明的其他实施例中,基于硬件或者特殊的需求,各个静态随机存取储存器的数据存储容量也可以为不相同。
S220:根据所述多个数据段的拆分顺序,将各个数据段依次存入所述储存区中的各个静态随机存取储存器中。
具体的,按照数据段的拆分顺序存储各个数据段的目的就是为了在后续取出数据段时,能够按照存入的顺序对各个数据段进行拼接,从而得到正确的所述目标数据。在本发明方法其他的实施例中,若能够对各个数据段进行标记,则无需按照数据段的存入顺序对数据段进行存储,可以进行随机存储。例如:在数据段中编入物理地址,以用于后续确定数据段的拼接位置。
需要清楚的是,若我们后续采用存入的顺序对数据段进行拼接时,则需要保证储存区100中的各个静态随机存取储存器顺序连接,每个所述静态随机存取储存器最多存储一个数据段。也即,每一个静态随机存取储存器中只存储一个数据段,而静态随机存取储存器的对应顺序即为存入的数据段在目标数据中的顺序。在拼接时,按照静态随机存取储存器连接顺序取出数据段依次进行拼接即可正确得到所述目标数据。
同时,需要知道的是,在本发明方法中,为了保证储存区100的利用率最大化,在对所述目标数据进行拆分时,优选数据段的宽度等于静态随机存取储存器的宽度。也即,假如:将目标数据拆分出n个数据段,则前n-1个数据段的宽度等于静态随机存取储存器的宽度;第n个数据段的宽度等于或者小于静态随机存取储存器的宽度。其中,n为大于等于1的正整数。
容易理解的是,在上述实施例的基础上,为了进一步的提升储存区100的利用率,在本发明一个具体的实施例当中,各个数据段与各个静态随机存取储存器为一一对应的关系。
需要清楚的是,上述的储存区100,其根据在硬件项目编写软件程序所需要调用的目标数据宽度进行预先建立。因此,若预先建立的所述储存区100只能够容纳一个目标数据时,则在后续使用过程中,该储存区100只能用于缓存数据宽度等于或者小于所述目标数据宽度的其他数据。
因此,在本发明方法的一个实施例中,为了使得储存区100能够用于缓存待程序调用的所有数据,可以按照所有数据中数据宽度最大的数据建立所述储存区100。也即,所述储存区100能够在不同的时间节点上,顺序缓存所有的数据。在本发明方法的另一个实施例中,也可以预先为不同数据宽度的数据,建立对应的储存区100。也即,每个储存区100用于缓存同一数据宽度的数据,且各个储存区100之间所缓存数据的数据宽度各不相同。
如图1和图2所示,所述将所述目标数据存入储存区100(也即将各个数据段依次存入所述储存区中的各个静态随机存取储存器中)之后,所述方法还包括,S300:若接收到目标数据输出指令,则获取与所述目标数据相对应的各个数据段,基于各个数据段得到所述目标数据,以将所述目标数据输出所述储存区。
由此可知,本发明上述实施例所提供的方法均可以适用于,在为硬件项目编写软件程序时,对不同宽度的数据进行缓冲。本发明方法将一个完整的数据拆分成几段来进行存取,以达到宽度小的静态随机存取储存器也能存储宽度较大的数据的目的。因此,本发明能够适用于不同宽度的数据,从而降低了数据处理准备工作的工作量,提升了工作效率。在一定程度上解决了面对不同规格的硬件和宽度长短不一的数据,需要分别编写数据处理程序而出现的麻烦和不便。
需要清楚的是,在本发明方法中,所建立的储存区100可以用于同时存储多个数据。若所述储存区100能够同时存储多个数据时,为了防止位于储存区100中的数据被覆盖或者被错误的读取。在本发明方法一个具体的实施例当中,在S220步骤中将各个数据段依次存入所述储存区100中的各个静态随机存取储存器中之后,所述方法还包括:获取第一指针和第二指针,并根据所述第一指针和所述第二指针分别指向的存储地址之间的数据个数,获取所述储存区100的存储状态,所述储存区100的状态包括:储存区100空置和储存区100存满。若所述储存区100存满,则停止向所述储存区100中存入数据;若所述储存区100空置,则停止从所述储存区100中读取数据。从而能够有效的防止储存区100中的数据被覆盖或者被错误的读取。
具体的,所述第一指针指向的存储地址存储所述储存区100中存入顺序最早的数据,所述第二指针指向的存储地址存储所述储存区100中存入顺序最晚的数据。例如:如图4所示,图4为储存区100中数据流向示意图。当所述储存区100之中能够同时存储x个数据,其中,x为大于等于1的正整数。其中,数据1为最先进入储存区100的数据,此时,第一指针指向数据1;数据x为最后进入储存区100的数据,此时,第二指针指向数据x。
进一步的,在本发明方法中,获取第一指针和第二指针,包括:若所述储存区输出第一数据,则使用所述第一指针指向第二数据,所述第二数据与所述第一数据在所述储存区中的存入顺序相邻,且晚于所述第一数据;若所述储存区输入第三数据,则使用所述第二指针指向第四数据,所述第四数据与所述第三数据在所述储存区中的存入顺序相邻,且早于所述第三数据。具体的,如图4所示,若数据1(即第一数据)输出储存区100,则数据2(即第二数据)变为最早存入所述储存区100中的数据,此时,第一指针指向数据2;若数据x+1(即第三数据)输入储存区100,则数据x+1(即第四数据)变为最晚存入所述储存区100中的数据,此时,第二指针指向数据x+1。
进一步的,据所述第一指针和所述第二指针分别指向的存储地址之间的数据个数,获取所述储存区100的状态,包括:若所述第一指针和所述第二指针分别指向的存储地址之间的数据个数为0,则判定所述储存区100空置;若所述第一指针和所述第二指针分别指向的存储地址之间的数据个数等于所述储存区100的容纳空间,则判定所述储存区100存满。如图4所示,假设储存区100能够容纳x个数据,其中,x为大于等于1的正整数,若所述第一指针和所述第二指针分别指向的存储地址之间的数据个数等于x个数据,则判定所述储存区100存满;若所述第一指针和所述第二指针分别指向的存储地址相同,则判定所述储存区100空置。
需要清楚的是,在本发明的其他实施例中,若所述储存区100用于同时存储数据宽度不同的数据,则在判定所述储存区100是否存满时,需要通过所述储存区100的剩余储存容量以及需要输入所述储存区100的目标数据宽度,来判定所述储存区100是否存满。
具体的,如图4所示,若数据x+1需要输入所述储存区100,且所述储存区100中已经具有x个数据,其中,x为大于等于1的正整数,则将所述第一指针和所述第二指针分别指向的存储地址之间的差距换算为所述储存区100占用的存储容量。并利用所述储存区100总的存储容量减去所述储存区100占用的存储容量得到剩余存储容量。若剩余存储容量小于数据x+1的数据宽度,则判定所述储存区100存满。
在本发明方法的一个实施例中,如图5所示,在S100步骤中获取目标数据之后,所述方法还包括:将所述目标数据,写入入缓冲区200,所述入缓冲区200预先建立。需要清楚的是,在本发明方法中,可以将入缓冲区200与储存区100建立在同一储存硬件当中,也可以将其分开建立在不同的储存硬件当中。本发明方法中在所述入缓冲区200将目标数据拆分成为n个数据段,然后再将n个数据段依次输入所述储存区100的n个静态随机存取储存器当中。
在本发明的另一个实施例中,如图5所示,在S300步骤中以将所述目标数据输出所述储存区,包括:将所述储存区100输出的目标数据存入所述出缓冲区300,所述出缓冲区300预先建立。同上所述,在本发明方法中,可以将出缓冲区300、入缓冲区200与储存区100建立在同一储存硬件当中,也可以将其分开建立在不同的储存硬件当中。
由上可知,在本发明方法中,储存区100、入缓冲区200和出缓冲区300均需要至少能够存储一个数据。在本发明方法中对储存区100、入缓冲区200和出缓冲区300所能够储存数据的个数不做任何限制。
在本发明方法一个优选的实施例当中,如图6所示,所述目标数据包括第一目标数据和第二目标数据。所述入缓冲区200能够存储上述两个目标数据。在S210步骤中将所述目标数据拆分成多个数据段,包括:将所述第一目标数据拆分成多个第一数据段,以及将所述第二目标数据拆分成多个第二数据段。具体的,所述储存区100具有与所述第一目标数据对应的第一储存区101,与所述第二目标数据对应的第二储存区102。在S220步骤中将各个数据段依次存入所述储存区中的各个静态随机存取储存器中,包括:将各个第一数据段存入所述第一储存区101,并将各个第二数据段存入所述第二储存区102。
进一步的,当需要对多个目标数据进行缓存时,首先将两个目标数据,即上文中的第一目标数据和第二目标数据依次按照编程待调用的顺序输入入缓冲区200。本发明方法采用先进先出原则,即先输入入缓冲区200的数据先从出缓冲区300输出。也即,在编程中,需要先调用的数据优先输入并优先输出。
进一步的,在所述入缓冲区200中对第一目标数据和第二目标数据进行拆分的时序是可以多样的,可以按照输入顺序依次拆分,也可以同时拆分。在本发明方法中优选同时对第一目标数据和第二目标数据进行拆分,并且同时将第一目标数据和第二目标数据输入储存区100,这样有利于节省数据缓存时间。同理,在本发明方法中,优选同时将第一目标数据和第二目标数据从储存区100输入出缓冲区300。
需要清楚的是,在一般情况下,储存区100在同一时间节点下,其只能单独的进行写入或者读取操作。也即,在同一时间节点下,若从储存区100中读取数据,则不能向储存区100中写入数据;若向储存区100中写入数据,则不能从储存区100中读取数据。因此,本发明方法通过预先建立入缓冲区200和出缓冲区300,并且采用两个数据同时输入储存区100和同时输出储存区100的方式。使得在每个读写周期内,均能够写入或者读取数据,从而形成数据流通通路。
在本发明方法的另一个实施例中,S220步骤中将各个数据段依次存入所述储存区100中的各个静态随机存取储存器中之后,所述方法还包括:
若所述储存区100无写入操作,且所述储存区100中存储有目标数据,则获取与所述目标数据相对应的各个数据段,基于各个数据段得到所述目标数据,以将所述目标数据输出所述储存区100。也即,将储存区100中的目标数据输入出缓冲区300。
同时,容易联想到的是,为了防止入缓冲区200和出缓冲区300中的数据被覆盖或者误读。也可以通过上述指针的方式判定是否存满或者空置,在此不做赘述。
需要清楚的是,若在本发明方法中,不预先建立出缓冲区300,则上文中提到的目标数据输出指令,可以是编程时发出的数据调用指令。若在本发明方法中,预先建立出缓冲区300,则上文中提到的目标数据输出指令,可以是所述出缓冲区300未存满的指令。所述出缓冲区300未存满是指,所述出缓冲区300还能够存入数据。
通过上述可知,本发明方法能够将一个完整的数据拆分成几段,并且以多个串联的静态随机存取储存器对拆分出的各个数据段进行存取,以达到宽度小的静态随机存取储存器也能存储宽度较大的数据的目的。因此,本发明能够适用于不同宽度的数据,从而降低了数据处理准备工作的工作量,提升了工作效率。在一定程度上解决了面对不同规格的硬件和宽度长短不一的数据,需要分别编写数据处理程序而出现的麻烦和不便。同时,本发明方法还可以采用双进双出的数据缓存模式,使得在储存区的每个读写周期当中,外界均可以读取或者写入数据。
下面,继续对本发明提供的储存器进行具体介绍。
如图7所示,本发明实施例提供一种储存器400,包括:
获取模块401,用于获取目标数据;
储存区100,包括至少一个静态随机存取储存器,各个静态随机存取储存器的数据存储容量相同;
控制模块402,用于将所述目标数据拆分成多个数据段,每个数据段的宽度小于或者等于所述静态随机存取储存器的宽度;
所述控制模块402还用于,根据所述多个数据段的拆分顺序,将各个数据段依次存入所述储存区100中的各个静态随机存取储存器中;
所述各个静态随机存取储存器顺序连接,每个所述静态随机存取储存器最多存储一个数据段。
在本发明的另一个实施例中,所述控制模块402还用于,若接收到目标数据输出指令,则获取与所述目标数据相对应的各个数据段,基于各个数据段得到所述目标数据,以将所述目标数据输出所述储存区100。需要知道的是,所述目标数据输出指令可以是自外界发来的控制指令,也可以是本发明储存器内的某一模块发出的指令。例如:若外界需要调用位于所述储存区100内部的数据时,则外界向所述控制模块402发出数据调用指令,则控制模块402将该数据从所述储存区100中输出。若在所述储存器内部,需要将所述储存区100中的数据输入另一储存区100域,则可以以另一储存区域(例如:下文中的出缓冲区300)未存满为数据调用指令。本实施例中的外界是指,不属于本发明储存器的,并且可以发送数据调用指令的任意实体或者程序,例如:其可以是程序、接口或者芯片等。
在本发明一个可能的实施例中,如图7所示,其还包括:
入缓冲区200,用于写入所述获取模块401获取的目标数据;其中,所述目标数据包括第一目标数据和第二目标数据;
所述控制模块402还用于将所述第一目标数据拆分成多个第一数据段,以及将所述第二目标数据拆分成多个第二数据段。
所述储存区100包括:与所述第一目标数据对应的第一储存区100,与所述第二目标数据对应的第二储存区100;
其中,所述控制模块402还用于将所各个第一数据段存入所述第一储存区100,并将各个第二数据段存入所述第二储存区100。
在本发明一个可能的实施例中,如图7所示,其还包括:
出缓冲区300,用于储存所述储存区100输出的目标数据;
所述控制模块402还用于,将所述储存区100输出的目标数据存入所述出缓冲区300。
所述控制模块402还用于,若所述储存区100无写入操作,且所述储存区100中存储有目标数据,则获取与所述目标数据相对应的各个数据段,基于各个数据段得到所述目标数据,以将所述目标数据输出所述储存区100。
在本发明的另一个实施例中,所述控制模块402还用于,获取第一指针和第二指针,并根据所述第一指针和所述第二指针分别指向的存储地址之间的数据个数,获取所述储存区100的状态;
所述第一指针指向的存储地址存储所述储存区100中存入顺序最早的数据,所述第二指针指向的存储地址存储所述储存区100中存入顺序最晚的数据;所述储存区100的状态包括:储存区100空置和储存区100存满。
在本发明的另一个实施例中,所述控制模块402还用于,若所述储存区100输出第一数据,则使用所述第一指针指向第二数据,所述第二数据与所述第一数据在所述储存区100中的存入顺序相邻,且晚于所述第一数据;
若所述储存区100输入第三数据,则使用所述第二指针指向第四数据,所述第四数据与所述第三数据在所述储存区100中的存入顺序相邻,且早于所述第三数据。
在本发明的另一个实施例中,所述控制模块402还用于,若所述第一指针和所述第二指针分别指向的存储地址之间的数据个数为0,则判定所述储存区100空置;
若所述第一指针和所述第二指针分别指向的存储地址之间的数据个数等于所述储存区100的容纳空间,则判定所述储存区100存满。
在本发明的另一个实施例中,所述控制模块402还用于,若所述储存区100存满,则停止向所述储存区100中存入数据;
若所述储存区100空置,则停止从所述储存区100中读取数据。
通过上述可知,本发明实施例所提供的储存器能够将一个完整的数据拆分成几段,并且以多个串联的静态随机存取储存器对拆分出的各个数据段进行存取,以达到宽度小的静态随机存取储存器也能存储宽度较大的数据的目的。因此,本发明的储存器能够适用于不同宽度的数据,从而降低了数据处理准备工作的工作量,提升了工作效率。在一定程度上解决了面对不同规格的硬件和宽度长短不一的数据,需要分别编写数据处理程序而出现的麻烦和不便。
下面,继续对本发明提供的数据处理装置进行具体介绍。
如图8所示,本发明的实施例中提供一种数据处理装置500,包括:储存模块501和处理模块502。
需要知道的是,在本发明的数据处理装置500中,储存模块501可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘等。处理模块502可以是市面上常用的处理器,包括中央处理器(Central ProcessingUnit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现场可编程门阵列(Field-ProgrammableGate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明的数据处理装置500中
所述处理模块502以用于:
获取目标数据;
以及,在所述储存模块中建立储存区,所述储存区包括至少一个静态随机存取储存模块,各个静态随机存取储存模块的数据存储容量相同;
以及,将所述目标数据拆分成多个数据段,每个数据段的宽度小于或者等于所述静态随机存取储存模块的宽度;
以及,根据所述多个数据段的拆分顺序,将各个数据段依次存入所述储存区中的各个静态随机存取储存模块中;
所述各个静态随机存取储存模块顺序连接,每个所述静态随机存取储存器最多存储一个数据段。
在本发明的一个可能的实施例中,所述处理模块502还用于,若接收到目标数据输出指令,则获取与所述目标数据相对应的各个数据段,基于各个数据段得到所述目标数据,以将所述目标数据输出所述储存区。
在本发明的一个可能的实施例中,所述处理模块502还用于,在所述储存模块501中建立入缓冲区,将处理模块502获取的所述目标数据,写入入缓冲区,所述目标数据包括第一目标数据和第二目标数据;
以及,将所述第一目标数据拆分成多个第一数据段,以及将所述第二目标数据拆分成多个第二数据段。
在本发明的一个可能的实施例中,所述处理模块502还用于,将所述储存区拆分出与所述第一目标数据对应的第一储存区,与所述第二目标数据对应的第二储存区;
以及,将所各个第一数据段存入所述第一储存区,并将各个第二数据段存入所述第二储存区。
在本发明的一个可能的实施例中,所述处理模块502还用于,
在所述储存模块501中建立出缓冲区;
以及,将所述储存区输出的目标数据存入所述出缓冲区。
在本发明的一个可能的实施例中,所述处理模块502还用于,若所述储存区无写入操作,且所述储存区中存储有目标数据,则获取与所述目标数据相对应的各个数据段,基于各个数据段得到所述目标数据,以将所述目标数据输出所述储存区。
在本发明的一个可能的实施例中,所述处理模块502还用于,获取第一指针和第二指针,并根据所述第一指针和所述第二指针分别指向的存储地址之间的数据个数,获取所述储存区的状态;
所述第一指针指向的存储地址存储所述储存区中存入顺序最早的数据,所述第二指针指向的存储地址存储所述储存区中存入顺序最晚的数据;
所述储存区的状态包括:储存区空置和储存区存满。
在本发明的一个可能的实施例中,所述处理模块502还用于,若所述储存区输出第一数据,则使用所述第一指针指向第二数据,所述第二数据与所述第一数据在所述储存区中的存入顺序相邻,且晚于所述第一数据;
若所述储存区输入第三数据,则使用所述第二指针指向第四数据,所述第四数据与所述第三数据在所述储存区中的存入顺序相邻,且早于所述第三数据。
在本发明的一个可能的实施例中,所述处理模块502还用于,若所述第一指针和所述第二指针分别指向的存储地址之间的数据个数为0,则判定所述储存区空置;
若所述第一指针和所述第二指针分别指向的存储地址之间的数据个数等于所述储存区的容纳空间,则判定所述储存区存满。
在本发明的一个可能的实施例中,所述处理模块502还用于,
若所述储存区存满,则停止向所述储存区中存入数据;
若所述储存区空置,则停止从所述储存区中读取数据。
通过上述可知,本发明的数据处理装置能够将一个完整的数据拆分成几段,并且以多个串联的静态随机存取储存器对拆分出的各个数据段进行存取,以达到宽度小的静态随机存取储存器也能存储宽度较大的数据的目的。因此,本发明的数据处理装置能够适用于不同宽度的数据,从而降低了数据处理准备工作的工作量,提升了工作效率。在一定程度上解决了面对不同规格的硬件和宽度长短不一的数据,需要分别编写数据处理程序而出现的麻烦和不便。
最后,对本发明提供的计算机可读存储介质进行具体介绍。
具体的,本发明的实施例中提供一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现本发明说明书中任意一种实施例所提供的数据处理方法。
需要清楚的是,本发明中的计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
- 一种信息处理方法及装置、一种计算设备及存储介质
- 一种数据处理方法及装置、一种计算设备及存储介质
- 一种访问请求处理方法及装置、一种计算设备及存储介质
- 一种将类和数据库映射的方法、装置及存储介质
- 一种缓存资源处理方法、装置以及计算机可读存储介质
- 流程处理方法和数据处理方法、装置、设备及存储介质
- 数据处理方法和数据处理装置、电子设备、存储介质