第二章計算機的語言_第1頁
第二章計算機的語言_第2頁
第二章計算機的語言_第3頁
第二章計算機的語言_第4頁
第二章計算機的語言_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第二章計算機的語言12.1引言指令集:一個給定的計算機體系結(jié)構(gòu)所包含的指令集合。匯編語言:編程的書寫形式機器語言:計算機所能識別的形式本章的講解方法:以MIPS為例,講解符合設(shè)備簡單性原則的指令集,以及它的硬件實現(xiàn)和與高級語言的關(guān)系不同的計算機有不同的指令集,但它們非常相似。早期的計算機有很簡單的指令集許多現(xiàn)代計算機也有很簡單的指令集(RISC:ReducedInstructionSetComputer)。22.1引言指令集:一個給定的計算機體系結(jié)構(gòu)所包含的指令集合。匯編語言:編程的書寫形式機器語言:計算機所能識別的形式本章的講解方法不同的計算機有不同的指令集,但它們非常相似。早期的計算機有很簡單的指令集許多現(xiàn)代計算機也有很簡單的指令集(RISC:ReducedInstructionSetComputer)。所有計算機都基于相似基本原理的硬件技術(shù)構(gòu)造一些基本操作是必須的32.1引言指令集:一個給定的計算機體系結(jié)構(gòu)所包含的指令集合。匯編語言:編程的書寫形式機器語言:計算機所能識別的形式本章的講解方法不同的計算機有不同的指令集,但它們非常相似。早期的計算機有很簡單的指令集許多現(xiàn)代計算機也有很簡單的指令集(RISC:ReducedInstructionSetComputer)。1.優(yōu)先選取使用頻率最高的一些簡單指令,以及一些很有用但不復(fù)雜的指令,避免復(fù)雜指令。2.大多數(shù)指令在一個時鐘周期內(nèi)完成,必須采用流水線技術(shù)。3.只有取數(shù)/存數(shù)指令訪問存儲器,其余指令操作在寄存器間進行。4.指令長度固定,指令格式種類少,尋址方式種類少。5.采用硬布線控制邏輯,少用或不用微程序控制。6.注重編譯優(yōu)化42.1引言指令集:一個給定的計算機體系結(jié)構(gòu)所包含的指令集合。匯編語言:編程的書寫形式機器語言:計算機所能識別的形式本章的講解方法不同的計算機有不同的指令集,但它們非常相似。早期的計算機有很簡單的指令集許多現(xiàn)代計算機也有很簡單的指令集(RISC:ReducedInstructionSetComputer)。計算機設(shè)計者的共同目標:找到一種語言,方便編譯和硬件設(shè)計,使性能最佳,成本功耗最低。基本點:符合“設(shè)備簡單性”的一種指令集。52.1引言存儲程序的概念:P43下MIPS簡介:MIPS是世界上很流行的一種RISC處理器。MIPS的意思“無內(nèi)部互鎖流水級的微處理器”(Microprocessorwithoutinterlockedpipedstages)

,在嵌入式領(lǐng)域應(yīng)用很廣符合很多現(xiàn)代ISAs的設(shè)計思想62.2計算機硬件的操作MIPS匯編指令圖2-1是MIPS匯編語言指令從圖中可見與加法addabc相似的指令如:subaddiandornor等都是三個操作數(shù)(兩個運算數(shù),一個保存結(jié)果)設(shè)計原則1:簡單源于規(guī)整規(guī)整使得硬件實現(xiàn)簡單,例如:操作數(shù)數(shù)目可變使得硬件設(shè)計復(fù)雜性更大。簡單使得更好的性能成本更低7例:b,c,d,e之和放于a中。adda,b,c#a=b+cadda,a,d#a=a+dadda,a,e#a=a+e

每條MIPS算術(shù)運算指令只執(zhí)行一個操作

一行寫一條指令#后是注釋8二.高級語言與匯編語言之間的關(guān)系例1:c或java程序a=b+cd=a-e

匯編程序adda,b,csubd,a,e編譯器9例2:c或java程序f=(g+h)-(i+j)

匯編程序addt0,g,haddt1,i,jsubf,t0,t1計算機中的操作數(shù)是怎么存的?102.3計算機硬件的操作數(shù)高級語言表達式的變量數(shù)量可以不受限制匯編語言算術(shù)邏輯運算指令的變量對應(yīng)寄存器(從圖2-1中可見MIPS的算術(shù)運算、邏輯運算指令都是針對寄存器操作的),所以數(shù)量受限。

寄存器操作數(shù)(尋址方式:寄存器尋址)11MIPS的寄存器設(shè)置MIPS有32×32-bit個寄存器用于存儲經(jīng)常訪問的數(shù)據(jù)編號為0到3132-bit數(shù)據(jù)稱為一個字(a“word”),32位為字長(定義見P46下)寄存器命名:(與寄存器號對應(yīng)關(guān)系見P71圖2-14或封面第二列下)$t0,$t1,…,$t9編譯時臨時寄存器$s0,$s1,…,$s7用于存儲變量12寄存器設(shè)置多少個為宜?2.3計算機硬件的操作數(shù)設(shè)計原則2:越少越快。

寄存器太多,時鐘周期加長——更遠的電信號傳輸距離

選32而非31∵指令格式位數(shù)(2的次方)

例:C程序:f=(g+h)-(i+j)

剛才的初步分析:addt0,g,haddt1,i,jaddf,t0,t1對應(yīng)寄存器:

add$t0,$s1,$s2add$t1,$s3,$s4add$s0,$t0,$t113寄存器尋址示意圖P79以addrd,rs,rt為例,其指令格式:14操作碼rsrtrdfunc5位5位5位寄存器5位用于指明寄存器號。因為32(25)個寄存器需要5位。寄存器寄存器運算器數(shù)據(jù)流走向指明2.3.1存儲器操作數(shù)(尋址方式:基址尋址)復(fù)雜數(shù)據(jù)結(jié)構(gòu)存儲于存儲器(內(nèi)存)數(shù)組、結(jié)構(gòu)、動態(tài)數(shù)據(jù)如前所述MIPS的算術(shù)運算、邏輯運算指令都是針對寄存器操作的,所以需要數(shù)據(jù)傳輸類指令用于內(nèi)存和寄存器交換數(shù)據(jù)。從內(nèi)存中Load數(shù)據(jù)到寄存器Store寄存器中的運算結(jié)果到內(nèi)存存儲器(內(nèi)存,DRAM)是按地址訪問的。地址(P47下)15例:取數(shù)指令lw$s1,20($s2)#$s1=memory[$s2+20]

例:求g=h+A[8]lw$t0,8[$s3]#$s3存放數(shù)組A的起始地址,實現(xiàn)$t0=A[8]add$s1,$s2,$t0#$s1對應(yīng)g,$s2對應(yīng)h,實現(xiàn)g=h+A[8]16基址尋址示意圖以lwrt,offset(rs)為例:17操作碼rsrtOffset(16位)寄存器+內(nèi)存A[8]…A[0]寄存器指明數(shù)據(jù)走向?qū)ぶ贩秶?rs)+216編址單位字節(jié)地址與字地址

以_____為單位進行編址,稱為_____地址。MIPS采用字節(jié)地址(8位一個地址),所以MIPS實際存儲情況如圖2-3。(MIPS的字長是32位,與寄存器寬度一致)18C程序: g=h+A[8];g存于$s1,h存于$s2,A的基址存于$s3MIPS對應(yīng)代碼: lw$t0,32($s3)#loadword

add$s1,$s2,$t0基址寄存器(baseregister)偏移量(offset)19字、半字、字節(jié)的存儲對于字長32位的機器,實際數(shù)據(jù)字長并非都是32位,比如ASCII為8位,因而可能出現(xiàn)8、16、32等長度的數(shù)據(jù)。對齊限制:數(shù)據(jù)地址與存儲器的自然邊界對齊的要求。即:數(shù)據(jù)都從某段的開始排列,而不是一個一個擠在一起排列。(如圖右所示,所以,MIPS字的起始地址都是4的倍數(shù),上例偏移量4*8=32)2001238位8位8位8位0483281632168√MIPS采用大端編址,見附錄B,P512:使用最左邊字節(jié)地址做為字的地址。(與大小沒關(guān)系)21例:存數(shù)指令C代碼: A[12]=h+A[8];h存于$s2,A的基地址存于$s3編譯成MIPS代碼:A數(shù)組的第8個分量的偏移量為32 lw$t0,32($s3)#loadword

add$t0,$s2,$t0#$t0=h+A[8]

sw$t0,48($s3)#storeword22寄存器vs.存儲器訪問寄存器快于訪問存儲器寄存器中的數(shù)據(jù)更易被利用。一條算術(shù)運算指令可以完成取兩個寄存器操作數(shù),運算,并將結(jié)果存回寄存器。存儲器操作必須用loads或stores指令,且無法在同一條指令中其運算。所以,做同樣的事需更多指令。編譯器盡力多地使用寄存器只將不常使用的變量存回存儲器(spillingregister,寄存器溢出)寄存器優(yōu)先:快,吞吐率高,功耗低,數(shù)據(jù)易于利用。232.3.2常數(shù)或立即數(shù)操作數(shù)(立即尋址)避免從內(nèi)存中取得常數(shù)而增加加立即數(shù)指令:addi$s3,$s3,4在指令中給出操作數(shù)無減立即數(shù)指令,只需使用減數(shù)的相反數(shù)即可。addi$s2,$s1,-1常數(shù)操作出現(xiàn)頻率高設(shè)計原則3:加速執(zhí)行常用操作24立即尋址示意圖以addirt,rs,imm為例:

25操作碼rsrtImm立即數(shù)寄存器寄存器+MIPS將寄存器$zero恒置為0(不可改動為其他數(shù)),以便加速某些操作:

add$t2,$s1,$zero#寄存器$s1的數(shù)存入$t226作業(yè)四2.12.5.12.5.2下周一小測驗第一章下周一交第一章作業(yè)27小測驗第一章一.設(shè)有相同指令集的兩種不同實現(xiàn)計算機M1和M2,該指令集中有A、B、C三類指令,M1的時鐘頻率為80MHz,M2的時鐘頻率為100MHz。每類指令的CPI和某程序中三類指令占總指令數(shù)的百分比見下表:28指令類別計算機M1

溫馨提示

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

最新文檔

評論

0/150

提交評論