加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • Ice Lake概述
    • Sunny Cove內(nèi)核架構(gòu)
    • CPU內(nèi)核的“前端”
    • CPU內(nèi)核的“后端”
    • 通用 vs 專用:現(xiàn)代CPU的設計思路演進
    • CPU平臺設計
    • 結(jié)語
  • 相關推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

教程 | 如何設計一個高性能CPU?

2021/08/02
413
閱讀需 17 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

在所有的芯片品類中,中央處理器CPU一直是最核心的類型,可能沒有之一。它驅(qū)動著各種各樣的電子設備,小到我們的手機、電腦,大到數(shù)據(jù)中心里成千上萬臺服務器,它們的控制中樞和大腦都是CPU。

CPU最主要的優(yōu)勢就是通用性,它必須適應各種不同的應用場景,同時盡可能保持高性能和低功耗,這其實是一件非常復雜的事情。??次椅恼碌呐笥芽隙ǘ贾牢沂莻€吃貨,我們就拿吃來舉個例子。如果我們把設計芯片比作開飯店,那么設計那些針對特定應用的專用芯片就好比是開個火鍋店,或者拉面館,只需要專注于做好幾道看家菜就可以了。而設計CPU就好比是開個大酒樓,各大菜系都得整明白,煎炒烹炸也得樣樣精通,甚至西餐甜點也得配齊。相比于開火鍋店來說,這個難度就大多了。

所以為了實現(xiàn)和完善這種通用性,現(xiàn)代CPU的設計思路也在不斷進化。除了不斷升級微架構(gòu),做到性能和功耗的迭代優(yōu)化外,CPU還在不斷集成一些專用的加速單元,用來處理像人工智能這樣非常重要或者流行度越來越高的應用。這種以通用性能升級為主,并兼顧部分專用應用加速技術(shù)的思路,就成為了現(xiàn)代CPU設計的主旋律。

在之前的文章里,我們專門介紹過英特爾至強可擴展處理器對人工智能應用提供的優(yōu)化支持。今年四月,英特爾發(fā)布了最新的面向單路和雙路服務器的第三代至強可擴展處理器,代號為Ice Lake。這篇文章我就想以Ice Lake為例,和大家一起來看下現(xiàn)代CPU的這種通用+專用的整體設計思路,包括微架構(gòu)、系統(tǒng)架構(gòu)、IO和存儲這些單元模塊的設計方法,以及如何圍繞CPU來構(gòu)建整體的生態(tài)系統(tǒng)。

還是老規(guī)矩,我總結(jié)了一個思維導圖,包含了這篇文章的所有知識點,獲取的方法見文末。

Ice Lake概述

Ice Lake是英特爾第一個采用10納米工藝打造的至強CPU,單芯片最多集成40個核心,和上一代Cascade Lake相比提升了近43%。它采用了最新的Sunny Cove微架構(gòu),每時鐘周期指令數(shù)(IPC)提升了20%。它的DDR4內(nèi)存通道的數(shù)量從6個提升到了8個,首次支持了PCIe4.0,并且每路支持高達64個通道??偠灾琁ce Lake無論是架構(gòu)還是性能,都比前代產(chǎn)品取得了明顯的提升。

在特定應用的加速方面,它繼承了很多前代產(chǎn)品的重要特性,比如之前文章里介紹過的深度學習加速技術(shù),同時也有升級和新增,比如引入更多與安全相關的硬件支持,還有能靈活進行頻率調(diào)配的SST技術(shù)等等。這些我們接下來就結(jié)合CPU架構(gòu)設計方面的知識,一個一個仔細說。

Sunny Cove內(nèi)核架構(gòu)

首先值得一說的,就是Ice Lake里采用的全新內(nèi)核架構(gòu)Sunny Cove。內(nèi)核是CPU最重要的組成部分,在現(xiàn)代CPU里一般都有少則幾個,多則幾十個內(nèi)核,它們和存儲器還有IO單元一起組成了完整的CPU片上系統(tǒng)。通常我們也把內(nèi)核架構(gòu)稱為CPU的微架構(gòu)。

CPU微架構(gòu)的本質(zhì),其實是對某種指令集架構(gòu)的具體實現(xiàn),常見的指令集架構(gòu)包括x86、ARM、RISC-V等。不過即便是相同的指令集架構(gòu),不同公司的實現(xiàn)方式也不盡相同。但是通常來說,CPU微架構(gòu)都需要實現(xiàn)四個主要的操作,分別是取指、解碼、執(zhí)行和寫回。

也就是說,CPU會從內(nèi)存中取出一條指令,然后通過解碼器把它分解成若干個部分,并識別出來這條指令的功能,比如算術(shù)運算、跳轉(zhuǎn)、比較等等。解碼分解之后的指令和數(shù)據(jù)就會被送到執(zhí)行階段。執(zhí)行完的結(jié)果被寫回到寄存器或者存儲器里。這個過程周而復始,直到整個程序執(zhí)行完畢。

再深入一些,我們通常把這四個操作分成兩部分,實現(xiàn)“取指”和“解碼”這兩個操作的電路在CPU微架構(gòu)里叫做前端,實現(xiàn)“執(zhí)行”和“寫回”的結(jié)構(gòu)叫做后端。比如在Sunny Cove微架構(gòu)示意圖里,上面的這些綠色的部分都屬于前端,下面藍色的部分則屬于后端。

Sunny Cove架構(gòu)圖

 

CPU內(nèi)核的“前端”

前端最主要的作用就是盡全力給后端提供充足的彈藥,讓后端的執(zhí)行單元盡量保持滿負荷運轉(zhuǎn),從而減少空轉(zhuǎn)造成的性能和功耗浪費。因此前端就需要盡可能多地從內(nèi)存中獲取指令,然后把它們解碼成后端能夠直接執(zhí)行的微操作。

由于CPU運行的速度遠遠高于從內(nèi)存中讀取指令和數(shù)據(jù)的速度,所以在前端中我們有指令緩存,它的讀取速度非???,可以一次性把很多指令都取過來緩存起來,然后直接進行解碼,這樣就減少了數(shù)據(jù)從內(nèi)存?zhèn)鬏數(shù)紺PU的等待時間。

前端另一個非常重要的功能就是分支預測。上圖里的BPU,就是專門做分支預測的單元(Branch Prediction Unit)。當程序出現(xiàn)分支的時候,我們需要提前預判程序大概率會走哪個分支,然后提前取到與這個分支對應的指令和數(shù)據(jù)?,F(xiàn)代CPU中的分支預測可以做到非常準確,比如它采用了很多類似機器學習神經(jīng)網(wǎng)絡的方法,可以自己學習并預測分支的結(jié)果。對于Sunny Cove來說,它提升了前端的容量,并且進一步改進了分支預測的性能,這對內(nèi)核整體性能的提升都有很大的幫助。

CPU內(nèi)核的“后端”

CPU微架構(gòu)的后端有很多ALU,也就是算術(shù)邏輯單元(Arithmetic Logic Unit),它們是執(zhí)行算術(shù)和邏輯運算的核心結(jié)構(gòu)。這些ALU可以并行執(zhí)行前端發(fā)送過來的微指令,這就是所謂的超標量結(jié)構(gòu)。這些微指令先通過調(diào)度器進行調(diào)度,然后發(fā)送給不同的ALU去執(zhí)行。它們可以是按順序的,也可以是亂序的。這就需要后端去仔細分配這些微指令的執(zhí)行單元,并且在執(zhí)行之后再把結(jié)果按順序組合起來。通常來說,能夠支持亂序執(zhí)行的數(shù)量越多,內(nèi)核性能就越高。

以Sunny Cove為例,它的亂序執(zhí)行的窗口數(shù)量就從上一代的224個增加到了352個,也就是說內(nèi)核變得更寬了,同時它的調(diào)度器和分配單元也都進行了大幅改進,內(nèi)核上的緩存容量也有增加。所有這些更新升級,都幫助Sunny Cove微架構(gòu)顯著提升了性能。也使得Ice Lake在整數(shù)、浮點數(shù)、Stream Triad和LINPACK上的平均性能提升到了上一代的1.46倍。

CPU芯片整體架構(gòu)設計

CPU芯片的整體架構(gòu)包括內(nèi)核的排列、以及同樣至關重要的存儲和I/O子系統(tǒng)。和前一代產(chǎn)品相比,Ice Lake的芯片整體架構(gòu)也有了不少變化,其中一個最主要的區(qū)別就是把I/O單元放在了芯片的南北兩側(cè),這樣能夠更加充分地利用整個芯片的面積,提升芯片的集成度。 

