理論與現(xiàn)實(shí)的差異,多核心芯片軟開發(fā)瓶頸何在?
中央處理器,CPU(Central Processing Unit),做為電腦的大腦,掌管著電腦所有運(yùn)行的程序。為了讓程序可以運(yùn)行的更快更穩(wěn),電腦架構(gòu)師們不斷的思考著該如何設(shè)計(jì)出更好的 CPU 架構(gòu),讓使用者得以享受更加快速、便利的電腦。
本文引用地址:http://www.ex-cimer.com/article/201609/296543.htm為了設(shè)計(jì)出更為出色的 CPU,工程師便想借由不斷提高 CPU 的時(shí)脈,讓 CPU 得以在一秒內(nèi)執(zhí)行更多的指令。隨著科技的發(fā)展,時(shí)脈的確如工程師所愿,逐步的提高。從 1990 年代開始,CPU 的時(shí)脈從 60MHz,一舉提升到 2000 年的 2000MHz。進(jìn)步幅度之大,令人贊嘆。
發(fā)展遇到瓶頸,多核心的時(shí)代來臨?
到了千禧年,時(shí)脈的進(jìn)展,卻不再如此順利。當(dāng) CPU 時(shí)脈發(fā)展到 4GHz 左右時(shí),工程師發(fā)現(xiàn),CPU 每秒所制造出的熱,已經(jīng)突破一般家用散熱器可以負(fù)擔(dān)的量。為了解決工程上的瓶頸,工程師開始將目光放在多核心架構(gòu)上。因此,Intel 以及 AMD 皆于 2005 年發(fā)布了雙核心 CPU,欲借由雙核心的技術(shù),突破單芯片效能的瓶頸。
但是,多核心架構(gòu)卻沒有如原先預(yù)期的向超多核心發(fā)展。intel 從 2005 年至 2015 年。將近 10 年間,在一般消費(fèi)者市場(chǎng)(不含電競(jìng)玩家)所發(fā)售的 CPU 也頂多從雙核心進(jìn)展到四核心。至于 AMD,即使發(fā)布了 8 核心的 CPU 于市場(chǎng)上,其效能也頂多和該時(shí)期的同級(jí) 4 核 intel CPU 相當(dāng)。
究竟是什么樣的因素,讓 CPU 的核心無(wú)法如同時(shí)脈的進(jìn)展般,一飛沖天?
應(yīng)用程序的極限,多核心無(wú)用武之地?
在不考慮在單一 CPU 中加入過多核心,會(huì)大幅增加 CPU 的耗電量時(shí)。最主要的因素便是多核心的應(yīng)用程序不容易開發(fā),讓電腦架構(gòu)師決定持續(xù)研究如何改善一個(gè)核心的效能,而非多核心架構(gòu)的開發(fā)。但是,為何多核心的 應(yīng)用程序會(huì)難以開發(fā)呢,這必須從使用者常用的應(yīng)用程序來看。
在日常的使用環(huán)境中,使用者大多是使用網(wǎng)頁(yè)瀏覽器、看影片、以及玩游戲。而這 3 種,恰好是 3 種不同的應(yīng)用類型。
在使用網(wǎng)頁(yè)瀏覽器時(shí),電腦大多在等待使用者下新的指令,像是打字以及使用鼠標(biāo)點(diǎn)擊鏈接,接著便是從遠(yuǎn)端讀取網(wǎng)頁(yè)資料并繪成使用者界面。軟件在 CPU 端可以平行運(yùn)作的部分相當(dāng)稀少,也因此,多核心在單純的瀏覽網(wǎng)頁(yè)上,并無(wú)法帶來太多的增益。
上網(wǎng)看影片則是電腦會(huì)不斷的從服務(wù)器接收影片的資料以及向服務(wù)器送請(qǐng)求,接收資料后,交由繪圖處理器(GPU)進(jìn)行繪圖運(yùn)算,將壓縮過的編碼影像檔轉(zhuǎn)換成顯示器的畫面。在這一類應(yīng)用中,工作負(fù)擔(dān)主要是在 GPU 端,CPU 可平行的程度也不高。
最后的應(yīng)用,則是游玩游戲。在玩游戲時(shí),電腦會(huì)不斷的接收使用者所下的指令,接著是在電腦所建構(gòu)出的虛擬世界中,標(biāo)記玩家周遭的景色以及移動(dòng)。之后,便是將整個(gè)虛擬世界交由 GPU,轉(zhuǎn)換成顯示器的畫面。繪圖處理器詳細(xì)的運(yùn)行流程在此。
在這一類應(yīng)用中,因?yàn)殡娔X需不斷地記錄玩家的移動(dòng)以及將虛擬世界中物體位置記錄在 CPU 中,因此,CPU 的負(fù)擔(dān)較其他應(yīng)用沉重,畢竟它需要從硬盤中讀取地圖的地形座標(biāo)以及玩家的位置和動(dòng)作。此外,CPU 也需將大量的游戲資料送進(jìn) GPU 中。所以,游戲和前述的應(yīng)用相比,可平行的程度較高。但是,4 核心也足以負(fù)荷所有需求。因?yàn)樨?fù)荷最沉重負(fù)擔(dān)的,依舊是 GPU。
根本問題,人的思緒是線性的
由上所述的數(shù)個(gè)原因,可以得知最根本的問題,便是人類一次只能思考一件事情。而電腦程序是由人類撰寫,導(dǎo)致在撰寫程序時(shí)會(huì)將人類的思考方式帶進(jìn)電腦中,讓程序在早期的發(fā)展,僅需由單核心處理器便可以完成。
此外,如果要將現(xiàn)行的程序修改成平行程序,也因?yàn)槿说乃伎剂鞒淌蔷€性的,工程師需要花費(fèi)相當(dāng)大的力氣才能找出可以平行的部分,并將程序的邏輯做大幅的修改,讓平行程序難以推廣。
或許會(huì)有人反駁,人一次是可以做兩件事情,像是一邊做事一邊聽音樂,但那也只能稱為可以迅速的在兩件事情間做切換而非同時(shí)思考。除非,有人可以將眼睛同時(shí)對(duì)焦在兩點(diǎn)以上,這樣才有可能一次處理兩件事情。
此外,有部分的使用者會(huì)宣稱,他們一次會(huì)開啟多個(gè)網(wǎng)頁(yè)分頁(yè),這樣也算是需要多核心的 CPU,但是,如前所述,除非有人可以將眼睛對(duì)焦在兩點(diǎn)上,同時(shí)看兩個(gè)網(wǎng)頁(yè)。不然,開啟多個(gè)分頁(yè)只是占用大量的內(nèi)存,多核心在這類應(yīng)用上沒有多大的幫助。
移動(dòng)時(shí)代來臨,應(yīng)用產(chǎn)生劇變
然而,在智能手機(jī)發(fā)布之后,情況開始有所轉(zhuǎn)變。隨著手機(jī)的迅速發(fā)展以及應(yīng)用的多變,多核心的應(yīng)用逐漸增加。舉例來說,在 2013 年,Apple 推出的 iPhone 5s 內(nèi),便在原本的雙核心 CPU 外,添加一個(gè)小處理器做感測(cè)器的資料收集。在其他手機(jī)內(nèi)部,則使用一般的 CPU 核心負(fù)責(zé)。讓原本的應(yīng)用,新增了一份可平行的工作。
此外,近期的應(yīng)用程序也開始提升和現(xiàn)實(shí)世界的互動(dòng)性。以現(xiàn)行熱門的 Pokémon GO 為例。在開啟 AR 和現(xiàn)實(shí)世界互動(dòng)時(shí),要執(zhí)行此類應(yīng)用程序,便需要大量的運(yùn)算資源。在尋找寶可夢(mèng)時(shí),手機(jī)需要收集 GPS 信號(hào),下載地圖資訊以及寶可夢(mèng)出現(xiàn)的位置。
當(dāng)寶可夢(mèng)出現(xiàn)后,則需要將相機(jī)拍攝的圖片和寶可夢(mèng)做結(jié)合。同時(shí),運(yùn)動(dòng)感測(cè)器也需要開啟,計(jì)算玩家鏡頭的移動(dòng)軌跡,訂出寶可夢(mèng)應(yīng)該出現(xiàn)在畫面的何處;拋球時(shí),則需計(jì)算拋球的方向還有滑動(dòng)的速度以計(jì)算拋球的距離。這些應(yīng)用都可以平行,為多核心 CPU 開啟一片新天地。
另外,隨著自動(dòng)駕駛以及人工智能的題材興起,原本用在手機(jī)內(nèi)部的芯片,開始攻城掠地,往其他領(lǐng)域拓展。在其他領(lǐng)域中,因?yàn)樾枰罅康母袦y(cè)器,讓超多核心的應(yīng)用化為可能。畢竟,光是接收大量的感測(cè)器資料,現(xiàn)行的 4 核心 CPU 已招架不住。
那么,我們是否需要多核心的 CPU 呢?對(duì)一般的筆電以及桌機(jī)使用者而言,近期的答案為否,畢竟 4 核心已經(jīng)能滿足使用者的需求;但在移動(dòng)應(yīng)用市場(chǎng)中,答案則為是,因?yàn)橐苿?dòng)設(shè)備的應(yīng)用越來越多元,感測(cè)器也越來越多,在 CPU 中塞入更多的核心,將可迅速的應(yīng)付與日俱增的硬件需求,而不需花費(fèi)大量的人力以及財(cái)力從單一核心壓榨出更多效能。
評(píng)論