计算机组成原理 | 第五章:输入输出系统 | 程序中断方式

news2024/11/18 13:31:43

文章目录

  • 📚概述
    • 🐇I/O系统的概述
    • 🐇输入输出系统的组成
    • 🐇I/O设备与主机的联系
    • 🐇I/O设备与主机信息传送的控制方式
  • 📚I/O接口
    • 🐇为什么要设置接口❓
    • 🐇接口的功能和组成
    • 🐇接口和端口🔔
  • 📚程序查询方式
    • 🐇程序查询流程
      • 🥕查询流程
      • 🥕程序流程
    • 🐇接口电路
  • 📚程序中断方式
    • 🐇中断相关概念
      • 🥕中断的概念
      • 🥕中断的分类
    • 🐇程序中断的接口电路
      • 🥕配置中断请求触发器和中断屏蔽触发器
      • 🥕排队器(链式排队器)
      • 🥕中断向量地址形成部件
      • 🥕程序中断方式接口电路的基本组成
      • 🥕程序中断处理过程
        • 🍃划个重点🔔
        • 🍃中断判优补充
    • 🐇中断服务程序流程
      • 🥕中断服务程序流程
      • 🥕单重中断与多重中断⭐️
    • 👀中断流程总结
  • 📚DMA方式
    • 🐇DMA传送方式(关注周期挪用⭐️)
    • 🐇DMA接口的功能和组成(了解)
    • 🐇DMA传送过程
  • 📚小结
    • 🔑本章掌握要点

📚概述

🐇I/O系统的概述

  • 组成:外部设备、接口部件、总线以及相应的管理软件统称为计算机的输入输出系统,简称I/O系统
  • 功能
    • 完成计算机内部二进制信息与外部多种信息形式间的交流
    • 利用数据缓冲,选择合适的数据传送方式等,实现主机与外设间速度的匹配
  • 特点
    • 异步性:外围设备相对于处理机通常是异步工作
    • 实时性: 当外围设备与处理机交互时,由于设备的类型不同,它们的工作步调是不同的,处理机必须按照不同设备要求的传送方式和传输速率不失时机地为设备提供服务,这就要求实时性控制
    • 与设备无关性:各种外部设备必须根据其特点和要求选择一种标准接口和处理机进行连接
  • 数据交换过程
    • 输入
      • CPU将一个地址放在地址总线
      • 选择某一输入设备,CPU等待输入设备的数据有效
      • CPU从数据总线读入数据
      • 并放在相应的寄存器
    • 输出
      • CPU将一个地址放在地址总线上,选择输出设备
      • CPU把数据放数据总线
      • 输出设备认为数据有效,从而把数据取走
  • 性能

    按照主要完成的工作可以分成以下两类:存储I/O、通信I/O;I/O系统的性能对CPU的性能有很大影响。

    • 连接特性:哪些设备可和计算机系统相连接
    • I/O系统的容量:可容纳的I/O设备数目
    • 系统的响应时间:从用户输入命令开始,到得到结果所花费的时间(包括I/O系统的响应时间和CPU的处理时间)
    • I/O的吞吐率:单位时间完成的I/O操作次数,单位通常用IOP表示

🐇输入输出系统的组成

  • I/O软件
    • I/O指令:CPU指令的一部分
      在这里插入图片描述
    • 通道指令:通道自身的指令
      • 指出数组的首地址、传送字数、操作命令
  • I/O硬件
    • I/O接口、设备控制器、通道

🐇I/O设备与主机的联系

在这里插入图片描述

🐇I/O设备与主机信息传送的控制方式

在这里插入图片描述

  • 无条件I/O方式:在程序的适当位置直接安排I/O指令,当程序执行到这些I/O指令时,CPU默认外设始终是准备就绪的
    • 输出:I/O总是准备好接收CPU的输出数据
    • 输入:外设总是准备好向CPU输入数据
  • 程序查询方式:其特点是主机与I/O串行工作
  • 程序中断方式:其特点是主机与I/O并行工作,传送与主程序串行工作
  • DMA方式:其特点是主机与I/O并行工作,传送与主程序并行工作
  • 通道方式:CPU把部分权利下放给通道,提高CPU效率,但硬件代价更大
  • I/O处理机方式:实质是多机系统,效率更大提升

📚I/O接口

🐇为什么要设置接口❓

在这里插入图片描述

🐇接口的功能和组成

在这里插入图片描述

  • 功能和组成对照表格
    组成功能
    设备选择电路选址功能
    命令寄存器、命令译码器传送命令的功能
    数据缓冲寄存器传送数据的功能
    设备状态标记反映设备状态的功能
    • 针对反映设备状态的功能
      • 完成触发器D
      • 工作触发器 B
      • 中断请求触发器 INTR
      • 屏蔽触发器 MASK

🐇接口和端口🔔

在这里插入图片描述
在这里插入图片描述


📚程序查询方式

🐇程序查询流程

🥕查询流程

在这里插入图片描述

🥕程序流程

在这里插入图片描述

  • 保护寄存器内容:由于这种方式传送数据时要占用CPU中的寄存器,故首先要将寄存器原内容保护起来(若存有有用信息)
  • 设置计数值:由于传送往往是一批数据,因此需先设置I/O设备与主机交换数据的计数值
  • 设置主存缓冲区首址:设置欲传送数据在主存缓冲区的首地址

🐇接口电路

在这里插入图片描述

  1. 当CPU通过I/O指令启动输入设备时,指令的设备码字段通过地址线送至设备选择电路
  2. 若该接口的设备码与地址线上的代码吻合,其输出SEL有效
  3. I/O指令的启动命令经过“与非”门将工作触发器B置为“1”,将完成触发器D置“0”
  4. B触发器启动设备工作
  5. 输入设备将数据送至数据缓冲寄存器
  6. 由设备发设备工作结束信号将D置“1”,B置“0”表示外设准备就绪
  7. D触发器以“准备就绪”状态通知CPU,表示“数据缓冲满”
  8. CPU执行输入指令,将数据缓冲寄存器中的数据送至CPU的通用寄存器,再存入主存相关单元

📚程序中断方式

🐇中断相关概念

🥕中断的概念

CPU在正常运行程序时,由于内部/外部事件引起CPU中断正在进行的程序,而转为中断事件服务的程序中去,服务完毕,再返回执行原程序的这一过程。

在这里插入图片描述

  • 这一过程具有随机性,可提高效率
  • 总之,“中断”技术为了提高计算机的整体效率为了应付突发事件,为了实时控制的需要

🥕中断的分类

在这里插入图片描述
在这里插入图片描述

🐇程序中断的接口电路

🥕配置中断请求触发器和中断屏蔽触发器

在这里插入图片描述

🥕排队器(链式排队器)

  • 处理器在一个时刻只能相应并处理一个中断请求,因此需要中断排队
  • 硬件:集中在CPU内或分散于接口电路中(链式排队器);软件详见第八章

在这里插入图片描述

🥕中断向量地址形成部件

在这里插入图片描述

🥕程序中断方式接口电路的基本组成

在这里插入图片描述

🥕程序中断处理过程

  1. CPU启动I/O设备命令,将接口中的B置“1”,D置“0”
  2. 接口启动输入设备开始工作。
  3. 输入设备将数据送入数据缓冲寄存器。
  4. 输入设备向接口发出设备工作结束信号,将D置为“1”,B置为“0”,标志设备准备就绪
  5. 设备准备就绪(D=1),且本设备未被屏蔽(MASK=0)时在指令执行阶段的结束时刻,向CPU发出中断查询信号
  6. 设备中断请求触发器INTR被置为“1”标志设备向CPU提出中断请求。与此同时,INTR送至排队器,进行中断判优
  7. 若CPU 允许中断EINT=1),设备又被排队器选中,即进入中断相应阶段。由中断响应信号INTA将排队器输出送至编码器形成向量地址。
  8. 向量地址送至PC,作为下一条指令的地址
  9. 由于向量地址中存放的是一条无条件转移指令,故这条指令执行结束后,即无条件转至该设备的服务程序入口地址,开始执行中断服务程序。进入中断服务阶段,通过输入指令将数据缓冲寄存器的输入数据送至CPU的通用寄存器,再存入主存相关单元
  10. 中断服务程序的最后一条指令是中断返回指令,当其执行结束时,即中断返回至原程序的断点处。至此结束。

好多呀,记不住

🍃划个重点🔔

  • 一次中断过程包括:中断请求、中断屏蔽(用于多重中断,详见第八章)、中断判优、中断响应、中断处理、中断返回
  • CPU响应中断时间:当D=1且MASR=0时,在当前指令结束时,CPU发中断查询信号(将INTR置“1”)
  • CPU响应中断条件:允许中断触发器EINT=1(所有中断必须条件)
    • 用开中断指令将EINT置“1”
    • 用关中断指令将EINT置“0”或硬件自动复位
  • 中断相应信号(INTA) 将排队器输出送至编码器形成向量地址。

🍃中断判优补充

  • 中断判优:多个中断源同时提出请求,其硬件实现是通过硬件排队器实现的,它既可以设置在CPU中,又可以分散在各个中断源中,其软件实现是通过查询程序实现的
  • 优先级设置
    • 硬件故障优于软件中断
    • 非屏蔽中断优于可屏蔽中断
    • DMA请求优于I/O设备传送的中断请求
    • 高速设备优于低速设备
    • 输入设备优于输出设备
    • 实时设备优于普通设备

🐇中断服务程序流程

🥕中断服务程序流程

  • ①保护现场
    • 程序断点的保护,由中断隐指令完成
    • 寄存器内容的保护,由进栈指令完成
    • 关于中断隐指令的功能
      • 关中断:保护中断现场不被新的中断所打断
      • 保存断点:将原程序的断点(即PC(程序计数器)的内容)保存起来
      • 引出中断服务程序:取出中断服务程序的入口地址并传送给PC
  • ②中断服务:主体部分
  • ③恢复现场:通过出栈指令或取数指令把之前保存的信息送回寄存器
  • ④中断返回:通过中断返回指令回到程序断点处

🥕单重中断与多重中断⭐️

  • 单重中断:不允许中断现行的中断服务程序
  • 多重中断:又称中断嵌套,允许级别更高的中断源中断现行的中断服务程序

在这里插入图片描述

  • 单重中断中,由于执行中断时不会被其他中断打断,所以只需要在中断返回前打开中断。
  • 多重中断的情况下,在执行中断服务程序的过程中允许被优先级更高的中断打断,所以需要在进入中断服务程序前打开中断
  • 中断屏蔽技术(详见第八章)主要用于多重中断,需满足条件
    • 在中断服务程序中提前设置开中断指令
    • 优先级别高的中断源有权中断优先级别低的中断源

👀中断流程总结

在这里插入图片描述


📚DMA方式

DMA 和程序中断两种方式的数据通路
在这里插入图片描述

🐇DMA传送方式(关注周期挪用⭐️)

在这里插入图片描述

🐇DMA接口的功能和组成(了解)

  • DMA接口功能
    在这里插入图片描述
  • DMA接口组成
    在这里插入图片描述

🐇DMA传送过程

在这里插入图片描述

主存和DMA接口之间有一条直接数据通路。由于DMA方式传输数据不需要经过CPU,因此不必中断现行程序,I/O与主机并行工作,程序和传送并行工作


在这里插入图片描述

与中断方式相比,CPU对DMA方式响应速度更快:因为两种方式的交换速度相差很大,CPU必须以更短的时间间隔查询并响应DMA请求(一个存储周期末)


📚小结

在这里插入图片描述

🔑本章掌握要点

在这里插入图片描述


👀参考博客
I/O系统(部分图片来源)

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

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

相关文章

Pygame的SurfaceImageTime

Surface用来生成一个矩形,Image用来导入外部图片,Time用来暂停时间。 Surface 生成矩形 facepy.Surface((200,200))填充颜色 face.fill(blue) 放入界面 screen.blit(face,(50,50)) Image 导入图片 imgpy.image.load(d:\\图片\\1.jpg) 缩放…

make prerequisite: 根据文件状态自动确定是否重新执行

Basic 先看一个简单的例子(引自Makefile Tutorial By Example):当我们对同一个makefile执行两次make命令时,由于第一次运行已经生成了目标文件blah,第二次make会直接输出blah is up to date,而不会重新com…

(四)Redis配置文件redis.conf详解

目录 一、Units单位 二、INCLUDES(包含配置) 三、NETWORK(网络配置) 四、GENERAL(总则) 五、SNAPSHOTTING(拍摄快照) 六、REPLICATION(复制) 七、SECU…

【苹果相册日历推位置推送iMessage】需要将真机的udid复制出来在此添加

推荐内容IMESSGAE相关 作者✈️IMEAX推荐内容iMessage苹果推软件 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容1.家庭推内容 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容2.相册推 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容3.日历推 *** …

通过伪代码结合理论模拟pc端接入单点登录(Oauth2浙里办)

前言 还记得那是一个惺忪的早晨,带着困意的我正准备去公司上班,坐车坐到一半,钉钉突然袭来一条红色预警信息,公司查出来有个人阳了,好消息:万幸我还在去公司的路上,没有和他有过多的接触&#x…

机器学习中的数学原理——对数似然函数

这个专栏主要是用来分享一下我在 机器学习中的 学习笔记及一些感悟,也希望对你的学习有帮助哦!感兴趣的小伙伴欢迎 私信或者评论区留言!这一篇就更新一下《 白话机器学习中的数学——对数似然函数》! 目录 一、什么是对数似然函数…

SD卡打不开怎么办?sd卡损坏修复,盘点一些实用的教程

SD卡的应用十分广泛,比如,手机、数码相机、摄像机、MP4、航拍器、车载导航等。但是随着SD卡的使用时间的长短,有时会出现常见问题—SD卡打不开。SD卡里面保持着我们很多重要数据,如果它打不开,很可能导致我们里面重要数…

CSS倒影炫酷属性 -webkit-box-reflect 的使用

文章目录效果预览一、相关知识点介绍属性相关二、实现步骤总结效果预览 一、相关知识点 介绍 文档 MDN关于倒影属性介绍:https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-box-reflect 官方说明: 非标准:该特性是非标准的,不在标…

CCF BDCI|算能赛题决赛选手说明论文-05

基于TPU平台实现人群密度估计 队伍:SO-FAST 宋礼 算法工程师 京东科技 中国-北京 song200626163.com柯嵩宇计算机科学与技术专业 博士 上海交通大学 中国-上海 songyukesjtu.edu.cn包锴楠计算机科学与技术 硕士 西南交通大学 中国-成都 baokainan123gmail…

元宇宙构建基石:三维重建技术

如今“元宇宙”概念爆火,作为前沿数字科技发展的集成体之一,元宇宙正成为诸多产业寻求破局的全新风口。元宇宙是利用科技手段进行链接与创造,与现实世界映射和交互的虚拟世界,具备新型社会体系的数字生活空间;其本质上…

Day11 蓝桥杯+Java中LocalDate类——关于日期跳转题【2015省赛星系炸弹】(相比C++,Java的LocalDate是真的香!!!)

今天刷蓝桥杯的题,用CAC了之后,发现解析里有兄弟用Java的LocalDate类做的,步骤极其简洁,【由于寒假开始学过一点Java】所以我特意去搜了搜LocalDate类,发现解这种题真的很好使!!!废话…

高级性能测试系列《39.终极线程组可以模拟出压力测试场景吗?》

一、回顾1.面向目标场景:Arrivals Thread Group,这个可以面向tps。Concurrency Thread Group,可以设置面向多少个并发用户数。2.波浪型场景:Ultimate Thread Group 波浪型场景。在添加第二行时,初始化时间点要大于等于…

Makefile的使用 和 基本语法 及Makefile中变量的使用【入门必看】

MakefileMakefile概要为啥要使用MakefileMakefile的使用Makefile的语法(重点)Makefile实际使用(重点)利用Makefile删除详解Makefile指令(重点)Makefile多命令选项Makefile的选择编译特性强制执行总结Makefi…

使用 Keras 深度学习库进行CNN 图像识别

Keras 是一个用于深度学习的 Python 库,它封装了强大的数值库 Theano 和 TensorFlow。 在本文中,你将了解如何在 Keras 中开发和评估用于图像识别的深度学习模型。完成本文后,你将了解: 关于 CIFAR-10 对象分类数据集以及如何在…

Pyrene-PEG5-propargyl_1817735-33-3_芘甲酰胺五聚乙二醇丙炔

Pyrene-PEG5-propargyl,芘甲酰胺-五聚乙二醇-丙炔Product structure:Pyrene-PEG5-propargyl结构式Product specifications:1.CAS No:1817735-33-32.Molecular formula:C30H33NO63.Molecular weight:503.64.…

一文弄懂三色标记算法

本文已收录至Github,推荐阅读 👉 Java随想录 你愈是少说你的伟大,我将愈想到你的伟大。——培根 文章目录三色标记算法增量更新原始快照面试官:我们先从JVM基础开始问,了解三色标记算法吗?我:额…

CSS或JS实现逐帧动画方案

什么是逐帧动画 逐帧动画是一种在连续的关键帧中分解动画动作,即在时间轴的每一帧上绘制不同内容并使之连续播放成动画的一种常见的动画形式。与CSS关键帧动画不同的是,逐帧动画每一帧需要自行定义;关键帧动画只需定义部分关键帧,…

《机会成本》的阅读札记

【引子】第一次接触机会成本,大约还是十几年前自己在读MBA的时候,在徐华老师《管理经济学》的课上听到过一耳朵,但没有太多的认知。这个春节,阅读了《机会成本——做出高效决策的策略思维》才有了些许进一步的认识,那么…

从0到1介绍一下开源大数据服务平台dataService

1.背景&现状 在大数据领域也已经工作了多年,无论所待过的大公司还是小公司,统计出来的数据经常需要查询展示,比如说:用做大屏或者报表或者给一些线上服务提供数据源,经常会要用代码写一套接口服务,需要…

Python中的os模块

整理文件和目录最最最常用的os模块os模块是Python标准库中整理文件和目录最为常用的模块,该模块提供了非常丰富的方法用来处理文件和目录。os.getcwd()作用:获取当前的工作路径;>>> os.getcwd() D:\\ResearchWay\\Code\\PythonCode\…