比特網(wǎng) 發(fā)表于:14年05月09日 09:17 [轉(zhuǎn)載] 比特網(wǎng)
關(guān)于軟硬件誰為主導(dǎo)這個話題,套用一句諺語就是三十年河?xùn)|三十年河西,風(fēng)水輪流轉(zhuǎn)。軟件和硬件一定是相互促進(jìn)、相互拆臺又相互搭臺的。一些之前被詬病的上層架構(gòu),或許若干年之后會被發(fā)現(xiàn)成了最合適的選擇,而再過若干年,又會變得不合適。軟件定義亦或是硬件定義,同樣也是這樣,硬件定義的結(jié)果是性能夠強(qiáng)但是不靈活,此時軟件定義便會開始醞釀翻盤,但是任何事情都有慣性,軟件“過度”定義之后,會發(fā)現(xiàn)很多事情搞不定,還得靠硬件來加速一下,此時開始進(jìn)入硬件定義周期,然后循環(huán)往復(fù)。我們可以用幾個例子來窺探一下這種規(guī)律。
CPU和OS
一對不離不棄的夫妻,陰抱陽,陽抱陰。一開始沒有所謂中斷,更沒有所謂OS,只有順序執(zhí)行指令計算機(jī)和被寫死的程序,很不靈活。后來才有了OS,CPU先執(zhí)行OS這個大循環(huán)程序,然后載入所需要執(zhí)行的用戶程序執(zhí)行,執(zhí)行完退出,可以繼續(xù)載入其他程序執(zhí)行。哪怕最簡單的OS要想玩轉(zhuǎn),CPU起碼也得至少提供IO和時鐘中斷機(jī)制。OS呱呱墜地,就得不斷長大,不斷地進(jìn)化,單任務(wù)不靈活,就得多任務(wù)分時執(zhí)行,所有任務(wù)共享內(nèi)存空間,導(dǎo)致了安全性問題,這就不得不引入虛擬內(nèi)存技術(shù),所以軟件越來越復(fù)雜,性能逐漸就不行了。此時CPU出來說話了,我來搞定虛擬內(nèi)存,提供頁表極致,提供專用的控制寄存器,并提供專用的查表加速硬件部件。多任務(wù)分時OS的生產(chǎn)力被初步釋放,但是性能還是較差,還得依靠CPU搞定。CPU繼續(xù)發(fā)力,引入超線程技術(shù),讓多個線程的代碼可以并發(fā)執(zhí)行,這得益于流水線的設(shè)計;為了能夠更好的實現(xiàn)線程并發(fā)執(zhí)行,后來繼續(xù)出現(xiàn)多核心多CPU的SMP技術(shù), OS不得不做出改動。但是多CPU/核心并不是任何時候都很高效地并發(fā)多線程的,隨著軟件復(fù)雜度提升,線程同步、緩存一致性等問題導(dǎo)致需要大量狀態(tài)和數(shù)據(jù)同步,傳統(tǒng)的共享式的前端總線效率太低,所以不得不改為交換式Fabric比如IntelQPI,訪問內(nèi)存經(jīng)過太多跳器件效率上不去,所以也改為直連CPU分布式共享架構(gòu),這也是當(dāng)今的形態(tài)。再往后會怎么發(fā)展,應(yīng)該可以順著慣性往前推導(dǎo)一下,交換式Fabric的出現(xiàn),意味著CPU和CPU之間可以離得越來越遠(yuǎn),只要有足夠高速的鏈路連接,這一形態(tài)其實就是大型NUMA計算機(jī)的形態(tài)了。這一形態(tài)的輪回意味著軟件架構(gòu)的變化,傳統(tǒng)領(lǐng)域需要高性能的場景不得不使用大型機(jī)、小型機(jī),但它們是極其昂貴的——就是因為不開放,而且又不可能像互聯(lián)網(wǎng)領(lǐng)域一樣投入開發(fā)資源在分布式系統(tǒng)上定制化自己的應(yīng)用。而開放式大型NUMA系統(tǒng)出現(xiàn)之后,可能之前的被“過度”定義了的分布式系統(tǒng)生態(tài)又會沉寂下來,這個循環(huán)進(jìn)入新的周期紀(jì)元,在這個紀(jì)元里,曾經(jīng)光鮮的分布式系統(tǒng)可能會被新生代工程師/架構(gòu)師認(rèn)為是一種很不可思議的“野路子”:“你看,以前這種架構(gòu),好坑爹啊!”。這就像我們現(xiàn)在回頭看之前的有些設(shè)計一樣,也會感覺到不可思議,那時候的人都這么“腦殘”么?恩,如果換了你回到那個時代,或許更腦殘:)。不管誰腦殘,一個事實是始終不變的,那就是硬件性能的絕對值是一直直線上升的,不管分布式還是集中式。
公司簡介 | 媒體優(yōu)勢 | 廣告服務(wù) | 客戶寄語 | DOIT歷程 | 誠聘英才 | 聯(lián)系我們 | 會員注冊 | 訂閱中心
Copyright © 2013 DOIT Media, All rights Reserved. 北京楚科信息技術(shù)有限公司 版權(quán)所有.