對于緩存架構(gòu),Ice Lake采用了分布式的三級緩存LLC,總?cè)萘肯喈斢贑ascade Lake的1.5倍。這種結(jié)構(gòu)讓每個內(nèi)核都可以訪問片上的三級緩存,從而能實現(xiàn)比較均衡的訪問時延。這對于數(shù)據(jù)中心的很多應用場景來說非常重要,因為它們需要的不僅是時延的平均值要低,同時對時延的抖動也非常敏感。這個和“木桶效應”相似,也就是木桶能裝的水取決于最短的木條,這就要求每個木條都不能太拉胯。從下圖可以看到,Ice Lake在執(zhí)行網(wǎng)絡轉(zhuǎn)發(fā)任務的時候(下圖右),不僅時延平均值遠低于前一代產(chǎn)品(下圖左),而且也非常穩(wěn)定,沒有太大波動。

在內(nèi)存和I/O接口方面,Ice Lake也提升了內(nèi)存通道的數(shù)量和性能,從上一代支持6通道的DDR4 2933,升級到8通道的DDR4 3200,這使得它的內(nèi)存容量和內(nèi)存帶寬可分別提升到上一代的2.66倍和1.6倍。Ice Lake還支持3個UPI、也就是超級通道互聯(lián),這使得雙路服務器CPU的通信帶寬可以達到11.2GT/s。此外,它還支持64通道的PCIe 4.0,這就使得它能與性能更優(yōu)的存儲和網(wǎng)絡設備協(xié)同工作。

通用 vs 專用:現(xiàn)代CPU的設計思路演進

就像前面說的,現(xiàn)代CPU的設計思路是通用性能提升+特定場景優(yōu)化。在特定應用優(yōu)化上,Ice Lake依然集成有英特爾的深度學習加速技術(shù)DL Boost,主攻INT8加速,能將推理性能提升到上一代產(chǎn)品的1.74倍。

Ice Lake另一個重要的性能優(yōu)化叫做頻率選擇技術(shù)(Speed Select Technology,SST)。它能靈活調(diào)整CPU單個和多個核心的基頻和睿頻,既可以作用于單個核心,也可以對多個核心組成的不同組合進行精細化的調(diào)控,從而針對不同的應用場景更好地平衡CPU的性能和功耗。

比如運行在線游戲這類性能要求高、或?qū)τ跁r延比較敏感的業(yè)務的時候,就可以把CPU調(diào)整到高主頻、低核心數(shù)的模式,以滿足對實時性和響應速度的需求。同樣的,對于很多云業(yè)務來說,就可以把CPU切換成頻率不那么高,但是有更多核心數(shù)同時工作的模式,這樣就能提升計算的吞吐量,并且?guī)砀叩男詢r比。

和前一代相比,Ice Lake對SST技術(shù)進行了升級,可以借助軟件實時修改CPU核心的頻率調(diào)配方案,不再需要重啟服務器,這就讓頻率的調(diào)配更加靈活和便利。

接下來說一下和安全相關的技術(shù)支持,這對數(shù)據(jù)中心和企業(yè)級的應用非常關鍵,特別是在數(shù)據(jù)敏感型應用和關鍵業(yè)務的領域,我們都需要盡量保證代碼和用戶數(shù)據(jù)不被盜取或篡改。

Ice Lake進一步擴展了AVX-512指令集,從而在硬件層面上支持那些常見的密碼操作算法的并行執(zhí)行,從而大幅提升密碼操作應用的性能和吞吐量,這就是密碼操作硬件加速技術(shù)(Crypto Acceleration)。它特別適合于5G基礎設施、VPN、還有SSL網(wǎng)絡服務器這些需要進行大量密碼操作運算的應用場景。據(jù)了解IPSec公司就使用了這種加速技術(shù),將VPN數(shù)據(jù)包的處理速度提升到了原來的1.94倍。

除了密碼操作加速之外,Ice Lake還集成了另外一種和安全相關的指令集擴展,叫做軟件防護擴展技術(shù)SGX。它的本質(zhì)就是通過指令請求CPU在內(nèi)存中分配出一塊受CPU保護的區(qū)域,也叫做“飛地”。這個很像是疫情期間,人們建的封閉的隔離區(qū),只不過這個隔離區(qū)里都是沒有被感染的人。

英特爾SGX技術(shù)示意圖

飛地中受保護的代碼和數(shù)據(jù)不受操作系統(tǒng)或者VMM的影響,即便操作系統(tǒng)、BIOS、或者VMM這些比客戶軟件更為底層的基礎軟件在黑客攻擊或高權(quán)限軟件攻擊中淪陷,通過SGX技術(shù)生成的飛地也能更有效地阻斷這些攻擊,盡力避免其中應用程序和數(shù)據(jù)被非法復制或篡改。

Ice Lake雙路服務器能支持最高達1TB的飛地空間,這就為很多企業(yè)推進更大數(shù)據(jù)量的隱私計算打下了基礎。比如螞蟻集團就利用SGX技術(shù)搭建了一個隱私保護機器學習平臺,并且基于之前文章介紹過的Analytics Zoo,提出了一個更加安全的分布式端到端推理服務流水線。百度在他們的深度學習平臺飛槳中,也通過SGX技術(shù)引入了機密計算的能力,這樣可以通過更加安全可信的方式,為深度學習模型提供更為多源的數(shù)據(jù)。

百度MesaTEE整體架構(gòu)

 

CPU平臺設計

除了CPU本身的算力之外,圍繞CPU搭建的計算平臺的性能也非常重要。特別是現(xiàn)代服務器和數(shù)據(jù)中心設計中要兼顧計算、存儲、網(wǎng)絡這些硬件,同時還有軟件和系統(tǒng)的優(yōu)化。這些軟硬件配合使用,不僅能對CPU進行針對性的補強,還可以起到1+1>2效果,最終實現(xiàn)一個高性能、低功耗的系統(tǒng)級解決方案。這個也是現(xiàn)代CPU系統(tǒng)設計的趨勢。

在存儲方面,Ice Lake可以搭配傲騰持久內(nèi)存,它能兼顧高性能、低時延,以及大容量和數(shù)據(jù)的持久性。由于Ice Lake相比上一代產(chǎn)品提升了內(nèi)存通道的數(shù)量和速度,搭配傲騰持久內(nèi)存200系列時,理論內(nèi)存帶寬平均提升幅度可達32%;單個Ice Lake搭配使用DRAM和傲騰持久內(nèi)存的時候,內(nèi)存總?cè)萘磕苓_到6TB。

英特爾還發(fā)布了全新的、支持PCIe4.0的傲騰固態(tài)盤P5800X系列。相比同樣支持PCIe4.0的NAND固態(tài)盤,它的時延可降低達13倍,QoS提升達66倍,每GB的IOPS提升達26倍,耐用性提升也達33倍以上。

網(wǎng)絡方面,Ice Lake搭配了英特爾800系列的以太網(wǎng)卡,它支持數(shù)據(jù)中心常用的網(wǎng)絡端口以及RDMA協(xié)議,還能通過ADQ等技術(shù)為高優(yōu)先級網(wǎng)絡工作負載提供加速,特別適合于數(shù)據(jù)中心里的高速網(wǎng)絡應用,比如網(wǎng)絡功能虛擬化NFV里關于數(shù)據(jù)轉(zhuǎn)發(fā)的加速。

結(jié)語

我們以英特爾最新發(fā)布的代號為Ice Lake的第三代至強可擴展處理器為例,梳理了現(xiàn)代CPU設計的一些關鍵理念,包括微架構(gòu)設計、芯片的內(nèi)存、接口子系統(tǒng),還有針對不同應用場景提供的特定加速能力。另外非常重要的就是CPU平臺的概念,也就計算、存儲和網(wǎng)絡這些關鍵組件如何相互配合、并且實現(xiàn)系統(tǒng)級的平臺方案。

英特爾

英特爾

英特爾在云計算、數(shù)據(jù)中心、物聯(lián)網(wǎng)和電腦解決方案方面的創(chuàng)新,為我們所生活的智能互連的數(shù)字世界提供支持。

英特爾在云計算、數(shù)據(jù)中心、物聯(lián)網(wǎng)和電腦解決方案方面的創(chuàng)新,為我們所生活的智能互連的數(shù)字世界提供支持。收起

查看更多

相關推薦

電子產(chǎn)業(yè)圖譜

微信公眾號“老石談芯”主理人,博士畢業(yè)于倫敦帝國理工大學電子工程系,現(xiàn)任某知名半導體公司高級FPGA研發(fā)工程師,從事基于FPGA的數(shù)據(jù)中心網(wǎng)絡加速、網(wǎng)絡功能虛擬化、高速有線網(wǎng)絡通信等領域的研發(fā)和創(chuàng)新工作。曾經(jīng)針對FPGA、高性能與可重構(gòu)計算等技術(shù)在學術(shù)界頂級會議和期刊上發(fā)表過多篇研究論文。