(三)计算机组成原理——总线

news2024/12/27 16:02:10

文章目录

  • (三)计算机组成原理——总线
    • 总线的基本概念
      • 单总线
      • 双总线
        • 面向CPU
        • 以存储器为中心
    • 总线的分类
      • 片内总线
      • 系统总线
        • 数据总线
        • 地址总线
        • 控制总线
      • 通信总线
    • 总线特性及性能指标
      • 总线特性
        • 机械特性
        • 电气特性
        • 功能特性
        • 时间特性
      • 性能指标
      • 总线标准
    • 总线结构
      • 单总线
      • 多总线
        • 双总线
        • 三总线
        • 四总线
    • 总线控制
      • 总线判优控制
        • 链式查询
        • 计数器定时查询
        • 独立请求方式
      • 总线通信控制
        • 同步通信
          • 特点
        • 异步通信
          • 不互锁
          • 半互锁
          • 全互锁
        • 半同步通信
        • 分离式通信
          • 特点
    • 总结

(三)计算机组成原理——总线

总线的基本概念

接下来呢,我们就开始介绍有关总线的相关知识了,说起总线,值得一提的是,它的英文名是BUS,也就是公共汽车,接下来我们会介绍为什么他会叫这个名字。好啦,就让我们开始今天的学习吧!

首先我们提出一个问题:那就是,我们为什么要使用总线?原因很简单,就是我们的计算机中有许多的设备,如果使用分散连接,也就是每两个设备之间互相连接,那样会造成大量的线路连接,而且还不利于添加删减设备。举个不恰当的例子,把我们的房子想成一个设备,公路想成线路,如果每家每户都一一连接,房子少的时候还好,但是一旦房子一多起来,就很麻烦了。所以我们设计出来了总线这样的方式,他就相当于一条靠近大家的大马路,每家每户通过这条马路去通信就好了,这样既简单,又便捷。

接下来我们来介绍一下有关总线的介绍:总线是连接多个部件的信息传输线,是各部件共享的传输介质,每一次只允许两个设备之间进行通信。而且在总线中,信息传递方式分为串行和并行两种,接下来我们会对其进行详细介绍。接下来我们来看一看一些总线结构。

单总线

顾名思义,就是只有一根总线。

在这里插入图片描述

图1.1 单总线

双总线

双总线呢,我们暂时展示两种,第一种是面向CPU,另外一种就是以寄存器为中心。我们一起来看看吧!

面向CPU

这种面向CPU的方式呢,虽然使得CPU与主存之间通信更快,但是还是有一个问题,就是设备与主存之间访问需要通过CPU,速度较慢,于是我们设计出来了以存储器为中心的结构。

在这里插入图片描述

图1.2 面向CPU的双总线

以存储器为中心

存储器为中心的结构是在单总线基础上又开辟出的一条 CPU 与主存之间的总线,称为存储总线。这组总线速度高,只供主存与 CPU 之间传输信息。这样既提高了传输效率,又减轻了系统总线的负担,还保留了 I/0 设备与存储器交换信息时不经过 CPU 的特点

在这里插入图片描述

图1.3 以存储器为中心的双总线

总线的分类

接下来我们来具体看一看总线的分类,当然了,根据不同的分类原则,也就能分成不同的种类,接下来我们是按照连接部件来进行分类的。

片内总线

这个比较好理解,片内总线是指芯片内部的总线,如在 CPU 芯片内部,寄存器与寄存器之间、寄存器与算逻单远 ALU 之间都由片内总线连接。

系统总线

系统总线是指 CPU 、主存、 I/O 设备(通过 I/O接口)各大部件之间的信息传输线。由于这些部件通常都安放在主板或各个插件板上,故又称板级总线或板间总线。按系统总线传输信息的不同,又可分为三类:数据总线、地址总线和控制总线。接下来我们来一一进行介绍。

数据总线

顾名思义,数据总线就是用来传输数据的,并且它是双向传输总线,其位数与机器字长、存储字长有关。数据总线的位数称为数据总线宽度,它是衡量系统性能的一个重要参数。

地址总线

地址总线主要用来指出数据总线上的源数据或目的数据在主存单元的地址或 I/O 设备的地址。

控制总线

由于数据总线、地址总线都是被挂在总线上的所有部件共享的,如何使各部件能在不同时刻占有总线使用权,需依靠控制总线来完成,因此控制总线是用来发出各种控制信号的传输线。通常对任一控制线而言,它的传输是单向的。而且控制信号既有输出,又有输入。常见的控制信号如:总线请求,中断请求等等。

