【计算机组成原理 - 第二章】系统总线(完结)

本章参考王道考研相关课程:

【2019版】6.1.1 总线的概念与分类_哔哩哔哩_bilibili

【2019版】6.1.2 总线的性能指标_哔哩哔哩_bilibili

【2019版】6.2 总线仲裁_哔哩哔哩_bilibili

【2019版】6.3 总线操作和定时_哔哩哔哩_bilibili

【2019版】6.4 总线标准_哔哩哔哩_bilibili

目录

一、总线的概述与分类

1、总线的定义

2、总线的特性

3、 总线的分类

1、串行总线和并行总线

2、片内总线、系统总线、通信总线

4、系统总线的结构

1、单总线结构

2、双总线结构

3、三总线结构

二、总线的性能指标

1、总线的传输周期

2、总线的时钟周期

3、总线宽度(总线位宽)

4、总线带宽

​5、总线复用

6、信号线数

三、总线标准

1、定义

2、流行的总线标准

(1)ISA总线

(2)EISA总线

(3)PCI总线——独立与CPU的局部总线

(4)AGP总线——显卡专用的局部总线

(5)VESA总线——视频局部总线

(6)USB总线——串行设备总线

(7)RS-232C总线——串行通信总线

四、总线仲裁

1、基本概念

1、链式查询方式

2、计数器定时查询

3、独立请求方式

五、总线的操作和定时

1、总线传输的四个阶段

(1)申请分配阶段

(2)寻址阶段

(3)传数阶段

(4)结束阶段

2、总线定时

(1)同步通信(同步定时方式)

(2)异步通信(异步定时方式)

(3)半同步通信

(4)分离式通信


一、总线的概述与分类

c47e297cb5f449e6929916438a076a09.jpg

1、总线的定义

定义:总线是一组能为多个部件分时 共享的公共信息传送路线

为什么要用总线?

早期计算机外设多采用分散连接方式,不易实现随时增减外设

为了更好解决I/O设备和主机之间连接的灵活性问题,计算机结构从分散连接发展成总线连接

2、总线的特性

  • 机械特性 :尺寸、形状、管脚数、排列顺序
  • 电气特性:传输方向和有效的电平范围
  • 功能特性:每根传输线的功能(地址、数据、控制)
  • 时间特性:信号的时序关系

3、 总线的分类

89b12f37a9e048beb036eac31ee9902a.jpeg

1、串行总线和并行总线

串行总线 —— 将数据一个一个拆分传送

  • 优点:只需要一条传输线,成本低,广泛应用于长距离传输,节省布线空间
  • 缺点:在数据发送和接收时,要拆卸和装配,要考虑串行-并行转换问题

并行总线 —— 将数据每一位同时传送

  • 优点:总线的逻辑时序比较简单,电路实现容易
  • 缺点:信号线数量多,占用更多布线空间,远距离传送成本高,由于工作频率较高时,并行的信号线之间会产生严重干扰,因此无法持续提升工作效率

2、片内总线、系统总线、通信总线

片内总线 —— 芯片内部的总线

是CPU芯片内部寄存器与寄存器之间,寄存器与ALU之间的公共连接线

系统总线 —— 计算机系统内各功能部件之间连接的总线

按传输内容不同:数据总线、地址总线、控制总线

  • 数据总线DB:传输数据信息,包括:指令操作数,根数与机器字长和存储字长有关,双向
  • 地址总线AB:传输地址信息,包括:主存单元或I/O端口的地址,根数与主存地址空间及设备数量有关,单向
  • 控制总线CB:一根控制线传输一个信号,有入:CPU送出的控制命令,有出:主存或外设返回的CPU的反馈信号

通信总线 —— 计算机系统之间或计算机系统与其他系统信息传输的总线,也称“外部总线”

4、系统总线的结构

1、单总线结构

e4b73e9419124bbdb28ec940aa3d34be.jpg

2、双总线结构

f292a5d62a6c422f8a6a7dae717b2013.jpg

3、三总线结构

cf294d32dfe74a4b9751607f9f9e9483.jpg

 DMA:直接内存访问总线

二、总线的性能指标

1、总线的传输周期

  • 一次总线操作所需的时间(包括申请阶段、寻址阶段、传输阶段、结束阶段),通常由若干个时钟周期组成
  • 总线工作频率=1/总线传输周期

