av免费福利片在线播放,99热精品久久只有精品,18video性欧美19sex,ysl蜜桃色www,国产精品一区二区久久国产

泡泡網(wǎng)CPU頻道 PCPOP首頁      /      CPU     /      評測    /    正文

蓋棺定論 2013年手機處理器終極指南

    每次提到高通,“異步多核”甚至“膠水多核”都是一個無法回避的問題。對于這個技術(shù),支持者和反對者都很多,之前的文章也有過一定的介紹。當(dāng)然,實際上那時的介紹并不準(zhǔn)確,不過異步架構(gòu)在手機上壞處大于好處,這點相信還是很容易理解的。

    異步架構(gòu)的好處是什么?當(dāng)然是省電。異步架構(gòu)下的CPU不需要運行在同樣的頻率,甚至不需要擁有同樣的實現(xiàn),完全可以做到一刻核心運行在1.5GHz的全速下,而另一顆核心只運行在384MHz的最低頻下。這樣以來,高負載的線程,比如前臺應(yīng)用,就可以工作在高負荷的核心上,而諸如系統(tǒng)后臺服務(wù)這樣的低負載線程就可以工作在低頻核心下,系統(tǒng)的能耗比得到最大規(guī)模的優(yōu)化。

    為了實現(xiàn)這點,高通必須對Linux核心的調(diào)度器做修改,因為典型的調(diào)度器并不支持非對稱調(diào)度,它會默認所有的CPU核心具備同樣的性能,這會導(dǎo)致低頻核心進入嚴重的阻塞狀態(tài),進而影響系統(tǒng)表現(xiàn)。這也是高通稱移動領(lǐng)域只有高通做到了這點的原因。

    那么異步架構(gòu)的壞處又是什么?自然是性能。異步架構(gòu)對于性能的影響在于兩個方面,一是異步電路的同步開銷,二是非對稱調(diào)度的調(diào)度開銷。

    不論多么復(fù)雜的硬件,深入到最底層,都是功能電路與總線的組合。總線需要協(xié)議,協(xié)議的基礎(chǔ)是時序,因此顯而易見的要求就是,連接到一個總線的兩個設(shè)備之間想要溝通,那么就需要具備同樣的時序。換句話說,就是需要擁有同樣的頻率。這就是同步電路。30年來,同步電路成為了設(shè)計領(lǐng)域的主流,圍繞其發(fā)展的EDA技術(shù)也是最成熟的。而異步電路則不同,它擁有一個特殊的“握手協(xié)議”,在正式的傳輸發(fā)起之前,會首先利用幾個時鐘周期的時間進行“握手”,將雙方的時序調(diào)整到一致。在實際實現(xiàn)中,這個由固化硬件實現(xiàn)的握手協(xié)議消耗的時序,根據(jù)設(shè)計不同在2~4個時鐘周期左右,這就是異步電路的同步開銷。如果我們考慮最極端的情況,假設(shè)真正的數(shù)據(jù)傳輸只需要3個時鐘周期,那么異步電路的總線利用率就永遠不會超過50%,因為至少有一半的時間要消耗在握手上,哪怕兩邊的頻率是相等的。

    看到這里,聰明的你應(yīng)該可以發(fā)現(xiàn)問題所在:即便是異步電路,在真正數(shù)據(jù)傳輸?shù)臅r候,依然還是需要兩側(cè)時序保持同步,異步握手協(xié)議的加入只是做到了通訊發(fā)起時雙方的時序可以不一致。因此很明顯的結(jié)論就是,異步總線同一時刻只能與一個設(shè)備進行握手。考慮以下狀況,如果兩個CPU同時向總線發(fā)起占用請求,即發(fā)起握手請求,而這兩個CPU的頻率不同,那么很明顯,由于時序的不同,任何防止沖突的協(xié)議都無法起效,因為邏輯電路的最小工作周期就是時鐘周期。因此異步系統(tǒng)里發(fā)起握手行為的只能是總線本身,也就是說異步系統(tǒng)里實際上是總線在不斷詢問CPU是否要接入,而不是CPU向總線要求接入。

    既然如此,異步系統(tǒng)就是一個輪詢的系統(tǒng),這是它的另一硬件開銷,尤其是在核心數(shù)超過2的系統(tǒng)中,由于輪詢必然是有順序的,那么就必然會遇到某一時刻總線輪詢到的是CPU0,而此時需要握手的是CPU3。哪怕CPU1和CPU2都是空閑的,CPU3也必須要等到3個總線周期以后才可以和總線同步。假設(shè)同步需要3個周期,而數(shù)據(jù)傳輸也只需要3個周期,這就意味著在同步系統(tǒng)里只需要4個周期就可以實現(xiàn)的數(shù)據(jù)請求,在異步系統(tǒng)里消耗了9個周期。

    當(dāng)然,這里討論的都是最基礎(chǔ)的情況,實際設(shè)計中也會有很多的技巧去突破這些限制,但是別忘了,如果把總線協(xié)議和接口實現(xiàn)的過于復(fù)雜,其本身的耗電量也會增加,因此實際設(shè)計中可能并不會引入太多復(fù)雜的高級設(shè)計,因此這些開銷可能全都是存在的。

    除去硬件設(shè)計導(dǎo)致的開銷以外,用于配合異步系統(tǒng)正常工作的操作系統(tǒng)調(diào)度器,也會引入額外的開銷。對于同步系統(tǒng)的調(diào)度器而言,由于它假定所有的CPU均擁有同樣的運算能力,因此調(diào)度算法的實現(xiàn)非常簡單,只需要平衡的把負載分配到各個活動CPU上即可。但是一旦各個CPU之間的頻率不同,調(diào)度器所需要維護的數(shù)據(jù)結(jié)構(gòu)就會大大復(fù)雜化,因為系統(tǒng)需要盡力去保證異步系統(tǒng)處于異步狀態(tài),否則就無法實現(xiàn)異步系統(tǒng)省電的特性,因此就不能平均分配工作符合。尤其是考慮到實際的移動設(shè)備里,各個CPU核心的頻率都是處在動態(tài)變化之中的,因此異步系統(tǒng)調(diào)度器的算法會明顯復(fù)雜得多。我們知道,調(diào)度器所占用的是一個系統(tǒng)內(nèi)兩個時間片中間的時間,現(xiàn)代系統(tǒng)中時間片一般取10~100毫秒,Linux核心的時間片大體上是100ms左右,根據(jù)任務(wù)優(yōu)先級不同而不同,最短可以到5ms。假設(shè)同步系統(tǒng)的調(diào)度器執(zhí)行只需要10us,那么在5ms時間片的系統(tǒng)上所消耗的性能就只有0.2%,但是如果調(diào)度器消耗的時間為1ms,那么性能損失就會激增到17%左右,影響十分巨大。當(dāng)然,在實際系統(tǒng)中不太可能使用5ms時間片,異步系統(tǒng)的調(diào)度器也不可能需要花1ms的時間才能完成調(diào)度,但是異步調(diào)度器的確會占用系統(tǒng)不可分片的時間,帶來性能的下降。

    至此異步系統(tǒng)的好處和壞處都解釋清楚了,那么最后的問題就是,異步系統(tǒng)相對于同步系統(tǒng)而言究竟是好處多還是壞處多,這個問題可以分為兩個方面來觀察。

    首先是用戶對于性能的需求。異步系統(tǒng)的省電特性是靠犧牲性能獲得的。由于同步開銷的存在,異步系統(tǒng)發(fā)揮非常好的效率的時候是重度計算的情況,在這種情況下,CPU的指令流水線基本處于滿負荷工作的狀態(tài),而指令拾取與解碼往往會因為后端流水線的阻塞而停止。這時對于總線使用率的要求會大大降低,同步開銷得以掩蓋。但是當(dāng)用戶執(zhí)行的是輕量級多線程時,由于同步開銷的存在,系統(tǒng)的表現(xiàn)會大受影響,因此給人的感覺就是跑分快,實際用卻表現(xiàn)不出來,多任務(wù)切換的時候甚至?xí)锌D的情況,而這正是高通系統(tǒng)的特征。

    其次是同步系統(tǒng)也各種有辦法減小同步運行的高功耗,其中之一就是對指令流水線引入復(fù)雜而精密的時鐘門控,在沒有指令輸入的時候,流水線甚至可以整體關(guān)閉時鐘,進入徹底的停擺狀態(tài),進而降低功耗。這些都是已經(jīng)成熟的技術(shù),目前大部分CPU設(shè)計中都已經(jīng)實現(xiàn),因此同步系統(tǒng)和異步系統(tǒng)之間的差異可能并沒有看起來的那么大。

    總體來說,手機中使用異步系統(tǒng)是一種犧牲性能節(jié)省電量的折衷方法,并非是解決性能和功耗問題的唯一途徑。很多時候高通MSM平臺所宣稱的節(jié)電效果是來自于CPU、Baseband、Modem等子系統(tǒng)的共同作用。異步就能省電是個巨大的認知錯誤。

0人已贊

關(guān)注我們

泡泡網(wǎng)

手機掃碼關(guān)注