Chapter 3 Basic Input/Output(1)
Chapter 3 Basic Input/Output(1)
英文 | 中文 |
---|---|
I/O capability | 输入/输出能力 |
programmer’s point of view | 程序员的视角 |
basic I/O operations | 基本输入/输出操作 |
Accessing I/O Devices | 访问输入/输出设备 |
I/O Device Interface | 输入/输出设备接口 |
Communication Methods with CPU | 与 CPU 的通信方法 |
Program controlled I/O (Polling) | 程序控制输入/输出(轮询) |
Interrupt driven I/O | 中断驱动输入/输出 |
Direct Memory Access (DMA) | 直接内存访问(DMA) |
英文 | 中文 |
---|---|
Accessing I/O Devices | 访问输入/输出设备 |
Memory mapped I/O | 内存映射输入/输出 |
Separated I/O (Isolated I/O) | 独立(隔离)输入/输出 |
I/O Device Interface | 输入/输出设备接口 |
访问输入/输出设备
(1)
- 计算机系统各组件通过互联网络进行通信。
(2)
- 前一章所讲的地址空间和内存访问概念同样适用于输入/输出设备。
- 每个输入/输出设备都必须包含一些可寻址的位置。
- 这些位置可通过加载(Load)和存储(Store)指令来访问。
- 这些位置是通过输入/输出寄存器来实现的。
(3)
- 内存映射输入/输出(Memory mapped I/O):
- 输入/输出设备和内存共享同一个地址空间。
- 不需要用于输入/输出的特殊命令。
- 输入/输出操作看上去就如同内存的读/写操作一样。
- 例如:加载指令“Load R2, DATAIN”(将输入设备中某个寄存器地址DATAIN处的数据加载到寄存器R2中),存储指令“Store R2, DATAOUT”(将寄存器R2中的数据存储到输出设备中某个寄存器地址为DATAOUT的地方)。
- 其中,DATAIN是输入设备中一个寄存器的地址,DATAOUT是输出设备中一个寄存器的地址。
(4)
- 内存映射输入/输出(Memory mapped I/O):
- 优点:
- 任何能够访问内存的机器指令都可用于在输入/输出设备和其他部件之间传输数据。
- 缺点:
- 宝贵的内存地址空间会被占用。
- 优点:
(5)
- 独立(隔离)输入/输出(Separated I/O 或 Isolated
I/O):
- 有独立的地址空间。
- 需要使用专门的输入/输出指令来执行输入/输出传输操作,例如“IN”(输入指令)、“OUT”(输出指令)。
- 优点:
- 输入/输出设备只需处理较少的地址线。
- 注意事项:
- 独立的输入/输出地址空间并不一定意味着输入/输出地址线在物理上与内存地址线是完全分开的。
I/O设备接口
(1)
- I/O设备相关问题:
- 外设种类繁多:
- 传输的数据量各不相同。
- 传输速度有差异。
- 数据格式也不一样。
- 所有外设的速度都比CPU和内存(RAM)慢。
- 因此需要I/O接口来协调。
- 外设种类繁多:
(2)
- I/O设备接口:
- 定义:I/O设备接口是位于设备和互联网络之间的电路。
- 功能:
- 为数据传输以及状态和控制信息的交换提供途径。
- 包含了数据寄存器、状态寄存器以及控制寄存器,这些寄存器可通过加载(Load)和存储(Store)指令进行访问。
- 内存映射I/O使得软件能够将这些寄存器视作内存中的存储单元来操作。
Quiz (1)
- 问题
- 关于内存映射I/O,以下哪一项是不正确的?
- 选项
- A. 输入/输出设备和内存共享同一个地址空间。
- B. 任何能够访问内存的机器指令都可用于在输入/输出设备和其他部件之间传输数据。
- C. 宝贵的内存地址空间会被占用。
- D. 输入/输出设备只需处理较少的地址线。
- 答案
- D
- 解释
- 选项A:内存映射I/O的特点之一就是I/O设备和内存共享相同的地址空间,这是其基本定义的一部分,所以该选项正确。
- 选项B:在内存映射I/O方式下,由于I/O设备和内存共享地址空间,所以可以使用任何访问内存的机器指令来对I/O设备进行数据传输,这个说法是正确的。
- 选项C:内存映射I/O会占用内存地址空间,这是它的一个缺点,所以该选项正确。
- 选项D:“输入/输出设备只需处理较少的地址线”这是独立(隔离)I/O(Separated I/O或Isolated I/O)的优点,而不是内存映射I/O的特点,所以该选项错误。
Quiz (2)
- 问题
- 内存映射I/O和独立(隔离)I/O之间的区别是什么?
- 答案
- 内存映射I/O:
- I/O设备和内存共享同一个地址空间。
- 不需要用于I/O的特殊命令,任何能够访问内存的机器指令都可以用于在I/O设备和其他部件之间传输数据。
- 会占用宝贵的内存地址空间。
- 独立(隔离)I/O:
- 有独立的地址空间。
- 需要使用特殊的I/O指令来执行I/O传输。
- I/O设备只需处理较少的地址线。
- 内存映射I/O:
- 解释
- 地址空间方面:
- 内存映射I/O是让I/O设备和内存共享地址空间,这意味着在操作系统或程序看来,I/O设备的寄存器就像是内存中的单元,通过访问内存的方式就可以操作I/O设备。例如,在某些体系结构中,对特定内存地址范围的读写操作实际上就是对I/O设备进行数据传输。
- 独立I/O则是为I/O设备设置独立的地址空间,与内存地址空间分开。这样的设计使得I/O设备的地址空间和内存地址空间相互独立,便于管理和区分。
- 指令使用方面:
- 内存映射I/O不需要特殊的I/O指令,因为可以直接使用内存访问指令(如加载和存储指令)来操作I/O设备。这种方式使得程序设计更加灵活,因为程序员可以像操作内存一样方便地操作I/O设备。
- 独立I/O需要专门的I/O指令(如IN和OUT指令)来进行I/O传输。这些指令专门用于在CPU和I/O设备之间进行数据交换,使得对I/O设备的操作和对内存的操作在指令层面就区分开来。
- 地址线处理方面:
- 内存映射I/O由于共享内存地址空间,I/O设备可能需要处理较多的地址线,以适应内存地址空间的范围。这是因为它要在共享的地址空间中占据一定的位置。
- 独立I/O设备因为有自己独立的地址空间,通常可以只处理较少的地址线,这些地址线仅用于在其独立的地址范围内进行寻址,相对简单一些。
- 地址空间方面:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Totoroの旅!
评论