【catearloveles】評論
DMA在使用期間CPU不能使用bus不對嗎?
【wyenou】評論
好像是DMA在操作時,CPU不能存取記憶體,只能存取快取
【San Hsien】評論
直接記憶體存取 (Direct Memory Access, DMA),是一種繞過CPU,讓硬體直接對記憶體進行存取資料的技術,其運作核心是由DMA controller來控制。CPU在整個DMA流程中只負責發出命令,實際傳輸作業都是由DMA controller完成。當硬體需要傳輸大量資料時,發出DMA需求 (其實就是要求記憶體Bus控制權) 經過DMA controller傳至CPU。CPU會將資料來源、目的跟資料量寫入記憶體中,然後將這些資訊位址轉交給DMA controller,完成這個動作後,CPU就暫時退出流程,可以去執行其它工作,接下來由DMA controller接手進行傳輸資料。當DMA controller取得記憶體Bus的控制權後,CPU會暫時無法存取主記憶體,也就是Cycle Stealing現象。等完成資料傳輸後,DMA controller會對CPU發出中斷。