計算機系統結構(計算機類)第1章_第1頁
計算機系統結構(計算機類)第1章_第2頁
計算機系統結構(計算機類)第1章_第3頁
計算機系統結構(計算機類)第1章_第4頁
計算機系統結構(計算機類)第1章_第5頁
已閱讀5頁,還剩145頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

面向21世紀>高等學校計算機類專業系列教材

計算機系統結構

陳智勇

第乞電孑科技大孽出版社

目錄

第1章基礎知識

第2章指令系統

第3章存儲系統設計

第4章流水線計算機設計技術

第5章并行處理技術

第6章向量處理機

第7章多處理機

第8章并行算法

第9章數據流計算機系統結構

第1章基礎知識

L1計算機系統層次結構

L2計算機系統結構

L3計算機組成

L4計算機實現

L5計算機性能

1.6計算機系統的分類

習題1

1.1計算機系統層次結構

1.1.1按功能劃分的多級層次結構

現代計算機是通過執行指令來解決問題的,它由

軟件和硬件兩大部分組成。描述一個任務如何實現的

指令序列稱為程序,所有程序在執行前都必須轉換成

計算機能識別以及直接執行的機器指令。這些機器指

令與機器硬件直接對應,并能被其直接識別和執行,

然而使用機器語言編程既不方便,也無法適應解題需

要和計算機應用范圍的擴大。

這個問題可從兩方面去解決,前提是都需要設計一個

比機器指令更方便使用或編程的指令集合,由它構成

新的語言,例如匯編語言。匯編語言是一種符號語

言,給程序員編程提供了方便,盡管每個語句仍基本

上與機器指令對應,卻并不能被機器直接識別和執

行;用匯編語言開發的程序需要某種轉換才能在實際

機器上執行。一種方式是翻譯(translation),在執行匯

編語言源程序之前生成一個等價的機器語言指令序列

來替換它,生成的程序全部由機器指令組成,計算機

執行等效的機器語言源程序來代替原來的匯編語言源

程序。

即把源程序先轉換成目標程序,而后再在機器上執行

目標程序以獲得結果。另一種方式是解釋

(interpretation),用機器指令寫一個程序,將匯編語言

源程序作為輸入數據,按順序檢查它的每條指令,然

后直接執行等效的機器指令序列來解決問題。

第2級虛擬機器M2

具有L2機器語言(匯編語言)

第1級實際機器Ml

具有L1機器語言(機器指令系統)

圖1.1虛擬機器和實際機器層次

結構舉例

匯編語言源程序可以在機器上運行并獲得結果,

是因為有匯編程序的支持。在匯編語言程序設計者看

來,就好像有了一臺用匯編語言作為機器語言的機器。

這里的機器是指能存儲和執行程序的算法和數據結構

的集合體。我們把以軟件為主實現的機器,稱之為虛

擬機器,而把由硬件和固件實現的機器稱為實際機器。

顯然,虛擬機器的實現是構筑在實際機器之上的。圖

1.1給出了虛擬機器與實際機器之間構成的一個簡單的

層次結構。

語言與虛擬機之間存在著重要的對應關系,每種

機器都有由它能執行的指令組成的機器語言。同時,

語言也定義了機器,即機器要能執行這種語言所寫的

程序。有n層不同的語言,就對應有n層不同的虛擬機。

在圖1.2中我們給出了典型的現代計算機的多級層次結

構。例如,匯編語言(L3)是面向機器的一種符號語

言,其語法、語義結構仍然和二進制機器語言的基本

相同,但與解題所需的差別較大,于是進一步出現了

面向題目和過程的高級語言(L4);

在高級語言的基礎上還出現了面向應用的應用語言

(L5),因此我們可以得到多個層次的虛擬機器;而對

于實際機器級若采用微程序(L0)控制,它又可分解成

傳統機器級Ml和微程序級M0;雖然目前很多機器上

的操作系統(L2)已不再用匯編語言編寫,而是用面向

系統軟件的高級語言,如C語言,但從實質上看,操作

系統是傳統機器的引伸,它要提供傳統機器所沒有但

為匯編語言和高級語言的使用和實現所需的某些基本

操作和數據結構,如文件管理、進程管理、中斷管理、

作業控制、存儲管理和輸入輸出等等,它們在許多機

器上是經機器語言程序解釋實現的。因此,操作系統

級放在傳統機器級之上,匯編語言級之下。

第5級

(虛擬機器)

第4級

(虛擬機器)

第3級

(虛擬機器)

第2級

(虛擬機器)

第1級

(實際機器)

第0級

(實際機器)

圖1.2計算機系統的多級層次結構

把計算機系統按功能劃分為多個層次結構后,對

各機器級的程序員而言,只要熟悉和遵守該級語言的

規范準則,所編寫的程序總能在此機器級上運行并得

到結果,而不用了解該機器級是如何實現的。各機器

級的實現主要靠翻譯或解釋,或者是這兩者的結合。

翻譯是先用轉換程序將高一級機器級上的程序整個地

變換成低一級機器級上可運行的等效程序,然后再在

低一級機器級上實現的技術。解釋則是在低一級機器

級上用它的一串語句或指令來仿真高一級機器級上的

一條語句或指令的功能,通過對高一級程序中的每條

語句或指令逐條解釋來實現的技術。

計算機系統采用何種實現方式,要從效率、速度、

價格、資源狀況、可靠性等多方面因素全盤考慮,對

軟件、硬件及固件的取舍進行綜合平衡。

軟件和硬件在邏輯功能上是等效的,同一邏輯功

能既可以用軟件也可以用硬件或固件實現,從原理上

講,軟件實現的功能完全可以用硬件或固件完成,同

樣,硬件實現的邏輯功能也可以由軟件的模擬來完

成,只是性能、價格以及實現的難易程度不同而已。

例如,在計算機中實現十進制乘法這一功能,既

可以用硬件來實現,也可以用軟件來完成。用硬件實

現,需設計十進制乘法機器指令,用硬件電路來實現

該指令,其特點是完成這一功能的速度快,但需要更

多的硬件。而用軟件來實現這個功能,則要采用加法、

移位等指令通過編程來實現,其特點是實現的速度

慢,但不需增加硬件。

軟、硬件的功能分配比例可以在很寬的范圍內變

化,這種變化是動態的,如圖1.3所示,軟硬功能分配

的比例隨不同時期以及同一時期的不同機器的變化而

變化。由于軟、硬件是緊密相關的,軟硬界面常常是

模糊不清的,在計算機系統的功能實現上,有時候很

難分清哪些功能是由硬件完成的,哪些功能是由軟件

完成的。在滿足應用的前提下,軟硬功能分配比例的

確定,主要是看能否充分利用硬件、器件技術的現狀

和進展,使計算機系統達到較高的性能價格比。對于

計算機系統的用戶,還要考慮他所直接面對的應用語

言所對應的機器級的發展狀況。

功能分配比例%

圖1.3軟硬件功能分配

從目前軟硬件技術的發展速度及實現成本上看,

隨著器件技術的高速發展,特別是半導體集成技術的

高速發展,以前由軟件來實現的功能,越來越多的由

硬件來實現,總的來說,軟件硬化是目前計算機系統

發展的主要趨勢。

1.1.2按功能劃分層次的好處

從概念和功能上把一個復雜的計算機系統看成是

由多個機器級構成的層次結構,可以有如下的好處:

首先,有利于理解軟件、硬件和固件在系統中的地位

和作用;從系統層次的劃分中,可以看出,微程序機

器級(M0)、傳統機器級(Ml)、操作系統機器級

(M2)不是為應用程序員解題設計的,而是為運行支

持更高層次機器級程序所必須的解釋程序和翻譯程序

而設計的,以便能設計和實現新的虛擬機器級。

在這之上的機器級(M3?M5級)則主要是為應用程序

設計人員解決各類實際應用問題而設計的。其次,系

統按層次進行劃分,有利于理解各種語言的實質和實

現途徑;計算機各層次的語言總是通過低一級的語言

翻譯或解釋來實現的,這就說明相鄰機器級之間的語

義差別不能太大。再次,系統按層次進行劃分,有利

于推動計算機系統結構的發展;例如,可以重新分配

軟、硬件的比例,為虛擬機器的各個層次提供更多更

好的硬件支持,改變硬件及器件快速發展而軟件卻日

益復雜、開銷過大的狀況。

可以用硬件和固件來實現高級語言和操作系統而形成高

級語言機器和操作系統機器。再如,用真正的機器來

取代各級虛擬機,擺脫各級功能都在同一臺實際機器

上實現的狀況,發展多處理機系統、分布處理系統、

計算機網絡等系統結構。最后,系統按層次進行劃

分,有利于理解計算機系統結構的定義。把計算機按

功能劃分成多個不同的層次結構,從各個層次的功能

劃分和實現去了解計算機系統,有助于更深入的了解

系統結構的定義。

<Back4、

1.2計算機系統結構

“計算機系統結構”這個名詞來源于英文computer

architecture,也譯成“計算機體系結構"。architecture這

個詞原來用在建筑領域,60年代這個名詞被引入計算

機領域,“計算機系統結構”一詞已經得到普遍應用,

它研究的內容不但涉及計算機硬件,也涉及計算機軟

件,已經成為一門學科。

1.2.1計算機系統結構的定義

計算機系統結構這個詞是Amdahl等人在1964年介紹

IBM360時提出的。他們把系統結構定義為由程序設計

者所看到的一個計算機系統的屬性,即概念性結構和功

能特性。這實際上是計算機系統的外特性。按照計算機

層次結構,不同程序設計者所看到的計算機具有不同的

屬性。在計算機技術中,—種本來是存在的事物或屬

性,但從某種角度看卻好象不存在,稱為透明性。通

常,在一個計算機系統中,低層機器級的概念性結構和

功能特性,對高級語言程序員來說是透明的。

例如使用高級語言的程序員所看到的計算機屬性

主要是軟件子系統和固件子系統的屬性,包括程序語

言以及操作系統、數據庫管理系統、網絡軟件等用戶

界面。例如,IBM370系列機的中央處理器都具有相同

的基本指令系統,指令的解釋過程在不同檔次機器中

的處理方式不相同,但對程序設計者而言,所看到的

數據形式都是相同的32位字長。

同樣,對于其不同檔次機器,在組成與實現時,數據

通路寬度(數據總線)可以分別采用8位、16位、32位

或64位,但對于程序員而言,數據總線寬度是透明

的,即在設計程序時不需要考慮數據總線寬度的位數。

Amdahl等人提出的系統結構定義中的程序設計者是指

機器語言或編譯程序設計者所看到的計算機屬性,是

硬件子系統的概念結構及其功能特性。

1.2.2計算機系統結構研究的內容

計算機系統結構研究的主要內容是計算機系統中

各級之間界面的定義及其上下的功能分配。在這里,

我們主要討論傳統機器級的系統結構,即從機器語言

程序員的角度所看到的計算機系統結構,如圖1.4所示。

界面之上的功能由軟件實現;界面之下的功能由

硬件/固件實現。所以本書是研究軟、硬件功能的分配

以及對機器級界面的確定,即由機器語言設計者或編

譯程序設計者所看到的機器物理系統的抽象或定義。

它是機器語言程序設計者或是編譯程序生成系統為使

其所設計或生成的程序能在機器上正確運行,所需看

到和遵循的計算機屬性。它不包括機器內部的數據流

和控制流、邏輯設計或器件設計等。

軟件和硬件的交界面

軟件/(從機器語言程序員的角度看)

硬件

圖L4計算機系統軟硬件交界面

對于目前的通用型機器,計算機系統結構(傳統機

器程序員所看到的屬性)一般包括:

(1)機器內的數據表示,包括硬件能直接識別和處

理的數據類型和格式等;

(2)尋址方式,包括最小尋址單位,尋址方式的種

類、表示和地址計算等;

(3)寄存器組織,包括操作數寄存器、變址寄存器、

控制寄存器及某些專用寄存器的定義、數量和使用約

定;

(4)指令系統,包括機器指令的操作類型和格式、

指令間的排序方式和控制機構等;

(5)存儲系統,包括最小編址單位、編址方式、主

存容量和最大可編址空間等;

(6)中斷機構,包括中斷的類型、中斷分級、中斷

處理程序的功能和入口地址等;

(7)機器工作狀態的定義及切換,如在管態,處理

機可以使用系統的全部指令和全部資源,而在目態,

處理機只能執行用戶程序;

(8)輸入輸出機構,包括輸入輸出設備的連結方

式,處理機/存儲器與輸入輸出設備間數據傳送的方式

與格式、傳送的數據量、以及輸入輸出操作的結束與

出錯標志等;

(9)信息保護,包括信息保護方式和硬件對信息保

護的支持等。

<Back4、

1.3計算機組成

1.3.1計算機組成的定義

計算機組成(computerorganization,又稱計算機設

計)是指計算機系統的邏輯實現。包括機器內部的數

據流和控制流的組成以及邏輯設計等。它著眼于機器

內各事件的排序方式與控制機構、各部件的功能以及

各部件間的聯系。

計算機組成的設計是按所希望達到的性能價格比,

最佳、最合理的把各種設備和部件組成計算機,以實

現所確定的計算機系統結構。對傳統機器程序員來

說,計算機組成的設計內容一般是透明的。

1.3.2計算機組成設計

計算機組成的任務是在計算機系統結構確定分配

給硬件子系統的功能及其概念結構之后,研究各組成

部分的內部構造和相互聯系,以實現機器指令級的各

種功能和特性。這種相互聯系包括各功能部件的配置、

相互連接和相互作用。各功能部件的性能參數相互匹

配是計算機組成合理的重要標志,因而相應地就有許

多計算機組織方法。例如,為了使存儲器的容量大、

速度快,人們研究出存儲體系。在存儲體系中,又有

虛擬存儲器、高速緩存、多模塊交叉工作、多寄存器

組和堆棧等技術。

再如,為了使輸入輸出設備與處理機間的信息流量

達到平衡,人們研究出通道、外圍處理機等方式。為

了提高處理機速度,人們研究出先行控制、流水線、

多執行部件等方式。在各功能部件的內部結構研究方

面,產生了許多組合邏輯、時序邏輯的高效設計方法

和結構。

一般來講,計算機組成設計要確定的內容應包括:

(1)數據通路的寬度,指數據總線上一次能并行傳送

的信息位數;

(2)專用部件的設置,包括設置哪些專用部件,如

乘除法專用部件、浮點運算部件、字符處理部件、地

址運算部件等,每種專用部件的個數等等,這些都決

于所需達到的機器速度、專用部件的使用頻度及允許

的價格等;

(3)各種操作對部件的共享程度,若共享程度太

高,由于共享部件的分時使用將會降低操作的速度;

若對同一功能部件設置多個以降低共享度,但系統的

價格會隨之升高。

(4)功能部件的并行度,如功能部件的控制和處理

方式是采用順序串行方式,還是采用重疊、流水、分

布處理方式;

(5)控制機構的組成方式,如控制機構是采用硬連

線控制還是微程序控制,是采用單機處理還是多機處

理或功能分布處理;

(6)緩沖和排隊技術,包括如何在部件間設置多大

容量的緩沖器來彌補它們的速度差異,對于等待要求

處理的事件如何排隊,如隨機、先進先出、先進后出、

優先級、循環隊等不同方式;

(7)預估、預判技術,如采用何種原則來預測未來

的行為,以優化性能和優化處理;

(8)可靠性技術,如采用什么樣的冗余技術和容錯技

術來提高可靠性。

<Back4、

1.4計算機實現

1.4.1計算機實現的定義

計算機實現(computerimplementation)是指計算機

組成的物理實現。它包括處理機、主存等部件的物理

結構,器件的集成度和速度,信號傳輸,器件、模塊、

插件、底板的劃分與連接,專用器件的設計。電源、

冷卻、裝配等技術以及有關的制造技術和工藝等。它

著眼于器件技術和微組裝技術。其中,器件技術在實

現技術中起著主導作用。

1.4.2器件技術研究的內容

器件技術研究的內容包括:處理機、主存等部件的

物理結構,器件的集成度和速度,專用器件的設計,

信號傳輸等。例如,集成電路采用TTL類型還是MOS

類型,最小光刻線條的尺寸,連線采用鋁連線還是銅

連線,集成電路內部的電容、電阻的設計,集成電路

上的晶體管采用什么樣的材料和工藝,如不同場合下

可以選用硅、硅鑄合金、硅化錢等等,其帶來的物理

特性、響應特性、功耗也各有不同。隨著時間的推

移,芯片的封裝技術已經歷了好幾代的變遷,從DIP、

QFP、PGA、BGA至UCSP,再到MCM等等。

計算機所用的基本器件已經從初期的電子管、晶

體管、中小規模集成電路、大規模集成電路,發展到

現在的超大規模集成電路,其生產工藝從上世紀70年

代的10微米發展到現在的0.09微米的水平,只用了不到

30年的時間。其所能達到的集成度可以在一個芯片上

集成上億個晶體管。例如,在處理器方面,英特爾公

司的第一個CPU的集成度為2000多個晶體管,而在

1999年,英特爾公司推出的PentiumIII處理器的集成度

就達到2400萬個晶體管,到了2000年,采用Willamette

核心,使用0.18微米生產工藝的Pentium4處理器的集

成度就達到3400萬個晶體管;

而其后推出的采用Northwood核心,使用0.13微米生

產工藝的Pentium42.53GHz處理器其集成度達到5500

萬個晶體管。同期,AMD公司的AthlonXP2600+處理

器的集成度也達到3760萬個晶體管。其即將推出的代

號為Hammer的新一代微處理器集成度將達到1億個晶

體管。

計算機所用的基本器件不僅由分立器件發展到集成

電路,其速度也有顯著的提高。器件的發展是推動系統

結構和組成前進的關鍵因素和主要動力。隨著生產工藝

以及材料工藝的進展,單個器件的尺寸可以越來越小,

單個晶體管的尺寸已經從微米級縮小到納米級,響應速

度可以達到100GHz的量級,例如,IBM使用硅鑄材料

制造的晶體管,速度達到350GHz,為CPU的主頻達到

10G的水平提供了技術保障。器件技術的快速發展,使

單個器件或集成電路的性能越來越高,而價格則越來越

低;同時,也為各種新的系統結構和組成實現提供了硬

件支持,并使計算機的應用得到快速普及。

器件技術的發展還促進了算法、語言和軟件的發

展。隨著CPU性價比的迅速改善,加速了大規模高性

能并行處理機和通信網絡的發展。由數百甚至上萬個

微處理器組成的MPP系統促使人們不斷研究新的并行

算法、并行語言及相關應用軟件和操作系統,以使系

統的規模和處理速度能隨結點處理器數的增加而顯著

提高。在2002年全球高性能計算機500強的排行榜上,

位居榜首的是日本NEC研制,安置在橫濱地球模擬研

究發展中心的EarthSimulator(地球模擬器),

它由日本政府資助,其實測運算速度可達到每秒

35.86TFLOPS,由5120個處理器構成。IBM公司研制的

由8192個處理器構成的“ASCIWhite-Pacific”超級計算

機,以7.3TFLOPS排名第二。由我國聯想公司研制的

由512個xeon處理器組成的深騰1800的運算速度達到

1.027TFLOPS,排名第43。

1.4.3系統結構、組成、實現三者的關系和相互影響

計算機系統結構、計算機組成和計算機實現是三個

互不相同的概念,但它們是互相聯系和相互影響的。

計算機系統結構是計算機系統的軟、硬件分界面,是

機器語言程序設計者或是編譯程序生成系統為使其設

計或生成的程序能在機器上運行所看到的計算機屬

性;計算機組成是計算機系統結構的邏輯實現;計算

機實現是計算機組成的物理實現。

具有相同系統結構的計算機可以采用不同的組成。

例如,具有相同指令系統的計算機,指令的取出、譯

碼、取操作數、運算、存結果既可以采用順序方式進

行解釋,也可以采用流水方式讓它們在時間上重疊進

行來提高速度。又如乘法指令可以利用專用乘法器來

實現,也可以通過加法器重復相加、移位來實現,這

主要取決于對速度的要求、乘法指令出現的頻度和所

采用的乘法運算方法。顯然,前一種方法可以有效的

提高乘法運算速度,而后一種方法則可以降低系統的

價格。

一種系統結構可以有多種計算機組成,同樣,一種

計算機組成可以采用多種不同的計算機實現。例如,

在CPU的選擇上,同一類型的CPU一般都有多個不同

的工作頻率,從速度及價格等角度考慮,可以選擇工

作頻率較高的CPU,來實現較高的運算速度,也可以

選擇工作頻率較低的CPU,來保證系統的價格相對較

低。又如在主存器件的選擇上,可以選擇TTL型的器

件,也可以采用MOS型器件;即可以采用單片VLSI集

成電路,也可以采用多片LSI或MSI集成電路組成;

既可以選擇響應時間速度較快的芯片,也可以選擇響應

速度較慢的芯片。實際上,這也是在速度、價格等因

素之間進行選擇;換句話說,采用什么樣的實現技術

主要考慮所要達到的性能價格比及器件技術的現狀。

反過來,計算機實現是計算機系統結構和計算機組

成的基礎,其技術的發展對計算機系統結構有著很大

的影響,而計算機組成也會影響計算機系統結構。例

如器件的發展使系統結構由大型機下移到小型機及微

機的速度加快。早期用于大型機的各種數據表示、指

令系統、操作系統很快應用到小型機以及微機上。例

如,在目前的PC上使用的CPU,都普遍采用了在早期

大型機才使用的超標量技術,并引入了VLIW技術,有

些機器還使用了超流水線技術。

系統結構的設計必須結合應用考慮,為軟件和算

法的實現提供更多更好的支持。同時,還要涉及到可

能采用和準備采用的組成技術。即計算機系統結構的

設計應考慮減少對各種組成及實現技術的使用限制,

在一種系統結構中,應允許有多種不同的組成和實現

技術。既能方便的在低檔機器上用簡單、低成本的組

成實現,也能在高檔機器上以較高的成本、復雜的組

成實現。例如,在IBM370系列機中,由低到高有不同

檔次的機器,它們的中央處理器都具有相同的基本指

令系統,

只是指令的分析、執行方式不同,在低檔機器上用順序

方式處理,在高檔機器上用并行方式處理。又如,在

數據通路寬度的組成和實現上,不同檔次機器可以分

別采用8位、16位、32位和64位。IBM370系列機采用

通道方式進行輸入輸出,其組成又可以分為在低檔機

器中采用的結合型通道和在高檔機器中采用的獨立型

通道。

在不同時期,系統結構、組成和實現所包含的內容

會有所不同。在某些計算機系統中作為系統結構的內

容,在另一些計算機系統中可能是組成和實現的內容。

隨著各種新技術的出現和發展,特別是器件技術的發

展,各種功能都集成到一個芯片上,使系統結構、組

成和實現融合于一體,系統結構、組成和實現三者之

間的界限越來越模糊。

<Back*

1.5計算機性能

計算機系統的性能指標,主要取決于計算機的本質

屬性,即時空屬性。各項指標都圍繞著它的本質屬性

來定義。時間是衡量計算機性能的標準。同樣的工作

量,花費的時間越少速度就越快。衡量機器性能的唯

一固定而且可靠的標準就是真正執行程序的時間。

151性能因子CPI

CPU的工作是建立在一個固定的時鐘節拍上的,這

個節拍有一定的時間長度Tc,我們稱之為時鐘周期

(clockcycles)o它是計算機內部操作的基本時間單位,

即計算機內部每一基本功能操作在一個或多個時鐘周

期的時間內完成。時鐘周期的單位通常使用納秒

(ns),它的倒數則是時鐘的頻率,即CPU的主頻,

通常使用MHz或GHz來表示。

一個程序在CPU上運行所需的時間TCPU可以用下述

公式表示:

(1.1)

TCPU=【N義CPIxTc

在式1.1中,表示要執行程序中的指令總數,CPI

表示執行每條指令所需的平均時鐘周期數(Clock

cyclesperinstruction)。由此公式可見,程序運行的時

間取決于三個特征:時鐘周期(或速率),每條指令

所需的時鐘周期數以及程序中總的指令數。由式1.1可

得到CPI的表達式:

執行整個程序所需CPU時鐘周期數般.

二程序中指令總數

在程序執行過程中,要用到不同類型的指令,令I表

示第i類指令在程序中執行次數,CP1表示執行一條第i

類指令所需的平均時鐘周期數,n為程序中所有的指令

種類數。則式1.2可以改寫為:

n

£cPIjXli

i=l

CPI=(1.3)

N

因為IN是一個常數,所以式L3可以改寫為:

CPI=E(CPIiXl』N)(L4)

i=l

其中A表示第i類指令在程序中所占的比例。式

1.4說明平均CPI,或稱有效CPI,是等于每類指令的平

均CPI和該類指令在整個程序中出現的百分比的乘積之

和。在這里,我們可以用CPU時間來評價CPU性能,

。尸。性能=(,NXCPIXTCY1=^4^5)

C

INxCPI

由式1.5可以看出,要改善CPU性能,可以通過改變

其中某一項或幾項因素來實現。事實上,這三個因素

是相互關聯的。時鐘頻率Q由硬件技術和組成技術決

定,CPI與組成和指令集有關,而指令數IN則與指令集

和編譯技術有關。

1.5.2計算機性能常用指標MIPS和MFLOPS

1.MIPS(millioninstructionspersecond,每秒百萬次

指令)

這是一個用來描述計算機性能的尺度。對于一個給定

的程序,MIPS定義為:

MIPS==—(1.6)

66

TCPUxlOCPZxlO

其中,森示時鐘速率,它是時鐘周期的倒數。

如果用TE代替來表示程序的執行時間,則由式

L6可得TE的表達式:

T=-----

MIPSxElO6(1.7)

例1.1已知PentiumII處理機的CPI=0.5,試計算

PentiumII450處理機的運算速度。

解:由于Pentium]1450處理機fc=450MHz,因

此,應用式1.6可求出:

fc450xlQ6

iMVlIiPlS二900MIPS

°Pentiumll45QCP/xlO60.5xlO6

BPPentiumll450處理機的運算速度為900MlpS。

顯然,既然MIPS是單位時間內的執行次數,所以機

器工作頻率越高,其MIPS愈高;同樣,執行每條指令

所需的平均時鐘周期數(CPI)越小,其MIPS值也越

高。MIPS從一定程度上反映了機器的性能。但是MIPS

有三個方面的缺陷:

(l)MIPS依賴于指令集,所以使用MIPS來衡量指令

集不同的機器的性能優劣時,其結果是很不準確的。

只適合于評價有相同指令集的機器。

(2)從式1.4和1.6可以看出,在同一臺機器上,程序

不同,其CPI也會不同,其MIPS計算結果也會因為程

序不同而發生變化,有時其差異是很大的。

(3)MIPS可能與性能相反。典型例子就是具有可選硬

件浮點運算部件的機器。因為浮點運算遠慢于整數運

算,所以很多機器提供了可選的硬件浮點運算部件,

但是軟件實現浮點運算的MIPS高。然而硬件實現浮點

運算的時間少,這時MIPS與機器性能恰好相反。

在使用MIPS時應注意它的應用范圍,它只適宜于評

估標量機,因為在標量機中執行一條指令,一般可得

到一個運算結果,而向量機中,執行一條向量指令通

??傻玫蕉鄠€運算結果。因此,用MIPS來衡量向量機

是不合適的。

2.MFLOPS(millionfloatingpointoperationsper

second,每秒百萬次浮點運算)

MFLOPS可用如下公式表示:

1FN

MFLOPS=

6(1.8)

TExio

其中,*N表示程序中的浮點運算次數。

由于MFLOPS取決于機器和程序兩個方面,因此

MFLOPS只能用來衡量機器浮點操作的性能,而不能

體現機器的整體性能。例如編譯程序,不管機器的性

能有多好,它的MFLOPS不會太高。

MFLOPS測量單位比較適用于衡量向量機的性能,

因為MFLOPS是基于操作而非指令的,所以它可以用

來比較兩種不同的機器。一般而言,同一程序運行在

不同計算機上時往往會執行不同的指令數,但所執行

的浮點數個數常常是相同的。采用MFLOPS作為衡量

單位時,應注意它的值不但會隨整數、浮點數操作混

合比例的不同發生變化,而且也會隨快速和慢速浮點

操作混合比例的變化而變化。例如,運行由100%浮點

加組成的程序所得到的MFLOPS值將比由100%浮點除

法組成的程序要高。

MFLOPS和MIPS兩個衡量值之間的量值關系,沒

有統一標準,一般認為在標量計算機中執行一次浮點

運算需要2?5條指令,平均約需3條指令,故有

1MFLOPS^3MIPSo

例L2用一臺40MHz處理機執行標準測試程序,程

序所含的混合指令數和每類指令的CPI如表1.1所示,

求有效CPI、MIPS速率和程序的執行時間。

解:總的指令數為:

45000+32000+15000+8000=100000條,因此各類指令所

占的比例分別是:整數運算為45%,數據傳送為32%,

浮點操作為15%,控制傳送為8%。

有效CPI、MIPS速率和程序的執行時間分別計算如下:

⑴有效CPI為:

1X0.45+2X0.32+2X0.15+2X0.08=1.55CPI

(2)MIPS速率為:1/1.55X40=25.8MIPS

(3)程序的執行時間為:

100000X1.55/(40X106)=0.003875s=3875us

表1.1標準測試程序的混合指令數和相應

所需的時鐘周期數

指令類型整數運算數據傳送浮點操作控制傳送

指令數4500032000150008000

CPI1222

例L3假定你是一個計算機設計者,已設想了一個

優化的設計方案,它能減少過程調用和返回所需的取/

存指令次數。為了進行驗證,對未加優化和已優化的

方案進行實驗測試,其中假定所使用的是相同的優化

編譯器。實驗測得的結果如下:

▲優化方案的時鐘周期比未優化的快15%;

▲未優化方案中的取/存指令數占總指令數的

30%;

▲優化方案中的取/存指令比未優化的少1/3。對于

其它指令,兩種方案的動態執行數沒有變化;

▲未優化方案的所有指令執行均只需1個時鐘周

期,而優化方案只有取/存指令執行需要2個時鐘周

期,其它指令執行也只需1個時鐘周期。

試計算:

(1)優化方案的平均CPI;

(2)優化方案加速比。

解:(1)優化方案的平均CPI為:

0.2/0.9X2+0.7/0.9X171.22CPI

(2)由題意,因為未優化方案的所有指令執行均只需

1個時鐘周期,因此其平均CPI為1CPI。根據題意,有:

(■未優化工優化)工未優化二0?15

解之,得:,優化=0.85,未優化

優化方案的加速比為:

Sp=未優化方案程序的執行時間/已優化方案程序的執行

時間

二(1N未優化XC叫優化x1未優化)/(1優化xCPI優化XTc優化)

二(1N未優化X1X1未優化)/(0?91未優化X1.22X0.85Tc未優化)

心1.075

3.用基準程序來評價計算機性能

基準程序(benchmark)是性能測試程序,并假設它

能刻劃某一類應用問題的處理和數據移動特征?;鶞?/p>

程序用來測量和預測計算機系統的性能,并能提示它

們的體系結構的弱點和優點?;鶞食绦蚪M(benchmark

suite)是一套基準程序的控制測試條件及過程的一組特

定規則,包括輸入數據、輸出結果以及性能指標?;?/p>

準程序系列(benchmarkfamily)則是一套基準程序組。

基準程序可分為宏基準程序和微基準程序兩大類。

宏基準程序用來測量一個計算機系統的總體性能,而

微基準程序則是用來測量一個計算機系統某一特定方

面的性能,如CPU速度、存儲器速度、I/O速度、操作

系統性能及網絡性能等等。表1.2示出了幾個具有代表

性的微基準程序組和宏基準程序組。

SPEC(StandardPerformanceEvaluationCorporation)

最初是由30個左右世界知名計算機大廠商所支持的非

盈利的合作組織,成員包括:IBM、AT&T、BULL、

Compaq>CDC、DG、DEC、Fujitsu>HP、英特爾、

MIPS、SGLSUN、Unisys等;SPEC基準測試程序能

夠全面反映機器的性能,具有很高的參考價值,已成

為事實上的工業標準。隨著因特網的快速發展,各種

各樣的新技術的應用,SPEC也不斷變化和增加其測試

的范圍和內容。

SPEC已經從早期只進行CPU性能測試發展到電子

商務、萬維網服務、電子郵件服務、高性能機群計算

機等等多方面應用的測試。例如,

SPECjAppServer2002應用于JAVA應用服務器性能測

試,SPECMAIL2001提供電子郵件服務器性能測試,

SPECweb99則是用來評估萬維網服務器性能的測試。

表1.2幾個具有代表性的微基準程序組和宏基

準程序組

類型名稱測試范圍

微基準程序UNPACK數值計算(線性代數)

LMBENCHunix中的系統調用和數據移動

STREAM存儲器帶寬

宏基準程序NAS并行計算(CFD)

PARKBENCH并行計算

SPEC混合基準程序系列

Splash并行計算

STAP信號處理

TPC商業應用

在1989年10月,SPEC發布了第一個基準測試程

序,包含10個測試程序,程序量超過15萬行,4個定點

程序,6個浮點程序;其測試結果用SPECint89和

SPECfp89表示。1992年,又增加10個測試程序,共有6

個定點程序和14個浮點程序,測試結果用SPECint92和

SPECfp92表示o1995年推出SPECint95和SPECfp95。

到了1999年,發布了測試標準為SPECCPU2000的第一

個版本V1.0,2001年推出了SPECCPU2000的Vl.2版本。

SPECCPU2000由CINT2000和CFP2000組成,其中

CINT2000由12個基準測試程序(H個由C語言編寫,1

個由C++語言編寫)組成,分別是gzip、vpr>gcc>

mcf、crafty、parser、eon、perlbmk、gap、vortex、

bzip2和twolf,程序說明見表1.3;CINT2000主要完成

在各種不同應用環境下計算機的整數運算能力的測

試,其結果用SPECint2000表示。

表1.3CINT2000的基準測試程序

基準測試程序編程語言設計者基準時間說明

gzipANSICJean-LoupGailly1400數據壓縮

vprANSICVaughnBetz1400FPGA電路布線

gccANSIC1100C優化編譯器

mcfANSICAndreasLoebel1800組合優化(交通運輸調度)

craftyANSICRobertHyatt1000國際象棋游戲

parserANSICDannySleator,Davy1800字處理

Temperley

eonC++PeterShirley,KenChiu,1300計算機可視化

et.al.

perlbmkANSICLarryWall,et.al.1800Perl程序設計語言

gapANSICMartinSchoenert1100群論、解釋程序

vortexANSICPeterR.Homan1900面向對象的數據庫

bzip2ANSICJulianSeward1500數據壓縮

twolfANSICBillSwartz3000布線布局模型

CFP2000由14個浮點測試程序(6個由Fortran-77編

寫,4個由Fortran-90編寫,4個由C語言編寫)組成,

分另U是wupwise、swim、mgrid、applu>mesa>galgel>

art>equake>facerec>ammp>lucas>fma3d>sixtrack

和apsi,程序說明見表1.4。CFP2000主要完成在不同應

用環境下計算機的浮點運算能力測試,其結果用

SPECfp2000表示。

表1.4CFP2000的基準測試程序

測試程序編程語言設計者基準時說明

wupwiseFortran77BjoernMedeke1600量子色動力學

swimFortran77PaulN.Swarztrauber3100淺水區建模

mgridFortran77EricBarszcz,PaulO.Frederickson18003D勢場

appluFortran77SisiraWeeratunga2100拋物線/橢圓型偏微

分方程

mesaCBrianE.Paul14003D圖形庫

galgelFortran90AlexanderGelfgat2900計算機流體力學

artcCharlesRoberson&MaxDomeika2600圖象識別/神經網絡

equakecDavidR.O'HallaronandLoukasF.1300模擬地震波在水庫

Kallivokas中的傳播

facerecFortran90JanC.Vorbrueggen1900圖象處理

ammpCRobertW.Harrison2200計算化學

lucasFortran90ErnstMayer2000數論:原始測試

fma3dFortran90SamuelW.Key2100有限元法碰撞仿真

sixtrackFortran77FrankSchmidt1100高能核物理加速器

設計

apsiFortran77ZaphirisD.Christidis2600污染物分布(氣象

學)

從表1.3和表1.4中,也可以看出,SPECCPU2000基

準測試程序包含了不同領域間的應用,如天氣預報、

流體力學、數據壓縮、數據庫、編譯、物理、化學、

人工智能、圖象處理等方面,能更好的反映計算機的

性能。表1.5給出了2000年到2003年間一些常用CPU的

測試結果。

SPECCPU2000基準測試程序選擇SunUltra5_10I

作站性能作為參考性能,此工作站具有300MHzSun

SPARC微處理器,帶有256MB主存。表1.5中的

SPECint2000值是對CINT2000基準程序組中12個基準

程序速率與SunUltra5_10工作站速率之比取幾何平均

值得到的。同樣,SPECfp2000值是對CFP2000基準程

序組中14個基準程序速率與SunUltra5_10工作站速率

之比取幾何平均值得到的。

1.5.3計算機系統結構的性能評價標準

關于計算機的性能評價,通常用峰值性能(peak

performance)及持續性能(sustainedperformance)兩個指

標。峰值性能是指在理想情況下計算機系統可獲得的

最高理論性能值,它不能反映系統的實際性能。實際

性能又稱持續性能,它的值往往只有峰值性能的5%到

35%(因算法而異)。

持續性能的表示常用算術平均值、調和平均值和

幾何平均值三種方法,這三種性能值(運算速率)的

計算公式表示如下:

1.算術性能平均值Am

以程序執行的速率Ri來進行性能評價,則有

+,+?..+」

(1.9)

〃日n曰TnT】

Tn

其中Tj是第i個程序的執行時間,式1.9得到的結果是

n個程序的平均執行速率。若根據執行時間進行評價,

則平均執行時間是各執行時間的算術平均值。式1.9則

改寫為:

]n

4=—X*(1」。)

這時的Am表示的是n個程序的平均執行時間。

表1.5SPECCPU2000測試結果

CPU工作頻率(MHz)SPECint2000SPECfp2000測試時間

Alpha21264A8335336442000.1

PowerPC604e250105842000.4

RI20004003474072000.4

PA-86005504224142000.10

AMDAthlon12004584172000.11

UltraSPARC-IIe5001741822001.2

RS64IV7504393762001.7

SPARC64GP6004064032001.8

PentiumIII10004082642001.8

POWER3-II4503184332001.9

Pentium4(2.0AGHz)20007597732002.5

Pentium4(3.06GHz)3067110710912002.8

RI40006005005292002.8

AMDAthlon(TM)MP20007666932002.11

2400+

Alpha21264C125087713652002.11

UltraSPARCIIICu120071211062003.3

AMDOpteron1441800110011542003.4

POWER4+1700111316782003.4

AMDAthlon(TM)XP220010809822003.5

3200+

SPARC64V110068210302003.5

IntelItanium21500107720552003.6

IntelXeon3066125811842003.6

2.調和性能平均值Hm

調和性能平均值Hm的表達式為:

Hnnn

emnn(1.11)

£1學Tl+小

由式i.n可以看出,Hm的值與運行所有程序所需時

間的總和成反比關系,從執行時間是衡量性能指標的

唯一標準這一點來看,用Hm值來衡量計算機系統性能

是較為精確的。

3.幾何性能平均值Gm

對性能的評價的第三種方法是使用幾何平均值,

其表達式如下:

(1.12)

使用Gm有一個很好的特性:G/X,)/G”區)=Gm(XjYi)

,即幾何平均值之比與比的幾何平均值是相等的,因

此在對各種機器性能比較而進行性能規格化(即以某

臺機器性能作參考標準,其它機器性能除以該參考標

準所得到的值)過程中,不論取哪一臺作參考機,Gm

均能保持比較結果的一致性,Am和Hm由于沒有這樣的

特性,因而在作比較時,就不如仃皿那樣方便。下面我

們通過一個例子來說明這一點。

例1.4已知四個程序在三臺計算機上的執行時間

如表1.6所示,假設四個程序中每一個都有100000000

條指令要執行,計算這三臺計算機中每臺機器上每個

程序的MIPS速率。根據這些速率值,能否得出有關三

臺計算機相對性能的明確結論?能否找到一種將它們

統計排序的方法,試說明理由。

表1.6四個程序在三臺計算機上的執行時間

執行時間(s)

程序計算機A計算機B計算機C

程序111020

程序2100010020

程序3500100050

程序4100800100

解:(1)這三臺計算機中每臺機器上每個程序的

MIPS速率如表1.7所示。

表1.7四個程序在三臺計算機上的MIPS速率

MIPS速率(MIPS)

程序計算機A計算機B計算機C

程序1100105

程序20.115

程序30.20.12

程序410.1251

(2)以A機為標準的規格化測試值和Gm/GmA值如表1.8所示。

表1.8以A機為標準的規格化測試值和Gm/GmA值

執行速率Ri(MIPS)

程序計算機A計算機B計算機C

程序1100(1)10(0.1)5(0.05)

程序20.1(1)1(10)5(50)

程序30.2(1)0.1(0.5)2(10)

程序41(1)0.125(0.125)1(1)

Gm/GmA機狄).0625場

GmC>mA>GmB

:.三臺計算機相對來說,C的性能最好,A的性能次

之,B的性能最差。

如果考慮工作負載中各程序不會以相等的比例出

現這一情況,就需要對各程序的執行速率或執行時間

加上相應的權值。例如,一個任務由三個程序完成,

程序1的比例占10%,程序2的比例占35%,程序3的比

例占55%,那么它們的權值分別為0.1、0.35和0.55,將

其與對應程序的執行速率或執行時間相乘,再累加求

和,即可得到加權算術平均值。

同理,可以得到加權幾何平均值和加權調和平均

值。在這里,用Wi來表示第i個程序的權值,則對應表

達式如下:

加權算術平均值:

nnTTZ

(1.13)

i=\i-l1i

加權調和平均值:

.屋

%=少工尸(1.14)

i=li-lKi

加權幾何平均值:

n

Wix(7?2)%X…x(&)w〃(1.15)

Gm=Yl^=(R1產

i=\

1.5.4計算機系統設計的定量原理

這里將討論在計算機系統設計中應遵循的一些重要

定量原理和應注意的現象。

1.只加速使用頻率高的部件

這是最重要也是最廣泛采用的計算機設計準則。

因為加快處理頻繁出現事件對系統的影響遠比加速處

理很少出現事件的影響要大。使經常性事件的處理速

度加快能明顯提高整個系統的性能。一般說來,經常

性事件的處理比較簡單,因此比不經常出現的事件處

理起來要快。

例如,在CPU中兩個數進行相加運算時,相加結

果可能出現溢出現象,也可能無溢出發生,顯然經常

出現的事件是不發生溢出的情況,而溢出是偶然發生

的事件。因此,在設計時應優化不發生溢出的情況,

使這個經常性事件的處理速度盡可能快。而對溢出處

理則不必過多考慮優化。因為發生溢出的概率很小,

即使發生了,處理得慢一些也不會對系統性能產生很

大的影響。

在計算機設計過程中經常會遇到上述情況,如何

確定經常性事件以及如何加快處理它的速度,這就是

下面介紹的Amdahl定律要解決的問題。

2.阿姆達爾(Amdahl)定律

阿姆達爾定律是1967年由IBM360系列機的主要設計

者阿姆達爾首先提出來的。阿姆達爾定律是指:系統

中對某一部件采用某種更快執行方式所能獲得的系統

性能改進程度,取決于這種執行方式被使用的頻率,

或所占總執行時間的比例。Amdahl定律實際上定義了

采取增強(加速)某部分功能處理后可獲得的性能改

進或執行時間的加速比。

若用T0】d表示不采用任何增強功能措施完成某一任

務的時間,用丁.卬表示采用某種增強功能措施后計算

機完成同一任務所需時間。以二卬表示可采取增強功能

措施的部分所占百分比(顯然,OW/ewWl),而以

%w表示采用增強功能措施比不采用增強功能可加快執

行的倍數,則性能(或時間)加速比Sp可用如下公式

表不:

T

cold1

bp一~(1.16)

new(1—fnew)+fnew/^new

該公式分母中的(>fnew)表示不可增強性能部分

的百分比,顯然:

(1)當£ew為0時,即沒有可增強性部分時,Sp=l;

(2)當一^8時,分母中fne/Zw項變為°,此時

Sp=l/(l£ew)。由此可以看出,可獲得性能改善的極

限值受值的約束。

例L5若考慮將系統中某一功能的處理速度加快10

倍,但該功能的處理使用時間僅為整個系統運行時間

的40%,則采用此增強功能方法后,能使整個系統的

性能提高多少?

解:由題可知:%亞=1。,fnew=04根據公式,有:

S=______i______=_i—=156

P(1-0.4)+0.4/100.64.

即采用此增強功能方法后,能使整個系統的性能

提高為原來的1.56倍。

例1.6如果某一計算任務用向量方式求解比用標

量方式求解要快20倍,稱可用向量方式求解部分所花

費時間占總的時間的百分比為可向量化百分比。

(1)請寫出加速比Sp與可向量化比例x之間的關系表

達式。

(2)為達到加速比2,可向量化的百分比應為多

少?

(3)為獲得采用向量方式最大加速比半值(即10)

時,所需可量化的百分比為多少?

解:(1)根據公式,得:

]

P(1-x)+x/201-0.95%

(2)由題意:

解此方程,可得到x=0.526,即為達到加速比2,可

向量化的百分比應為52.6%o

(3)由題意:

解此方程,可推出x=0.947,即為獲得采用向量方

式最大加速比半值時,所需可量化的百分比為94.7%。

3.程序訪問的局部性規律

所謂程序訪問局部性是指程序執行中,呈現出頻

繁重新使用那些最近已被使用過的數據和指令的規律。

統計表明一個程序執行時間中的90%是花費在10%程序

代碼上,而另外90%的指令的使用率合起來也只有

10%,有的指令的使用率連1%也不到。這為我們設計

指令系統時提供了指導,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論