【正文】
中央處理器 存儲(chǔ)器 程序 指令 0 指令 1 指令 2 指令 3 指令 4 數(shù)據(jù) 數(shù)據(jù) 0 數(shù)據(jù) 1 數(shù)據(jù) 2 結(jié)構(gòu)特點(diǎn): 指令和數(shù)據(jù)存儲(chǔ)在相同的內(nèi)存空間,但存儲(chǔ)地址不同。第 二 章 ARM微處理器硬件結(jié)構(gòu) 嵌入式系統(tǒng)原理與接口技術(shù) 計(jì)算機(jī)應(yīng)用研究所 2 內(nèi)容提要 ARM 存 儲(chǔ) 系 統(tǒng) 機(jī) 制 ARM處理器結(jié)構(gòu) 和技術(shù)特征 計(jì)算機(jī)體系結(jié)構(gòu) 計(jì)算機(jī)應(yīng)用研究所 3 計(jì)算機(jī)體系結(jié)構(gòu) ? 計(jì)算機(jī)中,按內(nèi)存的組成分兩種典型的結(jié)構(gòu): 諾依曼結(jié)構(gòu) /普林斯頓結(jié)構(gòu) 計(jì)算機(jī)應(yīng)用研究所 4 馮 處理器利用相同的總線處理內(nèi)存中的指令和數(shù)據(jù),指令和數(shù)據(jù)具有相同的數(shù)據(jù)寬度,指令與數(shù)據(jù)無(wú)法同時(shí)存取。 指令與數(shù)據(jù)的存取采用不同總線,取指令和存取數(shù)據(jù)可同時(shí)進(jìn)行,微處理器具有較高的執(zhí)行效率。 計(jì)算機(jī)應(yīng)用研究所 6 第 2章 ARM微處理器硬件結(jié)構(gòu) 1 2 計(jì) 算 機(jī) 體 系 結(jié) 構(gòu) ARM處理器結(jié)構(gòu) 和技術(shù)特征 ARM 存 儲(chǔ) 系 統(tǒng) 機(jī) 制 3 計(jì)算機(jī)應(yīng)用研究所 7 ARM ARM公司簡(jiǎn)介 ARM是 Advanced RISC Machines的縮寫(xiě),它是一家微處理器行業(yè)的知名企業(yè),該企業(yè)設(shè)計(jì)了大量高性能、廉價(jià)、耗能低的 RISC (精簡(jiǎn)指令集)處理器。它將技術(shù)授權(quán)給世界上許多著名的半導(dǎo)體、軟件和 OEM廠商,并提供服務(wù) 計(jì)算機(jī)應(yīng)用研究所 8 ARM ARM公司簡(jiǎn)介 將技術(shù)授權(quán)給其它芯片廠商 形成各具特色的 ARM芯片 . . . 計(jì)算機(jī)應(yīng)用研究所 9 ARM Family ARM7? Family ARM9? Family ARM10? Family ARM11? Family 150DMIPS 300 DMIPS 500 DMIPS 1000 DMIPS ARM Cortex ? Family ARM720T ARM1136J ARM1176JZ ARM1026E ARM920T/ARM922T ARM926EJ Cortex A Application Processor ARM7TDMI ARM1156T2 ARM1026E ARM946E Cortex R Embedded RT Controller ARM7TDMI ARM966E ARM968E Cortex M Microcontroller ARM Architecture 計(jì)算機(jī)應(yīng)用研究所 10 ARM處理器的技術(shù)優(yōu)勢(shì) ? 低能耗:當(dāng)初剛剛起步的嵌入式應(yīng)用對(duì)運(yùn)算性能并不苛求,但對(duì)芯片的功耗卻相當(dāng)敏感。 ? 應(yīng)用方案非常靈活:由于 ARM公司只是提供了一個(gè)高效精簡(jiǎn)的核心,各半導(dǎo)體廠商可根據(jù)自身需求進(jìn)行應(yīng)用設(shè)計(jì),架構(gòu)靈活簡(jiǎn)便、擴(kuò)展力很強(qiáng)。 ? 得到大量的軟件支持:包括 Windows CE、 Symbian和Palm OS在內(nèi)的手持設(shè)備三種主要操作系統(tǒng)系統(tǒng)都是基于 ARM架構(gòu)所設(shè)計(jì)。 計(jì)算機(jī)應(yīng)用研究所 11 ARM處理器的應(yīng)用 ? 當(dāng)前主要應(yīng)用于消費(fèi)類電子領(lǐng)域; ? 到目前為止,基于 ARM技術(shù)的微處理器應(yīng)用約占據(jù)了 32位嵌入式微處理器 75%以上的市場(chǎng)份額 ? 全球 80%的 GSM/3G手機(jī)、 99%的 CDMA手機(jī)以及絕大多數(shù) PDA產(chǎn)品均采用 ARM體系的嵌入式處理器, ? “掌上計(jì)算”相關(guān)的所有領(lǐng)域皆為其所主宰。 計(jì)算機(jī)應(yīng)用研究所 12 ARM處理器內(nèi)核 ? 微處理器是整個(gè)系統(tǒng)的核心,通常由 4部分組成:控制 部件 、算術(shù)邏輯 部件、 寄存器 組和內(nèi)部總線 。協(xié)處理器接口可以看作 ARM內(nèi)部總線的擴(kuò)展, ARM處理器內(nèi)核能通過(guò)協(xié)處理器指令對(duì)協(xié)處理器進(jìn)行操作。 計(jì)算機(jī)應(yīng)用研究所 14 協(xié)處理器號(hào) 功能 15 系統(tǒng)控制 14 調(diào)試控制器 138 保留 74 用戶 30 保留 計(jì)算機(jī)應(yīng)用研究所 15 ARM體系結(jié)構(gòu)版本 ? 各 ARM體系結(jié)構(gòu)版本 —— V1 該版本的 ARM體系結(jié)構(gòu),只有 26位的尋址空間,沒(méi)有商業(yè)化,其特點(diǎn)為: ? 基本的數(shù)據(jù)處理指令(不包括乘法); ? 字節(jié)、字和半字加載 /存儲(chǔ)指令; ? 具有分支指令,包括在子程序調(diào)用中使用的分支和鏈接指令; ? 在操作系統(tǒng)調(diào)用中使用的軟件中斷指令。 計(jì)算機(jī)應(yīng)用研究所 17 ARM體系結(jié)構(gòu)版本 ? 各 ARM體系結(jié)構(gòu)版本 —— V3 尋址范圍擴(kuò)展到 32位(目前已廢棄),具有獨(dú)立的程序: ? 具有乘法和乘加指令; ? 支持協(xié)處理器; ? 快速中斷模式中具有的兩個(gè)以上的分組寄存器; ? 具有原子性加載 /存儲(chǔ)指令 SWP和 SWPB。 計(jì)算機(jī)應(yīng)用研究所 19 ARM體系結(jié)構(gòu)版本 ? 各 ARM體系結(jié)構(gòu)版本 —— V5 在 V4版本的基礎(chǔ)上,對(duì)現(xiàn)在指令的定義進(jìn)行了必要的修正,對(duì) V4版本的體系結(jié)構(gòu)進(jìn)行了擴(kuò)展并并增加了指令,具體如下: ? 改進(jìn)了 ARM/Thumb狀態(tài)之間的切換效率; ? E增強(qiáng)型 DSP指令集 ,包括全部算法操作和 16位乘法操作; ? J支持新的 JAVA,提供字節(jié)代碼執(zhí)行的硬件和優(yōu)化軟件加速功能。此架構(gòu)在 V5版基礎(chǔ)上增加了以下功能: 改進(jìn)了 ARM/Thumb狀態(tài)之間的切換效率; ? THUMBTM: 35%代碼壓縮; ? DSP擴(kuò)充:高性能定點(diǎn) DSP功能; ? JazelleTM: Java性能優(yōu)化,可提高 8倍; ? Media擴(kuò)充:音 /視頻性能優(yōu)化,可提高 4倍。 ? 所有 ARMv7 profiles實(shí)現(xiàn) Thumb2技術(shù),同時(shí)還包括了 NEON?技術(shù)的擴(kuò)展提高 DSP和多媒體處理吞吐量 400% ,并提供浮點(diǎn)支持以滿足下一代 3D圖形和游戲以及傳統(tǒng)嵌入式控制應(yīng)用的需要。目前應(yīng)用比較廣泛的系列是: ARM7 ARM9 ARM9E ARM10 ARM11 SecurCore Cortex Xscale 計(jì)算機(jī)應(yīng)用研究所 24 ARM7 ?ARM7微處理器系列 特點(diǎn): 馮諾伊曼體系結(jié)構(gòu); ?ARMTDMI是目前應(yīng)用最廣的微處理器核 。 計(jì)算機(jī)應(yīng)用研究所 25 A L E A [ 3 1 : 0 ] A B En E N O U T n E N I ND B E D [ 3 1 : 0 ]掃 描 控 制指 令 譯 碼 和邏 輯 控 制D B G R Q IB R E A K P T ID B G A C KE C L Kn E X E CI S Y N CB L [ 3 : 0 ]A P EM C L Kn W A I Tn R WM A S [ 1 : 0 ]n I R Qn F I Qn R E S E TA B O R Tn T R A N Sn M R R E Qn O P CS E QL O C Kn C P IC P AC P Bn M [ 4 : 0 ]T B ET B I TH I G H Z指 令 流 水 線讀 數(shù) 據(jù) 寄 存 器T h u m b 指 令 控 制 器寫(xiě) 數(shù) 據(jù) 寄 存 器PC總線A總線桶 形 移 位 器3 2 X 8 乘 法 器寄 存 器 組( 3 1 x 3 2 位 寄 存 器 )( 6 狀 態(tài) 寄 存 器 )地 址 寄 存 器B總線地 址增 量 器增量器總線ALU總線3 2 位 A L U計(jì)算機(jī)應(yīng)用研究所 26 A R M 7 T D M IM C L Kn W A I TE C L Kn I R Qn F I QI S Y N Cn R E S E TB U S E NH I G H Zn H I G H ZB I G E N On E N I Nn E N O U Tn E N O U T IA B EA L EA P ED B ET B EB U S D I SE C A P A L KD B G R QB R E A K P TD B G A CKn E X E CE X T E R N 1E X T E R N 0D B G E NR A N G E O U T0R A N G E O U T1D B G R Q IC O M M R XC O M M T XI N S T R V A L I DD O U T [ 3 1 : 0 ]D [ 3 1 : 0 ]D I N [ 3 1 : 0 ]n M R E QS E Qn R WM A S [ 1 : 0 ]B L [ 3 : 0 ]L O C Kn T R A N SA B O R TV D DV S Sn O P Cn C P IC P AC P BT C KT M ST D In T R S TT D On T R S TT D OT A P S M [ 3 : 0 ]I R [ 3 : 0 ]n T D O E NT C K 1T C K 2S C R E G [ 3 : 0 ]n M [ 4 : 0 ]T B I TA [ 3 1 : 0 ]1 1邊 界掃 描邊 界 掃 描控 制 信 號(hào)處 理 器 模 式處 理 器 狀 態(tài)存 儲(chǔ) 器接 口存 儲(chǔ) 器管 理 接 口電 源協(xié) 處 理接 口調(diào) 試總 線控 制中 斷時(shí) 鐘 和定 時(shí)計(jì)算機(jī)應(yīng)用研究所 27 ARM7TDIM部分信號(hào)解釋 ? APE(address pipe line enable) ? ALE(address latch enable) ? ABE(address bus enable) ? LOCK(locked operation) ? MCLK(memory clock input) ? nWAIT(not wait) ? ECLK(external clock output) ? nRESET(not reset) ? nRW(not read/write) ? nMREQ(not memory request) 計(jì)算機(jī)應(yīng)用研究所 28 APE信號(hào) ? APE(address pipe line enable) ? 選擇地址總線、 LOCK、 MAS[1:0]、 nRW、 nOPC和 nTRANS信號(hào)是操作在流水線方式 (APE為高 )還是非流水線方式 (APE為低 )。 ? 對(duì)于新設(shè)計(jì),若需要地址重新定義時(shí), ARM公司則推薦使用APE,并將 ALE接高。這可允許這些地址信號(hào)在整個(gè)存儲(chǔ)器訪問(wèn)周期內(nèi)都有效。 計(jì)算機(jī)應(yīng)用研究所 30 ABE信號(hào) ? ABE(address bus enable) ? 該引腳信號(hào)為高時(shí),地址總線有效。 ? 也用同樣的方法控制 LOCK、 MAS[1:0]、 nRW、 nOPC和nTRANS信號(hào)。 計(jì)算機(jī)應(yīng)用研究所 31 LOCK信號(hào) ? LOCK(locked operation) ? 一個(gè)受 APE、 ALE和 ABE控制的信號(hào)。 ? 當(dāng)處理器執(zhí)行一個(gè)鎖定內(nèi)存區(qū)訪問(wèn)時(shí)為高,則表明正在執(zhí)行 SWP和 SWPB指令。 ? 信號(hào)值為高表明這些指令執(zhí)行原子性讀/寫(xiě)操作,可用于實(shí)現(xiàn)信號(hào)量。 計(jì)算機(jī)應(yīng)用研究所 32 MCLK信號(hào) ? MCLK(memory clock input) ? 所有存儲(chǔ)器訪問(wèn)和處理器操作的主時(shí)鐘。另外, nWAIT可與自由運(yùn)行的 MCLK一起使用以獲得同樣的效果。在內(nèi)部 nWAIT與MCLK進(jìn)行邏輯 “ 與 ” 且必須僅在 MCLK為低時(shí)改變。 ? 相當(dāng)于 x86處理器的 Ready信號(hào)(輸入,高電平)。當(dāng)內(nèi)核正在被調(diào)試時(shí),它是 DCLK,由 TCLK內(nèi)部產(chǎn)生。低電平將引起正在執(zhí)行的指令非正常中止。 ? 當(dāng)它為低時(shí),處理器執(zhí)行內(nèi)部周期,同時(shí)地址從復(fù)位處增值。當(dāng)它保持為高至少 1個(gè)時(shí)鐘周期時(shí),處理器從地址 0重新開(kāi)始。 ? nRW指定傳送的方向。 S周期的突發(fā)傳送始終是讀突發(fā),或者寫(xiě)突發(fā)。 計(jì)算機(jī)應(yīng)用研究所 37 nMREQ信號(hào) ? nMREQ(not memory request) ? 存儲(chǔ)器訪問(wèn)請(qǐng)求信號(hào),低電平有效。 計(jì)算機(jī)應(yīng)用研究所 38 ARM7TDMI ARM7TDMI:整數(shù)處理核 ARM7TDMI 處理器的可綜合版本; ARM720T:帶 MMU的處理器核心,支持操作系統(tǒng); ARM