- 流處理器研究與設計
- 張春元等
- 3264字
- 2018-12-27 12:02:42
前言
本書的由來
基于馮·諾依曼體系結構的傳統程序設計模型和體系結構模型已經很好地運行了六十多年。但是,這個模型在當前VLSI工藝下,可靠性、功耗、計算效率、成本等都存在問題。全世界大量從事計算機系統研究、設計和制造的科學家和工程師們一直在設計新一代計算機體系結構方面做著不懈的探索。
近二十年來,國防科技大學計算機學院有很多老師帶領研究生們一直專注于新型體系結構的研究,并且取得過很多創新性成果。我們課題小組的主要成員在20 世紀90年代初期攻讀博士、碩士學位時,就開始關注國際上新型并行計算機體系結構的研究工作;隨后的10年間,承擔和參與了一系列國家自然科學基金項目、863項目和國家重點工程項目,獲得了多項國家和部委級科技成果獎。2000年以后,我們課題組的老師和研究生們把學術研究的重點集中在高并行處理器技術領域。經過一段時間的學習和研究,到2003年,我們對該領域的研究進行了總結,課題組的研究重點逐步聚焦到以下4種并行結構:
(1)以傳統處理器為基礎的片內多核結構;
(2)以多向量處理器部件為基礎的結構;
(3)以陣列處理器為基礎的結構;
(4)以處理(計算)單元陣列為基礎的結構。
當時,我們認為(1)和(3)兩種結構面臨的問題與現有的MPP相似,主要技術壁壘在于如何提高計算資源的使用效率,在當前程序設計模式下,要攻克這個壁壘是比較困難的。我們在結構(2)和(4)方面做了更為前沿的探索,資料表明,這種探索的結果是有吸引力的。國防科技大學計算機學院研制的銀河-Ⅰ和銀河-Ⅱ巨型計算機,都采用了向量處理器的結構,在向量計算機系統研究和應用程序向量化等關鍵技術方面都有比較好的技術積累,同時對向量處理技術中存在的難點問題也有更加深刻的體會。我們課題組在討論了學術新穎性和研究復雜性后,選擇了結構(4)作為研究重點,而作為重點研究的方向則慎重地選擇了以處理單元陣列為基礎的新型計算模型——流計算模型。
美國斯坦福大學Imagine原型系統是以流計算模型為基礎的流處理器經典代表。Imagine在處理器的適用性、功耗、程序效率、單位成本等因素上做了很好的權衡,其公布的研究成果非常有吸引力,鼓勵我們更加深入地開展流體系結構的研究。2004年,我們申請了自然科學基金,得到2005年度探索項目的資助。在此期間,我們不但閱讀了能夠得到的所有資料,研究了流處理器的體系結構和程序設計工具鏈,而且啟動了一個基于FPGA的32 位流處理器驗證系統的設計,該處理器被命名為“MASA”(Multi-dimension Adaptive Stream Architecture)。我們同時啟動了MASA模擬器的設計和實現以及配套工具鏈的構造,并將課題組命名為“MASA課題組”。到2005年秋,我們課題組成功地在Altera的StratixII EP2S180上實現了一個完整的32位MASA處理器演示原型MASA-Ⅰ,其清晰的結構和主要測試結果與當初的模擬結果非常接近。
MASA課題組的研究工作得到了國防科技大學計算機學院的重視和支持。從2004年開始,我們加入了學院“高性能聯合博導組”。2005年5月,MASA課題組主要成員又參加了學院承擔的國家重點工程——“飛騰64”(FT64)。為配合工程需要,從2005年7月下旬開始,MASA課題組4名成員不舍晝夜,用兩周的時間完成了共300余頁計40余萬字的技術研究報告,系統全面地總結了在MASA研究中取得的成果,對“飛騰64”的研制起到了積極的促進作用。課題組的主要成員也因此而獲得了科技進步獎。
結合應用需求和學術創新的考慮,我們在前期研究的基礎上,構造了多個流處理器原型,主要包括面向圖像處理的MASA-M1、面向多線程的MASA-SMT、面向大規模擴展的TiSA(Tiled-MASA)等。
從2005年開始,MASA課題組在流體系結構研究領域累計申請了4項自然科學基金項目和1項863高技術計劃項目;在有關學術會議和雜志上發表了一系列的學術論文并被檢索,也得到國內外同行專家的認可。國內有很多關注流體系結構的老師和研究生與我們進行了大量的學術交流,也使我們對在中國開展流體系結構的研究更加充滿信心。2007年,我們有幸遇到電子工業出版社高等教育分社的張濮先生和凌毅女士,并得到他們的建議和鼓勵,把研究成果形成學術專著,以供國內從事流體系結構計算機研究的同行參考。在張先生和凌女士的鼓勵和指導下,MASA課題組經過近一年的努力,終于完成了這本專著。
關于本書
本書的主要宗旨就是介紹流計算模型的主要思想和流體系結構。流(stream)計算模型是基于“生產者-消費者”的計算模型,其產生的根源是媒體處理的大量出現,新的應用需求引發了對新型計算模型的思考和完善,隨著人們對媒體處理領域計算特征的認識,流計算模型也不斷發展和逐漸明晰起來。
流體系結構一般采用大規模的運算陣列和多級存儲,通過片內并行和專用指令,從體系結構對應用高效支持。與通用處理器體系結構相比,這種結構大幅簡化了片內控制,擁有大量的可編程運算功能單元,并且支持通信信道可編程,能夠較好地緩解現有通用處理器面臨的計算壓力,特別適應VLSI技術的發展。進一步的研究表明,流處理器在媒體應用、信息處理等多種計算密集型應用領域可獲得與專用芯片相當的性能。新興流處理器包括學術界研究的原型系統Imagine、Merrimac、VIRAM、RAW、SCORE、FT64、MASA等,工業界的則有Cell、NVIDIA G80、AMD-ATI R580、Storm DSP、Tiles64等,這些流處理器都得到了廣泛的關注。可以預計在未來單芯片超十億只晶體管的時代,流體系結構將成為體系結構發展的一種主流方向。
流體系結構與應用結合十分緊密,因此本書還介紹了流應用特征、流編程編譯的基本方法。此外,由于流體系結構起源于媒體處理,在面向更廣泛的應用領域如科學計算時,有許多方面值得深入研究和改進,所以本書還結合課題研究,闡述了我們對未來流處理器的發展和研究方向的一些觀點。全書比較全面地反映了我們在流計算領域從體系結構、理論方法、模擬系統、測試程序、芯片設計、編譯、編程環境到典型應用等方面取得的研究成果。
全書共分8章,內容安排如下:
第1章主要闡述了流體系結構的產生背景、研究現狀及發展趨勢,并且介紹了當前幾種新興的流處理器。
第2章介紹了流體系結構的一些基本概念和基于流處理的硬件結構模型,并以實例說明了流處理器與向量處理器的區別。
第3章以MASA流體系結構為例,剖析了一個完整的流處理器核體系結構,深入研究流處理器內部硬件結構,包括指令集實例、流水線及各功能模塊的設計等,并且對提高性能的優化設計進行了討論。
第4 章針對流體系結構系統運行模式和協同機制進行研究探討,重點介紹了標量處理器核和流處理器核之間的軟/硬件協同控制機制,包括機制的組成及協同過程。
第5章介紹流體系結構的編程模型及編譯器設計。首先介紹其編程模型及與之配套的KernelC/StreamC語言,然后介紹其編譯器原理及設計,最后介紹一些目前國際上已有的其他流編程模型及編譯環境。
第6章先介紹了流應用的概念和領域,并以JPEG編碼算法為例闡述了應用的基本流化方法;然后分別討論了媒體處理領域中的H.264視頻編碼和科學計算領域中的梅森素數求解這兩個應用的流化過程和流化效果。
第7章從流體系結構多維可擴展性出發,首先介紹了流體系結構簇內擴展、簇間擴展和多核擴展;然后重點介紹了多核流體系結構設計、多核流體系結構程序設計與編譯以及多核流處理器VLSI特性等多個方面的內容。
第8章從流處理器發展的角度,重點討論流處理器未來可研究的工作。
本書由MASA課題組成員合作完成,由張春元教授、文梅副教授策劃和統籌,并與伍楠、何義、任巨和管茂林4位博士(生)共同執筆完成。第1章由張春元撰寫,第2章由張春元和文梅撰寫,第3章由張春元、伍楠撰寫,第4章由文梅和何義撰寫,第5章由文梅、任巨和管茂林撰寫,第6章由文梅和任巨撰寫,第7章由何義和伍楠撰寫,第8章由張春元和何義撰寫。楊乾明、荀長慶、吳偉、柴俊、蘇華友和全巍等碩士研究生收集和整理了大量的資料,提供了良好的素材,并參與了部分章節的編寫。本書寫作過程中,參閱了國內外許多作者的論文及著作,特別是Rixner的專著,參考了其中部分材料,在此深表謝意。
流計算模型和流體系結構的研究仍在發展之中。本書試圖在前人的研究基礎上,結合我們多年科研工作的體會,向同行介紹流處理器和我們的研究成果。由于作者的能力和知識面有限,疏忽、不當和錯誤難免,懇請讀者批評指正。
有關MASA課題組的情況,讀者可參見我們課題組的主頁http://masa.nudt. edu.cn。
MASA課題組 張春元
于湖南長沙國防科技大學
2009年2月