亚洲成精品动漫久久精久,九九在线精品视频播放,黄色成人免费观看,三级成人影院,久碰久,四虎成人欧美精品在永久在线

掃一掃
關注微信公眾號

理論探討:聚焦線程級并行設計(一)
2009-01-11   

雙核與正迅速進入人們的的視野,讓我們從最核心的處理器設計思路層面來解構一下多核處理器引入的線程級(Thread Leval Parallelism/TLP)技術。

關于開發基于線程優化的處理器的總思路

首先,讓我們考慮一些設計問題。專門為高數據吞吐量開發新的處理器結構在概念上是很簡單的。但是,這種處理器結構有很多副作用,包括好的和壞的副作用。我這里提出一些更基本的或者更高層次的問題。

二進制向后兼容仍非常重要

說起來似乎有點奇怪,但是,它的確非常誘人,以至于人們很少把全新的工業架構設計作為改善性能和效率的方法。(我自己有一些想法)然而。對于服務器的任務來說,任何比目前的服務器效率有顯著提高的設計都需要超大的緩存或者龐大的主內存帶寬來滿足處理器處理大量數據的需求。沒有任何方法可以回避這個問題:數據吞吐量較高的處理器能在相同的時間里處理更多的數據。這就意味著需要更多的帶寬。

多處理器服務器仍需要認真地設計,以便得到良好的可伸縮性。一臺服務器能夠處理的數據吞吐量越大,這臺服務器就越有價值。因此,高可靠性將越來越重要。面對系統、存儲、軟件、服務和技術支持成本問題,一種新的熱門兒的工業標準架構設計必須考慮這些。這對于服務器市場是非常重要的。在服務器市場,需要提供技術支持的結構越多,確認和技術支持就越耗費時間,價格就越昂貴。因此,要記住安騰處理器的教訓,并且提供能夠讓用戶現有的軟件更好地運行的硬件。

緩存設計不斷變化的目標

緩存的存在可以減少主內存系統的負擔。目前,緩存主要用來幫助減少延遲和部分地減少帶寬的需求。對于這種芯片來說,緩存將主要用于幫助減少帶寬的需求和部分用于減少延遲。這將導致設計人員選擇更小、密度更大、但是延遲會更高的緩存設計。緩存的帶寬需求也將顯著增加,特別是多個CPU內核共享的緩存更是如此。

復雜性與效率之間的選擇

對于主要設計思路是單線程性能的處理器設計,更高性能的設計一般來說就是一種更加復雜、但是效率不高的設計。對于高度TLP優化的設計,從每個處理器的性能、每瓦耗電量或者指定芯片尺寸的角度說,效率都是更重要的。雖然更簡單的設計往往更有效率,但是,情況并非總是如此。例如,多個CPU內核共享邏輯電路或者緩存一般來說會更有效率,但是也更復雜。

耗電源和散熱量的易與難

TLP優化的設計應該更省電。然而,這并不能消除耗電量的問題。每個芯片包含更多的內核意味著每個芯片擁有更多的邏輯電路和較少的SRAM內存(耗電量很低)。因此,使用耗電量低的邏輯電路就更重要。芯片冷卻的某些方面將更簡單。這是因為每個芯片上沒有了以往的那些大的熱點(例如單內核芯片),而是每個芯片上有許多小熱點,所以平均溫度會更均衡。

然而,每個芯片的耗電量可能會提高,而且可能會顯著提高。冷卻一個耗電量為50瓦的單內核芯片是非常容易的,但是,冷卻一個四個內核的芯片(耗電量為200瓦)就是一個嚴重的挑戰。每個CPU內核的耗電量越低,就越能夠吸引人們在一個芯片上使用更多的內核。因此,大型多內核芯片時鐘速度的設計也許采用更少的晶體管,或者限制連接線和耗電量。

在合理的范圍內共享資源

對于芯片上緩存,一般來說最好是所有的內核共享。甚至一級緩存也能夠被兩個(或者更多)CPU內核共享(以后再詳細介紹這個問題)。功能部件,特別是對延遲不太敏感或者很少使用的大型部件,也可以讓多個CPU內核共享。共享能夠在不降低性能的情況下減小芯片的尺寸和減少耗電量。更多的共享需要增加邏輯電路來進行管理,并且需要額外的電路用于共享部件的數據輸入和輸出。在芯片本身增加這些電路的可能性不大,因此,有局限性。

實際工作優于推測 推測好于什么都沒有

當一個在單內核芯片上運行的程序運行到一個選擇條件的分時,最好是推測這個程序應該往哪個方向走,而不是停止整個通道的運行。然而,由于每個CPU內核都有多個線程,對一個線程的推測可能會阻礙另一個線程的實際工作。因此,不依賴于推測就能得到更好的性能會更好,盡管在幾乎所有的應用程序中沒有推測會更糟。因此,最好是讓實際工作優先于推測。

探索CPU內核、緩存、存儲和系統設計的新概念并重新考慮老概念

簡單地把重點集中在“在一個芯片上集成許多比較“簡單的”的CPU內核”是最基本的。由于某些瓶頸已經顯著減少,幫助芯片緩解瓶頸的“肥”CPU設計的功能就不太必要了,在某種情況下還可以取消這些功能。由于一些新的瓶頸仍將出現,某些領域的研究還需要增強,目前還沒有實施的一些概念可以快速推向市場。

