引言
Intel NetBurst微結構是Intel Pentium 4處理器的基礎。它包含幾個重要的新特性和革新,這些革新與新特性能夠讓Intel Pentium 4處理器和未來的IA-32處理器的性能在今後的數年中的處於工業領先的地位。這個文章介紹了Intel NetBurst微結構中的非常重要的特性和革新。使用了NetBurst微結構的Pentium 4處理器是一個完全重新設計的處理器,它擁有很多改進了的革新特性的新技術和性能,比如在以前的Intel微結構中介紹的“亂序推測執行”和“超標量執行”。很多這種新的革新和改進使得處理器技術、處理技術和以前不能在高容量中實現的電路設計、可製造方法等方面的改進成為可能。新的微結構的特性和所帶來的好處在下面的章節中定義。
為性能的設計
一個受關注的結構的定義的成果被用來研究很多先進的處理器技術的益處和確定未來幾年最接近的改進全部處理器的性能。這個定義成果的結果是構造了一個在保持平均大約是P6微結構的10%到20%的IPC的情況下將頻率能力從P6的微結構顯著地提高40%以上的微結構(在相同的製造處理下)。在這個設計中,儘管IPC比較低,增加了的頻率能力彌補了這個(性能=頻率×IPC),並將提供給最終用戶全面的更高的執行能力。這一切NetBurst微結構利用超級管道技術得以實現,超級管道技術的管道深度是P6微結構的2倍。儘管這個較深的管道提供更高的頻率,潛在的與較長的管道有關的性能影響在設計中被包含和克服。這個設計成果的關注點在於:最小化與分支預測有關的損失
分支預測損失的解釋:就象P6,NetBurst微結構利用亂序推測執行。處理器一般使用一種分支預測算法來預測程式代碼中的分支結果,然後推測性地執行預測出的代碼分支。儘管分支預測算法有很高的精確度,但還是不可能達到100%的準確。如果處理器錯誤預測一個分支,那么所有的推測執行的指令必須從處理器的管道中清除出來以便重新啟動程式正確分支的指令執行。更深的管道設計中,更多的指令必須從管道里清除出來,結果是造成分支錯誤預測出現時有了更長的恢復時間。綜合考慮的結果是有更多更難預測的分支的應用程式將使得IPC的平均值更低。錯誤預測損失的最小化:為了最小化分支錯誤預測的損失和最大化平均IPC,深深的管道NetBurst微結構極大地減低了分支錯誤預測的數目並提供了從任何錯誤預測分支恢復的快速方法。為了最小化這個損失,NetBurst微結構實現了一個高級動態執行引擎和一個執行跟蹤高速快取。這些特性都將會在本文後面介紹。
保持高頻率執行單元忙(相對於坐等)
儘管處理器有高頻率能力,它必須提供一種方法來確保連續地將要執行的指令提供給執行單元(整數或浮點數)。這確保了這些高頻單元執行指令能執行指令(而不是坐等)。用這些在NetBurst微結構中的高頻以及快速執行引擎的執行,算術邏輯單元運行於2倍的核心頻率,Intel實現了很多能確保這些執行單元獲得連續指令流執行的特性。Intel實現了400-MHz系統匯流排、高級傳輸高速快取、執行跟蹤高速快取、高級動態執行引擎和一個低等待1級數據高速快取。這些特性一起工作為處理器的高性能執行單元提供指令和數據,從而使他們能夠在高頻小執行代碼而不是空等待。縮減完成一個任務或程式所需要的指令數量
很多應用程式通常在大數據集上執行重複的操作。更進一步,捲入到這些操作中的數據集可以用小量的位來表示成為小的值。這兩者的能夠結合起來,利用簡潔表示的數據集和執行能操作這些簡潔的數據集的指令來改進應用程式的性能。這種操作類型稱作為單指令多數據(SIMD)並能降低程式執行所需要的指令的整體數量。NetBurst微結構實現了被稱作為流SIMD擴展2(SSE2)的144個新SIMD指令。SSE2指令集增強了以前那些利用MMX技術和SSE技術的SIMD指令。這些新指令支持128位的SIMD整數操作和128位SIMD雙精度浮點操作。把所給的指令能操作的數據的數量加倍,則只有一半編碼循環里的指令需要被執行。Intel NetBurst微結構特性細節
超級管道技術:與P6微結構相比,NetBurst微結構的超級管道技術加倍了管道的深度。分支預測/恢復管道這個關鍵的管道在NetBurst微結構中是用20級的管道實現的,與此相比,在P6微結構中等同的管道只有10級管道。這個技術顯著地提高了處理器的性能和基本微結構的頻率伸縮性。執行跟蹤高速快取:執行跟蹤高速快取是一個實現1級指令高速快取的創新的方法。它存儲解碼的x86指令(微操作),因此消除了與從主執行循環到指令解碼器有關的等待。另外,執行跟蹤高速快取存儲這些在程式執行流程路徑上的微操作,在代碼中的分支結果被綜合到高速快取的相同的行。這增加了高速快取中的指令流量和更好地使用全局高速快取空間(12K微操作),因為高速快取不再存儲那些分支過的和永遠不會執行的指令。其結果是得到一個傳遞大容量指令到處理器的執行單元和一個降低從錯誤預測的分支恢復的全部時間的方法。
快速執行引擎:通過將結構、物理和電路設計的結合,在處理器中的簡單的算術邏輯單元(ALUs)運行在2倍的處理器核心頻率下。這允許ALUs用核心時鐘一半的延遲回響來執行特定的指令從而得到更高的執行吞吐量和降低執行回響延遲。
400MHz系統匯流排:通過在100MHz時鐘系統匯流排上使用四倍數據傳送的物理信號設計和一個允許持續400MHz數據傳送的緩衝設計,Pentium 4處理器支持Intel的最高性能桌面系統匯流排傳遞每秒3.2GB的數據進出處理器,在Pentium III處理器的133MHz系統匯流排下傳輸是1.06GB/s。
高級動態執行:高級動態執行引擎是一個很深的保持執行單元執行指令的亂序推測執行引擎。它靠提供一個執行單元能選擇的很大的指令視窗來實現。大的亂序指令視窗允許處理器消除發生在指令等待相關內容解決時產生的延遲。一個更通用的延遲形式時等待在高速快取中沒有選中的數據從存儲器裝入。這在高頻率設計中時很重要的,因為到主存回響延遲的增加關係到核心頻率。NetBurst微結構能有126個以上的指令在這個視窗中,相比較而言P6微結構的視窗就要小很多,它只能有42個指令。
高級動態執行引擎也提高分支預測能力,允許Pentium 4處理器更精確地預測程式分支。相對於P6的處理器分支預測能力,它將大約降低分支錯誤預測的數量33%以上。它是靠實現一個4KB分支目標緩衝來保存以前分支的更多細節,並實現更高級的分支預測算法來達到上述目標的。這個提高的分支預測的能力是全面降低NetBurst微結構的分支錯誤預測損失靈敏性的關鍵設計部件之一。
高級傳送高速快取:2級高級傳送高速快取有256KB大小,有一個在2級高速快取和處理器核心之間的更高數據吞吐量的通道。高級傳送高速快取由每核心時鐘傳送數據的256位(32位元組)接口組成。作為結果,一個1.4GHz Pentium 4處理器可以得到一個44.8GB/s(32位元組×1(每時鐘數據傳送)×1.4GHz = 44.8GB/s)的數據傳送速率。和1GHz Pentium III處理器的16GB/s數據傳送率相比,它提供Pentium 4處理器保持高頻執行單元執行指令而不是坐等。
流SIMD擴展2(SSE2):作為SSE2的介紹,NetBurst微結構現在通過增加144條新指令擴展SIMD的MMX技術和SSE技術的能力,這144條新指令提供128位SIMD整數算法操作和128位SIMD雙精度浮點。這些新的指令提供了降低執行特別程式任務所需要的全部指令數的能力,其結果是提供一個全面的性能提高。它們促進了程式的更廣泛的套用範圍,包括視頻、語言、圖象照片處理、加密、金融、工程和科學套用。
綜合性能期望
Pentium 4處理器顯示了直接改進今天已有的可用軟體應用程式的性能,性能水平的改進依賴於應用程式的類別已經應用程式執行指令的趨向還有在新的微結構上最佳化執行的指令序列。隨時間的過去,更多的套用將被最佳化,不是特別地為微結構進行彙編級的最佳化,就是用最新的NetBurst微結構最佳化編譯器和庫進行修改,我們甚至將繼續看到運行在Pentium 4處理器上的軟體更大級別的性能伸縮比例。
總之,依據NetBurst微結構,Pentium 4處理器提供一個在應用程式和使用間的性能的加速度,用戶將能真正的體驗到和欣賞到。這些套用包括:3D可視化、遊戲、視頻,語音、圖象照片處理、加密、金融、工程和科技套用。
上文是p4也就是NetBurst架構剛出來時的觀點。以現在的眼光來看,NetBurst架構實在算不上什麼好架構。高功耗,低性能,傻快,是其主要特點。
Intel NetBurst微結構是Intel Pentium 4處理器的基礎。它包含幾個重要的新特性和革新,這些革新與新特性能夠讓Intel Pentium 4處理器和未來的IA-32處理器的性能在今後的數年中的處於工業領先的地位。這個文章介紹了Intel NetBurst微結構中的非常重要的特性和革新。
使用了NetBurst微結構的Pentium 4處理器是一個完全重新設計的處理器,它擁有很多改進了的革新特性的新技術和性能,比如在以前的Intel微結構中介紹的“亂序推測執行”和“超標量執行”。很多這種新的革新和改進使得處理器技術、處理技術和以前不能在高容量中實現的電路設計、可製造方法等方面的改進成為可能。新的微結構的特性和所帶來的好處在下面的章節中定義。
為性能的設計
一個受關注的結構的定義的成果被用來研究很多先進的處理器技術的益處和確定未來幾年最接近的改進全部處理器的性能。這個定義成果的結果是構造了一個在保持平均大約是P6微結構的10%到20%的IPC的情況下將頻率能力從P6的微結構顯著地提高40%以上的微結構(在相同的製造處理下)。在這個設計中,儘管IPC比較低,增加了的頻率能力彌補了這個(性能=頻率×IPC),並將提供給最終用戶全面的更高的執行能力。這一切NetBurst微結構利用超級管道技術得以實現,超級管道技術的管道深度是P6微結構的2倍。儘管這個較深的管道提供更高的頻率,潛在的與較長的管道有關的性能影響在設計中被包含和克服。這個設計成果的關注點在於:
最小化與分支預測有關的損失
分支預測損失的解釋:就象P6,NetBurst微結構利用亂序推測執行。處理器一般使用一種分支預測算法來預測程式代碼中的分支結果,然後推測性地執行預測出的代碼分支。儘管分支預測算法有很高的精確度,但還是不可能達到100%的準確。如果處理器錯誤預測一個分支,那么所有的推測執行的指令必須從處理器的管道中清除出來以便重新啟動程式正確分支的指令執行。更深的管道設計中,更多的指令必須從管道里清除出來,結果是造成分支錯誤預測出現時有了更長的恢復時間。綜合考慮的結果是有更多更難預測的分支的應用程式將使得IPC的平均值更低。
錯誤預測損失的最小化:為了最小化分支錯誤預測的損失和最大化平均IPC,深深的管道NetBurst微結構極大地減低了分支錯誤預測的數目並提供了從任何錯誤預測分支恢復的快速方法。為了最小化這個損失,NetBurst微結構實現了一個高級動態執行引擎和一個執行跟蹤高速快取。這些特性都將會在本文後面介紹。
保持高頻率執行單元忙(相對於坐等)
儘管處理器有高頻率能力,它必須提供一種方法來確保連續地將要執行的指令提供給執行單元(整數或浮點數)。這確保了這些高頻單元執行指令能執行指令(而不是坐等)。用這些在NetBurst微結構中的高頻以及快速執行引擎的執行,算術邏輯單元運行於2倍的核心頻率,Intel實現了很多能確保這些執行單元獲得連續指令流執行的特性。Intel實現了400-MHz系統匯流排、高級傳輸高速快取、執行跟蹤高速快取、高級動態執行引擎和一個低等待1級數據高速快取。這些特性一起工作為處理器的高興能執行單元提供指令和數據,從而使他們能夠在高頻小執行代碼而不是空等待。
縮減完成一個任務或程式所需要的指令數量
很多應用程式通常在大數據集上執行重複的操作。更進一步,捲入到這些操作中的數據集可以用小量的位來表示成為小的值。這兩者的能夠結合起來,利用簡潔表示的數據集和執行能操作這些簡潔的數據集的指令來改進應用程式的性能。這種操作類型稱作為單指令多數據(SIMD)並能降低程式執行所需要的指令的整體數量。NetBurst微結構實現了被稱作為流SIMD擴展2(SSE2)的144個新SIMD指令。SSE2指令集增強了以前那些利用MMX技術和SSE技術的SIMD指令。這些新指令支持128位的SIMD整數操作和128位SIMD雙精度浮點操作。把所給的指令能操作的數據的數量加倍,則只有一半編碼循環里的指令需要被執行。
Intel NetBurst微結構特性細節
超級管道技術:與P6微結構相比,NetBurst微結構的超級管道技術加倍了管道的深度。分支預測/恢復管道這個關鍵的管道在NetBurst微結構中是用20級的管道實現的,與此相比,在P6微結構中等同的管道只有10級管道。這個技術顯著地提高了處理器的性能和基本微結構的頻率伸縮性。
執行跟蹤高速快取:執行跟蹤高速快取是一個實現1級指令高速快取的創新的方法。它存儲解碼的x86指令(微操作),因此消除了與從主執行循環到指令解碼器有關的等待。另外,執行跟蹤高速快取存儲這些在程式執行流程路徑上的微操作,在代碼中的分支結果被綜合到高速快取的相同的行。這增加了高速快取中的指令流量和更好地使用全局高速快取空間(12K微操作),因為高速快取不再存儲那些分支過的和永遠不會執行的指令。其結果是得到一個傳遞大容量指令到處理器的執行單元和一個降低從錯誤預測的分支恢復的全部時間的方法。
快速執行引擎:通過將結構、物理和電路設計的結合,在處理器中的簡單的算術邏輯單元(ALUs)運行在2倍的處理器核心頻率下。這允許ALUs用核心時鐘一半的延遲回響來執行特定的指令從而得到更高的執行吞吐量和降低執行回響延遲。
400MHz系統匯流排:通過在100MHz時鐘系統匯流排上使用四倍數據傳送的物理信號設計和一個允許持續400MHz數據傳送的緩衝設計,Pentium 4處理器支持Intel的最高性能桌面系統匯流排傳遞每秒3.2GB的數據進出處理器,在Pentium III處理器的133MHz系統匯流排下傳輸是1.06GB/s。
高級動態執行:高級動態執行引擎是一個很深的保持執行單元執行指令的亂序推測執行引擎。它靠提供一個執行單元能選擇的很大的指令視窗來實現。大的亂序指令視窗允許處理器消除發生在指令等待相關內容解決時產生的延遲。一個更通用的延遲形式時等待在高速快取中沒有選中的數據從存儲器裝入。這在高頻率設計中時很重要的,因為到主存回響延遲的增加關係到核心頻率。NetBurst微結構能有126個以上的指令在這個視窗中,相比較而言P6微結構的視窗就要小很多,它只能有42個指令。
高級動態執行引擎也提高分支預測能力,允許Pentium 4處理器更精確地預測程式分支。相對於P6的處理器分支預測能力,它將大約降低分支錯誤預測的數量33%以上。它是靠實現一個4KB分支目標緩衝來保存以前分支的更多細節,並實現更高級的分支預測算法來達到上述目標的。這個提高的分支預測的能力是全面降低NetBurst微結構的分支錯誤預測損失靈敏性的關鍵設計部件之一。
高級傳送高速快取:2級高級傳送高速快取有256KB大小,有一個在2級高速快取和處理器核心之間的更高數據吞吐量的通道。高級傳送高速快取由每核心時鐘傳送數據的256位(32位元組)接口組成。作為結果,一個1.4GHz Pentium 4處理器可以得到一個44.8GB/s(32位元組×1(每時鐘數據傳送)×1.4GHz = 44.8GB/s)的數據傳送速率。和1GHz Pentium III處理器的16GB/s數據傳送率相比,它提供Pentium 4處理器保持高頻執行單元執行指令而不是坐等。
流SIMD擴展2(SSE2):作為SSE2的介紹,NetBurst微結構現在通過增加144條新指令擴展SIMD的MMX技術和SSE技術的能力,這144條新指令提供128位SIMD整數算法操作和128位SIMD雙精度浮點。這些新的指令提供了降低執行特別程式任務所需要的全部指令數的能力,其結果是提供一個全面的性能提高。它們促進了程式的更廣泛的套用範圍,包括視頻、語言、圖象照片處理、加密、金融、工程和科學套用。
綜合性能期望
Pentium 4處理器顯示了直接改進今天已有的可用軟體應用程式的性能,性能水平的改進依賴於應用程式的類別已經應用程式執行指令的趨向還有在新的微結構上最佳化執行的指令序列。
隨時間的過去,更多的套用將被最佳化,不是特別地為微結構進行彙編級的最佳化,就是用最新的NetBurst微結構最佳化編譯器和庫進行修改,我們甚至將繼續看到運行在Pentium 4處理器上的軟體更大級別的性能伸縮比例。
總之,依據NetBurst微結構,Pentium 4處理器提供一個在應用程式和使用間的性能的加速度,用戶將能真正的體驗到和欣賞到。這些套用包括:3D可視化、遊戲、視頻,語音、圖象照片處理、加密、金融、工程和科技套用。
上文是p4也就是NetBurst架構剛出來時的觀點。以現在的眼光來看,NetBurst架構實在算不上什麼好架構。高功耗,低性能,傻快,是其主要特點。