登入  MY DIGITIMES  1 中文简体版   English 星期六, 7月 26日, 2014 (台北)   
服務說明關於DIGITIMES
泓格科技
伺服 儲存軟體/服務資安網通PC/CE/週邊專欄應用專輯SlideVideo展會專區ePaper 
 DIGITIMES企業IT商情PC/CE/週邊企業ITResearch數據資料庫新增「陸廠智慧型手機出口量」數據!Research數據資料庫新增「陸廠智慧型手機出口量」數據!

表單: 公司代碼:

解構Larrabee核心高效率運行設計關鍵
2009/03/12-Larry Seiler、Doug Carmean…等  

Larrabee的主要功能由CPU核心、純量單元與快取記憶體控制指令,向量處理器、處理器間環狀網路(inter-processor ring network),還有被選中採固定功能邏輯完成的部分,都與過去繪圖處理器架構有相當大的差異,值得深入分析…

Larrabee核心分析其單一中央處理器(CPU)核心,及它接到晶粒上內部連接網路連線,還有該核心部分L2快取記憶體。指令解碼器支援標準Pentium處理器x86指令集、及一些新加入指令。為簡化設計,純量與向量單元使用獨立暫存器組,在兩者間傳輸的資料會被寫入L1快取記憶體,再從L1快取記憶體中讀回。

這顯示8到48個核心配置,跟每種遊戲的效能差異。
   
分格式(binning)需寫入和讀寫分格,可避免階層式深度測試的眾多深度/色彩存取。
Larrabee的L1快取記憶體支援低延遲存取快取記憶體,將資料放入純量與向量單元,配合Larrabee載入運算元(load-op)向量處理器(VPU)指令,這意味著L1快取記憶體可被視為延伸的暫存器群組(Register File)。

強化核心與快取改善演算法效能

Larrabee架構設計能大幅改善演算法效能,特別是有快取記憶體控制指令的演算法。單執行緒Pentium處理器提供8KB指令快取(Icache)與8KB資料快取(Dcache)。Larrabee則為32KB Icache與32KB Dcache,支援每個CPU核心4個執行緒。

Larrabee L2快取記憶體被分為各自獨立的近端子集部分(subset),每個中央處理器(CPU)核心都有1組。各中央處理器(CPU)可快速存取近端L2快取記憶體。中央處理器(CPU)核心讀取的資料會儲存在核心的L2快取記憶體部分,可快速存取與其他中央處理器(CPU)儲存自己的近端L2快取記憶體平行運作。

中央處理器(CPU)核心的寫入資料會儲存在該核心自己的L2快取記憶體子集,並視需要從其他子集部分中刷新過來。環狀網路確保分享資料連貫性,目前各L2快取記憶體部分為256KB(這可支援軟體描繪較大區塊)。

純量單元與快取記憶體指令

Larrabee純量管線衍生自雙指令執行(dual-issue) Pentium處理器,使用短且不昂貴的執行管線。Larrabee提供的現代化功能包括多執行緒、64位元延伸指令和精密(sophisticated)指令預取功能(perfetching)。這些核心支援完整Pentium處理器x86指令集,因此可執行現有程式碼,包括作業系統核心(kernel)與應用程式。 Larrabee也加入新純量指令,如位元計數(bit count)與位元掃描(bit scan),後者可尋找暫存器中下1個被設定的位元(set bit)。

Larrabee也加入新指令與指令模式支援明顯的快取記憶體控制(explicit cache control)。包括將資料預取到L1或L2快取記憶體的指令、及減少快取記憶體管線(cache line)優先權指令模式。例如,串流資料通常會將現有資料從快取記憶體中「掃出」(Sweeps Out)。Larrabee可標示各串流快取記憶體管線,在存取後收回。這些快取記憶體控制指令也讓L2快取記憶體模仿暫存式記憶體(scratchpad memory)使用方式,同時保持完整連貫性。

在單一核心內,多個執行緒同步存取共用記憶體的成本不高。在單一核心上的執行緒分享相同的近端L1快取記憶體,因此用單一原子旗標訊號(atomic semaphore)在L1快取記憶體內讀取就能勝任了。在多個核心間同步存取的成本就比較高(因為需要處理器間鎖定inter-processor locks)。這是多處理器設計的常見限制。

解決多核心難題

雙指令執行中央處理器(CPU)核心,經常因為難以發現可同時執行的指令,導致喪失應有效能。經測試,Larrabee的雙指令執行解碼器,具高速多指令執行率(multi-issue rate),主要與次要指令管線配對原則(pairing rules)具決定性(deterministic)關鍵,因此,編譯器可以執行廣泛範圍的離線分析,比起執行時期採非循序指令選取器(out-of-order instruction picker)分析會更有效率。

所有指令都能在主要管線上執行,如此一來可減少編譯程式的組合(combinatorial)問題。次要管線可執行大量純量x86指令集的子集部分(subset),包括載入、儲存、簡單算術邏輯運算單元(Arithmetic and Logic Unit;ALU)作業、分支、快取記憶體處理指令與向量儲存。因為次要管線相對小而便宜,無法在每個週期都執行雙指令而浪費的晶片面積與耗電有限。根據分析,編譯器替雙指令執行排程(schedule)是件相對容易的工作。

最後,Larrabee支援4執行緒,每個執行緒都有獨立暫存器組。如果編譯器替程式碼排程時,無法避免停滯(stall),就會切換執行緒。切換執行緒涵蓋從L2快取記憶體載入L1快取記憶體的部分延遲,因為在這些狀況下,資料無法先行載入L1快取記憶體。如果多執行緒在同1個核心上,使用同組資料執行,例如描繪(render)相同區塊(tile)上的三角形,快取記憶體的使用會更有效率。

Larrabee向量處理單元結構分析

Larrabee的運算密度來自16倍寬的向量處理器(16-wide VPU),它執行整數、單精度浮點與倍精度浮點指令。向量處理器(VPU)與其暫存器約占中央處理器(CPU)核心面積的1/3,提供大部分整數與浮點效能。

Larrabee選擇16倍寬(16-wide)的向量處理器(VPU),目的在增加運算密度、與更寬幅的向量處理器(VPU)難以獲得高使用率間所作的權衡。早期分析顯示,如果1次以16個通道處理1個元件的16個獨立像素,也就是1次以獨立指令處理16個像素的紅、綠色…等,而非1次處理多個顏色通道(color channels),則典型的像素渲染器(pixel shader)的工作負載為88%。

Nvidia GeForce 8運作在類似的模式,它安排其純量單指令流多資料流(SIMD)處理器,以32個為單位分組,每組執行相同指令。主要差異在於Larrabee的迴路控制、快取記憶體管理、和其他如與向量處理器(VPU)平行執行的程式碼運作,並非採固定功能邏輯。

Larrabee向量處理器指令容許多達3個運算元,其中之一會直接來自L1快取記憶體。如果該資料已被預取放入快取記憶體,L1快取記憶體事實上相當於1個延伸暫存器群組(Register File)。8位元萬國碼正規化(Unicode Normalization;unorm)、8位元不帶正/負號的整數(Unsigned Integer;uint) 、16位元帶正/負號的整數(Signed Integer;sint)、與16位元浮點資料(float data),可從快取記憶體中讀出,並轉換為32位元浮點或32位元整數,不會影響效能。這種設計能增加儲存在快取記憶體中的資料數量,並減少獨立資料轉換指令需求。

下一階段,將來自暫存器與記憶體資料,跟向量處理器(VPU)的處理通道(processing lanes)緊密結合(align)。暫存器資料可用數種方式替換(swizzling),如支援陣列相乘(matrix multiplication)。記憶體傳來的資料可跨越向量處理器(VPU)通道(lanes)間進行複製。這種運算方式在繪圖與非繪圖類平行資料處理相當常見,可提升快取記憶體效率。

向量處理器支援多種處理整數與浮點資料指令。該指令集提供標準算術運算,包括浮點混合乘加運算(fused multiply-add)、及標準邏輯運算,包括從像素中取出非位元組對齊欄位(non-byte-aligned fields)指令。這些都是載入運算元(load-op)指令(從暫存器或記憶體讀取資料,再將結果寫入向量暫存器)。額外的載入與儲存指令,支援更多種浮點值、及大多數繪圖處理器(GPU)較罕見或更複雜的資料格式間轉換。使用獨立指令處理這些格式,可大幅節約晶粒所佔面積與耗電,僅僅需付出少許效能成本。

VPU滿足複雜條件分支 令編譯器自由度更高

向量處理器(VPU)指令集包括支援收集(gather)與分散(scatter),即從非連續位址載入資料或將資料寫入非連續位址。作法並非從單一位址載入16倍寬(16-wide)的向量,而是將16個向量元素從高達16個不同位址載入,或存入多達16個不同位址,這些位址由另1個向量暫存器指定。

這容許平行執行16個渲染器執行個體(shader instances),每個看似連續,甚至於在使用運算出的索引來執行陣列存取時亦可行。收集(gather)與分散(scatter)執行速度受限於快取記憶體,通常1個週期僅能存取1次快取記憶體管線。但許多工作負載都有高度相互連結(coherent)存取關係,執行時間遠小於16個週期。

最後,經由遮罩暫存器(每個向量通道有1位元)控制,Larrabee的向量處理器指令可被預期。該遮罩(mask)控制向量暫存器或記憶體位置的某些部份會被寫入、而某些部分不會被更動。例如,純量假設用法(if-then-else)控制結構可被對應到(Mapped)到向量處理器(VPU) 。使用指令設定遮罩暫存器並比較之,再用遮罩控制器的相對極性來控制,要執行if或是else子句(Clauses)的寫入結果。如果遮罩暫存器全部為0或1,可以跳過整個子句。這能減少小型子句的分支預測錯誤成本,並帶給編譯器的指令排程器更高自由度。

向量處理器也用這些遮罩執行集體載入與儲存指令,從記憶體的連續位置存取已經致能的元件(enabled elements)。這讓程式設計師整合(bundle)稀疏矩陣執行串(sparse strands of execution) ,滿足複雜分支條件(branch conditions),達到提升向量運算目的。

段標:處理器間環狀網路架構分析

Larrabee採雙向環狀網路,讓中央處理器(CPU)核心、L2快取記憶體、與其他邏輯區塊…等晶片的主體(agent)彼此溝通。如果延展到超過16個核心,我們會使用多個短連結環(short linked ring)。

每個環的資料路徑寬度,每1個方向為512位元。所有路線安排(routing)決策都在訊息加入(injecting)網路前即已確定。例如,每個主體(agent)可在偶數時脈時接受來自1個方向的訊息,在奇數時脈時接受來自另1個方向的訊息。此舉能簡化路線安排(routing)邏輯,也表示訊息送上網路時,路線安排器(routers)就無需儲存訊息。在極低成本達到高頻寬、減少爭用(contention)的目的。

Larrabee L2快取記憶體設計方面,可讓各核心以高頻寬進行記憶體位址(其他核心未寫入的位址)存取,因此被儲存在該核心近端L2快取記憶體子集部分(subset)裡。每個核心都能平行存取自己的L2快取記憶體,而不需和其他核心溝通。但在分配L2快取記憶體內的新快取管線(line)時,會透過環狀網路確認資料分享,維持資料連貫性。

處理器間網路也提供L2快取記憶體存取記憶體途徑。通常高階實作(implementation)會包括多個標準設計記憶體介面,設置於處理器間網路上,以減少傳輸壅塞。晶粒上網路的延遲,會增加記憶體存取時間,但相較於DRAM存取延遲,額外的環延遲較少。

最後,晶粒上的處理器間網路,讓中央處理器核心存取固定功能邏輯主體(agent),後者則可存取L2快取記憶體和記憶體。至於記憶體控制器則通常設置在環狀網路上,以減少傳輸壅塞。

段標:Larrabee固定功能邏輯分析

現代繪圖處理器(GPU)內建固定功能邏輯,處理各種繪圖工作,包括材質過濾、顯示處理、後期渲染器(post-shader) 、alpha混合(alpha blending)、轉成掃描畫面(rasterization)與內插法(interpolation)。

圖標題:相對延展性與核心數的關係圖
在本文中,轉成掃描畫面(rasterization)的定義僅僅是尋找圖元(primitives)的涵蓋範圍,內插法(interpolation)指的是尋找圖元(primitives)中被涵蓋樣品位置的參數值。固定功能邏輯通常需採先進先出(FIFOs)來平衡運算負載。想同時避免浪費面積與破效能瓶頸,決定正確的邏輯區塊和其先進先出(FIFOs)大小,設計有其困難度。

如果軟體實作(implementation)能提供足夠效能時,Larrabee會以軟體取代固定功能邏輯。特別是Larrabee不包括轉成掃描畫面(rasterization)、內插(interpolation)或後期渲染器(post-shader) 、alpha混合(alpha blending)的固定功能邏輯。因此Larrabee可添加新功能與最佳化,並在描繪(rendering)管線不同地方實作這些工作,視特定應用在那裡執行效率最高而定。

