针对多核/众核处理器程序分割的后编译系统的制作方法

文档序号:6469580阅读:128来源:国知局
专利名称:针对多核/众核处理器程序分割的后编译系统的制作方法
技术领域
本发明设计一种根据多核处理器应用需求合理分割程序的后编译系统。尤其涉及
一种针对多核处理器各个处理器核之间运行的程序段分配及指令分割、串、并行执行的后编译器系统。
背景技术
随着信息化的普及、生活水平的提高,消费者需要把更多的功能集成到同一款电
子产品中,使得在许多应用中同时具有多种不同的数字信号处理能力,如同时支持m印g2、
rmvb、h. 264等不同标准的视频解码,这就需要处理器有很强的流媒体处理能力。 传统多核处理器在一块芯片上集成多个并行执行程序的处理器核以提高芯片性
能。对于传统多核处理器,需要有并行编程的思想才有可能充分利用资源,然而,操作系统
对资源的分配和管理并没有本质的改变,多是以对称的方式进行平均分配。尽管多个处理
器核之间可以进行并行运算,但对于数字信号处理程序而言,其串行执行的结构特点导致
在传统多核处理器结构中无法实现真正的流水线操作。此外,若对数字信号处理程序以并
行运行的原则进行程序段分割,必然大大增加运行在各个处理器核中的程序段之间交换数
据的时间。 目前新出现的多核处理器将多个处理器核串连形成串行执行程序的结构,第一个处理器核的输入数据取自外部存储器,最后一个处理器核的结果送回外部存储器,其余每个处理器核的输入数据取自前一级处理器核,输出数据送往后一级处理器核。每个处理器核能执行包含多条指令的程序段。这种新型多核处理器可以构成处理器核级别的流水线,提高数字信号处理的吞吐率。然而,现有的编译系统或只针对单一处理器核情况编译程序,或针对传统多核处理器编译并行执行的程序, 不能满足新型多核处理器串行分割程序的需求。

发明内容
本发明针对现有应用程序的单进程顺序执行特点以及现有编译器无法进行多核处理器之间的任务的串行分割与分配,提出了针对多核处理器程序分割的后编译系统,用以解决多核处理器中任务分配以及其带来的多核效率低下的问题。
本法明采用以下技术方案实现 本发明所述针对多核处理器程序分割的后编译系统。包括指令流解析器、处理器行为模型、代码分割器以及目标代码合成器,其中指令流解析器,用于对可执行的程序代码进行解析,生成行为模型可以扫描的前端码流。处理器行为模型,用于对指令流解析器生成的前端码流进行扫描,并分析其所需执行周期、是否跳转以及跳转地址等信息,同时统计扫描结果。指令分割器,根据处理器行为模型扫描结果以及处理器信息对可执行的程序指令代码进行分割。数据分割器,根据指令代码分割结果对指令所需要的数据进行分割。目标代码合成器,用于将分割后的指令代码和数据进行合成,生成最终的可执行目标程序代码。
本发明所述的指令流解析器对已经编译过的可执行程序代码进行解析,生成处理 器行为模型可识别的前端码流。 本发明所述的行为模型为目标机(异构多核处理器)体系结构的行为模型。通过 扫描前端码流可计算出指令的执行周期、跳转以及跳转地址等信息。并可统计出整个前端 码流的扫描结果。 本发明所述的指令分割器可根据处理器行为模型扫描结果以及处理器信息进行 指令代码的分割。 本发明所述的针对多核处理器程序分割的后编译系统,其特征在于其所述的数据 分割器可根据指令代码分割结果对指令所需要的数据进行分割。得到与分割后的指令代码 块相匹配的数据块。 本发明所述的针对多核处理器程序分割的后编译系统,其特征在于其所述的目标 代码合成器将指令分割器和数据分割器分割出的指令代码块和相应的数据块合成最终针 对异构多核处理器的可执行目标代码。 本发明所述的针对多核处理器程序分割的后编译系统,其特征在于该后编译系统 可作为程序开发工具在对程序源代码进行编译后进行后编译以生成适应于异构多核处理 器运行的可执行目标代码。 本发明所述的针对多核处理器程序分割的后编译系统,其特征在于该后编译系统 可作为多核处理器操作系统上一个进程,在进行程序运行开始时进行后编译操作,并将后 编译成生的可执行目标代码提交处理器执行。 本发明所述的针对多核处理器程序分割的后编译系统,其特征在于该后编译系统 作为开发工具使用时,目标机处理器的配置信息可由程序开发者根据目标处理器的配置信 息进行人工配设定。 本发明所述的针对多核处理器程序分割的后编译系统,其特征在于该后编译系统 作为开发工具使用时,目标机处理器的配置信息可由操作系统根据根据目标处理器的处理 器核使用情况进行动态设定。 本发明具有以下有益效果通过针对多核处理器程序分割后编译系统,可将现有 的应用程序进行程序分割,不但提高了现有程序在多核处理器上的运行速度,而且充分发 挥了多核处理器的效率,同时也保证了多核处理器系统对现有应用程序的兼容。有效地解 决了现有应用程序无法充分发挥多核处理器优势的困境。


