一种时间触发以太网交换机TT业务交换装置

阅读: 评论:0


一种时间触发以太网交换机tt业务交换装置
技术领域
1.本发明属于通信技术领域,涉及一种时间触发以太网交换机tt业务交换装置。


背景技术:



2.随着信息技术的发展,工业、航空等领域的电子设备和系统越来越重视任务的实时性、安全性、确定性,传统的以太网已经不能满足该需求,因此,时间触发以太网(time triggered eth-ernet,tte) 应运而生。通过预先对tt业务进行规划,保障网络中是设备为tt业务提供确定性保障,避免tt 业务与其他业务的冲突。
3.现有的tte交换机中,对tt帧的转发主要有以下几种方式:
4.第一种是直通式转发方式。2006年,文献a time-triggered ethernet(tte)switch提出的tte 交换机采取直通式转发方式,et业务采取存储转发方式,当et业务与tt业务发生冲突时,et 业务被tt业务抢占后继续重传。但是这种转发方式需要通过通信协议来避免tt业务的冲突,由于不对tt业务进行缓存,所以当两个或多个tt帧同时到达,低优先级的tt帧会被丢弃。
5.第二种是存储转发方式。2020年,文献dual-plane switch architecture for time-triggered ethernet 提出了一种将双平面交换结构,将et业务和tt业务分别处理。其中,tt业务的输出端口按照发送调度表来发送tt帧,并增加了输出侧的缓存。但是该技术方案存在如下不足:
6.(1)由于没有在输入侧对tt帧进行缓存,因而输入侧tt冲突依赖调度表避免;
7.(2)输出侧的缓存区只能完成单帧缓存,对复杂调度的灵活度不足;
8.(3)该设计的tt接收窗只允许接收单个tt帧,对于需要分片的tt业务,依赖端系统的调度配合;
9.(4)当存在多播帧需要发送时,现有的技术方案需要等待多播帧所有的目的输出端口都空闲才能调度,可能导致多播帧错过发送时间点;
10.(5)调度规划时需要添加额外的约束条件来避免冲突,包括但不限于:

确保不会出现同一时刻多个输入端口收到需要发送至同一输出端口的情况;

确保不会出现输出端口正在发送tt帧时,输入端口收到新的需要发送至该输出端口的tt帧。

确保不会出现输出端口tt帧发送顺序与tt 帧进入tt平面的顺序不一致。当网络中业务规划较为复杂,业务量较大时,额外的约束条件可能会导致调度表生成失败。
11.(6)调度规划灵活性差,当网络中想要添加一条tt业务,需要到该路径上设备均空闲的时间段,若不到,则需要重新规划所有业务。
12.由上述可知tte交换机的可行性方案中,解决tt业务可靠性、确定性传输问题显得尤为重要。以上的2种方案中,在系统的独立性、现实可行性、成本开销上均不能很好的满足tte交换机的实际需求。


技术实现要素:



13.为了解决现有技术中存在的上述问题,本发明提供了一种时间触发以太网交换机tt业务交换装置。本发明要解决的技术问题通过以下技术方案实现:
14.本发明实施例提供了一种时间触发以太网交换机tt业务交换装置,该装置包括:
15.总体控制模块,用于在检测到所述时间触发以太网交换机tt业务交换平面上电后进行初始化,并等待时钟同步后控制其他各个模块进入工作状态;
16.接收调度表模块,用于根据接收调度表,按照系统时间将所述接收调度表发送至输入控制模块;
17.发送调度表模块,用于根据发送调度表,按照系统时间将所述发送调度表发送至输出控制模块;
18.输入控制模块,用于根据所述接收调度表模块发送的所述接收调度表接收合法tt帧,并存入输入缓存区,其中,所述输入控制模块与端口一一对应;
19.全互联交换控制模块,用于完成所述输入控制模块和输出控制模块的连接,将所述输入缓存区中缓存的tt帧发送至对应的所述输出控制模块;
20.输出控制模块,用于从各所述输入控制模块的数据通道中选择出一个本次要接收的tt帧,并根据输出缓存区的大小,计算出能够接收的最大帧长,将接收的tt帧存储至输出缓存区,并保存 tt帧在所述输出缓存区中的位置,在本地直接临近发送时间时,从发送调度信息fifo中存储的所述发送调度表中获取发送信息,在所述输出缓存区中进行发送调度查;其中,所述输出缓存区采用sram实现分片缓存区,通过缓存描述符索引缓存区;其中,输出控制模块包括:单播输出控制模块和多播输出控制模块;
21.单多播输出控制模块,用于根据发送调度表模块发送的发送调度表访问tt缓存区,选择输出所述单播输出控制模块,或者,所述多播输出控制模块的输出数据,在规定的发送时间点对tt帧进行发送。
22.在本发明一个实施例中,
23.所述接收调度表模块,还用于在检测到接收调度信息fifo非满时,进行读表操作;
24.所述接收调度表模块,还用于依次读取接收调度一级表中的各个表项,其中,从起始地址为0 表项开始读取所述接收调度一级表,并按照各个所述表项中的链表下一跳地址依次访问各个所述接收调度一级表;
25.所述接收调度表模块,还用于对所述接收调度一级表中的每一个表项中的第一tt id为键值计算哈希值,以所述哈希值分别访问接收调度二级表的每一个表项;
26.所述接收调度表模块,还用于检查在所述接收调度二级表访问到的表项中的第二tt id是否与所述接收调度一级表的表项中的所述第一tt id一致;
27.若所述第二tt id与所述第一tt id一致,且准入端口和发送端口有效,表示查询正确,所述接收调度表模块,还用于将所述第二tt id对应的所述接收调度二级表中的表项和所述第一tt id 对应的所述接收调度一级表中的表项进行拼接得到拼接表;
28.若所述第二tt id与所述第一tt id一致,且所述准入端口和所述发送端口无效,则查失败;
29.若所述第二tt id与所述第一tt id不一致,且所述接收调度一级表中的链表有效字段有效,所述接收调度表模块,还用于以下一跳为地址继续索引;
30.若所述第二tt id与所述第一tt id不一致,且所述接收调度一级表中的链表有效字段无效,则查失败;
31.所述接收调度表模块,还用于将所述拼接表发送至所述输入控制模块。
32.在本发明一个实施例中,
33.所述发送调度表模,还用于当检测到发送调度信息fifo非满时,进行读表操作;
34.所述发送调度表模,还用于从起始地址为0的表项开始读取所述发送调度表,并按照所述发送调度表中各个表项对应的下一跳地址依次访问各个所述发送调度表的表项;
35.所述发送调度表模,还用于在查完成后,将所述发送调度表发送给各个所述输出控制模块。
36.在本发明一个实施例中,
37.所述输入控制模块,还用于检测所述输入控制模块对应端口是否为所述接收调度表的表项准入端口之一;
38.若是,则所述输入控制模块,还用于接收所述接收调度表的表项,并存入接收调度信息fifo中;
39.所述输入控制模块,还用于根据系统时间,从所述接收调度表信息fifo中读取接收调度信息,依据接收时间点和接收窗长,产生一个接收窗;其中,每次接收窗计数器被重置时,产生一个接收统计脉冲,所述接收统计脉冲表示可以再次接收一个新的tt帧,每次接收tt帧需要消耗一个脉冲;
40.所述输入控制模块,还用于在tt帧到达时根据所述接收窗是否开启决定是否接收tt帧;
41.若tt帧落在所述接收窗内,则所述输入控制模块,还用于对所述tt帧进行缓存;
42.所述输入控制模块,还用于检测所述tt帧是否接收出错;
43.若接收出错,则所述输入控制模块,还用于将输入缓存区的写地址退回到错误帧的起始位置;若接收正确,将所述tt帧对应的接收调度信息写入所述接收调度信息fifo;
44.所述输入控制模块,还用于从所述接收调度信息fifo中取出下一帧的调度信息,将所述tt帧和所述下一帧的调度信息发送至数据总线,并监听控制通道上目标输出控制模块是否有反馈信号;
45.若收到反馈信号,则所述输入控制模块,还用于继续搬移下一个tt帧。
46.在本发明一个实施例中,
47.所述输出控制模块,还用于在没有正在传输的tt帧时,使用优先级编码器从tt帧帧长满足预设帧长的tt帧中确定要传输的tt帧;
48.所述输出控制模块,还用于如果有正在传输的tt帧,且有多个输入控制模块对应的输入通道申请发送,则从各个申请发送时间中获取小于当前正在传输的tt帧的发送时间的目标输入控制模块对应的目标输入通道,则暂停当前tt帧的接收,对符合要求的新tt帧进行接收;
49.所述输出控制模块,还用于在接收tt帧的过程中有新的tt帧满足发送条件且发送时间比当前 tt帧的发送时间距离当前时间更近,则暂停对所述当前tt帧的接收,将所述当前tt帧的接收状态挂起,采用后入先出的结构来完成接收状态的挂起,开始接收更加迫切的tt帧;
50.所述输出控制模块,还用于当一个所述tt帧完成发送后,首先检查是否有被挂起的所述tt帧,如果有,则优先发送被挂起的所述tt帧。
51.在本发明一个实施例中,
52.所述输出控制模块,还用于使用所述tt帧的接收时间点和tt id的拼接值作为标识,使用两个不同的哈希函数获取哈希值,用两个所述哈希值分别索引第一注册表和第二注册表,获得第一表项和第二表项;
53.所述输出控制模块,还用于若所述第一表项和所述第二表项都为空,注册表控制模块则将本次注册信息写入所述第一表项;
54.所述输出控制模块,还用于若所述第一表项或所述第二表项有本次注册值,则检查所述哈希值对应的表项是否被锁定;
55.所述输出控制模块,还用于若未被锁定,所述注册表控制模块将表项中原有信息写入注册失败 fifo中,将所述本次注册值写入表项中;
56.所述输出控制模块,还用于若已被锁定,所述注册表控制模块将所述本次注册值写入等待解锁 fifo中;
57.所述输出控制模块,还用于若已被锁定且等待解锁fifo已满,所述注册表控制模块将所述本次注册值写入注册失败fifo中;
58.所述输出控制模块,还用于若所述第一表项和所述第二表项只有一个为空,且空表项和所述本次注册信息不符合,所述注册表控制模块将所述本次注册值写入所述空表项中;
59.所述输出控制模块,还用于若所述第一表项和所述第二表项都为非空且被其他注册信息占用,所述注册表控制模块判定注册失败,将所述本次注册值写入注册失败fifo中。
60.在本发明一个实施例中,
61.所述输出控制模块,还用于使用所述tt帧的接收时间点和tt id的拼接值作为标识,使用两个不同的哈希函数获取哈希值,用两个所述哈希值分别索引第一注册表和第二注册表,获得第一表项和第二表项;
62.所述输出控制模块,还用于若所述第一表项和所述第二表项都没有本次注册值,则反馈查失败。
63.所述输出控制模块,还用于若所述第一表项或所述第二表项有本次注册值,则根据本次的输出端口是否为所有输出端口判断是否需要注销;
64.所述输出控制模块,还用于若需要注销,所述注册表控制模块在查到的表项中写入表项无效,并反馈查结果;
65.所述输出控制模块,还用于若不需要注销,则更新本条表项的输出端口为剩余待发送端口,对本表项上锁一次,并反馈查结果。
66.在本发明一个实施例中,
67.所述输出控制模块,还用于在初始状态下,将所述缓存描述符存储在空闲分片fifo中;
68.所述输出控制模块,还用于在有tt帧需要存储时,从所述空闲分片fifo中获取所述缓存描述符;
69.所述输出控制模块,还用于若注册失败、tt帧发送成功或者需要缓存释放时,将缓
存描述符重新写入所述空闲分片fifo中。
70.在本发明一个实施例中,
71.所述单多播输出控制模块,还用于从tt帧发送fifo中获取输出tt帧对应的缓存描述符;
72.所述单多播输出控制模块,还用于从所述分片缓存区中提取所述输出tt帧,在规定的发送时间点发送出去;
73.所述单多播输出控制模块,还用于在完成发送后,释放所述输出tt帧对饮的分片缓存区,或,对所述注册表中所述输出tt帧对应的表项解锁一次。
74.与现有技术相比,本发明的有益效果:
75.本发明所提供的时间触发以太网交换机tt业务交换装置中设计抢占式接收支持高优先级的tt 帧抢占低优先级的tt帧,设计虚拟多播端口将多播问题转换成单播问题,采用注册与查表方式设计依据调度表完成tt帧调度的调度器,使得某一条业务流的增加或删除不影响其他业务流,优化设计输入侧和输出侧缓存区改进单帧存储式tt平面,为时延要求不同的tt流提供区别服务,指定 tt流的发送推迟不会影响其他tt流,从而减少调度规划时需要额外添加的约束条件,降低调度规划与交换硬件转发关联性,支持多种tt业务转发行为,保障tt业务的可靠性传输。
76.通过以下参考附图的详细说明,本发明的其它方面和特征变得明显。但是应当知道,该附图仅仅为解释的目的设计,而不是作为本发明的范围的限定,这是因为其应当参考附加的权利要求。还应当知道,除非另外指出,不必要依比例绘制附图,它们仅仅力图概念地说明此处描述的结构和流程。
附图说明
77.图1为本发明实施例提供的一种时间触发以太网交换机tt业务交换装置的结构示意图;
78.图2为本发明实施例提供的一种接收调度表模块的结构示意图;
79.图3为本发明实施例提供的一种发送调度表模块的结构示意图;
80.图4为本发明实施例提供的一种输入控制模块的结构示意图;
81.图5为本发明实施例提供的接收表项模块的波形图;
82.图6为本发明实施例提供的接收表项模块的波形图;
83.图7为本发明实施例提供的读取表项模块的波形图;
84.图8为本发明实施例提供的接收信息控制模块开始工作的波形图;
85.图9为本发明实施例提供的接收信息控制模块控制接收窗的波形图;
86.图10为本发明实施例提供的帧接收控制模块的波形图;
87.图11为本发明实施例提供的接收调度控制模块的波形图;
88.图12为本发明实施例提供的一种输出控制模块的结构示意图;
89.图13为本发明实施例提供的接收仲裁控制模块的波形图;
90.图14为本发明实施例提供的一种异型cioq两级交换结构示意图;
91.图15为本发明实施例提供的转发接收控制模块的波形图;
92.图16为本发明实施例提供的注册表控制模块注册的波形图;
93.图17为本发明实施例提供的注册表控制模块发送调度查的波形图;
94.图18为本发明实施例提供的一种时间触发以太网交换机tt业务交换方法的流程图;
95.图19为本发明实施例提供的发送调度模块的波形图;
96.图20为本发明实施例提供的一种时间触发以太网交换机tt业务交换方法的流程图;
97.图21为本发明实施例提供的缓存释放模块的波形图;
98.图22为本发明实施例提供的空闲分片fifo的波形图;
99.图23为本发明实施例提供的发送控制模块的波形图;
100.图24为本发明实施例提供的1口接收调度控制模块抢占传输的波形图;
101.图25为本发明实施例提供的2口接收调度控制模块被抢占的波形图;
102.图26为本发明实施例提供的接收仲裁控制模块发生抢占时的波形图;
103.图27为本发明实施例提供的转发接收控制模块发生抢占时的波形图;
104.图28为本发明实施例提供的一种时间触发以太网交换机tt业务交换装置工作流程;
105.图29为本发明实施例提供的时间触发以太网交换机tt业务交换装置可支持的tt帧的转发行为示意图。
具体实施方式
106.下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。
107.本公开中的时间触发以太网交换机tt业务交换装置通过可编程逻辑芯片fpga实现。
108.请参见图1,图1为本发明实施例提供的一种时间触发以太网交换机tt业务交换装置的结构示意图。本发明提供一种时间触发以太网交换机tt业务交换装置,该装置包括:
109.总体控制模块1,用于在检测到时间触发以太网交换机tt业务交换平面上电后进行初始化,并等待时钟同步后控制其他各个模块进入工作状态;
110.具体的,总体控制模块用于对tt业务平面工作流程进行控制,系统上电进行初始化,等待时钟同步后进入工作状态。若系统失步或系统复位操作,则进行复位操作。
111.接收调度表模块2,用于根据接收调度表,按照系统时间将接收调度表发送至输入控制模块;
112.在一种可实现方式中,接收调度表模块,还用于在检测到接收调度信息fifo非满时,进行读表操作;
113.接收调度表模块,还用于依次读取接收调度一级表中的各个表项,其中,从起始地址为0表项开始读取接收调度一级表,并按照各个表项中的链表下一跳地址依次访问各个接收调度一级表;其中,调度一级表格式可以如表1所示:
114.表1调度一级表格式
115.接收时间发送时间tt id链表下一跳64bit64bit16bit16bit
116.图2为本发明实施例提供的一种接收调度表模块的结构示意图,在一个实施例中,可以通过图 2中的读一级表模块访问接收调度一级表,起始地址为0,按照链表下一跳地址依次访问。
117.接收调度表模块,还用于对接收调度一级表中的每一个表项中的第一tt id为键值计算哈希值,以哈希值分别访问接收调度二级表的每一个表项;
118.在一个实施例中,可以通过图2中的读二级表模块以第一tt id为键值计算哈希值,以该哈希值访问接收调度二级表,其中,接收调度二级表格式可以如表2所示:
119.表2接收调度二级表格式
120.tt id准入端口发送端口接收窗长限制帧长链表有效下一跳16bit32bit32bit16bit11bit1bit12bit
121.接收调度表模块,还用于检查在接收调度二级表访问到的表项中的第二tt id是否与接收调度一级表的表项中的第一tt id一致;
122.若第二tt id与第一tt id一致,且准入端口和发送端口有效,表示查询正确,接收调度表模块,还用于将第二tt id对应的接收调度二级表中的表项和第一tt id对应的接收调度一级表中的表项进行拼接得到拼接表;
123.若第二tt id与第一tt id一致,且准入端口和发送端口无效,则查失败;
124.若第二tt id与第一tt id不一致,且接收调度一级表中的链表有效字段有效,接收调度表模块,还用于以下一跳为地址继续索引;
125.若第二tt id与第一tt id不一致,且接收调度一级表中的链表有效字段无效,则查失败;
126.在一个实施例中,可以通过图2中的发送表项模块检查第二tt id是否与第一tt id一致。若一致,且准入端口和发送端口有效,表示查询正确,将表项进行拼接;若一致,且准入端口和发送端口无效,则查失败;若不一致,且链表有效字段有效,以下一跳为地址继续索引;若不一致,且链表有效字段无效,则查失败。
127.接收调度表模块,还用于将拼接表发送至输入控制模块;
128.在一个实施例中,可以通过图2中的发送表项模块将拼接表发送至输入控制模块。
129.在一种可实现方式中,若接收调度表为单级表格式,可以通过如下方式生成两级表:
130.①
建立无冲突集和有冲突集:遍历单级的接收调度表,计算tt id的哈希值,若哈希值不存在于无冲突集,则将表项放在无冲突集;否则,将表项放在有冲突集。
131.②
再次遍历单级的接收调度表,在一级表中,按照遍历的顺序放在对应地址,链表下一跳连续递增,对于最后一条表项跳回起始地址。
132.③
对于二级表,若表项在无冲突集,则按照tt id的哈希值放在二级表的相应位置;否则,则暂时跳过该条表项。此时所有无冲突集的表项都已经写入二级表。
133.④
遍历二级表,获取所有二级表未填充地址,按顺序记录。
134.⑤
再次遍历单级的接收调度表,对有冲突集表项,从二级表未填充地址中获取一个地址,在该地址填写本表项的二级表内容,链表设为无效。计算tt id的哈希值访问二级表,若下一跳无效,则修改为本次记录的二级表地址;否则,以此下一跳继续索引,直到无效,再次修改为本次记录的二级表地址。
135.发送调度表模块6,用于根据发送调度表,按照系统时间将发送调度表发送至输出控制模块;其中,发送调度表为单级查表,发送调度表格式如表3所示:
136.表3发送调度表格式
137.发送时间接收时间tt id发送端口发送窗长多播指示下一跳64bit64bit16bit32bit14bit1bit16bit
138.具体的:
139.发送调度表模块,还用于当检测到发送调度信息fifo非满时,进行读表操作;
140.图3为本发明实施例提供的一种发送调度表模块的结构示意图,在一个实施例中,可以通过图 3所示的读表模块进行读表操作。
141.发送调度表模块,还用于从起始地址为0的表项开始读取发送调度表,并按照发送调度表中各个表项对应的下一跳地址依次访问各个发送调度表的表项;
142.发送调度表模块,还用于在查完成后,将发送调度表发送给各个输出控制模块。
143.具体的,可以通过图3所示的发送表项模块将接收调度表派发给各个输出控制模块。
144.输入控制模块3,用于根据接收调度表模块发送的接收调度表接收合法tt帧,并存入输入缓存区,其中,输入控制模块与端口一一对应;
145.具体的,输入控制模块与端口一一对应,根据接收调度表模块发送的接收调度表接收合法tt 帧存入输入缓存区。并根据目的输出端口的输出控制模块状态,将tt帧转发至对应输出缓存区。
146.由于上述的接收调度表是以广播方式派发给输入控制模块的,因此,输入控制模块,还用于检测输入控制模块对应端口是否为接收调度表的表项准入端口之一;
147.具体的,图4为本发明实施例提供的一种输入控制模块的结构示意图,可以通过图4中的接收表项模块根据对应端口是否为该接收调度表表项准入端口之一判断是否接收该表项,图5和图6为本发明实施例提供的接收表项模块的波形图。
148.若是,则输入控制模块,还用于接收接收调度表的表项,并存入接收调度信息fifo中;其中,调度信息fifo如表4所示:
149.表4接收调度信息fifo
150.限制帧长转发端口接收窗长tt id发送时间接收时间113216166464
151.输入控制模块,还用于根据系统时间,从接收调度表信息fifo中读取接收调度信息,依据接收时间点和接收窗长,产生一个接收窗;其中,每次接收窗计数器被重置时,产生一个接收统计脉冲,接收统计脉冲表示可以再次接收一个新的tt帧,每次接收tt帧需要消耗一个脉冲;
152.具体的,可以通过图4中的读取表项模块依据系统时间,从接收调度表信息fifo中读取接收调度信息,接收信息控制模块依据接收时间点和接收窗长,产生一个接收窗。为了避免接收窗因为接收相同的tt id帧重置导致出现多个接收窗粘连,每次接收窗计数器被重置时,需要产生一个接收统计脉冲,其中,图7为本发明实施例提供的读取表项模块的波形图,图8为本发明实施例提供的接收信息控制模块开始工作的波形图,图9为本发明实施例提供的接收信息控制模块控制接收窗的波形图。
153.输入控制模块,还用于在tt帧到达时根据接收窗是否开启决定是否接收tt帧;
154.若tt帧落在接收窗内,则输入控制模块,还用于对tt帧进行缓存;
155.输入控制模块,还用于检测tt帧是否接收出错;
156.若接收出错,则输入控制模块,还用于将输入缓存区的写地址退回到错误帧的起始位置;若接收正确,将tt帧对应的接收调度信息写入接收调度信息fifo;
157.具体的,当tt帧到达时可以通过图4中的帧接收控制模块根据接收窗是否开启决定是否接收 tt帧。若tt帧落在接收窗内,则对数据进行缓存,提取数据信息,进行校验;若校验出错、接收过程中接收窗关闭、接收超过调度要求数量的tt帧或接收缓存区溢出,则判定接收出错。若接收出错,帧接收控制模块将输入缓存区的写地址退回到错误帧的起始位置;若接收正确,将tt帧长等接收调度信息写入接收调度fifo,图10为本发明实施例提供的帧接收控制模块的波形图,接收调度fifo如表5所示:
158.表5接收调度fifo
159.限制帧长转发端口tt id发送时间接收时间1132166464
160.输入控制模块,还用于从接收调度信息fifo中取出下一帧的调度信息,将tt帧和下一帧的调度信息发送至数据总线,并监听控制通道上目标输出控制模块是否有反馈信号;
161.若收到反馈信号,则输入控制模块,还用于继续搬移下一个tt帧。
162.具体的,可以通过图4中的接收调度控制模块从接收调度fifo中取出下一帧的调度信息,将 tt帧和调度信息发送至数据总线,并监听控制通道上目标输出控制模块是否有反馈信号。若收到反馈信号,则继续搬移下一个tt帧,其中,图11为本发明实施例提供的接收调度控制模块的波形图。
163.进一步的,如图4所示,输入控制模块与端口一一对应,根据接收调度表模块发送的接收调度表接收合法tt帧存入输入缓存区。并根据目的输出端口的输出控制模块状态,将tt帧转发至对应输出缓存区。其中,接收表项模块获取接收调度表,将其恢复后存入接收调度信息fifo中;读取表项模块按照系统时间完成接收调度信息fifo的读取;接收信息控制模块控制接收窗的开闭,产生接收统计脉冲指示该接收窗能够接收tt帧的个数;帧接收控制模块将tt帧存入输入缓存区,并生成 tt帧描述符存入接收调度fifo中,并完成tt帧的位宽转换、接收校验、错误校验;接收调度控制模块从接收调度fifo中获取tt帧描述符,从输入缓存中获取tt帧发送到目的输出端口的输出控制模块。
164.全互联交换控制模块4,用于完成输入控制模块和输出控制模块的连接,将输入缓存区中缓存的tt帧发送至对应的输出控制模块;
165.其中,全互联交换控制模块,完成输入控制模块和输出控制模块的连接,通过数据通道和控制通道控制输入控制模块和输出控制模块数据、信息交互。
166.输出控制模块5,用于从各输入控制模块的数据通道中选择出一个本次要接收的tt帧,并根据输出缓存区的大小,计算出能够接收的最大帧长,将接收的tt帧存储至输出缓存区,并保存tt帧在输出缓存区中的位置,在本地直接临近发送时间时,从发送调度信息fifo中存储的所述发送调度表中获取发送信息,在输出缓存区中进行发送调度查;其中,输出缓存区采用sram实现分片缓存区,通过缓存描述符索引缓存区;其中,输出控制模块包
括:单播输出控制模块和多播输出控制模块;单播输出控制模块与端口一一对应。
167.具体的,图12为本发明实施例提供的一种输出控制模块的结构示意图,tt帧经过全互联交换模块发送至对应端口的输出控制模块,输出控制模块中的接收仲裁控制模块从各输入控制模块的数据通道中选择出一个本次要接收的tt帧,并根据输出缓存区的大小,计算出能够接收的最大帧长,其中,图13为本发明实施例提供的接收仲裁控制模块的波形图。
168.本公开中的存储转发器采用如图14所示的异型cioq两级交换结构,它基于cioq的crossbar 结构,增加了一个虚拟多播端口。多播帧会被发送至虚拟多播端口,由虚拟多播端口向所有端口转发。
169.进一步的,输出控制模块,还用于在没有正在传输的tt帧时,使用优先级编码器从tt帧帧长满足预设帧长的tt帧中确定要传输的tt帧;
170.具体的,若没有正在传输的tt帧,图12中的接收仲裁控制模块不对发送时间进行要求,只对 tt帧帧长进行要求。但是这可能会有多个tt帧符合要求,转发接收控制模块使用优先级编码器确定要传输的tt帧,其中,图15为本发明实施例提供的转发接收控制模块的波形图。
171.输出控制模块,还用于如果有正在传输的tt帧,且有多个输入控制模块对应的输入通道申请发送,则从各个申请发送时间中获取小于当前正在传输的tt帧的发送时间的目标输入控制模块对应的目标输入通道,则暂停当前帧的接收,对符合要求的新帧进行接收;
172.具体的,如果有正在传输的tt帧,又存在多个输入通道申请发送,图12中的接收仲裁模块会并行比较申请发送的时间,到小于当前正在传输帧的发送时间即可。
173.输出控制模块,还用于在接收tt帧的过程中有新的tt帧满足发送条件且发送时间比当前tt 帧的发送时间距离当前时间更近,则暂停对当前tt帧的接收,将当前tt帧的接收状态挂起,采用后入先出的结构来完成接收状态的挂起,开始接收更加迫切的tt帧;
174.输出控制模块,还用于当一个tt帧完成发送后,首先检查是否有被挂起的tt帧,如果有,则优先发送被挂起的tt帧。
175.具体的,在接收的过程中有新的tt帧满足发送条件且比当前tt帧更加迫切,图12中的转发接收控制模块暂停当前tt帧的接收,将当前帧的接收状态挂起,采用后入先出(lifo)的结构来完成接收状态的挂起,开始接收更加迫切的帧。当一个tt帧完成发送后,转发接收控制模块首先检查是否有被挂起的tt帧,如果有,则优先发送该tt帧。
176.进一步的,如图12所示,tt帧缓存在输出缓存区后,注册表控制模块进行“注册”操作,将 tt帧在缓存区中的位置记录下来,用于发送调度时对tt帧的索引,其中,图16为本发明实施例提供的注册表控制模块注册的波形图,图17为本发明实施例提供的注册表控制模块发送调度查的波形图,具体的:
177.输出控制模块,还用于使用tt帧的接收时间点和tt id的拼接值作为标识,使用两个不同的哈希函数获取哈希值,用两个哈希值分别索引第一注册表和第二注册表,获得第一表项和第二表项;其中,注册表如表6所示:
178.表6注册表(231
×
512)
179.接收时间tt id发送端口帧长分片id64163211108
180.输出控制模块,还用于若第一表项和第二表项都为空,注册表控制模块则将本次注册信息写入第一表项。
181.输出控制模块,还用于若第一表项或第二表项有本次注册值,则检查哈希值对应的表项是否被锁定;输出控制模块,还用于若未被锁定,注册表控制模块将表项中原有信息写入注册失败fifo中,将本次注册值写入表项中;
182.输出控制模块,还用于若已被锁定,注册表控制模块将本次注册值写入等待解锁fifo中;
183.输出控制模块,还用于若已被锁定且等待解锁fifo已满,注册表控制模块将本次注册值写入注册失败fifo中;
184.输出控制模块,还用于若第一表项和第二表项只有一个为空,且非空表项和本次注册信息不符合,注册表控制模块将本次注册值写入空表项中;
185.输出控制模块,还用于若第一表项和第二表项都为非空且被其他注册信息占用,注册表控制模块判定注册失败,将本次注册值写入注册失败fifo中。
186.具体的,参考图12和图18,
187.(1)注册表控制模块使用tt帧的接收时间点和tt id的拼接值作为标识,使用两个不同的哈希函数获取哈希值,用这两个哈希值分别索引注册表a和注册表b,获得itema和itemb。
188.(2)若itema和itemb都为空,注册表控制模块则将本次注册信息写入itema。
189.(3)若itema或itemb有本次注册值,则检查表项是否被锁定:
190.①
若未被锁定,注册表控制模块将表项中原有信息写入注册失败fifo中,将本次注册值写入表项中。
191.②
若已被锁定,说明旧tt帧被调度但是还没有完成发送,注册表控制模块将本次注册值写入等待解锁fifo中。
192.③
若已被锁定且等待解锁fifo已满,注册表控制模块将本次注册值写入注册失败fifo中。
193.(4)若itema和itemb只有一个为空的,且非空表项和本次注册信息不符合,注册表控制模块将本次注册值写入这个空表项中。
194.(5)若itema和itemb都被非空且被其他注册信息占用,注册表控制模块判定注册失败,将本次注册值写入注册失败fifo中。
195.进一步的,如图12所示,本地直接临近发送时间时,输出控制模块中的发送调度模块从发送调度信息fifo中获取发送信息,进行发送调度查,图19为本发明实施例提供的发送调度模块的波形图。
196.具体的,输出控制模块,还用于使用tt帧的接收时间点和tt id的拼接值作为标识,使用两个不同的哈希函数获取哈希值,用两个哈希值分别索引第一注册表和第二注册表,获得第一表项和第二表项;
197.输出控制模块,还用于若第一表项和第二表项都没有本次注册值,则反馈查失败。
198.输出控制模块,还用于若第一表项或第二表项有本次注册值,则根据本次的输出端口是否为所有输出端口判断是否需要注销;
199.输出控制模块,还用于若需要注销,注册表控制模块在查到的表项中写入表项无效,并反馈查结果;
200.输出控制模块,还用于若不需要注销,则更新本条表项的输出端口为剩余待发送端口,对本表项上锁一次,并反馈查结果。
201.具体的,参考图12和图20:
202.注册表控制模块使用tt帧的接收时间点和tt id的拼接值作为标识,使用两个不同的哈希函数获取哈希值,用这两个哈希值分别索引注册表a和注册表b,获得itema和itemb。
203.(2)若itema和itemb都没有本次注册值,则反馈查失败。
204.(3)若itema或itemb有本次注册值,则根据本次的输出端口是否为所有输出端口判断是否需要注销:
205.③
若需要注销,注册表控制模块在查到的表项中写入表项无效,并反馈查结果。
206.④
若不需要注销,则更新剩余发送端口,对本表项上锁一次,并反馈查结果。
207.(4)一次查失败并不意味着调度失败,可以根据发送窗决定是否再次发起查表。
208.进一步的,输出缓存区采用sram实现分片缓存区,通过缓存描述符索引缓存区。
209.具体的,输出控制模块,还用于在初始状态下,将缓存描述符存储在空闲分片fifo中;
210.输出控制模块,还用于在有tt帧需要存储时,从空闲分片fifo中获取缓存描述符;
211.输出控制模块,还用于若注册失败、tt帧发送成功或者需要缓存释放时,将缓存描述符重新写入空闲分片fifo中。
212.可以通过图12中的缓存释放模块将缓存描述符重新写入空闲分片fifo中,图21为本发明实施例提供的缓存释放模块的波形图,图22为本发明实施例提供的空闲分片fifo的波形图。
213.具体的,如图12所示,输出控制模块分为单播输出控制模块和多播输出控制模块,单播输出控制模块与端口一一对应。将tt帧缓存在输出缓存区中,根据发送调度表模块发送的发送调度表访问tt缓存区,对tt帧进行发送。其中,接收控制模块对tt帧内部转发请求进行仲裁,将符合要求的请求交给转发接收控制模块;转发接收控制模块采用优先编码器从符合要求的请求中选择接收的tt帧,若tt帧接收过程中收到接收仲裁控制模块发送的新申请,则将该tt帧挂起,接收新的 tt帧,tt帧接收完成后,优先发送挂起的tt帧;注册表控制模块完成与注册表有关的读写操作,公平轮询相关fifo,完成注册申请或发送调度查申请;接收表项模块接收发送调度表并写入发送调度信息fifo;发送调度模块按照系统时间完成发送调度信息fifo的读取,产生发送窗,向注册表控制模块发起发送调度表查表请求,并等待查表结果;缓存释放模块将需要释放的缓存描述符写入空闲分片fifo;发送控制模块从tt帧发送fifo中获取tt帧描述符,从对应的分片缓存区中搬移tt帧发送出去,搬移完成后释放缓存或解锁注册表表项,图23为本发明实施例提供的发送控制模块的波形图。
214.单多播输出控制模块6,用于根据发送调度表模块发送的发送调度表访问tt缓存区,选择输出单播输出控制模块,或者,多播输出控制模块的输出数据,在规定的发送时间点对tt帧进行发送。
215.具体的,单多播输出控制模块6还包括发送控制模块,上述的步骤可由发送控制模块完成,也即,发送控制模块,用于根据发送调度表模块发送的发送调度表访问tt缓存区,选择输出单播输出控制模块,或者,多播输出控制模块的输出数据,在规定的发送时间点对tt帧进行发送。
216.所述单多播输出控制模块与端口一一对应,选择输出单播/多播输出控制模块的输出数据。当检测到该端口是虚拟多播端口tt帧的目的端口之一时,输出虚拟多播端口tt帧;否则,输出该端口输出控制模块的tt帧。
217.具体的,发送控制模块,还用于从tt帧发送fifo中获取输出tt帧对应的缓存描述符;
218.发送控制模块,还用于从分片缓存区中提取输出tt帧,在规定的发送时间点发送出去;
219.发送控制模块,还用于在完成发送后,释放输出tt帧对应的分片缓存区,或,对注册表中输出tt帧对应的表项解锁一次。
220.本发明目的在于针对上述已有技术的不足,提出一种时间触发以太网tt业务交换装置,设计抢占式接收支持高优先级的tt帧抢占低优先级的tt帧,图24为本发明实施例提供的1口接收调度控制模块抢占传输的波形图,图25为本发明实施例提供的2口接收调度控制模块被抢占的波形图,图26为本发明实施例提供的接收仲裁控制模块发生抢占时的波形图,图27为本发明实施例提供的转发接收控制模块发生抢占时的波形图,设计虚拟多播端口将多播问题转换成单播问题,采用注册与查表方式设计依据调度表完成tt帧调度的调度器,使得某一条业务流的增加或删除不影响其他业务流,优化设计输入侧和输出侧缓存区改进单帧存储式tt平面,为时延要求不同的tt流提供区别服务,指定tt流的发送推迟不会影响其他tt流,从而减少调度规划时需要额外添加的约束条件,降低调度规划与交换硬件转发关联性,支持多种tt业务转发行为,保障tt业务的可靠性传输。
221.设计抢占式接收支持高优先级的tt帧抢占低优先级的tt帧,设计虚拟多播端口将多播问题转换成单播问题,采用注册与查表方式设计依据调度表完成tt帧调度的调度器,使得某一条业务流的增加或删除不影响其他业务流,优化设计输入侧和输出侧缓存区改进单帧存储式tt平面,为时延要求不同的tt流提供区别服务,指定tt流的发送推迟不会影响其他tt流,从而减少调度规划时需要额外添加的约束条件,降低调度规划与交换硬件转发关联性,支持多种tt业务转发行为,保障tt业务的可靠性传输。
222.图28为本发明实施例提供的一种时间触发以太网交换机tt业务交换装置工作流程,如图28 所示:
223.1.系统上电后进行初始化,等待时钟同步后进入工作状态。
224.系统上电进行初始化,完成异步复位同步释放,控制其他模块执行初始化操作;等待时钟同步后进入工作状态。若系统失步或系统复位操作,则进行复位操作。
225.2.依据系统时间将接收调度表和发送调度表分别派发给各个输入控制模块和输出控制模块。
226.进一步,所述步骤2包括以下步骤:
227.(1)接收调度表派发流程:
228.①
接收调度表分为两级查表,当接收调度信息fifo非满时,进行读表操作。
229.②
访问一级表,起始地址为0,按照链表下一跳地址依次访问。
230.③
以tt id为键值计算哈希值,以哈希值访问二级表。
231.④
检查tt id是否与一级表一致。若tt id一致,且准入端口和发送端口有效,表示查询正确,将表项进行拼接;若tt id一致,且准入端口和发送端口无效,则查失败;若tt id不一致,且链表有效字段有效,以下一跳为地址继续索引;若tt id不一致,且链表有效字段无效,则查失败。
232.⑤
查成功并且拼接信息后,将接收调度表派发给各个输入控制模块。
233.(2)发送调度表派发流程:
234.①
发送调度表分为单级查表,当发送调度信息fifo非满时,进行读表操作。
235.②
起始地址为0,按照链表下一跳地址依次访问。
236.③
查完成后,将发送调度表派发给各个输出控制模块。
237.(3)若接收调度表为单级表格式,可以生成两级表。
238.步骤2提出了一种两级查接收调度表的方法,这是因为同一个tt id的tt帧可能会在矩阵周期内的不同时间内多次接收,它的收发端口、接收窗、帧长信息都是相同的,采用两级查表可以避免重复信息的存取,减少资源消耗。
239.3.输入控制模块获取接收调度表,按照接收调度表对tt帧进行接收,并存入接收缓存区。按照接收数据顺序,转发给对应的输出控制模块。
240.进一步,所述步骤3包括以下步骤:
241.(1)步骤2中接收调度表以广播方式派发给输入控制模块,因而需要根据对应端口是否为该接收调度表表项准入端口之一判断是否接收该表项。如果接收,则存入接收调度信息fifo中。
242.(2)依据系统时间,从接收调度表信息fifo中读取接收调度信息,依据接收时间点和接收窗长,产生一个接收窗。为了避免接收窗因为接收相同的tt id帧重置导致出现多个接收窗粘连,每次接收窗计数器被重置时,需要产生一个接收统计脉冲表示可以再次接收一个新的tt帧,每次接收tt帧需要消耗一个脉冲。
243.(3)tt帧到达时根据接收窗是否开启决定是否接收tt帧。若tt帧落在接收窗内,则对数据进行缓存,提取数据信息,进行校验;若校验出错、接收过程中接收窗关闭、接收超过调度要求数量的tt帧或接收缓存区溢出,则判定接收出错。
244.(4)若接收出错,则输入缓存区的写地址退回到错误帧的起始位置;若接收正确,将tt帧长等接收调度信息写入接收调度fifo。
245.(5)从接收调度fifo中取出下一帧的调度信息,将tt帧和调度信息发送至数据总线,并监听控制通道上目标输出控制模块是否有反馈信号。若收到反馈信号,则继续搬移下一个tt帧。
246.步骤3提出了一种tt帧输入缓存的方法,保障了同一时刻多个输入端口收到需要发送至同一输出端口的tt业务不会丢帧。
247.4.tt帧经过全互联交换模块发送至对应端口的输出控制模块,输出控制模块从各输入控制模块的数据通道中选择出一个本次要接收的tt帧,并根据输出缓存区的大小,计算出能够接收的最大帧长。存储转发器采用异型cioq两级交换结构,它基于cioq的crossbar结构,增加了一个虚拟多播端口。多播帧会被发送至虚拟多播端口,由虚拟多播端
口向所有端口转发。
248.进一步,所述步骤4包括以下步骤:
249.(1)若没有正在传输的tt帧,则不对发送时间进行要求,只对tt帧帧长进行要求。但是这可能会有多个tt帧符合要求,使用优先级编码器确定要传输的tt帧。
250.(2)如果有正在传输的tt帧,又存在多个输入通道申请发送,则并行比较申请发送的时间,到小于当前正在传输帧的发送时间即可。
251.(3)在接收的过程中有新的tt帧满足发送条件且比当前tt帧更加迫切,则暂停当前tt帧的接收,将当前帧的接收状态挂起,采用后入先出(lifo)的结构来完成接收状态的挂起,开始接收更加迫切的帧。
252.(4)当一个tt帧完成发送后,首先检查是否有被挂起的tt帧,如果有,则优先发送该tt 帧。
253.步骤4采用异型cioq两级交换结构,避免单播和多播的混合调度,提出了一种抢占式接收方式,保障了发送时间迫切的tt帧的内部转发,降低调度算法复杂度。
254.5.tt帧缓存在输出缓存区后,进行“注册”操作,将tt帧在缓存区中的位置记录下来,用于发送调度时对tt帧的索引。
255.进一步,所述步骤5包括以下步骤:
256.(1)使用tt帧的接收时间点和tt id的拼接值作为标识,使用两个不同的哈希函数获取哈希值,用这两个哈希值分别索引注册表a和注册表b,获得itema和itemb。
257.(2)若itema和itemb都为空,则将本次注册信息写入itema。
258.(3)若itema或itemb有本次注册值,则检查表项是否被锁定:
259.①
若未被锁定,则将表项中原有信息写入注册失败fifo中,将本次注册值写入表项中。
260.②
若已被锁定,说明旧tt帧被调度但是还没有完成发送,将本次注册值写入等待解锁fifo 中。
261.③
若已被锁定且等待解锁fifo已满,将本次注册值写入注册失败fifo中。
262.(4)若itema和itemb只有一个为空的,且空表项和本次注册信息不符合,将本次注册值写入这个空表项中。
263.(5)若itema和itemb都被非空且被其他注册信息占用,则判定注册失败,将本次注册值写入注册失败fifo中。
264.6.本地直接临近发送时间时,从发送调度信息fifo中获取发送信息,进行发送调度查。
265.进一步,所述步骤6包括以下步骤:
266.(1)使用tt帧的接收时间点和tt id的拼接值作为标识,使用两个不同的哈希函数获取哈希值,用这两个哈希值分别索引注册表a和注册表b,获得itema和itemb。
267.(2)若itema和itemb都没有本次注册值,则反馈查失败。
268.(3)若itema或itemb有本次注册值,则根据本次的输出端口是否为所有输出端口判断是否需要注销:
269.①
若需要注销,则在查到的表项中写入表项无效,并反馈查结果。
270.②
若不需要注销,则更新剩余发送端口,对本表项上锁一次,并反馈查结果。
271.(4)一次查失败并不意味着调度失败,可以根据发送窗决定是否再次发起查表。
272.步骤5、6提出了一种注册与查表索引的调度器,提高调度灵活性,某一条数据流表项的增加和删除不会影响其他数据流。
273.7.输出缓存区采用sram实现分片缓存区,通过缓存描述符索引缓存区。
274.进一步,所述步骤7包括以下步骤:
275.(1)初始状态下,缓存描述符存储在空闲分片fifo中。
276.(2)有tt帧需要存储时,从空闲分片fifo中获取缓存描述符。
277.(3)注册失败、tt帧发送成功、需要缓存释放,将缓存描述符重新写入空闲分片fifo中。
278.步骤7采用缓存分片方式管理输出侧缓存,提高缓存利用率,可以缓存多个tt帧。
279.8.根据发送调度表模块发送的发送调度表访问tt缓存区,选择输出单播/多播输出控制模块的输出数据,在规定的发送时间点对tt帧进行发送。
280.进一步,所述步骤8包括以下步骤:
281.(1)发送控制模块从tt帧发送fifo中获取缓存描述符。
282.(2)将tt帧从分片缓存区中提取,在规定的发送时间点发送出去。
283.(3)完成发送后,释放缓存区,或对其注册表中相应的表项解锁一次。
284.图29为本发明实施例提供的时间触发以太网交换机tt业务交换装置可支持的tt帧的转发行为示意图,如图10所示,单帧缓存的tt平面可以完成顺序无重叠的tt业务转发,但是顺序有重叠需要发送缓存区支持多帧缓存。逆序是不同tt id帧的逆序。输入冲突是指同一时刻不同输入端口存在发往同一输出端口的tt帧。相互转发是指不同输入端口同时输入的tt帧向不同端口转发。输出冲突是指同一输入端口先后输入的tt帧需要在同一时刻发送至不同的输出端口。同时多播是指多播tt帧需要在同一时刻发送至所有输出端口。分时多播是指多播tt帧需要在不同时刻发送至所有输出端口。
285.本发明提出的时间触发以太网交换机tt业务交换平面,支持高优先级的tt帧抢占低优先级的 tt帧,设计虚拟多播端口将多播问题转换成单播问题,采用注册与查表方式设计依据调度表完成 tt帧调度的调度器,改进单帧存储式tt平面,优化设计输入侧和输出侧缓存区。
286.与现有技术相比,具有如下的技术效果:
287.(1)增加输入侧缓存,同一时刻多个输入端口收到需要发送至同一输出端口的tt业务不会丢帧;
288.(2)采用缓存分片方式管理输出侧缓存,提高缓存利用率,可以缓存多个tt帧,当出现输出端口正在发送tt帧时,输入端口接收的新的需要发送至该输出端口的tt帧不会被丢弃。
289.(3)采取抢占式内部转发机制,优先接收发送时间更为紧迫的tt帧,确保tt帧能够即时到达发送缓存正确调度。
290.(4)设计实现了一种异性cioq交换结构,增加虚拟多播输出端口,将多播问题转换成单播问题,解决了多播帧需要等待所有输出端口空闲才能调度导致可能错过发送时间点的问题。
291.(5)支持接收连续相同tt id的tt帧,允许“粘连”的接收窗接收指定个数的tt帧。
292.(6)采用注册与查表的方法进行输出调度,提高调度灵活性,将调度规划和交换硬件转发设计解耦合,降低复杂网络拓扑调度表生成失败的概率。
293.(7)接收调度表和发送调度表采用链表设计,支持动态调度表配置,某一条数据流表项的增加和删除不会影响其他数据流。
294.(8)tt帧的发送顺序只取决于发送调度表,tt帧可以滞留任意时间。为时延要求不同的tt 流提供区别服务,指定tt流的发送推迟不会影响其他tt流。
295.在本发明的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
296.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特数据点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特数据点可以在任何的一个或多个实施例或示例中以合适的方式结合。此外,本领域的技术人员可以将本说明书中描述的不同实施例或示例进行接合和组合。
297.以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

技术特征:


1.一种时间触发以太网交换机tt业务交换装置,所述装置包括:总体控制模块,用于在检测到所述时间触发以太网交换机tt业务交换平面上电后进行初始化,并等待时钟同步后控制其他各个模块进入工作状态;接收调度表模块,用于根据接收调度表,按照系统时间将所述接收调度表发送至输入控制模块;发送调度表模块,用于根据发送调度表,按照系统时间将所述发送调度表发送至输出控制模块;输入控制模块,用于根据所述接收调度表模块发送的所述接收调度表接收合法tt帧,并存入输入缓存区,其中,所述输入控制模块与端口一一对应;全互联交换控制模块,用于完成所述输入控制模块和输出控制模块的连接,将所述输入缓存区中缓存的tt帧发送至对应的所述输出控制模块;输出控制模块,用于从各所述输入控制模块的数据通道中选择出一个本次要接收的tt帧,并根据输出缓存区的大小,计算出能够接收的最大帧长,将接收的tt帧存储至输出缓存区,并保存tt帧在所述输出缓存区中的位置,在本地直接临近发送时间时,从发送调度信息fifo中存储的所述发送调度表中获取发送信息,在所述输出缓存区中进行发送调度查;其中,所述输出缓存区采用sram实现分片缓存区,通过缓存描述符索引缓存区;其中,输出控制模块包括:单播输出控制模块和多播输出控制模块;单多播输出控制模块,用于根据发送调度表模块发送的发送调度表访问tt缓存区,选择输出所述单播输出控制模块,或者,所述多播输出控制模块的输出数据,在规定的发送时间点对tt帧进行发送。2.根据权利要求1所述的时间触发以太网交换机tt业务交换装置,其特征在于,所述接收调度表模块,还用于在检测到接收调度信息fifo非满时,进行读表操作;所述接收调度表模块,还用于依次读取接收调度一级表中的各个表项,其中,从起始地址为0表项开始读取所述接收调度一级表,并按照各个所述表项中的链表下一跳地址依次访问各个所述接收调度一级表;所述接收调度表模块,还用于对所述接收调度一级表中的每一个表项中的第一tt id为键值计算哈希值,以所述哈希值分别访问接收调度二级表的每一个表项;所述接收调度表模块,还用于检查在所述接收调度二级表访问到的表项中的第二tt id是否与所述接收调度一级表的表项中的所述第一tt id一致;若所述第二tt id与所述第一tt id一致,且准入端口和发送端口有效,表示查询正确,所述接收调度表模块,还用于将所述第二tt id对应的所述接收调度二级表中的表项和所述第一tt id对应的所述接收调度一级表中的表项进行拼接得到拼接表;若所述第二tt id与所述第一tt id一致,且所述准入端口和所述发送端口无效,则查失败;若所述第二tt id与所述第一tt id不一致,且所述接收调度一级表中的链表有效字段有效,所述接收调度表模块,还用于以下一跳为地址继续索引;若所述第二tt id与所述第一tt id不一致,且所述接收调度一级表中的链表有效字段无效,则查失败;所述接收调度表模块,还用于将所述拼接表发送至所述输入控制模块。
3.根据权利要求1所述的时间触发以太网交换机tt业务交换装置,其特征在于,所述发送调度表模,还用于当检测到发送调度信息fifo非满时,进行读表操作;所述发送调度表模,还用于从起始地址为0的表项开始读取所述发送调度表,并按照所述发送调度表中各个表项对应的下一跳地址依次访问各个所述发送调度表的表项;所述发送调度表模,还用于在查完成后,将所述发送调度表发送给各个所述输出控制模块。4.根据权利要求1所述的时间触发以太网交换机tt业务交换装置,其特征在于,所述输入控制模块,还用于检测所述输入控制模块对应端口是否为所述接收调度表的表项准入端口之一;若是,则所述输入控制模块,还用于接收所述接收调度表的表项,并存入接收调度信息fifo中;所述输入控制模块,还用于根据系统时间,从所述接收调度表信息fifo中读取接收调度信息,依据接收时间点和接收窗长,产生一个接收窗;其中,每次接收窗计数器被重置时,产生一个接收统计脉冲,所述接收统计脉冲表示可以再次接收一个新的tt帧,每次接收tt帧需要消耗一个脉冲;所述输入控制模块,还用于在tt帧到达时根据所述接收窗是否开启决定是否接收tt帧;若tt帧落在所述接收窗内,则所述输入控制模块,还用于对所述tt帧进行缓存;所述输入控制模块,还用于检测所述tt帧是否接收出错;若接收出错,则所述输入控制模块,还用于将输入缓存区的写地址退回到错误帧的起始位置;若接收正确,将所述tt帧对应的接收调度信息写入所述接收调度信息fifo;所述输入控制模块,还用于从所述接收调度信息fifo中取出下一帧的调度信息,将所述tt帧和所述下一帧的调度信息发送至数据总线,并监听控制通道上目标输出控制模块是否有反馈信号;若收到反馈信号,则所述输入控制模块,还用于继续搬移下一个tt帧。5.根据权利要求1所述的时间触发以太网交换机tt业务交换装置,其特征在于,所述输出控制模块,还用于在没有正在传输的tt帧时,使用优先级编码器从tt帧帧长满足预设帧长的tt帧中确定要传输的tt帧;所述输出控制模块,还用于如果有正在传输的tt帧,且有多个输入控制模块对应的输入通道申请发送,则从各个申请发送时间中获取小于当前正在传输的tt帧的发送时间的目标输入控制模块对应的目标输入通道,则暂停当前tt帧的接收,对符合要求的新tt帧进行接收;所述输出控制模块,还用于在接收tt帧的过程中有新的tt帧满足发送条件且发送时间比当前tt帧的发送时间距离当前时间更近,则暂停对所述当前tt帧的接收,将所述当前tt帧的接收状态挂起,采用后入先出的结构来完成接收状态的挂起,开始接收更加迫切的tt帧;所述输出控制模块,还用于当一个所述tt帧完成发送后,首先检查是否有被挂起的所述tt帧,如果有,则优先发送被挂起的所述tt帧。6.根据权利要求1所述的时间触发以太网交换机tt业务交换装置,其特征在于,
所述输出控制模块,还用于使用所述tt帧的接收时间点和tt id的拼接值作为标识,使用两个不同的哈希函数获取哈希值,用两个所述哈希值分别索引第一注册表和第二注册表,获得第一表项和第二表项;所述输出控制模块,还用于若所述第一表项和所述第二表项都为空,注册表控制模块则将本次注册信息写入所述第一表项;所述输出控制模块,还用于若所述第一表项或所述第二表项有本次注册值,则检查所述哈希值对应的表项是否被锁定;所述输出控制模块,还用于若未被锁定,所述注册表控制模块将表项中原有信息写入注册失败fifo中,将所述本次注册值写入表项中;所述输出控制模块,还用于若已被锁定,所述注册表控制模块将所述本次注册值写入等待解锁fifo中;所述输出控制模块,还用于若已被锁定且等待解锁fifo已满,所述注册表控制模块将所述本次注册值写入注册失败fifo中;所述输出控制模块,还用于若所述第一表项和所述第二表项只有一个为空,且空表项和所述本次注册信息不符合,所述注册表控制模块将所述本次注册值写入所述空表项中;所述输出控制模块,还用于若所述第一表项和所述第二表项都为非空且被其他注册信息占用,所述注册表控制模块判定注册失败,将所述本次注册值写入注册失败fifo中。7.根据权利要求1所述的时间触发以太网交换机tt业务交换装置,其特征在于,所述输出控制模块,还用于使用所述tt帧的接收时间点和tt id的拼接值作为标识,使用两个不同的哈希函数获取哈希值,用两个所述哈希值分别索引第一注册表和第二注册表,获得第一表项和第二表项;所述输出控制模块,还用于若所述第一表项和所述第二表项都没有本次注册值,则反馈查失败。所述输出控制模块,还用于若所述第一表项或所述第二表项有本次注册值,则根据本次的输出端口是否为所有输出端口判断是否需要注销;所述输出控制模块,还用于若需要注销,所述注册表控制模块在查到的表项中写入表项无效,并反馈查结果;所述输出控制模块,还用于若不需要注销,则更新本条表项的输出端口为剩余待发送端口,对本表项上锁一次,并反馈查结果。8.根据权利要求1所述的时间触发以太网交换机tt业务交换装置,其特征在于,所述输出控制模块,还用于在初始状态下,将所述缓存描述符存储在空闲分片fifo中;所述输出控制模块,还用于在有tt帧需要存储时,从所述空闲分片fifo中获取所述缓存描述符;所述输出控制模块,还用于若注册失败、tt帧发送成功或者需要缓存释放时,将缓存描述符重新写入所述空闲分片fifo中。9.根据权利要求1所述的时间触发以太网交换机tt业务交换装置,其特征在于,所述单多播输出控制模块,还用于从tt帧发送fifo中获取输出tt帧对应的缓存描述符;所述单多播输出控制模块,还用于从所述分片缓存区中提取所述输出tt帧,在规定的
发送时间点发送出去;所述单多播输出控制模块,还用于在完成发送后,释放所述输出tt帧对饮的分片缓存区,或,对所述注册表中所述输出tt帧对应的表项解锁一次。

技术总结


本发明涉及一种时间触发以太网交换机TT业务交换装置,通过设计抢占式接收支持高优先级的TT帧抢占低优先级的TT帧,设计虚拟多播端口将多播问题转换成单播问题,采用注册与查表方式设计依据调度表完成TT帧调度的调度器,使得某一条业务流的增加或删除不影响其他业务流,优化设计输入侧和输出侧缓存区改进单帧存储式TT平面,为时延要求不同的TT流提供区别服务,指定TT流的发送推迟不会影响其他TT流,从而减少调度规划时需要额外添加的约束条件,降低调度规划与交换硬件转发关联性,支持多种TT业务转发行为,保障TT业务的可靠性传输。保障TT业务的可靠性传输。保障TT业务的可靠性传输。


技术研发人员:

潘伟涛 高璐 邱智亮 黄进建

受保护的技术使用者:

西安电子科技大学

技术研发日:

2022.07.05

技术公布日:

2022/11/22

本文发布于:2022-11-30 21:18:02,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/4/16655.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:所述   模块   缓存   端口
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图