2、总线的时钟周期

13d17836b0bf4da4a52ee097ed3f9cd5.jpg

  •  总线时钟频率=1/总线时钟周期

3、总线宽度(总线位宽)

通常指数据总线的根数,用bit表示,如8位、16位、32位、64位(8根、16根、32根、64根)

4、总线带宽

  • 总线的数据传输速率,即单位时间内总线上传输数据的位数,通常用每秒钟传输信息,单位B/s(字节/秒)
  • 总线带宽=总线工作频率×(总线宽度/8)(B/s)
  • 比如:总线工作频率为33MHz,总线宽度为32位(1B=8bit,即4B),则总线带宽=33*4=132MBps
  • 总线带宽是指总线本身所能达到的最高传输速率

38276fbff2ba4e24818095a9333e542b.jpg

30e33adec88c4142aaba06817a99ca7b.jpg5、总线复用

一条信号线分时传送不同的信息,可使用较少的线传输更多的信息,节省成本和空间

6、信号线数

地址总线、数据总线、控制总线三种总线数总和

三、总线标准

1、定义

  • 国际上规定的互联各个模块的标准,把各种不同模块组成计算机系统时必须遵守的规范
  • 按总线标准设计的接口可视为通用接口,可以为计算机接口的软硬件设计提供方便

2、流行的总线标准

(1)ISA总线

  • 工作频率:8MHz
  • 数据线:16位
  • 最大传输速率:16MB/s
  • 必须通过CPU或DMA(直接存储器存取)接口管理
  • 不支持总线仲裁
  • 传输速率过低、CPU占用率过高

(2)EISA总线

  • 工作频率:8MHz
  • 数据线:32位
  • 最大传输速率:32MB/s
  • 从CPU中分离出了总线控制权,支持多个总线总控器和突发传送

(3)PCI总线——独立与CPU的局部总线

  • 工作频率:33/66MHz
  • 数据线:32/64位
  • 最大传输速率:528MB/s
  • 主要特点:
  1. 高性能,是一种不依附于某个具体处理器的局部总线,支持突发传送
  2. 良好的兼容性
  3. 支持即插即用
  4. 支持多主设备能力
  5. 具有与处理器和存储器子系统完全并行操作的能力
  6. 提供数据和地址奇偶校验功能,保证数据的完整和正确
  7. 可扩充性好,可采用多层结构提高驱动能力
  8. 采用多路复用,减少总线引脚个数
  • PCI-E是一种点对点串行连接的设备连接方式,支持热拔插

(4)AGP总线——显卡专用的局部总线

(5)VESA总线——视频局部总线

(6)USB总线——串行设备总线

  • USB是设备总线,是设备与设备控制器间的接口
  • 主要特点:
  1. 支持即插即用,热拔插
  2. 具有很强的连接能力,有很强扩充性
  3. 高速传输
  4. 标准统一
  5. 连接电缆轻巧,电源体积缩小

(7)RS-232C总线——串行通信总线

是应用于串行二进制交换的数据终端设备和数据通信设备直接的标准接口

四、总线仲裁

1、基本概念

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

  • 主设备:获得总线控制权的设备
  • 从设备:被主设备访问,只能响应从主设备发来的各种总线命令,对总线无控制权

(2)总线仲裁定义:多个主设备同时竞争

主线控制权时,以某种方式选择一个主设备优先获得总线控制权

(3)集中仲裁方式

adca623a2e7643219492eac872646601.jpg

1、链式查询方式

7d49604acf714ce687231b54169d473d.jpg

  • BG总线同意、BR总线请求、BS总线忙
  • 总线同意信号BG是串行地从一个I/O接口送到另一个I/O接口,如果BG到达的接口有总线请求BR,BG信号就不接着往下传,意味着该设备获得总线使用权,建立总线忙信号BS,表示它占用总线
  • 如果该设备使用完,则撤掉总线忙信号BS,总线寻找下一个有总线请求信号BR的设备,BG接着往下走
  • 优点:链式查询方式优先级固定,离总线控制部件近的设备优先级高,只需要很少的线就能按一定优先次序实现总线控制,结构简单,容易扩充设备
  • 缺点:对电路故障敏感,优先级低的设备很难获得请求
  • 线数:3根

2、计数器定时查询

06a0fa2d613d4219ae90ebc7d6bc2b27.jpg

  • 比链式查询方式多了一组设备地址线,少了一条BG总线同意线
  • 总线控制部件接到总线请求信号BR后,在总线未被使用的情况下,总线控制部件中的计数器开始计数,并通过设备地址线向各设备发出计数值
  • 如果某个请求占用的总线的设备地址与计数器值一致,则该设备获得总线控制权,停止计数查询
  • 优点:计数器初始值可以改变优先次序
  1. 计数可以从0开始,设备优先次序按顺序排列,固定不变
  2. 计数可以从上一次终点开始,此时设备使用总线优先级相等
  3. 计数还可以由程序设置
  • 缺点:对电路故障不如链式查询方式敏感,但增加了控制线数,控制较复杂
  • 线数:log2n+2根线(n是允许接纳的最大设备数)

3、独立请求方式

637d565df1fb41ec9023dbb3d7d8e573.jpg

  • 每个设备均有一对总线请求线BR和总线同意线BG
  • 总线控制部件有一排队电路,可根据优先次序确定响应哪一台设备的请求
  • 优点:响应速度快,优先次序控制灵活(通过程序改变)
  • 缺点:控制线数量多,总线控制复杂
  • 线数:2n+1根线(n是允许接纳的最大设备数)

五、总线的操作和定时

1、总线传输的四个阶段

(1)申请分配阶段

       由需要使用总线的主模块(主设备)提出申请,经总线仲裁机构决定下一传输周期的总线使用权授予某一申请者,细分为传输请求阶段和总线仲裁阶段

(2)寻址阶段

       取得使用权的主模块通过总线发出本次要访问的从模块的地址及有关命令,启动参与本次传输的从模块

(3)传数阶段

       主模块和从模块进行数据交换,数据由原模块发出,经数据总线流入目的模块

(4)结束阶段

       主模块的有关信息均从系统总线上撤除,让出总线控制权

2、总线定时

定义:指总现在双方交换数据过程中需要时间上配合关系的控制,实质上是一种协议或规则

(1)同步通信(同步定时方式)

  • 系统采用一个统一的时钟信号来协调发送和接收双方的传送定时关系
  • 时钟产生相等的时间间隔,每个间隔构成一个总线周期
  • 在一个总线周期中,发送方和接收方可以进行一次数据传送
  • 优点:传送速度快,具有较高的传输速率,总线控制逻辑简单
  • 缺点:主从设备属于强制性同步,不能及时进行数据通信的有效性检验,可靠性差
  • 同步通信适用于总线长度较短总线所接部件的存取时间比较接近的系统

(2)异步通信(异步定时方式)

  • 没有统一的时钟,完全依靠传送双方互相制约的“握手”信号来实现定时控制
  • 允许不同速度点模块协调工作
  • 主设备提出交换信息的“请求”信号,经接口传送到从设备
  • 从设备接到主设备的请求后,通过接口向主设备发出“回答”信号

根据“请求”和“回答”信号的撤销是否互锁,分为:

1、不互锁方式(互相不负责)

  • 主设备发出“请求”信号后,不必等到接到从设备的“回答”信号,经过一段时间,撤销“请求”信号
  • 从设备在接到“请求”信号后,发出“回答”信号,经过一段时间,自动撤销“回答”信号
  • 双方不存在互锁关系
  • 速度最快,可靠性最差

2、半互锁方式(主设备负责,从设备不负责)

  • 主设备发出“请求”信号后,必须等到接到从设备的“回答”信号,才撤销“请求”信号
  • 从设备在接到“请求”信号后,发出“回答”信号,但不必等到获知主设备的“请求”信号已撤销,隔一段时间自动撤销“回答”信号
  • 主设备有互锁关系,从设备不存在互锁关系

3、全互锁方式(互相负责)

  • 主设备发出“请求”信号后,必须等到接到从设备的“回答”信号,才撤销“请求”信号
  • 从设备在接到“请求”信号后,发出“回答”信号,必须等到获知主设备的“请求”信号已撤销,再撤销“回答”信号
  • 双方存在互锁关系
  • 最可靠,速度最慢
  • 优点:总线周期长度可变,能保证两个工作速度相差很大的部件或设备之间可靠地进行信息交换,自动适应时间的配合 
  • 缺点:比同步控制方式复杂,速度比同步定时方式慢

求数据传输率

(3)半同步通信

在统一时钟的基础上,增加一个“等待”响应信号WAIT

(4)分离式通信

分离式通信的一个总线传输周期:

  • 子周期1:主模块申请占用总线,使用完后放弃总线的使用权
  • 子周期2:从模块申请占用总线,将各种信息传到总线上

特点:

  1. 各模块均有权申请占用总线
  2. 采用同步方式通信,不等对方回答
  3. 各模块准备数据时不占用总线
  4. 总线利用率提高

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Mac 和 Win,到底用哪个系统学编程?

今天来聊一个老生常谈的问题,学编程时到底选择什么操作系统?Mac、Windows,还是别的什么。。 作为一个每种操作系统都用过很多年的程序员,我会结合我自己的经历来给大家一些参考和建议。 接下来先分别聊聊每种操作系统的优点和不…

springCloud学习【2】之Nacnos配置管理Fegin远程调用gateway服务网关

文章目录前言一 Nacos配置管理1.1 统一配置管理1.1.1 nacos中添加配置文件1.1.2 从微服务拉取配置1.2 配置热更新1.2.1 方式一:添加注解RefreshScope1.2.2 方式二:使用ConfigurationProperties注解1.3 配置共享二 搭建Nacos集群2.1 集群结构图2.2 搭建集…

【函数】JavaScript 全栈体系(七)

JavaScript 基础 第十三章 函数 一、为什么需要函数 函数: function,是被设计为执行特定任务的代码块 说明: 函数可以把具有相同或相似逻辑的代码“包裹”起来,通过函数调用执行这些被“包裹”的代码逻辑,这么做…

cv2报错:Unsupported depth of input image

cv2 报错 error: OpenCV(4.6.0) /io/opencv/modules/imgproc/src/color.simd_helpers.hpp:94: error: (-2:Unspecified error) in function ‘cv::impl::{anonymous}::CvtHelper<VScn, VDcn, VDepth, sizePolicy>::CvtHelper(cv::InputArray, cv::OutputArray, int) [wit…

vue后台管理系统——添加i18n国际化功能——技能提升

昨天在写后台管理系统时&#xff0c;遇到一个需求就是需要实现国际化功能。 antd和element-ui这两个框架其实都是有国际化的。 具体展示形式就是如下&#xff1a; 点击右上角头部的语言&#xff0c;切换语言&#xff0c;然后整个系统的文字都改变成对应的语言展示。 切换成…

燕山大学-面向对象程序设计实验-实验7 多态性:函数与运算符重载-实验报告

CSDN的各位友友们你们好,今天千泽为大家带来的是燕山大学-面向对象程序设计实验-实验5 派生与继承&#xff1a;单重派生-实验报告,接下来让我们一起进入c的神奇小世界吧,相信看完你也能写出自己的 实验报告!本系列文章收录在专栏 燕山大学面向对象设计报告中 ,您可以在专栏中找…

【C语言进阶】内存函数

天生我材必有用&#xff0c;千金散尽还复来。 ——李白 目录 前言 一.memcpy函数 ​1.实现memcpy函数 2.模拟实现memcpy函数 二.memmove函数 1.实现memmove函数 2.模拟实现memmove函数 三.memcpy函数和memmove函数的关系 四.memcm…

2023金三银四--我们遇到的那些软件测试面试题【功能/接口/自动化/性能等等】

一、面试技巧题(主观题) 序号面试题1怎么能在技术没有那么合格的前提下给面试官留个好印象&#xff1f;2面试时&#xff0c;如何巧妙地避开不会的问题&#xff1f;面试遇到自己不会的问题如何机智的接话&#xff0c;化被动为主动&#xff1f;3对于了解程度的技能&#xff0c;被…

【Docker】什么是Docker?Docker的安装、加速

文章目录Docker出现的背景解决问题docker理念容器与虚拟机比较容器发展简史传统虚拟机技术容器虚拟化技术Docker安装官方网站安装前提Docker的基本组成镜像容器仓库Docker平台架构图解CentOS7安装Docker确定你是CentOS7及以上版本卸载旧版本yum安装gcc相关安装需要的软件包设置…

用 ChatGPT 辅助学好机器学习

文章目录一、前言二、主要内容&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、前言 探索更高效的学习方法可能是有志者共同的追求&#xff0c;用好 ChatGPT&#xff0c;先行于未来。 作为一个人工智能大语言模型&#xff0c;ChatGPT 可以在帮助初…

Pandas 与 PySpark 强强联手,功能与速度齐飞

Pandas做数据处理可以说是yyds&#xff01;而它的缺点也是非常明显&#xff0c;Pandas 只能单机处理&#xff0c;它不能随数据量线性伸缩。例如&#xff0c;如果 pandas 试图读取的数据集大于一台机器的可用内存&#xff0c;则会因内存不足而失败。 另外 pandas 在处理大型数据…

Linux分文件编程:静态库与动态库的生成和使用

目录 一&#xff0c;Linux库引入之分文件编程 ① 简单说明 ② 分文件编程优点 ③ 操作逻辑 ④ 代码实现说明 二&#xff0c;Linux库的基本说明 三&#xff0c;Linux库之静态库的生成与使用 ① 静态库命名规则 ② 静态库制作步骤 ③ 静态库的使用 四&#xff0c;Linu…

django-celery-beat搭建定时任务

一、创建django项目和app 1、安装定时任务第三方包 pip install django-celery-beat # 插件用来动态配置定时任务,一般会配合 django_celery_results 一起使用&#xff0c;所以一起安装 django_celery_results pip install django_celery_results pip install eventlet # win…

Keil MDK6要来了,将嵌入式软件开发水平带到新高度,支持跨平台(2023-03-11)

注&#xff1a;这个是MDK6&#xff0c;不是MDK5 AC6&#xff0c;属于下一代MDK视频版&#xff1a; https://www.bilibili.com/video/BV16s4y157WF Keil MDK6要来了&#xff0c;将嵌入式软件开发水平带到新高度&#xff0c;支持跨平台一年一度的全球顶级嵌入式会展Embedded Wor…

操作系统(1.3)--习题

一、课堂习题 1、一个作业第一 次执行时用了5min ,而第二次执行时用了6min,这说明了操作系统的( )特点。 A、并发性 B、共享性 C、虚拟性 D、不确定性 D 2、在计算机系统中,操作系统是( )。 A、处于裸机之上的第一层软件 B、处于硬件之下的低层软件 C、处于应用软件之上的系统软…

对象的创建以及数组中常见的属性与方法

&#xff08;一&#xff09;对象创建的三种方法 1、利用对象字面量创建对象 const obj{ name:小开心 } 2、利用new Object创建对象 const obj1new Object({ name:小开心 }) 3、利用构造函数创建对象 构造函数&#xff1a;是一种特殊的函数&#xff0c;主要用来初始化对象&…

Vector的扩容机制

到需要扩容的时候&#xff0c;Vector会根据需要的大小&#xff0c;创建一个新数组&#xff0c;然后把旧数组的元素复制进新数组。 我们可以看到&#xff0c;扩容后&#xff0c;其实是一个新数组&#xff0c;内部元素的地址已经改变了。所以扩容之后&#xff0c;原先的迭代器会…

【Spring事务】声明式事务 使用详解

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ 声明式事务一、编程式事务二、声明式事务&…

PMSM矢量控制笔记(1.1)——电机的机械结构与运行原理

前言&#xff1a;重新整理以前的知识和文章发现&#xff0c;仍然有许多地方没有学得明白&#xff0c;懵懵懂懂含含糊糊的地方多如牛毛&#xff0c;尤其是到了真正实际写东西或者做项目时&#xff0c;如果不是系统的学习了知识&#xff0c;很容易遇到问题就卡壳&#xff0c;也想…

C语言的灵魂---指针(基础)

C语言灵魂指针1.什么是指针&#xff1f;2.指针的大小3.指针的分类3.1比较常规的指针类型3.2指针的解引用操作3.3野指针野指针的成因&#xff1a;4.指针运算4.1指针加减整数4.2指针-指针1.什么是指针&#xff1f; 这个问题我们通常解释为两种情况&#xff1a; 1.指针本质&#…