隨著莫爾定律的發展,IC設計者發現他們有許多硅,這些真實的資產來繼續發展。David Chisnall有些他們要去嘗試的冒險想法。
預言未來
明確的預言未來的技術是非常容易的,這東西將會變得更小,更快,更便宜。這將會在幾個世紀里實現并且不大可能發生改變——至少到我們開車跑起來不加油的時候。這會變得更有趣,并且我們預計未來一些東西會變得更復雜。
一些受雇于未來主義者的人僅僅是盡量預測一些東西,和提起語言正在發生的人們,不久他們就忽略了一些正確的受爭議的預測。這些接近工作有個限度,但是它不是非常有趣。
在計算機世界里一項好的技術看的是在大型計算機和超級計算機工作組上會發生什么和預測同樣的排序運算在個人電腦領域會產生怎樣的效果。當我在參加一個IBM 工程師關于他公司的新虛擬化技術的討論時,這條規則對于像我開車回家。他談論到他的公司有項優勢是其他人的工作領域所沒有的:不論什么時候他們被難住,他 們會獨自去大廳的超級計算機設備那里去詢問如何解決同樣的問題在幾十年前。
這種方法在未來是很好的指導:這些東西通常降下來,從低到高的消費階層。
另一種趨勢是昂貴高端的變得越來越小。SGI的錯誤是沒有預料到這是正確的。大概10年前,SGI是一個生產高端昂貴圖形硬件的公司。他們一直保持這種定 位;他們最后的硬件允許一些GPU共享同一個存儲器因此緊緊的結合在一起工作。不同的是現在NVIDIA生產GPU。很多來自NVIDIA的人從前是在 SGI工作的,但是他們的管理部門不想讓他們生產消費級別的圖形加速設備,直到它能夠和高端昂貴的硬件相媲美時。這些人們繼續在自己的公司中,和現在他們 擁有20%的重要市場份額大于與SGI競爭的整個市場份額。更糟的是SGI的前途,一些十年前想要生產高端昂貴硬件的人們現在到了僅僅能夠擔負起消費稅的 地步。新使用高端昂貴設備的經常會改變,但是最終消費部門追上。
這個階段的成就
雙核CPU第一次被商用領域的IBM制造出來的POWER4在幾年之前。這個主意簡單是:一些大型機器有許多CPU,如果把他們放在一個CPU中可以減少他們實際上的體積。
那些天,Intel和AMD跳躍到雙核潮流上,它們的競爭朝向多核甚至更高。這是一個必然的開發環境,相應的到摩爾定律——其中一個重大的觀察錯誤會在計算 中。莫爾定律的成立是在CPU中晶體管的數量每增加一倍需要12-24個月。(這個精確的周期有時變化,取決于你什么時候問戈登?摩爾,但是它通常報出是 18個月。)如果你想花費更多錢,你可以增加更多的晶體管;舉個例子,Extreme Edition的Pentium系列把這些放在了更多緩存上。這個問題變成了他們增加了多于的晶體管。Pentium 2,1997發售,用了7.5億晶體管。Itanium 2,2004年發售,用了592億晶體管。它們大部分是緩存。CPU中加入緩存是好的,是一個增加晶體管的簡單方法,緩存很簡單,增加一些只是比芯片設計 的復制粘貼單元快了一些時間。不幸的是它開始減小,并且直接快速返回。一次全部工作進程轉載入緩存,加入一些規則沒用好處。
另一種手法是加入更多 核心,看最后的兩個CPU的晶體管個數,我們看到2004年有必要生產80核心的Pentium 2。在十年前,它是節約的,可執行的方案來生產5000個P6核心。不幸的是,電源設備僅僅可以提供一個芯片的,這意味著需要它單獨的供電設備。沒用提到 靠液氮來冷卻它提供一個穩定的支持。這看起來盡管像存儲器技術只會在這個它們可以保存部分提供的數據的時期,每個都有自己的總線,但是你不能最低限度的使 用1000根針腳——64000跟為64位內存總線。甚至設計他們封裝在一個芯片上分布象征一個工程挑戰;設計主板將要鏈接存儲器通道和內存bank是個 問題,這會給大部分PCB設計者重復的惡夢。
從芯片上拋棄一些緩存工作變慢了點。從芯片上跑多一些核心變得更慢。終于,不管怎么樣,聰明的解決方法將會出現的。
RISC相對于CISC
其中一次大辯論在上世紀80年代和90年代中是否RISC或者CISC指令接近的部分設計是否正確。這個主意在RISC之后提供了個簡單的指令用在平臺的復雜計算上,很快人們需要復雜指令的CISC為了他們自己的需要。
具體化的CISC設計是VAX,寫VAX匯編和寫高級代碼沒用太大不同。在稍后的VAX系統中,一些指令是微代碼,這些意味著分解在簡單些的真是指令后就是 在實際硬件上運行的。在VAX后,Digital發明了Alpha,這芯片相對的出色。Alpha有一個微指令集,但是運行的異常快。在幾年里,它是可以 買到的最快的微處理器。甚至到現在,500強計算機中還有一些基于Alpha的,一個不好的事實是這種芯片不會在現今的開發環境中超過五年。
在早些年,RISC做到很好。編譯器編寫者喜歡這種芯片;它可以簡單明白指令集,和它在構建RISC指令集上比在CISC上更簡單的了解復雜語言。
第一個問題在RISC上的原理變得明顯改善在操作部分。早期RISC芯片沒有除法指令;一些甚至不能有乘法指令。相反的,他們創建了一連串的超過早期的指 令,像變換操作。這不是一個軟件開發問題;他們會僅復制一連串的指令以在機器結構內部完成除法,放一個宏指令在某些地方,用它像我們有一個除法指令時。這 樣一些人找到一個高效的方法使用除法。下一代CPU的除法指令執行操作在幾個循環中,直到那些循環外部的數據執行一系列的數據用起來像個代替品。這帶到更 遠的一步是Intel最后一代核心的微代碼結構。一些連續的簡單的x86操作現在是一個簡單的指令集合。
RISC原理的一些部分繼續存在。它一直 廣泛的被關注像是一個好主意在指令集的正交上,舉個例子,因為提供乘法運算的方法做一件事是在浪費硅晶體。不管怎樣,簡單指令集的方法被列出。甚至現在的 PowerPC和SPARC芯片是占有了占有市場像RISC處理器一樣沒能意識到那些RISC創造的周期。
SIMD和更多
后來一個相對普通的特點在高性能計算機領 域,Pentium MMX是第一個x86芯片加入單指令多數據流(SIMD)指令集。這些指令精確列舉他們的建議,提供一種方法執行同樣的數據乘法操作。稍后傳統(數量)指 令回去掉從另一處來的數據,SIMD對應的能去掉四個數據從四個數據中,執行同樣的操作在四次輸入上。這種運算用在許多圖片和視頻程序上。
SIMD 指令加入CPU是相對便宜的,提供一個好的回報在投入上。如果你的進程消耗你10%的CPU你要升級,你不太可能注意到這現在僅僅花費5%。有過你有個進 程占用了100%的CPU,你會很幸運的注意到,如果原來需要10分鐘運行的程序現在需要2分鐘。許多應用SIMD的好處是從SIMD到后面的類型——運 行用了大量CPU能源——因此允許它們運行的更快提供一個可察覺的改善。
超過SIMD,一些進程有合適的指令進行特定運算。VIA的C3,舉個例 子,有些指令專門用于為AES加密運算加速。C7加入了一些為SHA-1和SHA-256哈希運算的加速。像圖形,關于密碼的計算典型的基于CPU。他們 像是更加重要在將來,像這樣的數據發送到網絡,更多的機器和移動設備上。這不是罕見的在偷竊時查看為一個便攜電腦硬件所進行的AES加密運算;加快AES 運算在機器上用磁盤做更快。硬件加速密碼破譯不是新的。一些公司生產PCI卡形式的密碼加速器。
圖形處理單元(GPU)
后來只有一些電腦有一個專用的密碼加速卡,大部分有個圖形處理器。每代GPU越來越相同。這些天,GPU用在很多高性能計算機應用中,因為GPU有龐大的計算能力。在效果上,GPU時個超標量流頂點處理器,它并行處理一些SIMD指令流在很快。
在設計上,GPU和Pentium 4有許多相同的地方。他們都用了超長管線允許他們一次使用許多指令。他們執行起來很糟糕如果其中一個管線預報了錯誤。這是Pentium 4的一個問題直到這個支流被發現,平均大約每7個指令。它對于GPU不是大問題,這樣的設計時為了執行特殊運算,不會陷入更多的錯誤分歧中。
現在 的環境在PC世界中很像20年前。回到那時,電腦有幾個處理器時不尋常的,一個時我們為什么要叫做的中央處理器(CPU)。CPU的一般目的時計算和協調 與其他CPU的活動。通常,工作站和高端昂貴PC有一個浮點處理器(FPU)進行浮點運算。始于80486,FPU同CPU在相同的領域消失了。另外的普 通加法運算時內存管理單元。這個單元控制物理和虛擬內存之間的轉換;那些日子里,你很難找到CPU里沒用MMU單元的。一個現代電腦有一個CPU和并行的 浮點運算器。它不需要很大的飛躍來想象Intel最終要把一個或兩個GPU核心加入CPU中。
在這點上,你或許想這是可能升級的范圍,因此它值得 向后退一步看CPU的發展。2005年,蘋果的便攜式電腦首次銷量上超過了臺式電腦。這依然在工業上跟隨。這個增長范圍在移動GPU的銷量上大大超過了在 桌面GPU上的銷量,Intel在CPU和GPU市場時最大的玩家。很少的人升級他們的GPU在便攜式電腦上。
浮點處理器,內存控制單元和 頂點處理器已經準備加入現代的處理器中。數字信號處理單元(DSP)已經加入了一部分數量的處理器中,它們像是他們將要發現他們的方法不久在消費者的 CPU中。第一次用到附加的晶體管時加入了許多執行單元,制造深流水線和更寬的超標量結構,和更多的緩存。現在我們加入整個同種的處理單元。盡管只有一些 級別透過范圍。這一步從單核到雙核是巨大的改善;在我的電腦的一個CPU上分配75%的CPU資源是少有的,更多普通的將要分配50%,將要在停止共享和 其他程序或核心之間。
從雙核到四核將會是一個非常小的改善,單仍有意義。當年升級到32核或64核,事情就變得有趣了。它經常是必須的寫線程代碼 在某些程度上并且使用起來不能有很多漏洞。這些應用一個異步信息很容易,接近于穿過,但是流行的桌面開發環境API沒有設計圍繞這個模式。在實際上,很少 的桌面軟件用到這些。一些例如,視頻編輯。舉例子,能吃掉不少拋出的像你將來預料到的CPU資源。已經收縮的高端性能將會繼續。那些日子里,一些人主意到 1GHz Athlon和3GHz Core 2 Duo的區別在絕大多數時候。一些人需要最快的電腦可買到的已經相當小。需要中檔速度機器的人的數量將要收縮。
移動計算和精確數據中心的繼續增長,電的消耗變得更加重要。猜想一個32核CPU允許你關閉核心當你不使用它的時候。在移動領域,你大概最好需要2到3個核心。
不同類型核心的CPU
如果你只有一少部分核心在你的進程上,你就開始驚嘆為什么它們存在。少數應用程序需要所有核心為了加快運行速度在專門的硬件上,因此我們用什么代替它?
我們開始看這個將要形成的趨勢。例子包含了蘋果的Core視頻;它將會運行在你的CPU上如果你需要,它有在CPU的頂點單元如果有,或者GPU需要更快。 OpenSSL將會運行在密碼加速卡上如果它存在,或者運行在CPU上如果它沒有。存在于普通運算的抽象接口是一種功能使它更加容易在硬件上執行;只有一 些小的變化是必須使用一些功能的優勢。我們看到OpenGL上的一些相同的東西;頂點變換和光線運算在圖形硬件上必須有個新驅動要寫,但是不能修改現行的 應用代碼。最重要的,專用的硅制造的硬件的效率比一般用途的硬件效率高在未來的工作上,電能的消耗像是更少。
如果讓硅進入太空,為什么沒有讓一個 CPU進入死亡?一個密碼加速器呢?專用硬件在其它昂貴的邏輯計算上如何?當他們不用時,你可以關閉他們。當年需要時,他們將會占用一點能源允許同樣的計 算在普通硬件上,第一步這里整合了FPU和SIMD單元。下一步將要像整合GPU那樣在一起。超越這些,它好像關系到大多數專用硬件的優勢。在一些實例 上,我們將會簡單的看到擴展的基本指令集(像發生在浮點和SIMD指令的)提供運算一些在邏輯上的傳統運算。終于,我們看起來像是那些引申的超過單指令。
我看起來有個主意是封裝到FPGA中像是十分動人的。這將允許許多靈活的運算,但是像一個有意義的能源消耗。
責任編輯:lq6
-
芯片
+關注
關注
456文章
51069瀏覽量
425835 -
雙核cpu
+關注
關注
0文章
5瀏覽量
7804 -
晶體管
+關注
關注
77文章
9730瀏覽量
138649 -
浮點處理器
+關注
關注
0文章
6瀏覽量
7697
發布評論請先 登錄
相關推薦
評論