总线与 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协同工作。