宁波IT培训
美国上市IT培训机构

400-111-8989

嵌入式开发中什么是中断方式?


在嵌入式开发过程中,使用到处理器的时候,中断是我们必不可少的元素。接下来跟大家说一说中断的概念以及他的方式是什么。

中断的基本概念

中断是一种硬件机制,在CPU在正常运行程序的过程中,中断可以随时发生。由预选安排或各种随机的内外部事件,一般称为中断源,发出中断请求,使CPU中断正在运行的程序,并通过将控制权传递给服务设备的中断处理程序来响应,这个过程称为程序中断。

中断的本质

一般认为中断是外部设备向处理器发起的请求事件,这还不够彻底,中断可以说是是处理器对外开放的实时受控接口。比如计算机系统中,如果没有中断,计算机所有的程序都是定论的,我们事先就可以知道其运行的全部过程,无法交互,相当于一个加速器。

有中断后,外部服务程序可能打断当前任务。CPU“正在执行的程序”与“随时可能发生的服务”,二者形成了异步关系,由人实时控制的中断输入,是无法预测的。中断可以看作是一种“硬件轮询”。即本质上,CPU会通过读取外部信号来判断CPU的下一步状态。

中断处理方式

设备管理中,高速的处理器和低速的输入输出设备相对来说,会降低整体效率,为了减少程序直接控制方式中CPU的等待时间,提高系统的并行工作程度,采用中断处理方式是很有必要的。

在I/O设备中断方式下,CPU与I/O设备之间数据的传输步骤如下:

在某个进程需要数据时,发出指令启动输入输出设备,准备要处理的数据;

在进程发出指令启动设备之后,该进程放弃处理器,等待相关I/O操作完成。此时,进程调度程序会调度其他就绪进程使用处理器。

当I/O操作完成时,输入输出设备控制器通过中断请求线向处理器发出中断信号,处理器收到中断信号之后,转向预先设计好的中断处理程序,对数据传送工作进行相应的处理。

得到了数据的进程,转入就绪状态。在随后的某个时刻,进程调度程序会选中该进程继续工作。

CPU是怎么知道中断发生的?

举个例子,比如说键盘,按下键盘Enter键时,cpu是怎么样知道我按下了Enter键而不是Shift键呢?

首先说明cpu不会知道你按下的哪个键,cpu只会按着机器指令的执行顺序,一条一条的执行机器指令。cpu只知道按设计好的逻辑执行指令,不管这个指令是干嘛的。

知道你按下哪个键的是操作系统,操作系统是根据中断控制器以及相应的寄存器的状态判断是不是中断。所以当你按下一个键,这个键的地址马上被写入RAM中,同时发出中断信号,CPU获取中断信号,就会去执行中断程序。

发生中断时CPU怎么知道程序的地址?

中断产生时,程序需要跳转到某个地址去运行该段的程序,那么CPU是不是要读整个内存然后去找中断向量表呢?

不是的,不需要去读取整个内存,而是通过映射的关系。例如在x86架构中,中断向量表的位置保存在IDTR寄存器里,CPU通过这个寄存器就能找到中断向量表,然后根据中断号就可以找到具体的中断入口了。

CPU检测到中断信号时,怎么知道是发给哪个进程的?

首先我们需要知道:中断并不直接把数据送给用户进程的,中断通知的是驱动程序,而不关心当前正在执行的是哪个进程。而进程操作都是一样的:保存现场,进入内核,执行需要的操作,返回中断前的现场,继续进程执行。

一个系统的的中断系统通常是类似这样的组成,包括设备的中断、中断控制器、CPU的中断

设备的中断

指设备要产生一个事件来通知CPU,事件的产生的方法有很多。对设备“关中断”,指的是让这个设备停止发出中断信号,如果中断控制器已经获得这个中断信号,那么这个中断信号还是会报到CPU上的。

中断控制器

指对多个设备的中断进行采样,排队,分发的机制。对中断控制器说:关中断,是让中断控制器不要给CPU(或者上级)发送中断信号了,设备报不报信号上来,这些信号是否被排队,那是另一个问题。

CPU的中断

指CPU核上有一条中断线,当这条线加上合适的电平或者信号,CPU核就会从当前的执行上下文中,直接跳转到中断处理程序中执行。在CPU的角度上关中断,就是不要执行“跳转到中断处理程序”这个动作。

中断方式的优缺点

优点

I/O设备中断方式使处理器的利用率显著提高;

支持多道程序和I/O设备的并行操作,提高了效率。

缺点

各种各样的输入输出设备通过中断处理方式进行并行操作,使中断次数增加,会造成CPU无法响应中断;

如果在缓冲区装满数据之后发生中断。那么在数据传送过程中,发生中断的机会较多,将耗去大量的CPU处理时间。

最后,达内嵌入式培训机构提醒每一个it爱好者:如果你想要在短时间内快速入门,顺利掌握一门技术,建议还是认真学习视频。多练习,多动手。

版权声明:转载文章来自公开网络,版权归作者本人所有,推送文章除非无法确认,我们都会注明作者和来源。如果出处有误或侵犯到原作者权益,请与我们联系删除或授权事宜。

预约申请免费试听课

怕钱不够?就业挣钱后再付学费!    怕学不会?从入学起,达内定制课程!     担心就业?达内多家实践企业供你挑选 !

【免责声明】本文部分系转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与联系我们,我们会予以更改或删除相关文章,以保证您的权益!
上一篇:嵌入式开发中轮询与中断方式怎么选?
下一篇:嵌入式中什么是实时系统?

程序员想要拿高薪应该具备哪些技能

不到 20 人的互联网公司该去吗

成长6大关键词是什么

达内---面试真题思路解析

  • 扫码领取资料

    回复关键字:视频资料

    免费领取 达内课程视频学习资料

  • 搜索抖音号

    搜索抖音号:1821685962

    免费领取达内课程视频学习资料

Copyright © 2021 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
江西省

贵州省

广西省

海南省