2.3总线仲裁

news2024/11/15 16:32:42

文章目录

  • 一、引子
  • 二、总线仲裁
  • 三、集中仲裁方式
    • 1.链式查询方式
      • (1)介绍
      • (2)过程
      • (3)特点
      • (4)优缺点
        • ①优点
        • ②缺点
    • 2.计数器查询方式
      • (1)介绍
      • (2)过程
      • (3)特点
      • (4)优缺点
        • ①优点
        • ②缺点
    • 3.独立请求方式
      • (1)介绍
      • (2)过程
      • (3)特点
      • (4)优缺点
        • ①优点
        • ②缺点
    • 4.总结
  • 四、分布仲裁方式
  • 五、回顾

一、引子

在之前的学习中,我们已经知道了总线的基本原理以及评价总线性能的一些指标。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k3PLvKTC-1674099742073)(D:\Typora图片\image-20230118170419022.png)]

❓ 那么总线仲裁是要解决什么问题呢?

由于总线是一种共享的资源,同一时刻只能提供给一组设备进行数据的传输。

各种设备对总线的使用必须是互斥进行的。

因此当多个设备都想使用总线的时候,就必须提供某一种机制来仲裁。来裁决让哪一个设备使用总线。

所以,总线仲裁是解决多个设备争用总线的问题。

二、总线仲裁

在之前的学习中,我们了解到单总线结构,如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ctpfzt8s-1674099742075)(D:\Typora图片\image-20230118171520331.png)]

无论是CPU、主存还是I/O设备,都通过一条系统总线进行连接。

当然,这一组系统总线包括数据总线、控制总线和地址总线。

同一时刻只能有一个设备控制总线传输操作,可以有一个或多个设备从总线接收数据。

当一个设备1想通过总线来传送数据的时候,那么它就会先通过控制总线对总线控制器发送请求,请求总线的使用权;当总线的使用权分配给这个设备1的时候,这个设备1就可以通过数据总线和地址总线来传递数据。它要和什么设备进行数据传输,是由已经获得总线控制权的设备来决定的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2wer4j1K-1674099742076)(D:\Typora图片\image-20230118173704437.png)]

上面说了,设备1对总线的控制权发送了请求,当它获得了总线的控制权之后,它就变成了主设备。这个主设备接下来可以通过地址总线来选择它接下来要和哪一个设备进行数据交互。这个被迫进行数据交互的设备就叫做从设备。从设备只能被动响应主设备发来的信号。

谁控制了总线,谁就是主设备。就可以强迫其他设备与自己进行数据的读写。


❓为什么要仲裁?

当多个设备都想争抢总线的使用权,就必须通过总线仲裁的方式来决定到底让哪一个设备优先获得总线的控制权。

总线作为一种共享设备,不可避免地会出现同一时刻有多个主设备竞争总线控制权地问题。

所以总线仲裁本身也是一种调度问题,就是排一个优先级,看看谁先使用。

只不过总线仲裁是通过纯硬件来实现的。


总线仲裁的定义

多个主设备同时竞争主线控制权时,以某种方式选择一个主设备优先获得总线控制权称为总线仲裁。

总线仲裁可以分为两种方式:

1.集中仲裁方式

链式查询方式、计数器定时查询方式、独立请求方式

2.分布仲裁方式

三、集中仲裁方式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HLaOkAft-1674099742077)(D:\Typora图片\image-20230118174204125.png)]

总线控制器一般会被集成在CPU内部或桥接器里面。

它负责协调这一条总线上连接的所有设备如何协调工作。

上一小节提到的总线时钟信号也是由总线控制器发出的。

1.链式查询方式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S0JUFFs6-1674099742078)(D:\Typora图片\image-20230118174530728.png)]

(1)介绍

  • 数据线地址线里面可能包含多根信号线,可以同时传输多个比特的数据。虽然图中只画了一根,这是为了方便图示,准确来说,是一组

  • BG用来传递总线允许的信号。

  • BR用来传送总线请求的信号。

当某一个设备想要使用总线的时候,就往BR上发送一个请求信号(比如高电平信号)。

然后总线控制部件检测到BR传过来的有效信号之后,就知道此时有某一个设备或者某些设备想要使用总线。

  • BS表示总线忙

BG、BR、BS是3根信号线,每根线只能传送一个电信号。它们都属于控制总线

控制总线其实包含很多条线,这三根线就属于控制总线的某三根。

只不过链式查询方式只需要这三根线就可以完成了。

(2)过程

接下来探讨一下链式查询方式是如何完成的。

<1> 假设设备1和设备n想要同时使用总线,同时想要获得总线的控制权。

那么,这两个设备的设备接口都会向BR(总线请求)发送一个请求信号(比如高电平)。(图中蓝线)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-debOSsHf-1674099742079)(D:\Typora图片\image-20230118175814202.png)]

<2>总线控制部件检测到BR发来的高电平信号,就知道此时有一个设备或者几个设备想要使用总线。

那么要将总线的使用权分配给哪个设备呢?

总线控制部件通过BG(总线允许)发送一个信号(比如高电平信号),这个信号首先通过BG来到设备0。但是设备0此时并不想使用总线,所以设备0让电信号继续往后传递。

接下来到了设备1,由于设备1此时想要使用总线,所以当它接收到总线允许的信号之后,就意味着总线控制部件就允许它对总线进行控制了。(图中黄线)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yv5B8c7F-1674099742079)(D:\Typora图片\image-20230118180732282.png)]

<3> 所以设备1获得了总线的控制权,同时往BS(设备忙)发送一个信号(比如高电平信号),来表示这条总线的使用权已经被我占领了。(图中红线)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eOXU20A7-1674099742081)(D:\Typora图片\image-20230118180711928.png)]

<4>当总线控制部件检测到BS信号的时候,它就知道此时总线控制权已经被分配给某个设备了。

于是,总线控制部件会撤销BG(总线允许)信号。(图中黄线消失)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nPxU7PqZ-1674099742083)(D:\Typora图片\image-20230118180934612.png)]

<5> 接下来设备1就可以使用数据线和地址线与其他设备进行数据交互了。


此时设备1获得了总线的控制权,那么设备n呢?

来看一下设备n咋办。

<1> 它一直在请求总线控制部件,想使用总线。

但是总线控制部件检测到了BS上有总线忙的信号,它就不会将总线控制权分配给下一个设备。

直到设备1使用完总线,它就会撤销总线忙的信号。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NbkLZvYY-1674099742084)(D:\Typora图片\image-20230118182740013.png)]

<2> 然后总线控制部件检测到BR上依然有设备想要使用总线。(图中蓝线)

所以控制部件同样会通过BG来发送总线允许的电信号,如果接收到这个电信号并且当前设备不想要使用总线,它就会让电信号继续往后传,直到传递到n设备。(图中黄线)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7F5VpH7H-1674099742085)(D:\Typora图片\image-20230118183047278.png)]

设备n想要使用总线,它此时会截断总线允许信号,不让总线允许信号继续向后传。

<3> 然后设备n向BS发送一个总线忙信号,通知总线控制部件总线使用权已经被我占领了。(图中红线)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q5wvZ0Uc-1674099742085)(D:\Typora图片\image-20230118183345343.png)]

<4> 总线控制部件再次撤销BG信号。

总线忙信号的建立者是获得总线控制权的设备。

(3)特点

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yOQe5HwQ-1674099742086)(D:\Typora图片\image-20230118184407446.png)]

由于BG是将各个设备按照固定的顺序串联起来,如果某一个设备此时想要使用总线,它就不会让BG信号继续往后传。

因此,对于这种链式查询方式来说,越靠近总线控制器的部件,优先级越高,就能够越快得到总线的使用权。

就比如刚才的设备1和设备n,都想要使用总线控制权。BG信号会被设备1半路截胡,不让BG信号继续传递。所以设备1的优先级比设备n高。

(4)优缺点

①优点

<1> 链式查询方式优先级固定。(按照设备工作的重要性来排)

<2> 只需要很少几根控制线(BS、BR、BG三根)就能按一定优先次序实现总线控制,结构简单,扩充容易(只需要把想要加入的设备往后连,分别接上三根线即可)。

②缺点

<1> 对硬件电路的故障敏感,并且优先级不能改变。

假设设备1坏了,当BG信号传送给设备1之后,设备1不能让BG信号继续向后传递。

由于设备1的损坏,会导致后面的设备都不能接收到BG信号,就永远不能获得总线的控制权了。

<2> 当优先级高的设备频繁请求使用总线时,会使优先级较低的部件长期不能使用总线。(操作系统里面的饥饿问题)

2.计数器查询方式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F1EPKSaW-1674099742086)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230119101502309.png)]

(1)介绍

上图所示,可以发现,除了数据线地址线,还有BSBR,还增加了一组线设备地址线

设备地址线:要表示地址,肯定需要多个bit才能表示。比如设备的编号是从0~n,那么表示设备地址的这几根线比特位的数量必须能够表示0~n的范围,只有这样才能表示每个设备的编号。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MmIqE6sI-1674099742087)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230119102557037.png)]

控制部件里面还增加了一个计数器,即有计数功能的硬件部件。

(2)过程

假设此时设备1和设备n都想要拥有总线控制权。

<1> 那么它们会同时向总线请求线BR发出总线请求申请。(图中蓝线)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RnbchrqI-1674099742088)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230119102725863.png)]

<2> 当总线控制部件检测到BR上的电信号时,就知道此时有某个设备或者某些设备想要使用总线。

但是具体是哪一个设备想要使用总线,这时候时不知道的。

那究竟要将总线使用权分配给哪个设备呢?

①当总线控制部件检测到有总线请求的时候,它里面的计数器会开始计数。

比如从0开始计数。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GjfnKPki-1674099742088)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230119103151176.png)]

当计数器的值为0的时候,就意味着设备地址线上传过来的信息数据就是0(多个二进制位表示的0)。

地址信息为0的意思就是说,它正在询问0号设备,是不是你想要使用啊?

②由于0号设备此时不想使用,所以计数器会自动加一。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xqDTDFaZ-1674099742088)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230119103434381.png)]

然后设备1发现,地址信号是自己的编号。

就意味着此时控制部件正在询问设备1,你想要使用总线吗?

③此时设备1是想要使用总线的。

所以当设备地址线检测到设备地址为1的时候,设备1就会往总线忙BS上发送一个有效信号。(图中红线)如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2nrT6Ut3-1674099742089)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230119104011645.png)]

当控制部件检测到BS上传来了一个有效信号,这就意味着总线仲裁已经结束了。

已经选出了一个设备,让它获得了总线的控制权。

于是控制部件的计数器就不会再往后计数了(暂停计数)。

此时设备1就可以使用数据线和地址线来与其他设备进行数据交换了。

<3> 当设备1使用完总线之后,它就会撤回BS信号。

此时总线控制部件检测到总线已经不忙碌了(BS上没有有效信号了),而BR上还有请求信号。

那么总线控制部件又可以通过计数器来询问下一个设备要不要使用总线。

以此类推。

(3)特点

结构特点:用一个计数器控制总线使用权,相对链式查询方式多了一组设备地址线,少了一根总线响应线BG。它仍共用一根总线请求线。

计数器的计数方法有很多种。

①比如每次都可以从0开始,设备优先级就按顺序排列,固定不变。(和链式查询方式完全一样了)

②计数从上一次的终点开始,此时设备使用总线的优先级相等。

比如上一个例子中,设备1使用了总线,计数器是1号。那么还有设备想要使用总线的话,计数器就应该计数到2,然后一直到n,再回到0。

用这种循环计数的方式,可以保证各个设备对总线的控制权的优先级都是一样的。保证了公平性。

③计数器的初始值还可以由程序设置

如果想要计数器的计数方式更加灵活,我们还可以用程序设置的方式来设计更加复杂的计数。

(4)优缺点

①优点

<1> 计数器初始值可以改变优先次序,比较灵活。

计数器的集中仲裁方式可以保证各个设备对总线的使用权都是公平的。

<2> 对电路的故障没有链式敏感。

②缺点

<1> 增加了控制线数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EDNxriZW-1674099742089)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230119105846050.png)]

<2> 控制相对比链式查询复杂

由于增加了计数器这种部件,而且每一个I/O接口必须能够识别计数器发过来的设备地址。

所以这种方式比链式查询方式的电路实现更加复杂。

3.独立请求方式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aaALAk5N-1674099742090)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230119110545397.png)]

(1)介绍

可以看到,每个设备都和控制部件之间会有BR请求线和BG总线允许线相连接。

(2)过程

如果此时设备1和设备n都想使用总线。

<1> 那么它们会通过各自的BR总线请求线,向总线控制部件表达自己的请求。(图中蓝线)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d44jVO6V-1674099742090)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230119111005950.png)]

<2> 在控制部件内部,会有一个专门的排队器(具体什么原理不用深究)。

当控制部件接收到多个设备的请求时,排队器会决定此时应该优先把总线的控制权分配给哪一个设备。

比如,此时排队器决定将总线的控制权分配给设备n。那么它就会给设备n所对应的BG返回一个允许的信号。(图中黄线)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kvJDbBjv-1674099742090)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230119111356082.png)]

<3> 其实,课本里面画的这个图,还少了一根线BS(总线忙)。看下面的图中红线:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l2wQYkTk-1674099742091)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230119111501445.png)]

所有的设备都会和总线忙这根信号线进行连接。

设备n接收到总线允许的信号之后,它会往BS总线忙这根信号线上发送一个信号。

当总线控制部件接收到BS信号之后,就意味着此次总线仲裁结束。已经将总线控制权分配给设备n了。

<4> 于是总线控制部件撤销BG信号。

当设备n使用完总线之后,设备n也会撤回BS的电信号。

当总线控制部件检测到BS上没有有效信号之后,它就可以继续检查此时还有没有设备发出BR总线请求信号。

接下来再经过排队器的处理,将总线的控制权分配给下一个设备。

(3)特点

结构特点:每一个设备均有一对总线请求线BR和总线允许线BG。

(4)优缺点

①优点

<1> 响应速度快。

总线允许信号BG直接从控制器发送到有关设备,不必在设备间传递或者查询。

<2> 对优先次序的控制相当灵活。

②缺点

<1> 控制线数量多

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z6VFPYRY-1674099742091)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230119112523259.png)]

<2> 总线的控制逻辑更加复杂

4.总结

将上面三种方式总结对比如下:(注意各种方式的优缺点,选择题可能会考察)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cxYnhSbT-1674099742092)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230119112930808.png)]

四、分布仲裁方式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Odj8fcXP-1674099742092)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230119113012423.png)]

比如现在有一个游戏机,很多小孩想要玩这个游戏机。

分布仲裁方式并不会有一个大哥给大家当家作主,不会管游戏机应该分给谁。

比如现在5个小朋友里面1号、2号、3号小朋友想要玩游戏机,他们就会亮出自己的仲裁号(表明了优先级),由于1号小朋友个子特别高,别的小朋友都抢不过他,所以1号小朋友优先级最高,就会获得游戏机的使用权。

五、回顾

在这里插入图片描述


PS:这一节408不考,可以作为了解。
OK,有缘再会啦~
请添加图片描述

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

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

相关文章

在线支付系列【4】支付安全之数字签名

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 文章目录信息摘要摘要算法数据完整性数字签名签名流程验签流程实现代码信息摘要 信息摘要就是一段数据的特征信息&#xff0c;当数据发生了改变&#xff0c;信息摘要也会发生改变&#xff0c;发送方会将…

12月知识小报|线上问题的抽丝剥茧与一锤定音

海恩法则是德国飞机涡轮机的发明者帕布斯海恩提出的一个在航空界关于飞行安全的法则。每一起严重事故的背后&#xff0c;必然有29次轻微事故和300起未遂先兆以及1000起事故隐患。作为开发者&#xff0c;安全生产是我们底线&#xff0c;敬畏每一行代码&#xff0c;挖掘每一个故障…

LINUX学习之文件基本属性(二)

查看文件属性 Linux 系统是一种典型的多用户系统&#xff0c;不同的用户处于不同的地位并拥有不同的权限。在 Linux 系统中&#xff0c;通常使用 chown 命令来修改文件或目录的所有者&#xff0c;chmod 命令则用于设置用户的权限。 chown (change owner) &#xff1a;用于修改…

Linux下的进程通信之system V共享内存

目录 使用system V共享内存进行进程间通信&#xff1a; 获取共享内存shmget 将共享内存关联到进程 去关联共享内存 删除共享内存 简易模拟实现server和client之间的通信&#xff1a; 服务端代码&#xff1a; 客户端代码&#xff1a; 共享内存的特点&#xff1a; 其他…

solrCloud一:zookeeper集群搭建

SolrCloud是基于Solr和Zookeeper的分布式搜索方案&#xff0c;它的主要思想是使用Zookeeper作为集群的配置信息中心。SolrCloud是Solr的一种分布式部署方式 &#xff0c;当索引越来越大时&#xff0c;一个单一的系统无法满足空间和查询效率上的要求&#xff0c;这个时候往往需要…

SpringCloud(11):Hystrix请求合并

1 简介 如图&#xff0c;多个客户端发送请求调用(消费者)项目中的findOne方法&#xff0c;这时候在这个项目中的线程池中会发申请与请求数量相同的线程数&#xff0c;对EurekaServiceProvider(服务提供者)的getUserById方法发起调用&#xff0c;每个线程都要调用一次&#xff0…

圆满落幕!56 人参加,龙蜥社区技术委员会、运营委员会会议顺利完成

1 月 13 日&#xff0c;龙蜥社区分别召开了第 10 次技术委员会会议和第 14 次运营委员会会议&#xff0c;来自 21 家理事单位的委员代表出席。两个会上分别总结和回顾了龙蜥社区 2022 年度整体技术和运营发展情况&#xff0c;就社区产品、重要技术决策、社区治理、2023 年度运营…

塔望3W消费战略全案丨火出天际的预制菜,能否拯救开饭焦虑?

2022年6月塔望咨询开设塔望食品大健康消费研究院&#xff08;简称塔望食研院&#xff09;栏目&#xff0c;塔望食研院以“为食品行业品牌高质量发展赋能”为理念&#xff0c;将不定期发布食品大健康行业研究、消费研究报告。塔望食研院致力于结合外部数据、消费调研数据、企业内…

Web(九)

Web服务器软件Tomcat web服务器软件&#xff1a; 服务器&#xff1a;安装了服务器软件的计算机 服务器软件&#xff1a;接收用户的请求&#xff0c;处理请求&#xff0c;做出响应 web服务器软件&#xff1a;接收用户的请求&#xff0c;处理请求&#xff0c;做出响应。 在…

说话人识别损失函数的PyTorch实现与代码解读

概述 说话人识别中的损失函数分为基于多类别分类的损失函数&#xff0c;和端到端的损失函数&#xff08;也叫基于度量学习的损失函数&#xff09;&#xff0c;关于这些损失函数的理论部分&#xff0c;可参考说话人识别中的损失函数本文主要关注这些损失函数的实现&#xff0c;…

SQL 分组条件深入剖析

问题在 stackoverflow 网站上看到这样一个 SQL 分组条件的需求&#xff0c;需求看似挺简单&#xff0c;但能把 SQL 写正确对于新手来说也不容易&#xff0c;我们拿过来深入剖析一下&#xff0c;数据如下&#xff1a;需求是查找只有Ready 状态的设备。解答自然思路&#xff1a;按…

寅辞旧岁,卯定常虹丨ASKO洗碗机“净”护新春团圆时刻

农历新年是一年中最重要的节日&#xff0c;但过去三年的特殊时光阻碍了很多人的归乡之行&#xff0c;如今当阴霾逐渐散去&#xff0c;必然会引来大规模的新年归乡潮&#xff0c;奔赴一个久违的团圆年。美馔佳宴是新春佳节的永恒命题&#xff0c;新年家里少不了亲友的光临&#…

Windows 7的最后一个版本

前天推送的文章介绍了&#xff0c;在1月10日微软发布了最后一个补丁后&#xff0c;微软为Windows7提供的所有更新(包括收费的ESU)已经完全终止。以后再有新的补丁&#xff0c;则为第三方平台提供的非官方版的了。 早在2022年9月份&#xff0c;微软就发布了支持安全启动UEFI的补…

DocPrompt代码实现与模型微调

数据预处理阶段 PaddleOCR PP-Structure&#xff1a;这个库其实是用于版面分析的一个开源库&#xff0c;参见&#xff1a;github: Layout-Parser/layout-parserhttps://github.com/Layout-Parser/layout-parser 代码推理阶段 Paddle-Inferencehttps://paddle-inference.readt…

图形编辑器:工具管理和切换

大家好&#xff0c;我是前端西瓜哥。今天我们看看对于一款图形编辑器&#xff0c;应该怎么去实现工具&#xff0c;比如绘制矩形、选中工具&#xff0c;以及如何去管理它们的。 项目地址&#xff0c;欢迎 star&#xff1a; https://github.com/F-star/suika 线上体验&#xff1a…

【改进篇】Python实现VRP常见求解算法——蚁群算法(ACO)

基于python语言&#xff0c;实现经典蚁群算法&#xff08;ACO&#xff09;对车辆路径规划问题&#xff08;CVRP&#xff09;进行求解&#xff0c; 优化代码结构&#xff0c;改进Split函数 目录往期优质资源1. 适用场景2. 改进效果对比2.1实验结果2.2 改进前后算法性能对比3. 求…

臻图信息构建数字孪生港口船舶停靠管理系统,赋能港口创新发展

我国的港口不仅是船只停靠的避风港&#xff0c;也是现代渔业发展和管理的中心。随着国内港口业的不断发展&#xff0c;国务院在《现代综合运输体系发展“十四五”规划》中提出&#xff0c;要自动化、数字化、智能化等技术来完善监管体系建设。 ​ 随着科技兴港战略的提出&…

“零”代码改动,静态编译让太乙Stable Diffusion推理速度翻倍

作者&#xff5c;梁德澎 AI 作图领域的工具一直不尽人意&#xff0c;直到去年 8 月 Stable Diffusion 开源&#xff0c;成为AI 图像生成领域无可争辩的划时代模型。 为了提升其推理效率&#xff0c;OneFlow 首度将 Stable Diffusion 模型加速至“一秒出图”时代&#xff0c;极…

2023牛客寒假算法基础集训营2(11/12)

Tokitsukaze and abn (easy)Tokitsukaze and abn (medium)要使abn&#xff0c;那么转换一下就是bn-a&#xff0c;所以只需要计算[n-L,n-R]和[L,R]相交的部分即可AC代码&#xff1a;#include <bits/stdc.h> using namespace std; using LL long long; int main() {ios::s…

6. 基本数据类型

1. Python 中的变量不需要声明 每个变量在使用前都必须赋值&#xff0c;变量赋值以后该变量才会被创建。在 Python 中&#xff0c;变量就是变量&#xff0c;它没有类型&#xff0c;我们所说的"类型"是变量所指的内存中对象的类型。 counter 100 # 整型 mile…