计算机组成原理-Part6
计算机组成原理-Part6——总线
[TOC]
总线概述
基本概念
- 总线是一组能为多个部件分时共享的公共信息传送线路。
- 同一时刻只能有一个设备控制总线传输操作,可以有一个或多个设备从总线接收数据。
- 特点:
- 共享:指总线上可以挂接多个部件,各个部件之间互相交换的信息都可以通过这组线路分时共享。
- 分时:指同一时刻只允许有一个部件向总线发送信息,如果系统中有多个部件,则它们只能分时地向总线发送信息。
- 特性:
- 机械特性:尺寸、形状、管脚数、排列顺序
- 电气特性:传输方向(数据双向、地址/控制单向)和有效的电平范围(高电平、低电平的定义范围)
- 功能特性:每根传输线的功能(地址、数据、控制)
- 时间特性:信号的时序关系
- 数据通路描述的是数据的路径,是逻辑上的概念。数据总线是承载数据的物理载体,地址总线一样可以成为数据通路的一部分。
总线分类(重点)
- 按数据传输格式:
- 串行总线
- 优点:1. 只需要一条传输线,成本低廉,广泛应用于长距离传输;2. 不容易发生跳变;3. 应用于计算机内部时,可以节省布线空间。
- 缺点:1. 在数据发送和接收的时候要进行拆卸和装配,要考虑串行-并行转换的问题。
- 并行总线
- 优点:1. 总线的逻辑时序比较简单,电路实现起来比较容易。
- 缺点:1. 信号线数量多,占用更多的布线空间;2. 远距离传输成本高昂;3. 由于工作频率较高时,并行的信号线之间会产生严重干扰,对每条线等长的要求也越高,所以无法持续提升工作频率。
- 并行总线传输速度一定比串行总线快,是错误的。
- 串行总线
- 按总线功能(连接的部件):
- 片内总线
- 片内总线是芯片内部的总线。
- 是 CPU 芯片内部寄存器与寄存器之间、寄存器与 ALU 之间的公共连接线。
- 系统总线
- 系统总线是计算机系统内各功能部件(CPU、主存、I/O接口)之间相互连接的总线。
- 按系统总线传输信息内容的不同,又可分为3类:数据总线(Data Bus)、地址总线(Address Bus)和控制总线(Control Bus)。
- 数据总线(双向):用来传输各功能部件之间的数据信息,其位数与机器字长、存储字长有关。
- 地址总线(单向):用来指出数据总线上的源数据或目的数据所在的主存单元或 I/O 端口的地址,地址总线的位数与主存地址空间大小和设备数量有关。
- 控制总线(单根单向,整体双向):传输的是控制信息,包括 CPU 送出的控制命令和主存(或外设)返回 CPU 的反馈信号。
- 通信总线
- 通信总线是用于计算机系统之间或计算机系统与其他系统(如远程通信设备、测试设备)之间信息传送的总线,通信总线也称为外部总线。
- 片内总线
- 按时序控制方式:
- 同步总线
- 异步总线
系统总线的结构(重点)
- 单总线结构
- 结构:CPU、主存、I/O设备(通过I/O接口)都连接在一组总线(而不是只有一根信号线)上,允许 I/O 设备之间、I/O 设备和 CPU 之间或 I/O 设备与主存之间直接交换信息。
- 优点:结构简单,成本低,易于接入新的设备。
- 缺点:带宽低、负载重,多个部件只能争用唯一的总线,且不支持并行传送操作。CPU、IO 的速度差异导致总线性能并不能完全发挥。
- 双总线结构
- 结构:双总线结构有两条总线,一条是主存总线,用于 CPU、主存和通道之间进行数据传送;另一条是 I/O 总线,用于多个外部设备与通道之间进行数据传送。
- 优点:将较低速的 I/O 设备从单总线上分离出来,实现存储器总线和 I/O 总线分离。
- 缺点:需要增加通道等硬件设备。
- 主存总线支持突发(猝发)传送:只需要送出一个首地址,就可以读写多个地址连续(超出一次数据总线的传输能力)的数据,而不需要每次都发送子地址。
- 通道是具有特殊功能的处理器,能对 I/O 设备进行统一管理。 通道程序放在主存中。
- 三总线结构
- 结构:三总线结构是在计算机系统各部件之间采用 3 条各自独立的总线来构成信息通路,这3条总线分别为主存总线、I/O 总线和直接内存访问 DMA 总线。
- 优点:提高了 I/O 设备的性能,使其更快地响应命令,提高系统吞吐量。
- 缺点:系统工作效率较低。(三条总线同时刻只有一个能工作)
- DMA:Direct Memory Access,直接内存访问。
- 四总线结构
- 桥接器:用于连接不同的总线,具有数据缓冲、转换和控制功能。
- 靠近 CPU 的总线速度较快。
- 每级总线的设计遵循总线标准。
总线的性能指标
总线的传输周期(总线周期)
- 一次总线操作所需的时间(包括申请阶段、 寻址阶段、传输阶段和结束阶段),通常由若干个总线时钟周期构成。
- 总线周期与总线时钟周期的对应关系要具体按照题意,有可能会有多对一、一对一、一对多。
总线时钟周期
- 即机器的时钟周期。总线也要受 CPU 时钟的控制。
- 现在的计算机中,总线时钟周期也有可能由桥接器提供
总线的工作频率
- 总线上各种操作的频率,为总线周期的倒数。
- 若总线周期=N个时钟周期,则总线的工作频率=时钟频率/N。
- 实际上指一秒内传送几次数据。
总线的时钟频率
- 即机器的时钟频率,为时钟周期的倒数。
- 若时钟周期为T,则时钟频率为1/T。
- 实际上指一秒内有多少个时钟周期。
总线宽度
- 又称为总线位宽,它是总线上同时能够传输的数据位数,
- 一般说总线宽度,通常是指数据总线的根数,如 32 根数据信号线称为 32 位(bit)总线。
总线带宽
- 可理解为总线的数据传输速率,即单位时间内总线上可传输数据的位数,通常用每秒钟传送信息的字节数来衡量,单位可用字节/秒(B/s)表示。
- 总线带宽 = 总线工作频率 × 总线宽度(bit/s)= 总线工作频率 × (总线宽度/8)(B/s)= 总线宽度/总线周期(bit/s)= (总线宽度/8)/总线周期(B/s)
- 总线带宽是指总线本身所能达到的最高传输速率。在计算实际的有效数据传输率时,要用实际传输的数据量(去除冗余校验位之后)除以耗时。
- 注意,串行总线和并行总线之间的比较就需要用到:总线带宽 = 总线工作频率 × 总线宽度
总线复用
总线复用是指一种信号线在不同的时间传输不同的信息。
可以使用较少的线传输更多的信息,从而节省了空间和成本。
信号线数
- 地址总线、数据总线和控制总线 3 种总线数的总和称为信号线数。
- 只传输一位 bit 数据的先叫做信号线
总线仲裁
基本概念
- 针对问题:总线作为一种共享设备,不可避免地会出现同一时刻有多个主设备竞争总线控制权的问题。
- 主设备:获得总线控制权的设备。
- 从设备:被主设备访问的设备,只能响应从主设备发来的各种总线命令。
总线仲裁分类
集中仲裁方式
主要工作流程:
- 主设备发出请求信号;
- 若多个主设备同时要使用总线,则由总线控制器的判优、仲裁逻辑按一定的优先等级顺序确定哪个主设备能使用总线;
- 获得总线使用权的主设备开始传送数据。
链式查询方式
- BS、BR、BG 都是一根信号线
- 优先级:
- 离总线控制器越近的部件,其优先级越高;
- 离总线控制器越远的部件,其优先级越低。
- 优点:链式查询方式优先级固定。只需很少几根控制线就能按一定优先次序实现总线控制,结构简单,扩充容易。
- 缺点:对硬件电路的故障敏感,并且优先级不能改变。当优先级高的部件频繁请求使用总线时,会使优先级较低的部件长期不能使用总线。
计数器定时查询方式
- 结构特点:用一个计数器控制总线使用权,相对链式查询方式多了一组设备地址线(设备地址线是一组线),少了一根总线响应线 BG;它仍共用一根总线请求线。
- 优点:
- 计数初始值可以改变优先次序
- 对电路的故障没有链式敏感
- 缺点:
- 增加了控制线数。若设备有 n 个,则需 [log2n]+2 条控制线
- 控制相对比链式查询相对复杂
独立请求方式
- 结构特点:每一个设备均有一对总线请求线 BRi 和总线允许线 BGi。
- 优点:
- 响应速度快,总线允许信号 BG 直接从控制器发送到有关设备,不必在设备间传递或者查询。
- 对优先次序的控制相当灵活。
- 缺点:
- 控制线数量多。若设备有n个,则需要 2n+1 条控制线。
- 总线的控制逻辑更加复杂
“总线忙”信号的建立者是获得总线控制权的设备,而不是仲裁器发出。
分布仲裁方式
- 特点:不需要中央仲裁器,每个潜在的主模块都有自己的仲裁器和仲裁号,多个仲裁器竞争使用总线。
- 步骤
- 当设备有总线请求时,它们就把各自唯一的仲裁号发送到共享的仲裁总线上;
- 每个仲裁器将从仲裁总线上得到的仲裁号与自己的仲裁号进行比较;
- 如果仲裁总线上的号优先级高,则它的总线请求不予响应,并撤销它的仲裁号;
- 最后,获胜者的仲裁号保留在仲裁总线上。
总线操作和定时
基本概念
- 总线周期的四个阶段
- 申请分配阶段:由需要使用总线的主模块(或主设备)提出申请,经总线仲裁机构决定将下一传输周期的总线使用权。也可将此阶段细分为传输请求和总线仲裁两个阶段。
- 寻址阶段:获得使用权的主模块通过总线发出本次要访问的从模块的地址及有关命令,启动参与本次传输的从模块。
- 传输阶段:主模块和从模块进行数据交换,可单向或双向进行数据传送。
- 结束阶段:主模块的有关信息均从系统总线上撤除,让出总线使用权。
- 针对问题:占用总线的一对设备如何进行数据传输
- 总线定时,指总线在双方交换数据的过程中需要时间上配合关系的控制,实质是一种协议或规则
- 同步通信(同步定时方式):由统一时钟控制数据传送
- 异步通信(异步定时方式):采用应答方式,没有公共时钟标准
- 半同步通信:同步、异步结合
- 分离式通信:充分挖掘系统总线每瞬间的潜力
同步定时方式
- 同步定时方式:总线控制器采用一个统一的时钟信号来协调发送和接收双方的传送定时关系。
- 假设:CPU 作为主设备,选择某个输入设备作为从设备
- CPU 在 T1 时刻的上升沿给出地址信息
- 在T2的上升沿给出读命令(低电平有效),与地址信息相符合的输入设备按命令进行一系列的内部操作,且必须在T3的上升沿来之前将CPU所需的数据送到数据总线上。
- CPU在T3时钟周期内,将数据线上的信息传送到其内部寄存器中。
- CPU在T4的上升沿撤销读命令,输入设备不再向数据总线上传送数据,撤销它对数据总线的驱动。
- 优点:传送速度快,具有较高的传输速率;总线控制逻辑简单。
- 缺点:主从设备属于强制性同步;不能及时进行数据通信的有效性检验,可靠性较差。
- 同步通信适用于总线长度较短(总线长度短,传输更稳定)及总线所接部件的存取时间比较接近的系统。
异步定时方式
- 在异步定时方式中,没有统一的时钟,也没有固定的时间间隔,完全依靠传送双方相互制约的“握手”信号来实现定时控制。
- 主设备提出交换信息的“请求”信号(指明操作与地址),经接口传送到从设备;从设备接到主设备的请求后,通过接口向主设备发出“回答”信号。
- 根据“请求”和“回答”信号的撤销是否互锁,分为以下 3 种类型。
- 不互锁方式:速度最快,可靠性最差
- 主设备发出“请求”信号后,不必等到接到从设备的“回答”信号,而是经过一段时间,便撤销“请求”信号。
- 而从设备在接到“请求”信号后,发出“回答”信号,并经过一段时间,自动撤销“回答”信号。双方不存在互锁关系。
- 半互锁方式:
- 主设备发出“请求”信号后,必须等接到从设备的“回答”信号后,才撤销“请求”信号,有互锁的关系。
- 而从设备在接到“请求”信号后,发出“回答”信号,但不必等待获知主设备的“请求”信号已经撤销,而是隔一段时间后自动撤销“回答”信号,不存在互锁关系。
- 全互锁方式:最可靠,速度最慢
- 主设备发出“请求”信号后,必须等从设备“回答”后,才撤销“请求”信号;
- 从设备发出“回答”信号,必须等获知主设备“请求”信号已撤销后,再撤销其“回答”信号。双方存在互锁关系。
- 不互锁方式:速度最快,可靠性最差
- 优点:总线周期长度可变,能保证两个工作速度相差很大的部件或设备之间可靠地进行信息交换,自动适应时间的配合。
- 缺点:比同步控制方式稍复杂一些,速度比同步定时方式慢。
半同步通信(仅了解)
- 半同步通信:统一时钟的基础上,增加一个“等待”响应信号 WAIT
- 当从设备跟不上主设备速度时,从设备通过 WAIT 信号线要求主设备等待
分离式通信(仅了解)
- 上述三种通信的共同点
- 主模块发地址 、命令 —— 使用总线
- 从模块准备数据 —— 不使用总线,总线空闲
- 从模块向主模块发数据 —— 使用总线
- 分离式通信的一个总线传输周期
- 子周期 1:主模块申请占用总线,使用完后放弃总线的使用权
- 子周期 2:从模块申请占用总线,将各种信息送至总线上
- 特点:
- 各模块均有权申请占用总线
- 采用同步方式通信,不等对方回答
- 各模块准备数据时,不占用总线
- 总线利用率提高
总线标准
基本概念
- 总线标准是国际上公布或推荐的互连各个模块的标准,是把各种不同的模块组成计算机系统时必须遵守的规范。
- 系统总线:通常与 CPU 直接相连,用于连接 CPU 与北桥芯片、或 CPU 与主存等
- 局部总线:没有直接与 CPU 连接,通常是连接高速的北桥芯片,用于连接了很多重要的硬件部件(如显卡、声卡等)
- 设备总线、通信总线:通常由南桥芯片控制,用于连接计算机与计算机,或连接计算机与外部 I/O 设备
总线标准的发展
- 系统总线
- ISA(Industry Standard Architecture):并行总线,1984 年提出
- EISA(Extended ISA):并行总线,1988 年提出,在 ISA 基础上增加位宽
- FBS、QPI:串行总线,Intel 提出的两种系统总线,用于连接 CPU 和北桥芯片;QPI 又称 multi-FSB
- 局部总线
- VESA(Video Electronics Standard Architecture):并行总线,1991 年提出,用于传输图像,但渐渐赶不上 CPU 的发展
- PCI(Peripheral Component Interconnect):并行总线,1992 年提出,速度和 VESA 差不多,但工作频率可以独立于 CPU 主频,用于连接显卡、声卡、网卡等,支持即插即用
- AGP(Accelerated Graphics Port):并行总线,1996 年提出,从 PCI2.1 基础上扩展而来,用于连接显存和主存
- PCI-E(PCI-Express(3GIO)):串行总线,2001 年提出,工作频率很高,支持全双工通信
- 设备/通信总线
- 连接各种外设
- RS-232C(Recommended Standard):串行总线,1970 年提出,用于极慢速的电传打印机
- SCSI(Small Computer System Interface):并行总线,1986 年提出,用于连接硬盘、打印机、扫描仪等
- PCMCIA(Personal Computer Memory Card International Association):并行总线,1991 年提出,用于连接外部存储卡,目的是增强个人电脑的信息互换
- USB(Universal Serial Bus):串行总线,1996 年提出,采用差模信号,每次只能传输 1 bit,工作频率可以很高
- 连接硬盘
- IDE(Integrated Drive Electronics):并行总线,19986 年提出,又称 Parallel ATA,主要用于连接硬盘、光驱等
- SATA(Serial Advanced Technology Attachment):串行总线,2001 年提出,Serial ATA,主要用于连接硬盘、光驱等
- 连接各种外设
串行总线取代并行总线的原因
- 并行总线:
- 用 m 根线每次传送 m 个比特,用高/低电平表示 1/0,通常采用同步定时方式。
- 由于线间信号干扰,因此总线工作频率不能太高。
- 另外,各条线不能有长度差,长距离并行传输时工艺难度大。
- 串行总线:
- 用两根线每次传送一个比特,采用“差模信号”表示 1/0,通常采用异步定时方式,总线工作频率可以很高。
- 现在的串行总线通常基于包传输,如 80bit 为一个数据包,包与包之间有先后关系,因此可以用多个数据通路分别串行传输多个数据包,某种程度上现在的串行总线也有“并行”的特点
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 浅幽丶奈芙莲的个人博客!