成就夢想

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            21 隨筆 :: 22 文章 :: 6 評論 :: 0 Trackbacks
          DMA(Direct Memory Access,直接內存存取)

           在實現DMA傳輸時,是由DMA控制器直接掌管總線,因此,存在著一個總線控制權轉移問題。即DMA傳輸前,CPU要把總線控制權交給DMA控制器,而在結束DMA傳輸后,DMA控制器應立即把總線控制權再交回給CPU。一個完整的DMA傳輸過程必須經過下面的4個步驟:
          1,DMA請求
          2,DMA響應
          3,DMA傳輸
          4,DMA結束
          DMA與cpu 使用內存的三種方式:
          1.停止CPU訪問內存
          2.周期挪用
          3.DMA與CPU交替訪內

          設備控制器不能通過 DMA 直接存儲到用戶空間,但通過利用上面提到的第一
          項,則可以達到相同效果。把內核空間地址與用戶空間的虛擬地址映射到同一個物理地址,這樣,
          DMA 硬件(只能訪問物理內存地址)就可以填充對內核與用戶空間進程同時可見的緩沖區(見圖)


          這樣真是太好了,省去了內核與用戶空間的往來拷貝,但前提條件是,內核與用戶緩沖區必須
          使用相同的頁對齊,緩沖區的大小還必須是磁盤控制器塊大小(通常為 512 字節磁盤扇區)的倍
          數。操作系統把內存地址空間劃分為頁,即固定大小的字節組。內存頁的大小總是磁盤塊大小的倍
          數,通常為 2 次冪(這樣可簡化尋址操作)。典型的內存頁為 1,024、2,048 和 4,096 字節。虛擬和
          物理內存頁的大小總是相同的。
          posted on 2012-06-14 11:49 iamct 閱讀(345) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 长春市| 临夏县| 岫岩| 云南省| 海南省| 漳平市| 温宿县| 南昌县| 双城市| 贵德县| 抚州市| 镇远县| 班戈县| 洪泽县| 眉山市| 云南省| 临澧县| 勐海县| 靖州| 手机| 洛隆县| 南川市| 诸城市| 苏州市| 沭阳县| 墨玉县| 镇宁| 安阳市| 大兴区| 周口市| 汪清县| 沈丘县| 石嘴山市| 信阳市| 平凉市| 祁阳县| 德令哈市| 宝山区| 广宁县| 股票| 临猗县|