38-IO设备概念与IO控制器

I/O设备包括输入、输出和双向设备,如键盘、显示器和移动硬盘。在Unix系统中,它们被视为特殊文件处理。设备分类基于使用特性和传输速度,如人机交互设备、存储设备和网络设备。I/O控制器作为CPU和设备间的中介,包含数据交换、状态报告和地址识别等功能。I/O控制器的设计有两种主要方式:内存映射I/O和寄存器独立编址,每种都有其优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

I/O设备的概念和分类

什么是I/O设备

"I/O"就是"输入/输出"设备.
鼠标,键盘:典型的输入型设备
显示器:输出型设备
移动硬盘:既可以输入、又可以输出设备


Unix将外部设备抽象为特殊的文件,用户可以使用与文件操作相同的方式对外部文件设备进行操作。
Write操作:向外部设备写出数据
Read操作:向外部设备读入数据


I/O设备分类

按照使用特性

  1. 人机交互类外部设备[数据传输速度慢]
  2. 存储设备 [数据传输速度快]
  3. 网络通信设备 [数据传输速度介于两者之间]

按照传输速度分类

  1. 低速设备
  2. 中速设备
  3. 高速设备

按照信息交换的单位分配

  1. 块设备[传输速度较高,可寻址,即对它可随机的读写任意一块]
  2. 字符设备[传输速度慢,不可寻址,通常采用中断驱动方式]

IO设备

机械部件

机械部件主要用来执行具体的I/O操作,比如我们看得见摸得着的鼠标/键盘的按钮;显示器的LED屏;移动硬盘的磁臂,磁盘盘面。

电子部件(IO控制器、设备控制器)

电子部件通常是一块插入主板扩充槽的印刷电路板
CPU无法直接控制I/O设备的机械部件,因此I/O设备还有一个电子部件作为CPU和I/O设备机械部件之间的"中介",用于实现CPU对设备的控制。

I/O控制器的功能

  1. 接受和识别CPU发出的命令
    1. 如CPU发来的read/write命令,I/O控制器中会有相应的控制寄存器来存放命令和参数。
  2. 向CPU报告设备的状态
    1. I/O控制器中会有相应的状态寄存器,用于记录I/O设备的当前状态。如1表示空闲,0表示忙碌
  3. 数据交换
    1. I/O控制器中会设置相应的数据寄存器。输出时,数据寄存器用于暂存CPU发来的数据,之后再由控制器传送设备。输入时候,数据寄存器用于暂存设备发来的数据,之后CPU从数据寄存器中取走数据。
  4. 地址识别
    1. 类似于内存的地址,为了区分设备控制器中的各个寄存器,也需要给各个寄存器设备一个特定的地址.I/O控制器通过CPU提供的"地址"来判断CPU要读/写的是哪个寄存器。

I/O控制器的组成

  1. CPU与控制器的接口
    1. 用于实现CPU和控制器之间的通信。CPU通过控制线发出命令,通过地址线指明要操作的设备,通过数据线来取出数据或者放入数据。
    2. 涉及到控制线地址线以及数据总线
  2. I/O逻辑
    1. 负责接受和识别CPU的各种命令(如地址译码),并负责设备发出的命令
  3. 控制器与设备的接口
    1. 用于实现控制器和设备之间的通信

  1. 一个I/O控制器可能对应多个设备
  2. 数据寄存器、控制寄存器、状态寄存器可能有多个(如:每个控制/状态寄存器会对应一个具体的设备),且这些寄存器都要有相应的地址,才能方便CPU操作。有的寄存器会让这些寄存器占用内存的一部分,称为内存映像I/O;另一些计算机则采用I/O专用地址,即寄存器独立编 址
  3. 内存映射I/O,控制寄存器中的寄存器与内存地址统一编址
    1. 优点:简化了指令,可以采用对内存进行操作的指令来对控制器进行操作。
  4. 寄存器独立编址:控制器中的寄存器使用单独的地址
    1. 缺点:需要设置专门的指令来实现对控制器的操作,不仅要指明寄存器的地址,还要指明寄存器的编号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小蓝学不会嵌入式!

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

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

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

打赏作者

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

抵扣说明:

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

余额充值