图1为本发明所提出的多核处理器程序分割的后编译系统结构图
图2为本发明所提出的多核处理器程序分割的后编译系统程序分割模块图
图3为本发明所提出的多核处理器程序分割的后编译系统程序分割流程图
图4为分割后的目标程序代码在多核处理器系统上运行示意图。
具体实施例方式
下面结合附图对本发明的实施作详细说明,本实施在一本法名技术方案为前提下 进行实施,给出了详细地实施方式以及具体的操作过程,但本发明的保护范围不限于下述的实施。 本发明的主要技术构思是通过指令流解析器、处理器行为模型、代码分割器以及 汇编合成器将可执行程序代码分割成指令码和数据分割的可执行程序,以提高在多核处理 器上的运行效率。其中指令流解析器对可执行的程序代码进行解析,生成行为模型可以扫 描的前端码流。处理器行为模型对前端码流进行扫描并分析,同时统计扫描结果。指令分 割器根据行为模型扫描结果进行指令代码分割,数据分割器根据指令代码分割结果对数据 块进行分割。目标代码合成器将分割后的指令代码和数据合成独立的可执行程序。
下面通过各个附图对本发明做一个详细地说明。 请参阅图l,改图为多核处理器程序分割的后编译系统结构图,本发明所述针对多 核处理器程序分割的后编译系统由指令流解析器(101),处理器行为模型(108),指令分割 器(109),数据分割器(106)和目标代码合成器(107)组成。其中处理器行为模型(108) 又分为前端码流扫描(102)和前端码流分析(103);指令分割器(109)又分为前端码流分 割(104)和后端码流生成(105)。由指令流解析器(101)接收并解析输入指令流,形成本 发明所述编译系统内部格式的前端码流,并送往处理器行为模型(108)。处理器行为模型 (108)接收到指令流解析器(101)送来的前端码流后,先进行前端码流扫描(102),再进行 前端码流分析(103),得到程序信息的统计结果,送往指令分割器(109)。指令分割器(109) 接收到处理器行为模型(108)送来的前端码流和统计信息后,根据统计信息在前端码流分 割(104)中对前端码流进行分割,再将分割后的前端码流片段送到后端码流生成(105)中 做必要修改,生成后端码流送往目标代码合成器(107),并将与数据分割有关的信息送往数 据分割器(106)。数据分割器(106)根据后端码流相关信息,将与各后端码流程序段相应的 数据组合成独立数据块,送往目标代码合成器(107)。目标代码合成器(107)将后端码流生 成(105)和数据分割器(106)送来的各个程序段及相应数据块一并合成为一个新的完整的 程序,供多核处理器系统执行。 请参阅图4,该图为分割后的目标程序代码在多核处理器系统上运行的示意图。
经过该发明中多核处理器程序分割的后编译系统分割后的目标程序代码在多核 处理器上运行时,各个分割后的指令块以及数据块分别加载到各个处理器核的本地指令和 数据存储器,以供相应的处理器核在运行时使用。同时个处理器核按照串行的方式进行数 据的传递。在循环的情况下,处理器核0可以得到处理器核7的运算结果,并以此形成循环。
权利要求
一种针对多核处理器程序分割的后编译系统。其特征在于包括指令流解析器、处理器行为模型、代码分割器以及目标代码合成器,其中指令流解析器,用于对可执行的程序代码进行解析,生成行为模型可以扫描的前端码流。处理器行为模型,用于对指令流解析器生成的前端码流进行扫描,并分析其所需执行周期、是否跳转以及跳转地址等信息,同时统计扫描结果。指令分割器,根据处理器行为模型扫描结果以及处理器信息对可执行的程序指令代码进行分割。数据分割器,根据指令代码分割结果对指令所需要的数据进行分割。目标代码合成器,用于将分割后的指令代码和数据进行合成,生成最终的可执行目标程序代码。
2. 根据权利要求1所述的针对多核处理器程序分割的后编译系统,其特征在于其所述 的指令流解析器对已经编译过的可执行程序代码进行解析,生成处理器行为模型可识别的 前端码流。
3. 根据权利要求1所述的针对多核处理器程序分割的后编译系统,其特征在于其所述 的行为模型为目标机(异构多核处理器)体系结构的行为模型。通过扫描前端码流可计算 出指令的执行周期、跳转以及跳转地址等信息。并可统计出整个前端码流的扫描结果。
4. 根据权利要求1所述的针对多核处理器程序分割的后编译系统,其特征在于其所述 的指令分割器可根据处理器行为模型扫描结果以及处理器信息进行指令代码的分割。
5. 根据权利要求1所述的针对多核处理器程序分割的后编译系统,其特征在于其所述 的数据分割器可根据指令代码分割结果对指令所需要的数据进行分割。得到与分割后的指 令代码块相匹配的数据块。
6. 根据权利要求1所述的针对多核处理器程序分割的后编译系统,其特征在于其所述 的目标代码合成器将指令分割器和数据分割器分割出的指令代码块和相应的数据块合成 最终针对异构多核处理器的可执行目标代码。
7. 根据权利要求1、2、3、4、5、6所述的针对多核处理器程序分割的后编译系统,其特征 在于该后编译系统可作为程序开发工具在对程序源代码进行编译后进行后编译以生成适 应于异构多核处理器运行的可执行目标代码。
8. 根据权利要求1、2、3、4、5、6所述的针对多核处理器程序分割的后编译系统,其特征 在于该后编译系统可作为多核处理器操作系统上一个进程,在进行程序运行开始时进行后 编译操作,并将后编译成生的可执行目标代码提交处理器执行。
9. 根据权利要求1、2、3、4、5、6、7所述的针对多核处理器程序分割的后编译系统,其特 征在于该后编译系统作为开发工具使用时,目标机处理器的配置信息可由程序开发者根据 目标处理器的配置信息进行人工配设定。
10. 根据权利要求1、2、3、4、5、6、8所述的针对多核处理器程序分割的后编译系统,其 特征在于该后编译系统作为开发工具使用时,目标机处理器的配置信息可由操作系统根据 根据目标处理器的处理器核使用情况进行动态设定。
全文摘要
本发明公开一种后编译系统,具体为一种针对多核处理器程序分割的后编译系统。包括指令流解析器、处理器行为模型、代码分割器以及汇编合成器。其中指令流解析器对可执行的程序代码进行解析,生成行为模型可以扫描的前端码流。处理器行为模型对前端码流进行扫描并分析,同时统计扫描结果。指令分割器根据行为模型扫描结果进行指令代码分割,数据分割器根据指令代码分割结果对数据块进行分割。目标代码合成器将分割后的指令代码和数据合成独立的可执行程序。本发明有效解决了多核处理器中任务分割困难以及多核之间的配合等带来多核处理器效率低下等问题。
文档编号G06F9/45GK101751280SQ20081020377
公开日2010年6月23日 申请日期2008年11月28日 优先权日2008年11月28日
发明者任浩琪, 林正浩, 耿红喜 申请人:上海芯豪微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1