成就夢想

            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)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 阳春市| 房产| 南漳县| 信宜市| 沙洋县| 赣州市| 错那县| 霸州市| 凌云县| 玉龙| 和平区| 广昌县| 乡城县| 松潘县| 兰州市| 宝坻区| 顺义区| 盐池县| 于田县| 孟连| 西乌珠穆沁旗| 镇康县| 陆川县| 罗山县| 舒兰市| 汽车| 咸阳市| 五指山市| 全南县| 邯郸市| 来凤县| 朝阳区| 永登县| 牙克石市| 高清| 龙岩市| 禹州市| 科技| 辛集市| 邳州市| 德兴市|