好像蠻久沒更新這個系列了?可能是因為 AMD 後期的歷史實在不是很好寫,所以一直懶得動筆的關係吧。本篇要談的是 AMD 的 K10 架構,算是 K8 架構的後繼產品,開發過程中曾經短暫被稱為 K8L,在上市之後則被命名為 AMD 10h 處理器家族。

K10?那 K9 去哪裡了?

這應該是當時很多人都有的疑惑吧,畢竟 AMD 一路走來正好是 K5、K6、K6-2、K7、K8,大家也就很理所當然地認為 K8 的下一代應該是 K9 了,確實一開始 AMD 的原生雙核心 64 位元 x86 架構處理器一開始是以 K9 為開發代號進行,原定在 2006 年前後發佈,同時也在初期的電路架構完工之後出現在官方的投影片上過,不過最終 K9 的開發計畫被取消,有說法表示原因是因為 K9 的英文諧音 canine 有狗類的意涵,因此被捨棄。

後來 K9 架構宣布過的許多特色在後來的 K10 架構 (曾短暫被命名為 K8L 架構) 上出現,同時也預示了接下來十年內 AMD 由盛轉衰與 Intel 的重返王位 (其實說起來蠻諷刺的,幾乎可以說 K10 跟後來的推土機是 AMD 版的 Netburst,AMD 也曾經傳過要讓 K9 衝上 10GHz 的消息)。

K9 架構主要特色

AMD 曾經在財務分析師日 (Analyst Day) 上宣布「下一代的 AMD 處理器架構」(當時還是 K9) 會有這些特色:

  • 為大規模並行運作需求而設計的執行緒架構
  • 晶片級別的多執行緒 (多核心設計)
  • 更高的擴展能力 (多 CPU 架構)
  • 10 GHz 的運作時脈
  • 大幅提升超純量與亂序執行的性能
  • 大型快取記憶體
  • 強化的分支與記憶體預測
  • 虛擬化、安全性功能
  • 動態與靜態電源管理能力
  • 媒體或向量演算指令擴充

某種程度上來說其實還蠻像 Intel 當年對 Netburst 做得美夢的,不知道當時的 AMD 是不是挖角了 Intel 的高層?

品牌策略異動

從 K10 開始 AMD 在 Athlon 品牌上面新增了更高階的 Phenom 產品線作為消費性市場的旗艦產品,這個做法跟 Intel 把 Core 做為比 Pentium 高階的產品線發佈相當類似,也因此從 K10 開始,以 Athlon 64 X2 為名推出的處理器實際上僅為中低階定位。

K10 架構特色

AMD 在 K10 架構處理器在前期引入了基於矽鍺絕緣 (SGOL) 技術的 65 奈米 SOI (Silicon On Insulator, 將矽電晶體結構覆蓋在絕緣體層上的設計) 製造工藝,SOI 製造工藝由 IBM 發明,主要獲得 AMD、Motorola、德州儀器、威勝 VIA 與 NEC 等公司的採用 (說起來這幾家公司好像剛好最近幾年狀況都不是太好……),Intel 則並未採用這樣的技術。

後期 (2008 年) 則引入了同樣由 IBM 發展的 45 奈米 Ultra-LKMG SOI 製造工藝,並對架構進行了額外的優化,提升效能幅度相當明顯因此有些媒體會將後期產品另外命名為 K10.5。

除此之外 K10 世代的 AMD 處理器主要使用原生四核心設計,不同於 Intel Core 使用的原生雙核心、拼裝式四核心設計,但也因此帶來了電路複雜度過高的問題。

890FXAUD7_3

從 K8 開始採用的 HyperTransport 點對點匯流排架構也升級至 3.0 版本,以與 2.0 及 1.0 版本維持相容的基礎下將資料吞吐量增加到 5.2 GT/s,前期 K10 產品僅支援 DDR2 記憶體,後期產品則同時對 DDR2 與 DDR3 記憶體提供支援能力 (同時整合兩種記憶體控制器),且不論是消費性產品線或是伺服器級產品都能支援 ECC 記憶體,其中企業級產品還額外新增了對 Fully Buffered 記憶體的支援。

am2-am3

至於插槽的部分在 AMD 陣營可說是錯綜複雜,K10 架構前期採用 Socket AM2+ 插槽 (圖左),與前代 K8 處理器架構晚期產品使用的 Socket AM2 維持雙向的相容性,而 2009 年後的晚期產品則升級到 Socket AM3 插槽 (圖右) 以提供 DDR3 記憶體的支援能力 (要注意的是 AM3 的相容性僅有單向,即 AM3 處理器可以安裝在 AM2+ 的主機板上搭配 DDR2 記憶體使用,但 AM3 主機板是不能安裝 AM2 或 AM2+ 處理器的)

Shanghai-cache-diagram-686x429

快取方面的設計則分為三層,L1 容量每個核心都足足有 128 KB (其中 64 KB 為資料快取,64 KB 為指令快取),當執行 Prefetch (預取) 的時候資料可以直接被拉進 L1,而未必得一路從 L3 進入 L2,再從 L2 進到 L1,至於 L2 則每核心有 512 KB 至 1 MB 的大小,L3 則僅在中高階產品線上出現,由各核心共用,最大可以來到 12 MB。

值得注意的是 K10 架構中的 L3 快取運作時脈是以 HyperTransport 的時脈為準,因此「並不是以處理器全速運作」,測試上可以得知 K10 架構的 L3 快取只比記憶體快一些,主要優於記憶體的部分是延遲方面。

真。Flex Memory

相較於 Intel 的設計,AMD 在 K10 架構中實作雙通道的方式是直接在處理器裡面做兩組 64 位元寬度的記憶體控制器,因此除了一般的 Ganged Mode 之外,當兩組記憶體通道的記憶體時序或容量不同調時,兩組記憶體控制器是可以拆開來工作的,也就是從原本的 128 位元模式轉為 64 位元 + 64 位元模式 (Unganged Mode),仍然是雙通道,因此彈性會比 Intel 的 Flex Memory 技術來得大上許多 (實際上 Unganged Mode 的性能也比傳統設計來得好 (因為通道變細之後單一週期下資料塞滿整條寬度的機率增加,也就是頻寬利用率變高了,這項技術被命名為 AMD Memory Optimizer Technology)。

480_051

指令集擴充與 SSE4 之亂

如同先前在「電腦達人養成計畫 2-3:鳥瞰歷代處理器指令集」介紹過的,在這個時期 AMD 開始跟 Intel 玩「搶名字」這種很無聊的小把戲,故意搶先把 SSE4 這名字佔了起來,在 AMD K10 當中新增了「4 條指令」,但實際上最後根本沒人支援,大家都跑去使用 Intel 的 SSE4.1 與 SSE4.2 了,所以最後 AMD 也不得不放棄 SSE4A 這東西。

比起 SSE4A 這種為搶名子而特別創造的東西來說,K10 真正的指令集強化在於被稱為 SSE128 的技術,SSE128 將原本只有 64bit 的命令執行能力擴充到與 Intel 同級的 128bit,前後端相關的輸入輸出通道也都配合增加一倍的頻寬,因此不用像以前那樣遇到 128bit 指令時得拆成兩個指令做,這在多媒體性能上是會有所提升的。

運算核心本身則沒有太大改變

或許是受制於研發成本或時程上的因素吧,雖然圍繞著運算核心的部分幾乎都得到相當大幅度的改變了,但運算核心本身則幾乎就單純是 K8 架構的沿用,單一週期能解碼的指令數僅有 3 個,亂序執行能力方面最高僅能佔存 72 個指令 (相對而言 Core 2 則是 96 個),執行單元的數量也不及 Core 2。

Barcelona-arch

性能不如人意,規格漂亮也難以力往狂瀾

這大概是 K10 標誌著 AMD 由盛轉衰最主要的原因吧?受制於原生四核心設計過於龐雜的電路與製程,再加上 AMD 在 K10 上市之前在各種公開場合上宣傳 K10 的性能提升程度相當明顯導致人們對其有相當高的期待,最終上市之後 K10 架構處理器前期產品的性能可說是讓人相當失望,沒有因為「原生四核心設計」而壓過對手 Intel 的拼裝四核心設計也就算了,甚至在許多測試項目上還不及 Intel 的競爭產品。

X3

不過後來憑著壓低價格推出「三核心處理器」Phenom X3 系列來迎戰 Intel 的雙核心產品線 (基本上三核心在測試中還是打得贏雙核心的),因此在低價市場仍然可以佔有一席之地,某種程度上來說這個時期的 AMD 有漸漸退縮回到早期稱霸低階市場但在高階市場只能徹底被擊垮狀態的趨勢。

AMX8451

至於股價表現方面嘛,當時的 AMD 市值一度跌到比當年併購 ATi 的聘金還低的程度,各大媒體爭相洗臉 AMD 當時的 CEO (有報導標題直接寫:AMD 是時候放棄了吧。(或是該把 CEO 炒了?) 這樣的標題)。

Bug、Bug,與 Bug

時至今日,人們對 K10 架構處理器最深刻的記憶大概只剩下當時 AMD 連續出了好幾個包吧?其中最有名的應該是 TLB (轉譯後備緩衝區) Bug,TLB 通常位於 CPU 快取與運算核心之間或是 CPU 快取與記憶體之間,用於改進記憶體虛擬位置與實體位置間轉譯的性能,而且在 AMD 架構下扮演了相當重要的角色。

TLBBIOS

不幸的是第一批 K10 架構產品的 TLB 有很大的問題,而且是發生在硬體電路設計上,沒辦法透過 BIOS 做簡單修正,後來 AMD 針對這批處理器的做法是直接讓 BIOS 把處理器的一部分 TLB 功能停用掉,這連帶導致 K10 本已不如人意的性能更加雪上加霜,處理器有 bug 的消息廣為人知之後也很大程度的影響銷售,這個問題也導致 AMD 沒辦法快速將 K10 的運作時脈提升到效能需求水準以上。

直到 2008 年中,AMD 才成功修復了 TLB bug,並將修復後的產品型號增加 50 以做出區隔,而除了 TLB bug 以外還有 Cold bug (沒聽過 CPU 會怕冷的吧?) 等問題,不過影響層面並不那麼廣因此就比較還好一些。

APU 與 HSA

AMD_A-series_logo

APU (Accelerated Processing Unit,加速處理器) 是 AMD 在 2011 年提出的單晶片系統 (SoC) 方案,將 CPU 核心、記憶體控制器、顯示核心、PCI-E 控制器、北橋、UVD 單元等功能全部整合到單一晶面上,是 AMD Fusion 計畫 (公佈於 2006 年) 的成果,而第一代的 HSA (異質系統架構) 中的桌面與標準筆記型電腦版本 Liano 中包含的處理器核心就是基於 K10 架構的產物。