TSN协议解读系列 | (2) Qbv:车间里的求知路

news2025/4/19 16:26:08

时春季夜间,风清月朗,周期仿佛又轮转到了从前。一位不修篇幅的老头,牙还没刷,却已然歪头斜躺在床上,床边微亮的显示屏上隐约可见Victory的字样,不一会儿就熄了屏。

这正是我们今天的主人公,Qbv。

▎我是一名车间工人

Qbv,802.1大学的特聘教授,爱好打游戏,拜把子,著名的门控(Gate Control)理论提出者,数据包们深恶痛绝的打卡制度的创始人,食堂窗口守备队名誉大队长等等。当然,也曾是一名车间工人。

年轻时候的Qbv在工厂车间干活,但就像是苹果砸脑袋那样来的突然,看着传送带上形形色色的工件交错往复,脑袋空空的他却对工件如何有条不紊的运输、处理、组装成精密的设备产生了好奇。而他与调度思想的火花也正由此迸发。
Qbv的求知之路谈不上一帆风顺,没有老师的他只能在黑暗之中摸索,其中艰辛不用太多赘述。

至于他研究的车间调度(Job-shop Scheduling)问题,则是一个起源于上世纪50年代,被广泛研究的问题,包括了作业车间、置换流水车间、混合流水车间、柔性作业车间调度等等。研究明白了的Qbv把握到了一个在车间进行试点的机会。效果尚佳,他也顺理成章的成了车间调度员,往后负责工艺的改进。

在这里插入图片描述

成了车间调度员之后,因为口才好,交友广泛,很快就和车间里的人打成了一片,平日里没啥事的他,迷上了打游戏。他玩的最多的就是模拟经营类游戏,排布优先级,划分工作时间亦或是建立生产线的事干的都是轻车熟路,不知道是在玩游戏,还是找了两个班上,他倒是乐在其中。

▎但我想寻找一些改变

而Qbv思想的蜕变从TTE(Time-triggered Ethernet)团队到来的那个日子开始。

这支从SAE协会派来的视察团衣着考究,Qbv则作为车间的代表和他们进行交流,其中多次谈到了能否确定每一个工件进入工序的时间,工序是否有容错机制等等话题,Qbv回着话,心底向往他们的生活。

当时正值以太网蓬勃发展的时期,TTE此次前来调研是为了从车间调度中汲取些许灵感,去解决当时以太网管理局十分头疼的一个问题,也就是流量的有界时延(Bounded latency)传输。调研结束,深思后的Qbv找上了TTE,表明希望能够参与他们的研究。而TTE对于这个熟悉车间调度的人印象不错,就这样,Qbv获得了助理研究员的身份。

随后就是漫长的旅途。

最终,他们将时钟同步方案AS6802融入了调度之中,通过时分复用以及合理的时间规划去保障关键流量和非关键流量在同一条链路上传输时彼此间的互不冲突。戏剧性的是,Qbv打游戏时的时间规划心得在此间着实发挥了不小的作用。

这该是一个美好的结局,如果“专有技术”这四个大字没有铭刻在TTE的骨子里。厂商用专利构成的厚障壁将TTE技术隔断了开来,Qbv不喜欢这样。

▎我好像成了传奇

802.1大学给了一个机会,TSN作为校委会主动向Qbv抛出了橄榄枝,2012年,Qbv作为特聘教授正式加入,主导更开放的有界低时延项目的研究,在随后的四年里,提出了门控机制,并实现了保障门控机制的三类状态机,即管理调度配置的更新的List Config状态机,初始化门控列表执行并维护门控周期的Cycle Timer状态机,以及,按序执行门操作并在门操作间维持一定时隙的List Execute状态机。

在这里插入图片描述

基于802.1AS实验室提供的同步时间支持,Qbv率先在校园里面开展了试点工作,TSN校委会划分了一整片校区供Qbv使用。Qbv在每处节点都设立了一个打卡仪器,并依据数据包们的8个优先级划分了不同的时间窗口供他们刷卡通行,处在Gate-closed时间段的数据包不允许通行,只待切换成了Gate-open才能通行。三类状态机则在实验室中隆隆运转,实时修改着打卡机的通行时间段数据。

在这里插入图片描述

从TTE那学到的经验也在其中发挥了不小的作用,Qbv也采用了求解器和启发式这两种方法去进行调度表的求解,并通过状态机下发到打卡配置当中。相较于TTE严格规划了每个关键数据包在各个时刻应当处在的位置,Qbv采用的窗口模式则让数据包们的时间规划更加的灵活。

大部分时间,事情确实变的井井有条了。

▎打游戏吗?我带你

体会过独自求学的窘迫,进入了802.1大学后的Qbv常与别的学者互通有无,虽然有时候说些打不打游戏之类的胡话,令他在部分学者眼中印象欠佳。

最早的一次合作当属2012年,是和802.3大学的br老头一同开展的,他们共同成立了一个Qbu实验室。br这老头是TSN委员会送来的,说是以太网局子让他们找个人带一带,整点事做就行【br:路在何方】。刚好Qbv初来乍到,也就让他俩一起凑活凑活了,谁成想还真干出了一番事业。

说是他俩发现在门控由close切换到open的时候总还有上一个时间段该走完的数据包在路上跑。Qbv提的是,门开之前留一个数据包要花的时间的余量,大家都别继续进了,等路上的人跑完。br老头则又开始想着插队了。最后他俩合计合计,就提出了两种保护带(Guard band)机制。

在这里插入图片描述

在这次合作之后,Qbv便开始取笑br老头蹩脚的论文取名,br老头就拿着杖子追着Qbv打,说他不通礼法。打打闹闹,却也看得出br先生不似此前消沉的模样了。

而Qbv也确实会交朋友,不止和br,和Qch,Qci等人也都聊得开,甚至还和Qci一起成了普通数据包嘴里的食堂守备队大队长。毕竟他们来了之后,在食堂一个管出,一个管进,都快激起了民愤。

但平心而论,这位从工厂车间一路走来,不太正经的教授,着实给这严肃的校园增添了一点不一样的光彩。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/970334.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微服务-gateway跨域配置

文章目录 一、前言二、gateway跨域配置1、问题描述1.1、什么是跨域请求?1.1.1、同源策略1.1.2. 安全性考虑1.1.3. 跨域攻击 1.2、问题产生原因 2、解决方法2.1、修改配置文件2.2、配置类统一配置2.3、全局跨域拦截器 三、总结 一、前言 在SpringCloud项目中&#x…

C++ - 继承 一些 细节 - 组合 和 继承的区别

前言 本篇博客基于 C - 继承_chihiro1122的博客-CSDN博客 之上列出一些例子,如果有需要请看以上博客。 继承的例子 例1 上述例子应该选择 C。 首先不用说,p3肯定是指向 d 对象的开头的;p1 也是指向 d 对象的开头的;…

网站监控系统最佳实践之静态资源采样上报

作者 观测云 产品服务部门 深圳团队 朱端畅 背景说明 通过 RUM 采集前端数据时,若采集的数据过多,可能会导致占用过多的网络带宽以及其他资源。特别是刚进入首页加载数据时,可能会调用几十次甚至更多次 v1/write/rum?precisionms数据采集接…

spacy安装旧版本en_core_web_sm的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

Navicat Premium 16.2.7 数据库管理教程

Navicat Premium 16.2.7是一款功能强大的数据库管理工具,支持多种数据库类型,包括MySQL、Oracle、SQL Server等。以下是使用Navicat Premium的基本步骤: 安装Navicat Premium软件。打开Navicat Premium,在主界面上选择“新建连接…

实现高效数据存储:OpenStack Swift与本地文件系统的完美对接

文章目录 Swift对接本地文件系统前言控制节点新增20G磁盘针对磁盘做分区(2个)针对磁盘格式化卸载原有的 Swift 虚拟设备创建两个目录并挂载更改权限创建builder创建ring再平衡测试配合glance对接swiftglance对接swift测试 Swift对接本地文件系统 前言 实…

OpenCV实战(31)——基于级联Haar特征的目标检测

OpenCV实战(31)——基于级联Haar特征的目标检测 0. 前言1. Haar 特征图像表示2. 基于级联 Haar 特征的二分类分类器3. 级联分类器算法流程4. 使用 Haar 级联检测器进行人脸检测5. 完整代码小结系列链接 0. 前言 在机器学习基础一节中,我们介…

【Linux】文件缓冲区

目录 一、缓冲区图解二、自定义实现文件操作函数三、强制刷新内核缓冲区(fsync) 提到文件缓冲区这个概念我们好像并不陌生,但是我们对于这个概念好像又是模糊的存在脑海中,之间我们在介绍c语言文件操作已经简单的提过这个概念&…

NoSQL MongoDB Redis E-R图 UML类图概述

NoSQL NoSQL(Not only SQL)是对不同于传统的关系数据库的数据库管理系统的统称,即广义地来说可以把所有不是关系型数据库的数据库统称为NoSQL。 NoSQL 数据库专门构建用于特定的数据模型,并且具有灵活的架构来构建现代应用程序。NoSQL 数据库使用各种数…

