CN113434113B - 基于静态配置数字电路的浮点数乘累加控制方法及系统 - Google Patents

基于静态配置数字电路的浮点数乘累加控制方法及系统 Download PDF

Info

Publication number
CN113434113B
CN113434113B CN202110707511.7A CN202110707511A CN113434113B CN 113434113 B CN113434113 B CN 113434113B CN 202110707511 A CN202110707511 A CN 202110707511A CN 113434113 B CN113434113 B CN 113434113B
Authority
CN
China
Prior art keywords
multiply
accumulate
cycle
input
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110707511.7A
Other languages
English (en)
Other versions
CN113434113A (zh
Inventor
马向华
边立剑
王文好
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Anlu Information Technology Co ltd
Original Assignee
Shanghai Anlu Information Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Anlu Information Technology Co ltd filed Critical Shanghai Anlu Information Technology Co ltd
Priority to CN202110707511.7A priority Critical patent/CN113434113B/zh
Publication of CN113434113A publication Critical patent/CN113434113A/zh
Application granted granted Critical
Publication of CN113434113B publication Critical patent/CN113434113B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/485Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487Multiplying; Dividing
    • G06F7/4876Multiplying

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Nonlinear Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

本发明提供了一种基于静态配置数字电路的浮点数乘累加控制方法,应用于乘累加器,所述乘累加器包括浮点数加法器,包括计算临时寄存器的所有输入周期和所有输出周期,若所述乘累加器的最后一次加运算的运行周期与任意所述输入周期相同,将所述浮点数加法器在最后一次加运算的运行周期输出的数据作为寄存数据寄存到所述临时寄存器中,若所述乘累加器的最后一次加运算的运行周期与任意所述输出周期相同,将所述临时寄存器中对应周期存储的数据作为所述浮点数加法器的第一输入值,将所述浮点数加法器在最后一次加运算的运行周期输出的数据作为所述浮点数加法器的第二输入值,极大的节约了硬件资源的使用。本发明还提供了一种浮点数乘累加控制系统。

Description

基于静态配置数字电路的浮点数乘累加控制方法及系统
技术领域
本发明涉及浮点数乘累加器技术领域,尤其涉及一种基于静态配置数字电路的浮点数乘累加控制方法及系统。
背景技术
目前在设计浮点数的乘累加功能时,大部分设计倾向于将浮点数乘法器和浮点数累加器分解、重组实现,形成独立的完整乘累加模块,其带来的好处是减少乘法器的规格化还原过程和浮点数加法器的浮点数规格化分解和还原过程,但缺需要使用大量的硬件资源构建独立的浮点数乘累加功能。
公开号为CN108694038A的中国专利公开了一种专用处理块中的混合精度浮点运算电路,公开了混合精度的浮点数的乘法器、浮点数加法器实现过程以及通过级联的模式进行向量计算的方法的技术方案,但使用了大量的硬件资源构。
公开号为CN111767025A的中国专利公开了一种包括乘累加器的芯片、终端及浮点运算的控制方法,通过对浮点数的乘法器和浮点数加法器进行拆分和重组,形成一个新的乘累加模块,实现了乘累加功能,但使用了大量的硬件资源构。
因此,有必要提供一种新型的基于静态配置数字电路的浮点数乘累加控制方法及系统以解决现有技术中存在的上述问题。
发明内容
本发明的目的在于提供一种基于静态配置数字电路的浮点数乘累加控制方法及系统,节约了硬件资源的使用。
为实现上述目的,本发明的所述基于静态配置数字电路的浮点数乘累加控制方法,应用于乘累加器,所述乘累加器包括浮点数加法器,包括以下步骤:
获取所述浮点数加法器的延迟,根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输出周期;
判断所述乘累加器是否进入最后一次加运算状态,若判断所述乘累加器进入最后一次加运算状态,则开始进行所述乘累加器的最后一次加运算的周期计数,以得到所述乘累加器的最后一次加运算的运行周期,若判断所述乘累加器没有进入最后一次加运算状态,则将所述乘法器的输出值作为所述浮点数加法器的第一输入值,将所述浮点数加法器的输出值作为所述浮点数加法器的第二输入值;
得到所述乘累加器的最后一次加运算的运行周期后,判断所述乘累加器的最后一次加运算的运行周期是否与任意所述输入周期相同,若所述乘累加器的最后一次加运算的运行周期与任意所述输入周期相同,则将所述浮点数加法器在最后一次加运算的运行周期输出的数据作为寄存数据寄存到所述临时寄存器中;
得到所述乘累加器的最后一次加运算的运行周期后,判断所述乘累加器的最后一次加运算的运行周期是否与任意所述输出周期相同,若所述乘累加器的最后一次加运算的运行周期与任意所述输出周期相同,则将所述临时寄存器中对应周期存储的数据作为所述浮点数加法器的第一输入值,将所述浮点数加法器在最后一次加运算的运行周期输出的数据作为所述浮点数加法器的第二输入值,若所述乘累加器的最后一次加运算的运行周期与所有所述输出周期不相同,则将数值0作为所述浮点数加法器的第一输入值和第二输入值。
所述基于静态配置数字电路的浮点数乘累加控制方法的有益效果在于:根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输出周期,判断所述乘累加器的最后一次加运算的运行周期是否与任意所述输入周期相同,若所述乘累加器的最后一次加运算的运行周期与任意所述输入周期相同,则将所述浮点数加法器在最后一次加运算的运行周期输出的数据作为寄存数据寄存到所述临时寄存器中,判断所述乘累加器的最后一次加运算的运行周期是否与任意所述输出周期相同,若所述乘累加器的最后一次加运算的运行周期与任意所述输出周期相同,则将所述临时寄存器中对应周期存储的数据作为所述浮点数加法器的第一输入值,将所述浮点数加法器在最后一次加运算的运行周期输出的数据作为所述浮点数加法器的第二输入值,极大的节约了硬件资源的使用。
优选地,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期包括初始化步骤,所述初始化步骤包括:
将第一次乘累加循环的输入数据个数初始化为所述浮点数加法器的延迟与数值1的和;
将第一次乘累加循环的有效数据间隔初始化为数值1;
将第一次乘累加循环的最后一次加运算的运行周期初始化为与所述浮点数加法器的延迟相同的值。
进一步优选地,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括乘累加循环的输入数据个数计算步骤,所述乘累加循环的输入数据个数计算步骤包括:
将第i-1次乘累加循环的输入数据个数除以数值2以得到第一过程值,然后将所述第一过程值与第i-1次乘累加循环的输入数据个数最低位的值相加,以得到第i次乘累加循环的输入数据个数,i为大于1的自然数。其有益效果在于:便于计算乘累加循环的输入数据个数。
进一步优选地,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括乘累加循环的有效数据间隔计算步骤,乘累加循环的有效数据间隔计算步骤包括:
将第i-1次乘累加循环的有效数据间隔与数值2相加,以得到第i次乘累加循环的有效数据间隔。其有益效果在于:便于计算乘累加循环的有效数据间隔。
进一步优选地,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括乘累加循环的最后一次加运算的运行周期计算步骤,所述乘累加循环的最后一次加运算的运行周期计算步骤包括:
将第i-1次乘累加循环的输入数据个数最低位的值与第i-1次乘累加循环的最后一次加运算的运行周期相乘,以得到第二过程值;
将数值1减去所述第二过程值,再与数值1相加,以得到第三过程值;
将所述第三过程值、所述浮点数加法器的延迟以及第i-1次乘累加循环的最后一次加运算的运行周期相加,以得到第i次乘累加循环的最后一次加运算的运行周期。其有益效果在于:便于计算乘累加循环的最后一次加运算的运行周期。
进一步优选地,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括乘累加循环需要输入临时寄存器的数据个数计算步骤,所述乘累加循环需要输入临时寄存器的数据个数计算步骤包括:
将所述第一次乘累加循环的输入数据个数除以数值2,以得到第四过程值;
将所述第四过程值与所述第一次乘累加循环的输入数据个数最低位的值相加,然后减去数值1,以得到第一次乘累加循环需要输入临时寄存器的数据个数;
将第i次乘累加循环的输入数据个数除以数值2,以得到第五过程值;
将第五过程值减去第i-1次乘累加循环的输入数据个数最低位的值,然后与第i次乘累加循环的输入数据个数最低位的值相加,以得到第i次乘累加循环需要输入临时寄存器的数据个数。其有益效果在于:便于计算输入临时寄存器的数据个数。
进一步优选地,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括输入周期计算步骤,所述输入周期计算步骤包括:
预设第一次乘累加循环的第一个寄存数据的寄存周期为2;
将第一次乘累加循环的第n-1个寄存数据的寄存周期与所述第一次乘累加循环的有效数据间隔相加后,再加数值1,以得到第一次乘累加循环的第n个寄存数据的寄存周期,n为大于1的自然数;
将第i-1次乘累加循环的有效数据间隔与数值1相加,以得到第六过程值;
将所述第六过程值与第i-1次乘累加循环的输入数据个数最低位的值相乘,然后在与数值1和第i-1次乘累加循环的最后一次加运算的运行周期相加,以得到第i次乘累加循环第一个寄存数据的寄存周期;
将第i次乘累加循环第n-1个寄存数据的寄存周期、第i次乘累加循环的有效数据间隔和数值1相加,以得到第i次乘累加循环第n个寄存数据的寄存周期。其有益效果在于:便于计算寄存周期。
进一步优选地,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括乘累加循环需要输出临时寄存器的数据个数计算步骤,所述乘累加循环需要输出临时寄存器的数据个数计算步骤包括:
将所述第一次乘累加循环的输入数据个数除以数值2,然后再减去数值1,以得到第一次乘累加循环需要输出临时寄存器的数据个数;
将第i次乘累加循环的输入数据个数除以数值2,然后再与第i-1次乘累加循环的输入数据个数最低位的值相加,以得到第i次乘累加循环需要输出临时寄存器的数据个数。其有益效果在于:便于计算输出临时寄存器的数据个数。
进一步优选地,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括输出周期计算步骤,所述输出周期计算步骤包括:
预设第一次乘累加循环的第一个寄存数据的输出周期为3;
将第一次乘累加循环的第n-1个寄存数据的输出周期、所述第一次乘累加循环的有效数据间隔和数值1相加,以得到第一次乘累加循环的第n个寄存数据的输出周期,n为大于1的自然数;
将数值1减去第i-1次乘累加循环的输入数据个数最低位的值,以得到第七过程值;
将第i-1次乘累加循环的有效数据间隔与数值1相加,以得到第八过程值;
将所述第七过程值和所述第八过程值相乘,然后与数值1和第i-1次乘累加循环的最后一次加运算的运行周期相加,以得到第i次乘累加循环第一个寄存数据的输出周期;
将第i次乘累加循环第n-1个寄存数据的输出周期、第i次乘累加循环的有效数据间隔和数值1相加,以得到第i次乘累加循环第n个寄存数据的输出周期。其有益效果在于:便于计算输出周期。
本发明还提供了一种浮点数乘累加控制系统,用于驱动乘累加器,所述乘累加器包括浮点数加法器和乘法器,所述浮点数乘累加控制系统包括计算单元、判断单元和临时寄存器,所述计算单元用于获取所述浮点数加法器的延迟,根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期;所述判断单元用于判断所述乘累加器是否进入最后一次加运算状态,若判断所述乘累加器进入最后一次加运算状态,则开始进行所述乘累加器的最后一次加运算的周期计数,以得到所述乘累加器的最后一次加运算的运行周期,若判断所述乘累加器没有进入最后一次加运算状态,则将所述乘法器的输出值作为所述浮点数加法器的第一输入值,将所述浮点数加法器的输出值作为所述浮点数加法器的第二输入值;所述判断单元得到所述乘累加器的最后一次加运算的运行周期后,还用于判断所述乘累加器的最后一次加运算的运行周期是否与任意所述输入周期相同,若所述乘累加器的最后一次加运算的运行周期与任意所述输入周期相同,则将所述浮点数加法器在最后一次加运算的运行周期输出的数据作为寄存数据寄存到所述临时寄存器中;所述判断单元得到所述乘累加器的最后一次加运算的运行周期后,还用于判断所述乘累加器的最后一次加运算的运行周期是否与任意所述输出周期相同,若所述乘累加器的最后一次加运算的运行周期与任意所述输出周期相同,则将所述临时寄存器中对应周期存储的数据作为所述浮点数加法器的第一输入值,将所述浮点数加法器在最后一次加运算的运行周期输出的数据作为所述浮点数加法器的第二输入值,若所述乘累加器的最后一次加运算的运行周期与所有所述输出周期不相同,则将数值0作为所述浮点数加法器的第一输入值和第二输入值。
所述浮点数乘累加控制系统的有益效果在于:所述计算单元用于获取所述浮点数加法器的延迟,根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期;所述判断单元用于判断所述乘累加器的最后一次加运算的运行周期是否与任意所述输入周期相同,若所述乘累加器的最后一次加运算的运行周期与任意所述输入周期相同,则将所述浮点数加法器在最后一次加运算的运行周期输出的数据作为寄存数据寄存到所述临时寄存器中,所述判断单元还用于判断所述乘累加器的最后一次加运算的运行周期是否与任意所述输出周期相同,若所述乘累加器的最后一次加运算的运行周期与任意所述输出周期相同,则将所述临时寄存器中对应周期存储的数据作为所述浮点数加法器的第一输入值,将所述浮点数加法器在最后一次加运算的运行周期输出的数据作为所述浮点数加法器的第二输入值,若所述乘累加器的最后一次加运算的运行周期与所有所述输出周期不相同,极大的节约了硬件资源的使用。
附图说明
图1为本发明基于静态配置数字电路的浮点数乘累加控制方法的流程图;
图2为本发明浮点数乘累加控制系统的结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。除非另外定义,此处使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本文中使用的“包括”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。
针对现有技术存在的问题,本发明的实施例提供了一种基于静态配置数字电路的浮点数乘累加控制方法,应用于乘累加器,所述乘累加器包括浮点数加法器和乘法器。参照图1,所述基于静态配置数字电路的浮点数乘累加控制方法包括以下步骤:
S1:获取所述浮点数加法器的延迟,根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输出周期;
S2:判断所述乘累加器是否进入最后一次加运算状态,若判断所述乘累加器进入最后一次加运算状态,则开始进行所述乘累加器的最后一次加运算的周期计数,以得到所述乘累加器的最后一次加运算的运行周期,若判断所述乘累加器没有进入最后一次加运算状态,则将所述乘法器的输出值作为所述浮点数加法器的第一输入值,将所述浮点数加法器的输出值作为所述浮点数加法器的第二输入值;
S3:得到所述乘累加器的最后一次加运算的运行周期后,判断所述乘累加器的最后一次加运算的运行周期是否与任意所述输入周期相同,若所述乘累加器的最后一次加运算的运行周期与任意所述输入周期相同,则将所述浮点数加法器在最后一次加运算的运行周期输出的数据作为寄存数据寄存到所述临时寄存器中;
S4:得到所述乘累加器的最后一次加运算的运行周期后,判断所述乘累加器的最后一次加运算的运行周期是否与任意所述输出周期相同,若所述乘累加器的最后一次加运算的运行周期与任意所述输出周期相同,则将所述临时寄存器中对应周期存储的数据作为所述浮点数加法器的第一输入值,将所述浮点数加法器在最后一次加运算的运行周期输出的数据作为所述浮点数加法器的第二输入值,若所述乘累加器的最后一次加运算的运行周期与所有所述输出周期不相同,则将数值0作为所述浮点数加法器的第一输入值和第二输入值。步骤S3和步骤S4没有固定的先后顺序,也可以步骤S4在前,步骤S3在后。
一些实施例中,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期包括初始化步骤,所述初始化步骤包括:
将第一次乘累加循环的输入数据个数初始化为所述浮点数加法器的延迟与数值1的和;
将第一次乘累加循环的有效数据间隔初始化为数值1;
将第一次乘累加循环的最后一次加运算的运行周期初始化为与所述浮点数加法器的延迟相同的值。
一些具体实施例中,所述初始化步骤中,通过公式N[1]=ADD_DLY+1、BLANK[1]=1和CYCLE_step[1]=ADD_DLY实现初始化。其中,N[1]表示第一次乘累加循环的输入数据个数,ADD_DLY表示所述浮点数加法器的延迟,BLANK[1]表示第一次乘累加循环的有效数据间隔,CYCLE_step[1]表示第一次乘累加循环的最后一次加运算的运行周期。
一些实施例中,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括乘累加循环的输入数据个数计算步骤,所述乘累加循环的输入数据个数计算步骤包括:
将第i-1次乘累加循环的输入数据个数除以数值2以得到第一过程值,然后将所述第一过程值与第i-1次乘累加循环的输入数据个数最低位的值相加,以得到第i次乘累加循环的输入数据个数,i为大于1的自然数。
一些具体实施例中,所述乘累加循环的输入数据个数计算步骤中,通过公式N[i]=N[i-1]/2+N[i-1][0]依次计算N[2]、N[3]、N[4]·····N[step_max],以得到step_max次乘累加循环的输入数据个数。其中,step_max表示乘累加循环的最大次数,N[i]表示第i次乘累加循环的输入数据个数,N[i-1]表示第i-1次乘累加循环的输入数据个数,N[i-1][0]表示第i-1次乘累加循环的输入数据个数最低位的值,N[step_max]表示第step_max次乘累加循环的输入数据个数,即最后一次乘累加循环的输入数据个数。
一些实施例中,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括乘累加循环的有效数据间隔计算步骤,乘累加循环的有效数据间隔计算步骤包括:
将第i-1次乘累加循环的有效数据间隔与数值2相加,以得到第i次乘累加循环的有效数据间隔。
一些具体实施例中,所述乘累加循环的输入数据个数计算步骤中,通过公式BLANK[i]=BLANK[i-1]+2依次计算BLANK[2]、BLANK[3]、BLANK[4]、BLANK[5]·····BLANK[step_max],以得到step_max次乘累加循环的有效数据间隔。其中,BLANK[i-1]表示第i-1次乘累加循环的有效数据间隔,BLANK[step_max]表示第step_max次乘累加循环的有效数据间隔,即最后一次乘累加循环的有效数据间隔。
一些实施例中,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括乘累加循环的最后一次加运算的运行周期计算步骤,所述乘累加循环的最后一次加运算的运行周期计算步骤包括:
将第i-1次乘累加循环的输入数据个数最低位的值与第i-1次乘累加循环的最后一次加运算的运行周期相乘,以得到第二过程值;
将数值1减去所述第二过程值,再与数值1相加,以得到第三过程值;
将所述第三过程值、所述浮点数加法器的延迟以及第i-1次乘累加循环的最后一次加运算的运行周期相加,以得到第i次乘累加循环的最后一次加运算的运行周期。
一些具体实施例中,所述乘累加循环的输入数据个数计算步骤中,通过公式CYCLE_step[i]=ADD_DLY+(1-N[i-1][0])×(BLANK[i-1]+1)+CYCLE_step[i-1]依次计算CYCLE_step[2]、CYCLE_step[3]、CYCLE_step[4]、CYCLE_step[5]·····CYCLE_step[step_max],以得到step_max次乘累加循环的最后一次加运算的运行周期。其中,CYCLE_step[i]表示第i次乘累加循环的最后一次加运算的运行周期,CYCLE_step[i-1]表示第i-1次乘累加循环的最后一次加运算的运行周期,CYCLE_step[step_max]表示第step_max次乘累加循环的最后一次加运算的运行周期,即最后一次乘累加循环的最后一次加运算的运行周期。
一些实施例中,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括乘累加循环需要输入临时寄存器的数据个数计算步骤,所述乘累加循环需要输入临时寄存器的数据个数计算步骤包括:
将所述第一次乘累加循环的输入数据个数除以数值2,以得到第四过程值;
将所述第四过程值与所述第一次乘累加循环的输入数据个数最低位的值相加,然后减去数值1,以得到第一次乘累加循环需要输入临时寄存器的数据个数;
将第i次乘累加循环的输入数据个数除以数值2,以得到第五过程值;
将第五过程值减去第i-1次乘累加循环的输入数据个数最低位的值,然后与第i次乘累加循环的输入数据个数最低位的值相加,以得到第i次乘累加循环需要输入临时寄存器的数据个数。
一些具体实施例中,所述乘累加循环需要输入临时寄存器的数据个数计算步骤中,通过公式reg_in_num[1]=N[1]/2+N[1][0]-1计算第一次乘累加循环需要输入临时寄存器的数据个数,其中,reg_in_num[1]表示第一次乘累加循环需要输入临时寄存器的数据个数。
又一些聚义实施例中,所述乘累加循环需要输入临时寄存器的数据个数计算步骤中,通过公式reg_in_num[i]=N[i]/2-N[i-1][0]+N[i][0]依次计算reg_in_num[2]、reg_in_num[3]、reg_in_num[4]·····reg_in_num[step_max],以得到step_max次乘累加循环需要输入临时寄存器的数据个数。其中,reg_in_num[i]表示第i次乘累加循环需要输入临时寄存器的数据个数,reg_in_num[step_max]表示第step_max次乘累加循环需要输入临时寄存器的数据个数,即最后一次乘累加循环需要输入临时寄存器的数据个数。
一些实施例中,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括输入周期计算步骤,所述输入周期计算步骤包括:
预设第一次乘累加循环的第一个寄存数据的寄存周期为2;
将第一次乘累加循环的第n-1个寄存数据的寄存周期与所述第一次乘累加循环的有效数据间隔相加后,再加数值1,以得到第一次乘累加循环的第n个寄存数据的寄存周期,n为大于1的自然数;
将第i-1次乘累加循环的有效数据间隔与数值1相加,以得到第六过程值;
将所述第六过程值与第i-1次乘累加循环的输入数据个数最低位的值相乘,然后在与数值1和第i-1次乘累加循环的最后一次加运算的运行周期相加,以得到第i次乘累加循环第一个寄存数据的寄存周期;
将第i次乘累加循环第n-1个寄存数据的寄存周期、第i次乘累加循环的有效数据间隔和数值1相加,以得到第i次乘累加循环第n个寄存数据的寄存周期。
一些具体实施例中,所述输入周期计算步骤通过公式step_reg_in[1][n]=step_reg_in[1][n-1]+(BLANK[1]+1)依次计算step_reg_in[1][2]、step_reg_in[1][n]、step_reg_in[1][3]····step_reg_in[1][reg_in_num[1]],以得到第一次乘累加循环的reg_in_num[1]个寄存数据的寄存周期。其中,step_reg_in[1][n]表示第一次乘累加循环的第n个寄存数据的寄存周期,step_reg_in[1][n-1]表示第一次乘累加循环的第n-1个寄存数据的寄存周期,step_reg_in[1][reg_in_num[1]]表示第一次乘累加循环的第reg_in_num[1]个寄存数据的寄存周期,即第一次乘累加循环的最后一个寄存数据的寄存周期。
又一些具体实施例中,所述输入周期计算步骤通过公式step_reg_in[i][1]=N[i-1][0]×(BLANK[i-1]+1)+1+CYCLE_step[i-1]依次计算step_reg_in[2][1]、step_reg_in[3][1]、step_reg_in[4][1]·····step_reg_in[step_max][1],以得到step_max次乘累加循环的第一个寄存数据的寄存周期。其中,step_reg_in[i][1]表示第i次乘累加循环的第一个寄存数据的寄存周期,step_reg_in[step_max][1]表示第step_max次乘累加循环的第一个寄存数据的寄存周期,即最后一次乘累加循环的第一个寄存数据的寄存周期。
另一些具体实施例中,所述输入周期计算步骤通过公式Step_reg_in[i][n]=step_reg_in[i][n-1]+BLANK[i]+1依次计算Step_reg_in[2][2]、Step_reg_in[2[3]、Step_reg_in[2][4]·······Step_reg_in[2][reg_in_num[2]],Step_reg_in[3][2]、Step_reg_in[3][3]、Step_reg_in[3][4]·······Step_reg_in[3][reg_in_num[3]],Step_reg_in[step_max][2]、Step_reg_in[step_max][3]、Step_reg_in[step_max][4]·····Step_reg_in[step_max][reg_in_num[step_max]],以得到每一次乘累加循环的每一个寄存数据的寄存周期。
一些实施例中,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括乘累加循环需要输出临时寄存器的数据个数计算步骤,所述乘累加循环需要输出临时寄存器的数据个数计算步骤包括:
将所述第一次乘累加循环的输入数据个数除以数值2,然后再减去数值1,以得到第一次乘累加循环需要输出临时寄存器的数据个数;
将第i次乘累加循环的输入数据个数除以数值2,然后再与第i-1次乘累加循环的输入数据个数最低位的值相加,以得到第i次乘累加循环需要输出临时寄存器的数据个数。
一些具体实施例中,所述乘累加循环需要输出临时寄存器的数据个数计算步骤中通过公式reg_out_num[1]=N[1]/2–1计算第一次乘累加循环需要输出临时寄存器的数据个数,reg_out_num[1]表示第一次乘累加循环需要输出临时寄存器的数据个数。
又一些具体实施例中,所述乘累加循环需要输出临时寄存器的数据个数计算步骤中通过公式reg_out_num[i]=N[i]/2+N[i-1][0]依次计算reg_out_num[2]、reg_out_num[3]、reg_out_num[4]·····reg_out_num[step_max]。其中,reg_out_num[i]表示第i次乘累加循环需要输出临时寄存器的数据个数,reg_out_num[step_max]表示第step_max次乘累加循环需要输出临时寄存器的数据个数,即最后一次乘累加循环需要输出临时寄存器的数据个数。
一些实施例中,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括输出周期计算步骤,所述输出周期计算步骤包括:
预设第一次乘累加循环的第一个寄存数据的输出周期为3;
将第一次乘累加循环的第n-1个寄存数据的输出周期、所述第一次乘累加循环的有效数据间隔和数值1相加,以得到第一次乘累加循环的第n个寄存数据的输出周期,n为大于1的自然数;
将数值1减去第i-1次乘累加循环的输入数据个数最低位的值,以得到第七过程值;
将第i-1次乘累加循环的有效数据间隔与数值1相加,以得到第八过程值;
将所述第七过程值和所述第八过程值相乘,然后与数值1和第i-1次乘累加循环的最后一次加运算的运行周期相加,以得到第i次乘累加循环第一个寄存数据的输出周期;
将第i次乘累加循环第n-1个寄存数据的输出周期、第i次乘累加循环的有效数据间隔和数值1相加,以得到第i次乘累加循环第n个寄存数据的输出周期。
一些具体实施例中,所述输出周期计算步骤通过公式step_reg_out[1][n]=step_reg_out[1][n-1]+(BLANK[1]+1)依次计算step_reg_out[1][2]、step_reg_out[1][3]、step_reg_out[1][4]·····step_reg_out[1][reg_out_num[1]]。其中,step_reg_out[1][n]表示第一次乘累加循环的第n个寄存数据的输出周期,step_reg_out[1][n-1]表示第一次乘累加循环的第n-1个寄存数据的输出周期,step_reg_out[1][reg_out_num[1]]表示第一次乘累加循环的第reg_out_num[1]个寄存数据的输出周期,即第一次乘累加循环的最后一个寄存数据的输出周期。
又一些具体实施例中,所述输出周期计算步骤通过公式step_reg_out[i][1]=(1-N[i-1][0])×(BLANK[i-1]+1)+1+CYCLE_step[i-1]依次计算step_reg_out[2][1]、step_reg_out[3][1]·····step_reg_out[step_max][1]。其中,step_reg_out[i][1]表示第i次乘累加循环第一个寄存数据的输出周期,step_reg_out[step_max][1]表示第step_max次乘累加循环第一个寄存数据的输出周期,即最后一次乘累加循环第一个寄存数据的输出周期。
另一些实施例中,所述输出周期计算步骤通过公式Step_reg_out[i][n]=step_reg_out[i][n-1]+BLANK[i]+1依次计算Step_reg_out[2][2]、Step_reg_out[2][3]·····Step_reg_out[2][reg_out_num[2]],Step_reg_out[3][2]、Step_reg_out[3][3]·····Step_reg_out[3][reg_out_num[3]],Step_reg_out[step_max][2]、Step_reg_out[step_max][3]·····Step_reg_out[step_max][reg_out_num[step_max]],以得到每一次乘累加循环的每一个寄存数据的输出周期。
图2为本发明一些实施例中浮点数乘累加控制系统的结构框图。参照图2,所述浮点数乘累加控制系统100用于驱动乘累加器,所述乘累加器包括浮点数加法器(图中未标示)和乘法器(图中未标示),所述浮点数乘累加控制系统100包括计算单元(图中未标示)、判断单元101和临时寄存器102,所述计算单元用于获取所述浮点数加法器的延迟,根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期;所述判断单元101用于判断所述乘累加器是否进入最后一次加运算状态,若判断所述乘累加器进入最后一次加运算状态,则开始进行所述乘累加器的最后一次加运算的周期计数,以得到所述乘累加器的最后一次加运算的运行周期,若判断所述乘累加器没有进入最后一次加运算状态,则将所述乘法器的输出值作为所述浮点数加法器的第一输入值,将所述浮点数加法器的输出值作为所述浮点数加法器的第二输入值;所述判断单元101得到所述乘累加器的最后一次加运算的运行周期后,还用于判断所述乘累加器的最后一次加运算的运行周期是否与任意所述输入周期相同,若所述乘累加器的最后一次加运算的运行周期与任意所述输入周期相同,则将所述浮点数加法器在最后一次加运算的运行周期输出的数据作为寄存数据寄存到所述临时寄存器中;所述判断单元101得到所述乘累加器的最后一次加运算的运行周期后,还用于判断所述乘累加器的最后一次加运算的运行周期是否与任意所述输出周期相同,若所述乘累加器的最后一次加运算的运行周期与任意所述输出周期相同,则将所述临时寄存器中对应周期存储的数据作为所述浮点数加法器的第一输入值,将所述浮点数加法器在最后一次加运算的运行周期输出的数据作为所述浮点数加法器的第二输入值,若所述乘累加器的最后一次加运算的运行周期与所有所述输出周期不相同,则将数值0作为所述浮点数加法器的第一输入值和第二输入值。
参照图2,所述判断单元101包括计数器1011、第一数据选择器1012、第二数据选择器1013和寄存器输入判断单元1014,所述计数器1011的输入端用于接收Last信号以启动计数,以得到所述乘累加器的最后一次加运算的运行周期,所述计数器1011的输出端与所述第一数据选择器1012的第一输入端、所述寄存器输入判断单元1014的第一输入端和所述第二数据选择器的第一输入端连接,所述第一数据选择器1012的第二输入端用于与所述乘法器的输出端连接,以接收数据mul_res,所述第一数据选择器1012的第三输入端、所述寄存器输入判断单元1014的第二输入端和所述第二数据选择器1013的第二输入端均用于与所述浮点数加法器的输出端连接,以接收数据add_res,所述第一数据选择器1012的输出端与所述浮点数加法器的第一输入端连接,用于向所述浮点数加法器传输第一输入值add_a,所述寄存器输入判断单元1014的输出端与所述临时寄存器102的输入端连接,所述临时寄存器102的输出端与所述第二数据选择器1013的第三输入端连接,所述第二数据选择器1013的输出与所述浮点数加法器的第二输入端连接,用于向所述浮点数加法器传输第二输入值add_b。其中,Last信号为一次乘累加最终阶段的标志信号,即最后一组数据进行加计算的标志信号,Mac_res为乘累加计算最终输出的结果数据,若所述计数器1011接收到Last信号,所述判断单元101判断所述乘累加器进入最后一次加运算状态,若所述所述计数器1011没有接收到Last信号,所述判断单元101判断所述乘累加器没有进入最后一次加运算状态。
一些实施例中,所述浮点数乘累加控制系统100还包括结果有效标志生成单元103,所述结果有效标志生成单元103的输入端与所述计数器1011的输出端连接,用于输出结果有效标志信息或结果无效标志信息,当输出所述结果有效标志信息时Mac_res_valid=1,当输出所述结果无效标志信息时Mac_res_valid=0。
一些具体实施例中,假设所述浮点数加法器的延迟为7,则ADD_DLY=7,则可以得到N[1]=8、N[2]=4、N[3]=2、BLANK[1]=1、BLANK[2]=3、BLANK[3]=5、step_max=3、CYCLE_step[1]=7、CYCLE_step[2]=16、CYCLE_step[3]=27;
然后计算得到reg_in_num[1]=3、reg_in_num[2]=2、reg_in_num[3]=1;step_reg_in[1][1]=2、step_reg_in[1][2]=4、step_reg_in[1][3]=6、step_reg_in[2][1]=8、step_reg_in[2][2]=12、step_reg_in[3][1]=17,所有乘累加循环的所有寄存数据的寄存周期的集合为reg_in{2、4、6、8、12、17};
然后计算得到reg_out_num[1]=3、reg_out_num[2]=2、reg_out_num[3]=1;step_reg_out[1][1]=3、step_reg_out[1][2]=5、step_reg_out[1][3]=7、step_reg_out[2][1]=10、step_reg_out[2][2]=14、step_reg_out[3][1]=21,所有乘累加循环的所有寄存数据的输出周期的集合为reg_out{3、5、7、10、14、21}。
一些实施例中,在Last_flag信号到来之前,所述计数器输出数据cnt,此时cnt为0,当Last信号到来之后,所述计数器输出数据last_cnt,此时cnt为1,并处于自增状态,直至当last_cnt为CYCLE_step[step_max]时,即当last_cnt为27时,将last_cnt重置为0。
一些实施例中,当所述计数器向所述第一数据选择器发送的数据cnt为0时,所述第一数据选择器将所述乘法器输出的数据传输给所述浮点数加法器的第一输入端;当所述计数器向所述第二数据选择器发送的数据cnt为0时,所述第二数据选择器将所述浮点数加法器的输出数据传输给所述浮点数加法器的第二输入端。
一些具体实施例中,当所述计数器向所述第一数据选择器发送的数据last_cnt大于0时,若判断last_cnt在集合reg_out{3、5、7、10、14、21}内,则将所述浮点数加法器的输出数据作为第一输入值输送给所述浮点数加法器的第一输入端,若判断last_cnt在集合reg_out{3、5、7、10、14、21}外,则将数值0作为第一输入值输送给所述浮点数加法器的第一输入端。
一些具体实施例中,当所述计数器向所述寄存器输入判断单元发送的数据last_cnt大于0时,若判断last_cnt在集合reg_in{2、4、6、8、12、17}内,则将所述浮点数加法器的输出数据存储到所述临时寄存器中。
一些具体实施例中,当所述计数器向所述第二数据选择器发送的数据last_cnt大于0时,若判断last_cnt在集合reg_out{3、5、7、10、14、21}内,则将存储到所述临时寄存器中的数据作为第二输入值输送给所述浮点数加法器的第二输入端,若判断last_cnt在集合reg_out{3、5、7、10、14、21}外,则将数值0作为第二输入值输送给所述浮点数加法器的第二输入端。
一些具体实施例中,在所述浮点数加法器的延迟为7,即ADD_DLY=7时,一组乘累加最终阶段的延迟情况,在所述计数器接收Last信号的第27个周期,输出有效的乘累加结果,temp_reg表示所述临时寄存器存储的数据,每一个周期分为7个阶段Dly_0、Dly_1、Dly_2、Dly_3、Dly_4、Dly_5和Dly_7,表格中temp_reg、Dly_0、Dly_1、Dly_2、Dly_3、Dly_4、Dly_5和Dly_7中的数字代表倒数第几个被累加的缓存数据,其所在行表示其缓存位置,每个周期中每个阶段的数据如表1所示:
表1
Figure BDA0003131932350000191
Figure BDA0003131932350000201
虽然在上文中详细说明了本发明的实施方式,但是对于本领域的技术人员来说显而易见的是,能够对这些实施方式进行各种修改和变化。但是,应理解,这种修改和变化都属于权利要求书中所述的本发明的范围和精神之内。而且,在此说明的本发明可有其它的实施方式,并且可通过多种方式实施或实现。

Claims (10)

1.一种基于静态配置数字电路的浮点数乘累加控制方法,应用于乘累加器,所述乘累加器包括浮点数加法器和乘法器,其特征在于,包括以下步骤:
获取所述浮点数加法器的延迟,根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输出周期;
判断所述乘累加器是否进入最后一次加运算状态,若判断所述乘累加器进入最后一次加运算状态,则开始进行所述乘累加器的最后一次加运算的周期计数,以得到所述乘累加器的最后一次加运算的运行周期,若判断所述乘累加器没有进入最后一次加运算状态,则将所述乘法器的输出值作为所述浮点数加法器的第一输入值,将所述浮点数加法器的输出值作为所述浮点数加法器的第二输入值;
得到所述乘累加器的最后一次加运算的运行周期后,判断所述乘累加器的最后一次加运算的运行周期是否与任意所述输入周期相同,若所述乘累加器的最后一次加运算的运行周期与任意所述输入周期相同,则将所述浮点数加法器在最后一次加运算的运行周期输出的数据作为寄存数据寄存到所述临时寄存器中;
得到所述乘累加器的最后一次加运算的运行周期后,判断所述乘累加器的最后一次加运算的运行周期是否与任意所述输出周期相同,若所述乘累加器的最后一次加运算的运行周期与任意所述输出周期相同,则将所述临时寄存器中对应周期存储的数据作为所述浮点数加法器的第一输入值,将所述浮点数加法器在最后一次加运算的运行周期输出的数据作为所述浮点数加法器的第二输入值,若所述乘累加器的最后一次加运算的运行周期与所有所述输出周期不相同,则将数值0作为所述浮点数加法器的第一输入值和第二输入值。
2.根据权利要求1所述的基于静态配置数字电路的浮点数乘累加控制方法,其特征在于,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期包括初始化步骤,所述初始化步骤包括:
将第一次乘累加循环的输入数据个数初始化为所述浮点数加法器的延迟与数值1的和;
将第一次乘累加循环的有效数据间隔初始化为数值1;
将第一次乘累加循环的最后一次加运算的运行周期初始化为与所述浮点数加法器的延迟相同的值。
3.根据权利要求2所述的基于静态配置数字电路的浮点数乘累加控制方法,其特征在于,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括乘累加循环的输入数据个数计算步骤,所述乘累加循环的输入数据个数计算步骤包括:
将第i-1次乘累加循环的输入数据个数除以数值2以得到第一过程值,然后将所述第一过程值与第i-1次乘累加循环的输入数据个数最低位的值相加,以得到第i次乘累加循环的输入数据个数,i为大于1的自然数。
4.根据权利要求3所述的基于静态配置数字电路的浮点数乘累加控制方法,其特征在于,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括乘累加循环的有效数据间隔计算步骤,乘累加循环的有效数据间隔计算步骤包括:
将第i-1次乘累加循环的有效数据间隔与数值2相加,以得到第i次乘累加循环的有效数据间隔。
5.根据权利要求4所述的基于静态配置数字电路的浮点数乘累加控制方法,其特征在于,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括乘累加循环的最后一次加运算的运行周期计算步骤,所述乘累加循环的最后一次加运算的运行周期计算步骤包括:
将第i-1次乘累加循环的输入数据个数最低位的值与第i-1次乘累加循环的最后一次加运算的运行周期相乘,以得到第二过程值;
将数值1减去所述第二过程值,再与数值1相加,以得到第三过程值;
将所述第三过程值、所述浮点数加法器的延迟以及第i-1次乘累加循环的最后一次加运算的运行周期相加,以得到第i次乘累加循环的最后一次加运算的运行周期。
6.根据权利要求5所述的基于静态配置数字电路的浮点数乘累加控制方法,其特征在于,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括乘累加循环需要输入临时寄存器的数据个数计算步骤,所述乘累加循环需要输入临时寄存器的数据个数计算步骤包括:
将所述第一次乘累加循环的输入数据个数除以数值2,以得到第四过程值;
将所述第四过程值与所述第一次乘累加循环的输入数据个数最低位的值相加,然后减去数值1,以得到第一次乘累加循环需要输入临时寄存器的数据个数;
将第i次乘累加循环的输入数据个数除以数值2,以得到第五过程值;
将第五过程值减去第i-1次乘累加循环的输入数据个数最低位的值,然后与第i次乘累加循环的输入数据个数最低位的值相加,以得到第i次乘累加循环需要输入临时寄存器的数据个数。
7.根据权利要求6所述的基于静态配置数字电路的浮点数乘累加控制方法,其特征在于,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括输入周期计算步骤,所述输入周期计算步骤包括:
预设第一次乘累加循环的第一个寄存数据的寄存周期为2;
将第一次乘累加循环的第n-1个寄存数据的寄存周期与所述第一次乘累加循环的有效数据间隔相加后,再加数值1,以得到第一次乘累加循环的第n个寄存数据的寄存周期,n为大于1的自然数;
将第i-1次乘累加循环的有效数据间隔与数值1相加,以得到第六过程值;
将所述第六过程值与第i-1次乘累加循环的输入数据个数最低位的值相乘,然后在与数值1和第i-1次乘累加循环的最后一次加运算的运行周期相加,以得到第i次乘累加循环第一个寄存数据的寄存周期;
将第i次乘累加循环第n-1个寄存数据的寄存周期、第i次乘累加循环的有效数据间隔和数值1相加,以得到第i次乘累加循环第n个寄存数据的寄存周期。
8.根据权利要求5所述的基于静态配置数字电路的浮点数乘累加控制方法,其特征在于,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括乘累加循环需要输出临时寄存器的数据个数计算步骤,所述乘累加循环需要输出临时寄存器的数据个数计算步骤包括:
将所述第一次乘累加循环的输入数据个数除以数值2,然后再减去数值1,以得到第一次乘累加循环需要输出临时寄存器的数据个数;
将第i次乘累加循环的输入数据个数除以数值2,然后再与第i-1次乘累加循环的输入数据个数最低位的值相加,以得到第i次乘累加循环需要输出临时寄存器的数据个数。
9.根据权利要求8所述的基于静态配置数字电路的浮点数乘累加控制方法,其特征在于,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括输出周期计算步骤,所述输出周期计算步骤包括:
预设第一次乘累加循环的第一个寄存数据的输出周期为3;
将第一次乘累加循环的第n-1个寄存数据的输出周期、所述第一次乘累加循环的有效数据间隔和数值1相加,以得到第一次乘累加循环的第n个寄存数据的输出周期,n为大于1的自然数;
将数值1减去第i-1次乘累加循环的输入数据个数最低位的值,以得到第七过程值;
将第i-1次乘累加循环的有效数据间隔与数值1相加,以得到第八过程值;
将所述第七过程值和所述第八过程值相乘,然后与数值1和第i-1次乘累加循环的最后一次加运算的运行周期相加,以得到第i次乘累加循环第一个寄存数据的输出周期;
将第i次乘累加循环第n-1个寄存数据的输出周期、第i次乘累加循环的有效数据间隔和数值1相加,以得到第i次乘累加循环第n个寄存数据的输出周期。
10.一种浮点数乘累加控制系统,用于通过如权利要求1~9任一项所述的基于静态配置数字电路的浮点数乘累加控制方法驱动乘累加器,所述乘累加器包括浮点数加法器和乘法器,其特征在于,所述浮点数乘累加控制系统包括计算单元、判断单元和临时寄存器,所述计算单元用于获取所述浮点数加法器的延迟,根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期;所述判断单元用于判断所述乘累加器是否进入最后一次加运算状态,若判断所述乘累加器进入最后一次加运算状态,则开始进行所述乘累加器的最后一次加运算的周期计数,以得到所述乘累加器的最后一次加运算的运行周期,若判断所述乘累加器没有进入最后一次加运算状态,则将所述乘法器的输出值作为所述浮点数加法器的第一输入值,将所述浮点数加法器的输出值作为所述浮点数加法器的第二输入值;所述判断单元得到所述乘累加器的最后一次加运算的运行周期后,还用于判断所述乘累加器的最后一次加运算的运行周期是否与任意所述输入周期相同,若所述乘累加器的最后一次加运算的运行周期与任意所述输入周期相同,则将所述浮点数加法器在最后一次加运算的运行周期输出的数据作为寄存数据寄存到所述临时寄存器中;所述判断单元得到所述乘累加器的最后一次加运算的运行周期后,还用于判断所述乘累加器的最后一次加运算的运行周期是否与任意所述输出周期相同,若所述乘累加器的最后一次加运算的运行周期与任意所述输出周期相同,则将所述临时寄存器中对应周期存储的数据作为所述浮点数加法器的第一输入值,将所述浮点数加法器在最后一次加运算的运行周期输出的数据作为所述浮点数加法器的第二输入值,若所述乘累加器的最后一次加运算的运行周期与所有所述输出周期不相同,则将数值0作为所述浮点数加法器的第一输入值和第二输入值。
CN202110707511.7A 2021-06-24 2021-06-24 基于静态配置数字电路的浮点数乘累加控制方法及系统 Active CN113434113B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110707511.7A CN113434113B (zh) 2021-06-24 2021-06-24 基于静态配置数字电路的浮点数乘累加控制方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110707511.7A CN113434113B (zh) 2021-06-24 2021-06-24 基于静态配置数字电路的浮点数乘累加控制方法及系统

Publications (2)

Publication Number Publication Date
CN113434113A CN113434113A (zh) 2021-09-24
CN113434113B true CN113434113B (zh) 2022-03-11

Family

ID=77754172

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110707511.7A Active CN113434113B (zh) 2021-06-24 2021-06-24 基于静态配置数字电路的浮点数乘累加控制方法及系统

Country Status (1)

Country Link
CN (1) CN113434113B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102109542A (zh) * 2009-12-25 2011-06-29 北京普源精电科技有限公司 一种可配置复用数字内插和数字滤波功能的数字示波器
CN109121435A (zh) * 2017-04-19 2019-01-01 上海寒武纪信息科技有限公司 处理装置和处理方法
CN109669666A (zh) * 2018-11-06 2019-04-23 清华大学 乘累加处理器
CN112463112A (zh) * 2020-11-19 2021-03-09 上海壁仞智能科技有限公司 点积累加方法及装置
CN112558921A (zh) * 2020-12-23 2021-03-26 广东高云半导体科技股份有限公司 一种实现互相关运算的装置及方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5966764B2 (ja) * 2012-08-22 2016-08-10 富士通株式会社 乗算装置及び乗算方法
JP6864224B2 (ja) * 2017-01-27 2021-04-28 富士通株式会社 プロセッサ、情報処理装置及びプロセッサの動作方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102109542A (zh) * 2009-12-25 2011-06-29 北京普源精电科技有限公司 一种可配置复用数字内插和数字滤波功能的数字示波器
CN109121435A (zh) * 2017-04-19 2019-01-01 上海寒武纪信息科技有限公司 处理装置和处理方法
CN109669666A (zh) * 2018-11-06 2019-04-23 清华大学 乘累加处理器
CN112463112A (zh) * 2020-11-19 2021-03-09 上海壁仞智能科技有限公司 点积累加方法及装置
CN112558921A (zh) * 2020-12-23 2021-03-26 广东高云半导体科技股份有限公司 一种实现互相关运算的装置及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
FPGA中适用于低位宽乘累加的DSP块;樊迪等;《复旦学报》;20201031;全文 *

Also Published As

Publication number Publication date
CN113434113A (zh) 2021-09-24

Similar Documents

Publication Publication Date Title
US6369725B1 (en) Method for binary to decimal conversion
US6601077B1 (en) DSP unit for multi-level global accumulation
US20210349692A1 (en) Multiplier and multiplication method
WO2010051298A2 (en) Instruction and logic for performing range detection
US20170169132A1 (en) Accelerated lookup table based function evaluation
CN111813371B (zh) 数字信号处理的浮点除法运算方法、系统及可读介质
JP7292297B2 (ja) 確率的丸めロジック
CN116248088A (zh) 数据延时方法、装置、电路、电子设备及可读存储介质
CN113434113B (zh) 基于静态配置数字电路的浮点数乘累加控制方法及系统
US20090083357A1 (en) Method and Apparatus Implementing a Floating Point Weighted Average Function
US10628126B2 (en) Architecture and instruction set to support integer division
US20130262819A1 (en) Single cycle compare and select operations
JP6646350B2 (ja) 様々な数値フォーマットのデータを用いてデータに基づく関数モデルを計算するためのモデル計算ユニット、および制御装置
CN116472700A (zh) 数据处理方法、装置、终端及存储介质
US20140351309A1 (en) Fma unit, in particular for utilization in a model computation unit for purely hardware-based computing of function models
US9804998B2 (en) Unified computation systems and methods for iterative multiplication and division, efficient overflow detection systems and methods for integer division, and tree-based addition systems and methods for single-cycle multiplication
US6725360B1 (en) Selectively processing different size data in multiplier and ALU paths in parallel
CN116225366B (zh) 应用于嵌入式流水cpu内核的乘法指令扩展方法及装置
JPH02205923A (ja) 演算プロセッサ
US20030046672A1 (en) Development system of microprocessor for application program including integer division or integer remainder operations
US20240037180A1 (en) Transient current management
JPH07141148A (ja) パイプライン並列乗算器
US5801978A (en) Overflow detection for integer-multiply instruction
CN105071928A (zh) 一种基于fpga的大素数暨大素数族的快速生成方法
CN118626048A (zh) 串行乘法器、数据处理方法、电子设备及介质

Legal Events

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