<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > ARM新一代多核技術(shù)可延長智能手機電池壽命

          ARM新一代多核技術(shù)可延長智能手機電池壽命

          作者: 時間:2012-05-03 來源:網(wǎng)絡(luò) 收藏

          架構(gòu)完全兼容

          在big.LITTLE技術(shù)中,要想將在一個內(nèi)核上運行的軟件順利轉(zhuǎn)移到其他內(nèi)核上,就需要大小兩種CPU內(nèi)核的架構(gòu)和功能完全相同。

          因此,公司使Cortex-A7的架構(gòu)與Cortex-A15完全兼容。除了Cortex-A7的指令集架構(gòu)(ISA)與Cortex-A15完全相同外,還將Cortex-A15中首次向架構(gòu)引進的虛擬化技術(shù)、ECC功能和LPAE等先進功能,直接移植到了用于低價位手機的Cortex-A7中。注重電力效率的Cortex-A7之所以配備許多乍看并不需要的先進功能,是為了實現(xiàn)big.LITTLE技術(shù)。

          異質(zhì)架構(gòu)成主流

          big.LITTLE技術(shù)被定位為支撐今后手機和平板終端應(yīng)用處理器的核心技術(shù)。公司在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)核看起來就像一個??梢哉f是融合了異質(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,當(dāng)時未必明確了在移動領(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ù),將標(biāo)配在幾乎所有的智能手機和平板終端上(見圖1)。

          在集群間控制一致性

          在big.LITTLE技術(shù)中,要想使某項任務(wù)順利地從一個內(nèi)核轉(zhuǎn)移到另一個內(nèi)核,需要在硬件方面進行改進。具體要求是在不同內(nèi)核間確保緩存的一致性(Coherency)。

          在緩存的一致性控制方面,ARM公司網(wǎng)已經(jīng)有了“MPCore”多,可以對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)多核以集群為單位匯總,當(dāng)在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)。

          9.gif

          由于可以在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)核上。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();