一种指令变换装置,其中,条件指令是包含条件和操作代码并且只有在此条件成立时才由处理器执行此操作代码所表示的操作的指令;其特征在于,包括:输入装置,用于输入不包含条件指令的指令列;指令列检测装置,用于从所述输入装置输入的指令列中检测出根据预定一个条件是否成立而向同一存储对象分别传送不同传送对象的变换对象指令列;判断装置,用于判断包含与所述变换对象指令列所表示的预定条件相同的条件的条件指令是否被分配到专用处理器的指令集中;变换装置,当所述判断装置的判断结果为已被分配时,将所述变换对象指令列变换为包含所述预定条件的条件指令的指令列,当所述判断装置判断结果为未被分配时,将所述变换对象指令列中所述不同传送对象进行相互替换,变换为包含与所述预定条件具有排他关系的条件的条件指令的指令列。(*该技术在2018年保护过期,可自由使用*)
【技术实现步骤摘要】
本专利技术涉及处理器及指令变换装置,特别涉及在装入了条件指令的情况下削减指令种类和硬件数量的技术。
技术介绍
随着近年来应用微处理器的产品的多功能化和高速化,希望出现处理能力更高的微处理器(以下简称为“处理器”)。一种用于处理器高速化的基本技术是流水线处理。流水线处理就是将1个指令的处理过程分成多个较小的处理单位(流水线级),通过同时执行各个流水线级来提高处理速度的技术。在这样的流水线处理中,存在在分支时产生流水线的混乱(失速),而使流水线的执行性能低于理想性能的问题。这种现象就是所谓的分支危险性。在近年的处理器中,为了削减分支危险性,利用条件指令来代替分支指令,以提高处理能力。条件指令的相关内容在例如“The ARM RISC Chip A Programmer’sGuide、Addison-wesley Publishing Company Inc.的p.62-63中予以详细记载。图30示出了现有的包含条件传送指令的指令列。图30中所示的“r0”、“r1”、“r2”分别表示寄存器。指令3001是将数值“1”传送到寄存器“r0”中的传送指令。指令3002是将寄存器“r1”和“r2”的比较结果反映到各种标记中的比较指令。指令3003是条件传送指令,用于在参照各种标记并由指令3002所比较的两个比较对象相等时,将数值“0”传送到寄存器“r0”中。图31示出了现有的条件传送指令。这个条件传送指令3101有6种。条件3102是表示各个条件传送指令所指定的条件的记号。在比较指令比较两个运算对象甲和运算对象乙时,条件包括“甲等于乙”、“甲不等于乙”、“甲大于乙”、“甲大于等于乙”、“甲小于乙”和“甲小于等于乙”,并且各条件传送指令在各个条件成立时执行传送指令。图32示出了现有的比较指令(CMP指令)、在条件成立时执行传送指令的条件传送指令、在条件成立时执行分支指令的条件分支指令。这里,用指令缩写的操作码末尾两个字符来指定条件。由于图32所示的各条件指令和条件分支指令的条件是将比较条件作为符号数据附加到图31所示的条件中,所以各条件指令和条件分支指令各有10种。从而,比较指令、两个操作的各条件指令和条件分支指令合计共有31种。也有削减了指令种类的条件指令。关于这样的指令,在例如“日立单片RISC微机SH7000/SH7600系列编程手册(株)日立制作所发行”P.57-58、P.69-70、P.75-78中有详细记载。图33示出了削减了指令种类的比较指令、条件相加指令、条件传送指令和条件分支指令。由于图33所示的各条件指令和条件分支指令的条件只有条件标记被设置或条件标记被清零两种,所以各条件指令和条件分支指令各有两种,并有5种用于设置条件标记/清零条件标记的比较指令。从而,比较指令、两个操作的条件指令和条件分支指令的指令种类共有11种。在进行流水线处理的处理器中,为了更多地削减分支危险,需要具备更多种操作的条件指令。但是,由于处理器的指令为位数定长模式,所以处理器能够具备的指令种类是有限的。这样,处理器能够具备的条件指令的种类也是有限的,在增加指令种类时用于对增加的指令进行译码的硬件是必要的,从而增加了处理器成本。
技术实现思路
针对上述问题,本专利技术的目的在于提供一种在装入了条件指令的情况下,削减指令种类的指令变换装置和削减了硬件数量的处理器。(1)为了达到上述目的,依据本专利技术的对指令到译码并执行指定的处理器包括状态保持装置,用于在执行预定指令时保持其执行结果的(一个)状态;输入装置,用于输入由与分配给该处理器的指令集的指令相对应的指令构成的指令列;其中,(1种以上的)条件指令被分配到所述指令集的一部分中;条件指令是包含状态条件和操作代码的指令; 状态条件用于指定一种以上的状态;其中,对于包含相同操作代码的条件指令,当相互具有排他关系的第一状态条件和第二状态条件中的包含第一状态条件的第一条件指令被分配到指令集的一部分中时,包含第二状态条件的第二条件指令不被分配到指令集中;译码装置,可以对分配到所述指令集中的指令译码并对所述输入装置输入的指令列中的每一个指令逐一译码,在对第一条件指令译码时,对该第一条件指令包含的第一状态条件和操作代码进行译码;判断装置,用于判断所述状态保持装置所保持的状态是否包含在所述译码装置进行译码的第一状态条件所指定的状态中;执行装置,用于只有在所述判断装置判断出被包含时,才执行所述译码装置所译码的操作代码表示的操作。由此,由于依据本专利技术的处理器只将指定具有排他关系的2个条件中的任一个条件的条件指令分配到指令集中而不将指定另一个条件的条件指令分配到指令集中,所以与现有技术相比,减少了条件指令的种类。这样,能够削减指令译码器的硬件数量并在指令种类有限的情况下,能够具备更多种操作的条件指令,所以在进行流水线处理的处理器中能够更多地削减分支危险。(2)也可以是所述状态保持装置保持着作为(1种)比较指令的执行结果的2个比较对象甲和乙的大小关系;包含相同操作代码的第一条件指令的种类是以下3种作为第一条件在执行比较指令后执行第一条件指令时,分别以甲等于乙及甲不等于乙中的任一个、以甲大于等于乙及甲小于乙中的任一个、以甲小于等于乙及甲大于乙中的任一个。由此,由于依据本专利技术的处理器对每种操作具备3种条件指令,所以与现有技术的6种相比,条件指令的种类减少一半。这样,能够削减指令译码器的硬件数量并在指令种类有限的情况下,能够具备现有技术的2倍操作的条件指令,所以能够在进行流水线处理的处理器中更多地削减分支危险。(3)也可以是所述译码装置能够译码的条件指令所包含操作代码为传送和运算中的一种,或二者兼备。由此,分配在依据本专利技术的处理器的指令集的一部分中的条件指令所指定的操作为传送及运算中的任一种或二者兼备。这样,能够在全部传送指令及运算指令中分配条件指令,从而能够在进行流水线处理的处理器中更多地削减分支危险。(4)为了达到上述目的,依据本专利技术的处理器包括输入装置,用于输入由与分配在该处理器的指令集中的指令相对应的指令构成的指令列;其中,(一种以上的)第一条件标记设定指令、(一种以上的)第二条件标记设定指令和(一种以上的)条件成立时执行指令被分配到所述指令集的一部分中;条件标志设定指令是包含条件的指令,其中,第一条件标记设定指令包含相互具有排他关系的第一条件和第二条件中的第一条件,而第二条件标记设定指令包含所述第二条件;条件成立时执行指令是包含操作代码的指令,其中,条件成立时执行指令包含操作代码,并且相同操作代码的条件成立时执行指令的种类为一种。译码装置,可以对分配到所述指令集中的指令译码并对所述输入装置输入的指令列中的每一个指令逐一译码,在对第一条件标记设定指令译码时,对该第一条件标记设定指令包含的第一条件进行译码,在对第二条件标记设定指令译码时,对该第二条件标记设定指令包含的第二条件进行译码,在对条件成立时执行指令译码时,对各个条件成立时执行指令所包含的操作代码进行译码;(一个)条件标记,用于保持预定条件成立与否的判断结果;判断装置,在所述译码装置对第一条件译码时,判断该第一条件是否成立,并将该判断结果保持到所述(一个)条件标记中, 在所述译码装置对第二条件译码时,判断该第二条件是否成立,并将该判断结果保本文档来自技高网...
【技术保护点】
一种用于将不包含条件指令的指令列变换为包含条件指令的指令列的指令变换装置,其中,条件指令是包含条件和操作代码并且只有在此条件成立时才由处理器执行此操作代码所表示的操作的指令;其特征在于,包括:输入装置,用于输入不包含 条件指令的指令列;指令列检测装置,用于从所述输入装置输入的指令列中检测出根据预定一个条件是否成立而向同一存储对象分别传送不同传送对象的变换对象指令列;判断装置,用于判断包含与所述变换对象指令列所表示的预定条件相同的条件的条件 指令是否被分配到专用处理器的指令集中;变换装置,当所述判断装置的判断结果为已被分配时,将所述变换对象指令列变换为包含所述预定条件的条件指令的指令列,当所述判断装置判断结果为未被分配时,将所述变换对象指令列中所述不同传 送对象进行相互替换,变换为包含与所述预定条件具有排他关系的条件的条件指令的指令列。
【技术特征摘要】
...
【专利技术属性】
技术研发人员:高山秀一,小谷谦介,田中旭,桧垣信生,铃木正人,田中哲也,瓶子岳人,宫地信哉,
申请(专利权)人:松下电器产业株式会社,
类型:发明
国别省市:JP[日本]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。