总线是链接多个部件的信息传输线,是各部件共享的传输介质。**总线是信号的公共传输线,各个设备都连接在一条总线,可以在总线上进行数据传输,在任何时刻都只允许一对设备在总线上进行传输。**因此总线的一个问题就是总线使用权在各个设备之间的传递问题。一条总线在同一时刻只允许有一个部件向总线发送信息,而多个部件可以同时从总线上接收相同的信息。总线实际上是由许多传输线或通路组成,每条线可一位一位的传输二进制代码,一串二进制代码可在一段时间内传输完成。
存储总线: 连接CPU和主存的总线
输入/输出总线: 连接CPU和各I/O设备之间的总线
总线上信息的传送分为串行和并行两种方式,串行传输就是信息一位一位的传输,并行传输是将要传输的信息多位放在总线上进行传输。并行传输需要多条数据线,传输距离较短,距离过长容易造成接收到的数据不一致。而串行串行则传输距离较长。
按连接部件的不同,分为三类总线:片内总线 系统总线 通信总线
指芯片内部的总线,如在CPU芯片内部,寄存器和寄存器之间,寄存器和算术逻辑单元ALU之间都由片内总线连接。
系统总线指CPU、主存、I/O设备各大部件之间的信息传输。
按系统总线传输信息的不同,又可以分为 数据总线、地址总线和控制总线
数据总线用来传输各功能部件之间的数据信息,它是双向传输总线,其位数与机器字长、存储字长有关,一般位8位、16位、32位。
**数据总线宽度:**数据总线的位数,即字长的位数。 但并不是说数据总线的宽度就一定等于机器字长的位数。通常情况下,数据总线宽度是小于等于机器字长位数。 64位的机器字长,数据总线宽度可以是8位、16位、32位、64位。
双向传输是因为有的时候需要将数据存储到CPU中,有时要将数据从CPU存储到其他设备。
地址总线主要用来指出数据总线上源数据或目的数据在主存单元的地址或I/O设备的地址。
简单的说就是地址总线用来指明源数据在主存单元中要存入的地址,以及目的数据在I/O设备中的地址。
举例:
地址总线的宽度和地址的位数有关。
控制总线是用来控制各部件在数据总线和地址总线上的实现使用权。 用来发出各种控制信号的传输线。控制总线可以是单向的,也可以是双向的。
常见的控制信号如下:
通信总线主要用于计算机系统之间或计算机系统与其他系统之间的铜线。
按传输方式可以分为两种:串行通信和并行通信
串行通信指数据在单条1位宽的传输线上,一位一位的按顺序分时发送。
1字节的信息在串行通信中要分8次从地位到高位按顺序逐次传送。
并行通信指数据在多条1位宽的传输线上,同时由源传送到目的地。
并行通信适用于近距离的数据传输,串行通信适用于远距离。 数据传输速率与距离成反比。
总线性能指标如下:
指标 | 内容 |
---|---|
总线宽度 | 通常是指数据总线的根数,用bit位表示 |
总线带宽 | 总线的传输速率,单位时间内总线上传输数据的位数,通常用每秒传输信息的字节数来衡量,单位可用MBps |
时钟同步/异步 | 总线上的数据与时钟同步工作的总线称为同步总线,与时钟不同步工作的总线称为异步总线。 |
总线复用 | 一条总线在不同时刻可以传输两种信号,就是一条总线可以当几条用。 |
信号线数 | 地址总线,数据总线、控制总线三种总线数的和 |
总线控制方式 | 突发工作,自动配置,仲裁方式。。。 |
其他指标 | 负载能力,电源电压 |
结构不断改进的目的都是为了提高运行效率
这样的总线结构会严重硬性CPU的运行效率,因为当CPU需要与主存进行信息交换时,总线使用权很容易被其他设备占用,并且当设备很多时,总线很长。
结构特点:
如图所示的双总线结构是将总线分为主存总线和/\O总线。
通道: 一种具有特殊功能的CPU,对I/O设备具有统一管理的功能,完成外部设备与主存储器之间的数据传送,系统吞吐能力可以相当大。通道有自己的控制器,指令系统,能够执行简单的指令。通道程序通常由操作系统编写,而非人工。
主存总线用于CPU和主存之间的信息传输。 I/O总线用于CPU与各类I/O设备之间传递信息。DMA总线用于高速I/O设备与主存之间直接信息交换。
三总线结构另一形式:
由于CPU的运行速度通常远大于主存的运行速度,速度差容易导致CPU等待时间过久而降低整体运行效率,所以设置了Cache缓存来解决。 Cache是小容量高速的存储器,传输系统CPU与主存之间的信息。
总线上所连接的各类设备,按其对总线有无控制功能可分为主设备(模块)和从设备(模块)两种。主设备对总线有控制权,丛设备只能响应从主设备发来的总线命令,对总线没有控制权。
总线判优控制用来决定多个设备发出总线请求时,哪个设备具有总线使用权。
总线判优控制可分集中式和分布式两种,前者将控制逻辑集中在一处(如在CPU中),后者将控制逻辑分散在与总线连接的各个部件或设备上。.
常见的几种控制优先权的仲裁方式有三种: 链式查询 计数器定时查询 独立请求方式
图中控制总线中有3根线用于总线控制(BS总线忙、BR总线请求、BC总线同意),其中总线同意信号BG是串行地从一个I/0接口送到下一个l/0接口。如果BG到达的接口有总线请求, BG信号就不再往下传,意味着该接口获得了总线使用权,并建立总线忙BS信号,表示它占用了总线。
流程: I/O设备通过BR总线发送总线请求,控制器通过BG发送反馈信息,表示同意请求。 I/O设备接收到同意信号后占用数据线和地址线,并建立总线忙BS信号,表面占用了总线。
可见在链式查询中,**离总线控制部件最近的设备具有最高的优先级。**这种方式的特点是:只需很少几根线就能按一定优先次序实现总线控制,并且很容易扩充设备,但对电路故障很敏感,且优先级别低的设备可能很难获得请求。
优点: 结构简单,要的线少。容易扩充设备。
缺点: 优先级低的设备获得总线请求的可能性低。
多了一条设备地址线,少了总线同意BG线。
总线控制部件接到由BR送来的总线请求信号后,在总线未被使用(BS=0)的情况下,总线控制部件中的计数器开始计数,并通过设备地址线.向各设备发出一组地址信号。当某个请求占用总线的设备地址与计数值一致时,便获得总线使用权,此时终止计数查询。
举例: 加入总线控制部件接收到总线请求信号后,计数器从0开始计时,此时I/O接口从0到n编号,并按顺序排列。计数器数到1时,判断第1个设备是否发送了总线请求信号,是则I/O接口设备获得总线使用权限,同时计数器停止计时。否则计时器继续往下数,直到找到发送请求的设备为止。
优点: I/O设备的优先级控制非常灵活,可以通过设置计数器计数的初值进行设定。计数器可以从上一次计数的终止点开始计数,也可以每次置0,也可以设定某个值。
独立请求方式就每个设备都有一条总线请求线BR和总线同意线BG。
优缺点非常明显,控制线数量多,总线控制非常复杂。但响应速度快,优先次序控制灵活。