在計算機體系結構中,分支處理的效能度量是什麼?
它可以評估和比較不同的分支處理技術,它可能需要一個性能度量。讓我們考慮在一個四級流水線中執行分支指令,如圖所示。如果分支被直接處理,分支目標地址 (BTA) 將在週期 ti+3 計算。
然後可以在週期 ti+4 中獲取分支目標指令。因此,與獲取分支指令相比,分支目標指令的獲取延遲了 3 個週期。這意味著與順序處理相比,存在 2 個週期的開銷。

某些典型情況下分支處理的效能。讓我們用 Pt 和 Pnt 表示“已取”和“未取”分支的開銷,並用 ft 和 fnt 表示“已取”和“未取”分支的相應機率(頻率)。然後分支處理的有效開銷 P 為
P = ft ∗ Pt+ fnt ∗ Pnt
例如,它可以計算 80386 和 i486 處理器的有效開銷。對於 80386,已取和未取開銷的值分別為 8 和 2 個週期。當假設已取分支的機率為 0.75 (fi=0.75) 時,可以得到 80386 中分支的有效開銷 -
P80386=0.75 ∗ 8+0.25 ∗ 2=6.5 cycles
這意味著 80386 平均每個分支需要 6.5 個額外的週期。相比之下,i486 具有顯著增強的分支機制。其有效分支開銷為
Pi486=0.75 ∗ 2+0.25 ∗ 0=1.5
這大大低於 80386 的開銷。
另一種典型情況是分支處理使用分支預測。在這種情況下,透過猜測相關分支是否會被取來對每個分支進行預測。讓我們考慮以下符號 -
Ptc - 正確預測的已取分支的開銷
Ptm - 預測錯誤的已取分支的開銷
Pntc - 正確預測的未取分支的開銷
Pntm - 預測錯誤的未取分支的開銷
ftc - 正確預測的已取分支的機率
ftm - 預測錯誤的已取分支的機率
fntc - 正確預測的未取分支的機率
fntm - 預測錯誤的未取分支的機率
然後,分支處理的有效開銷可以表示為 -
P=ftc∗Ptc+ftm∗Ptm+fntc∗Pntc+fntm∗Pntm
可以假設一個簡單的案例,其中正確預測的已取和未取分支的開銷以及預測錯誤的已取和未取分支的開銷相等。也就是說
Ptc=Pntcand Ptm=Pntm
此外,讓我們將正確預測的分支的總機率指定為 fc,將預測錯誤的分支的總機率指定為 fm,即
fc=ftc+fntcand fm=ftm+fntm
在這種簡單的情況下,有效分支開銷可以計算為
P=fc∗Pc+fm∗Pm
讓我們考慮使用分支預測的奔騰處理器。在這種情況下,正確預測的分支的開銷為 0 個週期,而預測錯誤的分支的開銷則為 3 個週期(如果分支由 U 管道處理)或 4 個週期(如果分支在 V 管道中執行)。
為了計算,讓我們假設平均預測錯誤開銷為 3.5。當假設分支預測準確率為 0.9(即,fc=0.9 和 fm=0.1)時,我們得到該處理器的有效分支開銷
PPentium=0.9∗0+0.1∗3.5=0.35
也就是說,奔騰平均每個分支只需要 0.35 個額外的週期。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP