基于静态配置数字电路的浮点数乘累加控制方法及系统转让专利
申请号 : CN202110707511.7
文献号 : CN113434113B
文献日 : 2022-03-11
发明人 : 马向华 , 边立剑 , 王文好
申请人 : 上海安路信息科技股份有限公司
摘要 :
权利要求 :
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作为所述浮点数加法器的第一输入值和第二输入值。
说明书 :
基于静态配置数字电路的浮点数乘累加控制方法及系统
技术领域
背景技术
还原过程和浮点数加法器的浮点数规格化分解和还原过程,但缺需要使用大量的硬件资源
构建独立的浮点数乘累加功能。
进行向量计算的方法的技术方案,但使用了大量的硬件资源构。
乘累加模块,实现了乘累加功能,但使用了大量的硬件资源构。
发明内容
累加器的最后一次加运算的运行周期,若判断所述乘累加器没有进入最后一次加运算状
态,则将所述乘法器的输出值作为所述浮点数加法器的第一输入值,将所述浮点数加法器
的输出值作为所述浮点数加法器的第二输入值;
运行周期与任意所述输入周期相同,则将所述浮点数加法器在最后一次加运算的运行周期
输出的数据作为寄存数据寄存到所述临时寄存器中;
运行周期与任意所述输出周期相同,则将所述临时寄存器中对应周期存储的数据作为所述
浮点数加法器的第一输入值,将所述浮点数加法器在最后一次加运算的运行周期输出的数
据作为所述浮点数加法器的第二输入值,若所述乘累加器的最后一次加运算的运行周期与
所有所述输出周期不相同,则将数值0作为所述浮点数加法器的第一输入值和第二输入值。
周期和所有输出周期,判断所述乘累加器的最后一次加运算的运行周期是否与任意所述输
入周期相同,若所述乘累加器的最后一次加运算的运行周期与任意所述输入周期相同,则
将所述浮点数加法器在最后一次加运算的运行周期输出的数据作为寄存数据寄存到所述
临时寄存器中,判断所述乘累加器的最后一次加运算的运行周期是否与任意所述输出周期
相同,若所述乘累加器的最后一次加运算的运行周期与任意所述输出周期相同,则将所述
临时寄存器中对应周期存储的数据作为所述浮点数加法器的第一输入值,将所述浮点数加
法器在最后一次加运算的运行周期输出的数据作为所述浮点数加法器的第二输入值,极大
的节约了硬件资源的使用。
括:
个数计算步骤,所述乘累加循环的输入数据个数计算步骤包括:
环的输入数据个数,i为大于1的自然数。其有益效果在于:便于计算乘累加循环的输入数据
个数。
间隔计算步骤,乘累加循环的有效数据间隔计算步骤包括:
加运算的运行周期计算步骤,所述乘累加循环的最后一次加运算的运行周期计算步骤包
括:
效果在于:便于计算乘累加循环的最后一次加运算的运行周期。
时寄存器的数据个数计算步骤,所述乘累加循环需要输入临时寄存器的数据个数计算步骤
包括:
器的数据个数。其有益效果在于:便于计算输入临时寄存器的数据个数。
输入周期计算步骤包括:
n为大于1的自然数;
循环第一个寄存数据的寄存周期;
便于计算寄存周期。
时寄存器的数据个数计算步骤,所述乘累加循环需要输出临时寄存器的数据个数计算步骤
包括:
其有益效果在于:便于计算输出临时寄存器的数据个数。
输出周期计算步骤包括:
于1的自然数;
便于计算输出周期。
寄存器,所述计算单元用于获取所述浮点数加法器的延迟,根据所述浮点数加法器的延迟
以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期;
所述判断单元用于判断所述乘累加器是否进入最后一次加运算状态,若判断所述乘累加器
进入最后一次加运算状态,则开始进行所述乘累加器的最后一次加运算的周期计数,以得
到所述乘累加器的最后一次加运算的运行周期,若判断所述乘累加器没有进入最后一次加
运算状态,则将所述乘法器的输出值作为所述浮点数加法器的第一输入值,将所述浮点数
加法器的输出值作为所述浮点数加法器的第二输入值;所述判断单元得到所述乘累加器的
最后一次加运算的运行周期后,还用于判断所述乘累加器的最后一次加运算的运行周期是
否与任意所述输入周期相同,若所述乘累加器的最后一次加运算的运行周期与任意所述输
入周期相同,则将所述浮点数加法器在最后一次加运算的运行周期输出的数据作为寄存数
据寄存到所述临时寄存器中;所述判断单元得到所述乘累加器的最后一次加运算的运行周
期后,还用于判断所述乘累加器的最后一次加运算的运行周期是否与任意所述输出周期相
同,若所述乘累加器的最后一次加运算的运行周期与任意所述输出周期相同,则将所述临
时寄存器中对应周期存储的数据作为所述浮点数加法器的第一输入值,将所述浮点数加法
器在最后一次加运算的运行周期输出的数据作为所述浮点数加法器的第二输入值,若所述
乘累加器的最后一次加运算的运行周期与所有所述输出周期不相同,则将数值0作为所述
浮点数加法器的第一输入值和第二输入值。
临时寄存器的所有输入周期和所有输入周期;所述判断单元用于判断所述乘累加器的最后
一次加运算的运行周期是否与任意所述输入周期相同,若所述乘累加器的最后一次加运算
的运行周期与任意所述输入周期相同,则将所述浮点数加法器在最后一次加运算的运行周
期输出的数据作为寄存数据寄存到所述临时寄存器中,所述判断单元还用于判断所述乘累
加器的最后一次加运算的运行周期是否与任意所述输出周期相同,若所述乘累加器的最后
一次加运算的运行周期与任意所述输出周期相同,则将所述临时寄存器中对应周期存储的
数据作为所述浮点数加法器的第一输入值,将所述浮点数加法器在最后一次加运算的运行
周期输出的数据作为所述浮点数加法器的第二输入值,若所述乘累加器的最后一次加运算
的运行周期与所有所述输出周期不相同,极大的节约了硬件资源的使用。
附图说明
具体实施方式
施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造
性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。除非另外定义,此处使
用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常
意义。本文中使用的“包括”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该
词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。
图1,所述基于静态配置数字电路的浮点数乘累加控制方法包括以下步骤:
述乘累加器的最后一次加运算的运行周期,若判断所述乘累加器没有进入最后一次加运算
状态,则将所述乘法器的输出值作为所述浮点数加法器的第一输入值,将所述浮点数加法
器的输出值作为所述浮点数加法器的第二输入值;
算的运行周期与任意所述输入周期相同,则将所述浮点数加法器在最后一次加运算的运行
周期输出的数据作为寄存数据寄存到所述临时寄存器中;
算的运行周期与任意所述输出周期相同,则将所述临时寄存器中对应周期存储的数据作为
所述浮点数加法器的第一输入值,将所述浮点数加法器在最后一次加运算的运行周期输出
的数据作为所述浮点数加法器的第二输入值,若所述乘累加器的最后一次加运算的运行周
期与所有所述输出周期不相同,则将数值0作为所述浮点数加法器的第一输入值和第二输
入值。步骤S3和步骤S4没有固定的先后顺序,也可以步骤S4在前,步骤S3在后。
骤包括:
数,ADD_DLY表示所述浮点数加法器的延迟,BLANK[1]表示第一次乘累加循环的有效数据间
隔,CYCLE_step[1]表示第一次乘累加循环的最后一次加运算的运行周期。
个数计算步骤,所述乘累加循环的输入数据个数计算步骤包括:
环的输入数据个数,i为大于1的自然数。
max次乘累加循环的输入数据个数。其中,step_max表示乘累加循环的最大次数,N[i]表示
第i次乘累加循环的输入数据个数,N[i‑1]表示第i‑1次乘累加循环的输入数据个数,N[i‑
1][0]表示第i‑1次乘累加循环的输入数据个数最低位的值,N[step_max]表示第step_max
次乘累加循环的输入数据个数,即最后一次乘累加循环的输入数据个数。
间隔计算步骤,乘累加循环的有效数据间隔计算步骤包括:
[step_max],以得到step_max次乘累加循环的有效数据间隔。其中,BLANK[i‑1]表示第i‑1
次乘累加循环的有效数据间隔,BLANK[step_max]表示第step_max次乘累加循环的有效数
据间隔,即最后一次乘累加循环的有效数据间隔。
加运算的运行周期计算步骤,所述乘累加循环的最后一次加运算的运行周期计算步骤包
括:
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次乘
累加循环的最后一次加运算的运行周期,即最后一次乘累加循环的最后一次加运算的运行
周期。
时寄存器的数据个数计算步骤,所述乘累加循环需要输入临时寄存器的数据个数计算步骤
包括:
器的数据个数。
存器的数据个数,其中,reg_in_num[1]表示第一次乘累加循环需要输入临时寄存器的数据
个数。
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次乘累加循环需要输入
临时寄存器的数据个数,即最后一次乘累加循环需要输入临时寄存器的数据个数。
输入周期计算步骤包括:
n为大于1的自然数;
循环第一个寄存数据的寄存周期;
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]个寄存数据的寄存周期,即第一次乘累加循环的最后一个寄存数据的寄存周期。
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[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]],以得到每一次乘累
加循环的每一个寄存数据的寄存周期。
时寄存器的数据个数计算步骤,所述乘累加循环需要输出临时寄存器的数据个数计算步骤
包括:
个数,reg_out_num[1]表示第一次乘累加循环需要输出临时寄存器的数据个数。
[3]、reg_out_num[4]·····reg_out_num[step_max]。其中,reg_out_num[i]表示第i
次乘累加循环需要输出临时寄存器的数据个数,reg_out_num[step_max]表示第step_max
次乘累加循环需要输出临时寄存器的数据个数,即最后一次乘累加循环需要输出临时寄存
器的数据个数。
输出周期计算步骤包括:
于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[3][1]·····step_reg_out[step_max][1]。其中,step_reg_out[i][1]
表示第i次乘累加循环第一个寄存数据的输出周期,step_reg_out[step_max][1]表示第
step_max次乘累加循环第一个寄存数据的输出周期,即最后一次乘累加循环第一个寄存数
据的输出周期。
[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]],以得到每一次乘累加循环的每一个寄存数据的输出周期。
示)和乘法器(图中未标示),所述浮点数乘累加控制系统100包括计算单元(图中未标示)、
判断单元101和临时寄存器102,所述计算单元用于获取所述浮点数加法器的延迟,根据所
述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输
入周期和所有输入周期;所述判断单元101用于判断所述乘累加器是否进入最后一次加运
算状态,若判断所述乘累加器进入最后一次加运算状态,则开始进行所述乘累加器的最后
一次加运算的周期计数,以得到所述乘累加器的最后一次加运算的运行周期,若判断所述
乘累加器没有进入最后一次加运算状态,则将所述乘法器的输出值作为所述浮点数加法器
的第一输入值,将所述浮点数加法器的输出值作为所述浮点数加法器的第二输入值;所述
判断单元101得到所述乘累加器的最后一次加运算的运行周期后,还用于判断所述乘累加
器的最后一次加运算的运行周期是否与任意所述输入周期相同,若所述乘累加器的最后一
次加运算的运行周期与任意所述输入周期相同,则将所述浮点数加法器在最后一次加运算
的运行周期输出的数据作为寄存数据寄存到所述临时寄存器中;所述判断单元101得到所
述乘累加器的最后一次加运算的运行周期后,还用于判断所述乘累加器的最后一次加运算
的运行周期是否与任意所述输出周期相同,若所述乘累加器的最后一次加运算的运行周期
与任意所述输出周期相同,则将所述临时寄存器中对应周期存储的数据作为所述浮点数加
法器的第一输入值,将所述浮点数加法器在最后一次加运算的运行周期输出的数据作为所
述浮点数加法器的第二输入值,若所述乘累加器的最后一次加运算的运行周期与所有所述
输出周期不相同,则将数值0作为所述浮点数加法器的第一输入值和第二输入值。
数,以得到所述乘累加器的最后一次加运算的运行周期,所述计数器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判断所述乘累加器没有进入最后一次加运算状态。
结果有效标志信息或结果无效标志信息,当输出所述结果有效标志信息时Mac_res_valid
=1,当输出所述结果无效标志信息时Mac_res_valid=0。
CYCLE_step[1]=7、CYCLE_step[2]=16、CYCLE_step[3]=27;
8、step_reg_in[2][2]=12、step_reg_in[3][1]=17,所有乘累加循环的所有寄存数据的
寄存周期的集合为reg_in{2、4、6、8、12、17};
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_cnt为CYCLE_step[step_max]时,即当last_cnt为27时,将last_cnt重置为0。
计数器向所述第二数据选择器发送的数据cnt为0时,所述第二数据选择器将所述浮点数加
法器的输出数据传输给所述浮点数加法器的第二输入端。
出数据作为第一输入值输送给所述浮点数加法器的第一输入端,若判断last_cnt在集合
reg_out{3、5、7、10、14、21}外,则将数值0作为第一输入值输送给所述浮点数加法器的第一
输入端。
输出数据存储到所述临时寄存器中。
中的数据作为第二输入值输送给所述浮点数加法器的第二输入端,若判断last_cnt在集合
reg_out{3、5、7、10、14、21}外,则将数值0作为第二输入值输送给所述浮点数加法器的第二
输入端。
果,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所示:
属于权利要求书中所述的本发明的范围和精神之内。而且,在此说明的本发明可有其它的
实施方式,并且可通过多种方式实施或实现。