Skip to content

输入输出技术

I/O 编址方式

对比独立编址(I/O 映射)统一编址(内存映射)
地址空间内存+I/O 两个独立空间统一地址空间
指令专用 I/O 指令(IN/OUT)通用内存访问指令
优点易辨认、互不干扰指令丰富灵活
缺点指令功能有限内存地址不连续
典型Intel x86ARM、嵌入式

数据交互三种方式

方式CPU 参与度效率机制
程序查询全程参与最低CPU 主动轮询设备状态
程序中断传输后处理设备就绪后主动通知CPU
DMA仅初始化最高DMA 控制器接管总线,直接设备↔内存

中断 vs DMA 响应时机:

  • CPU 响应中断请求:在一条指令执行结束时
  • CPU 响应DMA请求:在一个总线周期结束后

DMA 方式数据传输整个过程由 DMA 控制器完成,不需要 CPU 执行程序指令来传送数据

总线

总线结构

层级作用域关键特征
内部总线(片内)芯片内部高带宽、低延迟、不对外开放
系统总线(板级)主板+扩展槽决定内存最大容量,三总线并行
外部总线(设备级)机箱外设热插拔、即插即用

系统总线"三驾马车":

总线方向作用
数据总线双向传输数据,宽度 = 字长倍数
地址总线单向传输地址,宽度决定寻址空间
控制总线传输控制信号(读/写/中断/时钟等)

串行总线 vs 并行总线

🎯 一句话结论:并行总线适合短距离高速传输,串行总线适合长距离;PCI 是并行总线,USB/SATA/RapidIO/PCIe 是串行总线。

对比串行总线并行总线
传输方式逐位(bit)串行发送多根数据线同时发送多位
代表接口USB, SATA, RS-232, RapidIO, PCIePCI, IDE(PATA), LPT
传输距离适宜长距离适宜短距离
信号同步嵌入时钟或异步需同时到达,高频难度大
波特率初始化时预定义,使用中不变

⚠️ 易混淆:PCI ≠ PCIe。PCI 是并行总线,PCI Express (PCIe) 是串行总线。考题常把 PCI 混入"以下属于串行总线的是"选项中。

串行总线波特率

🎯 一句话结论:串行总线波特率在总线初始化时预先定义,使用中不可改变

  • 波特率(Baud Rate)= 每秒传输的信号单元数(不同于比特率)
  • 常见标准波特率:9600, 19200, 38400, 115200 等
  • 并非所有串行总线都是全双工(I²C 是半双工/同步串行)
  • 数据正确性依赖校验码(奇偶校验、CRC)而非仅靠纠错码