[發(fā)明專利]一種異構(gòu)多核處理器編譯器有效
| 申請?zhí)枺?/td> | 201210243789.4 | 申請日: | 2012-07-13 |
| 公開(公告)號: | CN103116513A | 公開(公告)日: | 2013-05-22 |
| 發(fā)明(設(shè)計(jì))人: | 劉清濤;于立新;宋立國 | 申請(專利權(quán))人: | 北京時代民芯科技有限公司;北京微電子技術(shù)研究所 |
| 主分類號: | G06F9/45 | 分類號: | G06F9/45 |
| 代理公司: | 中國航天科技專利中心 11009 | 代理人: | 安麗 |
| 地址: | 100076 北*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 多核 處理器 編譯器 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及一種異構(gòu)多核處理器編譯器。
背景技術(shù)
目前大多數(shù)處理器都是多核處理器,而多核處理器又根據(jù)各核心的架構(gòu)或功能的相同與否分為同構(gòu)多核處理器和異構(gòu)多核處理器。異構(gòu)多核處理器因其低成本、可重構(gòu)、高性能的特點(diǎn)而在嵌入式系統(tǒng)及航空航天領(lǐng)域有著廣泛的應(yīng)用。
異構(gòu)多核處理器通常包含一個或多個功能完善的主核和多個有特殊功能的從核。在異構(gòu)多核處理器硬件的開發(fā)過程中,要對其功能進(jìn)行驗(yàn)證和擴(kuò)展,必須有一個對應(yīng)的編譯系統(tǒng)來輔助。然而,由于異構(gòu)及多個核心的特點(diǎn),使異構(gòu)多核編譯系統(tǒng)的設(shè)計(jì)相對于傳統(tǒng)的單核編譯器和同構(gòu)多核編譯系統(tǒng)的設(shè)計(jì)更加復(fù)雜和困難。
現(xiàn)存的異構(gòu)多核編譯系統(tǒng)通常是從頭進(jìn)行全新的設(shè)計(jì),其中某些編譯器還對傳統(tǒng)語言進(jìn)行了語法擴(kuò)展。從頭設(shè)計(jì)一個這樣的編譯系統(tǒng)開發(fā)周期非常長,而沒有編譯系統(tǒng)就不能對硬件功能進(jìn)行完整的測試和驗(yàn)證。因此,從頭設(shè)計(jì)異構(gòu)多核編譯系統(tǒng)會嚴(yán)重影響處理器硬件的開發(fā)速度。另外,如果對傳統(tǒng)語言進(jìn)行語法擴(kuò)展,需要編譯器支持這些新的語法,增加了編譯器的設(shè)計(jì)難度,并且這些新的語法需要用戶重新學(xué)習(xí)使用,增加了用戶的使用難度。
發(fā)明內(nèi)容
本發(fā)明的技術(shù)解決問題是:針對現(xiàn)有技術(shù)的不足,提供了一種異構(gòu)多核處理器編譯器,使用現(xiàn)有編譯系統(tǒng)實(shí)現(xiàn)了對異構(gòu)多核處理器的適用。
本發(fā)明的技術(shù)解決方案是:
本發(fā)明在不改變編程語言語法的情況下,通過對源代碼進(jìn)行處理使得源代碼可利用適應(yīng)異構(gòu)多核處理器的個單核處理器,從而可使用現(xiàn)存的單核編譯器對源代碼進(jìn)行編譯。對所述源代碼進(jìn)行處理的異構(gòu)多核處理器編譯器,包括預(yù)處理器,程序分析器、數(shù)據(jù)分解器、單核編譯器集、數(shù)據(jù)合成器和主核編譯器。
所述程序分析器為所述預(yù)處理代碼添加編譯指示獲得待編譯代碼;
所述數(shù)據(jù)分解器將所述待編譯代碼劃分為用于主核待編譯代碼塊和從核待編譯代碼塊;
所述單核編譯器集調(diào)用所述異構(gòu)多核處理器的主核對所述主核待編譯代碼塊進(jìn)行編譯獲得主核可執(zhí)行代碼;調(diào)用所述異構(gòu)多核處理器的從核對所述從核待編譯代碼塊進(jìn)行編譯獲得從核可執(zhí)行代碼;
所述數(shù)據(jù)合成器將所述從核可執(zhí)行代碼轉(zhuǎn)化為所述主核可識別的形式;并將所述主核可執(zhí)行代碼與主核可識別的從核可執(zhí)行代碼合并形成最終預(yù)處理代碼;
所述主核編譯器對所述最終預(yù)處理代碼進(jìn)行編譯形成可執(zhí)行代碼。
所述程序分析器將所述預(yù)處理代碼劃分為代碼模塊,并根據(jù)所述代碼模塊中的調(diào)用關(guān)系,向所述預(yù)處理代碼中添加編譯指示獲得所述待編譯代碼。
本發(fā)明與現(xiàn)有技術(shù)相比具有如下優(yōu)點(diǎn):
本發(fā)明提供一種設(shè)計(jì)異構(gòu)多核編譯系統(tǒng),從而克服了異構(gòu)多核編譯器開發(fā)速度慢,使用困難的問題。并且此編譯器能使用各單核編譯器的所有功能,保證了編譯效率。本發(fā)明由于沒有對源代碼所用語言進(jìn)行語法擴(kuò)展,降低了使用難度,直接使用現(xiàn)有的單核編譯器,減少了設(shè)計(jì)編譯器工作量,加快了編譯器開發(fā)速度,保證了設(shè)計(jì)出的編譯器質(zhì)量。同時,本發(fā)明保留單核編譯器的所有功能,各核代碼分別編譯時可以使用原有的編譯優(yōu)化功能,保證了生成的可執(zhí)行代碼的運(yùn)行效率。整個編譯器由多個獨(dú)立組件構(gòu)成,各部分間無耦合,如需以本設(shè)計(jì)為基礎(chǔ)改進(jìn)編譯器,可以容易的添加或裁剪編譯器組件,便于進(jìn)行功能擴(kuò)展。進(jìn)一步采用本發(fā)明對各編程語言具有很好的兼容性,只要更改分解模塊的定義、依賴性分析方法和單核編譯器集,即可讓支持其他的編程語言。例如若要支持C++語言,只要將分解模塊定義為類和函數(shù),并根據(jù)語言特性將依賴性分析方法改進(jìn),將單核編譯器改為支持C++語言的編譯器即可。
附圖說明
圖1為本發(fā)明示意圖;
圖2為實(shí)施例流程圖。
具體實(shí)施方式
如圖1所示,本發(fā)明由預(yù)處理器101、程序分析器102、數(shù)據(jù)分解器103、單核編譯器集104、數(shù)據(jù)合成器105和主核編譯器106組成。每一組件都對上一組件生成的結(jié)果進(jìn)行處理。本發(fā)明通過對源代碼進(jìn)行解析,將源代碼分解成異構(gòu)多核處理器中單核可編譯的多個子塊,實(shí)現(xiàn)了對現(xiàn)有單核處理器編譯器的適用。
下面就結(jié)合圖2所示過程對本發(fā)明進(jìn)行介紹。預(yù)處理器101首先對源代碼original.c進(jìn)行預(yù)處理,包括將源代碼中的宏展開、合并續(xù)行并添加基本的編譯指示信息,得到預(yù)處理代碼original.i?107。通過預(yù)處理,降低了后續(xù)模塊分析代碼的難度。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京時代民芯科技有限公司;北京微電子技術(shù)研究所,未經(jīng)北京時代民芯科技有限公司;北京微電子技術(shù)研究所許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210243789.4/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:一種護(hù)理用蒸汽熱敷床
- 下一篇:一種骨科用咬絲鉗





