Hexagon处理器的条件执行机制

阅读: 评论:0

Hexagon处理器的条件执行机制

Hexagon处理器的条件执行机制

概述
Hexagon处理器基于比较指令在四个预测寄存器(P0-P3)中设置预测位来实现条件执行模型。这些预测位可以用来有条件的执行某些指令。

条件标量操作只可以对预测寄存器的最后一位进行操作,条件矢量操作则可以操作寄存器的多个位。

这些预测寄存器主要用于分支预测的控制。

标量预测
标量预测是一个八位的值,该值在条件指令中表示两种真值:

 0xff表示为真
 0x00表示假

Hexagon处理器提供了P0-P3四个八位的预测寄存器来控制矢量预测。这些寄存器通过预测驱动指令来设置,通过预测消费指令进行查看。
驱动标量预测
如下的指令可以驱动标量预测:

 比较字节、半字、字、双字
 比较单精度、双精度的浮点数
 分类浮点值
 比较比特掩码
 边界检测
 TLB匹配
 保存条件

 下图列出了预测驱动指令


比较指令(q)包括了一个变量,这个变量保存了一个存储在通用寄存器中的二进制值。

使用标量检测

基于标量预测,CPU可以判断条件从而执行正确的指令,或者有选择的将某个标量预测作为输入或输出。
使用标量预测值的条件指令只能查看预测值的最低一位。在最简单的情况下,该比特位将直接决定CPU将要执行的指令:
 1 表明该指令可以被执行
 0 表明该指令不能执行

如果条件指令在预测表达式中包括了操作!,那么比特值的逻辑取反将会作为预测的判断值。

条件指令在汇编指令中用指令前缀“if(pred_expr)”来表示,pred_expr表示预测表达式,例如:

if (P0) jump target          // jump if P0 is true
if (!P2) R2 = R5               // assign register if !P2 is true
if (P1) R0 = sub(R2,R3) // conditionally subtract if P1
if (P2) R0 = memw(R2) // conditionally load word if P2

如下指令可以被用来做条件指令:
 跳转

本文发布于:2024-02-04 05:24:52,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170700084252531.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:处理器   机制   条件   Hexagon
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23