[计算机组成原理(唐朔飞 第2版)]第三章 系统总线(学习复习笔记)

news2024/11/25 16:44:34

3.1 总线的基本概念

  • 计算机系统的五大部件之间的互连方式有两种
    • 各部件之间使用单独的连线,称为分散连接
    • 将各部件连到一组公共信息传输线上,称为总线连接
  • 总线是连接多个部件的信息传输线,是各部件共享的传输介质。
    • 当多个部件与总线相连时,如果出现两个或两个以上部件同时向总线发送信息,会导致信号冲突,传输无效。
    • 因此,采用总线连接方式,在某一时刻,只允许有一个部件向总线发送信息,而多个部件可以同时从总线上接收相同的信息。
  • 总线传输信息的方式
    • 串行:一位一位地传输二进制代码,一串二进制代码可在一段时间内逐一传输完成
    • 并行:干条传输线可以同时传输若干位二进制代码

3.2 总线的分类

3.2.1 片内总线

  • 片内总线是指芯片内部的总线
    • 如在CPU芯片内部,寄存器与寄存器之间、寄存器与算逻单元ALU之间都由片内总线连接。

3.2.2 系统总线

  • 系统总线是指CPU、主存、I/O设备(通过I/O接口)各大部件之间的信息传输线。
    • 由于这些部件通常都安放在主板或各个插件板(插卡)上,故又称板级总线(在一块电路板上各芯片间的连线)或板间总线。
    • 按系统总线传输信息的不同,又可分为三类
      • 数据总线
        • 数据总线用来传输各功能部件之间的数据信息,它是双向传输总线,其位数与机器字长、存储字长有关
        • 数据总线的位数称为数据总线宽度
      • 地址总线
        • 地址总线主要用来指出数据总线上的源数据或目的数据在主存单元的地址或I/O设备的地址。
        • 地址总线是单向传输的
          • 地址总线上的信息用来指明要访问的存储单元或I/O端口的地址,由CPU发出
        • 地址线的位数与存储单元的个数有关
          • 如,地址线20根,存储单元个数为220
      • 控制总线
        • 控制总线是用来发出各种控制信号的传输线。
        • 通常对任一控制线而言,它的传输是单向的,由CPU发出控制信号;对于控制总线总体来说,可认为是双向的,各设备通过控制总线向CPU发出请求。
        • 控制总线还起到监视各部件状态的作用。
        • 对CPU而言,控制信号既有输出,又有输人。

3.2.3 通信总线

  • 通信总线用于计算机系统之间或计算机系统与其他系统之间的通信。
  • 按传输方式可分为两种
    • 串行通信
      • 指数据在单条1位宽的传输线上,一位一位地按顺序分时传送。
      • 串行通信适宜于远距离传送
    • 并行通信
      • 指数据在多条并行1位宽的传输线上,同时由源传送到目的地。
      • 并行通信适宜于近距离的数据传输
      • 在短距离内,并行数据传送速率比串行数据传送速率高得多。

3.3 总线特性及性能指标

3.3.1 总线特性

  • 总线的物理实现
    • 总线由许多导线直接印制在电路板上,延伸到各个部件,各个部件通过插头与水平方向总线插槽连接
    • 在这里插入图片描述
  • 总线的特性
    • (1)机械特性
      • 为了保证机械上的可靠连接
      • 机械特性是指总线在机械连接方式上的一些性能
      • 如插头与插座的几何尺寸、形状、引脚的个数以及排列的顺序等
    • (2)电气特性
      • 为了确保电气上正确连接
      • 电气特性是指总线的每一根传输线上信号的传递方向和有效的电平范围。
      • 通常规定由CPU发出的信号称为输出信号,送入CPU的信号称为输入信号。
      • 控制总线的每一根都是单向的,但从整体看,有输入,也有输出。
    • (3)功能特性
      • 为保证正确地连接不同部件
      • 功能特性是指总线中每根传输线的功能
      • 如,地址总线用来指出地址码;数据总线用来传递数据;控制总线发出控制信号
    • (4)时间特性
      • 为保证正确地连接不同部件
      • 时间特性是指总线中的任一根线在什么时间内有效。
      • 每条总线上的各种信号互相存在一种有效时序的关系,时间特性一般可用信号时序图来描述。

3.3.2 总线性能指标

  • 总线宽度:
    • 通常是指数据总线的根数,用bit(位)表示
    • 一位一根线
  • 总线带宽:
    • 总线带宽可理解为总线的数据传输速率,即单位时间内总线上传输数据的位数
    • 通常用每秒传输信息的字节数来衡量,单位可用MBps(兆字节每秒)表示。
    • 如,总线工作频率为33 MHz,总线宽度为32位(4B),则总线带宽为33× (32÷8)=132 MBps。
  • 时钟同步/异步:
    • 总线上的数据与时钟同步工作的总线称为同步总线,与时钟不同步工作的总线称为异步总线。
  • 总线复用:
    • 一条信号线上分时传送两种信号。
    • 为了提高总线的利用率,优化设计,特将地址总线和数据总线共用一组物理线路,在这组物理线路上分时传输地址信号和数据信号,即为总线的多路复用。
  • 信号线数:
    • 地址总线、数据总线和控制总线三种总线数的总和。
  • 总线控制方式:
    • 包括突发工作、自动配置(设备即插即用,自动配置驱动程序)、仲裁方式、逻辑方式、计数方式等。
    • 其他指标
      • 负载能力
      • 电源电压
      • 总线宽度能否扩展
  • 总线的负载能力即驱动能力,是指当总线接上负载后,总线输入输出的逻辑电平是否能保持在正常的额定范围内。

3.3.3 总线标准

  • 所谓总线标准,可视为系统与各模块模块与模块之间的一个互连的标准界面,实现了对部件的隔离,即界面的任一方只需根据总线标准的要求完成自身一方接口的功能要求,而无须了解对方接口与总线的连接要求,即可连上总线进行使用
  • 按总线标准设计的接口可视为通用接口。
  • 采用总线标准可以为计算机接口的软硬件设计提供方便,使各个模块的接口芯片设计相对独立,对软件设计而言,更有利于接口软件的模块化设计。
  • 目前流行的总线标准
    • ISA总线(工业标准总线)
    • EISA总线(扩展工业标准总线)
    • VESA(VL-BUS)总线
      • VESA(VL-BUS)总线,局部总线标准
      • 局部总线,在系统外为两个以上模块提供的高速传输信息通道
    • PCI总线
      • 现代计算机最常用的总线之一
    • AGP总线
      • 显卡专用的局部总线
    • RS-232C总线
    • USB总线(通用串行总线)

3.4 总线结构

  • 总线结构通常分为单总线结构和多总线结构

3.4.1 单总线结构

  • 在这里插入图片描述
  • 单总线结构中,所有的设备共享同一个总线
  • 易发生总线争用,不允许两个以上的部件同一时刻向总线传输信息

3.4.2 多总线结构

  • 双总线结构
    • 将速度较低的I/O设备从单总线上分离出来,形成主存总线与I/O总线分开的结构。
    • 在这里插入图片描述
    • 通道是一个具有特殊功能的处理器
      • CPU将一部分功能下放给通道,使其对I/O设备具有统一管理的功能,以完成外部设备与主存储器之间的数据传送,其系统的吞吐能力可以相当大。
      • 通道可以进行数据格式的转换与数据校验
  • 三总线结构
    • 在这里插入图片描述
    • 主存总线用于CPU与主存之间的传输
    • I/О总线供CPU与各类I/O设备之间传递信息
    • DMA总线用于高速I/O设备与主存之间直接交换信息。
    • 在三总线结构中,任一时刻只能使用一种总线。
      • 主存总线与DMA总线不能同时对主存进行存取,I/O总线只有在CPU执行I/O指令时才能用到。
    • 在这里插入图片描述
    • 处理器与Cache之间有一条局部总线
      • 将CPU与Cache或与更多的局部设备连接。
      • Cache的控制机构不仅将Cache连到局部总线上,而且还直接连到系统总线上,这样Cache可通过系统总线与主存传输信息,且I/O设备与主存之间的传输也不必通过CPU。
    • 扩展总线将局域网小型计算机接口(SCSI)、调制解调器(Modem)以及串行接口等都连接起来,通过这些接口又可与各类I/O设备相连,因此它可支持相当多的I/O设备。
    • 扩展总线通过扩展总线接口与系统总线相连,可实现这两种总线之间的信息传递
    • 由于高速I/O设备与低速I/O设备都连接在扩展总线上,会降低扩展总线的工作效率
  • 四总线结构
    • 在这里插入图片描述
    • 在高速总线上挂接一些高速I/O设备,它们通过Cache控制机构中的高速总线桥或高速缓冲器与系统总线和局部总线相连,使得这些高速设备与CPU更密切
    • 一些较低速的设备仍挂在扩展总线上,并由扩展总线接口与高速总线相连。
    • 可以提高效率

3.4.3 总线结构举例

3.5 总线控制

3.5.1 总线判优控制

  • 总线上所连接的各类设备,按其对总线有无控制功能可分为主设备(模块)和从设备(模块)两种。
    • 主设备对总线有控制权
    • 从设备只能响应从主设备发来的总线命令,对总线没有控制权。
    • 总线上信息的传送是由主设备启动的
      • 首先由主设备发出总线请求信号
        • 若多个主设备同时要使用总线时,就由总线控制器的判优、仲裁逻辑按一定的优先等级顺序确定哪个主设备能使用总线。
        • 只有获得总线使用权的主设备才能开始传送数据。
  • 总线判优控制可分为
    • 集中式
      • 将控制逻辑集中在一处(如在CPU中)
    • 分布式
      • 将控制逻辑分散在与总线连接的各个部件或设备上
  • 常见的集中控制优先权仲裁方式
    • (1)链式查询
      • 在这里插入图片描述
      • 控制总线中有3根线用于总线控制
        • BS总线忙
        • BR总线请求
        • BC总线同意
          • 总线同意信号BC是串行地从一个I/O接口送到下一个I/O接口。
          • 如果BC到达的接口有总线请求,BG信号就不再往下传,该接口获得了总线使用权,并建立总线忙BS信号,表示它占用了总线。
      • 链式查询中,离总线控制部件最近的设备具有最高的优先级。
      • 这种方式的特点
        • 只需很少几根线就能按一定优先次序实现总线控制
        • 很容易扩充设备
        • 对电路故障很敏感(如果其中一个I/O接口故障则不能正常工作)
        • 优先级别低的设备可能很难获得请求,优先级固定
        • 效率慢(按次序一个接口一个接口传递信号)
    • (2)计数器定时查询
      • 在这里插入图片描述
      • 多了一组设备地址线,少了一根总线同意线BG。
      • 总线控制部件接到由BR送来的总线请求信号后,在总线未被使用(BS=0)的情况下,总线控制部件中的计数器开始计数,并通过设备地址线,向各设备发出一组地址信号。当某个请求占用总线的设备地址与计数值一致时,便获得总线使用权,此时终止计数查询。
      • 这种方式的特点
        • 计数可以从“0”开始
          • 一旦设备的优先次序被固定,设备的优先级就按0,1,…,n的顺序降序排列,且固定不变
        • 计数也可以从上一次计数的终止点开始,即是一种循环方法
          • 设备使用总线的优先级相等
        • 计数器的初始值还可由程序设置
          • 优先次序可以改变
        • 这种方式对电路故障不如链式查询方式敏感
        • 增加了控制线(设备地址)数,控制较复杂
    • (3)独立请求方式
      • 在这里插入图片描述
      • 每一台设备均有一对总线请求线BR和总线同意线BG。
      • 当设备要求使用总线时,便发出该设备的请求信号。总线控制部件中有一排队电路,可根据优先次序确定响应哪一台设备的请求。
      • 这种方式的特点
        • 响应速度快
        • 优先次序控制灵活(通过程序改变)
        • 控制线数量多,总线控制更复杂。
          • 链式查询中仅用两根线确定总线使用权属于哪个设备
          • 在计数器查询中大致用 l o g 2 n log_2n log2n根线,其中n是允许接纳的最大设备数
          • 独立请求方式需采用2n+1根线(还要一个BS)。

