忆阻器通常采用交叉阵列的方式进行高密度集成。在忆阻器交叉阵列一端施加列电压矢量时,另一端的输出行电流矢量是施加列电压矢量与忆阻器电导矩阵的乘积。也就是说,基于欧姆定律和基尔霍夫电压定律,忆阻器阵列能够在一个周期内完成矢量与矩阵的乘累加运算。乘法的因子直接存储在忆阻器阵列中,不需要单独的存储单元,从而绕过了冯·诺依曼瓶颈。而且这种基于忆阻器阵列乘累加运算的核心单元计算能效比现有CMOS器件提高两个数量级,这对于具有大量乘累加运算的智能处理任务具有重要意义。 利用忆阻器阵列实现计算是一种模拟/数模混合计算方式,在和传统的数字处理单元进行交互时需要大量的数模、模数转换单元,在进行信号格式转换时会额外增加大量的功耗与时间开销。 使用忆阻器实现存算一体主要分为两个方面,数字式存算一体技术和模拟式存算一体技术。数字式存算一体技术与传统计算方式类似,使用忆阻器完成布尔逻辑功能,经过不同布尔逻辑的组合调用实现复杂的加法、乘法等计算。模拟式存算一体技术则利用欧姆定律和基尔霍夫电压定律,可以一步实现乘累加计算。 数字计算逻辑运算包括三种: ![](https://pic1.zhimg.com/v2-349ca00c666a373ccefd2371fd1b0544_b.jpg) 基于忆阻器的布尔运算根据输入 、输出类型和操作方式的不同,可以分为3类。 - R-R逻辑运算(最重要的一个逻辑运算,相比于其它两个有很多的优点)
输入和输出都是忆阻器的状态,逻辑计算也在忆阻器内部进行,并且可以进行级联操作,也被称为状态逻辑。∆一般为10%Vset。输入是X1和X2,输出是加电压后的X2。高阻态代表0,低阻态代表1。 ![](https://pic3.zhimg.com/v2-cdefce6711dc98c8429a62134b819c3e_b.jpg) 2. V-R逻辑运算 要求忆阻器是双极性阻变模式,通过向忆阻器两端施加正负电压,来改变忆阻器的高低阻态。输入是通过施加在单个忆阻器两端的电压幅值 X1、X2(输入)来表示 ,而逻辑输出Y则由高低阻态(分别表示逻辑 0 和 1)来表示。首先将忆阻器设置为低阻态,当 X1=X2时,器件两端的压降为零,阻态保持低阻态不变,即输出Y=1;当X1=1且X2=0时,器件两端的压降为正极性,阻态翻转为高阻态,即输出 Y=0;当X1=0且X2=1时,器件两端的压降为负极性,因初始态为低阻态,阻态保持不变,即输出 Y=1。 V-R 逻辑运算的默认输出 Y=1,只有在 X1=1且X2=0 时输出才发生改变。由于这样的逻辑功能是完备的,通过适当的组合若干个V-R 逻辑运算可以实现16种布尔逻辑运算。 ![](https://pic1.zhimg.com/v2-74a2720511d3a8682078e53cc746891c_b.jpg) 3. V-V逻辑运算 输入和输出都是用电压来表示,输入X1和X2,输出Y。设负载电阻RL上产生的压降Vnode,则有以下关系式: ![](https://pic4.zhimg.com/v2-15cbaffe90d72d9f96d3450b95981a6f_b.jpg) ![](https://pic1.zhimg.com/v2-24dd60da5d575792069cac1fb9460920_b.jpg) ![](https://pic3.zhimg.com/v2-d243c25ddf0ccf6cf369c5839d2478be_b.jpg) 输出电压通常通过比较器进行电压读取。通过调节忆阻器G1和G2的值,可以获得对所有输入值0或之间的线性分隔,即实现所有的线性可分的布尔逻辑函数。 模拟计算利用具有多级阻态的模拟型忆阻器可以实现在模拟域的乘法-加法运算,如下图所示: ![](https://pic2.zhimg.com/v2-5498eb972ee0fb3d2db7f8d2107e7f61_b.jpg) ![](https://pic3.zhimg.com/v2-e94f5b8a01925795297cf5f915520476_b.jpg) 互连线的每个结点处夹着1个忆阻器件,电压Vj是施加在j列的电压值,根据欧姆定律和基尔霍夫定律可以得到第i行总电流值: ![](https://pic2.zhimg.com/v2-0d34c2884f10352cf1289b19d1a5f499_b.jpg) Gij为位于第j列第i行的忆阻器件的电导值,总电流值Ii是电导矩阵与电压向量的乘积结果,实现了向量乘矩阵的硬件加速,相比于传统的计算过程,忆阻器阵列具有高效、节能的优势。模拟型交叉阵列可以在稀疏编码、图像压缩 、神经网络等任务中担任加速器的角色。 在神经网络中Gij代表神经元突触的权重,Vj是前神经元j的输入值 ,Ii是第i个神经元的输出值。列线与行线分别代表神经网络中的输入神经元和输出神经元,忆阻器的电导值为神经元之间相互连接的突触权重值,利用反向传播等学习算法可以通过SET/RESET 操作来原位更新网络权重。 ![](https://pic2.zhimg.com/v2-b87d9fd55fca177bc553e5cdb1b0e6b9_b.jpg)
|