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

          新聞中心

          EEPW首頁(yè) > 專題 > 手機(jī)雙核知多少?四大主流雙核CPU全比拼

          手機(jī)雙核知多少?四大主流雙核CPU全比拼

          作者: 時(shí)間:2012-11-28 來(lái)源:電子產(chǎn)品世界 收藏

            回到話題上來(lái),可能有些讀者會(huì)認(rèn)為,單獨(dú)來(lái)看,可能ASMP和SMP的差距也并不是那么巨大,在之前圖中的極限狀況下也就相差33%而已,在實(shí)際運(yùn)行中的差距很難達(dá)到這個(gè)數(shù)字。但是不要忘記,之前的文章中我們討論過(guò)亂序執(zhí)行的重要性,那么如果我們將指令等待也引入到之前的圖中,那么會(huì)發(fā)生什么情況呢?

          本文引用地址:http://www.ex-cimer.com/article/139451.htm

            在此,我們用灰色的方塊代表需要等待的指令,而等待時(shí)間為兩個(gè)周期。  


          異步多核心和同步多核心運(yùn)行狀況:帶等待的指令

            可以看到,一旦引入指令等待,將亂序執(zhí)行與多核架構(gòu)結(jié)合起來(lái)以后,不支持亂序執(zhí)行的ASMP架構(gòu)(Scorpion@MSM8x60)需要10個(gè)周期才能完成的工作,支持亂序執(zhí)行的SMP架構(gòu)(Cortex A9 MP@其它主流雙核方案)只需要6個(gè)周期,相對(duì)于支持亂序執(zhí)行的SMP而言,不支持亂序執(zhí)行的ASMP架構(gòu)慢了66%。這就是MSM8x60面對(duì)其它雙核Cortex A9的情況。雖然由于實(shí)際運(yùn)行中指令的執(zhí)行長(zhǎng)度可能會(huì)更長(zhǎng),以至于減小輪流工作的影響,但由于Scorpion核心對(duì)亂序執(zhí)行的支持并不完善,因此漫長(zhǎng)的指令等待依然可能會(huì)導(dǎo)致高通的處理器浪費(fèi)大量的時(shí)間,最終性能變慢。這點(diǎn),我們也會(huì)在后續(xù)的測(cè)試中加以體現(xiàn)。

            同樣,讓我們也來(lái)針對(duì)多處理器架構(gòu),給四款雙核一個(gè)評(píng)分:

            Tegra 2 ★★★★★
            OMAP4430 ★★★★★
            MSM8x60 ★★★★
            Exynos 4210 ★★★★★

            較量項(xiàng)目三:通訊總線

            智能手機(jī)所采用的主芯片早已不能簡(jiǎn)單稱之為處理器,而是一套復(fù)雜得多的系統(tǒng),包含了處理器、顯示加速芯片、內(nèi)存控制器、視頻解碼核心、標(biāo)準(zhǔn)總線控制器等等,有些甚至還包含了數(shù)字信號(hào)處理器,它們被合起來(lái)稱之為片上系統(tǒng)(SoC)。實(shí)際上一顆 SoC中,所占據(jù)的硅片面積可能都不到總面積的二十分之一,而其中很大的一部分面積,都被各種各樣的互聯(lián)結(jié)構(gòu)占用了。其實(shí)這也很好理解,片上系統(tǒng)就像一個(gè)大城市,如果交通不暢,整個(gè)城市的運(yùn)行就會(huì)陷入癱瘓。在片上系統(tǒng)里有各種各樣的總線,內(nèi)部的、外部的,私有的、公用的。在這其中有一條最為重要的外部總線,連接著幾乎所有的內(nèi)部設(shè)備,那就是AXI。

            更重要的是,內(nèi)存控制器也是通過(guò)AXI連接到處理器,這就意味著不論你的內(nèi)存顆?;蛘邇?nèi)存控制器可以提供多大的帶寬,處理器能夠獲得的帶寬都直接且僅取決于總線帶寬。因此這個(gè)總線的寬度,決定了整個(gè)系統(tǒng)內(nèi)部最大的內(nèi)存帶寬,同時(shí)也在某些情況下決定了諸如3D GPU這些對(duì)內(nèi)存帶寬需求巨大的模塊的性能。正如城市的發(fā)展需要高速交通一樣,隨著片上系統(tǒng)的復(fù)雜化,內(nèi)部互聯(lián)的帶寬也要求越來(lái)越大。

            由于總線方面的信息不屬于一般用戶所理解的范疇,因此廠家往往也不會(huì)對(duì)此做出詳細(xì)的說(shuō)明,所以每一款芯片究竟總線寬度多少也是不容易查證的。這點(diǎn)上nVIDIA相對(duì)而言做的最好,因?yàn)樗麄冊(cè)?jīng)直接把AXI總線位寬標(biāo)在了網(wǎng)頁(yè)上:32bit,類型為AMBA-3(這個(gè)參數(shù)在現(xiàn)在的網(wǎng)頁(yè)上已經(jīng)找不到了, 原因未知)。這個(gè)數(shù)字是相當(dāng)“驚悚”的,因?yàn)槿绻偩€寬度真的是32bit,那么意味著Tegra 2的內(nèi)部總線位寬只是11級(jí)別的。因此nVIDIA在Tegra 2的內(nèi)部,很可能采用了與標(biāo)準(zhǔn)不同的總線配置方式,但是不論如何,Tegra 2的總線帶寬都是難以置信的小,即便AXI頻率達(dá)到300甚至400MHz,帶寬最多也只能達(dá)到Cortex A8的水平。根據(jù)測(cè)試,Tegra 2的內(nèi)存復(fù)制成績(jī)大約只能達(dá)到1GB/s左右,這也基本符合其帶寬的表現(xiàn)。

            再來(lái)看看德州儀器的OMAP4430。與Tegra 2上的諸多猜測(cè)不同,德州儀器提供了OMAP4430的完整技術(shù)手冊(cè),因此各方面的資料非常容易獲取。在OMAP4430中,互連結(jié)構(gòu)分為若干級(jí)別和層次,但是就最主要的而言,是L3互聯(lián)。德州儀器并沒(méi)有采用ARM的AMBA AXI總線,而是在芯片內(nèi)部的主互聯(lián)上采用了Arteris公司的產(chǎn)品:  

           

            從圖中可以看出,OMAP4430的L3互聯(lián)寬度為128bit,是Tegra 2的四倍,因此即便工作頻率為200MHz,總帶寬也可以輕易達(dá)到3.2GB/s,遠(yuǎn)遠(yuǎn)超過(guò)Cortex A8和Tegra 2。說(shuō)實(shí)話,這才是雙核Cortex A9 MP應(yīng)有的水準(zhǔn)。當(dāng)然,由于各家SoC的內(nèi)部體系都不太一樣,在此也不能100%確定Tegra 2的實(shí)際情況。這點(diǎn)我們也會(huì)在后面的測(cè)試中繼續(xù)研究。值得注意的是,OMAP4430的兩個(gè)內(nèi)存控制器在搭配LPDDR2 1066的時(shí)候可以提供的最大總帶寬可以超過(guò)8GB/s,但由于總線帶寬緣故,實(shí)際效果可能并不會(huì)有對(duì)應(yīng)的提升,這也是ARM體系中一個(gè)比較頭疼的問(wèn)題之 一。

            言歸正傳,下面繼續(xù)來(lái)看看MSM8x60。一直以來(lái),高通對(duì)于自家芯片的技術(shù)資料都守口如瓶。這維護(hù)了高通的知識(shí)產(chǎn)權(quán),但是卻苦了這樣的人,因?yàn)楦緹o(wú)從查證芯片的詳細(xì)參數(shù),因此只能靠猜測(cè)了。一方面,MSM8x60基本上就是“雙核版”的MSM8x55,另一方面在后續(xù)測(cè)試中也可以看出 MSM8x60在內(nèi)存方面的性能并不是很突出,因此在此猜測(cè)MSM8x60的內(nèi)部互聯(lián)可能和單核時(shí)代一樣,即64bit、200MHz,總帶寬 1.6GB/s。各位讀者如果有詳細(xì)的信息,也不妨告知。



          關(guān)鍵詞: 雙核心手機(jī) CPU ARM

          評(píng)論


          相關(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); })();