处理指令的方法、编译器及指令处理器的制造方法

文档序号:6543529阅读:151来源:国知局
处理指令的方法、编译器及指令处理器的制造方法
【专利摘要】本发明公开了一种处理指令的方法、编译器及指令处理器,属于信息处理【技术领域】。所述方法包括:根据各条指令的指令模板确定各条指令的命令字、源数据接口及目标数据接口;按照各条指令的命令字处理各条指令的源数据接口对应的数据,并从各条指令的目标数据接口输出处理结果。本发明通过获取各条指令的命令字、源数据接口及目标数据接口,按照各条指令的命令字处理各条指令的源数据接口对应的数据,并从各条指令的目标数据接口输出处理结果,使处理指令不依赖于执行单元,提高指令处理的运行速度的同时,取消了并行处理的指令的数量限制,且提高了处理效率及处理指令的执行性能。
【专利说明】处理指令的方法、编译器及指令处理器
【技术领域】
[0001]本发明涉及信息处理【技术领域】,特别涉及一种处理指令的方法、编译器及指令处理器。
【背景技术】
[0002]指令是指示处理器执行某种操作的命令,通过处理各条指令可以实现预期的功能,例如,通过处理报文中包括的各条指令完成报文的处理。指令分为用于实现数据的复制和搬迁工作的赋值指令和其它指令,赋值指令又可以分为条件赋值指令和非条件赋值指令。而在实际应用中,赋值指令是应用较多的指令,因此,如何处理指令,尤其是如何处理赋值指令,是减少指令处理时间,提高程序的运行速度,进而提高处理指令的执行性能的关键。
[0003]目前,处理指令的方法为:在执行一条指令时,将该指令的运行划分为取址、译码、执行、内存操作和写回等多个阶段。该条指令的所有阶段均由独立的流水线功能单元执行,通过并行执行多个执行单元的方式同时执行多条指令,从而提高处理指令的运行速度。
[0004]在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
[0005]由于处理器通过多个可以并行执行的执行单元处理程序中的各条指令,而赋值指令由于涉及到数据的复制及搬迁,因而赋值指令需要特殊执行单元执行,处理器中该特殊执行单元的数量是有限的,因此,限制了并行处理的赋值指令的数量,导致该种处理指令的方式具有一定的局限性,且处理效率不高。同时由于赋值指令涉及到数据的复制及搬迁,使得赋值指令会与其它指令中产生依赖关系,而存在依赖关系的指令不能并行执行,因此限制了并行处理的指令的数量,降低了处理效率。

【发明内容】