3.5.2 总线通信控制

  • 将完成一次总线操作的时间称为总线周期
  • 总线周期可分
    • ①申请分配阶段
      • 由需要使用总线的主模块(或主设备)提出申请,经总线仲裁机构决定下一传输周期的总线使用权授于某一申请者。
    • ②寻址阶段
      • 取得了使用权的主模块通过总线发出本次要访问的从模块(或从设备)的地址及有关命令,启动参与本次传输的从模块。
    • ③传数阶段
      • 主模块和从模块进行数据交换,数据由源模块发出,经数据总线流入目的模块。
    • ④结束阶段
      • 主模块的有关信息均从系统总线上撤除,让出总线使用权。
  • 总线通信控制主要解决通信双方如何获知传输开始和传输结束,以及通信双方如何协调如何配合。
  • 总线通信的方式
    • 同步通信
    • 异步通信
    • 半同步通信
    • 分离式通信。
  • 同步通信
    • 通信双方由统一时标控制数据传送称为同步通信。
    • 在这里插入图片描述
    • 同步通信规定了在每个时钟必须完成的任务,必须在限定的时间内完成规定的要求
  • 异步通信
    • 异步通信允许各模块速度的不一致性
    • 采用应答方式(又称握手方式),即当主模块发出请求(Request)信号时,一直等待从模块反馈回来“响应"(Acknowledge)信号后,才开始通信。
    • 异步通信的应答方式分为
      • 不互锁
        • 在这里插入图片描述
        • 主模块发出请求信号后,不必等待接到从模块的回答信号,而是经过一段时间便撤销其请求信号
        • 从模块接到请求信号后,在条件允许时发出回答信号,并且经过一段时间自动撤销回答信号。
        • 通信双方并无互锁关系。
      • 半互锁
        • 在这里插入图片描述
        • 主模块发出请求信号,必须待接到从模块的回答信号后再撤销其请求信号,有互锁关系
        • 从模块在接到请求信号后发出回答信号,不必等待获知主模块的请求信号已经撤销,而是隔一段时间后自动撤销其回答信号,无互锁关系。
        • 由于一方存在互锁关系,一方不存在互锁关系,故称半互锁方式。
      • 全互锁
        • 在这里插入图片描述
        • 主模块发出请求信号,必须待从模块回答后再撤销其请求信号
        • 从模块发出回答信号,必须待获知主模块请求信号已撤销后,再撤销其回答信号。
        • 双方存在互锁关系,故称为全互锁方式。
  • 半同步通信
    • 半同步通信既保留了同步通信的基本特点,也有异步通信的特点
    • 半同步通信增设了一条“等待”( WAIT)响应信号线,采用插入时钟(等待)周期的措施来协调通信双方的配合问题。
    • 当没有准备好(如数据没有准备好),就发出 WAIT 响应信号,主设备进行等待
    • 在这里插入图片描述
  • 分离式通信
    • 分离式通信过程:
      • ①主模块通过传输总线向从模块发送地址和命令。
      • ②从模块按照命令进行读数据的必要准备。
      • ③从模块经数据总线向主模块提供数据。
    • 将一个传输周期(或总线周期)分解为两个子周期。
      • 在第一个子周期中,主模块A在获得总线使用权后将命令、地址以及其他有关信息,发到系统总线上,经总线传输后,由有关的从模块B接收下来。一旦发送完,立即放弃总线使用权,以便其他模块使用。
      • 在第二个子周期中,当B模块收到A模块发来的有关命令信号后,经选择、译码、读取等一系列内部操作,将A模块所需的数据准备好,便由B模块申请总线使用权,一旦获准,B模块便将A模块的编号、B模块的地址、A模块所着的数据等一系列信息送到总线上,供A模块接收。
    • 特点
      • ①各模块均有权申请占用总线。
      • ②在得到总线使用权后,主模块在限定的时间内向对方传送信息,采用同步方式传送,不再等待对方的回答信号。(主从模块身份可以互换)
      • ③各模块在准备数据的过程中都不占用总线
      • ④总线被占用时不存在空闲等待时间,充分地利用了总线的有效占用

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

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

