第2章 ARM微處理器硬件結(jié)構(gòu)(軟)_第1頁
第2章 ARM微處理器硬件結(jié)構(gòu)(軟)_第2頁
第2章 ARM微處理器硬件結(jié)構(gòu)(軟)_第3頁
第2章 ARM微處理器硬件結(jié)構(gòu)(軟)_第4頁
第2章 ARM微處理器硬件結(jié)構(gòu)(軟)_第5頁
已閱讀5頁,還剩132頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第二章ARM微處理器硬件結(jié)構(gòu),山東大學(xué)精品課程,嵌入式系統(tǒng)原理與接口技術(shù),主編:賈智平張瑞華,清華大學(xué)出版社,2,內(nèi)容提要,ARM存儲系統(tǒng)機制,ARM處理器模式及內(nèi)部寄存器,ARM處理器結(jié)構(gòu)和技術(shù)特征,計算機體系結(jié)構(gòu),3,計算機體系結(jié)構(gòu),計算機中,按內(nèi)存的組成分兩種典型的結(jié)構(gòu):1.馮諾依曼結(jié)構(gòu)/普林斯頓結(jié)構(gòu),4,馮諾依曼體系結(jié)構(gòu),指令寄存器,控制器,數(shù)據(jù)通道,輸入,輸出,中央處理器,存儲器,程序,指令0,指令1,指令2,指令3,指令4,數(shù)據(jù),數(shù)據(jù)0,數(shù)據(jù)1,數(shù)據(jù)2,結(jié)構(gòu)特點:1、指令和數(shù)據(jù)存儲在相同的內(nèi)存空間,但存儲地址不同。2、處理器利用相同的總線處理內(nèi)存中的指令和數(shù)據(jù),指令和數(shù)據(jù)具有相同的

2、數(shù)據(jù)寬度,指令與數(shù)據(jù)無法同時存取。,ARM7嵌入式微處理器亦采用此結(jié)構(gòu),5,哈佛體系結(jié)構(gòu),指令寄存器,控制器,數(shù)據(jù)通道,輸入,輸出,CPU,程序存儲器,指令0,指令1,指令2,數(shù)據(jù)存儲器,數(shù)據(jù)0,數(shù)據(jù)1,數(shù)據(jù)2,地址,指令,地址,數(shù)據(jù),結(jié)構(gòu)特點:1、指令存儲和數(shù)據(jù)存儲分開,指令和數(shù)據(jù)分別位于不同的存儲空間。2、指令與數(shù)據(jù)的存取采用不同總線,取指令和存取數(shù)據(jù)可同時進行,微處理器具有較高的執(zhí)行效率。,數(shù)字信號處理器DSP通常采用哈佛結(jié)構(gòu),ARM9嵌入式微處理器亦采用此結(jié)構(gòu)。,6,第2章ARM微處理器硬件結(jié)構(gòu),1,2,計算機體系結(jié)構(gòu),ARM處理器結(jié)構(gòu)和技術(shù)特征,ARM處理器模式及內(nèi)部寄存器,3,4,

3、ARM存儲系統(tǒng)機制,7,ARM簡介,ARM公司簡介ARM是AdvancedRISCMachines的縮寫,它是一家微處理器行業(yè)的知名企業(yè),該企業(yè)設(shè)計了大量高性能、廉價、耗能低的RISC(精簡指令集)處理器。公司的特點是只設(shè)計芯片,而不生產(chǎn)。它將技術(shù)授權(quán)給世界上許多著名的半導(dǎo)體、軟件和OEM廠商,并提供服務(wù),8,ARM簡介,ARM公司簡介,將技術(shù)授權(quán)給其它芯片廠商,形成各具特色的ARM芯片,9,ARM簡介,微處理器是整個系統(tǒng)的核心,通常由3大部分組成:控制單元、算術(shù)邏輯單元和寄存器。,10,ARM簡介,ARM處理器的應(yīng)用當前主要應(yīng)用于消費類電子領(lǐng)域;到目前為止,基于ARM技術(shù)的微處理器應(yīng)用約占據(jù)

4、了32位嵌入式微處理器75以上的市場份額全球80%的GSM/3G手機、99%的CDMA手機以及絕大多數(shù)PDA產(chǎn)品均采用ARM體系的嵌入式處理器,“掌上計算”相關(guān)的所有領(lǐng)域皆為其所主宰。ARM技術(shù)正在逐步滲入到我們生活的各個方面。,11,ARM簡介,ARM體系結(jié)構(gòu),ARM處理器為RISC芯片,其簡單的結(jié)構(gòu)使ARM內(nèi)核非常小,這使得器件的功耗也非常低。它具有經(jīng)典RISC的特點:,12,ARM簡介,各ARM體系結(jié)構(gòu)版本,ARM體系結(jié)構(gòu)從最初開發(fā)到現(xiàn)在有了很大的改進,并仍在完善和發(fā)展。為了清楚的表達每個ARM應(yīng)用實例所使用的指令集,ARM公司定義了6種主要的ARM指令集體系結(jié)構(gòu)版本,以版本號V1V6表

5、示。,13,ARM體系結(jié)構(gòu)版本,ARM體系結(jié)構(gòu)版本V1-V7(自學(xué))主要是:尋址能力提高、增加不同的指令增加不同的硬件處理部件在不同的版本,有不同應(yīng)用的處理芯片ARMv7定義了3種不同的處理器配置(processorprofiles):ProfileA是面向復(fù)雜、基于虛擬內(nèi)存的OS和應(yīng)用;ProfileR是針對實時系統(tǒng);ProfileM是針對低成本應(yīng)用的系統(tǒng)。,14,ARM處理器的分類,結(jié)構(gòu)體系版本(Architecture)ARMv4TARMv5TEARMv6ARMCortex(v7),ProcessorFamilyARM7ARM9ARM10ARM11ARMCortex,15,ARM各系列處

