1.一种能用于执行具有±A*B±C的形式的融合乘积-累加运算的微处理器,其中A、B与C为输入运算元,该微处理器包含:
输入运算元分析器电路,用以确定A、B与/或C的值是否符合用于对C与A和B的部分乘积执行连带累加运算的满足条件;
第一指令执行单元,用以将A与B相乘,并在A、B与/或C的值符合用于对C与A和B的部分乘积执行连带累加运算的满足条件时,针对A和B的部分乘积连带累加C;以及
第二指令执行单元,用以在A、B与/或C的值不符合用于对C与A和B的部分乘积执行连带累加运算的满足条件时,单独地将C与A和B的乘积相累加,
其中,该第一指令执行单元和该第二指令执行单元均为独立地对指令进行解码和操作的原子单元。
2.根据权利要求1所述的微处理器,其中,该第一指令执行单元为乘法器,该乘法器用以执行相乘指令,并执行该融合乘积-累加运算的至少第一部分。
3.根据权利要求1所述的微处理器,其中,该第二指令执行单元为加法器,该加法器用以执行相加与相减指令,并执行该融合乘积-累加运算的至少第二部分。
4.根据权利要求1所述的微处理器,其中,与C连带累加的满足条件为:C的绝对值接近A与B的该乘积的绝对值,而能够进行块消去,其中,块消去是指,在与C加总时,消去A与B的乘积的一个或多个最重要位。
5.根据权利要求1所述的微处理器,其中,A、B与C呈现为指数,且与C连带累加的满足条件为:A与B的指数的加总减去C的指数经任一指数偏移值调整后大于或等于负一。
6.根据权利要求1所述的微处理器,其中:A、B与C为浮点运算元,各该浮点运算元包含符号指标、尾数与指数;
第一满足条件为,A与B的指数的加总减去C的指数大于或等于负一;
第二满足条件为,C的绝对值接近A与B的该乘积的绝对值,而能够进行块消去,其中块消去是指,在与C加总时,消去A与B的乘积的一个或多个最重要位。
7.一种能用于执行具有±A*B±C的形式的融合乘积-累加运算的微处理器,其中A、B与C为输入运算元,该微处理器包含:
输入运算元分析器电路,用以确定A、B与/或C的值是否符合用于对C与A和B的部分乘积执行连带累加运算的满足条件;
第一指令执行单元,用以将A与B相乘,并在A、B与/或C的值符合用于对C与A和B的部分乘积执行连带累加运算的满足条件时,针对A和B的部分乘积连带累加C;以及
第二指令执行单元,用以在A、B与/或C的值不符合用于对C与A和B的部分乘积执行连带累加运算的满足条件时,单独地将C与A和B的乘积相累加,
其中,A、B与C呈现为尾数,其中该第一指令执行单元具有小于3m位的加总数据路径,该加总数据路径具有额外的m位黏收集器,m表示用以呈现A与B的尾数的位数。
8.根据权利要求7所述的微处理器,其中,该连带累加的满足条件为:相对应于A与B的乘积的数值,C具有能让C排列于加总树内而不需将C的最重要位移位至该加总树内为A与B的部分乘积累加而提供的最重要位的左方的数值。
9.一种能用于执行具有±A*B±C的形式的融合乘积-累加运算的微处理器,其中A、B与C为输入运算元,该微处理器包含:
输入运算元分析器电路,用以确定A、B与/或C的值是否符合用于对C与A和B的部分乘积执行连带累加运算的满足条件;
第一指令执行单元,用以将A与B相乘,并在A、B与/或C的值符合用于对C与A和B的部分乘积执行连带累加运算的满足条件时,针对A和B的部分乘积连带累加C;以及
第二指令执行单元,用以在A、B与/或C的值不符合用于对C与A和B的部分乘积执行连带累加运算的满足条件时,单独地将C与A和B的乘积相累加,
其中:A、B与C是浮点运算元,各该浮点运算元包含符号指标、尾数与指数;
与C连带累加的第一部分条件为:A与B的指数的加总减去C的指数大于或等于负二;
与C连带累加的第二部分条件为:将C与A和B的乘积累加会产生有效减法的结果;以及
该第一部分条件与该第二部分条件一并构成与C连带累加的满足条件。
10.根据权利要求9所述的微处理器,其中,若是|R|小于|A*B|和|C|的较大者,就会产生该有效减法的结果,其中R为融合乘积-累加运算的结果。
11.一种用于微处理器的方法,该方法用以执行具有±A*B±C的形式的融合乘积-累加运算,其中,A、B与C为输入运算元,该方法包含:
确定A、B与/或C的值是否符合用于对C与A和B的部分乘积执行连带累加运算的满足条件;
在第一指令执行单元内,将A与B相乘,并在A、B与/或C的值符合用于连带累加运算的满足条件时,将C与A和B的部分乘积相累加;以及
在第二指令执行单元内,在A、B与/或C的值不符合用于连带累加运算的满足条件时,将C与A和B的乘积相累加,
其中,该第一指令执行单元和该第二指令执行单元均为独立地对指令进行解码和操作的原子单元。
12.根据权利要求11所述的方法,其中,该第一指令执行单元是乘法器,该乘法器用以执行相乘指令,并执行该融合乘积-累加运算的至少第一部分。
13.根据权利要求11所述的方法,其中,该第二指令执行单元是加法器,该加法器用以执行相加与相减指令,并执行该融合乘积-累加运算的至少第二部分。
14.一种能用于执行具有±A*B±C的形式的乘积-累加运算的微处理器,其中,A、B与C为输入运算元,该微处理器包含:
第一指令执行单元,用以执行乘法运算以计算出A和B的乘积,并用以选择性地执行将C与A和B的该乘积相累加的累加运算;
第二指令执行单元,用以将C与A和B的该乘积相累加;
输入运算元分析器电路,用以分析A、B与C的值以确定是令该第一指令执行单元连带执行该乘法运算与该累加运算,还是令该第一指令执行单元与该第二指令执行单元分别执行该乘法运算与该累加运算;以及
控制逻辑,用以依据该输入运算元分析器电路的确认结果,使该第一指令执行单元于该第一指令执行单元内连带执行该乘法运算与该累加运算,或使该第一指令执行单元与该第二指令执行单元分别执行该乘法运算与该累加运算,
其中,该第一指令执行单元和该第二指令执行单元均为独立地对指令进行解码和操作的原子单元。
15.根据权利要求14所述的微处理器,其中,该第一指令执行单元是乘法单元,该第二指令执行单元是加法单元。
16.根据权利要求14所述的微处理器,还包含共享存储器,该共享存储器用以储存该第一指令执行单元所产生的乘积-累加运算的结果,并用以将该结果提供给该第二指令执行单元。
17.根据权利要求14所述的微处理器,还包含转送总线,该转送总线用以将该第一指令执行单元所产生的乘积-累加运算的结果转送至该第二指令执行单元。
18.根据权利要求14所述的微处理器,其中,该第一指令执行单元用以在执行乘积-累加运算的至少一部分时产生未经舍入的输出结果,而在执行一般的乘法运算时产生舍入后的输出结果。
19.根据权利要求14所述的微处理器,还包含由该第一指令执行单元与该第二指令执行单元共享的存储器,所共享的存储器用以储存该第一指令执行单元所执行的乘法运算与选择性累加运算的结果,且所共享的存储器使该第二指令执行单元能在该乘法运算与选择性累加运算的该结果被储存后以及在该第二指令执行单元执行该乘积-累加运算的任一部分前,执行多个无关的运算。
20.一种能用于执行具有±A*B±C的形式的乘积-累加运算的微处理器,其中,A、B与C为输入运算元,该微处理器包含:
第一指令执行单元,用以执行乘法运算以计算出A和B的乘积,并用以选择性地执行将C与A和B的该乘积相累加的累加运算;
第二指令执行单元,用以将C与A和B的该乘积相累加;
输入运算元分析器电路,用以分析A、B与C的值以确定是令该第一指令执行单元连带执行该乘法运算与该累加运算,还是令该第一指令执行单元与该第二指令执行单元分别执行该乘法运算与该累加运算;以及
控制逻辑,用以响应该输入运算元分析器电路,以使该第一指令执行单元于该第一指令执行单元内连带执行该乘法运算与该累加运算,或是使该第一指令执行单元与该第二指令执行单元分别执行该乘法运算与该累加运算,
其中,该第二指令执行单元用以在执行乘积-累加运算的至少一部分时,接收未经舍入的结果作为输入运算元,并接收多个舍入指标以产生算术正确的舍入后的结果,而在执行一般的乘法运算时,不接收多个舍入指标。