音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

dsp的DMA訪問和CPU訪問的疑問

作者:venturer 欄目:DSP技術(shù)
dsp的DMA訪問和CPU訪問的疑問
問題1:從dsp6203的內(nèi)部框圖來看,是不是說明如果DMA訪問和CPU訪問的對象不同就可以可以同時進行讀。▽懭耄。比如,CPU訪問EMIFSDRAM,DMA訪問XBUS的接口,是不是存在一個clk中CPU內(nèi)核讀取一個字并且DMA讀取一個字?
問題2:在DMA訪問異步外設(shè)過程中,是否允許CPU訪問占用總線訪問外設(shè);如SETUP:2CLK;STROBE:5CLK;WAIT:5CLK;HOLD:2CLK;在DMA的5個WAIT周期,是否允許CPU內(nèi)核訪問外設(shè)?

2樓: >>參與討論
venturer
頂一個
 
3樓: >>參與討論
dreambird
re
DMA訪問外設(shè)的話肯定會向CPU申請總線控制權(quán),如果DMA不釋放總線,CPU就不能使用總線

4樓: >>參與討論
venturer
RE
但是從圖上可以看出,他們好象可以使用不同的總線去訪問不同片內(nèi)外設(shè)。象EMIF,他就可以使用各種不同的總線去訪問。

5樓: >>參與討論
venturer
d
d

6樓: >>參與討論
yan2005
任一時刻一個總線只能被一個host使用
對于掛在同一條總線上的CPU和DMA控制器, 如果CPU在使用某一個總線,那么DMA控制器就不能再使用該總線。反之亦然。

上述斷言帶來的一個疑問是: 既然CPU和DMA不能同時使用總線,那么DMA怎么能帶來系統(tǒng)性能的提高呢?

其實關(guān)鍵在于CPU往往帶有Cache,處理器內(nèi)核在大多數(shù)情況下不需要通過總線從外存中取指令和數(shù)據(jù),而是直接從Cache中獲得。這個Cache命中率很高(百分之九十幾) ,因此系統(tǒng)總線有空多空閑。DMA控制器可以利用這些空閑來傳輸數(shù)據(jù),從而提高總線的利用率,來實現(xiàn)系統(tǒng)性能的提高。

呵呵,前段時間面試了幾個碩士,問了這個問題,好像都不知道。







7樓: >>參與討論
jinzhao
謝謝yan2005!
 
8樓: >>參與討論
venturer
謝謝yan2005
那如果具體針對TI的6203來說,如圖,EMIF接口有四條總線(圖上紅色所示)2表示內(nèi)核程序總線與EMIF的專用接口,4表示內(nèi)核數(shù)據(jù)總線與EMIF的專用接口,1表示DMA總線與EMIF的專用接口,3表示外設(shè)總線(PERIPHERAL BUS)與EMIF的專用接口。也就是說內(nèi)核可以通過四種方式來訪問EMIF外設(shè)接口。不知道我上面的理解是否正確,請賜教。
如果上面的理解正確,是不是說明內(nèi)核可以通過2號總線訪問EMIF的同時也可以通過外設(shè)總線(PERIPHERAL BUS)來訪問MBSP0(圖上藍色5號總線所示),兩者相互不沖突???

9樓: >>參與討論
yan2005
to venturer
好像你錯誤理解了總線的定義。上面你標(biāo)出的1/2/3/4/5確切的說應(yīng)該只是排線,而不是總線。

在上圖中,總線只有兩條,即DMA Bus和Peripheral CONTROL Bus。其中:
1) DMA Bus這個總線上掛著EMIF,DMA控制器,以及處理器內(nèi)核。這個總線主要是用來實現(xiàn)數(shù)據(jù)傳輸?shù)摹?br>2) Peripheral CONTROL Bus上面掛著EMIF,定時器,串口,XBus,DMA控制器,中斷控制器等,用來對外設(shè)控制器寄存器進行設(shè)置以及對外設(shè)狀態(tài)寄存器進行查詢。

由上圖可看到,1號線和3號線是通過總線的,而2號線和4號線是直接訪問EMIF
因此,2號線和5號線的使用是不會沖突的。但是CPU能否同時利用2號線和5號線,要看處理器內(nèi)核是否支持多條執(zhí)行路徑。如果不支持的話,只能在軟件層面上分時模擬了。

坦白一下,其實我根本就沒有學(xué)過或者用過DSP,上次只是路過,即興留了個言。請大家批評指正。


10樓: >>參與討論
venturer
交流為了一起進步嘛!
yan2005的部分論點我們是想到一塊了,但感覺有問題解釋不通,所以一直迷惑。大家有其他解釋嗎?

11樓: >>參與討論
shaka1981
。
其實關(guān)鍵在于CPU往往帶有Cache....

DSP好像并沒有這個cache,TI5000系列是這樣,他的DMA在使用外部總線的時候,CUP不能使用,必須等這次DMA操作完成。

12樓: >>參與討論
venturer
RE
在TI6000里面,DSP是存在CACHE,有些有兩級緩存,如圖中的Internal Program
MEMORY,共384k,其中分BLOCK1-256K和BLOCK2-128K,BLOCK2-128K可以配置成一級緩存。

13樓: >>參與討論
yan2005
沒有Cache的話,DMA意義不大
DMA控制器在I/O口和MEMORY之間或者在MEMORYMEMORY之間傳輸數(shù)據(jù),其目的是為了減輕處理器內(nèi)核的負擔(dān)。如果沒有DMA控制器,這些數(shù)據(jù)傳輸工作都要由處理器內(nèi)核來做。而有了DMA控制器,處理器內(nèi)核就可以去做些別的事情。

處理器內(nèi)核那能做些什么呢?不外乎取指、譯碼、執(zhí)行等操作。當(dāng)DMA控制器占有總線的時候,處理器內(nèi)核就不能再訪問外部掛在總線上的MEMORY了。如果Cache也沒有,那么處理器內(nèi)核就沒地方取指了。因此此時處理器內(nèi)核需要等待。既然要等待,那么還不如舍棄DMA傳輸方式而讓處理器內(nèi)核自己來傳輸數(shù)據(jù)。


14樓: >>參與討論
yan2005
不過有一種例外
如果指令不是單周期執(zhí)行而是多周期的話,在DMA傳輸過程中,處理器內(nèi)核可能不需要取指(即當(dāng)前指令執(zhí)行時間較長)。這種情況下也許不要Cache也能體現(xiàn)DMA的意義。

15樓: >>參與討論
tjsheep
樓上說的我覺得有些不妥,呵呵
現(xiàn)在的dsp基本都是改進的哈佛結(jié)構(gòu),內(nèi)部有獨立的數(shù)據(jù)讀、寫、程序讀、寫等多條總線,在高端的dsp如64x系列,dma也都是edma,在數(shù)據(jù)控制能力上非常強,因此在總線利用率上,和有無cache應(yīng)該不是絕對的聯(lián)系

16樓: >>參與討論
VENTURER
頂一下,
 
17樓: >>參與討論
a12345678
yan2005 的話沒錯,但是有些片面
1。 DSP結(jié)構(gòu)上有很多差異,對于多總線結(jié)構(gòu)(例如6000或64x/64x+),只要DMA和內(nèi)核訪問不同的總線,不會產(chǎn)生沖突;即使產(chǎn)生沖突,只會產(chǎn)生一些延遲。
2。 DMA是DSP內(nèi)部極為重要的一個部件,即使關(guān)閉cache(除64x/64x+以外),DMA仍然能夠比內(nèi)核直接訪問總線速度快,主要原因是兩者可以并行運行,大大減少內(nèi)核等待時間。
    上述內(nèi)容在TI的技術(shù)資料中有很詳細的介紹。
    從實際編程看,建議不要采用直接用內(nèi)核訪問外部存儲器等指令,這會造成系統(tǒng)暫時停頓,效率大大降低。

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
初用DSP的一個存儲空間的問題
怎么從5000轉(zhuǎn)到6000?大家給一個學(xué)習(xí)的方向。
一個編譯錯誤?
DM642的高速信號線走內(nèi)層好還是走外層好?
不能軟件復(fù)位?
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號