第三章 总线
第三章 总线
总线的基本概念
总线 bus:连接各个部件的信息传输线,是各个部件共享的传输介质
任何时刻只能有一对设备使用总线
总线上信息的传输
- 串行:一次一位,长距离
- 并行:一次多位,短距离
总线结构的计算机
- 单总线结构:CPU,主存和 IO 设备都连接在同一条总线上
- 缺点:无法支持两对设备同时通信
- 面向 CPU 的双总线结构:从 CPU 延展出一条 IO 总线连接 IO 设备,一条 M 总线连接主存
- 缺点:外部 IO 设备无法直接与主存交换数据
- 面向存储器的双总线结构:一条系统总线连接 CPU,主存和 IO 设备,一条存储总线连接 CPU 和主存
- 主存仍然不能同时向系统总线和存储总线传输数据,但可以直接和 CPU 以及 IO 设备交换数据
总线的分类
- 片内总线:芯片内部的总线
- 系统总线:计算机各部件之间的信息传输线
- 数据总线:双向,与机器和存储字长有关
- 地址总线:单向,与存储地址,IO 地址有关
- 控制总线:有出有入,传输控制信号
- 通信总线:计算机系统之间或计算机系统与其他系统
- 串行通信总线
- 并行通信总线
总线特性和性能指标
物理实现:印刷到主板
总线特性
- 机械特性:尺寸,形状,管脚数和排列顺序
- 电气特性:传输方向,有效电平范围
- 功能特性:每根传输线的功能(地址,数据,控制)
- 时间特性:信号之间的时序关系
性能指标
- 总线宽度:数据线的根数
- 标准传输率:每秒传输的最大字节数(MBps)
- 时钟同步/异步:同步、不同步
- 总线复用:地址线和数据线复用
- 信号线数:地址线,数据线和控制线的总和
- 总线控制方式:突发,自动,仲裁,逻辑,计数
- 其他指标:负载能力
总线结构
多总线结构
- 双总线结构
- 主存总线:连接主存和 CPU
- IO 总线:连接 IO 设备
- 通道:连接两条总线,具有特殊功能的处理器,一般由操作系统编写
- 三总线结构
- IO 总线
- 主存总线
- DMA 总线:外部设备直接访问存储器内存,连接 IO 设备和主存
- 第二种三总线结构
- 局部总线:连接 CPU 和 Cache(缓存)
- 系统总线:连接主存和 Cache
- 扩展总线:连接各种外设
- 四总线结构
- 局部总线
- 系统总线
- 高速总线:连接高速外设
- 扩展总线:连接低速外设
总线控制
总线判忧控制
- 主设备(模块):对总线有控制权
- 从设备(模块):响应从主设备发来的总线命令
- 判忧控制方法
- 集中式
- 链式查询
- 计数器定时查询
- 独立请求方式
- 分布式
- 集中式
链式查询方式
- 总线控制部件
- 数据线
- 地址线
- BS 线:总线忙(正在工作)
- BR 线:总线请求
- BG 线:总线同意,依次连接每个 IO 设备,链式查询每个设备是否提出请求
- 优先级:BG 线的连接方式决定了各 IO 设备的查询顺序,先查询的优先级高
- 特点:结构简单,故障敏感(一个设备损坏其余都不能用),速度慢
计数器定时查询方式
- 总线控制部件
- 计数器
- 数据线
- 地址线
- BS 线:总线忙(正在工作)
- BR 线:总线请求
- 设备地址线:查找某个设备是否发出请求
- 控制过程:检测到 BR 线有请求后启动计数器,通过设备地址线查询该设备是否提出请求,不是则计数器自加,查询下一个设备直到查询到提出请求的设备
- 特点:优先级确定灵活(由计数器初始值决定)
独立请求方式
- 总线控制部件
- 排队器
- 数据线
- 地址线
- BG 线:总线同意,每个设备一条
- BR 线:总线请求,每个设备一条
- 控制过程:排队器接收所有请求,排队后发出应答
- 特点:优先级灵活,线数目大,速度快
总线通信控制
目的:解决通信双方协调配合的问题
总线传输周期
- 申请分配阶段:主模块申请
- 寻址阶段:主模块给出地址和命令
- 传输阶段:传输数据
- 结束阶段
总线通信的方式
- 同步通信:由统一时标控制
- 异步通信:采用应答方式
- 半同步:结合同步异步
- 分离式通信:从分挖掘系统总线每个瞬间的效能
同步通信
- 采用定宽定长的时钟信号控制
- 对应时间点给出对应的控制信号
- 速度不同的模块也需要强制同步(速度由最慢的模块决定)
异步通信
- 不互锁
- 请求线:主设备发出请求
- 应答线:从设备接收到请求后发出应答
- 不论是否接收到,一段时间后都会撤销
- 半互锁:主设备接收到应答信号之后才撤销请求,否则会一直保持请求,从设备发出应答信号后一段时间不管主设备是否收到都会撤销
- 全互锁:主设备接收到应答信号才会撤销请求,从设备确认主设备接收到应答信号后才会撤销应答
半同步通信
- 从模块可以发出 wait 信号,当从模块的速度与主模块不一致时可以发送 wait 信号让主模块等待一个时钟周期
三种通信的共同点
- 主模块发出地址,命令:占用总线
- 从模块准备数据:不占用总线
- 从模块向主模块发送数据:占用总线
分离式通信
- 在主模块发完地址和命令后就断开与总线的连接
- 从模块准备完数据后向总线发送占用请求
- 特点
- 每个模块都可以申请占用总线
- 采用同步方式通信,不等待回答
- 各模块准备数据时不占用总线
- 总线被占用时不会空闲
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!