田 斌 張 偉
(上海高性能集成電路設計中心 上海 201204)(tianb@icdc.org.cn)
關于核心技術自主創新、信息技術安全可控[1]發展,習主席有一系列重要指示要求.習主席指出:“要搞清楚哪些是可以引進但必須安全可控的,哪些是可以引進消化吸收再創新的,哪些是可以同別人合作開發的,哪些是必須依靠自己的力量自主創新的.”[2]
處理器和操作系統是信息技術的核心和基石,核心技術必須掌握在我們自己手里,使我國重要信息基礎設施建立在國產處理器和操作系統上,這已經形成共識.進一步,通過核心技術突破,掌握信息產業技術發展的主導權也是我們追求的目標.
在處理器領域,正是我國對自主發展的明確而迫切的要求,催生了目前百花齊放、百家爭鳴的格局.當前國際上主流處理器廠家都在國內建立了各自的合作發展模式,有授權模式、技術合作模式等等.這是好事,意味著我國在這個領域發展有了非常豐富的可選項.同時,通過分析在國內落地的各主要處理器廠家的公報可以發現,所有合作方案都有“面向中國(大陸)市場定制”的定位或限制.一些交流宣傳活動所透露的信息表明各處理器引進合作方案大多表達了最終實現自主發展的信心,有些還有明確的發展路線圖.這說明國家的要求、我們的努力目標都是一致的,即實現國產處理器自主可控發展,實現“技術先進、產業領先、安全可靠、自主可控、不受制于人”[3].國產處理器的一個理想的目標狀態是:處理器自主研發(擁有自主知識產權),掌握創新發展的主導權;圍繞自主處理器的軟硬件生態極大豐富,基于自主處理器的軟硬件產品成為主流,掌握產業發展的主導權;自主處理器在國內完成流片封裝測試等工作,獲得厚實的工業基礎支撐,掌握可持續發展的自主權.
本文試圖對開展國產處理器自主研發所要具備的要素進行分析探討,希望為如何牢牢把握國產處理器自主可控發展方向提供一些參考.
“十一五”期間,國產處理器發展的基調是“自主可控”.隨著認識的深化拓展,相關表述逐漸演進為“安全可控”.筆者認為,自主可控更多強調的是能力建設,安全可控更多強調的是目標和效果.要實現關鍵信息基礎設施的安全可控,其核心芯片和核心軟件必須是自主研發的,即所謂“自主不一定安全,不自主一定不安全”.
有一種說法認為掌握了一款處理器核心的全部RTL 源碼就滿足了安全可控的要求.筆者認為,這只是達到了一種“安全透明”的狀態,有了可以進一步分析消化的基礎(先不討論可行性).這里強調的是“全部RTL 源碼”,類比于C程序中的全部源碼,不能“開天窗”,更不能有不可讀懂的“黑模塊”.即使如此,在對源碼特別是涉及安全性的源碼進行徹底的分析消化之前,該處理器不能認為是安全可控的.
處理器技術發展到今天,經過了長期演進,其內部架構和邏輯關系已經變得錯綜復雜,可謂牽一發動全身.即使能拿到一個成熟的處理器的完整源碼,要分析透徹也非常困難,不僅需要一定規模的高水平專業團隊,往往還需要數年時間.這就回到了發展自主可控能力的命題上.沒有現代處理器設計研發基礎,即使拿到源碼也難以看懂理清.更何況處理器面臨升級換代和創新發展,針對別人發展道路上的一個產品的源碼進行改進提升又對自身自主能力提出了更大的挑戰.一旦更新換代跟不上需求發展,隨著時間推移很可能落到不斷買進原廠新款設計的境地.這顯然不是我們所希望的,也滿足不了安全可控的要求.
因此,國產處理器要自主發展必須立足自身能力的發展,否則只能是跟隨發展.因此可以說安全可控是目標,自主可控是實現途徑[4-5].
當前,處理器技術授權已經成為一種通行的合作發展模式.典型的包括架構授權、軟核授權、硬核授權等.
其中架構授權事實上是“一紙文書”,允許被授權方研發芯片,兼容授權方發展出來的指令系統架構,從而獲取授權方建立的軟件生態所帶來的紅利,利于終端用戶的持續選型應用.軟核授權就是購買授權方提供的處理器核心RTL 源碼,以此為基礎可以快速發展出SoC芯片,避免了針對處理器核心的極具挑戰性的大量設計與驗證工作.硬核是授權方針對特定工藝開發完成的固化模塊,直接拼接到用戶的芯片中.相比軟核授權,用戶進一步省去了面向工藝的處理器核心物理設計和優化,可以更快速地完成項目.
從謀求自主發展的角度看,在考慮獲取處理器技術授權時,建議關注以下幾點:
1) 架構授權的有效期.永久性授權最好,如果有有效期,要認真研究延續授權的前提條件.有些廠家在授權時有嚴格的商業條款,尤其是禁止被授權方面向敏感領域研發處理器芯片.如果這些條款不能滿足,或者在實施過程中違反了這些條款,則很有可能拿不到“續簽”,前面的投資投入就會荒廢.
2) 架構授權針對的領域.例如,有授權方提出只能用于研發服務器處理器,而且對核數也有限制等,這將極大制約被授權方的發展.有觀點認為,可以利用一些灰色定義在一定程度上規避這些限制,但只有尊重市場、尊重規則才能獲得長足的發展.
3) 指令架構的擴展權.這是自主創新發展的基礎.在部分處理器架構授權商業條款中是不允許用戶自主擴展的,甚至有些授權方要求用戶自身所發展獲得的相關專利也要與授權方共享.
4) 軟核授權的自主修改權.部分公司的授權條款中是不允許修改軟核的,這就限定了處理器未來創新發展的空間.
5) 架構授權加軟核授權的發展模式.如果授權方同時授權了指令架構和相應的軟核設計,并且允許以此為基礎進行優化提升,發展自己的自主處理器,這將“站在巨人的肩膀上”,見效快,風險小.如果只是架構授權,自己從零起步開始設計,投入的人力物力巨大,極富挑戰性.但據了解,這種組合發展模式似乎行不通.如果關起門來這樣做,那是盜版行為,根本談不上自主可控.

圖1 流片前的前端質量檢查
采用現在流行的各種處理器授權模式,被授權方拿到數據后可以較為便利地構建自己的SoC處理器芯片,加快了產品的研發速度,降低了產品的研發風險,但這只是買到了“魚”而沒有買到“漁”.要發展自主可控處理器,還是需要扎扎實實提升發展自身的研發能力.
總體看,高端處理器研發需要具備3種能力.
這不僅涉及到定義完備的指令集、清晰的軟硬件接口,還涉及到設計包含高效的流水、仿存、一致性處理、異常處理等功能的處理器微結構[6].此外,一個成功的處理器結構設計還需要綜合考慮產品的定位、工藝的支持、物理設計可行性等要素,還要與優秀的編譯器研發團隊進行深度合作,才能設計出兼顧性能、功耗、成本的處理器產品.買第三方處理器核心源碼進行研發正如買了一整套發動機的零件圖和裝配圖,只知其然不知其所以然,必然導致核心競爭力的缺失.因此架構設計和微結構設計是處理器自主研發能力的基礎和核心.
微結構設計定義完成后,需要以某種形式對設計進行描述實現(如現在流行的Verilog或VHDL,當然還有一些定制設計).而這種描述是否正確,需要進行大量的驗證工作.需要制訂詳細的驗證方案,綜合采用模塊級驗證、偽隨機驗證、功能級形式化驗證等手段,對處理器核心設計進行深入全面的驗證,小到每一個邏輯表達式是否正確,大到典型應用軟件能否正確高效運行[7].在研發過程中建立的驗證體系、驗證課題和驗證向量等隨著發展,逐漸成為處理器系列設計的“關鍵基礎設施”.這一套驗證環境是經過長時間人力、物力和時間投入不斷積累形成的,是經過大量流片驗證的檢驗而不斷補充、完善的.沒有這樣的驗證環境作支撐,很難談得上自主研發處理器,更談不上創新發展.圍繞處理器的基礎軟件也是需要這種基礎能力支撐,一旦發現深層次問題,需要回歸到設計驗證平臺進行查錯找錯,研究規避辦法.當然,如果獲得軟核授權,這些挑戰都可以不考慮,但也談不上自主創新了.流片前的前端質量檢查工作如圖1所示.
正如發動機生產流程中有些零部件可以通過自動化加工獲得,但有些關鍵部件只能由高水平工程師自己定制加工.處理器設計代碼驗證完成后,有些可以通過自動工具“編譯”成電路,但關鍵部位需要自己進行定制設計,更要對工藝有全面的把握才能實現全片物理設計的整合.
由于高端處理器的復雜性,在設計流程上不可能把代碼設計與物理設計完全分開,在關鍵的時序優化等工作中,必須代碼優化和物理優化同時進行,有些關鍵模塊甚至需要做數十上百個評估版本.典型的后端設計流程如圖2所示:

圖2 后端設計流程概要
為了更好地把控設計質量,高端處理器設計一般需要采取定制設計為主、自動綜合為輔的設計方法學,并與工藝深度結合,在流片前做大量的設計檢查,大小獨立檢查項達到數百種[8].
在大規模工業化生產某款處理器芯片時,質量一致性成為關鍵,這對物理設計能力提出了更高的要求.例如,Intel的處理器就可以在電腦城銷售,而不用擔心用的是某款某型主板.這需要處理器設計者建立起覆蓋物理設計全流程的、完整的設計規范和質量檢查體系來支撐工業化設計生產.與設計驗證環境類似,這套物理設計體系經過大量流片實踐淬煉迭代而不斷完善,成為自主研發處理器的關鍵核心能力之一.
本文簡要梳理了開展國產處理器自主研發所要具備的要素.實現國產處理器自主可控發展道遠路艱,充滿挑戰,必須作好長期努力的準備.同時也要看到,只有堅持自主可控的發展路線,以能力建設為基礎,才能最終實現核心技術的突破和跨越式發展.
[1]王秀軍. 到底什么是“安全可控”?[EB/OL].(2017-05-11) [2017-11-06]. http://blog.sina.com.cn/s/blog_4ee4e8170 102x2t8.htm
[2]習近平在網絡安全和信息化工作座談會上的講話[EB/OL]. (2016-04-19) [2017-11-06]. http://news.xinhuanet.com/newmedia/2016-04/26/c_135312437_3.htm
[3]陳君. 互聯網信息安全的“中國設計”[J]. 今日中國: 中文版, 2014, 1(6): 23-25
[4]涂曉軍. 推進信息技術“自主可控”,保障金融信息安全[J]. 中國金融電腦, 2014, 3(1): 17-21
[5]黃曉艷. 信息安全不僅僅是技術問題——訪中國科學院、中國工程院院士王越[J]. 高科技與產業化, 2013, 201(5): 41-45
[6]Patterson D A, Hennessy J L. Computer Organization and Design[M]. San Francisco: Margan Kaufmann, 2004
[7]張珩, 沈海華. 龍芯2號微處理器的功能驗證[J]. 計算機研究與發展, 2006, 43(6): 974-979
[8]李小明. 40nm數字集成電路后端設計實例及方法研究[D]. 北京: 北京大學, 2012