假定张量处理

文档序号:95721 发布日期:2021-10-12 浏览:27次 >En<

阅读说明:本技术 假定张量处理 (Hypothetical tensor processing ) 是由 V·S·拉梅什 于 2021-03-26 设计创作,主要内容包括:本申请涉及假定张量处理。一种与假定张量处理有关的方法可包含:通过彼此耦合的多个乘累加器MAC单元接收多个通用数字unum或假定位串,所述多个通用数字unum或假定位串组织成矩阵并且将在使用所述多个MAC单元执行的多个相应递归运算中用作操作数;以及使用所述MAC单元执行所述多个相应递归运算。所述相应递归运算的迭代使用至少一个位串执行,所述至少一个位串与用于所述相应递归运算的先前迭代的位串相同。所述方法可进一步包含在接收所述多个unum或假定位串之前,执行组织所述多个unum或假定位串的操作以在所述多个相应递归运算的执行期间实现阈值带宽比、阈值时延或这两者。(The present application relates to hypothesis tensor processing. A method related to hypothetical tensor processing may comprise: receiving, by a plurality of multiply-accumulator MAC units coupled to one another, a plurality of universal number um or hypothesized bit strings that are organized into matrices and to be used as operands in a plurality of respective recursive operations performed using the plurality of MAC units; and performing the plurality of respective recursive operations using the MAC unit. The iteration of the respective recursive operation is performed using at least one bit string that is the same as a bit string used for a previous iteration of the respective recursive operation. The method may further include, prior to receiving the plurality of unum or hypothesized bit strings, performing an operation of organizing the plurality of unum or hypothesized bit strings to achieve a threshold bandwidth ratio, a threshold latency, or both during performance of the plurality of respective recursive operations.)

假定张量处理

技术领域

本公开大体上涉及半导体存储器和方法,且更具体地说,涉及用于假定(posit)张量处理的设备、系统和方法。

背景技术

存储器装置通常提供为计算机或其它电子系统中的内部、半导体、集成电路。存在许多不同类型的存储器,包含易失性和非易失性存储器。易失性存储器会需要功率以维持其数据(例如主机数据、误差数据等)并包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)和晶闸管随机存取存储器(TRAM)等等。非易失性存储器可通过在未供电时保存所存储数据来提供永久数据,且可包含NAND快闪存储器、NOR快闪存储器和电阻可变存储器,如相变随机存取存储器(PCRAM)、电阻性随机存取存储器(RRAM)和磁阻随机存取存储器(MRAM),如自旋力矩转移随机存取存储器(STT RAM)等等。

存储器装置可耦合到主机(例如,主机计算装置)以存储数据、命令和/或指令以在计算机或电子系统处于操作中时供主机使用。举例来说,数据、命令和/或指令可在计算或其它电子系统的操作期间在主机和存储器装置之间传送。

发明内容

在一方面,本申请提供一种用于假定张量处理的方法,其包括:至少部分地基于与彼此耦合的多个乘累加器(MAC)单元的递归运算相关联的阈值带宽比或阈值时延或这两者,以矩阵组织多个通用数字(unum)或假定位串;通过所述MAC单元接收组织成所述矩阵的所述多个unum或假定位串;使用所述MAC单元执行多个相应递归运算,其中所述相应递归运算的迭代使用至少一个位串执行,所述至少一个位串与用于所述相应递归运算的先前迭代的位串相同;以及在耦合到所述多个MAC单元当中的相应MAC单元的相应寄存器中存储所述多个相应递归运算的迭代结果。

在另一方面,本申请进一步提供一种用于假定张量处理的设备,其包括:假定乘累加器(MAC)块,其包括多个MAC单元,所述多个MAC单元以网格构造组织且配置成:经由沿着所述假定MAC块的第一横向尺寸驻存的接口接收命令,所述命令是使用组织成矩阵的通用数字或假定位串执行相应递归运算;沿着所述假定MAC块的第二横向尺寸接收所述通用数字或假定位串,所述第二横向尺寸大体上正交于所述第一横向尺寸;以及使用接收到的通用数字或假定位串执行所述相应递归运算,其中所述相应递归运算的迭代使用至少一个位串执行,所述至少一个位串与用于所述相应递归运算的先前迭代的位串相同。

在又一方面,本申请进一步提供一种用于假定张量处理的系统,其包括:部署在专用集成电路或现场可编程门阵列上的多个假定乘累加器(MAC)单元,所述MAC单元具备处理资源且以网格构造彼此耦合;以及耦合到所述MAC单元中的每一个的相应叠加寄存器,其中所述多个MAC单元当中的每个MAC单元配置成:接收根据通用数字格式或假定格式格式化且组织成矩阵的位串;使用接收到的位串作为递归运算的操作数来执行所述递归运算;使所述递归运算的迭代结果在所述相应叠加寄存器中累加;确定所述递归运算完成;以及使用所述递归运算的最终迭代结果、存储在所述相应叠加寄存器中的迭代结果或这两者产生所述递归运算的最终结果。

附图说明

图1是根据本公开的若干实施例的呈包含主机和存储器装置的设备形式的功能框图,所述存储器装置包含处理单元。

图2A是根据本公开的若干实施例的呈包含乘累加器块的处理单元形式的功能框图。

图2B是根据本公开的若干实施例的呈包含乘累加器块的处理单元形式的另一功能框图。

图3是es指数位后的n位的实例。

图4A是用于3位假定的正值的实例。

图4B是使用两个指数位的假定构造的实例。

图5是根据本公开的若干实施例的表示用于假定张量处理的实例方法的流程图。

具体实施方式

描述了与假定张量处理有关的系统、设备和方法。与假定张量处理有关的方法可包含:通过彼此耦合的多个乘累加器(MAC)单元接收多个通用数字(unum)或假定位串,所述通用数字或假定位串组织成矩阵并且将在使用所述多个MAC单元执行的多个相应递归运算中用作操作数;以及所述MAC单元执行所述多个相应递归运算,其中所述相应递归运算的迭代使用至少一个位串执行,所述至少一个位串与用于所述相应递归运算的先前迭代的位串相同。所述方法可进一步包含:在接收所述多个unum或假定位串之前,执行组织所述多个unum或假定位串的操作以在执行所述多个相应递归运算期间实现阈值带宽比、阈值时延或这两者。

计算系统可执行广泛范围的可包含各种计算的操作,这可需要不同的准确度。然而,计算系统具有有限量的存储器,在所述存储器中存储在其上执行计算的运算数。为了促进在由有限存储器资源施加的约束内对由计算系统存储的运算数执行操作,可以特定格式存储运算数。为简单起见,一种此类格式称作“浮点”格式或“浮动(float)”(例如,IEEE 754浮点格式)。

根据浮点标准,在三个整数集或位集(一位集称作“基数(base)”,一位集称作“指数”,且一位集称作“尾数”(或有效数字))方面表示位串(例如,可表示数字的位串),如二进制数字串。整数集或位集定义其中存储二进制数字串的格式,为简单起见,可在本文中称为“数值格式”或“格式”。举例来说,定义浮点位串的上文所描述的三个整数集或位集(例如,基数、指数和尾数)可称作格式(例如,第一格式)。如下文更详细地描述,假定位串可包含四个整数集或位集(例如,符号、方案、指数和尾数),其也可称为“数值格式”或“格式”(例如,第二格式)。另外,根据浮点标准,两种无限值(例如,+∞和-∞)和/或两个种类的“非数字值(NaN)”(安静NaN和发信NaN)可包含于位串中。

浮点标准已在计算系统中使用数年且定义用于由许多计算系统进行的计算的算术格式、互换格式、舍入规则、操作和异常处理。算术格式可包含二进制和/或十进制浮点数据,其可包含有限数字、无线值和/或特定NaN值。互换格式可包含可用于交换浮点数据的编码(例如,位串)。舍入规则可包含当在算术运算和/或转换操作期间舍入数字时可满足的一组特性。浮点操作可包含算术运算和/或其它计算操作,如三角函数。异常处理可包含异常条件的指示,如除以零、上溢等。

浮点的替代格式称作“通用数字”(unum)格式。存在可称为“假定”和/或“有效(valid)”的若干形式的unum格式,I型unum、II型unum和III型unum。I型unum是在尾数的结尾处使用“ubit”指示实数是否是准确浮动或是否介于相邻浮动之间的区间中的IEEE754标准浮点格式的超集。I型unum中的符号、指数和尾数位从IEEE 754浮点格式获取其定义,然而,I型unum的指数和尾数字段的长度可从单个位显著地改变到最大用户可定义长度。通过从IEEE 754标准浮点格式获取符号、指数和尾数位,I型unum可类似于浮点数表现,然而,在I型unum的指数和分数位中呈现的可变位长度相较于浮动可需要额外管理。

II型unum大体上与浮动不相容,然而,II型unum可允许基于投影实数的清洁数学设计。II型unum可包含n位且可在“u晶格”方面加以描述,其中圆形投影的象限填充有2n-3-1个实数的有序集。II型unum的值可围绕将圆形投影等分的轴线反射,使得正值位于圆形投影的右上象限中,而其负对应值位于圆形投影的左上象限中。表示II型unum的圆形投影的下半部可包含位于圆形投影的上半部中的值的倒数。II型unum对大多数操作来说大体上依赖于查询表。因此,在一些情况下,查询表的大小可限制II型unum的效果。然而,II型unum与根据一些条件的浮动相比可提供改进的计算功能性。

III型unum格式在本文中称为“假定格式”或为简单起见称为“假定”。与浮点位串对比,假定可根据某些条件而允许比具有相同位宽度的浮点数更高的精确度(例如,更宽动态范围、更高分辨率和/或更高准确度)。这可允许由计算系统执行的操作当使用假定时在比浮点数更高的速率(例如,更快)下加以执行,这转而可通过例如减小在执行操作中使用的时钟周期的数目,由此减少处理时间和/或在执行此类操作中消耗的功率来改进计算系统的性能。另外,计算系统中的假定的使用可允许在计算中比浮点数更高的准确度和/或精确度,这可相较于一些方法(例如,依赖于浮点格式位串的方法)进一步改进计算系统的功能。

假定可基于包含于假定中的总位量和/或整数集或位集的量而在精确度和准确度中高度可变。另外,假定可产生广动态范围。根据某些条件,假定的准确度、精确度和/或动态范围可大于浮动或其它数字格式的准确度、精确度和/或动态范围,如本文中更详细描述。假定的可变准确度、精确度和/或动态范围可例如基于其中将使用假定的应用而加以操纵。另外,假定可减小或消除上溢、下溢、NaN和/或与浮动和其它数字格式相关联的其它极端情况。另外,假定的使用可允许使用相较于浮动或其它数字格式更少的位来表示数值(例如,数字)。

在一些实施例中,这些特征可允许高度可再配置假定,这可相较于依赖于浮动或其它数字格式的方法而提供改进的应用性能。另外,假定的这些特征可在机器学习应用中相较于浮动或其它数字格式而提供改进的性能。举例来说,假定可用于机器学习应用,其中计算性能对使用比浮动或其它数字格式更少的位来利用与浮动或其它数字格式相同或更大的准确度和/或精确度来训练网络(例如,神经网络)来说至关重要。另外,可使用具有比浮动或其它数字格式更少的位(例如,更小位宽度)的假定来达到在机器学习情形中的推断操作。通过使用相较于浮动或其它数字格式更少的位实现相同或增强的结果,假定的使用可因此在执行操作中减小时间量和/或减小在应用中所需的存储器空间的量,这可改进其中采用假定的计算系统的整体功能。

本文中的实施例涉及配置成对位串执行各种运算以提高计算装置的整体运行的硬件电路系统(例如,可包含乘累加器(MAC)块的处理单元,所述MAC块可包含多个组成MAC单元)。举例来说,本文中的实施例涉及配置成使用根据通用数字(unum)或假定格式格式化的位串执行递归运算的硬件电路系统。在一些实施例中,位串可以在执行递归运算之前、期间或之后组织成矩阵或张量。

举例来说,MAC块可配置成使得MAC块的组成MAC单元接收组织成矩阵或张量的unum或假定位串,并共同操作以使用所述位串矩阵或张量执行递归运算,从而产生所得位串矩阵或张量。在一些实施例中,作为执行乘累加运算的部分,递归运算可由组成MAC单元执行,但是如本文中更详细描述,实施例不限于乘累加运算的执行。

在一些实施例中,在执行递归运算之前,位串可以从支持第一精确度水平的算术或逻辑运算的第一格式(例如,浮点格式或定点格式)转换成支持第二精确度水平的算术或逻辑运算的第二格式(例如,通用数字格式、假定格式等)。举例来说,主机可配置成使用以浮点格式或定点格式格式化的位串,且处理单元可配置成使用以unum或假定格式格式化的位串执行算术和/或逻辑运算。因此,为了使用处理单元执行递归运算,位串可以在执行所述运算之前从第一格式转换成第二格式。

如本文中更详细描述,处理单元可包含在根据各种控制信号操作时可对经转换位串执行此类运算的电路系统和组件。在一些实施例中,所述运算可以在张量处理单元内执行,而无需激活耦合到处理单元的输入/输出电路系统(例如,在激活之前)。因此,在一些实施例中,处理单元可配置成使用经转换位串执行所述运算,而无需将位串传递到处理单元之外(例如,传递到主机),直到完成所请求的操作为止。

通过使用已经覆盖成第二格式的位串在处理单元内执行此类运算,可以通过允许所执行运算中的经提高精度和/或精确度、执行运算时的经提高速度和/或在执行递归算术和/或逻辑运算之前、期间或之后位串所需要的经减小存储空间而实现计算系统的经提高性能。另外,相比于不包含本文中所描述的处理单元的方法,通过在处理单元内执行此类运算可以减少计算系统内断言的信号数量,由此减少执行运算所耗费的功耗和/或时间量。

在一些实施例中,在处理单元内执行的运算结果(例如,所得位串)可以转换回第一格式(例如,浮点格式),随后可以传递到计算系统的另一电路系统(例如,主机、存储器装置等)。

在本公开的以下详细描述中,参考形成本公开的一部分的附图,且其中通过说明方式展示可实践本公开的一或多个实施例的方式。足够详细地描述这些实施例以使得所属领域的一般技术人员能够实践本公开的实施例,且应理解,可利用其它实施例,且可在不脱离本公开的范围的情况下进行工艺、电气和结构改变。

如本文中所使用,如“N”、“M”、“X”和“Y”等的指定符,尤其是关于图式中的附图标号,指示可包含数个如此指定的特定特征。还应理解,本文中所用的术语仅仅是为了描述具体实施例且并不意图为限制性的。如本文中所使用,除非上下文另外明确规定,否则单数形式“一(a/an)”和“所述”可包含单数个指示物和多个指示物两者。另外,“数个”、“至少一个”和“一或多个”(例如,数个存储器组)可指一或多个存储器组,而“多个”意图指代超过一个此类事物。

此外,贯穿本申请在容许意义上(即,可能、能够)而非在强制性意义上(即,必须)使用词语“可(can/may)”。术语“包含”和其派生词意指“包含但不限于”。视上下文而定,术语“耦合(coupled/coupling)”意味着物理上直接或间接连接或存取和移动(发射)命令和/或数据。视上下文而定,术语“位串”、“数据”和“数据值”在本文中可互换地使用且可具有相同含义。另外,视上下文而定,术语“位集”、“位子集”和“部分”(在位串的位的一部分的情形下)在本文中可互换使用且可具有相同含义。

本文中的图式遵循编号定则,其中第一一或多个数字对应于图式编号,且剩余的数字识别图式中的元件或组件。可通过使用类似数字来识别不同图式之间的类似元件或组件。举例来说,120可指代图1中的元件“20”,且类似元件可表示为图2中的220。通常在本文中可用单个元件符号指代多个类似元件或组件或元件或组件群组。举例来说,多个参考元件226-1到226-N(例如,226-1、226-2、226-3、…、226-N)可通常称为226。如将了解,可添加、交换和/或去除本文中的各种实施例中展示的元件以便提供本公开的数个额外实施例。另外,图中提供的元件的比例和/或相对尺度意图说明本公开的某些实施例,且不应视作限制性意义。

图1是根据本公开的若干实施例的呈包含主机102和存储器装置104的设备形式的功能框图,所述存储器装置104包含处理单元120。如本文所使用,“设备”可指但不限于多种结构或结构的组合中的任何一种,例如电路或电路系统、一或多个裸片、一或多个模块、一或多个装置或一或多个系统。存储器装置104可包含一或多个存储器模块(例如,单列直插式存储器模块、双列直插式存储器模块等)。存储器装置104可包含易失性存储器和/或非易失性存储器。在若干实施例中,存储器装置104可包含多芯片装置。多芯片装置可包含多个不同的存储器类型和/或存储器模块。举例来说,存储器系统可包含任何类型的模块上的非易失性或易失性存储器。

如图1所示,设备100可包含处理单元120和存储器阵列130,所述处理单元120可包含逻辑电路系统122和乘累加器(MAC)块124。另外,组件(例如,主机102、处理单元120、逻辑电路系统122、MAC块124和/或存储器阵列130)中的每一个可以在本文中单独地称为“设备”。逻辑电路系统122可以在本文中称为“处理装置”或“处理单元”。

存储器装置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))存储器装置的“新兴”存储器装置、包含自选存储器(SSM)单元阵列的存储器装置等或其组合。电阻可变存储器装置可结合可堆叠交叉网格化数据存取阵列基于体电阻的变化执行位存储。另外,相比于许多基于快闪的存储器,电阻可变非易失性存储器可执行写入原位操作,其中非易失性存储器单元可以在不用先前擦除非易失性存储器单元的情况下进行编程。与相比基于快闪的存储器和电阻可变存储器,自选存储器单元可包含具有单个硫族化物材料充当存储器单元的开关和存储元件两者的存储器单元。

如图1中所说明,主机102可耦合到存储器装置104。在若干实施例中,存储器装置104可经由一或多个通道(例如,通道103)耦合到主机102。在图1中,存储器装置104经由通道103耦合到主机102,且存储器装置104的处理单元120经由通道107耦合到存储器阵列130。主机102可以是主机系统,如个人膝上型计算机、台式计算机、数码相机、智能电话、存储卡读卡器和/或物联网(IoT)启用装置,以及各种其它类型的主机。

主机102可包含系统母板和/或底板,并且可包含存储器存取装置,例如处理器(或处理装置)。所属领域的一般技术人员将理解,“处理器”可以是一或多个处理器,如平行处理系统、多个协处理器等。系统100可包含单独的集成电路,或主机102、存储器装置104和存储器阵列130可在相同集成电路上。举例来说,系统100可以是服务器系统和/或高性能计算(HPC)系统和/或其一部分。虽然图1中展示的实例说明具有冯诺依曼(Von Neumann)架构的系统,但本公开的实施例可实施于非冯诺依曼架构中,此架构可不包含通常与冯诺依曼架构相关联的一或多个组件(例如CPU、ALU等)。

本文中,在图2中更详细地示出的存储器装置104可包含处理单元120,其可包含逻辑电路系统122和MAC块124。处理单元120可以集成电路的形式提供,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、芯片上系统等,而逻辑电路系统122可以精简指令集计算装置(RISC)、高级RISC机器或本文中更详细描述的配置成执行运算的硬件和/或电路系统的其它组合的形式提供。在一些实施例中,逻辑电路系统122可包括一或多个处理器(例如,处理装置、处理单元等)。

逻辑电路系统122可使使用由处理单元120接收的位串的运算得以执行。在一些实施例中,逻辑电路系统可安排位串上的运算以在各种格式之间转换位串和/或使经转换位串传递到存储器阵列130。举例来说,转换操作可包含将浮点位串(例如,浮点数)转换成呈假定格式的位串的操作及反向操作。一旦浮点位串转换成呈假定格式的位串,处理单元120(例如,处理单元120的MAC块124)就可配置成使用假定位串执行(或使得执行)算术运算,如加法、减法、乘法、除法、融合乘法加法、乘累加、点积单元、大于或小于、绝对值(例如,FABS())、快速傅立叶变换、逆快速傅立叶变换、S型函数、卷积、平方根、指数和/或对数运算;和/或递归逻辑运算,如AND、OR、XOR、NOT等;以及三角运算,如正弦、余弦、正切等。在一些实施例中,此类运算可递归地执行。如将了解,上述运算列表并不意图是穷尽性的,上述运算列表也不意图是限制性的,且处理单元120可配置成执行(或使得执行)其它算术、按位和/或逻辑运算。

存储器装置104可进一步包含存储器资源,其可以通信方式耦合到处理单元120。存储器资源可包含易失性存储器资源、非易失性存储器资源或易失性和非易失性存储器资源的组合。在一些实施例中,存储器资源可以是随机存取存储器(RAM),例如静态随机存取存储器(SRAM)。但是实施例不限于此,且存储器资源可以是高速缓存、一或多个寄存器、NVRAM、ReRAM、FeRAM、MRAM、PCM、如电阻可变存储器资源、相变存储器装置的“新兴”存储器装置、包含自选存储器单元阵列的存储器装置等或其组合。

存储器资源可存储一或多个位串。在使用处理单元120执行运算之后,由存储器资源存储的位串可以按照通用数字(unum)或假定格式存储。如本文中所使用,以unum(例如,III型unum)或假定格式存储的位串可包含若干位子集或“位子集”。举例来说,通用数字或假定位串可包含称作“符号”或“符号部分”的位子集、称作“方案”或“方案部分”的位子集、称作“指数”或“指数部分”的位子集和称作“尾数”或“尾数部分”(或有效数字)的位子集。如本文中所使用,位子集意图指代包含于位串中的位子集。本文中结合图3和4A到4B更详细地描述符号、方案、指数和尾数位集的实例。然而,实施例不限于此,且存储器资源可存储呈如浮点格式或其它合适的格式的其它格式的位串。

在一些实施例中,处理单元120可接收包括具有提供第一精确度水平的第一格式的位串(例如,浮点位串)的数据。处理单元120可从存储器资源接收数据并(例如,使用图2B中所示的转换电路系统225-1到225-N)将位串转换成提供不同于第一精确度水平的第二精确度水平的第二格式(例如,通用数字或假定格式)。在一些实施例中,第一精确度水平可低于第二精确度水平。举例来说,如果第一格式是浮点格式且第二格式是通用数字或假定格式,那么浮点位串在某些条件下可提供低于通用数字或假定位串的精确度水平,如本文中结合图3和4A到4B更详细描述。

第一格式可以是浮点格式(例如,IEEE 754格式),且第二格式可以是通用数字(unum)格式(例如,I型unum格式、II型unum格式、III型unum格式、假定格式、有效格式等)。因此,第一格式可包含尾数、基数和指数部分,且第二格式可包含尾数、符号、方案和指数部分。

处理单元120可配置成使用具有第二格式(例如,unum或假定格式)的位串执行算术运算或逻辑运算或这两者。在一些实施例中,算术运算和/或逻辑运算可以是递归运算。如本文中所使用,“递归运算”大体上是指执行指定次数的运算,其中递归运算的前一迭代的结果用作运算的后一迭代的操作数。举例来说,递归乘法运算可以是其中两个位串操作数β和相乘并且递归运算的每一次迭代的结果用作后一迭代的位串操作数的运算。换句话说,递归运算可以指其中递归运算的第一次迭代包含β和相乘得到结果λ(例如,)。此实例递归运算的下一迭代可包含结果λ和相乘得到另一结果ω(例如,)。

递归运算的另一说明性实例可以在计算自然数的阶乘方面进行解释。通过等式1给出的这一实例可包含在给定数字n的阶乘大于零时执行递归运算,并在数字n等于零时返回一:

等式1

如等式1中所示,确定数字n的阶乘的递归运算可以一直实行到n等于零为止,此时获得解并终止递归运算。举例来说,使用等式1,数字n的阶乘可以通过执行以下运算以递归方式计算出:n×(n-1)×(n-2)×…×1。

递归运算的又一实例是乘累加运算,其中累加器a在迭代时根据等式a←a+(b xc)修改。在乘累加运算中,累加器a的每个先前迭代与两个操作数b和c的乘积求和。本文所涵盖的递归运算的实例不限于这些实例。相反,递归运算的以上实例仅仅是说明性的,并且是为了在本公开的上下文中阐明术语“递归运算”的范围而提供的。

图1的实施例可包含额外电路系统,所述额外电路系统没有示出,以免混淆本公开的实施例。举例来说,存储器装置104可包含用于锁存通过I/O电路系统经由I/O连接提供的地址信号的地址电路系统。地址信号可由行解码器和列解码器接收和解码,以存取存储器装置104和/或存储器阵列130。本领域的技术人员应了解,地址输入连接的数目可取决于存储器装置104和/或存储器阵列130的密度和架构。

图2A是根据本公开的若干实施例的呈包含乘累加器块224的处理单元220形式的功能框图。处理单元220和乘累加器(MAC)块224可类似于图1所示的处理单元120和MAC块124。

如图2A中所示,处理单元220可包含逻辑电路系统222-1到222-N(其可类似于图1中所示的逻辑电路系统122)、多个数据仲裁器218-1到218-N和多个缓冲器/接口216-1到216-M。另外,MAC块224可包含多个MAC单元226-1到226-N。尽管示出为在处理单元220内部,但是缓冲器/接口216-1到216-M可以在处理单元220外部。在此类实施例中,缓冲器/接口216-1到216-M可经由例如双倍数据速率(DDR)总线、外围组件互连高速(PCIe)总线或其它合适的总线的通信路径耦合到处理单元220。

逻辑电路系统222-1到222-N可经由相应的通信路径217-1到217-N以通信方式耦合到缓冲器/接口216-1到216-M。通信路径217-1到217-N可允许逻辑电路系统222-1到222-N和缓冲器/接口216-1到216-M之间的直接通信(例如,用于命令交换)。

MAC单元226-1到226-N可配置成执行算术和/或逻辑运算作为数字信号处理的部分以使用位串操作数执行递归运算。如上文所描述,位串操作数可以是unum或假定位串操作数,并且可在被MAC单元226-1到226-N接收之前组织成矩阵或张量。MAC单元226-1到226-N可包含用于促进算术和/或逻辑运算的执行以使用unum或假定位串操作数执行乘累加运算(以及其它运算)的电路系统。

在一些实施例中,MAC单元226-1到226-N可各自配置成容纳64位乘64位(例如,具有64列和64行数据值的位串矩阵或张量),但实施例不限于此特定实例。举例来说,本文中所描述的实施例可包含可配置成容纳8位乘8位、16位乘16位、32位乘32位或任何其它位量的MAC单元226-1到226-N。在一些实施例中,MAC单元226-1到226-N可重新配置成使得它们可在执行一些运算期间包含第一位量,且在其它运算内包含第二位量。举例来说,MAC单元226-1到226-N可配置成针对某些运算容纳8位乘8位,并且可在后续时间重新配置成容纳64位乘64位。

在其中MAC单元226-1到226-N配置成容纳64位乘64位的实施例中,MAC块224可配置成包含多个MAC单元226-1到226-N,使得MAC块224可以容纳128位乘128位。举例来说,在图2A所示的实例中,MAC块224包含四个MAC单元226-1到226-N,它们在以网格构造(如图2A中所示)进行空间配置时提供128位乘128位的容纳。如本文中所使用,“网格构造”大体上是指其中组件布置成使得相应组件的顶边缘和侧边缘彼此对齐的情形。举例来说,在图2A所示的网格构造中,MAC单元226-1和226-2的顶边缘彼此对齐,且MAC单元226-3和226-N的顶边缘彼此对齐。另外,MAC单元226-1和226-3的侧边缘彼此对齐,且MAC单元226-3和226-N的侧边缘彼此对齐。

