高等计算机系统结构课件_第1页
高等计算机系统结构课件_第2页
高等计算机系统结构课件_第3页
高等计算机系统结构课件_第4页
高等计算机系统结构课件_第5页
已阅读5页,还剩220页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基本概念1.1電腦系統結構1.1.1電腦系統層次結構

1.層次結構的劃分

當前,應用語言機器級、高級語言機器級、組合語言機器級和操作系統機器級都是以軟體為主實現的,但也可根據電腦性能/價格的不同要求增加硬體支持。以軟體為主實現的機器稱為虛擬機器。

2.透明性電腦系統中的透明與通常意義下的“透明”的含義剛好相反。通常意義下的“透明”是指公開的,什麼都能看得到的。電腦系統的“透明”是看不到的意思,即對某一層的使用者來說,他看不到該層以下各層的機器屬性。3.各機器級的實現技術

低層機器級為高層機器級的功能實現提供支持,實現的技術就是翻譯和解釋。翻譯時先用翻譯程式把高層機器級上的車功能需翻譯成低層機器級上的等效程式,然後在低層機器級上實現程式功能。解釋使用底層機器級的一些語句或指令來仿真高層機器級上的一條語句或指令的功能,高層機器級程式中的每條語句或指令被逐條解釋來實現程式功能。1.1.2電腦組成與實現

電腦系統結構這個詞是Amdahl等人在1964年提出的。他們把系統結構定義為由程式設計者所看到的一個電腦系統的屬性,即概念性結構和功能特性。這實際上是電腦系統的外特性。這一概念至今有各種各樣的理解,很難有一個通用的定義。1.1.3電腦組成與實現1.電腦體系結構

傳統的電腦系統結構的定義是指電腦系統多級層次結構中機器語言機器級的結構,它是軟體和硬體/固件的主要交界面,是由機器語言程式、組合語言根源程式和高級語言遠程需翻譯生成的機器語言目標程式能在機器上正確運行所應具有的介面結構和功能。2.電腦組成與實現

電腦組成是電腦系統結構的邏輯實現,它主要研究硬體系統在邏輯上是如何組織的,機器級內部數據流和控制流的組成與邏輯設計。電腦實現是指電腦組成的物理實現,主要著眼於器件技術和微組裝技術。1.1.4電腦系統結構的分類1.flynn分類法

Flynn分類法按指令流和數據流的多倍性把電腦系統分為單指令流單數據流(SISD)系統、單指令流多數據流(SIMD)系統、多指令流單數據流(MISD)系統和多指令流多數據流(MIMD)系統等4類。2.馮式分類法

字串位串WSBS、字並位串WPBS、字串位並WSBP、字並位並WPBP3.Handler分類法程式控制部件、算術邏輯部件、基本邏輯線路1.2電腦系統設計技術1.2.1電腦系統設計的定量原理1.CPU性能

CPU時間=(IC*CPI)/時鐘頻率2.

Amdahl定律Amdahl定律用加速比來衡量系統採用的改進措施對系統性能提高的程度,加速比的定義為:

Sn=To/Tn其中,To為改進前所需的執行時間;Tn為改進後所需的執行時間。

1.2.2電腦系統設計者的主要任務

1.確定用戶對電腦系統的功能、價格和性能的要求2.軟硬體的平衡3.設計出符合今後發展方向的系統結構1.2.3電腦系統設計者的主要任務1.“由下往上”設計2.“由上往下”設計3.“由中間開始”設計1.3系統結構的評價標準1.3.1性能評測的常用方法:運算速度1.時鐘頻率(主頻):用於同類處理機之間

如:PentiumⅡ/450比PentiumⅡ/300快50%,…2.指令執行速度一種很經典的表示方法MIPS(MillionInstructionsPerSecond),KIPS,GIPS,TIPS

其中,Fz為處理機的工作主頻;CPI(CyclesPerInstruction)為每條指令所需的平均時鐘週期數;IPC(InstructionPerCycle)為每個時鐘週期平均執行的指令條數例1:計算PentiumII450處理機的運算速度。解:由於PentiumII450處理機的IPC=2(或CPI=0.5),Fz=450MHz,因此,MIPSPentiumII450=Fz×IPC=450×2=900(MIPS)主要缺點:(1)不同指令的速度差別很大(2)指令使用頻度差別很大(3)有相當多的非功能性指令3.等效指令速度:吉普森(Gibson)法其中,Wi:指令使用頻度,i:指令種類靜態指令使用頻度:在程式中直接統計動態指令使用頻度:在程式執行過程中統計在電腦發展的早期,用加法指令的運算速度來衡量電腦的速度。通常:加、減法50%,乘法15%,除法5%,程式控制15%,其他15%例2:我國最早研製的小型電腦DJS-130,定點16位,加法每秒50萬次,但沒有硬體乘法和除法指令,用軟體實現乘法和除法,速度低100倍左右。求等效速度。解:定點等效速度為:即每秒2萬次,由於乘法和除法用軟體實現,等效速度降低了25倍。4.核心程式法

把應用程式中用得最頻繁的那部分核心程式作為評價電腦性能的標準程式。稱為基準程式(benchmark)整數測試程式:Dhrystone用C語言編寫,100條語句。包括:各種賦值語句,各種數據類型和數據區,各種控制語句,過程調用和參數傳送,整數運算和邏輯操作。VAX-11/780的測試結果為每秒1757個Dhrystones,即:1VAXMIPS=1757Dhrystones/Second浮點測試程式:Linpack用FORTRAN語言編寫,主要是浮點加法和浮點乘法操作。用MFLOPS(MillionFloatingPointOperationsPerSecond)表示;GFLOPS、TFLOPSWhetstone基準測試程式用FORTRAN語言編寫的綜合性測試程式,測試結果用Kwips表示。SPEC基準測試程式(SystemperformanceevaluationCooperative)5、峰值速度峰值指令速度MIPS、GIPS、TIPSPentiumIII500有3條指令流水線,則其峰值指令速度為:3×500MHz=1500(MIPS)即每秒15億次例3:一個由8臺機器組成的Cluster系統,每臺機器是4個PentiumIII500組成的SMP系統;計算這個Cluster系統的指令峰值速度。解:峰值指令速度:500MHz´8´4´3=48(GIPS)即每秒480億次。峰值指令速度MIPS、GIPS、TIPS1.3.2其他方面的性能

1.存儲能力存儲容量,速度,編址單位,編址方式,尋址方式2.字長1~幾百位關鍵問題:程式與數據共用同一個主記憶體早期:由指令字長決定當前:由數據字長決定,8的倍數,如:32位、64位等可變字長:任意組合3.數據類型目前常用:定點、浮點、邏輯已有類型:向量、串、棧、樹發展方向:自定義4.指令系統CISC:複雜指令集電腦RISC:精簡指令集電腦VLIW:超長指令字5.輸入輸出能力輸入輸出方式中斷系統輸入輸出介面6.相容性共分12級:0~11,0級為完全不相容,11級為自身7.保護和診斷能力程式與數據的保護

重點、難點提示和教學手段重點:電腦系統結構、電腦組成、電腦實現三者的定義及所包含的內容;有關透明性問題的判斷;軟體和硬體的功能分配原則;軟體可移植的途徑、方法、適用場合、存在問題和對策;有關並行性的概念;系統結構中開發並行性的途徑和類型。難點:透明性的判斷與分析。

指令系統指令系統是電腦系統結構的主要組成部分指令系統是軟體與硬體分界面的一個主要標誌指令系統是軟體與硬體之間互相溝通的橋樑指令系統與軟體之間的語義差距越來越大2.1數據表示新的研究成果,如浮點數基值的選擇方法新的數據表示方法,如自定義數據表示2.1.1數據表示與數據類型2.1.2浮點數的設計方法2.1.3自定義數據表示2.1.1數據表示與數據類型數據表示的定義:數據表示是指電腦硬體能夠直接識別,可以被指令系統直接調用的那些數據類型。

定點、邏輯、浮點、十進位、字元、字串、堆疊和向量数据类型:檔、圖、表、樹、陣列、佇列、鏈表、棧、向量、串、實數、整數、布爾數、字元等。確定哪些數據類型用數據表示實現,是軟體與硬體的取捨問題。確定數據表示的原則:

1.縮短程式的運行時間

2.减少CPU與主記憶體之間的通信量

3.這種數據表示的通用性和利用率数据表示在不断发展

如:矩阵、树、图、表及自定义数据表示等例2.1:實現A=A+B,A和B均為200×200的矩陣,分析向量數據表示的作用解:如果在沒有向量數據表示的電腦系統上實現,一般需要6條指令,其中有4條指令要迴圈4萬次。因此,CPU與主記憶體之間的通信量:

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

讀或寫數據3×40,000個,

共要訪問主記憶體7×40,000次以上。如果有向量數據表示,只需要一條指令。減少訪問主存(取指令)次數:4×40,000次縮短程式執行時間一倍以上。數據表示在不斷擴大,如字串、向量、堆疊、圖、表用軟體和硬體相結合的方法實現新的數據表示;例如:用字節編址和位元組運算指令來支持字串數據表示;用變址尋址方式來支持向量數據表示等2.1.2浮點數的設計方法1、浮點數的表示方式一個浮點數N可以用如下方式表示:

需要有6個參數來定義。兩個數值:

m:尾數的值,包括尾數的碼制(原碼或補數)和數制(小數或整數)

e:階碼的值,移碼(偏碼、增碼、解碼、餘碼等)或補數,整數兩個基值:

rm:尾數的基值,2進制、4進制、8進制、16進制和10進制等

re:階碼的基值,通常為2兩個字長:

p:尾數長度,當rm=16時,每4個二進位位表示一位尾數

q:階碼長度,階碼部分的二進位位數

p和q均不包括符號位浮點數的存儲式

注:mf為尾數的符號位,ef為階碼的符號位,e為階碼的值,m為尾數的值。2、浮點數的表數範圍尾數為原碼、小數,階碼用移碼、整數時,規格化浮點數N的表數範圍:1位1位q位p位mfefem尾數為補數,而負數區間的表數範圍為:浮點數在數軸上的分佈情況例2.1:p=23,q=7,rm=re=2,尾數用原碼、小數表示,階碼用移碼、整數表示,求規格化浮點數N的表數範圍。

上溢上溢下溢(浮點零)-NminNmax-NmaxNmin0負數區正數區解:規格化浮點數N的表數範圍是:例2.3:尾數用補數、小數表示,階碼用移碼、整數表示,p=6,q=6,rm=16,re=2,求規格化浮點數N表數範圍解:規格化浮點數N在正數區間的表數範圍是:在負數區間的表數範圍是:6、浮點數格式的設計定義浮點數表示方式的6個參數的確定原則: 尾數:多數機器採用原碼、小數表示。採用原碼製錶示:加減法比補數表示複雜,乘除法比補數簡單,表示非常直觀。採用小數表示能簡化運算,特別是乘除法運算。

階碼:一般機器都採用整數、移碼表示。採用移碼表示的主要原因是:浮點0與機器0一致。階碼進行加減運算時,移碼的加減法運算要比補數複雜 尾數的基值rm選擇2,

階碼的基值re取2,浮點數格式設計的關鍵問題是:

在表數範圍和表數精度給定的情況下,如何確定最短的尾數字長p和階碼字長q例2.5:要求設計一種浮點數格式,其表數範圍不小於1037,正、負數對稱,表數精度不低於10-16。解:根據表數範圍的要求:

解這個不等式: 取階碼字長q=7

根據表數精度的要求,得到:

解这个不等式: 由於浮點數的字長通常為8的倍數,因此,取尾數字長p=55,總的字長為1+1+7+55=64,浮點數格式如下:1位1位7位55位mfefem所設計浮點數格式的主要性能如下: 最大尾數值: 絕對值最小的尾數值: 最大階碼: 最小階碼: 最大正數:

最小正数: 最大負數: 最小負數: 表數精度: 浮點零:浮點零與機器零相同,64位全為0

表數效率:採用隱藏位,表數效率

=100%

2.1.3自定義數據表示一般處理機中的數據表示方法 數據存儲單元(寄存器、主記憶體、

外存儲器等)只存放純數據 通过指令中的操作码来解释:

数据的类型(定點、浮點、字元、

字串、邏輯數、向量等)

進位制(2進制、10進制、16進制等)

数据字长(字、半字、雙字、位元組等)

寻址方式(直接尋址、間接尋址、

相對尋址、寄存器尋址等)

數據的功能(地址、數值、控制字、標誌等)等 同一種操作(如加法)有很多條指令在高級語言和應用軟體中,數據的屬性由數據自己定義。在高級語言與機器語言之間的語義差距,要靠編譯器等填補60年代開始,Burroughs公司在大型電腦中引入自定義數據表示方式和帶標誌符的數據表示方式1、帶標誌符的數據表示法在B5000大型機中,每個數據有一位標誌符;在B6500和B7500大型機中,每個數據有三位標誌符;在R-2巨型機中採用10位標誌符帶有標誌符的數據表示方式標誌符數值R-2巨型機中的標誌符

功能位:運算元、指令、地址、控制字

陷井位:由软件定义四种捕捉方式

封写位:指定数据是只读的还是可读可写

類型位:二進位,十進位,定點數,浮點數,

复数,字符串,单精度,双精度等

绝对地址、相对地址、变址地址、

未連接的地址等在R2巨型機中帶標誌符的數據表示方法功能數值陷井封寫類型校驗2位2位1位4位1位10位標誌符標誌符由編譯器或其他系統軟體建立,對程式員透明程式(包括指令和數據)的存儲量分析例2.5:假設X處理機的數據不帶標誌符,其指令字長和數據字長均為32位;Y處理機的數據帶標誌符,數據字長增加至35位,其中3位是標誌符,其指令字長由32位減少至30位。並假設一條指令平均訪問兩個運算元,每個運算元平均被訪問R次。分別計算這兩種不同類型的處理機中程序所佔用的存儲空間。解:X、Y處理機程式佔用的存儲空間總和分別為:

程序占用存储空间的比值:

当R>3時,有BY/BX<1。在實際應用中經常是R>10,即帶標誌符的處理機所佔用的存儲空間通常要小。例如:在IBM370系列機中執行A=A+B運算,若A、B都是十進位數,只需要一條指令,共6個位元組,在IBM370/145機上的執行時間是13微秒。數據字長加長數據指令指令字長縮短採用標誌符的指令字長標誌符長度

不采用標志符的指令和數據字長採用標誌符的數據長度若A與B中有一個是定點二進位數,由於要進行數據類型的一致性檢查和轉換,在PL/I語言中的編譯結果為13條指令,共64個位元組,在IBM370/145機上的執行時間增加到408微秒。

两者相比,存儲空間節省5倍,運算速度快30多倍。採用標誌符數據表示方法的主要優點:

(1) 簡化了指令系統。

(2) 由硬件自动实现一致性检查和

数据类型的转换。

(3) 簡化程式設計,縮小了人與機器之間

的语义差距。

(4) 简化编译器,使高级语言与机器语言

之間的語義差距大大縮短。

(5) 支持数据库系统,一个软件不加修改

就可适用于多种数据类型。

(6) 方便軟體調試,在每個數據中都有

陷井位。採用標誌符數據表示方法的主要缺點:

(1) 數據和指令的長度可能不一致。

(2) 指令的执行速度降低。程序的设计时间、

编译时间和调试时间缩短。

(3) 硬體複雜度增加。2、数据描述符表示法數據描述符與標誌符的區別:

標誌符只作用於一個數據,而數據描述符要作用於一組數據。Burroughs公司生產的B-6700機中採用的數據描述符表示方法: 最高三位為101時表示數據描述符

最高三位為000時表示數據例如:用數據描述符

表示方法表示一個

3×4矩阵A數據描述符101地址標誌位長度數據000數值101標誌3101標誌4101標誌4101標誌4000a11000a12000a13000a14……000a21000a22000a23000a24000a31000a32000a33000a34……………………OPCXY2.2尋址技術尋找運算元及其他資訊的地址的技術稱為尋址技術內容:編址方式、尋址方式和定位方式對象:寄存器、主記憶體、堆疊

和輸入輸出設備方法:分析各種尋址技術的優缺點,

如何選擇和確定尋址技術 2.2.1编址方式 2.2.2寻址方式 2.2.3定位方式重點是尋址方式的選擇方法2.2.1編址方式編址方式是指對各種存儲設備進行編碼的方法。主要內容:編址單位、零地址空間個數、並行記憶體的編址技術、輸入輸出設備的編址技術1、編址單位常用的編址單位:字編址、位元組編址、位編址、塊編址等編址單位與訪問字長

一般:位元組編址,字訪問

部分机器:位编址,字访问

辅助存储器:块编址位元組編址字訪問的優缺點

有利於資訊處理

地址信息浪费、存储器空间浪费

读写逻辑稍复杂

0位元組位置引起的問題2、零地址空间个数三個零地址空間:通用寄存器、主記憶體和輸入輸出設備均獨立編址兩個零地址空間:主記憶體與輸入輸出設備統一編址一個零地址空間:所有存儲設備統一編址,最低端是通用寄存器,最高端是輸入輸出設備,中間為主記憶體隱含編址方式,實際上沒有零地址空間:堆疊、Cache等3、輸入輸出設備的編址一臺設備一個地址一臺設備兩個地址:數據寄存器、狀態或控制寄存器多個需要編址的寄存器共用同一個地址的方法:依靠地址內部來區分,適用於被編址的介面寄存器的長度比較短。“下跟法”隱含編址方式,必須按順序讀寫寄存器。一臺設備多個地址。對編程增加困難4、並行記憶體的編址技術高位交叉編址

主要目的是用來擴大記憶體容量。低位交叉编址

主要目的是提高存储器速度。2.2.2尋址方式尋址方式:尋找運算元及數據存放單元的方法。主要內容:設計思想和設計方法1、尋址方式的設計思想立即數尋址方式

用於數據比較短、源運算元面向寄存器的寻址方式

OPC R

OPC R, R

OPC R, R, R

OPC R, M面向主記憶體的尋址方式:

OPC M

OPC M, M

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

OPC

OPC M2、间接寻址方式与变址寻址方式的比较目的相同:

都是為了解決運算元地址的修改問題 都能做到不改變程式而修改運算元地址 原則上,一種處理機中只需設置間址尋址方式與變址尋址方式中的任何一種即可,有些處理機兩種尋址方式都設置如何選取間址尋址方式與變址尋址方式?

優缺點怎樣?例2.7:一個由N個元素組成的數組,已經存放在起始地址為AS的主存連續單元中,現要把它搬到起始地址為AD的主存連續單元中。不必考慮可能出現的存儲單元的重疊問題。為了編程簡單,採用一般的兩地址指令編寫程式。解:用間接尋址方式編寫程式如下:

start: move asr, asi ;保存源數組的起始地址

move adr, adi ;保存目標數組起始地址

move num, cnt ;保存數據的個數

loop: move @asi, @adi ;用間址尋址方式傳送數據

inc asi ;源數組的地址增量

inc adi ;目標數組的地址增量

dec cnt ;個數減1

bgt loop ;測試n個數據是否傳送完

halt ;停機

asr: as ;源數組的起始地址

adr: ad ;目標數組的起始地址

num: n ;需要傳送的數據個數

asi: 0 ;當前正在傳送的源數組地址

adi: 0 ;當前正在傳送的源數組地址

cnt: 0 ;剩餘數據的個數用變址尋址方式編寫程式如下:

start: move as, x ;源數組起址送變址寄存器

move num, cnt ;保存數據個數,保證再入性

loop: move (x), ad-as(x) ;ad-as位地址偏移量,

;在彙編時計算

inc x ;增量變址寄存器

dec cnt ;個數減1

bgt loop ;測試n個數據是否傳送完成

halt ;停機

num: n ;需要傳送的數據個數

cnt: 0 ;剩餘數據的個數主要優缺點比較:

採用變址尋址方式編寫的程式簡單、易讀。

对于程序员,两种寻址方式的主要差别是:

间址寻址方式:間接地址在主記憶體中,

沒有偏移量

變址尋址方式:基地址在變址寄存器中,

有偏移量

实现的难易程度:間址尋址方式容易

指令的執行速度:間址尋址方式慢

对数组运算的支持:变址寻址方式比较好自動變址:

在訪問間接地址過程中,地址自動增減變址與間址混合時,兩種方式:

前變址尋址方式:EA=((X)+A)

後變址尋址方式:EA=(X)+(A)3、寄存器尋址主要優點:指令字長短、指令執行速度快、支持向量和矩陣運算主要缺點:不利於優化編譯、現場切換困難、硬體複雜4、堆疊尋址方式主要優點:支持高級語言,有利與編譯程序;節省存儲空間 支持程式的嵌套和遞歸調用,

支持中斷處理主要缺点:運算速度比較低,棧頂部分設計成一個高速的寄存器堆2.2.3定位方式程式的主存物理地址在什麼時間確定?

採用什麼方式來實現?程序需要定位的主要原因:程式的獨立性;程式的模組化設計;數據結構在程式運行過程中,其大小往往是變化的;有些程式本身很大,大於分配給它的主存物理空間直接定位方式:在程式裝入主記憶體之前,程式中的指令和數據的主存物理就已經確定了的稱為直接定位方式。靜態定位:在程式裝入主記憶體的過程中隨即進行地址變換,確定指令和數據的主存物理地址的稱為靜態定位方式。動態定位:在程式執行過程中,當訪問到相應的指令或數據時才進行地址變換,確定指令和數據的主存物理地址的稱為動態定位方式。2.3指令格式的優化設計主要目標:

節省程式的存儲空間

指令格式尽量规整,便于译码研究內容:

操作碼的優化表示;地址碼的優化表示 2.3.1指令的组成 2.3.2操作碼的優化設計 2.3.3地址碼的優化設計 2.3.4指令格式設計舉例2.3.1指令的組成一般的指令主要由兩部分組成:操作碼和地址碼操作碼主要包括兩部分內容:

操作種類:加、減、乘、除、數據傳送、

移位、轉移、輸入輸出

操作数描述:

数据的类型:定點數、浮點數、複數、

字元、字串、邏輯數、向量

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

数据字长:字、半字、雙字、位元組地址碼通常包括三部分內容:

地址:

直接地址、间接地址、立即数、

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

地址的附加資訊:

偏移量、块长度、跳距

尋址方式:

直接寻址、间接寻址、立即数寻址、

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

固定长度,Huffman編碼、擴展編碼改進操作碼編碼方式能夠節省程式存儲空間,例如:Burroughs公司的B-1700機操作碼編碼方式整個操作系統所用指令的操作碼總位數改進的百分比8位定長編碼4-6-10擴展編碼Huffman編碼301,248184,966172,346039%43%2、Huffman編碼法1992年由Huffman首先提出操作碼的最短平均長度可通過下式計算:

其中:Pi表示第i種操作碼在程式中出現的概率固定長操作碼相對於

Huffman操作碼的

資訊冗餘量為:例2.6:假設一臺模型電腦共有7種不同的操作碼,如果採用固定長操作碼需要3位。已知各種操作碼在程式中出現的概率如下表,計算採用Huffman編碼法的操作碼平均長度,並計算固定長操作碼和Huffman操作碼的資訊冗餘量。

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

=0.45×1+0.30×2+0.15×3+0.05×4

+0.03×5+0.01×6+0.01×6=1.97(位)採用最優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.250.100.050.02010101010101指令序號概率Huffman編碼法操作碼長度I10.4501位I20.30102位I30.151103位I40.0511104位I50.03111105位I60.011111106位I70.0111111116位採用3位固定長操作碼的資訊冗餘量為:Huffman編碼法的資訊冗餘量僅為:與3位定長操作碼的冗餘量35%相比要小得多3、擴展編碼法Huffman操作碼的主要缺點:

操作碼長度很不規整,硬體解碼困難

與地址碼共同組成固定長的指令比較困難扩展编码法:由固定長操作碼與Huffman編碼法相結合形成

例如:例2.7改為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.7改為2-4等長擴展編碼法,其操作碼最短平均長度為:

H = (0.45

0.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.3.4指令格式設計舉例指令的長度:有固定長度和可變長度兩種操作碼長度:有固定長度和可變長度兩種例如:

IBM370系列機,操作碼長度固定:8位指令長度有16位、32位和48位等多種

地址個數以兩地址為主

16个通用寄存器可兼做变址寄存器和基址寄存器使用OPCLB1D1B2D288412412SS型OPCR184RR型OPCR1X2B28444RX型D212OPCRnRmB8444RS型D12OPCI2B1884SI型D1122.4指令系統的功能設計完整性、規整性、高效率和相容性2.3.1指令的組成五類:數據傳送,運算,程式控制,輸入輸出,處理機控制和調試1、數據傳送類指令由如下三個主要因素決定:

數據存儲設備的種類

数据单位:字、字节、位、数据块等

采用的寻址方式指令種類(以字為傳送單位,不考慮尋址方式等):

通用寄存器

通用寄存器

通用寄存器

主記憶體

通用寄存器

堆疊

主記憶體

通用寄存器

主記憶體

主記憶體

主記憶體

堆疊

堆疊

通用寄存器

堆疊

主記憶體2、運算類指令考慮四個因數的組合:

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

(2)數據表示:定點、浮點、邏輯、十進位、字串、定點向量等

(3)數據長度:字、雙字、半字、位元組、位、數據塊等

(4)數據存儲設備:通用寄存器、主記憶體、堆疊等以加法指令為例,一般應設置如下幾種:

寄存器-寄存器型的定点单字长加法指令

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

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

寄存器-寄存器型的字节加法指令

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

寄存器-寄存器型的浮点双字长加法指令

寄存器-寄存器型的单字长逻辑加法指令

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

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

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

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

循环移位(R)

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

組合起來共有:3×2×2=12種,因邏輯左移與算術左移相同,因此移位指令應該有10種,分別是:

SLAS 單字長算術左移

SRAS 單字長算術右移

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

或單字長算術左移

SLRS 單字長迴圈左移

SRRS 單字長迴圈右移

SLAD 雙字長算術左移

SRAD 雙字長算術右移

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

或雙字長算術左移

SLRD 雙字長迴圈左移

SRRD 雙字長迴圈右移位操作指令:置位、清位、位測試、找位等字串指令:比較、查找、匹配、轉換等3、程式控制指令主要包括三類:轉移指令、調用和返回指令、

迴圈控制指令

转移条件有:零(Z)、正負(N)、進位(C)、

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

BEQ 等於零轉移

BNEQ 不等於零轉移

BLS 小於轉移

BGT 大於轉移

BLEQ 小於等於轉移,或不大於轉移

BGEQ 大於等於轉移,或不小於轉移

BLSU 不帶符號小於轉移

BGTU 不帶符號大於轉移

BLEQU 不帶符號小於等於轉移,

或不帶符號不大於轉移

BGEQU 不帶符號大於等於轉移,

或不帶符號不小於轉移

BCC 沒有進位轉移

BCS 有進位轉移

BVC 沒有溢出轉移

BVS 有溢出轉移程式調用和返回指令:

CALL 轉入副程式

RETURN 從副程式返回,

本身可以帶有條件

中断控制指令

开中断、关中断、改变屏蔽、

中斷返回、自陷等4、输入输出指令主要有:

啟動、停止、測試、控制設備,數據輸入、輸出操作等採用單一的直接尋址方式,在多用户或多任务环境下,输入输出指令属于特权指令也可以不設置輸入輸出指令,輸入輸出設備與主記憶體共用同一個零地址空間5、處理機控制和調試指令處理機狀態切換指令

處理機至少有兩個或兩個以上狀態硬體和軟體的調試指令

硬體調試指令:

钥匙位置、开关状态的读取寄存器

和主存单元的显示等

軟體調試指令:

中斷點的設置、跟蹤,自陷井指令等2.4.2指令系統性能完整性是指應該具備的基本指令種類,通用電腦必須有5類基本指令規整性包括對稱性和均勻性

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

均勻性:不同的數據類型、字長、存儲設備、操作種類要設置相同的指令高效率:指令的執行速度要快;指令的使用頻度要高;各類指令之間要有一定的比例相容性:在同一系列機內指令系統不變(可以適當增加)2.4.3指令系統的優化設計指令系統的優化設計有兩個截然相反的方向:

1.复杂指令系统计算机CISC

(ComplexInstructionSetComputer)

增强指令功能,设置功能复杂的指令

面向目标代码、高级语言和操作系统

用一條指令代替一串指令

2.精简指令系统计算机RISC

(ReducedInstructionSetComputer)

只保留功能简单的指令

功能较复杂的指令用子程序来实现

存儲系統3.1.1存儲系統的定義在一臺電腦中,通常有多種記憶體種類:主記憶體、Cache、通用寄存器、先行緩衝記憶體、磁片記憶體、磁帶記憶體、光碟記憶體等

材料工藝:ECL、TTL、MOS、磁表面、鐳射,SRAM,DRAM訪問方式:直接解碼、先進先出、隨機訪問、相聯訪問、塊傳送、檔組1、存儲系統(存儲體系、存儲層次)的定義兩個或兩個以上速度、容量和價格各不相同的記憶體用硬體、軟體、或軟體與硬體相結合的方法連接起來成為一個存儲系統。這個系統對應用程式員透明,並且,從應用程式員看,它是一個記憶體,這個記憶體的速度接近速度最快的那個記憶體,存儲容量與容量最大的那個記憶體相等,單位容量的價格接近最便宜的那個記憶體。2.單位容量的平均價格C整個存儲系統的平均單位容量價格可以這樣來計算:

C=(C1*S1+C2*S2)/(S1+S2)因此,整個存儲系統的單位容量價格C接近於比較便宜的M2記憶體的單位容量價格C2。但是S2與S1不能相差太大。否則,存儲系統要達到比較高的性能,調度起來很困難。2.單位容量的平均價格C整個存儲系統的平均單位容量價格可以這樣來計算:

C=(C1*S1+C2*S2)/(S1+S2)

因此,整個存儲系統的單位容量價格C接近於比較便宜的M2記憶體的單位容量價格C2。但是S2與S1不能相差太大。否則,存儲系統要達到比較高的性能,調度起來很困難。3.訪問週期T

要使存儲系統的速度與相對比較快的那個記憶體的速度接近,有2條途徑:一條是提高命中率H。另一條是使構成存儲系統的兩個記憶體的速度之比不要太大。

3.1.3頻帶平衡

使電腦系統中各級記憶體的頻帶達到平衡,使系統結構設計者的一項重要工作。一般來說,有3條途徑可以解決記憶體的頻帶平衡問題。1.多個記憶體並行工作,並且用並行訪問和交叉訪問等方法提高記憶體的訪問速度。2.設置各種緩衝記憶體。3.採用儲存系統,特別是Cache存儲系統。

3.1.4並行記憶體

1.並行訪問記憶體在具體實現時,把地址碼分成兩個部分,其中一部分仍作為記憶體的地址去訪問記憶體,而另一部分則去控制一個多路選擇器,從同時讀出的n個數據中選擇一個數據輸出。並行訪問記憶體的優點是非常簡單、容易。主要缺點是訪問的衝突大,主要衝突來自如下幾個方面:(1)取指令衝突。(2)讀運算元衝突。(3)寫數據衝突。(4)讀寫衝突。2.交叉訪問記憶體交叉訪問記憶體通常有兩種工作方式,一種是地址碼高位交叉,另一種是地址碼低位交叉。高位交叉訪問記憶體:地址碼的低位部分是各個存儲體的體內地址,高位部分用來區分存儲體的體號。低位交叉訪問記憶體:地址碼的低位部分是組成主記憶體的各個存儲體的體號,高位部分是各個存儲體的體內地址3.2虛擬記憶體

1961年英國曼徹斯特大學Kilbrn等人提出70年代廣泛地應用於大中型電腦系統中目前許多微型機也開始使用虛擬記憶體3.2.1虛擬記憶體工作原理3.2.2地址的映象和變換方法3.3.3加快內部地址變換速度的方法3.3.4頁面替換演算法及其實現方法3.2.1虛擬記憶體工作原理

頁式虛擬記憶體是虛擬記憶體中用得比較廣泛的一種,另外的段式虛擬記憶體河段頁式虛擬記憶體主要是因為地址變換方法不同產生的。一個用戶程式要訪問虛擬記憶體時,必須給出多用戶虛擬地址Av。在操作系統和有關硬體的共同管理下,首先進行內部地址變化。如果變化成功,得到主存實頁號批,,而多用戶虛擬地址中的頁內偏移D可以直接作為主存實地址中的頁內偏移d,這樣,只要把主存實頁號p與它的頁內偏移d直接拼接起來就得到主存實地址A。於是,就可以用這個主存實地址A去訪問主記憶體,得到所需要的數據。

2.頁式存儲管理方式

頁式存儲管理是將程式空間和主存空間都等分成相同大小的頁面,程式調入、調出主存以頁面為單位。頁式存儲管理虛、實地址的變化過程是:根據某道程式給出的訪存虛地址,用程式號U到頁表基址寄存器中找到相應的頁表基址寄存器,從中取出頁表基址;把頁表基址與虛地址中的虛頁號P相加後得到該程式的頁表中相應行的物理地址;讀出這個物理地址制定的相應行中“裝入位”字段的內容;若裝入位為“0”,則發生頁面失效,需要調入該頁;若裝入位為“1”,則讀出該行中“實頁號”字段的內容p,即要訪問的存儲字所在虛頁在主存中的起始地址,將p與虛地址中的頁內偏移D相加即為主存實地址。

3.段頁式存儲管理方式段頁式存儲管理是將程式按邏輯上相對獨立分成段,再把各段和主存空間都等分成相同大小的頁面,由多個段組成的一道程式通過一個段表和相應的一組頁表在主存空間定位。在段頁式虛擬記憶體中,程式完成一次訪存操作,需要查2次表,一次查段表,一次查頁表。3.2.3加快內部地址變換的方法1.目錄表:壓縮頁表的存儲容量,用一個容量比較小的高速記憶體來存放頁表,從而加快頁面的查表速度。2.快慢表3.散列函數

3.2.4頁面替換演算法及其實現當發生實頁衝突時,就需要使用某一種替換演算法來指定主存中的哪一個虛頁作為被替換頁調出主存,使調入的虛頁佔用這個實頁的位置。1.隨機替換演算法:由硬體或軟體隨機產生被替換的虛頁號。

2.先進先出替換演算法3.近期最少使用替換演算法4.最優替換演算法:

指定未來的近期不用或很久才用得虛頁作為被替換頁。3.3高速緩衝記憶體

3.3.1基本工作原理3.3.2地址映象與變換方法3.3.3Cache替換演算法及其實現3.3.4Cache的一致性問題3.3.2地址映像與變換方法1.全相聯地址映像及地址變換全相聯地址映像把主存空間和Cache空間都按大小相等的塊劃分,而主存的任意一塊可以裝入Cache中的任意一個塊位置上。2.直接地址映像及地址變換直接地址映像把主存空間按Cache的大小劃分為若干個區,主存各個區中的區內塊號相同的那些主存塊可以裝入Cache中同一塊號的那個塊位置上。3.組相聯地址映像及地址變換組相聯地址映像把主存空間按Cache大小分區,主存中的各區和Cache再按同樣大小劃分成數量相同的組,組內按同樣大小再劃分成數量相同的塊,主存的塊到Cache的組之間採用直接映像,2個對應組的塊之間採用全相聯映像。3.3.3Cache替換演算法及其實現

介紹四種Cache替換演算法。1.輪換法:分為每塊一個計數器和每組一個計數器。2.LFU演算法3.比較對法4.堆疊法3.3.4Cache的性能分析1.Cache系統的加速比假設Cache的訪問週期為TC,主記憶體的訪問週期為Tm,Cache系統的等效訪問週期為T,Cache的命中率為H。則,Cache系統的加速比SP可以定義為:

加速比越高,說明Cache系統的等效訪問速度與Cache的速度越接近,也就越好。2.Cache的一致性問題物理Cache中的塊位置上存放的塊是主存相應塊的副本,Cache塊應與相應的主存塊的內容保持一致。但是,當CPU對Cache塊執行寫操作後,Cache塊與相應主存塊的內容就會不一致,這就是Cache的一致性問題。解決Cache一致性的問題有2個方法:1)寫回法:CPU在執行寫操作時,被寫數據只寫入Cache塊中,不寫入主存塊中,僅當Cache塊被替換時,才更新主存塊。2)寫直達法:CPU在執行寫操作時,必須把數據同時寫入Cache塊和主存塊中。3.4三級存儲系統用Cache、主存、輔存這三個物理記憶體組成一個三級存儲系統的組織方式有以下2種方式:1.兩個存儲系統的組織方式把Cache、主存和輔存組織成“Cache-主存”和“主存-輔存”兩個獨立的存儲系統,這個三級存儲系統也稱為物理地址Cache存儲系統。2.一個存儲系統的組織方式把Cache、主存和輔存組織成“Cache-主存-輔存”三級存儲系統,這種三級存儲系統稱為虛擬地址Cache存儲系統。重點、難點提示和教學手段重點:

段頁式和頁式虛擬記憶體匠原理;頁式虛擬記憶體的地址映象;LRU、FIFO、OPT替換演算法;用LRU替換演算法對頁地址流的堆疊處理模擬及性能分析;Cache記憶體的性能分析。難點:頁式和段式虛擬記憶體中,虛、實地址的計算;各種頁面替換演算法和命中率的計算;Cache組相聯映象和快替換演算法的模擬。

輸入輸出系統4.1輸入輸出原理

4.1.1輸入輸出系統的特點輸入輸出系統涉及到機、光、電、磁、聲、自動控制等多種學科。用戶無需瞭解輸入輸出系統和輸入輸出設備的具體細節就能使用輸入輸出設備。處理機的外部世界包括:本地和遠程用戶、系統操作員、操作控制臺、輸入輸出設備、輔助記憶體、其他處理機、各種通信設備和虛擬現實系統等。

輸入輸出系統的特點主要是非同步性、即時性和設備無關性。1.非同步性外設相對於處理機通常是非同步工作的,外設通常不使用統一的中央時鐘,各個外設按照自己的時鐘工作,但在某些時刻接受處理機的控制。當一個處理機管理多臺外設時,在處理機與外設的任意兩次I/O操作時刻之間,處理機應該能運行它自己的程式,或者管理其他外設,從而保證處理機與外設之間、外設與外設之間能夠並行工作。2.即時性處理機必須按不同外設要求的傳輸方式和傳輸速率為外設提供即時的I/O操作服務,否則就可能丟失數據。3.設備無關性處理機無需瞭解各種外設特定的工作細節,只需通過少量的標準介面就可以連接品種繁多的外設和對各種外設進行管理。4.1.2輸入輸出系統的組織方式針對非同步性,採用自治控制的方法針對即時性,採用層次結構的方法針對與設備無關性,採用分類處理方法1、自治控制輸入輸出系統是一個獨立於處理機之外的自治系統處理機與週邊設備之間要有恰當的分工2、層次結構最靠近處理機的是輸入輸出處理機、輸入輸出通道等中間層是標準介面標準介面通過設備控制器與輸入輸出設備相連接設備控制器控制週邊設備工作3、分類組織為面向字元的設備(character-orienteddevice);指工作速度比較低的機電類設備。例如,字元終端、打字機等面向數據塊的設備主要指工作速度比較4.1.3基本輸入輸出方式對於工作速度、工作方式和工作性質不同的週邊設備,基本輸入輸出方式有如下三種。1、程式控制輸入輸出方式程式控制輸入輸出方式:又稱為狀態驅動輸入輸出方式、應答輸入輸出方式、查詢輸入輸出方式、條件驅動輸入輸出方式等程式控制輸入輸出方式的4個特點:(1)何時、對何設備進行輸入或輸出操作受CPU控制(2)CPU要通過指令對設備進行測試才能知道設備的工作狀態。空閒、準備就緒、正在忙碌等(3)數據的輸入和輸出都要經過CPU(4)用於連接低速週邊設備,如終端、印表機等2、中斷輸入輸出方式中斷輸入輸出方式的定義如下:當出現來自系統外部,機器內部,甚至處理機本身的任何例外的,或者雖然是事先安排的,但出現在現行程式的什麼地方是事先不知道的事件時,CPU暫停執行現行程式,轉去處理這些事件,等處理完成後再返回來繼續執行原先的程式。中斷輸入輸出方式的特點:(1)CPU與週邊設備能夠並行工作(2)能夠處理例外事件。(3)數據的輸入和輸出都要經過CPU(4)靈活性好(5)用於連接低速週邊設備3、直接記憶體訪問(DMA)方式

直接記憶體服務方式又稱為DMA(DirectMemoryAccess)方式,這種輸入輸出方式主要用來連接高速週邊設備。例如,磁片記憶體,磁帶記憶體等DMA方式具有如下特點:(1)週邊設備訪問請求直接發往主記憶體(2)不需要CPU進行保存現場和恢復現場(3)DMA控制器中,需設置數據寄存器、設備狀態或控制寄存器、主存地址寄存器、設備地址寄存器和數據交換個數計數器4.2中斷系統4.2.1中斷源的組織引起中斷的各種事件稱為中斷源。1.中斷源的種類常見的中斷源有如下幾種類型:(1)由週邊設備引起的中斷。(2)由處理機產生的中斷。(3)由記憶體產生的中斷。(4)由控制器產生的中斷。(5)由匯流排產生的中斷。(6)即時過程控制產生的中斷。(7)即時鐘的定時中斷。(8)多處理機中,從其他處理機發送來的中斷,控制臺開關中斷等。(9)程式調試過程中,執行完一條指令或程式運行到一個事先設置的中斷點時,通過中斷進入監控程序,以便對被調試程式進行跟蹤或監測。(10)硬體故障中斷。(11)電源故障中斷。2.中斷源的分類組織IBM公司的機器通常把中斷源分為6類:(1)重新啟動中斷。(2)機器檢驗出錯中斷。(3)程式性錯誤引起的中斷。(4)訪問管理程式中斷。(5)外部事件中斷。(6)輸入輸出中斷。3.中斷優先順序中斷優先順序的確定是一個涉及電腦系統全局的問題,主要由下列因素來決定:(1)中斷源的急迫性。(2)設備的工作速度。(3)數據恢復的難易程度。(4)要求處理機提供的服務量。4.2.2中斷系統的軟硬體功能分配1.中斷處理過程一般的中斷處理過程有以下步驟:(1)關CPU中斷,使CUP不再回應其他中斷請求。(2)保存中斷點,保存程式計數器PC中的當前內容,以便中斷返回。(3)撤銷本次已回應的中斷請求。(4)保存硬體現場,指保存處理機程式狀態字PSW和指針SP的內容。(5)識別中斷源,轉到相應的中斷服務程式入口。(6)保存軟體現場,指保存將被中斷服務程式破壞的通用寄存器中的內容。(7)開CPU中斷,使CPU回應更高優先順序的中斷請求,實現中斷處理嵌套。(8)CPU執行中斷服務程式的中斷服務功能。(9)關CPU中斷,使恢復現場不被中斷。(10)恢復軟體現場。(11)恢復硬體現場。(12)開CPU中斷。(13)返回中斷點。2.中斷相應時間影響中斷回應時間的因素主要有四個:(1)最長指令執行時間。(2)在一條指令執行完成後,處理其他更緊急的任務所用時間。(3)從第一次“關CPU中斷”到第一次“開CPU中斷”所經歷的時間。(4)多個中斷源同時請求中斷服務時,通過軟體找到相關中斷源的中斷服務程式入口所經歷的時間。3.識別中斷源的查詢法採用查詢法來識別中斷源的過程分如下三步:第一步:直接採用“線或”的辦法來實現。第二步:轉入公共的中斷服務程式入口。第三步:用軟體逐個測試中斷源的狀態。4.2.3中斷遮罩中斷遮罩的作用是:為了每一個中斷源設置一個遮罩位,若干個中斷遮罩位組成遮罩碼,處理機可以在程式中執行專門指令來設置中斷遮罩碼,從而可以動態方便地改變多個中斷程式被執行完的次序,即動態改變多個中斷請求的中斷處理次序。

4.3通道處理機4.3.1通道的作用和功能

1.通道的作用通道處理能夠分擔CPU的大部分輸入輸出工作,包括管理所有按位元組傳輸方式工作的低速外設、按數據塊傳輸方式工作的高速外設、對DMA介面的初始化、設備故障檢測和處理等。2.輸入輸出通道的功能

通道能夠執行一組通道指令,完成一系列功能,控制週邊設備,能夠記錄週邊設備的狀態,並把狀態資訊送往通道和中央處理機。

4.3.2通道的工作過程

通道的主要過程分為如下三步進行:1.在用戶程式中使用訪管指令進入管理車功能需,由CPU通過管理程式組織一個通道程式,並啟動通道。2.通道處理機執行CPU為它組織的通道程式,完成指定的數據輸入輸出工作。3.通道程式結束後向CPU發中斷請求。4.3.3通道種類

介紹三種類型的通道。(1)位元組多路通道為多臺低速或中速的週邊設備服務位元組多路通道包含有多個子通道,每個子通道連接一個設備控制器(2)選擇通道選擇通道為高速週邊設備服務每個選擇通道只有一個以成組方式工作的子通道,逐個為多臺高速週邊設備服務(3)數組多路通道4.4輸入輸出處理機

4.4.1輸入輸出處理機的作用

輸入輸出處理機通常是一台獨立的處理機,具有一定的運算功能,可以承擔一般的週邊處理機的輸入輸出、控制操作和運算處理等任務。另外,由於輸入輸出處理機具有自己的記憶體,可以進一步提高整個電腦系統的性能。4.4.2輸入輸出處理機的種類

1.根據是否共用主記憶體,可以分為:共用主記憶體的輸入輸出處理機和不共用主記憶體的輸入輸出處理機。

2.根據運算部件和指令控制部件是否為各個輸入輸出處理機共用,可以分為:共用同一個運算部件和指令控制部件的輸入輸出處理機和獨立運算部件和指令控制部件的輸入輸出處理機。

重點、難點提示和教學手段重點:

非專用總路線的總路線控制方式;數據寬度及其分類;中斷為什麼要分類和分級;中斷處理次序的安排和實現;通道流量的分析和設計。難點:

如何按中斷處理優先次序的要求,設置各中斷處理程式中中斷級遮罩位的狀態,正確畫出中斷處理過程的示意圖;通道的流量設計;畫出位元組多路通道回應和處理完各外部設備請求的時空圖。

標量處理機5.1指令的重疊執行方式當有多條指令要在處理機中執行時,可以有多種執行方式:1、順序執行方式執行n條指令所用的時間為:主要優點:控制簡單,節省設備。主要缺點:執行指令的速度慢,功能部件的利用率很低。

如果每段時間都為t,則執行n條指令所用的時間為:T=3nt2.一次重疊執行方式一種最簡單的流水線方式如果兩個過程的時間相等,則執行n條指令的時間為:T=(1+2n)t主要優點:指令的執行時間縮短功能部件的利用率明顯提高主要缺點:需要增加一些硬體控制過程稍複雜3、二次重疊執行方式如果三過程的時間相等,執行n條指令的時間為:T=(2+n)t理想情況下同時有三條指令在執行處理機的結構要作比較大的改變,必須採用先行控制方式5.1.2先行控制方式的原理和結構採用二次重疊執行方式,必須解決兩個問題:(1)有獨立的取指令部件、指令分析部件和指令執行部件獨立的控制器:存儲控制器、指令控制器、運算控制器(2)要解決訪問主記憶體的衝突問題取指令、分析指令、執行指令都可能要訪問記憶體解決訪存衝突的方法:(1)採用低位交叉存取方式:這種方法不能根本解決衝突問題。取指令、讀運算元、寫結果。(2)兩個獨立的記憶體:獨立的指令記憶體和數據記憶體。如果再規定,執行指令所需要的運算元和執行結果只寫到通用寄存器,那麼,取指令、分析指令和執行指令就可以同時進行。(3)採用先行控制技術。

