王道计组(23版)7_I/O系统

news2024/9/22 11:40:19

I/O控制方式

数据传输率低的外设:
程序查询方式
程序中断方式:外设准备就绪则主动向CPU发送中断请求
数据传输率高的外设:
DMA方式:主存和I/O设备有一条直接数据通路,无需调用中断
通道方式:每个通道挂接若干外设,主机执行I/O命令时,启动有关通道

I/O接口

功能

地址译码和设备选择、主机和外设的通信联络控制、数据缓冲、信号格式转换、传送控制命令和状态信息
在这里插入图片描述

I/O端口

接口:若干端口+相应的控制逻辑
端口:接口电路中可以进行读/写的寄存器
I/O端口:接口电路中可被CPU直接访问的寄存器,主要有数据端口(读写)、状态端口(只读)、控制端口(只写)

编址:I/O端口想要被CPU访问,需要每个端口对应一个端口地址
统一编址(存储器映射方式):把I/O端口当作存储器的单元进行地址分配
独立编址(I/O映射方式):I/O端口的地址空间和主存地址空间是两个独立的地址空间,无法从地址码的形式上区分,需要设置专门的I/O指令访问I/O端口

I/O方式

程序中断方式

中断隐指令:CPU响应中断后,经过某些硬件实现的操作,转去执行中断服务程序
包括关中断、保存断点、引出中断服务程序
在这里插入图片描述
中断响应判优:
不可屏蔽中断 > 内部异常(硬件故障 > 软件中断) > 可屏蔽中断
DMA中断请求 > I/O设备传送的中断请求(高速>低速、输入>输出、实时>普通)

DMA方式(直接存储器存取方式)

完全由硬件进行成组信息传送
DMA方式中,中断的作用仅限于故障和正常传送结束时的处理

特点

主存与CPU脱钩(主存也可被外设访问)
主存地址的确定和传送数据的计数由硬件电路实现
主存中开辟专用缓冲区
传送快(CPU和外设并行工作)
传送开始前预处理、结束后通过中断方式后处理

DMA控制器(DMA接口)

DMA方式中,对数据传送过程中进行控制的硬件
功能:
在这里插入图片描述
DMA控制器具有控制系统总线能力。DMA传送过程中,接管CPU的地址总线、数据总线、控制总线;DMA传送结束后,恢复CPU的权利

DMA的传送方式:停止CPU访存、周期挪用(周期窃取)、DMA与CPU交替访存
DMA的传送过程
在这里插入图片描述

中断方式和DMA方式的区别

(1)DMA处理预处理和后处理,其他时刻不占用CPU的任何资源
(2)DMA不需要CPU干预,传输率高
(3)DMA的请求优先级高于中断请求
(4)中断靠程序传送,DMA靠硬件传送
(5)中断具有对异常事件的处理能力,DMA仅限于传送数据块的I/O操作
(6)对中断请求的响应发送在每条指令执行完毕时,对DMA请求的响应可以发生在每个机器周期结束时

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

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

相关文章

CTFSHOW web入门——web30

代码审计 把flag、system、php都给过滤了 passthru()函数同system()函数类似,都可以用来执行外部命令的,因此可以用passthru来代替system。 因此构造payload:?cpassthru(cat f*); 查看页面源代码即可获得flag

ROS学习第三十四节——URDF与Gazebo基本集成流程

https://download.csdn.net/download/qq_45685327/87718593 1.创建功能包 创建新功能包&#xff0c;导入依赖包: urdf xacro gazebo_ros gazebo_ros_control gazebo_plugins 2.编写URDF文件 demo01_helloworld.urdf <robot name"mycar"><link name"…

Android 一个获取网址时间的Demo

Android 一个获取网址时间的Demo 文章目录 Android 一个获取网址时间的Demo通过一个网址获取时间的代码关于Android NTP 时间Android 同步时间代码 前段时间有个客户想用局域网同步Android 设备的时间&#xff0c;开发后把这个demo分享一下。 效果&#xff1a; 这里也获取了阿…

Xshell中的基本命令

whoami 当我们刚登录上Xshell的时候&#xff0c;我们应该做什么呢&#xff1f;&#xff1f; 我们上次说了如何增加使用者&#xff0c;和删除使用者&#xff0c;今天我们说一下其他的基本命令。 我们刚开始登录的时候可以用root登录 那么我们怎么看自己事谁呢&#xff1f; …

C/C++占位符,%x和%p的区别

遇到的问题 今天遇到了一个很奇怪的问题&#xff0c;当使用malloc分配了一个堆空间后&#xff0c;分别尝试用cout和printf尝试打印该地址&#xff0c;出现了两个地址不一样的情况&#xff1a; int *pp (int*)malloc(10*sizeof(int)); *pp 1234; cout << pp << …

35. 搜索插入位置 58. 最后一个单词的长度

目录 35. 搜索插入位置 思路 代码 58. 最后一个单词的长度 思路1 代码1 思路2 代码2 35. 搜索插入位置 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。…

存钱罐出口欧盟CE认证ROHS标准测试

近年来生活水平提高&#xff0c;人们手头上的余钱也多了起来&#xff0c;家长们通常会给小孩子买存钱罐&#xff0c;培养小孩子的理财能力&#xff0c;养成良好的财富观&#xff0c;一般的存钱罐都被设计用来存放硬币&#xff0c;一般分为陶瓷&#xff0c;塑料和金属。上端有缝…

电脑蓝屏怎么办?一招教你修好

很多用户遇到电脑蓝屏问题之后不懂怎么去进行解决&#xff1f;电脑蓝屏之后&#xff0c;我们只需要花一分钟制作一个启动盘&#xff0c;然后用这个启动盘来进行系统的重装就可以了。那么具体要怎么去操作呢&#xff1f;以下带来具体的操作方法教学。 准备工作&#xff1a; 1、U…

备忘录设计模式(Memento Pattern)[论点:概念、组成角色、示例代码、框架中的运用、适用场景]

文章目录 概念组成角色示例代码框架中的运用适用场景 概念 备忘录模式&#xff08;Memento Pattern&#xff09;是一种行为型设计模式&#xff0c;主要用于保存对象的内部状态&#xff0c;以便在需要时恢复到先前的状态。这种模式有助于实现撤销、恢复或回滚操作&#xff0c;同…

软件测试之基础概念学习篇(需求 + 测试用例 + 开发模型 + 测试模型 + BUG)

文章目录 1. 什么是软件测试2. 软件测试和软件开发的区别3. 软件测试和软件调试的区别4. 什么是需求1&#xff09;以需求为依据设计测试用例 5. 测试用例是什么6. 什么是 BUG&#xff08;软件错误&#xff09;7. 五个开发模型1&#xff09;瀑布模型2&#xff09;螺旋模型3&…

有哪些方法可以防止企业内部数据泄露?

企业内部数据安全威胁多数源于企业内部&#xff0c;企业内部存在许多安全威胁&#xff0c;主要包括: 1. 员工误操作或疏忽&#xff1a;这是导致内部安全事故的最主要原因之一。员工对安全程序缺乏认识或执行不严谨&#xff0c;可能会无意中泄露敏感数据或引发系统漏洞。 2. 未经…

Windows 服务监控工具

在任何企业中&#xff0c;Windows 服务都是面向业务的应用程序的核心组件。这些 Windows 服务的有效运行对于防止网络和应用程序停机至关重要。这使得 Windows 服务监视成为任何网络管理策略的关键部分。 Windows 服务监视使管理员能够确保关键 Windows 服务的可用性&#xff…

mysql的函数 --- MySQL总结(二)

mysql的函数 文章目录 mysql的函数日期函数字符串函数其他函数 日期函数 上面的所以的函数都可以使用select进行展现相应的数据 这里的使用current_date()时间戳&#xff0c;其他日期都可以相似的操作进行对于时间的操作 字符串函数 后面这里的操作查找name表之中的id的字符集&…

重构这件“小”事儿 | 得物技术

本文以一个Web项目的业务代码重构实践作为依据&#xff0c;来探讨项目业务代码重构过程中遇到的开发问题&#xff0c;以及重构过程中的一些注意点&#xff0c;希望可以给项目开发和服务开发维护重构提供一些通用的参考与思路。 这里不探讨大型项目的重构实践&#xff0c;毕竟一…

SHELL的脚本编写(2)

目录 1.编写脚本for1.sh&#xff0c;使用for循环创建20账户&#xff0c;账户名前缀由用户从键盘输入&#xff0c;账户初始密码由用户输入&#xff0c;例如&#xff1a;test1、test2、test3、......、test10 首先创建并编写for1.sh 查看结果 2.编写脚本for2.sh&#xff0c;使用…

Java - Lambda 表达式

一、背景 Lambda表达式是Java SE 8中一个重要的新特性。lambda表达式允许你通过表达式来代替功能接口。 lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块)。 Lambda 表达式&#xff08;Lambda expression&am…

【数据库】— 2NF、3NF、BCNF、最小函数依赖集例题

判断范式级别 设有关系模式W(C,P,S,G,T,R)&#xff0c;其中各属性的含义是&#xff1a;C课程&#xff0c;P教师&#xff0c;S学生&#xff0c;G成绩&#xff0c;T时间&#xff0c;R教室&#xff0c;根据定义有如下数据依赖集 D{ C→P&#xff0c;(S,C)→G&#xff0c;(T,R)→C&…

时序预测 | MATLAB实现SSA-LSTM、LSTM麻雀算法优化长短期记忆神经网络时间序列预测(含优化前后对比)

时序预测 | MATLAB实现SSA-LSTM、LSTM麻雀算法优化长短期记忆神经网络时间序列预测(含优化前后对比) 目录 时序预测 | MATLAB实现SSA-LSTM、LSTM麻雀算法优化长短期记忆神经网络时间序列预测(含优化前后对比)预测效果基本介绍程序设计参考资料 预测效果 基本介绍 麻雀搜索算法(…

Redis最新版本安装教程——Linux操作系统(Centos7)

Redis是基于C语言编写的&#xff0c;因此首先需要安装Redis所需要的gcc依赖&#xff1a; yum install -y gcc tcl 下载安装包并解压 Redis的官方网站地址&#xff1a;RedisRedis is an open source (BSD licensed), in-memory data structure store, used as a database, cach…

【前端下载文件流详解】前端实现多种类型文件(word,excel,pdf,rar,zip等)的下载,接口返回文件流形式(附源码)

【写在前面】其实之前我也写了有关java实现文件的下载&#xff0c;但是当时是局限于excel文档&#xff0c;针对其他类型的并没有介绍&#xff0c;这次刚好有个客户现场反馈回来的&#xff0c;说我们系统确实能下载报告&#xff0c;但是甲方领导要看所有的报告&#xff0c;这不我…