I/O
1. I/O Control Methods
I/O 接口编址方式:
- 统一编址:和主存空间一起编址
- 独立编址: I/O 端口独立编址,地址空间不共享
程序直接控制:占用 CPU 资源
- 如: CPU 读取串口状态,向映射好的寄存器发送数据
程序中断方式:提高效率;同时管理多个外设;对 CPU 干扰较大
- 适用情况:传输速度不高,传输量不大
- CPU 和外设同时工作
- 外设发起请求
- CPU 暂停正在执行的程序,响应中断
- 处理完成,继续执行原来的程序
Direct Memory Access: 对 CPU 打扰适中;无法管理大量高速设备
- I/O 设备和主存储器之间成组传送数据
- 传输过程由 DMA 自行控制
- DMA 采用实地址
- 过程:CPU 预处理,DMA 传送, CPU 后处理
- 工作方式:
- 独占(内存)总线:停止 CPU 访问主存,等 DMA 传输之后交还总线控制权
- 周期窃取:一旦 I/O 设备有 DMA 请求,则由它挪用一个存取周期,此时 CPU 停止访问主存,可以完整其它操作;效率高
- 交替访内:一个CPU周期可分为2个周 期,一个专供DMA控制器访内,另一个专供CPU访 内。不需要总线使用权的申请、建立和归还过程。
四级 I/O 系统: CPU & 内存 ↔ 通道 ↔ 设备控制器 ↔ 外围设备
通道控制方式:
- I/O 通道:代替 CPU 管理外设的独立部件;特殊的处理器:有自己的指令和程序
- 一对多;适应各种外设,并行工作
- 根据 CPU 要求选一外设与系统相连
- 通道类型:
- 字节多路通道:简单共享,分时处理;低、中速
- 选择通道:选一外设独占通道,成组传送;快速
- 数组多路通道:字节多路与选择的结合
外围处理机:独立于主机工作,有自己的指令系统
- 通道型处理机
- 外围处理机:通过通道方式与主机进行交互
2. Bus
2.1 Three types
单总线:主板总线
- 只有一条总线,在 CPU 和 MEM 之间
- 所有 IO 设备直接挂到唯一的总线上
- 简单;速度慢
双总线:
- 两种总线:一个 CPU-MEM 总线;其它的为 IO 总线
- IO 总线通过总线适配器与 CPU-MEM 总线相连
三总线:进一步拆分
- 三种总线:
- CPU-MEM Bus
- Backplane Bus (e.g. PCI)
- I/O Bus
- I/O 总线挂到主板总线,主板总线挂到 CPU-MEM 总线
Peripheral Hub
PCI
- 并行总线
- PCI 空间与处理器空间隔离
- 拓展性强
PCIe
- 串行点到点;差分传输抗干扰
- 全双工
2.2 Bus Control
控制、数据、地址(可以和数据复用)
总线标准:通信协议
总线事务:
- 主设备:发起命令(地址)
- 从设备:被动相应 Read Request ,发数据;收数据
Bus Arbitration 仲裁:谁来用 Bus
- 最简单:CPU 作为唯一主设备,控制所有总线请求
仲裁流程:
- 主设备 request
- Bus Arbiter (仲裁器) grants permission
- 使用完毕,主设备 release
仲裁方式:
- 集中仲裁(计算机内的主要方式)
- 菊链仲裁
- 集中平行仲裁
- 分布仲裁
- 优先级或轮询仲裁
仲裁的要素:优先级和公平性(efficiency and equality!)
菊链仲裁:
集中平行仲裁:
同步总线:
- 一根时钟信号线,所有设备必须按此时钟频率工作
- 传输协议(e.g. 何时读数据)根据时钟信号制定
- 逻辑简单,高速
异步总线
- 不使用统一的时钟
- 使用握手协议,而不是固定的时钟信号;e.g. ACK / dataready signals
- 适应不同速度的设备
2.3 Bandwidth
提高带宽的方式:
-
增加宽度
-
分离数据、地址总线
-
成组传送:一个总线事务传多个数据
- 开头一个 address ,后面跟着多个 data
总线上有多主设备,如何提高事务数量:
- 仲裁重叠
- 总线占用
- 地址、数据传送重叠
总线带宽 = 总线宽度 × 总线频率
3. 接口
总线:数据传输
接口:连接总线和外部设备:主机 总线 接口 外设
- 总线是由多个设备共享的,设备之间存在差异
- 需要接口去连接二者
基本功能:将外部设备抽象成比较统一的样子
- 让主机能识别、找到设备:为每个设备规定地址码/编号,如 Memory-map 方式
- 在设备和主机之间建立控制、通信:为主设备提供外设状态;将主机的命令交给外设
- 主机和设备之间的数据缓冲
- 其它屏蔽外设差异的需求
实现:通用可编程接口电路
3.1 串行通信
同步:
- 同步信号:内同步(同步字符)/外同步(硬件同步信号)
异步:
- 起始位、停止位
- n 倍波特率: n 倍时钟周期传送一个数据; n 越大速率越低
Compared with 并行通信:
Serial ATA: Serial Advanced Technology Attachment
Parallel ATA
先发低位
3.2 USB
Universal Serial Bus
串行结构;四根线:两个电源,两个数据(D+, D-, 差分传输)
作用:用户不必打开机箱安装外设,不必设置开关跳线等;热插拔
结构:一个 root Hub ,层次结构;级联
设备检测:
- 根 HUB 定时查询接口状态
- 若检测到,给设备赋 7 位地址(每台计算机最多接 127 个外设)
- 只有 1 个主设备,无需仲裁; root hub 轮询 devices , CPU 和 root hub 之间用中断
- 除了 root hub 都是从设备,不能主动发请求;产生中断帧后等待 root hub 轮询
Last update:
December 26, 2021
Authors: