【5分鍾+】計算機系統結構:CPU性能公式


計算機系統結構:CPU性能公式

基礎知識

CPU 時間:一個程序在 CPU 上運行的時間。(不包括I/O時間)

主頻、時鍾頻率:CPU 內部主時鍾的頻率,表示1秒可以完成多少個周期。

例如,主頻為 4.1GHz,表示每秒可以完成 4.1*109 個時鍾周期。

時鍾周期:時鍾周期也稱為振盪周期,定義為時鍾頻率的倒數。時鍾周期是計算機中最基本的、最小的時間單位。在一個時鍾周期內,CPU僅完成一個最基本的動作。

時鍾周期 = 1 / 頻率,例如 1/ 4.1*109

CPU 的時鍾周期越短,CPU 性能越好。

指令周期:取出並執行一條指令的時間。

程序的時鍾周期數

CPU時間 = 執行程序所需的時鍾周期數 * 時鍾周期時間

公式

指令周期:取出並執行一條指令的時間;

指令周期數CPI:平均每條指令耗費的時鍾周期數

CPI = 執行程序所需的時鍾周期數 / 所執行的指令條數

上面的公式換位置

執行程序所需要的時鍾周期數 = CPI * 所執行的指令條數
CPU時間 / 時鍾周期時間   =  CPI * 所執行的指令條數
CPU時間				=  CPI * 所執行的指令條數 * 時鍾周期時間

我們約定 IC :所執行的指令條數,所以

CPU時間 = CPI * IC * 時鍾周期時間
CPU時間 = (CPI * IC) / 時鍾頻率

CPIi :第 i 種指令所需要的時鍾周期數;

ICi :在程序運行過程中,第 i 種指令被運行的次數;

i 表示序號。

因為時間上 CPU 指令集指令很多,我們需要求得每條指令的平均耗時和程序使用到的指令、指令執行的次數。

總CPU時間為各個指令的 CPU時間 之和。

CPUi = (CPIi * ICi ) / 時鍾頻率

所以,公式總結如下

(ICi / IC) 反映了第 i 種指令在程序中所占的比例

例題

各位同學,請看大屏幕:

先求得未改進前的 CPI,目前有 FP指令(25%)、非浮點指令(75%),還知道了各自的 CPI 。

方案一改進后,提示的程度等於 (改進前CPI - 改進后CPI)。

因為本身也可以求得 FPSQR 在整體的比例,所以方案一不需要加入 FR。

看不明白的話,筆者講解一下。

整體的 CPI 為 2
其中改進前, FPSQR 的 CPI 20*2% = 0.4 ,
其它指令CPI + FRSQR的CPI = 2;其它指令CPI=1.6;
改進后,FPSQR 的 CPI 2*2% = 0.04
提升了 0.36。
改進后的 CPI 需要時間 1.6 + 改進后的FRSQR的CPI = 1.64。


在上一道題目中,主要還是 CPI 相關的比例求解,相對來說比較容易。

但是如果加上頻率和運行時間,則可能會有一些迷茫。此時就不能單純看 CPI 了,要記住公式:

CPU時間 = CPI * IC * 時鍾周期時間

1,計算機 A 的時鍾頻率為 800MHz,在計算機 A 上運行某程序需要 12S。現在硬件設計人員需要使用新技術設計一台計算機 B,希望能夠將程序的運行時間縮短到 8S。使用新技術后,B 的 CPU 時鍾頻率大幅度提高,但是在 計算機 B 上,運行程序所需要的時鍾周期數為 A 上的 1.5 倍。求在計算機 B 的 CPU 時鍾頻率至少為多少 GHz 才能達到所希望的需求。

也就是說,程序在 A、B 計算機上需要執行的指令數(IC)不變,但是時鍾周期數變化了,即 CPI 變成了 1.5 倍。

按照 CPU 時間公式,得到在 A、B 計算機上:

1/800MHz * CPI * IC   = 12S
1/nMHz * 1.5*CPI * IC = 10S

所以:

12/(CPI* 1/800) = 10/(CPI * 1.5 * 1/n )

最終可得到 n 為 1800,所以計算機 B 的 CPU 需要 1.8GHz 才能達到需求。

2,機器 M 的時鍾頻率為 200MHz,程序 P 在機器 M 上執行時間為 12S。將程序中的所有乘4的指令都換成 <<2 左位移兩位的指令,得到程序 P'。在 M 中,乘法指令的 CPI 為 102,左移指令的 CPI 為 2,P 的執行時間為 P’ 的1.2 倍。則 P 中的乘法指令條數為?

在許多習題講解中,是這樣解答的:

P'的執行時間為10s,P的執行時間為P'的1.2倍,即為12s,多了2s,即多了200M×2=4×108個時鍾周期,每條乘法指令比左移指令多100個時鍾周期,即乘法指令數目為4×108/100=4×106

筆者看了半天還是看不懂。

處理器性能優化的策略

影響CPU性能的三個方面:時鍾頻率、CPI、指令的條數。

減少指令的條數可以使得CPU更加簡潔、使用較少的寄存器,系統代碼也會別的更加簡潔。例如 RISC-V。底層的指令減少,上層例如操作系統、匯編程序需要編寫的代碼亦會變多。

但是因為各種指令使用到的頻率和周期內不同信息的訪問次數,設計CPU是要考慮到優化指令的執行速度,優化高頻訪問的指令,分配更多的資源。例如X86。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM