中断屏蔽:为什么?

中断屏蔽:为什么?

除了已经给出的答案之外,还有一个优先考虑的因素。有些中断您需要或希望能够尽可能快地响应,有些中断您想知道,但只有在您不是很忙的时候。最明显的例子可能是重新填充DVD刻录机上的写入缓冲区(如果您不及时这样做,一些硬件将简单地错误地写入DVD ),而不是处理来自网络的新数据包。您可以在收到前者的中断时禁用后者的中断,并在填充缓冲区期间保持禁用状态。

在实践中,相当多的CPU具有直接内置到硬件中的中断优先级。当中断发生时,会为较少的中断设置禁用标志,并且通常在读取中断向量并跳转到相关地址的同时设置该中断。指示接收中断还隐式地屏蔽了该中断,直到中断处理程序结束为止,这有一个很好的副作用,即放松了对中断硬件的限制。例如,您可以简单地说,信号高电平触发中断,并让外部硬件决定它想要保持线路高电平多长时间,而不必担心无意中触发多个中断。

在许多过时的系统(包括z80和6502)中,往往只有两个级别的中断-可屏蔽和不可屏蔽,我认为这是启用或禁用中断的语言的来源。但即使早在最初的68000版本中,你也有8个级别的中断和CPU中的当前优先级,它规定了哪些级别的传入中断实际上将被允许生效。

相关推荐

合作伙伴