计算机组成原理-输入输出系统(持续更新中)

news2025/2/1 3:57:27

I/O系统基本概念

基本概念

I/O硬件

现代计算机的结构

“I/O”就是"输入/输出"

IO设备就是可以将数据输入到计算机,或者可以接收计算机输出数据的外部设备。

常见的IO设备

 

主机如何与I/O设备进行交互? 

 I/O接口:又称I/O控制器(I/O Controller)、设备控制器,负责协调主机与外部设备之间的数据传输

I/O硬件包括外部设备、I/O接口、I/O总线等。 

 

I/O软件

 I/O软件包括驱动程序、用户程序、管理程序、升级补丁等。

通常采用I/O指令和通道指令实现主机和I/O设备的信息交换。

(1)I/O指令   CPU指令的一部分

注:I/O指令与普通指令格式略有不同,操作码指明了CPU要对IO接口做什么,命令码指明了IO接口要对设备做什么 

(2)通道指令  通道能识别的指令

通道程序提前编制好放在主存中

在含有通道的计算机中,CPU执行I/O指令对通道发出命令,由通道执行一系列通道指令,代替CPU对I/O设备进行管理

I/O控制方式

 

CPU如何控制键盘I/O的完成?通过下面四种方式 

程序查询方式

CPU不断轮询检查I/O控制器中的“状态寄存器”,检测到状态为“”已完成之后,再从数据寄存器取出输入数据

这种方式CPU等待的时间较长,利用率太低。

程序中断方式

等待键盘 I/O时CPU可以先去执行其他程序,键盘I/O完成后I/O控制器向CPU发出中断请求,CPU响应中断请求,并取走输入数据。

这种方式如果对于快速 I/O设备,如“磁盘”,每准备好一个字就给CPU发送一次中断请求,会导致CPU需要花大量的时间来处理中断服务程序,CPU利用率严重下降。

DMA控制方式

DMA控制方式:主存与高速I/O设备之间有一条直接数据通路(DMA总线) 。CPU向DMA接口发出“读/写”命令,并指明主存地址、磁盘地址、读写数据量等参数。

DMA控制器自动控制磁盘与主存的数据读写,每完成一整块数据读写(如1KB为一整块),才向CPU发出一次中断请求。

通道控制方式

有的商用中型机、大型机可能会接上超多的I/0设备,如果都让CPU来管理,那么CPU就太累了..这时就引入了通道控制方式。

通道:可以理解为是“弱鸡版的CPU”。通道可以识别并执行一系列通道指令,通道指令种类、功能通常比较单一 

通道方式:通过IO指令启动通道,通道执行通道指令序列,通道程序放在主存中

 

 

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

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

相关文章

11 【Express服务端渲染】

11 【Express服务端渲染】 1.Express脚手架的安装 安装Express脚手架有两种方式: 1.1 使用express-generator安装 使用命令行进入项目目录,依次执行: cnpm i -g express-generator可通过express -h查看命令行的指令含义 express -hUsag…

You Only Learn One Representation: Unified Network for Multiple Tasks

You Only Learn One Representation: Unified Network for Multiple Tasks一、引言(一)、 Explicit deep learning(二)、Implicit deep learning(三)、Knowledge modeling(四)、Kernel space alignment二、…

Python 算法:感受算法的小小魅力和复杂度的计算

一、小小算法的魅力 这是一个很普通的小例子,但是可以让我们领略到算法改进之后的强大魅力。 已知abc 1000,且a^2b^2c^2,求a、b、c的所有自然数解。 这个很简单,就是通过代码分别给a、b、c赋值,然后返回符合abc 10…

Kafka集群环境搭建及基本使用

前提条件 操作系统:CentOS7服务器:3台Java环境:JDK1.8。安装教程参考JDK1.8安装Zookeeper环境 搭建教程参考Zookeeper集群环境搭建及使用Kafka基础知识参考Kafka角色及功能概览 搭建步骤 下载 执行下载命令wget https://archive.apache.o…

使用SpringBoot实现RabbitMQ各个模式

实现了RabbitMQ各个模式(simple、topic、direct、fanout及发送方确认和接收方确认)的一个demo 源码:https://gitee.com/xunan29/study-rabbitmq-test-project 参考文章: https://blog.csdn.net/K_kzj_K/article/details/10664225…

[ Linux ] Linux信号概述 信号的产生

目录 0.问题引入: 0.1 将进程设置为后台进程 0.2 查看后台进程并将后台进程提至前台 0.3 将前台进程设置为后台进程 1.信号的概念 2.查看信号列表 3.信号处理的常见方式 4.信号的产生 4.1 用户层产生信号的方式 4.1.1通过终端按键产生信号 4.1.2调用系统函…

【数据集研究】PASCAL VOC 2007

