版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
計算機系統(tǒng)結(jié)構(gòu)主講蔡啟先
第2章
計算機指令系統(tǒng)
第2章要點2、數(shù)據(jù)表示的概念及其方法;3、數(shù)據(jù)的尋址方式;4、指令格式的設(shè)計;5、RISC和CISC指令系統(tǒng)。1、指令系統(tǒng)的涵義;2.22.12.42.3
指令系統(tǒng)是計算機系統(tǒng)軟件與硬件接口及界面的一個主要標志。
指令系統(tǒng)的設(shè)計必須由硬件和軟件人員共同完成。
第2章計算機指令系統(tǒng)§2.1數(shù)據(jù)類型§2.2尋址技術(shù)§2.3指令系統(tǒng)的設(shè)計§2.4指令系統(tǒng)的改進本章小結(jié)§2.1數(shù)據(jù)類型2.1.2
數(shù)據(jù)表示和數(shù)據(jù)結(jié)構(gòu)2.1.3
浮點數(shù)據(jù)表示(略)2.1.4
自定義數(shù)據(jù)表示2.1.1
數(shù)據(jù)類型2.1.5
向量數(shù)組數(shù)據(jù)表示2.1.6
引入數(shù)據(jù)表示的原則數(shù)據(jù)類型:具有一組值的集合,且定義了作用于該集合的操作集。如:定點數(shù)據(jù)類型及定點數(shù)運算;數(shù)組數(shù)據(jù)類型及數(shù)組的運算等。數(shù)據(jù)類型可分為基本類型和結(jié)構(gòu)類型。基本數(shù)據(jù)類型包括二進制位、二進制位串、整數(shù)、十進制數(shù)、浮點數(shù)、字符、布爾數(shù)等。所有系統(tǒng)結(jié)構(gòu)都支持基本數(shù)據(jù)類型。2.1.1數(shù)據(jù)類型結(jié)構(gòu)數(shù)據(jù)類型是指由一組相互有關(guān)的數(shù)據(jù)元素復(fù)合而成的數(shù)據(jù)類型。如數(shù)組、字符串、向量、堆棧、隊列、記錄等。它可分為系統(tǒng)數(shù)據(jù)類型、用戶自定義數(shù)據(jù)類型。
基本類型和結(jié)構(gòu)類型反映在系統(tǒng)結(jié)構(gòu)設(shè)計上,就是數(shù)據(jù)表示和數(shù)據(jù)結(jié)構(gòu)。
數(shù)據(jù)表示:能由機器硬件直接識別和被指令系統(tǒng)直接調(diào)用的數(shù)據(jù)類型。即:可以直接被計算器指令運算和處理,如整數(shù)、浮點數(shù)、向量等。數(shù)據(jù)結(jié)構(gòu)研究的是面向系統(tǒng)軟件和應(yīng)用軟件所需要處理的各種數(shù)據(jù)類型,如串、隊、棧、向量、陣列、鏈表、樹、圖等,它是結(jié)構(gòu)數(shù)據(jù)類型的組織方式。
2.1.2數(shù)據(jù)表示與數(shù)據(jù)結(jié)構(gòu)問:8088具有浮點數(shù)據(jù)表示嗎?8088能進行浮點運算嗎?
數(shù)據(jù)表示是構(gòu)成數(shù)據(jù)結(jié)構(gòu)的元素,數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)表示是軟、硬件的界面關(guān)鍵在于確定哪些數(shù)據(jù)類型用數(shù)據(jù)表示實現(xiàn),而哪些采用數(shù)據(jù)結(jié)構(gòu)來實現(xiàn)。這本質(zhì)上是一個軟硬件取舍的問題。(1)簡單的、常用的、通用的數(shù)據(jù)類型采用數(shù)據(jù)表示;如int、float、Boolean、String、stack等。
(2)復(fù)雜的數(shù)據(jù)類型一般通過數(shù)據(jù)結(jié)構(gòu)實現(xiàn),或通過軟硬件聯(lián)合設(shè)計實現(xiàn)。如table、Graph、Tree...等實際系統(tǒng)中的設(shè)計例:向量數(shù)據(jù)結(jié)構(gòu)變址操作對向量、陣列數(shù)據(jù)結(jié)構(gòu)的支持1。浮點數(shù)據(jù)表示的設(shè)計
浮點數(shù)的表示方式實際上就是浮點數(shù)的存儲格式,假定浮點數(shù)存儲格式:2.1.3浮點數(shù)據(jù)表示尾數(shù)m指數(shù)e
尾符S 尾數(shù)M階符F階碼E 該格式涉及6個參數(shù),確定原則是:(1)尾數(shù)m的數(shù)制和碼制一般采用原碼定點小數(shù)表示。因為原碼表示直觀,雖然加減法不如補碼,但是乘除法運算比補碼表示簡單。另外,由于有了指數(shù)表示,采用定點小數(shù)表示能簡化運算特別是乘除法運算。(2)指數(shù)e的數(shù)制和碼制一般采用移碼定點整數(shù)表示。移碼使浮點零和機器零一致,如果不一致,對機器硬件和軟件的設(shè)計都會產(chǎn)生很多麻煩。例如要判斷運算結(jié)果是否為零必須作特殊的處理。但是移碼的加減法運算要比補碼復(fù)雜,這對浮點乘除法不利。指數(shù)e主要用來擴大浮點數(shù)的表數(shù)范圍,用整數(shù)表示足夠了。(3)尾數(shù)M的基值rm一般來說,尾數(shù)基值取大,會擴大浮點數(shù)的表數(shù)范圍、增加可表示數(shù)的個數(shù)、減少移位次數(shù)、降低右移造成的精度損失和提高運算速度。但是尾數(shù)基值取大,會降低數(shù)據(jù)的表示精度,使數(shù)值的分布變稀。因此rm的選取要根據(jù)應(yīng)用需要來綜合平衡。可以證明,在浮點數(shù)的總字長一定的情況下,尾數(shù)M的基值rm選擇2較為適宜,此時浮點數(shù)具有最大的表數(shù)范圍和最高的表數(shù)精度。如果再采用隱藏位表示方法,則這種浮點數(shù)表示方法又具有最高的表數(shù)效率。所謂隱藏位表示方法是指:由于浮點數(shù)尾數(shù)必須規(guī)格化,則其小數(shù)點后的第一位數(shù)碼是固定的;這樣在浮點數(shù)的存儲和傳輸過程中,小數(shù)點后的第一位可以不表示出來,只在計算時恢復(fù)這一隱藏位,或采用特殊方法對運算結(jié)果進行修正。(4)階碼E的基值re一般通用計算機中,浮點數(shù)階碼的基值都取2。其原因一是機器存儲基于二進制形態(tài);二是若尾數(shù)基值為2,階碼基值取2有利于尾數(shù)規(guī)格化時的移位操作;三是指數(shù)e主要用來擴大浮點數(shù)的表數(shù)范圍,采用其它進制并不比基2優(yōu)越多少。
(5)尾數(shù)M字長p和階碼E字長q目前多數(shù)計算機的短浮點數(shù)是32位,長浮點數(shù)是64位。假定浮點數(shù)的尾數(shù)用原碼定點小數(shù)表示,尾數(shù)基值為2,浮點數(shù)的指數(shù)用移碼定點整數(shù)表示,階碼基值為2。根據(jù)實際需求給出表數(shù)范圍不小于N(N為能表示的最大正數(shù)),表數(shù)精度不低于δ,并且要求尾數(shù)和指數(shù)都正負對稱。由表數(shù)范圍要求,得:則
得到階碼字長:
(2.1)
由表數(shù)精度的要求,得到:
則得到尾數(shù)字長:(2.2)
由(2.1)和(2.2)可計算出浮點數(shù)的階碼字長q(上取整)和尾數(shù)字長p(上取整)。通常要適當調(diào)整尾數(shù)字長p的階碼字長q的取值,使浮點數(shù)的總字長為一個合理的數(shù)值。
例2.1
設(shè)計一種浮點數(shù)格式,其表數(shù)范圍不小于10-37至1037,正負數(shù)對稱,表數(shù)精度不低于10-16。解:依題意,取表數(shù)范圍N=1037,表數(shù)精度δ=10-16,由式(2.1),得:
上取整,得階碼字長q=7。由式(2.2),得:上取整,得尾數(shù)字長p=54。這樣,加上一個尾數(shù)符號位和一個階碼符號位,浮點數(shù)的總字長為:p+q+2=54+7+2=63實際浮點數(shù)總字長應(yīng)為8的倍數(shù),故取浮點數(shù)總字長為64位。多出的一位可以加到尾數(shù)字長p中用于提高浮點數(shù)的表數(shù)精度,也可以加到階碼字長q中來擴大浮點數(shù)的表數(shù)范圍。暫且讓p增加一位,即p=55。圖2-3是設(shè)計出來的浮點數(shù)格式。尾符S尾數(shù)M階符F階碼E位序6362760長度1p=551q=7圖2-3例2.1浮點數(shù)的設(shè)計格式
現(xiàn)代計算機普遍采用IEEE754標準來表示浮點數(shù),該標準規(guī)定了4種浮點數(shù)的表示格式:即單精度(32位浮點數(shù))、雙精度(64位浮點數(shù))、單精度擴展(≥43位,不常用)和雙精度擴展(≥79位,通常采用80位進行實現(xiàn))。
2。浮點運算尾數(shù)下溢處理方法
浮點數(shù)據(jù)的表示還應(yīng)考慮運算中的精度損失。運算中的精度損失是指由于運算過程中尾數(shù)右移出機器字長使得有效數(shù)字丟失后所造成的精度損失,它與可表示數(shù)的精度是兩個不同的概念。減少運算中的精度損失的關(guān)鍵是處理好運算中尾數(shù)超出字長的部分,通常稱為浮點數(shù)尾數(shù)的下溢處理。常用到的下溢處理方法有:截斷法、舍入法、恒置法、查表舍入法,判斷方法的優(yōu)劣是考察最大誤差、平均積累誤差及實現(xiàn)成本。
(1)截斷法。方法是將尾數(shù)超出機器字長的部分截去。設(shè)尾數(shù)的有效數(shù)位數(shù)為m,則最大誤差接近于2-m,如將±0.xxxx…x111…1中處于有效字長數(shù)值xxxx…x外的111…1全去掉。此法對正數(shù)而言,總是減小尾數(shù),故總是產(chǎn)生負誤差;反之,對負數(shù)總是產(chǎn)生正誤差,不過綜合考慮有利于積累誤差的消除。但如果正數(shù)區(qū)和負數(shù)區(qū)分別考慮,則積累誤差很大且無法調(diào)節(jié)。因此,盡管截斷法最簡單,不需硬件,也不占用時間,但是很少使用。
(2)恒置法。又稱恒置r/2法(r是尾數(shù)的基值),或恒置1法(r=2時)。其方法是:把機器運算規(guī)定的字長的最低位恒置成r/2。如r=2時,尾數(shù)有效位的最低位恒為1;如r=16時,尾數(shù)有效位的最低位恒為8。在正數(shù)區(qū),若原尾數(shù)有效位末位為0,恒置法將產(chǎn)生正誤差,若原尾數(shù)有效位末位為1,恒置法將產(chǎn)生負誤差,總的積累誤差會很小。負數(shù)區(qū)也和正數(shù)區(qū)的積累誤差一樣。最大誤差發(fā)生在有效字長數(shù)值xxxx…x1外的111…1全去掉,或有效字長數(shù)值xxxx…x0后都是0的情況,即最大誤差的絕對值接近于2-m。
恒置法的主要缺點是表數(shù)精度比較低,這是由于尾數(shù)的最低位被恒置成r/2,因而損失了一位精度。其主要優(yōu)點是容易實現(xiàn),在正數(shù)區(qū)和負數(shù)區(qū)的積累誤差都比較小,而且達到平衡。目前恒置法應(yīng)用較為廣泛。
(3)舍入法。
此法在十進制中稱為4舍5入法,在二進制中為0舍1入法,在十六進制中為7舍8入法。即舍入法只看規(guī)格化尾數(shù)有效字長之后的1位,而不管后續(xù)的其它位,這樣便于硬件實現(xiàn)。但是舍入法可能要作1次加法,尾數(shù)可能溢出,為此要做右規(guī),又增加了實現(xiàn)的難度。不過實現(xiàn)難度換來的是誤差的減少。與恒置法相比,舍入法尾數(shù)精度提高了1位,且在正數(shù)區(qū)和負數(shù)區(qū)的積累誤差都能達到完全平衡。由于實現(xiàn)困難,目前很少使用,主要用于浮點運算的程序處理。
(4)查表舍入法。
此法只考察尾數(shù)有效字長的最低n位和超出尾數(shù)有效字長部分的最高k位,根據(jù)它們的情況列出一張對應(yīng)的舍入處理表,通過查表直接進行舍入操作。查表舍入法的主要優(yōu)點是可以按照實際情況來科學地安排舍入規(guī)則,不僅使最大誤差減至很小,而且使積累誤差達到完全平衡,其精度與舍入法相當,而誤差更小。通常,舍入處理表可存放在ROM或PLA中,增加成本不多。查表無需計算,便捷,速度快,又通過改變得到誤差控制,相對其它下溢處理方法優(yōu)勢明顯,是一種很有前途的浮點運算尾數(shù)下溢處理方法。
(1)問題的提出:
①數(shù)據(jù)有各種類型,如何辯識則是一個重要的問題;
②數(shù)據(jù)類型既可以通過指令指定,也可以通過數(shù)據(jù)自已表示。
③當數(shù)據(jù)采用指令表示時,將產(chǎn)生大量的指令,即使是同類型的指令也可能會因操作數(shù)類型不同而產(chǎn)生大量的指令。如IBM370的加法指令就有8條。Intel86x中的乘法指令也有Mul、
Imul兩種。鑒于以上理由,人們提出了自定義數(shù)據(jù)表示法。2.1.4自定義數(shù)據(jù)表示
(2)自定義數(shù)據(jù)表示的兩種方法①帶標識符的數(shù)據(jù)表示法:用以定義某個數(shù)據(jù)的數(shù)據(jù)類型和數(shù)值的數(shù)據(jù)表示。②數(shù)據(jù)描述符表示法:用以定義復(fù)雜數(shù)據(jù)結(jié)構(gòu)(如向量、矩陣、多維數(shù)組、記錄等)的數(shù)據(jù)表示。(3)帶標識符的數(shù)據(jù)表示類型標志功能類型數(shù)值00:操作數(shù)01:指令11:標志10:地址000:二進制001:十進制011:定點數(shù)100:浮點數(shù)010:16進制特點:
A.標志符自定義數(shù)據(jù)類型,不僅可以定義數(shù)據(jù)類型,而且還可以用來描述機器中用到的各種有用信息。
B.標志符定義法,只對系統(tǒng)軟件和高級語言的編譯器建立,而對高級程序員則透明。標志符數(shù)據(jù)表示時存貯空間的開銷問題?主要優(yōu)點:
A.簡化了指令系統(tǒng)和程序設(shè)計。
B.簡化了編譯程序。
C.便于實現(xiàn)一致性檢查。
D.有可能由硬件自動變換數(shù)據(jù)類型。
E.支持數(shù)據(jù)庫系統(tǒng)實現(xiàn)與數(shù)據(jù)類型無關(guān)的要求。
F.為軟件調(diào)試和應(yīng)用軟件開發(fā)提供了支持。帶來的問題:
A.增加程序所占存貯空間。
B.降低指令執(zhí)行的速度。問題是局部的微觀上的,整體上宏觀上大大提高了時空效率。
形式化分析:
假設(shè)有A、B兩臺處理機如下:
A
處理機:沒有采用標志符表示法,W=32bits,(指令和Data都一樣)
B處理機:采用標志符表示法,Wdata=35bits,但WI=30,在Wdata中有了3位的ID。
假設(shè):一條指令訪問2個操作數(shù),每個操作數(shù)平均訪問R次,設(shè)某程序的總指令數(shù)為I
,試分別計算在兩種計算機系統(tǒng)中占用的存貯空間。[求解]
要點說明:①在采用標識符的數(shù)據(jù)表示后,數(shù)據(jù)類型的一致性檢查和轉(zhuǎn)換等都用硬件完成;從而縮短了目標程序的長度,減少了占用的空間。因為在Compiler中,這種數(shù)據(jù)一致性檢測程序要反復(fù)使用,如能通過硬件實現(xiàn)加以優(yōu)化,則將大大提高程序執(zhí)行的效率并減小占用空間。②標示符方法減少和簡化了指令系統(tǒng)。
③簡化了系統(tǒng)程序和編譯程序的設(shè)計。
④方便了軟件調(diào)試:通過設(shè)置陷井位trap位,可以捕捉指令執(zhí)行狀態(tài)。標示符方法存在的缺點:①指令和數(shù)據(jù)的長度或位數(shù)不相等,將導(dǎo)致存貯訪問麻煩。
②指令的執(zhí)行速度降低。這是因為在指定的執(zhí)行過程中,要對每個標志符進行逐個解釋,并判斷數(shù)據(jù)是否相容,因此將導(dǎo)致指令本身的執(zhí)行速度降低,但可使程序的宏觀速度加快。
宏觀時間=設(shè)計時間+編譯時間+調(diào)用時間;
微觀時間=程序的實際運行時間;
③硬件設(shè)計的復(fù)雜性提高。
(4)數(shù)據(jù)描述符表示法
特征:描述符和數(shù)據(jù)分開存放;例如:在B6700計算機中:101各種標志位長度地址Data000表示描述符Descriptor表示數(shù)據(jù)數(shù)據(jù):描述符:Block/singleFloat/doubleRead/writeContinue/segment元素的個數(shù)
數(shù)據(jù)描述符還可用來描述多維數(shù)據(jù)結(jié)構(gòu)。如圖2.7所示。采用數(shù)據(jù)描述符表示法的優(yōu)點和缺點與上一節(jié)介紹的標志符數(shù)據(jù)表示方法相同,它的機器結(jié)構(gòu)可能比標志符數(shù)據(jù)表示方法更復(fù)雜。兩者之間的差異:A.標志符通常只作用于一個數(shù)據(jù),而數(shù)據(jù)描述符則將作用于一組數(shù)據(jù)。B.標識符一般和數(shù)值一起存放在同一個數(shù)據(jù)單元之中,而數(shù)據(jù)描述符一般單獨存放,獨立占據(jù)一個存貯單元。象這種情況就很難采用數(shù)據(jù)描述符進行優(yōu)化。目的:如何為向量數(shù)據(jù)結(jié)構(gòu)的實現(xiàn)和快速運算提供更好的硬件支持,是系統(tǒng)結(jié)構(gòu)設(shè)計的另一個重要問題。舉例如下:
2.1.5其他數(shù)據(jù)表示1。向量與數(shù)組數(shù)據(jù)表示如果設(shè)置以下向量運算指令:即實現(xiàn):C(10:1000)=A(5:995)+B(10:1000)
對參加運算的源向量A、B及結(jié)果向量C都應(yīng)指明其基地址、位移量、向量長度和元素步距等參數(shù)。
向量Vector的表示
V:(Base,Displacement,Length)①向量、數(shù)組數(shù)據(jù)表示的引入,便于流水和并行運算,實現(xiàn)數(shù)據(jù)的高速處理。②隨著硬件的發(fā)展,部分數(shù)據(jù)結(jié)構(gòu)將采用數(shù)據(jù)表示實現(xiàn)。
6、總結(jié)基地址位移量長度堆棧機器的特點:(1)具有高速寄存器組成的硬件堆棧。(2)具有豐富的堆棧操作指令。(3)支持高級語言程序的編譯(4)支持子程序的嵌套和遞歸調(diào)用堆棧數(shù)據(jù)結(jié)構(gòu)對編譯和子程序調(diào)用具有高效的硬件支持,具有堆棧數(shù)據(jù)表示的機器稱為堆棧機器。
2。堆棧數(shù)據(jù)表示算術(shù)運算:3*4+10/(8-6)逆波蘭表達式
34*1086-/+
堆棧數(shù)據(jù)舉例棧輸入34*1086-/+34*1086-/+34*1086-/+121086-/+121086-/+121086-/+121086-/+12102/+125+172.1.6引入數(shù)據(jù)表示的原則高級數(shù)據(jù)的引入可從兩個方面來考慮:1。系統(tǒng)的時空效率是否提高
實現(xiàn)時間:關(guān)鍵在于主存與處理機之間傳送的信息量是否減少例:陣列運算
加速:
陣列型數(shù)據(jù)+陣列型指令+高速陣列運算部件,還減少了大量輔助操作2。通用性和利用率是否提高結(jié)論:①數(shù)據(jù)結(jié)構(gòu)的發(fā)展總是優(yōu)先于機器的數(shù)據(jù)表示;
②隨著硬件的發(fā)展,部分數(shù)據(jù)結(jié)構(gòu)將采用數(shù)據(jù)表示實現(xiàn);
③新的數(shù)據(jù)表示的引入具有某種冒險性,因為在時空效率、通用性、利用率等方面沒有得到實踐的驗證。2.2尋址技術(shù)
2.2.1
編址方式
2.2.2
尋址方式
2.2.3
程序裝入與定位方式2.2.1
編址方式1、對象:Register、Memory、I/ODevices;通過編址使之唯一可被訪問到;2、編址單位:字、字節(jié)、位三種。
(1)字編址方式:每個編址單位與設(shè)備存儲器訪問單位相一致,實現(xiàn)最簡單。但不支持非數(shù)值計算,如string,char等的運算。
(2)字節(jié)編址方式:Normalmode,因為編址單位=信息的基本單位。出現(xiàn)的問題:存放單位和訪問單位不一致的問題,因此將產(chǎn)生如何存放數(shù)據(jù)的問題。(3)位編址方式:存儲器單元的每一位都有一個地址,常用于需要位控制的場合
字節(jié)編址方式下,產(chǎn)生的存貯和訪問問題
①可以從任意地址位置開始存貯和訪問。無論是雙字、單字、半字或字節(jié),順序存放,可從任一位置開始訪問。優(yōu)點:不浪費存貯空間;
缺點:
a.雙字、單字或半字都可能出現(xiàn)跨存儲單元存放情況。致使訪問一個變量或存貯單位必須花費兩個存儲周期的時間。
b.RAM的R/W控制比較復(fù)雜,Read時,要用and屏蔽取出有效的部分;Write時,要屏蔽2次完成。解決的方法:
a.無論是雙字、單字、半字或字節(jié),都必須從一個存儲單元的起始地址開始存放,而這個存儲單元的其它部分不用。這樣,無論訪問雙字、單字、半字或字節(jié),都可以在一個存儲周期內(nèi)完成,且讀寫控制簡單。此法缺點是空間浪費很大。
b.按整數(shù)邊界存儲,即從地址的整倍數(shù)位置開始訪問:雙字地址最末3個二進制位必須是000,單字地址最末2個二進制位必須為00,半字地址最末1個二進制位必須為0。此法能夠保證無論訪問雙字、單字、半字或字節(jié),都可以在一個存儲周期內(nèi)完成。盡管有存儲空間浪費和存儲器讀寫控制較復(fù)雜的問題,但比a方式要好得多。字節(jié)編址的存儲器中,還要考慮一個存儲字中的多個字節(jié)如何編碼問題。存在兩種排序方法:(1)小端存儲(LittleEndian):字節(jié)或半字的最低位字節(jié)(LowestSignificantBit,LSB)存放于內(nèi)存最低位字節(jié)地址上。即:最低地址存放最低位字節(jié)
(2)大端存儲(BigEndian):字節(jié)或半字的最高位字節(jié)(MostSignificantBit,MSB)存放于內(nèi)存最低位字節(jié)地址上。即:最低地址存放最高位字節(jié)
12345678310(a)小端存儲圖2-10存儲字中的字節(jié)編碼順序例78563412310(b)大端存儲另外,字節(jié)編址的計算機中,需要指令地址計數(shù)器根據(jù)訪問內(nèi)容的長短進行計數(shù),如指令字長為32位,則取該指令后,指令地址計數(shù)器應(yīng)加4;若是64位字長指令,則需加8。3、編址方式(1)三個零地址空間通用寄存器、主存和I/O設(shè)備各自從“0”開始獨立編址,即存在三個一維線性地址空間,這時要訪問哪一類存儲部件,要有相應(yīng)的指令,并在指令中給出相應(yīng)編址空間的地址。(2)兩個零地址空間
通用寄存器獨立編址,主存儲器和輸入輸出設(shè)備統(tǒng)一編址。
(3)一個零地址空間,即所有設(shè)備都統(tǒng)一編址。(4)隱含編址即無零地址空間。如采用堆棧尋址的運算指令無需地址,其操作地址由棧頂指針自動決定。
4、I/O設(shè)備的非線性編址方式
①一臺設(shè)備一個地址;
②一臺設(shè)備兩個地址:其中一個是Data寄存器,一個是state/control寄存器。
③一臺設(shè)備多個I/O地址,如IntelPC機
2.2.2尋址方式1、立即數(shù)尋址方式直接在指令中給出操作數(shù)。其優(yōu)點是不需用數(shù)據(jù)存儲單元,指令譯碼時即得到操作數(shù),指令執(zhí)行速度快;缺點是只能用于源操作數(shù)尋址,且只能是精度不高的常數(shù)。
2、面向通用寄存器尋址方式優(yōu)點是指令字長短、執(zhí)行速度快,支持向量、矩陣等運算;缺點是由于寄存器種類功能多樣,硬件控制復(fù)雜,分配不合理可能會使編譯優(yōu)化困難。
2.2.2尋址方式3、面向堆棧尋址方式:①支持高級語言編譯優(yōu)化,遞歸。
②無須編址,指令碼最短。
③支持程序的嵌套和遞歸調(diào)用。4、面向主存尋址方式:普遍采用。主存尋址種類繁多,常用的有直接尋址、寄存器間接尋址、基址變址尋址、基址變址相對尋址、堆棧尋址(堆棧在主存中)等。靈活直接,適應(yīng)各種計算和信息處理,但速度慢。常用尋址方式1、立即數(shù)尋址方式:AddAX,1002、寄存器尋址方式:AddAX,BX
3、直接尋址方式:
MOVAX,[100]4、變址尋址方式:
MOVAX,[si]5、間接尋址方式
:
MOVBX,offsetdataX
MOVAX,[BX]6、基址變址尋址方式:MOVAX,[BX+si]7、基址變址相對尋址:MOVAX,[BX+si+100]
8、堆棧尋址方式:PUSHAX2.2.3程序裝入與定位方式邏輯地址(LA):程序員編寫程序時使用的地址。程序的邏輯地址相對本程序一般從“0”開始主存物理地址(PA):程序在主存中的實際地址。從“0”開始的一維線性空間。1、問題描述:機器中往往有多道程序
①如何把程序從外存裝入RAM的過程。
②如何將邏輯地址(LA)轉(zhuǎn)成PA物理地址。程序裝入物理主存進行定位時,需要進行邏輯地址空間到物理地址空間的映象和變換,即程序定位2、三種地址①符號地址②邏輯地址③物理地址3、程序需要定位的主要原因
:①程序獨立性要求:由OS在裝入執(zhí)行時動態(tài)決定程序的位置。
②程序的模塊化設(shè)計工作。
③程序本身很大,難以一次性加載。4、三種定位方式
程序定位的概念:將程序中的指令和數(shù)據(jù)的邏輯地址(相對地址)轉(zhuǎn)換成主存中的物理地址的過程稱為定位。
(1)直接定位方式:一般適用于單任務(wù)方式。要求:程序員編程時已經(jīng)確定好了程序的地址空間,即利用物理地址編程。(早期應(yīng)用)
(2)靜態(tài)定位方式:目的程序裝入主存時,通過調(diào)配運行系統(tǒng)配備的裝入程序,把目的程序的邏輯地址用軟的方法逐一修改成物理地址。程序執(zhí)行時,物理地址不能再改變。JMP100JMP100+m操作系統(tǒng)程序地址空間主存物理空間第一次靜態(tài)定位情況0x0mm+xJMP100JMP100+n操作系統(tǒng)程序地址空間主存物理空間第二次靜態(tài)定位情況0x0nn+x圖2-11某程序兩次裝入主存時的靜態(tài)定位靜態(tài)定位方式的優(yōu)點是:①由軟件完成;②可對多個程序段組成的程序進行靜態(tài)鏈接,實現(xiàn)起來簡單。其缺點主要有:①程序在執(zhí)行之前一次裝入到主存中,在程序執(zhí)行期間不能動態(tài)調(diào)整。不利于程序的可重入;②多個用戶或進程不能共享主存中的某段公共代碼。不利于多道程序的運行環(huán)境;③若程序所需存儲容量超過了分配給它的主存空間,則程序員必須采用覆蓋結(jié)構(gòu);④不利于重疊、流水技術(shù)的應(yīng)用。
(3)動態(tài)定位方式基址尋址法(硬邏輯實現(xiàn)):設(shè)置基址寄存器和地址加法器,將主存的起始地址存入該道程序的基址寄存器中,指令的地址字段不作修改,程序在執(zhí)行過程中不斷將邏輯地址加上基址寄存器中的基址來形成物理地址。動態(tài)定位方式的優(yōu)點:①程序執(zhí)行時,不一定整個調(diào)入主存中,而且一個程序可分配在多個不連續(xù)的主存空間內(nèi),從而可以使用較小的主存分配單位,提高了主存的利用效率;②多個程序可以共享主存中的同一個程序段;③支持虛擬存儲器。主要缺點:①需要由硬件支持;②實現(xiàn)存儲管理的軟件算法比較復(fù)雜。JMP100JMP100操作系統(tǒng)程序地址空間主存物理空間0x0nn+x圖2-12程序的動態(tài)定位方式基址寄存器100+n2.3指令系統(tǒng)的設(shè)計2.3.1
指令格式的優(yōu)化設(shè)計2.3.2
指令功能的設(shè)計
2.3.1指令格式的優(yōu)化設(shè)計指令系統(tǒng)的設(shè)計:
指令功能和指令格式的設(shè)計1、指令的組成
指令=[操作碼
code,地址碼Addr]
操作碼的表示體現(xiàn)了指令功能指令功能:操作類型(作何操作)
操作內(nèi)容(對何操作)問題:如何用最短的位數(shù)來表示指令的操作信息和地址信息(1)操作碼的表示
地址碼體現(xiàn)了操作數(shù)的來源和表示(2)地址碼的表示問題:如何用最短的位數(shù)來表示指令的操作信息和地址信息?1.操作碼的優(yōu)化表示指令格式的優(yōu)化目標
1。如何節(jié)省程序的存貯空間(使指令的平均字長最短);
2。指令格式怎樣規(guī)整,盡可能減少譯碼時間,取指令的時間。
三種指令表示:定長表示法Huffman編碼法擴展Huffman編碼法
(1)定長表示法指令字長固定簡單、高效。但耗內(nèi)存,浪費信息量。
(2)Huffman編碼法基本原理:
用最短的編碼表示最常用的指令,而用較長的編碼表示較少使用的指令,使總存貯量減少。
其中Pi為指令i的使用概率或頻率。
li
為指令i的長度
①
編碼平均長度:其中Pi為指令i的使用概率或頻率。②最優(yōu)Huffman編碼法操作碼的最短平均長度
:
指定長編碼和Huffman編碼方法相比,兩者在占用二進制位長度方面的比值。
n:操作碼的實際平均長度R越小越好③信息冗余量例1
設(shè)有一臺模型機,共有7種不同指令,使用頻度如下表:指令使用頻度指令使用頻度I10.40I50.04I20.30I60.03I30.15I70.03I40.05
根據(jù)表中的數(shù)據(jù),可得:H=0.4×1.32+0.3×1.74+0.15×2.74+0.05×4.32+0.04×4.64+0.03×5.06+0.03×5.06=2.17
則3位定長操作碼表示的R為:
Step1:按pi由小到大自左向右排列;
Step2:將當前最小的兩個pi、pj
結(jié)合到一起,形成一棵樹;
Step3:自Root開始編碼,左1右0原則。例1的Huffman樹
:
④Huffman樹的構(gòu)造方法0.030.06010.030.040.050.150.300.400.090.150.300.601.00111110000001011011100111011111011111⑤Huffman樹法得到的編碼平均長度
按例1計算得:H=0.40*1+0.30*2+0.15*3+0.05*5+0.04*5+0.03*5+0.03*5=2.20位編碼的信息冗余為:
1-2.17/2.20=1.36%(3)擴展編碼法
①采用原因:Huffman編碼法所形成的操作碼很不規(guī)整,因此要采用一種折衷方法。擴展編碼法就是其中一種較好的選擇。
②方法:一般采用等長擴展法,如4-8-12擴展法。擴展編碼法舉例指令頻度Pi操作碼(Huffman)操作碼長度li擴展操作碼Pi操作碼長度liI10.4001002I20.30102012I30.151103102I40.0511100511004I50.0411101511014I60.0311110511104I70.0311111511114擴展后平均長度為:∑pili=(0.4+0.3+0.15)*2+(0.05+0.04+0.03+0.03)*4=2.30信息冗余為:1-2.17/2.30=0.0565R雖比Huffman編碼法大,但比定長編碼法小得多,是實用的優(yōu)化編碼法。例2.某計算機有10條指令,它們的使用頻率分別為
0.30,0.20,0.16,0.09,0.08,0.07,
0.04,0.03,0.02,0.01(1)用Huffman編碼對它們的操作碼進行編碼,并計算平均代碼長度。(2)用擴展Huffman編碼法對操作碼進行編碼,限兩種操作碼長度,并計算平均代碼長度。答:(1)霍夫曼樹如下:000000000111111111Huffman編碼的結(jié)果以及各編碼的長度如下0.300.200.160.090.080.070.040110100110011000000122334440.030.020.0100001000001000000566平均代碼長度為:(0.30+0.20)×2+(0.16+0.09)×3+(0.08+0.07+0.04)×4+0.03×5+(0.02+0.01)×6=1+0.75+0.76+0.15+0.18=2.84答:(1)霍夫曼樹如下:Huffman編碼的結(jié)果以及各編碼的長度如下所示:0.300.200.160.090.080.070.040.030.020.011101101001100110000001000010000010000002233444566平均代碼長度為(0.30+0.20)×2+(0.16+0.09)×3+(0.08+0.07+0.04)×4+0.03×5+(0.02+0.01)×6=1+0.75+0.76+0.15+0.18=2.84000000000111111111(2)用擴展Huffman編碼法對操作碼進行編碼,限兩種操作碼長度,并計算平均代碼長度。(2)采用長度為2和長度為4兩種編碼:0.300.200.160.090.080.070.04000110001001101010111100
0.030.020.01111011111101平均代碼長度為
(0.30+0.20)×2+(1-0.30-0.20)×4=3.0與Huffman編碼法結(jié)果接近2.地址碼的優(yōu)化表示涉及問題:
①地址碼個數(shù):如何選擇最優(yōu)?
②如何縮短地址碼?(1)地址碼個數(shù)的選擇A.三地址指令:(OPC,AD,AS1,AS2)
意義:[AS1]OPC[AS2]—>[AD]
B.兩地址指令:(OPC,AD,AS)
意義:[AD]OPC[AS]—>[AD]
C.單地址指令:(OPC,A)
意義:OPC[A]—>[A]
D.零地址指令:(OPC)
意義:OPC(2)縮短地址碼的方法
①問題分析:
由于邏輯地址空間的大小固定的。因此,縮短地址碼長度的根本目的是用一個較短的地址碼表示一個比較大的邏輯地址空間。
②問題的解決方法:
A.
用寄存器間址方法
MOV
BX,offset
x
ADD
AX,[BX]
ADD
CX,[BX]...
B.用變址尋址方式縮短地址碼的長度,只要將基址放在基址register中。
C.用間接尋址方式縮短地址碼的長度。即通過在RAM的低端開辟一個專門的存放地址的區(qū)域。
2.3.2指令功能的設(shè)計設(shè)計的基本要求:指令系統(tǒng)的完整性、規(guī)整性和高效率、兼容性。1、指令系統(tǒng)的完整性
完整性指對通用計算機系統(tǒng)應(yīng)具備基本的指令種類。主要是5類,即數(shù)據(jù)傳送(完成在寄存器、主存、堆棧之間的數(shù)據(jù)、地址等信息傳送)類、運算(算術(shù)、邏輯、移位)類、程序控制(轉(zhuǎn)移、程序調(diào)用和返回)類、輸入輸出類和處理機控制和調(diào)試(包括特權(quán)指令)類。
2.3.2指令功能的設(shè)計在指令系統(tǒng)功能的設(shè)計時,往往要考慮多種因素的組合。比如運算指令,要考慮4種因素的組合,即①操作種類;②數(shù)據(jù)表示;③數(shù)據(jù)長度;④數(shù)據(jù)存儲設(shè)備。上述因素的組合會產(chǎn)生多種指令,要根據(jù)指令的使用頻度、指令執(zhí)行時間、硬件實現(xiàn)的復(fù)雜度等多方面情況,區(qū)分出必要的、可有可無的或不應(yīng)該設(shè)置的。并經(jīng)過模擬試驗和統(tǒng)計分析,最后確定出合理的指令來。2、指令的規(guī)整性規(guī)整性主要包括對稱性和均勻性。對稱性是指與指令有關(guān)的數(shù)據(jù)存儲設(shè)備、操作碼的設(shè)置等要對稱。均勻性是指對于各種不同的因素,如操作種類、數(shù)據(jù)表示、數(shù)據(jù)長度、數(shù)據(jù)存儲設(shè)備等,指令的設(shè)置要同等對待。事實上,這些因素的組合數(shù)量很大。要完全達到均勻性是不可能的。因此設(shè)計指令系統(tǒng)時,對于規(guī)整性的要求必須有所選擇。3、指令的高效率和兼容性
高效率是指指令系統(tǒng)的指令執(zhí)行速度要快,使用頻度要高。這方面RISC體系結(jié)構(gòu)和CISC體系結(jié)構(gòu)有不同的設(shè)計風格,將在2.4節(jié)介紹。兼容性是計算機系統(tǒng)所必須考慮的,兼容性好,將大大延續(xù)計算機系統(tǒng)的使用壽命。
設(shè)計要點:
①分析指令的分類或類型
②統(tǒng)計使用頻率
③指令編碼
④操作數(shù)編碼等等。2.4指令系統(tǒng)的改進優(yōu)化指令系統(tǒng)的兩種不同的途徑和方法2.4.1
復(fù)雜指令系統(tǒng)(CISC)2.4.2
精簡指令系統(tǒng)(RISC)2.4.3
指令系統(tǒng)的優(yōu)化發(fā)展方向
2.4.1復(fù)雜指令系統(tǒng)(CISC)復(fù)雜指令系統(tǒng)(ComplexInstructionSetComputer,CISC)增強指令功能,用新的復(fù)雜指令替代原由軟件子程序完成的功能,實現(xiàn)軟件功能硬化的計算機系統(tǒng)它可從面向目標程序、面向高級語言和面向操作系統(tǒng)這三方面的優(yōu)化來考慮。
1.目標程序的優(yōu)化思路:從時間上和空間上優(yōu)化目標程序,將使用頻度高的指令進行硬件加速,用新指令替代使用頻度高的指令串主要途徑:(1)增強數(shù)據(jù)轉(zhuǎn)送指令的功能(2)增強運算型指令的功能(3)增強程序控制指令的功能如8088指令系統(tǒng)中的串操作指令和帶重復(fù)前綴的串操作指令。指令REPMOVSW其功能相當于一個指令串:
MVSW:MOVAX,[SI]MOVES:[DI],AXINCSIINCSIINCDIINCDIDECCXJNZMVSW如函數(shù)運算指令。三角函數(shù)SIN(X)的計算是展開成級數(shù)進行一系列四則運算的結(jié)果如8088指令系統(tǒng)中的循環(huán)控制指令
LOOPNZLBL其功能相當于執(zhí)行下述一系列操作:
CX-1→CX
若CX≠0且ZF≠1
則程序轉(zhuǎn)向標號LBL,否則執(zhí)行下一條指令2.對高級語言和編譯程序的支持思路:縮小高級語言和機器語言的差距,使目標程序提高時空效率主要途徑:(1)增強對高級語言和編譯程序支持的指令,從而達到減少目標程序長度,減少目標程序執(zhí)行時間的目的。例:賦值語句、IF.....Then....語句等的機器支持。(2)高級語言計算機——如Lisp計算機,prolog計算機。3.操作系統(tǒng)的優(yōu)化針對操作系統(tǒng)的功能進行直接支持(1)優(yōu)化支持操作系統(tǒng)的指令處理機工作狀態(tài)和訪問方式的轉(zhuǎn)換進程的管理和切換存儲管理和信息保護進程的同步和互斥,信號燈的管理等(2)增加專用于操作系統(tǒng)的指令如某些不公開的特權(quán)指令(3)把操作系統(tǒng)中使用頻繁,對速度影響大的機構(gòu)型軟件子程序硬化或固化;(4)由專門的處理機來執(zhí)行操作系統(tǒng),形成功能分布處理系統(tǒng)結(jié)構(gòu)。
(1)指令格式不固定,指令可長可短,操作數(shù)可多可少;(2)尋址方式復(fù)雜多樣,操作數(shù)可來自寄存器,也可來自存儲器;(3)采用微程序控制,執(zhí)行每條指令均需完成一個微指令序列;(4)一般CPI>5,指令越復(fù)雜,CPI越大。4.CISC的特點2.4.2精簡指令系統(tǒng)(RISC)精簡指令系統(tǒng)(ReducedInstructionSetComputer,RISC)
減少指令數(shù)目,簡化指令功能,降低硬件復(fù)雜度,提高指令執(zhí)行速度(1個節(jié)拍內(nèi)完成)的計算機系統(tǒng)RISC是80年代提出的一種新的設(shè)計思想。目前許多處理機都采用了RISC指令系統(tǒng)。例:Sun、ultrasparc、SGI、PowerPC、Intel80486、Pentium1-4等。1.CISC的問題(1)20%與80%規(guī)律
龐大的指令系統(tǒng)中大部分指令利用率低大約20%的指令占據(jù)了80%的執(zhí)行時間.
事實上,頻度最高的是三類指令——MOV、ALU、Jump。
(如對8088指令系統(tǒng)的統(tǒng)計分析)指令使用頻度指令執(zhí)行時間指令名稱占百分比累計占百分比指令名稱占百分比累計占百分比MOV24.8524.85IMUL19.5519.55PUSH10.3635.21MOV17.4436.99CMP10.2845.49PUSH11.1148.10JMPcc9.0354.52JMPcc10.5558.65ADD6.8061.32CMP7.8066.45POP4.1465.46CALL7.2773.72RET3.9269.38RET4.8578.57
Intel8088處理機指令系統(tǒng)使用頻度和執(zhí)行時間統(tǒng)計(部分)(2)VLSI技術(shù)的發(fā)展引起的問題
CISC控制十分復(fù)雜,不規(guī)整,不符合VLSI發(fā)展的方向,而RISC則控制簡單,而且比較規(guī)整。在CISC處理機中,大量使用微程序技術(shù)以實現(xiàn)CISC。(3)軟硬件功能分配問題
在CISC中,雖然增加了硬件指令,但并不能保證整個程序執(zhí)行時間的縮短。因為這些復(fù)雜指令要消耗較多的CPU周期數(shù),但又不常用。此外,CISC系統(tǒng)各種指令執(zhí)行周期的復(fù)雜不一,很不適應(yīng)流水線技術(shù)的發(fā)展。
精簡指令集:保留最基本的,去掉復(fù)雜、使用頻度不高的指令大大減少指令系統(tǒng)可采用尋址方式的
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二四年度上海房產(chǎn)買賣合同智能家居系統(tǒng)配套范本3篇
- 2024版鄭州玻璃崗?fù)どa(chǎn)與供應(yīng)鏈管理合同
- 2025年智能電網(wǎng)建設(shè)項目資金投入合同3篇
- 二零二五版豆腐品牌連鎖加盟合同3篇
- 二零二五年度企業(yè)商業(yè)信用貸款還款合同3篇
- 二零二四年醫(yī)療器械生產(chǎn)許可合同
- 2025年綠色建筑項目瓦工力工勞務(wù)分包及節(jié)能減排合同3篇
- 2025年度大型活動臨時演員招募服務(wù)合同4篇
- 年度豆?jié){粉戰(zhàn)略市場規(guī)劃報告
- 年度電子廚房秤競爭策略分析報告
- 畢淑敏心理咨詢手記在線閱讀
- 亞硝酸鈉安全標簽
- pcs-985ts-x說明書國內(nèi)中文版
- GB 11887-2012首飾貴金屬純度的規(guī)定及命名方法
- 小品《天宮賀歲》臺詞劇本手稿
- 醫(yī)院患者傷口換藥操作課件
- 欠薪強制執(zhí)行申請書
- 礦山年中期開采重點規(guī)劃
- 資源庫建設(shè)項目技術(shù)規(guī)范匯編0716印刷版
- GC2級壓力管道安裝質(zhì)量保證體系文件編寫提綱
- 預(yù)應(yīng)力混凝土簡支小箱梁大作業(yè)計算書
評論
0/150
提交評論