用于posit运算的加速电路系统

文档序号:153078 发布日期:2021-10-26 浏览:31次 >En<

阅读说明:本技术 用于posit运算的加速电路系统 (Acceleration circuitry for posit operations ) 是由 V·S·拉梅什 P·G·海斯 C·M·卡特勒 A·J·雷斯 于 2021-04-22 设计创作,主要内容包括:描述与用于posit运算的加速电路系统有关的系统、设备和方法。可由驻留于加速电路系统上的第一缓冲器接收以通用数字或posit格式格式化的第一运算数。可由驻留于所述加速电路系统上的第二缓冲器接收以通用数字或posit格式格式化的第二运算数。可使用驻留于所述加速电路系统上的处理电路系统使用所述第一运算数和所述第二运算数执行算术运算、逻辑运算或两者。可由驻留于所述加速电路系统上的第三缓冲器接收所述算术运算、所述逻辑运算或两者的结果。(Systems, devices, and methods related to acceleration circuitry for posit operations are described. A first operand formatted in a universal number or posit format may be received by a first buffer residing on acceleration circuitry. A second operand formatted in a universal number or posit format may be received by a second buffer residing on the acceleration circuitry. Arithmetic operations, logical operations, or both may be performed using the first operand and the second operand using processing circuitry residing on the acceleration circuitry. The results of the arithmetic operation, the logical operation, or both may be received by a third buffer residing on the acceleration circuitry.)

用于posit运算的加速电路系统

技术领域

本公开大体上涉及半导体存储器和方法,且更明确地说,涉及用于posit运算的加速电路系统的设备、系统和方法。

背景技术

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

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

发明内容

根据本申请案的方面,提供一种用于posit运算的加速电路系统的方法。所述方法包括:通过驻留于加速电路系统上的第一缓冲器接收以通用数字(unum)或posit格式格 式化的第一运算数;通过驻留于所述加速电路系统上的第二缓冲器接收以所述unum或 posit格式格式化的第二运算数;使用驻留于所述加速电路系统上的处理电路系统使用所 述第一运算数和所述第二运算数来执行算术运算、逻辑运算或两者;以及通过驻留于所 述加速电路系统上的第三缓冲器传输所述算术运算、所述逻辑运算或两者的结果。

根据本申请案的另一方面,提供一种用于posit运算的加速电路系统的设备。所述设备包括:直接存储器存取(DMA)控制器;第一缓冲器,其可耦合到所述DMA控制器 且经配置以存储以通用数字(unum)或posit格式格式化的第一运算数;第二缓冲器,其 可耦合到所述DMA控制器,且经配置以存储以所述unum或posit格式格式化的第二运 算数;处理电路系统,其可耦合到所述第一缓冲器和所述第二缓冲器,其中所述处理电 路系统经配置以使用所述第一运算数和所述第二运算数执行算术运算、逻辑运算或两 者;第三缓冲器,其可耦合到所述DMA控制器和所述处理电路系统,其中所述第三缓 冲器经配置以存储所述算术运算、所述逻辑运算或两者的结果。

根据本申请案的又一方面,提供一种用于posit运算的加速电路系统的系统。所述系统包括:主机;以及存储器装置,其可耦合到所述主机且包括:第一存储器,其经配 置以存储以通用数字(unum)或posit格式格式化且从所述主机接收的运算数;第二存储 器,其经配置以存储从所述主机接收的指令;处理装置,其可耦合到所述第一存储器和 所述第二存储器,且经配置以将由所述第二存储器存储的指令剖析为指示待由可耦合到 所述处理装置的计算电路系统执行的算术运算、逻辑运算或两者的执行的信号,其中所 述计算电路系统经配置以:从所述处理装置接收所述信号;至少部分地基于所述所接收 信号而检索由所述第一存储器存储的所述运算数中的特定者;以及至少部分地基于所述 所接收信号使用所述所检索的运算数来执行算术运算、逻辑运算或两者。

根据本申请案的又一方面,提供一种用于posit运算的加速电路系统的系统。所述系统包括:主机,其经配置以:将以通用数字或posit格式格式化的数据向量传送到存 储器装置的存储器;将较高级指令剖析为较低级指令;以及将所述较低级指令中的相应 者写入到相应计算电路的相应缓冲器;以及所述存储器装置,其能够经由外围组件互连 高速(PCIe)接口耦合到所述主机,其中所述存储器装置包括:所述存储器,其经配置以 存储从所述主机接收的所述数据向量;以及可耦合到所述存储器的多个计算电路,其中 每一计算电路经配置以:从所述主机接收相应的较低级指令;以及根据所述相应较低级 指令执行算术运算、逻辑运算或两者。

根据本申请案的又一方面,提供一种用于posit运算的加速电路系统的设备。所述设备包括:实施于现场可编程门阵列(FPGA)中的直接存储器存取(DMA)块,其中所述 DMA块包括:第一先入先出(FIFO)输入缓冲器,其经配置以接收第一位串;第二FIFO 输入缓冲器(1046),其经配置以接收第二位串;以及可耦合到所述第一FIFO缓冲器和所 述第二FIFO缓冲器的电路系统,其中所述电路系统经配置以将所述第一位串和所述第 二位串解包;第一电路系统,其实施于所述FPGA中且可耦合到所述DMA块,且经配 置以将以浮点格式格式化的数据值转换为以所述unum或posit格式格式化的数据值;第 二电路系统,其实施于所述FPGA中且可耦合到所述DMA块,且经配置以将以所述unum 或posit格式格式化的数据值转换为以浮点格式格式化的数据值;第三电路系统,其实 施于所述FPGA中且可耦合到所述DMA块,且经配置以使用所述第一位串和所述第二 位串执行算术运算、逻辑运算或两者;第四电路系统,其实施于所述FPGA中且可耦合 到所述第一块、所述第二块和所述第三块,且经配置以对所述算术运算、所述逻辑运算 或两者的结果进行打包;以及FIFO输出缓冲器,其可耦合到所述第四电路系统。

根据本申请案的又一方面,提供一种用于posit运算的加速电路系统的方法。所述方法包括:使用以通用数字(unum)或posit格式格式化的多个运算数来预计算多个算术 运算、多个逻辑运算或两者的结果;将所述预计算的结果编译到查找表(LUT)中;从处 理装置接收用以使用所述多个运算数的特定集合执行所述多个算术运算或所述多个逻 辑运算中的特定运算的指令;以及经由所述LUT识别所述预计算的结果中对应于所述 特定运算和所述多个运算数的所述特定集合的一个结果。

附图说明

图1是根据本公开的数个实施例的呈包含包含主机和存储器装置的设备的计算系统 形式的另一功能框图。

图2A是根据本公开的数个实施例的呈包含包含主机和存储器装置的设备的计算系 统形式的功能框图。

图2B是根据本公开的数个实施例的呈包含包含主机和存储器装置的设备的计算系 统形式的另一功能框图。

图3是具有es指数位的n位posit的实例。

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

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

图5是根据本公开的数个实施例的呈包含包含主机和存储器装置的设备的计算系统 形式的另一功能框图。

图6是根据本公开的数个实施例的呈包含包含主机和存储器资源的设备的计算系统 形式的另一功能框图。

图7是根据本公开的数个实施例的呈包含包含主机和存储器资源的设备的计算系统 形式的另一功能框图。

图8是根据本公开的数个实施例的呈包含包含主机和存储器资源的设备的计算系统 形式的另一功能框图。

图9是根据本公开的数个实施例的呈包含包含主机和存储器资源的设备的计算系统 形式的另一功能框图。

图10是根据本公开的数个实施例的呈加速电路系统形式的功能框图。

图11是根据本公开的数个实施例的呈存储器装置形式的另一功能框图。

图12是根据本公开的数个实施例的表示用于posit运算的加速电路系统的实例方法 的流程图。

图13是根据本公开的数个实施例的表示用于posit运算的加速电路系统的实例方法 的另一流程图。

具体实施方式

描述与用于posit运算的加速电路系统有关的系统、设备和方法。通用数字(unum)位串,例如posit位串运算数和表示使用posit位串运算数执行的算术和/或逻辑运算的结果的posit位串,可存储于例如存储器阵列或其它存储器资源等存储器资源中。在存储 器装置中部署的电路系统可存取存储器资源以从存储器资源检索unum位串运算数和/ 或使用unum位串运算数执行的算术和/或逻辑运算的结果。举例来说,可使用存储于存 储器资源中的第一unum位串和存储于存储器资源中的第二unum位串来执行算术运算 和/或逻辑运算。算术运算和/或逻辑运算的结果可存储在存储器资源中,且随后检索。

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

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

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

浮点的替代格式称作“通用数字”(unum)格式。存在可称为“posit”和/或“有效数(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可包含n位且可在“u晶格”方面加以描述,其中圆形投影的象限填充有2n-3-1个实数 的有序集。II型unum的值可围绕将圆形投影等分的轴线反射,使得正值位于圆形投影 的右上象限中,而其负对应值位于圆形投影的左上象限中。表示II型unum的圆形投影 的下半部可包含位于圆形投影的上半部中的值的倒数。II型unum对大多数运算来说通 常依赖于查找表(LUT)。举例来说,在一些情况下,查找表的大小可能限制II型unum 的效果。然而,II型unum与根据一些条件的浮点数相比可提供改进的计算功能性。

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

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

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

本文中的实施例是针对用于posit运算的加速电路系统。在一些实施例中,加速电路系统可实施于现场可编程门阵列(FPGA)上。控制逻辑可耦合到加速电路系统或为加速电路系统的组件。外围组件互连高速(PCIe)接口可耦合到加速电路系统以与主机通信。 举例来说,PCIe接口可用于将数据(例如,数据阵列)传达到耦合到加速电路系统的本地 存储器。本地存储器可在包含加速电路系统的存储器装置内部、在包含加速电路系统的 存储器装置外部或这两者。来自主机的命令可经由PCIe接口传达到加速电路系统。举 例来说,来自主机的命令可控制数据阵列的处理(例如,执行算术运算、逻辑运算或这两 者)。来自处理数据阵列的结果可写入到本地存储器。来自主机的命令可由耦合到加速电 路系统的处理装置解译。处理装置可经配置以控制例如以unum或posit格式格式化的运 算数的检索和经由直接存储器存取(DMA)控制器对结果的传达。处理装置可经配置以控 制由加速电路系统对数据的处理。在一些实施例中,处理装置可为高速缓冲存储器相干 精简指令集计算装置,例如精简指令集计算机(RISC)RISC-V装置。

来自主机的命令可放置于处理装置的队列(例如,本文进一步描述的命令缓冲器)中。 从主机到处理装置的命令的非限制性实例可包含将数据块从主机的存储器传达到本地 存储器,或反之亦然,且处理本地存储器中的数据。处理装置可经配置以“就地”处理 数据。

在一些实施例中,可由驻留于加速电路系统上的第一缓冲器接收以unum或posit格式格式化的第一运算数。如本文中所使用,术语“驻留于……上”是指某物物理上位 于特定组件上。举例来说,处理单元“驻留于”存储器装置“上”是指处理单元物理上 位于存储器装置上的情况。术语“驻留于……上”可在本文中与例如“部署于……上” 或“位于……上”的其它术语互换使用。可由驻留于加速电路系统上的第二缓冲器接收 以unum或posit格式格式化的第二运算数。可使用驻留于所述加速电路系统上的处理电 路系统使用所述第一运算数和所述第二运算数执行算术运算、逻辑运算或两者。可由驻 留于加速电路系统上的第三缓冲器传输算术运算、逻辑运算或两者的结果。

在一些实施例中,加速电路系统可包含DMA控制器。加速电路系统可包含第一缓冲器,所述第一缓冲器可耦合到DMA控制器且经配置以存储以unum或posit格式格式 化的第一运算数。加速电路系统可包含第二缓冲器,所述第二缓冲器可耦合到DMA控 制器,且经配置以存储以unum或posit格式格式化的第二运算数。加速电路系统可包含 可耦合到第一缓冲器和第二缓冲器的处理电路系统。处理电路系统可经配置以使用第一 运算数和第二运算数来执行算术运算、逻辑运算或两者。加速电路系统可包含可耦合到 DMA控制器和计算电路系统的第三缓冲器。第三缓冲器可经配置以存储算术运算、逻 辑运算或两者的结果。

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

如本文所使用,例如“X”、“Y”、“N”、“J”、“R”等特定地关于图式中的附图标号 的指定符指示可包含多个如此指定的特定特征。还应理解,本文中所使用的术语仅出于 描述特定实施例的目的,且并不旨在限制公开内容。如本文中所使用,除非上下文另外 明确规定,否则单数形式“一(a/an)”和“所述(the)”可包含单数个指示物和多个指示物 两者。另外,“多个”、“至少一个”和“一或多个”(例如,多个存储器存储体)可指一或 多个存储器存储体,而“多个”意在指代超过一个此类事物。此外,贯穿本申请案以许 可的意义(即,有可能、能够),而非以强制性的意义(即,必须)使用单词“可能”和“可”。

术语“包含”和其派生词意指“包含但不限于”。视上下文而定,术语“耦合(coupled/coupling)”意指物理上直接或间接连接或存取及移动(传输)命令和/或数据。视上下文而定,术语“位串”、“数据”和“数据值”在本文中可互换地使用且可具有相同 含义。术语“驻留于......上”是指一或多个组件物理地安置于一或多个不同组件上的条 件。此外,本文中可互换地使用术语“数据”、“多个位”和“位串”,且取决于上下文, 术语“数目”可指位串或多个位。

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

图1是根据本公开的数个实施例的呈包含包含主机102和存储器装置104的设备100 的计算系统形式的另一功能框图。如本文所使用,“设备”可指但不限于多种结构或结构的组合中的任何一种,例如,电路或电路系统、一或多个裸片、一或多个模块、一或 多个装置或一或多个系统。加速电路系统120可类似于图2A和2B中所说明的加速电路 系统220。类似地,主机102可类似于图2A和2B中所说明的主机202,存储器装置104 可类似于图2A和2B中所说明的存储器装置204,且存储器阵列130可类似于图2A和 2B中所说明的存储器阵列230。组件(例如,主机102、加速电路系统120、逻辑电路系 统122、存储器资源124,和/或存储器阵列130,等)中的每一者可在本文中单独地称为 “设备”。

主机102可经由一或多个信道103、105以通信方式耦合到存储器装置104。信道103、105可为接口或允许位串、数据和/或命令在主机102与存储器装置105之间转移 的其它物理连接。举例来说,待由加速电路系统120执行的致使起始运算(例如,将呈浮 点格式的位串转换成呈posit格式的位串的运算,以及对呈posit格式的位串的后续算术 和/或逻辑运算)的命令可经由信道103、105从主机传送。应注意,在一些实例中,加速 电路系统120可在不存在来自主机102的介入命令的情况下响应于经由信道103、105 中的一或多者从主机102传送的起始命令而执行运算。也就是说,一旦加速电路系统120 已从主机102接收到用以起始运算的执行的命令,就可在不存在来自主机102的额外命 令的情况下由加速电路系统120执行运算。

在一些实施例中,可在不妨碍主机102的情况下产生位串(例如,posit位串)和/或将 其存储在存储器阵列130中。举例来说,可在不从主机102接收多个命令的情况下产生位串和/或将其存储在存储器阵列130中。换句话说,在一些实施例中,主机102可将单 个命令发送到存储器装置以请求使用一或多个位串执行运算。响应于接收到请求执行运 算的命令,存储器装置104(例如,控制器110、加速电路系统120或存储器装置104的 其它组件)可在不存在来自主机102的额外命令的情况下执行运算和/或检索运算的所存 储结果。这可减少跨越信道103/105的业务,其可增大与主机102和/或存储器装置104 相关联的计算装置的性能。

如图1所示,存储器装置104可包含寄存器存取组件106、高速接口(HSI)108、控 制器110、一或多个扩展行地址(XRA)组件112、主存储器输入/输出(I/O)电路系统114、 行地址选通(RAS)/列地址选通(CAS)链控制电路系统116、RAS/CAS链组件118、加速电 路系统120和存储器阵列130。如图1所示,加速电路系统120位于存储器装置104的 物理上不同于存储器阵列130的区域中。也就是说,在一些实施例中,加速电路系统120 位于存储器阵列130的外围位置中。

寄存器存取组件106可促进从主机102到存储器装置104和从存储器装置104到主机102的数据传送和提取。举例来说,寄存器存取组件106可存储对应于待从存储器装 置104传送到主机102或从主机102传送到存储器装置104的位串的地址(或促进地址的 查找),例如存储器地址。在一些实施例中,寄存器存取组件106可促进传送和提取待由 加速电路系统120运算的位串,和/或寄存器存取组件106可促进传送和提取已由加速电 路系统120运算以传送到主机102的位串。

HSI 108可提供主机102与存储器装置104之间的接口以用于穿过信道105的位串、命令和/或数据。HSI 108可为双数据速率(DDR)接口,例如DDR3、DDR4、DDR5等接 口。然而,实施例不限于DDR接口,且HSI 108可为四倍数据速率(QDR)接口、外围组 件互连(PCI)接口(例如,外围组件互连高速(PCIe))接口,或用于在主机102与存储器装 置104之间传送位串、命令和/或数据的其它合适接口。

控制器110可负责执行来自主机102的指令,并存取加速电路系统120和/或存储器阵列130。控制器110可为状态机、定序器或某一其它类型的控制器。控制器110可从 主机102(例如,经由HSI 108)接收命令,且基于所接收命令,控制加速电路系统120 和/或存储器阵列130的运算。在一些实施例中,控制器110可从主机102接收命令以致 使使用加速电路系统120执行运算。响应于接收到此类命令,控制器110可指示加速电 路系统120开始执行运算。

在非限制性实例中,控制器110可指示加速电路系统120执行运算以检索存储在存储器阵列130中的一或多个位串和/或存储在存储器阵列130中的表示在一或多个位串之间执行的运算的结果的所得位串。举例来说,控制器可从主机104接收请求执行一或多 个位串之间的运算的命令,且将命令发送到加速电路系统120以执行运算。加速电路系 统120(例如,驻留于加速电路系统120上的状态机,例如本文中在图2B中所说明的状 态机223)可确定所请求操作的结果是否存储在存储器阵列130中,确定存储所请求操作 的结果的存储器阵列130中的地址,和/或从存储器阵列130检索所请求操作的结果。加 速电路系统120和/或控制器110可接着致使所请求操作的结果传送到主机102或在存储 器阵列130外部的其它电路系统。

在一些实施例中,控制器110可为全局处理控制器,且可将功率管理功能提供给存储器装置104。功率管理功能可包含对由存储器装置104和/或存储器阵列130消耗的功 率的控制。举例来说,控制器110可控制提供到存储器阵列130的各种存储体的功率以 在存储器装置104的操作期间控制存储器阵列130的哪些存储体在不同时间操作。这可 包含在向存储器阵列130的其它存储体提供功率时关闭存储器阵列130的某些存储体以 优化存储器装置130的功耗。在一些实施例中,控制存储器装置104的功耗的控制器110 可包含控制到存储器装置的各个核心,例如到加速电路系统120等的功率。

XRA组件112意欲提供额外功能性(例如,外围放大器),所述额外功能性感测(例如, 读取、存储、高速缓存)阵列中的存储器单元的数据值且不同于存储器阵列130。XRA 组件112可包含锁存器和/或寄存器。举例来说,额外锁存器可包含于“XRA组件112” 中。XRA组件112的锁存器可位于存储器装置104的存储器阵列130的外围上(例如, 在存储器单元的一或多个存储体的外围上)。

主存储器输入/输出(I/O)电路系统114可促进位串、数据和/或命令到和从存储器阵 列130的传送。举例来说,主存储器I/O电路系统114可促进将位串、数据和/或命令从 主机102和/或加速电路系统120传送到存储器阵列130和传送来自存储器阵列的位串、 数据和/或命令。在一些实施例中,主存储器I/O电路114可包含可将位串、数据块等从 加速电路系统120传送到存储器阵列130(且反之亦然)的一或多个直接存储器存取 (DMA)组件。

在一些实施例中,主存储器I/O电路系统114可促进将一或多个位串从存储器阵列130传送到加速电路系统120,以使得加速电路系统120可对位串执运算。类似地,主 存储器I/O电路系统114可促进将已由加速电路系统120执行一或多个运算的位串传送 到存储器阵列130。如本文中更详细描述,运算可包含用以将根据浮点标准格式化的位 串转换为格式化为posit(且反之亦然)的位串的运算、对格式化为posit的位串执行的算术 运算、对格式化为posit的位串执行的逻辑运算等。

如上所述,可存储和/或从存储器阵列130检索posit位串(例如,数据)。在一些实施例中,主存储器I/O电路系统114可促进posit位串到和/或从存储器阵列130的存储 和/或检索。举例来说,可启用主存储器I/O电路系统114以将posit位串传送到待存储 的存储器阵列130,和/或主存储器I/O电路系统114可促进响应于例如来自控制器110 和/或加速电路系统120的命令而从存储器阵列130检索posit位串(例如,表示一或多个 posit位串运算数之间的所执行运算的posit位串)。

行地址选通(RAS)/列地址选通(CAS)链控制电路系统116和RAS/CAS链组件118可与存储器阵列130结合使用以锁存行地址和/或列地址以起始存储器循环。在一些实施例中,RAS/CAS链控制电路系统116和/或RAS/CAS链组件118可解析存储器阵列130的 行地址和/或列地址,与存储器阵列130相关联的读取和写入操作将在所述行地址和/或 列地址处起始或终止。举例来说,在使用加速电路系统120完成操作后,RAS/CAS链控 制电路系统116和/或RAS/CAS链组件118可锁存和/或解析存储器阵列130中的特定位 置,已由加速电路系统120操作的位串将存储到所述位置。类似地,RAS/CAS链控制电 路系统116和/或RAS/CAS链组件118可锁存和/或解析存储器阵列130中的特定位置, 在加速电路系统120对位串执行操作之前,位串将从所述位置传送到加速电路系统120。

在一些实施例中,RAS/CAS链控制电路系统116和RAS/CAS链组件118可与存储 器阵列130结合使用以锁存行地址和/或列地址以起始从存储器阵列130检索一或多个位 串的操作。举例来说,响应于加速电路系统120(例如,图2B中所说明且驻留于加速电 路系统220上的状态机223)请求存储于存储器阵列130的特定地址处的位串,RAS/CAS 链控制电路系统116和RAS/CAS链组件118可锁存对应于所述位串的行地址和/或列地 址以促进从存储器阵列130检索所请求位串。

如结合图2A和2B且下文结合图5更详细地描述,加速电路系统120可经配置以接收具有第一格式的位串(例如,呈浮点格式的位串),将所述位串转换为第二格式(例如, 将位串转换为例如posit格式的通用数字格式),和/或致使使用具有第二格式的位串执行 例如算术和/或逻辑运算等运算。在一些实施例中,加速电路系统120可致使具有第二格 式的位串和/或包含算术和/或逻辑运算的结果的位串存储于存储器阵列130的数据结构 (例如,本文中在图6中所说明的数据结构634)中。

加速电路系统120可包含逻辑电路系统(例如,图2A和2B中所说明的逻辑电路系统222)和存储器资源(例如,图2A和2B中所说明的存储器资源224)。位串可由加速电 路系统120从例如主机102和/或存储器阵列130接收,且由加速电路系统120存储于例 如加速电路系统120的存储器资源中。加速电路系统(例如,加速电路系统120的逻辑电 路系统)可执行位串的运算(或致使对其执行运算),如本文中结合图5更详细地描述。

如结合图3和4A到4B更详细描述,posit可以提供改进的准确度,且可能需要比 以浮点格式表示的对应位串更少的存储空间(例如,可含有较少数目个位)。因此,通过 使用加速电路系统120将浮点位串转换为posit位串,与利用仅浮点位串的方法相比, 可改进存储器装置102的性能,这是因为运算可更快地对posit位串执行(例如,因为呈 posit格式的数据较小且因此需要较少时间和/或处理资源来执行运算),且因为在存储器 装置102中需要较少存储器空间来存储呈posit格式的位串,这可释放存储器装置102 中的额外空间以用于其它位串、数据和/或待执行的其它运算。另外,通过将位串存储在 存储器阵列130的数据结构中并随后检索,可随后快速存取位串以用于其它运算和/或由 例如主机102上运行的应用程序使用,其使用方式比每当请求此类操作的结果时需要执 行算术和/或逻辑运算的方法更有效。此外,与一些方法相比,执行算术和/或逻辑运算 可能需要较少的时钟循环,因为可从存储器阵列130检索位串运算数之间的算术和/或逻 辑运算的结果,这与每当请求此类运算的结果时执行位串运算数之间的运算的方法形成 对比。

加速电路系统120可对所得posit位串执行(或致使执行)算术和/或逻辑运算。算术 运算可包含加法、减法、乘法、除法、融合乘法加法、乘-累加、点积单元、大于或小于、 绝对值(例如,FABS())、快速傅立叶变换、反快速傅立叶变换、sigmoid函数、卷积、平 方根、指数和/或修正线性单元(ReLu),以及例如正弦、余弦、切线等的三角运算,而逻 辑运算可包含AND、OR、XOR、NOT等。如将了解,运算的前述列表并不意欲是穷尽 性的,运算的前述列表也不意欲是限制性的,且加速电路系统120可经配置以执行(或致 使执行)其它算术和/或逻辑运算。如本文中所描述,在此类运算中使用的运算数(例如, 位串运算数)和/或此类运算的结果可存储在存储器阵列130中,且可随后响应于来自加 速电路系统120的命令而从存储器阵列130检索。

在一些实施例中,加速电路系统120可结合一或多个机器学习算法的执行来执行以 上列举的运算。举例来说,加速电路系统120可执行与一或多个神经网络相关的操作。神经网络可允许随时间推移来训练算法以基于输入信号而确定输出响应。举例来说,随 时间推移,神经网路可基本上习得更好地最大化完成特定目的的机会。这在机器学习应 用中可以是有利的,因为可随时间推移利用新数据训练神经网络以实现更好地最大化完 成特定目的的机会。在许多情况下,可随时间推移训练神经网路以改进特定任务和/或特 定目标的操作。

然而,在一些方法中,机器学习(例如,神经网路训练)可以是处理密集型(例如,可能消耗大量计算机处理资源)和/或可以是时间密集型(例如,可能需要执行消耗多个循环的冗长计算)。相比之下,通过使用加速电路系统120来执行此类运算,例如,通过对已 由加速电路系统120转换为posit格式的位串执行此类运算,在执行运算时消耗的处理 资源量和/或时间量可相较于使用呈浮点格式的位串来执行此类运算的方法而减小。另 外,通过将对已转换为posit格式的位串的运算结果存储在存储器阵列130中以用于后 续检索,由于已经执行运算,所以对于结果的后续请求,可甚至进一步减少执行运算时 所消耗的处理资源量和/或时间量。

举例来说,存储器阵列130可为DRAM阵列、SRAM阵列、STT RAM阵列、PCRAM 阵列、TRAM阵列、RRAM阵列、NAND快闪阵列和/或NOR快闪阵列,但实施例不限 于这些特定实例。存储器阵列130可充当用于图1中所展示的计算系统100的主存储器。 在一些实施例中,存储器阵列130可经配置以存储由加速电路系统120运算的位串(例如, 所得位串)和/或存储待传送到加速电路系统120的位串。

在一些实施例中,存储器阵列130经配置以存储待用作算术运算或逻辑运算或两者 的执行中的运算数的多个位串。耦合到存储器阵列130的控制器110可经配置以接收对使用一或多个位串执行算术运算或逻辑运算或两者的请求。可从在存储器装置104外部 的电路系统(例如,主机102)接收所述请求。控制器110可经配置以确定待在算术运算 或逻辑运算的执行中使用的一或多个位串的位大小,且响应于确定算术运算或逻辑运算 或两者的执行需要一或多个位串的位大小小于预定位大小,致使使用存储于存储器阵列 130中的多个位串中的位串执行算术运算或逻辑运算或两者。

在一些实施例中,耦合到存储器阵列130和加速电路系统120的控制器110可经配置以响应于确定算术运算或逻辑运算或两者的执行需要一或多个位串的位大小小于预 定位大小,将命令发送到加速电路系统以致使加速电路系统执行算术运算或逻辑运算或 两者。在一些实施例中,预定位大小可为16位或更小,然而,实施例不限于特定位大小。

如本文中更详细描述,加速电路系统120可经配置以将表示算术运算或逻辑运算或 两者的结果的位串转换成不同于存储于存储器阵列130中的多个位串的格式的格式。举例来说,待用作执行算术运算或逻辑运算或两者中的运算数的多个位串存储在存储器阵列130中的数据结构中。

图2A是根据本公开的数个实施例的呈包含包含主机202和存储器装置204的设备的计算系统200形式的功能框图。存储器装置204可以包含一或多个存储器模块(例如, 单列直插式存储器模块、双列直插式存储器模块等)。存储器装置204可包含易失性存储 器和/或非易失性存储器。在数个实施例中,存储器装置204可包含多芯片装置。多芯片 装置可包含数个不同的存储器类型和/或存储器模块。举例来说,存储器系统可包含任何 类型的模块上的非易失性或易失性存储器。此外,组件中的每一者(例如,主机202、加 速电路系统220、逻辑电路系统222、存储器资源224和/或存储器阵列230)可在本文中 单独地称为“设备”。尽管图2A中未明确地展示,但存储器装置204可耦合到一或多个 媒体装置,例如固态驱动器、快闪媒体装置等。

存储器装置204可提供用于计算系统200的主存储器或可在整个计算系统200中用作额外存储器或存储装置。存储器装置204可包含一或多个存储器阵列230(例如,存储 器单元阵列),其可包含易失性和/或非易失性存储器单元。举例来说,存储器阵列230 可以是具有NAND架构的快闪阵列。实施例不限于特定类型的存储器装置。举例来说, 存储器装置204可包含RAM、ROM、DRAM、SDRAM、PCRAM、RRAM和快闪存储 器等等。

在存储器装置204包含非易失性存储器的实施例中,存储器装置204可包含快闪存储器装置,例如NAND或NOR快闪存储器装置。然而,实施例不限于此,且存储器装 置204可包含其它非易失性存储器装置,例如非易失性随机存取存储器装置(例如, NVRAM、ReRAM、FeRAM、MRAM、PCM),“新兴”存储器装置,例如可变电阻(例 如,3-D交叉点(3D XP)存储器装置)、包含自选存储器(SSM)单元阵列的存储器装置等, 或其组合。可变电阻存储器装置可结合可堆叠交叉网格化数据存取阵列基于体电阻的改 变来执行位存储。另外,相比于多个基于快闪的存储器,可变电阻非易失性存储器可执 行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器 单元进行编程。相比于基于快闪的存储器和可变电阻存储器,自选存储器单元可包含具 有充当存储器单元的开关和存储元件两者的单个硫族化物材料的存储器单元。

如图2A中所说明,主机202可耦合到存储器装置204。在数个实施例中,存储器 装置204可经由一或多个信道(例如,信道203)耦合到主机202。在图2A中,存储器装 置204经由信道203耦合到主机202,且存储器装置204的加速电路系统220经由信道 207耦合到存储器阵列230。主机202可为主机系统,例如个人笔记本电脑、台式计算 机、数码相机、智能电话、存储卡读卡器和/或具物联网功能的装置,以及其它各种类型 的主机,且可包含存储器存取装置,例如处理器(或处理装置)。所属领域的一般技术人 员将理解,“处理器”可以是一或多个处理器,如平行处理系统、多个协处理器等。

主机202可包含系统母板和/或底板,且可包含数个处理资源(例如,一或多个处理器、微处理器或某一其它类型的控制电路系统)。系统200可包含分离集成电路,或主机202、存储器装置204和存储器阵列230可在相同集成电路上。举例来说,系统200可 以是服务器系统和/或高性能计算(HPC)系统和/或其一部分。虽然图2A中所示的实例说 明具有冯·诺依曼(Von Neumann)架构的系统,但本公开的实施例可实施于非冯·诺依曼架 构中,所述非冯·诺依曼架构可不包含通常与冯·诺依曼架构相关联的一或多个组件(例如,中央处理单元(CPU)、算术逻辑单元(ALU)等)。

存储器装置204可包含加速电路系统220,所述加速电路系统可包含逻辑电路系统222和存储器资源224。可以集成电路的形式提供逻辑电路系统222,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、芯片上系统或经配置以执行本文中更详细地描述的 运算的硬件和/或电路系统的其它组合。举例来说,逻辑电路系统222可经配置以接收呈 第一格式的一或多个位串(例如,呈浮点格式的多个位),将一或多个位串转换成第二格 式(例如,以posit格式对多个位进行编码),和/或致使使用具有第二格式的一或多个位 串执行运算(例如算术和/或逻辑运算)。如本文中所使用,呈第二格式的位串(例如,呈 posit格式的位串)包含至少一个称为“符号”的位、一组称为“方案”的位、一组称为 “指数”的位和一组称为“尾数”(或有效数字)的位。本文中结合图3和4A到4B更详 细地描述符号、方案、指数和尾数位集的实例。

运算可包含转换运算以将浮点位串(例如,浮点数)转换为posit格式的位串,且反之 亦然。一旦将浮点位串转换为posit格式的位串,逻辑电路系统222就可经配置以使用posit位串执行(或致使执行)算术运算和/或逻辑运算。算术运算可包含加法、减法、乘法、除法、融合乘法加法、乘-累加、点积单元、大于或小于、绝对值(例如,FABS())、快速 傅立叶变换、反快速傅立叶变换、sigmoid函数、卷积、平方根、指数和/或修正线性单 元(ReLu),以及例如正弦、余弦、切线等的三角运算,而逻辑运算可包含例如AND、 OR、XOR、NOT等逻辑运算。如将了解,运算的前述列表并不意欲是穷尽性的,运算 的前述列表也不意欲是限制性的,且逻辑电路系统222可经配置以执行(或致使执行)其 它算术和/或逻辑运算。

逻辑电路系统222可包含ALU。ALU可包含用以对整数二进制位串(例如,posit格式的位串)执行例如上文所描述的运算的运算(例如,算术运算、逻辑运算、逐位运算等) 的电路系统(例如,硬件、逻辑、一或多个处理装置等)。

加速电路系统220可进一步包含可以通信方式耦合到逻辑电路系统222的存储器资 源224。存储器资源224可包含易失性存储器资源、非易失性存储器资源或易失性与非易失性存储器资源的组合。在一些实施例中,存储器资源可以是随机存取存储器(RAM), 例如静态随机存取存储器(SRAM)。然而,实施例不限于此,且存储器资源可为高速缓 存、一或多个寄存器、NVRAM、ReRAM、FeRAM、MRAM、PCM)、例如上文描述的 可变电阻存储器装置等的“新兴”存储器装置或其组合。

加速电路系统220可以经由一或多个信道207以通信方式耦合到存储器阵列230。存储器阵列230可为例如DRAM阵列、SRAM阵列、STT RAM阵列、PCRAM阵列、 TRAM阵列、RRAM阵列、NAND快闪阵列和/或NOR快闪阵列。阵列230可包括以通 过存取线(其可在本文中称为字线或选择线)耦合的行和通过感测线(其可在本文中称为 数据线或数字线)耦合的列布置的存储器单元。虽然在图2A中展示单个阵列230,但实 施例不限于此。例如,存储器装置204多个存储器阵列230(例如,DRAM单元、NAND 快闪单元等的多个存储体)。

图2A的实施例可包含为免模糊本公开的实施例而未说明的额外电路系统。举例来说,存储器装置204可包含地址电路系统以锁存通过I/O电路在I/O连接上提供的地址 信号。地址信号可以由行解码器和列解码器接收和解码以存取存储器装置204和/或存储 器阵列230。所属领域的技术人员应了解,地址输入连接的数目可以取决于存储器装置 204和/或存储器阵列230的密度和架构。

图2B是根据本公开的数个实施例的呈包含包含主机202和存储器装置204的设备200的计算系统形式的另一功能框图。如图2B中所示,设备200可包含主机202,其可 经由通信路径203以通信方式耦合到存储器装置204。存储器装置204可包含加速电路 系统220,所述加速电路系统可包含状态机223且任选地包含存储器资源224。加速电 路系统220可经由通信路径207以通信方式耦合到存储器阵列230。组件中的每一者(例 如,主机202、加速电路系统220、状态机223、存储器资源224和/或存储器阵列230) 可在本文中单独地称为“设备”。

在图2B中所示的实施例中,其中逻辑电路系统222包括状态机223,状态机223 可经配置以执行指定指令集以例如写入、读取、复制和/或擦除存储于存储器阵列230 中的位串(例如,数据)。举例来说,如本文中更详细描述,状态机223可执行指令以从 存储器阵列230的一或多个行和/或列读取数据以检索存储于存储器阵列230中的数据。 如结合图1更详细地描述,数据可尤其包含一或多个posit位串运算数和/或一或多个运 算(例如,算术和/或逻辑运算)结果。

通过利用经配置以执行指定指令集以写入和/或从存储器阵列230检索posit位串的 状态机223,与一些方法相比可实现改进的存储器装置204性能,因为可通过将此类运算的结果存储于存储器阵列230中且直接从存储器阵列230检索所述运算的结果来减少 执行存储于存储器阵列230中的位串位串之间的运算的费时和/或计算资源密集型过程 的量。

在一些实施例中,状态机223可确定其中存储相关posit位串的存储器阵列230中的地址。举例来说,状态机223可确定存储器阵列230中存储一或多个posit位串运算 数的行和/或列地址和/或存储表示一或多个posit位串运算数之间的算术和/或逻辑运算 的执行的所得posit位串的行和/或列地址。状态机223可接着发送命令或请求以检索存 储于存储器阵列230中的地址处的posit位串和/或致使将所检索的posit位串传送到主机 202、耦合到存储器装置202的媒体装置(例如,固态驱动器、快闪存储器装置等)或在存 储器阵列230外部的其它电路系统。

图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 中,位串响应于零翻转到一且接着回到零而终止。因此,最后一个零与方案不相关且对 于方案考虑的全部是前导相同位和终止位串的第一相对位(如果位串包含此类位)。

二进制 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位posit 331的方案位335右方保留多少位,可存在 多达es个指数位(e1、e2、e3、…、ees)。在一些实施例中,这可允许n位posit 331的逐 渐变小准确度,其中在量值上更接近一的数字具有比极大或极小数字更高的准确度。然 而,由于在某些类型的运算中可能较不频繁地使用极大或极小数,因此图3所示的n位 posit 331的逐渐变小的准确度表现在广泛范围的情形下可以是合乎需要的。

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

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

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

如果maxpos是posit 431-1、431-2、431-3的位串的最大正值且minpos是posit431-1、 431-2、431-3的位串的最小值,则maxpos可等于useed且minpos可等于在maxpos 与±∞之间,新位值可为maxpos*useed,且在零与minpos之间,新位值可为这 些新位值可对应于新方案位335。在现有值x=2m与y=2n之间,其中m与n相差大于 一,新位值可由几何平均值给出:其对应于新指数位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, 因此posit 431-2具有es=3,因此且posit 431-3 具有es=4,因此

作为将位添加到3位posit 431-1以产生图4B的4位posit 431-2的说明性实例,useed =256,因此对应于useed 256的位串具有附加到其上的额外方案位,且前一useed16具 有附加到其上的终止方案位如上文所描述,在现有值之间,对应位串具有额外到其上的额外指数位。举例来说,数值1/16、1/4、1和4将具有附加到其上的指数位。也 就是说,对应于数值4的最末一是指数位,对应于数值1的最末零是指数位等。这种模 式可进一步见于posit 431-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的集合表示为{f1 f2…ffs}且f是由1.f1f2…ffs表示的值(例如,通过尾数位339之后的小数点之后的一),则p 可由以下等式1给出。

下文结合下表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中给出的

图5是根据本公开的数个实施例的呈包含包含主机502和存储器装置504的设备501 的计算系统形式的另一功能框图。存储器装置504可包含实施于现场可编程门阵列(FPGA)上的电路系统。在虚线框540内说明的组件可为实施于FPGA上的电路系统。然 而,本公开的实施例不限于此。

存储器装置504可包含处理装置554。在至少一个实施例中,处理装置554可为高速缓存相干精简指令集计算(RISC)装置。高速缓存相干精简指令集计算装置的非限制性实例为32位RISC-V装置。处理装置553可经配置以从主机502接收命令。处理装置 553可经配置以将指示来自主机502的命令的完成和/或执行的信号提供到主机502。处 理装置553可经配置以将指示中断的信号提供到主机502。

存储器装置504可包含逻辑电路系统522。逻辑电路系统522可类似于结合图2A 描述的逻辑电路系统222。逻辑电路系统522可耦合到加速电路系统520。然而,本公 开的实施例不限于此。举例来说,逻辑电路系统522可为如图2A所说明的加速电路系 统520的组件。加速电路系统520可被称为posit算术逻辑单元(PALU)。

加速电路系统520可包含经配置以从逻辑电路系统522接收数据值的多个缓冲器。经配置以从逻辑电路系统522接收数据值的缓冲器可称为“输入缓冲器(inbuffer)”(例如,输入缓冲器545)。每一输入缓冲器可经配置以存储以unum或posit格式格式化的运算数。运算数可由位串表示。

如图5所说明,输入缓冲器A 545可经配置以存储“运算数A”,且输入缓冲器B 546可经配置以存储“运算数B”。运算数A和/或运算数B可以unum或posit格式格式化。 尽管图5说明两个输入缓冲器545和546,但本公开的实施例不限于此。举例来说,加 速电路系统520可包含单个输入缓冲器或多于两个输入缓冲器。在至少一个实施例中, 至少一个输入缓冲器可为先入先出(FIFO)缓冲器。

加速电路系统520可包含经配置以对由至少一个输入缓冲器存储的至少一个运算数 执行至少一个算术运算、至少一个逻辑运算或两者的电路系统(例如,处理电路系统)。如图5所说明,加速电路系统520可经配置以执行运算,包含但不限于加法、减法、乘 法、除法、融合乘法加法、乘-累加、点积单元、大于或小于、绝对值(例如,FABS())、 快速傅立叶变换、反快速傅立叶变换、sigmoid函数、卷积、平方根、指数,以及例如 正弦、余弦、切线等的三角运算、AND、OR、XOR、NOT等,及其组合。在至少一个 实施例中,加速电路系统520可包含乘法累加(MAC)电路系统548。

加速电路系统520可包含至少一个缓冲器,所述至少一个缓冲器经配置以接收由加 速电路系统520执行至少一个算术运算、至少一个逻辑运算或两者而得出的数据值。经配置以传输所得数据值的缓冲器可称为“输出缓冲器”(例如,输出缓冲器547)。输出 缓冲器可经配置以存储以unum或posit格式格式化的所得数据值。尽管图5说明单个输 出缓冲器547,但本公开的实施例不限于此。举例来说,加速电路系统520可包含多于 一个输出缓冲器。在至少一个实施例中,至少一个输出缓冲器可为FIFO缓冲器。

逻辑电路系统522可包含直接存储器存取(DMA)控制器542。DMA控制器542可耦 合到输入缓冲器545和546。DMA控制器542可耦合到至少一个存储器资源。如图5 所说明,DMA控制器542可耦合到互连件551,例如高级可扩展接口(AXI)互连件。互 连件551可耦合到多个存储器资源。存储器资源中的至少一者可在存储器装置504内部, 例如可缩放RAM 553和块RAM 555。如本文所使用,“可缩放RAM”是指部署在FPGA 内的双端口同步随机存取存储器单元,其可耦合到多个双端口同步随机存取存储器单元 以增大可用于可缩放RAM 553的存储位置的量。互连件551可耦合到在存储器装置504 外部的存储器资源530。外部存储器资源530可类似于分别结合图1和2A到2B描述的 存储器阵列130和存储器阵列230。互连件551可经由存储器控制器550耦合到外部存 储器资源530。外部存储器资源530可为主存储器。外部存储器资源530的非限制性实 例为双数据速率(DDR)存储器,例如DDR3存储器或DDR4存储器。

在至少一个实施例中,加速电路系统520可包含存储器控制器,例如DMA控制器542。存储器控制器可耦合到包含至少两个相异存储器组件的存储器。存储器控制器可 经配置以至少部分地基于由存储器控制器所接收的信令而从存储器的至少两个相异存 储器组件中的特定一者检索第一运算数、第二运算数或两者。举例来说,DMA控制器 542可经配置以将至少一个运算数从耦合到其的存储器资源中的任一者(例如可缩放 RAM 553、块RAM555、外部存储器资源530(例如,经由存储器控制器550)和其组合) 检索到输入缓冲器545和546。另外或替代地,为从存储器资源检索运算数,DMA控制 器542可经配置以从主机502检索运算数。

DMA控制器542可经配置以将所得数据值从输出缓冲器547传达(例如,传送)到来自耦合到其的存储器资源中的任一者的至少一个运算数,例如可缩放RAM 553、块RAM 555、外部存储器资源530(例如,经由存储器控制器550)和其组合。另外或替代地,为 了将所得数据值传达到存储器资源,DMA控制器542可经配置以将所得数据值传达到 主机502。

存储器装置504可经配置以经由外围组件互连高速(PCIe)接口552与主机502通信。

在至少一个实施例中,逻辑电路系统522可包含微译码控制器544。代替使用加速电路系统520执行算术运算或逻辑运算,微译码控制器544可用来识别算术运算或逻辑 运算的经预计算的结果。多个算术运算、多个逻辑运算或两者的结果可使用以unum或 posit格式格式化的多个运算数来预计算。可将预计算的结果编译到查找表(LUT)中。LUT 可由微译码控制器544或逻辑电路系统522的其它电路系统存储。微译码控制器544可 从例如处理装置554或主机502的CPU等处理装置接收用以使用多个运算数的特定集 合执行多个算术运算或多个逻辑运算中的特定运算的指令。微译码控制器544可经由 LUT识别对应于特定运算及多个运算数的特定集合的经预计算的结果中的一者。可使用 所识别的结果执行额外的算术或逻辑运算。

存储器装置504可包含如由逻辑电路系统522和加速电路系统520的重叠表示所表示的逻辑电路系统522和加速电路系统520的多个个例。然而,重叠表示并不意欲为逻 辑电路系统522和加速电路系统520的多个个例的物理定向和/或重叠。

图6是根据本公开的数个实施例的呈包含包含主机602和存储器资源624的设备607 的计算系统形式的另一功能框图。存储器资源624可类似于结合图5描述的可缩放RAM553、块RAM 555和/或DDR3存储器530。存储器资源624可经配置以经由PCIe接口 652与主机602通信。

主机602的第一缓冲器(例如,数据缓冲器660)可经配置以存储数据值(例如,数据向量)。由主机602的数据缓冲器660存储的数据值可传达(例如,传送)到第二缓冲器, 例如存储器资源624的数据缓冲器662。由存储器资源624的数据缓冲器662存储的数 据值可传达到主机602的数据缓冲器660。可由主机602维护第三缓冲器(命令缓冲器 661)。命令缓冲器661可经配置以存储从主机602的CPU传达的命令。由主机602的命 令缓冲器661存储的命令可复制(镜射)到存储器资源624的第四缓冲器(命令缓冲器 663)。由存储器资源624的命令缓冲器663存储的命令可复制到主机602的命令缓冲器 661。

由图6说明为RISC-V装置的处理装置654可经配置以监测存储器资源624的命令缓冲器623。处理装置654可经配置以将由存储器资源624的命令缓冲器663存储的指 令剖析为指示待由计算电路系统665执行的算术运算、逻辑运算或两者的执行的信号。 计算电路系统665可包含经配置以执行算术运算、逻辑运算或两者的处理电路系统。举 例来说,响应于命令从主机602的命令缓冲器661镜射到存储器资源624的命令缓冲器 663,处理装置654可经配置以将所镜射命令(例如,主机级命令)剖析为一或多个机器级 指令(例如,有限状态机命令)。处理装置654可经配置以响应于状态机(例如状态机623) 执行从主机级命令剖析的机器级指令,将指示主机级命令的完成的数据传达到存储器资 源624的命令缓冲器663。指示主机级命令的完成的数据可从存储器资源624的命令缓 冲器663复制到主机602的命令缓冲器。

计算电路系统665可经配置以从处理装置654接收信号,至少部分地基于所接收信号检索由存储器资源624的数据缓冲器662存储的运算数中的特定者,且至少部分地基 于所接收信号使用所检索的运算数来执行算术运算、逻辑运算或两者。处理装置654可 经配置以将机器级指令传达到计算电路系统665的缓冲器664。缓冲器664可为FIFO 缓冲器。缓冲器664可使得能够由缓冲器664存储多个机器级指令,而无需等待每一个 别机器级指令的完成。

计算电路系统665可包含状态机623(例如,有限状态机(FSM))。状态机623可类似于结合图2B所描述的状态机223。状态机623可从缓冲器664检索机器级指令。状态 机623可经配置以根据机器级指令引导算术运算、逻辑运算或两者的执行。

计算电路系统665可包含耦合到状态机623的加速电路系统620。加速电路系统620可类似于结合图5描述的加速电路系统520。

主机级命令的非限制性实例为一般矩阵乘法(GEMM)命令。GEMM命令的实施方案可包含主机602将表示矩阵的位串从数据缓冲器660传送到存储器资源624的数据缓冲 器662。GEMM命令的实施方案可包含将与GEMM命令相关联的命令数据(例如,两个 矩阵的地址和大小)传达到主机602的命令缓冲器661。命令数据可从主机602的命令缓 冲器661复制到存储器资源624的命令缓冲器663。处理装置654可检测由存储器资源 624的命令缓冲器663存储的命令数据,且将GEMM命令剖析为机器级指令,例如多个 点积运算。处理装置654可将每一点积运算剖析为多个FSM命令。FSM命令可包含但 不限于清除QUIRE、执行点积、将结果传送到加速电路系统620的缓冲器(例如,结合 图5描述的输出缓冲器547),且将结果从缓冲器写入到结果位置。响应于完成所有点积 运算的所有FSM命令,处理装置654可将指示GEMM命令完成的数据传达到存储器资 源624的命令缓冲器663。指示GEMM命令的完成的数据可从存储器资源624的命令缓 冲器663复制到主机602的命令缓冲器661。

PCIe接口652、存储器资源624、处理装置654和/或计算电路系统665可实施于FPGA上。

图7是根据本公开的数个实施例的呈包含包含主机702和存储器资源724的设备709 的计算系统形式的另一功能框图。主机702、PCIe接口752、存储器资源724、处理装 置754和计算电路系统765可类似于结合图6描述的主机602、PCIe接口652、存储器 资源624、处理装置654和计算电路系统665。

与图6所说明的设备607相比,设备709包含多个计算电路766-0、766-1、...766-N(统 称为计算电路766)。类似于计算电路系统765,计算电路766中的每一者可包含缓冲器764和状态机723(例如,FSM)。缓冲器766可经配置以存储机器级指令(例如,FSM命 令)。然而,计算电路766中的每一者包含耦合到状态机723的quire寄存器767。quire 寄存器767可经配置以存储由MAC执行的递归运算(例如,算术运算或逻辑运算)的迭 代的结果(例如,中间结果)。在一些实施例中,作为状态机723的补充或替代,计算电 路766中的每一者可包含感测放大器带、触发器串,或两者。

如图7所说明,主机702的命令缓冲器761和存储器资源724的命令缓冲器763各 自包含与计算电路766和计算电路系统765的每一状态机相关联的存储装置(例如,命令 缓冲器)。命令缓冲器761和763包含用于N+1个计算电路766的状态机和计算电路系 统765的状态机723中的每一者的存储装置。

如结合图6所描述,处理装置754可将与矩阵乘法(例如,GEMM命令)相关联的主 机级命令剖析为与点积运算相关联的多个机器级指令。可使用计算电路766并行地执行 点积运算。用于相应点积运算的机器级指令可分布在计算电路766当中。PCIe接口752、 存储器资源724、处理装置754、计算电路系统765和/或计算电路766可实施于FPGA 上。在计算电路766中的每一者中包含quire寄存器767而不是计算电路系统765的加 速电路系统720可减少实施计算电路765的FPGA的资源量。与设备709相比,由加速 电路系统520的图5实施方案所说明的设备501的加速电路系统520可利用较大量的 FPGA资源。在计算电路766中的每一者中包含quire寄存器767可增大可并行执行的算 术和/或逻辑运算的量,同时减少待实施的FPGA的资源量。

图8是根据本公开的数个实施例的呈包含包含主机802和存储器资源824的设备811 的计算系统形式的另一功能框图。主机802、PCIe接口852、存储器资源824、处理装 置854、计算电路系统865和计算电路866可类似于结合图7描述的主机702、PCIe接 口752、存储器资源724、处理装置754、计算电路系统765和计算电路766。

与图7所说明的设备709相比,设备811除计算电路系统865的加速电路系统820 之外还包含耦合到PCIe接口852的加速电路系统868。加速电路系统868可具有与计算 电路系统865的加速电路系统820相同的结构或不同的结构。加速电路系统868可直接 耦合到PCIe接口852。加速电路系统可映射到与PCIe接口852(例如,间接寄存器870) 相关联的存储器空间中。间接寄存器870可经配置以存储标量运算数、算术或逻辑运算 的结果或两者。加速电路系统868的输出缓冲器(例如,结合图5描述的输出缓冲器547) 可与忙碌标志组合,使得来自输出缓冲器的读取操作将不完成,直到加速电路系统868 已完成算术或逻辑运算的执行为止。使用设备800及加速电路系统868执行的标量乘法 运算可包含将第一标量运算数(运算数A)写入到加速电路系统868的第一输入缓冲器(例 如,输入缓冲器545),将第二标量运算数(运算数B)写入到加速电路系统868的第二输 入缓冲器(例如输入缓冲器546),及从乘法结果寄存器读取第一和第二标量运算数的乘 法运算的结果。使用加速电路系统868来执行标量运算可比使用计算电路系统865的加 速电路系统820更有效。

在至少一个实施例中,设备800可提供对由存储器资源824存储的运算数的间接存取。举例来说,如果将执行标量运算和向量运算的组合,则将向量数据加载到存储器资 源824中且维持由存储器资源824对向量数据的存储,使得计算电路866和计算电路系 统865的状态机823可存取向量数据而不必将数据传达到主机802和从主机传达数据可 能更为有效。如果将对向量数据或来自向量运算的结果执行标量运算,则对存储器资源 824执行标量运算。间接标量乘法运算可包含将存储于存储器资源824中的第一运算数 (运算数A)的地址写入到间接寄存器870,将存储于存储器资源824中的第二运算数(运 算数B)的地址写入到间接寄存器870,且将使用存储于存储器资源824中的第一和第二 运算数的标量运算的结果的地址写入到间接寄存器870。

图9是根据本公开的数个实施例的呈包含包含主机902和存储器资源924的设备913 的计算系统形式的另一功能框图。主机902、PCIe接口952、存储器资源924、计算电 路系统965和计算电路966可类似于结合图8描述的主机802、PCIe接口852、存储器 资源824、计算电路系统865和计算电路866。

与图8所说明的设备811相比,设备913并不包含耦合到PCIe接口952和存储器 资源924的处理装置。计算电路系统965的缓冲器964可映射到PCIe接口952的存储 器空间。将缓冲器964映射到PCIe接口952的存储器空间可使得主机902的软件驱动 程序能够提供由处理装置(例如,结合图8描述的处理装置854)的嵌入式软件提供的功 能性。主机902的软件驱动程序可在比处理装置的嵌入式软件高的处理量下操作。

在至少一个实施例中,主机902(例如,经由主机902的CPU)可将例如GEMM命 令等较高级命令剖析为较低级命令(例如,机器级指令),例如与GEMM命令的点积运算 相关联的状态机命令。较低级命令可由主机902的命令缓冲器961存储,所述命令缓冲 器包含对应于计算电路966和计算电路系统965的每一状态机923的存储装置(例如,寄 存器)。可将相应较低级命令从对应于计算电路966-0、966-1、...、966-N或计算电路系 统965中的一者的状态机的命令缓冲器961的相应存储装置传达(例如,传送)到计算电 路966或计算电路系统965中的所述一者的命令缓冲器964。举例来说,机器级指令可 从对应于计算电路966-1的状态机923的命令缓冲器961的寄存器传送到计算电路966-1 的命令缓冲器964。

图10是根据本公开的数个实施例的呈加速电路系统1020形式的功能框图。加速电路系统1020可类似于结合图5到9描述的加速电路系统520、620、720、820、868、920 和968中的任一者。加速电路系统1020可实施于FPGA上。

加速电路系统1020可能够存储传入数据的突发,因为可使用两个或更多个运算数执行算术运算。在相同时钟循环期间,可将对应于两个运算数的数据值供应到加速电路 系统1020。举例来说,如果正在256字节突发中从外部存储器资源(例如,结合图5所 描述的DDR3存储器530)检索两个运算数,则不确保数据值将在正确时间到达。在至少 一个实施例中,加速电路系统1020可包含AXI流FIFO,例如输入缓冲器1046和1046。 加速电路系统1020可包含输出缓冲器1047,所述输出缓冲器可经配置以在将数据值从 加速电路系统1020传达到例如DDR3存储器530之前缓冲表示来自算术块的结果的数 据值。

在至少一个实施例中,加速电路系统1020可从输入缓冲器1046和1046读取六十四位的数据,且将所述数据转换成与经配置以执行算术运算的电路系统兼容的格式。举 例来说,在8位posit环境中,从输入缓冲器1045、输入缓冲器1046或两者读取的运算 数可由电路系统1072转换为总线上的八个依序输入。电路系统1076可包含经配置以选 择输出的多路复用器。电路系统1076可包含ALU。ALU可包含对整数二进制位串(例 如,呈posit格式的位串)执行运算(例如,算术运算、逻辑运算、逐位运算等)的电路系 统(例如,硬件、逻辑、一或多个处理装置等)。由电路系统1076执行的对应于八个依序 输入的运算的结果可例如由电路系统1076填充到64位字中,随后将64位字写入到输 出缓冲器1047。

在至少一个实施例中,输入缓冲器1045、输入缓冲器1046、输出缓冲器1047、电 路系统1072和/或电路系统1076可实施于DMA块中。

在至少一个实施例中,加速电路系统1020可包含经配置以将以浮点格式格式化的数据值转换为unum或posit格式的电路系统1073。加速电路系统1020可包含经配置以 将以unum或posit格式格式化的数据值转换为浮点格式的电路系统1074。

图11是根据本公开的数个实施例的呈存储器装置1104形式的另一功能框图。PCIe接口1152、存储器资源1124和计算电路系统1165可类似于结合图6描述的PCIe接口 652、存储器资源624和计算电路系统865。图11说明计算电路系统1165的状态机1123 的组件。

状态机1123可包含多个DMA控制器。每一相应DMA控制器可耦合到相应缓冲器。 每一缓冲器可为FIFO缓冲器。如由图11所说明,状态机1123可包含经配置以检索(例 如,从存储器资源1124)且存储第一运算数(运算数A(OPA))的DMA控制器与FIFO缓 冲器的第一集合1171。状态机1123可包含经配置以检索(例如,从存储器资源1124)且 存储第二运算数(运算数B(OPB))的DMA控制器与FIFO缓冲器的第二集合1173。状态 机1123可包含经配置以检索(例如,从存储器资源1124)且存储第三运算数(运算数C (OPC))的DMA控制器与FIFO缓冲器的第三集合1175。在相应DMA控制器的输出与 加速电路系统1120之间的集合1171、1173和1175的FIFO缓冲器可使得能够加快加速 电路系统1120执行运算的速度。

计算电路系统1165的加速电路系统1120可从状态机1123的相应FIFO缓冲器检索第一运算数、第二运算数、第三运算数或其组合。尽管图11说明用于检索和存储运算 数的DMA控制器与FIFO缓冲器的三个集合1171、1173和1175,但实施例不限于此。 举例来说,状态机1123可包含DMA控制器与FIFO缓冲器的少于三个集合或DMA控 制器与FIFO缓冲器的多于三个集合。

状态机1123可包含经配置以检索、存储和传达来自加速电路系统1120的结果的DMA控制器与缓冲器的集合1177。集合1177的缓冲器可为FIFO缓冲器。

处理装置1158可将待由加速电路系统1120执行的例如计数、地址、大小、跨距和运算等命令传达到命令缓冲器1164。如由图11所说明,计算电路系统1165可包含经配 置以存储指示控制信号、状态或两者的数据的存储器1178。集合1171、1173和1175的 DMA控制器可至少部分地基于来自处理装置1158的命令而检索相应运算数,所述命令 包含开始地址、待检索的数据量(例如,开始地址+N*跨距*运算数大小)、运算计数。如 本文中所使用,“跨距”是指经处理的样本之间的地址增量。举例来说,-1的跨距可用 于按反向次序从缓冲器读取数据。作为另一实例,跨距2可用于按0、2、4、6、8等的 地址偏移量从缓冲器读取数据。

图12是根据本公开的数个实施例的表示用于posit运算的加速电路系统的实例方法1280的流程图。在框1281处,方法1280可包含由驻留于加速电路系统上的第一缓冲器 接收第一运算数。第一运算数可以unum或posit格式格式化。第一缓冲器可为FIFO缓 冲器。加速电路系统可类似于分别结合图1、2和5到11描述的加速电路系统120、220、 520、620、720、820、868、920、968、1020和1120。

在框1282处,方法1280可包含由驻留于加速电路系统上的第二缓冲器接收第二运算数。第二运算数可以unum或posit格式格式化。第二缓冲器可为FIFO缓冲器。

在框1283处,方法1280可包含使用第一运算数和第二运算数来执行算术运算、逻辑运算或两者。如上所述,算术运算可包含如下算术运算:加法、减法、乘法、除法、 融合乘法加法、乘-累加、点积单元、大于或小于、绝对值(例如,FABS())、快速傅立叶 变换、反快速傅立叶变换、sigmoid函数、卷积、平方根、指数和/或修正线性单元(ReLu), 以及例如正弦、余弦、切线等的三角运算,而逻辑运算可包含例如AND、OR、XOR、 NOT等逻辑运算。

在框1284处,方法1280可包含通过驻留于加速电路系统上的第三缓冲器传输算术运算、逻辑运算或两者的结果。结果可以unum或posit格式格式化。第三缓冲器可为 FIFO缓冲器。

在一些实施例中,加速电路系统可实施于FPGA上。方法1280可进一步包含从驻 留于FPGA上的存储器检索第一运算数、第二运算数或两者。方法1280可进一步包含 从在加速电路系统外部的主存储器检索第一运算数、第二运算数或两者。方法1280可 进一步包含经由可耦合到加速电路系统的DMA控制器检索第一运算数、第二运算数或 两者。方法1280可进一步包含将第一运算数、第二运算数或两者从可耦合到加速电路 系统的主机传送到实施于FPGA上的存储器和可耦合到加速电路系统的主存储器中的至 少一者。

图13是根据本公开的数个实施例的表示用于posit运算的加速电路系统的实例方法 1385的另一流程图。在至少一个实施例中,方法1385可至少部分由结合图5描述的微 译码控制器544实施。在框1386处,方法1385可包含使用以unum或posit格式格式化 的多个运算数来预计算多个算术运算、多个逻辑运算或两者的结果。在一些实施例中, 预计算结果可包含使用特定位长度的运算数预计算多个算术运算、多个逻辑运算或两者 的结果。

在框1387处,方法1385可包含将预计算的结果编译到LUT中。如本文中所描述,LUT可用于识别LUT内的特定算术或逻辑运算的结果而无需执行特定算术或逻辑运算。 举例来说,响应于用以执行特定算术或逻辑运算的指令,微译码控制器(例如,微译码控 制器544)可识别特定算术或逻辑运算的结果,而非执行特定算术或逻辑运算。

在框1388处,方法1385可包含从处理装置接收用以使用多个运算数的特定集合执行多个算术运算或多个逻辑运算中的特定运算的指令。在一些实施例中,从处理装置接 收指令可包含从主机处理装置接收指令。

在框1389处,方法1385可包含经由LUT识别预计算结果中对应于特定运算和多 个运算数的特定集合的一个结果。在一些实施例中,识别预计算结果中的一者可包含确 定与特定运算的结果和多个运算数的特定集合相关联的LUT的地址。在一些实施例中, 方法1385可进一步包含使用所识别的结果执行额外算术或逻辑运算。

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

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

40页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种RDMA通信加速集合通信的方法及系统

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!