數(shù)據(jù)表示與指令系統(tǒng)_第1頁
數(shù)據(jù)表示與指令系統(tǒng)_第2頁
數(shù)據(jù)表示與指令系統(tǒng)_第3頁
數(shù)據(jù)表示與指令系統(tǒng)_第4頁
數(shù)據(jù)表示與指令系統(tǒng)_第5頁
已閱讀5頁,還剩95頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2.1數(shù)據(jù)表示一、數(shù)據(jù)表示與數(shù)據(jù)結(jié)構(gòu)

數(shù)據(jù)表示是構(gòu)成數(shù)據(jù)結(jié)構(gòu)的元素,數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)表示是軟硬件的交界面。數(shù)據(jù)表示指的是能由機器硬件直接識別和引用的數(shù)據(jù)類型。

當機器設(shè)置有定點加、減、乘、除、移位、比較等一系列定點運算指令和相應(yīng)的運算硬件,可直接對定點數(shù)進行各種處理時,機器就有了定點數(shù)據(jù)表示。當機器設(shè)置有邏輯加、邏輯乘、按位相加、邏輯移位等一系列邏輯運算指令和相應(yīng)邏輯運算硬件,可直接對邏輯數(shù)進行各種處理,機器就有了邏輯數(shù)據(jù)表示。若機器設(shè)置有浮點運算指令(如浮點加、減、乘、除、比較、存、取等)和相應(yīng)的運算硬件,可以直接對浮點數(shù)進行處理,機器就有浮點數(shù)據(jù)表示。

軟件系統(tǒng)所要處理的各種數(shù)據(jù)結(jié)構(gòu)。有:串、隊、棧、向量、陣列、鏈表、樹、圖等,它們反映了面向應(yīng)用的各種數(shù)據(jù)元素或信息單元之間的結(jié)構(gòu)關(guān)系。

數(shù)據(jù)結(jié)構(gòu)是通過軟件映象,將信息變換成機器中所具有的各種數(shù)據(jù)表示來實現(xiàn)的,數(shù)據(jù)表示是構(gòu)成數(shù)據(jù)結(jié)構(gòu)的元素。不同的數(shù)據(jù)表示可以為數(shù)據(jù)結(jié)構(gòu)的實現(xiàn)提供不同的支持,表現(xiàn)在實現(xiàn)的效率和方便性上不同。數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)表示是軟、硬件的交界面。設(shè)計系統(tǒng)時需要分配軟、硬件的功能,確定在機器中設(shè)置哪些數(shù)據(jù)表示,以便對應(yīng)用中所遇到的數(shù)據(jù)結(jié)構(gòu)能有高的實現(xiàn)效率。數(shù)據(jù)表示的確定實質(zhì)上是軟、硬件的取舍問題。

圖2.1變址操作對向量、陣列數(shù)據(jù)結(jié)構(gòu)的支持二、高級數(shù)據(jù)表示1.自定義數(shù)據(jù)表示自定義(Self-defining)數(shù)據(jù)表示包括帶標志符的數(shù)據(jù)表示和數(shù)據(jù)描述符兩類。在傳統(tǒng)的計算機體系結(jié)構(gòu)中,用指令本身來說明操作數(shù)據(jù)的類型。如:定點加法表示操作數(shù)是純小數(shù)或純整數(shù);浮點加法表示操作數(shù)是浮點數(shù);十進制加法表示操作數(shù)是BCD數(shù)。由于操作數(shù)據(jù)類型不同,要設(shè)三種不同的指令(操作碼)來加以區(qū)分。自定義數(shù)據(jù)表示則用數(shù)據(jù)本身來說明數(shù)據(jù)類型。表示形式有兩種,即標志符數(shù)據(jù)表示和描述符數(shù)據(jù)表示。標志符數(shù)據(jù)表示要求對每一個數(shù)據(jù)都附加標志符,其格式如下:(1)帶標志符的數(shù)據(jù)表示

高級語言用類型說明語句指明數(shù)據(jù)類型,讓數(shù)據(jù)類型直接與數(shù)據(jù)本身聯(lián)在一起,運算符不反映數(shù)據(jù)類型。如FORTRAN程序中,實數(shù)I和J的相加是采用如下的語句組指明的:

REALI,J

I=I+J

在說明I、J的數(shù)據(jù)為實型后,用通用的“+”運算符就可實現(xiàn)實數(shù)加法。傳統(tǒng)的機器語言程序要用操作碼指明操作數(shù)的類型。如浮點加法指令中,由于操作碼是浮加,那么無論I和J是否是浮點數(shù),總是按浮點數(shù)對待,進行浮點數(shù)加法。

編譯時需要把高級語言程序中的數(shù)據(jù)類型說明語句和運算符變換成機器語言中不同類型指令的操作碼,并驗證操作數(shù)的類型是否與運算符所要求的一致,若不一致,還需用軟件進行轉(zhuǎn)換,這些都增加了編譯的負擔。浮加IJ

其中標志符指明后面的數(shù)據(jù)所具有的類型,如整數(shù)、浮點數(shù)、BCD數(shù)、字符串等。標志符數(shù)據(jù)表示的優(yōu)點是能簡化指令系統(tǒng),便于程序調(diào)試和查錯,缺點是數(shù)據(jù)區(qū)域占用的存儲空間增加,并使指令執(zhí)行的速度減慢。為了縮短高級語言與機器語言的這種語義差距,可讓機器中的每個數(shù)據(jù)如下所示,都帶有類型標志位:類型標志數(shù)據(jù)值數(shù)據(jù)(字)標志符數(shù)據(jù)表示的主要優(yōu)點:(1)簡化指令系統(tǒng)和程序設(shè)計;(2)簡化編譯程序;(3)便于實現(xiàn)一致性校驗;(4)能由硬件自動完成數(shù)據(jù)類型的變換;(5)支持數(shù)據(jù)庫系統(tǒng)的實現(xiàn)與數(shù)據(jù)類型無關(guān)的要求;(6)為軟件調(diào)試和應(yīng)用軟件開發(fā)提供了支持。采用標志符數(shù)據(jù)表示帶來的問題可能有兩個:

(1)每個數(shù)據(jù)字因增設(shè)標志符,會使程序所占用的主存空間增加。

(2)采用標志符會降低指令的執(zhí)行速度。2)數(shù)據(jù)描述符

自定義數(shù)據(jù)表示則用數(shù)據(jù)本身來說明數(shù)據(jù)類型。表示形式有兩種,即標志符數(shù)據(jù)表示和描述符數(shù)據(jù)表示。為進一步減少標志符所占的存貯空間,對于向量、數(shù)組、記錄等數(shù)據(jù),由于每個元素具有相同的屬性,產(chǎn)生數(shù)據(jù)描述符。

數(shù)據(jù)描述符和標志符的差別在于標志符是和每個數(shù)據(jù)相連,合存在一個存貯單元中,描述單個數(shù)據(jù)的類型特征;描述符是與數(shù)據(jù)分開存放的,專門用來描述所要訪問的數(shù)據(jù)是整塊數(shù)據(jù)還是單個數(shù)據(jù),訪問該數(shù)據(jù)塊或數(shù)據(jù)元素所需要的地址以及其他特征信息等。

以B6700的描述符為例,其數(shù)據(jù)描述符和數(shù)據(jù)的形式分別如下:101各種標志符長度地址描述符000數(shù)據(jù)數(shù)據(jù)

描述符數(shù)據(jù)表示主要用來描述多維結(jié)構(gòu)的數(shù)據(jù)類型,如向量、矩陣、記錄等。其格式為:圖2.4用描述符描述二維陣列2.向量數(shù)組數(shù)據(jù)表示例如,要計算

ci=ai+5+bi;i=10,11,…,1000

用FORTRAN語言寫成的有關(guān)DO循環(huán)部分為DO40I=10,1000

40C(I)=A(I+5)+B(I)

在向量處理機上,具有向量、數(shù)組數(shù)據(jù)表示。

表現(xiàn)出在硬件上設(shè)置有豐富的向量或陣列運算指令,配置有以流水或陣列方式處理的高速運算器,只需用一條如下的向量加法指令:向量加A向量參數(shù)B向量參數(shù)C向量參數(shù)圖2.5向量編址所用的參數(shù)3.堆棧數(shù)據(jù)表示

(1)有若干高速寄存器組成的硬件堆棧,并附加控制電路讓它與主存中的堆棧區(qū)在邏輯上組成一個整體,訪問的堆棧速度是寄存器的,堆棧的容量是主存的。

(2)有很豐富的堆棧操作類指令且功能很強,直接可對堆棧中的數(shù)據(jù)進行各種運算和處理。

(3)有力地支持高級語言程序的編譯。假定有算術(shù)賦值語句

F=A*B+C/(D-E)

可以很容易通過用逆波蘭表達式:AB*CDE-/+

(4)有力地支持子程序的嵌套和遞歸調(diào)用。

圖2.6用堆棧實現(xiàn)子程序的嵌套和遞歸調(diào)用三、引入數(shù)據(jù)表示的原則

數(shù)據(jù)表示是能由硬件直接識別和引用的數(shù)據(jù)類型。數(shù)據(jù)結(jié)構(gòu)反映各種數(shù)據(jù)元素或信息單元之間的結(jié)構(gòu)關(guān)系。引入數(shù)據(jù)表示的原則一:

是提高系統(tǒng)的效率,即減少實現(xiàn)時間和所需的存貯空間。

衡量實現(xiàn)時間是否減少,主要是看在主存和處理機之間傳送的信息量有否減少。

傳送的信息量越少,其實現(xiàn)時間就會越少。以A、B兩個200×200的定點數(shù)二維數(shù)組相加為例,用PL/1語言編寫很簡單,就是A=A+B

引入數(shù)據(jù)表示的原則二:引入某種高級數(shù)據(jù)表示后,是否提高其通用性和利用率。

如果只對某種數(shù)據(jù)結(jié)構(gòu)的實現(xiàn)效率很高,而對其他數(shù)據(jù)結(jié)構(gòu)的實現(xiàn)效率很低,或者引入這種數(shù)據(jù)表示在應(yīng)用中很少用到,為此所花的硬件過多卻并未在性能上得到好處,必然導(dǎo)致性能價格比的下降,特別是對一些復(fù)雜的數(shù)據(jù)表示。

