在过去的几十年中,在摩尔定律的驱动下,处理器的性能得到了显着改善。但是,传统的计算体系结构分开数据处理和存储,并且随着以数据为中心的计算(例如机器学习)的开发,在这两个物理分离的单元之间传输数据的成本越来越高,在整体延迟和能源消耗中占主导地位。
专用处理器的能源效率
同时,尽管传统的逻辑门具有多功能性和稳健性,但它们的计算效率效率低下,并且在执行算术计算(例如乘法,添加和非线性功能)时,它们需要大量资源才能消耗。此外,通过在基础硬件级别构建多个内核来改善计算并行性也需要大量资源。
传统的计算硬件基于von Neumann架构,处理和内存分离,数据需要在两者之间来回穿梭。在处理机器学习任务时,这是效率低下的,限制了计算速度和浪费能力。神经形态计算有各种形式,是可能的解决方案。例如,由IBM研究所研究人员设计的最新芯片受到大脑的启发,该芯片将内存和处理组件融合在一起,而无需访问芯片内记忆。该芯片被称为Northpole,可以以更快的速度执行图像识别任务,而能量消耗较低。
也可以分类为神经形态计算的另一种方法是店内计算。在这里,计算任务将转移到存储单元存储的内存单元。迄今为止,已经开发了一系列复杂的内存计算技术来克服von Neumann瓶颈,并不断提高计算吞吐量和能源效率。
内存计算(CIM)技术是解决摩尔定律瓶颈的潜在解决方案之一。
CIM与“内存计算”和内存处理密切相关,其子字段有时称为内存逻辑。 CIM的基本思想是将数据计算移至存储数据的内存单元,从而实现原位计算,消除带宽限制和数据移动成本。
它通常使用物理定律(例如Kirchoff的当前定律),并在内存数组中收取共享来执行仿真计算以创建有效的计算原始图,包括逻辑门和产品(MAC)操作。此外,交点随机访问存储器(RAM)体系结构允许自然粉丝,从而促进了大规模的计算并行性。
这些优势催生了各种CIM研究方向,目的是改善后月时代的计算机性能并为人工智能(AI)等应用构建计算加速器。
CIM研究涵盖了从基本电子产品到高级体系结构和大型系统的所有级别,可提供新兴的电阻内存或基于成熟的硅内存。尽管有同名,但CIM技术的基本原理却大不相同,具体取决于存储单元的全部或部分输入操作数是在计算后的存储单元就位存储在存储单元中是否就地存储的,输入/输出数据是挥发性的还是非挥发性的,是否是volaitile的,以及在实现这些差异的情况下,该差异都在构成一定的差异。
计算原始和CIM的基本组件。 a)von Neumann架构和CIM体系结构中计算原始的Ouroboros模型。在von Neumann计算机中,计算路线从基本逻辑门开始,并提供算术操作以支持算法,例如人工神经网络。所有这些计算都在处理器中执行,该处理器与整个内存层次结构进行通信以运行完整的程序。在当今的CIM提案中,计算通常基于内存中的物理MAC操作,使用物理定律执行乘法和求和。物理MAC可以轻松地在存储器阵列中以用于向量和矩阵操作的内存阵列,这反过来奠定了ANN的基础。 b)CIM架构,包括内存阵列图集,输入/输出(I/O)缓冲区和控制器。 c)包括VM和NVM在内的内存技术,所有这些都可以在相交体系结构中实现CIM
Mac是计算机计算的基本操作,其与基本布尔逻辑门的关系如图所示。在von Neumann计算机中,所有操作都依赖于功能完整的逻辑门,这些逻辑门由互补的金属氧化物半导体(CMOS)晶体管组成。逻辑门用于构建算术计算的处理核心,其中最重要的是MAC操作。由于矩阵代数的常规形式,可以通过顺序处理或多核并行化将标量MAC操作扩展到向量/矩阵操作。
最后,矩阵代数设定了许多算法的基石,其中Ann(和深度学习)是当今最受欢迎的算法。至于CIM,其概念始于嵌入式电路物理的MAC操作。它通过基于ANN的阈值逻辑的概念为逻辑门奠定了基础,ANN是通过向量操作实现的。平行MAC或逻辑门都可以沿记忆阵列中的列执行,尽管前者是后者的基础。在这种方法中,并行MAC和复合逻辑门都用于执行矩阵计算,例如神经网络。
与CMOS逻辑门相比,CIM逻辑门的优势在于,它们可以将计算纳入内存阵列和相交RAM体系结构提供的大规模计算并行性。由于CIM逻辑门依赖于物理定律的模拟计算,因此可以在一个操作中完成任何线性可分离的逻辑函数。因此,可以通过减少操作数量和降低硬件成本来轻松实现复杂的逻辑功能。
可以将全能的CIM技术抽象到方程式z=x昆中,其中符号表示逻辑门或点乘法操作。对于点乘法,x和y分别表示权重向量和输入向量,z是标量输出。对于逻辑门,X和Y是两个输入操作数,Z是逻辑输出。
根据存储器单元是否提供X和Y,以及输出Z是否在计算结束时重新存储在存储单元中,CIM分为六个类别:XYZ-CIM,XZ-CIM,Z-CIM,Z-CIM,XY-CIM,XY-CIM,X-CIM,X-CIM和O-CIM。
全面的CIM技术。每种类型的CIM都表示候选记忆,计算原语和主要应用。该频谱是基于抽象的并行MAC(点乘积)和逻辑门建立的,其中X和Y可以是标量或向量,Z是标量,并且?是代表CIM操作的符号。所有CIM技术均分为六种类型,从内存到不在内存中,每种类型都有几种NVM和/或VM类型,然后将其用于一般或特定的应用程序。
1)xyz-cim
X和Y均由数组中的存储单元提供,并且输出Z被重新存储在一个存储单元中。该计算取决于X和Y的隐式读数,从而修改BL势并最终重写输出单元。 XYZ-CIM是一种典型的布尔逻辑操作,已通过单元非挥发性RRAM,PCM,MRAM和挥发性DRAM实现。
2)xz-cim
在计算过程中,只有一个输入操作数位于内存单元中。另一个输入是由外部施加的电压编码的,并且输出z在计算结束时被重新存储为单元状态。 XZ-CIM仅适用于基于NVM的逻辑操作,典型的记忆技术包括RRAM和MRAM。
3)Z-CIM
仅输出z存储在存储单元中,并且输入由BL和WL提供。考虑到BL和WL电压的所有可能组合,由此产生的单位单元格状态形成逻辑门。 Z-CIM已在RRAM,MRAM和PCM等NVM上实施。
4)xy-cim
输入操作数X和Y均由存储单元提供,而输出Z则由BL Sense放大器(SA)获得。它也适用于逻辑操作,并且内存技术可以是电阻NVM或SRAM。它通过并行读取两个单位存储单元并传感,并分散读数结果将结果读取为二进制输出,从而起作用。
5)X-CIM
仅内存单元沿阵列中的列提供了输入X,Y由施加到WL的外部电压表示,并获得了BL的外围Z。与上述类型的CIM不同,X-CIM通常旨在以高度平行的方式执行两个向量的点乘法。所有内存技术,包括单位或多位NVM和单位VM,都实施了X-CIM,这为进一步鼓励其研究提供了积极的反馈。
6)O-CIM
这里的存储单元之间没有相互作用,但是传统的逻辑门或计算模块位于存储器单元附近或数组以进行计算。 O-CIM通常是使用成熟的记忆技术设计的,包括SRAM和DRAM。它类似于近乎内存计算的早期概念,但其进步是进一步缩短内存与处理器之间的距离。
除O-CIM外,所有其他CIM类型都依赖于模拟乘法,添加和电路中物理定律的非线性激活。通过组合前两个操作,您可以获取并行MAC操作的点乘法,并结合所有三个操作,可以获得布尔逻辑门。
XYZ-CIM,XZ-CIM和Z-CIM的共同点是将输出Z原位存储在存储单元中。他们都使用新兴的NVM进行逻辑操作。由于新兴的NVM通常是基于电阻器的内存,因此可以将其视为一般的两端电阻开关(RS)设备。通常,当设备上的电压足够大以具有正极性和负极性时,它将通过“设置”切换到高电导率状态(HCS)或通过“重置”到低电导率状态(LCS)。
此描述适用于RRAM,MRAM和FTJ。由于CIMS通常仅使用一个开关极性,因此该模型也可以包含单极切换PCM。两个电导状态编码二进制1和0,与传统内存应用相同。对于逻辑门,计算取决于设备的条件开关,该开关是其他设备状态和施加电压的函数。该非线性特征可以视为ANN中的激活函数。
因此,任何基于RS的NVM设备都有可能用于这三种类型的CIM。
XYZ-CIM,XZ-CIM和Z-CIM。 a)电阻内存设备及其RS行为的示意图; b)XYZ-CIM的状态IMP逻辑; c)xyz-cim的sfnn; d)DRAM位方向逻辑; e)XZ-CIM的逻辑操作; f)Z-CIM的逻辑操作
1)XYZ-CIM:NVM状态逻辑
在XYZ-CIM提案中,一种突出的方法是基于使用NVM设备(通常是RRAM)的所谓状态逻辑。 IMP门最初是针对状态逻辑操作提出的,其中一个RRAM单元格的电导状态编码输入操作数X,而另一个单元格代表操作前后的输入Y和输出Z。电阻的电导值大约在LCS和HCS的对数值之间设置。
VP(例如,VW/2)和大众分别应用于两个WL之一,其中大众大众足够大以实现设定的转换,而VP则不是,而BL电阻器则接地。激活后,根据IMP函数确定单位y的最终状态,即输出z。具体而言,如果Y单元最初位于HCS(1)中,则施加的电压极性不会触发开关。如果y最初在LCS(0)中,则其开关取决于x:如果x在LCS中,则由于两个LCS设备的隔离,BL势将接近0。
因此,设备Y上的电压降足以将其切换为HCS。但是,如果x位于HC中,VP将大大提高BL电位,从而阻止Y的切换。
2)XYZ-CIM:DRAM位方向逻辑
DRAM位至逻辑是另一个重要的XYZ-CIM提案,它依赖于计算过程中锁存的SA同步重写。商业DRAM产品只能通过少量修改甚至没有修改来实现此功能。
图(d)显示了由三个DRAM单元组成的柱,在BL的末端具有闩锁SA。 SA是由两个CMOS逆变器组成的双态电路,形成一个正反馈回路。连接到BL的端子既是输入节点,又是输出节点,通过该节点检测并修改了BL电压。当BL电压高(或低于)VDD/2时,SA会迅速反应并稳定输出在VDD(OR 0)。在逻辑操作中,同时激活多条线。因此,电路自然会执行三个输入单元的大多数逻辑函数,最终将在所有三个单元中调整逻辑结果。
第一步是将BL预学到VDD/2以实现位方向逻辑。然后,与VDD同时激活三个WL,而SA尚未激活。所有DRAM电容器(电容器CC)和寄生BL电容器(电容器CB)共有DRAM细胞X,Y和Q中存储的电荷,从而使BL潜力达到VDD/2。
大多数逻辑函数都是线性可分离的,并且DRAM电路可以被视为单层感知器,类似于SFNN。在此模型中,输入是存储的电压级别,网络权重由电容器给出,非线性激活神经元被闩锁的SA激活,其阈值为VDD/2。在大多数门的基础上,更复杂的功能(例如完整加法器)可以轻松实现。为了实现一组完整的逻辑门,可以使用SA中的互补位设计Not Gate,并通过另一个选择晶体管将互补位写入双接触单元。与保留所有输入的SFNN不同,DRAM位逻辑对逻辑输入具有破坏性。为了解决这个问题,可以在逻辑操作的阵列中专门设计三行。
4)XZ-CIM
XZ-CIM还依赖于NVM设备(例如RRAM和MRAM)的条件切换。状态逻辑以两个输入存储单元的电导状态为条件,而用于调整的两个输入分别表示为电导状态和电压。
这种编码方法为构建逻辑门提供了更大的便利性,并实现了线性不可分割功能(例如XOR)的一步操作,但增加了转换级联输入和输出异质性属性的成本。基于两个RRAM细胞的典型XZ-CIM逻辑门如图(E)所示。一个输入操作数X由RRAM设备的电导状态提供,而另一个输入操作数Y由施加的电压编码。
输出在第二个单元格中恢复,该单元将其初始化为LCS(0)。 BL载荷电阻的电导量设置在LCS和HCS之间,以进行适当的电压分裂。输出存储单元采用常数VP条件VSET/2 VP VSET,然后将WL1和BL的电压确定逻辑门的类型。在XOR的情况下,WL1和BL的电压分别为(Y -1)VP和(-Y)VP。
通过更改应用电压的编码方案,电路可以实现所有16个双输入布尔逻辑门,从而简化复杂函数的逻辑合成,从而缩短CIM的延迟时间。
5)Z-CIM
基于NVM的逻辑可以扩展到Z-CIM,其中输入操作数X和Y均通过应用电压提供。输出Z作为存储单元的电导状态存储在就位(图F)。除MRAM和PCM外,RRAM始终是Z-CIM研究中最活跃的对象。
它基本上是基于NVM的传统写作操作,但从逻辑上讲,它扩展了传统上认为无效的投入的其他组合。 RRAM的切换取决于电压下降的极性和初始电导率状态。当存储单元最初位于LCS状态(Z0=0)时,只有X=1(VW)和Y=0的输入组合可以将设备切换到HCS,即Z=1,而在其他输入情况下,该设备仍处于LCS状态(Z=0)。当存储单元最初处于HCS状态(Z0=1)时,仅X=0和Y=1(VW)的组合将关闭设备并存储Z=0,而在其他情况下,设备仍处于Z=1状态。这两种情况分别对应于非重要函数(NIMP)和互补含义功能(CIMP)。
所有14个线性可分离的逻辑门都可以通过将输入固定为1或0,或通过交换应用于WL和BL和BL和级联的操作数来实现。
线性不可分割的XOR/XNOR是例外。为了使其可行,应利用其不对称读数过程,基于基于两个具有相反极性的两个电阻开关的互补RRAM概念。此外,由于该结构中有大量终端,1T1R单元可以更有效地执行Z-CIM的XOR逻辑,从而有助于输入操作数的编码。
6)xy-cim
还提出了基于NVM或SRAM的逻辑操作的XY-CIM。
在NVM的情况下,两个输入操作数是记忆单元的二元电导状态(LCS或HCS)。基本上,任何具有两个不同电阻状态的NVM设备都可以在XY-CIM中使用,包括固有的三端设备,例如FEFET。当两个WL同时激活两个WL时,记忆单元的状态被读取到BL,在当前模式SA累积并感知电流(ILCS或IHC)的情况下。 SA可以将SA视为二进制神经元电路,使用参考电流作为激活阈值,以生成逻辑输出。
两个输入的四个组合将产生以2ilcs,ILCS + IHC和2IHC为中心的三个BL电流分布。因此,在2ILC和ILCS + IHC之间设置SA的阈值(或ILCS + IHC和2IHC之间)具有线性分离或(或)逻辑函数。
鉴于神经元激活是通过CMOS电路实现的,因此很容易获得两个逻辑门的倒数,即,也很容易。 OR和NAND的组合将产生线性不可分割的XOR逻辑,该逻辑通过连续应用两个参考电流实现。
XY-CIM和X-CIM。 a)XY-CIM基于电阻NVM的逻辑操作。 b)基于SRAM的XY-CIM逻辑操作。 C-f)基于被动1R NVM(C),1T1R NVM(D),NON闪存(也是FEFET)(e)(e)和SRAM(f)的DOT产品操作
就SRAM而言,XY-CIM的两个输入操作数由存储在SRAM电池中的电压水平提供。
SRAM电池的核心是一个可动电路,其两个内部节点存储了二进制电压水平及其补体。在标准的6T SRAM结构中,两个选择的晶体管控制BL和互补的BLB以访问两个节点。在执行逻辑操作时,BL和BLB首先被预先到VDD,就像SRAM的读数过程一样。
当两个WL同时激活两个WL时,根据两个SRAM细胞的状态,BL和BLB可能会放电。具体而言,仅当输入X和Y均为1时,BL才会保留在VDD位置。如果一个单元格在0状态,则BL将放电到较低的电压;如果两个单元格处于0状态,则BL电压的降低将加剧。
通过将SA的参考电压设置为将VDD与其他还原的BL电压区分开,SA输出被识别为逻辑结果。当BLB访问输入位X和Y的补充时,SA使用相同的参考电压来提供或提供逻辑。
同样,与XOR逻辑的组合和也不有助于XOR逻辑。传统6T SRAM的位逻辑操作受到内存单元格的干扰,这是由于写入和读取路径通过同一端口耦合所致。当多个WL同时打开时,BL/BLB可能会放电,这又导致记忆单元状态翻转。为了解决这个问题,主要策略是通过添加访问晶体管或修改其配置来将写入和读取路径解除,从而形成4+2T/8T/10T SRAM结构。另外,WL的降低或异步激活也有助于解决干扰问题。
7)X-CIM
X-CIM的基本物理原理基本上与XY-CIM的物理原理相同,只是输入操作数的定义是不同的。
通常,X-CIM旨在实现并行MAC操作,其中一个输入操作数由代表权重矢量X的内存单元列提供,而另一输入是外部应用于WL或其他线的电压向量y。因此,这两个向量的点产物以电流或放电的形式在BL上产生,然后由BL外围电路诱导。对ANN加速器的浓厚兴趣导致了X-CIM中使用的所有记忆技术,该技术正在积极研究中,并正在努力实现模拟数字混合浮点精度解决方案。
X-CIM也可能意味着基于非易失性记忆(例如MRAM和FEFET)的逻辑操作。但是,AI加速器在并行MAC操作中的广泛工作掩盖了这一工作。
就虚拟机而言,尽管成本占用了较大的单位空间占用,SRAM仍吸引了使用X-CIM并行MAC加速的关注。值得注意的是,在闩锁电路中,还包括X的补体二进制向量,这对于签名计算非常有用。
SRAM结构具有丰富的灵活性,可用于可靠有效的X-CIM优化,但是4T闩锁电路始终是重量存储的核心。一种策略是通过采用8T/10T/12T结构来将读取路径解除,以保护SRAM细胞免受干扰,但这将进一步加剧细胞空间占用的问题。在基于标准6T SRAM阵列的某些解决方案中,添加了专门设计的本地计算单元和全局BL,以平衡电路功能和面积开销之间的权衡。
根据内存技术,存储在存储器单元中的重量向量X可以单位或多个位。虽然VM通常是单位设备,但许多NVM显示了多位甚至模拟状态,这是改善X-CIM吞吐量的关键因素,而机器学习加速非常需要。闪存,FEFET,PCM,RRAM和FTJ是出色的模拟电导率设备,这要归功于它们的基本物理特性,从而可以连续调整状态变量,例如电荷存储,铁极性比,晶体体积和线直径。
因此,这些非易失性存储器设备的存储窗口从10到10^6不等,这使他们能够将多位信息存储在一个单元中。由于电导转换率较小,尽管目前正在努力开发多位设备,但MRAM被认为是单位内存。为了最大化计算效率,输入向量Y通常被编码为多位值,例如具有模拟振幅或宽度的WL电压脉冲,尽管串行二进制脉冲也可以用于节省数据转换成本。
因此,CIM操作是在当前域,时域或电荷域中执行的。鉴于x和y都可以是二进制值,模拟值或通过差分操作实现的双极值,因此两个元素的乘法可能采用逻辑,双极XNOR或纯模拟结果的形式。由于多位输入和多个WLS同时激活(通常是2),因此点乘法检测需要一个转换电路,该转换电路能为多个离散输出级别提供通电,这通常是通过多阶段SA或多阶段的模数转换器(ADC)实现的。与存储单元相比,SA和ADC通常更大,并且消耗更多的功率。因此,除了原位计算以及X-CIM,SA或ADC的固有并行性外,还成为另一个效率瓶颈,还需要设计优化以维持CIM带来的性能改进。
8)O-CIM
最近,基于SRAM的CIM通过在存储单元附近添加传统的逻辑门逐渐移至全数字场。由于在计算过程中不需要收敛的存储单元,因此它被合理地称为O-CIM。
在此方法中,一个输入操作数是通过特殊设计的线外部提供的,并且从SRAM单元中读取另一个输入操作数,并输入到相邻的逻辑门,逻辑门通过其执行两个操作系统的乘法。为了概括乘法结果,必须在附近部署层次加法树,并在数字域中产生部分总和。
在DRAM方面,传统的计算模块而不是嵌入存储器单元周围的单个逻辑门,而是构建的靠近数组以使用数组级并行性实现MAC加速度。 O-CIM通常具有成熟的挥发性记忆,以寻求与当代商业产品的工业兼容性。通过采用标准数字计算单元,O-CIM比其他基于模拟的CIM更可靠。
不同CIM解决方案的关键特征和挑战,以及这些方法在设备可靠性和计算效率方面面临的挑战
CIM技术可用于收敛记忆和计算,并为加速计算提供空间并行性。他们还可以通过使用非常规但功能强大的逻辑门(例如大多数功能)以及将算术操作直接映射到硬件电路来提供有效的计算。
CIM可以通过同时激活多个WLS来实现,从而通过数组中的物理定律启动内存单元之间的相互作用。已经开发了一系列CIM技术,其中许多基于跨点阵列体系结构——。该体系结构几乎可以容纳所有记忆技术。
新兴NVM已成为CIM的重要候选技术,并已用于探索超出内存的一系列应用程序。相比之下,诸如DRAM和SRAM之类的成熟记忆技术的修改更少:DRAM已针对存储密度和泄漏降低进行了优化,因此对过程修改有害,尽管CIM在阵列中导致少于1的开销; SRAM具有在现代逻辑制造过程中灵活性的优势,允许自定义内存阵列设计,尽管标准6T SRAM仍具有重视。
在CIM中,开发逻辑门是为了提供一组通用计算的功能集,并且所有XYZ/XZ/Z/XY-CIM类型都可以通过众所周知的逻辑集(例如和+或+ + gates或单个NAND或单个NAND或GATES或IND GATES或CONT CONTRACTINTAL逻辑集)来提供此功能。相比之下,平行MAC被开发以加速特定应用,例如神经网络。
在不同的逻辑门CIM方案中,可以使用两个因素来区分不同的方法:计算(即非线性激活)是否由被动RS单元进行,以及输入操作数和输出操作数的物理性能是否相同。在前一种情况下,使用RS单元作为神经元的NVM状态逻辑,XZ-CIM和Z-CIM实现非常紧凑,但是DRAM位逻辑和XY-CIM方案需要额外的活性SA进行计算,从而牺牲了一部分面积效率。在后一种情况下,XYZ-CIM被认为是真正的CIM方法,因为所有输入/输出操作数均由数组中的存储单元在就位。它没有转换过程,因此可以轻松实施级联反应并促进顺序处理的总体延迟。
相比之下,NVM的XZ-CIM,Z-CIM和XY-CIM需要其他操作,以将输出读为电压(或将输出作为电导写入输出),以使下一个逻辑门级联,从而导致延迟并阻碍吞吐量的改善。就SRAM而言,可能有必要设计一个特殊的单元,将逻辑输出写入该单元以进行后续访问。
X-CIM和O-CIM都在并行MAC中使用,但以不同的方式使用:模拟和数字。 X-CIM可以通过将计算原始图直接映射到内存阵列的有效方法来提供高能/区域效率。但是,由于计算过程的模拟性质,由于电阻电池,电容器或晶体管,阵列和电路等设备的非理想性,其精度将降低。在一个操作中,也可以改善输入,NVM的存储容量以及CIM单元的并行性的分辨率,从而改善计算吞吐量。但是,这一优势还为输入数字到分析转换和输出类似物转换的开销带来了开销。
在NVM的X-CIM应用中,已经提出了神经网络,由于固定了每两层神经元之间的重量矩阵,因此可以自然地级联MVM。对于一般应用,由于存储器单元中向量隔离,可能需要像逻辑门这样的属性转换过程来执行级联操作。
O-CIM在数字域中使用传统的CMOS逻辑门。因此,它具有更高的计算鲁棒性。此外,还可以通过消除ADC和数字到Analog转换器(DAC)来克服数据转换的负担。模拟X-CIM的硬件映射是固定的,数字O-CIM具有更高的灵活性,并且可以适应更广泛的问题。但是,由于每个处理元素都包含一个乘数和用于MAC操作的加法器,因此它权衡了该区域和能源效率,类似于其他数字加速器,例如基于收缩的设计。
在用于逻辑操作的CIM类型中,NVM状态逻辑,XZ-CIM和Z-CIM依赖于存储器单元的动态RS,因此请求者
件具有较高的耐用性,以支持频繁的逻辑门操作。因此,PCM(据报道其耐用性超过10^10)似乎更适合(尽管还不够)这些类型的CIM。RRAM的最新耐用性相当有限(超过10^6),必须加以改进才能达到要求。MRAM的表现甚至更好,一般显示出10^12的耐用性。然而,MRAM本身受限于较小的内存窗口,这对可靠的模拟计算,尤其是多输入逻辑门构成了障碍。
由于XY-CIM和X-CIM基本上是两个或多个单元的并行读出过程,因此可以采用任何具有两个或多个不同状态的存储器件。因此,NVM器件的时间保持特性和状态变化应足以保证可靠的读出、求和和离散化,分别由用于逻辑运算或并行MAC的SA或ADC完成。虽然NVM器件在传统的二进制存储器应用中一般都能保持足够的存储时间(85°C时超过10年),但在逻辑运算中,两个或多个单元状态的线性叠加会对存储性能造成更严格的限制。特别是在用于并行MAC的X-CIM中,最好有一个多比特单元,通常会同时激活多个单元以提高吞吐量。
在这种情况下,除MRAM外,所有NVM设备都显示出较大的存储窗口,从而实现了多位存储。然而,由于受到状态变化的严重限制,最先进的NVM只能提供可靠的两比特容量。因此,要实现更大容量的存储单元,仍有很大的器件优化空间,成熟的多级NAND闪存可以作为很好的参考。
非易失性存储器的模拟电导经常被用于计算,通常是为了在人工智能加速器等典型应用中实现较高的等效吞吐量和能效。然而,必须注意的是,传统的存储器模式应始终保持,在这种模式下,应能以足够的读出余量区分多种状态。为了开发可靠的基于电阻式NVM的CIM技术,在算法和系统层面已经做出了许多努力,但这些努力通常仅限于特定应用。
位切片、分而治之和补偿等策略已被用于扩展大规模问题的计算精度。虽然这些解决方案可方便地应用于正向矩阵乘法,但对于X-CIM的矩阵反演而言,这些问题变得难以解决,从而为基于电阻式NVM的通用矩阵计算留下了探索空间。
NVM设备的耐用性不足是有状态逻辑、XZ-CIM和Z-CIM所面临的关键问题,阻碍了它们在实际应用中的发展。对于有状态逻辑和XZ-CIM而言,由于两者都依赖于模拟乘法、求和及非线性激活,因此必须保证设置/复位电压以及LCS和HCS在周期与周期之间以及设备与设备之间的低变化,以限制逻辑运算的误码率。
Z-CIM不需要模拟乘法和求和。因此,它只需要较低的设定/复位电压变化。相比之下,XY-CIM和X-CIM则需要较低的LCS和HCS变化,以实现可靠的CIM操作。特别是在使用多位NVM器件的并行MAC中,输入存储单元的电导分布和点乘结果会变得更加复杂,因此需要设计精细的读出电路(SA/ADC)。此外,X-CIM还可能涉及神经网络训练。因此,电导更新在电导范围的最小或最大边界具有良好的线性非常重要。
要克服NVM器件的耐久性、时空一致性和更新线性等挑战,从根本上说,这些都是由器件物理特性控制的,因此必须对器件材料和结构进行优化,从源头上解决这些问题。所有这些CIM方案都依赖于模拟计算,而模拟计算很容易受到工艺-电压-温度(PVT)变化的干扰。不过,对于使用新兴NVM的CIM的PVT问题,目前仅有偶尔的研究,但这是实际应用过程中的一个重要挑战。
要最大限度地提高CIM的能效,需要解决几个问题:
1)在基于RS的CIM方案中,每个事件都会导致相当大的功耗。因此,需要优化设置/复位电压和电流。
在使用静态存储单元状态的XY-CIM和X-CIM中,NVM器件较低的绝对电导率应有助于降低能耗。尽管如此,这种优化并不容易,因为低电导通常伴随着非线性电流-电压特性,这会带来额外的计算误差。
2)在合成具有完整功能逻辑集的复杂逻辑运算时,可选择的方法多种多样。
它可以由许多双输入门电路或少数几个多输入门电路组成,从而导致硬件和延迟成本的巨大差异,以及对模拟非理想性的不同敏感性。因此,要实现可靠而高效的逻辑合成,就必须权衡利弊。X-CIM一直在努力解决ADC和DAC的开销问题,而这正是提高能效的主要挑战。在O-CIM中,虽然使用单逻辑门(例如NOR门)可以方便地实现乘法器,但加法器树一直是公认的瓶颈。因此,需要在这方面进一步努力,以提高能效和面积效率。
3)此外,虽然X-CIM的并行MAC已被证明在加速计算方面具有相当大的潜力,但它本质上无法提供通用计算系统。在这种情况下,CIM方法中逻辑门与并行MAC运算的结合值得进一步探索。
目前,存内计算提供了多种技术,但迄今为止最重要的是存内数据库(以下简称IMDB),市场上已有相关软件及其应用。
早在1984年,市场上就出现了存内数据库,最早的产品之一是IBM TM1 – OLAP数据库。然而,由于操作系统和可用硬件的限制,这些系统无法发挥其优势。近年来,这些限制逐渐被淘汰,市场上出现了几种来自主要供应商的IMDB解决方案。
2008年,IBM推出了SolidDB作为IMDB,它通过两个独立但永久同步的数据库副本以及硬盘上的永久日志来提供数据的完整性。一旦发生数据丢失,整个数据库可在几秒钟内恢复而不会丢失数据。Oracle于2009年推出了 TimesTen作为IMDB,可用作传统RDBMS的缓存或独立数据库。TimesTen使用事务日志和数据库检查点作为数据完整性措施。2010年,SAP推出了HANA数据库技术,这是一种高性能分析设备。
SQLite是一个包含关系型数据库系统的程序库,由于具有许多数据库接口,是世界上使用最广泛的SQL数据库。要在主内存中使用SQLite数据库,可以在数据库连接中使用:“存内”选项。一旦关闭数据库连接,数据库就会被写入磁盘。
随着技术不断发展,内存数据库正变得越来越流行,主要用于时间紧迫的应用程序、实时数据输出以及海量数据分析等领域。例如,谷歌、Twitter和Facebook使用的都是定制的存内数据库,以确保对不断增加的数据量做出快速反应。
事实上,关于存内计算的话题,IT专家们认为这是一种范式转变,是数据处理或实时业务的新时代。
在进行研究和实验的过程中,可以证明这些说法并不那么笼统。存内计算的高效使用为大数据和实时分析领域提供了全新的可能性,但大型企业在硬件和软件领域的转换和购置成本仍然很高。
在不太复杂的领域,如软件开发中的单元测试,中小型企业已经开始使用存内数据库。在不久的将来,由于数据量的稳步增长和硬件价格的下降,存内计算技术将变得越来越重要。
2020年,全球存内计算市场收入规模为114亿美元,预计到2025年将达245亿美元:复合年增长率16.5%
参考链接:
[1]https://ieeexplore.ieee.org/document/6757323
[2]https://www.nature.com/articles/s41928-023-01097-6
[3]https://thecustomizewindows.com/2017/10/what-is-in-memory-computing/
用户评论
ゞ香草可樂ゞ草莓布丁
我一直觉得未来科技的发展离不开存内计算的突破,现在看样子真的要来了!如果能真正实现“超越摩尔定律”,那岂不是我们想象中那些飞速运算和智能应用都可以变成现实?想想都激动人!”
有6位网友表示赞同!
遗憾最汹涌
这篇文章写的真棒,把存内计算的可能性解释得很清楚,让人眼前一亮。我觉得这个领域确实很有前景,但实现起来也一定很复杂吧?需要大量的资金和人才投入。
有16位网友表示赞同!
柠夏初开
"超越摩尔定律"是一个大胆的目标,但是我相信人类总能找到新的突破口。存内计算也许是未来人工智能发展的重要方向,期待看到更多实质性的进展。
有9位网友表示赞同!
身影
这篇文章读完感觉很兴奋,但也有点担忧。一旦存内计算技术成熟,会不会带来一些伦理问题?比如数据安全和隐私保护就需要认真考虑。
有20位网友表示赞同!
坏小子不坏
对科技发展的趋势一直很关注,这篇博文让我更加了解了存内计算的潜力。如果真的能够实现“超越摩尔定律”,那我们的生活将会发生翻天覆地的变化!
有12位网友表示赞同!
怀念·最初
其实我也在学习一些计算机方面的知识,现在感觉存内计算这个概念有点绕,需要再仔细研究一下。不过整体来说这篇文章写的很通俗易懂,容易理解。
有9位网友表示赞同!
醉枫染墨
我一直觉得科技发展应该更加注重伦理和社会的全面影响,而不是单纯追求技术的突破。我希望未来"超越摩尔定律"不仅仅是提高计算速度,更要注重技术的应用和效益。
有11位网友表示赞同!
西瓜贩子
我觉得存内计算这个概念太抽象了,很难想象具体应用场景,需要更多的例子来进行解释和理解。希望作者能进一步探讨存内计算的未来发展方向。
有18位网友表示赞同!
神经兮兮°
对科技发展一直充满期待,这篇文章让我看到了未来技术的无限可能!相信存内计算会带来更大的改变,让我们每个人都享受到科技带来的便利。
有16位网友表示赞同!
あ浅浅の嘚僾
"超越摩尔定律"听起来很科幻,但我相信科学技术的进步总是让人惊叹。希望未来能够在能源、环境等方面取得新的突破。
有10位网友表示赞同!
杰克
存内计算这个概念让我感到兴奋和期待!如果真的能实现,那未来人工智能的发展将会更加迅速强大,甚至可能改变人类的认知模式。
有11位网友表示赞同!
哭花了素颜
我一直在关注科技发展趋势,这篇文章让我对存内计算有了更深入的了解。我认为它也许是解决传统计算瓶颈的新方向,能够更好地服务于各个行业和领域。
有19位网友表示赞同!
几妆痕
关于存内计算的文章一直看到很多,但这篇博文写的比较专业,能够清晰地阐述基本概念和发展趋势。希望作者能经常更新最新信息,让大家更深入了解这个领域的研究进展。
有18位网友表示赞同!
执妄
说实话,我对科技的理解有限,这篇文章有些地方我不太明白,比如“超越摩尔定律”究竟是怎么实现的?需要更多具体的讲解和解释
有19位网友表示赞同!
月下独酌
"存内计算"听起来很复杂,好像涉及到很多专业的知识。我更想了解存内计算应用于实际生活中会带来哪些变化?能不能用一些例子来说明呢?
有20位网友表示赞同!
你身上有刺,别扎我
我对科技发展一直持乐观态度,相信未来的技术进步一定会让我们的生活更加美好!这次看到关于存内计算的文章,让我看到了希望和憧憬。
有5位网友表示赞同!
龙吟凤
我一直担心科技的发展带来的负面影响,比如对就业市场的冲击等。希望在“超越摩尔定律”的过程中,能够更加注重伦理道德和社会公平性,让科技发展真正造福人类。
有20位网友表示赞同!
迁心
这篇文章让我意识到,存内计算的潜力非常巨大,它将会改变我们的未来生活方式。但同时我也担心,如果这个技术被一些不怀好意的人利用的话,会带来不可预知的风险…
有13位网友表示赞同!