矢量浮点缩放制造技术

技术编号:26478264 阅读:54 留言:0更新日期:2020-11-25 19:22
本申请公开矢量浮点缩放。一种响应于矢量浮点缩放指令而在处理器中缩放源数据的方法(1600)包括指定包含源数据的第一源寄存器、包含缩放值的第二源寄存器以及用于存储缩放的源数据的目的地寄存器(1602)。第一源寄存器包括各自包含浮点值的多个通道,并且第二源寄存器和目的地寄存器各自包括与第一源寄存器的通道相对应的多个通道。该方法包括通过以下方式执行矢量浮点缩放指令:针对第一源寄存器中的每个通道,将第二源寄存器的对应通道中的缩放值添加到第一源寄存器的通道中的浮点值的指数字段中以创建缩放的浮点值(1604),并将缩放的浮点值存储在目的地寄存器的对应通道中(1606)。

【技术实现步骤摘要】
矢量浮点缩放
技术介绍
现代数字信号处理器(DSP)面临多重挑战。DSP可能频繁地执行需要执行通用算法的软件,这些算法需要将浮点值乘以或除以2的幂(例如,牛顿-拉夫森近似)。浮点乘法运算需要多个周期才能完成。考虑到DSP可能频繁地执行需要浮点值乘以2的幂的算法,因此执行每个浮点乘法运算所需的多个周期形式的计算开销是不希望的。
技术实现思路
根据本公开的至少一个示例,一种响应于矢量浮点缩放指令而在处理器中缩放源数据的方法包括指定包含源数据的第一源寄存器、包含缩放值的第二源寄存器以及用于存储缩放的源数据的目的地寄存器。第一源寄存器包括各自包含浮点值的多个通道,并且第二源寄存器和目的地寄存器各自包括与第一源寄存器的通道相对应的多个通道。该方法包括通过以下方式执行矢量浮点缩放指令:针对第一源寄存器中的每个通道,将第二源寄存器的对应通道中的缩放值添加到第一源寄存器的通道中的浮点值的指数字段中以创建缩放的浮点值,并且将缩放的浮点值存储在目的地寄存器的对应通道中。根据本公开的另一示例,一种数据处理器包括:第一源寄存器,其被配置为包含源数据;第二源寄存器,其被配置为包含缩放值;以及目的地寄存器。第一源寄存器包括各自包含浮点值的多个通道,并且第二源寄存器和目的地寄存器各自包括与第一源寄存器的通道相对应的多个通道。响应于单个矢量浮点缩放指令的执行,数据处理器被配置为针对第一源寄存器中的每个通道,将第二源寄存器的对应通道中的缩放值添加到第一源寄存器的通道中的浮点值的指数字段中以创建缩放的浮点值,并且将缩放的浮点值存储在目的地寄存器的对应通道中。附图说明对于各种示例的详细描述,现在将参考附图,其中:图1示出了根据各种示例的成双的标量/矢量数据路径处理器;图2示出了图1所示并且根据各种示例的成双的标量/矢量数据路径处理器中的寄存器和功能单元;图3示出了示例性全局标量寄存器文件;图4示出了由算术功能单元共享的示例性局部标量寄存器文件;图5示出了由多个功能单元共享的示例性局部标量寄存器文件;图6示出了由加载/存储单元共享的示例性局部标量寄存器文件;图7示出了示例性全局矢量寄存器文件;图8示出了示例性断言寄存器文件;图9示出了由算术功能单元共享的示例性局部矢量寄存器文件;图10示出了由乘法和相关功能单元共享的示例性局部矢量寄存器文件;图11示出了根据各种示例的中央处理单元的流水线阶段;图12示出了根据各种示例的单个提取包的十六个指令;图13A和图13B分别示出了根据各种示例的示例性单精度浮点值和双精度浮点值;图14A和图14B示出了根据各种示例的与指令的执行有关的示例性寄存器组;图15A和图15B示出了根据各种示例的指令的指令编码;并且图16示出了根据各种示例的执行指令的方法的流程图。具体实施方式如上所述,DSP经常执行需要执行通用算法的软件,这些算法需要将浮点值乘以或除以2的幂(例如,牛顿-拉夫森近似)。浮点乘法运算需要多个周期才能完成。由于DSP可能频繁且重复地执行需要浮点值乘以2的幂的算法,因此执行每个浮点乘法运算所需的多个周期形式的计算开销是不希望的。为了改善执行需要将浮点值乘以或除以2的幂的算法的DSP的性能,至少通过减少此类运算的计算开销,本公开的示例针对一种矢量浮点缩放指令,其缩放第一源寄存器中的包括浮点值的源数据,并且将缩放的浮点值存储在目的地寄存器中。矢量浮点缩放指令是单指令多数据(SIMD)指令,其根据存储在第二源寄存器的对应通道中的缩放值对第一源寄存器的通道中的数据进行运算。例如,第一源寄存器是512位矢量寄存器,并且每个通道是32位通道(例如,单精度浮点值)。第二源寄存器的对应通道各自包含缩放值。用于每个通道的缩放值可能不同,并且因此并非所有通道都需要按相同的量进行缩放。执行矢量浮点缩放指令的结果是,第二源寄存器的16个缩放值中的每一个应用于第一源寄存器中的16个单精度浮点值中的一个,并且16个得到的缩放的浮点值存储在目的地寄存器中。在另一个示例中,源寄存器是512位矢量寄存器,并且每个通道是64位通道(例如,双精度浮点值)。第二源寄存器的对应通道各自包含上述的缩放值。用于每个通道的缩放值可能不同,并且因此并非所有通道都需要按相同的量进行缩放。执行矢量浮点缩放指令的结果是,第二源寄存器的8个缩放值中的每一个应用于第一源寄存器中的8个双精度浮点值中的一个,并且8个得到的缩放的浮点值存储在目的地寄存器中。在任一以上示例中,通过将缩放值添加到浮点值的指数字段中,将第二源寄存器的对应通道中的缩放值应用于第一源寄存器中的浮点值。如下面将进一步详细说明的,向浮点值的指数字段添加(或从其减去)具有将浮点值乘以(或除以)2的幂的效果。然而,与需要花费几个周期才能完成的常规的更一般的浮点乘法不同,矢量浮点缩放指令可以在单个周期内执行,或者可以在比浮点乘法运算少的周期内执行。通过实现单个矢量浮点缩放指令,该指令以2的幂对浮点值进行缩放并且存储缩放的浮点值,可以进行浮点值乘以(或除以)2的幂,其减少了计算开销。结果,当执行需要将浮点值乘以或除以2的幂的算法时,DSP的整体性能得到改善。图1说明根据本公开的各种示例的成双的标量/矢量数据路径处理器。处理器100包括分开的一级指令缓存器(L1I)121和一级数据缓存器(L1D)123。处理器100包括二级组合式指令/数据缓存器(L2)130,其保持指令和数据两者。图1说明一级指令缓存器121和二级组合式指令/数据缓存器130之间的连接(总线142)。图1说明一级数据缓存器123和二级组合式指令/数据缓存器130之间的连接(总线145)。在一个示例中,处理器100二级组合式指令/数据缓存器130存储这两个指令以备份一级指令缓存器121并且存储数据以备份一级数据缓存器123。在该示例中,二级组合式指令/数据缓存器130进一步以本领域已知的但图1中未说明的方式连接到更高级的缓存器和/或主存储器。在该示例中,中央处理单元核心110、一级指令缓存器121、一级数据缓存器123以及二级组合式指令/数据缓存器130被形成在单个集成电路上。该信号集成电路可选择地包括其他电路。中央处理单元核心110在指令提取单元111控制下从一级指令缓存器121提取指令。指令提取单元111确定将被执行的下一个指令并且调用提取包尺寸的一组此类指令。提取包的性质和尺寸在下面进一步详述。如本领域已知的,在缓存命中之后(如果这些指令被存储在一级指令缓存器121中),指令被直接从一级指令缓存器121中提取。在缓存错失之后(指定的指令提取包没有被存储在一级指令缓存器121中),在二级组合式缓存器130中寻找这些指令。在该示例中,一级指令缓存器121中的缓存线的尺寸等于提取包的尺寸。这些指令的存储器位置在二级组合式缓存器130中或命中或错失。命中是由二级组合式缓存器130服务。错失是由更高级缓存器(未图示说明)或由主存储器(未图示说明)服务。如本本文档来自技高网...

【技术保护点】
1.一种响应于矢量浮点缩放指令而在处理器中缩放源数据的方法,所述方法包括:/n在所述矢量浮点缩放指令的相应字段中,指定包含所述源数据的第一源寄存器、包含缩放值的第二源寄存器以及用于存储缩放的源数据的目的地寄存器,其中所述第一源寄存器包括各自包含浮点值的多个通道,并且所述第二源寄存器和所述目的地寄存器各自包括与所述第一源寄存器的所述通道相对应的多个通道;以及/n执行所述矢量浮点缩放指令,其中执行所述矢量浮点缩放指令还包括,针对所述第一源寄存器中的每个通道:/n将所述第二源寄存器的对应通道中的所述缩放值添加到所述第一源寄存器的所述通道中的所述浮点值的指数字段,以创建缩放的浮点值;以及/n将所述缩放的浮点值存储在所述目的地寄存器的对应通道中。/n

【技术特征摘要】
20190524 US 16/422,7541.一种响应于矢量浮点缩放指令而在处理器中缩放源数据的方法,所述方法包括:
在所述矢量浮点缩放指令的相应字段中,指定包含所述源数据的第一源寄存器、包含缩放值的第二源寄存器以及用于存储缩放的源数据的目的地寄存器,其中所述第一源寄存器包括各自包含浮点值的多个通道,并且所述第二源寄存器和所述目的地寄存器各自包括与所述第一源寄存器的所述通道相对应的多个通道;以及
执行所述矢量浮点缩放指令,其中执行所述矢量浮点缩放指令还包括,针对所述第一源寄存器中的每个通道:
将所述第二源寄存器的对应通道中的所述缩放值添加到所述第一源寄存器的所述通道中的所述浮点值的指数字段,以创建缩放的浮点值;以及
将所述缩放的浮点值存储在所述目的地寄存器的对应通道中。


2.根据权利要求1所述的方法,其中所述源数据包括512位矢量。


3.根据权利要求1所述的方法,其中每个浮点值包括单精度浮点值。


4.根据权利要求1所述的方法,其中每个浮点值包括双精度浮点值。


5.根据权利要求1所述的方法,其中所述缩放值包括16位值。


6.根据权利要求1所述的方法,其中所述缩放值是有符号值。


7.根据权利要求1所述的方法,其中所述缩放值是无符号值。


8.根据权利要求1所述的方法,其中所述缩放值中的至少一个缩放值不同于所述缩放值中的其他缩放值。


9.根据权利要求1所述的方法,其中所述第一源寄存器的一个通道中的所述浮点值包括正或负零浮点值,并且执行所述矢量浮点缩放指令还包括:
在所述目的寄存器的与所述一个通道相对应的通道中,分别存储正或负零浮点值,而不管在所述第二源寄存器的与所述一个通道相对应的通道中的所述缩放值如何。


10.根据权利要求1所述的方法,其中所述第一源寄存器的一个通道中的所述浮点值包括正或负无穷大浮点值,并且执行所述矢量浮点缩放指令还包括:
在所述目的寄存器的与所述一个通道相对应的通道中,分别存储正或负无穷大浮点值,而不管在所述第二源寄存器的与所述一个通道相对应的通道中的所述缩放值如何。


11.根据权利要求1所述的方法,其中当将所述第二源寄存器的通道中的所述缩放值应用于所述...

【专利技术属性】
技术研发人员:T·D·安德森D·布伊J·茨维西亚克
申请(专利权)人:德克萨斯仪器股份有限公司
类型:发明
国别省市:美国;US

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

1