分類: LINUX
scatter/gather方式是與block dma方式相對應的一種dma方式。
在dma傳輸數據的過程中,要求源物理地址和目標物理地址必須是連續的。但在有的計算機體系中,如IA,
連續的存儲器地址在物理上不一定是連續的,則dma傳輸要分成多次完成。
如果傳輸完一塊物理連續的數據後發起一次中斷,同時主機進行下一塊物理連續的傳輸,則這種方式即爲block dma方式。
scatter/gather方式則不同,它是用一個鏈表描述物理不連續的存儲器,然後把鏈表首地址告訴dma master。
dma master傳輸完一塊物理連續的數據後,就不用再發中斷了,而是根據鏈表傳輸下一塊物理連續的數據,最後發起一次中斷。
很顯然scatter/gather方式比block dma方式效率高。