【技术实现步骤摘要】
本申请是申请日为2015年06月24日、申请号为201580003388.3(国际申请号PCT/US2015/037508)、专利技术名称为“使用第一和第二子运算的分路融合乘积-累加运算”的申请的分案申请。相关申请本申请主张申请日为2014年7月2日的美国专利第62/020,246号临时申请“Non-AtomicSplit-PathFusedMultiply-AccumulatewithRoundingcache”与申请日为2015年6月10日的美国专利第62/173,808号临时申请“Non-AtomicTemporally-SplitFusedMultiply-AccumulateApparatusandOperationUsingaCalculationControlIndicatorCacheandProvidingaSplit-PathHeuristicforPerformingaFusedFMAOperationandGeneratingaStandardFormatIntermediateResult”的优先权。该些优先权案的全文并入本申请以供参考。本申请还关联于下列与本申请同时申请的申请:标题为“TemporallySplitFusedMultiply-AccumulateOperation”的美国第14/748,870号申请;标题为“CalculationControlIndicatorCache”的美国第14/748,924号申请;标题为“CalculationControlIndicatorCache”的美国第14/748,956号申请 ...
【技术保护点】
一种微处理器中的方法,用以执行±A*B±C形式的融合乘积‑累加运算,其中A、B与C为输入运算元,且在该C累加至该A与该B的乘积前并不进行舍入运算,该方法包括:将该融合乘积‑累加运算分路为由一或多个指令执行单元执行的一第一乘积‑累加子运算与一第二乘积‑累加子运算;在该第一乘积‑累加子运算中,选择将该A与该B的部分乘积‑累加至该C、或是仅累加该A与该B的部分乘积,并产生未舍入非冗余总和;在该第二乘积‑累加子运算中,如果该第一乘积‑累加子运算在产生该未舍入非冗余总和时未乘积累加该C,则该C以该未舍入非冗余总和的方式乘积累加;以及在该第二乘积‑累加子运算中,产生该融合乘积‑累加运算的一最终舍入结果。
【技术特征摘要】
2014.07.02 US 62/020,246;2015.06.10 US 62/173,8081.一种微处理器中的方法,用以执行±A*B±C形式的融合乘积-累加运算,其中A、B与C为输入运算元,且在该C累加至该A与该B的乘积前并不进行舍入运算,该方法包括:将该融合乘积-累加运算分路为由一或多个指令执行单元执行的一第一乘积-累加子运算与一第二乘积-累加子运算;在该第一乘积-累加子运算中,选择将该A与该B的部分乘积-累加至该C、或是仅累加该A与该B的部分乘积,并产生未舍入非冗余总和;在该第二乘积-累加子运算中,如果该第一乘积-累加子运算在产生该未舍入非冗余总和时未乘积累加该C,则该C以该未舍入非冗余总和的方式乘积累加;以及在该第二乘积-累加子运算中,产生该融合乘积-累加运算的一最终舍入结果。2.根据权利要求1所述的方法,其中,该未舍入非冗余总和立即提供至该第二乘积-累加子运算,以使该第二乘积-累加子运算能以最小的延误开始运算。3.根据权利要求1所述的方法,其中,该融合乘积-累加运算至少由二指令执行单元所执行,该方法还包括:在该第一与第二乘积-累加子运算间,将该未舍入非冗余总和自一第一指令执行单元传送至一第二指令执行单元。4.根据权利要求1所述的方法,还包括:在该第一与第二乘积-累加子运算间,将该未舍入非冗余总和储存至存储器中,以使一或多个指令执行单元执行其他与该乘积-累加运算无关的运算。5.根据权利要求4所述的方法,其中,该存储器设置于该一或多个指令执行单元之外,并且包含用以储存该未舍入非冗余总和的一结果储存空间、以及一与该结果储存空间不同且用以储存多个运算控制指标的运算控制指标储存空间,该多个运算控制指标指明该第二乘积-累加子运算中的接续运算该如何进行。6.根据权利要求5所述的方法,其中,该结果储存空间耦接至一结果总线,该结果总线为该一或多个指令执行单元所共用。7.根据权利要求5所述的方法,其中,该结果储存空间为一重排缓冲器。8.根据权利要求6所述的方法,其中,该运算控制指标储存空间为一快取,该快取并未耦接至该结果总线、且仅由被设定为用以执行该第一或第二乘积-累加子运算的该执行单元所共享。9.根据权利要求5所述的方法,还包括将该多个运算控制指标储存至存储器的步骤,其中,该运算控制指标指明该第二乘积-累加子运算中的接续运算该如何进行。10.根据权利要求5所述的方法,还包括将该多个运算控制指标自一第一指令执行单元传送至一第二指令执行单元的步骤;其中,该运算控制指标指明该第二乘积-累加子运算中的接续运算该如何进行。11.根据权利要求10所述的方法,其中,该运算控制指标包括一指标,用以指明具有该C的一累加运算是否发生于该第一乘积-累加子运算中。12.根据权利要求10所述的方法,其中,该运算控制指标包括用以自该未舍入非冗余总和产生一算术上正确舍入结果的指标。13.根据权利要求1所述的方法,还包括在该第一与第二乘积-累加子运算间,利用该一或多个指令执行单元执行其他运算。14.根据权利要求1所述的方法,其中,该一或多个指令执行单元包括一设定为执行该第一乘积-累加子运算的乘法器、以及一设定为执行该第二乘积-累加子运算的加法器。15.根据权利要求1所述的方法,其中,该一或多个指令执行单元包括一乘积-累加单元,该乘积-累加单元对应一第一乘积-累加指令而执行该第一乘积-累加子运算,且对应一第二乘积-累加指令而执行该第二乘积-累加子运算。16.一种用于执行一具有±A*B±C的形式的融合乘积-累加运算的微处理器,其中,A、B与C为输入运算元,且在该C累加至该A与该B的乘积前并不进行舍入运算,该微处理器包括:一或多个指令执行单元,设定为执行一融合乘积-累加运算的一第一乘积-累加子运算与一第二乘积-累加子运算;其中,在该第一乘积-累加子运算中,选择将该A与该B的部分乘积-累加至该C、或是仅累加该A与该B的部分乘积,再由此产生一未舍入非冗余总和;其中,在该第二乘积-累加子运算中,如果该第一乘积-累加子运算在产生该未舍入非冗余总和时未乘积累加该C,则该C条件式地乘积累加至该未舍入非冗余总和;以及其中,在该第二乘积-累加子运算中,从该C条件式地乘积累加的该未舍入非冗余总和产生该融合乘积-累加运算的一...
【专利技术属性】
技术研发人员:汤玛士·艾欧玛,
申请(专利权)人:上海兆芯集成电路有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。