一种基于虚拟队列的时间敏感网络交换架构

文档序号:28109359发布日期:2021-12-22 13:47阅读:80来源:国知局
一种基于虚拟队列的时间敏感网络交换架构

1.本发明涉及工业自动化领域领域,尤其涉及一种基于虚拟队列的时间敏感网络交换架构。


背景技术:

2.工业自动化、航空航天和智能驾驶等领域中实时性应用和安全相关性应用需要确定性的实时通信。但是,标准以太网(基于尽力而为策略)难以支持这方面需求。为了实现确定性的实时传输,ieee 802.1时间敏感网络(tsn,time

sensitive networking)任务组制定了一系列标准,如ieee 802.1qbv、ieee 802.1qbu等。目前,已有一系列支持典型tsn标准的交换机。作为tsn交换机通信功能的关键基础,数据交换架构需要针对多端口、高效并行和确定性机制转发等需求进行设计,进而保障数据在交换机内部确定性可靠的转发。
3.经检索发现,国内专利申请号为202011526157.x的名称为“基于时间敏感的通信设备”专利,提出了一种基于时间敏感的通信设备,用于解决以太网数据实时传输的问题,解决数据在以太网传输中的时序性、低延时和流量整形问题。但是该设备使用固化交换机制的微处理器作为主芯片,采用基于fifo(first input first output)存储器,无法灵活的支持时间敏感网络的各协议,以满足定制化的数据传输性能需求。202011299281.7的名称为"一种时间敏感网络数据传输系统及传输方法",其所设计的优先级队列缓冲模块用于提供最多8个优先级队列,根据数据帧的帧头中优先级序号将数据帧调度到对应的优先级的队列中排队。其缺点是无法为每个端口灵活的分配队列数,且每个端口之间的队列资源无法共享,造成调度灵活性差,存储资源利用率低。
4.当前的调度策略基于固定的fifo物理队列进行设计,难以实现异构流量的灵活调度性来满足差异化的性能需求;当前单端口固定队列的数据存储和调度方式,使得每个端口的存储资源无法共享,造成资源利用率低、对突发流量调度性差的问题;当前共享缓存的数据存储和调度方式,虽然提高了缓存资源的利用率,但是需要为不同类型的流量搭建不同的调度结构,增加了内存管理以及数据流调度复杂度,使得管理调度的难度及逻辑资源的消耗增大。
5.因此,本领域的技术人员致力于开发一种基于虚拟队列的时间敏感网络交换架构,使调度策略不受固定队列的限制,灵活满足多种类型的调度需求;每个端口的各类数据流能够共享全部的存储资源,提高资源利用率和应对突发流量的能力;根据不同的调度策略下正确快速的排序各类数据流,不需要根据不同的调度策略搭建多层调度架构,降低调度复杂性。


技术实现要素:

6.有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是如何构建一种灵活的交换架构,使调度策略不受固定队列的限制,从而灵活满足多种类型的调度需求;如何构建一种数据流存储和管理方式使得在保证时间敏感流(ts,time

sensitive)确定性存储和转
发的前提下,每个端口的各类数据流能够共享全部的存储资源,从而提高资源利用率和应对突发流量的能力;如何构建调度模块,使其能够根据不同的调度策略下正确快速的排序各类数据流,且不需要根据不同的调度策略搭建多层调度架构,降低调度复杂性。
7.为实现上述目的,本发明提供了一种基于虚拟队列的时间敏感网络交换架构,其特征在于,包括调度信息模块、调度模块和并行缓存模块;
8.所述调度信息模块维护整个交换架构的数据信息和状态信息,包括地址查找表,流信息表,并行缓存管理表,调度表和信息元组合器;
9.所述调度模块将信息元组合器得到的信息元进行输入排序,并提取输出流信息;
10.所述并行缓存模块包括并行缓存和缓存管理器,管理数据流的存储。
11.进一步地,首先选择一个tsn协议,配置流信息表和每个端口的调度表;之后将流信息表和调度表下发到每个交换节点;最后开始数据调度。
12.进一步地,通过选择不同的调度算法计算每个数据流的排序值;ts流的排序值与到达时间有关,非ts流的排序值与优先级有关。
13.进一步地,所述地址查找表为交换机的通用部分,根据数据流的目的地址找出目的输出端口;所述流信息表包含每个ts数据流的入队编号和排序值;所述并行缓存管理表记录并行缓存的使用情况;所述调度表配置在每个输出端口,调度流的传输,保证ts流的确定性传输;所述信息元组合器每当有数据输入时,从地址查找表中获得输出端口编号,从并行缓存管理表中获得流的缓存编号,从流信息表中获得入队编号和排序;之后将以上信息组合起来作为一个数据流的信息元发送给调度模块。
14.进一步地,所述并行缓存管理表包含空闲缓存表和be流缓存表;所述空闲缓存表保存当前未占用的并行缓存编号;所述be流缓存表包含当前未发送be流的缓存编号;当有ts流输入时,如果空闲缓存表为空时,则允许ts流抢占未发送be流的内存。
15.进一步地,所述调度表包含端口号、入队编号、流排序表和当前端口输出队列编号;所述流排序表为所有数据流的信息元按照其排序值由小到大排列的有序列表,输出队列编号为当前端口选择发送的队列。
16.进一步地,所述调度模块根据ieee 802.1q识别数据流类型,并将数据流信息元分配到相应虚拟队列;所述调度模块根据发送队列编号选择将相应数据流转发到输出端口;所述调度模块包括以下步骤:
17.步骤7.1、获取信息:当有输入或输出请求时,调度模块首先获取该端口的流排序表,以及输入信息和输出信息;将这些信息暂存在入队缓存表或出队缓存表中;
18.步骤7.2、入队排序和出队排序:对于入队排序操作,调度模块根据输入信息元的排序值计算入队位置;得到的新排序表存放在入队排序表中;对于出队排序操作,调度模块获取所有虚拟队列号等于发送队列号的信息元,并提取出其中排序值最小的作为出队信息元;输出端口通过该信息元的缓存编号来获取要从并行缓存中提取和发送的数据;得到的信排序表存放在出队排序表中;
19.步骤7.3、仲裁:判断当前的入队和出队操作是否是同一个端口;如果是,则将入队排序列表和出队排序列表结合起来,即从入队排序列表中移除出队元素,得到新的流信息列表即为最终的流排序表;如果入队操作和出队操作是不同的输出端口,则保留入队排序列表和出队排序列表;
20.步骤7.4、更新排序表:根据仲裁的结果更新输出端口的流信息列表。
21.进一步地,所述并行缓存模块,暂存不能立即传输的数据流,所有类型的流量共享全部缓存。
22.进一步地,所述缓存管理器,根据数据流类型和并行缓存管理表管理数据流的存储;所述缓存管理器包括以下步骤:
23.步骤9.1、申请缓存:当数据流到达交换机时,缓存管理器立即查找并行缓存管理表;如果并行缓存管理表中的空闲缓存表不为空,则取出其中的一个缓存编号分配给数据流;如果空闲缓存表为空,说明此时所有的缓存都被占用;若此时输入的为ts流,则缓存管理器将丢弃be流缓存表中的一些be流来存储ts流;若此时输入的为be流,则将其丢弃,不进行缓存;
24.步骤9.2、存储数据:数据流首先被缓存到输入端口fifo中;用于跨时钟域数据处理和数据暂存,直到分配的并行缓存可用;之后数据流将从输入端口fifo传输到分配的缓存中;
25.步骤9.3、更新并行缓存管理表:所有未发送的be流的内存编号存储在be流缓存表中;当有be流开始发送时,其缓存编号将从be流缓存表中删除;
26.步骤9.4、归还缓存:输出端口根据调度结果从并行缓存中取出数据流进行发送;发送完成后,将该缓存编号归还到空闲缓存表中,以供后续存储使用。
27.进一步地,将数据流的存储管理和调度机制分离设计,通过并行缓存管理模块解决多个数据流同时存储到同一内存空间造成的冲突问题。
28.在本发明的较佳实施方式中,本发明提供了一种基于虚拟队列的时间敏感网络交换架构,整个架构由调度信息模块、调度模块和并行缓存模块组成,如图1所示。各部分功能如下:
29.1、调度信息模块:该模块维护基于虚拟队列的时间敏感网络交换架构的当前状态信息和数据信息。该部分包括一个地址查找表,一个流信息表,一个并行缓存管理表,n个调度表(n为交换结构输出端口数量)和一个信息元组合器组成。
30.①
地址查找表:为交换机的通用部分,用来根据数据流的目的地址查找输出端口。
31.②
流信息表:该表包含每个数据流入队的队列编号和数据流的排序值。
32.③
并行缓存管理表:包含一个空闲缓存表和一个be流缓存表。空闲缓存表保存当前未被占用的缓存编号;be流内存表包含当前存有be流但是还未开始发送的缓存编号。当有ts流到达时,如果空闲缓存表为空(意味着当前所有缓存都被占用)时,则允许ts流抢占未发送be流的缓存。这种策略可以防止be流影响ts流存储。
33.④
调度表:每个输出端口配置一个调度表,用来存储数据流的调度信息,保证ts流的确定性传输。它包含该端口的数据流排序表和将要发送的虚拟队列编号。
34.⑤
信息元组合器:每当有数据输入时,将输出端口编号、数据流的缓存编号、队列编号和排序值组合起来作为一个信息元发送给调度模块。
35.2、调度模块
36.调度模块对信息元进行排序,并提取输出信息元。图2显示了调度模块的调度步骤:
37.①
获取信息:
38.当有输入或输出请求时,调度模块首先获取该端口的流排序表,以及输入信息和输出信息。将这些信息暂存在入队缓存表或出队缓存表中。
39.②
入队排序和出队排序:
40.对于入队排序操作,调度模块根据输入信息元的排序值计算入队位置。得到的新排序表存放在入队排序表中。
41.对于出队排序操作,调度模块获取所有虚拟队列号等于发送队列号的信息元,并提取出其中排序值最小的作为出队信息元。输出端口通过该信息元的缓存编号来获取要从并行缓存中提取和发送的数据。得到的信排序表存放在出队排序表中。
42.③
仲裁:判断当前的入队和出队操作是否是同一个端口。如果是,则将入队排序列表和出队排序列表结合起来,即从入队排序列表中移除出队元素,得到的新流信息列表即为最终的流排序表。如果入队操作和出队操作是不同的输出端口,则保留入队排序列表和出队排序列表。
43.④
更新排序表:根据仲裁的结果更新输出端口的流排序表。
44.3、并行缓存模块
45.并行缓存模块包含多个并行缓存和一个缓存管理器。
46.所有这些并行缓存用于暂存不能立即发送的数据流。所有的并行缓存均采用双端口sram构建,允许同时进行读写操作(读优先)。
47.缓存管理器的作用是:根据数据流类型和并行缓存管理表管理数据流的存储。其具体操作步骤如下:
48.①
申请缓存:当数据流到达交换机时,缓存管理器立即查找并行缓存管理表。如果并行缓存管理表中的空闲缓存表不为空,则取出其中的一个缓存编号分配给数据流;如果空闲缓存表为空,说明此时所有的缓存都被占用,缓存管理器将丢弃be流缓存表中的一些be流来存储ts流,而对于新传入的be流将丢弃。
49.②
存储数据:数据流首先被缓存到输入端口fifo中。用于跨时钟域数据处理和数据暂存,直到分配的并行缓存可用。之后数据流将从输入端口fifo传输到分配的缓存中。
50.③
更新并行缓存管理表:所有未发送的be流的内存编号存储在be流缓存表中。当有be流开始发送时,其缓存编号将从be流缓存表中删除。
51.④
归还缓存:输出端口根据调度结果从并行缓存中取出数据流进行发送。发送完成后,将该缓存编号归还到空闲缓存表中,以供后续存储使用。
52.4、基于虚拟队列的时间敏感网络交换架构,面向ieee 802.1qbv协议调度模型设计如下:
53.本架构将数据流的存储管理和调度机制分离设计,通过并行缓存管理模块解决多个数据流同时存储到同一内存空间造成的冲突问题,因此基于本架构的ieee 802.1qbv门控调度算法,可以不构建入队冲突约束。确定性实时约束为:
54.①
队列分配约束:ts流在交换机输出端口可以选择的虚拟队列编号为{1,2,

,k}
55.②
ts流顺序约束:每个数据流的发送顺序应服从其传输路径的顺序。
56.③
出口隔离约束:从同一端口发送的数据流,在时域中不能相互重叠。如果其队列编号相同,则要遵循先到先发的原则。
57.④
实时性约束:每个数据流的端到端延迟不能超过其截止时间的要求。
58.本发明与现有技术相比较,具有如下显而易见的实质性特点和显著优点:
59.1.针对灵活调度,每个输出端口采用虚拟队列对流信息进行排序,而不是对实际数据流进行排序,从而消除了数据流物理存储位置对排序的影响;
60.2.按照每种类型的数据流对应的调度策略为其分配队列编号和排序值,可以灵活配置不同虚拟队列的排队形式;
61.3.采用并行缓存结构,使所有数据流共享全部内存,提高资源利用率,相较于单端口固定队列的调度结构能够更好地支持突发流量。同时,内存管理策略能够确保ts流的确定性存储和传输;
62.4.基于虚拟队列的时间敏感网络交换架构可以适应一系列时间敏感网络的调度机制,扩展性强。
63.以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
64.图1是本发明的一个较佳实施例的基于虚拟队列的时间敏感网络交换架构图;
65.图2是本发明的一个较佳实施例的基于虚拟队列的时间敏感网络交换架构的调度流程图;
66.图3是本发明的一个较佳实施例的网络拓扑图;
67.图4是本发明的一个较佳实施例的tsn单端口固定队列调度和基于虚拟队列的时间敏感网络交换架构调度对比图。
具体实施方式
68.以下参考说明书附图介绍本发明的多个优选实施例,使其技术内容更加清楚和便于理解。本发明可以通过许多不同形式的实施例来得以体现,本发明的保护范围并非仅限于文中提到的实施例。
69.在附图中,结构相同的部件以相同数字标号表示,各处结构或功能相似的组件以相似数字标号表示。附图所示的每一组件的尺寸和厚度是任意示出的,本发明并没有限定每个组件的尺寸和厚度。为了使图示更清晰,附图中有些地方适当夸大了部件的厚度。
70.本发明涉及的是工业自动化领域,具体涉及一种支持时间敏感网络的架构和调度方法。
71.一种基于虚拟队列的时间敏感网络交换架构,包括调度信息模块、调度模块和并行缓存模块;调度信息模块维护整个交换架构的数据信息和状态信息,包括地址查找表,流信息表,并行缓存管理表,调度表和信息元组合器;调度模块作用是将信息元组合器得到的信息元进行输入排序,并提取输出流信息;并行缓存模块包括并行缓存和缓存管理器,用于管理数据流的存储。
72.首先选择一个tsn协议,配置流信息表和每个端口的调度表;之后将流信息表和调度表下发到每个交换节点;最后开始数据调度。如果需要的话,在所述交换架构中还可以添加时钟同步模块进行时钟同步或者其它功能模块。每个输出端口会按照配置依次选择发送的虚拟队列编号,每个虚拟队列中的信息元按照其排序值由小到大进行排列,当信息元被
选中发送时,输出端口根据该信息元中的缓存编号,从相应的缓存中读取完整的数据流进行发送。
73.虚拟队列的数量可以任意指定(一般不超过交换架构中并行缓存的数量)。虚拟队列的类型可以根据需要分为ts队列和其他队列(例如be队列、rc队列等)。通过选择不同的调度算法计算每个数据流的排序值。ts流的排序值与其到达时间有关,非ts流的排序值与其优先级有关。
74.调度信息模块包括地址查找表,流信息表,并行缓存管理表,调度表和信息元组合器:地址查找表为交换机的通用部分,用来根据数据流的目的地址找出目的输出端口。流信息表包含每个ts数据流的入队编号和排序值。并行缓存管理表用于记录并行缓存的使用情况。调度表配置在每个输出端口,用来调度流的传输,保证ts流的确定性传输。信息元组合器每当有数据输入时,从地址查找表中获得输出端口编号,从并行缓存管理表中获得流的缓存编号,从流信息表中获得入队编号和排序。之后将以上信息组合起来作为一个数据流的信息元发送给调度模块。
75.并行缓存管理表包含一个空闲缓存表和一个be流缓存表。空闲缓存表保存当前未占用的并行缓存编号。be流缓存表包含当前未发送be流的缓存编号。当有ts流输入时,如果空闲缓存表为空(意味着所有的内存都被占用)时,则允许ts流抢占未发送be流的内存。这种策略可以保证ts流的存储不会受非ts流的影响。
76.调度表包含端口号、入队编号、流排序表和当前端口输出队列编号。其中,流排序表为所有数据流的信息元按照其排序值由小到大排列的有序列表,输出队列编号为当前端口选择发送的队列。
77.调度模块根据ieee 802.1q识别数据流类型,并将其信息元分配到相应虚拟队列。调度模块根据发送队列编号选择将相应数据流转发到输出端口。调度模块有以下几个操作步骤:
78.①
获取信息:
79.当有输入或输出请求时,调度模块首先获取该端口的流排序表,以及输入信息和输出信息。将这些信息暂存在入队缓存表或出队缓存表中。
80.②
入队排序和出队排序:
81.对于入队排序操作,调度模块根据输入信息元的排序值计算入队位置。得到的新排序表存放在入队排序表中。
82.对于出队排序操作,调度模块获取所有虚拟队列号等于发送队列号的信息元,并提取出其中排序值最小的作为出队信息元。输出端口通过该信息元的缓存编号来获取要从并行缓存中提取和发送的数据。得到的信排序表存放在出队排序表中。
83.③
仲裁:判断当前的入队和出队操作是否是同一个端口。如果是,则将入队排序列表和出队排序列表结合起来,即从入队排序列表中移除出队元素,得到新的流信息列表即为最终的流排序表。如果入队操作和出队操作是不同的输出端口,则保留入队排序列表和出队排序列表。
84.④
更新排序表:根据仲裁的结果更新输出端口的流信息列表。
85.并行缓存模块,用来暂存不能立即传输的数据流,所有类型的流量共享全部缓存。
86.并行缓存模块包括一个缓存管理器,其作用是根据数据流类型和并行缓存管理表
管理数据流的存储。缓存管理器的具体操作步骤如下:
87.①
申请缓存:当数据流到达交换机时,缓存管理器立即查找并行缓存管理表。如果并行缓存管理表中的空闲缓存表不为空,则取出其中的一个缓存编号分配给数据流;如果空闲缓存表为空,说明此时所有的缓存都被占用。若此时输入的为ts流,则缓存管理器将丢弃be流缓存表中的一些be流来存储ts流;若此时输入的为be流,则将其丢弃,不进行缓存。
88.②
存储数据:数据流首先被缓存到输入端口fifo中。用于跨时钟域数据处理和数据暂存,直到分配的并行缓存可用。之后数据流将从输入端口fifo传输到分配的缓存中。
89.③
更新并行缓存管理表:所有未发送的be流的内存编号存储在be流缓存表中。当有be流开始发送时,其缓存编号将从be流缓存表中删除。
90.④
归还缓存:输出端口根据调度结果从并行缓存中取出数据流进行发送。发送完成后,将该缓存编号归还到空闲缓存表中,以供后续存储使用。
91.本架构将数据流的存储管理和调度机制分离设计,通过并行缓存管理模块解决多个数据流同时存储到同一内存空间造成的冲突问题,因此基于本架构的ieee 802.1qbv门控调度算法,可以不构建入队冲突约束。
92.具体案例:本发明提供了一种基于虚拟队列的时间敏感网络交换架构,包含以下步骤:
93.1、根据实时需求对周期性的ts流进行调度,在不影响ts流确定性实时传输的前提下再进行非ts流(be流)的调度。
94.2、基于ieee 802.1qbv协议标准和缓存队列类型,将输出端口队列分为ts队列和非ts队列。假设每个端口的队列数为m,其中ts队列数量为k,队列编号为{1,2,

,k},则非tc队列编号为{k+1,k+2,

,m},并定义交换机端口的gcl循环周期为所有ts流发送周期的最小公倍数,确定第一个循环周期内每个ts流需要传输调度的数据帧以及数量。
95.3、将终端设备和tsn交换机组成的网络系统结构图抽象为由网络节点和节点链接组成的有向图,确定ts流通信传输的路径。
96.4、根据第三步得到的传输路径,构造一系列ts数据流的确定性实时约束,通过相关的求解器生成第一个循环周期内所有ts流的确定性实施调度方案。其中每个ts流的到达时间作为排序值,队列编号和排序值生成为流信息表,并将流信息表下发到tsn交换机中。
97.所述的一系列确定性实时约束为:
98.1)队列分配约束:ts流在交换机输出端口可以选择的虚拟队列编号为{1,2,

,k}。
99.2)ts流顺序约束:每个数据流的发送顺序应服从其传输路径的顺序。
100.3)出口隔离约束:从同一端口发送的数据流,在时域中不能相互重叠。如果其队列编号相同,则要遵循先到先发的原则。
101.4)实时性约束:每个数据流的端到端延迟不能超过其截止时间的要求。
102.5、对于所有的非ts流,其排序值为优先级,队列编号按照数据流的类型分配到相应类型的队列中。综合第四步得到的ts数据流队列编号、排序值和发送时间值,设计tsn交换机端口的调度表。
103.6、将调度表下发到所有的交换机及终端设备上,设备将按照流信息表和调度表进行数据流调度。
104.图3所示为基于本文所提出的虚拟队列时间敏感网络交换机装置于一实施例中的网络结构图。其中sw1为基于虚拟队列的时间敏感网络交换机,端节点es1和es2为数据发送节点,端节点es3为数据接收节点。es1和es2产生ts流和be流,经过sw1发送到es 3。ts流和be流随机从es1和es2发送,其中ts流的数据长度固定为1个最长帧(1

mtu),ts流的截止时间为1000us或2000us,周期为100us或200us。该实例的具体步骤如下:
105.1.sw1的每个输出端口配置了8个虚拟队列,其中队列0~5为ts队列,队列6~7为be队列。
106.2.数据流的传输路径如图3所示,由两个发送节点经过交换机发送至接收节点,ts流通信传输的路径是确定的。
107.3.根据第二步的传输路径,构造ts数据流的确定性实时约束。图4为虚拟队列并行缓存调度和单端口固定队列调度的对比图,与单端口固定队列的调度相比,基于虚拟队列的时间敏感网络交换架构调度可以避免两个数据流同时到达同一个调度队列的冲突,从而提高了ts数据流的调度速度和解空间。
108.表1输入流信息表
[0109][0110]
使用smt求解器得到ts流输出调度表如表2所示,本实例中设计be流在ts流发送完成之后才可以发送。
[0111]
表2ts流输出调度表
[0112][0113]
4.将调度表下发到sw1中。首先,关闭交换机的发送功能,获取所有传入流的排序结果如表3左侧列表所示。ts流的排序与其到达时间相关。be流的排序和优先级相关,优先级越高,排序值越小,排序越靠前。排序结果表明调度模块没有区分ts和be流,而是根据它们的排序值进行统一排序。区分表3中的两种数据流类型,得到的两个子列表如表3右侧所示,表明两种类型的数据流都按照其各自的要求排序。
[0114]
表3数据流排序结果
[0115][0116]
5.开启交换机的发送功能。根据表2中的发送时间选择队列进行传输。在所有ts流发送后,选择be队列进行传输。表4中显示了所有数据流的发送顺序。
[0117]
表4数据流发送顺序
[0118][0119]
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1