iT邦幫忙

2021 iThome 鐵人賽

DAY 5
0
自我挑戰組

杰哥的考研紀錄系列 第 5

Day-5 誰是最棒的狗勾

誰是最棒的狗勾

tags: IT鐵人

效能的定義

生活中很常對各種東西做出比較,哪本書比較好看、哪個星座比較好相處、安卓跟蘋果哪個更好用,種種的比較很難有一定的答案,我們要針對某個特定的項目作比較才行,比如說我們拿戰鬥機跟客機比較:

戰鬥機 客機

單純直接說哪個比較好都不公平,戰鬥機絕對能得到速度上的優勢,而客機絕對能在載運人數上勝過對方。

剛剛提到的速度跟載運人數,類似於電腦的Response time (Execution time)Throughput,前者代表工作開始到完成所花的時間,後者代表單位時間所完成的工作量,在不同情況我們會考慮用不同的標準檢視,比如說在個人電腦中我們比較在乎Response time,多人共用的伺服器我們比較在乎Throughput。

Response time(Execution time) Throughput
工作從開始到完成所花的時間 單位時間內所完成的工作量
個人電腦 多人共用伺服器

Performance

要討論電腦的優秀程度,我們定義Performance = $\frac{1}{Execution Time}$

所以如果有兩部電腦X與Y:
Performance~X~>Performance~Y~

-> $\frac{1}{Execution Time~X~}$ > $\frac{1}{Execution Time~Y~}$

-> Execution Time~Y~ > Execution Time~X~

比較兩台不同電腦的效能,X的速度是Y的n倍則表示成:

$\frac{Performance~X~}{Performance~Y~}$ = n

此時Y的執行時間會是X的n倍。

CPU Time

前面提到的Execution Time,包含了很多動作,比如說硬碟存時間、記憶體存取時間、輸入/輸出時間、作業系統時間等等。

CPU Execution Time,簡稱為CPU Time,是指CPU花在處理某一項工作的時間,不包括那些存取以及輸入輸出的時間。

而CPU Time又有User CPU Time跟System CPU Time兩者,前者是執行程式的部分,後者是為了服務程式執行所花在作業系統上的時間。

大概是下圖這樣:

一個程式的CPU Time = Clock cycles x Clock cycle time,也就是Clock跑了幾個循環,乘以一個循環會跑多少時間,就是整個程式到底使用了多久的CPU,底下慢慢跟各位介紹CPI(Clock per Instruction)。

CPI

CPI是Clock per Instruction的縮寫。

一個程式一定有很多行的程式碼,轉換成Assembly code之後通常會有更多行。

Assembly code複習
add $t0 $t1 $t2 (將t1加上t2的結果放在t0 register)

CPI的算法為 $\frac{Clock Cycles}{Instruction count}$。

也就是說Clock Cycles = CPI x Instruction count。

套回去CPU Time = Clock cycles x Clock cycle time

= CPI x Instruction count x Clock cycle time。

不過因為不是每個Instruction的執行時間,所以準確來說Clock cycle應該要寫成 $\sum{CPIi * Ci}$ (C~i~代表類別i所使用之指令個數)

例題示範

講講都是紙上談兵,我們現在實際在紙上操作一次。

假設有兩個使用相同ISA的電腦,執行同一個程式,
Machine A的clock cycle time為250ps,CPI為2.0,
Machine B的clock cycle time為500ps,CPI為1.2。
請問哪一部電腦比較快?快多少?

假設總共有I個cycle。
首先算出A的CPU cycles = I x 2。
B的CPU cycles = I x 1.2。
CPU time A = 2I x 250ps = 500I ps
CPU time B = 1.2I x 500ps = 600I ps

$\frac{Performance A}{Performance B}$ = $\frac{Execution Time B}{Execution Time A}$ = $\frac{600I}{500I}$ = 1.2

所以A的速度是B的1.2倍。

牛刀小試

Consider the following performance measurements for a program:

Measurement Computer A Computer B
Instruction count 10 billion 8billion
Clock cycle time 250ps 250ps
CPI 1.0 1.1

Which computer is faster?

上一篇 下一篇
CLA以及bit乘法 Build a CPU

誰比較快?


上一篇
Day-4 CLA以及bit乘法
下一篇
Day-6 Build a CPU
系列文
杰哥的考研紀錄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言