[发明专利]条件式比较指令有效
申请号: | 201180023699.8 | 申请日: | 2011-04-12 |
公开(公告)号: | CN102893254A | 公开(公告)日: | 2013-01-23 |
发明(设计)人: | 戴维·詹姆斯·西尔;西蒙·约翰·克拉斯克 | 申请(专利权)人: | ARM有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/32 |
代理公司: | 北京东方亿思知识产权代理有限责任公司 11258 | 代理人: | 李晓冬 |
地址: | 英国*** | 国省代码: | 英国;GB |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 条件式 比较 指令 | ||
技术领域
本发明相关于数据处理领域。更特定而言,本发明相关于条件式比较指令。
背景技术
已知可提供具有用以代表处理装置的当前条件状态的各种条件标志(flag)的处理装置。此种数据处理装置的示例为由设立在英国剑桥的ARM Limited所设计的执行ARM指令集的处理器。指令可经安排以条件式地执行,以使条件标志的当前状态在条件式指令执行时,控制是否要执行条件式运算。例如,对于一种条件式指令类型,在执行时测试当前条件状态,并且,如果当前条件状态通过测试,则根据对两操作数所执行的运算结果更新条件标志。如果当前条件状态未通过测试,则指令作为不具功能的NOP指令,因此不改变条件标志。
此种指令可用以实施一些测试与对测试结果的逻辑运算的组合。例如,可使用指令序列来估算(evaluate)逻辑表达式(A==B&&C==D)||E==F,此逻辑表达式包括初始测试A==B及随后更进一步的测试链,并使用AND(&&)或OR(||)运算将其每一个的结果与自先前运算生成的条件标志结合,指令序列包括无条件式比较指令与一或多个条件式比较指令,每一个条件式比较指令被安排以仅在先前指令的结果满足特定条件时更新条件标志。
例如,表达式(A==B&&C==D)||E==F可由以下指令序列估算出:
CMP A,B
CMPEQ C,D
CMPNE E,F
无条件式比较指令CMP A,B比较A和B的值,并且,根据比较结果设定条件标志。如果A和B相等,则条件标志被置于EQ状态,同时如果A和B不相等,则条件标志被置于NE状态。
在执行条件式比较指令CMPEQ C,D时,如果条件标志为在EQ状态中(亦即,测试A==B满足),则执行C和D的间的比较,并且,根据比较结果更新条件标志。另外,在条件标志为在NE状态中时(亦即,测试A==B未满足),则CMPEQ指令作为NOP并且,不改变条件标志。此意味着在执行首两个指令的后,条件标志将仅在A=B和C=D时指示EQ状态,并将在其他情况指示NE状态。此为使用AND运算结合A==B和C==D测试的正确结果。
接着,执行条件式比较指令CMPNE E,F,并且,如果条件标志为在EQ状态中(亦即,测试A==B&&C==D满足),则CMPNE指令将被当作NOP,并且,因此条件代码将保持在EQ状态中。另外,如果条件标志为在NE状态中(亦即,测试A==B&&C==D未满足),则执行E和F的比较,并且,根据比较结果更新条件标志。因此,如果(A=B AND C=D)或E=F,最终结果将为EQ,并且,当这些测试都未满足时最终结果将为NE。此为使用OR运算结合(A==B&&C==D)和E==F测试的正确结果。
因此,条件式比较指令CMPEQ和CMPNE可用以估算为(A==B&&C==D)||E==F的形式的测试链。然而,仅可当链内所有的个别测试估算相同种类关时,或在估算可被转换成相同种类关的不同种类关时使用这些种类的指令。例如,在先前示例中,所有个别测试估算”相等”关系。或者,条件式指令可用以代表为(A>B&&C<D)的形式的逻辑条件,因为关系C<D可被转换成D>C,其与A>B为相同种类关系。然而,不可能测试诸如(例如)(A>B||C==D)&&E<=F或A==B&&C!=D的逻辑表达式,因为被测试的关系不同,并且,无法彼此转换。
因此,这些条件式指令仅可用于测试特定种类的逻辑表达式。此意味着使用此等指令所能编译的原始码数量被限制,并且,对编译程序而言,确定条件式指令是否可用于特定应用是复杂的。
发明内容
本发明的第一方面提供一种数据处理装置,包括:
处理电路,其用于处理数据;
指令译码器,其响应于程序指令以生成用于控制所述处理电路以处理所述数据的控制信号;
状态存储器,其用于存储所述处理电路的当前条件状态,所述当前条件状态在处理所述数据期间为可修改的;
其中所述等程序指令包括条件式比较指令,并且,所述指令译码器响应于所述条件式比较指令以生成用于控制所述处理电路以执行条件式比较运算的控制信号,所述条件式比较运算包括:
(i)如果所述当前条件状态通过测试条件,则对第一操作数和第二操作数执行比较运算,并设定所述当前条件状态为在所述比较运算期间生成的结果条件状态;以及
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于ARM有限公司,未经ARM有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201180023699.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:用于将电线连接到压接端子的结构
- 下一篇:用于将旋转运动转换为平移运动的装置