ISSCC34.7解析一种具备内存编码与刷新功能的eDRAM查找表数字存内计算芯片

一、引言

1. DCIM概述

数字存内计算(Digital Computing-in-Memory, DCIM)是一种将计算操作直接集成到存储单元中的新兴计算架构。传统计算模型(冯·诺依曼架构)中的计算和存储是分离的,数据必须频繁在存储器和处理单元之间移动,在大数据和人工智能应用中会导致显著的延迟和能耗开销。数字存内计算的目标是通过在存储单元中直接执行计算任务,减少数据移动,提高系统整体的能效。在DCIM架构中,存储单元不仅用于存储数据,还可以直接执行简单的计算任务,如加法、乘法、逻辑操作等。在实际应用中,DCIM特别适用于矩阵向量乘法、神经网络加速等高并行度的任务。

2. 论文背景介绍-传统DCIM的面积开销

在传统的DCIM架构中,常见的乘加运算通常依赖于全加器树来完成累加操作。这种全加器树虽然能实现高精度的运算,但在规模化应用中,其面积和功耗开销显著增加,限制了系统的扩展性和能效表现。另外,近几年常被用作存内计算存储器的eDRAM也迫使设计者需要在存储密度和计算密度之间做出权衡。eDRAM和传统DRAM不同的是将曾经整块的存储单元嵌入到各个计算单元中,实现存内计算。在实际应用中,eDRAM在精度和吞吐量上表现突出,但也同样需要定期刷新以维持数据的准确性。

由此,本文提出了一种基于eDRAM-LUT的存内计算架构,希望借此突破传统DCIM设计中的部分问题,提高计算密度和能效。

课题组简介

刘勇攀教授课题组隶属于清华大学电子工程系电路与系统研究所,主要研究方向包括高能效计算芯片和感存算融合系统等。课题组致力于探索后摩尔时代的器件-架构-算法协同优化,针对新型器件和应用带来的挑战,开展跨层次的研究与创新。

课题组在高能效芯片设计领域取得了多项成果,包括全球首款非易失处理器和STICKER系列人工智能芯片。研究成果已在学术界发表,并获得多个国际奖项和荣誉。团队同时参与多项国家级科研项目,并积极参与国际会议和期刊的学术交流与合作。

GitHub - witmem/Witmem-CIM-Papers-Collection: Computing in memory optimizes data handling by performing operations directly in memory, ideal for high-speed data processing needs. This compilation highlights its technologies and applications, offering a concise overview for professionals in the field.Computing in memory optimizes data handling by performing operations directly in memory, ideal for high-speed data processing needs. This compilation highlights its technologies and applications, offering a concise overview for professionals in the field. - witmem/Witmem-CIM-Papers-Collectionicon-default.png?t=O83Ahttps://github.com/witmem/Witmem-CIM-Papers-Collection

二、论文创新点

1. eDRAM-LUT

eDRAM(嵌入式DRAM)是一种高密度、低功耗的存储技术,本质上是通过将DRAM单元嵌入到处理器或其他芯片上,减少了数据传输的延迟和功耗,实现存内计算。eDRAM技术的显著优点是具有比SRAM更高的存储密度,更适用于存算一体芯片这种需要大容量存储但同时受限于面积的环境应用。

图1 3T eDRAM的面积小于经典的9-Track全加器

LUT(Look-Up Table,查找表)是一种常用于FPGA的可编程逻辑器件中的组件,用于存储预定义的计算结果,以便在需要时快速查找。LUT可以看作是一个用于实现逻辑函数的存储单元,通过预先存储函数的结果,在实际计算时只需要根据输入条件从表中读取相应的输出,无需实时计算。

该论文提出的设计在传统DCIM的基础上进行了创新,通过将eDRAM单元重新配置为查找表(LUT)用于执行乘加(MAC, Multiply-Accumulate)操作,提高计算和存储的密度。eDRAM不仅仅作为存储器使用,还在存储器内部执行计算任务,从而实现存内计算,减少数据在存储单元和计算单元之间的移动,提高了MAC操作的能效和计算密度。

2. 设计架构

论文中使用的核心架构设计如图2所示,称为CS-DCA(Computation-Storage Dual-Mode Array,计算-存储双模阵列),其包括256×160的eDRAM单元,被分为16个独立的Bank。每个Bank内含有16个eDRAM- LUT加法器(eLAD),每个eLAD的存储容量为160b。CS-DCA不仅能用作常规的数据存储内存,还能执行深度学习和大数据分析的4×8b权重MAC运算。

图2 CS-DCA的核心架构

CS-DCA是一种设计灵活的电子架构,能够无缝切换计算模式(CIM模式)和存储模式(Memory模式),以应对不同的处理和存储需求。双模功能主要依赖于如图3所示的分层解码器和eLAD(eDRAM LUT加法器)协同工作。

图3 双模式功能图解

在计算模式下,CS-DCA负责数据的运算处理。这一模式适用于执行多重加权累加(MAC)操作,也是神经网络和其他算法常见的计算类型。eLAD作为核心组件之一,使用内置的LUT(如图4所示)来存储和执行基于输入激活和权重的预定义加法操作。每个eLAD包含多个LUT,能够并行处理一组特定的输入激活和权重(如图5所示)。此外,分层解码器在CIM模式下作为一个16路的4:16激活解码器工作,根据四个输入通道并行地选择相应的权重组合,从而允许快速访问存储在eLAD中的查找表。

图4 eDRAM LUT的乘积-累加操作映射表

图5 LUT计算方案优势

在存储模式下,CS-DCA可作为传统存储器来使用,负责数据的保存和检索。在这种模式下,分层解码器的工作方式可看作传统的8:256解码器,用于选择单一的读/写字线(RWL/WWL)进行数据的读取或写入。

3. 电路设计与实现

基于eDRAM- LUT的加法器(eLAD)的内存计算架构通过优化数据存储和处理性能来提升整体系统效率。eLAD的电路设计如图6所示,通过将160位的存储容量划分为16个10位的子阵列,eLAD可处理基于LUT的复杂计算操作。每个子阵列的独立操作减少了数据处理中的冲突和延时,优化了读写过程。

图6 eLAD的电路设计

此外,eLAD采用分层写字线(WBL)来进一步优化子阵列间的数据写入,设计权重组合的存储顺序基于相应的激活二进制代码,使得架构可以根据计算需求动态调整存储数据,从而有效利用存储空间并加速数据处理。

在硬件设计方面,eLAD采用的3T eDRAM单元(如图7)的面积只有传统6T SRAM单元的一半,提高存储密度并降低制造成本。为了进一步降低能耗,eLAD在写字线选择器上使用了增强型高阈值电压(eHVT)晶体管,以最小化漏电流。同时,eLAD在读取端口采用低阈值电压(LVT)晶体管以减少访问延迟。

图 7 3T eDRAM单元布局

IMREP(内存刷新和编码端口)主要针对提升内存刷新与数据编码的效率。通过引入动态锁存结构以及两条特定的写回路径,IMREP优化了内存的操作效率与速度。

图8 IMREP架构

4. 芯片测试与对比

文章提出的存算一体芯片在28nm HKMG工艺下实现,总面积为0.017mm2,其存储单元采用的是面积为0.145 um2的3T eDRAM。该芯片由5mm2 ,10个具有40Kb存储容量的eDRAM核组成,其能在供电电压为0.9-1.2V、频率为400-1100 MHz时正常工作且芯片的总吞吐量为10 TOPS。

在性能方面,由于 eHVT NMOS写选择器的 Vt,<1V 的芯片频率受写功能的限制,而>1V的芯片频率受计算能力的限制。另一方面,当电压为0.9V、输入稀疏度为10%时芯片能够实现最好的能效19.7 TOPS/mm2  8b。保留时间是在1V电源电压下测量的,在25°C和60°C时的刷新间隔分别为1.3和0.5us,这受到高泄漏 eDRAM单元的限制。此外,芯片的面积和能量分布揭示了eDRAM和数字逻辑之间的均衡分配,使其有别于其他具有数字部分的DCIM设计。

如图9所示,与之前的模拟eDRAM-CIM设计相比,这些设计以精度为代价换取更高的峰值能效,而这项工作保持了完全精度并实现了高标准化能效。与基于SRAM的DCIM工作相比,基于 eDRAM LUT的设计提高了高性能工作的面积和能效,而不会损失精度。

图9 横向芯片参数对比

本文提出的工作结合了eDRAM和DCIM的优势,做到了精度、存储和计算密度方面的平衡。选用eDRAM存储单元,使得面积开销仅为6T SRAM存储单元的50%,从而可以在一个核上集成更多的存储单元;利用LUT实现加法器数,降低了高精度数字逻辑的面积开销;存内eDRAM内部设计支持权重更新和编码的电路,在提供并行度的同时降低时间开销。与之前的模拟 eDRAM-CIM设计相比,这些设计以精度为代价换取更高的峰值能效,而本文工作保持了完全精度并实现了高标准化能效。与基于SRAM的DCIM工作相比,基于eDRAM  LUT的设计提高了高性能工作的面积和能效而不会明显损失精度。

此外,大多数之前的工作都具有固定的CIM宏配置和大小,当宏的大小小于数据的维度时,需要进行重复的内存访问,消耗了CIM功率的40%以上。在相反的情况下,宏则会出现未充分利用的情况。而本文实现的存储和计算相结合的功能,能够根据任务的不同动态调整和优化宏架构,以在数据处理中实现更高的系统级效率和吞吐量。

三、未来展望

存内计算技术通过将计算能力直接嵌入存储单元中,提供了一种解决数据传输瓶颈和能效问题的新途径,其发展将依赖于新材料、新工艺和新架构的持续创新。忆阻器、相变存储器和磁阻存储器等新型存储器件具有非易失性、高密度和低功耗的特点,能够显著提升存内计算的性能和效率;3D堆叠技术和纳米级制造工艺将显著提高集成度和性能,减少数据传输延迟;新型计算架构如混合存内计算、可重构计算和神经形态计算,通过灵活的配置和高效的计算模式,进一步优化不同应用场景的性能和能效。在高性能计算中,存内计算可以显著提升数据密集型任务的处理效率,减少数据传输瓶颈;在人工智能领域,存内计算将加速神经网络的训练和推理过程,提高深度学习模型的性能;专用的AI芯片(如TPU、NPU)结合存内计算技术,可以实现更高效的计算和存储集成,满足复杂AI任务的需求。

未来,研究者应着重于进一步提高存内计算技术的集成度和能效,以及解决现有技术中的限制问题。优化存储器件,实现更高密度和更低功耗的存储单元;解决存内计算技术中的可靠性和耐久性问题,提高存储器件在数据存储和计算过程中的稳定性和错误率;开发适用于存内计算的编程模型和开发工具,简化开发过程,确保不同设备和系统之间的兼容性和互操作性。持续的创新和研究将推动这一领域不断前进,为解决现代计算中的瓶颈问题提供有效的解决方案。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

FastDFS的docker部署及实现头像上传

FastDFS的使用并实现头像上传 一、FastDFS概述二、安装FastDFS1. 拉取镜像2. 安装tracker3. 安装storage4. NGINX服务启动三、配置和依赖配置依赖四、头像上传一、FastDFS概述 概述 上传交互过程 两个服务:Tracker Server 和Storage Server Tracker Server 跟踪服务,负责调…

UNRAID系统忘记密码解决办法

前言 unraid系统自己通过命令修改密码以后&#xff0c;怎么也进不去了。 这次带来如何重置密码 操作

着色器 简介

着色器&#xff08;Shader&#xff09;是运行在 GPU 上的小程序。这些小程序为图形渲染管线的某个特定部分而运行。从基本意义上来说&#xff0c;着色器只是一种把输入转化为输出的程序。着色器也是一种非常独立的程序&#xff0c;因为它们之间不能相互通信&#xff1b;它们之间…

C语言进阶【5】---数据在内存中的存储【2】(小数存储很难吗?)

本章概述 本章引要练习 浮点数的存储浮点数的取出小补充题目解析彩蛋时刻&#xff01;&#xff01;&#xff01; 本章引要 常见的浮点数&#xff1a;3.1415&#xff0c;1E10等。其中&#xff0c;1E10是科学计数法的形式&#xff0c;它也就等于1*10^10。小数数据类型&#xff1…

猫头虎 分享已解决Bug || Uncaught (in promise) ReferenceError: proxy is not defined 解决方案

&#x1f42f; 猫头虎 分享已解决Bug || Uncaught (in promise) ReferenceError: proxy is not defined 解决方案 今天猫头虎带您探讨一个开发中常见但让人头疼的错误&#xff1a;Uncaught (in promise) ReferenceError: proxy is not defined。 很多前端开发者在工作中都会遇…

中国书法—孙溟㠭浅析碑帖《爨宝子碑》

中国书法——孙溟㠭浅析碑帖《爨宝子碑》 《爨宝子碑》 全称是《晋故振威将军建宁太守爨宝子之墓》&#xff0c;此碑刻于东晋大亨四年&#xff08;公元405年&#xff09;属楷书体。 《爨宝子碑》 《爨宝子碑》 至清朝乾隆四十三年&#xff08;1778年&#xff09;在云南南宁&…

基于C#+SQL Server2005(WinForm)图书管理系统