通信总线

这类总线用于计算机系统之间或计算机系统与其他系统之间的通信。主要分为串行通信和并行通信。串行通信是指数据在单条位宽的传输线上,一位一位地按顺序分时传送。并行通信是指数据在多条并行位宽的传输线上,同时由源传送到目的地,适宜近距离的传输。

总线特性及性能指标

接下来我们来介绍一下总线特性、性能指标和总线标准。

总线特性

我们现在将介绍一下关于总线的一些特性,首先我们来看一下总线的物理结构。

图中 CPU 、主存、 I/O 这些插板(又称插卡)通过插头与水平方向总线插槽连接。

在这里插入图片描述

3.1 总线物理实现

机械特性

机械特性是指总线在机械连接方式上的一些性能,如插头与插座使用的标准,它们的几何尺寸形状管脚数以及排列的顺序,接头处的可靠接触等。

电气特性

电气特性主要是指总线的每一根传输线上信号的传递方向有效的电平范围

功能特性

功能特性是指总线中每根传输线的功能,主要包含数据、地址和控制总线等等。

时间特性

主要涉及的就是信号的时序关系,也可以说总线中的任一根线在什么时间内有效。

性能指标

性能指标的话,其实就是衡量总线能力的一个判断标准,具体我们就来看看吧!

  1. 总线宽度:通常是指数据总线的根数。
  2. 总线带宽:总线带宽可理解为总线的数据传输速率,即单位时间内总线上传输数据的位数,通常用每秒传输信息的字节数来衡量,单位可用 MBps (兆字节每秒)表示。
  3. 时钟同步/异步:总线上的数据与时钟同步工作的总线称为同步总线,与时钟不同步工作 的总线称为异步总线。
  4. 总线复用:一条信号线上分时传送两种信号。
  5. 信号线数:地址总线、数据总线和控制总线三种总线数的总和。
  6. 总线控制方式:包括突发工作、自动配置、仲裁方式、逻辑方式、计数方式等。
  7. 其他指标:如负载能力、电源电压(是采用 5V 还是 3.3 V) 、总线宽度能否扩展等。

具体的判断标准大概如上所示。

总线标准

总线标准的话,有许许多多标准,如:ISA 总线、 EISA 总线、 VESA总线、 PCI 总线、 AGP 总线、RS-232C 总线和USB 总线等等,我们呢,就不一一介绍,书上都有。

在这里插入图片描述

3.2 总线标准

总线结构

接下来呢,我们开始介绍总线结构,主要分为单总线与多总线两种,我们就来一一介绍吧!

单总线

单总线是将 CPU 、主存、 I/O 设备都挂在一组总线上,允许 I/O 设备之间、 I/O 设备与 CPU 之间或 I/O 设备与主存之间直接交换信息。之前简单介绍过一下,在此就不再赘述了。

在这里插入图片描述

图4.1 单总线

多总线

对于多总线结构,主要包括双总线、三总线、四总线结构等等,我们来一一介绍吧!

双总线

双总线结构的特点是将速度较低的 I/0 设备从单总线上分离出来,形成主存总线与 I/0 线分开的结构。有点类似于面向CPU的双总线模式,但不是。通道可以说是具有特殊功能的处理器,由通道对I/O统一管理。

在这里插入图片描述

图4.2 双总线

三总线

如果将速率不同的 I/0 设备进行分类,然后将它们连接在不同的通道上,那么计算机系统的 工作效率将会更高,由此发展成多总线结构。接下来我们来介绍两种三总线模式。

这种就是将高速I/O设备通过DMA挂接到主存上面,这样设备可以快速从主存里面获得数据。

在这里插入图片描述

图4.3 三总线

另外一种结构就是通过一个Cache去保存CPU所需的数据。也可以达到高速存储的作用。

在这里插入图片描述
)

图4.4 三总线

四总线

为了进一步提高 I/0 设备的性能,使其更快地响应命令,又出现了四总线结构,这种结构对高速设备而言,其自身的工作可以很少依赖 CPU ,同时它们又比扩展总线上的设备更贴近 CPU ,可见对于高性能设备与 CPU 来说,各自的效率将获得更大的提高。

在这里插入图片描述

图4.5 四总线

总线控制

接下来我们介绍的就是关于总线控制的相关内容,主要包括判优控制和通信控制,而且这一部分内容就是我们的重难点,所以我也会着重进行讲解。

总线判优控制

首先我们根据设备是否对总线有控制权,我们把其分为主设备和从设备。主设备对总线有控制权,从设备只能响应从主设备发来的总线命令,对总线没有控制权。总线判优也分为集中式和分布式两种,接下来我们会一一进行介绍。

