第 6 章 互连及输入输出组织¶
依据:2016 年版教材第 6 章及配套大纲。本书 PCIe、QPI、DDR 等例子采用教材时代的规格;本笔记保留教学计算口径,不能作为现今产品参数查询。下文编号指大纲“考核内容与考核要求”。
复习导航:大纲要求与笔记位置¶
| 大纲条目 | 层次 | 位置 | 学完应能做到 |
|---|---|---|---|
| 1 输入输出设备 | 领会 | 第 1 节 | 说明键盘、鼠标、打印机、显示器的工作原理及共同点 |
| 2 外部存储器 | 领会 | 第 2 节 | 说明磁盘主要技术指标与记录格式、RAID 原理、U 盘与 SSD 特点 |
| 3 外设与 CPU、主存的互连 | 识记;领会;简单应用 | 第 3 节 | 给出总线相关术语,说明互连方式,计算各类总线带宽 |
| 4 I/O 接口 | 识记;领会 | 第 4 节 | 说明接口功能与通用结构,区分接口与端口、独立编址与统一编址 |
| 5 I/O 数据传送控制方式 | 领会;简单应用 | 第 5 节 | 说明查询、中断、DMA 的特点与流程,计算三种方式的 CPU 开销 |
第 3 条与第 5 条含简单应用(带宽计算、CPU 开销计算),是本章最常出的计算题;第 5 条的领会要求详尽,涉及中断响应条件、断点与现场保护的差别、屏蔽与优先级等多个易混点。
本章学习目标¶
外部设备通过互连结构和I/O接口与CPU、主存交换信息。本章先介绍设备及其性能指标,再说明数据如何在系统中传输,以及CPU如何控制传输过程。计算内容包括磁盘访问时间、总线带宽和CPU的I/O开销;I/O接口、中断响应与处理、DMA是理解传输机制的重点。
1 输入和输出设备(1,领会)¶
键盘经按键扫描、编码、消抖,把按键动作变成信息。鼠标把位移与按键事件编码。打印机把字符或图像输出到纸面。显示器把显示数据变成像素图像。共同之处是完成物理量或用户动作与数字信息的转换,再经接口按约定交换数据和状态。
显示分辨率决定像素数,色深决定每像素位数;一帧最低数据量≈水平像素×垂直像素×色深/8,不含其他缓冲和协议开销。例:1920×1080、24位色约6,220,800 B/帧。打印机常看dpi和打印速度等指标,不能把dpi与屏幕的像素总数混为一谈。
2 外部存储器(2,领会)¶
磁盘把盘面划分为磁道,再把磁道划分为扇区。不同盘面上半径相同的磁道构成柱面。扇区除用户数据外,还包含标识、同步和校验信息,所以格式化后的可用容量小于原始记录容量。
理想均匀模型:容量=有效盘面数×每面磁道数×每道扇区数×每扇区字节数。现代实际布局可能不同,计算按题设。
访问时间≈寻道时间+旋转等待+传输时间+其他控制开销。转速r转/分,一圈60/r秒,随机位置平均旋转等待30/r秒。连续传输时间=数据量/传输率。
例:7200 rpm平均旋转等待4.167 ms。寻道8 ms,读64 KiB,传输率128 MiB/s,则传输0.488 ms,总约12.655 ms,未计控制器与排队开销。随机小读中,寻道和等待可能占主导。
单个磁盘的容量、访问速度和故障风险都受设备本身限制。RAID把多个磁盘组织成阵列,用条带化、镜像或校验等方式改善其中部分指标。不同级别采用的机制不同,性能与容错能力也有差别。
| RAID | 原理 | 要点 |
|---|---|---|
| RAID 0 | 数据条带分布 | 提高并行能力,没有冗余保护 |
| RAID 1 | 镜像 | 保存副本,容量利用率下降 |
| RAID 5 | 分布式奇偶校验 | 常见同容量N盘可用约(N−1)盘,能容忍一盘故障 |
RAID通过多盘组织改善性能或可用性,效果取决于级别、访问类型和控制器。冗余不等于独立备份。
U盘和SSD通常采用Flash,无机械寻道、非易失;SSD控制器负责地址映射、纠错、磨损均衡等。随机写和擦除行为与机械磁盘不同,也不同于可随意覆盖的主存。
3 外设、CPU 和主存互连(3,识记、领会、简单应用)¶
总线是多个部件共享的一组传输通路。主控设备发起事务,从设备响应,主控身份可以随事务改变。内部总线连接处理器内部的部件,系统总线、存储器总线和I/O总线则负责不同范围的互连。
地址信息指出对象,数据信息承载内容,控制信息规定读写、时序、应答等。总线宽度一般指一次可并行传输的数据位数,寻址能力则取决于地址位数及编址单位。串行链路在每条通路上逐位发送,多条lane可以并行聚合,不能因为“串行”就推断它必然慢。
同步总线用统一时钟约定时序,异步总线靠请求/应答等握手协调。突发传输把多个数据连续发送,省去每个数据重复付出的地址和仲裁开销。
3.1 带宽计算¶
并行峰值带宽=每次有效数据位数/8×每秒传输次数×通道数。若每周期传q次,传输率=f×q;若已给MT/s,不再乘q。实际有效带宽还受仲裁、地址、握手及空闲周期影响。
例:64位、200 MHz、每周期4次,峰值为64/8×200×10⁶×4=6.4 GB/s。DDR3-1333的单个64位通道按1333 MT/s算约10.664 GB/s,三通道约31.992 GB/s。
教材的前端总线FSB连接CPU与传统桥接结构,存储器总线服务内存通路,QPI则是点到点互连。计算QPI时,先确定有效数据位与控制/校验开销,再确定是单向还是双向,不能拿全部物理位宽当有效载荷。
串行有效带宽=每lane位速率×编码效率×lane数/8。教材PCIe 1.0为2.5 Gb/s、8b/10b,单向每lane=2.5×0.8/8=0.25 GB/s,x16单向4 GB/s、双向合计8 GB/s。回答时必须标清单向还是双向合计;这里的编码效率也不能直接套用到其他代际。
4 I/O 接口(4,识记、领会)¶
接口负责匹配CPU与外设在速度、数据格式、时序、电平和工作方式上的差异。它提供设备选择、缓冲、控制、状态报告、错误检测以及中断/DMA支持等功能。CPU通常经接口访问外设,不直接控制设备的全部物理细节。
| 寄存器/结构 | 用途 |
|---|---|
| 数据缓冲寄存器 | 临时保存输入或输出数据 |
| 状态寄存器 | 就绪、忙、错误、中断请求等状态 |
| 控制/命令寄存器 | 指定启动、停止、模式等操作 |
| 内部接口 | 与系统总线/CPU侧连接 |
| 外部接口 | 与具体设备连接 |
I/O端口通常指接口中可由CPU访问的寄存器或其地址。一个接口可包含多个端口,端口不一定是机箱上的物理插口。
独立编址为I/O另设地址空间,常用专门I/O指令;统一编址把I/O寄存器映射入存储地址空间,可用访存指令访问,但会占用该空间的一部分。统一编址不意味着设备寄存器就是普通RAM,其访问可能有副作用。
5 I/O 数据传送控制方式(5,领会、简单应用)¶
5.1 查询方式¶
查询方式由CPU主动检查设备状态。CPU发出命令后读取状态寄存器;设备尚未就绪,就继续等待或稍后再次查询。设备就绪后,CPU通过数据端口搬运数据,并检查传输是否结束。这种方式实现简单,但连续轮询会让CPU一直忙等。
周期轮询开销比例=每秒查询次数×每次查询周期数/CPU频率,还要加实际搬运等成本。若CPU连续忙等,不能只算少量查询指令而忽略整个等待时间。
例:1 GHz CPU,每秒轮询10000次,每次100周期,占0.1%;这是周期查询的检查成本,不包含设备传输和忙等。
5.2 中断方式¶
为减少反复查询状态的开销,可以由设备在就绪或发生事件时提出中断请求。CPU启动设备后继续执行其他程序;收到请求并满足响应条件,才转入相应的中断服务程序。这种方式下,通知时机由设备决定,数据搬运仍由CPU执行指令完成。
本课程外部可屏蔽中断响应的常见条件:有请求、允许中断、指令执行到可响应边界;还需请求未被相应屏蔽等条件。不可屏蔽中断需另行讨论。
响应与处理步骤:
- 设备提出请求,控制器判定优先级并向CPU报告。
- CPU到可响应点,保存必要的断点与状态,转入入口,按体系结构规定控制中断允许状态。
- 通过软件查询或向量机制确定服务程序。
- 服务程序保护将要改动的现场,处理设备与数据,按需要确认或清除请求。
- 恢复现场、执行中断返回,恢复正常程序。
中断处理中的保存工作由硬件和软件共同完成。断点保护保存返回位置;现场保护还要涉及通用寄存器、状态等,以免服务程序改动被中断程序仍需使用的内容。硬件保存哪些状态、软件再补充保护哪些,由体系结构和服务程序的约定决定。中断向量提供的是定位服务程序入口的信息,与设备传输的业务数据用途不同。
中断允许触发器控制CPU是否接受可屏蔽请求。服务程序若要允许更高优先级的中断嵌套,通常先保护现场、设置适当的屏蔽状态,然后再开放中断,以免嵌套处理破坏尚未保存的信息。中断优先级用于确定多个请求的选择顺序,屏蔽字用于限制当前允许进入的请求,两者分别控制不同环节。
中断与子程序调用都可能保存返回地址,但调用由程序中的显式指令发起,中断则由异步事件发起。中断返回时可能还要恢复状态。中断与异常的同步/异步区别见第4章。
中断开销比例=每秒中断次数×每次服务周期数/CPU频率。若每次传d字节、设备速率v字节/秒,中断次数≈v/d。每次开销需明确是否已含进入、退出、保护恢复和搬运。
例:每秒传1 MiB,每4 B中断一次,每次200周期,CPU 1 GHz,则262144次/s,开销52,428,800周期/s,约5.24%。
5.3 DMA方式¶
DMA适合高速设备与主存之间的成块传输。CPU设置主存起始地址、传输方向、计数等参数。DMA控制器获得所需的总线使用权后直接搬运,并更新地址和计数。传输完成或出错后,DMA控制器再通知CPU,常用中断方式。
DMA控制器通常包含地址寄存器、计数器、控制/状态寄存器及数据缓冲等,用于记录传输位置、剩余数量和设备状态。CPU负责初始化与完成处理,传输过程中的数据则无须逐字经过CPU寄存器。DMA仍会占用主存带宽,可能使CPU等待。有Cache的系统还要处理数据一致性问题。
常见组织包括停止CPU访存一段时间做突发传输、周期挪用,以及在CPU不使用总线时交替访问。要区分“CPU执行管理指令的开销”与“争用总线导致的等待”。
DMA的CPU管理开销比例≈每秒块数×每块初始化及完成处理周期/频率。若1 MiB/s按4 KiB一块,每块CPU开销1000周期,CPU 1 GHz:256块/s,开销0.0256%,另有总线争用等代价未计。
| 方式 | 谁实际搬数据 | CPU何时介入 | 主要代价 |
|---|---|---|---|
| 查询 | CPU指令 | 反复查状态并搬运 | 轮询或忙等 |
| 中断 | CPU指令 | 事件发生后服务 | 频繁进入退出与搬运 |
| DMA | DMA控制器 | 配置及完成处理等 | 管理、总线竞争等 |
6 考核要求¶
本章重点为磁盘存储器的主要技术指标与记录格式、计算机系统的互连结构、各类总线带宽的计算、I/O 接口的功能与基本结构、中断响应和处理过程、中断与异常的区别、DMA 控制方式的基本原理;难点为 I/O 接口的功能和基本结构、中断响应和处理过程、中断与异常的区别、DMA 控制方式的基本原理。
7 教材本章习题¶
本节按“单项选择题/填空题/简答题”分节,答案依据教材附录。
| 自测题(自编) | 参考答案与辨析 |
|---|---|
| 10000 rpm 磁盘平均旋转等待? | 30000/10000=3 ms。 |
| 教材 PCIe 1.0 x4 单向有效峰值? | 0.25 GB/s×4=1 GB/s,8b/10b 编码已计入。 |
| 中断方式是否让外设自动把数据直接写主存? | 没有,一般仍由 CPU 指令搬运;直接成块传输是 DMA 的特征。 |
| DMA 是否不可能再用中断? | 可以用完成中断通知 CPU。 |
| 端口和接口是否一一对应? | 不一定,一个接口可有多个寄存器端口。 |
| 中断嵌套前为什么要保护现场? | 防止后续服务覆盖被打断程序的恢复状态。 |
8 闭卷复习与跨章联系(补充)¶
第 3 章的总线带宽计算与第 5 章的存储器总线计算共用同一口径,区别仅在数据通路对象。第 4 章的异常和中断与本节的 I/O 中断是同一响应机制的两类来源:内部异常与指令同步,外部中断与指令异步。操作系统课程中的设备管理(缓冲、SPOOLing、磁盘调度)建立在本章 I/O 控制方式之上。本章侧重硬件如何完成一次传送,操作系统侧侧重如何排队与分配。