在一些实施例中,每个MAC单元226-1到226-N可包含8位输入和/或输出、16位输入和/或输出、32位输入和/或输出等。位串(例如,用作在处理单元220内执行的运算的操作数的unum或假定位串)可以在所述运算的执行期间通过MAC块224流式传输。举例来说,位串可以在例如乘累加运算的递归运算的执行期间由MAC块224连续(或近乎连续地)处理。

位串可以在由MAC块224接收之前由数据仲裁器218-1到218-N处理。数据仲裁器218-1到218-N可配置成组织位串以优化与使用MAC块224执行运算相关联的带宽和/或时延。也就是说,相比于在使用位串执行运算之前不提供数据仲裁器来组织位串的方法,本文中的实施例可允许位串进行组织以优化与执行运算相关联的带宽和/或时延参数。相比于在使用位串执行运算之前不优化位串内容的方法,这可使得使用MAC块224执行的运算的吞吐量增加。在一些实施例中,数据仲裁器218-1到218-N可以是收缩数据仲裁器。

如本文中所使用,术语“收缩”是指其中例如位串的数据通过例如处理单元220的计算装置流动或流式传输的情形。举例来说,本文中的实施例可包含向MAC块224提供位串,并且因此,MAC单元226-1到226-N以收缩方式使得在发出发起使用MAC块224执行递归运算的命令之后不存在中间命令的情况下,位串连续地流动或流式传输到MAC块224。因此,“收缩数据仲裁器”是指以收缩方式分配对共享计算资源的存取的硬件装置(例如,以流动或流式传输方式分配对共享计算资源的存取的硬件装置)。

由MAC块224执行的运算可以通过断言去往MAC块224的MAC单元226-1到226-N的命令和/或控制信号来控制。命令和/或控制信号可以在MAC块224上经由缓冲器/接口216-1到216-M断言。因此,在一些实施例中,命令和/或控制信号可以沿着MAC块224的第一横向尺寸(例如,从MAC块224的顶部和/或底部,如图2A中所示)在MAC块224上断言,并且位串可以沿着MAC块224的第二横向尺寸(例如,沿着MAC块224的侧面,如图2A中所示)流式传输到MAC块224中。

图2B是根据本公开的若干实施例的呈包含乘累加器块224的处理单元220形式的另一功能框图。处理单元220和乘累加器(MAC)块224可类似于图1所示的处理单元120和MAC块124。

如图2B中所示,处理单元220可包含逻辑电路系统222-1到222-N(其可类似于图1中所示的逻辑电路系统122)、多个数据仲裁器218-1到218-N和多个缓冲器/接口216-1到216-M。另外,MAC块224可包含多个MAC单元226-1到226-N,它们可各自包含相应的叠加(quire)寄存器227-1到227-N。另外,处理单元220可包含转换电路系统225-1到225-N和/或神经网络组件223-1到223-X。

叠加寄存器227-1到227-N本文中可以替代地称为“累加器寄存器”或“寄存器”,为简单起见,它们可包含感测放大器、触发器或配置成存储数据值的其它存储位置。在一些实施例中,叠加寄存器227-1到227-N可配置成存储由MAC块224执行的递归运算的迭代结果。迭代结果可以在递归运算的每一阶段累加。这可使得尚未舍入或截断的递归运算结果得以存储,这在一些其它方法中是常见的。但是,通过在叠加寄存器227-1到227-N中存储未舍入迭代结果,递归运算的最终结果的精度可大于对递归运算的迭代结果执行舍入或截断的方法。

如图2B中所示,处理单元220可包含神经网络组件223-1到223-X。神经网络组件223-1到223-X可耦合到逻辑电路系统,并且可对将进行由MAC块224执行的递归运算的位串(例如,组织成矩阵或张量的unum或假定位串)执行神经网络运算,例如卷积、激活、池化和/或归一化运算。

处理单元220可进一步包含转换电路系统225-1到225-N。转换电路系统225-2到225-N可配置成在MAC块224执行递归运算之前对由处理单元220接收的位串执行转换运算。举例来说,如上文所描述,例如图1所示的主机102的主机可以使用根据浮点或定点格式格式化的位串,而处理单元220可以使用根据unum或假定格式格式化的位串执行运算。为了将位串从浮点或定点格式转换成unum或假定格式,转换电路系统225-1到225-N可在使用MAC块224开始递归运算之前执行一或多个转换操作,以将位串转换成unum或假定格式。

在非限制性实例中,MAC块224可以是假定MAC块,并且可包含以网格构造组织的多个MAC单元226-1到226-N。如本文中所使用,“假定MAC块”是指配置成使用以unum或假定格式而不是浮点格式或其它格式格式化的操作数执行运算的MAC块。假定MAC块可以驻存在专用集成电路(ASIC)或现场可编程门阵列(FPGA)上。如本文中所使用,术语“驻存在……上”是指某物物理地位于特定组件上。举例来说,假定MAC块“驻存在ASIC或FPGA上”是指其中假定MAC块物理地位于ASIC或FPGA上的情形。在本文中,术语“驻存在……上”可与例如“部署在……上”或“位于……上”的其它术语互换使用。

在一些实施例中,MAC块224可配置成执行多个矩阵运算,作为使用接收到的位串执行相应递归运算的部分。举例来说,在其中位串以矩阵或张量的形式提供的实施例中,MAC块224可配置成使用所述矩阵或张量执行加法、减法、乘法和/或除法运算。

MAC单元226-1到226-N可配置成经由沿着假定MAC块224的第一横向尺寸驻存的接口(例如,缓冲器/接口216-1到216-M)接收命令。执行相应递归运算的命令可包含使用组织成矩阵或张量的通用数字或假定位串执行相应递归运算的命令。

所述多个MAC单元226-1到226-N可配置成沿着假定MAC块的第二横向尺寸接收位串,第二横向尺寸大体上正交于第一横向尺寸,并且使用接收到的位串执行相应递归运算。在一些实施例中,相应递归运算的迭代可以使用至少一个位串执行,所述至少一个位串与用于所述相应递归运算的先前迭代的位串相同。相比于其中相应递归运算的连续迭代使用不同位串的方法,通过使用至少一个相同unum或假定位串作为相应递归运算的多个递归的操作数,用于检索unum或假定位串的信号和/或函数调用数量可以减小。

在一些实施例中,MAC块224可配置成以流式传输方式接收位串,并在位串通过MAC块224流式传输时使用位串执行相应递归运算。举例来说,位串可以在相应递归运算的执行期间通过逻辑电路系统222-1到222-N和/或通过数据仲裁器218-1到218-N连续地流式传输,使得MAC块224在不存在中间命令(例如,单独发起每个递归运算的命令)的情况下连续地(或近乎连续地)接收位串。但是,实施例不限于此,并且在一些实施例中,位串可以在时钟信号的上升和/或下降边沿上加载到MAC块224中,所述时钟信号可以在MAC块224上断言以控制由MAC块224执行的运算的定时。

数据仲裁器218-1到218-N可耦合到MAC块224,并且可配置成组织位串以在所述多个相应递归运算的执行期间实现阈值带宽比、阈值时延或这两者。举例来说,数据仲裁器218-1到218-N可配置成执行组织位串的操作以优化位串的分布、减少与位串相关联的数据数量、简化位串或以其它方式组织位串以优化与MAC块224对递归运算的执行相关联的至少一个参数。

在一些实施例中,MAC块224可进一步包含包括配置成存储对应于相应递归运算的至少一个迭代的中间结果的累加器寄存器(例如,叠加寄存器227-1到227-N)。累加器寄存器可包含两百五十六(256)个存储位置,用于存储相应递归运算的含有两百五十六个位或更少的中间结果,但实施例不限于此,并且累加器寄存器可包含多于或少于两百五十六个存储位置。相比于仅舍入或截断递归运算的中间结果的方法,通过在累加器寄存器中存储相应递归运算的中间结果,可以维持相应递归运算的最终结果的精度水平。

在另一非限制性实例中,多个假定乘累加器(MAC)单元226-1到226-N可以部署在专用集成电路或现场可编程门阵列上。MAC单元226-1到226-N可具备处理资源(在内部或以通信方式)并且以网格构造彼此耦合。MAC单元226-1到226-N可包含相应叠加寄存器227-1到227-N,它们可耦合到MAC单元226-1到226-N中的每一个。在一些实施例中,所述多个MAC单元226-1到226-N当中的每个MAC单元可配置成接收根据通用数字格式或假定格式格式化且组织成矩阵的位串。

MAC单元226-1到226-N可进一步配置成使用接收到的位串作为递归运算的操作数来执行递归运算,并使递归运算的迭代结果在相应叠加寄存器227-1到227-N中累加。在一些实施例中,MAC单元226-1到226-N可配置成确定递归运算完成并使用递归运算的最终迭代结果、存储在相应叠加寄存器227-1到227-N中的迭代结果或这两者产生递归运算的最终结果。

举例来说,因为递归运算的最终结果可以在叠加寄存器227-1到227-N中累加,所以递归运算的最终结果可以从相应叠加寄存器227-1到227-N检索。但是,在一些实施例中,存储在叠加寄存器227-1到227-N中的递归运算的最终结果可由于相应叠加寄存器227-1到227-N的大小而包含超过期望位量。如果是这样,那么MAC单元226-1到226-N和/或逻辑电路系统222-1到222-N可配置成将递归运算的最终结果舍入或截断到预定位量。

在一些实施例中,相应收缩数据仲裁器(例如,数据仲裁器218-1到218-N)可耦合到MAC单元226-1到226-N中的每一个。在此实例中,相应收缩数据仲裁器中的每一个可配置成执行组织位串的操作以优化对应于位串到MAC单元226-1到226-N的供应的带宽参数。在一些实施例中,带宽参数可对应于在递归运算的执行期间通过MAC单元226-1到226-N的数据传递的最大速率。

MAC单元226-1到226-N可配置成经由沿着MAC单元226-1到226-N的第一横向尺寸驻存的接口接收执行递归运算的命令并沿着MAC单元226-1到226-N的第二横向尺寸接收位串。在一些实施例中,第二横向尺寸可大体上正交于第一横向尺寸。举例来说,命令可以经由位于MAC单元226-1到226-N的顶部或底部部分上(如图2B中所定向)的缓冲器/接口216-1到216-M断言到MAC单元226-1到226-N,而位串可以经由沿着MAC单元226-1到226-N的侧面部分定位(如图2B中所定向)的逻辑电路系统222-1到222-N和/或数据仲裁器218-1到218-N流式传输到MAC单元226-1到226-N中。

在一些实施例中,处理资源中的至少一个可配置成确定矩阵大小,并且响应于矩阵大小大于阈值大小,在所述多个MAC单元226-1到226-N执行递归运算之前执行简化矩阵的操作,使得所得矩阵小于阈值大小。举例来说,如果MAC单元226-1到226-N各自配置成对64位乘64位矩阵或张量执行运算且位串初始以大于64位乘64位的矩阵或张量提供,那么至少一个处理资源可执行控制矩阵或张量的操作,使得它们含有最多64位乘64位。

MAC单元226-1到226-N可配置成使用与递归运算的先前迭代相同的至少一个位串执行递归运算的多个迭代。举例来说,MAC单元226-1到226-N可针对递归运算的多个迭代重复使用同一位串。相比于其中相应递归运算的连续迭代使用不同位串的方法,通过重复使用至少一个位串作为相应递归运算的多个递归的操作数,用于检索位串的信号和/或函数调用数量可以减小。

图3是具有es指数位的n位通用数字或“unum”的实例。在图3的实例中,n位unum是假定位串331。如图3中所展示,n位假定331可包含符号位集(例如,第一位子集或符号位子集333)、方案位集(例如,第二位子集或方案位子集335)、指数位集(例如,第三位子集或指数位子集337)和尾数位集(例如,第四位子集或尾数位子集339)。尾数位339可在替代方案中称为“分率部分”或“分率位”,且可表示小数点之后的位串的一部分(例如,数字)。

符号位333可以是用于正数的零(0)和用于负数的一(1)。下文结合表1描述方案位335,表1展示(二进制)位串和其相关数字含义k。在表1中,通过位串的延行长度来确定数字含义k。表1的二进制部分中的字母x指示位值与方案的确定不相关,因为(二进制)位串响应于连续位翻转或当达到位串的结尾时而终止。举例来说,在(二进制)位串0010中,位串响应于零翻转到一且接着回到零而终止。因此,最后一个零与方案不相关且对于方案考虑的全部是前导相同位和终止位串的第一相对位(如果位串包含此类位)。

二进制 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对应于前两个前导零,而方案位对应于一。如上所述,对应于由表1中的X表示的数字k的最终位与方案不相关。

如果m对应于位串中的相同位的数目,如果所述位是零,那么k=-m。如果所述位是一,那么k=m-1。这说明于表1中,其中例如,(二进制)位串10XX具有单个一且k=m-1=1-1=0。类似地,(二进制)位串0001包含三个零,因此k=-m=-3。方案可指示useedk的缩放因数,其中下表2中展示used的若干实例值。

es 0 1 2 3 4
used 2 2<sup>2</sup>=4 4<sup>2</sup>=16 16<sup>2</sup>=256 256<sup>2</sup>=65536

表2

指数位337对应于作为无符号数的指数e。与浮点数对比,本文中所描述的指数位337可不具有与其相关联的偏置。因此,本文中所描述的指数位337可表示通过因数2e的缩放。如图3中所展示,取决于n位假定331的方案位335右方保留多少位,可存在多达es个指数位(e1、e2、e3、…、ees)。在一些实施例中,这可允许n位假定331的逐渐变小准确度,其中在量值上更接近一的数字具有比极大或极小数字更高的准确度。然而,由于极大或极小数字可较不频繁地用于某些种类的操作,因此图3中所展示的n位假定331的逐渐变小准确度操作在广泛范围的情形中可以是合乎需要的。

尾数位339(或分率位)表示任何额外位,所述额外位可以是位于指数位337的右方的n位假定331的部分。类似于浮点位串,尾数位339表示可类似于分率1.f的分率f,其中f包含一之后的小数点右方的一或多个位。与浮点位串对比,然而,在图3中所展示的n位假定331中,“隐藏位”(例如,一)可始终是一(例如,均一),而浮点位串可包含具有“隐藏位”零(例如,0.f)的次正规数字。

如本文所描述,更改符号333位子集、方案335位子集、指数337位子集或尾数339位子集中的一或多个的位的数值或量可改变n位假定331的精确度。举例来说,改变n位假定331中的总位数目可更改n位假定位串331的分辨率。也就是说,8位假定可通过例如增大与假定位串中的一或多个的构成位子集相关联的位的数值和/或量以增大假定位串的分辨率来转化成16位假定。相反地,假定位串的分辨率可通过减小与假定位串中的一或多个的构成位子集相关联的位的数值和/或量来例如从64位分辨率减小到32位分辨率。

在一些实施例中,更改与方案335位子集、指数337位子集和/或尾数339位子集中的一或多个相关联的位的数值和/或量以改变n位假定331的精确度可导致方案335位子集、指数337位子集和/或尾数339位子集中的另一个中的至少一个的改变。举例来说,当更改n位假定331的精确度以增大n位假定位串331的分辨率时(例如,当执行“上变频转换”操作以增大n位假定位串331的位宽度时),可更改与方案335位子集、指数337位子集和/或尾数339位子集中的一或多个相关联的位的数值和/或量。

在非限制性实例中,其中n位假定位串331的分辨率增大(例如,n位假定位串331的精确度改变以增大n位假定位串331的位宽度)但与指数337位子集相关联的位的数值或量并不改变,与尾数339位子集相关联的位的数值或量可增大。在至少一个实施例中,当指数338位子集仍不变时增大尾数339位子集的位的数值和/或量可包含将一或多个零位添加到尾数339位子集。

在另一非限制性实例中,其中n位假定位串331的分辨率通过更改与指数337位子集相关联的位的数值和/或量而增大(例如,n位假定位串331的精确度改变以增大n位假定位串331的位宽度),与方案335位子集和/或尾数339位子集相关联的位的数值和/或量可增大或减小。举例来说,如果与指数337位子集相关联的位的数值和/或量增大或减小,那么与方案335位子集和/或尾数339位子集相关联的位的数值和/或量可产生对应变化。在至少一个实施例中,增大或减小与方案335位子集和/或尾数339位子集相关联的位的数值和/或量可包含将一或多个零位添加到方案335位子集和/或尾数339位子集和/或截断与方案335位子集和/或尾数339位子集相关联的位的数值或量。

在另一实例中,其中n位假定位串331的分辨率增大(例如,n位假定位串331的精确度改变以增大n位假定位串331的位宽度),与指数335位子集相关联的位的数值和/或量可增大且与方案333位子集相关联的位的数值和/或量可减小。相反地,在一些实施例中,与指数335位子集相关联的位的数值和/或量可减小且与方案333位子集相关联的位的数值和/或量可增大。

在非限制性实例中,其中n位假定位串331的分辨率减小(例如,n位假定位串331的精确度改变以减小n位假定位串331的位宽度)但与指数337位子集相关联的位的数值或量并不改变,与尾数339位子集相关联的位的数值或量可减小。在至少一个实施例中,当指数338位子集仍不变时减小尾数339位子集的位的数值和/或量可包含截断与尾数339位子集相关联的位的数值和/或量。

在另一非限制性实例中,其中n位假定位串331的分辨率通过更改与指数337位子集相关联的位的数值和/或量而减小(例如,n位假定位串331的精确度改变以减小n位假定位串331的位宽度),与方案335位子集和/或尾数339位子集相关联的位的数值和/或量可增大或减小。举例来说,如果与指数337位子集相关联的位的数值和/或量增大或减小,那么与方案335位子集和/或尾数339位子集相关联的位的数值和/或量可产生对应变化。在至少一个实施例中,增大或减小与方案335位子集和/或尾数339位子集相关联的位的数值和/或量可包含将一或多个零位添加到方案335位子集和/或尾数339位子集和/或截断与方案335位子集和/或尾数339位子集相关联的位的数值或量。

在一些实施例中,改变指数位子集中的位的数值和/或量可更改n位假定331的动态范围。举例来说,具有含有数值零的指数位子集的32位假定位串(例如,具有es=0的32位假定位串或(32,0)假定位串)可具有大致18个十进位(decade)的动态范围。然而,具有含有数值3的指数位子集的32位假定位串(例如,具有es=3的32位假定位串或(32,3)假定位串)可具有大致145个十进位的动态范围。

图4A是用于3位假定的正值的实例。在图4A中,仅投影实数的右半部分,然而,应了解,对应于图4A中所展示的其正对应值的负投影实数可存在于曲线上,所述曲线表示围绕图4A中所展示的曲线的y轴的变换。

在图4A的实例中,es=2,因此假定431-1的精确度可通过将位附加到位串而增大,如图4B中所展示。举例来说,将具有值一(1)的位附加到假定431-1的位串增大如由图4B中的假定431-2所展示的假定431-1的准确度。类似地,将具有值一的位附加到图4B中的假定431-2的位串增大如由图4B中所展示的假定431-3所展示的假定431-2的准确度。以下是可用于将位附加到图4A中所展示的假定431-1的位串以获得图4B中所说明的假定431-2、431-3的内插法规则的实例。

如果maxpos是假定431-1、431-2、431-3的位串的最大正值且minpos是假定431-1、431-2、431-3的位串的最小值,那么maxpos可等于useed且minpos可等于在maxpos与±∞之间,新的位值可以是maxpos*useed,且在零与minpos之间,新的位值可以是这些新的位值可对应于新方案位335。在现有值x=2m与y=2n之间,其中m和n相差超过一,新的位值可通过几何平均给出:其对应于新指数位337。如果新的位值是紧靠其的现有x值与y值之间的中间位置,那么新的位值可表示算术平均值其对应于新尾数位339。

图4B是使用两个指数位的假定构造的实例。在图4B中,仅投影实数的右半部分,然而,应了解,对应于图4B中所展示的其正对应值的负投影实数可存在于曲线上,所述曲线表示围绕图4B中所展示的曲线的y轴的变换。图4B中所展示的假定431-1、431-2、431-3各自包含仅两个异常值:当位串的所有位是零时的零(0)和当位串是所有零之后的一(1)时的±∞。应注意,图4中展示的假定431-1、431-2、431-3的数值被精确地useedk。也就是说,图4中展示的假定431-1、431-2、431-3的数值精确地useed为由方案(例如,上文结合图3所描述的方案位335)表示的k值的幂。在图4B中,假定431-1具有es=2,因此假定431-2具有es=3,因此且假定431-3具有es=4,因此

作为将位添加到3位假定431-1以形成图4B的4位假定431-2的说明性实例,useed=256,因此对应于256的useed的位串具有附加到其上的额外方案位且之前的useed 16具有附加到其上的终止方案位如上文所描述,在现有值之间,对应位串具有附加到其上的额外指数位。举例来说,数值1/16、1/4、1和4将具有附加到其上的指数位。也就是说,对应于数值4的最末一是指数位,对应于数值1的最末零是指数位等。这种模式可进一步见于假定431-3中,其是根据以上规则从4位假定431-2产生的5位假定。如果另一位添加到图4B中的假定431-3以产生6位假定,那么尾数位339将附加到1/16与16之间的数值。

以下是解码假定(例如,假定431)以获得其数字等效值的非限制性实例。在一些实施例中,对应于假定p的位串是介于范围内的无符号整数-2n-1到2n-1,k是对应于方案位335的整数且e是对应于指数位337的无符号整数。如果尾数位339的集合表示为{f1 f2…ffs}且f是由1.f1 f2…ffs表示的值(例如,通过尾数位339之后的小数点之后的一),那么p可由以下等式2给出。

等式2

下文结合下表3中展示的假定位串0000110111011101提供解码假定位串的另一说明性实例。

符号 方案 指数 尾数
0 0001 101 11011101

表3

在表3中,假定位串0000110111011101分解到其构成位集(例如,符号位333、方案位335、指数位337和尾数位339)中。由于表3中展示的假定位串中的es=3(例如,因为存在三个指数位),useed=256。因为符号位333是零,对应于表3中展示的假定位串的数字表述的值是正值。方案位335具有对应于值-3的一连串三个连续零(如上文结合表1所描述)。因此,由方案位335贡献的缩放因数是256-3(例如,useedk)。指数位337表示作为无符号整数的五(5)且因此贡献2e=25=32的额外缩放因数。最后,在表3中作为11011101给出的尾数位339表示作为无符号整数的两百二十一(221),因此以上作为f给出的尾数位339是使用这些值和等式1,对应于表3中给出的

图5是根据本公开的若干实施例的表示用于为假定运算操作处理单元的实例方法550的流程图。在框552处,方法550可包含:至少部分地基于与彼此耦合的多个乘累加器(MAC)单元的递归运算相关联的阈值带宽比、阈值时延或这两者,以矩阵组织多个通用数字(unum)或假定位串。在本文中,MAC单元可类似于图2A和2B中所示的MAC单元226-1到226-N。阈值带宽和/或阈值时延可对应于递归运算要执行的期望吞吐量和/或处理速度。在一些实施例中,组织unum或假定位串的操作可通过耦合到相应MAC单元的相应数据仲裁器(例如,本文中在图2A和2B中示出的数据仲裁器218-1到218-N)执行。

在一些实施例中,MAC单元可包含配置成执行相应递归运算的电路系统,并且驻存在专用集成电路或现场可编程门阵列上。另外,如上文所描述,MAC单元可相对于彼此以网格构造组织。

在框554处,方法550可包含在接收unum或假定位串之前,通过MAC接收组织成矩阵的所述多个unum或假定位串。

在框556处,方法550可包含使用MAC单元执行多个相应递归运算,其中相应递归运算的迭代使用至少一个位串执行,所述至少一个位串与用于所述相应递归运算的先前迭代的位串相同。举例来说,方法550可包含使用至少一个相同unum或假定位串作为相应递归运算的多个递归的操作数。相比于其中相应递归运算的连续迭代使用不同位串的方法,通过使用至少一个相同unum或假定位串作为相应递归运算的多个递归的操作数,用于检索unum或假定位串的信号和/或函数调用数量可以减小。

在一些实施例中,方法550可包含大体上并行执行递归运算的至少一部分。如本文中所使用,术语“大体上”意在特性不需要是绝对的,而是足够接近以便实现特性的优点。举例来说,“大体上并行”不限于完全并行执行的操作,并且可包含意在并行但是由于制造限制可能无法精确并行的定时。举例来说,由于处理单元的不同接口可展现的读取/写入延迟,“大体上并行”执行的递归运算的部分可能不会在完全相同的时间开始或结束。举例来说,递归运算的第一和第二部分可执行成使得它们同时执行,不管递归运算的第一和第二部分中的一个是否在另一个之前开始或终止。

在一些实施例中,方法550可包含通过由所述多个MAC单元当中的不同MAC单元执行与相应递归运算相关联的子运算来执行相应递归运算。举例来说,第一MAC单元(例如,本文中在图2A和2B中示出的MAC单元226-1)可执行与递归运算的执行相关联的第一子运算,且第二MAC单元(例如,本文中在图2A和2B中示出的MAC单元226-2)可执行与递归运算的执行相关联的第二子运算。

在框558处,方法550可包含在耦合到所述多个MAC单元当中的相应MAC单元的相应寄存器中存储所述多个相应递归运算的迭代结果。相应的迭代结果可以存储在与MAC单元相关联的寄存器中,例如本文中在图2B中示出的叠加寄存器227-1到227-N。

在一些实施例中,方法550可包含通过MAC单元接收断言到相应MAC单元的沿着MAC单元的第一横向尺寸驻存的第一物理部分的命令,并通过相应MAC单元的沿着MAC单元的第二横向尺寸驻存的第二物理部分接收unum或假定位串。第一横向尺寸和第二横向尺寸可大体上正交于彼此。举例来说,命令可以经由图2A和2B中所示的缓冲器/接口216-1到216-M断言到MAC单元的顶部或底部部分,而unum或假定位串可以经由本文中在图2A和2B中示出的逻辑电路系统222-1到222-N和/或数据仲裁器218-1到218-N从MAC单元的侧面部分接收。

虽然已在本文中说明并描述了具体实施例,但所属领域的一般技术人员将了解,经过计算以实现相同结果的布置可取代所展示的具体实施例。本公开意图涵盖本公开的一或多个实施例的调适或变化。应理解,以说明方式而非限制方式进行了以上描述。对于所属领域的技术人员来说在审阅以上描述之后以上实施例的组合和本文中未具体描述的其它实施例将是显而易见的。本公开的一或多个实施例的范围包含其中使用以上结构和过程的其它应用。因此,本公开的一或多个实施例的范围应参考所附权利要求书以及此类权利要求书所授予的等效物的完整范围来确定。

在前述具体实施方式中,出于简化本公开的目的而将一些特征一并归到单个实施例中。本公开的这一方法不应理解为反映本公开的所公开实施例必须比在每项权利要求中明确叙述那样使用更多特征的意图。相反,如所附权利要求书所反映,本发明主题在于单个所公开实施例的不到全部的特征。因此,所附权利要求书特此并入于具体实施方式中,其中每项权利要求就其自身来说作为单独实施例。

27页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:神经网络装置、操作神经网络装置的方法和应用处理器

相关技术

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类