是什麼向量和非向量中斷之間的區別?向量中斷
我以爲所有的中斷都必須向量中斷......畢竟並非全部中斷都具有向量數量,從而與特定的ISR [中斷服務程序]矢量
(ISR地址將在頁表,在4 *的矢量#在產生中斷裝置;假設32位地址架構)....
謝謝!
是什麼向量和非向量中斷之間的區別?向量中斷
我以爲所有的中斷都必須向量中斷......畢竟並非全部中斷都具有向量數量,從而與特定的ISR [中斷服務程序]矢量
(ISR地址將在頁表,在4 *的矢量#在產生中斷裝置;假設32位地址架構)....
謝謝!
見here:
當中斷髮生時,CPU需要執行一個Handler,這基本上是一個處理的中斷子程序。現在CPU如何訪問這個處理程序取決於中斷的類型。
在向量的情況下的中斷,所述載體數指定處理程序的地址,因此CPU跳轉到地址和執行該處理程序。
在另一方面,非向量中斷通常由I/O(慢)裝置上升。在這種情況下總是存在需要執行一個特定的處理程序,因此,沒有必要通過一個向量的處理程序
當外部設備中斷CPU(中斷請求)的地址,CPU必須執行中斷服務爲中斷服務的例程。如果處理器的內部控制電路產生一個CALL到作爲中斷服務程序起始地址的預定存儲位置,那麼該地址被稱爲向量地址,並且這樣的中斷被稱爲向量中斷。
你說「另一方面,I/O設備引發了非向量中斷」 - 但是I/O設備是否引發了所有中斷(向量化和非向量化)?你能澄清一下嗎?否則+1爲明確的前2段! =) – rrazd
對子程序的調用也是一箇中斷。例如如果你已經用任何高級語言編寫了程序,並且你調用了一個函數,那麼這也是一種中斷,它是一種向量中斷,你知道要調用的函數的地址。 – AmanMohla