計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)_第1頁(yè)
計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)_第2頁(yè)
計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)_第3頁(yè)
計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)_第4頁(yè)
計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩115頁(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)介

計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)主講蔡啟先

第2章

計(jì)算機(jī)指令系統(tǒng)

第2章要點(diǎn)2、數(shù)據(jù)表示的概念及其方法;3、數(shù)據(jù)的尋址方式;4、指令格式的設(shè)計(jì);5、RISC和CISC指令系統(tǒng)。1、指令系統(tǒng)的涵義;2.22.12.42.3

指令系統(tǒng)是計(jì)算機(jī)系統(tǒng)軟件與硬件接口及界面的一個(gè)主要標(biāo)志。

指令系統(tǒng)的設(shè)計(jì)必須由硬件和軟件人員共同完成。

第2章計(jì)算機(jī)指令系統(tǒng)§2.1數(shù)據(jù)類型§2.2尋址技術(shù)§2.3指令系統(tǒng)的設(shè)計(jì)§2.4指令系統(tǒng)的改進(jìn)本章小結(jié)§2.1數(shù)據(jù)類型2.1.2

數(shù)據(jù)表示和數(shù)據(jù)結(jié)構(gòu)2.1.3

浮點(diǎn)數(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ù)類型:具有一組值的集合,且定義了作用于該集合的操作集。如:定點(diǎn)數(shù)據(jù)類型及定點(diǎn)數(shù)運(yùn)算;數(shù)組數(shù)據(jù)類型及數(shù)組的運(yùn)算等。數(shù)據(jù)類型可分為基本類型和結(jié)構(gòu)類型?;緮?shù)據(jù)類型包括二進(jìn)制位、二進(jìn)制位串、整數(shù)、十進(jìn)制數(shù)、浮點(diǎn)數(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ù)組、字符串、向量、堆棧、隊(duì)列、記錄等。它可分為系統(tǒng)數(shù)據(jù)類型、用戶自定義數(shù)據(jù)類型。

基本類型和結(jié)構(gòu)類型反映在系統(tǒng)結(jié)構(gòu)設(shè)計(jì)上,就是數(shù)據(jù)表示和數(shù)據(jù)結(jié)構(gòu)。

數(shù)據(jù)表示:能由機(jī)器硬件直接識(shí)別和被指令系統(tǒng)直接調(diào)用的數(shù)據(jù)類型。即:可以直接被計(jì)算器指令運(yùn)算和處理,如整數(shù)、浮點(diǎn)數(shù)、向量等。數(shù)據(jù)結(jié)構(gòu)研究的是面向系統(tǒng)軟件和應(yīng)用軟件所需要處理的各種數(shù)據(jù)類型,如串、隊(duì)、棧、向量、陣列、鏈表、樹(shù)、圖等,它是結(jié)構(gòu)數(shù)據(jù)類型的組織方式。

2.1.2數(shù)據(jù)表示與數(shù)據(jù)結(jié)構(gòu)問(wèn):8088具有浮點(diǎn)數(shù)據(jù)表示嗎?8088能進(jìn)行浮點(diǎn)運(yùn)算嗎?

數(shù)據(jù)表示是構(gòu)成數(shù)據(jù)結(jié)構(gòu)的元素,數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)表示是軟、硬件的界面關(guān)鍵在于確定哪些數(shù)據(jù)類型用數(shù)據(jù)表示實(shí)現(xiàn),而哪些采用數(shù)據(jù)結(jié)構(gòu)來(lái)實(shí)現(xiàn)。這本質(zhì)上是一個(gè)軟硬件取舍的問(wèn)題。(1)簡(jiǎn)單的、常用的、通用的數(shù)據(jù)類型采用數(shù)據(jù)表示;如int、float、Boolean、String、stack等。

(2)復(fù)雜的數(shù)據(jù)類型一般通過(guò)數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn),或通過(guò)軟硬件聯(lián)合設(shè)計(jì)實(shí)現(xiàn)。如table、Graph、Tree...等實(shí)際系統(tǒng)中的設(shè)計(jì)例:向量數(shù)據(jù)結(jié)構(gòu)變址操作對(duì)向量、陣列數(shù)據(jù)結(jié)構(gòu)的支持1。浮點(diǎn)數(shù)據(jù)表示的設(shè)計(jì)

浮點(diǎn)數(shù)的表示方式實(shí)際上就是浮點(diǎn)數(shù)的存儲(chǔ)格式,假定浮點(diǎn)數(shù)存儲(chǔ)格式:2.1.3浮點(diǎn)數(shù)據(jù)表示尾數(shù)m指數(shù)e

尾符S 尾數(shù)M階符F階碼E 該格式涉及6個(gè)參數(shù),確定原則是:(1)尾數(shù)m的數(shù)制和碼制一般采用原碼定點(diǎn)小數(shù)表示。因?yàn)樵a表示直觀,雖然加減法不如補(bǔ)碼,但是乘除法運(yùn)算比補(bǔ)碼表示簡(jiǎn)單。另外,由于有了指數(shù)表示,采用定點(diǎn)小數(shù)表示能簡(jiǎn)化運(yùn)算特別是乘除法運(yùn)算。(2)指數(shù)e的數(shù)制和碼制一般采用移碼定點(diǎn)整數(shù)表示。移碼使浮點(diǎn)零和機(jī)器零一致,如果不一致,對(duì)機(jī)器硬件和軟件的設(shè)計(jì)都會(huì)產(chǎn)生很多麻煩。例如要判斷運(yùn)算結(jié)果是否為零必須作特殊的處理。但是移碼的加減法運(yùn)算要比補(bǔ)碼復(fù)雜,這對(duì)浮點(diǎn)乘除法不利。指數(shù)e主要用來(lái)擴(kuò)大浮點(diǎn)數(shù)的表數(shù)范圍,用整數(shù)表示足夠了。(3)尾數(shù)M的基值rm一般來(lái)說(shuō),尾數(shù)基值取大,會(huì)擴(kuò)大浮點(diǎn)數(shù)的表數(shù)范圍、增加可表示數(shù)的個(gè)數(shù)、減少移位次數(shù)、降低右移造成的精度損失和提高運(yùn)算速度。但是尾數(shù)基值取大,會(huì)降低數(shù)據(jù)的表示精度,使數(shù)值的分布變稀。因此rm的選取要根據(jù)應(yīng)用需要來(lái)綜合平衡??梢宰C明,在浮點(diǎn)數(shù)的總字長(zhǎng)一定的情況下,尾數(shù)M的基值rm選擇2較為適宜,此時(shí)浮點(diǎn)數(shù)具有最大的表數(shù)范圍和最高的表數(shù)精度。如果再采用隱藏位表示方法,則這種浮點(diǎn)數(shù)表示方法又具有最高的表數(shù)效率。所謂隱藏位表示方法是指:由于浮點(diǎn)數(shù)尾數(shù)必須規(guī)格化,則其小數(shù)點(diǎn)后的第一位數(shù)碼是固定的;這樣在浮點(diǎn)數(shù)的存儲(chǔ)和傳輸過(guò)程中,小數(shù)點(diǎn)后的第一位可以不表示出來(lái),只在計(jì)算時(shí)恢復(fù)這一隱藏位,或采用特殊方法對(duì)運(yùn)算結(jié)果進(jìn)行修正。(4)階碼E的基值re一般通用計(jì)算機(jī)中,浮點(diǎn)數(shù)階碼的基值都取2。其原因一是機(jī)器存儲(chǔ)基于二進(jìn)制形態(tài);二是若尾數(shù)基值為2,階碼基值取2有利于尾數(shù)規(guī)格化時(shí)的移位操作;三是指數(shù)e主要用來(lái)擴(kuò)大浮點(diǎn)數(shù)的表數(shù)范圍,采用其它進(jìn)制并不比基2優(yōu)越多少。

