ARM9處理器與ARM7處理器比較
2 指令周期的改進(jìn)
指令周期的改進(jìn)對(duì)于處理器性能的提高有很大的幫助。性能提高的幅度依賴于代碼執(zhí)行時(shí)指令的重疊,這實(shí)際上是程序本身的問題。對(duì)于采用最高級(jí)的語言,一般來說,性能的提高在30%左右。
2.1 loads 指令矛n stores指令
指令周期數(shù)的改進(jìn)最明顯的是loads指令和stores指令。從ARM7到ARM9這兩條指令的執(zhí)行時(shí)間減少了30%。指令周期的減少是由于ARM7和ARM9兩種處理器內(nèi)的兩個(gè)基本的微處理結(jié)構(gòu)不同所造成的。
(1)ARM9有獨(dú)立的指令和數(shù)據(jù)存儲(chǔ)器接口,允許處理器同時(shí)進(jìn)行取指和讀寫數(shù)據(jù)。這叫作改進(jìn)型哈佛結(jié)構(gòu)。而ARM7只有數(shù)據(jù)存儲(chǔ)器接口,它同時(shí)用來取指令和數(shù)據(jù)訪問。
(2)5級(jí)流水線引入了獨(dú)立的存儲(chǔ)器和寫回流水線,分別用來訪問存儲(chǔ)器和將結(jié)果寫回寄存器。
以上兩點(diǎn)實(shí)現(xiàn)了一個(gè)周期完成loads指令和stores指令。
2.2 互鎖(interlocks)技術(shù)
當(dāng)指令需要的數(shù)據(jù)因?yàn)橐郧暗闹噶顩]有執(zhí)行完而沒有準(zhǔn)備好就會(huì)產(chǎn)生管道互鎖。當(dāng)管道互鎖發(fā)生時(shí),硬件會(huì)停止這個(gè)指令的執(zhí)行,直到數(shù)據(jù)準(zhǔn)備好為止。雖然這種技術(shù)會(huì)增加代碼執(zhí)行時(shí)間,但是為初期的設(shè)計(jì)者提供了巨大的方便。編譯器以及匯編程序員可以通過重新設(shè)計(jì)代碼的順序或者其他方法來減少管道互鎖的數(shù)量。
2.3 分枝指令
ARM9和ARM7的分枝指令周期是相同的。而且ARM9TDMI和ARM9E-S并沒有對(duì)分枝指令進(jìn)行預(yù)測(cè)處理。
評(píng)論