




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1第一章嵌入式系統概況
21.1、嵌入式系統的定義1.概述嵌入式系統是將電腦硬體和軟體結合起來構成的一個專門的裝置,這個裝置可以完成一些特定的功能和任務,能夠在沒有人工干預的情況下獨立地進行即時監測和控制。另外,由於被嵌入對象的體系結構、應用環境不同,所以各個嵌入式系統也可以由各種不同的結構組成。3
嵌入式系統已有近40年的歷史,它是以硬體和軟體交替雙螺旋式發展的。1971年第一款微處理器是Intel的400420世紀80年代初,Intel研製成功了MCS8051系列單片機。1981年世界上第一個商業嵌入式即時內核(VTRX32)誕生(包含許多操作系統的特徵,如任務管理、任務間通信、同步與互斥、中斷支持、記憶體管理等功能。)2.發展歷史4IEEE(國際電氣和電子工程師協會)定義原文:devicesusedtocontrol,monitor,orassisttheoperationofequipment,machineryorplants.
嵌入式系統是“用於控制、監視或者輔助操作機器和設備的裝置”。可以看出,此定義是從應用上考慮的,嵌入式系統是軟體和硬體的綜合體,還可以涵蓋機電等附屬裝置。3.IEEE定義54.一般定義
“以應用為中心,以電腦技術為基礎,軟體、硬體可裁減,功能、可靠性、成本、體積、功耗嚴格要求的專用電腦系統。嵌入式系統本身是一個相對模糊的定義。一個手持的MP3、MP4和一個PC104小型工控機都可以認為是嵌入式系統。總之,嵌入式系統採用“量體裁衣”的方式把所需的功能嵌入到各種應用系統中。61.2、嵌入式技術的應用領域及發展趨勢1.2.1嵌入式技術的現狀1.2.2嵌入式技術的應用領域1.2.3嵌入式技術的發展趨勢71.2.1嵌入式技術的現狀
隨著資訊化、智能化、網路化的發展,嵌入式技術也將獲得廣闊和發展空間。美國著名學者尼葛洛龐帝1999年1月訪華時預言,4至5年後嵌入式智能工具將是PC和Internet網路之後最偉大的發明。在硬體方面,市場上不僅有各大公司生產的各種微處理器晶片,還有用於學習和進行研發的各種配套的軟體開發包和開發工具。目前,嵌入式底層系統和硬體平臺已經相對比較成熟,實現各種功能的晶片應有盡有,巨大的市場需求給我們提供了學習嵌入式技術的機遇。81.2.1嵌入式技術的現狀
在軟體方面,也有相當多的成熟軟體系統。國外的嵌入式操作系統有WindowsCE、Linux、ucOS、VxWorks等。我國自主開發的嵌入式系統軟體產品,如科銀京城(CoreTek)公司的DeltaSystem開發平臺,中科院推出的Hopen嵌入式操作系統。嵌入式系統技術的發展,大致經歷了以下四個階段:無操作系統階段,如單片機;簡單操作系統階段,如PowerPC;即時操作系統階段,如DSP;面向Internet階段。91.2.2嵌入式技術的應用領域
嵌入式技術可應用在:工業控制;交通管理;資訊家電;家庭智能管理;網路及電子商務;環境監測;機器人等領域。在工業和服務領域中,大量嵌入式技術也已經應用於工業控制、數控機床、智能工具、工業機器人、服務機器人等各個行業,正在逐漸改變著傳統的工業生產和服務方式。例如,飛機的電子設備、城市地鐵購票系統等都可應用嵌入式系統來實現。嵌入式系統的應用領域如下圖所示。10嵌入式系統的應用領域示意圖工控設備嵌入式應用資訊家電智能玩具軍事電子通信設備移動存貯智能儀錶汽車電子網路設備消費電子軍事國防電子商務工業控制網路11一些典型的嵌入式系統應用實例goReaderInterneteBookSamsungAnyWebInternetScreenPhoneeRemoteIntelligentHomeControllerTektronixTDS7000DigitalOscilloscopesNixvueDigitalAlbumDigitalPhotoAlbum123.其他方面的應用舉例ARM技術的IP(知識產權)在許多領域已經取得了很大的成功。比如,目前絕大部分的無線設備(如手機等)和PDA之類的無線設備中都採用了嵌入式技術。在數字音頻播放器、數字機頂盒和遊戲機中也得到了更廣泛的應用。典型的嵌入式系統應用實例如下圖所示:13典型的嵌入式系統應用實例14嵌入式系統的具體應用家用方面:數字電視、資訊家電、智能玩具、手持通訊、存儲設備的核心。15嵌入式系統的具體應用
家庭智能管理系統:社區建築的水、電、煤氣表的遠程自動抄表,安全防火、防盜系統,遠程點菜器等。16嵌入式系統的具體應用
社會發展方面:嵌入式Internet應用17嵌入式系統的具體應用汽車電子:汽車電子產品(18個嵌入式控制模組)——CAN匯流排網路。VOLVOS80汽車的CAN匯流排網路18嵌入式系統的具體應用
智能玩具與機器人19嵌入式系統的具體應用
智能機器魚技術研究20嵌入式系統的具體應用仿人型機器人HumanoidbyUniversityof HumanoidbyBeijingDefenseTechnologyin1999 InstituteofTechnologyin2002
21基於WinCE的移動機器人平臺22嵌入式系統的具體應用軍事偵察阿富汗參加反恐作戰的“赫耳墨斯”價值4萬美元,可攜帶2架攝像機,發揮了很好作用。23嵌入式系統的具體應用反恐防暴2002年11月28日,以色列一選舉投票點,發生槍擊事件,造成至少7人死亡,數十人受傷。以警方用機器人在檢查一具巴勒斯坦槍手的屍體。24嵌入式系統的具體應用產品介紹-掌上電腦CPU:intelPXA255400MHzFLASH:64MSDRAM:64MBluetouth影音CompactFlash電源管理紅外線介面25嵌入式系統的具體應用產品介紹-基於RTLinux的仿人機器人
高48cm
重:6kg
靈活性:20DOF操作系統:RT-Linux
介面形式:USB1.0(12Mbps)回應週期:1ms
能源:DC24Vx6.2A(150W)製造:富士通
26嵌入式系統的具體應用產品介紹-工程機械智能監控系統27嵌入式系統的具體應用產品介紹-基於VXworks的火星探路者28結論:
事實上,嵌入式技術無外不在,電腦應用技術也開始進入一個被稱為後PC技術的春天。291.2.3嵌入式技術的發展趨勢1)目前的發展
經濟性電腦要很便宜,讓更多的人能買得起;小型化(筆記本、PDA)人們攜帶方便;可靠性(汽車VCD,跳動問題);穩定性能夠在一般環境條件下或者是苛刻的環境條件下運行;高速度(飛機刹車系統)即時性能夠迅速地完成數據計算或數據傳輸;智能性(知識推理、模糊查詢、識別、感知運動)實用性使人們用起來更習慣,對人們更有使價值。302)未來發展趨勢支持開發的工具和操作系統聯網成為必然趨勢精簡系統內核、演算法,設備實現小尺寸、微功耗和低成本提供精巧的多媒體人機介面31(1)支持開發的工具和操作系統軟體系統開發工具和軟體包採用即時多任務編程技術交叉開發工具技術簡化應用程式設計保障軟體品質縮短開發週期32(2)聯網成為必然趨勢
為適應嵌入式分佈處理結構和應用上網需求,要求配備標準的一種或多種網路通信介面。針對外部聯網要求,嵌入設備必需配有通信介面,相應需要TCP/IP協議簇軟體支持。由於家用電器相互關聯(如防盜報警、燈光能源控制、影視設備和資訊終端交換資訊)及實驗現場儀器的協調工作等要求,新一代嵌入式設備還需具備IEEE1394、USB、CAN、Bluetooth或IrDA通信介面,同時也需要提供相應的通信組網協議軟體和物理層驅動軟體。為了支持應用軟體的特定編程模式,如Web或無線Web編程模式,還需要相應的流覽器,如HTML、WML等。33(3)精簡系統內核、演算法,設備實現小尺寸、微功耗和低成本
為滿足這種特性,要求嵌入式產品設計者相應降低處理器的性能,限制記憶體容量和複用介面晶片。這就相應提高了對嵌入式軟體設計技術要求。34(4)提供精巧的多媒體人機介面
嵌入式設備之所以為億萬用戶樂於接受,重要因素之一是它們與使用者之間的親和利,自然的人機交互介面,如司機操縱高度自動化的汽車主要還是通過習慣的方向盤、腳踏板和操縱杆。人們與資訊終端交互要求以GUI螢幕為中心的多媒體介面。手寫文字輸入、語音撥號上網、收發電子郵件以及彩色圖形、圖像已取得初步成效。目前一些先進的PDA在顯示幕幕上已實現漢字寫入、短消息語音發佈,但離掌式語言、同聲翻譯還有很大距離。351.3嵌入式系統組成簡介1.3.1嵌入式系統的重要特徵1.3.2典型嵌式系統的硬體組成1.3.3嵌入式系統的軟體組成36嵌入式系統的基本組成37嵌入式系統的架構圖處理器記憶體輸入輸出操作系統應用程式軟體結構硬體結構
應用程式即時操作系統(RTOS)輸入輸出介面處理器/ARM核MMU/CacheSOC/SOPCUSBGPIOIISLCDUART和IrDAADC/DACFPGA/CPLDDSP/浮點運算協處理器DMA電源管理人機交互介面LCD/觸摸屏、鍵盤、滑鼠設備驅動程式、HAL、BSP檔系統/圖形用戶應用程式介面驅動層OS層應用層軟件以太網看門狗及複位電路Timer/RTCCANFlashSDRAMSRAM記憶體硬件39軟體硬體基本要素硬體嵌入式處理器各種類型記憶體模擬電路及電源介面控制器及接插件軟體即時操作系統(RTOS)板級支持包(BSP)設備驅動(DeviceDriver)協議棧(ProtocolStack)應用程式(Application)體系結構API設備管理中斷驅動程式串口驅動程式鍵盤驅動程式串口卡A硬體抽象串口卡B硬體抽象串口1串口2串口4串口2串口3串口1………………驅動邏輯層硬體抽象層設備設備管理層API層為了有效組織和管理各種不同的設備,可以採用分層的思想,把I/O系統從上到下分為四層,分別為API、設備管理、驅動邏輯和硬體抽象。41
嵌入式系統的硬體是以嵌入式處理器為核心,配置必要的週邊介面部件。在嵌入式系統設計中,應盡可能選擇適用於系統功能介面的SoC/SOPC晶片,以最少的週邊部件構成一個應用系統,滿足嵌入式系統的特殊要求。一般包括有:嵌入式處理器;記憶體;I/O系統和外設。1)嵌入式系統硬體系統42
包括:操作系統、應用軟體、驅動層軟體。
(1)操作系統功能簡介操作系統層包含嵌入式內核、嵌入式TCP/IP網路系統、嵌入式檔系統、嵌入式GUI系統和電源管理等部分。其中嵌入式內核是基礎和必備的部分,其他部分要根據嵌入式系統的需要來確定。作為嵌入式系統軟硬體資源的管理者,負責系統軟硬體資源的調度與分配,保證系統資源被有效合理使用。嵌入式操作系統掩蓋了底層硬體的複雜性,提高了軟體的開發效率和可維護性。2)嵌入式系統的軟體系統
嵌入式操作系統非即時操作系統即時操作系統硬實時操作系統軟即時操作系統(1)嵌入式操作系統44(2)應用程式
應用層軟體主要是由多個相對獨立的應用任務組成,每個應用任務完成特定的工作,如I/O任務、計算的任務和通信的任務等,一般由操作系統調度各個任務。應用層要針對不同的應用而編寫的程式。
45(3)中間層(驅動層軟體)
使用任何外設都需要有驅動程式的支持,驅動程式不僅要實現設備的基本功能函數,如初始化、中斷回應、發送、接收等,而且還要提供完備的錯誤處理函數。中間層為上層軟體提供了設備的操作介面。上層程式只需調用驅動程式提供的介面,而不用理會設備具體的內部操作。驅動層軟體(中間層)將系統軟體與底層硬體部分進行了隔離,使得系統的底層設備驅動程式與硬體無關。具體包括硬體抽象層HAL和板級支持包BSP。46
HAL是位於操作系統內核與硬體電路之間的介面層,其目的是將硬體抽象化,可以通過程式來控制所有硬體電路,如CPU、I/O、記憶體等的操作,從而使設備驅動程式與硬體無關,提高了系統的可移植性。在定義抽象層時需要根據系統需求規定統一的軟硬體介面標準。在功能上應實現相關硬體的初始化、數據的I/O操作、硬體設備的配置操作等功能。引入抽象層還可以對系統的軟硬體進行並行測試。1)硬體抽象層HAL47硬體抽象層是硬體功能模組的集合,是對硬體設備功能的第一層抽象,實現基本的IO操作。所關心的是如何實現硬體功能的軟體介面,而不是設備的管理邏輯。每個硬體可能有多個端口(設備),對應的硬體抽象層是對這些端口(設備)操作的基本抽象,為驅動程式管理這些設備提供介面。上層驅動程式在不需要瞭解具體設備硬體資訊的情況下,就可以操作這些設備。
482)板級支持包BSP
BSP主要是為驅動程式提供訪問硬體設備寄存器的函數包,從而實現對操作系統的支持。不同操作系統有不同的板級支持包。具體完成如下二方面的功能:①在系統啟動時,完成對硬體的初始化。如對設備的中斷、CPU的寄存器和記憶體區域的分配等進行操作。②為驅動程式提供訪問硬體的手段。如系統是統一編址的,則可以直接在驅動程式中用C語言的函數進行訪問。如是單獨編址的,只能用組合語言編寫函數進行訪問。BSP就是為上層的驅動程式提供訪問硬體設備寄存器的函數包。49BSP小結
當前,即時操作系統的提供商基本上都要提供性能穩定可靠、可移植性好、可配置性好、規範化的板級支持包。作為嵌入式系統的開發者,只需在原來板級支持包基礎上作一定改動,就可以適應性的目標硬體環境。50嵌入式系統組成原理架構511.3.1嵌入式系統的重要特徵和特點
1)嵌入式系統的重要特徵(1)系統內核小
嵌入式系統是將先進的電腦技術、半導體技術和電子技術與各個行業的具體應用相結合後的產物。這一點就決定了它必然是一個技術密集、資金密集、高度分散、不斷創新的知識集成系統。由於嵌入式系統一般是應用於小型電子裝置的,系統資源相對有限,所以內核較之傳統的操作系統要小得多。比如ENEA公司的OS分佈式系統,內核只有5KB,而Windows的內核則要大得多。52(2)專用性強
嵌入式CPU大多工作在為特定用戶群設計的系統中,具有低功耗、體積小、集成度高等特點。能夠把通用CPU中由板卡完成的任務集成在晶片內部,有利於嵌入式系統設計趨於小型化。移動能力大大增強,跟網路的耦合也越來越緊密。嵌入式系統的個性化很強,其中的軟體系統和硬體的結合非常緊密。同時針對不同的任務,往往需要對系統進行較大更改,程式的編譯下載要和系統相結合,這種修改和通用軟體的“升級”是完全不同的概念。53(3)系統精簡和高即時性OS
嵌入式系統一般系統軟體和應用軟體的區分不明顯,這樣既利於控制系統成本,又利於實現系統安全。這是嵌入式軟體的基本要求,而且軟體要求固態存儲,以提高速度。軟體代碼要求高質量和高可靠性、即時性。很多嵌入式系統都需要不斷地對所處環境的變化做出反應,而且要即時地得出計算結果,不能延遲。54(4)高效率地設計
嵌入式系統的硬體和軟體都必須高效率地設計,量體裁衣、去除冗餘,力爭在同樣的矽片面積上實現更高的性能,這樣才能在具體應用中對處理器的選擇更具有競爭力。
(5)創新性和有效性嵌入式系統和具體應用有機地結合在一起,它的升級換代也是和具體產品同步進行,因此嵌入式系統產品一旦進入市場,具有較長的生命週期。
為了提高執行速度和系統可靠性,嵌入式系統中的軟體一般都固化在記憶體晶片或微處理器中,而不是存貯於磁片等載體中。(6)嵌入式軟體開發走向標準化
為了合理地調度多任務、利用系統資源、系統函數以及和專家庫函數介面,用戶必須自行選配RTOS開發平臺,這樣才能保證程式執行的即時性、可靠性,並減少開發時間,保障軟體品質。
(7)嵌入式系統開發需要開發工具和環境由於其本身不具備自主開發能力,即使設計通用電腦上的軟硬體設備以及各種完成以後,用戶通常也是不能對其中的程式功能進行修改,必須有一套開發工具和環境才能進行開發。開發時往往有宿主機和目標機的概念,宿主機用於程式的開發,目標機作為最後的執行機,開發時需要交替結合進行。交叉式的開發環境示意圖
嵌入式系統開發所需的開發工具和環境572)嵌入式系統的特點
採用32位RISC嵌入式微處理器和即時操作系統組成的嵌入式控制系統,與傳統基於單片機的控制系統和基於PC的控制方式相比,具有以下突出優點:性能方面:採用32位RISC結構微處理器,主頻從30MHz到1200MHz以上,接近PC機的水準,但體積更小,能夠真正地“嵌入”到設備中。58嵌入式系統的特點即時性方面:嵌入式機控制器內嵌即時操作系統(RTOS),能夠完全保證控制系統的強即時性。人機交互方面:嵌入式控制器可支持大螢幕的液晶顯示器,提供功能強大的圖形用戶介面,這些方面的性能也接近於PC,優於單片機。系統升級方面:嵌入式控制器可為控制系統專門設計,其功能專一,成本較低,而且開放的用戶程式介面(API)保證了系統能夠快速升級和更新。593)嵌入式系統與單片機的區別
嵌入式系統
單片機系統目前嵌入式系統的主流是以32位嵌入式微處理器為核心的硬體設計和基於即時操作系統(RTOS)的軟體設計。由於有了OS可以執行多任務調度,支持網路協議TCP/IP,所以嵌入式系統可以比普通單片機系統更適合完成複雜的任務。60單片機系統多為4位、8位、16位機,它們不適合運行操作系統,難以進行複雜的運算及處理功能;嵌入式系統強調基於平臺的設計、軟硬體協同設計。單片機大多採用軟硬體流水設計;嵌入式系統設計的核心是軟體設計(占70%左右的工作量),單片機系統軟硬體設計所占比例基本相同。單片機的開發通常是由一個電子工程師完成電路設計和軟體編程開發工作;嵌入式系統不僅硬體系統的開發比單片機複雜,更最要的是在系統中採用了操作系統,其應用軟體的開發轉變為使用操作系統標準介面的電腦工程領域的應用軟體開發。614)嵌入式系統與PC之間的區別嵌入式系統一般是專用系統,而PC是通用計算平臺;嵌入式系統的資源比PC少得多;軟體故障帶來的後果比PC機大得多;嵌入式系統一般採用即時操作系統;有成本、功耗的要求;得到多種微處理體系的支持並需要專用的開發工具。62嵌入式系統與PC之間的區別
通用電腦系統要求的是高速、海量的數值運算。在技術發展上追求匯流排速度不斷提升、存儲容量不斷擴大。而嵌入式系統要求的是對象體系的智能化控制能力,在技術發展方向追求對特定對象系統的嵌入性、專用性和智能化。其計算能力和數據存儲能力都受到資源的限制。外形、尺寸、功能和功耗都受限於應用對象的設計要求。631.3.2典型嵌式系統的硬體組成
嵌入式系統基本硬體架構主要包括有處理器、週邊電路及介面和外部設備三大部分。其中週邊電路一般包括有時鐘、複位電路、程式記憶體、數據記憶體和電源模組等部件組成。外部設備一般應配有USB、顯示器、鍵盤和其他等設備及介面電路。在一片嵌入式微處理器基礎上增加電源電路、時鐘電路和記憶體電路,就構成了一個嵌入式核心控制模組。其中操作系統和應用程式都可以固化在ROM中。如下圖所示:典型嵌式系統的硬體組成MPU微處理器電源模組時鐘複位FlashRAMROMUSBLCDKeyboard週邊電路Other外設651)嵌入式處理器的特點
核心是嵌入式處理器,具備以下4個特點:(1)對即時多任務有很強的支持能力,從而使內部的代碼和即時內核的執行時間減少到最低限度。(2)具有功能很強的存儲區保護功能。這是由於嵌入式系統的軟體結構已模組化,而為了避免在軟體模組之間出現錯誤的交叉作用,需要設計強大的存儲區保護功能,同時也有利於軟體診斷。66嵌入式處理器的特點(3)可擴展的處理器結構,以能最迅速地開發出滿足應用的最高性能的嵌入式微處理器。(4)嵌入式微處理器必須功耗很低,尤其是用於可攜式的無線及移動的計算和通信設備中,靠電池供電的嵌入式系統更是如此,如需要功耗只有mW或W級。2)嵌入式處理器的分類68(1)嵌入式微控制器MCU
嵌入式MCU的典型代表是單片機,這種8位的電子器件目前在嵌入式設備中仍然有著極其廣泛的應用。目前通常使用單片機晶片內部集成FlashROM、RAM、匯流排、匯流排邏輯、定時/計數器、看門狗、I/O、串行口、脈寬調製輸出等必要功能和外設。
MCU的最大特點是單片化,體積大大減小,從而使功耗和成本下降、可靠性提高。微控制器目前在工業中的應用還是很多,由於適合於控制,因此稱為微控制器。嵌入式微控制器圖
70(2)嵌入式DSP處理器DSP(DigitalSignalProcessor)數字信號處理器
20世紀60年代發展起來的一門新興技術,所涉及的領域非常廣泛。如在數學領域中,微積分、概率統計、隨機過程、數字分析等都是數字信號處理的基礎工具。它與網路理論、信號與系統、控制理論、通信理論、故障診斷等密切相關。近年來,人工智慧、模式識別、神經網路等新興學科都與數字信號處理密不可分。數字信號處理包括演算法的研究和數字信號處理的實現兩個方面的內容。71DSP晶片的特點採用哈佛結構:採用數據匯流排與程式匯流排分離方式。採用流水線技術配有專用的硬體乘法-累加器:可在一個週期內完成一次乘法和一次累加操作。具有特殊的DSP指令:迴圈尋址、位碼倒置。快速的指令週期支持多處理器結構。省電管理和低功耗DSP的應用信號處理:數字濾波、快速傅裏葉變換、頻譜分析、波形產生等。通信:調製解調、自適應均衡、數據加密和壓縮、多路複用、移動通信、可視電話、路由器等。語音和圖象的處理:語音編碼與合成、文本-語音轉換、圖象壓縮與傳輸、鑒別、轉換、模式識別、動畫、電子地圖、機器人視覺。軍事:保密通信、雷達處理、導航、導彈制導、GPS、電子對抗、搜索與跟蹤等。儀器儀錶:頻譜分析、函數發生、數據採集、鎖相環、暫態分析。還有在自動控制、醫療工程、家用電器等方面的應用。
73DSP處理器小結
DSP具有較完善的軟、硬體開發工具,如軟體仿真器、線上仿真器、C編譯器等。TI公司提供的CCS開發工具功能強大,集成了代碼的編輯、編譯、連接和調試等功能,而且支持C/C++和彙編的混合編程。開放式的結構允許用戶外擴展自身的模組,DSP的開發工作。
DSP具有處理速度快,靈活,精確,抗干擾能力強,體積小等優點。已經成為一個新的技術領域,形成了有潛力的產業和市場。目前,國際上DSP的供貨商有以下幾大公司:
TI(德州公司)、ADI公司、AT&T公司。74(3)嵌入式微處理器
(MicroProcessorUnit)
嵌入式微處理器是由通用電腦中的CPU演變而來的。與電腦處理器不同的是,在實際嵌入式應用中,只保留和嵌入式應用緊密相關的功能硬體,去除其他的冗餘功能部分,這樣就以最低的功耗和資源實現嵌入式應用的特殊要求。功能與和標準微處理器基本類似,在工作溫度、抗電磁干擾、可靠性等方面一般都做了各種增強。與工業控制電腦相比,嵌入式微處理器具有體積小、重量輕、成本低、可靠性高的優點。主流晶片ARM、Am186/88、PowerPC、M68000、MIPS系列等。75ARM微處理器舉例
三星公司S3C2410的最小系統提供Linux系統內核系統穩定工作在203MHz主頻上模組包括64MBSDRAM、16-64MBflashROM模組給出了S3C2410幾乎所有的信號,32位的數據匯流排,保留充分擴展空間為嵌入式技術愛好者提供了一個廉價的中高端平臺科研人員高效的開發工具
76(4)嵌入式片上系統(SystemOnChip)SOC技術是一種高度集成化、固件化的系統集成技術。其核心思想就是要把整個應用電子系統全部集成在一個晶片中。如將ARMRISC、MIPSRISC、DSP等微處理器核,加上一些通用的介面單元集成在一起。如信號採集、轉換、存儲、處理等功能模組,通用串行端口(USB),TCP/IP通信單元、GPRS通信介面、GSM通信介面、IEEE1394、藍牙模組介面等等。這些單元以往都是依照各單元的功能做成一個個獨立的處理晶片。
SOC是追求產品系統最大包容的集成器件,最大的特點是成功實現了軟硬體無縫結合,直接在處理器片內嵌入操作系統的代碼模組。
嵌入式片上系統(SOC)結構圖78嵌入式片上系統(SOC)介紹
由於SOC往往是專用的,在聲音、圖像、影視、網路及系統邏輯等應用領域中發揮了重要作用。SoC微處理器所具有的好處如下:利用改變內部工作電壓,降低晶片功耗;減少晶片對外管腳數,簡化製造過程;減少週邊驅動介面單元及電路板之間的信號傳遞,可以加快微處理器數據處理的速度;內嵌的線路可以避免外部電路板在信號傳遞時所造成系統雜訊。
SOC實現了在一個矽片內部運用VHDL等硬體描述語言,實現一個複雜的系統。用戶只需使用編程語言,綜合時序設計,直接在器件內調用各種通用處理器的標準,然後通過仿真之後就可交付晶片廠商進行生產。故其減小了體積和功耗,而且提高了系統的可靠性和設計生產效率。791.3.3嵌入式系統的軟體組成
嵌入式系統的軟體包括嵌入式操作系統和相應的各種應用程式。
1、嵌入式操作系統EOS
為了使嵌入式系統的開發更加方便和快捷,需要有專門負責管理記憶體分配、中斷處理及任務調度等功能的軟體模組,這就是EOS。EOS是用來支持嵌入式應用的系統軟體,是嵌入式系統極為重要的組成部分。通常包括與硬體相關的底層驅動軟體、系統內核、設備驅動介面、通信協議、圖形介面GUI、標準化流覽器等。嵌入式操作系統具有編碼體積小,面向應用,可裁剪和移植,即時性強,可靠性高,專用性強等特點。802、相應的各種應用程式
根據不同的應用場合,來編寫不同的應用程式。嵌入式應用軟體不僅要求其準確性、安全性和穩定性等方面能夠滿足實際的應用的需要,而且還要盡可能的進行優化,以減少對系統資源的消耗,降低硬體成本。所以對嵌入式系統而言,大而全的功能不是目標,少而精才是它的設計目標。813、嵌入式系統的開發模式
軟體開發過程,從編寫程式、編譯和運行等過程全都在同一個PC機平臺上完成。嵌入式系統開發的代碼生成是在PC機上完成,但由於嵌入式目標平臺的不同,就要求在開發機上的編譯器能支持交叉編譯(例如GCC)、鏈接,然後將程式的代碼下載到目標機上指定位置,然後還要交叉調試。調試器還是運行在宿主機的操作系統上,被調試的程式是放在目標機上,通過串口或網路介面相連接。主要流程為:編寫-交叉編譯、鏈接-定位和下載-調試。嵌入式系統採用這種開發模式主要是自身的特點決定的。82
開發環境和工具一般使用於開發主機(如微機)的資源,包括語言編譯器、連接定位器、調試器等。開發平臺一般有4部分組成:硬體平臺、操作系統、編程語言和開發工具。注意:嵌入式系統的硬體和軟體位於嵌入式系統產品本身,開發工具則獨立於嵌入式系統產品之外。83
需要使用交叉編譯器,進行交叉開發。交叉編譯器(Cross-compiler):是一種運行在通用電腦上的、但是能夠生成在另一種處理器上運行的目標代碼的編譯器。交叉開發:在一臺通用計算機上進行軟體的編輯、編譯,然後下載到嵌入式系統中運行調試。宿主機目標機3.嵌入式系統軟體的開發模式844、嵌入式操作系統的分類方法1)按其應用對象不同,有如下4類:
(1)基於Windows相容,可包括有WindowsCE、嵌入式Linux等;(2)工業和通信類,包括有VxWorks、Psos、QNX等;(3)單片機類,包括有uC/OS、CMX、iRMX;(4)面向Intelnet類包括有Plam、Visor、Hopen、PPSM。852)依據嵌入式系統操作系統的類型劃分
主要有即時系統、分時系統(非即時系統)和順序執行系統。其中即時系統又分為硬(強)即時和軟(弱)即時系統。(1)即時操作系統:系統內有多個程式運行,每個程式有不同的優先順序,只有最高優先順序的任務才能佔有CPU的控制權。(2)分時操作系統:系統內同時可以有多個程式運行,把CPU的時間分按順序分成若干片,每個時間片內執行不同的程式,如UNIX。(3)順序執行系統:系統內只含有一個程式,獨佔CPU的運行時間,按語句順序執行該程式,直至執行完畢,另一程式才能啟動運行。如DOS操作系統。863)按即時性劃分
即時嵌入式系統是為執行特定功能而設計的,可以嚴格地按時序執行功能。其最大的特徵就是程式的執行就有確定性。具體可分為二種形式:(1)具有強(硬)即時特點的嵌入式操作系統系統在指定的時間內未能實現某個確定的任務,會導致系統的全面失敗,則被稱為硬(強)即時系統。硬實時系統,其系統回應時間在毫秒或微秒級(數控機床)。一個硬實時系統通常在硬體上需要添加專門用於時間和優先順序管理的控制晶片,uc/os和VxWorks是典型的即時操作系統。87嵌入式操作系統的分類方法(2)具有弱(軟)實特點的嵌入式操作系統在軟即時系統中,雖然回應時間同樣重要,但是超時卻不會發生致命的錯誤。軟即時系統則主要在軟體方面通過編程實現現實的管理。比如WindowsCE、uCLinu是一個多任務分時系統。一般軟即時系統,其系統回應時間在毫秒或幾秒的數量級上,其實時性的要求比強即時系統要差一些(電子菜譜的查詢)。88
4)經濟上分為商用型和免費型
(1)商用型的即時操作系統功能穩定、可靠,有完善的技術支持和售後服務,但價格昂貴。比如有VxWorks、WindowsEmbedded、Psos、Palm、OS-9、LynxOS和QNX等。(2)免費型的在價格方面具有優勢,目前主要有Linux和uC/OS。但不可靠,無技術諮詢。895)按軟體結構分類(1)迴圈輪詢系統:(PollingLoop)最簡單的軟體結構是迴圈輪詢,程式依次檢查系統的每一個輸入條件,一旦條件成立就進行相應的處理。Initialize()While(true){if(condition_1)action_1();if(condition_2)action_2();
……if(condition_n)acition_n();}90
在當時,IT行業的迅猛發展,Intel、摩托羅拉、TI等上游廠商都有著不同的數字架構,這使得他們的CPU等基礎器件各有不同。器件不同,軟體就不同,而越來越多不同的指令集、工具和語言,對整個數字技術的發展非常不利。全球工業價值鏈基本就是大包大攬的大公司的天下,象摩托羅拉這樣的公司在測試、製造、系統封裝,甚至CPU設計等領域都是一把抓的。直到80年代末,產業鏈開始出現分工。這樣一個更有效的辦法就是出現一個更上游的廠商來制定標準,而這個標準的統一,一定是從數字技術的核心CPU開始。於是ARM誕生的時候就選擇了CPU體系結構設計這個上游廠商的上游。911)嵌入式處理器具備的特點嵌入式處理器一般具有以下4個特點:
(1)大量使用寄存器,對即時多任務有很強的支持能力,能完成多任務並且有較短的中斷回應時間,從而使內部的代碼和即時內核的執行時間減少到最低限度。結構上採用RISC結構形式。(2)具有功能很強的存儲區保護功能。這是由於嵌入式系統的軟體結構已模組化,而為了避免在軟體模組之間出現錯誤的交叉作用,需要設計強大的存儲區保護功能,同時也有利於軟體診斷。
2、ARM微處理器特點嵌入式微處理器採用精簡指令集系統RISC與複雜指令集系統CISC的比較
CISCRISC價格由硬體完成部分軟體功能,硬體複雜性增加,晶片成本高由軟體完成部分硬體功能,軟體複雜性增加,晶片成本低性能減少代碼尺寸,增加指令的執行週期數使用流水線降低指令的執行週期數,增加代碼尺寸指令集大量的混雜型指令集,有簡單快速的指令,也有複雜的多週期指令,符合HLL(highlevellanguage)簡單的單週期指令,在彙編指令方面有相應CISC微代碼指令高級語言支持軟體完成尋址模式複雜的尋址模式,支持記憶體到記憶體尋址簡單的尋址模式,僅允許LOAD和STORE指令存取記憶體,其他所有的操作都基於寄存器到寄存器控制單元微碼直接執行寄存器數目寄存器較少寄存器較多硬體完成93
(3)可擴展的處理器結構,最迅速地擴展出滿足應用的最高性能的嵌入式微處理器。支持ARM(32位)和Thumb(16位)雙指令集,相容8位/16位器件。(4)小體積、低功耗、成本低、高性能嵌入式處理器功耗很低,用於可攜式的無線及移動的計算和通信設備中,電池供電的嵌入式系統需要功耗只有mW甚至μW級。
2)ARM微處理器的技術指標功能、字寬、處理速度、工作溫度、功耗、尋址能力、平均無故障工作時間、性能價格比、工藝和電磁相容性指標942.1.1基於ARM技術的嵌入式系統硬體架構ARM系統架構的微處理器一般是由32位ALU、數十個32位通用寄存器及狀態寄存器、32位桶型移位寄存器、指令解碼及控制邏輯、指令流水線和數據/地址寄存器組成。如圖2.1所示。
1)ALU
它與常用的ALU邏輯結構基本相同,是由2個運算元鎖存器、加法器、邏輯功能、結果及零檢測邏輯構成。
圖2.1微處理器原理圖
96ARM採用了32位的桶形移位寄存器,置於ALU的操作輸入口前。這樣使左移/右移n位、迴圈移n位和算術右移n位等都可以在一個週期內完成。所移動的位數可由被指定的暫存器決定。具體由多路選擇器、符號控制電路、移位寄存器和寫選擇電路等構成。可以對累加器中的內容進行算術或邏輯移位,還可以完成對運算元的符號位擴展、對累加器進行歸一化處理和多媒體數據壓縮解壓等功能。
3)高速乘法器乘法器一般採用兩位乘法並帶有加1移位的方法來實現乘法。內部高速乘法器採用32位的結構,這樣可以降低集成度,完成32*32位的運算需要5個週期。2)桶形移位寄存器974)浮點部件(協處理器)
體系結構設計師們在指令系統層次上提供一種靈活性的設計方法是利用協處理器,它被附接在CPU上並能實現部分指令。例如,通過提供實現浮點指令的晶片,浮點算術運算就能夠被引入到嵌入式系統體系結構中。為了支持協處理器,指令系統為協處理器操作在指令系統中保留了一些操作碼。因為協處理器要執行指令,它必須被緊緊地連接到CPU上。CPU收到協處理器操作指令時,CPU要啟動該協處理器並將有關指令傳給它。協處理器的指令能夠裝入和存儲在協處理器的寄存器中或者執行內部操作。CPU可以暫停執行以等待協處理器指令的結束。98
當然,CPU也可能會在沒有協處理器的情況下收到協處理器命令。那末大部分系統用非法指令陷阱來處理這類問題。
ARM體系結構能為多個協處理器提供支持。協處理器能對自己的寄存器進行裝入和存儲。它們還能夠在協處理器寄存器和CPU寄存器間交換數據。
ARM協處理器的一個例子是浮點單元。該單元佔有編號1、2的兩個協處理器,但是它們對程式員來說表現為獨立的單元。它提供8個80位浮點數據寄存器、浮點狀態寄存器和一個可選的浮點狀態寄存器。99
ARM通過增加硬體協處理器來支持對其指令集的通用擴展,通過未定義指令陷阱支持這些協處理器的軟體仿真。簡單的ARM核提供板級協處理器介面,因此協處理器可作為一個獨立的元件接入。最常使用的協處理器是用於控制功能的系統協處理器,例如控制ARM720上的高速緩存Cache和記憶體管理單元MMU等。
ARM也開發了浮點協處理器,也可支持其他片上協處理器。ARM體系結構支持通過增加協處理器來擴展指令集。1005)控制器
ARM的控制器與可編程邏輯陣列CPLD或FPGA連接。該控制器分散控制Load/Store、乘法器、協處理器以及地址、寄存器、ALU和移位寄存器。
6)寄存器例如ARM7微處理器內含37個寄存器,其中31個為通用寄存器,6個為狀態寄存器。1012.1.2硬體系統基本體系結構原理1)馮.諾依曼結構簡介馮.諾依曼結構電腦內部機構是由一個中央處理單元(CPU)和單存儲空間組成。即這個存儲空間存儲了全部的數據和程式指令,它們內部使用單一的地址匯流排和數據匯流排。這樣由於在取指令和取數據時都是通過一條匯流排分時進行的,所以要根據所給的地址對其進行讀寫操作。當進行高速運算時,馮.諾依曼結構電腦不但不能同時進行取指令和取數據,而且還會造成數據傳輸通道的瓶頸現象,其工作速度較慢。馮·諾依曼體系記憶體結構模型圖記憶體程式指令0指令1指令2指令3指令4數據數據0數據1數據2CPU外部記憶體接口RAMROMI/0口串行介面並行介面DBAB
馮.諾依曼結構示意圖104馮·諾依曼體系的特點(1)數據與指令都存儲在記憶體中(2)每條指令的執行週期:T=TF+TD+TE+TS
取指令(InstructionFetch)TF;指令解碼(InstructionDecode)TD;執行指令(InstructionExecute)TE;存儲(Storage)TS(3)被大多數電腦所採用。通常使用的ARM7就是屬於馮諾依曼體系。1052)哈佛體系結構電腦
記憶體分為數據和程式二個存儲空間,有各自獨立程式匯流排和數據匯流排,可以進行獨立編址和獨立訪問。如程式計數器只指向程式記憶體。這樣獨立的程式記憶體和數據記憶體為數字處理提供了較高的性能。數據和程式可以並行完成,這使得數據移動更加容易。數據的吞吐量比上以中提高了大約一倍。其片內的Cache也是分開的。目前大部分DSP和ARM9微處理器都是採用這種哈佛體系結構。如下圖所示。但這種結構的弱點是很難在哈佛機上編寫出一個自修改的程式(即寫入數據值後,使用這些值作為指令的程式)。指令寄存器控制器數據通道輸入輸出中央處理器程式記憶體指令0指令1指令2數據記憶體數據0數據1數據2地址指令地址數據哈佛體系存儲系統結構圖哈佛體系結構示意圖2CPUI/0口串行介面並行介面ROMRAM外部記憶體接口
DBAB外部管理DB外部管理AB程式DB程式AB108嵌入式微處理器結構小結傳統的微處理器採用的馮·諾依曼結構將指令和數據存放在同一存儲空間中,統一編址,指令和數據通過同一匯流排訪問。哈佛結構則是不同於馮·諾依曼結構的一種並行體系結構,其主要特點是程式和數據存儲在不同的存儲空間中,即程式記憶體和數據記憶體是兩個相互獨立的記憶體,每個記憶體獨立編制、獨立訪問。與之相對應的是系統中設置的兩條匯流排(程式匯流排和數據匯流排),從而使數據的吞吐率提高了一倍。(1)流水線技術
電腦中一條指令的執行可分為若干個階段,由於每個階段的操作相對都是獨立的。因此可以採用流水線的重疊技術來大大提高系統的性能。在流水線裝滿以後,幾個指令可以並行執行。這樣可充分利用現有硬體資源,提高了CPU的運行效率。解碼取指執行add解碼取指執行sub解碼取指執行cmp時間AddSubCmp3)嵌入式系統中採用的先進技術110ARM7ARM處理器使用3級流水線,分別為:取指級:取指級完成程式記憶體中指令的讀取,並放入指令流水線中。解碼級:對指令進行解碼,為下一週期準備數據路徑需要的控制信號。這一級指令“佔有”解碼邏輯,而不“佔有”數據路徑。執行級:指令“佔有”數據路徑,寄存器被讀取,運算元在桶式移位器中被移位,ALU產生相應的運算結果並回寫到目的寄存器中,ALU的結果則根據指令需求來更改狀態寄存器的條件位。111ARM9架構採用5級流水線:增加了I-Cache和D-Cache,把記憶體的取指與數據存取分開;增加了數據寫回的專門通路和寄存器;把指令的執行過程分為如下5階段:1)取指令;
2)指令解碼、寄存器讀、分支目標計算及執行;
3)移位和ALU操作;
4)數據Cache訪問;
5)結果寫回到寄存器。112ARM9架構採用了5級流水線:
取指:指令從記憶體中取出,放入指令流水線。解碼:指令解碼,從寄存器中讀取寄存器運算元。在寄存器組中有3個運算元讀端口,因此大多數ARM指令能在一個週期內讀取其運算元。執行:把一個運算元移位,產生ALU的結果。如果指令是Load或Store,在ALU中計算記憶體的地址。緩衝/數據:如果需要,則訪問數據記憶體。否則,ALU的結果只是簡單地緩衝一個時鐘週期,以便使所有指令具有同樣的流水線流程。回寫:將指令產生的結果回寫到寄存器,包括任何從記憶體讀取的數據。113更多級的流水線ARM10採用了6級流水線。ARM11採用了8級流水線。114
流水線的數據相關問題
若指令中具有N個階段,當每個階段的執行時間是相同的話,那麼在流水線裝滿的時間內,則在每一個週期就可同時執行N條指令,性能就可改善N倍。但如果當一條指令需要前面指令的執行結果,而這些指令均在流水線中重疊執行時,就可能會涉及流水線的數據相關,不得不產生停頓。為了避免結構相關,因而ARM架構採用了資源重複的方法:採用分離式指令Cache和數據Cache。該方法是取指和記憶體的數據訪問不再發生衝突,同時也解決了相應數據同一通道的問題。ALU中採用單獨的加法器來完成地址計算,該方法是執行週期的運算不再產生資源衝突。115流水線的控制相關問題
當流水線遇到分支指令和其他會改變PC值的指令時,就會發生控制相關。一但流水線檢測某條指令是分支指令,就要暫停分支指令之後的所有指令,直到分支指令確定了新的PC值為止。對於控制相關,ARM採用了以下方法:指令預測儘早判斷分支轉移是否成功,從而採取相應預測轉移和延遲轉移,以降低分支轉移的損失。儘早計算出分支轉移成功時的PC值(即分支的目標地址)。在有些ARM架構處理器流水線的解碼階段增加了一個專用加法器來計算分支的目的地址。116(2)超標量執行
通過重複設置多套指令執行部件,同時處理並完成多條指令,實現並行操作,來達到提高處理速度的目的。所有ARM內核,包括流行的ARM7、ARM9和ARM10等,都是單週期指令機。ARM公司下一代處理器將是每週期能處理多重指令的超標量機。但是,超標量處理器在執行的過程中,如果代碼中有分支指令則必須動態地檢查指令相關性。超標量執行:超標量CPU採用多條流水線結構。117(3)匯流排和匯流排橋匯流排是CPU與記憶體和設備通信的機制,是電腦各部件之間傳送數據、地址和控制資訊的公共通道。片內匯流排或內部匯流排:連接CPU內部各主要功能部件片外匯流排:CPU與記憶體(RAM和ROM)和I/O介面之間進行資訊交換的通道數據匯流排DBus地址匯流排ABus控制匯流排CBus按相對於CPU位置劃分按功能和信號類型匯流排分類匯流排概述匯流排寬度匯流排頻率匯流排帶寬匯流排帶寬(單位:MB/s)=(匯流排寬度/8)×匯流排頻率如:匯流排寬度32位,頻率66MHZ,則匯流排帶寬=(32/8)*66MHz=264MB/s匯流排的主要參數又稱匯流排位寬,指的是匯流排能同時傳送數據的位數。如16位匯流排就是具有16位數據傳送能力。匯流排工作速度的一個重要參數,工作頻率越高,速度越快。通常用MHz表示。又稱匯流排的數據傳送率,是指在一定時間內匯流排上可傳送的數據總量,用每秒最大傳送數據量來衡量。匯流排帶寬越寬,傳輸率越高。119匯流排概述
原因:數據寬度:高速匯流排通常提供較寬的數據連接。成本:高速匯流排通常採用更昂貴的電路和連接器。橋允許匯流排獨立操作,這樣在I/O操作中可提供某些並行性。一個微處理器系統可能含有多條匯流排高速匯流排低速匯流排高速設備低速設備橋匯流排互聯的電路120
匯流排和匯流排橋
匯流排設計用於與ARM系列的微處理器介面。ARM匯流排支持32位數據傳輸和32位尋址,而且與PCI匯流排類似,使用同步數據傳輸結構實現。ARM匯流排的傳輸速度在規範中沒有明確規定,而是取決於特定應用中所使用的時鐘頻率。121
匯流排和匯流排橋示意圖CPU低速設備橋數據高速匯流排記憶體高速設備低速設備低速匯流排嵌入式系統示意圖Processor-localbusMicro-processorCacheMemorycontrollerDMAcontrollerBridgePeripheralPeripheralPeripheralPeripheralbus嵌入式系統匯流排S3C2410硬體邏輯結構圖124
匯流排和匯流排橋
由於ARM微處理器由許多不同製造商製造,晶片外提供的匯流排隨晶片變化而變化。ARM已經為單晶片系統創建了一個獨立的匯流排規格說明。其中,通過先進微控制器匯流排架構AMBA(AdvancedMicrocontrollerBusArchitecture)支持將多個CPU、記憶體和週邊設備集成在片上系統中。AMBA規格說明包括兩條匯流排。其一是高性能匯流排AHB(AdvancedHigh-performanceBus)是為高速傳輸而經過優化的,直接連接到CPU上。125
匯流排和匯流排橋
它支持好幾個高性能匯流排的特性,如流水線技術、突發傳輸、分離事務和多匯流排主控器。其二是週邊設備匯流排APB(AdvancedPeripheralBus)橋可用來將AHB連到週邊設備匯流排APB上,這種匯流排的設計容易實現。AHB假定所有週邊設備均工作於從方式,以簡化週邊設備和匯流排控制器中所需的邏輯。它也不執行流水線操作,簡化了匯流排邏輯。AMBA匯流排-AHB只有主單元可在任何時刻使用匯流排。AHB可以有一個或多個主單元。主單元可以是RISC處理器、協處理器以及DMA控制器,以啟動和控制匯流排操作。AHB匯流排主單元從單元仲裁器解碼器可以回應(並非啟動)讀或寫匯流排操作。匯流排的從單元可以在給定的地址範圍內對讀寫操作進行相應的反應。從單元向主單元發出成功、失敗信號或等待各種回饋信號。從單元通常是其複雜程度不足以成為主單元的固定功能塊,例如外存介面、匯流排橋介面以及任何記憶體都可以是從單元,系統的其他外設也包含在AHB的從單元中。用來確定控制匯流排是哪個主單元,以保證在任何時候只有一個主單元可以啟動數據傳輸。一般來說仲裁協議都是固定好的,例如最高優先順序方法或平等方法,可根據實際的情況選擇適當的仲裁協議。匯流排解碼器用於傳輸解碼工作,提供傳輸過程中從單元的片選信號。127AMBA匯流排-AHB一個典型的AHB匯流排工作過程,它包括以下兩個階段:地址傳送階段(addressphase):它將只持續一個時鐘週期。在HCLK的上升沿數據有效。所有的從單元都在這個上升沿來採樣地址資訊。數據傳送階段(dataphase):它需要一個或幾個時鐘週期。可以通過HREADY信號來延長數據傳輸時間,當HREADY信號為低電平時,就在數據傳輸中加入等待週期,直到HREADY信號為高電平才表示這次傳輸階段結束。128AMBA匯流排-APBAPB橋將系統匯流排AHB/ASB和APB連接起來,並執行下列功能:鎖存地址並保持其有效,直到數據傳送完成。解碼地址並產生一個外部片選信號,在每次傳送時只有一個片選信號(PSELx)有效。寫傳送(writetransfer)時驅動數據到APB。讀傳送(readtransfer)時驅動數據到系統匯流排AHB/ASB。傳送時產生定時觸發信號PENABLE。1294)記憶體系統簡介嵌入式系統的存儲結構嵌入式微處理器Cache片內RAM和ROM主存:NorFlash、SRAM、DRAM等外存:NandFlash、DOC、CF、SD、MMC等1304)記憶體系統簡介RAM:隨機存取記憶體,
SRAM:靜態隨機記憶體,
DRAM:動態隨機記憶體(1)SRAM比DRAM存取速度快(2)SRAM比DRAM耗電多(3)DRAM存儲密度比SRAM高(4)DRAM需要週期性的刷新
ROM:只讀記憶體
FlashROM:閃速只讀記憶體131
記憶體系統組成
嵌入式存儲系統是由高速緩衝區Cache、主記憶體和輔助記憶體(自選如CF卡、SD卡等)組成。主存一般採用存儲密度較大的記憶體晶片,典型的嵌入式記憶體系統由RAM和FlashROM等組成。寄存器可以滿足處理器短時間、容量小的存儲要求,記憶體則可以滿足處理器中長期資訊存儲要求。存儲的資訊可分為程式或數據。程式資訊包括一系列指令,使處理器可以完成所需要的系統功能;數據資訊代表輸入、輸出程式以及由程式處理的值。132
記憶體系統組成
程式和數據既可共同存儲也可分開存儲。在馮.諾依曼結構下,數據和程式共用同一個記憶體空間;在哈佛結構下,程式記憶體空間和數據記憶體空間不同。嵌入式系統常使用FlashROM作為程式記憶體,因為嵌入式系統和臺式PC系統不一樣,其程式不會更改。在數據存儲中,常數數據可存儲在FlashROM中,而其他數據則需要使用RAM。133(1)高速緩存(Cache)
高速緩存是一種小型、快速的記憶體,它保存部分主存內容的拷貝,減少訪問主記憶體的所花的訪問時間。如在ARM9中使用的指令I-Cache和數據D-Cache。
CPU高速緩存控制器CACHE主存數據數據地址134Cache記憶體介於CPU和主存之間,它的工作速度數倍於主存,全部功能由硬體實現。由於轉換速度快,軟體人員絲毫未感到Cache的存在,這種特性稱為Cache的透明性。Cache內部是用同主存內部同樣大小的塊(或頁)組成,故由於Cache存儲容量小,所以塊(或頁)的數目少。在Cache中,每一塊外加有一個標記,指明它是主存的哪一塊的副本,所以該標記的內容相當於主存中塊的編號,塊內位元組數與主存相同。(1)高速緩存(Cache)Cache的組成和工作原理標誌塊號塊內地址主存地址主存塊號塊內地址Cache標記Cache地址 比較器替換算法Cache數據去CPU來自CPU不命中命中Cache滿訪數據修改標記訪標記NO136Cache的組成和工作原理
為了把資訊放到Cache記憶體中,必須採用某種方法把主存相應地址的內容定位存放到Cache中某個地址中去,稱作地址映像(複製)。資訊按照這種映像關係(採用硬體方法實現)裝入Cache後,執行程式時應將主存地址變換成Cache地址,這個變換過程叫做地址變換。地址的映像和變換是密切相關的。例如主存容量1MB,Cache容量8KB,其地址結構如圖:137
主存地址:主存字塊為M=2m個即m位,塊內地址長度b位.
Cache地址:字塊為C=2c個即c位,塊內長度b位.
Cache塊號A19主存塊號A10A9塊內地址A0A12A11A10A9塊內地址A0Cache的組成和工作原理138Cache的組成和工作原理Cache中內容的放置常使用的方法有全相聯映像、直接映像和組相聯映像方式。目前新的ARM建構處理器大多採用分塊的全相聯結構,而ARM7採用的是4路組相聯的8KB指令/數據Cache。下麵將分別詳細介紹直接映像、全相聯映像和組相聯映像方式。139①直接映像方式
在直接映像方式中,主存和Cache中字塊的對應關係,如下圖所示。直接映像函數可定義為:J=Imod2c
其中J是主存中包含有J個Cache的容量(C塊)區或組號,M是主存的字塊號,主存中有I=2m個塊,字塊大小為2b字。Cache中有同樣大小的C=2c
個塊(m>c)。c是Cache高位地址位數,b也是Cache低位地址位數。140直接映像其做法是先將主存分成與Cache同樣大小的若干個區(組),每個區中的某個塊只能固定調入Cache中的對應塊,如第0塊,第2c
塊,第2c+1塊,…
,只能映像到Cache的第0塊,而主存的第1塊,第2c+1塊第2c+1十1塊,…,只能映像到Cache的第1塊等等。在這種映像方式中,其對應關係是固定的並有一定限制的。
圖直接映像方式142
舉例說明
例如某機主存為1MB,每頁512B,這樣劃分2048頁,共分128組,每組16頁;Cache為8KB,每頁512B,劃分16頁。
7位
Cache主存主存地址該方式只比較t=7位標記。7位4位9位
0組
主存頁號
1組
Cache地址標記為組號在訪存時,只需比較127組兩者標記t位,相同則命中。標記0頁標記1頁
.
.
.
...標記15頁0頁1頁…15頁16頁17頁…31頁…2032頁2033頁…2047頁主存標記Cache頁號頁內地址頁相當於字塊144
特點
優點是實現簡單(只比較t=7位標記位),只需利用主存地址,按某些字段直接判斷,即可確定所需字塊是否已在Cache記憶體中。缺點是不夠靈活,即主存的2t個字塊只能對應唯一的Cache記憶體字塊。因此,即使Cache記憶體別的許多地址空著也不能佔用。這使得Cache存儲空間得不到充分利用,並降低了命中率。145②全相聯映像方式
全相聯映像方式是最靈活,但成本最高的一種方式,嵌入式系統中應用較多。它允許主存中的每一個字塊映像到Cache記憶體的任何一個字塊位置上,也允許從確實已被占滿的Cache記憶體中替換出任何一個舊字塊。它的標記位數要多,為主存總位數減去塊內的位數,這樣會使Cache標記容量加大。在訪問Cache時,需要與Cache的全部標記進行比較,這樣才能判斷出所訪主存地址的內容是否已在Cache中。由於Cache速度要求高,所以全部‘比較’操作都要用硬體實現,通常由“按內容尋址的”相聯記憶體完成。
圖-全相聯映像主存字塊總位數減去b147舉例說明
例如某機主存為1MB(20位),要求每頁512B(9位),要劃分2048頁(占11位);Cache為8KB(13位),每頁512B(9位),要劃分16頁(占4位)。
Cache標誌位=t+c=11位
主存主存地址要比較11位的標記位11位
9位
主存頁號由於每個Cache頁可以映射2048個主存頁中的任一頁,因此每頁的Cache標記也需要11,已表明它現在所映象的主存頁號。
標記0頁標記1頁
..
..標記15頁0頁1頁…15頁…2047頁主存頁標號頁內地址注:這裏的頁相當於以上所介紹的字塊。149
③組相聯映像
組相聯映像方式是直接映像和全相聯映像方式的一種折衷方案。首先設在高速緩衝區內將其容量先分成以組為單位,然後每組內在包含若干頁。如Cache有c個組,每組中包含2r個字塊數,這樣當r=0時,它就成為直接映像方式,當r=c
時,就相當於全相聯映像方式。也就是組間是直接映像方式,組內的頁執行的是全相連映像方式。組相聯映像組織如下圖所示。Cache的命中率除了與地址映像的方式有關外,還與Cache的容量有關。Cache容量大,則命中率就高,但達到一定容量後,命中率的提高就不明顯了。
圖-組相聯映像每組兩個子塊151舉例說明
例如某機主存為1MB(2048頁),共分0-255組,每組8頁,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医院感染乙肝防控与管理
- 护理质量与安全目标
- 2025年黑龙江省“市委书记进校园”事业单位引才招聘考试(中医学)历年参考题库含答案详解(5套)
- 2025年高等教育文学类自考-00024普通逻辑历年参考题库含答案解析(5套典型题)
- 2025年高等教育教育类自考-00405教育原理历年参考题库含答案解析(5套典型题)
- 2025年高等教育工学类自考-02407路基路面工程历年参考题库含答案解析(5套典型题)
- 护理查房结束页模板
- 2025年食品行业技能鉴定考试-食品生产加工安全关键岗位历年参考题库含答案解析(5套典型题)
- 海扶刀超声治疗
- 2025年银行考试-银行间债券市场交易员资格考试历年参考题库含答案解析(5套典型题)
- 2025届高考生物一轮总复习真题演练必修2第五单元遗传的基本规律伴性遗传与人类遗传病第25讲基因在染色体上及伴性遗传
- 知识题库-人社练兵比武竞赛测试题及答案(二)
- 蔗糖羟基氧化铁咀嚼片-临床用药解读
- 让守纪律讲规矩成为一种习惯课件
- 《翡翠讲解新》课件
- 针织面料缩水率国家标准
- 智慧黑板采购投标方案
- 一种撬装式制氢装置的制作方法
- 养老院第三方护工协议书
- 人教版小学五年级上册数学教材分析
- 内江六中语文届分班考试题
评论
0/150
提交评论