1.CPU發送啟動I/O設備的命令,將I/O接口中的B觸發器置1,D觸發器置O。
2.設備開始工作,需要向CPU傳送數據時,將數據送入數據緩沖器中。
3.輸入設備向I/O接口發出“設備工作結束”的信號,將D觸發器置1,B觸發器置0。標志着I/O設備已就緒。
4.CPU在每條指令執行即將結束時,發出中斷查詢信號。中斷查詢信號可以讓那些接口中D觸發器置1且中斷屏蔽觸發器(MASK)置0的設備的I/O接口中的中斷請求觸發器(INTR)置1。若該設備的I/O接口中的中斷請求觸發器(INTR)置1,則代表該設備正式向CPU提出中斷請求。
5.一般來說,在同一個時間點存在多個設備同時提出中斷請求,存在一個INTRi序列。而CPU每次只能處理一個中斷請求,因此將INTRi序列送至排隊器進行中斷判優,速度越快的I/O設備優先級越高。
6.在中斷允許觸發器(EINT)置1的情況下,CPU對優先級最高的設備進行中斷響應,首先將INTR發送到編碼器形成向量地址。將向量地址至PC作為下一條指令的地址。
7.向量地址指向的主存的存儲單元里存放的實際上是一條無條件轉移指令(JMP),其中包含着中斷服務程序的地址。執行完這條指令后,CPU就找到了中斷服務程序的入口。
8.CPU進入中斷服務程序階段。進入中斷服務階段后,首先由硬件線路自動進行關中斷將中斷允許觸發器(EINT)置0,避免其他中斷源的請求打擾。
9.在提出中斷請求的設備服務之前,CPU需要保存當前程序的斷點和保存通用寄存器和狀態寄存器中的有用的信息至主存儲器或堆棧。前者是通過中斷隱指令完成,后者是通過中斷程序的指令完成。中斷隱指令不是一條真實存在的機器指令,而是由硬件電路自動完成的一條指令。
10.保護好現場之后,CPU進入中斷服務程序的主體部分,進行設備服務。此時CPU通過輸入指令,將設備發送到數據緩沖器中的數據送至通用寄存器,最終送至主存儲器的存儲單元。之后再進行恢復現場。
11.完成設備服務等操作之后,CPU執行中斷服務程序的最后一條指令返回原程序的斷點。
12.CPU繼續原程序的執行。

