写在前面:
- 本系列笔记主要以《计算机组成原理(唐朔飞)》为参考,大部分内容出于此书,笔者的工作主要是挑其重点展示,另外配合下方视频链接的教程展开思路,在笔记中一些比较难懂的地方加以自己的一点点理解(重点基本都会有标注,没有任何标注的难懂文字应该是笔者因为强迫症而加进来的,可选择性地忽略)。
一、总线的基本概念
1、概述
(1)总线是一组能为多个部件分时共享的公共信息传送线路。
①共享是指总线上可以挂接多个部件,各个部件之间互相交换的信息都可以通过这组线路分时共享,一个部件向总线发送信息时,多个部件可以同时从总线上接收相同的信息。
②分时是指同一时刻只允许有一个部件向总线发送信息,如果系统中有多个部件,则它们只能分时地向总线发送信息,否则如果两个或两个以上部件同时向总线发送信息,势必会导致信号冲突,传输无效。
(2)计算机系统的五大部件之间的互连方式有两种,一种是各部件之间使用单独的连线,称为分散连接;另一种是将各部件连到一组公共信息传输线上,称为总线连接。早期的计算机大多数采用分散连接方式,如下一图所示,它以运算器为中心,当I/O与存储器交换信息时都需经过运算器,这严重影响了CPU的工作效率,后来虽然改进为以存储器为中心的如下二图所示的分散连接结构,但仍无法解决I/O设备与主机之间连接的灵活性,于是便出现了总线连接方式。
2、总线的几种结构
(1)以CPU为中心的双总线结构:
(2)倘若将CPU、主存和I/O设备(通过I/O接口)都挂到一组总线上,便形成单总线结构:
(3)以存储器为中心的双总线结构:
二、总线的分类
1、片内总线
片内总线是指芯片内部的总线,如在CPU芯片内部,寄存器与寄存器之间、寄存器与算逻单元ALU、之间都由片内总线连接。
2、系统总线
(1)系统总线是指CPU、主存、I/O设备(通过I/O接口)各大部件的信息传输线。
(2)按系统总线传输信息的不同,又可将其分为数据总线、地址总线和控制总线。
①数据总线用来传输各功能部件之间的数据信息,它是双向传输总线,其位数与机器字长、存储字长有关,一般为8位、16位或32位。数据总线的位数称为数据总线宽度,它是衡量系统性能的一个重要参数,如果数据总线的宽度为8位,指令字长为16位,那么CPU在取指阶段必须两次访问主存。
②地址总线主要用来指出数据总线上的源数据或目的数据在主存单元的地址或I/O设备的地址,它是单向传输总线,其位数与存储单元的个数有关,如地址线为20根,则对于的存储单元个数为。
③控制总线是各种控制信号的传输线,对CPU而言,控制信号既有输出又有输入,因为控制总线传输的是控制信息,包括CPU送出的控制命令和主存(或外设)返回CPU的反馈信号(需要说明的是,控制总线的每一根都是单向的,但从整体看,它有输入也有输出)。常见的控制信号如下:
[1]时钟:用来同步各种操作。
[2]复位:初始化所有部件。
[3]总线请求:表示某部件需获得总线使用权。
[4]总线允许:表示需要获得总线使用权的部件已获得了控制权。
[5]中断请求:表示某部件提出中断请求。
[6]中断响应:表示中断请求已被接收。
[7]存储器写:将数据总线上的数据写至存储器的指定地址单元内。
[8]存储器读:将指定存储单元中的数据读到数据总线上。
[9]I/O读:从指定的I/O端口将数据读到数据总线上。
[10]I/O写:将数据总线上的数据输出到指定的I/O端口内。
[11]传输响应:表示数据已被接收,或已将数据送至数据总线上。
3、通信总线
(1)通信总线也称为外部总线,用于计算机系统之间或计算机系统与其它系统(如控制仪表、移动通信等)之间的通信,按数据传输格式可分为串行总线和并行总线。
①串行总线:它采用的是串行通信,数据在单条1位宽的传输线上一位一位地按顺序分时传送,如1字节的数据在串行传送中要通过一条传输线分8次由低位到高位按顺序逐位传送。
[1]优点:只需要一条传输线,成本低廉,广泛应用于长距离传输,应用于计算机内部时还可以节省布线空间。
[2]缺点:在数据发送和接收的时候要进行拆卸和装配,要考虑串行并行转化的问题。
②并行总线:它采用的是并行通信,数据在多条并行1位宽的传输线上同时由源传送到目的地,如1字节的数据在并行传送中要通过8条并行传输线同时由源传送到目的地。
[1]优点:总线的逻辑时序比较简单,电路实现起来比较容易。
[2]缺点:信号线数量多,对布线空间的占用大,远距离传输的成本高昂,另外当工作频率较高时,并行的信号线之间会产生严重干扰,对每条线等长的要求也越高,以至于无法持续提高工作效率。
(2)因为并行信号线之间可能存在干扰,所以并行总线传输的速度不一定比串行总线快。
三、总线特性及性能指标
1、总线特性
(1)机械特性:指总线在机械连接方式上的一些性能。如它们的几何尺寸、形状、引脚的个数以及排列的顺序、接头处的可靠接触等。
(2)电气特性:指总线的每一根传输线上信号的传递方向和有效的电平范围。通常规定由CPU发出的信号称为输出信号,送入CPU的信号称为输入信号,例如地址总线属于单向输出线,数据总线属于双向输出线,它们都定义高电平为“1”、低电平为“0”。
(3)功能特性:指总线中每根传输线的功能。例如地址总线用来指出地址码,数据总线用来传递数据,控制总线传递控制信号。
(4)时间特性:指总线中的任一根线在什么时间内有效。每条总线上的各种信号互相存在一种有效时序的关系,因此时间特性一般可用信号时序图来描述。
2、总线的性能指标
(1)总线宽度:通常是指数据总线的根数,又称总线位宽,也是总线上同时能够传输的数据位数,用bit(位)表示。
(2)总线带宽:可理解为总线的数据传输速率,即单位时间内总线上传输数据的位数,通常用每秒传输信息的字节数来衡量,单位可用MBps(兆字节每秒)表示。
(3)时钟同步/异步:总线上的数据与时钟同步工作的总线称为同步总线,与时钟不同步工作的总线称为异步总线。
(4)总线复用:一条信号线上分时传送两种信号。为了提高总线的利用率,特将地址总线和数据总线共用一组物理线路,在这组物理线路上分时传输地址信号和数据信号,即为总线的多路复用。
(5)信号线数:地址总线、数据总线和控制总线三种总线数的总和。
(6)总线控制方式:包括突发工作、自动配置、仲裁方式、逻辑方式、计数方式等。
(7)负载能力:即驱动能力,指当总线接上负载后,总线输入输出的逻辑电平是否能保持在正常的额定范围内。
(8)传输周期(总线周期):一次总线操作所需的时间,包括申请阶段、寻址阶段、传输阶段和结束阶段,通常由若干个总线时钟周期构成。
(9)时钟周期:即机器的时钟周期,计算机有一个统一的时钟以控制整个计算机的各个部件,总线也要受此时钟的控制。
(10)工作频率:总线上各种操作的频率是总线周期的倒数,实际上指一秒内传送几次数据。
(11)时钟频率:即机器的时钟频率,为时钟周期的倒数,实际上指一秒内有多少个时钟周期。
3、总线标准
(1)所谓总线标准,可视为系统与各模块、模块与模块之间的一个互连的标准界面,这个界面对它两端的模块都是透明的,即界面的任一方只需根据总线标准的要求完成自身一方接口的功能要求,而无需了解对方接口与总线的连接要求。
(2)总线标准的发展趋势:串行总线替代并行总线。
①并行总线:用m根线每次传送m个比特,用高/低电平表示I/O,通常采用同步定时方式,由于线间信号干扰,因此总线工作频率不能太高,另外各条线不能有长度差,长距离并行传输时工艺难度大。
②串行总线:用两根线每次传送一个比特,采用“差模信号”表示I/O,通常采用异步定时方式,总线工作频率可以很高。现在的串行总线通常基于包传输,如80bit为一个数据包,包与包之间有先后关系,因此可以用多个数据通路分别串行传输多个数据包,因此某种程度上现在的串行总线也有“并行”的特点。
(3)截止2022年,流行的总线标准有以下几种:
总线标准 | 数据线位数 | 总线时钟 | 带宽 |
ISA | 16 | 8MHz(独立) | 16MBps |
EISA | 32 | 8MHz(独立) | 33MBps |
VESA(VL-BUS) | 32 | 32MHz(CPU) | 132MBps |
PCI | 32 | 33MHz(独立) | 132MBps |
64 | 66MHz(独立) | 528MBps | |
AGP | 32 | 66.7MHz(独立) | 266MBps |
133MHz(独立) | 533MBps | ||
RS-232 | 串行通信总线标准 | ||
USB | 串行接口总线标准 |