当前位置: 首页 > article >正文

ReRAM与PCM存内计算:突破冯·诺依曼瓶颈,赋能边缘AI与类脑计算

1. 从冯·诺依曼瓶颈到存内计算一场芯片架构的范式转移最近几年但凡关注芯片和人工智能领域的朋友肯定对“存内计算”这个词不陌生。它听起来像是一个技术术语但背后直指一个困扰了我们半个多世纪的计算机根本性难题冯·诺依曼瓶颈。简单来说在传统的计算机架构里负责计算的CPU中央处理器和负责存储数据的Memory内存是分开的。每次计算CPU都需要从内存里读取数据算完再写回去。这个“读-算-写”的过程就像是一个大厨CPU在厨房计算单元做菜但所有的食材数据都放在远处的仓库内存里。每做一个步骤大厨都得跑一趟仓库效率自然高不起来。随着AI模型参数动辄千亿、万亿数据搬运消耗的能量和产生的延迟已经远远超过了计算本身成了制约性能和能效的最大短板。存内计算的核心思想就是打破这种“计算”和“存储”的物理隔离。它试图让“仓库”本身具备一些基础的“处理食材”的能力或者至少让大厨在仓库里就地取材、快速处理。这不仅仅是优化而是一种架构层面的范式转移。在AI特别是边缘AI场景下这种转变的迫切性尤为突出。边缘设备对功耗、延迟和成本极度敏感传统的“搬运数据”模式难以为继。因此无论是学术界还是工业界都将目光投向了能够实现存内计算的新型存储器其中阻变存储器ReRAM和相变存储器PCM成为了最受瞩目的两位“候选人”。2. 为什么是ReRAM深入拆解其作为存算一体核心的物理优势在众多新兴存储器中ReRAM被反复提及为模仿人脑、实现存内计算的“前沿”技术这并非偶然。要理解这一点我们需要深入到它的物理机理层面。ReRAM的核心结构很简单通常是在两个电极之间夹一层金属氧化物介质。它的“记忆”能力体现在电阻状态上通过施加不同的电压可以可逆地改变介质层的电阻在高阻态和低阻态之间切换分别代表数字“0”和“1”。而它的魔力在于这种电阻变化是模拟的、连续的而不仅仅是二元的。2.1 模拟特性天然适配神经网络计算这正是ReRAM适合存内计算和AI的关键。在一个人工神经网络中最核心的运算之一是乘积累加MAC。比如一个神经元的输入是向量X权重是向量W其输出就是X和W的点积即每个元素相乘再求和。在传统的数字电路里这需要先将权重W从内存中读出再在ALU算术逻辑单元中进行大量的乘法器和加法器操作。而一个ReRAM交叉阵列可以天然地、并行地完成这个操作。想象一个网格水平线是输入电压代表X垂直线连接着读出电路代表输出。每个交叉点是一个ReRAM单元其电导值电阻的倒数被预先编程为权重值W。根据基尔霍夫定律当输入电压施加到字线上时流过每条位线的总电流正好就是所有相连单元电导值与输入电压乘积之和。一次操作整个阵列就完成了一次大规模的向量-矩阵乘法。这种“在内存中计算”的方式完全避免了权重数据的反复搬运极大地提升了能效和吞吐量。注意这里说的“模拟”计算指的是利用器件的物理特性如电导直接进行运算而不是先转换成数字信号。这带来了极高的能效但也对器件的均匀性、稳定性提出了苛刻要求。2.2 非易失性与高密度边缘AI的刚需ReRAM属于非易失性存储器断电后数据不会丢失。这对于边缘设备至关重要。设备可以即时唤醒无需从外部重新加载庞大的AI模型权重实现了“永远在线、随时感知”的低功耗体验。同时ReRAM的单元结构可以做得非常小并且易于实现3D堆叠从而获得极高的存储密度满足大型模型在端侧部署的需求。2.3 丰富动力学行为通向类脑计算除了基本的电阻切换ReRAM在特定材料和工作条件下还能展现出更复杂的动力学行为如弛豫、累积效应等。这些特性与生物神经元和突触的某些行为如短期可塑性、脉冲时间依赖可塑性有相似之处。这使得ReRAM不仅是存算一体的载体更是构建脉冲神经网络SNN这种更接近生物脑工作模式的计算体系的理想物理基础。这也是文中提到“ReRAM has been synonymous with neuropathic computing”的原因。3. 理想很丰满现实很骨感ReRAM存内计算面临的三大挑战尽管前景诱人但将ReRAM投入大规模存内计算应用道路绝非平坦。密歇根大学的Wei D. Lu教授在IEDM上清晰地指出了三个核心挑战这也是当前业界攻坚的重点。挑战一高精度读出电路的困境在模拟存内计算中计算的结果以模拟电流或电压的形式呈现。要将其转换为数字信号供后续处理就需要高精度、高速度的模数转换器ADC。问题在于ADC的精度和功耗是一对矛盾。高精度ADC通常面积大、功耗高会严重抵消存内计算带来的能效收益。当ReRAM阵列规模很大时为每列或每几列配备一个高精度ADC在成本和功耗上都是不可接受的。挑战二器件非理想性的干扰这是从实验室走向量产的最大障碍之一。所谓非理想性主要包括单元间差异性在制造过程中由于工艺波动阵列中成千上万个ReRAM单元的开关电压、电阻值等参数不可能完全一致。这种差异会导致用相同编程脉冲设定的权重值电导实际分布在一个范围内引入计算误差。循环耐久性与保持特性ReRAM单元在多次擦写后性能会退化数据保持时间也可能受温度等因素影响。这对于需要长期稳定工作的AI推理任务是个风险。挑战三电导更新的非线性和不对称性在AI训练过程中需要根据误差不断更新权重即调整ReRAM单元的电导。理想的更新应该是线性的、对称的无论电导当前值是多少一个固定大小的更新脉冲应该引起固定大小的电导变化且增加电导和减少电导的难度应该一样。但实际的ReRAM器件往往是非线性的电导变化量与当前状态有关且不对称的Set操作和Reset操作的效率不同。这会严重扭曲权重更新过程导致训练无法收敛或精度大幅下降。4. 见招拆招学术界与工业界的应对策略面对上述挑战研究人员提出了多种软硬件协同的解决方案。针对挑战一ADC精度从算法端降低需求既然高精度ADC是负担那就让算法适应低精度的读出。两种主流思路是多范围量化不追求对整个动态范围进行高精度量化而是将权重或激活值划分为多个子范围在每个子范围内使用相对较低的量化精度。这相当于用多个“低精度尺子”分段测量平衡了精度和硬件开销。二值/三元神经网络这是更极端的方案。将权重和激活值限制为1/-1或1/0/-1。这样乘积累加运算就简化为加法和减法甚至可以用简单的XNOR逻辑门实现。ADC的需求被大大简化只需要判断电流正负但代价是模型精度会有一定损失需要通过特殊的训练方法来补偿。针对挑战二和三非理想性与非线性训练与架构的协同优化设备感知的训练这是一种“以终为始”的思路。在训练神经网络时就将目标硬件ReRAM阵列的非理想特性如差异分布、非线性更新曲线建模出来加入到训练框架中。让算法在“模拟的、不完美的硬件”上学习从而得到的模型权重对实际硬件的缺陷具有天然的鲁棒性。这需要芯片设计人员和算法工程师的紧密合作。2T2R架构这是一个巧妙的电路级解决方案。用两个晶体管和两个ReRAM单元2T2R来代表一个符号权重例如1或-1。一个单元代表正权重部分另一个代表负权重部分。实际权重是两者电导之差。这种架构能更好地对抗器件不对称性提高权重表示的线性度和对称性。混合精度训练在训练过程中对不同部分的计算采用不同的数值精度。例如前向推理和反向传播中的大部分乘积累加用低精度如FP16甚至INT8完成以提升速度、降低功耗但权重更新和部分关键累加操作保留高精度如FP32以保证训练的稳定性和最终精度。这能在享受低精度计算红利的同时维持模型的表达能力。5. PCM存内计算的另一位实力竞争者除了ReRAM相变存储器PCM同样是存内计算赛道的有力选手。PCM利用硫族化合物材料如Ge2Sb2Te5在晶态低阻和非晶态高阻之间的可逆相变来存储信息。IBM研究院欧洲团队在这方面做了大量工作。PCM的优势在于其成熟度相对较高存储密度高静态功耗几乎为零。对于存内计算其多级存储能力通过控制相变区域的比例实现多个中间电阻态是关键。然而PCM有一个著名的“阿喀琉斯之踵”温度敏感性。相变材料的电阻会随着温度漂移这对于要求计算稳定的AI推理来说是致命的。IBM团队的研究给出了令人鼓舞的答案。他们通过实验发现虽然单个PCM单元的电导对温度敏感但大量单元电导状态的统计分布如均值、方差在30°C到80°C的宽温范围内却保持相对稳定。这是一个非常重要的洞察。这意味着可以通过系统级的校准和补偿方案来抵消温度影响。他们建立了精确的统计模型来预测温度漂移并在此基础上设计了一个简单的补偿电路。在包含超过一百万个PCM器件的测试芯片上他们成功证明了在各种神经网络任务中即使在环境温度剧烈变化下也能通过该方案维持高精度的推理结果。这项工作为PCM在真实、复杂环境下的存内计算应用扫清了一个主要障碍。6. 超越存内计算迈向脑启发计算存内计算主要解决的是“计算靠近数据”的效率问题而更前沿的探索是“脑启发计算”。这不仅仅是架构模仿更是对计算原理的重新思考。文中提到的中国科学院微电子所和复旦大学的研究正是这个方向。脑启发计算包含但不限于存内计算它更侧重于脉冲神经网络。SNN与当前主流的人工神经网络有本质不同ANN处理的是连续的空间信号而SNN处理的是离散的时间“脉冲”事件更接近生物神经元的工作方式。这种事件驱动特性使得SNN在处理视觉、听觉等时空信息时具有潜在的超高能效。ReRAM因其丰富的“动力学”特性如前文提到的非常适合用来模拟生物突触的行为构建SNN硬件。研究者展望的未来是集成化的SNN多核芯片它将事件驱动的表示方法与存内计算多核架构结合在极低功耗下实现高性能的感知与认知任务。当然这条路还很长在架构、算法、器件协同设计层面还有大量基础问题需要探索。7. 生态全景其他存储器的进展与冯氏架构的持续演进存内计算和AI的热度并没有让其他存储器技术停下脚步。IEDM作为微电子领域的顶级会议全景式地展现了存储器生态的进展。MRAM磁阻随机存储器以其近乎无限的耐久性、高速和低功耗读写特性在缓存、嵌入式存储领域稳扎稳打。它与微电子和磁学社区的紧密合作持续推动着材料与器件物理的进步。FRAM铁电随机存储器利用铁电材料的极化方向存储数据具有读写速度快、功耗低、抗辐照等优点。CEA-Leti展示了基于新型HfO2铁电材料的130nm节点16Kb阵列。这种材料无铅更环保且与CMOS工艺后段兼容性好为物联网设备提供了极具竞争力的嵌入式非易失性存储方案。DRAM作为主内存的绝对主力DRAM的 scaling微缩之路从未停止。英特尔等巨头的研究聚焦于3D堆叠、混合键合等先进封装技术以实现超越10倍的互连密度提升继续延续摩尔定律的生命力。同时将GaN功率开关与硅基CMOS集成在同一晶圆上等研究旨在从系统层面提升能效解决“内存墙”和“功率墙”的挑战。这些研究告诉我们未来计算体系结构将是多元化的。不存在一种“万能”的存储器。更可能的图景是基于SRAM和新型非易失存储器的存内计算核心负责处理高并行的AI负载MRAM/高速DRAM作为近存或缓存大容量DRAM和NAND Flash作为主存和存储FRAM/ReRAM作为嵌入式存储或特殊计算单元。它们通过先进的3D集成和互连技术异构融合在一个芯片或封装内共同构成下一代高效能计算系统的基石。8. 从实验室到产品实操中的考量与心得看了这么多前沿研究可能你会觉得存内计算离我们还很远。但实际上相关的芯片和产品已经在路上。对于有志于进入这个领域或评估相关技术的工程师我有几点基于观察的体会首先必须坚持软硬件协同设计。再好的存内计算硬件如果没有与之匹配的算法、编译器和工具链就是一堆废硅。评估一项技术时一定要看其软件生态的成熟度。例如如何将TensorFlow或PyTorch训练的模型高效地映射到存内计算阵列上如何执行设备感知的训练是否有成熟的SDK其次关注可靠性与良率。对于模拟存内计算阵列的均匀性和稳定性直接决定系统精度。在芯片设计时必须加入大量的校准电路、冗余单元和纠错机制。测试方案也需要革新传统的存储器测试方法可能不再完全适用。最后找准应用场景。存内计算不是通用计算的最优解它最适合数据密集、计算模式规整如矩阵乘、卷积且能效要求极高的场景。边缘AI推理是目前最明确的主战场智能摄像头、可穿戴设备、自动驾驶传感器等。在这些场景中它的低延迟、高能效优势能立刻转化为产品竞争力。我个人的看法是我们正处在一个计算架构变革的黎明期。存内计算和脑启发计算不会一夜之间取代现有架构但它们会像GPU一样从特定领域开始逐步渗透、改变整个计算生态。对于工程师而言理解这些底层技术的原理、挑战和进展不再只是学术兴趣而是把握未来十年硬件创新脉搏的必修课。这个过程注定充满挑战但每一次对物理极限的突破和架构思维的革新都将是推动整个产业向前迈进的关键一步。

