從英特爾最早提供超線程微處理器開始,我們已經(jīng)目睹了Sun的酷線程以及如今的多線程微處理器。那么,線程究竟是什么?對于業(yè)界,對于計算領(lǐng)域,多線程究竟意味著什么?
對于微處理器來說,不僅多核,多線程也可能是其未來的發(fā)展方向之一。
日前,Sun公司發(fā)布了該公司最新的商用微處理器UltraSPARC T2。這款產(chǎn)品擁有8個內(nèi)核,每個內(nèi)核包含8個線程,由于每個線程都能運行自己的操作系統(tǒng),因此該處理器在單芯片上提供了一個巨大的64路系統(tǒng)。對于這一產(chǎn)品,業(yè)界和用戶均給予了高度關(guān)注。
“怪獸”現(xiàn)身
Sun公司聲稱,UltraSPARC T2是世界上最快的通用微處理器,每個內(nèi)核能夠執(zhí)行8個線程,整個8核芯片能夠執(zhí)行64個線程。UltraSPARC T2采用65nm制造工藝,功耗80W。市場觀察人士認為,UltraSPARC T2處理器搭建的服務(wù)器將會在VoIP、IPTV和Web2.0等領(lǐng)域有廣泛的應(yīng)用。另外,該處理器的成功發(fā)售也會帶動Sun公司Solaris操作系統(tǒng)和Java語言的推廣。據(jù)悉,Sun公司會在2008年下半年可以推出16核心的UltraSPARC T2處理器,屆時將可以使之性能翻倍。
就目前而言,UltraSPARC T2擁有8核、每核8個線程。也就是說,同時間最多可以有64個進程在處理,當(dāng)某一個進程工作完成后,如果后面沒有其他的工作,就可以自動將排于其他線程位置的待處理工作進行轉(zhuǎn)移,以維持平行線程的整體利用效率,從而更快地完成工作。在這點上,UltraSPARC T2與IBM POWER5頗有共同之處。
加州伯克利大學(xué)計算機科學(xué)客座教授Dave Patterson指出,“我們正處于計算科學(xué)的歷史轉(zhuǎn)折點上,從連續(xù)性處理轉(zhuǎn)向多核、多線程設(shè)計。”他認為,UltraSPARC T2是業(yè)界第一款將多個系統(tǒng)的主要功能,包括虛擬化、信號處理、網(wǎng)絡(luò)連接、安全特性、浮點單元和加速內(nèi)存訪存等諸多特性都集于一身的微處理器。
正因為將所有的功能單元都集成在一塊硅芯片上,因此UltraSPARC T2在降低成本的同時,還提高了微處理器的性能、可靠性和功效,使之成為從網(wǎng)絡(luò)設(shè)備到高性能計算或存儲器件等多種應(yīng)用的上佳選擇。
作為一種通用型處理器,UltraSPARC T2為具有海量線程特性的開源操作系統(tǒng)Solaris和其他實時操作系統(tǒng)都提供了支持,因此也被認為將會幫助眾多的開發(fā)人員尋覓到新的市場,為生產(chǎn)力的再提高開辟新的途徑。
英特爾、AMD不斷由雙核向多核演進,加之Sun、IBM持續(xù)研發(fā)多核產(chǎn)品,在開啟了多核多線程時代的同時,卻又引發(fā)出新的問題,即軟件授權(quán)問題。
在雙核、多線程的系統(tǒng)環(huán)境下,雖然多線程也能起到加速作用,但是由于線程的加速效果不如CPU核心那樣明顯,因此一般不會出現(xiàn)由于線程數(shù)導(dǎo)致的軟件授權(quán)問題。然而,在面對UltraSPARC T2這樣的“怪物級”微處理器時,由于其每個線程都能運行自己的操作系統(tǒng),因此情況可能會發(fā)生一些變化。然而究竟會出現(xiàn)什么樣的變化,現(xiàn)在仍不得而知。
前景看好
從歷史發(fā)展的經(jīng)驗來看,某個硬件體系的成功與否,其實往往不單單取決于硬件本身。對于微處理器來說,要達到多線程技術(shù),操作系統(tǒng)的設(shè)計和架構(gòu)是決定性的因素。
Sun在多線程技術(shù)方面的核心就是Solaris操作系統(tǒng)。據(jù)有關(guān)資料顯示,Sun公司Solaris的新版本最多可以支持256個核心,而最多線程數(shù)更可以達到2048個。Sun的多線程技術(shù)與方法,始于Solaris 10操作系統(tǒng),它將每個線程視為一個虛擬的CPU,這樣就極大地提升了IT效率,并且使得能耗得到了有效的降低。業(yè)界一般都認為,Sun公司的Solaris從第9版到第10版時有了很大的突破,其中最重要的原因之一就是多線程技術(shù)。
目前,用戶的各種應(yīng)用運行在Solaris的環(huán)境平臺上,也能夠很好地得到多線程技術(shù)的支持。同時,一些專家認為,UltraSPARC T2二進制的設(shè)計,使它能夠兼容用戶原有的軟硬件系統(tǒng),全面保護用戶的投資。
在目前業(yè)內(nèi)疾呼“環(huán)保綠色”的大環(huán)境下,UltraSPARC T2也為環(huán)保人士交口稱頌:Sun將其酷線程芯片多線程技術(shù)擴展到每線程功耗低于2瓦的UltraSPARC T2處理器,僅相當(dāng)于同類產(chǎn)品功耗的1/10到1/30,從而為綠色計算樹立了良好的榜樣,并且將低功耗與雙倍的內(nèi)核數(shù)量、16倍的線程數(shù)量、4倍的吞吐量完美地結(jié)合在一起。這樣的好處是,UltraSPARC T2將為系統(tǒng)制造商和廣大用戶節(jié)省大量的資金,而它的設(shè)計方式也可能會為競爭對手效仿,從而在業(yè)界掀起多核多線程的新浪潮。
另外,還有人在擔(dān)心多線程下原有的應(yīng)用程序是否會出現(xiàn)運行效率低下的問題。其實,現(xiàn)在的Java和.Net程序越來越多,這兩種程序本身就原生支持多線程執(zhí)行,因此它們會在多線程的系統(tǒng)下運行得更好。早期的C++則是采用變通方式(用API提供多線程能力,并在撰寫程序時呼叫API)支持多線程執(zhí)行,不過現(xiàn)在純粹采用C++編寫程序的情況越來越少,因此這一點不足為慮。
鏈接:什么是線程?
一般來說,人們把正在計算機中執(zhí)行的程序叫做“進程”(Process),而不將其稱為程序(Program)。所謂“線程”(Thread),則是“進程”中某個單一順序的控制流。自從20世紀90年代以來,多數(shù)操作系統(tǒng)的設(shè)計都采用了多線程的概念,譬如Windows 95、Windows NT等PC系統(tǒng)和Macintosh上的操作系統(tǒng),它們均是將線程視為基本執(zhí)行單位。不過,普通的用戶對此往往并不知情。
從奔騰4處理器開始,英特爾的超線程技術(shù)(Hyper-Threading,簡稱“HT”)讓人們終于注意到了“線程”。超線程技術(shù)就是利用特殊的硬件指令,把兩個邏輯內(nèi)核模擬成兩個物理芯片,讓單個處理器都能使用線程級并行計算,進而兼容多線程操作系統(tǒng)和軟件,減少了CPU的閑置時間,提高了CPU的運行效率。
為什么要這樣做呢?我們知道,雖然由于技術(shù)和生產(chǎn)工藝的進步,單線程芯片早就能夠達到每秒鐘處理成千上萬條指令的能力,但是在任一時刻,單線程芯片只能夠?qū)ζ渲械囊粭l指令進行操作。而超線程技術(shù)則可以使芯片同時進行多線程處理,使芯片性能得到提升。
不過,雖然采用超線程技術(shù)能同時執(zhí)行兩個線程,但它并不像兩個真正的CPU那樣,每個CPU都具有獨立的資源。這就意味著,如果兩個線程都同時需要某一個資源時,其中一個要暫時停止,并讓出資源,直到這些資源閑置后才能繼續(xù)。因此超線程的性能并不等于兩顆CPU的性能。
需要注意的是,超線程并不完全等同于多線程,盡管它具備了多線程處理的能力,而且它只能在Windows XP以上的系統(tǒng)中發(fā)揮作用。一些業(yè)界分析人士認為,英特爾的超線程技術(shù)在微處理器的發(fā)展歷史中,確實發(fā)揮了里程碑式的作用,不過它并不完美,至少在某些方面仍有所欠缺。
線程具有就緒、阻塞和運行三種基本狀態(tài)。
在多處理器的系統(tǒng)里,不同線程可以同時在不同的處理器上運行,甚至當(dāng)它們屬于同一個進程時也是如此。大多數(shù)支持多處理器的操作系統(tǒng)都提供編程接口,從而讓進程可以控制自己的線程與各處理器之間的關(guān)聯(lián)度。
有時候,線程也被稱作輕量級進程。就像進程一樣,線程在程序中是獨立的、并發(fā)的執(zhí)行路徑,每個線程都有屬于它自己的堆棧、程序計數(shù)器和局部變量。然而,與分隔的進程相比,進程中的線程之間的隔離程度要小一些,它們共享內(nèi)存、文件句柄和其他每個進程應(yīng)有的狀態(tài)。
進程可以支持多個線程,它們看似同時執(zhí)行,但互相之間并不同步。一個進程中的多個線程共享相同的內(nèi)存地址空間,這就意味著它們可以訪問相同的變量和對象,而且它們從同一堆棧中分配對象。盡管這可以讓線程之間共享信息變得更加容易,但是用戶必須加以小心,確保它們不會妨礙同一進程里的其他線程。(劍鳴)