[发明专利]控制依赖于相同数据条件的相邻指令的执行有效
| 申请号: | 201280007860.7 | 申请日: | 2012-01-26 |
| 公开(公告)号: | CN103348318A | 公开(公告)日: | 2013-10-09 |
| 发明(设计)人: | 阿拉斯塔尔·大卫·瑞德 | 申请(专利权)人: | ARM有限公司 |
| 主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/38 |
| 代理公司: | 北京东方亿思知识产权代理有限责任公司 11258 | 代理人: | 李晓冬 |
| 地址: | 英国*** | 国省代码: | 英国;GB |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 控制 依赖于 相同 数据 条件 相邻 指令 执行 | ||
技术领域
本发明涉及数据处理设备,并且具体地涉及处理其执行依赖于数据条件的预测指令。
背景技术
已知其执行取决于具体数据条件的条件指令。例如CMP x y,ADDGE,SUBLT指令,其比较位置x和y中存储的两个值并且如果x大于或等于y则将其相加;如果x小于y则将其分别相减。
在多数据元素上执行操作的向量指令变得越来越普遍。其经常使用掩码来控制那些元素被处理。例如,使用掩码10000001执行8元素向量存储指令将仅存储两个元素(第一个和最后一个)。当写入以该方式使用掩码的向量化代码时,常见优化是认识到一系列指令都通过相同掩码被控制并且如果掩码是零则围绕全部这些指令插入分支,因为在这种情况下,指令将不做任何事情。因此,代码将变为:
VCMP D0,D1,D2;比较D1和D2,在D0放置产生的掩码
VTEST D0;测试是否D0的全部位是零
BEQL1;如果掩码是零,跳跃接下来的10个操作
D0→VOP1;在掩码D0控制下执行向量操作1
D0→VOP2;在掩码D0控制下执行向量操作2
.
.
.
D0→VOP10;在掩码D0控制下执行向量操作10
L1
这在掩码经常是零时是非常有效的,因为此时测试和分支仅花费两个指令并且避免了执行分支不存在时将被执行的10个指令的需要。然而,现有技术方法的问题是分支是数据依赖的,因为其是否被进行取决于两个数据值D1和D2。数据依赖分支很难预测,并且因此如果分支预测被用于加快操作,则分支可能经常被误预测,并且如果当其不应该被进行时预测其被进行,则机器的状态将需要被回滚到其在进行分支之前的状态。当执行向量处理时,由于数据字的长度,保存机器的状态在某一点在区域方面是昂贵的。
期望能改进条件指令执行的性能。
发明内容
本发明的第一方面提供数据处理设备,该数据处理设备包括被配置为解码指令流的指令解码器和被配置为处理所述被解码的指令流的数据处理器;所述数据处理器被配置为分析所述指令流并且识别所述指令流内的其执行依赖于数据条件被满足并且当所述数据条件不被满足时其执行不改变数据寄存器中存储的值的多个相邻指令,并且响应于识别所述多个相邻指令,所述数据处理器被配置为:开始确定所述数据条件是否被满足;并且开始处理所述多个相邻指令;并且响应于确定所述数据条件不被满足,在不执行还未被执行的所述多个相邻指令的任何中间指令的情况下,跳跃到所述多个相邻指令之后的要被执行的下一个指令,并且继续执行所述下一个指令。
本发明认识到在具有全部依赖于相同条件的条件执行指令的情况中,以及在当条件未被完全满足时其执行不影响数据设备的状态的情况中,可以在条件被确定之前开始处理这些指令,并且如果发现这些指令不应该被执行,可以在该点跳跃到这些指令的末端。在该方面,不改变数据处理设备的状态是指存储在数据寄存器中的数据值不被改变,因此指令不重写任何存储值,这样,在指令不应该被执行的情况下,不需要执行状态恢复。在该方面,指令的执行将改变诸如程序计数器的值之类的东西,或许还有缓存,然而在被执行指令的目的寄存器中的值不改变的位置,如果指令在不应该被执行时被执行了,则不需要回滚,因为其执行将不影响未来指令的执行。因此,在不需要状态恢复的位置,可以将状态视为没有改变。
因此,在不具有需要执行额外的恢复步骤的缺点的情况下,可以实现以相关性能和功率优势跳跃一些指令的执行的优点。应该注意到存在与处理该“跳跃”步骤所需的额外电路关联的小的费用。
在一些实施例中,所述数据处理设备进一步包括数据存储器,所述数据处理设备响应于所述多个相邻指令将标识符存储在所述数据存储器中并且在所述数据存储器中设置跳跃标记,该标识符标识在执行所述多个相邻指令之后要被执行的所述下一个指令的位置作为目标位置,所述跳跃标记指示所述处理器:响应于所述数据条件未被满足,所述处理器应该使用对应于所述目标位置的地址更新程序计数器。
尽管指令的跳跃可以以多种方式被实现,但是在一些实施例中,多个相邻指令的检测触发处理器设置跳跃标记并且存储目标位置的指示,该跳跃标记指示处理器当确定条件未被满足时,其可以跳跃到目标位置。即它可以停止执行多个相邻指令并且可以继续在目标位置执行指令,此时未被执行的相邻指令的任何一个将不被执行,因为此时知道其所依赖的条件未被满足。
在一些实施例中,标识所述下一个指令位置的所述标识符包括地址。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于ARM有限公司,未经ARM有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201280007860.7/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置





