随谈--计算机组成原理--总线控制
总线控制
主要为规定接收信息部件的总线使用权问题;主要包括判优控制和通信控制;
总线判优控制
总线上的连接设备按对总线有无控制功能可以分为主设备和从设备,主设备对总线有控制权,从设备只能响应主设备发来的总线命令,对总线没有控制权。总线上的信息传送是由主设备发出总线请求信号,如果多个设备同时请求,就需要总线控制器的判优,仲裁逻辑确定哪个设备能使用总线,只有拥有控制权的设备才能传输数据;
判优控制可分为:集中式判优和分散式判优;
链式查询
控制总线中有三根线用于总线控制(总线忙BS,总线请求BR,总线同意BG),其中BG是串行一个IO接口一个IO接口的下送,如果BG到达的接口有总线请求,就不再往下送,意味着该接口获得总线控制权,并建立BS信号,表示它占用了总线,可以看到,最近的优先级最高;它的特点是:只需要几根线就能按一定次序实现总线控制,并且容易扩充设备,但是电路故障敏感,且优先级低的设备很难获得控制权;
计数器定时查询
控制部件接收到BR送来的总线请求信号后,在总线未被占用BS=0,总线计数器开始计数,并通过设备地址线,向各设备发送一组地址信号。当某个请求占用总线的设备地址与计数器一致时,便获得总线控制权,终止计数;其特点是:计数可以从0开始,此时如果设备优先级固定,设备优先级0,1,...n的顺序降序排列,且固定不变。计数器也可以从上次计数终点开始,是一种循环的方式,此时设备使用总线优先级一样,这种方式对电路故障敏感度不如链式查询,但增加了控制线,控制也较为复杂;
独立请求查询
每台设备有BR和BG线,当设备发出总线请求时,控制器中有排队电路,可根据优先级确定响应哪一台设备;特点是:响应快,优先级灵活,但是控制线数量较多,总线控制更为复杂。
链式查询仅用两根线确定总线控制权;
计数查询大致用logn根线,n为最大设备数;
独立请求需要2n根线;
通信控制
通常完成一次总线操作的时间称为总线周期。可以分为4个阶段:
- 申请分配阶段:由主设备提出申请,经仲裁机构决定下一传输周期总线的使用者;
- 寻址阶段:取得使用权的主设备通过总线发出本次要访问的从设备的地址和命令,启动从设备;
- 传数阶段:主设备和从设备进行数据交换,数据由源模块发出,经数据线流入目的从设备;
- 结束阶段:主设备有关信息从总线移除,让出总线使用权;
总线通信控制主要解决通信双方如何获知传输开始,传输结束及如何协调和配合;常见的通信方式有:同步通信,异步通信,半同步通信,分离式通信;下面主要讲解同步和异步通信。
同步通信
通信双方由统一时标控制数据传送称为同步通信,时标通常由CPU的总线控制器发出,到总线上所有的部件,也可以由各部件各自的时序发生器发出,但必须总线控制器发出的时钟信号对其进行同步;
如以下为某输入设备向CPU传输的同步通信过程:
CPU在T1上升沿发出地址信息,T2上升沿发出读命令,与地址信息相符合的输入设备按命令进行一系列内部操作,且在T3上升沿前将CPU所需数据送到数据总线上,CPU在T3时钟周期内将数据送到其寄存器,在T4上升沿撤销读命令,输入设备不再向数据总线传输数据。
这种通信方式有点在于规定明确,统一,模块间配合简单一致,缺点是从模块时间配合属于强制性“同步”,必须在限定时间内完成规定的要求。并且对所有从模块都用同一限时,这就造成对于不同速度的部件而言,必须按照最慢速度部件来设计公共时钟,严重影响了工作效率;
同步通信一般用于总线长度较短,各部件存取时间比较一致的场合,总线传输周期越短,数据位数越多,直接影响总线数据传输速率;
异步通信
它没有公共的时钟标准,不要求所有部件严格的统一操作时间,而是采用应答的方式(握手),即主模块发出请求后,一直等待从模块反馈的响应信号后,才开始通信,因此要求主从模块之间增加两条应答线。
异步通信可分为:不互锁,半互锁,全互锁
主模块发出请求信号后,不必等到从模块的应答信号,而是经过一段时间后,确认从模块已收到请求信号后,撤销其请求信号。从模块接收到信号后,条件允许下发出应答信号,并经过一段时间确认主模块收到应答信号后,自动撤销回答信号,可见并无互锁关系。例如:CPU向主存写信息,CPU先给地址信号,写命令和写入数据;
主模块发出请求信号后,必须等待从模块的应答信号,再主动撤销其请求信号,有互锁关系,而从模块接收到请求信号后发出回答信号,但是不必等到获知主模块的请求信号已经撤销,而是隔一段时间后,主动撤销其回答信号,无互锁关系。由于一方有互锁关系,一方没有互锁关系,所以称为半互锁。
主模块发出请求信号,必须等待从模块回答后再撤销请求信号;从模块发出回答信号后,必须获知主模块请求信号撤销后,再撤销其回答信号,双方存在互锁关系。