(5)尾數(shù)M字長(zhǎng)p和階碼E字長(zhǎng)q目前多數(shù)計(jì)算機(jī)的短浮點(diǎn)數(shù)是32位,長(zhǎng)浮點(diǎn)數(shù)是64位。假定浮點(diǎn)數(shù)的尾數(shù)用原碼定點(diǎn)小數(shù)表示,尾數(shù)基值為2,浮點(diǎn)數(shù)的指數(shù)用移碼定點(diǎn)整數(shù)表示,階碼基值為2。根據(jù)實(shí)際需求給出表數(shù)范圍不小于N(N為能表示的最大正數(shù)),表數(shù)精度不低于δ,并且要求尾數(shù)和指數(shù)都正負(fù)對(duì)稱。由表數(shù)范圍要求,得:則

得到階碼字長(zhǎng):

(2.1)

由表數(shù)精度的要求,得到:

則得到尾數(shù)字長(zhǎng):(2.2)

由(2.1)和(2.2)可計(jì)算出浮點(diǎn)數(shù)的階碼字長(zhǎng)q(上取整)和尾數(shù)字長(zhǎng)p(上取整)。通常要適當(dāng)調(diào)整尾數(shù)字長(zhǎng)p的階碼字長(zhǎng)q的取值,使浮點(diǎn)數(shù)的總字長(zhǎng)為一個(gè)合理的數(shù)值。

例2.1

設(shè)計(jì)一種浮點(diǎn)數(shù)格式,其表數(shù)范圍不小于10-37至1037,正負(fù)數(shù)對(duì)稱,表數(shù)精度不低于10-16。解:依題意,取表數(shù)范圍N=1037,表數(shù)精度δ=10-16,由式(2.1),得:

上取整,得階碼字長(zhǎng)q=7。由式(2.2),得:上取整,得尾數(shù)字長(zhǎng)p=54。這樣,加上一個(gè)尾數(shù)符號(hào)位和一個(gè)階碼符號(hào)位,浮點(diǎn)數(shù)的總字長(zhǎng)為:p+q+2=54+7+2=63實(shí)際浮點(diǎn)數(shù)總字長(zhǎng)應(yīng)為8的倍數(shù),故取浮點(diǎn)數(shù)總字長(zhǎng)為64位。多出的一位可以加到尾數(shù)字長(zhǎng)p中用于提高浮點(diǎn)數(shù)的表數(shù)精度,也可以加到階碼字長(zhǎng)q中來(lái)擴(kuò)大浮點(diǎn)數(shù)的表數(shù)范圍。暫且讓p增加一位,即p=55。圖2-3是設(shè)計(jì)出來(lái)的浮點(diǎn)數(shù)格式。尾符S尾數(shù)M階符F階碼E位序6362760長(zhǎng)度1p=551q=7圖2-3例2.1浮點(diǎn)數(shù)的設(shè)計(jì)格式

現(xiàn)代計(jì)算機(jī)普遍采用IEEE754標(biāo)準(zhǔn)來(lái)表示浮點(diǎn)數(shù),該標(biāo)準(zhǔn)規(guī)定了4種浮點(diǎn)數(shù)的表示格式:即單精度(32位浮點(diǎn)數(shù))、雙精度(64位浮點(diǎn)數(shù))、單精度擴(kuò)展(≥43位,不常用)和雙精度擴(kuò)展(≥79位,通常采用80位進(jìn)行實(shí)現(xiàn))。

2。浮點(diǎn)運(yùn)算尾數(shù)下溢處理方法

浮點(diǎn)數(shù)據(jù)的表示還應(yīng)考慮運(yùn)算中的精度損失。運(yùn)算中的精度損失是指由于運(yùn)算過(guò)程中尾數(shù)右移出機(jī)器字長(zhǎng)使得有效數(shù)字丟失后所造成的精度損失,它與可表示數(shù)的精度是兩個(gè)不同的概念。減少運(yùn)算中的精度損失的關(guān)鍵是處理好運(yùn)算中尾數(shù)超出字長(zhǎng)的部分,通常稱為浮點(diǎn)數(shù)尾數(shù)的下溢處理。常用到的下溢處理方法有:截?cái)喾ā⑸崛敕?、恒置法、查表舍入法,判斷方法的?yōu)劣是考察最大誤差、平均積累誤差及實(shí)現(xiàn)成本。

(1)截?cái)喾?。方法是將尾?shù)超出機(jī)器字長(zhǎng)的部分截去。設(shè)尾數(shù)的有效數(shù)位數(shù)為m,則最大誤差接近于2-m,如將±0.xxxx…x111…1中處于有效字長(zhǎng)數(shù)值xxxx…x外的111…1全去掉。此法對(duì)正數(shù)而言,總是減小尾數(shù),故總是產(chǎn)生負(fù)誤差;反之,對(duì)負(fù)數(shù)總是產(chǎn)生正誤差,不過(guò)綜合考慮有利于積累誤差的消除。但如果正數(shù)區(qū)和負(fù)數(shù)區(qū)分別考慮,則積累誤差很大且無(wú)法調(diào)節(jié)。因此,盡管截?cái)喾ㄗ詈?jiǎn)單,不需硬件,也不占用時(shí)間,但是很少使用。

(2)恒置法。又稱恒置r/2法(r是尾數(shù)的基值),或恒置1法(r=2時(shí))。其方法是:把機(jī)器運(yùn)算規(guī)定的字長(zhǎng)的最低位恒置成r/2。如r=2時(shí),尾數(shù)有效位的最低位恒為1;如r=16時(shí),尾數(shù)有效位的最低位恒為8。在正數(shù)區(qū),若原尾數(shù)有效位末位為0,恒置法將產(chǎn)生正誤差,若原尾數(shù)有效位末位為1,恒置法將產(chǎn)生負(fù)誤差,總的積累誤差會(huì)很小。負(fù)數(shù)區(qū)也和正數(shù)區(qū)的積累誤差一樣。最大誤差發(fā)生在有效字長(zhǎng)數(shù)值xxxx…x1外的111…1全去掉,或有效字長(zhǎng)數(shù)值xxxx…x0后都是0的情況,即最大誤差的絕對(duì)值接近于2-m。

恒置法的主要缺點(diǎn)是表數(shù)精度比較低,這是由于尾數(shù)的最低位被恒置成r/2,因而損失了一位精度。其主要優(yōu)點(diǎn)是容易實(shí)現(xiàn),在正數(shù)區(qū)和負(fù)數(shù)區(qū)的積累誤差都比較小,而且達(dá)到平衡。目前恒置法應(yīng)用較為廣泛。

(3)舍入法。

此法在十進(jìn)制中稱為4舍5入法,在二進(jìn)制中為0舍1入法,在十六進(jìn)制中為7舍8入法。即舍入法只看規(guī)格化尾數(shù)有效字長(zhǎng)之后的1位,而不管后續(xù)的其它位,這樣便于硬件實(shí)現(xiàn)。但是舍入法可能要作1次加法,尾數(shù)可能溢出,為此要做右規(guī),又增加了實(shí)現(xiàn)的難度。不過(guò)實(shí)現(xiàn)難度換來(lái)的是誤差的減少。與恒置法相比,舍入法尾數(shù)精度提高了1位,且在正數(shù)區(qū)和負(fù)數(shù)區(qū)的積累誤差都能達(dá)到完全平衡。由于實(shí)現(xiàn)困難,目前很少使用,主要用于浮點(diǎn)運(yùn)算的程序處理。

(4)查表舍入法。

此法只考察尾數(shù)有效字長(zhǎng)的最低n位和超出尾數(shù)有效字長(zhǎng)部分的最高k位,根據(jù)它們的情況列出一張對(duì)應(yīng)的舍入處理表,通過(guò)查表直接進(jìn)行舍入操作。查表舍入法的主要優(yōu)點(diǎn)是可以按照實(shí)際情況來(lái)科學(xué)地安排舍入規(guī)則,不僅使最大誤差減至很小,而且使積累誤差達(dá)到完全平衡,其精度與舍入法相當(dāng),而誤差更小。通常,舍入處理表可存放在ROM或PLA中,增加成本不多。查表無(wú)需計(jì)算,便捷,速度快,又通過(guò)改變得到誤差控制,相對(duì)其它下溢處理方法優(yōu)勢(shì)明顯,是一種很有前途的浮點(diǎn)運(yùn)算尾數(shù)下溢處理方法。

(1)問(wèn)題的提出:

①數(shù)據(jù)有各種類型,如何辯識(shí)則是一個(gè)重要的問(wèn)題;

②數(shù)據(jù)類型既可以通過(guò)指令指定,也可以通過(guò)數(shù)據(jù)自已表示。

③當(dāng)數(shù)據(jù)采用指令表示時(shí),將產(chǎn)生大量的指令,即使是同類型的指令也可能會(huì)因操作數(shù)類型不同而產(chǎn)生大量的指令。如IBM370的加法指令就有8條。Intel86x中的乘法指令也有Mul、

Imul兩種。鑒于以上理由,人們提出了自定義數(shù)據(jù)表示法。2.1.4自定義數(shù)據(jù)表示

(2)自定義數(shù)據(jù)表示的兩種方法①帶標(biāo)識(shí)符的數(shù)據(jù)表示法:用以定義某個(gè)數(shù)據(jù)的數(shù)據(jù)類型和數(shù)值的數(shù)據(jù)表示。②數(shù)據(jù)描述符表示法:用以定義復(fù)雜數(shù)據(jù)結(jié)構(gòu)(如向量、矩陣、多維數(shù)組、記錄等)的數(shù)據(jù)表示。(3)帶標(biāo)識(shí)符的數(shù)據(jù)表示類型標(biāo)志功能類型數(shù)值00:操作數(shù)01:指令11:標(biāo)志10:地址000:二進(jìn)制001:十進(jìn)制011:定點(diǎn)數(shù)100:浮點(diǎn)數(shù)010:16進(jìn)制特點(diǎn):

A.標(biāo)志符自定義數(shù)據(jù)類型,不僅可以定義數(shù)據(jù)類型,而且還可以用來(lái)描述機(jī)器中用到的各種有用信息。

B.標(biāo)志符定義法,只對(duì)系統(tǒng)軟件和高級(jí)語(yǔ)言的編譯器建立,而對(duì)高級(jí)程序員則透明。標(biāo)志符數(shù)據(jù)表示時(shí)存貯空間的開(kāi)銷問(wèn)題?主要優(yōu)點(diǎn):

A.簡(jiǎn)化了指令系統(tǒng)和程序設(shè)計(jì)。

B.簡(jiǎn)化了編譯程序。

C.便于實(shí)現(xiàn)一致性檢查。

D.有可能由硬件自動(dòng)變換數(shù)據(jù)類型。

E.支持?jǐn)?shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn)與數(shù)據(jù)類型無(wú)關(guān)的要求。

F.為軟件調(diào)試和應(yīng)用軟件開(kāi)發(fā)提供了支持。帶來(lái)的問(wèn)題:

A.增加程序所占存貯空間。

B.降低指令執(zhí)行的速度。問(wèn)題是局部的微觀上的,整體上宏觀上大大提高了時(shí)空效率。

形式化分析:

假設(shè)有A、B兩臺(tái)處理機(jī)如下:

處理機(jī):沒(méi)有采用標(biāo)志符表示法,W=32bits,(指令和Data都一樣)

B處理機(jī):采用標(biāo)志符表示法,Wdata=35bits,但WI=30,在Wdata中有了3位的ID。

假設(shè):一條指令訪問(wèn)2個(gè)操作數(shù),每個(gè)操作數(shù)平均訪問(wèn)R次,設(shè)某程序的總指令數(shù)為I

,試分別計(jì)算在兩種計(jì)算機(jī)系統(tǒng)中占用的存貯空間。[求解]

