可左右滑动选省市

多个寄存器中的位串累加实用新型专利

更新时间:2024-07-01
多个寄存器中的位串累加实用新型专利 专利申请类型:实用新型专利;
源自:美国高价值专利检索信息库;

专利名称:多个寄存器中的位串累加

专利类型:实用新型专利

专利申请号:CN202110646111.X

专利申请(专利权)人:美光科技公司
权利人地址:美国爱达荷州

专利发明(设计)人:V·S·拉梅什

专利摘要:本申请的实施例涉及多个寄存器内的位串累加。举例来说,具有处理能力和在存储器内或附近的寄存器的逻辑电路可使用数个位串来执行递归运算的多次迭代。可将各种迭代的结果写入到所述寄存器,且可使用所述位串来执行所述递归运算的后续迭代。递归运算的所述迭代的结果可在所述寄存器内累加。累加结果可作为数据写入到在所述逻辑电路外部或与所述逻辑电路分离的另一寄存器或存储器。

主权利要求:
1.一种用于多个寄存器中的位串累加的方法,其包括:
由包括处理单元(122、222)和第一寄存器(126、226)的逻辑电路系统(120、220)使用第一位串和第二位串来执行递归运算的第一次迭代;
将所述第一次迭代的结果写入到所述第一寄存器(226);
由所述逻辑电路系统(120、220)使用所述第一位串和所述第二位串来执行所述递归运算的第二次迭代;
在所述第一寄存器(226)内累加所述第二次迭代的所述结果;
将存储在所述第一寄存器(126、226)中的数据写入到所述逻辑电路系统(120、220)外部的第二寄存器(170、270);
确定对于所述递归运算的后续迭代,存储在所述第一寄存器(126、226)中的位的数量将多于分配到所述第一寄存器(126、226)的位的数量;以及至少部分地基于所述确定,将存储在所述第一寄存器(126、226)中的数据写入到所述第二寄存器(170、270)。
2.根据权利要求1所述的方法,其进一步包括:
确定所述递归运算完成;以及
至少部分地基于所述确定而将存储在所述第一寄存器(126、226)中的数据写入到所述第二寄存器(170、270);
响应于存储在所述第一寄存器(126、226)中的所述数据被写入到所述第二寄存器(170、270),由所述逻辑电路系统(120、220)使用第三位串和第四位串来执行不同递归运算的迭代;以及将所述不同递归运算的所述迭代的结果写入到所述第一寄存器(126、226)。
3.根据权利要求1所述的方法,其进一步包括:
将存储在所述第二寄存器(170、270)中的数据写入到耦合到所述第二寄存器(170、
270)的存储器阵列(130、230);以及
使用被写入到存储器装置的所述数据作为用于逻辑运算的操作数而在所述存储器阵列(130、230)内执行所述逻辑运算。
4.根据权利要求1所述的方法,其进一步包括经由将所述逻辑电路系统(120、220)耦合到所述第二寄存器(170、270)的专用总线(232)将存储在所述第一寄存器(126、226)中的所述数据写入到所述第二寄存器(170、270)。
5.一种用于多个寄存器中的位串累加的设备,其包括:
控制电路系统(223),其耦合到多个乘法器累加MAC单元(225),所述MAC单元各自包括相应处理单元(122、222)和相应内部寄存器(126、226),其中所述MAC单元(225):响应于从所述控制电路系统(223)接收的信令,使用位串作为操作数来执行相应递归运算;以及在所述相应内部寄存器(126、226)中累加所述相应递归运算的相应迭代的结果,且其中所述控制电路系统(223):至少部分地基于所述相应递归运算的累加结果的特性,将所述相应递归运算的所述累加结果写入到所述MAC单元(225)外部的寄存器(170、270),或使所述相应递归运算的所述累加结果传送到所述MAC单元(225)外部的加法器电路(234);
确定对于所述递归运算的后续迭代,存储在所述相应内部寄存器(126、226)中的位的数量将多于分配到所述相应内部寄存器(126、226)的位的数量;以及至少部分地基于所述确定,将所述相应递归运算的所述累加结果写入到所述MAC单元(225)外部的所述寄存器(170、270)。
6.根据权利要求5所述的设备,其中所述控制电路系统(223):确定所述相应递归运算完成;
至少部分地基于所述确定,使所述相应递归运算的所述累加结果传送到所述加法器电路(234);
使所述加法器电路(234)执行对所述相应递归运算的所述累加结果求和的运算;以及使所述相应递归运算的所述累加结果的所述求和的结果写入到所述MAC单元外部的所述寄存器。
7.根据权利要求5至6中任一权利要求所述的设备,其中所述控制电路系统(223)控制耦合到所述MAC单元(225)的多路复用器(228)的操作,以将所述相应递归运算的所述累加结果写入到所述MAC单元(225)外部的所述寄存器(170、270),或使所述相应递归运算的所述累加结果传送到所述加法器电路(234)。
8.根据权利要求5至6中任一权利要求所述的设备,其中所述相应递归运算的所述累加结果的所述特性包含所述累加结果是否表示所述相应递归运算的最终结果,或对于所述相应递归运算的后续迭代,存储在相应寄存器中的位的数量是否将多于分配到所述相应内部寄存器(126、226)的位的数量,或两者情况都有。
9.根据权利要求5至6中任一权利要求所述的设备,其中所述MAC单元外部的所述寄存器包括比所述相应内部寄存器数量更多的存储位置。
10.一种用于多个寄存器中的位串累加的系统,其包括:
逻辑电路系统(120、220),其包括控制电路系统(223),所述控制电路系统耦合到多个乘法器累加MAC单元(225),所述MAC单元各自包括相应处理单元(122、222)和相应内部寄存器(126、226);
存储器阵列(130、230),其耦合到所述逻辑电路系统(120、220);以及多个感测放大器(150、250),其被配置为外部寄存器且位于所述存储器阵列(130、230)的外围区中且以通信方式耦合到所述存储器阵列(130,230),其中所述控制电路系统(223):使每一相应处理单元使用位串作为操作数来执行递归运算的相应第一次迭代;
控制所述相应第一次迭代的结果到所述多个MAC单元(225)当中的相应MAC单元(225)的所述相应内部寄存器(126、226)的写入;
使每一相应处理单元(122、222)使用位串作为操作数来执行所述递归运算的相应第二次迭代;
在所述多个MAC单元(225)当中的所述相应MAC单元(225)的所述相应内部寄存器(126、
226)内累加所述相应第二次迭代的所述结果;
确定是否执行所述递归运算的后续迭代;以及
响应于确定不执行所述递归运算的所述后续迭代,控制将所述控制电路系统(223)耦合到所述存储器阵列的多路复用器(228)的操作,以使存储在所述相应内部寄存器(126、
226)中的所述累加结果传送到所述多个感测放大器(150、250)。
11.根据权利要求10所述的系统,其中所述控制电路系统(223):响应于确定存储在所述相应内部寄存器(222)中的所述累加结果将相加在一起,控制所述多路复用器(228)的操作,以使存储在所述相应内部寄存器(222)中的所述累加结果传送到耦合到所述逻辑电路系统(120、220)的加法器电路(234);
执行对存储在所述相应内部寄存器(222)中的所述累加结果求和的运算;以及使存储在所述相应内部寄存器(126、226)中的所述累加结果的和的结果写入到所述多个感测放大器(150、250)。
12.根据权利要求10所述的系统,其进一步包括将所述相应内部寄存器(126、226)耦合到所述存储器阵列(150、250)的通信路径(232),其中所述控制电路系统(223)使存储在所述相应内部寄存器(222)中的每一累加结果依序传送到所述多个感测放大器(150、250)。
13.根据权利要求10至12中任一权利要求所述的系统,其中所述控制电路系统(223)在执行所述递归运算之前执行使所述位串以通用数字或posit格式进行格式化的运算。
14.根据权利要求10至12中任一权利要求所述的系统,其中所述存储器阵列(150、250)使用存储在所述多个感测放大器(150、250)中的所述累加结果作为用于逻辑运算的操作数来执行所述逻辑运算。 说明书 : 多个寄存器中的位串累加技术领域[0001] 本公开大体上涉及半导体存储器和方法,且更确切地说,涉及用于多个寄存器中的位串累加的设备、系统和方法。背景技术[0002] 存储器装置通常被提供为计算机或其它电子系统中的内部、半导体、集成电路。存在许多不同类型的存储器,包含易失性和非易失性存储器。易失性存储器可能需要功率来维持其数据(例如主机数据、误差数据等)且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)和晶闸管随机存取存储器(TRAM)等等。非易失性存储器可通过在未被供电时保存所存储数据来提供永久数据,且可包含NAND快闪存储器、NOR快闪存储器及电阻可变存储器,例如相变随机存取存储器(PCRAM)、电阻随机存取存储器(RRAM)及磁阻随机存取存储器(MRAM),例如自旋力矩转移随机存取存储器(STTRAM)等等。[0003] 存储器装置可耦合到主机(例如,主机计算装置)以存储数据、命令和/或指令以在计算机或电子系统操作时供主机使用。举例来说,数据、命令和/或指令可在计算或其它电子系统的操作期间在主机与存储器装置之间传送。发明内容[0004] 根据一个实施例,提供一种用于多个寄存器中的位串累加的方法。所述方法包括:由包括处理单元122、222和第一寄存器126、226的逻辑电路系统120、220使用第一位串和第二位串来执行递归运算的第一次迭代;将所述第一次迭代的结果写入到所述第一寄存器226;由所述逻辑电路系统120、220使用所述第一位串和所述第二位串来执行所述递归运算的第二次迭代;在所述第一寄存器226内累加所述第二次迭代的所述结果;以及将存储在所述第一寄存器126、226中的数据写入到所述逻辑电路系统120、220外部的第二寄存器170、270。[0005] 根据另一实施例,提供一种用于多个寄存器中的位串累加的设备。所述设备包括:控制电路系统223,其耦合到多个乘法器累加(MAC)单元225,所述MAC单元各自包括相应处理单元122、222和相应内部寄存器126、226,其中所述MAC单元225:响应于从所述控制电路系统223接收的信令,使用位串作为操作数来执行相应递归运算;以及在所述相应内部寄存器126、226中累加所述相应递归运算的相应迭代的结果,且其中所述控制电路系统223:至少部分地基于所述相应递归运算的累加结果的特性,将所述相应递归运算的所述累加结果写入到所述MAC单元225外部的寄存器170、270,或使所述相应递归运算的所述累加结果传送到所述MAC单元225外部的加法器电路234。[0006] 根据另一实施例,提供一种用于多个寄存器中的位串累加的系统。所述系统包括:逻辑电路系统120、220,其包括控制电路系统223,所述控制电路系统耦合到多个乘法器累加(MAC)单元225,所述MAC单元各自包括相应处理单元122、222和相应内部寄存器126、226;存储器阵列130、230,其耦合到所述逻辑电路系统120、220;以及多个感测放大器150、250,其被配置为外部寄存器且位于所述存储器阵列130、230的外围区中且以通信方式耦合到所述存储器阵列130,230,其中所述控制电路系统223:使每一相应处理单元使用位串作为操作数来执行递归运算的相应第一次迭代;控制所述相应第一次迭代的结果到所述多个MAC单元225当中的相应MAC单元225的所述相应内部寄存器126、226的写入;使每一相应处理单元122、222使用位串作为操作数来执行所述递归运算的相应第二次迭代;在所述多个MAC单元225当中的所述相应MAC单元225的所述相应内部寄存器126、226内累加所述相应第二次迭代的所述结果;确定是否执行所述递归运算的后续迭代;以及响应于确定不执行所述递归运算的所述后续迭代,控制将所述控制电路系统223耦合到所述存储器阵列的多路复用器228的操作,以使存储在所述相应内部寄存器126、226中的所述累加结果传送到所述多个感测放大器150、250。附图说明[0007] 图1是根据本公开的数个实施例的呈包含主机和存储器装置的设备形式的功能框图。[0008] 图2是根据本公开的数个实施例的呈包含含有控制电路系统和多个乘法器累加单元的设备的逻辑电路系统形式的功能框图。[0009] 图3是具有es个指数位的n位posit的实例。[0010] 图4A是用于3位posit的正值的实例。[0011] 图4B是使用两个指数位的posit构造的实例。[0012] 图5是根据本公开的数个实施例的表示对应于多个寄存器中的位串累加的实例方法的流程图。[0013] 图6是说明根据本公开的数个实施例的包含感测电路系统的存储器阵列的一部分的示意图。具体实施方式[0014] 描述了涉及在计算或存储器装置内执行位串累加的方法、系统和设备。举例来说,具有处理能力和在存储器内或附近的寄存器的逻辑电路可使用数个位串来执行递归运算的多次迭代。可将各种迭代的结果写入到所述寄存器,且可使用所述位串来执行所述递归运算的后续迭代。递归运算的所述迭代的结果可在所述寄存器内累加。累加结果可作为数据写入到在所述逻辑电路外部或与所述逻辑电路分离的另一寄存器或存储器。[0015] 计算系统可用于使用例如位串等数据来执行广泛范围的运算,所述位串可由计算系统处理以促进计算系统的运算,以及使用所述数据来执行计算。此类运算可涉及大量数据和/或大的位串,且因此在执行此类运算时可能需要大量计算资源(例如,处理和/或存储器资源)。可使用计算系统执行的运算的一些实例可包含算术运算、逻辑运算、逐位运算、向量运算和/或点积运算,以及递归运算,例如累加运算、乘累加(MAC)运算、融合乘加(FMA)运算和/或融合乘累加(FMAC)运算,等等。[0016] 然而,计算系统的存储有将被执行计算的操作数的存储器的数量有限。为了促进在由有限存储器资源施加的约束内对由计算系统存储的操作数执行运算,可以特定格式存储操作数。为简单起见,此类格式被称为“浮点”格式或“浮点数(float)”(例如,IEEE754浮点格式)。[0017] 根据浮点标准,依据三个整数集或位集(一个位集称为“基数”,一个位集称为“指数”,且一个位集称为“尾数”(或有效数))表示位串(例如,可表示数字的位串),例如二进制数串。整数集或位集定义存储二进制数串的格式,为简单起见,可在本文中称为“数值格式”或“格式”。举例来说,定义浮点位串的上述位的三个整数集(例如,基数、指数和尾数)可称为格式(例如,第一格式)。如下文更详细地描述,posit位串可包含四个整数集或位集(例如,符号、状态(regime)、指数和尾数),其也可称为“数值格式”或“格式”(例如,第二格式)。另外,根据浮点标准,两种无穷(例如,+∞和‑∞)和/或两种类型的“NaN”(非数)(安静的NaN和发信号的NaN)可包含于位串中。[0018] 浮点标准已在计算系统中使用数年且定义用于由许多计算系统进行的计算的算术格式、交换格式、舍入规则、运算和异常处理。算术格式可包含二进制和/或十进制浮点数据,其可包含有穷数、无穷和/或特殊NaN值。交换格式可包含可用以交换浮点数据的编码(例如,位串)。舍入规则可包含当在算术运算和/或转换运算期间舍入数值时可满足的一组属性。浮点运算可包含算术运算和/或其它计算运算,例如三角函数。异常处理可包含异常条件的指示,如除以零、溢出等。[0019] 浮点的替代格式称为“通用数字”(unum)格式。存在可称为“posit”和/或“valid”的数种形式的unum格式:I型unum、II型unum和III型unum。I型unum是IEEE754标准浮点格式的超集,I型unum在尾数的结尾处使用“ubit”来指示实数是否为准确浮点数,或其是否位于相邻浮点数之间的区间中。I型unum中的符号、指数和尾数位从IEEE754浮点格式获取其定义,然而,I型unum的指数和尾数字段的长度可从单个位显著地变为最大用户可定义长度。通过从IEEE754标准浮点格式获取符号、指数和尾数位,I型unum可表现得类似于浮点数,然而,与浮点数相比,在I型unum的指数和分数位中呈现的可变位长度可能需要额外管理。[0020] II型unum大体上与浮点数不相容,然而,II型unum可允许基于投影实数的原始(clean)数学设计。II型unum可包含n位且可在“u格”方面加以描述,其中圆形投影的象限填n‑3充有2 ‑1个实数的有序集。II型unum的值可关于将圆形投影等分的轴线反射,使得正值位于圆形投影的右上象限中,而其负对应值位于圆形投影的左上象限中。表示II型unum的圆形投影的下半部可包含位于圆形投影的上半部中的值的倒数。对大多数运算来说,II型unum大体上依赖于查找表。因此,在一些情况下,查找表的大小可能会限制II型unum的效果。然而,在一些条件下,与浮点数相比,II型unum可改进计算功能。[0021] III型unum格式在本文中称为“posit格式”或为简称为“posit”。与浮点位串对比,在某些条件下,posit可实现比具有相同位宽度的浮点数高的精确度(例如,更宽动态范围、更高分辨率和/或更高准确度)。这可允许由计算系统执行的运算在使用posit时以比使用浮点数时更高的速率(例如,更快)执行,这又可通过例如减少在执行运算时使用的时钟周期的数目从而减少执行此类运算时的处理时间和/或消耗的功率来提高计算系统的性能。另外,与浮点数相比,在计算系统中使用posit可以实现更高的计算准确度和/或精确度,这与某些方法(例如,依赖于浮点格式位串的方法)相比可以进一步改进计算系统的功能。[0022] posit可基于包含于posit中的位的总数量和/或整数集或位集的数量而极大地改变精确度和准确度。另外,posit可产生广泛的动态范围。在某些条件下,posit的准确度、精确度和/或动态范围可大于浮点数或其它数字格式的准确度、精确度和/或动态范围,如本文中更详细描述。posit的可变准确度、精确度和/或动态范围可例如基于将使用posit的应用而加以操纵。另外,posit可减少或消除溢出、下溢、NaN和/或与浮点数和其它数字格式相关联的其它极端情况。此外,与浮点数或其它数字格式相比,使用posit可允许使用更少的位来表示数值(例如,数字)。[0023] 在一些实施例中,这些特征可使posit极大程度上可再配置,与依赖于浮点数或其它数字格式的方法相比,这可改进应用性能。另外,与浮点数或其它数字格式相比,posit的这些特征可改进机器学习应用的性能。举例来说,在计算性能至关重要的机器学习应用中,可使用posit来训练网络(例如,神经网络),其准确度和/或精确度与浮点数或其它数字格式相同或比其高,但使用的位比浮点数或其它数字格式少。另外,可使用具有比浮点数或其它数字格式少的位(例如,更小位宽)的posit来实现机器学习情形中的推断运算。通过使用与浮点数或其它数字格式相比更少的位实现相同或增强的结果,posit的使用可因此减少执行运算的时间量和/或减小应用中所需的存储器空间的量,这可改进采用posit的计算系统的整体功能。[0024] 本文中的一些实施例涉及使用通用数字或posit位串作为操作数来执行递归运算以及将递归运算的迭代结果存储在专用寄存器中,如下文所描述。如本文中所使用,“递归运算”通常是指执行指定时间量的运算,其中递归运算的先前迭代的结果用作所述运算的后续迭代的操作数。举例来说,递归乘法运算可为两个位串操作数β与 相乘且递归运算的每一迭代的结果用作后续迭代的位串操作数的运算。换句话说,递归运算可以指递归运算的第一次迭代包含令β与 相乘以获得结果λ(例如, )的运算。此实例递归运算的下一迭代可包含令结果λ乘以 以获得另一结果ω(例如, )的运算。[0025] 可在计算自然数的阶乘方面解释递归运算的另一说明性实例。通过以下等式1给出的此实例可包含在给定数字n的阶乘大于零时执行递归运算,且在数字n等于零的情况下返回一:[0026][0027] 等式1[0028] 如等式1中所展示,可进行确定数字n的阶乘的递归运算,直到n等于零,此时获得解且终止递归运算。举例来说,在使用等式1的情况下,可通过执行以下运算以递归方式计算数字n的阶乘:n×(n‑1)×(n‑2)×…×1。[0029] 递归运算的又一实例为乘累加运算,其中在迭代时根据等式a←a+(bxc)修改a。在乘累加运算中,令累加器a的每一先前迭代与两个操作数b和c的乘积相加。[0030] 由于所述操作数的性质,递归运算的每一迭代的结果的大小可大于先前迭代的结果。因此,在一些方法中,执行递归运算,尤其是针对大量迭代(例如,数百万或数十亿迭代)执行的那些运算可能需要大量存储器资源来存储运算的准确结果。为了减少存储递归运算的准确结果可能需要的存储器资源、计算时间、处理资源和/或处理时间的量,一些方法允许利用一或多个舍入执行递归运算(例如,可在运算的一或多次迭代时对a进行截断)。尽管此类方法可通过舍入递归运算的迭代结果来减少此类运算可能需要的存储器资源的量,但此类舍入引入的不准确性可经由运算传播,从而对递归运算的最终结果的准确度产生更明显的影响。[0031] 此外,在迭代结果在执行递归运算期间被舍入的方法中,可不考虑迭代结果被舍入的量。举例来说,在一些方法中,可丢弃在舍入期间去除的递归运算的迭代结果的部分(或最终结果),从而使得不可能恢复在舍入期间损失的递归运算的准确度和/或精确度。[0032] 一些方法提供用于临时计算(例如,递归运算的中间结果)的小型高速缓冲存储器或寄存器集合(例如,隐藏草稿区域)。然而,在此类方法中,这些寄存器或高速缓冲存储器可能不够大而无法在由于寄存器或高速缓冲存储器的大小约束而带来舍入误差的情况下支持存储中间递归大位串运算(例如,使用32位或64位位串操作数的运算)的精确结果。即使在将较小向量用于递归运算(例如,8位或16位位串操作数)时,寄存器或高速缓冲存储器也可取决于递归运算中所使用的迭代次数而变得超限。[0033] 在一些方法中,小型高速缓冲存储器或寄存器集合(例如,隐藏草稿区域)可被“隐藏”(例如,用户无法存取)。相比之下,在一些实施例中,可将对存储器装置的外围电路系统(例如,本文中所描述的专用寄存器)的存取提供到存储器装置在其中操作的计算系统的用户。举例来说,用户可具备控制对外围电路系统的存取的能力,这可允许更好地控制利用外围电路系统的运算,例如递归运算。这可允许更好地控制允许利用外围电路系统的运算类型,可允许更好地控制何时终止递归运算,和/或更好地控制何时截断存储在外围电路系统中的所得位串。[0034] 相比之下,本文中的实施例涉及用于在执行递归运算期间累加递归运算的中间迭代的结果的专用寄存器。一个此类寄存器(例如,“外部寄存器”)可设置在存储器阵列的外围位置中,且另一此类寄存器(例如,“内部寄存器”)可设置在用以执行递归运算的硬件电路系统(例如,逻辑电路系统)内,或紧密耦合到所述硬件电路系统。在一些实施例中,内部寄存器和/或外部寄存器可提供为“夸尔(quire)寄存器”,如本文中结合图1和2所论述。此外,如本文中更详细描述,内部寄存器和外部寄存器可具有与其相关联的不同大小。举例来说,内部寄存器可包含比外部寄存器少的存储位置,或反之亦然。[0035] 在一些实施例中,硬件电路系统可使用位串操作数来执行递归运算,且在部署在硬件电路系统内(例如,在“内部寄存器”内)的专用寄存器中累加递归运算的迭代结果。在执行递归运算的特定次数的迭代之后,硬件电路系统可使得递归运算的后续迭代会使内部寄存器超限且使存储在内部寄存器中的结果传送到外部寄存器。这可允许在执行递归运算的后续迭代时维持累加结果的准确度或精确度。[0036] 一旦完成递归运算,就可使用存储在内部寄存器和外部寄存器中的累加结果来恢复递归运算的最终结果。在一些实施例中,因为累加结果在执行递归运算期间未被截断(例如,因为整个累加结果存储在内部寄存器和/或外部寄存器中),所以递归运算的最终结果的准确度或精确度可高于在执行递归运算期间舍入或截断递归运算的一或多次迭代的结果的方法。[0037] 在其它实施例中,硬件电路系统可使用位串操作数来执行递归运算,且在部署在硬件电路系统内(例如,在“内部寄存器”内)的专用寄存器中累加递归运算的特定量的迭代结果。举例来说,硬件电路系统可使递归运算的第一次迭代的结果在内部寄存器中累加,且接着可使后续迭代的结果在外部寄存器中累加。[0038] 在一些实施例中,硬件电路系统可包含多个乘法器累加(MAC)单元,如本文中结合图2所描述。MAC单元中的每一个可包含其自身的专用内部寄存器,所述内部寄存器可经配置以累加由部署有所述内部寄存器的MAC单元执行的递归运算的迭代结果。在此类实施例中,硬件电路系统可使内部寄存器中的一或多个的累加结果传送到外部寄存器,和/或硬件电路系统可使存储在一或多个寄存器中的累加结果相加在一起,作为通过使用MAC单元中的每一个执行递归运算的子运算来执行的较大递归运算的执行的部分。[0039] 在本文中所描述的实施例中,可使用以通用数字或posit格式进行格式化的位串来执行递归运算。然而,因为主机可提供根据浮点或定点二进制格式进行格式化的位串,所以硬件电路系统可在使用位串作为操作数执行递归运算之前执行将位串从浮点或定点二进制格式转换为通用数字或posit格式的运算。通过在执行递归运算之前将位串转换为通用数字或posit格式,可相比于将浮点或定点二进制位串用作递归运算的操作数的情形改进递归运算的精确度和/或准确度。[0040] 在本公开的以下详细描述中,参考形成本公开的部分的附图,且图中通过图解方式展示可实践本公开的一或多个实施例的方式。足够详细地描述这些实施例以使得所属领域的一般技术人员能够实践本公开的实施例,且应理解,可利用其它实施例,且可在不脱离本公开的范围的情况下进行工艺、电气和结构改变。[0041] 如本文中所使用,例如“X”、“N”、“M”等特定地关于图式中的附图标号的指定符指示可包含数个如此指定的特定特征。还应理解本文中所使用的术语仅出于描述特定实施例的目的,并且并不打算作为限制。如本文中所使用,除非上下文另外明确规定,否则单数形式“一(a/an)”和“所述(the)”可包含单数个指示物和多个指示物两者。另外,“数个”、“至少一个”和“一或多个”(例如,数个存储体)可指一或多个存储体,而“多个”意在指代多于一个此类事物。[0042] 此外,贯穿本申请在容许意义上(即,有可能、能够)而非在强制性意义上(即,必须)使用词语“可(can/may)”。术语“包含”和其派生词意指“包含但不限于”。视上下文而定,术语“耦合(coupled/coupling)”意指物理上直接或间接连接或存取及移动(传输)命令和/或数据。视上下文而定,术语“数据”及“数据值”在本文中可互换地使用并可具有相同含义。[0043] 本文中的图式遵循编号定则,其中第一一或多个数字对应于图式编号,且其余的数字标识图式中的元件或组件。可通过使用类似数字来标识不同图之间的类似元件或组件。举例来说,120可指代图1中的元件“20”,且类似元件在图2中可表示为220。通常在本文中可用单个元件符号指代一组或多个类似元件或组件。举例来说,多个参考元件226‑1到226‑N(或替代地226‑1、……、226‑N)可被统称为226。如应了解,可添加、交换和/或去除本文中的各种实施例中展示的元件,以便提供本公开的数个额外实施例。另外,图式中提供的元件的比例和/或相对尺度意图说明本公开的某些实施例,且不应被视作限制性意义。[0044] 图1是根据本公开的数个实施例的呈包含含有主机102和存储器装置104的设备的计算系统100形式的功能框图。如本文中所使用,“设备”可指但不限于多种结构或结构的组合中的任何一种,例如,电路或电路系统、一或多个裸片、一或多个模块、一或多个装置或一或多个系统。存储器装置104可包含一或多个存储器模块(例如,单列直插式存储器模块、双列直插式存储器模块等)。存储器装置104可包含易失性存储器和/或非易失性存储器。在数个实施例中,存储器装置104可以包含多芯片装置。多芯片装置可包含数个不同的存储器类型和/或存储器模块。举例来说,存储器系统可包含任何类型的模块上的非易失性或易失性存储器。如图1中所展示,设备100可包含可包含处理单元122和存储器资源124的逻辑电路系统120、存储器阵列130和感测电路系统150(例如,感测150)。本文中结合图6更详细地描述感测电路系统150的实例。举例来说,在数个实施例中,感测电路系统150可包含数个感测放大器和对应计算组件,所述计算组件可充当累加器且可用于使用位串来执行逻辑运算,所述位串表示使用存储在存储器阵列130中的逻辑电路系统120执行的递归运算的结果。另外,组件(例如,主机102、逻辑电路系统120、处理单元122、存储器资源124、存储器阵列130和/或感测电路系统150)中的每一个可在本文中分别被称为“设备”。处理器122可在本文中被称为“处理装置”。[0045] 存储器装置104可以提供用于计算系统100的主存储器或可在整个计算系统100中用作额外存储器或存储装置。存储器装置104可包含一或多个存储器阵列130(例如,存储器单元阵列),所述存储器阵列可包含易失性和/或非易失性存储器单元。举例来说,存储器阵列130可以是具有NAND架构的快闪阵列。实施例不限于特定类型的存储器装置。举例来说,存储器装置104可包含RAM、ROM、DRAM、SDRAM、PCRAM、RRAM和快闪存储器等等。[0046] 在存储器装置104包含非易失性存储器的实施例中,存储器装置104可包含快闪存储器装置,例如NAND或NOR快闪存储器装置。然而,实施例不限于此,且存储器装置104可包含其它非易失性存储器装置,例如非易失性随机存取存储器装置(例如,NVRAM、ReRAM、FeRAM、MRAM、PCM)、例如电阻可变(例如,3‑D交叉点(3DXP))存储器装置等“新兴”存储器装置、包含自选存储器(SSM)单元阵列的存储器装置等,或其组合。[0047] 电阻可变存储器装置可结合可堆叠交叉网格化数据存取阵列基于体电阻的变化来进行位存储。另外,相比于许多基于快闪的存储器,电阻可变非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。相比于基于快闪的存储器和电阻可变存储器,自选存储器单元可包含具有充当存储器单元的开关和存储元件两者的单个硫族化物材料的存储器单元。[0048] 如图1所说明,主机102可耦合到存储器装置104。在数个实施例中,存储器装置104可经由一或多个通道(例如,通道103)耦合到主机102。在图1中,存储器装置104经由通道103耦合到主机102,且存储器装置104的逻辑电路系统120经由通道107耦合到存储器阵列130。主机102可为主机系统,例如个人笔记本计算机、台式计算机、数码相机、智能电话、存储卡读卡器和/或具物联网(IoT)功能的装置,以及各种其它类型的主机。[0049] 主机102可包含系统主板和/或背板且可包含存储器存取装置,例如处理器(或处理装置)。所属领域的一般技术人员将理解,“处理器”可以是一或多个处理器,例如并行处理系统、数个协处理器等。系统100可包含单独的集成电路或主机102、存储器装置104两者,且存储器阵列130可在同一集成电路上。举例来说,系统100可以是服务器系统和/或高性能计算(HPC)系统和/或其一部分。尽管图1中展示的实例说明具有冯·诺依曼(VonNeumann)体系结构的系统,但本公开的实施例可实施于非冯·诺依曼体系结构中,所述非冯·诺依曼体系结构可不包含通常与冯·诺依曼体系结构相关联的一或多个组件(例如,CPU、ALU等)。[0050] 本文中在图2中更详细地展示的存储器装置104可包含逻辑电路系统120,所述逻辑电路系统可包含处理单元122和存储器资源124。处理单元122可以集成电路的形式提供,所述集成电路例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、精简指令集装置(RISC)、高级RISC机器、芯片上系统,或经配置以执行本文中更详细地描述的操作的硬件和/或电路系统的其它组合。在一些实施例中,处理单元122可包括一或多个处理器(例如,处理装置等)。[0051] 处理单元122可执行操作以控制对存储器阵列130、感测放大器150和/或外部寄存器170的存取和来自存储器阵列130、感测放大器150和/或外部寄存器170的存取。在一些实施例中,处理单元122可通过执行由逻辑电路系统120存储的指令(例如,由存储器资源124存储的指令)而执行本文中所描述的操作。[0052] 举例来说,处理单元122可执行(或通过执行存储在存储器资源124中的指令而使得执行)递归运算、将递归运算的迭代结果写入到内部寄存器126、将递归运算的迭代结果写入到外部寄存器170,和/或将存储在内部寄存器中的递归运算结果写入到外部寄存器170。在一些实施例中,处理单元120可在不存在来自存储器装置104外部的电路系统的命令的情况下(例如,在不存在从主机102接收的命令的情况下)执行此类运算或使得执行此类运算。[0053] 逻辑电路系统120可进一步包含可以通信方式耦合到逻辑电路系统122的存储器资源124。存储器资源124可包含易失性存储器资源、非易失性存储器资源或易失性与非易失性存储器资源的组合。在一些实施例中,存储器资源可以是随机存取存储器(RAM),例如静态随机存取存储器(SRAM)。然而,实施例不限于此,且存储器资源可为高速缓冲存储器、一或多个寄存器、NVRAM、ReRAM、FeRAM、MRAM、PCM、例如电阻可变存储器资源、相变存储器装置等“新兴”存储器装置、包含自选存储器单元阵列的存储器装置等,或其组合。在一些实施例中,存储器资源124可充当逻辑电路系统122的高速缓冲存储器。[0054] 逻辑电路系统120可进一步包含可以通信方式耦合到处理单元122的内部寄存器124。内部寄存器126可驻留在逻辑电路系统120上且因此驻留在存储器装置104上。如本文中所使用,术语“驻留在……上”是指某物物理上位于特定组件上。举例来说,内部寄存器126“驻留在逻辑电路系统120和/或存储器装置104上”是指包括内部寄存器126的硬件电路系统物理上位于逻辑电路系统120和/或存储器装置104上的条件。术语“驻留在……上”可在本文中与例如“部署于……上”或“位于……上”等其它术语互换使用。[0055] 内部寄存器126可以夸尔寄存器的形式提供,所述夸尔寄存器可以具有与之相关联的固定或可变数量的存储位置。举例来说,内部寄存器126可包含任何所要数量的存储位置(例如,8位、14位、32位、64位、2016位等)以适应递归运算的迭代结果,和/或包含额外存储位置以存储对应于存储在其中的位串的符号位。然而,在至少一个实施例中,内部寄存器126含有可变数量的存储位置,使得可在其中存储具有64位到4032位的位串。[0056] 如图1中所展示,感测电路系统150耦合到存储器阵列130和逻辑电路系统120。感测电路系统150可包含一或多个感测放大器和一或多个计算组件。感测电路系统150可为存储器阵列130提供额外存储空间,且可感测(例如,读取、存储、缓存)存在于存储器装置104中的数据值。在一些实施例中,感测电路系统150可位于存储器装置104的外围区域中。举例来说,感测电路系统150可位于物理上不同于存储器阵列130的存储器装置104的区域中。感测电路系统150可包含可经配置以存储数据值的感测放大器、锁存器、触发器等,如本文中所描述。在一些实施例中,感测电路系统150可按一个寄存器或一系列寄存器的形式提供,且可包含与存在存储器阵列130的行或列的情况数量相同的存储位置(例如,感测放大器、锁存器等)。举例来说,如果存储器阵列130含有约16K行或列,那么感测电路系统150可包含约16K个存储位置。因此,在一些实施例中,感测电路系统150可为经配置以保持至多16K数据值的寄存器,但实施例不限于此。[0057] 外部寄存器170可耦合到存储器阵列130、感测电路系统150和/或逻辑电路系统120。外部寄存器170可包含外围感测放大器,其可为存储器阵列130提供额外存储空间,且可感测(例如,读取、存储、缓存)存在于存储器装置104中的数据值。在一些实施例中,外部寄存器170可位于存储器装置104的外围区域中。举例来说,外部寄存器170可位于物理上不同于存储器阵列130的存储器装置104的区域中。外部寄存器170可包含可经配置以存储数据值的感测放大器、锁存器、触发器等,如本文中所描述。在一些实施例中,外部寄存器170可按单个寄存器或一系列寄存器的形式提供,且可包含与存在存储器阵列130的行或列的情况数量相同的存储位置(例如,感测放大器、锁存器等)。举例来说,如果存储器阵列130含有约16K行或列,那么外部寄存器170可包含约16K个存储位置。[0058] 图1的实施例可包含为避免模糊本公开的实施例而未说明的额外电路系统。举例来说,存储器装置104可包含地址电路系统以锁存通过I/O电路系统在I/O连接上提供的地址信号。地址信号可由行解码器和列解码器接收和解码以存取存储器装置104和/或存储器阵列130。所属领域的技术人员应了解,地址输入连接的数目可取决于存储器装置104和/或存储器阵列130的密度和架构。[0059] 图2是根据本公开的数个实施例的呈包含含有控制电路系统223和多个乘法器累加单元225‑1到225‑N的设备的逻辑电路系统220形式的功能框图。逻辑电路系统220可类似于图1中所说明的逻辑电路系统120,而存储器阵列230、感测电路系统(“感测”)250和外部寄存器270可分别类似于图1中所说明的存储器阵列130、感测电路系统(“感测”)150和外部寄存器170。[0060] 如图2中所展示,逻辑电路系统220可进一步包含控制电路系统223和多个乘法器累加(MAC)单元225‑1到225‑N。MAC单元225‑1到225‑N可各自包含相应处理单元222和内部寄存器226。举例来说,MAC单元225‑1可包含处理单元222‑1和内部寄存器226‑1,MAC单元225‑2可包含处理单元222‑2和内部寄存器226‑2,且MAC单元225‑N可包含处理单元222‑N和内部寄存器226‑N。在一些实施例中,处理单元222‑1到222‑N和内部寄存器226‑1到226‑N可分别类似于图1中所说明的处理单元122和内部寄存器126。[0061] 控制电路系统223可例如为状态机(例如,有限状态机)、硬件逻辑、现场可编程门阵列,或可经配置以执行操作和/或执行机器可读指令以控制MAC单元225‑1到225‑N的操作的其它电路系统。举例来说,控制电路系统223可协调执行由MAC单元225‑1到225‑N执行的递归运算,和/或协调将递归运算的迭代结果写入到内部寄存器226‑1到226‑N、外部寄存器270、感测电路系统250和/或存储器阵列230。[0062] 逻辑电路系统220可经由通信路径232耦合到多路复用器228。通信路径232可为总线、接口或适合于将数据和/或信号传送到逻辑电路系统220和从逻辑电路系统220传送到逻辑电路系统220外部的电路系统的其它路径。在一些实施例中,通信路径232可一次传送256位的数据,但实施例不限于此特定实例。[0063] 多路复用器234可耦合到加法器电路234、外部寄存器270、感测电路系统250和/或存储器阵列230。在一些实施例中,可控制多路复用器(例如,通过由逻辑电路系统220、控制电路系统223等经由通信路径232断言的信号)以将在内部寄存器226‑1到226‑N中累加的数据传送到加法器电路234、外部寄存器270、感测电路系统250和/或存储器阵列230。[0064] 加法器电路234可经配置以执行对存储在内部寄存器226‑1到226‑N中和/或外部寄存器270中的位串求和的运算。举例来说,如果MAC单元225‑1到225‑N中的每一个正执行相应子运算作为较大递归运算的执行的部分,那么加法器电路234可接收递归运算的相应子运算中的每一个的最终结果,且执行对相应子运算中的每一个的最终结果求和的运算。[0065] 控制电路系统220可分配存储器阵列230、感测电路系统250和/或外部寄存器270中的多个位置以存储存储器阵列230的各种存储体的存储体命令、应用指令(例如,用于操作序列)和自变量(例如,存储器中处理(PIM)命令)。如本文中所使用,相较于由外部处理组件(例如,图1中所说明的主机102)操作数据的正常DRAM命令(例如,读取/写入命令),“PIM命令”是由存储器装置(例如,图1中所说明的存储器装置104)的存储体内的处理元件经由感测电路系统250执行的命令。因此,PIM命令可对应于在存储器阵列230内执行操作而不会妨碍主机的命令。[0066] 在一些实施例中,可在存储器装置内执行PIM命令以使用存储在存储器阵列230、感测组件250和/或外部寄存器270中的位串执行逻辑运算。存储在存储器阵列230、感测组件250和/或外部寄存器270中的位串可对应于使用逻辑电路系统220执行的递归运算的结果,如上文所描述。[0067] 在非限制性实例中,设备可包含控制电路系统223,所述控制电路系统可耦合到MAC单元225‑1到225‑N。MAC单元225‑1到225‑N中的每一个可包含相应处理单元222‑1到222‑N和相应内部寄存器226‑1到226‑N。在一些实施例中,MAC单元225‑1到225‑N可响应于从控制电路系统223接收的信令而使用位串作为操作数来执行相应递归运算,且在相应内部寄存器226‑1到226‑N中累加相应递归运算的相应迭代的结果。举例来说,MAC单元225‑1可使用位串作为操作数来执行递归运算,且在内部寄存器226‑1中累加递归运算的迭代结果。在一些实施例中,相应处理单元222‑1到222‑N可促进递归运算的执行。[0068] 继续此实例,控制电路系统223可至少部分地基于相应递归运算的累加结果的特性而将相应递归运算的累加结果写入到MAC单元225‑1到225‑N外部的寄存器(例如,外部寄存器270),或使相应递归运算的累加结果传送到MAC单元225‑1到225‑N外部的加法器电路234。特性可包含累加结果是否表示相应递归运算的最终结果,和/或对于相应递归运算的后续迭代,存储在相应寄存器中的位的数量是否将多于分配到相应寄存器的位的数量。另外,如上文所描述,在一些实施例中,MAC单元225‑1到225‑N外部的寄存器可包含比相应内部寄存器226‑1到226‑N数量更多的存储位置。[0069] 在一些实施例中,控制电路系统234可确定,对于递归运算的后续迭代,存储在相应内部寄存器226‑1到226‑N中的位的数量将多于分配到相应内部寄存器226‑1到226‑N的位的数量,且至少部分地基于所述确定而将相应递归运算的累加结果写入到MAC单元225‑1到225‑N外部的寄存器。[0070] 在一些实施例中,控制电路系统223可确定相应递归运算完成,且至少部分地基于所述确定而使相应递归运算的累加结果传送到加法器电路234。控制电路系统223可接着使加法器电路234执行对相应递归运算的累加结果求和的运算,如上文所描述。在一些实施例中,控制电路系统223可接着使相应递归运算的累加结果的求和结果写入到MAC单元225‑1到225‑N外部的寄存器。[0071] 在一些实施例中,控制电路系统223可控制耦合到MAC单元225‑1到225‑N的多路复用器228的操作,以将相应递归运算的累加结果写入到MAC单元225‑1到225‑N外部的寄存器,或使相应递归运算的累加结果传送到加法器电路234。[0072] 在另一非限制性实例中,系统可包含逻辑电路系统220,所述逻辑电路系统包含耦合到多个乘法器累加(MAC)单元225‑1到225‑N的控制电路系统223,所述MAC单元各自包括相应处理单元222‑1到222‑N和相应内部寄存器226‑1到226‑N。存储器阵列230可耦合到逻辑电路系统220。被配置为外部寄存器270的多个感测放大器可位于存储器阵列230的外围区中,且可以通信方式耦合到存储器阵列230。[0073] 在一些实施例中,可使用存储在存储器阵列230、感测电路系统250和/或外部寄存器270中的数据来执行逻辑运算。举例来说,如果控制电路系统220使数据传送到存储器阵列230、感测电路系统250和/或外部寄存器270,那么存储器阵列230、感测电路系统250和/或外部寄存器270可使用其中存储的数据来执行逻辑运算,如本文中结合图6所描述。[0074] 继续此实例,控制电路系统220可使每一相应处理单元222‑1到222‑N使用位串作为操作数来执行递归运算的相应第一次迭代,且控制相应第一次迭代的结果到多个MAC单元225‑1到225‑N当中的相应MAC单元225‑1到225‑N的相应内部寄存器226‑1到226‑N的写入。举例来说,控制电路系统220可使第一MAC单元225‑1的第一处理单元222‑1执行递归运算的第一次迭代。控制电路系统220可使递归运算的第一次迭代的结果写入到第一MAC单元225‑1的第一内部寄存器226‑1。类似操作可由控制电路系统220针对多个MAC单元225‑1到225‑N当中的每一MAC单元225‑1到225‑N进行控制。[0075] 控制电路系统220可进一步使每一相应处理单元222‑1到222‑N使用位串作为操作数来执行递归运算的相应第二次迭代,且在多个MAC单元225‑1到225‑N当中的相应MAC单元的相应内部寄存器226‑1到226‑N内累加相应第二次迭代的结果。[0076] 在一些实施例中,控制电路系统220可确定是否执行递归运算的后续迭代,且响应于确定不执行递归运算的后续迭代而控制将所述控制电路系统耦合到存储器装置的多路复用器228的操作,以使存储在相应内部寄存器226‑1到226‑N中的累加结果传送到外部寄存器270。控制电路系统220可响应于确定存储在相应内部寄存器226‑1到226‑N中的累加结果将相加在一起而进一步控制多路复用器228的操作,以使存储在相应内部寄存器226‑1到226‑N中的累加结果传送到耦合到逻辑电路系统220的加法器电路234。控制电路系统220可执行对存储在相应内部寄存器226‑1到226‑N中的累加结果求和的运算。在一些实施例中,控制电路系统220可使存储在相应内部寄存器226‑1到226‑N中的累加结果的和的结果写入到外部寄存器270。[0077] 在一些实施例中,系统可进一步包含将相应内部寄存器226‑1到226‑N耦合到存储器阵列230的通信路径232。控制电路系统220可使存储在相应内部寄存器226‑1到226‑N中的每一累加结果依序传送到外部寄存器270。举例来说,通信路径232可经配置以每突发传送256位的数据。因此,在内部寄存器226‑1到226‑N可存储至多256位的数据的实施例中,可经由通信路径232在256位的突发中从每一内部寄存器226‑1到226‑N传送数据。然而,实施例不限于此,且通信路径232可经配置以大于256位或小于256位。[0078] 如上文所描述,控制电路系统220可经配置以在执行递归运算之前执行使位串以通用数字或posit格式进行格式化的运算。这可允许在针对固定位宽度执行递归运算期间针对位串维持较高精确度和/或准确度。[0079] 图3为具有es个指数位的n位通用数字或“unum”的实例。在图3的实例中,n位unum为posit位串331。如图3中所展示,n位posit331可包含符号位集(例如,第一位子集或符号位子集333)、状态位集(例如,第二位子集或状态位子集335)、指数位集(例如,第三位子集或指数位子集337)和尾数位集(例如,第四位子集或尾数位子集339)。尾数位339可在替代方案中称为“分数部分”或“分数位”,且可表示小数点后的位串的一部分(例如,数字)。[0080] 符号位333可以是用于正数的零(0)和用于负数的一(1)。结合下表1描述状态位335,表1展示(二进制)位串和其相关数字含义k。在表1中,通过位串的延行长度来确定数字含义k。表1的二进制部分中的字母x指示位值与状态的确定不相关,因为(二进制)位串响应于连续位翻转或当到达位串的结尾时终止。例如,在(二进制)位串0010中,位串响应于零翻转到一且随后回到零而终止。因此,最后的零与状态不相关且对于状态考虑的全部是前导相同位和终止位串的第一相对位(如果位串包含此类位)。[0081]二进制 0000 0001 001X 01XX 10XX 110X 1110 1111数字(k) ‑4 ‑3 ‑2 ‑1 0 1 2 3[0082] 表1[0083] 在图3中,状态位335r对应于位串中的相同位,而状态位 对应于终止位串的相对位。举例来说,对于表1中所展示的数字k值‑2,状态位r对应于前两个前导零,而状态位对应于一。如上所述,对应于由表1中的X表示的数字k的最终位与状态不相关。[0084] 如果m对应于位串中相同位的数目,那么如果位为零,那么k=‑m。如果位为一,那么k=m–1。这在表1中进行了说明,其中例如(二进制)位串10XX具有单个一且k=m‑1=1‑1k=0。类似地,(二进制)位串0001包含三个零,因此k=‑m=‑3。状态可指示比例因子useed ,其中 以下表2中展示useed的数个实例值。[0085]es 0 1 2 3 42 2 2 2useed 2 2=4 4=16 16=256 256=65536[0086] 表2[0087] 指数位337对应于作为无符号数的指数e。与浮点数相比,本文中所描述的指数位e337可不具有与其相关联的偏置。因此,本文中所描述的指数位337可表示以因子2进行的调整。如图3中所展示,取决于n位posit331的状态位335右方保留多少位,可存在至多es个指数位(e1、e2、e3、……、ees)。在一些实施例中,这可允许n位posit331的准确度逐渐变小,其中在量值上更接近一的数字具有比极大或极小数字更高的准确度。然而,由于在某些类型的运算中可以不频繁地使用极大或极小数,因此图3中所展示的n位posit331的逐渐变小的准确度表现在广泛范围的情形下可以是合乎需要的。[0088] 尾数位339(或分数位)表示可以是位于指数位337右方的n位posit331的部分的任何额外位。类似于浮点位串,尾数位339表示可类似于分数1.f的分数f,其中f包含一后的小数点右方的一或多个位。然而,与浮点位串相比,在图3中所展示的n位posit331中,“隐藏位”(例如,一)可始终是一(例如,1),而浮点位串可包含具有“隐藏位”零(例如,0.f)的次正规数。[0089] 如本文中所描述,更改符号333位子集、状态335位子集、指数337位子集或尾数339位子集中的一或多个的数值或位数量可改变n位posit331的精确度。举例来说,改变n位posit331中的总位数可以更改n位posit位串331的分辨率。也就是说,通过例如增加与posit位串的构成位子集中的一或多个相关联的数值和/或位数量以提高posit位串分辨率,可以将8位posit转换为16位posit。相反,通过减少与posit位串的构成位子集中的一或多个相关联的数值和/或位数量,可以将posit位串的分辨率例如从64位分辨率减小到32位分辨率。[0090] 在一些实施例中,更改与状态335位子集、指数337位子集和/或尾数339位子集中的一或多个相关联的数值和/或位数量以改变n位posit331的精确度可引起状态335位子集、指数337位子集和/或尾数339位子集中的其它位子集中的至少一个的更改。举例来说,当更改n位posit331的精确度以提高n位posit位串331的分辨率时(例如,当执行“向上转换”运算以增大n位posit位串331的位宽时),可以更改与状态335位子集、指数337位子集和/或尾数339位子集中的一或多个相关联的数值和/或位数量。[0091] 在n位posit位串331的分辨率增大(例如,n位posit位串331的精确度变化以增大n位posit位串331的位宽度)但与指数337位子集相关联的数值或位数量不变的非限制性实例中,与尾数339位子集相关联的数值或位数量可增大。在至少一个实施例中,当指数338位子集保持不变时增大尾数339位子集的数值和/或位数量可包含将一或多个零位添加到尾数339位子集。[0092] 在n位posit位串331的分辨率通过更改与指数337位子集相关联的数值和/或位数量而增大(例如,n位posit位串331的精确度变化以增大n位posit位串331的位宽度)的另一非限制性实例中,与状态335位子集和/或尾数339位子集相关联的数值和/或位数量可增大或减小。举例来说,如果与指数337位子集相关联的数值和/或位数量增大或减小,那么可对与状态335位子集和/或尾数339位子集相关联的数值和/或位数量进行对应更改。在至少一个实施例中,增大或减小与状态335位子集和/或尾数339位子集相关联的数值和/或位数量可包含将一或多个零位添加到状态335位子集和/或尾数339位子集和/或截断与状态335位子集和/或尾数339位子集相关联的数值或位数量。[0093] 在n位posit位串331的分辨率增大(例如,n位posit位串331的精确度变化以增大n位posit位串331的位宽度)的另一实例中,与指数335位子集相关联的数值和/或位数量可增大且与状态333位子集相关联的数值和/或位数量可减小。相反地,在一些实施例中,与指数335位子集相关联的数值和/或位数量可减小且与状态333位子集相关联的数值和/或位数量可增大。[0094] 在n位posit位串331的分辨率减小(例如,n位posit位串331的精确度变化以减小n位posit位串331的位宽度)但与指数337位子集相关联的数值或位数量不变的非限制性实例中,与尾数339位子集相关联的数值或位数量可减小。在至少一个实施例中,当指数338位子集保持不变时减小尾数339位子集的数值和/或位数量可包含截断与尾数339位子集相关联的数值和/或位数量。[0095] 在n位posit位串331的分辨率通过更改与指数337位子集相关联的数值和/或位数量而减小(例如,n位posit位串331的精确度变化以减小n位posit位串331的位宽度)的另一非限制性实例中,与状态335位子集和/或尾数339位子集相关联的数值和/或位数量可增大或减小。举例来说,如果与指数337位子集相关联的数值和/或位数量增大或减小,那么可对与状态335位子集和/或尾数339位子集相关联的数值和/或位数量进行对应更改。在至少一个实施例中,增大或减小与状态335位子集和/或尾数339位子集相关联的数值和/或位数量可包含将一或多个零位添加到状态335位子集和/或尾数339位子集和/或截断与状态335位子集和/或尾数339位子集相关联的数值或位数量。[0096] 在一些实施例中,改变指数位子集中的数值和/或位数量可更改n位posit331的动态范围。举例来说,具有含有数值零的指数位子集的32位posit位串(例如,具有es=0的32位posit位串或(32,0)posit位串)可具有大致18个十进位的动态范围。然而,具有含有数值3的指数位子集的32位posit位串(例如,具有es=3的32位posit位串,或(32,3)posit位串)可以具有大致145个十进位的动态范围。[0097] 图4A是用于3位posit的正值的实例。在图4A中,仅有投影实数的右半部分,然而,应了解,对应于图4A中所展示的其正对应值的负投影实数可存在于表示围绕图4A中所展示的曲线的y轴的变换的曲线上。[0098] 在图4A的实例中,es=2,因此 posit431‑1的精确度可通过将位附加到位串而增大,如图4B中所展示。举例来说,将具有值一(1)的位附加到posit431‑1的位串增大如由图4B中的posit431‑2所展示的posit431‑1的准确度。类似地,将具有值一的位附加到图4B中的posit431‑2的位串增大如由图4B中所展示的posit431‑3所展示的posit431‑2的准确度。以下是可用于将位附加到图4A中所展示的posit431‑1的位串以获得图4B中所说明的posit431‑2、431‑3的内插规则的实例。[0099] 如果maxpos是posit431‑1、431‑2、431‑3的位串的最大正值且minpos是posit431‑1、431‑2、431‑3的位串的最小值,那么maxpos可等于useed且minpos可等于 在maxpos与±∞之间,新的位值可为maxpos*useed,且在零与minpos之间,新的位值可为m n这些新的位值可对应于新的状态位335。在现有值x=2与y=2之间(其中m和n相差超过一),可以由几何平均值给出新的位值: 其对应于新的指数位337。如果新的位值位于其旁边的现有x与y值之间,那么新的位值可以表示算术平均值 其对应于新的尾数位339。[0100] 图4B是使用两个指数位的posit构造的实例。在图4B中,仅有投影实数的右半部分,然而,应了解,对应于图4B中所展示的其正对应值的负投影实数可存在于表示围绕图4B中所展示的曲线的y轴的变换的曲线上。图4B中所展示的posit431‑1、431‑2、431‑3各自仅包含两个异常值:当位串的所有位均为零时的零(0),以及当位串为一(1)然后全部是零时k的±∞。应注意,图4中所展示的posit431‑1、431‑2、431‑3的数值确切地是useed。也就是说,图4中所展示的posit431‑1、431‑2、431‑3的数值确切地是useed乘由状态(例如,上文结合图3所描述的状态位335)表示的k值的幂。在图4B中,posit431‑1具有es=2,因此posit431‑2具有es=3,因此 且posit431‑3具有es=4,因此[0101] 作为将位添加到3位posit431‑1以产生图4B的4位posit431‑2的说明性实例,useed=256,因此对应于256的useed的位串具有附加到其上的额外状态位且之前的useed16具有附加到其上的终止状态位 如上文所描述,在现有值之间,对应位串具有附加到其上的额外指数位。举例来说,数值1/16、1/4、1和4将具有附加到其上的指数位。也就是说,对应于数值4的最末一是指数位,对应于数值1的最末零是指数位等。这种模式可进一步见于posit431‑3中,其是根据以上规则从4位posit431‑2生成的5位posit。如果另一位添加到图4B中的posit431‑3以生成6位posit,那么尾数位339将附加到1/16与16之间的数值。[0102] 以下是对posit(例如,posit431)进行解码以获得其数字等效值的非限制性实n‑1 n‑1例。在一些实施例中,对应于positp的位串是在‑2 到2 范围内的无符号整数,k是对应于状态位335的整数,并且e是对应于指数位337的无符号整数。如果尾数位339的集合表示为{f1f2...ffs}且f是由1.f1f2 ...ffs表示的值(例如,由一后跟小数点后跟尾数位339表示的值),则p可由以下等式2给出。[0103][0104] 等式2[0105] 下文结合下表3中展示的posit位串0000110111011101提供对posit位串进行解码的另一说明性实例。[0106] 符号 状态 指数 尾数0 0001 101 11011101[0107] 表3[0108] 在表3中,posit位串0000110111011101被分解到其构成位集(例如,符号位333、状态位335、指数位337和尾数位339)中。由于表3中展示的posit位串中的es=3(例如,因为存在三个指数位),useed=256。因为符号位333为零,所以对应于表3中展示的posit位串的数字表述的值是正的。状态位335具有对应于值‑3的一连串三个连续零(如上文结合表1所描‑3 k述)。因此,由状态位335贡献的比例因子为256 (例如,useed)。指数位337表示作为无符号e 5整数的五(5)且因此提供2=2=32的额外比例因子。最后,在表3中作为11011101给出的尾数位339表示作为无符号整数的两百二十一(221),因此以上作为f给出的尾数位339为使用这些值和等式1,表3中给出的对应于[0109] 图5是根据本公开的数个实施例的表示对应于多个寄存器中的位串累加的实例方法540的流程图。方法540可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可以省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。[0110] 在框541处,方法540可包含由包括处理单元和第一寄存器的逻辑电路系统使用第一位串和第二位串来执行递归运算的第一次迭代。逻辑电路系统可类似于图1和2中所说明的逻辑电路系统120和220,而处理单元可类似于图1和2中所说明的处理单元122和处理单元222‑1到222‑N。在一些实施例中,第一寄存器可类似于本文中在图1和2中所说明的内部寄存器126和内部寄存器226‑1到226‑N。[0111] 在框543处,方法540可包含将第一次迭代的结果写入到第一寄存器。举例来说,如果递归运算为乘法器累加(MAC)运算,那么方法540可包含执行连续乘法运算,以及在每一连续乘法完成之后将乘法运算的结果写入到第一寄存器。[0112] 在框545处,方法540可包含由逻辑电路系统使用第一位串和第二位串来执行递归运算的第二次迭代。举例来说,如果递归运算为MAC运算,那么方法540可包含执行连续乘法运算,以及在每一连续乘法完成之后将每一连续乘法运算的结果写入到第一寄存器。[0113] 在框547处,方法540可包含在第一寄存器内累加第二次迭代的结果。举例来说,可将MAC运算的每一连续结果与当前由第二寄存器存储的值相加。然而,实施例不限于此,且在一些实施例中,MAC运算的每一连续结果可改写存储在第一寄存器中的先前结果。[0114] 在框549处,方法540可包含将存储在第一寄存器中的数据写入到逻辑电路系统外部的第二寄存器。第二寄存器可类似于本文中在图1和2中所说明的外部寄存器170或外部寄存器270。在一些实施例中,方法540可包含经由将逻辑电路系统耦合到第二寄存器的专用总线(例如,图2中所说明的通信路径232)将存储在第一寄存器中的数据写入到第二寄存器。一旦数据被写入到第二寄存器,方法540便可包含将存储在第二寄存器中的数据写入到存储器单元阵列(例如,存储器阵列130和存储器阵列230)和/或图1和2中所说明的耦合到第二寄存器的感测电路系统150和感测电路系统250。[0115] 在一些实施例中,方法540可包含将存储在第二寄存器中的数据写入到耦合到第二寄存器的存储器阵列,以及使用被写入到存储器阵列的数据作为用于逻辑运算的操作数而在存储器装置内执行逻辑运算。举例来说,一旦存储在第二寄存器中的数据被写入到存储器阵列,所述存储器阵列和/或感测电路系统就可如本文中结合图6所描述的那样操作以使用数据来执行一或多个逻辑运算。在一些实施例中,存储器阵列和/或感测电路系统可在内部执行此类逻辑运算(例如,不将用于逻辑运算的操作数传送到存储器阵列、感测电路系统和/或第二寄存器外部的电路系统)。[0116] 方法540可进一步包含确定对于递归运算的后续迭代,存储在第一寄存器中的位的数量将多于分配到第一寄存器的位的数量,和/或至少部分地基于所述确定而将存储在第一寄存器中的数据写入到第二寄存器。举例来说,因为在递归运算的每一连续迭代的情况下,存储在第一寄存器中的累加结果的大小可变得更大,因此如果后续迭代的结果在第一寄存器中累加,那么可能存在第一寄存器会超限的时间点。为了避免此情形同时保持累加结果的准确度和/或精确度,方法540可包含将存储在第一寄存器中的累加结果写入到第二寄存器,所述第二寄存器可包含比第一寄存器数量更多的存储位置。[0117] 在一些实施例中,方法540可包含确定递归运算完成,以及至少部分地基于所述确定而将存储在第一寄存器中的数据写入到第二寄存器。在此类实施例中,方法540可进一步包含响应于存储在第一寄存器中的数据被写入到第二寄存器而由逻辑电路系统使用第三位串和第四位串来执行不同递归运算的迭代,以及将不同递归运算的迭代结果写入到第一寄存器。[0118] 然而,实施例不限于此,且在一些实施例中,方法540可包含将递归运算的至少一个迭代结果写入到第二寄存器,以及在第一寄存器和/或第二寄存器中累加后续迭代的结果。[0119] 图6是说明根据本公开的数个实施例的包含感测电路系统的存储器阵列的一部分的示意图。感测组件650表示可对应于图1中展示的感测电路系统150的数个感测组件中的一个。[0120] 在图6中所展示的实例中,存储器阵列630是1T1C(一晶体管一电容器)存储器单元的DRAM阵列,其中晶体管充当存取装置且电容器充当存储元件;但可使用其它配置实施例(例如,每存储器单元具有两个晶体管和两个电容器的2T2C)。在此实例中,第一存储器单元包括晶体管651‑1和电容器652‑1,且第二存储器单元包括晶体管651‑2和电容器652‑2等。在数个实施例中,存储器单元可以是破坏性读取存储器单元(例如,读取存储在单元中的数据会破坏数据,使得最初存储在单元中的数据在被读取之后刷新)。[0121] 存储器阵列630的单元可以通过存取线662‑X(行X)、662‑Y(行Y)等耦合的行和通过互补感测线对(例如,图6中标记为DIGIT(n)的数字线653‑1和标记为DIGIT(n)_的653‑2)耦合的列配置。虽然在图6中仅展示一对互补数字线,但本公开的实施例不限于此,且存储器单元的阵列可包含存储器单元和数字线的额外列(例如,4,096、8,192、16,384等)。[0122] 存储器单元可耦合到不同数字线和字线。举例来说,在此实例中,晶体管651‑1的第一源极/漏极区耦合到数字线653‑1,晶体管651‑1的第二源极/漏极区耦合到电容器652‑1,且晶体管651‑1的栅极耦合到字线662‑Y。晶体管651‑2的第一源极/漏极区耦合到数字线653‑2,晶体管651‑2的第二源极/漏极区耦合到电容器652‑2,且晶体管651‑2的栅极耦合到字线662‑X。如图6中所展示的单元板可耦合到电容器652‑1和652‑2中的每一个。单元板可以是对可在各种存储器阵列配置中对其施加参考电压(例如,接地)的共同节点。[0123] 根据本公开的数个实施例,存储器阵列630的数字线653‑1和653‑2耦合到感测组件650。在此实例中,感测组件650包括对应于存储器单元的相应列(例如耦合到相应一对互补数字线)的感测放大器654和计算组件665。感测放大器654耦合到所述一对互补数字线653‑1和653‑2。计算组件665经由导通门655‑1和655‑2耦合到感测放大器654。导通门655‑1和655‑2的栅极可耦合到选择逻辑613。[0124] 选择逻辑613可包含用于控制导通门的导通门逻辑和用于控制交换门的交换门逻辑,所述导通门耦合在感测放大器654与计算组件665之间未换位的所述一对互补数字线,所述交换门耦合在感测放大器654与计算组件665之间换位的所述一对互补数字线。选择逻辑613可耦合到所述一对互补数字线653‑1和653‑2,且经配置以对存储在阵列630中的数据执行逻辑运算。举例来说,选择逻辑613可配置成基于所执行的选定逻辑运算而控制导通门655‑1和655‑2的连续性(例如接通/断开)。[0125] 可操作感测放大器654以确定存储在选定存储器单元中的数据值(例如,逻辑状态)。感测放大器654可包括交叉耦合的锁存器615(例如,一对晶体管(例如n沟道晶体管661‑1和661‑2)的栅极与另一对晶体管(例如p沟道晶体管629‑1和629‑2)的栅极交叉耦合),所述交叉耦合的锁存器可在本文中称为主锁存器。然而,实施例不限于此实例。[0126] 在操作中,当正感测(例如读取)存储器单元时,数字线653‑1或653‑2中的一个上的电压将略微大于数字线653‑1或653‑2中的另一个上的电压。ACT信号和RNL*信号可驱动为低以启用(例如,启动)感测放大器654。具有更低电压的数字线653‑1或653‑2将使晶体管629‑1或629‑2中的一个接通到比晶体管629‑1或629‑2中的另一个更大的程度,由此将具有更高电压的数字线654‑1或654‑2驱动高到比将另一数字线654‑1或654‑2驱动高更大的程度。[0127] 类似地,具有更高电压的数字线654‑1或654‑2将使晶体管661‑1或661‑2中的一个接通到比晶体管661‑1或661‑2中的另一个更大的程度,由此将具有更低电压的数字线654‑1或654‑2驱动低到比将另一数字线654‑1或654‑2驱动低更大的程度。因此,在短延迟之后,具有略微更大的电压的数字线654‑1或654‑2被驱动成穿过源晶体管的电源电压VCC的电压,且另一数字线654‑1或654‑2被驱动成穿过吸收晶体管的参考电压(例如,接地)的电压。因此,交叉耦合的晶体管661‑1和661‑2以及晶体管629‑1和629‑2充当感测放大器对,其放大数字线654‑1和654‑2上的差分电压并用以锁存从选定存储器单元感测到的数据值。[0128] 实施例不限制于图6中所说明的感测组件配置。作为实例,感测放大器654可以是电流模式感测放大器和/或单端感测放大器(例如,耦合到一个数字线的感测放大器)。而且,本公开的实施例不限于折叠式数字线架构,例如图6中所展示的折叠式数字线架构。[0129] 感测组件650可以是选择性地耦合到共享I/O线的多个感测组件中的一个。因而,感测组件650可与存储在根据本公开的数个实施例的存储器中的反转数据相关联地使用。[0130] 在此实例中,感测放大器654包含平衡电路系统659,其可经配置以平衡数字线654‑1和654‑2。平衡电路系统659包括耦合在数字线654‑1与654‑2之间的晶体管658。平衡电路系统659还包括各自具有耦合到平衡电压(例如VDD/2)的第一源极/漏极区的晶体管656‑1和656‑2,其中VDD是与阵列相关联的电源电压。晶体管656‑1的第二源极/漏极区耦合到数字线654‑1,且晶体管656‑2的第二源极/漏极区耦合到数字线654‑2。晶体管658、656‑1和656‑2的栅极可耦合在一起,且耦合到平衡(EQ)控制信号线657。因而,激活EQ会启用晶体管658、656‑1和656‑2,这有效地将数字线654‑1与654‑2短接在一起且短接到平衡电压(例如,VDD/2)。虽然图6展示感测放大器654包括平衡电路系统659,但实施例不限于此,且平衡电路系统659可与感测放大器654分开实施、实施于与图6中所展示的配置不同的配置中或完全不实施。[0131] 如图6中所展示,计算组件665还可包括可在本文中称为次锁存器664的锁存器。次锁存器664可以类似于上文关于主锁存器663所描述的方式配置且操作,不同之处在于包含于次锁存器中的所述一对交叉耦合的p沟道晶体管(例如PMOS晶体管)可使其相应源极耦合到电源电压612‑2(例如VDD),且次锁存器的所述一对交叉耦合的n沟道晶体管(例如NMOS晶体管)可使其相应源极选择性地耦合到参考电压612‑1(例如接地),使得次锁存器被持续启用。计算组件665的配置不限于图6中所展示的配置,且各种其它实施例是可行的。[0132] 在一些实施例中,感测电路系统650可如上文结合使用表示一或多个递归运算的结果的所得位串来执行一或多个逻辑运算所描述的那样操作,如上文所描述。举例来说,由于执行一或多个递归运算而产生的数据可用作用于在存储器阵列630和/或感测电路系统650内执行逻辑运算的操作数。[0133] 虽然已在本文中说明并描述了具体实施例,但所属领域的一般技术人员将了解,经计算以实现相同结果的布置可取代所展示的具体实施例。本公开意图涵盖本公开的一或多个实施例的修改或变化。应理解,以说明方式而非限制方式进行了以上描述。在查阅以上描述后,以上实施例和本文未具体描述的其它实施例的组合对于所属领域的技术人员来说将显而易见。本公开的一或多个实施例的范围包含使用以上结构和过程的其它应用。因此,应参考所附权利要求书连同此类权利要求所赋予的等效物的全范围确定本公开的一或多个实施例的范围。[0134] 在前述具体实施方式中,出于简化本公开的目的而将一些特征一起分组在单个实施例中。本公开的此方法不应被理解为反映本公开的所公开实施例必须比在每项权利要求中明确叙述那样使用更多特征的意图。实际上,如所附权利要求书所反映,本发明标的物在于单个所公开实施例的不到全部的特征。因此,所附权利要求书特此并入于具体实施方式中,其中每项权利要求独自作为单独实施例。

专利地区:美国

专利申请日期:2021-06-10

专利公开日期:2024-06-18

专利公告号:CN113805841B

电话咨询
读内容
搜本页
回顶部