先行控制技術的關鍵是緩衝技術和預處理技術。緩衝技術是在工作速度不固定的兩個功能部件之間設置緩衝棧,用以平滑它們的工作。在採用了緩衝技術和預處理技術之後,運算器能夠專心於數據的運算,從而大幅度提高程式的執行速度。處理機結構

如圖5.3所示,只要在處理機內部設置一定容量的指令緩衝棧,把指令分析器所需要的指令事件取到緩衝棧中,而不必訪問主記憶體。這樣就能夠使取指令、分析指令和執行指令重疊起來執行。2.指令執行時序採用先行控制方式,在理想情況下,指令執行部件應該一直是忙碌的,因此,處理機連續執行n條指令所需的時間為:

T先行=t分析1+∑t執行i≈∑t執行3.先行緩衝棧在採用先行控制方式的處理機中,一般要設置四個先行緩衝棧,如圖5.3所示,作用如下:

(1)先行指令緩衝棧:作為主記憶體與指令分析器之間的一個緩衝部件,用於平滑主記憶體和指令分析器的工作。(2)先行操作棧:指令分析器對已經存放在先行指令緩衝棧裏的指令進行預處理,把處理之後的指令送入該棧。各種運算型指令、移位指令、數據傳送指令等都要先處理成寄存器-寄存器型(RR型)指令,然後送入先行操作棧。(3)先行讀數棧:由一組緩衝寄存器和有關控制邏輯等組成。每一個緩衝寄存器由三部分組成,包括先行地址緩衝寄存器、先行運算元緩衝寄存器和標誌字段。它是主記憶體與運算器之間的一種緩衝記憶體,把後續指令要用到的運算元“先行”取出。(4)後行寫數棧也由一組緩衝寄存器和有關控制邏輯組成。每一個緩衝寄存器必須包括後行地址緩衝寄存器、後行數據緩衝寄存器和標誌字段。其中的後行地址緩衝寄存器和後行數據緩衝寄存器不能合用。4.緩衝深度的設計“緩衝深度”即各個緩衝棧中的緩衝寄存器個數。靜態分析是通過分析兩種極端情況來計算緩衝深度。一種極端情況是:先行指令緩衝棧從完全充滿到全部被取空的過程。另一種極端情況是:先行指令緩衝棧從完全空到全部被充滿的過程。通常在一般程式中,執行時間短的指令所占的比例要遠遠大於執行時間長的指令。所以一般採用第一種情況來計算緩衝深度。5.1.3數據相關所謂相關是指在一段程式的相近指令之間有某種關係,這種關係可能影響指令的重疊執行。分為兩大類:數據相關和控制相關。本節主要介紹數據相關,下一節介紹控制相關。數據相關分為四種:指令相關、主存運算元相關、通用寄存器相關和變址相關。1.指令相關

第k+1條指令本身的內容取決於第k條指令的執行結果,則產生指令相關。解決指令相關的根本辦法是在程式設計中不允許修改指令。2.主存運算元相關如果發生:結果地址(k)=主存運算元地址(k+1)則發生主存運算元相關。解決主存運算元相關一般採用推後處理法。3.通用寄存器數據相關看下麵兩條指令:k:OPR1,A2;R1=(R1)OP(A2)k+1:OPR1,R2;R1=(R1)OP(R2)如果發生:

R1(k)=R1(k+1)則稱為R1數據相關。如果發生:

R1(k)=R2(k+1)則稱為R2數據相關。解決通用寄存器數據相關一般有如下幾種方法:(1)不設置緩衝寄存器或鎖存器。(2)分析指令推後一個週期執行。(3)分析指令僅推後一個節拍。(4)設置專用數據通路。

4.變址相關由於在變址寄存器中存放的變址量在指令分析過程中要用它來計算有效地址,因此與通用寄存器的數據相關累死,也可能發生變質相關,解決方法也類似。

5.1.4控制相關

控制相關是指因為程式的執行方向可能被改變而引起的相關。本節主要介紹因各種轉移指令引起的相關。(1)無條件轉移(2)一般條件轉移(3)複合條件轉移5.2流水線技術5.2.1流水線工作原理流水線方式是把一個重複的過程分解為若干個子過程,每個子過程可以與其他子過程同時進行。由於這種工作方式與工廠中的生產流水線十分相似,因此,把它稱為流水線工作方式。1.從重疊到流水線一次重疊執行方式就是一種簡單的指令流水線。2、流水線的時空圖一條簡單流水線的時空圖:一個浮點加法器流水線的時空圖(由求階差、對階、尾數加和規格化4個流水段組成):NL:規格化MA:尾數加EA:對階ED:求階差3、流水線的主要特點只有連續提供同類任務才能充分發揮流水線的效率:

對於指令流水線:要儘量減少因條件分支造成的“斷流”對於操作部件:主要通過編譯技術,儘量提供連續的同類操作在流水線的每一個流水線段中都要設置一個流水鎖存器

時間開銷:流水線的執行時間加長是流水線中需要增加的主要硬體之一各流水段的時間應儘量相等

流水線處理機的基本時鐘週期等於時間最長的流水段的時間長度流水線需要有“裝入時間”和“排空時間”4.流水線的特點在處理機中採用流水線方式與採用傳統的串行方式相比具有如下特點:(1)在流水線中處理的必須是連續任務,只有連續不斷地提供任務才能充分發揮流水線的效率。(2)把一個任務分解成幾個有聯繫的子任務,每個子任務由一個專門的功能部件來實現。(3)在流水線的每個功能部件的後面都要有一個緩衝寄存器,用於保存本段的執行結果。(4)流水線中各段的時間應儘量相等,否則將引起“堵塞”、“斷流”等。(5)流水線需要有“裝入時間”和“排空時間”。5.2.2流水線的分類1.線性流水線與非線性流水線按照流水線的各個功能段之間是否有回饋信號,可以把流水線分為線性流水線和非線性流水線兩類。2.流水線的級別按照流水線使用的不同級別,可以把流水線分為功能部件級、處理機級和處理機間級等多種類型。3.單功能與多功能流水線一條流水線只能完成一種固定的功能,稱為單功能流水線。流水線的各段可以進行不同的連接,實現不同的功能稱為多功能流水線。4.靜態流水線與動態流水線按照在同一時間內是否能夠連接成多種方式,同時執行多種功能,可以把流水線分為靜態流水線和動態流水線。5.2.3線性流水線的性能分析衡量流水線的主要指標有吞吐率、加速比和效率。1.吞吐率流水線的吞吐量(thoughputrate,TP)是指在單位時間內流水線所完成的任務數量或輸出的結果數量。

TP=n/Tk2.加速比完成一批任務,不使用流水線所用的時間與使用流水線所用的時間之比稱為流水線的加速比(speedupratio)。如果不使用流水線的時間為T0,使用流水線的執行時間為Tk,則流水線的加速比為:

S=T0/Tk3.效率流水線的效率是指流水線的設備利用率。5.2.4非線性流水線的調度技術1.非線性流水線的表示2.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论