2019-05-08 20:01:04
接口:總線與外部設備之間的一個邏輯部件
程序查詢方式:
適用於慢速或中速的外圍設備。
數據在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發出中斷請求
工作原理:
2、接口向外設發啟動命令
3、外設把數據放到DBR中
4、置1 READY
5、若EI=1,發中斷請求
6、將中斷請求打入IR
7、若IM=0,發中斷響應
8、取得中斷向量
9、轉中斷服務,輸入數據
10、將RD和BS復位。
小結:第一次寫關於計算機組成原理的blog,今天寫的內容主要是老師上課所講的內容,關於程序查詢以及程序中斷的相關知識。不久前關注了一個公眾號(碼農翻身),其中涉及到相當多的計算機行業的內容,看了一些CPU相關知識后,對這部分產生了濃厚的興趣,結合課本與老師PPT,對這部分內容有了更深的理解,在寫的過程中也受益匪淺,與以前的知識相結合,逐漸進步,希望以后更加努力,c語言系列持續更新!