一文读懂存内计算与近存计算的分类与应用

news2024/11/17 23:53:59

 

存内计算与近存计算-基础理论及分类

 eaf156b7d66d156d948542034911a98f.jpeg 

 技术基础知识和分类

"近存计算"与"存内计算"易混淆,本章明晰其分类,并比较各内存驱动方法的独特优势。可计算存储器设备可作分立加速器或替代现有存储模块。我们深入剖析每种方法的利弊,为您揭示近内存计算领域的无限可能。

1.1 存内VS近存

本节深入解析内存内与近内存计算方法的多元分类。尽管二者界限模糊,但均广泛适用于各类场景,如内存数据库。本书聚焦前期研究,这些研究革新了计算内存架构、计算方案、数据访问模式及数据处理与内存的接近度。我们的分类(见图2.1)借鉴了[13]的洞见,依据计算结果产生位置进行精准划分,为您呈现最前沿的技术视角。

98734b3879aa00d22a14c9ddec6214f6.jpeg

图2.1:内存内与近内存计算分类,计算核心位于黄色模块。包含SA(检测放大器)、DR(字线驱动器)、WL(字线)和BL(位线)组件。

1.1.1 存储器中的处理和近存储器计算 

打破内存墙,提升内存中心架构性能,是业界长期追求。自20世纪90年代起,PIM技术成为突破冯·诺依曼架构内存带宽限制的热门研究焦点。其核心理念在于将计算单元直接嵌入主存储器(DRAM)中,实现计算与存储的物理融合。这一经典PIM方法将在后文深入解读,展现其革新潜力。

传统PIM方法在DRAM芯片集成中遭遇重大挑战。但自2010年代起,商用3D堆叠存储器重燃PIM研究热情。美光HMC通过DRAM层下集成逻辑层,有望实现逻辑层内的自定义逻辑,引领PIM新纪元。第3.2节深入探讨3D堆栈存储器背景下的PIM革新。

PIM现称近内存计算,区别于内存计算——一种内存为中心的新计算范式。近内存架构与冯诺依曼架构的显著差异如下,为您详细解析。

计算逻辑靠近存储器布局,通过高带宽电路集成技术(如2.5D和3D集成),最大化利用内部存储器的高访问带宽,实现高效数据处理。

2.5D集成电路采用硅中介层或有机中介层来连接存储器芯片和逻辑芯片,与印刷电路板(PCB)上的传统引线键合相比,能够实现高布线密度和功率效率。3D 集成使用硅通孔 (TSV) 和微凸块等层间连接技术来堆叠 DRAM 层。两者都有助于提供大的内部存储器带宽和技术友好性,因为逻辑芯片可以使用针对逻辑优化的不同工艺技术,从而促进堆叠存储器中的 PIM。此外,访问存储单元的基本架构和协议没有改变。因此,它节省了构建全新存储设备的巨大设计成本。由于这些原因,一些近内存计算设备已经投入商业使用

可以为PIM 实现通用内核以提供灵活的处理。

但事实并非如此,原因如下。

众多命令式编程应用通过利用时空局部性从缓存结构中获益显著,但PIM鲜有此类结构。然而,PIM的宽内存带宽为那些能展现并行性或需求大带宽的应用提供了巨大优势。

• 对于通用内核来说,散热要求通常具有挑战性。

1.1.2 内存计算 

内存计算,秉承PIM与近内存计算精髓,革新计算范式。它深度融合存储器单元、阵列与外围电路,实现高效计算。为实现这一目标,常需对结构进行定制修改或附加专属电路,以支持计算的顺利进行。

内存计算曾被视为经济不可行的设计,因其修改存储器单元需高额再投资成本,且当前架构已深度优化。修改后单元设计会降低密度,使内存中心架构在性能与面积(或成本)权衡上难以自证合理。然而,随着技术进步,内存计算潜力日益显现,值得我们进一步探索与优化。

随着非易失性存储器(NVM)的出现,内存计算的概念被重新审视。某些NVM 具有在模拟域中执行计算所需的物理特性,只需对内存阵列进行最小的设计更改即可实现内存计算。此外,存储单元的非易失性特性解决了 DRAM 单元的破坏性读取访问问题,这迫使 DRAM 内计算在计算之前执行复制。另一方面,模拟领域的内存计算仍然是一种推测性技术。例如,由于工艺变化和扩展的电流路径而存在的非理想性可能会损害计算结果。此外,随着模拟信号转换处理更多位数,数模转换 (DAC) 和模数转换 (ADC) 成本将变得令人望而却步。

研究团队深入探讨了SRAM、DRAM和NAND闪存等主流内存基底的内存计算。他们不仅成功应对了挑战,还巧妙利用了这些存储器的成熟技术。针对提高可靠性,部分研究聚焦于NVM中的数字化计算。后续章节将逐一揭示DRAM、SRAM和NVM在内存计算中的前沿应用,敬请期待第3、4、5章的详细介绍。

内存计算方法可以进一步细分为两类:内存(数组)和内存(外围)。

• 内存中(阵列)或IM-A使用特殊的计算操作(例如,MAGIC [17] 和Imply [18],第5 章中解释)进行计算,在内存阵列内产生计算结果。 IM-A 架构可以提供最大的带宽和能源效率,因为操作发生在内存阵列内部。 IM-A还可以为简单的操作提供最大的吞吐量。另一方面,复杂的功能可能会导致高延迟。

此外,IM-A 通常需要为此类特殊计算操作重新设计存储单元,扩展正常的位线和字线结构。由于单元和阵列的设计和布局针对特定电压和电流进行了大量优化,因此单元和阵列访问方法的任何变化都会导致大量的重新设计和表征工作。此外,有时需要修改外围电路(即执行读取和写入操作所需的逻辑电路,例如字线驱动器和感测放大器)以支持IM-A计算。因此,IM-A包括(a)存储器阵列发生较大变化的IM-A,以及(b)存储器阵列发生较大变化且外围电路发生较小变化的IM-A。

• 内存中(外围)或IM-P在外围电路内产生计算结果。 IM-P 可以进一步分为数字 IM-P 方法(仅处理数字信号)和模拟 IM-P 或 IM-P(模拟)方法(在模拟域中执行计算)。修改后的外围电路可实现超出正常读/写范围的操作,例如与不同单元交互或加权读取电压。此类修改包括支持字线驱动器中的多行激活以及用于多级激活和感测的 DAC/ADC。

它们设计用于从逻辑运算到算术运算(例如向量矩阵乘法中的点积)的计算。虽然结果是在外围电路中产生的,但存储器阵列执行大量的计算。外围电路的改变可能需要与传统存储器中使用的阵列不同的电流/电压。因此,为了稳健性,IM-P 可能会使用稍微不同的单元设计。用于支持复杂功能的外围设备的附加电路可能会导致高成本。

表2.1:对比传统冯诺依曼架构与近内存计算(NM)、IM-A及IM-P(数字/模拟)架构,揭示性能差异。

4caa091cbac1e6181688dc7d88805df4.jpeg

1.1.3 内存计算和近内存计算的比较 

单元与外围电路优化:基线及NM架构沿用原存储系统,无需改动。IM-P特化计算操作,仅需调整外围电路;IM-A或需单元优化以满足特定需求。

•密度:由于存储器阵列经过深度优化,因此当按原样使用存储器阵列宏时,单元密度最高。重要的是,当使用逻辑友好的存储器基板(例如,SRAM、eDRAM)或先进的集成技术(例如3D堆叠)时,整体密度(阵列+外设)对片上逻辑不太敏感。一些经典的 NM 架构使用 DRAM 处理技术在同一 DRAM 芯片中实现逻辑。

这样的设计可以显着降低整体存储器密度。 IM-P 可能面临与 NM 相同的问题,但通常需要比 NM 更小的更改量。这是因为大部分计算发生在存储器阵列中,需要在外设中添加较少的内容来实现与 NM 相同的处理元件;因此,密度受到的影响较小。 IM-P(模拟)具有更高的单元存储密度,但如果需要 ADC,则通常会以更大的外设面积需求为代价。

内存与计算单元间距影响带宽:远离时带宽减少,计算单元需广泛并行性满足大带宽需求,计算带宽与存储器带宽紧密相关。

区域分为两类:一是执行算术运算(如加法)的逻辑区域,二是用于逻辑实现的管芯区域。Baseline和NM需标准逻辑面积,但提供大芯片面积和灵活逻辑实现。IM则通过内存阵列实现计算,减少逻辑面积需求,但芯片面积受限。精准设计,满足不同逻辑与面积需求。

数据流灵活性至关重要,尤其对于非统一内存访问的应用程序,如随机和间接访问。NM与IM虽能访问内存地址的特定区域,但远程访问会引发内存节点或阵列间的高成本全面通信。因此,计算单元需全局访问存储器内容,以支持不规则数据访问需求。

逻辑灵活性受限于面积预算。IM-A单元仅有几颗额外二极管,而IM-P位线则配置数十个门。IM通过基本操作组合或外部处理单元增强功能,展现卓越的逻辑适应性。

IM受限于逻辑复杂度,常采用迭代运算执行算术操作,造成显著计算延迟。然而,其出色的计算带宽有效弥补了这一延迟,确保性能稳定。

精度与灵活性:基线和NM架构支持全精度算术逻辑,涵盖浮点运算。数字IM方法融合多位运算实现任意精度逻辑,属于IM-P(模拟)范畴,其位精度卓越。尽管模拟计算受限于电路因素(如电容、ADC分辨率),但可通过结果组合实现任意整数精度。然而,向浮点精度扩展仍具挑战。

•可靠性和ECC 支持:存储器容易受到各种错误源的影响,例如硬错误(例如,单元故障)和软错误(例如,由于宇宙辐射导致的位翻转)。内存使用纠错码 (ECC) 来保护自己免受此类错误的影响,但我们在 ECC 方面的工作很少与内存计算兼容。此外,模拟域中的计算会导致模拟噪声的增加。

一些模拟 IM-P 架构使用每个单元少量的位数来增加噪声容限,或者使用激进(容易出错)的单元配置来实现容错工作负载,例如机器学习,可以训练模型来容忍这种情况。错误和噪音。

内存/近内存计算展现出独特权衡优势。后续章节将详述各类架构代表作,探讨其并行性应用、适配场景,以及编程与执行模型如何高效利用并行计算力,引领未来计算新趋势。

1.2 离散加速器对比集成的内存层次

以内存为核心的架构将内存与计算功能融合,NM或IM内存模块既可设计为独立加速器,也可集成于现有内存层次结构中,如图2.2,实现内存与计算的高效融合。

289484ffc4dd8cef36dbd2e54d708dc8.jpeg 

图2.2展示了三种系统配置:(a)基线系统,(b)配备离散加速器的系统,(c)内存层次结构中集成加速器的系统。

离散加速器可以不受限制地完全访问其存储空间,类似于暂存器存储器。离散内存空间将加速器与操作系统分页策略、一致性协议、数据加扰和地址加扰解耦。它还提供了灵活数据排列的控制。特别是,大多数IM 架构需要在特定数组的特定列内对齐操作数或转置输入以按位串行方式对其进行处理。离散加速器可以支持这些特定于架构的数据布局,而不需要太复杂。

用户界面可以作为与其驱动程序链接的库函数调用来提供,类似于 ASIC 加速器。分立加速器的重要缺点之一是它们仍然需要通过 PCIe 等外部链路从内存层次结构加载数据,这很可能成为瓶颈。这个问题在商用加速器中也同样存在:GPU 通过 PCIe 总线将数据复制到主机内存或从主机内存复制数据需要花费大量时间。该数据加载成本可以通过随着时间的推移重复使用数据来摊销。因此,能够实现高性能的应用程序通常仅限于那些每字节呈现高重用或高 GOP(千兆操作)的应用程序。

集成加速器非常适合绕过内存墙。然而,内存层次结构每一层中的许多现有方案和约束都是为了访问性能和安全性而实现的,这使得设计成熟的集成NM/IM 系统具有挑战性。例如,为了在计算之前对齐 SRAM 子阵列中的操作数,为它们分配足够的地址是不够的;它们需要以特定的方式关联起来。 DRAM使用各种加扰技术,并且获取操作数访问的虚拟地址也需要通过操作系统的页表。 NAND闪存使用闪存翻译层(FTL),它增加了另一层地址转换并封装在闪存设备中。许多 NVM 的写入耐久性有限,这些转换层有助于磨损均衡。对它们的干扰最终会缩短存储单元的寿命。一个集成的系统需要与这些现有的框架相处,包括操作系统和编程模型,但我们还没有一个完整的解决方案。

分立与集成加速器并非互斥。我们推荐采用混合策略,如在现有内存层次结构中创建暂存器内存,虽需从同级或下级存储器复制数据,但相较于PCIe共享总线,其带宽更高。此外,驱动程序能灵活释放暂存器内存,转为标准内存空间使用,显著提升效率。

 

-对此,您有什么看法见解?-

-欢迎在评论区留言探讨和分享。-

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

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

相关文章

SOFA-RPC学习记录

文章目录 需求分析模块划分微服务模块交互模块 可拓展架构插件机制 功能分析交互模块 学习微服务模块交互模块 dubbo与nacos集成学习Nacos配置中心实战 dubbo与apollo集成学习配置中心组件与k8s的抉择参考资料 结论 本报告旨在深入学习SOFA-RPC框架,特别是其动态配置…

深入解析芯片背后的技术:揭开半导体产业的神秘面纱

引言: 在这个数字化、信息化的时代,芯片已经成为了现代科技发展的重要基石。从智能手机、电脑到汽车、物联网设备,芯片无处不在。然而,对于大多数人来说,芯片背后的技术仍然是一个神秘而遥不可及的领域。本文将深入解…

双指针练习:快乐数

1.题目链接:202.快乐数 2.题目描述: 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无…

vue2+antv/x6实现er图

效果图 安装依赖 npm install antv/x6 --save 我目前的项目安装的版本是antv/x6 2.18.1 人狠话不多&#xff0c;直接上代码 <template><div class"er-graph-container"><!-- 画布容器 --><div ref"graphContainerRef" id"gr…

先导微型数控桌面式加工中心

随着数控技术、传感器技术、人工智能等技术的不断发展&#xff0c;制造业的快速发展和技术的不断进步&#xff0c;小型五轴加工中心的性能将不断提升&#xff0c;五轴联动技术作为解决异性复杂零件高效优质加工问题的重要手段&#xff0c;使其具有更广泛的应用前景。小型五轴加…

企业微信接入系列-上传临时素材

企业微信接入系列-上传临时素材 文档介绍上传临时素材写在最后 文档介绍 创建企业群发的文档地址&#xff1a;https://developer.work.weixin.qq.com/document/path/92135&#xff0c;在创建企业群发消息或者群发群消息接口中涉及到上传临时素材的操作&#xff0c;具体文档地址…

【二进制部署k8s-1.29.4】七、验证master的安装

文章目录 简介 一.确认kubectl命令是否正常运行二.确认etcd安装是否正常运行三.确认kube-apiserver,kube-controller-manager,kube-scheduler安装是否正常四.配置apiserver和kubelet的访问授权五.master端安装脚本4.1.安装master端所需文件4.2.master快捷安装脚本 简介 本章节主…

北邮22级信通院DSP:IIR_DF系统3.0版:从H(p)到H(s):一种更为严谨精确的运算模式

北邮22信通一枚~ 跟随课程进度更新北邮信通院DSP的笔记、代码和文章&#xff0c;欢迎关注~ 获取更多文章&#xff0c;请访问专栏&#xff1a; 北邮22级信通院DSP_青山入墨雨如画的博客-CSDN博客 承接上一篇博客 北邮22级信通院DSP&#xff1a;IIR_DF系统2.0版&#xff1a;…

深入pandas:数据分析

目录 前言 第一点&#xff1a;导入模块 第二点&#xff1a;准备数据 第三点&#xff1a;简单的分析数据 第四点&#xff1a;【重点】数据透支 总结 前言 在数据分析与挖掘的领域&#xff0c;了解如何使用工具和方法来探索数据是至关重要的。本文将探讨如何利用Python中的…

