作者uefang (云飞(想出去玩))
看板CSSE
标题Re: [问题]想请问中断和中断向量的差别和个别意思?
时间Tue May 27 12:49:18 2008
take by
http://0rz.tw/d948Z Wiki Interrupt
在轮询(Polling)时,为了避免处理器浪费宝贵的时间等待外部事件发生,
因此采用一种叫做硬体中断的方式。
中断可由硬体的控制线来当作一套分别的系统实作,或是也可以整合到记忆体系统下。
如果在硬体下实作,在装置与处理器的中断接脚之间通常会有一个中断控制器
(controller)电路,用来多工处理数个中断源,通常对应到一至两条的处理器线路上。
如果实作成记忆体控制器的一部分,中断则会对应到系统记忆体位置空间上。
中断可以分类成:可遮罩式(maskable)中断(参阅IRQ)、
不可遮罩式(non-maskable)中断(参阅NMI)、
内部处理器中断(interprocessor interrupt,简称IPI)、
软体中断,和伪中断。
可遮罩式中断(IRQ)是一种硬体中断,透过设定中断遮罩暂存器
(interrupt mask register; IMR)内的位元遮罩(bit-mask)值来让它可被系统忽略。
同样地,不可遮罩式(NMI)也是硬体中断,但却和位元遮罩无关,意谓着它是无法被系统
忽略的。NMI通常使用於计时器(timers),特别像是看门狗计时器(watchdog timers)
。
内部处理器中断是一种中断的特殊案例,在多处理器系统下,由某颗处理器产出中断来通
知另一颗处理器之用。
软体中断是处理器内执行了某个指令後,所产生出的中断。软体中断通常用来实作成系统
呼叫(System calls),因为它们是实作成某种例行性的副程式呼叫,用於处理器保护层
级(Ring (电脑安全))更动时。
伪中断是一种非需求的硬体中断。在某些系统状况下会容易发生,如中断线路上的电子干
扰,或是不正确的硬体设计。
处理器通常含有一个内部的中断遮罩,当这个设定後,可让软体忽略所有的外部硬体中断
。在可程式化中断控制器(PIC)中,相较於去读取中断遮罩暂存器(IMR),这个遮罩可
提供较快的硬体存取,或是关闭装置本身的中断。
在某些例子中,像是x86架构下,在处理器本身关闭和开启中断会以记忆屏障
(memory barrier)的方式运作,在此情况下实际上反而变慢。
若一个中断使机器处於明确定义的状态,则称这中断为精确中断(precise interrupt)。
这类的中断有下列四种特性:
程式计数器(Program Counter; PC)会存入已知的位置。
在PC导向前所有的指令都会执行完毕。
超出PC导向後的指令不可以被执行。
(并没有限制超出PC後不可有指令,只是任何对暂存器或记忆体造成的改变必须在中断发
生前复原。)
PC导向的指令执行状态是已知的。
任何一种中断其不符合这些需求的,称作非精确中断(imprecise interrupt)。
若耗费过多时间处理中断,会造成整体系统效能被严重阻碍的现象,
有人称作中断风暴(interrupt storm)。
--
----------------------------------------
云彩飞舞
http://coolcoolwind.spaces.live.com/
[我总在最深的绝望里,遇见最美丽的惊奇。] 几 米 ( ̄ Ο ̄)y▂ξ
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.211.186
1F:推 rexrainbow:推~ 05/27 13:27