-
1 # 魑魅涅槃
-
2 # aliquis唯一數碼
在回答這一問題之前,首先我們要了解的是單核和多核的區別到底在哪裡,而說起這一點,我們必須引入一個概念叫做“執行緒”。
執行緒執行緒,簡而言之,就是輕量程序(Lightweight Process,LWP),也就是程式執行流的最小單元。它的意義在於,將一個程式分成很多份,其中一個功能的實現就涵蓋著無數個執行緒,但這不是我們要講的重點,我們的重點在於,CPU在沒有多核心之前,為了更有效率的完成一項工作,我們就有了CPU的模擬執行緒概念。
曾經,單核處理器為王的狀態下(我們把一個CPU核心看做一箇中轉站),無論有多少資料流匯入,都必須堵在這個中轉站進行互動,你可以看做像是一個高速收費口,無論收費口外面的馬路有多寬敞,大部分的資料(車流)還是會堵在這個中轉站(CPU核心)等待收費(中轉),所以這一時期,為了加快收費速度,CPU的單核頻率越來越高,但高頻率帶來的耗電、發熱、壽命短等問題也逐漸凸顯出來,當CPU頻率達到一個瓶頸的時候,我們就要找新的方式來緩解這一問題,那就是多執行緒。
多執行緒與多核心多執行緒你可以看做一箇中轉站模擬出兩個收費臺,和現在的高速路口一樣,當車流量大的時候,現建中轉站根本不可能,於是就在中轉站外面多設兩個服務檯,這樣在一定程度可以緩解中轉效率,但不好的一點是這只是杯水車薪,CPU能分出來的有效執行緒是有限的,這就使得我們必須找到新的方式來解決這一“堵車”問題。(只有Intel有這項超執行緒技術)
沒有超執行緒技術的農企和又在遇到瓶頸的Intel,只好找更好的方式,隨著科技的發展,在一個CPU模組整合更多的CPU核心成為了可能,但為了功耗平衡,頻率自然要犧牲一部分,所以早期的多核處理器並不能與單核處理器相匹敵。
原生多核指的是真正意義上的多核,最早由AMD提出,每個核心之間都是完全獨立的,都擁有自己的前端匯流排,不會造成衝突,即使在高負載狀況下,每個核心都能保證自己的效能不受太大的影響,通俗的說,原生多核的抗壓能力強,但是需要先進的工藝,每擴充套件一個核心都需要很多的研發時間。
封裝多核是隻把多個核心直接封裝在一起,比如Intel早期的PD雙核系列,就是把兩個單核直接封裝在一起,但兩核心只能共同擁有一條前端匯流排,在兩個核心滿載時,兩個核心會爭搶前端匯流排,導致效能大幅度下降,所以早期的PD被扣上了“高頻低能”的帽子,要提高封裝多核的效能,在多工的高壓下儘量減少效能損失,只能不斷的擴大前端匯流排的總體大小,來彌補多核心爭搶資源帶來的效能損失,但這樣做只能在一定程度上彌補效能的不足,和原生的比起來還是差了很多,而且後者成本比較高,優點在於多核心的發展要比原生快的多。
單核多核各有優劣那麼這個意思就是多核一定比單核強了?這是當然的,但這不意味著我們疊加10個2.1Ghz核心就可以吊打4個2.8Ghz核心的CPU,如何協同運作從而更好地發揮效能是個大問題。
還是以高速路口舉例,我開了4個車道,根據車型、收費方式分別開放,而另一邊我開十個車道,由車主任意自由選擇,這就導致使用e通卡的車主很快過關,但收費支付的車主就會卡在路口,更有甚者,十個路口八個空閒,兩個排著長隊,對比盡然有序的4口設計,即使有更多的中轉站,資料的流通效率反而低到離譜,這就是為什麼聯發科10核處理器卻不如高通4核處理器的緣故。
那麼,單核效能到底影響哪些手機工作呢?
單核頻率越高,在處理沒有多執行緒最佳化的應用的時候,表現會更加,比如之前的王者榮耀就有很多個版本,其中有些版本沒有多核最佳化,這就使得單核效能越強,遊戲表現越好。
多核就是針對被最佳化過的或者多工的程式了,比如你開著王者榮耀聊QQ,如果是單核一定會出現切換卡頓的問題,但多核處理器就沒有這個問題了~
回覆列表
多核相對於單核來說最大的優勢在於多工處理上,比如你可以一邊聽歌一邊刷微博等。在多個核心中,每個核心負責處理一項運算,這樣帶來的好處是手機執行比較流暢,速度快,而且處理器核心負載沒有那麼大,發熱控制也就比較優秀。而單核主要體現在app的執行效率上,比如開啟應用的速度,使用過程中的流暢度等,但是單核在多個應用用的切換中就不如多核了。
手機因為沒有像電腦一樣有那麼多的多執行緒任務,所以手機的多核就是把幾個單核心拼湊在一起,但是手機中的app都是用單核執行的,比如你的手機處理器是八核的,但是你用微信其實只有這八個核心的其中一個核心在處理執行微信app,其他的7個核心都沒有參與,所以這也是為什麼旗艦處理器的核心頻率越來越高的原因,因為主頻高了,運算速度也就越來越快了,但是一味的提高核心頻率帶來的的問題是功耗和發熱溫度的急劇上升。目前手機處理器大都採用的是ARM的架構,而ARM的big.LITTLE架構基於精簡指令集設計,在超執行緒方面比較弱,並不注重單核心執行效率,要想提高整體效能表現只有兩條路,要麼提高主頻要麼採用多核心設計。但是一味的提高主頻會帶來功耗和發熱嚴重的問題,這兩個問題對於手機來說又是至關重要的,所以受限於這個問題要想提高手機處理器的效能表現,要想提高主頻和採用多核心設計時,功耗和發熱能夠保持在一定範圍內,只能靠工藝製程來解決了。不過受限於單核的執行效率不高的原因,再先進的工藝製程也不是出路。為什麼大家都覺得蘋果手機比安卓手機流暢,除了系統的原因外,看看蘋果的處理器核心數,雙核採用了好幾代,一直到最新的A11才採用就6核心設計,但是依然秒殺高通的8核處理器845晶片,在a9還是雙核的時候高通的8核已經出來了,但是後者依然被前者吊打。這個就是在手機晶片設計上的功力體現了,雖然高通這幾年一直是手機晶片界的霸主,靠著專利版權賺的盆滿缽滿,好多手機也因為搭載了高通的驍龍處理器在遊戲效能表現上佔據優勢,而高通的adreno圖形處理單元其實是AMD的,方年賣給了高通,沒想到高通應用在了自家的手機晶片上,AMD的顯示卡效能一直不俗,那麼同根同源的adreno效能表現當然也很優秀了。而造成安卓手機晶片整體效能表現不佳的原因就是系統架構上,蘋果採用的是注重單核心執行效率的方式提升手機整體表現,其他的像高通、海思、三星、聯發科等大多都是在Arm的公版架構上定製的,在一定程度上還是屬於Arm的超頻版本,整體上都是遵循了Arm的架構而衍生而來的。還是能看出ARM的big.LITTLE架構。就像是大樓的結構都是ARm的公版架構,像高通的自研架構kryo,也只是更改了那些格擋牆,像承重牆還是公版架構,其他的都是直接採用公版架構,自己只是做了裝修。而蘋果的A系列處理器雖然也是採用了ARM的架構,但是走的是注重單核效率的路子,只用了ARM的底層架構,整體框架都是自己設計做的。