控制cpu_I/O控制器及控制方式,了解一下

b31523dc32be61eb3a604894d380ebd5.png

1、什么是I/O控制器

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

I/O控制器是控制计算机输入输出的一个最基本的控制系统,可指挥计算机的各个部件按照指令的功能要求协调工作的部件。它由指令寄存器IR(InstructionRegister)、程序计数器PC(ProgramCounter)和操作控制器OC(OperationController)三个部件组成,对协调整个电脑有序工作极为重要。

1ef07760f2f3a79322aa0fc86af3faae.png

下面小编就从功能和控制方式两个方面带大家进一步了解I/O控制器,想学习的客户朋友就一起看下去吧,绝对干货哦!

2、I/O控制器的功能

接收设备CPU指令:CPU的读写指令和参数存储在控制寄存器中

向CPU报告设备的状态:I/O控制器中会有相应的状态寄存器,用于记录I/O设备的当前状态。(比如1代表设备忙碌,0代表设备就绪)

数据交换:数据寄存器,暂存CPU发来的数据和设备发来的数据,之后将数据发给控制寄存器或CPU。

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

5c303a353659d445b440ee5279a5a0fe.png

这里向大家简单介绍常见的几种I/O控制方式,包括程序直接控制方式、中断驱动方式、DMA(直接存储方式)、通道控制方式。

3、I/O控制方式

①程序直接控制方式

CPU向I/O模块发出读写指令,CPU会从状态寄存器中读取I/O设备的状态,如果是忙碌状态就继续轮询检查状态,如果是已就绪,就代表I/O设备已经准备好,可以从中读取数据到CPU寄存器中,读到CPU后,CPU还要往存储器(内存)中写入数据,写完后再执行下一套指令。

优点:实现简单。在读写指令之后,加上实现轮询检查的一系列指令即可。

缺点:CPU和I/O设备只能串行化工作,CPU需要一直轮询检查,长期处于忙等状态,CPU利用率很低。

52a4ce01593adf07112a2e7908ec96a0.png

②中断驱动方式

中断驱动方式的思想是允许I/O设备主动打断CPU的运行并请求服务,从而“解放”CPU,使得其向I/O控制器发送读命令后可以继续做其他有用的工作。I/O控制器从CPU接收一个读命令,然后从外围设备读数据,一旦数据读入到该I/O控制器的数据寄存器,便通过控制线给CPU发出一个中断信号,表示数据已准备好,然后等待CPU请求该数据。I/O控制器收到CPU发出的取数据请求后,将数据放到数据总线上,传到CPU的寄存器中。至此,本次I/O操作完成,I/O控制器又可开始下一次I/O操作。这样就使得CPU与I/O设备能够并行工作。

优点:与程序直接控制方式相比,在中断驱动方式中,I/O控制器会通过中断信号主动报告I/O已完成,CPU不再需要不停的轮询。CPU和I/O设备可并行工作,CPU利用率得到明显提升。

缺点:由于数据中的每个字在存储器与I/O控制器之间的传输都必须经过CPU,这就导致了中断驱动方式仍然会消耗较多的CPU时间。

5b4e99c51aac0a49ae3e468be14928bf.png

DMA(直接存储方式)

DMA方式的数据流向是从设备直接放入内存(设备→内存),或者是从内存直接到设备(内存→设备),不再使用CPU作为中间者。CPU在读写数据前要指明要读入多少数据、数据要存放在内存中的什么位置、数据放在外部磁盘的什么位置等问题,然后DMA控制器会根据CPU提出的要求完成数据的读写操作。当整块数据的传输完成后,才向CPU发出中断信号。

30d5f7450fdb7d2ce5544d34721bb249.png

优点:数据传输效率以“块”块为单位,仅仅在传送一个或多个数据块的开始和结束时,才需要CPU的干预,CPU的介入性进一步降低。同时。CPU和I/O设备的并行性进一步提升。

缺点:CPU发出一条指令,只能读或写一个或多个连续的数据块。如果读写的数据块不是连续存放的而是离散的,那么CPU要分别发出多条I/O指令,进行多次中断处理才能完成。

④通道控制方式

通道是一种硬件,可以理解为“低配版的CPU”。通道与CPU相比的话,CPU能够处理的指令种类比较多,而通道只能执行单一指令。使用这种控制方式,CPU干涉频率极低,通道会根据CPU的指令执行响应程序,只有完成一组数据块的读写后才需要发出中断信号让CPU干预。

优点:CPU、 通道、I/O设备可并行工作,资源利用率极高。

缺点:实现复杂,需要专门的通道硬件支持。

懵逼了的小伙伴快看这里!贴心小编为你奉上总结表格,一目了然呢!

a5093ba13dcf1bcc26dfc38ffc299540.png

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

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

相关文章

图形化c语言编程,「分享」C语言如何编写图形界面

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼贴吧内经常有人问C语言是不是只能用于字符终端界面开发,不能用于图形界面。大家也都有回答,需要其他的库。MFC,GTK,QT。本人近期刚用GTK库加上纯C写成了第一个LINUX实用程序。现在与大…

fpga初始化错误_FPGA低温启动失败

本文来源:https://blog.csdn.net/shanekong/article/details/29923925现象描述在给 medium 板光端机做低温试验时,分别给发送版、接收板断电重新启动,发现有的板子在 -40 可以启动,而有些板子在 -20 都不能启动,需要升…

在C语言中023是八进制数,C语言总结

十一天课的总结(仅仅为总结,具体请看前面的)一、顺序结构从上往下依次运行的代码结构计算机运行程序时,都是编译成二进制文件。计算机中又分为二进制:比如 101001001就是一个二进制数字八进制:比如 023767是一个八进制数字。前面…

机器人最新天赋符文天赋加点图_常德2020中小学机器人竞赛开赛 286名选手现场比拼技能...

尚一网讯(记者 肖志芳 文/图)自己设计机器人,还要操控他们完成各项高难度动作进行竞技对抗,这似乎挺难,但是许多中小学生却对此游刃有余。10月11日,常德市2020年中小学机器人竞赛在武陵区第一小学举行,来自全市143支代…

c语言在函数中只执行一次,请问大家,为什么我调用我定义的函数俩次,但是程序只执行一次...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include #include #include void gotoxy(int y,int x){COORD scrn;HANDLE hOuputGetStdHandle(STD_OUTPUT_HANDLE);scrn.Xx;scrn.Yy;SetConsoleCursorPosition(hOuput,scrn);}void put(int n,char ch){for(int i0;iprintf("%…

cmd imp导入dmp文件_这是一篇长篇入门级数据库讲解:oracle数据库数据导入导出步骤...

正如标题一样,本文内容主要介绍了浅谈入门级oracle数据库数据导入导出步骤,文章通过步骤解析介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧!!&…

学校门口的树C语言算法,C语言校园导游程序设计汇报.doc

C语言校园导游程序设计汇报《应用程序设计课程设计》报告班级:学号:姓名:指导教师:成绩评定:目录题目:设计一个校园导游程序,为来访的客人提供各种信息查询服务一.需求分析:此次课程…

linux 使用ssr客户端_【第一期】基于 @vue/cli3 与 koa 创建 ssr 工程

什么是基于同构代码的 SSR 服务(Server-side rendering based on isomorphic code)首先,我们需要先明白什么是 spa (single page application),以及基于 vue 的 spa 是如何工作的,这里不展开,请参考:单页应用:https://…

试卷8449c 语言,二级C语言上机题库参考答案

1建立班级通讯录 填空&#xff1a;(1)STYPE (2)FILE (3)fp改错(1) for(i0;i<sl;i) (2) t[2*sl]\0编*c(a/10)*1000(b/10)*100(a%10)*10(b%10) 改错&#xff1a; (1) for(i0&#xff0c;t0;p[i];i) (2) c[t]\0;编程&#xff1a; int i&#xff1b;for(i1;i{ If( (ss[i]>a&a…

平板的android版本是5.0.2,EMUI5.0荣耀平板2升级固件下载

荣耀平板2的用户&#xff0c;也能体验EMUI5.0Android7.0的测试资格啦&#xff0c;请大家先申请内测资格&#xff0c;通过后即可获得官方推送的EMUI5.0升级包啦。荣耀平板2 EMUI5.0适配机型&#xff1a;荣耀平板2 WiFi版荣耀平板2 移动/联通双4G荣耀平板2 通话版荣耀平板2 EMUI5…

读保护_混合ASIL系统中不同安全等级模块间的边界保护

01功能安全组件的软件开发针对ISO 26262对功能安全软件研发的要求&#xff0c;AUTOSAR将功能安全需求进行了具体拆分。当前的AUTOSAR规范囊括了诸多功能安全组件软件开发的需求概念。在AUTOSAR系统设计的架构中&#xff0c; 从系统功能设计到ECU功能实现&#xff0c;每个功能特…

android studio javah不是内部或外部命令,Android Studio 环境搭建参考,jdk10javac命令提示不是内部或外部命令...

https://blog.csdn.net/qq_33658730/article/details/78547789 win10下Android Studio和SDK下载、安装和环境变量配置http://yanmin99.com/ android-0基础从入门到精通环境变量ANDROID_HOMEE:\Program Files (x86)\Android\SdkJAVA_HOMEE:\Program Files\Java\jdk1.8.0_161TOMC…

starops 云效运维 文档_阿里云 SAE 携手云效助力「石家庄掌讯」持续交付、降本提效...

背景石家庄掌讯信息技术有限公司创立于2009年&#xff0c;是一家提供企业信息化咨询、创新型软件产品、电商代运营服务&#xff0c;标准化管理、快速发展的高新技术企业。当前公司正处于企业互联网市场突破转型重要阶段&#xff0c;希望将更多精力转移到业务创新&#xff0c;提…

android 6.0 数据库权限,Android超清晰6.0权限申请AndPermission

Android超清晰6.0权限申请AndPermission的具体实现代码&#xff0c;供大家参考&#xff0c;具体内容如下前言这是我经常使用的框架&#xff0c;原因&#xff1a;1.思路清晰2.实现方便开始准备工作导包compile com.yanzhenjie:permission:1.0.7然后就可以使用了&#xff0c;贼简…

setdata改数组里的值 微信小程序_今日艰难笔记redux小程序随记

redux的前身Flux https://zhuanlan.zhihu.com/p/38050036Flux的一整套抽象(action&#xff0c;dispatcher&#xff0c;store)&#xff0c;在单向数据流的基础上可以提高应用的可维护性和代码的可预测性。然而&#xff0c;全局action多store的架构面对复杂的应用依然不能很好地解…

绿盟科技鸿蒙系统,华为 X 绿盟科技,打造“云原生安全新生态”

全文共914字&#xff0c;阅读大约需要2分钟。在数字化转型加速、政策法规密集出台、合规与刚需双轮驱动下&#xff0c;中国网络安全市场实现了快速增长。2020年绿盟科技(300369)实现营业收入20.1亿元&#xff0c;同比增长20.3%&#xff0c;成绩的背后&#xff0c;离不开基于生态…

竞赛数据清洗缺失值_Kaggle 数据清洗挑战 Day 1 - 手把手教你五步处理缺失值

前些天报名参加了 Kaggle 的 Data Cleaning 5天挑战&#xff0c;5天的任务如下&#xff1a;Day 1: Handling missing valuesDay 2: Data scaling and normalizationDay 3: Cleaning and parsing datesDay 4: Fixing encoding errors (no more messed up text fields!)Day 5: Fi…

html5中行内样式写法,react怎么写行内样式?

react怎么写行内样式&#xff1f;下面本篇文章给大家介绍一下react 行内样式几种写法。有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对大家有所帮助。react 行内样式几种写法法一这是评论列表组件1法二const title{color:"red",fontSize:3…

程序左上角的字_微信内测7.0.7新版本,小程序迎来大改动!

最近几个月来&#xff0c;微信就跟打了鸡血一样不断更新了多个版本上线多个新功能。此前7月末&#xff0c;微信安卓7.0.6带来了将收藏笔记&#xff0c;文件预览等页面设为浮窗的功能&#xff0c;目前最多支持5个文档或笔记设为浮窗。这不&#xff0c;距离微信7.0.6 for Android…

html 跑步比赛小游戏,疯狂趣味跑步竞赛3D

疯狂趣味跑步竞赛3D是一款跑酷类型的休闲游戏&#xff0c;游戏在整体画面上搭配了最新的技术&#xff0c;使得游戏画面看起来非常华丽&#xff0c;人物的建模也很可爱。玩家在游戏中可以在各种风格的跑道上进行比赛&#xff0c;还可以在线跟别的玩家进行匹配。喜欢这款游戏的快…