图书管理系统 一、 首先把数据库脚本贴出来(数据库名为library) USE [library] GO /****** Object: Table [dbo].[books] Script Date: 06/12/2016 11:27:12 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[books]([bNum] [nvarchar](10…

Σ-Δ模数转换器(ADC)揭秘(2)

5. Maxim的Σ-Δ ADC 新型高度集成Σ-Δ ADC以最少数量的外部元件处理小信号。例如&#xff0c;MAX1402芯片包括众多功能&#xff0c;被作为片上系统(图12)。器件在工作模式下的静态电流低至250A(关断模式下为2A)&#xff0c;480sps速率时的精度为16位&#xff0c;4800sps速率…

英语六级-学习

01 英语分值比例 02听力学习 听力练习&#xff0c;基础好选择标准VOA和BBC。基础差选择VOA慢速。 听力内容包括不受政治争议的内容&#xff0c;社会生活类(奇闻趣事、日常生活)、经济类(商务、职场相关)、环保类、互联网类---------根据各类主题快速找到录音材料中心点。 研…

基于YOLOv8的RTSP视频流实时目标检测与告警系统设计与实现(超详细)

前言 在训练模型完成后&#xff0c;想把模型应用起来&#xff0c;比如模型可以部署到项目中&#xff0c;实时接收RTSP视频流进行识别检测&#xff0c;一旦达到自己所设置的置信度阈值&#xff08;例如大于0.5&#xff09;&#xff0c;系统就会实时把报警信息发送给服务端&…

让银河麒麟桌面操作系统V10(SP1)允许ping测

银河麒麟桌面操作系统V10&#xff08;SP1&#xff09;使用的防火墙是kylin-firewall&#xff0c;默认情况下“公用网络”是禁ping的&#xff0c;如下图&#xff1a; 可以在“安全中心”->“网络保护”->“配置访问规则”->“专网规则”->找到“icmp”这条规则&…

减少代码错误的方法

最重要的是在写之前多举几个刁钻的例子来理解问题和代码的正确性 如果你给不出反例就说明你还没有理解&#xff08;有的反例会后来会被证明是错的&#xff09; 由于递归是把自己的和别人的相关的混合在一起来了&#xff0c;所以举反例的时候要从不同的角度出发。 求割点的&a…

二、电源滤波器

电源滤波器 1、电源滤波的过程分析! 波形形成过程: 2、计算: 滤波电容的容量和耐压值选择。 学习心得

【算法】最长公共子序列(C/C++)

最长公共子序列&#xff08;LCS&#xff0c;Longest Common Subsequence&#xff09;问题简称&#xff08;LCS&#xff09;&#xff0c;是动态规划里面里面的基础算法。它的所解决的问题是&#xff0c;在两个序列中找到一个序列&#xff0c;使得它既是第一个序列的子序列&#…

【计算机网络 - 基础问题】每日 3 题(十三)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏&…

阿里史上最大规模开源发布,超GPT-4o 、Llama-3.1!

今天凌晨&#xff0c;阿里巴巴官宣了史上最大规模的开源发布&#xff0c;推出了基础模型Qwen2.5、专用于编码Qwen2.5-Coder和数学的Qwen2.5-Math。 这三大类模型一共有10多个版本&#xff0c;包括0.5B、1.5B、3B、7B、14B、32B和72B&#xff0c;适用于个人、企业以及移动端、P…

数字化转型的策略与执行路径

企业在明确数字化转型的目标并评估自身数字化能力之后&#xff0c;必须前瞻性地识别出实现这些目标所需的关键数字化能力。基于这些能力&#xff0c;企业应制定出一套数字化转型战略&#xff0c;确立短期和中长期的转型目标&#xff0c;确保数字技术投资带来价值&#xff0c;而…

vulhub搭建漏洞环境docker-compose up -d命令执行报错以及解决方法汇总

在利用vulhub靶场搭建环境进行漏洞复现时&#xff0c;我们通常要使用这一步命令&#xff1a; docker-compose up -d 但是经常报错&#xff0c;今天我们来说几个常见的报错以及解决方法&#xff1a; 1.报错提示&#xff1a; ERROR: Couldnt connect to Docker daemon at httpdoc…

MySQL_图形管理工具简介、下载及安装(超详细)

课 程 推 荐我 的 个 人 主 页&#xff1a;&#x1f449;&#x1f449; 失心疯的个人主页 &#x1f448;&#x1f448;入 门 教 程 推 荐 &#xff1a;&#x1f449;&#x1f449; Python零基础入门教程合集 &#x1f448;&#x1f448;虚 拟 环 境 搭 建 &#xff1a;&#x1…

如何确保Java程序分发后不被篡改?使用JNI对Java程序进行安全校验

前言 众所周知&#xff0c;Java/Kotlin编译后会编译成smali&#xff0c;使用Jadx这类的反编译工具或者Hook工具就能很轻松的把我们的软件安全校验给破解了。 为了防止这种情况发生&#xff0c;我们一般会将核心代码使用C编写&#xff0c;然后使用JNI技术&#xff0c;使用Java…