代码之家  ›  专栏  ›  技术社区  ›  smwikipedia

SCI-系统控制中断向量是如何定义的?

  •  2
  • smwikipedia  · 技术社区  · 7 年前

    根据ACPI规范 (固定ACPI描述表)表包含报告 SCI中断 操作系统编号。该字段定义如下:

    enter image description here

    9 :

    enter image description here

    但根据英特尔手册, 0-31 定义为:

    enter image description here

    不是在I386处理器之后生成的。所以我想这就是为什么9可以 打捞上来的 特定于x86的实现 符合ACPI规范。

    添加1

    我好像误解了什么。稍后将更新。

    1 回复  |  直到 7 年前
        1
  •  6
  •   Margaret Bloom    7 年前

    在整个 ACPI specifications Global System Interrupt (GSI) .
    第节简要介绍了GSI 5.2.13全局系统中断 之前链接的6.1 ACPI规范 1.

    全局系统中断可以被视为ACPI即插即用IRQ数。
    他们习惯了 在表和执行中断资源分配的ASL方法中虚拟化中断。

    规范使用术语 系统矢量
    例如,GSI数9具有系统向量数9。
    这是公认的混淆,因为术语“矢量”可能会被误认为是英特尔手册中使用的“中断矢量”中的术语“矢量”。

    要了解GSIs,必须至少了解IRQ。

    1. 8259A图片 [datasheet] [OSDev wiki]
      在标准IO地址上总是有两个PIC,每个PIC有八个输入引脚(IR 0-7)。

      另一个是从机,处理IRQ 8-15,其输出到主机的IR2 .

    2. IO APIC [datasheet] [OSDev wiki] .


      可以有一个或多个IO APIC,所有内存都映射到可变(但通常是固定的)地址,每个IO APIC的INTINx输入引脚数可变。
      通常,其中一个IO APIC连接并配置为模拟PIC,INTIN0-15映射到IRQ0-15,但这不是一个要求。

    3. [ OSDev forum thread
      这不是一个中断控制器(因此不计入计数),但值得一提。

      它们被实现为对特定内存地址的写入,因此不需要控制器。
      3. .


    PIC的标准配置为

    IRQ 0-7  -> INT 08h - 0fh  
    IRQ 8-15 -> INT 70h - 77h  
    

    请注意,IBM在基08h映射第一个IRQ是一个错误(Intel将前32个中断向量标记为保留)。

    将IRQ与设备关联(称为中断路由的过程)非常复杂,因为它需要了解设备如何连接,ACPI规范使用GSIs来简化这一方面。

    最后,GSIs(或者用ACPI的话来说, 系统向量基 )到每个IO APIC-从而将其从基极到管脚数减一的所有GSI分配给它。


    SCI_INT 字段:

    SCI中断以8259模式连接到系统向量。在…上 不包含8259的系统,此字段包含

    在我看来,这篇文章不准确, 只是另一个名字 因此,全文简化为“SCI中断的系统向量”。

    SCI是一个系统向量数,它具有GSI的性质,因此您找到的数字9是IRQ 9 . 默认情况下,IRQ 9是INT 71h,但任何使用ACPI的操作系统肯定已将IRQ重新映射到不同的基,并且肯定避免了与处理器异常的任何冲突。

    中断向量 (由ACPI定义)。

         GSI        <---->   IRQ     <---->           INT
    System vector                                Interrupt vector
    

    1. 最新的一次。
    2.
    3. 它在所有LAPIC之间共享,但可以重新映射,特别是对于非SMP系统,以避免交叉QPI链路。
    4.