四、浮點數(shù)尾數(shù)基值大小和下溢處理方法的選擇浮點數(shù)尾數(shù)基值的選擇圖2.8浮點數(shù)可表示實數(shù)域中的值表2.1采用尾基為rm的浮點數(shù)表示的特性及其舉例(1)可表示數(shù)的范圍。由表2.1知,可表示的最小值為,rm增大,將減少;而可表示的最大值為,其中1-2-m部分為常數(shù)。(2)可表示數(shù)的個數(shù)。由表2.1知,可表示數(shù)的個數(shù)為,其中2p+m為常數(shù),所以rm的增大將因增大,而使可表示數(shù)的個數(shù)增多。很容易得出,rm用16與用2的可表示數(shù)的個數(shù)之比為:(3)數(shù)在實數(shù)軸上的分布。對比表2.2和表2.3,可以看出rm用16的比用2的可表示數(shù)在實數(shù)軸上的分布要稀。例如在1/2和2之間,rm為2的有15個值,而rm為16的只有8個值。為了進一步分析數(shù)值分布和rm的關(guān)系,引入表示比。表示比e指的是在相同p、m位數(shù)時,在rm=2的可表示最大值以內(nèi),采用rm>2的可表示浮點數(shù)個數(shù)與rm=2的可表示浮點數(shù)個數(shù)之比。

(4)可表示數(shù)的精度。由于rm愈大,數(shù)在數(shù)軸上的分布變稀,已可得出數(shù)的表示精度下降的結(jié)論。從另一個角度分析,由于機器尾數(shù)位數(shù)m相同情況下,規(guī)格化十六進制尾數(shù)最高數(shù)位中可能出現(xiàn)4位機器位中的左面3位均為0,即rm=2的可能比rm=16的有多3位機器位的精度。若rm=2k,則最壞情況下,尾數(shù)中只用到m-k+1位機器位來表示,所以,可表示數(shù)的精度隨rm增大而單調(diào)下降。

(5)運算中的精度損失。運算中的精度損失是指由于運算過程中尾數(shù)右移出機器字長使得有效數(shù)字丟失后所造成的精度損失,因此它與可表示數(shù)的精度是兩個不同的概念。由于尾數(shù)基值rm取大后,對階移位的機會和次數(shù)要少,且由于數(shù)的表示范圍擴大,也使出現(xiàn)尾數(shù)溢出需右規(guī)的機會減少,這從表2.4對大量指令執(zhí)行后統(tǒng)計得出的浮點加法移位距離和所占百分比情況可以看出。因此rm愈大,尾數(shù)右移的可能性愈小,精度的損失就越小。(6)運算速度。由于rm大時發(fā)生因?qū)﹄A或尾數(shù)溢出需右移及規(guī)格化需左移的次數(shù)顯著減少,因此運算速度可以提高。表2.4浮點加法的移位距離及百分比2.浮點數(shù)尾數(shù)的下溢處理方法(1)截斷法(2)舍入法(3)恒置“1”法(4)查表舍入法圖2.9rm=2,m=2時,各種下溢處理方法的誤差曲線圖2.10k位ROM查表舍入2.2尋址技術(shù)1、在通用寄存器指令集結(jié)構(gòu)中,一般是利用尋址方式指明指令中的操作數(shù)是一個常數(shù)、一個寄存器操作數(shù),或是一個存儲器操作數(shù)。2、當前指令集結(jié)構(gòu)中所使用的一些操作數(shù)尋址方式。一、尋址方式分析大多數(shù)計算機采用主存、通用寄存器、堆棧分類編址,因此有面向寄存器、堆棧和主存的分類尋址方式。

面向寄存器的尋址方式:

操作數(shù)可以取自寄存器或主存,結(jié)果大多保存在寄存器中,少量的送入主存。面向堆棧的尋址方式:

主要訪問堆棧,少量訪問主存或寄存器。面向主存的尋址方式:

主要訪問主存,少量訪問寄存器。

3.尋址方式使用情況統(tǒng)計結(jié)果

立即值尋址方式和偏移尋址方式的使用頻率十分高。圖2.12基址尋址各種信息在存貯器中存放的地址必須是:(1)字節(jié)信息地址為×…××××

(2)半字信息地址為×…×××0

(3)單字信息地址為×…××00

(4)雙字信息地址為×…×000◆程序所使用的偏移量大小分布十分廣泛;◆較小的偏移量和較大的偏移量均占有相當大的比例;◆將偏移量字段的大小設(shè)置為12~16位。這種長度可以支持上述75%~99%基于偏移尋址方式的數(shù)據(jù)訪問中偏移量大小的表示。2.3指令系統(tǒng)的設(shè)計和改進

(InstructionSystemArchitecture)根據(jù)五個因素對計算機指令集結(jié)構(gòu)進行分類:(1)在CPU中操作數(shù)的存儲方法;(2)指令中顯式表示操作數(shù)的個數(shù);(3)操作數(shù)的尋址方式;(4)指令集所提供的操作類型;(5)操作數(shù)的類型和大小;指令一般由兩部分組成:一部分是操作碼,另一部分是操作地址碼。當操作數(shù)地址為隱式時(如堆棧的操作,默認為棧頂),后一部分則不是必須的。根據(jù)指令地址碼部分中顯式指明的地址個數(shù),則可形成零地址、單地址、二地址、三地址及四地址指令。確定指令格式就是選擇指令字中的操作碼長度和地址數(shù)。指令字的長度有定長和變長兩種。

一種指令集中的指令到底要支持哪些類型的操作?

(指令集結(jié)構(gòu)功能設(shè)計問題)

兩種截然不同的方向:

◆復(fù)雜指令集計算機(CISC)強化指令功能,實現(xiàn)軟件功能向硬件功能轉(zhuǎn)移。

