延續上一篇的主題,站長在這節將會繼續談處理器的「技術特性」,在一般人可能比較少聽過,也比較不是那麼好理解的指令集之後,本節介紹的「專屬技術」部分應該是大家會比較感興趣甚至是有聽過的,由於這部分技術特性其實蠻多、蠻雜亂的,因此站長目前只先挑出有代表性的技術介紹,如果你有特別對哪個技術有興趣的話,可以在留言的地方提出來,站長會將介紹新增到這裡。
Table of Contents
Hyper-Threading Technology (超執行緒)
拜 Intel 鋪天蓋地宣傳之所賜,Hyper-Threading (簡稱 HT) 應該是最廣為人知的處理器技術特性了吧?Hyper-Threading Technology 的中文叫做「超執行緒」,開發代號為 Jackson Technology,其實以整個電腦領域來說不是一個非常新穎的技術,最早出現於 2002 年,當時稱為 Super-Threading,用於 Xeon 伺服器家族的處理器上,而 HT 真正廣為人所知是在 2003 年,Intel 將其加入旗下的 Pentium 4 系列處理器 (Northwood 核心架構) 之後才真正進入主流化的階段,但之後在 Core 2 家族中被取消,而到了第一代 Core i7 (Nehalem) 處理器時又被加回,至今則廣泛用於所有 Core i7 與 Core i3 處理器上。
↑ 或許還有些人有印象,當時其實 Intel 砸了不少廣告成本在宣傳 Hyper-Threading 上,那兩條橘色徽標就是支援 HT 技術的象徵。
按:其實 HT 只是 Multi-threading 多種實作方法的其中一種罷了,但由於一般人大概只會接觸到基於 SMT 的 HT 技術,因此本篇不會深入去談其他種類的 Multi-Threading。
Hyper-Threading 的運作模式
HT 的原理基本上是將處理器內的實體運算核心 (Physical Core) 內的其中一部份前端模組從一組改為兩組,稱之為 Logical Core (邏輯核心),以達到「看起來」好像有兩個處理核心的效果,但實際上運算核心仍然只有一組,大致上 HT 技術的運作模式可以用下面這張圖解釋:
如同上面這張圖,Hyper-Threading 基本上可以這樣比喻:進入核心的道路從一條變成兩條,而核心本身仍然只有一個。
↑ 啟用 HT 技術之後,本來具有 6 個核心的 4930K 就變成具備 12 個邏輯處理器了 (6C12T 的說法就是這麼來的)
Hyper-Threading 對效能的影響
由於處理器核心本身並沒有增加,也沒有變得更強,HT 技術只是將「進入處理器核心的通道」從一條變成兩條,因此 HT 對效能的提升基本上是來自於「充分榨出核心的潛能,讓核心閒置的時間變少,讓執行緒花在排隊等待其他執行緒的時間變少」,而不是真正對運算性能帶來提升。所以實際上 HT 技術在處理器本身已經被用滿的狀況下是沒有辦法帶來性能提升的,甚至可能因為安排與交錯而造成效能不升反降的結果。不過由於絕大多數時候,CPU 核心並不是被 100% 利用的,因此 HT 技術提高核心使用率之後,在大多數情況下還是可以帶來 3% ~ 25% 不等的性能提升。
但在實際運用上還有另一個問題:程式是否有對 Multi-threading (多執行緒) 進行優化會對 HT 的效果帶來很明顯的影響,如果程式未對多執行緒優化,則 HT 的改善效果將會顯得很不明顯,甚至是帶來負面影響。不過隨著多核心處理器的普及,近來已有不少程式會針對多執行緒進行優化,因此這個問題在未來應該會逐漸被淡化,所以 HT 技術還是有其存在的價值。
處理器省電調控技術
Enhanced Intel SpeedStep Technology (EIST)
SpeedStep 是 Intel 處理器的省電技術,最早用於行動版 Pentium !!!-M 上,當時的 SpeedStep 技術是讓對處理器設計高、低兩種不同的運作時脈,由於當年還無法做到即時切換,因此主要是設計成使用電池時用低速檔,插電使用時則跳為正常時脈 (高速檔)。
後來在 Pentium M 處理器 (雖然 Pentium M 銷售量不是那麼高,也不是很為人所記憶的處理器,但其實 Pentium M 在 Intel 後期的發展史很重要),上新發展出了增強版的 SpeedStep 技術 (EIST),做到了即時切換的能力,處理器會根據當下的使用率來調整倍頻與電壓的高低以達到省電的效果,從 Pentium M 以後的 Intel 處理器,倍頻鎖不再是固定的數字,而是一個範圍。
↑ 之前就曾經出現過的 CPU-Z,圖中可以看到標準倍頻為 34 倍的 4930K,其實可以降頻到 12 倍。
而進入多核心時代之後,EIST 也有能力暫時性地將沒有用到的核心關閉,以達到更進一步的省電效果。
Intel Turbo Boost Technology
Turbo Boost 其實可以當成反向的 SpeedStep,運用 EIST 技術的原理來達到相反的作用:當處理器負載高的時候,Turbo Boost 可以將特定核心的運作時脈拉到比平常還要高一些。以 Intel 的設計而言,搭配 EIST 關閉非使用中核心的功能,當所有核心沒有同時在運作中時,Turbo Boost 可以將目前使用中的核心的倍頻拉到更高,從上面那張圖也可以看到,標準倍頻為 34 倍的 4930K,其實可以拉高到 39 倍。
AMD 後來也推出了類似的功能,稱為 TurboCore。
AMD PowerNow!
PowerNow! 功能上其實就是 AMD 版本的 SpeedStep,最早也是用在自家的筆記型電腦用處理器上,至於名稱的由來則是為了類似 3D Now! 而用,最早出現在 AMD K6-2+ 處理器上,原理與 EIST 相似,是配合 CPU 核心使用率來動態調整運作時脈與核心電壓。
AMD Cool’n’Quiet
Cool’n’Quiet 與 AMD PowerNow! 的原理與作用大致相同 (僅有小部分設計上的差異),而 Cool’n’Quiet 只用於 AMD 旗下的桌上型電腦用處理器上,而伺服器產品線 Opteron 則是稱為 Optimized Power Management,至於 Cool’n’Quiet 的限制則比 EIST 多,不同於 EIST 的全時有效,Cool’n’Quiet 只會在作業系統的電源管理功能內使用省電模式時作用。
資料執行防止 (Data Execution Prevention)
DEP 是一項安全技術,透過將記憶體中大部分區塊標示為「禁止執行」(除了明確存放需要執行的應用程式之記憶體區塊外),來達到控管系統記憶體存取的效果,能防止惡意程式透過違規存取記憶體取得越權破壞系統的機會。DEP 有軟體與硬體兩種實作方式,從 Windows XP Service Pack 2 就開始支援這項功能。
而透過硬體實作 DEP 則是需要處理器的支援,這項技術有很多種名稱,不過都是指同一件事情,例如 AMD 稱其為 Non-eXecute Bit (NX Bit)、Intel 則稱之為 eXecute-Disable Bit (XD Bit),嗯?這個 XD 可不是表情符號哦。
虛擬化技術 (Virtualization Technology)
虛擬化技術是一門很深的學問,對一般人來說最直接的認識大概就是虛擬機器 (Virtual Machine, VM) 的用途。早期的 VM 其實是非常慢的 (因為純粹靠軟體模擬),一般只能用在測試或開發用途,其他用途基本上都非常勉強,幾乎可以說是不太可能做,直到處理器發展出 VT 技術,開創了硬體輔助虛擬化的時代之後,才開始帶來變化,隨著技術的發展,至今虛擬化技術已經獲得了非常廣泛的應用,特別是在伺服器與商業用途領域之中。
Intel Virtualization Technology (VT-x / VT-i)
開發代號為 Vanderpool 的 Intel VT 技術是 Intel 處理器支援硬體輔助虛擬化的開端,其中配合 x86 架構處理器的 VT-x 則首次出現於 2005 年的 Pentium 4 處理器上 (VT-i 則適用於 Itanium 處理器的 IA-64 架構上),至於 AMD 則是在 2006 年的 Athlon 64 系列上開始支援稱之為 AMD-V (AMD Virtualization) 的 VT-d 技術,又稱為 SVM (Secured Virtual Machine)。
由於篇幅有限,站長不打算在這裡詳細說明 VT 技術的原理。
Intel Virtualization Technology for Directed-I/O (VT-d)
VT-d 則是關於 I/O 的虛擬化,因此主要是在晶片組的功能,所以此節將不會特別敘述。
「電腦達人養成計畫 2-3:鳥瞰歷代處理器指令集」<< PREV
NEXT >>「電腦達人養成計畫 2-5:上古 CPU 發展史」