問題詳情

7 有關直接記憶體存取(DMA),下列何者錯誤?
(A)通常使用一個 DMA 控制器來配合
(B)DMA controller 要取得匯流排的控制權需先發訊號向 CPU 請求
(C)DMA controller 使用匯流排的期間,CPU 無法取得匯流排的使用權
(D)DMA 可以執行 I/O 設備對記憶體或記憶體之間的資料傳送

參考答案

答案:C
難度:適中0.524138
統計:A(11),B(43),C(76),D(15),E(0)

用户評論

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發出中斷。