程序变换方法及程序变换系统技术方案

技术编号:2849586 阅读:193 留言:0更新日期:2012-04-11 18:40
在系统软件的开发中,提高计算机整体的执行性能、且减少系统软件开发工时的程序开发系统,其具有编译系统等。编译系统是读入源程序及系统级提示信息并变换成机器语言程序的程序,生成机器语言程序,并且输出有关该程序信息的任务信息。系统级提示信息收集编译系统中的优化的提示的信息,由评测器的分析结果、程序员的指示、有关源程序的任务信息、及有关与源程序不同的其他源程序的任务信息构成。

【技术实现步骤摘要】

本专利技术是关于将用C语言等高级语言描述的源程序变换成机器语言程序的程序变换方法及程序变换装置,特别是关于对编译器(compiler)的信息输入及编译器中的优化。
技术介绍
以往,已提出了各种将由高级语言描述的源程序变换成机器语言指令串的编译器。但是,简单的编译器却不能避免例如由高速缓冲存储器的错误等的影响所造成的性能恶化。因此,近些年来,提出了根据该源程序内的信息及该源程序的评测(profile)信息,实现减少高速缓冲存储器错误的优化的编译器(例如,参照日本专利特开2001-166948号公报及日本专利特开平7-129410号公报)。但是,在现有的技术中,只着眼于自身的任务实现优化处理。为此,依然不能考虑到系统内其他任务产生的影响,当在单一处理器上多个任务分时操作时、及在各具有本地高速缓冲存储器的多个处理器上多个任务进行操作时,由于高速缓冲存储器的高速缓冲存储错误等影响,以计算机系统整体看时,存在性能大幅下降的问题。这样的问题不仅限于编译器,在OS(Operating System)、及硬件调度器(hardware scheduler)进行任务调度(task scheduling)时,也会根据任务调度的结果,性能大幅度下降。因此,需要系统软件的程序员人工进行试行错误性的数据配置等工作,需要大量的开发工时。
技术实现思路
本专利技术是为了解决上述课题而提出的,其目的在于提供程序变换方法等,在系统软件开发时,提高计算机系统整体的执行性能,并且可以减少系统软件的开发工时。为了达到上述目的,本专利技术所涉及的程序变换方法,是将由高级语言描述的源程序变换成机器语言程序的程序变换方法,其特征在于,包括对上述源程序进行词法分析和语法分析的解析(parse)步骤;根据上述解析步骤的分析结果,将上述源程序变换成中间代码的中间代码变换步骤;接受为提高上述机器语言程序执行效率的提示(hint)信息的提示信息接受步骤;根据上述提示信息,对上述中间代码进行优化的优化步骤;以及将优化后的上述中间代码变换成机器语言程序的机器语言程序变换步骤;在上述提示信息中,包括与对应于成为变换对象的上述源程序的执行对象以外的执行对象有关的信息。这样,也考虑了与成为变换对象的执行对象以外的执行对象有关的信息,即与成为变换对象的任务或线程(thread)以外的任务或线程有关的信息,在系统级上的优化成为可能。因此,可以提供在系统软件开发中提高计算机系统整体的执行性能、并可减少系统软件的开发工时的程序变换方法。另外,上述优化步骤,也可以包括根据上述提示信息、对优化对象的数据进行可有效使用高速缓冲存储器的调整的高速缓存行(cache line)调整步骤。这样,可以考虑与变换对象以外的任务或线程有关的信息,并确定数据的配置,可以避免在高速缓冲存储器的特定集(set)上映射(mapping)偏离而产生相互冲突。从而可提高计算机系统整体的性能及提高系统软件的易开发性。另外,上述优化步骤,也可以包括根据上述提示信息,将成为变换对象的上述执行对象分配给执行该执行对象的某个处理器的处理器分配步骤。这样,可以考虑与变换对象以外的任务或线程有关的信息,并为在多处理器系统中,提高本地高速缓冲存储器的利用效率,而进行数据配置的确定及分配处理器的确定。从而可提高计算机系统整体的性能及提高系统软件的易开发性。另外,这种程序变换方法中的各种步骤,也可以适用于将机器语言程序装入(load)在主存储器的载入器(loader)中。本专利技术另一方面所涉及的程序开发系统,是由源程序开发机器语言程序的程序开发系统,其特征在于,包括编译系统;执行由上述编译系统(compiler system)所生成的机器语言程序,并输出执行日志(log)的模拟器(simulator)装置;以及对由上述模拟器装置输出的上述执行日志进行分析,并对用于上述编译系统优化的执行分析结果进行输出的评测(profile)装置。上述编译系统包括第1程序变换装置、及第2程序变换装置,上述第1程序变换装置是将由高级语言描述的源程序变换成机器语言程序的程序变换装置,其包括对上述源程序进行词法分析和语法分析的解析单元;根据上述解析单元的分析结果,将上述源程序变换成中间代码的中间代码变换单元;接受为提高上述机器语言程序执行效率的提示信息的提示信息接受单元;根据上述提示信息,对上述中间代码进行优化的优化单元;以及将优化后的上述中间代码变换成机器语言程序的机器语言程序变换单元,在上述提示信息中,包括与作为变换对象的上述源程序所对应执行对象以外的执行对象有关的信息。另外上述第2程序变换装置是接受至少1个目标文件、并将该目标文件变换成机器语言程序的程序变换装置,其特征在于,包括接收为提高上述机器语言程序执行效率的提示信息的提示信息接收单元;以及根据上述提示信息,对上述目标文件进行优化,且变换成上述机器语言程序的优化单元,在上述提示信息中,包括与作为变换对象的上述至少1个目标文件所对应的执行对象以外的执行对象有关的信息。这样,可以将由编译系统生成的机器语言程序的执行结果的分析结果再次反馈到编译系统。另外,对于变换对象以外的任务或线程的执行结果,也可以将该执行结果的分析结果反馈给编译系统。为此,可提高计算机系统整体的性能及提高系统软件的易开发性。本专利技术不仅可以实现具有这种特征步骤的程序变换方法,也可以实现将程序变换方法中包含的特征步骤作为单元的程序变换装置,及实现将程序变换方法中所包含的特征步骤作为在计算机上执行的程序。而且,这样的程序当然也可以通过CD-ROM(Compact Disc-Read Only Memory)等记录媒体及因特网等通信网络进行流通。与现有的编译器单元相比,由于也可以包括在有其他文件、任务、线程影响的系统级上进行优化,所以可提高计算机系统的执行性能。另外,不需要系统软件的程序员进行试行错误的数据配置等工作,可使系统软件开发工时减少。附图说明图1是表示本专利技术的实施方式1所涉及的编译系统作为对象的系统硬件结构的方框图。图2是表示高速缓冲存储器的硬件结构的方框图。图3是表示高速缓冲存储器项目的详细的位结构图。图4是表示开发机器语言程序的程序开发系统结构的方框图。图5是表示编译系统结构的功能方框图。图6是用于说明配置集信息设定部及数据配置确定部处理概要的图。图7是表示高速缓存行调整部处理内容的流程图。图8是表示调节信息的一例的图。图9是表示高速缓存行调整部中循环的再构成转换图。图10是表示配置集信息设定部处理内容的流程图。图11是表示配置集信息的一例的图。图12是表示重要数据的实际配置地址的一例的图。图13是表示集配置状况数据的一例的图。图14是表示数据配置确定部处理内容的流程图。图15是表示本专利技术的实施方式2所涉及的编译系统作为对象的系统硬件结构的方框图。图16是表示编译系统结构的功能方框图。图17是表示处理器序号提示信息设定部处理内容的流程图。图18是表示处理器分配状况数据的一例的图。图19是表示配置集信息设定部处理内容的流程图。图20是表示处理器序号信息确定部处理内容的流程图。图21是表示数据配置确定部处理内容的流程图。图22是表示系统级提示信息的一例的图。图23是表示将本专利技术使用于载入器的结构的图。具体实施例方式下面,本文档来自技高网...

【技术保护点】
一种程序变换方法,将由高级语言描述的源程序变换成机器语言程序,其特征在于,包括:解析步骤,对上述源程序进行词法分析和语法分析;中间代码变换步骤,根据上述解析步骤的分析结果,将上述源程序变换成中间代码;提示信息接受步骤 ,接受用于提高上述机器语言程序执行效率的提示信息;优化步骤,根据上述提示信息,对上述中间代码进行优化;以及机器语言程序变换步骤将优化后的上述中间代码变换成机器语言程序,在上述提示信息中,包含与成为变换对象的上述源程序 所对应的执行对象以外的执行对象有关的信息。

【技术特征摘要】
JP 2005-3-16 075916/20051.一种程序变换方法,将由高级语言描述的源程序变换成机器语言程序,其特征在于,包括解析步骤,对上述源程序进行词法分析和语法分析;中间代码变换步骤,根据上述解析步骤的分析结果,将上述源程序变换成中间代码;提示信息接受步骤,接受用于提高上述机器语言程序执行效率的提示信息;优化步骤,根据上述提示信息,对上述中间代码进行优化;以及机器语言程序变换步骤将优化后的上述中间代码变换成机器语言程序,在上述提示信息中,包含与成为变换对象的上述源程序所对应的执行对象以外的执行对象有关的信息。2.如权利要求1所述的程序变换方法,其特征在于在上述提示信息中,包含表示还含有与变换对象相对应的执行对象以外的执行对象、而应作为优化对象的数据的信息;上述优化步骤,包括根据上述提示信息,对作为优化对象的数据,进行可有效使用高速缓冲存储器的调整的高速缓存行调整步骤。3.如权利要求1所述的程序变换方法,其特征在于上述优化步骤包括高速缓存行调整步骤,该高速缓存行调整步骤根据上述提示信息,对作为优化对象的数据,进行可有效使用高速缓冲存储器的调整;上述高速缓存行调整步骤中,对作为优化对象的数据调整数据配置,以使该数据所占的高速缓冲存储器上的行数减少。4.如权利要求1所述的程序变换方法,其特征在于上述优化步骤包括高速缓存行调整步骤,该高速缓存行调整步骤根据上述提示信息,对作为优化对象的数据,进行可有效使用高速缓冲存储器的调整;上述高速缓存行调整步骤中,对于包括作为优化对象的数据的循环进行循环分割,以便在该循环的迭代中,可以以高速缓冲存储器的行为单位对该数据进行存取。5.如权利要求1所述的程序变换方法,其特征在于在上述提示信息中,包含与也包括与变换对象相对应的执行对象以外的执行对象、而应作为优化对象数据的实际配置地址有关的信息;上述优化步骤,包括根据上述提示信息,设定与作为优化对象的数据在高速缓冲存储器上所配置的集有关的信息的配置集信息设定步骤。6.如权利要求1所述的程序变换方法,其特征在于在上述提示信息中,包含表示还包括与变换对象相对应的执行对象以外的执行对象、而作为优化对象的数据被配置在高速缓冲存储器的某个集中的信息;上述优化步骤包括配置集信息设定步骤,该配置集信息设定步骤根据上述提示信息,设定与作为优化对象的数据在高速缓冲存储器上所配置的集有关的信息。7.如权利要求1所述的程序变换方法,其特征在于上述优化步骤包括配置集信息设定步骤,该配置集信息设定步骤根据上述提示信息,设定与作为优化对象的数据在高速缓冲存储器上所配置的集有关的信息;上述配置集信息设定步骤中,根据上述提示信息,确定作为优化对象的数据被配置在高速缓冲存储器的某个集中,从而不会产生因上述提示信息所指定的数据被配置在高速缓冲存储器上的同一个集中而相互冲突的情况。8.如权利要求1所述的程序变换方法,其特征在于上述优化步骤包括配置集信息设定步骤,该配置集信息设定步骤根据上述提示信息,设定与作为优化对象的数据在高速缓冲存储器上所配置的集有关的信息;上述配置集信息设定步骤中,根据上述提示信息,确定作为变换对象的执行对象中所包含的数据配置,以使映射到高速缓冲存储器的各集中的数据数均等。9.如权利要求1所述的程序变换方法,其特征在于上述优化步骤,包括配置集信息设定步骤,根据上述提示信息,设定与作为优化对象的数据在高速缓冲存储器上所配置的集有关的信息;以及提示信息输出步骤,将由上述配置集信息设定步骤所确定的配置信息作为提示信息输出。10.如权利要求1所述的程序变换方法,其特征在于上述优化步骤包括配置集信息设定步骤,该配置集信息设定步骤根据上述提示信息,设定与作为优化对象的数据在高速缓冲存储器上所配置的集有关的信息;上述配置集信息设定步骤中,根据上述提示信息,在由上述提示信息所指定的数据中,对于分配给预定数量以上的处理器的数据,确定将该数据配置在不被分配给高速缓冲存储器的主存储器上的区域。11.如权利要求1所述的程序变换方法,其特征在于在上述提示信息中,包含表示还包括与变换对象相对应的执行对象以外的执行对象、而各执行对象被分配在某个处理器的信息;上述优化步骤包括配置集信息设定步骤,该配置集信息设定步骤根据上述提示信息,设定与作为优化对象的数据在高速缓冲存储器上所配置的集有关的信息。12.如权利要求1所述的程序变换方法,其特征在于上述优化步骤包括处理器分配步骤,该处理器分配步骤根据上述提示信息,将作为变换对象的上述执行对象分配给该执行对象被执行的某个处理器;上述处理器分配步骤中,根据上述提示信息,将上述执行对象分配给该执行对象被执行的某个处理器,以便不会产生因上述提示信息所指定的数据被配置在高速缓冲存储器上的同一个集中而相互冲突的情况、或同一数据被分散配置在多个处理器中的情况。13.如权利要求1所述的程序变换方法,其特征在于上述优化步骤包括处理器分配步骤,该处理器分配步骤根据上述提示信息,将作为变换对象的上述执行对象分配给执行该执行对象的某个处理器;上述处理器分配步骤中,根据上述提示信息,将上述执行对象分配给执行该执行对象的某个处理器,以使映射到各处理器的本地高速缓冲存储器各集中的数据数均等。14.如权利要求1所述的程序变换方法,其特征在于上述优化步骤,包括处理器分配步骤,根据上述提示信息,将作为变换对象的上述执行对象分配给执行该执行对象的某个处理器;以及提示信息输出步骤,将与上述处理器分配步骤所确定的执行对象的处理器分配有关的信息作为提示信息进行输出。15.一种程序变换方法,接受至少1个目标文件,将该目标文件变换成机器语言程序,其特征在于,包括提示信息接收步骤,接...

【专利技术属性】
技术研发人员:瓶子岳人滨田智雄
申请(专利权)人:松下电器产业株式会社
类型:发明
国别省市:JP[日本]

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

1