在微機中,傳送數據通常有4種方式:無條件方式、查詢方式、中斷方式、直接訪問存儲器(DMA)方式。post
無條件傳送是一種最簡單的傳送方式,適合於外部設備老是處於就緒狀態的狀況。CPU在開始數據傳送以前,沒必要關心外部設備的當前狀態,直接能夠對外部設備接口進行讀寫。也就是CPU在任什麼時候候均可以向外部設備發送信息或者從外部設備接收信息。在外設還沒處於就緒狀態或外設發生故障時,就會產生數據錯誤或數據丟失。爲了解決這一問題,人們考慮採用查詢傳送方式。測試
不問,都給你 spa
查詢方式是CPU傳送數據(包括讀入和寫入)以前,主動去檢查外設是否「準備好」若沒有準備好,則繼續查其狀態,直至外設準備好了,即確認外部設備已具有傳送條件以後,才進行數據傳送。具體做法是在程序中安排一段由輸入/輸出指令和測試指令以及轉移指令組成的程序段。CPU使用測試指令和條件轉移指令循環檢測設備完成準備工做的狀態。一旦設備「準備好」,CPU才執行傳送指令,實現CPU與接口之間的數據交換。在查詢傳送方式中,CPU須要不斷地查詢外設的狀態,極大地下降了CPU的利用率。爲了提升CPU的利用率,提升輸入/輸出系統的可靠性以及實時性,能夠採用中斷傳送方式。blog
一直在問你準備好了嗎接口
爲提升數據傳輸效率,須要改變CPU耗費大量時間查詢外部設備狀態的工做方式變外部設備的被動接收爲主動請求。當外部設備沒有作好數據傳輸準備時,CPU能夠執行與數據傳送無關的其餘指令。一旦外部設備準備好,主動經過硬件信號向CPU提出傳送請求的其餘程序。內存
在原來被執行的程序看來,一個正常的執行過程被打斷,於是稱爲中斷傳送。中斷傳送方式優勢:當外設處於就緒狀態時才向CPU請求輸入或輸出服務,不須要CPU花費大量時間去主動查詢外設的工做狀態,減小了大量的CPU等待時間。爲了保證多個外部設備可以在須要時,準確及時地向CPU提出中斷請求,通常須要設置專門的硬件控制電路,所以增長了硬件開銷。get
有空回我it
直接存儲器存取方式(Direct Memory Access),又稱爲DMA傳送方式,對於高速的外設,以及成塊交換數據的狀況,例如,磁盤與內存之間交換信息,用程序或中斷控制傳送數據的方式顯得速度太慢以及佔用CPU大量時間。
採用DMA方式是用一個硬件DMAC(稱DMA控制器)芯片來完成軟件的工做。好比,內存地址的修改,字節長度的控制等,在這種方式下,CPU放棄數據總線、地址總線及控制總線的控制權,交給DMAC管理,使得外設和內存的信息傳送速度能達到很高。效率
菜鳥驛站軟件