通過DARPA項目看看晶元世界的「遠方」- Architectures

通過DARPA項目看看晶元世界的「遠方」- Architectures

DARPA的ERI(Electronics Resurgence Initiative)電子復興計劃,目標是應對微電子技術領域即將要面對的來自工程技術和經濟成本方面的挑戰。最近,ERI又增加了6個新的項目,覆蓋材料、架構和設計幾大方面。材料方面我不懂,所以還是和大家一起看看架構和設計這兩個方向吧。雖然這些項目的實施還需要很長時間,但我們至少可以先看看「問題」是什麼,大體的解題思路又是什麼。

本文先討論兩個架構方向的項目SDH(Software Defined Hardware)和DSSoC(Domain-Specific System on Chip)。


在進入正題之前,我們還是先看看ERI為什麼要投資這些研究項目。

這張圖上部展示的正是提出摩爾定律的論文(發現自己還真沒認真看過原文)。於是,關於ERI的「page-three-inspired」投資,有下面這樣的一段話:

During these unique times, it is instructive to read all of Moore』s prescient paper. On page two, he laid out what became his famous projection for scaling transistor count. However, on page three, with an eye toward the times we now live in, he laid out the technical directions to explore when the conditions under which scaling will be the primary means for advancement are no longer met. A trio of simultaneously-released ERI BAAs—this one among them—parallel the research areas detailed on page three of Moore』s paper: materials and integration, architecture, and design. These new page-three-inspired investments, along with a series of related investments from the past year, comprise the overall Electronics Resurgence Initiative.

這麼大的項目竟然是這麼簡單的策劃,比起我們的各種戰略規劃,格局差太遠了。


Software Defined Hardware (SDH)

Build runtime reconfigurable hardware and software that enables near ASIC performance without sacrificing programmability for data-intensive algorithms

Software-defined概念在防務領域很早就得到應用,SDR就是很好的例子。有趣的是,SDH項目的所謂data-intensive演算法主要是指「machine learning and data science algorithms that process large volumes of data and are characterized by their usage of intense linear algebra, graph search operations and their associated data-transformation operators.」看來這方面的需求確實強勁啊。

「SDH程序將創建一個可擴展的硬體/軟體架構,與ASIC不同,允許應用程序在運行時修改硬體配置。 SDH將實現1)輸入數據變化時動態優化代碼和硬體; 2)能夠重用硬體來解決新問題,支持新演算法。 」為了實現這些目標,SDH把重點放在高速硬體重配置(very fast hardware reconfiguration speeds)和動態編譯(dynamic compilation)。 不過,看起來這個項目的目標還是很有挑戰的,而且也是一個長久以來大家試圖實現但一直沒能實現的目標。如果能夠成功,那麼 「SDH will be able to take advantage of data-dependent optimizationsthat even today』s ASICs cannot exploit.

項目的組織分成TA1: Reconfigurable processor technology(硬體架構)和TA2: Dynamic hardware/software compilers for high-level languages(軟體工具)兩個部分。其中可重構處理器要求重配置速度高於FPGA;而效率又要接近ASIC,功耗要遠低於FPGA。而且這個處理器不僅要求片上的運算和存儲可以重構,外部存儲子系統也要求能夠被配置為不同的數據訪問模式。

而編譯器部分的項目執行者將「build programming languages and compilers that optimize software and hardware at runtime.」這裡可看出,在runtime時的優化同時包括了軟體和硬體。編譯器需要能夠把高級語言轉換為機器語言以及面嚮應用的硬體配置。比較有意思的一個說法是「system will iteratively optimize code and hardware as the program is running to maximize performance dynamically based on the data being processed.」也就是說優化的過程是個動態改進的過程。

下圖說明了TA1和TA2兩個部分的互操作關係。

在更進一步的技術說明當中,下面幾點是比較重要的內容:

- 對於可重構處理器來說,CGRA(Coarse-Grained Reconfigurable Array)當然是一種比較自然的設計。比如下圖:

這個項目並不排除其它的可能的架構。不過,CGRA本來就覆蓋了很大範圍,所以大體的硬體架構可能也就是類似的樣子。

- 對於編譯器來說,首先,鼓勵開發新的High-level的編程語言;第二,「Methods that use low-level synthesis techniques, dynamic auto-tuning and implementation selection, and code mining are strongly encouraged.」(這幾項技術我也不太懂);第三,也是最有趣的。由於既需要要優化硬體配置又需要優化軟體代碼,這個探索空間太大。因此,項目執行者「may use, for example, stochastic optimization andreinforcement learning across programs to learn how to predict the best architectural configurations for a given problem and runtime data associated with that problem.

最終項目需要達到的指標如下。其中效率(前三列)通過GOPS/W或TOPS/W來衡量,可編程性則通過年度用戶實驗來衡量。

T.S.:

我比較感興趣的是「迭代優化」的方法:先通過靜態分析得出優化的硬體配置;然後在這個硬體配置上生成優化的代碼;最後根據runtime的數據對硬體配置和軟體代碼不斷優化。首先,這種方法降低了靜態優化的要求,增加了實現的可行性。其次,只要硬體重配置的時間足夠短(300-1000ns),動態優化就可以實現快速迭代,收斂到一個系統最優的結果。更重要的是,看起來它可以很自然的和Reinforcement Learning結合起來,想像空間就更大了...


Domain-Specific System on Chip (DSSoC)

Enable rapid development of multiapplication systems through a single programmable device

Domain-Specific computing的概念,我們在之前的文章(專用處理器設計方法&工具)中做過一些討論。它的本質是建立一套完整的方法學和工具,能夠高效的設計和實現面向一個領域(包括特徵相似的多種應用)的軟硬體系統,同時這套方法和工具還可以方便的應用到新的領域。

DSSoC項目本身也是要提供一套垂直整合的方法,通過一個full-stack integration,提供一個軟硬體框架,讓程序員不必要了解底層硬體(由多個異構處理器單元組成的SoC),但仍然可以充分的利用硬體的效率。目前,我們做一個架構設計的時候,往往要在通用性(可編程性)和專用性(高效率)之間做很多權衡。如果這個項目成功,那麼在通用性和專用性之間的權衡就可以變得不那麼困難了。「Domain-Specific System on Chip (DSSoC) intends to demonstrate that the tradeoff between flexibility and efficiency is not fundamental. The program will develop a method for determining the right amount and type of specialization while making a system as programmable and flexible as possible.」目前這個項目主要針對嵌入式系統,包括edge側靠近sensor的應用領域。

如上圖所示,DSSoC項目列出了5個關鍵技術,包括:

1. Intelligent scheduling to manage the set of domain resources in the context of specific applications,

這應該是這個項目的一個技術重點,也是項目目標實現的基礎,只有實現運行時的智能調度,才可能讓軟體和硬體解耦。而智能調度做的好壞也直接關係最終系統的效率。對這一部分的實現方法,技術說明中有一些進一步的討論,比如在系統中增加專用於調度的處理器,以及讓每個PE都可以分析並上報自己的運行狀態等等。

2. Software tools to enable a development ecosystem that exercises the full capability of the highly programmable system,

軟體工具包括開發工具,如編譯器和調試器,演算法庫,以及Domain的應用程序和示例。軟體工具應該Domain-Specific計算能否真正落地的最重要部分,一個基本的要求就是也可以支持領域內的新的設計,「Any new processor must be developed with these software

components in order to make it usable by the rest of the development community. This requirement therefore demands that construction of these tools be focused on usability and upgradability to support new DSSoCs.」。DARPA非常鼓勵使用現有的軟體工具,也很支持開源工作。

3. Forming domain representations as ontologies,

這是一個很值得關注的工作,就是怎麼來描述一個「Domain」。對於Domain-Specific軟硬體設計工作來說,設計的前提是很好的描述這個領域的特徵。而之前雖然也有一些定義和描述domain的工作,比較著名的是「Seven Dwarfs」("The landscape of parallel computing research: A view from Berkeley")。但這些定義還是過於簡單,不能反映不同分組間的關係,也缺乏對演算法的細節特徵的描述,很難直接用來支持這個項目中的智能調度等工作。

4. Medium access control (MAC) to interconnect the PEs and to allow the data throughput, taking into consideration latency, power, and other domain constraints, and

熟悉通信協議的同學應該對MAC層這個概念比較熟悉,在DSSoC項目中,MAC層是在PE間交換數據結構的媒介,既包括物理結構,拓撲,還包括一個標準編程介面。

5. Hardware integration of the right set of PEs on the MAC layer with the operating scheduler and software into a fabricated DSSoC.

這個項目的最終結果也包括一個異構的SoC硬體,但這似乎不是這個項目的重點。按照這個項目的說明(上圖),PE是粒度比較大的概念,比如是CPU,GPU,TPU,Neuromorphic Unit,DSP,硬體加速器等等。

下面我們看看這個項目的指標,也可以看出Scheduler和MAC在這個項目中的重要性。

這個項目的說明文檔中的技術內容比較多,有些地方也是很有啟發性的,建議大家仔細看看(HR001117S0055)。

T.S.:

Domain-Specific的概念現在提的越來越多,大家也都逐漸看到它的重要性。現在的晶元項目越來越複雜,軟體所佔的比例非常高,投片、研發和應用的成本和風險越來越高。一套能把軟硬體設計垂直整合起來的方法和工具,可以在不同但相似的應用間最大限度的實現重用,從而提高設計效率,降低成本。但是,建立這套方法和工具本身也需要很大的投入,希望AI,物聯網,5G這些熱門的Domain可以驅動相關的研究工作,早日得以應用。


題圖來自網路,版權歸原作者所有

歡迎訂閱我的公眾號StarryHeavensAbove


推薦閱讀:

2015 年紫光在晶元設計領域的行業地位如何?
Perl等腳本語言在IC設計中有哪些用處?數字IC前端設計有必要掌握類似語言么?如果有,應該掌握到什麼程度?
怎樣學好模擬集成電路設計?就Allen的那本,還有拉扎維的那本。?
數字IC設計,有必要自己造輪子么?

TAG:芯片设计 | 体系结构 | 芯片集成电路 |