一种现场可编程门阵列fpga及数据存储方法_4

文档序号:9399131阅读:来源:国知局
就是说,从动态RAM中需要读取10次当前流级统计值,并要将更新后的当前流级统计值分10次写入到动态RAM中。
[0127]本发明实施例中,为了提高流级统计的准确度,RAM读写调度模块6,还用于在将所有更新后的流级统计值连续写入动态RAM之后,将一级缓存中存储与任意一当前流级统计值对应相同数据流的第一流级统计值的缓存,及二级缓存中存储与任意一当前流级统计值对应相同数据流的第二流级统计值的缓存的数值均设置为O。
[0128]本发明实施例中,可选的,预设条件包括下述条件中的至少一个:
[0129]到达更新周期时间点、与第二流级统计模块对应的任意一缓存的位宽达到预设门限值、与与第一流级统计模块对应的所有缓存的数量达到预设门限值。
[0130]例如,针对数据流1,在更新周期时间点到达时,第一缓存中针对数据流I的流级统计值为流级统计值I,第二缓存中针对数据流I的流级统计值为流级统计值2,将流级统计值I和流级统计值2作为针对数据流I的流级总统计值,并根据流级总统计值对动态RAM中存储的针对数据报文的流级统计值进行更新。
[0131]本发明实施例中,第二缓存可以为FPGA中的BLOCK RAM或REGISTER等资源,也可以是FPGA片外的SRAM或者QDR(Quad Data Rate,4倍数据倍率)等其他静态RAM工艺的存储芯片。
[0132]参阅图3所示,本发明实施例还提出一种数据存储方法,该方法的流程如下:
[0133]步骤300:第一流级统计模块I在属于一级缓存的第一缓存中查找接收到的数据报文所属数据流的第一当前流级统计值,并根据第一当前流级统计值计算数据流的第一更新流级统计值;
[0134]步骤310:溢出判断模块2判断将第一更新流级统计值存储到第一缓存中时是否溢出,并在判断结果为否时,将第一更新流级统计值替换第一缓存中存储的第一当前流级统计值;
[0135]步骤320:第二流级统计模块3在溢出判断模块2的判断结果为是时,根据第一更新流级统计值计算第二更新流级统计值,并将第二更新流级统计值存储至属于二级缓存的第二缓存中;第一缓存的位宽小于第二缓存的位宽。
[0136]本发明实施例中,第一流级统计模块I根据第一当前流级统计值计算数据流的第一更新流级统计值时,可选的,可以采取如下方式:
[0137]将第一当前流级统计值加I之和,作为第一更新流级统计值,这种计算方式也就是说,每接收到一个数据报文后,都要进行一次计算,但是,在应用中,这种计算方式效率较低,进一步的,为了提高计算速率,也可以采用如下方式:
[0138]确定属于数据流的未统计的数据报文的数量,将第一当前流级统计值与未统计的数据报文的数量之和,作为第一更新流级统计值。
[0139]本发明实施例中,第一流级统计模块I在属于一级缓存的第一缓存中查找接收到的数据报文所属数据流的第一当前流级统计值之前,还执行如下操作:
[0140]确定与接收到的数据报文所属的数据流所对应的缓存ID ;
[0141]将与缓存ID对应的缓存作为第一缓存。
[0142]本发明实施例中,第二流级统计模块3根据第一更新流级统计值计算第二更新流级统计值时,可选的,可以采用如下方式:
[0143]确定存在与数据流所对应的第二缓存,将第二缓存当前存储的数值作为第二当前流级统计值;
[0144]将第二当前流级统计值和第一更新流级统计值之和,作为第二更新流级统计值;
[0145]第二流级统计模块3将第二更新流级统计值存储至第二缓存中时,可选的,可以采用如下方式:
[0146]将第二更新流级统计值替换第二缓存中存储的第二当前流级统计值。
[0147]本发明实施例中,第二流级统计模块3根据第一更新流级统计值计算第二更新流级统计值时,可选的,可以采用如下方式:
[0148]在确定不存在与数据流所对应的第二缓存时,将第一更新流级统计值作为第二更新流级统计值;
[0149]第二流级统计模块3将第二更新流级统计值存储至第二缓存中时,具体为:
[0150]添加与数据流对应的第二缓存,将第二更新流级统计值存储到第二缓存中。
[0151]本发明实施例中,进一步的,方法还包括:
[0152]控制器4在确定满足预设条件时,针对数据流,将第一缓存和第二缓存中针对数据流的所有流级统计值之和,作为针对数据流的流级总统计值;
[0153]刷新模块5根据流级总统计值对动态RAM中存储的针对数据流的流级统计值进行更新。
[0154]其中,可选的,刷新模块5根据流级总统计值对动态RAM中存储的针对数据流的流级统计值进行更新时,可选的,可以采用如下方式:
[0155]确定动态RAM中针对数据流的第三当前流级统计值;
[0156]计算流级总统计值和第三当前流级统计值之和;
[0157]将动态RAM中存储的针对数据流的第三当前流级统计值用流级总统计值和第三当前流级统计值之和替换。
[0158]进一步的,为了提高流级统计的准确度,方法还包括如下操作:
[0159]控制器4在得到流级总统计值之后,将第一缓存和第二缓存的数值设置为O。
[0160]本发明实施例中,在一定条件下还要将一级缓存和二级缓存中的流级统计值迀移至动态RAM在中,因此,方法还包括:
[0161 ] RAM读写调度模块6在确定满足预设条件时,从动态RAM中连续读取针对至少两个数据流分别对应的当前流级统计值;
[0162]流水线累加模块7针对至少两个当前流级统计值中的任意一当前流级统计值,确定包括第一缓存的一级缓存中与任意一当前流级统计值对应相同数据流的第一流级统计值,及包括第二缓存的二级缓存中与任意一当前流级统计值对应相同数据流的第二流级统计值,基于任意一当前流级统计值、第一流级统计值和第二流级次数之和,对任意一当前流级统计值进行更新;
[0163]RAM读写调度模块6将所有更新后的流级统计值连续写入动态RAM。
[0164]本发明实施例中,进一步的,为了提高流级统计的准确度,方法还包括如下操作:
[0165]RAM读写调度模块6在将所有更新后的流级统计值连续写入动态RAM之后,将一级缓存中存储与任意一当前流级统计值对应相同数据流的第一流级统计值的缓存,及二级缓存中存储与任意一当前流级统计值对应相同数据流的第二流级统计值的缓存的数值均设置为O。
[0166]本发明实施例中,可选的,预设条件包括下述条件中的至少一个:
[0167]到达更新周期时间点、与第二流级统计模块对应的任意一缓存的位宽达到预设门限值、与与第一流级统计模块对应的所有缓存的数量达到预设门限值。
[0168]本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能的装置。
[0169]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能。
[0170]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能的步骤。
[0171]尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0172]显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【主权项】
1.一种现场可编程门阵列FPGA,其特征在于,包括: 第一流级统计模块,用于在属于一级缓存的第一缓存中查找接收到的数据报文所属数据流的第一当前流级统计值,并根据所述第一当前流级统计值计算所述数据流的第一更新流级统计值; 溢出判断模块,用于判断将所述第一更新流级统计值存储到所述第一缓存中时是否溢出,并在判断结果为否时,将所述第一更新流级统计值替换所述第一缓存中存储的第一当前流级统计值; 第二流级统计模块,用于在所述溢出判断模块的判断结果为是时,根据所述第一更新流级统计值计算第二更新流级统计值,并将所述第二更新流级统计值存储至属于二级缓存的第二缓存中; 所述第一缓存的位宽小于所
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1