專利名稱:一種嵌入式內(nèi)存數(shù)據(jù)片上片外分配方法
技術(shù)領(lǐng)域:
本發(fā)明屬于嵌入式內(nèi)存技術(shù)領(lǐng)域。尤其涉及一種嵌入式內(nèi)存數(shù)據(jù)片上片外分配方法。本發(fā)明能取得針對(duì)具體應(yīng)用在具體內(nèi)存配置上的性能最優(yōu),尤其適用于多媒體應(yīng)用程序在便箋式存貯器/高速緩存混合內(nèi)存結(jié)構(gòu)上的性能優(yōu)化。
背景技術(shù):
由于制造工藝和電路邏輯結(jié)構(gòu)的差異,處理器執(zhí)行部件的速度一直高于存儲(chǔ)器讀寫速度,并且隨著半導(dǎo)體工藝技術(shù)的發(fā)展,這一速度差距造成的性能差異在逐步加大。解決處理器與外存速度失配的一個(gè)重要技術(shù)就是存儲(chǔ)系統(tǒng)采用分層設(shè)計(jì),在片上集成一個(gè)小的、但速度更快的存儲(chǔ)器來提高系統(tǒng)存儲(chǔ)訪問性能。片上內(nèi)存結(jié)構(gòu)作為嵌入式系統(tǒng)的重要部分,直接影響著系統(tǒng)的性能、功耗、成本等關(guān)鍵參數(shù)。片上內(nèi)存結(jié)構(gòu)有高速緩存Cache和便箋式存貯器SPM (Scratch-Pad Memory)兩種類型。SPM相比Cache存儲(chǔ)每位花費(fèi)更少面積和功耗,因而嵌入式系統(tǒng)片上內(nèi)存結(jié)構(gòu)采取SPM/Cache的混合結(jié)構(gòu)漸漸成為一種趨勢(shì)。然而,SPM的容量很小和專用性,使得如何有效使用片上內(nèi)存資源成為嵌入式系統(tǒng)設(shè)計(jì)的關(guān)鍵問題?,F(xiàn)有的軟件數(shù)據(jù)存儲(chǔ)優(yōu)化研究主要集中在如何增加Cache命令率,或者如何增加SPM訪問次數(shù),缺乏對(duì)采用Cache和SPM混合片上內(nèi)存結(jié)構(gòu)的數(shù)據(jù)內(nèi)存訪問優(yōu)化研究。數(shù)據(jù)片上片外分配技術(shù)是一種嵌入式系統(tǒng)存儲(chǔ)優(yōu)化技術(shù),利用該技術(shù)得到片上片外分配策略決定哪些數(shù)據(jù)通過SPM(稱為片上)訪問,哪些數(shù)據(jù)通過Cache (稱為片外)訪問。數(shù)據(jù)片上片外分配技術(shù)優(yōu)化了數(shù)據(jù)在SPM和Cache之間的分配,可以取得對(duì)具體應(yīng)用的性能最優(yōu),已經(jīng)成為了嵌入式系統(tǒng)存儲(chǔ)優(yōu)化研究的熱點(diǎn)。
發(fā)明內(nèi)容
本發(fā)明的目的是針對(duì)現(xiàn)有技術(shù)的不足,提供一種嵌入式內(nèi)存數(shù)據(jù)片上片外分配方法,能夠?qū)崿F(xiàn)具體應(yīng)用程序在具體內(nèi)存配置上的性能最優(yōu)。為了解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案包括如下步驟:
步驟1.利用編譯器和仿真器工具提取具體應(yīng)用程序的信息;
步驟2.對(duì)這些信息建立TCG模型;
步驟3.提出數(shù)據(jù)分配方法將TCG值大的數(shù)據(jù)對(duì)象分配到SPM ;
步驟4.提出數(shù)據(jù)布局方法將TCG值大的數(shù)據(jù)對(duì)象映射到不同的Cache組以避免沖突。步驟I所述的具體應(yīng)用程序的信息,包括數(shù)據(jù)對(duì)象的大小、生命周期、訪問次數(shù)、時(shí)間局部性和空間局部性;所述的時(shí)間局部性是由時(shí)間關(guān)系圖TRG (TemporalRelationship Graph)來表示;空間局部性是由最大連續(xù)訪問次數(shù)來表示。步驟2所述的TCG模型,其內(nèi)容包括步驟I提取的數(shù)據(jù)對(duì)象的大小、生命周期、訪問次數(shù)、時(shí)間局部性和空間局部性因素,其模型公式如下:
TCG=(訪問次數(shù)*生命周期*TRG值)/ (最大連續(xù)訪問次數(shù)*對(duì)象大小)。
步驟3所述的數(shù)據(jù)分配方法,具體包括如下步驟:
3-1.將全部數(shù)據(jù)對(duì)象按照TCG值降序排列,并初始化,然后分配到片外內(nèi)存,作為待分配數(shù)據(jù)對(duì)象;
3-2.在所有待分配數(shù)據(jù)對(duì)象中,依降序順序選擇第一個(gè)滿足容量小于或等于便箋式存貯器剩余容量的數(shù)據(jù)對(duì)象,將該數(shù)據(jù)對(duì)象分配到片上便箋式存貯器;
3-3.重復(fù)步驟3-2,直到所有待分配數(shù)據(jù)對(duì)象容量均大于便箋式存貯器剩余容量,則結(jié)束。步驟4所述的數(shù)據(jù)布局方法包含如下步驟:
4-1.計(jì)算剩余待分配數(shù)據(jù)對(duì)象中數(shù)據(jù)對(duì)象需要的高速緩存組數(shù),計(jì)算公式如下:
組數(shù)=數(shù)據(jù)對(duì)象大小/高速緩存組大??;
4-2.將高速緩存當(dāng)前組號(hào)分配給數(shù)據(jù)對(duì)象,并將緩存當(dāng)前組號(hào)加一,同時(shí)數(shù)據(jù)對(duì)象所需組數(shù)減一;
4-3.重復(fù)步驟4-2,直到數(shù)據(jù)對(duì)象所需組數(shù)為零;
4-4.重復(fù)步驟4-1、4-2和4-3,直到剩余待分配數(shù)據(jù)對(duì)象全部分配完成。
本發(fā)明的有益效果如下:
本發(fā)明方法利用TCG模型對(duì)應(yīng)用程序信息進(jìn)行建模,綜合考慮了 SPM的合理利用與片外內(nèi)存數(shù)據(jù)對(duì)象的合理布局,優(yōu)化了 SPM和Cache之間的數(shù)據(jù)分配,減少了程序消耗在數(shù)據(jù)存儲(chǔ)訪問時(shí)間和降低數(shù)據(jù)存儲(chǔ)訪問能耗,實(shí)現(xiàn)了具體應(yīng)用程序在具體內(nèi)存配置上的性能最優(yōu)。
圖1為本發(fā)明方法的流程 圖2為本發(fā)明方法提出的TCG模型結(jié)構(gòu) 圖3為本發(fā)明方法中的SPM/Cache數(shù)據(jù)分配方法流程 圖4為本發(fā)明方法中的固定Cache數(shù)據(jù)布局方法流程圖。
具體實(shí)施例方式下面結(jié)合具體實(shí)施方式
和附圖對(duì)本發(fā)明進(jìn)行詳細(xì)描述。如圖1所示,本實(shí)施方式中首先利用編譯器和仿真器工具提取具體應(yīng)用程序的信息:①選擇GCC-2.7.1-MIPS編譯器的-03優(yōu)化選項(xiàng)靜態(tài)編譯應(yīng)用程序得到MIPS匯編代碼;②選擇MIPS仿真器對(duì)片上內(nèi)存進(jìn)行配置,包括容量大小、訪問延遲和組織方式(替換策略、寫策略、寫缺失策略和關(guān)聯(lián)方式)等,開啟性能統(tǒng)計(jì)工具,進(jìn)行程序的數(shù)據(jù)存儲(chǔ)訪問性能的仿真。其次對(duì)這些信息建立TCG模型;然后利用SPM/Cache數(shù)據(jù)分配方法將TCG值大的數(shù)據(jù)對(duì)象分配到SPM ;最后利用固定Cache數(shù)據(jù)布局方法將TCG值大的數(shù)據(jù)對(duì)象映射到不同的Cache組以避免沖突。所述的具體應(yīng)用程序的信息,包括數(shù)據(jù)對(duì)象的大小、生命周期、訪問次數(shù)、時(shí)間局部性和空間局部性;所述的時(shí)間局部性是由時(shí)間關(guān)系圖TRG (Temporal RelationshipGraph)來表示;空間局部性是由最大連續(xù)訪問次數(shù)來表示。
如圖2所示,所述的TCG模型,其內(nèi)容包括步驟I提取的數(shù)據(jù)對(duì)象的大小、生命周期、訪問次數(shù)、時(shí)間局部性和空間局部性因素,其模型公式如下:
TCG=(訪問次數(shù)*生命周期*TRG值)/ (最大連續(xù)訪問次數(shù)*對(duì)象大小)。其中,時(shí)間關(guān)系圖TRG(Temporal Relationship Graph)和 TRG 值可參看 N.Gloy,T.Blockwell, M.D.Zorn 論文題目 Procedure placement using temporal orderinginformation后參照文本。如圖3所示,本實(shí)施方式中的SPM/Cache數(shù)據(jù)分配的目的是將最容易發(fā)生沖突的數(shù)據(jù)對(duì)象分配到SPM中,包括如下步驟:
Stepl、將全部數(shù)據(jù)對(duì)象按照TCG值降序排列,并初始化,然后分配到片外內(nèi)存,作為待分配數(shù)據(jù)對(duì)象;
Step2、在所有待分配數(shù)據(jù)對(duì)象中,依降序順序選擇第一個(gè)滿足容量小于或等于便箋式存貯器剩余容量的數(shù)據(jù)對(duì)象,將該數(shù)據(jù)對(duì)象分配到片上便箋式存貯器SPM ;
Step3、重復(fù)步驟Step2,直到所有待分配數(shù)據(jù)對(duì)象容量均大于便箋式存貯器剩余容量,則結(jié)束。如圖4所示,本實(shí)施方式中的固定Cache數(shù)據(jù)布局具有兩個(gè)目標(biāo):①減少Cache缺失的次數(shù);②減少片外內(nèi)存空間(即數(shù)據(jù)布局完后減少片外內(nèi)存中的洞),包括如下步驟:
Step4、計(jì)算剩余的i個(gè)待分配數(shù)據(jù)對(duì)象中每個(gè)數(shù)據(jù)對(duì)象需要的高速緩存組數(shù)j,計(jì)算公式如下:
組數(shù)j=數(shù)據(jù)對(duì)象大小/高速緩存組大小;
Step5、將高速緩存當(dāng)前組號(hào)setNO分配給數(shù)據(jù)對(duì)象,并將緩存當(dāng)前組號(hào)setNO加一,同時(shí)數(shù)據(jù)對(duì)象所需組數(shù)j減一;
St印6、重復(fù)步驟4-5,直到數(shù)據(jù)對(duì)象所需組數(shù)j為零;
Step7、重復(fù)步驟4-4、4-5和4_6,直到剩余的i個(gè)待分配數(shù)據(jù)對(duì)象全部分配完成。
權(quán)利要求
1.一種嵌入式內(nèi)存數(shù)據(jù)片上片外分配方法,其特征在于包括如下步驟: 步驟1.利用編譯器和仿真器工具提取具體應(yīng)用程序的信息; 步驟2.對(duì)這些信息建立TCG模型; 步驟3.提出數(shù)據(jù)分配方法將TCG值大的數(shù)據(jù)對(duì)象分配到SPM ; 步驟4.提出數(shù)據(jù)布局方法將TCG值大的數(shù)據(jù)對(duì)象映射到不同的Cache組以避免沖突;步驟I所述的具體應(yīng)用程序的信息,包括數(shù)據(jù)對(duì)象的大小、生命周期、訪問次數(shù)、時(shí)間局部性和空間局部性;所述的時(shí)間局部性是由時(shí)間關(guān)系圖TRG來表示;空間局部性是由最大連續(xù)訪問次數(shù)來表示; 步驟2所述 的TCG模型,其內(nèi)容包括步驟I提取的數(shù)據(jù)對(duì)象的大小、生命周期、訪問次數(shù)、時(shí)間局部性和空間局部性因素,其模型公式如下: TCG=(訪問次數(shù)*生命周期*TRG值)/ (最大連續(xù)訪問次數(shù)*對(duì)象大小); 步驟3所述的數(shù)據(jù)分配方法,具體包括如下步驟: 3-1.將全部數(shù)據(jù)對(duì)象按照TCG值降序排列,并初始化,然后分配到片外內(nèi)存,作為待分配數(shù)據(jù)對(duì)象; 3-2.在所有待分配數(shù)據(jù)對(duì)象中,依降序順序選擇第一個(gè)滿足容量小于或等于便箋式存貯器剩余容量的數(shù)據(jù)對(duì)象,將該數(shù)據(jù)對(duì)象分配到片上便箋式存貯器; 3-3.重復(fù)步驟3-2,直到所有待分配數(shù)據(jù)對(duì)象容量均大于便箋式存貯器剩余容量,則結(jié)束; 步驟4所述的數(shù)據(jù)布局方法包含如下步驟: 4-1.計(jì)算剩余待分配數(shù)據(jù)對(duì)象中數(shù)據(jù)對(duì)象需要的高速緩存組數(shù),計(jì)算公式如下: 組數(shù)=數(shù)據(jù)對(duì)象大小/高速緩存組大小; 4-2.將高速緩存當(dāng)前組號(hào)分配給數(shù)據(jù)對(duì)象,并將緩存當(dāng)前組號(hào)加一,同時(shí)數(shù)據(jù)對(duì)象所需組數(shù)減一; 4-3.重復(fù)步驟4-2,直到數(shù)據(jù)對(duì)象所需組數(shù)為零; 4-4.重復(fù)步驟4-1、4-2和4-3,直到剩余待分配數(shù)據(jù)對(duì)象全部分配完成。
全文摘要
本發(fā)明涉及一種嵌入式內(nèi)存數(shù)據(jù)片上片外分配方法。片上內(nèi)存作為嵌入式系統(tǒng)的關(guān)鍵部分,直接影響著系統(tǒng)的整體性能。本發(fā)明首先提出了TCG模型作為衡量數(shù)據(jù)對(duì)象引起Cache缺失的新標(biāo)準(zhǔn),綜合考慮了絕大部分關(guān)鍵因素,比如數(shù)據(jù)對(duì)象大小、生命周期、訪問次數(shù)、時(shí)間局部性和空間局部性等。其次提出SPM/Cache數(shù)據(jù)分配方法將最容易發(fā)生沖突(TCG值大)的數(shù)據(jù)對(duì)象分配到SPM。然后提出固定Cache數(shù)據(jù)布局方法將TCG值大的數(shù)據(jù)對(duì)象映射到不同的Cache組來避免沖突。本發(fā)明方法使得片上內(nèi)存硬件和其上運(yùn)行的軟件更加匹配,減少程序訪問存儲(chǔ)系統(tǒng)的時(shí)間,從而提高系統(tǒng)整體性能。
文檔編號(hào)G06F12/02GK103218304SQ20131011468
公開日2013年7月24日 申請(qǐng)日期2013年4月3日 優(yōu)先權(quán)日2013年4月3日
發(fā)明者姚英彪, 陳越佳, 王璇, 曾憲彬 申請(qǐng)人:杭州電子科技大學(xué)