序一
人類文明以農業社會形態延續了數千年。工業革命在不到300年的時間內,給人類社會帶來了翻天覆地的變化,極大地推動了生產力的進步,將人類文明帶入工業社會。當前,我們正處於一個新時代的開端!新一輪工業革命開啟,互聯網革命進入下半場,數字經濟正在成型展開,在這些“變革”的背後,“信息技術”及“信息化”是其核心驅動力。以計算機和互聯網為代表的信息技術正在推動人類社會朝著全面數字化、網絡化和智能化的方向發展,一個人、機、物融合的新時代正在開啟,人類文明開始進入信息社會。
隨著大數據、人工智能、物聯網、5G通信以及生物工程等新技術融入人類社會經濟活動的方方面面,數據成為新的生產要素,圍繞數據處理分析尤其是大數據處理分析的計算成為新的生產力。新時代對計算的需求也呈現出一些新的特征。
首先,需要超強的算力。統計計算本身就是一種極限計算,高度依賴於算力。例如,為了讓計算機識別出一隻貓,就需要數百萬圖片的訓練,這對算力是一個非常大的消耗。面對未來的人、機、物融合時代,面向自動駕駛、天文探索、氣像預測等更復雜場景,對超強算力的需求將會是常態。
其次,計算將無處不在。人、機、物融合場景下泛在計算模式成為新形態。從體繫結構角度來看,雲側的極限計算、邊緣側的專業計算、端側的個性計算互相協同,“端邊雲”一起構成未來計算新體繫。
其三,降耗節能成為行業共識。計算行業正在成為未來的能耗大戶。例如2018年中國數據中心耗電量已超過三峽電站全年發電量,約占全國能耗的2.3%,預計到2030年將占全國能耗的4.2%。計算行業降低能耗成為剛需。
無論是超強的算力、泛在的計算,還是降耗節能,都需要圍繞各種處理器進行,以處理器為核心構建計算體繫、工具鏈條和應用生態。應用場景的多樣化和數據類化,使得傳統單一的計算架構越來越難以滿足數據處理和用戶體驗的要求,多樣性發展既是趨勢,也是挑戰。不同架構的處理器有不同的特點,適合不同的領域。早為個人計算機設計的x86架構處理器目前在傳統桌面和服務器領域占有優勢; ARM架構處理器在移動計算領域優勢明顯,並正在向服務器和物聯網等領域延伸; RISCV架構處理器由於完全開源的特點在萬物互聯時代開始獲得廣泛關注。
華為鯤鵬繫列處理器基於ARM架構,既繼承了ARM的生態優勢,又結合實際的場景和上層基礎軟硬件進行了創新,通過“硬件開放、軟件開源”來推動計算產業共同發展,以滿足未來智能世界對多樣性計算的需求。如何吸引更多開發人員,幫助他們在鯤鵬處理器上更容易地編寫和優化軟件,在並發、性能、效率和安全等方面做得更好,是鯤鵬生態環境建設的關鍵問題。要有效解決該問題,提供各種高質量的教材無疑是一個重要的起點。
我很高興看到《鯤鵬處理器架構與編程》的出版,為促進鯤鵬生態的構建邁出了堅實的一步。本書有助於高校學生、開發者學習和掌握先進實用的ARM計算架構,不僅可以用於解決各種應用問題,更可為個人職業發展開闢新路。我也希望通過此序,寄語廣大青年學子和從業人員,把握住數字經濟發展帶來的歷史機遇,努力學習,深入實踐,錘煉能力,不負韶華,不負時代。
梅宏
中國科學院院士
中國計算機學會理事長
綠色計算產業聯盟理事長
2020年8月於北京
序二
得知《鯤鵬處理器架構與編程》即將出版,讓我回想起20世紀80年代初從海外回國,投入研制我國臺大型計算機的歲月。當時,我們已有的成果,比如漢字激光照排、聯想式漢卡,都是計算機的擴展功能,不是計算機主體。那時候我就覺得中國要做計算機,就一定要做芯片。幾十年過去了,我們自己的企業就已經能生產出比肩國際,甚至在某些方面還猶有過之的芯片。作為一名一直從事計算機研究與開發的從業者,我深感欣慰。
我們都知道芯片的研發很難,不是一朝一夕就能夠出成果的,需要長時間的投入以及豐富的經驗積累,但是華為堅持下來了。當下我們的計算產業正在經歷種種困難,芯片事件給人的教育挺深刻的,比我們講一百遍都有用,讓全社會感受到芯片的重要性,小小的芯片是真正的“大國重器”。作為一個見證了中國計算產業從無到有的親歷者,我想給大家打打氣,這些當前的困難放到中國計算機發展史中來看,隻是一個可以邁過去的小坎而已。
首先,全社會都很重視計算產業的發展,國家支持力度很大,加大政策支持和資金投入。我們也有一批像華為這樣處在國際領先地位的企業做投入。
其次,中國市場體量巨大。計算產業包含的數據中心、人工智能等本身就是一個萬億級的市場。更重要的是,計算作為一種通用技術可以和其他產業集群數字化相結合,帶來效率的提升和產業空間的拓展,其所創造的體量是不可估量的。
第三,經過一代代計算人的傳承,我們的人纔體繫已經逐步完善,有大量掌握先進技術的基礎架構研究人員和應用開發人員。
我們有人、有市場、有資金、有技術,沒有理由搞不好計算產業。當前主要的問題在於如何在使用中讓生態豐富起來,從某些相對容易的領域逐步推進到企業,後進入更廣泛的領域。今天,很高興看到《鯤鵬處理器架構與編程》由清華大學出版社出版,本書繫統而深入地介紹了鯤鵬處理器的硬件架構、軟件架構、繫統編程、生態移植等核心內容,能有效指導廣大青年學生和從業者進行研究開發,他們將是未來計算生態蓬勃發展的生力軍。今天的火種,明天將處處燎原。
成功通常需要經歷很長的過程,不一定要自己成功,我做一段,大家接著做。目前是適宜創新的時期,希望年輕人勤奮工作,努力創新,實現“兩個一百年”的奮鬥目標,自己也能獲得更多的成就感。
倪光南
中國工程院院士
2020年8月
前言
“北冥有魚,其名為鯤。鯤之大,不知其幾千裡也。化而為鳥,其名為鵬。鵬之背,不知其幾千裡也; 怒而飛,其翼若垂天之雲。是鳥也,海運則將徙於南冥。南冥者,天池也。”
上面這段是《莊子·逍遙遊》中記載的一段“列子仙話”。華為公司選擇用“鯤”和“鵬”這兩種傳說中奇大無比的大魚和大鳥合體而成的華夏上古神獸“鯤鵬”作為其芯片產品的名稱,足以看出其中“鯤鵬展翅”的宏圖大志。
廣義而言,鯤鵬芯片是華為海思自研芯片家族的總稱。其中除了鯤鵬繫列處理器芯片外,還有昇騰(Ascend)人工智能(Artificial Intelligence,AI)芯片、固態硬盤(Solid State Drive,SSD)控制芯片、智能融合網絡芯片及智能管理芯片等,形成一個強大的支持計算、存儲、傳輸、管理和人工智能的芯片家族。從其命名方式就可以看出來,鯤鵬920處理器片上繫統是這個芯片家族的核心之一。
從萬物互聯到大數據,再到雲計算和人工智能,現代信息技術的核心都歸結到“算力”這個關鍵點上,而處理器正是支撐算力的關鍵的部件。鯤鵬920處理器片上繫統繫列就是華為公司打造的通用計算平臺的核心。作者在高校講授“計算機組成原理”“嵌入式繫統”“軟硬件協同設計”等課程多年,並與相關企業合作開發應用產品,其間接觸到x86、PowerPC、ARM、MIPS等多種處理器體繫結構,也親眼看見了這些年來處理器架構的變化與紛爭。近三四十年,計算機繫統的核心應用場景經歷了從2000年之前的桌面互聯到2000年之後的移動互聯的變換,正在向萬物互聯演進。當前應用的創新速度越來越快,應用的種類和數量越來越多,移動終端配合邊緣計算與雲計算的“端邊雲”協同方式逐漸成為主流的計算模式,智能創新對計算平臺提出了新挑戰。正是在這一背景下,自2018年開始,全球眾多的處理器廠商推出了基於ARM架構的服務器處理器,向占據統治地位的英特爾處理器架構發起了第三次衝鋒。在移動計算和嵌入式環境中占據主導地位的ARM架構處理器可以高效實現“端邊雲”全場景同構互聯與協同,並有效降低數據中心的綜合運營成本,對基於ARM架構處理器的服務器也提供了更高的並發處理效率和更開放的生態繫化的市場供應,完全可以在運算密集的服務器市場上成為特定應用領域的合理選擇。
本書是一本專門介紹華為鯤鵬920處理器片上繫統的參考書。由於ARM架構在嵌入式計算與移動計算領域的強大影響力,許多不熟悉華為鯤鵬的人會誤以為這是又一款高性能的移動計算處理器。事實上,鯤鵬920處理器片上繫統不僅是通用計算機的處理器,而且其主要應用領域是面向服務器市場的。由於華為海思完全自主設計的鯤鵬920處理器片上繫統與高性能64位處理器的ARMv8A架構完全兼容,因而可以充分利用成熟的ARM生態環境,同時向用戶提供華為的創新技術。也正是因為保持與主流處理器架構的兼容性,鯤鵬920處理器片上繫統的用戶可以很方便地利用通用的軟件解決方案,並通過軟件調優限度地優化其應用程序。期望本書能夠為讀者全面了解和應用鯤鵬920處理器片上繫統提供幫助。
本書按照逐級深入的方式組織內容。不太熟悉現代處理器和服務器的讀者可以通過第1章了解現代高性能處理器的並行架構,也可以對服務器的體繫結構與核心技術有基本認知。第2章總結了ARMv8A處理器架構的邏輯組成及其關鍵特性,以便為讀者深入理解鯤鵬920處理器片上繫統打下基礎。第3章是本書的核心內容之一,向讀者全面展示鯤鵬920處理器片上繫統的組織結構、處理器內核架構及基於鯤鵬920處理器片上繫統的TaiShan服務器的整體優勢。第4章介紹鯤鵬的軟件生態和構架,是基於鯤鵬920處理器片上繫統的應用工程師和調優工程師需要重點關注的內容。為幫助讀者盡快實現向鯤鵬架構的遷移,本書後一章給出了鯤鵬920處理器片上繫統軟件安裝、配置與加速器設計的應用實例。期望更進一步了解和應用鯤鵬920處理器片上繫統的讀者可以從本書附錄A中了解鯤鵬社區、鯤鵬開發套件、鯤鵬開發者繫列課程和鯤鵬應用開發者認證計劃等相關信息。
ARMv8A架構是高性能的處理器架構,基於該架構的鯤鵬920處理器片上繫統也具備眾多高級特性。本書不能替代ARM公司和華為公司的架構規範文檔或用戶手冊,也不可能涵蓋ARMv8A架構和鯤鵬920處理器片上繫統的全部細節,隻能為讀者深入理解高性能服務器處理器的整體結構提供一點幫助。有需要的讀者可以參閱ARM開發者網站和華為公司的網站獲取豐富的參考材料和電子資源。
本書第1、2、3章由戴志濤編寫,第4章和第5章由劉健培編寫,全書由戴志濤負責內容組織與統稿。華為公司為本書的編撰和出版提供了大量資源和支持。華為公司的有關專家和工程技術人員對全書的整體結構和內容選擇提出了寶貴意見,並審閱了全書的初稿。清華大學出版社首席策劃盛東亮老師提出了諸多有益的建議,編輯鐘志芳老師花費大量心血仔細校閱了全書稿件。在此,作者表示衷心感謝。
本書在編寫過程中參考了許多相關資料,特別是參考了ARM公司和華為公司相關網站提供的豐富信息,作者對這些文獻和參考資料的作者和相關機構表示感謝。限於作者能力所限,書中難免存在疏漏,懇請讀者諒解並指正。
2020年注定不是一個普通的年份。對於全球近兩百個國家的75億人而言,這場突如其來的疫情改變了多少人的生活與工作方式,又讓多少人感受到無助與迷茫?而在中國的信息通信領域裡,“華為”無疑成了焦點。無論是普通的手機用戶還是信息通信技術的專業人士,似乎都在思考著同樣的一個問題: 在被打壓的環境下,華為還能夠“化鯤為鵬”,展翅高飛嗎? 2020年上半年,在被疫情困在家中的日子裡,作者在網上授課之餘匆匆完成本書的編寫,也期望為華為出一點點微薄之力。毫無疑問,鯤鵬並不是完美的作品,也許存在bug,也面臨著強大的對手。它需要經歷市場的不斷打磨,也需要不斷修補漏洞和升級改進。我們需要給它一點點寬容,也留下期待。在這二十年中,我們見證了很多品牌的起起落落,那麼多國際知名企業倒下去了,華為也經歷了風風雨雨,我們期待鯤鵬展翅,期待華為鳳凰涅槃。
作者
2020年6月於北京