408计算机组成原理--总线

一、总线的基本概念

piqPjaT.png

如上图,4根信号线组成“一根”总线,所有硬件部件都可以通过这根总线传递数据可并行发送4bit数据,例如0110,CPU对应总线发出高电平信号用于多个设备接收。同一时刻只能有一个部件发送数据,但是可有多个部件接收数据

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

共享是指总线上可以挂接多个部件,各个部件可以互相交换信息
分时是指同一时刻只允许有一个部件向总线发送信息,多个部件,则只能分时地向总线发送

那为什么要用总线呢?
因为早期的计算机外部设备大多采用分散连接方式,不易实现随时增减外部设备。为了更好地解决I/O设备和主机之间连接的灵活性问题,计算机的结构从分散连接发展为总线连接。

piqPjaT.png

数据传输格式的分类(并行总线不一定比串行总线快,并行功率不能过高,避免跳变

  • 串行总线

    优点:成本低,只需要一条就OK,应用长距离传输。CPU内部节省布线空间

    缺点:数据接收和发送需要拆卸和装配,串、并行转换问题

  • 并行总线

    优点:逻辑时序简单,电路实现容易

    缺点:成本贵,信号线数量多,更多布线空间。工作频率较高时信号线之间严重干扰,无法持续工作

按总线功能分类

  • 片内总线

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

  • 系统总线

    计算机系统内各部件之间连接的总线,CPU、主存、I/O接口,按传输信息内容分类

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

    计算机与计算机、计算机系统与其他系统(通信、测试)之间信息传递的外部总线

重点是系统总线!!!计算机内部的总线

系统总线的结构:

  1. 单总线结构(并不是只有一根线!!)

    结构:CPU、主存、I/O设备共用系统总线,都连在一组线上,直接交换信息
    优点:结构简单、成本低、易于接入
    缺点:带宽低、负载重、互争,不支持并发

  2. 双总线结构

    结构:主存总线(CPU、主存)+I/O总线(I/O设备),总线之间增加通道交换信息(放在主存,对I/O设备统一处理)
    优点:分离较低速的I/O设备
    缺点:需要增加通道设备

  3. 三总线结构

    结构:主存总线+I/O总线+DMA总线(直访内存)
    优点:提高性能,更快响应命令,提高吞吐量
    缺点:工作效率较低

桥接器是用于连接不同总线,数据缓冲、转换、控制
越靠近CPU的总线,速度越快

二、总线的性能指标

在总线的性能指标这部分需要花费很多的时间去理解和记忆,最好多次类比加深记忆。⭐⭐⭐难啊

  1. 总线传输周期(总线周期,理解为时间)

    总线传输一次完整的数据所需要多少时间,若干始终周期构成

  2. 总线时钟周期(理解为时间)

    即机器的时钟周期,也可能由桥接器提供。计算机有一个统一标准,总线也要受其控制

  3. 总线工作频率(Hz,理论上算传输速率)

    总线上各种操作的频率,总线周期1(时间)的倒数,频率越大,周期越短

    若总线周期=N个时钟周期,则总线的工作频率=时钟频率/N,指一秒内传送几次数据

  4. 总线时钟频率(Hz,理论上算传输速率)

    机器的时钟频率,时钟周期2(时间)的倒数

    若时钟周期为T,则时钟频率为1/T,指一秒内有多少个时钟周期

  5. 总线宽度(总线位宽,反应并行传输多少bit,电缆中的多条电缆线)

    总线上同时传输的数据位数/根数,1根1bit,32根32bit

  6. 总线带宽(数据传输率,乘积)

    单位时间内总线可传输数据的位数,每秒钟传送信息的字节数来衡量,单位(B/s)

    总线带宽=总线工作频率×总线宽度(bit/s)=总线工作频率×(总线宽度/8)(B/s)=总线宽度/总线周期(bit/s)=(总线宽度/8)/总线周期(B/s)

  7. 总线复用

    一种信号线在不同的时间传输不同的信息,一般是地址总线和数据总线复用,降低成本和布线空间

  8. 信号线数

    地址总线、数据总线和控制总线3种总线数的总和称为信号线数

三、总线的仲裁

仲裁:是为了解决多个设备同一时刻争用总线控制权的问题

背景:同一时刻只能有一个设备控制总线传输【主设备】,可以有一个/多个接收数据【从设备

集中仲裁方式(会有中央仲裁器,由大哥自己决定),流程是主设备发出请求信号,由总线控制器按仲裁逻辑判优使用总线,“总线忙”信号的建立者是获得总线控制权的设备,又细分为:

  • 链式查询方式(比喻为和大哥关系亲近的小弟优先)

    ⭐⭐流程流转过程:当设备1通过BR向总线发出请求的高电平信号,总线会收到信号后通过BG向各个设备发出总线允许信号,按照从0…n的顺序,设备接收到后,想要使用则截断BG信号,同时通过BS向总线发出总线忙信号,通知改总线已经被占领,如果设备接收到不想使用,则继续按照优先级向后传递。
    优点:优先级硬件固定,离总线的远近决定;结构简单;扩充容易
    缺点:故障敏感,不能改变;优先级高的频繁使用,优先级低的不能使用==饥饿问题

  • 计数器查询方式(比喻为公平点的大哥自己决定从一号开始往下问,还是跳着问小弟)

    ⭐⭐流程流转过程:相比较于方式一缺少了BG,增加了和设备地址的关联。当设备n通过BR向总线发出请求的高电平信号,总线在接收到信号后引入计数器根据设备地址判定是哪个设备(按照从0开始自增)当地址线上的计数器数值和设备一致,判定该设备是否需要使用总线,是的话则通过BS发出总线忙信号,同时总线控制部件的计数器暂停计数,当该设备用完以后就撤销BS上的有效信号,总控再检测BR通路还是有效的再继续往后执行。其中计数器的计数又分为几种情况:①每次都从0开始,则同方式一,不公平②计数器从上次计数终点继续往后计数③程序员自己设定
    优点:计数初始值可以改变,没有链式敏感
    缺点:增加控制线数(设备控制线数:[log2n]+2),比链式复杂

  • 独立请求方式(比喻为都有大哥的联系方式,想用就给大哥打电话,由大哥公平按照请求排队)

    ⭐⭐流程流转过程:因为每个设备都会连接BRi、BGi的结构特点,多个设备可以同时通过对应的BR通路发出请求信号,总线控制器中的排队器对请求进行排序(可以通过软硬件实现排队器功能)按照排队器的顺序通过BG通路传给各个某个设备,设备接收到总线允许信号后通过BS通路向总线控制器发出总线占用信号,别设备的等待,直到下一次允许信号发出
    优点:响应速度快,优先级次序设置更加灵活
    缺点:增加控制线数(设备控制线数:2n+1,+1为BS线),控制逻辑复杂

分布仲裁方式(会有唯一的仲裁号,各小弟自己比较)

特点:不需要中央仲裁器,每个潜在的主模块都有自己的仲裁器和仲裁号,多个仲裁器竞争使用总线
AI回答流转过程:当设备有总线请求时,把设备唯一的仲裁号发到仲裁总线上,每个设备内部包含一个仲裁逻辑电路,该电路监听仲裁总线上的信号,并将其与自身的仲裁号进行比较,如果一个设备发现仲裁总线上传递的仲裁号优先级高于自己的仲裁号,那么它会撤销自己的总线请求并等待,优先级最高的仲裁号将继续保留在仲裁总线上,直到其对应的设备完成总线操作,然后释放总线控制权,确保在各种并发情况下仲裁结果的一致性和公平性。

四、总线操作和定时

总线定时是指总线在双方交换数据的过程中需要时间上配合关系的控制,这种控制称为总线定时,它的实质是一种协议规则

⭐⭐⭐首先回顾一下总线传输的四个阶段⭐⭐⭐:上一章的传输请求和总线仲裁是总线传输的第一个阶段,某一个主设备发出申请,由仲裁机制来分配总线的使用权,当一个主设备获得总线的使用权之后就会进入寻址阶段(也就是要指明它配合的从设备是哪一个,读的数据地址是什么地址),主设备给从设备发出请求信号,信号中可能包含地址信息、读写命令等,当从设备接收到住设备的请求信号之后,接下来就进入第三个传输阶段,进行实际的数据交换,等数据交换之后就进入结束阶段,主设备会释放对从设备的控制权,会撤销相应的控制信号。为了主设备和从设备之间相互配合工作,所以引入了下面四种定时方法(要点:发送方用时钟上升前沿发信号,接收方用时钟下降后沿判断识别信号):

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

    分析上图,每个主设备和从设备会完成相应的操作:

    T1节拍:CPU在T1上升沿发出地址信号给出地址信息
    T2节拍:CPU向从设备发出读命令(低电平有效),T2周期内,从设备首先根据地址信息判断主设备是不是搞得对象是不是自己,要怎么搞呢?要根据读命令的信号,低电平从自己这里读出一个数据,所以T2时钟周期内从设备需要准备好主设备想要的数据
    T3节拍:T3上升沿到来的时候,从设备会把自己准备好的数据放到数据总线上,主设备就可以从数据总线上获得自己想要的数据
    T4节拍:T4上升沿主设备撤销读命令,紧接着撤销地址信号,释放总线的控制权,输入设备(从设备)不会再向数据总线上传数据

    问题或局限性:总线控制采用统一的时钟信号(每一个总线传输周期只会给四个时钟信号==统一,若干,相等时间间隔,且只可进行一次数据传送),如果从设备比较慢跟不上传输信号,T3周期给不出数据,同步定时的方式就会出现问题,数据通信的可靠性不会做校验。只适用于总线长度较短(时钟周期较稳定)和所接部件存取时间较接近的系统

  2. 异步定时方式(异步通信)
    没有统一的时钟,也没有固定的时间间隔,完全依靠传送双方相互制约的**“握手”信号来实现定时控制。
    主设备提出交换信息的
    “请求”信号,经接口传送到从设备;从设备接到主设备的请求后,通过接口向主设备发出“回答”信号。
    根据“请求”“回答”信号的撤销是否互锁,分为以下3种类型(可以结合网络中的三次握手记忆,为了建立可靠性连接):

    • 不互锁方式(速度最快,可靠性最差)

      主设备发出“请求”信号后,不必等到接到从设备的“回答”信号,而是经过一段时间,便撤销“请求”信号。而从设备在接到“请求”信号后,发出“回答”信号,并经过一段时间,自动撤销“回答”信号。双方不存在互锁关系。

    • 半互锁方式

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

    • 全互锁方式(速度最慢,最可靠)

      主设备发出“请求”信号后,必须待从设备“回答”后,才撤销“请求”信号;从设备发出“回答”信号,必须待获知主设备“请求”信号已撤销后,再撤销其“回答”信号。双方存在互锁关系。

    优点:总线周期长度可变,能保证两个工作速度相差很大的部件或设备之间进行可靠地信息交换,自动适应时间的配合。
    缺点:比同步控制方式稍复杂一些,速度比同步定时方式慢。

  3. 半同步通信

    统一时钟的基础上,增加一个“等待”WAIT响应信号
    pF9S9BQ.png
    在T2节拍,从设备准备数据阶段,没有同步跟上主设备节奏,就会通过控制电路给总线控制器反馈信号,总线控制器会等待Tw节拍准备数据(结合了异步的特点),再继续往下。

  4. 分离式通信

    主模块发地址、命令 ==== 使用总线
    从模块准备数据 ==== 不使用总线 总线空闲
    从模块向主模块发数据 ==== 使用总线
    分离式通信则优化了从模块准备数据阶段,在总线空闲的时候主动释放总线控制权
    子周期1:主模块申请占用总线,使用完后放弃总线的使用权
    子周期2:从模块申请占用总线,将各种信息送至总线上

    特点:

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

下图是总线标准的分类,了解即可
pF9pDZ4.png

  • 36
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值