[发明专利]一种用于交换设备的数据包低时延缓存装置与方法有效
申请号: | 201810117265.8 | 申请日: | 2018-02-06 |
公开(公告)号: | CN108366111B | 公开(公告)日: | 2020-04-07 |
发明(设计)人: | 邱智亮;张汶汶;郑凌;潘伟涛;鲍民权;王伟娜;高丽丽;赵海峰;曾磊 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L12/801;H04L12/863 |
代理公司: | 陕西电子工业专利中心 61205 | 代理人: | 田文英;王品华 |
地址: | 710071 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种用于交换设备的数据包低时延缓存装置与方法,装置包括数据包聚合模块、调度器模块、数据接收模块、缓存区模块、动态内存分配模块、数据发送模块、内存块状态表模块、空闲内存块先入先出队列模块。方法包括:聚合模块将数据包聚合成固定大小的聚合数据块,调度器模块为聚合数据块分配缓存地址。动态内存块管理模块维护内存块使用信息,数据接收模块将聚合数据块搬移到相应的DRAM缓存单元中。输出端口向调度器模块发送读取申请,经冲突检测后,数据发送模块将数据包从缓存区输出至外部。本发明降低了缓存器的时延,提高了交换设备处理速度。 | ||
搜索关键词: | 一种 用于 交换 设备 数据包 延缓 装置 方法 | ||
【主权项】:
1.一种用于交换设备的数据包低时延缓存装置,包括调度器模块、空闲内存块先入先出队列模块、内存块状态表模块、数据接收模块、缓存区模块、数据发送模块;其特征在于,该装置还包括数据包聚合模块、动态内存分配模块;所述的调度器模块通过控制总线分别与数据包聚合模块、动态内存分配模块相连,所述的动态内存分配模块通过控制总线分别与内存块状态表模块、空闲内存块先入先出队列模块相连,所述的数据包聚合模块通过数据总线与数据接收模块相连;所述调度器模块通过控制总线分别与数据接收模块、数据发送模块相连;所述数据接收模块与数据发送模块通过数据总线与缓存区模块接口相连;其中:所述数据包聚合模块,用于初始化时,将聚合计数器置零;接收数据包的写入申请,从写入申请中分别提取数据包的目的端口号、有效长度;使用目的端口号的二进制数值序列,对数据包的队列号序列进行编号,将编号后的队列号序列写入到聚合块信息先入先出队列的队列号字段中;聚合数据包时,将动态随机存取存储器DRAM的行存储空间占用字节数的二进制数值,作为聚合上限值;将数据包缓存装置的系统带宽与行存储空间字节数的商值的二进制数值,作为聚合计数器的计数上限值;包聚合模块中的合并模块读取由输入端口输入的数据包,写入到聚合块存储器中;合并模块使用字节数计算方法,获取聚合块存储器中的字节数;判断聚合块存储器中的字节数是否达到聚合上限值,若是,则申请缓存空间;否则,继续向聚合块存储器写入数据包;判断聚合计数器的计数值是否大于聚合计数器上限值,若是,则申请缓存空间;否则,将聚合计数器的计数值加1后,直到计数值达到上限值后申请缓存空间;合并模块停止向聚合块存储器写入数据包,将聚合计数器置零;将聚合块信息先入先出队列的编号字段中的数值加1;将聚合块存储器中的字节数,写入聚合块信息先入先出队列的有效长度字段中;向调度器模块发出写请求申请;所述调度器模块,用于读取聚合块信息先入先出队列的聚合块信息;将聚合块队列号与编号作为读地址,从空闲队列块先入先出队列读取对应的内存块起始地址;将内存块起始地址写入到聚合块信息先入先出队列的缓存地址字段;接收数据包聚合模块发来的写请求,从空闲内存块先进先出队列表模块获取内存块地址,为聚合完成的数据包分配缓存地址;读取请求缓存器的内存块起始地址,将内存块起始地址发送给动态内存分配模块;所述动态内存分配模块,用于初始化时,设置内存块状态表项地址,该地址的高位表示队列号,该地址的低位表示内存块标号;将内存块状态表项地址与行存储区字节数的乘积值的十六进制数值序列,作为缓存区域的内存块起始地址序列;将每个缓存区域内存块起始地址序列依次写入空闲内存块先入先出队列模块;收到更改内存块状态表的申请后,将聚合块的有效长度写到内存块状态表的聚合块有效长度字段中;将内存块起始地址写入到内存状态表的缓存地址字段;将内存状态表的内存块生存时间字段加1;将内存状态表的内存块回收状态字段设置为0;将内存状态表的写入完成字段设置为0;用于更改内存块状态表;若内存块状态表的内存块回收字段的数值为1后,将内存块起始地址写入到空闲内存块先入先出队列。用于使用内存块起始地址作为读地址,从内存块状态表中读取内存块的信息;若内存块状态表的写入完成字段为0时,将内存块起始地址发送给数据发送模块;所述内存块状态表模块,用于存储DRAM内存块的占用情况、有效字节、是否空闲、生存空间等信息;将动态内存状态表的内存块生存时间字段减1;将动态内存状态表的内存块回收状态字段设置为1;所述空闲内存块先入先出队列模块,用于存储未被使用的内存块起始地址;所述数据接收模块,用于从聚合块信息先入先出队列中读取内存块起始地址、缓存有效长度;将动态内存状态表的写入完成字段设置为1;数据接收模块通过数据总线,将聚合块输出到内存块起始地址对应的缓存区中;向动态内存分配模块发送更改动态内存状态表的申请;所述数据发送模块,用于读取请求缓存器的内存块起始地址;数据发送模块通过数据总线,将聚合块从内存块起始地址对应的缓存区输出到缓存装置外部;向动态内存分配模块发送更新空闲缓存地址申请;所述缓存区模块,用于存储数据包。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201810117265.8/,转载请声明来源钻瓜专利网。