计算机组成原理学习(输入输出系统)

目录

输入输出系统(i/o系统)

一.现代计算机的结构

二.常见的(I/O设备或者是外部设备)

​ 三.主机如何与I/O设备进行交互

 四.I/O控制方式简介

五.I/O系统的基本组成


输入输出系统(i/o系统)

一.现代计算机的结构

二.常见的(I/O设备或者是外部设备)

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

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

I/O控制器多种多样,也会指定相应的标准,如:用于控制USB设备的IO接口、用于控制SATA3.0硬盘的IO接口等(I/O控制器就是一块芯片,常被集成在主板上) 

I/O接口会进行数据的交互,信息的传输 ,需要它的中转和处理;

 四.I/O控制方式简介

在我们打程序代码时,可以看到在编译运行之后并不会直接输出,而是会等待键盘I/O完成;

cpu如何控制键盘I/O的完成呢?

 在I/O接口里面有数据寄存器(存放I/O设备输入的数据),控制寄存器(存放例如让键盘上哪个灯亮灭),状态寄存器(打印机是否就绪,或者是否没有纸了);

CPU通过控制总线发出一个读的命令,同时可以通过地址总线来指明他要控制的是哪一个设备,还可以用于指明设备读入的数据应该放在那个数据寄存器里面;

1) 程序查询方式:CPU不断轮询检I/O控制器中的“状态寄存器”后,,检测到状态为“已完成”之再从数据寄存器取出输入数据(这种方法比较笨,例如上面那个例子如果你一直没有给键盘的输入就会一直等着);

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

数据流下所示:

键盘->I/O接口的数据寄存器->数据总线->CPU某寄存器->主存 (变量i的对应位置)

两种控制方式的比较图:

思考:对于快速I/O设备,如“磁盘”,没准备好一个字就给cpu发送一次中断请求,会导致什么问题呢?

CPU会使用大量的时间来处理中断服务程序,CPU利用率严重下降。

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

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

DMA控制可以看到上图中CPU和DMA接口共享主存,所以当DMA访问主存的时候CPU就不可以访问主存了;

 DMA控制器与主存每次传送一个字。当传送完一整块的数据后猜想CPU发出中断请求;

它与程序中断方式的区别就在于可以让CPU执行程序的时间更长一些,DMA只占用一个存取周期,而程序中断方式需要占用多个存取周期,每传一个字都要发送一个中断请求。

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

五.I/O系统的基本组成

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式开发中的总线与时钟

总线 AHB总线 AHB的全称是"Advanced High-performance Bus",中文翻译就是"高级高性能总线"。这是一种在计算机系统中用于连接不同硬件组件的总线架构,它可以帮助这些组件之间高效地传输数据和信息。这个总线架构通常用于处理速度较快且对性能要求较高的…

VAR模型

VAR(Vector Autoregression)模型是一种用于时间序列分析的统计模型,它可以描述多个变量之间的相互关系和动态演化。VAR模型最初是由Sims(1980)提出的,广泛应用于宏观经济学、金融领域以及其他时间序列数据分…

嵌入式培训-数据结构-day23-线性表

线性表 线性表是包含若干数据元素的一个线性序列 记为: L(a0, ...... ai-1, ai, ai1 ...... an-1) L为表名,ai (0≤i≤n-1)为数据元素; n为表长,n>0 时,线性表L为非空表,否则为空表。 线性表L可用二元组形式描述…

Python接口测试 requests.post方法中data与json参数区别

