总线:连接各个部件的信息传输线,是各个部件共享的传输介质。
总线只能允许一对设备传输信息,只有当这对设备的信息传输释放后,才能开始下一对设备的信息传输。
并行 | 串行 |
---|---|
多条数据线传输 | 单条数据线传输 |
传输距离短。这是因为: 1. 数据线是平行的,线和线之间会产生干扰,所以传输距离长时,传输数据就会发生变形,如果传输数据故障,就需要重新对齐数据再传输。 2. 由于是多个数据同时传输,需要考虑数据的协同性,这就导致了并行传输的频率不能做的很高。 比如可以集中在计算机机箱的内部 |
传输距离长。这是因为: 1. 如果一个数据出错了,只需要重新传一次就好了。 2. 串行总线只有一条链路,就可以把频率做的很高,提高传输速度,速度提高了就能够弥补一次只能传输一个数据的缺陷。 比如可以在机器和机器之间传输。 |
一次可以传n位信号 | 一次可以传1位信号 |
—————— | —————— —————— —————— —————— |
缺点:
总线是信号的公共传输线,在任何时刻只能有一对设备使用。总线就会成为整个系统的瓶颈。
比如:当I/O接口和主存在传输数据时,CPU和主存之间就不能进行数据传输,CPU执行程序的过程就会停止,严重影响CPU的运行效率
当总线延伸过长时(比如当I/O设备过),信息传输的时间延迟会加长
缺点:
遗憾的是,当前的技术仍然不能实现:存储总线和系统总线同时进行工作,目前的技术还是分时做的,看将来能不能同时工作,进一步提高系统效率
芯片内部的总线
用于计算机系统之间或计算机系统与其他系统(入控制仪表、移动通信等)之间的通信
如下图所示:
总线标准:系统与各模块、模块与模块之间的一个互连的标准界面。
只要是按照该标准生产的部件,就可以集成在一起。
如下图所示:
DMA:直接存储器访问(Direct Memory Access)。用于高速外设与主存高速进行信息交换
高速设备和低速设备进行分类组织:
高速设备接在高速总线上,低速设备接在扩展总线上
把系统总线和I/O总线进行了分离
Vl-BUS是高速总线,连高速设备
高速总线上扩展出来的ISA、EISA是低速总线,连低速设备
PCI是高速总线,连高速设备
高速总线上扩展出来的ISA、EISA是低速总线,连低速设备
部件 | 解释或作用 |
---|---|
总线控制部件 | 集中在一起 |
数据线 | 用于信息交换过程中数据的传输 |
地址线 | 用于从设备的查找。主设备要通过地址线找到从设备 |
BR | 总线请求 |
BS | 总线忙 |
BG | 总线同意 |
I/O接口1
和I/O接口n)
I/O接口0
提出了总线请求,总线控制权交给I/O接口0
I/O接口1
I/O接口1
通过BS设置“总线忙”,获得总线使用权注解:
在上面的步骤2中,为什么不直接定位发送总线请求的I/O接口,而要逐个查询呢?
因为所有的设备通过同一条线BR提出的总线请求,所以总线控制部件不知道哪个设备优先权更高,也就不知道该把总线控制权交给哪个设备了
优点:
结构非常简单
增删设备非常容易
优先级算法非常简单
进行可靠性设计比较容易:比如将BS/BG总线这一条线换成两条线,避免一条线断了以后电路无法使用,
缺点:
对电路故障非常敏感
速度比较慢
这种方式常用于微型计算机、简单的嵌入式系统
部件 | 解释或作用 |
---|---|
总线控制部件 | 集中在一起 |
数据线 | 用于信息交换过程中数据的传输 |
地址线 | 用于从设备的查找。主设备要通过地址线找到从设备 |
设备地址 | 用来查找某个设备是否发生了总线的占用请求 |
BR | 总线请求 |
BS | 总线忙 |
计数器 | 初值可以为0,计数器的值通过设备地址线向外进行传输 |
I/O接口1
和I/O接口n)
I/O接口0
设备进行查询
I/O接口0
提出了总线请求,I/O接口0
就会响应,通过BS进行应答,总线控制权交给I/O接口0
优先级确定非常灵活:
计数器的计数 | I/O接口的查询次序 |
---|---|
每次从0开始到n | 从I/O接口0 到I/O接口n |
每次从上一次停止计数的数开始 | 循环优先级 |
通过软件设定初值k | I/O接口k 的优先级变成了最高,从I/O接口k到 I/O接口n` |
通过软件对总线控制部件进行设置 | 更灵活地改变了查询次序 |
设备地址线的宽度与设备数有关。
比如有n个设备,用二进制编码,至少有 ⌈ l o g 2 n ⌉ \lceil log_{2}n \rceil ⌈log2n⌉位二进制码,设备地址宽度也就是 ⌈ l o g 2 n ⌉ \lceil log_{2}n \rceil ⌈log2n⌉(上取整)
排队器:实现优先级的排队,位于总线控制部件内部。
解决通信双方协调配合问题
概念:指主设备和从设备之间完成一次完整的且可靠的通讯需要的时间
同步式通信的特点:
适用范围:
这个图在数电中叫做:时序图。
识图的方法就是:简单来说,通过时钟脉冲的高低电平来控制各个功能的开始和结束点
上升沿和下降沿:
步骤分析:
T1的上升沿,主设备给出地址信号,T1时钟周期内,地址由PC到MAR,读命令由MDR到IR
T2的上升沿,IR给出读命令信号,T2时钟周期内,主设备告诉从设备,主设备要从从设备读取数据
T3的上升沿,从设备通过数据总线给出数据信号,T3时钟周期内,从从设备读取数据
T4的上升沿,数据信号和控制信号撤销
T5的下降沿,地址信号撤销
步骤分析自己进行分析,要亲自动手哦!
异步通信和同步通信相比,没有定宽定距的时钟,但是增加了两条线,一条叫请求线:用于主设备发出请求信号,另一条叫应答线:用于从设备对主设备发出的请求进行应答,如下图所示:
异步通信的三种方式一共有三种方式:不互锁、半互锁、全互锁。
不互锁:主从设备在发送信号无需等待对方确认,当自己认为对方收到信号后便开始发送下一次信号。
发送接收流程如下图:
这个过程中,主设备不论从设备是否接受到了请求信号,都会撤销请求信号,从设备不论主设备是否接受到了应答信号,都会撤销应答信号。
半互锁:主设备发送请求信号后必须收到从从设备的应答才可以撤销请求信号,存在互锁关系。而从设备发出应答信号后无需等待主设备确认即刻撤销其回答信号,不存在互锁关系。
发送接收流程如下图:
一个有趣的弹幕:
“半互锁不是双向奔赴,容易让主设备一方产生怀疑,让他失去继续发展的动力”
当年这位老哥退出文坛,我是极力反对的
全互锁:当主设备发送请求信号后必须等待从设备发送应答信号后才能撤销信号,存在互锁关系。当从设备发送应答信号后必须等待主设备确认,当收到确认信号后才能撤销信号,也存在互锁关系。双方都存在互锁关系,故称为全互锁关系。
既有同步的特征,又有异步的特征
同步的特征:
异步的特征:
以输入数据为例的半同步通信时序:
T 1 T_1 T1 主设备发地址
T 2 T_2 T2 主设备发命令
T w T_w Tw 主设备检查WAIT信号,当WAIT为低电平时,等待一个时钟周期 T T T
T w T_w Tw 主设备检查WAIT信号,当WAIT为低电平时,等待一个时钟周期 T T T
。
。
。
(直到WAIT信号变成高电平,说明从设备可以发送数据了,那么进入 T 3 T_3 T3周期,由从设备提供设备)
T 3 T_3 T3 从设备提供数据
T 4 T_4 T4 从设备撤销数据,主设备撤销命令
时序图如下:
研究一个总线传输周期(以输入数据为例):
由于第二部分,“从设备准备数据”时,总线是空闲的,我们考虑能不能把这段总线传输的空闲期利用起来,从而提高总线利用率
分离式通信:充分挖掘系统总线每个瞬间的潜力
上述两个传输子周期只有单方向的信息流,每个设备都成了主设备。
分离式通信的特点: