1.3.4 输入输出技术

目录

  • 接口的功能及分类
  • 主机与外设间的连接方式
  • I/O接口的编址方式
  • CPU与外设之间交换数据的方式

接口的功能及分类

在这里插入图片描述
输入/输出(Input/Output, I/O)系统是计算机与外界进行数据交换的通道。
I/O接口是连接主机和I/O设备的转换机构。由于I/O设备种类多样,控制方式各不相同,CPU不堪重负,因而有了I/O系统,协调和控制CPU、存储器、外部设备的数据通信。
在这里插入图片描述
I/O接口是主机与I/O设备间的美好生活小助手。有5大功能:

  • 地址译码功能:为不同接口分配不同的地址码,便于接口的区分与选择。
  • 数据转换:数据类型、格式方面的转换。
  • 交换信息:在主机和I/O设备之间交换数据、控制命令、状态信息。
  • 提供主机与I/O设备所需的缓冲、暂存、驱动能力。
  • 支持主机用程序查询、中断、DMA方式访问。
    在这里插入图片描述
    I/O接口可以按照传送格式、访问方式、时序控制方式分类。
    并行接口:一次把一个字节/字的所有位同时传输。
    串行接口:数据的所有位按顺序逐位传输。
    I/O接口 = 硬件电路 + 软件驱动

主机与外设间的连接方式

在这里插入图片描述
主机与外设间的常见连接方式有,总线型、星型、通道方式、I/O处理及方式。
总线型是最基本的连接方式,能够为连接的部件分时共享信息。
分时:某一时刻只允许1个部件把信息发送到总线。
共享:多个部件都可以通过总线传递信息。
总线要实现分时共享,必须要有相应的规则,称为总线协议。
可以把总线想象成一条河流,部件是沿河居住的生物。河流中的水是共享的信息。为了保持秩序,沿河居住的生物都遵循某种协议,一个时刻只让一个生物往河里投东西。

I/O接口的编址方式

在这里插入图片描述
I/O接口的编址方式有2种。

  • 与内存单元统一编址:将I/O接口中的寄存器/存储部件看作存储器单元,与主存中的存储单元统一编址。
    优点:内存指令可以直接用于接口
    缺点:统一编址导致内存地址不连续;读程序时需要仔细辨认才可区分操作是针对内存还是接口。
  • I/O接口单独编址:不占主存空间,指令易于分辨。但是需要设置专门的I/O指令才可访问接口。

CPU与外设之间交换数据的方式

在这里插入图片描述
CPU与外设之间交换数据的方式有4种。分别是直接程序控制、中断方式、直接存储器存取(DMA)方式、通道控制方式。数据交换能力逐渐增强,结构越来越复杂。

  • 直接程序控制:包含立即程序传输方式、程序查询方式。
    (1)立即程序传输方式,外设时刻准备就绪,等待着与CPU交换数据。就像人们坐在公交站台,时刻准备着,等待公交车的到来。
    (2)程序查询方式,CPU会先询问外设的状态,外设如果准备就绪,CPU就与其进行数据交换。就像快递员会事先打电话问问你在不在家,如果在家,快递员就来送货啦。这种方式简单易实现,但是会降低CPU的利用率,且无法实时响应外部突发事件。
  • 中断方式:因某事件发生,CPU暂停正在执行的程序,转而处理该事件。处理完毕后,回到暂停的执行程序,继续运行。中断的事件称为中断源。I/O接口准备好时,向CPU发出中断信号,CPU处理完与外设的数据交换后,回到暂停的程序继续工作。这种方式下,CPU无需查询外设状态,提高了CPU的利用率,CPU和外设可以并行工作,但是无法满足高速的批量数据传送要求。
  • 直接存储器存取(DMA)方式:通过DMA控制器(DMAC)控制主存和I/O设备间直接数据传送, 简化CPU对数据传送的控制,提高主机和外设的并行工作程度。但是,DMAC只能控制简单的数据传送操作。
  • 通道控制方式:通过执行通道程序进行I/O操作的管理,通道控制方式与DMA相比,可完成较复杂的I/O管理、预处理。DMA就像功能简单的机器人一代,通道控制使用的就是机器人二代升级版,能够做更复杂的事情。通道控制方式逐渐发展,成为了现在广泛使用的输入/输出处理器(I/O Processer, IOP)。

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

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

相关文章

Linux 权限及管理

目录 一、Linux权限 1、概念 2、超级用户和普通用户的相关操作 a. 添加用户,删除用户 b. 超级用户和普通用户的切换 c. sduo提权以及白名单设置 二、Linux权限管理 1、文件访问者的分类 2、文件访问类型和权限 a. 文件类型 b. 基本权限 3、文件权限值…

Linux网络测试指令

Ping Ping命令是一个网络工具,用于测试主机之间的可达性。它通过发送ICMP(Internet Control Message Protocol)回声请求消息到目标主机,并等待接收ICMP回声应答消息来判断目标是否可达以及测量往返时间。Ping命令对于诊断网络连接…

Java面试题精选:设计模式(二)

1、装饰器模式与代理模式的区别 1)代理模式(Proxy Design Pattern ) 原始定义是:让你能够提供对象的替代品或其占位符。代理控制着对于原对象的访问,并允许将请求提交给对象前后进行一些处理。 代理模式的适用场景 功能增强 当需要对一个对…

ICP和EDI许可证办理审核专用的网站系统源码程序下载—专供审核易过使用

在现代互联网及电子商务企业中,ICP许可证和EDI许可证不仅是法律要求,更是企业立足市场的重要基础。这两种许可证能够帮助企业爬梳合规问题,规避法律风险,并提升自身的信誉,增强客户的信任感。本文将详细介绍ICP许可证和…

运动场预定系统设计与实现

一、前言 随着人们健康意识的提高和体育运动的普及,各类运动场地的需求日益增长。传统的运动场预定方式往往依赖人工登记、电话预约等手段,存在效率低下、信息不透明、管理不便等问题。例如,使用者难以实时了解场地的空闲情况,需要…

基础暴力算法

线性枚举 线性枚举(Linear Enumeration)是一种暴力枚举的方法,它逐一检查每个可能的解,适用于搜索和枚举问题。 其核心思路是:对问题的所有可能情况逐一进行遍历,并针对每种情况判断是否满足条件&#xf…

第9章:CSS动画和过渡 --[CSS零基础入门]

1.过渡 CSS 过渡(Transitions)是一种简单而有效的方法,用于在元素的状态发生变化时创建平滑的视觉效果。以下是五个具体的例子,展示了如何使用过渡来增强用户交互体验。 示例 1: 按钮颜色和大小变化 这个例子展示了当用户将鼠标…

如何解决压测过程中JMeter堆内存溢出问题

如何解决压测过程中JMeter堆内存溢出问题 背景一、为什么会堆内存溢出?二、解决堆内存溢出措施三、堆内存参数应该怎么调整?四、堆内存大小配置建议 背景 Windows环境下使用JMeter压测运行一段时间后,JMeter日志窗口报错“java.lang.OutOfMe…

java问题解决_idea导入java项目时包名路径报错解决

第一个问题:idea导入java项目时包名路径报错解决 问题1:导入项目之后,没有运行导航 | 软件包名称 graph 与文件路径 src.graph 不对应 解决问题1: 打开项目结构 找到板块中的源代码目录 右键选择源代码 高亮之后就OK了 点击应用…

【青牛科技】拥有两个独立的、高增益、内部相位补偿的双运算放大器,可适用于单电源或双电源工作——D4558

概述: D4558内部包括有两个独立的、高增益、内部相位补偿的双运算放大器,可适用于单电源或双电源工作。该电路具有电压增益高、噪声低等特点。主要应用于音频信号放大,有源滤波器等场合。 D4558采用DIP8、SOP8的封装形式 主要特点&#xff…

