久久综合精品无码一区二区三区|精品日韩一区二区视频播放|亚洲欧洲日韩国内高清|在线视频亚洲一区

下載手機(jī)汽配人

如何解決CPU與DMA控制器同時(shí)訪問內(nèi)存的問題?

提問者:網(wǎng)友 2018-07-20
最佳回答
DMA原理:DMA(Direct Memory Access,直接內(nèi)存存取) 是所有現(xiàn)代電腦的重要特色,他允許不同速度的硬件裝置來溝通,而不需要依于 CPU 的大量 中斷 負(fù)載。否則,CPU 需要從 來源 把每一片段的資料復(fù)制到 暫存器,然后把他們?cè)俅螌懟氐叫碌牡胤?。在這個(gè)時(shí)間中,CPU 對(duì)于其他的工作來說就無法使用。 DMA 傳輸將數(shù)據(jù)從一個(gè)地址空間復(fù)制到另外一個(gè)地址空間。當(dāng) CPU 初始化這個(gè)傳輸動(dòng)作,傳輸動(dòng)作本身是由 DMA 控制器 來實(shí)行和完成。典型的例子就是移動(dòng)一個(gè)外部內(nèi)存的區(qū)塊到芯片內(nèi)部更快的內(nèi)存區(qū)。像是這樣的操作并沒有讓處理器工作拖延,反而可以被重新排程去處理其他的工作。DMA 傳輸對(duì)于高效能 嵌入式系統(tǒng) 算法和網(wǎng)絡(luò)是很重要的。    在實(shí)現(xiàn)DMA傳輸時(shí),是由DMA控制器直接掌管總線,因此,存在著一個(gè)總線控制權(quán)轉(zhuǎn)移問題。即DMA傳輸前,CPU要把總線控制權(quán)交給DMA控制器,而在結(jié)束DMA傳輸后,DMA控制器應(yīng)立即把總線控制權(quán)再交回給CPU。 一個(gè)完整的DMA傳輸過程必須經(jīng)過下面的4個(gè)步驟。 1.DMA請(qǐng)求   CPU對(duì)DMA控制器初始化,并向I/O接口發(fā)出操作命令,I/O接口提出DMA請(qǐng)求。 2.DMA響應(yīng)   DMA控制器對(duì)DMA請(qǐng)求判別優(yōu)先級(jí)及屏蔽,向總線裁決邏輯提出總線請(qǐng)求。當(dāng)CPU執(zhí)行完當(dāng)前總線周期即可釋放總線控制權(quán)。此時(shí),總線裁決邏輯輸出總線應(yīng)答,表示DMA已經(jīng)響應(yīng),通過DMA控制器通知I/O接口開始DMA傳輸。 3.DMA傳輸   DMA控制器獲得總線控制權(quán)后,CPU即刻掛起或只執(zhí)行內(nèi)部操作,由DMA控制器輸出讀寫命令,直接控制RAM與I/O接口進(jìn)行DMA傳輸。   在DMA控制器的控制下,在存儲(chǔ)器和外部設(shè)備之間直接進(jìn)行數(shù)據(jù)傳送,在傳送過程中不需要中央處理器的參與。開始時(shí)需提供要傳送的數(shù)據(jù)的起始位置和數(shù)據(jù)長度。 4.DMA結(jié)束   當(dāng)完成規(guī)定的成批數(shù)據(jù)傳送后,DMA控制器即釋放總線控制權(quán),并向I/O接口發(fā)出結(jié)束信號(hào)。當(dāng)I/O接口收到結(jié)束信號(hào)后,一方面停 止I/O設(shè)備的工作,另一方面向CPU提出中斷請(qǐng)求,使CPU從不介入的狀態(tài)解脫,并執(zhí)行一段檢查本次DMA傳輸操作正確性的代碼。最后,帶著本次操作結(jié)果及狀態(tài)繼續(xù)執(zhí)行原來的程序。   由此可見,DMA傳輸方式無需CPU直接控制傳輸,也沒有中斷處理方式那樣保留現(xiàn)場和恢復(fù)現(xiàn)場的過程,通過硬件為RAM與I/O設(shè)備開辟一條直接傳送數(shù)據(jù)的通路,使CPU的
回答者:網(wǎng)友
產(chǎn)品精選
搜索問答
還沒有汽配人賬號(hào)?立即注冊(cè)

我要提問

汽配限時(shí)折扣

本頁是網(wǎng)友提供的關(guān)于“如何解決CPU與DMA控制器同時(shí)訪問內(nèi)存的問題?”的解答,僅供您參考,汽配人網(wǎng)不保證該解答的準(zhǔn)確性。