別只看表面規格!深度剖析多線程平臺
2024-08-06 04:40:10
泡泡網CPU頻道11月24日 先說說什麼是多線程,從計算機的處理角度上看,線程就是在一個時間片上有一個單獨的處理任務,而多線程也就意味著在一個時間片上同時有多個待處理的任務。一個多線程的平臺其實就是具備並行處理多任務處理能力的計算平臺。對於桌面臺式機而言,並行計算還是近些年才開始被熱烈討論的話題。而事實上,並行計算在這個行業已經效力了多年,特別是對日常工作需要接觸高性能伺服器和工作站的用戶而言,這個話題早已不再新鮮。那些經常被他們掛在嘴邊的雙路、四路、八路等術語所採用的對稱式並行處理結構,從非術語的角度簡單說來,就是利用多顆處理器搭建起來的並行計算平臺處理多任務多線程。在這種結構下,各處理器獨立存在,而處理器之間的數據交換由總線來完成。在這個時期,一顆處理器能夠處理一個線程,所以有多少顆處理器也就意味著能夠同時處理幾個線程。
曾幾何時,處理器的顆數在很大程度上可以被看作是該計算機平臺處理能力的基本單位,一顆處理器就代表一個線程,也代表一份處理能力。所以當時很多面向伺服器、工作站平臺的軟體收費是基於計算品平臺上處理器的數量,即主板上可以插入處理器的插槽數。舉例而言,一臺4路的伺服器因為具備4個處理器插槽,支持的軟體也就要按照同時支持四顆處理器的版本收費。但隨著處理器的發展,隨著處理器研發的思路從單純提高單個處理器的頻率轉變成更加偏重於單個處理器的並行計算能力的時候,計算機這個最核心的大腦——處理器,便走上了多線程多核心的發展道路。
首先談談超線程技術。超線程就是對處理器內部處理資源的充分利用,它以一種邏輯多核處理器的方式工作,其結果就是讓作業系統把當前的計算平臺上的物理處理器當成雙倍的邏輯處理器來調用,於是作業系統就能將兩個指令或兩個線程交送到處理器來處理,這也就實現了對兩個線程的並行處理。
在一個支持超線程技術的平臺上,一顆處理器具備的計算能力是兩個線程,所以單顆處理器其實也已經具備了一個雙線程的能力。當然,超線程的技術還是首先用在了伺服器平臺上,但最眾所周知的具備超線程技術的處理器,就是曾經劃時代的奔騰4產品線。在奔騰4大獲成功之後,處理器又開始了一次更大的多核化變革,這一次已經超出了邏輯而發生在了物理實體上。自2005年Intel公司出品奔騰D開始,雙核心處理器便逐漸嶄露頭角。這時的雙核心處理器是物理上的兩個完整的處理核心,與雙路系統的兩顆完全分開的物理處理器不同,這兩個完整的處理內核並存在一個處理器的內部,內核之間通訊不再需要通過處理器外部的總線來實現。當然,雙核心的處理器也能夠完成對兩個指令的同時處理,也具備雙線程的處理能力。
2005年之後,經過兩三年的時間,雙核心已在市面上完全普及起來。在現在的市場上,不論是Intel還是AMD,在他們的產品列表上,單核心的處理器型號已經基本不見蹤跡,而與此同時,四核心已面世兩年多。沿用剛才對雙核心的描述,四核心處理器具備四個完整計算內核,具有四個線程處理能力。而如果你是用四核心的處理器組成一個四路計算平臺的話,4x4=16個線程的處理能力,在打開資源管理器的時候,看到16個線程同時工作的場景會是一件會令人激動的事情。
不過,也許你已經注意到,當處理器平臺出現了物理上的多內核的時候,前面提到的超線程的技術似乎被留在了塵封的記憶裡。多核心成了眼底下最重要的詞語,核心數也已經漸漸地變成衡量處理器處理能力的最小單位,因此市面上也隨之出現了AMD的三核心,接下來是精省的四核X4 600系列,而這些都是處於成本考量的不得已之舉。作為AMD Shanghai這一代產品的最新成員,一個四核心的處理器除了核心數比較令人滿意之外,在其他各個方面的表現似乎都稍顯薄弱。尤其在緩存方面,不但將Shanghai微架構中重要的三級緩存棄之不用,連二級緩存也只給出了每核心512K的容量。AMD雙核的X2 240棄三級緩存不用,但出於對性能的補償,還是適當地將其每個核心的二級緩存從512K擴充到1M。但相比而言,四核心的X4 600連 X2 240都比不上,而僅僅是靠核心數來支撐。這樣的緩存架構,不由得令人回想起Intel第一代的雙核處理器奔騰D的產品。那時的奔騰D就是這樣完全獨立的二級緩存,不過那個時候奔騰D每個核心各自的二級緩存至少還有1M那麼多,那可是四年前的事情了。
與此同時, Intel卻採用了截然不同的產品策略,也就是在發展核心數的同時,也在線程處理能力方面發力。不過,這原本就是Intel的強項。於是,在新的處理器微架構Nehalem下,超線程技術又回來了,最新的酷睿i7 800、900這兩個產品系列,不僅僅物理上是四核心,而且同時支持更新一代的超線程技術,也就是說,同時具備了8線程的處理能力,而16個線程同時躍動的場面,無需四路,在以該微架構的處理器組成的雙路伺服器平臺上,就可以輕鬆獲得了。除了這兩個產品系列之外,我們也從網上的消息獲知,Intel即將發布的一系列處理器也都是核心數、線程數並重,超線程技術的採用會為明年年初即將面世的雙核心處理器也帶來四個線程的並行計算能力,而明年Intel更會帶來6核12線程的震撼。
線程、核心與功耗:
功耗是處理器發展階段中一個無法避免的問題。在以前不講多核心和超線程的年代,要想要提升處理器性能就只有提升處理器的頻率,但這會導致處理器電壓的上升,對處理器功耗以及散熱帶來的壓力已不容忽視。多核心、多線程取代了一味的頻率論,成就了處理器發展的一個轉折點,因此每瓦特性能也就隨之成為一個時髦的詞,成為衡量處理器性能的一個重要指標。不這個詞也可看作是綜合衡量線程、核心、功耗這三者關係的一個指標,簡單聯繫起來就是指在一定功耗下每線程的處理能力。
不過,物理核心的增長也會帶來功耗的提升。四核心處理器的功耗自然要比雙核心的產品在滿載的工作狀態時要高上幾十瓦。而超線程技術顯然在目前階段會更勝一籌,因為超線程技術是通過充分利用每個處理器內核資源來提高並行處理能力,所以對處理器並不產生額外的供電及散熱,也就輕鬆減輕了功耗壓力。某些只講究物理核心數的產品,即使省掉了6M緩存,TDP依舊沒有得到明顯改善,依舊保持在95W,因此其性能和功耗表現並沒有得到有效提升。從這一點上看,英特爾目前支持超線程技術的處理器以及接下來將陸續登場的具有超線程技術的處理器,確實令人期待。
結論:
隨著計算環境越來越並行化,追求多核心、多線程正是適應當前環境的重要基礎。不論從性能提升還是從功耗控制方面考量,超線程技術無疑都將極好地適應目前高能效技術發展的趨勢。■