專利名稱:針對多核/眾核處理器程序分割的后編譯系統(tǒng)的制作方法
技術(shù)領域:
本發(fā)明設計一種根據(jù)多核處理器應用需求合理分割程序的后編譯系統(tǒng)。尤其涉及
一種針對多核處理器各個處理器核之間運行的程序段分配及指令分割、串、并行執(zhí)行的后編譯器系統(tǒng)。
背景技術(shù):
隨著信息化的普及、生活水平的提高,消費者需要把更多的功能集成到同一款電
子產(chǎn)品中,使得在許多應用中同時具有多種不同的數(shù)字信號處理能力,如同時支持m印g2、
rmvb、h. 264等不同標準的視頻解碼,這就需要處理器有很強的流媒體處理能力。 傳統(tǒng)多核處理器在一塊芯片上集成多個并行執(zhí)行程序的處理器核以提高芯片性
能。對于傳統(tǒng)多核處理器,需要有并行編程的思想才有可能充分利用資源,然而,操作系統(tǒng)
對資源的分配和管理并沒有本質(zhì)的改變,多是以對稱的方式進行平均分配。盡管多個處理
器核之間可以進行并行運算,但對于數(shù)字信號處理程序而言,其串行執(zhí)行的結(jié)構(gòu)特點導致
在傳統(tǒng)多核處理器結(jié)構(gòu)中無法實現(xiàn)真正的流水線操作。此外,若對數(shù)字信號處理程序以并
行運行的原則進行程序段分割,必然大大增加運行在各個處理器核中的程序段之間交換數(shù)
據(jù)的時間。 目前新出現(xiàn)的多核處理器將多個處理器核串連形成串行執(zhí)行程序的結(jié)構(gòu),第一個處理器核的輸入數(shù)據(jù)取自外部存儲器,最后一個處理器核的結(jié)果送回外部存儲器,其余每個處理器核的輸入數(shù)據(jù)取自前一級處理器核,輸出數(shù)據(jù)送往后一級處理器核。每個處理器核能執(zhí)行包含多條指令的程序段。這種新型多核處理器可以構(gòu)成處理器核級別的流水線,提高數(shù)字信號處理的吞吐率。然而,現(xiàn)有的編譯系統(tǒng)或只針對單一處理器核情況編譯程序,或針對傳統(tǒng)多核處理器編譯并行執(zhí)行的程序, 不能滿足新型多核處理器串行分割程序的需求。
發(fā)明內(nèi)容
本發(fā)明針對現(xiàn)有應用程序的單進程順序執(zhí)行特點以及現(xiàn)有編譯器無法進行多核處理器之間的任務的串行分割與分配,提出了針對多核處理器程序分割的后編譯系統(tǒng),用以解決多核處理器中任務分配以及其帶來的多核效率低下的問題。
本法明采用以下技術(shù)方案實現(xiàn) 本發(fā)明所述針對多核處理器程序分割的后編譯系統(tǒng)。包括指令流解析器、處理器行為模型、代碼分割器以及目標代碼合成器,其中指令流解析器,用于對可執(zhí)行的程序代碼進行解析,生成行為模型可以掃描的前端碼流。處理器行為模型,用于對指令流解析器生成的前端碼流進行掃描,并分析其所需執(zhí)行周期、是否跳轉(zhuǎn)以及跳轉(zhuǎn)地址等信息,同時統(tǒng)計掃描結(jié)果。指令分割器,根據(jù)處理器行為模型掃描結(jié)果以及處理器信息對可執(zhí)行的程序指令代碼進行分割。數(shù)據(jù)分割器,根據(jù)指令代碼分割結(jié)果對指令所需要的數(shù)據(jù)進行分割。目標代碼合成器,用于將分割后的指令代碼和數(shù)據(jù)進行合成,生成最終的可執(zhí)行目標程序代碼。
本發(fā)明所述的指令流解析器對已經(jīng)編譯過的可執(zhí)行程序代碼進行解析,生成處理 器行為模型可識別的前端碼流。 本發(fā)明所述的行為模型為目標機(異構(gòu)多核處理器)體系結(jié)構(gòu)的行為模型。通過 掃描前端碼流可計算出指令的執(zhí)行周期、跳轉(zhuǎn)以及跳轉(zhuǎn)地址等信息。并可統(tǒng)計出整個前端 碼流的掃描結(jié)果。 本發(fā)明所述的指令分割器可根據(jù)處理器行為模型掃描結(jié)果以及處理器信息進行 指令代碼的分割。 本發(fā)明所述的針對多核處理器程序分割的后編譯系統(tǒng),其特征在于其所述的數(shù)據(jù) 分割器可根據(jù)指令代碼分割結(jié)果對指令所需要的數(shù)據(jù)進行分割。得到與分割后的指令代碼 塊相匹配的數(shù)據(jù)塊。 本發(fā)明所述的針對多核處理器程序分割的后編譯系統(tǒng),其特征在于其所述的目標 代碼合成器將指令分割器和數(shù)據(jù)分割器分割出的指令代碼塊和相應的數(shù)據(jù)塊合成最終針 對異構(gòu)多核處理器的可執(zhí)行目標代碼。 本發(fā)明所述的針對多核處理器程序分割的后編譯系統(tǒng),其特征在于該后編譯系統(tǒng) 可作為程序開發(fā)工具在對程序源代碼進行編譯后進行后編譯以生成適應于異構(gòu)多核處理 器運行的可執(zhí)行目標代碼。 本發(fā)明所述的針對多核處理器程序分割的后編譯系統(tǒng),其特征在于該后編譯系統(tǒng) 可作為多核處理器操作系統(tǒng)上一個進程,在進行程序運行開始時進行后編譯操作,并將后 編譯成生的可執(zhí)行目標代碼提交處理器執(zhí)行。 本發(fā)明所述的針對多核處理器程序分割的后編譯系統(tǒng),其特征在于該后編譯系統(tǒng) 作為開發(fā)工具使用時,目標機處理器的配置信息可由程序開發(fā)者根據(jù)目標處理器的配置信 息進行人工配設定。 本發(fā)明所述的針對多核處理器程序分割的后編譯系統(tǒng),其特征在于該后編譯系統(tǒng) 作為開發(fā)工具使用時,目標機處理器的配置信息可由操作系統(tǒng)根據(jù)根據(jù)目標處理器的處理 器核使用情況進行動態(tài)設定。 本發(fā)明具有以下有益效果通過針對多核處理器程序分割后編譯系統(tǒng),可將現(xiàn)有 的應用程序進行程序分割,不但提高了現(xiàn)有程序在多核處理器上的運行速度,而且充分發(fā) 揮了多核處理器的效率,同時也保證了多核處理器系統(tǒng)對現(xiàn)有應用程序的兼容。有效地解 決了現(xiàn)有應用程序無法充分發(fā)揮多核處理器優(yōu)勢的困境。
圖1為本發(fā)明所提出的多核處理器程序分割的后編譯系統(tǒng)結(jié)構(gòu)圖
圖2為本發(fā)明所提出的多核處理器程序分割的后編譯系統(tǒng)程序分割模塊圖
圖3為本發(fā)明所提出的多核處理器程序分割的后編譯系統(tǒng)程序分割流程圖
圖4為分割后的目標程序代碼在多核處理器系統(tǒng)上運行示意圖。
具體實施例方式
下面結(jié)合附圖對本發(fā)明的實施作詳細說明,本實施在一本法名技術(shù)方案為前提下 進行實施,給出了詳細地實施方式以及具體的操作過程,但本發(fā)明的保護范圍不限于下述的實施。 本發(fā)明的主要技術(shù)構(gòu)思是通過指令流解析器、處理器行為模型、代碼分割器以及 匯編合成器將可執(zhí)行程序代碼分割成指令碼和數(shù)據(jù)分割的可執(zhí)行程序,以提高在多核處理 器上的運行效率。其中指令流解析器對可執(zhí)行的程序代碼進行解析,生成行為模型可以掃 描的前端碼流。處理器行為模型對前端碼流進行掃描并分析,同時統(tǒng)計掃描結(jié)果。指令分 割器根據(jù)行為模型掃描結(jié)果進行指令代碼分割,數(shù)據(jù)分割器根據(jù)指令代碼分割結(jié)果對數(shù)據(jù) 塊進行分割。目標代碼合成器將分割后的指令代碼和數(shù)據(jù)合成獨立的可執(zhí)行程序。
下面通過各個附圖對本發(fā)明做一個詳細地說明。 請參閱圖l,改圖為多核處理器程序分割的后編譯系統(tǒng)結(jié)構(gòu)圖,本發(fā)明所述針對多 核處理器程序分割的后編譯系統(tǒng)由指令流解析器(101),處理器行為模型(108),指令分割 器(109),數(shù)據(jù)分割器(106)和目標代碼合成器(107)組成。其中處理器行為模型(108) 又分為前端碼流掃描(102)和前端碼流分析(103);指令分割器(109)又分為前端碼流分 割(104)和后端碼流生成(105)。由指令流解析器(101)接收并解析輸入指令流,形成本 發(fā)明所述編譯系統(tǒng)內(nèi)部格式的前端碼流,并送往處理器行為模型(108)。處理器行為模型 (108)接收到指令流解析器(101)送來的前端碼流后,先進行前端碼流掃描(102),再進行 前端碼流分析(103),得到程序信息的統(tǒng)計結(jié)果,送往指令分割器(109)。指令分割器(109) 接收到處理器行為模型(108)送來的前端碼流和統(tǒng)計信息后,根據(jù)統(tǒng)計信息在前端碼流分 割(104)中對前端碼流進行分割,再將分割后的前端碼流片段送到后端碼流生成(105)中 做必要修改,生成后端碼流送往目標代碼合成器(107),并將與數(shù)據(jù)分割有關(guān)的信息送往數(shù) 據(jù)分割器(106)。數(shù)據(jù)分割器(106)根據(jù)后端碼流相關(guān)信息,將與各后端碼流程序段相應的 數(shù)據(jù)組合成獨立數(shù)據(jù)塊,送往目標代碼合成器(107)。目標代碼合成器(107)將后端碼流生 成(105)和數(shù)據(jù)分割器(106)送來的各個程序段及相應數(shù)據(jù)塊一并合成為一個新的完整的 程序,供多核處理器系統(tǒng)執(zhí)行。 請參閱圖4,該圖為分割后的目標程序代碼在多核處理器系統(tǒng)上運行的示意圖。
經(jīng)過該發(fā)明中多核處理器程序分割的后編譯系統(tǒng)分割后的目標程序代碼在多核 處理器上運行時,各個分割后的指令塊以及數(shù)據(jù)塊分別加載到各個處理器核的本地指令和 數(shù)據(jù)存儲器,以供相應的處理器核在運行時使用。同時個處理器核按照串行的方式進行數(shù) 據(jù)的傳遞。在循環(huán)的情況下,處理器核0可以得到處理器核7的運算結(jié)果,并以此形成循環(huán)。
權(quán)利要求
一種針對多核處理器程序分割的后編譯系統(tǒng)。其特征在于包括指令流解析器、處理器行為模型、代碼分割器以及目標代碼合成器,其中指令流解析器,用于對可執(zhí)行的程序代碼進行解析,生成行為模型可以掃描的前端碼流。處理器行為模型,用于對指令流解析器生成的前端碼流進行掃描,并分析其所需執(zhí)行周期、是否跳轉(zhuǎn)以及跳轉(zhuǎn)地址等信息,同時統(tǒng)計掃描結(jié)果。指令分割器,根據(jù)處理器行為模型掃描結(jié)果以及處理器信息對可執(zhí)行的程序指令代碼進行分割。數(shù)據(jù)分割器,根據(jù)指令代碼分割結(jié)果對指令所需要的數(shù)據(jù)進行分割。目標代碼合成器,用于將分割后的指令代碼和數(shù)據(jù)進行合成,生成最終的可執(zhí)行目標程序代碼。
2. 根據(jù)權(quán)利要求1所述的針對多核處理器程序分割的后編譯系統(tǒng),其特征在于其所述 的指令流解析器對已經(jīng)編譯過的可執(zhí)行程序代碼進行解析,生成處理器行為模型可識別的 前端碼流。
3. 根據(jù)權(quán)利要求1所述的針對多核處理器程序分割的后編譯系統(tǒng),其特征在于其所述 的行為模型為目標機(異構(gòu)多核處理器)體系結(jié)構(gòu)的行為模型。通過掃描前端碼流可計算 出指令的執(zhí)行周期、跳轉(zhuǎn)以及跳轉(zhuǎn)地址等信息。并可統(tǒng)計出整個前端碼流的掃描結(jié)果。
4. 根據(jù)權(quán)利要求1所述的針對多核處理器程序分割的后編譯系統(tǒng),其特征在于其所述 的指令分割器可根據(jù)處理器行為模型掃描結(jié)果以及處理器信息進行指令代碼的分割。
5. 根據(jù)權(quán)利要求1所述的針對多核處理器程序分割的后編譯系統(tǒng),其特征在于其所述 的數(shù)據(jù)分割器可根據(jù)指令代碼分割結(jié)果對指令所需要的數(shù)據(jù)進行分割。得到與分割后的指 令代碼塊相匹配的數(shù)據(jù)塊。
6. 根據(jù)權(quán)利要求1所述的針對多核處理器程序分割的后編譯系統(tǒng),其特征在于其所述 的目標代碼合成器將指令分割器和數(shù)據(jù)分割器分割出的指令代碼塊和相應的數(shù)據(jù)塊合成 最終針對異構(gòu)多核處理器的可執(zhí)行目標代碼。
7. 根據(jù)權(quán)利要求1、2、3、4、5、6所述的針對多核處理器程序分割的后編譯系統(tǒng),其特征 在于該后編譯系統(tǒng)可作為程序開發(fā)工具在對程序源代碼進行編譯后進行后編譯以生成適 應于異構(gòu)多核處理器運行的可執(zhí)行目標代碼。
8. 根據(jù)權(quán)利要求1、2、3、4、5、6所述的針對多核處理器程序分割的后編譯系統(tǒng),其特征 在于該后編譯系統(tǒng)可作為多核處理器操作系統(tǒng)上一個進程,在進行程序運行開始時進行后 編譯操作,并將后編譯成生的可執(zhí)行目標代碼提交處理器執(zhí)行。
9. 根據(jù)權(quán)利要求1、2、3、4、5、6、7所述的針對多核處理器程序分割的后編譯系統(tǒng),其特 征在于該后編譯系統(tǒng)作為開發(fā)工具使用時,目標機處理器的配置信息可由程序開發(fā)者根據(jù) 目標處理器的配置信息進行人工配設定。
10. 根據(jù)權(quán)利要求1、2、3、4、5、6、8所述的針對多核處理器程序分割的后編譯系統(tǒng),其 特征在于該后編譯系統(tǒng)作為開發(fā)工具使用時,目標機處理器的配置信息可由操作系統(tǒng)根據(jù) 根據(jù)目標處理器的處理器核使用情況進行動態(tài)設定。
全文摘要
本發(fā)明公開一種后編譯系統(tǒng),具體為一種針對多核處理器程序分割的后編譯系統(tǒng)。包括指令流解析器、處理器行為模型、代碼分割器以及匯編合成器。其中指令流解析器對可執(zhí)行的程序代碼進行解析,生成行為模型可以掃描的前端碼流。處理器行為模型對前端碼流進行掃描并分析,同時統(tǒng)計掃描結(jié)果。指令分割器根據(jù)行為模型掃描結(jié)果進行指令代碼分割,數(shù)據(jù)分割器根據(jù)指令代碼分割結(jié)果對數(shù)據(jù)塊進行分割。目標代碼合成器將分割后的指令代碼和數(shù)據(jù)合成獨立的可執(zhí)行程序。本發(fā)明有效解決了多核處理器中任務分割困難以及多核之間的配合等帶來多核處理器效率低下等問題。
文檔編號G06F9/45GK101751280SQ20081020377
公開日2010年6月23日 申請日期2008年11月28日 優(yōu)先權(quán)日2008年11月28日
發(fā)明者任浩琪, 林正浩, 耿紅喜 申請人:上海芯豪微電子有限公司