片上系統設計案例分析-Xbox主機

A system on a chip (SoC es-oh-SEE or sock) is an integrated circuit (also known as a "chip") that integrates all or most components of a computer or other electronic system. These components almost always include a central processing unit (CPU), memory, input/output ports and secondary storage, often alongside other components such as radio modems and a graphics processing unit (GPU) – all on a single substrate or microchip. It may contain digital, analog, mixed-signal, and often radio frequency signal processing functions (otherwise it is considered only an application processor) – Wikipedia.
SoC透過把整個(或大部分)系統功能整合到一個晶片上,實現全系統的PPA最佳化,提升效率,降低成本、功耗和系統尺寸。手機AP就是典型的SoC,已經發展到很高的技術水平,而蘋果M1的出現,又讓SoC得到更多關注。遊戲主機晶片也是一類很有特色的SoC,之前討論不多,本文將以Xbox主機為例分析一下其SoC需求挑戰和實現方式。
結合遊戲主機SoC的特色,本文首先從圖形API出發,介紹圖形API的管線結構和發展歷史;接下來,介紹20世紀90年代後至今的微軟公司幾代Game Console主機的硬體架構和歷史;最後,以Xbox Series X為例,介紹了遊戲主機的Graphics IP和SOC系統實現。
從圖形API到圖形架構
Game Console主要有兩個大的部分組成,一個是Graphics IP,一個是整個遊戲系統的搭建。
圖形API
Graphics IP需要符合相關的程式設計規範要求,通常的程式設計介面有DirectX,OpenGL等。DirectX有多個元件,我們這指的是圖形學相關的Direct3D的部分。下面簡單列舉了DirectX中圖形部分的發展歷程。
  • DirectX 1(1995年)
    二維(2D)影像加速。
  • DirectX 2(1996年)
    二維圖形增加動態效果,採用平滑模擬和RGB模擬兩種方式對三維圖形進行加速。
  • DirectX 3(1997年)
    實現較為簡單的3D效果。
  • DirectX 5(1997年)
    霧化效果、alpha混合、紋理壓縮。
  • DirectX 6(1998年)
    增加雙線性過濾、三線性過濾等最佳化3D影像質量的技術。
  • DirectX 7(1999年)
    加入了座標轉換和光源渲染。
  • DirectX 8(2000年)
    引入pixel shader和vertex shader,可程式設計渲染單元。
  • DirectX 9(2002年)
    Shader model 2.0/3.0,強化了可程式設計部分設計。
  • DirectX 10(2007年)
    Shader model 4.0, 定義了Unified shader,Geometry shader。
  • DirectX 11(2009年)
    引入tessellation/multi-threading/direct compute/shader model 5.0。
  • DirectX 12(2014年)
    更底層的API,硬體抽象,提高多執行緒效率等改進。
Direct3D12的圖形管線結構圖
Figure 1 DirectX 12 管線結構圖[1]
上圖是DirectX的邏輯管線結構圖,包含了整個過程中的輸入和輸出的resource view,root signature data,紫色和藍色的部分是主要的流程stage,其中硬體架構實現上分為shader和fixed-function兩種處理型別。其中shader主要在可程式設計單元執行,而fixed-function主要是採用固定管線pipeline設計。
  • Input assembler(fixed function unit)
    負責讀取索引和vertex資料。
  • Vertex shader
    輸入為vertex,輸出為vertex,主要負責頂點渲染。
  • Hull shader
    輸入為patch primitive,輸出為patch control points和patch constant。
  • Tessellator(fixed function unit)
    曲面細分單元。為線段和三角形創造新的頂點和連線。
  • Domain shader
    拿到HS渲染過的control points和patch constant,以及曲面細分後的位置資訊,將他們變成頂點。
  • Stream out(fixed function unit)
    將Geometry的輸出的primitive寫入記憶體buffer。
  • Geometry shader
    輸入是各種primitive和鄰接資訊,輸出不同的primitive。
  • Rasterizer(fixed function unit)
    光柵化單元,將primitive轉換為pixel或者sample的過程。
  • Pixel shader
    負責畫素渲染,輸入為插值後的頂點資料,輸出為畫素顏色。
  • Output merger(fixed function unit)
    ROP(render output unit),負責depth-testing,frame buffer blending
Xbox系列歷代主機硬體引數
從2001年第一代Xbox算起,今年微軟Xbox系列主機已經過了20個年頭,一共發表過4代主要的機型,其主要機型的硬體效能引數如下:
Xbox系列主機硬體引數表[2][3]
Xbox
Xbox是微軟進入TV遊戲主機領域的第一款產品,由Bill Gates親自領導打造,Xbox的研發代號為“Midway”,二戰期間,美軍曾在中途島戰役中一舉擊沉日軍4艘航空母艦,從而扭轉了太平洋戰爭的局勢。代號暗示了微軟與當時強大的日本遊戲主機產業對抗的決心。此時的TV遊戲主機領域,日本人擁有強大的產業,Sony的第一代PlayStation銷量超過1億臺,然而6年未更新的主機效能嚴重落後PC硬體的發展,微軟想搶在Sony前面釋出新一代主機,搶佔先機。
微軟不惜血本的定義了Xbox的硬體效能,Xbox是那個世代最好的主機硬體,之後微軟不斷投入,導致虧損超過40億美元。在爭奪第三方軟體廠商方面,微軟也不惜採用補貼開發資金和包攬廣告費等非常規手段。遊戲主機市場變成了微軟、索尼、任天堂三足鼎立之勢。
Xbox 360
Xbox 360的推出比PS3整整早了一年。當時的半導體發展速度甚至超越了摩爾定律,2005年,Intel公司已經推出了雙核3.6GHz的PentiumD 9xx系列處理器,因此,Xbox360的處理器頻率直接比前代Xbox翻了4倍以上。此外,圖形API的發展也突飛猛進,DirectX8.0中引入vertex shader和pixel shader使得3D渲染使得遊戲顯示效果大幅提升,3D遊戲爆發式增加。但急於搶佔市場先機的微軟未把握好產品質量,產品推出之後1年,三紅事件集中爆發(主機電源按鈕指示燈亮起3個紅燈),微軟並未公佈三紅的原因,但大多數情況系統處於高負載狀態,三紅事件使得遊戲玩家體驗不佳,微軟信譽受損。
Xbox One
在經歷了Xbox360的三紅事件後,微軟將系統的穩定性放在了重要位置,決定採用半定製的方式和AMD開發新一代的Xbox產品,Xbox One的SOC使用了AMD的處理器核心和graphics IP為基礎搭建。因此在遊戲開發方面,Xbox One也可以利用已有的PC軟體棧進行遊戲設計。不過定製晶片也導致了Xbox One的高成本,高達499美元的發售價格比PS4貴了整整100美元。後續微軟還推出了兩款改良機型Xbox One S(2016.8)和Xbox One X(2017.11),以增強圖形效能和支援4K/60fps。
Xbox Series X
從Xbox one到Series X的3年裡,工藝從28nm進化到7nm,頻率並沒有多大的提高,但是電晶體密度的增加使得儲存和運算都進行的大幅提升,圖形處理技術也有了不少突破,包括DLSS,Ray-tracing等新的渲染方式加入。和AMD合作多年後,微軟也組建了自己晶片的研發團隊,但是大部分的IP還是由AMD提供,包括核心的顯示處理和CPU部分。CPU使用的Zen2是由AMD的明星架構師Jim keller領導開發的Zen的第二代產品。GPU也是基於定製的AMD RDNA2的架構。
搭建Game console系統(Xbox Series X)
Game console的圖形效能主要取決於CPU、Graphics IP和獨立視訊記憶體的效能,遊戲console的SOC在幾乎和PC相同的功耗下,需要提供更好的遊戲效能,更小的機箱尺寸,更小更靜音的風扇設計,因此需要更多創新的設計來保證系統工作的穩定性。這裡我們以Xbox Series X為例,分析一個game console的系統組成。
下面是Xbox Series X的SOC結構框圖。
Figure 2 Xbox Series X SOC架構圖[4]
CPU部分包括2個zen2 core組,每個組裡面4個core,每個core有512KB的L2 cache,每個組有4MB的L3 cache,每個core裡面有2個256b的SIMD浮點處理單元。
GPU基於AMD RDNA架構定製,一共12Tflops的浮點處理能力,支援可變速率渲染,光線追蹤,部分駐存紋理,一共2個shader engine,每個shader engine裡面2個shader assembly block,每個shader assembly block裡面7個workgroup processor(WGP),一共有28個work-group processor。裡面還包含了一些專用圖形fixed-pipeline單元,color/depth,Raster,Prim,shaderInput,Geometry,以及一些系統模組,如command processor,GDS,DMA,display。Graphics IP裡面採用了4級的儲存結構,L0$ – L1$ – L2$ – GDDR。另外,每個shader engine中有一個WGP(灰色)用於harvest來最佳化產品的yield。
Figure 3 Xbox Series X 圖形處理IP架構圖[4]
互聯和IO部分,Xbox Series X使用了3個Hub分別用於媒體、系統、IO處理,L2 cache和GDDR之間採用了scalable data fabric,一共20個channel。I/O則採用了8lane的PCIE4和HDMI2.1。
片外GDDR6記憶體一共16GB,其中10GB提供560GB/s的頻寬,其中6GB提供336GB/S的頻寬。
多媒體部分,支援4個顯示器輸出,影片編解碼器提供4K/8K的AVC,HEVC/VP9 HDR 解碼,AVC/HDR編碼。另外還有一個聲音處理器單元。
安全部分,片上有一個hardware security processor負責整體的安全方案,mediastreaming platform(MSP)負責遊戲的加解密版權和壓縮方案。
總體上,Xbox Series X 提供了Xbox One X 2倍的GPU效能,2.4倍的GPU perf/w, 3倍的CPU效能,1.7倍的記憶體頻寬,2倍的IO頻寬。
Figure 4 Xbox Series X 塔形機箱內部構造圖[4]
Xbox Series X的機箱比傳統的遊戲機箱小了20%,為了滿足功耗和散熱需求,Xbox工程師進行了多種策略來處理散熱問題,上圖是整體塔形機箱的設計,按機箱的擺放方向,最上層是光碟機和PSU電源模組,下面是南橋的PCB,再下面是中央底座,下方是SOC的PCB,風扇處於南橋和SOC PCB之間,最下面是heat sink。SOC的PCB也分成了2面,上下層分佈不同的晶片便於分開散熱。
另外,SOC晶片功耗管理設計方面,Xbox Series X也有很多創新的設計:
  • PSM (power supply monitor)
    使用片上的電壓monitor來穩定電壓。
  • DLDO (digital low dropout regulator)
    每個CPU core提供不同的工作電壓。
  • Fine Grained DVFS (dynamic voltage frequency scaling)
    最佳化voltage和frequency的曲線,在同樣的頻率下能夠使用更小的電壓。
  • CLDO (chip low dropout regulator)
    每個chip使用不同的的電壓,減少CPUL2/L3的power消耗。
  • DC-BTC (direct current – boot time calibration)
    對DC電壓調節器的耐受和老化進行標定來減少電壓。
  • Process re-centering
    調整半導體制程工藝(Vt,ldsat)來最佳化功耗和效能。
  • Vmin search
    使得每個chip高負載場景下有不同的電壓最小值。
  • Power states
    為不同的工作場景設定多個GPU/CPU/fabric/memory的power state,從而節約功耗。
  • Configurable GPU WGP setting
    提供不同場景下yield和power之間的tradeoff
總結
微軟花費了數百億美金進入TV遊戲產業,從軟硬體出發,打造了4代game console後,已經站穩腳根。打造一臺跨越數年生命週期,效能穩定優秀,並且軟體容易開發,移植相對容易的game console主機是一件很不容易的事情。核心SoC在遊戲主機中起到的關鍵的作用,也是非常典型的定製SoC案例,非常值得分析和討論。
參考文獻
[1]https://docs.microsoft.com/en-us/windows/win32/direct3d12/pipelines-and-shaders-with-directx-12
[2]https://en.m.wikipedia.org/wiki/Xbox
[3]《遊戲機實用技術》500vol.
[4]PaulPaternoster, Andy Maki, Andres Hernandez, Mark Grossman, Michael Lau,David Sutherland, Aditya Mathad, ISSCC2021, XBOX Series X: ANext-Generation Gaming Console SoC
關於壁仞科技研究院
壁仞科技研究院作為壁仞科技的前沿研究部門,旨在研究新型智慧計算系統的關鍵技術,重點關注新型架構,先進編譯技術和設計方法學,並將逐漸拓展研究方向,探索未來智慧系統的各種可能。壁仞科技研究院秉持開放的原則,將積極投入各類產學研合作並參與開源社群的建設,為相關領域的技術進步做出自己的貢獻。
掃碼關注我們

相關文章