◆精簡指令集計算機(RISC)盡可能地降低指令集結(jié)構(gòu)的復(fù)雜性,以達到簡化實現(xiàn),提高性能的目的。 當今指令集結(jié)構(gòu)功能設(shè)計的一個主要趨勢。一、指令格式的優(yōu)化操作碼的優(yōu)化表示表2.5某模型機指令使用頻度舉例

例:現(xiàn)設(shè)一臺模型機,共有7種不同的指令,使用頻度如上表所示。若操作碼用定長碼表示需要3位。指令使用頻率指令使用頻率I10.40I50.04I20.30I60.03I30.15I70.03I40.05按信息論觀點,當各種指令的出現(xiàn)是相互獨立的(實際情況并不都是如此)時候,操作碼的信息源熵(信息源所包含的平均信息量)H為-∑pilog2pi

,由于操作碼信息是用二進制位表示的,則H=-∑pilog2pi

按上表數(shù)據(jù),得:H=0.40×1.32+0.30×1.74+0.15×2.74+0.05×4.32

+0.04×4.64+0.03×5.06+0.03×5.06=2.17

說明表示這7種指令,操作碼平均只需2.17位就夠了。采用3位定長操作碼表示的信息冗余量。相當大。為減少信息冗余,可改用哈夫曼編碼。熵首先是物理學里的名詞。在傳播中是指信息的不確定性,一則高信息度的信息熵是很低的,低信息度的熵則高。具體說來,凡是導(dǎo)致隨機事件集合的肯定性,組織性,法則性或有序性等增加或減少的活動過程,都可以用信息熵的改變量這個統(tǒng)一的標尺來度量。

1948年,(ClaudeE.Shannon)香農(nóng)提出了“信息熵”(shāng)的概念,解決了對信息的量化度量問題。把信息(熵)定義為離散隨機事件的出現(xiàn)概率,信息是事物的不確定性。所謂信息熵,是一個數(shù)學上頗為抽象的概念,在這里不妨把信息熵理解成某種特定信息的出現(xiàn)概率。而信息熵和熱力學熵是緊密相關(guān)的。香農(nóng)信息定義信息熵=-(p1*logp1+p2*logp2+...+p32*logp32)其中,p1,p2,...,p32分別是這

32個球隊奪冠的概率。香農(nóng)把它稱為“信息熵”

(Entropy),一般用符號

H表示,單位是比特。

變量的不確定性越大,熵也就越大,把它搞清楚所需要的信息量也就越大。

信息熵是信息論中用于度量信息量的一個概念。一個系統(tǒng)越是有序,信息熵就越低;反之,一個系統(tǒng)越是混亂,信息熵就越高。所以,信息熵也可以說是系統(tǒng)有序化程度的一個度量。編址方式對各種存儲設(shè)備進行編碼的方法主要內(nèi)容:編址單位、零地址空間個數(shù)、并行存儲器的編址、輸入輸出設(shè)備的編址1.編址單位?常用的編址單位:字編址、字節(jié)編址、位編址、塊編址等。?編址單位與訪問字長一般:字節(jié)編址,字訪問部分機器:位編址,字訪問輔助存儲器:塊編址,位訪問。字節(jié)編址字訪問的優(yōu)點:有利于符號處理?字節(jié)編址字訪問的問題:地址信息浪費對于32位機器,浪費2位地址(最低2位地址)對于64位機器,浪費3位地址存儲器空間浪費讀寫邏輯復(fù)雜大端(BigEndin)與小端(LittleEndian)問題(大端存儲格式,字數(shù)據(jù)的高字節(jié)存儲在低地址中,而字數(shù)據(jù)的低字節(jié)則存放在高地址中,小端存儲格式,低地址中存放的是字數(shù)據(jù)的低字節(jié),高地址存放的是字數(shù)據(jù)的高字節(jié)。

)表2.6操作碼的哈夫曼編碼及擴展操作碼編碼圖2.14哈夫曼樹舉例

只要采用全哈夫曼編碼,操作碼的平均碼長肯定是唯一的。如此例,操作碼的平均碼長非常接近于可能的最短位數(shù)(H)2.17位。這種編碼的信息冗余為擴展操作碼問題,現(xiàn)有14條指令,其使用頻率如下:

I10.15I20.15I30.14

I40.13I50.12I60.11

I70.04I80.04I90.03I100.03I110.02I120.02I130.01I140.01

若只用兩種碼長的擴展碼編碼,其平均碼長至少為多少位?

采用只有兩種碼長的擴展操作碼,根據(jù)14條指令所給出的使用頻度值分成兩群,讓使用頻度較高的6條指令用3位操作碼編碼表示。如,用000~101分別表示使用頻度為0.15、0.15、0.14、0.13、0.12、0.11的指令的操作碼。余下110和111兩個3位碼作為長碼的擴展標志,相當于一個二進制位,再擴展2位二進制碼,既相當與共有3位。從而用5位碼就可以表示8條使用頻度較低的指令。因此,求得操作碼的平均碼長為:

3*(0.15+0.15+0.14+0.13+0.12+0.11+5*(0.04+0.04+0.03+0.03+0.02+0.02+0.01+0.01)=3.4IBM370指令中訪存地址有如下形式:IBM370的指令中為訪存,采用基址尋址,地址碼可有如下形式:圖2.18在定長指令字內(nèi)實現(xiàn)多種地址制

如果讓最常用的操作碼最短,其地址碼字段個數(shù)越多,就越能使指令的功能增強,越可以從宏觀上減少所需的指令條數(shù)。例如,為實現(xiàn)A+B→C,采用單地址指令需經(jīng)取A、加B、送C3條指令完成,而采用3地址指令,則只需一條指令即可完成。加ABC

不僅縮短程序的占用空間,也減少了訪存取指令次數(shù),加快程序執(zhí)行的速度。雖然IBM370大部分都采用8位定長操作碼,但對某些指令(尤其是原360指令系統(tǒng)中沒有的),如啟動I/O、測試I/O、暫停I/O、頁面清除、訪問方式位的復(fù)位、絕對時鐘設(shè)置等特殊指令,其操作碼由8位擴展到16位。指令字格式優(yōu)化措施:(1)縮短操作碼的平均碼長;(2)縮短碼的長度;(3)采用地址限制,加快程序執(zhí)行速度;(4)采用長操作碼與短地址碼配合,具有靈活的地址形式;(5)按整數(shù)邊界法則,采用靈活的指令字長度;目的:減少信息冗余,利于指令系統(tǒng)擴充

指令格式的優(yōu)化問題,就是以較少的格式,盡可能短的碼長來實現(xiàn)各種指令編碼。

指令字包括操作碼和地址碼,所以對這兩部分都采取優(yōu)化措施。1、操作碼的優(yōu)化。這要用到霍夫曼壓縮的概念?;舴蚵鼔嚎s法是一種頻率相關(guān)的編碼方法,即出現(xiàn)頻率高的字符編碼短,頻率低的字符編碼長,縮短平均碼長。用霍夫曼樹實現(xiàn)霍夫曼編碼。根據(jù)所給的各種指令使用頻率,把它們從小到大依次排好作為葉結(jié)點(相同的頻率可任取一個排在前),然后把最小的兩個結(jié)點值(頻率)相加,形成一個新結(jié)點,以這個結(jié)點的值與其他的葉結(jié)點值比較大小,仍舊取最小的兩個結(jié)點值合并產(chǎn)生新結(jié)點,直到最終合并為一個根(通常這個值是1或100)。簡單地記為:從小到大排序,最小兩個合并,重復(fù)上述過程,只剩一個結(jié)束。2、地址碼的優(yōu)化。指令碼與地址碼合理安排才能使指令格式得到優(yōu)化。由于操作碼優(yōu)化后是變長的編碼,如果整條指令是定長的,那么使地址碼的寬度應(yīng)隨不同指令變化,以配合操作碼形成定長指令;也可以通過改變指令字中的地址數(shù)和地址碼的長度,以使單地址及多址都可以在一條指令中使用;如果操作碼和地址碼之外還有空余的碼位,則設(shè)法用來存放立即操作數(shù)或常數(shù)。

當今的RISC機指令系統(tǒng)中,全都是用定字長指令格式。2.4指令系統(tǒng)的發(fā)展和改進CISC指令集結(jié)構(gòu)的功能設(shè)計CISC結(jié)構(gòu)追求的目標:強化指令功能,減少程序的指令條數(shù),以達到提高性能的目的。增強指令功能主要是從如下幾個方面著手:1.

提高運算型指令功能提高傳送指令功能增加程序控制指令功能

面向目標程序增強指令功能2.面向高級語言的優(yōu)化實現(xiàn)來改進

面向高級語言的優(yōu)化就是盡可能縮小高級語言與機器語言之間的語義差距,以利于支持高級語言編譯系統(tǒng),縮短編譯程序的長度和編譯所需的時間。p59

面向高級語言和編譯程序改進指令系統(tǒng)

(1)增加對高級語言和編譯系統(tǒng)支持的指令功能

對源程序中各種高級語言語句進行使用頻度的統(tǒng)計與分析,對使用頻度高的語句,可以設(shè)置專門的指令或采取措施增加相應(yīng)指令的功能,以提高其編譯速度和執(zhí)行速度。

從面向編譯程序,尤其是從優(yōu)化代碼生成的角度進行考慮,增加指令集結(jié)構(gòu)的規(guī)整性來改進指令系統(tǒng)。規(guī)整性:沒有或盡可能減少例外的情況和特殊的應(yīng)用,以及所有運算都能對稱、均勻地在存儲器單元或寄存器單元之間進行。(2)

高級語言計算機指令系統(tǒng)

◆面向高級語言(HL)的機器縮小機器語言和高級語言的語義差距。

◆間接執(zhí)行型高級語言機器高級語言和機器語言是一一對應(yīng)的,用匯編的方法(可以用軟件實現(xiàn),也可以用硬件實現(xiàn))把高級語言源程序翻譯成機器語言程序。◆直接執(zhí)行型高級語言機器高級語言就作為機器語言,直接由硬件或固件對高級語言源程序的語句逐條進行解釋以執(zhí)行它。面向操作系統(tǒng)的優(yōu)化實現(xiàn)改進指令系統(tǒng)

操作系統(tǒng)的實現(xiàn)在很大程度上取決于體系結(jié)構(gòu)的支持。

(1)主要表現(xiàn)在對以下方面的支持中斷處理進程管理存儲管理和保護系統(tǒng)工作狀態(tài)的建立與切換(2)設(shè)置指令支持系統(tǒng)工作狀態(tài)和訪問方式轉(zhuǎn)移的指令支持進程轉(zhuǎn)移的指令支持進程同步和互斥的指令

只有Load和Store操作指令才訪問存儲器,其它指令操作均在寄存器之間進行;以簡單有效的方式支持高級語言。(1)跳轉(zhuǎn):當控制指令為無條件改變控制流時,稱之為“跳轉(zhuǎn)”。(2)分支:當控制指令是有條件改變控制流時,稱之為“分支”。(3)控制流程的各種改變情況條件分支跳轉(zhuǎn)過程調(diào)用過程返回《周易》又稱《易經(jīng)》,是秦漢后直至今日無人真正通曉的上古典籍?!吨芤住贩譃榻?jīng)部和傳部,經(jīng)部之原名就為《周易》,是對四百五十卦易卦典型象義的揭示和相應(yīng)吉兇的判斷,而傳部含《文言》、《彖傳》上下、《象傳》上下、《系辭傳》上下、《說卦傳》、《序卦傳》、《雜卦傳》,共七種十篇,稱之為“十翼”,是孔門弟子對《周易》經(jīng)文的注解和對筮占原理、功用等方面的論述。周易是個系統(tǒng)工程,歷史上歷代名人志士不斷地研究之、并充實其內(nèi)容,使其更具有旺盛的生命力??鬃咏?jīng)過多年磨難,從53歲開始學習"周易",他非??炭嗾J真,致使串連竹簡的牛皮繩磨斷三次。孔子對卦辭和爻辭作了進一步的詮釋和發(fā)揮,撰寫了解讀文字,形成了"周易?易傳",儒教從此誕生。"易傳"使"周易"的內(nèi)容更邏輯化、系統(tǒng)化,他提出的“一陰一陽之謂道”,首次把宇宙萬物分為既對立又統(tǒng)一的兩大類,是最早的辯證法思想的形象表述。由此,"周易"用最簡潔的語言,概括了極其博大乃至無窮的內(nèi)容。其獨特的理論思維模式,為人們提供了一個從時間、地點、條件全方位分析問題、認識事物的思想方法。

