流水线时序调度之规避冲突

news2024/11/26 0:54:55

1 写在前面的:

其实略微一个大点的机器,一个测试流程需要若干个步骤,都可以用流水线的思维去看待它;
我之前也没往流水线的角度去考虑,那有些机器的时序调度是不好理解的,甚至计算个通量都很麻烦;
下文完全是自己记录的,非常适合我这个行业,不普适
这么重要的思想,我第一次得知,来源竟然是《计算机系统结构_李学干》,一本专升本教材,汗颜...!

2 用一个课本上的例题举例

1.如下图1,横坐标1-9 代表的是时间,纵坐标1-5 代表的是流水线的5个模块;(这个流水线不要狭义的认为是工厂的传送带)
2.模块1 在时间片1和时间片9,举例:可以把他认为是一个机械臂,时间1拿一个原材料来加工,时间9加工完了,丢到成品箱;
3.模块4,你可以理解为是这个模块占用时间较长,一个时间片周期不够,需要两个;
在这里插入图片描述
4.如果一个产品需经历模块1-5 ,需占用9个时间片完成;如果批量,一个测试做完,在进行下一个,那么如下图2所示,两个测试需要18个时间片;
在这里插入图片描述
5.如果你采用流水线思维,调度逻辑就不会这么干,如下图3所示,每11个时间片,可以完成三个测试;效率(通量)大幅提升
在这里插入图片描述

3 调度冲突

从上图看,流水线通量的几个因素:
1.机械设计,要完成一个什么样的产品,按说前期机械非常重要,图1是直接机械决定的;就像一个姑娘,身高、体型、长相;
2.软件设计:至于软件写成图二还是图三或是其他,这个软件因素比较大,类似姑娘的穿衣打扮;
整体看,一个产品能达到什么通量(上限),前期机械直接决定死了

下面说调度冲突

在第一个时间片可以规划第一个测试;
在第二个时间片规划第二个测试,但是s2模块两个测试间冲突,pop
在第三个时间片规划第二个测试,可不冲突的规划
直白的说冲突就是上面的几句话;
在这里插入图片描述

如果计划规划避免冲突

套用下方公式可解:
对于S1,间隔9-1=8拍
对于S2,间隔3-2=1拍、8-2=6拍、8-3=5拍
对于S4,间隔6-5=1拍
对于S5,间隔8-7=1拍
汇集为1,5,6,8,所以延迟禁止表F={1,5,6,8},即第一个和第二个测试间隔1,5,6,8等分钟(拍)执行任务,都会冲突。这是被禁止的。

冲突向量的定义:由延迟禁止表可知,要想不争用流水线的功能段,相邻两个任务送入流水线的间隔拍数就不能为1,3,4,8拍,这些间隔拍数应当禁止使用。可以用一个有N-1位的位向量来表示后续新任务间隔各种不同拍数送入流水线时,是否会发生功能段使用的冲突,称此位向量为冲突向量C (Collison Vector)。
解:根据题意:
N为拍数,N-1=9-1=8位二进制,禁止取1,其余位数为0。即第1,5,6,8位均为1.
冲突向量C =(10110001)

如何画出流水线状态转移图?

首先我们要知道:
初始冲突向量C ,二进制表示,值为1表示禁止相隔的拍数。0,表示可以相隔的拍数。
下一任务相隔x拍进入,可以获该任务进入后的新的冲突向量:
其值= 初始冲突向量 | 当前冲突向量右移x位

套用上述公式计算
注意:计算到什么时候呢?直到不再产生不同的冲突变量为止
第一个任务:
当前冲突向量:初始冲突向量C =(10110001)
表明第二个任务可以间隔的拍数(2,3,4,7)
第二个任务相隔2拍进入
当前冲突向量:10110001>>2=00101100,10110001 | 00101100=10111101
第三个任务可以相隔2拍或者7拍进入
第三个任务相隔2拍进入
当前冲突向量:10111101>>2=00101111,10110001 | 00101111=10111111
第四个任务只能相隔7拍进入
第四个任务相隔7拍进入
当前冲突向量:10111111>>7=00000001,10110001|00000001=10110001
注意,此时的冲突向量已经不是新的,它和第一个任务的冲突向量是相同的,所以就可以止住了。
那么我们开始画图。
首先我们有三个冲突变量,用方框表示,三个初始变量的关系也要在图上表出来。如下图所示,这就是状态转移图。但是这是不完整的,因为第2任务的时候,我们有四种选择,(2,3,4,7),而我们选择了2,假如我们选择了其它选项,就会产生不同的结果了。

让我们穷尽每种选择,那么最终我们画出来的图将会是:

在这里插入图片描述

求出最佳调度方案,最小平均延迟及流水线的最大吞吐率

调度方案如何获取,看我们绘制出来的状态转移图,从初始冲突变量开始,到不再出现新的冲突变量结束。
即,调度方案是指构成循环。(3,4)这个调度方案,执行起来就是:3,4,3,4,3,4。。。不停循环,形成一个呈周期性重复的方案。综上可得,调度方案有如下几种:

要想找出一种最佳调度方案使流水线的吞吐率最高,只要计算出每种调度方案的平均间隔拍数,找到其中最小即可。
由上表可知,采用先隔3拍后隔4拍轮流给流水线送入任务的调度方案是最佳的。即平均每隔3.5拍送入一个任务,吞吐率最高。尽管(4,3)调度方案平均间隔也是3.5拍,但若实际流入任务数是循环所需任务的整数倍,则其实际吞吐率会相对低些,所以不作为最佳调度方案。

意思是什么呢?
如当前题目,
(3,4)这个调度方案,构成循环所需任务就是2个。假如实际流入任务数是4个,即整数倍,那么(3,4)调度方案执行起来就是3,4,3;(第一个任务直接进入的,不用间隔)
说明按(3,4)调度方案输入4个任务,全部完成时间为3+4+3+9=19(拍),实际吞吐率Tp=4/19(任务/拍)
(4,3)调度方案执行起来就是4,3,4说明按(4,3)调度方案输入4个任务,全部完成时间为4+3+4+9=20(拍),实际吞吐率Tp=4/20(任务/拍)。显然这个吞吐率比上面的低。
那为什么要强调整数倍,是因为非整数倍情况,假如实际流入任务数是3个,3+4+9=4+3+9,此时它们的实际吞吐率是一样的。
解得:
流水线的最小平均延迟为3.5拍
此时流水线的最大吞吐率Tpmax= 1/3.5(任务/拍)
同为3.5拍的(3,4)和(4,3)调度方案,又因为实际流入任务数是循环所需任务的整数倍时,(3,4)则其实际吞吐率会相对高些(上面已证),所以最佳调度方案:(3,4)

4 结尾

1.这是网上找的一个其他例子,时序排的较为密集,说明前期机械涉及较为合理,利用率较高,跑起来应该是风生水起
2.根据上一节计算公式,绘制了下图

差值为:1、2、3、5、6、7
延迟禁止表F={1、2、3、5、6、7}
执行任务冲突向量的定义:N-1
(92-1-7个0)1110111 第一个任务: 第一个任务初始冲突向量C =((92-1-7个0)1110111)
表明第二个任务可以间隔的拍数(4,8,9,10,11,12,…)

第二个任务:右移4位 初始冲突向量C =(1110111) 当前冲突向量:1110111>>4=0000111,
1110111|0000111=1110111 和初始值一致,无需继续

3.在总结下

  • 前期机械设计,决定了通量上限;
  • 软件设计决定了最终通量,肯定是小于且不等于上限的;
  • 电子、软件、机械共同努力,可降低单位时间片的时间,也可提升通量(比如第一个例子,一个测试是要9个时间片,一个时间片如果前期是10s,后期通过缩短短板模块的机械运行举例,更换性能更好的电机或机械臂,把单位时间片提升至8s,那么通量整体可提升25%)

在这里插入图片描述

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

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

相关文章

p5.js 视频播放指南

theme: smartblue 本文简介 在刚接触 p5.js 时我以为这只是一个艺术方向的 canvas 库,没想到它还支持视频文件和视频流的播放。 本文简单讲讲如何使用 P5.js 播放视频。 播放视频文件 p5.js 除了可以使用 video 元素播放视频外,还支持使用 image 控件播放…

Linux 终端操作命令(3)内部命令用法

Linux 终端操作命令 内部命令用法 A- alias NAME alias - Define or display aliases. SYNOPSIS alias [-p] [name[value] ... ] DESCRIPTION Define or display aliases. Without arguments, alias prints the list of aliases in the reusable form al…

创建MySQL数据库和创建表的详细步骤(navicat)

目录 一、介绍 二、操作步骤 (一)新建连接 (二)新建数据库 (三)新建表 插入数据测试 对字段进行增加或者修改 三、关于MySQL的其他文章(额外篇) 一、介绍 在创建数据库…

(统计学习方法|李航)第一章统计学习方法概论-一二三节统计学习及统计学习种类,统计学习三要素

目录 一,统计学习 1.统计学习的特点 2.统计学习的对象 3.统计学习的目的 4.统计学习的方法 5.统计学习方法的研究 6.重要性 二,统计学习的基本种类 1.监督学习 (1)输入空间,输出空间和特征空间 &#xff08…

sklearn机器学习库(一)sklearn中的决策树

sklearn机器学习库(一)sklearn中的决策树 sklearn中决策树的类都在”tree“这个模块之下。 tree.DecisionTreeClassifier分类树tree.DecisionTreeRegressor回归树tree.export_graphviz将生成的决策树导出为DOT格式,画图专用tree.export_text以文字形式输出树tree.…

成像镜头均匀性校正——360°超广角均匀校准光源

随着空间技术的不断发展,遥感仪器在对地观测、大气探测及海洋探测等方面的应用也不断拓展,以实现不同任务的观测精度。空间遥感仪器热控技术旨在保证遥感器各部件所需温度水平、温度梯度和温度稳定度,以满足遥感器高质量成像要求。 近年来我国…

