处理器、程序代码转换装置以及软件制造方法及图纸

技术编号:13798132 阅读:50 留言:0更新日期:2016-10-06 20:32
本发明专利技术提供一种流水线方式的处理器,该处理器不必增加在寄存器文件中安装的寄存器数量,就能谋求通过软件流水线化来提高性能。针对每一个指令指定是禁止转发还是允许转发(转发关闭/启动),在执行转发被禁止的指令时,参照寄存器文件,在执行转发被允许的指令时,参照向上述寄存器文件写入数据的流水线的中途的流水线级来进行转发。特别是,设置转发控制电路和转发选择器,在构成VLIW的一个字的多个指令中的每一个中设置对转发的禁止/允许进行指定的字段,根据该字段的值来控制是参照寄存器(转发禁止)还是进行转发。

【技术实现步骤摘要】

本专利技术涉及一种处理器、用于生成适用于上述处理器的程序的程序代码转换装置以及通过由计算机执行来作为上述程序代码转换装置发挥功能的软件,特别是能够适合利用于流水线型VLIW(Very Long Instruction Word,超长指令字)处理器。
技术介绍
已知有一种利用VLIW结构的指令字的处理器,VLIW结构的指令字是指为了提高运算性能而并行发出多个指令的指令字。即,处理器对单一的VLIW指令进行取出、解码、执行,数据路径处理该VLIW指令中包含的多个操作。作为有效运用VLIW处理器的宽指令发出宽度的高速化手法,已知有一种软件流水线化手法。通常,说软件的执行时间的大部分被很小一部分循环占用,但是软件流水线化是使这种循环高速化的手法。即,通过进行最优化来减少每重复一次的执行循环数,该最优化是指以跨越循环的多次重复期间的方式来使操作移动。作为VLIW处理器的软件流水线化时的性能瓶颈,举例有必须保持变量的多个实例。软件流水线化提高循环内的并行指令发出数,来提高性能。但是,已知当发展软件流水线化时,即缩小启动间隔(Initiation interval)时,通用寄存器的使用数量会增加,因此寄存器数量成为瓶颈,导致无法提高性能。寄存器数量增加的一个原因是跨越了循环内的多次重复的变量的利用。即,有时必须保持多个实例。但是,增加安装的寄存器数量直接关系到增加硬件,因此并不优选。
技术实现思路
下面说明用于解决这样的课题的手段,根据本说明书的描述以及附图能够使其他的课题和新特征变明确。根据一个实施方式,如下文所述。即,一种能够针对每一个指令对是禁止转发还是允许转发进行指定的处理器,在执行转发被禁止的指令时参照寄存器文件,在执行转发被允许的指令时参照向所述寄存器文件写入数据的流水线的中途的级。专利技术效果若简单地说明通过上述一个实施方式得到的效果,则如下文所述。即,不必增加在寄存器文件中安装的寄存器数量,就能够谋求通过软件流水线化来提高性能。附图说明图1是示出能够指定转发(forwarding)的启动(ON)/关闭(OFF)的处理器的基本的结构例的框图。图2是示出由图1的处理器执行的指令代码的结构例的说明图。图3是示出图1的处理器中搭载的转发选择器的结构例的框图。图4是示出图1的处理器中搭载的转发控制电路的功能的一例的流程图。图5是示出能够指定转发的启动/关闭的处理器的利用VLIW的结构例的框图。图6是示出由图5的处理器执行的指令字的结构例的说明图。图7是示出图5的处理器中搭载的处理器控制电路的结构例的框图。图8是示出图5的处理器中搭载的转发选择器的结构例的框图。图9是示出图5的处理器中搭载的转发控制电路的功能的一例的流程图。图10是示出由图5的处理器执行的用高级语言描述的程序的例
子的说明图。图11是示出由图5的处理器执行的用汇编语言描述的程序的例子的说明图。图12是示出在图11的程序中使用的用汇编语言描述的指令的动作的说明图。图13是示意地示出图5的处理器的动作例的时序图。图14是示出在由图5的处理器执行的用汇编语言描述的程序中,不进行转发的启动/关闭指定的例子的说明图。图15是示出图5的处理器的动作例的说明图。图16是示出由实施方式2的处理器执行的指令代码的结构例的说明图。图17是针对图16的指令代码中的转发源指定信息字段的说明图。图18是示出实施方式2的处理器中搭载的转发控制电路的功能的一例的流程图。图19是示出实施方式3的程序开发装置的功能的一例的流程图。图20是示出基于利用程序代码转换(最优化)装置进行转换前的程序而实现的动作的示意性的时间图。图21是示出基于利用程序代码转换(最优化)装置进行转换后的程序而实现的动作的示意性的时间图。其中,附图标记说明如下:1、2 处理器IR 指令寄存器CTRL 处理器控制部IDE 指令解码器OP-DE、OP-DE1~3 运算器控制信息流水线寄存器(DE级)OP-RR、OP-RR1~3 运算器控制信息流水线寄存器(RR级)FWD-DE、FWD-DE1~3 转发无效信息存储寄存器SRC-DE、SRCS-DE1~3、SRCT-DE1~3 源操作数信息存储寄存
器DST-DE、DST-DE1~3 目标操作数信息存储寄存器(DE级)DST-RR、DST-RR1~3 目标操作数信息存储寄存器(RR级)DST-EX、DST-EX1~3 目标操作数信息存储寄存器(EX级)FWDCNT、FWDCNTS1~S3、FWDCNTT1~T3 转发控制信号生成部FSEL、FSEL-S1~S3、FSEL-T1~T3 转发选择器EXEC、EXEC1~3 运算器(处理执行电路)REGF 寄存器文件P-RR、P-RR-S1~S3、P-RR-T1~T3 运算器输入端流水线寄存器(RR级)P-EX、P-EX1~3 运算器输出端流水线寄存器(EX级)ICODE 指令代码OPEX、OPEX1~3 运算器(处理执行电路)控制信号FSELS1~3、FSELT1~3 转发选择器选择控制信号RRS1~3、RRT1~3 来自寄存器文件的读寄存器指定信号RW1~3 向寄存器文件的回写寄存器指定信号具体实施方式1.实施方式的概要首先,针对本申请公开的代表性的实施方式,说明其概要。在针对代表性的实施方式的概要说明中,标括号来参照的附图中的附图标记仅是例示标付有该附图标记的构成要素的概念所包含的要素。(1)<能够指定转发的启动/关闭的处理器>本申请公开的代表性的实施方式是被设置为能够针对每一个指令指定是禁止转发还是允许转发的处理器。在执行转发被禁止的指令时参照寄存器文件(REGF),在执行转发被允许的指令时参照向上述寄存器文件写入数据的流水线的中途的级(stage)(进行转发)。通过这样,不必增加在寄存器文件中安装的寄存器数量,能够谋
求通过软件流水线化来提高性能。这是因为,在根据执行结果而发出改写寄存器的指令之后,在回写(write back)该指令之前,能够使转发启动的(被允许转发的)指令和转发关闭的(被禁止转发并参照寄存器文件REGF)指令自由混合。(2)<含有指定转发的启动/关闭的字段在内的指令>在第1项中,能够由上述处理器执行的指令集包括将对禁止转发还是允许转发进行指定的字段(f)包含于指令代码的指令。通过这样,能够易于针对每一个指令指定禁止转发还是允许转发。(3)<VLIW>在第2项中,上述处理器并行地发出由上述指令集所包含的多个指令的指令代码构成的指令字(ICODE),并行地执行上述多个指令,上述指令字包括将对禁止转发还是允许转发进行指定的字段包含于各个指令代码的一个以上的上述指令。通过这样,在一个指令字由多个指令构成的VLIW处理器中,不必增加在寄存器文件中安装的寄存器数量,就能够谋求通过软件流水线化来提高性能。这是因为,能够针对VLIW的一个指令字中包含的多个指令的每一个都能够独立地对禁止转发还是允许转发进行指定。(4)<含有指定转发源的字段的指令>在第1项中,可由上述处理器执行的指令集包含如下这种指令,这种指令将对禁止转发还是允许来自上述流水线的哪个级的转发进行指定的字段(fsrc)包含于指令代码。通过这样,不仅是单纯地禁止转发或者允许转发,在允许的情况下还能够指本文档来自技高网
...

【技术保护点】
一种处理器,其特征在于,能够针对每一个指令对是禁止转发还是允许转发进行指定,在执行转发被禁止的指令时参照寄存器文件,在执行转发被允许的指令时参照向所述寄存器文件写入数据的流水线的中途的级。

【技术特征摘要】
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个所述处理执行电路,能够利用对应的处理执行电路并行...

【专利技术属性】
技术研发人员:小林悠记
申请(专利权)人:瑞萨电子株式会社
类型:发明
国别省市:日本;JP

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1