qt-C++语法笔记之mapToGlobal将组件(控件)中的本地坐标系(局部坐标)映射到全局坐标系

qt-C语法笔记之mapToGlobal将组件(控件)中的本地坐标系(局部坐标)映射到全局坐标系 code review! 文章目录 qt-C语法笔记之mapToGlobal将组件(控件)中的本地坐标系(局部坐标)映射到…

C++核心day3作业

作业: 1.整理思维导图 2.整理课上代码 3.把课上类的三个练习题的构造函数写出来 函数全部类内声明,类外定义 定义一个矩形类Rec,包含私有属性length、width,包含公有成员方法: void set_length(int l); //设置长度v…

基于Spring Boot库存管理系统

文末获取源码和万字论文,制作不易,感谢点赞支持。 基于Spring Boot库存管理系统 当下,如果还依然使用纸质文档来记录并且管理相关信息,可能会出现很多问题,比如原始文件的丢失,因为采用纸质文档&#xff0c…

FPGA 17 ,FPGA 与 SR-IOV虚拟化技术,高性能计算与虚拟化技术的结合(FPGA 与 SR-IOV 和 PCI,高性能计算与虚拟化的完美融合)

目录 前言 一. SR-IOV 的起源与发展 1. SR-IOV 的起源与时间线 2. SR-IOV 的诞生原因 3. SR-IOV 的详细介绍 二. SR-IOV 和 PCI 之间的关系 三. PCI 的起源与演进 1. PCI 的起源与时间线 2. PCI 的关键特性 四. FPGA 的独特魅力 1. FPGA 的定义与特性 2. FPGA 的内…

【深度学习】深刻理解Masked Autoencoders(MAE)

Masked Autoencoders (MAE) 是近年来自监督学习领域中的一项重要创新,尤其在计算机视觉领域取得了显著进展。随着深度学习的快速发展,自监督学习逐渐成为了一种重要的无监督学习方法,它通过从数据中学习表示而不依赖人工标签,极大…

Oracle报错ORA-01653: 表xx无法通过 8192在表空间中扩展

向Oracle 19g数据库中批量插入数据,当插入近2亿条数据后,报出如下错误: ORA-01653: 表xx无法通过 8192 (在表空间 xx_data 中) 扩展 查看表空间,发现表空间大小已达到32G,表空间无法进行自动扩展了。(初始…

图的遍历(C++实现图【2】)

目录 1. 图的遍历 1.1 图的广度优先遍历 2.2 图的深度优先遍历 1. 图的遍历 给定一个图G和其中任意一个顶点v0,从v0出发,沿着图中各边访问图中的所有顶点,且每个顶点仅被遍历一次。"遍历"即对结点进行某种操作的意思。 1.1 图的广度…

群控系统服务端开发模式-应用开发-邮件发送工具类

一、邮件发送工具类开发 1、添加框架对应的SDK composer require phpmailer/phpmailer 2、添加工具集 在根目录下extend文件夹下创建Email文件夹&#xff0c;在Email文件夹下添加工具集控制并命名为EmailSender.php <?php /*** 邮件发送工具* User: 龙哥三年风水* Date: …

如何在vue中使用ECharts

一. 打开ECharts官网,点击快速入门 下面是ECharts官网的链接 https://echarts.apache.org/ 二.在vue中使用 1.首先先引入Echarts js文件 如下图&#xff0c;下面的第一张图片是官网的实现&#xff0c;第二章图片是我根据官网的实现 2.给ECharts 创建一个DOM容器 3. 使用ec…

Java版-图论-拓扑排序与有向无环图

拓扑排序 拓扑排序说明 对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边<u,v>∈E(G),则u在线性序列中出现在v之前。通常,这样的线性序列称为满足拓扑次序(Topological Order)的序列…