




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第二章 ARM體系結(jié)構(gòu)n何為體系結(jié)構(gòu):n計(jì)算機(jī)體系結(jié)構(gòu)是程序員所看到的計(jì)算機(jī)的屬性,即概念性結(jié)構(gòu)與功能特性 。n馮諾依曼體系結(jié)構(gòu)和哈佛體系結(jié)構(gòu)nRISC和CISCn流水線n嵌入式微處理器體系結(jié)構(gòu)n存儲(chǔ)器2.1 微處理器的基礎(chǔ)知識(shí)計(jì)算機(jī)體系結(jié)構(gòu)圖1.1計(jì)算機(jī)系統(tǒng)的基本結(jié)構(gòu)軟件系統(tǒng)硬件系統(tǒng)控 制 器運(yùn) 算 器存 儲(chǔ) 器輸入設(shè)備CPU微型計(jì)算機(jī)系統(tǒng)輸入接口電路輸出接口電路輸出設(shè)備馮諾依曼體系結(jié)構(gòu)指令寄存器控制器數(shù)據(jù)通道輸入輸出中央處理器存儲(chǔ)器程序指令0指令1指令2指令3指令4數(shù)據(jù)數(shù)據(jù)0數(shù)據(jù)1數(shù)據(jù)2哈佛體系結(jié)構(gòu)指令寄存器控制器數(shù)據(jù)通道輸入輸出CPU程序存儲(chǔ)器指令0指令1指令2數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)0數(shù)據(jù)1數(shù)據(jù)
2、2地址指令地址數(shù)據(jù)CISC和RISCCISCCISC:復(fù)雜指令集(:復(fù)雜指令集(Complex Instruction Set ComputerComplex Instruction Set Computer)具有大量的指令和尋址方式,指令長(zhǎng)度可變具有大量的指令和尋址方式,指令長(zhǎng)度可變8/28/2原則:原則:80%80%的程序只使用的程序只使用20%20%的指令的指令大多數(shù)程序只使用少量的指令就能夠運(yùn)行。大多數(shù)程序只使用少量的指令就能夠運(yùn)行。RISCRISC:精簡(jiǎn)指令集(:精簡(jiǎn)指令集(Reduced Instruction Set Computer)Reduced Instruction Se
3、t Computer)只包含最有用的指令,指令長(zhǎng)度固定只包含最有用的指令,指令長(zhǎng)度固定確保數(shù)據(jù)通道快速執(zhí)行每一條指令確保數(shù)據(jù)通道快速執(zhí)行每一條指令使使CPUCPU硬件結(jié)構(gòu)設(shè)計(jì)變得更為簡(jiǎn)單硬件結(jié)構(gòu)設(shè)計(jì)變得更為簡(jiǎn)單CISC與RISC的數(shù)據(jù)通道IFIDREGALUMEM開(kāi)始退出IFIDALUMEMREG微操作通道開(kāi)始退出單通數(shù)據(jù)通道RISC:Load/Store結(jié)構(gòu)CISC:尋址方式復(fù)雜CISC的背景和特點(diǎn) n背景背景: : 存儲(chǔ)資源緊缺存儲(chǔ)資源緊缺, , 強(qiáng)調(diào)編譯優(yōu)化強(qiáng)調(diào)編譯優(yōu)化n增強(qiáng)指令功能,設(shè)置一些功能復(fù)雜的指令,把一些增強(qiáng)指令功能,設(shè)置一些功能復(fù)雜的指令,把一些原來(lái)由軟件實(shí)現(xiàn)的、常用的功能改
4、用硬件的(微程原來(lái)由軟件實(shí)現(xiàn)的、常用的功能改用硬件的(微程序)指令系統(tǒng)來(lái)實(shí)現(xiàn)序)指令系統(tǒng)來(lái)實(shí)現(xiàn)n為節(jié)省存儲(chǔ)空間,強(qiáng)調(diào)高代碼密度,指令格式不固為節(jié)省存儲(chǔ)空間,強(qiáng)調(diào)高代碼密度,指令格式不固定,指令可長(zhǎng)可短,操作數(shù)可多可少定,指令可長(zhǎng)可短,操作數(shù)可多可少n尋址方式復(fù)雜多樣,操作數(shù)可來(lái)自寄存器,也可來(lái)尋址方式復(fù)雜多樣,操作數(shù)可來(lái)自寄存器,也可來(lái)自存儲(chǔ)器自存儲(chǔ)器n采用微程序控制,執(zhí)行每條指令均需完成一個(gè)微指采用微程序控制,執(zhí)行每條指令均需完成一個(gè)微指令序列令序列nCPI CPI ,指令越復(fù)雜,指令越復(fù)雜,CPICPI越大。越大。CISC的主要缺點(diǎn)n指令使用頻度不均衡。指令使用頻度不均衡。n高頻度使用的指
5、令占據(jù)了絕大部分的執(zhí)行時(shí)間,擴(kuò)充的高頻度使用的指令占據(jù)了絕大部分的執(zhí)行時(shí)間,擴(kuò)充的復(fù)雜指令往往是低頻度指令。復(fù)雜指令往往是低頻度指令。n大量復(fù)雜指令的控制邏輯不規(guī)整,不適于大量復(fù)雜指令的控制邏輯不規(guī)整,不適于VLSIVLSI工藝工藝nVLSIVLSI的出現(xiàn),使單芯片處理機(jī)希望采用規(guī)整的硬聯(lián)邏輯的出現(xiàn),使單芯片處理機(jī)希望采用規(guī)整的硬聯(lián)邏輯實(shí)現(xiàn),而不希望用微程序,因?yàn)槲⒊绦虻氖褂梅炊萍s實(shí)現(xiàn),而不希望用微程序,因?yàn)槲⒊绦虻氖褂梅炊萍s了速度提高。了速度提高。( (微碼的存控速度比微碼的存控速度比CPUCPU慢慢5-105-10倍倍) )。n軟硬功能分配軟硬功能分配n復(fù)雜指令增加硬件的復(fù)雜度,使指令
6、執(zhí)行周期大大加長(zhǎng)復(fù)雜指令增加硬件的復(fù)雜度,使指令執(zhí)行周期大大加長(zhǎng),直接訪存次數(shù)增多,數(shù)據(jù)重復(fù)利用率低。,直接訪存次數(shù)增多,數(shù)據(jù)重復(fù)利用率低。n不利于先進(jìn)指令級(jí)并行技術(shù)的采用不利于先進(jìn)指令級(jí)并行技術(shù)的采用n流水線技術(shù)流水線技術(shù)RISC基本設(shè)計(jì)思想n精簡(jiǎn)指令集:保留最基本的精簡(jiǎn)指令集:保留最基本的, ,去掉復(fù)雜、使用頻度不高的指令去掉復(fù)雜、使用頻度不高的指令(選取運(yùn)算指令、加載、存儲(chǔ)指令和轉(zhuǎn)移指令作主指令集)(選取運(yùn)算指令、加載、存儲(chǔ)指令和轉(zhuǎn)移指令作主指令集),以減小,以減小CPI: CPUtime=Instr_Count CPI: CPUtime=Instr_Count * * CPI CPI
7、* * Clock_cycle Clock_cycle ICIC程序中指令數(shù),程序中指令數(shù),CPICPI每條指令執(zhí)行所有周期數(shù)每條指令執(zhí)行所有周期數(shù)n復(fù)雜指令可通過(guò)對(duì)簡(jiǎn)單基本指令組合而成復(fù)雜指令可通過(guò)對(duì)簡(jiǎn)單基本指令組合而成n每條指令的長(zhǎng)度相同,大部分指令可在一個(gè)機(jī)器周期完成每條指令的長(zhǎng)度相同,大部分指令可在一個(gè)機(jī)器周期完成n采用多級(jí)指令流水線結(jié)構(gòu),處理器在同一時(shí)間可執(zhí)行多條指采用多級(jí)指令流水線結(jié)構(gòu),處理器在同一時(shí)間可執(zhí)行多條指令令n采用采用LoadLoad(加載)(加載)/Store/Store(存儲(chǔ))結(jié)構(gòu),統(tǒng)一存儲(chǔ)器訪問(wèn)形(存儲(chǔ))結(jié)構(gòu),統(tǒng)一存儲(chǔ)器訪問(wèn)形式,只允許式,只允許Load/Store
8、Load/Store指令執(zhí)行存儲(chǔ)器操作,其余指令均對(duì)指令執(zhí)行存儲(chǔ)器操作,其余指令均對(duì)寄存器操作寄存器操作n大大增加通用寄存器的數(shù)量,大大增加通用寄存器的數(shù)量,ALUALU只與寄存器直接連接只與寄存器直接連接CISC與RISC的對(duì)比類別類別CISCCISCRISCRISC指令系統(tǒng)指令系統(tǒng)指令數(shù)量很多指令數(shù)量很多較少,通常少于較少,通常少于100100執(zhí)行時(shí)間執(zhí)行時(shí)間有些指令執(zhí)行時(shí)間很長(zhǎng),如有些指令執(zhí)行時(shí)間很長(zhǎng),如整塊的存儲(chǔ)器內(nèi)容拷貝;或整塊的存儲(chǔ)器內(nèi)容拷貝;或?qū)⒍鄠€(gè)寄存器的內(nèi)容拷貝到將多個(gè)寄存器的內(nèi)容拷貝到存貯器存貯器沒(méi)有較長(zhǎng)執(zhí)行時(shí)間的指令沒(méi)有較長(zhǎng)執(zhí)行時(shí)間的指令編碼長(zhǎng)度編碼長(zhǎng)度編碼長(zhǎng)度可變,編碼
9、長(zhǎng)度可變,1-151-15字節(jié)字節(jié)編碼長(zhǎng)度固定,通常為編碼長(zhǎng)度固定,通常為4 4個(gè)字節(jié)個(gè)字節(jié)尋址方式尋址方式尋址方式多樣尋址方式多樣簡(jiǎn)單尋址簡(jiǎn)單尋址操作操作可以對(duì)存儲(chǔ)器和寄存器進(jìn)行可以對(duì)存儲(chǔ)器和寄存器進(jìn)行算術(shù)和邏輯操作算術(shù)和邏輯操作只能對(duì)寄存器進(jìn)行算術(shù)和邏輯只能對(duì)寄存器進(jìn)行算術(shù)和邏輯操作,操作,Load/StoreLoad/Store體系結(jié)構(gòu)體系結(jié)構(gòu)編譯編譯難以用優(yōu)化編譯器生成高效難以用優(yōu)化編譯器生成高效的目標(biāo)代碼程序的目標(biāo)代碼程序 采用優(yōu)化編譯技術(shù),生成高效采用優(yōu)化編譯技術(shù),生成高效的目標(biāo)代碼程序的目標(biāo)代碼程序 流水線技術(shù)流水線技術(shù)流水線流水線(Pipeline)(Pipeline)技術(shù):幾
10、個(gè)指令可以并行執(zhí)行技術(shù):幾個(gè)指令可以并行執(zhí)行 提高了提高了CPUCPU的運(yùn)行效率的運(yùn)行效率 內(nèi)部信息流要求通暢流動(dòng)內(nèi)部信息流要求通暢流動(dòng)譯碼取指執(zhí)行add譯碼取指執(zhí)行sub譯碼取指執(zhí)行cmp時(shí)間AddSubCmp指令流水線以ARM為例n為增加處理器指令流的速度,ARM7 系列使用3級(jí)流水線.n允許多個(gè)操作同時(shí)處理,比逐條指令執(zhí)行要快。n PC指向正被取指的指令,而非正在執(zhí)行的指令FetchDecodeExecute從存儲(chǔ)器中讀取指令解碼指令寄存器讀(從寄存器Bank)移位及ALU操作寄存器寫(到寄存器Bank )PCPCPC - 4PC-2PC - 8PC - 4ARMThumb 最佳流水線n
11、該例中用6個(gè)時(shí)鐘周期執(zhí)行了6條指令n所有的操作都在寄存器中(單周期執(zhí)行)n指令周期數(shù) (CPI) = 1 操作操作周期周期 1 2 3 45 6 ADD SUB MOV AND ORR EOR CMP RSBFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteDecodeExecuteFetchDecodeFetchFetch高速緩存(CACHE)1 1、為什么采用高速緩存、為什么采用高速緩存 微處理器的時(shí)鐘頻率比內(nèi)存速度提高快得多,高速緩存可以微處理器的時(shí)鐘頻率比內(nèi)
12、存速度提高快得多,高速緩存可以提高內(nèi)存的平均性能。提高內(nèi)存的平均性能。2 2、高速緩存的工作原理、高速緩存的工作原理 高速緩存是一種小型、快速的存儲(chǔ)器,它保存部分主存內(nèi)高速緩存是一種小型、快速的存儲(chǔ)器,它保存部分主存內(nèi)容的拷貝。容的拷貝。 CPU高速緩存控制器CACHE主存數(shù)據(jù)數(shù)據(jù)地址總線和總線橋CPU低速設(shè)備橋數(shù)據(jù)高速總線存儲(chǔ)器高速設(shè)備鍵盤低速總線ARM公司提出的AMBA總線標(biāo)準(zhǔn)嵌入式處理器體系結(jié)構(gòu)n按體系結(jié)構(gòu)的不同可分為五大類nARMnMIPSnPOWER PCnX86nSH系列 nARM 公司的ARM RISC處理器nARM 7 Thumb 家族nARM 9 Thumb 家族nARM 1
13、0 Thumb 家族nARM 11 Thumb 家族Intel StrongARMnStrongARM 110nStrongARM 1100nStrongARM 1110nStrongARM 1111INTEL的Xscale架構(gòu)處理器 基于ARM V5TE體系結(jié)構(gòu) 兼容ARM V5TE ISA指令集(不支持浮點(diǎn)指令集) 在處理器內(nèi)核周圍提供了 指令和數(shù)據(jù)存儲(chǔ)器管理單元 指令、數(shù)據(jù)和微小數(shù)據(jù)緩存 寫緩沖、掛起緩沖和分支目標(biāo)緩沖器 電源管理 性能監(jiān)控 調(diào)試 JTAG單元以及協(xié)處理器接口 MAC協(xié)處理器 內(nèi)核存儲(chǔ)總線MIPSn從1986年推出R2000處理器以來(lái),MIPS陸續(xù)推出R3000、R400
14、0、R8000等。n之后,MIPS公司的戰(zhàn)略發(fā)生變化,把重點(diǎn)放在嵌入式系統(tǒng)。n1999年,MIPS公司發(fā)布了MIPS32和MIPS64體系結(jié)構(gòu)標(biāo)準(zhǔn),集成了原來(lái)所有的MIPS指令集,并且增加了許多更強(qiáng)大的功能。n此后MIPS公司又陸續(xù)開(kāi)發(fā)了高性能、低功耗的32位和64位處理器內(nèi)核。 MIPSn在MIPS的32位內(nèi)核中n4K系列對(duì)應(yīng)于SOC應(yīng)用設(shè)計(jì);nM4K系列內(nèi)核是為在下一代消費(fèi)電子、網(wǎng)絡(luò)、寬帶應(yīng)用中越來(lái)越受歡迎的多CPU SOC所設(shè)計(jì);n4KE系列具有目前32位通用嵌入式處理器中最高的DMIPS/MHz性能指標(biāo);n4KS系列由于采用了特殊的SmartMIPS體系結(jié)構(gòu),特別適用于需要安全數(shù)據(jù)傳輸
15、的領(lǐng)域,比如網(wǎng)絡(luò)、智能卡等;n5K和20Kc系列屬于MIPS的64位內(nèi)核n5K能提供1.4DMIPS/MHz的性能以及最低350MHz的運(yùn)行速率。n20Kc是當(dāng)今最快的可授權(quán)嵌入式處理器內(nèi)核。一般運(yùn)行在600MHz,具有7段流水線的20Kc內(nèi)核,能提供1.2GFLOPS的峰值浮點(diǎn)運(yùn)算能力。MIPSn在嵌入式處理器市場(chǎng)中,基于MIPS內(nèi)核的處理器占據(jù)了相當(dāng)大的數(shù)量n2002年,一共付運(yùn)了8700萬(wàn)片采用MIPS內(nèi)核的嵌入式處理器,份額僅次于ARM位居全球第二。n在目前快速增長(zhǎng)的比如Cable Modem、DSL Modem、DVD錄像機(jī)等領(lǐng)域內(nèi),MIPS的市場(chǎng)份額位居第一。nMIPS的合作伙伴包
16、括了AMD,IDT,NEC,TI,SONY等眾多廠商PowerPC體系結(jié)構(gòu) nMotorola半導(dǎo)體(現(xiàn)Freescale半導(dǎo)體)聯(lián)合IBM以及蘋果電腦 nIBMnPowerPC750 nPowerPCG3 nMotorolanMPC nMCX86體系結(jié)構(gòu) nIntel X86體系結(jié)構(gòu)nAMD最新的X86體系結(jié)構(gòu)嵌入式處理器產(chǎn)品為Geode 系列處理器 nCISC指令集SH體系結(jié)構(gòu)nSH(SuperH)系列是由前日立半導(dǎo)體公司(現(xiàn)Renesas公司)推出的嵌入式處理器 nSH系列的CPU指令格式是固定的,只有一個(gè)字長(zhǎng),絕大多數(shù)指令是單周期完成的,即使是復(fù)雜的乘加指令也僅需2個(gè)時(shí)鐘周期 n為了克
17、服內(nèi)存訪問(wèn)的瓶頸,SH的CPU簡(jiǎn)化尋址方式,采用Load/Store(裝載/存儲(chǔ))結(jié)構(gòu),并且在片內(nèi)設(shè)置高速緩存,以減少訪問(wèn)內(nèi)存的時(shí)間 存儲(chǔ)器系統(tǒng)寄存器高速緩存SRAM主存儲(chǔ)器DRAM本地存儲(chǔ)器 Flash、ROM、磁盤網(wǎng)絡(luò)存儲(chǔ)器 Flash、ROM、磁盤時(shí)鐘周期01105010020000000分層結(jié)構(gòu)存儲(chǔ)器種類RAMRAM:隨機(jī)存取存儲(chǔ)器,:隨機(jī)存取存儲(chǔ)器, SRAMSRAM:靜態(tài)隨機(jī)存儲(chǔ)器,:靜態(tài)隨機(jī)存儲(chǔ)器, DRAMDRAM:動(dòng)態(tài)隨機(jī)存儲(chǔ)器動(dòng)態(tài)隨機(jī)存儲(chǔ)器 1 1)SRAMSRAM比比DRAMDRAM快快 2 2)SRAMSRAM比比DRAMDRAM耗電多耗電多 3 3)DRAMDRAM存
18、儲(chǔ)密度比存儲(chǔ)密度比SRAMSRAM高得多高得多 4 4)DRMDRM需要周期性刷新需要周期性刷新ROMROM:只讀存儲(chǔ)器:只讀存儲(chǔ)器EPROMEPROMEEPROMEEPROMFLASHFLASH:閃存:閃存閃速存儲(chǔ)器(FLASH) n相對(duì)傳統(tǒng)的EPROM芯片,這種芯片可以用電氣的方法快速地擦寫 n由于快擦寫存儲(chǔ)器不需要存儲(chǔ)電容器,故其集成度更高,制造成本低于DRAM n它使用方便,既具有SRAM讀寫的靈活性和較快的訪問(wèn)速度,又具有ROM在斷電后可不丟失信息的特點(diǎn),所以快擦寫存儲(chǔ)器技術(shù)發(fā)展十分迅速 NOR技術(shù)nNOR技術(shù)閃速存儲(chǔ)器是最早出現(xiàn)的Flash Memory,目前仍是多數(shù)供應(yīng)商支持的技
19、術(shù)架構(gòu),它源于傳統(tǒng)的EPROM器件。n與其它Flash Memory技術(shù)相比,具有可靠性高、隨機(jī)讀取速度快的優(yōu)勢(shì)。n在擦除和編程操作較少而直接執(zhí)行代碼的場(chǎng)合,尤其是代碼(指令)存儲(chǔ)的應(yīng)用中廣泛使用。n由于NOR技術(shù)Flash Memory的擦除和編程速度較慢,而塊尺寸又較大,因此擦除和編程操作所花費(fèi)的時(shí)間很長(zhǎng),在純數(shù)據(jù)存儲(chǔ)和文件存儲(chǔ)的應(yīng)用中,NOR技術(shù)顯得力不從心。NAND技術(shù)nNAND技術(shù) Flash Memory具有以下特點(diǎn):n以頁(yè)為單位進(jìn)行讀和編程操作,1頁(yè)為256或512字節(jié);以塊為單位進(jìn)行擦除操作,1塊為4K、8K或16K字節(jié)。具有快編程和快擦除的功能,其塊擦除時(shí)間是2ms;而NOR
20、技術(shù)的塊擦除時(shí)間達(dá)到幾百ms。n數(shù)據(jù)、地址采用同一總線,實(shí)現(xiàn)串行讀取。隨機(jī)讀取速度慢且不能按字節(jié)隨機(jī)編程。n芯片尺寸小,引腳少,是位成本(bit cost)最低的固態(tài)存儲(chǔ)器,突破了每兆字節(jié)1元的價(jià)格限制。n芯片包含有失效塊,其數(shù)目最大可達(dá)到335塊(取決于存儲(chǔ)器密度)。失效塊不會(huì)影響有效塊的性能,但設(shè)計(jì)者需要將失效塊在地址映射表中屏蔽起來(lái)。n基于NAND的存儲(chǔ)器可以取代硬盤或其它塊設(shè)備。2.2 ARM920T體系結(jié)構(gòu)nARM9系列微處理器是低功耗的32位RISC結(jié)構(gòu),最適合要求低成本、低功耗的消費(fèi)類應(yīng)用產(chǎn)品,是目前應(yīng)用最廣泛、高性價(jià)比的嵌入式處理器。國(guó)際許多著名的IT芯片制造公司,基于ARM9
21、處理器核生產(chǎn)了多種微控制器芯片,如三星公司的S3C2410、Atmel公司的AT91RM9200、Intel公司的PXA255、Motorola公司的MC9328、Cirrus Logic公司的EP93XX系列、等等。 ARM9結(jié)構(gòu)特點(diǎn)nARM920T微處理器的指令流水采用了典型的RISC五級(jí)流水線結(jié)構(gòu),將指令執(zhí)行過(guò)程分為取指、譯碼、執(zhí)行、訪存和寫回5個(gè)步驟。五級(jí)流水線結(jié)構(gòu)采用分離指令cache和數(shù)據(jù)cache,將每一個(gè)指令處理分配到5個(gè)時(shí)鐘周期內(nèi),在每一個(gè)時(shí)鐘周期內(nèi)同時(shí)可能有5個(gè)指令在執(zhí)行,消除了指令執(zhí)行的性能瓶頸,加快了指令執(zhí)行速度。 五級(jí)流水線操作執(zhí)行內(nèi)存訪問(wèn)寄存器寫指令預(yù)取譯碼執(zhí)行內(nèi)存
22、訪問(wèn)寄存器寫指令預(yù)取譯碼執(zhí)行內(nèi)存訪問(wèn)寄存器寫指令預(yù)取譯碼執(zhí)行指令預(yù)取譯碼內(nèi)存訪問(wèn)指令預(yù)取譯碼執(zhí)行指令預(yù)取譯碼譯碼:包括指令譯碼,寄存器譯碼,寄存器讀取。執(zhí)行:包括移位、ALU運(yùn)算。TTTTT(續(xù))nARM920T核內(nèi)部具有指令緩存和數(shù)據(jù)緩存,允許處理器同時(shí)進(jìn)行取指和讀寫數(shù)據(jù)操作。數(shù)據(jù)可以是:8位(字節(jié))、16位(半字)、32位(字)。字必須是4字節(jié)邊界對(duì)準(zhǔn),半字必須是2字節(jié)邊界對(duì) 準(zhǔn)。ARM920T 框圖ARM920T 框圖(續(xù))nCacheCache:n通常人們所說(shuō)的通常人們所說(shuō)的CacheCache就是指緩存就是指緩存SRAMSRAM。 SRAMSRAM叫靜叫靜態(tài)內(nèi)存,態(tài)內(nèi)存,“靜態(tài)靜態(tài)”
23、指的是當(dāng)我們將一筆數(shù)據(jù)寫入指的是當(dāng)我們將一筆數(shù)據(jù)寫入SRAMSRAM后,除非重新寫入新數(shù)據(jù)或關(guān)閉電源,否則寫入的數(shù)后,除非重新寫入新數(shù)據(jù)或關(guān)閉電源,否則寫入的數(shù)據(jù)保持不變。據(jù)保持不變。n由于由于CPUCPU的速度比內(nèi)存和硬盤的速度要快得多,所以的速度比內(nèi)存和硬盤的速度要快得多,所以在存取數(shù)據(jù)時(shí)會(huì)使在存取數(shù)據(jù)時(shí)會(huì)使CPUCPU等待,影響計(jì)算機(jī)的速度。等待,影響計(jì)算機(jī)的速度。SRAMSRAM的存取速度比其它內(nèi)存和硬盤都要快,所以它被的存取速度比其它內(nèi)存和硬盤都要快,所以它被用作電腦的高速緩存用作電腦的高速緩存(Cache)(Cache)。nCPUCPU運(yùn)行時(shí),先把指令或數(shù)據(jù)從內(nèi)存中讀到運(yùn)行時(shí),先把
24、指令或數(shù)據(jù)從內(nèi)存中讀到cachecache中,中,需要讀出時(shí),需要讀出時(shí),CPUCPU先到先到cachecache中讀取,如果沒(méi)有再?gòu)膬?nèi)中讀取,如果沒(méi)有再?gòu)膬?nèi)存讀取。存讀取。2.2.1 ARM微處理器的工作狀態(tài)微處理器的工作狀態(tài) 從編程的角度看從編程的角度看,ARM,ARM微處理器的微處理器的工作狀態(tài)工作狀態(tài)一般有兩種一般有兩種, ,并可并可在兩種狀態(tài)之間切換在兩種狀態(tài)之間切換: :nARM狀態(tài)是32位指令,字對(duì)齊,PC bit1、bit0始終為0。nThumb狀態(tài)時(shí),執(zhí)行16位指令,半字對(duì)齊的Thumb指令,PC使用bit1選擇半字。Thumb指令是ARM指令的子集。nThumb狀態(tài)時(shí),指令
25、地址(PC)和操作數(shù)都還是32位的。n兩種狀態(tài)切換,不影響寄存器的內(nèi)容。n我們著重介紹ARM狀態(tài),Thumb狀態(tài)知道即可。ARMARM處理器在兩種工作狀態(tài)之間可以處理器在兩種工作狀態(tài)之間可以切換切換:n進(jìn)入進(jìn)入ThumbThumb狀態(tài):狀態(tài):n執(zhí)行執(zhí)行BXBX指令,并設(shè)置操作數(shù)寄存器的狀態(tài)(位指令,并設(shè)置操作數(shù)寄存器的狀態(tài)(位00)為)為1 1。n在在ThumbThumb狀態(tài)進(jìn)入異常狀態(tài)進(jìn)入異常(IRQ, FIQ, UNDEF, ABORT,SWI (IRQ, FIQ, UNDEF, ABORT,SWI etc.)etc.),當(dāng)異常處理返回時(shí)自動(dòng)轉(zhuǎn)換到,當(dāng)異常處理返回時(shí)自動(dòng)轉(zhuǎn)換到ThumbTh
26、umb狀態(tài)狀態(tài)n進(jìn)入進(jìn)入ARMARM狀態(tài):狀態(tài):n執(zhí)行執(zhí)行BXBX指令,并設(shè)置操作數(shù)寄存器的狀態(tài)(位指令,并設(shè)置操作數(shù)寄存器的狀態(tài)(位00)為)為0 0。n進(jìn)入異常時(shí),將進(jìn)入異常時(shí),將PCPC放入異常模式鏈接寄存器中,從異常向放入異常模式鏈接寄存器中,從異常向量地址開(kāi)始執(zhí)行也可進(jìn)入量地址開(kāi)始執(zhí)行也可進(jìn)入ARMARM狀態(tài)狀態(tài)402.2.3ARM2.2.3ARM體系結(jié)構(gòu)的存儲(chǔ)器格式體系結(jié)構(gòu)的存儲(chǔ)器格式n存儲(chǔ)器格式是指字、半字、字節(jié)在存儲(chǔ)器中存放的格存儲(chǔ)器格式是指字、半字、字節(jié)在存儲(chǔ)器中存放的格式,也反映了它們之間的關(guān)系。式,也反映了它們之間的關(guān)系。nARM920TARM920T中支持字節(jié)(中支持字
27、節(jié)(8 8位)、半字(位)、半字(1616位)和字(位)和字(3232位)位)3 3種數(shù)據(jù)類型,其中字需要種數(shù)據(jù)類型,其中字需要4 4字節(jié)對(duì)齊,半字需字節(jié)對(duì)齊,半字需要要2 2字節(jié)對(duì)齊。字節(jié)對(duì)齊。nARM920TARM920T體系結(jié)構(gòu)支持兩種方法存儲(chǔ)字?jǐn)?shù)據(jù),即大端體系結(jié)構(gòu)支持兩種方法存儲(chǔ)字?jǐn)?shù)據(jù),即大端格式和小端格式。格式和小端格式。41 存儲(chǔ)單元概念說(shuō)明:存儲(chǔ)單元概念說(shuō)明:n字(字(WordWord):字的長(zhǎng)度為):字的長(zhǎng)度為3232位,而在位,而在1616位處理器體系結(jié)構(gòu)中位處理器體系結(jié)構(gòu)中,字的長(zhǎng)度為,字的長(zhǎng)度為1616位。位。n半字(半字(Half-WordHalf-Word):半字的長(zhǎng)
28、度為):半字的長(zhǎng)度為1616位,與位,與1616位處理器體位處理器體系結(jié)構(gòu)中字的長(zhǎng)度一致。系結(jié)構(gòu)中字的長(zhǎng)度一致。n字節(jié)(字節(jié)(ByteByte):在):在ARMARM體系結(jié)構(gòu)和體系結(jié)構(gòu)和8 8位位/16/16位處理器體系結(jié)構(gòu)位處理器體系結(jié)構(gòu)中,字節(jié)的長(zhǎng)度均為中,字節(jié)的長(zhǎng)度均為8 8位。位。nARMARM體系結(jié)構(gòu)使用體系結(jié)構(gòu)使用2 23232個(gè)個(gè)8 8位字節(jié)的單一、線性地址空間,字節(jié)位字節(jié)的單一、線性地址空間,字節(jié)地址為地址為0 02 23232-1-1;也可以將地址空間看作為由;也可以將地址空間看作為由2 23030個(gè)個(gè)3232位的字位的字組成,字地址可被組成,字地址可被4 4整除,且按字對(duì)準(zhǔn)
29、。也可以看作成由整除,且按字對(duì)準(zhǔn)。也可以看作成由2 23131個(gè)個(gè)1616位半字組成。位半字組成。42n大端格式大端格式:被存放字?jǐn)?shù)據(jù)的高字節(jié)存儲(chǔ)在存儲(chǔ)系統(tǒng)的:被存放字?jǐn)?shù)據(jù)的高字節(jié)存儲(chǔ)在存儲(chǔ)系統(tǒng)的低地址中,而被存放的字?jǐn)?shù)據(jù)的低字節(jié)則存放在存儲(chǔ)低地址中,而被存放的字?jǐn)?shù)據(jù)的低字節(jié)則存放在存儲(chǔ)系統(tǒng)的高地址中。系統(tǒng)的高地址中。n小端格式小端格式:與大端存儲(chǔ)格式相反,在小端存儲(chǔ)格式中:與大端存儲(chǔ)格式相反,在小端存儲(chǔ)格式中,存儲(chǔ)系統(tǒng)的低地址中存放的是被放字?jǐn)?shù)據(jù)中的低字,存儲(chǔ)系統(tǒng)的低地址中存放的是被放字?jǐn)?shù)據(jù)中的低字節(jié)內(nèi)容,存儲(chǔ)系統(tǒng)的高地址存放的是被存字?jǐn)?shù)據(jù)中的節(jié)內(nèi)容,存儲(chǔ)系統(tǒng)的高地址存放的是被存字?jǐn)?shù)據(jù)中的高
30、字節(jié)內(nèi)容。高字節(jié)內(nèi)容。n 大端格式大端格式(big-endian):字?jǐn)?shù)據(jù)的高字節(jié)存儲(chǔ)在低地址中字?jǐn)?shù)據(jù)的高字節(jié)存儲(chǔ)在低地址中,而字?jǐn)?shù)據(jù)的低字節(jié)則存放在高地址中。,而字?jǐn)?shù)據(jù)的低字節(jié)則存放在高地址中。n 小端格式小端格式(low-endian):與大端存儲(chǔ)格式相反。低地址與大端存儲(chǔ)格式相反。低地址中存放的是字?jǐn)?shù)據(jù)的低字節(jié),高地址存放的是字?jǐn)?shù)據(jù)的高字中存放的是字?jǐn)?shù)據(jù)的低字節(jié),高地址存放的是字?jǐn)?shù)據(jù)的高字節(jié)。節(jié)。缺省設(shè)置為小端格式。缺省設(shè)置為小端格式。舉例:舉例:大端的數(shù)據(jù)存放格式大端的數(shù)據(jù)存放格式低地址低地址高地址高地址地址地址A地址地址A+1地址地址A+2地址地址A+3最高有效字節(jié)的地址最高有效字節(jié)
31、的地址就是該就是該word的地址的地址最高有效字節(jié)最高有效字節(jié)位于最低地址位于最低地址word a=0 x f6 73 4b cdf6734bcd舉例:舉例:小端的數(shù)據(jù)格式小端的數(shù)據(jù)格式 低地址低地址高地址高地址地址地址A地址地址A+1地址地址A+2地址地址A+3最低有效字節(jié)的地址最低有效字節(jié)的地址就是該就是該word的地址的地址最低有效字節(jié)最低有效字節(jié)位于最低地址位于最低地址word a=0 x f6 73 4b cdf6734bcdn7種運(yùn)行模式nUser:用戶模式,ARM處理器正常的程序執(zhí)行狀態(tài)。nFIQ:快速中斷模式,用于高速數(shù)據(jù)傳輸或通道處理。nIRQ:普通中斷模式,用于普通的中斷處
32、理。nSVC:管理,供操作系統(tǒng)使用的一種保護(hù)模式。nABT:數(shù)據(jù)或指令預(yù)取中止,當(dāng)數(shù)據(jù)或指令預(yù)取終止時(shí)進(jìn)入該模式,可用于虛擬存儲(chǔ)及存儲(chǔ)保護(hù)。nUND:未定義指令中止模式,當(dāng)未定義的指令執(zhí)行時(shí)進(jìn)入該模式,可用于支持硬件協(xié)處理器的軟件仿真。nSYS:系統(tǒng)模式,運(yùn)行特權(quán)級(jí)的操作系統(tǒng)任務(wù)。n注:工作模式基于兩個(gè)標(biāo)準(zhǔn)區(qū)分,資源訪問(wèn)權(quán)限、模式切換。2.2.3ARM9處理器模式n異常模式:n除系統(tǒng)模式與用戶模式外,其他5種模式,常用于處理中斷或異常,以及訪問(wèn)受保護(hù)的系統(tǒng)資源等。n特權(quán)模式:n除用戶模式外的模式稱為特權(quán)模式。n用于服務(wù)中斷或異常,或訪問(wèn)保護(hù)資源。n程序可訪問(wèn)所有系統(tǒng)資源,也可任意進(jìn)行模式切換。
33、工作模式理解工作模式理解n用戶模式:n應(yīng)用程序不能訪問(wèn)受操作系統(tǒng)保護(hù)的系統(tǒng)資源,例如例如:MSR、MRS、MCR、MRC指令在用戶模式不能完指令在用戶模式不能完全執(zhí)行???全執(zhí)行!?n不能直接進(jìn)行處理器模式的切換。n需切換模式時(shí),可產(chǎn)生異常,在異常處理過(guò)程中進(jìn)行處理器切換。這樣便于操作系統(tǒng)控制整個(gè)系統(tǒng)資源。如產(chǎn)生SWI切換到SVC模式,再切換到SYS模式。n系統(tǒng)模式n系統(tǒng)模式不是通過(guò)異常進(jìn)入,和用戶模式有一樣的寄存器。n系統(tǒng)模式屬于特權(quán)模式,可以訪問(wèn)所有系統(tǒng)資源,也可以直接進(jìn)行處理器模式切換。n主要供操作系統(tǒng)使用。n模式切換方式總結(jié):n軟件程序控制,之間修改CPSR模式位置。n硬件中斷或異常(除
34、reset外一般的程序異常)。n芯片復(fù)位(CPU工作在超級(jí)用戶模式,PC0)。nSWI指令。nARM920T有37個(gè)寄存器n31個(gè)32bit通用寄存器(包括程序計(jì)數(shù)器PC)n未分組寄存器R0R7:在所有的運(yùn)行模式下,指向同一個(gè)物理寄存器n分組寄存器R8R14:每次訪問(wèn)的物理寄存器與處理器當(dāng)前的運(yùn)行模式有關(guān),命名規(guī)則R13_,R14_,mode:usr,fiq,irq,svc,abt,undn程序計(jì)數(shù)器PCn6個(gè)狀態(tài)寄存器2.2.4 寄存器組織ARMARM的寄存器組織的寄存器組織CPSRSPSR-SVCCPSRSPSR-abtCPSRSPSR-undCPSRSPSR-irqCPSRSPSR-fi
35、qn理解n不是同時(shí)可見(jiàn),由處理器狀態(tài)和工作模式?jīng)Q定。nARM狀態(tài),16個(gè)通用寄存器和12個(gè)狀態(tài)寄存器同時(shí)可見(jiàn)。nR0R15是直接訪問(wèn)寄存器,除R15外都是通用目的寄存器,可以保存地址或數(shù)據(jù)。此外有第17個(gè)寄存器,用于保存狀態(tài)信息。nStack Pointer,堆棧指針。n堆棧寄存器器使用舉例:STMDB R13!, Rlist ;將Rlist指定的寄存器值壓入堆棧 ;并更新堆棧指針LDMIA R13!, Rlist ;將堆棧內(nèi)容彈出并賦值給Rlist ;并更新堆棧指針ADD R13, R13, #Imm ;將Imm加到SP上n各種模式有自己的私有堆棧指針。故需要切換到各種模式去初始化堆棧首地址
36、,另需在存儲(chǔ)空間劃分出一片區(qū)域用作程序堆棧。n堆棧分Full型和Empty型,遞增型和遞減型( p128 ds )。R13 堆棧指針寄存器內(nèi)部寄存器R14nR14:又稱Link寄存器,用于子程序連接。n執(zhí)行分支與連接指令(BL)時(shí),R15(PC)的值會(huì)拷貝一份存于該寄存器。調(diào)用時(shí)硬件自動(dòng)保存,返回時(shí)程序計(jì)數(shù)器PC從R14讀取。n當(dāng)異?;蛑袛喟l(fā)生時(shí),或者異?;蛑袛嘧映绦蛑袌?zhí)行分之與連接指令(BL)時(shí),用R14_svc、R14_irq、 R14_abt、R14_und、R14_fiq用于保存程序返回值(需進(jìn)行計(jì)算)。注意:PC值=/=當(dāng)前指令地址,為預(yù)取指令地址。(哈佛結(jié)構(gòu)的好處!PC計(jì)算簡(jiǎn)單。)
37、注意:各種模式下Link寄存器只有4B(32bit)存儲(chǔ)空間,即存儲(chǔ)一個(gè)地址值,分支嵌套或者中斷或異常嵌套、或中斷與異常中執(zhí)行分支指令時(shí)會(huì)導(dǎo)致死循環(huán)等錯(cuò)誤。解決辦法,最好是使用堆棧,至少是保存PC。n使用下面的指令實(shí)現(xiàn)子程序返回操作。nMov PC, LRnBX LRn堆棧使用n STMFD SP!,LR ;保存PC到棧中n LDMFD SP!,PC ;子程序返回n注意:壓棧與出棧分別對(duì)應(yīng)LR與PC。R14使用舉例nProgram Counter:程序計(jì)數(shù)器n用來(lái)保存指令的地址,正常執(zhí)行時(shí),其值自動(dòng)遞增,指向下一條指令地址;跳轉(zhuǎn)、異常發(fā)生時(shí),PC的值會(huì)被硬件修改,程序返回時(shí)通過(guò)程序修改(即軟件
38、修改)PC值。nARM920T為5級(jí)流水線操作,正常順序執(zhí)行指令時(shí),PC值指向當(dāng)前執(zhí)行指令的下兩條指令地址。即PC當(dāng)前指令地址2(Words)注意:PC,是ARM中的一個(gè)寄存器,其內(nèi)容為當(dāng)前預(yù)取指令的地址;另外在描述中也常用PC指代當(dāng)前正在執(zhí)行的指令的地址。內(nèi)部寄存器R152.2.5 程序狀態(tài)寄存器程序狀態(tài)寄存器 ARMARM體系結(jié)構(gòu)包含一個(gè)當(dāng)前程序狀態(tài)寄存器體系結(jié)構(gòu)包含一個(gè)當(dāng)前程序狀態(tài)寄存器(CPSR)(CPSR)和和5 5個(gè)個(gè)備份的程序狀態(tài)寄存器備份的程序狀態(tài)寄存器 (SPSRs)(SPSRs)。 當(dāng)前程序狀態(tài)寄存器當(dāng)前程序狀態(tài)寄存器 CPSRCPSR,可以在任何工作模式下被訪問(wèn);,可以在
39、任何工作模式下被訪問(wèn); 備份程序狀態(tài)寄存器備份程序狀態(tài)寄存器SPSRSPSR,只有在異常模式下,才能被訪問(wèn),只有在異常模式下,才能被訪問(wèn) 備份的程序狀態(tài)寄存器用來(lái)進(jìn)行異常處理,其功能包括:備份的程序狀態(tài)寄存器用來(lái)進(jìn)行異常處理,其功能包括:n保存保存ALUALU中的當(dāng)前操作信息。中的當(dāng)前操作信息。n控制允許和禁止中斷。控制允許和禁止中斷。n設(shè)置處理器的運(yùn)行模式。設(shè)置處理器的運(yùn)行模式。程序狀態(tài)寄存器的格式程序狀態(tài)寄存器的格式 條件碼標(biāo)志條件碼標(biāo)志(Condition Code Flags)N、Z、C、V均為條件碼標(biāo)志位。它們的內(nèi)容可被算術(shù)均為條件碼標(biāo)志位。它們的內(nèi)容可被算術(shù)或邏輯運(yùn)算的結(jié)果所改變,
40、并且可以決定某條指令是否被執(zhí)或邏輯運(yùn)算的結(jié)果所改變,并且可以決定某條指令是否被執(zhí)行。行。在在ARM狀態(tài)下,絕大多數(shù)的指令都是有條件執(zhí)行的。在狀態(tài)下,絕大多數(shù)的指令都是有條件執(zhí)行的。在Thumb狀態(tài)下僅有分支指令是有條件執(zhí)行的。狀態(tài)下僅有分支指令是有條件執(zhí)行的。 條件碼標(biāo)志位條件碼標(biāo)志位標(biāo)志位含 義N當(dāng)兩個(gè)補(bǔ)碼表示的帶符號(hào)數(shù)運(yùn)算時(shí),當(dāng)兩個(gè)補(bǔ)碼表示的帶符號(hào)數(shù)運(yùn)算時(shí),N=1 表示運(yùn)算的結(jié)果為負(fù)數(shù);表示運(yùn)算的結(jié)果為負(fù)數(shù);N=0 表示運(yùn)算的結(jié)果為正數(shù)或零表示運(yùn)算的結(jié)果為正數(shù)或零;ZZ=1 表示運(yùn)算的結(jié)果為零;表示運(yùn)算的結(jié)果為零;Z=0表示運(yùn)算的結(jié)果不為零;表示運(yùn)算的結(jié)果不為零;C有有3種情況會(huì)改變種情況
41、會(huì)改變C的值:的值:加法運(yùn)算(包括比較指令加法運(yùn)算(包括比較指令CMN):當(dāng)運(yùn)算結(jié)果產(chǎn)生了進(jìn)位時(shí)(無(wú)符號(hào)數(shù)上溢出):當(dāng)運(yùn)算結(jié)果產(chǎn)生了進(jìn)位時(shí)(無(wú)符號(hào)數(shù)上溢出),C=1,否則,否則C=0。減法運(yùn)算(包括比較指令減法運(yùn)算(包括比較指令CMP):當(dāng)運(yùn)算時(shí)產(chǎn)生了借位(無(wú)符號(hào)數(shù)下溢出),):當(dāng)運(yùn)算時(shí)產(chǎn)生了借位(無(wú)符號(hào)數(shù)下溢出),C=0,否則,否則C=1。對(duì)于包含移位操作的非加對(duì)于包含移位操作的非加/減運(yùn)算指令,減運(yùn)算指令,C為移出值的最后一位。為移出值的最后一位。V對(duì)于加對(duì)于加/減法運(yùn)算指令,當(dāng)操作數(shù)和運(yùn)算結(jié)果為二進(jìn)制的補(bǔ)碼表示減法運(yùn)算指令,當(dāng)操作數(shù)和運(yùn)算結(jié)果為二進(jìn)制的補(bǔ)碼表示的帶符號(hào)數(shù)時(shí),的帶符號(hào)數(shù)時(shí),
42、V=1表示符號(hào)位溢出。表示符號(hào)位溢出。Q在在ARM v5及以上版本的及以上版本的E系列處理器中,用系列處理器中,用Q標(biāo)志位指示增強(qiáng)的標(biāo)志位指示增強(qiáng)的DSP運(yùn)運(yùn)算指令是否發(fā)生了溢出。算指令是否發(fā)生了溢出。 控制位控制位 CPSR的低的低8位位(包括包括I、F、T和和M4:0)稱為控制位,稱為控制位,當(dāng)發(fā)生異常時(shí)這些位可以被改變。如果處理器運(yùn)行特權(quán)模式當(dāng)發(fā)生異常時(shí)這些位可以被改變。如果處理器運(yùn)行特權(quán)模式,這些位也可以由程序修改。,這些位也可以由程序修改。n中斷禁止位中斷禁止位I、FI1 禁止禁止IRQ中斷中斷F1 禁止禁止FIQ中斷中斷nT標(biāo)志位:該位反映處理器的運(yùn)行狀態(tài)。標(biāo)志位:該位反映處理器的
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 私人二手房售房合同范本
- 司機(jī)保密合同范本
- 年度框架采購(gòu)合同范本
- 低首付貸款合同范本
- 樂(lè)器租賃合同范本模板
- 原料肉購(gòu)銷合同范本
- 同行競(jìng)爭(zhēng)合同范本
- 單間鋪面出售合同范本
- 叉車機(jī)床購(gòu)銷合同范本
- 合同范例軟件叫
- 2021版大象版四年級(jí)科學(xué)下冊(cè)12奇妙的植物教學(xué)課件
- 精雕JDPaint快捷鍵大全
- 山東建筑電氣與智能化疑難問(wèn)題分析與解答
- 2022年鄭州衛(wèi)生健康職業(yè)學(xué)院?jiǎn)握杏⒄Z(yǔ)模擬試題(附答案解析)
- Q∕GDW 10354-2020 智能電能表功能規(guī)范
- 土壤學(xué)習(xí)題與答案
- 國(guó)家自然科學(xué)基金(NSFC)申請(qǐng)書(shū)樣本
- 觀摩臺(tái)標(biāo)準(zhǔn)化建設(shè)方案
- 數(shù)字化影像與PACS教學(xué)大綱
- 凈身出戶離婚協(xié)議書(shū)(完善版)
- 壓瘡醫(yī)學(xué)護(hù)理課件
評(píng)論
0/150
提交評(píng)論