CPI( Cycles Per Instruction)表示每條計算機指令執行所需的時鐘周期,有時簡稱為指令的平均周期數。
基本介紹
- 中文名:平均指令周期數
- 外文名:Cycles Per Instruction
- 所屬學科:IT
- 所屬領域:程式設計
公式表示,RISC技術,選取頻率最高的簡單指令及複雜指令,採用暫存器視窗技術,採用高速快取結構,採用多級指令流水線結構,編譯最佳化,延遲載入指令和轉移指令,採用載入、存儲結構,
公式表示
平均指令周期數用公式表示為:
CPI=
其中,,是總的指令數目。,是總的時鐘周期數。
RISC技術
CPU執行運算速度受三個因素的影響:(1)程式中指令數I,(2)每條指令執行所用周期數CPI,(3)周期時間T。這三者又有:程式執行時間=I *CPI *T,因此,從中可以看出減少其中任一個都可提高CPU的速度,因此要從這三個方面著手,而RISC技術正是如此,對I,CPI,T進行最佳化。
選取頻率最高的簡單指令及複雜指令
經過多年的程式跟蹤,計算機科學家發現:在大約95%的時間裡,複雜指令系統中只有25%的指令經常在使用。這意味著硬體支持的指令大約75%經常是不用的。
典型的RISC指令系統大多數是其於暫存器的指令。選取運算指令、載入、存儲指令和轉移指令作主指令集。大型暫存器堆(至少32)可用來改善多個用戶之間的快速上下切換,並且大多數指令因採用硬連線控制可在一個周期內完成執行,通過採用暫存器堆減少快取次數,實質是減少CPI來提高CPU速度。
採用暫存器視窗技術
RISC處理機結構中還有帶多個暫存器視窗的RISC整數部件(IU ),這些暫存器中有所有過程共享的全局暫存器和只和每個過程有關的視窗暫存器。使用重疊暫存器視窗是RISC結構的一個重要特性。重疊暫存器視窗技術,其中有8個重疊視窗(由64個局部暫存器和64個重疊暫存器構成)和8個全局暫存器,總共有136個暫存器,每個暫存器視窗被分成了3個部分,每部分有8個暫存器,標記為輸入(INS ),局部(Locals)和輸出(outs),局部暫存器只能由每個過程局部地訪問,輸入和輸出由各過程共享。調用過程通過它的輸出暫存器(同時也是被調用過程的輸入暫存器)將參數傳送給被調用的過程。重疊視窗可以有效地節省過程間通信所需要的時間,這會使協作過程之間的上下文切換變得更快。
採用高速快取結構
由於執行頻度低的複雜指令需要較長的微碼,因而就便於考慮完全不用硬體而只靠軟體去實現這些指令,這樣就可以騰出晶片而積去構造更強有力的,甚至帶片內高速快取或浮點部件,以提高速度。
採用高速快取結構,這樣可保證指令不間斷地傳送給CPU運算器,採用硬連線控制在CPU內設定了一定大小的cache以擴展存儲器的頻寬,滿足CPU頻繁取指需求,一般有兩個獨立cache,分別存放“指令十數據”,即指令高速快取和數據高速快取。因此可將存儲器存取周期插入到使用高速快取和工作暫存器的流水線存取操作中。
採用多級指令流水線結構
採用流水線技術,意味著每個周期要發射多條指令並產生多個結果。可使每個周期都有多條指令重疊執行,以減少CPI的值,使CPU不浪費空周期。
編譯最佳化
RISC在設計上採取了把不常用的操作推給軟體的辦法來增強其能力。因此RISC處理機更加依賴於好的編譯器,同時也要依靠最佳化編譯器去開發並行性。沒有高時鐘頻率、低CPI和好編譯器的支持,RISC不可能很好地把設計水平發揮出來。