眾所周知,ARM9系列處理器是英國ARM公司設(shè)計的主流嵌入式處理器,主要包括ARM9TDMI和ARM9E-S等系列,基于arm9其它公司推出了自己的CPU芯片,如三星推出了S3C2440。還有TI啊,ATMEL啊,高通啊都基于arm9推出了自己的CPU芯片。
ARM9采用哈佛體系結(jié)構(gòu),指令和數(shù)據(jù)分屬不同的總線,可以并行處理。在流水線上,ARM7是三級流水線,ARM9是五級流水線。由于結(jié)構(gòu)不同,ARM7的執(zhí)行效率低于ARM9。平時所說的ARM7、ARM9實際上指的是ARM7TDMI、ARM9TDMI軟核,這種處理器軟核并不帶有MMU和cache,不能夠運行諸如linux這樣的嵌入式操作系統(tǒng)。而ARM公司對這種架構(gòu)進行了擴展,所以有了ARM710T、ARM720T、ARM920T、ARM922T等帶有MMU和cache的處理器內(nèi)核。
融合了ARM920T? ARM® Thumb® 處理器
– 工作于180 MHz時性能高達(dá)200 MIPS,存儲器管理單元
– 16-K 字節(jié)的數(shù)據(jù)緩存,16-K字節(jié)的指令緩存,寫緩沖器
– 含有調(diào)試信道的內(nèi)部仿真器
– 中等規(guī)模的嵌入式宏單元結(jié)構(gòu)( 僅針對256 BGA 封裝)
· 低功耗:VDDCORE電流為30.4 mA 待機模式電流為3.1 mA
· 附加的嵌入式存儲器
– SRAM為16K ;ROM為128K
· 外部總線接口(EBI)
– 支持SDRAM,靜態(tài)存儲器, Burst Flash,無縫連接的CompactFlash®,
SmartMedia?及NAND Flash
· 提高性能而使用的系統(tǒng)外設(shè):
– 增強的時鐘發(fā)生器與電源管理控制器
– 兩個有雙PLL的片上振蕩器
– 低速的時鐘操作模式與軟件功耗優(yōu)化能力
– 四個可編程的外部時鐘信號
– 包括周期性中斷、看門狗及第二計數(shù)器的系統(tǒng)定時器
– 有報警中斷的實時時鐘
– 調(diào)試單元、兩線UART并支持調(diào)試信道
– 有8 個優(yōu)先級的高級中斷控制器,獨立的可屏蔽中斷源,偽中斷保護
– 7個外部中斷源及1 個快速中斷源
– 有122個可編程I/O口線的四個32 位PIO控制器,各線均有輸入變化中斷及開漏能力
– 20通道的外設(shè)數(shù)據(jù)控制器(DMA)
· 10/100 Base-T 型以太網(wǎng)卡接口
– 獨立的媒體接口(MII)或簡化的獨立媒體接口(RMII)
– 對于接收與發(fā)送有集成的28 字節(jié)FIFO及專用的DMA 通道
· USB 2.0 全速(12 M比特/秒) 主機雙端口
– 雙片上收發(fā)器(208引腳PQFP封裝中僅為一個)
– 集成的FIFO及專用的DMA 通道
· USB 2.0 全速(12 M比特/秒) 器件端口
– 片上收發(fā)器, 2-K字節(jié)可配置的集成FIFO
· 多媒體卡接口(MCI)
– 自動協(xié)議控制及快速自動數(shù)據(jù)傳輸
– 與MMC及SD存儲器卡兼容,支持兩個SD存儲器
· 3個同步串行控制器(SSC)
– 每個接收器與發(fā)送器有獨立的時鐘及幀同步信號
– 支持I2S模擬接口,時分復(fù)用
– 32比特的高速數(shù)據(jù)流傳輸能力
· 4個通用同步/異步接收/發(fā)送器(USART)
– 支持ISO7816 T0/T1 智能卡
– 硬軟件握手
– 支持RS485 及高達(dá)115 Kbps的IrDA 總線
– USART1為全調(diào)制解調(diào)控制線
· 主機/從機串行外設(shè)接口(SPI)
– 8~ 16 位可編程數(shù)據(jù)長度,可連接4個外設(shè)
· 兩個 3 通道16 位定時/計數(shù)器(TC)
– 3個外部時鐘輸入,每條通道有2 個多功能I/O引腳
– 雙PWM 產(chǎn)生器,捕獲/波形模式,上加/下減計數(shù)能力
· 兩線接口(TWI)
– 主機模式支持,所有兩線Atmel EEPROM 支持
· 所有數(shù)字引腳的IEEE 1149.1 JTAG邊界掃描
· 電源供應(yīng)
– VDDCORE,VDDOSC及VDDPLL電壓為:1.65V ~1.95V
– VDDIOP (外設(shè)I/O) 及VDDIOM (存儲器I/O)電壓為:1.65V~ 3.6V
結(jié)構(gòu)特點
以ARM9E-S為例介紹ARM9處理器的主要結(jié)構(gòu)及其特點。ARM9E-S的結(jié)構(gòu)如圖4所示。其主要特點如下:
⑴32bit定點RISC處理器,改進型ARM/Thumb代碼交織,增強性乘法器設(shè)計。支持實時(real-time)調(diào)試;
⑵片內(nèi)指令和數(shù)據(jù)SRAM,而且指令和數(shù)據(jù)的存儲器容量可調(diào);
⑶片內(nèi)指令和數(shù)據(jù)高速緩沖器(cache)容量從4K字節(jié)到1M字節(jié);
⑷設(shè)置保護單元(protection unit),非常適合嵌入式應(yīng)用中對存儲器進行分段和保護;
⑸采用AMBA AHB總線接口,為外設(shè)提供統(tǒng)一的地址和數(shù)據(jù)總線;
⑹支持外部協(xié)處理器,指令和數(shù)據(jù)總線有簡單的握手信令支持;
⑺支持標(biāo)準(zhǔn)基本邏輯單元掃描測試方法學(xué),而且支持BIST(built-in-self-test);
⑻支持嵌入式跟蹤宏單元,支持實時跟蹤指令和數(shù)據(jù)。
ARM920T運行模式
ARM920T支持7種運行模式,分別為:
(1)用戶模式(usr),
ARM處理器正常的程序執(zhí)行狀態(tài);
(2)快速中斷模式 (fiq),
用于高速數(shù)據(jù)傳輸或通道處理;
(3)外部中斷模式(irq),
用于通用的中斷處理;
(4)管理模式(svc),
操作系統(tǒng)使用的保護模式;
(5)數(shù)據(jù)訪問終止模式(abt),
當(dāng)數(shù)據(jù)或指令預(yù)取終止時進入該模式,可用于虛擬存儲及存儲保護;
(6)系統(tǒng)模式(sys),
運行具有特權(quán)的操作系統(tǒng)任務(wù);
(7)未定義指令中止模式(und)
當(dāng)未定義的指令執(zhí)行時進入該模式,可用于支持硬件協(xié)處理器的軟件仿真。
ARM微處理器的運行模式可以通過軟件改變,也可以通過外部中斷或異常處理改變。大多數(shù)的應(yīng)用程序運行在用戶模式下,當(dāng)處理器運行在用戶模式下時,某些被保護的系統(tǒng)資源是不能被訪問的。除用戶模式以外,其余的6種模式稱為特權(quán)模式;其中除去用戶模式和系統(tǒng)模式以外的5種又稱為異常模式,常用于處理中斷或異常,以及訪問受保護的系統(tǒng)資源等情況。
處理能力
新一代的ARM9處理器,通過全新的設(shè)計,采用了更多的晶體管,能夠達(dá)到兩倍以上于ARM7處理器的處理能力。這種處理能力的提高是通過增加時鐘頻率和減少指令執(zhí)行周期實現(xiàn)的。
(一) 時鐘頻率的提高:
ARM7處理器采用3級流水線,而ARM9采用5級流水線。增加的流水線設(shè)計提高了時鐘頻率和并行處理能力。5級流水線能夠?qū)⒚恳粋€指令處理分配到5個時鐘周期內(nèi),在每一個時鐘周期內(nèi)同時有5個指令在執(zhí)行。在同樣的加工工藝下,ARM9TDMI處理器的時鐘頻率是ARM7TDMI的1.8~2.2倍。
(二) 指令周期的改進:
指令周期的改進對于處理器性能的提高有很大的幫助。性能提高的幅度依賴于代碼執(zhí)行時指令的重疊,這實際上是程序本身的問題。對于采用最高級的語言,一般來說,性能的提高在30%左右。
最后,學(xué)習(xí)ARM9,可以按Linux應(yīng)用開發(fā)、驅(qū)動開發(fā)順序?qū)W習(xí)。如果想學(xué)習(xí)Android系統(tǒng)開發(fā),可以學(xué)完ARM9再學(xué)習(xí)ARM11開發(fā)板下的安卓系統(tǒng)開發(fā)。因為安卓系統(tǒng)就是Linux內(nèi)核+libc庫用Java封裝而成。
ARM9是比較成熟的系列,現(xiàn)在很多成熟的產(chǎn)品都是用arm9開發(fā)的。這個學(xué)好了,以后的系列自學(xué)都會容易一些,因為ARM系列架構(gòu)都是一樣的。所謂“師傅領(lǐng)進門,修行在自身”,學(xué)會用一種處理器,掌握學(xué)習(xí)方法,其他的也一樣。