易卦系統(tǒng)最基本的要素為陰陽概念,而陰陽概念包括陰陽的性質(zhì)和狀態(tài)兩層意義。如果不理會陰陽的狀態(tài),只論及其性質(zhì),則可以用陽爻(-)和陰爻(--)表示陰陽。將上述陰陽爻按照由下往上重疊三次,就形成了八卦,即“乾,坤,震,巽,坎,離,艮,兌”八個基本卦,稱為八經(jīng)卦。再將八經(jīng)卦兩兩重疊,就可以得到六個位次的易卦,共有六十四卦。六十四卦稱為六十四別卦,每一卦都有特定的名稱。如果再考慮陰陽的狀態(tài),則陰陽概念又進一步劃分為“老陰,老陽,少陰,少陽”四種情形,可以用“X,O,--,-,”四種符號分別代表之。六十四別卦每一卦的每個位次上都可能有四種陰陽狀態(tài),于是全部易卦系統(tǒng)就共有4096種不同的卦。如果將陰陽性質(zhì)構(gòu)成相同的各個卦放在一起,就形成了主卦卦名相同的六十四種分系統(tǒng),可以稱為某某卦系。

《周易》經(jīng)部文字說明的內(nèi)容就是對六十四卦系中部分易卦的象征意義的解釋以及相應(yīng)的人事吉兇判定(稱為占斷)。其中每一卦系的第一條內(nèi)容是相應(yīng)的全靜卦的占斷,其后的六條(乾坤卦系有七條)內(nèi)容是順次排列的對相應(yīng)卦系一爻動的卦的占斷。秦漢以后的易學對此都存在錯誤或者說模糊的認識。圖2.24各種機器的語義差距面向操作系統(tǒng)的優(yōu)化改進

面向操作系統(tǒng)的優(yōu)化就是進一步縮小操作系統(tǒng)與體系結(jié)構(gòu)之間的語義差距,以利于減少操作系統(tǒng)運行所需的輔助時間,節(jié)省操作系統(tǒng)軟件所占用的存儲空間。操作系統(tǒng)的實現(xiàn)依賴于體系結(jié)構(gòu)對它的支持。許多傳統(tǒng)機器指令例如算術(shù)邏輯指令、字符編輯指令、移位指令、控制轉(zhuǎn)移指令等,都可用于操作系統(tǒng)的實現(xiàn)。此外,還有相當一部分指令是專門為實現(xiàn)操作系統(tǒng)的各種功能而設(shè)計的。

IBM360最初并沒有支持公用區(qū)管理設(shè)置專門的指令,因此在A進程中,為使用公用區(qū),就需要安排如下的指令串:A1:取L ;L為一個字節(jié),存放公用區(qū)可否使用的標志判(L)

0 ;(L)0為0,置條件碼為00;(L)0為1,置條件碼為01

送全“1”到L ;置“1”(L)

0

條件轉(zhuǎn)移A1 ;條件碼為01時轉(zhuǎn)移調(diào)用公用區(qū)K1 ;K1為K公用區(qū)子程序入口

…K公用區(qū)子程序為:K1:取C ;將公用單元C的值取到寄存器增值 ;在寄存器中完成增值存C ;將增值結(jié)果存回公用單元C

清除L ;置“0”(L)

0

返回 ;返回調(diào)用程序

采用“比較與交換”指令后,上述A進程給公用單元C的增值程序就相應(yīng)改成(B進程也類似):

“比較與交換”指令的其他用法。使(R1)=全0,(R3)=全1,C中存標志位,就可以替代“測試與置定”指令。

“比較與交換”指令要比“測試與置定”指令靈活。

