cpu的最小生命單位就是時鐘周期,而一個機器周期包括若幹個時鐘周期,至于指令周期,則包含了若幹個機器周期。如果按粒度排序,則是指令周期>=機器周期>=時鐘周期。
1 指令周期我們的一個程序會被翻譯成若幹條機器指令,不同機器指令執行所需要的時間稱為指令周期。
指令周期是執行一條指令所需要的時間,一般由若幹個機器周期組成。指令不同,所需的機器周期數也不同。對于一些簡單的的單字節指令,在取指令周期中,指令取出到指令寄存器後,立即譯碼執行,不再需要其它的機器周期。對于一些比較複雜的指令,如乘法指令,則需要兩個或者兩個以上的機器周期。通常含一個機器周期的指令稱為單周期指令,包含兩個機器周期的指令稱為雙周期指令。
2 機器周期
在計算機中,為了便于管理,常把一條指令的執行過程劃分為若幹個階段,每一階段完成一項工作。例如,取指令、存儲器讀、存儲器寫等,每一項工作稱為一個基本操作。完成一個基本操作所需要的時間稱為機器周期。
一般情況下,一個機器周期由若幹個時鐘周期構成。一個機器周期内包含的時鐘周期個數由該機器周期内完成動作所需的時間決定。
由于CPU内部操作的速度較快,而CPU訪問一次存儲器的時間較長,因此機器周期通常由存取周期來确定。
當然,CPU的流水線結構設計可以利用指令運行的不同階段使用的CPU硬件互不相同,并發的運行多條指令,從而提高時間效率,整體上減少指令周期的時間。
3 時鐘周期時鐘周期是最計算機操作的最小單位時間,由計算機的主頻決定,是主頻的倒數。
通常将一個時鐘周期定義為一個節拍。
工作脈沖是控制器的最小時間單位,起定時觸發作用,一個時鐘周期有一個工作脈沖。
時鐘周期也可稱為振蕩周期、節拍脈沖或T周期,是處理操作最基本的單位。
如果晶振的輸出沒有經過分頻或倍頻就直接作為cpu的工作時鐘,則時鐘周期就等于晶振的振蕩周期;如果晶振的輸出經過分頻或倍頻後作為CPU的工作時鐘,則時鐘周期就就是分頻或倍頻後的。
狀态周期是CPU從一個狀态轉換到另一狀态所需要的時間。簡單地說每個狀态周期Ts 分為兩個震蕩周期(時鐘周期)。
4 CPI平均指令周期(Cycles per Instruction,CPI)就是所有類型的機器指令所需的時鐘周期數的加權平均。
其中, 是指令類型 i 的指令數目, 是該指令類型的周期數, 是總指令數。
例:某個測試程序的指令數如下:
指令類型 |
指令數量 |
時鐘周期 |
整數運算 |
45000 |
1 |
數據傳輸 |
32000 |
2 |
浮點數運算 |
15000 |
2 |
控制轉移 |
8000 |
2 |
備注:現代流水線技術減少了每個指令的機器周期及對應的時鐘周期; |
則平均指令周期為
=1.55 個時鐘周期
是說一個機器指令加權平均需要1.55個時鐘周期。
5 實例假設一個處理器的時鐘頻率為500MHz,每4個時鐘周期組成一個機器周期(計算機周期),執行一條指令平均需要三個機器周期,則該處理器的一個機器周期是多少ns?平均執行速度為MIPS是多少? .
CPU的MIPS(每秒百萬條指令)即最高速率 = CPU指令周期 的倒數 ÷ 1M * 1個機器(計算機)周期執行的指令數。
時鐘周期 = 1 / 500 × 1000000000 = 2 ns機器周期 = 時鐘周期 × 4 = 8 ns指令周期 = 機器周期 × 3 = 24 ns平均執行速度為:1 ÷ 指令周期 = 1 ÷ 24 × 1000000000 ÷ 1000000 = 41.67 MIPS
是說每秒能夠執行41.67百萬條指令。
6 基準程序測試法基準程序測試法,利用能反映計算機典型運行情況的一組标準化程序對計算機進行測試,其結果用來評價不同計算機的相對性能的方法。
基準測試程序試圖為評估機器性能提供客觀和公平的标準。 但是要做到完全公平并不容易。 其中涉及許多因素,包括硬件,體系結構,編譯優化,編程環境,測試條件和解決問題的算法。 标準的測試程序集應提供一組控制測試條件和步驟的規範,包括測試平台環境,輸入數據,輸出結果和性能指标。 不同的基準測試程序具有不同的目标: 某些測試CPU性能,某些測試文件服務器性能,某些測試輸入和輸出接口以及某些測試網絡通信速度。 根據用途不同,測試程序可以分為特殊用途和通用用途。
6.1 Dhrystone基準程序
1984年由Rheinhold Weiker提出,目的是測量和比較各種計算機的性能。它側重于測量整數指令的有效性。Dhrystone用C語言寫的版本共有100條語句,程序中沒有浮點指令,可裝入大多數計算機的高速緩存。
6.2 Linpack基準程序
1976年由美國田納西大學傑克·唐加拉(JackDongarra)教授開發的一組求解密集線性方程組的程序包。用以衡量計算機系統的數值計算能力,其基本單位是FLOPS(每秒執行多少次浮點操作),世界超級計算機500強排行榜就是采用該基準程序進行評測排序的。
6.3 Whetstone基準程序
Whetstone這是一個全面的基準測試程序,旨在比較不同計算機的浮點性能。它最初是用Algol-60編寫的,後來又用Fortran重寫了。 這些塊語句在虛拟計算機上轉換為稱為Whetstone的指令,因此命名為Whetstone基準程序。 該基準測試程序包括整數運算和浮點運算,涉及到數組下标索引,子例程調用,參數傳遞,條件傳遞以及三角函數和超越函數等。
Whetstone是一套基準程序,用來測試CPU的處理性能,它的基本原則是:在程序編譯後生成的機器指令中,各種指令出現的頻率與統計數據中指令出現的頻率相符合。
Whetstone的程序比較簡單,由8個模塊組件,每個模塊循環一定次數、執行一種基本運算。以下是每個模塊的簡單描述:
數組元素(浮點),循環12次
數組參數(浮點),循環14次
條件判斷(if then else),循環345次
整型計算,循環210次
三角函數(sin, cos, etc.),循環32次
程序調用(浮點),循環899次
數組操作(賦值),循環616次
标準函數(exp, sqrt, etc.),循環93次
整個測試執行若幹次,第一次執行100次循環,之後每次遞增10次循環,即第二次執行110次循環。測試結果是每組循環的平均時間和所有循環的平均KWIPS值(Thousands of Whetstone Instruction mixes Per Second)。
6.4 SPEC基準程序
SPEC是标準績效評估合作的首字母縮寫。它是由NCGA(國家計算機圖形協會)在1980年代成立的。該小組的創始人來自HP,DEC,MIPS和SUN。他們有一組基準測試程序來評估新機器的性能。第一組基準測試程序稱為SPEC89,其中包含10個程序。SPEC92擴展了20個程序,6個整數程序和14個稱為SPECint92,SPECfp92的浮點程序。SPEC随後發布了一些新的基準測試程序(例如SPEC95,SPEChpc96,SPECweb96,SPEC2000等)。SPEC最初專注于測試CPU性能,現在強調開發反映實際應用程序(例如實際負載等)的基準程序,并已擴展到客戶端/服務器計算,商業應用程序和I/O子系統。
6.5 TPC基準程序
1989年由事務處理性能委員會(TransactionProcessingPerformanceCouncil,TPC)制定并發布的一種商用基準測試程序組。TPC至今已經推出了4套基準程序,其中早期發布的TPC-A和TPC-B已被廢棄不用,TPC-C用于測試在線事務處理系統,TPC-D用于測試決策支持系統。
-End-
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!