组原7_程序查询和程序中断方式

2023-05-16

目录

1.  I/O 方式简介

2. 程序查询方式

3. 程序中断方式


 

1.  I/O 方式简介

 

 

 

 

 

2. 程序查询方式


程序查询方式流程图

 

 

 

 程序查询方式接口结构

一次只能传送一个字的原因在于:这种方式下,外设传过来的数据是放在寄存器中的;即使外设传的数据想放到主存中,也需要先放到 CPU 寄存器中,再从这个寄存器移到主存相应位置。

 

 

所以程序查询的方式用来管理这些高速设备是非常不科学的。
一般来说,从频率的角度来考虑,计算量会比较小,但需要对频率的概念理解准确。

 

 

 

系统总线和 I/O总线的区别 点我

 

 

 

 

 

3. 程序中断方式

整体逻辑:

中断这种机制是用来提高整个计算机系统的工作效率的,而 I/O 这块介绍的程序中断方式只是这种中断机制在控制 I/O 设备的数据传送这一块的一个具体应用。 所以要先理解好中断机制。

 

 

中断的基本概念

 

 

 

中断请求的分类

 

 

 将中断分类之后,如何告诉 CPU 现在发过来的请求是哪一类呢?
做法类似中断标志位的处理,给每一类中断都设置一个特定的位置,通过这个位置上的二进制位来表示这一类中断是否提出了请求。这种情况下,当检测到某一个中断的时候,只需要看一下是哪个位置发出来的就知道是哪一类中断请求。

 

 

 

中断请求标记

具体的做法就是给每个中断源都设计一个中断请求标记触发器 INTR,触发器可以存放一个二进制位,当某个中断源需要提出中断请求的时候,就把这个触发器中的内容改成1,CPU 检测到这个触发器中的内容是 1 的时候就知道这个中断源提出了中断。而这个触发器可以把它整理成一个统一的硬件,设置在 CPU 中,也可以把这个标记的触发器做在那个中断源所处的硬件中。比如打印机对应的触发器就可以做在打印机中,(光电输入机一般指鼠标)。

 

中断可以分为内中断和外中断,内中断的发生和指令的执行有关。所以它的中断请求是否产生,在执行指令的过程中就可以顺便去做一下查询,不需要统一在某个时间点再安排。外中断和当前的指令执行是无关的,所以需要在一些特定的时间点,专门地发出一些查询信号去查询一下它们的中断请求发出的情况。


也有的地方说的是指令结束的时刻查询中断信号,这两种说法都有出现,所以遇到概念题以排除法为主,有其它更明显的错误就不要纠结这两个说法。

当然,也存在一些特殊情况,当某些指令执行时间很长的时候,可以在执行过程中设置若干个 " 查询断点 "。

查询到中断之后,CPU 要先做一定的判断再决定要不要响应中断。
允许中断(开中断)、不允许中断(关中断 )。

 

当有多个中断请求同时被查询到的时候,需要进行中断判优。

 

 

 

 

中断判优

流程图了解下即可。

这两种实现的方式对中断请求都是有一定的优先级的(排在前面的最先被响应)

 

 

 

 

优先级设置

在练习中遇到的优先级问题,及时积累。(这个知识点不用特意去学,在题目中积累即可)

 

 

这个时候,中断机制的工作流程就过完了两步,中断请求和中断响应,接着学习中断处理。

 

中断处理过程

在中断服务程序执行完成之后,需要将 PC 的内容设置为 k+1,回到中断前的任务继续执行。但是如果在执行完 k 这条指令的时候,中断服务程序是直接将 PC 的内容覆盖掉的(将 PC 的地址改为了中断服务程序的第一条指令地址),也就意味着在末尾不知道 k+1 是多少了,所以保存 PC 的任务没有办法通过中断服务程序来执行(执行中断服务程序的第一步就是把 PC 改掉)。所以想要保存 PC 需要在执行中断服务程序之前通过硬件来完成。把完成这个任务的一系列硬件操作统称为中断隐指令。

 

 

 

中断隐指令的任务

 

 

把各个不同的中断服务程序的入口地址统一地存在一段主存中,这个入口地址叫做中断向量,这些中断向量是放在主存的某个单元中,这个单元也有一个地址,该地址叫向量地址(中断向量的地址)。

补充:有的系统中,中断向量地址形成部件形成的不是直接的向量地址,而是中断类型号,中断类型号和向量地址是成一定的倍数关系,所以给出了中断类型号,也就意味着给出了向量地址。

 

那为什么不是直接给出这个中断服务程序的入口地址呢?而是先给出一个地址,在这个地址中存储入口地址(即中断向量)?
因为这样的方式下,用于存中断向量的地址是不需要修改的(中断向量存储在固定的地址)。而具体中断服务程序在哪个地方,以及有多长调整起来就非常灵活。可以把这个程序写好之后,在把这个入口地址存放到这个向量地址所对应的单元中。也就意味着中断向量地址形成部件在形成地址的时候还是之前的地址,但地址里面的内容改变了,就可以很灵活的调整这些设备所对应的中断源。也就是修改完某一个触发器所对应的中断源之后,只要对应地写出它的中断服务程序内容,然后将入口地址放到它所对应的向量地址所指出的单元中就可以了。

 

 

 

中断服务程序的任务

 

 

 

 

 

 

 

这两个图需要会画 !!

 

 

 

 

 

程序中断的作用

 

 

 

CPI 的含义是执行一条指令需要多少个时钟周期。

 

思考:怎么算完成了一次传送?  从外设启动开始,到下一次启动这段时间就是完成了一次传送,所以在计算的时候是 15*4。

 

 

 

小结:

 

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

组原7_程序查询和程序中断方式 的相关文章

  • 关于2048小游戏项目的一些心得

    这是我学习完标C和Unix C以后做的一个小游戏 xff0c 只能支持字符终端界面 在此将其贴出来 xff0c 希望能够跟大家分享一些心得 以下是我当时写的一个项目文档 61 61 61 61 61 61 61 61 61 61 61 61
  • 蓝牙HC-05与Arduino Pro mini实现蓝牙防远离

    因为最近一些工作学习的需要 xff0c 入手了一个Arduino Pro mini来玩一玩 xff0c 于是就做了一个简易的通过蓝牙实现防远离的手环功能 在学习的过程中受过一些指点 xff0c 所以在此将一些学习过程中的经验心得分享出来 x
  • ELF格式与bss段

    ELF Executable Linkable Format 是Linux系统下的一种可执行可链接文件的格式 xff0c 是COFF格式的变种 在Linux系统中包括了可重定位文件 o文件 xff0c 可执行文件 bin bash文件 xf
  • 程序员必备的书籍有哪些?

    程序员必备书籍之史上最全版 xff01 xff01 xff01 动用了周围一切资源 xff0c 请教了腾讯 阿里等多家大咖 xff0c 综合各个专业研究员的学习经验 xff0c 终于整理好这篇文章 xff01 最全 xff01 最全 xff
  • USB主机是如何检测到设备的插入的呢?

    USB设备的插入检测机制 首先 xff0c 在USB集线器的每个下游端口的D 43 和D 上 xff0c 分别接了一个15K欧姆的下拉电阻到地 这样 xff0c 在集线器的端口悬空时 xff0c 就被这两个下拉电阻拉到了低电平 而在USB设
  • 如何在i.mx6dl开发板上移植udev并实现移动设备的自动挂载

    在整个移植过程中 xff0c 我所使用的操作平台 xff1a host xff1a Ubuntu14 04 LTS board xff1a MCIMX6DL SDP udev 版本 xff1a udev100 一 移植udev 下载 ude
  • 飞思卡尔的i.mx6dl开发板上实现nfs网络文件系统挂载操作指南

    问题描述 xff1a 在MCIMX6DL SDP 上实现网络文件挂载 xff0c 要求从emmc 中启动uboot 和kernel xff0c 从网络上挂载根文件系统 操作平台 xff1a host xff1a Ubuntu14 04LTS
  • 如何修改Linux开启进度条的图片

    最近因为工作需要 xff0c 需要将Linux启动时的开机进度条背景修改为公司logo xff0c 并将进度条转换为自己的动画 这里说明一下 xff0c psplash是Linux下的一款开源软件 xff0c 可以在嵌入式产品中显示开机进度
  • 如何修改Linux开机启动logo并使其全屏显示?

    1 制作开机启动logo的图片 my image png 61 61 gt logo linux clut224 ppm 要求图片的分辨率要和屏幕大小一致 使用如下命令 xff1a pngtopnm my image png gt my i
  • 实现JavaScript分片上传大视频到七牛云实例

    https blog csdn net weixin 34228617 article details 93033483
  • Rust嵌入式编程---动态内存分配器(Vec,String等)

    本教程不是0基础的Rust嵌入式编程 xff0c 需要有一定的Rust裸机编程的基础知识 作为一个比较接近C的例子 xff0c 适合入门 xff0c 代码比较容易理解 本次例子使用的是target 61 thumbv8m main none
  • STM32F103 KEIL 标准库直接添加DSP库

    前言 近期由于比赛需要 xff0c 想要在STM32上移植DSP库进行FFT变换 xff0c 找了很多资料都是利用CUBEMX进行导入的方法 xff0c 本人使用的是标准库 xff0c 对HAL库并不熟悉 xff0c 所以考虑到移植的方便采
  • 最优化方法在图像处理中的应用【5】

    最优化方法在图像处理中的应用 5 分类 xff1a image process optimization 数学 2013 09 23 21 34 42人阅读 评论 0 收藏 举报 目录 43 好吧 xff0c 我想理解下Convex fun
  • VESC电调配置教程

    VESC电调配置教程 简介及硬件环境教程简介软硬件环境第一次的配置步骤更新固件电机参数设置及自动测量 上位机直接驱动电机的方法查看回传数据的方法BUGLIST 简介及硬件环境 教程简介 大家好 xff0c 欢迎阅读本教程 在关节处或者底盘处
  • OpenHarmony轻量级设备xts认证大致流程

    因为最近公司在做openharmony开发板xts认证 xff0c 这里对认证过程和过程中遇到的坑做下记录 xff0c 也给大家探探路 1 开发板适配 OpenHarmony轻量系统的移植比较简单 xff0c 代码中解耦做得非常好 从代码的
  • leo学习系列之七——文档生成rst3和sphinx

    先看看网页在leo中的组织形式 xff1a 详细内容 xff1a 网页后请看 xff1a http leoeditor com tutorial rst3 html 现在开始讲解rst和sphinx 1 xff1a rst和sphinx是什
  • excel数据对比-----查找两列(表)的相同数据

    原创作品 xff0c 允许转载 xff0c 转载时请务必以超链接形式标明文章 原始出处 作者信息和本声明 否则将追究法律责任 http xueli blog 51cto com 3325186 920592 现有两个excel表 xff0c
  • discuz 微社区 您请求的XXXX无法访问 接口错误(ERR02)

    我遇到的情况 xff1a 1 UC可以访问页面 xff0c 用微信报错 2 4G网络下可以访问 xff0c WiFi网络下报错 网上有两种解决方法 xff1a 1 关闭防采集 xff0c 我最终的采用方法 2 default下的mobile
  • 所有文件夹都变成1KB文件夹快捷方式病毒的手动清除方法

    电脑差不多都因使用U盘而感染了病毒 xff0c 其中一个就是Autoran病毒的变种 xff0c 它的症状我就不再描述了 xff0c 另外一个病毒的症状是所有文件夹都变成了1KB文件夹快捷方式 xff0c 各盘无法双击打开 xff08 但右
  • 搜狗高速浏览器2.0使用体验

    2010年 4 月 8 号 xff0c 我们终于迎来了 国内浏览器的后起之秀搜狗高速浏览器2 0 正式版 的 发布 高速真双核引擎 的概念得到了落实 它新增并改进了诸多功能 xff0c 修改了一些bug xff0c 从整体提高 搜狗高速浏览

随机推荐

  • Connection refused错误

    这个问题整了我两天时间 xff0c 现在终于解决了 问题 xff1a 用php 构造http请求访问自身web服务器页面 xff0c 总是报Connection refused 111 错误 显示 xff1a unable to conne
  • GIF89a图片头文件欺骗

    1 什么是GIF89a 一个GIF89a图形文件就是一个根据图形交换格式 xff08 GIF xff09 89a版 xff08 1989年7 月发行 xff09 进行格式化之后的图形 在GIF89a之前还有87a版 xff08 1987年5
  • txt文件导入mysql

    LOAD DATA LOW PRIORITY CONCURRENT LOCAL INFILE 39 file name 39 REPLACE IGNORE INTO TABLE tbl name CHARACTER SET charset
  • 2011 移动开发者大会 记忆中的第一天

    很久没记过流水帐了 平时八点起床的我 xff0c 11月3号六点半就起床了 xff0c 为的是能早早赶到2011中国移动开发者大会现场 一下公交车就快速走向国家会议中心 本以为我是早到的 xff0c 结果大门口就围了一堆一堆照相的人 进入会
  • mac下终端无法使用数字小键盘的解决方案

    终端下 偏好设置 xff0d 高级 xff0d xff08 去掉 xff09 允许VT100应用程序小键盘模式
  • JAVA中final的用法详解

    1 修饰基本变量的时候 xff0c 必须要有初始值 2 修饰数组等的时候 xff0c 地址不能修改 xff0c 但是对象本身的属性可以修改 span class token keyword final span span class tok
  • Mac Eclipse Failed to load JavaHL Library.

    转自 xff1a http blog csdn net wy10207010219 article details 42294293 写这一篇前我想发表一下感慨 xff1a 你所害怕的事 xff0c 你想要逃避的事 xff0c 在将来的某个
  • Jetson TX2更换软件源

    本文转自 xff1a https blog csdn net qlulibin article details 80271096 TX2的软件源为国外服务器 xff0c 网速会很慢 xff0c 需要换国内的ARM源 备份 etc lib路径
  • 工作一年回忆录

    7月8号跟公司签订劳动合同开始至今已有一周年了 xff0c 是时候坐下想想自己活了些什么东东 这里叙述的都是工作技术记录过程 1 工作环境搭建配置的学习 使用的工具 xff1a sts maven svn tomcat mysql 技术 x
  • 镜头畸变现象及其校正方法

    摄像机校准一般采用小孔成像模型 xff0c 理想的小孔模型是线性模型 xff0c 但是由于存在镜头畸变等原因 xff0c 线性模型通常要加上一些内部参数 xff0c 变成非线性模型 现对产生这一现象的原理以及解决方法进行整理 xff0c 如
  • 【FreeRTOS学习计划】第三节 数据结构—列表与列表项

    本节的目标 我们想从0到1开始实现FreeRTOS xff0c 就需要弄懂列表和列表项的操作 xff0c 因为在FreeRTOS中存在着大量的基础数据结构列表和列表项的操作 FreeRTOS源码里注释的list和list item翻译过来就
  • 【FreeRTOS学习计划】第四节 任务的定义与任务切换的实现

    本节目标 本节属于基础中的基础 xff0c 必须要学会创建任务 xff0c 并重点掌握任务是如何切换的 因为在FreeRTOS任务的切换是由汇编代码来完成的 xff0c 所以代码看起来比较难懂 xff0c 我们耐心细看 本小节我们会创建两个
  • 【FreeRTOS学习计划】 第六节 空闲任务与阻塞延时的实现

    本节目标 我们在第四节任务的定义与任务切换的实现中 xff0c 任务体内的延时用的是软件延时 xff0c 即还是让 CPU 空等来达到延时的效果 使用 RTOS 的很大优势就是榨干 CPU 的性能 xff0c 永远不能让它闲着 xff0c
  • ROS学习笔记(一)ROS安装和helloworld

    ROS学习笔记 xff08 一 xff09 ROS安装和helloworld 文章目录 一 ros安装及测试1 打开ubuntu软件和更新 xff0c 进行如下设置2 设置安装源3 设置安装密钥4 更新软件源5 安装ros6 添加命令7 初
  • 网络管理协议 SNMP V3安装配置

    简单网络管理协议 xff08 SNMP xff09 是常见的一种监控手段 xff0c 目前snmp定义了三个版本的网络管理协议 xff1a SNMP v1 xff0c SNMP v2c xff0c SNMP v3 SNMP v1 xff0c
  • 【计算机游戏开发】游戏交互界面设计

    github项目地址 一 实验目的与要求 熟悉交互界面设计原理 了解Cocos2d x中的用户交互 触摸事件 碰撞检测机制 二 实验内容与方法 完成游戏编译 50分 仿照实验一 英雄快跑 实验 xff0c 将教材源码和素材文件复制到自己的项
  • 电子爱好者常备的工具和材料有哪些?

    万用表 xff1a 也叫多用表 一般可用于电压 电流 电阻的测量 有的还具 有电容 电感 频率测量等功能 电烙铁 xff1a 这个不用多说 xff0c 主要是用来焊接元器件 xff0c 有时也拿来烫烫硅胶 或者塑料什么的 根据加热元件的位置
  • 腾讯笔试

    1 字典序最小 牛牛有个无环的单链表 xff0c 牛可以不停的旋转这个链表 xff0c 比如链表 1 gt 2 gt 3 gt 4 经过旋转后可以变成以下4种链表 4 gt 1 gt 2 gt 3 3 gt 4 gt 1 gt 2 2 gt
  • STM32学习心得(第一天)

    作为一名刚接触STM32的初学者 xff0c 今天通过观看网站上的视频 xff0c 对STM32有了最基础的了解 xff0c 并学到了一些STM32的学习方法 xff0c 自我感觉收获不错 一 学习方法 1 两个学习网址 xff1a 开源电
  • 组原7_程序查询和程序中断方式

    目录 1 I O 方式简介 2 程序查询方式 3 程序中断方式 1 I O 方式简介 2 程序查询方式 程序查询方式流程图 程序查询方式接口结构 一次只能传送一个字的原因在于 xff1a 这种方式下 xff0c 外设传过来的数据是放在寄存器