最近的ISSCC上,台积电的研究人员提出了一种基于数字改良的SRAM设计存内计算方案,能支持更大的神经网络.
上图显示了台积电用于其测试的扩展SRAM阵列配置——阵列的一部分被圈出。每个切片具有256个数据输入,它们连接到“ X”逻辑(稍后将对此逻辑进行更多介绍)。数据输入向量的连续位在连续的时钟周期中提供给“ X”门。每个切片存储256个4位权重段,每个数据输入一个权重半字节。这些权重位使用常规的SRAM单元,因为它们可能会经常更新。存储在每个权重位中的值连接到“ X”逻辑的另一个输入。
下图说明了如何将此逻辑集成到SRAM中
其中“ X”是2输入或非门,具有数据输入和权重位作为输入。(两个“一位”值的乘积由“与”门实现;通过使用反相信号值和DeMorgan定理,2输入“或非”门在面积和功率方面都具有效率。)在每个限幅之间,有一个加法器树和一个加法器树。集成了部分和累加器逻辑,如下图所示。
上图中的加权位存储使用常规的SRAM拓扑-对于6T的位单元,加权位字线和位线照常连接。每个单元上的存储值都扇出到或非门的一个输入。
每个切片的输出表示每个权重向量的半字节的部分乘积和。扩展数组之外的其他逻辑提供了移位和相加计算,以实现更宽的权重值表示。例如(有符号或无符号整数)16位权重将合并来自四个条带的累加器结果。