-
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中断响应过程,讲解的每一个步骤都是干货,大家都弄清楚了吗?觉得有用的小伙伴可以分享出去,给更多需要的人看到。
更多相关内容 -
cpu的中断响应时间
2016-05-05 10:47:58从发出中断请求到进入中断处理所用的时间 计算机中CPU的中断响应时间指的是()的时间。 A....B....CPU响应中断的时间是( )。 A.一条指令结束 B.外设提出中断 C.取指周期结束 D.程序执行结束
计算机中CPU的中断响应时间指的是()的时间。
A.从发出中斯请求到中断处理结束B.从中断处理开始到中断处理结束C. CPU分析判断中断请求D. 从发出中断请求到开始进入中断处理程序
解析:cpu的中断响应时间是指从发出中断请求到进入中断处理所用的时间
CPU响应中断的时间是( )。
A.一条指令结束
B.外设提出中断
C.取指周期结束
D.程序执行结束
解析:把一条指令执行完作为响应中断的条件
1.中断源如何向CPU表达中断请求
一般是设置中断请求触发器,在需要CPU服务时,将中断请求触发器置位,其1端或0端输出的跳变作为中断请求信号。显然中断源可以随时提出中断请求。
2.中断请求何种情况下才可能得到CPU响应
一个中断请求在同时具备下列两个条件时,才有可能得到CPU响应:
①该中断源未被屏蔽;
②该中断请求在当前所有中断请求中级别最高。
3.CPU何时响应中断
CPU在同时满足下列两个条件时,响应中断:
①IF=1(对非屏蔽中断,没有此项要求);
②现行指令执行完。
CPU在每一个指令周期的最后一个总线周期的最后一个时钟周期的开始采样中断请求输入线,若有中断请求,则下一步不进入取指令周期,而进入中断响应周期,如图5.1所示。对于8086系列CPU,中断响应周期为两个。
之所以把一条指令执行完作为响应中断的条件,是因为中断响应周期以及中断服务程序要占用CPU资源。如果在执行一条指令的中间响应中断,则指令的当前状态既不能保存也无法加以恢复。与此相对比,DMA操作是在DMA控制器的作用下进行的,不占用CPU资源,所以在一条指令执行中间、当前总线周期结束即可进入DMA周期。
中断响应可以分为以下几个步骤:
1、保护断点,即保存下一将要执行的指令的地址,就是把这个地址送入堆栈。2、寻找中断入口,根据5个不同的 中断源所产生的中断,查找5个不同的入口地址。以上工作是由计算机自动完成的,与编程者无关。在这5个入口地址处存放有 中断处理程序(这是程序编写时放在那儿的,如果没把中断程序放在那儿,就错了,中断程序就不能被执行到)。3、执行 中断处理程序。4、中断返回:执行完 中断指令后,就从中断处返回到主程序,继续执行。
正确答案:A
-
PIE/CPU中断响应过程
2021-01-06 13:17:28I、CPU响应,进入中断服务子程序前,DSP硬件自动将IFRx清0,然后将CPU内一些关键寄存器如:ST0、ST1及IER等的内容压到堆栈保存起来,随后硬件自动将IERx清0,INTM置1,以避免中断嵌套,在中断服务子程序执行完返回后... -
cpu是如何响应中断
2020-07-20 20:44:17cpu是如何响应中断 话不多说,先来看看本篇文章的思维导图。 1.NVIC的理解 在讲解cpu是如何响应中断之前,我们先来讲解以下NVIC,可能不是讲的很全,只是挑一些比较深的东西。 先来看看NVIC的结构。 这是NVIC的...cpu是如何响应中断
话不多说,先来看看本篇文章的思维导图。
1.NVIC的理解
在讲解cpu是如何响应中断之前,我们先来讲解以下NVIC,可能不是讲的很全,只是挑一些比较深的东西。
先来看看NVIC的结构。
这是NVIC的控制器,其实NVIC在内存中就是一个接口芯片,通过译码电路连接到总线上,可以把NVIC想象成一个内存块。
这些寄存器就是控制NVIC的主要的寄存器,我们对NVIC的配置大部分都是通过对上面的寄存器进行配置以实现我们想要的功能。每个寄存器的功能可以去CORTEX-M4手册上去看看。
2.配置NVIC
我们一般的工程中,配置NVIC主要用到的寄存器也就三个。
AIRCR,ISER,IP
1.配置AIRCR 2.配置ISER,3.配置IP.
上面两个函数的作用就是配置那三个寄存器。但凡是要用到中断的项目都要加上这两个函数。对NVIC的配置主要就是先配置优先级分组,但是,在这里说一下,在一个工程项目中,组别是要确定的,不可以是不一样的,标准要统一,配置好分组后就得将相应的中断给使能了,如果你不使能,即使触发了中断,cpu也不会去响应(但是会被悬挂起来),cpu如何去响应,在后文中有讲解。之后,你还得配置优先级,这样,对NVIC的配置也就算完成了。
我觉得最重要的还是将相应中断使能才是配置NVIC最重要的步骤。3.cpu是如何响应中断
CPU响应中断的条件
1.中断源如何向CPU表达中断请求
一般是设置中断请求触发器,在需要CPU服务时,将中断请求触发器置位,其1端或0端输出的跳变作为中断请求信号。显然中断源可以随时提出中断请求。
2.中断请求何种情况下才可能得到CPU响应
一个中断请求在同时具备下列两个条件时,才有可能得到CPU响应:
①该中断源未被屏蔽;
②该中断请求在当前所有中断请求中级别最高。
3.CPU何时响应中断
CPU在同时满足下列两个条件时,响应中断:
①IF=1(对非屏蔽中断,没有此项要求);
②现行指令执行完。
CPU在每一个指令周期的最后一个总线周期的最后一个时钟周期的开始采样中断请求输入线,若有中断请求,则下一步不进入取指令周期,而进入中断响应周期。 之所以把一条指令执行完作为响应中断的条件,是因为中断响应周期以及中断服务程序要占用CPU资源。如果在执行一条指令的中间响应中断,则指令的当前状态既不能保存也无法加以恢复。
也就是说cpu每执行完一条指令后,它都会去采样中断请求输入线,如果有,则就会根据中断源的信息(中断源是什么)到中断向量表中去查询相应的中断函数的入口地址从而去执行中断服务函数。(不会轮询(个人理解))
因为我找不到NVIC的框图,所以我根据我自己的理解对这个中断请求输入线进行了画图描述。
由外设产生的中断信号,除了 SysTick 的之外,全都连接到 NVIC 的中断输入信号线
以上就是本篇博客的的理解,其中有一些内容是“抄袭”其他博主优秀的博文,我就投自制了。 -
CPU响应中断条件实用PPT课件.pptx
2021-10-06 22:48:18CPU响应中断条件实用PPT课件.pptx -
CPU响应中断条件实用PPT学习教案.pptx
2021-10-06 23:12:32CPU响应中断条件实用PPT学习教案.pptx -
单、双缓冲区和CPU中断频率、中断响应时间题
2020-11-16 17:36:371.单、双缓冲区和CPU中断频率、中断响应时间题 我们知道,减少对CPU的中断频率,放款CPU中断响应时间的限制是引入缓冲区的作用之一。 我们经常会遇到求引入缓冲区,求中断频率的问题。所以在此对的做法进行总结。 ...1.单、双缓冲区和中断频率、中断响应时间题
我们知道,减少对CPU的中断频率,放款CPU中断响应时间的限制是引入缓冲区的作用之一。
我们经常会遇到求引入缓冲区,求中断频率的问题。所以在此对的做法进行总结。
1.1. 例题
以下是a)、b)、c)分别是引入不同缓冲区求解CPU中断频率和中断的响应时间题。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ed0oOwjB-1608347471472)(D:\笔记图片集\1605511733115.png)]
解题过程:
要求中断频率——就要求每隔多少秒中断一次
所以解题顺序:每隔着多少秒中断一次——>求单位时间中断次数(即中断频率)
-
①每次隔几秒中断一次(缓冲区满所用的时间即中断一次所需的时间):
1bit ÷ 9.6k/s ≈ 100us
-
②单位时间中断次数(中断频率):
1s ÷ 100us = 9.6(k/s)
每秒中断9.6k次 (9.6x1024次)
b)和c)的中断频率解析,可以参照a)。
下面只说一下对于中断的响应时间求解:
-
(b)
的中断响应时间:CPU必须在下一数据写入对缓冲区之前,对当前缓冲区中数据进行响应处理,否则缓冲区中的数据将会被覆盖掉。
所以
(b)
中,要在下1bit数据输入缓冲区前,处理完数据、让出缓冲区。所以响应时间为100us以内(因为每1bit数据到达时间需要100us)。 -
©的中断响应时间:
因为
(c)
中为双缓冲区,所以只要在另一个缓冲区装满时,处理并让出当前缓冲区即可。所以中断响应时间为100*8 = 800us
由上可知,增加缓冲区的大小只能降低CPU的中断频率, 不能放宽CPU的中断响应时间。
1.2. 现实生活例子
为了便于理解,下面举个现实生活中的例子。
就拿学生上课迟到,老师处理学生来举例子。其中会有以下几个角色:
- 老师——对应着CPU
- 学生——对应着1bit数据
- 教室外的椅子——对应着缓冲区
情景①:
题目:老师正在讲课,并且在外面放置了一把椅子,供迟到的学生坐着等待,当椅子坐满学生后老师再叫进迟到的学生进行处理。老师很贴心必须让每一个迟到的人都能坐上椅子,并且每20s就会有一个迟到的学生到来。
题解:
-
中断频率:
60 ÷ 20 = 3 ( s ) 60÷20 =3(s) 60÷20=3(s)
老师1分钟要停下3次来处理学生,中断频率为3(次/分)。
-
中断响应时间:
为20。
因为老师必须在下一个学生到达之前,处理完该学生,让出椅子。所以老师的中断响应时间为20s以内。
情景②:
题目:接下来,老师把椅子增加到了8把。
题解:
-
中断频率
8 ∗ 20 = 160 ( s ) 8*20 = 160(s) 8∗20=160(s) ——160s坐满椅子
1分÷160秒 = 60 ÷160 = 0.375
所以老师每分钟中断0.375次。
-
中断响应时间:
然而下一学生还是20s到达,所以中断响应时间还是20s.
情景③:
题目:接下来,老师讲椅子数改为2排, 每排有8把椅子。每当坐满一排之后,老师再处理学生。
题解:
-
中断频率
8*20 = 160 (s) ——还是每160秒坐满椅子
1分÷160秒 = 60÷160 = 0.375
所以老师每分钟中断0.375次。
-
中断响应时间:
因为椅子变成两排,所以老师只需要在另一排做满之前处理完就可以。
20*8 = 160(s)
所以中断响应时间放宽到了160s。
我们再通过表格来表示以下例子中情景②和操作系统图片2的对应关系:
情景② 操作系统图片2中的 b) 每20s来1人 每100us来1bit 8个座位 缓冲区大小为8bit 椅子坐满人一处理 缓冲区放满一处理 老师处理学生的频率 中断频率 -
-
CPU响应中断的条件
2016-08-22 11:10:55CPU响应中断的条件 1.中断源如何向CPU表达中断请求 一般是设置中断请求触发器,在需要CPU服务时,将中断请求触发器置位,其1端或0端输出的跳变作为中断请求信号。显然中断源可以随时提出中断请求。 2.中断... -
8.4-中断系统小结(cpu中断七个问题)
2022-03-16 23:09:34【1】中断系统 1)作用:用中断系统实现了外设数据的输入输出; 还可以用于程序调试,计算机系统的异常事件,都可以用中断系统来处理; 2)中断因素 人为设置的中断; 程序性事故,如java异常; 硬件故障,如... -
干货|简述CPU中断响应过程的九大步骤
2020-10-29 09:00:00黑马程序员视频库播妞微信号:heiniu526传智播客旗下互联网资讯、学习资源免费分享平台hello,大家好!播妞又来给大家分享干货了!今天就CPU中断响应过程的九个步骤进行简单讲述,希... -
关于中断频率、中断响应时间怎么求
2021-05-23 19:47:15以下是(a)、(b)、(c)分别是引入不同缓冲区求解CPU中断频率和中断的响应时间问题。 中断响应频率求解 中断频率(每隔多少秒断一次)=1s/(中断一次所需的时间) 解题顺序: ①每次隔几秒中断一次(缓冲区满所用的... -
对于不可屏蔽中断NMI,CPU响应中断的条件有哪些
2016-10-13 10:07:38不可屏蔽中断源一旦提出请求,CPU必须无条件响应,而对可屏蔽中断源的请求,CPU可以响应,也可以不响应。CPU一般设置两根中断请求输入线:可屏蔽中断请求INTR(Interrupt Require)和不可屏蔽中断请求NMI(NonMaskable ... -
【计算机组成原理】CPU中断系统
2022-02-07 12:51:08一、中断系统概述 1、引起中断的各种因素 (1)人为设置的中断 这种中断一般称为自愿中断,因为它是程序中人为设置的,故一旦机器...I/O设备被启动以后,一旦准备就绪,便向CPU发出中断请求。 (5)外部事... -
带Cache和精确中断响应的CPU设计.pdf
2021-09-24 22:26:55带Cache和精确中断响应的CPU设计.pdf -
关于实时操作系统中最大中断关闭时间、中断响应时间、中断恢复时间、任务等待时间详解
2019-10-18 09:57:51最大关中断时间:指的是这么多个临界段代码的关中断时间中最大的那个,即这个时间就代表了最差最坏情况下中断的关闭时间了,因为实时操作系统中很多时间问题都是基于最差情况下考虑的。 中断响应... -
中断响应时间/中断步骤/中断源
2017-06-29 10:10:32中断的响应时间就是中断的响应过程的时间,中断的响应过程是当有事件产生,进入中断之前必须先记住当前正在做的事情,然后去处理发生的事情,处理这个过程的时间,叫做中断响应时间。 计算机中也是采用的这种方法... -
vivado2018.3 ZYNQ双核AMP CPU1中断不响应
2020-07-04 11:29:42函数绑定核中断,查看相关文档知道-DUSE_AMP=1的作用是: CPU0先启动运行初始化系统,然后启动CPU1,这时CPU0已经初始化共享资源并且可能正在使用某些资源。但是CPU0和CPU1的工程使用的Bsp的源码是一样的,增加“-... -
对于Java线程中断的理解,哪种情况下会响应中断?哪种情况下不响应中断?
2020-06-15 20:20:29最近在学习JUC框架的时候,发现了很多工具类都是支持可中断的,如AQS、FutureTask都是可以在线程执行中,支持对于中断的响应,所以需要对线程中断有个了解,才能更好的学习JUC的源码。 线程中断的作用: 线程中断... -
【单片机】4.4 响应中断请求的条件
2021-12-01 21:07:05中断响应的条件,中断响应的过程,中断响应被封锁的情况 -
CPU中断
2019-08-31 21:03:3632~47:分配给可屏蔽中断,由I/O设备引起的中断,这其中就包含可由两个8259A级联响应的15个; 48~255:用来标识软中断; CPU中断的机制概论 cpu的数学模型是图灵机,图灵机是一个线性运行指令的机器,它的... -
zynq AMP模式下CPU1如何响应外部中断
2019-12-27 14:55:01若我以同样的初始化方式在CPU1中进行串口初始化,此时,CPU1无法响应中断,在查阅了相关资料之后,发现若要使中断生效,则需要将指定的中断号map到对应的CPU,关键函数调用:XScuGic_InterruptMa... -
单片机定时器中断时间误差的分析及补偿
2020-08-28 20:02:26当CPU正在执行某指令或某中断服务程序时,它响应定时器溢出中断往往延迟一段时间。这种延时虽对单片机低频控制系统影响甚微,但对单片机高频控制系统的实时控制精度却有较大的影响,有时还可能造成控制事故。 -
linux中断与多核CPU的绑定(实现负载均衡)
2021-05-06 20:48:45硬件中断发生频繁,是件很消耗 CPU 资源的事情,在多核 CPU 条件下如果有办法把大量硬件中断分配给不同的 CPU (core) 处理显然能很好的平衡性能。 现在的服务器上动不动就是多 CPU 多核、多网卡、多硬盘,如果能让... -
8086cpu的中断
2018-08-03 16:04:191.1 是为了让cpu具备一种能力,让cpu在执行指令的时候,检测到cpu内部或者外部的一种特殊信号,并且对这种信号做出处理。 1.2 中断是怎么处理的? 中断有中断源,中断向量表,中断处理程序。 1.2.1中断... -
CPU中断的工作原理,从最底层讲起
2020-05-16 11:46:26前言 中断的概念属于硬件层。虽然我们在进行软件编程时不会直接使用中断,但理解它对我们来说依然重要。 我们在使用线程切换及状态管理、异常处理、硬件与处理器的... 像 I/O 处理的不断演进,从占用CPU等待到通 -
中断响应时间是指( )。
2016-07-13 21:39:45中断响应时间是指( )。 正确答案: C 你的答案: C (正确) 从中断处理开始到中断处理结束所用的时间 从发出中断请求到中断处理结束所用的时间 从发出中断请求到进进中断处理所用的时间 ... -
8088/8086 CPU是如何处理中断的?
2020-12-20 20:02:321.中断源 引起CPU中断的事件——中断源 除法溢出:类型号0,商大于目的操作数所能表达的范围时产生。 单步中断:类型号1,TF=1时产生(当前指令需执行完)。 断点中断:类型号3,这是一个软件中断,即...CPU中断响应 -
中断占据CPU时间的计算问题
2016-10-12 13:54:13在设备A工作期间,为保证呢个数据不丢失,每秒需要对其查询至少200次,则CPU用于设备A的I/O的时间占据整个CPU时间的百分比至少是:0.20%。 分析:如果真的查询到A有I/O请求了,那么CPU将完全用于A的I/O,因此,这里...