X流處理器計算群內互連的物理設計與最佳化,X流處理器計算群互連線長分布分析,X流處理器計算群互連線長最佳化,協處理器群以小博大Cortex-A15的大小核戰略,引入“大小核”戰略,功耗就這樣被降服,
X流處理器計算群內互連的物理設計與最佳化
主要研究了X流處理器計算群內互連的物理設計與最佳化,對互連線延時最佳化技術、布局布線最佳化、互連分布模型等方面進行了詳細的分析和研究。
X流處理器計算群互連線長分布分析
首先對X流處理器計算群進行初始預布局布線,然後將其實際初始互連分布情況和三種典型的互連分布模型估算情況進行對比研究,以便有目的性地對X流處理器計算群進行後端布線最佳化。從以下三個步驟對實際初始互連分布情況和典型模型的估算情況進行對比研究。
·對Rent指數進行估計
由於線長分布模型的Rent指數p和互連數目成指數關係,p在數值上的小偏移將會帶來互連數目在數值上的大偏移,因此,對於Rent指數p的精確計算對於保證模型的正確性非常重要。但是,還沒有算法能計算得到p的精確值,需要利用經驗值對p進行估計。1978年,Chiba通過研究發現0.5<p<0.6;之後,Ferry通過對基於層次劃分結構進行布局的系統進行分析,發現p值比chiba的估計值小,p≈0.21;最後,Bakoglu得到了一種較為普遍的結果,他提出針對不同的體系結構對應的p值不同,如微處理器,門陣列,高速計算機(晶片)等,對應的p值分別為0.45,0.5,0.63。因此,認為針對X流處理器計算群,p≈0.63。
·模型設定
對於Donath(1981)模型,具體參數設定中,對應的互連分布根據關於net數目的互連分布nk的表達式得到。對於Davis(1998)模型,具體參數設定中,對應的互連線長分布根據晶片上任意邏輯網路的關於線長分布i(l)和平均線長Lavg(p)表達式得到。對於Christie(2000)模型,對應平面布局的互連線長分布的兩種情況根據p為Rent指數,l為互連線長,L為晶片的邊長,L約等於根號G,G為邏輯門的複雜度,一般為邏輯門的數目得到。
·結果分析
從三個方面對實際互連分布實驗數據和模型估算數據進行比較:
(l)互連分布:使用matlab對所有信號的每個線長值對應的互連數目繪製圖形,得到X流處理器計算群的實際初始互連分布的直觀圖形。實際初始的互連分布情況和通過 Donath(1981),Davis(1998),Christie(2000)模型得到的互連分布情況進行對比的情況。
(2)平均線長:系統中每個信號(不含電源和地)長度的度量都是通過把所有將信號從源端到所有接收端連線起來的線長分布的總和。
由對互連分布、總的互連長度、平均線長及誤差的分析結果,可知實際初始的互連分布存在諸多不完善之處:
首先,實際初始線長分布與典型的模型估算情況有較大偏差:短線數量普遍高於模型估算情況;中長線和長線數量普遍高於模型估算情況;短線數量相對長線數量比值低於模型估算情況。其次,實際初始情況下總的互連長度和平均線長比任何模型都高。最後,實際初始情況下和所有模型的誤差均為負值。因此,需要進一步進行布線最佳化,以便改善X流處理器計算群的互連長度分布情況,同時提高整體性能。
X流處理器計算群互連線長最佳化
發現X流處理器計算群實際初始互連的劣勢主要是短線數目相對長線數目較少。為了提高整體性能,我們需要將更多長線最佳化成短線,以減小線延時。
將長線最佳化成短線最常用的方法就是在長線上插入中級驅動器,但會增加晶片面積。因此,為了在現有晶片面積大小(4*4)的基礎上繼續最佳化長線,考慮採用多層次互連結構,然後考慮了一種更好的互連策略。
·多層次互連結構
採用多層次互連區分局部和全局導線,可以部分解決因互連線尺寸縮小和晶片尺寸增大引起的延時增加,這是因為局部互連線可以採用尺寸較小的下層金屬互連線,而全局長互連線可以採用較寬較厚的上層金屬互連線,從而使傳播延時縮短。同時,通過通孔可以把不同層的金屬互連線連線起來,這樣信號進行長距離傳送時不再需要通過多晶或擴散層進行跨接。由於現代工藝晶片的大部分面積為互連線所占據,採用多層金屬互連線可以減小晶片尺寸。此外,互連線的平均長度與互連線的層數成反比,所以採用多層互連可以進一步改善延時。
結合時序報告結果,知道全局控制信號Stan線延時較大,負載較重。Stall信號從微控制器到達計算群部件後,分成5個部分對其相應部件進行控制,Stan信號和相關部件的連線為2stall信號連線。
根據時序結果對StallO,1,2,3,4進行相關路徑分析,發現關鍵時序路徑大多和stall4相關,為了最佳化Stall4的長線延時而插入的buffer占了很大一部分晶片面積。因此,在不同層次對stallo,1,2,3,4信號布線,將Stall4放置在高層:6一8層,stallo,1,2,3,4放置在次高層:5一7,1一4低層主要用於功能模組內的互連走線。模組間的連線主要通過交叉開關實現,我們考慮將所有和交叉開關有關的模組間連線放置在4層以上。根據X流處理器計算群互連的實際情況進行最佳化設計的互連層結構為最佳化後的互連層結構。
·對角布線
多層次互連減少了布線的擁擠程度而且互連線可以在源端和目的端之間更多地走直接路徑,所以常常能夠縮短平均線長。然而,目前布線工具中典型的“曼哈頓式”(橫平豎直)布線方法面積消耗很大。對角布線首先沿兩個最佳方向中的一個方向布線,接著連線另一個方向,可以有效縮短線長。從多層次互連和對角布線兩個方面對X流處理器計算群進行後端布線最佳化,得到了一個較為最佳化的結果,最佳化後的互連線長分布情況和三種典型模型估計情況再次進行對比。
最佳化後的互連線長分布和三種典型模型估算情況已經大致接近。這說明最佳化後的互連層結構和對角布線方法較好地改善了互連分布。經過版圖規劃最佳化和布線最佳化兩步後,X流處理器計算群整體性能得到了提高。
協處理器群以小博大Cortex-A15的大小核戰略
進一步解析Cortex-A15自身架構的先進之處。
雖然Cortex-A15和Cortex-A9的指令集均為ARMv7-A,但前者卻憑藉改進的架構實現了性能的大幅飛躍。首先,在ARM多核處理器中,單核心內所配置的解碼引擎決定了每個時鐘周期執行命令的效率。典型的A9架構每個核心配置了2個解碼引擎,而典型的A15架構每個核心的解碼引擎數量則提升到了3個,這意味著其每周期可以處理三條指令,指令解碼效率比A95提升了33%。
浮點運算能力決定了處理器的多媒體性能。典型的A9架構的浮點單元都是由1個VFPv3浮點引擎和1個NEON多媒體指令引擎組成,而典型的A15架構則是由2個VFPv4浮點引擎(支持IEEE754浮點規範,性能大約是VFPv3的2倍)和2個NEON多媒體指令引擎組成,這又是領先A9架構的優勢所在。
A15架構的指令寬度也從A9的64bit大幅度提升到128bit,可以支持8條指令分派(A9僅支持4條),而且還專門為VFP和NEON單元分別設定了指令分派連線埠,極大地改善了A9架構因分派連線埠較少而容易引發的浮點指令擁堵的情況。
引入“大小核”戰略
經過一番架構上的改良 ,讓Cortex-A15的性能達到了3.5DMIPS/MHz,較Cortex-A9的2.5DMIPS/MHz提升了40%。但根據半導體不變的定律,在生產工藝不變的前提下,功耗肯定要和性能成正比。指望生產工藝從40nm/32nm快速過渡到28nm/22nm肯定是不現實的,於是ARM想出了“大小核”的戰略,也就是所謂的big。LITTLE技術。NVIDIA曾在Tegra 3處理器中引入了“4+1”的協核心技術,即除了4顆最高可達1.4GHz的Cortex-A9核心之外,還在CPU內部加入了一枚500MHz的協核心,在待機和音樂播放等低負載工作時關閉4顆主力核心,切換到協核心模式來節省電力。而big·LITTLE則是ARM官方提出一種類似Tegra 3的協核心技術的解決方案。但與Tegra 3不同之處在於,big·LITTLE已經從“協核心”概念過渡到了“協處理器群”(由多個處理器核心組成)的概念。
功耗就這樣被降服
簡單來說,big·LITTLE是一種可以將Cortex-A15處理器群和Cortex-A7處理器群打包在一個核心內的技術,二者擁有完全相同的指令、數據類型和定址模式,並且它們能夠產生相同的結果,並可以根據系統當前的負載情況進行快速的切換。四核Cortex-A15處理器很可能都是由雙核A15+雙核A7組成,而八核Cortex-A15處理器則是四核A15+四核A7,其中A15就好比Tegra 3的主力核心,而A7就是Tegra 3的協核心。
打個比方,將汽車所用的汽油比作手機的電池,Tegra 3中的協核心好似汽車的電瓶,最多只夠照明和聽音響使用(不費油),但讓汽車跑起來的還是耗費汽油的發動機(費油)。Cortex-A15引入的big·LITTLE技術就好比油電混合發動機,A15處理器群就是耗油的部分,而A7處理器群則是用電的部分,汽車在城市或跑高速時(上網、聽音樂、看高清視頻、玩普通3D遊戲)靠電力驅動就足夠了,只有爬坡或超車(玩大型3D遊戲)等需要急加速時才會輪到汽油驅動,你說能不省油嗎?
雖然ARM處理器的性能和英特爾X86處理器還存在非常大的差距,但在手機和平板電腦這類移動市場,即使是四核A9處理器都出現了性能過剩的苗頭。但憑藉big·LITTLE大小核戰略,讓Cortex-A15可以輕鬆實現高性能和低功耗的平衡。毫無疑問,2013年將成為“雙核A15雙核A7”或“四核A15四核A7”的天下,ARM以小搏大的戰爭才開始。