電腦性能 目录 性能度量 定義 技術量測資料 性能方程式 相關條目 參考資料 导航菜单10.1.1.123.501The Incredible Shrinking CPU"Brainiacs, Speed Demons, and Farewell"
電腦性能
電腦電腦軟體應用軟體軟體品質人机交互度量可用性反應時間信道容量頻寛吞吐量可扩放性效能功耗比壓縮比加速倍率CPU基準測試基準測試流水線快取超純量分支預測
電腦性能一般會以電腦系統在指定時間和使用資源的條件下,所完成工作的數量來表示。
依上下文的不同,電腦性能的「良好」可能包括以下項目中的一項或幾項:
- 快速的反應時間
- 高吞吐量(處理工作的速度)
資源的使用率。- 電腦系統或應用程式的高可用性
- 快速(或高壓縮率)的数据压缩及解壓縮
- 高頻寬或是快速的資料傳輸時間
電腦軟體的性能,特別是應用軟體的反應時間,是軟體品質的內容之一,在人机交互中也很重要。
目录
1 性能度量
2 定義
3 技術量測資料
4 性能方程式
5 相關條目
6 參考資料
性能度量
和電腦性能有關的度量包括可用性、反應時間、信道容量、延遲 (工程)、頻寛、吞吐量、相對效率、可扩放性、效能功耗比、壓縮比、指令路徑長度及加速倍率。也可以利用CPU的基準測試[1]。
定義
電腦系統的性能可以用可量測的技術用詞來表示,會用到一個或多個上述的度量。性能可以用以下的方法表示:
- 和其他系統比較,或是將系統變更前後的性能相比較
- 以絕對度量來表示,例如符合合約上所列的功能
以上的定義用到一些科技相關的術語。以下是科學家阿诺·艾伦所提出,比較可以讓非科技背景聽眾瞭解的定義:
在「電腦性能」一詞中提到的「性能」其實和其他情形下提到的性能一様,其性能是指「電腦可以將它應該要完成的工作做到多好?」[2]
技術量測資料
有許多的技術量測資料間接的會影響電腦的性能。
由於測試電腦的速度及性能需執行許多的程式,因此開發了基準測試軟體整合這些程式。以下是一個重要的量測資料:
指令每秒-大部份的消費者考慮電腦架構時,會希望可以執行許多現有的軟體,有時會直接用工作頻率來選擇特定的CPU,相同架構的電腦,MIPS越高表示其速度越快,但不同架構的電腦,無法直接比較其MIPS(參考兆赫神話)。
FLOPS-每秒進行的浮點運算次數,在選擇科學計算用的電腦時格外重要。
效能功耗比-平行系統(例如Google的機房)的設計者會依效能功耗比來選擇CPU,因為CPU功耗的成本大於CPU本身的成本。- 有些平行電腦的設計者會以單位成本的速度來選擇CPU。
- 一些實時運算系統的設計者需確保最壞情形下的響應,若CPU的中斷延遲較小,及其有確定性的響應時較容易確保。
- 若設計者直接使用組合語言開發系統,會希望CPU支援多功能的指令集。
- 低功率-針對有限能源供應的系統(例如用太陽能、電池、或人力發電)。
- 體積小或重量輕-特別針對可攜的嵌入式系統及太空用的系統。
- 環境影響-減少在電腦生產時、使用時及回收階段對環境的影響,也包括減少廢棄物及有害物質(參考綠色計算)
百萬更新每秒-量測RAM可允許的最快更新速度。
有時CPU設計者有辦法提昇其中一項特性,又不會犧牲其他特性,例如使用最好最快的電晶體來設計CPU,此時就可以提昇CPU的整體性能。
不過有時若過份強調其中一項特性,往往會使其他重要特性變差,因此反而讓整體的性能的變差,例如只強調CPU高MIPS,高工作頻率時,可能會使功率提高,效能功耗比也可能下降。
性能方程式
執行某特定基準測試軟體需要的時間t為
t=N∗C/fdisplaystyle t=N*C/f,或者可以等效表示為下式
P=I∗f/Ndisplaystyle P=I*f/N[3]
其中
P = 1/t,是用執行時間的倒數來表示的性能。
N 是實際執行(組合語言)指令的個數(指令路徑長度)。N顯著的受到指令集代碼密度的影響。N的數值無法透過高级语言源代碼的行數來計算得知。可以由指令集模擬器精確計算,或者可以利用估計的方式,一方面利用各指令分佈頻率的數值(可能是實際值或估計值),同時配合高级语言編譯器產生的機械碼。N不受同一個處理器中執行的其他行程所影響。由於硬體一般不會記錄執行程式的N,因此其確值只能由指令集模擬器計算,但實務上又很少有指令集模擬器可以使用。
f是時脈頻率。
C=1/Idisplaystyle 1/I為此基準測試軟體的平均每个指令周期数(CPI)
I=1/Cdisplaystyle 1/C為此基準測試軟體的平均每个周期指令数(IPC)
即使針對同一台機器,使用不同的編譯器或是甚至只是相同編譯器的不同編譯器最佳化都會影響N和CPI,若調整後可以提昇N或C,但另外一項沒有顯著變差,基準測試程式會執行的更快。但一般情形下提昇其中一項後,另一項可能就會變差,因此需在二者中作一取捨。例如是否需要使用一些複雜且執行時間較長的指令,使執行指令個數變短?或是只利用可以許多簡單且可以快速執行的指令,雖執行指令個數變長,但每个指令周期数可以下降?
CPU設計者常需要實現一組特定的指令集,因此無法調整N。有時設計者會藉由大幅提升f,但不會犧牲C太多的方式提昇性能(例如用更深的流水線或更快的快取),所得的是speed-demon的CPU設計。有時設計者會藉由大幅提升CPI(例如利用超序執行、超純量CPU、大容量快取、高擊中率的快取、提昇分支預測、推测性执行等技術),但不會犧牲f太多的方式提昇性能,所得的是brainiac的CPU設計[4]。針對特定的指令集(因此N不變)及固定的半導體製程,單一線程的最大性能(1/t)需要在上述二個技術中作一平衡[3]。
相關條目
- 演算法效率
- 基準測試
- 计算机系统结构
- FURPS
- 網路性能
- 最佳化 (計算機科學)
- 感知性能
- 性能分析
參考資料
^ Measuring Program Similarity: Experiments with SPEC CPU Benchmark Suites, CiteSeerX: 10.1.1.123.501
^ Computer Performance Analysis with Mathematica by Arnold O. Allen, Academic Press, 1994. $1.1 Introduction, pg 1.
^ 3.03.1
Paul DeMone. The Incredible Shrinking CPU. 20 Jun 2004.
|publisher= real word technology
|accessdate=10 Oct 2012}}
^
"Brainiacs, Speed Demons, and Farewell"
by Linley Gwennap 1999