程序查詢方式的接口及程序中斷


2019-05-08       20:01:04

接口:總線與外部設備之間的一個邏輯部件

程序查詢方式:

適用於慢速或中速的外圍設備。
數據在CPU和外圍設備之間的傳送完全靠計算機程序控制。
優點是CPU的操作和外圍設備的操作能夠同步,硬件結構比較簡單。

缺點是程序進入查詢循環時將白白浪費掉CPU很多時間。即使CPU采用定期地由主程序轉向查詢設備狀態的子程序,進行掃描輪詢的辦法,CPU寶貴資源的浪費也是可觀的。

結論:CPU主動查詢,外設被動。類似於上門零售。
 

一:程序查詢方式的接口分為以下部分:

1.設備選擇器 :判別總線上呼叫的設備是不是本設備。,實際上是設備地址的譯碼器。

2.數據緩沖寄存器:輸入操作時,用來存放從外部設備讀出的數據,然后送往CPU;輸出操作時,存放CPU送來的數據,以便於送給外部設備輸出。

3.設備狀態標志:接口中的觸發器,如:“BUSY”,“READE”,“ERROR”等,用來標志設備的工作狀態,以便於借口對外設動作進行監視。

二:程序查詢輸入/輸出方式,動作如下:

1.先向I/O設備發出命令字,請求進行數據傳送;

2.從I/O接口中讀入狀態字(READY=0,BUSY=1時可以進行數據傳輸)

3.查看數據交換是否可以進行。

4.假如沒有准備就緒,則2.3步驟重復進行,一直到設備准備好為止,即READY=1.

5.CPU從I/O接口的數據緩存器輸入數據,或者將CPU輸出至接口的數據緩存器中,同時,READY=0.(注意:一定要先取走數據,READY才能復位)。

CPU先把指令中的設備地址通過設備地址送到地址總線上,然后啟動命令,向設備發出命令字,請求進行數據傳輸,從接口中讀入狀態字,若READY為0,BUSY為1,則啟動設備,同時輸入數據到DBR(數據緩沖寄存器)中,則取走數據工作結束。使READY為1,BUSY為0,准備就緒后,使DBR中的數據由數據總線輸出。

查詢需要的硬件:cpu,接口,外設

                 軟件:輸入/輸出狀態程序(輸入輸出程序)

三:程序中斷方式

中斷:外圍設備“主動”通知CPU,准備送出輸入數據或接收輸出數據的一種方法。

通常,當一個中斷發生時,CPU暫停它的現行程序,而轉向中斷處理程序,從而可以輸入或輸出一個數據。
當中斷處理完畢后,CPU又返回到它原來的任務,並從它停止的地方開始執行程序。(如:接電話)

結論:CPU被動,外設主動。效率大為提高。類似於開店零售。

中斷的硬件 :CPU中設置中斷機構   接口中設置中斷邏輯。

中斷的軟件 :設置中斷源對應的中斷服務子程序。

中斷處理中需要注意的問題:

1.CPU只有在當前一條指令執行完畢后,即轉入公操作時才受理設備的中斷請求。

2.為了在中斷服務程序執行完畢以后,能夠正確地返回到主程序被中斷的斷點(PC內容)位置,要將PC和PSW內容壓棧保護。

 

3.CPU響應中斷后,正要去執行中斷服務程序時,可能有另一個新的中斷源向它發出中斷請求,在CPU必須有一個“中斷屏蔽”觸發器。

4.中斷處理過程是由硬件和軟件結合來完成的。

CPU有決定是否受理中斷請求的機構。

主要是:

中斷請求IR=INTERRUPT  REQUEST     IR=1,表示設備發出了中斷請求。
中斷屏蔽IM=INTERRUPT  MASK            IM=0,CPU可以受理外界的中斷請求。

接口方面有決定是否向CPU發出中斷請求的機構。

主要是: 

准備就緒標志RD=READY

RD=1,數據放入DBR中

RD=0,DBR中無數據

允許中斷觸發器EI=ENABLE INTERRPUT:

EI=1,接口可以向CPU發出中斷請求

EI=0,不能向CPU發出中斷請求

工作原理:

1、由程序啟動外設,使得RD=0,BS=1
2、接口向外設發啟動命令
3、外設把數據放到DBR中
4、置1 READY
5、若EI=1,發中斷請求
6、將中斷請求打入IR
7、若IM=0,發中斷響應
8、取得中斷向量
9、轉中斷服務,輸入數據
10、將RD和BS復位。
<完>

 

 

小結:第一次寫關於計算機組成原理的blog,今天寫的內容主要是老師上課所講的內容,關於程序查詢以及程序中斷的相關知識。不久前關注了一個公眾號(碼農翻身),其中涉及到相當多的計算機行業的內容,看了一些CPU相關知識后,對這部分產生了濃厚的興趣,結合課本與老師PPT,對這部分內容有了更深的理解,在寫的過程中也受益匪淺,與以前的知識相結合,逐漸進步,希望以后更加努力,c語言系列持續更新!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM