計(jì)算機(jī)組成與體系結(jié)構(gòu) 課件 07運(yùn)算方法與運(yùn)算器、08指令系統(tǒng)與匯編語(yǔ)言_第1頁(yè)
計(jì)算機(jī)組成與體系結(jié)構(gòu) 課件 07運(yùn)算方法與運(yùn)算器、08指令系統(tǒng)與匯編語(yǔ)言_第2頁(yè)
計(jì)算機(jī)組成與體系結(jié)構(gòu) 課件 07運(yùn)算方法與運(yùn)算器、08指令系統(tǒng)與匯編語(yǔ)言_第3頁(yè)
計(jì)算機(jī)組成與體系結(jié)構(gòu) 課件 07運(yùn)算方法與運(yùn)算器、08指令系統(tǒng)與匯編語(yǔ)言_第4頁(yè)
計(jì)算機(jī)組成與體系結(jié)構(gòu) 課件 07運(yùn)算方法與運(yùn)算器、08指令系統(tǒng)與匯編語(yǔ)言_第5頁(yè)
已閱讀5頁(yè),還剩111頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

運(yùn)算方法與運(yùn)算器計(jì)算機(jī)組成與體系結(jié)構(gòu)定點(diǎn)運(yùn)算及其運(yùn)算器定點(diǎn)加減法補(bǔ)碼加法:[X

Y]補(bǔ)

[X]補(bǔ)

[Y]補(bǔ)

補(bǔ)碼減法:[X

Y]補(bǔ)

[X]補(bǔ)

[

Y]補(bǔ)

由[Y]補(bǔ)求[

Y]補(bǔ)補(bǔ):求一個(gè)數(shù)相反數(shù)的補(bǔ)碼只需連符號(hào)在內(nèi)依次按位取反,末位加1即可補(bǔ)碼加減運(yùn)算的規(guī)則參加運(yùn)算的操作數(shù)用補(bǔ)碼表示。補(bǔ)碼的符號(hào)位與數(shù)值位同時(shí)進(jìn)行加運(yùn)算。若做加,則兩數(shù)補(bǔ)碼直接相加;若做減,將減數(shù)補(bǔ)碼連同符號(hào)位一起按位取反,末位加1,然后再與被減數(shù)相加。運(yùn)算結(jié)果即為和/差的補(bǔ)碼。溢出所謂溢出是指運(yùn)算結(jié)果超過(guò)了機(jī)器數(shù)能表示的范圍結(jié)果大于機(jī)器所能表示的最大正數(shù),稱為上溢結(jié)果小于機(jī)器所能表示的最小負(fù)數(shù),稱為下溢溢出檢測(cè)雙符號(hào)位法單符號(hào)位法一位二進(jìn)制全加器Ci+1全加器(FA)CiBiSiAi輸入輸出CiAiBiSiCi+10000000110010100110110010101011100111111一位二進(jìn)制全加器實(shí)現(xiàn)Ci+1全加器(FA)CiBiSiAi基本二進(jìn)制加減法器

一位8421-BCD十進(jìn)制加法器

多位十進(jìn)制加法器定點(diǎn)乘除法的實(shí)現(xiàn)方式軟件實(shí)現(xiàn)指令系統(tǒng)中無(wú)乘除法指令程序?qū)崿F(xiàn)硬件實(shí)現(xiàn)在加/減法器的基礎(chǔ)上,增加左移、右移位及其他一些邏輯線路實(shí)現(xiàn)乘法,指令系統(tǒng)中設(shè)置乘除法指令設(shè)置專用的高速陣列乘除運(yùn)算器,指令系統(tǒng)中設(shè)置乘除法指令無(wú)符號(hào)數(shù)乘法被乘數(shù)乘數(shù)部分積乘積原碼一位乘法將被乘數(shù)左移一位相加變?yōu)椴糠址e與被乘數(shù)相加后右移一位將k個(gè)部分積同時(shí)相加轉(zhuǎn)換為k次“累加與右移”,即每一步只求一位乘數(shù)所對(duì)應(yīng)的新部分積,并與原部分積做一次累加,然后右移一次,這樣操作重復(fù)k次,得到最后的乘積一位乘示例原碼一位乘硬件結(jié)構(gòu)圖原碼一位乘流程Booth算法流程Booth算法舉例【例】X=-5(1011),Y=-3(1101),用Booth算法求X·Y。解:[-X]補(bǔ)=0101部分積Q0Q-1說(shuō)明0000

運(yùn)算開始,初始Q-1=001010010110+[-X]補(bǔ)算術(shù)右移1101111101101+[X]補(bǔ)算術(shù)右移001111000111110+[-X]補(bǔ)算術(shù)右移0000111111直接算術(shù)右移[X·Y]補(bǔ)=00001111=+15

原碼兩位乘法乘數(shù)yn-1yn

新的部分積00等于原部分積右移兩位01等于原部分積加被乘數(shù)后右移兩位10等于原部分積加2倍被乘數(shù)后右移兩位11等于原部分積加3倍被乘數(shù)后右移兩位原碼兩位乘法運(yùn)算規(guī)則乘數(shù)判斷位yn-1yn

標(biāo)志位Cj

操作內(nèi)容

000z→2,y→2,Cj保持“0”010z+x→2,y→2,Cj保持“0100z+2x→2,y→2,Cj保持“0”110z-x→2,y→2,置“1”Cj001z+x→2,y→2,置“0”Cj011z+2x→2,y→2,置“0”Cj101z-x→2,y→2,Cj保持“1”111z→2,y→2,Cj保持“1”5×5無(wú)符號(hào)乘法陣列求補(bǔ)器

使用求補(bǔ)器實(shí)現(xiàn)帶符號(hào)乘法無(wú)符號(hào)數(shù)除法除數(shù)部分余部分余商被除數(shù)余數(shù)除數(shù)定點(diǎn)除法的一般性原則定點(diǎn)小數(shù)除法除數(shù)≠0|被除數(shù)|<|除數(shù)|位數(shù)關(guān)系被除數(shù)2n位除數(shù)n位商n位余數(shù)n位定點(diǎn)除法運(yùn)算規(guī)則恢復(fù)余數(shù)法:進(jìn)行每一步運(yùn)算時(shí),不論是否夠減,都將被除數(shù)(或余數(shù))減去除數(shù),若所得符號(hào)位為0(即為正數(shù))表明夠減,上商1,左移一位再做下一步運(yùn)算;若余數(shù)符號(hào)為為1(即為負(fù)數(shù))表明不夠減,因此上商0,由于已做減法,因此要把除數(shù)加回去(恢復(fù)余數(shù)),然后余數(shù)左移一位再做下一步運(yùn)算。加減交替法:當(dāng)余數(shù)為正時(shí),商1,余數(shù)左移一位,減除數(shù);當(dāng)余數(shù)為負(fù)時(shí),商0,余數(shù)左移一位,加除數(shù)。原碼加減交替除法硬件結(jié)構(gòu)圖原碼加減交替除法流程補(bǔ)碼加減交替法運(yùn)算規(guī)則[R]補(bǔ)與[y]補(bǔ)商新余數(shù)[Ri+1]補(bǔ)同號(hào)1[Ri+1]補(bǔ)=2[Ri]補(bǔ)+[-y]補(bǔ)異號(hào)0[Ri+1]補(bǔ)=2[Ri]補(bǔ)+[y]補(bǔ)補(bǔ)碼加減交替除法流程可控加法/減法單元(CAS)除法陣列算術(shù)/邏輯單元(ALU)算術(shù)/邏輯單元(ALU)是計(jì)算機(jī)實(shí)際完成數(shù)據(jù)算術(shù)和邏輯運(yùn)算的部分,是運(yùn)算器的核心部件ALU寄存器寄存器控制器標(biāo)志ALU組成需要考慮的問(wèn)題ALU多功能的實(shí)現(xiàn)二進(jìn)制加減法器只能進(jìn)行算術(shù)運(yùn)算,而不能進(jìn)行邏輯運(yùn)算ALU實(shí)現(xiàn)快速運(yùn)算的方法行波進(jìn)位速度慢計(jì)算的位數(shù)與計(jì)算時(shí)間成正比多功能運(yùn)算的實(shí)現(xiàn)不將輸入直接進(jìn)行全加,而是先組合成由控制參數(shù)控制的組合函數(shù),然后再進(jìn)行全加74181控制參數(shù)與輸入量S0S1YiS2S3Xi00001010110101101174181功能表74181邏輯表達(dá)式化簡(jiǎn),得代入一位全加器的邏輯表達(dá)式得到先行進(jìn)位的實(shí)現(xiàn)將低位進(jìn)位直接傳送到最高進(jìn)位上去行波進(jìn)位公式:先行進(jìn)位公式:四位先行進(jìn)位ALU74181(1)四位先行進(jìn)位ALU74181(2)74181邏輯結(jié)構(gòu)多級(jí)先行進(jìn)位以74181為例,上述進(jìn)位公式可改寫為其中成組先行進(jìn)位邏輯成組先行進(jìn)位實(shí)例內(nèi)部總線單總線結(jié)構(gòu)雙總線結(jié)構(gòu)三總線結(jié)構(gòu)單總線結(jié)構(gòu)雙總線結(jié)構(gòu)三總線結(jié)構(gòu)功能簡(jiǎn)單的運(yùn)算器結(jié)構(gòu)單總線移位乘除運(yùn)算器三總線陣列乘除法運(yùn)算器結(jié)構(gòu)浮點(diǎn)運(yùn)算及其運(yùn)算器浮點(diǎn)運(yùn)算的溢出階碼上溢(Exponentoverflow)+∞或-∞階碼下溢(Exponentunderflow)0尾數(shù)下溢(Significandunderflow)左移,規(guī)格化,舍入尾數(shù)上溢(Significandoverflow)右移,規(guī)格化浮點(diǎn)數(shù)加減運(yùn)算方法0操作數(shù)檢查對(duì)階大階向小階看齊小階向大階看齊尾數(shù)加減舍入與規(guī)格化處理判溢出示例假設(shè)浮點(diǎn)數(shù)階碼、尾數(shù)均用補(bǔ)碼表示,階碼采用雙符號(hào)位,尾數(shù)采用單符號(hào)位,x=2010×0.11011011,y=2100×(-0.10101100),求x+y浮點(diǎn)表示分別為:x=000100.11011011y=001001.01010100(1)對(duì)階x的階碼小,應(yīng)使x的尾數(shù)右移2位,x的階碼加2x=001000.00110110(11)其中(11)表示x的尾數(shù)右移2位后移出的最低兩位數(shù)。(2)尾數(shù)求和0.00110110(11)

1.01010100

1.10001010(11)(3)規(guī)格化處理尾數(shù)運(yùn)算結(jié)果的符號(hào)位與最高數(shù)值位為同值,應(yīng)執(zhí)行左規(guī)處理,結(jié)果為1.00010101(1),階碼為00011。(4)舍入處理采用0舍1入法處理,則應(yīng)進(jìn)1,結(jié)果為1.00010110。(5)判斷溢出階碼符號(hào)位為00,不溢出,故得最終結(jié)果為:x+y=2011×(-0.11101010)浮點(diǎn)數(shù)乘除運(yùn)算方法0操作數(shù)檢查階碼加減尾數(shù)乘除舍入與規(guī)格化處理判溢出常用的舍入方法截?cái)喾ǎ簩⒂A舻哪┪粩?shù)據(jù)右面的數(shù)據(jù)統(tǒng)統(tǒng)截掉,無(wú)論是0還是1。末位恒置1法:將欲保留的末位數(shù)據(jù)恒置1,無(wú)論右面是0還是1,也無(wú)論現(xiàn)在末位的值是0還是1。以上兩種方法很簡(jiǎn)單,但容易產(chǎn)生積累誤差效應(yīng)。0舍1入法:一種比較合理的方法。但當(dāng)尾數(shù)為0.11…1時(shí),會(huì)造成尾數(shù)溢出,從而需要調(diào)整階碼,使運(yùn)算步驟不規(guī)整。查表法浮點(diǎn)運(yùn)算器floatingpointunit,FPU浮點(diǎn)運(yùn)算器通常由處理階碼的和處理尾數(shù)的兩個(gè)定點(diǎn)運(yùn)算器線路組成在早期的小或微型機(jī)中,浮點(diǎn)運(yùn)算器通常以任選件方式提供給用戶,主要用于計(jì)算浮點(diǎn)數(shù)在現(xiàn)代架構(gòu)中,CPU內(nèi)置FPU,浮點(diǎn)運(yùn)算功能會(huì)與SIMD(單指令流多數(shù)據(jù)流)計(jì)算集成在一起SSE指令集取代x87指令集浮點(diǎn)運(yùn)算器示例-Intel80287數(shù)據(jù)

浮點(diǎn)運(yùn)算部件以協(xié)處理器方式和CPU連接,有獨(dú)立的控制邏輯;

8個(gè)80位浮點(diǎn)數(shù)寄存器,精度更高,采用堆棧結(jié)構(gòu)并進(jìn)行了擴(kuò)展;

支持3大類共7種數(shù)據(jù),支持約60條指令;80387NumericDataco-processor指令系統(tǒng)與匯編語(yǔ)言計(jì)算機(jī)組成與體系結(jié)構(gòu)指令系統(tǒng)在計(jì)算機(jī)中的地位一臺(tái)計(jì)算機(jī)的功能是通過(guò)它的指令系統(tǒng)體現(xiàn)出來(lái)的指令系統(tǒng)也是設(shè)計(jì)一臺(tái)計(jì)算機(jī)的需求說(shuō)明指令系統(tǒng)決定了一臺(tái)計(jì)算機(jī)的硬件結(jié)構(gòu)指令和指令系統(tǒng)程序由一個(gè)序列的計(jì)算機(jī)指令組成。指令是計(jì)算機(jī)運(yùn)行的最小的功能單元,是指揮計(jì)算機(jī)硬件運(yùn)行的命令,是由多個(gè)二進(jìn)制位組成的位串,是計(jì)算機(jī)硬件可以直接識(shí)別和執(zhí)行的一個(gè)信息體一臺(tái)計(jì)算機(jī)提供的全部指令構(gòu)成該計(jì)算機(jī)的指令系統(tǒng)指令系統(tǒng)是表征一臺(tái)計(jì)算機(jī)性能的重要因素,它的格式與功能不僅直接影響到機(jī)器的硬件結(jié)構(gòu),而且也直接影響到系統(tǒng)軟件,影響到機(jī)器的適用范圍指令系統(tǒng)的要求完備性:指令齊全,編程方便規(guī)整性:格式與運(yùn)算規(guī)則統(tǒng)一對(duì)稱性:在指令系統(tǒng)中所有的寄存器和存儲(chǔ)器單元都可同等對(duì)待,所有的指令都可使用各種尋址方式勻齊性:一種操作性質(zhì)的指令可以支持各種數(shù)據(jù)類型指令格式和數(shù)據(jù)格式的一致性:指令長(zhǎng)度和數(shù)據(jù)長(zhǎng)度有一定的關(guān)系,以方便處理和存取高效性:占內(nèi)存少,運(yùn)行省時(shí)兼容性:同一系列機(jī)軟件兼容向前(后)兼容向上(下)兼容兼容性系列機(jī):是指基本指令系統(tǒng)相同、基本體系結(jié)構(gòu)相同的一系列計(jì)算機(jī)。推出的機(jī)種指令系統(tǒng)一定包含所有舊機(jī)種的全部指令。向上(下)兼容:指按某檔次機(jī)器編制的程序,可不加修改的在比它高(低)檔的機(jī)器上運(yùn)行。向前(后)兼容:指按某個(gè)時(shí)期投入市場(chǎng)的某種型號(hào)的機(jī)器編制的程序,可不加修改的在比它先(后)投入市場(chǎng)的機(jī)器上運(yùn)行。常用指令輸入設(shè)備輸出設(shè)備入出接口和總線外存設(shè)備主存儲(chǔ)器高速緩存控制器運(yùn)算器ADDSUBANDORMVRRSHRRCLOUTSTOREPUSHJUMPJRCJRNCJRZJRNZCALLRETLOADPOPIN機(jī)器指令設(shè)計(jì)要素操作碼(OperationCode)源操作數(shù)地址(SourceOperandReference)目的操作數(shù)地址(ResultOperandReference)下一條指令的地址(NextInstructionReference)CPU寄存器主存或虛存I/O設(shè)備指令格式操作碼:指明本條指令的操作功能,每條指令有一個(gè)確定的操作碼操作數(shù)地址:說(shuō)明操作數(shù)存放的地址,有時(shí)是操作數(shù)本身指令格式優(yōu)化設(shè)計(jì)的目標(biāo)節(jié)省程序的存儲(chǔ)空間指令格式要盡量規(guī)整,減少硬件譯碼的復(fù)雜程度優(yōu)化后不能降低指令的執(zhí)行速度操作碼

操作數(shù)地址

指令字長(zhǎng)指令字:完整的一條指令的二進(jìn)制表示指令字長(zhǎng):指令字中二進(jìn)制代碼的位數(shù)指令字長(zhǎng)與機(jī)器字長(zhǎng)半字長(zhǎng)、單字長(zhǎng)、雙字長(zhǎng)、多字長(zhǎng)定長(zhǎng)指令字結(jié)構(gòu)變長(zhǎng)指令字結(jié)構(gòu)操作碼組織與編碼定長(zhǎng)的操作碼的組織方案在指令字最高位部分分配固定若干位用于表示操作碼,有利于簡(jiǎn)化計(jì)算機(jī)硬件設(shè)計(jì),提高指令譯碼和識(shí)別速度IBM360機(jī)變長(zhǎng)的操作碼的組織方案在指令字最高位部分用一固定長(zhǎng)度的字段來(lái)表示基本操作碼,而對(duì)于部分操作數(shù)地址位數(shù)可以少的指令,則把另外多位輔助操作碼擴(kuò)充到該操作數(shù)地址字段,即操作碼位數(shù)可變。這種方法在不增加指令字長(zhǎng)的情況下,可表示更多的指令,但增加了譯碼和分析難度,要求更多的硬件支持PDP-11計(jì)算機(jī)操作碼的優(yōu)化表示方法固定長(zhǎng)度操作碼:優(yōu)點(diǎn)是規(guī)整,硬件譯碼簡(jiǎn)單;缺點(diǎn)是浪費(fèi)很多信息量Huffman編碼:平均碼長(zhǎng)最短,信息冗余量小,但操作碼很不規(guī)整擴(kuò)展編碼法:前兩種方法的折中方案,較為常用的是等長(zhǎng)擴(kuò)展法操作數(shù)個(gè)數(shù)與來(lái)源指令操作數(shù)個(gè)數(shù)無(wú)操作數(shù)指令(零地址指令)單操作數(shù)指令(一地址指令)雙操作數(shù)指令(二地址指令)三操作數(shù)指令(二地址指令)多操作數(shù)指令(多地址指令)指令操作數(shù)來(lái)源和去向CPU內(nèi)部的通用寄存器輸入輸出設(shè)備(接口)的一個(gè)寄存器主存儲(chǔ)器的一個(gè)存儲(chǔ)單元OPA1A2OPA1OPOPA1A2A3OPA1A2

更多地址碼優(yōu)化——地址個(gè)數(shù)地址數(shù)目程序長(zhǎng)度程序存儲(chǔ)量程序執(zhí)行速度適用場(chǎng)合三地址短最大一般向量、矩陣運(yùn)算為主二地址一般很大很低一般不宜采用二地址R型一般最小最快多累加器、數(shù)據(jù)傳送較多一地址較長(zhǎng)較大較快連續(xù)運(yùn)算,硬件結(jié)構(gòu)簡(jiǎn)單零地址最長(zhǎng)最小最低嵌套、遞歸、變量較多地址碼優(yōu)化——物理位置存儲(chǔ)器—存儲(chǔ)器(SS)型指令寄存器—寄存器(RR)型指令寄存器—存儲(chǔ)器(RS)型指令操作數(shù)存儲(chǔ)順序Big-Endian:高位字節(jié)存入低地址,低位字節(jié)存入高地址,依次排列。Little-Endian:低位字節(jié)存入低地址,高位字節(jié)存入高地址,反序排列。字地址為低字節(jié)地址IntelLittle-Endian字地址為高字節(jié)地址MotorolaBig-Endian37621540字地址04低字節(jié)04512673字地址04低字節(jié)邊界對(duì)準(zhǔn)地址(十進(jìn)制)

04812162024283236雙字雙字(地址32)雙字雙字(地址24)半字(地址20)半字(地址22)半字(地址16)半字(地址18)字節(jié)(地址8)字節(jié)(地址9)字節(jié)(地址10)字節(jié)(地址11)字(地址4)字(地址0)字節(jié)(地址14)

字節(jié)(地址15)字節(jié)(地址13)字節(jié)(地址12)

√√指令操作碼的擴(kuò)展技術(shù)假設(shè)某機(jī)器的指令長(zhǎng)度為16位,包括4位基本操作碼和三個(gè)4位地址碼段。OPA1A2A315…1211……87……43……0指令的分類算術(shù)與邏輯運(yùn)算指令移位操作指令算術(shù)移位(一般只右移)、邏輯移位、循環(huán)移位數(shù)據(jù)傳送指令通用寄存器之間傳送通用寄存器與主存儲(chǔ)器存儲(chǔ)單元之間傳送主存儲(chǔ)器不同存儲(chǔ)單元之間傳送輸入輸出指令通用寄存器與輸入輸出設(shè)備(接口)之間傳送轉(zhuǎn)移指令無(wú)條件轉(zhuǎn)移指令、條件轉(zhuǎn)移指令子程序調(diào)用與返回指令堆棧操作指令壓入(即進(jìn)棧)和彈出(即退棧)操作其他指令置條件碼指令、開中斷指令、關(guān)中斷指令停機(jī)指令、空操作指令、特權(quán)指令指令集設(shè)計(jì)操作指令表(OperationRepertoire):應(yīng)提供多少和什么樣的操作,操作的復(fù)雜程度數(shù)據(jù)類型(DataTypes):所支持的數(shù)據(jù)類型指令格式(InstructionFormat):指令的(位)長(zhǎng)度、地址數(shù)目、各個(gè)字段的大小等尋址方式(AddressingMode):指定操作數(shù)地址的產(chǎn)生方式寄存器(Registers):能被指令訪問(wèn)的CPU寄存器數(shù)目以及它們的用途RISC-V指令集設(shè)計(jì)指令集描述RV32IRISC-V固定不變的基礎(chǔ)整數(shù)指令集,是RISC-V的核心內(nèi)容RV32ERV32I的子集,用于嵌入式場(chǎng)景RV32GM整數(shù)乘除法擴(kuò)展,增加了整數(shù)寄存器中的乘除法指令A(yù)原子操作擴(kuò)展,增加對(duì)儲(chǔ)存器的原子讀、寫、修改和處理器間的同步F單精度浮點(diǎn)擴(kuò)展,增加了浮點(diǎn)寄存器、計(jì)算指令、L/S指令D雙精度擴(kuò)展,擴(kuò)展雙精度浮點(diǎn)寄存器,雙精度計(jì)算指令、L/S指令RV32C壓縮指令擴(kuò)展,將某些指令進(jìn)行壓縮,提高代碼密度RV32V向量指令集,SIMDRV64I64位整數(shù)指令集,兼容RV32IRV32I基本指令格式R-type:用于寄存器-寄存器操作I-type:用于短立即數(shù)和訪存load操作S-type:用于訪存store操作B-type:用于條件跳轉(zhuǎn)操作U-type:用于長(zhǎng)立即數(shù)J-type:用于無(wú)條件跳轉(zhuǎn)尋址方式尋址方式:形成指令或操作數(shù)地址的方法指令的尋址方式順序?qū)ぶ诽S尋址操作數(shù)的尋址方式隱含尋址直接尋址……指令順序?qū)ぶ贩绞街噶钐S尋址方式操作數(shù)尋址方式操作數(shù)的尋址方式是指形成操作數(shù)的有效地址的方法一般來(lái)說(shuō),指令中所給出的地址碼(A),并不是操作數(shù)的有效地址(EA)形式地址A也稱偏移量,它是指令字結(jié)構(gòu)中給定的地址量尋址過(guò)程就是把操作數(shù)的形式地址變換為操作數(shù)的有效地址的過(guò)程立即數(shù)尋址Num即為操作數(shù)的值指令的第2個(gè)字直接尋址Addr為操作數(shù)在存儲(chǔ)器中的地址,

