基於馮諾依曼架構的計算於半導體技術發展過程中早已屢屢撞牆(memory wall),許多技術上的發展先後著手於此問題。從最早的高速介面、高頻寬記憶體(HBM;High Bandwidth Memory)、增加CPU的cache(譬如Zen 2)、到異構整合CPU與多個記憶體晶片(near-memory computing)、發展中的用光子互聯記憶體與CPU等,這是一個產業整體的總動員,從設計、CPU、記憶體、代工、封裝各環節無不戮力以赴。
這個問題的克服最終只能是記憶體內計算(in-memory computing),中國大陸叫「存算一體」。記憶體與CPU中間的藩牆撤了之後,傳輸的功耗省下,總功耗省了近200倍,資料傳輸的時間也可以略去,表現自然大幅改善。這個想法在1969年由Stanford的Kautz等人提出,但卻不能算是純然的「新概念」,因為人的腦細胞與現在新興起的量子位元,本來就是記憶體內計算。
概念雖好,但是過去的計算偏向於通用型CPU應用,記憶體技術也不夠成熟,所以沒有實踐的場域。
現在機會來了。AIoT對於邊緣端(edge)元件有功耗、成本、時延、安全性等考量,而有些應用資料量大,譬如自駕車、監視器每日產生的資料高達數十甚至數百GB,如果傳輸這樣巨量的資料到數據庫再做處理在,效率及應用目的上均無道理,以邊緣人工智慧晶片處理、直接局部下指令是最有效率的安排。
由於邊緣人工智慧,譬如卷積神經網路(CNN),所牽涉的指令相當單一,基本上是矩陣和向量的乘積,計算上屬於乘後累加運算(MAC;Multiply-Accumulate),以記憶體來做MAC單元有很高的可行性。
方法有二。一是在記憶體的週邊線路小幅度的修改,但不影響其單元結構,並且加入可重構(reconfigurable)線路的設計;另一是靠記憶體的輸入/輸出來操作邏輯運算。
雖然以前試過以SRAM與DRAM來當記憶體計算的載體,而且在速度與技術成熟度有相當優勢,但是在AIoT的應用中這兩種記憶體於功耗此一項目比較難以交待。
用非揮發性記憶體來做載體是目前考慮的方向,NOR的技術成熟、成本合理,是現在的先行選擇。NAND的密度高,對於較大資料量的運算有相當優勢,但是功耗較高、速度較慢。
新興記憶體中ReRAM和PCRAM是最先被討論的記憶體內計算載體。它們的優點除了速度快、功率較低之外,還有它們的記憶體單元可以是多值—這也是為什麼他們也可以用在神經形態晶片的原因。在計算的邏輯上,安排可以比較有彈性。
MRAM也是候選人之一,與SRAM都已先跨進近記憶體計算領域。它的速度與功耗均佳,可是它只具有二位元值,運算只能做按位(bitwise)的布爾邏輯。FeRAM現在是新興記憶體的當紅炸子雞,它的速度極快,功耗也低,結構也有機會像NAND一樣3D製造,所以一出現在新興記憶體的名單之後,記憶體內計算應用也馬上納入議程。只是FeRAM也只是二位元,受的限制與MRAM相似,他的成熟程度也遠不如其他的新興記憶體。
記憶體內計算的概念迄今已過半世紀,現在於應用場域與載體技術同時出現了窗口交疊,有機會先從邊緣人工智慧此一特殊應用在半導體市場先撕開一個口子,一步一步切入計算的廣衾世界。
現為DIGITIMES顧問,1988年獲物理學博士學位,任教於中央大學,後轉往科技產業發展。曾任茂德科技董事及副總、普天茂德科技總經理、康帝科技總經理等職位。曾於 Taiwan Semicon 任諮詢委員,主持黃光論壇。2001~2002 獲選為台灣半導體產業協會監事、監事長。