《電子技術應用》
您所在的位置:首頁 > 嵌入式技术 > 设计应用 > ARM处理器体系结构简要总结
ARM处理器体系结构简要总结
EEworld
EEworld
摘要: 搞arm两个月了,有点收获,就谈它了。本文主要介绍ARM7系列处理器。呵呵,不是相关专业可能有很多人不知道arm...
Abstract:
Key words :

關鍵字:ARM處理器體系結構

  搞arm兩個月了,有點收獲,就談它了。本文主要介紹ARM7系列處理器。呵呵,不是相關專業可能有很多人不知道arm是個什么東西吧,我現在簡要介紹一下各種處理器分類,目前我們的處理器陣營中分為CISC和RISC兩大系列,CISC是復雜指令集處理器,這種處理器每條指令可以執行比較多的復雜操作,而且指令長度不定,我知道的有X86處理器是CISC處理器,目前intel和amd出的處理器主要都是x86處理器,intel的x86從8086開始到80186,283,386,486,Pemtium,pentium pro,pentium 2,pentium 3,pentium 4,扣肉2,四核志強等,還有賽揚,pentium M,pentium D等很多變種,有些提供高的性價比,有的專用于移動領域或低功耗領域。Amd的x86有毒龍,速龍,酷龍等。從8086到386是一次飛躍,實現了保護模式和虛86模式,以此為基礎才有后來的Window3.1,386到Pentium是一次飛躍,硬件上從硬連邏輯轉換到微指令實現,pentium 到扣肉又是一次較大的飛躍,從一個處理器核到兩個,為多任務提供了充分的支持。RISC處理器種類比較多,指令長度固定,執行周期固定,從微控制器、mips、arm、alpha、powerpc、sun sparc等。微控制器子類又很多,目前很多較小的嵌入式控制場合都用得是微控制器,比如sim卡,一卡通,電子表等,有單片機、pic、lpc等。mips是mips公司研究出的一套體系結構,目前龍芯,聚芯都是基于mips,個人認為10年內會銷聲匿跡。alpha不了解,很少用到。powerpc是ibm,hp等公司合力出的一套,挺復雜,結構嚴謹,但推廣不好,sparc只在sun得到大力支持。arm是目前應用最廣泛的一套指令系統,支持多任務,只要是超出單片機能力、x86又太浪費的場合大部分都用arm。90%的智能手機都是arm處理器。

  arm處理器有7個處理器模式(x86有3個),用戶模式、管理模式、未定義模式、中止模式、特權模式、irq模式,fiq模式。

  用戶模式和管理模式:共用r0-r14個通用寄存器,pc寄存器,共用一個cpsr。

  未定義模式、中止模式、特權模式、irq模式:共享用戶模式和管理模式的r0-r12,各自專用的r13-r14,注意和用戶模式的r13-r14不同,pc寄存器,各自專用的cpsr和spsr。

  fiq模式:共享用戶模式和管理模式的r0-r7,專用的r8-r14,pc寄存器,各自專用的cpsr和spsr。

  注意pc寄存器是所有模式共享一個。

  編程時如果c和匯編共存要遵守atpcs標準,簡單的說這個標準要求函數調用時r0-r3傳遞參數,如果參數多于四個通過堆棧傳遞,從右往左壓參。如果有返回值用r0表示。

  用戶模式相當于x86中的第三特權級,用于執行普通任務,不可以執行特權操作,不能切換模式等,

  未定義模式用于執行一條未定義指令時觸發,可通過軟件模擬執行,用于模擬浮點或dsp等.

  中止模式用于取指出錯或訪存出錯,內在原因可能是需要調頁,或訪問了非法區域.

  特權模式在reset后自動進入,通過swi軟指令中斷也可進入.

  irq用于普通中斷處理,速度慢,進irq后默認關普通中斷,但開fiq.fiq用于快速中斷處理,有專用的r8-r14寄存器,一般不需要保存現場,進fiq后所有中斷標記都關掉.

  除用戶模式外其他模式都有特權,可以為所欲為.

  r13默認用來作為堆棧寄存器,r14用于保存返回地址.

  用戶模式和管理模式只有cpsr,沒有spsr。cpsr是當前狀態寄存器,內含算數運行標記位,irq和fiq標記,模式位,保留位。spsr是cpsr的備份。

  arm處理器支持arm指令集和thumb指令集,arm指令集是32位,thumb指令集是16位,具有arm指令集的子集功能,實現同樣的功能用thumb指令集所需空間較小,但執行時間有可能變長。arm代碼向thumb代碼跳轉通過BX指令完成。BX指令通過判斷數據項的最后一位來確定是否轉入thumb或arm模式,跳轉后會設置cpsr中的模式位。

  這里我不打算描述arm或thumb指令集,因為那需要太大的篇幅,但arm和x86相比有一些很大的特殊之處就是它的堆棧可以向上或向下增長,而且存數與累加誰在先都可,這樣就有四種堆棧方式;另外每條arm指令都帶有執行條件,像溢出,進位等,只有在滿足特定條件下指令才會得到執行;當然arm指令集不存在像x86指令集那樣的向下兼容性,386支持16位實模式,兼容8086,但32位arm卻沒法識別16位arm指令集。

  這是我對arm處理器內部的一些了解。

  下面談談philips公司出的一款lpc2214處理器,內含arm7tdmi-s處理器核,支持jtag調試和跟蹤。lpc2214一共有三條內部總線,一條是內部局部總線,用來連接內部ram和rom,rom有256kb,ram16k。另一條是amba總線ahb,主要連接向量中斷控制器和外部存儲器接口,第三條是vpb,通過vpb橋橋接到ahb,用于低速外設,有點x86主板的味道,不過它把這三個總線都集成在一個處理器里面。vpb上連接了好多外設,像uart,i2c,spi,timer,pwm,a/d,rtc,hot dog,系統控制,外部中斷。這些外設通常以主頻的1/2,1/4,1倍速度運行,這里我不會講這些外設如何控制,如何設定寄存器,那楊可以寫一本數據手冊了。我只講我覺得這個處理器里我覺得比較有意思的東西。

  這個處理器內含振蕩器,可以外接晶振也可直接接時鐘,還含有pll,我們使用時通常讓它在振蕩器模式下啟動運行,然后切換到pll模式,可以提高運行速度。這個處理器有掉電模式和空閑模式,空閑模式只禁止cpu的時鐘,但是外設時鐘繼續運行,在掉電模式pll停止運行,掉電模式通過reset可復位,空閑模式通過reset或外部中斷可復位。lpc2214可以外接各類接口芯片,它一共有四個外接設備地址空間,每個空間有16M,可以按8,16,32位模式訪問。lpc2214有一個存儲器加速模塊,可以設定是否預取,可以設定不預取,連續指令預取,所有指令數據都預取,開機默認是不預取。其實第三個情況就類似x86中的二級cache,因為目前的家用x86處理器cache設計都是兩極結構,第一級是哈佛結構,第二級就是指令數據共享一個cache。其實即使在不預取的情況下因為lpc2214是三級流水線結構,也會預取兩條指令,當前指令地址為pc+2,這只是層次和說法上的問題。最后就是處理器的地址空間布局,lpc2214不存在io空間,它是內存空間統一編址,0地址開始是rom,256k,1G以上是ram,16k,2G以上是外部地址空間,64M,2.5G以上是vpb和ahb地址空間;其中rom空間的頂端是boot block塊,8k,這8k還映射到2G的頂端。最低64字節是中斷向量表,可以映射到boot block,內部rom,內部ram,外部空間,具體映射可以設定memmap寄存器。

 

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 免费在线国产精品| 国产综合在线观看视频| 欧美亚洲国产成人| 国产精品视频午夜| 91久久精品国产91久久| 91久久精品www人人做人人爽| 激情婷婷综合网| 美日韩精品免费视频| 国产日韩一区二区在线观看| 欧美成人中文字幕| 国产在线视频不卡| 日韩中文字幕视频| 极品尤物一区二区三区| 视频一区亚洲| 国产欧美自拍视频| 精品一区二区中文字幕| 伊人久久大香线蕉精品| www黄色av| 国产日韩欧美亚洲一区| 欧美日韩一区二| 欧美极品日韩| 欧美一级中文字幕| 91精品在线观| 91精品视频播放| 激情伊人五月天| 日本一区精品| 亚洲综合成人婷婷小说| 91成人国产在线观看| 91国产美女视频| 亚洲国产精品女人| 久久精品99| 国产欧美欧洲| 国产mv免费观看入口亚洲| 国产精品美女主播在线观看纯欲| 国产有码在线一区二区视频| 久久久亚洲福利精品午夜| 97精品一区二区视频在线观看| 一区二区在线观看网站| 久久天天躁狠狠躁夜夜av| 中文字幕av久久| 国产自产在线视频一区|