ARM處理器體系結(jié)構(gòu)簡要總結(jié)
搞arm兩個(gè)月了,有點(diǎn)收獲,就談它了。本文主要介紹ARM7系列處理器。呵呵,不是相關(guān)專業(yè)可能有很多人不知道arm是個(gè)什么東西吧,我現(xiàn)在簡要介紹一下各種處理器分類,目前我們的處理器陣營中分為CISC和RISC兩大系列,CISC是復(fù)雜指令集處理器,這種處理器每條指令可以執(zhí)行比較多的復(fù)雜操作,而且指令長度不定,我知道的有X86處理器是CISC處理器,目前intel和amd出的處理器主要都是x86處理器,intel的x86從8086開始到80186,283,386,486,Pemtium,pentium pro,pentium 2,pentium 3,pentium 4,扣肉2,四核志強(qiáng)等,還有賽揚(yáng),pentium M,pentium D等很多變種,有些提供高的性價(jià)比,有的專用于移動(dòng)領(lǐng)域或低功耗領(lǐng)域。Amd的x86有毒龍,速龍,酷龍等。從8086到386是一次飛躍,實(shí)現(xiàn)了保護(hù)模式和虛86模式,以此為基礎(chǔ)才有后來的Window3.1,386到Pentium是一次飛躍,硬件上從硬連邏輯轉(zhuǎn)換到微指令實(shí)現(xiàn),pentium 到扣肉又是一次較大的飛躍,從一個(gè)處理器核到兩個(gè),為多任務(wù)提供了充分的支持。RISC處理器種類比較多,指令長度固定,執(zhí)行周期固定,從微控制器、mips、arm、alpha、powerpc、sun sparc等。微控制器子類又很多,目前很多較小的嵌入式控制場合都用得是微控制器,比如sim卡,一卡通,電子表等,有單片機(jī)、pic、lpc等。mips是mips公司研究出的一套體系結(jié)構(gòu),目前龍芯,聚芯都是基于mips,個(gè)人認(rèn)為10年內(nèi)會銷聲匿跡。alpha不了解,很少用到。powerpc是ibm,hp等公司合力出的一套,挺復(fù)雜,結(jié)構(gòu)嚴(yán)謹(jǐn),但推廣不好,sparc只在sun得到大力支持。arm是目前應(yīng)用最廣泛的一套指令系統(tǒng),支持多任務(wù),只要是超出單片機(jī)能力、x86又太浪費(fèi)的場合大部分都用arm。90%的智能手機(jī)都是arm處理器。
arm處理器有7個(gè)處理器模式(x86有3個(gè)),用戶模式、管理模式、未定義模式、中止模式、特權(quán)模式、irq模式,fiq模式。
用戶模式和管理模式:共用r0-r14個(gè)通用寄存器,pc寄存器,共用一個(gè)cpsr。
未定義模式、中止模式、特權(quán)模式、irq模式:共享用戶模式和管理模式的r0-r12,各自專用的r13-r14,注意和用戶模式的r13-r14不同,pc寄存器,各自專用的cpsr和spsr。
fiq模式:共享用戶模式和管理模式的r0-r7,專用的r8-r14,pc寄存器,各自專用的cpsr和spsr。
注意pc寄存器是所有模式共享一個(gè)。
編程時(shí)如果c和匯編共存要遵守atpcs標(biāo)準(zhǔn),簡單的說這個(gè)標(biāo)準(zhǔn)要求函數(shù)調(diào)用時(shí)r0-r3傳遞參數(shù),如果參數(shù)多于四個(gè)通過堆棧傳遞,從右往左壓參。如果有返回值用r0表示。
用戶模式相當(dāng)于x86中的第三特權(quán)級,用于執(zhí)行普通任務(wù),不可以執(zhí)行特權(quán)操作,不能切換模式等,
未定義模式用于執(zhí)行一條未定義指令時(shí)觸發(fā),可通過軟件模擬執(zhí)行,用于模擬浮點(diǎn)或dsp等.
中止模式用于取指出錯(cuò)或訪存出錯(cuò),內(nèi)在原因可能是需要調(diào)頁,或訪問了非法區(qū)域.
特權(quán)模式在reset后自動(dòng)進(jìn)入,通過swi軟指令中斷也可進(jìn)入.
評論