嵌入式系統(tǒng)基礎(chǔ)之:ARM處理器硬件開發(fā)平臺(tái)
2.ARM9主要特點(diǎn)
ARM處理器憑借它的低功耗、高性能等特點(diǎn),被廣泛應(yīng)用于個(gè)人通信等嵌入式領(lǐng)域,而ARM7也曾在中低端手持設(shè)備中占據(jù)了一席之地。然而,ARM7的處理性能逐漸無法滿足人們?nèi)找嬖鲩L(zhǎng)的高性能處理的需求,它開始退出主流應(yīng)用領(lǐng)域,取而代之的是性能更加強(qiáng)大的ARM9系列處理器。
新一代的ARM9處理器,通過全新的設(shè)計(jì),能夠達(dá)到兩倍以上于ARM7處理器的處理能力。它的主要特點(diǎn)如下所述。
(1)5級(jí)流水線。
ARM7處理器采用的3級(jí)流水線設(shè)計(jì),而ARM9則采用5級(jí)流水線設(shè)計(jì),如圖4.4所示。
通過使用5級(jí)流水線機(jī)制,在每一個(gè)時(shí)鐘周期內(nèi)可以同時(shí)執(zhí)行5條指令。這樣就大大提高了處理性能。在同樣的加工工藝下,ARM9處理器的時(shí)鐘頻率是ARM7的1.8~2.2倍。
圖4.4ARM7與ARM9流水線比較
(2)采用哈佛結(jié)構(gòu)。
首先讀者需要了解什么叫哈佛結(jié)構(gòu)。在計(jì)算機(jī)中,根據(jù)計(jì)算機(jī)的存儲(chǔ)器結(jié)構(gòu)及其總線連接形式,計(jì)算機(jī)系統(tǒng)可以被分為馮·諾依曼結(jié)構(gòu)和哈佛結(jié)構(gòu),其中馮·諾依曼結(jié)構(gòu)共用數(shù)據(jù)存儲(chǔ)空間和程序存儲(chǔ)空間,它們共享存儲(chǔ)器總線,這也是以往設(shè)計(jì)時(shí)常用的方式;而哈佛結(jié)構(gòu)則具有分離的數(shù)據(jù)和程序空間及分離的訪問總線。所以哈佛結(jié)構(gòu)在指令執(zhí)行時(shí),取址和取數(shù)可以并行,因此具有更高的執(zhí)行效率。ARM9采用的就是哈佛結(jié)構(gòu),而ARM7采用的則是馮·諾依曼結(jié)構(gòu)。如圖4.5和圖4.6分別體現(xiàn)了馮·諾依曼結(jié)構(gòu)和哈佛結(jié)構(gòu)的數(shù)據(jù)存儲(chǔ)方式。
圖4.5馮·諾依曼結(jié)構(gòu) 圖4.6哈佛結(jié)構(gòu)
由于在RISC架構(gòu)的處理器中,程序中大約有30%的指令是Load-Store指令,而采用哈佛結(jié)構(gòu)大大提升了這兩個(gè)指令的執(zhí)行速度,因此對(duì)提高系統(tǒng)效率的貢獻(xiàn)是非常明顯的。
(3)高速緩存和寫緩存的引入。
由于在處理器中,一般處理器速度遠(yuǎn)遠(yuǎn)高于存儲(chǔ)器訪問速度,那么,如果存儲(chǔ)器訪問成為系統(tǒng)性能的瓶頸,則處理器再快都毫無作用。在這種情況下,高速緩存(Cache)和寫緩存(WriteBuffer)可以很好地解決這個(gè)問題,它們存儲(chǔ)了最近常用的代碼和數(shù)據(jù),以供CPU快速存儲(chǔ),如圖4.7所示。
(4)支持MMU。
圖4.7ARM9的高速緩存和讀緩存
MMU是內(nèi)存管理單元,它把內(nèi)存以“頁(page)”為單位來進(jìn)行處理。一頁內(nèi)存是指一個(gè)具有一定大小的連續(xù)的內(nèi)存塊,通常為4096B或8192B。操作系統(tǒng)為每個(gè)正在運(yùn)行的程序建立并維護(hù)一張被稱為進(jìn)程內(nèi)存映射(ProcessMemoryMap)的表,表中記錄了程序可以存取的所有內(nèi)存頁以及它們的實(shí)際位置。
每當(dāng)程序存取一塊內(nèi)存時(shí),它會(huì)把相應(yīng)的虛擬地址(virtualaddress)傳送給MMU,而MMU會(huì)在PMM中查找這塊內(nèi)存的實(shí)際位置,也就是物理地址(physicaladdress),物理地址可以在內(nèi)存中或磁盤上的任何位置。如果程序要存取的位置在磁盤上,就必須把包含該地址的頁從磁盤上讀到內(nèi)存中,并且必須更新PMM以反映這個(gè)變化(這被稱為pagefault,即“頁錯(cuò)”)。MMU的實(shí)現(xiàn)過程如圖4.8所示。
圖4.8MMU的實(shí)現(xiàn)過程
只有擁有了MMU才能真正實(shí)現(xiàn)內(nèi)存保護(hù)。例如當(dāng)A進(jìn)程的程序試圖直接訪問屬于B進(jìn)程的虛擬地址中的數(shù)據(jù),那么MMU會(huì)產(chǎn)生一個(gè)異常(Exception)來阻止A的越界操作。這樣,通過內(nèi)存保護(hù),一個(gè)進(jìn)程的失敗并不會(huì)影響其他進(jìn)程的運(yùn)行,從而增強(qiáng)了系統(tǒng)的穩(wěn)定性,如圖4.9所示。ARM9也正是因?yàn)閾碛辛薓MU,所以比ARM7具有更強(qiáng)的穩(wěn)定性和可靠性。
圖4.9內(nèi)存保護(hù)示意圖
4.2.4S3C2410處理器詳解
本書所采用的硬件平臺(tái)是深圳優(yōu)龍科技有限公司的開發(fā)板FS2410(如圖4.10所示),它的中央處理器是三星公司的S3C2410X。S3C2410X是使用ARM920T核、采用0.18mm工藝CMOS標(biāo)準(zhǔn)宏單元和存儲(chǔ)編譯器開發(fā)而成的。由于采用了由ARM公司設(shè)計(jì)的16/32位ARM920TRISC處理器,因此S3C2410X實(shí)現(xiàn)了MMU和獨(dú)立的16KB指令和16KB數(shù)據(jù)哈佛結(jié)構(gòu)的緩存,且每個(gè)緩存均為8個(gè)字長(zhǎng)度的流水線。它的低功耗、精簡(jiǎn)而出色的全靜態(tài)設(shè)計(jì)特別適用于對(duì)成本和功耗敏感的領(lǐng)域。
S3C2410X提供全面的、通用的片上外設(shè),大大降低系統(tǒng)的成本,下面列舉了S3C2410X的主要片上功能。
n 1.8VARM920T內(nèi)核供電,1.8V/2.5V/3.3V存儲(chǔ)器供電;
n 16KB指令和16KB數(shù)據(jù)緩存的MMU內(nèi)存管理單元;
n 外部存儲(chǔ)器控制(SDRAM控制和芯片選擇邏輯);
n 提供LCD控制器(最大支持4K色的STN或256K色TFT的LCD),并帶有1個(gè)通道的LCD專用DMA控制器;
n 提供4通道DMA,具有外部請(qǐng)求引腳;
n 提供3通道UART(支持IrDA1.0,16字節(jié)發(fā)送FIFO及16字節(jié)接收FIFO)/2通道SPI接口;
n 提供1個(gè)通道多主IIC總線控制器/1通道IIS總線控制器;
n 兼容SD主機(jī)接口1.0版及MMC卡協(xié)議2.11版;
n 提供2個(gè)主機(jī)接口的USB口/1個(gè)設(shè)備USB口(1.1版本);
n 4通道PWM定時(shí)器/1通道內(nèi)部計(jì)時(shí)器;
圖4.10優(yōu)龍F(tuán)S2410開發(fā)板實(shí)物圖
n 提供看門狗定時(shí)器;
n 提供117個(gè)通用I/O口/24通道外部中斷源;
n 提供不同的電源控制模式:正常、慢速、空閑及電源關(guān)閉模式;
n 提供帶觸摸屏接口的8通道10位ADC;
n 提供帶日歷功能的實(shí)時(shí)時(shí)鐘控制器(RTC);
n 具有PLL的片上時(shí)鐘發(fā)生器。
評(píng)論