【计算机组成原理·考研】I/O接口(I/O控制器)

本文详细阐述了I/O接口在主机与外设间的信息传递中的关键作用,包括地址译码、通信控制、数据缓冲、信号转换及各种接口类型,探讨了I/O端口的编址方式及其优缺点,并举例说明了打印机适配器、网络控制器和中断控制器的应用。
摘要由CSDN通过智能技术生成

image.png

1.概述

  • I/O接口是主机和外设之间的交接界面,主机和外设之间可通过I/O接口实现信息传递。
  • I/O接口是为了解决主机和外设在速度上的差异而设置的。

2.功能

2.1 进行地址译码和设备选择

I/O接口会对CPU送来的地址码进行译码,然后产生设备选择信息,以选中指定外设与CPU进行信息交换。

2.2 实现主机与外设的通信联络控制

解决主机与外设的时序配合问题,协调不同速度的外设与主机进行信息交换,使得整个计算机协调统一的工作。

2.3 实现数据缓冲

I/O接口会设置数据缓冲寄存器,以暂存数据,解决因外设速度与主机不一致而造成数据丢失的问题。

2.4 信号格式的转换

解决外设电平、数据格式可能与主机存在差异的问题。I/O接口提供了电平转换、串/并或并/串转换、模/数或数/模转换等功能。

2.5 传送控制命令和状态信息

CPU要启动某一外设时,会通过I/O接口中的命令寄存器向外设发出启动命令;外设准备就绪时,会将自身的状态信息存储到I/O接口中的状态寄存器,并反馈给CPU,同时也可以进行错误与状态检测。


3.基本结构

image.png

  • 数据缓冲寄存器可通过数据总线(I/O总线)与主存或CPU进行数据传送。
  • 状态寄存器用于存储接口和外设的状态信息。
  • 控制寄存器用于存储CPU向外设发出的控制命令。
  • 状态寄存器与控制寄存器在数据传送的方向上是相反的。
  • 地址线用于给出要访问的I/O接口中的寄存器的地址。
  • 控制线用于给出读写信号(是读寄存器,还是写寄存器)、仲裁信号和握手信号等。
  • I/O控制逻辑能够对控制寄存器中的命令字进行译码,并将译码后产生的额控制信号通过外设界面控制逻辑发送到外设;同时它还能协调数据缓冲寄存器与外设之间的数据交换;它还能收集外设的状态信息并存储到状态寄存器中。

I/O指令用来访问I/O接口中的数据缓冲寄存器和状态寄存器。
I/O指令只能在操作系统内核的底层I/O软件中使用,属于特权指令。

端口与接口的不同:
端口是指I/O接口电路中的可进行读/写的寄存器。
多个端口 + I/O控制逻辑 = I/O接口。

4.类型

4.1 按(I/O接口与外设一侧)数据传送方式划分

  1. 并行接口
  2. 串行接口

4.2 按主机访问I/O设备的控制方式划分

  1. 程序查询接口
  2. 中断接口
  3. DMA接口

4.3 按功能划分

  1. 可编程接口
  2. 不可编程接口

5.I/O端口

5.1 说明

  • I/O端口是指I/O接口上能够被CPU直接访问(读/写)的寄存器。

5.2 分类

数据端口、状态端口、控制端口。

通常情况下,CPU对数据端口可读可写,对状态端口只读,对控制端口只写。

5.3 编址方式

5.3.1 统一编址/存储器映射方式

5.3.1.1 说明

将I/O端口视为存储器的存储单元进行地址分配,因而也就无需设置专门的I/O指令,使用统一的访存指令就可访问I/O端口

5.3.1.2 优缺点
优点
  1. 使CPU访问I/O端口更方便、更灵活。
  2. 增加了I/O端口的编址空间。
缺点
  1. I/O端口占用了存储器地址,使内存容量变小。
  2. 通过存储器编址的I/O设备进行数据I/O操作,执行速度较慢。

在统一编址的方式下,是通过不同的地址码区分存储单元和I/O设备的。

5.3.2 独立编址/I/O映射方式

5.3.2.1 说明
  • I/O端口的地址空间与主存地址空间属于两个独立的地址空间。
  • 由于无法从地址码方面区分I/O端口地址与主存地址,因而需要专门的I/O指令来访问I/O端口。
5.3.2.2 优缺点
优点

I/O指令与存储器指令有明显区别,程序编制清晰,便于理解。

缺点

I/O指令少,一般只能对端口进行传送操作,同时还需要CPU提供存储器读/写、I/O读/写两套控制信号,增加了控制复杂性。

在独立编址的方式下,是通过不同的指令来区分存储单元和I/O端口的。


6.栗子🌰

打印机适配器、网络控制器、可编程中断控制器。

注意:
磁盘驱动器不属于I/O接口,因为磁盘驱动器由磁头,磁盘和读写电路组成,即我们常说的磁盘本身。

  • 22
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程旧事

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值