以目前的現狀來說,本篇介紹的 Sandy Bridge 與下篇將討論的 Ivy Bridge 應該是在現役電腦中普及率最高的兩個世代吧?在經過 Nehalem 翻天覆地的大改革之後,從 Sandy Bridge 開始個人電腦處理器的發展有很明顯趨於緩和的現象,接下來的 Ivy Bridge、Haswell、Broadwell、Skylake 其實都不會有太讓人驚豔的提升或變革,但 Intel 在這幾個世代中可說是一帆風順、節節高升 (畢竟對手 AMD 的推土機就跟扶不起的阿斗一樣啊)。
上為 Westmere 時期的 Logo,下為 SNB 與 IVB 時期的 Logo。
回到以色列海法的回合
Sandy Bridge (SNB) 架構其實原本的代號是 Gesher,如果你還記得先前曾經出現在 Core 架構介紹的這張 Roadmap 的話,上面就顯示 Westmere 的下一世代是 Gesher,在希伯來語中就是橋梁的意思,同時也是當地的地名,後來改為 Sandy Bridge 據說是為了避免讓人聯想到以色列當地的政黨 (已於 2007 年解散)。
Sandy Bridge 微架構
如同在 Nehalem 架構介紹中提過的,從 Nehalem 開始 Intel 正式確立了將旗下 x86 處理器平台分成高中低三大平台,分別是代表頂級伺服器,以延展性著稱的 Expandable (EX)、用於中高階伺服器,主打高性能的 Efficient Performance (EP) 或面向 HEDT 玩家市場的 Extreme (E)、用於一般消費型平台或入門級伺服器的主流平台,且從主流平台開始每上一級就落後一代。
Sandy Bridge 也不例外,所以在 2011 年我們迎來了以「第二代 Intel Core 處理器家族」與「Intel Xeon E3 家族」名義發佈的 Sandy Bridge 架構處理器,在隔年才得以見到「完整版」的 Sandy Bridge-E / Sandy Bridge-EP。
說大不大,說小不小的改進
如果以最後的性能成績來評判的話,其實 Sandy Bridge 帶來的改進並沒有很明顯 (遠遠不及 Netburst 到 Core 或 Core 到 Nehalem 那樣),但在架構上卻有很多改變,其中有不少設計變更都持續被沿用至今日的 Broadwell 與 Skylake 上,並且在可預見的未來中會繼續使用。
現代 Intel 處理器的基本結構確立
Sandy Bridge 之後基本上處理器設計的基本結構就沒有再發生任何變化了,大致上是延續 Nehalem 市代 Clarkdale 的作法,將 PCI Express 控制器、記憶體控制器放到處理器內,因此北橋已無存在的意義,所以系統基本架構只剩下兩顆晶片,南橋改稱 Platform Controller Hub (PCH) 並繼續稱為晶片組。
但從 die shot 上可以很明顯的看到,從 Sandy Bridge 開始整合顯示核心也被放到處理器晶片中了,不同於 Clarkdale 還使用雙晶片的 MCP 封裝方式,這樣的做法直到今日的 Skylake 仍然獲得沿用,除此之外還有一項很大的不同,那就是模組的排列方式改變了,與下圖的 Clarkdale die shot 對比就能很明顯的看出不同。
新的排列方式我們可以看到兩個趨勢,首先是 L3 快取與核心正好是切齊的,這意味著 L3 快取的大小與頻寬將與處理器核心數有關 (儘管 L3 快取是共用的),此外也可以很明顯的發現運算核心與快取以外的部分 (Uncore 電路) 有集中被收到旁邊的趨勢,這基本上是為了讓延展性變得更好,讓核心數量增加或減少的時候造成的空間浪費與重新配置需求降低 (所以雙核心版本其實就只是寬度變窄,直接拿掉中間兩組核心而已)。
將新舊兩代的系統架構圖排在一起就可以很明顯看出其不同,在 Clarkdale 的時代處理器核心與內建顯示核心兩顆晶片 (MCP 封裝) 之間是用 QPI 溝通的,進入 Sandy Bridge 之後就改為直接整合到單一晶片中。
前端電路再次進化
以處理器結構來說,Sandy Bridge 的主要進化是出現在前端的指令解碼、分支預測的部分,SNB 架構處理器的前端增加了一個用於儲存已解碼指令 (microOPs) 的快取 (L0 快取),可以在許多情況下不需要將已解碼的指令重跑一次解碼流程,從而獲得一些性能提升,並且可以在不需要的時候將解碼電路暫時關閉以節省能源,再輔以重新設計過的分支預測電路,在前端部分的性能因此有了一定幅度的提升。
具體的改進內容由於牽涉計算機組織的專業知識與需要相當大的篇幅,因此本篇暫時不談,Intel 官方宣稱新設計的分支預測電路可以提供兩倍多的追蹤目標、可以存放更多的歷史數據以利進行更準確的分支預測。
至於後端的改變就不是那麼明顯了,主要大概就是新增了 AVX 指令集,將對操作數的支援拉高到 256-bit 吧。
環狀內部連線與 System Agent
Sandy Bridge 本身最大的改變應該就屬這項了,過去在 Nehalem / Westmere 架構時,Intel 是使用直接拉線將運算核心與 L3 快取連接在一起的方式實作,但這樣的方式會造成增加核心數的時候有很大的麻煩,所以在 Sandy Bridge 中就使用一組環狀的通道將各個核心的 L3 快取分塊連結起來,每個核心都有一個資料節點,除此之外還有兩個用於 I/O 與管控的節點 (N 核心處理器有 N+2 個節點),這樣的做法最早可以在 Nehalem-EX 上看到:
在採用 Sandy Bridge 架構的處理器上,環形內部連線可以帶來每條連線高達 96 GB/s 的傳輸速度,而且因為速度是隨連線數增長的,因此也就代表內部連結的性能會隨著核心數增加而提升,例如四核心的 L3 快取資料傳輸率可以高達 384 GB/s,雙核心版本則為減半。
環狀連線由 4 個環組成 (依序為資料環、請求環、通知環與監聽環),全部都以核心電壓與時脈運作,值得注意的是 Sandy Bridge 上的節點配置與 Nehalem-EX 有點不同,雖然節點數量仍然是 N+2,但在 I/O 等電路已整合為 System Agent (包含 PCI Express 控制器、記憶體控制器、DMI 匯流排介面、電源管理單元、顯示引擎,參見下圖) 之後,額外的 2 個節點中有 1 個將是內建顯示,所以,是的沒錯,Sandy Bridge 的內建顯示是會用到處理器的 LLC 快取的。
System Agent 的部分運作時脈與電壓則會低於運算核心,整體而言 Sandy Bridge 的供電方式可分為「三大區域」,分別是 System Agent、運算核心與快取、內建顯示,彼此間的供電與時脈互不影響,其中 System Agent 的時脈與電壓是固定不可調整的,內建顯示則使用獨立的電源,因此可以直接被關閉而不影響其他部分。
Table of Contents
Sandy Bridge 其他改進
除了前面提過的之外還有這些改進出現在 Sandy Bridge 架構 (由於篇幅有限故不詳述):
- 更強大的內建顯示 (接近前代的兩倍,不過仍然很弱)。
- 新增第一代的 Quick Sync Video 技術,不過畫質並不理想。
- Turbo Boost 技術升級到 2.0 版本。
- 腳位更換為 LGA1155 (Socket H2),與 Nehalem / Westmere 主流平台使用的 LGA1156 (Socket H) 無法相容,LGA1156 的產品壽命前後只有短短一年 (高階 Nehalem、Nehalem-EP、Westmere-EP 則是使用 LGA1366,Nehalem-EX 使用 LGA1567)。
完全體:Sandy Bridge-E / Sandy Bridge-EP
從 Nehalem 開始 Intel 就確立了這種高階平台比中低階平台落後一代的節奏,所以實際上 Sandy Bridge 架構真正完全發揮是隔年才推出的 Sandy Bridge-EP (伺服器市場) 與 Sandy Bridge-E (高階 HEDT 玩家市場)。
基本上 Sandy Bridge-E 與 Sandy Bridge-EP 是一樣的東西,硬要說的話也可以說 Sandy Bridge-E 是從 Sandy Bridge-EP 直系分化而來,主要差異在於 SNB-E 會比較強調高時脈、不鎖倍頻,但 SNB-EP 則會優先選擇提升運算核心的數量,時脈通常較低,原則上完全不能超頻,最後前者以 Core i7 3800/3900 系列的名義推出,後者則是成為新設的 Xeon E5 家族。
最多可以高達 8 核心、4 通道記憶體、PCI-E 通道翻倍
Sandy Bridge-EP/E 據傳兩種 Layout,其中高配置 (HCC) 設計上是八個核心 (但 Sandy Bridge-E 最高僅有六核心的型號,似乎是八核心沒辦法撐到那麼高時脈,所以 Sandy Bridge-E 家族有兩個核心是被屏蔽的),至於低配置 (LCC) 則據聞是四核心配置,但無相關照片出現 (Core i7-3820 應該是用 LCC)。
從 die shot 上就可以發現,Sandy Bridge-E/EP 的記憶體控制器與 System Agent 面積大很多,實際上是用於額外兩組記憶體通道 (SNB-E/EP 支援四通道 DDR3 記憶體) 與數量超越兩倍的 PCI Express 通道 (高達 40 條,SNB 架構只有 16 條),同時也可以發現 SNB-E/SNB-EP 是不包含內建顯示核心的。
從上圖中我們就可以很容易見識到改成環狀匯流排對 CPU 模組化的幫助,四核心版本的 SNB-EP 就是直接把中間虛線框起來的部分拿掉的結果。
而既然功能性上 SNB 與 SNB-E/EP 數值差這麼多,理所當然的腳位也不通 (基本上只要記憶體控制器不一樣,大概都得換腳位),Sandy Bridge-E/EP 使用的是 LGA2011,與 Sandy Bridge 使用的 LGA1155 相去甚遠,大小差異可以看下圖。
部分型號可支援多處理器配置、ECC 記憶體
雖然都是一樣的 Layout 分化出來的,但是根據系列所屬定位的不同而有些功能上的差異,還有要注意的是腳位分很多種,所以晶片組、主機板的搭配需要特別留意。
Sandy Bridge 分化 | 多處理器配置 | ECC 記憶體 | PCI-E 通道數 | 核心數 | 腳位 |
E3-1200 系列 | 否 | 支援 | 16 | 至多 4 | LGA1155 |
Core 家族 | 否 | 不支援 | 16 | 至多 4 | LGA1155 |
i7-3000 系列 (E) | 否 | 不支援 | 40 | 至多 6 | LGA2011 |
E5-4600 系列 (EP) | 至多 4 | 支援 | 40 | 至多 8 | LGA2011 |
E5-2600 系列 (EP) | 至多 2 | 支援 | 40 | 至多 8 | LGA2011 |
E5-2400 系列 (EN) | 至多 2 | 支援 | 24 | 至多 8 | LGA1356 |
E5-1600 系列 (EP) | 否 | 支援 | 40 | 至多 8 | LGA2011 |
雖然上表中有出現 Sandy Bridge-EN 這東西,不過由於只用於 E5-2400 伺服器系列,銷量也不是太好,所以我就不特別介紹了,但值得一提的是,Sandy Bridge-EX 最後被跳過了,所以 EX 平台是直接從 Westmere-EX (E7) 跳到 Ivy Bridge-EX (E7 v2)。