Response Time and Throughput
對於計算機來說,要衡量性能通常有兩個指標:
- 響應時間(Response Time): 又稱為執行時間(execution time),指計算機完成某任務所需的總時長,包括了硬體訪問、內存訪問、I/O 訪問、作業系統開銷和 CPU 執行時間…等一切開銷。
- 吞吐率(Throughput): 也叫帶寬(bandwidth),表示單位時間內可以完成的任務數量。
不同類別的計算機所著重的點不盡相同,比如個人電腦會傾向於降低響應時間,而伺服器則更看重吞吐率。
在絕大多數的狀況下,降低響應時間幾乎都可以增加吞吐率,因此我們可以簡單遞將性能定義為執行時間的倒數:
Performace=Execution Time1
Execution Time and CPU Clocking
Measuring Execution Time
執行時間可以根據計量的方式選用不同的表示方法:
- 消逝時間(elapsed time):表示完成任務所需的總時間,包括了硬體訪問、內存訪問、I/O 訪問、作業系統開銷和 CPU 執行時間…等一切開銷。又稱為牆上時鐘時間(wall clock time)或響應時間(response time)。
- CPU 執行時間(CPU execution time):多個用戶經常共享使用同一台計算機,此時更著重於運行自己任務的時間,也就是只考慮在 CPU 上所花費的時間而不計入 I/O 設備等待時間。
- 用戶 CPU 時間(user CPU time)
- 系統 CPU 時間(system CPU time)
CPU Clocking

我們通常會使用 時脈頻率(clock rate) 來評估處理器效能,指的是同步電路中時鐘的基礎頻率,為時鐘週期的倒數,單位為赫茲(Hz):
- Clock Period: duration of a clock cycle
- e.g., 250ps=0.25ns=250×10−12s
- Clock Frequency (Rate): cycles per second
- e.g., 4.0GHz=4000MHz=4.0×109Hz
CPU Time
CPU Time=CPU Clock Cycles×Clock Cycle Time=Clock RateCPU Clock Cycles
由上式可知,如果要增進效能:
- Reducing number of clock cycles
- Increasing clock rate
- Hardware designer must often trade off clock rate against cycle count
CPU Time Example
有一程式在一台時脈頻率為 2GHz 的計算機 A 上運行需要 10 秒。現在將設計一台 B 計算機,希望將運行時間縮短為 6 秒。 若設計者採用提高時脈頻率的方式,但會使得運行的時間週期數為在計算機 A 上的 1.2 倍,則應該將時脈頻率提高到多少?
依題意可知:
Clock RateB=CPU TimeBClock CyclesB=6s1.2×Clock CyclesA
其中計算機 A 上運行需要多少時間週期數:
Clock CyclesA=CPU TimeA×Clock RateA=10s×2GHz=20×109
因此可得:
Clock CyclesB=6s1.2×20×109=4GHz
Instruction Count and CPI
前面的公式並沒有涉及程式所需要的指令數目,但實際上計算機是透過執行指令來運行程式,考慮執行每條指令所需的時間週期數(CPI, Cycle per Instruction):
Clock Cycles=Instruction Count×Cycles per Instruction
CPU Time=Instruction Count×CPI×Clock Cycle Time=Clock RateInstruction Count×CPI
如果把同一份程式代碼分別在 RISC 和 CISC 上進行編譯,則在 CISC 上所需要的指令數會較少,因為 CISC 一個指令可以處理較多的事情。然而這並不代表 RISC 較 CISC 差。
CPI Example 01
假設有相同指令集的兩種不同實現方式,在計算機 A 上的時鐘週期為 250ps, 對某程式的 CPI 為 2.0;而在計算機 B 上的時鐘週期為 500ps, 對同一程式的 CPI 為 1.2。則該程序在哪一台計算機上的執行速度較快?快多少?
對於同一程式而言,在不同計算機上執行指令的總數是相同的:
CPU Time=Instruction Count×CPI×Cycle Time
亦即:
CPU TimeACPU TimeB=I×2.0×250psI×1.2×500ps=1.2
在計算機 A 上執行的速度較計算機 B 上快 1.2 倍。
CPI Example 02

CPI in More Detail


Power Trends

Reducing Power

Multiprocessor