相关文章

【java基础】LinkedList源码解析

文章目录基本介绍构造器基础方法linkFirstlinkLastlinkBeforeunlinkFirstunlinkLastunlinknodeindexOf方法分析总结基本介绍 在java中,LinkedList就是使用双向链表存储元素,既然是链表,那么也就知道了该数据结构擅长添加和删除。对于需要频繁…

线程等待/休眠/状态及 Runnable 和 Callable 的简单使用及原理

关于线程和进程的基本概念☛操作系统中线程和进程的概念理解 这篇文章已经有了很详细的解释, 接下来主要来讲讲线程等待与线程休眠 / 线程的几种状态 / Runnable 和 Callable 与 Thread 的概念和区别及 Executor 框架是什么样的. 关于线程1 线程等待与线程休眠2 线程一共有哪些…

[洛谷-P3698][CQOI2017]小Q的棋盘

一、问题 题目描述 小 Q 正在设计一种棋类游戏。 在小 Q 设计的游戏中,棋子可以放在棋盘上的格点中。某些格点之间有连线,棋子只能在有连线的格点之间移动。整个棋盘上共有 VVV 个格点,编号为 0,1,2,⋯,V−10,1,2,\cdots, V- 10,1,2,⋯,V−…

【C++知识点】C++11 常用新特性总结

✍个人博客:https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 📚专栏地址:C/C知识点 📣专栏定位:整理一下 C 相关的知识点,供大家学习参考~ ❤️如果有收获的话,欢迎点赞👍…

EasyRcovery16免费的电脑照片数据恢复软件

电脑作为一种重要的数据储存设备,其中保存着大量的文档,邮件,视频,音频和照片。那么,如果电脑照片被删除了怎么办?今天小编给大家介绍,误删除的照片从哪里可以找回来,误删除的照片如…

win10打印机拒绝访问解决方法

一直以来,在安装使用共享打印机打印一些文件的时候,会遇到错误提示:“无法访问.你可能没有权限使用网络资源。请与这台服务器的管理员联系”的问题,那为什么共享打印机拒绝访问呢?别着急,下面为大家带来相关的解决方法…

mysql时区问题

设置mysql容器时间与服务器时间一致 问题背景: 今天测试发现一个问题,时间不一致,当工单入库时,其创建时间和更新时间应该是一样的,即使不一样最多只会错几秒的时间;实际上两个时间相差的大概8小时&#…

青少年学AI,Amazon DeepRacer有何魔力?

导读:北京名校中学生可以根据兴趣开发AI模型甚至发表论文,偏远地区的校长还在犹豫“人工智能教育,中考会考吗?高考会加分吗?”教育鸿沟由来已久,绝非仅靠某些企业或教育机构可以扭转,但我们至少…

maven仓库的配置

下载 官网下载:https://maven.apache.org/download.cgi 2. 配置maven环境 右键电脑 ->属性 -> 高级系统设置 -> 环境变量 -> 系统变量-新建 变量名:MAVEN_HOME 变量值为maven的文件安装地址 编辑Path系统变量 新建:%MAVE…

132.《render-props, Hoc,自定义hooks 详解》

文章目录render-props 模式props 方式children 方式(推荐)Hoc(高阶组件)使用步骤示例props 丢失解决方案自定义 hook1.只执行一次2.防抖hook高阶组件与自定义hook有什么区别相同点不同点React 中代码逻辑复用有三种方式,render-props, Hoc&am…

Altium Designer(AD)软件使用记录05-PCB叠层设计

目录Altium Designer(AD)软件使用记录05-PCB叠层设计一、正片层和负片层的介绍1、正片层(Signal)2、负片层(Plane)3、内电层的分割实现二、正片层和负片层的内缩设计1、负片设置内缩20H原则2、正片铺铜设置内缩1、设置规则2、重新铺铜三、AD的层叠设计四、叠层设计需要注意的问…

计算机组成原理_总线标准

计算机组成原理总目录总线标准 总线标准是系统与各模块、模块与模块之间的一个互连的标准,就像我们用汉语来相互交流一样。 1. 系统总线 ISA总线的扩展插槽,其颜色一般为黑色,比PCI接口插槽要长些,位于主板的最下端。 可插接显卡&…

Java中的深克隆与浅克隆

浅克隆: 实现Cloneable接口即可实现,浅克隆只对象内部的基础数据类型(包括包装类)被克隆,引用数据类型(负责对象)会被使用引用的方式传递。 简单来说,就是浅克隆属性如果是复杂对象…

java多线程(二五)ReentrantReadWriteLock读写锁详解(1)

一、读写锁简介 现实中有这样一种场景:对共享资源有读和写的操作,且写操作没有读操作那么频繁。在没有写操作的时候,多个线程同时读一个资源没有任何问题,所以应该允许多个线程同时读取共享资源;但是如果一个线程想去…

有关3dmax对齐技巧的那些事

建模操作中,对齐是非常常用的一个功能,用好这个对齐功能能够事半功倍,好处我不说了,下面我们这篇博文就来说说3dmax对齐技巧的相关的内容。 文章目录一、点对齐1、样条线中的点对齐2、多边形中的点对齐二、线对齐三、面对齐四、物…

DJI ROS dji_sdk 源码分析|整体框架

DJI ROS dji_sdk 源码分析|整体框架launch文件CMakeLists.txtcpp文件main.cppOSDK 是一个用于开发无人机应用程序的开发工具包,基于OSDK 开发的应用程序能够运行在机载计算机上(如Manifold 2),开发者通过调用OSDK 中指定的接口能够…

计算机网络考研-第一章学

计算机网学习总结第一章计算机系统概述1.1.1 导学1.1.2 操作系统的特征1.2 操作系统的发展与分类1.3 操作系统的运行环境1.3.1 操作系统的运行机制1.3.2 中断和异常1.3.3系统调用:1.3.4 操作系统的体系结构第一章总结第一章计算机系统概述 1.1.1 导学 1.1.2 操作系…

Nginx 配置实例-反向代理案例一

实现效果:使用nginx反向代理,访问 www.suke.com 直接跳转到本机地址127.0.0.1:8080 一、准备工作 Centos7 安装 Nginxhttps://liush.blog.csdn.net/article/details/125027693 1. 启动一个 tomcat Centos7安装JDK1.8https://liush.blog.csdn.net/arti…

简单粗暴的分布式定时任务解决方案

分布式定时任务1.为什么需要定时任务?2.数据库实现分布式定时任务3.基于redis实现1.为什么需要定时任务? 因为有时候我们需要定时的执行一些操作,比如业务中产生的一些临时文件,临时文件不能立即删除,因为不清楚用户是…

基于FPGA实现正弦插值算法

1、正弦插值的算法分析 1.1 信号在时域与频域的映射关系 在进行正弦算法分析之前,我们回顾一下《数字信号处理》课程中,对于信号在时域与频域之间的映射关系,如下图。 对于上图中的原始信号x(t),使用ADC对信号进行采样&#xff0…