或轉(zhuǎn)移指令等用到的指令地址。內(nèi)存儲(chǔ)器

操作數(shù)寄存器尋址、寄存器間接尋址相對(duì)尋址例:Disp=48H (PC)=5600H

則實(shí)際地址=5648HPC變址尋址例:Disp=18H,Reg=5,(R5)=5700H

則操作數(shù)地址=5718H操作數(shù)存儲(chǔ)器變址寄存器加法器基址尋址例:Disp=18H,[BS]=5700H

則操作數(shù)地址=5718H基址寄存器加法器存儲(chǔ)器操作數(shù)間接尋址存儲(chǔ)器操作數(shù)Addr1堆棧尋址15200HACCSPX棧頂200H棧底主存151FFHACCSP15棧頂200H棧底主存X1FFHPUSHA前PUSHA后POPA前POPA后Y1FFHACCSPX棧頂200H棧底主存151FFH15200HACCSP棧頂200H棧底主存X15為什么要設(shè)置尋址方式?增強(qiáng)指令的功能縮短指令的長(zhǎng)度提高指令的執(zhí)行速度增加操作數(shù)存放的位置的靈活性……尋址方式的負(fù)面影響指令格式復(fù)雜,不規(guī)整指令執(zhí)行速度變慢上述問(wèn)題導(dǎo)致RISC的出現(xiàn)IBM360指令格式OPR1R2RR格式844OPR1XBDRX格式844412OPR1R3BDRS格式844412OPBDISI格式88412OPB1D1LB2D2SS格式88412412二地址RR基址加變址尋址二地址RM三地址RM基址尋址二地址MM基址尋址基址尋址立即數(shù)

MMIPS指令格式

所有的指令都是32位長(zhǎng)度。有

3種指令格式,即寄存器型、立即數(shù)型和轉(zhuǎn)移型。

操作數(shù)尋址方式有寄存器尋址、變址尋址、立即數(shù)尋址3種,指令地址支持相對(duì)尋址、偽直接地址

2種方式。oprsrtrdshamtfunct

寄存器型立即數(shù)型轉(zhuǎn)移型

oprsrtaddress/immediate

optarget例如:

add$1,$2,$3R3←R1+R2例如:lw$1,$2,100R2←M[R1+100]

addi$1,$2,100R2←R1+100例如:

