控制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 都不能启动,需要升…

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

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

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

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

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

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

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

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

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年,是一家提供企业信息化咨询、创新型软件产品、电商代运营服务,标准化管理、快速发展的高新技术企业。当前公司正处于企业互联网市场突破转型重要阶段,希望将更多精力转移到业务创新,提…

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

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

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

前些天报名参加了 Kaggle 的 Data Cleaning 5天挑战,5天的任务如下: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怎么写行内样式?下面本篇文章给大家介绍一下react 行内样式几种写法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。react 行内样式几种写法法一这是评论列表组件1法二const title{color:"red",fontSize:3…

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

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

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

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

得到进程id_搞懂进程组、会话、控制终端关系,才能明白守护进程干嘛的?

守护进程概念:守护进程,也就是通常所说的Daemon进程,是Linux中的后台服务进程。周期性的执行某种任务或等待处理某些发生的事件。Linux系统有很多守护进程,大多数服务都是用守护进程实现的。比如:像我们的tftp&#xf…

w7计算机的收藏夹里弄出桌面,Win7电脑桌面的便签怎么弄出来?

原标题:Win7电脑桌面的便签怎么弄出来?可能很多人都不知道,作为常用的一款电脑桌面操作系统,Windows 7上除了有Txt记事本和Office办公文档外,还有便笺小工具呢!这款便笺小工具虽然很不起眼,但是…

native html5 区别,H5与Native优劣对比

即将启动爱奇艺商城(mall.iqiyi.com)移动端的native化。项目开始之前当然要梳理下为什么做native,究竟H5跟native比有什么劣势,而H5又为什么占比那么高并且有“Html5才是未来”的说法呢。下面简单理下对比。H5,即Html5,指第5代HTM…

html制作圆盘时钟,jquery+html5制作超酷的圆盘时钟表

自己封装的一个用HTML5jQuery写的时钟表代码:超酷数码钟表//引用的是在线jquery地址,如果不行请自行下载切换(function($){$.fn.drawClock function(options){var mainId $(this);//设置默认参数var defaultOptions {width: 300px,height: 300px,marg…

调用外部程序处理文件_Python使用内置方法、模块调用外部命令

导读Python内置调用外部命令:os.systemos.popenos.popen2os.popen3os.popen4commands模块subprocess模块在Python3中,将os.popen2、os.popen3、os.popen4、commands等模块方法移除所以不用花精力了解,可以绕过了os.system方法os.system("…

计算机软件类ui工资多少,ui设计师工资一般多少

ui设计师月薪大概多少,UI设计师的收入现处于中等水平,一般月薪5000~7000元,资深设计师的收入可上升至7000~10000元。ui设计师月薪大概多少,ui设计师工资有多少?,不清楚ui设计师工资有多少的伙伴可以看看。U…

大学计算机课第二章内容总结,第四周市政系《大学计算机基础》课程总结

本周大一的新生终于在漫长的等待、报到、军训之后开始了大学课程的学习,在《大学计算机基础》课程的学习中,其实只是需要大学确立一种新的学习思想:计算机是人类智慧的结晶,它给予我们这样一种工具,通过对它的使用&…