【技术实现步骤摘要】
本专利技术涉及一种处理器、用于生成适用于上述处理器的程序的程序代码转换装置以及通过由计算机执行来作为上述程序代码转换装置发挥功能的软件,特别是能够适合利用于流水线型VLIW(Very Long Instruction Word,超长指令字)处理器。
技术介绍
已知有一种利用VLIW结构的指令字的处理器,VLIW结构的指令字是指为了提高运算性能而并行发出多个指令的指令字。即,处理器对单一的VLIW指令进行取出、解码、执行,数据路径处理该VLIW指令中包含的多个操作。作为有效运用VLIW处理器的宽指令发出宽度的高速化手法,已知有一种软件流水线化手法。通常,说软件的执行时间的大部分被很小一部分循环占用,但是软件流水线化是使这种循环高速化的手法。即,通过进行最优化来减少每重复一次的执行循环数,该最优化是指以跨越循环的多次重复期间的方式来使操作移动。作为VLIW处理器的软件流水线化时的性能瓶颈,举例有必须保持变量的多个实例。软件流水线化提高循环内的并行指令发出数,来提高性能。但是,已知当发展软件流水线化时,即缩小启动间隔(Initiation interval)时,通用寄存器的使用数量会增加,因此寄存器数量成为瓶颈,导致无法提高性能。寄存器数量增加的一个原因是跨越了循环内的多次重复的变量的利用。即,有时必须保持多个实例。但是,增加安装的寄存器数量直接关系到增加硬件,因此并不优选。
技术实现思路
下面说明用于解决这样的课题的手段,根据本说明书的描述以及附图能够使其他的课题和新特征变明确。根据一个实施方式,如下文所述。即,一种能够针对每一个指令对是禁止转发还是允许转发进行 ...
【技术保护点】
一种处理器,其特征在于,能够针对每一个指令对是禁止转发还是允许转发进行指定,在执行转发被禁止的指令时参照寄存器文件,在执行转发被允许的指令时参照向所述寄存器文件写入数据的流水线的中途的级。
【技术特征摘要】
2015.03.18 JP 2015-0544481.一种处理器,其特征在于,能够针对每一个指令对是禁止转发还是允许转发进行指定,在执行转发被禁止的指令时参照寄存器文件,在执行转发被允许的指令时参照向所述寄存器文件写入数据的流水线的中途的级。2.如权利要求1所述的处理器,其特征在于,能够由所述处理器执行的指令集包括将对是禁止转发还是允许转发进行指定的字段包含于指令代码的指令。3.如权利要求2所述的处理器,其特征在于,并行地发出由在所述指令集中包括的多个指令的指令代码构成的指令字,并行地执行所述多个指令,所述指令字包括一个以上的、将对是禁止转发还是允许转发进行指定的字段包含于各个指令代码的所述指令。4.如权利要求1所述的处理器,其特征在于,能够由所述处理器执行的指令集包括将对是禁止转发还是允许来自所述流水线的哪个级的转发进行指定的字段包含于指令代码的指令。5.如权利要求4所述的处理器,其特征在于,并行地发出由在所述指令集中包括的多个指令的指令代码构成的指令字,并行地执行所述多个指令,所述指令字包括一个以上的、将对是禁止转发还是允许来自所述流水线的哪个级的转发进行指定的字段包含于各个指令代码的所述指令。6.一种处理器,其通过流水线方式执行包含在指令集中且按照程序被依次发出的指令,所述处理器的特征在于,具有:取出电路,其取出所述指令;寄存器文件,其包括多个寄存器;转发选择器;处理执行电路;以及处理器控制电路,其基于所述取出的指令来控制所述处理执行电路,所述指令集包括寄存器保存指令和寄存器参照指令,所述寄存器保存指令是如下的指令,即,将使所述处理执行电路执行由该指令指定的处理的结果,保存在所述寄存器文件所包含的所述多个寄存器中的由该指令的目标操作数指定的寄存器,所述寄存器参照指令是如下的指令,即,参照在所述寄存器文件所包含的所述多个寄存器中的由该指令的源操作数指定的寄存器中保存的数据,使所述处理执行电路执行由该指令指定的处理,一部分或者全部的所述寄存器参照指令将能够对是禁止转发还是允许转发进行指定的字段包含于指令代码,所述处理器控制电路具有:指令解码器,其对所述取出的指令进行解码;多个流水线寄存器,其保持基于所述指令解码器的解码结果;以及转发控制电路,所述指令解码器对所述取出的指令进行解码,并输出所述指令的执行代码、当所述指令是所述寄存器保存指令时指定目标寄存器的目标操作数代码、当所述指令是所述寄存器参照指令时指定源寄存器的源操作数代码、以及当所述指令是将能够对是禁止转发还是允许转发进行指定的字段包含于指令代码的寄存器参照指令时该字段的解码结果,所述多个流水线寄存器针对各个流水线级保持所述目标操作数代码,所述转发控制电路基于能够对是禁止转发还是允许转发进行指定的字段的解码结果,在转发被禁止时,通过所述转发选择器从所述寄存器文件读取出由所述源操作数代码指定的寄存器的值,并供给至所述处理执行电路,在转发被允许时,对在所述多个流水线寄存器中针对各个流水线级保持的所述目标操作数代码与所述源操作数代码进行比较,通过所述转发选择器执行从比较结果一致的流水线级向所述处理执行电路的转发。7.如权利要求6所述的处理器,其特征在于,所述处理器具有N个所述处理执行电路,能够利用对应的处理执行电路并行地执行将在所述指令集中包括的所述N个的指令包含于一个字的指令字,其中N是任意的自然数,所述N个处理执行电路中的M个处理执行电路分别连接有与各自的输入数对应的数量的转发选择器,其中M是N以下的任意的自然数,所述指令解码器并行地对所述取出的在所述指令字中包括的所述N个的指令进行解码,输出与所述N个处理执行电路中的每一个对应的解码结果,在与所述M个处理执行电路对应的解码结果中包括被指定了是禁止转发还是允许转发的字段的解码结果,所述处理器控制电路具有与所述M个处理执行电路对应的M个转发控制电路,所述M个转发控制电路分别基于被指定是禁止转发还是允许转发的字段的解码结果,执行针对对应的处理执行电路的转发控制。8.如权利要求7所述的处理器,其特征在于,所述处理器控制电路在所述多个流水线寄存器中,针对各个流水线级保持与所述N个处理执行电路中的每一个对应的所述目标操作数代码,所述处理器控制电路具有与所述M个处理执行电路对应的M个转发控制电路,所述M个转发控制电路分别基于被指定是禁止转发还是允许转发的字段的解码结果,针对与对应的处理执行电路连接的一个或者多个转发选择器,在转发被禁止时,从所述寄存器文件读取出由分别与所述一个或者多个转发选择器对应的所述源操作数代码指定的寄存器的值,并供给至该处理执行电路,在转发被允许时,对在所述多个流水线寄存器中针对各个流水线级保持的、且与所述N个处理执行电路中的每一个对应的所述目标操作数代码、和与所述一个或者多个转发选择器对应的所述源操作数代
\t码分别进行比较,通过该转发选择器执行从比较结果一致的流水线级向所述处理执行电路的转发。9.如权利要求6所述的处理器,其特征在于,取代所述一部分或者全部的寄存器参照指令或者在所述一部分或者全部的寄存器参照指令的基础上,一部分或者全部的所述寄存器参照指令将能够对是禁止转发还是表示允许来自所述流水线的哪个级的转发的转发源进行指定的字段包含于指令代码,当所述取出的指令是将能够对是否禁止转发或所述转发源进行指定的字段包含于指令代码的寄存器参照指令时,所述指令解码器还输出该字段的解码结果,所述转发控制电路基于该解码结果,在转发被禁止时,通过所述转发选择器从所述寄存器文件读取出由所述源操作数代码指定的寄存器的值,并供给至所述处理执行电路,在所述转发源被指定时,对在所述多个流水线寄存器的被指定的流水线级保持的所述目标操作数代码与所述源操作数代码进行比较,通过所述转发选择器执行从比较结果一致的流水线寄存器向所述处理执行电路的转发。10.如权利要求9所述的处理器,其特征在于,所述处理器具有N个所述处理执行电路,能够利用对应的处理执行电路并行...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。