用于存储器操作的电路和方法与流程

文档序号:20989697发布日期:2020-06-05 21:34阅读:298来源:国知局
用于存储器操作的电路和方法与流程

本公开涉及一种用以读取存储器装置的存储器单元的电路配置和方法,且更具体地说,涉及一种用以读取存储器装置的多个存储器单元的状态的电路配置和方法。



背景技术:

非易失性存储器装置通过改变构成存储器单元的电子元件的电特性来存储信息。举例来说,快速存储器通过修改存储器单元中晶体管的阈值电压来存储信息。在快速存储器中,单元中的低阈值电压可表示逻辑“0”,而高阈值电压可表示逻辑“1”。因此,为了检索存储于存储器单元中的信息,需要询问存储器单元中的电子元件的电特性。举例来说,读取快速存储器的状态涉及测量晶体管的阈值电压以确定其存储“0”还是“1”。

如今,读取存储器单元的状态可具有挑战性,因为存储器单元被设计成存储若干种状态。举例来说,四层单元(quad-levelcell)存储16种不同状态。在每一单元中具有多种状态的情况下,与每一状态相关联的电特性之间的差异可能极小,且需要高精度的读取电路来解析差异。此外,电子元件的本征波动或噪声使得存储器状态的确定复杂化。举例来说,一些存储器单元包含可具有重叠的存储器状态分布的电阻开关。举例来说,在电阻存储器中,存储器状态“0”可与10ω至20ω分布相关联,而存储器状态“1”可与15ω至25ω分布相关联。这些重叠的存储器状态分布使得在从存储器单元获得重叠读数(例如18ω)时,读取操作不可靠。在这类情形中,可能需要添加纠错电路,或在可准确地识别存储器状态之前执行多次读取操作。

这些问题在非冯诺伊曼(von-neumann)电脑架构中尤其难以解决。在冯诺伊曼架构中,存储墙使存储器与处理单元分离。此布置允许采用存储器读取技术,包含数据校正、滤波或信号放大,因为来自存储器的数据可在操作前被存取、处理且随后存储在高速缓冲存储器中以供稍后存取。然而,在非冯诺伊曼架构中,存储器与处理单元之间没有存储墙,且难以有效地校正误差或在将来自存储器装置的数据发送至处理单元之前对其进行缓冲。在非冯诺伊曼架构(例如神经启发架构)中,存储器单元紧邻处理单元放置以避免存储瓶颈。因此,没有机会有效地缓冲来自存储器的数据以用于处理单元。实际上,缓冲或校正来自存储器的数据以用于处理单元的任何尝试可导致暗中损害电脑操作的显著延迟。

此外,非冯诺伊曼架构可得益于由于本征波动而在读取上具有挑战性的存储器类型。举例来说,神经启发架构将得益于使用电阻开关非易失性存储元件。这些存储元件难以读取,因为其可具有如上文所描述的存储器状态。然而,需要在神经启发架构中采用这类存储元件以促进神经网络操作的执行,因为所述存储元件类似于生物启发突触。因此,为了改进非冯诺伊曼架构,需要研发即使电阻存储元件具有重叠的存储器状态分布也能够利用所述电阻存储元件的读取电路。

所公开的存储器装置、电路以及方法涉及缓解或克服上述问题中的一或多个以及现有技术中的其它问题。



技术实现要素:

本公开的一个实施例涉及一种存储器装置。所述存储器装置包含:多个存储器单元;至少一个几何平均运算元,耦合到多个存储器单元中的至少两个;以及存储器状态读取器,耦合到至少一个几何平均运算元以读取多个存储器单元的存储器状态。

本公开的另一方面涉及一种存储器装置。所述存储器装置包含多个非易失性存储器单元;用于通过使与所述存储器单元相关联的存储器读取电流相乘而产生第一乘积的构件;用于通过对所述第一乘积执行开方运算而产生第一方根的构件;以及用于基于对应于所述第一方根的存储器电流确定所述多个存储器单元的存储器状态的构件。

本公开的另一方面涉及一种用于确定存储器状态的方法。所述方法包含获得多个存储器单元的多个存储器读取电流;基于所述多个存储器读取电流确定乘积;基于所述乘积确定方根;以及基于所述方根确定所述存储器状态。

为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。

附图说明

图1为根据一个实施例的示例性电子系统的示意图。

图2为示例性存储器装置的示意图。

图3a为第一示例性存储器电路的示意图。

图3b为第二示例性存储器电路的示意图。

图3c为第三示例性存储器电路的示意图。

图4为第一示例性存储器读取配置的示意图。

图5为第二示例性存储器读取配置的示意图。

图6为根据所公开实施例的说明示例性存储器状态确定方法的流程图。

图7a为不同存储器状态的累积分布函数与读取电流之间的第一示例性关系的曲线图。

图7b为不同存储器状态的累积分布函数与读取电流之间的第二示例性关系的曲线图。

图7c为不同存储器状态的累积分布函数与读取电流之间的第三示例性关系的曲线图。

图8为不同存储器读取配置的电流分布与电流比之间的示例性关系的曲线图。

附图标记说明:

100:电子系统;

102:中央处理单元;

104:图形处理单元;

106:数字信号处理器;

108:多媒体处理器;

110:传感器;

112:图像信号处理器;

114:显示器/lcd;

116:导航模块;

118:连接模块;

120:神经处理单元;

200:存储器装置;

202、202(a)、202(b)、202(c)、202(d)、202(e)、202(f)、202(g):神经元;

204、204(a)、204(b)、204(c)、204(d)、204(e)、204(f):突触;

206、206(a)、206(b)、206(c)、206(d):通信通道;

310、330、360:存储器电路;

312:行解码器;

314:reram阵列;

316:reram寄存器;

318:数据寄存器;

320:列解码器;

322、530、620、622:数据总线/数据连接;

324:放大器;

332、346:并联-串联转换器;

344:地址计数器;

348:控制电路/选择晶体管;

500、600:存储器读取配置;

502、502(a)、…、502(z):存储器单元;

504:带通滤波器;

505、505(a)、…、505(z):滤波电路;

506:min/max滤波器;

508:第一级乘法电路;

