[发明专利]在执行向量操作时管理地址冲突的装置及方法有效
申请号: | 201780024882.7 | 申请日: | 2017-04-06 |
公开(公告)号: | CN109074256B | 公开(公告)日: | 2023-02-28 |
发明(设计)人: | 姆布·埃约勒;雅各·埃本;亚利阳德罗·马丁内兹·文森特 | 申请(专利权)人: | ARM有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30 |
代理公司: | 北京东方亿思知识产权代理有限责任公司 11258 | 代理人: | 林强 |
地址: | 英国*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 执行 向量 操作 管理 地址 冲突 装置 方法 | ||
提供了一种在执行向量操作时管理地址冲突的装置及方法。该装置具有:用于存储向量操作数的寄存器存储装置,各个向量操作数包含多个元素;及用于执行指令以执行由这些指令指定的操作的执行电路。该执行电路具有用于执行存储器访问操作以在该寄存器存储装置与存储器之间移动这些向量操作数的访问电路,及用于使用这些向量操作数执行数据处理操作的处理电路。该执行电路可经排列以迭代地执行向量循环,其中在每个迭代期间,该执行电路执行指令序列以实现该向量循环。该序列包括标识多个存储器地址的检查指令,并且该执行电路响应于执行该检查指令以确定在该多个存储器地址中是否存在地址危险条件。针对该向量循环的每次迭代,该执行电路响应于执行确定无该危险地址条件的该检查指令而当执行该指令序列时采用预设级别的向量化来实现该向量循环。相比之下,在存在地址危险条件时,在执行该指令序列时该执行电路采用降低级别的向量化以实现该向量循环。已发现此方法提供用于动态调节在该向量循环的每个迭代期间采用的向量化级别的低等待时间机制,使得能够向量化代码,同时在存在地址危险条件时仍实现高效性能。
技术领域
本技术是关于一种在执行向量操作时管理地址冲突的装置及方法。
背景技术
一种用于改良数据处理装置性能的已知技术是提供用以支持向量操作执行的电路。对至少一个向量操作数执行向量操作,其中各个向量操作数包含多个元素。执行向量操作随后涉及在(一个或多个)向量操作数中跨过各种元素重复地应用操作。
在某些实施方式中,亦已知提供向量处理电路(通常称为SIMD(单指令多数据)处理电路),该向量处理电路提供并行处理的多个通道以在向量操作数中各种元素上并行执行操作。
经由使用向量操作,当与一连串等效标量操作的性能相比时可实现显著性能益处。
适用于SIMD的传统程序通常执行常规存储器访问并且经常遵循线性存储器寻址方案,这使得从标量代码直接变换为向量代码。在这种情况中,在循环迭代之间不存在依赖性且向量化是不复杂的,因为当同时处理向量元素时不存在可能的竞态条件。遗憾地,在吾人期望向量化以获取性能的众多现实程序中,在标量代码中的迭代之间存在非显然量之依赖性。在这种情形中,可难以预测若向量化该代码则可在运行时显现的地址冲突之频率。
由此,通常必须于编译阶段采取保守方法,由此若无法精确预测地址冲突的存在,则可不向量化代码,并且由此将牺牲任何潜在性能增益。
试图引入机制以在地址向量中动态分析地址冲突的先前尝试具有显著等待时间问题,这可限制由其等用途实现的任何潜在益处。
期望提供减轻上述问题的机制。
发明内容
在一个示例配置中,提供一种装置,其包含:寄存器存储装置,用以存储向量操作数,各个向量操作数包含多个元素;执行电路,用以执行指令以执行由这些指令指定的操作,该执行电路包含用以执行存储器访问操作以在该寄存器存储装置与存储器之间移动这些向量操作数的访问电路;及用以使用这些向量操作数执行数据处理操作的处理电路;该执行电路被布置为迭代地执行向量循环,在每个迭代期间该执行电路被布置为执行指令序列来实现该向量循环,该序列包括标识多个存储器地址的检查指令,且该执行电路响应于执行该检查指令以确定在该多个存储器地址中是否存在地址危险条件;针对该向量循环的每次迭代,该执行电路响应于该检查指令的执行确定无该地址危险条件而当执行该指令序列时采用预设级别的向量化来实现该向量循环,并且响应于该检查指令的执行确定存在该地址危险条件而当执行该指令序列时采用降低级别的向量化来实现该向量循环。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于ARM有限公司,未经ARM有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201780024882.7/2.html,转载请声明来源钻瓜专利网。