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

 

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

 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共享总线,其带宽更高。此外,驱动程序能灵活释放暂存器内存,转为标准内存空间使用,显著提升效率。

 

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

像艺术家一样工作

接下来开始翻译这本小册子 豆瓣评分还是挺高的,目前在国内没有看到有在售的翻译版本 书名直译的话是:像艺术家一样去偷 作者可能是为了制造营销话题,所以起了这么一个名字 但是偷这个词总归不太体面,所以我把书名翻译为&#…

Qos令牌桶算法:笔记0601

令牌桶 令牌:目前看到2种表述,csdn表示一个令牌代表一个字节,51cto是一个令牌代表一个bit。51cto上关于cisco qos算法描述多表达为一个令牌一个bit (不知道rfc上咋表达的懒得去查了,主打一个好读书不求甚解,感觉应该是…

c++学习----初识类和对象(上)

1.面向过程和面向对象初步认识 C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。 C是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完 成。…

rtl8723DU移植 android4.4 4418

一、 linux 的移植。 首先编译一遍确保没有问题。 将驱动拷贝到 driver/net/wireless 目录下。 使用的是: 改写 makefile Kconfig 去改写 8723 的makefile 设置menuconfig 使能固有的 库。 使能USB部分 ieee 部分 编译一遍 有报错。 解决: …

基于深度学习YOLOv8\YOLOv5的花卉识别鲜花识别检测分类系统设计

本文将介绍基于深度学习YOLOv8\YOLOv5PySide6SQLite的花卉检测与识别系统,该系统基于YOLOv8算法,并与YOLOv5版本进行比较,该系统不仅实现了对花卉的精准识别和分类,还提供了包括用户认证管理、模型快速切换及界面个性化定制在内的…

ssm汉服文化平台网站

博主介绍:✌程序员徐师兄、8年大厂程序员经历。全网粉丝15w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

【TB作品】msp430f5529单片机墨水屏,口袋板,tmp421温度,温控风扇

文章目录 一、扬声器模块介绍二、驱动介绍三、程序介绍四、全部代码下载 msp430f5529d单片机墨水屏,口袋板,tmp421温度,温控风扇 基本要求:高于20度开转,温度越高转速越快,高于40度风扇停转,温…

Day45 动态规划part05

LC1049最后一块石头重量II(未掌握) 未掌握分析:其实本题跟LC416分割等和子集类似,本质上题目的要求是尽量让石头分成重量相同的两堆,相撞之后剩下的石头最小,也就是01背包问题weight和value都是stones数组,题目可以看…

Java的JDK环境变量配置(Windows)

只写了需要配置的环境变量 注:从JDK1.5开始,配置Java环境变量时,不再需要配置CLASSPATH,只需要配置JAVA_HOME和Path 1、配置JAVA_HOME 找到自己的JDK位置,我这里是 C:\dev\java\jdk-17.0.119在环境变量-系统变量中&…

【已解决】Error in the HTTP2 framing layer

1.问题描述 在使用git将代码上传github的时候在最后一部push的时候遇到这个fatal 2.解决方案 由于我原先设置的origin是http协议下的,如下 git remote add origin https://github.com/Charlesbibi/Simple_Cloud.githttp协议下行不通不妨试一试ssh协议下&#xff…

代码随想录算法训练营 day23| ● 669. 修剪二叉搜索树 ● 108.将有序数组转换为二叉搜索树 ● 538.把二叉搜索树转换为累加树

文章目录 前言669. 修剪二叉搜索树思路方法一 递归法方法二 迭代法 108.将有序数组转换为二叉搜索树思路方法一 递归法方法二 迭代法 538.把二叉搜索树转换为累加树思路方法一方法二 总结 前言 迭代法都没看主要是669和538【538很简单】 669. 修剪二叉搜索树 思路 不用看教程…

stack学习

std::stack 类是一种容器适配器,它给予程序员栈的功能——特别是 FILO(先进后出)数据结构。该类模板用处为底层容器的包装器——只提供特定函数集合。栈从被称作栈顶的容器尾部推弹元素。 operator 赋值给容器适配器 (公开成员函数) 元素访问…

C#开发的应用升级更新服务器端工具 - 开源研究系列文章 - 个人小作品

笔者开发过一些小应用,然后这些应用就需要有升级更新的功能,但是如果每个都集成进去也行,但是就是得写死更新的代码了。于是就想写一个应用升级更新的管理器,以前看到过Github上有一个AutoUpdate.Net,不过它那个要集成…

openssl 常用命令demo

RSA Private Key的结构(ASN.1) RSAPrivateKey :: SEQUENCE { version Version, modulus INTEGER, -- n publicExponent INTEGER, -- e privateExponent INTEGER, -- d prime1 INTEGER, -- …

Redis缓存(笔记一:缓存介绍和数据库启动)

目录 1、NoSQL数据库简介 2、Redis介绍 3、Redis(win系统、linux系统中操作) 3.1 win版本Redis启动 3.2 linux版本Redis启动 1、NoSQL数据库简介 技术的分类:(发展史) 1、解决功能性的问题:Java、Jsp、RDBMS、Tomcat、HTML、…

FreeRTOS任务调度机制(源码讲解)

任务的调度机制(核心是链表)!!! 使用链表来管理任务 在我前面写的FreeRTOS任务(深入到源码进行分析),我创建了三个任务,他们的优先级都是一样的,所以他们在FreeRTOS中是轮流执行的,实际上&…

【Python从入门到进阶】56、Mysql防止SQL注入及ORM库简化操作

接上篇《55、使用Python轻松操作Mysql数据库》 上一篇我们讲解了Mysql的基本链接和增删改查,本篇我们来介绍链接Mysql时参数化查询与防止SQL注入以及使用ORM(对象关系映射)库简化操作的内容。 一、参数化查询与防止SQL注入 在数据库操作中&…

Anaconda 出现HTTP000报错的解决方法

在使用Anaconda 安装python的时候遇到这个错误 chenchen-Standard-PC-i440FX-PIIX-1996:~$ conda create -n sdwebui python3.10.9Solving environment: failedCondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://repo.anaconda.com/pkgs/r/noarch/repodata.jso…

如何跨渠道分析销售数据 - 6年软件销售经验小结

如何跨渠道分析销售数据 - 6年软件销售经验小结&#xff08;1&#xff09; 【前言】 在我过去6年销售工作生涯中&#xff0c;从第一年成为公司销冠后&#xff0c;我当时的确自满的一段时间&#xff0c;认为自己很了不起。但是第一年的销售业绩并没有拿到提成&#xff0c;最终…

架构设计之安全性属性深度剖析:从理论到实践的完美融合

文章目录 引言一、安全性属性的理论探讨1.1 定义说明1.2 安全原则1.3 安全模型1.4 安全机制 二、安全性属性的实践应用2.1 安全风险评估2.2 架构设计中的安全考虑2.3 技术手段和工具2.4 团队协作与沟通2.5 安全政策和流程2.6 合规性和标准2.7 持续监控和改进 三、理论与实践的融…