本發(fā)明屬于多處理器系統(tǒng)領(lǐng)域,尤其涉及一種多處理器系統(tǒng)的IP核優(yōu)化方法及裝置。
背景技術(shù):
近十幾年來,由于軟件設(shè)計(jì)和硬件設(shè)計(jì)之間存在著一個(gè)缺口,也就是說,軟件設(shè)計(jì)總是比硬件設(shè)計(jì)快,所以人們現(xiàn)在正朝向于利用高層次綜合(HLS)來加快硬件設(shè)計(jì)。因?yàn)橛布O(shè)計(jì)需要更多時(shí)間來調(diào)試,或者需要產(chǎn)生不同面積的IP核。
利用高級(jí)綜合(High level Synthesis-HLS)可以使用軟件工具(例如Cyberworkbench)把高級(jí)語(yǔ)言的IP核(例如C、C++、SystemC)轉(zhuǎn)換為行為描述語(yǔ)言的IP核(Verilog HDL、VHDL),其優(yōu)點(diǎn)在于可以通過使用不同的限制文件(FCNT)來獲得不同面積(不同性能)的行為描述模塊(RTL)而不需要改變高級(jí)語(yǔ)言IP核中的內(nèi)容。
但是現(xiàn)在的IP核總是過于設(shè)計(jì):使用最大面積進(jìn)行綜合來獲得最快運(yùn)行時(shí)間(最高性能)的行為描述模塊。
但是,對(duì)于多處理器系統(tǒng),這些IP核往往不需要都綜合成最大的面積來獲得最高性能。例如,每個(gè)IP核(可綜合部分),測(cè)試平臺(tái)(不可綜合部分),AMBA-BUS總線和它們相對(duì)應(yīng)的接口(slave interface/master interface),每個(gè)IP核(task)都映射到硬件電路中,測(cè)試平臺(tái)(不可綜合部分)映射到多核處理器中,它們之間的連接都是通過總線(BUS)進(jìn)行連接,每個(gè)IP核需要從總線讀取數(shù)據(jù)和返回?cái)?shù)據(jù),而總線具有一定的總線阻塞問題,這部分需要一定的延時(shí)時(shí)間。
如果大的面積進(jìn)行綜合的話,所得到的性能也是最好的,反之,如果綜合成性能(latency)差、運(yùn)行時(shí)間長(zhǎng)的IP核,那么所需要的面積就小。
所以,當(dāng)映射每個(gè)IP核到多處理器系統(tǒng)上時(shí),就存在一個(gè)問題:如何取得同樣性能且具有優(yōu)化面積的IP核。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例的目的在于提供一種多處理器系統(tǒng)的IP核優(yōu)化方法,旨在解決當(dāng)映射每個(gè)IP核到多處理器系統(tǒng)上時(shí),無法取得同樣性能且具有優(yōu)化面積的IP核的問題。
本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的,一種多處理器系統(tǒng)的IP核優(yōu)化方法,包括:
獲取多個(gè)IP核的折衷曲線點(diǎn);
對(duì)所述折衷曲線點(diǎn)進(jìn)行不同的組合;
提取不同組合時(shí)所述IP核占用的不同面積,所述面積為映射所述IP核到多處理器系統(tǒng)中需要的面積;
對(duì)所述IP核占用的不同面積進(jìn)行排序,得到面積最大IP核以及剩余的面積IP核;
運(yùn)行所述面積最大IP核,獲取第一性能參數(shù),運(yùn)行所述剩余的面積IP核,獲取第二性能參數(shù),檢測(cè)所述第二性能參數(shù)與所述第一性能參數(shù)是否相同或相近,若相同或相近時(shí),將當(dāng)前運(yùn)行的所述面積IP核設(shè)置為優(yōu)化IP核;
其中,所述優(yōu)化IP核為取得同樣的性能且具有優(yōu)化面積的IP核;
其中,所述第一性能參數(shù)和所述第二性能參數(shù)的參數(shù)類型相同。
本發(fā)明實(shí)施例的另一目的在于提供一種多處理器系統(tǒng)的IP核優(yōu)化裝置,包括:
折衷曲線點(diǎn)獲取模塊,用于獲取多個(gè)IP核的折衷曲線點(diǎn);
折衷曲線點(diǎn)組合模塊,用于對(duì)所述折衷曲線點(diǎn)進(jìn)行不同的組合;
面積提取模塊,用于提取不同組合時(shí)所述IP核占用的不同面積,所述面積為映射所述IP核到多處理器系統(tǒng)中需要的面積;
排序模塊,用于對(duì)所述IP核占用的不同面積進(jìn)行排序,得到面積最大IP核以及剩余的面積IP核;
優(yōu)化模塊,用于運(yùn)行所述面積最大IP核,獲取第一性能參數(shù),運(yùn)行所述剩余的面積IP核,獲取第二性能參數(shù),檢測(cè)所述第二性能參數(shù)與所述第一性能參數(shù)是否相同或相近,若相同或相近時(shí),將當(dāng)前運(yùn)行的所述面積IP核設(shè)置為優(yōu)化IP核;
其中,所述優(yōu)化IP核為取得同樣的性能且具有優(yōu)化面積的IP核;
其中,所述第一性能參數(shù)和所述第二性能參數(shù)的參數(shù)類型相同。
在本發(fā)明實(shí)施例中,運(yùn)行所述面積最大IP核,獲取第一性能參數(shù),運(yùn)行所述剩余的面積IP核,獲取第二性能參數(shù),檢測(cè)所述第二性能參數(shù)與所述第一性能參數(shù)是否相同或相近,若相同或相近時(shí),將當(dāng)前運(yùn)行的所述面積IP核設(shè)置為優(yōu)化IP核,解決了當(dāng)映射每個(gè)IP核到多處理器系統(tǒng)上時(shí),無法取得同樣性能且具有優(yōu)化面積的IP核的問題。當(dāng)映射每個(gè)IP核到多處理器系統(tǒng)上時(shí),可自動(dòng)取得同樣的性能且不需要不同面積中最大面積的IP核,即優(yōu)化IP核。優(yōu)化IP核的有益效果在于以下兩方面,一方面,可以實(shí)現(xiàn)與面積最大IP核相同的性能,另一方面,可大量減少需要的面積,從而節(jié)省了運(yùn)行成本及開發(fā)費(fèi)用。
附圖說明
圖1是本發(fā)明實(shí)施例提供的多處理器系統(tǒng)的IP核優(yōu)化方法的實(shí)現(xiàn)流程圖;
圖2是本發(fā)明實(shí)施例提供的多處理器系統(tǒng)的IP核優(yōu)化方法步驟S104的實(shí)現(xiàn)流程圖;
圖3是本發(fā)明實(shí)施例提供的多處理器系統(tǒng)的IP核優(yōu)化方法步驟S105的第一實(shí)現(xiàn)流程圖;
圖4是本發(fā)明實(shí)施例提供的多處理器系統(tǒng)的IP核優(yōu)化方法步驟S105的第二實(shí)現(xiàn)流程圖;
圖5為本發(fā)明實(shí)施例提供的當(dāng)參數(shù)類型為吞吐量時(shí),優(yōu)化IP核較佳的樣例圖;
圖6是本發(fā)明實(shí)施例提供的多處理器系統(tǒng)的IP核優(yōu)化裝置的結(jié)構(gòu)框圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
實(shí)施例一
圖1是本發(fā)明實(shí)施例提供的多處理器系統(tǒng)的IP核優(yōu)化方法的實(shí)現(xiàn)流程圖,詳述如下:
在步驟S101中,獲取多個(gè)IP核的折衷曲線點(diǎn);
其中,步驟S101,具體為:
獲取每個(gè)IP核的折衷曲線;
對(duì)折衷曲線進(jìn)行采樣,得到每個(gè)IP核的折衷曲線點(diǎn)。
在步驟S102中,對(duì)所述折衷曲線點(diǎn)進(jìn)行不同的組合;
在步驟S103中,提取不同組合時(shí)所述IP核占用的不同面積,所述面積為映射所述IP核到多處理器系統(tǒng)中需要的面積;
在步驟S104中,對(duì)所述IP核占用的不同面積進(jìn)行排序,得到面積最大IP核以及剩余的面積IP核;
在步驟S105中,運(yùn)行所述面積最大IP核,獲取第一性能參數(shù),運(yùn)行所述剩余的面積IP核,獲取第二性能參數(shù),檢測(cè)所述第二性能參數(shù)與所述第一性能參數(shù)是否相同或相近,若相同或相近時(shí),將當(dāng)前運(yùn)行的所述面積IP核設(shè)置為優(yōu) 化IP核;
其中,所述優(yōu)化IP核為取得同樣的性能且具有優(yōu)化面積的IP核;
其中,所述第一性能參數(shù)和所述第二性能參數(shù)的參數(shù)類型相同。
其中,面積最大IP核為:不同面積中最大面積對(duì)應(yīng)的IP核。
其中,剩余的面積IP核為:不同面積中除最大面積以外的任意一個(gè)面積對(duì)應(yīng)的IP核。
其中,運(yùn)行所述面積最大IP核,獲取第一性能參數(shù),運(yùn)行所述剩余的面積IP核,獲取第二性能參數(shù),具體為:
運(yùn)行所述面積最大IP核,獲取運(yùn)行時(shí)得到的第一性能參數(shù),
按面積從大到小的順序或面積從小到大的順序,運(yùn)行所述剩余的面積IP核,獲取運(yùn)行時(shí)得到的第二性能參數(shù)。
在本發(fā)明實(shí)施例中,當(dāng)映射每個(gè)IP核到多處理器系統(tǒng)上時(shí),可自動(dòng)取得優(yōu)化IP核。優(yōu)化IP核的有益效果在于以下兩方面,一方面,可以實(shí)現(xiàn)與面積最大IP核相同的性能,另一方面,可大量減少需要的面積,從而節(jié)省了運(yùn)行成本及開發(fā)費(fèi)用。
實(shí)施例二
圖2是本發(fā)明實(shí)施例提供的多處理器系統(tǒng)的IP核優(yōu)化方法步驟S104的實(shí)現(xiàn)流程圖,詳述如下:
在步驟S201中,按面積從大到小的順序或面積從小到大的順序,對(duì)所述IP核占用的不同面積進(jìn)行排序,得到面積最大IP核;
在步驟S202中,在所有的面積IP核中,剔除面積最大IP核,得到剩余的面積IP核。
實(shí)施例三
本發(fā)明實(shí)施例描述了參數(shù)類型的組成,詳述如下:
所述參數(shù)類型包括吞吐量和吞吐率中的至少一種。
實(shí)施例四
圖3是本發(fā)明實(shí)施例提供的多處理器系統(tǒng)的IP核優(yōu)化方法步驟S105的第一實(shí)現(xiàn)流程圖,詳述如下:
在步驟S301中,運(yùn)行所述面積最大IP核,獲取第一吞吐量,運(yùn)行所述剩余的面積IP核,獲取第二吞吐量;
在步驟S302中,檢測(cè)所述第二吞吐量與所述第一吞吐量是否相同,或檢測(cè)所述第二吞吐量與所述第一吞吐量是否處于預(yù)設(shè)吞吐量范圍內(nèi);
在步驟S303中,若相同或處于預(yù)設(shè)吞吐量范圍內(nèi)時(shí),將當(dāng)前運(yùn)行的所述面積IP核設(shè)置為優(yōu)化IP核。
實(shí)施例五
圖4是本發(fā)明實(shí)施例提供的多處理器系統(tǒng)的IP核優(yōu)化方法步驟S105的第二實(shí)現(xiàn)流程圖,詳述如下:
在步驟S401中,運(yùn)行所述面積最大IP核,獲取第一吞吐率,運(yùn)行所述剩余的面積IP核,獲取第二吞吐率;
在步驟S402中,檢測(cè)所述第二吞吐率與所述第一吞吐率是否相同,或檢測(cè)所述第二吞吐率與所述第一吞吐率是否處于預(yù)設(shè)吞吐率范圍內(nèi);
在步驟S403中,若相同或處于預(yù)設(shè)吞吐率范圍內(nèi)時(shí),將當(dāng)前運(yùn)行的所述面積IP核設(shè)置為優(yōu)化IP核。
實(shí)施例六
圖5為本發(fā)明實(shí)施例提供的當(dāng)參數(shù)類型為吞吐量時(shí),優(yōu)化IP核較佳的樣例圖,詳述如下:
其中,吞吐量為時(shí)間的倒數(shù)。
高性能、高面積ip為面積最大IP核;
高性能、低面積ip為優(yōu)化IP核;
低性能、低面積ip為面積最小IP核。
實(shí)施例七
圖6是本發(fā)明實(shí)施例提供的多處理器系統(tǒng)的IP核優(yōu)化裝置的結(jié)構(gòu)框圖,該裝置可以運(yùn)行于具備多處理器的電子設(shè)備中。為了便于說明,僅示出了與本實(shí)施例相關(guān)的部分。
參照?qǐng)D6,該多處理器系統(tǒng)的IP核優(yōu)化裝置,包括:
折衷曲線點(diǎn)獲取模塊61,用于獲取多個(gè)IP核的折衷曲線點(diǎn);
折衷曲線點(diǎn)組合模塊62,用于對(duì)所述折衷曲線點(diǎn)進(jìn)行不同的組合;
面積提取模塊63,用于提取不同組合時(shí)所述IP核占用的不同面積,所述面積為映射所述IP核到多處理器系統(tǒng)中需要的面積;
排序模塊64,用于對(duì)所述IP核占用的不同面積進(jìn)行排序,得到面積最大IP核以及剩余的面積IP核;
優(yōu)化模塊65,用于運(yùn)行所述面積最大IP核,獲取第一性能參數(shù),運(yùn)行所述剩余的面積IP核,獲取第二性能參數(shù),檢測(cè)所述第二性能參數(shù)與所述第一性能參數(shù)是否相同或相近,若相同或相近時(shí),將當(dāng)前運(yùn)行的所述面積IP核設(shè)置為優(yōu)化IP核;
其中,所述優(yōu)化IP核為取得同樣的性能且具有優(yōu)化面積的IP核;
其中,所述第一性能參數(shù)和所述第二性能參數(shù)的參數(shù)類型相同。
在本實(shí)施例的一種實(shí)現(xiàn)方式中,所述面積提取模塊,包括:
排序模塊,用于按面積從大到小的順序或面積從小到大的順序,對(duì)所述IP核占用的不同面積進(jìn)行排序,得到面積最大IP核;
剔除模塊,用于優(yōu)化模塊,用于在所有的面積IP核中,剔除面積最大IP核,得到剩余的面積IP核。
在本實(shí)施例的一種實(shí)現(xiàn)方式中,所述參數(shù)類型包括吞吐量和吞吐率中的至少一種。
在本實(shí)施例的一種實(shí)現(xiàn)方式中,所述優(yōu)化模塊,包括:
第一運(yùn)行模塊,用于運(yùn)行所述面積最大IP核,獲取第一吞吐量,運(yùn)行所述剩余的面積IP核,獲取第二吞吐量;
第一檢測(cè)模塊,用于檢測(cè)所述第二吞吐量與所述第一吞吐量是否相同,或檢測(cè)所述第二吞吐量與所述第一吞吐量是否處于預(yù)設(shè)吞吐量范圍內(nèi);
第一優(yōu)化模塊,用于若相同或處于預(yù)設(shè)吞吐量范圍內(nèi)時(shí),將當(dāng)前運(yùn)行的所述面積IP核設(shè)置為優(yōu)化IP核。
在本實(shí)施例的一種實(shí)現(xiàn)方式中,所述優(yōu)化模塊,包括:
第二運(yùn)行模塊,用于運(yùn)行所述面積最大IP核,獲取第一吞吐率,運(yùn)行所述剩余的面積IP核,獲取第二吞吐率;
第二檢測(cè)模塊,用于檢測(cè)所述第二吞吐率與所述第一吞吐率是否相同,或檢測(cè)所述第二吞吐率與所述第一吞吐率是否處于預(yù)設(shè)吞吐率范圍內(nèi);
第二優(yōu)化模塊,用于若相同或處于預(yù)設(shè)吞吐率范圍內(nèi)時(shí),將當(dāng)前運(yùn)行的所述面積IP核設(shè)置為優(yōu)化IP核。
本發(fā)明實(shí)施例提供的裝置可以應(yīng)用在前述對(duì)應(yīng)的方法實(shí)施例中,詳情參見上述實(shí)施例的描述,在此不再贅述。
通過以上的實(shí)施方式的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件的方式來實(shí)現(xiàn)。所述的程序可以存儲(chǔ)于可讀取存儲(chǔ)介質(zhì)中,所述的存儲(chǔ)介質(zhì),如隨機(jī)存儲(chǔ)器、閃存、只讀存儲(chǔ)器、可編程只讀存儲(chǔ)器、電可擦寫可編程存儲(chǔ)器、寄存器等。該存儲(chǔ)介質(zhì)位于存儲(chǔ)器,處理 器讀取存儲(chǔ)器中的信息,結(jié)合其硬件執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求的保護(hù)范圍為準(zhǔn)。