這并不僅僅是處理器的問題。系統設計、設計、內存子系統設計和I/O設計的全部概念都需要重新考慮。某些效率充分的設計也需要“重頭再來”,首先進行最小規模的設計,然后重新分析現代的功能,只有確認它們對芯片的數據吞吐量真幫助的時候才增加這些功能。

內核和最佳線程是沒有固定數量的。這不僅是因為技術在不斷的變化,而且還因為不同的設計有不同的目標和選擇。每個芯片上可能集成的CPU內核的最大數量將要遵循摩爾定律,如果芯片的平均尺寸保持不變,那么,每個芯片上的內核數量將不斷增長。

雖然沒有理想的數量限制,但是,大多數擁有多硬件線程的CPU內核都有2個、4個或者8個線程。也就是說,除非使用完全不同的線程技術,否則,全都是這樣。使用SMT或者“Niagara”芯片以及其它芯片的粗粒度多線程技術,更多的硬件線程就能夠占用空閑的資源。但是,這將增加芯片的成本和復雜性。由于邊際成本不變,每個空閑線程帶來的邊際收益將下降。線程過多實際上會降低性能。

多內核的缺點

新聞中討論最多的問題是軟件許可證問題,因為很多獨立軟件經銷商是按每個“處理器”收取軟件許可證費用的。許多獨立軟件經銷商都認為“按處理器收費”就是“按每個CPU內核收費”。換句話說,如果用戶購買了一臺配置兩個雙內核處理器的服務器,就必須要按照4個處理器的標準支付軟件的許可證費,使整個系統的軟件使用成本高于配置兩個單內核處理器的服務器。目前,這還是一個支流問題。但是,當英特爾和AMD發布其雙內核x86處理器的時候,這將成為一個嚴重的問題。

向用戶提供多內核處理器的一個問題是用戶購買和升級的靈活性比較小。一臺采用雙內核處理器的4P(配置4個處理器插座)服務器系統能夠從1個芯片升級到4個芯片,從2個CPU內核升級到8個CPU內核。但是,一個配置8個內核的處理器就只能有8個內核。一個變通的方法就是把8個內核的芯片按照4個內核的芯片銷售,因為在某種情況下只有4個內核可以使用。這種情況是切合實際的,因為在生產的時候,有些芯片沒有8個功能完美的內核,但是,這些芯片至少有4個供用戶使用的完好的內核。這樣做肯定比扔掉擁有4至7個可以工作的內核的芯片要好得多。

人們推測的一個潛在的問題是為多CPU內核選擇時鐘速度。畢竟同一種生產工藝制作的不同芯片是按照不同的時鐘速度確定質量的。因此,在一個多內核芯片中,這種芯片不能僅限于使用速度最慢的CPU內核嗎?然而,在實踐中,這可能不是一個問題。與不同的生產線生產出來的芯片相比,同一片晶圓生產出來的芯片具有更多的相似特點。兩條相鄰的生產線生產出來的芯片更有可能具有相同的特點,并且可以達到同樣的速度。因此,一個多內核芯片中所有CPU內核可能都會達到同樣的速度等級。

簡要重新回顧Sun的“Niagara”芯片


第一款“Niagara”芯片

自從我的上一篇文章發表以來,又出現了許多關于Sun的8個內核的Niagara芯片的信息。雖然Niagara式的芯片可能有些例外(從單線程性能和多線程性能相比較的角度說),但是,看一下這種芯片仍然是很有趣的,因為這是惟一的一種我們擁有許多詳細資料的高級的TLP優化的服務器處理器。這種處理器不僅沒有使配置兩個內核,每個內核有兩個線程的IBM POWER5處理器相形見絀,而且這種處理器到目前為止還沒有發展到數據吞吐量明顯比單線程性能更重要的階段。

Sun已經制作出了第一款Niagara芯片,并且正在Sun的實驗室中運行。雖然這種處理器的最大耗電量只有60瓦,但是,這個處理器支持16個2GB的DIMM(雙列直插式內存模塊)內存,一共支持32GB主內存和每秒鐘20GB的主內存帶寬。這個芯片中的8個內核共享一個3GB二級緩存,每一個內核有一個16KB的一級指令緩存和一個8KB的一級數據緩存。這種芯片管線長度只有6級(stages),沒有分支預測單元。

看一下這個照片,這個芯片有將近2000個插針用于供電和I/O。其中大部分是用于主內存系統的。AMD的Opteron處理器在芯片上有一個雙通道DDR主內存控制器。但是,Niagara在一個芯片上有4個雙通道DDR2主內存控制器。

雖然關于芯片的尺寸直到最近也沒有最新的消息,但是,根據2003年的說法,這種芯片的尺寸可能是大約350平方毫米。與英特爾采用90納米制程生產的奔騰4處理器相比,Niagara處理器的耗電量要少一半。但是,這種芯片比奔騰4大三倍,從而使功率密度比奔騰4小六倍。Niagara處理器應該比較容易冷卻。

Sun已經在研制Niagara 2處理器。這種處理器有內置的千兆以太網功能,預計將與Sun高端的Rock處理器在同一個時間段推出。雖然Niagara系列芯片旨在以每個線程極小的CPU散熱量用于高密度網絡應用程序,但是,Rock處理器將具有更重要的單線程性能。Rock處理器不僅是為Sun的“肥”UltraSPARC V處理器設計的,而且顯然擁有與Niagara芯片同樣數量的硬件線程。


熱詞搜索:

上一篇:了解服務器硬盤產品
下一篇:理論探討:聚焦線程級并行設計(二)

分享到: 收藏