第2章-計算機體系結(jié)構(gòu)_第1頁
第2章-計算機體系結(jié)構(gòu)_第2頁
第2章-計算機體系結(jié)構(gòu)_第3頁
第2章-計算機體系結(jié)構(gòu)_第4頁
第2章-計算機體系結(jié)構(gòu)_第5頁
已閱讀5頁,還剩100頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章-計算機體系結(jié)構(gòu)

計算機體系結(jié)構(gòu)第二章

數(shù)據(jù)表示、尋址方式與指令系統(tǒng)2.1數(shù)據(jù)表示2.2尋址方式2.3指令系統(tǒng)的設(shè)計與優(yōu)化2.4指令系統(tǒng)的發(fā)展和改進第二章

數(shù)據(jù)表示、尋址方式與指令系統(tǒng)2.1數(shù)據(jù)表示2.2尋址技術(shù)2.3指令格式的優(yōu)化設(shè)計2.4指令系統(tǒng)的功能設(shè)計2.5RISC指令系統(tǒng)新的數(shù)據(jù)表示方法,如自定義數(shù)據(jù)表示新的研究成果,如浮點數(shù)基值的選擇方法2.1.1數(shù)據(jù)表示與數(shù)據(jù)類型2.1.2高級數(shù)據(jù)表示2.1.3浮點數(shù)的設(shè)計方法2.1數(shù)據(jù)表示數(shù)據(jù)表示的定義:數(shù)據(jù)表示是指計算機硬件能夠直接識別,可以被指令系統(tǒng)直接調(diào)用的那些數(shù)據(jù)類型。

數(shù)據(jù)類型:文件、圖、表、樹、陣列、隊列、鏈表、棧、向量、串、實數(shù)、整數(shù)、布爾數(shù)、字符等。2.1.1數(shù)據(jù)表示與數(shù)據(jù)類型數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)表示是軟、硬件的交界面。系統(tǒng)結(jié)構(gòu)在設(shè)計軟硬件功能分配時,應(yīng)考慮在機器中設(shè)置哪些數(shù)據(jù)表示,以便對應(yīng)用中的數(shù)據(jù)結(jié)構(gòu)有高的實現(xiàn)效率,這是以花費適當?shù)挠布鳛榇鷥r的。因此:數(shù)據(jù)表示的確定實質(zhì)是軟、硬件的取舍問題。2.1.1數(shù)據(jù)表示與數(shù)據(jù)類型確定數(shù)據(jù)表示的原則:

1.縮短程序的運行時間

2.減少CPU與主存儲器之間的通信量

3.這種數(shù)據(jù)表示的通用性和利用率數(shù)據(jù)表示在不斷發(fā)展如:矩陣、樹、圖、表及自定義數(shù)據(jù)表示等機器的運算類指令和運算器結(jié)構(gòu)主要是:按機器有什么樣的數(shù)據(jù)表示來確定的。目前,通用計算機系統(tǒng)上,定點數(shù)、浮點數(shù)、邏輯數(shù)、十進制數(shù)、字符串(位串)等基本數(shù)據(jù)表示和變址操作一般都是不可少的。但是要想實現(xiàn)各種數(shù)據(jù)結(jié)構(gòu),不僅效率低,而且軟件負擔(dān)較重。因此,在確定數(shù)據(jù)表示時應(yīng)該考慮怎樣為數(shù)據(jù)結(jié)構(gòu)的實現(xiàn)提供進一步的支持,引入一些高級數(shù)據(jù)表示,這比在指令系統(tǒng)中增設(shè)技巧性新指令的意義更大。例2.1:實現(xiàn)A=A+B,A和B均為200×200的矩陣,分析向量數(shù)據(jù)表示的作用解:如果在沒有向量數(shù)據(jù)表示的計算機系統(tǒng)上實現(xiàn),一般需要6條指令,其中有4條指令要循環(huán)4萬次。因此,CPU與主存儲器之間的通信量:

取指令2+4×40,000條,

讀或?qū)憯?shù)據(jù)3×40,000個,共要訪問主存儲器7×40,000次以上。如果有向量數(shù)據(jù)表示,只需要一條指令。減少訪問主存(取指令)次數(shù):4×40,000次縮短程序執(zhí)行時間一倍以上。數(shù)據(jù)表示在不斷擴大:如字符串、向量、堆棧、圖、表用軟件和硬件相結(jié)合的方法實現(xiàn)新的數(shù)據(jù)表示;例如:用字節(jié)編址和字節(jié)運算指令來支持字符串數(shù)據(jù)表示;用變址尋址方式來支持向量數(shù)據(jù)表示等1.自定義數(shù)據(jù)表示自定義(self-defining)數(shù)據(jù)表示包括帶標志符的數(shù)據(jù)表示和數(shù)據(jù)描述符兩類。標志符:是和每個數(shù)據(jù)相連的,合存在一個存貯單元中,描述單個數(shù)據(jù)的類型特征;描述符:是和數(shù)據(jù)分開存放的,專門用來描述索要訪問的數(shù)據(jù)是整塊數(shù)據(jù)還是單個數(shù)據(jù),訪問該數(shù)據(jù)塊或數(shù)據(jù)元素所需要的地址以及其他特征信息。2.1.2高級數(shù)據(jù)表示在B5000大型機中,每個數(shù)據(jù)有1位標志符;在B6500和B7500大型機中,每個數(shù)據(jù)有3位標志符;在R-2巨型機中采用10位標志符帶有標志符的數(shù)據(jù)表示方式標志符數(shù)值1

帶標志符的數(shù)據(jù)表示法在R2巨型機中帶標志符的數(shù)據(jù)表示方法功能數(shù)值陷井封寫類型校驗2位2位1位4位1位10位標志符R-2巨型機中的標志符:功能位:操作數(shù)、指令、地址、控制字陷井位:由軟件定義四種捕捉方式封寫位:指定數(shù)據(jù)是只讀的還是可讀可寫類型位:二進制,十進制,定點數(shù),浮點數(shù),復(fù)數(shù),字符串,單精度,雙精度等絕對地址、相對地址、變址地址、未連接的地址等校驗位:校驗標志符由編譯器或其它系統(tǒng)軟件建立,對程序員透明采用標志符數(shù)據(jù)表示方法的主要優(yōu)點:

(1) 簡化了指令系統(tǒng)。

(2) 由硬件自動實現(xiàn)一致性檢查和數(shù)據(jù)類型的轉(zhuǎn)換。

(3) 簡化程序設(shè)計,縮小了人與機器之間的語義差距。

(4) 簡化編譯器,使高級語言與機器語言之間的語義差距大大縮短。

(5) 支持數(shù)據(jù)庫系統(tǒng),一個軟件不加修改就可適用于多種數(shù)據(jù)類型。

(6) 方便軟件調(diào)試,在每個數(shù)據(jù)中都有陷井位。采用標志符數(shù)據(jù)表示方法的主要缺點:(1)數(shù)據(jù)和指令的長度可能不一致。(2)指令的執(zhí)行速度降低。程序的設(shè)計時間、編譯時間和調(diào)試時間縮短。(3)硬件復(fù)雜度增加。數(shù)據(jù)描述符與標志符的區(qū)別:

標志符只作用于一個數(shù)據(jù),而數(shù)據(jù)描述符要作用于一組數(shù)據(jù)。Burroughs公司生產(chǎn)的B-6700機中采用的數(shù)據(jù)描述符表示方法:2數(shù)據(jù)描述符表示法最高三位為101時表示數(shù)據(jù)描述符最高三位為000時表示數(shù)據(jù)例如:用數(shù)據(jù)描述符表示方法表示一個3×4的矩陣A數(shù)據(jù)描述符101地址標志位長度數(shù)據(jù)000數(shù)值1.自定義數(shù)據(jù)表示2.向量數(shù)組數(shù)據(jù)3.堆棧數(shù)據(jù)表示2.1.2高級數(shù)據(jù)表示浮點數(shù)格式的設(shè)計尾數(shù):多數(shù)機器采用原碼、小數(shù)表示。采用原碼制表示:加減法比補碼表示復(fù)雜,乘除法比補碼簡單,表示非常直觀。采用小數(shù)表示能簡化運算,特別是乘除法運算。階碼:一般機器都采用整數(shù)、移碼表示。采用移碼表示的主要原因是:浮點0與機器0一致。階碼進行加減運算時,移碼的加減法運算要比補碼復(fù)雜2.1.3浮點數(shù)的設(shè)計方法2.1.3浮點數(shù)的設(shè)計方法浮點數(shù)的表示方式一般格式:P39頁由階碼部分和尾數(shù)部分組成階碼部分包含了階符和階值階碼部分p+1位,階值占p位,階符占1位。階碼的位數(shù)p將會影響到:可表示數(shù)的范圍大小。尾數(shù)的尾數(shù)m將會影響到表示數(shù)的精度。當p一定,m一定時,尾數(shù)采用什么進制也會影響到數(shù)的可表示范圍。---浮點數(shù)尾數(shù)的基值選擇問題。當p一定,m一定時,尾數(shù)采用什么進制也會影響到數(shù)的可表示范圍。當p,m一定時,隨著rm的增大:(1)可表示數(shù)的范圍(2)可表示數(shù)的個數(shù)。(3)數(shù)在數(shù)軸上的分布。(4)可表示的精度(5)運算中的精度損失。(6)運算速度第二章指令系統(tǒng)2.1數(shù)據(jù)表示2.2尋址技術(shù)2.3指令格式的優(yōu)化設(shè)計2.4指令系統(tǒng)的功能設(shè)計2.5RISC指令系統(tǒng)尋找操作數(shù)及其他信息的地址的技術(shù)稱為尋址技術(shù)內(nèi)容:編址方式、尋址方式和定位方式對象:寄存器、主存儲器、堆棧和輸入輸出設(shè)備方法:分析各種尋址技術(shù)的優(yōu)缺點,如何選擇和確定尋址技術(shù)2.2.1編址方式 2.2.2尋址方式2.2.3定位方式2.2尋址技術(shù)編址方式是指對各種存儲設(shè)備進行編碼的方法。主要內(nèi)容:編址單位、零地址空間個數(shù)、并行存儲器的編址技術(shù)、輸入輸出設(shè)備的編址技術(shù)1、編址單位常用的編址單位:字編址、字節(jié)編址、位編址、塊編址等2.2.1編址方式編址單位與訪問字長

一般機器:字節(jié)編址,字訪問

部分機器:位編址,字訪問

輔助存儲器:塊編址字節(jié)編址字訪問的優(yōu)缺點

有利于信息處理

地址信息浪費、存儲器空間浪費

讀寫邏輯稍復(fù)雜

0字節(jié)位置引起的問題2、零地址空間個數(shù)三個零地址空間:通用寄存器、主存儲器和輸入輸出設(shè)備均獨立編址兩個零地址空間:主存儲器與輸入輸出設(shè)備統(tǒng)一編址一個零地址空間:所有存儲設(shè)備統(tǒng)一編址,最低端是通用寄存器,最高端是輸入輸出設(shè)備,中間為主存儲器隱含編址方式,實際上沒有零地址空間:堆棧、Cache等3、輸入輸出設(shè)備的編址一臺設(shè)備一個地址一臺設(shè)備兩個地址:數(shù)據(jù)寄存器、狀態(tài)或控制寄存器多個需要編址的寄存器共用同一個地址的方法:依靠地址內(nèi)部來區(qū)分,適用于被編址的接口寄存器的長度比較短?!跋赂ā彪[含編址方式,必須按順序讀寫寄存器。一臺設(shè)備多個地址。對編程增加困難4、并行存儲器的編址技術(shù)高位交叉編址:主要目的是用來擴大存儲器容量。低位交叉編址:主要目的是提高存儲器速度。尋址方式:尋找操作數(shù)及數(shù)據(jù)存放單元的方法。主要內(nèi)容:設(shè)計思想和設(shè)計方法1、尋址方式的設(shè)計思想立即數(shù)尋址方式:用于數(shù)據(jù)比較短、源操作數(shù)面向寄存器的尋址方式:

OPC R

OPC R, R

OPC R, R, ROPC R, M2.2.2尋址方式面向主存儲器的尋址方式:

OPC M

OPC M, M

OPC M, M, M面向堆棧的尋址方式:

OPC

OPC M2、間接尋址方式與變址尋址方式的比較目的相同:都是為了解決操作數(shù)地址的修改問題 都能做到不改變程序而修改操作數(shù)地址 原則上,一種處理機中只需設(shè)置間址尋址方式與變址尋址方式中的任何一種即可,有些處理機兩種尋址方式都設(shè)置如何選取間址尋址方式與變址尋址方式?

優(yōu)缺點怎樣?主要優(yōu)缺點比較:

采用變址尋址方式編寫的程序簡單、易讀。對于程序員,兩種尋址方式的主要差別是:間址尋址方式:間接地址在主存儲器中,沒有偏移量變址尋址方式:基地址在變址寄存器中,有偏移量

實現(xiàn)的難易程度:間址尋址方式容易指令的執(zhí)行速度:間址尋址方式慢 對數(shù)組運算的支持:變址尋址方式比較好自動變址:訪問間接地址過程中,地址自動增減變址與間址混合時,兩種方式:

前變址尋址方式:EA=((X)+A)后變址尋址方式:EA=(X)+(A)3、寄存器尋址主要優(yōu)點:指令字長短、指令執(zhí)行速度快、支持向量和矩陣運算主要缺點:不利于優(yōu)化編譯、現(xiàn)場切換困難、硬件復(fù)雜4、堆棧尋址方式主要優(yōu)點:支持高級語言,有利與編譯程序;節(jié)省存儲空間支持程序的嵌套和遞歸調(diào)用,支持中斷處理主要缺點:運算速度比較低,棧頂部分設(shè)計成一個高速的寄存器堆程序的主存物理地址在什么時間確定?采用什么方式來實現(xiàn)?程序需要定位的主要原因:程序的獨立性;程序的模塊化設(shè)計;數(shù)據(jù)結(jié)構(gòu)在程序運行過程中,其大小往往是變化的;有些程序本身很大,大于分配給它的主存物理空間

2.2.3定位方式直接定位方式:在程序裝入主存儲器之前,程序中的指令和數(shù)據(jù)的主存物理就已經(jīng)確定了的稱為直接定位方式。靜態(tài)定位:在程序裝入主存儲器的過程中隨即進行地址變換,確定指令和數(shù)據(jù)的主存物理地址的稱為靜態(tài)定位方式。動態(tài)定位:在程序執(zhí)行過程中,當訪問到相應(yīng)的指令或數(shù)據(jù)時才進行地址變換,確定指令和數(shù)據(jù)的主存物理地址的稱為動態(tài)定位方式?;穼ぶ贩ǎ涸黾酉鄳?yīng)的基址寄存器和地址加法器硬件。在程序不作變換直接裝入主存的同時,將裝入主存的起始地址a存入對應(yīng)該道程序使用的基址寄存器中,程序執(zhí)行時,只要通過地址加法器將邏輯地址加上基址寄存器的程序基址形成物理(有效)地址后去訪存即可?;穼ぶ贩ㄖ噶畹刂反a基址寄存器邏輯(形式)地址程序基點(a)地址加法器物理(有效)地址第二章

數(shù)據(jù)表示、尋址方式與指令系統(tǒng)2.1數(shù)據(jù)表示2.2尋址技術(shù)2.3指令格式的優(yōu)化設(shè)計2.4指令系統(tǒng)的功能設(shè)計2.5RISC指令系統(tǒng)主要目標:

節(jié)省程序的存儲空間

指令格式盡量規(guī)整,便于譯碼研究內(nèi)容:操作碼的優(yōu)化表示;地址碼的優(yōu)化表示2.3.1指令的組成2.3.2操作碼的優(yōu)化設(shè)計2.3.3地址碼的優(yōu)化設(shè)計2.3.4指令格式設(shè)計舉例2.3指令格式的優(yōu)化設(shè)計一般的指令主要由兩部分組成:操作碼和地址碼操作碼主要包括兩部分內(nèi)容:

操作種類:加、減、乘、除、數(shù)據(jù)傳送、

移位、轉(zhuǎn)移、輸入輸出

操作數(shù)描述:數(shù)據(jù)的類型:定點數(shù)、浮點數(shù)、復(fù)數(shù)、字符、字符串、邏輯數(shù)、向量

進位制:2進制、10進制、16進制

數(shù)據(jù)字長:字、半字、雙字、字節(jié)2.3.1指令的組成地址碼通常包括三部分內(nèi)容:地址:

直接地址、間接地址、立即數(shù)、

寄存器編號、變址寄存器編號

地址的附加信息:

偏移量、塊長度、跳距

尋址方式:

直接尋址、間接尋址、立即數(shù)尋址、

變址尋址、相對尋址、寄存器尋址2.3.2操作碼的優(yōu)化表示操作碼的三種編碼方法:

固定長度、Huffman編碼、擴展編碼改進操作碼編碼方式能夠節(jié)省程序存儲空間,例如:Burroughs公司的B-1700機操作碼編碼方式整個操作系統(tǒng)所用指令的操作碼總位數(shù)改進的百分比8位定長編碼4-6-10擴展編碼Huffman編碼301,248184,966172,346039%43%2、Huffman編碼法1992年由Huffman首先提出操作碼的最短平均長度可通過下式計算:其中:pi表示第i種操作碼在程序中出現(xiàn)的概率固定長操作碼相對于

Huffman操作碼的

信息冗余量為:例2.6:假設(shè)一臺模型計算機共有7種不同的操作碼,如果采用固定長操作碼需要3位。已知各種操作碼在程序中出現(xiàn)的概率如下表,計算采用Huffman編碼法的操作碼平均長度,并計算固定長操作碼和Huffman操作碼的信息冗余量。

利用Huffman樹進行操作碼編碼的方法,又稱為最小概率合并法。指令I(lǐng)1概率0.45I20.30I30.15I40.05I50.03I60.01I70.011. 把所有指令按照操作碼在程序中出現(xiàn)的概率,自左向右從排列好。2. 選取兩個概率最小的結(jié)點合并成一個概率值是二者之和的新結(jié)點,并把這個新結(jié)點與其它還沒有合并的結(jié)點一起形成新結(jié)點集合。3. 在新結(jié)點集合中選取兩個概率最小的結(jié)點進行合并,如此繼續(xù)進行下去,直至全部結(jié)點合并完畢。4. 最后得到的根結(jié)點的概率值為1。5. 每個結(jié)點都有兩個分支,分別用一位代碼“0”和“1”表示。6. 從根結(jié)點開始,沿尖頭所指方向,到達屬于該指令的概率結(jié)點,把沿線所經(jīng)過的代碼組合起來得到這條指令的操作碼編碼。解:采用Huffman編碼法所得到的操作碼的平均長度=0.45×1+0.30×2+0.15×3+0.05×4

+0.03×5+0.01×6+0.01×6=1.97(位)采用最優(yōu)Huffman編碼法,操作碼的最短平均長度=0.45×1.152+0.30×1.737+0.15×2.737

+0.05×4.322+0.03×5.059+0.01×6.644

+0.01×6.644=1.95(位)如圖所示:0.450.300.150.050.030.010.011.000.550.02010101010101指令序號概率Huffman編碼法操作碼長度I10.4501位I20.30102位I30.151103位I40.0511104位I50.03111105位I60.011111106位I70.0111111116位采用3位固定長操作碼的信息冗余量為:Huffman編碼法的信息冗余量僅為:與3位定長操作碼的冗余量35%相比要小得多3、擴展編碼法Huffman操作碼的主要缺點:

操作碼長度很不規(guī)整,硬件譯碼困難

與地址碼共同組成固定長的指令比較困難擴展編碼法:由固定長操作碼與Huffman編碼法相結(jié)合形成

例如:改為1-2-3-5擴展編碼法,其操作碼最短平均長度為:H=0.45×1+0.30×2+0.15×3+

(0.05+0.03+0.01+0.01)×5= 2.00

信息冗余量為:

例改為2-4等長擴展編碼法,其操作碼最短平均長度為:

H = (0.450.30+0.15)2+(0.05+0.03+0.01+0.01)4

= 2.20

信息冗余量為:序號概率1-2-3-5擴展編碼I10.450I20.3010I30.15110I40.0511100I50.0311101I60.0111110I70.01111112-4等長擴展編碼0001101100110111101111平均長度2.02.2信息冗余量2.5%11.4%7條指令的操作碼擴展編碼法操作碼編碼說明00000001……11104位長度的操作碼共15種等長15/15/15……擴展編碼法1111000011110001……111111108位長度的操作碼共15種111111110000111111110001……11111111111012位長度的操作碼共16種操作碼編碼說明00000001……01114位長度的操作碼共8種等長8/64/512……擴展編碼法1000000010000001……111101118位長度的操作碼共64種100010000000100010000001……11111111011112位長度的操作碼共512種編碼方法不等長操作碼(4/6/10)擴展編碼法4位指令操作碼的長度6位10位指令

種類15/3/1615316348/31/1683116558/30/3283032708/16/2568162562804/32/2564322562922.1數(shù)據(jù)表示2.2尋址技術(shù)2.3指令格式的優(yōu)化設(shè)計2.4指令系統(tǒng)的功能設(shè)計2.5RISC指令系統(tǒng)第二章

數(shù)據(jù)表示、尋址方式與指令系統(tǒng)第二章

數(shù)據(jù)表示、尋址方式與指令系統(tǒng)指令系統(tǒng)是計算機系統(tǒng)結(jié)構(gòu)的主要組成部分指令系統(tǒng)是軟件與硬件分界面的一個主要標志指令系統(tǒng)是軟件與硬件之間互相溝通的橋梁指令系統(tǒng)與軟件之間的語義差距越來越大完整性是指應(yīng)該具備的基本指令種類,通用計算機必須有5類基本指令規(guī)整性包括對稱性和均勻性

對稱性:所有寄存器頭等對待操作碼的設(shè)置等都要對稱,如:A-B與B-A

均勻性:不同的數(shù)據(jù)類型、字長、存儲設(shè)備、操作種類要設(shè)置相同的指令高效率:指令的執(zhí)行速度要快;指令的使用頻度要高;各類指令之間要有一定的比例兼容性:在同一系列機內(nèi)指令系統(tǒng)不變(可以適當增加)指令系統(tǒng)性能完整性、規(guī)整性、高效率和兼容性指令的組成五類:數(shù)據(jù)傳送,運算,程序控制,輸入輸出,處理機控制和調(diào)試1、數(shù)據(jù)傳送類指令由如下三個主要因素決定:數(shù)據(jù)存儲設(shè)備的種類數(shù)據(jù)單位:字、字節(jié)、位、數(shù)據(jù)塊等采用的尋址方式2.4.1指令系統(tǒng)的功能設(shè)計指令種類(以字為傳送單位,不考慮尋址方式等):

通用寄存器通用寄存器

通用寄存器主存儲器

通用寄存器堆棧

主存儲器通用寄存器

主存儲器主存儲器

主存儲器堆棧

堆棧通用寄存器

堆棧主存儲器2、運算類指令考慮四個因數(shù)的組合:

(1)操作種類:加、減、乘、除、與、或、非、異或、比較、移位、檢索、轉(zhuǎn)換、匹配、清除、置位等

(2)數(shù)據(jù)表示:定點、浮點、邏輯、十進制、字符串、定點向量等

(3)數(shù)據(jù)長度:字、雙字、半字、字節(jié)、位、數(shù)據(jù)塊等

(4)數(shù)據(jù)存儲設(shè)備:通用寄存器、主存儲器、堆棧等以加法指令為例,一般應(yīng)設(shè)置如下幾種:

寄存器-寄存器型的定點單字長加法指令

寄存器-寄存器型的定點雙字長加法指令

寄存器-寄存器型的定點半字加法指令

寄存器-寄存器型的字節(jié)加法指令

寄存器-寄存器型的浮點單字長加法指令

寄存器-寄存器型的浮點雙字長加法指令

寄存器-寄存器型的單字長邏輯加法指令

寄存器-寄存器型的定點向量加法指令

寄存器-寄存器型的浮點向量加法指令移位指令,要組合以下三個因素:

移位方向:左移(L)、右移(R)

移位種類:算術(shù)移位(A)、邏輯移位(L)、

循環(huán)移位(R)

移位長度:單字長(S)、雙字長(D)

組合起來共有:3×2×2=12種,因邏輯左移與算術(shù)左移相同,因此移位指令應(yīng)該有10種,分別是:SLAS 單字長算術(shù)左移

SRAS 單字長算術(shù)右移

SLLS(SRLS) 單字長邏輯左移,

或單字長算術(shù)左移

SLRS 單字長循環(huán)左移

SRRS 單字長循環(huán)右移

SLAD 雙字長算術(shù)左移

SRAD 雙字長算術(shù)右移

SLLD(SRLD) 雙字長邏輯左移,

或雙字長算術(shù)左移

SLRD 雙字長循環(huán)左移

SRRD 雙字長循環(huán)右移位操作指令:置位、清位、位測試、找位等字符串指令:比較、查找、匹配、轉(zhuǎn)換等3、程序控制指令主要包括三類:轉(zhuǎn)移指令、調(diào)用和返回指令、

循環(huán)控制指令

轉(zhuǎn)移條件有:零(Z)、正負(N)、進位(C)、

溢出(V)及它們的組合主要條件轉(zhuǎn)移指令有:

BEQ 等于零轉(zhuǎn)移

BNEQ 不等于零轉(zhuǎn)移

BLS 小于轉(zhuǎn)移

BGT 大于轉(zhuǎn)移

BLEQ 小于等于轉(zhuǎn)移,或不大于轉(zhuǎn)移BGEQ 大于等于轉(zhuǎn)移,或不小于轉(zhuǎn)移BLSU 不帶符號小于轉(zhuǎn)移

BGTU 不帶符號大于轉(zhuǎn)移

BLEQU 不帶符號小于等于轉(zhuǎn)移,

或不帶符號不大于轉(zhuǎn)移

BGEQU 不帶符號大于等于轉(zhuǎn)移,

或不帶符號不小于轉(zhuǎn)移

BCC 沒有進位轉(zhuǎn)移

BCS 有進位轉(zhuǎn)移

BVC 沒有溢出轉(zhuǎn)移

BVS 有溢出轉(zhuǎn)移

程序調(diào)用和返回指令:CALL 轉(zhuǎn)入子程序RETURN 從子程序返回,本身可以帶有條件中斷控制指令

開中斷、關(guān)中斷、改變屏蔽、

中斷返回、自陷等4、輸入輸出指令啟動、停止、測試、控制設(shè)備,數(shù)據(jù)輸入、輸出操作等采用單一的直接尋址方式,在多用戶或多任務(wù)環(huán)境下,輸入輸出指令屬于特權(quán)指令也可以不設(shè)置輸入輸出指令,輸入輸出設(shè)備與主存儲器共用同一個零地址空間5、處理機控制和調(diào)試指令處理機狀態(tài)切換指令

處理機至少有兩個或兩個以上狀態(tài)硬件和軟件的調(diào)試指令

硬件調(diào)試指令:

鑰匙位置、開關(guān)狀態(tài)的讀取寄存器

和主存單元的顯示等

軟件調(diào)試指令:

斷點的設(shè)置、跟蹤,自陷井指令等指令系統(tǒng)的優(yōu)化設(shè)計有兩個截然相反的方向:

1.復(fù)雜指令系統(tǒng)計算機CISC

(ComplexInstructionSetComputer)

增強指令功能,設(shè)置功能復(fù)雜的指令

面向目標代碼、高級語言和操作系統(tǒng)

用一條指令代替一串指令

2.精簡指令系統(tǒng)計算機RISC

(ReducedInstructionSetComputer)

只保留功能簡單的指令

功能較復(fù)雜的指令用子程序來實現(xiàn)下一節(jié)主要介紹RISC指令系統(tǒng)的優(yōu)化設(shè)計改進性能的主要途徑面向目標代碼改進:

用一條指令代替一串指令方法:統(tǒng)計某條指令、某類指令或某個指令串的使用頻度包括動態(tài)使用頻度和靜態(tài)使用頻度

面向高級語言改進:

方法:統(tǒng)計某些語句的使用頻度

例如:一般程序中賦值語句占30%以上,為此,許多處理機中設(shè)置了寄存器與寄存器、寄存器與存儲器、存儲器與存儲器之間的成組傳送指令,存儲器到存儲器之間的運算指令。例如:在do循環(huán)中,循環(huán)體只有一、二條的占60%左右,造成循環(huán)控制部分所占的比例很大,因此,增加循環(huán)控制指令。面向操作系統(tǒng)改進:

方法:系統(tǒng)結(jié)構(gòu)設(shè)計要規(guī)整,消除例外情況寄存器定義要統(tǒng)一、操作要均均、所有存儲部件要對稱

例如:IBM370中,數(shù)據(jù)寄存器兼作變址寄存器和基址寄存器,R0的使用非常特殊,雙字指令只能用偶數(shù)寄存器;指令的設(shè)置不均均,有A-B無B-A等;存儲部件不對稱,運算結(jié)果只存放在寄存器中。2.1數(shù)據(jù)表示2.2尋址技術(shù)2.3指令格式的優(yōu)化設(shè)計2.4指令系統(tǒng)的功能設(shè)計2.5RISC指令系統(tǒng)第二章

數(shù)據(jù)表示、尋址方式與指令系統(tǒng)2.5.1從CISC到RISC70年代,指令系統(tǒng)已非常龐大,指令功能相當復(fù)雜(見下頁表)。1975年,IBM公司率先組織力量開始研究指令系統(tǒng)的合理性問題1979年研制出世界上第一臺采用RISC思想的計算機IBM8011986年,IBM正式推出采用RISC體系結(jié)構(gòu)的工作站IBMRTPC2.5精簡指令系統(tǒng)計算機RISC機型

(年代)IBM370/168

(1973)VAX-11

(1978)iAPX432

(1982)指令種類208303222微程序容量420K480K64K指令長度16-4816-4566-321制造工藝ECLMSITTLMSINMOSVLSI指令操

作類型Mem-Mem

Mem-Reg

Reg-RegMem-Mem

Mem-Reg

Reg-Reg面向堆棧

Mem-MemCache容量64K64K01、20%與80%規(guī)律CISC中,大約20%的指令占據(jù)了80%的處理機時間。8088處理機的指令種類約100種。前11種(11%)指令的使用頻度已經(jīng)超過80%前8種(8%)指令的運行時間已經(jīng)超過80%前20種(20%)指令:使用頻度達到91.1%,運行時間達到97.72%其余80%指令:使用頻度只有8.9%,只占2.28%的處理機運行時間CISC指令系統(tǒng)存在的問題:

DavidPatterson,UCBerkeley,19792、VLSI技術(shù)的發(fā)展引起的問題VLSI工藝要求規(guī)整性

RISC正好適應(yīng)了VLSI工藝的要求主存與控存的速度相當

簡單指令沒有必要用微程序?qū)崿F(xiàn),復(fù)雜指令用微程序?qū)崿F(xiàn)與用簡單指令組成的子程序?qū)崿F(xiàn)沒有多大區(qū)別;由于VLSI的集成度迅速提高,使得生產(chǎn)單芯片處理機成為可能。3、軟硬件的功能分配問題復(fù)雜的指令使指令的執(zhí)行周期大大加長

一般CISC處理機的指令平均執(zhí)行周期都在4以上,有些在10以上。CISC增強了指令系統(tǒng)功能,簡化了軟件,但硬件復(fù)雜了。1981年P(guān)atterson等人研制了32位RISCI微處理器,共31種指令,3種數(shù)據(jù)類型,2種尋址方式;研制周期10個月,比當時最先進的MC68000和Z8002快3至4倍;1983年又研制了RISCII,指令種類擴充到39種,單一的變址尋址方式,通用寄存器138個卡內(nèi)基梅隆大學(xué)(CarnegieMellon)論述RISC的特點:

1、大多數(shù)指令在單周期內(nèi)完成

2、LOAD/STORE結(jié)構(gòu)

3、硬布線控制邏輯

4、減少指令和尋址方式的種類

5、固定的指令格式

6、注重編譯優(yōu)化技術(shù)2.5.2RISC的定義與特點90年代初,IEEE的MichaelSlater對RISC定義的描述:

1、RISC為使流水線高效率執(zhí)行,應(yīng)具有:簡單而統(tǒng)一格式的指令譯碼大部分指令可以單周期執(zhí)行完成僅Load和Store指令可以訪問存儲器簡單的尋址方式;采用延遲轉(zhuǎn)移技術(shù);采用LOAD延遲技術(shù)2、RISC為使優(yōu)化編譯器便于生成優(yōu)化代碼,應(yīng)具有:三地址指令格式、較多的寄存器、對稱的指令格式程序執(zhí)行時間的計算公式:P=I·CPI·T其中:

P是執(zhí)行這個程序所使用的總的時間;

I是這個程序所需執(zhí)行的總的指令條數(shù);

CPI(CyclesPerInstruction)是每條指令執(zhí)行的平均周期數(shù)

T是一個周期的時間長度。RISC的速度要比CISC快3倍左右,關(guān)鍵是RISC的CPI減小了2.5.3減少CPI是RISC思想的精華硬件方面:

采用硬布線控制邏輯,減少指令和尋址方式的種類,使用固定的指令格式,采用LOAD/STORE結(jié)構(gòu),指令執(zhí)行過程中設(shè)置多級流水線等。軟件方面:十分強調(diào)優(yōu)化編譯技術(shù)的作用RISC設(shè)計思想也可以用于CISC中類型CISC指令條數(shù)

I指令平均周

期數(shù)CPI周期時間

T12~1533ns~5nsRISC1.3~1.41.1~1.410ns~2ns例如:Intel公司的80x86處理機的CPI在不斷縮小,

8088的CPI大于20

80286的CPI大約是5.5

80386的CPI進一步減小到4左右

80486的CPI已經(jīng)接近2

Pentium處理機的CPI已經(jīng)與RISC十分接近目前,超標量、超流水線處理機的CPI已經(jīng)達到0.5,實際上用IPC(InstructionPerCycle)更確切。1、延時轉(zhuǎn)移技術(shù)定義:為了使指令流水線不斷流,在轉(zhuǎn)移指令之后插入一條不相關(guān)的有效的指令,而轉(zhuǎn)移指令被延遲執(zhí)行,這種技術(shù)稱為延遲轉(zhuǎn)移技術(shù)。采用指令延遲轉(zhuǎn)移技術(shù)時,指令序列的調(diào)整由編譯器自動進行。2.5.4RISC的關(guān)鍵技術(shù)FEFEFEFE1: addr1,r2

2: jmpnext2

3: next1: subr3,r4

……

n: next2: mover4,a產(chǎn)生轉(zhuǎn)移地址指令作廢重新取指令因轉(zhuǎn)移指令引起的流水線斷流FEFEFE1: jmpnext2

2: addr1,r2

3: next1: subr3,r4

……

n: next2: mover4,a產(chǎn)生轉(zhuǎn)移地址插入指令重新取指令采用指令延遲轉(zhuǎn)移技術(shù)的指令流水線 (1)被移動指令在移動過程中與所經(jīng)過的指令之間不能有數(shù)據(jù)相關(guān)

(2)被移動指令不破壞條件碼,至少不影響后面的指令使用條件碼

如果找不到符合條件的指令,必須在條件轉(zhuǎn)移指令后面插入空操作;如果指令的執(zhí)行過程分為多個流水段,則要插入多條指令采用延遲轉(zhuǎn)移技術(shù)的兩個限制條件

調(diào)整前的指令序列:

1: move r1,r2

2: cmp r3,r4 ;(r3)與(r4)比較

3: beq exit ;如果(r3)=(r4)則轉(zhuǎn)移到next

4: add r4,r5

……

n: next: mover4,a調(diào)整后的指令序列:

1: cmp r3,r4 ;(r3)與(r4)比較

2: beq exit ;如果(r3)=(r4)則轉(zhuǎn)移到next

3: move r1,r2

4: add r4,r5

……

n: next: mover4,a2、指令取消技術(shù)采用指令延時技術(shù),在許多情況下找不到可以用來調(diào)整的指令;分為三種情況:向后轉(zhuǎn)移(循環(huán)程序)

實現(xiàn)方法:循環(huán)體的第一條指令經(jīng)調(diào)整后安排在兩個位置,第一個位置是在循環(huán)體的前面,第二個位置安排在循環(huán)體的后面。如果轉(zhuǎn)移成功,則執(zhí)行循環(huán)體后面的指令,然后返回到循環(huán)體開始;否則,則取消循環(huán)體后面的指令,繼續(xù)執(zhí)行后面的指令。效果:能夠使指令流水線在絕大多數(shù)情況下不斷流,由于絕大多數(shù)情況下,轉(zhuǎn)移是成功的。例子: 調(diào)整前 調(diào)整后

loop: XXX XXX

YYY loop: YYY

…… ……

ZZZ ZZZ

cmpr1,r2,loop cmpr1,r2,loop

WWW XXX

WWW (2)向前轉(zhuǎn)移(if-then)

實現(xiàn)方法:如果轉(zhuǎn)移不成功執(zhí)行下條指令,否則取消下條指令。 效果:成功與不成功的概率通常各為50%例子:RRR

……

SSS ;If部分的程序代碼

cmpr1,r2,thru ;若轉(zhuǎn)移,則取消TTT

TTT ;若不轉(zhuǎn)移,則執(zhí)行TTT

…… ;Then部分的程序代碼

UUU ;Then部分的程序代碼

thru:VVV(3)隱含轉(zhuǎn)移技術(shù)

應(yīng)用場合:用于if..then..結(jié)構(gòu),且then部分只有一條指令

實現(xiàn)方法:把IF的條件取反,如果取反后的條件成立則取消下條指令,否則執(zhí)行下條指令。 例子:if(a<b)thenb=b+1 cmp>=,ra,rb ;若(ra)>=(rb)則取消下條指令

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

評論

0/150

提交評論