《計算機(jī)系統(tǒng)結(jié)構(gòu)》電子教案(課2).ppt

上傳人:za****8 文檔編號:15244777 上傳時間:2020-08-05 格式:PPT 頁數(shù):45 大小:406KB
收藏 版權(quán)申訴 舉報 下載
《計算機(jī)系統(tǒng)結(jié)構(gòu)》電子教案(課2).ppt_第1頁
第1頁 / 共45頁
《計算機(jī)系統(tǒng)結(jié)構(gòu)》電子教案(課2).ppt_第2頁
第2頁 / 共45頁
《計算機(jī)系統(tǒng)結(jié)構(gòu)》電子教案(課2).ppt_第3頁
第3頁 / 共45頁

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《計算機(jī)系統(tǒng)結(jié)構(gòu)》電子教案(課2).ppt》由會員分享,可在線閱讀,更多相關(guān)《《計算機(jī)系統(tǒng)結(jié)構(gòu)》電子教案(課2).ppt(45頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),1,第2章 指令系統(tǒng)的設(shè)計,本章主要內(nèi)容 (1) 指令操作碼的優(yōu)化(不講) (2) RISC技術(shù)簡介 (3) MIPS指令集 (4) MIPS模擬器(補(bǔ)充),2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),2,2.4.2 RISC技術(shù)簡介(P44),名詞:RISCReduced Instruction Set Computing,精簡指令集計算機(jī) (1)RISC產(chǎn)生的背景:20%與80%規(guī)律 (2)RISC設(shè)計的基本原則: 只設(shè)置最常用的簡單指令,凡遇復(fù)雜操作均用多條簡單指令實現(xiàn); 指令長度固定,操作碼與操作數(shù)長度都盡量統(tǒng)一; 基本指令的啟動時間間隔降低到1個時鐘周期;

2、 訪問主存只有l(wèi)oad和store指令,用變址尋址; 盡量采用硬連邏輯對指令譯碼; 為了加快執(zhí)行速度,在編譯過程中對目標(biāo)代碼結(jié)構(gòu)進(jìn)行優(yōu)化; (3)RISC性能優(yōu)勢的原因 采用RISC技術(shù)的主要動機(jī)是使各條指令的執(zhí)行時序盡可能一致,CPU在執(zhí)行時間上可以把它們安排得更緊湊,就像許多大小相近的箱子容易被堆放得更密集一樣。這樣機(jī)器內(nèi)的各種資源可以充分利用,單位時間內(nèi)能執(zhí)行更多的指令,速度更快。 這方面的具體內(nèi)容,在第3章講流水線時會詳細(xì)介紹。,2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),3,2.4.2 RISC技術(shù)的發(fā)展,20世紀(jì)70年代初,IBM研究中心的John Cocke證明,計算機(jī)中約20%的指令承

3、擔(dān)了80%的工作,1974年,他提出RISC的概念。 在RISC的早期研究中,加州大學(xué)伯克利分校(UC Berkeley)和斯坦福大學(xué)(Stanford)提出了許多有創(chuàng)見的新思想。伯克利率先在1982年完成了RISC I型32位芯片的設(shè)計,斯坦福大學(xué)則在John Hennessy(現(xiàn)任校長)帶領(lǐng)下于1983年完成了第一個采用RISC理念的商用MIPS微處理器。 1984年Hennessy等人創(chuàng)建了MIPS計算機(jī)公司,1998年改名為MIPS技術(shù)公司(美普思科技公司,MIPS Technologies Inc),目前是美國最著名的芯片設(shè)計公司之一。MIPS技術(shù)公司本身不生產(chǎn)微處理器,它只設(shè)計高性

4、能工業(yè)級的32位和64位CPU的結(jié)構(gòu)體系,并且向其它半導(dǎo)體公司提供使用其內(nèi)核(IP)的授權(quán),用于生產(chǎn)基于MIPS而又各具特色的微處理器。1999年MIPS技術(shù)公司發(fā)布了MIPS32和MIPS64架構(gòu)標(biāo)準(zhǔn)。 MIPS的通用微處理器主要用于構(gòu)建高性能工作站、服務(wù)器和超級計算機(jī)系統(tǒng),其嵌入式產(chǎn)品在1999年以前全球銷量第一,目前也僅次于ARM。,2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),4,MIPS處理器,MIPS的意思是“無內(nèi)部互鎖流水級的微處理器”(Microprocessor without interlocked piped stages),其機(jī)制是盡量利用軟件辦法避免流水線中的數(shù)據(jù)相關(guān)問題。 M

