CN115668224B - 使用posit的神经形态运算 - Google Patents

使用posit的神经形态运算 Download PDF

Info

Publication number
CN115668224B
CN115668224B CN202180035602.9A CN202180035602A CN115668224B CN 115668224 B CN115668224 B CN 115668224B CN 202180035602 A CN202180035602 A CN 202180035602A CN 115668224 B CN115668224 B CN 115668224B
Authority
CN
China
Prior art keywords
format
data
analog
memory
posit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202180035602.9A
Other languages
English (en)
Other versions
CN115668224A (zh
Inventor
V·S·拉梅什
R·C·墨菲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US16/915,039 external-priority patent/US11636323B2/en
Priority claimed from US16/997,599 external-priority patent/US20220058471A1/en
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN115668224A publication Critical patent/CN115668224A/zh
Application granted granted Critical
Publication of CN115668224B publication Critical patent/CN115668224B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Neurology (AREA)
  • Computational Linguistics (AREA)
  • Computer Hardware Design (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Memory System (AREA)
  • Advance Control (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Microelectronics & Electronic Packaging (AREA)

Abstract

描述与用posit构建的神经元相关的系统、设备及方法。一种实例系统可包含存储器装置且所述存储器装置可包含多个存储器单元。所述多个存储器单元可存储包含呈模拟格式的位串的数据。可对呈所述模拟格式的所述数据执行神经形态运算。所述实例系统可包含耦合到所述存储器装置的模/数转换器。所述模/数转换器可将存储在所述多个存储器单元中的至少一者中的呈所述模拟格式的所述位串转换为支持特定精度水平的算术运算的格式。

Description

使用posit的神经形态运算
技术领域
本公开大体上涉及半导体存储器及方法,且更特定来说,涉及用于使用posit进行神经形态运算的设备、系统及方法。
背景技术
存储器装置通常被提供为计算机或其它电子系统中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性及非易失性存储器。易失性存储器可能需要电力来维持其数据(例如,主机数据、错误数据等)且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)及晶闸管随机存取存储器(TRAM)等等。非易失性存储器可通过在不被供电时保留经存储数据来提供持久数据且可包含NAND快闪存储器、NOR快闪存储器及电阻可变存储器,例如相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM)及磁阻式随机存取存储器(MRAM),例如自旋力矩转移随机存取存储器(STT RAM)等等。
存储器装置可耦合到主机(例如,主机计算装置)以存储由主机在计算机或电子系统操作时使用的数据、命令及/或指令。例如,在计算或其它电子系统的操作期间,可在主机与存储器装置之间传送数据、命令及/或指令。
附图说明
图1是根据本公开的数个实施例的呈包含设备的计算系统的形式的功能框图,所述设备包含主机及存储器装置。
图2A是根据本公开的数个实施例的呈包含设备的计算系统的形式的另一功能框图,所述设备包含主机及存储器装置。
图2B是根据本公开的数个实施例的呈包含主机、存储器装置、专用集成电路及现场可编程门阵列的计算系统的形式的功能框图。
图3是具有es个指数位的n位posit的实例。
图4A是3位posit的正值的实例。
图4B是使用两个指数位的posit构造的实例。
图5是根据本公开的数个实施例的呈神经形态存储器阵列、数/模转换器及模/数数据转换器的形式的功能框图。
图6是根据本公开的数个实施例的呈控制电路系统的形式的功能框图。
图7是表示根据本公开的数个实施例的用于使用posit进行神经形态运算的实例方法的流程图。
具体实施方式
描述与使用posit进行神经形态运算相关的系统、设备及方法。一种实例系统可包含存储器装置且所述存储器装置可包含多个存储器单元。所述多个存储器单元可存储包含呈模拟格式的位串的数据。可对呈模拟格式的数据执行神经形态运算。所述实例系统可包含耦合到所述存储器装置的模/数转换器。所述模/数转换器可将存储在所述多个存储器单元中的至少一者中的呈模拟格式的位串转换为支持特定精度水平的算术运算的格式。
存储器装置可包含控制电路系统。控制电路系统可包含存储器资源及处理资源。控制电路系统可耦合到神经形态存储器阵列。存储器阵列可存储包含呈模拟格式的位串的数据。控制电路系统可控制对呈模拟格式的位串的神经形态运算的执行。以这种方式,神经形态存储器阵列可充当神经网络。模拟权重可输入到神经网络的操作中以便训练神经网络。响应于存储在具有对数据执行的神经形态运算的神经网络中的数据,可将神经形态运算的结果转换为呈非模拟格式(例如,支持算术运算的格式,例如posit格式,如下文将进一步描述)的数据。非模拟格式可为通用数字(unum)格式,例如类型III unum或posit格式。
神经网络可包含可经执行以辨识数据中的模式的指令集。一些神经网络可用来以模仿人脑操作方式的方式辨识数据集中的潜在关系。神经网络可适应变动或变化的输入使得神经网络可在缺乏重新设计输出准则的情况下产生最好的可能结果。
神经网络可由多个神经元组成,所述多个神经元可由一或多个方程式表示。在神经网络的上下文中,神经元可接收一定量的数字或向量作为输入且基于神经网络的性质,产生输出。例如,神经元可接收Xk个输入,其中k对应于输入的索引。对于每一输入,神经元可将权重向量Wk指派给输入。在一些实施例中,权重向量可使神经网络中的神经元不同于所述网络中的一或多个不同神经元。在一些神经网络中,相应输入向量可乘以相应权重向量以产生值,如由方程式1所展示,所述方程式展示输入向量及权重向量的线性组合的实例。
f(x1,x2)=w1x1+w2x2
方程式1
在一些神经网络中,非线性函数(例如,激活函数)可应用于由方程式1得出的值f(x1,x2)。可应用于由方程式1得出的值的非线性函数的实例是整流线性单位函数(ReLU)。如果输入到所述函数的值大于零,那么由方程式2所展示的ReLU函数的应用产生所述值,或如果输入到所述函数的值小于零,那么产生零。本文所使用的ReLU函数仅仅用作激活函数的说明性实例且并不意在是限制性的。可在神经网络的上下文中应用的激活函数的其它非限制性实例可包含sigmoid函数、二进制阶跃函数、线性激活函数、双曲线函数、泄漏ReLU函数、参数ReLU函数、softmax函数及/或swish函数等等。
ReLU(x)=max(x,0)
方程式2
在训练神经网络的过程期间,可改变输入向量及/或权重向量以“调谐”所述网络。在一个实例中,可用随机权重(例如,例如模拟权重)初始化神经网络。随着时间的推移,可调整所述权重以改进神经网络的准确度。随着时间的推移,这可产生具有高准确度的神经网络。
神经网络具有宽范围的应用。例如,神经网络可用于系统识别及控制(车辆控制、轨迹预测、过程控制、自然资源管理)、量子化学、一般游戏、模式辨识(雷达系统、面部识别、信号分类、3D重建、对象辨识等)、序列辨识(手势、语音、手写及印刷文本辨识)、医疗诊断、金融(例如自动交易系统)、数据挖掘、可视化、机器翻译、社交网络过滤及/或垃圾邮件过滤等等。
由于一些神经网络需要计算资源,在一些方法中,将神经网络部署在计算系统,例如主机计算系统(例如,台式计算机、超级计算机等)或云计算环境中。在此类方法中,作为训练神经网络的操作的部分经过神经网络的数据可存储在存储器资源,例如NAND存储装置中,且处理资源,例如中央处理单元中可存取数据并执行指令以使用神经网络来处理数据。作为神经网络训练的部分,一些方法也可利用专用硬件,例如现场可编程门阵列或专用集成电路。在其它方法中,一或多个神经网络的存储及训练可发生在非易失性存储器装置,例如动态随机存取存储器(DRAM)装置内。
可用于执行神经网络(或神经形态)运算的数据可呈特定格式存储。例如,如下文将描述,数据可存储为posit,以便增加数据的准确度。然而,对存储为posit的数据执行神经网络或神经形态运算可能是困难或麻烦的。以模拟格式存储的数据可更容易执行神经网络或神经形态运算。通过允许在第一格式(例如,非模拟格式或posit格式)与第二格式(例如,模拟格式)之间进行转换,可处理数据以便增加数据的准确度且将数据转换为另一格式以便由神经网络处理。
非模拟格式可包含被称为“通用数字”(unum)格式的格式。存在若干形式的unum格式:类型I unum、类型II unum及类型III unum,其可被称为“posit”及/或“valid”。类型Iunum是在小数的末尾处使用“ubit”来指示实数是否为确切浮点数,或其是否位于相邻浮点数之间的区间中的IEEE 754标准浮点格式的超集。类型I unum中的符号、指数及小数位的定义来自IEEE 754浮点格式,然而类型I unum的指数及小数字段的长度可急剧地变动,从一位到最大用户可定义长度。通过采用来自IEEE 754标准浮点格式的符号、指数及小数位,类型I unum可表现得类似于浮点数,然而与浮点数相比较,类型I unum的指数及小数位中展现的可变位长度可能需要额外管理。
参考浮点标准,位串(例如,可表示数字的位串),例如二进制数串是用三个整数集或位集表示:被称为“基数”的位集、被称为“指数”的位集及被称为“尾数”(或有效数)的位集。定义存储二进制数串所用的格式的整数或位集在本文中可被称为“数字格式”或简称为“格式”。例如,定义浮点位串的上述三个整数或位集(例如,基数、指数及尾数)可被称为格式(例如第一格式)。如下文更详细地描述,posit位串可包含四个整数集或位集(例如,符号、底数(regime)、指数及尾数),其还可被称为“数字格式”或“格式”(例如,第二格式)。另外,根据浮点标准,两个无穷数(例如,+∞及-∞)及/或两种“NaN”(非数字):安静NaN及信令NaN可包含在位串中。
浮点标准已在计算系统中使用多年且定义用于由许多计算系统实行的计算的算术格式、互换格式、舍入规则、操作及异常处置。算术格式可包含二进制及/或十进制浮点数据,所述数据可包含有限数、无穷数及/或特定NaN值。互换格式可包含可用来交换浮点数据的编码(例如,位串)。舍入规则可包含在算术运算及/或转换运算期间将数字舍入时可满足的性质集。浮点运算可包含算术运算及/或例如三角函数的其它计算运算。异常处置可包含异常条件的指示,例如除以零、上溢等。
返回参考通用数字格式,类型II unum通常与浮点数不兼容,这容许基于经投影实数的清晰数学设计。II型unum可包含n个位且可用“u格”来描述,其中圆形投影的象限填充有2n-3-1个实数的有序集。II型unum的值可围绕平分圆形投影的轴反映使得正值位于圆形投影的右上象限中,而它们的负对应值位于圆形投影的左上象限中。表示II型unum的圆形投影的下半部可包含位于圆形投影的上半部中的值的倒数。II型unum对大多数运算来说通常依赖于查找表。例如,在一些情况中,查找表的大小可限制II型unum的功效。然而,在一些条件下,II型unum可提供与浮点数相比较有所改进的计算功能性。
III型unum格式在本文中被称为“posit格式”,或简称为“posit”。与浮点位串相比,在特定条件下,posit可允许比具有相同位宽度的浮点数更广的动态范围及更高的准确度(例如,精度)。这可允许在使用posit而非用浮点数时由计算系统执行的运算以更高速率(例如,更快地)执行,其又可通过例如减少用于执行运算的时钟循环数目来改进计算系统的性能,由此减少在执行此类运算时消耗的处理时间及/或功率。另外,在计算系统中使用posit可允许比浮点数更高的准确度及/或精度,这与一些方法(例如,依赖于浮点格式位串的方法)相比较可进一步改进计算系统的功能。然而,对以III型unum格式存储的数据执行神经网络或神经形态运算可能比对以模拟格式存储的数据执行此类运算更困难。
本文中的实施例涉及经配置以对位串执行各种运算以改进计算装置的总体功能的硬件电路系统(例如,控制电路系统、数/模转换器、模/数转换器等)。例如,本文中的实施例涉及经配置以执行转换运算以将位串的格式从第一格式(例如,unum格式、posit格式等)转换为第二格式(例如,模拟格式)的硬件电路系统。一旦(若干)位串已转换为第二格式,就可操作所述电路系统以对经转换位串执行神经形态运算或引起经转换位串传送到其它电路系统以执行此类运算。
在一些实施例中,可进一步操作硬件电路系统以将运算结果转换回为第一格式(例如,为unum格式、posit格式等),所述运算结果又可传送到计算系统的不同电路系统(例如,主机、存储器装置等)。通过以此方式执行运算,硬件电路系统可促进用于此类神经网络目的的神经形态运算的改进性能,同时仍然维持在存储器装置及/或神经形态存储器阵列外部对呈unum或posit格式的数据执行的运算的执行的改进准确度及/或精度,执行unum或posit运算的改进速度,及/或在算术及/或逻辑运算的执行之前、期间或之后位串所需的减少存储空间。
如本文中所使用,术语“驻留在…上”是指物理上位于特定组件上的某物。术语“驻留在…上”在本文中可与例如“部署在…上”或“位于…上”的其它术语可互换地使用。
通过执行运算以将位串从一种格式转换为另一格式,且反之亦然,及/或使用硬件电路系统来执行算术运算,与其中对呈单个格式的数据执行神经形态运算的方法相比较,此类转换可允许以改进的方式使用呈posit格式的数据,同时还能够以改进的方式对呈模拟格式的数据执行此类运算。例如,对呈unum/posit格式的数据执行所有运算可降低神经形态运算的效率且对呈模拟格式的数据执行所有运算可降低准确度。
在本公开的以下详细描述中,参考形成本公开的一部分且在附图中以说明方式展示可如何实践本公开的一或多个实施例的附图。足够详细地描述这些实施例以使所属领域的一般技术人员能实践本公开的实施例,且应理解,可利用其它实施例且可在不背离本公开的范围的情况下做出过程、电及结构变化。
如本文中所使用,特别是关于附图中的参考数字的例如“N”、“M”等的标志符指示可包含如此标示的数个特定特征。还应理解,本文中所使用的术语仅用于描述特定实施例的目的,且并不意在是限制性的。如本文中所使用,单数形式“一(a/an)”及“所述”可包含单数及复数指涉物两者,除非上下文另外明确地指示。另外,“数个”、“至少一个”及“一或多个”(例如,数个存储器存储体)可是指一或多个存储器存储体,而“多个”意在指多于一个此类事物。
此外,词语“能够”及“可”贯穿本申请案以准许(即,有可能、能够)而非强制意义(即,必须)使用。术语“包含”及其派生词表示“包含(但不限于)”。根据上下文需要,术语“经耦合”及“耦合”表示物理上直接或间接连接或用于存取及移动(传输)命令及/或数据。根据上下文需要,术语“位串”、“数据”及“数据值”在本文中可互换地使用且可具有相同含义。
本文中的图遵循编号惯例,其中首位或前几个数字对应于图号且剩余数字识别图中的元件或组件。不同图之间的类似元件或组件可通过使用类似数字来识别。例如,120可指代图1中的元件“20”,且类似元件在图2A中可被引用为220。一组或多个类似元件或组件在本文中通常可用单个元件符号指代。例如,多个参考元件431-1、431-2、431-3整体上可被称为431。将明白,可添加、交换及/或消除本文中的各个实施例中所展示的元件以便提供本公开的数个额外实施例。另外,图中所提供的元件的比例及/或相对尺度意在说明本公开的某些实施例且不被视为限制意义。
图1是根据本公开的数个实施例的呈包含设备的计算系统100的形式的功能框图,所述设备包含主机102及存储器装置104。如本文中所使用,“设备”可指(但不限于)多种结构或结构组合中的任一者,举例来说例如电路或电路系统、一或若干裸片、一或若干模块、一或若干装置或一或若干系统。另外,所述组件中的每一者(例如,主机102、控制电路系统120、处理资源(或逻辑电路系统)122、存储器资源124及/或神经形态存储器阵列130)在本文中可单独地被称为“设备”。
存储器装置104可包含一或多个存储器模块(例如,单列直插式存储器模块、双列直插式存储器模块等)。存储器装置104可包含易失性存储器及/或非易失性存储器。在数个实施例中,存储器装置104可包含多芯片装置。多芯片装置可包含数个不同存储器类型及/或存储器模块。例如,存储器系统104可包含任何类型的模块上的非易失性或易失性存储器。
存储器装置104可提供计算系统100的主存储器或可用作整个计算系统100的额外存储器或存储装置。存储器装置104可包含一或多个神经形态存储器阵列130(例如,存储器单元阵列),所述神经形态存储器阵列可包含易失性及/或非易失性存储器单元。存储器阵列130可为例如具有NAND架构的快闪存储器阵列。然而,实施例不限于特定类型的存储器装置,且存储器装置104可包含RAM、ROM、DRAM、SDRAM、PCRAM、RRAM及/或快闪存储器等。
在其中存储器装置104包含非易失性存储器的实施例中,存储器装置104可包含快闪存储器装置,例如NAND或NOR快闪存储器装置。然而,实施例不限于此,且存储器装置104可包含:其它非易失性存储器装置,例如非易失性随机存取存储器装置(例如,NVRAM、ReRAM、FeRAM、MRAM、PCM);“新兴”存储器装置,例如3-D交叉点(3D XP)存储器装置等;或其组合。非易失性存储器的3D XP阵列可结合可堆叠交叉栅格式数据存取阵列基于体电阻变化来执行位存储。因此,与许多基于快闪的存储器相比,3D XP非易失性存储器可执行原位写入操作,其中可在不先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。
如图1中所说明,主机102可耦合到存储器装置104。在数个实施例中,主机102可经由一或多个通道103(例如,总线、接口、通信路径等)耦合到存储器装置104。另外,存储器装置104的控制电路系统120可经由通道107耦合到存储器阵列130。(若干)通道103可用来在存储器系统104与主机102之间传送数据且可呈标准化接口的形式。例如,当存储器系统104用于计算系统100中的数据存储时,(若干)通道103可为串行高级技术附件(SATA)、外围组件互连高速(PCIe)或通用串行总线(USB)、双倍数据速率(DDR)接口以及其它连接器及接口。然而,一般来说,(若干)通道103可提供用于在存储器系统104与主机102之间传递控制、地址、数据及其它信号的具有用于(若干)通道103的兼容接收器的接口。
主机102可为主机系统,例如个人膝上型计算机、台式计算机、数码相机、移动电话、物联网(IoT)启用装置或存储卡读取器、图形处理单元(例如,视频卡)以及各种其它类型的主机。主机102可包含系统主板及/或背板且可包含数个存储器存取装置,例如数个处理装置(例如,一或多个处理器、微处理器或某种其它类型的控制电路系统)。所属领域的一般技术人员将明白,“处理器”可意指一或多个处理器,例如平行处理系统、数个协处理器等。
系统100可包含单独集成电路,或主机102、存储器装置104两者及存储器阵列130可在同一集成电路上。系统100可为例如服务器系统及/或高性能计算(HPC)系统及/或其一部分。尽管图1中所展示的实例说明具有冯诺依曼(Von Neumann)架构的系统,但本公开的实施例可在非冯诺依曼架构中实施,所述非冯诺依曼架构可不包含通常与冯诺依曼架构相关联的一或多个组件(例如CPU、ALU等)。
在一些实施例中,主机102可负责执行包含存储器装置104的计算系统100的操作系统。因此,在一些实施例中,主机102可负责控制存储器装置104的操作。例如,主机102可执行管理计算系统100的硬件的指令(例如,呈操作系统的形式),例如调度任务、执行应用程序、控制外围装置等。
本文在图2A及2B中更详细地展示的存储器装置104可包含控制电路系统120,所述控制电路系统可包含处理资源122及存储器资源124。处理资源122可以集成电路的形式提供,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、芯片上系统或经配置以对从主机102及/或其它外部装置接收的位串执行算术及/或逻辑运算的硬件及/或电路系统的其它组合,如本文中更详细地描述。在一些实施例中,处理资源122可包含算术逻辑单元(ALU)。ALU可包含用来对整数二进制位串,例如呈posit格式的位串执行例如上文所描述的运算的运算(例如,算术运算、逻辑运算、逐位运算等)的电路系统(例如,硬件、逻辑、一或多个处理装置等)。然而,实施例不限于ALU,且在一些实施例中,除了ALU以外或代替ALU,处理资源122还可包含状态机及/或指令集架构(或其组合),如本文中结合图5更详细地描述。
例如,处理资源122可经配置以接收呈posit格式的一或多个位串(例如,多个位)及/或引起使用呈posit格式的位串来执行例如算术及/或逻辑运算的运算。与包含三个整数或位集(被称为“基数”的位集、被称为“指数”的位集及被称为“尾数”(或有效数)的位集)的呈浮点格式的位串相比,呈posit格式的(若干)位串包含四个位集:被称为“符号”的至少一个位、被称为“底数”的位集、被称为“指数”的位集及被称为“尾数”(或有效数)的位集。如本文中所使用,位集意在指包含在位串中的位子集。本文中结合图3及4A-4B更详细地描述位的符号、底数、指数及尾数集的实例。
在一些实施例中,处理资源122可经配置以使用posit位串来执行算术运算(或引起算术运算的执行),例如加法、减法、乘法、除法、融合乘法加法、乘积累加、点积单元、大于或小于、绝对值(例如,FABS())、快速傅立叶变换、快速傅立叶逆变换、sigmoid函数、卷积、平方根、指数及/或对数运算,及/或逻辑运算(例如AND(与)、OR(或)、XOR(异或)、NOT(非)等),以及三角函数运算(例如正弦、余弦、正切等)。如将明白,前述运算列表并不意在是详尽的,且也不意在是限制性的,且处理系统122可经配置以执行其它算术及/或逻辑运算(或引起其它算术及/或逻辑运算的执行)。
在控制电路系统120已对(若干)位串执行算术及/或逻辑运算之后,控制电路系统120可引起所得位串(例如,表示算术运算及/或逻辑运算的结果的所得位串)传送到主机102及/或神经形态存储器阵列130。在一些实施例中,可将所得位串发送到神经形态存储器阵列130且可将所得位串转换为模拟格式。呈模拟格式的所得位串可用作数个神经形态运算的输入。在一些实施例中,控制电路系统120可例如以posit格式(且在神经形态存储器阵列130的情况下,转换为模拟格式)将(若干)所得位串传送到主机102及/或神经形态存储器阵列130。
控制电路系统120可进一步包含存储器资源124,所述存储器资源可通信地耦合到处理资源122。存储器资源124可包含易失性存储器资源、非易失性存储器资源或易失性及非易失性存储器资源的组合。在一些实施例中,存储器资源124可为随机存取存储器(RAM),例如静态随机存取存储器(SRAM)。然而,实施例不限于此,且存储器资源124可为:高速缓存、一或多个寄存器、NVRAM、ReRAM、FeRAM、MRAM、PCM;“新兴”存储器装置,例如3-D交叉点(3D XP)存储器装置;或其组合。
控制电路系统120可经由一或多个通道107通信地耦合到神经形态存储器阵列130。例如,神经形态存储器阵列130可为DRAM阵列、SRAM阵列、STT RAM阵列、PCRAM阵列、TRAM阵列、RRAM阵列、NAND快闪存储器阵列及/或NOR快闪存储器阵列。阵列130可包括布置成由存取线(其在本文中可被称为字线或选择线)耦合的行及由感测线(其在本文中可被称为数据线或数字线)耦合的列的存储器单元。尽管在图1中展示单个阵列130,但实施例并不限于此。例如,存储器装置104包含数个存储器阵列130(例如,DRAM单元、NAND快闪存储器单元的数个存储体等)。
图1的实施例可包含未经说明以免模糊本公开的实施例的额外电路系统。例如,存储器装置104可包含用来锁存经由I/O连接通过I/O电路系统提供的地址信号的地址电路系统。地址信号可由行解码器及列解码器接收及解码以存取存储器装置104及/或神经形态存储器阵列130。所属领域的技术人员将明白,地址输入连接的数目可取决于存储器装置104及/或存储器阵列130的密度及架构。
图2A是根据本公开的数个实施例的呈包含设备200的计算系统的形式的另一功能框图,所述设备包含主机202及存储器装置204。存储器装置204可包含控制电路系统220,其可类似于图1中所说明的控制电路系统120。类似地,主机202可类似于图1中所说明的主机102,且存储器装置204可类似于图1中所说明的存储器装置104,且神经形态存储器阵列230可类似于图1中所说明的神经形态存储器阵列130。所述组件中的每一者(例如,主机202、控制电路系统220、处理资源222、存储器资源224及/或神经形态存储器阵列230等)在本文中可单独地被称为“设备”。
主机202可经由一或多个通道203、205通信地耦合到存储器装置204。通道203、205可为接口、总线、通信路径或允许在主机202与存储器装置204之间传送数据及/或命令的其它物理连接。通道203、205可用来在存储器系统204与主机202之间传送数据且可呈标准化接口的形式。
当存储器系统204用于计算系统200中的数据存储时,通道203、205可为串行高级技术附件(SATA)、外围组件互连高速(PCIe)或通用串行总线(USB)、双倍数据速率(DDR)接口以及其它连接器及接口。然而,一般来说,通道203、205可提供用于在存储器系统204与主机202之间传递控制、地址、数据及其它信号的具有用于通道203、205的兼容接收器的接口。在一些实施例中,可经由通道203、205从所述主机传送引起待由控制电路系统220执行的操作的启动(例如,对呈posit格式的(若干)位串执行算术及/或逻辑运算的操作)的命令。
应注意,在一些实施例中,控制电路系统220可在缺乏来自主机202的中介命令的情况下响应于经由通道203、205中的一或多者从主机202传送的启动命令而执行算术及/或逻辑运算。即,一旦控制电路系统220已从主机202接收启动运算的执行的命令,就可由控制电路系统220在缺乏来自主机202的额外命令的情况下执行运算。然而,在一些实施例中,控制电路系统220可在缺乏来自主机202的指定待执行运算的命令(例如,启动命令)的情况下响应于接收到位串(例如,呈posit格式的位串)而执行运算。例如,控制电路系统220可经配置以响应于接收到(若干)位串而对(若干)经接收位串自行启动算术及/或逻辑运算的执行。然而,在一些实施例中,响应于接收到对数据执行神经形态运算的命令,可在将数据发送到神经形态存储器阵列230时将数据转换为模拟格式。
如本文中所使用,“第一精度水平”及“第二精度水平”通常是指表示使用一或多个位串执行的运算结果的位串及/或所得位串的准确度。例如,浮点格式位串在本文中可被描述为具有“第一精度水平”,而unum位串(例如,posit格式位串)可被称为具有特定精度或“第二精度水平”,因为如在本文中更详细地描述,unum位串在某些条件下可提供比浮点格式的数字更高的精度。
在一些实施例中,浮点格式或unum格式可指数字格式,而额外格式可包含模拟格式。数字格式可使用离散值,例如“0”或“1”,而模拟格式可使用更连续的值且可表示沿该连续的物理测量值。
如图2A中所展示,存储器装置204可包含寄存器存取组件206、高速接口(HSI)208、控制器210、一或多个扩展行地址(XRA)组件212、主存储器输入/输出(I/O)电路系统214、行地址选通(RAS)/列地址选通(CAS)链控制电路系统216、RAS/CAS链组件218、控制电路系统220及神经形态存储器阵列230。如图2A中所展示,控制电路系统220位于存储器装置204的在物理上不同于神经形态存储器阵列230的区域中。即,在一些实施例中,控制电路系统220位于神经形态存储器阵列230的外围位置中。
寄存器存取组件206可促进数据从主机202到存储器装置204及从存储器装置204到主机202的传送及提取。例如,寄存器存取组件206可存储地址(或促进地址查找),例如存储器地址,所述地址对应于待从存储器装置204传送到主机202或从主机202传送到存储器装置204的数据。在一些实施例中,寄存器存取组件206可促进传送及提取待由控制电路系统220操作的数据,及/或寄存器存取组件206可促进传送及提取已由控制电路系统220操作的数据以传送到主机202。
HSI 208可在主机202与存储器装置204之间提供用于穿过通道205的命令及/或数据的接口。HSI 208可为双倍数据速率(DDR)接口,例如DDR3、DDR4、DDR5等接口。然而,实施例不限于DDR接口,且HSI 208可为四倍数据速率(QDR)接口、外围组件互连(PCI)接口(例如,外围组件互连高速(PCIe)或用于经由(若干)通道203、205在主机202与存储器装置204之间传送命令及/或数据的其它合适接口。
控制器210可负责执行来自主机202的指令及存取控制电路系统220及/或神经形态存储器阵列230。控制器210可为状态机、序列发生器或某种其它类型的控制器。控制器210可从主机202接收命令(经由例如HSI 208),且基于经接收命令来控制控制电路系统220及/或神经形态存储器阵列230的操作。在一些实施例中,控制器210可从主机202接收引起使用控制电路系统220对经接收位串执行算术及/或逻辑运算的命令。响应于接收到此命令,控制器210可指示控制电路系统220开始执行(若干)算术及/或逻辑运算。
在一些实施例中,控制器210可为全局处理控制器且可对存储器装置204提供电力管理功能。电力管理功能可包含控制由存储器装置204及/或神经形态存储器阵列230消耗的电力。例如,控制器210可控制提供到神经形态存储器阵列230的各个存储体的电力以控制在存储器装置204的操作期间神经形态存储器阵列230的哪些存储体在不同时间操作。这可包含关闭神经形态存储器阵列230的某些存储体,同时将电力提供到神经形态存储器阵列230的其它存储体以优化神经形态存储器装置230的电力消耗。在一些实施例中,控制存储器装置204的电力消耗的控制器210可包含控制到存储器装置204的各个核心及/或到控制电路系统220、神经形态存储器阵列230等的电力。
(若干)XRA组件212意在提供感测(例如,读取、存储、高速缓冲存储)神经形态存储器阵列230中的存储器单元的数据值且不同于神经形态存储器阵列230的额外功能性(例如,外围放大器)。XRA组件212可包含锁存器及/或寄存器。例如,额外锁存器可被包含在XRA组件212中。XRA组件212的锁存器可位于存储器装置204的神经形态存储器阵列230的外围(例如,在存储器单元的一或多个存储体的外围)。
主存储器输入/输出(I/O)电路系统214可促进数据及/或命令到及从神经形态存储器阵列230的传送。例如,主存储器I/O电路系统214可促进位串、数据及/或命令自主机202及/或控制电路系统220到神经形态存储器阵列230及从神经形态存储器阵列230的传送。在一些实施例中,主存储器I/O电路系统214可包含一或多个直接存储器存取(DMA)组件,所述DMA组件可将位串(例如,存储为数据块的posit位串)从控制电路系统220传送到神经形态存储器阵列230,且反之亦然。
在一些实施例中,主存储器I/O电路系统214可促进将位串、数据及/或命令从神经形态存储器阵列230传送到控制电路系统220使得控制电路系统220可对位串执行算术及/或逻辑运算。类似地,主存储器I/O电路系统214可促进将已由控制电路系统220对它们执行一或多个运算的位串传送到神经形态存储器阵列230。以这种方式,在将呈unum或posit格式的数据存储在除神经形态存储器阵列230以外的阵列或其它位置中时,控制电路系统220可对所述数据操作以执行算术及/或逻辑运算;且在将呈模拟格式的数据存储在神经形态存储器阵列230中时,可使用所述数据来执行神经形态运算。如本文中更详细地描述,所述运算可包含对呈posit格式的位串执行的算术运算、对呈posit格式的位串执行的逻辑运算、对呈posit格式的位串执行的逐位运算等及对呈模拟格式的位串执行的神经形态运算。
行地址选通(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中的特定位置。
如上文结合图1所描述,神经形态存储器阵列230可为例如DRAM阵列、SRAM阵列、STT RAM阵列、PCRAM阵列、TRAM阵列、RRAM阵列、NAND快闪存储器阵列及/或NOR快闪存储器阵列,尽管实施例不限于这些特定实例。神经形态存储器阵列230可用作图2中所展示的计算系统200的主存储器。在一些实施例中,神经形态存储器阵列230可经配置以存储由控制电路系统220操作的位串及/或存储待传送到控制电路系统220的位串。
控制电路系统220可包含逻辑电路系统(例如,图1中所说明的处理资源122)及/或(若干)存储器资源(例如,图1中所说明的存储器资源124)。如上文结合图1所描述及下文结合图6更详细地描述,控制电路系统220可经配置以接收呈posit格式的一或多个位串并引起使用呈posit格式的一或多个位串来执行例如算术及/或逻辑运算的运算且可经配置以将呈posit格式的一或多个位串在由神经形态存储器阵列230接收时转换为模拟格式。
例如,位串(例如,数据、多个位等)可由控制电路系统220以第一格式(例如,posit格式)从例如主机202及/或由神经形态存储器阵列230(例如,模拟格式)接收,且由控制电路系统220存储例如在控制电路系统220的存储器资源(例如,本文在图6中所说明的存储器资源624)中。控制电路系统220可对(若干)位串执行算术及/或逻辑运算(或引起对(若干)位串执行算术及/或逻辑运算),如本文中结合图6更详细地描述。
如结合图3及4A到4B更详细地描述,与以浮点格式表示的对应位串相比,posit可提供改进的准确度(例如,精度)且可需要更少的存储空间(例如,可含有更少量的位)。因此,通过使用控制电路系统220来将posit位串转换为模拟位串且使用神经网络来执行神经形态运算,与利用posit位串来执行神经形态运算的方法相比较,可改进计算系统200的性能,这是因为可对模拟位串更快地执行神经形态运算(例如,因为神经形态运算使自身在处理模拟数据时更高效)。
如上文所描述,一旦控制电路系统220已从主机202及/或神经形态存储器阵列230接收posit位串(一旦从神经形态存储器阵列230退出时从模拟转换为posit),控制电路系统220就可对经接收posit位串执行算术及/或逻辑运算(或引起算术及/或逻辑运算的执行)。例如,控制电路系统220可经配置以对经接收posit位串执行算术运算(或引起算术运算的执行),例如加法、减法、乘法、除法、融合乘法加法、乘积累加、点积单元、大于或小于、绝对值(例如,FABS())、快速傅立叶变换、快速傅立叶逆变换、sigmoid函数、卷积、平方根、指数及/或对数运算,及/或逻辑运算(例如AND、OR、XOR、NOT等),以及三角函数运算(例如正弦、余弦、正切等)。将明白,前述运算列表并不意在是详尽的,且前述运算列表也并不意在是限制性,且控制电路系统220可经配置以对(或引起对)posit位串执行其它算术及/或逻辑运算。
在一些实施例中,控制电路系统220可结合一或多种机器学习算法的执行来执行上文所列出的运算。例如,控制电路系统220可执行与一或多个神经网络相关的例如神经形态存储器阵列230中使用的运算。神经网络可允许随着时间的推移而训练算法以基于输入信号来确定输出响应。例如,随着时间的推移,神经网络本质上可学习更好地最大化完成特定目标的机会。这在机器学习应用中可为有利的,因为神经网络可随着时间的推移而用新数据来训练以实现完成特定目标的机会的更好最大化。神经网络可随时间的推移而训练以改进特定任务及/或特定目标的操作。然而,在一些方法中,当使用呈posit格式的数据来这样做时,机器学习(例如,神经网络训练)可为处理密集型(例如,可消耗大量计算机处理资源)及/或可为时间密集型(例如,可需要执行消耗多个循环的漫长计算)。相比之下,通过使用控制电路系统220来执行此类运算,例如通过对呈模拟格式的位串执行此类运算,执行所述运算时消耗的处理资源量及/或时间量与其中使用呈posit格式的位串来执行此类运算的方法相比较可有所减少。
图2B是根据本公开的数个实施例的呈包含主机202、存储器装置204、专用集成电路223及现场可编程门阵列221的计算系统200的形式的功能框图。所述组件中的每一者(例如,主机202、存储器装置204、FPGA 221、ASIC 223等)在本文中可单独地被称为“设备”。
如图2B中展示,主机202可经由(若干)通道203耦合到存储器装置204,所述通道可类似于图1中说明的(若干)通道103。现场可编程门阵列(FPGA)221可经由(若干)通道217耦合到主机202且专用集成电路(ASIC)223可经由(若干)通道219耦合到主机202。在一些实施例中,(若干)通道217及/或(若干)通道219可包含外围串行互连高速(PCIe)接口,然而实施例不限于此,且(若干)通道217及/或(若干)通道219可包含其它类型的接口、总线、通信通道等以促进数据在主机202与FPGA 221及/或ASIC 223之间的传送。
如上文描述,可由FPGA 221及/或ASIC 223执行的算术及/或逻辑运算的非限制性实例包含使用posit位串的算术运算,例如加法、减法、乘法、除法、融合乘法加法、乘积累加、点积单元、大于或小于、绝对值(例如,FABS())、快速傅立叶变换、快速傅立叶逆变换、sigmoid函数、卷积、平方根、指数及/或对数运算,及/或逻辑运算(例如AND、OR、XOR、NOT等)以及三角函数运算(例如正弦、余弦、正切等)。
FPGA 221可包含状态机227及/或(若干)寄存器229。状态机227可包含经配置以对输入执行运算且产生输出的一或多个处理装置。例如,FPGA 221可经配置以从主机202接收posit位串且对posit位串执行算术及/或逻辑运算以产生表示对经接收posit位串执行的运算结果的所得posit位串。此外,FPGA 221可经配置以引起在神经形态存储器阵列230中对已转换为模拟格式的数据执行神经形态运算。
FPGA 221的(若干)寄存器229可经配置以在状态机227对从主机202接收的posit位串执行运算之前缓冲及/或存储经接收posit位串。此外,FPGA221的(若干)寄存器229可经配置以在将对经接收posit位串执行的运算结果传送到ASIC 233外部的电路系统,例如主机202或存储器装置204等之前缓冲及/或存储表示所述结果的所得posit位串。
ASIC 223可包含逻辑241及/或高速缓存243。逻辑241可包含经配置以对输入执行运算且产生输出的电路系统。在一些实施例中,ASIC 223经配置以从主机202接收posit位串且对posit位串执行算术及/或逻辑运算以产生表示对经接收posit位串执行的运算结果的所得posit位串。同样地,ASIC 223可促进将posit位串转换为模拟位串及对模拟位串执行后续神经形态运算。
ASIC 223的高速缓存243可经配置以在逻辑241对从主机202接收的posit位串执行运算之前缓冲及/或存储经接收posit位串。另外,ASIC 223的高速缓存243可经配置以在将对经接收posit位串执行的运算结果传送到ASIC 233外部的电路系统,例如主机202或存储器装置204等之前缓冲及/或存储表示所述结果的所得posit位串。
尽管FPGA 227被展示为包含状态机227及(若干)寄存器229,但在一些实施例中,除了状态机227及/或(若干)寄存器229以外或代替状态机227及/或(若干)寄存器229,FPGA221还可包含例如逻辑241的逻辑及/或例如高速缓存243的高速缓存。类似地,在一些实施例中,除了逻辑241及/或高速缓存243以外或代替逻辑241及/或高速缓存243,ASIC 223还可包含例如状态机227的状态机及/或例如(若干)寄存器229的(若干)寄存器。
图3是具有es个指数位的n位通用数字或“unum”的实例。在图3的实例中,n位unum是posit位串331。如图3中所展示,n位posit 331可包含(若干)符号位集(例如,符号位333)、底数位集(例如,底数位335)、指数位集(例如,指数位337)及尾数位集(例如,尾数位339)。尾数位339可替代地被称为“小数部分”或“小数位”,且可表示在小数点后面的位串(例如,数字)的一部分。
符号位333对于正数可为零(0)且对于负数为一(1)。结合下表1描述底数位335,表1展示(二进制)位串及它们的相关数值含义k。在表1中,数值含义k由位串的游程长度确定。表1的二进制部分中的字母x指示位值与底数的确定无关,因为(二进制)位串响应于连续位翻转或在到达位串的末尾时终止。例如,在(二进制)位串0010中,位串响应于0翻转到1且接着返回到0而终止。因此,最后的0与底数无关且底数要考虑的是前导相同位及终止位串的第一相反位(如果位串包含此类位)。
二进制 0000 0001 001X 01XX 10XX 110X 1110 1111
数值(k) -4 -3 -2 -1 0 1 2 3
表1
在图3中,底数位335r对应于位串中的相同位,而底数位335对应于终止位串的相反位。例如,对于表1中所展示的数值k值-2,底数位r对应于前两个前导0,而(若干)底数位/>对应于1。如上文所指出,对应于数值k的由表1中的X表示的最终位与底数无关。
如果m对应于位串中相同位的数目,如果位是0,那么k=-m。如果位是1,那么k=m–1。这在表1中进行说明,其中例如(二进制)位串10XX具有单个1且k=m–1=1-1=0。类似地,(二进制)位串0001包含三个0因此k=-m=-3。底数可指示useedk的比例因子,其中在下表2中展示useed的若干实例值。
es 0 1 2 3 4
useed 2 22=4 42=16 162=256 2562=65536
表2
指数位337对应于指数e,作为无符号数。与浮点数相比,本文中所描述的指数位337可不具有与其相关联的偏差。因此,本文中所描述的指数位337可表示按因子2e缩放。如图3中所展示,取决于在n位posit 331的底数位335的右边留有多少位,可存在高达es个指数位(e1、e2、e3、…、ees)。在一些实施例中,这可允许n位posit 331的渐缩准确度,其中在量值上更接近1的数字具有比非常大或非常小的数字更高的准确度。然而,由于非常大或非常小的数字在特定种类的运算中不常用,因此在各种各样情况中可期望图3中所展示的n位posit 331的渐缩准确度行为。
尾数位339(或小数位)表示任何额外位,其可为位于指数位337右边的n位posit331的部分。类似于浮点位串,尾数位339表示小数f,其可类似于小数1.f,其中f包含在1后面的小数点右边的一或多个位。然而,与浮点位串相比,在图3中所展示的n位posit331中,“隐藏位”(例如,1)可始终为1(例如,一),而浮点位串可包含具有“隐藏位”0的次正规数(例如,0.f)。
图4A是3位posit 431的正值的实例。在图4A中,仅投影实数的右半部,然而将明白,对应于图4A中所展示的它们的正对应数的负投影实数可存在于表示围绕图4A中所展示的曲线的y轴的变换的曲线上。
在图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中所展示的posit431-3所展示。以下是可用来将位附加到图4A中所展示的posit 431-1的位串以获得图4B中所说明的posit 431-2、431-3的插值规则的实例。
如果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。
图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,因此posit431-2具有es=3,因此/>且posit 431-3具有es=4,因此/>
作为将位添加到3位posit 431-1以产生图4B的4位posit 431-2的说明性实例,useed=256,因此对应于useed 256的位串具有附加到其的额外底数位且前者useed 16具有附加到其的终止底数位如上文描述,在现存值之间,对应位串具有附加到其的额外指数位。例如,数值1/16、1/4、1及4将具有附加到其的指数位。即,对应于数值4的最终一是指数位,对应于数值1的最终零是指数位等。这种模式可进一步见于posit431-3中,posit431-3是根据上文规则从4位posit 431-2产生的5位posit。如果将另一位添加到图4B中的posit 431-3以产生6位posit,那么尾数位339将被附加到1/16与16之间的数值。
以下是对posit(例如,posit 431)进行解码以获得其等效数值的非限制性实例。在一些实施例中,对应于posit p的位串是在-2n-1到2n-1的范围内的无符号整数,k是对应于底数位335的整数且e是对应于指数位337的无符号整数。如果尾数位339的集表示为{f1f2…ffs}且f是由1.f1f2…ffs表示的值(例如,由1后接小数点后接尾数位339表示),那么p可由下文方程式2给定。
下文结合下表3中所展示的posit位串0000110111011101提供对posit位串进行解码的另一说明性实例。
符号 底数 指数 尾数
0 0001 101 11011101
表3
在表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位串的数值是
图5是根据本公开的数个实施例的呈神经形态存储器阵列530、数/模转换器557及模/数数据转换器561的形式的功能框图550。神经形态存储器阵列530可从主机(例如,图1、2A、2B中的主机102、202)或其它外部装置接收数据。所述数据可包含呈第一格式(例如,unum数或posit格式)的位串。呈posit格式的数据可由数/模转换器557(例如,接收及控制数据的地方(“data/ctrl”))在接收到数据时进行转换。一旦将数据转换为模拟,就可将其存储在多个模拟存储器单元(“AMC”)552-1到552-P(后文中被称为AMC 552)中。地址逻辑554可用来识别特定单元,例如第一AMC 552-1的位置,以便将数据存储在其神经形态存储器阵列530中的正确位置处。
在一个实施例中,可使用AMC 552作为神经网络来执行神经形态运算。一些神经形态系统可使用电阻式RAM(RRAM),例如PCM装置或自选择存储器装置以通过存储突触的值(或权重)(例如,突触权重)来执行神经形态运算。此可变电阻存储器可包含经配置以存储多个电平及/或可具有宽感测窗口的存储器单元。这种类型的存储器可经配置以通过由脉冲(例如,尖峰)控制执行训练操作来执行神经形态运算的至少一部分。此类训练操作可包含尖峰时序相依可塑性(STDP)。STDP可为由在节点(例如,神经元)之间传输的尖峰之间的相关性引发的希伯莱学习的形式。STDP可为调节节点(例如,神经元)之间的连接强度的过程的实例。
在神经网络中,突触权重是指两个节点(例如,神经元)之间的连接强度或振幅。通过神经网络传输的信息的性质及内容可部分地基于形成在节点之间的表示突触的连接的性质。例如,连接的性质可为突触权重。神经形态系统及装置可尤其经设计以实现传统计算机架构不可能达成的结果。例如,神经形态系统可用来实现更普遍地与生物系统相关联的结果,例如学习、视力或视觉处理、听觉处理、高级计算或其它过程,或其组合。作为实例,神经形态运算的执行可包含使用突触权重及/或至少两个存储器单元之间的连接来表示突触,或突触的连接性的强度或程度且与相应短期连接或长期连接相关联,这对应于短期及长期记忆的生物学发生。可执行一系列神经网络或神经形态运算以便取决于使用哪种类型的存储器单元而按短期或长期方式增加至少两个存储器单元之间的突触权重,如下文将描述。
神经网络或神经形态运算的学习事件可表示神经元当中的尖峰的因果传播,其实现连接突触的权重增加。突触的权重增加可由存储器单元的电导率增加表示。可变电阻存储器阵列(例如3D交叉点或自选择存储器(SSM)阵列)可模仿各自以权重或存储器单元电导为特征的突触的阵列。电导越大,突触权重就越大且记忆学习程度就越高。短期记忆学习可为快速及/或可逆的记忆学习,其中突触的模拟权重被增强,即,其导电通过可逆机制增加。长期记忆学习可为缓慢及/或不可逆的记忆学习,其中单元电导对于特定状态(例如,SET或RESET)不可逆地增加,从而导致来自更长、经验相依学习的难忘记忆。
本文中描述了可用来模仿神经系统中可能存在的神经生物架构及/或用来存储与长期及短期学习或关系相关联的突触权重的神经形态运算。存储器设备可包含存储器阵列,所述存储器阵列包含第一部分及第二部分。存储器阵列的第一部分可包含第一多个可变电阻存储器单元且第二部分可包含第二多个可变电阻存储器单元。第二部分可通过强制写入循环来降级。降级机制可包含对硫属化物材料的损坏。在包含由除硫属化物材料以外的材料构成的存储器单元的一些实施例中,降级机制可包含存储器单元之间的热关系、经由存储器单元之间的控制栅极耦合的控制、对应于存储器单元的电荷损失、温度引发的信号或阈值损失等。
可对由神经形态存储器阵列530接收的数据执行这些神经形态运算。预期神经网络用来检测由数据或数据中的模式表示的特定事件,神经网络可接收用来训练神经网络的大量数据(可被称为模拟权重559)(例如,存储在AMC 552中的数据)。在一个实施例中,在接收包含位串的数据时,可将模拟权重559添加到数据值以便针对后续神经形态处理训练数据值。训练可包含大量数据,其允许神经形态存储器阵列530的神经网络正确地解释数据且提供所期望的或有帮助的结果。使用上文所描述的神经网络处理,大量数据可训练神经形态存储器阵列530的神经网络以检测事件或模式且在这样做时变得更有效及高效。
在使用模拟权重559来对存储在AMC 552中的呈模拟格式的数据完成神经形态运算之后,可由模/数转换器(“模/数数据”)561将所得模拟数据转换为呈非模拟格式的数据(例如,unum或posit格式)。为了这样做,可对数据执行运算(“模拟MAC+阈值”)563以便恰当地对模拟值进行分类以转换为非模拟格式。例如,在由模拟值表示的6位值中,数个阈值可表示6个位的哪些值由哪些阈值表示。运算563的阈值数据可用来确定如何解释模拟数据及相对于更离散的格式沿着非模拟格式的对应标度将模拟值定位在何处。
可将神经形态运算的所得值发送到神经形态存储器阵列530外部以由控制电路系统(例如图1及2A中的控制电路系统120/220)及其它存储位置以非模拟格式进行进一步处理。以这种方式,可对数据的同一部分进行多级处理。例如,可从主机发送命令以对数据集执行算术/逻辑运算及神经形态运算。
取决于处理顺序,可在数据呈非模拟格式且位于神经形态存储器阵列530外部时执行算术运算。可将算术运算的结果发送到神经形态存储器阵列530且转换为模拟格式。在执行神经形态运算之后,可将数据转换回为非模拟格式且在执行两种运算的情況下发送回到主机。同样地,数据可以非模拟格式接收且首先转换为模拟格式以便首先执行神经形态运算。可将神经形态运算的结果转换为非模拟格式且可执行后续算术运算。可将算术运算的结果发送回到主机。
图6是根据本公开的数个实施例的呈包含控制电路系统620的设备600的形式的功能框图。控制电路系统620可包含逻辑电路系统622及存储器资源624,所述逻辑电路系统及存储器资源可类似于本文在图1中所说明的处理资源122及存储器资源124。逻辑电路系统622及/或存储器资源624可单独地视为“设备”。
控制电路系统620可经配置以从主机(例如,本文在图1、2A及2B中所说明的主机102/202)接收呈posit格式的位串。在一些实施例中,posit位串可存储在存储器资源624中。一旦已由控制电路系统620接收位串,就可在缺乏来自所述主机及/或控制器的中介命令的情况下对posit位串执行算术及/或逻辑运算。例如,控制电路系统620可包含足够的处理资源及/或指令以对存储在存储器资源624中的位串执行算术及/或逻辑运算,而无需从控制电路系统620外部的电路系统接收额外命令。
逻辑电路系统622可为算术逻辑单元(ALU)、状态机、序列发生器、控制器、指令集架构(ISA)或其它类型的控制电路系统。如上文所描述,ALU可包含用来对整数二进制数,例如呈posit格式的位串执行例如上文所描述的运算的运算(例如,算术运算、逻辑运算、逐位运算等)的电路系统。指令集架构(ISA)可包含精简指令集计算(RISC)装置。在其中逻辑电路系统622包含RISC装置的实施例中,RISC装置可包含可采用指令集架构(ISA),例如RISC-V ISA的处理资源,然而实施例不限于RISC-V ISA且可使用其它处理装置及/或ISA。
在一些实施例中,逻辑电路系统622可经配置执行指令(例如,存储在存储器资源624的INSTR 625部分中的指令)以执行上述运算。例如,逻辑电路系统622配备有足够的处理资源以引起对由控制电路系统620接收的数据(例如,对位串)执行算术及/或逻辑运算。
一旦由逻辑电路系统622执行(若干)算术及/或逻辑运算,就可将所得位串存储在存储器资源624及/或存储器阵列(例如,本文在图2A中所说明的神经形态存储器阵列230)中。经存储的所得位串可经寻址使得它们对于运算的执行是可存取的。例如,位串可存储在存储器资源624及/或存储器阵列中的特定物理地址(其可具有与其对应的对应逻辑地址)处使得位串可在执行运算时存取。
在一些实施例中,存储器资源624可为存储器资源,例如随机存取存储器(例如,RAM、SRAM等)。然而,实施例不限于此,且存储器资源624可包含各种寄存器、高速缓存、缓冲器及/或存储器阵列(例如,1T1C、2T2C、3T等DRAM阵列)。存储器资源624可经配置以例如从例如本文在图1、2A中所说明的主机102/202的主机及/或例如本文在图2A中所说明的神经形态存储器阵列230的存储器阵列接收位串(例如,呈posit格式的位串)。在一些实施例中,存储器资源638可具有近似256千字节(KB)的大小,然而实施例不限于这个特定大小,且存储器资源624可具有大于或小于256KB的大小。
存储器资源624可划分成一或多个可寻址存储器区。如图6中所展示,存储器资源624可划分成可寻址存储器区使得各种类型的数据可存储在其中。例如,一或多个存储器区可存储由存储器资源624使用的指令(“INSTR”)625,一或多个存储器区可存储数据626-1、…、626-N(例如,例如从主机及/或存储器阵列检索的位串的数据),及/或一或多个存储器区可用作存储器资源638的本地存储器(“LOCAL MEM”)628部分。尽管在图6中展示20个不同存储器区,但将明白,存储器资源624可划分成任何数目个不同存储器区。
如上文所论述,可响应于由主机、控制器(例如,本文在图2A中所说明的控制器210)或逻辑电路系统622产生的消息及/或命令而从主机及/或存储器阵列检索(若干)位串。在一些实施例中,可由逻辑电路系统622处理命令及/或消息。一旦(若干)位串由控制电路系统620接收且存储在存储器资源624中,就可由逻辑电路系统622处理所述位串。由逻辑电路系统622处理(若干)位串可包含对(若干)经接收位串执行算术运算及/或逻辑运算。
在非限制性神经网络训练应用中,控制电路系统620可接收已从es=0的8位posit转换的模拟位串。与利用es=0的8位posit位串的一些方法相比,模拟位串可比8位posit位串更快地提供神经网络训练结果。
图7是表示根据本公开的数个实施例的用于对posit进行神经形态运算的实例方法770的流程图。在框772处,方法770可包含在存储器装置处接收包括呈第一格式的位串的数据,所述第一格式支持特定精度水平的算术运算。存储器装置可类似于图1中所说明的存储器装置104及图2A中所说明的存储器装置204。第一格式可为posit格式。
在框774处,方法770可包含经由数/模转换器将数据转换为作为模拟格式的第二格式。数/模转换器可类似于本文在图5中的数/模转换器557。在一些实施例中,第一格式可为模拟格式且第二格式可为posit格式。此外,第二格式可包含尾数、底数、符号及指数。
在框776处,方法770可包含将呈第二格式的数据写入存储器装置的存储器单元中。存储器单元可为如本文在图5中所说明的存储器单元552。方法770可进一步包含将模拟权重添加到呈第二格式的数据,从而得到经调整数据且将经调整数据写入到存储器单元。
在框778处,方法770可包含使用写入到存储器单元的数据来执行运算,从而得到呈第二格式的额外数据。方法770可进一步包含将呈第二格式的额外数据转换为呈第一格式的额外数据。方法770可进一步包含将呈第一格式的额外数据发送到存储器装置外部的装置。存储器装置外部的装置可为主机。在一些实施例中,运算的执行可包含对写入到存储器单元的数据执行神经形态运算。在一些实例中,与对以第一格式表示的相同数据执行运算相比,对呈第二格式的数据执行运算发生在更短的时间量或更少量的子运算中。
尽管本文中已说明及描述特定实施例,但所属领域的一般技术人员将明白,经计算以实现相同结果的布置可置换所展示的特定实施例。本公开意在涵盖本公开的一或多个实施例的调适或变动。应理解,以说明性方式而非限制性方式进行上述描述。所属领域的技术人员在检阅上文描述之后将明白上述实施例的组合及本文中未明确地描述的其它实施例。本公开的一或多个实施例的范围包含其中使用上述结构及过程的其它应用。因此,应参考所附权利要求书连同此权利要求书所授权的等效物的全范围来确定本公开的一或多个实施例的范围。
在前述具体实施方式中,为了简化本公开,将一些特征一起分组在单个实施例中。本公开方法不应被解译为反映本公开的所公开实施例必须使用比每一权利要求中明确所述的特征更多的特征的意图。实情是,如所附权利要求书反映,发明主题在于少于所公开单个实施例的所有特征。因此,所附权利要求特此并入到具体实施方式中,其中每个权利要求独立作为单独实施例。

Claims (20)

1.一种用于存储器操作的设备,其包括:
存储器装置,其包括多个存储器单元,其中所述多个存储器单元各自经配置以存储包括呈模拟格式的位串的数据;及
模/数转换器,其耦合到所述存储器装置,其中所述模/数转换器经配置以将存储在所述多个存储器单元中的至少一者中的呈所述模拟格式的所述位串转换为支持特定精度水平的算术运算的posit格式,所述特定精度水平高于浮点格式的精度水平。
2.根据权利要求1所述的设备,其中支持算术运算的所述posit格式是通用数字格式。
3.根据权利要求1所述的设备,其中支持算术运算的所述posit格式包括底数并且是类型III通用数字格式。
4.根据权利要求1所述的设备,其中支持算术运算的所述posit格式包含尾数、符号、底数及指数部分。
5.根据权利要求1所述的设备,其进一步包括处理装置,所述处理装置耦合到所述存储器装置,所述处理装置经配置以引起具有带有支持算术运算的所述posit格式的所述位串的所述数据传送到主机计算装置外部的电路系统。
6.根据权利要求1所述的设备,其进一步包括控制器,其中所述控制器经配置以发送包括所述位串的所述数据,所述位串转换为支持外部电路的算术运算的所述posit格式。
7.根据权利要求1所述的设备,其进一步包括数/模转换器,其中所述数/模转换器经配置以将呈支持算术运算的所述posit格式的经接收值转换为所述模拟格式。
8.根据权利要求7所述的设备,其进一步包括控制器,其中所述控制器经配置以存储包括所述位串的所述数据,所述位串转换为所述存储器装置的存储单元中的所述模拟格式。
9.一种用于存储器操作的方法,其包括:
在存储器装置处接收包括呈posit格式的位串的数据,所述posit格式支持特定精度水平的算术运算,所述特定精度水平高于浮点格式的精度水平;
经由数/模转换器将所述数据转换为模拟格式;
将呈所述模拟格式的所述数据写入所述存储器装置的存储器单元中;及
使用写入到所述存储器单元的所述数据来执行运算从而得到呈所述模拟格式的额外数据。
10.根据权利要求9所述的方法,其进一步包括将呈所述模拟格式的所述额外数据转换为呈所述posit格式的额外数据。
11.根据权利要求10所述的方法,其进一步包括发送呈所述posit格式的所述额外数据到位于所述存储器装置的外部的装置。
12.根据权利要求11所述的方法,其中位于所述存储器装置的外部的所述装置是主机。
13.根据权利要求9所述的方法,其中执行所述运算包括对写入到所述存储器单元的所述数据执行神经形态运算。
14.根据权利要求9所述的方法,其进一步包括将模拟权重添加到呈所述模拟格式的所述数据,从而得到经调整数据且将所述经调整数据写入到所述存储器单元。
15.根据权利要求9所述的方法,其中与对以所述posit格式表示的所述数据执行所述运算相比,对呈所述模拟格式的所述数据执行所述运算发生在更短的时间量或更少量的子运算中。
16.一种用于存储器操作的系统,其包括:
存储器装置,其包括:
控制电路系统;及
存储器阵列,其耦合到所述控制电路系统且包括多个存储器单元,其中所述多个存储器单元经配置以存储包括呈模拟格式的位串的数据;及
数/模转换器,其耦合到所述存储器装置,其中所述数/模转换器经配置以将包括以支持特定精度水平的算术运算的posit格式接收的位串的数据转换为所述模拟格式,所述特定精度水平高于浮点格式的精度水平;
其中所述控制电路系统经配置以:
接收呈所述模拟格式的数据;及
将呈所述模拟格式的所述数据存储在所述多个存储器单元中的至少一者中;及
对以所述模拟格式存储的所述数据执行神经形态运算。
17.根据权利要求16所述的系统,其进一步包括模/数转换器,所述模/数转换器耦合到所述存储器装置且经配置以将呈所述模拟格式的数据转换为呈所述posit格式的数据。
18.根据权利要求17所述的系统,其中:
所述模/数转换器经配置以将对其执行所述神经形态运算的所述数据从所述模拟格式转换为所述posit格式;且
所述控制电路系统进一步经配置以将转换为所述posit格式的所述数据发送到所述系统外部的装置。
19.根据权利要求16所述的系统,其中所述控制电路系统经配置以接收命令,以对以所述模拟格式接收到的数据执行神经形态运算。
20.根据权利要求16所述的系统,其中呈所述posit格式的所述位串包括类型II通用数字格式。
CN202180035602.9A 2020-06-29 2021-06-01 使用posit的神经形态运算 Active CN115668224B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US16/915,039 2020-06-29
US16/915,039 US11636323B2 (en) 2020-06-29 2020-06-29 Neuromorphic operations using posits
US16/997,599 2020-08-19
US16/997,599 US20220058471A1 (en) 2020-08-19 2020-08-19 Neuron using posits
PCT/US2021/035125 WO2022005673A1 (en) 2020-06-29 2021-06-01 Neuromorphic operations using posits

Publications (2)

Publication Number Publication Date
CN115668224A CN115668224A (zh) 2023-01-31
CN115668224B true CN115668224B (zh) 2024-06-11

Family

ID=79314886

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202180035602.9A Active CN115668224B (zh) 2020-06-29 2021-06-01 使用posit的神经形态运算
CN202180034045.9A Pending CN115516463A (zh) 2020-06-29 2021-06-28 使用posit的神经元

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202180034045.9A Pending CN115516463A (zh) 2020-06-29 2021-06-28 使用posit的神经元

Country Status (4)

Country Link
EP (2) EP4172875A1 (zh)
KR (2) KR20230027250A (zh)
CN (2) CN115668224B (zh)
WO (2) WO2022005673A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210397974A1 (en) * 2020-06-23 2021-12-23 Sandisk Technologies Llc Multi-precision digital compute-in-memory deep neural network engine for flexible and energy efficient inferencing
CN116432711B (zh) * 2023-02-13 2023-12-05 杭州菲数科技有限公司 SiLU激活函数的硬件实现方法、装置及计算设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111310909A (zh) * 2020-02-24 2020-06-19 南京大学 一种浮点数转换电路

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2983664B1 (fr) * 2011-12-05 2013-12-20 Commissariat Energie Atomique Convertisseur analogique-numerique et circuit neuromorphique utilisant un tel convertisseur
US10169701B2 (en) * 2015-05-26 2019-01-01 International Business Machines Corporation Neuron peripheral circuits for neuromorphic synaptic memory array based on neuron models
US10885429B2 (en) * 2015-07-06 2021-01-05 University Of Dayton On-chip training of memristor crossbar neuromorphic processing systems
US10346350B2 (en) * 2015-10-08 2019-07-09 Via Alliance Semiconductor Co., Ltd. Direct execution by an execution unit of a micro-operation loaded into an architectural register file by an architectural instruction of a processor
KR20180111156A (ko) * 2017-03-31 2018-10-11 에스케이하이닉스 주식회사 피드-백 라인을 가진 포스트-시냅틱 뉴런을 포함하는 뉴로모픽 소자 및 뉴로모픽 소자의 동작 방법
KR101965850B1 (ko) * 2017-04-26 2019-04-05 광주과학기술원 인공 신경망에 사용되는 활성 함수의 확률적 구현 방법 및 그를 포함하는 시스템
US11354568B2 (en) * 2017-06-30 2022-06-07 Intel Corporation In-memory spiking neural networks for memory array architectures
US10956811B2 (en) * 2017-07-31 2021-03-23 Intel Corporation Variable epoch spike train filtering
KR102141385B1 (ko) * 2018-03-08 2020-08-05 포항공과대학교 산학협력단 전치 가능한 메모리와 가상 순람표를 이용한 뉴로모픽 시스템
KR102675781B1 (ko) * 2018-06-27 2024-06-18 삼성전자주식회사 뉴로모픽 프로세서 및 그것의 동작 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111310909A (zh) * 2020-02-24 2020-06-19 南京大学 一种浮点数转换电路

Also Published As

Publication number Publication date
WO2022005944A1 (en) 2022-01-06
EP4172874A1 (en) 2023-05-03
CN115668224A (zh) 2023-01-31
KR20230021140A (ko) 2023-02-13
EP4172875A1 (en) 2023-05-03
KR20230027250A (ko) 2023-02-27
CN115516463A (zh) 2022-12-23
WO2022005673A1 (en) 2022-01-06
EP4172874A4 (en) 2024-07-17

Similar Documents

Publication Publication Date Title
CN111724832B (zh) 用于存储器阵列数据结构正数运算的设备、系统及方法
CN114008583B (zh) 存储器中的位串运算
CN112420092B (zh) 位串转换
US11714605B2 (en) Acceleration circuitry
CN115668224B (zh) 使用posit的神经形态运算
CN111696610A (zh) 用于位串转换的设备和方法
CN113965205A (zh) 位串压缩
US20230244923A1 (en) Neuromorphic operations using posits
CN113805974A (zh) 基于应用程序的数据类型选择
CN113918117B (zh) 动态精确度位串累加
CN113961170B (zh) 存储器中的算术操作
CN113553278A (zh) 用于posit运算的加速电路系统
CN115398392A (zh) 算术逻辑单元
US20220058471A1 (en) Neuron using posits
CN113454916B (zh) 基于主机的位串转换
US20220215235A1 (en) Memory system to train neural networks
CN113924622B (zh) 存储器阵列外围中的位串累加
CN113641602B (zh) 用于posit运算的加速电路系统
CN111694762A (zh) 用于位串转换的设备和方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant