我有這個問題涉及到Direct Memory Access(DMA)的概念。操作系統/ Linux內核有一些方法可以知道哪些指令使用DMA,哪些不使用?或者DMA完全由硬件實現,操作系統無法訪問DMA控制器?Linux內核是否知道哪個指令與DMA相關?
0
A
回答
1
你的問題不是很清楚,因爲DMA不是關於CPU指令的。這是一塊處理內存訪問而不涉及CPU的硬件。例如,從網絡適配器接收一個字節的網絡數據包將是非常不利的。相反,操作系統設置了一個可由網絡適配器訪問的DMA區域,該區域將接收到的數據直接寫入該區域,而無需佔用CPU。所以,當然操作系統知道DMA,管理其配置以保持CPU週期以進行更有用的工作是它的一項任務。
+0
儘管英特爾和AMD將PCI-e和RAM控制器與CPU集成到同一芯片,但現在可能有些混亂。 –
相關問題
- 1. 處理器如何知道指令是否來自內核?
- 2. 如何知道某個特定的內核是否基於linux?
- 3. linux內核如何知道哪個inotify_handle具有某個手錶
- 4. DMA是否知道NUMA節點?
- 5. 如何知道SDNode是否有與之相關的物理指令?
- 6. 知道從哪個設備啓動Linux內核
- 7. 如何知道哪個圖像與drupal中的哪個內容項目相關
- 8. 映射Linux內核中的DMA中斷
- 9. Mac/IOS是否使用與Linux內核相同的sys/socket.h?
- 10. 是否有任何帶PCIe for FPGA的DMA Linux內核驅動程序示例?
- 11. HTTP 1.0指令是否仍然相關?
- 12. 是否有可能知道從哪個
- 13. Linux內核如何知道要調用哪個驅動程序函數?
- 14. 相關Linux內核libc.so.6的的
- 15. 關於Linux內核
- 16. Linux內核:copy_from_user - 結構與指針
- 17. Angular 2指令 - 你怎麼知道哪個孩子調用了這個指令?
- 18. 如何知道哪個視圖與哪個控制器關聯?
- 19. 如何知道內核代碼是否是原子?
- 20. Linux內核中的指令{interrupt do_IRQ}的含義是什麼?
- 21. 哪個選項在編譯Linux內核
- 22. Linux內核加密指南
- 23. Linux內核如何知道在啓動時加載哪些驅動程序?
- 24. Linux內核如何知道在哪裏查找驅動程序固件?
- 25. Linux用戶空間DMA與iommu =無論是否爲VFIO
- 26. 如何知道指針是否是NSObject?
- 27. Linux命令行與Linux命令管道
- 28. 內核知道文件是如何關閉的
- 29. Linux內核splice()是否零拷貝?
- 30. Linux內核:可以無限期打開流式DMA映射嗎?
通過一點搜索,簡單的答案是肯定的。內核文檔(https://www.kernel.org/doc/Documentation/DMA-API-HOWTO.txt)表明內核確實使用DMA相關的API。接下來的問題是內核需要何時何地使用這些API。 –