要點(diǎn)說(shuō)明:①在采用標(biāo)識(shí)符的數(shù)據(jù)表示后,數(shù)據(jù)類型的一致性檢查和轉(zhuǎn)換等都用硬件完成;從而縮短了目標(biāo)程序的長(zhǎng)度,減少了占用的空間。因?yàn)樵贑ompiler中,這種數(shù)據(jù)一致性檢測(cè)程序要反復(fù)使用,如能通過(guò)硬件實(shí)現(xiàn)加以優(yōu)化,則將大大提高程序執(zhí)行的效率并減小占用空間。②標(biāo)示符方法減少和簡(jiǎn)化了指令系統(tǒng)。

③簡(jiǎn)化了系統(tǒng)程序和編譯程序的設(shè)計(jì)。

④方便了軟件調(diào)試:通過(guò)設(shè)置陷井位trap位,可以捕捉指令執(zhí)行狀態(tài)。標(biāo)示符方法存在的缺點(diǎn):①指令和數(shù)據(jù)的長(zhǎng)度或位數(shù)不相等,將導(dǎo)致存貯訪問(wèn)麻煩。

②指令的執(zhí)行速度降低。這是因?yàn)樵谥付ǖ膱?zhí)行過(guò)程中,要對(duì)每個(gè)標(biāo)志符進(jìn)行逐個(gè)解釋,并判斷數(shù)據(jù)是否相容,因此將導(dǎo)致指令本身的執(zhí)行速度降低,但可使程序的宏觀速度加快。

宏觀時(shí)間=設(shè)計(jì)時(shí)間+編譯時(shí)間+調(diào)用時(shí)間;

微觀時(shí)間=程序的實(shí)際運(yùn)行時(shí)間;

③硬件設(shè)計(jì)的復(fù)雜性提高。

(4)數(shù)據(jù)描述符表示法

特征:描述符和數(shù)據(jù)分開(kāi)存放;例如:在B6700計(jì)算機(jī)中:101各種標(biāo)志位長(zhǎng)度地址Data000表示描述符Descriptor表示數(shù)據(jù)數(shù)據(jù):描述符:Block/singleFloat/doubleRead/writeContinue/segment元素的個(gè)數(shù)

數(shù)據(jù)描述符還可用來(lái)描述多維數(shù)據(jù)結(jié)構(gòu)。如圖2.7所示。采用數(shù)據(jù)描述符表示法的優(yōu)點(diǎn)和缺點(diǎn)與上一節(jié)介紹的標(biāo)志符數(shù)據(jù)表示方法相同,它的機(jī)器結(jié)構(gòu)可能比標(biāo)志符數(shù)據(jù)表示方法更復(fù)雜。兩者之間的差異:A.標(biāo)志符通常只作用于一個(gè)數(shù)據(jù),而數(shù)據(jù)描述符則將作用于一組數(shù)據(jù)。B.標(biāo)識(shí)符一般和數(shù)值一起存放在同一個(gè)數(shù)據(jù)單元之中,而數(shù)據(jù)描述符一般單獨(dú)存放,獨(dú)立占據(jù)一個(gè)存貯單元。象這種情況就很難采用數(shù)據(jù)描述符進(jìn)行優(yōu)化。目的:如何為向量數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)和快速運(yùn)算提供更好的硬件支持,是系統(tǒng)結(jié)構(gòu)設(shè)計(jì)的另一個(gè)重要問(wèn)題。舉例如下:

2.1.5其他數(shù)據(jù)表示1。向量與數(shù)組數(shù)據(jù)表示如果設(shè)置以下向量運(yùn)算指令:即實(shí)現(xiàn):C(10:1000)=A(5:995)+B(10:1000)

對(duì)參加運(yùn)算的源向量A、B及結(jié)果向量C都應(yīng)指明其基地址、位移量、向量長(zhǎng)度和元素步距等參數(shù)。

向量Vector的表示

V:(Base,Displacement,Length)①向量、數(shù)組數(shù)據(jù)表示的引入,便于流水和并行運(yùn)算,實(shí)現(xiàn)數(shù)據(jù)的高速處理。②隨著硬件的發(fā)展,部分?jǐn)?shù)據(jù)結(jié)構(gòu)將采用數(shù)據(jù)表示實(shí)現(xiàn)。

6、總結(jié)基地址位移量長(zhǎng)度堆棧機(jī)器的特點(diǎn):(1)具有高速寄存器組成的硬件堆棧。(2)具有豐富的堆棧操作指令。(3)支持高級(jí)語(yǔ)言程序的編譯(4)支持子程序的嵌套和遞歸調(diào)用堆棧數(shù)據(jù)結(jié)構(gòu)對(duì)編譯和子程序調(diào)用具有高效的硬件支持,具有堆棧數(shù)據(jù)表示的機(jī)器稱為堆棧機(jī)器。

2。堆棧數(shù)據(jù)表示算術(shù)運(yùn)算:3*4+10/(8-6)逆波蘭表達(dá)式

34*1086-/+

堆棧數(shù)據(jù)舉例棧輸入34*1086-/+34*1086-/+34*1086-/+121086-/+121086-/+121086-/+121086-/+12102/+125+172.1.6引入數(shù)據(jù)表示的原則高級(jí)數(shù)據(jù)的引入可從兩個(gè)方面來(lái)考慮:1。系統(tǒng)的時(shí)空效率是否提高

實(shí)現(xiàn)時(shí)間:關(guān)鍵在于主存與處理機(jī)之間傳送的信息量是否減少例:陣列運(yùn)算

加速:

陣列型數(shù)據(jù)+陣列型指令+高速陣列運(yùn)算部件,還減少了大量輔助操作2。通用性和利用率是否提高結(jié)論:①數(shù)據(jù)結(jié)構(gòu)的發(fā)展總是優(yōu)先于機(jī)器的數(shù)據(jù)表示;

②隨著硬件的發(fā)展,部分?jǐn)?shù)據(jù)結(jié)構(gòu)將采用數(shù)據(jù)表示實(shí)現(xiàn);

③新的數(shù)據(jù)表示的引入具有某種冒險(xiǎn)性,因?yàn)樵跁r(shí)空效率、通用性、利用率等方面沒(méi)有得到實(shí)踐的驗(yàn)證。2.2尋址技術(shù)

2.2.1

編址方式

2.2.2

尋址方式

2.2.3

程序裝入與定位方式2.2.1

編址方式1、對(duì)象:Register、Memory、I/ODevices;通過(guò)編址使之唯一可被訪問(wèn)到;2、編址單位:字、字節(jié)、位三種。

(1)字編址方式:每個(gè)編址單位與設(shè)備存儲(chǔ)器訪問(wèn)單位相一致,實(shí)現(xiàn)最簡(jiǎn)單。但不支持非數(shù)值計(jì)算,如string,char等的運(yùn)算。

(2)字節(jié)編址方式:Normalmode,因?yàn)榫幹穯挝?信息的基本單位。出現(xiàn)的問(wèn)題:存放單位和訪問(wèn)單位不一致的問(wèn)題,因此將產(chǎn)生如何存放數(shù)據(jù)的問(wèn)題。(3)位編址方式:存儲(chǔ)器單元的每一位都有一個(gè)地址,常用于需要位控制的場(chǎng)合

字節(jié)編址方式下,產(chǎn)生的存貯和訪問(wèn)問(wèn)題

①可以從任意地址位置開(kāi)始存貯和訪問(wèn)。無(wú)論是雙字、單字、半字或字節(jié),順序存放,可從任一位置開(kāi)始訪問(wèn)。優(yōu)點(diǎn):不浪費(fèi)存貯空間;

缺點(diǎn):

a.雙字、單字或半字都可能出現(xiàn)跨存儲(chǔ)單元存放情況。致使訪問(wèn)一個(gè)變量或存貯單位必須花費(fèi)兩個(gè)存儲(chǔ)周期的時(shí)間。

b.RAM的R/W控制比較復(fù)雜,Read時(shí),要用and屏蔽取出有效的部分;Write時(shí),要屏蔽2次完成。解決的方法:

a.無(wú)論是雙字、單字、半字或字節(jié),都必須從一個(gè)存儲(chǔ)單元的起始地址開(kāi)始存放,而這個(gè)存儲(chǔ)單元的其它部分不用。這樣,無(wú)論訪問(wèn)雙字、單字、半字或字節(jié),都可以在一個(gè)存儲(chǔ)周期內(nèi)完成,且讀寫控制簡(jiǎn)單。此法缺點(diǎn)是空間浪費(fèi)很大。

b.按整數(shù)邊界存儲(chǔ),即從地址的整倍數(shù)位置開(kāi)始訪問(wèn):雙字地址最末3個(gè)二進(jìn)制位必須是000,單字地址最末2個(gè)二進(jìn)制位必須為00,半字地址最末1個(gè)二進(jìn)制位必須為0。此法能夠保證無(wú)論訪問(wèn)雙字、單字、半字或字節(jié),都可以在一個(gè)存儲(chǔ)周期內(nèi)完成。盡管有存儲(chǔ)空間浪費(fèi)和存儲(chǔ)器讀寫控制較復(fù)雜的問(wèn)題,但比a方式要好得多。字節(jié)編址的存儲(chǔ)器中,還要考慮一個(gè)存儲(chǔ)字中的多個(gè)字節(jié)如何編碼問(wèn)題。存在兩種排序方法:(1)小端存儲(chǔ)(LittleEndian):字節(jié)或半字的最低位字節(jié)(LowestSignificantBit,LSB)存放于內(nèi)存最低位字節(jié)地址上。即:最低地址存放最低位字節(jié)

(2)大端存儲(chǔ)(BigEndian):字節(jié)或半字的最高位字節(jié)(MostSignificantBit,MSB)存放于內(nèi)存最低位字節(jié)地址上。即:最低地址存放最高位字節(jié)

12345678310(a)小端存儲(chǔ)圖2-10存儲(chǔ)字中的字節(jié)編碼順序例78563412310(b)大端存儲(chǔ)另外,字節(jié)編址的計(jì)算機(jī)中,需要指令地址計(jì)數(shù)器根據(jù)訪問(wèn)內(nèi)容的長(zhǎng)短進(jìn)行計(jì)數(shù),如指令字長(zhǎng)為32位,則取該指令后,指令地址計(jì)數(shù)器應(yīng)加4;若是64位字長(zhǎng)指令,則需加8。3、編址方式(1)三個(gè)零地址空間通用寄存器、主存和I/O設(shè)備各自從“0”開(kāi)始獨(dú)立編址,即存在三個(gè)一維線性地址空間,這時(shí)要訪問(wèn)哪一類存儲(chǔ)部件,要有相應(yīng)的指令,并在指令中給出相應(yīng)編址空間的地址。(2)兩個(gè)零地址空間

通用寄存器獨(dú)立編址,主存儲(chǔ)器和輸入輸出設(shè)備統(tǒng)一編址。

(3)一個(gè)零地址空間,即所有設(shè)備都統(tǒng)一編址。(4)隱含編址即無(wú)零地址空間。如采用堆棧尋址的運(yùn)算指令無(wú)需地址,其操作地址由棧頂指針自動(dòng)決定。

4、I/O設(shè)備的非線性編址方式

①一臺(tái)設(shè)備一個(gè)地址;

②一臺(tái)設(shè)備兩個(gè)地址:其中一個(gè)是Data寄存器,一個(gè)是state/control寄存器。

③一臺(tái)設(shè)備多個(gè)I/O地址,如IntelPC機(jī)

2.2.2尋址方式1、立即數(shù)尋址方式直接在指令中給出操作數(shù)。其優(yōu)點(diǎn)是不需用數(shù)據(jù)存儲(chǔ)單元,指令譯碼時(shí)即得到操作數(shù),指令執(zhí)行速度快;缺點(diǎn)是只能用于源操作數(shù)尋址,且只能是精度不高的常數(shù)。

2、面向通用寄存器尋址方式優(yōu)點(diǎn)是指令字長(zhǎng)短、執(zhí)行速度快,支持向量、矩陣等運(yùn)算;缺點(diǎn)是由于寄存器種類功能多樣,硬件控制復(fù)雜,分配不合理可能會(huì)使編譯優(yōu)化困難。

2.2.2尋址方式3、面向堆棧尋址方式:①支持高級(jí)語(yǔ)言編譯優(yōu)化,遞歸。

②無(wú)須編址,指令碼最短。

③支持程序的嵌套和遞歸調(diào)用。4、面向主存尋址方式:普遍采用。主存尋址種類繁多,常用的有直接尋址、寄存器間接尋址、基址變址尋址、基址變址相對(duì)尋址、堆棧尋址(堆棧在主存中)等。靈活直接,適應(yīng)各種計(jì)算和信息處理,但速度慢。常用尋址方式1、立即數(shù)尋址方式:AddAX,1002、寄存器尋址方式:AddAX,BX

3、直接尋址方式:

MOVAX,[100]4、變址尋址方式:

