输入/输出硬件和输入/输出控制器

2024年8月28日 | 阅读 4 分钟

在本文中,我们将详细了解输入/输出硬件和输入/输出控制器。

输入/输出硬件

为了管理和控制连接到计算机的各种 I/O 设备,I/O 系统需要一些硬件和软件组件。I/O 设备通常使用某些硬件设备。 这些是: 系统总线和端口。

  • 端口是用于将 I/O 设备连接到计算机的插头。
  • 总线是一组电线,端口和 I/O 控制器都连接到这些电线,并通过这些电线发送 I/O 命令信号。

输入/输出控制器

输入/输出控制器是连接到每个设备并用于接受输入和向这些设备提供输出的组件。应用程序借助这些 I/O 控制器访问 I/O 设备。因此,I/O 控制器是一种外围设备,使主处理器能够主机系统和 I/O 设备之间传输数据。I/O 控制器是一种专用处理器,具有自治性质。自治意味着 I/O 控制器在主 CPU 继续执行程序的同时对 I/O 设备执行操作。CPU 通过写入和读取 I/O 端口来控制 I/O 控制器的活动。I/O 控制器具有用于存储数据和控制信号的寄存器。 这些寄存器是:

  1. 控制寄存器包含显示设备功能的信息,例如一位显示设备是以半双工模式还是全双工模式通信,另一位显示奇偶校验,第三位显示数据的字长。
  2. 状态寄存器保存显示 I/O 命令状态的位。这些位指示命令的成功、忙碌或失败状态。
  3. 输入寄存器包含最终用户读取的输入。
  4. 输出寄存器保存主机写入的输出。程序计数器保存处理器将要执行的下一条指令的地址。

轮询

轮询是 CPU 或程序等单元用于检查 I/O 设备状态的技术。如果设备未处于所需状态,检查单元将继续其工作,而无需等待设备达到所需状态。轮询也称为忙等待,因为设备忙于检查其他设备的状态。轮询是处理多个 I/O 设备的常见方法,通过扩展检查状态的忙等待循环。当发现设备处于所需状态时,CPU 将设备分支到相应的中断服务例程 (ISR),以便由 ISR 处理该设备产生的中断。ISR 在执行 I/O 操作后终止。设备再次分支到忙等待循环中。忙等待循环确保 CPU 持续检查设备状态以服务每个设备。

中断

每当进程需要执行 I/O 时,它都可以使用中断。中断会停止程序的执行以执行其他任务,例如数值计算。中断会发出事件发生的信号。如果发生中断,CPU 会将进程的当前状态存储在程序寄存器中并停止程序执行。CPU 开始执行中断。当 CPU 完成其处理时,它会恢复进程的状态并继续执行。中断处理器正常功能的 I/O 设备会生成各种类型的中断

  1. 程序中断。 当程序语句导致错误(例如除零、数据不匹配和算术溢出)时由程序生成。
  2. 时间中断。 由处理器中内置的计时器生成,用于执行定期所需的功能。
  3. I/O 中断。 由 I/O 硬件或控制器生成,用于通知最终用户 I/O 操作完成或程序执行期间发生的任何错误。
  4. 硬件故障中断。 当发生任何问题(例如奇偶校验错误或电源故障)时由硬件生成。
  5. 主管调用 (SVC) 中断。 在执行过程中,如果进程需要执行 I/O 操作,则由进程本身生成。
  6. 重启中断。 在按下控制台的重启按钮时生成。

对于每种中断,操作系统中都写入了代码。这些代码称为中断服务例程 (ISR)。它然后决定在发生特定中断时采取的必要步骤。操作系统以两种方式处理中断

  1. 同步 I/O。 暂停程序并执行 I/O 操作。在 I/O 操作完成后;程序的先前状态恢复。在处理 I/O 操作期间,CPU 保持空闲。
  2. 异步 I/O。执行 I/O 操作而不暂停程序。I/O 操作与程序的其他操作同时运行。