Re: [問題] 需要動用 DMA 作記憶體複製嗎 ?

看板Linux作者 (..)時間13年前 (2011/05/13 23:13), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串2/2 (看更多)
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.. : 謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.74.93.41

05/14 14:34, , 1F
DMA一般用於I/O與RAM的搬移,DMA controller一般由OS控制
05/14 14:34, 1F
文章代碼(AID): #1DpKgdiD (Linux)
文章代碼(AID): #1DpKgdiD (Linux)