关于SMI、MSI、SCI、INTx各种中断小结

发布时间:2014-10-22 13:51:36编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"关于SMI、MSI、SCI、INTx各种中断小结",主要涉及到关于SMI、MSI、SCI、INTx各种中断小结方面的内容,对于关于SMI、MSI、SCI、INTx各种中断小结感兴趣的同学可以参考一下。

MSI VS INTx(Pin-based interrupt)         MSI的全称是Message Signaled Interrupt.MSI出现在PCI 2.2和PCIe的规范中,是一种内部中断信号机制。传统的中断都有专门的中断pin,当中断信号产生是,中断PIN电平产生变化(一般是拉低)。INTx就是传统的外部中断触发机制,它使用专门的通道来产生控制信息。然而PCIe并没有多根独立的中断PIN,它使用特殊的信号来模拟中断PIN的置位和复位。MSI允许设备向一段指定的MMIO地址空间写一小段数据,然后chipset以此产生相应的中断给CPU.   对MSI的误解         通常有一个对MSI的误解:有人认为device可以直接向cpu发送数据作为中断的一部分。其实这部分写到MMIO的数据是给chipset的,chipset读取这段数据来决定说发送什么样的中断给CPU。Device是没有办法直接给interrupt handler传递更多的信息的。   相对于PIN-based/out-ofband中断, MSI的好处 虽然MSI相对比较复杂一点,但它是有不少好处的: 1.  从电气机械的角度,MSI减少了对interrupt pin个数的需求。从而使得连接头变得更简单,更便宜。 2.  MSI增加了中断号的数量。传统的PCI中断只允许每个device拥有4个中断,并且由于这些中断都是共享的,大部分device都只有一个中断。MSI允许每个device有1,2,4,8,16或者是32个中断。 3.  使用MSI也有一点点性能上的优势。使用传统的PIN中断,当中断到来时,程序去读内存获取数据时有可能会产生冲突。其原因device的数据主要通过DMA来传输,而在PIN中断到达时,DMA传输还未能完成,此时cpu不能获取到数据,只能空转。而MSI不会存在这个问题,因为MSI都是发生在DMA传输完成之后的。   SCI VS SMI SCI:System Control Interrupt, 系统控制中断。专门用于ACPI电源管理的一个IRQ,需要OS支持。 SMI:System Management Interrupt, 系统管理中断,使用系统进入SMM的特殊中断。   两者区别: SMI是CPU级别的,ACPI和非ACPI模式下都可以使用,而SCI是OS级别的,只有在ACPI support的OS中才能见到。比如说DOS下触发的中断肯定不是SCI,但有可能是SMI。   两者联系: 两者可以用于电源管理,但SMI不限于电源管理。   触发过程: SMI:  (硬件方式) SMI Pinassert -> CPU SMM mode -> BIOS SMI handler SMI:(软件方式) WriteIO(B2h) -> CPU SMM mode->BIOS SMI handler SCI: SCI Pinassert->IDT->OS ACPI driver->ASL code(Q Evnent)->?


上一篇:css盒子模型
下一篇:Java NIO系列教程(四) Scatter/Gather

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。

好贷网好贷款