ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

CO——总线

CO——总线

6.1 总线基本概念

6.1.1 总线定义与特点

总线:一组共享的信息传输线,实现多个部件之间的数据交换。

  1. 分时:同一时刻只允许一个设备向总线发送信号,其余发送设备等待。

  2. 共享:多个设备可以在不同时刻发送;接收端可以同时接收总线上的相同信息

6.1.2 总线分类

1)按位置(功能)分类
  1. 片内总线:芯片(CPU)内部总线,连接片内寄存器、ALU。

  2. 系统总线:CPU 外部,连接 CPU、主存、I/O 接口;分为数据线、地址线、控制线。

  3. 通信总线(外部总线):计算机和其他外部系统之间通信。

2)按数据传输方式
  1. 串行总线:逐位顺序传送;适合远距离;多数通信总线为串行。

  2. 并行总线:多位同时传输;缺点:长线传输存在串扰,各位信号不同步到达;适合近距离;多数系统总线为并行。

高频条件下,并行总线串扰严重,速率不一定高于串行总线。

3)按时序控制
  1. 同步总线:统一时钟,时钟节拍内完成总线操作。

  2. 异步总线:无统一时钟,依靠请求、应答握手信号完成通信。

6.1.3 系统总线三种结构

  1. 单总线结构:CPU、主存、I/O 全部挂接同一组系统总线;主存与 I/O 统一编址。缺点:全部设备争抢同一总线,系统传输效率低。

  2. 双总线结构:将系统总线拆分为独立的主存总线、I/O 总线,把低速I/O设备剥离至I/O总线,避免和高速主存、CPU争抢总线资源。

    1. 优点:大幅提升系统整体工作效率;

    2. 缺点:两类总线之间需要通道(专用处理器)完成数据转接,增加硬件成本。

  3. 三总线结构

  • 主存总线:CPU ↔ 主存

  • I/O 总线:CPU ↔ 外设

  • DMA 总线:主存 ↔ 高速外设(DMA 专用通路)

6.1.4 总线性能指标

  1. 总线宽度:数据总线根数,一个总线周期同时传输的二进制位数。

  2. 总线带宽:单位时间总线上传输的数据位数,代表传输速率。

  3. 信号线数:地址线 + 数据线 + 控制线的总和。

  4. 总线复用:一根信号线分时传输多种信号;典型:地址、数据线复用。

  5. 总线负载:总线上可挂载的设备数量,负载能力有限。

  6. 总线时钟频率 / 时钟周期:互为倒数;总线时钟周期是总线的基础时间单位。

  7. 总线传输周期(总线周期):完成一次主存 / I/O 端口访问的完整时间,包含若干总线时钟周期。

6.1.5 总线事务、主设备、从设备

  • 总线事务:一对设备之间,从请求总线到完成数据交换的完整操作序列。

  • 主设备:获得总线控制权,发起传输请求的设备(CPU、DMA 控制器)。

  • 从设备:响应主设备,被动完成通信的设备。

一个总线传输周期内,只能有一个主设备,仅和一个从设备通信

总线事务五个阶段:

  1. 总线请求:主设备发出使用总线申请

  2. 总线仲裁:多个请求时,仲裁逻辑选出获得总线控制权的设备

  3. 设备寻址:主设备把从设备地址、命令送上总线

  4. 数据传输:主从设备完成数据交互

  5. 总线释放:主设备释放总线,撤出总线信息

猝发(突发)传送:只发送首地址,连续传输内存中一批连续地址单元的数据;相比普通传输效率更高。

6.1.6 总线通信(总线定时)

  1. 同步通信:同步定时,统一时钟,所有操作严格对齐时钟节拍。

  2. 异步通信:无公共时钟,依靠请求、应答握手信号;分为三种互锁方式

    1. 不互锁:请求、应答信号各自独立撤销,不需要等待对方信号。

    2. 半互锁:主设备发出请求,必须收到从设备应答之后,才撤销请求。

    3. 全互锁:主发请求 → 从发应答 → 主收到应答后再给从一个确认,双方信号互相约束。

  3. 半同步通信:既有统一时钟;又可以通过等待信号适配不同速度模块。

  4. 分离式通信:总线周期拆分为两个子周期

    1. 主模块一获得总线,发送地址 + 命令,释放总线(第一段事务结束)。
    2. 从模块内部开始准备数据;总线空闲,主模块二可以使用总线发起新的总线请求
    3. 从模块准备完毕后,主模块一需要重新竞争总线,拿到总线之后,完成数据的传送(第二段事务)。

6.2 I/O 设备基础

6.2.1 I/O 设备按信息交换单位分类

  1. 字符设备:以字符为单位传输;不可寻址;中断驱动;例:键盘。

  2. 块设备:以数据块为单位;可随机寻址读写;速率高;支持 DMA;例:硬盘、光盘。

6.2.2 显示器

  1. 屏幕尺寸:对角线长度,单位英寸。

  2. 分辨率:屏幕像素总数 = 横向像素数 × 纵向像素数;像素即屏幕光点。

  3. 刷新:光点显示时间很短,需要重复扫描维持画面。

  4. 刷新频率:每秒扫描屏幕完整画面次数,常见 60‑120Hz。

  5. VRAM 显示存储器(显存):DRAM 实现,存储屏幕每一个像素色彩信息。

    1. 显存容量 = 分辨率 × 灰度级位数

    2. 显存带宽 = 显存容量 × 帧频(刷新频率)

  6. 灰度级:黑白代表明暗;彩色代表颜色等级;灰度级越高图像越真实。

6.2.3 外存储器

  1. 磁盘存储器:容量大;读出不破坏数据;数据可长期保存。

  2. SSD 固态硬盘:由固态电子存储芯片阵列制成,分为两类存储介质:①基于闪存;②基于 DRAM。读写速度远优于传统机械磁盘,无机械结构,稳定性更强。

6.3 I/O 接口

I/O 接口:主机与外设之间的逻辑部件,协调主机与外设通信。

  • 主机侧:并行传输;

  • 外设侧:可串行 / 并行(USB 等)。

区分:I/O 接口是整套逻辑部件;I/O 端口是 CPU 可直接访问的寄存器。一个接口可包含多个 I/O 端口,每个端口分配独立地址。

6.3.1 I/O 接口四大功能

  1. 数据缓冲:解决主机与外设速度差异,缓冲数据。

  2. 数据格式转换:串‑并转换、模数 A/D、数模 D/A 转换。

  3. 控制与定时:接收系统总线控制、定时信号;协调主机与外设动作时序,管控通信。

  4. 错误与状态检测:状态寄存器保存设备状态、出错信息;CPU 读取状态寄存器获知外设情况。

状态寄存器、控制寄存器访问时间错开,数据流错开,可以合并为状态‑控制寄存器

6.3.2 I/O 接口分类

  1. 按传送方式:并行接口、串行接口(外设侧)

  2. 按主机控制方式:程序查询接口、中断接口、DMA 接口

  3. 按可编程性:可编程接口(程序修改接口功能)、不可编程接口

6.3.3 I/O 端口编址方式

① 独立编址(I/O 映射)

主存地址空间、I/O 端口地址空间相互独立,地址编号可以重叠,必须使用专用I/O指令才能访问I/O端口。

优点:I/O端口占用地址线少,寻址速度快;访存指令与I/O指令完全区分,程序逻辑清晰、便于调试检查。

缺点:CPU需要单独配置存储器、I/O设备两套读写控制信号,总线控制逻辑复杂,需要配套专用硬件保护机制。

② 统一编址(存储器映射)

I/O端口与主存单元共用同一个地址空间,无需专门的I/O指令,直接使用常规访存指令即可访问I/O端口

