版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
計算機系統(tǒng)結構全套可編輯PPT課件外文參考書ComputerArchitecture:AQuantitativeApproachbyDavidPattersonandJohnHennessy,4thedition,MorganKaufmann,2009ComputerOrganizationandDesignbyJohnHennessyandDavidPatterson,4thedition,MorganKaufmann,2007JohnHennessy此書作者MIPS系統(tǒng)的奠基人斯坦福大學校長IEEE,ACMFellow美國國家科學院院士,美國國家工程院院士硬件專業(yè)的課程順序數(shù)字邏輯->組成原理->系統(tǒng)結構系統(tǒng)結構屬于專業(yè)課,著重講述并行計算機系統(tǒng)的基本概念、結構、分析和設計方法課程目錄第1章計算機系統(tǒng)結構導論基本概念并行性的發(fā)展分類性能評價第2章指令系統(tǒng)數(shù)據表示指令系統(tǒng)的優(yōu)化設計計算機指令系統(tǒng)的發(fā)展方向第3章流水線技術與向量處理技術流水線基本原理流水線性能分析流水線中的相關及處理先進的流水線調度技術指令級并行技術向量處理技術課程目錄第4章存儲系統(tǒng)存儲系統(tǒng)及性能并行主存系統(tǒng)虛擬存儲器高速緩沖存儲器第5章并行處理機并行處理機的結構與特點并行處理機的互聯(lián)網絡幾種典型的并行處理機第1章計算機系統(tǒng)結構導論主要介紹:計算機系統(tǒng)結構的基本概念和多級層次結構分析計算機系統(tǒng)結構,計算機組成與計算機實現(xiàn)的含義、研究內容及其相互關系討論計算機系統(tǒng)并行性發(fā)展的技術途徑與分類研究系統(tǒng)結構一般的性能評價標準
1.1.1計算機系統(tǒng)的層次結構計算機系統(tǒng)(computersystem)=硬件(hardware)+軟件(software)按照功能劃分成多級層次結構M0-M6M0-M1屬于計算機組織與結構M3-M5屬于系統(tǒng)軟件M6是應用軟件分級有利于正確理解計算機系統(tǒng)的工作;明確軟件硬件固件的地位和作用;有利于理解各種語言的實質有利于設計新的計算機系統(tǒng)語言實現(xiàn)的兩種基本技術翻譯(translation)解釋(interpretation)1.1.2計算機系統(tǒng)的結構、組成和實現(xiàn)計算機系統(tǒng)結構(computerarchitecture)也稱為計算機體系結Amdahl--1964年在介紹IBM360系統(tǒng)時提出計算機系統(tǒng)結構的定義:計算機體系結構時程序設計者所看到的計算機的屬性,即概念性結構與功能特性。不同層次的程序設計者所看到的計算機屬性顯然不同,一個計算機系統(tǒng)中,低層機器概念性結構和功能特性對高層機器的程序設計者是透明的。研究內容包括:數(shù)據表示:數(shù)據類型和格式尋址規(guī)則:尋址方式,表示,地址計算寄存器定義:各類寄存器指令系統(tǒng):指令的操作類型個格式存儲系統(tǒng):編址單位、編址方式、存儲容量,編址空間中斷系統(tǒng):中斷類型,分級,處理程序的功能,入口地址機器工作狀態(tài):定義和切換I/O系統(tǒng):I/O設備的連接方式、主機與I/O設備之間的數(shù)據傳送方式和格式、傳送的數(shù)據量以及I/O操作的結束與出錯標志等信息保護。包括信息保護方式和硬件對信息保護的支持計算機組成計算機組成(computerorganization)是計算機系統(tǒng)結構的邏輯實現(xiàn),包括機器內部的數(shù)據流和控制流的組成以及邏輯設計等。計算機組成設計要確定的內容數(shù)據通路的寬度。指在數(shù)據總線上能一次并行傳送的信息位數(shù)。專用部件的設置。包括設置哪些專用部件,如乘除法專用部件、浮點運算部件、字符處理、地址運算部件,以及每種專用部件的個數(shù)。這些都取決于機器所需達到的速度,專用部件的使用頻度及允許的價格等因素。各種操作對部件的共享程度。若部件共享程度高,則價格便宜,但會由于共享部件的分時使用而降低操作的速度;若設置多個功能部件降低共享程度,通過增加并行度以提高速度,系統(tǒng)的價格會隨之升高。功能部件的并行度。如功能部件的控制和處理方式是采用順序串行方式,還是采用重疊、流水、分布處理方式。控制機構的組成方式。如控制機構是采用硬聯(lián)控制還是微程序控制,是采用單機處理還是多機處理或功能分布處理。緩沖和排隊技術。包括在部件之間如何設置及設置多大容量的緩沖器來彌補它們的速度差異;在安排等待處理事件的順序時,采用隨機、先進先出、先進后出、優(yōu)先級、循環(huán)隊等方式中的哪一種。預估、預判技術。如采用何種原則來預測未來行為,以優(yōu)化性能和優(yōu)化處理??煽啃约夹g。如采用怎樣的冗余技術和容錯技術來提高可靠性。計算機實現(xiàn)計算機實現(xiàn)(computerimplementation)是計算機組成的物理實現(xiàn),包括處理機、主存等部件的物理結構,器件的集成度和速度,器件、模塊、插件、底板的劃分與連接,專用器件的設計,微組裝技術,信號傳輸,電源、冷卻及整機裝配技術等。它著眼于器件技術和微組裝技術,其中,器件技術在實現(xiàn)技術中起著主導作用。計算機系統(tǒng)結構、組成和實現(xiàn)三者的關系舉例機器指令集的確定屬于系統(tǒng)結構指令的實現(xiàn),如取指令、取操作數(shù)、運算、送結果等具體操作和排序方式屬于計算機組織乘法器,加法器的物理實現(xiàn),如器件的選定,所使用的封裝技術,屬于計算機實現(xiàn)計算機等級分為巨型,大型,中型,小型,微型等若干級計算機工業(yè)在處理性能和價格的關系上可以有兩種途徑:一種是維持價格不變,充分利用器件技術等的進展不斷提高機器的性能,即沿圖1.3中的水平實線發(fā)展;另一種是在性能基本不變的情況下,利用器件技術等的進展不斷降低機器的價格,即沿圖1.3中虛線往下發(fā)展。系列機所謂系列機的概念,是在軟、硬件界面上設計好一種系統(tǒng)結構,然后軟件設計者按此系統(tǒng)結構設計系統(tǒng)軟件;硬件設計者根據機器速度、性能、價格的不同,選擇不同的期間,采用不同的硬件技術和組成與實現(xiàn)技術,研制并提供不同檔次的機器。在系列機上必須保證用戶看到一致的機器屬性,例如,IBMAS400系列,數(shù)據總線有16、32、64位的區(qū)別,但數(shù)據表示方式一致。系列機之間必須保持軟件兼容(softwarecompatibility)。系列機軟件兼容是指同一個軟件(目標程序)可以不加修改地運行于系統(tǒng)結構相同的各檔次機器中,模擬與仿真要求在A機器上用虛擬機的概念實現(xiàn)B機器的指令系統(tǒng),如圖1.4所示,即B機器的每一條機器指令由A機器的一段機器語言程序去解釋執(zhí)行,從而可使B機器的程序能在A機器上運行。這種用機器語言程序解釋實現(xiàn)軟件移植的方法稱為模擬(simulation),被模擬的B機器稱為虛擬機(virtualmachine),A機器稱為宿主機(hostmachine)。這種用微程序直接解釋另一種機器指令系統(tǒng)實現(xiàn)軟件移植的方法稱為仿真(emulation)。進行仿真工作的A機器稱為宿主機,被仿真的B機器稱為目標機(targetmachine),為仿真所編寫的解釋微程序稱為仿真微程序。仿真與模擬的主要區(qū)別在于解釋所用的語言:仿真用微程序解釋,其解釋程序在微程序存儲器中,而模擬用機器語言解釋,其解釋程序在主存儲器中。計算機系統(tǒng)結構中并行性的發(fā)展研究計算機體系結構的目的是提高計算機系統(tǒng)的性能。開發(fā)計算機系統(tǒng)的并行性,是計算機體系結構的重要研究內容之一。馮·諾依曼型計算機由運算器、控制器、存儲器、輸入設備和輸出設備五個部分組成。隨著計算機應用領域的擴大和計算機技術的發(fā)展,人們已經逐漸認識到早期計算機所采用的馮·諾依曼型結構存在的問題,不斷地對這種結構加以改進并開發(fā)全新的系統(tǒng)結構。并行性概念所謂并行性(parallelism)是指在同一時刻或是同一時間間隔內完成兩種或兩種以上性質相同或不相同的工作。只要時間上相互重疊,就存在并行性。嚴格來講,把兩個或多個事件在同一時刻發(fā)生的并行性叫做同時性(simultaneity);把兩個或多個事件在同一時間間隔內發(fā)生的并行性叫做并發(fā)性(concurrency)。在進行并行處理時,其每次處理的規(guī)模大小可能是不同的,這可用并行性顆粒度(granularity)來表示。顆粒度用于衡量軟件進程所含計算量的大小,最簡單的方法是用程序段中指令的條數(shù)來表示。顆粒度一般可分為細粒度、中粒度和粗粒度三種,若程序段中指令條數(shù)小于500條,稱為細粒度,500~2000條指令之間稱為中粒度,大于2000條稱為粗粒度。并行性的等級按照并行顆粒度不同從低到高可以分為指令內部并行。指令內部的微操作之間的并行。指令級并行(ILP,InstructionLevelParallel)。并行執(zhí)行兩條或多條指令。任務級或過程級并行。并行執(zhí)行兩個或多個過程或任務(程序段)。作業(yè)或程序級并行。在多個作業(yè)或程序間的并行。提高并行性的途徑時間重疊:多個處理過程在時間上相互錯開,輪流重疊的使用同一套硬件設備的各個部分,以加快硬件周轉來提高處理速度。時間重疊原則上不要求重復的硬件設備資源重復:通過重復設置資源,尤其是硬件資源,大幅度提高計算機系統(tǒng)的性能資源共享:是一種軟件方法,它使多個任務按一定時間順序輪流使用同一套資源。資源共享既降低了成本,提高了系統(tǒng)資源利用率,也可以相應地提高整個系統(tǒng)的性能。并行處理的發(fā)展過程可從單處理機系統(tǒng)和多計算機系統(tǒng)兩個方向來實現(xiàn)圖1.6單機系統(tǒng)中的并行性時間重疊流水線處理機pipeline圖1.7指令串行執(zhí)行和流水執(zhí)行多機系統(tǒng)發(fā)展也遵循著時間重疊、資源重復和資源共享的技術途徑表1.1三種類型多處理機比較項
目同構型多處理機異構型多處理機分布處理系統(tǒng)目的提高系統(tǒng)性能(可靠性、速度)提高系統(tǒng)使用效率兼顧效率與性能技術途徑資源重復(機間互連)時間重疊(功能專用化)資源共享(網絡化)組成同類型(同等功能)不同類型(不同功能)不限制分工方式任務分布功能分布硬件、軟件、數(shù)據等各種資源分布工作方式一個作業(yè)由多機協(xié)同并行地完成一個作業(yè)由多機協(xié)同串行地完成一個作業(yè)由一臺處理機完成,必要時才請求它機協(xié)作控制形式常采用浮動控制方式采用專用控制方式分布控制方式耦合度緊密耦合松散耦合松散、緊密耦合對互連網絡的要求快速、靈活、可重構專用快速、靈活、簡單、通用表1.1三種類型多處理機比較1.3計算機系統(tǒng)的分類研究計算機系統(tǒng)的分類方法有助于認識計算機系統(tǒng)的結構和組成的特點,理解系統(tǒng)的工作原理和性能。從不同的角度,可以提出不同的分類方法,這里主要介紹兩種常用的分類方法。Flynn分類法Michae1.J.Flynn于1966年提出按指令流和數(shù)據流的多倍性對計算機系統(tǒng)結構進行分類的方法。指令流(instructionstream)是指機器執(zhí)行的指令序列;數(shù)據流(datastream)是指由指令流調用的數(shù)據序列,包括輸入數(shù)據和中間結果;四種分類
(c)MISD計算機(a)SISD計算機(b)SIMD計算機(d)MIMD計算機馮氏分類法1972年,美籍華人馮澤云提出用最大并行度(degreeofparallelism)對計算機系統(tǒng)結構進行分類。所謂最大并行度Pm,是指計算機系統(tǒng)在單位時間內能夠處理的最大的二進制位數(shù)。最大并行度Pm定量地反映了對數(shù)據處理的并行性。
Pm=n*m
式中,n表示同時處理時一個字中的二進制位數(shù);m表示能同時處理的字數(shù)。按計算機對數(shù)據處理方式,由Pm值可得下列四種計算機系統(tǒng)結構類型。字串位串(WSBS)。其n=1,m=1,這是第一代計算機發(fā)展初期的純串行計算機,如EDVAC。字串位并(WSBP)。其n>l,m=l,這是傳統(tǒng)并行的單處理機,我們日常使用的大多數(shù)機器都屬于這種類型。字并位串(WPBS)。其n=l,m>l(即位片處理),如STARAN、早期的MPP、DAP等,它們都是20世紀70年代研制的并行處理機。字并位并(WPBP),其n>l,m>l(即全并行處理),如Cmmp、ILLIAC-IV以及PEPE等,它們都具有很好的并行性。系統(tǒng)結構發(fā)展的因素現(xiàn)代計算機系統(tǒng)結構的重大變化與改進:高級語言與機器語言的語義距離縮小硬件子系統(tǒng)與操作系統(tǒng)和數(shù)據庫管理系統(tǒng)軟件相適應出現(xiàn)了與LSI,VLSI器件相適應的計算機系統(tǒng)結構系統(tǒng)功能分散化、專業(yè)化高可靠性的容錯計算機專用計算機串行向并行轉變突破指令驅動,出現(xiàn)數(shù)據驅動和需求驅動人工智能計算機1.4計算機性能的評價1.經常性事件優(yōu)先原則是計算機系統(tǒng)結構設計中最重要和最常用的原則。這個原則的基本思想是:對于經常發(fā)生的事件,賦予它優(yōu)先的處理權和資源使用權,加快它的處理速度,以便提高整個系統(tǒng)的性能。在進行計算機設計時,如果需要權衡,就必須側重常見事件,使最常發(fā)生的事件優(yōu)先。此原則也適用于資源分配。著重改進經常性事件性能,能夠明顯提高計算機性能。通常,經常性事件的處理比較簡單,容易使之更快完成。例如,CPU在進行加法運算時,運算結果可能產生溢出,但無溢出為更經常發(fā)生的事件。因此,應針對無溢出情況進行優(yōu)化設計,加快無溢出加法計算速度。雖然發(fā)生溢出時機器速度可能會減慢,但由于溢出事件發(fā)生概率很小,所以總體上機器性能還是提高了。2.Amdahl定律如何確定經常性事件以及如何加快處理這些事件是Amdahl定律需要解決的問題。Amdahl定律指出:系統(tǒng)中某部件由于采用某種更快的執(zhí)行方式后,整個系統(tǒng)性能的提高與這種執(zhí)行方式在系統(tǒng)中使用頻率或占總執(zhí)行時間的比例有關。系統(tǒng)加速比依賴于兩個因素:(1)可改進部分在原系統(tǒng)執(zhí)行時間中所占的比例。例如,一個需運行60s的程序中有20s的運算可以加速,那么該比例就是20/60。(2)可改進部分改進以后的性能提高。例如,系統(tǒng)改進后執(zhí)行程序,其中可改進部分花費的時間為2s。,而改進前該部分需花費的時間為5s,則性能提高為5/2。(1)改進后系統(tǒng)的總執(zhí)行時間Tn
(2)改進前后整個系統(tǒng)的加速比Sn(1-Fe)表示不可改進比例。當Fe
=0,即無改進部分時,Sn=1,所以系統(tǒng)性能提高幅度受改進部分所占比例的限制。當
時,有
由此得到Amdahl定律的一個重要推論:若只針對整個系統(tǒng)的一部分進行優(yōu)化.則系統(tǒng)獲取的性能改善極限值受Fe的約束,系統(tǒng)加速比不大于1/(1-Fe)。例題[例1.1]設在系統(tǒng)整個運行時間中某部件的處理時間占30%,若改進后速度加快到15倍,問整個系統(tǒng)性能將提高多少?解:由題可知Fe=0.3,Se=15,則
[例1.2]若在整個測試程序的執(zhí)行時間中,求浮點數(shù)平方根FPSQR的操作占10%?,F(xiàn)有兩種改進方案:一種是采用FPSQR硬件,使其速度加快到10倍;另一種是使所有浮點數(shù)指令FP速度加快到4倍,并設FP指令占整個程序執(zhí)行時間的40%。請比較兩種方案的優(yōu)劣。解:硬件方案,F(xiàn)e=0.1,Se=10,則FP加速方案,F(xiàn)e=0.4,Se=4,則比較結果可知,F(xiàn)P加速方案更優(yōu)。注意,結論的前提是程序量的40%為FP指令。3.程序訪問的局部性原理所謂程序訪問的局部性原理,是指程序在執(zhí)行過程中所訪問地址的分布有相對簇聚的傾向,這種簇聚表現(xiàn)在指令和數(shù)據兩方面。程序局部性包括時間上的局部性和空間上的局部性:前者是指程序即將用到的信息很可能是目前正在使用的信息;后者是指程序即將用到的信息很可能與目前正在使用的信息在程序空間上是相鄰或相近的。程序訪問的局部性原理是計算機系統(tǒng)結構設計的基礎之一。在很多地方,尤其在處理與存儲相關的問題時,經常運用這一原理。程序訪問的局部性原理為我們提供了設計計算機系統(tǒng)時,解決高性能和低成本之間的矛盾的途徑。1.4.2CPU性能公式為了衡量CPU的性能,可以將程序執(zhí)行的時間進行分解。一個程序在計算機上運行所花費的CPU時間可表示為或者CPU時間=總CPU時鐘周期數(shù)×時鐘周期T若將程序執(zhí)行過程中所處理的指令數(shù)記為IC,可以獲得一個與計算機系統(tǒng)結構有關的參數(shù),即每條指令的平均時鐘周期數(shù)CPI(ClockCyclesPerInstruction):程序執(zhí)行的CPU時間可寫為這個公式通常稱為CPU性能公式,它表明CPU性能與三種系統(tǒng)結構技術相關。時鐘頻率f:反映了計算機實現(xiàn)技術和計算機組織。機器指令的平均時鐘周期數(shù)CPI:反映了計算機系統(tǒng)結構組織和指令集的設計與實現(xiàn)。程序使用的指令條數(shù)IC:反映了計算機指令集的結構和編譯技術。在程序執(zhí)行過程中,要用到不同類型的指令。假設計算機系統(tǒng)有n種指令,ICi表示第i種指令在程序中執(zhí)行的次數(shù),CPIi表示執(zhí)行一條第i種指令所需的平均時鐘周期數(shù),則程序執(zhí)行的CPU時間為則CPI可表示為式中,
表示了第i種指令在程序中所占比例。上面這些公式均稱為CPU性能公式。[例1.3]若浮點數(shù)指令FP占全部指令的30%,其中浮點數(shù)平方根FPSQR指令占全部指令的4%,F(xiàn)P操作的CPI為5,F(xiàn)PSQR操作的CPI為20,其他指令的平均CPI為1.25?,F(xiàn)提出兩種改進方案,一種是把FPSQR操作的CPI減至3,另一種是把所有FP操作的CPI減至3,試比較兩種方案對系統(tǒng)性能的提高程度。解:改進之前,系統(tǒng)的指令平均時鐘周期數(shù)CPI為方案A:如果使FPSQR操作的時鐘周期數(shù)由CPIFPSQR=20降至
,則整個系統(tǒng)的CPI為方案B:如果使所有FP操作的平均時鐘周期數(shù)由CPIFP=5降至
,則整個系統(tǒng)的CPI為從降低整個系統(tǒng)的指令平均時鐘周期數(shù)的程度來看,方案A優(yōu)于方案B。分別計算兩種方案的加速比:從加速比來看.同樣得出方案A優(yōu)于方案B的結論。[例1.4]設機器A和機器B對條件轉移采用的處理方法不同。CPUA采用比較指令和條件轉移指令的處理方法,實現(xiàn)一次條件轉移需執(zhí)行兩條指令,條件轉移指令和比較指令各占執(zhí)行指令總數(shù)的15%。CPUB,采用比較與條件轉移指令合一的處理方法,實現(xiàn)一次條件轉移只需執(zhí)行一條指令。若規(guī)定兩臺機器執(zhí)行條件轉移指令需2個時鐘周期,其他指令只需1個時鐘周期,CPUB的時鐘周期比CPUA慢20%,請比較:(1)CPUA和CPUB哪個工作速度更快?(2)若CPUB的時鐘周期只比CPUA慢10%,哪個CPU工作速度更快?
解:(1)計算機器A的CPIA為CPIA=0.15×2+0.85×1=1.15CPUA時間=ICA×CPIA×TA=1.15TA×ICAICA是CPUA的指令條數(shù)。由于CPUB無比較指令,所以ICB=0.85ICA,使CPUB的轉移指令所占比例為15%÷805%=17.65%,計算機器B的CPIB
為CPIB=0.18×2+0.82×1=1.18又因為CPUB的TB比CPUA的TA慢20%,所以TB=1.2TACPUB時間=ICB×CPIB×TB=0.85ICA×1.18×1.2TA=1.2TA×ICA比較可知,CPUA時間<CPUB時間,故CPUA比CPUB工作速度快。(2)此時有TB=1.1TA,據前結論CPUA時間=1.15TA×ICACPUB時間=0.85ICA×1.18×1.1TA=1.1TA×ICA因此CPUB時間<CPUA時間,故CPUB的工作速度更快些。1.4.1系統(tǒng)結構的性能評價標準衡量計算機性能的唯一固定而且可靠的標準就是機器真正執(zhí)行程序的時間。這里的執(zhí)行時間是計算機在完成一個任務時,包括訪問磁盤、訪問存儲器、I/O操作及系統(tǒng)開銷所花費的全部時間,也稱為計算機的響應時間。CPU時間是指CPU工作的時間,不包括I/O等待時間。它可分為CPU執(zhí)行用戶程序的用戶CPU時間和CPU花費在操作系統(tǒng)上的系統(tǒng)CPU時間。在此討論的CPU性能指的是用戶CPU時間。因此,計算機性能可分為基于響應時間的“系統(tǒng)性能”度量方法和基于用戶CPU時間的“CPU性能”度量方法。下面主耍討論CPU性能。1.MIPS和MFLOPSMIPS(MillionInstructionsPerSecond),即百萬條指令每秒是目前較為流行的描述計算機性能的替代標準之一。對于一個給定的程序,MIPS定義為MIPS是單位時間內執(zhí)行指令的次數(shù)。若用Te表示程序的執(zhí)行時間,則Te的表達式為[例1.5]已知某處理機的CPI=0.5,時鐘頻率為450MHz,試計算該處理機的運算速度。解:由于處理機的時鐘頻率為fc=450MHz,可求得運算速度為即該處理機的運算速度為900MIPS。機器的MIPS越高,說明機器速度越快,故MIPS可從一定程度上反映機器的性能。但是用MIPS評價機器的性能存在以下問題。MIPS依賴于機器的指令集,所以用MIPS來衡量指令集不同的機器的性能優(yōu)劣是很不準確的。
在同一臺機器上,MIPS會因程序不同而發(fā)生變化,有時其差異會很大。MIPS的評價結果可能與采用正確的性能評價方法的評價結果相反。一個典型例子就是具有可選硬件浮點運算部件的機器。因為浮點運算速度低于整數(shù)運算,所以很多機器提供可選的硬件浮點運算部件。結果是用硬件實現(xiàn)浮點運算的時間少,而用軟件實現(xiàn)浮點運算的MIPS高,導致MIPS評價結果與機器實際性能相反。因此MIPS標準只適宜于評價標量機,因為在標量機中執(zhí)行一條指令,一般可得到一個運算結果,而在向量機中,執(zhí)行一條向量指令通??傻玫蕉鄠€運算結果。所以,用MIPS來衡量向量機是不合適的。另一種替代標準是MFLOPS(MillionFloatingPointOperationsPerSecond),即百萬次浮點運算每秒。MFLOPS定義為:
由于MFLOPS衡量機器性能時存在下述缺陷,故也不能作為系統(tǒng)性能評價的標準。(1)MFLOPS只能衡量機器浮點操作的性能,而不能體現(xiàn)機器的整體性能。例如編譯程序,不管機器的性能有多好,它的MFLOPS部不會太高。(2)MFLOPS的衡量是基于浮點操作而非指令來進行的,所以它可以用來比較不同指令集的機器之間的浮點操作性能,但比較的結果并非可靠。由于不同機器的浮點運算集可能不同,例如,機器A有浮點除法指令,而機器B沒有,它們對浮點操作的支持就會不同,完成程序中的浮點除法時,前者的浮點操作次數(shù)比后者少得多,執(zhí)行時間也少于后者,所以難以按MFLOPS評價它們的性能優(yōu)劣。(3)MFLOPS取決于機器和程序兩個方面,不同程序在同一機器上的MFLOPS會不相同。例如,運行由100%浮點加法組成的程序所得到的MFLOPS值將比運行由100%浮點除法組成的程序所得到的MFLOPS值高。因此用單個程序的MFLOPS值不能反映機器的性能。MFLOPS和MIPS之間的量值關系沒有統(tǒng)一標準,一般認為在標量計算機中執(zhí)行一次浮點運算需要2~5條指令,平均約需3條指令,故有1MFLOPS≈3MIPS。[例1.6]用一臺處理機執(zhí)行標準測試程序,程序所含的各類指令數(shù)量和執(zhí)行每類指令所用時鐘周期數(shù)如表1.4所示,處理機的時鐘頻率為50MHz,求有效CPI、MIPS速率和程序的執(zhí)行時間。表1.4標準測試程序中各類指令數(shù)和相應所需的時鐘周期數(shù)指令類型整數(shù)運算數(shù)據傳送浮點運算控制傳送指令數(shù)時鐘周期數(shù)43000134000217000260002解:指令的總數(shù)為
43000+34000+17000+6000=100000條其中各類指令所占的比例分別是:整數(shù)運算為43%,數(shù)據傳送為34%,浮點運算為17%,控制傳送為6%。
(1)有效CPI為
1×0.43+2×0.34+2×0.17+2×0.06=1.57CPI(2)MIPS速率為(3)程序的執(zhí)行時間為2.性能測試機器的性能需要采用基準測試程序來測試評價,衡量計算機性能的標準是程序的執(zhí)行時間?;鶞蕼y試程序是為比較測試機器性能而專門編寫的程序,它考慮了各種操作和各種程序的比例,可以是一組或多組程序。將n個測試程序在機器上運行,記錄它們的執(zhí)行時間,然后可按下述方法對n個執(zhí)行時間進行處理來評價機器性能。常用的基準測試軟件:superPI,linpack(1)平均執(zhí)行時間平均執(zhí)行時間是各測試程序執(zhí)行時間的算術平均值。其中,Ti為第i個測試程序的執(zhí)行時間。(2)加權執(zhí)行時間加權執(zhí)行時間是各測試程序執(zhí)行時間的加權平均值。其中,權因子Wi是第i個測試程序在總共n個測試程序中所占的權重,
。本章小結本章主要討論了計算機系統(tǒng)結構的基本概念。首先,在計算機系統(tǒng)層次結構概念的基礎上,定義了計算機系統(tǒng)結構,并闡述了計算機組成和計算機實現(xiàn)的含義以及它們和計算機系統(tǒng)結構之間的關系。然后進一步探討了計算機系統(tǒng)中對系統(tǒng)結構產生影響的重要特性。計算機系統(tǒng)結構研究的主要內容之一就是通過并行性技術提高計算機系統(tǒng)的性能。本章講述了并行性技術的基本概念,討論了提高計算機系統(tǒng)并行性所采用的時間重疊、資源重復和資源共享三種技術途徑,以及從單機或多機系統(tǒng)沿不同技術途徑發(fā)展而形成的同構型、異構型和分布式處理等不同類型的多處理機系統(tǒng)。在此基礎上介紹了計算機系統(tǒng)結構的Flynn和馮氏兩種分類方法。對計算機系統(tǒng)技術性能進行定量分析是研究和發(fā)展現(xiàn)代計算機的重要手段之一。本章介紹了計算機系統(tǒng)性能的評價標準,討論了對計算機系統(tǒng)進行定量分析的技術和方法。軟件對于系統(tǒng)結構的影響軟件是促進計算機系統(tǒng)結構發(fā)展的最重要因素為了滿足軟件的可移植性的要求有如下三種解決方法系列機方法系列機:一個廠家生產相同的系統(tǒng)結構,但不同組成和型號的機器,做到向后兼容例如:IBM370系列機 AnnouncedSeptember23,1970,IBM370-145模擬和仿真方法模擬:用軟件方法在一臺計算機上實現(xiàn)另一臺計算機的指令系統(tǒng),若在A計算機上實現(xiàn)B計算機的指令系統(tǒng),此時,A稱為宿主機,B稱為虛擬機統(tǒng)一的高級語言方法將CPU和外圍設備之間進行對接的接口設備具有:控制,緩沖,狀態(tài),轉換,整理,程序中斷的功能應用對于系統(tǒng)結構的影響主要是一些科學問題的高性能計算器件對于系統(tǒng)結構的影響五代計算機的典型特征系統(tǒng)結構的生命周期定量分析技術系統(tǒng)設計的定量原理大概率事件優(yōu)先原理:對于大概率事件,賦予它優(yōu)先的處理權和資源使用權,以獲得全局的最優(yōu)結果Amdahl定律:加快某部件執(zhí)行速度所獲得的系統(tǒng)性能加速比,受限于該部件在系統(tǒng)中的重要性
加速比計算機執(zhí)行某個任務的總時間中可被改進部分的時間所占的百分比,記為Fe;提高的倍數(shù)記為Se;改進后的時間Tˊ=T0(1-Fe+Fe/Se)加速比n=T0/Tˊ=1/(1-Fe+Fe/Se)例題1.6假設系統(tǒng)某一個部件的處理速度加快9倍,但該部件的原處理時間僅為整個運行時間的45%,則采用加快措施后能使整個系統(tǒng)的性能提高多少?解:Fe=0.45;Se=9所以n=1/(1-Fe+Fe/Se)=1/(1-0.45+0.45/9)=1/0.6=1.667例題1.7假定要將某一執(zhí)行部件改進后速度提高10倍,改進后被改進部件執(zhí)行時間占系統(tǒng)總運行時間的50%。問改進后,獲得的加速比n?解:假設系統(tǒng)改進前執(zhí)行時間T,改進后為Tˊ,則
n=T/Tˊ=1/(1-Fe+Fe/Se)
Tˊ=(1-Fe+Fe/Se)*T又50%Tˊ=Fe*T/1050%Tˊ=(1-Fe)*TFe=5*(Tˊ/T)
所以n=T/Tˊ=5.5例題1.8上例中的部件在改進前的執(zhí)行時間占改進后的百分比是多少?解:
n=1/(1-Fe+Fe/Se)=1/(1-Fe+Fe/10)=5.5Fe=91%CPU性能公式CPU的運行周期稱為時鐘周期。用時間長度(ns)或頻率(MHz)來表示。一個程序所花費的CPU時間Tcpu如下表示:
Tcpu=Nc*t=Nc/f其中,Nc是CPU時鐘周期,t是時長,f是頻率程序執(zhí)行時間的另一表述指令條數(shù)IN,每條指令平均時鐘周期數(shù)CPI
Tcpu=IN*CPI*t=(IN*CPI)/f上式表示,CPU性能與3個因素有關:時鐘頻率f;每條指令所花的時鐘周期CPI指令條數(shù)IN時鐘周期總數(shù)的另一計算方法其中:Ii表示i指令在程序中執(zhí)行的次數(shù);CPIi表示i指令所需的平均時鐘周期數(shù);n為指令種類數(shù)。例1.9 有兩臺機器A,B,他們對于條件轉移指令的處理采用各不相同的設計方案:①CPUA采用一條比較指令來設置相應的條件碼,由緊隨其后的一條轉移指令對此條件碼進行測試,以確定是否進行轉移,因此實現(xiàn)一次條件轉移需要比較和測試兩條指令;②CPUB采用比較和測試兩種功能合在一條指令的方法,實現(xiàn)條件轉移只需一條指令。 假設在這兩臺機器的指令系統(tǒng)中,執(zhí)行條件轉移指令需要2個時鐘周期,而其他指令只需1個時鐘周期。又假設CPUA中,條件轉移指令占總執(zhí)行指令條數(shù)的20%。由于每條轉移指令都需要一條比較指令,所以比較指令也將占20%。由于CPUB在轉移指令中包含了比較功能,因此它的時鐘周期就比CPUA要慢25%。問CPUA和CPUB哪個工作速度更快?解:設CPUA的時鐘周期長度為tA,CPUB的時鐘周期長度為tB,
CPIA=0.2×2+0.8×1=1.2 TCPUA=INA×1.2×tA, CPUB中由于沒有比較指令,轉移指令由原來占20%上升為20%÷80%=25%,它須要個時鐘周期,而其余的75%指令只需要1個時鐘周期,所以 CPIB=0.25×2+0.75×1=1.25 CPIB中由于沒有比較指令,因此INB=0.8×INA。又因為tB=1.25tA,所以 TCPUB=INB×CPIB×tB
=0.8INA×1.25×1.25tA
=1.25INA×tA
所以可見TCPUA<TCPUB例1.10上例中,如果CPUB的時鐘周期只比CPUA的慢10%,那么哪一個CPU會工作的更快些?解:TCPUA=INA×1.2×tA
因為tB=1.1tA
TCPUB=0.8INA×1.25×1.1tA=1.1INA×tA 所以可見TCPUB<TCPUA程序訪存的局部性原理一個程序用90%的執(zhí)行時間去執(zhí)行僅占10%的程序代碼此原理成為存儲器體系的構造基礎實質是:程序往往重復使用它剛剛使用過的數(shù)據和指令性能評價標準時間指標:完成同樣的工作量,花費的時間最少,則性能最高以SuperPI為例常用的幾種評價指標MIPS—millioninstructionspersecond
每秒百萬條指令數(shù)
MIPS定義為:其中IN是指令總數(shù);TE是執(zhí)行所需時間;t為時鐘周期長度;f是時鐘頻率,是t的倒數(shù) MIPS存在的不足之處MIPS依賴于指令系統(tǒng),比較不同指令系統(tǒng)是不準確的在同一臺機器上,MIPS因程序不同而變化僅適于評估標量計算機MFLOPSmillionfloatingpointoperationpersecond每秒百萬浮點操作MFLOPS基于操作而非指令,可比較兩種不同機器;只能衡量浮點操作,而不能體現(xiàn)整體性能測試程序真實程序。例如:C編譯程序,Tex軟件,CAD工具核心程序。例如:Linpack小測試程序。例如:Quicksort綜合測試程序。例如:Whetstone例1.11用一臺40MHz處理執(zhí)行標準測試程序,它包含的混合指令數(shù)和相應所需的時鐘周期數(shù)如表1.2所示,求有效CPI,MIPS速率和程序執(zhí)行時間T指令類型指令數(shù)時鐘周期數(shù)整數(shù)運算450001數(shù)據傳送320002浮點運算150002控制傳送80002解:利用前述公式MIPS速率=f/(CPI×106)=(40×106)/(1.55×106)=25.8(百萬條指令/秒)程序執(zhí)行時間T=IN/(MIPS×106)=(100000)/(25.8×106)=0.003875(秒)性能比較下表列出兩個程序在A、B、C三臺機器上的執(zhí)行時間(秒)ABCW(1)W(2)W(3)程序11.0010.0020.000.500.9090.999程序21000.00100.0020.000.500.0910.001加權算術平均Am(1)500.5055.0020.00加權算術平均Am(2)91.9118.1920.00加權算術平均Am(3)2.0010.0920.00程序執(zhí)行的衡量標準算術平均值法加權算術平均值
2.調和平均值法如果性能是用速度(MFLOPS)表示,可以采用調和平均值法來比較:
Ri表示第i個程序的速度,Ri=1/Ti;而Ti為第i個程序的執(zhí)行時間幾何平均值基本思想源于性能規(guī)格化
例1.12已知4個程序在A,B,C三臺計算機上的執(zhí)行時間如表假設4個程序中每一個都有100000000條指令要執(zhí)行,計算這3臺計算機中每臺機器上每個程序的MIPS速率用算術平均(Am)和調和平均(Hm)法來比較3臺計算機的相對性能程序執(zhí)行時間/s計算機A計算機B計算機C程序111020程序2100010020程序3500100050程序4100800100解:(1)程序MIPS速率(百萬指令/秒)計算機A計算機B計算機C程序1100105程序20.115程序30.20.12程序410.1251解:(2)平均執(zhí)行時間MIPS速率(百萬指令/秒)計算機A計算機B計算機C算術平均(Am)25.32.813.25調和平均(Hm)0.250.22.1成本與價格構成價格的各個因素可以通過占成本或價格的百分比來表示價格由原料成本,直接成本,毛利和折扣等因素構成性能/成本問題復雜系統(tǒng)結構中并行性的發(fā)展并行性:是指系統(tǒng)具有可以同時進行運算或操作的特性,它包括同時性和并發(fā)性同時性:兩個或兩個以上的事件在同一時刻發(fā)生并發(fā)性:兩個或兩個以上的事件在同一時間間隔發(fā)生并行性的分級從處理數(shù)據的角度字串位串字串位并字并位串高低全并行從執(zhí)行程序的角度指令內部并行指令級并行任務級或過程級并行高低全并行單處理機系統(tǒng),并行性升到某一級別后,通過軟件來實現(xiàn)多處理機系統(tǒng),并行性由硬件實現(xiàn)提高并行性的技術途徑時間重疊資源重復時間重疊+資源重復資源共享單處理機系統(tǒng)中并行性主導作用:時間重疊原理,開發(fā)了計算機系統(tǒng)中的指令級并行物質基礎:部件功能專用化資源重復資源共享多處理機系統(tǒng)中的并行性也遵循時間重疊,資源重復,資源共享耦合度:反映多機系統(tǒng)各機器之間物理連接的緊密程度與交互作用能力的強弱緊耦合:計算機間物理連接的頻帶較高,一般通過總線或高速開關實現(xiàn)計算機互聯(lián)松耦合:一般通過通道或通信線路實現(xiàn)計算機間的互聯(lián)多處理機將處理功能分散給各個專用處理機去完成----異構型多處理機系統(tǒng)提高計算機系統(tǒng)速度----通過多處理機的并行處理,同構型多處理機系統(tǒng)20世紀70年代之后,隨著芯片技術的飛速發(fā)展,為并行計算機系統(tǒng)提供強大物質基礎20世紀90年代來的我國并行機機器型號完成時間研制單位CPU芯片CPU數(shù)機器類型曙光1號1993中科院計算所M880004-16SMP曙光10001995中科院計算所I860/xr36MPPYH-31997國防科大MIPSR4000128Cluster神威11999國家并行計算機工程技術中心64-bitAlpha384Cluster深騰68002003聯(lián)想Itanium2,1.3GHz1024Cluster曙光4000A2004中科院計算所AMDOpteron2.2GHz64位2560Cluster超級刀片系統(tǒng)2004深圳星盈XeonEM64T按照刀片擴充ClusterKD-50-I2007中科大龍芯2F330Cluster天河一號實物神威太湖之光并行處理機的系統(tǒng)結構類型SISDSIMDMISDMIMD并行處理機體系結構分類SISDSIMDMISDMIMD單處理機向量處理機多處理機機群系統(tǒng)本章作業(yè)1-1,1-2,1-3,1-4,1-5,1-6,1-7,1-8,1-9,1-10,1-11
本章結束謝謝!
第二章指令系統(tǒng)主講教師:單博煒本章將介紹數(shù)據表示 尋址方式指令系統(tǒng)討論在計算機系統(tǒng)結構設計中如何給程序設計者提供合理的機器級界面,以及指令系統(tǒng)的改進對計算機系統(tǒng)結構產生的影響及其發(fā)展趨勢數(shù)據表示數(shù)據表示:指的是能由機器硬件直接識別和引用的數(shù)據類型。數(shù)據表示直接與計算機的數(shù)據處理部件相對應,當機器定義了某種數(shù)據類型的運算指令并設置了相應的處理硬件,能夠直接對這種類型的數(shù)據進行處理時,機器就具有了該類型的數(shù)據表示。和數(shù)據結構的關系數(shù)據結構研究的是實際應用中所要用到的各種數(shù)據元素或信息單元之間的結構關系。常見的數(shù)據結構有標量、向量、串、隊、棧、陣列、鏈表、樹、圖等。數(shù)據結構不一定能被機器直接識別和處理,但可通過軟件映像,將其變換成機器中所具有的各種數(shù)據表示來實現(xiàn)。因此,數(shù)據表示是數(shù)據結構的子集,機器具有不同的數(shù)據表示就可以為數(shù)據結構的實現(xiàn)提供不同程度的支持,故數(shù)據結構和數(shù)據表示是機器軟、硬件的交界面。在機器中如何進行軟、硬功能的分配,合理設置數(shù)據表示,以得到對應用中遇到的數(shù)據結構有較高的實現(xiàn)效率等問題,是計算機系統(tǒng)結構設計研究的內容。數(shù)據表示例子早期的機器只有定點教據表示。隨著計算機技術的發(fā)展和機器功能的不斷提高,現(xiàn)在邏輯(布爾)數(shù)、定點數(shù)(整數(shù))、浮點數(shù)(實數(shù))、十進制數(shù)、字符串等,都已成為計算機的基本數(shù)據表示。一般計算機的數(shù)據字長有8位、16位、32位等。計算機的指令系統(tǒng)可支持對字節(jié)(8位)、半字(16位)、單字(32位)和雙字(64位)的運算。變址操作的設置為向量、陣列數(shù)據結構的實現(xiàn)提供了直接支持,可以不必修改程序,僅用循環(huán)的辦法就能實現(xiàn)對整個向量、陣列的各個元素進行運算處理。然而,目前計算機系統(tǒng)中存儲器一維順序存儲的線性結構與數(shù)據結構中經常要求的多維離散結構仍存在很大差距,不利于數(shù)據結構的實現(xiàn)。而且數(shù)據結構的發(fā)展總是領先于機器的數(shù)據表示,根據實現(xiàn)數(shù)據結構的需要來設計和改進系統(tǒng)結構成為我們的重要任務。在計算機中確定數(shù)據表示,應從其能否提高運算速度、能否減少CPU與主存間的通信量和系統(tǒng)開銷,以及它的通用性和利用率等各種因素加以綜合考慮。下面討論一下計算機中的幾種高級數(shù)據表示。高級數(shù)據表示自定義數(shù)據表示向量、數(shù)組數(shù)據表示1.自定義數(shù)據類型對于處理運算符和數(shù)據類型的關系,高級語言和機器語言的差別很大。高級語言用類型說明語句指明數(shù)據的類型,讓數(shù)據類型直接與數(shù)據本身聯(lián)系在一起,運算符對不同類型的數(shù)據是通用的。傳統(tǒng)的機器語言中對數(shù)據沒有類型說明,而使用不同的指令操作碼區(qū)分對不同類型數(shù)據的操作。編譯時要把高級語言程序中的數(shù)據類型說明語句和運算符變換成機器語言中不同類型指令的操作碼,并驗證操作數(shù)類型的合法性,這會增加編譯的負擔。為了在數(shù)據表示上縮短高級語言與機器語言的語義差距,可采用自定義數(shù)據表示。帶標志符的數(shù)據表示定義每個數(shù)據由類型標志位和數(shù)據值兩部分組成,用類型標志位指明數(shù)據值部分究竟是二進制整數(shù)、十進制整數(shù)、浮點數(shù)、字符串,還是地址字,將數(shù)據類型與數(shù)據本身直接聯(lián)系在一起。這樣,機器語言中的操作碼可以同高級語言中的運算符一樣,對各種數(shù)據類型的操作可以通用。我們稱這種數(shù)據表示為帶標志符的數(shù)據表示。標志符由編譯程序建立,對高級語言程序來說是透明的,以減輕應用程序員的負擔。優(yōu)點采用標志符數(shù)據表示的機器,具有簡化指令系統(tǒng)和裎序設計、簡化編譯程序及編譯過程、方便實現(xiàn)一致性校驗、能夠用硬件自動完成數(shù)據類型轉換以及支持數(shù)據庫系統(tǒng)的實現(xiàn)與數(shù)據類型無關的要求等優(yōu)點。數(shù)據描述符對于向量、數(shù)組、記錄這類每個元素都具有相同屬性的數(shù)據,可定義一個數(shù)據描述符來說明其共同的類型信息。數(shù)據描述符和標志符的差別在于:標志符與每個數(shù)據相連,共同存在一個存儲單元中,描述單個數(shù)據的類型特征;描述符則與數(shù)據分開存放,用來描述所要訪問的數(shù)據是整塊數(shù)據還是單個數(shù)據、訪問該數(shù)據塊或數(shù)據元素所需要的地址以及其他特征信息等。標志符與數(shù)據一同出現(xiàn)在程序中并同時被訪問,而采用數(shù)據描述符時程序中只出現(xiàn)描述符,只有當描述符被訪問時才根據其中的信息形成操作數(shù)地址,然后再訪問數(shù)據。2.向量、數(shù)組數(shù)據表示向量、數(shù)組數(shù)據表示是為支持向量、數(shù)組數(shù)據結構的實現(xiàn)和快速運算而設置的。在具有向量、數(shù)組數(shù)據表示的向量處理機中,硬件上設置有以流水或陣列方式處理的高速運算器,而其指令系統(tǒng)中則包含功能豐富的向量或陣列運算指令。只需一條如下的向量運算指令就可以方便地實現(xiàn)諸如
ci=
ai+5+bi
,
i=10,11,…,1000的向量運算功能。指令中源向量A、B及結果向量C的向量參數(shù)包括其基地址、位移量、向量長度和向量元素步距等參數(shù)。優(yōu)點用一條向量、數(shù)組指令同時實現(xiàn)對整個向量、數(shù)組的高速處理,同時編譯程序也得到簡化。3.堆棧數(shù)據表示為了能高效實現(xiàn)編譯和子程序調用中的堆棧數(shù)據結構,很多機器都設置有堆棧數(shù)據表
示。具有堆棧數(shù)據表示的機器稱為堆棧機器。堆棧機器對堆棧數(shù)據結構實現(xiàn)的支持體現(xiàn)在以下幾個方面:(1)有功能豐富的堆棧操作類指令,可對堆棧中的數(shù)據直接進行各種運算和處理。(2)由若干高速寄存器組成的硬件堆棧,并控制它與主存中的堆棧區(qū)在邏輯上組成一
個整體,使堆棧具有寄存器的訪問速度和圭存的容量。(3)有力地支持子程序的嵌套和遞歸調用。(4)有力地支持高級語言程序的編譯。例如在機器HP-3000中除一般的訪存指令外還有一組堆棧指令,格式為主操作碼為0000時表示為堆棧指令。其功能為按照先A操作后B操作的順序將棧頂和次棧頂?shù)膬蓚€操作數(shù)進行運算,結果存于原操作數(shù)所在位置如有高級語言算術表達式A/B+C*(D+E)其逆波蘭表達式為AB/CDE+*+作為編譯時的中間語言,直接生成堆棧機器指令程序為LOAD A ;sp←sp+1,M(sp)←M(A)LOAD B ;sp←sp+1,M(sp)←M(B)DIV DEL ;除法,sp←sp-1LOAD CLOADDADDM E ;M(sp)←M(sp)+M(A)MUL ADD ;乘法,加法在堆棧機器中的實現(xiàn)過程如圖在堆棧機器中實現(xiàn)算術表達式,可以簡化編譯,在較大程度上縮小高級語言和機器語言之間的語義差距。浮點數(shù)尾數(shù)的下溢處理如浮點數(shù)運算過程中因相乘或各種右移,會使尾數(shù)超出運算器和存儲器的字長范圍。超長尾數(shù)部分丟棄會造成精度損失,如果用兩倍字長存儲和運算來保證精度,則會增加存儲空間和運算時間。對于一般的應用,應考慮在尾數(shù)的下溢處理中如何采取措施以盡量減少運算中的精度損失。1.截斷法方法是簡單地將下溢部分截去。其最大誤差在整數(shù)二進制運算中接近于1,在分數(shù)二進制運算中接近于2-m(m為尾數(shù)的二進制位數(shù))。對正數(shù)誤差恒為負,統(tǒng)計平均誤差為負且無法調節(jié)。該方法誤差較大,但實現(xiàn)簡單,無須增加硬件及處理時間。2.舍入法方法是將尾數(shù)多保留一位(溢出部分的最高位),處理時該保留位加1后舍去。其誤差
有正有負,最大誤差小于截斷法,平均誤差無法調節(jié)。統(tǒng)計平均誤差接近于0,稍偏正。該
方法實現(xiàn)簡單,增加硬件少,但處理速度慢。處理時間最長的情況是從尾數(shù)最低位向最高位
進位,并發(fā)生上溢而需要右移規(guī)格化。3.恒置1法方法是將尾數(shù)規(guī)定字長的最低位恒置1。其誤差有正有負,最大誤差為1。統(tǒng)計平均誤
差接近于0,稍偏正。平均誤差無法調節(jié)。該方法實現(xiàn)簡單,無須增加硬件,處理速度快。4.查表舍入法其方法基于存儲邏輯的思想,用ROM或PLA存放下溢處理表,如圖2.2所示。表的k
位地址來自尾數(shù)最低的k-l位和準備舍掉部分的最高位,表的內容則是2k個k-l位下溢處理結果。一般情況下,下溢處理結果按舍人法編碼;當尾數(shù)的最低k-l位為全1時,則采用截斷法形成下溢處理結果,即仍保持k-l位為全1。下溢處理表中的內容由設計者填入,處理時僅需從表中讀出處理結果,處理速度比舍入法快。該方法可根據具體情況設置處理結果,平均誤差可調節(jié)至趨于0,但需增加硬件。2.2指令系統(tǒng)的優(yōu)化設計指令系統(tǒng)是程序設計者看到的機器主要屬性和軟、硬件的主要界面,它對計算機功能的確定至關重要。指令系統(tǒng)的設計主要包括指令功能設計和指令格式設計兩方面,其內容與前述數(shù)據表示以及尋址方式密切相關。本節(jié)從尋址方式及相關問題人手,著重討論指令格式的優(yōu)化及指令系統(tǒng)的改進和發(fā)展的途徑。尋址方式分析指令尋找所需操作數(shù)或信息的方式稱為尋址方式。計算機用到的數(shù)據、指令等信息通常保存在通用寄存器、主存、堆棧以及設備寄存器或某砦專門寄存器等部件中。為了訪問這些部件,首先要對它們進行編址。1.編址方式部件的編址方式一般有以下幾種:各種部件分類獨立編址,構成多個一維的線性地址空間。用不同的指令訪問不同的部件。各種部件統(tǒng)一編址.構成一個一維線性地址空間。在指令中通過不同的地址訪問不同的部件。隱式編址。對像堆?;蚰承S眉拇嫫鞯炔考捎檬孪燃s定好的方式隱式尋址,以加快對其尋址和訪問的速度。目前,大多數(shù)計算機都采用將主存、通用寄存器、堆棧分類編址,并分別形成面向寄存器、堆棧和主存的尋址方式。由指令格式中的地址碼形成操作數(shù)的物理地址的方式和過程,在計箅機組成原理課中已有過詳細的介紹,如立即尋址、直接尋址、間接尋址、相對尋址、變址尋址等,在此不再討論。2.程序定位技術程序員編寫程序時使用的地址稱為邏輯地址,而主存物理地址指的是程序在主存中的實際地址,計算機只能根據物理地址尋址和訪問信息。所謂程序定位就是把指令和數(shù)據的邏輯地址轉換成主存物理地址的過程。程序定位技術可分為三種:直接定位、靜態(tài)再定位和動態(tài)再定位。(1)直接定位程序員在編寫程序時直接指明程序和數(shù)據在實際主存中存放的位置。此時主存物理地址和邏輯地址是一致的,從而由邏輯地址構成的程序空間和由主存物理地址構成的主存空間(也稱實存空間)也是一致的。這種定位方式只在初期的計算機中應用過。后來出現(xiàn)的操作系統(tǒng)可以管理主存中同時存放的多道程序,而程序員編程時并不知道該程序將存放在主存中什么位置,所以各道程序的邏輯地址都是從0開始編址。當程序裝入主存時需要進行邏輯地址空間到物理地址空間的變換,即進行程序的定位。(2)靜態(tài)再定位這是在目的程序裝入主存時通過調用裝入程序,用軟件方法把目的程序的邏輯地址變換成物理地址,而在程序執(zhí)行過程中,物理地址不再改變的程序定位技術。由于這種技術基于VonNeumann型機器指令可修改的特點,不符合程序可再人性的要求,所以逐漸也被淘汰(3)動態(tài)再定位程序不做任何變換直接裝入主存,同時將裝入主存的起始地址存入對應該道程序使用的基址寄存器。在程序執(zhí)行時,通過地址加法器將邏輯地址加上基址寄存器的程序起始地址(簡稱基址)形成物理地址后訪問主存。這是借鑒數(shù)據變址尋址的思想而拓展的程序基址尋址定位方法,其過程如圖2.3所示。我們將這種在執(zhí)行每條指令時才形成訪存物理地址的方法稱為動態(tài)再定位。按整數(shù)邊界存儲的概念通常一臺機器中存放的信息有多種不同的寬度,這些信息在存儲器中如何存放關系到物理地址空間的信息分布問題。按字節(jié)編址的機器可尋址到字節(jié),但機器的信息寬度有多種,如IBM370的信息有字節(jié)(8位)、半字(雙字節(jié))、單字(4字節(jié))和雙字(8字節(jié))等不同寬度。主存寬度64位,即一個存儲周期可訪問8個字芾。各種寬度的信息均按其首字節(jié)的字節(jié)地址進行訪問。信息在存儲器中的分布方式有兩種。一種是任意存儲,如圖2.4(a)所示。這樣可能會出現(xiàn)一個信息跨主存字邊界存儲的情況,這時對寬度小于或等于主存寬度信息也要用兩個存儲周期才能訪問到,使訪問速度顯著降低。另一種是按整數(shù)邊界存儲。為了避免發(fā)生信息跨主存邊界存儲的情況,以保證任何時候都只用一個存儲周期訪問到所需信息,要求信息在主存中存放的地址必須是該信息寬度(字節(jié)數(shù))的整數(shù)倍,如圖2.4(b)所示。
(a)(b)這時各種寬度的信息在存儲器中存放的地址必須滿足:字節(jié)信息地址為 ×…××××半字信息地址為 ×…×××0單字信息地址為 ×…××00雙字信息地址為 ×…×000這就是信息在存儲器中按整數(shù)邊界存儲的概念。信息在存儲器中按整數(shù)邊界存儲,雖然可以保證訪問速度,但會造成存儲空間的浪費。隨著主存器件價格的不斷下降,主存容量顯著擴大,目前在權衡速度和價格時為了保證訪問速度,一般都要求在主存中必須按整數(shù)邊界存儲信息。指令格式的優(yōu)化指令系統(tǒng)優(yōu)化設計的實質是指令格式的優(yōu)化,其目標是用最短的位數(shù)來表示指令內容,使程序中指令的平均字長最短,以節(jié)省程序的存儲空間。同時,要盡量降低硬件實現(xiàn)的復雜程度。指令由操作碼和地址碼兩部分組成,所以指令格式的優(yōu)化也要從這兩方面人手,并考慮其綜合效果。1.操作碼的優(yōu)化操作碼優(yōu)化編碼的目的是為了縮短指令字的長度,減少程序的總位數(shù)及增加指令字所能表示的操作信息和地址信息。二進制操作碼的信息源熵為,其中pi表示第i種操作碼在程序中出現(xiàn)的概率然后計算采用實際編碼方案的信息冗余量
,此冗余量越小編碼質量越高或者計算實際編碼的平均碼長
(li表示第i種操作碼的碼長),其值接近H者編碼質量高。[例2.1]設有一臺模型機,共有七種不同功能的指令,各指令的使用頻度如表2.1所示,計算該指令集的信息源熵。解:計算指令的信息源熵為 =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位
結果說明這七種指令的最少平均編碼位數(shù)只需1.95位。操作碼的表示方法有等長操作碼編碼、Huffman編碼和擴展操作碼編碼。我們通過前面的實例來介紹以上三種編碼方法并比較各自的特點。(1)等長操作碼編碼所有操作碼編碼長度相同,且對N種操作碼采用等長操作碼編碼時,其編碼長度至少需要
位。如對表2.1給出指令集,若采用等長操作碼編碼則平均碼長為3位,相對于指令信息源熵的信息冗余量為
。等長操作碼的特點是編碼簡單,規(guī)整性好,實現(xiàn)容易,但信息冗余量大,會造成存儲空間的浪費。(2)Huffman編碼Huffman編碼是將Huffman壓縮概念運用于指令操作碼而得到的一種編碼,目的是縮短操作碼的平均碼長。操作碼的Huffman壓縮思想是:當各種指令出現(xiàn)的頻度不均等時,對出現(xiàn)頻度最高的指令用最短的位數(shù)來表示,而對出現(xiàn)頻度較低的指令用較長的位數(shù)來表示,會使表示的平均位數(shù)縮短。Huffman編碼的一般過程為:利用最小概率合并法,構造Huffman樹。對Huffman樹的所有分支進行代碼分配,兩個分支按左1右0或者相反均可。從根結點開始,沿分支到達各頻度指令所經過的代碼序列即為該頻度指令的Huffman編碼。應當指出,用上述方法構造的Huffman樹以及各指令的Huffman編碼均不是唯一的,但采用Huffman編碼所得操作碼的平均長度是唯一的。[例2.2]對表2.1給出指令集進行Huffman編碼,并計算編碼的平均碼長和信息冗余量。解:采用最小概率合并法構造的Huffman樹如圖2.5所示。計算Huffman編碼的平均碼長為
=0.45×1+0.30×2+0.15×3+0.05×4+0.03×5+0.01×6+0.01×6=1.97Huffman編碼的信息冗余量為與采用3位等長操作碼的信息冗余量35%相比要小得多。Huffman編碼方法形成的操作碼很不規(guī)整,列2.2中的七條指令就形成六種不同長度的操作碼。這樣既不利于硬件的譯碼,也不利于軟件的編譯,同時也很難與地址碼配合實現(xiàn)指令格式的整體優(yōu)化。Huffman編碼的特點是平均碼長短,信息冗余量小,但編碼規(guī)整性差,實現(xiàn)困難。(3)擴展操作碼編碼擴展操作碼編碼實際是一種結合Huffman壓縮思想的不等長二進制編碼方式。它的操作碼長度只限于幾種碼長,以便于實現(xiàn)和分級譯碼。編碼仍保持用短碼表示概率高的操作碼,用長碼表示概率低的操作碼的Huffman壓縮思想,以降低信息冗余量。擴展編碼法有等長擴展編碼法和不等長擴展編碼法兩種方法,區(qū)別在于不同碼長操作碼的擴展位數(shù)是否相同。[例2.3]對表2.1給出的指令集分別采用等長擴展和不等長擴展方式進行編碼,并計算編碼的平均碼長和信息冗余量。解:對給定指令集采用2-4等長擴展編碼和1—2-3-5不等長擴展編碼。2-4等長擴展編碼:用三個2位編碼表示三種使用頻度高的指令,留一個2位編碼11作為將操作碼擴展為4位的標志,4位編碼中低2位的四個編碼可以分別表示其余四種使用頻度較低的指令。具體編碼如表2.3所示。1-2-3-7不等長擴展編碼方案可以構成7個編碼,具體編碼如表2.4所示。擴展操作碼編碼的特點是平均碼長較短,信息冗余量較小,編碼規(guī)整性好,實現(xiàn)較容易。這是一種很實用的優(yōu)化編碼方法。操作碼的擴展編碼會因選擇擴展標志不同而形成多種不同的擴展編碼方案。例如,對4-8-12等長擴展編碼,就可以有15/15/15和8/64/512等多種擴展編碼方法。具體略去。地址碼的優(yōu)化地址碼是指令字中的另一部分重要信息,其編碼長度主要與指令中地址碼的個數(shù)、操作數(shù)存放的位置(通用寄存器、主存儲器、堆棧等)、存儲設備的尋址空間大小、編址方式、尋址方式等有關。操作碼優(yōu)化編碼使其具有多種長度,在不同的主存存儲方式中,會產生不同的結果。如果主存是按位編址,指令連續(xù)存儲(如圖2.7所示),則操作碼的優(yōu)化表示會直接使程序總存儲位數(shù)減少。然而,有些指令卻因出現(xiàn)跨邊界存儲而需兩個主存周期才能讀出,這會使機器速度明顯下降。為了保持訪存取指令的速度,指令字遵循按整數(shù)邊界存儲的原則。如果地址碼的長度固定,則操作碼優(yōu)化所帶來的位數(shù)的減少,可能只會使指令字內出現(xiàn)空白浪費(冗余),卻并不能減少程序的總位數(shù),如圖2.8所示。因此,要使操作碼長度因優(yōu)化縮短而出現(xiàn)的空位被充分利用,只有地址碼也是可變長的,可以占用這些位,這就必須對地址碼部分進行優(yōu)化。一個操作數(shù)的地址碼長度可以有很寬的變化范圍,1.由于指令中操作數(shù)個數(shù)的不同可采用多種地址制,如零地址指令、一地址指令、二地址指令、三地址指令等,如圖2.9所示。2.同一種地址制還可采用多種地址形式和長度,也可以考慮利用空白位直接存放操作數(shù)或常數(shù)等,如圖2.10所示。3.在指令中采用多種尋址方式,可以在地址碼長縮短的情況下滿足較大尋址范圍的要求。如操作數(shù)的尋址可采用基址尋址、基址加變址尋址、段尋址、寄存器尋址、相對尋址、寄存器間接尋址等多種尋址方式并可分別具有不同的碼長。變長的地址碼和優(yōu)化的可變長操作碼相配合,才能最終減少程序的總位數(shù)。3.指令格式優(yōu)化通過前面對操作碼和地址碼的優(yōu)化問題的討論,應得到指令格式的優(yōu)化設計可由以下方法實現(xiàn)。運用Huffman壓縮思想實現(xiàn)操作碼的可變長優(yōu)化表示。多種不同的尋址方式、地址制、地址形式和地址碼長度與可變長操作碼相結合。讓最常用的指令操作碼最短,同時令其具有最多的地址碼字段信息使其指令的功能增
強??蓽p少指令條數(shù),提高運行速度,減步程序存儲空間。使用頻度低的指令操作碼字段較長,但采用較少的地址碼字段信息,使指令長度不增加,不增大程序存儲空間。還可以進一步考慮采用多種指令字長度的指令格式,如單字長指令、雙字氏指令、三字長指令等。這比只有一種長度的定長指令字方式更能減少信息的冗余量,縮短程
序的長度。[例2.4]某模型機共有七條指令,各指令的使用頻度分別為35%、25%、20%、10%、5%、3%、2%。該模型機有8位和16位兩種指令字長,采用2-4擴展操作碼。8位字長指令為寄存器一寄存器(R-R)二地址類型,16位字長指令為寄存器一存儲器(R-S)二地址變址尋址(-128≤變址范圍≤127)類型。(1)設計該機的兩種指令格式,標出各字段位數(shù)并給出操作碼編碼。(2)該機允許使用多少個可編址的通用寄存器?多少個變址寄存器?(3)計算操作碼的平均碼長。解:(1)七條指令的2-4擴展操作碼編碼如表2.5所示。為了加快高使用頻度指令的執(zhí)行速度并減少程序存儲開銷,設計有2位操作碼長度的三條指令采用短指令格式且操作在通用寄存器之間進行,而其他的指令則采用長指令格式,操作在寄存器和存儲器之間進行。由于R-R型指令長度為8位,操作碼占2位,所以源、目的寄存器編碼部分各占3位,其格式如下:由變址尋址的位移量范圍(-128~+127)可知,R-S型指令格式中偏移地址占8位,由于操作碼占4位,源寄存器編碼占3位,R-S型指令長度為16位,所以變址寄存器的編碼只占1位,R-S型指令格式如下:(2)由(1)中設計的指令格式中通周寄存器編碼占3位,變址寄存器編碼占1位可知:該機允許使用八個可編址的通用寄存器和兩個變址寄存器。(3)根據表2.5計算操作碼的平均碼長為2.3計算機指令系統(tǒng)的發(fā)展方向一個方向:增強指令功能,軟件功能向硬件功能轉移,CISC另一個方向:降低指令功能及結構復雜度,達到簡化實現(xiàn),提高性能的目的,RISCCISC方向改進指令系統(tǒng)1.面向目標程序增強指令功能對于大量的目標程序及其執(zhí)行情況分析,發(fā)現(xiàn)有一些指令或者指令串使用的頻率很高,就可以用一條新的指令代替,較少存取指令次數(shù),加快執(zhí)行,減小程序代碼高運算型指令功能提高傳送指令功能增加程序控制指令功能面向高級語言的優(yōu)化實現(xiàn)改進高級語言經過編譯程序生成的目標程序往往比直接機器語言編寫的程序長,運算時間長1.增強對高級語言和編譯系統(tǒng)支持的指令系統(tǒng)2.高級語言計算機指令系統(tǒng)面向操作系統(tǒng)的優(yōu)化實現(xiàn)改進指令系統(tǒng)可以通過設置操作系統(tǒng)專用指令達到優(yōu)化操作系統(tǒng)的功能CISC結構特點1.指令系統(tǒng)龐大2.指令格式復雜3.執(zhí)行速度很低,不利于采用流水線4.系統(tǒng)指令使用頻度相差懸殊RISCPatterson提出RISC,通過精簡指令來是的計算機結構變得簡單,合理和高效。1981年,32位RISCI研制成功RISC一般原則精簡的指令系統(tǒng)減少指令系統(tǒng)的尋址方式指令格式簡化,規(guī)整,等長每條指令功能精簡處理器設置大量通用寄存器大多數(shù)指令采用硬聯(lián)控制實現(xiàn)RISC采用的基本技術1.遵循按照RISC機器一般原則設計的技術指令系統(tǒng)只選用使用頻率最高的基本指令采用簡單的指令格式,規(guī)整的指令字長,和簡單的尋址方式2.采用LOAD/STORE結構及重疊寄存器窗口技術減少訪存為了減少過程調用中保存現(xiàn)場的操作,采用重疊寄存器窗口技術,采用8個窗口3.采用流水線結構和延遲轉移技術4.在邏輯上采用硬聯(lián)線實現(xiàn)和微程序固件實現(xiàn)相結合的技術5.采用優(yōu)化編譯技術RISC的好處硬件簡單,降低設計成本,縮短設計周期,提高系統(tǒng)可靠性,提高機器執(zhí)行速度和效率,編譯容易,利于代碼優(yōu)化,RISC的問題CISC需要一條指令完成,RISC需要多條指令完成對于浮點運算和虛擬存儲器支持力度不夠理想編譯程序
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 霍亂弧菌課程設計
- 香煙包裝盒課程設計
- 高壓配電網供電課程設計
- 音樂噴泉課程設計依據
- 酷家樂全屋定制課程設計
- 采礦課程設計題目三
- 西餐短期課程設計
- 飼料粉碎機課程設計
- 走進無土栽培課程設計
- 道法課課程設計
- 危險性較大分部分項工程及施工現(xiàn)場易發(fā)生重大事故的部位、環(huán)節(jié)的預防監(jiān)控措施
- 繼電保護試題庫(含參考答案)
- 《榜樣9》觀后感心得體會四
- 2023事業(yè)單位筆試《公共基礎知識》備考題庫(含答案)
- 《水下拋石基床振動夯實及整平施工規(guī)程》
- 2025年云南大理州工業(yè)投資(集團)限公司招聘31人管理單位筆試遴選500模擬題附帶答案詳解
- 風電危險源辨識及控制措施
- 《教師職業(yè)道德與政策法規(guī)》課程教學大綱
- 兒童傳染病預防課件
- 護理組長年底述職報告
- 集裝箱活動房供需合同
評論
0/150
提交評論