j8000轉(zhuǎn)移到PC[31..28]8000×4[例]指令格式如下所示,其中OP為操作碼,試分析指令格式的特點(diǎn)。

1597

43

0OP——源寄存器目標(biāo)寄存器解:?jiǎn)巫珠L(zhǎng)二地址指令。操作碼字段OP可以指定128條指令。源寄存器和目標(biāo)寄存器都是通用寄存器(可分別指定16個(gè)),所以是RR型指令,兩個(gè)操作數(shù)均在寄存器中。這種指令結(jié)構(gòu)常用于算術(shù)邏輯運(yùn)算類指令。

解:雙字長(zhǎng)二地址指令,用于訪問(wèn)存儲(chǔ)器。操作碼字段OP為6位,可以指定64種操作。一個(gè)操作數(shù)在源寄存器(共16個(gè)),另一個(gè)操作數(shù)在存儲(chǔ)器中(由變址寄存器和位移量決定),所以是RS型指令。[例]指令格式如下所示,OP為操作碼字段,試分析指令格式特點(diǎn)。

1510

74

3

0OP-----------源寄存器變址寄存器位移量(16位)確定指令系統(tǒng)的兩種思路RISC(ReducedInstructionSetComputer)通常稱為精簡(jiǎn)指令系統(tǒng)的計(jì)算機(jī)。提供數(shù)目較少、格式與功能簡(jiǎn)單、運(yùn)行高效的指令,追求的是計(jì)算機(jī)控制器實(shí)現(xiàn)簡(jiǎn)單,運(yùn)行高速,更容易在單塊超大規(guī)模集成電路的芯片內(nèi)制做出來(lái)。指令并行性好。CISC(ComplexInstructionSetComputer)通常稱為復(fù)雜指令系統(tǒng)的計(jì)算機(jī),是相對(duì)于RISC一詞提出來(lái)的。其特點(diǎn)是:指令條數(shù)多,格式多樣,尋址方式復(fù)雜,每條指令的功能強(qiáng),優(yōu)點(diǎn)是匯編程序設(shè)計(jì)容易些,但計(jì)算機(jī)控制器的實(shí)現(xiàn)困難多,很多指令被使用的機(jī)會(huì)比較少。指令并行度差。CISC復(fù)雜指令系統(tǒng)計(jì)算機(jī)(CISC,ComplexInstructionSetComputer)指令系統(tǒng)包含的指令數(shù)目多,指令格式多,數(shù)據(jù)格式多,尋址方式多實(shí)例DEC公司的VAX-II/780有16種尋址方式,9種數(shù)據(jù)格式,303條指令32位的68020微機(jī)指令種類比6800多兩倍,尋址方式多11種,達(dá)18種之多,指令長(zhǎng)度從一個(gè)字(16位)發(fā)展到16個(gè)字x86系列機(jī)RISC1975年IBM公司JohnCocke提出了精簡(jiǎn)指令系統(tǒng)的設(shè)想精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī)(ReducedInstructionSetComputer,RISC)主要特征選取使用頻度最高的一些簡(jiǎn)單指令以及一些很有用但又不復(fù)雜的指令,讓復(fù)雜指令的功能由頻度高的簡(jiǎn)單指令的組合來(lái)實(shí)現(xiàn)指令長(zhǎng)度固定,指令格式種類少,尋址方式種類少只有取數(shù)/存數(shù)(LOAD/STORE)指令訪問(wèn)存儲(chǔ)器,其余指令的操作都在寄存器內(nèi)完成CPU中有多個(gè)通用寄存器采用流水線技術(shù),大部分指令在一個(gè)時(shí)鐘周期內(nèi)完成。采用超標(biāo)量和超流水線技術(shù),可以使每條指令的平均執(zhí)行時(shí)間小于一個(gè)時(shí)鐘周期控制器采用組合邏輯控制,不用微程序控制采用優(yōu)化的編譯程序RISC典型實(shí)例

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論