計算機(jī)系統(tǒng)結(jié)構(gòu)(計算機(jī)類)第1章_第1頁
計算機(jī)系統(tǒng)結(jié)構(gòu)(計算機(jī)類)第1章_第2頁
計算機(jī)系統(tǒng)結(jié)構(gòu)(計算機(jī)類)第1章_第3頁
計算機(jī)系統(tǒng)結(jié)構(gòu)(計算機(jī)類)第1章_第4頁
計算機(jī)系統(tǒng)結(jié)構(gòu)(計算機(jī)類)第1章_第5頁
已閱讀5頁,還剩145頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

面向21世紀(jì)>高等學(xué)校計算機(jī)類專業(yè)系列教材

計算機(jī)系統(tǒng)結(jié)構(gòu)

陳智勇

第乞電孑科技大孽出版社

目錄

第1章基礎(chǔ)知識

第2章指令系統(tǒng)

第3章存儲系統(tǒng)設(shè)計

第4章流水線計算機(jī)設(shè)計技術(shù)

第5章并行處理技術(shù)

第6章向量處理機(jī)

第7章多處理機(jī)

第8章并行算法

第9章數(shù)據(jù)流計算機(jī)系統(tǒng)結(jié)構(gòu)

第1章基礎(chǔ)知識

L1計算機(jī)系統(tǒng)層次結(jié)構(gòu)

L2計算機(jī)系統(tǒng)結(jié)構(gòu)

L3計算機(jī)組成

L4計算機(jī)實現(xiàn)

L5計算機(jī)性能

1.6計算機(jī)系統(tǒng)的分類

習(xí)題1

1.1計算機(jī)系統(tǒng)層次結(jié)構(gòu)

1.1.1按功能劃分的多級層次結(jié)構(gòu)

現(xiàn)代計算機(jī)是通過執(zhí)行指令來解決問題的,它由

軟件和硬件兩大部分組成。描述一個任務(wù)如何實現(xiàn)的

指令序列稱為程序,所有程序在執(zhí)行前都必須轉(zhuǎn)換成

計算機(jī)能識別以及直接執(zhí)行的機(jī)器指令。這些機(jī)器指

令與機(jī)器硬件直接對應(yīng),并能被其直接識別和執(zhí)行,

然而使用機(jī)器語言編程既不方便,也無法適應(yīng)解題需

要和計算機(jī)應(yīng)用范圍的擴(kuò)大。

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

比機(jī)器指令更方便使用或編程的指令集合,由它構(gòu)成

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

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

上與機(jī)器指令對應(yīng),卻并不能被機(jī)器直接識別和執(zhí)

行;用匯編語言開發(fā)的程序需要某種轉(zhuǎn)換才能在實際

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

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

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

執(zhí)行等效的機(jī)器語言源程序來代替原來的匯編語言源

程序。

即把源程序先轉(zhuǎn)換成目標(biāo)程序,而后再在機(jī)器上執(zhí)行

目標(biāo)程序以獲得結(jié)果。另一種方式是解釋

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

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

后直接執(zhí)行等效的機(jī)器指令序列來解決問題。

第2級虛擬機(jī)器M2

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

第1級實際機(jī)器Ml

具有L1機(jī)器語言(機(jī)器指令系統(tǒng))

圖1.1虛擬機(jī)器和實際機(jī)器層次

結(jié)構(gòu)舉例

匯編語言源程序可以在機(jī)器上運行并獲得結(jié)果,

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

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

這里的機(jī)器是指能存儲和執(zhí)行程序的算法和數(shù)據(jù)結(jié)構(gòu)

的集合體。我們把以軟件為主實現(xiàn)的機(jī)器,稱之為虛

擬機(jī)器,而把由硬件和固件實現(xiàn)的機(jī)器稱為實際機(jī)器。

顯然,虛擬機(jī)器的實現(xiàn)是構(gòu)筑在實際機(jī)器之上的。圖

1.1給出了虛擬機(jī)器與實際機(jī)器之間構(gòu)成的一個簡單的

層次結(jié)構(gòu)。

語言與虛擬機(jī)之間存在著重要的對應(yīng)關(guān)系,每種

機(jī)器都有由它能執(zhí)行的指令組成的機(jī)器語言。同時,

語言也定義了機(jī)器,即機(jī)器要能執(zhí)行這種語言所寫的

程序。有n層不同的語言,就對應(yīng)有n層不同的虛擬機(jī)。

在圖1.2中我們給出了典型的現(xiàn)代計算機(jī)的多級層次結(jié)

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

言,其語法、語義結(jié)構(gòu)仍然和二進(jìn)制機(jī)器語言的基本

相同,但與解題所需的差別較大,于是進(jìn)一步出現(xiàn)了

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

在高級語言的基礎(chǔ)上還出現(xiàn)了面向應(yīng)用的應(yīng)用語言

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

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

傳統(tǒng)機(jī)器級Ml和微程序級M0;雖然目前很多機(jī)器上

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

系統(tǒng)軟件的高級語言,如C語言,但從實質(zhì)上看,操作

系統(tǒng)是傳統(tǒng)機(jī)器的引伸,它要提供傳統(tǒng)機(jī)器所沒有但

為匯編語言和高級語言的使用和實現(xiàn)所需的某些基本

操作和數(shù)據(jù)結(jié)構(gòu),如文件管理、進(jìn)程管理、中斷管理、

作業(yè)控制、存儲管理和輸入輸出等等,它們在許多機(jī)

器上是經(jīng)機(jī)器語言程序解釋實現(xiàn)的。因此,操作系統(tǒng)

級放在傳統(tǒng)機(jī)器級之上,匯編語言級之下。

第5級

(虛擬機(jī)器)

第4級

(虛擬機(jī)器)

第3級

(虛擬機(jī)器)

第2級

(虛擬機(jī)器)

第1級

(實際機(jī)器)

第0級

(實際機(jī)器)

圖1.2計算機(jī)系統(tǒng)的多級層次結(jié)構(gòu)

把計算機(jī)系統(tǒng)按功能劃分為多個層次結(jié)構(gòu)后,對

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

規(guī)范準(zhǔn)則,所編寫的程序總能在此機(jī)器級上運行并得

到結(jié)果,而不用了解該機(jī)器級是如何實現(xiàn)的。各機(jī)器

級的實現(xiàn)主要靠翻譯或解釋,或者是這兩者的結(jié)合。

翻譯是先用轉(zhuǎn)換程序?qū)⒏咭患墮C(jī)器級上的程序整個地

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

低一級機(jī)器級上實現(xiàn)的技術(shù)。解釋則是在低一級機(jī)器

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

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

語句或指令逐條解釋來實現(xiàn)的技術(shù)。

計算機(jī)系統(tǒng)采用何種實現(xiàn)方式,要從效率、速度、

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

軟件、硬件及固件的取舍進(jìn)行綜合平衡。

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

能既可以用軟件也可以用硬件或固件實現(xiàn),從原理上

講,軟件實現(xiàn)的功能完全可以用硬件或固件完成,同

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

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

例如,在計算機(jī)中實現(xiàn)十進(jìn)制乘法這一功能,既

可以用硬件來實現(xiàn),也可以用軟件來完成。用硬件實

現(xiàn),需設(shè)計十進(jìn)制乘法機(jī)器指令,用硬件電路來實現(xiàn)

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

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

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

慢,但不需增加硬件。

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

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

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

變化。由于軟、硬件是緊密相關(guān)的,軟硬界面常常是

模糊不清的,在計算機(jī)系統(tǒng)的功能實現(xiàn)上,有時候很

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

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

確定,主要是看能否充分利用硬件、器件技術(shù)的現(xiàn)狀

和進(jìn)展,使計算機(jī)系統(tǒng)達(dá)到較高的性能價格比。對于

計算機(jī)系統(tǒng)的用戶,還要考慮他所直接面對的應(yīng)用語

言所對應(yīng)的機(jī)器級的發(fā)展?fàn)顩r。

功能分配比例%

圖1.3軟硬件功能分配

從目前軟硬件技術(shù)的發(fā)展速度及實現(xiàn)成本上看,

隨著器件技術(shù)的高速發(fā)展,特別是半導(dǎo)體集成技術(shù)的

高速發(fā)展,以前由軟件來實現(xiàn)的功能,越來越多的由

硬件來實現(xiàn),總的來說,軟件硬化是目前計算機(jī)系統(tǒng)

發(fā)展的主要趨勢。

1.1.2按功能劃分層次的好處

從概念和功能上把一個復(fù)雜的計算機(jī)系統(tǒng)看成是

由多個機(jī)器級構(gòu)成的層次結(jié)構(gòu),可以有如下的好處:

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

和作用;從系統(tǒng)層次的劃分中,可以看出,微程序機(jī)

器級(M0)、傳統(tǒng)機(jī)器級(Ml)、操作系統(tǒng)機(jī)器級

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

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

而設(shè)計的,以便能設(shè)計和實現(xiàn)新的虛擬機(jī)器級。

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

設(shè)計人員解決各類實際應(yīng)用問題而設(shè)計的。其次,系

統(tǒng)按層次進(jìn)行劃分,有利于理解各種語言的實質(zhì)和實

現(xiàn)途徑;計算機(jī)各層次的語言總是通過低一級的語言

翻譯或解釋來實現(xiàn)的,這就說明相鄰機(jī)器級之間的語

義差別不能太大。再次,系統(tǒng)按層次進(jìn)行劃分,有利

于推動計算機(jī)系統(tǒng)結(jié)構(gòu)的發(fā)展;例如,可以重新分配

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

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

益復(fù)雜、開銷過大的狀況。

可以用硬件和固件來實現(xiàn)高級語言和操作系統(tǒng)而形成高

級語言機(jī)器和操作系統(tǒng)機(jī)器。再如,用真正的機(jī)器來

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

上實現(xiàn)的狀況,發(fā)展多處理機(jī)系統(tǒng)、分布處理系統(tǒng)、

計算機(jī)網(wǎng)絡(luò)等系統(tǒng)結(jié)構(gòu)。最后,系統(tǒng)按層次進(jìn)行劃

分,有利于理解計算機(jī)系統(tǒng)結(jié)構(gòu)的定義。把計算機(jī)按

功能劃分成多個不同的層次結(jié)構(gòu),從各個層次的功能

劃分和實現(xiàn)去了解計算機(jī)系統(tǒng),有助于更深入的了解

系統(tǒng)結(jié)構(gòu)的定義。

<Back4、

1.2計算機(jī)系統(tǒng)結(jié)構(gòu)

“計算機(jī)系統(tǒng)結(jié)構(gòu)”這個名詞來源于英文computer

architecture,也譯成“計算機(jī)體系結(jié)構(gòu)"。architecture這

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

機(jī)領(lǐng)域,“計算機(jī)系統(tǒng)結(jié)構(gòu)”一詞已經(jīng)得到普遍應(yīng)用,

它研究的內(nèi)容不但涉及計算機(jī)硬件,也涉及計算機(jī)軟

件,已經(jīng)成為一門學(xué)科。

1.2.1計算機(jī)系統(tǒng)結(jié)構(gòu)的定義

計算機(jī)系統(tǒng)結(jié)構(gòu)這個詞是Amdahl等人在1964年介紹

IBM360時提出的。他們把系統(tǒng)結(jié)構(gòu)定義為由程序設(shè)計

者所看到的一個計算機(jī)系統(tǒng)的屬性,即概念性結(jié)構(gòu)和功

能特性。這實際上是計算機(jī)系統(tǒng)的外特性。按照計算機(jī)

層次結(jié)構(gòu),不同程序設(shè)計者所看到的計算機(jī)具有不同的

屬性。在計算機(jī)技術(shù)中,—種本來是存在的事物或?qū)?/p>

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

常,在一個計算機(jī)系統(tǒng)中,低層機(jī)器級的概念性結(jié)構(gòu)和

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

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

主要是軟件子系統(tǒng)和固件子系統(tǒng)的屬性,包括程序語

言以及操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、網(wǎng)絡(luò)軟件等用戶

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

的基本指令系統(tǒng),指令的解釋過程在不同檔次機(jī)器中

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

數(shù)據(jù)形式都是相同的32位字長。

同樣,對于其不同檔次機(jī)器,在組成與實現(xiàn)時,數(shù)據(jù)

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

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

的,即在設(shè)計程序時不需要考慮數(shù)據(jù)總線寬度的位數(shù)。

Amdahl等人提出的系統(tǒng)結(jié)構(gòu)定義中的程序設(shè)計者是指

機(jī)器語言或編譯程序設(shè)計者所看到的計算機(jī)屬性,是

硬件子系統(tǒng)的概念結(jié)構(gòu)及其功能特性。

1.2.2計算機(jī)系統(tǒng)結(jié)構(gòu)研究的內(nèi)容

計算機(jī)系統(tǒng)結(jié)構(gòu)研究的主要內(nèi)容是計算機(jī)系統(tǒng)中

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

我們主要討論傳統(tǒng)機(jī)器級的系統(tǒng)結(jié)構(gòu),即從機(jī)器語言

程序員的角度所看到的計算機(jī)系統(tǒng)結(jié)構(gòu),如圖1.4所示。

界面之上的功能由軟件實現(xiàn);界面之下的功能由

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

以及對機(jī)器級界面的確定,即由機(jī)器語言設(shè)計者或編

譯程序設(shè)計者所看到的機(jī)器物理系統(tǒng)的抽象或定義。

它是機(jī)器語言程序設(shè)計者或是編譯程序生成系統(tǒng)為使

其所設(shè)計或生成的程序能在機(jī)器上正確運行,所需看

到和遵循的計算機(jī)屬性。它不包括機(jī)器內(nèi)部的數(shù)據(jù)流

和控制流、邏輯設(shè)計或器件設(shè)計等。

軟件和硬件的交界面

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

硬件

圖L4計算機(jī)系統(tǒng)軟硬件交界面

對于目前的通用型機(jī)器,計算機(jī)系統(tǒng)結(jié)構(gòu)(傳統(tǒng)機(jī)

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

(1)機(jī)器內(nèi)的數(shù)據(jù)表示,包括硬件能直接識別和處

理的數(shù)據(jù)類型和格式等;

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

類、表示和地址計算等;

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

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

定;

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

指令間的排序方式和控制機(jī)構(gòu)等;

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

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

(6)中斷機(jī)構(gòu),包括中斷的類型、中斷分級、中斷

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

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

機(jī)可以使用系統(tǒng)的全部指令和全部資源,而在目態(tài),

處理機(jī)只能執(zhí)行用戶程序;

(8)輸入輸出機(jī)構(gòu),包括輸入輸出設(shè)備的連結(jié)方

式,處理機(jī)/存儲器與輸入輸出設(shè)備間數(shù)據(jù)傳送的方式

與格式、傳送的數(shù)據(jù)量、以及輸入輸出操作的結(jié)束與

出錯標(biāo)志等;

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

護(hù)的支持等。

<Back4、

1.3計算機(jī)組成

1.3.1計算機(jī)組成的定義

計算機(jī)組成(computerorganization,又稱計算機(jī)設(shè)

計)是指計算機(jī)系統(tǒng)的邏輯實現(xiàn)。包括機(jī)器內(nèi)部的數(shù)

據(jù)流和控制流的組成以及邏輯設(shè)計等。它著眼于機(jī)器

內(nèi)各事件的排序方式與控制機(jī)構(gòu)、各部件的功能以及

各部件間的聯(lián)系。

計算機(jī)組成的設(shè)計是按所希望達(dá)到的性能價格比,

最佳、最合理的把各種設(shè)備和部件組成計算機(jī),以實

現(xiàn)所確定的計算機(jī)系統(tǒng)結(jié)構(gòu)。對傳統(tǒng)機(jī)器程序員來

說,計算機(jī)組成的設(shè)計內(nèi)容一般是透明的。

1.3.2計算機(jī)組成設(shè)計

計算機(jī)組成的任務(wù)是在計算機(jī)系統(tǒng)結(jié)構(gòu)確定分配

給硬件子系統(tǒng)的功能及其概念結(jié)構(gòu)之后,研究各組成

部分的內(nèi)部構(gòu)造和相互聯(lián)系,以實現(xiàn)機(jī)器指令級的各

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

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

配是計算機(jī)組成合理的重要標(biāo)志,因而相應(yīng)地就有許

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

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

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

組和堆棧等技術(shù)。

再如,為了使輸入輸出設(shè)備與處理機(jī)間的信息流量

達(dá)到平衡,人們研究出通道、外圍處理機(jī)等方式。為

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

多執(zhí)行部件等方式。在各功能部件的內(nèi)部結(jié)構(gòu)研究方

面,產(chǎn)生了許多組合邏輯、時序邏輯的高效設(shè)計方法

和結(jié)構(gòu)。

一般來講,計算機(jī)組成設(shè)計要確定的內(nèi)容應(yīng)包括:

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

的信息位數(shù);

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

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

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

于所需達(dá)到的機(jī)器速度、專用部件的使用頻度及允許

的價格等;

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

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

若對同一功能部件設(shè)置多個以降低共享度,但系統(tǒng)的

價格會隨之升高。

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

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

布處理方式;

(5)控制機(jī)構(gòu)的組成方式,如控制機(jī)構(gòu)是采用硬連

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

理或功能分布處理;

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

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

處理的事件如何排隊,如隨機(jī)、先進(jìn)先出、先進(jìn)后出、

優(yōu)先級、循環(huán)隊等不同方式;

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

的行為,以優(yōu)化性能和優(yōu)化處理;

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

術(shù)來提高可靠性。

<Back4、

1.4計算機(jī)實現(xiàn)

1.4.1計算機(jī)實現(xiàn)的定義

計算機(jī)實現(xiàn)(computerimplementation)是指計算機(jī)

組成的物理實現(xiàn)。它包括處理機(jī)、主存等部件的物理

結(jié)構(gòu),器件的集成度和速度,信號傳輸,器件、模塊、

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

冷卻、裝配等技術(shù)以及有關(guān)的制造技術(shù)和工藝等。它

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

現(xiàn)技術(shù)中起著主導(dǎo)作用。

1.4.2器件技術(shù)研究的內(nèi)容

器件技術(shù)研究的內(nèi)容包括:處理機(jī)、主存等部件的

物理結(jié)構(gòu),器件的集成度和速度,專用器件的設(shè)計,

信號傳輸?shù)取@?,集成電路采用TTL類型還是MOS

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

連線,集成電路內(nèi)部的電容、電阻的設(shè)計,集成電路

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

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

特性、響應(yīng)特性、功耗也各有不同。隨著時間的推

移,芯片的封裝技術(shù)已經(jīng)歷了好幾代的變遷,從DIP、

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

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

體管、中小規(guī)模集成電路、大規(guī)模集成電路,發(fā)展到

現(xiàn)在的超大規(guī)模集成電路,其生產(chǎn)工藝從上世紀(jì)70年

代的10微米發(fā)展到現(xiàn)在的0.09微米的水平,只用了不到

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

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

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

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

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

核心,使用0.18微米生產(chǎn)工藝的Pentium4處理器的集

成度就達(dá)到3400萬個晶體管;

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

產(chǎn)工藝的Pentium42.53GHz處理器其集成度達(dá)到5500

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

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

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

體管。

計算機(jī)所用的基本器件不僅由分立器件發(fā)展到集成

電路,其速度也有顯著的提高。器件的發(fā)展是推動系統(tǒng)

結(jié)構(gòu)和組成前進(jìn)的關(guān)鍵因素和主要動力。隨著生產(chǎn)工藝

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

單個晶體管的尺寸已經(jīng)從微米級縮小到納米級,響應(yīng)速

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

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

10G的水平提供了技術(shù)保障。器件技術(shù)的快速發(fā)展,使

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

低;同時,也為各種新的系統(tǒng)結(jié)構(gòu)和組成實現(xiàn)提供了硬

件支持,并使計算機(jī)的應(yīng)用得到快速普及。

器件技術(shù)的發(fā)展還促進(jìn)了算法、語言和軟件的發(fā)

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

能并行處理機(jī)和通信網(wǎng)絡(luò)的發(fā)展。由數(shù)百甚至上萬個

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

算法、并行語言及相關(guān)應(yīng)用軟件和操作系統(tǒng),以使系

統(tǒng)的規(guī)模和處理速度能隨結(jié)點處理器數(shù)的增加而顯著

提高。在2002年全球高性能計算機(jī)500強(qiáng)的排行榜上,

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

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

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

35.86TFLOPS,由5120個處理器構(gòu)成。IBM公司研制的

由8192個處理器構(gòu)成的“ASCIWhite-Pacific”超級計算

機(jī),以7.3TFLOPS排名第二。由我國聯(lián)想公司研制的

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

1.027TFLOPS,排名第43。

1.4.3系統(tǒng)結(jié)構(gòu)、組成、實現(xiàn)三者的關(guān)系和相互影響

計算機(jī)系統(tǒng)結(jié)構(gòu)、計算機(jī)組成和計算機(jī)實現(xiàn)是三個

互不相同的概念,但它們是互相聯(lián)系和相互影響的。

計算機(jī)系統(tǒng)結(jié)構(gòu)是計算機(jī)系統(tǒng)的軟、硬件分界面,是

機(jī)器語言程序設(shè)計者或是編譯程序生成系統(tǒng)為使其設(shè)

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

性;計算機(jī)組成是計算機(jī)系統(tǒng)結(jié)構(gòu)的邏輯實現(xiàn);計算

機(jī)實現(xiàn)是計算機(jī)組成的物理實現(xiàn)。

具有相同系統(tǒng)結(jié)構(gòu)的計算機(jī)可以采用不同的組成。

例如,具有相同指令系統(tǒng)的計算機(jī),指令的取出、譯

碼、取操作數(shù)、運算、存結(jié)果既可以采用順序方式進(jìn)

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

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

實現(xiàn),也可以通過加法器重復(fù)相加、移位來實現(xiàn),這

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

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

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

價格。

一種系統(tǒng)結(jié)構(gòu)可以有多種計算機(jī)組成,同樣,一種

計算機(jī)組成可以采用多種不同的計算機(jī)實現(xiàn)。例如,

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

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

作頻率較高的CPU,來實現(xiàn)較高的運算速度,也可以

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

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

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

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

既可以選擇響應(yīng)時間速度較快的芯片,也可以選擇響應(yīng)

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

素之間進(jìn)行選擇;換句話說,采用什么樣的實現(xiàn)技術(shù)

主要考慮所要達(dá)到的性能價格比及器件技術(shù)的現(xiàn)狀。

反過來,計算機(jī)實現(xiàn)是計算機(jī)系統(tǒng)結(jié)構(gòu)和計算機(jī)組

成的基礎(chǔ),其技術(shù)的發(fā)展對計算機(jī)系統(tǒng)結(jié)構(gòu)有著很大

的影響,而計算機(jī)組成也會影響計算機(jī)系統(tǒng)結(jié)構(gòu)。例

如器件的發(fā)展使系統(tǒng)結(jié)構(gòu)由大型機(jī)下移到小型機(jī)及微

機(jī)的速度加快。早期用于大型機(jī)的各種數(shù)據(jù)表示、指

令系統(tǒng)、操作系統(tǒng)很快應(yīng)用到小型機(jī)以及微機(jī)上。例

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

大型機(jī)才使用的超標(biāo)量技術(shù),并引入了VLIW技術(shù),有

些機(jī)器還使用了超流水線技術(shù)。

系統(tǒng)結(jié)構(gòu)的設(shè)計必須結(jié)合應(yīng)用考慮,為軟件和算

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

能采用和準(zhǔn)備采用的組成技術(shù)。即計算機(jī)系統(tǒng)結(jié)構(gòu)的

設(shè)計應(yīng)考慮減少對各種組成及實現(xiàn)技術(shù)的使用限制,

在一種系統(tǒng)結(jié)構(gòu)中,應(yīng)允許有多種不同的組成和實現(xiàn)

技術(shù)。既能方便的在低檔機(jī)器上用簡單、低成本的組

成實現(xiàn),也能在高檔機(jī)器上以較高的成本、復(fù)雜的組

成實現(xiàn)。例如,在IBM370系列機(jī)中,由低到高有不同

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

令系統(tǒng),

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

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

數(shù)據(jù)通路寬度的組成和實現(xiàn)上,不同檔次機(jī)器可以分

別采用8位、16位、32位和64位。IBM370系列機(jī)采用

通道方式進(jìn)行輸入輸出,其組成又可以分為在低檔機(jī)

器中采用的結(jié)合型通道和在高檔機(jī)器中采用的獨立型

通道。

在不同時期,系統(tǒng)結(jié)構(gòu)、組成和實現(xiàn)所包含的內(nèi)容

會有所不同。在某些計算機(jī)系統(tǒng)中作為系統(tǒng)結(jié)構(gòu)的內(nèi)

容,在另一些計算機(jī)系統(tǒng)中可能是組成和實現(xiàn)的內(nèi)容。

隨著各種新技術(shù)的出現(xiàn)和發(fā)展,特別是器件技術(shù)的發(fā)

展,各種功能都集成到一個芯片上,使系統(tǒng)結(jié)構(gòu)、組

成和實現(xiàn)融合于一體,系統(tǒng)結(jié)構(gòu)、組成和實現(xiàn)三者之

間的界限越來越模糊。

<Back*

1.5計算機(jī)性能

計算機(jī)系統(tǒng)的性能指標(biāo),主要取決于計算機(jī)的本質(zhì)

屬性,即時空屬性。各項指標(biāo)都圍繞著它的本質(zhì)屬性

來定義。時間是衡量計算機(jī)性能的標(biāo)準(zhǔn)。同樣的工作

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

一固定而且可靠的標(biāo)準(zhǔn)就是真正執(zhí)行程序的時間。

151性能因子CPI

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

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

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

即計算機(jī)內(nèi)部每一基本功能操作在一個或多個時鐘周

期的時間內(nèi)完成。時鐘周期的單位通常使用納秒

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

通常使用MHz或GHz來表示。

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

公式表示:

(1.1)

TCPU=【N義CPIxTc

在式1.1中,表示要執(zhí)行程序中的指令總數(shù),CPI

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

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

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

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

得到CPI的表達(dá)式:

執(zhí)行整個程序所需CPU時鐘周期數(shù)般.

二程序中指令總數(shù)

在程序執(zhí)行過程中,要用到不同類型的指令,令I(lǐng)表

示第i類指令在程序中執(zhí)行次數(shù),CP1表示執(zhí)行一條第i

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

種類數(shù)。則式1.2可以改寫為:

n

£cPIjXli

i=l

CPI=(1.3)

N

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

CPI=E(CPIiXl』N)(L4)

i=l

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

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

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

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

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

C

INxCPI

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

其中某一項或幾項因素來實現(xiàn)。事實上,這三個因素

是相互關(guān)聯(lián)的。時鐘頻率Q由硬件技術(shù)和組成技術(shù)決

定,CPI與組成和指令集有關(guān),而指令數(shù)IN則與指令集

和編譯技術(shù)有關(guān)。

1.5.2計算機(jī)性能常用指標(biāo)MIPS和MFLOPS

1.MIPS(millioninstructionspersecond,每秒百萬次

指令)

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

的程序,MIPS定義為:

MIPS==—(1.6)

66

TCPUxlOCPZxlO

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

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

L6可得TE的表達(dá)式:

T=-----

MIPSxElO6(1.7)

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

PentiumII450處理機(jī)的運算速度。

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

此,應(yīng)用式1.6可求出:

fc450xlQ6

iMVlIiPlS二900MIPS

°Pentiumll45QCP/xlO60.5xlO6

BPPentiumll450處理機(jī)的運算速度為900MlpS。

顯然,既然MIPS是單位時間內(nèi)的執(zhí)行次數(shù),所以機(jī)

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

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

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

有三個方面的缺陷:

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

集不同的機(jī)器的性能優(yōu)劣時,其結(jié)果是很不準(zhǔn)確的。

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

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

不同,其CPI也會不同,其MIPS計算結(jié)果也會因為程

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

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

件浮點運算部件的機(jī)器。因為浮點運算遠(yuǎn)慢于整數(shù)運

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

但是軟件實現(xiàn)浮點運算的MIPS高。然而硬件實現(xiàn)浮點

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

在使用MIPS時應(yīng)注意它的應(yīng)用范圍,它只適宜于評

估標(biāo)量機(jī),因為在標(biāo)量機(jī)中執(zhí)行一條指令,一般可得

到一個運算結(jié)果,而向量機(jī)中,執(zhí)行一條向量指令通

??傻玫蕉鄠€運算結(jié)果。因此,用MIPS來衡量向量機(jī)

是不合適的。

2.MFLOPS(millionfloatingpointoperationsper

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

MFLOPS可用如下公式表示:

1FN

MFLOPS=

6(1.8)

TExio

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

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

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

體現(xiàn)機(jī)器的整體性能。例如編譯程序,不管機(jī)器的性

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

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

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

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

不同計算機(jī)上時往往會執(zhí)行不同的指令數(shù),但所執(zhí)行

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

單位時,應(yīng)注意它的值不但會隨整數(shù)、浮點數(shù)操作混

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

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

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

法組成的程序要高。

MFLOPS和MIPS兩個衡量值之間的量值關(guān)系,沒

有統(tǒng)一標(biāo)準(zhǔn),一般認(rèn)為在標(biāo)量計算機(jī)中執(zhí)行一次浮點

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

1MFLOPS^3MIPSo

例L2用一臺40MHz處理機(jī)執(zhí)行標(biāo)準(zhǔn)測試程序,程

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

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

解:總的指令數(shù)為:

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

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

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

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

⑴有效CPI為:

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

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

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

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

表1.1標(biāo)準(zhǔn)測試程序的混合指令數(shù)和相應(yīng)

所需的時鐘周期數(shù)

指令類型整數(shù)運算數(shù)據(jù)傳送浮點操作控制傳送

指令數(shù)4500032000150008000

CPI1222

例L3假定你是一個計算機(jī)設(shè)計者,已設(shè)想了一個

優(yōu)化的設(shè)計方案,它能減少過程調(diào)用和返回所需的取/

存指令次數(shù)。為了進(jìn)行驗證,對未加優(yōu)化和已優(yōu)化的

方案進(jìn)行實驗測試,其中假定所使用的是相同的優(yōu)化

編譯器。實驗測得的結(jié)果如下:

▲優(yōu)化方案的時鐘周期比未優(yōu)化的快15%;

▲未優(yōu)化方案中的取/存指令數(shù)占總指令數(shù)的

30%;

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

其它指令,兩種方案的動態(tài)執(zhí)行數(shù)沒有變化;

▲未優(yōu)化方案的所有指令執(zhí)行均只需1個時鐘周

期,而優(yōu)化方案只有取/存指令執(zhí)行需要2個時鐘周

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

試計算:

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

(2)優(yōu)化方案加速比。

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

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

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

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

(■未優(yōu)化工優(yōu)化)工未優(yōu)化二0?15

解之,得:,優(yōu)化=0.85,未優(yōu)化

優(yōu)化方案的加速比為:

Sp=未優(yōu)化方案程序的執(zhí)行時間/已優(yōu)化方案程序的執(zhí)行

時間

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

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

心1.075

3.用基準(zhǔn)程序來評價計算機(jī)性能

基準(zhǔn)程序(benchmark)是性能測試程序,并假設(shè)它

能刻劃某一類應(yīng)用問題的處理和數(shù)據(jù)移動特征?;鶞?zhǔn)

程序用來測量和預(yù)測計算機(jī)系統(tǒng)的性能,并能提示它

們的體系結(jié)構(gòu)的弱點和優(yōu)點?;鶞?zhǔn)程序組(benchmark

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

定規(guī)則,包括輸入數(shù)據(jù)、輸出結(jié)果以及性能指標(biāo)。基

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

基準(zhǔn)程序可分為宏基準(zhǔn)程序和微基準(zhǔn)程序兩大類。

宏基準(zhǔn)程序用來測量一個計算機(jī)系統(tǒng)的總體性能,而

微基準(zhǔn)程序則是用來測量一個計算機(jī)系統(tǒng)某一特定方

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

系統(tǒng)性能及網(wǎng)絡(luò)性能等等。表1.2示出了幾個具有代表

性的微基準(zhǔn)程序組和宏基準(zhǔn)程序組。

SPEC(StandardPerformanceEvaluationCorporation)

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

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

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

MIPS、SGLSUN、Unisys等;SPEC基準(zhǔn)測試程序能

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

為事實上的工業(yè)標(biāo)準(zhǔn)。隨著因特網(wǎng)的快速發(fā)展,各種

各樣的新技術(shù)的應(yīng)用,SPEC也不斷變化和增加其測試

的范圍和內(nèi)容。

SPEC已經(jīng)從早期只進(jìn)行CPU性能測試發(fā)展到電子

商務(wù)、萬維網(wǎng)服務(wù)、電子郵件服務(wù)、高性能機(jī)群計算

機(jī)等等多方面應(yīng)用的測試。例如,

SPECjAppServer2002應(yīng)用于JAVA應(yīng)用服務(wù)器性能測

試,SPECMAIL2001提供電子郵件服務(wù)器性能測試,

SPECweb99則是用來評估萬維網(wǎng)服務(wù)器性能的測試。

表1.2幾個具有代表性的微基準(zhǔn)程序組和宏基

準(zhǔn)程序組

類型名稱測試范圍

微基準(zhǔn)程序UNPACK數(shù)值計算(線性代數(shù))

LMBENCHunix中的系統(tǒng)調(diào)用和數(shù)據(jù)移動

STREAM存儲器帶寬

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

PARKBENCH并行計算

SPEC混合基準(zhǔn)程序系列

Splash并行計算

STAP信號處理

TPC商業(yè)應(yīng)用

在1989年10月,SPEC發(fā)布了第一個基準(zhǔn)測試程

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

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

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

個定點程序和14個浮點程序,測試結(jié)果用SPECint92和

SPECfp92表示o1995年推出SPECint95和SPECfp95。

到了1999年,發(fā)布了測試標(biāo)準(zhǔn)為SPECCPU2000的第一

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

SPECCPU2000由CINT2000和CFP2000組成,其中

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

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

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

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

在各種不同應(yīng)用環(huán)境下計算機(jī)的整數(shù)運算能力的測

試,其結(jié)果用SPECint2000表示。

表1.3CINT2000的基準(zhǔn)測試程序

基準(zhǔn)測試程序編程語言設(shè)計者基準(zhǔn)時間說明

gzipANSICJean-LoupGailly1400數(shù)據(jù)壓縮

vprANSICVaughnBetz1400FPGA電路布線

gccANSIC1100C優(yōu)化編譯器

mcfANSICAndreasLoebel1800組合優(yōu)化(交通運輸調(diào)度)

craftyANSICRobertHyatt1000國際象棋游戲

parserANSICDannySleator,Davy1800字處理

Temperley

eonC++PeterShirley,KenChiu,1300計算機(jī)可視化

et.al.

perlbmkANSICLarryWall,et.al.1800Perl程序設(shè)計語言

gapANSICMartinSchoenert1100群論、解釋程序

vortexANSICPeterR.Homan1900面向?qū)ο蟮臄?shù)據(jù)庫

