精华内容
下载资源
问答
  • 简述CPU中断响应过程的九大步骤
    千次阅读
    2020-12-19 13:28:27

    本文就CPU中断响应过程的九个步骤进行简单讲述,希望大家都能通过本文大致了解中断响应过程。

    CPU响应中断,就是CPU要去执行相应的中断服务程序,其响应过程是CPU将现在执行程序的指令地址压入堆栈,跳转到中断服务程序入口地址,中断服务程序的入口地址就是中断向量,这个中断向量用2个16位寄存器存放。入口地址是22位的,地址的低16位保存在该向量的低16位,地址的高16位则保存在它的高6位,更高的10位保留。

    步骤一:任何一个PIE中断组的外设或外部中断产生中断。如果外设模块内的中断被使能,中断请求将被送到PIE模块。

    步骤二:PIE模块将识别出别的PIE中断组x内的y中断(INTx.y)申请,然后相应的PIE中断标志位被锁存:PIEIFRx.y=1。

    步骤三:PIE的中断如要送到CPU需满足下面两个条件:

    1.相应的使能位必须被设置(PIEIERx.y=1)。

    2.相应的PIEACKx位必须被清除。

    步骤四:如果满足步骤三中的两个条件,中断请求将被送到CPU并且相应的响应寄存器位被置1(PIEACKx=1)。PIEACKx位将保持不变,除非为了使本组中的其他中断向CPU发出申请而清除该位。

    步骤五:CPU中断标志位被置位(CPUIFRx=1),表明产生一个CPU级的挂起中断。

    步骤六:如果CPU中断被使能(CPUIERx=1,或DBGIERx=1),并且全局中断使能(INTM=0),CPU将处理中断INTx。

    步骤七:CPU识别到中断并且自动保存相关的中断信息,清除使能寄存器(IER)位,设置INTM,清除EALLOW。CPU完成这些任务准备执行中断服务程序。

    步骤八:CPU从PIE中获取响应的中断向量。

    步骤九:对于复用中断,PIE模块用PIEIERx和PIEIFRx寄存器中的值确定响应中断的向量地址。有以下两种情况:

    1.在步骤四中若有更高优先级的中断产生,并使能了PIEIERx寄存器,且PIEIFRx的相应位处于挂起状态,则首先响应优先级更高的中断。

    2.如果在本组内没有挂起的中断被使能,PIE将响应组内优先级最高的中断,调转地址使用INTx.1。这种操作相当于处理器的TRAP或INT指令。

    CPU进入中断服务程序后,将清除PIEIFRx.y位。需要说明的是,PIEIERx寄存器用来确定中断向量,在清除PIEIERx寄存器时必须注意。

    以上就是CPU中断响应过程,讲解的每一个步骤都是干货,大家都弄清楚了吗?觉得有用的小伙伴可以分享出去,给更多需要的人看到。

    更多相关内容
  • ARM中断处理过程

    2021-02-24 16:55:21
    具体整个处理过程分成三个步骤来描述:1、第二章描述了中断处理的准备过程2、第三章描述了当发生中的时候,ARM硬件的行为3、第章描述了ARM的中断进入过程4、第五章描述了ARM的中断退出过程本文涉及的代码来自3.14...
  • 黑马程序员视频库播妞微信号:heiniu526传智播客旗下互联网资讯、学习资源免费分享平台hello,大家好!播妞又来给大家分享干货了!今天就CPU中断响应过程的九个步骤进行简单讲述,希...

    黑马程序员视频库

    播妞微信号:heiniu526

    传智播客旗下互联网资讯、学习资源免费分享平台

    hello,大家好!播妞又来给大家分享干货了!今天就CPU中断响应过程的九个步骤进行简单讲述,希望大家都能通过本文大致了解中断响应过程。

    CPU响应中断:就是CPU要去执行相应的中断服务程序,其响应过程是CPU将现在执行程序的指令地址压入堆栈,跳转到中断服务程序入口地址,中断服务程序的入口地址就是中断向量,这个中断向量用2个16位寄存器存放。

    入口地址是22位的,地址的低16位保存在该向量的低16位,地址的高16位则保存在它的高6位,更高的10位保留。

    步骤一:任何一个PIE中断组的外设或外部中断产生中断。如果外设模块内的中断被使能,中断请求将被送到PIE模块。

    步骤二:PIE模块将识别出别的PIE中断组x内的y中断(INTx.y)申请,然后相应的PIE中断标志位被锁存:PIEIFRx.y=1。

    步骤三:PIE的中断如要送到CPU需满足下面两个条件:

    1.相应的使能位必须被设置(PIEIERx.y=1)。

    2.相应的PIEACKx位必须被清除。

    步骤四:如果满足步骤三中的两个条件,中断请求将被送到CPU并且相应的响应寄存器位被置1(PIEACKx=1)。PIEACKx位将保持不变,除非为了使本组中的其他中断向CPU发出申请而清除该位。

    步骤五:CPU中断标志位被置位(CPUIFRx=1),表明产生一个CPU级的挂起中断。

    步骤六:如果CPU中断被使能(CPUIERx=1,或DBGIERx=1),并且全局中断使能(INTM=0),CPU将处理中断INTx。

    步骤七:CPU识别到中断并且自动保存相关的中断信息,清除使能寄存器(IER)位,设置INTM,清除EALLOW。CPU完成这些任务准备执行中断服务程序。

    步骤八:CPU从PIE中获取响应的中断向量。

    步骤九:对于复用中断,PIE模块用PIEIERx和PIEIFRx寄存器中的值确定响应中断的向量地址。有以下两种情况:

    1.在步骤四中若有更高优先级的中断产生,并使能了PIEIERx寄存器,且PIEIFRx的相应位处于挂起状态,则首先响应优先级更高的中断。

    2.如果在本组内没有挂起的中断被使能,PIE将响应组内优先级最高的中断,调转地址使用INTx.1。这种操作相当于处理器的TRAP或INT指令。

    CPU进入中断服务程序后,将清除PIEIFRx.y位。需要说明的是,PIEIERx寄存器用来确定中断向量,在清除PIEIERx寄存器时必须注意。

    以上就是CPU中断响应过程,讲解的每一个步骤都是干货,大家都弄清楚了吗?

    觉得有用的小伙伴可以分享出去,给更多需要的人看到哦~ 

    END

    黑马程序员13个热门学科

    火热开班中

    598元 基础班课程

    免费领学费抵扣券

    现只需28元立刻学习

    立即扫码咨询

    展开全文
  • 中断响应过程

    千次阅读 2021-03-11 09:21:49
    32位微处理器的结构与工作模式 32位微处理器结构简介 32位微处理器的工作模式 寄存器 用户级寄存器 系统级寄存器 程序调试寄存器 保护模式下的内存管理 段内存管理技术 ...任务调用、链接和切换过程 ...

    在这里插入图片描述

    在这里插入图片描述

    1. 中断请求

    CPU每条指令执行完之前,按中断优先级的顺序分别检查是否有软中断,NMI和单步中断,如果没有就继续执行下条指令,如果有则进入中断响应周期。

    2. 中断响应

    根据不同的中断源形成不同的中断类型码,再根据中断类型码在中断向量中寻找中断服务程序的入口地址,转入相应的中断处理程序。

    (1)硬件自动完成

    • 标志寄存器FLAGS的内容入栈;
      ① 保护单步标志TF;
      ② 清IF标志,在中断处理过程中禁止其他中断进入(关中断);
      ③ 清TF标志,使CPU不会以单步形式执行中断处理程序;
    • 保护断点,CS:IP入栈

    总共有6个字节进栈。

    (2)进入中断服务
    如果在处理过程中又有NMI进入,NMI中断处理后会清楚CPU中锁存的NMI请求信号,使之加在CPU上的NMI只会被CPU识别一次;
    执行用户编写的的中断服务程序,保护现场、中断处理和恢复现场程序。

    3. 中断服务

    CPU根据查询到的CS:IP执行中断服务程序。

    4. 中断返回

    CS:IP出栈,恢复断点,并恢复标志寄存器FLAGS的内容,返回主程序,继续执行下一条指令。

    展开全文
  • 【1】中断系统 1)作用:用中断系统实现了外设数据的输入输出; 还可以用于程序调试,计算机系统的异常事件,都可以用中断系统来处理; 2)中断因素 人为设置的中断; 程序性事故,如java异常; 硬件故障,如...

    【README】

    本文转自bilibili《计算机组成原理(哈工大刘宏伟)》的视频讲解,非常棒,墙裂推荐;


    【1】中断介绍

    1)作用:用中断系统实现了外设数据的输入输出; 还可以用于程序调试,计算机系统的异常事件,都可以用中断系统来处理;

    2)中断因素

    1. 人为设置的中断;
    2. 程序性事故,如java异常;
    3. 硬件故障,如硬盘坏道;
    4. Io设备,如数据输入输出;
    5. 外部事件,如键盘中断按钮,调试程序;

    【2】 cpu中断问题

    【2.1】问题1:各中断源如何向cpu提出请求?

    给每一个中断源设置一个触发器,用触发器来标记这个中断源是否提出了中断请求;
    一个中断源对应一个中断请求触发器INTR,多个触发器组成了中断请求标记寄存器 INTR

    中断请求标记寄存器 INTR 如下:


    【2.2】 问题2:各中断源同时提出请求,怎么办?

    对中断源进行分级;响应优先级最高的中断源(对中断源的级别进行排队);

    中断优先级分为:响应优先级和处理优先级;

    响应优先级,由硬件决定(中断源)决定,无法修改;

    处理优先级可以修改,通过设置中断屏蔽字到中断屏蔽寄存器来屏蔽其他中断


     【2.3】问题3:Cpu在什么条件,什么时间,以什么方式响应中断?

    【2.3.1】cpu在什么条件下响应中断请求 ?

    • 为了表示cpu是否响应中断请求,有一个允许中断触发器EINT,值=1表示允许cpu 响应中断源发出的中断请求;

    【2.3.2】 cpu在什么时间响应中断请求 ?

    • 通常情况下,cpu只有在指令的执行阶段结束以后,才能够响应中断请求;但cpu的某些指令的执行阶段比较长,这种情况就允许cpu在指令执行过程中,响应中断请求;

    【2.3.3】 cpu响应中断过程:

    • 在指令执行以后,cpu发送查询信号到中断源的中断请求触发器;查询信号把中断请求触发器的输出端设置为1,把中断请求信号发送到排队电路;

    补充:中断隐指令作为响应中断的一部分,有3个操作(保护程序断点,寻找入口地址,硬件关中断):如下:

    中断响应步骤如下:

    步骤

    描述

    1

    Cpu完成指令执行阶段后,通过硬件向量法查找中断源;各个中断源的信号送入排队器;

    2

    排队器把中断源信号(只有一根线为1)送给中断标记触发器,从而把INT设置为1,而EINT设置为0;

    3

    此外,排队器还要把中断信号送给向量地址形成部件,这个向量地址送给PC,为执行中断服务程序做准备;(向量地址保存了中断服务程序的入口地址)

     【小结】中断响应过程中要解决的3个问题

    问题1)保护程序断点 断点就是中断服务程序执行完成后,返回执行的指令;

           方法1 断点存到特定地址(0号地址)内;

            方法2 断点进栈;

    问题2)寻找中断服务程序入口地址;

            方法1 采用硬件向量法:把中断向量地址发送到PC寄存器;PC中保存了向量地址,这个向量地址保存了中断服务程序的入口地址,或跳转指令,该指令会跳转到中断服务程序;

            方法2 软件查询法:中断识别程序的入口地址发送到PC寄存器;计算机执行中断识别程序来查找中断服务程序的入口地址;

    问题3)硬件关中断(把中断允许触发器的值设置为0

    关中断的目的: 避免在单重中断的机器中,在执行中断服务程序的过程中,有新的中断源会打断当前的中断服务程序的执行;

    另外,即使在多重中断的cpu中,采用关中断的方式,也是为了保存程序断点,保存程序现场的一个过程;


    【2.4】问题4:如何保护现场 ?

    【2.5】问题5:如何恢复现场?

    1 保护现场
    1.1    保存断点:由中断隐指令(硬件)来做,包括3个步骤(保存断点,形成中断服务程序的入口地址,硬件关中断) ;
    1.2    保存寄存器内容(由中断服务程序来做,软件):cpu当中的一些寄存器在执行中断服务程序的时候需要用到;这些寄存器的内容也要进行保存 ;因为这些内容将来中断返回的时候,主程序还要用到;

    2 恢复现场
    2.1 由中断服务程序完成;
    因为中断服务程序在保存现场的时候,可以吧寄存器内容压入到堆栈中;
    在中断服务程序恢复现场时,可以出栈;

    3 中断服务程序的工作内容包括:
    1)    保护现场;push指令;
    2)    其他服务程序(中断服务程序剩余部分);
    3)    恢复现场;pop指令;
    4)    中断返回;IRET指令;

    【补充*】上述保护现场入栈,恢复现场出栈,也是线程切换的流程,即线程上线文切换的原理,可以看到,频繁切换就是入栈和出栈过程,即寄存器数据送入内存栈,和内存栈数据送入寄存器的过程;频繁切换的话,可以看到成本非常高,这个切换过程并没有做实际的业务逻辑


    【2.6】问题6:如何寻找中断服务程序的入口地址?

    通过硬件向量法,或程序查询法寻找;

    【2.6.1】硬件向量法

    排队器输出:只有1根线是高电平1,其他全部为低电平0;
    向量地址形成部件:根据排队器输出,确定需要响应的中断源,从而确定执行哪一个中断服务程序(通过中断向量地址确定);

    用硬件查找中断服务程序入口地址有两种方法:
    方法1: 在中断向量地址的存储单元中存放一条跳转指令 如 jmp 200,则200就是中断服务程序的入口地址;
    方法2: 在中断向量地址的存储单元中存放的就是中断服务程序的入口地址,如中断向量地址12H,其保存的入口地址200;

    【2.6.2】程序查询法

    中断识别程序查询步骤

    步骤

    指令

    说明

    1

    SKP DZ 1#

    SKP表示跳过下一条指令;

    指令功能:查询第1号中断源的完成触发器D;看触发器是等于0还是等于1;

      1. 若等于1,说明中断源已经准备好了,提出了中断请求,cpu就要去执行响应的中断服务程序(步骤2);
      2. 若等于0,说明1号中断源没有准备好,则跳过指令2,进入2号中断源的查询(步骤3)

    2

    JMP 1#SR

    执行中断服务程序

    3

    SKP DZ 2

    ……

    4

    JMP 2SR

    ……


    【2.7】问题7:处理中断的过程中又出现新的中断 怎么办?

     处理过程如下:

    • 处理中断1时,发生了中断2,且中断2优先级大于中断1,则停止中断1的服务程序,转而执行中断2的服务程序;
    • 处理中断2时,发生了中断3,且中断3优先级大于中断2,则停止中断2的服务程序,转而执行中断3的服务程序;

    上图中: 产生了3次中断,和3个断点,分别是 k+1, l+1, m+1 ;

    【例】利用中断屏蔽字修改中断处理优先级(响应多个中断),参见

    https://blog.csdn.net/PacosonSWJTU/article/details/123595867


     【3】cpu中断全过程小结

    cpu全过程有5个步骤:

    1. 中断请求;
    2. 中断判优;
    3. 中断响应;
    4. 中断处理;
    5. 中断返回;

    展开全文
  • 中断处理的基本过程

    万次阅读 多人点赞 2020-03-24 15:07:49
    中断处理的基本过程包括中断请求、中断判优、中断响应、中断服务 和中断返回等五阶段。 1.中断请求阶段 1)发生在CPU内部的中断(内部中断),不需要中断请求,CPU内部的中断控制逻辑直接接收处理。 2)外部中断...
  • 中断处理步骤 (1)中断请求:中断源向CPU发出中断请求 (2)中断响应 (3)保护断点和现场:以便在中断服务程序执行后正确的返回主程序。 (4)中断处理 (5)中断返回 8086中断处理步骤 (1)内部中断以及NMI中断...
  • 中断很重要的一概念,在计算机组成原理中曾经讲过这一概念,对于嵌入式方向来说,也是一非常重要的一知识点,经常出现在笔试中。 中断 所谓中断就是:CPU在正常执行程序的过程中,由于内部/外部事件的触发...
  • 完整的中断处理过程分为 1)中断响应的事前准备: 系统要想能够应对各种不同的中断信号,总的来看就是需要知道每种信号应该由哪个中断服务程序负责以及这些中断服务程序具体是如何工作的。系统只有事前对这两件事都...
  • 中断过程包括: ①中断源发出中断请求; ②判断当前处理机是否允许中断和该中断源是否被屏蔽; ③优先权排队; ④处理机执行完当前...上述过程中前项操作是由硬件完成的,后两项是由软件完成的。 中断过程分简单...
  • 在处理器中,中断是一个过程。即CPU在正常执行程序的过程中,遇到外部或内部的紧急事件需要处理,暂时中断(中止)当前程序的执行,而转去完成事件服务程序,待事件完毕后,再返回到暂停处(断点)继续执行原来的程序。...
  • 8086学习(中断

    千次阅读 2020-05-19 15:59:59
    答:四个不匹配:速平格时,就这样记了,没法记的。针对这几个不匹配,用不同的方法,例如设置缓冲以匹配速度,设置电平转换电路,设置格式转换电路,设置时序控制电路等 缓冲器与锁存器各用在什么地方? 很显然了...
  • 中断

    千次阅读 2016-08-21 00:18:20
    由于内部/外部事件或由程序预先安排的事件,引起CPU暂时停止正在运行的程序,转到为该内部/外部事件或预先安排的事件服务的程序中去,服务完毕,再返回去继续运行被暂时中断的程序,这个过程称为中断。 2. 可屏蔽...
  • 第7章 输入输出系统一、名词解释:历年真题:(2001年)9.DMA 方式:...中断屏蔽:CPU处理一个中断过程中,对其他一些外部设备的中断进行阻止。(2004年)17.统一编址:将输入输出设备中控制寄存器、数据寄存器、状态...
  • 一、IO口外部中断原理概述 IO口外部中断: (1) STM32的每IO都可以作为外部中断输入。 (2) 每外部中断线可以...SYSCFG_EXTICR1 寄存器中有EXTI0~EXTI4,EXTI0[3:0] 有位,可以有16序号为0的IO引脚与EXTI0相
  • PIE/CPU中断响应过程

    万次阅读 热门讨论 2019-01-07 09:28:07
    A、开始; B、PIEIFRx.y = 1 ?是,转到C,否则等待; C、PIEIERx.y = 1 ?是,转到D,否则等待; ...D、PIEACKx = 0 ?...E、中断请求发送到CPU;...I、CPU响应,进入中断服务子程序前,DSP硬件自动将I...
  • 汇编语言上机的4个步骤

    千次阅读 2021-01-18 14:23:38
    汇编语言上机的4个步骤 1.点击命令提示符图标 进入DOS C:\Documents and Settings\Administrator>CD… (两个点)按Enter键 C:\Documents and Settings> CD…(两个点) 按Enter键 C:\ cd MASM按Enter键 C:\ ...
  • 定时器系统是单片机内部一独立硬件部分,与CPU和晶振之间通过内部某些控制线连接并相互作用,CPU一旦启动定时功能,定时器便会在晶振的作用下自动计时,当定时器计数器积满之后就会产生中断,通知CPU接下来做什么...
  • 由于双核各自拥有各自的flash和ram空间,其中LS是每CPU独自的空间,GS是共享内存空间,其默认是归CPU1所控制,因此CPU1和CPU2是相对独立的,可双核运行各自程序实现不同功能(外设还是共用)。 上面说完双核的基本...
  • STC89C52的中断

    千次阅读 2021-01-31 16:40:57
    中断分为四个步骤中断请求->中断响应->中断处理->中断返回 数据输入输出传送方式: 1.无条件传送 (led) 2.查询传送方式(温度传感器,ADC采样转换) 3.中断传送方式(IRQ) 4.直接储存器存取方式(DMA) ...
  • 中断服务程序执行顺序

    千次阅读 2021-01-05 19:54:45
    单级中断系统中,中断服务程序执行顺序: ①保护现场 ②中断事件处理 ③恢复现场 ④开中断中断返回
  • 单片机(AT89C51)中断系统详解和中断系统应用实验

    千次阅读 多人点赞 2020-04-07 20:06:02
    单片机中断系统 什么叫做单片机的中断? CPU暂时中止其正在执行的程序,转去执行请求中断的那个外设或事件的服务程序,等处理完毕后再返回执行原来中止的程序, 叫做中断。 为什么要设置中断? ⑴ 提高CPU...
  • 1. 关闭中断的两个步骤 (1) 关闭中断步骤 2. CPRS 寄存器中的中断控制位 (1) CPRS 寄存器位 3. (1) CPRS 寄存器位 一. 中断控制 ( 基于 S3C6410 开发板 ) 本节 基于 S3C 6410 开发板, 不同...
  • cpu提供中断机制来满足这种需要,当cpu的内部有需要处理的事情发生时,将产生中断信息,引发中断过程,这种中断信息来自cpu内部,还有一种中断信息,来自于cpu外部,当cpu外部有需要处理的事情发生的时候,比如说,...
  • 物联网之STM32开发中断系统)

    千次阅读 2018-08-01 23:14:15
    STM32-中断系统 内容概要: STM32中断系统概述 ... 处理器中的中断:在处理器中,中断是一个过程,即CPU在正常执行程序的过程中,遇到外部/内部的紧急事件需要处理,暂时中止当前程序的执行,转...
  • 轴飞行器的设计与开发过程

    千次阅读 多人点赞 2020-09-30 14:10:14
    有两对电机转向相反,可以平衡其对机身的反扭矩,当同时增加四个电机的输出功率,旋翼转速增加使得总的拉力增大,当总拉力足以克服整机的重量时,四旋翼飞行器便离地垂直上升; 反之,同时减小四个电机的输出功率,...
  • 个中断设有状态位,每个中断/事件都有独立的触发和屏蔽设置。 STM32F407的22外部中断为: EXTI线0~15:对应外部IO口的输入中断。 EXTI线16:连接到PVD输出。 EXTI线17:连接到RTC闹钟事件。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 93,072
精华内容 37,228
关键字:

中断过程的四个步骤

友情链接: 2.key_flash.zip