5、IPS具有強(qiáng)大的應(yīng)用基礎(chǔ),能在MIPS上運行的操作系統(tǒng),包括Linux、WindRiver、WinCE、GNU、和Monta Vista等;支持14種編譯器,包括MIPS、SDE、Green Hills、GNU和WindRiver等;支持15種調(diào)試器,包括GNU、Green Hills、WindRiver、ASHLING和FS2等;支持18種仿真工具,包括Mentor Graphics、Synopsys、CoWare和Candence等。 中國科學(xué)院計算所的龍芯1和2都采用64位MIPS指令架構(gòu)。中國龍芯已與MIPS公司合作,購買其指令系統(tǒng)授權(quán),以便批量生產(chǎn)與出口。,2014.2.17,計算機(jī)

6、系統(tǒng)結(jié)構(gòu),5,2.6.1 MIPS的寄存器(P47),32個64位通用寄存器(GPRs),也稱為整數(shù)寄存器 名稱是R0,R1,,R31(也可寫為$0,$1,,$31) R0的值永遠(yuǎn)是0,可用作源寄存器,也可作為無用結(jié)果的目的寄存器; R31用于存放跳轉(zhuǎn)并鏈接類指令的返回地址。 32個64位浮點數(shù)寄存器(FPRs) F0,F(xiàn)1,,F(xiàn)31 用來存放32個單精度浮點數(shù)(32位),也可以用來存放32個雙精度浮點數(shù)(64位)。 存儲單精度浮點數(shù)(32位)時,只用到FPR的一半,其另一半沒用。 特殊功能寄存器 PC(program counter,程序計數(shù)寄存器) HI(整數(shù)乘除結(jié)果高位寄存器,除法余數(shù))

7、 LO(整數(shù)乘除結(jié)果低位寄存器,除法的商) 它們可以與通用寄存器交換數(shù)據(jù)。 浮點狀態(tài)寄存器:用來保存有關(guān)浮點操作結(jié)果的信息。,2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),6,MIPS的寄存器別名(程序員習(xí)慣用法),MIPS編譯器支持一些專業(yè)程序員對32個通用寄存器GPR(GENERAL PURPOSE REGISTER)約定的習(xí)慣性用法(非強(qiáng)制的): REGISTER NAMEUSAGE $0 $zero常量0(constant value 0) $2-$3 $v0-$v1函數(shù)調(diào)用返回值(values for results and expression evaluation) $4-$7 $a0-$

8、a3函數(shù)調(diào)用參數(shù)(arguments) $8-$15 $t0-$t7暫時的(或隨便用的) $16-$23 $s0-$s7保存的(或如果用,需要SAVE/RESTORE的)(saved) $24-$25 $t8-$t9暫時的(或隨便用的) $26-$27 $k0-$k1由操作系統(tǒng)的異?;蛑袛嗵幚沓绦蚴褂?$28 $gp全局指針(Global Pointer) $29 $sp堆棧指針(Stack Pointer) $30 $fp幀指針(Frame Pointer) (BNN:fp is stale acutally, and can be simply used as $t8) $31 $ra返回

9、地址(return address),2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),7,2.6.2 MIPS的數(shù)據(jù)表示,整數(shù) 字節(jié)(8位) 半字(16位) 字(32位) 雙字(64位) 浮點數(shù) 單精度浮點數(shù)(32位) 雙精度浮點數(shù)(64位) 字節(jié)、半字或者字在裝入64位寄存器時,用零擴(kuò)展或者用符號位擴(kuò)展來填充該寄存器的剩余部分。裝入以后,對它們將按照64位整數(shù)的方式進(jìn)行運算。,2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),8,2.6.3 MIPS的數(shù)據(jù)尋址方式(P47),立即數(shù)尋址與偏移量尋址; 立即數(shù)字段和偏移量字段都是16位的。 寄存器間接尋址是通過把0作為偏移量來實現(xiàn)的; 16位絕對尋址是通過把R0(其值永

10、遠(yuǎn)為0)作為基址寄存器來完成的; MIPS的存儲器按字節(jié)尋址,地址為64位; 所有存儲器訪問必須是邊界對齊的,即訪問地址必須是該數(shù)據(jù)長度(字節(jié)數(shù))的整倍數(shù),又叫整數(shù)邊界原則; MIPS的存儲器按字節(jié)編制; 所有數(shù)據(jù)字、指令字從最高有效位開始依次標(biāo)記為bit 0、1、2 ; MIPS處理器的存儲順序,可以設(shè)置為“小端字節(jié)表示順序”( Littile-Endian,低位字節(jié)放在低地址)或者“大端字節(jié)表示順序”(Big-Endian, 高位字節(jié)放在低地址,以便適合網(wǎng)絡(luò)數(shù)據(jù)包內(nèi)順序)。在下文使用的 MIPS64模擬器中采用“小端字節(jié)表示順序”。,2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),9,2.6.4 MI

11、PS指令格式(P48),MIPS32和MIPS64體系結(jié)構(gòu)定義了兼容的32位和64位處理機(jī)指令 使用條件編譯或宏匯編指令能寫出可同時在MIPS32和MIPS64上運行的程序 尋址方式編碼到操作碼中 所有的指令都是32位的 操作碼占6位 3種指令格式(3種格式中,同名字段的位置固定不變),2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),10,2.6.4 MIPS指令格式I類指令,包括所有的load和store指令,立即數(shù)指令,分支指令,寄存器跳轉(zhuǎn)指令,寄存器鏈接跳轉(zhuǎn)指令。 立即數(shù)字段為16位,用于提供立即數(shù)或偏移量。 load指令 訪存有效地址:Regsrsimmediate 從存儲器取來的數(shù)據(jù)放

12、入寄存器rt store指令 訪存有效地址:Regsrsimmediate 要存入存儲器的數(shù)據(jù)放在寄存器rt中 立即數(shù)指令 Regsrt Regsrs op immediate 分支指令 轉(zhuǎn)移目標(biāo)地址:Regsrsimmediate,rt無用 寄存器跳轉(zhuǎn)、寄存器跳轉(zhuǎn)并鏈接 轉(zhuǎn)移目標(biāo)地址為Regsrs,2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),11,2.6.4 MIPS指令格式R類指令,包括ALU指令,專用寄存器讀/寫指令,move指令等。 ALU指令 Regsrd Regsrs funct Regsrt funct為具體的運算操作編碼,2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),12

13、,2.6.4 MIPS指令格式J類指令,包括跳轉(zhuǎn)指令,跳轉(zhuǎn)并鏈接指令,自陷指令,異常返回指令。 在這類指令中,指令字的低26位是偏移量,它與PC值相加形成跳轉(zhuǎn)的地址。,2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),13,2.6.5 MIPS的操作(P49),MIPS指令可以分為四大類 load和store ALU操作 分支與跳轉(zhuǎn) 浮點操作 符號的意義 xny:從y傳送n位到x x,yz:把z傳送到x和y 下標(biāo):表示字段中具體的位; 對于指令和數(shù)據(jù),按從最高位到最低位(即從左到右)的順序依次進(jìn)行編號,最高位為第0位,次高位為第1位,依此類推。 下標(biāo)可以是一個數(shù)字,也可以是一個范圍。 例如:RegsR40:

14、寄存器R4的符號位 RegsR456-63:R4的最低字節(jié),2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),14,2.6.5 MIPS的操作(續(xù)),Mem:表示主存; 按字節(jié)尋址,可以傳輸任意個字節(jié)。 上標(biāo):用于表示對字段進(jìn)行復(fù)制的次數(shù)。 例如:032表示一個32位長的全0字段 符號##:用于兩個字段的拼接,并且可以出現(xiàn)在數(shù)據(jù)傳送的任何一邊。 舉例:R8、R6是64位的寄存器,下式 RegsR832-63 32(Mem RegsR60)24 ## Mem RegsR6 表示的意義是:以R6的內(nèi)容作為地址訪問內(nèi)存,得到的字節(jié)按符號位擴(kuò)展為32位后存入R8的低32位,R8的高32位(即RegsR80-3

15、1)不變。,2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),15,load和store指令,2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),16,ALU指令,寄存器寄存器型(RR型)指令或立即數(shù)型 算術(shù)和邏輯操作:加、減、與、或、異或和移位等 R0的值永遠(yuǎn)是0,它可以用來合成一些常用的操作。 例如:DADDIU R1,R0,#100 給寄存器R1裝入常數(shù)100 DADD R1,R0,R2 把寄存器R2中的數(shù)據(jù)傳送到寄存器R1,2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),17,2.6.6 MIPS的控制指令(P50),由一組跳轉(zhuǎn)和一組分支指令來實現(xiàn)控制流的改變 典型的MIPS控制指令,2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),1

16、8,跳轉(zhuǎn)指令,根據(jù)跳轉(zhuǎn)指令確定目標(biāo)地址的方式不同以及跳轉(zhuǎn)時是否鏈接,可以把跳轉(zhuǎn)指令分成4種。 確定目標(biāo)地址的方式 把指令中的26位偏移量左移2位(因為指令字長都是4個字節(jié))后,替換程序計數(shù)器的低28位; 間接跳轉(zhuǎn):由指令中指定的一個寄存器來給出轉(zhuǎn)移目標(biāo)地址。 跳轉(zhuǎn)的兩種類型 簡單跳轉(zhuǎn):把目標(biāo)地址送入程序計數(shù)器。 跳轉(zhuǎn)并鏈接:把目標(biāo)地址送入程序計數(shù)器,把返回地址(即順序下一條指令的地址)放入寄存器R31。,2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),19,分支指令(條件轉(zhuǎn)移),分支條件由指令確定 例如:測試某個寄存器的值是否為零 提供一組比較指令,用于比較兩個寄存器的值。 例如:“置小于”指令 有的分支

17、指令可以直接判斷寄存器內(nèi)容是否為負(fù),或者比較兩個寄存器是否相等。 分支的目標(biāo)地址 由16位帶符號偏移量左移兩位后和PC相加的結(jié)果來決定 一條浮點條件分支指令:通過測試浮點狀態(tài)寄存器來決定是否進(jìn)行分支。,2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),20,2.6.7 MIPS的浮點操作(P51),由操作碼指出操作數(shù)是單精度(SP)或雙精度(DP) 后綴S:表示操作數(shù)是單精度浮點數(shù) 后綴D:表示是雙精度浮點數(shù) 浮點操作 包括加、減、乘、除,分別有單精度和雙精度指令。 浮點數(shù)比較指令 根據(jù)比較結(jié)果設(shè)置浮點狀態(tài)寄存器中的某一位,以便于后面的分支指令BC1T(若真則分支)或BC1F(若假則分支)測試該位,以決定是

18、否進(jìn)行分支。,2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),21,注意浮點數(shù)的存儲格式只有64位雙精度這一種,沒有32位單精度數(shù)。,MIPS64偽指令,2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),22,MIPS64指令集1,2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),23,MIPS64指令集2,2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),24,MIPS64指令集3,2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),25,MIPS64指令集4,2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),26,MIPS64指令集5,2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),27,MIPS64指令集6,2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),28,MIPS64模擬器介紹1,201

19、4.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),29,MIPS64模擬器介紹2,2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),30,MIPS64模擬器介紹3,2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),31,MIPS64模擬器的存儲器映射I/O地址與命令,CONTROL: .word32 0 x10000;控制寄存器(映射地址) DATA: .word32 0 x10008;數(shù)據(jù)寄存器(映射地址) Set CONTROL = 1, 將DATA作為無符號整型數(shù)輸出 Set CONTROL = 2, 將DATA作為有符號整型數(shù)輸出 Set CONTROL = 3, 將DATA作為浮點數(shù)輸出 Set CONTROL = 4, 將DAT

20、A作為輸出字串的首地址 Set CONTROL = 5, 將DATA+5 作為x坐標(biāo),DATA+4作為y坐標(biāo),DATA作為RGB彩色值輸出 Set CONTROL = 6, 清除終端屏幕 Set CONTROL = 7, 清除圖形屏幕 Set CONTROL = 8, 從鍵盤讀DATA(整型數(shù)或浮點數(shù)) Set CONTROL = 9, 從DATA讀1字節(jié),無字符回顯,數(shù)據(jù)地址,0 x00000,,程序存儲器,程序起點,,lwu r24,DATA(r0),lwu r25,CONTROL(r0),指令地址,0 x00000,,,,數(shù)據(jù)存儲器,常規(guī)數(shù)據(jù)區(qū),,0 x10000,0 x10008,sd

21、 r9,0(r24),sd r2,0(r25),,,控制寄存器,數(shù)據(jù)寄存器,,,,,,,,,,,,,仿真非智能終端,2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),32,MIPS64模擬器演示實驗1 整數(shù)加法,文件名:sum.s .data A: .word 10 B: .word 8 C: .word 0 .text main: ld r4,A(r0);r4(A) ld r5,B(r0);r5(B) dadd r3,r4,r5;r3r4+r5 sd r3,C(r0);Cr3 halt,2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),33,MIPS64模擬器演示實驗2 階乘1,文件名:factorial.

22、s ; ; 階乘示例 ; 返回值放r10 ; .data number: .word 10;此數(shù)未用,可能想作為輸入值的上限 title: .asciiz “factorial program n= “;提示字符串 CONTROL: .word32 0 x10000 DATA: .word32 0 x10008 .text lwu r21,CONTROL(r0);r21指向CONTROL單元(端口) lwu r22,DATA(r0);r22指向DATA單元(端口),2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),34,MIPS64模擬器演示實驗2 階乘2,daddi r24,r0,4;輸出as

23、cii字串(提示信息) daddi r1,r0,title sd r1,(r22) sd r24,(r21) daddi r24,r0,8;從鍵盤讀輸入值到r1(整型量) sd r24,(r21) ld r1,(r22) start: daddi r29,r0,0 x80;r29指向堆棧區(qū)起點(十進(jìn)制值=128) jal factorial;調(diào)階乘子程序,返回值在r10(整型量) daddi r24,r0,1;輸出r10的結(jié)果 sd r10,(r22) sd r24,(r21) halt;停機(jī),2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),35,MIPS64模

24、擬器演示實驗2 階乘3,; ;階乘子程序,入口參數(shù)在r1,返回值在r10 ; factorial: slti r10,r1,2;如果r1<2(即r1=1)則r101,否則r100 bnez r10,out ;如果r10=1則子程序返回 sd r31,(r29);子程序返回地址壓進(jìn)堆棧 daddi r29,r29,8;堆棧指針+8 sd r1,(r29);r1當(dāng)前值壓進(jìn)堆棧 daddi r29,r29,8;堆棧指針+8 daddi r1,r1,-1;r1r11 jal factorial;遞歸調(diào)用,將乘數(shù)序列依次入棧(n,3,2),2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),

25、36,MIPS64模擬器演示實驗2 階乘4,dadd r4,r0,r10;遞歸出口(首次r10=1),r4r10 daddi r29,r29,-8;堆棧指針8 ld r3,(r29);出棧:r3棧頂單元 dmulu r3,r3,r4;r3r3r4 dadd r10,r0,r3;r10乘積r3 daddi r29,r29,-8;堆棧指針8 ld r31,0(r29);r31返回地址 out: jr r31;子程序返回到r31所指的地址,2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),37,MIPS64模擬器演示實驗3 存儲器映射輸出,文件名:output.s .data A:.wor

26、d 10 B:.word 8 C:.word 0 CR:.word32 0 x10000 DR:.word32 0 x10008 .text main: ld r4,A(r0);r4(A) ld r5,B(r0);r5(B) dadd r3,r4,r5;r3r4+r5 sd r3,C(r0);Cr3 lwu r1,CR(r0);r1指向Control寄存器 lwu r2,DR(r0);r2指向Data寄存器 daddi r10,r0,1;準(zhǔn)備命令1(將DATA作為無符號整型數(shù)輸出) sd r3,(r2);Data寄存器r3 sd r10,(r1);Control寄存器1 halt,2014.2

27、.17,計算機(jī)系統(tǒng)結(jié)構(gòu),38,MIPS64模擬器演示實驗4存儲器映射輸入/輸出,數(shù)據(jù)地址,0 x00000,,程序存儲器,程序起點,,lwu r24,DATA(r0),lwu r25,CONTROL(r0),指令地址,0 x00000,,,,數(shù)據(jù)存儲器,常規(guī)數(shù)據(jù)區(qū),,0 x10000,0 x10008,sd r9,0(r24),sd r2,0(r25),,,控制寄存器,數(shù)據(jù)寄存器,,,,,,,,,,,,,仿真非智能終端,文件名:testio.s 向虛擬終端輸出字符串(命令4)、畫線、畫彩色點(命令5)。 CONTROL: .word32 0 x10000 DATA: .word32 0 x

28、10008 .text lwu $t8,DATA($zero); $t8 = address of DATA register lwu $t9,CONTROL($zero); $t9 = address of CONTROL register daddi $v0,$zero,1; set for unsigned integer output ld $t1,int($zero) sd $t1,0($t8) ; write integer to DATA register sd $v0,0($t9) ; write

