存算一体 - 综述
存算一体:综述
Related Notes
No.240801 ~ 240802
Introduction
内存瓶颈
冯·诺伊曼架构下,存算分离,访存带宽低,时延长,功耗高。在处理数据密集型算法时,大量能耗和信号延迟损失在频繁的数据搬运和内存访问上,即所谓存储墙瓶颈。同时,计算与访存性能发展严重失衡。(Fig. 1.)
Fig. 1(a). Comparation between von Neumann and CiM Architecture.
Fig. 1(b). The bandwidth is increasing very slowly.
同时,大数据和 AI 技术的兴起,对流式数据传输提出了高要求,其性能受存算分离架构的数据搬移影响最为严重。希望采用忆阻器等新兴介质,实现原位存储和计算,减小能耗和延时,消除传统架构下的内存瓶颈问题。
忆阻器
包括磁效应忆阻器、相变效应忆阻器和阻变效应忆阻器等。
Magnetoresistive RAM (MRAM)
磁效应忆阻器通过调整电子自旋,利用磁道磁阻效应实现电阻状态改变,达到存储信息的目的。其结构包含有 3 层,其中底层磁化的方向不变,称为参考层;顶层磁化方向可被编程发生变化,称为自由层;中间层称为隧道层。由于隧道磁阻效应,参考层和自由层的相对磁化方向决定了磁效应忆阻器的阻值大小。
Phase Change Memory (PCM)
相变存储器通过调整可编程区的晶态来改变自身阻态。可编程区的状态可以是从完全多晶态到完全非晶态之间的多种状态,以此实现多值存储。
Resistive RAM (RRAM)
阻变存储器的存储单元为金属 - 绝缘体 - 金属或金属 - 绝缘体 - 半导体的三层结构,其工艺与 CMOS 兼容,具有高速开关 / 低能耗 / 可 3D 集成扩展等优势。对于阻变效应忆阻器的阻变机制目前还在探究之中,导电细丝的生长和断裂是导致阻值发生变化的关键机制之一。通过控制 Forming 过程,可实现 SET /RESET 操作,调整自身阻态。
Backgrounds
广义的技术方案可分为三大类:
- 近存计算 - PNM
- 存内处理 - PiM
- 存内计算 - CiM
以下逐一介绍。
Processing Near Memoy (PNM)
通过芯片封装和板卡组装等方式,集成存储单元和计算单元,增加访存带宽,减少数据搬移。
PNM 是存算分离架构,包括
- 存储上移 - High Bandwidth Memory, HBM
- 计算下移 - Computational Storage Drive, CSD
Processing In Memory (PiM)
将存算集成在同一晶粒 (Die) 中,本质上仍是存算分离。
Computing In Memory (CiM)
CiM 即狭义的存算一体,利用不同存储介质的物理特性,设计同时具备存算功能的新电路,典型场景为向量矩阵乘算子加速。
Computing In Memory
Analog vs. Digital
CiM 实现方式分为数字和模拟。
主流研究多采用基于忆阻器 (RRAM) 的模拟存算,能效高,但误差偏大,适用于端侧场景,主要包括基于二值忆阻器的逻辑运算和基于模拟型忆阻器的模拟运算。其中,二值忆阻器可以方便地实现逻辑完备,进而构造全部 16 种二值逻辑运算。
数字存算误差低,但单位面积功耗大,适用于云边场景。
Analog iMC
利用具有多级组态的模拟型忆阻器,在存算阵列上实现模拟域的乘累加运算。设完成如下推理过程:
如 Fig. 2 所示,模拟型交叉结构阵列有行列两个正交互连线,互连线的每个结点处夹着 1 个忆阻器件。若当前层输入为电压 ,权重矩阵作为忆阻器阵列电导 ,则根据欧姆定律和基尔霍夫定律, 有
Fig. 2. The RRAM crossbar array.
由 ,电流矢量 即为本层输出。通过 I-V 转换和阵列级联,可实现多层神经网络到到模拟存算阵列的映射,网络权重可通过 SET / RESET 操作进行原位更新。相比传统计算方式,能效水平显著提升。
Digital iMC
数字存算通过在 SRAM 等存储介质种加入逻辑计算电路,实现基于 SRAM 的存内计算能力。这样的存算方式被称为全数字存内计算,其存储单元只能存储单比特数据,且增加的 1-bit 全加器逻辑和 1-bit 乘法逻辑在一定程度上限制了面积和能效优势。
Fig. 3. All-digital CiM circuits.
Challenges
PNM 和 PiM 在落地阶段需要解决近端 / 远端存储器协同引起的软件重构问题,但整体技术成熟,HBM 等 PNM 存储颗粒已在 GPU 中得到应用。相比之下,CiM 的技术成熟度弱,从器件研发及制造 / 电路设计 / 芯片架构 / EDA 工具链 / 软件算法生态等诸多方面均需加强。
Challenges in CiM
- 器件成熟度。RRAM /PCM 等介质在一致性 / 擦写次数 / 可靠性方面存在差异化问题。
- 电路设计。计算核 (Macro) 设计水平不一,尚未完成技术沉淀。
- 算力及通用性问题。当前存算产品算力较小,且主要面向端侧特定领域实现。
- EDA 工具链不完全。尚缺乏标准单元库 / 仿真与验证 / 建模与误差评估工具。
- 软件生态不完善。缺少软件侧的通用开发环境 / 编译器支持。
References
- N. Verma et al., “In-memory computing: Advances and prospects,” IEEE Solid-State Circuits Magazine, vol. 11, no. 3, pp. 43–55, 2019.
- Amir Gholami, “AI and Memory Wall,” Medium, _https://medium.com/riselab/ai-and-memory-wall-2cb4265cb0b8, Mar. 2021 (accessed Aut. 2024).
- 林钰登 et al., “基于新型忆阻器的存内计算,” 微纳电子与智能制造, vol. 1, no.2, pp. 35-46, 2019.
- 中国移动, 中国移动存算一体白皮书 (2022).