探索存内计算—基于 SRAM 的存内计算与基于 MRAM 的存算一体的探究

CSDN存内社区招募:https://bbs.csdn.net/forums/computinginmemory

首个存内计算开发者社区,现0门槛新人加入,发文享积分兑超值礼品; 存内计算先锋/大使在社区投稿,可获得双倍积分,以及社区精选流量推送;精选文章可获得社区奖金激励800,可获得线下训练营的免费名额以及存内主题活动大咖交流机会;

随着信息技术的迅猛发展,存算一体技术逐渐成为计算领域的研究热点。在这一领域,基于SRAM(静态随机存取存储器)和MRAM(磁性随机存取存储器)的存内计算和存算一体架构日益受到重视,为计算性能和能效带来了新的可能性。本文将深入探讨这两种技术的原理、优势及其在不同领域的应用,旨在为读者提供对存算一体技术发展趋势的全面了解。

一.基于 SRAM 的存内计算

在信息技术的不断发展中,SRAM存内逻辑计算技术日益成为研究的焦点。自2016年Jeloka等人提出了基于SRAM的存内逻辑计算以来,这一领域取得了长足的进步。该技术不仅仅局限于逻辑运算,还应用于神经网络的硬件加速,为计算领域带来了全新的可能性。

SRAM的逻辑运算是通过激活同一列的多个存储单元来实现的。这些存储单元的字线被同时激活,通过灵敏放大器感测位线电压,得到存储单元存储比特的逻辑运算结果。在增加额外的逻辑门后,SRAM可以实现逻辑或非和逻辑与非运算。与传统的SRAM阵列相比,新的阵列具有更高的密度和更低的功耗,为存内计算提供了更广阔的发展空间。

在这一领域的持续探索中,研究者们提出了更多创新的SRAM存内计算架构。例如,Aga等人提出了一种新的存内计算架构,通过添加解码器和使用单端灵敏放大器实现了逻辑异或运算。而Dong等人则提出了一种4+2T的SRAM单元,相比传统的6T SRAM单元具有更好的噪声容限。

针对传统6T SRAM单元存在的读写干扰和存储内容翻转等问题,研究者们提出了8T和10T SRAM单元。Agrawal等人则提出了使用8T SRAM单元和8+T SRAM单元的解耦读写路径,成功实现了存内布尔运算,包括逻辑与非、逻辑或非、逻辑异或等逻辑运算。相比于6T SRAM单元,8T SRAM单元提高了数据的吞吐量和处理速度,为计算性能带来了明显的提升。

一些研究者还探索了SRAM单元与算术电路协同的架构,例如Rajput等人提出了一种8T SRAM单元与算术电路协同的架构,具有更高的能量利用率和读取裕量。

基于SRAM的存内逻辑计算技术不断创新,为计算领域带来了更高的性能和更低的功耗。随着这一技术的不断发展,我们有理由期待它在未来的计算应用中发挥更加重要的作用。

二.基于 SRAM 的存内计算在神经网络的应用

近年来,深度学习技术在神经网络领域蓬勃发展,但由于常规训练通常依赖于高功耗的CPU或GPU,因此功耗问题成为制约其应用的重要因素。然而,随着超大规模集成电路制造业的飞速进步,嵌入式系统逐渐成为研究的热点。嵌入式系统以其低功耗和小占用面积的特点,成为解决目标检测等问题的理想选择。

在嵌入式神经形态处理系统的发展中,基于忆阻器的神经形态计算体系架构引起了广泛关注。多种基于忆阻器的神经形态计算体系架构相继被提出。例如,Sun等人提出了一种基于忆阻器的神经形态计算架构,实现了三层全并行卷积神经网络(FP-CNN)。而在此基础上,Sun等人将其作为基本计算单元提出了一种级联神经网络体系架构。Yakopcic等人则提出了一种基于忆阻器的卷积神经网络,利用多个忆阻器交叉阵列实现。

尽管这些方法在网络架构方面取得了显著成效,但当忆阻器阵列存在低良率问题时,其性能却会受到明显影响。为此,本文提出了一种基于忆阻器的神经形态计算方法,结合了提高忆阻器阵列乘累加计算准确率的校准方法和可减少训练误差的原位训练方法,从而能够提高网络在低良率阵列中的识别率。

这一方法的提出将为嵌入式神经计算带来全新的可能性,不仅能够提高计算准确率,还能在较低的功耗下实现更为稳健的性能表现。随着该方法的进一步研究和应用,我们有信心在嵌入式神经计算领域迈出更加坚实的步伐,为智能计算的未来铺平道路。

一种编程忆阻器交叉阵列的电路如下图:

2.1 神经网络算法(BNN)

神经网络算法中,乘加计算是最为频繁的操作之一。为了应对计算需求与功耗之间的平衡,研究者们提出了二值化神经网络(BNN),将输入和权重进行二值化,限定为1或-1。这种二值化使得基于SRAM的乘法运算可以被视为逻辑同或运算。然而,使用一位二值权重可能会导致较大的精度损失,因此研究者们将注意力转向了并行计算,以实现多位权重运算。

一种被提出的并行计算结构包括WL开关矩阵用于激活多行字线,闪存ADC的多电平检测器(MLSA)以及生成基准电压的参考生成器。另一种基于6T SRAM的双拆分结构实现了完全并行的乘积和累加计算,取得了显著的效果。该架构不仅可以实现全连接层的计算时间达到2.3 ns,而且能效最高可达55.8 TOPS/W。然而,这种架构使用了大量的晶体管,导致了较大的面积。

乘法真值表如下。

Nguyen等人提出了用于DNN存内计算的10T SRAM,并设计了整体架构,成功映射了LeNet-5手写数字识别网络。该架构支持完全并行的乘加计算,并且实现了4位权重、4位输入、8位输出的乘加操作。另外,Su等人提出了可用于2到8位运算的双向转置6T SRAM,支持神经网络推理和训练的过程。

此外,为了进一步降低功耗,研究者们还研究了稀疏性处理。Han等人提出了一种基于8T SRAM的DNN加速器,不仅具有前向传播和后向传播功能,还具有稀疏性处理功能。通过只存储非零值及其地址的方式来过滤零值,使得不必要的计算被跳过,最终实现了功耗上的降低。

在国内外,许多优秀团队也为SRAM的存内计算做出了贡献。他们提出了各种创新的方法和结构,如无乘法函数逼近器、更高线性度和吞吐量的SRAM单元、无ADC的动态SRAM架构等,以加速神经网络的计算过程并降低功耗。这些研究成果为神经网络计算的进一步优化提供了重要的参考和启示。

如下图所示,这种架构通过在一个32×32的10T SRAM阵列中输入32个输入向量,将输入向量与权重矩阵做乘法运算。在同一列上的所有SRAM单元的位线上的电流被求和并转换成模拟电压,在敏感放大器模块中将此模拟电压与参考电压进行对比,生成数字信号的输出。参考电压由3列10T SRAM组成的参考阵列块生成,同时此参考阵列块还产生检测放大器SA的检测使能信号。通过这样的方式,完成了矩阵和向量之间的乘加运算。

这种架构是通过28纳米CMOS工艺实现的,具有高能效和高吞吐量的优势。这意味着它在进行神经网络计算时能够以更低的功耗和更高的效率完成任务,从而提高了整个系统的性能表现。

三.基于 MRAM 的存算一体

基于MRAM(磁性随机存取存储器)的存算一体(MRAM-in-Memory Computing)是一种新型的计算模式,它结合了内存和计算的功能,利用MRAM的非易失性和快速读写特性,在存储器内部进行计算操作,从而提高计算效率和能源利用率。

MRAM作为一种新型的存储技术,具有快速的读/写速度、低功耗和非易失性等优点。这些特性使得MRAM非常适合用于存算一体的应用。在存算一体中,计算任务可以直接在MRAM中进行,而无需将数据从存储器传输到CPU进行处理,从而减少了数据传输的延迟和能耗。

MRAM 与其他类型存储器相比具有明显优势。下表列出几种不同类型的存储器优缺点比较:

通过将计算操作与存储操作结合在一起,存算一体架构可以实现更高效的数据处理。例如,对于机器学习应用,可以在MRAM中进行矩阵乘法等计算密集型操作,而无需将数据移动到CPU或GPU。这样可以大大减少数据传输的时间和能耗,提高系统的整体性能。

此外,存算一体还可以降低硬件系统的复杂性,减少了CPU和存储器之间的通信带宽需求,简化了系统架构,降低了成本。

自旋芯片被认为具有SRAM的高速度、DRAM的高密度以及Flash的非易失性等优点,这一观点得到了中国科学院院士、南京大学物理系教授和博士生导师的认同。此外,自旋芯片的抗辐射性也备受军方青睐,使其原则上可以取代当前各类存储器,成为未来的通用存储器。

鲁汶仪器的一位员工介绍称,目前,MRAM主要在军工、大数据高性能存储等领域有一些应用。然而,随着工艺的成熟和成本的降低,MRAM有望取代DRAM。

然而历史上在DRAM和Flash的发展过程中,一直有人认为还有其他存储芯片技术可以取代它们,但都没有成功。赵巍胜认为,DRAM和Flash将随着新技术的引入不断发展。例如,DRAM技术因为EUV光刻机的使用而得以进步。目前,MRAM在特定应用场景下已经有了一定的市场份额,如ToT、车载、航空航天等领域。然而,未来MRAM很有可能向新的消费级市场发起冲击。

四.SRAM 的存内计算和于 MRAM 的存算一体探讨

SRAM的存内计算和基于MRAM的存算一体是两种不同的计算模式,它们各自有着独特的特点和优势。

  1. SRAM的存内计算
  • 工作原理:SRAM的存内计算利用存储单元的逻辑运算功能,通过激活同一列的多个存储单元来实现逻辑运算。
  • 优势
    • 高密度和低功耗:相比传统的SRAM阵列,新的SRAM存内计算架构具有更高的密度和更低的功耗,提供了更广阔的发展空间。
    • 逻辑运算功能:SRAM存储单元具有逻辑运算功能,可以实现逻辑与非、逻辑或非、逻辑异或等逻辑运算。
  • 创新:研究者们提出了各种创新的SRAM存内计算架构,如8T和10T SRAM单元,以及解耦读写路径等,进一步提高了计算性能和能效。
  1. 基于MRAM的存算一体
  • 工作原理:基于MRAM的存算一体将计算和存储功能结合在一起,利用MRAM的快速读/写速度和非易失性,在存储器内部进行计算操作。
  • 优势
    • 减少数据传输:由于计算任务可以直接在MRAM中进行,无需将数据传输到CPU或GPU,因此可以减少数据传输的延迟和能耗。
    • 降低系统复杂性:存算一体可以降低硬件系统的复杂性,简化系统架构,降低成本。
  • 应用前景:MRAM作为一种新型存储技术,在军工、大数据高性能存储等领域已经有了一些应用,并有望取代DRAM。

对比

  • 工作原理差异:SRAM的存内计算主要利用存储单元的逻辑运算功能,而基于MRAM的存算一体则是将计算和存储功能集成在MRAM中。
  • 优势重点不同:SRAM存内计算注重于提高计算性能和能效,而基于MRAM的存算一体则注重于减少数据传输延迟和降低系统复杂性。
  • 应用领域不同:SRAM存内计算主要应用于逻辑计算和神经网络硬件加速,而基于MRAM的存算一体则更多应用于军工、大数据高性能存储等领域。

两者各有特点,适用于不同的场景和应用需求。SRAM的存内计算更适用于需要高性能逻辑计算和神经网络加速的场景,而基于MRAM的存算一体则更适用于减少数据传输延迟和简化系统架构的场景。

五.总结

本文深入探讨了基于SRAM和MRAM的存算一体技术在计算领域的应用和发展。首先,介绍了基于SRAM的存内逻辑计算技术,包括其原理、优势以及在神经网络领域的应用。其次,详细讨论了基于MRAM的存算一体技术,包括其工作原理、优势以及在军工和大数据存储领域的应用。最后,对比了SRAM的存内计算和基于MRAM的存算一体技术的差异,包括工作原理、优势重点和应用领域等方面。

在全文中,强调了这两种技术在提高计算性能、降低能耗、简化系统架构等方面的重要作用,展望了它们在未来的计算应用中的潜力和前景。同时,对于不同场景下的适用性和优势进行了详细的分析和比较,为读者提供了深入了解存内计算技术的参考。

参考文献

  1. DRAM时代即将到来,泛林集团这样构想3D DRAM的未来架构
  2. 3D DRAM Is Coming. Here’s a Possible Way to Build It.Benjamin Vincent
  3. .3D堆叠DRAM Cache的建模以及功耗优化关键技术研究
  4. 存内计算概述
  5. 中国科学技术大学
  6. 应用于忆阻器阵列存内计算的低延时低能耗新型感知放大器
  7. 基于存算一体集成芯片的大模型专用硬件架构
  8. 高能效高安全新兴计算芯片:现状、挑战与展望 54.01(2024):34-47.
  9. 校准方法和存内训练相结合的忆阻器神经形态计算方法
  10. Survey of In-Memory Computing Technology Based on SRAM and Non-Volatile Memory

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/41.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sql篇-内连接-左连接-右连接

内连接:表1 inner join 表2 on 条件 inner join join(简写) 查找:满足 匹配两个表条件的记录:student.s_id s.s_id(不匹配的记录不筛选) select * from student inner join score s on student.s_id s.s_id; 查询…

找第三方软件测评多久能拿到报告

随着软件市场的快速发展,用户对软件质量、性能和安全性的要求也越来越高。为了满足这些需求,许多企业和开发者选择寻求第三方软件测评机构的帮助。那么,找第三方软件测评多久能拿到报告呢?本文将从多个方面为您解析这一问题。 一…

【C++核心】面向对象的三大特性

面向对象的三大特性 一、封装性1. 封装性的意义1.1 表现事物1.2 权限控制1.3 成员属性设置为私有 2. 封装性的衍生知识2.1 struct和class区别2.2 友元2.2.1 全局函数做友元2.2.2 类做友元2.2.3 成员函数做友元 二、继承性1. 继承的语法2. 继承方式3. 继承中的对象模型3.1 说明3…

鸿蒙Next和鸿蒙4.0开发者如何选择

目录 一、 开头一句话重点落在鸿蒙原生开发,也就是ArkUI、Ability、ArkTS、ArkWeb、ArkData等。不管将来是鸿蒙Next2.0或者鸿蒙6.0都游刃有余。 二、 鸿蒙4.0与鸿蒙Next的共性共性概述详细分析总结 三、HarmonyOS Next与HarmonyOS 4的主要区别内核与兼容性设备与应用…

智能电视/盒子长文字输入困难?手把手教您解决这个难题!(电视盒子跨屏输入/打字,亲测有效!)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 解决方案 📒📝 方法一📝 方法二🎈 获取方式 🎈⚓️ 相关链接 ⚓️📖 介绍 📖 在使用智能电视/电视盒子的时候,会遇到这样一个场景:需要输入一个很长的网址,或者是想要粘贴一段很长的文字。如何使用遥控器要完成…

sqli-labs-master(Less1--Less5)

Sql-labs-master通关攻略_sqli-labs-master 全部通关-CSDN博客 sqli-labs-master靶场搭建,1-10关详解-CSDN博客 小白勇闯sqli-labs-master1-22关_sqlilabs第22关-CSDN博客 搭建靶场 靶场: GitHub - Audi-1/sqli-labs: SQLI labs to test error base…

浅谈成为程序员后我明白的道理

当我成为程序员后,我明白了以下几点: 编程是一门持续学习的技能:作为程序员,我意识到编程是一个不断发展和变化的领域。新的编程语言、框架和技术不断出现,需要不断学习和适应。我意识到要持续学习新的知识和技能&…

机器学习—特征预处理和降维(四)

什么是特征预处理? 通过一些转换函数将特征数据转换成更加适合算法模型的特征数据过程 1包含内容 数值型数据的无量纲化: 归一化标准化 2特征预处理API sklearn. preprocessing为什么要进行归一化 or 标准化? 特征的单位或者大小相差较大…

学习了解大模型的四大缺陷

由中国人工智能学会主办的第十三届吴文俊人工智能科学技术奖颁奖典礼暨2023中国人工智能产业年会于2024年4月14日闭幕。 会上,中国工程院院士、同济大学校长郑庆华认为,大模型已经成为当前人工智能的巅峰,大模型之所以强,是依托了…

请警惕,这10本期刊已被SCI剔除,部分涉嫌灌水

科睿唯安于4月15日更新了SCIE、SSCI、AHCI、ESCI四大数据库最新收录期刊目录。 2024年第一版——2024年1月24日更新 2024年第二版——2024年2月19日更新 2024年第三版——2024年3月18日更新 2024年第四版——2024年4月15日更新 本次目录中共收录期刊23368本。 【SCIE数据…

苹果开发初学者指南:Xcode 如何为运行的 App 添加环境变量(Environmental Variable)

概览 Xcode 15 在运行 SwiftUI 代码时突然报告如下警告: Error: this application, or a library it uses, has passed an invalid numeric value (NaN, or not-a-number) to CoreGraphics API and this value is being ignored. Please fix this problem. 不仅如此…

react之useState详解

1. 为什么要用useState? 它是React 16.8 的新特性,我们在React里面一般都是用Class去写组件,但是有时候会发现不用它更方便,但是问题来了:不用Class的时候,数据的状态改变如何存储呢?如果你用 …

数据结构-堆详解

堆 图片: 二叉堆的父节点为这个子树的最值。 如何维护它。 我们发现它是一棵二叉树,那就自然满足若父节点为 x x x 则左儿子节点为 x 2 x\times2 x2 右儿子为 x 2 1 x\times 2 1 x21 这是显然的,但如果写成指针或结构体就太麻烦了&…

Redis的特性与安装

回顾 Redis是一个在内存中存储数据的中间件,可以用来当数据库用,也可以作为缓存用(这里的缓存往往是对数据库缓存)。 中间件:和业务无关的服务,功能更加通用,如:数据库,缓存,消息队…

【笔试强训】Day1 --- 数字统计 + 两个数组的交集 + 点击消除

文章目录 1. 数字统计2. 两个数组的交集3. 点击消除 1. 数字统计 【链接】:数字统计 解题思路:模拟,利用数学知识,计算每个数字中2出现的个数。(这里也可以将数字转换成字符串来统计字符’2’出现的个数&#xff09…

如何使用Flask搭建web程序框架并实现无公网IP远程访问本地程序

文章目录 前言1. 安装部署Flask并制作SayHello问答界面2. 安装Cpolar内网穿透3. 配置Flask的问答界面公网访问地址4. 公网远程访问Flask的问答界面 前言 Flask是一个Python编写的Web微框架,让我们可以使用Python语言快速实现一个网站或Web服务,本期教程…

bonding原理分析和问题排查

bonding原理 发送端: 使用网卡bond3模式(广播模式BOND_MODE_BROADCAST)将报文从两个网卡同时发出,无需修改报文。 接收端: 根据发送节点时间的链路通断状态,接收端设置一条线路为活动线,另一条…

免费泛域名SSL如何申请,和通配符有什么区别

-----让我们明确什么是泛域名。所谓泛域名,是指使用星号(*)作为子域名的占位符,它可以匹配任意子域名。-----而通配符在域名中,它可以出现在主域名的任何位置,它可以用于主域名和子域名的保护。 主要应用场…

XZ-Utils后门事件过程及启示

Part.01 背景 XZ-Utils(曾经叫做LZMA Utils)是一款开源的无损压缩命令行工具,是用C语言编写的跨平台工具,可以用于类Unix系统和Windows系统。在多数情况下,xz的压缩率要好过gzip和bzip2,解压速度也快过bz…

Java的数组定义和使用

目录 1.前言 2.数组的概念 3.在Java中的创建和初始化 3.1数组的创建 3.2数组的初始化 4.关于使用 4.1数组元素的访问 4.2数组的遍历 4.3length和length()的区别 5.数组其实是引用类型数据 5.1初始JVM的内存分布 5.2基本类型变量与引用类型变量的区别 5.3关于null的认识 5.4设计…