研究:关于内存计算的电阻存储器

文|前程说

编辑|前程说

前言

内存计算是一种将数据存储和算术计算功能集成在一起的计算解决方案。其中,电阻式随机存取存储器(RRAM)阵列具有创新的外围电路,能够执行矢量矩阵乘法等超出基本布尔逻辑的操作。这种内存计算的对偶性为矩阵乘法相关的神经网络和相关应用提供了一种高效的硬件解决方案。RRAM存储器计算的电路设计和系统组织对于打破冯·诺依曼瓶颈至关重要,这为实现超低功率和密集型神经网络加速器提供了道路指引。

内存计算的意义

冯·诺依曼体系结构是一种最初于1945年提出的数字计算机基本架构,它将中央处理器(CPU)和存储设备分离。在该架构中,数据处理过程需要通过传输接口在存储器和CPU之间传输数据。然而,随着数据量的增加,数据传输的高延迟和高能耗成为了冯·诺依曼架构的瓶颈,被称为"冯·诺伊曼瓶颈"。为了解决这个问题,现代系统采用了集成多个处理核心和设计专用加速器等解决方案,以提高数据处理速度。但这些解决方案进一步加剧了计算和数据传输之间的差距。

内存计算是一种将内存模块和数据处理单元结合在一起的计算方法,也被称为内存计算(CIM)或内存中处理(PIM)。其目的是减少或消除现代计算机中内存与数据处理单元之间频繁的数据传输,从而构建节能的计算系统。这种构建方式与巴克斯1978年提出的想法相呼应,即需要一种不那么原始的方法对存储进行大规模的更改,而不是通过不断地推送大量数据来克服冯·诺依曼瓶颈。实际上,内存计算的概念并不是新鲜的。几十年前,在数据库中,内存数据管理就是一个关键问题,特别是在数据量惊人的企业数据仓库中。然而,当时用于处理数据的本地存储设备的研究仍然局限于统一级别的研究。

当前,人们已经研究出各种纳米级存储设备,为设计大规模、高性能和节能的存储器计算提供了多种选择。静态随机存取存储器(SRAM)、8-10闪存、11,12磁随机存取存储器、13,14磁道存储器、15,16相变存储器(PCM)、17-19和电阻式随机存取存储器被广泛认为是具有巨大潜力的随机或顺序存取存储器类型。除了SRAM,所有这些存储器类型从20到22都是非易失性的,这意味着即使没有电源,存储器设备也可以保持存储的数据。

大规模系统集成

在现有的存储器技术中,SRAM具有最快的读/写速度(亚纳秒)和更成熟的制造工艺。非易失性存储器技术除了持久数据存储外,通常具有<100 F2像素大小的更高密度,其中F表示技术特征大小。商业非易失性存储技术NAND闪存支持顺序数据访问,并具有复杂的技术来保持鲁棒性和可靠性。MRAM强调快速写入速度(与SRAM的顺序相同)和随机编程。轨道存储器是一种具有23-26年历史的存储器类型,以其极高的密度(20纳米宽的纳米线)和沿轨道的顺序存取而闻名。PCM提供线性电导率更新特性。RRAM提供多功能性,包括高电阻率(MΩ数量级)、支持3D集成、随机编程和多级单元(最多6位)。

随着神经网络模型的规模不断增长,需要实现大规模的内存计算系统。在基于RRAM的大型系统中,外围电路和RRAM阵列通常主导总体功耗、芯片面积和能耗。因此,需要新的时序控制和数据转换电路来实现高效的内存计算。此外,更复杂的神经网络拓扑结构需要大量的数据管理和调度,以更好地利用内存计算系统。本节介绍了存储器计算的宏设计,其中包括不同的数据转换接口电路,以及基于RRAM的存储器计算的最新微体系结构。

1.基于模数转换器的设计

