使用posit的神经元的制作方法



1.本公开大体上涉及半导体存储器及方法,且更特定来说,涉及用于使用posit进行神经元的设备、系统及方法。


背景技术:



2.存储器装置通常被提供为计算机或其它电子系统中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性及非易失性存储器。易失性存储器可能需要电力来维持其数据(例如,主机数据、错误数据等)且包含随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)、同步动态随机存取存储器(sdram)及晶闸管随机存取存储器(tram)等等。非易失性存储器可通过在不被供电时保留经存储数据来提供持久数据且可包含nand快闪存储器、nor快闪存储器及电阻可变存储器,例如相变随机存取存储器(pcram)、电阻式随机存取存储器(rram)及磁阻式随机存取存储器(mram),例如自旋力矩转移随机存取存储器(stt ram)等等。
3.存储器装置可耦合到主机(例如,主机计算装置)以存储由主机在计算机或电子系统操作时使用的数据、命令及/或指令。例如,在计算或其它电子系统的操作期间,可在主机与存储器装置之间传送数据、命令及/或指令。
附图说明
4.图1是根据本公开的数个实施例的呈包含设备的计算系统的形式的功能框图,所述设备包含主机及存储器装置。
5.图2a是根据本公开的数个实施例的呈包含设备的计算系统的形式的另一功能框图,所述设备包含主机及存储器装置。
6.图2b是根据本公开的数个实施例的呈包含主机、存储器装置、专用集成电路及现场可编程门阵列的计算系统的形式的功能框图。
7.图3是具有es个指数位的n位柱的实例。
8.图4a是3位posit的正值的实例。
9.图4b是使用两个指数位的posit构造的实例。
10.图5a是根据本公开的数个实施例的呈外围感测放大器、存储器阵列及多个算术逻辑单元(alu)的形式的功能框图。
11.图5b是根据本公开的数个实施例的呈包含乘法器、累加器、内部alu及寄存器的神经元的形式的功能框图。
12.图5c是根据本公开的数个实施例的呈神经元及感测放大器的存储器阵列的形式的功能框图。
13.图6是根据本公开的数个实施例的呈控制电路系统的形式的功能框图。
14.图7是表示根据本公开的数个实施例的用于使用神经元来神经形态运算的实例方法的流程图。
具体实施方式
15.描述与使用posit的神经元相关的系统、设备及方法。一种实例设备可包含存储器阵列,所述存储器阵列包含经配置以存储数据的多个存储器单元。所述数据可包含多个位串。所述实例设备可包含耦合到所述存储器阵列的神经元组件。所述神经元组件可经配置以对所述多个位串中的至少一者执行神经形态运算。
16.存储器阵列可在存储器装置内。存储器装置可包含控制电路系统。控制电路系统可包含存储器资源及处理资源。控制电路系统可耦合到存储器阵列。存储器阵列可包含多个神经元(例如,神经元组件)。存储器阵列可存储包含多个位串的数据。控制电路系统可控制对多个位串中的至少一者的神经形态运算的执行。以这种方式,神经形态存储器阵列可充当神经网络。模拟权重可输入到神经网络的操作中以便训练神经网络。响应于存储在神经网络中的数据具有对包含posit的数据执行的神经形态运算,所述数据可模拟学习且可测试或分析所述数据以确定已发生的学习程度。所述数据可呈包含通用数字(unum)格式的格式,例如类型iii unum或posit格式。
17.神经网络可包含可经执行以辨识数据中的模式的指令集。一些神经网络可用来以模仿人脑操作方式的方式辨识数据集中的潜在关系。神经网络可适应变动或变化的输入使得神经网络可在缺乏重新设计输出准则的情况下产生最好的可能结果。
18.神经网络可由多个神经元组成,所述多个神经元可由一或多个方程式表示。在神经网络的上下文中,神经元可接收一定量的数字或向量作为输入且基于神经网络的性质,产生输出。例如,神经元可接收xk个输入,其中k对应于输入的索引。对于每一输入,神经元可将权重向量wk指派给输入。在一些实施例中,权重向量可使神经网络中的神经元不同于所述网络中的一或多个不同神经元。在一些神经网络中,相应输入向量可乘以相应权重向量以产生值,如由方程式1所展示,所述方程式展示输入向量及权重向量的线性组合的实例。
19.f(x1,x2)=w1x1+w2x220.方程式1
21.在一些神经网络中,非线性函数(例如,激活函数)可应用于由方程式1得出的值f(x1,x2)。可应用于由方程式1得出的值的非线性函数的实例是整流线性单位函数(relu)。如果输入到所述函数的值大于零,那么由方程式2所展示的relu函数的应用产生所述值,或如果输入到所述函数的值小于零,那么产生零。本文所使用的relu函数仅仅用作激活函数的说明性实例且并不意在是限制性的。可在神经网络的上下文中应用的激活函数的其它非限制性实例可包含sigmoid函数、二进制阶跃函数、线性激活函数、双曲线函数、泄漏relu函数、参数relu函数、softmax函数及/或swish函数等等。
22.relu(x)=max(x,0)
23.方程式2
24.在训练神经网络的过程期间,可改变输入向量及/或权重向量以“调谐”所述网络。在一个实例中,可用随机权重(例如,例如模拟权重)初始化神经网络。随着时间的推移,可调整所述权重以改进神经网络的准确度。随着时间的推移,这可产生具有高准确度的神经网络。
25.神经网络具有宽范围的应用。例如,神经网络可用于系统识别及控制(车辆控制、
轨迹预测、过程控制、自然资源管理)、量子化学、一般游戏、模式辨识(雷达系统、面部识别、信号分类、3d重建、对象辨识等)、序列辨识(手势、语音、手写及印刷文本辨识)、医疗诊断、金融(例如自动交易系统)、数据挖掘、可视化、机器翻译、社交网络过滤及/或垃圾邮件过滤等等。
26.由于一些神经网络需要计算资源,在一些方法中,将神经网络部署在计算系统,例如主机计算系统(例如,台式计算机、超级计算机等)或云计算环境中。在此类方法中,作为训练神经网络的操作的部分经过神经网络的数据可存储在存储器资源,例如nand存储装置中,且处理资源,例如中央处理单元中可存取数据并执行指令以使用神经网络来处理数据。作为神经网络训练的部分,一些方法也可利用专用硬件,此现场可编程门阵列或专用集成电路。在其它方法中,一或多个神经网络的存储及训练可发生在非易失性存储器装置,例如动态随机存取存储器(dram)装置内。
27.可用于执行神经网络(或神经形态)运算的数据可呈特定格式存储。例如,数据可以模拟或数字格式存储以便增加数据的准确度。一种此格式可包含被称为“通用数字”(unum)格式的格式。存在若干形式的unum格式:类型i unum、类型ii unum及类型iii unum,其可被称为“posit”及/或“valid”。类型i unum是在小数的末尾处使用“ubit”来指示实数是否为确切浮点数,或其是否位于相邻浮点数之间的区间中的ieee 754标准浮点格式的超集。类型i unum中的符号、指数及小数位的定义来自ieee 754浮点格式,然而类型i unum的指数及小数字段的长度可急剧地变动,从一位到最大用户可定义长度。通过采用来自ieee 754标准浮点格式的符号、指数及小数位,类型i unum可表现得类似于浮点数,然而与浮点数相比较,类型i unum的指数及小数位中展现的可变位长度可能需要额外管理。
28.参考浮点标准,位串(例如,可表示数字的位串),例如二进制数串是用三个整数集或位集表示:被称为“基数”的位集、被称为“指数”的位集及被称为“尾数”(或有效数)的位集。定义存储二进制数串所用的格式的整数或位集在本文中可被称为“数字格式”或简称为“格式”。例如,定义浮点位串的上述三个整数或位集(例如,基数、指数及尾数)可被称为格式(例如第一格式)。如下文更详细地描述,posit位串可包含四个整数集或位集(例如,符号、底数(regime)、指数及尾数),其还可被称为“数字格式”或“格式”(例如,第二格式)。另外,根据浮点标准,两个无穷数(例如,+∞及-∞)及/或两种“nan”(非数字):安静nan及信令nan可包含在位串中。
29.浮点标准已在计算系统中使用多年且定义用于由许多计算系统实行的计算的算术格式、互换格式、舍入规则、操作及异常处置。算术格式可包含二进制及/或十进制浮点数据,所述数据可包含有限数、无穷数及/或特定nan值。互换格式可包含可用来交换浮点数据的编码(例如,位串)。舍入规则可包含在算术运算及/或转换运算期间将数字舍入时可满足的性质集。浮点运算可包含算术运算及/或例如三角函数的其它计算运算。异常处置可包含异常条件的指示,例如除以零、上溢等。
30.返回参考通用数字格式,类型ii unum通常与浮点数不兼容,这容许基于经投影实数的清晰数学设计。ii型unum可包含n个位且可用“u格”来描述,其中圆形投影的象限填充有2
n-3-1个实数的有序集。ii型unum的值可围绕平分圆形投影的轴反映使得正值位于圆形投影的右上象限中,而它们的负对应值位于圆形投影的左上象限中。表示ii型unum的圆形投影的下半部可包含位于圆形投影的上半部中的值的倒数。ii型unum对大多数运算来说通
常依赖于查表。例如,在一些情况中,查表的大小可限制ii型unum的功效。然而,在一些条件下,ii型unum可提供与浮点数相比较有所改进的计算功能性。
31.iii型unum格式在本文中被称为“posit格式”,或简称为“posit”。与浮点位串相比,在特定条件下,posit可允许比具有相同位宽度的浮点数更广的动态范围及更高的准确度(例如,精度)。这可允许在使用posit而非用浮点数时由计算系统执行的运算以更高速率(例如,更快地)执行,其又可通过例如减少用于执行运算的时钟循环数目来改进计算系统的性能,由此减少在执行此类运算时消耗的处理时间及/或功率。另外,在计算系统中使用posit可允许比浮点数更高的准确度及/或精度,这与一些方法(例如,依赖于浮点格式位串的方法)相比较可进一步改进计算系统的功能。然而,对以type iii unum格式存储的数据执行神经网络或神经形态运算可能比对以模拟格式存储的数据执行此类运算更困难。
32.本文中的实施例涉及经配置以对位串执行各种运算以改进计算装置的总体功能的硬件电路系统(例如,控制电路系统、数/模转换器、模/数转换器等)。例如,本文中的实施例涉及经配置以执行神经形态运算以便训练神经网络或允许神经网络使用poist来模拟学习的硬件电路系统。
33.在一些实施例中,通过以此方式执行运算,硬件电路系统可促进用于此类神经网络目的的神经形态运算的改进性能,同时仍然维持在存储器装置及/或神经形态存储器阵列外部对呈unum或posit格式的数据执行的运算的执行的改进准确度及/或精度,执行unum或posit运算的改进速度,及/或在算术及/或逻辑运算的执行之前、期间或之后位串所需的减少存储空间。
34.如本文中所使用,术语“驻留在

上”是指物理上位于特定组件上的某物。例如,驻留在图1中所说明的存储器阵列130的阵列部分132上的神经元电路系统,例如图5b中所说明的神经元电路系统552是指其中形成神经元电路系统的物理硬件(例如,电路系统、逻辑或其它硬件组件)物理上装纳在下文所描述的阵列部分及/或存储器阵列内(即,在同一裸片或封装内)的情况。术语“驻留在

上”在本文中可与例如“部署在

上”或“位于

上”的其它术语可互换地使用。
35.通过使用存储器阵列(例如,dram存储器阵列)内的神经元来执行神经形态运算及/或使用硬件电路系统来执行算术运算,与其中在存储器阵列外部执行此类运算或不使用呈posit格式的数据的方法相比较,此类运算可允许以改进的方式使用呈posit格式的数据进行神经网络训练及/或学习以增加数据的神经网络处理的效率。例如,在存储器阵列外部的装置上或对不利用posit格式的数据执行神经形态运算可降低神经形态运算的效率且降低存储器阵列及/或存储器装置的性能。
36.在本公开的以下详细描述中,参考形成本公开的一部分且在附图中以说明方式展示可如何实践本公开的一或多个实施例的附图。足够详细地描述这些实施例以使所属领域的一般技术人员能实践本公开的实施例,且应理解,可利用其它实施例且可在不背离本公开的范围的情况下做出过程、电及结构变化。
37.如本文中所使用,特别是关于附图中的参考数字的例如“n”、“m”等的标志符指示可包含如此标示的数个特定特征。还应理解,本文中所使用的术语仅用于描述特定实施例的目的,且并不意在是限制性的。如本文中所使用,单数形式“一(a/an)”及“所述”可包含单数及复数指涉物两者,除非上下文另外明确地指示。另外,“数个”、“至少一个”及“一或多
个”(例如,数个存储器存储体)可是指一或多个存储器存储体,而“多个”意在指多于一个此类事物。
38.此外,词语“能够”及“可”贯穿本技术案以准许(即,有可能、能够)而非强制意义(即,必须)使用。术语“包含”及其派生词表示“包含(但不限于)”。根据上下文需要,术语“经耦合”及“耦合”表示物理上直接或间接连接或用于存取及移动(传输)命令及/或数据。根据上下文需要,术语“位串”、“数据”及“数据值”在本文中可互换地使用且可具有相同含义。
39.本文中的图遵循编号惯例,其中首位或前几个数字对应于图号且剩余数字识别图中的元件或组件。不同图之间的类似元件或组件可通过使用类似数字来识别。例如,120可指代图1中的元件“20”,且类似元件在图2a中可被引用为220。一组或多个类似元件或组件在本文中通常可用单个元件符号指代。例如,多个参考元件431-1、431-2、431-3整体上可被称为431。将明白,可添加、交换及/或消除本文中的各个实施例中所展示的元件以便提供本公开的数个额外实施例。另外,图中所提供的元件的比例及/或相对尺度意在说明本公开的某些实施例且不被视为限制意义。
40.图1a是根据本公开的数个实施例的呈包含设备的计算系统100的形式的功能框图,所述设备包含主机102及存储器装置104。如本文中所使用,“设备”可指(但不限于)多种结构或结构组合中的任一者,举例来说例如电路或电路系统、一或若干裸片、一或若干模块、一或若干装置或一或若干系统。另外,所述组件中的每一者(例如,主机102、控制电路系统120、处理资源(或逻辑电路系统)122、存储器资源124及/或神经形态存储器阵列130)在本文中可单独地被称为“设备”。
41.存储器装置104可包含一或多个存储器模块(例如,单列直插式存储器模块、双列直插式存储器模块等)。存储器装置104可包含易失性存储器及/或非易失性存储器。在数个实施例中,存储器装置104可包含多芯片装置。多芯片装置可包含数个不同存储器类型及/或存储器模块。例如,存储器系统104可包含任何类型的模块上的非易失性或易失性存储器。
42.存储器装置104可提供计算系统100的主存储器或可用作整个计算系统100的额外存储器或存储装置。存储器装置104可包含一或多个神经形态存储器阵列130(例如,存储器单元阵列),所述神经形态存储器阵列可包含易失性及/或非易失性存储器单元。神经形态存储器阵列130可为例如具有nand架构的快闪存储器阵列。然而,实施例不限于特定类型的存储器装置,且存储器装置104可包含ram、rom、dram、sdram、pcram、rram及/或快闪存储器等。
43.在其中存储器装置104包含非易失性存储器的实施例中,存储器装置104可包含快闪存储器装置,例如nand或nor快闪存储器装置。然而,实施例不限于此,且存储器装置104可包含:其它非易失性存储器装置,例如非易失性随机存取存储器装置(例如,nvram、reram、feram、mram、pcm);“新兴”存储器装置,例如3-d交叉点(3d xp)存储器装置等;或其组合。非易失性存储器的3d xp阵列可结合可堆叠交叉栅格式数据存取阵列基于体电阻变化来执行位存储。因此,与许多基于快闪的存储器相比,3d xp非易失性存储器可执行原位写入操作,其中可在不先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。
44.如图1中所说明,主机102可耦合到存储器装置104。在数个实施例中,主机102可经
由一或多个通道103(例如,总线、接口、通信路径等)耦合到存储器装置104。另外,存储器装置104的控制电路系统120可经由通道107耦合到神经形态存储器阵列130。(若干)通道103可用来在存储器系统104与主机102之间传送数据且可呈标准化接口的形式。例如,当存储器系统104用于计算系统100中的数据存储时,(若干)通道103可为串行高级技术附件(sata)、外围组件互连高速(pcie)或通用串行总线(usb)、双倍数据速率(ddr)接口以及其它连接器及接口。然而,一般来说,(若干)通道103可提供用于在存储器系统104与主机102之间传递控制、地址、数据及其它信号的具有用于(若干)通道103的兼容接收器的接口。
45.主机102可为主机系统,例如个人膝上型计算机、台式计算机、数码相机、移动电话、物联网(iot)启用装置或存储卡读取器、图形处理单元(例如,视频卡)以及各种其它类型的主机。主机102可包含系统主板及/或背板且可包含数个存储器存取装置,例如数个处理装置(例如,一或多个处理器、微处理器或某种其它类型的控制电路系统)。所属领域的一般技术人员将明白,“处理器”可意指一或多个处理器,例如平行处理系统、数个协处理器等。
46.系统100可包含单独集成电路,或主机102、存储器装置104两者且神经形态存储器阵列130可在同一集成电路上。系统100可为例如服务器系统及/或高性能计算(hpc)系统及/或其一部分。尽管图1中所展示的实例说明具有冯诺依曼(von neumann)架构的系统,但本公开的实施例可在非冯诺依曼架构中实施,所述非冯诺依曼架构可不包含通常与冯诺依曼架构相关联的一或多个组件(例如cpu、alu等)。
47.在一些实施例中,主机102可负责执行包含存储器装置104的计算系统100的操作系统。因此,在一些实施例中,主机102可负责控制存储器装置104的操作。例如,主机102可执行管理计算系统100的硬件的指令(例如,呈操作系统的形式),例如调度任务、执行应用程序、控制外围装置等。
48.本文在图2a及2b中更详细地展示的存储器装置104可包含控制电路系统120,所述控制电路系统可包含处理资源122及存储器资源124。处理资源122可以集成电路的形式提供,例如专用集成电路(asic)、现场可编程门阵列(fpga)、芯片上系统或经配置以对从主机102及/或其它外部装置接收的位串执行算术及/或逻辑运算的硬件及/或电路系统的其它组合,如本文中更详细地描述。在一些实施例中,处理资源122可包含算术逻辑单元(alu)。alu可包含用来对整数二进制位串,例如呈posit格式的位串执行例如上文所描述的运算的运算(例如,算术运算、逻辑运算、逐位运算等)的电路系统(例如,硬件、逻辑、一或多个处理装置等)。然而,实施例不限于alu,且在一些实施例中,除了alu以外或代替alu,处理资源122还可包含状态机及/或指令集架构(或其组合),如本文中结合图5更详细地描述。
49.例如,处理资源122可经配置以接收呈posit格式的一或多个位串(例如,多个位)及/或引起使用呈posit格式的位串来执行例如算术及/或逻辑运算的运算。与包含三个整数或位集(被称为“基数”的位集、被称为“指数”的位集及被称为“尾数”(或有效数)的位集)的呈浮点格式的位串相比,呈posit格式的(若干)位串包含四个位集:被称为“符号”的至少一个位、被称为“底数”的位集、被称为“指数”的位集及被称为“尾数”(或有效数)的位集。如本文中所使用,位集意在指包含在位串中的位子集。本文中结合图3及4a-4b更详细地描述位的符号、底数、指数及尾数集的实例。
50.在一些实施例中,处理资源122可经配置以使用posit位串来执行算术运算(或引
起算术运算的执行),例如加法、减法、乘法、除法、融合乘法加法、乘积累加、点积单元、大于或小于、绝对值(例如,fabs())、快速傅立叶变换、快速傅立叶逆变换、sigmoid函数、卷积、平方根、指数及/或对数运算,及/或逻辑运算(例如and(与)、or(或)、xor(异或)、not(非)等),以及三角函数运算(例如正弦、余弦、正切等)。如将明白,前述运算列表并不意在是详尽的,且也不意在是限制性的,且处理系统122可经配置以执行其它算术及/或逻辑运算(或引起其它算术及/或逻辑运算的执行)。
51.在控制电路系统120已对(若干)位串执行算术及/或逻辑运算之后,控制电路系统120可引起所得位串(例如,表示算术运算及/或逻辑运算的结果的所得位串)传送到主机102及/或神经形态存储器阵列130。在一些实施例中,可将所得位串发送到神经形态存储器阵列130且可将所得位串的数据输入到神经形态存储器阵列130的神经网络。例如,所得位串可用作由多个神经元(例如,神经元组件)125-1、125-2、125-3、125-4、125-5、125-6(后文中被称为神经元组件125)执行的数个神经形态运算的输入。在一些实施例中,例如,控制电路系统120可以柱格式将(若干)所得位串传送到主机102及/或神经形态存储器阵列130。神经元组件125可彼此耦合且耦合到神经形态存储器阵列130内的其它元件,如下文将关联图5a到5c进一步描述。
52.控制电路系统120可进一步包含存储器资源124,所述存储器资源可通信地耦合到处理资源122。存储器资源124可包含易失性存储器资源、非易失性存储器资源或易失性及非易失性存储器资源的组合。在一些实施例中,存储器资源124可为随机存取存储器(ram),例如静态随机存取存储器(sram)。然而,实施例不限于此,且存储器资源124可为:高速缓存、一或多个寄存器、nvram、reram、feram、mram、pcm);“新兴”存储器装置,例如3-d交叉点(3d xp)存储器装置;或其组合。
53.控制电路系统120可经由一或多个通道107通信地耦合到神经形态存储器阵列130。例如,神经形态存储器阵列130可为dram阵列、sram阵列、stt ram阵列、pcram阵列、tram阵列、rram阵列、nand快闪存储器阵列及/或nor快闪存储器阵列。阵列130可包括布置成由存取线(其在本文中可被称为字线或选择线)耦合的行及由感测线(其在本文中可被称为数据线或数字线)耦合的列的存储器单元。尽管在图1中展示单个阵列130,但实施例并不限于此。例如,存储器装置104数个存储器阵列130(例如,dram单元、nand快闪存储器单元的数个存储体等)。此外,阵列130可包含布置成行及列且耦合到存储器单元的神经元125,如下文将关联5c进一步描述。
54.图1的实施例可包含未经说明以免模糊本公开的实施例的额外电路系统。例如,存储器装置104可包含用来锁存经由i/o连接通过i/o电路系统提供的地址信号的地址电路系统。地址信号可由行解码器及列解码器接收及解码以存取存储器装置104及/或神经形态存储器阵列130。所属领域的技术人员将明白,地址输入连接的数目可取决于存储器装置104及/或存储器阵列130的密度及架构。
55.图2a是根据本公开的数个实施例的呈包含设备200的计算系统的形式的另一功能框图,所述设备包含主机202及存储器装置204。存储器装置204可包含控制电路系统220,其可类似于图1中所说明的控制电路系统120。类似地,主机202可类似于图1中所说明的主机102,且存储器装置204可类似于图1中所说明的存储器装置104,且神经形态存储器阵列230可类似于图1中所说明的神经形态存储器阵列130。所述组件中的每一者(例如,主机202、控
制电路系统220、处理资源222、存储器资源224及/或神经形态存储器阵列230等)在本文中可单独地被称为“设备”。
56.主机202可经由一或多个通道203、205通信地耦合到存储器装置204。通道203、205可为接口、总线、通信路径或允许在主机202与存储器装置204之间传送数据及/或命令的其它物理连接。通道203、205可用来在存储器系统204与主机202之间传送数据且可呈标准化接口的形式。
57.当存储器系统204用于计算系统200中的数据存储时,通道203、205可为串行高级技术附件(sata)、外围组件互连高速(pcie)或通用串行总线(usb)、双倍数据速率(ddr)接口以及其它连接器及接口。然而,一般来说,通道203、205可提供用于在存储器系统204与主机202之间传递控制、地址、数据及其它信号的具有用于通道203、205的兼容接收器的接口。在一些实施例中,可经由通道203、205从所述主机传送引起待由控制电路系统220执行的操作的启动(例如,对呈posit格式的(若干)位串执行算术及/或逻辑运算的操作)的命令。
58.应注意,在一些实施例中,控制电路系统220可在缺乏来自主机202的中介命令的情况下响应于经由通道203、205中的一或多者从主机202传送的启动命令而执行算术及/或逻辑运算。即,一旦控制电路系统220已从主机202接收启动运算的执行的命令,就可由控制电路系统220在缺乏来自主机202的额外命令的情况下执行运算。然而,在一些实施例中,控制电路系统220可在缺乏来自主机202的指定待执行运算的命令(例如,启动命令)的情况下响应于接收到位串(例如,呈posit格式的位串)而执行运算。例如,控制电路系统220可经配置以响应于接收到(若干)位串而对(若干)经接收位串自行启动算术及/或逻辑运算的执行。然而,在一些实施例中,响应于接收到对数据执行神经形态运算的命令,可在将数据发送到神经形态存储器阵列230时将数据转换为模拟格式。
59.如本文中所使用,“第一精度水平”及“第二精度水平”通常是指表示使用一或多个位串执行的运算结果的位串及/或所得位串的准确度。例如,浮点格式位串在本文中可被描述为具有“第一精度水平”,而unum位串(例如,posit格式位串)可被称为具有特定精度或“第二精度水平”,因为如在本文中更详细地描述,unum位串在某些条件下可提供比浮点格式的数字更高的精度。
60.在一些实施例中,浮点格式或unum格式可指数字格式,而额外格式可包含模拟格式。数字格式可使用离散值,例如“0”或“1”,而模拟格式可使用更连续的值且可表示沿该连续的物理测量值。
61.如图2a中所展示,存储器装置204可包含寄存器存取组件206、高速接口(hsi)208、控制器210、一或多个外围感测放大器(psa)212、主存储器输入/输出(i/o)电路系统214、行地址选通(ras)/列地址选通(cas)链控制电路系统216、ras/cas链组件218、控制电路系统220及神经形态存储器阵列230。如图2a中所展示,控制电路系统220位于存储器装置204的在物理上不同于神经形态存储器阵列230的区域中。即,在一些实施例中,控制电路系统220位于神经形态存储器阵列230的外围位置中。
62.寄存器存取组件206可促进数据从主机202到存储器装置204及从存储器装置204到主机202的传送及提取。例如,寄存器存取组件206可存储地址(或促进地址查),例如存储器地址,所述地址对应于待从存储器装置204传送到主机202或从主机202传送到存储器装置204的数据。在一些实施例中,寄存器存取组件206可促进传送及提取待由控制电路系
统220操作的数据,及/或寄存器存取组件206可促进传送及提取已由控制电路系统220操作的数据以传送到主机202。
63.hsi 208可在主机202与存储器装置204之间提供用于穿过通道205的命令及/或数据的接口。hsi 208可为双倍数据速率(ddr)接口,例如ddr3、ddr4、ddr5等接口。然而,实施例不限于ddr接口,且hsi 208可为四倍数据速率(qdr)接口、外围组件互连(pci)接口(例如,外围组件互连高速(pcie)或用于经由(若干)通道203、205在主机202与存储器装置204之间传送命令及/或数据的其它合适接口。
64.控制器210可负责执行来自主机202的指令及存取控制电路系统220及/或神经形态存储器阵列230。控制器210可为状态机、序列发生器或某种其它类型的控制器。控制器210可从主机202接收命令(经由例如hsi 208),且基于经接收命令来控制控制电路系统220及/或神经形态存储器阵列230的操作。在一些实施例中,控制器210可从主机202接收引起使用控制电路系统220对经接收位串执行算术及/或逻辑运算的命令。响应于接收到此命令,控制器210可指示控制电路系统220开始执行(若干)算术及/或逻辑运算。
65.在一些实施例中,控制器210可为全局处理控制器且可对存储器装置204提供电力管理功能。电力管理功能可包含控制由存储器装置204及/或神经形态存储器阵列230消耗的电力。例如,控制器210可控制提供到神经形态存储器阵列230的各个存储体的电力以控制在存储器装置204的操作期间神经形态存储器阵列230的哪些存储体在不同时间操作。这可包含关闭神经形态存储器阵列230的某些存储体,同时将电力提供到神经形态存储器阵列230的其它存储体以优化神经形态存储器装置230的电力消耗。在一些实施例中,控制存储器装置204的电力消耗的控制器210可包含控制到存储器装置204的各个核心及/或到控制电路系统220、神经形态存储器阵列230等的电力。
66.(若干)psa 212意在提供感测(例如,读取、存储、高速缓冲存储)神经形态存储器阵列230中的存储器单元的数据值且不同于神经形态存储器阵列230的额外功能性(例如,外围放大器)。psa 212可包含锁存器及/或寄存器。例如,额外锁存器可被包含在psa 212中。psa 212的锁存器可位于存储器装置204的神经形态存储器阵列230的外围(例如,在存储器单元的一或多个存储体的外围)。
67.主存储器输入/输出(i/o)电路系统214可促进数据及/或命令到及从神经形态存储器阵列230的传送。例如,主存储器i/o电路系统214可促进位串、数据及/或命令自主机202及/或控制电路系统220到神经形态存储器阵列230及从神经形态存储器阵列230的传送。在一些实施例中,主存储器i/o电路系统214可包含一或多个直接存储器存取(dma)组件,所述dma组件可将位串(例如,存储为数据块的posit位串)从控制电路系统220传送到神经形态存储器阵列230,且反之亦然。
68.在一些实施例中,主存储器i/o电路系统214可促进将位串、数据及/或命令从神经形态存储器阵列230传送到控制电路系统220使得控制电路系统220可对位串执行算术及/或逻辑运算。类似地,主存储器i/o电路系统214可促进将已由控制电路系统220对它们执行一或多个运算的位串传送到神经形态存储器阵列230。以这种方式,在将呈unum或posit格式的数据存储在除神经形态存储器阵列230以外的阵列或其它位置中时,控制电路系统220可对所述数据操作以执行算术及/或逻辑运算;且在将所述数据存储在神经形态存储器阵列230中时,可使用所述数据来执行神经形态运算。如本文中更详细地描述,所述运算可包
含对呈posit格式的位串执行的算术运算、对呈posit格式的位串执行的逻辑运算、对呈posit格式的位串执行的逐位运算等及对呈posit格式的位串执行的神经形态运算。
69.行地址选通(ras)/列地址选通(cas)链控制电路系统216及ras/cas链组件218可结合神经形态存储器阵列230一起用来锁存行地址及/或列地址以启动存储器循环。在一些实施例中,ras/cas链控制电路系统216及/或ras/cas链组件218可解析神经形态存储器阵列230的行及/或列地址,待在所述行及/或列地址处启动或终止与神经形态存储器阵列230相关联的读取及写入操作。例如,在使用控制电路系统220的操作完成之后,ras/cas链控制电路系统216及/或ras/cas链组件218可锁存及/或解析已由控制电路系统220操作的位串将被存储到的神经形态存储器阵列230中的特定位置。类似地,ras/cas链控制电路系统216及/或ras/cas链组件218可锁存及/或解析在控制电路系统220对呈模拟格式的(若干)位串执行神经形态运算之前位串待从其传送到控制电路系统220的神经形态存储器阵列230中的特定位置。
70.如上文结合图1所描述,神经形态存储器阵列230可为例如dram阵列、sram阵列、stt ram阵列、pcram阵列、tram阵列、rram阵列、nand快闪存储器阵列及/或nor快闪存储器阵列,尽管实施例不限于这些特定实例。神经形态存储器阵列230可用作图2中所展示的计算系统200的主存储器。在一些实施例中,神经形态存储器阵列230可经配置以存储由控制电路系统220操作的位串及/或存储待传送到控制电路系统220的位串。神经形态存储器阵列230可包含阵列部分232。阵列部分232可包含用来执行数个神经形态运算的多个神经元(例如,神经元组件)225-1、225-2、225-3(后文中统称为神经元225),如下文将描述。神经元225可耦合到多个算术逻辑单元(alu)226-1、226-2、226-3(后文中统称为alu 226)
71.控制电路系统220可包含逻辑电路系统(例如,图1中所说明的处理资源122)及/或(若干)存储器资源(例如,图1中所说明的存储器资源124)。如上文结合图1所描述及下文结合图6更详细地描述,控制电路系统220可经配置以接收呈posit格式的一或多个位串且引起由神经形态存储器阵列230使用呈posit格式的一或多个位串来执行神经形态运算。
72.例如,位串(例如,数据、多个位等)可由控制电路系统220以第一格式(例如,posit格式)从例如主机202及/或由神经形态存储器阵列230以第一格式(例如,posit格式)接收,且由控制电路系统220存储例如在控制电路系统220的存储器资源(例如,本文在图6中所说明的存储器资源624)中。控制电路系统220可对(若干)位串执行算术及/或逻辑运算(或引起对(若干)位串执行算术及/或逻辑运算),如本文中结合图6更详细地描述。
73.如结合图3及4a到4b更详细地描述,与以浮点格式表示的对应位串相比,posit可提供改进的准确度(例如,精度)且可需要更少的存储空间(例如,可含有更少量的位)。因此,通过使用控制电路系统220使用神经网络的神经元,使用posit位串来执行神经形态运算,与利用posit位串来在存储器阵列外部执行神经形态运算的方法相比较,可改进计算系统200的性能,这是因为可在存储器阵列内部更快地执行神经形态运算(例如,因为神经形态运算使自身在位于存储器阵列内时更高效)。
74.如上文所描述,一旦控制电路系统220已从主机202及/或神经形态存储器阵列230接收posit位串,控制电路系统220就可对经接收posit位串执行算术及/或逻辑运算(或引起算术及/或逻辑运算的执行)。例如,控制电路系统220可经配置以对经接收posit位串执行算术运算(或引起算术运算的执行),例如加法、减法、乘法、除法、融合乘法加法、乘积累
加、点积单元、大于或小于、绝对值(例如,fabs())、快速傅立叶变换、快速傅立叶逆变换、sigmoid函数、卷积、平方根、指数及/或对数运算,及/或逻辑运算(例如and、or、xor、not等),以及三角函数运算(例如正弦、余弦、正切等)。将明白,前述运算列表并不意在是详尽的,且前述运算列表也并不意在是限制性,且控制电路系统220可经配置以对(或引起对)posit位串执行其它算术及/或逻辑运算。
75.在一些实施例中,控制电路系统220可结合一或多种机器学习算法的执行来执行上文所列出的运算。例如,控制电路系统220可执行与一或多个神经网络相关的例如神经形态存储器阵列230中使用的运算。神经网络可允许随着时间的推移而训练算法以基于输入信号来确定输出响应。例如,随着时间的推移,神经网络本质上可学习更好地最大化完成特定目标的机会。这在机器学习应用中可为有利的,因为神经网络可随着时间的推移而用新数据来训练以实现完成特定目标的机会的更好最大化。神经网络可随时间的推移而训练以改进特定任务及/或特定目标的操作。然而,在一些方法中,当在存储器阵列中及外传送数据以便由外部装置处理时,机器学习(例如,神经网络训练)可为处理密集型(例如,可消耗大量计算机处理资源)及/或可为时间密集型(例如,可需要执行消耗多个循环的漫长计算)。相比之下,通过使用神经元225来执行此类运算以对位串执行此类神经形态运算,执行所述运算时消耗的处理资源量及/或时间量与其中在使用存储器阵列外部的元件来执行此类运算的方法相比较可有所减少。
76.图2b是根据本公开的数个实施例的呈包含主机202、存储器装置204、专用集成电路223及现场可编程门阵列221的计算系统200的形式的功能框图。所述组件中的每一者(例如,主机202、存储器装置204、fpga 221、asic 223等)在本文中可单独地被称为“设备”。
77.如图2b中展示,主机202可经由(若干)通道203耦合到存储器装置204,所述通道可类似于图1中说明的(若干)通道103。现场可编程门阵列(fpga)221可经由(若干)通道217耦合到主机202且专用集成电路(asic)223可经由(若干)通道219耦合到主机202。在一些实施例中,(若干)通道217及/或(若干)通道219可包含外围串行互连高速(pcie)接口,然而实施例不限于此,且(若干)通道217及/或(若干)通道219可包含其它类型的接口、总线、通信通道等以促进数据在主机202与fpga 221及/或asic 223之间的传送。
78.如上文描述,可由fpga 221及/或asic 223执行的算术及/或逻辑运算的非限制性实例包含使用posit位串的算术运算,例如加法、减法、乘法、除法、融合乘法加法、乘积累加、点积单元、大于或小于、绝对值(例如,fabs())、快速傅立叶变换、快速傅立叶逆变换、sigmoid函数、卷积、平方根、指数及/或对数运算,及/或逻辑运算(例如and、or、xor、not等)以及三角函数运算(例如正弦、余弦、正切等)。
79.fpga 221可包含状态机227及/或(若干)寄存器229。状态机227可包含经配置以对输入执行运算且产生输出的一或多个处理装置。例如,fpga 221可经配置以从主机202接收posit位串且对posit位串执行算术及/或逻辑运算以产生表示对经接收posit位串执行的运算结果的所得posit位串。此外,fpga 221可经配置以引起在神经形态存储器阵列230中使用神经元来执行神经形态运算,如下文将关联图5a到5c进一步描述。
80.fpga 221的(若干)寄存器229可经配置以在状态机227对从主机202接收的posit位串执行运算之前缓冲及/或存储经接收posit位串。此外,fpga 221的(若干)寄存器229可经配置以在将对经接收posit位串执行的运算结果传送到asic 233外部的电路系统,例如
主机202或存储器装置204等之前缓冲及/或存储表示所述结果的所得posit位串。
81.asic 223可包含逻辑241及/或高速缓存243。逻辑241可包含经配置以对输入执行运算且产生输出的电路系统。在一些实施例中,asic 223经配置以从主机202接收posit位串且对posit位串执行算术及/或逻辑运算以产生表示对经接收posit位串执行的运算结果的所得posit位串。同样地,asic 223可促进对位串执行后续神经形态运算。
82.asic 223的高速缓存243可经配置以在逻辑241对从主机202接收的posit位串执行运算之前缓冲及/或存储经接收posit位串。另外,asic 223的高速缓存243可经配置以在将对经接收posit位串执行的运算结果传送到asic 233外部的电路系统,例如主机202或存储器装置204等之前缓冲及/或存储表示所述结果的所得posit位串。
83.尽管fpga 227被展示为包含状态机227及(若干)寄存器229,但在一些实施例中,除了状态机227及/或(若干)寄存器229以外或代替状态机227及/或(若干)寄存器229,fpga 221还可包含例如逻辑241的逻辑及/或例如高速缓存243的高速缓存。类似地,在一些实施例中,除了逻辑241及/或高速缓存243以外或代替逻辑241及/或高速缓存243,asic 223还可包含例如状态机227的状态机及/或例如(若干)寄存器229的(若干)寄存器。
84.图3是具有es个指数位的n位通用数字或“unum”的实例。在图3的实例中,n位unum是posit位串331。如图3中所展示,n位posit 331可包含(若干)符号位集(例如,符号位333)、底数位集(例如,底数位335)、指数位集(例如,指数位337)及尾数位集(例如,尾数位339)。尾数位339可替代地被称为“小数部分”或“小数位”,且可表示在小数点后面的位串(例如,数字)的一部分。
85.符号位333对于正数可为零(0)且对于负数为一(1)。结合下表1描述底数位335,表1展示(二进制)位串及它们的相关数值含义k。在表1中,数值含义k由位串的游程长度确定。表1的二进制部分中的字母x指示位值与底数的确定无关,因为(二进制)位串响应于连续位翻转或在到达位串的末尾时终止。例如,在(二进制)位串0010中,位串响应于0翻转到1且接着返回到0而终止。因此,最后的0与底数无关且底数要考虑的是前导相同位及终止位串的第一相反位(如果位串包含此类位)。
86.二进制00000001001x01xx10xx110x11101111数值(k)-4-3-2-10123
87.表1
88.在图3中,底数位335r对应于位串中的相同位,而底数位335对应于终止位串的相反位。例如,对于表1中所展示的数值k值-2,底数位r对应于前两个前导0,而(若干)底数位对应于1。如上文所指出,对应于数值k的由表1中的x表示的最终位与底数无关。
89.如果m对应于位串中相同位的数目,如果位是0,那么k=-m。如果位是1,那么k=m

1。这在表1中进行说明,其中例如(二进制)位串10xx具有单个1且k=m

1=1-1=0。类似地,(二进制)位串0001包含三个0因此k=-m=-3。底数可指示useedk的比例因子,其中在下表2中展示used的若干实例值。
90.es01234used222=442=16162=2562562=65536
91.表2
92.指数位337对应于指数e,作为无符号数。与浮点数相比,本文中所描述的指数位337可不具有与其相关联的偏差。因此,本文中所描述的指数位337可表示按因子2e缩放。如图3中所展示,取决于在n位posit 331的底数位335的右边留有多少位,可存在高达es个指数位(e1、e2、e3、

、e
es
)。在一些实施例中,这可允许n位posit 331的渐缩准确度,其中在量值上更接近1的数字具有比非常大或非常小的数字更高的准确度。然而,由于非常大或非常小的数字在特定种类的运算中不常用,因此在各种各样情况中可期望图3中所展示的n位posit 331的渐缩准确度行为。
93.尾数位339(或小数位)表示任何额外位,其可为位于指数位337右边的n位posit 331的部分。类似于浮点位串,尾数位339表示小数f,其可类似于小数1.f,其中f包含在1后面的小数点右边的一或多个位。然而,与浮点位串相比,在图3中所展示的n位posit 331中,“隐藏位”(例如,1)可始终为1(例如,一),而浮点位串可包含具有“隐藏位”0的次正规数(例如,0.f)。
94.图4a是3位posit 431的正值的实例。在图4a中,仅投影实数的右半部,然而将明白,对应于图4a中所展示的它们的正对应数的负投影实数可存在于表示围绕图4a中所展示的曲线的y轴的变换的曲线上。
95.在图4a的实例中,es=2,因此posit 431的精度可通过将位附加到位串来增加,如图4b中所展示。例如,将具有值一(1)的位附加到posit 431-1的位串会增加posit 431-1的准确度,如由图4b中的posit 431-2所展示。类似地,将具有值一的位附加到图4b中的posit 431-2的位串会增加posit 431-2的准确度,如由图4b中所展示的posit 431-3所展示。以下是可用来将位附加到图4a中所展示的posit 431-1的位串以获得图4b中所说明的posit 431-2、431-3的插值规则的实例。
96.如果maxpos是图4b中所展示的posit 431-1、431-2、431-3的位串的最大正值且minpos是posit 431-1、431-2、431-3的位串的最小值,那么maxpos可等于useed且minpos可等于在maxpos与
±
∞之间,新位值可为maxpos*useed,且在0与minpos之间,新位值可为这些新位值可对应于新底数位335。在现存值x=2m与y=2n之间,其中m与n相差超过1,新位值可由几何平均数给定:其对应于新指数位337。如果新位值在现存x值与接近其的y值中间,那么新位值可表示算术平均数其对应于新尾数位339。
97.图4b是使用两个指数位的posit构造的实例。在图4b中,仅投影实数的右半部,然而将明白,对应于图4b中所展示的它们的正对应数的负投影实数可存在于表示围绕图4b中所展示的曲线的y轴的变换的曲线上。图4b中所展示的posit 431-1、431-2、431-3各自仅包含两个异常值:当位串的所有位是零时,为零(0);及当位串是其后全为零的一(1)时,为
±
∞。应注意,图4中所展示的posit 431-1、431-2、431-3的数值确切为useedk。即,图4中所展示的posit 431-1、431-2、431-3的数值确切为useed的由底数(例如,上文结合图3描述的底数位335)表示的k值的次幂。在图4b中,posit 431-1具有es=2,因此posit 431-2具有es=3,因此且posit 431-3具有es=4,因此
98.作为将位添加到3位posit 431-1以产生图4b的4位posit 431-2的说明性实例,
useed=256,因此对应于useed 256的位串具有附加到其的额外底数位且前者useed 16具有附加到其的终止底数位如上文描述,在现存值之间,对应位串具有附加到其的额外指数位。例如,数值1/16、1/4、1及4将具有附加到其的指数位。即,对应于数值4的最终一是指数位,对应于数值1的最终零是指数位等。这种模式可进一步见于posit 431-3中,posit 431-3是根据上文规则从4位posit 431-2产生的5位posit。如果将另一位添加到图4b中的posit 431-3以产生6位posit,那么尾数位339将被附加到1/16与16之间的数值。
99.以下是对posit(例如,posit 431)进行解码以获得其等效数值的非限制性实例。在一些实施例中,对应于posit p的位串是在-2
n-1
到2
n-1
的范围内的无符号整数,k是对应于底数位335的整数且e是对应于指数位337的无符号整数。如果尾数位339的集表示为{f
1 f2ꢀ…ꢀffs
}且f是由1.f
1 f2ꢀ…ꢀffs
表示的值(例如,由1后接小数点后接尾数位339表示),那么p可由下文方程式2给定。
[0100][0101]
方程式1
[0102]
下文结合下表3中所展示的posit位串0000110111011101提供对posit位串进行解码的另一说明性实例。
[0103]
符号底数指数尾数0000110111011101
[0104]
表3
[0105]
在表3中,将posit位串0000110111011101分解成其构成位集(例如,符号位333、底数位335、指数位337及尾数位339)。由于在表3中所展示的posit位串中es=3(例如,因为存在三个指数位),因此useed=256。因为符号位333是零,因此对应于表3中所展示的posit位串的数值表达式的值是正的。底数位335具有对应于值-3的三个连续零的游程(如上文结合表1所描述)。因此,由底数位335促成的比例因子是256-3
(例如,useedk)。指数位337将五(5)表示为无符号整数且因此促成额外比例因子2e=25=32。最后,在表3中给定为11011101的尾数位339将二百二十一(221)表示为无符号整数,因此上文给定为f的尾数位339是使用这些值及方程式1,对应于表3中所给定的posit位串的数值是
[0106]
图5a是根据本公开的数个实施例的呈外围感测放大器512、存储器阵列530、多个多路复用器545及多个算术逻辑单元(alu)526的形式的功能框图550。神经形态存储器阵列530可从主机(例如,图1、2a、2b中的主机102、202)或其它外部装置接收数据。数据可包含呈特定格式(例如,unum数或posit格式)的位串。呈posit格式的数据可存储在外围感测放大器(psa)512及/或存储器装置(例如图1中的存储器装置104)内的其它位置处。psa 512可耦合到多个多路复用器(“mux”)545-1、545-2、545-3(后文中统称为mux 545)且呈posit格式的数据可通过mux 545发送到神经元组件525-1、525-2、525-3、525-4、525-5、525-6、525-7、525-8、525-8(后文中统称为神经元组件525)。神经元组件525可对数据执行数个神经形态
运算。此外,神经元组件525可将数据及/或对数据执行神经形态运算的结果发送到额外装置。例如,神经元组件525可耦合到多个算术逻辑单元(alu)526-1、526-2、526-3(后文中被称为alu 526)。神经元组件525可将数据或结果发送到alu以执行额外运算(例如,relu运算、西格玛运算等)。
[0107]
在一个实施例中,可使用神经元组件525作为神经网络来执行神经形态运算。一些神经形态系统可使用电阻式ram(rram),例如pcm装置或自选择存储器装置存储突触的值(或权重)(例如,突触权重)。此可变电阻存储器可包含经配置以存储多个电平及/或可具有宽感测窗口的存储器单元。这种类型的存储器可经配置以通过由脉冲(例如,尖峰)控制执行训练操作。此类训练操作可包含尖峰时序相依可塑性(stdp)。stdp可为由在节点(例如,神经元)之间传输的尖峰之间的相关性引发的希伯莱学习的形式。stdp可为调节节点(例如,神经元)之间的连接强度的过程的实例。
[0108]
在神经网络中,突触权重是指两个节点(例如,神经元)之间的连接强度或振幅。通过神经网络传输的信息的性质及内容可部分地基于形成在节点之间的表示突触的连接的性质。例如,连接的性质可为突触权重。神经形态系统及装置可尤其经设计以实现传统计算机架构不可能达成的结果。例如,神经形态系统可用来实现更普遍地与生物系统相关联的结果,例如学习、视力或视觉处理、听觉处理、高级计算或其它过程,或其组合。作为实例,突触权重及/或至少两个存储器单元之间的连接可表示突触,或突触的连接性的强度或程度且与相应短期连接或长期连接相关联,这对应于短期及长期记忆的生物学发生。可执行一系列神经网络运算以便取决于使用哪种类型的存储器单元而按短期或长期方式增加至少两个存储器单元之间的突触权重,如下文将描述。
[0109]
神经网络运算的学习事件可表示神经元当中的尖峰的因果传播,其实现连接突触的权重增加。突触的权重增加可由存储器单元的电导率增加表示。可变电阻存储器阵列(例如3d交叉点或自选择存储器(ssm)阵列)可模仿各自以权重或存储器单元电导为特征的突触的阵列。电导越大,突触权重就越大且记忆学习程度就越高。短期记忆学习可为快速及/或可逆的记忆学习,其中突触的模拟权重被增强,即,其导电通过可逆机制增加。长期记忆学习可为缓慢及/或不可逆的记忆学习,其中单元电导对于特定状态(例如,set或reset)不可逆地增加,从而导致来自更长、经验相依学习的难忘记忆。
[0110]
本文中描述了神经形态运算可用来模仿神经系统中可能存在的神经生物架构及/或用来存储与长期及短期学习或关系相关联的突触权重。存储器设备可包含存储器阵列,所述存储器阵列包含第一部分及第二部分。存储器阵列的第一部分可包含第一多个可变电阻存储器单元且第二部分可包含第二多个可变电阻存储器单元。第二部分可通过强制写入循环来降级。降级机制可包含对硫属化物材料的损坏。在包含由除硫属化物材料以外的材料构成的存储器单元的一些实施例中,降级机制可包含存储器单元之间的热关系、经由存储器单元之间的控制栅极耦合的控制、对应于存储器单元的电荷损失、温度引发的信号或阈值损失等。
[0111]
可对由神经形态存储器阵列530接收的数据执行这些神经形态运算。预期神经网络用来检测由数据或数据中的模式表示的特定事件,神经网络可接收用来训练神经网络的大量数据(在下文所描述的图5b中可被称为模拟权重559)(例如,使用发送到神经元组件525的数据)。在一个实施例中,在接收包含位串的数据时,可将模拟权重添加到数据值以便
针对后续神经形态处理训练神经网络。训练可包含大量数据,其允许神经形态存储器阵列530的神经网络正确地解释数据且提供所期望的或有帮助的结果。使用上文所描述的神经网络处理,大量数据可训练神经形态存储器阵列530的神经网络以检测事件或模式且在这样做时变得更有效及高效。
[0112]
可将神经形态运算的所得值发送到神经形态存储器阵列530外部以进一步处理到alu 526及/或其它存储位置。以这种方式,可对数据的同一部分进行多级处理。例如,可从主机发送命令以对数据集执行算术/逻辑运算及神经形态运算。
[0113]
取决于处理顺序,可在数据位于神经形态存储器阵列530外部时执行算术运算。可将算术运算的结果发送到神经形态存储器阵列530以执行神经形态运算。在执行神经形态运算之后,可将数据从神经元组件525发送到存储器装置内的其它位置。可将神经形态运算的结果发送到神经元组件525外部且可执行后续算术运算。可将神经形态运算及/或算术运算的结果发送回到主机。
[0114]
如本文中所使用,神经网络运算或神经形态运算可包含经执行以确定所述神经网络中的至少一者的一或多个隐藏层的运算。一般来说,神经网络可包含至少一个输入层、至少一个隐藏层及至少一个输出层。所述层可包含可各自接收输入且产生加权输出的多个神经元。在一些实施例中,(若干)隐藏层的神经元可计算从(若干)输入层接收的输入的加权和及/或平均值以及它们的相应权重且将此信息传递到(若干)输出层。
[0115]
在一些实施例中,可通过利用由经训练神经网络在它们的训练期间学习的知识以训练未训练神经网络来执行神经网络或神经形态运算。这可通过减少对已由经训练神经网络学习的信息的再训练来减少花费在训练未训练神经网络中的时间及资源。另外,本文中的实施例可允许已在特定训练方法论下训练的神经网络用不同训练方法论训练未训练神经网络。例如,可在tensorflow方法论下训练神经网络且接着可在mobilenet方法论下训练未训练神经网络(或反之亦然)。然而,实施例不限于这些特定实例,且在本公开的范围内可考虑其它训练方法论。
[0116]
图5b是根据本公开的数个实施例的呈包含乘法器557、累加器559、内部alu 551及寄存器555的神经元组件525的形式的功能框图。神经元组件525可包含神经元电路系统552,所述神经元电路系统经配置以操作乘法器557、累加器559、内部alu 551及寄存器555以便执行神经形态运算。神经元电路系统552可包含用来执行神经形态运算的硬件、逻辑或一或多个处理装置。作为实例,神经元组件525可从多路复用器(例如,图5a中的mux 545)接收数据且神经元组件525的神经元电路系统552可引起数据作为输入发送到乘法器557中。神经元电路系统552可引起乘法器557对所接收数据值执行乘法运算且将乘法运算的结果作为输出发送到加法器559。加法器559可耦合到位串寄存器555。位串寄存器555可存储指示使用posit的神经形态运算的结果的上溢的数据值。内部alu(例如,“迷你alu”)551可将输入提供到乘法器557接收的数据中。此外,累加器(“accum”)553可累加加法器559的输出且将其作为输入提供到加法器559。
[0117]
以这种方式,神经元组件525可使用神经元电路系统552来操作乘法器557、加法器559、累加器553及内部alu 551以对数据执行神经形态运算且将结果存储在位串寄存器555中。可将位串寄存器555的输出发送到alu(例如图5a中的alu 526)以对数据执行进一步运算(例如relu运算、西格玛运算等)。
[0118]
图5c是根据本公开的数个实施例的存储器阵列530的一部分的功能框图。阵列530包含耦合到存取线554-0、554-1、554-2、554-3、554-4、554-5、554-6、

、554-r(通常被称为存取线554)的行及感测线505-0、505-1、505-2、505-3、505-4、505-5、505-6、505-7、

、505-s(通常被称为感测线556)的列的多个存储器单元501-0到501-j。存储器阵列330不限于特定数目个存取线及/或感测线,且术语“行”及“列”的使用并不意指存取线及/或感测线的特定物理结构及/或定向。尽管未描绘,但存储器单元的每一列可与对应互补感测线对(例如,图2a中的互补感测线205-1及205-2)相关联。
[0119]
存储器阵列530可包含由多个存储器单元501组成的多个神经元525-1、525-2。例如,如图5c中所说明,十六个存储器单元可组成一个神经元。然而,实例不限于此。任何数目个存储器单元可组成所述神经元。存储器单元501中的每一者可组成所述神经元的组件,如图5b中所说明。
[0120]
存储器单元的每一列可耦合到感测电路系统(例如,感测放大器547)。在这个实例中,感测电路系统包括耦合到相应感测线556-0、556-1、556-2、556-3、556-4、556-5、556-5、556-6、556-7、

、556-s的多个感测放大器547-0、547-1、547-2、547-3、547-4、547-5、547-6、547-7、

、547-u(统称为感测放大器547)。感测放大器547经由存取装置(例如,晶体管)549-0、549-1、549-2、549-3、549-4、549-5、549-6、549-7、

、549-v耦合到输入/输出(i/o)线334(例如,本地i/o线)。在这个实例中,感测电路系统还包括对应于相应感测放大器547且耦合到相应感测线556的数个计算组件331-0、331-1、331-2、331-3、331-4、331-5、331-6、331-7、

、331-x。列解码线558-1到558-w分别耦合到晶体管549-1到549-v的栅极,且可选择性地经激活以将由相应感测放大器547-0到547-u感测及/或存储在相应计算组件331-0到331-x中的数据传送到次级感测放大器561。在数个实施例中,计算组件331可形成在与它们的对应列的存储器单元及/或对应感测放大器547的节距上。
[0121]
在数个实施例中,感测电路系统(例如,计算组件331及感测放大器547)经配置以对存储在阵列330中的元素执行带符号除法运算。作为实例,各自包括四个数据单位的多个元素(例如,4位元素)可存储在多个存储器单元中。多个元素中的第一4位元素可存储在耦合到第一感测线(例如,556-0)及数个存取线(例如,554-0、554-1、554-2、554-3)的第一组存储器单元中,且第二元素可存储在耦合到第二感测线(例如,556-1)及数个存取线(例如,感测线554-0、554-1、554-2、554-3)的第二组存储器单元中。因而,第一元素及第二元素分别存储在存储器单元的第一列及第二列中。
[0122]
图6是根据本公开的数个实施例的呈包含控制电路系统620的设备600的形式的功能框图。控制电路系统620可包含逻辑电路系统622及存储器资源624,所述逻辑电路系统及存储器资源可类似于本文在图1中所说明的处理资源122及存储器资源124。逻辑电路系统622及/或存储器资源624可单独地视为“设备”。
[0123]
控制电路系统620可经配置以从主机(例如,本文在图1、2a及2b中所说明的主机102/202)接收呈posit格式的位串。在一些实施例中,posit位串可存储在存储器资源624中。一旦已由控制电路系统620接收位串,就可在缺乏来自所述主机及/或控制器的中介命令的情况下对posit位串执行算术及/或逻辑运算。例如,控制电路系统620可包含足够的处理资源及/或指令以对存储在存储器资源624中的位串执行算术及/或逻辑运算,而无需从控制电路系统620外部的电路系统接收额外命令。
[0124]
逻辑电路系统622可为算术逻辑单元(alu)、状态机、序列发生器、控制器、指令集架构(isa)或其它类型的控制电路系统。如上文所描述,alu可包含用来对整数二进制数,例如呈posit格式的位串执行例如上文所描述的运算的运算(例如,算术运算、逻辑运算、逐位运算等)的电路系统。指令集架构(isa)可包含精简指令集计算(risc)装置。在其中逻辑电路系统622包含risc装置的实施例中,risc装置可包含可采用指令集架构(isa),例如risc-v isa的处理资源,然而实施例不限于risc-v isa且可使用其它处理装置及/或isa。
[0125]
在一些实施例中,逻辑电路系统622可经配置执行指令(例如,存储在存储器资源624的instr 625部分中的指令)以执行上述运算。例如,逻辑电路系统624配备有足够的处理资源以引起对由控制电路系统620接收的数据(例如,对位串)执行算术及/或逻辑运算。
[0126]
一旦由逻辑电路系统622执行(若干)算术及/或逻辑运算,就可将所得位串存储在存储器资源624及/或存储器阵列(例如,本文在图2a中所说明的神经形态存储器阵列230)中。经存储的所得位串可经寻址使得它们对于运算的执行是可存取的。例如,位串可存储在存储器资源624及/或存储器阵列中的特定物理地址(其可具有与其对应的对应逻辑地址)处使得位串可在执行运算时存取。
[0127]
在一些实施例中,存储器资源624可为存储器资源,例如随机存取存储器(例如,ram、sram等)。然而,实施例不限于此,且存储器资源624可包含各种寄存器、高速缓存、缓冲器及/或存储器阵列(例如,1t1c、2t2c、3t等dram阵列)。存储器资源624可经配置以例如从例如本文在图1、2a中所说明的主机102/202的主机及/或例如本文在图2a中所说明的神经形态存储器阵列230的存储器阵列接收位串(例如,呈posit格式的位串)。在一些实施例中,存储器资源638可具有近似256千字节(kb)的大小,然而实施例不限于这个特定大小,且存储器资源624可具有大于或小于256kb的大小。
[0128]
存储器资源624可划分成一或多个可寻址存储器区。如图6中所展示,存储器资源624可划分成可寻址存储器区使得各种类型的数据可存储在其中。例如,一或多个存储器区可存储由存储器资源624使用的指令(“instr”)625,一或多个存储器区可存储数据626-1、

、626-n(例如,例如从主机及/或存储器阵列检索的位串的数据),及/或一或多个存储器区可用作存储器资源638的本地存储器(“local mem.”)628部分。尽管在图6中展示20个不同存储器区,但将明白,存储器资源624可划分成任何数目个不同存储器区。
[0129]
如上文所论述,可响应于由主机、控制器(例如,本文在图2a中所说明的控制器210)或逻辑电路系统622产生的消息及/或命令而从主机及/或存储器阵列检索(若干)位串。在一些实施例中,可由逻辑电路系统622处理命令及/或消息。一旦(若干)位串由控制电路系统620接收且存储在存储器资源624中,就可由逻辑电路系统622处理所述位串。由逻辑电路系统622处理(若干)位串可包含对(若干)经接收位串执行算术运算及/或逻辑运算。
[0130]
在非限制性神经网络训练应用中,控制电路系统620可接收已从es=0的8位posit转换的模拟位串。与利用es=0的8位posit位串的一些方法相比,模拟位串可比8位posit位串更快地提供神经网络训练结果。
[0131]
图7是表示根据本公开的数个实施例的用于对posit进行神经形态运算的实例方法770的流程图。在框772处,方法770可包含在存储器阵列的神经元组件处从多路复用器接收数据值。数据值可包含呈支持特定精度水平的算术运算的格式的位串。所述格式可为posit格式。此外,所述格式可包含尾数、底数、符号及指数。存储器阵列可类似于图1中所说
明的存储器阵列130及图2a中所说明的存储器阵列230。
[0132]
在框774处,方法770可包含对神经元组件中的数据值执行神经形态运算。神经元组件可类似于图1中的神经元组件125、图2a中的神经元组件225及图5a到5c中的神经元组件525。
[0133]
在框776处,方法770可包含在神经元组件中执行乘积累加(mac)运算以得到mac结果值。在一些实施例中,运算的执行可包含对写入到存储器单元的数据执行神经形态运算。在一些实例中,与对呈第一格式表示的相同数据执行运算相比,对数据执行运算发生在更短的时间量或更少量的子运算中。在一些实施例中,方法770可进一步包含对所述mac结果值执行第二mac运算,从而得到额外mac结果值。
[0134]
在框778处,方法770可包含将mac结果值提供到神经元组件中的位串寄存器。使用写入到存储器单元的数据执行运算以得到呈第二格式的额外数据。方法770可进一步包含将所述mac结果值发送到存储器装置外部的装置。存储器装置外部的装置可为主机。
[0135]
在一些实施例中,方法770可进一步包含在额外神经元组件中对额外数据值执行额外神经形态运算以得到额外mac结果值,其中额外数据值与所述数据值相关。所述方法可进一步包含将额外mac结果值提供到额外神经元组件中的额外位串寄存器且组合所述mac结果值及额外mac结果值。在一些实施例中,组合所述mac结果值及额外mac结果值可增加所述神经元组件及额外神经元组件的结果的精度。
[0136]
在一些实施例中,方法770可进一步包含执行各自在多个相应神经元组件内的多个mac运算。多个相应神经元组件的数量可对应于跨多个相应神经元组件中的每一者内的多个相应位串寄存器存储的数据值的精确度。跨多个相应位串寄存器存储的数据值可经组合以得到导致所述精确度的更大值。在一些实施例中,方法770可进一步包含在神经元组件内的内部alu中执行mac运算的至少一部分。
[0137]
尽管本文中已说明及描述特定实施例,但所属领域的一般技术人员将明白,经计算以实现相同结果的布置可置换所展示的特定实施例。本公开意在涵盖本公开的一或多个实施例的调适或变动。应理解,以说明性方式而非限制性方式进行上述描述。所属领域的技术人员在检阅上文描述之后将明白上述实施例的组合及本文中未明确地描述的其它实施例。本公开的一或多个实施例的范围包含其中使用上述结构及过程的其它应用。因此,应参考所附权利要求书连同此权利要求书所授权的等效物的全范围来确定本公开的一或多个实施例的范围。
[0138]
在前述具体实施方式中,为了简化本公开,将一些特征一起分组在单个实施例中。本公开方法不应被解译为反映本公开的所公开实施例必须使用比每一权利要求中明确所述的特征更多的特征的意图。实情是,如所附权利要求书反映,发明主题在于少于所公开单个实施例的所有特征。因此,所附权利要求特此并入到具体实施方式中,其中每个权利要求独立作为单独实施例。

技术特征:


1.一种设备,其包括:存储器阵列,其包括:多个存储器单元,其经配置以存储包括多个位串的数据;及神经元组件,其驻留在所述存储器阵列上且包括处理装置,所述处理装置经配置以在所述神经元组件的输入层处使用所述多个位串当中的至少一个位串来执行神经形态运算。2.根据权利要求1所述的设备,其中所述多个位串各自呈支持不同精度水平的算术运算的格式。3.根据权利要求2所述的设备,其中支持算术运算的所述格式是通用数字格式。4.根据权利要求2所述的设备,其中支持算术运算的所述格式是类型iii通用数字格式或posit格式。5.根据权利要求2所述的设备,其中支持算术运算的所述格式包含尾数、符号、底数及指数部分。6.根据权利要求1到5中任一权利要求所述的设备,其中所述神经元组件包括:内部alu组件,其在所述神经元组件内且经配置以执行mac运算的至少一部分;累加器;及位串寄存器;及其中所述位串寄存器经配置以确定特定精度水平。7.根据权利要求6所述的设备,其中所述内部alu组件经配置以执行按特定频率执行或被执行特定次数的mac运算。8.根据权利要求1到5中任一权利要求所述的设备,其中:所述神经形态运算包括神经网络运算或机器学习运算;所述神经元组件经配置以将来自执行所述神经形态运算中的至少一者的结果的输出发送到外部电路系统;且所述外部电路系统是算术逻辑单元(alu)。9.一种方法,其包括:在存储器阵列的神经元组件处从多路复用器接收数据值;在所述神经元组件的输入层处使用所述神经元组件的处理装置来对所述神经元组件中的所述数据值执行神经形态运算,所述数据值包含多个位串当中的至少一个位串,其中所述神经形态运算的执行包括:在所述神经元组件中执行乘积累加(mac)运算以得到mac结果值;及将所述mac结果值提供到所述神经元组件中的位串寄存器。10.根据权利要求9所述的方法,其进一步包括对所述mac结果值执行第二mac运算,从而得到额外mac结果值。11.根据权利要求9所述的方法,其进一步包括:在额外神经元组件中对额外数据值执行额外神经形态运算以得到额外mac结果值,其中所述额外数据值与所述数据值相关;及将所述额外mac结果值提供到所述额外神经元组件中的额外位串寄存器;及组合所述mac结果值及所述额外mac结果值。12.根据权利要求11所述的方法,其中组合所述mac结果值及所述额外mac结果值包括
增加所述神经元组件及所述额外神经元组件的结果的精度。13.根据权利要求11所述的方法,其进一步包括执行各自在多个相应神经元组件内的多个mac运算;其中所述多个相应神经元组件的数量对应于跨所述多个相应神经元组件中的每一者内的多个相应位串寄存器存储的数据值的精确度;且其中跨所述多个相应位串寄存器存储的所述数据值经组合以得到导致所述精确度的更大值。14.根据权利要求9到13中任一权利要求所述的方法,其中所述mac运算的至少一部分是在所述神经元组件内的内部alu中执行。15.一种系统,其包括:多个外围感测放大器(psa);多个神经元组件,其通过多个多路复用器耦合到所述多个psa,所述多个神经元组件各自包括神经元电路系统;及多个算术逻辑单元(alu),其耦合到所述相应多个神经元组件中的每一者;其中所述多个神经元组件经配置以使用所述相应神经元电路系统来引起:经由所述多个多路复用器从所述psa接收数据值,其中所述数据值包括至少一个位串;对所述数据值执行神经形态运算;及输出所述神经形态运算的执行结果,其中所述输出指示神经网络学习的程度。16.根据权利要求15所述的系统,其中所述多个神经元组件中的每一者包括:乘法器;累加器;内部算术逻辑单元(alu);及位串寄存器。17.根据权利要求16所述的系统,其中:在所述多个神经元组件中的一者内使用所述相应乘法器、累加器及内部alu来执行所述神经形态运算;且所述相应位串寄存器经配置以用来将所述输出的上溢存储为posit值;且所述神经元电路系统经配置以响应于正在执行阈值数目个神经形态运算而引起所述输出的所述上溢发送到所述内部alu以执行额外神经形态运算。18.根据权利要求15到17中任一权利要求所述的系统,其中所述神经元电路系统经配置以将所述输出发送到外部alu,且所述外部alu经配置以对所述输出执行额外运算。19.根据权利要求18所述的系统,其中所述外部alu经配置以对所述输出执行relu运算或西格玛运算。20.根据权利要求18所述的系统,其中所述神经元电路系统经配置以响应于正在执行阈值数目个神经形态运算而引起将所述输出发送到所述外部alu。

技术总结


描述与使用posit的神经元相关的系统、设备及方法。一种实例设备可包含存储器阵列,所述存储器阵列包含经配置以存储数据的多个存储器单元。所述数据可包含多个位串。所述实例设备可包含耦合到所述存储器阵列的神经元组件。所述神经元组件可包含经配置以对所述多个位串中的至少一者执行神经形态运算的神经元电路系统。电路系统。电路系统。


技术研发人员:

S

受保护的技术使用者:

美光科技公司

技术研发日:

2021.06.28

技术公布日:

2022/12/23

本文发布于:2024-09-23 19:26:46,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/48412.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:存储器   阵列   神经元   所述
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议