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

更新时间:2023-05-12 13:20:10 阅读: 评论:0

关于SMI、MSI、SCI、INTx各种中断⼩结
MSI VS INTx(Pin-bad interrupt)
MSI的全称是Message Signaled Interrupt.MSI出现在PCI 2.2和PCIe的规范中,是⼀种内部中断信号机制。传统的中断都有专门的中断pin,当中断信号产⽣是,中断PIN电平产⽣变化(⼀般是拉低)。INTx就是传统的外部中断触发机制,它使⽤专门的通道来产⽣控制信息。然⽽PCIe并没有多根独⽴的中断PIN,它使⽤特殊的信号来模拟中断PIN的置位和复位。MSI允许设备向⼀段指定的MMIO地址空间写⼀⼩段数据,然后chipt以此产⽣相应的中断给CPU.
对MSI的误解
通常有⼀个对MSI的误解:有⼈认为device可以直接向cpu发送数据作为中断的⼀部分。这得看CPU。如果使⽤的是Client CPU⽽且PCIe总线经过南桥,这部分写到MMIO的数据是给chipt的,chipt读取这段数据来决定说发送什么样的中断给CPU。Device是没有办法直接给interrupt handler传递更多的信息的。
但对于Intel的⾄强ver处理器,处理器中有IIO(Integrated I/O Controller), 如果PCIe的device是直接接在cpu的root port上的,那么MSI会被直接发送到cpu的IIO, IIO⼜会将MSI转给UBox, 由UBox把MSI发送给⽬标CPU。
MSI Capability结构
MSI Capability⼀共有四种结构。可以通过读取MSI Capability结构中的Message Control字段来判断当前是四种结构中的哪⼀种。
MSI结构中的Message Address字段代表的是⽬的地址,Message Data就是中断时要发送的Data.
相对于PIN-bad/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 Pinasrt -> CPU SMM mode -> BIOS SMI handler
SMI:(软件⽅式)
WriteIO(B2h) -> CPU SMM mode->BIOS SMI handler
SCI:
SCI Pinasrt->IDT->OS ACPI driver->ASL code(Q Evnent)->?

本文发布于:2023-05-12 13:20:10,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/599886.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:中断   数据   传统   电源   结构   专门   触发   使得
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图