程序转换装置及程序转换方法制造方法及图纸

技术编号:2845093 阅读:159 留言:0更新日期:2012-04-11 18:40
一种不再无端发出有可能引起互锁的指令,可以提高程序运行时的处理速度的编译器,其面向处理器并具备运行时有可能引起互锁的指令,其特征在于,赋予计算机功能,具备:循环结构转换部(186),对输入程序进行双重循环转换,把循环次数是x次的循环分割为循环次数是y次的循环,把上述循环次数是y次的循环作为内循环,把循环次数是x/y次的循环作为外循环;指令最佳配置部(187),对上述双重循环转换之后的程序进行有可能引起互锁的指令的配置。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及程序转换装置,尤其是涉及具备指令系统(instruction set)的面向处理器的程序转换装置,其中该指令系统包含在运行时等待来自外部的指定应答的指令。
技术介绍
近几年来,处理器的处理速度急剧提高,然而与其相比,主存储器的存取速度的提高幅度很小,两者的速度差逐年增大。为此,在信息处理装置的高速处理中,存储器存取成为瓶颈的问题早已被指出。为了解决这个问题,根据存储分层的考虑方法,使用了高速缓存机构。在高速缓存机构中,把处理器中必须的数据从主存储器事先传输(预取)到高速的高速缓存中。由此,可以高速应对来自处理器的存储器存取。然而,处理器存取高速缓存上并不存在的数据时,就会产生高速缓存失误。由此,产生了从主存储器向高速缓存传输数据耗费时间的问题。用户意识不到高速缓存进行编程,如果运行这个程序,可以设想到会频繁产生这种高速缓存失误。结果,高速缓存失误引起的损失很大程度地恶化了处理器的性能。为此,编译器有必要进行考虑了高速缓存的最佳化。作为高速缓存最佳化技术之一,可以例举预取指令的插入被提出来。预取指令指的是,在参照某存储器地址之前,把这个地址的数据,提前从主存储器传输到高速缓存上。在预取指令的插入的最佳化中,在开始参照该存储器地址的稍微提前一点的周期里,插入预取指令。例如,对于如图1(a)所示的循环处理,如图1(b)所示,考虑数据被参照之前的等待(latency)时间,把预取指令(dpref())插入循环内,以便预取在多个迭代前被参照的数据。另外,在这里设int型的数组a的要素是4字节,高速缓存的行大小(line size)为128字节。但是,图1(b)所示的代码中,对于1个迭代分别进行了数组a的参照和预取,参照只能以每4字节进行,与此相对,预取则以1行(128字节)单位进行。因此,1次的预取可以对应32次的参照,剩余31次成了进行无用的预取的状态。也就是说,连续发出了相同行的预取指令。而且,通过处理器,在dpref指令的数据传输中,如果要运行下一个dpref指令,尽管按照前面的dpref指令的主存储器向高速缓存的数据传输没有结束,也会发出下一个dpref指令,尽管本来是为了消除互锁插入了dpref指令,还是会引起互锁。因此,如上所述,如果循环的1个迭代短,2个dpref指令的间隔短,则按照dpref指令的主存储器到高速缓存的数据传输所消耗的时间(等待时间)变得显著,反而恶化了性能。而且,即使是在dpref指令的运行状态以外,如存储器存取指令等,即使是指令发出后发生任何的应答等待的指令的情况,也可能引起互锁。
技术实现思路
本专利技术,正是为了解决上述课题而做出的,其目的在于,提供一种不再无用地发出有可能引起互锁的指令,可以提高程序运行时处理速度的。而且,本专利技术的目的在于,提供一种,,不再无用得发出在指令发出后发生某种应答等待的指令,可以提高程序运行时处理速度。而且,本专利技术的目的是提供一种程序运行时不会引起互锁的。为了达到上述目的,本专利技术涉及的程序转换装置,是一种面向处理器的程序转换装置,该处理器具备包含运行时等待来自外部的指定应答的指令的指令系统,其特征在于,具备进行双重循环的循环结构转换装置,其中双重循环转换是把包含于输入程序中的反复次数是x次的循环转换为反复次数是y次的循环作为内循环,反复次数是x/y次的循环作为外循环的嵌套结构;指令配置装置,在上述内循环的外部位置配置上述指令,由此转换为包含该指令的输出程序。由此,例如如图2所示,把图1(a)所示的循环处理双重循环化,并且可以在最内循环的外侧插入预取指令。由此,消除了没用的预取运行。由此提高了处理速度。而且,从一个dpref指令运行后到下一个dpref指令运行之前的期间,可以隐蔽从主存储器到高速缓存传输数据耗费的等待时间,难以发生互锁。也就是说,依据本专利技术,由于循环的双重化,如果在内循环的外侧运行有可能引起互锁的指令,可以不用多余发出相应指令就可以提高程序运行时的处理速度。而且,由于循环的双重化,可以保证发出有可能引起互锁的指令之后到下一个有可能引起互锁的指令为止的期间的周期数。为此,程序运行时很难引起互锁。另外,程序转换装置,可以作为编译器、OS(Operating System)或者CPU等的集成电路来实现。应答等待指令包括如上述的dpref指令那样可能引起互锁的指令和指令运行时等待来自外部的指定应答的指令,另外还有等待应答的情况和不等待应答情况的指令。而且,本专利技术,不仅能作为具备这种特征装置的程序转换装置来实现,还可以由把程序转换装置所具备的特征装置作为步骤的程序转换方法来实现,作为程序转换装置也可以由赋予计算机功能的程序来实现。而且,这种程序,可以通过CD-ROM(Compact Disc-Read OnlyMemory光盘只读存储器)等记录媒介和因特网等传输媒介流通是不言而喻的。专利技术效果依据本专利技术,可以提高程序运行时的处理速度。而且,程序运行时不易引起互锁问题。附图说明图1是说明过去最佳化技术的问题点的图;图2是说明依据本专利技术的循环处理的结构转换的图;图3是表示有关本实施例的编译器系统组成的图;图4是表示编译器组成的图;图5是编译器所运行的处理的流程图;图6是说明循环结构转换处理的具体内容的图;图7是表示复制型内循环分割处理的具体内容的流程图;图8是表示条件型内循环分割处理的具体内容的流程图;图9是表示预取指令配置处理的具体内容的流程图;图10是表示预取指令插入处理的具体内容的流程图;图11是说明不需要剥离时的单循环分割处理的图;图12是表示不需要剥离时的源程序的一个例图;图13是表示对应图12所示的源程序的中间语言程序的图;图14表示的是把图13所示的中间语言的程序结构转换为双重循环之后的中间语言程序的图;图15表示的是对图14所示的中间语言程序插入预取指令之后的中间语言程序的图;图16是用来说明需要剥离时的单循环分割处理的图;图17是用来说明循环内存在多个数组存取时的循环分割处理的图;图18是用来说明循环内存在多个数组存取时的循环分割处理的图;图19是用来说明循环内存在多个数组存取,且数组要素的大小全部不同时的循环分割处理的图;图20是用来说明循环内存在多个数组存取,且数组要素的大小全部不同时的循环分割处理的图;图21是说明循环内存在跨距不同的多个数组存取时的循环分割处理的图;图22是说明循环次数不确定的循环处理的循环分割处理的图;图23是说明循环次数不确定的循环处理的循环分割处理的图;图24是说明不需要循环分割的最佳化处理的图;图25是说明在循环内存取的要素在主存储器上没有适当排序(align)时的循环分割处理的图;图26是说明在循环内存取的要素在主存储器上没有适当排序时的循环分割处理的图;图27是说明动态确定没有排序的数组要素,且对循环处理进行最佳化处理的图;图28是说明没有排序的数组要素的图;图29是说明使用剖面信息确定没有排序的数组要素,且对循环处理进行最佳化处理的图;图30是说明对最内循环以外的循环进行结构转换的图; 图31是说明由编译指示(pragma)#pragma_loop_tiling_dpref变量名[,变量名]确定变量情况下的最佳化处理的图;图32是说明插入PreTouch指令时不需要剥离情本文档来自技高网
...

【技术保护点】
一种面向处理器的程序转换装置,该处理器具备包含运行时等待来自外部的指定应答的指令的指令系统,其特征在于,具备:进行双重循环转换的循环结构转换装置,其中双重循环转换是把包含于输入程序中的反复次数是x次的循环转换为:将反复次数是y次的循 环作为内循环且将反复次数是x/y次的循环作为外循环的嵌套结构;指令配置装置,在上述内循环的外部位置配置上述指令,由此转换为包含该指令的输出程序。

【技术特征摘要】
【国外来华专利技术】JP 2004-2-12 035430/20041.一种面向处理器的程序转换装置,该处理器具备包含运行时等待来自外部的指定应答的指令的指令系统,其特征在于,具备进行双重循环转换的循环结构转换装置,其中双重循环转换是把包含于输入程序中的反复次数是x次的循环转换为将反复次数是y次的循环作为内循环且将反复次数是x/y次的循环作为外循环的嵌套结构;指令配置装置,在上述内循环的外部位置配置上述指令,由此转换为包含该指令的输出程序。2.根据权利要求1所述的程序转换装置,其特征在于,上述循环结构转换装置具备检测包含于上述输入程序中的循环的循环检测部;检测上述循环的反复次数的反复次数检测部;检测应答等待周期数的应答等待周期数检测部,其中应答等待周期数是等待上述指令运行时的上述指定的应答的周期数;检测上述循环的1次反复处理所需要的1个序列周期数的1序列周期数检测部;把上述循环分割为反复次数是“上述应答等待周期数/上述1序列周期数”次的循环的循环分割部;进行双重循环转换的双重循环转换部,该双重循环转换是将反复次数是“上述应答等待周期数/上述1序列周期数”次的循环作为内循环且将反复次数是(上述循环反复次数/上述内循环的反复次数)次的循环作为外循环的嵌套结构的转换。3.根据权利要求1所述的程序转换装置,其特征在于,还具备接收与最佳化有关的最佳化指示信息的最佳化指定信息接收装置。4.根据权利要求3所述的程序转换装置,其特征在于,上述最佳化指定信息接收装置接收包含于上述输入程序的循环的最低反复次数,上述循环结构转换装置,当循环的运行次数不定时,根据上述最低反复次数,由上述循环取出上述最低反复次数的反复处理,对取出的循环的反复处理进行双重循环转换。5.根据权利要求1所述的程序转换装置,其特征在于,上述指令是有可能发生互锁的指令。6.根据权利要求5所述的程序转换装置,其特征在于,上述有可能发生互锁的指令是从主存储器向高速缓存预取数据的指令。7.根据权利要求6所述的程序转换装置,其特征在于,还具备进行指令编排的编排装置,上述循环结构转换装置根据上述编排装置得到的结果,把上述反复次数是x次的循环分割为反复次数是y次的循环,使得该运行的周期数是运行上述预取所需要的周期数,并进行将反复次数是y次的循环作为内循环且将反复次数是x/y次的循环作为外循环的嵌套结构的转换即双重循环转换。8.根据权利要求1所述的程序转换装置,其特征在于,上述指令是在运行后到指定资源成为可以参照的状态为止需要多个周期的指令。9.根据权利要求8所述的程序转换装置,其特征在于,上述需要多个的指令,是访问主存储器或者高速缓存的指令。10.根据权利要求1所述的程序转换装置,其特征在于,上述循环结构转换装置把上述反复次数是x次的循环分割为反复次数是y次的循环,使得该循环中所参照的数组的地址仅运行高速缓存的行大小前进量,并进行将反复次数是y次的循环作为内循环,将反复次数是x/y次的循环作为外循环的双重循环转换。11.根据权利要求10所述的程序转换装置,其特征在于,上述循环结构转换装置进行比例分配转换,即当上述数组存在多个时,对进行了双重循环转换的上述反复次数是y次的循环,根据上述数组数进一步进行比例分配。12.根据权利要求11所述的程序转换装置,其特征在于,上述比例分配转换,对于多个上述数组,当这些数组要素的大小不同...

【专利技术属性】
技术研发人员:川端辉雄小川一瓶子岳人山本康博道本昌平
申请(专利权)人:松下电器产业株式会社
类型:发明
国别省市:JP[日本]

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

1