基于时间压力的时间确定性数据交换装置的制作方法

文档序号:7706980阅读:95来源:国知局
专利名称:基于时间压力的时间确定性数据交换装置的制作方法
技术领域
本发明主要涉及到由交换设备构建的网络环境中数据交换方法领域,特指一种基于 时间压力的时间确定性数据交换方法及交换装置,尤其适用于是对端到端数据传输时延 具有确定性要求的网络测控系统,如实时测量、网络控制、工业自动化以及现场测试等 的时间确定性数据交换的方法。
背景技术
现有交换设备的存储转发机制、队列结构以及调度算法导致了数据交换时延的不确 定性,而且在多个交换设备互联而成的数据传输链路中,由于各个交换设备仅根据自身 状态完成调度过程,彼此之间没有数据传输状态的协同,造成端到端数据传输时延的不 确定性更大。现有交换设备所存在的这种数据交换时延不确定性问题直接限制了网络技 术在各种实时传输业务中的应用,同时,随着网络技术在仪器平台和测控系统不断渗透 和融合,交换设备的数据交换时延不确定性问题也成为各种具有实时性和确定性要求的 网络化仪器以及网络化测控系统中需要亟待解决的关键技术问题。
根据排队机制的不同,交换设备的交换结构可分为输出排队交换结构、输入排队交 换结构、联合输入输出排队交换结构和交叉点联合排队交换结构四种。各种交换结构虽
然各有优势,然而,输出排队交换结构存在N倍加速问题,在高速环境下应用受限,提 高速度将大大增加成本,而且随着速度的提高会降低信息交换的稳定性;输入排队交换 结构虽然不需加速,但输入排队交换结构的调度算法仅能实现粗粒度的优先级服务,其 时延、时延抖动特性均不如基于输出排队交换结构的调度算法;联合输入输出排队交换 结构仅处于理论研究阶段,其调度算法的复杂度过高,工程中很难实现;在交叉点联合 排队交换结构中,带缓存交叉开关通过在传统交叉开关(Crossbar)的每一个交叉节点设置一定容量的缓存单元,使得交换单元的每个输入端口和输出端口可以相对独立的使用 内部连接带宽资源,避免了集中式的控制机制,为提升交换设备的综合性能提供了一个 更好的基础平台。与传统的交叉开关相比,带缓存交叉开关可以直接支持变长分组处理, 避免了分片重组的额外开销,而且现有研究表明在不加速条件下,单独的带缓存交叉 开关交换单元仅需通过增大交叉节点缓存的容量就可以获得比基于传统交叉开关的输入 排队交换结构和输出排队交换结构更好的交换性能。
近年来随着芯片设计技术的进步和芯片工艺水平的提高,单芯片内部己经可以提供 相当容量的缓存单元,这使得带缓存交叉开关(Buffered Crossbar)迅速成为交换领域新 的研究热点。交叉点联合排队交换结构完全消除了HOL堵塞,而且由于交叉点缓存将输 入输出竞争分离开,这种交换结构可以完全模拟输出排队交换结构的性能。

发明内容
本发明要解决的问题就在于针对现有技术存在的技术问题,本发明提供一种能够 实现多个交换设备之间交换时延的动态协调、能够保证数据端到端传输时延的确定性和 一致性、从而提高整体传输效率和稳定性的基于时间压力的时间确定性数据交换装置。
为解决上述技术问题,本发明提出的解决方案为
一种基于时间压力的时间确定性数据交换装置,其特征在于它包括交换模块、时 间模块、存储单元、PHY器件组,时间模块与交换模块的输入端相连,PHY器件组与交 换模块的输出端相连,所述交换模块包括交换单元、用来与时间模块相连的时间单元以 及用来与PHY器件相连的若干个MAC,所述交换单元的输入端口和输出端口之间包括 若干组依次相连的输入控制器、输入调度器和输出调度器,输入调度器与输出调度器之 间设有缓存交叉链路,所述存储单元包括与每个输入端口对应相连的VOQ队列单元以及 与每个输出端口唯一对应相连的调度链表单元和时延链表单元。
所述输入控制器的输出端分别与VOQ队列单元、调度链表单元以及时延链表单元的 输入端相连,输入调度器的输入端与VOQ队列单元的输出端相连,调度链表单元的输出 端与输入调度器和输出调度器相连,时延链表单元的输出端与输入调度器和输出调度器 相连。
与现有技术相比,本发明的优点就在于-
1. 本发明基于时间压力的时间确定性数据交换方法实现了多个交换设备之间交换时 延的动态协调,能够保证数据端到端传输时延的确定性和一致性;
2. 本发明交换设备的交换单元中采用了交叉点联合排队交换结构,有效避免了传统交换设备中存在的输入竞争和输出竞争问题,能够实现网络帧的确定性交换;
3. 本发明交换设备的交换单元的每一个输入端口中采用VOQ队列,完全消除了 HOL 堵塞问题;
4. 本发明交换设备中增加了时间单元,不仅能够实时标记每一个网络帧的到达时间, 并能够实时测量每一个网络帧所产生的实际交换时延;
5. 本发明LPQF调度算法采用了分布实现,大大降低了对匹配算法时间复杂度的要 求,并且提高了设备的吞吐率;
6. 本发明LPQF调度算法能够在单片FPGA集成电路上实现,模块化程度高。


图1是本发明交换方法的流程示意图; 图2是本发明交换方法中交换优先级调节的流程示意图; 图3是本发明采用的交叉点联合排队交换结构示意图; 图4是本发明数据传输链路结构示意图; 图5是本发明交换装置的框架结构示意图; 图6是本发明交换装置中交换单元的框架结构示意图; 图7是本发明数据传输链路的连接帧结构示意图; 图8是本发明数据传输链路的数据帧结构示意图; 图9是本发明交换单元中调度链表单元的结构示意图; 图IO是本发明交换设备中时延链表单元的结构示意图。
具体实施例方式
以下将结合附图和具体实施例对本发明做进一步详细说明。
如图1和图3所示,由交换设备构建的网络环境中用来数据传送的一条数据传输链 路由1个源节点、1个或多个交换装置和1个目的节点组成,本发明的一种基于时间压力 的时间确定性数据交换方法为在由交换节点构建的网络环境中,实时测量各个数据帧 经过各交换节点传输所产生的总交换时延以及所经过的交换节点数,并记录到数据帧一 并进行传递,每个交换节点根据数据帧的实际传输时延要求和数据帧中所记录的上述交 换节点数和总交换时延计算出该数据帧的交换时间压力,并基于该时间压力对数据帧的 交换优先级进行调节控制,从而保证数据帧的所需的传输时延要求。在本实施例中,本 发明交换方法具体实施例的步骤为①获得链路平均交换时延;由源节点发送连接帧至 目的节点,目的节点在收到连接帧后发回应答帧,源节点收到应答帧后初始交换得到初始交换时延数据初始交换时延C^和交换节点数量C^,其中《 为连接帧经过所有交换 节点的时延总和,交换节点数量C^为连接帧所经过的交换节点数量,计算链路平均交换 时延^g-《,"C^;②发送数据帧;根据每个数据帧的传送需要设定期望平均交换时延 r。vg,该期望平均交换时延7^不能够小于链路平均交换时延,源节点将带有上述期望平
均交换时延r,、初始化数据帧的总交换时延£)。
= 0和交换节点数<:^=0,依次发送给 每一个交换节点,其中r^为该数据帧经过每个交换节点所期望的平均时延,/)。,,为数据
帧所经过的交换节点产生的交换时延和,C^为数据帧所经过的交换节点数量;③交换
优先级调节;每一个交换节点接收到数据帧后根据总交换时延信息得到该数据帧的时间 压力值『=ravg-i^/C^ (Cw>0)或『=7^ (Csr=0),每一个交换节点根据所
接收到的每个数据帧的时间压力值『对其交换优先级进行调节控制,同时,在交换节点
将数据帧调度输出时,测量该数据帧经过交换节点时产生的实际交换时延r^,计算 =A< 以及&『=CS(F +1; 传送完毕;其余依次排列的各交换节点接收到数据 帧后,重复步骤(3),直至数据帧传送到目的节点。
如图2所示,在较佳的实施例中,交换优先级调节的步骤为
① 于交换节点中建立与每个输入端口对应的VOQ队列以及与每个输出端口唯一对 应的调度链表和时延链表,输入端口与输出端口之间设有缓存交叉链路;
② 交换节点根据所接收到数据帧的时间压力在VOQ队列中找一个最佳放置位置,
然后从与输出端口对应调度链表的最后一项开始向前査询放置位置,当查询到第一个无 效放置位置时,在该无效位置与相邻前一个有效位置之间插入新位置作为最佳插入位置, 否则把最前面时间压力最大的表项位置作为最佳插入位置,并结束査找过程,然后更新 已査找到的最佳放置位置表项之后的各个数据帧时间压力值,即将最后一个表项到査找 到的最佳放置位置表项之间数据帧时间压力值都减去接收数据帧调度时间(当结果小于
零时,置数据帧时间压力值为0),其中数据帧调度时间=数据帧长度*交叉链路调度 l字节数据所需的时间;
③ 将VOQ队列中的数据帧依次调度到缓存交叉链路的交叉节点缓存中; 将交叉节点缓存中的数据帧依次调度给交换节点的输出端口。
其中,上述将交叉节点缓存中的数据帧依次调度给交换节点输出端口的过程中包括 以下步骤-
①首先检测该端口对应的调度链表是否为空,当不为空时,取出排在队头的第一个表项,提取出数据帧的输入端口号;
②根据数据帧的输入端口号和当前调度器所在的输出端口号从对应的交叉节点缓 存中提取数据帧头信息;
◎根据数据帧头信息从时延链表中提取该帧的到达时间以及帧到达输入端口时的 总交换时延、总节点数和期望平均交换时延;
输出调度器提取时间单元的当前时间作为数据帧的离开时间,并由数据帧的离开 时间减去帧的到达时间得到数据帧在当前交换设备中产生的实际交换时延;
⑤将总交换时延加上实际交换时延得出新的总交换时延,以及将总节点数加l,更 新数据帧的总交换时延和总节点数两个域,然后将数据帧传出;
◎从调度链表队头的第二项开始,向后依次将表项对应的数据帧时间压力值减去第 一个表项数据帧调度时间(当结果小于零时,置数据帧时间压力值为0),其中数据帧调 度时间=数据帧长度*交叉链路调度1字节数据所需的时间;
⑦删除调度链表和时延链表中第一个表项。
参见图7所示,在本实施例中,连接帧是符合具体网络协议帧结构的数据传输单元, 用于探测源节点和目的节点之间需要经过交换装置数量及交换时延总和。连接帧除了包 含符合网络协议规范的帧头信息外,还包含有帧类型、帧ID、源节点发送时戳、总交换 时延和总节点数,帧类型域标记当前帧的类型(区别连接帧、应答帧、数据帧和其他帧), 帧ID域记录当前连接帧的序号,源节点发送时戳域记录帧在源节点发送时的时间,总交 换时延域记录连接帧经过各个交换装置时所产生的交换时延总和,总节点数域记录连接 帧经过的交换装置总数量。源节点向目的节点发送数据之前创建连接帧,在发送帧时以 源节点时间填充源节点发送时戳域,并初始化总交换时延和总节点数为零。连接帧的总 交换时延取10ns为单位,最大可记录的时长为43秒。
参见图8所示,在本实施例中,数据帧是符合具体网络协议帧结构的数据传输单元, 用于传递业务数据。数据帧除了包含符合网络协议规范的帧头信息外,还包含有帧类型、 帧标志字、帧ID、总交换时延、总节点数和期望平均交换时延,帧类型域标记当前帧的 类型(区别连接帧、应答帧、数据帧和其他帧),帧ID域记录当前数据帧的序号,总交 换时延域记录数据帧经过各个交换装置时所产生的交换时延总和,总节点数域记录数据 帧经过的交换装置总数量,期望平均交换时延域记录数据帧所期望的在各个交换装置上 所产生的交换时延。源节点在向目的节点发送业务数据时创建数据帧,根据应用需求计 算和填写期望平均交换时延,并初始化总交换时延和总节点数为零,而后发送出去。数据帧的总交换时延取10ns为单位,最大可记录的时长为43秒,期望平均交换时延取10ns 为单位,最大可记录的时长为167毫秒。
参见图5、图6、图9和图10所示,本发明的一种基于时间压力的时间确定性数据 交换装置,它包括交换模块、时间模块、存储单元、PHY器件组,时间模块与交换模块 的输入端相连,PHY器件组与交换模块的输出端相连,所述交换模块包括交换单元、用 来与时间模块相连的时间单元以及用来与PHY器件相连的若干个MAC,所述交换单元 的输入端口和输出端口之间包括若干组依次相连的输入控制器、输入调度器和输出调度 器,输入调度器与输出调度器之间设有缓存交叉链路单元,所述存储单元包括与每个输 入端口对应相连的VOQ队列单元以及与每个输出端口唯一对应相连的调度链表单元和 时延链表单元。在具体实施例中,输入控制器的输出端分别与VOQ队列单元、调度链表 单元以及时延链表单元的输入端相连,输入调度器的输入端与VOQ队列单元的输出端相 连,调度链表单元的输出端与输入调度器和输出调度器相连,时延链表单元的输出端与 输入调度器和输出调度器相连。参见图9所示,调度链表单元是DDR SDRAM中划分的 一块存储区,用于存储所有等待调度的网络帧的调度优先级信息,包括帧的输入端口号、 长度和时间压力值等,每个输出端口对应唯一一个调度链表。参见图10所示,时延链表 单元是DDR SDRAM中划分的一块存储区,用于存储所有等待调度的网络帧的时延信息, 包括帧的输出端口、源地址、帧ID、到达时间、总交换时延、总节点数和期望平均交换 时延等,每个输出端口对应唯一一个时延链表。参见图1所示,是本发明中所采用的交 叉点联合排队交换结构示意图。该结构在输入端口设置有VOQ队列,缓存交叉矩阵的每 个交叉点上都设置了一定数量的缓存。VOQ队列是DDRSDRAM中划分的一块存储区, 对应每一个输入端口设置有一个VOQ队列,每一个VOQ队列中具有又针对N个输出端 口划分了N个子队列;缓存交叉矩阵是由FPGA设计实现的一个矩阵电路,交叉点缓存 采用FPGA内部自带缓存实现。交叉点缓存的设置使调度算法可以在输入端口和输出端 口上分布式实现,大大降低了对匹配算法时间复杂度的要求,并且提高了系统的吞吐率。
在本实施例中,交换模块是由FPGA设计实现的数据交换核心模块,它执行LPQF 调度算法完成数据帧的调度过程,时钟模块为交换装置提供所需的基准时钟信号,物理 PHY器件实现与外部连路的互联,存储单元(DDR SDRAM)用于暂存到达输入端口等 待调度的网络帧、MAC地址表以及帧的调度链表和时延链表信息。交换模块内部由交换 单元、时间单元和若干MAC组成。各个MAC位于交换单元与PHY器件之间,与交换 单元通过数据总线互连,与PHY器件通过物理层数字接口相连;时间单元基于时钟模块提供的时钟信号产生时间信号,为交换装置内部提供精确时间服务;交换单元执行LPQF 调度算法实现数据帧时间确定性交换,它基于时间单元提供时间信息标记数据帧的到达 离开交换装置输入端口和输出端口的时间,根据数据帧中提取的传输时间状态信息计算 时间压力,并根据LPQF调度算法对数据帧进行优先级排队和调度输出。LPQF调度算法 由优先级规划算法、输入调度算法和输出调度算法分步在交换单元中完成。
参见图4所示,本实施例中交换单元是FPGA设计实现的一个数据交换电路单元, 由多组依次相连的输入控制器、输入调度器和输出调度器以及位于输入调度器和输出调 度器之间的缓存交叉链路单元组成。在存储单元(DDR SDRAM)的存储区中设置有与 每个输入端口对应的VOQ队列单元以及与每个输出端口唯一对应的调度链表单元和时 延链表单元,通过数据总线与存储单元(DDR SDRAM)互联。
输入控制器是在FPGA中构建的一个处理器电路,它通过数据总线接收来自MAC 的网络帧,并对该网络帧执行优先级规划算法。首先,以时间单元提供的时间信息标记 帧的到达时间,同时提取帧头中的目的地址、源地址、帧ID、总交换时延、总节点数和 期望平均交换时延等信息,根据提取的地址信息从MAC地址表中查询网络帧输出端口 号,然后,根据提取交换时间信息计算网络帧的时间压力值,并根据该时间压力值、按 照一定的规则在VOQ队列中找一个最佳放置位置,最后,将这些信息分别填写到调度链 表和时延链表中。优先级规划算法中查找帧最佳放置位置的处理过程如下
(1) 、输入控制器从接收到的帧中获得交换时间信息和端口信息,主要包括总交换时 延("。 )、交换节点数(Cw)、期望平均交换时延(r。vs)、输入端口号(&)、输出端
口号(4,);
(2) 、计算时间压力值『;如果C观〉0,『= ^-i^,/C^;否则,^ = 7^。时间
压力值『越小,表明网络帧越紧迫,也就越需要尽快被交换。
(3) 、从输出端口对应调度链表的最后一项开始向前査询放置位置,当査询到第一个 无效放置位置时,记录上一表项位置作为最佳放置位置,并结束査找过程。调度表中,
一个表项位置是有效放置位置,需要满足以下两个原则①接收帧与调度表当前位置帧
不是来自同一个源节点以及②接收帧时间压力大于调度表当前位置帧时间压力(时间压 力值越小的帧,的时间压力就越大)。
(4) 、更新已查找到的最佳放置位置表项之后的各个数据帧时间压力值,g卩将最后 一个表项到查找到的最佳放置位置表项之间数据帧时间压力值都减去接收数据帧调度时
间(当结果小于零时,置数据帧时间压力值为0),其中数据帧调度时间=数据帧长度*交叉链路调度1字节数据所需的时间。
输入调度器是在FPGA中构建的一个处理器电路,它执行输入调度算法,完成网络 帧由VOQ队列向缓存交叉链路中交叉节点缓存的调度过程。假设交换装置具有iV个端 口,交叉节点缓存状态为厶.(lS/,_/SAO,《=1时表示输入端口/和输出端口_/交叉节
点的缓存已经写满,否则为非满,则输入调度算法的处理流程如下
对于输入端口 /。的虚拟输出队列集合/。<formula>formula see original document page 10</formula>,将其中所有在^
时刻满足y; = o的标识为可选队列集合£/。,即 <formula>formula see original document page 10</formula>从可选队列集合五/。中选取具有最小『值的虚拟输出队列获得调度,将选中的网络
帧从VOQ队列调度到交叉节点缓存,然后更新对应交叉节点缓存状态力=1 ;
输出调度器是在FPGA中构建的一个处理器电路,它执行输出调度算法,将网络帧 从交叉节点缓存调度给输出端口连接的MAC。输出调度算法的处理流程与上述交换方法 相同为-
(1) 、输出调度器检测该端口对应的调度链表是否为空,当不为空时,取出排在队头 的第一个表项,提取出帧的输入端口号;
(2) 、根据帧的输入端口号和当前调度器所在的输出端口号从对应的交叉节点缓存中 提取网络帧头信息;
(3) 、根据网络帧头信息从时延链表中提取该帧的到达时间以及帧到达输入端口时的 总交换时延、总节点数和期望平均交换时延;
(4) 、输出调度器提取时间单元的当前时间作为帧的离开时间,并由帧的离开时间减 去帧的到达时间得到帧在当前交换装置中产生的实际交换时延;
(5) 、将总交换时延加上实际交换时延得出新的总交换时延,以及将总节点数加l,更 新网络帧的总交换时延和总节点数两个域,然后将网络帧传给MAC;
(6) 、从调度链表队头的第二项开始,向后依次将表项对应的数据帧时间压力值减去 第一个表项数据帧调度时间(当结果小于零时,置数据帧时间压力值为0),其中数据帧 调度时间=数据帧长度*交叉链路调度l字节数据所需的时间;
(7) 、删除调度链表和时延链表中第一个表项。
权利要求
1、一种基于时间压力的时间确定性数据交换装置,其特征在于它包括交换模块、时间模块、存储单元、PHY器件组,时间模块与交换模块的输入端相连,PHY器件组与交换模块的输出端相连,所述交换模块包括交换单元、用来与时间模块相连的时间单元以及用来与PHY器件相连的若干个MAC,所述交换单元的输入端口和输出端口之间包括若干组依次相连的输入控制器、输入调度器和输出调度器,输入调度器与输出调度器之间设有缓存交叉链路单元,所述存储单元包括与每个输入端口对应相连的VOQ队列单元以及与每个输出端口唯一对应相连的调度链表单元和时延链表单元。
2、 根据权利要求l所述的基于时间压力的时间确定性数据交换装置,其特征在于 所述输入控制器的输出端分别与VOQ队列单元、调度链表单元以及时延链表单元的输入 端相连,输入调度器的输入端与VOQ队列单元的输出端相连,调度链表单元的输出端与 输入调度器和输出调度器相连,时延链表单元的输出端与输入调度器和输出调度器相连。
全文摘要
一种基于时间压力的时间确定性数据交换装置,它包括交换模块、时间模块、存储单元、PHY器件组,时间模块与交换模块的输入端相连,PHY器件组与交换模块的输出端相连,所述交换模块包括交换单元、用来与时间模块相连的时间单元以及用来与PHY器件相连的若干个MAC,所述交换单元的输入端口和输出端口之间包括若干组依次相连的输入控制器、输入调度器和输出调度器,输入调度器与输出调度器之间设有缓存交叉链路单元,所述存储单元包括与每个输入端口对应相连的VOQ队列单元以及与每个输出端口唯一对应相连的调度链表单元和时延链表单元。本发明能够实现了多个交换设备之间交换时延的动态协调、能够保证数据端到端传输时延的确定性和一致性、从而提高整体传输效率和稳定性。
文档编号H04L12/56GK101527687SQ20091013345
公开日2009年9月9日 申请日期2008年4月3日 优先权日2008年4月3日
发明者乔纯捷, 明德祥, 俊 杨, 杨建伟, 王跃科, 钟小鹏, 陈建云, 飞 黄 申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1