回覆列表
  • 1 # 巴黎巷尾南巷清天藍

    DMA(DirectMemoryAccess),即直接儲存器存取,是一種快速傳送資料的機制。資料傳遞可以從適配卡到記憶體,從記憶體到適配卡或從一段記憶體到另一段記憶體。

    -------------------------------------------------

    DMA方式的資料傳送過程

      DMA方式具有如下特點:

      1、外部裝置的輸入輸出請求直接發給主儲存器。

      主儲存器既可以被CPU訪問,也可以被外圍裝置訪問。因此,在主儲存器中通常要有一個儲存管理部件來為各種訪問主儲存器的申請排隊,一般計算機系統把外圍裝置的訪問申請安排在最高優先順序。

      2、不需要做儲存現場和恢復現場等工作,從而使DMA方式的工作速度大大加快。

      由於在外圍裝置與主儲存器之間傳送資料不需要執行程式,因此,也不動用CPU中的資料暫存器和指令計數器等。

      3、在DMA控制器中,除了需要設定資料緩衝暫存器、裝置狀態暫存器或控制暫存器之外,還要設定主儲存器地址暫存器,裝置地址暫存器和資料交換個數計數器。

      外圍裝置與主儲存器之間的整個資料交換過程全部要在硬體控制下完成。另外,由於外圍裝置一般是以位元組為單位傳送的,而主儲存器是以字為單位訪問的,因此,在DMA控制器中還要有從位元組裝配成字和從字拆卸成位元組的硬體。

      4、在DMA方式開始之前要對DMA控制器進行初始化,包括向DMA控制器傳送主存緩衝區首地址、裝置地址、交換的資料塊的長度等,並啟動裝置開始工作。在DMA方式結束之後,要向CPU申請中斷,在中斷服務程式中對主儲存器中資料緩衝區進行後處理。如果需要繼續傳送資料的話,要再次對DMA控制器進行初始化。

      5、在DMA方式中,CPU不僅能夠與外圍裝置並行工作,而且整個資料的傳送過程不需要CPU的干預。如果主儲存器的頻頻寬度足夠的話,外圍裝置的工作可以絲毫不影響CPU執行它自身的程式。

      DMA方式的工作流程如下:

      對於輸入裝置:

      從輸入介質上讀一個位元組或字到DMA控制器中的資料緩衝暫存器BD中,如果輸入裝置是面向字元的,則要把讀入的字元裝配成字。

      若一個字還沒有裝配滿,則返回到上面;若校驗出錯,則發中斷申請;若一個字已經裝配滿,則將BD中的資料送入主存資料暫存器。

      把主存地址暫存器BA(在DMA控制器中)中的地址送入主存地址暫存器,並且將BA中的地址增值至下一個字地址。

      把DMA控制器內的資料交換個數計數器BC中的內容減"1"。

      若BC中的內容為"0",則整個DMA資料傳送過程全部結束,否則返回到最上面繼續進行。

      對於輸出裝置:

      把主存地址暫存器BA(在DMA控制器中)中的地址送入主存地址暫存器,並啟動主儲存器,同時將BA中的地址增值至下一個字地址。

      將主儲存器資料暫存器中的資料送入DMA控制器的資料緩衝暫存器BD中。如果輸出裝置是面向字元的,則要把BD中的資料拆卸字元。

      把BD中資料逐個字元(對於面向字元的裝置)或整個字寫到輸出介質上。

      把DMA控制器內的資料交換個數計數器BC中的內容減"1"。

      若BC中的內容為"0",則整個DMA資料傳送過程全部結束,否則返回到最上面繼續進行。

      目前使用的DMA方式實際上有如下三種:

      1、週期竊取方式

      在每一條指令執行結束時,CPU測試有沒有DMA服務申請,如果有,則CPU進入一個DMA週期。在DMA週期中借用CPU完成上面所列出的DMA工作流程。包括資料和主存地址的傳送,交換個數計數器中的內容減"1",主存地址的增值及一些測試判斷等。

      採用週期竊取方式時,主儲存器可以不與外圍裝置直接相連線,而只與CPU連線,即仍然可以採用如圖4.4那樣的連線方式,因為外圍裝置與主儲存器的資料交換與程式控制輸入輸出方式和中斷輸入輸出方式一樣都是要經過CPU的。

      週期竊取方式與程式控制輸入輸出方式和中斷輸入輸出方式的不同處主要在:它不需要使用程式來完成資料的輸入或輸出,只是借用了一個CPU的週期來完成DMA流程。因此,其工作速度是很快的。

      週期竊取方式的優點是硬體結構很簡單,比較容易實現。缺點是在資料輸入或輸出過程種實際上佔用了CPU的時間。

      2、直接存取方式

      這是一種真正的DMA方式。DMA控制器的資料傳送申請不是發向CPU,而是直接發往主儲存器。在得到主儲存器的響應之後,整個DMA工作流程全部在DMA控制器中用硬體完成。

      直接存取方式的優點與缺點正好與週期竊取方式相反。

      目前的多數計算機系統均採用直接存取方式工作。

      3、資料塊傳送方式

      在裝置控制器中設定一個比較大的資料緩衝儲存器,一般要能夠存放下一個資料塊,如在軟磁碟儲存器中通常設定512個位元組的資料緩衝儲存器。與裝置介質之間的資料交換在資料緩衝儲存器中進行。裝置控制器與主儲存器之間的資料交換以資料塊為單位,並採用程式中斷方式進行。

      資料塊傳送方式實際上並不是DMA方式,只是它在每次中斷輸入輸出過程中是以資料塊為單位獲得或傳送資料的,這一點與上面兩種DMA方式相同,因此,通常也把這種輸入輸出方式歸入DMA方式。

      採用資料塊傳送方式的外圍裝置還有行式印表機,鐳射印表機,卡片閱讀機,部分繪圖儀等。

  • 中秋節和大豐收的關聯?
  • 你最拿手的一道菜是什麼呀,可以分享一下做法麼?