這兩條指令不只是用在單處理機上,也可以用在多處理機上支持操作系統(tǒng)實現(xiàn)進程間通訊的同步和互斥,它們的功能是一般的機器指令無法實現(xiàn)的。盡管增加了“比較與交換”指令,但為保證軟件的向后兼容,“測試與置定”指令仍被保留。

為了縮短系統(tǒng)結(jié)構(gòu)與操作系統(tǒng)的語義差距還可以考慮的第三個重要思路是,把操作系統(tǒng)由軟件子程序?qū)崿F(xiàn)的某些功能進行硬化或固化,改用硬件和固件實現(xiàn)。例如,VAX—11/780,專門為進程切換設(shè)置有關(guān)“保存進程關(guān)聯(lián)信息”和“恢復(fù)進程關(guān)聯(lián)信息”的指令;將原先由子程序?qū)崿F(xiàn)的功能進行硬化。堆棧型機器HP—3000設(shè)置了功能性很強的PCAL(PROCEDURECALL,程序調(diào)用)和EXIT(出口返回)兩條專用指令來支持程序嵌套和遞歸調(diào)用,簡化子程序工作區(qū)的分配管理,這兩條指令的語義非常接近于高級語言CALL和RETURN語句的語義,它將原由軟件實現(xiàn)的調(diào)用、返回功能改為用微程序固件解釋實現(xiàn),這實際上也是對操作系統(tǒng)存貯管理的有力支持。

按簡化指令功能的方向發(fā)展與改進指令系統(tǒng)

1.精簡指令系統(tǒng)思想的提出

針對CISC結(jié)構(gòu)存在的這些問題,Patterson等人提出了精簡指令系統(tǒng)計算機的設(shè)想。通過精減指令來使計算機結(jié)構(gòu)變得簡單、合理、有效,并克服CISC結(jié)構(gòu)的上述缺點。他們提出了設(shè)計RISC機器應(yīng)當遵循的一般原則。這些原則包括:

(1)確定指令系統(tǒng)時,只選擇使用頻度很高的那些指令,在此基礎(chǔ)上增加少量能有效支持操作系統(tǒng)和高級語言實現(xiàn)及其他功能的最有用的指令,讓指令的條數(shù)大大減少,一般不超過100條。(2)減少指令系統(tǒng)可采用的尋址方式,一般不超過兩種。簡化指令的格式,使之也限制在兩種之內(nèi),并讓全部指令都具有相同的長度。

(3)讓所有指令在一個機器周期內(nèi)完成。

(4)擴大通用寄存器的個數(shù),(一般不少于32個寄存器,)盡可能減少訪存操作,指令中只有存(STORE)、取(LOAD)指令才可訪存,其他指令的操作一律都在寄存器間進行。

(5)大多數(shù)指令都采用硬聯(lián)控制實現(xiàn),少數(shù)指令采用微程序?qū)崿F(xiàn)。(6)通過精簡指令和優(yōu)化設(shè)計編譯程序,以簡單有效的方式來支持高級語言的實現(xiàn)。CISC結(jié)構(gòu)存在的缺點(1)在CISC結(jié)構(gòu)的指令系統(tǒng)中,各種指令的使用頻率相差懸殊。(2)CISC結(jié)構(gòu)指令系統(tǒng)的復(fù)雜性帶來了計算機體系結(jié)構(gòu)的復(fù)雜性,這不僅增加了研制時間和成本,而且還容易造成設(shè)計錯誤。(3)CISC結(jié)構(gòu)指令系統(tǒng)的復(fù)雜性給VLSI設(shè)計增加了很大負擔,不利于單片集成.(4)CISC結(jié)構(gòu)的指令系統(tǒng)中,許多復(fù)雜指令需要很復(fù)雜的操作,因而運行速度慢。(5)在CISC結(jié)構(gòu)的指令系統(tǒng)中,由于各條指令的功能不均衡性,不利于采用先進的計算機體系結(jié)構(gòu)技術(shù)(如流水技術(shù))來提高系統(tǒng)的性能。執(zhí)行頻率排序80X86指令指令執(zhí)行頻率(%執(zhí)行指令總數(shù))1Load22%2條件分支20%3比較16%4Store12%5加8%6與6%7減5%8寄存器-寄存器間數(shù)據(jù)移動4%9調(diào)用1%10返回1%合計96%Intel80X86最常用的十條指令

RISC目的使得計算機體系結(jié)構(gòu)更加簡單、更加合理和更加有效,克服CISC結(jié)構(gòu)的缺點,使機器速度更快,程序運行時間縮短,從而提高計算機系統(tǒng)的性能。RISC設(shè)計原則選取使用頻率最高的指令,并補充一些最有用的指令;每條指令的功能應(yīng)盡可能簡單,并在一個機器周期內(nèi)完成;所有指令長度均相同;只有Load和Store操作指令才訪問存儲器,其它指令操作均在寄存器之間進行;以簡單有效的方式支持高級語言。RISC結(jié)構(gòu)采用的基本技術(shù)

(1)遵循按RISC機器一般原則設(shè)計的技術(shù);

(2)在邏輯上采用硬聯(lián)實現(xiàn)和微程序固件實現(xiàn)相結(jié)合的技術(shù);

(3)在CPU中設(shè)置數(shù)量較大的寄存器組,并采用重疊寄存器窗口的技(4)指令的執(zhí)行采用流水和延遲轉(zhuǎn)移技術(shù)設(shè)X、Y為主存單元,Rd,R0,Rb,Rc為寄存器單元,且R0中放值0。有一個未采用延遲轉(zhuǎn)移的程序:

當執(zhí)行到地址為212的條件轉(zhuǎn)移指令時,如果轉(zhuǎn)移成功,則預(yù)取的213指令就應(yīng)作廢,即不應(yīng)將Rd的內(nèi)容轉(zhuǎn)送到Rb。為了保證程序的正確性,就應(yīng)在212后面插入一條“加R0,R0,R0

”指令,相當于插入一條空操作指令(該指令執(zhí)行結(jié)果仍然存的是0),如下列左邊的程序所示。因此,不管212是否成功轉(zhuǎn)移,都不會影響到其他運算的中間結(jié)果或最后結(jié)果,但這樣,不管條件轉(zhuǎn)移是否發(fā)生總要多花一個周期。(5)采用認真設(shè)計和優(yōu)化編譯系統(tǒng)設(shè)計的技術(shù)。設(shè)A、A+1,B,B+1為主存單元,則程序取A,Ra;(A)→Ra

存Ra,B ;(Ra)→B

取A+1,Ra ;(A+1)→Ra

存Ra,B+1 ;(Ra)→B+

實現(xiàn)的是將A和A+1兩個主存單元的內(nèi)容轉(zhuǎn)存到B和B+1兩個主存單元。由于取和存兩條指令交替進行,又使用同一個寄存器Ra,出現(xiàn)寄存器R

a必須先取得A的內(nèi)容,然后才能由Ra存入B,即上條指令未結(jié)束之前,下條指令無法開始。后面的指令也是如此。因此,指令之間實際上不能流水,每條指令均需兩個機器周期。如果通過編譯調(diào)整其指令的順序為取A,Ra ;(A)→Ra

取A+1,Rb ;(A+1)→Rb

存Ra,B ;(Ra)→B

存Rb,B+1 ;(Rb)→B+13.RISC技術(shù)的發(fā)展采用RISC結(jié)構(gòu)后可以帶來如下明顯的優(yōu)點:簡化指令系統(tǒng)設(shè)計,適合超大規(guī)模集成電路實現(xiàn);(2)提高機器的執(zhí)行速度和效率;(3)降低設(shè)計成本,提高了系統(tǒng)的可靠性;(4)可以提供直接支持高級語言的能力,簡化編譯程序的設(shè)計。典型的RISC型機器基本特征RISC結(jié)構(gòu)還存在某些問題:

(1)由于指令少,使原在CISC上由單一指令完成的某些復(fù)雜功能現(xiàn)在需要用多條RISC指令才能完成,這實際上加重了匯編語言程序員的負擔,增加了機器語言程序的長度,從而占用了較大的存貯空間,加大了指令的信息流量。(2)對浮點運算和虛擬存貯器的支持雖有很大加強,但仍不夠理想。

(3)RISC機器上的編譯程序要比CISC機器上的難寫。圖2.27CLIPPER機的概念性結(jié)構(gòu)代表性的RISC處理機的特征代表性的RISC處理機的特征(續(xù))在機器上直接運行的程序是由指令組成指令系統(tǒng)是軟件與硬件之間的一個主要分界面,也是他們之間互相溝通的一座橋梁。?硬件設(shè)計人員采用各種手段實現(xiàn)指令系統(tǒng),而軟件設(shè)計人員則使用這些指令系統(tǒng)編制系統(tǒng)軟件和應(yīng)用軟件,用這些軟件來填補指令系統(tǒng)與人們習慣的使用方式之間的語義差距。?指令系統(tǒng)設(shè)計必須由軟件設(shè)計人員和硬件設(shè)計人員共同來完成。?指令系統(tǒng)發(fā)展相當緩慢,需要用軟件來填補的東西也就越來越多。按簡化指令功能的方向發(fā)展與改進指令系統(tǒng)1.精簡指令系統(tǒng)思想的提出

針對CISC結(jié)構(gòu)存在的這些問題,Patterson等人提出了精簡指令系統(tǒng)計算機的設(shè)想。通過精減指令來使計算機結(jié)構(gòu)變得簡單、合理、有效,并克服CISC結(jié)構(gòu)的上述缺點。他們提出了設(shè)計RISC機器應(yīng)當遵循的一般原則。這些原則包括:

(1)確定指令系統(tǒng)時,只選擇使用頻度很高的那些指令,在此基礎(chǔ)上增加少量能有效支持操作系統(tǒng)和高級語言實現(xiàn)及其他功能的最有用的指令,讓指令的條數(shù)大大減少,一般不超過100條。(2)大大減少指令系統(tǒng)可采用的尋址方式的種類,一般不超過兩種。簡化指令的格式,使之也限制在兩種之內(nèi),并讓全部指令都具有相同的長度。

(3)讓所有指令都在一個機器周期內(nèi)完成。

(4)擴大通用寄存器的個數(shù),一般不少于32個寄存器,以盡可能減少訪存操作,所有指令中只有存(STORE)、取(LOAD)指令才可訪存,其他指令的操作一律都在寄存器間進行。

(5)為提高指令執(zhí)行速度,大多數(shù)指令都采用硬聯(lián)控制實現(xiàn),少數(shù)指令采用微程序?qū)崿F(xiàn)。(6)通過精簡指令和優(yōu)化設(shè)計編譯

溫馨提示

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

評論

0/150

提交評論