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

分支指令制造技术

技术编号:19561630 阅读:28 留言:0更新日期:2018-11-25 00:25
一种数据处理系统提供分支转发指令(BF),其具有指定要分支到的分支目标地址和标识该分支转发指令之后的程序指令的分支点的可编程参数,当到达该分支转发指令时,后跟到分支目标地址的分支。

Branch instruction

A data processing system provides branch forwarding instructions (BF), which have programmable parameters that specify the branch target address to be branched and identify the branch point of the program instruction after the branch forwarding instruction. When the branch forwarding instruction arrives, it is followed by the branch of the branch target address.

【技术实现步骤摘要】
【国外来华专利技术】分支指令
本公开涉及数据处理系统。更具体地,本公开涉及数据处理系统内的分支指令。
技术介绍
已知提供包括用于处理指令的电路和支持方法的数据处理系统。这些指令中的一些使得分支到在分支目标地址处的编程指令。
技术实现思路
在至少一些实施例中,本公开提供了一个示例,其中存在一种数据处理装置,包括:处理电路,用于执行由程序指令序列指定的处理操作;指令解码器,用于解码所述程序指令序列,以生成控制信号来控制所述处理电路执行所述处理操作;其中,所述指令解码器包括用于解码分支未来指令的分支未来指令解码电路,所述分支未来指令具有与分支目标地址相关联的可编程参数以及指示在所述程序指令序列内的所述分支未来指令之后的预定指令的另一可编程分支点数据参数;以及所述处理电路包括由所述分支未来指令解码电路控制的分支控制电路,并且响应于所述分支点数据,当所述程序指令序列的处理到达所述预定指令时,触发从对应于所述分支目标地址的分支目标指令开始到程序指令的处理的分支。在至少一些实施例中,本公开提供了用于处理数据的装置,包括:处理装置,用于执行由程序指令序列指定的处理操作;指令解码器装置,响应所述程序指令序列,以生成控制信号来控制所述处理装置执行所述处理操作;其中,所述指令解码器装置包括分支未来指令解码装置,用于解码分支未来指令,所述分支未来指令具有分别与分支目标地址和指示在所述程序指令序列内的所述分支未来指令之后的预定指令的分支点数据相关联的可编程参数;以及所述处理装置包括由所述分支未来指令解码装置控制的分支控制装置,并且响应于所述分支点数据,当所述程序指令序列的处理到达所述预定指令时,触发从对应于所述分支目标地址的分支目标指令开始到程序指令的处理的分支。在至少一些实施例中,本公开提供了一种处理数据的方法,包括:执行由程序指令序列指定的处理操作;解码所述程序指令序列以生成控制信号来控制所述处理操作的所述执行;其中所述解码包括解码分支未来指令,所述分支未来指令具有分别与分支目标地址和指示在所述程序指令序列内的所述分支未来指令之后的预定指令的分支点数据相关联的可编程参数;以及当所述程序指令序列的处理到达所述预定指令时,触发从对应于所述分支目标地址的分支目标指令开始到程序指令的处理的分支。附图说明示例的实施例现将参考附图以通过仅示例的方式描述,其中:图1示意地示出数据处理装置;图2A示意地示出分支未来指令;图2B示意地示出包括分支未来指令的程序指令序列;图2C示意地示出具有指示预定指令的可编程参数的不同实施方式的多个分支未来指令;图2D示意地示出具有可编程分支目标地址的不同实施方式的多个分支未来指令;图3A示意地示出包括通过处理管线进行的分支未来指令的程序指令序列;图3B示意地示出包括分支未来指令的指令序列的程序流;图3C示意地示出包括分支未来和链路指令的指令序列的程序流;图4示意地示出分支未来处理的方法;图5示意地示出包括用于响应于数据失效的过程的分支未来处理的另一方法;图5A示出处理条件分支未来指令的示例;图5B示出处理对应于相反条件的一对条件分支未来指令的示例;图6示意地示出零开销循环表现;图7示意地示出当执行图6的零开销循环表现之后的指令时的处理管线阶段内容;图8示意地示出包括循环/分支控制电路以控制零开销循环表现和分支未来指令表现的处理管线;图9示出如何在程序计数器值与循环控制数据字段之间进行比较以标识在程序执行中的点,分支到循环开始位置应该在该点执行;图10A是示意地示出循环开始程序指令的表现的流程图;图10B示意地示出循环开始指令的实施方式;图11是示意地示出循环结束程序指令的表现的流程图;图12是示意地示出当执行作为零开销循环表现的部分的程序循环体时,循环控制电路的动作的流程图;图13是示意地示出在程序循环体中控制指令执行以提供预测的流程图,其中向量指令可以在被预测控制的该程序循环体的给定迭代期间,在具有特定的活动向量元素的多个向量元素上操作;图14A至图14E示出非预测和预测循环的执行的示例;以及图15示意地示出虚拟机器实施方式。具体实施方式本公开意识到,分支指令可以导致降低性能的处理延迟。为解决此问题,本公开提供了分支未来指令解码电路以解码分支未来指令。该分支未来指令包括与分支目标地址相关联的可编程参数。该分支目标地址对应于分支后的可以由处理电路处理的程序指令。该分支未来指令还包括另一可编程分支点数据参数,该参数指示在程序指令序列中该分支未来指令之后的预定指令。通过在分支未来指令中包括另一可编程分支点数据参数,该处理电路可以在该分支点之前准备分支到分支目标地址。因此,当到达分支点时,可以避免或减少处理延迟。图1示意地示出耦接到存储器102的数据处理装置100的示例。存储器102储存程序指令和运算元数据。指令通过提取单元104提取,并通过指令解码器106解码以生成控制信号120来控制处理电路。处理电路可以包括用于在从存储器102接收的或储存到存储器102的浮点运算元上执行数据处理操作的浮点处理电路108和浮点寄存器110。处理电路还包括用于在从存储器102接收的或储存到存储器102的整数运算元上执行数据处理操作的乘法器112、移位器114、加法器116及整数寄存器117。由提取单元提取的一些指令可以是分支指令,该分支指令将处理从当前的程序指令序列进行分支到储存在从分支目标地址开始的存储器地址位置的程序指令。为了调节分支指令,数据处理装置100包括可以将程序流重定向到分支目标地址的分支单元119。为加速分支指令的处理,数据处理装置100可以包括分支预测器118。分支预测器118储存状态数据,并且基于该状态数据预测是否将采取分支指令。分支单元119还可以由循环控制数据控制以支持/提供零开销循环表现(替代或附加到其他循环控制电路),如本文将进一步描述的。分支预测器118还可以填充有循环控制,如本文将进一步描述。第2A图示意地示出分支未来指令BF200的示例。分支未来指令200包括指示分支目标地址254的可编程参数、提供可编程分支点数据252的可编程参数、以及将该指令标识为分支未来指令的编码位258。分支点数据252指示在由数据处理装置待处理的程序指令序列中分支未来指令BF之后的预定指令。分支目标地址254指示当该程序流到达预定指令时处理应该分支到的指令的位置。可保留位数量(x256)用于其他参数。返回图1,该数据处理装置包括分支未来指令解码电路122,用于响应于通过匹配分支未来编码位258而将指令标识为分支未来以(诸如第2A图所示的)解码分支未来指令。一旦解码该分支未来指令,该分支未来指令解码电路122控制该处理电路以将分支目标地址数据和指示该预定指令的分支点数据储存在分支控制数据缓存器130中。通过此方式储存数据,数据处理装置100可以被提供有从处理程序指令的正常序列分支可以发生时提前的指示、以及该分支将该程序执行点导向至的目标地址。因此,当该程序流到达由分支未来指令指示的预定指令时,该分支可以发生减少延迟或无延迟的处理。该数据处理装置还包括循环结束指令解码电路123以及预测循环开始指令解码电路125(其还用作非预测循环开始指令解码电路)以控制该处理电路响应于循环结束指令DLE以及循环开始指令DLS(P),如下文将进一步本文档来自技高网...

