I/O设备的概念和分类,I/O控制器

news2024/9/27 19:15:29

文章目录

  • 1.什么是I/O设备
  • 2.按使用特性分类
      • 1.人机交互类外部设备
      • 2.存储设备
      • 3.网络通信设备
  • 3.按传输速率分类
      • 1.低速设备:
      • 2.中速设备:
      • 3.高速设备:
  • 4.按信息交换的单位分类
      • 1.块设备:
      • 2.字符设备:
  • 5.I/O设备的机械部件
  • 6.I/O设备的电子部件(I/O控制器)
      • 1.接收和识别CPU发来的命令
      • 2.向CPU报告设备的状态
      • 3.数据交换
      • 4.地址识别
      • 5.I/O控制器的组成
            • 1.内存映射I/O
            • 2.寄存器独立编址。

1.什么是I/O设备

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

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

2.按使用特性分类

1.人机交互类外部设备

用于人机交互,如:鼠标,键盘,打印机等。
数据传输速度慢。

2.存储设备

用于数据存储,如:移动硬盘,光盘。
数据传输速度块。

3.网络通信设备

用于网络通信,如:路由器,调制调节器。
数据 传输速度介于上述二者之间。

3.按传输速率分类

1.低速设备:

鼠标、键盘等——传输速率为每秒几个到几百字节。

2.中速设备:

如激光打印机等—―传输速率为每秒数千至上万个字节。

3.高速设备:

如磁盘等一一传输速率为每秒数千字节至千兆字节的设备。

4.按信息交换的单位分类

1.块设备:

如磁盘等――数据传输的基本单位是“块’。
传输速率较高,可寻址,即对它可随机地读/写任一块。

2.字符设备:

鼠标、键盘等―—数据传输的基本单位是字符。
传输速率较慢,不可寻址,在输入/输出时常采用中断驱动方式。

5.I/O设备的机械部件

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

6.I/O设备的电子部件(I/O控制器)

CPU无法直接控制I/O设备的机械部件,因此I/O设备还要有一个电子部件作为CPU和I/O设备机械部件之间的“中介”,用于实现CPU对设备的控制。

这个电子部件就是I/O控制器,又称设备控制器
CPU可控制I/O控制器,又由I/O控制器来控制设备的机械部件。

1.接收和识别CPU发来的命令

如CPU发来的read/write命令,I/O控制器中会有相应的控制寄存器来存放命令和参数。

2.向CPU报告设备的状态

I/O控制器中会有相应的状态寄存器,用于记录I/O设备的当前状态。
如:1表示空闲,0表示忙碌。

3.数据交换

I/O控制器中会设置相应的数据寄存器
输出时,数据寄存器用于暂存CPU发来的数据,之后再由控制器传送设备。
输入时,数据寄存器用于暂存设备发来的数据,之后CPU从数据寄存器中取走数据。

4.地址识别

类似于内存的地址,为了区分设备控制器中的各个寄存器,也需要给各个寄存器设置一个特定的“地址”。
I/O控制器通过CPU提供的“地址”来判断CPU要读/写的是哪个寄存器。

5.I/O控制器的组成

在这里插入图片描述
注意:

  • ①一个I/O控制器可能会对应多个设备;
  • ②数据寄存器、控制寄存器、状态寄存器可能有多个(如:每个控制/状态寄存器对应一个具体的设备),且这些寄存器都要有相应的地址,才能方便CPU操作。有的计算机会让这些寄存器占用内存地址的一部分,称为内存映像I/O;另一些计算机则采用I/O专用地址,即寄存器独立编址
1.内存映射I/O

控制器中的寄存器与内存地址统一编址。
优点:简化了指令。可以对内存进行操作的指令来对控制器进行操作。

在这里插入图片描述

2.寄存器独立编址。

控制器中的寄存器使用单独的地址。
缺点:需要设置专门的指令来实现对控制器的操作,不仅要指明寄存器的地址,还要指明控制器的编号。

在这里插入图片描述

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

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

相关文章

Python实现双目标定、畸变矫正、立体矫正

一,双目标定、畸变矫正、立体矫正的作用 双目目标定: 3D重建和测距:通过双目目标定,您可以确定两个摄像头之间的相对位置和朝向,从而能够根据视差信息计算物体的深度,进行三维重建和测距。姿态估计&#xf…

【ROS入门】机器人系统仿真——相关组件以及URDF集成Rviz

文章结构 相关组件URDF(Unified Robot Description Format)——创建机器人模型Gazebo——搭建仿真环境Rviz(ROS Visualization Tool)——显示机器人各种传感器感知到的环境信息 URDF集成RvizURDF相关语法robotlinkjoint URDF优化——xacro相关语法属性与算数运算宏文件包含 实操…

GD32_定时器输入捕获波形频率

GD32_定时器输入捕获波形频率(多通道轮询) 之前项目上用到一个使用定时器捕获输入采集风扇波形频率得到风扇转速的模块,作为笔记简单记录以下当时的逻辑结构和遇到的问题,有需要参考源码、有疑问或需要提供帮助的可以留言告知 。…

怎么防止公司终端电脑文件资料、设计图纸外泄?

PC营销页: https://isite.baidu.com/site/wjz012xr/2eae091d-1b97-4276-90bc-6757c5dfedee 天锐绿盾防泄密软件主要通过以下几种方式来防止公司设计图纸泄露: 透明加密:天锐绿盾采用透明加密技术,对设计图纸进行加密。这种加密方…

护眼灯台灯哪个牌子好?五款公认最专业护眼台灯推荐