bzip2ANSICJulianSeward1500數(shù)據(jù)壓縮

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主要完成在不同應(yīng)

用環(huán)境下計算機(jī)的浮點運算能力測試,其結(jié)果用

SPECfp2000表示。

表1.4CFP2000的基準(zhǔn)測試程序

測試程序編程語言設(shè)計者基準(zhǔn)時說明

wupwiseFortran77BjoernMedeke1600量子色動力學(xué)

swimFortran77PaulN.Swarztrauber3100淺水區(qū)建模

mgridFortran77EricBarszcz,PaulO.Frederickson18003D勢場

appluFortran77SisiraWeeratunga2100拋物線/橢圓型偏微

分方程

mesaCBrianE.Paul14003D圖形庫

galgelFortran90AlexanderGelfgat2900計算機(jī)流體力學(xué)

artcCharlesRoberson&MaxDomeika2600圖象識別/神經(jīng)網(wǎng)絡(luò)

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

Kallivokas中的傳播

facerecFortran90JanC.Vorbrueggen1900圖象處理

ammpCRobertW.Harrison2200計算化學(xué)

lucasFortran90ErnstMayer2000數(shù)論:原始測試

fma3dFortran90SamuelW.Key2100有限元法碰撞仿真

sixtrackFortran77FrankSchmidt1100高能核物理加速器

設(shè)計

apsiFortran77ZaphirisD.Christidis2600污染物分布(氣象

學(xué))

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

準(zhǔn)測試程序包含了不同領(lǐng)域間的應(yīng)用,如天氣預(yù)報、

流體力學(xué)、數(shù)據(jù)壓縮、數(shù)據(jù)庫、編譯、物理、化學(xué)、

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

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

測試結(jié)果。

SPECCPU2000基準(zhǔn)測試程序選擇SunUltra5_10I

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

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

SPECint2000值是對CINT2000基準(zhǔn)程序組中12個基準(zhǔn)

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

值得到的。同樣,SPECfp2000值是對CFP2000基準(zhǔn)程

序組中14個基準(zhǔn)程序速率與SunUltra5_10工作站速率

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

1.5.3計算機(jī)系統(tǒng)結(jié)構(gòu)的性能評價標(biāo)準(zhǔn)

關(guān)于計算機(jī)的性能評價,通常用峰值性能(peak

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

標(biāo)。峰值性能是指在理想情況下計算機(jī)系統(tǒng)可獲得的

最高理論性能值,它不能反映系統(tǒng)的實際性能。實際

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

35%(因算法而異)。

持續(xù)性能的表示常用算術(shù)平均值、調(diào)和平均值和

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

計算公式表示如下:

1.算術(shù)性能平均值A(chǔ)m

以程序執(zhí)行的速率Ri來進(jìn)行性能評價,則有

+,+?..+」

(1.9)

〃日n曰TnT】

Tn

其中Tj是第i個程序的執(zhí)行時間,式1.9得到的結(jié)果是

n個程序的平均執(zhí)行速率。若根據(jù)執(zhí)行時間進(jìn)行評價,

則平均執(zhí)行時間是各執(zhí)行時間的算術(shù)平均值。式1.9則

改寫為:

]n

4=—X*(1」。)

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

表1.5SPECCPU2000測試結(jié)果

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.調(diào)和性能平均值Hm

調(diào)和性能平均值Hm的表達(dá)式為:

Hnnn

emnn(1.11)

£1學(xué)Tl+小

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

間的總和成反比關(guān)系,從執(zhí)行時間是衡量性能指標(biāo)的

唯一標(biāo)準(zhǔn)這一點來看,用Hm值來衡量計算機(jī)系統(tǒng)性能

是較為精確的。

3.幾何性能平均值Gm

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

其表達(dá)式如下:

(1.12)

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

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

此在對各種機(jī)器性能比較而進(jìn)行性能規(guī)格化(即以某

臺機(jī)器性能作參考標(biāo)準(zhǔn),其它機(jī)器性能除以該參考標(biāo)

準(zhǔn)所得到的值)過程中,不論取哪一臺作參考機(jī),Gm

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

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

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

