跳到主要内容

总线与 I/O

总线是连接各部件的公共信号通路,I/O 则是计算机与外部世界交互的窗口。本篇梳理系统总线结构、仲裁机制、I/O 控制方式,以及典型外设。

系统总线

  • 数据总线:双向,位数决定一次传输的数据宽度(8/16/32/64 位)。
  • 地址总线:单向,由 CPU 或主设备发出,位数决定可寻址空间(32 位 → 4 GB)。
  • 控制总线:传递读/写、总线请求、中断、时钟等控制信号。

按位置划分还有 片内总线 (CPU 内部)、系统总线 (CPU-主存-IO) 和 外部总线 (USB、PCIe、SATA)。PCIe 采用点对点串行差分链路,通过 lane 数量(×1, ×4, ×16)扩展带宽,广泛用于显卡、NVMe SSD。

总线仲裁

多设备争用总线时需要仲裁机制决定使用权。

  • 集中仲裁:由独立仲裁器(常在芯片组中)统一分配,常见三种:
    • 链式查询:优先级固定由近到远,电路简单,故障敏感。
    • 计数器定时:轮询各设备,公平性好。
    • 独立请求:每个设备独立请求与授权线,响应快,代价高。
  • 分布式仲裁:无中央仲裁器,各设备通过总线上的仲裁线比较优先级,自决胜负,扩展性好,如 PCI 总线。

I/O 控制方式

  • 程序查询 (Polling):CPU 反复读取设备状态寄存器直到就绪,简单但 CPU 利用率低。
  • 中断 (Interrupt):设备就绪后向 CPU 发出中断请求,CPU 保存现场进入 ISR,适合中低速设备。关键概念:中断源、中断向量、优先级、嵌套、可屏蔽。
  • DMA (Direct Memory Access):在 DMA 控制器 主持下,设备与主存直接批量交换数据,CPU 仅参与启动与结束处理,适合磁盘、网卡等高速块传输。
DMA 典型流程
1. CPU 写入源地址、目的地址、长度到 DMA 控制器
2. 启动 DMA, CPU 继续执行其他任务
3. DMA 控制器按周期抢占总线,完成数据搬运
4. 完成后向 CPU 发出中断

三种方式性能递增、复杂度递增,实际系统常混用。

常见外设

  • 磁盘 (HDD/SSD):块设备,按扇区读写。HDD 寻道 + 旋转延迟主导延迟,SSD 基于 NAND 闪存,内部有 FTL 做地址映射与磨损均衡。
  • 显示器:通过 GPU 渲染到帧缓冲,常用接口 HDMI、DP;扫描方式有逐行与隔行,刷新率 60/120/144 Hz。
  • 键盘:字符设备,每次按键产生扫描码,中断通知,驱动解析为字符输入。
  • 其他典型外设:鼠标、声卡、网卡、打印机、U 盘,均通过 设备控制器 + 驱动 + 中断/DMA 协同工作。