洛谷P1035 级数求和 题解

#题外话&#xff08;第42篇题解&#xff09; #先看题目 题目链接https://www.luogu.com.cn/problem/P1035#思路 没啥思路&#xff0c;这其实偏向模拟一点&#xff0c;按照题目说的做就行了。 #代码 原来是这个熊样的&#xff08;都能AC&#xff0c;优化的问题&#xff09; …

营造科技展厅主题氛围,多媒体应用有哪些新策略?

长久以来&#xff0c;展厅作为线下向公众传递信息的窗口&#xff0c;其设计风格与内容主题紧密相连&#xff0c;展现出千姿百态的面貌。然而&#xff0c;随着数字多媒体技术的日新月异&#xff0c;展厅不再仅仅是传统的信息展示平台&#xff0c;而是成为了引领内容展示潮流的风…

521源码-源码下载-个人网盘源码2024最新web网盘系统源码一键安装版源码分享

主要功能&#xff1a; 1.支持用户管理系统。支持用户注册功能&#xff08;后台可关闭&#xff09;&#xff0c;管理可为每个用户分配一定数额的存储空间&#xff0c;还可以限制单个上传文件大小。 2.支持管理员查看每个会员的文件上传、分享情况&#xff0c;可对用户文件进行删…

mac电脑鼠标键盘共享软件:ShareMouse for Mac 激活版

ShareMouse 是一款跨平台的键盘和鼠标共享软件&#xff0c;它允许用户在多台计算机之间共享同一组键盘和鼠标&#xff0c;实现无缝的操作和控制。该软件适用于 Windows 和 macOS 系统&#xff0c;并且支持多种连接方式&#xff0c;包括局域网连接和无线连接。 使用 ShareMouse&…

Proteus 安装报错There is a problem with this Windows lnstaller package

Proteus 安装常见问题 1.安装秘钥(许可证)的时候报错 报错信息如下所示&#xff1a; There is a problem with this Windows lnstaller package. A program required for this instalt to compiete coutd notbe run,contact your support personnet or packagevendor. 这个是…

【Linux 网络】网络基础(三)(其他重要协议或技术:DNS、ICMP、NAT)

一、DNS&#xff08;Domain Name System&#xff09; DNS 是一整套从域名映射到 IP 的系统。 1、DNS 背景 TCP/IP 中使用 IP 地址和端口号来确定网络上的一台主机的一个程序&#xff0c;但是 IP 地址不方便记忆。于是人们发明了一种叫主机名的东西&#xff0c;是一个字符串&…

【Python系列】Python 元组(Tuple)详解

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

纯js仿淘宝多图片封面图插件模板/带视频,带放大镜,带前后端完整代码PHP

功能预览,他依赖jq插件,请自已引入 类似这样 <script type"text/javascript" src"/Application/Admin/Static/js/jquery-2.0.3.min.js"></script>一,前端模板代码 <!--多图功能--><style> charset "utf-8"; .wrap_imgs…

android手机安装tfcenter软件(使用termux非root模式)

1、下载termux app软件并安装 Termux官方地址&#xff1a; Termux | The main termux site and help pages. 2、打开Termux并下载tfcenter install.sh脚本 执行curl命令&#xff1a; curl -sS http://47.122.18.150:10000/install.sh -o install.sh 3、通过install.sh 输入…

AdroitFisherman模块测试日志(2024/5/28)

测试内容 测试AdroitFisherman分发包中Base64Util模块。 测试用具 Django5.0.3框架&#xff0c;AdroitFisherman0.0.29 项目结构 路由设置 总路由 from django.contrib import admin from django.urls import path,include from Base64Util import urls urlpatterns [path…

【惯性传感器imu】—— WHEELTEC的惯导模块的imu的驱动安装配置和运行

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、IMU驱动安装1. 安装依赖2. 源码的下载3. 编译源码(1) 配置固定串口设备(2) 修改luanch文件(3) 编译 二、启动IMU1. 运行imu2. 查看imu数据 总结 前言 WHEE…