[发明专利]一种实现小包访问内存高速线速的方法及装置有效
申请号: | 200910162861.9 | 申请日: | 2009-08-11 |
公开(公告)号: | CN101621474A | 公开(公告)日: | 2010-01-06 |
发明(设计)人: | 田浩;赵云峰 | 申请(专利权)人: | 杭州华三通信技术有限公司 |
主分类号: | H04L12/56 | 分类号: | H04L12/56;H04L29/06 |
代理公司: | 北京鑫媛睿博知识产权代理有限公司 | 代理人: | 龚家骅 |
地址: | 310053浙江省杭州市高新技术产业*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 实现 小包 访问 内存 高速 方法 装置 | ||
技术领域
本发明涉及通信技术领域,尤其涉及一种实现小包访问内存高速线速的 方法及装置。
背景技术
路由器是一种连接多个不同网络或网段的数据通讯设备,提供数据包的 转发和传输路径的选择,通过转发数据包来实现不同网络或网段的互连。在 路由器实现中,通常利用内存缓存报文,例如,DDR SDRAM(Double Data Rate Synchronous Dynamic RAM,双倍速率同步动态随机存储器)或DDR2 SDRAM (Double Data Rate 2Synchronous Dynamic RAM,第二代双倍速率同 步动态随机存储器),其中,报文处理示例如图1所示,包括以下步骤:
步骤101,线卡板0的GE(Gigabit Ethernet,千兆比特以太网)控制器 从外部接收报文,通过内存控制器将报文存放到指定的内存区域中等待被处 理;
步骤102,在内存区域中进行报文处理;
步骤103,报文处理完毕后,内存控制器将报文从内存区域中取出,并从 相应的接口发出,通过背板到达其他线卡板,例如线卡板1。
内存控制器对内存区域的访问为一写、一读两次操作,由此可知,如果 FPGA (Field Programmable Gate Array,现场可编程门阵列)处理足够快,则 内存读写速度将成为系统性能的核心。
现有设计中,对于内存的读写没有做特殊的处理,即只是简单的实现收 发报文过程中对于内存的读写操作。对于64字节小包(通常小于256字节的 包称为小包)内存访问时序如图2所示,一次读操作为12个时钟周期,而其 中真正的有用数据为4个时钟周期,即带宽利用率为1/3。对于64字节小包 总带宽为400M(数据速率)x64(内存数据位宽)=25G,有效利用带宽为 8G;由于对该有效利用带宽包括读写两次操作,因此,其中一次操作只能达 到4G左右的性能。
因此,现有技术中,由于内存利用率低,导致路由器性能较低,无法实 现小包高速线速。
发明内容
本发明提供了一种实现小包访问内存高速线速的方法及装置,提高内存 利用率,实现小包高速线速。
本发明提供了一种实现小包访问内存高速线速的方法,应用于包括接收 模块、内存区域、内存控制器和发送模块的装置中,所述方法包括以下步骤:
所述内存控制器对需要写入的小包进行组包,并判断组合后的小包是否 大于等于第一组包阈值,如果达到所述组合后的小包写入内存区域;
在所述内存区域中的包处理后,所述内存控制器对需要读出的包进行组 包,当所述组包大于等于第二组包阈值时从所述内存区域中读出,并通过所 述报文发送模块转发所述组包;
第一组包阈值为写入时需要达到的高速线速的组包长度,第二组包阈值 为读出时需要达到的高速线速的组包长度。
所述从所述内存区域中读出,之前还包括:
判断所述组包中的相邻小包是否属于同一Bank,如果属于同一Bank,则 通过缓存FIFO将后续相同Bank的小包进行调序,使其远离前一个相同Bank 的小包。
所述对需要写入的小包进行组包,之后还包括:
检测到若干小包的组包长度达到包长门限,将所述组包发出,并启动超 时判断;
如果后续又发生组包,结束上次超时判断,并开始新的超时判断;如果 所述超时判断时间达到预设超时阀值而没发生组包,则自动触发内存写操作, 将没有达到包长门限且待写入的小包组包写入到内存。
所述第一组包阈值和所述第二组包阈值根据内存时钟频率确定。
本发明还提供了一种实现小包访问内存高速线速的装置,包括:
接收模块,用于接收外部发送的小包报文;
内存控制模块,与所述接收模块连接,用于对需要写入的小包进行组包, 并判断组合后的小包是否大于等于第一组包阈值,如果达到所述组合后的小 包写入内存区域;在所述内存区域中的包处理后,对需要读出的包进行组包, 当所述组包大于等于第二组包阈值时从所述内存区域中读出,并通过所述报 文发送模块转发所述组包;第一组包阈值为写入时需要达到的高速线速的组 包长度,第二组包阈值为读出时需要达到的高速线速的组包长度;
发送模块,与所述内存控制模块连接,用于将所述内存控制模块读取的 组包发送到外部。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州华三通信技术有限公司,未经杭州华三通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910162861.9/2.html,转载请声明来源钻瓜专利网。