一种指令执行方法和装置制造方法及图纸

技术编号:2821846 阅读:180 留言:1更新日期:2012-04-11 18:40
本发明专利技术实施例公开了一种指令执行方法和装置,所述方法包括:根据被加数变量的地址读取所述被加数变量;对所述被加数变量与预设值进行比较操作;所述比较操作的结果成立时,对所述被加数变量执行加操作,并将所述加操作的结果赋值给所述被加数变量;返回比较操作前的被加数变量的值。本发明专利技术实施例将比较操作和加操作结合为一条新的原子比较加操作指令,增强了并行功能,提高了执行效率。

【技术实现步骤摘要】

本专利技术涉及计算机
,特别是涉及一种指令执行方法和装置。技术背景目前多核处理器蓬勃发展,应用越来越广泛,但软件的并发设计相对落 后于硬件的发展,制约了多核处理器优势的发挥。软件落后的主要原因之一 是,多核处理器一直未能给软件提供一整套标准且有效的并发指令集,以支 持软件并发处理和设计。当前实现的原子/并发指令有原子加指令、原子交换指令和原子比较交 换指令等。上述指令虽然都是原子的单指令,但都不能完全满足并发软件设 计的需要。
技术实现思路
本专利技术实施例提供一种指令执行方法和装置,将比较操作和加操作结合 为一条新的原子比较加操作指令,增强了并行功能,提高了执行效率。为达到上述目的,本专利技术实施例一方面提出一种指令执行方法,包括 根据被加数变量的地址读取所述被加数变量; 对所述被加数变量进行比较操作;当所述比较操作的结果成立时,对所述被加数变量执行加操作,并将所 述加操作的结果赋值给所述被加数变量。 返回比较操作前的所述被加数变量的值。另一方面,本专利技术实施例还提出一种指令执行装置,包括 读取模块,用于根据被加数变量的地址读取所述被加数变量; 比较才莫块,用于对所述读取模块所读取的被加数变量与预设值进行比较4操作;执行模块,用于当所述比较模块的比较操作的结果成立时,对所述被加 数变量执行加纟喿作,并将所述加操作的结果赋值给所述被加数变量。 返回模块,用于返回比较操作前的被加数变量。本专利技术实施例的技术方案具有以下优点,因为本专利技术实施例将比较操作 和加操作结合为一条新的原子比较加操作指令,从而,增强了并行功能,提 高了执行效率。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例描述中所 需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发 明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前 提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例中指令执行方法流程图;图2为本专利技术实施例中最典型的大于加,且加操作为32Bit有符号加的 指令描述;图3为本专利技术实施例中六种比较的助记符缩写; 图4为本专利技术实施例中指令执行方法的一种具体实现方式流程图; 图5为本专利技术实施例中指令执行方法的一种具体实现方式流程图; 图6为本专利技术实施例中指令执行装置结构图。具体实施方式本专利技术实施例将比较操作和加操作结合起来,形成了一个新的原子操作 的单指令原子比较加指令,并提供了执行该指令的方法和装置。下面结合附图和实施例,对本专利技术的具体实施方式作进一步详细描述 如图l所示,为本专利技术实施例中指令执行方法流程图,即原子比较加指令的 执行流程图,包括以下步骤S101、根据被加数变量的地址,从存储器中读取被加数变量的值。与预设值进行比较操作。如果比较操作的结果成立,即上述的被加数变量的值与预设值之间确实存在上述比较操作所对应的关系,则执行S103;如果比较操作的结果不成立,即上述的被加数变量的值与预设值之间不 存在上述比较操作所对应的关系,.则执行S105;例如比较操作具体为比较被加数变量是否大于预设值,则当被加数变 量的值大于预设值时,比较操作的结果成立,当被加数变量的值不大于预设 值时,比较操作的结果不成立。比较操作分为六种,即大于,小于,大于等于,小于等于,等于,不等于。对应这六种比较操作,本专利技术实施例所提出的执行指令也相应的分为六 种比较加操作,即大于加,小于加,大于等于加,小于等于加,等于加,不 等于加。基于上述操作分类,在应用本专利技术实施例所提出的执行指令过程中,只 要更换比较过程的具体内容,执行指令所对应的操作也可以产生相应的变化, 因此,本专利技术实施例所提出的执行指令实际上是一组指令,并且该指令是原 子的,单指令的。5103, 对被加数变量的值执行加操作。5104, 将加操作的结果赋值给被加数变量。如果比较操作的结果成立,则对^皮加数变量的值执行加4喿作。 加操作也有多种类型,如有符号加、无符号加、32位加和64位加等,和系统中实际的加指令是相同的。对被加数变量的值执行加操作后,将加操作的结果赋值给被加数变量。在此步骤中,被加数变量在存储器中的值被更新了。5105, 返回比较操作前的被力口数变量的值。如果S102的比较操作结果成立,则在S104执行完成之后,直接执行本 步骤,返回比较操作前的被加数变量的值;如果S102的比较操作结果不成立, 则在S102执行完成之后,直接执行本步骤,返回比较操作前的被加数变量的值。需要进一步指出的是,在本指令执行后,即上述的S101至S104所述的 原子比较加指令执行完成后,S105所返回的比较操作前的被加数变量的值, 可进一步用于后续指令判断本指令是否对被加数变量进行了实际的加操作, 即验证本指令的执行结果。其中,后续指令可以是上述原子比较加指令的重复执行,从而需要通过 S105返回的比较操作前的被加数变量的值,判断上述原子比较加指令前次执 行是否完成;也可以是其他操作指令,需要引用被加数变量,因此,通过S105 返回的比较操作前的被加数变量的值,判断上述原子比较加指令执行是否完 成。进一步的,后续指令判断本指令是否对被加数变量进行了实际的加操作, 具体为将返回的比较操作前的被加数变量的值与预设值进行Sl 02相同内容的比 较操作。如果比较操作的结果成立,则判断原子比较加指令对被加数变量执行了 力口操作。如果比较操作的结果不成立,则判断原子比较加指令没有对被加数变量 执行加操作。需要进一步说明的是,本实施例中的S105与S104之间没有必然的先后 关系,S105可以在S101执行完成之后至指令结束之前的任何时间执行,从而 返回比较前的被加数变量的值,即返回S101中读取的被力口数变量的值。因此, 图1所示的流程示意图对应的仅是本专利技术的一种优选实施例,S105所处位置 的变化并不影响本专利技术的保护范围。S106,结束指令操作。本专利技术实施例中的原子比较加指令是一组指令集,在助记符上是加和比 较的组合。如图2所示,为最典型的大于加,且加操作为32Bit有符号加的指 令描述。"gt"是大于的缩写。比较纟喿作分为六种,即大于,小于,大于等于,小于等于,等于,不等于。如图3所示,为上述六种比较的助记符缩写。加操作也有多种类型,如有符号加、无符号加、32位加和64位加等,和系统中实际的加指令是相同的。加操作和比较操作组合起来很多,我们选取一种典型形式用于具体解释。原子的32Bit有符号数大于加的指令操作的格式如下 addgt Ra, Rb, Rc其中,上述的Ra、 Rb和Rc是三个通用32bit寄存器。如图4所示,为本专利技术实施例中指令执行方法的一种具体实现方式流程图,对应上述格式的指令操作,以最常见的大于加为例进行说明,包括以下步骤S401, Ra的值是被加数变量的地址,指令执行装置根据这个地址,从 寄存器Ra中取出被力。数变量的值v。v为有符号的32bit数据,充当被加数。S402,指令执行装置对被加数变量的值v和Rb中储存的预设值进行比较 操作,即比较v是否大于Rb中的数据。Rb中储存着预设的有符号的32bit数据,该数据用于同S401中读取的被 加数进行比较。具体的比较操作可以为前述的六种比较操作中的一种,本实施例中所应 用的比较操作为大于比较本文档来自技高网...

【技术保护点】
一种指令执行方法,其特征在于,包括:根据被加数变量的地址读取所述被加数变量;对所述被加数变量与预设值进行比较操作;当所述比较操作的结果成立时,对所述被加数变量执行加操作,并将所述加操作的结果赋值给所述被加数变量;返回比较操作前的被加数变量的值。

【技术特征摘要】

【专利技术属性】
技术研发人员:高秋明
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:94[]

网友询问留言 已有1条评论
  • 来自[北京市联通] 2014年12月09日 20:53
    指示是命令旧时公文的一种是上级对下级呈请的批示另有解释告诉计算机从事某一特殊运算的代码如数据传送指令算术运算指令位运算指令程序流程控制指令串操作指令处理器控制指令
    0
1
相关领域技术
  • 暂无相关专利