相关文章:

ReRAM与PCM存内计算:突破冯·诺依曼瓶颈,赋能边缘AI与类脑计算

1. 从冯诺依曼瓶颈到存内计算:一场芯片架构的范式转移最近几年,但凡关注芯片和人工智能领域的朋友,肯定对“存内计算”这个词不陌生。它听起来像是一个技术术语,但背后直指一个困扰了我们半个多世纪的计算机根本性难题&#xff1a…...

插入排序,选择排序,希尔排序

一、插入排序从头开始依次选取一个元素,和他前面的数比较,先把值存为 c ,这样就不用交换值了若比前面的元素大,就让 qq 1的位置的值改为前面的数,qq 往前移一位若前面的数小,就把 qq 1的位置的值改为cvo…...

【译】《心悟内核:先懂设计,再读代码》—1、内核并非进程,而是整个系统本身

作者:Moon Hee Lee 原文: The Kernel in the Mind 心悟内核:先懂设计,再读代码——内核并非进程,而是整个系统本身Linux 内核既不是普通进程、守护进程,也不是应用程序。它是一套常驻内存的高特权运行环境&#xff0c…...

2025_NIPS_Unveiling Induction Heads: Provable Training Dynamics and Feature Learning in Transformers

文章核心内容与创新点总结 核心内容 本文聚焦Transformer在n元马尔可夫链数据上的上下文学习(ICL)机制,通过分析含相对位置嵌入、多头softmax注意力和归一化前馈网络的双层Transformer训练动态,证明梯度流会收敛到实现“广义归纳头”(GIH)机制的极限模型。该模型中,第…...

