计算机组成原理 第二章(系统总线)—第三节(总线控制)

 写在前面:

  1. 本系列笔记主要以《计算机组成原理(唐朔飞)》为参考,大部分内容出于此书,笔者的工作主要是挑其重点展示,另外配合下方视频链接的教程展开思路,在笔记中一些比较难懂的地方加以自己的一点点理解(重点基本都会有标注,没有任何标注的难懂文字应该是笔者因为强迫症而加进来的,可选择性地忽略)。
  2. 视频链接:计算机组成原理(哈工大刘宏伟)135讲(全)高清_哔哩哔哩_bilibili

一、概述

        由于总线上连接着多个部件,,什么时候由哪个部件发送信息,如何给信息传送定时,如何防止信息丢失,如何避免多个部件同时发送,如何规定接收信息的部件等一系列问题都需要由总线控制器统一管理。

        总线控制器的功能主包括判优控制(或称仲裁逻辑)和通信控制

二、总线判优控制

1、概述

(1)总线上所连接的各类设备,按其对总线有无控制功能可分为主设备(模块)和从设备(模块)两种,主设备对总线有控制权,从设备只能响应从主设备发来的总线指令,对总线没有控制权

(2)同一时刻只能有一个设备控制总线传输操作,可以有一个或多个设备从总线接收数据

(3)多个主设备同时竞争主线控制权时,以某种方式选择一个主设备优先获得总线控制权,这称为总线仲裁

(4)总线判优控制可分为集中式和分布式两种

①集中式仲裁将控制逻辑集中在一处(如在CPU中),常见的有链式查询方式、计数器定时查询方式和独立请求方式三种

②分布式仲裁将控制逻辑分散在与总线连接的各个部件或设备上。

2、链式查询方式

(1)链式查询方式如下图所示,图中控制总线中有3根线用于总线控制(BS总线忙、BR总线请求、BG总线同意)。

(2)链式查询的过程:BG发送总线允许电信号给各个设备接口,如果该接口需要使用总线,就会截断BG信号,使其不继续往后传,同时该设备建立总线忙BS信号,表示它占用了总线;如果该接口不需要使用总线,BG信号将继续往下一个接口传送

(3)链式查询的特点:

①优点:只需要很少几根线就能按一定优先次序实现总线控制,结构简单,并且很容易扩充设备。

②缺点:对硬件电路的故障敏感(比如I/O接口1的一段BG总线出现故障,那么后面的接口全都收不到BG信号),并且优先级不能改变当优先级高的部件频繁请求使用总线时,会使优先级较低的部件长期不能使用总线

3、计数器定时查询方式

(1)计数器定时查询方式如下图所示,与链式查询方式相比多了一组(不是一根)地址线,少了一根总线同意线BG。

(2)计数器定时查询的过程:当总线控制器收到BR送来的总线请求信号后,在总线未被使用(BS=0)的情况下,总线控制部件中的计数器开始计数,并通过设备地址线向各设备发出一组地址信号,当某个请求占用总线的设备地址与计数值一致时便获得总线使用权,此时终止计数查询

(3)计数器定时查询的特点:

①优点:计数初始值可以随便设置,这样可以改变设备使用总线的优先级,另外这种方式对电路的故障没有链式敏感(也就是说一个接口产生的问题基本不会影响其它接口)。

②缺点:增加了控制线数,若有n个设备,则需\left \lceil log_{2}n \right \rceil+2条控制线,控制相对链式查询更复杂。

4、独立请求方式

(1)独立请求方式如下图所示(图中漏画一条BS线),每一台设备均有一对总线请求线和总线同意线

(2)独立请求的过程:当总线上的部件需要使用总线时,它们会经各自的总线请求线发送请求信号,接着在总线控制器中排队,当总线控制器按一定的优先次序决定批准某个部件的请求时,则给该部件发送总线响应信号

(3)独立请求的特点:

①优点:响应速度快,总线允许信号BG直接从控制器发送到有关设备,不必在设备间传递或者查询,对优先次序的控制也相当灵活

②缺点:控制线数量多,若设备有n个,则需要2n+1条控制线,其中一条是BS线,用于设备向总线控制部件反馈对总线的使用已经完毕,另外这种方式的总线控制逻辑也是相当复杂。

5、分布式仲裁方式

(1)分布式仲裁的过程:当设备有总线请求时,它们就把各自唯一的仲裁号发送到共享的仲裁总线上,每个仲裁器将从仲裁总线上得到的仲裁号与自己的仲裁号进行比较,如果仲裁总线上的号优先级高,则它的总线请求不予相应,并撤销它的仲裁号,最后获胜者的仲裁号保留在仲裁总线上

(2)分布式仲裁的特点:不需要中央仲裁器,每个潜在的主模块都有自己的仲裁器和仲裁号,多个仲裁器竞争使用总线

三、总线通信控制

1、概述

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

(2)通常将完成一次总线操作的时间称为总线周期,可分为以下4个阶段:

①申请分配阶段:由需要使用总线的主模块(或主设备)提出申请,经总线仲裁机构决定下一传输周期的总线使用权授于某一申请者。

②寻址阶段:取得了使用权的主模块通过总线发出本次要访问的从模块(或从设备)的地址及有关命令,启动参与本次传输的从模块。

③传数阶段:主模块和从模块进行数据交换,数据由源模块发出,经数据总线流入目的模块。

④结束阶段:主模块的有关信息均从系统总线上撤除,让出总线使用权。

(3)对于仅有一个主模块的简单系统,无需申请、分配和撤除,总线使用权始终归它占有;对于包含中断、DMA控制或多处理器的系统,还需要有其它机构来参与。

(4)总线通信控制主要解决通信双方如何获知传输开始和传输结束,以及通信双方如何协调如何配合,通常用四种方式——同步通信、异步通信、半同步通信和分离式通信

2、同步通信

(1)通信双方由统一时标控制数据传送,也就是双方系统采用一个统一的时钟信号来协调发送和接收双方的传送定时关系,这称为同步通信

(2)时标通常由CPU的总线控制部件发出,送到总线上的所有部件;也可以由每个部件各自的时序发生器发出,但必须由总线控制部件发出的时钟信号对它们进行同步。

(3)下图表示某个输入设备向CPU传输数据的同步通信过程。

①时钟产生相等的时间间隔,每个间隔构成一个总线周期,在一个总线周期中,发送方和接收方可进行一次数据传输。上图包含4个时钟周期T_{1}T_{2}T_{3}T_{4}

②因为采用统一的时钟,每个部件或设备发送或接收信息都在固定的总线传送周期中,一个总线的传送周期结束,下一个总线的传送周期开始。

CPU在T_{1}上升沿发出地址信息;CPUT_{2}的上升沿发出读命令,与地址信号相符合的输入设备按命令进行一系列内部操作,且必须在T_{3}的上升沿到来之前将CPU所需的数据送到数据总线上;CPU在T_{3}时钟周期内将数据线上的信息送到其内部寄存器中;CPU在T_{4}的上升沿撤销读命令,输入设备不再向数据总线上传送数据,撤销它对数据总线的驱动

(4)下图表示CPU向某个输出设备传输数据的同步通信过程。

①时钟产生相等的时间间隔,每个间隔构成一个总线周期,在一个总线周期中,发送方和接收方可进行一次数据传输。上图包含4个时钟周期T_{1}T_{2}T_{3}T_{4}

②因为采用统一的时钟,每个部件或设备发送或接收信息都在固定的总线传送周期中,一个总线的传送周期结束,下一个总线的传送周期开始。

CPU在T_{1}上升沿发出地址信息,且必须在T_{2}的上升沿到来之前(T_{1.5})将输出设备所需的数据送到数据总线上;CPU在T_{2}的上升沿发出写命令,与地址信号相符合的输出设备按命令进行一系列内部操作,且必须在T_{4}的上升沿到来之前将数据总线上的数据写到地址总线所指明的单元中;CPU在T_{4}的上升沿撤销写命令,输出设备不再从数据总线上获取数据

(5)同步通信的优点是传送速度快,且规定明确、统一,模块间的配合简单一致,但它不能及时进行数据通信的有效性检验,可靠性较差,另外主、从模块的时间配合属于强制性“同步”,它们必须在限定时间内完成规定的要求。

(6)同步通信一般用于总线长度较短、各部件存取时间比较一致的场合

3、异步通信

(1)异步通信克服了同步通信的缺点,允许各模块速度的不一致性,它没有公共的时钟标准,不要求所有部件严格的统一操作时间,而是采用应答方式(又称握手方式),即当主模块发出请求信号时,一直等待从模块反馈回来“响应”信号后才开始通信,当然,这就要求主、从模块之间增加两条应答线(握手交互信号线)。

(2)异步通信的应答方式又可分为不互锁、半互锁和全互锁三种类型。

①不互锁方式:主模块发出请求信号后,不必等待接到从模块的回答信号,而是经过一段时间,确认从模块已收到请求信号后便撤销其请求信号;从模块接到请求信号后,在条件允许时发出回答信号,并且经过一段时间(这段时间的设置对不同设备而言是不同的)确认主模块已收到回答信号后,自动撤销回答信号。例如,CPU向主存写信息,CPU要先后给出地址信号、写命令以及写入数据,即采用此种方式。(此种方式速度最快,可靠性最差

②半互锁方式:主模块发出请求信号,必须待接到从模块的回答信号后再撤销其请求信号,有互锁关系;而从模块在接到请求信号后发出回答信号,但不必等待获知主模块的请求信号已经撤销,而是隔一段时间后自动撤销其回答信号,无互锁关系。例如,在多机系统中,某个CPU需访问共享存储器(供所有CPU访问的存储器)时,该CPU发出访存命令后,必须收到存储器未被占用的回答信号才能真正进行访存操作。

③全互锁方式:主模块发出请求信号,必须待接到从模块的回答信号后再撤销其请求信号,有互锁关系;从模块发出回答信号,必须待获知主模块请求信号已撤销后再撤回其回答信号,有互锁关系。例如,在网络通信中,通信双方采用的就是全互锁方式。(此种方式最可靠,速度最慢

(3)异步通信可用于并行传送或串行传送,其中异步串行通信的数据传送速率用波特率来衡量,波特率是指单位时间内传送二进制数据的位数,单位用bps(位/秒)表示,记作波特。若只考虑有效数据位,则可用比特率来衡量异步串行通信的数据传输速率,即单位时间内传送二进制有效数据的位数,单位用bps(位/秒)表示

(4)异步通信的特点:

①优点:总线周期长度可变,能保证两个工作速度相差很大的部件或设备之间可靠地进行信息交换,自动适应时间的配合。

②缺点:比同步控制方式稍复杂一些,速度也稍慢一些。

4、半同步通信

(1)半同步通信既保留了同步通信的基本特点,如所有的地址、命令、数据信号的发出时间都严格参照系统时钟的某个前沿开始,而接收方都采用系统时钟后沿时刻来进行判断识别,同时又像异步通信那样,允许不同速度的模块和谐地工作,为此增设了一条“等待”(\overline{WAIT})响应信号线,采用插入时钟(等待)周期的措施来协调通信双方的配合问题

(2)以输入为例,在同步通信中,主模块在T_{1}发出地址,在T_{2}发出命令,在T_{3}传输数据,在T_{4}结束传输倘若从模块的工作速度较慢,无法在T_{3}时刻提供数据,则必须在T_{3}到来前通知主模块,给出\overline{WAIT}(低电平)信号。若主模块在T_{3}到来时刻测得\overline{WAIT}为低电平,就插入一个等待周期T_{W}(其宽度与时钟周期一致),不立即从数据线上取数。若主模块在下一个时钟周期到来时刻又测得\overline{WAIT}为低电平,就再插入一个T_{W},这样一个时钟周期、一个时钟周期地等待,直到主模块测得\overline{WAIT}为高电平时,主模块即把此刻的下一个时钟周期当作正常周期T_{3},即时获取数据,T_{4}结束传输

(3)半同步通信适用于系统工作速度不高但又包含了许多工作速度差异较大的各类设备组成的简单系统,其控制方式比异步通信简单,在全系统内各模块又统一的系统时钟控制下同步工作,可靠性较高,同步结构较方便,但这种方式对系统时钟频率不能要求太高。

5、分离式通信

        前面介绍的三种通信方式都是从主模块发出地址和读写命令开始,直到数据传输结束,在整个传输周期中,系统总线的使用权完全由占有使用权的主模块和由它选中的从模块占据,进一步分析读命令传输周期,发现除了申请总线这一阶段外,其余时间主要花费在如下三个方面(这也是前三种通信方式的共同点):

        ①主模块通过传输总线向从模块发送地址和命令。

        ②从模块按照命令进行读数据的必要准备。

        ③从模块经数据总线向主模块提供数据。

        由②可见,对系统总线而言,从模块内部读数据的过程并无实质性的信息传输,总线纯属空闲等待,为了克服和利用这种消极等待,尤其在大型计算机系统中,总线的负载已处于饱和状态,充分挖掘系统总线每瞬间的潜力都会对提高系统性能起到极大作用,为此人们又提出了“分离式”的通信方式,其基本思想是将一个传输周期(或总线周期)分解为两个子周期

        在第一个子周期中主模块A在获得总线使用权后将命令、地址以及其它有关信息,包括该主模块编号发到系统总线上,经总线传输后由有关的从模块B接受下来。主机A向系统总线发布这些信息只占用总线很短的时间,一旦发送完就立即放弃总线使用权在第二个子周期中,当B模块收到A模块发来的有关命令信号后,经选择、译码、读取等一系列内部操作,将A模块所需的数据准备好,便由从模块B申请总线使用权,一旦获准,从模块B便将A模块的编号、B模块的地址、A模块所需的数据等一系列信息送到总线上供A模块接收。两个子周期之间,其它设备也可以使用总线。

        这种通信方式的特点如下:

        ①各模块欲占用总线使用权都必须提出申请。

        ②在得到总线使用权后,主模块在限定的时间内向对方传送信息,采用同步方式传送,不再等待对方的回答信号。

        ③各模块在准备数据的过程中都不占用总线,使总线可接受其它模块的请求。

        ④总线被占用时都在做有效工作,或者通过它发送命令,或者通过它传送数据,不存在空闲等待时间,充分地利用了总线的有效占用,从而实现了总线在多个主、从模块间进行信息交互重叠并行式传送,这对大型计算机系统是极为重要的。

  • 34
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zevalin爱灰灰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值