看板 Linux 關於我們 聯絡資訊
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
bitlife:DMA一般用於I/O與RAM的搬移,DMA controller一般由OS控制 05/14 14:34