链式查询

链式查询,顾名思义,就是跟一条链子一样,一个一个查询过去。控制总线中有3根线用于总线控制(BS 总线忙、 BR 总线请求、 BG 总线同意),其中总线同意信号 BG 是串行地从一个 I/O 接口送到下 一个 I/O 接口。

具体操作就是,BG一个一个去查询有没有设备发送总线请求BR,当发现了有之后,这个设备就会发送总线忙信号BS,这样就占有了总线,然后下一次也是如此循环。

这样的话只需很少几根线就能按一定优先次序实现总线控制,并且很容易扩充设备,但对电路故障很敏感,且优先级别低的设备可能很难获得请求。

在这里插入图片描述

图5.1 链式查询

计数器定时查询

接下来介绍的是计数器定时查询,与链式查询相比,多了一组设备地址线,少了一根总线同意线 BG 。总线控制部件接到由 BR 送来的总线请求信号后,在总线未被使用 (BS= 0) 的情况下,总线控制部件中的计数器开始计数,并通过设备地址线,向各设备发出一组地址信号。这样的好处是可以自己设定优先级,并且可以通过循环的方式去一一遍历设备(每此从中断点开始计数)。

在这里插入图片描述

图5.2 计数器定时查询

独立请求方式

独立请求方式就是每个设备都与总线控制部件相连,当设备要求使用总线时,便发出该设备的请求信号。总线控制部件中有一排队电路,可根据优先次序确定响应哪一台设备的请求。

这种方式的特点是:响应速度快,优先次序控制灵活,但控制线数量多,总线控制更复杂。

在这里插入图片描述

图5.3 独立请求

总线通信控制

接下来我们要介绍的就是总线通信控制了,主要就是用来解决通信双方协调配合的问题的。一共分为4个阶段,申请分配、寻址、传输和结束阶段。通信方式也刚好是四种,分为同步、异步、半同步和分离式四种,好了,就让我们开始吧!

同步通信

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

在这里插入图片描述

图5.4 同步通信输入

对于读命令,其传输周期如下:

  1. T1主模块发地址。
  2. T2主模块发读命令。
  3. T3从模块提供数据。
  4. T4主模块撤销读命令,从模块撤销数据。

在这里插入图片描述

图5.5 同步通信输出

对于写命令,其传输周期如下:

  1. T1主模块发地址。
  2. T1.5主模块发读命令。
  3. T2从模块提供数据。
  4. T4主模块撤销读命令,从模块撤销数据。
特点

这种通信的优点是规定明确、统一,模块间的配合简单一致。其缺点是主、从模块时间配合属于强制性”同步”,必须在限定时间内完成规定的要求。并且对所有从模块都用同一限时,这就势必造成,对各不相同速度的部件而言,必须按最慢速度的部件来设计公共时钟,严重影响总线的工作效率,也给设计带来了局限性,缺乏灵活性。

所以同步通信一般用千总线长度较短、各部件存取时间比较一致的场合。而且,总线传输周期越短,数据线的位数越多,直接影响总线的数据传输率。

异步通信

异步通信克服了同步通信的缺点,允许各模块速度的不一致性,给设计者充分的灵活性和选择余地。他是是采用应答方式(又称握手方式),即当主模块发出请求 (Request) 信号时,一直等待从模块反馈回来“响应 ”信号后才开始通信。应答方式可分为不互锁、半互锁和全互锁三种类型。

我们在这里采用出租车的例子去帮助大家理解这三种方式的区别,请大家想像自己在和出租车司机交流。

不互锁

在这里插入图片描述

图5.6 不互锁

这就是第一种情况,热情司机与高冷乘客,首先司机询问:你去哪啊?(请求信号)。但是乘客不回答,这个时候司机只能按照打车软件的地址将乘客安全送达,或者只能让他下车了。

半互锁

在这里插入图片描述

图5.7 半互锁

这个属于第二种情况,高冷司机与热情乘客,首先司机询问:你去哪啊?(请求信号)。乘客回答:机场(回答信号)。这个时候司机便不再回答。这种情况看起来不错,但是会照成一个情况,就是顾客怕司机没听清楚,便一直回答。

全互锁

在这里插入图片描述

图5.8 全互锁

这个属于第三种情况,热情司机与热情乘客,首先司机询问:你去哪啊?(请求信号)。乘客回答:机场(回答信号)。这个时候司机便回答:好嘞。这种情况就比较完美了。

半同步通信

半同步通信既保留了同步通信的基本特点,如所有的地址、命令、数据信号的发出时间,都严格参照系统时钟的某个前沿开始,而接收方都采用系统时钟后沿时刻来进行判断识别;同时又像异步通信那样,允许不同速度的模块和谐地工作。

在这里插入图片描述

图5.9 半同步通信输入

其实就是加了一个等待信号,以便于不同速度的模块能一起工作。对于读命令,其传输周期如下:

  1. T1主模块发地址。
  2. T2主模块发读命令。
  3. Tw W A I T ‾ \overline{WAIT} WAIT为低电平时,进入等待,八的宽度与 的宽度一致。
  4. T3从模块提供数据。
  5. T4主模块撤销读命令,从模块撤销数据。

然后输出也是一样的,就不再赘述了。

我们总结一下上面三种通信的共同点,我们可以得到如下信息:

  • 主模块发地址、命令 占用总线
  • 从模块准备数据 不占用总线
  • 从模块向主模块发数据 占用总线

于是在此基础上,我们设计出来了分离式通信。充分挖掘系统总线每个瞬间的潜力。

分离式通信

我们主要分为两个周期:

  • 主模块申请占用总线,使用完后既放弃总线的使用权。
  • 从模块申请占用总线,将各类学习传输到总线上。
特点
  1. 各模块欲占用总线使用权都必须提出申请。
  2. 在得到总线使用权后,主模块在限定的时间内向对方传送信息,采用同步方式传送,不再等待对方的回答信号。
  3. 各模块在准备数据的过程中都不占用总线,使总线可接受其他模块的请求。
  4. 总线被占用时都在做有效工作,或者通过它发送命令,或者通过它传送数据,不存在空闲等待时间,充分地利用了总线的有效占用,从而实现了总线在多个主、从模块间进行信息交叉重叠并行式传送,这对大型计算机系统是极为重要的。

总结

好啦,关于总线的知识我们就讲解这么多,谢谢大家的阅读了。

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

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

相关文章

3.1 python高阶应用

文章目录闭包装饰器设计模式单例模式工厂模式多线程进程、线程和并行执行多线程编程网络编程服务端开发客户端开发正则表达式基础匹配元字符匹配递归闭包 def account_create(inital_account 0) :def atm(num:int,deposite:bool True) :# 声明inital_account是外部声明的init…

【Ajax】服务器的基本概念

一、客户端与服务器上网的目的通过互联网的形式来获取和消费资源。2. 服务器上网过程中,负责存放和对外提供资源的电脑,叫做服务器。3. 客户端上网过程中,负责获取和消费资源的电脑,叫做客户端。二、URL地址URL地址的概念URL&…

工业互联网2022:第一梯队成型、专精玩家突围

文|智能相对论作者|沈浪回顾2022年,市场依旧对工业互联网领域保持着高度的热情与专注。近期,IDC、Gartner等各大国际研究机构接连发布多份工业互联网相关报告,包括《2022年度中国工业互联网平台企业侧市场分析报告》《2022年度工业互联网平台…

唯一杰出级!百度智能云曦灵获信通院权威认证

​中国信通院公布“数字人系统评测结果” 百度智能云曦灵平台 继首批通过48项基础能力评测后 在第二轮性能分级评测中 以超高分获得行业唯一“杰出级”证书 代表了当前数字人的最高标准 该评测标准依托国际电信联盟(ITU)、中国通信标准化协会&#xff08…

JNPF低代码开发平台 全新版本 使用讨论 多用户商城系统源码 框架源码部署文档

JNPF快速开发平台是一套成熟的快速开发框架, JNPF作为承重墙,强大支撑保障,提供所有操作系统的生长土壤,JNPF快速开发平台采用前后端分离技术、采用B/S架构开发,形成一站式开发多端(APPPC)使用&…

【手写 Vue2.x 源码】第二十九篇 - diff算法-节点比对

一,前言 上篇,diff 算法问题分析与 patch 方法改造,主要涉及以下几点: 初始化与更新流程分析;问题分析与优化思路;新老虚拟节点比对模拟;patch 方法改造; 下篇,diff 算…

Mysql的锁问题:

Mysql的锁问题: 1.1锁的概述: ​ Mysql锁的机制比较简单,不同的存储引擎支持不同的锁机制:MyISAM和MEMORY存储引擎支持表级锁;DBD支持页面锁,但是它也支持表级锁;InnoDB既支持行级锁也支持表级…

23-1-18 文件上传