MOVAX,[si]5、間接尋址方式

MOVBX,offsetdataX

MOVAX,[BX]6、基址變址尋址方式:MOVAX,[BX+si]7、基址變址相對(duì)尋址:MOVAX,[BX+si+100]

8、堆棧尋址方式:PUSHAX2.2.3程序裝入與定位方式邏輯地址(LA):程序員編寫程序時(shí)使用的地址。程序的邏輯地址相對(duì)本程序一般從“0”開(kāi)始主存物理地址(PA):程序在主存中的實(shí)際地址。從“0”開(kāi)始的一維線性空間。1、問(wèn)題描述:機(jī)器中往往有多道程序

①如何把程序從外存裝入RAM的過(guò)程。

②如何將邏輯地址(LA)轉(zhuǎn)成PA物理地址。程序裝入物理主存進(jìn)行定位時(shí),需要進(jìn)行邏輯地址空間到物理地址空間的映象和變換,即程序定位2、三種地址①符號(hào)地址②邏輯地址③物理地址3、程序需要定位的主要原因

:①程序獨(dú)立性要求:由OS在裝入執(zhí)行時(shí)動(dòng)態(tài)決定程序的位置。

②程序的模塊化設(shè)計(jì)工作。

③程序本身很大,難以一次性加載。4、三種定位方式

程序定位的概念:將程序中的指令和數(shù)據(jù)的邏輯地址(相對(duì)地址)轉(zhuǎn)換成主存中的物理地址的過(guò)程稱為定位。

(1)直接定位方式:一般適用于單任務(wù)方式。要求:程序員編程時(shí)已經(jīng)確定好了程序的地址空間,即利用物理地址編程。(早期應(yīng)用)

(2)靜態(tài)定位方式:目的程序裝入主存時(shí),通過(guò)調(diào)配運(yùn)行系統(tǒng)配備的裝入程序,把目的程序的邏輯地址用軟的方法逐一修改成物理地址。程序執(zhí)行時(shí),物理地址不能再改變。JMP100JMP100+m操作系統(tǒng)程序地址空間主存物理空間第一次靜態(tài)定位情況0x0mm+xJMP100JMP100+n操作系統(tǒng)程序地址空間主存物理空間第二次靜態(tài)定位情況0x0nn+x圖2-11某程序兩次裝入主存時(shí)的靜態(tài)定位靜態(tài)定位方式的優(yōu)點(diǎn)是:①由軟件完成;②可對(duì)多個(gè)程序段組成的程序進(jìn)行靜態(tài)鏈接,實(shí)現(xiàn)起來(lái)簡(jiǎn)單。其缺點(diǎn)主要有:①程序在執(zhí)行之前一次裝入到主存中,在程序執(zhí)行期間不能動(dòng)態(tài)調(diào)整。不利于程序的可重入;②多個(gè)用戶或進(jìn)程不能共享主存中的某段公共代碼。不利于多道程序的運(yùn)行環(huán)境;③若程序所需存儲(chǔ)容量超過(guò)了分配給它的主存空間,則程序員必須采用覆蓋結(jié)構(gòu);④不利于重疊、流水技術(shù)的應(yīng)用。

(3)動(dòng)態(tài)定位方式基址尋址法(硬邏輯實(shí)現(xiàn)):設(shè)置基址寄存器和地址加法器,將主存的起始地址存入該道程序的基址寄存器中,指令的地址字段不作修改,程序在執(zhí)行過(guò)程中不斷將邏輯地址加上基址寄存器中的基址來(lái)形成物理地址。動(dòng)態(tài)定位方式的優(yōu)點(diǎn):①程序執(zhí)行時(shí),不一定整個(gè)調(diào)入主存中,而且一個(gè)程序可分配在多個(gè)不連續(xù)的主存空間內(nèi),從而可以使用較小的主存分配單位,提高了主存的利用效率;②多個(gè)程序可以共享主存中的同一個(gè)程序段;③支持虛擬存儲(chǔ)器。主要缺點(diǎn):①需要由硬件支持;②實(shí)現(xiàn)存儲(chǔ)管理的軟件算法比較復(fù)雜。JMP100JMP100操作系統(tǒng)程序地址空間主存物理空間0x0nn+x圖2-12程序的動(dòng)態(tài)定位方式基址寄存器100+n2.3指令系統(tǒng)的設(shè)計(jì)2.3.1

指令格式的優(yōu)化設(shè)計(jì)2.3.2

指令功能的設(shè)計(jì)

2.3.1指令格式的優(yōu)化設(shè)計(jì)指令系統(tǒng)的設(shè)計(jì):

指令功能和指令格式的設(shè)計(jì)1、指令的組成

指令=[操作碼

code,地址碼Addr]

操作碼的表示體現(xiàn)了指令功能指令功能:操作類型(作何操作)

操作內(nèi)容(對(duì)何操作)問(wèn)題:如何用最短的位數(shù)來(lái)表示指令的操作信息和地址信息(1)操作碼的表示

地址碼體現(xiàn)了操作數(shù)的來(lái)源和表示(2)地址碼的表示問(wèn)題:如何用最短的位數(shù)來(lái)表示指令的操作信息和地址信息?1.操作碼的優(yōu)化表示指令格式的優(yōu)化目標(biāo)

1。如何節(jié)省程序的存貯空間(使指令的平均字長(zhǎng)最短);

2。指令格式怎樣規(guī)整,盡可能減少譯碼時(shí)間,取指令的時(shí)間。

三種指令表示:定長(zhǎng)表示法Huffman編碼法擴(kuò)展Huffman編碼法

(1)定長(zhǎng)表示法指令字長(zhǎng)固定簡(jiǎn)單、高效。但耗內(nèi)存,浪費(fèi)信息量。

(2)Huffman編碼法基本原理:

用最短的編碼表示最常用的指令,而用較長(zhǎng)的編碼表示較少使用的指令,使總存貯量減少。

其中Pi為指令i的使用概率或頻率。

li

為指令i的長(zhǎng)度

編碼平均長(zhǎng)度:其中Pi為指令i的使用概率或頻率。②最優(yōu)Huffman編碼法操作碼的最短平均長(zhǎng)度

指定長(zhǎng)編碼和Huffman編碼方法相比,兩者在占用二進(jìn)制位長(zhǎng)度方面的比值。

n:操作碼的實(shí)際平均長(zhǎng)度R越小越好③信息冗余量例1

設(shè)有一臺(tái)模型機(jī),共有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位定長(zhǎng)操作碼表示的R為:

Step1:按pi由小到大自左向右排列;

Step2:將當(dāng)前最小的兩個(gè)pi、pj

結(jié)合到一起,形成一棵樹(shù);

Step3:自Root開(kāi)始編碼,左1右0原則。例1的Huffman樹(shù)

:

④Huffman樹(shù)的構(gòu)造方法0.030.06010.030.040.050.150.300.400.090.150.300.601.00111110000001011011100111011111011111⑤Huffman樹(shù)法得到的編碼平均長(zhǎng)度

按例1計(jì)算得: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)擴(kuò)展編碼法

①采用原因:Huffman編碼法所形成的操作碼很不規(guī)整,因此要采用一種折衷方法。擴(kuò)展編碼法就是其中一種較好的選擇。

②方法:一般采用等長(zhǎng)擴(kuò)展法,如4-8-12擴(kuò)展法。擴(kuò)展編碼法舉例指令頻度Pi操作碼(Huffman)操作碼長(zhǎng)度li擴(kuò)展操作碼Pi操作碼長(zhǎng)度liI10.4001002I20.30102012I30.151103102I40.0511100511004I50.0411101511014I60.0311110511104I70.0311111511114擴(kuò)展后平均長(zhǎng)度為:∑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編碼法大,但比定長(zhǎng)編碼法小得多,是實(shí)用的優(yōu)化編碼法。例2.某計(jì)算機(jī)有10條指令,它們的使用頻率分別為

0.30,0.20,0.16,0.09,0.08,0.07,

0.04,0.03,0.02,0.01(1)用Huffman編碼對(duì)它們的操作碼進(jìn)行編碼,并計(jì)算平均代碼長(zhǎng)度。(2)用擴(kuò)展Huffman編碼法對(duì)操作碼進(jìn)行編碼,限兩種操作碼長(zhǎng)度,并計(jì)算平均代碼長(zhǎng)度。答:(1)霍夫曼樹(shù)如下:000000000111111111Huffman編碼的結(jié)果以及各編碼的長(zhǎng)度如下0.300.200.160.090.080.070.040110100110011000000122334440.030.020.0100001000001000000566平均代碼長(zhǎng)度為:(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)霍夫曼樹(shù)如下:Huffman編碼的結(jié)果以及各編碼的長(zhǎng)度如下所示:0.300.200.160.090.080.070.040.030.020.011101101001100110000001000010000010000002233444566平均代碼長(zhǎng)度為(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)用擴(kuò)展Huffman編碼法對(duì)操作碼進(jìn)行編碼,限兩種操作碼長(zhǎng)度,并計(jì)算平均代碼長(zhǎng)度。(2)采用長(zhǎng)度為2和長(zhǎng)度為4兩種編碼:0.300.200.160.090.080.070.04000110001001101010111100

0.030.020.01111011111101平均代碼長(zhǎng)度為

(0.30+0.20)×2+(1-0.30-0.20)×4=3.0與Huffman編碼法結(jié)果接近2.地址碼的優(yōu)化表示涉及問(wèn)題:

①地址碼個(gè)數(shù):如何選擇最優(yōu)?

②如何縮短地址碼?(1)地址碼個(gè)數(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)縮短地址碼的方法

①問(wèn)題分析:

由于邏輯地址空間的大小固定的。因此,縮短地址碼長(zhǎng)度的根本目的是用一個(gè)較短的地址碼表示一個(gè)比較大的邏輯地址空間。

②問(wèn)題的解決方法:

A.

用寄存器間址方法

MOV

BX,offset

x

ADD

AX,[BX]

ADD

CX,[BX]...

B.用變址尋址方式縮短地址碼的長(zhǎng)度,只要將基址放在基址register中。

C.用間接尋址方式縮短地址碼的長(zhǎng)度。即通過(guò)在RAM的低端開(kāi)辟一個(gè)專門的存放地址的區(qū)域。

2.3.2指令功能的設(shè)計(jì)設(shè)計(jì)的基本要求:指令系統(tǒng)的完整性、規(guī)整性和高效率、兼容性。1、指令系統(tǒng)的完整性

完整性指對(duì)通用計(jì)算機(jī)系統(tǒng)應(yīng)具備基本的指令種類。主要是5類,即數(shù)據(jù)傳送(完成在寄存器、主存、堆棧之間的數(shù)據(jù)、地址等信息傳送)類、運(yùn)算(算術(shù)、邏輯、移位)類、程序控制(轉(zhuǎn)移、程序調(diào)用和返回)類、輸入輸出類和處理機(jī)控制和調(diào)試(包括特權(quán)指令)類。

2.3.2指令功能的設(shè)計(jì)在指令系統(tǒng)功能的設(shè)計(jì)時(shí),往往要考慮多種因素的組合。比如運(yùn)算指令,要考慮4種因素的組合,即①操作種類;②數(shù)據(jù)表示;③數(shù)據(jù)長(zhǎng)度;④數(shù)據(jù)存儲(chǔ)設(shè)備。上述因素的組合會(huì)產(chǎn)生多種指令,要根據(jù)指令的使用頻度、指令執(zhí)行時(shí)間、硬件實(shí)現(xiàn)的復(fù)雜度等多方面情況,區(qū)分出必要的、可有可無(wú)的或不應(yīng)該設(shè)置的。并經(jīng)過(guò)模擬試驗(yàn)和統(tǒng)計(jì)分析,最后確定出合理的指令來(lái)。2、指令的規(guī)整性規(guī)整性主要包括對(duì)稱性和均勻性。對(duì)稱性是指與指令有關(guān)的數(shù)據(jù)存儲(chǔ)設(shè)備、操作碼的設(shè)置等要對(duì)稱。均勻性是指對(duì)于各種不同的因素,如操作種類、數(shù)據(jù)表示、數(shù)據(jù)長(zhǎng)度、數(shù)據(jù)存儲(chǔ)設(shè)備等,指令的設(shè)置要同等對(duì)待。事實(shí)上,這些因素的組合數(shù)量很大。要完全達(dá)到均勻性是不可能的。因此設(shè)計(jì)指令系統(tǒng)時(shí),對(duì)于規(guī)整性的要求必須有所選擇。3、指令的高效率和兼容性

高效率是指指令系統(tǒng)的指令執(zhí)行速度要快,使用頻度要高。這方面RISC體系結(jié)構(gòu)和CISC體系結(jié)構(gòu)有不同的設(shè)計(jì)風(fēng)格,將在2.4節(jié)介紹。兼容性是計(jì)算機(jī)系統(tǒng)所必須考慮的,兼容性好,將大大延續(xù)計(jì)算機(jī)系統(tǒng)的使用壽命。

設(shè)計(jì)要點(diǎn):

①分析指令的分類或類型

②統(tǒng)計(jì)使用頻率

③指令編碼

④操作數(shù)編碼等等。2.4指令系統(tǒng)的改進(jìn)優(yōu)化指令系統(tǒng)的兩種不同的途徑和方法2.4.1

復(fù)雜指令系統(tǒng)(CISC)2.4.2

精簡(jiǎn)指令系統(tǒng)(RISC)2.4.3

指令系統(tǒng)的優(yōu)化發(fā)展方向

2.4.1復(fù)雜指令系統(tǒng)(CISC)復(fù)雜指令系統(tǒng)(ComplexInstructionSetComputer,CISC)增強(qiáng)指令功能,用新的復(fù)雜指令替代原由軟件子程序完成的功能,實(shí)現(xiàn)軟件功能硬化的計(jì)算機(jī)系統(tǒng)它可從面向目標(biāo)程序、面向高級(jí)語(yǔ)言和面向操作系統(tǒng)這三方面的優(yōu)化來(lái)考慮。

1.目標(biāo)程序的優(yōu)化思路:從時(shí)間上和空間上優(yōu)化目標(biāo)程序,將使用頻度高的指令進(jìn)行硬件加速,用新指令替代使用頻度高的指令串主要途徑:(1)增強(qiáng)數(shù)據(jù)轉(zhuǎn)送指令的功能(2)增強(qiáng)運(yùn)算型指令的功能(3)增強(qiáng)程序控制指令的功能如8088指令系統(tǒng)中的串操作指令和帶重復(fù)前綴的串操作指令。指令REPMOVSW其功能相當(dāng)于一個(gè)指令串:

MVSW:MOVAX,[SI]MOVES:[DI],AXINCSIINCSIINCDIINCDIDECCXJNZMVSW如函數(shù)運(yùn)算指令。三角函數(shù)SIN(X)的計(jì)算是展開(kāi)成級(jí)數(shù)進(jìn)行一系列四則運(yùn)算的結(jié)果如8088指令系統(tǒng)中的循環(huán)控制指令

LOOPNZLBL其功能相當(dāng)于執(zhí)行下述一系列操作:

CX-1→CX

若CX≠0且ZF≠1

則程序轉(zhuǎn)向標(biāo)號(hào)LBL,否則執(zhí)行下一條指令2.對(duì)高級(jí)語(yǔ)言和編譯程序的支持思路:縮小高級(jí)語(yǔ)言和機(jī)器語(yǔ)言的差距,使目標(biāo)程序提高時(shí)空效率主要途徑:(1)增強(qiáng)對(duì)高級(jí)語(yǔ)言和編譯程序支持的指令,從而達(dá)到減少目標(biāo)程序長(zhǎng)度,減少目標(biāo)程序執(zhí)行時(shí)間的目的。例:賦值語(yǔ)句、IF.....Then....語(yǔ)句等的機(jī)器支持。(2)高級(jí)語(yǔ)言計(jì)算機(jī)——如Lisp計(jì)算機(jī),prolog計(jì)算機(jī)。3.操作系統(tǒng)的優(yōu)化針對(duì)操作系統(tǒng)的功能進(jìn)行直接支持(1)優(yōu)化支持操作系統(tǒng)的指令處理機(jī)工作狀態(tài)和訪問(wèn)方式的轉(zhuǎn)換進(jìn)程的管理和切換存儲(chǔ)管理和信息保護(hù)進(jìn)程的同步和互斥,信號(hào)燈的管理等(2)增加專用于操作系統(tǒng)的指令如某些不公開(kāi)的特權(quán)指令(3)把操作系統(tǒng)中使用頻繁,對(duì)速度影響大的機(jī)構(gòu)型軟件子程序硬化或固化;(4)由專門的處理機(jī)來(lái)執(zhí)行操作系統(tǒng),形成功能分布處理系統(tǒng)結(jié)構(gòu)。

(1)指令格式不固定,指令可長(zhǎng)可短,操作數(shù)可多可少;(2)尋址方式復(fù)雜多樣,操作數(shù)可來(lái)自寄存器,也可來(lái)自存儲(chǔ)器;(3)采用微程序控制,執(zhí)行每條指令均需完成一個(gè)微指令序列;(4)一般CPI>5,指令越復(fù)雜,CPI越大。4.CISC的特點(diǎn)2.4.2精簡(jiǎn)指令系統(tǒng)(RISC)精簡(jiǎn)指令系統(tǒng)(ReducedInstructionSetComputer,RISC)

減少指令數(shù)目,簡(jiǎn)化指令功能,降低硬件復(fù)雜度,提高指令執(zhí)行速度(1個(gè)節(jié)拍內(nèi)完成)的計(jì)算機(jī)系統(tǒng)RISC是80年代提出的一種新的設(shè)計(jì)思想。目前許多處理機(jī)都采用了RISC指令系統(tǒng)。例:Sun、ultrasparc、SGI、PowerPC、Intel80486、Pentium1-4等。1.CISC的問(wèn)題(1)20%與80%規(guī)律

龐大的指令系統(tǒng)中大部分指令利用率低大約20%的指令占據(jù)了80%的執(zhí)行時(shí)間.

事實(shí)上,頻度最高的是三類指令——MOV、ALU、Jump。

(如對(duì)8088指令系統(tǒng)的統(tǒng)計(jì)分析)指令使用頻度指令執(zhí)行時(shí)間指令名稱占百分比累計(jì)占百分比指令名稱占百分比累計(jì)占百分比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處理機(jī)指令系統(tǒng)使用頻度和執(zhí)行時(shí)間統(tǒng)計(jì)(部分)(2)VLSI技術(shù)的發(fā)展引起的問(wèn)題

CISC控制十分復(fù)雜,不規(guī)整,不符合VLSI發(fā)展的方向,而RISC則控制簡(jiǎn)單,而且比較規(guī)整。在CISC處理機(jī)中,大量使用微程序技術(shù)以實(shí)現(xiàn)CISC。(3)軟硬件功能分配問(wèn)題

在CISC中,雖然增加了硬件指令,但并不能保證整個(gè)程序執(zhí)行時(shí)間的縮短。因?yàn)檫@些復(fù)雜指令要消耗較多的CPU周期數(shù),但又不常用。此外,CISC系統(tǒng)各種指令執(zhí)行周期的復(fù)雜不一,很不適應(yīng)流水線技術(shù)的發(fā)展。

精簡(jiǎn)指令集:保留最基本的,去掉復(fù)雜、使用頻度不高的指令大大減少指令系統(tǒng)可采用尋址方式的

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論