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

处理针对向量指令的元素间地址危害制造技术

技术编号:20986272 阅读:28 留言:0更新日期:2019-04-29 20:03
一种装置具有支持向量加载及储存指令的处理电路系统4。响应于事务开始事件,处理电路系统推测性地执行一个或更多个后续指令。响应于事务结束事件,处理电路系统4实行这些指令的推测性结果。危害检测电路系统50检测在用于先前的向量加载指令的数据元素J的地址与用于后来的向量储存指令的数据元素K的地址之间是否发生元素间地址危害,其中K和J是不相等的。响应于检测到元素间地址危害,危害检测电路系统50触发处理电路系统4以中止事务开始事件之后的指令的进一步处理且防止推测性结果被实行。此方法可针对向量化代码提供更快的效能。

Handling address hazards between elements for vector instructions

A processing circuit system 4 with support vector loading and storing instructions is provided. In response to a transaction start event, the processing circuit system presumably executes one or more subsequent instructions. In response to the transaction end event, the processing circuit system 4 implements the inferential results of these instructions. Hazard Detection Circuit System 50 detects whether there is an inter-element address hazard between the address of the data element J used for the previous vector loading instruction and the address of the data element K used for the later vector storage instruction, where K and J are not equal. In response to the detection of inter-element address hazards, hazard detection circuit system 50 triggers processing circuit system 4 to stop further processing of instructions after transaction start events and to prevent speculative results from being implemented. This method can provide faster performance for vectorized code.