内存计算宏是执行VMM操作的基本处理核心。基于RRAM的存储器计算以模拟形式进行,并且需要进行数据转换才能将这些宏与周围的数字系统接口相连。成熟的数模转换器(DAC)和模数转换器(ADC)设计已成为首选。最近提出了一种方法,利用128×纯模拟点积引擎(DPE)对64个RRAM阵列进行处理。61个数字输入向量被转换成模拟电压队列,DPE执行计算。输出电流通过交叉电阻放大器转换为电压,然后通过ADC转换为数字输出向量。DPE的工作频率为10MHz,由于2μm晶体管技术中存在多条转换路径和高寄生效应的限制,因此存在一定的局限性。使用Ta/HfO2 RRAM实现的DPE具有6位精度,单层感知器在MNIST数据集上使用该DPE产生了89.9%的准确率。

2.基于电平检测放大器的设计

使用RRAM阵列的DPE纯模拟方法需要花费大量精力微调每个模拟的RRAM单元电阻。相比之下,数字化的方法可以简化内存计算宏中的数据转换。对基于RRAM的存储器计算宏的仔细观察揭示了基于矢量乘法的数字化的三个部分:两个操作数G和V以及计算结果I。为了将V数字化,将多个数字输入逐位应用于RRAM阵列,每个位具有相同的电压。随后,对结果进行显著性加权和求和。通过这种方式,可以去除输入端的DAC,以增加计算周期为代价。该方法通常用于隔离输入驱动性能和输入数据,否则,具有特殊驾驶性能要求的DAC将消耗更多的面积。

G的量化方式对于将神经网络中的浮点权重映射到有限电导率的RRAM设备上具有重要影响。在CMOS逻辑平台上,将RRAM集成到单片上需要使用二进制或三进制的RRAM设备,因此需要将浮点突触权重调整为相应的位宽。为了适应RRAM内存计算宏,研究人员提出了一些调整突触权重的方案,包括分布感知量化、定量正则化和偏差调整等。通过降低激活精度要求,可以简化ADC设计,从而降低多达4位的输出精度。

与传统的流水线ADC和逐次逼近ADC等架构不同,高精度ADC可以使用多个二进制检测放大器,并设置不同的参考阈值来实现。RRAM阵列由1T1R单元组成,编程时可以设置为任意值在HRS和LRS之间。输出检测放大器是二进制的。对于需要多位激活精度的神经网络,可以通过累积1位MAC结果,然后添加额外的数字非线性激活函数电路来实现神经元计算。这种设计方案不需要ADC模块,因此可以减少面积和功耗,同时增加延迟/操作开销。

1.基于尖峰的设计

虽然有许多算法层研究致力于开发纯二进制神经网络(输入、输出和权重都是二进制),但是对于复杂的数据集和应用程序来说,仍然需要一定程度的数据精度(例如8位)以满足精度要求。考虑到电压表示的电感容限有限,因此使用脉冲表示数据,因此最近演示了一种基于RRAM的紧凑型非易失性存储器计算处理引擎(PE)。

该阵列大小为64KB(256×256),RRAM设备处于二进制状态。PE具有存储和计算的双重功能。在存储器模式下,读写逻辑、驱动器和放大器能够进行数据编程和检测。在计算模式下,RRAM阵列执行矩阵乘法,而原位非线性激活(ISNA)电路将输出电流转换为脉冲。在这种存储器计算PE设计中,ISNA动态地执行激活函数计算,从而消除了用于计算激活函数的额外电路,并减少了设计成本。

基于尖峰的ISNA使用不同的方法来降低功耗,延迟≈200 ns,从而提高能源效率。与使用具有不同阈值的多个检测放大器不同,ISNA电路与IFC类似,通过连续充电和放电电容器来执行数据转换。这种受生物学启发的尖峰生成只需要大约十个带电容器的晶体管。由于ISNA的占用空间小,它可以包括更多基于尖峰的ISNA传感电路,从而实现更高的执行并行性和更高的吞吐量。这款 RRAM 内存计算 PE 实现了每秒 16 万亿次操作/瓦 (TOPS/W) 的最高能效,并提供了在 1 到 8 位之间配置激活精度的灵活性。

基于 RRAM 的内存计算微架构

