Robin Randhawa Brian Jeff



對于未來任何一種處理器,處理速度都將因為受限于散熱問題而無法大幅躍進。設備一旦達到熱障(thermal barrier)就會熔化,如果是移動電話,便會使設備的溫度上升造成用戶不適。除了物理層面的散熱問題外,能源效率也相當差。若調校處理器使其速度加快,則所需耗能便會呈指數數增長,而為了增加最后一丁點的性能需要付出的成本非常高。過去,尺寸倍增代表著速度翻倍,但如今,面積倍增,速度卻只增加幾個百分點,因此復雜度并不代表有效率,而這就是單一核心系統有所限制的原因之一。
如果無法加快單一核心的速度,那么就必須增加獨立核心的數量。這也有助于每個核心去應對其被分配到的任務需求,而這也就是ARM big.rLITTE(大小核)處理器技術的貢獻所在。
big.LITTLE處理器技術要解決業界目前最嚴峻的挑戰:通過提升性能和延長電池續航時間來拓展消費者“始終在線、始終連接”的互聯移動體驗。這種技術之所以能達成上述目標,是通過結合一個大(big)的多核心處理器與一個?。↙ITFLE)的多核心處理器,然后根據性能需求,以無縫的方式針對不同任務選擇合適的處理器。更重要的是這種動態選擇的動作,對于上層應用軟件或中間件在處理器上的執行絲毫沒有任何影響。
目前已應用于市面上移動設備的big.LITTLE設計,結合了高性能Cortex-A15多處理器集群與具有節能特色的Cortex-A7多處理器集群。這些處理器在架構上是百分之百兼容且具有相同功能(均支持LPAE、虛擬化擴充及NEON、VFP之類的運作單元),無須另外調整即可讓針對其中一種處理器類型所編譯的軟件應用程序順暢地應用于另一款處理器上。
big.UTTLE系統結構
就高速緩存一致性(cachecoherency)的維護而言,無論是同一處理器集群中的高速緩存、或是跨不同處理器集的高速緩存,皆保持了高速緩存數據的一致性。這種跨集群的一致性來自ARM CoreLink高速緩存一致性互連(CCI-400,也能提供ARMMali-T604之類的圖形處理器[GPU]系統等組件的I/O一致性)。兩種集群的中央處理器,還可通過CoreLink GIC-400之類的共享中斷控制器互傳信號。
big.LITTLE系統執
行模式
由于同一應用程序不需要任何修改以同時在Cortex-A7和Cortex-A15上運行,因此可以在隨機的情況下也能為某個應用程序選擇正確的處理器。下列執行模式便以止理論為基礎:
·big.LITFLE轉移模式:
·big.LITFLE MP模式。
顧名思義,轉移模式支持不同類型處理器之間的內容獲取和恢復。以中央處理器轉移來說,集群中每個中央處理器在另一個集群中都有對應的中央處理器,而軟件內容則以每個中央處理器為單位,隨機在不同的集群間轉移。如果集群中沒有正在運轉中的中央處理器,便可關閉整個集群以及相關的二級緩存(L2 cache)電源。MP模式則將軟件堆棧分配到兩個集群中各個處理器上。所有的中央處理器可同時運作,將系統性能提升到最高點。
big.UITTLE轉移模式
轉移模式是動態電壓頻率調整(DVFS)等功耗/性能管理技術的延伸。轉移操作類似DVFS操作點的轉換。處理器上DVFS曲線的操作點,會隨負載變化不同而來回移動。在當前的處理器(或集群)已達到最高操作點時,如果軟件堆棧仍需要更高的性能,處理器(或集群)轉移就會發生。此時就會由另一個處理器(或集群)來執行工作,這個處理器(或集群)的操作點也會隨著負載變化不同而來回變動。當性能需求不再,可以再切換回之前的處理器(或集群)。
一致性是實現快速轉移的重要因素,它允許監視并將保存在離埠處理器(outbound processor)的狀態,在入埠處理器(inbound processor)上檢測與恢復,而不必通過主存儲器的存取。此外,由于離埠處理器的L2有高速緩存一致性(cache coherency)的功能,當任務轉移時,可以透過檢測數據值的方式,改善入埠處理器的高速緩存預熱時間,此時L2高速緩存仍然可以維持供電狀態。不過,因為離埠處理器的L2高速緩存無法提供新數據的配置,最后還必須清除并關閉電源以節省耗電。
big.UITTLE中央處理器轉移模式
至于中央處理器轉移,小核的處理器集群中每個處理器都對應了一個大核集群的處理器。中央處理器為成對配置(cortex-A15及Cortex-A7處理器上同時配置CPUO、CPU1……依此類推)。使用中央處理器轉移時,每個處理器配對中在同一時間只有一個中央處理器能夠運轉。
系統會主動檢測各處理器的負載。高負載時內容執行會轉移到大的核心,當負載較低,執行則會轉移到小的核心。不論何時每個配對中只有一個處理器可以運轉。當負載從離埠核心轉移到入埠核心時,前者便會關閉。這種模式讓大核與小核的組合能隨時運轉。
big.UITTLE MP運作
由于big.LITTLE系統可以經由CCI-400達到高速緩存的一致性,因此有另一種模式能讓Cortex-A15及Cortex-A7處理器同時運作并同步執行程序代碼,稱為big.LITTLE MP(本質上是一種異質性多任務處理模型)。這是big.LITTLE系統最先進且最具彈性的模式,能跨越兩個集群調整單一執行環境。在這種使用模式下,若線程有上述處理性能方面的需求,便可開啟Cortex-A15處理器核心并同時通過Cortex-A7處理器核心執行任務。如果沒有這方面需求,則只需開啟Cortex-A7處理器。在實際應用上,不同集群的處理器核心并不需要保持一致,而big.LITFLE MP更容易支持非對稱的叢集。
移動應用的特性
big.LITTLE技術具有優勢的原因之一,就是普通情況下移動應用工作量對性能的需求各有不同。圖5顯示的是目前搭載Cortex-A9的移動設備中,兩個核心在DVFS、閑置與完全關機狀態下所花費時間的百分比。圖中紅色代表最高頻率的操作點,綠色區塊則代表最低頻率操作點,介于兩者的顏色則屬中級頻率。除了DVFS狀態,操作系統電源管理也會使中央處理器閑置。圖中淺藍色區塊代表空閑時間。當中央處理器閑置的時間夠長,系統的電源控制軟件可能會完全關閉其中一個核心以節省耗電。圖中最深的顏色便代表這部份。
從圖5可清楚看出,應用程序處理器在好幾種普通工作量下,都有相當多時間處于低頻率狀態。在big.LITTLE系統里,系統級芯片(Soc)可利用耗能較低的cortex-A7中央處理器,執行深紅色部分以外的所有工作。下圖則以相同方式分析了更為密集的工作量,而即使是在這樣的狀況下,在Cortex-A7處理器對應出低于1GHz的頻率的機會仍然很大。
性能與耗電分析:big.LITTLE測試芯片
2011年起,用戶層級軟件已能在big.LITTLE排程上運轉,不過,那只是在處理器核心與互聯的軟件模型環境上發展。為完整評估big.LITTLE系統的性能、節能以及調校是否合適,必須打造一個能讓用戶軟件全速運轉的測試芯片。ARM的測試芯片早在2012年初夏即由制造廠完成,并在短短幾周內開始搭配硬件開發板(development board)運轉,支持完整版的Linux系統及安卓操作系統Ice Cream Sandwich(Jelly Bean亦納入測試但本文引用結論均來自Ice Creamsandwich)。這個測試芯片包含了一個雙核Cortex-A15集群、一個三核Cortex-A7集群,以及CCI-400高速緩存一致總線架構。會影響部分使用者評效基準的圖形處理器并不包括在內,但平臺仍可支持Linux、安卓操作系統以及性能測試軟件。
圖5的性能測評是由Cortex-A15與Cortex-A7中央處理器集群各自獨立運轉。測試芯片的Cortex-A1S最高頻率達1.2GHz,Cortex-A7則為1GHz。性能測評結果顯示,雖然測試芯片上的內存系統,其性能不如big.LITTLE系統級芯片量產后的預測水平,Cortex-A15與Cortex-A7中央處理器的性能仍落在預期范圍內。根據各個核心獨立運轉所得結果,我們對平臺測量big,LITFLE性能的準確度深具信心。測試芯片平臺軟件包含基本的Linux核心,還采用了中央處理器轉移軟件與big.LITTLE MP修正程序組,以測試中央處理器轉移或big.LITFLE MP模式。
而用來測試big.LITTLE性能的任務量,主要基于Android CreamSandwich系統,通過網頁進行網絡瀏覽器性能循環,背景則有音效播放。在這個使用實例中,是以相當密集的工作量搭配對性能需求不高的背景活動。網絡瀏覽器每2秒便進行網頁循環,每頁卷動達500像素,因此對系統性能需求相對較高。為了在進行性能測試的同時測量性能與能耗,首先必須建立性能與能耗的基線。而這個基線則搭配獨立運作的Cortex-A15集群進行測量。
值得一提的是,這組結論屬于較早期的測試結果:用來測試的第一版big.LITTLE MP修正程序組,將Linux排程程序從一個完整而平衡的排程模式調整成big.LITTLE模式。我們預期軟件修正后性能與能耗將會改善,也會尋找其他可調校的元素。另外,測試芯片缺少繪圖處理器:這將使得中央處理器的負載高于搭載繪圖處理器的系統在卸除狀態下的負載水平,而在中央處理器負載較低的狀況下,可能會較常使用LITTLE核心,進而達到節能目的。它包含一套基本的電壓及頻率操作點(DVFS),但沒有對單處理器核心做獨立的電源開關設計,因此big.LITTLE系統單芯片量產后測試結果有望提升。舉例來說,后臺任務的性能便可節省超過70%的能耗。
如何選擇big.LITTLE軟件模式
各界最常見的疑問就是:“應該選擇哪一種軟件模式?”目前主要是在中央處理器轉移與big.LITTLEMP之間選擇一種,而兩種方式各有優劣勢。在中央處理器轉移方面,由于big以及LITTLE核心處于搭配成對的狀態,因此對稱式的拓撲能順暢運作。而big及LITTLE核心數量不同的非對稱式拓撲則需要額外運作。由于Cortex-A7中央處理器核心體積較小,因此可使用4個LITTLE核心加上1到2個big核心,這種作法可能會具有吸引力。從正面的角度來看,中央處理器轉移讓電源及性能的調校更為容易,可重復利用既有的操作系統電源管理程序代碼,代表產品將有多年的研發及測試結果作為支持。加上不必調整核心的排程程序,范圍比執行big.LITTLE MP模式更為簡化,而軟件模式也正日趨成熟。整體而言,中央處理器轉移是一種極佳的解決方案,2013上半年后可望進入量產,并持續為尚未完成big.LYITLE MP模式升級準備的系統提供可行的轉移模式解決方案。
big.LITTLE MP具有多項技術上的優勢,雖然技術尚未完全成熟,但目前正處于進階研發階段,測試結果如本文所示相當不錯。由于支持非對稱式拓撲為標準配備,因此無需調整軟件,big.LITTLE MP技術便能利用系統中所有核心。它在性能與能耗方面優點更多。舉例來說,它能同步利用所有核心以提升性能,或將big與LITTLE核心上的DVFS設定與排程程序設定調成不同狀態以節省更多能耗。因為需要增加調校的動作,才能從big.LITTLE MP平臺獲取完整的性能及能耗優勢,所以彈性提升仍有其代價。這與過去數年來由硅組件以及代工廠商將操作系統能源管理設定以及DVFS參數數據,并依據裝置需求轉化為移動系統級芯片平臺的主流做法并無太大差異。big.LITTLE MP模式將轉移模式延伸并納入新的參數數據,不僅更為節能,更能為經過性能優化的big核心增加系統響應度。
big.LITTLE MP模式正快速成熟,雖然尚未成為主流技術,但目前這項技術已可接受合作伙伴整合,并有望在2013下半年打入上游。所幸支持big.LITTLE MP并不需要改變硬件,因此晶圓廠可能會部署具有中央處理器轉移的平臺,針對部署平臺進行核心更新并升級至big.LITTLE MP模式,或建設現有的big.LITTLE平臺以便在2013年后半年直接取得big.LITTLE MP軟件轉移模式。
雖然big.LITTLE MP模式尚未進入量產,但如文中測試結果,我們可以看到相關軟件已開始運作,并已開始在硅組件廠研發平臺端進行測試。big.LYITLE MP軟件已用于我們的測試系統,目前正積極進行軟件強化,并針對各種實際應用將系統性能調校至最佳效果。
有部分的可調校因素已在應用中,包括排程程序的負載平衡策略、上下移轉點以及線程優先順序,ARM與芯片設計合作伙伴將持續就上述領域進行系統調校。
新一代big.LITTLE硬件
cortex-A15與cortex-A7核心代表第一代的big.LITTLE硬件。ARM已發布兩款具有big.LITTLE處理性能的新型中央處理器核心,即cortex-AS7以及Cortex-AS3處理器。Cortex-AS7處理器是經過性能優化的big核心,每頻率周期的性能可增加25%,頻率性能也更為提高,效率則略高于cortex-A15處理器。Cortex-AS3處理器為LITTLE核心,每頻率周期的性能可增加40%,能源效率則大約于cortex-A7處理器相同。
這些新的處理器核心在架構上都完全相同,并支持ARMv8架構,因此能導入全新的NEON技術與浮點功能、加密加速并支持64位架構。除了AMBA4 ACE,兩種核心也都支持新一代高速緩存一致總線架構,且與現有的ARMv7中央處理器核心相同,能在AArch32模式下執行既有程序代碼。支持64位及額外一般用途緩存器的應用方式效率更高,且能耗增加不多。同時,微架構也經過強化,以增加各核心在每個指令頻率周期中的傳輸量。這些新款核心在經過軟件細節升級并支持64位尋址模式后,將會與cortex-A15以及cortex-A7處理器一樣支持big.LITTLE技術。
結論
big.LITTLE系統為能耗及性能控制點的極度寬動態(wide dynamicrange)開啟了大門。這是僅由單一類型處理器組成的產品所無法達到的。目前市面上設備的工作量往往混雜了需求程度高低不同的線程,這種寬動態便可為其提供完美的執行環境。由于日后Cortex-A7將成為平臺主力,這一系統另一個優點即能夠打造基于Cortex-A7的高度節能產品。