I/O设备详解

目录

一. 什么是IO设备

二. IO设备分类

2.1按照使用特性分类

 2.2按照传输速率分配

2.3按照信息交换的单位分类

三. IO设备的构成

 3.1 IO的机械部件

 3.2 IO的电子部件

3.2.1设备控制器(IO控制器功能简介)

 3.2.2设备控制器(IO控制器)组成

四. IO设备与计算机交互

 4.1 程序直接控制交互

 4.2加入中断(4.1的改进版)

4.3DMA方式(4.2的改进版)

4.4通道控制方式(4.3改进版)

 4.5总结对比

五. IO设备多样性的解决办法


一. 什么是IO设备

I/O ” 就是 “输入 / 输出”( Input/Output
I/O 设备就是可以将数据输入到计算机,或者可以接收计算机输出数据的外部设备,属于计算机中的硬件部件。

 

UNIX 系统将外部设备抽象为一种特殊的文件,用户可以使用与文件操作相同的方式对外部设备进行操作。

二. IO设备分类

2.1按照使用特性分类

 2.2按照传输速率分配

2.3按照信息交换的单位分类

(1)字符设备。以字符为单位向主机发送或从主机接收一个字符流的设备,无法对其进行定位和寻址。通常大部分输入设备和输出设备都可以看作是一种字符设备。如键盘、鼠标、显示器、打印机等。

(2)块设备。以一个固定大小的数据块为单位与主机交换信息,比如外部存储器,硬盘、SSD、光盘驱动器等。每个数据块有唯一的位置信息,可寻址。

 


三. IO设备的构成

I/O设备通常由机械部分和电子部分组成,机械部分是I/O设备本身,电子部分称为“设备控制器”或“I/O控制器”。I/O设备又称外围设备、外部设备,简称外设。 

 3.1 IO的机械部件

 3.2 IO的电子部件

3.2.1设备控制器(IO控制器功能简介)

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

主要功能:控制一个或多个I/O设备,以实现I/O设备和计算机之间的数据交换

设备控制器是CPU与I/O设备之间的接口,接收从CPU发来的命令,并去控制I/O设备工作

设备控制器是一个可编址的设备:

  • 当仅控制一个设备时,它只有一个唯一的设备地址

  • 若控制器可连接多个设备时,则应含有多个设备地址,并使每一个设备地址对应一个设备

 

 3.2.2设备控制器(IO控制器)组成

设备控制器的一般结构(不同I/O模块在复杂性和控制外设的数量上相差很大):

 图中所表示含义如下:
数据:IO设备所传输的数据

状态:IO设备反馈状态

控制:控制器向IO设备发出信息

控制器与设备的接口用于实现控制器与设备之间的通信
I/O逻辑 :负责接收和识别CPU的各种命令(如地址译码),并负责对设备发出命令
CPU与控制器的接口:用于实现CPU与控制器之间的通信。CPU通过控制线发出命令;通过地址线指明要操作的设备;通过数据线来取出(输入)数据,或放入(输出)数据
值得注意的小细节:
①一个 I/O 控制器可能会对应多个设备;
②数据寄存器、控制寄存器、状态寄存器可能有多个(如:每个控制 / 状态寄存器对应一个具体
的设备),且这些寄存器都要有相应的地址,才能方便 CPU 操作。有的计算机会让这些寄存器占
用内存地址的一部分,称为 内存映像 I/O ;另一些计算机则采用 I/O 专用地址,即 寄存器独立编址。

 


四. IO设备与计算机交互

 4.1 程序直接控制交互

流程图: 

 

 4.2加入中断(4.1的改进版)

引入 中断机制 。由于 I/O 设备速度很慢,因此在 CPU 发出读 / 写命令后,可 将等待 I/O 的进程阻塞 ,先切换到别的进程执行。当 I/O完成后,控制器会向CPU 发出一个中断信号, CPU 检测到中断信号后 ,会保存当前进程的运行环境信息,转去执行中断处理程序处理该中断。处理中断的过程中,CPU I/O 控制器读一个字的数据传送到CPU 寄存器,再写入主存。接着, CPU 恢复等待 I/O 的进
程(或其他进程)的运行环境,然后继续执行
注意:
①CPU会在每个指令周期的末尾检查中断;
②中断处理过程中需要保存、恢复进程的运行环境,这个过程是需要一定时间开销的。可见,如果中断发生的频率太高,也会降低系统性能。
流程图:

4.3DMA方式(4.2的改进版)

与“中断驱动方式”相比, DMA 方式 Direct Memory Access 直接存储器存取 。主要用于块设备的
I/O 控制)有这样几个改进:
数据的传送单位是“块” 。不再是一个字、一个字的传送;
②数据的流向是从设备直接放入内存,或者从内存直接到设备。不再需要 CPU 作为“快递小哥”。
③仅在传送一个或多个数据块的开始和结束时,才需要 CPU 干预。

 

DMA工作过程:

 流程图:

 

优点:数据传输以“块”为单位, CPU 介入频率进一步降低。数据的传输不再需要先经过 CPU 再写入内存,数据传输效率进一步增加。CPU I/O 设备的并行性得到提升。
缺点 CPU 每发出一条 I/O 指令,只能读 / 写一个或多个连续的数据块。 如果要读/ 写多个离散存储的数据块,或者要将数据分别写到不同的内存区域时, CPU 要分别发出多条I/O指令,进行多次中断处理才能完成。

4.4通道控制方式(4.3改进版)

通道 :一种 硬件 ,可以理解为是 “ 弱鸡版的 CPU ”。通道可以识别并执行一系列 通道指令

流程图:

 

 

缺点:实现复杂,需要专门的通道硬件支持
优点: CPU 、通道、 I/O 设备可并行工作,资源利用率很高。

 4.5总结对比

五. IO设备多样性的解决办法

 

 

文件系统(当然也包括在其之上的应用程序)完全不清楚它使用的是什么类型的磁盘。它只需要简单地向通用块设备层发送读写请求即可,块设备层会将这些请求路由给对应的设备驱动,然后设备驱动来完成真正的底层操作。


 

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值