目录1、数据集地址2、适用的比赛1)Main Competitions2)Taster Competitions3、类别及类别的定义1)数据集包含的类别2)类别的定义4、数据集1)训练集、验证集、测试集2)图片和待检测物在类别的分布详情5、标注…

Kamiya丨Kamiya艾美捷小鼠BDNF ELISA原理分析

Kamiya艾美捷小鼠BDNF ELISA预期用途: 小鼠BDNF ELISA用于定量测定小鼠细胞培养物上清液、细胞裂解物、细胞培养物中的BDNF, 血清和血浆(肝素、EDTA、柠檬酸盐)。仅供研究使用。 引言: 脑源性神经营养因子&#xff…

多线程与高并发(13)——Java常见并发容器总结

本文总结常见的并发容器,包含ConcurrentHashMap、CopyOnWriteArrayList 、ConcurrentLinkedQueue、BlockingQueue 、ConcurrentSkipListMap,本文仅做简单的总结,不做详细的源码分析。 一、ConcurrentHashMap HashMap不是线程安全的&#xf…

Linux基本命令(三)——服务器搭建

搭建简单Web服务器 安装web服务 yum -y install httpd 启动httpd服务 systemctl start httpd查看httpd是否开启成功 service httpd status以下是状态信息: 重新启动httpd systemctl restart httpd6.进入主配置文件 vim /etc/httpd/conf/httpd.conf编辑自配置文件 v…

FPGA控制W5500完成UDP环回测试

FPGA控制W5500完成UDP环回测试1 前言2 前期准备3 W5500寄存器描述4 W5500 环回测试4.1 W5500初始化4.1.1 通用寄存器初始化4.1.2 socket寄存器初始化4.2 W5500数据接收4.3 W5500数据发送4.4 数据环回5 总结&#x…

RKMEDIA--VO的使用

这一节主要说说rkmedia vo模块的使用。 rkmedia的vo是对DRM接口的封装,提供给用户更方便的使用,rv1126/rv1109支持两个vo图层。 1、首先先介绍一下DRM的测试命令--modetest,用来确认当前屏幕能够正常点亮。 modetest -M rockchip //打印出…

融云艾瑞发布《政企数智办公平台行业研究报告》,解读数智化时代的办公新趋势

关注公众号文章扫码报名融云&艾瑞“政企数智办公报告及新品发布会” 近期,安全可信的通信云服务商融云,携手业内权威研究机构艾瑞咨询联合发布《2022 年中国政企数智办公平台行业研究报告》(下简称《报告》),回顾政…

Kotlin高仿微信-第28篇-朋友圈-预览图片、预览小视频

Kotlin高仿微信-项目实践58篇详细讲解了各个功能点,包括:注册、登录、主页、单聊(文本、表情、语音、图片、小视频、视频通话、语音通话、红包、转账)、群聊、个人信息、朋友圈、支付服务、扫一扫、搜索好友、添加好友、开通VIP等众多功能。 Kotlin高仿…

ios照片误删怎么恢复,iphone已经删除的照片怎么恢复

苹果手机里面的重要照片被删除了,相信很多人都比较着急,想要想办法找回来。ios照片误删怎么恢复? 方法1.通过“最近删除”恢复照片 苹果删除的照片如何恢复?一般情况下,从苹果手机刚删除的照片会暂存在“最近删除”这…

使用MAT分析线上问题实战

概述 MAT,下载地址,Eclipse Memory Analysis Tools,一个分析Java堆数据的专业工具,可以计算出内存中对象的实例数量、占用空间大小、引用关系等,可得知哪些线程阻止垃圾收集器的回收工作,从而定位内存泄漏…

如何低成本减少企业知识流失?天翎知识文档系统+群晖NAS值得一试

编者按:知识管理可以减少企业知识流失,有效提高企业员工工作水平,增强企业综合竞争力。如何小成本做好企业知识管理呢?天翎知识文档系统群晖NAS值得一试。 关键词:标签分类,权限管理,在线预览&…

Git学习

Git是什么 Github作为最大的代码托管平台,是基于Git开发的 Git是最优秀的版本控制工具 iCode是基于Git的代码托管平台 版本控制:是对软件开发过程中各种程序代码,配置文件,说明文档等。 版本控制系统:集中式、分布式 …

在Mac中管理多版本 java——安装和使用 jenv

jenv 的 github 地址:https://github.com/jenv/jenv 安装 $ brew install jenv安装成功后需要进行一下简单的配置,让它可以起作用 使用Bash的情况$ echo export PATH="$HOME/.jenv/bin:$PATH" >> ~/.bash_profile $ echo eval "$(jenv init -)" &…

MAC 搭建vue开发环境,配置环境变量

1.官网下载nodejs安装包 http://nodejs.p2hp.com/ 下载完成后安装,一直点击下一步即可 2.自定以配置全局模块路径和缓存路径 先自己找一个路径创建两个文件夹,node_cache 和 node_global 打开终端,执行一下俩条命令,注意引号中的路径要换…