我正在阅读英特尔控制寄存器的文档,但我很难理解CR8寄存器的用途。引用文档(2-18 Vol. 3A):
任务优先级级别(CR8的位3:0) - 这设置了与最高优先级中断对应的阈值,以被阻止。值为0表示启用所有中断。该字段在64位模式下可用。值为15表示将禁用所有中断。
如果您不介意,我有三个快速问题:
任务优先级级别(CR8的位3:0) - 这设置了与最高优先级中断对应的阈值,以被阻止。值为0表示启用所有中断。该字段在64位模式下可用。值为15表示将禁用所有中断。
如果您不介意,我有三个快速问题:
因此,CR8的3到0位组成了这16个优先级值。但是优先级是什么?我猜是正在运行的“线程”,对吗?
但是当接收到中断时,CR8中的优先级值与什么进行比较,以确定是否必须阻止它?
当中断被阻止时,这意味着什么?它会被“延迟”到以后的时间,还是只是丢弃,即丢失?
cli
而不执行sti
时,情况应该完全一样。是的,中断可能会丢失;据我了解,每个IRQ线路只有一个缓冲状态位(挂起或非挂起)。 - Peter Cordes