CN101751280A - 针对多核/众核处理器程序分割的后编译系统 - Google Patents
针对多核/众核处理器程序分割的后编译系统 Download PDFInfo
- Publication number
- CN101751280A CN101751280A CN200810203777A CN200810203777A CN101751280A CN 101751280 A CN101751280 A CN 101751280A CN 200810203777 A CN200810203777 A CN 200810203777A CN 200810203777 A CN200810203777 A CN 200810203777A CN 101751280 A CN101751280 A CN 101751280A
- Authority
- CN
- China
- Prior art keywords
- processor
- code
- program
- instruction
- cutting apart
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开一种后编译系统,具体为一种针对多核处理器程序分割的后编译系统。包括指令流解析器、处理器行为模型、代码分割器以及汇编合成器。其中指令流解析器对可执行的程序代码进行解析,生成行为模型可以扫描的前端码流。处理器行为模型对前端码流进行扫描并分析,同时统计扫描结果。指令分割器根据行为模型扫描结果进行指令代码分割,数据分割器根据指令代码分割结果对数据块进行分割。目标代码合成器将分割后的指令代码和数据合成独立的可执行程序。本发明有效解决了多核处理器中任务分割困难以及多核之间的配合等带来多核处理器效率低下等问题。
Description
技术领域
本发明设计一种根据多核处理器应用需求合理分割程序的后编译系统。尤其涉及一种针对多核处理器各个处理器核之间运行的程序段分配及指令分割、串、并行执行的后编译器系统。
背景技术
随着信息化的普及、生活水平的提高,消费者需要把更多的功能集成到同一款电子产品中,使得在许多应用中同时具有多种不同的数字信号处理能力,如同时支持mepg2、rmvb、h.264等不同标准的视频解码,这就需要处理器有很强的流媒体处理能力。
传统多核处理器在一块芯片上集成多个并行执行程序的处理器核以提高芯片性能。对于传统多核处理器,需要有并行编程的思想才有可能充分利用资源,然而,操作系统对资源的分配和管理并没有本质的改变,多是以对称的方式进行平均分配。尽管多个处理器核之间可以进行并行运算,但对于数字信号处理程序而言,其串行执行的结构特点导致在传统多核处理器结构中无法实现真正的流水线操作。此外,若对数字信号处理程序以并行运行的原则进行程序段分割,必然大大增加运行在各个处理器核中的程序段之间交换数据的时间。
目前新出现的多核处理器将多个处理器核串连形成串行执行程序的结构,第一个处理器核的输入数据取自外部存储器,最后一个处理器核的结果送回外部存储器,其余每个处理器核的输入数据取自前一级处理器核,输出数据送往后一级处理器核。每个处理器核能执行包含多条指令的程序段。这种新型多核处理器可以构成处理器核级别的流水线,提高数字信号处理的吞吐率。然而,现有的编译系统或只针对单一处理器核情况编译程序,或针对传统多核处理器编译并行执行的程序,并不能满足新型多核处理器串行分割程序的需求。
发明内容
本发明针对现有应用程序的单进程顺序执行特点以及现有编译器无法进行多核处理器之间的任务的串行分割与分配,提出了针对多核处理器程序分割的后编译系统,用以解决多核处理器中任务分配以及其带来的多核效率低下的问题。
本法明采用以下技术方案实现:
本发明所述针对多核处理器程序分割的后编译系统。包括指令流解析器、处理器行为模型、代码分割器以及目标代码合成器,其中:指令流解析器,用于对可执行的程序代码进行解析,生成行为模型可以扫描的前端码流。处理器行为模型,用于对指令流解析器生成的前端码流进行扫描,并分析其所需执行周期、是否跳转以及跳转地址等信息,同时统计扫描结果。指令分割器,根据处理器行为模型扫描结果以及处理器信息对可执行的程序指令代码进行分割。数据分割器,根据指令代码分割结果对指令所需要的数据进行分割。目标代码合成器,用于将分割后的指令代码和数据进行合成,生成最终的可执行目标程序代码。
本发明所述的指令流解析器对已经编译过的可执行程序代码进行解析,生成处理器行为模型可识别的前端码流。
本发明所述的行为模型为目标机(异构多核处理器)体系结构的行为模型。通过扫描前端码流可计算出指令的执行周期、跳转以及跳转地址等信息。并可统计出整个前端码流的扫描结果。
本发明所述的指令分割器可根据处理器行为模型扫描结果以及处理器信息进行指令代码的分割。
本发明所述的针对多核处理器程序分割的后编译系统,其特征在于其所述的数据分割器可根据指令代码分割结果对指令所需要的数据进行分割。得到与分割后的指令代码块相匹配的数据块。
本发明所述的针对多核处理器程序分割的后编译系统,其特征在于其所述的目标代码合成器将指令分割器和数据分割器分割出的指令代码块和相应的数据块合成最终针对异构多核处理器的可执行目标代码。
本发明所述的针对多核处理器程序分割的后编译系统,其特征在于该后编译系统可作为程序开发工具在对程序源代码进行编译后进行后编译以生成适应于异构多核处理器运行的可执行目标代码。
本发明所述的针对多核处理器程序分割的后编译系统,其特征在于该后编译系统可作为多核处理器操作系统上一个进程,在进行程序运行开始时进行后编译操作,并将后编译成生的可执行目标代码提交处理器执行。
本发明所述的针对多核处理器程序分割的后编译系统,其特征在于该后编译系统作为开发工具使用时,目标机处理器的配置信息可由程序开发者根据目标处理器的配置信息进行人工配设定。
本发明所述的针对多核处理器程序分割的后编译系统,其特征在于该后编译系统作为开发工具使用时,目标机处理器的配置信息可由操作系统根据根据目标处理器的处理器核使用情况进行动态设定。
本发明具有以下有益效果:通过针对多核处理器程序分割后编译系统,可将现有的应用程序进行程序分割,不但提高了现有程序在多核处理器上的运行速度,而且充分发挥了多核处理器的效率,同时也保证了多核处理器系统对现有应用程序的兼容。有效地解决了现有应用程序无法充分发挥多核处理器优势的困境。
附图说明
图1为本发明所提出的多核处理器程序分割的后编译系统结构图
图2为本发明所提出的多核处理器程序分割的后编译系统程序分割模块图
图3为本发明所提出的多核处理器程序分割的后编译系统程序分割流程图
图4为分割后的目标程序代码在多核处理器系统上运行示意图。
具体实施方式
下面结合附图对本发明的实施作详细说明,本实施在一本法名技术方案为前提下进行实施,给出了详细地实施方式以及具体的操作过程,但本发明的保护范围不限于下述的实施。
本发明的主要技术构思是通过指令流解析器、处理器行为模型、代码分割器以及汇编合成器将可执行程序代码分割成指令码和数据分割的可执行程序,以提高在多核处理器上的运行效率。其中指令流解析器对可执行的程序代码进行解析,生成行为模型可以扫描的前端码流。处理器行为模型对前端码流进行扫描并分析,同时统计扫描结果。指令分割器根据行为模型扫描结果进行指令代码分割,数据分割器根据指令代码分割结果对数据块进行分割。目标代码合成器将分割后的指令代码和数据合成独立的可执行程序。
下面通过各个附图对本发明做一个详细地说明。
请参阅图1,改图为多核处理器程序分割的后编译系统结构图,本发明所述针对多核处理器程序分割的后编译系统由指令流解析器(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的运算结果,并以此形成循环。
Claims (10)
1.一种针对多核处理器程序分割的后编译系统。其特征在于包括指令流解析器、处理器行为模型、代码分割器以及目标代码合成器,其中:
指令流解析器,用于对可执行的程序代码进行解析,生成行为模型可以扫描的前端码流。
处理器行为模型,用于对指令流解析器生成的前端码流进行扫描,并分析其所需执行周期、是否跳转以及跳转地址等信息,同时统计扫描结果。
指令分割器,根据处理器行为模型扫描结果以及处理器信息对可执行的程序指令代码进行分割。
数据分割器,根据指令代码分割结果对指令所需要的数据进行分割。
目标代码合成器,用于将分割后的指令代码和数据进行合成,生成最终的可执行目标程序代码。
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所述的针对多核处理器程序分割的后编译系统,其特征在于该后编译系统作为开发工具使用时,目标机处理器的配置信息可由操作系统根据根据目标处理器的处理器核使用情况进行动态设定。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810203777A CN101751280A (zh) | 2008-11-28 | 2008-11-28 | 针对多核/众核处理器程序分割的后编译系统 |
EP09828544A EP2372530A4 (en) | 2008-11-28 | 2009-11-30 | METHOD AND DEVICE FOR DATA PROCESSING |
PCT/CN2009/001346 WO2010060283A1 (zh) | 2008-11-28 | 2009-11-30 | 一种数据处理的方法与装置 |
KR1020117014902A KR101275698B1 (ko) | 2008-11-28 | 2009-11-30 | 데이터 처리 방법 및 장치 |
US13/118,360 US20110231616A1 (en) | 2008-11-28 | 2011-05-27 | Data processing method and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810203777A CN101751280A (zh) | 2008-11-28 | 2008-11-28 | 针对多核/众核处理器程序分割的后编译系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101751280A true CN101751280A (zh) | 2010-06-23 |
Family
ID=42478295
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810203777A Pending CN101751280A (zh) | 2008-11-28 | 2008-11-28 | 针对多核/众核处理器程序分割的后编译系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101751280A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101794230A (zh) * | 2010-04-07 | 2010-08-04 | 孙斌 | 用于多核的c语言扩充及编译系统支持方法 |
CN102207884A (zh) * | 2011-06-02 | 2011-10-05 | 深圳市茁壮网络股份有限公司 | 一种文件编译方法及装置 |
WO2012027907A1 (en) * | 2010-09-03 | 2012-03-08 | Siemens Aktiengesellschaft | Method for parallelizing automatic control programs and compiler |
CN102880816A (zh) * | 2012-09-24 | 2013-01-16 | 江苏技术师范学院 | 基于片上系统多核融合的软件保护装置及工作方法 |
CN105095110A (zh) * | 2014-02-18 | 2015-11-25 | 新加坡国立大学 | 可融合可重构缓存架构 |
CN110362530A (zh) * | 2019-07-17 | 2019-10-22 | 电子科技大学 | 一种基于并行流水线架构的数据链盲信号处理方法 |
-
2008
- 2008-11-28 CN CN200810203777A patent/CN101751280A/zh active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101794230A (zh) * | 2010-04-07 | 2010-08-04 | 孙斌 | 用于多核的c语言扩充及编译系统支持方法 |
WO2012027907A1 (en) * | 2010-09-03 | 2012-03-08 | Siemens Aktiengesellschaft | Method for parallelizing automatic control programs and compiler |
CN103080900A (zh) * | 2010-09-03 | 2013-05-01 | 西门子公司 | 并行化自动控制程序的方法及编译器 |
CN103080900B (zh) * | 2010-09-03 | 2015-10-14 | 西门子公司 | 并行化自动控制程序的方法及编译器 |
CN102207884A (zh) * | 2011-06-02 | 2011-10-05 | 深圳市茁壮网络股份有限公司 | 一种文件编译方法及装置 |
CN102880816A (zh) * | 2012-09-24 | 2013-01-16 | 江苏技术师范学院 | 基于片上系统多核融合的软件保护装置及工作方法 |
CN102880816B (zh) * | 2012-09-24 | 2014-12-17 | 江苏理工学院 | 基于片上系统多核融合的软件保护装置及工作方法 |
CN105095110A (zh) * | 2014-02-18 | 2015-11-25 | 新加坡国立大学 | 可融合可重构缓存架构 |
US9977741B2 (en) | 2014-02-18 | 2018-05-22 | Huawei Technologies Co., Ltd. | Fusible and reconfigurable cache architecture |
CN110362530A (zh) * | 2019-07-17 | 2019-10-22 | 电子科技大学 | 一种基于并行流水线架构的数据链盲信号处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101751280A (zh) | 针对多核/众核处理器程序分割的后编译系统 | |
CN101799760B (zh) | 生成任意目标架构的并行单指令多数据代码的系统和方法 | |
CN101963918B (zh) | 实现cpu/gpu异构平台的虚拟执行环境的方法 | |
CN1296823C (zh) | 可重定目标的编译系统和方法 | |
CN1294486C (zh) | 多重处理环境中透明动态优化的方法和系统 | |
CN103927187A (zh) | 嵌入式系统程序执行方法 | |
CN105867993A (zh) | 一种软件产品编译方法及设备 | |
CN104111912A (zh) | 用于支持处理器的多模式的设备和方法 | |
CN102455903B (zh) | 一种用户应用界面的生成方法 | |
Chang et al. | Collaborative computing for heterogeneous integrated systems | |
CN102541611B (zh) | 指令翻译装置和方法、指令处理装置和处理器 | |
US20120143589A1 (en) | Multi-modal compiling apparatus and method for generating a hybrid codefile | |
CN1975693A (zh) | 具有自驱动功能的指令仿真解析系统及其实现方法 | |
CN104750533B (zh) | C程序编译方法及编译器 | |
US7000091B2 (en) | System and method for independent branching in systems with plural processing elements | |
CN101551748B (zh) | 一种优化的编译方法 | |
She et al. | OpenCL code generation for low energy wide SIMD architectures with explicit datapath | |
CN1321276A (zh) | 可配置的硬件块 | |
KR20040079097A (ko) | 보조프로세서를 이용한 멀티미디어 처리를 위한 가속장치 | |
JP5360506B2 (ja) | マルチコアにおけるプログラミングシステム、その方法及びそのプログラム | |
CN1310446C (zh) | 镜像测试方法 | |
CN100498716C (zh) | 一种用于处理器仿真模型中的系统调用转换直通通道方法 | |
CN102508445A (zh) | 一种智能算法处理系统和方法 | |
CN102566969B (zh) | 一种在sopc系统中提高软硬件交互的方法 | |
CN108804222B (zh) | 一种临时变量的数据区分配方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20100623 |