通宵晚班,睡了六个小时,起床后一个人开车去了离家十分钟左右的一条徒步道。四点半到达。
我预计一个小时来回,(我徒步行走很快)。但是我没有估算到今天是冬令时的第一天(立冬),其实已经很晚了。
刚开始天气很明亮很宜人。走了四十多分钟后开始暗下来。我就没有继续,并开始折回了。这时候发现非常难了,天色暗淡的速度快得让人猝不及防。到后面基本可以用伸手不见五指来形容了。
整个徒步区非常野生,有很多岔路口,非常多,四周看上去都是一样的,再加上密林深处,更是漆黑一片。脚下都是落叶树根,很多倒塌的树木,很多斜坡,很陡,很多地方需要攀爬,一不小心就会摔倒。
我需要走很快但又不能走错,有几次错过了正确的路口,感觉不对赶快折回,这样来来回回很考验心理。
当时还有一个插曲,我回头往后看的时候发现离我400米远处,有一个“人”跟在我后面。一身白。当时天色整个是漆黑一团。
我仔细观察了一下,发现是一个大石墩,上面有着一片白色的油漆印记。
最后快六点才出来。整个停车场就只剩我一辆车了。
全程没有用手机,怕万一迷路至少手机还有足够电。
It’s not an easy trail by any means, trees down everywhere, the boardwalk is broken in numerous places, but It’s a true forest experience.
不会再在黄昏一个人这样去徒步了。I promise [心]
“我只想长久地抱住你,有一种失而复得的感觉,我会觉得很庆幸丽酱一切都好。” [心]
我预计一个小时来回,(我徒步行走很快)。但是我没有估算到今天是冬令时的第一天(立冬),其实已经很晚了。
刚开始天气很明亮很宜人。走了四十多分钟后开始暗下来。我就没有继续,并开始折回了。这时候发现非常难了,天色暗淡的速度快得让人猝不及防。到后面基本可以用伸手不见五指来形容了。
整个徒步区非常野生,有很多岔路口,非常多,四周看上去都是一样的,再加上密林深处,更是漆黑一片。脚下都是落叶树根,很多倒塌的树木,很多斜坡,很陡,很多地方需要攀爬,一不小心就会摔倒。
我需要走很快但又不能走错,有几次错过了正确的路口,感觉不对赶快折回,这样来来回回很考验心理。
当时还有一个插曲,我回头往后看的时候发现离我400米远处,有一个“人”跟在我后面。一身白。当时天色整个是漆黑一团。
我仔细观察了一下,发现是一个大石墩,上面有着一片白色的油漆印记。
最后快六点才出来。整个停车场就只剩我一辆车了。
全程没有用手机,怕万一迷路至少手机还有足够电。
It’s not an easy trail by any means, trees down everywhere, the boardwalk is broken in numerous places, but It’s a true forest experience.
不会再在黄昏一个人这样去徒步了。I promise [心]
“我只想长久地抱住你,有一种失而复得的感觉,我会觉得很庆幸丽酱一切都好。” [心]
“DDS自扫门前雪,哪管OS瓦上霜”,浅谈DDS-TSN标准的不足及解决思路
为推动DDS与TSN的融合,OMG组织2018年启动DDS-TSN标准的制定,目标是利用TSN为DDS实时数据分发提供更好的服务质量保证。本文首先指出,DDS-TSN标准只是解决DDS到TSN的适配问题,如不解决OS任务调度和网络I/O的不确定性难题,DDS over TSN的部署还存在很多困难。本文还介绍了我们提出的解决DDS应用适配中OS不确定性问题的“远程候车室”机制。#DDS##OS#
一、DDS“自扫门前雪“
2003 年对象管理组织(Object Management Group, OMG)发布了数据分发服务(Data Distribution Service,DDS)规范。DDS在为实时分布式应用提供了数据发布/订阅服务,支持多种语言编程的同时,向应用屏蔽了CPU和操作系统差异。因此可以很好的支持分布式应用在不同平台上移植的能力,因此在各类需要分布式实时处理的装备平台中得到广泛应用。#数据分发服务DDS#
图1 DDS(1)向应用提供Pubsub数据分发服务;(2)对应用屏蔽OS和CPU差别,提升应用跨平台移植能力
TSN在近年来得到飞速发展,是装备平台嵌入式交换系统的重要发展方向。为了推动DDS与TSN的融合,OMG组织2018年启动DDS-TSN标准的制定,目标是利用TSN为DDS实时数据分发提供更好的服务质量保证。#TSN#
虽然DDS-TSN标准尚未最终发布,但从相关技术资料看[1],DDS-TSN标准主要在三个方面对DDS进行扩充,如图2所示。
图2 DDS-TSN的主要原理
从图2可见,DDS-TSN标准从对应用流描述的要求,DDS与CUC通信接口,以及DDS流量到TSN网络的映射三方面为DDS over TSN做了充分准备。即“DDS扫了门前雪”。然而 “适配但不依赖任何操作系统”是DDS的重要设计原则,因此DDS-TSN标准是不会关注 “OS的瓦上霜”的,即如何实现时间触发任务调度以及确保网络I/O延时确定性并不是DDS-TSN标准所关注的,在TSN端系统要上运行DDS,还存在一块重要的拼图,即OS的支持。
二、我们的相关工作
我们在T3000 TSN/TTE测试仪研制中,采用“远程候车室(RWR:Romote Waiting Room)机制,在FT2000 CPU上屏蔽了麒麟OS任务调度和网络I/O延时的不确定性,在用户空间构造并发送了1000条周期性的ST流,实现了对TSN网络的测试。
图3 T3000基于RWR机制实现了1K条ST流的精准发送 (测试的详细视频见:
https://t.cn/A6onZbmF)
“远程候车室”机制的核心是在为实时应用提供一个通信库,接管应用基于socket发送的分组,该编程库收到应用发送的数据后并不立刻发送,而是等待TSN网卡通过分组发送的”时间通告“后,才向内核发送数据。
基于“远程候车室”机制的TSN端系统DDS适配架构如图4所示。网卡上的RWR控制逻辑根据CUC规划好的时间(TimeAwareOffset)向“远程候车室”发送读取帧的请求。读取到的ST帧进入网卡后,可以直接送注入控制缓冲区中排队。#网卡#
图4 基于“远程候车室”机制的TSN端系统DDS适配
由图4可知,DDS是当前使用的非支持DDS-TSN标准的中间件,其与CUC通信的功能卸载到TSN网卡上实现。
“远程候车室”机制实现的前提是应用看到的时间(APP CLK)要与TSN网卡上的TSN同步时间(Net clk)有一个粗同步(允许由ms级的误差)。与T3000测试仪的测试应用开发不同的是,DDS的应用开发可能是非协作的。即DDS应用中难以实现从TSN网卡获取网络同步时间(Net CLk)的操作。解决这一问题的基本思路是TASP[2],或由数据源实现与网络时间的同步。
图5 远程候车室机制的建模分析
我们对远程候车室机制进行了建模分析,证明了机制的可靠性。其中OS任务调度和网络I/O的不确定性由MaxGetBufDelay和MinGetBufDelay参数描述,APP CLK和Net CLK的粗同步误差由参数Δ描述。
理论分析表明,远程候车室机制可以避免由于OS不确定性给注入控制带来的两点冲突:
(1)流内冲突
存储在注入buf x的流K的第i个帧还没有到规划的发送时间,还没有被注入控制调度到Qbv队列时,流K的第i+1个帧已经到达网卡,可能会覆盖第i个帧;
(2)流间冲突
存储在注入buf X的流K的第i个帧还没有到规划的发送时间,还没有被注入控制调度到Qbv队列时,流L(L不等于K)的第j个帧已经到达网卡,且根据规划该帧保存在注入buf X,可能会覆盖流K的第i个帧;
三、结束语
在行为未知的OS上实现确定性通信延时保证是DDS到TSN端系统适配的重要环节。当然,DDS到TSN端系统适配中还存在其他难题,例如:
(1)DataWriter/DataReader到Talker/Listener的映射可能是动态的,与目前静态的TSN规划有冲突;
(2)DDS动态产生的控制帧到TSN流量的映射问题;
(3)DDS大块数据分发产生的大量分片帧对帧复制与消除逻辑复杂性的潜在威胁;
(4)DDS库自身处理延时对延时约束较为苛刻流(ms级延时)的可满足性的影响。
我们认为已经在T3000测试仪上验证的“远程候车室”机制是当前解决DDS到TSN端系统映射的有效手段。本文是“浅谈”,难免有不足和错误之处,希望得到领域内各类专家的批评指正。
参考文献:
[1] 技术白皮书:Using DDS to Unlock the Power of TSN ,https://t.cn/A6onZbms
[2] XuYan Jiang etc. TASP: Enabling Time-triggered Task Scheduling in TSN-based Mixed-criticality system. IWQos 2022
为推动DDS与TSN的融合,OMG组织2018年启动DDS-TSN标准的制定,目标是利用TSN为DDS实时数据分发提供更好的服务质量保证。本文首先指出,DDS-TSN标准只是解决DDS到TSN的适配问题,如不解决OS任务调度和网络I/O的不确定性难题,DDS over TSN的部署还存在很多困难。本文还介绍了我们提出的解决DDS应用适配中OS不确定性问题的“远程候车室”机制。#DDS##OS#
一、DDS“自扫门前雪“
2003 年对象管理组织(Object Management Group, OMG)发布了数据分发服务(Data Distribution Service,DDS)规范。DDS在为实时分布式应用提供了数据发布/订阅服务,支持多种语言编程的同时,向应用屏蔽了CPU和操作系统差异。因此可以很好的支持分布式应用在不同平台上移植的能力,因此在各类需要分布式实时处理的装备平台中得到广泛应用。#数据分发服务DDS#
图1 DDS(1)向应用提供Pubsub数据分发服务;(2)对应用屏蔽OS和CPU差别,提升应用跨平台移植能力
TSN在近年来得到飞速发展,是装备平台嵌入式交换系统的重要发展方向。为了推动DDS与TSN的融合,OMG组织2018年启动DDS-TSN标准的制定,目标是利用TSN为DDS实时数据分发提供更好的服务质量保证。#TSN#
虽然DDS-TSN标准尚未最终发布,但从相关技术资料看[1],DDS-TSN标准主要在三个方面对DDS进行扩充,如图2所示。
图2 DDS-TSN的主要原理
从图2可见,DDS-TSN标准从对应用流描述的要求,DDS与CUC通信接口,以及DDS流量到TSN网络的映射三方面为DDS over TSN做了充分准备。即“DDS扫了门前雪”。然而 “适配但不依赖任何操作系统”是DDS的重要设计原则,因此DDS-TSN标准是不会关注 “OS的瓦上霜”的,即如何实现时间触发任务调度以及确保网络I/O延时确定性并不是DDS-TSN标准所关注的,在TSN端系统要上运行DDS,还存在一块重要的拼图,即OS的支持。
二、我们的相关工作
我们在T3000 TSN/TTE测试仪研制中,采用“远程候车室(RWR:Romote Waiting Room)机制,在FT2000 CPU上屏蔽了麒麟OS任务调度和网络I/O延时的不确定性,在用户空间构造并发送了1000条周期性的ST流,实现了对TSN网络的测试。
图3 T3000基于RWR机制实现了1K条ST流的精准发送 (测试的详细视频见:
https://t.cn/A6onZbmF)
“远程候车室”机制的核心是在为实时应用提供一个通信库,接管应用基于socket发送的分组,该编程库收到应用发送的数据后并不立刻发送,而是等待TSN网卡通过分组发送的”时间通告“后,才向内核发送数据。
基于“远程候车室”机制的TSN端系统DDS适配架构如图4所示。网卡上的RWR控制逻辑根据CUC规划好的时间(TimeAwareOffset)向“远程候车室”发送读取帧的请求。读取到的ST帧进入网卡后,可以直接送注入控制缓冲区中排队。#网卡#
图4 基于“远程候车室”机制的TSN端系统DDS适配
由图4可知,DDS是当前使用的非支持DDS-TSN标准的中间件,其与CUC通信的功能卸载到TSN网卡上实现。
“远程候车室”机制实现的前提是应用看到的时间(APP CLK)要与TSN网卡上的TSN同步时间(Net clk)有一个粗同步(允许由ms级的误差)。与T3000测试仪的测试应用开发不同的是,DDS的应用开发可能是非协作的。即DDS应用中难以实现从TSN网卡获取网络同步时间(Net CLk)的操作。解决这一问题的基本思路是TASP[2],或由数据源实现与网络时间的同步。
图5 远程候车室机制的建模分析
我们对远程候车室机制进行了建模分析,证明了机制的可靠性。其中OS任务调度和网络I/O的不确定性由MaxGetBufDelay和MinGetBufDelay参数描述,APP CLK和Net CLK的粗同步误差由参数Δ描述。
理论分析表明,远程候车室机制可以避免由于OS不确定性给注入控制带来的两点冲突:
(1)流内冲突
存储在注入buf x的流K的第i个帧还没有到规划的发送时间,还没有被注入控制调度到Qbv队列时,流K的第i+1个帧已经到达网卡,可能会覆盖第i个帧;
(2)流间冲突
存储在注入buf X的流K的第i个帧还没有到规划的发送时间,还没有被注入控制调度到Qbv队列时,流L(L不等于K)的第j个帧已经到达网卡,且根据规划该帧保存在注入buf X,可能会覆盖流K的第i个帧;
三、结束语
在行为未知的OS上实现确定性通信延时保证是DDS到TSN端系统适配的重要环节。当然,DDS到TSN端系统适配中还存在其他难题,例如:
(1)DataWriter/DataReader到Talker/Listener的映射可能是动态的,与目前静态的TSN规划有冲突;
(2)DDS动态产生的控制帧到TSN流量的映射问题;
(3)DDS大块数据分发产生的大量分片帧对帧复制与消除逻辑复杂性的潜在威胁;
(4)DDS库自身处理延时对延时约束较为苛刻流(ms级延时)的可满足性的影响。
我们认为已经在T3000测试仪上验证的“远程候车室”机制是当前解决DDS到TSN端系统映射的有效手段。本文是“浅谈”,难免有不足和错误之处,希望得到领域内各类专家的批评指正。
参考文献:
[1] 技术白皮书:Using DDS to Unlock the Power of TSN ,https://t.cn/A6onZbms
[2] XuYan Jiang etc. TASP: Enabling Time-triggered Task Scheduling in TSN-based Mixed-criticality system. IWQos 2022
这些袋子是要做什么的?我问。
我要寄出去。每年秋天我都会这样做。看这里。“雾中之爱”(Love-in-a-mist), Nigella damascena(大马士革黑种草)。二十四袋。
你是说你在卖这些种子吗?
我把它们送人。
这么多!有几百袋吧!
有一个自称为“茂盛”(Thrive)的组织,专门把种子分送给需要的人——老人之家、孤儿院、收容中心、临时难民营,让花朵开在那些通常看不到它们的地方。当然啦,我知道,这无法改变什么,但最起码总是一份心力。对我而言,那是分享园艺之乐的一种方式。是一大满足。
——约翰·伯格《我们在此相遇》
我要寄出去。每年秋天我都会这样做。看这里。“雾中之爱”(Love-in-a-mist), Nigella damascena(大马士革黑种草)。二十四袋。
你是说你在卖这些种子吗?
我把它们送人。
这么多!有几百袋吧!
有一个自称为“茂盛”(Thrive)的组织,专门把种子分送给需要的人——老人之家、孤儿院、收容中心、临时难民营,让花朵开在那些通常看不到它们的地方。当然啦,我知道,这无法改变什么,但最起码总是一份心力。对我而言,那是分享园艺之乐的一种方式。是一大满足。
——约翰·伯格《我们在此相遇》
✋热门推荐