[发明专利]合并相邻的聚集/分散操作有效
申请号: | 201280076796.8 | 申请日: | 2012-12-26 |
公开(公告)号: | CN104756068B | 公开(公告)日: | 2018-08-17 |
发明(设计)人: | A·T·福塞斯;B·J·希克曼;J·C·豪尔;C·J·休斯 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F9/06 | 分类号: | G06F9/06;G06F9/30;G06F13/14 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 毛力 |
地址: | 美国加利*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 合并 相邻 聚集 分散 操作 | ||
根据一个实施例,处理器包括指令解码器,其用于对第一指令进行解码,该第一指令用于聚集来自存储器的数据元素,该第一指令具有指定第一存储位置的第一操作数和指定存储多个数据元素的第一存储器地址的第二操作数。该处理器进一步包括执行单元,其耦合至指令解码器,响应于第一指令,该执行单元用于:基于由第二操作数指示的第一存储器地址,从存储器位置中读取数据元素中连续的第一数据元素和第二数据元素;并且将该第一数据元素存储在第一存储位置的第一条目中,将该第二数据元素存储在对应于第一存储位置的第一条目的、第二存储位置的第二条目中。
技术领域
本发明的领域总体涉及处理器架构,更具体地说,涉及用于合并聚集分散操作的技术。
背景技术
为了充分利用单指令多数据(SIMD)处理器,将聚集(gather)指令用于从存储器中读取一组(可能的)非连续源数据元素,并且通常将它们一起紧缩(pack)到单个寄存器中。分散(scatter)指令做相反的动作。在一些实例中,已知存储器中的这些数据元素彼此连续。遗憾的是,常规的聚集和分散指令不利用该已知信息,因此降低了SIMD处理器的效率。
附图说明
在所附附图的多个图中,以示例方式而非限制方式说明本发明的多个实施例,在附图中,同样的参考标号指示类似的元件。
图1A示出源代码片段。
图1B示出当图1A中源代码的加载/存储指令被向量化时所得到的聚集/分散操作。
图2是根据本发明的一个实施例的处理器或处理器核的执行流水线的框图。
图3A到3E是示出合并三条相邻的聚集指令的框图。
图4是示出利用写掩码合并三条相邻的聚集指令的框图。
图5是示出用于处理合并的聚集指令的方法的流程图。
图6是进一步详细示出图5中的方法的流程图。
图7是示出合并三条相邻的分散指令的框图。
图8A到8H是示出使用当前的ISA来合并相邻的聚集指令的实施例的框图。
图9A示出新指令vgatherp0123qpd的操作的伪代码。
图9B示出新指令vgatherp4567qpd的操作的伪代码。
图10A示出新指令vgatherp01qpd的操作的伪代码。
图10B示出新指令vgatherp23qpd的操作的伪代码。
图10C示出新指令vgatherp34qpd的操作的伪代码。
图10D示出新指令vgatherp67qpd的操作的伪代码。
图11A是用于转置VPU区块的X分量的GENMUX单元的框图。
图11B是用于转置VPU区块的Y分量的GENMUX单元的框图。
图12A示出根据本发明的一个实施例的高级向量扩展(AVX)指令格式。
图12B示出根据本发明的另一实施例的高级向量扩展(AVX)指令格式。
图12C示出根据本发明的又一实施例的高级向量扩展(AVX)指令格式。
图13A是示出根据本发明的多个实施例的通用向量友好指令格式及其A类指令模板的框图。
图13B是示出根据本发明的多个实施例的通用向量友好指令格式及其B类指令模板的框图。
图14A是示出根据本发明的一个实施例的专用向量友好指令格式的框图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201280076796.8/2.html,转载请声明来源钻瓜专利网。