8259A工作原理描述

來源:互聯網
上載者:User
8259A工作原理描述 
首先,一個外部插斷要求訊號通過插斷要求線IRQ,傳輸到IMR(中斷屏蔽寄存器),IMR根據所設定的中斷屏蔽字(OCW1),決定是將其丟棄還是接受。如果可以接受,則8259A將IRR(插斷要求暫存寄存器)中代表此IRQ的位置位,以表示此IRQ有插斷要求訊號,並同時向CPU的INTR(插斷要求)管腳發送一個訊號,但CPU這時可能正在執行一條指令,因此CPU不會立即響應,而當這CPU正忙著執行某條指令時,還有可能有其餘的IRQ線送來插斷要求,這些請求都會接受IMR的挑選,如果沒有被屏蔽,那麼這些請求也會被放到IRR中,也即IRR中代表它們的IRQ的相應位會被置1。當CPU執行完一條指令時後,會檢查一下INTR管腳是否有訊號,如果發現有訊號,就會轉到中斷服務,此時,CPU會立即向8259A晶片的INTA(中斷應答)管腳發送一個訊號。當晶片收到此訊號後,判優組件開始工作,它在IRR中,挑選優先順序最高的中斷,將插斷要求送到ISR(中斷服務寄存器),也即將ISR中代表此IRQ的位置位,並將IRR中相應位置零,表明此中斷正在接受CPU的處理。同時,將它的編號寫入中斷向量寄存器IVR的低三位(IVR正是由ICW2所指定的,不知你是否還記得ICW2的最低三位在指定時都是0,而在這裡,它們被利用了!)這時,CPU還會送來第二個INTA訊號,當收到此訊號後,晶片將IVR中的內容,也就是此中斷的中斷號送上通向CPU的資料線。這個內容看起來彷彿十分複雜,但如果我們用一個很簡單的比喻來解釋就好理解了。CPU就相當於一個公司的老總,而8259A晶片就相當於這個老總的秘書,現在有很多人想見老總,但老總正在打電話,於是交由秘書先行接待。每個想見老總的人都需要把自己的名片交給秘書,秘書首先看看名片,有沒有老總明確表示不願見到的人,如果沒有就把它放到一個盒子裡面,這時老總的電話還沒打完,但不停的有人遞上名片求見老總,秘書就把符合要求的名片全放在盒子裡了。這時,老總打完電話了,探出頭來問秘書:有人想見我嗎?這時,秘書就從盒子裡挑選一個層級最高的,並把他的名片交給老總。這裡需要理解的是中斷屏蔽與優先順序判定並不是一回事,如果被屏蔽了,那麼參加判定的機會也都沒了。在預設情況下,IRQ0的優先順序最高,IRQ7最低。當然我們可以更改這個設定,這樣在下面有詳細描述。言歸正傳,當晶片把中斷號送上通往CPU的資料線後,就會檢測ICW4中的EOI是否被置位。如果EOI被置位表示需要自動清除插斷要求訊號,則晶片會自動將ISR中的相應位清零。如果EOI沒有被置位,則需要中斷處理常式向晶片發送EOI訊息,晶片收到EOI訊息後才會將ISR中的相應位清零。這裡的機關存在於這樣一個地方。優先權判定是存在於8259A晶片中的,假如CPU正在處理IRQ1線來的中斷,這時ISR中IRQ1所對應的位是置1的。這時來了一個IRQ2的插斷要求,8259A會將其同ISR中的位進行比較,發現比它高的IRQ1所對應的位被置位,於是8259A會很遺憾的告訴IRQ2:你先在IRR中等等。而如果這時來的是IRQ0,晶片會馬上讓其進入ISR,即將ISR中的IRQ0所對應的位置位,並向CPU發送插斷要求。這時由於IRQ1還在被CPU處理,所以ISR中IRQ1的位也還是被置位的,但由於IRQ0的優先順序高,所以IRQ0的位也會被置位,並向CPU發送新的插斷要求。此時ISR中IRQ0與IRQ1的位都是被置位的,這種情況在多重中斷時常常發生,非常正常。如果EOI被設為自動的,那麼ISR中的位總是被清零的(在EOI被置位的情況下,8259A只要向CPU發送了中斷號就會將ISR中的相應位清零),也就是如果有中斷來,晶片就會馬上再向CPU發出插斷要求,即使CPU正在處理IRQ0的中斷,CPU並不知道誰的優先順序高,它只會簡單的響應8259A送來的中斷,因此,這種情況下低優先順序的中斷就可能會中斷高優先順序的中斷服務程式。所以在PC中,我們總是將EOI位清零,而在中斷服務程式結束的時候才發送EOI訊息。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.