I/O设备详解

news2025/2/13 11:49:17

目录

一. 什么是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设备多样性的解决办法

 

 

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


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/639566.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】红黑树的模拟实现

文章目录 一、红黑树的概念二、红黑树的性质三、红黑树节点的定义四、红黑树结构五、红黑树的插入操作六、红黑树的调整1.叔叔存在且为红2.叔叔不存在或者存在且为黑3.插入完整代码4.总结 七、红黑树的验证八、红黑树的删除九、红黑树与AVL树的比较十、红黑树的应用十一、红黑树…

d2l_第四章学习_Softmax Regression

x.1 Classification 分类问题 x.1.1 Classification和Regression的区别 注意,广义上来讲,Classification/Softmax Regression 和 Linear Regression 都属于线性模型。但人们口语上更习惯用Classification表示Softmax Regression,而用Regres…

C++特殊类的设计与类型转换

特殊类的设计与类型转换 特殊类的设计请设计一个类,只能在堆上创建对象请设计一个类,只能在栈上创建对象请设计一个类,只能创建一个对象(单例模式) C的类型转换 特殊类的设计 请设计一个类,只能在堆上创建对象 通过new创建的类就…

Baumer工业相机堡盟工业相机如何使用BGAPISDK对两个万兆网相机进行硬件触发同步(C++)

Baumer工业相机堡盟工业相机如何使用BGAPISDK对两个万兆网相机进行硬件触发同步(C) Baumer工业相机Baumer工业相机BGAPISDK和触发同步的技术背景Baumer工业相机使用BGAPISDK进行双相机主从相机触发1.引用合适的类文件2.使用BGAPISDK设置主相机硬件触发从…

C++中内存泄漏,内存溢出区别

C/C中内存泄露和内存溢出的区别 注:泄露为没有释放内存,溢出为分配空间不够,数据溢出了 内存溢出(out of memory)是指程序在申请内存时,没有足够的内存空间供其使用。 内存泄漏(memory leak&…

【ROS_Driver驱动真实UR机械臂】

【ROS_Driver驱动真实UR机械臂】 1. 前言2. 安装fmauch_universal_robot和驱动3. 仿真3.1 启动gazebo3.2 启动move it规划3.3 启动rviz 4. 运行机械臂4.1 启动rviz4.2 启动示教器程序4.3 启动moveit4.4 启动rviz 5. 一些说明补充5.1 ur_calibration 提取标定信息5.2 自带程序5.…

从原理到实践:使用Mediacodec编码H265并实现解码H265码流

H265 H265,也称为HEVC(High Efficiency Video Coding),是一种高效视频编码格式。它是H264(AVC)的后继者,也是ITU-T和ISO/IEC联合开发的标准。相比H264,H265可以在同样的视频质量下&…

【数据库原理与应用 - 第三章】数据库设计

数据库设计的步骤 需求分析阶段概念模型设计阶段 —— E-R图逻辑模型设计阶段 —— 关系模型物理结构设计阶段 数据库实施阶段数据库运行和维护阶段 目录 数据库设计的步骤 一、需求分析 1、主要任务 2、对象模型 二、数据库概念结构设计 1、概念数据模型 E-R图 1、概念…

Mybatis《学习笔记(22版尚硅谷)》

Mybatis简介 MyBatis历史 MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下,iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到GithubiBatis一词来源于“intern…

C语言中的for循环语句

表达式1:设置初始条件,只执行一次,可以为多个变量设置初始值 表达式2:循环条件表达式,判断是否集训循环 表达式3:执行循环体后再执行 例如,使用for循环打印1-10的数字首先定义整形变量a0&…

【V4L2】 v4l2框架分析之v4l2_device

👀👉本系列文章基于linux内核版本4.1.15分析media子系统下的V4L2。先分析组成V4L2的核心数据结构以及各组成元素的含义和作用。相关文章: ❤(1)《【V4L2】v4l2框架分析之video_device》 ❤(2)《…

30分钟了解并学会git的使用(绝对干货)

概述: 在programmer行业有一句流传许久的话:不会用git的程序员,不是真的程序员!!! 足以看出来git在业界的认可度有多高,所以我们混这行的都应该学会这个由Linux之父林纳斯开发 的第二大发明&a…

【QT/OpenCV】Qt创建并发布OpenCV dll项目

文章目录 01、开发版本02、QT创建dll项目03、dll项目配置说明04、dll动态库测试 01、开发版本 以下所有源码与软件都是基于下面的版本。 1、QT: Based on Qt 5.12.2 (MSVC 2017, 32 bit) 2、OpenCV: OpenCV – 4.5.1 tips: OpenCV的版本不一…

web漏洞-逻辑越权之登录脆弱支付篡改(34)

这节课是这两个内容,登录的内容会讲不完,会有一小点部分,在别的课将, #登录应用功能点产生的安全问题 只要有登录功能都可以检测(排除之前讲过的) 1.登陆点的暴力破口(很好理解 2.http/http…

【第三节】列表

上一节介绍了最常见的两种数据类型 字符串和数字 这一节将介绍列表 列表 首先,什么是列表?列表是由一系列按照特定顺序排列的元素组成,在python中由中括号[ ]定义 首先列表是一系列的元素,这些元素的种类可以不同,一…

python3 爬虫相关学习9:BeautifulSoup 官方文档学习

目录 1 BeautifulSoup 官方文档 2 用bs 和 requests 打开 本地html的区别:代码里的一段html内容 2.1 代码和运行结果 2.2 用beautiful 打开 本地 html 文件 2.2.1 本地html文件 2.2.2 soup1BeautifulSoup(html1,"lxml") 2.3 用requests打开 本地 h…

微服务治理【注册发现】Nacos

目录 Nacos是什么? Nacos有什么用? 使用 Nacos 服务发现的流程图 Nacos是什么? Nacos是阿里巴巴开源的一个服务发现、配置管理和服务管理平台,是一种基于云原生架构的动态服务发现和配置管理工具。 Nacos有什么用&#xff…

什么是API测试?开发必知的8种API自动化测试类型

API测试 API自动化测试在产品质量控制和CI/CD流程检测中扮演着非常重要的角色。与GUI测试不同,API测试可以更灵活应地适应发布周期短和频繁变更的需求或产品,而且也不会破坏测试输出结果。 什么是API测试? API是应用程序编程接口的首字母缩…

jetLinks协议开发对接真实设备方式

jetLinks协议开发对接真实设备方式 拿到设备确定设备的SDKSDK调用流程梳理SDK集成JetLinks 拿到设备 首先拿到设备,确认设备型号 然后登入海康威视官网,下载 https://www.hikvision.com/cn/support/tools/hitools/ 连接设备修改其对应的IP地址使得本…

信号都是如何产生的,干货满满

目录 一、哪三大阶段 二、产生信号 1、通过键盘产生信号 2、系统调用 3、软件条件产生信号 4、硬件异常产生信号 三、Term和core是什么 一、信号一生三大阶段 1、产生信号:由通过键盘、系统调用、软件条件、硬件异常产生这几种方法产生信号。 2、信号储存&a…