一种基于FPGA的网络节点内数据缓冲的组织方法技术

技术编号:14568392 阅读:64 留言:0更新日期:2017-02-06 02:03
本发明专利技术提出了基于FPGA的网络节点内数据缓冲的组织方法,通过将单个数据缓冲分割为两部分,一部分完全利用BRAM,不浪费存储资源,而另一部分通过组合后,可以将存储资源的浪费降到最低,相比于每个缓冲单独使用BRAM,该方法不仅可以保持使用的便利性,而且可以减少存储资源的浪费,降低功耗,尤其在缓冲数量较多时效果非常明显,通过组合使用存储资源来匹配任意大小的数据缓冲,从而达到减少存储资源浪费和降低器件功耗的目的。

【技术实现步骤摘要】

本专利技术涉及一种网络节点内数据缓冲的组织方法,特别涉及一种基于FPGA的网络节点内数据缓冲的组织方法
技术介绍
在网络通信领域,由于数据传输速度和数据处理速度不匹配,在网络节点中总是需要在处理与传输间对收发数据进行缓冲,为了使用方便,通常情况下将单个数据缓冲的大小固定为不小于单包数据长度的最小的2的整数幂,若单包数据长度或多包数据长度能够与FPGA中单个存储资源(称为BRAM)的大小匹配,则能够很成功的仅浪费很少的存储资源换来使用上的便利,若不能匹配,因为BRAM大小固定且每次至少使用1个,则会造成BRAM的浪费,当差距较大时,将会浪费很多存储资源,增加器件功耗。
技术实现思路
本专利技术的目的是提供一种基于FPGA的网络节点内数据缓冲的组织方法,通过组合使用存储资源来匹配任意大小的数据缓冲,从而达到减少存储资源浪费和降低器件功耗的目的。本专利技术的技术方案如下:一种基于FPGA的网络节点内数据缓冲的组织方法,其特殊之处在于:包括以下步骤:1)将数据缓冲单元划分为第一缓冲和第二缓冲两部分,第一缓冲的大小为a1,a1等于能被B整除且不大于A的2的整数幂;其中,B为单个BRAM的大小,A为需求数据缓冲单元的大小;2)确定单个BRAM能够实现的第一缓冲的个数b;3)确定用于实现第一缓冲的BRAM1的数量M;4)确定用于实现第二缓冲的BRAM2的数量N;5)确定第二缓冲的大小a2;a2等于N乘以B后再除以K;6)译码单元将外部访问地址分解为数据缓冲单元序号和数据缓冲单元地址,数据缓冲单元序号表示该次访问命中第几个数据缓冲单元,数据缓冲单元地址表示命中数据缓冲单元中的哪个地址;7)译码单元根据数据缓冲单元地址判断访问的是第一缓冲还是第二缓冲,若数据缓冲单元地址小于a1,则访问第一缓冲,否则访问第二缓冲;8)若访问第一缓冲,译码单元将数据缓冲单元序号除以b、并对结果进行下取整,确定出命中的BRAM1序号,并向该BRAM1产生相应的读使能或写使能信号;确定新数据缓冲单元序号和新数据缓冲单元地址新数据缓冲单元序号等于数据缓冲单元序号减去b乘以命中的BRAM1序号;新数据缓冲单元地址等于数据缓冲单元地址的低X位,X等于以2为底的a1的对数;若访问第二缓冲,译码单元将数据缓冲单元序号除以c、并对结果进行下取整,确定出命中的BRAM2序号,并向该BRAM2产生相应的读使能或写使能信号;其中,c为单个BRAM2包含的第二缓冲数量,c等于B除以a2;确定新数据缓冲单元序号和新数据缓冲单元地址新数据缓冲单元序号等于数据缓冲单元序号减去a2乘以命中的BRAM2序号,新数据缓冲地址等于数据缓冲单元地址减去a1后的值的低Y位,Y等于以2为底的a3的对数;9)将确定的新数据缓冲单元序号和新数据缓冲单元地址组成内部访问地址,并将该内部访问地址送入命中的BRAM1或BRAM2;10)将外部的数据信号与命中的BRAM1或BRAM2的数据信号连接。步骤2)中的b等于B除以a1。步骤3)中的M等于K除以b,K为需求数据缓冲单元的数量。步骤4)中的N等于[(a2×K)/B]上取整的值。本专利技术的有益效果是:1)提高片上存储器利用率。可以根据不同的实际应用环境和条件,灵活分配BRAM,有效减少存储资源的浪费,提高利用率。2)降低器件功耗。由于该方法提高了BRAM的利用率,在实现相同功能的情况下仅使用相对较少的BRAM,因此器件的功耗得以降低。附图说明图1是本专利技术的技术方案示意图。具体实施方式本专利提出了一种基于FPGA的网络节点内数据缓冲的组织方法,通过将单个数据缓冲分割为两部分,一部分完全利用BRAM,不浪费存储资源,而另一部分通过组合后,可以将存储资源的浪费降到最低,相比于每个缓冲单独使用BRAM,该方法不仅可以保持使用的便利性,而且可以减少存储资源的浪费,降低功耗,尤其在缓冲数量较多时效果非常明显。如图1所示,本专利技术包括M个BRAM1、N个BRAM2和译码单元。其特征在于:M个BRAM1用于实现所有的第一缓冲,N个BRAM2用于实现所有的第二缓冲,而第一缓较第二缓冲大。下面结合附图及具体实例对本专利技术做进一步的详细说明。如图1所示,一种基于FPGA的网络节点内数据缓冲的组织方法,包括1、BRAM1M个BRAM1用于实现第一缓冲。当需要构造16个大小为2248KB的缓冲区时,若单个BRAM的大小为4096KB,则M值的确定方式为:a)将单个数据缓冲单元划分为第一缓冲和第二缓冲两部分,第一缓冲的大小a1等于2048KB;b)单个BRAM能够实现的第一缓冲的个数b就等于8;c)用于实现第一缓冲的BRAM1的数量M就等于8。2、BRAM2N个BRAM2用于实现第二缓冲。利用确定M时的结果,N值的确定方式为:a)用于实现第二缓冲的BRAM2的数量N就等于1;b)为了便于管理,实现的第二缓冲的大小a2等于256KB。3、译码单元译码单元根据外部访问地址选择出命中的BRAM,并产生对应的内部访问地址,完成数据访问,当外部访问地址为0x2464时:a)外部访问地址可分解为数据缓冲单元序号和数据缓冲单元地址两部分,数据缓冲单元序号表示该次访问命中第4个缓冲单元,数据缓冲单元地址表示命中数据缓冲单元的地址为0x100;b)根据数据缓冲单元地址可以判断访问的是第一缓冲还是第二缓冲,因为数据缓冲单元地址小于a1,所以访问第一缓冲;c)根据数据缓冲单元序号和单个BRAM1包含的第一缓冲数量计算出命中的BRAM1序号为2,并向该BRAM1产生相应的读或写使能信号;d)命中第一缓冲,则新数据缓冲单元序号等于0,新数据缓冲单元地址等于0x100;e)将由新数据缓冲单元序号和新数据缓冲单元地址组成的内部访问地址送入命中的BRAM1;f)将外部的数据信号与命中的BRAM1的数据信号连接。本文档来自技高网...
一种基于FPGA的网络节点内数据缓冲的组织方法

