总线的控制

news2025/1/31 2:59:01

总线控制

目录

  • 总线控制
    • 总线的判优控制
        • 链式查询
        • 计数器定时查询
        • 独立请求
        • 小结
    • 总线通信控制
        • 同步通信
        • 异步通信
        • 半同步通信
        • 分离通信

由于总线上连接着多个部件,什么时候由哪个部件发送信息,如何给传送信息定时,如何防止信息丢失,如何避免多个部件同时发送,如何规定接受信息的部件等一系列问题都需要由总线控制器统一管理。它主要包括判优控制(仲裁逻辑)和通信控制

总线的判优控制

由于总线上连接着多个部件,按其对总线有无控制功能可分为主设备和从设备两种。主设备对总线有控制权,从设备只能响应从设备发来的总线命令,对总线没有控制权。若同时有多个主设备要使用总显时,就由总线控制器判优、仲裁逻辑按一定的优先等级顺序确定哪个主设备能使用总线。

总线的判优控制分为集中式分布式两种,前者将控制逻辑集中在一处(如CPU),后者将控制逻辑分散在与总线连接的各个部件或设备上

常见的集中控制优先仲裁方式:

链式查询

image-20230412144820644

链式查询方式如上图所示。其中BS:总线忙、BR:总线请求、BG:总线允许

关注BG的连接方式,若BG到达的接口有总线请求,BG的信号就不往下传了,这意味着在链式查询中,离总线控制部件越近的设备具有较高的优先级

工作流程

  1. 主设备发出请求信号
  2. 若多个主设备同时要使用总线,则由总线控制器判优、仲裁逻辑按一定的优先等级顺序确定哪个主设备能使用总线
  3. 获得总线使用全的主设备开始传送数据

优点:

只需很少几根(BS、BG、BR)就能按一定的次序实现总线的控制,并且很容易扩充设备

缺点:

对电路很敏感,优先级低的设备很难获得请求,优先级不能改。

计数器定时查询

image-20230412150917625

计数器定时查询的方式,与链式查询相比,多了一组设备地址线,少了一根总线同意线BG

总线控制器在接到由BR送来的总线请求信号后,在总线未被使用的情况下,总线控制部件中的计数器开始计数,并通过设备地址线,向各设备发出一组地址信号。当某个请求占用总线的设备地址与计数地址一致时,获得总线使用权,此时终止计数查询。计数可以从0开始也可以从上次的位置开始。

优点

  1. 计数初始值可以改变优先次序
    • 计数器每次从0开始,设备的优先级按照排列顺序,固定不变
    • 计数从上一次的终点开始,此时设备使用总线的优先级相等
    • 计数器的初值可以由程序设置
  2. 对电路的故障没有链式敏感度

缺点

  1. 增加了控制线数
    • 若设备有n个,则需 [ l o g 2 n ] + 2 [log_2n] + 2 [log2n]+2条控制线。(BG换为一组地址线)
  2. 控制相对比链式查询相对复杂

独立请求

image-20230412150955127

结构特点:没一个设备均由一对总线请求线 B R i BR_i BRi和总线允许线 B G i BG_i BGi.

工作流程跟前面两种方式不同的是,通过BR发送请求和通过BG同意使用的两个信号由设备自己对应的两条线来传送。

优点:

  1. 相应速度快,总线允许信号BG直接从控制器发送到有关设备,不必在设备间传递或查询
  2. 对优先次序的控制相当灵活

缺点:

  1. 控制线数量多
    • 若有n个设备,则需要2n+1条控制线。其中+1为BS线,用于设备向总线控制部件反馈是否正在使用总线。
  2. 总线的控制逻辑更加复杂

小结

image-20230412151558678

总线通信控制

通常将完成一次总线操作的时间分为总线周期,可分为4个阶段:

  1. 申请分配阶段:由需要使用总线的主模块提出申请,经总线仲裁机构决定下一传输周期的总使用权授予某一申请者。也可将此阶段细分为传播请求总线仲裁两个阶段。
  2. 寻址阶段:获得使用权的主模块通过总线发出本次要访问的从模块的地址及有关命令,启动参与本次传输的从模块。
  3. 传输阶段:主模块和从模块进行数据交换,可单向或双向进行数据传送。
  4. 结束阶段:主模块的有关信息均从系统总线上撤出,让出总线使用权

对于一个仅有一个主模块的简单系统,无须申请、分配和撤出,总线的使用权始终归它所有。

对于包含中断、DMA控制或多处理机器的系统,还需要有其他管理机构来参与。

总线定时是指总线在双方交换数据的过程中需要时间上配合关系的控制,这种控制关系称为总线定时,但它的实质是一种协议或规定:。通常分为四种方式:同步通信、异步通信、半同步通信和半分离通信。

同步通信

通信双方采用统一的时标控制数据的传送称为同步通信。时标通常由CPU的总线控制部件发出,送到总线上的所有部件;也可以由每个部件各自的时序发生器发出,但必须由总线控制部件发出的时钟信号对它们进行同步。

同步通信中,若干个时钟产生相等的时间间隔,每个时间间隔构成一个总线周期。在一个总线周期中,发送方和接受方可进行一次数据传送。

image-20230412153215765

同步通信一般用于总线长度较短、各个部件存取时间比较一致(存取时间相近)的场合。对于不同速度的部件而言,必须由最慢速度的部件来设计公共时钟

优点:传送速度快,具有较高的传送速率,总线控制逻辑简单

缺点:主从设备属于强制性同步;不能及时进行数据通信的有效性检验,可靠性较差

异步通信

异步通信中没有同意的时钟,也没有固定的时间间隔,完全依靠传输双方相互制约的握手信号来实现定时控制。异步通信按照“请求”和“回答”信号的撤销是否互锁,分为以下三种类型:

  1. 不互锁方式
  2. 半互锁方式
  3. 全互锁方式

image-20230412153951360

优点:总线周期长度可变,能保证两个工作速度相差很大的部件或设备之间可靠地进行信息交换,自动适应时间的配合

缺点:比同步控制方式稍复杂一些,速度比同步定时方式慢。(需要请求和回答的时间引起)

半同步通信

image-20230412154456085

半同步通信上保留了同步通信的基本特点;同时增设了一条“等待”(WAIT)响应信号线采用插入时钟周期的措施来协调通信双方的配合问题。

增加的这条WAIT线可以协调主从模块速度不一致的问题,通过WAIT线可以给速度较慢的设备增加时钟周期。

分离通信

image-20230412154812084

分离式通信较前面几种通信方式,抓住了从模块等待时间较长且此时总线空闲的问题。从而将一个总线传输周期划分为两个子周期,且子周期的分界线刚好为从模块发送数据。

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

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

相关文章

React源码解析之createElement和render方法

参考资料 请注意,这是React16.8的源码解析,当然他完全可以作为你阅读源码的参考,他还没有落后。 Step1 开始之前,要先了解一个知识点⬇️ 我们都知道,要在JSX中写React语法,那为什么不能在js文件中写呢&am…

微搭使用笔记(六) 通过源码组件实现小程序端地图

前言 微搭官方提供了大量常用组件,但由于微搭本身也是在不断地完善过程中,有些组件还是没有提供,但同时微搭允许用户自定义组件并在应用中使用。 实际场景是这样的,我们需要一个地图页面在上面展示已知设备的信息和位置&#xf…

CentOS7 虚拟机 双网卡绑定

一、网卡绑定模式 模式类型特点mode0round-robin(平衡轮询策略)基于per packet方式,轮询往每条链路发送报文。提供负载均衡和容错的能力,当有链路出问题,会把流量切换到正常的链路上。交换机端需要配置聚合口。mode1a…

Linux网络编程(四)——UDP通信

目录 0x01 UDP协议 一、UDP通信简介以及接口 二、UDP的接口 三、UDP收发例程 0x02 广播 一、设置广播数据函数接口 二、广播代码实现 0x03 组播(多播) 一、组播地址 二、设置组播函数接口 三、代码实现 0x01 UDP协议 一、UDP通信简介以及接口…

《Netty》从零开始学netty源码(三十六)之ChannelConfig

ChannelConfig 在前面创建NioServerSocketChannel的 构造函数中,最后一步创建了channel属性的配置类NioServerSocketChannelConfig,本文详细分析下该类,先看下其类结构图。 类结构图 服务端使用的NioServerSocketChannelConfig,…

ELK日志分析系统+zookeeper

ELK日志分析系统zookeeper一、zookeeper简介1、zookeeper概念2、zookeeper数据结构二、zookeeper工作机制1、zookeeper特点2、zookeeper应用场景三、zookeeper集群部署1、安装前先关闭防火墙 核心防护2、安装JDK3、安装zookeeper4、修改配置文件5、创建数据目录和日志目录&…

JavaEE-网络原理之UDP协议

目录UDP报文结构UDP的特点无连接不可靠面向数据报缓冲区基于UDP的应用层协议UDP报文结构 报头大小为8个字节. 16位源端口号与16位目的端口号: 16个比特位可表示65536个端口号,分别为0-65535,其中1-1023为为专属端口号,用来为一些知名服务器提供服务,例如: HTTP服务器专属端口号…

【CSS】课程网站 网格商品展示 模块制作 ③ ( 清除浮动需求 | 没有设置高度的盒子且内部设置了浮动 | 使用双伪元素清除浮动 )

文章目录一、清除浮动需求 ( 没有设置高度的盒子且内部设置了浮动 )二、清除浮动代码示例一、清除浮动需求 ( 没有设置高度的盒子且内部设置了浮动 ) 如果盒子没有设置高度 , 并且盒子中还设置了浮动 , 如上一篇博客 【CSS】课程网站 网格商品展示 模块制作 ② ( 网格商品展示盒…

溯源反制(windows)

痛点: windows服务器被恶意入侵出现遭受挖矿,在没有专业的安全溯源反制的工具如何排查系统异常文件精准找出异常程序呢? 这样的吗 使用开源火绒、后门工具、D_盾_web查杀工具、360安全卫士进行全局查杀搜寻异常文件程序。 在应急响应中&am…

SpringBoot默认包扫描机制与默认配置文件

文章目录一、SpringBoot默认包扫描机制 - 示例二、SpringBoot默认扫描包机制 - 原理三、SpringBoot手动扫描包机制 - 原理&示例四、ComponentScan与MapperScan五、SpringBoot默认配置文件一、SpringBoot默认包扫描机制 - 示例 默认情况下,扫描启动类同级及其子…

护眼灯到底有没有用?盘点口碑销量好的护眼台灯

有一定的护眼作用。很多人认为护眼灯是智商税,想法并不正确,市面上品质好的护眼灯,光线是通过特殊处理过的,色温、亮度、光线均匀度、显色性都贴合人眼,并且能够护眼的效果。 我们在挑选护眼灯时,在室内环…

【MyBatis Plus】003 -- 配置(基本、进阶、DB策略) 条件构造器

目录 4、配置 4.1 基本配置 4.1.1 configLocation (MyBatis 配置文件位置) 4.1.2 mapperLocations(MyBatis Mapper 所对应的 XML 文件位置) 4.1.3 typeAliasesPackage (别名包扫描路径) 4.2 进阶配置 4.2.1…

代码随想录算法训练营第五十七天 | 647. 回文子串、516. 最长回文子序列、动态规划总结

647. 回文子串 动规五部曲 1、确定dp数组(dp table)以及下标的含义 在判断字符串S是否为回文时,如果知道 s[1],s[2],s[3] 这个子串是回文的,那么只需要比较 s[0]和s[4]这两个元素是否相同,如果…

NodeJS Cluster模块基础教程

Cluster简介 默认情况下,Node.js不会利用所有的CPU,即使机器有多个CPU。一旦这个进程崩掉,那么整个 web 服务就崩掉了。 应用部署到多核服务器时,为了充分利用多核 CPU 资源一般启动多个 NodeJS 进程提供服务,这时就…

【java】面向对象的编程基础

文章目录面向对象的编程基础定义方法重载执行顺序静态变量和方法加载顺序包和访问控制类的封装object类方法重写抽象类接口枚举类面向对象的编程基础 定义 public class person { String name; int age; char sex; person(String name,int age,char sex) {this.ageage;this.…

【华为OD机试】1043 - 从单向链表中删除指定值的节点

文章目录一、题目🔸题目描述🔸输入输出🔸样例1🔸样例2二、代码参考作者:KJ.JK🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 &am…

计算机网络笔记(横向)

该笔记也是我考研期间做的整理。一般网上的笔记是按照章节纪录的,我是按照知识点分类纪录的,大纲如下: 文章目录1. 各报文1.1 各报文头部详解1.2 相关口诀2. 各协议2.1 各应用层协议使用的传输层协议与端口2.2 各协议的过程2.2.1 数据链路层的…

零死角玩转stm32中级篇2-IIC总线

本篇博文目录:一.IIC基础知识1.什么是IIC总线2.IIC总线和串口有什么区别3.IIC总线是怎么实现多机通信4.仲裁是什么5.如果当前有一个从机进行了IIC通信又来了一个优先级高的从机,这时会打断前一个通信吗?6.IIC是怎么保证地址的唯一性7.在IIC总线协议中,规…

走进小程序【六】微信小程序架构之【视图层】万字详解

文章目录🌟前言🌟小程序架构🌟视图层 View🌟WXML🌟数据绑定🌟列表渲染🌟条件渲染🌟模板🌟WXSS🌟尺寸单位🌟样式导入🌟内联样式&#x…

VIM 编辑器使用教程

我们如果要在终端模式下进行文本编辑或者修改文件就可以使用 VI/VIM 编辑器,Ubuntu 自带了 VI 编辑器,但是 VI 编辑器对于习惯了 Windows 下进行开发的人来说不方便,比如竟然 不能使用键盘上的上下左右键调整光标位置。因此我推荐大家使用 V…