例1.4已知四個程序在三臺計算機(jī)上的執(zhí)行時間

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

條指令要執(zhí)行,計算這三臺計算機(jī)中每臺機(jī)器上每個

程序的MIPS速率。根據(jù)這些速率值,能否得出有關(guān)三

臺計算機(jī)相對性能的明確結(jié)論?能否找到一種將它們

統(tǒng)計排序的方法,試說明理由。

表1.6四個程序在三臺計算機(jī)上的執(zhí)行時間

執(zhí)行時間(s)

程序計算機(jī)A計算機(jī)B計算機(jī)C

程序111020

程序2100010020

程序3500100050

程序4100800100

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

MIPS速率如表1.7所示。

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

MIPS速率(MIPS)

程序計算機(jī)A計算機(jī)B計算機(jī)C

程序1100105

程序20.115

程序30.20.12

程序410.1251

(2)以A機(jī)為標(biāo)準(zhǔn)的規(guī)格化測試值和Gm/GmA值如表1.8所示。

表1.8以A機(jī)為標(biāo)準(zhǔn)的規(guī)格化測試值和Gm/GmA值

執(zhí)行速率Ri(MIPS)

程序計算機(jī)A計算機(jī)B計算機(jī)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機(jī)狄).0625場

GmC>mA>GmB

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

之,B的性能最差。

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

現(xiàn)這一情況,就需要對各程序的執(zhí)行速率或執(zhí)行時間

加上相應(yīng)的權(quán)值。例如,一個任務(wù)由三個程序完成,

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

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

其與對應(yīng)程序的執(zhí)行速率或執(zhí)行時間相乘,再累加求

和,即可得到加權(quán)算術(shù)平均值。

同理,可以得到加權(quán)幾何平均值和加權(quán)調(diào)和平均

值。在這里,用Wi來表示第i個程序的權(quán)值,則對應(yīng)表

達(dá)式如下:

加權(quán)算術(shù)平均值:

nnTTZ

(1.13)

i=\i-l1i

加權(quán)調(diào)和平均值:

.屋

%=少工尸(1.14)

i=li-lKi

加權(quán)幾何平均值:

n

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

Gm=Yl^=(R1產(chǎn)

i=\

1.5.4計算機(jī)系統(tǒng)設(shè)計的定量原理

這里將討論在計算機(jī)系統(tǒng)設(shè)計中應(yīng)遵循的一些重要

定量原理和應(yīng)注意的現(xiàn)象。

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

這是最重要也是最廣泛采用的計算機(jī)設(shè)計準(zhǔn)則。

因為加快處理頻繁出現(xiàn)事件對系統(tǒng)的影響遠(yuǎn)比加速處

理很少出現(xiàn)事件的影響要大。使經(jīng)常性事件的處理速

度加快能明顯提高整個系統(tǒng)的性能。一般說來,經(jīng)常

性事件的處理比較簡單,因此比不經(jīng)常出現(xiàn)的事件處

理起來要快。

例如,在CPU中兩個數(shù)進(jìn)行相加運算時,相加結(jié)

果可能出現(xiàn)溢出現(xiàn)象,也可能無溢出發(fā)生,顯然經(jīng)常

出現(xiàn)的事件是不發(fā)生溢出的情況,而溢出是偶然發(fā)生

的事件。因此,在設(shè)計時應(yīng)優(yōu)化不發(fā)生溢出的情況,

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

理則不必過多考慮優(yōu)化。因為發(fā)生溢出的概率很小,

即使發(fā)生了,處理得慢一些也不會對系統(tǒng)性能產(chǎn)生很

大的影響。

在計算機(jī)設(shè)計過程中經(jīng)常會遇到上述情況,如何

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

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

2.阿姆達(dá)爾(Amdahl)定律

阿姆達(dá)爾定律是1967年由IBM360系列機(jī)的主要設(shè)計

者阿姆達(dá)爾首先提出來的。阿姆達(dá)爾定律是指:系統(tǒng)

中對某一部件采用某種更快執(zhí)行方式所能獲得的系統(tǒng)

性能改進(jìn)程度,取決于這種執(zhí)行方式被使用的頻率,

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

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

進(jìn)或執(zhí)行時間的加速比。

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

務(wù)的時間,用丁.卬表示采用某種增強(qiáng)功能措施后計算

機(jī)完成同一任務(wù)所需時間。以二卬表示可采取增強(qiáng)功能

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

%w表示采用增強(qiáng)功能措施比不采用增強(qiáng)功能可加快執(zhí)

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

表不:

T

cold1

bp一~(1.16)

new(1—fnew)+fnew/^new

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

的百分比,顯然:

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

(2)當(dāng)一^8時,分母中fne/Zw項變?yōu)椤?,此時

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

限值受值的約束。

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

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

的40%,則采用此增強(qiáng)功能方法后,能使整個系統(tǒng)的

性能提高多少?

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

S=______i______=_i—=156

P(1-0.4)+0.4/100.64.

即采用此增強(qiáng)功能方法后,能使整個系統(tǒng)的性能

提高為原來的1.56倍。

例1.6如果某一計算任務(wù)用向量方式求解比用標(biāo)

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

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

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

達(dá)式。

(2)為達(dá)到加速比2,可向量化的百分比應(yīng)為多

少?

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

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

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

]

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

(2)由題意:

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

向量化的百分比應(yīng)為52.6%o

(3)由題意:

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

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

3.程序訪問的局部性規(guī)律

所謂程序訪問局部性是指程序執(zhí)行中,呈現(xiàn)出頻

繁重新使用那些最近已被使用過的數(shù)據(jù)和指令的規(guī)律。

統(tǒng)計表明一個程序執(zhí)行時間中的90%是花費在10%程序

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

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

指令系統(tǒng)時提供了指導(dǎo),

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論