在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于復(fù)雜度的嵌入式軟件功耗模型

            基于復(fù)雜度的嵌入式軟件功耗模型

            作者: 時(shí)間:2004-12-21 來源:網(wǎng)絡(luò) 收藏
            摘要:系統(tǒng)系統(tǒng)的一個(gè)重要方向,很大程度上取決于執(zhí)行的。傳統(tǒng)的底層指令級(jí)分析方法雖然能比較準(zhǔn)確地估算出系統(tǒng)的功耗,但是這種方法所需要的時(shí)間過長(zhǎng)。本文介紹一種高層功耗分析估測(cè)方法,以對(duì)象函數(shù)所使用的算法的來對(duì)該函數(shù)構(gòu)建功耗,從而根據(jù)此功耗能快速估算出該函數(shù)在各種輸入情形下的功耗情況。

            關(guān)鍵詞:算法 嵌入式系統(tǒng) 功耗模型

            1 嵌入式軟件功耗

            嵌入式系統(tǒng)的功耗主要來自微處理器的功耗與外圍部件的功耗。雖然能量的水泵最終發(fā)生在底層硬件,但是微處理器的功耗很大程度上取決于其所執(zhí)行的軟件。因此,對(duì)嵌入式系統(tǒng)的功耗分析越來越多地轉(zhuǎn)移到軟件的角度上來,將能量的消耗過程視作軟件執(zhí)行過程。

            目前的嵌入式軟件功耗分析大多數(shù)都是指令級(jí)功耗模型的分析方法。在這種模型中,嵌入式軟件程序的功耗由單條指令的基本功耗開銷、連續(xù)執(zhí)行不同類型的指令造成的功耗開銷以及額外的功耗開銷(如流水線斷流、Cache不命中)等構(gòu)成。雖然這種底層的嵌入式軟件功耗的分析方法的準(zhǔn)確性較高,但是其分析過程需要在特定微處理器平臺(tái)上將程序翻譯成匯編指令,然后通過逐條指令功耗分析和綜合因素考慮,最后才能估算出該程序在某種微處理器上執(zhí)行的系統(tǒng)功能,需要相當(dāng)長(zhǎng)的分析時(shí)間。

            2 的嵌入式軟件功耗模型

            針對(duì)指令級(jí)功耗模型的瓶頸,本文介紹一種復(fù)雜度的嵌入式軟件功耗模型,利用現(xiàn)有條件能快速估算出某函數(shù)的功耗情況。

            在嵌入式軟件應(yīng)用中大量使用的多媒體計(jì)算和其它數(shù)據(jù)密集型計(jì)算中,經(jīng)常用到諸如查找、排序、矩陣運(yùn)算等算法。由于這些算法的平均復(fù)雜度都是已知的,因此復(fù)雜度成為這些嵌入式軟件程序的一個(gè)重要特征,同樣也能夠成為分析和估測(cè)嵌入式軟件功耗的一種重要依據(jù)?;趶?fù)雜度的嵌入式軟件功耗模型以具體函數(shù)所使用的算法的復(fù)雜度為建模的參數(shù),選取該函數(shù)的典型輸入,并利用現(xiàn)有指令級(jí)模型分析方法獲得該函數(shù)在這些典型輸入情況下的功耗,利用回歸算法出該函數(shù)軟件功耗模型的系數(shù),從而獲得完事的該函數(shù)軟件功耗模型,并可以用于快速估算該函數(shù)在任何輸入情況下的軟件功耗。

            在某函數(shù)的算法復(fù)雜度是已知的或較容易獲得的情況下,假設(shè)該函數(shù)的執(zhí)行所需功耗與其復(fù)雜度有關(guān),則可以使用一個(gè)線性公式來描述該函數(shù)的軟件功耗:

            其中Pj為模型的參數(shù)與函數(shù)的算法復(fù)雜度與函數(shù)的輸入相關(guān);cj為相應(yīng)的系數(shù);p是參數(shù)個(gè)數(shù)。

            構(gòu)建模型的第一步是決定描述功耗模型的參數(shù)Pj。參數(shù)的選擇與具體的函數(shù)所使用的算法密度相關(guān)。幾種比較常見的算法的功耗模型可以表1中的線性公式來描述。

            表1 基于復(fù)雜度的軟件功耗模型

            算 法平均復(fù)雜度軟件功耗宏模型
            數(shù)組求和O(n)c1+c2N
            插入排序O(n2)c1+c2N+c3N2
            快速排序O(nlog2n)c1+c2N+c3Nlog2N

            參數(shù)確定之后,必須找到相應(yīng)的系數(shù)cj,這是整個(gè)算法中最重要的步驟。一旦獲得系數(shù)cj后,就可以利用這些系統(tǒng)估算出該函數(shù)在任何輸入情況下的功耗。

            要算出系數(shù),首先要確定該函數(shù)的典型輸入集合S={I1,I2,…,In},S中的每個(gè)Ii都與該函數(shù)一組模型參數(shù)Pj相對(duì)應(yīng)。n個(gè)Ii對(duì)應(yīng)形成一個(gè)該函數(shù)的模型參數(shù)矩陣。

            通過底層指令級(jí)模型分析得到該函數(shù)在每組參數(shù)Ii情況下的功耗。

            其中然后通過矩陣運(yùn)算即可回歸出參數(shù)向量C。

            3 基于復(fù)雜度的插入排序函數(shù)軟件功耗建模

            以下將以Integrator/CM7TDMI評(píng)估板的ARM7TDMI微處理器為基礎(chǔ),對(duì)插入排序函數(shù)來構(gòu)建基于復(fù)雜度的嵌入式軟件功耗模型。

            假設(shè)某運(yùn)行在ARM7TDMI處理器上的函數(shù),對(duì)一長(zhǎng)度為n的整形數(shù)組a[n]使用簡(jiǎn)單插入排序算法進(jìn)行排序。算法的C語(yǔ)言代碼與其經(jīng)過ARMCC編譯器編譯后的匯編代碼如下:

            void ins_sort(int a[],int n){

            int x,i,j;

            for(i=1;in;i++)

            for(j=0;ji;j++){

            if(a[i]a[j]){

            x=a[j];

            a[j]=a[i];

            a[i]=x;

            }

            }

            }

            ins_sort PROC

            STR lr,[sp,#-4]!

            MOV r3,#1

            B |L1.56|

            |L1.12| MOV r2,#0

            B |L1.44|

            |L1.20| LDR r12,[r0,r3,LSL #2]

            LDR lr,[r0,r2,LSL #2]

            CMP r12,lr

            STRLT r12,[r0,r2,LSL #2]

            STRL lr,[r0,r3,LSL #2]

            ADD r2,r2,#1

            |L1.44| CMP r2,r3

            BLT |L1.20|

            ADD r3,r3,#1

            |L1.56| CMP r3,r1

            BLT |L1.12|

            LDR pc,|sp|,#4

            3.1 基于復(fù)雜度的功耗模型

            簡(jiǎn)單插入排序算法平均復(fù)雜度為O(n2)。該函數(shù)的軟件功耗模型可用如下線性公式描述:

            其中,n為數(shù)組的長(zhǎng)度,E為在輸入數(shù)組長(zhǎng)度的n的情況下函數(shù)的功耗。

            3.2 獲得系數(shù)cj

            在這一步驟中,主要以Integrator/CM7TDMI評(píng)估板的三段流水線、不設(shè)cache的ARM7TDMI處理器的指令級(jí)功耗模型為基礎(chǔ),分析該插入排序函數(shù)分別在輸入數(shù)組長(zhǎng)度n=10、20、40情況下的功耗情況,并通過回歸法獲得系數(shù)cj。

            在該指令級(jí)功耗模型中,指令執(zhí)行的功耗主要來自兩個(gè)部分:執(zhí)行單條指令引起的功耗(base cost)與連續(xù)執(zhí)行不同類型的指令導(dǎo)致處理器狀態(tài)改變所引起的額外功耗(inter-instruction cost)。其公式如下:

            其中,Ei為執(zhí)行第I條指令的基本指令功耗(表2),Oij為連續(xù)執(zhí)行第I條和第I指令引起的額外功耗(表3),ε為流水線斷流引起的功耗(表4)。

            表2 Integrator/CM7TDMI ARM7TDMI基本指令功耗

            InstructionE/nJInstructionE/nJ
            ADD R2,R0,R10.710KDR R2,[R1,R3]2.774
            AND R2,R0,R10.856STR R2,[R1,R3]1.961
            ORR R2,R0,R10.907MUL R2,R0,R12.768
            ORRS R2,R0,R10.967MLA R2,R0,R1,R03.748
            MOV R2,R10.935CMP R0,R10.751
            MOV R0,R00.903SWP R2,R0,[R1]3.917
            ADD R2,R0,R1,ASR R32.137MRS R2,CPSR0.977
            B lable3.095MSR CPSR_f,R21.143

            表3 執(zhí)行連接兩條源操作數(shù)類型不同指令的功耗

            Instr1/Instr2SHIFT_REGSHIFT_IMMREGIMM
            SHIFT_REG-0.332-0.215-0.232-0.159
            SHIFT_IMM-0.269-0.177-0.165-0.103
            REG-9.02E-02-5.98E-02-0.186-0.200
            IMM-0.141-5.35E-02-9.08E-02-7.53E-02

            表4 流水線斷流引起的功耗

            Instruction typeEnergy cost/nJ
            Any2.04

            根據(jù)以上表中的數(shù)據(jù)結(jié)合該函數(shù)匯編指令,得出該插入排序函數(shù)的指令級(jí)功耗分析情況(表5)。

            表5 簡(jiǎn)單插入排序指令級(jí)功耗分析

            指 令Base costInter costStall cost
            MOV r3,#10.930--
            B |L1,56|3.100-0.0752.04
            MOV r2,#00.930-0.032-
            B |L1,44|3.100-0.0752.04
            LDR r12,[r0,r3,LSL #2]3.270-0.032-
            LDR lr,[r0,r2,LSL #2]3.270-0.177-
            CMP r12,lr0.830-0.1652.04
            STRIT r12,[r0,r2,LSL #2]2.480-0.060-
            STRLT lr,[r0,r3,LSL #2]2.480-0.177-
            CMP r2,r2,#11.590-0.103-
            CMP r2,r30.830-0.0912.04
            BLT |L1.20|3.100-0.0602.04
            ADD r3,r3,#11.590-0.075-
            CMP r3,r10.830-0.0912.04
            BLT |L1.12|3.100-0.2002.04

            至此,可以得出完整的簡(jiǎn)單插入排序函數(shù)的基于復(fù)雜度的嵌入式軟件功耗模型

            E=93.51-5.38n+10.67 2

            3.3 基于復(fù)雜度的嵌入式軟件功耗模型的估算功耗

            當(dāng)輸入數(shù)組長(zhǎng)度為n=80的情況下,通過該模型可快速估算出插入排序函數(shù)的功耗

            E=93.51-5.3880+10.671600=67924.85(nJ)

            與指令級(jí)功耗模型的估測(cè)值誤差小于1%(表6),而利用基于復(fù)雜度的功耗模型估測(cè)該函數(shù)執(zhí)行所需的功耗的速度而大大提高。

            表6 各種數(shù)組長(zhǎng)度下簡(jiǎn)單插入排序指令級(jí)功耗

            數(shù)組長(zhǎng)度指令級(jí)功耗模型估測(cè)基于復(fù)雜度的功耗模型估測(cè)誤 差
            n=101106.338--
            n=204252.333--
            n=4016943.823--
            n=8067604.80367924.850.4%

            4 總結(jié)

            本文介紹了一種基于復(fù)雜度的嵌入式軟件功耗模型,以對(duì)象函數(shù)的算法平均復(fù)雜度的建模參數(shù),利用現(xiàn)有底層指令級(jí)功耗模型對(duì)函數(shù)進(jìn)行分析,回歸出必需的系數(shù),得到該函數(shù)完整的基于復(fù)雜度的嵌入式軟件功耗模型,從而可快速估算出該函數(shù)在不同輸入情況下的軟件功耗。這種分析方法的缺點(diǎn)在于只適用于算法復(fù)雜度明顯的一些函數(shù),從而較容易構(gòu)建基于復(fù)雜度的模型。另外在建模過程中,仍然需要指令級(jí)功耗模型的分析法的協(xié)助。

            linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