I/O與主機交換信息有哪幾種控制方式?各有何特點?


主機與I/O交換信息的控制方式有三種

  1. 程序查詢方式
        這種方式的特點是主機與I/O串行工作。當CPU啟動I/O后,時刻查詢I/O是否准備好,若設備准備就緒,CPU便轉入處理I//O與主機間傳送信息的程序;若設備未做好准備,則CPU反復查詢,“踏步”等待直到I/O准備就緒為止。這種方式CPU效率很低。

  2. 程序中斷方式
        這種方式的特點是主機與I/O並行工作。當CPU啟動I/O后,不必時刻查詢I/O是否准備好,而是繼續執行程序。當I/O准備就緒時,向CPU發中斷請求信號,CPU在適當的時候響應I/O的中斷請求,暫停現行程序為I/O服務。這種方式消除了“踏步”現象,提高了CPU的效率。

  3. DMA方式
        這種方式的特點是主機與I/O並行工作,主存和I/O之間有一條直接數據通路。CPU啟動I/O后,不必查詢I/O是否准備好,當I/O准備就緒后,發出DMA請求,此時CPU不直接參與I/O和主存間的信息交換,只是把外部總線 (地址線、數據線及有關控制線) 的使用權暫時交賦予DMA,仍然可以完成自身內部的操作 (如加法、移位等),故不必中斷現行程序,只需暫停一個存取周期訪存 (即周期挪用),CPU的效率更高。


程序中斷方式中的周期挪用解釋

     所謂周期挪用即在DMA傳送方式中,當I/O設備沒有DMA請求時,CPU按程序的要求訪問主存;一旦I/O設備有DMA請求並與CPU訪存發生沖突時,CPU要暫時一個存取周期訪存,把總線控制權讓給DMA。就好像I/O設備挪用了CPU的訪存周期,故稱為周期挪用或周期竊取。

設備提出DMA請求可能會遇到三種情況:
    1. I/O設備有DMA請求時,CPU正在進行自身的操作 (如乘法等),並不需要訪存,即I/O訪存和CPU訪存沒有沖突,故不存在周期挪用。
    2. I/O設備要求訪存時,CPU也要求訪存,此時發生沖突。在這種情況下,I/O設備的DMA請求優先 (因為I/O訪存有時間要求,前一個I/O數據必須在下一個訪存請求到來前存取完畢),即出現了周期挪用,CPU需延緩一個存取周期訪存。
    3. I/O設備有DMA請求時,存儲器本身正處於“忙”狀態 (正在讀或寫),此時必須等待存取周期結束后才能進行I/O訪存。


程序查詢方式和程序中斷方式都要由程序實現外圍設備的輸入輸出,它們有什么不同?

    程序查詢方式是用戶在程序中安排一段輸入輸出程序,它由I/O指令、測試指令和轉移指令組成。CPU一旦啟動I/O后,就進入這段程序,時刻查詢I/O准備的情況,若未准備就緒就踏步等待;若准備就緒就實現傳送。在輸入輸出的全部過程中,CPU停止自身的操作

    程序中斷方式雖也要用程序實現外部設備的輸入、輸出,但它只是以中斷服務程序的形式插入到用戶現行程序中。即CPU啟動I/O后,繼續自身的工作,不必查詢I/O的狀態。而I/O被啟動后,便進入自身的准備階段,當其准備就緒時,向CPU提出中斷請求,此時若滿足條件,CPU暫停現行程序,轉入該設備的中斷服務程序,在服務程序中實現數據的傳送。


在DMA方式中有沒有中斷請求?為什么?

    在DMA方式中有中斷請求。雖然DMA方式不靠中斷請求傳送信息,在主存和I/O接口之間有直接數據通路,但在一組數據傳送完畢時,仍需向CPU提出中斷請求,報告傳送結束。此時CPU將中斷現行程序,去做一些DMA結束處理工作,如測試傳送過程是否出錯,這種工作DMA接口是無法完成的,只有靠中斷服務程序來處理。


程序查詢、程序中斷和DMA三種方式的綜合性能

程序查詢 程序中斷 DMA
數據傳送 依賴軟件 依賴軟件 依賴硬件
傳送數據的基本單位
並行性 CPU與I/O串行 CPU與I/O並行
傳輸與主程序串行
CPU與I/O並行
傳輸與主程序並行
主動性 CPU 設備 設備
傳輸速度
經濟性 費用低 介於查詢和DMA之間 費用高
應用對象 低速 較低 高速成批傳輸


免責聲明!

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



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