510:第一级方根电路;

511、511(a)、…、511(y):第一级几何平均运算元;

512、512(a)、…、512(y):第一级缓冲器电路;

514:第二级乘法电路;

516:第二级方根电路;

517、517(a)、…、517(x):第二级几何平均运算元;

518、518(a)、…、518(x):第二级缓冲器电路;

519:汇集级;

520:第三级几何平均运算元;

522:第三级方根电路;

523:第三级几何平均运算元;

524:第三级缓冲器电路;

540:读取电路;

610:模拟/数字转换器;

612:处理器;

614:数字/模拟转换器;

1200:流程图;

1202、1204、1206、1208、1210、1212、1214、1216:步骤;

1310、1320、1330、1400:曲线图。

具体实施方式

本公开大体上涉及一种使多个存储器单元的输出聚集以使存储器状态分布变窄的存储器装置和存储器电路。虽然个别存储元件可具有较宽且重叠的存储器状态分布,但多个存储器单元的总输出可经处理以产生更精细分布。所公开的存储器装置可通过处理存储器单元组而准确地确定整体存储器状态,甚至在可能难以区分个别存储器单元的存储器状态时也如此。此外,存储器装置中的处理电路可通过减小分布扩散且对具有非正态分布的存储器单元输出进行滤波来产生没有重叠的分布。

所公开的存储器装置和存储器读取电路也能够快速地执行所需数据处理以使数据分布变窄。举例来说,通过使用模拟电路或其它专用硬件,存储器装置可能够快速且无缝地处理来自存储元件的信号,以将数据提供至确定存储器状态的读取电路。

图1为根据一个实施例的示例性电子系统100的示意图。电子系统100可包含中央处理单元(centralprocessingunit;cpu)102、图形处理单元(graphicalprocessingunit;gpu)104、数字信号处理器(digitalsignalprocessor;dsp)106以及多媒体处理器108中的一或多个。此外,电子系统100可包含传感器110、图像信号处理器(imagesignalprocessor;isp)112、显示器/lcd114、导航模块116以及连接模块118中的一或多个。由此,电子系统100可包含比图1中所示出的所有元件更少的元件和/或图1中未示出的额外元件。此外,电子系统100可包含神经处理单元(neuralprocessingunit;npu)120。

在一些实施例中,电子系统100的所述元件中的每一个可与电子系统100的所述元件彼此连接,且可容纳于单一装置中。举例来说,cpu102可独立地连接到电子系统100的所有其它元件。然而,在其它实施例中,电子系统100可具有特定连接且将元件分布于多个装置中。举例来说,在一些实施例中,显示器/lcd114可仅连接到多媒体处理器108,或导航116可位于另一装置中且仅与连接模块118连接。

cpu102可由可配置以执行电脑程序的指令的电子电路组装。举例来说,cpu102可被配置成执行由一组指令指定的算术、逻辑、控制和输入/输出(input/output;i/o)操作。在一些实施例中,cpu102可包含:算数逻辑单位(arithmeticlogicunit;alu),其执行算术和逻辑操作;处理器寄存器,其将运算元提供至alu且存储alu操作的结果;以及控制单元,其通过引导alu、寄存器以及其它元件的协调操作而将指令的获取(从存储器获取)和执行协调地结合起来。另外或替代地,cpu102还可包含一或多个微处理器和周边介面。此外,在一些实施例中,cpu102可额外包含多核处理器,其可被配置成平行作业。

gpu104可设计有电子电路,所述电子电路被设计成快速操纵且改变存储器装置以加快帧缓冲器中图像的创建。举例来说,gpu104可包含用于基础2d加速的电路和帧缓冲器电路。在一些实施例中,gpu104可模拟2d加速。在其它实施例中,gpu104可被配置成用于纹理映射和绘制多边形、加快几何计算(例如旋转)以及将顶点变换为不同的坐标系。

gpu104可作为插卡安设在主机板上的芯片组中或与cpu102安设在同一芯片中。此外,gpu104可直接连接到显示器/lcd114。

dsp106可组装有用于数字信号处理操作需要的专用微处理器。对于需要无显著延迟的快速处理的应用程序,dsp106可被配置成即时处理数据。dsp106还可包含用以接收数字信号且对其进行处理以改进所述信号的电路,以提供更清晰的声音、更快的数据发送或更锐利的图像。在一些实施例中,dsp106可例如从传感器110接收已经数字化的视频、话音、音频、温度或位置信号,且对所述信号执行数学函数。在所述实施例中,dsp106可被设计成快速地执行这些数学函数。

多媒体处理器108可包含被设计成以即时速率提供数字流的微处理器或系统芯片。在一些实施例中,多媒体处理器108可被配置成处置包含未经压缩视频、经压缩数字视讯(例如mpeg-1、mpeg-2、mpeg-4等)以及数字音频(例如pcm、aac等)的文件。多媒体处理器108中的微处理器可经优化以适应不同媒体数据类型,例如通过包含存储介面、串流媒体介面或专用功能单元以适应各种数字媒体转码器。举例来说,多媒体处理器108可包含向量处理功能单元或simd功能单元,以有效适应这些媒体数据类型和/或类dsp特征。

传感器110可包含多个感测单元,其转换外部事件且将所述外部事件发送到电子系统100中的处理单元,例如cpu102或dsp106。传感器110可包含加速计、陀螺仪、数字指南针、气压计、指纹识别传感器、虹膜(眼部)扫描传感器和/或面部识别传感器中的一或多个。此外,传感器110可包含相机和麦克风。另外或替代地,传感器110可包含gps单元、磁力计、照度计(luxmeter)和/或接近度传感器。

isp112可包含用于图像处理的专用处理器。isp112可利用simd技术或mimd技术采用平行计算,以增加速度和效率。isp112可被配置成执行图像处理任务,例如增加嵌入式装置上的系统集成。在一些实施例中,isp112可与电子系统100的其它元件设置在同一板上。举例来说,isp112可与cpu102位于同一板上。然而,在其它实施例中,isp112可为离散单元。isp112可包含用以控制互补式金属氧化物半导体(complementarymetal-oxide-semiconductor,cmos)传感器的电路。举例来说,isp112可包含用于执行图像处理操作的电路,所述操作例如去马赛克、自动聚焦、自动曝光以及白平衡。此外,isp112可具有噪声降低、滤波以及高动态范围(high-dynamic-range;hdr)能力。

导航模块116可包含具有雷达的硬件和/或用以记录位置的gps设备。举例来说,导航模块116可基于gps、基于地面信标或为距离测量仪器(distancemeasurementinstrument;dmi)。导航模块116可被配置成确定电子系统100的当前位置。另外或替代地,导航模块116可包含用以存储导航地图信息的数据存储器装置。导航模块116也可集成于电子系统100的特定元件内。举例来说,导航模块116可集成于cpu102内。在一些实施例中,导航模块116可连接到显示器/lcd114,且可通过(例如)连接模块118经由网际网络连接到地理位置服务。

连接模块118可包含用于无线或有线通信的天线、微控制器以及数据埠。举例来说,连接模块118可包含用于4glte、wifi以及fm通信的天线。替代地或另外,连接模块118可包含usb通信。在一些实施例中,连接模块可包含经由标准周边介面进行连接的处理器,该标准周边介面可包含集成电路间(inter-integratedcircuit;i2c)介面、串列周边介面(serialperipheralinterface;spi)、通用非同步收/发器(universalasynchronousreceiver/transmitter;uart)介面、高速芯片间(high-speedinter-chip;hsic)介面或者处理器实行或以其它方式支援的另一适合标准介面。此外,连接模块118可提供命令协定,以提供与将处理单元(例如cpu102或gpu104)连接到外部iot装置、云服务等所需的通信构架相关联的服务。

npu120可包含用于脑启发计算(即神经形态计算)的电子平台。npu120可包含人工智能加速芯片,且与软件api相关联以与平台交互。在一些实施例中,npu120可被配置成执行机器学习演算法,例如深度学习。此外,npu120可被配置成执行图像和声音处理操作,包含语音识别。在一些实施例中,npu120可建构有专门用于加快机器学习演算法的微处理器。举例来说,npu120可被配置成根据例如人工神经网络或随机森林的预测性模型进行操作。

图2为示例性存储器装置200的示意图。在一些实施例中,存储器装置200可以是电子系统100的部分。举例来说,存储器装置200可构成npu120。然而,在其它实施例中,存储器装置200可为独立单元。存储器装置200可包含多个神经元202、多个突触204以及多个通信通道206。

图2中的示例性存储器装置200包含九个神经元202,包含神经元202(a)、神经元202(b)、神经元202(c)…、神经元202(g)。然而,具有更多神经元202或更少神经元202的其它实施例也是可能的。神经元202可设计有模拟神经操作的数字或模拟电路。在一些实施例中,神经元202可包含cmos数字电路,其被配置成执行神经元状态和启动函数的逻辑操作。可替代地,神经元202可包含包括mos晶体管或bjt晶体管的模拟电路,所述晶体管被配置成针对非线性压控电导以次阈值状态操作。

突触204包含突触204(a)、突触204(b)、…、突触204(f),且可包含具有可变电阻的电子元件。然而,具有更多突触204或更少突触204的其它实施例也是可能的。突触204可与神经元202耦合,且所述突触自身之间耦合。在一些实施例中,突触204可包含关于图3a至图3c进一步所描述的可变电阻式存储器(resistiverandom-accessmemory,reram)存储器栅格或阵列。在其它实施例中,突触204可包含快速存储器栅格,其中快速存储器单元中的晶体管受栅极电压控制以充当电阻。在所述实施例中,晶体管通道可被配置成充当栅极可控制的电阻器。

通信通道206包含通道206(a)、通道206(b)、…、以及通道206(d),且可包含并行和/或串列数据总线。然而,具有更多通信通道206或更少通信通道206的其它实施例也是可能的。在一些实施例中,通信通道206可包含存储器装置200的元件之间的专用总线。举例来说,通信通道206(a)可包含神经元202(a)与神经元202(b)之间的专用通信线路。

在一些实施例中,神经元202中的每一个可耦合到多个突触204。举例来说,虽然图2示出神经元202中的每一个耦合到四个突触204,但神经元202中的每一个可耦合到一百个或更多个突触204。在这些实施例中,突触204可直接或间接耦合至神经元202。举例来说,突触204(a)可使用芯片上互连件直接连接到神经元202(a)。然而,在其它实施例中,突触204(a)可经由缓冲电路、其它突触或滤波电路耦合到神经元202(a)。

由于神经元202可具有比突触204更多的电子元件,因此神经元202占据的面积可大于突触所占据的面积。举例来说,在一些实施例中,神经元202可占据比突触大至少一百倍的面积。每一突触204可为单一电子元件,例如reram单元或快速存储器单元,而神经元202中的每一个可包含若干晶体管、电流源以及电容器。举例来说,神经元202中的每一个可占据8000f2或更大的面积,而突触204中的每一个可占据30f2或更小的面积,其中f2为表示技术节点的最小可解析特征的相对面积单位。

如图2中所示出,存储器装置200可将神经元202与相关联突触204放置成临近彼此,以使存储器单元(例如突触204)与处理单元(例如神经元202)之间的任何通信线路的长度减至最小。然而,通信通道206可额外使用较长通信线路连接处理单元。

图3a为第一示例性存储器电路310的示意图。存储器电路310包含连接到reram阵列314的行解码器312、reram寄存器316、数据寄存器318以及列解码器320。此外,存储器电路310包含都连接到列解码器320的放大器324和数据总线322。

reram阵列314包含非易失性随机存取存储器单元,其通过改变固态材料上的电阻来工作。举例来说,reram阵列314可组装有多个忆阻器。可替代地,reram阵列可包含具有可控制电阻的电阻元件的栅格或交叉开关(crossbar)。举例来说,reram阵列可包含3dxpoint阵列。替代地或另外,reram阵列314可设计有呈1t1r结构的专用mosfet晶体管,其中晶体管提供对reram单元的排它性存取。

行解码器312包含用以与多个位线建立电通信的开关和/或多路复用器,以从reram阵列314中的存储器单元读取数据以及将数据写入到所述存储器单元。行解码器312还包含用以在读取和写入操作期间驱动电压或电流的放大器。举例来说,行解码器312可包含感测放大器和写入放大器。

reram寄存器316包含被配置成存储关于reram阵列314状态的信息的硬件。reram寄存器316中的个别位可隐式或显式地由在reram阵列314上执行的机器代码指令读取和/或写入。举例来说,在一些实施例中,reram寄存器可存储处理器的状态标志比特集合。

数据寄存器318包含存储缓冲器,其存储传输到reram阵列314和从reram阵列314传输的数据。数据寄存器318允许立即存取可重复使用的信息。举例来说,数据寄存器318可含有reram阵列314中如由行解码器312所指定的指定存储器单元的复本。在一些实施例中,使用数据寄存器318作为存储器电路310的部分可通过避免解码器的所需配置而允许神经元202更快地存取频繁需要的信息。

列解码器320包含用以在reram阵列314中的存储器单元与其它读取元件之间建立电连接的电路,例如放大器324或数据总线322。列解码器320可使用模拟方法或数字方法或部分模拟和部分数字方法进行操作。列解码器320可包含一或多个多路复用器,且直接连接到数据寄存器318。

为了读取数据且将所述数据发送到(例如)神经元202,存储器电路310可包含放大器324和数据总线322。在示例性存储器电路310中,放大器324包含被配置成驱动器的运算放大器和耦合到处理单元的数据总线322。

图3b为第二示例性存储器电路330的示意图。存储器电路330包含与存储器电路310类似的元件,包含连接到reram阵列314的行解码器312、reram寄存器316、数据寄存器318以及列解码器320。然而,存储器电路330利用地址计数器344、控制电路348以及并联-串联转换器332和并联-串联转换器346实施不同的存储器控制。此外,在存储器电路330中,元件可具有不同布置。如图3b中所示出,存储器电路330中的数据寄存器318连接到行解码器312而非连接到reram阵列314和列解码器320。

地址计数器344包含基于控制电路348指令而计算所需行地址和列地址的硬件。在一些实施例中,地址计数器344包含针对分别存在的列地址和/或行地址的可程序设计和/或固定偏移寄存器。举例来说,如图3b中所示出,地址计数器344可连接到列解码器320和行解码器312。地址计数器344可包含多路复用器,其基于控制电路348所提供的低频率输入信号而产生高频率控制信号。

并联-串联转换器332和并联-串联转换器346可包含根据时钟信号而并联或串联地传输来自输入端的位的触发器、锁存器和/或寄存器。举例来说,如果并行-串列转换器332或并行-串列转换器346的触发器的输入端处存在高信号(逻辑1),那么在时钟边沿从低转变为高时,输入端处的逻辑1被传输到并联端。此外,并联-串联转换器332和并联-串联转换器346可与串联输入端(serialinput;si)或串联输出端(serialoutput;so)耦合,从而转换接着可传输到处理单元的数据。

控制电路348为管理通向和来自reram阵列314的数据流程的数字电路。在一些实施例中,控制电路348可组装有微控制器或处理单元。此外,控制电路348可提供用以基于所测量的存储器电流来确定存储器状态的构件。此外,控制电路348可经由数据接脚与其它元件通信,所述数据接脚例如芯片选择(chipselect;cs)接脚、时钟信号(sck)接脚、中断(hold)接脚以及写入保护(writeprotect;wp)接脚。

图3c为第三示例性存储器电路360的示意图。存储器电路360表示reram阵列314中的reram存储器单元的可能实施方案。尽管图3c中未示出,但类似于存储器电路310,存储器电路360还可包含放大器324、列解码器320以及行解码器312以及用于读取reram阵列314的其它电子装置。存储器电路360还可包含由解码器用于布置存储器单元之间的连接的选择晶体管348。

在一些实施例中,存储器电路360中的reram阵列314中的存储器单元设计有交叉网。举例来说,reram阵列314可包含连接到cmos线路以用于读取和写入的纳米线交叉开关。纳米线交叉开关具有可控制的电阻率。然而,如图3c中所示出,reram阵列314中的存储器单元也可组装有电阻开关(a)、竖直晶体管(b)、串联-电阻开关(c)或互补电阻开关(d)。使用具有可调适电阻率的不同类型电子元件的替代实施方案也可用于建构reram阵列314。

图4为第一示例性存储器读取配置500的示意图。存储器读取配置500用于处理来自多个存储器单元的读数且用于确定存储器单元的整体状态。对存储器读取配置500中的存储器读数进行分组或集群促进存储器状态的确定,因为减小了存储器状态分布的偏差和最大/最小(max/min)比。也就是说,合计来自多个存储器单元的电流产生更精细的存储器状态分布,其促进读取电路对存储器状态的确定。存储器读取配置500在一系列级中实现多个存储器单元的集群和处理。在存储器读取配置500的每一级中,存储器单元的电流经处理以得到具有较小变差和可容易辨别的状态的复合读数。将关于图7a至图7c更详细地论述利用存储器读取配置500所产生的电流分布。

存储器读取配置500包含:存储器单元502(a)、…、存储器单元502(z),本文中统称为存储器单元502;滤波电路505(a)、…、滤波电路505(z),本文中统称为滤波电路505;以及第一级几何平均运算元511(a)、…、第一级几何平均运算元511(y),本文中统称为几何平均运算元511。此外,存储器读取配置500包含:第二级几何平均运算元517(a)、…、第二级几何平均运算元517(x),本文中统称为几何平均运算元517;以及第三级几何平均运算元523。如图4中所示出,几何平均运算元可以具有第一级几何平均运算元511、第二级几何平均运算元517以及第三级几何平均运算元523的级联级方式组织。虽然图4中仅示出三个级,但存储器读取配置500可包含更多级。在所述实施例中,最后一级可直接或间接耦合到读取电路。此外,存储器读取配置500包含:第一级缓冲器电路512(a)、…、第一级缓冲器电路512(y),本文中统称为第一级缓冲器电路512;第二级缓冲器电路518(a)、…、第二级缓冲器电路518(x),本文中统称为第二级缓冲器电路518;以及第三级缓冲器电路524。所述缓冲器电路可类似地分级组织。此外,存储器读取配置500包含数据总线530和读取电路540。

图4中用于指代个别元件的文字(例如(x)、(y)或(z))并未指定存储器读取配置500中一种元件的数目或元件的总数。替代地,其为指示可变元件数目和可变总元件数目的可变标记。举例来说,用于指代存储器单元502(z)的文字(z)并非指示存储器单元502(z)为第26个存储器单元。替代地,(z)为可指示任何整数值的可变标记。因此,存储器单元502(z)为存储器单元502中的任一个,且存储器读取配置500中存储器单元502的数目为任何整数。类似地,用于指代例如第一级几何平均运算元511(y)或第二级几何平均运算元517(x)的文字(y)和(x)也是可变标记,其不指示或限制元件数目或元件总数。

然而,在一些实施例中,用作可变标记的文字可具有代数关系。举例来说,在一些实施例中,可变标记满足关系式(z)>(y)>(x)。在其它实施例中,可变标记满足关系式z=2(y)=4(x)。在其它实施例中,可变标记满足关系式(z)>(y)+1>(x)+1。

此外,在一些实施例中,不同的运算级可汇集在执行同等功能的单一级中。虽然图4示出离散的第一级几何平均运算元511、第二级几何平均运算元517以及第三级几何平均运算元523,但这些级可实施于单一级中。举例来说,汇集级519可执行第一级几何平均运算元511和第二级几何平均运算元517的同等功能。在所述实施例中,汇集级519可包含用以执行汇集运算的电路。举例来说,在某些实施例中,汇集级519包含配置于回路中的cmos平方根电路,其中将cmos平方根电路的输出路由回到cmos平方根电路的一个输入端,以执行乘积的平方根计算至少两次。可替代地,汇集级519包含用以在单一级中执行第一级几何平均运算元511和第二级几何平均运算元517的同等运算的逻辑电路。此外,汇集级519可包含被配置成计算级联几何平均值以有效执行第一级几何平均运算元和第二级几何平均运算元的功能的处理器。

存储器单元502可包含不同类型的存储器类型。举例来说,存储器单元502可包含reram存储器单元,例如先前关于图3c所描述的reram存储器单元。此外,存储器单元502可以是reram阵列314的部分。然而,在其它实施例中,存储器单元502可为快速存储器、pcm、mram或feram存储器单元。举例来说,存储器单元502可包含快速存储器单元,其中晶体管受栅极电压控制以充当电阻。

在一些实施例中,存储器单元502与滤波电路505耦合。滤波电路505包含用以处理从存储器单元502接收的模拟信号的硬件。当来自存储器单元的读数遭受可混淆读取的噪音源(例如时钟信号)时,或当预处理数据将促进数据的后续集群时,可需要滤波电路。存储器读取配置500中可包括多种滤波技术。

如图4中所示出,滤波电路505包含带通滤波器(统称为带通滤波器504)和最小/最大滤波器(min/maxfilter,统称为min/max滤波器506)。这些电路可被配置成从非所要频率滤除噪声或从离群存储器单元502截止。举例来说,带通滤波器504可被配置成滤除并非读取存储器单元的特点的高频率。此外,当预期存储器单元502的输出介于一范围(例如1ua至10ua)内时,如果存储器单元502中的一个输出超出所述范围的电流(例如100ua),那么其指示所述存储器单元发生故障。为了避免离群读数损害存储器状态确定的准确度,min/max滤波器506可截断或去除任何非预期值。在此实例中,非预期电流100ua可被截断降至最大预期电流10ua。可替代地,min/max滤波器506可完全去除所述非预期电流。

第一级几何平均运算元511包含用以处理来自存储器单元502的信号的硬件。如图4中所示出,第一级几何平均运算元511经由滤波电路505耦合到存储器单元502。然而,在其它实施例中,第一级几何平均运算元511可直接连接到存储器单元502。此外,在某些实施例中,第一级几何平均运算元511可直接或间接地耦合到读取电路540,使得存储器读取配置500仅包含单一级几何读取运算元。

在一些实施例中,几何平均运算元511以子集方式组织,每一子集耦合到存储器单元502的特定组。举例来说,参看图4,几何平均运算元511的第一子集包含两个顶部的几何平均运算元511(a)和几何平均运算元511(a+1)。因此,几何平均运算元511的第一子集将耦合到包含存储器单元502(a)、存储器单元502(a+1)、存储器单元502(a+2)以及存储器单元502(a+3)的存储器单元组,且被配置成处理来自所述存储器单元组的读数。类似地,几何平均运算元511的第二子集包含底部的两个几何平均运算元511(y)和几何平均运算元511(y-1)。由此,几何平均运算元511的第二子集耦合到包含存储器单元502(z)、存储器单元502(z-1)、存储器单元502(z-2)以及存储器单元502(z-3)的存储器单元组,且被配置成处理来自所述存储器单元组的读数。视将处理的存储器单元502的数目而定,可向存储器读取配置500中添加几何平均运算元511的额外子集。

通过以子集方式组织几何平均运算元511,存储器读取配置500能够识别存储器中具有不佳特性的区域,且通过停用几何平均运算元511的子集来断开所述区域。举例来说,在一些存储芯片中,表现不佳的存储器单元502集中在芯片的特定区域中。几何平均运算元511的子集的所描述组织将允许隔离缺陷区域且改进存储器读取准确度。

第一级几何平均运算元511可接收来自多个存储器单元502的信号,且处理所述信号以输出单一信号。在一些实施例中,第一级几何平均运算元511可使存储器单元502的电流相乘且随后进行开方。举例来说,如果每个第一级几何平均运算元511耦合到两个存储器单元502,那么每个第一级几何平均运算元511产生具有以下关系的输出电流:可替代地,每个第一级几何平均运算元511可接收来自多个存储器单元502的电流,且在单次计算操作中将所述电流合并在一起。举例来说,每个第一级几何平均运算元511可接收来自四个存储器单元502的电流,且执行运算即,一般来说,每个第一级几何平均运算元511可被配置成确定来自存储器单元502的多个电流的几何平均值,其中所述几何平均值通过下式得出:由此,如果每个第一级几何平均运算元511耦合到两个存储器单元502(n=2),那么几何平均值等于对分别与所述两个存储器单元相关联的两个读取电流的乘积开平方根。

在其它实施例中,第一级几何平均运算元511可被取代或重新配置以应用其它取平均运算。举例来说,第一级几何平均运算元511可由第一级取平均运算元取代或重新配置为第一级取平均运算元,所述第一级取平均运算元被配置成计算与存储器单元502相关联的读取电流的算术平均值。可替代地,第一级几何平均运算元511可由第一级乘法电路或第一级加法器取代,或重新配置为第一级乘法电路或第一级加法器,所述第一级乘法电路或第一级加法器使用不同运算来合并存储器单元502的电流。

在一些实施例中,如图4中所示出,第一级几何平均运算元511可建构有独立的第一级乘法电路(统称为第一级乘法电路508),其连接到第一级方根电路(统称为第一级方根电路510)。然而,在其它实施例中,例如cmos平方根电路的单一电路可单独地处理来自存储器单元502的电流。

对于具有多个级的存储器读取配置500,来自存储器单元502的原始信号在通过不同处理级时可能恶化。举例来说,导体损耗或来自电子元件的噪声可损坏正在处理的信号。此外,在多个级的情况下,存储器读取配置500中某些元件出现的明显阻抗可能导致出现故障。举例来说,第一级几何平均运算元511在连接到产生高输出阻抗的多个级时,其操作可能受损。因此,在一些实施例中,存储器读取配置500可包含第一级缓冲器电路512,其用于恢复信号和/或电路解耦部分的品质以避免此类问题。

如先前所论述,存储器读取配置500可包含多个数据处理级。图4示出三个数据处理级,包含第二级几何平均运算元517、第二级缓冲器电路518、第三级几何平均运算元523以及第三级缓冲器电路524。在一些实施例中,较高阶级可重复用于较低级的硬件。举例来说,第二级几何平均运算元517和第三级几何平均运算元523可重复第一级几何平均运算元511。然而,在其它实施例中,各级的元件之间可存在差异。举例来说,第一级几何平均运算元511可被配置成处理两个电流,而第二级几何平均运算元517可被配置成同时处理四个或更多个电流。另外或替代地,第一级几何平均运算元511可为模拟电路,而第三级几何平均运算元523可为数字电路。

第二级几何平均运算元517包含第二级乘法电路(统称为第二级乘法电路514)和第二级方根电路(统称为第二级方根电路516)。类似地,第三级几何平均运算元523包含第三级乘法电路520和第三级方根电路522。

存储器读取配置500可包含超过图4中所示出的三个级。举例来说,存储器读取配置500可具有“k”个级,其中k为任何正整数。在所述实施例中,存储器单元502的数目与几何平均运算元的数目之间的关系可由所选择的级数目定义。举例来说,在一些实施例中,在k个级的情况下,存储器单元的总数为2k,而几何平均运算元的总数为2k-1。因此,如果存储器读取配置500具有10个级(k=10),那么将分组处理以确定整体存储器状态的存储器单元的总数为210,且几何平均运算元的总数将为210-1。此关系由具有重复的方根级运算元且各级运算元处理两个电流或信号而产生。然而,在几何平均运算元不相同或可处置多于两个电流时,其它关系是可能的。

在处理级中处理来自多个存储器单元502的信号之后,将所得电流发送到读取电路540。举例来说,最末几何平均运算元级可输出经处理电流,所述经处理电流经由数据连接530发送到读取电路540。可替代地,存储器单元502与读取电路540之间的耦合可通过例如滤波器或放大器等额外电子元件而为间接的。在一些实施例中,读取电路540可包含根据读取电流确定存储器状态的硬件和软件。举例来说,读取电路540可包含根据读取电流确定低电阻状态或高电阻状态中的一个的硬件。在其它实施例中,读取电路540可包含基于从存储器单元502接收的电流进行操作的处理单元。举例来说,读取电路540可耦合到神经元202中的一或多个。

读取电路540提供用于基于存储器电流确定多个存储器单元的存储器状态的构件。在一些实施例中,读取电路540可包含使读取电流与存储器状态相关的电脑处理器。举例来说,读取电路540可使读取电流与低电阻存储器状态、中间电阻存储器状态或高电阻存储器状态相关。替代地或另外,读取电路540可与神经元202中的一或多个耦合。然而,在其它实施例中,读取电路540可包含cpu或gpu。此外,基于存储器电流确定存储器状态的构件可包含用以使电流与存储器状态相关联的微处理器、微控制器或其它等效处理单元。

图5为第二示例性存储器读取配置600的示意图。类似于存储器读取配置500,存储器读取配置600被配置成对多个存储器单元的输出进行集群,以减小各存储器状态分布的偏差。在存储器读取配置600中,合并多个存储器读数产生每状态具有较低max/min比的存储器状态分布,从而促进存储器状态的确定。

存储器读取配置600包含存储器单元502和滤波电路505。然而,代替具有存储器读取配置500的若干级几何平均运算元和缓冲器,存储器读取配置600包含模拟/数字转换器(analog-to-digitalconverter;adc)610、处理器612以及数字/模拟转换器(digital-to-analogconverter;dac)614。存储器读取配置600的配置能够对来自存储器单元502的读取电流进行数字处理。

如图5中所示出,存储器单元502耦合到adc610、处理器612以及dac614。adc610将来自存储器单元502的模拟信号变换为数字数据。在一些实施例中,adc610可被配置成具有以ghz输入频宽操作的高速转换器。在一些实施例中,到adc610的输入接脚的数目可等于进行集群的存储器单元的数目。然而,在其它实施例中,adc610可包含并串转换器且具有更少数目个输入接脚。

来自adc610的经数字化数据被发送到处理器612,所述处理器可计算输出值。处理器612可包含任何计算单元,例如cpu或gpu。处理器612接收所有经数字化数据以计算输出。举例来说,处理器612可对经数字化的电流值进行操作以计算电流的几何平均值。由此,处理器612可使电流值相乘,且随后对乘积进行开方。可替代地,处理器612可计算经数字化电流值的算术平均值、总和和/或乘积。处理器612也可基于经数字化电流计算其它值。举例来说,处理器612可计算电流的众数和/或中位数。