圖標題:frame binning v.s. immediate mode頻寬比較
軟體實作也讓Larrabee視需要分配效能,而非設計硬體以滿足最高效能需求。Larrabee包括材質過濾邏輯,因為該作業無法以核心上的軟體高效率執行。經分析顯示,如果在核心上執行軟體材質過濾,運算所需時間為固定功能邏輯的12到40倍,其實這有4大肇因:

1、材質過濾仍多使用8位元色彩元件,用專屬邏輯過濾會比32位元寬度的向量處理器管道更有效率。

2、高效率選擇非對齊2 x 2方陣(2 x 2 quads)過濾,需專門管線聚集邏輯(pipelined gather logic)。

3、將材質資料載入向量處理器過濾,需要超乎實際的(impractical)暫存器群組(Register File)頻寬數量。

4、即時材質解壓縮使用專屬硬體,比中央處理器程式碼更有效率。

Larrabee材質過濾邏輯本質(internally)與一般繪圖處理器材質邏輯近似。它每個核心有32KB的材質快取記憶體,並支援常見作業,如DirectX 10壓縮材質格式、多圖像金字塔映射(Multi-Image Pyramid mapping;mipmapping)、非等向性過濾(anisotropic filtering)…等。

圖標題:點對點平均時間分析
核心透過L2快取記憶體將指令傳給材質單元,也以同樣方式收到結果。材質單元執行虛擬到實體頁面轉換(translation),並將遺失頁面報告給核心,而且重試材質過濾指令,直到頁面傳到記憶體。如果軟體效能夠快,Larrabee也可直接在核心執行材質作業。(本文與圖片由ACM授權刊載)

- 本文摘錄自論文「Larrabee:支援視覺運算的多核心x86架構 (Larrabee: A Many-Core x86 Architecture for Visual Computing) 」之中譯版,該論文原文由ACM授權Intel使用,並僅於電子時報中文版進行譯文摘要及圖表A之單次刊登。圖表B為Intel提供電子時報單次使用。完整之論文內容請參考
http://www.intel.com/technology/visual/microarch.htm?iid=tech_micro+larrabee (包含技術介紹及論文原稿)
www.intel.com.tw/pressroom (論文中譯本)
- 本摘錄文及所有圖表禁止其他單位或個人未經ACM & Intel同意即逕行轉載重製。其他單位或個人如欲使用本論文(包含英文原文及中譯本),請參考論文內有關如何取得ACM授權同意之說明並據以申請。
- 本摘錄文部分段落標題為編者所加。

訂閱免費DIGITIMES商情電子報,掌握即時科技產業動態與最新技術方案

相關報導
關鍵字 
英特爾(Intel)NVIDIAlarrabeeGPU
 加入已選取到「關鍵字追蹤」 什麼是「關鍵字追蹤」


四零四科技
產業商情 產業與技術專輯
天梭表高雄大遠百名品店七夕前盛大開幕
天梭表在2014年的七夕前,為慶祝天梭表高雄大遠百名品店盛大開幕,特地邀請李毓芬與知名Model Jeff配戴「TISSOT Titanium Aut...
萬寶龍在父親節獻上深受男仕喜愛的精選好禮
浪琴表征服者經典系列 征服每一位父親的心
雷達表讓老爸父親節「爸」氣十足
意法半導體推出首款高動態範圍音效處理器
更多
Allegro
 商情報導
天梭表高雄大遠百名品店七夕前盛大開幕
天梭表在2014年的七夕前,為慶祝天梭表高雄大遠百名品店盛大開幕,特地邀請李毓芬與知名Model Jeff配戴「TISSOT Titanium Aut...
萬寶龍在父親節獻上深受男仕喜愛的精選好禮
浪琴表征服者經典系列 征服每一位父親的心
雷達表讓老爸父親節「爸」氣十足
意法半導體推出首款高動態範圍音效處理器
更多
羅慧夫
   ■ MY DIGITIMES   ■ 中文简体版   ■ English  
公司簡介  |  著作權  |  隱私權  |  常見問題  |  發布新聞稿( 中文English )  |  人才招募 |    Top 
 圖表

Market Place
本網站內之全部圖文,係屬於大椽股份有限公司所有,非經本公司同意不得將全部或部分內容轉載於任何形式之媒體 © DIGITIMES Inc. 版權所有