一种报文数据缓存方法及装置与流程

文档序号:16068096发布日期:2018-11-24 12:52阅读:239来源:国知局

本发明涉及数据通信技术领域,具体而言,涉及一种报文数据缓存方法及装置。

背景技术

随着fpga(field-programmablegatearray,现场可编程门阵列)板性能的增强和资源数量的增多,fpga板需要越来越大的存储空间存储数据信息,由于fpga板体积的限制和板上存储容量的限制,迫使fpga板要通过外部挂载存储装置的方式来扩充存储空间,现在,人们大多数采用的外挂存储装置通常为ddr(doubledatarate,双倍速率同步动态随机存储器)。然而,在实践中发现,当突发请求存储小数据量的报文数据时,基于ddr的读写操作特性,在每次写入报文数据时,都需要耗费一定的时间进行存储地址分配准备,导致存储地址分配的带宽利用率低,存储速度慢。



技术实现要素:

鉴于上述问题,本发明提供了一种报文数据缓存方法及装置,能够提高存储地址分配方案的带宽利用率,进而提高缓存速度。

为了实现上述目的,本发明采用如下的技术方案:

本发明第一方面公开了一种报文数据缓存方法,包括:

在接收到突发写入指令时,识别接收到的报文数据的报文类型,并判断所述报文类型对应的缓存空间的当前使用情况是否满足预设容量;

如果所述缓存空间的当前使用情况满足所述预设容量,生成与所述报文数据相匹配的报文描述符,其中,所述报文描述符包括所述缓存物理首地址以及所述报文数据的报文长度;

将所述报文描述符存储至内置存储块中,并以所述缓存物理首地址为依据将所述报文数据存储至外置存储块的报文存储区中。

作为一种可选的实施方式,在本发明第一方面中,所述方法还包括:

如果所述缓存空间的当前使用情况不满足所述预设容量,丢弃所述报文数据,并提示存储已满。

作为一种可选的实施方式,在本发明第一方面中,在所述以所述缓存物理首地址为依据将所述报文数据存储至外置存储块的报文存储区中之后,所述方法还包括:

判断所述报文长度是否超过长度阈值;

如果所述报文长度超过所述长度阈值,将所述报文描述符存储至外置存储块的描述符存储区中。

作为一种可选的实施方式,在本发明第一方面中,所述将所述报文描述符存储至外置存储块的描述符存储区中,包括:

将所述报文描述符转化为预设长度的报文格式数据,并将所述报文格式数据存储至所述外置存储块的描述符存储区中。

作为一种可选的实施方式,在本发明第一方面中,在所述将所述报文描述符存储至外置存储块的描述符存储区中之后,所述方法还包括:

判断是否接收到突发读取指令,其中,所述突发读取指令包括待读报文类型的数据;

如果接收到所述突发读取指令,从所述描述符存储区以及内置存储块中读取与所述待读报文类型对应的所有目标报文描述符,并从所述报文存储区读取与每个所述目标报文描述符对应的目标报文数据。

本发明第二方面公开一种报文数据缓存装置,包括:

识别判断模块,用于在接收到突发写入指令时,识别接收到的报文数据的报文类型,并判断所述报文类型对应的缓存空间的当前使用情况是否满足预设容量;

描述符生成模块,用于在判断出当所述缓存空间的当前使用情况满足所述预设容量,生成与所述报文数据相匹配的报文描述符,其中,所述报文描述符包括所述缓存物理首地址以及所述报文数据的报文长度;

存储模块,用于将所述报文描述符存储至内置存储块中,并以所述缓存物理首地址为依据将所述报文数据存储至外置存储块的报文存储区中。

作为一种可选的实施方式,在本发明第二方面中,还包括:

提示模块,用于在判断出所述缓存空间的当前使用情况不满足所述预设容量时,丢弃所述报文数据,并提示存储已满。

作为一种可选的实施方式,在本发明第二方面中,所述识别判断模块,还用于在所述以所述缓存物理首地址为依据将所述报文数据存储至外置存储块的报文存储区中之后,判断所述报文长度是否超过长度阈值;

所述存储模块,还用于当判断出所述报文长度超过所述长度阈值时,将所述报文描述符存储至外置存储块的描述符存储区中。

本发明第三方面公开一种存储设备,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述存储设备执行第一方面公开的部分或者全部所述的报文数据缓存方法。

本发明第四方面公开一种计算机可读存储介质,其存储有第三方面所述的存储设备中所使用的所述计算机程序。

根据本发明提供的报文数据缓存方法及装置,在接收到突发写入指令时,先识别接收到的报文数据的报文类型,并判断报文类型对应的缓存空间的当前使用情况是否满足预设容量;如果缓存空间的当前使用情况满足预设容量,表明该报文类型所分配的存储空间未存满,则生成与报文数据相匹配的报文描述符,其中该报文描述符包括缓存物理首地址以及报文数据的报文长度;最后,将报文描述符存储至内置存储块中,并以该缓存物理首地址为依据将报文数据存储至外置存储块的报文存储区中,减少了激活相应存储块的准备时间,同时不同报文类型的数据均存储于与其报文类型相对应的内置存储块的数据块中,有效提高了存储地址分配方案的带宽利用率,进而提高了缓存速度。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明范围的限定。

图1是本发明实施例一提供的一种报文数据缓存方法的流程示意图;

图2是本发明实施例二提供的一种报文数据缓存方法的流程示意图;

图3是本发明实施例三提供的一种报文数据缓存装置的结构示意图;

图4是本发明实施例四提供的一种报文数据缓存装置的结构示意图。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

针对现有技术中的问题,本发明提供了一种报文数据缓存方法及装置;该技术可以在接收到突发写入指令时,先识别接收到的报文数据的报文类型,并判断报文类型对应的缓存空间的当前使用情况是否满足预设容量;如果缓存空间的当前使用情况满足预设容量,表明该报文类型所分配的存储空间未存满,则生成与报文数据相匹配的报文描述符,其中该报文描述符包括缓存物理首地址以及报文数据的报文长度;最后,将报文描述符存储至内置存储块中,并以该缓存物理首地址为依据将报文数据存储至外置存储块的报文存储区中,减少了激活相应存储块的准备时间,同时不同报文类型的数据均存储于与其报文类型相对应的内置存储块的数据块中,有效提高了存储地址分配方案的带宽利用率,进而提高了缓存速度。并且,该技术可以采用相关的软件或硬件实现,下面通过实施例进行描述。

实施例1

请参阅图1,图1是本发明实施例一提供的一种报文数据缓存方法的流程示意图。其中,如图1所示,该报文数据缓存方法可以包括以下步骤:

s101、在接收到突发写入指令时,识别接收到的报文数据的报文类型。本发明所提供的报文数据缓存方法应用于fpga板的数据存储。其中,外置存储块为fpga板的外挂存储块,内置存储块为fpga板内部的存储块。

本发明实施例中,可以进一步将外置存储块分为报文存储区和描述符存储区。其中,报文存储区可以根据不同的报文类型,再进一步划分为多个存储区,每个报文类型对应一个存储区。报文存储区用于存储报文数据;描述符存储区用于存储报文数据在该报文存储区中存储的物理首地址和报文数据的报文长度。

本发明实施例中,该外置存储块可以为ddrsdram(doubledataratesdram,双倍速率的同步动态随机存取内存)。则该外置存储块的报文存储区根据不同的报文类型,再进一步划分为多个存储区的步骤包括:

确定报文存储区需要缓存的报文数据的报文类型总数;

将ddrsdram的八个存储块(存储块0~存储块7)中的存储块0~存储块6划分为报文存储区,将存储块7划分为描述符存储区;

对存储块0~存储块6中的每个存储块再进行进一步划分,得到多个子存储块;其中,每个子存储块对应存储一种数据类型的报文数据,该子存储块的数量等于报文类型总数。

在上述实施方式中,举例来说,假如fpga板的缓存数据端口有n个,每个端口需要缓存的报文数据有m种报文类型,则报文类型总数为n*m种。进而,对存储块0~存储块6中的每个存储块再进行进一步划分,得到多个子存储块的数量为n*m。

s102、判断报文类型对应的缓存空间的当前使用情况是否满足预设容量,如果否,执行步骤s103~步骤s104;如果是,结束本流程。

本发明实施例中,该缓存空间的当前使用情况可以为当前报文类型对应的已有缓存数据的大小,本发明实施例不作限定。假如划分给某一报文类型的存储容量为10mb(即10240kb)时,报文最大长度为4kb,该预设容量可以设为预设容量阈值,即可以设置为10230kb,当接收到突发写入指令之后,检测到该报文类型对应的缓存空间的当前使用量小于等于10230bytes时,则表明此时该报文类型对应的缓存空间的当前使用情况满足预设容量,则执行步骤s103~步骤s105。

本发明实施例中,该预设容量为用户根据实际的存储器容量和实际的需求容量,来设置容量值。举例来说,当实际的存储器容量为512m,某一报文类型对应的实际的需求容量为64m时,接收到突发写入指令之后,检测到该某一报文类型对应的已有缓存数据的大小小于64m时,则表明此时该报文类型对应的缓存空间的当前使用情况满足预设容量,则执行步骤s103~步骤s105。

s103、生成与报文数据相匹配的报文描述符,其中,报文描述符包括缓存物理首地址以及报文数据的报文长度。

本发明实施例中,生成与报文数据相匹配的报文描述符的过程即为待存储的报文数据进行缓存地址分配的过程。在为待存储的报文数据进行缓存地址分配完成后,得到与该报文数据对应的报文描述符。此外本发明所提供的地址分配基本原则为:同一个报文数据,存储块不变,行地址不变,列地址递加;不同的报文数据,存储块顺次轮转,行地址加步径长度以及行地址对应的写入指针。

本发明实施例中,该缓存物理首地址包括行地址和列地址。由于ddrsdram的各个存储块之间相互独立,所以通过实施本发明实施例提供的报文数据缓存方法,可以保证报文数据在进行突发写入操作时,通过各个存储块之间的轮转背靠背存储方法,能够减少各个存储块之间的切换,及进而实现各个存储块之间的流水式存储需要缓存的报文数据,减少了在采用单存储块进行存储的方法时所耗费的其他必要的准备时间;另外,每个需要缓存的报文数据将生成其所对应的一个报文描述符,该报文描述符包括其所对应的报文数据的缓存物理首地址以及该报文数据的报文长度等信息,本发明不作限定。

s104、将报文描述符存储至内置存储块中,并以缓存物理首地址为依据将报文数据存储至外置存储块的报文存储区中。

本发明实施例中,当生成与报文数据相匹配的报文描述符之后,可以将该报文描述符暂存于内置存储块中。

本发明实施例中,不仅可以进行报文数据的突发写入和突发读取操作,还可以进行超长报文数据的缓存操作;还可以进行超长报文数据的缓存操作,具体的,其读取超长报文数据的步骤如下:

接收读取激活指令,其中,该激活读取指令包括需要激活的存储块地址和行地址;

根据读取激活指令,激活存储块地址和行地址对应的存储块;

等待第一预设时长,接收读取指令,该读取指令包括列地址;

等待第二预设时长,读取该存储块中列地址对应的报文数据;

在该报文数据读取完成后,重置定时器。

具体的,其写入超长报文数据的步骤如下:

接收写入激活指令,该写入激活指令包括需要激活的存储块地址和行地址;

根据写入激活指令,激活存储块地址和行地址对应的存储块;

等待第三预设时长,接收写入指令,该写入指令包括列地址;

等待第四预设时长,根据行地址和列地址在该存储块中写入报文数据;

在该报文数据写入完成后,再第五预设时长之后重置定时器。

本发明实施例中,通过对外置存储块的存储空间进行划分,然后根据报文类型对报文数据进行分类缓存,减少了不同报文类型的报文数据之间的干扰。

本发明实施例中,还可以将其存储状态实时上报给用户,供用户调度报文读写。

可见,实施如图1所描述的报文数据缓存方法,不仅减少了激活相应存储块的准备时间,同时不同报文类型的数据均存储于与其报文类型相对应的内置存储块的数据块中,而且有效提高了存储地址分配方案的带宽利用率,进而提高了缓存速度。

实施例2

请参阅图2,图2是本发明实施例二提供的一种报文数据缓存方法的流程示意图。其中,如图2所示,该报文数据缓存方法可以包括以下步骤:

s201、在接收到突发写入指令时,识别接收到的报文数据的报文类型。

s202、判断报文类型对应的缓存空间的当前使用情况是否满足预设容量,如果否,执行步骤s204~步骤s206;如果是,执行步骤s203。

s203、丢弃报文数据,并提示存储已满。

本发明实施例中,用户可以设置每个报文类型对应的缓存空间的预设容量,当判断出报文类型对应的缓存空间的缓存空间的当前使用情况不满足预设容量时,自动丢弃报文数据。

本发明实施例中,该预设容量为用户根据实际的存储器容量和实际的需求容量,来设置容量值。若当前报文数据在缓存的过程中,其报文类型对应的缓存空间的缓存空间的当前使用情况不满足预设容量,则先将该报文缓存完,在下一个报文数据到来时,丢弃报文数据,并提示向用户提示存储已满。

s204、生成与报文数据相匹配的报文描述符,报文描述符包括缓存物理首地址以及报文数据的报文长度;

s205、将报文描述符存储至内置存储块中,并以缓存物理首地址为依据将报文数据存储至外置存储块的报文存储区中。

s206、判断报文长度是否超过长度阈值,如果报文长度超过长度阈值,执行步骤s207~步骤s208;如果报文长度不超过长度阈值时,结束本流程。

s207、将报文描述符存储至外置存储块的描述符存储区中。

本发明实施例中,该长度阈值可以设置为512bytes等,本发明实施例不作限定。

