Re: [問題] 需要動用 DMA 作記憶體複製嗎 ?
※ 引述《jeremy007 (Linux藍海帝國)》之銘言:
: 標題: [問題] 需要動用 DMA 作記憶體複製嗎 ?
: 時間: Mon May 2 16:28:46 2011
:
: 大家好, 小弟想改善手邊程式的執行時間
: 分析後, 發現兩塊 buffer 的複製: src -> dst 花了太多時間...
:
: 原始程式的寫法採用 memcpy,
: 但 survey 了其他做法 (ex: 網路上找到的 fast memcpy), 其效能的增進不顯著.
:
: 使用的環境為 x86 平台, CPU 為 intel core 2 duo 等級,
: 想請教前輩們, 若改用硬體 DMA 幫忙作資料搬移,
: 是否能縮短 資料在記憶體之間 搬移的時間嗎 ?
: (已知 buffer size 為 page 的整數倍, 且起始位置也為 page align)
:
: 小弟想知道怎麼作, 才能讓 src 的資料 "盡量快速" 複製到 dst buffer..
: 謝謝!!
:
: --
: ※ 發信站: 批踢踢實業坊(ptt.cc)
: ◆ From: 114.32.244.203
: 推 alongalone:我的想法是你可能要往精簡資料為主.萬一你的資料大到 05/02 19:44
: → alongalone:DMA也搬不動(不確定會不會),那你的程式碼不就浪費了 05/02 19:45
buffer size 約 5~6 MBytes, 資料無法再精簡, 也不考慮資料壓縮.
不過您提到的這點, 我確實忽略了...@_@..
: 推 askacis:不懂x86的硬體,請問上面的DMA Controller可以做到 05/03 10:39
: → askacis:memory to memory的搬移嗎? 05/03 10:41
小弟先前的 survey, 古早時代的 intel 8237 這顆 chip,
就已經可以作到 memory to memory 了. 不過那時候的 dma 速度比不上用 CPU 搬移.
不確定 intel core 2 系列有沒有類似功能
一兩年前看過大陸牛人, 實作一個 dma device driver,
掛上去後可讓 user program 來作 memory to memory move.
不知道效能如何, 而且那篇網頁現在我也找不到了...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.132.236.205
推
05/04 02:23, , 1F
05/04 02:23, 1F
推
05/04 02:28, , 2F
05/04 02:28, 2F
推
06/16 08:44, , 3F
06/16 08:44, 3F
→
06/16 08:44, , 4F
06/16 08:44, 4F
→
06/16 08:47, , 5F
06/16 08:47, 5F
→
06/16 08:48, , 6F
06/16 08:48, 6F
→
06/16 08:50, , 7F
06/16 08:50, 7F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):