3

是什麼向量和非向量中斷之間的區別?向量中斷

我以爲所有的中斷都必須向量中斷......畢竟並非全部中斷都具有向量數量,從而與特定的ISR [中斷服務程序]矢量

(ISR地址將在頁表,在4 *的矢量#在產生中斷裝置;假設32位地址架構)....

謝謝!

回答

6

here

  • 向量中斷:設備告訴CPU,它需要關注,通過中斷識別本身
  • 輪詢中斷:CPU必須查詢多個設備,看看曾要求其中一個關注
4

當中斷髮生時,CPU需要執行一個Handler,這基本上是一個處理的中斷子程序。現在CPU如何訪問這個處理程序取決於中斷的類型。

在向量的情況下的中斷,所述載體數指定處理程序的地址,因此CPU跳轉到地址和執行該處理程序。

在另一方面,非向量中斷通常由I/O(慢)裝置上升。在這種情況下總是存在需要執行一個特定的處理程序,因此,沒有必要通過一個向量的處理程序

+0

你說「另一方面,I/O設備引發了非向量中斷」 - 但是I/O設備是否引發了所有中斷(向量化和非向量化)?你能澄清一下嗎?否則+1爲明確的前2段! =) – rrazd

+0

對子程序的調用也是一箇中斷。例如如果你已經用任何高級語言編寫了程序,並且你調用了一個函數,那麼這也是一種中斷,它是一種向量中斷,你知道要調用的函數的地址。 – AmanMohla

0

當外部設備中斷CPU(中斷請求)的地址,CPU必須執行中斷服務爲中斷服務的例程。如果處理器的內部控制電路產生一個CALL到作爲中斷服務程序起始地址的預定存儲位置,那麼該地址被稱爲向量地址,並且這樣的中斷被稱爲向量中斷。