智能手機和平板終端配備雙核與四核處理器已成為一種趨勢,。新一代應(yīng)用處理器的CPU內(nèi)核將會如何發(fā)展?在CPU內(nèi)核領(lǐng)域占有絕對市場份額的英國ARM公司,,公開了今后幾年內(nèi)的多核技術(shù)發(fā)展藍圖,。其戰(zhàn)略是通過組合使用大小各異的內(nèi)核,同時兼顧高性能和低功耗,。而且,異質(zhì)內(nèi)核的并用將成為在移動領(lǐng)域引進虛擬化技術(shù)的基礎(chǔ),。
智能手機及平板終端用CPU內(nèi)核開發(fā)商英國ARM公司2011年秋季發(fā)布的內(nèi)核“Cortex-A7”,,配備了很多乍一看有些奇特的功能。
Cortex-A7是一款用于100美元以下低價位智能手機的CPU內(nèi)核,。在設(shè)計時最注重降低耗電量和成本,,因此其電力效率與美國蘋果公司“iPhone 4”中配備的ARM現(xiàn)有CPU內(nèi)核“Cortex-A8”相比,提高至約5倍注1),。
注1)ARM公司Cortex系列產(chǎn)品名稱中的數(shù)字,,代表該CPU內(nèi)核的相對性能。而不是像蘋果公司的應(yīng)用處理器“A4”和“A5”那樣,,代表發(fā)布順序和產(chǎn)品工藝,。
Cortex-A7內(nèi)核徹底實現(xiàn)了“環(huán)保運行”,并配備了許多移動領(lǐng)域一般并不需要的先進技術(shù)和功能,。包括虛擬化技術(shù),,用于主存儲器的ECC功能,以及40bit的物理地址擴展(LPAE:Large Physical Address Extensions)等,。
即使為了徹底提高電力效率,、削減電路面積,也沒有必要在用于低價位智能手機的Cortex-A7中配備虛擬化技術(shù)等,。為什么ARM公司要在Cortex-A7內(nèi)核中配備這些功能呢,?
兼顧高性能和低功耗
之所以在Cortex-A7中大量配備先進功能,是為了實現(xiàn)一項稱為“big.LITTLE”的技術(shù),,該技術(shù)可在未來的智能手機中兼顧高性能和低功耗這兩個完全相反的特性,。這項技術(shù)是ARM公司在發(fā)布Cortex-A7的同時推出的,將注重電力效率的內(nèi)核Cortex-A7與ARM公司性能最高的CPU內(nèi)核“Cortex-A15”組合使用(見圖1),。正如字面意思一樣,,同時采用了性能不同的“大小”兩種內(nèi)核。
圖1:2013年以后智能手機也將采用虛擬化技術(shù)
圖中是ARM公司的CPU內(nèi)核“Cortex-A”系列,,在用于智能手機等便攜終端時的內(nèi)核數(shù)量以及內(nèi)核種類等,。由本雜志根據(jù)ARM公司的資料制作而成。
big.LITTLE技術(shù)可根據(jù)電力和性能等情況,將Cortex-A15和Cortex-A7動態(tài)地分開使用,。比如,,像瀏覽器的屏幕渲染等需要高性能時,就會通過并行性較高,、擁有較長管線的CPU內(nèi)核——Cortex-A15來高速運行相關(guān)應(yīng)用,。反之當收發(fā)郵件等不需要太高性能時,則會切斷Cortex-A15的電源,,將整個系統(tǒng)轉(zhuǎn)移到管線更短,、電力效率較高的CPU內(nèi)核——Cortex-A7中運行(圖2)注2)。
圖2:通過異構(gòu)多核實現(xiàn)節(jié)能的big.LITTLE技術(shù)
ARM公司的big.LITTLE技術(shù)將注重性能的“A15”與注重耗電量的“A7”這兩種CPU內(nèi)核分開使用,,由此可降低耗電量,。CPU負荷較低時,將OS等整個系統(tǒng)轉(zhuǎn)移到A7內(nèi)核,,并切斷A15內(nèi)核的電源(a,、b)。由本雜志根據(jù)ARM公司的資料制作而成,。
注2)在何時將某個應(yīng)用和OS轉(zhuǎn)移至其他內(nèi)核的判斷,,與動態(tài)控制CPU內(nèi)核工作頻率與電源電壓的“DVFS(Dynamic Voltage And Frequency Scaling)”以相同的原理進行。如果Cortex-A15F的電源電壓和工作頻率降至下限,,就會啟動Cortex-A7并轉(zhuǎn)移系統(tǒng),。無法從軟件看到內(nèi)核的切換。另外,,big.LITTLE技術(shù)可實現(xiàn)同時持續(xù)驅(qū)動異質(zhì)內(nèi)核的SMP利用方式,。
在big.LITTLE技術(shù)中,兩種內(nèi)核間采用的SoC上的電源域(區(qū)域)和晶體管也不同,。Cortex-A7的電路區(qū)域采用閾值電壓較高的晶體管,,通過降低電源電壓來減少工作電流和漏電流。而Cortex-A15的電路區(qū)域則采用閾值電壓較低的晶體管,,通過提高電源電壓來追求性能,。
架構(gòu)完全兼容
在big.LITTLE技術(shù)中,要想將在一個內(nèi)核上運行的軟件順利轉(zhuǎn)移到其他內(nèi)核上,,就需要大小兩種CPU內(nèi)核的架構(gòu)和功能完全相同,。
因此,ARM公司使Cortex-A7的架構(gòu)與Cortex-A15完全兼容,。除了Cortex-A7的指令集架構(gòu)(ISA)與Cortex-A15完全相同外,,還將Cortex-A15中首次向ARM架構(gòu)引進的虛擬化技術(shù)、ECC功能和LPAE等先進功能,,直接移植到了用于低價位智能手機的Cortex-A7中,。注重電力效率的Cortex-A7之所以配備許多乍看并不需要的先進功能,,是為了實現(xiàn)big.LITTLE技術(shù)。
big.LITTLE技術(shù)被定位為支撐今后智能手機和平板終端應(yīng)用處理器的核心技術(shù),。ARM公司在2011年10月發(fā)布的64bit架構(gòu)“ARMv8”,,尚未發(fā)布支持的CPU內(nèi)核,估計要在2014年以后才能配備在設(shè)備上,。而big.LITTLE技術(shù)是已經(jīng)可以使用的技術(shù),,不久的將來就可以實用化。
目前雙核架構(gòu)的智能手機用SoC,,基本上都采用可多個排列相同CPU內(nèi)核的同質(zhì)架構(gòu),。同質(zhì)架構(gòu)可采用通過多個內(nèi)核運行單個OS的SMP(Symmetrical Multi Processing)架構(gòu),因此從軟件來看易于使用,。但從電力效率來看,,即使在不需要高性能的情況下,同質(zhì)架構(gòu)也不得不采用配備高速架構(gòu)(可發(fā)揮峰值性能)的內(nèi)核,,這點與異質(zhì)架構(gòu)相比處于不利地位。
big.LITTLE技術(shù)雖然在物理上采用異質(zhì)架構(gòu),,但就軟件而言多個內(nèi)核看起來就像一個,。可以說是融合了異質(zhì)架構(gòu)與同質(zhì)架構(gòu)兩者優(yōu)點的技術(shù),。
實際上,,ARM公司公開的未來應(yīng)用處理器發(fā)展藍圖,從中端到高端的智能手機都并用了Cortex-A15和Cortex-A7,,因此估計會采用big.LITTLE技術(shù)(見圖1),。由此,智能手機在具備高性能的同時,,還可延長電池壽命,。作為實現(xiàn)這一點的王牌,big.LITTLE技術(shù)可以說是很有用的,。
通過虛擬化技術(shù)掩蓋微妙的不同
big.LITTLE技術(shù)在內(nèi)部也采用了頗有意思的封裝方法,。這就是利用了虛擬化技術(shù)。
雖然Cortex-A7與Cortex-A15的ISA是相同的,,但是兩者在物理上是不同的內(nèi)核,。如果只統(tǒng)一ISA的話,那么內(nèi)核間還是會存在無法掩蓋的微妙不同,。
例如,,ARM架構(gòu)中有名為“CP15”的寄存區(qū),可存儲CPU內(nèi)核的ID以及緩存構(gòu)成的拓撲等信息,。ID中包括封裝有相關(guān)CPU內(nèi)核的企業(yè)ID,,以及與CPU內(nèi)核產(chǎn)品名稱相對應(yīng)的型號等。關(guān)于這些信息,Cortex-A7與Cortex-A15必然不同,。
big.LITTLE技術(shù)通過應(yīng)用虛擬化技術(shù)來掩蓋這些不同,。如前所述,Cortex-A7與Cortex-A15都采用了虛擬化技術(shù),。因此,,在這些內(nèi)核上運行的OS一旦訪問CP15寄存器,根據(jù)虛擬化機構(gòu)的原理,,就會發(fā)生異常陷阱(Exception Trap),。于是,控制任務(wù)便會自動轉(zhuǎn)移到OS以下模式運行的虛擬化軟件(Hypervisor)上,。在Hypervisor上向OS等提示與物理CP15寄存器等不同的信息,,由此可以掩蓋Cortex-A7與Cortex-A15之間在硬件上的不同。
利用虛擬化原理在軟件上“欺騙”OS和應(yīng)用,,由此看起來就像在完全相同的內(nèi)核上運行一樣,。ARM公司總裁Tudor Brown表示,“big.LITTLE技術(shù)的精髓在于雖然內(nèi)核的物理性質(zhì)不同,,但從軟件來看卻完全相同”,。
在Cortex-A7中封裝虛擬化技術(shù),不僅是為了與前面提到的Cortex-A15確保兼容性,,還是為了最終通過Hypervisor消除兩個內(nèi)核間的微妙差異,。
加速虛擬化技術(shù)在智能手機上的普及
ARM公司在2010年9月發(fā)布了該公司首款采用虛擬化技術(shù)的內(nèi)核Cortex-A15,當時未必明確了在移動領(lǐng)域如何利用虛擬化技術(shù),。Cortex-A15不同于此前ARM公司的CPU內(nèi)核產(chǎn)品,,專門面向該公司近年著力發(fā)展的服務(wù)器領(lǐng)域。因此,,估計是為了滿足該領(lǐng)域的需求,,才在Cortex-A15中采用了虛擬化技術(shù)。
然而,,big.LITTLE技術(shù)公布后發(fā)現(xiàn),,虛擬化技術(shù)實際上可以廣泛用于智能手機和平板終端上。ARM公司表示,,“最初big.LITTLE項目是與虛擬化技術(shù)分別推進的,,中途我們認識到可以利用虛擬化技術(shù),于是將兩者融合在了一起”,。以big.LITTLE技術(shù)以及Cortex-A7的引進為契機,,此前一直與移動領(lǐng)域無緣的虛擬化技術(shù),將標配在幾乎所有的智能手機和平板終端上(見圖1),。
在集群間控制一致性
在big.LITTLE技術(shù)中,,要想使某項任務(wù)順利地從一個內(nèi)核轉(zhuǎn)移到另一個內(nèi)核,,需要在硬件方面進行改進。具體要求是在不同內(nèi)核間確保緩存的一致性(Coherency),。
在緩存的一致性控制方面,,ARM公司網(wǎng)已經(jīng)有了“MPCore”多核技術(shù),可以對CPU內(nèi)核內(nèi)一次緩存的一致性進行控制,。不過,,MPCore以最大四核的同質(zhì)架構(gòu)多核為前提,不支持big.LITTLE技術(shù)這種異質(zhì)架構(gòu)多核,。
因此,,ARM公司針對big.LITTLE技術(shù)這種異質(zhì)架構(gòu),在SoC上新設(shè)立“集群”(Cluster)這個單位,。通過MPCore技術(shù)構(gòu)成的同質(zhì)架構(gòu)多核以集群為單位匯總,,當在SoC上同時配備不同種類的CPU內(nèi)核時,需要另外設(shè)置新的集群,。比如,,分別設(shè)置一個配備兩個Cortex-A7的集群,以及配備兩個Cortex-A15的集群(圖2),。
集群間的緩存一致性,,采用專用的IP內(nèi)核“CCI(Cache Coherent Tnterconnect)-400”來確保。CCI-400在內(nèi)部配備了交叉開關(guān),。CPU內(nèi)核內(nèi)一次緩存的一致性由MPCore技術(shù)控制,集群間二級緩存的一致性由CCI-400控制(表1),。
由于可以在Cortex-A15與Cortex-A7之間維持緩存的一致性,,因此big.LITTLE技術(shù)可在約20μs內(nèi)完成兩個內(nèi)核間的任務(wù)轉(zhuǎn)移。20μs是將CPU內(nèi)核內(nèi)部多項寄存器信息轉(zhuǎn)移到其他內(nèi)核上所需要的時間(圖2),。利用基于CCI-400的一致性控制,,二級緩存數(shù)據(jù)可與CPU內(nèi)核處理并行,從而自動轉(zhuǎn)移到其他內(nèi)核上,。
英偉達也有類似技術(shù)
根據(jù)負荷情況將閾值電壓更高的節(jié)電型CPU內(nèi)核進行切換使用的方法,,其實除了ARM公司的big.LITTLE技術(shù)外還有其他技術(shù)。比如,,美國英偉達(NVIDIA)在2011年9月發(fā)布的“vSMP(variable Symmetric Multi Processing)”技術(shù),。vSMP技術(shù)已經(jīng)用于該公司2011年11月發(fā)布的應(yīng)用處理器“Tegra 3”上,臺灣華碩電腦(ASUSTeK Computer)的“Eee Pad TransformerPrime”等平板終端產(chǎn)品已經(jīng)配備了“Tegra 3”,。
Tegra 3配備五個“Cortex-A9”,,其中一個用作“協(xié)處理內(nèi)核”,采用漏電流較小的低功耗制造技術(shù)形成,。雖然不能像big.LITTLE技術(shù)那樣同時采用微架構(gòu)不同的內(nèi)核,,但在組合使用電力效率不同的內(nèi)核這點上,,雙方是類似的(表1)。
不過,,vSMP沒有big.LITTLE技術(shù)中的集群這一概念,,協(xié)處理內(nèi)核以及其他內(nèi)核直接共享二級緩存。內(nèi)核間切換所需時間在2ms以內(nèi),,遠遠高于big.LITTLE技術(shù)的20μs,。估計將來會改換成配備更先進系統(tǒng)的big.LITTLE之類的技術(shù)。