[0006]为了解决现有技术的问题,本发明实施例提供了一种处理指令的方法、编译器及指令处理器。所述技术方案如下:
[0007]第一方面,提供了一种指令处理的方法,所述方法包括:
[0008]获取指令模板组,所述指令模板组包括每条指令的指令模板;
[0009]获取所述指令模板组中的各个指令模板,所述指令模板用于描述指令的命令字、源数据接口及目标数据接口,所述源数据接口为输入指令处理数据的接口,所述目标数据接口为输出指令处理结果的接口;
[0010]根据各条指令的指令模板确定各条指令的命令字、源数据接口及目标数据接口 ;
[0011]按照各条指令的命令字处理各条指令的源数据接口对应的数据,并从各条指令的目标数据接口输出处理结果。
[0012]结合第一方面,在第一方面的第一种可能的实现方式中,所述根据各条指令的指令模板确定各条指令的命令字、源数据接口及目标数据接口,包括:
[0013]根据各条指令的指令模板在所述指令模板组中的位置确定各条指令的目标数据接口 ;
[0014]根据各条指令的指令模板的内容确定各条指令的命令字及源数据接口。
[0015]结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述根据各条指令的指令模板的内容确定各条指令的命令字及源数据接口,包括:
[0016]如果任一指令的指令模板中包括标志字标识、第一源数据接口及第二源数据接口,则确定所述任一指令的命令字为条件赋值命令字,并根据所述标志字标识从所述第一源数据接口及所述第二源数据接口中选择所述任一指令的源数据接口。
[0017]结合第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述根据各条指令的指令模板的内容确定各条指令的命令字及源数据接口,包括:
[0018]如果任一指令的指令模板中包括第三源数据接口,则确定所述任一指令的命令字为非条件赋值命令字,并将所述第三源数据接口确定为所述任一指令的源数据接口。
[0019]结合第一方面的第一种可能的实现方式,在第一方面的第四种可能的实现方式中,所述指令模板组还包括命令字模板,所述命令字模板用于描述各个ALU (ArithmeticLogic Unit,算术逻辑运算单元)对应的命令字;
[0020]所述根据各条指令的指令模板的内容确定各条指令的命令字及源数据接口,包括:
[0021]如果任一指令的指令模板中包括第四源数据接口及第五源数据接口,则将所述第四源数据接口及所述第五源数据接口均确定为所述任一指令的源数据接口 ;
[0022]根据所述任一指令的目标数据接口确定所述任一指令的ALU,根据所述任一指令的ALU及所述命令字模板确定所述任一指令的命令字。
[0023]结合第一方面,在第一方面的第五种可能的实现方式中,所述按照各条指令的命令字处理各条指令的源数据接口对应的数据,并从各条指令的目标数据接口输出处理结果,包括:
[0024]获取各条指令的源数据接口对应的数据,并从各条指令的目标数据接口输出所述数据。
[0025]第二方面,提供了一种指令模板组的生成方法,所述方法包括:
[0026]获取各条指令的命令字、源数据接口及目标数据接口,并根据各条指令的命令字及源数据接口生成各条指令的指令模板;
[0027]根据各条指令的目标数据接口及指令模板生成并存储指令模板,以为指令处理的方法提供指令模板组。
[0028]结合第二方面,在第二方面的第一种可能的实现方式中,所述根据各条指令的命令字及源数据接口生成各条指令的指令模板,包括:
[0029]如果任一指令的命令字为条件赋值命令字,则根据所述任一指令确定第一源数据接口及第二源数据接口,根据所述任一指令的源数据接口确定标志字标识;
[0030]根据所述标志字标识、所述第一源数据接口及所述第二源数据接口生成所述任一指令的指令模板。
[0031]结合第二方面,在第二方面的第二种可能的实现方式中,所述根据各条指令的命令字及源数据接口生成各条指令的指令模板,包括:
[0032]如果任一指令的命令字为非条件赋值命令字,则将所述任一指令的源数据接口确定为第三源数据接口;
[0033]根据所述第三源数据接口生成所述任一指令的指令模板。
[0034]结合第二方面,在第二方面的第三种可能的实现方式中,所述根据各条指令的命令字及源数据接口生成各条指令的指令模板,包括:
[0035]如果任一指令的命令字为非条件赋值命令字及条件赋值命令字之外的其它命令字,则根据所述任一指令确定第四源数据接口及第五源数据接口,根据所述任一指令的目标数据接口确定所述任一指令的ALU,并根据所述第四源数据接口及所述第五源数据接口生成所述任一指令的指令模板;
[0036]所述根据各条指令的目标数据接口及指令模板生成并存储指令模板组,包括:
[0037]根据各条指令的ALU生成命令字模板;
[0038]根据所述命令字模板、各条指令的目标数据接口及指令模板生成并存储指令模板组。
[0039]结合第二方面,在第二方面的第四种可能的实现方式中,所述根据各条指令的目标数据接口及指令模板生成并存储指令模板组,包括:
[0040]根据各条指令的目标数据接口确定各条指令的指令模板在指令模板组中的位置,根据各条指令的指令模板在指令模板组中的位置及各条指令的指令模板生成并存储指令模板组。
[0041]结合第二方面的第三种可能的实现方式,在第二方面的第五种可能的实现方式中,所述根据所述命令字模板、各条指令的目标数据接口及指令模板生成并存储指令模板组,包括:
[0042]根据各条指令的目标数据接口确定各条指令的指令模板在指令模板组中的位置,根据所述命令字模板、各条指令的指令模板在指令模板组中的位置及各条指令的指令模板生成并存储指令模板组。
[0043]第三方面,提供了一种指令处理的指令处理器,所述指令处理器包括:
[0044]第一获取模块,用于获取指令模板组,所述指令模板组包括每条指令的指令模板;
[0045]第二获取模块,用于获取所述第一获取模块获取到的指令模板组中的各个指令模板,所述指令模板用于描述指令的命令字、源数据接口及目标数据接口,所述源数据接口为输入指令处理内容的接口,所述目标数据接口为输出指令处理结果的接口 ;
[0046]确定模块,用于根据各条指令的指令模板确定各条指令的命令字、源数据接口及目标数据接口;
[0047]输入模块,用于按照各条指令的命令字处理各条指令的源数据接口对应的数据,并从各条指令的目标数据接口输出处理结果。
[0048]结合第三方面,在第三方面的第一种可能的实现方式中,所述确定模块,包括:
[0049]第一确定单元,用于根据各条指令的指令模板在所述指令模板组中的位置确定各条指令的目标数据接口;
[0050]第二确定单元,用于根据各条指令的指令模板的内容确定各条指令的命令字及源数据接口。
[0051]结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述第二确定单元,用于当任一指令的指令模板中包括标志字标识、第一源数据接口及第二源数据接口时,确定所述任一指令的命令字为条件赋值命令字,并根据所述标志字标识从所述第一源数据接口及所述第二源数据接口中选择所述任一指令的源数据接口。
[0052]结合第三方面的第一种可能的实现方式,在第三方面的第三种可能的实现方式中,所述第二确定单元,用于当任一指令的指令模板中包括第三源数据接口时,确定所述任一指令的命令字为非条件赋值命令字,并将所述第三源数据接口确定为所述任一指令的源数据接口。
[0053]结合第三方面的第一种可能的实现方式,在第三方面的第四种可能的实现方式中,所述指令模板组还包括命令字模板,所述命令字模板用于描述各个ALU对应的命令字;
[0054]所述第二确定单元,用于当任一指令的指令模板中包括第四源数据接口及第五源数据接口时,将所述第四源数据接口及所述第五源数据接口均确定为所述任一指令的源数据接口 ;根据所述任一指令的目标数据接口确定所述任一指令的ALU,根据所述任一指令的ALU及所述命令字模板确定所述任一指令的命令字。
[0055]结合第三方面,在第三方面的第五种可能的实现方式中,所述输出模块,用于获取各条指令的源数据接口对应的数据,并从各条指令的目标数据接口输出所述数据。
[0056]第四方面,提供了一种编译器,所述编译器包括:
[0057]获取模块,用于获取各条指令的命令字、源数据接口及目标数据接口 ;
[0058]生成模块,用于根据各条指令的命令字及源数据接口生成各条指令的指令模板;
[0059]存储模块,用于根据各条指令的目标数据接口及指令模板生成并存储指令模板组,以为指令处理的方法提供指令模板组。
[0060]结合第四方面,在第四方面的第一种可能的实现方式中,所述生成模块,包括:
[0061]第一确定单元,用于当任一指令的命令字为条件赋值命令字时,根据所述任一指令确定第一源数据接口及第二源数据接口;
[0062]第二确定单元,用于根据所述任一指令的源数据接口确定标志字标识;
[0063]第一生成单元,用于根据所述第二确定单元确定的标志字标识、所述第一确定单元确定的所述第一源数据接口及所述第二源数据接口生成所述任一指令的指令模板。
[0064]结合第四方面,在第四方面的第二种可能的实现方式中,所述生成模块,包括:
[0065]第三确定单元,用于当任一指令的命令字为非条件赋值命令字时,将所述任一指令的源数据接口确定为第三源数据接口;
[0066]第二生成单元,用于根据所述第三确定单元确定的第三源数据接口生成所述任一指令的指令模板。
[0067]结合第四方面,在第四方面的第三种可能的实现方式中,所述生成模块,包括:
[0068]第四确定单元,用于当任一指令的命令字为非条件赋值命令字及条件赋值命令字之外的其它命令字时,根据所述任一指令确定第四源数据接口及第五源数据接口 ;
[0069]第五确定单元,用于根据所述任一指令的目标数据接口确定所述任一指令的ALU ;
[0070]第三生成单元,用于根据所述第四确定单元确定的所述第四源数据接口及所述第五源数据接口生成所述任一指令的指令模板;
[0071 ] 所述存储模块,包括:[0072]生成单元,用于根据各条指令的ALU生成命令字模板;
[0073]第一存储单元,用于根据所述生成单元生成的命令字模板、各条指令的目标数据接口及指令模板生成并存储指令模板组。
[0074]结合第四方面,在第四方面的第四种可能的实现方式中,所述存储模块,包括:
[0075]确定单元,用于根据各条指令的目标数据接口确定各条指令的指令模板在指令模板组中的位置;
[0076]第二存储单元,用于根据所述确定单元确定的各条指令的指令模板在指令模板组中的位置及各条指令的指令模板生成并存储指令模板组。
[0077]结合第四方面的第三种可能的实现方式,在第四方面的第五种可能的实现方式中,所述第一存储单元,用于根据各条指令的目标数据接口确定各条指令的指令模板在指令模板组中的位置,根据所述命令字模板、各条指令的指令模板在指令模板组中的位置及各条指令的指令模板生成并存储指令模板组。
[0078]本发明实施例提供的技术方案带来的有益效果是:
[0079]通过获取各条指令的命令字、源数据接口及目标数据接口,按照各条指令的命令字处理各条指令的源数据接口对应的数据,并从各条指令的目标数据接口输出处理结果,使处理指令不依赖于执行单元,提高指令处理的运行速度的同时,取消了并行处理的指令的数量限制,且提高了处理效率及处理指令的执行性能。
【专利附图】

【附图说明】
[0080]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0081]图1是本发明实施例一提供的一种处理指令的方法流程图;
[0082]图2是本发明实施例一提供的一种指令模板组的生成方法流程图;
[0083]图3是本发明实施例二提供的一种指令模板组的生成方法流程图;
[0084]图4是本发明实施例二提供的一种指令模板生成过程的示意图;
[0085]图5是本发明实施例三提供的一种处理指令的方法流程图;
[0086]图6是本发明实施例三提供的一种确定指令的命令字及源数据接口过程的示意图;
[0087]图7是本发明实施例三提供的一种通过数据选路器确定各条指令的命令字、源数据接口及目标数据接口过程的示意图;
[0088]图8是本发明实施例三提供的一种通过超长指令字动作单元处理指令的方法执行过程的示意图;
[0089]图9是本发明实施例四提供的一种指令处理器的结构示意图;
[0090]图10是本发明实施例四提供的一种确定模块的结构示意图;
[0091]图11是本发明实施例五提供的一种编译器的结构示意图;
[0092]图12是本发明实施例五提供的第一种生成模块的结构示意图;
[0093]图13是本发明实施例五提供的第二种生成模块的结构示意图;[0094]图14是本发明实施例五提供的第三种生成模块的结构示意图;
[0095]图15是本发明实施例五提供的一种存储模块的结构示意图;
[0096]图16是本发明实施例五提供的另一种存储模块的结构示意图。
【具体实施方式】
[0097]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0098]由于指令处理器中执行赋值指令的执行单元的数量是有限的,从而限制了并行处理的赋值指令的数量,导致指令处理效率不高;同时由于赋值指令产生依赖关系,限制了并行处理的指令的数量,降低了处理效率。为了提高指令处理效率,本发明实施例提供了一种处理指令的方法。该处理指令的方法应用于一种终端,该终端上运行有指令处理器,该指令处理器如下述实施例四所述的指令处理器。该指令处理器可以按照实施例五所述的编译器生成的指令模板组中各条指令对应的命令字处理各条指令的源数据接口对应的数据,并从各条指令的目标数据接口输出处理结果,使处理指令不依赖于执行单元,提高指令处理的运行速度的同时,提高了处理效率及处理指令的执行性能。
[0099]实施例一
[0100]本实施例提供了一种处理指令的方法,参见图1,本实施例提供的方法包括:
[0101]101:获取指令模板组,指令模板组包括每条指令的指令模板;
[0102]102:获取指令模板组中的各个指令模板,指令模板用于描述指令的命令字、源数据接口及目标数据接口,源数据接口为输入指令处理数据的接口,目标数据接口为输出指令处理结果的接口;
[0103]103:根据各条指令的指令模板确定各条指令的命令字、源数据接口及目标数据接Π ;
[0104]可选地,根据各条指令的指令模板确定各条指令的命令字、源数据接口及目标数据接口,包括:
[0105]根据各条指令的指令模板在指令模板组中的位置确定各条指令的目标数据接Π ;
[0106]根据各条指令的指令模板的内容确定各条指令的命令字及源数据接口。
[0107]可选地,根据各条指令的指令模板的内容确定各条指令的命令字及源数据接口,包括:
[0108]如果任一指令的指令模板中包括标志字标识、第一源数据接口及第二源数据接口,则确定任一指令的命令字为条件赋值命令字,并根据标志字标识从第一源数据接口及第二源数据接口中选择任一指令的源数据接口。
[0109]可选地,根据各条指令的指令模板的内容确定各条指令的命令字及源数据接口,包括:
[0110]如果任一指令的指令模板中包括第三源数据接口,则确定任一指令的命令字为非条件赋值命令字,并将第三源数据接口确定为任一指令的源数据接口。
[0111]可选地,指令模板组还包括命令字模板,命令字模板用于描述各个ALU对应的命令字;[0112]根据各条指令的指令模板的内容确定各条指令的命令字及源数据接口,包括:
[0113]如果任一指令的指令模板中包括第四源数据接口及第五源数据接口,则将第四源数据接口及第五源数据接口均确定为任一指令的源数据接口;
[0114]根据任一指令的目标数据接口确定任一指令的ALU,根据任一指令的ALU及命令字模板确定任一指令的命令字。
[0115]104:按照各条指令的命令字处理各条指令的源数据接口对应的数据,并从各条指令的目标数据接口输出处理结果。
[0116]可选地,按照各条指令的命令字处理各条指令的源数据接口对应的数据,并从各条指令的目标数据接口输出处理结果,包括:
[0117]获取各条指令的源数据接口对应的数据,并从各条指令的目标数据接口输出数据。
[0118]本实施例还提供了一种指令模板组的生成方法,参见图2,本实施例提供的方法包括:
[0119]201:获取各条指令的命令字、源数据接口及目标数据接口,并根据各条指令的命令字及源数据接口生成各条指令的指令模板;
[0120]202:根据各条指令的目标数据接口及指令模板生成并存储指令模板组,以为指令处理的方法提供指令模板组。
[0121 ] 可选地,根据各条指令的命令字及源数据接口生成各条指令的指令模板,包括:
[0122]如果任一指令的命令字为条件赋值命令字,则根据任一指令确定第一源数据接口及第二源数据接口,根据任一指令的源数据接口确定标志字标识;
[0123]根据标志字标识、第一源数据接口及第二源数据接口生成任一指令的指令模板。
[0124]可选地,根据各条指令的命令字及源数据接口生成各条指令的指令模板,包括:
[0125]如果任一指令的命令字为非条件赋值命令字,则将任一指令的源数据接口确定为第三源数据接口;
[0126]根据第三源数据接口生成任一指令的指令模板。
[0127]可选地,根据各条指令的命令字及源数据接口生成各条指令的指令模板,包括:
[0128]如果任一指令的命令字为非条件赋值命令字及条件赋值命令字之外的其它命令字,则根据任一指令确定第四源数据接口及第五源数据接口,根据任一指令的目标数据接口确定任一指令的ALU,并根据第四源数据接口及第五源数据接口生成任一指令的指令模板;
[0129]根据各条指令的目标数据接口及指令模板生成并存储指令模板组,包括:
[0130]根据各条指令的ALU生成命令字模板;
[0131]根据命令字模板、各条指令的目标数据接口及指令模板生成并存储指令模板组。
[0132]可选地,根据各条指令的目标数据接口及指令模板生成并存储指令模板组,包括:
[0133]根据各条指令的目标数据接口确定各条指令的指令模板在指令模板组中的位置,根据各条指令的指令模板在指令模板中的位置及各条指令的指令模板生成并存储指令模板组。
[0134]可选地,根据命令字模板、各条指令的目标数据接口及指令模板生成并存储指令模板组,包括:
[0135]根据各条指令的目标数据接口确定各条指令的指令模板在指令模板组中的位置,根据命令字模板、各条指令的指令模板在指令模板组中的位置及各条指令的指令模板生成并存储指令模板组。
[0136]本发明实施例提供的方法,通过获取各条指令的命令字、源数据接口及目标数据接口,按照各条指令的命令字处理各条指令的源数据接口对应的数据,并从各条指令的目标数据接口输出处理结果,使处理指令不依赖于执行单元,提高指令处理的运行速度的同时,取消了并行处理的指令的数量限制,且提高了处理效率及处理指令的执行性能。
[0137]实施例二
[0138]本发明实施例提供了一种指令模板组的生成方法,结合上述实施例一的内容,为了便于说明,本实施例以指令I为MOV r4,r5,指令2为MOVC r6,r7,r8,1,指令3为ADDrl,r2,r3为例,对本实施例提供的指令处理的方法进行说明。参见图3,本实施例提供的方法流程包括:
[0139]301:获取各条指令的命令字、源数据接口及目标数据接口 ;
[0140]其中,源数据接口为输入指令处理数据的接口,目标数据接口为输出指令处理结果的接口。由于存储指令处理数据的设备可以为寄存器,也可以为内存,或者其它存储设备,因此与源数据接口连接的可以为寄存器,也可以为内存,或者其它存储设备,本实施例不对存储指令处理数据的具体设备进行限定,本实施例也不对与源数据接口连接的具体设备进行限定。由于存储指令处理结果的设备可以为寄存器,也可以为内存,或者其它存储设备,因此与目标数据接口连接的可以为寄存器,也可以为内存,或者其它存储设备,本实施例不对存储指令处理结果的具体设备进行限定,本实施例也不对与目标数据接口连接的具体设备进行限定。
[0141]另外,为了便于对本实施例提供的方法进行说明,本实施例及后续实施例均以存储指令处理数据的设备为寄存器,存储指令处理结果的设备也为寄存器为例。
[0142]由于各条指令均是依照各条指令的指令规则生成的,因此根据各条指令及各条指令的指令规则可以获得各条指令的命令字、源数据接口及目标数据接口,本实施例不对获取各条指令的命令字、源数据接口及目标数据接口的具体方式进行限定。
[0143]例如,对于指令1:M0V r4, r5, MOV对应的指令为非条件赋值指令,该指令的指令规则为从目标数据接口输出源数据接口对应的数据。以非条件赋值指令MOV r9,rl0为例,其指令规则为:从与寄存器rlO连接的接口获取寄存器rlO中的数据,并从与寄存器r9连接的接口输出寄存器rlO中的数据。因此,根据指令I及指令I的指令规则获取指令I的命令字为非赋值指令命令字,源数据接口为与r5连接的接口,目标数据接口为与r4连接的接口。
[0144]对于指令2:M0VC r6,r7,r8,1,MOVC对应的指令为条件赋值指令,该指令的指令规则为根据某一条件从两个源数据接口中选取一个源数据接口,并从目标数据接口输出选择的源数据接口对应的数据。以条件赋值指令MOVCrlI,rl2, rl3, FLAG为例,其指令规则为:当FLAG为O时,从与寄存器rl2连接的接口获取寄存器rl2中的数据,并从与寄存器rll连接的接口输出寄存器rl2中的数据;当FLAG非O时,从与寄存器rl3连接的接口获取寄存器rl3中的数据,并从与寄存器rll连接的接口输出寄存器rl3中的数据。因此,根据指令2及指令2的指令规则获取指令2的命令字为赋值指令命令字,源数据接口为与r8连接的接口,目标数据接口为与r6连接的接口。
[0145]对于指令3:ADD rl, r2, r3, ADD对应的指令为求和指令,该指令的指令规则为从目标数据接口输出两个源数据接口对应的数据的和。以求和指令ADD rl4,rl5,rl6为例,其指令规则为:从与寄存器rl5连接的接口获取寄存器rl5中的数据,从与寄存器rl6连接的接口获取寄存器rl6中的数据,并从与寄存器rl4连接的接口输出寄存器rl5中的数据与寄存器rl6中的数据的和。因此,根据指令3及指令3的指令规则获取指令3的命令字为求和命令字,源数据接口为与r2连接的接口和与r3连接的接口,目标数据接口为与rl连接的接口。
[0146]当然,各条指令的指令规则还可以为其它规则,本实施例不对各条指令的具体指令规则进行限定。寄存器的名称还可以为其它名称,本实施例不对寄存器的具体名称进行限定。
[0147]302:根据各条指令的命令字、源数据接口生成各条指令的指令模板;
[0148]生成的指令模板随着指令的命令字的不同而变化,本实施例不对根据各条指令的命令字、源数据接口生成各条指令的指令模板的具体方法进行限定。例如,对于任一指令,其命令字可以为如下三种命令字中的任意一种命令字:
[0149]第一种命令字:条件赋值命令字;
[0150]对于第一种命令字,根据指令的命令字、源数据接口生成任一指令的指令模板的方法为:根据任一指令确定第一源数据接口及第二源数据接口,根据任一指令的源数据接口确定标志字标识;根据标志字标识、第一源数据接口及第二源数据接口生成任一指令的指令1吴板。
[0151]以指令2为例:由于指令2的命令字为条件赋值命令字,源数据接口为与r8连接的接口,目标数据接口为与r6连接的接口,则根据指令2:M0VC r6,r7,r8,I确定第一源数据接口为与r7连接的接口,第二源数据接口为与r8连接的接口,并根据指令2的源数据接口确定标志字标识为I ;根据标志字标识、第一源数据接口及第二源数据接口生成指令2的指令模板2如表I所示。
[0152]表I
[0153]
标志字标识I第一源数据接口 I第二源数据接口~
I与r7连接的接口与r8连接的接口
[0154]生成的指令2的指令模板2还可以为其它形式,本实施例不对生成的指令模板2的具体形式进行限定。生成的指令模板2的内容还可以为其它内容,本实施例不对生成的指令模板2的具体内容进行限定。指令模板的名称还可以为其它名称,本实施例不对指令模板的具体名称进行限定。
[0155]第二种命令字:非条件赋值命令字;
[0156]对于第二种命令字,根据指令的命令字、源数据接口生成任一指令的指令模板的方法为:将任一指令的源数据接口确定为第三源数据接口 ;根据第三源数据接口生成任一指令的指令模板。[0157]以指令I为例:由于指令I的命令字为非条件赋值命令字,源数据接口为与r5连接的接口,目标数据接口为与r4连接的接口,则将指令I的源数据接口:与r5连接的接口确定为第三源数据接口 ;根据第三源数据接口生成指令I的指令模板I如表2所示。
[0158]表2
[0159]
【权利要求】
1.一种指令处理的方法,其特征在于,所述方法包括: 获取指令模板组,所述指令模板组包括每条指令的指令模板; 获取所述指令模板组中的各个指令模板,所述指令模板用于描述指令的命令字、源数据接口及目标数据接口,所述源数据接口为输入指令处理数据的接口,所述目标数据接口为输出指令处理结果的接口; 根据各条指令的指令模板确定各条指令的命令字、源数据接口及目标数据接口 ; 按照各条指令的命令字处理各条指令的源数据接口对应的数据,并从各条指令的目标数据接口输出处理结果。
2.根据权利要求1所述的方法,其特征在于,所述根据各条指令的指令模板确定各条指令的命令字、源数据接口及目标数据接口,包括: 根据各条指令的指令模板在所述指令模板组中的位置确定各条指令的目标数据接口 ; 根据各条指令的指令模板的内容确定各条指令的命令字及源数据接口。
3.根据权利要求2所述的方法,其特征在于,所述根据各条指令的指令模板的内容确定各条指令的命令字及源数据接口,包括: 如果任一指令的指令模板中包括标志字标识、第一源数据接口及第二源数据接口,则确定所述任一指令的命令字为条件赋值命令字,并根据所述标志字标识从所述第一源数据接口及所述第二源数据接口中选择所述任一指令的源数据接口。
4.根据权利要求2所述的方法,其特征在于,所述根据各条指令的指令模板的内容确定各条指令的命令字及源数据接口,包括: 如果任一指令的指令模板中包括第三源数据接口,则确定所述任一指令的命令字为非条件赋值命令字,并将所述第三源数据接口确定为所述任一指令的源数据接口。
5.根据权利要求2所述的方法,其特征在于,所述指令模板组还包括命令字模板,所述命令字模板用于描述各个算术逻辑运算单元ALU对应的命令字; 所述根据各条指令的指令模板的内容确定各条指令的命令字及源数据接口,包括: 如果任一指令的指令模板中包括第四源数据接口及第五源数据接口,则将所述第四源数据接口及所述第五源数据接口均确定为所述任一指令的源数据接口 ; 根据所述任一指令的目标数据接口确定所述任一指令的ALU,根据所述任一指令的ALU及所述命令字模板确定所述任一指令的命令字。
6.根据权利要求1所述的方法,其特征在于,所述按照各条指令的命令字处理各条指令的源数据接口对应的数据,并从各条指令的目标数据接口输出处理结果,包括: 获取各条指令的源数据接口对应的数据,并从各条指令的目标数据接口输出所述数据。
7.一种指令模板组的生成方法,其特征在于,所述方法包括: 获取各条指令的命令字、源数据接口及目标数据接口,并根据各条指令的命令字及源数据接口生成各条指令的指令模板; 根据各条指令的目标数据接口及指令模板生成并存储指令模板组,以为指令处理的方法提供指令模板组。
8.根据权利要求7所述的方法,其特征在于,所述根据各条指令的命令字及源数据接口生成各条指令的指令模板,包括: 如果任一指令的命令字为条件赋值命令字,则根据所述任一指令确定第一源数据接口及第二源数据接口,根据所述任一指令的源数据接口确定标志字标识; 根据所述标志字标识、所述第一源数据接口及所述第二源数据接口生成所述任一指令的指令模板。
9.根据权利要求7所述的方法,其特征在于,所述根据各条指令的命令字及源数据接口生成各条指令的指令模板,包括: 如果任一指令的命令字为非条件赋值命令字,则将所述任一指令的源数据接口确定为第三源数据接口; 根据所述第三源数据接口生成所述任一指令的指令模板。
10.根据权利要求7所述的方法,其特征在于,所述根据各条指令的命令字及源数据接口生成各条指令的指令模板,包括: 如果任一指令的命令字为非条件赋值命令字及条件赋值命令字之外的其它命令字,则根据所述任一指令确定第四源数据接口及第五源数据接口,根据所述任一指令的目标数据接口确定所述任一指令的算术逻辑运算单元ALU,并根据所述第四源数据接口及所述第五源数据接口生成所述任一指令的指令模板; 所述根据各条指令 根据各条指令的ALU生成命令字模板; 根据所述命令字模板、各条指令的目标数据接口及指令模板生成并存储指令模板组。
11.根据权利要求7所述的方法,其特征在于,所述根据各条指令的目标数据接口及指令模板生成并存储指令模板组,包括: 根据各条指令的目标数据接口确定各条指令的指令模板在指令模板组中的位置,根据各条指令的指令模板在指令模板组中的位置及各条指令的指令模板生成并存储指令模板组。
12.根据权利要求10所述的方法,其特征在于,所述根据所述命令字模板、各条指令的目标数据接口及指令模板生成并存储指令模板组,包括: 根据各条指令的目标数据接口确定各条指令的指令模板在指令模板组中的位置,根据所述命令字模板、各条指令的指令模板在指令模板组中的位置及各条指令的指令模板生成并存储指令模板组。
13.一种指令处理的指令处理器,其特征在于,所述指令处理器包括: 第一获取模块,用于获取指令模板组,所述指令模板组包括每条指令的指令模板;第二获取模块,用于获取所述第一获取模块获取到的指令模板组中的各个指令模板,所述指令模板用于描述指令的命令字、源数据接口及目标数据接口,所述源数据接口为输入指令处理数据的接口,所述目标数据接口为输出指令处理结果的接口 ; 确定模块,用于根据各条指令的指令模板确定各条指令的命令字、源数据接口及目标数据接口 ; 输出模块,用于按照各条指令的命令字处理各条指令的源数据接口对应的数据,并从各条指令的目标数据接口输出处理结果。
14.根据权利要求13所述的指令处理器,其特征在于,所述确定模块,包括:第一确定单元,用于根据各条指令的指令模板在所述指令模板组中的位置确定各条指令的目标数据接口; 第二确定单元,用于根据各条指令的指令模板的内容确定各条指令的命令字及源数据接口。
15.根据权利要求14所述的指令处理器,其特征在于,所述第二确定单元,用于当任一指令的指令模板中包括标志字标识、第一源数据接口及第二源数据接口时,确定所述任一指令的命令字为条件赋值命令字,并根据所述标志字标识从所述第一源数据接口及所述第二源数据接口中选择所述任一指令的源数据接口。
16.根据权利要求14所述的指令处理器,其特征在于,所述第二确定单元,用于当任一指令的指令模板中包括第三源数据接口时,确定所述任一指令的命令字为非条件赋值命令字,并将所述第三源数据接口确定为所述任一指令的源数据接口。
17.根据权利要求14所述的指令处理器,其特征在于,所述指令模板组还包括命令字模板,所述命令字模板用于描述各个算术逻辑运算单元ALU对应的命令字; 所述第二确定单元,用于当任一指令的指令模板中包括第四源数据接口及第五源数据接口时,将所述第四源数据接口及所述第五源数据接口均确定为所述任一指令的源数据接口 ;根据所述任一指令的目标数据接口确定所述任一指令的ALU,根据所述任一指令的ALU及所述命令字模板确定所述任一指令的命令字。
18.根据权利要求13所述的指令处理器,其特征在于,所述输出模块,用于获取各条指令的源数据接口对应的数 据,并从各条指令的目标数据接口输出所述数据。
19.一种编译器,其特征在于,所述编译器包括: 获取模块,用于获取各条指令的命令字、源数据接口及目标数据接口 ; 生成模块,用于根据各条指令的命令字及源数据接口生成各条指令的指令模板; 存储模块,用于根据各条指令的目标数据接口及指令模板生成并存储指令模板组,以为指令处理的方法提供指令模板组。
20.根据权利要求19所述的编译器,其特征在于,所述生成模块,包括: 第一确定单元,用于当任一指令的命令字为条件赋值命令字时,根据所述任一指令确定第一源数据接口及第二源数据接口; 第二确定单元,用于根据所述任一指令的源数据接口确定标志字标识; 第一生成单元,用于根据所述第二确定单元确定的标志字标识、所述第一确定单元确定的所述第一源数据接口及所述第二源数据接口生成所述任一指令的指令模板。
21.根据权利要求19所述的编译器,其特征在于,所述生成模块,包括: 第三确定单元,用于当任一指令的命令字为非条件赋值命令字时,将所述任一指令的源数据接口确定为第三源数据接口; 第二生成单元,用于根据所述第三确定单元确定的第三源数据接口生成所述任一指令的指令模板。
22.根据权利要求19所述的编译器,其特征在于,所述生成模块,包括: 第四确定单元,用于当任一指令的命令字为非条件赋值命令字及条件赋值命令字之外的其它命令字时,根据所述任一指令确定第四源数据接口及第五源数据接口 ; 第五确定单元,用于根据所述任一指令的目标数据接口确定所述任一指令的算术逻辑运算单元ALU ; 第三生成单元,用于根据所述第四确定单元确定的所述第四源数据接口及所述第五源数据接口生成所述任一指令的指令模板; 所述存储模块,包括: 生成单元,用于根据各条指令的ALU生成命令字模板; 第一存储单元,用于根据所述生成单元生成的命令字模板、各条指令的目标数据接口及指令模板生成并存储指令模板组。
23.根据权利要求19所述的编译器,其特征在于,所述存储模块,包括: 确定单元,用于根据各条指令的目标数据接口确定各条指令的指令模板在指令模板组中的位置; 第二存储单元,用于根据所述确定单元确定的各条指令的指令模板在指令模板组中的位置及各条指令的指令模板生成并存储指令模板组。
24.根据权利要求22所述的编译器,其特征在于,所述第一存储单元,用于根据各条指令的目标数据接口确定各条指令的指令模板在指令模板组中的位置,根据所述命令字模板、各条指令的指令模板在指令模板组中的位置及各条指令的指令模板生成并存储指令模板组。
【文档编号】G06F9/38GK103942035SQ201410145804
【公开日】2014年7月23日 申请日期:2014年4月11日 优先权日:2014年4月11日
【发明者】王临春, 李楠 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1