- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
区分服务Diffserv在高性能路由器中的实现
优先级查表模块实现对数据包的分类:根据包的DS 域的前6 比特,查找Diffserv 优先 级表,确定包的4 比特优先级,并打上相应的优先级标签。同时根据处理机发出的命令完成 表对DiffServ 优先级映射表的维护。 优先级查表模块的工作原理图如图三:
为了能够在规定的时间内完成优先级查表的功能,以及考虑到FPGA 引脚的限制,本模块 主要有一个深度为64,宽度为4 比特的双端口RAM 实现DiffServ 业务流的优先级表。
用Project Navigator Ise 4.2i 的Core generation 作为工具,使用Xilinx Vertex 系列FPGA 内部的资源产生所需要的CAM 和双端口SRAM。CAM 和双端口SRAM 占用资源情况如 下:
3.3 流量控制机构的实现
流量控制机构由队列管理装置和优先级排队(Priority Queuing:PQ)来实现。优先 级排队是一种相对简单可支持区分等级服务的队列调度算法。典型的优先级排队中,分组首 先经分类送入不同优先级的队列中缓存,调度端严格按照优先级从高到低的次序优先发送较 高优先级队列中的分组,当较高优先级队列为空时,再发送较低优先级队列中的分组。即调 度端只在更高优先级的所有队列为空时才服务一个给定的优先级队列,在每个优先级队列中 分组按照FCFS 准则接受调度。这种调度器也被称为严格优先级(Strict Priority)机制。
PQ 准则天然的支持完整包调度,在优先级队列数不大的情况下,比较起GPS 等理想型 算法,PQ 属于实用的调度算法。
PQ 对提供延迟特性要求严格的业务非常有用,只需将这类业务如交互式的语音、视频 等,映射到最高优先级,即可确保它们获得尽可能低的时延。又因为调度端只需要查看各优 先级队列中是否有分组即可决定服务队列,它的计算负荷很低复杂度为O(1),易于在硬件 中实现。如图四所示:
根据内部报文的报头标识(第一个长字的7~3 比特为优先级指示)完成8╳1 结构的8 优先级调度。调度策略为:(a)若只有1 个内部FIFO 中有报文,则输出该FIFO 中的报文, (b)若同时有多于1 个内部FIFO 中有报文,则输出优先级最高的报文,(c)优先级最高的 报文多于1 个,则轮询输出。
4 总结
本文采用FPGA 实现了高性能路由器对区分服务的支持,并在国家863 项目"可扩展到 T 比特的高性能IPv4/v6 路由器基础平台及实验系统"上进行了测试。测试结果表明,该方 案完全符合性能需求,达到了设计指标。
来源:维库开发网