懸崖邊上的CPU設計師: 現在該往哪里去?

發(fā)布時(shí)間:2014-11-10 11:28    發(fā)布者:eechina
關(guān)鍵詞: 處理器設計 , 矢量處理器
作者:Ron Wilson, 總編輯, Altera公司

對可憐的處理器設計師表示同情。他們的工作以前非常簡(jiǎn)單。在每一半導體新工藝代中,每平方毫米的晶體管數量都會(huì )加倍,速度會(huì )有很大的提高,同時(shí)總功耗也會(huì )降低。設計師的黃金規則是 “保持體系結構不變,在實(shí)現上稍作調整!

但現在完全不同了。速度提高的越來(lái)越小,功耗降低的也越來(lái)越少。您再也不能簡(jiǎn)單的提高時(shí)鐘了:設計師不得不使用所有新晶體管來(lái)研究實(shí)現并行功能。但是怎樣找到并行功能呢? 首先,我們找到了現成的好方法:通過(guò)超標量體系結構自動(dòng)實(shí)現指令級并行功能。然后,有了更多的晶體管,使用了大部分指令并行功能,矢量處理器進(jìn)行數據并行處理,宏單元級指令并行 — 線(xiàn)程,采用多線(xiàn)程,然后是多核CPU 。

但是,我們突然發(fā)現自己身處無(wú)盡的 “暗硅片” 中。所有這些晶體管的功率密度增加非?,如果它們都同時(shí)全速運行,根本沒(méi)法對其進(jìn)行散熱。我們使用時(shí)鐘選通,然后是電源選通,最后降低晶體管封裝密度,以避免互聯(lián)走線(xiàn)被熔化。但是,這限制了我們采用越來(lái)越多的晶體管實(shí)現數據和算法的并行處理?雌饋(lái)這一過(guò)程要慢慢停下來(lái)了。

年初的熱點(diǎn)芯片大會(huì )上就提出了這類(lèi)問(wèn)題。雖然在克服困難方面已經(jīng)取得了很大的成就,但是芯片設計師仍然展示了還有繼續創(chuàng )新的空間:找到能夠進(jìn)行并行處理的地方,使用所有晶體管的方法,以及使其保持較低溫度的技術(shù)。

找到好方法

很顯然,如果我們繼續使用所有這些晶體管,那么,我們必須降低能耗。這意味著(zhù),減少信息的傳送:數據移動(dòng)和復制少了,指令讀取的少了。不僅 DRAM 周期能耗比較高,而且在高級進(jìn)程中,數據通過(guò)阻抗越來(lái)越大的片內互聯(lián)也是問(wèn)題。在傳統的體系結構中,我們能夠傳送大量的數據:最近的估算表明,SoC 中 80% 的活動(dòng)硅片用于連接或者緩沖互聯(lián),而不是用于邏輯功能。

信息傳送的少了,意味著(zhù)需要圍繞數據內部結構來(lái)組織處理單元—這是熱點(diǎn)芯片大會(huì )論文最明顯的觀(guān)點(diǎn)。我們特別關(guān)注一下四種情形。第一,搜索引擎加速,處理大量的非結構和獨立數據元素。第二種情形,矢量處理,處理高度結構化的數據,其元素之間會(huì )有相關(guān)性。第三種,有很多線(xiàn)程的問(wèn)題,但不一定是并行數據處理。最后一種情形,單線(xiàn)程加速。

搜索引擎加速

對于并行執行而言,網(wǎng)絡(luò )搜索既帶來(lái)了很多難題,也創(chuàng )造了機會(huì )。數據中心設計師不僅僅需要多核 x86 CPU,他們考慮更多的是數據的非結構、獨立特性—基本上,網(wǎng)頁(yè)上到處都是。在熱點(diǎn)芯片大會(huì )上,微軟資深研究硬件設計工程師 Andrew Putnam 介紹了他的團隊在加速必應搜索引擎方面的工作。

Putnam 簡(jiǎn)要介紹了搜索問(wèn)題的關(guān)鍵階段流程,頁(yè)面評定 (圖1)。在第一階段,服務(wù)器群—大量的服務(wù)器,選擇候選頁(yè)面:含有某些搜索字符串元素的頁(yè)面。這些頁(yè)面被送入評定引擎,本身包括三級:特性提取、自由形式表達評估,以及機器學(xué)習評分。


圖1. 在專(zhuān)用處理單元群中實(shí)現頁(yè)面評定流水線(xiàn),加速必應搜索。

Putnam 說(shuō),特性提取是由 54 個(gè)硬件狀態(tài)機陣列完成的,即,規則表達匹配和結果列表。使用狀態(tài)機避免了指令獲取和解碼操作帶來(lái)的能耗問(wèn)題。為進(jìn)一步降低能耗,頁(yè)面內容不會(huì )通過(guò)特性提取器:只有記錄特性出現、位置和頻率的表格數據被傳送至下一級。

表達式評估器是另一陣列,但這次是特殊的多線(xiàn)程處理器陣列。這些處理器,以 240 個(gè)單元為一群,讀取來(lái)自提取器的表格數據,從中計算出非常復雜的數字表達值,這可能會(huì )包括超越函數。必應開(kāi)發(fā)人員調整了算法,因此,這些表達式會(huì )有所變化,無(wú)法對其進(jìn)行硬線(xiàn)連接。這一級的輸出是頁(yè)面評定,為從搜索字符串中提取出的元特性分配一個(gè)數字。

這一數據隨后被送入機器學(xué)習級,Putnam 對此并沒(méi)有介紹,這可能需要大量的并行神經(jīng)網(wǎng)絡(luò )仿真。正是這一可訓練級為頁(yè)面產(chǎn)生最終的評定分。

Putnam 說(shuō),微軟選擇在大規模 FPGA 的 2D 平面內實(shí)現三級評定引擎。每一 FPGA 位于中間電路板上,插入到微軟標準服務(wù)器機柜的服務(wù)器刀片中。Putnam 觀(guān)察到,可以采用 ASIC 來(lái)很好的均衡速度和功耗。但是由于必應評定算法的多變性,需要具備重新配置能力。他提醒說(shuō),否則,特殊的硬件很快就會(huì )成為程序員面臨的瓶頸問(wèn)題,最終不得不依賴(lài)數據中心來(lái)解決問(wèn)題。

微軟的設計人員建立了硬件引擎的很多例化,允許異步運行,研究頁(yè)面評定的固有并行特性。盡可能減少指令獲取和解碼操作。定義了任務(wù),因此,只有很少量的數據在流水線(xiàn)級之間傳送。在不同的環(huán)境中應用相同的原理,會(huì )導致完全不同的體系結構。

矢量處理器

搜索引擎使用的數據集有兩個(gè)重要的特性(除了巨大的規模之外)。首先,數據元素是獨立的。即,一個(gè)頁(yè)面的評定分值對任何其他頁(yè)面的分值沒(méi)有影響,因此,打分任務(wù)互不影響。其次,數據元素是非結構化的:兩個(gè)頁(yè)面不必有相同的格式。

但是仍然有其他大量的數據集具有嚴格的結構。例如,在大氣模型中,每一點(diǎn)都會(huì )是矢量,包括了坐標、溫度、入射射線(xiàn)、各種氣體的壓力分量,以及懸浮顆粒的濃度等。計算模型的下一狀態(tài)需要對同一矢量算法進(jìn)行大量的重復。

這些問(wèn)題非常適合采用矢量處理器來(lái)解決:很多同樣的算法流水線(xiàn)工作在鎖定步驟,同時(shí)完成相同的運算,但是針對不同的數據—即,經(jīng)常使用的術(shù)語(yǔ),單指令多數據 (SIMD) 機制。很顯然,這些機制并行完成很多運算,從而提高了性能。通過(guò)減少指令獲取數據流,也降低了能耗。

在熱點(diǎn)芯片大會(huì )上,NEC 開(kāi)發(fā)經(jīng)理 Shintaro Momose 介紹了他所在單位的下一代芯片設計,包括 NEC 長(cháng)遠的 SX 系列矢量超級計算機:SX-ACE。Momose 重點(diǎn)介紹了兩個(gè)特殊問(wèn)題:存儲器帶寬和粒度。

Momose解釋了很多大規模應用 — 包括天氣預報、例子物理、流體動(dòng)力學(xué),以及結構分析等,為提高計算性能,這需要很高的存儲器帶寬,計算機每完成一次浮點(diǎn)運算都需要與存儲器交換一個(gè)字節。而矢量處理器芯片達到了數十 GFLOPS,對 DRAM 的要求越來(lái)越高 — 足以填滿(mǎn)芯片的任何總線(xiàn)。相應的,NEC 把 DRAM 控制器—16 個(gè)獨立的 DDR3 SDRAM 控制器,直接放到矢量處理器管芯中,大量的管芯交叉開(kāi)關(guān)連接所有 DRAM 通道和任何矢量處理單元。這一決定使得單芯片總帶寬達到 256 GBps。

粒度是更有趣的一個(gè)問(wèn)題。并行體系結構最近的發(fā)展趨勢是—可能受到圖形處理單元 (GPU) 進(jìn)行高性能計算的影響,由非常簡(jiǎn)單的處理器構成大規模陣列。而 Momose 看到,這類(lèi)體系結構雖然概念上很簡(jiǎn)單,但是在實(shí)際中,要求程序員發(fā)現足夠的并行功能,使這些小 CPU 工作起來(lái),讓每一個(gè)任務(wù)保持同步或者互相鎖定。他認為,更好的是采用一些功能更強大的矢量?jì)群硕皇呛芏嘈群恕?br />
這就是 SX-ACE 所采用的方法。每一芯片中的每個(gè)內核都包括標量處理單元、矢量處理單元和 1 MB 的共享快速 RAM。矢量單元有 16 個(gè)處理模塊,每個(gè)模塊包括了兩個(gè)加法流水線(xiàn),兩個(gè)乘法流水線(xiàn),以及一個(gè)除法/平方根流水線(xiàn),一個(gè)邏輯流水線(xiàn),以及一個(gè)屏蔽流水線(xiàn)。每一芯片有四個(gè)內核,因此,每一芯片總峰值達到 256 GFLOPS,與存儲器總帶寬相匹配。在大規模本地存儲器周?chē)贾每焖倏刂铺幚砥骱?16 個(gè)算術(shù)模塊,NEC找到了大規模并行和實(shí)際代碼編程的最佳平衡點(diǎn),這些代碼與實(shí)際的數據有很大的相關(guān)性。

需要大量流水線(xiàn)的應用

與數據并行的很多問(wèn)題相比,數據中的一些問(wèn)題看起來(lái)很難解決,但是可以編程,產(chǎn)生很多線(xiàn)程。在這種情況下,您仍然可以實(shí)現很多并行執行,但是每一線(xiàn)程可以完成不同的工作,因此,矢量處理體系結構的價(jià)值不大。對于這些情形,ARM® CTO Mike Muller 在他的主題演講中建議了一種不同的策略:他稱(chēng)之為異構計算/同構體系結構。

這種想法來(lái)自于 ARM 的 big.LITTLE 概念。如果一項任務(wù)有很多線(xiàn)程,一個(gè)或者兩個(gè)線(xiàn)程真正需要大量的計算,而很多線(xiàn)程并不需要。big.LITTLE 概念就是把一些小規模的低功耗處理器,以及使用相同的指令集而功能強大的大規模處理器組織起來(lái)。然后,硬核線(xiàn)程可以在高速大功率 CPU 上運行,線(xiàn)程完成后,可以選通電源供電。在較慢的低功耗 CPU 上運行簡(jiǎn)單線(xiàn)程。

在熱點(diǎn)芯片大會(huì )上,Muller 進(jìn)一步延伸了這一概念,他建議,除了 big 和 LITTLE ARM 內核,集群還可以含有 ARM 的 MALI GPU 內核,以及單指令多線(xiàn)程處理器,一些實(shí)例目前已經(jīng)在 ARM 的研究實(shí)驗室中開(kāi)始規劃了 (圖2)。所有處理器會(huì )共享公共編程語(yǔ)言,甚至是某些對象代碼,共享主存儲器,透明、動(dòng)態(tài)的進(jìn)行線(xiàn)程分配,降低了對顯式數據傳送的需求。通過(guò)把每一線(xiàn)程分配給低功耗處理器,滿(mǎn)足了線(xiàn)程目前的性能需求,這類(lèi)系統降低了總任務(wù)的能耗。


圖2. ARM 的異構計算同構體系結構結合了完全不同的微體系結構內核,可以共享相同的源代碼。

單線(xiàn)程性能

聰明的程序員發(fā)現并應用了數據并行執行功能,梳理好代碼中的所有線(xiàn)程后,仍然存在單線(xiàn)程執行的問(wèn)題。但是,我們已經(jīng)把時(shí)鐘頻率、超標量體系結構、分支預測以及很多其他方法發(fā)揮到了極限。還有什么其他好辦法嗎?在一篇介紹新 Denver CPU 內核的文章中,Nvidia CPU 設計師 Darrell Boggs說(shuō),有。

丹佛很可能是ARM V8所要采用的 (圖3)。這是一種七路超標量體系結構,含有整數、整數/負載存儲和 NEON 浮點(diǎn)執行流水線(xiàn)。它使用了硬件預獲取單元,每一周期解碼 8 條指令。這實(shí)際源自很早的 CPU 體系結構的一種特性:丹佛完成動(dòng)態(tài)隨時(shí)微代碼優(yōu)化功能。


圖3. 在您深入了解指令獲取單元之前,Nvidia 的丹佛 CPU 看起來(lái)像是傳統的超標量 CPU。

Boggs 解釋說(shuō);“執行和分支單元在執行期間對代碼進(jìn)行分析。把分析信息傳送給硬件優(yōu)化器,解開(kāi)循環(huán),重新命名寄存器,重新組織指令。然后,優(yōu)化后的代碼以微代碼的形式存儲器在特殊高速緩存中!

Boggs 解釋說(shuō),第一次通過(guò)循環(huán),丹佛構建了代碼的微代碼版本,優(yōu)化了數千條指令。在后續的步驟中,讀取單元裝入來(lái)自?xún)?yōu)化高速緩存而不是指令高速緩存的微代碼,旁路指令解碼器,把微代碼直接送入執行單元。結果,對于迭代代碼,丹佛在遇到新代碼之前會(huì )盡可能只使用最初的指令流。會(huì )很快開(kāi)始處理大部分微代碼。

Boggs 宣稱(chēng),這一方法提高了執行速度。他展示了結果,在標準測試中,2.5 GHz 丹佛接近甚至超越了 Intel 的 Haswell。

Boggs 說(shuō),丹佛還解決了功耗問(wèn)題。除了時(shí)鐘選通和電源軌選通之外,CPU 還支持低電壓 “保持” 模式,保持 CPU 和高速緩存狀態(tài),有效的降低了泄漏電流。通過(guò)避免 CPU 檢查點(diǎn)和高速緩存泛洪問(wèn)題,保持模式提供了空閑間隙降低功耗的方法,這些間隙非常短,無(wú)法完全進(jìn)行電源選通,通過(guò)這些方法處理泛洪和狀態(tài)恢復問(wèn)題。

對高性能和低功耗的需求會(huì )持續不斷,半導體技術(shù)再也不能以簡(jiǎn)單的方式來(lái)滿(mǎn)足這些需求。而解決方案越來(lái)越專(zhuān)門(mén)針對應用的特殊性,算法編程,以及數據的本質(zhì)結構等。最終,所有體系結構都會(huì )更加專(zhuān)用化,通用 CPU 這一術(shù)語(yǔ)的含義也會(huì )逐漸變化。
本文地址:http://selenalain.com/thread-133923-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页