用于执行点积运算的指令和逻辑的制作方法_6

文档序号:9304411阅读:来源:国知局
,直到对它们进行进一步操作为止。
[0076]图6B是根据一个实施例对单精度整数或浮点值执行点积操作的电路600b的框 图。该实施例的电路600b通过乘法器610b、612b将两个寄存器601b和605b的对应单精 度元素相乘,其结果可采用立即字段IMM8[7:4]由复用器615b、617b进行选择。作为备选 的方案,复用器615b、618b可选择零值而不是各元素的乘法运算的对应乘积。复用器615b、 618b选择的结果然后由加法器620b相加在一起,且相加的结果被存储在结果寄存器630b 的单元的任一个中,根据立即字段IMM8 [3:0]的值,所述结果寄存器采用复用器625b、627b 来选择来自加法器620b的对应和数结果。在一个实施例中,若和数结果没有被选择来存储 在结果单元中,则复用器625b-627b可选择零值来填充结果寄存器630b的单元。在其它实 施例中,更多加法器可用来产生各个乘积之和。此外,在一些实施例中,中间存储单元可用 来存储乘积或和数结果,直到对它们进行进一步操作为止。
[0077] 图7A是根据一个实施例执行DPPS指令的操作的伪码表示。图7A所示的伪码表 明,源寄存器("SRC")中在31-0位中存储的单精度浮点或整数值将与目标寄存器("DEST") 中在31-0位中存储的单精度浮点或整数值相乘,且仅当立即字段("IMM8 [4] ")中存储的立 即值等于"1"时,才将结果存储在临时寄存器("TEMPI")的31-0位中。否则,位存储单元 31-0可包含空值,如全零。
[0078] 图7A中还示出了伪码来表明,SRC寄存器中在63-32位中存储的单精度浮点或整 数值将与DEST寄存器中在63-32位中存储的单精度浮点或整数值相乘,且仅当立即字段 ("IMM8 [5] ")中存储的立即值等于" 1"时,才将结果存储在TEMPI寄存器的63-32位中。否 贝1J,位存储单元63-32可包含空值,如全零。
[0079] 类似地,图7A中还示出了伪码来表明,SRC寄存器中在95-64位中存储的单精度浮 点或整数值将与DEST寄存器中在95-64位中存储的单精度浮点或整数值相乘,且仅当立即 字段("IMM8 [6] ")中存储的立即值等于" 1"时,才将结果存储在TEMPI寄存器的95-64位 中。否则,位存储单元95-64可包含空值,如全零。
[0080] 最后,图7A中还示出了伪码来表明,SRC寄存器中在127-96位中存储的单精度浮 点或整数值将与DEST寄存器中在127-96位中存储的单精度浮点或整数值相乘,且仅当立 即字段("IMM8 [7]")中存储的立即值等于"1"时,才将结果存储在TEMPI寄存器的127-96 位中。否则,位存储单元127-96可包含空值,如全零。
[0081] 接下来,图7A示出TEMPI的31-0位被加到TEMPI的63-32位,且结果被存储到第 二临时寄存器("TEMP2")的位存储单元31-0中。类似地,TEMPI的95-64位被加到TEMPI 的127-96位,且结果被存储到第三临时寄存器("TEMP3")的位存储单元31-0中。最后, TEMP2的31-0位被加到TEMP3的31-0位,且结果被存储到第四临时寄存器("TEMP4")的位 存储单元31-0中。
[0082] 在一个实施例中,临时寄存器中存储的数据然后被存储到DEST寄存器中。要存储 数据的DEST寄存器中的具体位置可取决于DPPS指令中的其它字段,如IMM8 [x]中的字段。 具体来说,图7A说明,在一个实施例中,TEMP4的31-0位在IMM8 [0]等于" 1"时存储到DEST 位存储单元31-0中,在IMM8[1]等于"1"时存储到DEST位存储单元63-32中,在IMM8 [2] 等于" 1"时存储到DEST位存储单元95-64中,或者在IMM8 [3]等于" 1"时存储到DEST位 存储单元127-96中。否则,对应的DEST位存储单元将包含空值,如全零。
[0083] 图7B是根据一个实施例执行DPH)指令的操作的伪码表示。图7B所示的伪码表 明,源寄存器("SRC")中在63-0位中存储的单精度浮点或整数值将与目标寄存器("DEST") 中在63-0位中存储的单精度浮点或整数值相乘,且仅当立即字段("IMM8 [4] ")中存储的立 即值等于"1"时,才将结果存储在临时寄存器("TEMPI")的63-0位中。否则,位存储单元 63-0可包含空值,如全零。
[0084] 图7B中还示出了伪码来表明,SRC寄存器中在127-64位中存储的单精度浮点或 整数值将与DEST寄存器中在127-64位中存储的单精度浮点或整数值相乘,且仅当立即字 段("IMM8 [5] ")中存储的立即值等于" 1"时,才将结果存储在TEMPI寄存器的127-64位中。 否则,位存储单元127-64可包含空值,如全零。
[0085] 接下来,图7B示出,TEMPI的63-0位被加到TEMPI的127-64位,且结果被存储 到第二临时寄存器("TEMP2")的位存储单元63-0中。在一个实施例中,临时寄存器中存储 的数据然后可存储到DEST寄存器中。要存储数据的DEST寄存器中的具体位置可取决于 DPPS指令中的其它字段,如IMM8[x]中的字段。具体地说,图7A示出,在一个实施例中,若 IMM8 [0]等于" 1",则TEMP2的63-0位存储到DEST位存储单元63-0中,或者若IMM8 [1]等 于" 1",则TEMP2的63-0位存储在DEST位存储单元127-64中。否则,对应的DEST位存储 单元将包含空值,如全零。
[0086] 图7A和图7B中公开的操作只是可用于本发明的一个或多个实施例的操作的一种 表示。具体地说,图7A和图7B所示的伪码对应于按照具有128位寄存器的一个或多个处 理器体系结构所执行的操作。其它实施例可在具有任何大小的寄存器或者其它类型的存储 区的处理器体系结构中执行。此外,其它实施例可能不采用与图7A和图7B中所示的寄存 器完全相同的寄存器。例如,在一些实施例中,不同数量的临时寄存器或者根本没有寄存器 可用来存储操作数。最后,本发明的实施例可采用任何数量的寄存器或数据类型在众多处 理器或处理核心之间来执行。
[0087] 这样,公开了用于执行点积操作的技术。虽然在附图中描述和示出了某些示范性 实施例,但是要理解,这些实施例只是对宽泛的发明的说明而不是限制,并且本发明不限于 所示及所述的具体构造和设置,因为本领域的技术人员在研究本公开之后可能会想到其它 各种修改。在例如成长迅速并且不易预见进一步发展的这样的技术领域中,通过实现技术 发展来推动,可在不背离本公开的原理或所附权利要求的范围的前提下,容易地对所公开 的实施例在设置和细节方面进行修改。
【主权项】
1. 一种处理器,包括: 指令预取部件,用于取出点积打包双精度(DPPD )浮点指令,所述点积打包双精度 (DPPD)浮点指令具有第一操作数、第二操作数以及8位立即操作数; 第一 128位XMM寄存器,用于存储第一操作数; 第二128位XMM寄存器,用于存储第二操作数; 解码部件,用于对由所述指令预取部件所取出的DPH)浮点指令进行解码; 调度部件,用于对所述DPH)浮点指令进行调度;以及 执行部件,用于基于所调度的DPro浮点指令对第一操作数和第二操作数执行点积操 作,其中每个操作数具有两个对应64位段,每个对应64位段用于存储对应打包双精度浮点 值,其中所述8位立即操作数的每个相应位5和位4用于选择所述对应打包双精度浮点值 的相应积,以便包含在所述点积操作中,从而生成点积结果,并且其中所述点积结果用于存 储在第一 128位XMM寄存器中。2. 如权利要求1所述的处理器硬件,其中,要根据所述8位立即操作数的位1和位O来 选择所述点积结果在所述第一 128位XMM寄存器中的存储。3. -种系统上芯片(SOC)硬件,其包括: 存储器控制器; 显示器控制器;以及 耦合到所述存储器控制器和所述显示器控制器的处理器,所述处理器包括: 指令预取部件,用于取出点积打包双精度(DPPD )浮点指令,所述点积打包双精度 (DPPD)浮点指令具有第一操作数、第二操作数以及8位立即操作数; 第一 128位XMM寄存器,用于存储第一操作数; 第二128位XMM寄存器,用于存储第二操作数; 解码部件,用于对由所述指令预取部件所取出的DPH)浮点指令进行解码; 调度部件,用于对所述DPH)浮点指令进行调度;以及 执行部件,用于基于所调度的DPro浮点指令对第一操作数和第二操作数执行点积操 作,其中每个操作数具有两个对应64位段,每个对应64位段用于存储对应打包双精度浮点 值,其中所述8位立即操作数的每个相应位5和位4用于选择所述对应打包双精度浮点值 的相应积,以便包含在所述点积操作中,从而生成点积结果,并且其中所述点积结果用于存 储在第一 128位XMM寄存器中。4. 如权利要求3所述的S0C,其中,要根据所述8位立即操作数的位1和位0来选择所 述点积结果在所述第一 128位XMM寄存器中的存储。5. 如权利要求3所述的S0C,进一步包括耦合到所述处理器的接口逻辑,所述接口逻辑 包括通用串行总线(USB)接口逻辑和输入/输出(I/O)接口逻辑。
【专利摘要】本发明涉及一种用于执行点积运算的指令和逻辑。本发明提供了用于执行点积操作的方法、装置和程序部件。在一个实施例中,装置包括执行第一指令的执行资源。响应第一指令,所述执行资源将等于至少两个操作数的点积的结果值存储到某个存储单元中。
【IPC分类】G06F7/544
【公开号】CN105022605
【申请号】CN201510348092
【发明人】R.佐哈, M.塞科尼, R.帕塔萨拉蒂, S.钦努帕蒂, M.布克斯顿, C.德西尔瓦
【申请人】英特尔公司
【公开日】2015年11月4日
【申请日】2007年9月20日
【公告号】CN101187861A, CN101187861B, CN102004628A, CN102004628B, CN102622203A, DE112007002101T5, US20080071851, US20130290392, US20140032624, US20140032881, WO2008036859A1
当前第6页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1