本文介绍计算机硬件结构中第一部分的内容:系统总线。由于篇幅原因,会分为上、下两篇文章。
1. 总线介绍
1.1 定义
总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线。总线是一种内部结构,它是 cpu、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。
比如输入、输出设备通过总线连接 CPU。
1.2 作用
解决不同设备之间的通信问题。
1.3 思考:为什么要引入总线?🤔
因为早期的计算机大多采用的是分散的连接方式,它是以运算器为中心的结构,内部连线十分复杂(每次新增一个输入设备,都需要单独连接到存储器、运算器和控制器),尤其是当 I/O 与存储器交换信息时,都需经过运算器,致使运算器停止运算,严重影响了 CPU 的工作效率。
而加入总线后,输入、输出设备可以直接连接到总线上,由总线来由 CPU 交互,这样计算机整个线路结构就变得更加清晰,CPU 的效率也更高。
2. 总线的分类
2.1 片内总线
片内总线是指芯片内部的总线,如在 CPU 芯片内部,寄存器与寄存器之间、寄存器与算逻单元 ALU 之间都由 片内总线连接。
2.2 系统总线
系统总线是指 CPU、主存、IO 设备(通过I/O接口)各大部件之间的信息传输线。由于这些部件通常都安放在主板或各个插件板(插卡)上,故又称板级总线(在一块电路板上各芯片间的连线)或板间总线。
系统总线的分类:
- 数据总线
- 地址总线
- 控制总线
2.2.1 数据总线
数据总线用来传输各功能部件之间的数据信息,它是双向传输总线,其位数与机器字长、存储字长有关,一般为 8 位、16 位或 32 位。数据总线的位数称为数据总线宽度,它是衡量系统性能的一个重要参数。
2.2.2 地址总线
地址总线主要用来指出数据总线上的源数据或目的数据在主存单元的地址或 I/O 设备的地址。
例如,欲从存储器读出一个数据,则 CPU 要将此数据所在存储单元的地址送到地址线上。
又如,欲将某数据经 I/O 设备输出,则 CPU 除了需将数据送到数据总线外,还需将该输出设备的地址(通常都经 I/O 接口)送到地址总线上。
可见,地址总线上的代码是用来指明 CPU 欲访问的存储单元或 I/O 端口的地址,由 CPU 输出,单向传输。
地址线的位数与存储单元的个数有关,如地址线为 20 根,则对应的存储单元个数为 220。
2.2.3 控制总线
由于数据总线、地址总线都是被挂在总线上的所有部件共享的,如何使各部件能在不同时刻占有总线使用权,需依靠控制总线来完成,因此控制总线是用来发出各种控制信号的传输线。
通常对任一控制线而言,它的传输是单向的。例如,存储器读/写命令或 I/O 设备读/写命令都是由 CPU 发出的。
但对于控制总线总体来说,又可认为是双向的。例如,当某设备准备就绪时,便向 CPU 发中断请求;当某部件(如 DMA 接口)需获得总线使用权时,也向 CPU 发出总线请求。
此外,控制总线还起到监视各部件状态的作用。例如,查询该设备是处于“忙”还是“闲”,是否出错等。因此对 CPU 而言,控制信号既有输出,又有输入。
常见的控制信号如下:
- 时钟:用来同步各种操作。
- 复位:初始化所有部件。
- 总线请求:表示某部件需获得总线使用权。
- 总线允许:表示需要获得总线使用权的部件已获得了控制权。
- 中断请求:表示某部件提出中断请求。
- 中断响应:表示中断请求已被接收。
- 存储器写:将数据总线上的数据写至存储器的指定地址单元内。
- 存储器读:将指定存储单元中的数据读到数据总线上。
- I/O读:从指定的I/O端口将数据读到数据总线上。
- I/O写:将数据总线上的数据输出到指定的I0端口内。
- 传输响应:表示数据已被接收,或已将数据送至数据总线上。
2.3 通信总线
这类总线用于计算机系统之间或计算机系统与其他系统(如控制仪表、移动通信等)之间的通信。
由于这类联系涉及许多方面,如外部连接、距离远近、速度快慢、工作方式等,差别极大,因此通信总线的类别很多。
但按传输方式可分为两种串行通信和并行通信。
串行通信是指数据在单条 1 位宽的传输线上,一位一位地按顺序分时传送。如 1 字节的数据,在串行传送中,1字节的数据要通过一条传输线分 8 次由低位到高位按顺序逐位传送。
并行通信是指数据在多条并行 1 位宽的传输线上,同时由源传送到目的地。如 1 字节的数据,在并行传送中,要通过 8 条并行传输线同时由源传送到目的地。
并行通信适宜于近距离的数据传输,通常小于 30m;串行通信适宜于远距离传送,可以从几米达数千公里。
而且,串行和并行通信的数据传送速率都与距离成反比。在短距离内,并行数据传送速率比串行数据传送速率高得多。
随着大规模和超大规模集成电路的发展,逻辑器件的价格趋低,而通信线路费用趋高,因此对远距离通信而言,采用串行通信费用远比并行通信费用低得多。
此外,串行通信还可以利用现有的电话网络来实现远程通信,降低了通信费用。
3. 附录
附上计算机组成原理的知识体系: