← 上一章:第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,怎么更快?


📝 章节小测(第 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 参与度从高到低排列,并各用一句话说明其核心特点。

🎯 本章高频考点 & 易错坑

  • 简答(核心):四种I/O方式对比;中断与DMA区别;中断处理过程。
  • 分析:中断优先级与屏蔽字;DMA三种方式。
  • 计算:中断饱和、DMA服务时间图。
  • ⚠️ 坑:中断在”指令末尾”响应、DMA在”机器周期末尾”响应;DMA争的是总线不是打断程序;多级中断”屏蔽本级及更低、开放更高”;向量中断每源一个入口。

← 上一章:第5章 | 📖 目录 | 下一章:第9-10章 →