1. 程式人生 > >SylixOS x86中斷探測(二)

SylixOS x86中斷探測(二)

SylixOS x86 中斷

  • MP Spec簡介

    MP Spec即MultiProcessor Specification,簡稱MPS,中文翻譯為多重處理器規範,定義了MP系統配置的數據結構。BIOS構建MP配置數據結構,將硬件以已知格式呈現給標準設備驅動程序或操作系統的硬件抽象層。該規範的總體概念如圖 1.1所示。

    技術分享圖片

    圖 1.1 總體概念

    MP Spec提供了兩種將信息傳遞給操作系統的方法:一種符合一組常見硬件默認設置的最小配置方法,以及一種在硬件設計中提供最大靈活性的最大方法。圖 1.2顯示了MP配置數據結構的總體布局。

    技術分享圖片

    圖 1.2 MP配置數據結構體

    MP兼容系統必須實現Floating Pointer Structure,該結構是16字節的倍數的可變長度數據結構。目前,只定義了一個16字節的數據結構。要確定系統是否符合MP規範,操作系統必須按照規範定義的順序搜索Floating Pointer Structure。圖 1.3顯示了該結構的格式。其中Physical Address Pointer字段表明MP Configuration Table的起始地址。如果MP Configuration Table不存在則全為0。MP Feature Information Byte 1字段指定MP系統的默認配置類型。如果非零,則系統配置符合其中一個默認配置。

    技術分享圖片

    圖 1.3 Floating Pointer Structure

    MP Configuration Table Header的格式如圖 1.4所示。

    技術分享圖片

    圖 1.4 MP Configuration Table Header

    MP Configuration Table Header之後跟著數量不固定的且長度可變的條目。每個條目的第一個字節標識條目類型。每個條目類型具有已知的固定長度。MP Configuration Table的總長度取決於系統的配置。軟件必須遍歷Base Table中的每個條目,直到達到Entry Count。 條目按照Entry Type升序排序。圖 1.5給出了Entry Type的每個值的含義。

    技術分享圖片

    圖 1.5 Base MP Configuration Table Entry Types

    配置表包含一個或多個I/O APIC條目,每個I/O APIC條目的格式如圖 1.6所示。

    技術分享圖片

    圖 1.6 I/O APIC Entry

    I/O Interrupt Assignment Entries條目指示哪個中斷源連接到各個I/O APIC中斷輸入。每個連接的I/O APIC中斷輸入都有一個條目。圖 1.7顯示了每個條目的格式。

    技術分享圖片

    圖 1.7 I/O Interrupt Entry

    其中中斷類型有圖 1.8所示幾種。

    技術分享圖片

    圖 1.8 Interrupt Type Values

  • 參考資料

    《Intel Multiprocessor Specification》


  • SylixOS x86中斷探測(二)