作为一种可选的实施方式,将报文描述符存储至外置存储块的描述符存储区中,包括以下步骤:

将报文描述符转化为预设长度的报文格式数据,并将报文格式数据存储至外置存储块的描述符存储区中。

本发明实施例中,当长度阈值设置为512bytes时,当判断出报文数据的报文长度超过512bytes时,将暂存于内置存储块的报文描述符以64bytes的报文格式数据存储外置存储块的描述符存储区。

s208、判断是否接收到突发读取指令,该突发读取指令包括待读报文类型的数据,如果接收到突发读取指令,执行步骤s209;如果未接收到突发读取指令,结束本流程。

本发明实施例中,报文数据缓存装置可以根据接收到的指令来判断当前所需要执行报文数据的突发读操作还是报文数据的突发写操作。

s209、从描述符存储区以及内置存储块中读取与待读报文类型对应的所有目标报文描述符,并从报文存储区读取与每个目标报文描述符对应的目标报文数据。

本发明实施例中,在接收到突发读取指令之后,如果待读报文类型的数据长度大于预设读取长度阈值(如512bytes)时,每次至少读出预设读取长度阈值的报文完整数据包,当待读报文类型的数据长度小于或者等于预设读取长度阈值(如512bytes)时,则一次性全部读取出所有所需读取的数据。

本发明实施例中,当进行报文数据突发读操作时,首先根据所读的报文类型检测外置存储块的描述符存储区中是否存有相应的报文描述符,若有,则先读出报文描述符,再根据报文描述符去读外置存储块的报文存储区中所缓存的报文数据;若没有,则检测内置存储块中是否存有相应的报文描述符,若有,根据报文描述符去读外置存储块的报文存储区中所缓存的报文数据,若没有,则返回读空指示,提示用户不要再读该类型报文。

可见,实施图2所提供的报文数据缓存方法,即采用数据块的流水式存储的方式,通过多个存储块的共同协作,实现了多个存储块之间有效读写的背靠背操作,能够减少有效读写之外的准备时间,从而有效提高了读写有效带宽。每个报文有个报文描述符,用于存放报文存储在外置存储块中的物理首地址、报文长度等信息,报文描述符先暂存到内置存储块中。

实施例3

请参阅图3,图3是本发明实施例三提供的一种报文数据缓存装置的结构示意图。其中,如图3所示,该报文数据缓存装置包括:

识别判断模块301,用于在接收到突发写入指令时,识别接收到的报文数据的报文类型,并判断报文类型对应的缓存空间的当前使用情况是否满足预设容量.

描述符生成模块302,用于在识别判断模块301判断出缓存空间的当前使用情况满足预设容量,生成与报文数据相匹配的报文描述符,报文描述符包括缓存物理首地址以及报文数据的报文长度。

存储模块303,用于将报文描述符存储至内置存储块中,并以缓存物理首地址为依据将报文数据存储至外置存储块的报文存储区中。

可见,实施如图3所描述的报文数据缓存装置,不仅减少了激活相应存储块的准备时间,同时不同报文类型的数据均存储于与其报文类型相对应的内置存储块的数据块中,而且有效提高了存储地址分配方案的带宽利用率,进而提高了缓存速度。

实施例4

请参阅图4,图4是本发明实施例四提供的报文数据缓存装置的结构示意图。其中,图4所示的报文数据缓存装置是由图3所示的报文数据缓存装置进行优化得到的。如图4所示,该报文数据缓存装置还包括:

提示模块304,用于在识别判断模块301判断出缓存空间的当前使用情况不满足预设容量时,丢弃报文数据,并提示存储已满。

本发明实施例中,识别判断模块301,还用于在以缓存物理首地址为依据将报文数据存储至外置存储块的报文存储区中之后,判断报文长度是否超过长度阈值。

存储模块303,还用于当判断出报文长度超过长度阈值时,将报文描述符存储至外置存储块的描述符存储区中。

可见,实施图4所提供的报文数据缓存装置,即采用数据块的流水式存储的方式,通过多个存储块的共同协作,实现了多个存储块之间有效读写的背靠背操作,能够减少有效读写之外的准备时间,从而有效提高了读写有效带宽。每个报文有个报文描述符,用于存放报文存储在外置存储块中的物理首地址、报文长度等信息,报文描述符先暂存到内置存储块中。

此外,本发明还提供了一种存储设备。该存储设备包括存储器和处理器,存储器可用于存储计算机程序,处理器通过运行所述计算机程序,从而使该存储设备执行上述方法或者上述报文数据缓存装置中的各个模块的功能。

存储器可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据移动终端的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

本实施例还提供了一种计算机存储介质,用于储存上述存储设备中使用的计算机程序。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1