总线
总线概述
分为控制总线、数据总线、地址总线
-
同一时刻只能有一个部件发送数据,但是可以有多个部件接受数据
-
多个部件分时共享
总线分类
-
按数据传输格式
- 串行总线:一次只能发送/接受1位数据,例如USB
- 成本低,适合长距离传输(抗干扰),在计算机内部应用可以节省布线空间
- 需要考虑数据串行并行转换的问题,以及数据的拆卸与装备
- 并行总线:一次可以发送/接受多位数据
- 抗干扰性能差,导致工作频率不一定很高,需要更多布线空间。
- 并不一定比串行总线快
- 串行总线:一次只能发送/接受1位数据,例如USB
-
按功能
-
片内总线:CPU内部的公共接线
-
系统总线:计算机系统内各功能部件之间相互连接的总线
- 数据总线(DB):位数与机器字长、存储字长有关(建议与其中一个保持一致),双向连接。
- 地址总线(AB):位数与主存地址空间大小和I/O设备数量有关,单向连接
- 控制字长(CB):一根控制线传输一个信号,发送CPU的控制命令,接受主存或外设返回的CPU回馈信号
-
通信总线:负责计算机与计算机之间的连接,例如网线
-
总线结构
-
单总线结构
- 只有一组系统总线(含DB、AB、CB)
- 成本低、易于扩展新设备
- 带宽低、负载重、不支持并行操作
-
双总线结构
- 速度快的部件接在主存总线,比如CPU、主存、通道
- 所有的I/O设备接在I/O总线,由通道管理
- 通道程序放在主存中。
- 支持突发传送:送出一个地址,收到多个地址连续的数据
-
三总线结构:基于双总线结构,把I/O总线分成DMA总线与普通的I/O总线
- 主存总线负责连接CPU与主存
- DMA(直接内存访问)总线负责连接主存和高速外设,例如磁盘
- I/O总线负责连接CPU与多个I/O接口
- 提高了I/O设备的性能,提高了系统吞吐量
- 四总线结构:
- 增加了桥(南北桥芯片):连接不同总线、用于数据缓冲、转换和控制(总线仲裁)
- 越靠近CPU的总线越快
- 每级总线的设计遵循总线标准
总线性能指标
-
总线传输周期(总线周期)
- 一次总线操作所需的时间,由若干个总线时钟周期构成(大部分情况)
- 一次传输周期就可以完成一组数据的传送
-
总线时钟周期:就是机器的时钟周期
-
总线的工作频率
- 总线周期的倒数,若一个总线周期含N个时钟周期,则工作频率=时钟频率/N
- 指一秒内能传送几次数据
-
总线的时钟频率:时钟周期的倒数
-
总线宽度:又称总线位宽,通常指数据总线的根数
-
总线带宽(数据传输率)
- 单位时间内总线可传输的最多数据位数,单位可由Byte/s表示(1Byte=8bit)
- 总线带宽=总线工作频率 * 总线宽度
- 计算有效数据传输率时,需要去掉校验位、开头位等冗余部分计算
-
总线复用:一种信号线在不同的时间传输不同的信息
-
信号线数:地址总线、数据总线、控制总线3种线数的总和
总线仲裁
同一时刻只能有一个设备控制总线传输,可以有多个设备从总线接受设备
总线仲裁通过纯硬件方式来决定到底由哪个设备进行控制
集中仲裁
- 主设备发出请求信号
- 多个主设备同时要使用总线,则由总线控制器(CPU)的判优、仲裁逻辑(桥)决定好主设备的优先等级顺序
- 获得使用权的主设备开始传送设备
链式查询方式
流程:
-
总线请求是从设备接口0开始依次向后传递的,直到遇到需要使用总线的设备
-
这时,使用总线的设备会向BS信号线发送总线忙的信号,导致之后需要使用总线的设备被拒
-
使用总线完毕,BG信号依次向后链式传递,直到遇到需要使用总线的设备
由此可见,优先级是根据设备离总线控制器的距离而定的,是固定的。
计数器查询方式
用一个计数器控制总线使用权
- 多个设备从BR发送总线请求
- 总线控制部件将计数器的值通过设备地址发送给各个设备,若某设备地址的值与计数器值相等,则该设备获得总线使用权,并通过BS发送总线忙信号
- 结束总线使用,重复1-3
- 计数器初值可以改变优先次序,并且可以由程序设置,所以设备优先级是可变的
- 电路故障没有链式敏感
- 若设备有n个,则需要[log2n] (设备地址线) + 2(BR和BS信号线)
独立请求方式
- 每个设备有专属的BR和BG线
- 通过排队器控制使用权
- 响应速度快,优先次序控制灵活
- 若设备有n个,则需要
2n+1
控制线
分布仲裁
- 不需要中央仲裁器(集中仲裁使用的总线控制部件)
- 每个设备都有独立的仲裁器与仲裁号,多个仲裁器竞争使用总线
控制流程:
- 有多个设备发送总线请求,这些设备都把仲裁号发送到仲裁总线上
- 每个仲裁器从仲裁总线上取到仲裁号与自己的仲裁号比较
- 若仲裁总线上的号优先级高,就不响应这个请求,自己发送的仲裁号也被撤销
- 最后只有优先级最高的仲裁号保留在总线上
总线操作与定时
总线定时:总线在双方交换数据时对总线周期内四个阶段的时间控制来达成主设备与从设备的配合,是一种协议或规则
总线周期四阶段:
- 申请分配:主模块申请总线使用权,可分为传输请求和总线仲裁
- 寻址阶段:主模块通过总线送出需要访问的从模块的地址,启动相关从模块
- 传输阶段:主从模块的数据交换
- 结束阶段:主模块的相关信息在总线上被撤出,让出使用权
同步通信
- 由统一时钟信号协调发送和接受方的传送定时关系
- 有若干个时钟产生相等的时间间隔,每个间隔构成一个总线周期
- 在一个总线周期中,发送 接收方可进行一次数据传送
- 传输速度快,总线控制逻辑简单
- 不能及时进行数据通信的有效性检验,可靠性差
- 适用于总线长度较短以及所接部件的存取时间比较接近的系统
异步通信
- 采用应答方式,没有公共时钟标准
-
不互锁方式:
- 发出请求后,过一段时间主设备主动撤销请求
- 接受请求后,过一段时间从设备自动撤销“回答”信号
- 速度最快,可靠性最差
-
半互锁:
- 发出请求后,主设备将一直等待从设备发出回答信号再撤销请求信号
- 接受请求后,从设备过一段时间自动撤销“回答”信号
-
全互锁:
- 发出请求后,主设备将一直等待从设备发出回答信号,再撤销请求信号
- 接受请求后,从设备将一直等待主设备发出已撤销信号,再撤销回答信号
- 速度最慢,可靠性最强
总线周期长度可变,能保证数据传输的可靠性,自动适应时间配合,适用于两个速度差距大的部件。
总线标准
-
系统总线:ISA、EISA,其中ISA不支持总线仲裁
-
局部总线:连接北桥和重要硬件设备(显卡、声卡),标准有VESA、PCI、AGP、PCI-E
- PCI不依附于某个具体的处理器,支持突发传送,支持热插拔
- PCI可扩展性好,可采用多层结构提高驱动能力
- PCI曾经也作为系统总线标准
- AGP基于PCI2.1扩充修改,显卡专用局部总线标准
- PCI-E从并行改为了点对点串行模式,每个PCI-E设备都拥有自己独立的数据连接
- PCI-E支持双向传输也就是全双工模式
-
设备总线、通信总线:
- RS-232C(针式打印机)
- SCSI(激光打印机)
- PCMCIA(PC卡)
- USB:连接设备与设备控制器
- 采用菊花链形式将外设们连接起来,最多可连127个外设。
- 标准统一
- 高速传输
- 5V电压供电
- 差模信号来表示0和1,每次只能传1bit数据,抗干扰性非常强
- IDE(ATA):硬盘光驱接口
- SATA:串行硬盘接口
串行总线的流行
- 并行总线由于采用同步定时的方式,线间信号干扰导致其总线频率必然不能太高,而且各条线不能有长度差,长距离并行传输工艺难度很大
- 串行总线,用两根线的电信号差值(差模信号)来表示0和1,采用异步定时,总线工作频率很高,基于包传输模式,包与包之间有先后关系,可以用多个数据通路分别串行传输多个数据包,来达到一种并行的效果。