29、 to CONTROL register and make it happen daddi $v0,$zero,2; set for signed integer output ld $t1,int($zero) sd $t1,0($t8) ; write integer to DATA register sd $v0,0($t9) ; write to CONTROL register and make it happen,2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),39,習(xí)題2.14(補(bǔ)充,MIPS64指令系統(tǒng)練習(xí)),人工模擬以下MIPS程序的單條指

30、令運行方式,在表中用16進(jìn)制編碼記錄每一步產(chǎn)生的結(jié)果(不得借助模擬軟件)。 .data n: .word 3 x: .double 0.5 .text LD R1, n(R0) L.D F0, x(R0) DADDI R2, R0, 1 ; R2 1 MTC1 R2, F11 ; F11 1 CVT.D.L F2, F11 ; F2 1 loop: MUL.D F2, F2, F0 ; F2 F2*F0 DADDI R1, R1, -1 ; decrement R1 by 1 BNEZ R1, loop ; if R10 continue HALT ; 此條不填

31、表 提示:MIPS浮點數(shù)的格式是IEEE754,2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),40,習(xí)題2.14(補(bǔ)充)續(xù),2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),41,實驗1:WinMIPS64模擬器練習(xí),實驗要求:用MIPS64指令編寫一個盡可能短小的程序,將事先存放在數(shù)據(jù)區(qū)的4字節(jié)字符串(例如“3901”)轉(zhuǎn)換為一個4位BCD整數(shù),賦給R9。在WinMIPS64模擬器調(diào)試通過。 實驗報告: (1) 程序清單; (2) 運行結(jié)果(每輪循環(huán)末尾R9的數(shù)值,高位的0可以不寫) (3) 程序效率,2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),42,IEEE 754浮點數(shù)標(biāo)準(zhǔn)(補(bǔ)充),目前國際上流行的浮點數(shù)標(biāo)準(zhǔn)是IEE

32、E 754,其基本組成是32bit單精度、64bit雙精度兩種類型。 IEEE 754標(biāo)準(zhǔn)的主要起草者是加州大學(xué)伯克利分校數(shù)學(xué)系教授William Kahan,他幫助Intel公司設(shè)計了8087浮點處理器(FPU),并以此為基礎(chǔ)形成了IEEE 754標(biāo)準(zhǔn),Kahan教授也因此獲得了1987年的圖靈獎。目前幾乎所有包含浮點運算的處理機(jī)都宣稱支持IEEE 754標(biāo)準(zhǔn),包括Intel公司的Pentium、中國的“龍芯”。 IEEE 754的標(biāo)準(zhǔn)文件是ANSI/IEEE Std 754-1985IEEE Standard for Binary Floating-Point Arithmetic,通

33、過Google可搜到pdf文件下載。 Kahan教授的主頁:http://www.cs.berkeley.edu/wkahan/。,2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),43,在IEEE 754浮點數(shù)國際標(biāo)準(zhǔn)中,32位單精度浮點數(shù)和64位雙精度浮點數(shù)的格式分別如下: 對于單精度浮點數(shù),階碼用移-127碼表示,即階碼的0255分別表示階碼的真值為-127128。尾數(shù)(原碼)用1位符號位、23位小數(shù)和1位隱藏的整數(shù)共25位表示。尾數(shù)的基值和階碼的基值都是2。 當(dāng)0

34、014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),44,IEEE 754浮點數(shù)標(biāo)準(zhǔn)(續(xù)2),當(dāng)e=255,且m0時,表示一個非數(shù)NaN(Not-a-Number)。NaN可能是在許多非確定的情況下,如零除以零、求負(fù)數(shù)的平方根等產(chǎn)生的結(jié)果。 當(dāng)e=255,且m=0時,表示一個無窮數(shù):N=(-1)s。注意+和-的表示是不同的。 當(dāng)e=0,且m0時,表示規(guī)格化浮點數(shù):N=(-1)s2-126(0.m)。 當(dāng)e=0,且m=0時,表示浮點數(shù)零:N=(-1)s0。注意+0與-0的表示是不同的。 對于64位雙精度浮點數(shù),階碼用移-1023碼表示,其他規(guī)定與單精度浮點數(shù)類似。,2014.2.17,計算機(jī)系統(tǒng)結(jié)構(gòu),45,各次作業(yè)應(yīng)交的內(nèi)容,作業(yè)2(第2次課),2.14(補(bǔ)充),實驗1,

展開閱讀全文
溫馨提示:
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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!