A data packet low delay cache device and method for switching devices, including data packet aggregation module, scheduler module, data receiving module, cache module, dynamic memory allocation module, data transmission module, memory block state table module, and free memory block first in first out queue module. Methods include: aggregation module aggregates packets into aggregated data blocks of fixed size, and scheduler module allocates cache addresses for aggregated data blocks. Dynamic memory module management module maintains memory block usage information, and data receiving module moves aggregated data blocks to the corresponding DRAM cache unit. The output port sends a read request to the scheduler module. After collision detection, the data sending module outputs the packet from the buffer to the outside. The invention reduces the time delay of the buffer and improves the processing speed of the switching device.
【技术实现步骤摘要】
一种用于交换设备的数据包低时延缓存装置与方法
本专利技术属于通信
,更进一步涉及通信网络
中的一种用于交换设备的数据包低时延缓存装置与方法。本专利技术可用于交换设备实现数据包快速低时延缓存,有效提升交换设备的性能。
技术介绍
随着通信技术的日益发展,人们对数据传输速率要求越来越高。传输速率的大幅度提升,给以太网交换机或者路由器线卡中缓存器的读写速率和容量带来了更大的挑战。一方面,随着链路速率以及交换网络速率的提高,要求分组进入和离开线卡上缓存器的速率越来越快。通常情况下存储器读和写的数据总线是共享的,一个分组到达后先要写入缓存,数据包到达缓存以及离开缓存的过程要求缓存总线的速率是链路速率的两倍。另一方面,为减小丢失率,线卡容量至少为链路速率R与端到端往返时延RRT的乘积,使得所需的内存容量在10G字节左右。因此需要大容量、高带宽并能够快速访存的缓冲存储单元来吸收网络中的数据波动。缓存器通常使用容量有限而时延小的静态随机存取存储器SRAM和容量大而读写时延大的动态随机存取存储器DRAM组成的层次化存储器结构,SRAM暂时存储输入输出链路与DRAM之间需要传送的分组以及为需要入队出队的分组划分队列,解决变长分组多队列存储的问题;DRAM作为缓存实体,提供大容量存储空间,两者相互配合可以同时满足速度和容量要求。缓存器的具体功能包括聚合模块将每个数据流传入的数据包进行分段并将其聚合成固定大小的聚合数据块,调度器模块为聚合数据块分配缓存地址。动态内存块管理模块维护队列信息,并允许队列的尾部与头部动态共享内存块信息。数据接收模块检测到队列状态非空时,将此聚 ...
【技术保护点】
1.一种用于交换设备的数据包低时延缓存装置,包括调度器模块、空闲内存块先入先出队列模块、内存块状态表模块、数据接收模块、缓存区模块、数据发送模块;其特征在于,该装置还包括数据包聚合模块、动态内存分配模块;所述的调度器模块通过控制总线分别与数据包聚合模块、动态内存分配模块相连,所述的动态内存分配模块通过控制总线分别与内存块状态表模块、空闲内存块先入先出队列模块相连,所述的数据包聚合模块通过数据总线与数据接收模块相连;所述调度器模块通过控制总线分别与数据接收模块、数据发送模块相连;所述数据接收模块与数据发送模块通过数据总线与缓存区模块接口相连;其中:所述数据包聚合模块,用于初始化时,将聚合计数器置零;接收数据包的写入申请,从写入申请中分别提取数据包的目的端口号、有效长度;使用目的端口号的二进制数值序列,对数据包的队列号序列进行编号,将编号后的队列号序列写入到聚合块信息先入先出队列的队列号字段中;聚合数据包时,将动态随机存取存储器DRAM的行存储空间占用字节数的二进制数值,作为聚合上限值;将数据包缓存装置的系统带宽与行存储空间字节数的商值的二进制数值,作为聚合计数器的计数上限值;包聚合模块中 ...
【技术特征摘要】
1.一种用于交换设备的数据包低时延缓存装置,包括调度器模块、空闲内存块先入先出队列模块、内存块状态表模块、数据接收模块、缓存区模块、数据发送模块;其特征在于,该装置还包括数据包聚合模块、动态内存分配模块;所述的调度器模块通过控制总线分别与数据包聚合模块、动态内存分配模块相连,所述的动态内存分配模块通过控制总线分别与内存块状态表模块、空闲内存块先入先出队列模块相连,所述的数据包聚合模块通过数据总线与数据接收模块相连;所述调度器模块通过控制总线分别与数据接收模块、数据发送模块相连;所述数据接收模块与数据发送模块通过数据总线与缓存区模块接口相连;其中:所述数据包聚合模块,用于初始化时,将聚合计数器置零;接收数据包的写入申请,从写入申请中分别提取数据包的目的端口号、有效长度;使用目的端口号的二进制数值序列,对数据包的队列号序列进行编号,将编号后的队列号序列写入到聚合块信息先入先出队列的队列号字段中;聚合数据包时,将动态随机存取存储器DRAM的行存储空间占用字节数的二进制数值,作为聚合上限值;将数据包缓存装置的系统带宽与行存储空间字节数的商值的二进制数值,作为聚合计数器的计数上限值;包聚合模块中的合并模块读取由输入端口输入的数据包,写入到聚合块存储器中;合并模块使用字节数计算方法,获取聚合块存储器中的字节数;判断聚合块存储器中的字节数是否达到聚合上限值,若是,则申请缓存空间;否则,继续向聚合块存储器写入数据包;判断聚合计数器的计数值是否大于聚合计数器上限值,若是,则申请缓存空间;否则,将聚合计数器的计数值加1后,直到计数值达到上限值后申请缓存空间;合并模块停止向聚合块存储器写入数据包,将聚合计数器置零;将聚合块信息先入先出队列的编号字段中的数值加1;将聚合块存储器中的字节数,写入聚合块信息先入先出队列的有效长度字段中;向调度器模块发出写请求申请;所述调度器模块,用于读取聚合块信息先入先出队列的聚合块信息;将聚合块队列号与编号作为读地址,从空闲队列块先入先出队列读取对应的内存块起始地址;将内存块起始地址写入到聚合块信息先入先出队列的缓存地址字段;接收数据包聚合模块发来的写请求,从空闲内存块先进先出队列表模块获取内存块地址,为聚合完成的数据包分配缓存地址;读取请求缓存器的内存块起始地址,将内存块起始地址发送给动态内存分配模块;所述动态内存分配模块,用于初始化时,设置内存块状态表项地址,该地址的高位表示队列号,该地址的低位表示内存块标号;将内存块状态表项地址与行存储区字节数的乘积值的十六进制数值序列,作为缓存区域的内存块起始地址序列;将每个缓存区域内存块起始地址序列依次写入空闲内存块先入先出队列模块;收到更改内存块状态表的申请后,将聚合块的有效长度写到内存块状态表的聚合块有效长度字段中;将内存块起始地址写入到内存状态表的缓存地址字段;将内存状态表的内存块生存时间字段加1;将内存状态表的内存块回收状态字段设置为0;将内存状态表的写入完成字段设置为0;用于更改内存块状态表;若内存块状态表的内存块回收字段的数值为1后,将内存块起始地址写入到空闲内存块先入先出队列。用于使用内存块起始地址作为读地址,从内存块状态表中读取内存块的信息;若内存块状态表的写入完成字段为0时,将内存块起始地址发送给数据发送模块;所述内存块状态表模块,用于存储DRAM内存块的占用情况、有效字节、是否空闲、生存空间等信息;将动态内存状态表的内存块生存时间字段减1;将动态内存状态表的内存块回收状态字段设置为1;所述空闲内存块先入先出队列模块,用于存储未被使用的内存块起始地址;所述数据接收模块,用于从聚合块信息先入先出队列中读取内存块起始地址、缓存有效长度;将动态内存状态表的写入完成字段设置为1;数据接收模块通过数据总线,将聚合块输出到内存块起始地址对应的缓存区中;向动态内存分配模块发送更改动态内存状态表的申请;所述数据发送模块,用于读取请求缓存器的内存块起始地址;数据发送模块通过数据总线,将聚合块从内存块起始地址对应的缓存区输出到缓存装置外部;向动态内存分配模块发送更新空闲缓存地址申请;所述缓存区模块,用于存储数据包。2.一种用于交换设备的数据包低时延缓存方法,其特征在于,使用数据包低时延缓存的装置,将数据包进行聚合,缓存到存储器的整个行存储区内,对内存块实行动态分配,该方法的具体步骤包括以下:(1)初始化:(1a)缓存区模块将本模块存储区的全部地址空间置零;(1b)将数据包聚合器中的聚合计数器置零;(2)划分内存块:(2a)动态内存分配模块设置内存块状态表项地址,该地址的高位表示队列号,该地址的低位表示内存块标号;(2b)动态内存分配模块用内存块状态表项地址与行存储区字节数的乘积值的二进制数值序列,作为缓存区域的内存块起始地址序列;(2c)将每个缓存区域内存块起始地址序列,依次写入空闲内存块先入先出队列模块;(3...
【专利技术属性】
技术研发人员:邱智亮,张汶汶,郑凌,潘伟涛,鲍民权,王伟娜,高丽丽,赵海峰,曾磊,
申请(专利权)人:西安电子科技大学,
类型:发明
国别省市:陕西,61
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。