CIM和websockt-实现实时消息通信:双人聊天和消息列表展示

欢迎大佬的来访,给大佬奉茶 一、文章背景 有一个业务需求是:实现一个聊天室,我和对方可以聊天;以及有一个消息列表展示我和对方(多个人)的聊天信息和及时接收到对方发来的消息并展示在列表上。 项目框架概…

SNP 分享:SAP S/4HANA Cloud 私有云版本及其独特优势

近几年来,SAP一直强调其愿景是帮助客户达成智慧型企业(Intelligent Enterprise),为此其相关产品也在不断进行快速迭代,其核心就是S4HANA。同时SAP一直强调其要成为一家云计算公司,近些年也一直在推行云优先战略(Cloud First)。因此…

指针(通过指针间接访问内存)

#include <iostream> #include <algorithm> using namespace std; int main() { int a 2;//定义指针 &#xff1a; 数据类型 *指针变量名;int *p &a;cout << &a << " " << p << endl;//使用指针 &#xff1a; 可以通过…

怎么把表情包做成动态?分享一个简单的方法

表情包在我们的日常交流中已经成为了一种非常流行的表达方式&#xff0c;而将表情包做成动态则可以让它更加生动有趣。本文将介绍如何将表情包制作成动态图&#xff0c;以及一些简单的方法和制作注意事项。 制作动态表情包的方法有很多种&#xff0c;以下是其中两种简单易行的方…

SpringCloud面试题大全(Netflix+Alibaba)

SpringCloud面试题大全 ​ Spring cloud 是一个基于 Spring Boot 实现的服务治理工具包&#xff0c;用于微服务架构中管理和协调服务的。Spring Cloud 是一系列框架的有序集合。它利用 Spring Boot 的开发便利性巧妙地简化了分布式系统基础设施的开发&#xff0c;如服务发现注…

华为云云服务器评测 | 3分钟搞懂如何在华为云服务器安装Nginx并配置静态访问页面

文章目录 一、什么是Nginx&#xff1f;二、申请华为云服务器三、使用XShell连接华为云服务器并安装Nginx四、FileZilla连接服务器五、Linux下安装Nginx❇️配置80端口并关闭Linux防火墙✳️测试 六、配置静态html至华为云服务器并访问⚠️在华为服务器新建路径⏰使用Filezilla上…

java+ssm+mysql电费管理系统

项目介绍&#xff1a; 使用javassmmysql开发的用户电费管理系统&#xff0c;系统包含超级管理员&#xff0c;系统管理员、用户角色&#xff0c;功能如下&#xff1a; 超级管理员&#xff1a;管理员管理、用户管理、用电管理&#xff08;用电记录、缴费提醒&#xff09;、电费…

C++多态案例-设计计算器类

1.前置知识点 多态是面向对象的三大特性之一 多态分为两类 静态多态&#xff1a;函数重载和运算符重载都属于静态多态&#xff0c;复用函数名动态多态&#xff1a;派生类和虚函数实现运行时多态 静态多态和动态多态的区别 静态多态的函数地址早绑定-----编译阶段确定函数地…

Navicat Premium 16.2.7 for Mac

Navicat Premium 16是一款功能强大的跨平台数据库管理工具&#xff0c;支持多种数据库类型&#xff0c;如MySQL、MariaDB、Oracle、SQLite、PostgreSQL等等。它提供了丰富的数据库管理功能和工具&#xff0c;可以帮助开发人员和数据库管理员快速地创建、管理和维护数据库。 Nav…

采用第11代Intel®Core处理器的多网口嵌入式边缘计算平台

Intel Core™ 11th i7/i5/i3/Celeron 处理器 及 8GB DDR4 3200Mb/s 内存4 x GbE, 3 x USB 3.2 Gen2, 1 x USB2.0, 1 x HDMI 1.4, 1 x DP 1.4a, 4 x RS232/422/485可选的第二堆栈支持多达2 x iDoor扩展&#xff0c;用于扩展无线连接、工业现场总线或更多I/O紧凑型无风扇设计零电…

1.15 自实现GetProcAddress

在正常情况下&#xff0c;要想使用GetProcAddress函数&#xff0c;需要首先调用LoadLibraryA函数获取到kernel32.dll动态链接库的内存地址&#xff0c;接着在调用GetProcAddress函数时传入模块基址以及模块中函数名即可动态获取到特定函数的内存地址&#xff0c;但在有时这个函…