中斷描述符表(Interrupt Descriptor Table,IDT)將每個異常或中斷向量分別與它們的處理過程聯
系起來。與GDT和LDT表類似,IDT也是由8位元組長描述符組成的一個數組。與GDT不同的是,表中第1項
可以包含描述符。為了構成IDT表中的一個索引值,處理器把異常或中斷的向量號乘以8。因為最多只
有256箇中斷或異常向量,所以IDT無需包含多於256個描述符。IDT中可以含有少於256個描述符,因為
只有可能發生的異常或中斷才需要描述符。不過IDT中所有空描述符項應該設定其存在位(標誌)為0
。
IDT表可以駐留線上性地址空間的任何地方,處理器使用IDTR暫存器來定位IDT表的位置。這個暫存器
中含有IDT表32位的基地址和16位的長度(限長)值。IDT表基地址應該對齊在8位元組邊
界上以提高處理器的訪問效率。限長值是以位元組為單位的IDT表的長度。
中斷描述符表IDT和暫存器IDTR
LIDT和SIDT指令分別用於載入和保存IDTR暫存器的內容。LIDT指令用於把記憶體中的限長值和基地址操
作數載入到IDTR暫存器中。該指令僅能由當前特權級CPL是0的代碼執行,通常被用於創建IDT時的操作
系統初始化代碼中。SIDT指令用於把IDTR中的基地址和限長內容複製到記憶體中。該指令可在任何特權
級上執行。
如果中斷或異常向量引用的描述符超過了IDT的界限,處理器會產生一個一般保護性異常
在實地址模式中,CPU把記憶體中從0開始的1K位元組作為一個中斷向量表。表中的每個表項占四個位元組,由兩個位元組的段地址和兩個位元組的偏移量組成,這樣構成的地址便是相應中斷處理程式的入口地址。但是,在保護模式下,由四位元組的表項構成的中斷向量表顯然滿足不了要求。這是因為,除了兩個位元組的段描述符,偏移量必用四位元組來表示;‚要有反映模式切換的信息。因此,在保護模式下,中斷向量表中的表項由8個位元組組成,中斷向量表也改叫做中斷描述符表IDT(InterruptDescriptor Table)。其中的每個表項叫做一個門描述符(gate descriptor),“門”的含義是當中斷髮生時必須先通過這些門,然後才能進入相應的處理程式。
主要門描述符是:
· 中斷門(Interrupt gate)
其類型碼為110,中斷門包含了一個中斷或異常處理程式所在段的選擇符和段內偏移量。當控制權通過中斷門進入中斷處理程式時,處理器清IF標誌,即關中斷,以避免嵌套中斷的發生。中斷門中的DPL(Descriptor Privilege Level)為0,因此,用戶態的進程不能訪問Intel的中斷門。所有的中斷處理程式都由中斷門激活,並全部限制在核心態。
· 陷阱門(Trap gate)
其類型碼為111,與中斷門類似,其唯一的區別是,控制權通過陷阱門進入處理程式時維持IF標誌位不變,也就是說,不關中斷。
· 系統門(System gate)
這是Linux核心特別設定的,用來讓用戶態的進程訪問Intel的陷阱門,因此,門描述符的DPL為3。通過系統門來激活4個Linux異常處理程式,它們的向量是3、4、5及128,也就是說,在用戶態下,可以使用int3、into、bound 及int0x80四條彙編指令。
最後,在保護模式下,中斷描述符表在記憶體的位置不再限於從地址0開始的地方,而是可以放在記憶體的任何地方。為此,CPU中增設了一個中斷描述符表暫存器IDTR,用來存放中斷描述符表在記憶體的起始地址。中斷描述符表暫存器IDTR是一個48位的暫存器,其低16位保存中斷描述符表的大小,高32位保存IDT的基址.
相關詞條
-
《64位微處理器系統編程》
554.6.3局部描述符表564.6.4局部描述符表暫存器574.6.5中斷描述符表584.6.6中斷描述符表暫存器594.7傳統段描述符594.7.1...描述符表292.6.2推入的堆疊幀292.6.3堆疊切換...
內容簡介 目錄介紹 參考資料 -
實模式
提供中斷/陷阱描 述符,這些描述符構成中斷描述符表(IDT),並引入...) ES:DI=全局描述符表中第0x200項描述符給出的段基址...,segment)∈GDT/LDT} 其中GDT、LDT分別表示全局描述符表...
基本概念 實模式下程式的運行 保護模式 地址轉換方式比較 保護模式基本組成 -
保護模式
其他工作或是 作業系統 核心所擁有的記憶體。保護模式也有中斷正在執行程式... A20 line 來迴避。在保護模式下,前面 32 箇中斷都是保留給 CPU 例外處理用。舉個例子,中斷 0D (十進制 13) 是 一般保護模式錯...
簡介 What is GDT Setup GDT 段描述符的格式 Load GDT -
pm[Protected Mode (保護模式)]
。當從SMM返回時,處理器將回到被系統管理中斷之前的狀態。由於機器在Power...》中有非常詳盡和準確的介紹。GDT全局描述表(GDT Global...,也就說一個段的描述符需要規定對自身的訪問許可權(Access)。所以...
概況 安裝描述 載入描述 其他東西 啟動核心 -
中斷向量
查詢表,即中斷向量表(在32位保護模式下該表稱為中斷描述符表)。80x86...重新設定一張中斷向量表(中斷描述符表)。完全拋棄了BIOS所提供的中斷...的中斷向量表的直接替代物。其作用也類似於中斷向量表,只是其中每箇中斷描述符項中...
概念介紹 中斷 向量表 -
geekos
主存,中斷,網路以及磁碟系統等所必須的硬體系統,美國加州大學伯克利分校多次...了系統引導,實模式到保護模式的轉換,中斷調用及異常處理,基於段式的記憶體管理... */ pte_t *entry; /* 指向頁表中本頁的頁表項...
GeekOS教學作業系統概論 GeekOS教學作業系統 -
《微型計算機原理與接口技術》
附錄Ⅴ BIOS中斷調用表 參考文獻 文摘 2.3.3保護方式...表和-個局部描述符表。(2)13位選擇碼決定了每個描述符表中最多有...。選擇符用於選擇某個描述符表中的描述符,每個描述符用於指示存儲器段的位置...
圖書信息 內容簡介 微型計算機原理與接口技術 內容提要 目錄 -
DMA控制器
DMA控制器的設定目前有兩類主要的DMA傳輸結構:暫存器模式和描述符模式。無論屬於哪一類DMA,表1的幾種信息都會在DMA控制器中出現...。在描述符模式中,DMA控制器在存儲器中查找自己的配置參數。1)基於暫存器...
DMA控制器的設定 DMA運行模式 DMA控制器的基本功能 DMA控制器的基本組成 -
微型計算機原理與接口技術
附錄Ⅲ中斷向量地址表附錄Ⅳ DOS功能調用表附錄Ⅴ BIOS中斷調用表...(程式)可以擁有-個全局描述符表和-個局部描述符表。(2)13位選擇碼決定了每個描述符表中最多有213個描述符。因此一個任務可擁有的描述符數目最...
圖書信息 內容提要 目錄 文摘 圖書信息