嵌入式處理器體系結(jié)構(gòu)
從應(yīng)用對象上加以定義,嵌入式系統(tǒng)是軟件和硬件的綜合體,還可以涵蓋機械等附屬裝置。下面是小編整理的關(guān)于嵌入式處理器體系結(jié)構(gòu),歡迎大家參考!
嵌入式處理器體系結(jié)構(gòu)
這個階段課程淵源已久。上世紀90年代時單片機的大行其道是計算機單芯片化的開端。隨著集成電路技術(shù)的發(fā)展,單芯片上集成的功能越來越強,終于在本世紀初發(fā)展出現(xiàn)了在單芯片上集成復(fù)雜計算機系統(tǒng)的技術(shù)(System-on-Chip SOC)。這使得原本需要獨立運行在單獨的計算機上的復(fù)雜的軟件系統(tǒng)可以運行在(嵌入)小型的設(shè)備上。這就是“嵌入式系統(tǒng)”。這種系統(tǒng)的核心處理器被稱為“嵌入式處理器”。
在講授這部分課程時,講師應(yīng)當讓學(xué)生同時接觸到Intel架構(gòu)以及ARM架構(gòu)的指令。學(xué)生應(yīng)當首先學(xué)習(xí)編寫在操作系統(tǒng)環(huán)境下運行的匯編語言程序,然后在無操作系統(tǒng)環(huán)境下運行的裸板程序。歸根結(jié)底,這個階段課程教給學(xué)員分析和編寫匯編語言程序的一般性方法,而非僅僅針對某個體系結(jié)構(gòu)和匯編器。學(xué)員將學(xué)到超越某個具體指令集的匯編語言能力以及建立在此之上的自底向上的思考整個計算機體系的能力。
傳統(tǒng)誤區(qū)
完全地學(xué)習(xí)處理器體系結(jié)構(gòu)需要具備大量的先修課程(主要是電路類課程),今天的學(xué)生不具備這些先修課程能力。傳統(tǒng)的方式是首先講解處理器體系結(jié)構(gòu),然后講解指令集,再然后講解匯編程序語法,再然后像C語言階段一樣寫一些小程序,再然后...。但是很不幸,教學(xué)實踐表明,由于無法安排足夠的課時,這種方式的教學(xué)甚至無法讓學(xué)員獲得最基本的分析和使用匯編代碼的能力。同時由于處理器能力的增強導(dǎo)致嵌入式軟件體系的復(fù)雜度大大提升的結(jié)果是芯片廠商包辦了底層的諸如Bootloader之類的底層軟件。同時大部分的嵌入式產(chǎn)品都通過運行某種操作系統(tǒng)環(huán)境提供應(yīng)用層支持。直接在無操作系統(tǒng)環(huán)境下編程的程序員崗位在嵌入式行業(yè)中大大減少。這樣一來,講授裸機匯編的傳統(tǒng)課程體系和最新工程實踐嚴重脫節(jié)。
問題分析
問題的根源在于現(xiàn)代程序員對于匯編語言的需求是很獨特的。即使是在操作系統(tǒng)核心級別的代碼中,用匯編語言寫成的代碼總量也不會很多。而當程序員開始和這些代碼打交道時,往往意味著他碰到了關(guān)鍵的核心問題。這個時候問題的核心在于整體的軟硬件結(jié)構(gòu)而不是具體的匯編指令。現(xiàn)代的程序員在處理構(gòu)成系統(tǒng)關(guān)鍵部分的匯編代碼時,并不需要像計算機發(fā)展的早期時的匯編程序員那樣精通某種匯編語言的每一個角落。只要“框架”清晰,指令集的障礙自然可以通過臨時查閱相關(guān)體系結(jié)構(gòu)的手冊邁過。但是框架卻不是臨時能夠建立起來的。
應(yīng)當徹底改變這部分課程以適應(yīng)最新的工程實踐。壓縮繁瑣的匯編指令教學(xué),增加在操作系統(tǒng)環(huán)境下的關(guān)鍵匯編代碼分析和設(shè)計,把原本放在匯編程序上的精力轉(zhuǎn)移到SOC的體系結(jié)構(gòu)和操作系統(tǒng)的底層機制上。
教師應(yīng)當在C、內(nèi)核這幾個課程階段展開多架構(gòu)匯編語言視角的討論。這樣能夠讓學(xué)生在很長的時間跨度上去習(xí)慣用匯編語言的視角分析問題。在本階段的教學(xué)中,首先在Linux環(huán)境下寫匯編,然后才是裸板的匯編。這是因為經(jīng)過前期的學(xué)習(xí),學(xué)生對于Linux和C是比較熟悉的,使用匯編語言和這兩種環(huán)境打交道會降低學(xué)習(xí)的難度梯度。
消除了學(xué)生對指令集的恐懼之后,再展開用匯編和C語言直接操作硬件的SOC課程環(huán)節(jié)。他們將通過這個環(huán)節(jié)了解到基于ARM的SOC體系結(jié)構(gòu)特點,包括總線、地址、外設(shè)以及中斷等等硬件知識。由于已經(jīng)熟悉了匯編語言,所以此時的學(xué)生能夠把精力集中在SOC體系結(jié)構(gòu)本身上。這是組織課程的'一種“超級技巧”,尤其用來解決那些復(fù)雜的課程環(huán)節(jié):盡量避免在課程中同時出現(xiàn)兩個或多個學(xué)生之前并不熟悉的知識體系(在這里就是匯編和SOC芯片)。通過重新規(guī)劃這課程,甚至動用其它環(huán)節(jié)的課程以呼應(yīng)這一階段課程的方式降低學(xué)習(xí)的難度梯度。
嵌入式微處理器(Micro Processor Unit,MPU)
嵌入式微處理器是由通用計算機中的CPU演變而來的。它的特征是具有32位以上的處理器,具有較高的性能,當然其價格也相應(yīng)較高。但與計算機處理器不同的是,在實際嵌入式應(yīng)用中,只保留和嵌入式應(yīng)用緊密相關(guān)的功能硬件,去除其他的冗余功能部分,這樣就以最低的功耗和資源實現(xiàn)嵌入式應(yīng)用的特殊要求。和工業(yè)控制計算機相比,嵌入式微處理器具有體積小、重量輕、成本低、可靠性高的優(yōu)點。目前主要的嵌入式處理器類型有Am186/88、386EX、SC-400、Power PC、68000、MIPS、ARM/ StrongARM系列等。其中Arm/StrongArm是專為手持設(shè)備開發(fā)的嵌入式微處理器,屬于中檔的價位。
Power PC:
由IBM、Apple和Motorola聯(lián)合開發(fā),并制造出基于PowerPC的多處理器計算機。PowerPC架構(gòu)具有可伸縮性好、方便靈活的特點。主要有以下產(chǎn)品使用Power PC微處理器
蘋果公司:Power Macintosh系列、PowerBook系列(1995年以后的產(chǎn)品)、iBook系列、iMac系列(2005年以前的產(chǎn)品)、eMac系列產(chǎn)品。
任天堂:GameCube 和 Wii。
Sony:PlayStation 3。
MIPS:
MIPS是世界上很流行的一種RISC處理器。MIPS的意思“無內(nèi)部互鎖流水級的微處理器”(Microprocessor without interlocked piped stages),其機制是盡量利用軟件辦法避免流水線中的數(shù)據(jù)相關(guān)問題。它最早是在80年代初期由斯坦福(Stanford)大學(xué)Hennessy教授領(lǐng)導(dǎo)的研究小組研制出來的。MIPS公司的R系列就是在此基礎(chǔ)上開發(fā)的RISC工業(yè)產(chǎn)品的微處理器。這些系列產(chǎn)品為很多計算機公司采用構(gòu)成各種工作站和計算機系統(tǒng)。MIPS技術(shù)公司是美國著名的芯片設(shè)計公司,它采用精簡指令系統(tǒng)計算結(jié)構(gòu)(RISC)來設(shè)計芯片。和英特爾采用的復(fù)雜指令系統(tǒng)計算結(jié)構(gòu)(CISC)相比,RISC具有設(shè)計更簡單、設(shè)計周期更短等優(yōu)點,并可以應(yīng)用更多先進的技術(shù),開發(fā)更快的下一代處理器。MIPS是出現(xiàn)最早的商業(yè)RISC架構(gòu)芯片之一,新的架構(gòu)集成了所有原來MIPS指令集,并增加了許多更強大的功能。MIPS處理器是八十年代中期RISC CPU設(shè)計的一大熱點。MIPS是賣的最好的RISC CPU,可以從任何地方,如Sony, Nintendo的游戲機,Cisco的路由器和SGI超級計算機,看見MIPS產(chǎn)品在銷售。目前隨著RISC體系結(jié)構(gòu)遭到x86芯片的競爭,MIPS有可能是起初RISC CPU設(shè)計中唯一的一個在本世紀盈利的。和英特爾相比,MIPS的授權(quán)費用比較低,也就為除英特爾外的大多數(shù)芯片廠商所采用。
【嵌入式處理器體系結(jié)構(gòu)】相關(guān)文章: