<aside>
📖 Transmission Speed
Transmission speeds are described in kilobits per second (kbps). Now, that is not disk storage, files size, or memory size. For transmission speeds, kilobits means 1000 bits.
Speed in physics is based on SI-units.
</aside>
1. 外围设备
<aside>
📖 定义
输入/输出操作通过连接到输入输出模块的各种外部设备完成,这些外部设备提供了在外部环境和计算机系统之间的数据交换,通常被称为外围设备(peripheral device),简称为外设 (peripheral)
类型
- 人可读设备:适用于与计算机用户通信,如显示器,打印机,......
- 机器可读设备:适用于与设备通信,如磁盘,磁带,......
- 通信设备:适用于与远程设备通信
<aside>
📖 为什么不能把外设直接连接到系统总线上
- 外设种类繁多,操作方法多种多样
- 外设的数据传送速度一般比存储器或处理器的慢得多
- 某些外设的数据传送速度比存储器或处理器要快
- 外设使用的数据格式和字长度通常与处理器不同
</aside>
</aside>
2. I/O 模块
<aside>
📖 用途
I/O模块是计算机内部系统和外设之间的桥梁
- 通过系统总线或中央交换器和存储器连接
- 通过专用数据线与一个或多个外设连接
</aside>
<aside>
📖 外围设备的接口
- 输入/输出模块的接口以控制、状态和数据信号的形式出现
- 与设备相关的控制逻辑控制外设的操作,以响应来自输入/输出模块的命令
- 缓冲器用于缓存输入/输出模块和外设之间传送的数据
<aside>
📖 I/O 模块的功能
- 处理器通信
- 命令译码: 输入/输出模块接收来自处理器的命令,
这些命令一般作为信号发送到控制总线
- 数据: 数据是在处理器和输入/输出模块之间经由数据总线来交换的
- 状态报告: 由于外设速度很慢, 所以知道输入/输出模块的状态很重要
- 地址识别: 输入/输出模块必须能识别它所控制的每个外设的唯一 地址
- 设备通信
- 数据缓冲
- 外设的数据传送速度一般比存储器或处理器的慢得多
- 某些外设的数据传送速度比存储器或处理器要快
- 控制和定时
- 处理器会非预期的与一个或几个外设进行通信
- 一些内部资源,如主存和系统总线,是被共享的
- 例如: 控制从外设到处理器的数据传送包括以下几个步骤
- 处理器查询输入/输出模块以检验所连接设备的状态
- 输入输出模块返回设备状态
- 如果设备运转并准备就绪,则处理器通过向输入/输出模块发出一条命令,请求数据传送
- 数据从输入/输出模块来到处理器
- 检错
- 检错并把差错信息报告给处理器
- 差错类型
- 设备报告的机械和电路故障
- 传输过程中数据位的变化
</aside>
<aside>
📖 I/O 模块的结构
</aside>
<aside>
📖 外部接口
- 并行接口: 多根线连接输入/输出模块和外设,同时传送多位数据
- 串行接口: 只有一根线用于传输数据,每次只传输一位数据
由于并行接口要求每次同时传送,当传输速度和总线长度增加时,总线的时钟频率会受到限制
</aside>
3. I/O 操作技术
3.1 编程式IO
<aside>
📖 定义
处理器通过执行程序来直接控制I/O操作,当处理器发送一条命令到I/O模块时,它必须等待,直到I/O操作完成
</aside>
<aside>
📖 过程
- 当处理器在执行过程中遇到一条与I/O操作有关的指令时,它通过发送指令到适当的I/O模块来执行这条指令
- I/O模块将执行所要求的动作,然后在I/O状态寄存器中设置一些适当的位
- I/O不会中断处理器,因此处理器需要周期性地检查I/O模块的状态,直到发现该操作完成
</aside>
<aside>
📖 I/O命令
为了执行I/O操作,处理器发送一个指定具体I/O模块和外设的地址,并发送一条I/O命令
- 类型
- 控制命令:激活外设并告诉它要做什么
- 测试命令:测试I/O模块及其外设相关的各种状态条件
- 读命令:使I/O模块从外设获得一个数据,把它存入内部缓冲区
- 写命令:使I/O模块从数据总线获得一个数据,把它传入外设
</aside>
<aside>
📖 I/O指令
- I/O指令很容易映射为I/O命令, 并且两者之间通常是简单的一一对应关系
- 编址方式
- Memory Mapping (存储器映射式) I/O
- 存储单元和I/O设备有统一的地址空间
- 能使用大的指令系统,可进行更有效的编程
- Independent(分离式) I/O
- 让总线既有存储器的读线和写线,同时也有输入和输出命令线
</aside>
3.2 中断驱动式IO
<aside>
📖 定义
处理器发送一条I/O命令后,继续执行其他指令;
并且当I/O模块完成其工作后,才去中断处理器工作
</aside>
<aside>
📖 过程
- 处理器发送一个I/O命令到模块,然后去处理其它有用的工作
- 当I/O模块准备和处理器交换数据时, 它中断处理器以请求服务
- 处理器执行数据传送,最后恢复它原先的处理工作
</aside>