顏 軍 唐芳福 張志國 韓 俊 龔永紅
珠海歐比特宇航科技股份有限公司,珠海519080
人工智能是引領未來的戰略性產業,是我國科技領域重要的發展戰略[1],而人工智能(AI)芯片作為整個人工智能領域的關鍵技術環節,是我國人工智能產業的基礎,是實現人工智能突破的重要關卡。
人工智能芯片主要解決的是對深度學習算法、卷積神經網絡算法、自然語言處理(NLP)等的運算加速問題,需要具備足夠大的算力。對于導引頭、視頻處理、遙感大數據等實時應用,通常會需要芯片提供TOPS級的運算能力,以智能導引頭應用常見的YOLO V3算法為例,一個416×416圖形輸入理論上的計算量為0.3TOPS左右,導引頭應用通常需要高于每秒30幀的處理速度,可知對處理器算力的要求為:不少于9TOPS。
由于摩爾定律的限制,常規的提高主頻的做法收效甚微。技術上,通常采用異構多核的架構來搭建SoC芯片,來提高整個SoC芯片的算力。
但算力的增加往往也意味著功耗的增加,而嵌入式多核處理器SoC芯片首先需要解決的就是在保證算力的情況下,功耗必須足夠低。低功耗設計是一個系統工程,包含了電路級、結構級、算法級和操作系統級等多個方面的內容,需從多個方面進行綜合性考慮[2]。而芯片的設計需要遵循平衡設計原則,需要在芯片的復雜度、內部結構、性能、功耗、擴展性等各個方面做一定的權衡,在設計過程中要堅持從整體結構的角度去權衡各個具體的結構問題。
歐比特嵌入式人工智能處理器芯片玉龍810,聚焦于前端圖像處理和信號處理,具有對深度學習、神經網絡算法的加速處理能力,算力要求達到12TOPS、峰值功耗要求控制在5W之內。
芯片內部采用標準AMBA3.0總線協議的AXI總線,能夠實現SPARC V8 CPU處理器[3]、GPU及NNA等異構多核處理器的片內集成,如圖1所示。芯片采用FD-SOI生產工藝,該工藝具有對單粒子鎖定(SEL)天然免疫的特點;芯片外設接口豐富,具有JPEG2000編碼器、CameraLink數據接口、RapidIO總線接口、1553B總線接口[4]等航空航天專用處理單元和接口。

圖1 玉龍810 SoC芯片結構框圖
芯片配套的軟件開發框架中包含模型轉換工具、軟件開發環境等,能夠實現與TensorFlow,Caffe等主流深度學習工具軟件框架的無縫對接,支持絕大多數主流的深度學習網絡模型,如YOLO、SSD、RESNET、VGG、FastCNN等,同時支持用戶自定義網絡模型。
玉龍810人工智能芯片的典型應用包括:
1)星上在軌情報提?。盒l星上運行人工智能算法,一邊采集數據一邊在軌實時提取情報信息,實時下傳情報,大大提高情報獲取的效率;
2)航天器在軌健康管理:航天器運行過程中,監測、采集運行數據,通過人工智能算法,自主完成故障分析、故障推理、故障處置以及故障預測,大大提高航天器的安全性;
3)飛行器智能制導:飛行器導引頭使用人工智能芯片,運行人工智能算法,可以有效提高目標識別、目標跟蹤的精度,并且通過人工智能技術有效排除誘餌干擾,提高飛行精度。
玉龍810芯片內部功能模塊通過片內AXI3.0總線互聯。AXI3.0具備高帶寬、高傳輸速率性能[5],其主要特點是:
1)單向通道體系結構。信息流只以單方向傳輸,簡化時鐘域間的橋接,減少門數量;當信號經過復雜的片上系統時,減少延時。
2)支持多項數據交換。通過并行執行猝發操作,提高數據吞吐能力,可在更短的時間內完成任務。
3)獨立的地址和數據通道。地址和數據通道分開,能對每一個通道進行單獨配置、優化,能根據需求控制時序通道,將時鐘頻率和效率進行最優配置。
芯片內部SPARC CPU是AXI總線上的主設備;AI協處理單元作為也是AXI總線上的主設備,可以讀寫任何從設備的數據,但同時受CPU內核控制??偩€上的從設備為:片內外設、片上存儲器、片外存儲器、片外IO等,這些從設備統一編址,被各處理器核心平等共享。總線控制器負責對總線訪問進行仲裁和管理,仲裁管理邏輯和算法包括:固定優先、總線鎖定、定時釋放等。可通過對寄存器的設置選擇仲裁管理邏輯和算法。

表1 異構體系中模塊分配列表
芯片主要通過GPU核和NNA核來處理AI算法及超復雜數據運算,芯片內部配備了8個GPU核、8個NNA加速器核。其中GPU核由標準shader core構成,可計算半精度、單精度、雙精度浮點運算,也能處理定點運算;每個NNA單元由768個乘累加器(MAC)構成,可進行8位或16位定點運算,8個NNA共同組成了6144個龐大的硬件計算陣列,在1GHZ主頻的條件下可以提供12TOPS的定點運算算力。

表2 AI協處理器性能指標
卷積神經網絡(CNN)一般由卷積層、池化層、全連接層等組成,卷積層參數量小,計算量大,卷積運算在整個網路中的計算量占比一般超過80%;NNA核可以在1個或幾個周期內完成大規模矩陣乘運算,從而實現對卷積層的加速。GPU核使用浮點運算,可用于計算池化層、全連接層等,最大程度地保證系統精度。各層的分配由編譯器事先指定,運行時GPU和NNA各自處理分配給自己的網絡層,互不干擾。AI協處理器除了GPU核和NNA核之外還包括:AXI接口單元、內部RAM、Cache單元等,各部件協同工作,組成了一個完整、高效的處理子系統,也構成了對AI算法及超大數據提供高速算力的異構多核SoC架構。
通過對各IP核的功耗參考數據的分析,可以得到芯片各IP核的理論功耗值,如表3所示。
如表3統計,如果功耗不加以控制,當主頻在1GHz所有模塊都通電運行的典型情況下,整個芯片的功耗將達到8.83W,芯片功耗大,其弊端是:能源消耗大、芯片溫度上升快、芯片壽命短。為了滿足設計指標,整個芯片的功耗最好控制在5W以內。玉龍810芯片項目試圖通過時鐘門控、UPF等技術來降低芯片整體功耗。

圖2 AI協處理單元框架

表3 各IP核理論功耗值
CMOS電路中的功耗由電路翻轉時產生的動態功耗、P管和N管同時導通時產生的短路功耗以及擴散區和襯底之間的反向偏置漏電路引起的靜態功耗三部分組成[6]。
通常情況下靜態功耗占總功耗的1%以下,系統非長時間處于休眠狀態,則可以忽略不計。短路功耗在整個CMOS電路功耗中占比較小,與晶體管的轉換速度有關,轉換速度越快,其所占比例越小,短路功耗占總功耗的平均比例為10%左右。動態功耗占總功耗的比例約為70%~90%,而低功耗設計主要目的就是通過各種手段,實現降低動態功耗的數值[7]。
低功耗設計是一個系統的問題,需要在設計的各個層次上發展適當的技術,綜合應用不同的設計策略,達到在降低功耗的同時維持系統性能的目的。研究證明在不同設計層次上的優化工作對功耗的改善程度不同,如表4所示,設計層次越高,改善效果越好[8]。

表4 設計層次與改善程度關系表
低功耗設計主要的策略有:
1)權衡面積和性能,使用并行、流水化和預計算等方法,用面積或時間換取低功耗;
2)關閉不用的邏輯和時鐘;
3)使用專用電路代替可編程邏輯;
4)使用規則的算法和結構,以減少控制負荷;
5)采用新型的低功耗器件和工藝[9]。
預計算技術原理是:在第t個時鐘周期內有選擇性地預計算電路的輸出邏輯值,然后在第(t+1)個周期內或其后周期中,利用預計算的結果減少電路內部的跳變行為。預計算可分為單周期和多周期2種,綜合多種情況的測試結果表明2種預計算技術均可降低功耗,部分情況下可降低75%。預計算邏輯使得面積平均增加3%,所引起的延遲增加通常很小[10]。
時鐘門控(Clock-Gating)一直以來都是降低微處理器功耗的重要手段,主要針對寄存器翻轉帶來的動態功耗[11]。如何更加有效地設計時鐘門控,對于最大限度地降低功耗,同時保證處理器的性能至關重要。多核多線程微處理器中,多個功能部件可能不是同時工作的,對于無執行任務的功能部件就可以將其時鐘關閉,減少其隨時鐘翻轉進行多余的內部寄存器翻轉,從而降低產生功耗的浪費和熱量聚集。對于需要控制的寄存器,在一定情況下關閉寄存器的傳輸功能,阻止無用的數據進入下一級邏輯,避免引起一連串不必要的邏輯翻轉,達到降低功耗的可能[12]。
芯片在設計之初,就配置了多組時鐘域,每組時鐘都能夠單獨通過獨立寄存器進行PLL倍頻、分頻控制,同時在綜合階段,根據應用場景的不同,及各個模塊布局布線不同,分別插入了一級時鐘門控單元和二級模塊時鐘門控單元,實現了當某個模塊或是模塊端口信號進入靜止空閑狀態時,模塊的時鐘將自動被鉗制住,從而達到降低模塊內部動態功耗的目的,當然為了適應用戶習慣,時鐘的門控功能也可以通過軟件設置為無效狀態。時鐘門控電路結構框圖如圖3所示:

