当前位置: 首页 > 专利查询>ARM有限公司专利>正文

数据处理装置中的乘-累加制造方法及图纸

技术编号:22244459 阅读:23 留言:0更新日期:2019-10-09 23:33
提供了一种数据处理装置、操作数据处理装置的方法、非暂态计算机可读存储介质、以及指令。指令指定第一源寄存器、第二源寄存器、以及一组N个累加寄存器。响应于该指令,生成控制信号,使得处理电路从第一源寄存器的内容中提取N个数据元素,执行N个数据元素中的每个数据元素与第二源寄存器的内容的乘法,并且将每个乘法的结果应用于一组N个累加寄存器中的相应的目标寄存器的内容。结果,以如下方式执行多个(N)乘法,该方式有效地提供了N倍于寄存器宽度的乘法器,但是不要求寄存器文件也变为N倍大。

Multiplication-Accumulation in Data Processing Device

【技术实现步骤摘要】
【国外来华专利技术】数据处理装置中的乘-累加
本公开涉及数据处理,更具体地涉及执行算术运算的数据处理装置。
技术介绍
可以要求数据处理装置执行算术运算。这些算术运算例如可以包括可以在各种情况中找到应用性的矩阵乘法运算。这种矩阵乘法的实现方式的一个特征在于吞吐量是非常计算受限的(而不是加载/存储受限的)。随着向量长度增加并且更多工作数据可以存储于寄存器文件中,这种情况进一步凸显。例如,对于包含32位浮点值的256位向量,每次向量加载可以执行6个向量乘法(需要至少32个寄存器)。为了增加矩阵乘法性能,可以增大向量长度,以给出相应的性能改善,但是更长的向量需要更大的寄存器文件并且可能需要更复杂的加载/存储单元(如果需要加载更大的向量的话)。添加更多的向量乘法功能单元也可以增加矩阵乘法性能,但是这会对处理器的其他部分提出高要求。例如,由于每个乘法/累加运算需要三个寄存器读取端口和一个寄存器写入端口,所以四个乘法/累加单元将需要总共十二个读取端口和四个写入端口。此外,前端解码和调度逻辑将需要能够一次处理多个指令,以便调配到这些功能单元(例如,可靠地为四个乘法器提供馈入而所需要的“五倍宽”问题),因此非常复杂。
技术实现思路
本文描述的至少一个示例提供了一种数据处理装置,包括:寄存器存储电路,具有多个寄存器,每个寄存器用于存储多个数据元素;解码器电路,响应于数据处理指令而生成控制信号,该数据处理指令在多个寄存器中指定:第一源寄存器、第二源寄存器、以及一组N个累加寄存器;以及处理电路,响应于控制信号而执行数据处理操作,该数据处理操作包括:从第一源寄存器的内容中提取N个数据元素,执行N个数据元素中的每个数据元素与第二源寄存器的内容的乘法,以及将每个乘法的结果应用于一组N个累加寄存器中的相应的目标寄存器的内容。本文描述的至少一个示例提供了一种操作数据处理装置的方法,包括:响应于数据处理指令生成控制信号,该数据处理指令在多个寄存器中指定:第一源寄存器、第二源寄存器、以及一组N个累加寄存器;以及响应于控制信号执行数据处理操作,该数据处理操作包括:从第一源寄存器的内容中提取N个数据元素,执行N个数据元素中的每个数据元素与第二源寄存器的内容的乘法,以及将每个乘法的结果应用于一组N个累加寄存器中的相应的目标寄存器的内容。本文描述的至少一个示例提供了一种计算机可读存储介质,以非暂态方式存储有包括至少一个数据处理指令的程序,该程序在由数据处理装置执行时使得:响应于数据处理指令生成控制信号,该数据处理指令在多个寄存器中指定:第一源寄存器、第二源寄存器、以及一组N个累加寄存器;以及响应于控制信号执行数据处理操作,该数据处理操作包括:从第一源寄存器的内容中提取N个数据元素,执行N个数据元素中的每个数据元素与第二源寄存器的内容的乘法,以及将每个乘法的结果应用于一组N个累加寄存器中的相应的目标寄存器的内容。本文描述的至少一个示例提供了一种数据处理装置,包括:用于在多个寄存器中的寄存器中存储多个数据元素的部件;用于响应于数据处理指令生成控制信号的部件,该数据处理指令在多个寄存器中指定:第一源寄存器、第二源寄存器、以及一组N个累加寄存器;以及用于响应于控制信号执行数据处理操作的部件,该数据处理操作包括:从第一源寄存器的内容中提取N个数据元素,执行N个数据元素中的每个数据元素与第二源寄存器的内容的乘法,以及将每个乘法的结果应用于一组N个累加寄存器中的相应的目标寄存器的内容。附图说明下面将参考附图中示出的实施例,仅通过示例进一步描述本专利技术,其中:图1示意性地示出了可以实现本申请的技术的各种示例的数据处理装置;图2示意性地示出了在一个实施例中对数据准备指令的使用;图3示意性地示出了图2的实施例的变形;图4A示意性地示出了示例数据处理指令,并且图4B示出了一个实施例中的数据处理指令的执行的实现方式;图5A和5B示意性地示出了在一些实施例中可以提供数据元素到运算单元的路由的两种方式;图6A和6B示意性地示出了参考图4A和4B讨论的数据处理指令的两个进一步示例及它们的执行;图7A示意性地示出了示例数据处理指令,并且图7B示出了在一个实施例中对数据处理指令的执行的实现方式;图8示出了根据一个实施例的方法采取的步骤序列;图9A示意性地示出了根据一个实施例的数据处理指令的执行,并且图9B示出了这种指令的两个示例;图10示意性地示出了图9B的数据处理指令的执行的实施例中的一些变形;图11示意性地示出了在一个实施例中利用两个128位源寄存器用于“点积”数据处理指令的更复杂示例;图12示出了图11的实施例的变形;图13示出了图11和12所示的示例的进一步变形;图14示出了根据一个实施例的方法采取的步骤序列;图15A示意性地示出了由一些实施例提供的数据处理指令的执行,并且图15B示出了对应的示例指令;图16以简单矩阵乘法运算的形式示出了图15A的实施例的示例虚拟化;图17示出了图15A所示的示例的更简单的变形,其中,从第一和第二源寄存器中的每个寄存器获得仅两个数据元素;图18示出了图15A所示的示例的另一变形,其中,从每个源寄存器提取更多数据元素;图19示出了数据处理指令的执行的示例实施例,给出了所执行的一些具体乘法运算的更多细节;图20示出了数据处理指令的执行的示例实施例,其中,两个源寄存器的内容被处理为包含两个独立通道中的数据元素;图21示出了根据一个实施例的方法采取的步骤序列;以及图22示出了根据一个实施例的虚拟机实现方式。具体实施方式本文描述的至少一个示例实施例提供了一种数据处理装置,包括:寄存器存储电路,具有多个寄存器,每个寄存器用于存储多个数据元素;解码器电路,响应于数据处理指令而生成控制信号,该数据处理指令在多个寄存器中指定:第一源寄存器、第二源寄存器、以及一组N个累加寄存器;以及处理电路,响应于控制信号而执行数据处理操作,该数据处理操作包括:从第一源寄存器的内容中提取N个数据元素,执行N个数据元素中的每个数据元素与第二源寄存器的内容的乘法,以及将每个乘法的结果应用于一组N个累加寄存器中的相应的目标寄存器的内容。因此,在数据处理装置中所提供的指令以及所提供的支持该指令的相应电路使得多(N)个乘法被以如下方式执行,该方式可以实际利用N倍于寄存器宽度的乘法器。另外,实现了N倍于寄存器的向量长度的计算密度而不需要使寄存器文件也变为N倍大。另外,由于源操作码被共享,所以这种方法仅使用一半读取端口即可实现N个乘法。例如,在实现四倍(N=4)乘法器时,本申请的技术实现了四个乘法,但是仅需要6个寄存器读取端口和4个写入端口(这是4个独立乘法器所需要的读取端口的一半)。另外,因为仅有一个指令而不是N个指令(对于每个乘法一个指令)需要解码和发布,所以该装置的解码和调度机制被简化。第二源寄存器的内容用在与N个数据元素中的每个数据元素的乘法中的方式可以改变,但是在一些实施例中,每个数据元素可以与其相应的部分相乘。另外,可以不同地配置从第一源寄存器的内容中对N个数据元素的提取,但是在一些实施例中,相同的数据元素被复制以提供N个数据元素。因此,在一些实施例中,处理电路包括数据元素操控电路,该数据元素操控电路响应于控制信号而提供从第一源寄存器提取的数据元素的多个实例,其中,执行乘法包括将数据元素本文档来自技高网...

【技术保护点】
1.一种数据处理装置,包括:寄存器存储电路,具有多个寄存器,每个寄存器用于存储多个数据元素;解码器电路,响应于数据处理指令而生成控制信号,所述数据处理指令在所述多个寄存器中指定:第一源寄存器、第二源寄存器、以及一组N个累加寄存器;以及处理电路,响应于所述控制信号而执行数据处理操作,该数据处理操作包括:从所述第一源寄存器的内容中提取N个数据元素,执行所述N个数据元素中的每个数据元素与所述第二源寄存器的内容的乘法,以及将每个乘法的结果应用于所述一组N个累加寄存器中的相应目标寄存器的内容。

【技术特征摘要】
【国外来华专利技术】2017.02.23 GR 201701000821.一种数据处理装置,包括:寄存器存储电路,具有多个寄存器,每个寄存器用于存储多个数据元素;解码器电路,响应于数据处理指令而生成控制信号,所述数据处理指令在所述多个寄存器中指定:第一源寄存器、第二源寄存器、以及一组N个累加寄存器;以及处理电路,响应于所述控制信号而执行数据处理操作,该数据处理操作包括:从所述第一源寄存器的内容中提取N个数据元素,执行所述N个数据元素中的每个数据元素与所述第二源寄存器的内容的乘法,以及将每个乘法的结果应用于所述一组N个累加寄存器中的相应目标寄存器的内容。2.如权利要求1所述的数据处理装置,其中,所述处理电路包括数据元素操控电路,该数据元素操控电路响应于所述控制信号而提供从所述第一源寄存器提取的数据元素的多个实例,其中,执行所述乘法包括将所述数据元素的所述多个实例乘以所述第二源寄存器的内容的相应部分。3.如权利要求2所述的数据处理装置,其中,所述数据元素操控电路响应于所述控制信号而提供所述数据元素的M个实例,其中,所述M个实例的大小小于所述多个寄存器的寄存器大小。4.如权利要求3所述的数据处理装置,其中,所述数据元素操控电路响应于所述控制信号而提供从所述第一源寄存器提取的一组数据元素中的每个数据元素的各自的M个实例,其中,所述一组数据元素的所述M个实例的总大小等于所述寄存器大小。5.如权利要求4所述的数据处理装置,其中,所述一组数据元素是由所述寄存器大小的重复子部分中的选定数据元素给出的。6.如权利要求2所述的数据处理装置,其中,所述数据元素的所述多个实例的组合大小等于所述多个寄存器的寄存器大小。7.如任意前述权利要求所述的数据处理装置,其中,N在2至8的范围内。8.如权利要求7所述的数据处理装置,其中,N是2。9.如权利要求7所述的数据处理装置,其中,N是4。10.如权利要求1至9中任一项所述的数据处理装置,其中,在所述数据处理操作中将每个乘法的结果应用于相应的目标寄存器的内容包括:将每个乘法的结果加和到相应的目标寄存器的内容。11.如权利要求1至9中任一项所述的数据处理装置,其中,在所述数据处理操作中将每个乘法的结果应用于相应的目标寄存器的内容包括:将每个乘法的结果从相应的目标寄存器的内容中减去。12.如权利要求1至9中任一项所述的数据处理装置,其中,在所述数据处理操作中将每个乘法的结果应用于相应的目标寄存器的内容包括:用每个乘法的结果替换相应的目标寄存器的内容。13.如任意前述权利要求所述的数据处理装置,其中,所述一组N个累加寄存器是连续寻址的寄存...

【专利技术属性】
技术研发人员:大卫·汉纳·曼塞尔格里戈里奥斯·马格克里斯
申请(专利权)人:ARM有限公司
类型:发明
国别省市:英国,GB

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1