





ARM作為全球規模最大的移動SOC授權廠商,先后開發了多款ARM架構的SOC芯片,其中CPU架構部分就有目前比較流行的Cortex-A系列的Cortex-A8、Cortex-A9以及Cortex-A15等。不過ARM最新的Cortex-A15功耗較高,在手機中使用效果不算很好。因此,ARM還需要在為20nm以及以后的手機制程開發一款性能優秀、功耗較低的SOC芯片CPU架構,這就是Cortex-A12,這款架構以功耗控制為主要目標,兼顧了高性能和低功耗,是目前大有希望的全新架構。
縱觀ARM在目前智能手機發展中的產品序列,不得不承認Cortex-A9是其中最為成功的一款。Cortex-A9架構從三年前開始嶄露頭角,到現在依舊是大部分SOC芯片主流的CPU架構。隨后的Cortex-A15雖然性能不錯,但過于龐大的架構設計和工藝進步的緩慢使得它的功耗表現并不令人滿意,因此即使使用在手機上,由于頻繁地控制功耗和熱量,Cortex-A15的芯片手機機型的續航時間也非常短,整體的使用效果也并不出色。為了解決這種問題,也為了未來新制程下的高性能、低功耗市場考慮,ARM又推出了一個全新的架構,被稱作Cortex-A12,它的性能比Cortex-A9好,但是功耗表現卻和Cortex-A9相當,在換用新的制程后,還可以進一步降低功耗和體積,進入更廣泛的市場。
更巧妙的設計思路
有關Cortex-A12消息,先來看一段比較枯燥的數據。Cortex-A12采用的是ARMv7a指令集,其進步在于ARMv7a的CPU的內存尋址空間可以提升至1TB,不再受到32bit處理器的4GB內存空間的困擾。在其他技術方面,ARMv7a的NENO SIMD指令集可以操作128bit寄存器、支持虛擬化技術、都采用了128bit的AXI4總線(支持big.LITTLE技術的重要總線),同時它的物理尋址空間從32bit升級到新的40bit,使得內存可支持空間提升到了1TB。在硬件架構上,Cortex-A12的整數流水線深度進一步擴展到10~12級(Cortex-A9是8~11級),略微增加了提升頻率的空間。Cortex-A12整個架構也更為“亂序”。值得一提的是,Cortex-A12將L2緩存徹底內置,和CPU核心直接整合在一起,所有核心共享緩存,緩存擁有獨立電壓和頻率層,這樣既可以和CPU同步,也可以和CPU異步,靈活性大幅度增加。其他功能方面,由于目前浮點計算要求增多,NENO指令集不再是可選單元,而變成了必選,NENO單元和vFP單元提升到了第四版,這對浮點性能有很大幫助。核心數量方面,每個Cortex-A12核心集群最多可以支持四個核心,但是依靠ARM的總線和同步設計,可以支持多個CPU核心集群。
好吧,上述內容可以總結為三點。第一,Cortex-A12整體指令集更先進,支持更多、更有效率的操作。第二,Cortex-A12頻率會更高,亂序帶來的執行能力會有更進一步的提升。第三,Cortex-A12的浮點性能還會加強。
從架構來看,整個Cortex-A12架構幾乎將Cortex-A9架構很大一部分內容推倒重來,Cortex-A12幾乎沒有太多繼承于Cortex-A9的內容了。并且Cortex-A12顯然更注重性能功耗比,沒有刻意追求“高大全”的功能和特性,而是定位于“夠用就好”,只要能精簡、節省地趕上應用發展的水平即可。當然,全新的技術特性和規格的加入也是必不可少的,考慮到未來應用發展的需求,更大的內容、更寬的總線、更強大的緩存設計等,都是Cortex-A12成功的保證,在這一方面,ARM做得相當不錯。
改進直擊架構弱點
由于本刊截稿時ARM暫時還沒有給出特別詳細的架構內容,所以這里我們使用了一個概略圖來描述Cortex-A12和Cortex-A9之間的差異。
從圖中來看,前端部分Cortex-A12使用了兩個Decode解碼單元,和Cortex-A9一樣,比Cortex-A15的3個要少了一個。根據ARM的官方說明,他們認為Decode解碼單元部分是最為影響整個架構功耗和效能的組件,因此Cortex-A12的目的并非性能而是更優秀的性能功耗比,配置2個Decode解碼單元已經足夠了。
此外,Cortex-A9的另一個重要問題在于分支預測單元過于薄弱。之前的Cortex-A9后端規模也沒有這么大,因此分支預測單元也是夠用就好。Cortex-A12上流水線更深、計算資源更豐富后,分支預測單元就顯得更為重要了。好在ARM直接將更高一級的Cortex-A53的分支預測單元重新調整后“下放”給Cortex-A12使用,相比Cortex-A9也算得上是大幅度改進了分支預測能力不足的問題。接下來的RenameDispatch(命名與發送)部分,為了應付增大的后端,Cortex-A12設計了2個RenameDispatch單元,比Cortex-A9多了一倍。
憑借計算單元和指令排序單元的改進,Cortex-A12能輕易獲得相對于Cortex-A9 30%~40%的性能提升。不過Cortex-A12在同等工藝下的芯片面積相比,Cortex-A9增大了大約40%。比較下來,Cortex-A15在28nm工藝下單核心面積為2.7平方毫米,比Cortex-A9的28nm單核心面積的1.15平方毫米大了134%,即使Cortex-A12的面積提升40%后,也僅有1.6平方毫米,相當于Cortex-A15的60%,依舊不算大核心。當然,相比Cortex-A7的28nm下的0.45平方毫米,還是大了不少,相應的性能也會強很多。
3 高效產品 2014年中上市
ARM大約在今年7月完成了Cortex-A12的架構設計并向外公布。接下來的架構設計轉化為實際的產品,大約需要10~12個月時間。這樣看來,Cortex-A12的首款產品上市時間都不會早于2014年6月。從芯片到成品手機、平板電腦也需要一段時間,從一般情況來看,在芯片完成生產后裝備到手機中,最快需要一個季度來解決生產、軟件等問題,普通廠商至少需要兩個季度,才能初步開始生產基于Cortex-A12架構的產品。
這樣一來,消費者最早拿到基于Cortex-A12的產品,可能要等到2014年年底了。那么那個時候Cortex-A12還有什么競爭優勢呢?實際上,Cortex-A12并非僅僅面向現在的28nm架構,根據ARM的規劃,Cortex-A12除了在28nm上使用外,ARM還在聯合諸如GLOBALFOUNDRIES、TSMC等廠商規劃20nm的產品。如果Cortex-A12使用了20nm工藝的話,面積有望進一步縮減大約60%,這樣可以徹底抵銷由于規模變大帶來的面積增加,以較小的面積和不錯的性能占據低端市場。
可以預見的是,在一年多以后的低端市場,Cortex-A7、Cortex-A5等架構很可能由于性能不足等問題不再被消費者和開發人員接受,這個時候Cortex-A12再加上專為入門級設計的Cortex-A53就能很好充當替代者的角色。此時的Cortex-A12實際上也是多能的:它一方面可以使用更優秀的工藝,達到更高的頻率在中端手機內使用;一方面也可以在老工藝、低頻率下給入門級用戶享受。