ubuntu20.04磁盘满了 /dev/mapper/ubuntu--vg-ubuntu--lv 占用 100%

问题 执行 mysql 大文件导入任务,最后快完成了,查看结果发现错了!悲催!都执行了 两天了 The table ‘XXXXXX’ is full ? 磁盘满了? 刚好之前另一个 centos 服务器上也出现过磁盘满了,因此&a…

变形金刚在图像识别方面比CNN更好吗?

链接到文 — https://arxiv.org/pdf/2010.11929.pdf 一、说明 如今,在自然语言处理(NLP)任务中,转换器已成为goto架构(例如BERT,GPT-3等)。另一方面,变压器在计算机视觉任务中的使用…

关于技术转管理角色的认知

软件质量保障:所寫即所思|一个阿里质量人对测试的所感所悟。 程序员发展的岔路口 技术人做了几年专业工作之后,会来到一个重要的“分岔路口”,一边是专业的技术路线,一边是技术团队的管理路线。不少人就开始犯难&…

sqlsessionfactory和sqlsession是否线程安全?

判断是否线程安全的规则:是否存在多线程间可共享的变量 sqlsessionfactory是线程安全的,默认的实现类只有一个final属性。 sqlsession单独来看是线程不安全的,但是我们用mybatis时,mapper接口的使用是基于动态代理,这…

计算机竞赛 GRU的 电影评论情感分析 - python 深度学习 情感分类

1 前言 🔥学长分享优质竞赛项目,今天要分享的是 🚩 GRU的 电影评论情感分析 - python 深度学习 情感分类 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分工作量:3分创新点:4分 这…

python爬虫5:requests库-案例3

python爬虫5:requests库-案例3 前言 ​ python实现网络爬虫非常简单,只需要掌握一定的基础知识和一定的库使用技巧即可。本系列目标旨在梳理相关知识点,方便以后复习。 申明 ​ 本系列所涉及的代码仅用于个人研究与讨论,并不会对网…

uniapp 小兔鲜儿 - 首页模块(1)

目录 自定义导航栏 静态结构 安全区域​ 通用轮播组件 静态结构 自动导入全局组件 全局组件类型声明 .d.ts文件 注册组件 vue/runtime-core 首页 – 轮播图指示点 首页 – 获取轮播图数据 首页 – 轮播图数据类型并渲染 首页 – 轮播图总结 首页分类 首页 – 前…

计算机竞赛 opencv python 深度学习垃圾图像分类系统

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 opencv python 深度学习垃圾分类系统 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分工作量:3分创新点:4分 这是一个较为新颖的竞…

VR安全宣传系列:防触电虚拟现实体验

在电气工作中,安全问题始终是重中之重。为了更好地提高公众的电气安全意识和技能,广州华锐互动开发了一种基于虚拟现实技术的模拟系统——VR防触电虚拟体验系统。这种系统可以模拟各种因操作不当导致的触电事故场景,并提供沉浸式的体验&#…

浅谈机器人流程自动化(RPA)

1.什么是RPA RPA代表机器人流程自动化(Robotic Process Automation),是一种利用软件机器人或机器人工作流程来执行重复性、规范性和高度可预测性的业务流程的技术。这些流程通常涉及许多繁琐的、重复的任务,例如数据输入、数据处…

Amazon CloudFront 部署小指南(五)- 使用 Amazon 边缘技术优化游戏内资源更新发布...

内容简介 游戏内资源包括玩家的装备/弹药/材料等素材,对游戏内资源的发布和更新是游戏运营商的一个常规业务流程,使用频率会十分高,所以游戏运营商希望该流程可以做到简化和可控。针对这个需求,我们设计了 3 个架构,面…

电商3D产品渲染简明教程

3D 渲染让动作电影看起来更酷,让建筑设计变得栩栩如生,现在还可以帮助营销人员推广他们的产品。 从最新的《阿凡达》电影到 Spotify 的上一次营销活动,3D 的应用让一切变得更加美好。 在营销领域,3D 产品渲染可帮助品牌创建产品的…

玩机搞机--【开机出现您的设备内部出现了问题,请联系你的制造商了解详情】故障解决思路

很多友友在玩机过程中经常会遇到下图所示故障。大多数都是刷了第三方系统或者内核或者面具导致的。正常来说。这个提示可以无视的,不影响正常的手机使用。但强迫症例外。究其原因。一般是内核校验原因。解决方法也分为多种。今天就为大家解析下这个提示的解决思路 &…

如何微调优化你的ChatGPT提示来提高对话质量

ChatGPT会话质量很大程度上取决于微调优化提示的艺术。本文旨在阐明微调提示的复杂性,以确保你可以充分发挥ChaGPT这一颠覆性工具的潜力。 与ChatGPT对话的关键部分是“提示”。即:你输入的问题或陈述,它决定了人工智能的响应。类似于引导对…