LV002-总线的分类
总线的应用很广泛,从不同角度可以有不同的分类方法。按数据传送方式可分为并行传输总线和串行传输总线。在并行传输总线中,又可按传输数据宽度分为 8 位、16 位、32 位、64 位等传输总线。若按总线的使用范围划分,则又有计算机(包括外设)总线、测控总线、网络通信总线等。下面按连接部件不同,介绍三类总线。
一、片内总线
片内总线是指芯片内部的总线, 如在 CPU 芯片内部, 寄存器与寄存器之间、寄存器与算逻单元 ALU 之间都由片内总线连接。
二、系统总线
系统总线是指 CPU、主存、I/O 设备(通过 I/O 接口)各大部件之间的信息传输线。由于这些部件通常都安放在主板或各个插件板(插卡)上, 故又称板级总线(在一块电路板上各芯片间的连线)或板间总线。
按系统总线传输信息的不同, 又可分为三类: 数据总线、地址总线和控制总线。
1. 数据总线
数据总线用来传输各功能部件之间的数据信息, 它是双向传输总线, 其位数与机器字长、存储字长有关, 一般为 8 位、16 位或 32 位。数据总线的位数称为数据总线宽度, 它是衡量系统性能的一个重要参数。如果数据总线的宽度为 8 位, 指令字长为 16 位, 那么, CPU 在取指阶段必须两次访问主存。
2. 地址总线
地址总线主要用来指出数据总线上的源数据或目的数据在主存单元的地址或 I/O 设备的地址。例如, 欲从存储器读出一个数据, 则 CPU 要将此数据所在存储单元的地址送到地址线上。又如, 欲将某数据经 I/O 设备输出, 则 CPU 除了需将数据送到数据总线外, 还需将该输出设备的地址(通常都经 I/O 接口)送到地址总线上。可见, 地址总线上的代码是用来指明 CPU 欲访问的存储单元或 I/O 端口的地址, 由 CPU 输出, 单向传输。
地址线的位数与存储单元的个数有关, 如地址线为 20 根,则对应的存储单元个数为 2^20。
3. 控制总线
由于数据总线、地址总线都是被挂在总线上的所有部件共享的,如何使各部件能在不同时刻占有总线使用权,需依靠控制总线来完成,因此控制总线是用来发出各种控制信号的传输线。通常对任一控制线而言,它的传输是单向的。例如,存储器读/写命令或 I/O 设备读/写命令都是由 CPU 发出的。但对于控制总线总体来说,又可认为是双向的。例如,当某设备准备就绪时,便向 CPU 发中断请求;当某部件(如 DMA 接口)需获得总线使用权时,也向 CPU 发出总线请求。此外,控制总线还起到监视各部件状态的作用。例如,查询该设备是处于 "忙" 还是 "闲",是否出错等。因此对 CPU 而言,控制信号既有输出,又有输入。
常见的控制信号如下。
- 时钟:用来同步各种操作。
- 复位:初始化所有部件。
- 总线请求:表示某部件需获得总线使用权。
- 总线允许:表示需要获得总线使用权的部件已获得了控制权。
- 中断请求:表示某部件提出中断请求。
- 中断响应:表示中断请求已被接收。
- 存储器写:将数据总线上的数据写至存储器的指定地址单元内。
- 存储器读:将指定存储单元中的数据读到数据总线上。
- I/O 读:从指定的 I/O 端口将数据读到数据总线上。
- I/O 写:将数据总线上的数据输出到指定的 I/O 端口内。
- 传输响应:表示数据已被接收,或已将数据送至数据总线上。
三、通信总线
这类总线用于计算机系统之间或计算机系统与其他系统(如控制仪表、移动通信等)之间的通信。由于这类联系涉及许多方面,如外部连接、距离远近、速度快慢、工作方式等,差别极大,因此通信总线的类别很多。但按传输方式可分为两种:串行通信和并行通信。
串行通信是指数据在单条 1 位宽的传输线上,一位一位地按顺序分时传送。如 1 字节的数据,在串行传送中,1 字节的数据要通过一条传输线分 8 次由低位到高位按顺序逐位传送。
并行通信是指数据在多条并行 1 位宽的传输线上,同时由源传送到目的地。如 1 字节的数据,在并行传送中,要通过 8 条并行传输线同时由源传送到目的地。
并行通信适宜于近距离的数据传输,通常小于 30m;串行通信适宜于远距离传送,可以从几米到数千千米。而且,串行和并行通信的数据传送速率都与距离成反比。在短距离内,并行数据传送速率比串行数据传送速率高得多。随着大规模和超大规模集成电路的发展,逻辑器件的价格趋低,而通信线路费用趋高,因此对远距离通信而言,采用串行通信费用远比并行通信费用低得多。此外串行通信还可利用现有的电话网络来实现远程通信,降低了通信费用。