总线 订阅
总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束, 按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。总线是一种内部结构,它是cpu、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。在计算机系统中,各个部件之间传送信息的公共通路叫总线,微型计算机是以总线结构来连接各个功能部件的。 展开全文
总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束, 按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。总线是一种内部结构,它是cpu、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。在计算机系统中,各个部件之间传送信息的公共通路叫总线,微型计算机是以总线结构来连接各个功能部件的。
信息
定    义
信息传送的公共通路
作    用
连接不同计算机部件
分    类
数据总线、地址总线和控制总线
中文名
总线
外文名
bus
类    属
计算机
总线工作原理
如果说主板(Mother Board)是一座城市,那么总线就像是城市里的公共汽车(bus),能按照固定行车路线,传输来回不停运作的比特(bit)。这些线路在同一时间内都仅能负责传输一个比特。因此,必须同时采用多条线路才能传送更多数据,而总线可同时传输的数据数就称为宽度(width),以比特为单位,总线宽度愈大,传输性能就愈佳。总线的带宽(即单位时间内可以传输的总数据数)为:总线带宽 = 频率 x 宽度(Bytes/sec)。当总线空闲(其他器件都以高阻态形式连接在总线上)且一个器件要与目的器件通信时,发起通信的器件驱动总线,发出地址和数据。其他以高阻态形式连接在总线上的器件如果收到(或能够收到)与自己相符的地址信息后,即接收总线上的数据。发送器件完成通信,将总线让出(输出变为高阻态)。在计算机中用于连接各种功能部件并在它们之间传送数据的公用线路或通路。在计算机系统中按其所连接的对象,总线可分为: 片总线,又称器件级总线,它是中央处理器芯片内部的总线。内总线,又称系统总线或板级总线,它是计算机各功能部户之间的传输通路,微型计算机总线通常称为内总线。外总线,又称通信总线,它是计算机系统之间,或者是计算机主机与外围设备之间的传输通路 [1]  。总线是一种共享型的数据传送设备。虽然总线上可联接多个设备,但任一时刻通常只能有一对设备参与数据传输。按信息传输的形式,总线可分为并行总线和串行总线两种。并行总线对n位二进制信息用n条传输线同时传送,其特点是传输速度快,但系统结构较复杂,它用于计算机系统内的各部件之间的连接;串行总线对多位二进制信息共用一条传输线,多位二进制信息按时间先后顺序通过总线,它的特点是结构简单,但其传输速度较慢。总线必须有明确的规范: 总线定时协议,即在总线上传送信息时必须遵守一定的定时规则,例如同步总线定时,异步总线定时,半同步总线定时等。总线的物理特性,包括信号、电源、地址的电气特性,以及连线、接插件的机械特性。总线带宽,它是总线所能达到的最高传输率,其单位是MB/S。
收起全文
精华内容
下载资源
问答
  • 总线

    2019-08-25 19:33:30
    文章目录总线 总线 总线:可以理解为 CPU 与外设进行通信的通道; 总线按功能分,可以分为三类:地址总线(address bus)、数据总线(data bus)、控制总线(control bus); 地址总线:地址总线的数量决定了最大...

    文章目录

    总线


    总线:可以理解为 CPU 与外设进行通信的通道;
    总线按功能分,可以分为三类:地址总线(address bus)、数据总线(data bus)、控制总线(control bus);
    地址总线:地址总线的数量决定了最大内容的大小,3232 根总线最多可寻址 2324GB2^{32} 4GB
    数据总线:数据总线的数量决定了CPU一次写入数据的多少,例如:数据总线 3232 位 意思是 CPU 一次性可以写入 3232 位数据;
    控制总线:传输控制信号;

    展开全文
  • 一个关键的思想就是,消息总线可以为微服务做监控,也可以作为应用程序之间相互通讯。本文要讲述的是用AMQP实现通知微服务架构的配置文件的更改。一、准备工作本文还是基于上一篇文章来实现。按照官方文档,我们只...

    转载请标明出处:
    原文首发于:https://www.fangzhipeng.com/springcloud/2017/06/08/sc08-bus.html
    本文出自方志朋的博客

    个人博客纯净版:https://www.fangzhipeng.com/springcloud/2017/06/08/sc08-bus.html

    最新Finchley版本请访问:
    https://www.fangzhipeng.com/springcloud/2018/08/08/sc-f8-bus.html
    或者
    http://blog.csdn.net/forezp/article/details/81041062

    Spring Cloud Bus 将分布式的节点用轻量的消息代理连接起来。它可以用于广播配置文件的更改或者服务之间的通讯,也可以用于监控。本文要讲述的是用Spring Cloud Bus实现通知微服务架构的配置文件的更改。

    一、准备工作

    本文还是基于上一篇文章来实现。按照官方文档,我们只需要在配置文件中配置 spring-cloud-starter-bus-amqp ;这就是说我们需要装rabbitMq,点击rabbitmq下载。至于怎么使用 rabbitmq,搜索引擎下。

    二、改造config-client

    在pom文件加上起步依赖spring-cloud-starter-bus-amqp,完整的配置文件如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    	<modelVersion>4.0.0</modelVersion>
    
    	<groupId>com.forezp</groupId>
    	<artifactId>config-client</artifactId>
    	<version>0.0.1-SNAPSHOT</version>
    	<packaging>jar</packaging>
    
    	<name>config-client</name>
    	<description>Demo project for Spring Boot</description>
    
    	<parent>
    		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-starter-parent</artifactId>
    		<version>1.5.2.RELEASE</version>
    		<relativePath/> <!-- lookup parent from repository -->
    	</parent>
    
    	<properties>
    		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    		<java.version>1.8</java.version>
    	</properties>
    
    	<dependencies>
    		<dependency>
    			<groupId>org.springframework.retry</groupId>
    			<artifactId>spring-retry</artifactId>
    		</dependency>
    		<dependency>
    			<groupId>org.springframework.cloud</groupId>
    			<artifactId>spring-cloud-starter-config</artifactId>
    		</dependency>
    
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-web</artifactId>
    		</dependency>
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-aop</artifactId>
    		</dependency>
    
    
    		<dependency>
    			<groupId>org.springframework.cloud</groupId>
    			<artifactId>spring-cloud-starter-eureka</artifactId>
    		</dependency>
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-test</artifactId>
    			<scope>test</scope>
    		</dependency>
    
    		<dependency>
    			<groupId>org.springframework.cloud</groupId>
    			<artifactId>spring-cloud-starter-bus-amqp</artifactId>
    		</dependency>
    
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-actuator</artifactId>
    		</dependency>
    	</dependencies>
    
    	<dependencyManagement>
    		<dependencies>
    			<dependency>
    				<groupId>org.springframework.cloud</groupId>
    				<artifactId>spring-cloud-dependencies</artifactId>
    				<version>Dalston.RC1</version>
    				<type>pom</type>
    				<scope>import</scope>
    			</dependency>
    		</dependencies>
    	</dependencyManagement>
    
    	<build>
    		<plugins>
    			<plugin>
    				<groupId>org.springframework.boot</groupId>
    				<artifactId>spring-boot-maven-plugin</artifactId>
    			</plugin>
    		</plugins>
    	</build>
    
    	<repositories>
    		<repository>
    			<id>spring-milestones</id>
    			<name>Spring Milestones</name>
    			<url>https://repo.spring.io/milestone</url>
    			<snapshots>
    				<enabled>false</enabled>
    			</snapshots>
    		</repository>
    	</repositories>
    
    
    </project>
    
    
    

    在配置文件application.properties中加上RabbitMq的配置,包括RabbitMq的地址、端口,用户名、密码,代码如下:

    
    spring.rabbitmq.host=localhost
    spring.rabbitmq.port=5672
    # spring.rabbitmq.username=
    # spring.rabbitmq.password=
    
    

    如果rabbitmq有用户名密码,输入即可。

    依次启动eureka-server、confg-cserver,启动两个config-client,端口为:8881、8882。

    访问http://localhost:8881/hi 或者http://localhost:8882/hi 浏览器显示:

    foo version 3

    这时我们去代码仓库将foo的值改为“foo version 4”,即改变配置文件foo的值。如果是传统的做法,需要重启服务,才能达到配置文件的更新。此时,我们只需要发送post请求:http://localhost:8881/bus/refresh,你会发现config-client会重新读取配置文件

    在这里插入图片描述

    重新读取配置文件:

    在这里插入图片描述

    这时我们再访问http://localhost:8881/hi 或者http://localhost:8882/hi 浏览器显示:

    foo version 4

    另外,/bus/refresh接口可以指定服务,即使用"destination"参数,比如 “/bus/refresh?destination=customers:**” 即刷新服务名为customers的所有服务,不管ip。

    三、分析

    此时的架构图:
    在这里插入图片描述

    当git文件更改的时候,通过pc端用post 向端口为8882的config-client发送请求/bus/refresh/;此时8882端口会发送一个消息,由消息总线向其他服务传递,从而使整个微服务集群都达到更新配置文件。

    四、其他扩展(可忽视)

    可以用作自定义的Message Broker,只需要spring-cloud-starter-bus-amqp, 然后再配置文件写上配置即可,同上。

    Tracing Bus Events:
    需要设置:spring.cloud.bus.trace.enabled=true,如果那样做的话,那么Spring Boot TraceRepository(如果存在)将显示每个服务实例发送的所有事件和所有的ack,比如:(来自官网)

    {
      "timestamp": "2015-11-26T10:24:44.411+0000",
      "info": {
        "signal": "spring.cloud.bus.ack",
        "type": "RefreshRemoteApplicationEvent",
        "id": "c4d374b7-58ea-4928-a312-31984def293b",
        "origin": "stores:8081",
        "destination": "*:**"
      }
      },
      {
      "timestamp": "2015-11-26T10:24:41.864+0000",
      "info": {
        "signal": "spring.cloud.bus.sent",
        "type": "RefreshRemoteApplicationEvent",
        "id": "c4d374b7-58ea-4928-a312-31984def293b",
        "origin": "customers:9000",
        "destination": "*:**"
      }
      },
      {
      "timestamp": "2015-11-26T10:24:41.862+0000",
      "info": {
        "signal": "spring.cloud.bus.ack",
        "type": "RefreshRemoteApplicationEvent",
        "id": "c4d374b7-58ea-4928-a312-31984def293b",
        "origin": "customers:9000",
        "destination": "*:**"
      }
    }
    
    

    本文源码下载:
    https://github.com/forezp/SpringCloudLearning/tree/master/chapter8

    更多阅读

    史上最简单的 SpringCloud 教程汇总

    SpringBoot教程汇总

    Java面试题系列汇总

    五、参考资料

    spring_cloud_bus

    SouthEast
    扫码关注公众号有惊喜

    (转载本站文章请注明作者和出处 方志朋的博客

    展开全文
  • /// <summary> /// Connection监听器 /// </summary> class ConnectionListener : IEventListener { public void OnEvent(Event @event) ... Console.WriteLine("事件被触发了");...
  • 数据总线和地址总线

    万次阅读 2019-05-21 20:56:11
    有时候在说总线的宽度的时候,要注意是说的是数据总线还是地址总线。 地址总线的宽度表明CPU的寻址能力,数据总线的宽度决定了CPU和外界数据传送速度。 某个CPU有10根地址总线,一根线的稳定状态只有2种,高电平...

             ❤️强烈推荐人工智能学习网站❤️

             有时候在说总线的宽度的时候,要注意是说的是数据总线还是地址总线。

             地址总线的宽度表明CPU的寻址能力,数据总线的宽度决定了CPU和外界数据传送速度。

             某个CPU有10根地址总线,一根线的稳定状态只有2种,高电平和低电平。用二进制表示就是0和1,10根线就是2^10,数据大小的范围是0~1023内存单元。一个地址是表示一个内存单元的,一个内存单元对应一个字节。则它的寻址范围为1KB(1KB=1024B[B表示字节])。若CPU的地址总线宽度为32,就是2^32=2^10 * 2^10 * 2^10 * 2^2,2^10对应范围为1KB,则2^32对应的范围为4G。

             某个CPU的数据总线为8根,那么8根数据总线一次可传送一个8位二进制数(1个字节),那么改CPU一次性可传送的数据大小为1B(B表示字节);若数据总线为16根,则可以传送2B。

    展开全文
  • 总线 —— 总线仲裁

    千次阅读 2019-08-13 20:42:33
    一、总线仲裁的定义 为解决多个主设备同时竞争总线控制权的问题,应当采用总线仲裁部件,以某种方式选择一个主设备优先获得总线控制权。只有获得了总线控制权的设备,才能开始传送数据。 二、总线仲裁的分类 总线...

    一、总线仲裁的定义

    为解决多个主设备同时竞争总线控制权的问题,应当采用总线仲裁部件,以某种方式选择一个主设备优先获得总线控制权。只有获得了总线控制权的设备,才能开始传送数据。

    在这里插入图片描述


    二、总线仲裁的分类

    总线仲裁方式按其仲裁控制机构的设置可分为集中仲裁方式和分布仲裁方式。

    将总线上所连接的各类设备按其对总线有无控制功能分为:

    • 主设备:对总线有控制权,信息的传送是由主设备启动的
    • 从设备:对总线没有控制权,从设备只能响应从主设备发来的总线命令

    工作流程:

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

    1. 集中仲裁方式

    总线控制逻辑基本上集中于一个设备(如CPU)中。将所有的总线请求集中起来,利用一个特定的裁决算法进行裁决,称为集中仲裁方式。集中仲裁方式有链式查询方式、计数器定时查询方式和独立请求方式三种。

    (1)链式查询方式

    共用一根总线请求线 BR,通过总线允许线 BG 串行地传送响应信号。

    1. 当总线上的部件需要使用总线时,经过总线请求线 BR 发送总线请求信号,若总线空闲时,则立即发送总线响应信号。
    2. 当响应信号到达的部件有总线请求,则信号被截住,不再传下去,该设备获得总线控制权
    3. 主设备发送总线忙信号 BS,防止其它设备占用总线

    在这里插入图片描述
    优先级:离总线控制器越近的部件,其优先级越高;离总线控制器越远的部件,其优先级越低。

    优点:链式查询方式优先级固定。只需很少几根控制线就能按一定优先次序实现总线控制,结构简单,扩充容易。

    缺点:对硬件电路的故障敏感,并且优先级不能改变。当优先级高的部件频繁请求使用总线时,会使优先级较低的部件长期不能使用总线。

    (2)计数器定时查询方式

    共用一根总线请求线 BR,通过一个计数器和一组设备地址线产生并传送计数值(响应信号)。

    1. 当总线上的部件需要使用总线时,经过总线请求线 BR 发送总线请求信号,若总线空闲时,则计数器开始计数,计数值通过设备地址线发向各个部件。
    2. 当设备地址线上的计数值与请求使用总线设备的地址一致时,该设备获得总线控制权,同时中止计数器的计数及查询。
    3. 主设备发送总线忙信号 BS,防止其它设备占用总线

    在这里插入图片描述

    优点:

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

    缺点:

    1. 增加了控制线数,若设备有n个,则需 log2n┌log_2n┐+2条控制线
    2. 控制相对比链式查询相对复杂

    (3)独立请求方式

    每个设备均有一对总线请求线 BRi 和总线允许线 BGi,通过各自的总线允许线 BGi 传送响应信号。

    1. 当总线上的部件需要使用总线时,经过各自的总线请求线 BRi 发送总线请求信号,在总线控制器中排队,当总线控制器按一定的优先次序决定批准某个部件的请求时,给该部件发送总线响应信号。
    2. 主设备发送总线忙信号 BS,防止其它设备占用总线

    在这里插入图片描述
    优点:

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

    缺点:

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

    (4)总结

    在这里插入图片描述

    2. 分布仲裁方式

    特点:不需要中央仲裁器,每个潜在的主模块都有自己的仲裁器和仲裁号,多个仲裁器竞争使用总线。

    工作流程:

    1. 当设备有总线请求时,它们就把各自唯一的仲裁号发送到共享的仲裁总线上
    2. 每个仲裁器将从仲裁总线上得到的仲裁号与自己的仲裁号进行比较
    3. 如果仲裁总线上的号优先级高,则它的总线请求不予响应,并撤销它的仲裁号
    4. 最后,获胜者的仲裁号保留在仲裁总线上。
    展开全文
  • 总线 —— 总线标准

    千次阅读 2019-08-14 07:42:03
    一、基本概念 二、系统总线标准 三、局部总线标准 四、设备总线标准 五、视频总线标准 六、总结
  • 今天在做软考的题目时发现一道题目,做过很多遍了,却始终会做错,刚开始我以为这只是一道记忆性的...地址总线和数据总线的宽度都为32 B.地址总线的宽度为30,数据总线的宽度为32 C.地址总线的宽度为30,数据...
  • 内部总线就是开发人员经常用到的各种协议,比如SPI总线协议、SCI总线协议、IIC总线协议、UART、GPIO、CAN、SDIO、IIS等。是CPU和外设进行控制指令,访问地址,交换数据的通信规则。如果不是开发人
  • 汽车中的电子部件越来越多,光是ECU就有几十个,这么多的电子...目前,有四种主流的车用总线:CAN总线、LIN总线、FlexRay总线和MOST总线。 用一张表格来说明各种总线的区别 LIN总线 LIN(Local Interconnec...
  • 部分内容来自于 知乎 前端总线,系统总线,内部总线,外部总线 本文是在两篇文章的基础上进行了二次加工,对两篇文章的精华内容进行了提炼,删掉了对理解主题不重要的,或已经过时的内容。并且为了更好的理解,自己...
  • 总线的定义, 并行总线和串行总线

    千次阅读 2020-09-24 08:47:17
    任何一个微处理器都要与一定数量的部件和外围设备连接,但如果将... 微机中总线一般有内部总线、系统总线和外部总线。内部总线是微机内部各外围芯片与处理器之间的总线,用于芯片一级的互连;而系统总线是微机中各插件
  • 一、总线的分类 总线的分类可以按照数据传输格式、总线功能和时序控制方式三个角度进行划分。 1. 按数据传输格式 按数据传输格式,可以将总线分为串行总线和并行总线。 工作频率相同时,串行总线传输速度比并行总线...
  • 总线分类及常见总线

    千次阅读 2019-08-14 19:42:16
    目录 1.总线分类 1.1数据传输方式分类 1.1.1串行总线 1.1.2并行总线 ...1.3.1 片上总线(片内总线) 1.3.2 片间总线 1.3.3系统总线 1.3.4 外部总线 arm芯片用pcie总线是不是能提高数据传输性...
  • 数据总线,地址总线,控制总线

    千次阅读 2018-05-22 12:06:26
    这三个属性要通过三个总线实现:数据总线,地址总线,控制总线;地址总线:决定内存数据操作的地址1、CPU是通过地址总线来指定存储单元的。2、地址总线决定了CPU能访问的最大内存空间的大小。3、地址总线是地址线...
  • FSB总线 Front Side BUS,前端总线,是将CPU连接到北桥芯片的系统总线,是CPU和外界交换数据的通道。 注:历史上前端总线会被误认为是外频的另一个名称,外频指的是CPU与主板连接的速度,是建立在数字脉冲信号震荡...
  • 系统总线上传送的信息包括数据信息、地址信息、控制信息,因此,系统总线包含有三种不同功能的总线,即数据总线DB(Data Bus)、地址总线AB(Address Bus)和控制总线CB(Control Bus)。 数据总线DB用于传送...
  • 2022年考研计算机组成原理_6 总线

    万次阅读 2020-12-30 08:29:54
    总线6.1 概述6.1.1 概念6.1.2 分类按功能层次分类按数据线的多少分类6.1.3 结构分类6.1.4 性能指标6.2 组成和结构1) 地址总线2) 数据总线3) 控制总线6.3 设计和实现6.3.1 仲裁1) 集中仲裁方式**链式查询方式****...
  • LIN总线总结

    万次阅读 多人点赞 2018-06-12 22:53:09
    画点时间看了一些关于LIN总线基础的内容,把其中的关键点提取了出来,在这里分享给大家。在这里你可能要问“不都有CAN总线了吗?这个LIN总线又是从哪里来的?”其实理由很简单,就是CAN总线太贵啦!处处都用CAN总线...
  • 总线宽度VS总线带宽

    千次阅读 2018-10-23 15:05:12
    很多人把计算机总线宽度和总线带宽混为一谈,其实他们是不一样的。 总线宽度:总线宽度一般指CPU中运算器与存储器之间进行互连的内部总线二进制位数,影响吞吐量,即下面说的总线位宽。 总线带宽:总线的带宽指的...
  • 同步总线和异步总线

    千次阅读 2020-04-02 20:27:22
    同步总线:指互联的部件或设备均通过统一的时钟进行同步,即所有的互联的部件或设备都必须使用同一个时钟(同步时钟),在规定的时钟节拍内进行规定的总线操作,来完成部件或设备之间的信息交换。 异步总线:指没有...
  • 汽车CAN总线详解

    万次阅读 多人点赞 2018-09-28 16:58:49
    CAN(Controller Area Network)总线协议是由BOSCH发明的一种基于消息广播模式的串行通信总线,它起初用于实现汽车内ECU之间可靠的通信,后因其简单实用可靠等特点,而广泛应用于工业自动化、船舶、医疗等其它领域。...
  • 地址总线、数据总线、控制总线

    千次阅读 2017-01-03 13:40:28
    地址总线:决定内存数据操作的地址 CPU通过地址总线来指定存储器单元。地址总线上能传送多少个不同的信息,cpu就能对多少个内存单元进行寻址、公式如下: 寻址大小m=2的N次幂,N是地址总线的个数 上图展示的是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 90,508
精华内容 36,203
关键字:

总线