总线(BUS)
总线(BUS)概念
连接计算机系统各个功能部件的信息传输线。是各个部件共享数据及信息的传输介质,用来连接计算机系统各功能部件而构成一个完整系统。
实际上是一组信号线。
广义地讲,任何连接两个以上电子元器件的导线都可以称为总线。
计算机各部件之间的两种连接方式
- 分散连接
各部件之间使用单独的连线连接起来,数量庞大,系统难以扩展,结构复杂。
- 总线连接
将各部件连接到一组公共信息传输线上。
总线特点
- 信息传输
总线实际上是由许多传输线或通路组成的,每条线可一位一位地传输二进制代码,一串二进制代码可在一段时间内逐一传输完成。若干条传输线可以同时传输若干位二进制代码。
串行:每条线一位接一位的传输二进制代码,一串二进制代码可在一段时间内逐一传输完成。
并行:若干条传输线可以同时传输若干位二进制代码,如,16条传输线组成的总线可同时传输16位二进制代码。
- 共享
总线是连接多个部件的信息传输线,是各部件共享的传输介质。
- 分时(总线上信息传输的特征)
在某一时刻,只允许有一个部件向总线发送信息,而多个部件可以同时从总线上接收相同的信息。
总线由总线控制器管理,总线控制器的主要功能有总线系统的资源管理、总线系统的定时及总线的仲裁和连接。
系统总线结构简单举例
单总线结构
单总线结构将 CPU、主存、I/O 设备(通过 I/O 接口)都挂到一组总线上,允许 I/O 设备之间、I/O 设备与主存之间直接交换信息。
单总线结构的优缺点
- 优点:结构简单,允许 I/O 设备之间或 I/O 设备与主存之间直接交换信息,I/O设备与主存交换信息时,原则上不影响CPU的工作,只须 CPU分配总线使用权,不需要 CPU 干预信息的交换,CPU工作效率有所提高。
- 缺点:由于全部系统部件都连接在一组总线上,各部件都要同时占用时,会发生冲突,总线的负载很重,可能使其吞吐量达到饱和甚至不能胜任的程度,所以需要设置总线判优逻辑,按照优先级高低来占用总线,影响整机工作速度。故大多为小型机和微型机采用。
双总线结构——以CPU为中心
- 存储总线(M总线):连接内存与CPU的总线。
- 输入/输出总线(I/O总线):连接CPU与输入/输出设备的总线。
特点:
I/O设备与内存交换信息时,需要占用CPU,因此会影响CPU的工作效率。
双总线结构——以存储器为中心
特点:
保留了内存与I/O设备间传输信息不经过CPU的特点,既提高了内存与I/O设备间的传输速率,减轻了系统总线的负担。
现代计算机系统大多采用此类总线结构。
总线分类
按传输方式分类
串行传输总线
并行传输总线
-
-
- 8位并行传输总线。
- 16位并行传输总线。
- 32位并行传输总线。
- 64位并行传输总线等。
-
按使用范围分类
-
-
- 计算机总线
- 测控总线
- 网络通信总线
-
按连接部件不同分类
-
-
- 片内总线,又称芯片内总线。
-
用于集成电路芯片内部各部分的连接。
如CPU内部寄存器与寄存器之间、寄存器与算术逻辑单元ALU之间都由片内总线连接。
-
-
- 系统总线(System Bus),又称内总线。
-
用于计算机各组成部分(CPU、内存、I\O接口等)之间的信息传输。
CPU通过系统总线对存储器的内容进行读写,同样经过系统总线,实现将CPU内数据写入外设,或由外设读入CPU。
-
-
- 元件级总线。
-
用于一块电路板内各元器件的连接。
-
-
- 通信总线,又称外总线。
-
用于计算机与外设或计算机与计算机之间的连接或通信。
系统总线按传输信息的不同分类
所传输的信息 | 传输方向 | 说明 | |
数据总线 | 传输各功能部件之间的数据信息。 | 双向传输 | 其位数称为数据总线宽度,与机器字长、存储字长有关,一般为 8 位、16 位或 32 位。 |
地址总线 | 用于指出数据总线上的源数据或目的数据在主存单元的地址或 I/O设备的地址, 也就是说地址总线上的代码用来指明 CPU 欲访问的存储单元或I/O端口的地址。 |
由CPU输出,单向传输。 |
地址总线的位数与存储单元的个数有关,如地址线为 20 根,则对应的存储单元个数为 220个。 |
控制总线 | 用于发出各种控制信号,控制各部件动作。 | 通常对任一控制线而言,它的传输是单向的,如存储器读/写命令都是由 CPU 发出的; 但对控制总线总体而言,又可认为是双向的, 如当某设备准备就绪时,便可通过控制总线向 CPU 发送中断请求。 |
常用的控制信号有: 时钟:同来同步各种操作。 复位:初始化所有部件。 总线请求:表示某部件需获得总线使用权。 总线允许:表示需要获得总线使用权的部件已获得了控制权。 中断请求:表示某部件提出中断请求。 中断响应:表示中断请求已被接收。 存储器写:将数据总线上的数据写入存储器的指定存储单元中。 存储器读:将指定存储单元中的数据读到数据总线上。 I/O读:从指定的I/O端口将数据读到数据总线上。 I/O写:将数据总线上的数据输出到指定的I/O端口。 传输响应:表示数据已被接收,或已将数据送至数据总线上。 |