【計(jì)算機(jī)基礎(chǔ)Ep15】黑皮書:《計(jì)算機(jī)組成與設(shè)計(jì)——硬件/軟件接口》內(nèi)容梳理(六)
第一章 計(jì)算機(jī)抽象及相關(guān)技術(shù)
1.6性能
1.6.1性能的定義
要素:?
響應(yīng)時(shí)間(response time)——
定義:也叫執(zhí)行時(shí)間(execution time),是計(jì)算機(jī)完成某任務(wù)所需的總時(shí)間,包括硬盤訪問、內(nèi)存訪問、I/O活動(dòng)、操作系統(tǒng)開銷和CPU執(zhí)行時(shí)間等;
適用范圍:個(gè)人計(jì)算機(jī)用戶會(huì)對(duì)降低響應(yīng)時(shí)間感興趣;
吞吐率——
定義:也叫做帶寬(band-width),性能的另一種度量參數(shù),表示單位時(shí)間內(nèi)完成的任務(wù)數(shù)量;
適用范圍:服務(wù)器更關(guān)注吞吐量。
關(guān)系:往往相互影響。
相對(duì)性能: 公式——

——X的執(zhí)行速度是Y的n倍。
1.6.2性能的度量
衡量標(biāo)準(zhǔn):時(shí)間,需要時(shí)間最少的計(jì)算機(jī)是最快的。
時(shí)間分類:
掛鐘時(shí)間(wall clock time):也叫響應(yīng)時(shí)間(response time)、運(yùn)行時(shí)間(elapsed time),表示完成某項(xiàng)任務(wù)所需的總時(shí)間,包括了磁盤訪問、內(nèi)存訪問、I/O活動(dòng)和操作系統(tǒng)開銷等一切時(shí)間;
CPU執(zhí)行時(shí)間(CPU execution time):簡(jiǎn)稱為CPU時(shí)間,只表示在CPU上花費(fèi)的時(shí)間,而不包括等待I/O或運(yùn)行其他程序的時(shí)間;
注意:用戶所感受到的是程序的運(yùn)行時(shí)間,而不是CPU時(shí)間。
定義:
系統(tǒng)性能(system performance):空載系統(tǒng)的響應(yīng)時(shí)間;
CPU性能(CPU performance):用戶CPU時(shí)間;
本章重點(diǎn)放在CPU性能上;
時(shí)鐘周期數(shù)(clock cycle,或稱滴答數(shù)、時(shí)間滴答數(shù)、時(shí)鐘數(shù)、周期數(shù))——
背景:計(jì)算機(jī)用戶更關(guān)心時(shí)間,計(jì)算機(jī)設(shè)計(jì)者考慮如何度量計(jì)算機(jī)硬件完成基本功能的速度;
含義:計(jì)算機(jī)一個(gè)時(shí)鐘周期的時(shí)間,通常是指處理器時(shí)鐘,并在固定頻率下運(yùn)行;
時(shí)鐘頻率:時(shí)鐘周期的倒數(shù)。
1.6.3CPU性能及其度量因素
將用戶關(guān)注的性能指標(biāo)(時(shí)間)與設(shè)計(jì)者關(guān)注性能指標(biāo)(時(shí)鐘周期數(shù))聯(lián)系起來,公式——

——硬件設(shè)計(jì)中減少程序執(zhí)行所需的CPU時(shí)鐘周期數(shù)或縮短時(shí)鐘周期長(zhǎng)度,就能改進(jìn)性能。
1.6.4指令性能
編譯器明確生成了要執(zhí)行的指令,且計(jì)算機(jī)必須通過執(zhí)行指令來運(yùn)行程序,因此執(zhí)行時(shí)間必然依賴于程序中的指令數(shù),公式——

——指令平均時(shí)鐘周期數(shù)(clock cycle per instruction):表示每條指令所需的時(shí)鐘周期平均數(shù),縮寫為CPI,根據(jù)所完成任務(wù)的不同,不同的指令需要的時(shí)間可能不同,CPI是程序的所有指令所用時(shí)鐘周期的平均數(shù),在指令系統(tǒng)不變的情況下,一個(gè)程序執(zhí)行的指令數(shù)是不變的。
1.6.5經(jīng)典的CPU性能公式
用指令數(shù)(程序執(zhí)行所需要的指令總數(shù))、CPI(指令平均時(shí)鐘周期數(shù))和時(shí)鐘周期長(zhǎng)度來寫出基本的性能公式——

——將三個(gè)影響性能的因素進(jìn)行了分離,可以比較不同的實(shí)現(xiàn)方案或評(píng)估某個(gè)設(shè)計(jì)的替代方案。
注意:時(shí)間是唯一對(duì)計(jì)算機(jī)性能進(jìn)行測(cè)量的完整而可靠的指標(biāo)。
測(cè)量方式:
CPU的執(zhí)行時(shí)間:運(yùn)行程序;
時(shí)鐘周期長(zhǎng)度:計(jì)算機(jī)說明書;
指令數(shù):
體系結(jié)構(gòu)仿真器;
處理器中的硬件計(jì)數(shù)器。
結(jié)論:只用一個(gè)因素去評(píng)價(jià)性能是危險(xiǎn)的——
比較兩臺(tái)計(jì)算機(jī)時(shí)必須考慮全部三個(gè)因素,它們組合起來才能確定執(zhí)行時(shí)間;
如果某個(gè)因素相同,則必須考慮不同的因素才能確定性能的優(yōu)劣;
因?yàn)镃PI根據(jù)指令分布的不同而變化,所以即使時(shí)鐘頻率是相同的,也必須比較指令總數(shù)和CPI——指令分布(instruction mix):在一個(gè)或多個(gè)程序中,對(duì)指令的動(dòng)態(tài)使用頻度的評(píng)價(jià)指標(biāo)。
影響性能的軟硬件組分:
算法:指令數(shù)、CPI;
編程語言:指令數(shù)、CPI;
編譯器:指令數(shù)、CPI;
指令系統(tǒng)體系結(jié)構(gòu):指令數(shù)、時(shí)鐘頻率、CPI。