
加好友 發(fā)短信
等級(jí):青蜂俠
帖子:1393
積分:14038
威望:0
精華:0
注冊(cè):2010-11-12 11:08:23
|
談DSP,MPU,MCU,CPU的區(qū)別 Post By:2010-11-13 12:21:11
談DSP,MPU,MCU,CPU的區(qū)別
CPU(Centeral Process Unit)這里所說的CPU其實(shí)是一個(gè)狹義的概念,
特別是近些年P(guān)C的普及,所以一般就是指Intel的X86兼容芯片,
內(nèi)部結(jié)構(gòu)大家也應(yīng)該很清楚了,新的只不過是加了些指令集,
超流水線,cache罷了,總的來說是采用封.諾一慢結(jié)構(gòu),是復(fù)雜
指令集。功能嗎就是整數(shù)浮點(diǎn)都很一般,控制也不能達(dá)到MCU的水平。
3.MPU(Micro Process Unit)其實(shí)和CPU差不多,多半是都是CISC的,也有
部分是RISC的,同CPU一樣,只不過好象更泛泛些。MPU相比,MPU適宜于相
同管理這樣的應(yīng)用中,以條件判斷為主的應(yīng)用,以軟件管理的操作系統(tǒng)為核
心的 產(chǎn)品,MPU的設(shè)計(jì)側(cè)重于不妨礙程序的流程,以保證操作系統(tǒng)支
持功能及轉(zhuǎn)移預(yù)測(cè)功能等.而DSP側(cè)重于保證數(shù)據(jù)的順利通行,結(jié)構(gòu)盡
量簡單。
4.DSP都是RISC(Reduce Instruction Set Computer),結(jié)構(gòu)上采用了
增強(qiáng)Harvard,或超級(jí)Harvard結(jié)構(gòu),對(duì)于Pipeline的進(jìn)程要求嚴(yán)格,
并行指令應(yīng)用等。DSP側(cè)重于保證數(shù)據(jù)的順利通行,結(jié)構(gòu)盡量簡單。
特別是盡量少打斷Pipeline。
下面介紹一下DSP的結(jié)構(gòu):
DSP應(yīng)用不同于主流的嵌入式系統(tǒng)應(yīng)用,在那些應(yīng)用中,你可以依賴一個(gè)通用的多優(yōu)
先級(jí)核心(Kernel)的服務(wù)。而在DSP領(lǐng)域,該核心與DSP模塊可能是兩回事,盡管核心都
應(yīng)
該提供CPU資源、中斷處理、通信機(jī)制等。所以,一個(gè)有豐富細(xì)節(jié)的核心和操作系統(tǒng)通常
是不加以考慮的,因?yàn)樗?
加在緊湊的DSP上實(shí)在勉強(qiáng)。開發(fā)者常常自已設(shè)計(jì)系統(tǒng)軟件框架,作為目標(biāo)代碼的一部分
一起運(yùn)行。開發(fā)者甚至沒有意識(shí)到自已編寫了一個(gè)小型操作系統(tǒng)。
可見,這樣的核心/操作系統(tǒng)隨著應(yīng)用的不同是多種多樣的。也需要有各種核心,支
持從簡單到復(fù)雜的應(yīng)用。至于是自已寫核心或者從別的專業(yè)公司獲得幫助,那是需要在
效
率、緊湊、靈活、擴(kuò)展性、安全等因素進(jìn)行折衷考慮的。
2.1 核心的種類
一般來說,框架從簡單到復(fù)雜分成:單任務(wù)和一個(gè)中斷服務(wù)程序(ISR)、多個(gè)互相通
信的任務(wù)、多個(gè)分時(shí)循環(huán)的線程、多優(yōu)先級(jí)的結(jié)構(gòu)。
.單任務(wù)和中斷服務(wù)流程ISR(基本核心結(jié)構(gòu))
單任務(wù)處理一個(gè)數(shù)據(jù)緩沖區(qū),數(shù)據(jù)由一個(gè)ISR從特定的硬件取得(如AD器件)。系統(tǒng)首
先需要初始化,使能中斷,建立外設(shè)的正確狀態(tài)。ISR的編程則應(yīng)該保護(hù)現(xiàn)場(chǎng),ISR的錯(cuò)
誤
是調(diào)試很難檢查的。通常一次ISR控制一個(gè)數(shù)據(jù),而主任務(wù)需要一個(gè)數(shù)據(jù)緩沖區(qū)。解決辦
法是雙緩沖結(jié)構(gòu)。主程序
于相同管理這樣的應(yīng)用中,以條件判斷為主的應(yīng)用,以軟件管nt
的常見流程是:等待ISR填滿緩沖區(qū);處理緩沖區(qū)數(shù)據(jù),釋放已經(jīng)處理完的緩沖區(qū)。為了
保證實(shí)時(shí)性,系統(tǒng)至少是雙緩沖,因此主程序處理一個(gè)緩沖區(qū)時(shí),ISR正在向另一個(gè)緩沖
區(qū)送數(shù)。這種情況下,不需要特別的同步機(jī)制,緩沖區(qū)的滿就是同步機(jī)制,整個(gè)系統(tǒng)除
了
主任務(wù)外就無所事事了,
主任務(wù)則占用一切DSP資源。故此模式效率非常高。
.通用的任務(wù)
系統(tǒng)有一個(gè)核心,它可以管理多任務(wù),允許向系統(tǒng)列表加任務(wù)來擴(kuò)展系統(tǒng),占用如何擴(kuò)
展
則與應(yīng)用有關(guān)。首先以一個(gè)自動(dòng)應(yīng)答機(jī)來說明這種擴(kuò)展,ISR是一個(gè),而多個(gè)任務(wù)串行執(zhí)
行:音調(diào)檢查、語音識(shí)別、話音壓縮等。第一個(gè)任務(wù)控制CPU的緩沖區(qū),執(zhí)行完后主動(dòng)徹
底放棄控制,移交下一個(gè)
任務(wù)。這種安排使得任務(wù)切換開銷很小,因?yàn)槟阃耆狼袚Q時(shí),哪些狀態(tài)需要保存而
哪
些不需要。這種方式的毛病就是任何一個(gè)任務(wù)失控,整個(gè)系統(tǒng)就崩潰了,因?yàn)楹诵臎]有
辦
法取得對(duì)CPU的控制。
.多個(gè)執(zhí)行線程以循環(huán)(round-robin)模式切換
對(duì)前一種結(jié)構(gòu)的改進(jìn)是使用一種更安全的任務(wù)安排,使各個(gè)任務(wù)的依賴關(guān)系弱化。
這
需要一個(gè)基于時(shí)間段的任務(wù)切換器,在當(dāng)前任務(wù)用完了規(guī)定時(shí)間片后將控制權(quán)移交下一
個(gè)
任務(wù)。在循環(huán)結(jié)構(gòu)中,各個(gè)任務(wù)是平等的機(jī)會(huì)。這樣CPU不會(huì)在為一個(gè)壞的任務(wù)而癱瘓,
當(dāng)然,安全的代價(jià)是你
無法準(zhǔn)確知道任務(wù)切換在什么時(shí)候發(fā)生,于是某個(gè)線程進(jìn)入時(shí)的現(xiàn)場(chǎng)保護(hù)必須保護(hù)該線
程
要使用的所有寄存器,并且在退出線程時(shí)全部恢復(fù)。
.循環(huán)(round-robin)線程與協(xié)作序列的組合
n)線程與協(xié)作序列的組合中,以條件判斷為主的應(yīng)用,以軟件管nt
當(dāng)處理一個(gè)較復(fù)雜但每個(gè)通路的處理是相同的時(shí)候,如語音信箱,無線基站,PXB等
。可以將多個(gè)通路按照通用的多任務(wù)方式處理,而每個(gè)任務(wù)內(nèi)以循環(huán)線程組成,每個(gè)任
務(wù)
是安全的,也就保證了整個(gè)系統(tǒng)的安全的。
.通用的解決:多優(yōu)先組結(jié)構(gòu)
這是靈活性最強(qiáng)的方式,廣泛應(yīng)用于浮點(diǎn)和定點(diǎn)DSP系統(tǒng)。多優(yōu)先級(jí)可以認(rèn)為是循環(huán)
方式的一種增強(qiáng)版,在資源可用時(shí),高優(yōu)先級(jí)的線程會(huì)被執(zhí)行。多優(yōu)先級(jí)核心應(yīng)該小心
使
用,因?yàn)楹茈y確定實(shí)時(shí)執(zhí)行序列,特別是如果還允許動(dòng)態(tài)改變優(yōu)先級(jí)的話,調(diào)試更加困
難
。而且核心本身占用的C
PU資源對(duì)定點(diǎn)DSP而言是相當(dāng)大的開銷。
除了這些缺點(diǎn),本結(jié)構(gòu)是某些應(yīng)用的理想選擇。比如,系統(tǒng)中的任務(wù)有的是時(shí)間苛
刻
的(高優(yōu)先級(jí)),有些是可以后臺(tái)運(yùn)行的(低優(yōu)先級(jí)),比如在蜂房電話中,DSP要迅速及時(shí)
處理帶內(nèi)信號(hào)信令,對(duì)用戶的按鍵則可以較慢地響應(yīng)。隨著DSP和MCU的功能上進(jìn)一步集
成
,這種應(yīng)用會(huì)越來越多
。
2.2 其他性能綜述
.現(xiàn)場(chǎng)保護(hù)
任務(wù)切換中的現(xiàn)場(chǎng)保護(hù)(上下文保護(hù))是影響性能的一個(gè)重要因素,它與中斷響應(yīng)時(shí)
延
是矛盾的,在任務(wù)列表被訪問和管理期間,中斷通常需要禁止。所以,任務(wù)機(jī)制越復(fù)雜
,
中斷需要的時(shí)延越大。注意,在DSP領(lǐng)域,實(shí)時(shí)中斷常處理幾十kHz的信號(hào),對(duì)中斷響應(yīng)
需
要的時(shí)延是很敏感的。
.實(shí)時(shí)與非實(shí)時(shí)
.實(shí)時(shí)與非實(shí)時(shí)obin)線程與協(xié)作序列的組合中,以條件判斷為主的應(yīng)用,以軟件管
nt
對(duì)于基于核心的系統(tǒng)進(jìn)行調(diào)試,將系統(tǒng)作為一個(gè)整體來調(diào)試需要滿足兩個(gè)基本要求
:
需要系統(tǒng)全速運(yùn)行時(shí)可以觀察和管理系統(tǒng);需要知道每次觀察時(shí)影響的上下文。為達(dá)到
此
要求系統(tǒng)必須增加額外開銷。
DSP設(shè)計(jì)者并非處處需要實(shí)時(shí)調(diào)試工具,模塊的很多部分可以單步調(diào)試。但是,大部
分問題(bug)都是整個(gè)系統(tǒng)全速運(yùn)行時(shí)暴露出來的。Go-DSP的調(diào)試工具Code Composer的
優(yōu)
越是在系統(tǒng)全速運(yùn)行時(shí)仍然可以觀察和修改狀態(tài)。實(shí)時(shí)調(diào)試是需要代價(jià)的,需要有Debug
Agent伴隨應(yīng)用代碼,占用了CPU部分資源,當(dāng)然在最終產(chǎn)品上,Debug Agent是完全去掉
的。
3 實(shí)時(shí)操作系統(tǒng)RTOS與DSP應(yīng)用的結(jié)合
3.1 用于嵌入式微處理器的傳統(tǒng)的實(shí)時(shí)多任務(wù)操作系統(tǒng)
目前的趨勢(shì)是一個(gè)微處理器MCU從單一任務(wù)結(jié)構(gòu)變成多任務(wù)的結(jié)構(gòu),初期軟件設(shè)計(jì)是
在應(yīng)用中增加一個(gè)任務(wù)調(diào)用循環(huán)作為主程序,隨著軟件規(guī)模上升和對(duì)實(shí)時(shí)性要求的提高
,
RTOS作為一種軟件開發(fā)平臺(tái),成為嵌入式系統(tǒng)領(lǐng)域的主流。
RTOS是一段MCU啟動(dòng)后首先執(zhí)行的背景程序,貫穿系統(tǒng)運(yùn)行的始終。RTOS的引入會(huì)增
加系統(tǒng)的代碼存儲(chǔ)器占用和運(yùn)行時(shí)間。RTOS主要的性能指標(biāo)是存儲(chǔ)器占用、最小任務(wù)切
換
時(shí)間、最大中斷延時(shí)。這三個(gè)指標(biāo)與RTOS自身的設(shè)計(jì)、微處理器的設(shè)計(jì)、C語言編譯器的
性能有關(guān)。
3.2 實(shí)時(shí)操作系統(tǒng)RTOS與DSP結(jié)合
DSP軟件開發(fā)越來越復(fù)雜,開發(fā)者會(huì)發(fā)現(xiàn)自已在兩個(gè)矛盾的方向努力,一方面,設(shè)計(jì)
者必須對(duì)底層代碼優(yōu)化以滿足實(shí)時(shí)應(yīng)用,同時(shí)由于系統(tǒng)越來越復(fù)雜,需要高層次的設(shè)計(jì)
手
段,包括使用庫和第三方軟件包。
對(duì)DSP應(yīng)用提供RTOS支持,是DSP的性能和功能日益增加的必然結(jié)果。DSP正在從高速
數(shù)學(xué)引擎轉(zhuǎn)變?yōu)榘髁骺刂破骶哂械奶匦缘男酒虼诵枰狣SP設(shè)計(jì)人員集中精力解決
應(yīng)用問題,而不是重復(fù)實(shí)施系統(tǒng)級(jí)功能。
DSP系統(tǒng)一般是兩個(gè)極端,簡單的單片DSP設(shè)計(jì),用于Modem或峰房電話等。另一種是
高性能的多處理器DSP系統(tǒng),用于大批輸入流的實(shí)時(shí)處理。對(duì)于高檔多處理器DSP系統(tǒng)設(shè)
計(jì)
,有四個(gè)可能影響性能的主要因素:通過系統(tǒng)的數(shù)據(jù)流(流水線或星形);主系統(tǒng)總線(VM
E或PCI總線);RTOS的性
能,多DSP系統(tǒng)中,RTOS在每個(gè)DSP上運(yùn)行于嵌入式模式,RTOS提供所需要的數(shù)據(jù)流和處
理
性能,同時(shí)又允許主處理器繼續(xù)在其固有模式(Win 95/NT/Solaris)中操縱整個(gè)系統(tǒng);處
理來自A/D陣列的輸入流的接口設(shè)計(jì),最好方法是使A/D轉(zhuǎn)換子系統(tǒng)與系統(tǒng)其余部分有效
隔
離。
選擇RTOS的關(guān)鍵考慮因素:
.保證其可靠性足以應(yīng)付DSP負(fù)載。
.支持與NT或Unix主系統(tǒng)的互操作性。
。度朧 操作核心要足夠小,?應(yīng)于有限的DSP存儲(chǔ)空間。
.有面向DSP的高級(jí)指令集,便于迅速編程。
.必要時(shí)可以對(duì)低級(jí)程序碼手動(dòng)優(yōu)化。
嵌入式RTOS的主要功能是為DSP之間的實(shí)時(shí)協(xié)調(diào)與通信提供一個(gè)標(biāo)準(zhǔn)化的環(huán)境,包括
中斷處理和存儲(chǔ)區(qū)分配等,以及和主機(jī)OS握手的所有功能。RTOS運(yùn)行于DSP之上,所以必
須很小,還應(yīng)該能進(jìn)行分布操作和DSP任務(wù)的并行編程。RTOS的結(jié)構(gòu)應(yīng)該使程序員很容易
把單DSP任務(wù)變成分裂模式
把單DSP任務(wù)變成分裂模式 足實(shí)時(shí)應(yīng)用,同時(shí)由于系統(tǒng)?來越復(fù)雜,需要高層次的設(shè)計(jì)
手t
,即能運(yùn)行于多個(gè)DSP。RTOS應(yīng)該能支持順暢地把任務(wù)分?jǐn)偂C嫦駾SP的嵌入式RTOS的主
要
功能是:多任務(wù);動(dòng)態(tài)進(jìn)程;同步消息傳遞;信號(hào)機(jī);時(shí)鐘管理;等等。總之,目標(biāo)是
最
小的運(yùn)行開銷和最大的硬件控制能力。
作為Eonic公司的Virtuoso,可以用于浮點(diǎn)和定點(diǎn)DSP。用于TI
C4x和ADSP1060的版本的差別是有特殊的通信端口,便于多處理器系統(tǒng)的硬件開發(fā)。通過
提供透明的多處理,使軟件開發(fā)也容易。Virtuoso對(duì)于單DSP的應(yīng)用也提供了很多優(yōu)越性
,從一開始開發(fā),你就有一個(gè)完全的多任務(wù)環(huán)境,這就意味著你可以將應(yīng)用分成幾個(gè)小
的
任務(wù),更便于編程。有一
套完整的工具用于任務(wù)間通信,任務(wù)同步,管理存儲(chǔ)區(qū)和定時(shí)器,中斷管理。提供了一
個(gè)
ISR1層支持嵌套中斷。而TI缺省的ISR0層的中斷服務(wù)中是不允許被中斷的。如果系統(tǒng)中
有
突發(fā)性的中斷發(fā)生,就有可能丟中斷。Virtuoso的ISR1層提供了可嵌套的中斷機(jī)制,且
響
應(yīng)速度與ISR0相當(dāng)。多
任務(wù)機(jī)制使設(shè)計(jì)人員能夠充分發(fā)揮DSP的能力,因?yàn)榭梢允笵SP是100%的忙碌,否則DSP可
能為了等待某個(gè)事件發(fā)生而處于空閑。特別是采用TMS320C6201,不使用RTOS是無法充分
發(fā)揮其性能的。Virtuoso的另一個(gè)優(yōu)點(diǎn)是可移植性,編寫的C代碼可以使用到Virtuoso支
持的任何DSP。
用于DSP的RTOS對(duì)加快開發(fā)進(jìn)度、提供高級(jí)功能調(diào)用和標(biāo)準(zhǔn)的I/O庫是非常有用的。
許
多RTOS支持多任務(wù)并包含DSP庫,使用它有助于可移植性和可維護(hù)性。另一方面,RTOS要
占用處理器的開銷,耗費(fèi)本來可用于信號(hào)處理的DSP周期。如果是對(duì)于單處理器,支持多
任務(wù)的開銷可能會(huì)很可觀 。另外,成本也是要考慮的因素。
|
|