步骤 file01 / file02 分别是两台java服务 功能: 主要负责接收用户上传的文件存储在指定目录 并记录(上传时间、上传人、文件信息(大小,源文件名,存储后的文件名 ....) 文件权限(共享、私有))。负责接收处理用户的下载请求,用户可以根据文件…

【开发Log】C++QT连连看

1.10开发的初衷是闲来无事开了把宠物连连看,然后发现打了几遍第一关都过不去,于是想自己写个,这样就可以任意使用提示次数了(bushi。其实今天正好是老妈生日,问了下老妈她竟然还玩连连看,还ak了orz。于是乎…

分布式理论

目录 1.定义 2.关键技术 3.关键问题 4.基本定理 4.1.CAP定理 4.2.BASE定理 1.定义 分布式的本质是一系列计算机集群通过网络共同完成一串连贯的任务。 2.关键技术 分布式主要关注的几个关键点技术是: 性能容错通信 性能: 可扩展性&#xff0c…

深度学习入门基础CNN系列——池化(Pooling)和Sigmoid、ReLU激活函数

想要入门深度学习的小伙伴们,可以了解下本博主的其它基础内容: 🏠我的个人主页 🚀深度学习入门基础CNN系列——卷积计算 🌟深度学习入门基础CNN系列——填充(padding)与步幅(stride&…

Acwing - 算法基础课 - 笔记(数学知识 · 三)(补)

数学知识(三) 这一小节讲的是高斯消元,组合数。 高斯消元 高斯消元是用来解方程的,通常来说可以在 O(n3)O(n^3)O(n3) 的时间复杂度内,求出包含 n 个未知数的,n个方程的多元线性方程组的解。如下的方程组…

人机界面石油行业应用:一个设备构建石油罐区状态监测系统

一、应用背景 石油罐区是石油石化企业重要的生产设施,负责存储和输送各类油品,而石油罐区状态参数的监控是生产管理的重要部分,不仅可以及时准确地获取现场设备数据,保证罐区的正常运行,还可以防止安全事故的发生。 …

Python如何解决“快手滑块验证码”(4)

前言 本文是该专栏的第32篇,后面会持续分享python的干货知识,记得关注。 很多时候,我们打开一个页面还没开始进行浏览,就跳出一个滑块验证的图片,需要拖到滑块至缺口处,才可以正常浏览。这对于我们正常人浏览页面来说,几乎没什么难度,但是当我们需要用到脚本去实现的时…

本地服务器如何让外网远程桌面连接?

远程访问是远程办公和服务器管理常用的网络应用场景。那么,当我们需要面对远程目标主机是内网服务器电脑时,在不是同个局域网的跨网环境下,内网可以远程控制电脑吗?答案是可以,使用快解析内网映射方案就能实现将本地服…

MyBatis一级缓存 二级缓存

MyBatis一级缓存 二级缓存什么是缓存?一级缓存一级缓存失效的四种情况二级缓存怎样开启二级缓存使二级缓存失效的情况二级缓存相关配置缓存查询的数据顺序整合第三方缓存EHCache(代替二级缓存)什么是缓存? 这是一个地图软件上的根据城市查询模块,对于那…

Freemarker页面静态化开发

4.5 页面静态化 4.5.1 什么是页面静态化 根据课程发布的操作流程,执行课程发布后要将课程详情信息页面静态化,生成html页面上传至文件系统。 什么是页面静态化? 课程预览功能通过模板引擎技术在页面模板中填充数据,生成html页…

Mybatis Plus轻松上手

Mybatis Plus 今日目标: 了解mybatisplus的特点能够掌握mybatisplus快速入门能够掌握mybatisplus常用注解能够掌握mybatisplus常用的增删改查能够掌握mybatisplus自动代码生成 Mybatis: ✔需要程序员编写sql语句程序员可以干预sql对sql进行调优(优化) MybatisPlu…

强化学习笔记:基于价值的学习方法之价值估计(python实现)

目录 1. 前言 2. 数学原理 3. 代码实现 3.1 游戏设定 3.2 class State 3.3 class Action 3.4 Class Agent 3.5 Class Environment 4. 仿真结果及其分析 4.1 play() 4.2 value_evaluation_all_states(grid, max_steps) 4.3 value_evaluation_one_state(grid, s) 4.4…

ZYNQ FPGA嵌入式开发 - 小梅哥(二)

创建工程打开Xilinx SDK创建工程Next 创建Empty Application添加文件编写代码参考文档 UG585 Zynq 7000 Technical Reference Manual寄存器说明 Appx.B: Registe Detial查看帮助文档Import Examples跨平台使用:头文件:unistd.h 每个平台都会提供sleep() …