6、理器(作資料了解),ARM公司開發(fā)了很多系列的ARM處理器核,目前最新的系列已經(jīng)是ARM11了,而ARM6核以及更早的系列已經(jīng)很罕見了。目前應(yīng)用比較廣泛的系列是:,ARM7,ARM9,ARM9E,ARM10,ARM11,SecurCore,Cortex,Xscale,16,ARM7,ARM7微處理器系列特點:馮諾伊曼體系結(jié)構(gòu);ARMTDMI是目前應(yīng)用最廣的微處理器核;ARM720T帶有MMU和8KB的指令數(shù)據(jù)混合cache;ARM7EJ執(zhí)行ARMv5TEJ指令,5級流水線,提供Java加速指令,沒有存儲器保護。,17,ARM7TDMI,ARM7TDMI:整數(shù)處理核ARM7TDMI處理器的可綜合

7、版本;ARM720T:帶MMU的處理器核心,支持操作系統(tǒng);ARM7EJ-S:帶有DSP和JazelleTM技術(shù),能夠?qū)崿F(xiàn)Java加速功能,18,ARM7TDMI,簡介,ARM7TDMI處理器是ARM通用32位微處理器家族的成員之一。它具有優(yōu)異的性能,但功耗卻很低,使用門的數(shù)量也很少。它屬于精簡指令集計算機(RISC),比復(fù)雜指令集計算機(CISC)要簡單得多。這樣的簡化實現(xiàn)了:,高的指令吞吐量;出色的實時中斷響應(yīng);小的、高性價比的處理器宏單元。,19,ARM7TDMI,三級流水線,ARM7TDMI處理器使用流水線來增加處理器指令流的速度。這樣可使幾個操作同時進行,并使處理和存儲器系統(tǒng)連續(xù)操作,

8、能提供0.9MIPS/MHz的指令執(zhí)行速度。ARM7TDMI的流水線分3級,分別為:取指譯碼執(zhí)行,20,ARM7TDMI,存儲器訪問,ARM7TDMI處理器使用了馮諾依曼(VonNeumann)結(jié)構(gòu),指令和數(shù)據(jù)共用一條32位總線。只有裝載、存儲和交換指令可以對存儲器中的數(shù)據(jù)進行訪問。數(shù)據(jù)可以是字節(jié)(8位)、半字(16位)或者字(32位)。,21,ARM7TDMI結(jié)構(gòu)框圖,22,返回,23,ARM9,ARM9微處理器系列特點:基于ARM9TDMI,帶16位的Thumb指令集,增強代碼密度最多到35%;在0.13m工藝下最高性能可達到300MIPS(Dhrystone2.1測試標準);集成了數(shù)據(jù)和

9、指令Chche;32位AMBA總線接口的MMU支持;可在0.18m、0.15m和0.13m工藝的硅芯片上實現(xiàn)。,24,ARM920T內(nèi)核結(jié)構(gòu),返回,25,ARM9E,ARM9E微處理器系列特點:ARM9E是針對微控制器、DSP和Java的單處理器解決方案;ARMJazelle技術(shù)提供8倍的Java加速性能(ARM926EJ-S);5-級整數(shù)流水線;在0.13m工藝下最高性能可達到300MIPS(Dhrystone2.1測試標準);可選擇的向量浮點單元VFP9協(xié)處理器,對于3D圖形加速和實時控制可達到215MFLOPS高性能的AHB總線,帶MMU可在0.18m,0.15m,0.13m工藝的硅芯片

10、上實現(xiàn)。,返回,26,ARM10E,ARM10E微處理器系列特點:帶分支預(yù)測的6級整數(shù)流水線;在0.13m工藝下最高性能可達到430MIPS(Dhrystone2.1測試標準);對于3D圖形運算和實時控制采用VFP協(xié)處理器,浮點運算性能最高可達650MFLOPS;雙64位AMBA總線接口和64位內(nèi)部總路線接口;優(yōu)化的緩存結(jié)構(gòu)提高了處理器訪問低速存儲器的性能;可在0.18m,0.15m,0.13m工藝的硅芯片上實現(xiàn),返回,27,ARM11,ARM11微處理器系列特點:增強的Thumb、Jazelle、DSP擴展支持;帶片上和系統(tǒng)安全TrustZone技術(shù)支持;在0.13m工藝下最高可達到550M

11、Hz;MPCore在0.13m工藝下最高性能可達到740MIPS(Dhrystone2.1測試標準);支持多媒體指令SIMD;采用三種電源模式:全速/待命/休眠集成DMA的TCM低功耗、高性能,返回,28,ARM處理器工作狀態(tài),ARM和Thumb狀態(tài)ARM指令系統(tǒng)(V4版以后具有Thumb指令集):32位ARM指令集:固定的32位指令,Load/StoreRISC特征,3地址格式。16位Thumb指令集:是ARM指令集的子集,按16位指令重新編碼,固定的16位指令,Load/StoreRISC特征,2地址格式。,注意:兩個狀態(tài)之間的切換并不影響處理器模式或寄存器內(nèi)容。,29,處理器狀態(tài)切換,使

12、用BX指令將ARM7TDMI內(nèi)核的操作狀態(tài)在ARM狀態(tài)和Thumb狀態(tài)之間進行切換,程序如下所示。,;從Arm狀態(tài)切換到Thumb狀態(tài)LDRR0,=Lable+1BXR0;從Thumb狀態(tài)切換到ARM狀態(tài)LDRR0,=LableBXR0,地址最低位為1,表示切換到Thumb狀態(tài),地址最低位為0,表示切換到ARM狀態(tài),跳轉(zhuǎn)地址標號,30,流水線技術(shù),流水線(Pipeline)技術(shù):幾個指令可以并行執(zhí)行提高了CPU的運行效率內(nèi)部信息流要求通暢流動,譯碼,取指,執(zhí)行add,譯碼,取指,執(zhí)行sub,譯碼,取指,執(zhí)行cmp,時間,31,流水線技術(shù),為增加處理器指令流的速度,ARM7系列使用3級流水線允許

13、多個操作同時處理,比逐條指令執(zhí)行要快。PC指向正被取指的指令,而非正在執(zhí)行的指令,Fetch,Decode,Execute,從存儲器中讀取指令,解碼指令,寄存器讀(從寄存器Bank)移位及ALU操作寄存器寫(到寄存器Bank),PCPC,PC-4PC-2,PC-8PC-4,ARMThumb,32,在ARM7的3級流水線結(jié)構(gòu)中流水線易出現(xiàn)阻塞或間斷,這必然降低了流水線的效率,為了提高處理器的性能,必然要考慮如何優(yōu)化處理器的組織結(jié)構(gòu)。(1)縮短程序執(zhí)行時間:提高時鐘頻率fclk減少每條指令的平均時鐘周期數(shù)CPI,流水線技術(shù),Tprog:程序執(zhí)行時間Ninst:指令條數(shù)CPI:指令平均時鐘周期數(shù)FC

14、LK:時鐘頻率,33,流水線技術(shù),(2)解決流水線相關(guān):結(jié)構(gòu)相關(guān)數(shù)據(jù)相關(guān)控制相關(guān),如果某些指令在流水線中重疊執(zhí)行時,產(chǎn)生資源沖突,則稱該流水線存在結(jié)構(gòu)相關(guān)。解決:資源重復(fù)(Cache分離、ALU中單獨的地址計算加法器),寫后讀”、“寫后寫”“讀后寫”解決:專用通路、流水線互鎖技術(shù),當流水線遇到分支指令和其他會改變PC值的指令時,取指取決于指令執(zhí)行條件,可能需重新取指,致使流水線停頓。解決:引入延時分支、盡早計算轉(zhuǎn)移成功時的目標地址。,addr0,r1,r2movr2,r0,addr0,r1,r2addr0,r3,r4,movr2,r0addr0,r1,r2,34,多周期ARM指令的3級流水線操

15、作,STR計算存儲器地址與ADD譯碼,都為下一周期產(chǎn)生數(shù)據(jù)傳送控制信號,不能同步進行。Dataxfer-excute占用數(shù)據(jù)路徑,兩條指令不能同時譯碼。,取指與存數(shù)沖突,若流水線產(chǎn)生資源沖突,則稱該流水線存在結(jié)構(gòu)相關(guān)。如,取指存數(shù)沖突,2條指令同時占用譯碼級等。,35,流水線技術(shù),超標量(Superscalar)執(zhí)行:超標量CPU采用多條流水線結(jié)構(gòu),執(zhí)行1,取指,指令,譯碼2,譯碼1,執(zhí)行2,執(zhí)行1,取指,譯碼2,譯碼1,執(zhí)行2,流水線1,流水線2,數(shù)據(jù)回寫,36,流水線技術(shù),注意:超標量處理器在執(zhí)行的過程中必須動態(tài)地檢查指令相關(guān)性,判斷當前的指令組合是否能同時執(zhí)行;如果代碼中有分支指令,我們

16、必須將分支被執(zhí)行和分支不被執(zhí)行這兩種情況分開考慮,計算執(zhí)行時間幾乎是不可能的;,37,流水線技術(shù),ARM各個系列的流水線:,38,第2章ARM微處理器硬件結(jié)構(gòu),1,2,計算機體系結(jié)構(gòu),ARM處理器結(jié)構(gòu)和技術(shù)特征,ARM處理器模式及內(nèi)部寄存器,3,4,ARM存儲系統(tǒng)機制,39,處理器模式,處理器7種模式,40,處理器模式,特權(quán)模式,除用戶模式外,其它模式均為特權(quán)模式。ARM內(nèi)部寄存器和一些片內(nèi)外設(shè)在硬件設(shè)計上只允許(或者可選為只允許)特權(quán)模式下訪問。此外,特權(quán)模式可以自由的切換處理器模式,而用戶模式不能直接切換到別的模式。,41,處理器模式,異常模式,這五種模式稱為異常模式。它們除了可以通過程序

17、切換進入外,也可以由特定的異常進入。當特定的異常出現(xiàn)時,處理器進入相應(yīng)的模式。每種異常模式都有一些獨立的寄存器,以避免異常退出時用戶模式的狀態(tài)不可靠。,42,處理器模式,用戶和系統(tǒng)模式,這兩種模式都不能由異常進入,而且它們使用完全相同的寄存器組。系統(tǒng)模式是特權(quán)模式,不受用戶模式的限制。操作系統(tǒng)在該模式下訪問用戶模式的寄存器就比較方便,而且操作系統(tǒng)的一些特權(quán)任務(wù)可以使用這個模式訪問一些受控的資源。,43,通用寄存器寄存器,簡介在ARM7TDMI處理器內(nèi)部有37個用戶可見的寄存器。在不同的工作模式和處理器狀態(tài)下,程序員可以訪問的寄存器也不盡相同。,44,ARM狀態(tài)各模式下的寄存器,45,ARM狀態(tài)

18、各模式下的寄存器,所有的37個寄存器,分成兩大類:31個通用32位寄存器;6個狀態(tài)寄存器。,46,ARM狀態(tài)各模式下可以訪問的寄存器,47,一般的通用寄存器,在匯編語言中寄存器R0R13為保存數(shù)據(jù)或地址值的通用寄存器。它們是完全通用的寄存器,不會被體系結(jié)構(gòu)作為特殊用途,并且可用于任何使用通用寄存器的指令。,48,一般的通用寄存器,其中R0R7為未分組的寄存器,也就是說對于任何處理器模式,這些寄存器都對應(yīng)于相同的32位物理寄存器。,49,一般的通用寄存器,寄存器R8R14為分組寄存器。它們所對應(yīng)的物理寄存器取決于當前的處理器模式,幾乎所有允許使用通用寄存器的指令都允許使用分組寄存器,50,一般的

19、通用寄存器,寄存器R8R12有兩個分組的物理寄存器。一個用于除FIQ模式之外的所有寄存器模式,另一個用于FIQ模式。這樣在發(fā)生FIQ中斷后,可以加速FIQ的處理速度。,51,一般的通用寄存器,寄存器R13、R14分別有6個分組的物理寄存器。一個用于用戶和系統(tǒng)模式,其余5個分別用于5種異常模式。,52,堆棧指針寄存器R13(SP),寄存器R13常作為堆棧指針(SP)。在ARM指令集當中,沒有以特殊方式使用R13的指令或其它功能,只是習(xí)慣上都這樣使用。但是在Thumb指令集中存在使用R13的指令。,53,鏈接寄存器R14(LR),R14為鏈接寄存器(LR),在結(jié)構(gòu)上有兩個特殊功能:在每種模式下,模

20、式自身的R14版本用于保存子程序返回地址;當發(fā)生異常時,將R14對應(yīng)的異常模式版本設(shè)置為異常返回地址(有些異常有一個小的固定偏移量)。,54,內(nèi)部寄存器,R14(LR)寄存器與子程序調(diào)用,MOVPC,LR,R14(地址A),1.程序A執(zhí)行過程中調(diào)用程序B;,操作流程,2.程序跳轉(zhuǎn)至標號Lable,執(zhí)行程序B。同時硬件將“BLLable”指令的下一條指令所在地址存入R14(LR);,3.程序B執(zhí)行最后,將R14寄存器的內(nèi)容放入PC,返回程序A;,55,內(nèi)部寄存器,R14寄存器與異常發(fā)生異常發(fā)生時,程序要跳轉(zhuǎn)至異常服務(wù)程序,對返回地址的處理與子程序調(diào)用類似,都是由硬件完成的。區(qū)別在于有些異常有一個

21、小常量的偏移。,56,內(nèi)部寄存器,R14寄存器注意要點當發(fā)生異常嵌套時,這些異常之間可能會發(fā)生沖突。例如:如果用戶在用戶模式下執(zhí)行程序時發(fā)生了IRQ中斷,用戶模式寄存器不會被破壞。但是如果允許在IRQ模式下的中斷處理程序重新使能IRQ中斷,并且發(fā)生了嵌套的IRQ中斷時,外部中斷處理程序保存在R14_irq中的任何值都將被嵌套中斷的返回地址所覆蓋。,57,內(nèi)部寄存器,R14寄存器注意要點:,a,return,地址A,1.執(zhí)行用戶模式下的程序;,2.發(fā)生IRQ中斷,硬件將某個地址存入IRQ模式下的R14_irq寄存器,用戶模式下的R14沒有被破壞;,3.IRQ服務(wù)程序A執(zhí)行完畢,將R14_irq寄

22、存器的內(nèi)容減去某個常量后存入PC,返回之前被中斷的程序;,未被破壞,R14_irq,58,內(nèi)部寄存器,R14寄存器注意要點:,a,地址A,1.執(zhí)行用戶模式下的程序;,2.發(fā)生IRQ中斷,硬件將某個地址存入IRQ模式下的R14_irq寄存器,用戶模式下的R14沒有被破壞;,3.IRQ服務(wù)程序A執(zhí)行完畢,將R14_irq寄存器的內(nèi)容減去某個常量后存入PC,返回之前被中斷的程序;,未被破壞,a,return,地址B,4.如果在IRQ處理程序中打開IRQ中斷,并且再次發(fā)生IRQ中斷;,5.硬件將返回地址保存在R14_irq寄存器中,原來保存的返回地址將被覆蓋,造成錯誤;,R14_irq被破壞,6.在程

23、序B返回到程序A,然后在返回到用戶模式下被中斷的程序時,發(fā)生錯誤,將不能正確返回;,return,return,解決辦法是確保R14的對應(yīng)版本在發(fā)生中斷嵌套時不再保存任何有意義的值(將R14入棧),或者切換到其它處理器模式下。,59,程序計數(shù)器R15(PC),寄存器R15為程序計數(shù)器(PC),它指向正在取指的地址。可以認為它是一個通用寄存器,但是對于它的使用有許多與指令相關(guān)的限制或特殊情況。如果R15使用的方式超出了這些限制,那么結(jié)果將是不可預(yù)測的。,60,內(nèi)部寄存器,讀R15的限制:,正常操作時,從R15讀取的值是處理器正在取指的地址,即當前正在執(zhí)行指令的地址加上8個字節(jié)(兩條ARM指令的長

24、度)。由于ARM指令總是以字為單位,所以R15寄存器的最低兩位總是為0。,61,內(nèi)部寄存器,R15的限制,當使用STR或STM指令保存R15時,會有一個例外。這些指令可能將當前指令地址加8字節(jié)或加12字節(jié)保存(將來可能還有其它數(shù)字)。偏移量是8還是12取決于具體的ARM芯片,但是對于一個確定的芯片,這個值是一個常量。所以最好避免使用STR和STM指令來保存R15,如果很難做到,那么應(yīng)當在程序中計算出該芯片的偏移量。,62,內(nèi)部寄存器,R15的限制:,計算偏移量(PC值和當前指令地址的差)程序代碼:,SUBR1,PC,#4;R1=下面STR指令的地址STRPC,R0;保存STR指令地址+偏移量L

25、DRR0,R0;然后重裝SUBR0,R0,R1;計算偏移量,0,4,8,12,ARM狀態(tài),正常操作時,寫入R15的值被當作一個指令地址,程序從這個地址處繼續(xù)執(zhí)行(相當于執(zhí)行一次無條件跳轉(zhuǎn))。,63,內(nèi)部寄存器,寫R15的限制:,由于ARM指令以字為邊界,因此寫入R15的值最低兩位通常為0b00。具體的規(guī)則取決于內(nèi)核結(jié)構(gòu)的版本:在ARM結(jié)構(gòu)V3版及以下版本中,寫入R15的值的最低兩位被忽略,因此跳轉(zhuǎn)地址由指令的實際目標地址(寫入R15的值)和0 xFFFFFFFC相與得到;在ARM結(jié)構(gòu)V4版及以上版本中,寫入R15的值的最低兩位為0,如果不是,結(jié)果將不可預(yù)測。,64,程序狀態(tài)寄存器CPSR,寄存

26、器CPSR為程序狀態(tài)寄存器,在異常模式中,另外一個寄存器“程序狀態(tài)保存寄存器(SPSR)”可以被訪問。每種異常都有自己的SPSR,在進入異常時它保存CPSR的當前值,異常退出時可通過它恢復(fù)CPSR。詳細描述參看3.8小節(jié)。,65,內(nèi)部寄存器,ARM狀態(tài)和Thumb狀態(tài)之間寄存器的關(guān)系,Thumb狀態(tài)寄存器與ARM狀態(tài)寄存器有如下的關(guān)系:Thumb狀態(tài)R0R7與ARM狀態(tài)R0R7相同;Thumb狀態(tài)CPSR和SPSR與ARM狀態(tài)CPSR和SPSR相同;Thumb狀態(tài)SP映射到ARM狀態(tài)R13;Thumb狀態(tài)LR映射到ARM狀態(tài)R14;Thumb狀態(tài)PC映射到ARM狀態(tài)PC(R15)。,66,Th

27、umb狀態(tài)寄存器在Arm狀態(tài)寄存器上的映射,低寄存器,高寄存器,67,內(nèi)部寄存器,在Thumb狀態(tài)中訪問高寄存器,在Thumb狀態(tài)中,高寄存器(R8R15)不是標準寄存器集的一部分。匯編語言程序員對它們的訪問受到限制。可以使用MOV、CMP和ADD指令對高寄存器操作,詳見第4章。,68,程序狀態(tài)寄存器,簡介,ARM7TDMI內(nèi)核包含1個CPSR和5個供異常處理程序使用的SPSR。CPSR反映了當前處理器的狀態(tài),其包含:4個條件代碼標志(負(N)、零(Z)、進位(C)和溢出(V));2個中斷禁止位,分別控制一種類型的中斷;5個對當前處理器模式進行編碼的位;1個用于指示當前執(zhí)行指令(ARM還是Th

28、umb)的位。,69,程序狀態(tài)寄存器,簡介,條件代碼標志,保留,控制位,溢出標志oVerflow,進位或借位擴展Carry,零Zero,負或小于Negative,IRQ禁止Interrupt,FIQ禁止Fast,狀態(tài)位Thumb,模式位Mode,N,Z,C,V,I,T,F,CPSR寄存器的格式,70,程序狀態(tài)寄存器,簡介,每個異常模式還帶有一個程序狀態(tài)保存寄存器(SPSR),它用于保存在異常發(fā)生之前的CPSR。CPSR和SPSR通過特殊指令(MRS、MSR)進行訪問。,71,程序狀態(tài)寄存器,條件代碼標志,大多數(shù)“數(shù)值處理指令”可以選擇是否影響條件代碼標志位。通常如果指令帶S后綴,則該指令的執(zhí)行

29、會影響條件代碼標志;但有一些指令的執(zhí)行總是會影響條件代碼標志。N、Z、C和V位都是條件代碼標志。算術(shù)操作、邏輯操作、MSR或者LDM指令可以對這些位進行設(shè)置。所有ARM指令都可按條件來執(zhí)行,而Thumb指令中只有分支指令可按條件執(zhí)行。,72,程序狀態(tài)寄存器,條件代碼標志,各標志位的含義如下:N運算結(jié)果的最高位反映在該標志位。對于有符號二進制補碼運算,結(jié)果為負數(shù)時N=1,結(jié)果為正數(shù)或零時N=0;Z指令結(jié)果為0時Z=1(通常表示比較結(jié)果“相等”),否則Z=0;,73,程序狀態(tài)寄存器,條件代碼標志,各標志位的含義如下:C當進行加法運算(包括CMN指令),并且最高位產(chǎn)生進位時C=1,否則C=0。當進行

30、減法運算(包括CMP指令),并且最高位產(chǎn)生借位時C=0,否則C=1。對于結(jié)合移位操作的非加法/減法指令,C為從最高位最后移出的值,其它指令C通常不變;V當進行加法/減法運算,并且發(fā)生有符號溢出時V=1,否則V=0,其它指令V通常不變。,74,程序狀態(tài)寄存器,控制位,CPSR的最低8位為控制位,當發(fā)生異常時,這些位被硬件改變。當處理器處于一個特權(quán)模式時,可用軟件操作這些位。它們分別是:中斷禁止位;T位;模式位。,75,程序狀態(tài)寄存器,控制位,中斷禁止位包括I和F位:當I位置位時,IRQ中斷被禁止;當F位置位時,F(xiàn)IQ中斷被禁止。T位反映了正在操作的狀態(tài):當T位為1時,處理器正在Thumb狀態(tài)下運

31、行;當T位清零時,處理器正在ARM狀態(tài)下運行。,76,程序狀態(tài)寄存器,控制位,模式位包括M4、M3、M2、M1和M0,這些位決定處理器的操作模式。注意:不是所有模式位的組合都定義了有效的處理器模式,如果使用了錯誤的設(shè)置,將引起一個無法恢復(fù)的錯誤。,77,CPSR模式位設(shè)置表,78,程序狀態(tài)寄存器,保留位8-27位,CPSR中的保留位被保留將來使用。為了提高程序的可移植性,當改變CPSR標志和控制位時,請不要改變這些保留位。另外,請確保程序的運行不受保留位的值影響,因為將來的處理器可能會將這些位設(shè)置為1或者0。,79,79,異常中斷,異常中斷是指處理器由于外部或內(nèi)部的原因,停止執(zhí)行當前任務(wù),轉(zhuǎn)而

32、處理特定的事件,處理完后返回原程序,繼續(xù)執(zhí)行。,ARM共有7種類型的異常,不同類型的異常將導(dǎo)致處理器進入不同的工作模式,并執(zhí)行不同特定地址的指令。各異常類型具有不同的優(yōu)先級,如下表所示,80,80,異常中斷,81,81,舉例,1.整個地址空間的起始位置(地址0 x00000000開始)有以下指令對應(yīng)地址bSYS_RST_HANDLER復(fù)位;0 x00000000bUDF_INS_HANDLER未定指令義;0 x00000004bSWI_SVC_HANDLER軟件中斷;0 x00000008bINS_ABT_HANDLER指令預(yù)取中止;0 x0000000cbDAT_ABT_HANDLER數(shù)據(jù)訪

33、問中止;0 x00000010b.;bIRQ_SVC_HANDLER外部中斷請求;0 x00000018bFIQ_SVC_HANDLER快速中斷請求;0 x0000001c,一旦發(fā)生外部中斷請求,處理器首先自動保存當前狀態(tài),進入外部中斷模式,接著執(zhí)行地址0 x00000018處的指令,即bIRQ_SVC_HANDLER跳轉(zhuǎn)到標號IRQ_SVC_HANDLER處開始執(zhí)行,PC-R14CPSR-SPSR,82,82,舉例,2.IRQ_SVC_HANDLER處的代碼為:IRQ_SVC_HANDLERsublr,lr,#4stmfdsp!,r0-r3,lrldrr0,=IRQ_SVC_Vectorld

34、rpc,r0,處理器將通用寄存器和返回地址壓入堆棧,IRQ_SVC_Vector為外部中斷請求的中斷向量,跳轉(zhuǎn)到外部中斷請求的中斷服務(wù)程序中,83,以MAP偽指令定義中斷向量表的內(nèi)存結(jié)構(gòu),并分配存儲單元。中斷向量表在系統(tǒng)啟動時應(yīng)初始化,其內(nèi)的中斷向量應(yīng)存入相應(yīng)中斷服務(wù)程序的地址。MAPISR_STARTADDRESS;中斷向量表開始地址SYS_RST_VECTOR#4;復(fù)位中斷向量UDF_INS_VECTOR#4;未定義指令中斷向量SWI_SVC_VECTOR#4;軟件中斷中斷向量INS_ABT_VECTOR#4;指令預(yù)取中止中斷向量DAT_ABT_VECTOR#4;數(shù)據(jù)訪問中止中斷向量RES

35、ERVED_VECTOR#4;保留IRQ_SVC_VECTOR#4;外部中斷中斷向量FIQ_SVC_VECTOR#4;快速中斷中斷向量,84,外部中斷向量的初始化:ldrr0,IRQ_SVC_VECTOR;外部中斷向量的地址r0ldrr1,=IsrIRQ;外部中斷服務(wù)程序的入口地址IsrIRQr1strr1,r0;將其寫入中斷向量IRQ_SVC_VECTOR,85,圖示進入異常過程,1.程序在系統(tǒng)模式下運行用戶程序,假定當前處理器狀態(tài)為Thumb狀態(tài)、允許IRQ中斷;,2.用戶程序運行時發(fā)生IRQ中斷,硬件完成以下動作:,置位I位(禁止IRQ中斷)清零T位(進入ARM狀態(tài))設(shè)置MOD位,切換處

36、理器模式至IRQ模式,將下一條指令的地址存入IRQ模式的LR寄存器,將CPSR寄存器內(nèi)容存入IRQ模式的SPSR寄存器,將跳轉(zhuǎn)地址存入PC,實現(xiàn)跳轉(zhuǎn),BackAddr,JumpAddr,“?”表示對該位不關(guān)心,86,在異常處理結(jié)束后,異常處理程序完成以下動作:,圖示退出異常過程,將SPSR寄存器的值復(fù)制回CPSR寄存器;,將LR寄存的值減去一個常量后復(fù)制到PC寄存器,跳轉(zhuǎn)到被中斷的用戶程序。,BackAddr,JumpAddr,return,BackAddr-4,“?”表示對該位不關(guān)心,87,第2章ARM微處理器硬件結(jié)構(gòu),1,2,計算機體系結(jié)構(gòu),ARM處理器結(jié)構(gòu)和技術(shù)特征,ARM處理器模式及內(nèi)

37、部寄存器,3,4,ARM存儲系統(tǒng)機制,88,2.4.1ARM存儲器存儲層次,ARM存儲器采用層次存儲結(jié)構(gòu),其目的在于以低速存儲器的價格得到高速存儲器的性能。ARM架構(gòu)的處理器的存儲器尋址空間為4GB,一般系統(tǒng)所需RAM/ROM經(jīng)總線外接。存儲層次:,寄存器,片上RAM,主存,硬盤,89,ARM存儲器存儲層次,ARM支持的數(shù)據(jù)類型ARM處理器支持以下六種數(shù)據(jù)類型:8位有符號和無符號字節(jié)。16位有符號和無符號半字,以2字節(jié)的邊界對齊。32位有符號和無符號字,以4字節(jié)的邊界對齊。,在內(nèi)部,所有ARM操作都是面向32位的操作數(shù);只有數(shù)據(jù)傳送指令支持較短的字節(jié)和半字的數(shù)據(jù)類型。,當從存儲器調(diào)入一個字節(jié)和

38、半字時,根據(jù)指令對數(shù)據(jù)的操作類型,將其無符號0或有符號“符號位”擴展為32位,進而作為32位數(shù)據(jù)在內(nèi)部進行處理。,90,ARM內(nèi)存儲器的組織,大端的數(shù)據(jù)存放格式,低地址,高地址,地址A,地址A+1,地址A+2,地址A+3,最高有效字節(jié)的地址就是該word的地址,最高有效字節(jié)位于最低地址,worda=0 xf6734bcd,f6,73,4b,cd,91,ARM內(nèi)存儲器的組織,小端的數(shù)據(jù)格式,低地址,高地址,地址A,地址A+1,地址A+2,地址A+3,最低有效字節(jié)的地址就是該word的地址,最低有效字節(jié)位于最低地址,worda=0 xf6734bcd,f6,73,4b,cd,92,ARM4種存儲周

39、期,注意:總線周期使用nMREQ和SEQ信號編碼,nMREQ、SEQ為CPU引腳。,93,2.4.2高速緩沖存儲器Cache,高速緩存Cache高速緩沖存儲器中存放的是當前使用得最多的程序代碼和數(shù)據(jù),即主存中部分內(nèi)容的副本。在嵌入式系統(tǒng)中Cache全部都集成在嵌入式微處理器內(nèi)??煞譃閿?shù)據(jù)Cache、指令Cache或混合Cache。不同的處理器其Cache的大小不一樣。一般32位的嵌入式微處理器都內(nèi)置Cache。,94,Cache,Cache命中:CPU每次訪問主存時,Cache控制器都要檢查CPU送出的地址,判斷CPU要讀取的數(shù)據(jù)是否在Cache中,如果在就稱為命中。Cache未命中:訪問的數(shù)

40、據(jù)不在Cache中,則對主存儲器進行操作,并將有關(guān)內(nèi)容置入Cache。寫入方法:寫通(WriteThrough):寫Cache時,Cache與對應(yīng)內(nèi)存內(nèi)容同步更新。寫回(WriteBack):寫Cache時,只寫入Cache,內(nèi)容移出時才更新對應(yīng)內(nèi)存內(nèi)容。,95,命中率,96,高速緩存(Cache)的分類,統(tǒng)一Cache:如果一個存儲系統(tǒng)中指令預(yù)取時使用的cache和數(shù)據(jù)讀寫時使用的cache是用一個cache,稱系統(tǒng)使用統(tǒng)一的cache。獨立的數(shù)據(jù)/程序Cache:如果一個存儲系統(tǒng)中指令預(yù)取時使用的cache和數(shù)據(jù)讀寫時使用的cache是各自獨立的,稱系統(tǒng)使用了獨立的cache。其中,用于指

41、令預(yù)取的cache稱為指令cache,用于數(shù)據(jù)讀寫的cache稱為數(shù)據(jù)cache。,97,統(tǒng)一Cache,數(shù)據(jù)和指令共用一個cache,如ARM710T。,寄存器,處理器,Cache,指令的拷貝,數(shù)據(jù)的拷貝,存儲器,指令,數(shù)據(jù),地址,指令和數(shù)據(jù),地址,指令和數(shù)據(jù),FF.FF,00.00,98,獨立Cache,數(shù)據(jù)和指令分離cache,如ARM920T。,Cache,指令的拷貝,Cache,Cache,寄存器,數(shù)據(jù)的拷貝,存儲器,指令,數(shù)據(jù),FF.FF,00.00,地址,地址,指令,指令,地址,地址,指令,數(shù)據(jù),99,高速緩存Cache的分類,讀操作分配cache和寫操作分配cache:當進行數(shù)

42、據(jù)寫操作時,可能cache未命中,這時根據(jù)cache執(zhí)行的操作不同,將cache分為兩類:讀操作分配cache和寫操作分配cache。讀操作分配cache,當進行數(shù)據(jù)寫操作時,如果cache未命中,只是簡單的將數(shù)據(jù)寫入主存中。寫操作分配cache,在讀操作不命中時,只簡單的訪問主存,讀相應(yīng)內(nèi)容,并不對Cache填充;,注意:讀操作分配主要在數(shù)據(jù)讀取未命中時,才進行cache內(nèi)容預(yù)取填充。,注意:當進行數(shù)據(jù)寫操作分配時,如果cache未命中,cache系統(tǒng)將會進行cache內(nèi)容預(yù)取,從主存中將相應(yīng)的塊讀取到cache中相應(yīng)的位置,并執(zhí)行寫操作,把數(shù)據(jù)寫入到cache中。,100,Cache,替換

43、策略:輪轉(zhuǎn)法,隨機替換算法。,命中時形成Cache塊的高位地址。,101,Cache的工作原理:,在cache存儲系統(tǒng)中,把主存儲器和cache都劃分成相同大小的塊。主存地址可以由塊號M和塊內(nèi)地址N兩部分組成。同樣,cache的地址也由塊號m和塊內(nèi)地址n組成。工作原理圖如圖所示:,地址轉(zhuǎn)換,Cache地址R,cache訪問過程:1、虛擬地址存入地址寄存器。,2、地址變換部件進行地址變換,即根據(jù)主存塊號M檢索cache,若找到則為命中,并將M轉(zhuǎn)換成cache塊號m存入cache寄存器。,3、以cache寄存器所存地址(塊號m,塊內(nèi)地址n)訪問cache。,4、若未命中,虛擬地址經(jīng)地址轉(zhuǎn)換部件(頁

44、表)轉(zhuǎn)換成物理地址訪問主存。,5、未命中時,若為cache的讀操作或?qū)懖僮鞣峙鋍ache的寫操作,則將內(nèi)存塊調(diào)入cache。,6、若cache已滿,根據(jù)替換算法替換某cache塊。,102,Cache的工作原理:,在cache存儲系統(tǒng)中,把主存儲器和cache都劃分成相同大小的塊。主存地址可以由塊號M和塊內(nèi)地址N兩部分組成。同樣,cache的地址也由塊號m和塊內(nèi)地址n組成。工作原理圖如圖所示:,地址轉(zhuǎn)換,103,地址映像和變換方式,在Cache當中,地址映像是指把主存地址空間映像到cache地址空間。也就是說,把存放在主存中的程序或數(shù)據(jù)按照某種規(guī)則裝入到cache中,并建立主存地址到cache

45、地址之間的對應(yīng)關(guān)系。地址變換是指當程序或數(shù)據(jù)已經(jīng)裝入到cache后,在實際運行過程當中,把主存地址如何變成cache地址。,104,四種映象方式,常用的地址映像和變換方式有:全相聯(lián)映象與變換直接映象與變換組相聯(lián)映像與變換段相聯(lián)映像與變換,105,全相聯(lián)映象與變換,特點:沖突概率低空間利用率高地址變換復(fù)雜,106,直接映象與變換,特點:硬件簡單沖突概率高出現(xiàn)大量空閑塊很少使用。,107,組相聯(lián)映像與變換,討論:S=ncb時,全相聯(lián)映像S=1時,直接映像;當主存空間和Cache空間確定時,q+s已確定s值大,組內(nèi)塊數(shù)多,沖突概率小,變換復(fù)雜s值小,組內(nèi)塊數(shù)少,沖突概率大,變換簡單,組的選擇常采用位

46、選擇算法若主存第i塊映象到第k組,則:kimod(G)(G為Cache的組數(shù))設(shè)G2g,則當表示為二進制數(shù)時,k實際上就是i的低g位:,108,段相聯(lián)映象,減少相聯(lián)目錄表的容量,降低成本,提高地址變換速度。組間全相聯(lián),組內(nèi)直接映象。教材中組相聯(lián)映像即該種:n路即該方法中每組的塊數(shù)組數(shù)一致.(同Pentium中的Cache),109,ARMCache的替換算法,輪轉(zhuǎn)法輪轉(zhuǎn)法維護一個邏輯計數(shù)器,利用該計數(shù)器依次選擇將要被替換出去的cache塊。隨機替換算法通過一個偽隨機數(shù)發(fā)生器產(chǎn)生一個偽隨機數(shù),以新塊替換編號為該偽隨機數(shù)的cache塊。,算法的優(yōu)點:算法簡單,易于實現(xiàn)。缺點:命中率低,cache平

47、均性能不穩(wěn)定。Cache的地址變換和替換全部利用硬件實現(xiàn).,110,2.4.3ARM存儲管理單元MMU,與其他中低檔單片機不同,ARM處理器中一般都包含一個存儲器管理部件,用于對存儲器的管理。為了適應(yīng)不同的嵌入式應(yīng)用,ARM存儲系統(tǒng)的體系結(jié)構(gòu)存在很多差別。簡單的可以使用像單片機系統(tǒng)中使用的平板式地址映射機制即可;而一些復(fù)雜的系統(tǒng)中則可能包含多種技術(shù)來支持功能強大的存儲系統(tǒng)。,111,2.4.3ARM存儲管理單元MMU,在ARM系統(tǒng)中,存儲管理單元MMU主要完成以下工作:虛擬存儲空間到物理存儲空間的映射。在ARM中采用了頁式虛擬存儲管理。它把虛擬地址空間分成一個個固定大小的塊,每一塊稱為一頁,把

48、物理內(nèi)存的地址空間也分成同樣大小的頁。MMU實現(xiàn)的就是從虛擬地址到物理地址的轉(zhuǎn)換。存儲器訪問權(quán)限的控制。設(shè)置虛擬存儲空間的緩沖特性。,112,2.4.3ARM存儲管理單元MMU,系統(tǒng)控制協(xié)處理CP15的功能用于處理、控制ARM的特殊性能片上存儲器管理單元(MMU)指令、數(shù)據(jù)緩存寫緩沖器,113,2.4.3ARM存儲管理單元MMU,為控制這些特性,CP15提供了16個額外寄存器,其中8個與MMU相關(guān),114,2.4.3ARM存儲管理單元MMU,CP15的寄存器C1的位0用于控制禁止/使能MMU當CP15的寄存器C10=0時,禁止MMU;當C10=1時,使能MMU。訪問CP15寄存器的指令有如下兩

49、條:MCRRegister-CoprocessorRegisterMRCCoprocessorRegister-Register,注意:這兩條指令只能在系統(tǒng)模式下執(zhí)行;在用戶模式下執(zhí)行該指令將引起異常。,115,2.4.3ARM存儲器存儲訪問過程,使能MMU時存儲訪問過程:芯片設(shè)置為MMU使能(設(shè)置CP15的相應(yīng)寄存器)根據(jù)ARM輸出的虛擬地址在TLB中搜索,在這個過程當中,如果該虛擬地址對應(yīng)的地址變換條目不在TLB中,CPU從位于內(nèi)存中的頁表中查詢,注意:對應(yīng)于該虛擬地址的地址變換條目,并把相應(yīng)的結(jié)果添加到TLB中。如果TLB已經(jīng)滿了,則需要根據(jù)一定的替換算法進行替換。,虛擬地址高位邏輯頁號

50、,物理地址高位物理頁號,虛擬地址,物理地址,Cache未命中,訪問TLB。,116,ARM存儲器存儲訪問過程,當?shù)玫搅诵枰牡刂纷儞Q條目后,將進行以下的操作:得到該虛擬地址對應(yīng)的物理地址。根據(jù)條目中C(cachable)控制位和B(Bufferable)控制位決定是否緩存該內(nèi)存訪問的結(jié)果。根據(jù)存儲權(quán)限控制位和域訪問控制位確定該內(nèi)存訪問是否被允許。如果該內(nèi)存訪問不被允許,CP15向ARM處理器報告存儲訪問中止。,備注:對于不允許緩存(uncached)的存儲訪問,使用步驟(1)中得到的物理地址訪問內(nèi)存。對于允許緩存(cached)的存儲訪問,則使用步驟(1)中得到的物理地址訪問內(nèi)存,并把該塊數(shù)據(jù)

51、讀取到cache。,117,MMU中的存儲訪問權(quán)限控制,在MMU中,寄存器C1的R、S控制位和頁表項中的訪問權(quán)限控制位AP聯(lián)合控制存儲訪問的權(quán)限。,域訪問控制,表2-3,118,MMU中域的訪問控制,MMU中的域指的是存儲器中一些段、大頁或者小頁的集合。ARM支持最多16個域,每個域的訪問控制特性都是由CP15中的寄存器C3中的兩位來控制的。,表2-4,119,ARM存儲器存儲訪問過程,允許緩存(cached)的MMU存儲訪問示意圖如下,120,ARM存儲器存儲訪問過程,禁止MMU時存儲訪問過程先要確定芯片是否支持cache和writebuffer如果芯片禁止cache和writebuffer

52、(設(shè)置cp15寄存器實現(xiàn)),則存儲訪問將不考慮C和B控制位,以arm處理器輸出的地址作為物理地址訪問存儲器,arm存儲器不經(jīng)cache和writebuffer與主存交換數(shù)據(jù)。,121,ARM存儲器存儲訪問過程,如果芯片禁止MMU時使能cache和writebuffer,arm存儲器經(jīng)cache和writebuffer,與主存交換數(shù)據(jù)。如果使用統(tǒng)一的TLB,置C=0,B=0;若使用分開的TLB,則數(shù)據(jù)訪問時,置C=0,B=0;指令讀取時,置C=1(指令cache只讀,不必寫緩沖)所有的物理地址和虛擬地址相等,即使用平板存儲模式,存儲訪問不進行權(quán)限控制,MMU也不會產(chǎn)生存儲訪問中止信號。,122,

53、MMU中的地址變換過程,ARM系統(tǒng)中虛擬存儲空間到物理存儲空間的映射都是以內(nèi)存塊為單位進行的。即虛擬存儲空間中一塊連續(xù)的存儲空間被映射到物理存儲空間中同樣大小的一塊連續(xù)存儲空間。在頁表和TLB中,每一個地址變換條目實際上記錄了一個虛擬存儲空間的存儲塊的基地址與物理存儲空間相應(yīng)的一個存儲塊的基地址的對應(yīng)關(guān)系。根據(jù)存儲塊大小,可以有多種地址變換.,123,MMU中的地址變換過程,ARM支持的存儲塊:段(section):由1MB的存儲器塊構(gòu)成大頁(largepage):由64KB的存儲器塊構(gòu)成小頁(smallpage):由4KB的存儲器塊構(gòu)成微頁(tinypage):由1KB的存儲器塊構(gòu)成,124,MMU中的地址變換過程,在MMU中實現(xiàn)虛擬地址到物理地址的映射是通過兩級頁表來實現(xiàn)的:一級頁表中包含有以段為單位的地址變換條目以及指向二級頁表的指針。一級頁表實現(xiàn)的地址映射粒度較大。以段為單位的地址變換過程只需要一級頁表。二級頁表中包含有以大頁、小頁和微頁為單位的地址變換條目。以頁為單位的地址變換過程需要二級頁表。,一級頁表含有一級描述符,包括段描述符以及指向二級頁表的指針:粗頁表描述符和細頁表描述符。,二級頁表含有二級描述符,包括大頁、小頁和微頁描述符。,125,一級頁表的地址變換過

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論