论文部分内容阅读
近些年随着深度学习的发展,神经网络在图像识别、语音识别、自然语言处理等诸多领域有着越来越广泛的应用。但是,随着网络架构变得越来越复杂,神经网络所需的计算量急剧增加,同时所需的大量输入数据和输出数据使得数据传输成为限制速度的一个主要的瓶颈。此外,计算与数据传输带来极大的功耗,使得神经网络应用在边缘设备上难以部署。研究新型的存算一体架构,可以通过存内计算解决冯诺依曼架构存算分离带来的数据传输瓶颈。本文针对神经网络的应用需求,使用NOR flash的浮栅单元,设计了一种基于浮栅单元的存算一体向量-矩阵乘法器。本文的主要研究工作以及创新点如下:1、对浮栅单元的模拟乘法计算原理进行了研究,浮栅单元进行模拟乘法时工作在线性区,用两个浮栅单元差分存储一个权重,与单浮栅管相比提高了计算线性度,同时减小了权重温度系数的分布,并且能够通过补偿实现零温度系数。2、基于浮栅单元设计了向量-矩阵模拟乘法电路,包括闪存阵列、电流减法电路、电流缓冲电路、温度补偿负载电路的设计。闪存阵列实现数据的存储与乘累加运算;电流减法与缓冲电路通过实现电流相减与阻抗变换,精确得出乘累加的计算结果;负载电路对浮栅单元对的温度特性进行补偿,使计算结果具有良好的温度特性。3、设计了用于数模接口的辅助电路,包括数模转换器(DAC)与模数转换器(ADC)的行为级建模,使向量-矩阵模拟乘法电路与外部的数字电路相连。4、使用MNIST神经网络应用进行电路验证,提出了一种全模拟的电路实现方案。系统基于提出的向量-矩阵模拟乘法电路,并完成了卷积层、池化层以及全连接层的电路方案扩展。对于该小型应用,系统能在片内完成识别,直接向外输出识别的结果,不再需要ADC与外部调度数据,减小了功耗。电路设计基于XMC 65nm浮栅工艺,电源电压1.8V,使用Cadence Spectre进行仿真,行为级建模使用Verilog-A描述。系统进行模拟计算的精度为4比特(输入为4比特无符号数,权重为5比特有符号数,输出带有ReLU激活函数,为4比特无符号数)。向量-矩阵模拟乘法电路的闪存阵列大小为32×32,最高时钟频率为26MHz,功耗为0.7~1.8mA,模拟计算版图面积为0.028mm2。各权重的计算结果在-40~130℃范围内的温度系数小于0.06%/℃,系统的数据吞吐率为1.66GOPS,能效比为0.47~1.09TOPS/W。MNIST神经网络电路方案的权重数量为1718,识别速率为4.15×103fps,识别准确率为97.67%。