总线
总线
总线基本概念
总线的定义
总线是一组由多个部件分时共享的公共信息传送线路,具有两个特点:
- 分时:在同一时刻,系统中只能有一个部件向总线发送信息。如果系统中有多个部件,信息发送需要通过分时控制。
- 共享:总线可直接连接多个部件,允许各个部件之间相互交换信息。所有部件通过共享的总线结构,可以在分时的情况下访问和传输相同的信息。
总线设备
根据总线控制功能的不同,总线所连接的设备可以分为主设备和从设备两类:
-
主设备:
- 指拥有总线控制权的设备。
- 主设备负责控制总线的运行,例如发起数据传输命令、读取或写入数据等。
-
从设备:
- 指被主设备访问的设备。
- 从设备接收主设备发送的指令,并作出相应的响应。例如,根据主设备的命令执行数据读取或写入操作。
总线特性
-
机械特性:
- 指总线的尺寸、形状等物理特性。
-
电气特性:
- 指总线的传输方向和有效的电平范围。例如电压水平、信号传输的方向等。
-
功能特性:
- 描述总线中每根传输线路的具体功能。例如数据传输、地址传输、控制信号传输等。
-
时间特性:
- 描述信号与时序之间的关系,主要包括信号的发送、接收以及与时序的配合。
以看出总线在系统中起到了信息传输和资源共享的重要作用。不同设备通过总线实现数据交换,而总线的特性决定了信息传输的规范和性能。
总线分类
1. 片内总线
- 定义:片内总线是芯片内部的总线。
- 作用:主要用于连接CPU芯片内部各部件之间,例如寄存器与存储器之间,寄存器与算术逻辑单元(ALU)之间的公共连接线路。
2. 系统总线
- 定义:系统总线是计算机系统内各个功能部件(如CPU、主存、I/O接口)之间相互连接的总线。
- 分类:系统总线根据传输信息内容的不同,可分为数据总线、地址总线和控制总线。
1. 数据总线
-
传输数据
-
作用:传输各功能部件之间的数据信息,支持双向传输。
-
特点:数据总线的位数与机器字长和存储字长有关。
2. 地址总线
-
传输地址
-
作用:指出数据源或数据目的的地址,如主存单元或I/O端口的地址。
-
特点:地址总线是单向传输线,其位数决定了主存地址空间的大小。
3. 控制总线
-
传输控制信号和时序信号
-
作用:传输控制信息,包括:
-
CPU发送的控制命令。
-
主存或外设返回给CPU的反馈信号。
-
数据总线传输数据,地址总线指定数据的传输位置,控制总线负责控制与协调数据传输。
功能部件之间通过数据总线连接形成的数据传输路径称为数据通路。
3. I/O总线
- 定义:I/O总线是用于连接低速或高速I/O设备的总线。
- 作用:通过I/O接口将I/O设备与系统总线连接,从而提升外部设备的数据传输性能。
- 常见实例:USB总线,PCI总线
4. 通信总线
-
连接计算机之间或其他设备的总线。
-
定义:通信总线是计算机系统与其他系统(例如远程通信设备、测试设备)之间传送信息的总线。
-
别称:通信总线也称为外部总线。
系统总线的结构
1. 单总线结构
定义:单总线结构将CPU、主存、I/O设备(通过I/O接口连接)挂接在一组公共总线上,允许设备之间进行信息交换。
-
优点:
-
结构简单:系统设计简单,连接设备较为容易。
-
成本低:减少了硬件成本。
-
易于扩展:便于接入新的设备,适合小型系统。
-
-
缺点:
-
带宽低:由于所有设备共享同一条总线,传输速度受到限制。
-
负载重:多个设备需要争用总线,导致总线负载较高。
-
不支持并发传输:设备之间无法同时进行数据传输,只能依次进行。
-
2. 双总线结构
定义:双总线结构包含两条总线,主存总线和I/O总线。
-
主存总线:
-
用于CPU与主存之间的数据传输。
-
负责高速数据交换,确保CPU与主存之间的通信效率。
-
-
I/O总线:
-
用于多个外部设备与通道之间进行数据传输。
-
I/O总线将外设与系统分离,减少对主存总线的占用。
-
优点
-
分离低速I/O设备:将低速I/O设备从主总线上分离,避免影响CPU与主存之间的数据传输性能。
-
实现分离设计:存储器总线和I/O总线分离,提高系统的整体性能。
缺点
-
增加硬件需求:需要额外增加通道等硬件设备,使系统结构更复杂。
-
成本提升:由于硬件需求增多,系统的成本相较于单总线有所增加。
双总线结构通过将主存总线与I/O总线分离,解决了单总线结构中的带宽瓶颈问题,提高了数据传输效率。
主存总线:保证CPU与主存的高速通信。
I/O总线:专用于低速外部设备的数据传输。
1. 面向CPU的双总线结构
以CPU为中心,CPU和IO之间进行数据交换有IO总线,CPU和主存交换数据有存储总线
缺点:当IO和主存进行数据交换的时候,还需要经过CPU,会降低CPU的利用效率
2. 向存储器的双总线结构
可以看到其是在单总线结构上又添加了CPU和主存之间的数据传输通道,相当于所有的设备之间都有数据通路,降低了系统总线的负担,而且IO和主存之间的信息交互不需要经过CPU
缺点:部分速度慢的IO会降低系统总线的利用效率
3. 双总线结构将速度低的IO设备从总线上分离
没有了速度低的IO设备对主存总线的拖累吗,CPU和主存之间的数据传输通路也被取消,主存总线的传输速度已经够快了
3. 三总线结构
1. DMA总线之后的三总线结构
定义:三总线结构是指计算机系统各个部件之间通过3条各自独立的总线实现信息传输。
结构:主存总线,I/O总线,直接内存访问 (DMA) 总线
-
三条总线的功能:
-
主存总线:
- 用于CPU和内存之间传输地址、数据和控制信息。
- 主要用于高效的数据读取与写入操作,保证CPU与主存之间的高速通信。
-
I/O总线:
-
用于CPU与外设之间传输数据和控制信号。
-
通过I/O接口与外设(如打印机、磁盘机、显示器等)进行通信。
-
-
DMA总线(直接内存访问总线):
-
用于内存和高速外设之间进行直接数据传输。
-
DMA可以绕过CPU,直接进行数据交换,提高了系统数据传输速度。
-
-
-
优点:
-
提升I/O设备性能:
- DMA总线支持外设和内存之间的直接通信,减少了CPU的负担,提高了数据传输效率。
-
系统吞吐量提高:
- 三条独立的总线并行工作,避免了总线争用,提高了整体系统的吞吐量。
-
快速响应外设请求:
- I/O总线和DMA总线的分离使得外设可以更快地响应命令。
-
-
缺点:
-
系统结构复杂:
- 三条独立总线需要额外的硬件支持,增加了系统的设计复杂度和成本。
-
效率相对较低:
- 系统内部各个总线的协调与管理需要额外的开销,可能导致系统效率有所降低。
-
三总线结构通过主存总线、I/O总线和DMA总线的分工协作,提升了数据传输性能和系统吞吐量,特别适用于需要处理大量数据的场景。但系统设计和硬件实现较为复杂,适用于中大型计算机系统。
2. 加入了Cache,引入了拓展总线接口
Cache利用了计算机程序执行的空间局部性和时间局部性(你写的代码运行时只是在运行局部,你打游戏也是一样,到新的区域再加载),索引数据、指令更快,提高运行效率。拓展接口方便各类IO设备的拓展和连接。
总线的性能指标
-
总线传输周期:指一次总线操作所需的时间,申请阶段,寻址阶段,传输阶段,结束阶段,总线传输周期通常由多个总线时钟周期组成。
-
总线时钟周期:
-
定义:即时钟的基本周期。
-
作用:计算机使用统一的时钟来协调各个部件的操作,总线也需要受此时钟控制。
-
-
总线工作频率:
-
定义:总线上的各种操作的频率,是总线周期的倒数。
-
公式:
总线工作频率 = 时钟频率 / N,其中 N 为总线的周期数
-
- 实例:若1秒内传送N次数据,则总线周期为 1/N。
-
总线时钟频率
-
定义:即时钟的工作频率,表示为时钟周期的倒数。
-
时钟频率决定了系统的整体工作速度。
-
-
总线宽度
-
定义:又称为总线位宽,表示总线上同时能够传输的数据位数。
-
数据总线的根数与数据位宽对应,如32根数据线即为32位总线。
-
-
总线带宽
-
定义:表示总线上单位时间内可传输的最大数据量(位数或字节数)。
-
单位:通常用字节/秒 (B/s) 表示。
-
公式:
总线带宽=总线工作频率×(总线宽度/8) -
注意:总线带宽与总线宽度和总线频率成正比。
-
-
总线复用:
-
定义:指同一根信号线在不同时间传输不同的信息。
-
优点:减少总线线数,节省空间和成本。
-
缺点:增加总线控制的复杂度,可能影响传输效率。
-
-
信号线参数:
-
分类:地址总线,数据总线,控制总线
-
主要性能指标:
-
总线宽度:决定总线一次传输的数据位数。
-
总线频率(工作频率):表示总线的操作速度。
-
总线带宽:表示总线上单位时间内最大数据传输量。
总线带宽=总线宽度×总线频率 -
-
示例:
-
总线工作频率为 22MHz,
-
总线宽度为 16位,
-
则总线带宽:
总线带宽=22×(16/8)=44MB/s -
-
总线的性能指标包括:
传输周期 和 时钟周期:表示操作所需时间和时钟的基本单位。
工作频率 和 时钟频率:决定总线操作速度。
总线宽度 和 总线带宽:衡量数据传输能力。
复用:减少信号线数量,降低成本。
信号线参数:总线的工作频率、宽度和带宽共同影响系统性能。
总线控制
总线判优控制
1. 链式查询方式
由总线授权线(BG)串行查询 I/O 接口是否发送总线请求,当到达的接口有总线请求则该设备获得总线控制权。
特点:离中央仲裁器最近的设备具有最高优先权,离总线控制器越远,优先权越低。
优点:实现总线控制的线数量少,容易扩充设备
缺点:对电路故障很敏感:如果仲裁器或链路发生故障,可能导致信号无法传递给其他设备,这是链式查询方式的主要缺点之一。 优先级固定:设备距离仲裁器越近,优先权越高,因为它更早接收到授权信号
2. 计数器定时查询方式
计数器开始计数后,将计数值通过一组地址线发送向各设备,当地址线上计数值与请求总线的设备地址相一致时,该设备获得总线使用权。
-
优点:
-
可灵活改变优先次序(优先级)。
- 如果计数器从 0 开始,则与链式查询优先次序相同。
- 如果计数器从终止点开始,则每个设备优先级相等。
- 程序可以通过设置计数器初值,决定什么设备优先级最高。
-
-
缺点:
- 以增加控制线数为代价:需要额外的地址线来传递计数值。适用于需要动态调整优先级的场景。
3. 独立查询方式
每个设备均有一对 BR(请求线)和 BG(授权线),总线仲裁器的排队电路根据一定优先次序决定首先响应哪个设备的请求。
优点:
- 响应速度快:仲裁器能快速确定优先设备,无需逐一查询所有设备。
- 优先级灵活:通过调整仲裁器中的优先规则,可以动态更改设备优先级。
缺点:
- 以增加硬件电路和控制线数量为代价。
- 硬件开销大:每个设备需要独立的请求线和授权线,随着设备数量增加,硬件复杂度也会增加。
- 增加处理器开销
总线的通信控制
总线事务
从请求总线到完成总线使用的操作序列称为总线事务,它是在一个总线周期中发生的一系列活动。典型的总线事务包括请求操作、仲裁操作、地址传输、数据传输和总线释放。以下是总线事务的主要阶段:
-
请求阶段
主设备(如 CPU 或 DMA)发出总线传输请求,并获得总线控制权。 -
仲裁阶段
总线仲裁机构决定将下一个传输周期的总线使用权授予某个申请者。 -
寻址阶段
主设备通过总线给出要访问的从设备地址及有关命令,启动从模块。 -
传输阶段
主模块和从模块进行数据交换,可单向或双向进行数据传送。 -
释放阶段
主模块传输的所有信息均从系统总线上撤除,释放总线使用权。
在总线事务的传输阶段中,主从设备之间一般只能传输一个字长的数据:
- 突发(爆发)传送:能够进行连续成组数据的传送,其寻址阶段发出的是连续数据单元的首地址。在传输阶段传送多个连续字长的数据,每个时钟周期可以传送一个字长的信息。完成一组数据传输后再释放总线。
同步定时方式
定义:同步定时方式是指系统采用一个统一的时钟信号来协调发送方和接收方之间的传送定时关系。
- 时钟信号产生相等的时间间隔,每个间隔构成一个总线周期。
- 在一个总线周期内,发送方和接收方可以进行一次数据传送。
- 由于采用统一的时钟,每个部件或设备会按发送或接收信息的固定总线传送周期操作。
- 一个总线传送周期结束后,下一个总线的传送周期开始。
优点
- 传送速度快:同步定时方式具有较高的传输速率。
- 设计简洁:总线控制逻辑相对简单。
缺点
- 灵活性较差:从设备需要强制性配合主设备的时钟信号。
- 可靠性有限:不能应对传输过程中的有效性检验,可扩展性较差。
- 时间依赖性高:适用于总线长度较短及总线所接部件存取时间较均匀的系统。
异步定时方式
定义:在异步定时方式中,没有统一的时钟信号,也没有固定的时间间隔。
- 特点:完全依靠传送双方相互协调进行数据传输。
具体操作机制:异步定时方式利用握手信号实现定时控制
- 数据交换信息的两端设备分为主设备和从设备。
- 主设备提出交换信息的“请求”信号,通过总线传送到从设备。
- 从设备接收到主设备请求后,返回“回答”信号,通过接口传送回主设备。
优点
- 灵活性高:总线周期长度可变,能保证两个工作速度相差较大的部件或设备之间进行可靠的信息交换。
- 自动适应:系统能够根据设备的性能和响应情况自动适应时间间隔。
缺点
- 控制复杂:比同步定时方式复杂。速度比同步定时方式慢。
异步定时方式的具体机制
-
不互锁方式
- 主设备发出“请求”信号后,不等待从设备返回“回答”信号,而是经过一段时间后撤销“请求”信号。
- 从设备在接收到“请求”信号后,立即发出“回答”信号,但不存在互锁关系。
-
半互锁方式
- 主设备发出“请求”信号后,必须在收到从设备返回的“回答”信号后才撤销“请求”信号。
- 双方存在部分同步关系。
-
全互锁方式
- 主设备发出“请求”信号后,必须在收到从设备的“回答”信号后,撤销“请求”信号。
- 从设备在撤销“回答”信号后,主设备才能完成下一步操作。
- 双方存在完整的互锁关系。