我們強調計算機系統的價效比,強調計算機的效能設計,那麼效能是如何衡量的呢? 1
、計算機效能的評測
thoughput
):在單位時間內所能完成的工作量。
為了比較不同設計的差別,我們通常要對兩台機器的效能進行比較。假設兩台計算機為x和
y,「x比
y快」的意思是:對於給定任務,
x的響應時間比
y少。通常「
x的效能是y的
n倍」是指:
y的響應時間
/x的響應時間=n
由於響應時間與效能成反比,所以上式就變成:n=
y的響應時間
/x的響應時間=
x的效能
/y的效能
無論是流量還是響應時間,都是以時間來度量的。它們的相同點都認為能夠以最短時間完成指定任務的計算機就是最快的:這兩者之間的不同點就是響應時間通常針對單任務,而流量往往針對多工。目前公認的相對可靠的效能評測方法,是使用真實程式的響應時間來衡量。實際上,如果不以響應時間為衡量標準或沒有使用真實程式,則容易導致錯誤的效能評價結論,對計算機設計產生誤導甚至引發錯誤。
響應時間有多種定義,其中最直觀的定義是計算機完成某一任務所花費的全部時間,包括訪問磁碟,訪問儲存器,輸入
/輸出、作業系統開銷等。仔細分析一下就會發現,在多工作業系統中,
cpu在乙個程式等待
i/o時可以處理另乙個程式,從而提高系統的執行效率。在討論效能時必須把這一點考慮進去。「
cpu時間」的定義就體現了這一點,它表示
cpu工作的時間,不包含
i/o等待時間及執行其它程式的時間。很明顯,使用者看到的響應時間是程式完成任務所花費的全部是間,而不是
cpu時間。
cpu時間還可以細分為使用者
cpu時間和系統
cpu時間,前者表示使用者程式所花費的
cpu時間,後者表示使用者程式執行期間作業系統花費的
cpu時間。
上面我們明確了基於響應時間的效能度量方法和基於
cpu時間的效能度量方法。這裡我們認為「系統效能」對應於響應時間,而「
cpu效能」對應於使用者
cpu時間。 2
、效能設計和評測的基本原則
我們已經知道如何定義、度量和比較計算機系統的效能,下面將討論計算機體系結構設計和分析中最經常使用的
3條基本原則和方法。 1
)大概率事件優先原則
大概率事件優先原則是計算機體系結構設計中最重要和最常用的原則。這個原則的基本思想是:對於大概率事件(最常見的事件),賦予它優先的處理權和資源使用權,以獲得全域性的最有結果。在進行計算機設計時,如果需要權衡,就必須側重常見時間,使最常發生事件(大概率事件)優先得到響應。此原則也適用於資源分配。著重改進大概率事件效能,能夠明顯提高計算機效能。另外,大概率事件通常比小概率事件簡單,而且容易使之更快完成。例如,
cpu在進行家法運算時,運算結果無溢位為大概率事件,而溢位為小概率事件。因為我們就應該針對無溢位情況進行
cpu優化設計,加快無溢位時加法計算速度。雖然發生溢位時機器速度可能會減慢,但由於溢位事件發生概率小,所以總體上機器效能還是提高了。
重要的是要能夠確定什麼是大概率事件,同時要說明針對該事件進行的改進將如何提高機器的效能。 2
)amdahl定律
amdahl
定律既可以用來確定系統中對效能限制最大的不見,也可以用來計算通過改進某些部件所獲得的系統效能的提高。
amdahl
定律指出:加快某部件執行速度所獲得的系統效能加速比,受限於該部件在系統中所佔的重要性。 受限
amdahl
定律定義了加速比這個概念。假設我們對機器進行某種改經,那麼機器系統的加速比就是:
系統加速比=改進後系統效能
/改進前系統效能 或者
系統加速比=改進前總執行時間
/改進後總執行時間
系統加速比告訴我們改進後的機器比改進前快多少。
amdahl
定律使我們能夠快速得出改進所獲得的效益。
系統加速比依賴於兩個因素: (
1)可改進部分在原系統計算時間中所佔的比例
例如:乙個需執行
60秒的程式中有
20秒的運算可以加速,那麼該比例就是
20/60
。這個值用「可改進比例」表示,它總是小於等於1的。
(2)可改進部分改進以後的效能提高
例如:系統改進後執行程式,其中可改進部分花費
2秒時間,而改進前該部分需花費
5秒,則效能提高為
5/2。用「部件加速比」表示效能提高比,一般情況下它是大於1的。
部件改進後,系統的總執行時間等於不可改進部分的執行時間加上可改進部分改進後的執行時間,即:
改進後的總執行時間=(
1-可改進比例)
*改進前總執行時間
+(可改進比例
*改進前總執行時間
)/部件加速比
=改進前總執行時間
*[(1-
可改進比例
)+可改進比例
/部件加速比]
系統加速比為改進前與改進後總執行時間之比,即:
系統加速比=改進前總執行時間
/改進後總執行時間=
1/[(1-
可改進比例
)+可改進比例
/部件加速比]
amdahl
定律的三個推論: a
、amdahl
定律還表達了一種效能增加的遞減規則:如果僅僅對計算機中的某一部分做效能改進,則改進越多,系統獲得的效果越小; b
、如果只針對整個任務的一部分進行優化,那麼所獲得的加速比不大於
1/(1-
可改進比例);
c、amdahl
定律告訴我們如何衡量乙個「好」的計算機系統:具有高價效比的計算機是乙個頻寬平衡的系統,而不是看它使用的某些部件的效能。 3
、程式的區域性性原理
程式的區域性性原理是指程式總是趨向於使用最近使用過的資料和指令,也就是說程式執行時所訪問的儲存器位址分布不是隨機的,而是相對地簇集;這種簇集包括指令和資料兩部分。程式區域性性包括程式的時間區域性性和程式的空間區域性性。程式的時間區域性性是指程式即將用到的資訊可能就是目前正在使用的資訊。程式的空間區域性性是指程式即將用到的資訊可能與目前正在使用的資訊在空間上相鄰或者臨近。
程式的區域性性原理是計算機體系結構設計的基礎之一。
用計算機語言的愛情表白
我能抽象出整個世界 但是我不能抽象出你 因為你在我心中是那麼的具體 所以我的世界並不完整 我可以過載甚至覆蓋這個世界裡的任何一種方法 但是我卻不能過載對你的思念 也許命中註定了 你在我的世界裡永遠的烙上了靜態的屬性 而我不慎呼叫了愛你這個方法 當我義無返顧的把自己作為引數傳進這個方法時 我才發現愛上...
關於計算機效能的術語
1.2.響應性 不同於處理請求,它是系統響應請求的速度有多快。這個指標在許多系統裡非常重要,因為對於一些系統而言,如果其響應性太慢,使用者將難以忍受 儘管其響應時間可能不慢。如果在請求處理期間,系統一直處於等待狀態,則系統的響應性和響應時間是相同的。然而,如果能夠在處理直正完成之前就給使用者一些資訊...
計算機CPU效能的度量
我們在使用計算機,或者編寫程式時,都希望通過一定的引數去度量計算機或者程式的效能。時間常用來度量計算機效能。完成任務所需時間越少,計算機越快。這是我們期望看到的。時間是唯一能夠被完全可靠測量的計算機效能指標。我們都知道計算機中乙個重要的效能指標 主頻,又叫時鐘頻率,單位一般是hz。若一台計算機的主頻...