首页 > 其他分享 >中断interrupt

中断interrupt

时间:2024-08-31 21:51:01浏览次数:7  
标签:服务程序 中断 中断请求 指令 寄存器 interrupt CPU

目录

一、中断的基本概念 

二、中断的分类

1.内中断(也称异常例外、陷入)

(1)自愿中断(指令中断)

(2)强迫中断

①硬件故障

②软件中断

2.外中断

(1)外设请求

(2)人工干预 

非屏蔽中断:

可屏蔽中断:

三、中断请求标记

四、中断判优 

五、中断处理过程 (单中断)

1.中断隐指令

①关中断

②保存断点

③引出中断服务程序

软件查询法

硬件向量法

2.中断服务程序

①保护现场

②中断服务(设备服务)

③ 恢复现场

④中断返回


 

一、中断的基本概念 

        程序中断是指在计算机执行现行程序的过程中,出现某些急需处理的异常情况或特殊请求,CPU暂时中止现行程序,而转去对这些异常情况或特殊请求进行处理,在处理完毕后CPU又自动返回到现行程序的断点处,继续执行原程序。

二、中断的分类

1.内中断(也称异常例外、陷入)

信号的来源:CPU内部

与当前执行的指令有关 

(1)自愿中断(指令中断)

 系统调用时使用的访管指令(又叫陷入指令、trap指令)

(2)强迫中断

①硬件故障

 如:缺页

②软件中断

 如:整数除0

2.外中断

(1)外设请求

 如:I/0操作完成发出的中断信号

(2)人工干预 

 如:用户强行终止一个进程

非屏蔽中断:

        关中断时也会被响应(如:掉电)

可屏蔽中断:

        关中断时不会被响应 

三、中断请求标记

如何判断是哪个设备发来的中断信号? 

        每个中断源向CPU发出中断请求的时间是随机的。为了记录中断事件并区分不同的中断源,中断系统需对每个中断源设置中断请求标记触发器INTR,当其状态为“1”时,表示中断源有请求。

这些触发器可组成中断请求标记寄存器,该寄存器可集中在CPU中,也可分散在各个中断源中。

对于外中断,CPU是在统一的时刻即每条指令执行阶段结束前向接口发出中断查询信号,以获取I/0的中断请求,也就是说,CPU响应中断的时间是在每条指令执行阶段的结束时刻。 

CPU响应中断必须满足以下3个条件:
①中断源有中断请求
②CPU允许中断即开中断
③一条指令执行完毕,且没有更紧迫的任务。 

四、中断判优 

有多个中断信号同时到来,先处理哪个?

中断判优既可以用硬件实现(快速),也可用软件实现(慢速):

        硬件实现是通过硬件排队器实现的,它既可以设置在CPU中,也可以分散在各个中断源中

 

        软件实现是通过查询程序实现的。 

 

中断判优-优先级设置

1.硬件故障中断属于最高级,其次是软件中断:
2.非屏蔽中断优于可屏蔽中断;
3.DMA请求优于I/0设备传送的中断请求
4.高速设备优于低速设备:
5.输入设备优于输出设备;
6.实时设备优于普通设备。 

五、中断处理过程 (单中断)

 

1.中断隐指令

 中断隐指令:保存原程序的PC值并让PC指向中断服务程序的第一条指令。

中断隐指令的主要任务:


①关中断

在中断服务程序中,为了保护中断现场(即CPU主要寄存器中的内容)期间不被新的中断所打断,必须关中断,从而保证被中断的程序在中断服务程序执行完毕之后能接着正确地执行下去。

IF表示
1开中断(允许中断)
0关中断(不允许中断,非屏蔽中断除外)

②保存断点

为了保证在中断服务程序执行完毕后能正确地返回到原来的程序,必须将原来程序的断点(即程序计数器(PC)的内容)保存起来。可以存入堆栈,也可以存入指定单元。

③引出中断服务程序

引出中断服务程序的实质就是取出中断服务程序的入口地址并传送给程序计数器(PC)


软件查询法

硬件向量法

 
使用指针的指针是为了方便中断程序的拓展


只要修改JMP指令就好


不用连着中断程序一块修改
 

2.中断服务程序

中断服务程序的主要任务:

①保护现场


保存通用寄存器和状态寄存器的内容(eg:保存ACC寄存器的值),以便返回原程序后可以恢复CPU环境。可使用堆栈,也可以使用特定存储单元。


②中断服务(设备服务)

主体部分,如通过程序控制需打印的字符代码送入打印机的缓冲存储器中(eg:中断服务的过程中有可能修改ACC寄存器的值)

③ 恢复现场


通过出栈指令或取数指令把之前保存的信息送回寄存器中(eg:把原程序算到一般的ACC值恢复原样)


④中断返回


通过中断返回指令回到原程序断点处。

标签:服务程序,中断,中断请求,指令,寄存器,interrupt,CPU
From: https://blog.csdn.net/weixin_65866298/article/details/141758921

相关文章

  • 关于正点原子input子系统,驱动中按键中断只检测了上升或下降沿却可以实现连按(EV_REP)的
    问题在学习到Linux内核input子系统时,产生了一个疑惑。可以看到,我们改造按键中断驱动程序(请见keyinputdriver.c(内核驱动代码)),通过检测按键的上升沿和下降沿,在中断处理函数(上半部内)通过mod_timer(&dev->timer,jiffies+msecs_to_jiffies(20))函数启动定时器。在定时器处理函数中上......
  • 一个操作系统的设计与实现——第21章 高级可编程中断控制器
    21.1什么是高级可编程中断控制器我们已经使用过型号为8259A的可编程中断控制器(ProgrammableInterruptController,PIC)。在单CPU计算机中,中断的处理相对简单:所有的外设和CPU都连接在PIC上即可。然而,如果计算机中不止一个CPU,情况就会变得复杂起来。以双CPU为例:键盘中断会被每个C......
  • Linux内核中断
    头文件在vscode中,进行tasklet和work中断实验的时候,对于包含的头文件如下两个一直爆红:#include<linux/irq.h>#include<linux/of_irq.h>一路追查下来,发现是缺少头文件:#include<linux/irq.h> ->#include<asm/irq.h> ->#include<mach/irqs.h>(该头文件无法找到)......
  • stm32 EXTI外部中断(标准库)(旋转编码器计次&对射式红外传感器计次)
    1.理论中断系统1.中断中断:在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行2.中断优先级中断优先级:当有多个中断源同时申请中断时,CPU会根据中断源的轻重缓急进行裁决,优先响应......
  • 禁用时钟中断并不直接保证中断处理函数能够不受时钟干扰即时执行
    实际上,关闭系统定时器(或更准确地说是禁用时钟中断)并不直接保证中断处理函数能够“不受时钟干扰即时执行”。相反,这种做法可能会带来一系列问题,包括影响系统的任务调度、时间管理、以及可能破坏其他依赖于时钟中断的功能。在Linux系统中,时钟中断(也称为节拍器中断或tick中断)扮演着......
  • 信息学奥赛初赛天天练-78-NOIP2015普及组-基础题3-中断、计算机病毒、文件传输协议FTP
    NOIP2015普及组基础题38所谓的“中断”是指()A操作系统随意停止一个程序的运行B当出现需要时,CPU暂时停止当前程序的执行转而执行处理新情况的过程C因停机而停止一个程序的运行D电脑死机9计算机病毒是()A通过计算机传播的危害人体健康的一种......
  • 中断下半部与调度管理器
    中断的下半部在Linux系统中的执行确实受到调度管理器(或称为内核调度器)的间接管理,但并非直接由调度管理器像管理普通进程那样进行调度。这是因为中断处理(包括上半部和下半部)有其特殊的执行环境和上下文。###中断下半部的执行机制1.**异步执行**:中断下半部的执行是异步的,即它不......
  • 中断下半部的执行时机
    在Linux系统中,中断处理被分为上半部(TopHalf)和下半部(BottomHalf)两部分,这种设计旨在提高中断处理的效率和响应速度。关于中断下半部的执行时机,并不是在该中断上半部完成后立即执行的,而是由系统根据一定的策略和时机来安排。###中断下半部的执行时机1.**异步执行**:中断下半部的......
  • 3.3.1 Linux中断的使能与屏蔽
    点击查看系列文章 =》 InterruptPipeline系列文章大纲-CSDN博客3.3.1Linux中断的使能与屏蔽3.3.1.1 中断使能与屏蔽的三重关卡        本章的主题是hard_local_irq_disable(),它是对中断的关闭操作。为了彻底搞清楚中断关闭的机制,这里先对Linux使能与屏蔽中断的......
  • 关于linux 中断的嵌套
    在Linux系统中,关于中断嵌套的问题,我们可以从以下几个方面进行说明:###一、Linux中断处理的基本机制Linux系统中的中断是一种异步事件处理机制,用于处理硬件设备或其他系统事件引起的中断请求。中断处理程序(InterruptServiceRoutine,ISR)是操作系统内核中用于响应和处理这些中断......