【技术保护点】
1.一种用于处理数据的装置,包括:处理电路,用于执行由程序指令序列指定的处理操作;指令解码器,用于解码所述程序指令序列,以生成控制信号来控制所述处理电路执行所述处理操作;其中,所述指令解码器包括用于解码分支未来指令的分支未来指令解码电路,所述分支未来指令具有与分支目标地址相关联的可编程参数以及指示在所述程序指令序列内的所述分支未来指令之后的预定指令的另一可编程分支点数据参数;以及所述处理电路包括由所述分支未来指令解码电路控制的分支控制电路,并且响应于所述分支点数据,当所述程序指令序列的处理到达所述预定指令时,触发从对应于所述分支目标地址的分支目标指令开始到程序指令的处理的分支。

【技术特征摘要】
【国外来华专利技术】2016.03.23 GB 1604948.81.一种用于处理数据的装置,包括:处理电路,用于执行由程序指令序列指定的处理操作;指令解码器,用于解码所述程序指令序列,以生成控制信号来控制所述处理电路执行所述处理操作;其中,所述指令解码器包括用于解码分支未来指令的分支未来指令解码电路,所述分支未来指令具有与分支目标地址相关联的可编程参数以及指示在所述程序指令序列内的所述分支未来指令之后的预定指令的另一可编程分支点数据参数;以及所述处理电路包括由所述分支未来指令解码电路控制的分支控制电路,并且响应于所述分支点数据,当所述程序指令序列的处理到达所述预定指令时,触发从对应于所述分支目标地址的分支目标指令开始到程序指令的处理的分支。2.根据权利要求1所述的装置,其中:当所述分支控制电路触发所述分支时,所述分支目标指令遵循紧接所述程序指令序列中的所述预定指令之前的指令,并且由所述分支未来指令指定的操作和紧接所述预定指令之前的所述指令指定的操作由所述处理电路连续地执行。3.根据权利要求1和2中任一项所述的装置,其中,所述分支点数据包括以下中的一个或多个:地址数据,指示所述预定指令的地址;结束数据,表示紧接所述预定指令之前的最后指令的地址;偏移数据,指示所述分支未来指令和所述预定指令之间的距离;适当位子集,指示所述预定指令的存储器存储地址,从区分指令的起始存储地址的所述存储器存储地址的最低有效位末端开始;剩余大小指令数据,指示在所述预定指令之前剩余待处理的指令的数量;以及剩余大小数据,指示在达到所述预定指令之前剩余待处理的程序存储位置的数量。4.根据前述权利要求中任一项所述的装置,其中,所述分支未来指令解码器电路控制所述处理电路将所述分支点数据和所述分支目标地址存储在分支控制高速缓存器中。5.根据权利要求4所述的装置,其中,当所述分支未来指令解码电路解码所述分支未来指令时,所述分支控制电路存储指示所述预定指令的存储器存储地址的适当位子集,所述预定指令从用于区分指令的起始存储地址的所述存储器存储地址的最低有效位末端开始。6.根据权利要求5所述的装置,其中,当所述适当的位子集匹配以下中的一个时,所述分支控制电路触发所述分支:指示程序计数器值的值的相应部分;指示指令提取地址的值的相应部分;以及指示所述数据处理装置的处理活动的值。7.根据权利要求4所述的装置,其中,响应于以下中的一项或多项:所述处理电路被重置;循环控制电路或循环结束指令确定不需要程序循环体的另一迭代;异常进入;异常尾部链,其中处理直接从处理当前异常进行到处理下一异常而不恢复所述当前异常之前的状态;执行具有大于预定直接目标地址范围的分支指令;执行分支指令;执行循环开始指令;从异常返回;执行使得所述数据处理装置的指令缓存器无效的指令;执行禁止缓存所述控制数据的指令;执行禁禁止分支预测的指令;所述处理电路确定程序循环体内的分支目标为不在循环开始指令和循环结束指令之间的地址;在安全操作模式和非安全操作模式之间切换;以及一个或多个实现定义的条件;所述分支点数据无效。8.根据权利要求7所述的装置,其中,当所述分支点数据已经无效时,程序流程前进到所述预定指令。9.根据前述权利要求中任一项所述的装置,其中所述分支未来指令是根据与满足的所述条件分支未来指令相关联的一个或多个条件代码所执行的条件分支未来指令。10.根据权利要求9所述的装置,其中,响应于所述条件分支未来指令,当不满足所述一个或多个条件代码时,所述分支未来指令解码电路...

【专利技术属性】
技术研发人员:托马斯·克里斯多夫·格鲁卡特理查德·罗伊·格里森思怀特西蒙·约翰·克拉斯克弗朗索瓦·克里斯托弗·雅克·波特曼布兰得利·约翰·史密斯
申请(专利权)人:ARM有限公司
类型:发明
国别省市:英国,GB

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

1