文章目录
- (三)计算机组成原理——总线
- 总线的基本概念
- 单总线
- 双总线
- 面向CPU
- 以存储器为中心
- 总线的分类
- 片内总线
- 系统总线
- 数据总线
- 地址总线
- 控制总线
- 通信总线
- 总线特性及性能指标
- 总线特性
- 机械特性
- 电气特性
- 功能特性
- 时间特性
- 性能指标
- 总线标准
- 总线结构
- 单总线
- 多总线
- 双总线
- 三总线
- 四总线
- 总线控制
- 总线判优控制
- 链式查询
- 计数器定时查询
- 独立请求方式
- 总线通信控制
- 同步通信
- 特点
- 异步通信
- 不互锁
- 半互锁
- 全互锁
- 半同步通信
- 分离式通信
- 特点
- 总结
(三)计算机组成原理——总线
总线的基本概念
接下来呢,我们就开始介绍有关总线的相关知识了,说起总线,值得一提的是,它的英文名是BUS,也就是公共汽车,接下来我们会介绍为什么他会叫这个名字。好啦,就让我们开始今天的学习吧!
首先我们提出一个问题:那就是,我们为什么要使用总线?原因很简单,就是我们的计算机中有许多的设备,如果使用分散连接,也就是每两个设备之间互相连接,那样会造成大量的线路连接,而且还不利于添加删减设备。举个不恰当的例子,把我们的房子想成一个设备,公路想成线路,如果每家每户都一一连接,房子少的时候还好,但是一旦房子一多起来,就很麻烦了。所以我们设计出来了总线这样的方式,他就相当于一条靠近大家的大马路,每家每户通过这条马路去通信就好了,这样既简单,又便捷。
接下来我们来介绍一下有关总线的介绍:总线是连接多个部件的信息传输线,是各部件共享的传输介质,每一次只允许两个设备之间进行通信。而且在总线中,信息传递方式分为串行和并行两种,接下来我们会对其进行详细介绍。接下来我们来看一看一些总线结构。
单总线
顾名思义,就是只有一根总线。
双总线
双总线呢,我们暂时展示两种,第一种是面向CPU,另外一种就是以寄存器为中心。我们一起来看看吧!
面向CPU
这种面向CPU的方式呢,虽然使得CPU与主存之间通信更快,但是还是有一个问题,就是设备与主存之间访问需要通过CPU,速度较慢,于是我们设计出来了以存储器为中心的结构。
以存储器为中心
存储器为中心的结构是在单总线基础上又开辟出的一条 CPU 与主存之间的总线,称为存储总线。这组总线速度高,只供主存与 CPU 之间传输信息。这样既提高了传输效率,又减轻了系统总线的负担,还保留了 I/0 设备与存储器交换信息时不经过 CPU 的特点
总线的分类
接下来我们来具体看一看总线的分类,当然了,根据不同的分类原则,也就能分成不同的种类,接下来我们是按照连接部件来进行分类的。
片内总线
这个比较好理解,片内总线是指芯片内部的总线,如在 CPU 芯片内部,寄存器与寄存器之间、寄存器与算逻单远 ALU 之间都由片内总线连接。
系统总线
系统总线是指 CPU 、主存、 I/O 设备(通过 I/O接口)各大部件之间的信息传输线。由于这些部件通常都安放在主板或各个插件板上,故又称板级总线或板间总线。按系统总线传输信息的不同,又可分为三类:数据总线、地址总线和控制总线。接下来我们来一一进行介绍。
数据总线
顾名思义,数据总线就是用来传输数据的,并且它是双向传输总线,其位数与机器字长、存储字长有关。数据总线的位数称为数据总线宽度,它是衡量系统性能的一个重要参数。
地址总线
地址总线主要用来指出数据总线上的源数据或目的数据在主存单元的地址或 I/O 设备的地址。
控制总线
由于数据总线、地址总线都是被挂在总线上的所有部件共享的,如何使各部件能在不同时刻占有总线使用权,需依靠控制总线来完成,因此控制总线是用来发出各种控制信号的传输线。通常对任一控制线而言,它的传输是单向的。而且控制信号既有输出,又有输入。常见的控制信号如:总线请求,中断请求等等。
通信总线
这类总线用于计算机系统之间或计算机系统与其他系统之间的通信。主要分为串行通信和并行通信。串行通信是指数据在单条位宽的传输线上,一位一位地按顺序分时传送。并行通信是指数据在多条并行位宽的传输线上,同时由源传送到目的地,适宜近距离的传输。
总线特性及性能指标
接下来我们来介绍一下总线特性、性能指标和总线标准。
总线特性
我们现在将介绍一下关于总线的一些特性,首先我们来看一下总线的物理结构。
图中 CPU 、主存、 I/O 这些插板(又称插卡)通过插头与水平方向总线插槽连接。
机械特性
机械特性是指总线在机械连接方式上的一些性能,如插头与插座使用的标准,它们的几何尺寸、形状、管脚数以及排列的顺序,接头处的可靠接触等。
电气特性
电气特性主要是指总线的每一根传输线上信号的传递方向和有效的电平范围。
功能特性
功能特性是指总线中每根传输线的功能,主要包含数据、地址和控制总线等等。
时间特性
主要涉及的就是信号的时序关系,也可以说总线中的任一根线在什么时间内有效。
性能指标
性能指标的话,其实就是衡量总线能力的一个判断标准,具体我们就来看看吧!
- 总线宽度:通常是指数据总线的根数。
- 总线带宽:总线带宽可理解为总线的数据传输速率,即单位时间内总线上传输数据的位数,通常用每秒传输信息的字节数来衡量,单位可用 MBps (兆字节每秒)表示。
- 时钟同步/异步:总线上的数据与时钟同步工作的总线称为同步总线,与时钟不同步工作 的总线称为异步总线。
- 总线复用:一条信号线上分时传送两种信号。
- 信号线数:地址总线、数据总线和控制总线三种总线数的总和。
- 总线控制方式:包括突发工作、自动配置、仲裁方式、逻辑方式、计数方式等。
- 其他指标:如负载能力、电源电压(是采用 5V 还是 3.3 V) 、总线宽度能否扩展等。
具体的判断标准大概如上所示。
总线标准
总线标准的话,有许许多多标准,如:ISA 总线、 EISA 总线、 VESA总线、 PCI 总线、 AGP 总线、RS-232C 总线和USB 总线等等,我们呢,就不一一介绍,书上都有。
总线结构
接下来呢,我们开始介绍总线结构,主要分为单总线与多总线两种,我们就来一一介绍吧!
单总线
单总线是将 CPU 、主存、 I/O 设备都挂在一组总线上,允许 I/O 设备之间、 I/O 设备与 CPU 之间或 I/O 设备与主存之间直接交换信息。之前简单介绍过一下,在此就不再赘述了。
多总线
对于多总线结构,主要包括双总线、三总线、四总线结构等等,我们来一一介绍吧!
双总线
双总线结构的特点是将速度较低的 I/0 设备从单总线上分离出来,形成主存总线与 I/0 线分开的结构。有点类似于面向CPU的双总线模式,但不是。通道可以说是具有特殊功能的处理器,由通道对I/O统一管理。
三总线
如果将速率不同的 I/0 设备进行分类,然后将它们连接在不同的通道上,那么计算机系统的 工作效率将会更高,由此发展成多总线结构。接下来我们来介绍两种三总线模式。
这种就是将高速I/O设备通过DMA挂接到主存上面,这样设备可以快速从主存里面获得数据。
另外一种结构就是通过一个Cache去保存CPU所需的数据。也可以达到高速存储的作用。
)
四总线
为了进一步提高 I/0 设备的性能,使其更快地响应命令,又出现了四总线结构,这种结构对高速设备而言,其自身的工作可以很少依赖 CPU ,同时它们又比扩展总线上的设备更贴近 CPU ,可见对于高性能设备与 CPU 来说,各自的效率将获得更大的提高。
总线控制
接下来我们介绍的就是关于总线控制的相关内容,主要包括判优控制和通信控制,而且这一部分内容就是我们的重难点,所以我也会着重进行讲解。
总线判优控制
首先我们根据设备是否对总线有控制权,我们把其分为主设备和从设备。主设备对总线有控制权,从设备只能响应从主设备发来的总线命令,对总线没有控制权。总线判优也分为集中式和分布式两种,接下来我们会一一进行介绍。
链式查询
链式查询,顾名思义,就是跟一条链子一样,一个一个查询过去。控制总线中有3根线用于总线控制(BS 总线忙、 BR 总线请求、 BG 总线同意),其中总线同意信号 BG 是串行地从一个 I/O 接口送到下 一个 I/O 接口。
具体操作就是,BG一个一个去查询有没有设备发送总线请求BR,当发现了有之后,这个设备就会发送总线忙信号BS,这样就占有了总线,然后下一次也是如此循环。
这样的话只需很少几根线就能按一定优先次序实现总线控制,并且很容易扩充设备,但对电路故障很敏感,且优先级别低的设备可能很难获得请求。
计数器定时查询
接下来介绍的是计数器定时查询,与链式查询相比,多了一组设备地址线,少了一根总线同意线 BG 。总线控制部件接到由 BR 送来的总线请求信号后,在总线未被使用 (BS= 0) 的情况下,总线控制部件中的计数器开始计数,并通过设备地址线,向各设备发出一组地址信号。这样的好处是可以自己设定优先级,并且可以通过循环的方式去一一遍历设备(每此从中断点开始计数)。
独立请求方式
独立请求方式就是每个设备都与总线控制部件相连,当设备要求使用总线时,便发出该设备的请求信号。总线控制部件中有一排队电路,可根据优先次序确定响应哪一台设备的请求。
这种方式的特点是:响应速度快,优先次序控制灵活,但控制线数量多,总线控制更复杂。
总线通信控制
接下来我们要介绍的就是总线通信控制了,主要就是用来解决通信双方协调配合的问题的。一共分为4个阶段,申请分配、寻址、传输和结束阶段。通信方式也刚好是四种,分为同步、异步、半同步和分离式四种,好了,就让我们开始吧!
同步通信
通信双方由统一时标控制数据传送称为同步通信。时标通常由 CPU 的总线控制部件发出,送到总线上的所有部件;也可以由每个部件各自的时序发生器发出,但必须由总线控制部件发出的时钟信号对它们进行同步。
对于读命令,其传输周期如下:
- T1主模块发地址。
- T2主模块发读命令。
- T3从模块提供数据。
- T4主模块撤销读命令,从模块撤销数据。
对于写命令,其传输周期如下:
- T1主模块发地址。
- T1.5主模块发读命令。
- T2从模块提供数据。
- T4主模块撤销读命令,从模块撤销数据。
特点
这种通信的优点是规定明确、统一,模块间的配合简单一致。其缺点是主、从模块时间配合属于强制性”同步”,必须在限定时间内完成规定的要求。并且对所有从模块都用同一限时,这就势必造成,对各不相同速度的部件而言,必须按最慢速度的部件来设计公共时钟,严重影响总线的工作效率,也给设计带来了局限性,缺乏灵活性。
所以同步通信一般用千总线长度较短、各部件存取时间比较一致的场合。而且,总线传输周期越短,数据线的位数越多,直接影响总线的数据传输率。
异步通信
异步通信克服了同步通信的缺点,允许各模块速度的不一致性,给设计者充分的灵活性和选择余地。他是是采用应答方式(又称握手方式),即当主模块发出请求 (Request) 信号时,一直等待从模块反馈回来“响应 ”信号后才开始通信。应答方式可分为不互锁、半互锁和全互锁三种类型。
我们在这里采用出租车的例子去帮助大家理解这三种方式的区别,请大家想像自己在和出租车司机交流。
不互锁
这就是第一种情况,热情司机与高冷乘客,首先司机询问:你去哪啊?(请求信号)。但是乘客不回答,这个时候司机只能按照打车软件的地址将乘客安全送达,或者只能让他下车了。
半互锁
这个属于第二种情况,高冷司机与热情乘客,首先司机询问:你去哪啊?(请求信号)。乘客回答:机场(回答信号)。这个时候司机便不再回答。这种情况看起来不错,但是会照成一个情况,就是顾客怕司机没听清楚,便一直回答。
全互锁
这个属于第三种情况,热情司机与热情乘客,首先司机询问:你去哪啊?(请求信号)。乘客回答:机场(回答信号)。这个时候司机便回答:好嘞。这种情况就比较完美了。
半同步通信
半同步通信既保留了同步通信的基本特点,如所有的地址、命令、数据信号的发出时间,都严格参照系统时钟的某个前沿开始,而接收方都采用系统时钟后沿时刻来进行判断识别;同时又像异步通信那样,允许不同速度的模块和谐地工作。
其实就是加了一个等待信号,以便于不同速度的模块能一起工作。对于读命令,其传输周期如下:
- T1主模块发地址。
- T2主模块发读命令。
- Tw W A I T ‾ \overline{WAIT} WAIT为低电平时,进入等待,八的宽度与 的宽度一致。
- T3从模块提供数据。
- T4主模块撤销读命令,从模块撤销数据。
然后输出也是一样的,就不再赘述了。
我们总结一下上面三种通信的共同点,我们可以得到如下信息:
- 主模块发地址、命令 占用总线
- 从模块准备数据 不占用总线
- 从模块向主模块发数据 占用总线
于是在此基础上,我们设计出来了分离式通信。充分挖掘系统总线每个瞬间的潜力。
分离式通信
我们主要分为两个周期:
- 主模块申请占用总线,使用完后既放弃总线的使用权。
- 从模块申请占用总线,将各类学习传输到总线上。
特点
- 各模块欲占用总线使用权都必须提出申请。
- 在得到总线使用权后,主模块在限定的时间内向对方传送信息,采用同步方式传送,不再等待对方的回答信号。
- 各模块在准备数据的过程中都不占用总线,使总线可接受其他模块的请求。
- 总线被占用时都在做有效工作,或者通过它发送命令,或者通过它传送数据,不存在空闲等待时间,充分地利用了总线的有效占用,从而实现了总线在多个主、从模块间进行信息交叉重叠并行式传送,这对大型计算机系统是极为重要的。
总结
好啦,关于总线的知识我们就讲解这么多,谢谢大家的阅读了。