CN101257442B - 基于时间压力的时间确定性数据交换方法 - Google Patents
基于时间压力的时间确定性数据交换方法 Download PDFInfo
- Publication number
- CN101257442B CN101257442B CN200810030990A CN200810030990A CN101257442B CN 101257442 B CN101257442 B CN 101257442B CN 200810030990 A CN200810030990 A CN 200810030990A CN 200810030990 A CN200810030990 A CN 200810030990A CN 101257442 B CN101257442 B CN 101257442B
- Authority
- CN
- China
- Prior art keywords
- frame
- switching
- time
- delay
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种基于时间压力的时间确定性数据交换方法,在由交换节点构建的网络环境中,实时测量各个数据帧经过各交换节点传输所产生的总交换时延以及所经过的交换节点数,并记录到数据帧一并进行传递,每个交换节点根据数据帧的实际传输时延要求和数据帧中所记录的上述交换节点数和总交换时延计算出该数据帧的交换时间压力,并基于该时间压力对数据帧的交换优先级进行调节控制,从而保证数据帧的所需的传输时延要求。该交换装置包括交换模块、时间模块、存储单元和PHY器件组。本发明能够实现了多个交换设备之间交换时延的动态协调、能够保证数据端到端传输时延的确定性和一致性、从而提高整体传输效率和稳定性。
Description
技术领域
本发明主要涉及到由交换设备构建的网络环境中数据交换方法领域,特指一种基于时间压力的时间确定性数据交换方法及交换装置,尤其适用于是对端到端数据传输时延具有确定性要求的网络测控***,如实时测量、网络控制、工业自动化以及现场测试等的时间确定性数据交换的方法。
背景技术
现有交换设备的存储转发机制、队列结构以及调度算法导致了数据交换时延的不确定性,而且在多个交换设备互联而成的数据传输链路中,由于各个交换设备仅根据自身状态完成调度过程,彼此之间没有数据传输状态的协同,造成端到端数据传输时延的不确定性更大。现有交换设备所存在的这种数据交换时延不确定性问题直接限制了网络技术在各种实时传输业务中的应用,同时,随着网络技术在仪器平台和测控***不断渗透和融合,交换设备的数据交换时延不确定性问题也成为各种具有实时性和确定性要求的网络化仪器以及网络化测控***中需要亟待解决的关键技术问题。
根据排队机制的不同,交换设备的交换结构可分为输出排队交换结构、输入排队交换结构、联合输入输出排队交换结构和交叉点联合排队交换结构四种。各种交换结构虽然各有优势,然而,输出排队交换结构存在N倍加速问题,在高速环境下应用受限,提高速度将大大增加成本,而且随着速度的提高会降低信息交换的稳定性;输入排队交换结构虽然不需加速,但输入排队交换结构的调度算法仅能实现粗粒度的优先级服务,其时延、时延抖动特性均不如基于输出排队交换结构的调度算法;联合输入输出排队交换结构仅处于理论研究阶段,其调度算法的复杂度过高,工程中很难实现;在交叉点联合排队交换结构中,带缓存交叉开关通过在传统交叉开关(Crossbar)的每一个交叉节点设置一定容量的缓存单元,使得交换单元的每个输入端口和输出端口可以相对独立的使用内部连接带宽资源,避免了集中式的控制机制,为提升交换设备的综合性能提供了一个更好的基础平台。与传统的交叉开关相比,带缓存交叉开关可以直接支持变长分组处理,避免了分片重组的额外开销,而且现有研究表明:在不加速条件下,单独的带缓存交叉开关交换单元仅需通过增大交叉节点缓存的容量就可以获得比基于传统交叉开关的输入排队交换结构和输出排队交换结构更好的交换性能。
近年来随着芯片设计技术的进步和芯片工艺水平的提高,单芯片内部已经可以提供相当容量的缓存单元,这使得带缓存交叉开关(Buffered Crossbar)迅速成为交换领域新的研究热点。交叉点联合排队交换结构完全消除了HOL堵塞,而且由于交叉点缓存将输入输出竞争分离开,这种交换结构可以完全模拟输出排队交换结构的性能。
发明内容
本发明要解决的问题就在于:针对现有技术存在的技术问题,本发明提供一种能够实现多个交换设备之间交换时延的动态协调、能够保证数据端到端传输时延的确定性和一致性、从而提高整体传输效率和稳定性的基于时间压力的时间确定性数据交换方法.
为解决上述技术问题,本发明提出的解决方案为:一种基于时间压力的时间确定性数据交换方法,其特征在于:在由交换节点构建的网络环境中,实时测量各个数据帧经过各交换节点传输所产生的总交换时延以及所经过的交换节点数,并记录到数据帧一并进行传递,每个交换节点根据数据帧的实际传输时延要求和数据帧中所记录的上述交换节点数和总交换时延计算出该数据帧的交换时间压力,并基于该时间压力对数据帧的交换优先级进行调节控制,从而保证数据帧的所需的传输时延要求。
上述流程的具体步骤为:
①获得链路平均交换时延;由源节点发送连接帧至目的节点,目的节点在收到连接帧后发回应答帧,源节点收到应答帧后初始交换得到初始交换时延数据:初始交换时延dall和交换节点数量cSW,其中dall为连接帧经过所有交换节点的时延总和,交换节点数量cSW为连接帧所经过的交换节点数量,计算链路平均交换时延τavg=dall/cSW;
②发送数据帧;根据每个数据帧的传送需要设定期望平均交换时延Tavg,该期望平均交换时延Tavg不能够小于链路平均交换时延,源节点将带有上述期望平均交换时延Tavg、初始化数据帧的总交换时延Dall=0和交换节点数CSW=0的数据帧依次发送给每一个交换节点,其中Tavg为该数据帧经过每个交换节点所期望的平均时延,Dall为数据帧所经过的交换节点产生的交换时延和,CSW为数据帧所经过的交换节点数量;
③交换优先级调节;每一个交换节点接收到数据帧后根据总交换时延信息得到该数据帧的时间压力值:当CSW>0时,W=Tavg-Dall/CSW,当CSW=0时,W=Tavg,,W越小表示数据帧越紧迫,也就越需要尽快被交换,每一个交换节点根据所接收到的数据帧的时间压力值W对其交换优先级进行调节控制,同时,在交换节点将数据帧调度输出时,测量该数据帧经过交换节点时产生的实际交换时延τSW,计算Dall=Dall+τSW以及CSW=CSW+1;
④传送完毕;其余依次排列的各交换节点接收到数据帧后,重复步骤(3),直至数据帧传送到目的节点。
所述步骤(3)中具体包括:
①于交换节点中建立与每个输入端口对应的虚拟输出队列VOQ队列以及与每个输出端口唯一对应的调度链表和时延链表,输入端口与输出端口之间设有缓存交叉链路;
②交换节点接收到数据帧后根据总交换时延信息得到该数据帧的时间压力值:当CSW>0时,W=Tavg-Dall/CSW,当CSW=0时,W=Tavg;
③交换节点从与输出端口对应调度链表的最后一项开始向前查询放置位置,当查询到第一个无效放置位置时,在该无效位置与相邻前一个有效位置之间***新位置作为最佳放置位置,否则把最前面时间压力最大的表项位置作为最佳放置位置,并结束查找过程,然后更新已查找到的最佳放置位置表项之后的各个数据帧时间压力值,即将最后一个表项到查找到的最佳放置位置表项之间数据帧时间压力值都减去接收数据帧调度时间(当结果小于零时,置数据帧时间压力值为0),其中数据帧调度时间=数据帧长度*交叉链路调度1字节数据所需的时间;
④将VOQ队列中的数据帧依次调度到缓存交叉链路的交叉节点缓存中;
⑤将交叉节点缓存中的数据帧依次调度给交换节点的输出端口;
⑥在交换节点将数据帧调度输出时,测量该数据帧经过交换节点时产生的实际交换时延τSW,计算Dall=Dall+τSW以及CSW=CSW+1。
所述将交叉节点缓存中的数据帧依次调度给交换节点输出端口、在交换节点将数据帧调度输出时测量该数据帧经过交换节点产生的实际交换时延τSW以及计算Dall=Dall+τSW以及CSW=CSW+1具体包括以下步骤:
①首先检测该交换节点的输出端口对应的调度链表是否为空,当不为空时,取出排在队头的第一个表项,提取出数据帧的输入端口号;
②根据数据帧的输入端口号和当前调度器所在的输出端口号从对应的交叉节点缓存中提取数据帧头信息;
③根据数据帧头信息从时延链表中提取该帧的到达时间以及帧到达输入端口时的总交换时延、总节点数和期望平均交换时延;
④输出调度器提取时间单元的当前时间作为数据帧的离开时间,并由数据帧的离开时间减去帧的到达时间得到数据帧在当前交换设备中产生的实际交换时延;
⑤将总交换时延加上实际交换时延得出新的总交换时延,以及将总节点数加1,更新数据帧的总交换时延和总节点数两个域,然后将数据帧传出;
⑥从调度链表队头的第二项开始,向后依次将表项对应的数据帧时间压力值减去第一个表项数据帧调度时间(当结果小于零时,置数据帧时间压力值为0),其中数据帧调度时间=数据帧长度*交叉链路调度1字节数据所需的时间;
⑦删除调度链表和时延链表中第一个表项。
一种基于时间压力的时间确定性数据交换装置,其特征在于:它包括交换模块、时间模块、存储单元、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是本发明交换单元中调度链表单元的结构示意图;
图10是本发明交换设备中时延链表单元的结构示意图。
具体实施方式
以下将结合附图和具体实施例对本发明做进一步详细说明。
如图1和图3所示,由交换设备构建的网络环境中用来数据传送的一条数据传输链路由1个源节点、1个或多个交换装置和1个目的节点组成,本发明的一种基于时间压力的时间确定性数据交换方法为:在由交换节点构建的网络环境中,实时测量各个数据帧经过各交换节点传输所产生的总交换时延以及所经过的交换节点数,并记录到数据帧一并进行传递,每个交换节点根据数据帧的实际传输时延要求和数据帧中所记录的上述交换节点数和总交换时延计算出该数据帧的交换时间压力,并基于该时间压力对数据帧的交换优先级进行调节控制,从而保证数据帧的所需的传输时延要求。在本实施例中,本发明交换方法具体实施例的步骤为:①获得链路平均交换时延;由源节点发送连接帧至目的节点,目的节点在收到连接帧后发回应答帧,源节点收到应答帧后初始交换得到初始交换时延数据:初始交换时延dall和交换节点数量cSW,其中dall为连接帧经过所有交换节点的时延总和,交换节点数量cSW为连接帧所经过的交换节点数量,计算链路平均交换时延τavg=dall/cSW;②发送数据帧;根据每个数据帧的传送需要设定期望平均交换时延Tavg,该期望平均交换时延Tavg不能够小于链路平均交换时延,源节点将带有上述期望平均交换时延Tavg、初始化数据帧的总交换时延Dall=0和交换节点数CSW=0的数据帧依次发送给每一个交换节点,其中Tavg为该数据帧经过每个交换节点所期望的平均时延,Dall为数据帧所经过的交换节点产生的交换时延和,CSW为数据帧所经过的交换节点数量;③交换优先级调节;每一个交换节点接收到数据帧后根据总交换时延信息得到该数据帧的时间压力值:当CSW>0时,W=Tavg-Dall/CSW,当CSW=0时,W=Tavg,每一个交换节点根据所接收到的每个数据帧的时间压力值W对其交换优先级进行调节控制,同时,在交换节点将数据帧调度输出时,测量该数据帧经过交换节点时产生的实际交换时延τSW,计算Dall=Dall+τSW以及CSW=CSW+1;④传送完毕;其余依次排列的各交换节点接收到数据帧后,重复步骤(3),直至数据帧传送到目的节点。
如图2所示,在较佳的实施例中,交换优先级调节的步骤为:
①于交换节点中建立与每个输入端口对应的VOQ队列以及与每个输出端口唯一对应的调度链表和时延链表,输入端口与输出端口之间设有缓存交叉链路;
②交换节点接收到数据帧后根据总交换时延信息得到该数据帧的时间压力值:当CSW>0时,W=Tavg-Dall/CSW,当CSW=0时,W=Tavg;
③交换节点根据所接收到数据帧的时间压力在VOQ队列中找一个最佳放置位置,然后从与输出端口对应调度链表的最后一项开始向前查询放置位置,当查询到第一个无效放置位置时,在该无效位置与相邻前一个有效位置之间***新位置作为最佳放置位置,否则把最前面时间压力最大的表项位置作为最佳放置位置,并结束查找过程,然后更新已查找到的最佳放置位置表项之后的各个数据帧时间压力值,即将最后一个表项到查找到的最佳放置位置表项之间数据帧时间压力值都减去接收数据帧调度时间(当结果小于零时,置数据帧时间压力值为0),其中数据帧调度时间=数据帧长度*交叉链路调度1字节数据所需的时间;
④将VOQ队列中的数据帧依次调度到缓存交叉链路的交叉节点缓存中;
⑤将交叉节点缓存中的数据帧依次调度给交换节点的输出端口;
⑥在交换节点将数据帧调度输出时,测量该数据帧经过交换节点时产生的实际交换时延τSW,计算Dall=Dall+τSW以及CSW=CSW+1。
其中,上述将交叉节点缓存中的数据帧依次调度给交换节点输出端口的过程中包括以下步骤:
①首先检测该端口对应的调度链表是否为空,当不为空时,取出排在队头的第一个表项,提取出数据帧的输入端口号;
②根据数据帧的输入端口号和当前调度器所在的输出端口号从对应的交叉节点缓存中提取数据帧头信息;
③根据数据帧头信息从时延链表中提取该帧的到达时间以及帧到达输入端口时的总交换时延、总节点数和期望平均交换时延;
④输出调度器提取时间单元的当前时间作为数据帧的离开时间,并由数据帧的离开时间减去帧的到达时间得到数据帧在当前交换设备中产生的实际交换时延;
⑤将总交换时延加上实际交换时延得出新的总交换时延,以及将总节点数加1,更新数据帧的总交换时延和总节点数两个域,然后将数据帧传出;
⑥从调度链表队头的第二项开始,向后依次将表项对应的数据帧时间压力值减去第一个表项数据帧调度时间(当结果小于零时,置数据帧时间压力值为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、到达时间、总交换时延、总节点数和期望平均交换时延等,每个输出端口对应唯一一个时延链表。参见图3所示,是本发明中所采用的交叉点联合排队交换结构示意图。该结构在输入端口设置有VOQ队列,缓存交叉矩阵的每个交叉点上都设置了一定数量的缓存。VOQ队列是DDR SDRAM中划分的一块存储区,对应每一个输入端口设置有一个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)、输入控制器从接收到的帧中获得交换时间信息和端口信息,主要包括总交换时延(Dall)、交换节点数(CSW)、期望平均交换时延(Tavg)、输入端口号(Pin)、输出端口号(Pout);
(2)、计算时间压力值W;如果CSW>0,W=Tavg-Dall/CSW,否则,W=Tavg。时间压力值W越小,表明网络帧越紧迫,也就越需要尽快被交换。
(3)、从输出端口对应调度链表的最后一项开始向前查询放置位置,当查询到第一个无效放置位置时,记录上一表项位置作为最佳放置位置,并结束查找过程。调度链表中,一个表项位置是有效放置位置,需要满足以下两个原则:①接收帧与调度链表当前位置帧不是来自同一个源节点以及②接收帧时间压力大于调度链表当前位置帧时间压力(时间压力值越小的帧的时间压力就越大)。
(4)、更新已查找到的最佳放置位置表项之后的各个数据帧时间压力值,即:将最后一个表项到查找到的最佳放置位置表项之间数据帧时间压力值都减去接收数据帧调度时间(当结果小于零时,置数据帧时间压力值为0),其中数据帧调度时间=数据帧长度*交叉链路调度1字节数据所需的时间。
输入调度器是在FPGA中构建的一个处理器电路,它执行输入调度算法,完成网络帧由VOQ队列向缓存交叉链路中交叉节点缓存的调度过程。假设交换装置具有N个端口,交叉节点缓存状态为fij(1≤i,j≤N),fij=1时表示输入端口i和输出端口j交叉节点的缓存已经写满,否则为非满,则输入调度算法的处理流程如下:
对于输入端口i0的虚拟输出队列集合I0={VOQij|=i0,j=1,2...N},将其中所有在t时刻满足fij=0的VOQij标识为可选队列集合EI0,即:
EI0={VOQij|fij=0,i=i0,j=1,2...N}
从可选队列集合EI0中选取具有最小W值的虚拟输出队列获得调度,将选中的网络帧从VOQ队列调度到交叉节点缓存,然后更新对应交叉节点缓存状态fij=1;
输出调度器是在FPGA中构建的一个处理器电路,它执行输出调度算法,将网络帧从交叉节点缓存调度给输出端口连接的MAC。输出调度算法的处理流程与上述交换方法相同为:
(1)、输出调度器检测该端口对应的调度链表是否为空,当不为空时,取出排在队头的第一个表项,提取出帧的输入端口号;
(2)、根据帧的输入端口号和当前调度器所在的输出端口号从对应的交叉节点缓存中提取网络帧头信息;
(3)、根据网络帧头信息从时延链表中提取该帧的到达时间以及帧到达输入端口时的总交换时延、总节点数和期望平均交换时延;
(4)、输出调度器提取时间单元的当前时间作为帧的离开时间,并由帧的离开时间减去帧的到达时间得到帧在当前交换装置中产生的实际交换时延;
(5)、将总交换时延加上实际交换时延得出新的总交换时延,以及将总节点数加1,更新网络帧的总交换时延和总节点数两个域,然后将网络帧传给MAC;
(6)、从调度链表队头的第二项开始,向后依次将表项对应的数据帧时间压力值减去第一个表项数据帧调度时间(当结果小于零时,置数据帧时间压力值为0),其中数据帧调度时间=数据帧长度*交叉链路调度1字节数据所需的时间;
(7)、删除调度链表和时延链表中第一个表项。
Claims (3)
1.一种基于时间压力的时间确定性数据交换方法,其特征在于:在由交换节点构建的网络环境中,实时测量数据帧经过各交换节点传输所产生的总交换时延以及所经过的交换节点数,并记录到数据帧一并进行传递,每个交换节点根据数据帧的实际传输时延要求和数据帧中所记录的上述总交换时延与交换节点数计算出该数据帧的交换时间压力,并基于该时间压力对数据帧的交换优先级进行调节控制,从而保证数据帧的所需的传输时延要求;上述流程的具体步骤为:
①获得链路平均交换时延:由源节点发送连接帧至目的节点,目的节点在收到连接帧后发回应答帧,源节点收到应答帧后初始交换得到初始交换时延数据:初始交换时延dall和交换节点数量cSW,其中dall为连接帧经过所有交换节点的时延总和,交换节点数量cSW为连接帧所经过的交换节点数量,计算链路平均交换时延τavg=dall/cSW;
②发送数据帧:根据每个数据帧的传送需要设定期望平均交换时延Tavg,该期望平均交换时延Tavg不能够小于链路平均交换时延,源节点将带有上述期望平均交换时延Tavg、初始化数据帧的总交换时延Dall=0和交换节点数CSW=0的数据帧依次发送给每一个交换节点,其中Tavg为该数据帧经过每个交换节点所期望的平均时延,Dall为数据帧所经过的交换节点产生的交换时延和,CSW为数据帧所经过的交换节点数量;
③交换优先级调节:每一个交换节点接收到数据帧后根据总交换时延信息得到该数据帧的时间压力值:当CSW>0时,W=Tavg-Dall/CSW,当CSW=0时,W=Tavg,W越小表示数据帧越紧迫,也就越需要尽快被交换,每一个交换节点根据所接收到的数据帧的时间压力值W对其交换优先级进行调节控制,同时,在交换节点将数据帧调度输出时,测量该数据帧经过交换节点时产生的实际交换时延τSW,计算Dall=Dall+τSW以及CSW=CSW+1;
④传送完毕:其余依次排列的各交换节点接收到数据帧后,重复步骤③,直至数据帧传送到目的节点。
2.根据权利要求1所述的基于时间压力的时间确定性数据交换方法,其特征在于在上述步骤③中具体包括:
①于交换节点中建立与每个输入端口对应的虚拟输出队列VOQ队列以及与每个输出端口唯一对应的调度链表和时延链表,输入端口与输出端口之间设有缓存交叉链路;
CSW>0时,W=Tavg-Dall/CSW,当CSW=0时,W=Tavg;
③交换节点从与输出端口对应调度链表的最后一项开始向前查询放置位置,当查询到第一个无效放置位置时,在该无效位置与相邻前一个有效位置之间***新位置作为最佳放置位置,否则把最前面时间压力最大的表项位置作为最佳放置位置,并结束查找过程,然后更新已查找到的最佳放置位置表项之后的各个数据帧时间压力值,即将最后一个表项到查找到的最佳放置位置表项之间数据帧时间压力值都减去接收数据帧调度时间,其中当结果小于零时,置数据帧时间压力值为0,其中数据帧调度时间=数据帧长度*交叉链路调度1字节数据所需的时间;调度链表中,一个表项位置是有效放置位置,需要满足以下两个原则:①接收帧与调度链表当前位置帧不是来自同一个源节点以及②接收帧时间压力大于调度链表当前位置帧时间压力;
④将VOQ队列中的数据帧依次调度到缓存交叉链路的交叉节点缓存中;
⑤将交叉节点缓存中的数据帧依次调度给交换节点的输出端口;
⑥在交换节点将数据帧调度输出时,测量该数据帧经过交换节点时产生的实际交换时延τSW,计算Dall=Dall+τSW以及CSW=CSW+1。
3.根据权利要求2所述的基于时间压力的时间确定性数据交换方法,其特征在于所述将交叉节点缓存中的数据帧依次调度给交换节点的输出端口、在交换节点将数据帧调度输出时测量该数据帧经过交换节点产生的实际交换时延τSW以及计算Dall=Dall+τSW、CSW=CSW+1具体包括以下步骤:
①首先检测该交换节点的输出端口对应的调度链表是否为空,当不为空时,取出排在队头的第一个表项,提取出数据帧的输入端口号;
②根据数据帧的输入端口号和当前调度器所在的输出端口号从对应的交叉节点缓存中提取数据帧头信息;
③根据数据帧头信息从时延链表中提取该帧的到达时间以及帧到达输入端口时的总交换时延、总节点数和期望平均交换时延;
④输出调度器提取时间单元的当前时间作为数据帧的离开时间,并由数据帧的离开时间减去帧的到达时间得到数据帧在当前交换设备中产生的实际交换时延;
⑤将总交换时延加上实际交换时延得出新的总交换时延,以及将总节点数加1,更新数据帧的总交换时延和总节点数两个域,然后将数据帧传出;
⑥从调度链表队头的第二项开始,向后依次将表项对应的数据帧时间压力值减去第一个表项数据帧调度时间,其中当结果小于零时,置数据帧时间压力值为0,其中数据帧调度时间=数据帧长度*交叉链路调度1字节数据所需的时间;
⑦删除调度链表和时延链表中第一个表项。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810030990A CN101257442B (zh) | 2008-04-03 | 2008-04-03 | 基于时间压力的时间确定性数据交换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810030990A CN101257442B (zh) | 2008-04-03 | 2008-04-03 | 基于时间压力的时间确定性数据交换方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910133454A Division CN101527687A (zh) | 2008-04-03 | 2008-04-03 | 基于时间压力的时间确定性数据交换装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101257442A CN101257442A (zh) | 2008-09-03 |
CN101257442B true CN101257442B (zh) | 2010-05-12 |
Family
ID=39891924
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810030990A Expired - Fee Related CN101257442B (zh) | 2008-04-03 | 2008-04-03 | 基于时间压力的时间确定性数据交换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101257442B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106899371A (zh) * | 2015-12-18 | 2017-06-27 | 中兴通讯股份有限公司 | 时间同步方法和装置 |
CN108809464A (zh) * | 2017-05-05 | 2018-11-13 | 中国航空无线电电子研究所 | 一种有线交换式以太网的时钟同步方法 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103107955B (zh) * | 2011-11-15 | 2016-04-27 | ***通信集团公司 | 分组传送网队列调度方法和装置 |
CN103888211B (zh) * | 2014-03-06 | 2016-11-23 | 瑞斯康达科技发展股份有限公司 | 一种交叉芯片间进行数据传输的方法及装置 |
CN104917701B (zh) * | 2015-06-03 | 2020-04-07 | 香港中文大学深圳研究院 | 具有网络编码功能的代数交换***及其voq调度算法 |
CN106742130A (zh) * | 2017-01-12 | 2017-05-31 | 长沙市中制药机械有限公司 | 一种密闭式时间压力灌装*** |
CN110011934B (zh) * | 2019-03-15 | 2020-09-15 | 浙江大学 | 一种用于输入队列交换机的混合队列架构的混合调度方法 |
WO2022261832A1 (zh) * | 2021-06-15 | 2022-12-22 | 华为技术有限公司 | 数据交换方法和*** |
CN114500581B (zh) * | 2022-01-24 | 2024-01-19 | 芯河半导体科技(无锡)有限公司 | 一种等延迟的分布式缓存以太网mac架构的实现方法 |
-
2008
- 2008-04-03 CN CN200810030990A patent/CN101257442B/zh not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106899371A (zh) * | 2015-12-18 | 2017-06-27 | 中兴通讯股份有限公司 | 时间同步方法和装置 |
CN108809464A (zh) * | 2017-05-05 | 2018-11-13 | 中国航空无线电电子研究所 | 一种有线交换式以太网的时钟同步方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101257442A (zh) | 2008-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101257442B (zh) | 基于时间压力的时间确定性数据交换方法 | |
CN102737098B (zh) | 分布式文件*** | |
JP2000503828A (ja) | データネットワーク上でデータパケットをスイッチングする方法および装置 | |
AU612076B2 (en) | Packet switching system having bus matrix switch | |
CN101873253A (zh) | 带缓冲的纵横式交换机*** | |
US20050207339A1 (en) | Burst switching in a high capacity network | |
CN101001209B (zh) | 变长数据包的异种网络交换***及其方法以及采用信号环接口的地址表构成方法 | |
JPH10135952A (ja) | 分散待ち行列を用いたファイバ・チャネル・スイッチ | |
JPH06197130A (ja) | 高速パケット交換装置およびデータパケットの経路指定方法 | |
JPH07321822A (ja) | マルチキャスティング機能を備えた装置 | |
JPH07321823A (ja) | マルチキャスティング機能を備えた装置 | |
CN102035688B (zh) | 一种快速控制网络链路访问设计方法 | |
JPH08256168A (ja) | 転送路割り当てシステム | |
CN102185833A (zh) | 一种基于fpga的fc i/o并行处理方法 | |
CN108847969A (zh) | 基于信息流的网络业务可靠性分析方法 | |
IL125515A (en) | Burst descriptors | |
JPH03131144A (ja) | パケットスイッチ | |
CN107534506B (zh) | 用于光子交换的***和方法 | |
CN100539538C (zh) | 具有链表处理器的存储器管理*** | |
CN104333516A (zh) | 用于组合输入交叉点缓存交换结构的旋转轮训调度方法 | |
CN101527687A (zh) | 基于时间压力的时间确定性数据交换装置 | |
CN103106177B (zh) | 多核网络处理器的片上互联结构及其方法 | |
CN108616569B (zh) | 一种面向分布式计算应用的光多播请求调度方法 | |
CN108462653A (zh) | 基于tte的协议控制帧快速发送方法 | |
EP0982898A1 (en) | Switching apparatus comprising at least one switch core access element for the attachment of various protocol adapters |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100512 Termination date: 20130403 |