需要動用 DMA 作記憶體複製嗎 ? - Linux

By Freda
at 2011-05-13T23:13
at 2011-05-13T23:13
Table of Contents
DMA 是硬體機制,需要有配有DMA engine的硬體配合
如果你的程式是純軟體操作,應該是無法進行DMA
可以從改善程式的運作模試著手,在data source跟sink之間share memory
使用semaphore對share memory做同步保護
如此一來就不用memcpy
※ 引述《jeremy007 (Linux藍海帝國)》之銘言:
: 大家好, 小弟想改善手邊程式的執行時間
: 分析後, 發現兩塊 buffer 的複製: src -> dst 花了太多時間...
: 原始程式的寫法採用 memcpy,
: 但 survey 了其他做法 (ex: 網路上找到的 fast memcpy), 其效能的增進不顯著.
: 想請教前輩們, 若改用 DMA 幫忙作資料搬移,
: 有辦法縮短 資料在記憶體之間 搬移的時間嗎 ?
: (已知 buffer size 為 page 的整數倍, 且起始位置也為 page align)
: 小弟想知道怎麼作, 才能讓 src 的資料 "盡量快速" 複製到 dst buffer..
: 謝謝!!
--
如果你的程式是純軟體操作,應該是無法進行DMA
可以從改善程式的運作模試著手,在data source跟sink之間share memory
使用semaphore對share memory做同步保護
如此一來就不用memcpy
※ 引述《jeremy007 (Linux藍海帝國)》之銘言:
: 大家好, 小弟想改善手邊程式的執行時間
: 分析後, 發現兩塊 buffer 的複製: src -> dst 花了太多時間...
: 原始程式的寫法採用 memcpy,
: 但 survey 了其他做法 (ex: 網路上找到的 fast memcpy), 其效能的增進不顯著.
: 想請教前輩們, 若改用 DMA 幫忙作資料搬移,
: 有辦法縮短 資料在記憶體之間 搬移的時間嗎 ?
: (已知 buffer size 為 page 的整數倍, 且起始位置也為 page align)
: 小弟想知道怎麼作, 才能讓 src 的資料 "盡量快速" 複製到 dst buffer..
: 謝謝!!
--
Tags:
Linux
All Comments

By Ina
at 2011-05-17T15:32
at 2011-05-17T15:32
Related Posts
Linux的資料夾?

By Rachel
at 2011-05-13T19:48
at 2011-05-13T19:48
signal?

By Connor
at 2011-05-13T13:28
at 2011-05-13T13:28
詢問 samba的smbpasswd與passwd同步

By Elma
at 2011-05-13T00:08
at 2011-05-13T00:08
網路分享問題, 真的沒輒了...

By Queena
at 2011-05-12T23:14
at 2011-05-12T23:14
作業系統時間停滯

By Robert
at 2011-05-12T22:23
at 2011-05-12T22:23