




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、32位PowerPC構(gòu)架通用寄存器分析及總結(jié)一第一部分32位PowerPC構(gòu)架下寄存器概述32位PowerPC構(gòu)架寄存器模型可以分成三個(gè)類級(jí)別:UISA,VEAOEA我們根據(jù)這三個(gè)級(jí)別把PowerPC所使用的所有寄存器分為三類:第一類:用戶指令集構(gòu)架(UISA-UserInstructionSetArchitecture)下所使用的寄存器;第二類:虛擬環(huán)境構(gòu)架(VEA-VirtualEnvironmentArchitecture)下所使用的寄存器;第三類:操作系統(tǒng)環(huán)境(OEA-OperatingEnvironmentArchitecture)下所使用的寄存器;PowerPC指令集構(gòu)架為所有的算
2、術(shù)邏輯運(yùn)算指令定義了“寄存器到寄存器”格式的指令,這些指令的操作數(shù)來(lái)自或者來(lái)自于寄存器,或者來(lái)自于指令中的立即數(shù)。而對(duì)于“三寄存器”格式的指令,PowerPC指令集定義其中一個(gè)寄存器用來(lái)存目的操作數(shù),另外兩個(gè)寄存器用來(lái)存放源操作數(shù)。這樣的話,存放源操作數(shù)的寄存器還可以被其它指令使用,從而減少了某些操作的指令數(shù)目。并且對(duì)于訪問(wèn)寄存器,PowerPC構(gòu)架定義了明確的load和store訪存指令(這是RISC指令集的典型特點(diǎn))。備注:寄存器中的保留位允許軟件寫任何值(其實(shí)就是0或者1),但是讀出來(lái)的值,未必是我們寫出來(lái)的值。它的值依賴于具體的執(zhí)行系統(tǒng)。接下來(lái),我們分別來(lái)介紹這三類寄存器。第二部分UI
3、SA寄存器集合用戶模式下的寄存器可以被所有的用戶級(jí)軟件和特權(quán)級(jí)軟件所使用,它包含以下的寄存器:32個(gè)通用寄存器GPRs(General-purposeregisters):GPR0-GPR3132個(gè)浮點(diǎn)寄存器FRPs(Floating-pointregisters):FPR0-FPR311個(gè)條件寄存器:CR(Conditionregister);1個(gè)XER寄存器;1個(gè)LR(Linkregister)寄存器;1個(gè)CTR(Countregister)寄存器;1個(gè)浮點(diǎn)狀態(tài)控制寄存器:FPSCR(Floating-pointstatusandcontrolregister);備注:不管是單精度數(shù)還是雙
4、精度數(shù),在浮點(diǎn)寄存器中都是以雙精度格式存儲(chǔ)。示意圖如下:R口14t-eSupwvisorXttVHvraOp«rafmgErtvfronmontAft;hM:«ctur«(OBA)MMUR咕Elfre031EaUiZu$tansMw.飆erfc-jiator4DtfHigRaglslflrivMllicNnlthmiicowigiinUiOfi蚪”1司|1單足o,1MSP|啊Mgg|PiW|PmnaaxS3Ipl3sH源|iPlDCMKfTtimr/D*erwitfiterHrp.tiM,EJrteitHlAcciMBR*»gMr3r-4FABIEjdr
5、<nriarni.叫卬xhptoiitfiFigure2-1.UFSAProgramtningMo4ei-U«r-LevelRosiers2.1 通用寄存器GPRs32個(gè)32位通用寄存器主要用來(lái)操作整數(shù)數(shù)據(jù),它們可以作為指令源寄存器和目的寄存器使用,使用起來(lái)比較簡(jiǎn)單,這里就不再相信介紹2.2 浮點(diǎn)寄存器FPRsPowerPC構(gòu)架使用32個(gè)64位的浮點(diǎn)寄存器,這些寄存器可以在浮點(diǎn)指令中用作源操作數(shù)和目的操作數(shù)。無(wú)論是單精度浮點(diǎn)數(shù)還是雙精度浮點(diǎn)數(shù)在浮點(diǎn)寄存器中都是以雙精度格式存儲(chǔ)。除了浮點(diǎn)比較指令之外,其他的浮點(diǎn)操作指令都是操作FPRs中的數(shù)據(jù),然后把操作結(jié)果放入FPRs中,同時(shí)把
6、浮點(diǎn)操作的狀態(tài)信息存入FPSC珅;而浮點(diǎn)比較指令的結(jié)果一般會(huì)存放在CR寄存器的CR2字段中。另外對(duì)于FPRs同存放在內(nèi)存中的雙精度輸進(jìn)行數(shù)據(jù)轉(zhuǎn)存時(shí),不需要格式轉(zhuǎn)換;而對(duì)于FPRs和放在在內(nèi)存中的單精度數(shù)進(jìn)行轉(zhuǎn)存時(shí)需要格式轉(zhuǎn)換;而且單精度指令操作FPRs中的數(shù)據(jù)時(shí),必須把FPRs中的雙精度格式的數(shù)據(jù)轉(zhuǎn)化成單精度格式,單精度指令才能使用。2.3 CR寄存器32位的CR寄存器可以反映某些操作的結(jié)果(比如cmp指令),協(xié)助測(cè)試和分支轉(zhuǎn)移指令的執(zhí)行。CR寄存器用來(lái)存放指令執(zhí)行之后的狀態(tài),該寄存器分為8個(gè)字段。分別為CRQCR1,CR%每個(gè)字段都由4bit組成。各個(gè)字段CRn(n從Q至7)都可以表示響應(yīng)指
7、令執(zhí)行的結(jié)果:比如整數(shù)的加減及邏輯運(yùn)算,使用CRQ來(lái)存放狀態(tài),CRQ的四個(gè)bit位的含義如下:CRQ(Q):用來(lái)表示LT(小于),當(dāng)整型指令運(yùn)算結(jié)果為負(fù)時(shí)置1;CRQ(1):用來(lái)表示GT(大于),當(dāng)整型指令運(yùn)算結(jié)果為正時(shí)置1;CRQ(2):用來(lái)表示EQ(等于),當(dāng)整型指令運(yùn)算結(jié)果為Q時(shí)置1;CRQ(3):用來(lái)表示SO(溢出),當(dāng)整型指令運(yùn)算結(jié)果溢出時(shí)置1;同理浮點(diǎn)數(shù)的運(yùn)算使用CR1來(lái)保存運(yùn)算狀態(tài),保存過(guò)程同上。其實(shí)比較指令可以使用CR寄存器的全部的CRn(n從Q至7)來(lái)保存運(yùn)算的結(jié)果。在使用CR寄存器時(shí),比較指令cmp之后都會(huì)有一個(gè)條件跳轉(zhuǎn)指令,比如bc指令。其中cmp指令可以指定由CR寄存器
8、的CRn段來(lái)保存結(jié)構(gòu),cmpi指令就用BF字段來(lái)指定CRn字段,一般而言bc指令就會(huì)指向cmp中相同的CRn段來(lái)決定跳轉(zhuǎn)。下面的指令用來(lái)操作CR寄存器的各個(gè)CRn域:1:mtcrf用一個(gè)GPR勺值來(lái)設(shè)置CR寄存器的CRn域;2:mcrf把CR寄存器的一個(gè)域CRn拷貝到另一個(gè)域CRm3: mcrxr把XER寄存器的bitQ-bit3拷貝到CR寄存器的一個(gè)域CRn4:mcrfs把指定的FPSCFW存器的一個(gè)域拷貝到指定的CR寄存器的一個(gè)域CRn5: CR寄存器的CRQ域存放整數(shù)指令的運(yùn)算結(jié)果6: CR寄存器的CR1域存放浮點(diǎn)數(shù)指令的運(yùn)算結(jié)果7:可以指定CR寄存器的任何一個(gè)域CRn來(lái)存放整數(shù)指令和浮
9、點(diǎn)數(shù)指令的運(yùn)算結(jié)果;6.1.1 對(duì)于CR寄存器的CRQ域解釋對(duì)于所有的整數(shù)指令比如addic.,adni.和andis.等(.表示Rc位置位),指令的執(zhí)行結(jié)果將會(huì)反映在CRQ位上。CRQQ:2位根據(jù)整數(shù)指令的運(yùn)算結(jié)構(gòu)設(shè)定,CR3由XERSQ位拷貝過(guò)來(lái),四個(gè)bit位的含義上面已經(jīng)講過(guò)。備注:我們不難想到,如果發(fā)生溢出,CRQ的前三個(gè)bit就沒(méi)有參考價(jià)值了。6.1.2 對(duì)于CR寄存器的CR1域?qū)τ谒械母↑c(diǎn)運(yùn)算指令(指令的Rc位置位),CR1將反映浮點(diǎn)運(yùn)算指令的結(jié)果。具體的說(shuō)CR1Q:3位拷貝自FPSCRQ:3,來(lái)反映浮點(diǎn)運(yùn)算的異常狀態(tài)。6.1.3 對(duì)于指定的CRn域的解釋對(duì)于比較指令而言,它們通
10、常會(huì)自己指定一個(gè)CRn域來(lái)存放比較指令的運(yùn)算結(jié)果。比如對(duì)cmpi指令:cmpiBF,L,RA,SI語(yǔ)義:n<-BF表示的數(shù)值ifL=Qthena<EXTS(RA)32:63)elsea<(RA)ifa<EXTS(SI)thenc<-Qb1QQ/小于時(shí)設(shè)置CRn(Q)為1elseifa>EXTS(SI)thenc<0b010/大于時(shí)設(shè)置CRn(1)為1elsec<-0b001/等于時(shí)設(shè)置CRn(2)為1CR寄存器中的:4XBF+32:4XBF+35<-c|XER寄存器中SO位/|表示字符連接解釋:將寄存器RA與立即數(shù)SI進(jìn)行比較,然后將比較指
11、令產(chǎn)生的狀態(tài)放入CR寄存器的不同字段中,CR寄存器有8個(gè)CRn字段(門從0至7),可以有三個(gè)bit位的BF段指定。L表示是進(jìn)行32位還是64的比較。對(duì)于e600而言,只有L=0的比較。2.4 FPSCR寄存器FPSCFW存器白各個(gè)bit位的作用:1:記錄浮點(diǎn)操作的異常2:記錄浮點(diǎn)操作的結(jié)果的類型3:控制浮點(diǎn)操作的回旋模式(roundingmode)4:使能或者禁止異常報(bào)告FPSCR0:23是狀態(tài)bit位,在浮點(diǎn)指令的執(zhí)行單元完成時(shí)更新;FPSCR24:31是控制位;2.5 XER寄存器XER寄存器是用戶模式寄存器,存放整數(shù)運(yùn)算操作的進(jìn)位,溢出信息以及特殊加載和存儲(chǔ)指令lswd和stsws傳輸?shù)?/p>
12、字節(jié)數(shù)。XER寄存器有三個(gè)有效位(SO-SummaryOverflow,OV-Overflow,CA-Carry)和一個(gè)有效字段BytecountSO位:XER0位,該位為1表示算術(shù)指令曾經(jīng)將OV位置1;CR寄存器的SO位就是復(fù)制了XER寄存器的SO位,SO位一旦被設(shè)置,就不會(huì)被?#除,真到程序使用mtspr,mcrxr指令進(jìn)行清除。OV位:XER1位,表示有符合數(shù)的算術(shù)運(yùn)算產(chǎn)生了溢出。CA位:XER2位,表示無(wú)符號(hào)數(shù)運(yùn)算產(chǎn)生了進(jìn)位。Bytecount字段:XER25:31存放lswd和stsws傳輸?shù)淖止?jié)數(shù)。2.6 LR寄存器LR寄存器用來(lái)存放函數(shù)的返回地址,某些轉(zhuǎn)移指令可以自動(dòng)的將LR寄存
13、器賦值為該轉(zhuǎn)移指令所在地址的下一個(gè)地址。LR寄存器還可以用作bclr指令的目標(biāo)地址,來(lái)實(shí)現(xiàn)長(zhǎng)跳轉(zhuǎn)。示意圖如下:Z952961000051c<pr?int>:237loaoosic21flfOrl,-16(1:1)Z9S100005207cOS02曰6trfIrrO2993001000052410000528909301el000014Oc3t.WstwrO,20(rl)r31,12(rl)3011000052c7c3fOb7Smrr31/rl90S100005303c001000113r0,409fi3031000053306006eSaddic“,1768304100005384
14、S010361b.L10010898<putsplt>3051000053c397f0010add!163061000054080Ob00SluzirQ(til)307100005447cOB03a6mtlrrO30S1000054883cbfffcIwz工31.-4(rll)3091000054c7d615b78mirl,til返回LR寄存器中保310100005504已80002nFblrJT存的0x1000056c311312R口口口口55410000S543139421fffDstiruirl.-lG(rl)314100005587coe0206niflrrO3151000
15、055c90010014stur-0,20(rlj3161000055093el00OcSt-Wr31,12(rl)317100005647c3工Ob?e31S100005684bffftbSIr1000051c-print>319320lOOOOESc10000570387c00030003DO.?a11ruRr3.r0A32110000574397f0010addit1Lr31,器3ZZ1000057880Ob0004Li調(diào)用Mim。函數(shù),同時(shí)把該指令3Z31000057c7c0803a6制的下一條指令地址0x1000056c放32410000580B3ebfffc11入LR寄存器3
16、Z51O0OO5S47d61Sb?ami3Z6100005868Q0020b3271000058c000181bO*longOxlSltoO3Z9備注:圖中的blr是bclr20,0指令的助記符。2.7 CTR指令CTR寄存器用來(lái)保存循環(huán)變量,并可以根據(jù)bclr的BO操作數(shù)來(lái)自動(dòng)進(jìn)行減1操作。此外CTR寄存器還可用來(lái)保存bcctr指令的目標(biāo)地址,用來(lái)實(shí)現(xiàn)長(zhǎng)調(diào)轉(zhuǎn)。第三部分虛擬環(huán)境構(gòu)架(VEA-VirtualEnvironmentArchitecture)寄存器集虛擬環(huán)境工具寄存器集只包含Time-Base寄存器組。示意圖如下:VhrtMiErMrOtim4nlArChllecluht(VEAib
17、UtrutUOh-A«M4K3laMgl*gr4e時(shí)FP陰LcPFCRirirr2舊4H.ihE申L*4FscnRRMFHqs1sp(hcoufriandutkKn«giii«re1imlmygi,叩4FtoAq-painl31MgTl>¥日力3R但RilLOin%QII«pr中為5TBLTLlUfir-L9volR”-tKUs4rM«rdt1IOnXtArclilltKluiUtSA*l:口匚»GeiwralHput|xj4r修gH4s<5MMUR«gibtenCdnfiquraiWnH-越1第噫fi
18、1AlUHMtmW*5卬甲爐甲刈印IU1甲142BftfMJUBSTcTPTWMKrDBATiLDBsrar"dbaIsiLDwTiJrm-Dita的巡4Klek-E:.vbtr%stem"wr"aw"TBL一iTBU'1KTknwMDecE4nM*rCteCAMT啟力健,Ejit*mai看姓心見(jiàn)專R*.tr£*nW臺(tái)國(guó)?.F*bto;p4i->naiiWiD«MgItegtrier修眄I+,用守I-I:CiiEH)f«|Lfl|l«khq加SuprvHor-L*lR聞出tor*Op,ri舊目EnYirqnm審WArchHwmnH口E匐Figure2-9.VEAProqiwnm加門flndUaerLevelRflqisterePlusTimeBawVEA寄存器組可以被所有的處于用戶模式或者系統(tǒng)模式下的軟件所訪問(wèn),從VEA寄存器組的示意圖我們可以看出,和UISA寄存器相比。VEA寄存器只是引入了一個(gè)64位的結(jié)構(gòu)體,它包含兩個(gè)寄存器:TBU(TimeBaseU
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 出差人員住宿標(biāo)準(zhǔn)及費(fèi)用結(jié)算合同
- 教學(xué)課件怎么設(shè)計(jì)
- 消防救援知識(shí)綜合測(cè)試試卷含應(yīng)急管理等要點(diǎn)
- 三年級(jí)快樂(lè)寶貝教學(xué)課件
- 印刷包裝設(shè)計(jì)中的綠色供應(yīng)鏈管理考核試卷
- 冷鏈物流與電子商務(wù)融合分析考核試卷
- 表面處理對(duì)樂(lè)器零件壽命的影響考核試卷
- 影視媒體對(duì)動(dòng)漫產(chǎn)業(yè)產(chǎn)業(yè)鏈重構(gòu)的影響考核試卷
- 行業(yè)影響力評(píng)估考核試卷
- 離譜面試題目及答案
- 2023-2024學(xué)年四川省雅安市小學(xué)數(shù)學(xué)一年級(jí)下冊(cè)期末高分試卷
- 網(wǎng)絡(luò)游戲代理合同通用版范文(2篇)
- GB/T 6414-1999鑄件尺寸公差與機(jī)械加工余量
- GB/T 27773-2011病媒生物密度控制水平蜚蠊
- GB/T 12817-1991鐵道客車通用技術(shù)條件
- 質(zhì)量風(fēng)險(xiǎn)識(shí)別項(xiàng)清單及防控措施
- 【課件超聲】常見(jiàn)的超聲效應(yīng)與圖象偽差
- 外墻保溫、真石漆工程施工方案
- 自然指數(shù)NatureIndex(NI)收錄的68種自然科學(xué)類期刊
- 建立良好的同伴關(guān)系-課件-高二心理健康
- 老年人健康管理隨訪表
評(píng)論
0/150
提交評(píng)論