【技术实现步骤摘要】
【国外来华专利技术】处理针对向量指令的元素间地址危害
本技术涉及数据处理的领域。
技术介绍
某些数据处理系统支持向量指令的处理,对于该处理而言,来源操作数(operand)或指令的结果值是包括多个数据元素的向量。通过支持响应于单一指令而处理许多相异的数据元素,可改良代码密度且指令的提取及译码的负荷减少了。可通过将数据值加载进向量操作数的相应元素及使用单一向量指令一次处理若干元素的数据值来更高效地处理要处理的数据值数组。
技术实现思路
至少某些示例提供了一种装置,该装置包括:处理电路系统,用于响应于指令而执行数据处理,其中响应于向量加载指令,该处理电路系统被配置为从数据储存器的相应位置将数据加载给向量值的相应数据元素,且响应于向量储存指令,该处理电路系统被配置为从向量值的相应数据元素将数据储存到该数据储存器的相应位置;其中该处理电路系统响应于事务开始事件而推测性地执行一个或更多个后续指令,且响应于事务结束事件而实行在该事务开始事件之后所推测性地执行的该一个或更多个后续指令的推测性结果;该装置包括危害检测电路系统,该危害检测电路系统用于检测在相对应于用于先前的向量加载指令的数据元素J的地址及相对应于用于后来的向量储存指令的数据元素K的地址之间是否发生元素间地址危害,该先前的向量加载指令是在该事务开始事件之后推测性地执行的,该后来的向量储存指令是在该事务开始事件之后推测性地执行的,其中K与J不同,且该先前的向量加载指令及该后来的向量储存指令两者是来自由该处理电路系统所处理的相同指令线程;其中响应于检测到该元素间地址危害,该危害检测电路系统被配置为触发该处理电路系统以中止该事务开始事件之后的指令的进一步处理且防止该推测性结果被实行。至少某些示例提供了一种装置,该装置包括:处理模块,其用于响应于指令而处理数据,其中响应于向量加载指令,该处理模块被配置为从数据储存器的相应位置将数据加载给向量值的相应数据元素,且响应于向量储存指令,该处理模块被配置为从向量值的相应数据元素将数据储存到该数据储存器的相应位置;其中该处理模块响应于事务开始事件而推测性地执行一个或更多个后续指令,且响应于事务结束事件而实行在该事务开始事件之后所推测性地执行的该一个或更多个后续指令的推测性结果;该装置包括检测模块,其用于检测相对应于用于先前的向量加载指令的数据元素J的地址及相对应于用于后来的向量储存指令的数据元素K的地址之间的元素间地址危害,该先前的向量加载指令是在该事务开始事件之后推测性地执行的,该后来的向量储存指令是在该事务开始事件之后推测性地执行的,其中K与J不同,且该先前的向量加载指令及该后来的向量储存指令两者是来自由该处理电路系统所处理的相同指令线程;及响应于检测到该元素间地址危害,该检测模块被配置为触发该处理模块以中止该事务开始事件之后的指令的进一步处理且防止该推测性结果被实行。至少某些示例提供了一种数据处理方法,该方法包括以下步骤:响应于事务开始事件,推测性地执行一个或更多个后续指令;响应于向量加载指令,从数据储存器的相应位置将数据加载给向量值的相应数据元素;响应于用于从向量值的相应数据元素将数据储存到该数据储存器的相应位置的向量储存指令,检测在相对应于用于该向量加载指令的数据元素J的地址及相对应于用于该储存指令的数据元素K的地址之间是否发生元素间地址危害,其中K与J不同,且该先前的向量加载指令及该后来的向量储存指令两者是来自相同的指令线程;响应于检测到该元素间地址危害,中止该一个或更多个后续指令的进一步处理,且防止该一个或更多个后续指令的推测性结果被实行;及响应于事务结束事件,实行该一个或更多个后续指令的推测性结果。附图说明将通过以下的示例说明理解本技术的进一步的方案、特征及优点,要与附图结合阅读该示例说明,在附图中:图1示意性地绘示支持向量指令的处理的数据处理装置的示例;图2示意性地绘示邻接的向量加载指令及邻接的向量储存指令的示例;图3为绘示在向量化代码的执行期间响应事务开始事件的方法的流程图;图4为图示响应于向量加载指令而更新危害追踪数据的方法的流程图;图5为图标响应事务清除事件以清除危害追踪数据的方法的流程图;图6为图标检测元素间地址危害的方法的流程图;图7为图标响应事务结束事件的方法的流程图;图8图标将数据并排储存在高速缓存中的危害追踪数据的第一示例;图9图标危害追踪数据的第二示例,其中由邻接的加载指令所存取的最小及最大地址被追踪在储存结构中;图10图示非邻接(或聚排)的向量加载指令的示例;以及图11图标危害追踪数据的第三示例。具体实施方式一种装置可具有支持向量指令的处理的处理电路系统。向量指令的一个示例是向量加载指令,响应于该向量加载指令,从数据储存器的相应位置将数据加载给向量值的相应数据元素。另一示例是向量储存指令,响应于该向量储存指令,处理电路系统可从向量值的相应数据元素将数据储存到数据储存器的相应位置。例如,用于向量加载/储存指令的向量值可被储存在缓存器中。该处理电路系统响应于一事务开始事件而推测性地执行一个或更多个后续指令,且响应于一事务结束事件而实行在该事务开始事件之后所推测性地执行的彼等一个或更多个后续指令的推测性结果。危害检测电路系统被提供为检测在相对应于用于先前的向量加载指令的数据元素J的地址及相对应于用于后来的向量储存指令的数据元素K的地址之间是否发生元素间地址危害,该先前的向量加载指令是在事务开始事件之后推测性地执行的,该后来的向量储存指令亦是在事务开始事件之后推测性地执行的。K及J是彼此不相等的整数值。该先前的向量加载指令及该后来的向量储存指令两者是来自由该处理电路系统所处理的相同指令线程。响应于检测到元素间地址危害,危害检测电路系统可触发处理电路系统以中止事务开始事件之后的指令的进一步处理且防止推测性结果被实行。可能不能立即理解的是,存在着危害检测电路系统检测所处理的相同指令线程内的后来及先前的指令之间的地址危害的需要。正常会期望该等指令依序作用,且因此不会需要例如危害检测或事务处置的机制,该等机制一般会用于由不同的程序线程进行的平行数据存取。然而,在支持向量处理的装置中,向量指令的通用用途是向量化以标量代码撰写的许多程序循环迭代,其中多个循环迭代被映像到用于向量指令序列的相应向量处理道。因此,向量加载指令可将要由许多连序的循环迭代所处理的输入加载进向量值的相应元素,一个或更多个向量指令可接着处理相应处理道中的彼等元素中的各者,且接着向量储存指令可将各道的结果储存到数据储存器中的相应位置。如此允许相较于使用标量指令单独执行各个迭代而言改良了效能且减少了指令高速缓存、提取及译码的负荷。然而,可能的是,可能在不同的标量循环迭代之间存在着相依性,其中例如先前的迭代可能将一值写入到数据储存器,而该值用作后来的迭代的输入。若此类循环迭代被映像到相同向量指令序列的不同道,则可能的是,某些结果可能是不正确的,因为相对应于被向量化的后来的循环迭代的道可能加载还未被相对应于先前的迭代的道更新的值。虽然可在编译时间静态地识别某些危害,如此不能保护免于所有潜在危害,因为某些加载/储存地址取决于从数据储存器所读取的其他值,所以危害是否发生可能在运行时间动态地变化。用于保护免于动态危害的一个方法可为在向量序列之前提供额外的代码本文档来自技高网...

【技术保护点】
1.一种装置,包括:处理电路系统,其用于响应于指令而执行数据处理,其中,响应于向量加载指令,该处理电路系统被配置为从数据储存器的相应位置将数据加载给向量值的相应数据元素,并且响应于向量储存指令,该处理电路系统被配置为从向量值的相应数据元素将数据储存到所述数据储存器的相应位置;其中,该处理电路系统响应于事务开始事件而推测性地执行一个或更多个后续指令,并且响应于事务结束事件而实行在该事务开始事件之后所推测性地执行的该一个或更多个后续指令的推测性结果;该装置包括危害检测电路系统,该危害检测电路系统用于检测在相对应于用于先前的向量加载指令的数据元素J的地址与相对应于用于后来的向量储存指令的数据元素K的地址之间是否发生元素间地址危害,该先前的向量加载指令是在该事务开始事件之后推测性地执行的,该后来的向量储存指令是在该事务开始事件之后推测性地执行的,其中K与J不同,并且该先前的向量加载指令和该后来的向量储存指令两者是来自由该处理电路系统所处理的相同指令线程;其中,响应于检测到该元素间地址危害,该危害检测电路系统被配置为触发该处理电路系统以中止该事务开始事件之后的指令的进一步处理并且防止所述推测性结果被实行。...

【技术特征摘要】
【国外来华专利技术】2016.09.20 GB 1615959.21.一种装置,包括:处理电路系统,其用于响应于指令而执行数据处理,其中,响应于向量加载指令,该处理电路系统被配置为从数据储存器的相应位置将数据加载给向量值的相应数据元素,并且响应于向量储存指令,该处理电路系统被配置为从向量值的相应数据元素将数据储存到所述数据储存器的相应位置;其中,该处理电路系统响应于事务开始事件而推测性地执行一个或更多个后续指令,并且响应于事务结束事件而实行在该事务开始事件之后所推测性地执行的该一个或更多个后续指令的推测性结果;该装置包括危害检测电路系统,该危害检测电路系统用于检测在相对应于用于先前的向量加载指令的数据元素J的地址与相对应于用于后来的向量储存指令的数据元素K的地址之间是否发生元素间地址危害,该先前的向量加载指令是在该事务开始事件之后推测性地执行的,该后来的向量储存指令是在该事务开始事件之后推测性地执行的,其中K与J不同,并且该先前的向量加载指令和该后来的向量储存指令两者是来自由该处理电路系统所处理的相同指令线程;其中,响应于检测到该元素间地址危害,该危害检测电路系统被配置为触发该处理电路系统以中止该事务开始事件之后的指令的进一步处理并且防止所述推测性结果被实行。2.根据权利要求1所述的装置,其中,响应于检测到该元素间地址危害,该危害检测电路系统被配置为触发该处理电路系统以将架构状态数据恢复到响应于该事务开始事件而捕捉的先前版本的架构状态数据。3.根据权利要求1和2中的任一项所述的装置,其中K<J。4.根据前述权利要求中的任一项所述的装置,包括危害追踪储存器电路系统,该危害追踪储存器电路系统用于储存危害追踪数据,该危害追踪数据用于追踪用于在该事务开始事件之后所推测性地执行的一个或更多个先前的向量加载指令的地址。5.根据权利要求4所述的装置,其中,该危害追踪储存器电路系统包括所述数据储存器的部分。6.根据权利要求4和5中的任一项所述的装置,其中,该危害检测电路系统被配置为响应于该事务开始事件而清除该危害追踪数据。7.根据权利要求4到6中的任一项所述的装置,其中,该危害检测电路系统被配置为响应于该事务开始事件之后所执行的事务清除指令而清除该危害追踪数据。8.根据权利要求4到7中的任一项所述的装置,其中,该危害检测电路系统响应于该事务开始事件之后所推测性地执行的向量加载指令,基于用于该向量加载指令的地址来更新该危害追踪数据。9.根据权利要求8所述的装置,其中,该危害检测电路系统被配置为响应于预定类型的向量加载指令而更新该危害追踪数据,并且响应于该预定类型的向量加载指令以外的向量加载指令而抑制该危害追踪数据的更新。10.根据权利要求4到9中的任一项所述的装置,其中,该危害追踪数据包括多个追踪条目,各个追踪条目相对应于相应的地址区块并且识别最高数据元素位置,在该最高数据元素位置处,该相对应地址区块内的地址被用于该事务开始事件之后所推测性地执行的先前的向量加载指令。11.根据权利要求10所述的装置,其中,该危害检测电路系统被配置为:在相对应于地址区块的该追踪条目识别了较给定数据元素位置更高的数据元素位置时,针对该事务开始事件之后所推测性地执行的该后来的向量储存指令检测该元素间地址危害,该地址区块包括用于该后来的向量储存指令的该给定数据元素位置的地址。12.根据权利要求10和11中的任一项所述的装置,其中,所述数据储存器包括高速缓存,该高速缓存包括用于储存数据的多个高速缓存行,并且追踪条目被储存在该高速缓存中,各个高速缓存行与用于相对应于该高速缓存行的一个或...

【专利技术属性】
技术研发人员:马修·詹姆斯·霍斯内尔姆布·埃约勒
申请(专利权)人:ARM有限公司
类型:发明
国别省市:英国,GB

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

1