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

下載本文檔

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

文檔簡介

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

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

7AssembleLangugeofARM機器語言:依賴于機器的低級語言,書寫格式為二進制代碼。

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

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

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

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

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

70%以上的系統(tǒng)軟件是用匯編語言編寫的。某些快速處理、位處理、訪問硬件設(shè)備等高效程序是用匯編語言編寫的。某些高級繪圖程序、視頻游戲程序、圖像解壓縮程序是用匯編語言編寫的。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;}下面是兩個小例子,例1是用高級語言VC++編寫的,例2是用匯編語言編寫的。它們完成相同的功能,即把a、b的內(nèi)容相加賦給c,并在屏幕上顯示出來。例1編譯后的目標文件達到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匯編后的目標文件只有208字節(jié)12AssembleLangugeofARM2.RISC處理器體系結(jié)構(gòu)概述ISA體系結(jié)構(gòu)分類根據(jù)指令使用數(shù)據(jù)的方式,指令系統(tǒng)分為以下幾類堆棧型(Stack):操作數(shù)在棧頂,運算操作不用指定操作數(shù)累加器型(Accumulator):一個操作數(shù)總在累加器中,結(jié)果也寫回累加器寄存器型(Register),每個操作數(shù)都由指令指定Register-Register型,又稱為Load-Store型,所有運算操作的操作數(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早期的計算機多用堆棧和累加器型指令出于降低硬件復雜度的考慮現(xiàn)在已經(jīng)不用(Intel有點例外)80年代后的機器主要是寄存器型訪問寄存器比訪問存儲器快便于編譯器使用和優(yōu)化(操作單一,寄存器vs.內(nèi)存)寄存器可以用來存放變量,減少訪存次數(shù)15AssembleLangugeofARM處理器是一個執(zhí)行存儲器中指令的有限狀態(tài)機,采用存儲程序數(shù)字計算機的原理。存儲程序數(shù)字計算機把指令和數(shù)據(jù)存放在同一個存儲器系統(tǒng)中,指令和數(shù)據(jù)可以放在一起或分開存放。馮諾依曼結(jié)構(gòu)哈佛結(jié)構(gòu)

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

存儲器

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

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

非流水線機器指令的平均執(zhí)行時間=--------------------------------流水線機器指令的平均執(zhí)行時間非流水線機器指令的平均執(zhí)行時間=----------------------------------------非流水線機器指令的平均執(zhí)行時間/流水級數(shù)=流水級數(shù)35AssembleLangugeofARM以典型RISC體系結(jié)構(gòu)計算機為例,RISC指令的流水線實現(xiàn)分五步(即5個時鐘周期)完成:1、取指令周期(IF)IRMem[PC]NPCPC+42、譯碼/讀寄存器周期(ID)AReg[IR6..10]BReg[IR11..15]Imm((IR16)16##IR16..31)36AssembleLangugeofARM3、執(zhí)行/有效地址計算(EX)Load/StoreALUoutputA+ImmR-RALUALUoutputAfuncBR-IALUALUoutputAopImmBranchALUoutputNPC+Imm;CondAop037AssembleLangugeofARM4、存儲器訪問/轉(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五級流水線實現(xiàn)示意圖40AssembleLangugeofARM在兩個相鄰節(jié)拍間增加一暫存器(鎖存器),用來保留指令的狀態(tài)(及數(shù)據(jù)),共有IF/ID,ID/EX,EX/MEM,M

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論