英特爾剛剛發佈的Atom系列最新架構Tremont詳細解析:異構多核系統的發展

上週Intel在加州舉辦的Linley秋季處理器大會上發佈了X86 Atom低功耗處理器系列Tremont的架構設計細節。Intel面向終端領域的處理器主要是2個產品線,一個是高性能的CORE系列,就是我們通常所說的“酷睿”,用於桌面系統;另一個是低功耗的ATOM系列,中文稱為“凌動”,主要面向移動端和IOT。Tremont作為ATOM的最新架構,其設計思路和高性能的Sunny Cove會有很大不同,對於功耗、面積等指標會更看重。本文將通過解讀Tremont的公開信息來探討intel移動端處理器的設計細節和思路。

英特尔刚刚发布的Atom系列最新架构Tremont详细解析:异构多核系统的发展

Atom芯片曾經在上網本中輝煌過一陣,不過隨著智能手機的普及,ARM以絕對的優勢壟斷了這個龐大的市場,Atom似乎銷聲匿跡了。儘管Atom的功耗一直被人所詬病,不過由於其基於X86指令集,在兼容性和編程性上還是有一定的優勢,尤其是需要與桌面系統配合的時候。因此在工業領域和一些專用移動市場,比如windows平板,個人存儲(NAS)等領域還是有廣泛的使用。

Intel在Goldmont plus之後規劃了3代架構路線:Tremont, Gracemont, and ‘Future Mont’。Tremont作為第一代10nm的低功耗架構,不但是對上一代架構細節和指標上的改進,更重要的是和高性能的CORE核心一起組成異構多核系統,提供更好的能耗。這個方法跟ARM的big.LITTLE架構差不多,都是在一個系統裡捆綁多個高性能核心和低功耗核心,根據不同程序的負載需求來選擇對應的核心運行,其他核心進入低功耗狀態,從而獲取性能和功耗的良好平衡。Intel的大小端系統稱為“Lakefiled”,包括一個CORE內核:Sunny Cove;還有四個ATOM核:Tremont。根據披露的信息,Lakefield可以支持1+4個核心同時工作,這個和ARM的big.LITTLE不太一樣,後者只能選擇其中一類進行工作。這裡可以看出Intel和ARM在異構系統設計上的不同。ARM注重的是能耗平衡,而Intel更希望在高性能應用中儘可能挖掘各個核心的潛力,從而獲得更高的性能。Atom雖然是低功耗核心,不過這是相對於CORE核心而言的,比ARM來說還是要高不少。Tremont核心的配置和ARM A77不相上下,可以說是intel的little core相當於ARM 的big core。這也是面向不同領域設計的選擇。ARM的big.LITTLE是移動端,功耗

敏感,小核心並不能提供多少性能輸出;而Intel的Lakefield是桌面和服務器端,在高負載下輸出儘可能高的性能更重要,同時在低負載情況下控制功耗。不過結構不同的多處理器同時運行,在軟件調度上的要求不小,這個就非常考驗Intel的軟件優化實力了。

英特尔刚刚发布的Atom系列最新架构Tremont详细解析:异构多核系统的发展

基於上述分析,Tremont的設計指標就很好理解。雖然是低功耗核心,performance仍然是第一位的。可以看到相對上代的Goldmont plus,Tremont有進30%的性能提升,甚至在一定的功耗下,其能效比Sunny Cove還要高一些。在性能提升的前提下,再設計相關的結構來控制功耗和成本。

英特尔刚刚发布的Atom系列最新架构Tremont详细解析:异构多核系统的发展

Tremont的基本流水線框圖,這個圖畫的實在是難以描述,看起來挺炫,如同PCB版圖一樣,對於理解並沒有多大幫助。可以看到Tremont的硬件配置,6 decode,4 dispatch,10 exec,dual load store。這個小核心和ARM的大核心A77差不多。其中有幾個值得關注

的細節,首先就是2個decode pipe的設計,每個pipe包含3個decoder,一起組成3x2=6個decode 寬度。這個結構比較奇怪,並沒有遵循通常的多位寬譯碼設計,尤其是在沒有明確指出multi-threading需求的情況下,後邊會仔細分析其細節。其次是較小的dispatch寬度,通常都會選擇dispatch和decoder寬度一致,較小的dispatch寬度似乎有些浪費decoder的邏輯,對於10 execution ports的需求也有些勉強,這裡應該主要考慮了功耗和成本的需求。第三是小核心仍然支持了AVX128運算,體現了在算力上的需求。因而低功耗上就比較有限了。我在wiki上也搜到了一張重繪過的Tremont結構圖,可以用來參考。

英特尔刚刚发布的Atom系列最新架构Tremont详细解析:异构多核系统的发展
英特尔刚刚发布的Atom系列最新架构Tremont详细解析:异构多核系统的发展

前級流水的設計和傳統結構沒有太大的不同,主要的改進針對prefetchers and branch predictor。Tremont使用了和CORE架構中類似的prefetch和predictor,雖然增加了面積,但可以換取更好的預取性能和分支預測準確率,這個也和其性能優先的設計思路相關。和ZEN類似,Tremont也使用了zero cycle penalty的L1 predictor(應該是BTB)。這裡提到了一個新概念“out of order fetch”。通常處理器的執行在renaming之前一定都是順序的,之後開始亂序執行,但通過ROB來管理指令的程序流順序。從fetch就開始out-of-order似乎不科學。我認為這裡的out-of-order並不是通常意義上的亂序執行,而是支持了更深的instruction prefetch。通過在更長的prefetch序列上做預測,直接獲取預測後的指令序列,這樣體現出一定程度的亂序,但是並沒有打亂程序流的順序。可以看到Tremont可以支持8條cachelilne miss的pre-fetch操作,和上述分析是匹配的。

英特尔刚刚发布的Atom系列最新架构Tremont详细解析:异构多核系统的发展

Tremont採用了一個比較奇怪的decode流水設計。從FETCH之後,流水線被分成對稱的2條,每條包括3個decoder和獨立的inst Queue,然後在RENAME級重新合併。這個設計是很少見的。分離的decode雖然可以提供6寬度的譯碼,不過如果其硬件完全獨立的話,並不能很好的處理兩者之間的依賴關係,微指令的處理也會受影響。由於沒有更多的細節,這裡只能猜測其設計的初衷。一個可能的原因是功耗,通過關閉其中一條decoder,可以在小核心內實現一個更小的運行核心,不過這就需要單獨的clock/power domain,也需要其他模塊的可配置支持。其次是多線程,雖然Tremont結構沒有提到multi-threading的設計,但2條分離的pipeline在微架構上是可以提供一個簡單的雙線程設計的。不過考慮到之前atom也能支持多線程,再設計一個特殊的多線程結構的理由並不是很能站住腳。第三就是簡化設計,提高頻率。通過犧牲6 decoder的譯碼性能來簡化多位寬譯碼邏輯。雖然有上述分析,不過這些並不是特別有說服力的理由。希望之後能從Intel得到更多的信息。

另一個特殊的設計是6 decode,4 dispatch,10 exec的配置組合。中間的dispatch寬度似乎有點小。同時Tremont結構為了減少面積還省掉了mop cache。這個數字的比例感覺上不是特別的合理。相信Intel在選取配置的時候肯定是做過性能評估的,認為這樣的組合在有限的面積上可以獲得令人滿意的性能。因此可能的理由應該是為了面積和功耗。由於缺少了mop cache,dispatch需要直接從decoder獲取最多6條指令。而通常由於執行單元的限制,可能並不能一次將所有的指令發射下去,在這種情況下,減少dispatch端口數目可以降低硬件複雜度和時序的影響。雖然有這些可能的理由,最終的決定還是多依賴於性能評估的結果。

英特尔刚刚发布的Atom系列最新架构Tremont详细解析:异构多核系统的发展

cache結構上,Tremont還是很大方的,32KB的L1,1.5~4.5MB的L2,和主流的高端移動處理器持平。在memory hierarchy上,L2處於一個cluster內,可以被1~4個核心共享。相比上代,Tremont還支持了L3 cache,可以cross cluster訪問。這基本上是主流處理器內存系統的設計。可以看到ATOM系列的L2 latency較 Sunny Cove高不少,其中應該是將某些並行訪問改為了串行訪問以減少存儲操作的功耗。

英特尔刚刚发布的Atom系列最新架构Tremont详细解析:异构多核系统的发展

後端流水線的主要提升是直接把ROB的數目從95增加到了208。這樣大大增加了處理器並行執行的指令數目和動態調度能力,和其10個exec pipe的能力相匹配。執行上Tremont是標準的renaming physical resigster結構。這裡的RS就是我們通常所說的issue Queue。這裡Tremont採用了分離式的Issue Queue,這個跟ZEN是類似的。看來現在的主流設計更注重頻率和ALU的性能,從而部分犧牲了在schedule上的效率。整數執行上3個ALU,1 branch,2條LS a

ddr流水線和1條store data流水線,和A77基本上持平。這一部分大家的思路都差不多。

英特尔刚刚发布的Atom系列最新架构Tremont详细解析:异构多核系统的发展

AVX流水線上也是中規中矩。Tremont支持128bits運算寬度,包含2條ALU和一條store data pipeline。執行上兩個ALU並不對等,一個支持 fused additions (FADD),另一個支持fused multiplication and division (FMUL)。

英特尔刚刚发布的Atom系列最新架构Tremont详细解析:异构多核系统的发展

總結一下,Tremont的設計主要體現了Intel在異構多核上的思路,即以高性能桌面和服務器為目標,在能耗允許的前提下,儘可能挖掘小核心的運算能力,從而和大核心一起提供更強勁的性能。這個和ARM在big.LITTLE結構上的思路是有所不同的。儘管有一些類似亂序fetch,dual pipe decoder的設計,從大的結構上,Tremont並沒有跟傳統處理器有什麼明顯區別。可以說現代處理器的設計已經進入了細節為王的時代,比拼的是每個小模塊的設計和技巧,通過一點點的改進,聚沙成塔,最後在整體上體現出較大的優勢。Intel有上千人的設計團隊,可以在算法探索,微架構設計,物理實現上做的更深入更細緻,最終累積出巨大的優勢。這也是目前國內設計公司比較欠缺的地方。隨著更多的人參與到集成電路的事業中,並能夠沉下心做設計,不斷積累經驗,我們就能夠慢慢的縮小和這些巨頭的差距,直到有能力挑戰。

MikesICroom

回覆“課程”獲取斯坦福大學AI加速器課程資料

溫馨提示

英特尔刚刚发布的Atom系列最新架构Tremont详细解析:异构多核系统的发展


分享到:


相關文章: