中斷向量表

中斷向量表(interrupt vector table)簡稱IVT,是有關中斷處理程序的表格,是關聯列表和列表的数据结构。中斷向量表的每一筆資料都對應一個中斷,此內容稱為中斷向量。有些中斷向量表中的中斷向量會存放的位置。許多不同的處理器架構都有此一概念,但實現方式會依架構而定。例如分派表(dispatch table)就是一種實現中斷向量表的方式。

背景
大部份的處理器都有中斷向量表,包括Intel、AMD、Infineon、Microchip、Atmel、NXP、ARM等廠牌的處理器。
中斷處理程序
處理方式
中斷向量表提供中斷處理程序的方法有很多,最常見的是以下的三種:
事先定義
事先定義的方式會直接將程式計數器(PC)移到中斷向量表中,其中存放的是可執行的程式檔。理論上特別短的中斷處理程式可以直接放在中斷向量表內,不過實務上,中斷向量表放的會是跳躍到對應中斷處理程式(ISR)的跳躍指令。Intel 8080 Atmel AVR,所有8051以及Microchip處理器都使用此一作法。

取得位置
取得位置(fetch)的方式中,中斷向量表裡的中斷向量沒有程式碼,只有中斷處理程序的位置,有中斷時,會用中斷向量表查到中斷處理程序位置,將指定位置填入程式計數器,執行那部份的程式。此作法的中斷向量表內,每一個內容都是對應中斷處理程序的位置。所有Motorola/Freescale微處理器都使用此一方式。

中斷應答
在中斷應答(interrupt acknowledge)方法中,會由外部設備給CPU中斷處理程序的編號。Intel Pentium處理器以及較舊的微處理器會使用此方法。

若CPU接收到中斷時,會查看中斷向量表中的中斷處理程序,並將控制權轉給中斷處理程序。

相關條目

  • (x86架構的實現)

參考資料
外部連結
*[http://developer.intel.com/design/pentium/manuals/ Intel® Architecture Software Developer's Manual, Volume 3: System Programming Guide]
** [https://web.archive.org/web/20081221050950/http://download.intel.com/design/processor/manuals/253668.pdf Intel 64 and IA-32 Architectures Software Developer’s Manual, Volume 3A:System Programming Guide, Part 1] (see CHAPTER 6, INTERRUPT AND EXCEPTION HANDLING and CHAPTER 10, ADVANCED PROGRAMMABLE INTERRUPT CONTROLLER)]
*

评论 (0)

  • 还没有评论,来抢沙发吧。