文档章节

中断简介

j
 jiangheng1
发布于 2017/04/17 09:32
字数 1202
阅读 16
收藏 1

1.中断简介

中断是计算机中的一个十分重要的概念,在现代计算机中毫无例外地都采用中断机制。在计算机执行程序的过程中,由于出现某个特殊情况(或称为"事件"),使得CPU中止现行程序,而转去执行处理该事件的处理程序(俗称中断处理或中断服务程序),待中断服务程序执行完毕,再返回断点继续执行原来的程序,这个过程称为中断。

2.中断信号线

在数字逻辑层面,外部设备和处理器之间有一条专门的中断信号线,用于连接外设与CPU的中断引脚。当外部设备发生状态改变时,可以通过中断信号线向处理器发出中断请求。

处理器一般只有两根中断线,一根是IRQ线(中断请求线),一根是FIQ线(快速中断请求线)。而管理的外设却有很多,为了解决这个问题,外设的中断信号线并不与处理器直接相连,而是与中断控制器相连接,后者才跟处理器的中断信号线连接。中断控制器一般通过处理器进行编程和配置。

3.中断的实现过程

中断不需要处理器轮询外设的状态,设备在自己发生状态改变时将主动发送一个信号给中断控制器,中断控制器会接收到通知信号(前提是中断控制器不主动屏蔽该信号),并经过中断优先级控制器的处理,最后由中断控制器向处理器发送中断信号,最后处理器接收到该信号(前提是处理器不主动屏蔽该信号)。大体流程如图3- 1所示。

图3- 1 中断实现流程

4.中断处理过程

当CPU收到中断或者异常时,它会暂停执行当前的程序或任务,通过一定的机制跳转到负责处理这个信号的相关处理程序中,在完成对这个信号的处理后再跳转回刚才被打断的程序或任务中继续执行,其具体的处理过程如下。

4.1  中断响应前的准备

系统要想能够应对各种不同的中断信号,总的来看就是需要知道每种信号应该由哪个中断服务程序负责以及这些中断服务程序具体是如何工作的。

一般系统将所有的中断信号统一进行了编号(一共256个:0~255),这个号称为中断向量,具体哪个中断向量表示哪种中断有的是规定好的,也有的是在给定范围内自行设定的。

中断向量和中断服务程序的对应关系主要是由中断向量表负责。操作系统在中断向量表中设置好各种中断向量对应的中断服务函数,留待CPU查询使用。

具体负责处理中断(异常)的代码是由软件,也就是操作系统实现的,这部分代码属于操作系统内核代码。也就是说从CPU检测中断信号到加载中断服务程序以及从中断服务程序中恢复执行被暂停的程序,这个流程基本上是硬件确定下来的,而具体的中断向量和服务程序的对应关系设置和中断服务程序的内容是由操作系统确定的。

4.2  CPU检查是否有中断/异常信号

CPU在执行完当前程序的每一条指令后,都会去确认在执行刚才的指令过程中中断控制器是否发送中断请求,如果有,那么CPU就会在相应的时钟脉冲到来时从总线上读取中断请求对应的中断向量。

4.3  中断处理

当异常中断产生时,系统执行完当前指令后,将跳转到异常向量表的相应地址去执行。该地址处是一句跳转指令,跳转到系统定义的总中断服务函数里面去执行,然后进行任务上下文的保存,读取中断控制器的状态位以得出中断向量号,根据中断向量表中的中断向量号找到对应的中断服务函数执行,执行结束后,恢复被中断任务的上下文,继续执行任务。中断处理流程如图4- 1所示。

图4- 1 中断处理流程

© 著作权归作者所有

j
粉丝 2
博文 11
码字总数 14671
作品 0
南京
私信 提问
【Linxu内核设计与实现】-第1章 Linux内核简介

第1章Linux内核简介 主要内容: 认识Linux内核与Linux操作系统 1.1 Unix的历史 (1)Unix的产生及发展。 (2)Unix强大的根本原因: 很简洁 所有东西都被当做文件对待 C语言实现,可移植性性...

fengyuwuzu0519
2017/12/12
0
0
OPNET网络仿真分析-目 录

版权声明:本书为作者版权所有,仅用于学习,请勿商用 OPENT网络仿真分析 (作者:栾鹏、陈玓玏) OPNET网络仿真分析-目录 OPNET网络仿真分析-电子版 目 录 第一章 OPENT基础 1.1、OPNET简介...

luanpeng825485697
2017/09/14
0
0
web调试利器_fiddler

此文已由作者夏君授权网易云社区发布。 欢迎访问网易云社区,了解更多网易技术产品运营经验。 一、fiddler简介 直接引用官网介绍 The free web debugging proxy for any browser, system or ...

网易云
2018/10/23
0
0
SylixOS 中断系统分析

SylixOS中断系统分析 中断向量表 在SylixOS中,系统默认存在一张大小为256(可以手动配置)的中断向量表,用于管理SylixOS中的每一个中断向量。该向量表存在于k_globalvar.h文件中,其定义格...

jiangheng12138
2017/06/16
0
0
STM32 PWM调制信号关闭后端口电平不确定处理

简介 在使用STM32的PWM做为调制信号时,遇到开关调制信号关闭后其信号不确定的问题,影响信号的调制,收集了些资料在这归纳整理。 方法 当IO设置成PWM模式以后GPIOResetBits等设置语句就不管...

huan447882949
2018/03/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

java通过ServerSocket与Socket实现通信

首先说一下ServerSocket与Socket. 1.ServerSocket ServerSocket是用来监听客户端Socket连接的类,如果没有连接会一直处于等待状态. ServetSocket有三个构造方法: (1) ServerSocket(int port);...

Blueeeeeee
今天
6
0
用 Sphinx 搭建博客时,如何自定义插件?

之前有不少同学看过我的个人博客(http://python-online.cn),也根据我写的教程完成了自己个人站点的搭建。 点此:使用 Python 30分钟 教你快速搭建一个博客 为防有的同学不清楚 Sphinx ,这...

王炳明
昨天
5
0
黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
昨天
15
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
昨天
15
0
jquery--DOM操作基础

本文转载于:专业的前端网站➭jquery--DOM操作基础 元素的访问 元素属性操作 获取:attr(name);$("#my").attr("src"); 设置:attr(name,value);$("#myImg").attr("src","images/1.jpg"); ......

前端老手
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部