版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第4章ARM簡(jiǎn)介
第四章:ARM簡(jiǎn)介第一節(jié)ARM體系結(jié)構(gòu)的特點(diǎn)第二節(jié)ARM微處理器結(jié)構(gòu)第三節(jié)ARM微處理器的寄存器結(jié)構(gòu)第四節(jié)ARM微處理器的異常處理第五節(jié)ARM的存儲(chǔ)器結(jié)構(gòu)第六節(jié)ARM微處理器指令系統(tǒng)第七節(jié)ARM微處理器的接口ARM的發(fā)展歷史ARM即AdvancedRISCMachines的縮寫(xiě)。1985年4月26日,第一個(gè)ARM原型在英國(guó)劍橋的Acorn計(jì)算機(jī)有限公司誕生,由美國(guó)加州SanJoseVLSI技術(shù)公司制造。20世紀(jì)80年代后期,ARM很快開(kāi)發(fā)成Acorn的臺(tái)式機(jī)產(chǎn)品,形成英國(guó)的計(jì)算機(jī)教育基礎(chǔ)。1990年成立了AdvancedRISCMachinesLimited。20世紀(jì)90年代,ARM32位嵌人式RISC(ReducedInstructionSetComputer)處理器擴(kuò)展到世界范圍,占據(jù)了低功耗、低成本和高性能的嵌入式系統(tǒng)應(yīng)用領(lǐng)域的領(lǐng)先地位。ARM公司雖然只成立10多年,但在1999年因移動(dòng)電話火爆市場(chǎng),其32位RISC處理器占市場(chǎng)份額超過(guò)了50%,2001年初,ARM公司的32位RISC處理器市場(chǎng)占有率超過(guò)了75%。ARM公司是知識(shí)產(chǎn)權(quán)供應(yīng)商,是設(shè)計(jì)公司。由合作伙伴公司來(lái)生產(chǎn)各具特色的芯片。ARM公司商業(yè)模式的強(qiáng)大之處在于其價(jià)格合理,全世界范圍有超過(guò)100個(gè)合作伙伴--包括半導(dǎo)體工業(yè)的著名公司。ARM公司專(zhuān)注于設(shè)計(jì),其內(nèi)核耗電少、成本低、功能強(qiáng),特有16/32位雙指令集。ARM已成為移動(dòng)通信、手持計(jì)算、多媒體數(shù)字消費(fèi)等嵌入式解決方案的RISC標(biāo)準(zhǔn)。1991-ARM推出第一款RISC嵌入式微處理器核ARM61993-ARM推出ARM7核。在ARM的發(fā)展歷程中,從ARM7開(kāi)始,ARM核被普遍認(rèn)可和廣泛使用1995–ARM的Thumb擴(kuò)展指令集結(jié)構(gòu)為16位系統(tǒng)增加了32位的性能,提供業(yè)界領(lǐng)先的代碼密度1995年StrongARM問(wèn)世XScale是下一代StrongARM芯片的發(fā)展基礎(chǔ)ARM10TDMI是ARM處理器核中的高端產(chǎn)品ARM11是ARM家族中性能最強(qiáng)的一個(gè)系列ARM發(fā)展歷程4.1ARM體系結(jié)構(gòu)的特點(diǎn)
采用RISC架構(gòu)的ARM微處理器一般具有如下特點(diǎn):●支持Thumb(16位)/ARM(32位)雙指令集,能很好的兼容8位/16位器件。Thumb指令集比通常的8位和16位CISC/RISC處理器具有更好的代碼密度;●指令執(zhí)行采用3級(jí)流水線/5級(jí)流水線技術(shù);●帶有指令Cache和數(shù)據(jù)Cache,大量使用寄存器,指令執(zhí)行速度更快。大多數(shù)數(shù)據(jù)操作都在寄存器中完成。尋址方式靈活簡(jiǎn)單,執(zhí)行效率高。指令長(zhǎng)度固定(在ARM狀態(tài)下是32位,在Thumb狀態(tài)下是16位);●支持大端格式和小端格式兩種方法存儲(chǔ)字?jǐn)?shù)據(jù);●支持Byte(字節(jié),8位)、Halfword(半字,16位)和Word(字,32位)三種數(shù)據(jù)類(lèi)型?!裰С钟脩?、快中斷、中斷、管理、中止、系統(tǒng)和未定義等7種處理器模式,除了用戶模式外,其余的均為特權(quán)模式;●處理器芯片上都嵌入了在線仿真ICE-RT邏輯,便于通過(guò)JTAG來(lái)仿真調(diào)試ARM體系結(jié)構(gòu)芯片,可以避免使用昂貴的在線仿真器。另外,在處理器核中還可以嵌入跟蹤宏單元ETM,用于監(jiān)控內(nèi)部總線,實(shí)時(shí)跟蹤指令和數(shù)據(jù)的執(zhí)行;●具有片上總線AMBA(AdvancedMicro-controllerBusArchitecture)。AMBA定義了3組總線:先進(jìn)高性能總線AHB(AdvancedHighperformanceBus);先進(jìn)系統(tǒng)總線ASB(AdvancedSystemBus);先進(jìn)外圍總線APB(AdvancedPeripheralBus)。通過(guò)AMBA可以方便地?cái)U(kuò)充各種處理器及I/O,可以把DSP、其他處理器和I/O(如UART、定時(shí)器和接口等)都集成在一塊芯片中;●采用存儲(chǔ)器映像I/O的方式,即把I/O端口地址作為特殊的存儲(chǔ)器地址;●具有協(xié)處理器接口。ARM允許接16個(gè)協(xié)處理器,如CP15用于系統(tǒng)控制,CP14用于調(diào)試控制器;●采用了降低電源電壓,可工作在3.0V以下;減少門(mén)的翻轉(zhuǎn)次數(shù),當(dāng)某個(gè)功能電路不需要時(shí)禁止門(mén)翻轉(zhuǎn);減少門(mén)的數(shù)目,即降低芯片的集成度;降低時(shí)鐘頻率等一些措施降低功耗;●體積小、低成本、高性能。
ARM微處理器包括ARM7、ARM9、ARM9E、ARM10E、SecurCore、以及Intel的StrongARM、XScale和其它廠商基于ARM體系結(jié)構(gòu)的處理器,除了具有ARM體系結(jié)構(gòu)的共同特點(diǎn)以外,每一個(gè)系列的ARM微處理器都有各自的特點(diǎn)和應(yīng)用領(lǐng)域。
一個(gè)典型的ARM體系結(jié)構(gòu)方框圖如圖2.1.1所示,包含有32位ALU、31個(gè)32位通用寄存器及6位狀態(tài)寄存器、32×8位乘法器32×32位桶形移位寄存器、指令譯碼及控制邏輯、指令流水線和數(shù)據(jù)/地址寄存器等。圖2.1.1ARM體系結(jié)構(gòu)方框圖1.ALUARM體系結(jié)構(gòu)的ALU與常用的ALU邏輯結(jié)構(gòu)基本相同,由兩個(gè)操作數(shù)鎖存器、加法器、邏輯功能、結(jié)果及零檢測(cè)邏輯構(gòu)成。ALU的最小數(shù)據(jù)通路周期包含寄存器讀時(shí)間、移位器延遲、ALU延遲、寄存器寫(xiě)建立時(shí)間、雙相時(shí)鐘間非重疊時(shí)間等幾部分。2.桶形移位寄存器ARM采用了32×32位桶形移位寄存器,左移/右移n位、環(huán)移n位和算術(shù)右移n位等都可以一次完成,可以有效的減少移位的延遲時(shí)間。在桶形移位寄存器中,所有的輸入端通過(guò)交叉開(kāi)關(guān)(Crossbar)與所有的輸出端相連。交叉開(kāi)關(guān)采用NMOS晶體管來(lái)實(shí)現(xiàn)。3.高速乘法器ARM為了提高運(yùn)算速度,采用兩位乘法的方法,2位乘法可根據(jù)乘數(shù)的2位來(lái)實(shí)現(xiàn)“加-移位”運(yùn)算。ARM的高速乘法器采用32×8位的結(jié)構(gòu),完成32×2位乘法也只需5個(gè)時(shí)鐘周期。4.浮點(diǎn)部件在ARM體系結(jié)構(gòu)中,浮點(diǎn)部件作為選件可根據(jù)需要選用,F(xiàn)PA10浮點(diǎn)加速器以協(xié)處理器方式與ARM相連,并通過(guò)協(xié)處理器指令的解釋來(lái)執(zhí)行。浮點(diǎn)的Load/Store指令使用頻度要達(dá)到67%,故FPA10內(nèi)部也采用Load/Store結(jié)構(gòu),有8個(gè)80位浮點(diǎn)寄存器組,指令執(zhí)行也采用流水線結(jié)構(gòu)。5.控制器ARM的控制器采用硬接線的可編程邏輯陣列PLA,其輸入端有14根、輸出端有40根,分散控制Load/Store多路、乘法器、協(xié)處理器以及地址、寄存器ALU和移位器。6.寄存器ARM內(nèi)含37個(gè)寄存器,包括31個(gè)通用32位寄存器和6個(gè)狀態(tài)寄存器。4.2ARM微處理器結(jié)構(gòu)
2.2.1ARM7微處理器ARM7系列微處理器包括ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ幾種類(lèi)型。其中,ARM7TMDI是目前使用最廣泛的32位嵌入式RISC處理器,主頻最高可達(dá)130MIPS,采用能夠提供0.9MIPS/MHz的三級(jí)流水線結(jié)構(gòu),內(nèi)嵌硬件乘法器(Multiplier),支持16位壓縮指令集Thumb,嵌入式ICE,支持片上Debug,支持片上斷點(diǎn)和調(diào)試點(diǎn)。指令系統(tǒng)與ARM9系列、ARM9E系列和ARM10E系列兼容,支持WindowsCE、Linux、PalmOS等操作系統(tǒng)。典型產(chǎn)品如Samsung公司的S3C4510B。1.ARM7TDMI處理器內(nèi)核ARM7TDMI處理器的內(nèi)核如圖2.2.1所示。圖2.2.1ARM7TDMI內(nèi)核結(jié)構(gòu)ARM7TDMI還提供了存儲(chǔ)器接口、MMU接口、協(xié)處理器接口和調(diào)試接口,以及時(shí)鐘與總線等控制信號(hào),如圖2.2.2所示。存儲(chǔ)器接口包括了32位地址A[31:0]、雙向32位數(shù)據(jù)總線D[31:0]、單向32位數(shù)據(jù)總線DIN[31:0]與DOUT[31:0]、以及存儲(chǔ)器訪問(wèn)請(qǐng)求MREQ、地址順序SEQ、存儲(chǔ)器訪問(wèn)控制MAS[1:0和數(shù)據(jù)鎖存控制BL[3:0]等控制信號(hào)。ARM7TDMI處理器內(nèi)核也可以ARM7TDMI-S軟核(Softcore)形式向用戶提供。同時(shí),提供多種組合選擇,例如可以省去嵌入式ICE單元等。圖2.2.2ARM7TDMI的接口2.ARM720T/ARM740T處理器內(nèi)核ARM720T處理器內(nèi)核是在ARM7TDMI處理器內(nèi)核基礎(chǔ)上,增加8KB的數(shù)據(jù)與指令Cache,支持段式和頁(yè)式存儲(chǔ)的MMU(MemoryManagementUnit)、寫(xiě)緩沖器及AMBA(AdvancedMicrocontrollerBusArchitecture)接口而構(gòu)成,如圖2.2.3所示。ARM740T處理器內(nèi)核與ARM720T處理器內(nèi)核相比,結(jié)構(gòu)基本相同,ARM740T處理器核沒(méi)有存儲(chǔ)器管理單元MMU,不支持虛擬存儲(chǔ)器尋址,而是用存儲(chǔ)器保護(hù)單元來(lái)提供基本保護(hù)和Cache的控制。合適低價(jià)格低功耗的嵌入式應(yīng)用。圖2.2.3ARM720T內(nèi)核結(jié)構(gòu)SamsungS3C44B0X微處理器是三星公司專(zhuān)為手持設(shè)備和一般應(yīng)用提供的高性價(jià)比和高性能的微控制器解決方案,它使用ARM7TDMI核,工作在66MHZ。為了降低系統(tǒng)總成本和減少外圍器件,這款芯片中還集成了下列部件:8KBCache、外部存儲(chǔ)器控制器、LCD控制器、4個(gè)DMA通道、2通道UART、1個(gè)多主I2C總線控制器、1個(gè)IIS總線控制器,5通道PWM定時(shí)器及一個(gè)內(nèi)部定時(shí)器、71個(gè)通用I/O口、8個(gè)外部中斷源、實(shí)時(shí)時(shí)鐘、8通道10位ADC等。SamsungS3C44B0X用于手持設(shè)備和通用嵌入式應(yīng)用的完整系統(tǒng);16/32位RISC結(jié)構(gòu)和帶ARM7DMICPU核的功能強(qiáng)大的指令集;Thumb協(xié)處理器在保證性能的前提下使代碼密度最大;片上ICE中斷調(diào)試JTAG調(diào)試方式328位硬件乘法器S3C44B0X體系結(jié)構(gòu):支持大/小端模式地址空間:每個(gè)Bank32MB(一共256MB);每個(gè)Bank支持8/16/32位數(shù)據(jù)總線編程;固定的Bank起始地址和7個(gè)可編程的Bank;1個(gè)起始地址和尺寸可編程的Bank;8個(gè)內(nèi)存Bank::6個(gè)用于ROM、SRAM;2個(gè)用于ROM/SRAM/DRAM;所有內(nèi)存Bank的可編程尋址周期;在能量低的情況下支持DRAM/SDRAM自動(dòng)刷新模式;支持DRAM的非對(duì)稱/對(duì)稱尋址;緩沖內(nèi)存和內(nèi)部SRAM4路帶8K字節(jié)的聯(lián)合緩存;系統(tǒng)管理:低能耗;時(shí)鐘可以通過(guò)軟件選擇性地反饋回每個(gè)功能塊能量模式:正常模式:正常運(yùn)行模式;低能模式:不帶PLL的底頻時(shí)鐘;休眠模式:只使CPU的時(shí)鐘停止;停止模式:所有時(shí)鐘都停止;用EINT或RTC警告中斷從停止模式喚醒時(shí)鐘和能量管理中斷控制器30個(gè)中斷源(看門(mén)狗定時(shí)器,6個(gè)定時(shí)器,6個(gè)UART,8個(gè)外部中斷,4個(gè)DMA,2個(gè)RTC,1個(gè)ADC,1個(gè)I2C,1個(gè)SIO;矢量IRQ中斷模式減少中斷響應(yīng)周期;外部中斷源的水平/邊緣模式;可編程的水平/邊緣極性;對(duì)緊急中斷請(qǐng)求支持FIQ(快速中斷請(qǐng)求);脈沖寬度調(diào)制5個(gè)16位帶PWM的定時(shí)器/1個(gè)16位基于DMA或基于中斷的定時(shí)器;可編程的工作循環(huán),頻率和極性死區(qū)產(chǎn)生支持外部時(shí)鐘源帶PWM的定時(shí)器實(shí)時(shí)時(shí)鐘全時(shí)鐘特點(diǎn):毫秒、秒、分、小時(shí)、天、星期、月、年32.768KHz運(yùn)行CPU喚醒的警告中斷時(shí)鐘記號(hào)中斷通用輸入輸出端口8個(gè)外部中斷端口71個(gè)多路輸入輸出口;UART2個(gè)帶DMA和中斷的UART;支持5位,6位,7位,8位串行數(shù)據(jù)傳送/接收;當(dāng)傳送/接收時(shí)支持雙向握手可編程波特率;支持IrDA1.0(115.2KBPS);測(cè)試的循環(huán)返回模式;每個(gè)通道有2個(gè)內(nèi)部32位FIFODMA控制器2路通用無(wú)需要CPU干涉的DMA控制器;2路橋式DMA控制器;采用6種DMA請(qǐng)求的橋式DMA支持IO到內(nèi)存,內(nèi)存到IO,IO到IO:軟件,4個(gè)內(nèi)部功能塊(UART,SIO,實(shí)時(shí)器,IIS),外部管腳;DMA之間可編程優(yōu)先級(jí)次序;突發(fā)傳送模式提高到FPDRAM、EDODRAM和SDRAM的傳送率;A/D轉(zhuǎn)換10位多路ADC;最大500KSPS/10位;DMA與A/D支持彩色/單色/灰度LCD;支持單掃描和雙掃描顯示;支持虛擬顯示功能l系統(tǒng)內(nèi)存作為顯示內(nèi)存專(zhuān)用DMA用于從系統(tǒng)內(nèi)存中提取圖象數(shù)據(jù);可編程屏幕尺寸;灰度:16級(jí)256色LCD控制器看門(mén)狗定時(shí)器與I2C總線接口16位看門(mén)狗定時(shí)器;定時(shí)中斷請(qǐng)求和系統(tǒng)復(fù)位;1個(gè)帶中斷的多主機(jī)I2C總線;串行,8位,雙向數(shù)據(jù)傳送器能夠以100KB/S的標(biāo)準(zhǔn)模式和400KB/S的快速模式傳送IIS總線接口1個(gè)I帶DMA的音頻IS總線接口;串行,每路8/16位數(shù)據(jù)傳送器;支持MSB數(shù)據(jù)格式;SIO(同步串行I/O)1個(gè)帶DMA和中斷的SIO可編程波特率;支持8位串行數(shù)據(jù)傳送/接收操作操作電壓范圍內(nèi)核:2.5V;I/O:3.0V到3.6V;運(yùn)行頻率最高到75MHz;封裝160LQFP/160FBGA;S3C44B0X微處理器體系結(jié)構(gòu)框圖S3C44B0X微處理器管腳定義圖4.2.2ARM9微處理器
ARM9系列微處理器包含ARM920T、ARM922T和ARM940T幾種類(lèi)型,可以在高性能和低功耗特性方面提供最佳的性能。采用5級(jí)整數(shù)流水線,指令執(zhí)行效率更高。提供1.1MIPS/MHz的哈佛結(jié)構(gòu)。支持?jǐn)?shù)據(jù)Cache和指令Cache,具有更高的指令和數(shù)據(jù)處理能力。支持32位ARM指令集和16位Thumb指令集。支持32位的高速AMBA總線接口。全性能的MMU,支持WindowsCE、Linux、PalmOS等多種主流嵌入式操作系統(tǒng)。MPU支持實(shí)時(shí)操作系統(tǒng)。ARM920T處理器核在ARM9TDMI處理器內(nèi)核基礎(chǔ)上,增加了分離式的指令Cache和數(shù)據(jù)Cache,并帶有相應(yīng)的存儲(chǔ)器管理單元I-MMU和D-MMU、寫(xiě)緩沖器及AMBA接口等,如圖2.2.4所示。圖2.2.4ARM920T內(nèi)核結(jié)構(gòu)ARM940T處理器核采用了ARM9TDMI處理器內(nèi)核,是ARM920T處理器核的簡(jiǎn)化版本,沒(méi)有存儲(chǔ)器管理單元MMU,不支持虛擬存儲(chǔ)器尋址,而是用存儲(chǔ)器保護(hù)單元來(lái)提供存儲(chǔ)保護(hù)和Cache控制。ARM9系列微處理器主要應(yīng)用于無(wú)線通信設(shè)備、儀器儀表、安全系統(tǒng)、機(jī)頂盒、高端打印機(jī)、數(shù)字照相機(jī)和數(shù)字?jǐn)z像機(jī)等。典型產(chǎn)品如Samsung公司的S3C2410A。2.2.3ARM9E微處理器ARM9E系列微處理器包含ARM926EJ-S、ARM946E-S和ARM966E-S幾種類(lèi)型,使用單一的處理器內(nèi)核提供了微控制器、DSP、Java應(yīng)用系統(tǒng)的解決方案。ARM9E系列微處理器提供了增強(qiáng)的DSP處理能力,很適合于那些需要同時(shí)使用DSP和微控制器的應(yīng)用場(chǎng)合。ARM9E系列微處理器支持DSP指令集,適合于需要高速數(shù)字信號(hào)處理的場(chǎng)合。ARM9E系列微處理器采用5級(jí)整數(shù)流水線,支持32位ARM指令集和16位Thumb指令集,支持32位的高速AMBA總線接口,支持VFP9浮點(diǎn)處理協(xié)處理器,MMU支持WindowsCE、Linux、PalmOS等多種主流嵌入式操作系統(tǒng),MPU支持實(shí)時(shí)操作系統(tǒng),支持?jǐn)?shù)據(jù)Cache和指令Cache,主頻最高可達(dá)300MIPS。ARM9系列微處理器主要應(yīng)用于下一代無(wú)線設(shè)備、數(shù)字消費(fèi)品、成像設(shè)備、工業(yè)控制、存儲(chǔ)設(shè)備和網(wǎng)絡(luò)設(shè)備等領(lǐng)域。2.2.4ARM10E微處理器ARM10E系列微處理器包含ARM1020E、ARM1022E和ARM1026EJ-S幾種類(lèi)型,由于采用了新的體系結(jié)構(gòu),與同等的ARM9器件相比較,在同樣的時(shí)鐘頻率下,性能提高了近50%。同時(shí)采用了兩種先進(jìn)的節(jié)能方式,使其功耗極低。ARM10E系列微處理器支持DSP指令集,適合于需要高速數(shù)字信號(hào)處理的場(chǎng)合。采用6級(jí)整數(shù)流水線,支持32位ARM指令集和16位Thumb指令集,支持32位的高速AMBA總線接口,支持VFP10浮點(diǎn)處理協(xié)處理器,MMU支持WindowsCE、Linux、PalmOS等多種主流嵌入式操作系統(tǒng),支持?jǐn)?shù)據(jù)Cache和指令Cache,內(nèi)嵌并行讀/寫(xiě)操作部件,主頻最高可達(dá)400MIPS。ARM10E系列微處理器主要應(yīng)用于下一代無(wú)線設(shè)備、數(shù)字消費(fèi)品、成像設(shè)備、工業(yè)控制、通信和信息系統(tǒng)等領(lǐng)域。2001年10月,ARM公司頒布了ARM嵌入式處理器體系的最新版本—ARMv6,2002年以后,先后推出了ARM11系列的各款處理器,ARM11是ARM家族中性能最強(qiáng)的處理器。ARM11系列采用8級(jí)流水線操作,個(gè)別處理器采用9級(jí)流水線(例如ARM1156T2(F)-S),Load-Store單元和算術(shù)運(yùn)算單元分別具有獨(dú)立的流水線,并具有轉(zhuǎn)移預(yù)測(cè)和前向數(shù)據(jù)通道,可以有效地提高流水線操作的效率。
ARMv6的體系中,處理器內(nèi)核、指令Cache和數(shù)據(jù)Cache之間,以及內(nèi)核與協(xié)處理器之間的數(shù)據(jù)通道為64bit,允許在單個(gè)周期發(fā)射兩條指令,大大提高了數(shù)據(jù)的傳送速率,同時(shí)又避免了64位處理器所帶來(lái)的功耗和成本的大幅度上升。
ARM11系列處理器ARMv6的指令集增加了大量支持多媒體的指令,使ARM11適合于音頻和視頻信號(hào)處理及三維圖象信號(hào)處理。
ARM11支持多處理器系統(tǒng),個(gè)別產(chǎn)品還集成了浮點(diǎn)處理器(以后綴F表示)。
ARM11的MMU和TCM可以支持存儲(chǔ)器的高速存取。
ARM11系列包括ARM1136J(F)-S、ARM1156T2(F)-S和ARM1176JZ(F)-S。后綴T2表示Thumb-2指令集。
ARM1156T2(F)-S的系統(tǒng)結(jié)構(gòu)
ARM1136J(F)-S
ARM1156T2(F)-S
ARM1176JZ(F)-SMMU
MPU
MMU+TrustZone可變長(zhǎng)度Cache
可變長(zhǎng)度Cache
可變長(zhǎng)度CacheTCM
TCM
TCM嵌入式ICE-RT
嵌入式ICE-RT
嵌入式ICE-RTETM11接口
ETM11接口
ETM11接口DSP擴(kuò)充
DSP擴(kuò)充
DSP擴(kuò)充ARMv6
ARMv6
ARMv6ARM11核
ARM11核
ARM11核Thumb擴(kuò)充
Thumb-2擴(kuò)充
Thumb擴(kuò)充5×AHB
3×AXI
4×AXIJazelle擴(kuò)充
Jazelle擴(kuò)充
ARM11系列處理器的組成
緊致內(nèi)存
TCM(Tightly-CoupledMemory)TCM是一個(gè)固定大小的RAM,緊密地耦合至處理器內(nèi)核,提供與cache相當(dāng)?shù)男阅埽啾扔赾ache的優(yōu)點(diǎn)是,程序代碼可以精確地控制什么函數(shù)或代碼放在那兒(RAM里)。當(dāng)然TCM永遠(yuǎn)不會(huì)被踢出主存儲(chǔ)器,因此,他會(huì)有一個(gè)被用戶預(yù)設(shè)的性能,而不是象cache那樣是統(tǒng)計(jì)特性的性能提高。
TCM對(duì)于以下幾種情況的代碼是非常有用、也是需要的:可預(yù)見(jiàn)的實(shí)時(shí)處理(中斷處理)、時(shí)間可預(yù)見(jiàn)(加密算法)、避免cache分析(加密算法)、或者只是要求高性能的代碼(編解碼功能)。隨著cache大小的增加以及總線性能的規(guī)模,TCM將會(huì)變得越來(lái)越不重要,但是他提供了一個(gè)讓你權(quán)衡的機(jī)會(huì)
那么,哪一個(gè)更好呢?他取決于你的應(yīng)用。Cache是一個(gè)通用目的的加速器,他會(huì)加速你的所有代碼,而不依賴于存儲(chǔ)方式。TCM只會(huì)加速你有意放入TCM的代碼,其余的其他代碼只能通過(guò)cache加速。Cache是一個(gè)通用目的解決方案,TCM在某些特殊情況下是非常有用的。假如你不認(rèn)為需要TCM的話,那么你可能就不需要了,轉(zhuǎn)而加大你的cache,從而加速運(yùn)行于內(nèi)核上的所有軟件代碼。Jazelle用于加速執(zhí)行環(huán)境的ARMJazelle?技術(shù)可向ARMConnectedCommunity
提供高質(zhì)量的一流ARM體系結(jié)構(gòu)解決方案,該解決方案是高性能、低功耗和低成本的完美組合。
Jazelle技術(shù)是ARM提供的組合型硬件和軟件解決方案。ARMJazelle技術(shù)軟件是功能豐富的多任務(wù)Java虛擬機(jī)(JVM),經(jīng)過(guò)高度優(yōu)化,可利用許多ARM處理器內(nèi)核中提供的Jazelle技術(shù)體系結(jié)構(gòu)擴(kuò)展。可從50多個(gè)ARM芯片合作伙伴那里獲取ARMJazelle技術(shù)硬件擴(kuò)展。ARMJazelle技術(shù)軟件預(yù)先集成在一系列ARM軟件合作伙伴提供的完整Java平臺(tái)中。ARMJazelle軟件包括在任何現(xiàn)有JVM和Java平臺(tái)中支持Jazelle硬件的技術(shù)。它還包括功能豐富的多任務(wù)虛擬機(jī)(MVM),領(lǐng)先的手機(jī)供應(yīng)商和Java平臺(tái)軟件供應(yīng)商提供的許多Java平臺(tái)中均集成了此類(lèi)虛擬機(jī)。通過(guò)利用基礎(chǔ)Jazelle技術(shù)體系結(jié)構(gòu)擴(kuò)展,ARMMVM軟件解決方案可提供高性能應(yīng)用程序和游戲,快速啟動(dòng)和應(yīng)用程序切換,并且使用的內(nèi)存和功耗預(yù)算非常低。
EmbeddedICE-RTlogicTheEmbeddedICE-RTlogicprovidesintegratedon-chipdebugsupportfortheARM7TDMIcore.YouusetheEmbeddedICE-RTlogictoprogramtheconditionsunderwhichabreakpointorwatchpointcanoccur.TheEmbeddedICE-RTlogiccontainsaDebugCommunicationsChannel(DCC),usedtopassinformationbetweenthetargetandthehostdebugger.TheEmbeddedICE-RTlogiciscontrolledthroughtheJointTestActionGroup(JTAG)testaccessport.嵌入式ICE-RTEmbeddedICE-RTLogicforReal-TimeDebugARM9MemoryArchitecture.4.2.5SecurCore微處理器SecurCore系列微處理器包含SecurCoreSC100、SecurCoreSC110、SecurCoreSC200和SecurCoreSC210幾種類(lèi)型,提供了完善的32位RISC技術(shù)的安全解決方案。SecurCore系列微處理器除了具有ARM體系結(jié)構(gòu)各種主要特點(diǎn)外,在系統(tǒng)安全方面:帶有靈活的保護(hù)單元,以確保操作系統(tǒng)和應(yīng)用數(shù)據(jù)的安全;采用軟內(nèi)核技術(shù),防止外部對(duì)其進(jìn)行掃描探測(cè);可集成用戶自己的安全特性和其他協(xié)處理器。SecurCore系列微處理器主要應(yīng)用于如電子商務(wù)、電子政務(wù)、電子銀行業(yè)務(wù)、網(wǎng)絡(luò)和認(rèn)證系統(tǒng)等一些對(duì)安全性要求較高的應(yīng)用產(chǎn)品及應(yīng)用系統(tǒng)。4.2.6StrongARM微處理器IntelStrongARM處理器是采用ARM體系結(jié)構(gòu)高度集成的32位RISC微處理器,采用在軟件上兼容ARMv4體系結(jié)構(gòu)、同時(shí)采用具有Intel技術(shù)優(yōu)點(diǎn)的體系結(jié)構(gòu)。典型產(chǎn)品如SA110處理器、SA1100、SA1110PDA系統(tǒng)芯片和SA1500多媒體處理器芯片等。例如其中的IntelStrongARMSA-1110微處理器是一款集成了32位StrongARMRISC處理器核、系統(tǒng)支持邏輯、多通信通道、LCD控制器、存儲(chǔ)器和PCMCIA控制器以及通用I/O口的高集成度通信控制器。該處理器最高可在206MHz下運(yùn)行。SA-1110有一個(gè)大的指令Cache和數(shù)據(jù)Cache、內(nèi)存管理單元(MMU)和讀/寫(xiě)緩存。存儲(chǔ)器總線可以和包括SDRAM、SMROM和類(lèi)似SRAM的許多器件相接。軟件與ARMV4結(jié)構(gòu)處理器家族相兼容。IntelStrongARM處理器是便攜式通訊產(chǎn)品和消費(fèi)類(lèi)電子產(chǎn)品的理想選擇。4.2.7XScale微處理器IntelXScale微體系結(jié)構(gòu)提供了一種全新的、高性價(jià)比、低功耗且基于ARMv5TE體系結(jié)構(gòu)的解決方案,支持16位Thumb指令和DSP擴(kuò)充?;赬Scale技術(shù)開(kāi)發(fā)的微處理器,可用于手機(jī)、便攜式終端(PDA)、網(wǎng)絡(luò)存儲(chǔ)設(shè)備、骨干網(wǎng)(BackBone)路由器等。IntelXScale處理器的處理速度是IntelStrongARM處理速度的兩倍,數(shù)據(jù)Cache的容量從8KB增加到32KB,指令Cache的容量從16KB增加到32KB,微小數(shù)據(jù)Cache的容量從512B增加到2KB;為了提高指令的執(zhí)行速度,超級(jí)流水線結(jié)構(gòu)由5級(jí)增至7級(jí);新增乘/加法器MAC和特定的DSP型協(xié)處理器,以提高對(duì)多媒體技術(shù)的支持;動(dòng)態(tài)電源管理,使XScale處理器的時(shí)鐘可達(dá)1GHz、功耗1.6W,并能達(dá)到1200MIPS。XScale微處理器架構(gòu)經(jīng)過(guò)專(zhuān)門(mén)設(shè)計(jì),核心采用了英特爾先進(jìn)的0.18μm工藝技術(shù)制造;具備低功耗特性,適用范圍從0.1mW~1.6W。同時(shí),它的時(shí)鐘工作頻率將接近1GHz。XScale與StrongARM相比,可大幅降低工作電壓并且獲得更高的性能。具體來(lái)講,在目前的StrongARM中,在1.55V下可以獲得133MHz的工作頻率,在2.0V下可以獲得206MHz的工作頻率;而采用XScale后,在0.75V時(shí)工作頻率達(dá)到150MHz,在1.0V時(shí)工作頻率可以達(dá)到400MHz,在1.65V下工作頻率則可高達(dá)800MHz。超低功率與高性能的組合使IntelXScale適用于廣泛的互聯(lián)網(wǎng)接入設(shè)備,在因特網(wǎng)的各個(gè)環(huán)節(jié)中,從手持互聯(lián)網(wǎng)設(shè)備到互聯(lián)網(wǎng)基礎(chǔ)設(shè)施產(chǎn)品,IntelXScale都表現(xiàn)出了令人滿意的處理性能。Intel采用XScale架構(gòu)的嵌入式處理器典型產(chǎn)品有PXA25x、PXA26x和PXA27x系列。4.3ARM微處理器的寄存器結(jié)構(gòu)
ARM處理器共有37個(gè)寄存器,被分為若干個(gè)組(BANK),這些寄器包括:●31個(gè)通用寄存器,包括程序計(jì)數(shù)器(PC指針),均為32位的寄存器?!?個(gè)狀態(tài)寄存器,用以標(biāo)識(shí)CPU的工作狀態(tài)及程序的運(yùn)行狀態(tài),均為32位,目前只使用了其中的一部分。2.3.1處理器運(yùn)行模式ARM微處理器支持7種運(yùn)行模式,分別為:●usr(用戶模式):ARM處理器正常程序執(zhí)行模式。●fiq(快速中斷模式):用于高速數(shù)據(jù)傳輸或通道處理●irq(外部中斷模式):用于通用的中斷處理●svc(管理模式):操作系統(tǒng)使用的保護(hù)模式●abt(數(shù)據(jù)訪問(wèn)終止模式):當(dāng)數(shù)據(jù)或指令預(yù)取終止時(shí)進(jìn)入該模式,可用于虛擬存儲(chǔ)及存儲(chǔ)保護(hù)?!駍ys(系統(tǒng)模式):運(yùn)行具有特權(quán)的操作系統(tǒng)任務(wù)。●und(未定義指令中止模式):當(dāng)未定義的指令執(zhí)行時(shí)進(jìn)入該模式,可用于支持硬件協(xié)處理器的軟件仿真。處理器模式說(shuō)明備注
用戶(usr)正常程序執(zhí)行模式不能直接切換到其它模式
系統(tǒng)(sys)運(yùn)行操作系統(tǒng)的特權(quán)任務(wù)與用戶模式類(lèi)似,但具有可以直接切換到其它模式等特權(quán)
快中斷(fiq)支持高速數(shù)據(jù)傳輸及通道處理FIQ異常響應(yīng)時(shí)進(jìn)入此模式
中斷(irq)用于通用中斷處理IRQ異常響應(yīng)時(shí)進(jìn)入此模式
管理(svc)操作系統(tǒng)保護(hù)模式系統(tǒng)復(fù)位和軟件中斷響應(yīng)時(shí)進(jìn)入此模式
中止(abt)用于支持虛擬內(nèi)存和/或存儲(chǔ)器保護(hù)在ARM7TDMI沒(méi)有大用處
未定義(und)支持硬件協(xié)處理器的軟件仿真未定義指令異常響應(yīng)時(shí)進(jìn)入此模式ARM微處理器的運(yùn)行模式可以通過(guò)軟件改變,也可以通過(guò)外部中斷或異常處理改變。大多數(shù)的應(yīng)用程序運(yùn)行在用戶模式下,當(dāng)處理器運(yùn)行在用戶模式下時(shí),某些被保護(hù)的系統(tǒng)資源是不能被訪問(wèn)的。除用戶模式以外,其余的所有6種模式稱之為非用戶模式,或特權(quán)模式(PrivilegedModes);其中除去用戶模式和系統(tǒng)模式以外的5種又稱為異常模式(ExceptionModes),常用于處理中斷或異常,以及需要訪問(wèn)受保護(hù)的系統(tǒng)資源等情況。ARM處理器在每一種處理器模式下均有一組相應(yīng)的寄存器與之對(duì)應(yīng)。即在任意一種處理器模式下,可訪問(wèn)的寄存器包括15個(gè)通用寄存器(R0~R14)、一至二個(gè)狀態(tài)寄存器和程序計(jì)數(shù)器。在所有的寄存器中,有些是在7種處理器模式下共用的同一個(gè)物理寄存器,而有些寄存器則是在不同的處理器模式下有不同的物理寄存器。
4.3.2處理器工作狀態(tài)
ARM處理器有32位ARM和16位Thumb兩種工作狀態(tài)。在32位ARM狀態(tài)下執(zhí)行字對(duì)齊的ARM指令,在16位Thumb狀態(tài)下執(zhí)行半字對(duì)齊的Thumb指令。ARM處理器在兩種工作狀態(tài)之間可以切換,切換不影響處理器的模式或寄存器的內(nèi)容。(1)當(dāng)操作數(shù)寄存器的狀態(tài)位(位[0])為1時(shí),執(zhí)行BX指令進(jìn)入Thumb狀態(tài)。如果處理器在Thumb狀態(tài)進(jìn)入異常,則當(dāng)異常處理(IRQ、FIQ、Undef、Abort和SWI)返回時(shí),自動(dòng)轉(zhuǎn)換到Thumb狀態(tài)。(2)當(dāng)操作數(shù)寄存器的狀態(tài)位(位[0])為0時(shí),執(zhí)行BX指令進(jìn)入ARM狀態(tài),處理器進(jìn)行異常處理(IRQ、FIQ、Reset、Undef、Abort和SWI)。在此情況下,把PC放入異常模式鏈接寄存器中。從異常向量地址開(kāi)始執(zhí)行也可以進(jìn)入ARM狀態(tài)。
4.3.3ARM處理器的寄存器組織
ARM處理器的37個(gè)寄存器被安排成部分重疊的組,不能在任何模式都可以使用,寄存器的使用與處理器狀態(tài)和工作模式有關(guān)。如圖2.3.1所示,每種處理器模式使用不同的寄存器組。其中15個(gè)通用寄存器(R0~R14)、1或2個(gè)狀態(tài)寄存器和程序計(jì)數(shù)器是通用的。1.通用寄存器通用寄存器(R0~R15)可分成不分組寄存器R0~R7、分組寄存器R8~R14和程序計(jì)數(shù)器R15三類(lèi)。(1)不分組寄存器R0~R7不分組寄存器R0~R7是真正的通用寄存器,可以工作在所有的處理器模式下,沒(méi)有隱含的特殊用途。(2)分組寄存器R8~R14分組寄存器R8~R14取決于當(dāng)前的處理器模式,每種模式有專(zhuān)用的分組寄存器用于快速異常處理。寄存器R8~Rl2可分為兩組物理寄存器。一組用于FIQ模式,另一組國(guó)用于除FIQ以外的其他模式。第1組訪問(wèn)R8_fiq~R12_fiq,允許快速中斷處理。第二組訪問(wèn)R8_usr~R12_usr,寄存器R8~R12沒(méi)有任何指定的特殊用途。圖2.3.1寄存器組織結(jié)構(gòu)圖寄存器R13~R14可分為6個(gè)分組的物理寄存器。1個(gè)用于用戶模式和系統(tǒng)模式,而其他5個(gè)分別用于svc、abt、und、irq和fiq五種異常模式。訪問(wèn)時(shí)需要指定它們的模式,如:R13_<mode>,R14_<mode>;其中:<mode>可以從usr、svc、abt、und、irq和fiq六種模式中選取一個(gè)。寄存器R13通常用作堆棧指針,稱作SP。每種異常模式都有自己的分組R13。通常R13應(yīng)當(dāng)被初始化成指向異常模式分配的堆棧。在入口處,異常處理程序?qū)⒂玫降钠渌拇嫫鞯闹当4娴蕉褩V?;返回時(shí),重新將這些值加載到寄存器。這種異常處理方法保證了異常出現(xiàn)后不會(huì)導(dǎo)致執(zhí)行程序的狀態(tài)不可靠。寄存器R14用作子程序鏈接寄存器,也稱為鏈接寄存器LR(LinkRegister)。當(dāng)執(zhí)行帶鏈接分支(BL)指令時(shí),得到R15的備份。在其他情況下,將R14當(dāng)做通用寄存器。類(lèi)似地,當(dāng)中斷或異常出現(xiàn)時(shí),或當(dāng)中斷或異常程序執(zhí)行BL指令時(shí),相應(yīng)的分組寄存器R14_svc、R14_irq、R14_fiq、R14_abt和R14_und用來(lái)保存R15的返回值。FIQ模式有7個(gè)分組的寄存器R8~R14,映射為R8_fiq~R14_fiq。在ARM狀態(tài)下,許多FIQ處理沒(méi)必要保存任何寄存器。User、IRQ、Supervisor、Abort和Undefined模式每一種都包含兩個(gè)分組的寄存器R13和R14的映射,允許每種模式都有自己的堆棧和鏈接寄存器。(3)程序計(jì)數(shù)器R15寄存器R15用作程序計(jì)數(shù)器(PC)。在ARM狀態(tài),位[1:0]為0,位[31:2]保存PC。在Thumb狀態(tài),位[0]為0,位[31:1]保存PC。R15雖然也可用作通用寄存器,但一般不這么使用,因?yàn)閷?duì)R15的使用有一些特殊的限制,當(dāng)違反了這些限制時(shí),程序的執(zhí)行結(jié)果是未知的。①讀程序計(jì)數(shù)器。指令讀出的R15的值是指令地址加上8字節(jié)。由于ARM指令始終是字對(duì)齊的,所以讀出結(jié)果值的位[1:0]總是0(在Thumb狀態(tài)下,情況有所變化)。讀PC主要用于快速地對(duì)臨近的指令和數(shù)據(jù)進(jìn)行位置無(wú)關(guān)尋址,包括程序中的位置無(wú)關(guān)轉(zhuǎn)移。②寫(xiě)程序計(jì)數(shù)器。寫(xiě)R15的通常結(jié)果是將寫(xiě)到R15中的值作為指令地址,并以此地址發(fā)生轉(zhuǎn)移。由于ARM指令要求字對(duì)齊,通常希望寫(xiě)到R15中值的位[1:0]=0b00。由于ARM體系結(jié)構(gòu)采用了多級(jí)流水線技術(shù),對(duì)于ARM指令集而言,PC總是指向當(dāng)前指令的下兩條指令的地址,即PC的值為當(dāng)前指令的地址值加8個(gè)字節(jié)。2.程序狀態(tài)寄存器CPSR寄存器R16用作程序狀態(tài)寄存器CPSR(CurrentProgramStatusRegister,當(dāng)前程序狀態(tài)寄存器)。在所有處理器模式下都可以訪問(wèn)CPSR。CPSR包含條件碼標(biāo)志、中斷禁止位、當(dāng)前處理器模式以及其他狀態(tài)和控制信息。每種異常模式都有一個(gè)程序狀態(tài)保存寄存器SPSR(SavedProgramStatusRegister)。當(dāng)異常出現(xiàn)時(shí),程序狀態(tài)保存寄存器SPSR用于保留程序狀態(tài)寄存器CPSR的狀態(tài)。4.3.4Thumb狀態(tài)的寄存器集Thumb狀態(tài)下的寄存器集如圖2.3.2所示,是ARM狀態(tài)下的寄存器集的子集。程序員可以直接訪問(wèn)8個(gè)通用寄存器(R0~R7)、程序計(jì)數(shù)器PC、堆棧指針SP、鏈接寄存器LR和程序狀態(tài)寄存器CPSR。每一種特權(quán)模式都有一組SP、LR和SPSR?!馮humb狀態(tài)R0~R7與ARM狀態(tài)R0~R7是一致的?!馮humb狀態(tài)中,程序狀態(tài)寄存器CPSR和程序狀態(tài)保存寄存器SPSR與ARM的狀態(tài)CPSR和SPSR是一致的?!馮humb狀態(tài)SP映射到ARM狀態(tài)R13。●Thumb狀態(tài)LR映射到ARM狀態(tài)R14?!馮humb狀態(tài)PC映射到ARM狀態(tài)PC(R15)。圖2.3.2Thumb狀態(tài)下寄存器組織圖2.3.3Thumb狀態(tài)與ARM狀態(tài)的寄存器關(guān)系在Thumb狀態(tài)下,寄存器R8~R15(高寄存器)并不是標(biāo)準(zhǔn)寄存器集的一部分。匯編語(yǔ)言編程者訪問(wèn)它雖有限制,但可以將其用做快速暫存存儲(chǔ)器,將R0~R7(Lo-registers,低寄存器)中的值傳送到R8~R15(Hi-registers,高寄存器)。
4.4ARM微處理器的異常處理
在一個(gè)正常的程序流程執(zhí)行過(guò)程中,由內(nèi)部或外部源產(chǎn)生的一個(gè)事件使正常的程序產(chǎn)生暫時(shí)的停止時(shí),稱之為異常。異常是由內(nèi)部或外部源產(chǎn)生并引起處理器處理一個(gè)事件,例如一個(gè)外部的中斷請(qǐng)求。在處理異常之前,當(dāng)前處理器的狀態(tài)必須保留,當(dāng)異常處理完成之后,恢復(fù)保留的當(dāng)前處理器狀態(tài),繼續(xù)執(zhí)行當(dāng)前程序。多個(gè)異常同時(shí)發(fā)生時(shí),處理器將會(huì)按固定的優(yōu)先級(jí)進(jìn)行處理。ARM體系結(jié)構(gòu)中的異常,與單片機(jī)的中斷有相似之處,但異常與中斷的概念并不完全等同,例如外部中斷或試圖執(zhí)行未定義指令都會(huì)引起異常。4.4.1ARM體系結(jié)構(gòu)的異常類(lèi)型ARM體系結(jié)構(gòu)支持7種類(lèi)型的異常,異常類(lèi)型、異常處理模式和優(yōu)先級(jí)如表2.4.1所示。異常出現(xiàn)后,強(qiáng)制從異常類(lèi)型對(duì)應(yīng)的固定存儲(chǔ)器地址開(kāi)始執(zhí)行程序。這些固定的地址稱為異常向量(ExceptionVectors)。異常類(lèi)型異常進(jìn)入模式地址(異常向量)優(yōu)先級(jí)復(fù)位復(fù)位管理模式0x0000,00001(最高)未定義指令未定義指令未定義模式0x0000,00046(最低)軟件中斷軟件中斷管理模式0x0000,00086(最低)指令預(yù)取中止中止(預(yù)取指令)中止模式0x0000,000C5數(shù)據(jù)中止中止(數(shù)據(jù))中止模式0x0000,00102IRQ(外部中斷請(qǐng)求)IRQIRQ0x0000,00184FIQ(快速中斷請(qǐng)求)FIQFIQ0x0000,001C3表2.4.1ARM體系結(jié)構(gòu)的異常類(lèi)型和異常處理模式4.4.2異常類(lèi)型的含義(1)復(fù)位當(dāng)處理器的復(fù)位電平有效時(shí),產(chǎn)生復(fù)位異常,ARM處理器立刻停止執(zhí)行當(dāng)前指令。復(fù)位后,ARM處理器在禁止中斷的管理模式下,程序跳轉(zhuǎn)到復(fù)位異常處理程序處執(zhí)行(從地址0x00000000或0xFFFF0000開(kāi)始執(zhí)行指令)。(2)未定義指令異常當(dāng)ARM處理器或協(xié)處理器遇到不能處理的指令時(shí),產(chǎn)生未定義指令異常。當(dāng)ARM處理器執(zhí)行協(xié)處理器指令時(shí),它必須等待任一外部協(xié)處理器應(yīng)答后,才能真正執(zhí)行這條指令。若協(xié)處理器沒(méi)有響應(yīng),就會(huì)出現(xiàn)未定義指令異常。若試圖執(zhí)行未定義的指令,也會(huì)出現(xiàn)未定義指令異常。未定義指令異常可用于在沒(méi)有物理協(xié)處理器(硬件)的系統(tǒng)上,對(duì)協(xié)處理器進(jìn)行軟件仿真,或在軟件仿真時(shí)進(jìn)行指令擴(kuò)展。(3)軟件中斷異常(SoftWareInterrupt,SWI)軟件中斷異常由執(zhí)行SWI指令產(chǎn)生,可使用該異常機(jī)制實(shí)現(xiàn)系統(tǒng)功能調(diào)用,用于用戶模式下的程序調(diào)用特權(quán)操作指令,以請(qǐng)求特定的管理(操作系統(tǒng))函數(shù)。(4)指令預(yù)取中止若處理器預(yù)取指令的地址不存在,或該地址不允許當(dāng)前指令訪問(wèn),存儲(chǔ)器會(huì)向處理器發(fā)出存儲(chǔ)器中止(Abort)信號(hào),但當(dāng)預(yù)取的指令被執(zhí)行時(shí),才會(huì)產(chǎn)生指令預(yù)取中止異常。(5)數(shù)據(jù)中止(數(shù)據(jù)訪問(wèn)存儲(chǔ)器中止)若處理器數(shù)據(jù)訪問(wèn)指令的地址不存在,或該地址不允許當(dāng)前指令訪問(wèn)時(shí),產(chǎn)生數(shù)據(jù)中止異常。存儲(chǔ)器系統(tǒng)發(fā)出存儲(chǔ)器中止信號(hào)。響應(yīng)數(shù)據(jù)訪問(wèn)(加載或存儲(chǔ))激活中止,標(biāo)記數(shù)據(jù)為無(wú)效。在后面的任何指令或異常改變CPU狀態(tài)之前,數(shù)據(jù)中止異常發(fā)生。(6)外部中斷請(qǐng)求(IRQ)異常當(dāng)處理器的外部中斷請(qǐng)求引腳有效,且CPSR中的I位為0時(shí),產(chǎn)生IRQ異常。系統(tǒng)的外設(shè)可通過(guò)該異常請(qǐng)求中斷服務(wù)。IRQ異常的優(yōu)先級(jí)比FIQ異常的低。當(dāng)進(jìn)入FIQ處理時(shí),會(huì)屏蔽掉IRQ異常。(7)快速中斷請(qǐng)求(FIQ)異常當(dāng)處理器的快速中斷請(qǐng)求引腳有效,且CPSR中的F位為0時(shí),產(chǎn)生FIQ異常。FIQ支持?jǐn)?shù)據(jù)傳送和通道處理,并有足夠的私有寄存器。
4.4.3異常的響應(yīng)過(guò)程
當(dāng)一個(gè)異常出現(xiàn)以后,ARM微處理器會(huì)執(zhí)行以下幾步操作:①將下一條指令的地址存入相應(yīng)連接寄存器LR,以便程序在處理異常返回時(shí)能從正確的位置重新開(kāi)始執(zhí)行。若異常是從ARM狀態(tài)進(jìn)入,LR寄存器中保存的是下一條指令的地址(當(dāng)前PC+4或PC+8,與異常的類(lèi)型有關(guān));若異常是從Thumb狀態(tài)進(jìn)入,則在LR寄存器中保存當(dāng)前PC的偏移量。②將程序狀態(tài)寄存器CPSR狀態(tài)傳送到相應(yīng)的程序狀態(tài)保存寄存器SPSR中。③根據(jù)異常類(lèi)型,強(qiáng)制設(shè)置CPSR的運(yùn)行模式位。④強(qiáng)制PC從相關(guān)的異常向量地址取下一條指令執(zhí)行,跳轉(zhuǎn)到相應(yīng)的異常處理程序。還可以設(shè)置中斷禁止位,以禁止中斷發(fā)生。如果異常發(fā)生時(shí),處理器處于Thumb狀態(tài),則當(dāng)異常向量地址加載入PC時(shí),處理器自動(dòng)切換到ARM狀態(tài)。異常處理完畢之后,ARM微處理器會(huì)執(zhí)行以下幾步操作從異常返回:①將連接寄存器LR的值減去相應(yīng)的偏移量后送到PC中。②將程序狀態(tài)保存寄存器SPSR內(nèi)容送回程序狀態(tài)寄存器CPSR中。③若在進(jìn)入異常處理時(shí)設(shè)置了中斷禁止位,要在此清除。可以認(rèn)為應(yīng)用程序總是從復(fù)位異常處理程序開(kāi)始執(zhí)行的,因此復(fù)位異常處理程序不需要返回。4.4.4應(yīng)用程序中的異常處理在應(yīng)用程序的設(shè)計(jì)中,異常處理采用的方式是在異常向量表中的特定位置放置一條跳轉(zhuǎn)指令,跳轉(zhuǎn)到異常處理程序。當(dāng)ARM處理器發(fā)生異常時(shí),程序計(jì)數(shù)器PC會(huì)被強(qiáng)制設(shè)置為對(duì)應(yīng)的異常向量,從而跳轉(zhuǎn)到異常處理程序,當(dāng)異常處理完成以后,返回到主程序繼續(xù)執(zhí)行。
4.5ARM的存儲(chǔ)器結(jié)構(gòu)
ARM體系結(jié)構(gòu)允許使用現(xiàn)有的存儲(chǔ)器和I/O器件進(jìn)行各種各樣的存儲(chǔ)器系統(tǒng)設(shè)計(jì)。1.地址空間ARM體系結(jié)構(gòu)使用232個(gè)字節(jié)的單一、線性地址空間。將字節(jié)地址做為無(wú)符號(hào)數(shù)看待,范圍為0~232-1。2.存儲(chǔ)器格式對(duì)于字對(duì)齊的地址A,地址空間規(guī)則要求如下:●地址位于A的字由地址為A、A+1、A+2和A+3的字節(jié)組成;●地址位于A的半字由地址為A和A+1的字節(jié)組成;●地址位于A+2的半字由地址為A+2和A+3的字節(jié)組成;●地址位于A的字由地址為A和A+2的半字組成。ARM存儲(chǔ)系統(tǒng)可以使用小端存儲(chǔ)或者大端存儲(chǔ)兩種方法,大端存儲(chǔ)和小端存儲(chǔ)格式如圖2.5.1所示。ARM體系結(jié)構(gòu)通常希望所有的存儲(chǔ)器訪問(wèn)能適當(dāng)?shù)貙?duì)齊。特別是用于字訪問(wèn)的地址通常應(yīng)當(dāng)字對(duì)齊,用于半字訪問(wèn)的地址通常應(yīng)當(dāng)半字對(duì)齊。未按這種方式對(duì)齊的存儲(chǔ)器訪問(wèn)稱作非對(duì)齊的存儲(chǔ)器訪問(wèn)。圖2.5.1大端存儲(chǔ)和小端存儲(chǔ)格式若在ARM態(tài)執(zhí)行期間,將沒(méi)有字對(duì)齊的地址寫(xiě)到R15中,那么結(jié)果通常是不可預(yù)知或者地址的位[1:0]被忽略。若在Thumb態(tài)執(zhí)行期間,將沒(méi)有半字對(duì)齊的地址寫(xiě)到R15中,則地址的位[0]通常忽略。3.ARM存儲(chǔ)器結(jié)構(gòu)ARM處理器有的帶有指令Cache和數(shù)據(jù)Cache,但不帶有片內(nèi)RAM和片內(nèi)ROM。系統(tǒng)所需的RAM和ROM(包括Flash)都通過(guò)總線外接。由于系統(tǒng)的地址范圍較大(232=4GB),有的片內(nèi)還帶有存儲(chǔ)器管理單元MMU(MemoryManagementUnit)。ARM架構(gòu)處理器還允許外接PCMCIA。4.存儲(chǔ)器映射I/OARM系統(tǒng)使用存儲(chǔ)器映射I/O。I/O口使用特定的存儲(chǔ)器地址,當(dāng)從這些地址加載(用于輸入)或向這些地址存儲(chǔ)(用于輸出)時(shí),完成I/O功能。加載和存儲(chǔ)也可用于執(zhí)行控制功能,代替或者附加到正常的輸入或輸出功能。然而,存儲(chǔ)器映射I/O位置的行為通常不同于對(duì)一個(gè)正常存儲(chǔ)器位置所期望的行為。例如,從一個(gè)正常存儲(chǔ)器位置兩次連續(xù)的加載,每次返回的值相同。而對(duì)于存儲(chǔ)器映射I/O位置,第2次加載的返回值可以不同于第1次加載的返回值。
4.6ARM微處理器指令系統(tǒng)
2.6.1基本尋址方式尋址方式是根據(jù)指令中給出的地址碼字段來(lái)實(shí)現(xiàn)尋找真實(shí)操作數(shù)地址的方式,ARM處理器有9種基本尋址方式。1.寄存器尋址操作數(shù)的值在寄存器中,指令中的地址碼字段給出的是寄存器編號(hào),寄存器的內(nèi)容是操作數(shù),指令執(zhí)行時(shí)直接取出寄存器值操作。例如指令:MOVR1,R2;R1←R2SUBR0,R1,R2;R0←R1-R22.立即尋址在立即尋址指令中數(shù)據(jù)就包含在指令當(dāng)中,立即尋址指令的操作碼字段后面的地址碼部分就是操作數(shù)本身,取出指令也就取出了可以立即使用的操作數(shù)(也稱為立即數(shù))。立即數(shù)要以“?!睘榍熬Y,表示16進(jìn)制數(shù)值時(shí)以“0x”表示。例如指令:ADDR0,R0,#1;R0←R0+1MOVR0,#0xff00;R0←0xff003.寄存器移位尋址寄存器移位尋址是ARM指令集特有的尋址方式。第2個(gè)寄存器操作數(shù)在與第1個(gè)操作數(shù)結(jié)合之前,先進(jìn)行移位操作。例如指令:MOVR0,R2,LSL#3;R2的值左移3位,結(jié)果放入R0,即R0=R2*8ANDSR1,R1,R2,LSLR3;R2的值左移R3位,然后和R1相與操作,結(jié)果放入R1可采用的移位操作如下:LSL:邏輯左移(LogicalShiftLeft),寄存器中字的低端空出的位補(bǔ)0。LSR:邏輯右移(LogicalShiftRight),寄存器中字的高端空出的位補(bǔ)0。ASR:算術(shù)右移(ArithmeticShiftRight),移位過(guò)程中保持符號(hào)位不變,即如果源操作數(shù)為正數(shù),則字的高端空出的位補(bǔ)0,否則補(bǔ)1ROR:循環(huán)右移(RotateRight),由字的低端移出的位填入字的高端空出的位RRX:帶擴(kuò)展的循環(huán)右移(RotateRightextendedby1place),操作數(shù)右移一位,高端空出的位用原C標(biāo)志值填充。各移位操作過(guò)程如圖2.6.1所示。圖2.6.1移位操作過(guò)程4.寄存器間接尋址指令中的地址碼給出的是一個(gè)通用寄存器編號(hào),所需要的操作數(shù)保存在寄存器指定地址的存儲(chǔ)單元中,即寄存器為操作數(shù)的地址指針,操作數(shù)存放在存儲(chǔ)器中。例如指令:LDRR0,[R1];R0←[R1](將R1中的數(shù)值作為地址,取出此地址中的數(shù)據(jù)保存在R0中)STRR0,[R1];[R1]←R05.變址尋址變址尋址是將基址寄存器的內(nèi)容與指令中給出的偏移量相加,形成操作數(shù)的有效地址,變址尋址用于訪問(wèn)基址附近的存儲(chǔ)單元,常用于查表,數(shù)組操作,功能部件寄存器訪問(wèn)等。例如指令:LDRR2,[R3,#4];R2←[R3+4](將R3中的數(shù)值加4作為地址,取出此地址的數(shù)值保存在R2中)STRR1,[R0,#-2];[R0-2]←R1(將R0中的數(shù)值減2作為地址,把R1中的內(nèi)容保存到此地址位置)6.多寄存器尋址采用多寄存器尋址方式,一條指令可以完成多個(gè)寄存器值的傳送,這種尋址方式用一條指令最多可以完成16個(gè)寄存器值的傳送。例如指令:
LDMIAR0,{R1,R2,R3,R5};R1←[R0]
;R2←[R0+4]
;R3←[R3+8]
;R4←[R3+12]7.堆棧尋址堆棧是一種數(shù)據(jù)結(jié)構(gòu),堆棧是特定順序進(jìn)行存取的存儲(chǔ)區(qū),操作順序分為“后進(jìn)先出”和“先進(jìn)后出”,堆棧尋址時(shí)隱含的,它使用一個(gè)專(zhuān)門(mén)的寄存器(堆棧指針)指向一塊存儲(chǔ)區(qū)域(堆棧),指針?biāo)赶虻拇鎯?chǔ)單元就是堆棧的棧頂。存儲(chǔ)器生長(zhǎng)堆棧可分為兩種:●向上生長(zhǎng):向高地址方向生長(zhǎng),稱為遞增堆棧(AscendingStack)。●向下生長(zhǎng):向低地址方向生長(zhǎng),稱為遞減堆棧(DecendingStack)。堆棧指針指向最后壓入的堆棧的有效數(shù)據(jù)項(xiàng),稱為滿堆棧(FullStack);堆棧指針指向下一個(gè)要放入的空位置,稱為空堆棧(EmptyStack)。這樣就有四種類(lèi)型的堆棧工作方式,ARM微處理器支持這四種類(lèi)型的堆棧工作方式,即:●滿遞增堆棧:堆棧指針指向最后壓入的數(shù)據(jù),且由低地址向高地址生成。如指令LDMFA,STMFA等。●滿遞減堆棧:堆棧指針指向最后壓入的數(shù)據(jù),且由高地址向低地址生成。如指令LDMFD,STMFD等?!窨者f增堆棧:堆棧指針指向下一個(gè)將要放入數(shù)據(jù)的空位置,且由低地址向高地址生成。如指令LDMEA,STMEA等?!窨者f減堆棧:堆棧指針指向下一個(gè)將要放入數(shù)據(jù)的空位置,且由高地址向低地址生成。如指令LDMED,STMED等。8.塊復(fù)制尋址塊復(fù)制尋址用于把一塊從存儲(chǔ)器的某一位置復(fù)制到另一位置,是一個(gè)多寄存器傳送指令。例如指令:STMIAR0!,{R1-R7};將R1~R7的數(shù)據(jù)保存到存儲(chǔ)器中,存儲(chǔ)器指針在保存第一個(gè)值之后增加,增長(zhǎng)方向?yàn)橄蛏显鲩L(zhǎng)。STMDAR0!,{R1-R7};將R1~R7的數(shù)據(jù)保存到存儲(chǔ)器中,存儲(chǔ)器指針在保存第一個(gè)值之后增加,增長(zhǎng)方向?yàn)橄蛳略鲩L(zhǎng)。9.相對(duì)尋址相對(duì)尋址是變址尋址的一種變通,由程序計(jì)數(shù)器PC提供基準(zhǔn)地址,指令中的地址碼字段作為偏移量,兩者相加后得到的地址即為操作數(shù)的有效地址。例如指令:
BLROUTE1;調(diào)用到ROUTE1子程序
BEQLOOP;條件跳轉(zhuǎn)到LOOP標(biāo)號(hào)處
…LOOPMOVR2,#2…ROUTE1…
4.6.2ARM指令集
1.指令格式(1)基本格式
<opcode>{<cond>}{S}<Rd>,<Rn>{,<opcode2>}
其中,<>內(nèi)的項(xiàng)是必須的,{}內(nèi)的項(xiàng)是可選的,如<opcode>是指令助記符,是必須的,而{<cond>}為指令執(zhí)行條件,是可選的,如果不寫(xiě)則使用默認(rèn)條件AL(無(wú)條件執(zhí)行)。
opcode指令助記符,如LDR,STR等
cond執(zhí)行條件,如EQ,NE等
S是否影響CPSR寄存器的值,書(shū)寫(xiě)時(shí)影響CPSR,否則不影響
Rd目標(biāo)寄存器
Rn第一個(gè)操作數(shù)的寄存器operand2第二個(gè)操作數(shù)。在ARM指令中,靈活的使用第2個(gè)操作數(shù)能提高代碼效率,第2個(gè)操作數(shù)的形式如0x3FC、0、0xF0000000、200,0xF0000001等。指令格式舉例如下:
LDRR0,[R1];讀取R1地址上的存儲(chǔ)器單元內(nèi)容,執(zhí)行條件ALBEQDATAEVEN;跳轉(zhuǎn)指令,執(zhí)行條件EQ,即相等跳轉(zhuǎn)到DATAEVENADDSR1,R1,#1;加法指令,R1+1=R1影響CPSR寄存器,帶有SSUBNESR1,R1,#0xD;條件執(zhí)行減法運(yùn)算(NE),R1-0xD=>R1,影響CPSR寄存器,帶有S(2)條件碼幾乎所有的ARM指令都包含一個(gè)可選擇的條件碼,即{<cond>}。使用指令條件碼,可實(shí)現(xiàn)高效的邏輯操作,提高代碼效率。ARM條件碼如表2.6.1所示。操作碼[31:28]條件碼助記符標(biāo)志含義0000EQZ=1相等0001NEZ=0不相等0010CS/HSC=1無(wú)符號(hào)數(shù)大于或等于0011CC/LOC=0無(wú)符號(hào)數(shù)小于0100MIN=1負(fù)數(shù)0101PLN=0正數(shù)或零0110VSV=1溢出0111VCV=0沒(méi)有溢出表2.6.1ARM條件碼1000HIC=1,Z=0無(wú)符號(hào)數(shù)大于1001LSC=0,Z=1無(wú)符號(hào)數(shù)小于或等于1010GEN=V帶符號(hào)數(shù)大于或等于1011LTN!=V帶符號(hào)數(shù)小于1100GTZ=0,N=V帶符號(hào)數(shù)大于1101LEZ=1,N!=V帶符號(hào)數(shù)小于或等于1110AL任何無(wú)條件執(zhí)行(指令默認(rèn)條件)2.ARM存儲(chǔ)器訪問(wèn)指令A(yù)RM微處理器支持加載/存儲(chǔ)指令用于在寄存器和存儲(chǔ)器之間傳送數(shù)據(jù),加載指令用于將存儲(chǔ)器中的數(shù)據(jù)傳送到寄存器,存儲(chǔ)指令則完成相反的操作。ARM的加載/存儲(chǔ)指令是可以實(shí)現(xiàn)字、半字、,無(wú)符/有符字節(jié)操作;批量加載/存儲(chǔ)指令可實(shí)現(xiàn)一條指令加載/存儲(chǔ)多個(gè)寄存器的內(nèi)容;SWP指令是一條寄存器和存儲(chǔ)器內(nèi)容交換的指令,可用于信號(hào)量操作等。ARM處理器是馮.諾依曼存儲(chǔ)結(jié)構(gòu),程序空間、RAM空間及IO映射空間統(tǒng)一編址,除對(duì)對(duì)RAM操作以外,對(duì)外圍IO、程序數(shù)據(jù)的訪問(wèn)均要通過(guò)加載/存儲(chǔ)指令進(jìn)行。ARM存儲(chǔ)訪問(wèn)指令表如表2.6.2所示。助記符說(shuō)明操作條件碼位置LDRRd,addressing加載字?jǐn)?shù)據(jù)Rd←[addressing],addressing索引LDR{cond}LDRBRd,addressing加載無(wú)符字節(jié)數(shù)據(jù)Rd←[addressing],addressing索引LDR{cond}BLDRTRd,addressing以用戶模式加載字?jǐn)?shù)據(jù)Rd←[addressing],addressing索引LDR{cond}TLDRBTRd,addressing以用戶模式加載無(wú)符號(hào)字?jǐn)?shù)據(jù)Rd←[addressing],addressing索引LDR{cond}BTLDRHRd,addressing加載無(wú)符半字?jǐn)?shù)據(jù)Rd←[addressing],addressing索引LDR{cond}H表2.6.2ARM存儲(chǔ)訪問(wèn)指令表STRBRd,addressing存儲(chǔ)字節(jié)數(shù)據(jù)[addressing]←Rd,addressing索引STR{cond}BSTRTRd,addressing以用戶模式存儲(chǔ)字?jǐn)?shù)據(jù)[addressing]←Rd,addressing索引STR{cond}TSRTBTRd,addressing以用戶模式存儲(chǔ)字節(jié)數(shù)據(jù)[addressing]←Rd,addressing索引STR{cond}BTSTRHRd,addressing存儲(chǔ)半字?jǐn)?shù)據(jù)[addressing]←Rd,addressing索引STR{cond}HLDM{mode}Rn{!},reglist批量(寄存器)加載reglist←[Rn…],Rn回存等LDM{cond}{more}STM{mode}Rn{!},rtglist批量(寄存器)存儲(chǔ)[Rn…]←reglist,Rn回存等STM{cond}{more}SWPRd,Rm,Rn寄存器和存儲(chǔ)器字?jǐn)?shù)據(jù)交換Rd←[Rd],[Rn]←[Rm](Rn≠Rd或Rm)SWP{cond}SWPBRd,Rm,Rn寄存器和存儲(chǔ)器字節(jié)數(shù)據(jù)交換Rd←[Rd],[Rn]←[Rm](Rn≠Rd或Rm)SWP{cond}B指令示例:
LDRR0,[R1];將存儲(chǔ)器地址為R1的字?jǐn)?shù)據(jù)讀入寄存器R0。
LDRR0,[R1,R2];將存儲(chǔ)器地址為R1+R2的字?jǐn)?shù)據(jù)讀入寄存器R0。
LDRR0,[R1,#8];將存儲(chǔ)器地址為R1+8的字?jǐn)?shù)據(jù)讀入寄存器R0。
LDRR0,[R1,R2]?。粚⒋鎯?chǔ)器地址為R1+R2的字?jǐn)?shù)據(jù)讀入寄存器R0,并將新地址R1+R2寫(xiě)入R1。
LDRR0,[R1,#8]?。粚⒋鎯?chǔ)器地址為R1+8的字?jǐn)?shù)據(jù)讀入寄存器R0,并將新地址
R+8寫(xiě)入R1。
LDRR0,[R1],R2;將存儲(chǔ)器地址為R1的字?jǐn)?shù)據(jù)讀入寄存器R0,并將新地址R1+R2寫(xiě)入R1。
LDRR0,[R1,R2,LSL#2]??;將存儲(chǔ)器地址為R1+R2×4的字?jǐn)?shù)據(jù)讀入寄存器R0,并將新地址R1+R2×4寫(xiě)入R1。
LDRBR0,[R1,#8];將存儲(chǔ)器地址為R1+8的字節(jié)數(shù)據(jù)讀入寄存器R0,并將
R0的高24位清零。
LDRHR0,[R1,R2];將存儲(chǔ)器地址為R1+R2的半字?jǐn)?shù)據(jù)讀入寄存器R0,并將R0的高16位清零。
STRR0,[R1],#8;將R0中的字?jǐn)?shù)據(jù)寫(xiě)入以R1為地址的存儲(chǔ)器中,并將新地址R1+8寫(xiě)入R1。
STRBR0,[R1,#8];將寄存器R0中的字節(jié)數(shù)據(jù)寫(xiě)入以R1+8為地址的存儲(chǔ)器中。
STRHR0,[R1];將寄存器R0中的半字?jǐn)?shù)據(jù)寫(xiě)入以R1為地址的存儲(chǔ)器中
STMFDR13!,{R0,R4-R12,LR};將寄存器列表中的寄存器(R0,R4到R12,LR)存入堆棧。
LDMFDR13!,{R0,R4-R12,PC};將堆棧內(nèi)容恢復(fù)到寄存器(R0,R4到R12,LR)。
SWPR0,R1,[R2];將R2所指向的存儲(chǔ)器中的字?jǐn)?shù)據(jù)傳送到R0,同時(shí)將R1
中的字?jǐn)?shù)據(jù)傳送到R2所指向的存儲(chǔ)單元。3.ARM數(shù)據(jù)處理指令數(shù)據(jù)處理指令可分為數(shù)據(jù)傳送指令、算術(shù)邏輯運(yùn)算指令和比較指令等。數(shù)據(jù)傳送指令用于在寄存器和存儲(chǔ)器之間進(jìn)行數(shù)據(jù)的雙向傳輸。所有ARM數(shù)據(jù)處理指令均可選擇使用S后綴,以影響狀態(tài)標(biāo)志。比較指令不需要后綴S,它們會(huì)直接影響狀態(tài)標(biāo)志。算術(shù)邏輯運(yùn)算指令完成常用的算術(shù)與邏輯的運(yùn)算,該類(lèi)指令不但將運(yùn)算結(jié)果保存在目的寄存器中,同時(shí)更新CPSR中的相應(yīng)條件標(biāo)志位。比較指令不保存運(yùn)算結(jié)果,只更新CPSR中相應(yīng)的條件標(biāo)志位。數(shù)據(jù)處理指令如表2.6.3所示。助記符號(hào)說(shuō)明操作條件碼位置MOVRd,operand2數(shù)據(jù)傳送Rd←operand2MOV{cond}{S}MVNRd,operand2數(shù)據(jù)取反傳送Rd←(operand2)MVN{cond}{S}ADDRd,Rnoperand2加法運(yùn)算指令Rd←Rn+operand2ADD{cond}{S}SUBRd,Rnoperand2減法運(yùn)算指令Rd←Rn-operand2SUB{cond}{S}RSBRd,Rnoperand2逆向減法指令Rd←operand2-RnRSB{cond}{S}ADCRd,Rnoperand2帶進(jìn)位加法Rd←Rn+operand2+carryADC{cond}{S}SBCRd,Rnoperand2帶進(jìn)位減法指令Rd←Rn-operand2-(NOT)CarryS
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 會(huì)議接待服務(wù)師崗前操作評(píng)估考核試卷含答案
- 壓鑄模具工安全文化模擬考核試卷含答案
- 社會(huì)工作就業(yè)面試技巧
- 老年疼痛患者帕金森病疼痛方案
- 企業(yè)合同管理與審批制度
- 吊車(chē)吊載人吊籃培訓(xùn)課件
- 2026上半年安徽事業(yè)單位聯(lián)考銅陵市義安區(qū)招聘27人備考題庫(kù)及答案詳解(新)
- 軟件需求分析與設(shè)計(jì)規(guī)范指引
- 2026云南師范大學(xué)實(shí)驗(yàn)中學(xué)盤(pán)龍校區(qū)面向教育部直屬師范大學(xué)開(kāi)展公費(fèi)師范畢業(yè)生招聘?jìng)淇碱}庫(kù)及答案詳解1套
- 七年級(jí)下冊(cè)英語(yǔ) Unit 11 話題探索與語(yǔ)言應(yīng)用教學(xué)設(shè)計(jì)
- 兔子解剖實(shí)驗(yàn)報(bào)告
- 雙減背景下家校共育的問(wèn)題及策略
- 美國(guó)變壓器市場(chǎng)深度報(bào)告
- 建設(shè)工程第三方質(zhì)量安全巡查標(biāo)準(zhǔn)
- 管理養(yǎng)老機(jī)構(gòu) 養(yǎng)老機(jī)構(gòu)的服務(wù)提供與管理
- 乳化液處理操作規(guī)程
- 飯店轉(zhuǎn)讓協(xié)議合同
- 營(yíng)建的文明:中國(guó)傳統(tǒng)文化與傳統(tǒng)建筑(修訂版)
- 液化天然氣氣化站安全檢查表
- 2022年環(huán)保標(biāo)記試題庫(kù)(含答案)
- 2023年白銀有色集團(tuán)招聘筆試題庫(kù)及答案解析
評(píng)論
0/150
提交評(píng)論