← 上一章:第5章 | 📖 目录 | 下一章:第9-10章 →
第 6 章 总线系统 —— a 进出 CPU 走的”公路”
a+b 在这一章:a 从内存到 CPU、和从 CPU 回内存,数据不是凭空飞过去的,它走的是”总线”这条公共公路。如果键盘、磁盘、CPU 同时都想用这条路,谁先走?这就是”总线仲裁”。这一章讲计算机内部的”交通系统”。
6.1 总线的概念与结构
【知识点·什么是总线】
- 🎓 总线是多个部件之间传送信息的公共通路,部件在”争用资源”的基础上分时共享它,用以传送地址、数据、控制信息。
- 🌱 总线就是连接各部件的”公共马路”,大家轮流上路(不能同时占用)。它是计算机的”骨架”。
【知识点·总线三大类】
┌─────────── 系统总线 ───────────┐
│ 数据总线 (双向, 三态) 传数据 │ 宽度=8/16/32/64位 "三态"=高电平/低电平/高阻态(断开,不驱动总线)
│ 地址总线 (单向, 三态) 传地址 │ 位数决定可寻址范围
│ 控制总线 传控制/状态 │ 读/写/中断/时钟…
└────────────────────────────────┘
- 🌱 三条路各管一摊:数据路运货(双向)、地址路报门牌号(单向)、控制路发号令(读还是写、谁中断了)。
【知识点·总线特性 & 性能指标】
- 🎓 四大特性:物理(插头形状)、功能(每根线干啥)、电气(电平/方向)、时间(时序)。性能:总线宽度(一次传几位)、总线周期(一次操作最小间隔 T=1/f)、总线带宽(单位时间传的数据量,常用MB/s)。
- 🌱 带宽 = 一次能搬多少 × 每秒能搬多少次,是衡量总线快慢的关键指标。
必考计算·带宽:带宽 = 一个总线周期传送字节数 × 总线频率 例:一周期传4字节、频率33MHz → 4B×33×10⁶ = 132MB/s;一周期传64位(8B)、66MHz → 528MB/s。
【知识点·总线连接结构】
- 🎓 单总线(全挂一条,简单但负载重、慢)、双总线(加一条CPU–主存高速总线)、三总线(加通道管外设)、多总线(高中低速设备分挂不同总线,用”桥”连接)。
- 🌱 单总线=一条路所有车都走(堵);多总线=快车道/慢车道分开,用”立交桥”连通,互不拖累。
【知识点·标准总线】
- 🎓 ISA(Industry Standard Architecture,工业标准总线,16位)→EISA(Extended ISA,扩展工业标准总线,32位)→VESA(Video Electronics Standards Association,视频电子标准协会总线)→PCI(Peripheral Component Interconnect,外围部件互连总线,64位)→…;PCI 与处理器无关、同步定时、集中仲裁、即插即用;InfiniBand(无限带宽互连——面向高端服务器的高速互连标准)面向高端服务器,极高吞吐极低延迟。
- 🌱 总线也要”国标”,这样各家设备能通用。PCI 是经典的”主板高速插槽标准”。
6.2 总线接口
【知识点·信息传送方式 & 接口】
- 🎓 串行(一根线、慢、适合远距离)、并行(多根线、快、适合近距离)、分时(总线复用:同一线分时传地址和数据 / 部件分时共享)。接口(I/O适配器)在部件间起”缓冲+转换”作用。
- 🌱 串行=单车道一个个过(省线,如USB(Universal Serial Bus,通用串行总线)/网线);并行=多车道齐头并进(快,如内部总线);接口=两种设备之间的”翻译+缓冲转接头”。
波特率计算:波特率 = 每秒传送的二进制位数(bit/s),衡量串行线路”一秒能发多少个 0/1”。例:120字符/秒、每字符10位 → 波特率=1200 bit/s,每位耗时 1/1200≈0.833ms。
6.3 总线仲裁(高频简答)
多个部件抢总线,需”仲裁”决定谁先用。
【知识点·集中式仲裁三方式】
| 方式 | 原理 | 特点 |
|---|---|---|
| 链式查询 | 授权信号链式串过各设备,越近优先级越高 | 线少、易扩充;但对故障敏感、优先级固定 |
| 计数器定时查询 | 计数器轮询设备地址匹配则授权 | 优先级可变、灵活;线较多 |
| 独立请求 | 每设备各有请求线BRi+授权线BGi,排队电路裁决 | 响应最快、最灵活,现代总线常用 |
- 🌱 ①链式=排成一队,离老板近的先拿(简单但插队不行、断一个全断);②计数器=点名轮流(可改顺序);③独立请求=每人一个直通按钮,老板挑一个(最快最灵活)。
【知识点·分布式仲裁】
- 🎓 无中央仲裁器,各设备把仲裁号送上总线比较,号大者胜,基于优先级策略。
- 🌱 没有裁判,大家亮出自己的”号码牌”比大小,大的赢。
6.4 总线定时与数据传送模式
【知识点·同步 vs 异步定时】
- 🎓 同步定时:用统一时钟协调,总线周期定长,简单但要迁就慢设备;异步定时:无统一时钟,靠”请求-应答(握手)“信号,周期可变,灵活。
- 🌱 同步=全队跟着同一个鼓点(整齐但要等慢的);异步=你说”我好了”我再回”收到”(一问一答,快慢自适应)。
【知识点·数据传送模式】
- 🎓 读/写、块传送(猝发式 burst,给个首地址连传一串)、读改写/写后读(用于校验和共享保护)、广播/广集。
- 🌱 猝发传送=报一次门牌号就连搬一整箱(高效,超标量流水常用)。
⭐ 本章在 a+b 故事里的位置
a+b 的数据在部件间穿梭,靠的是总线这条公共公路,靠仲裁解决抢路、靠定时保证一问一答不乱套。现在 CPU 内部的故事讲完了。可 a、b 最初是从键盘敲进来的,结果要显示到屏幕上——这些”外面的设备”长什么样?下一章。
🎯 本章高频考点 & 易错坑
- 计算:总线带宽、波特率。
- 简答:三种集中式仲裁对比、同步/异步定时区别、单/多总线结构。
- ⚠️ 坑:数据总线双向、地址总线单向;地址总线位数决定寻址范围;独立请求最快最灵活;带宽=宽度×频率。
第 7 章 外围设备 —— scanf 的数据从哪来、printf 的结果到哪去
a+b 在这一章:
scanf让你从键盘敲入 a、b,printf把和显示到显示器;程序本身可能存在磁盘上。这些”主机之外”的设备就是外围设备。这一章讲它们的硬件原理与技术指标(磁盘的计算题是重点)。
7.1 外围设备概述
【知识点·外设功能与分类】
- 🎓 外设在计算机与人/其他机器之间提供联系,五大类:输入设备、输出设备、外存设备、数据通信设备、过程控制设备;外存基本组成=存储介质+驱动装置+控制电路。
- 🌱 外设就是主机的”五官手脚”:眼睛耳朵(输入:键盘鼠标)、嘴和手(输出:屏幕打印机)、大仓库(外存:磁盘)。
7.2 磁盘存储设备(计算题重点)
【知识点·磁表面存储原理与特点】
- 🎓 用磁头电磁/磁电变换在磁性介质上读写(剩磁状态表示0/1);优点:容量大、位价低、可长期保存、非破坏性读出;缺点:速度慢、机械结构复杂。
- 🌱 磁盘就像”用磁铁在涂磁的盘子上写0和1”,写得多、便宜、断电不丢,但因为要机械转、磁头要移动,所以慢。
【知识点·磁盘信息分布】
盘面 (记录面)
┌─────────────┐ 磁道(Track): 一圈圈同心圆
│ ╭───────╮ │ 扇区(Sector): 磁道分成的小段,最小寻址单位
│ ╭┤ ╭───╮ ├╮ │ 柱面(Cylinder): 各盘面同半径磁道的集合
│ ││ │ · │ ││ │
│ ╰┤ ╰───╯ ├╯ │ 地址格式: 台号|柱面(磁道)号|盘面(磁头)号|扇区号
│ ╰───────╯ │
└─────────────┘
- 🌱 盘面像唱片,一圈圈是磁道,每圈切成小块是扇区;几张盘叠起来同一圈位置组成”柱面”。找数据=先移到对的圈(寻道),再等扇区转过来。
【知识点·磁盘技术指标(必考计算)】
- 🎓 存储密度(道密度/位密度/面密度)、存储容量、存取时间 = 寻道时间 + 等待时间 + 传输时间、数据传输率 Dr = 转速 r × 每道容量 N。
- 🌱 平均等待时间 = 转一圈时间 ÷ 2(平均要等半圈);柱面数 = 有效半径 × 道密度。
关键公式:
柱面数 = (外径−内径之半径差) × 道密度
每道容量 = 内层周长 × 位密度
数据传输率 Dr = 转速(转/秒) × 每道字节数
平均存取时间 = 平均寻道 + 平均等待(转半圈) + 传输
🔑 常考结论:文件超过一个磁道时,应存”同一柱面”而非同一盘面——因为换柱面要重新寻道(慢),同柱面只换磁头(快)。
【知识点·磁盘 Cache 与 RAID】
- 🎓 磁盘Cache弥补磁盘与主存速度差(同样用局部性、预读);RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列——俗称廉价冗余磁盘阵列)用多盘+数据分块+冗余,提高I/O性能、容量和可靠性,分RAID 0~6。
- 🌱 RAID 就是”把多块盘当一块用”:RAID0只拆分提速不容错;RAID1镜像备份;RAID5带分散校验(坏一块能恢复),是最常用的性价比方案。
7.3-7.5 磁带、光盘、磁光盘
【知识点·磁带 / 光盘 / 磁光盘】
- 🎓 磁带顺序存取(慢,用于备份);光盘用激光读凹坑(坑=0/无坑=1,靠反射光强);磁光盘用热磁效应写、克尔效应读、可重写。
- 🌱 磁带=老式磁带机,只能一盘到尾顺着找(慢,备份用);光盘=激光照”小坑”读数据;它们都是大容量、慢速的外存。
7.6 显示设备(显存计算是考点)
【知识点·显示器核心概念】
- 🎓 分辨率(像素个数)、灰度级(每像素亮暗/颜色档次,由位数决定)、刷新(电子束反复扫描,频率≥50Hz不闪)、刷新存储器(显存/VRAM(Video RAM,视频随机存储器——专门存储显示画面的内存))。
- 🌱 分辨率=屏幕由多少小点组成;灰度级=每个点能显示多少种深浅/颜色;刷新=屏幕要不停重画才不闪;显存=存这一屏画面的内存。
必考计算·显存容量 = 分辨率 × 每像素颜色深度(位)。 例:1024×768、24位真彩色 → 1024×768×24/8 = 2.25MB(≈课本3M算法含32位)。 显存带宽 = 分辨率 × 颜色深度 × 刷新率。
7.7 输入与打印设备
【知识点·输入/打印设备】
- 🎓 输入:键盘、鼠标、光笔、扫描仪、语音;打印:点阵式、喷墨、激光(均属硬拷贝输出)。
- 🌱 键盘鼠标负责”把信息送进去”,打印机负责”把结果印在纸上”。
⭐ 本章在 a+b 故事里的位置
我们知道了键盘、屏幕、磁盘的”硬件长相”。但有个大麻烦:键盘每秒才输入几个字符,CPU 每秒能算几十亿次——这俩速度差了亿万倍,CPU 总不能傻等着键盘吧?怎么让快的 CPU 和慢的外设高效配合?这就是下一章最精彩的部分——I/O 方式。
🎯 本章高频考点 & 易错坑
- 计算:磁盘容量/传输率/平均存取时间/柱面数;显存容量与带宽。
- 简答:磁盘存取时间三要素、RAID各级、显示器概念。
- ⚠️ 坑:平均等待=转半圈;大文件存同一柱面;最小寻址单位是扇区;磁带是顺序存取。
第 8 章 输入输出系统 —— 亿万倍速度差的 CPU 与键盘,怎么配合
a+b 在这一章:
scanf要等你慢慢敲键盘,可 CPU 快得离谱。让它”死等”太浪费了。这一章给出四种越来越聪明的”配合打法”:程序查询、程序中断、DMA、通道。这是 I/O 部分的精华,对比类简答和分析题高频。
8.1 定时方式与信息交换方式
【知识点·设备速度分级 & 编址】
- 🎓 外设速度差异极大,需在 CPU 与外设间”定时”同步;I/O端口编址有统一编址(与内存共用地址空间,用访存指令操作)和独立编址(专用I/O指令)。
- 🌱 慢设备和快CPU得对暗号同步;给设备的”门牌号”要么和内存挤一套(统一编址),要么单开一套(独立编址)。
四种信息交换方式,越往后 CPU 越省心、效率越高:
8.2 程序查询方式(最笨)
【知识点·程序查询】
- 🎓 CPU 不断读外设状态字、轮询”准备好没”,没好就反复查,直到就绪才传数据。
- 🌱 CPU 像守在门口反复问”快递到没?到没?“,啥也干不了,最浪费 CPU。
查询流程: 发命令→读状态→就绪? ──否──┐(死循环等待)
│是 ↑
▼────────┘
传送数据
8.3 程序中断方式(高频)
【知识点·中断基本概念】
- 🎓 中断是 CPU 暂停现行程序、转去处理随机发生的紧急事件、处理完自动返回的功能。设备就绪后主动向 CPU 发中断请求,CPU 在当前指令执行结束后响应。
- 🌱 CPU 不用死等了——它先去干别的活,快递到了门铃一响(中断),它放下手头(保护现场)去开门收件(中断服务),收完回来接着干(恢复现场)。
【知识点·中断处理过程】
正常程序执行 ──┐
│ ① 设备就绪发中断请求
│ ② CPU当前指令执行完→响应中断→关中断
│ ③ 保护断点和现场(PC、寄存器、PSW入栈)
▼
中断服务程序(传数据) ── ④ 执行服务
│ ⑤ 恢复现场、开中断
▼
返回原程序继续 ←┘
- 🎓 关键问题:响应时机(指令末尾)、断点/现场保护(保存PC和PSW(Program Status Word,程序状态字——记录CPU当前状态的寄存器,含标志位、中断允许位等))、开关中断(原子操作——指”不可被打断的最小动作”,关中断和开中断必须一步做完,不能做到一半被别的中断插队)。中断分内中断(异常)和外中断。
【知识点·向量中断】
- 🎓 向量中断:中断源直接提供”向量地址”指向其服务程序入口(不同中断不同入口);非向量中断只有一个入口、进去再判别。
- 🌱 向量中断=每个门铃直接通到对应的房间;非向量=所有门铃响一个总铃,进去再问”谁按的”。
【知识点·单级 vs 多级中断 & 中断屏蔽字(高频分析)】
- 🎓 单级:所有中断同一级,靠串行排队链(离CPU近优先级高);多级:每级一个优先权,n级有n个IR/IM。响应某级后,屏蔽本级及更低级、开放更高级(多级可嵌套,同级不可嵌套)。
- 🌱 多级中断像医院分诊:抢救(高级)可以打断普通门诊(低级),但同级病人得排队。屏蔽字就是”我正在处理这级时,允许谁打断我”的开关表。
课本例:执行设备B(第1级)服务时 IM2IM1IM0=0XX;执行设备D(第2级)时=10X(响应该级后屏蔽本级及以下)。
【知识点·8259 中断控制器】
- 🎓 8259 集成中断接口+优先级判断,可级联(多片 8259 串接,一片主片管最多 8 片从片,总共管 64 个中断源)管理多达64个中断;优先级方式有完全嵌套、轮换A/B、查询;屏蔽有简单/特殊两种。
- 🌱 8259 是专门管中断排队的小芯片,相当于”中断调度台”。
8.4 DMA 方式(高频)
【知识点·DMA 基本概念】
- 🎓 DMA(直接存储器访问)由硬件控制器在主存与高速I/O设备间直接传送批量数据,传送过程无需CPU干预,速度快、效率高。
- 🌱 DMA 像请了个”专职搬运工(DMA控制器)“,让磁盘和内存直接对搬,根本不烦 CPU——CPU 只在搬完时收个通知。比中断还高效(中断每个数据还要CPU亲自搬)。
【知识点·DMA 三种传送方式】
| 方式 | 原理 | 特点 |
|---|---|---|
| 停止CPU访存 | DMA期间CPU让出总线、暂停 | 简单,但CPU停得久、内存利用率低 |
| 周期挪用(窃取) | DMA每传一个数据偷用一个存取周期 | 折中,最常用 |
| DMA与CPU交替访存 | 分时轮流用内存,不用申请 | 效率高,适合CPU周期远长于存取周期 |
- 🌱 ①停CPU=搬运工搬货时CPU完全停工(简单粗暴);②周期挪用=趁CPU不访存的空隙偷偷搬一下(最常用);③交替=你一下我一下轮流用内存(最和谐)。
【知识点·DMA 与中断的区别(必考)】
- 🎓 中断在指令执行结束时响应、靠程序(CPU)传每个数据、适合中低速;DMA在一个机器周期/总线周期结束就可响应、由硬件直接传、适合高速批量;DMA 占用的是”总线访问权”,不打断CPU程序流程(只借总线)。
- 🌱 中断=每收一个包都要CPU亲自签收(慢但灵活);DMA=快递直接进仓库,CPU只签总单(快,适合大批量)。
【知识点·DMA 控制器组成 & 选择型/多路型】
- 🎓 含内存地址计数器、字计数器、数据缓冲寄存器、DMA请求标志、控制/状态逻辑、中断机构;选择型(同一时间服务一个设备)、多路型(同时管多个设备、分时轮流)。
- 🌱 搬运工得记着”搬到哪个地址、还剩几个、数据暂存哪”;多路型搬运工能同时盯好几条传送带。
8.5 通道方式(了解+对比)
【知识点·通道】
- 🎓 通道是有自己指令(通道命令字CCW(Channel Command Word,通道命令字——通道自己能执行的I/O控制指令))和程序的专用I/O处理器,CPU 把”传输控制”下放给通道,自己只管”数据处理”,实现 CPU 与 I/O 并行。三种:选择通道(高速独占)、字节多路通道(慢速设备字节交叉)、数组多路通道(结合)。
- 🌱 通道=升级版搬运工,自己会”读小脚本”独立干一整套I/O,CPU 彻底解放只管算。大型机用得多。
【知识点·四种 I/O 方式总对比(必背简答)】
CPU参与度 速度 适用 谁主动
程序查询 最高(死等) 慢 极慢/简单设备 CPU轮询
程序中断 较高 中 中低速、需及时 设备发请求
DMA 很低 快 高速批量(磁盘) 设备发DMA请求
通道 最低 最快 大型机多设备 通道独立执行
8.6 通用 I/O 接口标准
【知识点·SCSI 与 IEEE1394】
- 🎓 SCSI(Small Computer System Interface,小型计算机系统接口——老牌并行高速外设接口):并行I/O接口(系统级),可接多台高速外设;IEEE1394(又称FireWire火线,高速串行接口标准):高速串行接口,设备间平等、可不经PC自成系统、适合数字图像。
- 🌱 SCSI 是老牌并行高速接口,1394(火线)是串行高速接口;现在更多被 USB/SATA(Serial ATA,串行高级技术附件——连接硬盘的接口标准)取代,但原理相通。
⭐ 本章在 a+b 故事里的位置
至此,a+b 的完整一生讲完了:从你敲键盘(中断/DMA 帮 CPU 高效接收),到 CPU 取指-译码-执行算出和(经总线、用补码加法),到结果显示上屏。一个程序,串起了整台计算机。 最后一章我们抬头看未来:如果要同时算一万个 a+b,怎么更快?
🧪 费曼检验区(合上笔记,用自己的话说)
规则:合上笔记,试着说给完全不懂的人听。卡壳了就说明没真懂,回头重读。
📌 老师划重点(综合题必出)
- 综合题考 DMA 传送过程和三种方式
- 综合题考中断处理过程和屏蔽字
📊 教材核心考点
- 总线带宽怎么算?总线宽度和总线频率分别指什么?
- 三种集中式仲裁(链式查询、计数器定时查询、独立请求)各有什么优缺点?
- 四种I/O方式(程序查询、中断、DMA、通道)CPU参与程度从高到低排一下?
- 中断响应的时机是什么?DMA响应的时机是什么?两者有什么区别?
- 中断屏蔽字怎么设置?“屏蔽本级及更低、开放更高”这句话你能用具体例子解释吗?
- DMA的三种传送方式(停止CPU、周期挪用、交替访内)分别怎么工作?
- 磁盘的平均存取时间 = 寻道时间 + 等待时间 + 传输时间,其中”等待时间”怎么算?
📝 章节小测(第 6-8 章综合)
本小测覆盖总线、外设和 I/O 方式三章,DMA 和中断是综合题重点。
【题 1 · 计算 · 总线带宽】 某总线时钟频率 66MHz,总线宽度 64 位,每个总线周期传送一次数据。求总线带宽(MB/s)。
【题 2 · 简答 · 中断处理过程】 写出 CPU 响应中断的完整过程(从设备发出请求到返回原程序),要求包含”关中断""保护现场""开中断”等关键步骤。
【题 3 · 分析 · DMA vs 中断】 中断方式和 DMA 方式在以下三个方面有何不同?(1) 响应时机 (2) 谁传送数据 (3) 适用场景
【题 4 · 计算 · 磁盘】 某磁盘转速 7200 RPM(Revolutions Per Minute,每分钟转速),平均寻道时间 8ms,每磁道 500 个扇区。求: (1) 平均等待时间 (2) 读取一个扇区的平均存取时间
【题 5 · 简答】 程序查询、中断、DMA、通道四种 I/O 方式中,CPU 参与度从高到低排列,并各用一句话说明其核心特点。
参考答案(点击展开)
题 1:带宽 = 频率 × 每次传送字节数 = 66×10⁶ × (64/8) = 66×10⁶ × 8 = 528×10⁶ B/s = 528 MB/s
题 2:
- 设备就绪 → 向 CPU 发中断请求信号
- CPU 在当前指令执行结束后检测到请求 → 响应中断
- 关中断(防止嵌套干扰保护现场过程)
- 保护断点:将 PC(返回地址)和 PSW 压栈
- 识别中断源:通过向量地址或查询确定中断服务程序入口
- 保护现场:将寄存器内容压栈
- 开中断(若允许嵌套,开放更高级中断)
- 执行中断服务程序(传送数据/处理事件)
- 关中断 → 恢复现场(弹栈恢复寄存器)
- 开中断 → 中断返回(弹出 PC 和 PSW,回到断点继续)
题 3:
中断 DMA 响应时机 指令执行结束后 一个机器周期(总线周期)结束后 谁传数据 CPU 通过程序传每个数据 DMA 控制器硬件直接搬,CPU 不参与 适用场景 中低速设备(键盘、打印机) 高速批量设备(磁盘) 题 4:
- 7200 RPM → 转一圈 = 60/7200 = 1/120 秒 ≈ 8.33 ms
- (1) 平均等待 = 转半圈 = 8.33/2 ≈ 4.17 ms
- (2) 传输一个扇区 = 转一圈/扇区数 = 8.33/500 ≈ 0.017 ms 平均存取时间 = 寻道 + 等待 + 传输 = 8 + 4.17 + 0.017 ≈ 12.19 ms
题 5:CPU 参与度从高到低:程序查询 > 中断 > DMA > 通道
- 程序查询:CPU 死等,反复轮询设备状态,完全占用
- 中断:CPU 干别的活,设备就绪时打断 CPU 来传数据(每个数据仍需 CPU 搬)
- DMA:硬件控制器直接搬批量数据,CPU 只在开始和结束时介入
- 通道:专用 I/O 处理器独立执行通道程序,CPU 彻底解放
🎯 本章高频考点 & 易错坑
- 简答(核心):四种I/O方式对比;中断与DMA区别;中断处理过程。
- 分析:中断优先级与屏蔽字;DMA三种方式。
- 计算:中断饱和、DMA服务时间图。
- ⚠️ 坑:中断在”指令末尾”响应、DMA在”机器周期末尾”响应;DMA争的是总线不是打断程序;多级中断”屏蔽本级及更低、开放更高”;向量中断每源一个入口。
← 上一章:第5章 | 📖 目录 | 下一章:第9-10章 →