ARM指令集為32位指令集,可以實(shí)現(xiàn)ARM架構(gòu)下所有功能。Thumb指令集是對(duì)32位ARM指令集的擴(kuò)充,它的目標(biāo)是為了實(shí)現(xiàn)更高的代碼密度。Thumb指令集實(shí)現(xiàn)的功能只是 32位A R M指令集的子集,它僅僅把常用的A R M指令壓縮成16位的指令編碼方式。在指令的執(zhí)行階段,16位的指令被重新解碼,完成對(duì)等的32位指令所實(shí)現(xiàn)的功能。與全部用ARM指令集的方式相比,使用Thumb指令可以在代碼密度方面改善大約30%。但是,這種改進(jìn)是以代碼的效率為代價(jià)的。盡管每個(gè)Thumb指令都有相對(duì)應(yīng)的ARM指令,但是,相同的功能,需要更多的Thumb指令才能完成。因此,當(dāng)指令預(yù)取需要的時(shí)間沒有區(qū)別時(shí),ARM指令相對(duì)Thumb指令具有更好的性能。
評(píng)論