一种实现小包访问内存高速线速的方法及装置制造方法及图纸

技术编号:4127221 阅读:308 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种实现小包访问内存高速线速的方法,包括:所述内存控制器对需要写入的小包进行组包,并判断组合后的小包是否大于等于第一组包阈值,如果达到所述组合后的小包写入内存区域;在所述内存区域中的包处理后,所述内存控制器对需要读出的包进行组包,当所述组包大于等于第二组包阈值时从所述内存区域中读出,并通过所述报文发送模块转发所述组包;第一组包阈值为写入时需要达到的高速线速的组包长度,第二组包阈值为读出时需要达到的高速线速的组包长度。本发明专利技术中,在读、写访问内存过程中基于内存的Bank Interleave特性采用组包方法,并可以在读访问内存时采用报文调序,达到提高内存的带宽利用率。

【技术实现步骤摘要】

本专利技术涉及通信
,尤其涉及一种实现小包访问内存高速线速的 方法及装置。
技术介绍
路由器是一种连接多个不同网络或网段的数据通讯设备,提供数据包的 转发和传输路径的选择,通过转发数据包来实现不同网络或网段的互连。在路由器实现中,通常利用内存緩存报文,例如,DDR SDRAM ( Double Data Rate Synchronous Dynamic RAM,双倍速率同步动态随才几存储器)或DDR2 SDRAM ( Double Data Rate 2 Synchronous Dynamic RAM,第二代双倍速率同 步动态随机存储器),其中,报文处理示例如图l所示,包括以下步骤步骤101,线卡板0的GE (Gigabit Ethernet,千兆比特以太网)控制器 从外部接收报文,通过内存控制器将报文存放到指定的内存区域中等待被处 理;步骤102,在内存区域中进行报文处理;步骤103,报文处理完毕后,内存控制器将报文从内存区域中取出,并从 相应的接口发出,通过背板到达其他线卡板,例如线卡板l。内存控制器对内存区域的访问为一写、 一读两次操作,由此可知,如果 FPGA ( Field Programmable Gate Array,现场可编程门阵列)处理足够快,则 内存读写速度将成为系统性能的核心。现有设计中,对于内存的读写没有做特殊的处理,即只是简单的实现收 发报文过程中对于内存的读写操作。对于64字节小包(通常小于256字节的 包称为小包)内存访问时序如图2所示, 一次读操作为12个时钟周期,而其 中真正的有用数据为4个时钟周期,即带宽利用率为1/3。对于64字节小包 总带宽为400M (数据速率)x 64 (内存数据位宽)=25G,有效利用带宽为8G;由于对该有效利用带宽包括读写两次操作,因此,其中一次操作只能达 到4G左右的性能。因此,现有技术中,由于内存利用率低,导致路由器性能较低,无法实 现小包高速线速。
技术实现思路
本专利技术提供了 一种实现小包访问内存高速线速的方法及装置,提高内存 利用率,实现小包高速线速。本专利技术提供了 一种实现小包访问内存高速线速的方法,应用于包括接收 模块、内存区域、内存控制器和发送模块的装置中,所述方法包括以下步骤所述内存控制器对需要写入的小包进行组包,并判断组合后的小包是否 大于等于第一组包阈值,如果达到所述组合后的小包写入内存区域;在所述内存区域中的包处理后,所述内存控制器对需要读出的包进行组 包,当所述组包大于等于第二组包阈值时从所述内存区域中读出,并通过所述报文发送模块转发所述组包;第 一组包阈值为写入时需要达到的高速线速的组包长度,第二组包阈值 为读出时需要达到的高速线速的组包长度。所述从所述内存区域中读出,之前还包括判断所述组包中的相邻小包是否属于同一Bank,如果属于同一Bank,则 通过緩存FIFO将后续相同Bank的小包进行调序,4吏其远离前一个相同Bank 的小包。所述对需要写入的小包进行组包,之后还包括检测到若干小包的组包长度达到包长门限,将所述组包发出,并启动超 时判断;如果后续又发生组包,结束上次超时判断,并开始新的超时判断;如果 所述超时判断时间达到预设超时阀值而没发生组包,则自动触发内存写操作, 将没有达到包长门限且待写入的小包组包写入到内存。所述第 一组包阈值和所述第二组包阈值根据内存时钟频率确定。本专利技术还提供了 一种实现小包访问内存高速线速的装置,包括 接收模块,用于接收外部发送的小包报文;内存控制模块,与所述接收模块连接,用于对需要写入的小包进行组包, 并判断组合后的小包是否大于等于第 一组包阈值,如果达到所述组合后的小 包写入内存区域;在所述内存区域中的包处理后,对需要读出的包进行组包, 当所述组包大于等于第二组包阈值时从所述内存区域中读出,并通过所述报 文发送模块转发所述组包;第一组包阈值为写入时需要达到的高速线速的组 包长度,第二组包阈值为读出时需要达到的高速线速的组包长度;发送模块,与所述内存控制模块连接,用于将所述内存控制模块读取的 组包发送到外部。所述内存控制模块,还用于在读取组包时,判断所述组包中的相邻小包 是否属于同一Bank,如果属于同一Bank,则通过缓存FIFO将后续相同Bank 的小包进行调序,使其尽量远离前一个相同Bank的小包。所述内存控制模块,还用于检测到若干小包的组包长度达到包长门限, 将所述组包发出,并启动超时判断;如果后续又发生组包,结束上次超时判 断,并开始新的超时判断;如果所述超时判断时间达到预设超时阀值而没发 生组包,则自动触发内存写操作,将没有达到包长门限且待写入的小包组包 写入到内存。所述第 一组包阔值和所述第二组包阔值#4居内存时钟频率确定。 与现有技术相比,本专利技术具有以下优点本专利技术中,在读、写访问内存过程中基于内存的Bank Interleave特性采用 组包方法,并可以在读访问内存时采用报文调序,达到提高内存的带宽利用附图说明图l是现有技术中路由器报文处理示意图;图2是现有技术中无特殊处理的64字节小包内存访问时序图3是本专利技术中DDR2 SDRAM采用Bank interleave进行连续的读4喿作时序图4是本专利技术中一种报文写访问内存高速线速流程图; 图5是本专利技术中图4所示内存写操作示意图7是本专利技术中图6所示内存读操作示意图8是本专利技术中读操作中调整报文顺序示意图9是本专利技术中一种实现小包访问内存高速线速的装置结构图。具体实施例方式SDRAM采用的是时钟驱动方式,其指令与数据输出之间的延时是可编 程的。在SDRAM的内部有一个模式储存器可以设定一次存取的数据量及存 取方式(Sequential或Interleave )以及CAS延时时间,因此,所有的SDRAM 都能够以Interleave方式工作。内存数据是以位(bit)为单位,以行(Row)、歹'J (Column)方式储存在 内存区域中,这样的数据阵称为Bank,目前的内存芯片规格有2 ~ 4个Bank。 在内存区域中选定数据的方法是先选行再选列,进而准确地找到数据位置。 在一个内存访问周期内包括Bank的预充电(Precharge,因为SDRAM需要恒 电流以保存信息, 一旦断电信息即丢失)、RAS (RowAddress Strobe,行地址 选通脉沖)、CAS (Column Address Strobe,列地址选通脉冲)三个周期。访 问过程首先是对Bank进行充电,预充电周期是tRP;充电完成后使Bank行 地址有效,由于在选择了 Bank的同时也选择了相应的行,所以Bank有效和 行地址有效是同一个意思。Bank行地址有效的周期是tRCD,指在经过tRCD 的周期后就进入了列地址选通阶段。CAS有效后还要经过一定的周期才能开 始数据的传输,这个周期就是CL (CAS Latency ),经过CL的周期后'被选 中的行与列的交叉格开始进行读取或写入的操作。图3所示为DDR2 SDRAM采用Bank interleave (分级交错)进行连续的读操作时序图,DDR2 SDRAM每次的读、写操作配置为Burst 8模式(突发 传输是指在一个限定的周期次数内,批量传输数据,只需对第一个数据位置 进行定位,其本文档来自技高网
...

【技术保护点】
一种实现小包访问内存高速线速的方法,应用于包括接收模块、内存区域、内存控制器和发送模块的装置中,其特征在于,所述方法包括以下步骤: 所述内存控制器对需要写入的小包进行组包,并判断组合后的小包是否大于等于第一组包阈值,如果达到所述组合后 的小包写入内存区域; 在所述内存区域中的包处理后,所述内存控制器对需要读出的包进行组包,当所述组包大于等于第二组包阈值时从所述内存区域中读出,并通过所述报文发送模块转发所述组包; 第一组包阈值为写入时需要达到的高速线速的组包长度 ,第二组包阈值为读出时需要达到的高速线速的组包长度。

【技术特征摘要】
1、一种实现小包访问内存高速线速的方法,应用于包括接收模块、内存区域、内存控制器和发送模块的装置中,其特征在于,所述方法包括以下步骤所述内存控制器对需要写入的小包进行组包,并判断组合后的小包是否大于等于第一组包阈值,如果达到所述组合后的小包写入内存区域;在所述内存区域中的包处理后,所述内存控制器对需要读出的包进行组包,当所述组包大于等于第二组包阈值时从所述内存区域中读出,并通过所述报文发送模块转发所述组包;第一组包阈值为写入时需要达到的高速线速的组包长度,第二组包阈值为读出时需要达到的高速线速的组包长度。2、 如权利要求1所述的方法,其特征在于,所述A^所述内存区域中读出, 之前还包括判断所述组包中的相邻小包是否属于同一Bank,如果属于同一Bank,则 通过緩存FIFO将后续相同Bank的小包进行调序,使其远离前一个相同Bank 的小包。3、 如权利要求l所述的方法,其特征在于,所述对需要写入的小包进行 组包,之后还包括检测到若干小包的组包长度达到包长门限,将所述组包发出,并启动超 时判断;如果后续又发生组包,结束上次超时判断,并开始新的超时判断;如果 所述超时判断时间达到预设超时阀值而没发生组包,则自动触发内存写操作, 将没有达到包长门限且待写入的小包组包写入到内存。4、 如权利要求l所述的方法,其特征在于,所述第一组包阔值和所述第 二组包阁值才艮据内存时钟频率确定。5、 一种实现小包访问内存高...

【专利技术属性】
技术研发人员:田浩赵云峰
申请(专利权)人:杭州华三通信技术有限公司
类型:发明
国别省市:86[中国|杭州]

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

1