計算機中所采用的數(shù)據(jù)類型,它們主要有兩類:一類是基本數(shù)據(jù)類型,包括位、串、整數(shù)、實數(shù)、字符和布爾量等;另一類是結(jié)構(gòu)數(shù)據(jù)類型,包括向量、數(shù)據(jù)、字符串、堆棧、隊列、記錄等。因為計算機只能識別"0"和"1"這些二進制位,那么在計算機中如何在存儲器中用"0"和"1"來表示上面的這些數(shù)據(jù),就是我們要學(xué)的數(shù)據(jù)表示。這一章內(nèi)容不多,比較難理解的似乎是"向量"這種數(shù)據(jù)類型。本章的內(nèi)容主要應(yīng)掌握浮點數(shù)的數(shù)據(jù)表示。
一、數(shù)據(jù)類型(識記)
計算機中所使用的數(shù)據(jù)一般可分為三類:第一類是用戶定義的數(shù)據(jù),這類數(shù)據(jù)通常是由程序設(shè)計語言所確定的;第二類是系統(tǒng)數(shù)據(jù),它是程序在執(zhí)行時由計算機系統(tǒng)蘊含生成的;第三類是指令,即被執(zhí)行的程序可看成是數(shù)據(jù)的復(fù)合。
上面講的是"數(shù)據(jù)",那么"數(shù)據(jù)類型"是什么呢? 它不同于數(shù)據(jù),數(shù)據(jù)類型除了指一組值的集合外,還定義了可作用于這個集合上的操作集,比如有一組整數(shù)值的集合,連同定義在這個集合上可進行的加減乘除等算術(shù)操作,這個整數(shù)的集合就成為了整數(shù)數(shù)據(jù)類型。
從系統(tǒng)結(jié)構(gòu)的觀點來看,數(shù)據(jù)類型可分為基本數(shù)據(jù)、結(jié)構(gòu)數(shù)據(jù)、訪問指針和抽象數(shù)據(jù)等類型。我們這里講的主要是基本數(shù)據(jù)和結(jié)構(gòu)數(shù)據(jù)。
1、基本數(shù)據(jù)類型(識記)
一般包括二進制位及其位串、整數(shù)及自然數(shù)、實數(shù)(浮點數(shù))、字符和布爾數(shù)等。
2、結(jié)構(gòu)數(shù)據(jù)類型(識記)
結(jié)構(gòu)數(shù)據(jù)類型是一組由相互有關(guān)的數(shù)據(jù)元素復(fù)合而成的數(shù)據(jù)類型,這些數(shù)據(jù)元素可以是基本數(shù)據(jù)類型中的元素,也可以是結(jié)構(gòu)數(shù)據(jù)類型本身中的元素。也就是說這些數(shù)據(jù)是有結(jié)構(gòu)的,包括向量和數(shù)組、字符串、堆棧、隊列、記錄等,結(jié)構(gòu)數(shù)據(jù)類型中的元素不一定都具有相同類型。
這里提到了向量,向量通常是指由標量的一組有序集合表示的量,它類似于一維數(shù)組,但又有所不同,因為標量通常只是一個整數(shù)或?qū)崝?shù),而數(shù)組元素不一定只取實數(shù)。從計算機存儲結(jié)構(gòu)上來說,向量通常存儲在一段連續(xù)的存儲空間里。而數(shù)組元素的存儲可能用鏈式存儲方式,也就是不一定存儲在連續(xù)的空間里。
二、數(shù)據(jù)表示
1、數(shù)據(jù)表示、數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)的關(guān)系。(領(lǐng)會)
上面我們學(xué)了數(shù)據(jù)類型,還有一個概念是數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)就是指上面講結(jié)構(gòu)數(shù)據(jù)類型的組織方式,它反映了結(jié)構(gòu)數(shù)據(jù)類型中各種數(shù)據(jù)元素或信息單元之間的結(jié)構(gòu)關(guān)系,比如樹這種數(shù)據(jù)結(jié)構(gòu),里面的元素就有根和葉的層次邏輯關(guān)系。數(shù)據(jù)結(jié)構(gòu)一般通過高級語言描述建立的,但是計算機硬件并不懂什么是根什么是葉,它只認0和1.這就需要我們確定如何在計算機系統(tǒng)中進行數(shù)據(jù)表示,讓硬件能認識各種數(shù)據(jù)類型。
計算機系統(tǒng)結(jié)構(gòu)中的數(shù)據(jù)表示是指可由硬件直接辨認的數(shù)據(jù)類型。這里講到硬件直接辨認,就是說在系統(tǒng)中能夠直接由硬件實現(xiàn)相應(yīng)數(shù)據(jù)的運算,也就是系統(tǒng)結(jié)構(gòu)中有相應(yīng)的運算指令和運算部件來完成這項任務(wù)。那么怎么表示才能讓硬件識別某種數(shù)據(jù)類型?
上面的數(shù)據(jù)類型和數(shù)據(jù)表示就涉及到軟硬件的交界面了。數(shù)據(jù)結(jié)構(gòu)所研究的是軟的方面,而數(shù)據(jù)表示考慮是是硬的方面,讓計算機能夠識別處理,并盡量節(jié)約存儲空間。
2、二進的定點、浮點數(shù)據(jù)表示(綜合應(yīng)用)
主要講述是的IEEE標準的二進制浮點數(shù)表示:
IEEE754標準在表示浮點數(shù)時,每個浮點數(shù)均由三部分組成:符號位S,指數(shù)部分E和尾數(shù)部分M.
我們知道10進制數(shù)的科學(xué)計數(shù)法如A= -3.5×105
這里最前面有一個負號,3.5是尾數(shù),兩個有效數(shù)字,后面以10為基數(shù)的指數(shù)為5.我們可以將它表示為-3.5E5
同樣,二進制數(shù)也可以用科學(xué)計數(shù)法規(guī)格化表示,比如5這個數(shù),如果用二進制表示的話,整型為101,如果用科學(xué)計數(shù)法則可以表示為 1.25×24 ,這里用的是十進制,將尾數(shù)換成二進制就是1.01(就是101向前移兩位小數(shù)點,和十進制完全相同),后面的指數(shù)4換成二進制則是10,那我們將其用二進制的科學(xué)計數(shù)法就可以寫成1.01E10.
當我們依照這種計數(shù)法給一個數(shù)字確定其精度(有效位)后,就可以用一定長度的1和0的位串來表示一個實數(shù)了。
浮點數(shù)一般采用以下四種基本格式:
(1)單精度格式(32位):除去符號位1位后,E占8位,M占23位。
(2)擴展單精度格式:E>=11位,M31位。
(3)雙精度格式:(64位);E=11位,M=52位。
(4)擴展雙精度格式:E>=15位,M>63位。
我們最重要的是掌握單精度格式的表示法。在IEEE754標準中,約定小數(shù)點左邊隱含有一位,通常這位數(shù)就是1,這樣實際上使尾數(shù)的有效位數(shù)為24位,即尾數(shù)為1.M.指數(shù)的值在這里稱為階碼,為了表示指數(shù)的正負,所以階碼部分采用移碼表示,移碼值為127,階碼值即從1到254變?yōu)?126至+127,在IEEE754中所有的數(shù)字位都得到了使用,明確地表示了無窮大和0,并且還引進了"非規(guī)格化數(shù)",使得絕對值較小的數(shù)得到更準確表示。
3、向量數(shù)據(jù)表示(簡單應(yīng)用)
這里又提到向量,前面已經(jīng)簡單解釋過向量,這里說的是向量數(shù)據(jù)表示,我們知道向量在內(nèi)存中是連續(xù)存放在一段空間里的,換句話說,這些向量元素的地址是連續(xù)的。
在標量計算機上運行時,由于沒有專門的向量數(shù)據(jù)表示,因此在計算一個向量(相當于一維數(shù)組的計算)時,每取用一個數(shù)據(jù)元素,都要用到計算該元素的地址。而在向量機中,由于有了向量數(shù)據(jù)表示,就可以把一個向量用一個位串來表示出來。向量指令就是能夠用一條指令對向量的全部元素進行運算的指令。
比方,有兩排抽屜:A和B:我們有一個任務(wù),就是把A中每個抽屜里的東西按照順序一一對應(yīng)地搬到B的每個抽屜里。
用標量指令就是這樣:聽著,把A1抽屜里的東東給我搬到B1里去~~(等打工的搬好后……)再把A2抽屜里的東東給我搬到B2里去!(又等跑腿的搬完后……)還有,把A3抽屜……直到把全部抽屜搬好,數(shù)到了5,算是完成一項任務(wù)了,其間用了5次循環(huán)命令。
而用向量指令就是這么說的:聽著,把A柜子從第1格抽屜起的5個抽屜的東東給搬到B柜子里去,位置是從第1格抽屜起,依次放到5個抽屜里去。這樣,跑腿的就明白了,只要一句話就完成了任務(wù)。
向量表示就是用一個位串來表示一個向量的基址、位移量和向量長度,這樣三個值就能明確表示一個向量,并能確定參加計算的元素所在的位置,因此向量表示是向量指令及向量機得以實現(xiàn)的基礎(chǔ)。
在向量處理中,還會遇到稀疏向量(就是含有大量0元素的向量),所以為了節(jié)省空間了處理時間,采用壓縮向量的表示方法。這里要注意的是有一個中間向量Z向量,它是一個位向量,每個元素不是1就是0,而壓縮向量就是根據(jù)Z向量中的有1的元素對應(yīng)的稀疏向量元素存儲起來而得到的。這個容易理解。
4、自定義數(shù)據(jù)表示(領(lǐng)會)
為了減少高級語言與機器語言之間的差別,采用了自定義數(shù)據(jù)表示,就是由數(shù)據(jù)本身來表明數(shù)據(jù)類型,這樣可以使每種指令的種類大為減少,稱為通用化指令。自定義數(shù)據(jù)表示形式有兩種,即帶標志符數(shù)據(jù)表示和數(shù)據(jù)描述符表示。
帶標志符數(shù)據(jù)表示就是對每一個數(shù)據(jù)都附加一個標志符,由這個標志符來表示這個數(shù)據(jù)的類型。這種表示法有它的優(yōu)點也有它的缺點,請認真領(lǐng)會一下。
其優(yōu)點是:簡化指令系統(tǒng);易于對編程查錯;自動類型轉(zhuǎn)換;簡單化編譯;方便程序調(diào)試。缺點是增加存儲空間又使指令執(zhí)行速度變慢。
另一種就是數(shù)據(jù)描述符表示,主要用來描述復(fù)雜和多維結(jié)構(gòu)的數(shù)據(jù)類型,如向量、記錄等,它于帶標志符數(shù)據(jù)表示不同之處是:
(1)標志符要與每個數(shù)據(jù)相連,兩者合存在一個存儲單元中;而描述符則和數(shù)據(jù)分開存放(一個連合一個分)
(2)要訪問數(shù)據(jù)集中的元素時,必須先訪問描述符,這就至少增加一級尋址(先訪描符增尋址)
(3)描述符可看成是程序一部分,而不是數(shù)據(jù)的一部分。標志符則可看作是數(shù)據(jù)的一部分(程序部分不是數(shù))
指令系統(tǒng)是計算機外特性的重要內(nèi)容,本章主要介紹了兩種不同風(fēng)格的指令系統(tǒng):RISC和CISC.在學(xué)習(xí)這兩種指令系統(tǒng)之前,我們先了解一下什么是指令系統(tǒng)。
一、指令系統(tǒng)的設(shè)計(領(lǐng)會)
指令系統(tǒng)是指機器所具有的全部指令的集合。它反映了計算機所擁有的基本功能。它是機器語言程序員所看到的機器的主要屬性之一。
通常我們說的加法指令、傳輸數(shù)據(jù)指令等等就是計算機的指令,這些指令就是告訴計算機從事某一特殊運算的代碼,一種計算機系統(tǒng)確定的這些指令的集合我們就說它是這種機器的指令系統(tǒng)。
那么指令系統(tǒng)的設(shè)計要做什么? 就是要確定它的指令格式(就是指令有多少位長,哪幾位表示地址,哪幾位表示操作等)、類型(如堆棧型、寄存器型等分類)、操作(比如運算、數(shù)據(jù)傳送啊什么的都是指令中要確定的操作)以及操作數(shù)的訪問方式(一個指令要訪問數(shù)據(jù),是按其地址訪問還是按內(nèi)容訪問等也要由指令設(shè)計來解決)。
我們知道,由多條指令構(gòu)成的程序是要以二進制的形式放到存儲器中的,早期的存儲器很昂貴,因此導(dǎo)致指令設(shè)計者盡量增強一條指令的復(fù)雜性以減少程序的長度。還用微程序(就是保存在專用的存儲器中的一小段程序,運行時只要用一條指令來啟動它就可用來代替好多條指令) 來改進代碼密度。這樣的設(shè)計傾向形成了一種傳統(tǒng)的指令設(shè)計風(fēng)格,即認為計算機系統(tǒng)性能的提高主要依靠增加指令復(fù)雜性及其功能來獲取。這就是稱為復(fù)雜指令系統(tǒng)(CISC)的設(shè)計風(fēng)格。我們現(xiàn)在用的PC機多是用這種設(shè)計風(fēng)格的指令系統(tǒng),比如MMX多媒體擴展指令等,都是增加進去的指令,是復(fù)雜指令。
后來,通過測試,這種不斷增加指令復(fù)雜度的辦法并不能使系統(tǒng)性能得到很大提高,反倒使指令系統(tǒng)實現(xiàn)更困難和費時。所以在70年代中期又出現(xiàn)了另一種稱為"簡化指令系統(tǒng)(RISC)"的設(shè)計風(fēng)格。它的基本思想是,簡單的指令能執(zhí)行得更快以及指令系統(tǒng)只需由使且頻率高的指令組成。(插話)
指令系統(tǒng)在設(shè)計時,應(yīng)特別注意的是如何能使編譯系統(tǒng)高效、簡易地將源程序翻譯成目標代碼。這就是指令系統(tǒng)的設(shè)計原則。為了達到這個目的,在設(shè)計時應(yīng)注意:正交性、規(guī)整性、可擴充性、對稱性。(請對照課本加以理解)
二、指令系統(tǒng)集結(jié)構(gòu)的分類(識記)
前面我們知道了指令系統(tǒng)的設(shè)計要確定它的指令格式、類型、操作及對操作數(shù)的訪問方式。現(xiàn)在就提到了分類:
一般地,指令系統(tǒng)集結(jié)構(gòu)分類主要是依據(jù)在CPU中以何種存儲方式來存放操作數(shù)。
我們知到,CPU在進行數(shù)據(jù)計算時,總是要先把數(shù)據(jù)取到某種寄存器中才能開始。而這寄存器的類型有堆棧型、累加器型和通用寄存器型三種。相應(yīng)地,使用哪種存儲方式來存放操作數(shù)的,就把指令系統(tǒng)集結(jié)構(gòu)分成堆棧型、累加器型和通用寄存器型三類。它們是有區(qū)別的,堆棧型結(jié)構(gòu)中,操作數(shù)總是被默認存放在棧頂,累加器結(jié)構(gòu)中,操作數(shù)總是被默認存放在累加器中;而在通用寄存器中,所有的操作數(shù)都必須被說明是存放在哪一個寄存器或存儲器的哪個單元中。
所有的計算機都可按上述分類標準進行歸類。但有的機器可能是某些類型的混合,如intel的8086處理器便是通用寄存器結(jié)構(gòu)和累加器結(jié)構(gòu)的混合。
三種類型的比較:
其中通用寄存器指令系統(tǒng)又可進一步分為:寄存器-寄存器、寄存器-存儲器以及存儲器-存儲器三類。在RISC機中,只可能存在寄存器-寄存器類型。(寄存器是在計算機內(nèi)部的存儲小容量數(shù)據(jù)的裝置,尤指數(shù)據(jù)可以同時存儲和運算的裝置)請注意它們的優(yōu)缺點,第一種是具有最好的指令密度,但是訪存速度慢。第三種方式則簡單,但程序代碼較長。第二種取中。
三、操作數(shù)訪問(尋址)方式(識記)
指令中對操作數(shù)的訪問方式,按訪問手段可分為兩大類:常用的是按地址訪問,另一類是按內(nèi)容訪問方式。
計算機中的兩個地址概念一個是邏輯地址、一個是物理地址,前者為虛,后者是實,一般所討論的尋址方式是指邏輯地址的尋址方式。
地址的編址,通常有三種不同方式:(1)按各種部件分類編址;(2)統(tǒng)一編址;(3)隱式編址
對存儲器這一存儲部位編址(領(lǐng)會),絕大多數(shù)計算機將字節(jié)作為最小訪問單位(注意,1字節(jié)=8位。1字=4字節(jié)。)這里我們要弄清什么是"大端排序"和"小端排序".比如要訪問一個字(32位4字節(jié))的時候,要求一次寫入4個字節(jié)的數(shù)據(jù),而存儲器最小訪問單位是1個字節(jié),那么就需要把這"字"分成4段存入4個單元中。如果確定把這個"字"的最低有效位的字節(jié)(最右邊的一段)是存儲器地址末位為"0"中的內(nèi)容,最高有效位的字節(jié)(最左邊的一段)是地址末位為3的內(nèi)容,則我們稱之為小端排序(即訪問字的最低有效位(小端)地址是按0、4……等順序排列的);反之若將字的最高有效位的字節(jié)放在"0"、"4"等地址中,則稱之為大端排序。
訪問方式可按面向?qū)ο蠛蛯ぶ贩绞絹韰^(qū)分:前者可分為面向寄存器、面向存儲器、面向堆棧的訪問方式。后者可分為如下尋址方式:(了解一下即可)
立即數(shù) 指令中所帶的操作數(shù)內(nèi)容即是一個可用的數(shù)絕對方式 指令中給出一個地址,訪問該地址得到操作數(shù)寄存器方式 訪問某個寄存器中給出的地址,由地址訪問到操作數(shù)寄存器間接訪問某個寄存器,由這個寄存器中的內(nèi)容找到另一寄存器,由給出的地址取得操作數(shù)存儲器間接訪問存儲器中某單元,得到另一地址,再訪問到該地址取得操作數(shù)自增/自減將某寄存器中的數(shù)加上或減去操作操作數(shù)的字節(jié)數(shù),找到地址變址方式 由寄存器中的數(shù)加上變址量得到地址…… ……
在CISC計算機中,使用頻率最高的是帶偏移的寄存器尋址方式,其次是直接量尋址,再就是寄存器間接尋址。在RISC機中,只選擇那些使用頻率高的尋址方式,如相對于寄存器尋址或PC的偏移尋址、立即數(shù)尋址以及基址加變址尋址等。
按內(nèi)容訪問方式時,并不提供要訪問的存儲單元地址,而是給出要訪問的內(nèi)容(很像是查詢)。因此存儲器的結(jié)構(gòu)形式要作相應(yīng)變化。為了加快訪問速度,必須采用并行方式,相應(yīng)的存儲器就稱為聯(lián)想存儲器。請對照課本第49頁,對聯(lián)想存儲器的基本結(jié)構(gòu)和其訪問方法進行理解和領(lǐng)會。
實用的聯(lián)想存儲器,一般除有按內(nèi)容訪問能力外,還有按地址訪問能力。
指令格式及其優(yōu)化(簡單應(yīng)用)
指令一般由兩部分組成:一部分是操作碼,另一部分是操作地址碼。當操作數(shù)地址為隱式時(如堆棧的操作,默認為棧頂),后一部分則不是必須的。根據(jù)指令地址碼部分中顯式指明的地址個數(shù),則可形成零地址、單地址、二地址、三地址及四地址指令。
我們說的確定指令格式主要就是選擇指令字中的操作碼長度和地址數(shù)。指令字的長度有定長和變長兩種。
我們著重要討論的問題是指令格式的優(yōu)化問題,優(yōu)化就是以較少的格式,以盡可能短的碼長來實現(xiàn)各種指令編碼。
指令字包括操作碼和地址碼,所以對這兩部分都采取優(yōu)化措施。
1、操作碼的優(yōu)化。這要用到霍夫曼壓縮的概念。霍夫曼壓縮法是一種頻率相關(guān)的編碼方法,即出現(xiàn)頻率高的字符編碼短,頻率低的字符編碼長,這樣可以縮短平均碼長。我們要掌握的是用霍夫曼樹實現(xiàn)霍夫曼編碼。其方法很簡單:
根據(jù)所給的各種指令使用頻率,把它們從小到大依次排好作為葉結(jié)點(相同的頻率可任取一個排在前),然后把最小的兩個結(jié)點值(頻率)相加,形成一個新結(jié)點,以這個結(jié)點的值與其他的葉結(jié)點值比較大小,仍舊取最小的兩個結(jié)點值合并產(chǎn)生新結(jié)點,直到最終合并為一個根(通常這個值是1或100)。簡單地記為:
從小到大排序,
最小兩個合并,
重復(fù)上述過程,
只剩一個結(jié)束。
編碼時,從根結(jié)點開始向下,凡左邊分支都編為"1",右邊分支都編為"0"(也可取反),則從根結(jié)點到葉結(jié)點的一條路徑上的編碼組合就是該指令的霍夫曼編碼。(請仔細觀察圖4.12中的霍夫曼樹)注意,霍夫曼樹不是唯一的(因為相同的頻率可以任取一個在前,且編碼時又可任取左1或左0),但所得的平均碼長應(yīng)是一樣的。由于霍夫曼編碼得到的碼長很不規(guī)整,所以有時候要采用霍夫曼擴展編碼,就是在霍夫曼碼的基礎(chǔ)上對碼長加以限制(取幾個確定的長度如2位、4位等),對編碼作適當改變。
平均碼長應(yīng)該容易計算吧,這也是要用到的。
2、地址碼的優(yōu)化。上面我們學(xué)了操作碼的優(yōu)化,但是一條指令碼還包括地址碼。兩者合理安排才能使指令格式得到優(yōu)化。示意如下:
由于操作碼優(yōu)化后是變長的編碼,如果整條指令是定長的,那么使地址碼的寬度應(yīng)隨不同指令變化,以配合操作碼形成定長指令;也可以通過改變指令字中的地址數(shù)和地址碼的長度,以使單地址及多址都可以在一條指令中使用;如果操作碼和地址碼之外還有空余的碼位,則設(shè)法用來存放立即操作數(shù)或常數(shù)。
當今的RISC機指令系統(tǒng)中,全都是用定字長指令格式。
五、兩種不同的指令系統(tǒng)設(shè)計風(fēng)格 CISC和RISC
這兩種風(fēng)格應(yīng)作比較深入的領(lǐng)會,并要識記一些內(nèi)容。
CISC(復(fù)雜指令集計算機)以VAX-11/780為代表,70年代后的各種微機如我們用的intel80x86均是這種風(fēng)格的計算機。
CISC設(shè)計風(fēng)格的主要特點是:
(1)指令系統(tǒng)復(fù)雜;費時(2)絕大多數(shù)指令需要多個機器周期方可執(zhí)行完畢;自由主義(3)各種指令都可訪問存儲器;地方主義(4)采用微程序控制;小金庫(5)有專用寄存器;低效率(6)難以用優(yōu)化編譯器生成高效的目標代碼程序。 復(fù)雜
這哪里是特點,分明是一大堆缺點嘛,RISC機的特點就是把它們"取反",凡是 CISC是這樣的,它就不是這樣的:
(1)簡化指令系統(tǒng);省時(2)除了LOAD/STORE指令外,所有指令都在一個時鐘周期內(nèi)執(zhí)行完畢;集體主義(3)除了LOAD/STORE指令外,其余指令只與寄存器打交道;搞活流通(4)絕大部分采用硬聯(lián)線控制,不用或少用微程序?qū)崿F(xiàn);查封小金庫(5)使用較多的通用寄存器,一般至少有32個,絕沒有專用寄存器;高效率(6)采用優(yōu)化編譯技術(shù),生成高效的目標代碼程序。 簡化
RISC與CISC技術(shù)兩者的主要區(qū)別在于設(shè)計思想上的差別,RISC的設(shè)計思想是;將那些不是最頻繁使用的功能(指令)由軟件來加以實現(xiàn),這樣就可以優(yōu)化硬件,并可使其執(zhí)行得更快。在第一章中我們學(xué)過計算機系統(tǒng)的設(shè)計的準則,第一個準則就是:只加速使用頻率高的部件。RISC的設(shè)計思想與此完全吻合。
下面我們學(xué)習(xí)RISC技術(shù)中所采用的特殊方法:
1、采用較大量的寄存器,采用窗口重疊寄存器技術(shù)。
窗口重疊技術(shù):在RISC結(jié)構(gòu)中,為了減少過程調(diào)用中保存現(xiàn)場和建立新現(xiàn)場,以及返回時恢復(fù)現(xiàn)場等輔助操作,通常將所有寄存器分成若干個組,稱為寄存器窗口。每組中有若干個寄存器,每當有過程調(diào)用時,就分配一個未被使用的寄存器窗口,這樣就可減少保存和恢復(fù)現(xiàn)場的開銷。此外在每個寄存器窗口中,又分成大小固定的高區(qū)、本地和低區(qū)三個區(qū)段。其中本地區(qū)用來存放局部變量,高區(qū)在被調(diào)用時用來保存調(diào)用過程送來的參數(shù),而在返回主調(diào)用過程時,存放返回結(jié)果。而低區(qū)在調(diào)用時存放欲送往被調(diào)用過程的參數(shù),而在被調(diào)用過程返回時用來存放返回結(jié)果。在使用時,每一對調(diào)用和被調(diào)用過程的寄存器窗口各自的低區(qū)和高區(qū)相互重疊。一旦發(fā)生過程調(diào)用或返回,在控制由一個窗口轉(zhuǎn)換到另一窗口時,這些參數(shù)就通過兩個窗口間的公共寄存器區(qū)自動的被傳送而不需要再用額外的傳送時間。 (可參照教材進行理解)。
2、采用優(yōu)化延遲轉(zhuǎn)移技術(shù)
優(yōu)化延遲轉(zhuǎn)移技術(shù):即是使轉(zhuǎn)移指令在準備將控制轉(zhuǎn)向目標指令的同時,執(zhí)行緊隨在轉(zhuǎn)移指令之后的那條指令,也就是是在將轉(zhuǎn)移指令后延遲槽內(nèi)的指令執(zhí)行完畢后,才發(fā)生真正的轉(zhuǎn)移(不論轉(zhuǎn)移是否成功),這種優(yōu)化技術(shù)可在保證程序正確執(zhí)行的同時又可避免延遲轉(zhuǎn)移中損失的一個機器周期時間。
3、采用比較轉(zhuǎn)移指令
比較-轉(zhuǎn)移指令:在RISC機中,把比較和轉(zhuǎn)移(在CISC機中需用兩條指令完成的功能)合并成一條指令。該指令將直接對兩個對象(寄存器-寄存器或存儲器-立即數(shù))進行相等或不等比較,然后根據(jù)比較結(jié)果判別是否進行轉(zhuǎn)移。這樣就可省去一條指令,并不受條件碼的約束。
4、采用優(yōu)化編譯技術(shù)
優(yōu)化編譯技術(shù):在編譯時就可發(fā)現(xiàn)可能出現(xiàn)的阻塞情況,由編譯器通過重排指令執(zhí)行序列來消除可能出現(xiàn)的阻塞情況,當無法消除時就填入相應(yīng)的空操作,因此不需要硬件的互鎖流水支持。
以上的特殊技術(shù)并中是每一種RISC機都采用的,在RISC機中有兩個比較典型的代表,一個是加州大學(xué)伯克萊分校的RISC-I、II機的思路,側(cè)重系統(tǒng)結(jié)構(gòu)的支持,采用由大量寄存器組成的寄存器堆及窗口重疊技術(shù)。另一個是遵循斯坦福大學(xué)的MIPS機器思路,側(cè)重采用編譯的支持,采用優(yōu)化編譯技術(shù),。
CISC和RISC兩種設(shè)計風(fēng)格的比較,其實就是說RISC優(yōu)點,簡單地說就是快、省、可靠、易實現(xiàn)、好優(yōu)化。
關(guān)于RISC的兩種代表機型的指令系統(tǒng)實例,要對照它們的指令系統(tǒng)中指令數(shù)、指令格式、尋址方式及采用的特殊技術(shù)來進行比較。
聲明:
(一)由于考試政策等各方面情況的不斷調(diào)整與變化,本網(wǎng)站所提供的考試信息僅供參考,請以權(quán)威部門公布的正式信息為準。
(二)本網(wǎng)站在文章內(nèi)容來源出處標注為其他平臺的稿件均為轉(zhuǎn)載稿,免費轉(zhuǎn)載出于非商業(yè)性學(xué)習(xí)目的,版權(quán)歸原作者所有。如您對內(nèi)容、版權(quán)等問題存在異議請與本站聯(lián)系,我們會及時進行處理解決。
相關(guān)推薦
2022年浙江自考《當代中國政治制度》復(fù)習(xí)筆記匯總
09-152023年浙江自考西方行政學(xué)說史復(fù)習(xí)資料:西方行政學(xué)的產(chǎn)生
03-022023年10月浙江自考傳播學(xué)概論復(fù)習(xí)資料:有限效果論
08-302022年浙江自考中國古代文學(xué)史(一)第三編第九章復(fù)習(xí)資料
10-312023年4月浙江自考中外教育簡史復(fù)習(xí)筆記:英國近代教育制度
12-08自考輔導(dǎo)資料:2021年10月《學(xué)前教育史》—論幼稚師范教育
06-05自考輔導(dǎo)資料:2019年10月《美學(xué)》知識點-崇高的內(nèi)涵與特點
09-17自考輔導(dǎo)資料:2021年10月《學(xué)前教育史》—雅典的學(xué)前教育
06-072022年10月浙江自考《政治經(jīng)濟學(xué)》重點復(fù)習(xí)第十三章
07-062022年浙江自考市場消費經(jīng)濟學(xué)考點四
08-02與考生自由互動、并且能直接與專業(yè)老師進行交流解答。
與考生自由互動、并且能直接與專業(yè)老師進行交流解答。