QT 导出可执行 EXE 文件的方法

简介 本文分为两部分 第一部分导出exe文件,但是此文件需要很多其他文件支持,就是在一个文件夹里,里面不仅有exe,还有很多支持文件,使用的时候需要拷贝整个文件夹。 第二部分是单独导出exe,实际是在第一部…...

36种阀体混线全自动智能分拣方案|3D视觉+机器人柔性制造实践

一、项目背景与行业痛点在高端流体控制设备制造领域,阀体、阀盖的精密分拣是保障产品质量的核心环节。随着工业设备向小型化、高精度方向发展,客户对阀体组件加工误差的控制要求持续提升,传统生产模式面临显著瓶颈:1. 人工分拣效率…...

羽毛球每天必练的基本功:拉吊四方球战术、吊杀结合战术

文章目录 引言 I 羽毛球每天必练的基本功 1. 握拍练习 2. 挥拍动作 3. 步法训练 4. 球感练习 5. 发力技巧 II 发力 正确发力 握拍 反手发力 III 羽毛球单打战术 拉吊四方球战术 直线变斜线战术 重复落点战术 吊杀结合战术 追身球压制战术 防守反击战术 引言 打球前必须热身(活…...

【必收藏】2026年大模型学习全指南|小白程序员入门捷径,抓住百万年薪红利

2026年的AI行业,机遇早已从风口走向实锤——应用层依旧是那片肉眼可见的黄金赛道!从大厂技术布局到招聘市场风向标,所有信号都在一致指向:大模型应用开发,已然成为程序员突破职业瓶颈、实现薪资跃升的核心赛道。 字节跳…...

3.C语言笔记:指针数组、函数

1.指针数组有若干相同类型的指针变量构成的数组。数据类型 * 数组名[大小] 指针数组:int * p[3];数组指针:int (*p)[4] a;int a 10,b 20, c 20; int * p[3]; p[0] &a; p[1] &b; p[2] &c;printf("a-b-c:%d %d %d\n",…...

17 LCD1602模块——显示屏

一、51单片机模块二、LCD1602模块三、模块间的连接单片机P2端口:P2_5~P2_7单片机P0端口:P0_0~P0_7四、LCD1602芯片1、参数和引脚这里只需要了解单片机的引脚功能,也可以大致看一眼,后面在编码显示功能的时候,也会做详细…...

【典型电路设计】直流400V转24V电源设计,超宽输入高压非隔离Buck降压芯片XD308H,包含芯片介绍以及参考电路详细解读

一款工业场景中非常实用的高压降压芯片——XD308H,这款芯片主打超宽输入、外围极简、低成本,特别适合400VDC母线、220VAC整流后等高压场景,实现小功率非隔离降压(如24V、12V),广泛应用于工业控制、BMS、智能…...

Get-cookies.txt-LOCALLY:浏览器Cookie本地导出终极指南

Get-cookies.txt-LOCALLY:浏览器Cookie本地导出终极指南 【免费下载链接】Get-cookies.txt-LOCALLY Get cookies.txt, NEVER send information outside. 项目地址: https://gitcode.com/gh_mirrors/ge/Get-cookies.txt-LOCALLY 在数字时代,浏览器…...

如何自定义 LangGraph 的 State Schema 以支持复杂业务数据流

标题选项 《LangGraph实战进阶:自定义State Schema搞定复杂业务数据流全指南》 《从零搞定LangGraph复杂工作流:State Schema自定义从原理到落地》 《告别简单Demo:自定义LangGraph State Schema支撑企业级复杂数据流》 《LangGraph核心原理解锁:State Schema自定义设计思路…...

TrollInstallerX终极指南:深入解析iOS 14.0-16.6.1越狱工具部署技术

TrollInstallerX终极指南:深入解析iOS 14.0-16.6.1越狱工具部署技术 【免费下载链接】TrollInstallerX A TrollStore installer for iOS 14.0 - 16.6.1 项目地址: https://gitcode.com/gh_mirrors/tr/TrollInstallerX TrollInstallerX是一款专为iOS 14.0到16…...

AI Agent与DevOps融合:自动化开发与运维的智能体工具链

AI Agent与DevOps深度融合:打造全链路自动化开发运维的智能体工具链实践指南 摘要/引言 你有没有遇到过这些DevOps场景的痛点:凌晨3点收到线上告警,爬起来翻几百条日志排查根因花了40分钟,业务已经损失了几十万;团队100个开发每天提交200+MR,DevOps团队光做代码审查就要…...

如何用AEUX在30分钟内完成Figma到After Effects的无缝动画转换

如何用AEUX在30分钟内完成Figma到After Effects的无缝动画转换 【免费下载链接】AEUX Editable After Effects layers from Sketch artboards 项目地址: https://gitcode.com/gh_mirrors/ae/AEUX 你有没有经历过这样的场景?在Figma中精心设计了完美的UI界面&…...

产品经理必备:Gemini3.1Pro高效撰写需求文档指南

做产品经理的人,大多都写过需求文档,但真正让人头疼的,往往不是“写”,而是“写得清楚”。 需求背景要交代,目标要明确,流程要完整,边界条件要说明,异常情况还不能漏,最后…...

Gemini3.1Pro轻松搞定文献综述难题

对很多学生党来说,论文开题最难的地方,不是选题本身,而是文献综述。 题目定下来了,方向也有了,但一翻到文献就发现:资料很多、观点很多、结构却很乱,不知道怎么归纳,更不知道怎么写得…...

Gemini3.1Pro:商业分析框架搭建神器

做咨询的人都知道,真正难的从来不是“找到信息”,而是“把信息组织成框架”。 很多商业分析问题看起来复杂,本质上都是在有限时间内,把零散材料整理成一个能支撑判断的逻辑结构。如果你经常做行业分析、竞品分析、市场调研、经营诊…...

Gemini3.1Pro解决新媒体小编选题难痛点

做新媒体的小编,最怕的不是写,而是“今天写什么”。 选题总是来得很急,热点总是变化很快,账号又要求持续更新,结果就是:内容压力大、时间不够用、框架搭不出来。如果你每天都在追热点、找角度、写标题、搭结…...

U-Boot分析【学习笔记】(2)

3. U-Boot 编译 在上篇文章U-Boot分析 【学习笔记】(2)中,给出了基于imx6ull裁剪后的U-Boot源码结构图,但这并不意味着把其他文件进行删除,而是通过配置(.config)的方式使编译时只选取所需要的文件进行操作。 保持源…...

UML 关系详解

依赖(Dependency)含义:一个类的变化会影响到另一个类,但反之不一定。这是一种“使用”关系,通常是临时的、较弱的。典型场景:一个类作为另一个类方法的局部变量、方法参数,或调用静态方法。UML表…...

learn claude code S12 Worktree 任务隔离详解笔记

S12 Worktree 任务隔离详解笔记基于 s12_worktree_task_isolation.py 源码逐行分析,配合 s12-worktree-task-isolation.md 设计思路。一、问题:多个任务共享一个工作目录,互相踩踏 前面 11 章的 agent 都在同一个工作目录下操作。当只有一个 …...

learn claude code S11 自主 Agent 详解笔记

S11 自主 Agent 详解笔记基于 s11_autonomous_agents.py 源码逐行分析,配合 s11-autonomous-agents.md 设计思路。一、问题:队友需要有人持续指派任务 s09-s10 的 teammate 有一个尴尬的空白期:完成当前任务后进入 idle,然后呢&am…...

【高光谱图像数据处理实战】基于Python的ENVI图像交互式裁剪与光谱数据预处理

前言在处理高光谱图像数据(Hyperspectral Imaging, HSI)时,我们常常需要面对两个核心问题:一是如何从庞大的三维数据立方体(Data Cube)中高效、准确地提取感兴趣区域(ROI&#xff09…...

数学全景地图6---数学的内容、方法和意义,50年代苏联的数学全景大书Big Picture。

0、数学--它的内容、方法和意义。Mathematics--Its Content, Methods, and Meaning.----俄文原版于1956年。英文翻译版于1963年。中文翻译版于1950年代。----在国内的《数学大辞典》中,特别指出这本书《数学-它的内容方法和意义》,是当时的数学辞书之一。…...

opencv-第四章:图像轮廓检测

OpenCV-计算机视觉技术(林伟鹏版) 第四章:图像轮廓检测 文章目录OpenCV-计算机视觉技术(林伟鹏版)前言一、图像轮廓检测概念1.概念二、图像轮廓检测1.图像二值化转换2.图像轮廓匹配3.二值图轮换轮廓检测4.图像轮廓检测…...

多模型聚合平台在应对单一服务波动时的体验差异

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 多模型聚合平台在应对单一服务波动时的体验差异 在构建依赖大模型能力的应用时,开发者常常面临一个现实挑战&#xff1…...

FreeRTOS日志任务设计----LogTask 日志任务

🎬 渡水无言:个人主页渡水无言 ❄专栏传送门: 《linux专栏》《嵌入式linux驱动开发》《linux系统移植专栏》 ❄专栏传送门: 《freertos专栏》 《STM32 HAL库专栏》《linux裸机开发专栏》 ❄专栏传送门:《产品测评专栏》…...

将串口打印的日志,同时备份到sd卡里

将串口打印的日志&#xff0c;同时备份到sd卡里#include <stdio.h> #include <unistd.h> #include <pthread.h> #include <string.h> #include <stdlib.h> #include <errno.h>static int pipe_fd[2] {-1, -1};static int stdout_backup …...