【技术保护点】
一种基于FPGA的网络节点内数据缓冲的组织方法,其特征在于:包括以下步骤:1)将数据缓冲单元划分为第一缓冲和第二缓冲两部分,第一缓冲的大小为a1,a1等于能被B整除且不大于A的2的整数幂;其中,B为单个BRAM的大小,A为需求数据缓冲单元的大小;2)确定单个BRAM能够实现的第一缓冲的个数b;3)确定用于实现第一缓冲的BRAM1的数量M;4)确定用于实现第二缓冲的BRAM2的数量N;5)确定第二缓冲的大小a2;a2等于N乘以B后再除以K,K为需求数据缓冲单元的数量;6)译码单元将外部访问地址分解为数据缓冲单元序号和数据缓冲单元地址,数据缓冲单元序号表示该次访问命中第几个数据缓冲单元,数据缓冲单元地址表示命中数据缓冲单元中的哪个地址;7)译码单元根据数据缓冲单元地址判断访问的是第一缓冲还是第二缓冲,若数据缓冲单元地址小于a1,则访问第一缓冲,否则访问第二缓冲;8)若访问第一缓冲,译码单元将数据缓冲单元序号除以b、并对结果进行下取整,确定出命中的BRAM1序号,并向该BRAM1产生相应的读使能或写使能信号;确定新数据缓冲单元序号和新数据缓冲单元地址新数据缓冲单元序号等于数据缓冲单元序号减去b乘以命中的BRAM1序号;新数据缓冲单元地址等于数据缓冲单元地址的低X位,X等于以2为底的a1的对数;若访问第二缓冲,译码单元将数据缓冲单元序号除以c、并对结果进行下取整,确定出命中的BRAM2序号,并向该BRAM2产生相应的读使能或写使能信号;其中,c为单个BRAM2包含的第二缓冲数量,c等于B除以a2;确定新数据缓冲单元序号和新数据缓冲单元地址新数据缓冲单元序号等于数据缓冲单元序号减去a2乘以命中的BRAM2序号,新数据缓冲地址等于数据缓冲单元地址减去a1后的值的低Y位,Y等于以2为底的a3的对数;9)将确定的新数据缓冲单元序号和新数据缓冲单元地址组成内部访问地址,并将该内部访问地址送入命中的BRAM1或BRAM2;10)将外部的数据信号与命中的BRAM1或BRAM2的数据信号连接。...

【技术特征摘要】
1.一种基于FPGA的网络节点内数据缓冲的组织方法,其特征在于:
包括以下步骤:
1)将数据缓冲单元划分为第一缓冲和第二缓冲两部分,第一缓冲
的大小为a1,a1等于能被B整除且不大于A的2的整数幂;
其中,B为单个BRAM的大小,A为需求数据缓冲单元的大小;
2)确定单个BRAM能够实现的第一缓冲的个数b;
3)确定用于实现第一缓冲的BRAM1的数量M;
4)确定用于实现第二缓冲的BRAM2的数量N;
5)确定第二缓冲的大小a2;a2等于N乘以B后再除以K,K为需
求数据缓冲单元的数量;
6)译码单元将外部访问地址分解为数据缓冲单元序号和数据缓
冲单元地址,数据缓冲单元序号表示该次访问命中第几个数据缓冲单元,
数据缓冲单元地址表示命中数据缓冲单元中的哪个地址;
7)译码单元根据数据缓冲单元地址判断访问的是第一缓冲还是
第二缓冲,若数据缓冲单元地址小于a1,则访问第一缓冲,否则访问第
二缓冲;
8)若访问第一缓冲,译码单元将数据缓冲单元序号除以b、并对
结果进行下取整,确定出命中的BRAM1序号,并向该BRAM1产生相应的
读使能或写使能信号;
确定新数据缓冲单元序号和新数据缓冲单元地址
新数据缓冲单元序号等于数据缓冲单元序号减去b乘以命中的
BR...

【专利技术属性】
技术研发人员:蒲恺李大鹏李玉发田园季雷武华
申请(专利权)人:中国航空工业集团公司西安航空计算技术研究所
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1