计组第三章 总线的基本概念

第三章 总线的基本概念

3.1 总线的基本概念

3.1.1. 为什么要用总线

  1. 根据计算机的结构,可以看出,计算机硬件有很多组件,每种组件的数目不止一个,要将这些组件连接起来
  2. 分散连接:可以将需要通讯的组件两两连接起来
    1. 成本高,设计难度大
    2. 每个组件的接口要很多
    3. 难以扩展
  3. 因此要用总的线

3.1.2. 什么是总线

  1. 总线是连接各个部件的公共信息传输线,是各个部件共享的传输介质
    1. 总线很繁忙,同时只能有一组设备使用,成为瓶颈
    2. 但是设计简单,可扩展性高

3.1.3. 总线上信息的传送

  1. 串行

image-20221128115123867

​ 一根线:数据是一位一位的传输

​ 支持距离比较长,一次只能传一位信号

  1. 并行

    image-20221128115152585

    多条线(一个总线由平行的多条线),一个数据的多为同时放在多条总线上

    传输距离如果比较长,线与线之间就会产生干扰

    一般并行传输的举例比较短

    一次可以传多位信号,图中一列为一个信号

问:现在的告诉信息传输采用那种传输方式

3.1.4. 总线的结构举例(简单介绍)

(1) 单总线结构框图

image-20221128155733823

  1. 当主存要输出或者输入信息的时候,CPU就无法运算,严重影响CPU的性能
  2. 当外设多的时候,总线的长度会变长,延迟增加

(2) 面向CPU的双总线结构框图

image-20221128155917852

CPU需要的数据和指令都在主存中,所以专门添加一条M总线

问题

  1. 主存无法与外部设备直接连接,还是要通过CPU,增加了CPU的负担

(3) 以存储器为中心的双总线结构框图

image-20221128160047213

目前无法实现主存同时向系统总线与存储总线传输

3.2 总线的分类

3.2.1. 按位置分

总线 (按位置分)

3.3 总线的特性及性能指标

3.3.1. 总线物理实现

image-20221128161708733

3.3.2. 总线特性

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

3.3.3. 总线的性能指标

性能 说明
总线宽度 数据线 的根数
标准传输率 每秒传输的最大字节数(MBps)
时钟同步/异步 同步、不同步(这里不是异步,有区别的)
总线复用 地址线 与 数据线 复用(复用可以减少芯片的管脚数)
信号线数 地址线、数据线和控制线的 总和
总线控制方式 突发、自动、仲裁、逻辑、计数
其他指标 负载能力

3.3.4. 总线标准

image-20221128162006268

这些总线不是一台电脑只用一个,而是不同地方用不同的总线,当然有的已经淘汰了

3.4 总线结构

之前也讲解了一些总线

3.4.1 单总线结构

image-20221128163231847

3.4.2. 双总线结构

image-20221128163301366

这个通道是操作系统写的,不是人工写的

3.4.3. 三总线结构

image-20221128163328180

DMA是direct memory access,意思是直接访问主存,告诉外设不止有一个

下面是又一种实现的方法,记住这些总线的名字

image-20221128163407049

  1. CPU的速度提升的很快,每年52%,但是内存的提升速度很慢,大概10年换一代

    因此内存的性能成为了瓶颈

  2. 在内存与CPU的中间有一个Cache,内存的指令和数据都存在Cache中

  3. 下部有扩展总线,便于IO的扩展,但是不同速度的设备都连在了一条总线上,低速设备影响告诉设备的效率

3.4.4. 四总线结构

image-20221128163809890

  1. 告诉的连接在告诉总线上,低俗的连接在扩展总线上

总线结构举例

(1) 传统微型机总线结构

image-20221128164043546

ISA、EISA是扩展总线

(2) VL-BUS局部总线结构

VL-BUS是告诉总线

image-20221128164123442

(3) PCI 总线结构

image-20221128164145954

(4) 多层 PCI 总线结构

如果PCI总线上的设备过多的话,驱动可能不够

image-20221128164225495

通过多个桥进行扩展

3.5 总线控制(重点)

总线控制主要是两个

  1. 总线判优控制:总线同时只能支持一堆设备使用,到底哪对设备使用
  2. 总线通信控制:解决通信双方协调配合问题

3.5.1. 总线判优控制

根据是否能够发出总线命令,设备分成两类

  1. 主设备:对总线有 控制权,能够发出总线命令,并能够控制与另外一个设备的通信
  2. 从设备:响应 从主设备发来的总线命令

有的设备既可以当主设备,又可以当从设备

有的主线只能连一个主设备,有的可以连多个

主线判优控制

下面我们探讨集中式的总线控制

(1) 链式查询方式

image-20221128165618421

链式的核心就在于BG

执行流程

  1. 接口1与接口n都要请求占用总线,通过BR想总线控制部件发出请求
  2. 总线控制部件不忙,认为可以交出使用权,但是不知道是哪一个设备要请求的,因此通过BG来逐个判断哪个接口要用呢
  3. 当BG遇到第一个发出请求的接口后,停止,这里是接口1,接口1 通过BS设置总线忙,即总线控制部件此时不能转让总线使用权,这时接口1就能使用总线了