引言 requests.post主要参数是data与json,这两者使用是有区别的,下面我详情的介绍一下使用方法。 Requests参数 1. 先可以看一下requests的源码: def post(url, dataNone, jsonNone, **kwargs):r"""Sends a POST request.…

缓存击穿的原因和解决方案

缓存击穿 原因:一个被高并发访问并且缓存重建业务较复杂的key突然失效了,无数的请求访问会在瞬间给数据库带来巨大的冲击 解决方案 1.互斥锁 优点 没有额外的内存消耗保证一致性实现简单 缺点 线程需要等待,性能受影响可能有死锁风险 …

Frontier ,MDPI T3系列,植物科学领域高质量期刊分级目录发布!

公众号:生信漫谈,获取最新科研信息! Frontier ,MDPI T3系列,植物科学领域高质量期刊分级目录发布!https://mp.weixin.qq.com/s/ukbjIgdyaza7LmKmZmy5bw 2023年3月31日,中国科学技术大学科研部…

Linux 定时删除过期文件

需求说明 每日凌晨0点定时删除/temp目录下的所有一个月未被访问的文件。 脚本实现 linux 终端输入crontab -e,添加定时任务脚本命令 [rootlocalhost ~]# crontab -e在文件末尾追加 0 0 * * * find /temp -atime 30 -exec rm -rf {} \;参数说明 命令格式&#…

Pandas-DataFtame的索引与切片(第3讲)

Pandas-DataFtame的索引与切片(第3讲)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ�…

Redis与MySQL双写一致性如何保证?

前言 四月份的时候,有位好朋友去美团面试。他说,被问到Redis与MySQL双写一致性如何保证?这道题其实就是在问缓存和数据库在双写场景下,一致性是如何保证的?本文将跟大家一起来探讨如何回答这个问题。 谈谈一致性 一致…

Modbus转Profinet网关使用方法

Modbus转Profinet网关(XD-MDPN100/200)是用于将Modbus协议和Profinet协议进行转换并进行通迅的设备。Modbus转Profinet网关(XD-MDPN100/200)无论是新项目还是改造项目都可轻松配置完成通迅互联。 正确的安装和配置对于确保设备的正…

【SpringBoot零基础入门到项目实战①】解锁现代Java开发之门:深度探究Spring Boot的背景、目标及选择理由

文章目录 引言Spring Boot的背景和目标背景目标 为什么选择Spring Boot1. 简化配置2. 内嵌式容器3. 生态系统支持4. 大量的Starter5. 广泛的社区支持6. 适用于微服务架构7. 丰富的扩展机制 实例演示创建一个简单的Spring Boot应用 拓展与深入学习1. Spring Boot Actuator2. Spr…

UE5 C++(三)— 基本用法(生命周期、日志、基础变量)

文章目录 生命周期日志打印Outlog打印屏幕打印 基础变量类型FString、FName 和 FText,三者之间的区别 基础数据类型打印 忘记说了每次在Vscode修改后C脚本后,需要编译一下脚本,为了方便我是点击这里编译脚本 生命周期 Actor 生命周期官方文档…

菜鸟学习日记(python)——匿名函数

Python 使用 lambda 来创建匿名函数。 lambda 函数是一种小型、匿名的内联函数,它可以具有任意数量的参数,但只能有一个表达式。 匿名函数的一般格式如下: lambda 参数列表:表达式 表达式用于计算并返回函数结果 lambda 函数通常用于编写…

msvcp140.dll丢失怎样修复?全面分析msvcp140.dll的修复方法

在执行特定程序时,有可能遭遇msvcp140.dll文件遗失的困扰,此时该如何处理呢?此次将为您讲述面临此类问题的有效解决方案,涉及到多种修复方法,其中包括利用DLL修复工具进行操作。您可依据个人需求选择相应的修复方式&am…

关于多重背包的笔记

多重背包可以看作01背包的拓展&#xff0c; 01背包是选或者不选。多重背包是选0个一直到选s个。 for (int i 1; i < n; i) {for (int j m; j > w[i]; --j){f[j] max(f[j], f[j - 1*w[i]] 1*v[i], f[j - 2*w[i]] 2*v[i],...f[j - s*w[i]] s*v[i]);} } 由上述伪代码…

Python 爬虫之简单的爬虫(二)

爬取百度热搜榜 文章目录 爬取百度热搜榜前言一、展示哪些东西二、基本流程三、前期数据获取1.引入库2.请求解析获取 四、后期数据处理1.获取保存 总结 前言 每次打开浏览器&#xff0c;我基本上都会看一下百度热搜榜。这篇我就写一下如何获取百度的热搜榜信息吧。 如果到最后…

v851s ssh搭建与使用

ssh 概述: 1. 用来远程登录的一种安全通道协议(常用于linux 、UNIX中); 2. 分为服务端和客户端: 1)服务端即openSSH ,一般属于目标开发板(linux中配置文件路径/etc/ssh/sshd_config); 2)客户端即登录端,常用工具:sercureCRT 、MobaXterm 、Putty等; 1. ssh 服务…

六:爬虫-数据解析之BeautifulSoup4

六&#xff1a;bs4简介 基本概念&#xff1a; 简单来说&#xff0c;Beautiful Soup是python的一个库&#xff0c;最主要的功能是从网页抓取数据官方解释如下&#xff1a; Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。 它是一个工具箱…

波奇学Linux:进程终止

写时拷贝底层原理图 子进程谁先运行&#xff0c;由调度器决定 进程退出场景 代码运行完毕&#xff0c;结果正确&#xff1a;有返回值&#xff0c;返回0 代码运行完毕&#xff0c;结果不正确&#xff1a;有返回值&#xff0c;返回非0 代码异常终止。没有返回值 return 0的…

单机架构到分布式架构的演变

目录 1.单机架构 2.应用数据分离架构 3.应用服务集群架构 4.读写分离 / 主从分离架构 5.引入缓存 —— 冷热分离架构 6.垂直分库 7.业务拆分 —— 微服务 8.容器化引入——容器编排架构 总结 1.单机架构 初期&#xff0c;我们需要利用我们精干的技术团队&#xff0c;快…