




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
計算機系統結構
主講人:陳儉喜計算機學院武漢光電國家實驗室信息存儲部chenjx@QQ群:279749742ComputerArchitecture第1章計算機系統結構的基礎知識
(1)計算機系統的多級層次模型,計算機系統結構的廣義定義與狹義定義,與組織、實現的關系;(2)計算機系統結構的分類;(3)計算機系統設計的定量原理
Amdahl定律 CPU性能公式
平均時鐘周期數CPI
每秒百萬指令數MIPS(4)執行時間、吞吐率和基準測試程序;(5)馮.諾依曼結構的特點;(6)并行性的等級與技術途徑。作業:1.7,1.10,1.11,下周一上課的時候交作業
計算機系統設計的定量原理(1)Makethecommoncasefaster|AmdahlCPU性能公式CPU時間=
(CPIi
ICi)/時鐘頻率CPI=
(CPIi
ICi)/IC=
(CPIi
ICi/IC)CPU時間=CPIIC
時鐘周期時間
;MIPS106=指令條數執行時間CPU時鐘周期數=指令條數106/ffCPI=106程序的執行時間Te=MIPS指令條數106計算機系統設計的定量原理(2)MIPS(MillionInstructionsPerSecond)AboutMIPS2.1 指令系統結構的分類2.2 尋址方式2.3 指令系統的設計與優化2.4指令系統的發展和改進2.5 操作數的類型和大小2.6 MIPS指令系統結構作業:補充習題2.14,實驗1,要求見群共享
第2章指令系統的設計2.1指令系統結構的分類先考慮如下問題:1.指令是什么?2.和高級語言(C語言)的差別?3.一條指令應包含哪些內容?OperationOprand2.3指令系統的設計與優化操作類型實例算術和邏輯運算算術運算和邏輯操作:加,減,乘,除,與,或等數據傳輸load,store控制分支,跳轉,過程調用和返回,自陷等系統操作系統調用,虛擬存儲器管理等浮點浮點操作:加,減,乘,除,比較等十進制十進制加,十進制乘,十進制到字符的轉換等字符串字符串移動,字符串比較,字符串搜索等圖形像素操作,壓縮/解壓操作等尋址方式指令實例含義寄存器尋址ADDR1,R2Regs[R1]←Regs[R1]+Regs[R2]立即值尋址ADDR3,#6Regs[R3]←Regs[R3]+6偏移尋址ADDR3,120(R2)Regs[R3]←Regs[R3]+Mem[120+Regs[R2]]寄存器間接尋址ADDR4,(R2)Regs[R4]←Regs[R4]+Mem[Regs[R2]]索引尋址ADDR4,(R2+R3)Regs[R4]←Regs[R4]+Mem[Regs[R2]+Regs[R3]]直接尋址或絕對尋址ADDR4,(1010)Regs[R4]←Regs[R4]+Mem[1010]存儲器間接尋址ADDR2,@(R4)Regs[R2]←Regs[R2]+Mem[Mem[Regs[R4]]]自增尋址ADDR1,(R2)+Regs[R1]←Regs[R1]+Mem[Regs[R2]]Regs[R2]←Regs[R2]+d自減尋址ADDR1,-(R2)Regs[R2]←Regs[R2]-dRegs[R1]←Regs[R1]+Mem[Regs[R2]]縮放尋址ADDR1,80(R2)[R3]Regs[R1]←Regs[R1]+Mem[80+Regs[R2]+Regs[R3]*d]2.2尋址方式一個需要注意的問題:物理地址空間的信息如何存放?如何在存儲器中存放不同寬度的信息?2.2尋址方式信息寬度不超過主存寬度的信息必須存放在一個存儲字內,不能跨邊界。必須做到:信息在主存中存放的起始地址必須是該信息寬度(字節數)的整數倍信息存儲的整數邊界概念滿足以下條件字節信息的起始地址為:×…××××半字信息的起始地址為:×…×××0單字信息的起始地址為:×…××00雙字信息的起始地址為:×…×000
存在存儲空間的浪費,但保證訪問速度。2.2尋址方式2.3指令系統的設計與優化在設計指令系統時,有兩種截然不同的設計策略。(產生了兩類不同的計算機系統)CISC(復雜指令系統計算機)增強指令功能,把越來越多的功能交由硬件來實現,并且指令的數量也是越來越多。RISC(精簡指令系統計算機)盡可能地把指令系統簡化,不僅指令的條數少,而且指令的功能也比較簡單。
2.3.3指令操作碼的優化───3種方法(P37)指令操作碼的編碼方法有3種:定長編碼,Huffman編碼,擴展編碼。1.定長編碼(P40)
就是所有指令的操作碼使用相同位數,其最小碼長等于式中是平均碼長,是第i種指令的碼長,n是指令總數。例2.0已知n=15,求定長編碼的最小平均碼長。解:這種編碼方式沒有對操作命令中的冗余信息進行壓縮,程序占用的空間比后2種編碼都大。但是每條指令中的操作碼位數固定,CPU的指令譯碼電路可以設計得簡單而快速,所以在追求速度的RISC計算機上被普遍采用。2.Huffman編碼(P38)Huffman壓縮概念(最佳編碼定理):當用n個長度不等的代碼分別代表n種發生概率不等的事件時,按照短代碼給高概率事件、把長代碼給低概率事件的原則分配,可使平均碼長達到最低。3.擴展編碼方法(等長擴展法,P39)擴展編碼方法是等長編碼與Huffman編碼的折中,在CISC機器中常常使用(如Intel80x86系列處理機)。用碼長表示:例如4-8-12法。這并不能說明具體編碼方法,例如下面兩種編碼方法都是4-8-12法。用碼點數表示:例如15/15/15法,8/64/512法15/15/15法,每一種碼長都有4位可編碼位(前頭可以有相同的擴展標識前綴),可產生16個碼點(即編碼組合),但是至多只能使用其中15個來表示事件,留下1個或多個碼點組合作為更長代碼的擴展標識前綴。已經用來表示事件的碼點組合不能再作為其它更長代碼的前導部分,否則接收者會混淆。這就是“非前綴原則”。8/64/512法,每一種碼長按4位分段,每一段中至少要留下1位或多位作為擴展標識。各段剩下的可編碼位一起編碼,所產生的碼點用來對應被編碼事件。每一段中的標識位指出后面還有沒有后續段。以3-6-9位為例36bit目標:平均碼長最小化33bit平均碼長=P1l1+P2l2+……+P84l8430bit27bit24bit21bit18bit15bit12bit9bit6bit3bit7/7/7法碼長分布7條7條7條7條7條7條7條7條7條7條7條7條9bit6bit3bit4/16/64法碼長分布4條16條64條指令頻度分布懸殊
P1
……P84指令頻度分布均勻
P1
……P84兩種等長擴展碼適用性比較4.編碼方法性能指標信息量:根據信息論的基本知識,在n種可能發生的事件集合中,報告第i種事件發生的消息中包含的信息量為其中Pi是第i種事件發生的先驗概率,a是編碼基值(2進制bit,a=2)。信息量的單位是表示位數(最少所需位數)。這個定義式表明事件的發生概率越低,關于它的消息中的信息量越大。熵(entropy)──平均信息量:一個消息源對n種事件發布的消息的信息量平均值,記為平均碼長:各事件編碼長度的數學期望。信息冗余量:它表明消息編碼中“無用成分”所占的百分比。從減少存儲與傳輸量的角度看,編碼方法的平均碼長越短越好。但是平均碼長不可能無限制縮短,它的下限就是熵(即R=0時)。如果短于熵就一定會丟失有用信息(即混淆不同指令),這是不允許的。例2.1(補充,教材P38的例2.1自己閱讀)已知頻度序列為0.1,0.1,0.15,0.15,0.2,0.3,求Huffman編碼、等長擴展3/3/3碼、定長編碼、三者的平均碼長、信息冗余量以及熵。解:
熵H=–(2×0.1×log20.1+2×0.15×log20.15+0.2×log20.2+0.3×log20.3)
≈2.47
根據Huffman編碼方法作Huffman樹如圖2.2所示,三種編碼方法的結果列于表2.1中。表2.1Huffman編碼、等長擴展3/3/3碼及定長編碼2.4指令系統的發展和改進CISC指令系統結構存在的問題
(1979年開始,Patterson等人的研究)各種指令的使用頻度相差懸殊,許多指令很少用。據統計:只有20%的指令使用頻度比較高,占運行時間的80%。而其余80%的指令只在20%的運行時間內才會用到。使用頻度高的指令也是最簡單的指令。2.4.2沿RISC方向發展和改進指令系統執行頻度排序80x86指令指令執行頻度(占執行指令總數的百分比)1load22%2條件分支20%3比較16%4store12%5加8%6與6%7減5%8寄存器-寄存器間數據移動4%9調用子程序1%10返回1%合計95%Intel80x86最常用的10條指令2.4指令系統的發展和改進指令系統龐大,指令條數很多,許多指令的功能又很復雜,使得控制器硬件非常復雜。
導致的問題:占用了大量的芯片面積(如占用CPU芯片總面積的一半以上)增加了研制時間和成本,容易造成設計錯誤。許多指令由于操作繁雜,其CPI值比較大,執行速度慢。由于指令功能復雜,規整性不好,不利于采用流水技術來提高性能。2.4指令系統的發展和改進設計RISC機器遵循的原則指令條數少、指令功能簡單。只選取使用頻度很高的指令,在此基礎上補充一些最有用的指令;采用簡單而又統一的指令格式,并減少尋址方式;指令字長都為32位或64位;指令的執行在單個機器周期內完成;
(采用流水線機制)只有load和store指令才能訪問存儲器,其它指令的操作都是在寄存器之間進行;
(即采用load-store結構)大多數指令都采用硬連邏輯來實現;2.4指令系統的發展和改進強調優化編譯器的作用,為高級語言程序生成優化的代碼;充分利用流水技術來提高性能。早期的RISC微處理器1981年,Berkeley分校的Patterson等人的32位微處理器RISCI:31條指令,指令字長都是32位,78個通用寄存器,時鐘頻率為8MHz;控制部分所占的芯片面積只有約6%。商品化微處理器MC68000和Z8000分別為50%和53%;性能比MC68000和Z8000快3~4倍。2.4指令系統的發展和改進1983年的RISCⅡ:指令條數為39,通用寄存器個數為138,時鐘頻率為12MHz。后來發展成了Sun公司的SPARC系列微處理器。1981年,Stanford大學Hennessy等人的MIPS后來發展成了MIPSRxxx系列微處理器。IBM的801共同特點:采用load-store結構指令字長為32位采用高效的流水技術32個64位通用寄存器(GPRs)R0,R1,…,R31也稱為整數寄存器R0的值永遠是032個64位浮點數寄存器(FPRs)F0,F1,…,F312.6MIPS指令系統結構介紹MIPS64的一個子集,簡稱為MIPS。2.6.1MIPS的寄存器2.6MIPS指令系統結構用來存放32個單精度浮點數(32位),也可以用來存放32個雙精度浮點數(64位)。存儲單精度浮點數(32位)時,只用到FPR的一半,其另一半沒用。一些特殊寄存器它們可以與通用寄存器交換數據。例如浮點狀態寄存器:用來保存有關浮點操作結果的信息。2.6MIPS指令系統結構MIPS的數據表示整數字節(8位)半字(16位)字(32位)雙字(64位)浮點數單精度浮點數(32位)雙精度浮點數(64位)字節、半字或者字在裝入64位寄存器時,用零擴展或者用符號位擴展來填充該寄存器的剩余部分。裝入以后,對它們將按照64位整數的方式進行運算。2.6.2MIPS的數據表示2.6MIPS指令系統結構立即數尋址與偏移量尋址;
寄存器間接尋址是通過把0作為偏移量來實現的;
16位絕對尋址是通過把R0(其值永遠為0)作為基址寄存器來完成的;MIPS的存儲器是按字節尋址的,地址為64位;所有存儲器訪問都必須是邊界對齊的。MIPS的存儲器地址采用高端字節表示順序(bigendian,又稱“大尾端排序”),即用bit63表示最低位,而bit0表示最高位;存儲多字節數據時,高字節存放在低地址,…。與之相反的是,Intel80x86處理機采用低端字節表示順序(smallendian,又稱“小尾端排序”)2.6.3MIPS的數據尋址方式2.6MIPS指令系統結構尋址方式編碼到操作碼中所有的指令都是32位的操作碼占6位3種指令格式
3種格式中,同名字段的位置固定不變。2.6.4MIPS的指令格式MIPS指令格式有三種指令格式R-Type兩個操作數和結果都在寄存器的運算指令。如:subrd,rs,rtI-Type運算指令:一個寄存器、一個立即數。如:orirt,rs,imm16LOAD和STORE指令。如:lwrt,rs,imm16條件分支指令。如:beqrs,rt,imm16J-Type無條件跳轉指令。如:jtargetoprsrtrdshamtfunc0611162126316bits6bits5bits5bits5bits5bitsR-Type指令oprsrtimmediate0162126316bits16bits5bits5bitsI-Type指令optargetaddress026316bits26bitsJ-Type指令所有指令都是32位寬,須按字地址對齊MIPS指令字段含義OP:操作碼rs:第一個源操作數寄存器rt:第二個源操作數寄存器rd:結果寄存器shamt:移位指令 的位移量func:R-Type指令的OP字段是特定的“000000”,具體操作由func字段給定。例如:func=“100000”時,表示“加法”運算。immediate:立即數或load/store指令和分支指令的偏移地址targetaddress:無條件轉移地址的低26位。將PC高4位拼上26位直接地址,最后添2個“0”就是32位目標地址。為何最后兩位要添“0”?oprsrtrdshamtfunc0611162126316bits6bits5bits5bits5bits5bitsR-Type指令oprsrtimmediate0162126316bits16bits5bits5bitsI-Type指令optargetaddress026316bits26bitsJ-Type指令操作碼的不同編碼定義不同的含義,操作碼相同時,再由功能碼定義不同的含義!指令按字地址對齊,所以每條指令的地址都是4的倍數(最后兩位為0)。立即尋址寄存器尋址:R-type基址尋址:I-typePC相對尋址偽直接尋址(pseudodirectaddressing)注意:字長32位26位形式地址左移2位(字對準),與PC的高4位拼接ByteHalfwordWordRegistersMemoryMemoryWordMemoryWordRegisterRegister1.
Immediate
addressing2.
Register
addressing3.
Base
addressing4.
PC-relative
addressing5.
Pseudodirect
addressingoprsrtoprsrtoprsrtopoprsrtAddressAddressAddressrd.
.
.functImmediatePCPC++
MIPS尋址模式MIPSAddressingModes(尋址方式)immedoprsrtregisterBase或index+MemoryimmedoprsrtImmediateimmedoprsrtPC+4PC-relative+MemoryI-format:oprsrtrdregisterRegisterfuncR-format:smt655565J-format:opaddr.MemoryPseudodirectB/HW/WByte/HalfWord/Word2.6MIPS指令系統結構MIPS指令可以分為四大類load和storeALU操作分支與跳轉浮點操作符號的意義x←ny:從y傳送n位到xx,y←z:把z傳送到x和y2.6.5MIPS的操作2.6MIPS指令系統結構下標:表示字段中具體的位;對于指令和數據,按從最高位到最低位(即從左到右)的順序依次進行編號,最高位為第0位,次高位為第1位,依此類推。下標可以是一個數字,也可以是一個范圍。例如:Regs[R4]0:寄存器R4的符號位
Regs[R4]56-63:R4的最低字節Mem:表示主存;按字節尋址,可以傳輸任意個字節。上標:用于表示對字段進行復制的次數。例如:0
32:一個32位長的全0字段2.6MIPS指令系統結構符號##:用于兩個字段的拼接,并且可以出現在數據傳送的任何一邊。舉例:R8、R10:64位的寄存器,則Regs[R8]32-63←32
(Mem[Regs[R6]]0)24
##Mem[Regs[R6]]表示的意義是:以R6的內容作為地址訪問內存,得到的字節按符號位擴展為32位后存入R8的低32位,R8的高32位(即Regs[R8]0-31)不變。
load和store指令指令舉例指令名稱含義LDR2,20(R3)裝入雙字Regs[R2]←64Mem[20+Regs[R3]]LWR2,40(R3)裝入字Regs[R2]←64(Mem[40+Regs[R3]]0)32##Mem[40+Regs[R3]]LBR2,30(R3)裝入字節Regs[R2]←64(Mem[30+Regs[R3]]0)56##Mem[30+Regs[R3]]LBUR2,40(R3)裝入無符號字節Regs[R2]←64056##Mem[40+Regs[R3]]LHR2,30(R3)裝入半字Regs[R2]←64(Mem[30+Regs[R3]]0)48##Mem[30+Regs[R3]]##Mem[31+Regs[R3]]L.SF2,60(R4)裝入半字Regs[F2]←64Mem[60+Regs[R4]]##032L.DF2,40(R3)裝入雙精度浮點數Regs[F2]←64Mem[40+Regs[R3]]SDR4,300(R5)保存雙字Mem[300+Regs[R5]]←64Regs[R4]SWR4,300(R5)保存字Mem[300+Regs[R5]]←32Regs[R4]S.SF2,40(R2)保存單精度浮點數Mem[40+Regs[R2]]←32Regs[F2]0··31
SHR5,502(R4)保存半字
Mem[502+Regs[R4]]←16Regs[R5]48··.63
ALU指令寄存器-寄存器型(RR型)指令或立即數型算術和邏輯操作:加、減、與、或、異或和移位等指令舉例指令名稱含義DADDU R1,R2,R3無符號加Regs[R1]←Regs[R2]+Regs[R3]DADDIU R4,R5,#6加無符號立即數Regs[R4]←Regs[R5]+6LUI R1,#4把立即數裝入到一個字的高16位Regs[R1]←032##4##016DSLL R1,R2,#5邏輯左移Regs[R1]←Regs[R2]<<5DSLTR1,R2,R3置小于If(Regs[R2]<Regs[R3])Regs[R1]←1elseRegs[R1]←02.6MIPS指令系統結構R0的值永遠是0,它可以用來合成一些常用的操作。例如:DADDIUR1,R0,#100
給寄存器R1裝入常數100DADDR1,R0,R2
把寄存器R2中的數據傳送到寄存器R12.6MIPS指令系統結構由一組跳轉和一組分支指令來實現控制流的改變典型的MIPS控制指令2.6.6MIPS的控制指令指令舉例指令名稱含義Jname跳轉PC36··63←name<<2JALname跳轉并鏈接Regs[R31]←PC+4;PC36··63←name<<2;((PC+4)-227)≤name<((PC+4)+227)JALRR3寄存器跳轉并鏈接Regs[R31]←PC+4;PC←Regs[R3]JRR5寄存器跳轉PC←Regs[R5]BEQZR4,name等于零時分支if(Regs[R4]==0)PC←name;((PC+4)-217)≤name<((PC+4)+217)BNER3,R4,name不相等時分支if(Regs[R3]!=Regs[R4])PC←name((PC+4)-217)≤name<((PC+4)+217)MOVZR1,R2,R3等于零時移動if(Regs[R3]==0)Regs[R1]←Regs[R2]2.6MIPS指令系統結構跳轉指令根據跳轉指令確定目標地址的方式不同以及跳轉時是否鏈接,可以把跳轉指令分成4種。確定目標地址的方式把指令中的26位偏移量左移2位(因為指令字長都是4個字節)后,替換程序計數器的低28位;間接跳轉:由指令中指定的一個寄存器來給出轉移目標地址。跳轉的兩種類型簡單跳轉:把目標地址送入程序計數器。跳轉并鏈接:把目標地址送入程序計數器,把返回地址(即順序下一條指令的地址)放入寄存器R31。2.6MIPS指令系統結構分支指令(條件轉移)分支條件由指令確定例如:測試某個寄存器的值是否為零提供一組比較指令,用于比較兩個寄存器的值。例如:“置小于”指令有的分支指令可以直接判斷寄存器內容是否為負,或者比較兩個寄存器是否相等。分支的目標地址由16位帶符號偏移量左移兩位后和PC相加的結果來決定一條浮點條件分支指令:通過測試浮點狀態寄存器來決定是否進行分支。2.6MIPS指令系統結構由操作碼指出操作數是單精度(SP)或雙精度(DP)后綴S:表示操作數是單精度浮點數后綴D:表示是雙精度浮點數浮點操作包括加、減、乘、除,分別有單精度和雙精度指令。浮點數比較指令根據比較結果設置浮點狀態寄存器中的某一位,以便于后面的分支指令BC1T(若真則分支)或BC1F(若假則分支)測試該位,以決定是否進行分支。2.6.7MIPS的浮點操作LoongsonisaMIPS-compatiblefamilyofmicroprocessorsdesignedbytheChineseAcademyofSciences.TheinternalmicroarchitectureofLoongsonmicroprocessorswasdesignedindependentlybytheChinese,andearlyimplementationsofthefamilylackedfourinstructionspatentedbyMIPSTechnologies.InJune2009,ICTlicencedtheMIPS32andMIPS64architecturesdirectlyfromMIPSTechnologies.--fromwikipediaMeaninglessIndicator
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農殘檢測理論試題及答案
- 總工會試題及答案
- 深入理解護士資格證考試試題及答案
- 鄉村調解員工試題及答案
- 組建高效能團隊的管理方案研究試題及答案
- 嬰幼兒安全護理要點試題及答案
- 乳山幼教面試題及答案
- 醫學理論基礎知識考核試題及答案
- 成功之道的福建事業單位考試試題及答案
- 教師資格筆試全覆蓋知識點試題及答案
- 第4章 毒作用機制毒作用影響因素
- GA/T 1433-2017法庭科學語音同一認定技術規范
- 中醫藥方大全教學教材
- 滅火器檢查表
- 保留脾臟胰體尾切除術課件
- 會計報表 資產負債表02
- 成人與小兒手術麻醉前禁食指南
- 急性創傷搶救流程格式
- 鐵礦石外貿合同中英對照
- 《統計學》完整ppt課件(PPT 228頁)
- 公路工程全過程跟蹤審計服務方案
評論
0/150
提交評論