特征

  1. 缺点
    1. 各个设备的优先级是通过BG的查询顺序决定的,由连接方式决定的,如果某个设备连的比较后,可能永远不会占用
    2. 一直向下查询,速度可能比较慢
    3. 对电路故障比较敏感,一旦BG中间断了,就无法传输到后面
  2. 优点
    1. 易于扩展
    2. 设计简单
    3. 进行可靠性设计的时候,容易实现
      1. 比如将BG或者BS换成两条,很容易实现

一般用于微型计算机或者简单的嵌入式系统

(2) 计数器定时查询

image-20221128170549956

  1. 总线控制部件内部有个计数器
  2. 没有了BG,但是多了一个设备地址

执行流程

  1. 接口1和n同时通过BR向控制部件发出请求
  2. 控制部件同意之后,通过设备地址向接口发出信号,问是否发出请求
  3. 到达接口1,接口1通过BS发出响应,计数器+1,1被选中

特点:

  1. 优先级设计灵活

    计数器的初值可以设计,可以从0开始,可以从上一次使用的设备开始

    设置为k,那么k设备的优先级最高

  2. 线的数目

    尤其是设备地址的数目,与接口数目有关 log2n向上取证

    加上两根BR BS线

(3) 独立请求方式

前两种方式都是按顺序询问哪个接口发出的请求

image-20221128171313384

总线控制部件的内部有一个排队器,排队方式由其控制

每一个接口都加了一个BRi BGi,可以独立发出请求

3.5.2. 总线通信控制

  1. 目的:解决通信双方 协调配合 问题

  2. 总线传输周期

    1. 申请分配阶段:主模块申请,总线仲裁决定
    2. 寻址阶段:主模块向从模块 给出地址 和 命令
    3. 传数阶段:主模块和从模块 交换数据
    4. 结束阶段:主模块 撤消有关信息
  3. 总线通信的四种方式

    总线通信的四种方式

(1) 同步通信

① 同步式数据输入

image-20221128172458218

总共有四个信号

  1. 时钟信号:一个总线传输周期有四个时钟周期

    时钟周期都是上升沿有效,所以每个时钟周期干什么事情是看上升沿做什么事情

  2. 地址信号

  3. 读命令信号

  4. 数据信号

周期(上升沿的时候) 说明
T1 地址信号要给出地址(设备的地址)
T2 读信号要给出命令(包括操作以及数据的地址)
T3 数据信号要给出数据
T4 读命令和数据要撤销,周期结束后,地址信号也要撤销
② 同步式数据输出

image-20221128172511398

假设是CPU将某一个数据输出到某个模块

周期(上升沿的时候) 说明
T1 上升沿地址信号要给出地址(设备的地址)
下降沿,CPU要给出数据
T2 写信号要给出命令(包括操作以及数据的地址)
T3 做操作
T4 写命令和数据要撤销,周期结束后,地址信号也要撤销

地址信号在第四个周期结束后撤销,因为地址信号控制着使用哪个外部设备,有信号就表示使用这个设备

通信方式 特点 适用
同步 快速和慢速的设备使用等长的时钟周期,慢速的影响快速的设备 总线比较短,设备速度比价一致的情况

(2) 异步通信

多了两根线:

  1. 主设备发出请求的线
  2. 从设备发出应答的线
分类 示意图 说明
不互锁 image-20221128173702725 1. 主设备不管从设备是否接收到请求信号,过一段时间都会撤销请求
2. 从设备不管主设备是否接收到应答信号,过一段时间都会撤销应答
可靠性较低
半互锁 image-20221128173713815 1. 主设备发出请求,从设备接收后发出应答,主设备在接受到请求之后才撤销请求,否则会保持请求
2. 从设备不论是否主设备接受到应答,过一段时间后都会撤销应答
有可能造成请求信号一直有效
全互锁 image-20221128173723565 1. 主设备接受到应答信号才会撤销
2. 从设备在请求信号撤销后才会撤销应答

(3) 半同步通信(同步+异步)

这是同步和异步的结合

  1. 同步:发送方 用系统 时钟前沿 发信号,接收方 用系统 时钟后沿 判断、识别
  2. 异步:允许不同速度的模块和谐工作,增加一条 “等待”响应信号 image-20221128174526753来调整不同设备的速度差异

以输入数据为例的半同步通信时序

image-20221128174629335

周期 说明
T1 主模块发(外设模块)地址
T2 主模块发命令
Tw 假设主从模块是CPU和慢速模块,速度差距很大
如果模块无法向CPU发出数据,就会通过WAIT线发出信号,主模块检测这个信号有效
此时进入Tw周期,这个时候主模块会等待一个周期
Tw 如果从模块还不能发送数据,继续发出WAIT信号
……
T3 从模块提供数据
T4 从模块撤销数据,主模块撤销命令

上述三种通信的共同点

一个总线传输周期(以输入数据为例)

  1. 主模块发地址 、命令 —— 占用总线
  2. 从模块准备数据 —— 不占用总线 总线空闲
  3. 从模块向主模块发数据 —— 占用总线

第二步总线空闲,只是一种资源浪费,总线成为瓶颈

(4) 分离式通信

充分挖掘系统总线每个瞬间的潜力

一个总线传输周期

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

特点:

  1. 各模块有权申请占用总线

  2. 采用同步方式通信,不等对方回答

  3. 各模块准备数据时,不占用总线

  4. 总线被占用时,无空闲,一定是在执行命令,有活干

    充分提高了总线的有效占用

posted @ 2023-09-13 16:29  Crispy·Candy  阅读(75)  评论(0编辑  收藏  举报