圖3 門控時鐘樹結構框圖
現在的工藝都會提供不同閾值Vt的單元庫,同一工藝下不同閾值電壓Vtcell特性不同,如表5所示[13]。

表5 Vt cell特性表
合理使用不同的Vt cell可以滿足不同功耗性能需求,在使用過程中,應該優先使用SVT的cell,而后是LVT,最后萬不得已的時候再使用ULVT(ULVT的leakagecurrent非常大,一般會達到SVT的四到五倍的量級)。設計工具支持mix-Vt的設計。在功耗優化的過程中,根據用戶設定的Vt等價置換規則,在不影響timing的情況下,選擇leakagecurrent小的cell,這樣在兼顧性能的時候可以滿足power的需求。
芯片采用FD-SOI制造工藝,與傳統的塊狀硅技術相較,FD-SOI能提供更好的晶體管靜電特性,而埋入氧化層能降低源極(source)與汲極(drain)之間的寄生電容;此外該技術能有效限制源極與汲極之間的電子流動,大幅降低影響組件性能的泄漏電流,從而降低功耗。FD-SOI 22nm工藝功耗比28nmHKMG降低了70%,芯片面積比28nm Bulk縮小了20%,光刻層比FinFET工藝減少約50%,芯片成本比16/14nm低了20%。除了低功耗與低成本,由于FD-SOI工藝的敏感體積更小,對閂鎖效應(latch-up)免疫,具備更低的軟錯誤率,以及更好的電磁兼容性,使其更適用于高可靠應用領域[14]。
UPF技術是由Synopsys公司提出,基于IEEE1801標準Unified Power Format的完整低功耗實現的設計流程標準[15]。
玉龍810芯片中SPARC CPU、AI協處理器、H.264/H.265、JPEG2000以及外設的功耗較大,為了進一步降低功耗,對上述模塊分別用獨立電源域實現(switch-offdomain),以減小漏電,其余邏輯位于常開電源域(always domain)。采用成熟的UPF標準設計方法,如圖4所示,采用不同電源給不同模塊供電,插入電源開關控制,插入隔離器件,實現不同處理模塊供電的單獨控制方法。在某些功能不使用的時候,就把switch-offdomain關掉,這個時候,switch-offdomain里的power-gating cell的輸出會呈現出一個無限接近電源(header power-gating)或者地(footer power-gating)的狀態,從而理論上確保了switch-offdomain的leakagecurrent為0(由于power gating cell本身會有漏電的問題,所以0的漏電只是理論上的)[16]。
UPF原理如圖4所示。

圖4 UPF原理圖
1)添加電源開關控制

create_power_switchPD_01_sw -domainPD_01 -output_supply_port{VDD_OUTVDD_01} -input_supply_port{VDD_INVDD} -control_port{PSW_CTRLpsw_en_01} -on_state{PSW_ONVDD_IN{PSW_CTRL}} -off_state{PSW_OFF{!PSW_CTRL}}
2)插入隔離器件

set_isolationPD_07_ISO_IN-domainPD_07-no_isolation-applies_toinputsset_isolationPD_07_ISO_OUT_LOW-domainPD_07-iso-lation_power_netVDD-isolation_ground_netVSS-clamp_value0-applies_tooutputsset_isolation_controlPD_07_ISO_OUT_LOW-domainPD_07-isolation_signalios_en_07-isolation_sensehigh-locationparent
3)綜合時導入UPF文件

Load_upf top.upf
采取以上方法和策略后,采用PTPX[16]功耗分析工具,VCLP低功耗檢查工具[17],并利用激勵文件testbench和仿真工具VCS產生VCD波形文件,然后使用Power Compile[18]工具將VCD文件轉換成SAIF文件,并設置相關參數,產生功耗報告結果如下:

Net SwitchingPower=0.993W(20%)Cell Internal Power=3.283W(66%)CellLeakagePower=0.680W(13%)TotalPower=4.96W(100.00%)
從功耗報告可以看出,芯片整體功耗降低到了約4.96W,達到設計指標。同時通過仿真結果可以看到,芯片的處理能力沒有降低,主頻在1GHz,浮點處理能力64GFLOPS,定點處理能力12TOPS,芯片最關鍵的能耗比指標為2.4TOPS/W。
功耗是AI SoC芯片的重要指標,功耗過高將極大地限制AI SoC芯片的應用。玉龍810人工智能芯片通過時鐘門控、UPF等技術成功降低了整體功耗,使芯片在具備高可靠、高性能指標的同時,達到了功耗小于5W的指標,遠低于市場同類產品。在航空、航天領域核心元器件要求完全自主、可控的大背景下,玉龍810芯片的投產能夠為型號項目的人工智能算法及超大數據高速處理及應用提供一個理想的AI SoC芯片平臺。