处理器612将计算出的值发送到dac614。dac614可包含任何数字/模拟转换器。然而,可基于包含解析度、最大采样频率等的品质因数而选择dac614。dac614将计算出的数字信号转换为模拟信号,所述模拟信号随后被发送到读取电路540。

虽然图5将adc610、处理器612以及dac614示出为经由总线620和总线622连接的独立单元,但在一些实施例中,这三个元件的所有功能可在单一单元内执行。举例来说,adc操作、处理操作以及dac操作可由例如cpu或gpu的单一元件执行。

图6为说明示例性存储器状态确定方法1200的流程图。在一些实施例中,方法1200可由存储器读取配置500中呈现的一系列处理级执行。然而,在其它实施例中,方法1200可由单一元件实施。举例来说,方法1200可由处理器612实施。

在步骤1202中,接收对于确定存储器状态的请求。举例来说,神经元202中的一个可能需要存储器状态以执行计算,且发送对于存储器状态的请求。所述请求可指定应询问的一组存储器单元。

在步骤1204中,从存储器单元获得多个存储器读取电流。在一些实施例中,从存储器单元502获得多个存储器读取电流。可对所述存储器读取电流进行滤波,以消除来自非所要频率的噪声或截断离群值。为了用代数实例进一步阐释方法1200,将在步骤1204中获得的示例性多个存储器读取电流称为电流a、电流b、电流c以及电流d。

在步骤1206中,将多个存储器读取电流划分成不同组。在一些实施例中,存储器读取电流可被划分成每组两个存储器读取电流的组。可替代地,可在步骤1206中定义多于两个存储器读取电流的所划分组。举例来说,继续电流a、电流b、电流c以及电流d的实例,所划分组可为组1{a、b}和组2{c、d}。

在步骤1208中,将所划分组中的每一个中的元素相乘,以计算与所划分组中的每一个相关联的乘积。举例来说,如果每组具有两个存储器读取电流,那么计算两个存储器读取电流的乘积。因此,举例来说,在步骤1208中,计算{a*b}和{c*d}的乘积。

在步骤1210中,计算乘积的方根。举例来说,对在步骤1208中所计算的乘积中的每一个进行计算,以产生几何平均值。因此,举例来说,在步骤1210中,计算以下方根:{a*b}1/2和{c*d}1/2

在步骤1212中,确定所有处理级是否都已完成。举例来说,在存在k个级的情况下,如果k个级尚未完成(步骤1212:否),那么方法1200返回到步骤1208以计算额外乘积。然而,如果k个级已经完成(步骤1212:是),那么方法1200继续到步骤1214。电流a、电流b、电流c以及电流d的代数实例具有2级(k=2)。因此,在所述实例中,所述方法将返回到步骤1208以计算新乘积[{a*b}1/2*{c*d}1/2],且随后在步骤1210中计算第二级乘积的平方根[{a*b}1/2*{c*d}1/2]1/2。如果存在更多级,那么继续步骤1208与步骤1212之间的回圈,直到单一电流表示所有经集群存储器单元为止。

在步骤1214中,基于在步骤1208至步骤1212的步骤回圈中确定的单一代表性电流来确定存储器状态。举例来说,在一些实施例中,当存储器电流低于第一参考电流时,可确定存储器状态为高电阻;当存储器电流在第一参考电流与第二参考电流之间时,可确定存储器状态为第一中间状态,第二参考电流大于第一参考电流;当存储器电流在第二参考电流与第三参考电流之间时,可确定状态为第二中间状态,第三参考电流大于第二参考电流;以及当存储器电流超过第三参考电流时,可确定存储器状态为高电阻状态。在所述实施例中,存储器读取器(例如读取电路540)可将第一参考电流选择为高于与低电阻状态相关联的存储器电流分布中的最大电流;且将第三参考电流选择为低于与高电阻状态相关联的存储器电流分布中的最小电流。因此,存储器读取器将能够通过比较来自经集群存储器单元502的存储器读数与参考电流而使存储器电流与存储器状态相关联。

为了确定存储器状态,处理电路可使存储器输出与存储器状态相关。举例来说,在步骤1214中,模拟/数字转换器(adc)可基于电流输入确定状态中的一个。adc可确定低于第一参考数目的任何电流对应于低存储器状态,而超过第三参考数目的电流对应于高存储器状态。因此,用于确定多个存储器单元的存储器状态的构件可包含使模拟信号与存储器状态相关的adc。可替代地,可利用例如微处理器的处理单元识别存储器状态,所述处理单元使所接收的模拟输入与存储器状态相关。

在步骤1216中,将所确定的存储器状态发送到直接或间接耦合的处理单元。举例来说,可将所确定的存储器状态发送到神经元202中的一个以用于处理任务或计算。虽然已针对在两个级中处理的一组四个存储器电流描述方法1200,但方法1200还可用于处理每状态多于两个存储器读取电流。接下来描述每级具有多个存储器读取电流的应用方法1200的数值实例。

根据所述数值实例,在步骤1204中,读取操作以八个存储器单元502输出以下值开始:8ua、10ua、9ua、12ua、7ua、8ua、9ua以及10ua。可通过处理电路或图4中所示出的网络获得这些初始值。随后,将这些值划分成每组四个值的两组(步骤1206),且随后处理这些值以获得几何平均值。举例来说,根据方法1200的步骤1208和步骤1210执行以下运算:(8*10*9*12)1/4=9.6ua和(7*8*9*10)1/4=8.4ua。所述数值实例展示可使用所公开的处理技术减小max/min比的方式。初始值具有介于7ua至12ua范围内的较宽分布,差值为5ua,而经处理数据具有仅8.4ua至9.6ua的max/min比,差值为1.2ua。因此,max/min比减小,且将更容易地识别与分布相关联的存储器状态。

图7a至图7c示出展示多个存储器单元的不同存储器状态的累积分布函数(cdf)与读取电流之间的示例性关系的曲线图。

参看图7a,曲线图1310展示低电阻状态(lowresistancestate;lrs)、第一中间状态(firstintermediatestate;ir1)、第二中间状态(secondintermediatestate;ir2)以及高电阻状态(highresistancestate;hrs)的读取电流与累积分布函数之间的关系。曲线图1310示出四种状态之间的显著重叠。举例来说,读取电流10ua可表示所有状态。分布之间的此重叠使读取操作变得复杂,因为其产生关于存储器单元的对应状态的不确定性。

参看图7b,曲线图1320呈现在一些处理和放大之后或使用不同读取操作的读取电流与累积分布函数之间的第二关系。虽然分布之间的重叠减少了,但确定存储器状态仍具有挑战性,因为分布重叠,且相邻存储器状态的上部边界与下部边界之间没有明显的界限。如曲线图1320中所示,不同存储器状态之间存在重叠。因此,在给定读取电流(例如5ua)下,无法区分不同状态。提供曲线图1320的结果的存储器读取方法可以可靠地用于仅低电阻和高电阻两个状态。然而,使用仅两个状态以指数方式减小存储能力。

参看图7c,曲线图1330呈现读取电流与累积分布函数之间的第三关系。在用方法1200和/或使用存储器读取配置500或存储器读取配置600处理存储器状态之后,可获得曲线图1330中所示的关系。为了获得曲线图1330,在执行存储器读取之前对多个存储器单元进行集群。举例来说,已应用例如确定几何平均值的数据处理技术来获得曲线图1330中所表示的关系。

曲线图1330显示各存储器状态具有明确定义的上部边界和下部边界。举例来说,显而易见的是,低于3ua的任何电流应与hsr相关联,而超过9ua的任何电流应与lsr相关联。随后,对存储器单元进行集群的处理技术产生具有可容易识别的存储器状态的清晰分布。如曲线图1330中所呈现,使用所公开的集群方法,不同状态之间的累积分布函数未重叠,且最小/最大(min/max)比显著减小。因此,不同读取电流可容易地与特定存储器状态相关。

用于产生曲线图1330中的第三关系的集群方法改进存储器读数分布,且促进将存储器单元用于例如神经形态计算的应用。使用所公开的处理方法,状态之间没有尾端重叠,从而形成存储器单元状态之间的明显区别。

在处理存储器电流之后,可通过用于确定存储器状态的构件识别曲线图1330中的存储器状态。举例来说,微控制器可提供用于使存储器电流与存储器状态相关联的构件。微控制器可包含关系表或其它关联方法,以基于存储器电流产生存储器状态的输出。

图8为展示不同存储器读取配置的电流分布与电流比之间的示例性关系的曲线图1400。max/min比的分布为分布的标准差的度量。较高max/min比与较高标准差相关联,因为最大数目与最小数目相隔远。相反,较低max/min比与紧密分布相关联,其中最大值与最小值彼此接近。对于存储器读取操作,期望具有较低max/min比。在较低max/min比的情况下,不同存储器状态的分布较窄,且不包含不同存储器状态之间的重叠。举例来说,具有较低分布max/min比的存储器单元将与曲线图1330中所呈现的存储器状态相关联。

曲线图1400展示不同集群操作的max/min比。曲线图1400展示对经集群存储器单元进行相加、相乘、计算算术平均值或计算几何平均值的存储器读取配置所产生的结果。曲线图1400显示,使存储器电流相加或相乘且使用最小电流对其进行归一化,产生较大max/min比。举例来说,在曲线图1400中,sum/imin1402和prod/imin^21404产生较大max/min比。这些较大max/min比不合期望,因为其导致存储器状态重叠。曲线图1400还用avg/imin1408展示计算多个存储器单元的算术平均值的结果。使用取平均操作,max/min减小,从而指示存储器状态分布变窄。举例来说,相比于sum/imin1402和prod/imin^21404,avg/imin1408产生更小的max/min比。然而,几何平均值运算合乎需要地达成甚至更小的max/min比。如曲线图1400中用sqrt(prod)/imin1406所展示,对读取电流的乘积取平方根的运算产生最小的max/min比。在乘积的平方根运算的情况下,min/max比减小,从而允许更简单地分辨存储器状态。举例来说,在所有集群操作中,sqrt(prod)/imin1406具有最小的min/max比。

除曲线图1400中所呈现的操作以外的操作也是可能的。曲线图1400仅展示对由意欲减小读取电流数值扩散的不同操作所产生的分布标准差的影响。也可对经集群的读取电流执行其它操作,例如确定平均值或众数,以减小min/max比且促进存储器读取操作。可替代地,可在存储器读取配置中组合多个操作。举例来说,可在存储器读取配置的一些级中执行取平均运算,同时可在配置的其它级中执行几何平均值运算。

对所属领域的技术人员可以理解的是,可以对所公开的系统和相关方法做出各种修改和变化。对于所属领域的技术人员而言通过考虑本说明书以及实践所公开的系统和相关方法,其它实施例将是可以理解的。希望本说明书和实例仅被视为示例性的,其中真实范围由所附权利要求和其等效者来指示。

此外,虽然本文中已描述说明性实施例,但其范围包含如所属领域的技术人员基于本公开将了解的具有等效要素、修改、省略、组合(例如各种实施例的方面的组合)、调适和/或改变的任何及所有实施例。举例来说,可修改示例性系统中展示的元件的数目和配置方式。此外,关于图式中所示出的示例性方法,可修改步骤的次序和顺序,且可添加或删除步骤。

因此,已仅出于说明的目的呈现以上描述。所述描述并非穷尽性的,且不限于所公开的精确形式或实施例。对于所属领域的技术人员而言通过考虑本说明书以及实践所公开的实施例,修改和调适将是可以理解的。

权利要求应基于权利要求中使用的言辞广义地解释,且不限于本发明书中所描述的实例,所述实例应理解为非排它性的。此外,可以任何方式修改所公开方法的步骤,包含通过对步骤进行重新排序和/或插入或删除步骤。

虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中技术人员,在不脱离本发明的精神和范围内,当可作些许的更改与润饰,故本发明的保护范围当视所附的权利要求所界定者为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1