
基于冯诺依曼架构的计算于半导体技术发展过程中早已屡屡撞墙(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相似,他的成熟程度也远不如其他的新兴存儲器。
存儲器内计算的概念迄今已过半世纪,现在于应用场域与载体技术同时出现了窗口交叠,有机会先从边缘人工智能此一特殊应用在半导体市场先撕开一个口子,一步一步切入计算的广衾世界。