第0章RISC處理器體系結(jié)構(gòu)概述_第1頁(yè)
第0章RISC處理器體系結(jié)構(gòu)概述_第2頁(yè)
第0章RISC處理器體系結(jié)構(gòu)概述_第3頁(yè)
第0章RISC處理器體系結(jié)構(gòu)概述_第4頁(yè)
第0章RISC處理器體系結(jié)構(gòu)概述_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

ARM體系結(jié)構(gòu)與編程2006.21AssembleLangugeofARM教師:琚小明辦公室:B219電話:62233110-834Email:xmju@scozy_xmju@bbs:/bbs答疑時(shí)間:周四下午14:30-16:00B219?PPT下載:26seidowndownload212AssembleLangugeofARM教材《ARM體系結(jié)構(gòu)與編程》,杜春雷編著,清華大學(xué)出版社參考資料《ARMSoC體系結(jié)構(gòu)》,[英]SteveFurber著,田澤等譯,北京航空航天大學(xué)出版社//

3AssembleLangugeofARM目的熟悉ARM體系結(jié)構(gòu)掌握使用匯編語(yǔ)言設(shè)計(jì)、編寫、調(diào)試和運(yùn)行程序的方法4AssembleLangugeofARM成績(jī)構(gòu)成:出勤和課堂作業(yè): 20%上機(jī)編程: 20%期末考試: 60%5AssembleLangugeofARM內(nèi)容安排RISC體系結(jié)構(gòu)介紹ARM處理器體系結(jié)構(gòu)ARM指令尋址方式ARM指令集ARM匯編語(yǔ)言語(yǔ)法結(jié)構(gòu)ARM集成開發(fā)環(huán)境ADSARM異常中斷處理6AssembleLangugeofARM1.計(jì)算機(jī)語(yǔ)言發(fā)展簡(jiǎn)史機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言FORTRANBASICCOBOLPASCALC/C++JAVA…...學(xué)習(xí)匯編語(yǔ)言的重要性!

7AssembleLangugeofARM機(jī)器語(yǔ)言:依賴于機(jī)器的低級(jí)語(yǔ)言,書寫格式為二進(jìn)制代碼。

優(yōu)點(diǎn):執(zhí)行速度快,效率高。

缺點(diǎn):表達(dá)的意義不直觀,編寫、閱讀、調(diào)試較困難。匯編語(yǔ)言:是一種符號(hào)語(yǔ)言,與機(jī)器語(yǔ)言一一對(duì)應(yīng);使用助記符表示相應(yīng)的操作,并遵循一定的語(yǔ)法規(guī)則。與機(jī)器語(yǔ)言有類似的優(yōu)、缺點(diǎn),但比機(jī)器語(yǔ)言更易于為人們所理解。高級(jí)語(yǔ)言:面向人的語(yǔ)言,有多種類型。

優(yōu)點(diǎn):便于閱讀,易學(xué)易用,不涉及硬件,具有通用性。

缺點(diǎn):目標(biāo)代碼冗長(zhǎng),占用內(nèi)存多,從而執(zhí)行時(shí)間長(zhǎng),效率不高,不能對(duì)某些硬件進(jìn)行操作。8AssembleLangugeofARM匯編語(yǔ)言的特點(diǎn):面向機(jī)器的低級(jí)語(yǔ)言,通常是為特定的計(jì)算機(jī)或計(jì)算機(jī)系列專門設(shè)計(jì)的。(ISA體系結(jié)構(gòu),面向特定的處理器)

保持了機(jī)器語(yǔ)言的優(yōu)點(diǎn),具有直接和簡(jiǎn)潔的特點(diǎn)??捎行У卦L問(wèn)、控制計(jì)算機(jī)的各種硬件設(shè)備,如磁盤、存儲(chǔ)器、CPU、I/O端口等。目標(biāo)代碼簡(jiǎn)短,占用內(nèi)存少,執(zhí)行速度快,是高效的程序設(shè)計(jì)語(yǔ)言。經(jīng)常與高級(jí)語(yǔ)言配合使用(混合編程),應(yīng)用十分廣泛。9AssembleLangugeofARM匯編語(yǔ)言的應(yīng)用:

70%以上的系統(tǒng)軟件是用匯編語(yǔ)言編寫的。某些快速處理、位處理、訪問(wèn)硬件設(shè)備等高效程序是用匯編語(yǔ)言編寫的。某些高級(jí)繪圖程序、視頻游戲程序、圖像解壓縮程序是用匯編語(yǔ)言編寫的。10AssembleLangugeofARM#include"stdafx.h"#include"stdio.h"intmain(intargc,char*argv[]){inta,b,c;a=1; b=2; c=a+b; printf(“c=%d\n",c); return0;}下面是兩個(gè)小例子,例1是用高級(jí)語(yǔ)言VC++編寫的,例2是用匯編語(yǔ)言編寫的。它們完成相同的功能,即把a(bǔ)、b的內(nèi)容相加賦給c,并在屏幕上顯示出來(lái)。例1編譯后的目標(biāo)文件達(dá)到3.59KB11AssembleLangugeofARMdatasegmentadb?bdb?cdb?stringdb'c=$'dataendscodesegmentmainprocfarassumecs:code,ds:data,es:datastart:pushdssubax,axpushaxmovax,datamovds,axmoves,ax

mova,1movb,2moval,aaddal,bmovc,alleadx,stringmovah,09int21haddc,30hmovdl,cmovah,2int21hmovdl,0ahint21hmovdl,0dhint21hretmainendpcodeendsendstart例2匯編后的目標(biāo)文件只有208字節(jié)12AssembleLangugeofARM2.RISC處理器體系結(jié)構(gòu)概述ISA體系結(jié)構(gòu)分類根據(jù)指令使用數(shù)據(jù)的方式,指令系統(tǒng)分為以下幾類堆棧型(Stack):操作數(shù)在棧頂,運(yùn)算操作不用指定操作數(shù)累加器型(Accumulator):一個(gè)操作數(shù)總在累加器中,結(jié)果也寫回累加器寄存器型(Register),每個(gè)操作數(shù)都由指令指定Register-Register型,又稱為L(zhǎng)oad-Store型,所有運(yùn)算操作的操作數(shù)都在寄存器中Register-Memory型Memory-Memory型上述三種指令系統(tǒng)類型也可以分別稱為0地址指令,單地址指令,以及多地址指令13AssembleLangugeofARM例子:不同指令系統(tǒng)完成C=A+B的指令序列,假設(shè)A、B、C在內(nèi)存中不同的單元stackaccumulatorRegister(memory-memory)Register(register-memory)Register(load-store)pushAloadAaddR1,A,BloadR1,AloadR1,ApushBaddBstoreR1,CaddR1,BloadR2,BaddstoreCstoreR1,CaddR3,R1,R2popCstoreR3,C14AssembleLangugeofARM早期的計(jì)算機(jī)多用堆棧和累加器型指令出于降低硬件復(fù)雜度的考慮現(xiàn)在已經(jīng)不用(Intel有點(diǎn)例外)80年代后的機(jī)器主要是寄存器型訪問(wèn)寄存器比訪問(wèn)存儲(chǔ)器快便于編譯器使用和優(yōu)化(操作單一,寄存器vs.內(nèi)存)寄存器可以用來(lái)存放變量,減少訪存次數(shù)15AssembleLangugeofARM處理器是一個(gè)執(zhí)行存儲(chǔ)器中指令的有限狀態(tài)機(jī),采用存儲(chǔ)程序數(shù)字計(jì)算機(jī)的原理。存儲(chǔ)程序數(shù)字計(jì)算機(jī)把指令和數(shù)據(jù)存放在同一個(gè)存儲(chǔ)器系統(tǒng)中,指令和數(shù)據(jù)可以放在一起或分開存放。馮諾依曼結(jié)構(gòu)哈佛結(jié)構(gòu)

16AssembleLangugeofARM17AssembleLangugeofARM馮.諾依曼”型計(jì)算機(jī)的邏輯結(jié)構(gòu)的三層含義:計(jì)算機(jī)應(yīng)包含運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備和輸出設(shè)備五大基本部件;計(jì)算機(jī)內(nèi)部采用二進(jìn)制形式表示指令和數(shù)據(jù);事先將編好的程序和始數(shù)據(jù)放入存儲(chǔ)器中,計(jì)算機(jī)工作的時(shí)候能夠自動(dòng)高速地從存儲(chǔ)器中提取指令并執(zhí)行。18AssembleLangugeofARM輸入設(shè)備

存儲(chǔ)器

運(yùn)算器控制器計(jì)算機(jī)的基本組成結(jié)構(gòu)(馮.諾依曼體系)

輸出設(shè)備19AssembleLangugeofARM復(fù)雜指令集計(jì)算機(jī)CISC(ComplexInstructionSetComputer)增加指令的復(fù)雜度,一條指令在多個(gè)時(shí)鐘周期內(nèi)完成。精簡(jiǎn)指令集計(jì)算機(jī)RISC(ReducedInstructionSetComputer)的思想起源于1980年斯坦福大學(xué)的一項(xiàng)處理器研究項(xiàng)目。RISC的指令是在單個(gè)時(shí)鐘周期內(nèi)完成的。20AssembleLangugeofARM體系結(jié)構(gòu)發(fā)展歷程計(jì)算機(jī)自40年代中葉問(wèn)世以來(lái),其體系結(jié)構(gòu)的發(fā)展經(jīng)歷了:簡(jiǎn)單復(fù)雜極其復(fù)雜簡(jiǎn)單復(fù)雜極其復(fù)雜大規(guī)模集成電路VLSI技術(shù)的發(fā)展促進(jìn)了處理器體系結(jié)構(gòu)的發(fā)展。21AssembleLangugeofARMCISCCISC的特點(diǎn):(VAX機(jī))指令格式不固定,指令可長(zhǎng)可短,操作數(shù)可多可少;尋址方式復(fù)雜多樣,操作數(shù)可來(lái)自寄存器,也可來(lái)自存儲(chǔ)器;采用微程序控制,執(zhí)行每條指令均需完成一個(gè)微指令序列;CPI>5,指令越復(fù)雜,CPI越大。22AssembleLangugeofARMCISC(續(xù))CISC的缺點(diǎn):指令集雖大,但指令使用頻度不均衡;20%/80%定律:20%的指令的使用時(shí)間占80%的運(yùn)行時(shí)間;常用指令數(shù)僅占指令集總數(shù)的10-20%。微程序控制器制約了速度提高,因?yàn)榇娣盼⒋a的存儲(chǔ)器速度比CPU慢5-10倍;CPI很大;CISC不利于先進(jìn)指令級(jí)并行(ILP)技術(shù)的采用;編譯器代碼優(yōu)化困難。23AssembleLangugeofARMRISC的提出與發(fā)展:Load/Store結(jié)構(gòu)提出:CDC6600(1963)--CRAY1(1976)RISC思想最早在IBM公司提出,但不叫RISC,IBM801處理器是公認(rèn)體現(xiàn)RISC思想的機(jī)器。D.Patterson提出RISC名詞,并研制了RISC-,實(shí)驗(yàn)樣機(jī)。J.Hennessy研制MIPS芯片(1982)。85年后推出商品化RISC:MIPS1(1986)和SPARCV1(1987)24AssembleLangugeofARMRISC的貢獻(xiàn)RISC統(tǒng)一了計(jì)算機(jī)的體系結(jié)構(gòu),在此前的計(jì)算機(jī)體系結(jié)構(gòu)是五花八門的(累加器結(jié)構(gòu),棧結(jié)構(gòu),寄存器-內(nèi)存結(jié)構(gòu)等)提高了性能,在80年代中期,CPU的MIPS數(shù)由80年代初的2-3MIPS提高到200-300MIPS.Architecture與Compiler緊密相關(guān)(如靜、動(dòng)態(tài)調(diào)度,ILP)流水線技術(shù)的應(yīng)用25AssembleLangugeofARMRISC體系結(jié)構(gòu)RISC處理器的思想、特點(diǎn)80%/20%定律精簡(jiǎn)指令集(reducedinstructionset)典型的RISC處理器的結(jié)構(gòu):MIPS,ARM流水線技術(shù)26AssembleLangugeofARMRISC基本設(shè)計(jì)思想:減小CPI: CPUtime=Instr_Count*CPI*Clock_cycle精簡(jiǎn)指令集:保留最基本的,去掉復(fù)雜的,使用頻度不高的指令采用Load/Store結(jié)構(gòu),有助于大大減少指令格式,統(tǒng)一了存儲(chǔ)器訪問(wèn)方式采用硬接線控制代替微程序控制27AssembleLangugeofARMRISC結(jié)構(gòu)的特點(diǎn):尋址方式少,指令格式少且規(guī)整,指令長(zhǎng)度統(tǒng)一(32bit),便于提高流水線效率。(見MIPS指令格式)Load/store指令結(jié)構(gòu)大寄存器文件(32個(gè)32位寄存器)CPI接近于1,大多數(shù)指令單周期完成硬接線控制器有助于編譯優(yōu)化代碼28AssembleLangugeofARMCISCvs.RISCCISC復(fù)雜指令集計(jì)算機(jī)指令多,功能復(fù)雜,線路復(fù)雜指令長(zhǎng)度不一,編程簡(jiǎn)單,控制復(fù)雜;尋址方式多,復(fù)雜;每條指令的執(zhí)行周期數(shù)CPI在1~20;RISC精簡(jiǎn)指令集計(jì)算機(jī)定長(zhǎng)指令,條數(shù)少,多級(jí)流水線;指令簡(jiǎn)化令機(jī)器結(jié)構(gòu)簡(jiǎn)單,譯碼簡(jiǎn)單統(tǒng)一、優(yōu)化;尋址方式少,簡(jiǎn)單;特定指令訪問(wèn)內(nèi)存,如:Load,Store;每條指令的執(zhí)行周期數(shù)CPI在1~2;29AssembleLangugeofARMMIPS指令格式

OP(6)RS1(5)RS2(5)RD(5)SA(5)funct(6)R-typeOP(6)RS(5)RD(5)ImmediateI-typeOP(6)targetJ-type30AssembleLangugeofARM高性能典型RISC處理器SUN公司的SPARCMIPS公司的SGI:MIPSHP公司的PA-RISCIBM,Motorola公司的PowerPCDEC、Compac公司的AlphaARM

?31AssembleLangugeofARM典型的RISC處理器:MIPS五級(jí)流水32AssembleLangugeofARM流水線技術(shù)什么是流水線(pipeline)流水線是實(shí)現(xiàn)多條指令重疊執(zhí)行的技術(shù),是加快CPU執(zhí)行速度的關(guān)鍵技術(shù)。術(shù)語(yǔ):流水級(jí)(pipestage):流水線由多個(gè)流水級(jí)組成,通常一條指令由n級(jí)流水級(jí)完成。每個(gè)流水級(jí)完成指令的部分任務(wù)。吞吐量(throughput):單位時(shí)間內(nèi)流出流水線的指令數(shù)。33AssembleLangugeofARM機(jī)器周期(machinecycle):不同流水線完成指令功能不等,所需時(shí)間有長(zhǎng)有短,因此設(shè)計(jì)流水線的關(guān)鍵是合理劃分指令功能,使每一流水級(jí)完成指令功能的時(shí)間大致相等。機(jī)器周期由最長(zhǎng)流水級(jí)的時(shí)間決定,通常等于時(shí)鐘周期。34AssembleLangugeofARM理想流水線的加速因子(Speedup)

非流水線機(jī)器指令的平均執(zhí)行時(shí)間=--------------------------------流水線機(jī)器指令的平均執(zhí)行時(shí)間非流水線機(jī)器指令的平均執(zhí)行時(shí)間=----------------------------------------非流水線機(jī)器指令的平均執(zhí)行時(shí)間/流水級(jí)數(shù)=流水級(jí)數(shù)35AssembleLangugeofARM以典型RISC體系結(jié)構(gòu)計(jì)算機(jī)為例,RISC指令的流水線實(shí)現(xiàn)分五步(即5個(gè)時(shí)鐘周期)完成:1、取指令周期(IF)IRMem[PC]NPCPC+42、譯碼/讀寄存器周期(ID)AReg[IR6..10]BReg[IR11..15]Imm((IR16)16##IR16..31)36AssembleLangugeofARM3、執(zhí)行/有效地址計(jì)算(EX)Load/StoreALUoutputA+ImmR-RALUALUoutputAfuncBR-IALUALUoutputAopImmBranchALUoutputNPC+Imm;CondAop037AssembleLangugeofARM4、存儲(chǔ)器訪問(wèn)/轉(zhuǎn)移完成(MEM)Load/Store:LMDMem[ALUoutput]Mem[ALUoutput]BBranch

if(Cond)thenPCALUoutputelsePCNPC38AssembleLangugeofARM5、寫回周期(WB)R-RALURegs[IR16..20]ALUoutputR-IALURegs[IR11..15]ALUoutputLoadRegs[IR11..15]LMD39AssembleLangugeofARMRISC五級(jí)流水線實(shí)現(xiàn)示意圖40AssembleLangugeofARM在兩個(gè)相鄰節(jié)拍間增加一暫存器(鎖存器),用來(lái)保留指令的狀態(tài)(及數(shù)據(jù)),共有IF/ID,ID/EX,EX/MEM,M

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論