当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于低延时模块化乘法的系统和方法技术方案

技术编号:33947782 阅读:28 留言:0更新日期:2022-06-29 21:44
本公开涉及一种用于低延时模块化乘法的系统和方法。一种集成电路设备,包括:乘法器电路,其被配置为通过将多个值相乘来确定子积的多个列。多个列中的每一列包括多个子积中的一个或多个子积。集成电路设备还包括:加法器电路,其被配置为确定多个和,每个和是多个列中的一列之和。加法器电路的与多个列中的第一列相关联的第一部分被配置为接收与第一列相关联的第一值和第二值以及与多个列中不同于第一列的第二列相关联的第三值。该第三值是由加法器电路的与多个列中的第二列相关联的第二部分生成的进位输出值。部分生成的进位输出值。部分生成的进位输出值。

【技术实现步骤摘要】
用于低延时模块化乘法的系统和方法


[0001]本公开总体上涉及诸如可编程逻辑器件(PLD)之类的集成电路(IC)设备。更具体地,本公开涉及用于在集成电路设备上执行模块化乘法运算的技术,该集成电路设备包括诸如现场可编程门阵列(FPGA)之类的可编程逻辑器件。

技术介绍

[0002]本部分旨在向读者介绍与在下面描述和/或要求保护的本公开的各个方面相关的
的各个方面。该论述被认为有助于为读者提供
技术介绍
信息以促进更好地理解本公开的各个方面。因此,可以理解的是,这些陈述将在此情况下阅读,而不是作为对现有技术的承认。
[0003]集成电路设备可以用于各种目的或应用,例如,数字信号处理、机器学习和加密货币或其他区块链相关应用。可编程逻辑器件可以用于执行这些功能,例如,使用特定电路(例如,处理块)。在一些情况下,对于执行乘法运算(例如,模块化乘法运算)高效的特定电路可能以不期望地高的延时来执行这些运算,特定电路可能占据集成电路设备上不期望的面积量,或两者。
附图说明
[0004]在阅读以下详细描述并且参考附图时,可以更好地理解本公开的各个方面,其中:
[0005]图1是根据本公开的实施例的可以使用乘法器电路来实现算术运算的系统的框图;
[0006]图2是根据本公开的实施例的图1的集成电路设备的示例的框图;
[0007]图3是根据本公开的实施例的图1的集成电路设备的乘法器电路可以在进行乘法运算时执行的过程的流程图;
[0008]图4是示出根据本公开的实施例的子积的列和子积的列之和的行的框图;
[0009]图5是示出根据本公开的实施例的生成模值并对模值求和的示例的示图;
[0010]图6是示出根据本公开的另一实施例的生成模值并对模值求和的另一示例的示图;
[0011]图7是示出根据本公开的实施例的图4的子积的列和子积的列之和的行以及减少的和(reduced sum)的框图;
[0012]图8是根据本公开的实施例的独立加法器树的框图;
[0013]图9是根据本公开的实施例的其中在加法器树之间共享进位输出值(carry

out value)的加法器树的框图;
[0014]图10是根据本公开的另一实施例的其中在加法器树之间共享进位输出值的加法器树的框图;
[0015]图11是根据本公开的实施例的可以包含于图10的加法器树中的一个或多个加法器树中的加法器电路的框图;
[0016]图12是根据本公开的实施例的图11的三元加法器电路的框图;以及
[0017]图13是根据本公开的实施例的数据处理系统。
具体实施方式
[0018]下面将描述一个或多个具体实施例。为了提供这些实施例的简明描述,在说明书中并未描述实际实现方式的所有特征。应该理解,在任何此类实际实现方式的开发中,就像在任何工程或设计项目中一样,必须做出许多特定于实现方式的决策来实现开发人员的特定目标,例如,遵守与系统相关和与业务相关的约束,这可能因实现方式而异。此外,应当理解,这样的开发工作可能是复杂且耗时的,但是虽然如此,对于受益于本公开的普通技术人员而言,这将是设计、制作和制造的例行任务。
[0019]当介绍本公开的各种实施例的元素时,冠词“一(a)”、“一个(an)”和“该(the)”旨在表示存在元素中的一个或多个元素。术语“包括”和“具有”旨在是包含性的并且表示除了所列元素之外可能存在附加元素。此外,应当理解,对本公开的“一些实施例”、“实施例”、“一个实施例”或“一实施例”的引用并不旨在被解释为排除存在也包含所引述特征的附加实施例。此外,短语A“基于”B旨在表示A至少部分地基于B。此外,术语“或”旨在是包含性的(例如,逻辑OR)而不是排他性的(例如,逻辑XOR)。换言之,短语A“或”B旨在表示A、B或者A和B两者。
[0020]随着诸如机器学习、人工智能应用、加密货币相关应用和数字信号处理(DSP)应用之类的各种应用变得越来越普遍,越来越期望以更高效的方式执行与这些应用相关联的各种运算。例如,可能期望改变(例如,减少)用于执行这些运算中的一个或多个运算的电路量,以便为执行一个或多个其他运算的电路提供空间。类似地,可能期望减少用于执行与这些应用相关联的运算的时间量。换言之,期望以较低延时的方式执行这些运算,例如,以使运算能够被更快地执行。记住这一点,当前描述的技术涉及减少与模块化乘法运算相关联的延时以及减少用于执行模块化乘法运算的电路量。例如,模块化乘法运算可以由集成电路设备(包括可编程逻辑器件,例如,FPGA、专用标准产品(ASSP)和专用集成电路(ASIC))在用于机器学习、人工智能应用以及加密货币相关应用时执行。如下面讨论的,包含于集成电路设备上的电路(例如,DSP电路、乘法电路、加法电路)以减少与执行这些运算相关联的延时同时还减少用于执行这些运算的集成电路设备上的面积量的方式执行模块化乘法。
[0021]作为更具体的示例,集成电路设备可以执行与可变延迟函数(VDF)相关联的数学运算,VDF可以用作在诸如加密货币或区块链应用之类的密码应用中使用的工作证明。一般而言,工作证明是其中一方(例如,进行操作的或与用于加密货币应用的一个或多个集成电路设备相关联的一方)向其他人(加密货币交易的一方或多方)证明已经花费了一定数量的计算努力的证明。因此,VDF具有一定程度上最小的延时。也即,VDF不能被加速或并行化超过最知名的实现方式。因此,确定VDF的最佳(例如,最优或最快)实现方式将是有益的。在许多情况下,模块化乘法和其他数学运算(例如,加法)由集成电路设备中包括的电路作为确定这种实现方式的一部分而执行。因此,通过以较低延时的方式执行模块化乘法(以及作为执行模块化乘法的一部分执行的运算),集成电路设备能够确定用于VDF的最佳(例如,最优或更快)解决方案,从而增强集成电路设备在用于加密货币和区块链应用等时的性能。
[0022]考虑到上述情况,图1是可以使用乘法器电路来实现算术运算(例如,模块化乘法)
的系统10的框图。设计者可能期望在集成电路设备12(例如,现场可编程门阵列(FPGA)或专用集成电路(ASIC))上实现功能,例如,本公开的大精度算术运算。在一些情况下,设计者可以指定要实现的高级程序,例如,OpenCL程序,这可以使设计者能够在没有低级硬件描述语言(例如,Verilog或VHDL)的特定知识的情况下更高效且容易地提供编程指令来为集成电路设备12配置可编程逻辑单元的集合。例如,因为OpenCL与诸如C++之类的其他高级编程语言非常相似,因此相比于被要求学习不熟悉的低级硬件描述语言以实现集成电路设备12中的新功能的设计者,熟悉此类编程语言的可编程逻辑的设计者可能具有减少的学习曲线。
[0023]设计者可以使用设计软件14来实现他们的高级设计,设计软件14例如为INTEL CORPORATION的版本。设计软件14可以使用编译器16将高级程序转换为较低级描述。编译器16可以向主机18和集成电路设本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种集成电路设备,包括:乘法器电路,所述乘法器电路被配置为通过将多个值相乘来确定子积的多个列,其中,所述子积的多个列包括多个子积,并且所述多个列中的每一列包括所述多个子积中的一个或多个子积;以及加法器电路,所述加法器电路被配置为确定多个和,其中,所述多个和中的每个和是所述多个列中的一列之和,其中,所述加法器电路的与所述多个列中的第一列相关联的第一部分被配置为接收与所述第一列相关联的第一值、与所述第一列相关联的第二值以及与所述多个列中不同于所述第一列的第二列相关联的第三值,其中,所述第三值是由所述加法器电路的与所述第二列相关联的第二部分生成的进位输出值。2.根据权利要求1所述的集成电路设备,包括一个或多个查找表,所述一个或多个查找表被配置为根据所述多个和的一部分生成多个模值。3.根据权利要求2所述的集成电路设备,包括第二加法器电路,所述第二加法器电路被配置为确定所述多个模值之和。4.根据权利要求3所述的集成电路设备,其中:所述多个模值包括:第一模值,所述第一模值与所述多个列中具有所述多个子积的第一部分的第三列相关联;第二模值,所述第二模值与所述多个列中具有所述多个子积的第二部分的第四列相关联,其中,所述多个子积的第二部分包括比所述多个子积的第一部分更多的子积;第三模值,所述第三模值与所述多个列中具有所述多个子积的第三部分的第五列相关联,其中,所述多个子积的第三部分包括比所述多个子积的第二部分更多的子积;以及第四模值,所述第四模值与所述多个列中具有所述多个子积的第四部分的第六列相关联,其中,所述多个子积的第四部分包括比所述多个子积的第三部分更多的子积;并且所述第二加法器电路被配置为在所述第三模值、所述第四模值或两者被确定之前确定所述第一模值与所述第二模值的第一和。5.根据权利要求4所述的集成电路设备,其中,所述第二加法器电路被配置为:在确定所述第一和之后,确定所述第三模值与所述第四模值的第二和;以及在确定所述第二和之后,确定所述第一和与所述第二和的第三和。6.根据权利要求1

5中任一项所述的集成电路设备,其中,所述加法器电路的第一部分包括:三元加法器电路,所述三元加法器电路被配置为将所述第一值的第一部分、所述第二值的第二部分以及所述第三值相加,其中,所述第一值的第一部分、所述第二值的第二部分以及所述第三值各自包括第一数量的比特;压缩器电路,所述压缩器电路通信地耦合到所述三元加法器电路,其中,所述压缩器电路被配置为接收所述第一值的第一剩余部分和所述第二值的第二剩余部分,其中,所述第一值的第一剩余部分和所述第二值的第二剩余部分各自包括第二数量的比特,其中,比特的第二数量大于比特的第一数量;以及二元加法器电路,所述二元加法器电路通信地耦合到所述压缩器电路,其中,所述二元加法器电路被配置为输出所述第一值的第一剩余部分与所述第二值的第二剩余部分之和。
7.根据权利要求6所述的集成电路设备,其中:所述压缩器电路被配置为左移所述第二值的第二剩余部分的比特;并且所述二元加法器电路被配置为接收由所述三元加法器电路生成的第二进位输出值。8.根据权利要求1

5中任一项所述的集成电路设备,其中,所述集成电路设备包括现场可编程门阵列(FPGA)。9.根据权利要求8所述的集成电路设备,其中,所述乘法器电路包括所述FPGA的一个或多个数字信号处理(...

【专利技术属性】
技术研发人员:M
申请(专利权)人:英特尔公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1