ARM9系列處理器是英國ARM公司設(shè)計的主流嵌入式處理器,主要包括ARM9TDMI和ARM9E-S等系列。本文主要介紹它們與ARM7TDMI的結(jié)構(gòu)以及性能比較。
以手機(jī)應(yīng)用為例,2G手機(jī)只需提供語音及簡單的文字短信功能,而目前的2.5G和未來的3G手機(jī)除了提供這兩項功能外,還必須提供各種其他的應(yīng)用功能。主要包括:(1)無線網(wǎng)絡(luò)設(shè)備:手機(jī)上網(wǎng)、電子郵件及其他定位服務(wù)等功能;(2)PDA功能:含有用戶操作系統(tǒng)(Windows CE、Symbian OS、Linux等)及其他功能;(3)高性能功能:音頻播放器、視頻電話、手機(jī)游戲等。在2.5G和3G的應(yīng)用中ARM9已經(jīng)全面替代了ARM7。因為ARM9的新特性能夠滿足各種新需求的同時減少產(chǎn)品研發(fā)時間并降低研發(fā)費用。
新一代的ARM9處理器,通過全新的設(shè)計,采用了更多的晶體管,能夠達(dá)到兩倍以上于ARM7處理器的處理能力。這種處理能力的提高是通過增加時鐘頻率和減少指令執(zhí)行周期實現(xiàn)的。
1 時鐘頻率的提高
ARM7處理器采用3級流水線,而ARM9采用5級流水線,如圖1、2、3所示。增加的流水線設(shè)計提高了時鐘頻率和并行處理能力。5級流水線能夠?qū)⒚恳粋指令處理分配到5個時鐘周期內(nèi),在每一個時鐘周期內(nèi)同時有5個指令在執(zhí)行。在同樣的加工工藝下,ARM9TDMI處理器的時鐘頻率是ARM7TDMI的1.8~2.2倍。
圖1、圖2和圖3
2 指令周期的改進(jìn)
指令周期的改進(jìn)對于處理器性能的提高有很大的幫助。性能提高的幅度依賴于代碼執(zhí)行時指令的重疊,這實際上是程序本身的問題。對于采用最高級的語言,一般來說,性能的提高在30%左右。
2.1 loads 指令矛n stores指令
指令周期數(shù)的改進(jìn)最明顯的是loads指令和stores指令。從ARM7到ARM9這兩條指令的執(zhí)行時間減少了30%。指令周期的減少是由于ARM7和ARM9兩種處理器內(nèi)的兩個基本的微處理結(jié)構(gòu)不同所造成的。
(1)ARM9有獨立的指令和數(shù)據(jù)存儲器接口,允許處理器同時進(jìn)行取指和讀寫數(shù)據(jù)。這叫作改進(jìn)型哈佛結(jié)構(gòu)。而ARM7只有數(shù)據(jù)存儲器接口,它同時用來取指令和數(shù)據(jù)訪問。
(2)5級流水線引入了獨立的存儲器和寫回流水線,分別用來訪問存儲器和將結(jié)果寫回寄存器。
以上兩點實現(xiàn)了一個周期完成loads指令和stores指令。
2.2 互鎖(interlocks)技術(shù)
當(dāng)指令需要的數(shù)據(jù)因為以前的指令沒有執(zhí)行完而沒有準(zhǔn)備好就會產(chǎn)生管道互鎖。當(dāng)管道互鎖發(fā)生時,硬件會停止這個指令的執(zhí)行,直到數(shù)據(jù)準(zhǔn)備好為止。雖然這種技術(shù)會增加代碼執(zhí)行時間,但是為初期的設(shè)計者提供了巨大的方便。編譯器以及匯編程序員可以通過重新設(shè)計代碼的順序或者其他方法來減少管道互鎖的數(shù)量。
2.3 分枝指令
ARM9和ARM7的分枝指令周期是相同的。而且ARM9TDMI和ARM9E-S并沒有對分枝指令進(jìn)行預(yù)測處理。