計算機系統(tǒng)結(jié)構(gòu):CPU性能公式
基礎(chǔ)知識
CPU 時間:一個程序在 CPU 上運行的時間。(不包括I/O時間)
主頻、時鐘頻率:CPU 內(nèi)部主時鐘的頻率,表示1秒可以完成多少個周期。
例如,主頻為 4.1GHz,表示每秒可以完成 4.1*109 個時鐘周期。
時鐘周期:時鐘周期也稱為振蕩周期,定義為時鐘頻率的倒數(shù)。時鐘周期是計算機中最基本的、最小的時間單位。在一個時鐘周期內(nèi),CPU僅完成一個最基本的動作。
時鐘周期 = 1 / 頻率,例如 1/ 4.1*109 。
CPU 的時鐘周期越短,CPU 性能越好。
指令周期:取出并執(zhí)行一條指令的時間。
程序的時鐘周期數(shù)
CPU時間 = 執(zhí)行程序所需的時鐘周期數(shù) * 時鐘周期時間
公式
指令周期:取出并執(zhí)行一條指令的時間;
指令周期數(shù)CPI:平均每條指令耗費的時鐘周期數(shù)
CPI = 執(zhí)行程序所需的時鐘周期數(shù) / 所執(zhí)行的指令條數(shù)
上面的公式換位置
執(zhí)行程序所需要的時鐘周期數(shù) = CPI * 所執(zhí)行的指令條數(shù) CPU時間 / 時鐘周期時間 = CPI * 所執(zhí)行的指令條數(shù) CPU時間 = CPI *
所執(zhí)行的指令條數(shù) * 時鐘周期時間
我們約定 IC :所執(zhí)行的指令條數(shù),所以
CPU時間 = CPI * IC * 時鐘周期時間 CPU時間 = (CPI * IC) / 時鐘頻率
CPIi :第 i 種指令所需要的時鐘周期數(shù);
ICi :在程序運行過程中,第 i 種指令被運行的次數(shù);
i 表示序號。
因為時間上 CPU 指令集指令很多,我們需要求得每條指令的平均耗時和程序使用到的指令、指令執(zhí)行的次數(shù)。
總CPU時間為各個指令的 CPU時間 之和。
CPUi = (CPIi * ICi ) / 時鐘頻率
所以,公式總結(jié)如下
(ICi / IC) 反映了第 i 種指令在程序中所占的比例。
例題
各位同學(xué),請看大屏幕:
先求得未改進前的 CPI,目前有 FP指令(25%)、非浮點指令(75%),還知道了各自的 CPI 。
方案一改進后,提示的程度等于 (改進前CPI - 改進后CPI)。
因為本身也可以求得 FPSQR 在整體的比例,所以方案一不需要加入 FR。
看不明白的話,筆者講解一下。
整體的 CPI 為 2 其中改進前, FPSQR 的 CPI 20*2% = 0.4 , 其它指令CPI + FRSQR的CPI =
2;其它指令CPI=1.6; 改進后,F(xiàn)PSQR 的 CPI 2*2% = 0.04 提升了 0.36。 改進后的 CPI 需要時間 1.6 +
改進后的FRSQR的CPI = 1.64。
處理器性能優(yōu)化的策略
影響CPU性能的三個方面:時鐘頻率、CPI、指令的條數(shù)。
減少指令的條數(shù)可以使得CPU更加簡潔、使用較少的寄存器,系統(tǒng)代碼也會別的更加簡潔。例如
RISC-V。底層的指令減少,上層例如操作系統(tǒng)、匯編程序需要編寫的代碼亦會變多。
但是因為各種指令使用到的頻率和周期內(nèi)不同信息的訪問次數(shù),設(shè)計CPU是要考慮到優(yōu)化指令的執(zhí)行速度,優(yōu)化高頻訪問的指令,分配更多的資源。例如X86。
熱門工具 換一換