计算机组成原理 I/O方式

I/O 方式

I/O方式分类:

  1. 程序查询方式。由 CPU通过程序不断查询 /O 设备是否已做好准备,从而控制0 设备与主机交换信息
  2. 程序中断方式。只在 I/0 设备准备就绪并向 CPU发出中断请求时才予以响应。
  3. DMA方式。主存和 I/O 设备之间有一条直接数据通路,当主存和 /0 设备交换信息时 无须调用中断服务程序。
  4. 通道方式。在系统中设有通道控制部件,每个通道都挂接若干外设,主机在执行0 命令时,只需启动有关
    通道,通道将执行通道程序,从而完成 I/O 操作。
    其中,方式 1)和方式 2)主要用于数据传输率较低的外部设备,方式 3)和方式 4)主要用于数据传输率较高的设备。

程序查询方式

  1. CPU执行初始化程序,并预置传送参数。
  2. 向I/O接口发出命令字,启动I/O设备。
  3. 从外设接口读取其状态信息
  4. CPU 不断查询I/O设备状态,直到外设准备就绪
  5. 传送一次数据
  6. 修改地址和计数器参数
  7. 判断传送是否结束,若未结束转第3步,直到计数器为0

在这里插入图片描述

程序中断方式

中断
中断:由于系统中某些突发事件或异常情况的发生,而强迫CPU暂停(或中断)正在执行的程序转去执行相应的服务,当中断服务结束之后再回到原来被中断的地方继续执行原来的程序。
中断源:发出中断请求的来源。
中断源可以分为两大类:内部中断和外部中断。
中断的原理
在中断传送方式下,外部设备具有申请CPU服务的主动权。当输入设备将数据准备好或者输出设备准备好接收数据时,便可以向CPU发中断请求,使CPU暂时信下当前正在执行的程序而和外部设备完成一次数据传输。等输入/输出操作完成以后,CPU继续执行原来的程序。

中断的功能

  1. 实现CPU 与IO设备的并行工作。
  2. 处理硬件故障和软件错误
  3. 实现人机交互,用户千预机器需要用到中断系统
  4. 实现多道程序、分时操作,多道程序的切换需借助于中断系统
  5. 实时处理需要借助中断系统来实现快速响应
  6. 实现应用程序和操作系统 (管态程序) 的切换,称为“软中断”
  7. 多处理器系统中各处理器之间的信息交流和任务切换

程序中断方式
CPU在程序中安排好于某个时刻启动某台外设,然后CPU继续执行原来的程序,不需要像查询方式那样一直等待外设准备就绪。一旦外设完成数据传送的准备工作,就主动向CPU 发出中断请求,请求CPU为自己服务。在可以响应中断的条件下,CPU暂时中止正在执行的程序,转去执行中断服务程序为外设服务,在中断服务程序中完成一次主机与外设之间的数据传送,传送完成后,CPU返回原来的程序。
在这里插入图片描述

程序中断方式工作流程

(1) 中断请求
(2) 中断判优
(3) CPU响应中断的条件
(4) 中断隐指令
(5) 中断向量
(6) 中断处理过程

中断请求
当外部设备处于就绪状态,即输入设备将数据准备好或者输出设备准备好接收数据时,便通过相应的硬件电路向CPU发送一个中断请求信号,请求为之服务
中断判优
一个计算机系统包含多个中断源。由于中断产生的随机性,使得有可能在某一时刻有多个中断源向CPU发出中断请求,但是CPU在任意时刻只能响应并处理一个中断。
中断优先级判定的方法一般有两种:软件判优和硬件判优
软件判优: 指通过软件来安排各中断源的优先级别,但是也要借助于简单的硬件电路实现
硬件判优: 指利用专门的硬件电路或中断控制器来安排冬中断源的优先级。

CPU响应中断的条件
中断源有中断请求
CPU允许中断及开中断
一条指令执行完些,且没有更紧迫的任务
中断隐指令

  1. 关中断。在中断服务程序中,为了保护中断现场 (即CPU主要寄存器中的内容)期间不被新的中断所打断
    必须关中断,从而保证被中断的程序在中断服务程序执行完毕后能接着正确地执行。
  2. 保存断点。为保证在中断服务程序执行完毕后能正确地返回到原来的程序,必须将原来程序的断点[即程序计数器(PC) 的内容] 保存起来
  3. 引出中断服务程序。引出中断服务程序的实质是,取出中断服务程序的入口地址并传送给程序计数器 (PC)。

中断向量
中断向量:不同的设备有不同的中断服务程序,每个中断服务程序都有一个入口地址,CPU 必须找到这个入口地址
中断服务程序入口地址表: 把系统中的全部中断向量集中存放到存储器的某个区域内,这个存放中断向量的存储区就称为中断向量表。
注意:中断向量是中断服务程序的入口地址,中断向量地址是指中断服务程序的入口地址的地址

中断处理过程

  1. 关中断。处理器响应中断后,首先要保护程序的现场状态,在保护现场的过程中,CPU不应响应更高级中断源的中断请求。否则,若现场保存不完整,在中断服务程序结束后,也就不能正确地恢复并继续执行现行程序
  2. 保存断点。为保证中断服务程序执行完些后,能正确返回到原来的程序必须将原来的程序的断点保存起来。断点可以压入堆栈,也可以存入主存的特定单元中。
  3. 引出中断服务程序。引出中断服务程序的实质是,取出中断服务程序的入口地址送入程序计数器(PC)。通常有两种方法寻址中断服务程序的入口地址:硬件向量法和软件查询法
  4. 保存现场和屏蔽字。进入中断服务程序后首先要保存现场,现场信息一般是指程序状态字、中断屏蔽寄存器和CPU中某些寄存器的内容
  5. 开中断。允许更高级中断请求得到响应,实现中断嵌套
  6. 执行中断服务程序。这是中断请求的目的。
  7. 关中断。保证在恢复现场和屏蔽字时不被中断
  8. 恢复现场和屏蔽字。将现场和屏蔽字恢复到原来的状态
  9. 开中断、中断返回。中断服务程序的最后一条指令通常是一条中断返回指令,使其返回到原程序的断点处,以便继续执行原程序。
    在这里插入图片描述

多重中断
在这里插入图片描述

中断屏蔽技术主要用于多重中断。CPU要具备多重中断的功能,必须满足下列条件:

  1. 在中断服务程序中提前设置开中断指令
  2. 优先级别高的中断源有权中断优先级别低的中断源

每个中断源都有一个屏蔽触发器,1表示屏蔽该中断源的请求,0表示可以正常申请
所有屏蔽触发器组合在一起便构成一个屏蔽字寄存器,屏蔽字寄存器的内容称为屏蔽字。

程序中断方式VS程序查询方式
在这里插入图片描述

DMA方式

DMA传送方式的特点

  1. 它使主存与CPU 的固定联系脱钩,主存既可被CPU访问,又可被外设访问
  2. 在数据块传送时,主存地址的确定、传送数据的计数等都由硬件电路直接实现
  3. 主存中要开辟专用缓冲区,及时供给和接收外设的数据
  4. DMA传送速度快,CPU和外设并行工作,提高了系统效率
  5. DMA在传送开始前要通过程序进行预处理,结束后要通过中断方式进行后处理

DMA控制器的组成
在这里插入图片描述

  • 主存地址计数器:存放要交换数据的主存地址
  • 传送长度计数器:记录传送数据的长度,计数溢出时,数据即传送完毕,自动发中断请求信号
  • 数据缓冲寄存器:暂存每次传送的数据
  • DMA请求触发器:每当I/0设备准备好数据后,给出一个控制信号,使DMA请求触发器置位
  • “控制/状态”逻辑:由控制和时序电路及状态标志组成,用于指定传送方向,修改传送参数并对 DMA请求信号和CPU响应信号进行协调和同步
  • 中断机构:当一个数据块传送完些后触发中断机构,向CPU提出中断请求

DMA的传送方式

  1. 停止CPU访问主存。
  2. DMA与CPU交替访存。CPU与DMA控制器交替访问内存。不需要总线使用权的申请、建立和归还过程,
  3. 周期挪用(或周期窃取)。当O接口没有DMA请求时,CPU按程序要求访问内存,一旦P接口有DMA请求,则
    I/O接口挪用一个或几个周期。

DMA传送过程

  1. 预处理
  2. 数据传送
  3. 后处理

在这里插入图片描述

通道方式

外部设备

外部设备
外部设备也称外围设备,是除了主机以外的、能直接或间接与计算机交换信息的装置
输入设备:用于向计算机系统输入命令和文本、数据等信息的部件。键盘和鼠标是最基本的输入设备
输出设备:用于将计算机系统中的信息输出到计算机外部进行显示、交换等的部件。显示器和打印机是最基
本的输出设备。
外存设备:是指除计算机内存及CPU缓存等以外的存储器。硬磁盘、光盘等是最基本的外存设备

I/O接口

I/O接口的结构

在这里插入图片描述

I/O接口的功能

  1. 实现主机和外设的通信联络控制。解决主机与外设时序配合问题,协调不同工作速度的外设和主机之间
    交换信息,以保证整个计算机系统能统一、协调地工作。
  2. 进行地址译码和设备选择。CPU 送来选择外设的地址码后,接口必须对地址进行译码以产生设备选择信
    息,使主机能和指定外设交换信息。
  3. 实现数据缓冲。CPU 与外设之间的速度往往不匹配,为消除速度差异,接口必须设置数据缓冲寄存器
    用于数据的暂存,以避免因速度不一致而丢失数据。
  4. 信号格式的转换。外设与主机两者的电平、数据格式都可能存在差异,接口应提供计算机与外设的信
    号格式的转换功能,如电平转换、并/串或串/并转换、模/数或数/模转换等传送控制命令和状态信息。
  5. CPU 要启动某一外设时,通过接口中的命令寄存器向外设发出启动命令外,设准备就绪时,则将"准备好“状态信息送回接口中的状态寄存器,并反馈给 CPU。外设向 CPU提出中新请求时,CPU也应有相应的响应信号反馈给外设

I/O接口的分类

按数据传送方式可分为:

  1. 并行接口 : 一个字节或一个字所有位同时传送。
  2. 串行接口:一位一位地传送。
    注:这里所说的数据传送方式指的是外设和接口一侧的传送方式,而在主机和接口一侧,数据总是并行送的。接口要完成数据格式转换。

按主机访问I/O设备的控制方式可分为

  • 程序查询接口
  • 中断接口
  • DMA接口

按功能选择的灵活性可分为

  • 可编程接口
  • 不可编程接口

I/O端口编址方式

I/O 端口要想能够被 CPU访问,就必须要对各个端口进行编号,每个端口对应一一个端口地址。而对 I/O
端口的编址方式有与存储器统一编址和独立编址两种。

  1. 统一编址: 又称存储器映射方式,是指把 I/O 端口当作存储器的单元进行地址分配,这种方式 CPU不需要设置专门的 I/O指令,用统一的访存指令就可以访问 I/O 端口。
    优点:不需要专门的输入/输出指令,可使 CPU访问 I/O 的操作更灵活、更方便,还可使端口有较大的编址
    空间。
    缺点:端口 占用存储器地址,使内存容量变小,而且利用存储器编址的 I/O 设备进行数据输入/输出操作
    执行速度较慢。
  2. 独立编址: 又称 I/O 映射方式,I/O 端口的地址空间与主存地址空间是两个独立的地址空间,因而无法从地址码的形式上区分,需要设置专门的 I/O指今来访问 I/O 端口。
    优点: 输入/输出指令与存储器指令有明显区别,程序编制清晰,便于理解。
    缺点: 输入/输出指令少,一般只能对端口进行传送操作,尤其需要 CPU提供存储器读/写、I/0 设备读/写
    两组控制信号,增加了控制的复杂性

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

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

相关文章

【动态规划】【滑动窗口】C++算法:100154 执行操作后的最大分割数量

作者推荐 【动态规划】【字符串】扰乱字符串 本文涉及的基础知识点 C算法:滑动窗口总结 动态规划 LeetCode100154 执行操作后的最大分割数量 给你一个下标从 0 开始的字符串 s 和一个整数 k。 你需要执行以下分割操作,直到字符串 s 变为 空&#xf…

Flink中的状态管理

一.Flink中的状态 1.1 概述 在Flink中,算子任务可以分为有状态和无状态两种状态。 无状态的算子任务只需要观察每个独立事件,根据当前输入的数据直接转换输出结果。例如Map、Filter、FlatMap都是属于无状态算子。 而有状态的算子任务,就…

C#使用栈方法遍历二叉树

步骤一:定义一个二叉树的节点类 定义一个二叉树的节点类,其中包含节点的值、左子节点和右子节点。 // 二叉树节点定义public class TreeNode{public int Value { get; set; } // 节点的值public TreeNode Left { get; set; } // 左子节点public TreeN…

uniapp 微信小程序跳转至其他小程序

一、背景&#xff1a; 需要在目前的小程序中跳转到另一个小程序&#xff0c;跳转的目标小程序需要已经发布上线了 二、具体实现 使用uni.navigateToMiniProgram打开另一个小程序 官网指引&#x1f449;&#xff1a;uni.navigateToMiniProgram(OBJECT) | uni-app官网 <t…

手把手教你用jmeter做压力测试(详图)

一.前言 压力测试是每一个Web应用程序上线之前都需要做的一个测试&#xff0c;他可以帮助我们发现系统中的瓶颈问题&#xff0c;减少发布到生产环境后出问题的几率&#xff1b;预估系统的承载能力&#xff0c;使我们能根据其做出一些应对措施。所以压力测试是一个非常重要的步…

基于机器视觉的车牌检测-车牌粗略定位

基于颜色特征的定位算法 基于颜色特征的定位算法。该算法不用对整幅图像进行边缘检测&#xff0c;而是直接寻找图片中颜色、形状及纹理符合车牌特征的连通区域。通过分析车牌图像&#xff0c;发现对于具有某种目标颜色的像素&#xff0c;可以直接通过对H、S、I三分量设定一个范…

CPU平台做视频智能分析,Lnton视频分析平台不仅支持流分析,同时也支持图片分析了

LntonAIServer最新v1.0.09版本支持图片分析了&#xff0c;经过几个月的研发&#xff0c;在原有的视频流分析的基础上&#xff0c;我们终于支持大家都非常期待的图片分析功能了&#xff0c;图片分析的功能加上&#xff0c;能有利于很多场景的展开&#xff0c;比如在烟火、明厨亮…

Java学习笔记(十)——异常

一、异常的概念 二、异常体系图&#xff08;重要&#xff09; 三、常见的异常 &#xff08;一&#xff09;常见的运行时异常 1、NullPointerException空指针异常 2、ArithmeticException数学运算异常 3、ArrayIndexOutOfBoundsException数组下标越界异常 4、ClassCastEx…

阿里巴巴微服务治理框架的终极PK!

另外我的新书RocketMQ消息中间件实战派上下册&#xff0c;在京东已经上架啦&#xff0c;目前都是5折&#xff0c;非常的实惠。 https://item.jd.com/14337086.html​编辑https://item.jd.com/14337086.html “RocketMQ消息中间件实战派上下册”是我既“Spring Cloud Alibaba微…

Java调用shell脚本实现数据库备份功能

本篇文章主要介绍怎样使用Java程序&#xff0c;执行服务器上的数据库备份Shell脚本进行MySQL数据库的备份功能。 学习目标 使用Java执行Shell脚本、实现MySQL数据库的备份功能。 学习内容 编写导出MysSQL数据库的Shell脚本 以下是一个使用Bash脚本进行数据库备份的示例代码…

java基础之Java8新特性-Stream(流)

简介 流&#xff08;Stream&#xff09;是 Java 8 引入的一种处理集合数据的抽象概念&#xff0c;它提供了一种更简洁、更灵活的方式来操作和处理集合数据。流可以看作是一系列元素的管道&#xff0c;可以对这些元素进行筛选、转换、排序、归约等操作&#xff0c;实现各种数据…

【leetcode】力扣热门之合并两个有序列表【简单难度】

题目描述 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 用例 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4] 输入&#xff1a;l1 [], l2 [] 输出&#xff1a;[] 输入&#xff1a;l1 []…

FC SAN光纤交换机维护介绍

一、什么是FC SAN &#xff1f; ​存储区域网络&#xff08;Storage Area Network&#xff0c;SAN&#xff09;采用网状通道&#xff08;Fibre Channel &#xff0c;简称FC&#xff0c;区别与Fiber Channel光纤通道&#xff09;技术&#xff0c;通过FC交换机连接存储阵列和服务…

实现目标检测中的数据格式自由(labelme json、voc、coco、yolo格式的相互转换)

在进行目标检测任务中&#xff0c;存在labelme json、voc、coco、yolo等格式。labelme json是由anylabeling、labelme等软件生成的标注格式、voc是通用目标检测框&#xff08;mmdetection、paddledetection&#xff09;所支持的格式&#xff0c;coco是通用目标检测框&#xff0…

学习笔记:C++之 switch语句

Switch语句 作用&#xff1a;执行多条件分支语句 语法&#xff1a; switch&#xff08;表达式&#xff09;{ case 结果1&#xff1a;执行语句&#xff1b;break&#xff1b; case 结果2&#xff1a;执行语句&#xff1b;break&#xff1b; ... default&#xff1a;执行语句&a…

Java反射之获取构造方法,成员变量,成员方法以及反射的作用

目录 1.什么是反射2.获取Class对象的三种方式3.反射获取构造方法4.反射获取成员变量5.反射获取成员方法6.反射的作用 1.什么是反射 在Java中&#xff0c;反射是指程序在运行时动态地获取类的信息、调用方法和访问属性的能力。 通过反射&#xff0c;可以在运行时获取类的构造函数…

什么是多因素身份验证(MFA)

多重身份验证&#xff08;MFA&#xff09;是在授予用户访问特定资源的权限之前&#xff0c;使用多重身份验证来验证用户身份的过程&#xff0c;仅使用单一因素&#xff08;传统上是用户名和密码&#xff09;来保护资源&#xff0c;使它们容易受到破坏&#xff0c;添加其他身份验…

计算机原理 (2) CPU的诞生 输入 输出 PC指针

文章目录 计算机的前世今生计算机的三个根本性基础1. 计算机是执行输入、运算、输出的机器&#xff1b;2.程序是指令和数据的集合&#xff1b;3.计算机的处理方式有时与人们的思维习惯不同 二、结论三、参考资料交个朋友 计算机的前世今生 上一篇文章最终结束的时候谈到希望给…

JavaScript异常处理实战

前言 之前在对公司的前端代码脚本错误进行排查&#xff0c;试图降低 JS Error 的错误量&#xff0c;结合自己之前的经验对这方面内容进行了实践并总结&#xff0c;下面就此谈谈我对前端代码异常监控的一些见解。 本文大致围绕下面几点展开讨论&#xff1a; JS 处理异常的方式…

鸿蒙开发基础运用(ArkTS)-健康生活APP

健康生活应用&#xff0c;主要功能包括&#xff1a; 用户可以创建最多6个健康生活任务&#xff08;早起&#xff0c;喝水&#xff0c;吃苹果&#xff0c;每日微笑&#xff0c;刷牙&#xff0c;早睡&#xff09;&#xff0c;并设置任务目标、是否开启提醒、提醒时间、每周任务频…