根据冯·诺依曼的观点,计算机可以分为基本的算术运算和逻辑流程。内存计算宏设计提供了基本的算术运算功能,而微体系结构的研究则着重于利用内存来有效地控制宏计算。

ISAAC是一款专门为CNN基准测试量身定制的加速器,采用基于交叉开关的架构。ISAAC的分层结构由芯片、瓦片、原位乘法累加器(IMA)和阵列组成。专用的片上网络用于连接芯片中的瓦片以进行数据传输。在每个瓦片中,嵌入式动态随机存取存储器(eDRAM)缓冲区用于结果聚合。

IMA由一组RRAM阵列和数据转换接口组成,可以执行向量矩阵乘法。输出寄存器用于存储聚合结果。其他数字组件在神经网络中执行池化和激活操作。ISAAC提出了基于网络特性的管道设计,可以在IMA和切片中应用流水线来实现数据访问和计算的重叠。此外,ISAAC还配备了数据编码和分配方案,以减少高精度数字模拟转换器和数字转换器的开销。

近期出现了一些专为各种网络设计的基于RRAM的存储器计算器,专门用于加速无监督机器学习应用程序和生成对抗网络(GAN)。GAN训练的挑战在于两个方面:1)鉴别器网络和生成器网络之间存在复杂的数据依赖性,2)生成器网络层内存在非传统的计算模式。为了解决这些问题,这些计算器提供了跳过生成器网络中无效计算的机会,从而提高计算效率。同时,它们采用基于3D的层连接来优化鉴别器层和生成器层之间的数据传输效率。这些计算器首先将生成器中的卷积分解为几个子矩阵乘法,然后通过权重映射和执行调度设计来平衡它们的计算延迟。通过消除与零相关的无效计算,相较于以前的基于RRAM的内存计算加速器,性能提高了近2.1倍。

小结

RRAM内存计算系统的最新发展涵盖了从机械层到系统层的各个方面。在设备层面,研究人员正在专注于利用单个RRAM设备或者使用新型设备结构的简单电路来实现电突触和神经元。为了进一步提高密度和可扩展性,诸如3D集成等技术也成为了重要的研究方向。在电路和体系结构层面,基于RRAM的内存计算已经天然地集成了数据存储和处理操作,并得到广泛的研究。这些研究的重点主要集中在提高能源效率、降低设计成本以及满足系统性能要求,例如运行速度、吞吐量和准确性等方面。此外,新的ISA和编译器也成为将内存计算模块扩展到各种应用程序的新研究方向。但随着RRAM器件尺寸的缩小和密度的提高,鲁棒性问题也开始浮现。

采用新兴的RRAM技术在实现更高效的计算系统方面显示出巨大的潜力,特别是在认知应用方面。然而,为了将其应用于大规模集成系统中,仍然存在许多关键挑战需要克服。例如,设备数量有限和神经网络模型规模增大之间的不平衡,实现在线训练解决方案的困难,以及将算法转移到给定硬件平台的自动化过程等问题。仅仅依靠设备级的缓解是不够的,而在电路、系统甚至算法层面上的缓解可能是解决这些问题的唯一途径。

现如今,为了开发高效的计算系统,各个层次,包括设备处理、电路组件、微体系结构和应用算法之间都有着紧密的关联。基于RRAM内存计算的研究反映了这些概念,不同领域的研究人员对于如何开发内存计算有着不同的理解,这是一个跨学科的领域。例如,计算单元的扩展导致了原始的冯·诺依曼架构的修订,以实现更高效的性能和效率,同时,生物类的计算解决方案也应运而生,以满足不断增长的人工智能计算需求。RRAM内存计算引起了业界的关注,无疑将为计算能力的进一步发展提供支持。

参考文献

《忆阻器的定量硬件神经网络的结构和规模分析》

《电阻开关器件的量化硬件深度神经网络研究》

《RRAM的混合突触的神经网络加速训练》

《导电桥接随机存取存储器开关机制的影响》

展开阅读全文

页面更新:2024-05-17

标签:存储器   内存   神经网络   乘法   放大器   阵列   电阻   电路   数据   设备   系统

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top