今天跟大家聊聊现在热门的灯具,护眼台灯。目前的护眼台灯市场水很深,有很多不符标准、不适宜学习用光的护眼台灯,以低价吸引大家,在市面上热销,甚至销量非常高。其实这类产品在照度、光衰弱等多项核心参数上根本没有进…

p11 第63题 请设计一个判断字母序列是否对称的算法 桂林电子科技大学015年 数据结构(c语言代码实现)

本题代码如下 int symmetry(linklist* L)//判断循环双链表是否对称 {lnode* p (*L)->next, * q (*L)->prior;while (p ! q && q->next ! p){if (p->data ! q->data)return 0;else{p p->next;q q->prior;}}return 1; } 完整测试代码 #inclu…

快速排序(c语言代码实现)

交换排序:快速排序(不稳定的排序) 快速排序(Quick Sort)是一种常见的排序算法,它采用分治法的思想,对待排序序列进行划分,使得划分出的子序列可以分别进行排序,最终使整…

Python OpenCV剪裁图片并修改对应的Labelme标注文件

Python OpenCV剪裁图片并修改对应的Labelme标注文件 前言前提条件相关介绍实验环境剪裁图片并修改对应的Labelme标注文件代码实现 前言 由于本人水平有限,难免出现错漏,敬请批评改正。更多精彩内容,可点击进入Python日常小操作专栏、OpenCV-P…

RAG之微调垂域BGE的经验之谈

文章目录 前言数据格式部分代码训练参数接下来的尝试总结 前言 随着大模型的爆火,很多垂域行业都开始使用大模型来优化自己的业务,最典型的方法就是RAG(检索增强生成)了。简单来说就是利用检索技术,找出与用户问题相关…

一、PHP环境搭建[phpstorm]

一、安装 1.php编写工具 地址:https://www.jetbrains.com/phpstorm/download/#sectionwindows 图示: 2.php环境 解释:建议使用phpstudy进行安装,安装较为简单 链接:https://www.xp.cn/ 图示: 二、第…

四、W5100S/W5500+RP2040树莓派Pico<TCP Server数据回环测试>

文章目录 1. 前言2. 协议简介2.1 简述2.2 优点2.3 应用 3. WIZnet以太网芯片4. TCP Server数据回环测试4.1 程序流程图4.2 测试准备4.3 连接方式4.4 相关代码4.5 测试现象 5. 注意事项6. 相关链接 1. 前言 在计算机网络中,TCP Server是不可或缺的角色,它…

APP逆向基础(APK流程)

APK的基本结构 Android体系结构和APK基本结构-CSDN博客 APK 打包流程 【Android 安装包优化】APK 打包流程 ( 文件结构 | 打包流程 | 安装流程 | 安卓虚拟机 )_adnroid 安装包优化,打指定资源_韩曙亮的博客-CSDN博客 APK安装流程

Linux下根目录都包含什么? 每个文件什么作用?

bin: binary, 二进制文件目录, 存储了可执行程序, 系统的命令对应的可执行程序都在这个目录中 sbin: super binary, root用户使用的一些二进制可执行程序 home: 存储了普通用户的家目录,家目录名和用户名相同 opt: 第三方软件的安装目录 (交叉编译等…

【tio-websocket】9、服务配置与维护—TioConfig

场景 我们在写 TCP Server 时,都会先选好一个端口以监听客户端连接,再创建N组线程池来执行相关的任务,譬如发送消息、解码数据包、处理数据包等任务,还要维护客户端连接的各种数据,为了和业务互动,还要把这些客户端连接和各种业务数据绑定起来,譬如把某个客户端绑定到一…

2001-2021年省、上市公司五年规划产业政策整理代码+匹配结果

2001-2021年省、上市公司五年规划产业政策整理代码匹配结果 1、时间:2001-2021年 2、来源:整理自wind、国民经济和社会发展五年规划纲要 3、指标: 上市公司数据指标: 国家代码、证券代码、证券简称、公司全称、公司英文全称、…

运行 Python 脚本/代码的几种方式

哈喽大家好,我是咸鱼 我们知道,python 脚本或者说 python 程序其实是一个包含了 python 代码的文件。要让它们实现特定功能,我们需要知道该如何运行(run)它 通过运行 python 代码,我们可以验证脚本/程序是…

Elasticsearch:使用 Open AI 和 Langchain 的 RAG - Retrieval Augmented Generation (三)

这是继之前文章: Elasticsearch:使用 Open AI 和 Langchain 的 RAG - Retrieval Augmented Generation (一) Elasticsearch:使用 Open AI 和 Langchain 的 RAG - Retrieval Augmented Generation (二&…

JAVA设计模式详解(独家AI解析)

JAVA设计模式详解(独家AI解析) 一、JAVA介绍二、JAVA设计模式六大原则三、JAVA设计模式介绍四、JAVA设计模式详解4.1 单例模式4.1.1 懒汉式(Lazy Initialization)4.1.2 饿汉式(Lazy Initialization) 4.2 代…

本地化ddddocr库,完成验证码图片识别,完整流程

1.pycharm-3.8环境,代码,ddddocr库,以及测试图片 2.代码: import ddddocr ocr ddddocr.DdddOcr(oldTrue) with open("1.jpg", rb) as f:image f.read() res ocr.classification(image) print(res)3.完整打包&#…

sheng的学习笔记-【中】【吴恩达课后测验】Course 3 - 结构化机器学习项目 - 第二周测验

课程3_第2周_测验题 目录:目录 要解决的问题 ① 为了帮助你练习机器学习的策略,本周我们将介绍另一个场景,并询问你将如何行动。 ② 我们认为这个在机器学习项目中工作的“模拟器”将给出一个任务,即领导一个机器学习项目可能…