优点:可复用所有访存指令的寻址方式和硬件保护机制,CPU访问I/O设备灵活便捷,无需额外硬件设计。

缺点:I/O端口会占用一部分主存地址空间,缩减可用的主存寻址范围。

6.4 程序中断方式

6.4.1 中断系统基本功能

  1. 每条指令执行结束,取下一条指令前,检测中断请求

  2. 中断判优:多中断源同时请求,优先响应高优先级。

  3. 保护断点与现场:PC、PSW、通用寄存器等。

  4. 中断屏蔽机制:控制哪些中断可以被嵌套打断。

6.4.2 程序中断产生背景

程序查询方式中,CPU与外设串行工作,CPU长期空闲等待外设完成操作,资源利用率极低。

中断方式完美解决该问题:CPU启动外设工作后,无需原地等待,可继续执行其他程序,实现CPU与外设并行工作;外设完成数据传输后,主动向CPU发送中断请求,CPU响应中断,跳转执行中断服务程序处理数据,处理完成后返回原程序继续执行。

6.4.3 中断判优的两种实现

  1. 软件查询判优:CPU响应中断后,按照预设优先级顺序,依次轮询中断请求寄存器的状态,先查询到的中断源优先响应。

    1. 优点:硬件结构简单,无需专用判优电路;修改中断优先级仅需调整软件查询顺序,灵活度高。

    2. 缺点:串行查询耗时久,中断响应速度慢,效率较低。

  2. 硬件判优(向量中断):依靠专用硬件判优线路和优先级编码器,自动识别同时生效的中断请求,筛选出优先级最高的中断源,输出对应中断类型号,直接定位中断服务程序入口地址,无需软件轮询。响应速度极快,是主流计算机采用的判优方式。

通用中断优先级排序(考研必考):DMA请求 > I/O中断请求;高速设备 > 低速设备;实时设备 > 普通设备;输入设备 > 输出设备。

6.4.4 中断响应条件

  1. 存在中断源发出中断请求;

  2. CPU 处于开中断;

  3. 当前指令执行完毕,进入中断周期

中断隐指令:硬件自动执行,无对应的机器指令;保存断点,把中断服务程序入口送入 PC。

6.4.5 获取中断服务程序入口地址

  1. 软件方法:类似软件查询,查到中断源后跳转执行对应服务程序;入口地址由程序员指定;缺点:查询时间长。

  2. 硬件方法(中断向量法):硬件自动得到中断向量;中断向量存放中断服务程序入口;全部中断向量存放在中断向量表

6.4.6 现场保护与恢复

  • 旧现场:PC、PSW、中断屏蔽字,硬件自动压栈。

  • 新现场:从向量表取出中断服务程序入口、新状态字;通用寄存器由软件指令压栈保护。

  • 恢复现场:保护现场逆过程。

6.4.7 多重中断(中断嵌套)

条件:

  1. CPU 进入中断服务程序后,要开中断;

  2. 出现优先级更高的中断请求,CPU立即暂停当前中断服务程序,转去处理更高优先级的中断,实现中断嵌套。

6.4.8 中断屏蔽技术

  1. 可屏蔽中断:开中断才响应,可以通过程序屏蔽。

  2. 非屏蔽中断:关中断状态下依然可以响应;电源掉电、异常属于非屏蔽中断。

每个中断源配备独立的mask屏蔽触发器,用于控制中断是否生效。

主程序运行,同时来了 1#、3#、4# 三个中断请求。

  1. 同时收到 1、3、4 中断请求硬件响应优先级,先响应1#,进入 1# 中断服务程序。 1# 的屏蔽字屏蔽 2、3、4,所以 3#、4# 被挡住,不能打断 1#。

  2. 1# 执行结束返回主程序。 现在还挂着未处理的 3#、4# 请求,硬件响应 3#,进入 3# 服务程序。 3# 屏蔽字:开放 1#、2#,屏蔽 4#。 此时来了2# 中断,2# 处理优先级高于 3#,于是2# 打断 3#,CPU 切到 2# 中断服务。

  3. 2# 运行期间,屏蔽 3#、4#;允许 1#。2# 执行完,回到被打断的 3# 继续执行。

  4. 3# 执行完毕,回到主程序。现在剩下 4# 未处理,进入 4# 服务程序。 4# 全部开放,期间来了 1# 中断,1# 打断 4#;1# 运行完,回到 4#,4# 结束回到主程序。

中断服务程序执行完,不是一定回到最原始主程序;而是回到 “被它打断的那一层程序”,在中断返回的那一瞬间,才会检查有没有新中断请求

两个优先级区分

  1. 中断响应优先级:硬件排队电路决定,不可修改

  2. 中断处理优先级:多重中断实际执行顺序,通过中断屏蔽字动态修改,被称为软排队器。

6.5 DMA(直接存储器存取)

6.5.1 DMA 产生背景

中断方式:CPU 与外设可以并行,但是中断服务程序内部的数据搬运阶段 CPU 需要参与;高速块设备会频繁触发中断,CPU 开销大。

DMA:依靠 DMA 控制器硬件,建立外设 ↔ 主存直接通路;数据块传输阶段完全不需要 CPU 干预

  • 适用:块设备(硬盘等)。

  • CPU 只参与:预处理(启动)、后处理(善后)

  • 主存开辟缓冲区,存放外设交互的数据。

6.5.2 DMA 控制器功能

  1. 接收外设 DMA 请求,向 CPU 发出总线请求。

  2. 获取总线控制权。

  3. 设置主存起始地址、传输计数、读写方向。

  4. 输出读写控制信号,完成硬件数据传输。

  5. 数据块传输完毕,发出 DMA 完成信号。

6.5.3 DMA 与主存三种分时访问方式

  1. 停止 CPU 访存:DMA 请求到来,直接停止 CPU 访问主存,DMA 独占总线直到传输结束。

  2. 交替分时访存:CPU 工作周期切分成时间片,CPU、DMA 交替使用主存。

  3. 周期挪用法(周期窃取):CPU与DMA分时复用主存,按需占用、互不冲突。三种工作场景:①CPU不访存:DMA直接占用总线访问主存,无冲突、无等待;②CPU正在访存:DMA等待当前存取周期结束,再占用总线传输数据;③CPU与DMA同时请求访存:DMA优先级高于CPU,强行窃取当前周期,避免高速外设数据丢失。

6.5.4 DMA 完整工作三阶段

  1. 预处理:CPU 程序完成设置主存首地址、传输长度、读写方向,启动 DMA;之后 CPU 继续运行其他程序。

  2. 数据传输:DMA 控制器硬件完成,CPU 不介入。

  3. 后处理:DMA 传输结束,向 CPU 发中断;CPU 在指令结束后的中断周期响应中断,执行中断服务程序做校验、善后。

预处理全部由 CPU 完成(对应传送参数设置、寻道、查找扇区,CPU 配置 DMA 控制器的各项参数并下发 I/O 命令)尚未进行真正的数据搬运;

之后进入 DMA 传送阶段,扇区就绪后由 DMA 控制器接管总线,完成磁盘与内存之间大批量数据的直接高速搬运,CPU 可以并行执行其他程序;

数据传送结束后进入后处理阶段,DMA 向 CPU 发出中断请求,CPU 执行中断服务程序完成数据校验、错误处理、状态清理等善后工作。

6.5.5 DMA 与程序中断对比

  1. DMA:仅预处理、后处理需要 CPU 介入;数据搬运硬件完成;中断方式数据搬运需要 CPU 执行服务程序。

  2. DMA 请求优先级高于中断请求。

  3. DMA 适合大批量块数据;中断适合字符设备。

返回列表