亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種面向嵌入式系統(tǒng)的全系統(tǒng)能耗模擬方法及系統(tǒng)的制作方法

文檔序號(hào):6606826閱讀:143來源:國(guó)知局
專利名稱:一種面向嵌入式系統(tǒng)的全系統(tǒng)能耗模擬方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明屬于嵌入式系統(tǒng)低能耗設(shè)計(jì)領(lǐng)域,具體涉及一種面向嵌入式系統(tǒng)的全系統(tǒng)能耗模擬方法及系統(tǒng)。
背景技術(shù)
隨著嵌入式系統(tǒng)的運(yùn)算能力、存儲(chǔ)容量、多媒體處理能力快速發(fā)展,嵌入式設(shè)備能夠支持的應(yīng)用越來越多,功能越來越強(qiáng)大,向著多樣化、個(gè)性化的方向發(fā)展。同時(shí),嵌入式設(shè)備系統(tǒng)的能耗也在不斷變大。然而,嵌入式設(shè)備尺寸及電池電量有限,使得降低能耗成為了嵌入式系統(tǒng)設(shè)計(jì)面臨的嚴(yán)重挑戰(zhàn)之一。為了解決這個(gè)問題,人們使用各種低能耗技術(shù)來降低嵌入式系統(tǒng)的能耗,包括低能耗硬件設(shè)計(jì)(系統(tǒng)部件具有多個(gè)功耗狀態(tài)),低能耗軟件設(shè)計(jì)、以及全系統(tǒng)能耗優(yōu)化技術(shù)。為了支持低能耗的軟硬件設(shè)計(jì)與優(yōu)化技術(shù),需要有效地評(píng)估嵌入式系統(tǒng)運(yùn)行時(shí)的全系統(tǒng)能耗。評(píng)估系統(tǒng)能耗的方法有兩種硬件測(cè)量和軟件模擬。硬件測(cè)量方法實(shí)用,但是只能測(cè)量已經(jīng)完成部署的系統(tǒng),對(duì)硬件要求高,不適用于嵌入式系統(tǒng)設(shè)計(jì)階段。軟件模擬方法的準(zhǔn)確性受限于能耗模型,但應(yīng)用靈活,不僅可以模擬已經(jīng)部署的系統(tǒng)能耗,還可以模擬處于設(shè)計(jì)階段的系統(tǒng)能耗,并且具有可定制的功能,在研究開發(fā)領(lǐng)域具有較大優(yōu)勢(shì)?,F(xiàn)有的軟件模擬方法主要針對(duì)嵌入式處理器,不能對(duì)其他系統(tǒng)部件能耗進(jìn)行有效的模擬。業(yè)界尚沒有完整實(shí)用的全系統(tǒng)部件能耗模擬方法。

發(fā)明內(nèi)容
本發(fā)明的目的在于對(duì)兩種用戶的工作提供幫助。1)嵌入式硬件系統(tǒng)設(shè)計(jì)開發(fā)者 (如智能手機(jī)生產(chǎn)廠商)可以使用本發(fā)明在設(shè)計(jì)嵌入式設(shè)備時(shí)模擬各個(gè)系統(tǒng)部件的能耗, 獲得其目標(biāo)嵌入式設(shè)備的能耗信息,來驗(yàn)證其設(shè)計(jì)是否滿足能耗約束。幻嵌入式軟件生產(chǎn)者(如嵌入式操作系統(tǒng)生產(chǎn)廠商)可以使用本發(fā)明獲取操作系統(tǒng)運(yùn)行在多種嵌入式設(shè)備上的能耗特性,來驗(yàn)證其低能耗優(yōu)化策略的有效性。在本方法中,實(shí)現(xiàn)了時(shí)鐘周期精度的全系統(tǒng)能耗模擬。時(shí)鐘周期精度是指以處理器周期為單位,把系統(tǒng)部件周期能耗映射到對(duì)應(yīng)的處理器周期中,從而得到以處理器周期為時(shí)間粒度的能耗模擬結(jié)果。其中,利用體系結(jié)構(gòu)級(jí)處理器能耗模型模擬了指令流在處理器上運(yùn)行時(shí)每個(gè)周期的能耗,利用基于狀態(tài)和操作的系統(tǒng)部件能耗模型模擬除處理器以外的其他系統(tǒng)部件的時(shí)鐘周期精度的能耗。執(zhí)行每條指令時(shí),計(jì)算系統(tǒng)各部件的時(shí)鐘周期能耗,全系統(tǒng)能耗即為指令執(zhí)行期間各系統(tǒng)部件的時(shí)鐘周期能耗之和。在本方法中,采用外部設(shè)備能耗模擬器模擬執(zhí)行操作系統(tǒng)和應(yīng)用程序,截獲程序?qū)ο到y(tǒng)部件的訪問,根據(jù)周期精度的系統(tǒng)部件能耗模型來準(zhǔn)確模擬除處理器外的系統(tǒng)部件的能耗;采用處理器能耗模擬器根據(jù)指令流信息和基于體系結(jié)構(gòu)的處理器能耗模型模擬處理器能耗;用全系統(tǒng)能耗合成模塊累計(jì)程序執(zhí)行期間的全系統(tǒng)能耗;最后,分析并顯示能耗分析結(jié)果。具體來說,本發(fā)明針對(duì)嵌入式系統(tǒng)的全系統(tǒng)能耗模擬方法包括下列步驟
A.配置目標(biāo)嵌入式系統(tǒng)的系統(tǒng)部件信息。所述的目標(biāo)嵌入式系統(tǒng)的結(jié)構(gòu)如圖1所示。包括下列系統(tǒng)部件處理器(計(jì)算型部件),內(nèi)存(存儲(chǔ)型部件),IO控制器(接口型部件),LCD、FLASH存儲(chǔ)、網(wǎng)絡(luò)設(shè)備(外部系統(tǒng)部件)等。所述的系統(tǒng)部件信息是指系統(tǒng)部件的結(jié)構(gòu)、性能及功耗信息??膳渲玫男畔ˋl.嵌入式處理器信息。包括體系結(jié)構(gòu)信息和功耗信息。所述的體系結(jié)構(gòu)信息是指處理器的各個(gè)體系結(jié)構(gòu)部件(如高速緩存CACHE、邏輯運(yùn)算單元ALU)的結(jié)構(gòu)信息(如一級(jí)指令CACHE的塊數(shù)、相聯(lián)度、TAG位數(shù)等)。所述的功耗信息是指處理器的設(shè)計(jì)工藝(如90nm下的晶體管的功耗信息)及各體系結(jié)構(gòu)部件的功耗信息(如頻率、工作電壓)。A2.內(nèi)存信息。包括內(nèi)存的結(jié)構(gòu)信息、性能信息和功耗信息。所述的內(nèi)存結(jié)構(gòu)信息包括內(nèi)存的類別(如SRAM、DRAM、FLASH)、內(nèi)存的大小(如 32MB)以及內(nèi)存的位寬(如8位)。所述的內(nèi)存功耗信息包括內(nèi)存在各個(gè)狀態(tài)下的功耗(如IDLE狀態(tài)下功耗為 IOmff)以及內(nèi)存每次操作的訪問時(shí)間(如90ns)。A3. IO控制器功耗信息。所述的IO控制器功耗信息是指IO控制器在各個(gè)功耗狀態(tài)下的功耗(如=ACTIVE 狀態(tài)下平均功耗為50mW)。A4. LCD 功耗信息。所述的IXD的功耗信息包括IXD顯示的功耗以及IXD在各個(gè)背光亮度級(jí)別下的功
^^ ο A5. FLASH信息。包括FLASH的性能信息和功耗信息。所述的FLASH存儲(chǔ)的性能信息是指FLASH執(zhí)行讀、寫單位數(shù)據(jù)操作的時(shí)間。所述的功耗信息是指FLASH在各種功耗狀態(tài)下的功耗信息(如=WRITE狀態(tài)下的平均功耗是IOOmW)。A6.網(wǎng)絡(luò)設(shè)備信息。包括網(wǎng)絡(luò)設(shè)備性能信息和功耗信息。所述的性能信息是指網(wǎng)絡(luò)設(shè)備的發(fā)送、接收速率。所述的功耗信息是指網(wǎng)絡(luò)設(shè)備在各種功耗狀態(tài)下的功耗信息(如WRITE狀態(tài)下的平均功耗是990mW)。B.外部設(shè)備能耗模擬器模擬執(zhí)行操作系統(tǒng)和應(yīng)用程序,每次模擬執(zhí)行一條指令, 并獲取當(dāng)前運(yùn)行進(jìn)程的進(jìn)程名和進(jìn)程ID ;獲取運(yùn)行時(shí)的指令流信息,并通過消息隊(duì)列將指令流信息發(fā)送到處理器能耗模擬器;在系統(tǒng)模擬器的模擬系統(tǒng)部件功能的函數(shù)中,根據(jù)當(dāng)前執(zhí)行的操作部件的指令的功能,更新相關(guān)系統(tǒng)部件的功耗狀態(tài);根據(jù)系統(tǒng)部件的當(dāng)前狀態(tài)或者操作特征(數(shù)據(jù)長(zhǎng)度、所需的時(shí)鐘周期數(shù)),模擬除處理器和內(nèi)存外的其他系統(tǒng)部件的能耗;將進(jìn)程名和進(jìn)程ID、指令-地址,所模擬的系統(tǒng)部件能耗及操作的時(shí)鐘周期數(shù),通過消息隊(duì)列發(fā)送給全系統(tǒng)能耗合成模塊。實(shí)現(xiàn)方法為BA.模擬執(zhí)行操作系統(tǒng)和應(yīng)用程序,每次模擬執(zhí)行一條指令;BAl.取指,根據(jù)PC (程序計(jì)數(shù)器)獲取下一條指令;
BA2.解碼,對(duì)指令進(jìn)行解碼,獲得指令的類型;BA3.執(zhí)行,模擬執(zhí)行指令的功能,修改系統(tǒng)狀態(tài)(如PC值);BA4.獲取當(dāng)前運(yùn)行進(jìn)程的進(jìn)程名和進(jìn)程ID ;BB.獲取運(yùn)行時(shí)指令流信息,通過消息隊(duì)列將指令流信息發(fā)送到處理器能耗模擬器。所述的指令流信息包括指令機(jī)器碼、指令地址、指令訪存地址(如果是訪存指令)、指令所屬進(jìn)程信息(包括進(jìn)程ID、進(jìn)程名)。BBl.在取址階段獲得指令機(jī)器碼、指令地址;BB2.如果是訪存指令,在執(zhí)行階段獲得指令訪存的地址;BB3.獲得指令所屬進(jìn)程ID,判斷當(dāng)前指令地址(PC)是否為進(jìn)程切換函數(shù)的出口, 如果是,說明進(jìn)行了進(jìn)程切換,則讀取當(dāng)前進(jìn)程控制塊中的進(jìn)程PID及進(jìn)程名,否則不改變進(jìn)程信息;BB4.通過消息隊(duì)列將指令流信息發(fā)送到處理器能耗模擬器;BC.系統(tǒng)模擬器的模擬系統(tǒng)部件功能的函數(shù)中,根據(jù)當(dāng)前執(zhí)行的操作部件的指令的功能,更新相關(guān)系統(tǒng)部件的功耗狀態(tài);實(shí)現(xiàn)方法如下1)更新IO控制器狀態(tài)。如果有指令訪問IO控制器,則IO控制器為活動(dòng)狀態(tài);反之為空閑狀態(tài);2)更新IXD狀態(tài)。如果當(dāng)前指令修改了 IXD控制寄存器,改變了 IXD的狀態(tài),則更新LCD狀態(tài),有空閑、活動(dòng)、關(guān)閉三個(gè)狀態(tài);如果當(dāng)前指令沒有修改LCD的控制寄存器,則 LCD的狀態(tài)和上個(gè)周期的狀態(tài)相同; 3)更新FLASH存儲(chǔ)狀態(tài)。如果有指令讀FLASH存儲(chǔ),則FLASH存儲(chǔ)為讀操作狀態(tài); 如果有指令寫FLASH存儲(chǔ),則FLASH存儲(chǔ)為寫操作狀態(tài);如果不是訪存指令,或沒有Cache 缺失,則FLASH存儲(chǔ)為空閑狀態(tài);4)更新網(wǎng)絡(luò)設(shè)備狀態(tài)。如果網(wǎng)絡(luò)設(shè)備上沒有執(zhí)行讀、寫操作則網(wǎng)絡(luò)設(shè)備處于空閑狀態(tài);如果有指令讀網(wǎng)絡(luò)設(shè)備,則網(wǎng)絡(luò)設(shè)備處于讀操作狀態(tài);如果有指令寫網(wǎng)絡(luò)設(shè)備,則網(wǎng)絡(luò)設(shè)備處于寫操作狀態(tài);如果有指令打開網(wǎng)絡(luò)設(shè)備,則網(wǎng)絡(luò)設(shè)備處于活動(dòng)狀態(tài);如果有指令關(guān)閉網(wǎng)絡(luò)設(shè)備,則網(wǎng)絡(luò)設(shè)備處于關(guān)閉狀態(tài);BD.在系統(tǒng)模擬器模擬執(zhí)行當(dāng)前指令時(shí),根據(jù)系統(tǒng)部件的當(dāng)前狀態(tài)或者操作特征 (數(shù)據(jù)長(zhǎng)度、所需的時(shí)鐘周期數(shù)),模擬IO控制器、LCD、FLASH存儲(chǔ)、網(wǎng)絡(luò)設(shè)備等系統(tǒng)部件周期能耗,實(shí)現(xiàn)方法如下1)按照當(dāng)前周期的IO控制器狀態(tài)(空閑狀態(tài)、活動(dòng)狀態(tài))模擬IO控制器能耗。 其狀態(tài)轉(zhuǎn)換如圖4所示。如果處于空閑狀態(tài),本周期內(nèi)的能耗為Em = Pm _*T。y。le ;所述Pra IDLE為空閑狀態(tài)的平均功耗;如果處于活動(dòng)狀態(tài),本周期內(nèi)的能耗為Em = PI0_ACTIVE*Tcycle ;所述P1?!狝。TIVE為活動(dòng)狀態(tài)的平均功耗;2)按照當(dāng)前周期的LCD狀態(tài)(關(guān)閉狀態(tài)、活動(dòng)狀態(tài))以及LCD的顯示區(qū)域及亮度, 模擬LCD能耗。其狀態(tài)轉(zhuǎn)換如圖4所示。如果是關(guān)閉狀態(tài),則LCD本周期內(nèi)的能耗為0;如果是空閑狀態(tài),則IXD本周期內(nèi)的能耗為Era = Pra*T。y& ;所述Pra為空閑狀態(tài)的平均功耗; 如果是活動(dòng)狀態(tài),則LCD本周期內(nèi)的能耗為Era = (PLCD+Pbg_max*level/max_leve 1 *area/max_ area) ^Tcycle ;所述Pbg max最大亮度下的平均功耗;level為L(zhǎng)CD背光亮度級(jí)別,maX_level為 IXD背光最大亮度級(jí)別;area是IXD顯示區(qū)域大??;max_area是IXD的最大顯示區(qū)域;
3)按照當(dāng)前周期的FLASH存儲(chǔ)狀態(tài)(讀操作狀態(tài)、寫操作狀態(tài)、空閑狀態(tài)),以及操作數(shù)據(jù)長(zhǎng)度、所需處理器時(shí)鐘周期數(shù),模擬本周期的FLASH存儲(chǔ)能耗。FLASH存儲(chǔ)狀態(tài)轉(zhuǎn)換圖如圖2所示。如果處于空閑狀態(tài),本周期內(nèi)的能耗為Efush = PFLASHJDLE*Tcycle ;所述Pflash IDLE是FLASH存儲(chǔ)空閑狀態(tài)的平均功耗,Tcycle是一個(gè)時(shí)鐘周期的時(shí)間(下文中的該變量含義均相同);如果執(zhí)行讀操作,則本周期讀操作的能耗為Eflashjjp = PFLASH EEAD*Tcycle ;如果執(zhí)行寫操作,則本周期寫操作的能耗為Eflashjp = PFLASH_WEITE*Tcycle ;讀操作和寫操作的時(shí)鐘周期數(shù)為 Nop = Nfiest+Nsnd* (L-I);所述Pfush kead是FLASH存儲(chǔ)讀操作的平均功耗;Nfikst是讀第一個(gè)單元所需的處理器周期數(shù);Nsnd是讀后續(xù)單元所需的處理器周期數(shù);L是讀操作的數(shù)據(jù)長(zhǎng)度; 1 FLASH_WRITE 是FLASH存儲(chǔ)寫操作的平均功耗;4)按照當(dāng)前周期的網(wǎng)絡(luò)設(shè)備狀態(tài)(讀操作狀態(tài)、寫操作狀態(tài)、空閑狀態(tài)、活動(dòng)狀態(tài)、關(guān)閉狀態(tài)),以及操作所需處理器時(shí)鐘周期數(shù),模擬網(wǎng)絡(luò)設(shè)備能耗。其狀態(tài)轉(zhuǎn)換如圖5所示。如果是關(guān)閉狀態(tài),則本周期內(nèi)的能耗為0 ;如果處于空閑狀態(tài),則本周期能耗為Enrt = Pnet_idle*Tcycle ;所述Pnrt idle為空閑狀態(tài)的平均功耗;如果是活動(dòng)狀態(tài),則本周期內(nèi)的能耗為 Enet = P et_active*Tcycle ;所述Pnrt a。tire為活動(dòng)狀態(tài)的平均功耗;如果正在執(zhí)行讀操作,則本周期能耗為Enrt = Pnet read^Tcycle,并且將網(wǎng)絡(luò)設(shè)備執(zhí)行讀操作的周期數(shù)減1 ;所述Pnrt—為讀狀態(tài)的平均功耗;如果正在執(zhí)行寫操作,則本周期能耗為Enet = Pnet— ite*T。y。le,并且將網(wǎng)絡(luò)設(shè)備執(zhí)行寫操作的周期數(shù)減1 ;所述Pnrt—為寫操作的平均功耗;所述的網(wǎng)絡(luò)讀、寫操作
的時(shí)鐘周期數(shù)為^^ =,L是需要寫的數(shù)據(jù)總長(zhǎng)度,、^^是一次寫操作的數(shù)據(jù)長(zhǎng)
per _op cycle
度,Tper op是一次寫操作的時(shí)間;BE.將進(jìn)程名和進(jìn)程PID、指令-地址、及所模擬的系統(tǒng)部件能耗,通過消息隊(duì)列發(fā)送給全系統(tǒng)能耗合成模塊;C.處理器能耗模擬器根據(jù)指令流信息,根據(jù)處理器設(shè)計(jì)工藝參數(shù)和頻率、電壓等參數(shù)模擬處理器能耗;根據(jù)處理器訪問內(nèi)存的操作,內(nèi)存數(shù)據(jù)訪問量,以及內(nèi)存參數(shù)模擬內(nèi)存能耗。實(shí)現(xiàn)方法為Cl.模擬程序在處理器的執(zhí)行,并根據(jù)處理器設(shè)計(jì)工藝參數(shù)和頻率、電壓等參數(shù)模擬處理器能耗。實(shí)現(xiàn)方法為1.分析配置文件,獲取處理器設(shè)計(jì)工藝參數(shù)、電壓、頻率及各個(gè)體系結(jié)構(gòu)部件的結(jié)構(gòu)信息,獲取內(nèi)存訪問時(shí)間、內(nèi)存在各種狀態(tài)下的功耗等內(nèi)存配置信息。2.根據(jù)處理器設(shè)計(jì)工藝配置,選擇相應(yīng)的設(shè)計(jì)工藝晶體管參數(shù),并根據(jù)處理器的電壓和頻率配置來設(shè)置電壓和頻率,初始化具有多個(gè)可調(diào)頻率的處理器能耗模型。實(shí)現(xiàn)方法為a)初始化電路層能耗模型,即根據(jù)門電路的功耗特性并應(yīng)用處理器設(shè)計(jì)工藝 (包括180nm、130nm、90nm、65nm、45nm、32nm、22nm、16nm設(shè)計(jì)工藝)中的晶體管功耗參數(shù) (180nm、130nm、90nm、65nm 的設(shè)計(jì)工藝參數(shù)來自于 Mosis 網(wǎng)站,5nm、32nm、22nm、16nm 的設(shè)計(jì)
工藝參數(shù)取自于PTM模型)來計(jì)算電路層能耗參數(shù);b)初始化微體系統(tǒng)結(jié)構(gòu)層功耗模型,即根據(jù)配置文件中的結(jié)構(gòu)信息并應(yīng)用電路層功耗參數(shù)構(gòu)建微體系結(jié)構(gòu)部件的能耗模擬參數(shù);c)初始化體系結(jié)構(gòu)層功耗模型,即根據(jù)體系結(jié)構(gòu)部件的結(jié)構(gòu)參數(shù)并應(yīng)用微體系結(jié)構(gòu)部件的能耗模型構(gòu)建體系結(jié)構(gòu)部件的能耗模擬參數(shù);3.按照同步方法,從指令流消息隊(duì)列獲取指令碼。4.模擬執(zhí)行流水線,識(shí)別DVS (Dynamic Voltage Scaling動(dòng)態(tài)調(diào)頻)指令,并執(zhí)行 DVS功能。實(shí)現(xiàn)方法如下a)每個(gè)周期開始時(shí),讀取DVS寄存器的值,獲取本周期的處理器頻率(及電壓)級(jí)別。b)在指令譯碼階段,如果當(dāng)前指令為DVS指令,則在寫回階段,根據(jù)DVS指令中的處理器頻率(電壓)級(jí)別來修改DVS寄存器的值。5.在模擬流水線過程中,分析指令訪問的體系結(jié)構(gòu)部件的門電路翻轉(zhuǎn)情況,按照部件的能耗模型計(jì)算被訪問部件的有效電容(如圖3所示)。實(shí)現(xiàn)方法如下a)計(jì)算電路層有效電容,即根據(jù)處理器設(shè)計(jì)工藝參數(shù)及門電路功耗特性,計(jì)算門電路功耗參數(shù);b)計(jì)算各個(gè)微體系結(jié)構(gòu)部件有效電容,即根據(jù)一個(gè)周期內(nèi)各個(gè)微體系結(jié)構(gòu)部件中門電路的開關(guān)次數(shù)并應(yīng)用門電路功耗參數(shù)來計(jì)算此周期內(nèi)各個(gè)微體系統(tǒng)結(jié)構(gòu)部件的有效電容;c)計(jì)算各個(gè)體系結(jié)構(gòu)部件有效電容,即根據(jù)此周期內(nèi)各個(gè)體系結(jié)構(gòu)部件的子部件的有效電容來估算此周期內(nèi)各個(gè)體系結(jié)構(gòu)部件的有效電容;6.周期結(jié)束時(shí),累計(jì)各個(gè)體系結(jié)構(gòu)部件的有效電容,作為處理器本周期的有效電容,并計(jì)算處理器本周期的能耗。實(shí)現(xiàn)方法如下a)計(jì)算處理器本周期內(nèi)的有效電容,即累計(jì)各個(gè)體系結(jié)構(gòu)部件的有效電容為處理器本周期內(nèi)的有效電容;b)計(jì)算處理器本周期內(nèi)的能耗,處理器能耗為:Ecpu =Ceff*F^pu-,C2.根據(jù)處理器訪問內(nèi)存的操作,內(nèi)存數(shù)據(jù)訪問量以及內(nèi)存參數(shù)模擬內(nèi)存能耗。實(shí)現(xiàn)方法為1.未發(fā)生CACHE失效并且上一次的內(nèi)存操作已經(jīng)完成時(shí),內(nèi)存處于IDLE狀態(tài),本周期內(nèi)存能耗為Emem = Pffleffljdle^Tcycle ;2.當(dāng)處理器能耗模擬器發(fā)生CACHE失效(如果有二級(jí)CACHE,則為二級(jí)CACHE失效,否則為一級(jí)CACHE失效)時(shí),開始進(jìn)行內(nèi)存訪問,內(nèi)存執(zhí)行READ或WRITE操作,此時(shí)計(jì)算內(nèi)存執(zhí)行操作的能耗。實(shí)現(xiàn)方法如下a)根據(jù)內(nèi)存數(shù)據(jù)訪問量,計(jì)算內(nèi)存讀寫操作的時(shí)間,在以后的N。pf周期內(nèi),內(nèi)存處于此狀態(tài),內(nèi)存操作的時(shí)鐘周期數(shù)為N。P = NFIKST+NSffl)*(L-I);其中Nfikst是讀寫第一個(gè)單元所需的處理器周期數(shù);Nsnd是讀寫后續(xù)單元所需的處理器周期數(shù);L是讀寫操作的數(shù)據(jù)長(zhǎng)度;b)計(jì)算內(nèi)存本周期內(nèi)的能耗為E_ = PM—。p*T。y。le ;D.全系統(tǒng)能耗合成模塊接收處理器、內(nèi)存和系統(tǒng)部件能耗,將時(shí)鐘周期能耗映射為指令能耗,累計(jì)進(jìn)程ID或進(jìn)程名對(duì)應(yīng)的程序所有指令執(zhí)行期間的各個(gè)周期的能耗,作為該進(jìn)程在執(zhí)行過程中的全系統(tǒng)能耗。實(shí)現(xiàn)方法為1)接受外設(shè)部件能耗模擬器和處理器能耗模擬器發(fā)來的進(jìn)程ID (或進(jìn)程名)、指令-地址、處理器能耗、各系統(tǒng)部件能耗及操作的時(shí)鐘周期數(shù);
2)將系統(tǒng)部件的時(shí)鐘精度能耗映射為指令的系統(tǒng)部件能耗,實(shí)現(xiàn)方法如下對(duì)基于狀態(tài)的系統(tǒng)部件能耗,指令的系統(tǒng)部件能耗為Einst = Ecycle^CPI ;所述CPI為每指令周期數(shù)(CPI,Cycle Per Instruction),由處理器能耗模擬器根據(jù)體系結(jié)構(gòu)參數(shù)模擬并計(jì)算獲得;對(duì)基于操作的系統(tǒng)部件能耗,指令的系統(tǒng)部件能耗即為該操作的總能耗=Einst = Ecycle^Nop ;所述N。p為該操作所需的處理器時(shí)鐘周期數(shù);3)累計(jì)指令ins、對(duì)應(yīng)的各系統(tǒng)部件能耗,作為該指令對(duì)應(yīng)的全系統(tǒng)能耗
Eimtj - Ecpu_ + Eme, + Elcd_ + Enet_
+ eIOj ;所述£^為處理器的能耗,Ememj,Elcdj,Enetj,£/0;分別是內(nèi)存、IXD、網(wǎng)絡(luò)設(shè)備、IO控制器的能耗;
mη4)累計(jì)進(jìn)程ID所有指令執(zhí)行期間的系統(tǒng)總能耗為=Ze^ =Zj6VA,,所述
;=1 i=\
為程序執(zhí)行過程中第i個(gè)周期時(shí)的全系統(tǒng)能耗;m為進(jìn)程ID所有指令的條數(shù);η為進(jìn)程 ID執(zhí)行所有指令的總時(shí)鐘周期數(shù);Ε.分析能耗模擬結(jié)果并顯示。實(shí)現(xiàn)方法如下1)顯示處理器能耗信息,包括處理器總的能耗信息和處理器各體系結(jié)構(gòu)部件的能
耗fe息。2)顯示各系統(tǒng)部件的能耗信息。3)顯示指定程序執(zhí)行期間的全系統(tǒng)能耗。本發(fā)明同時(shí)包含一種面向嵌入式系統(tǒng)的全系統(tǒng)能耗模擬系統(tǒng),如圖2所示。該系統(tǒng)模擬了一個(gè)嵌入式系統(tǒng)硬件平臺(tái),可以模擬執(zhí)行嵌入式操作系統(tǒng)和應(yīng)用程序,模擬并顯示全系統(tǒng)的能耗,包括全系統(tǒng)總能耗、各個(gè)進(jìn)程總能耗以及進(jìn)程的各個(gè)系統(tǒng)部件能耗。該系統(tǒng)采用本發(fā)明提供的方法實(shí)現(xiàn),包括以下幾個(gè)功能單元-配置單元,主要用于用戶通過該單元輸入配置信息和控制命令,實(shí)現(xiàn)和所述模擬系統(tǒng)的交互;-模擬單元,主要用于模擬嵌入式系統(tǒng)硬件平臺(tái);模擬執(zhí)行嵌入式操作系統(tǒng)和應(yīng)用軟件;-計(jì)算單元,主要用于計(jì)算模擬情況下的各個(gè)系統(tǒng)部件能耗以及全系統(tǒng)的總能耗;-顯示單元,主要用于顯示全系統(tǒng)的能耗,包括全系統(tǒng)總能耗、各個(gè)進(jìn)程總能耗以及進(jìn)程的各個(gè)系統(tǒng)部件能耗。本發(fā)明能夠提供較高精度的嵌入式系統(tǒng)的全系統(tǒng)能耗模擬結(jié)果,可以在嵌入式系統(tǒng)設(shè)計(jì)開發(fā)的早期階段模擬評(píng)估硬件配置參數(shù)對(duì)系統(tǒng)能耗的影響,支持優(yōu)化系統(tǒng)設(shè)計(jì)降低系統(tǒng)能耗;可以有效地降低開發(fā)成本、縮短開發(fā)周期,具有非常廣闊的應(yīng)用前景。


圖1嵌入式系統(tǒng)結(jié)構(gòu)示意圖2全系統(tǒng)能耗模擬系統(tǒng)結(jié)構(gòu)圖3體系結(jié)構(gòu)級(jí)處理器能耗模型示意圖410控制器、LCD、網(wǎng)絡(luò)設(shè)備狀態(tài)轉(zhuǎn)換圖
圖5全系統(tǒng)能耗模擬系統(tǒng)流程圖。
具體實(shí)施例方式下面結(jié)合附圖,通過一套以PDA為目標(biāo)系統(tǒng)的全系統(tǒng)能耗模擬實(shí)施例,對(duì)本發(fā)明作進(jìn)一步闡述。本實(shí)施例以改進(jìn)的開源指令級(jí)全系統(tǒng)模擬器Ex-Skyeye和體系結(jié)構(gòu)級(jí)處理器能耗模擬器Ex-SimPanalyzer為基礎(chǔ)實(shí)現(xiàn)了一個(gè)面向嵌入式系統(tǒng)的全系統(tǒng)能耗模擬系統(tǒng),以 IPAQ H3630PDA為目標(biāo)系統(tǒng)對(duì)模擬系統(tǒng)進(jìn)行硬件信息定制,并以運(yùn)行四種不同的排序算法作為應(yīng)用程序?qū)嵗1緦?shí)施例實(shí)現(xiàn)了一個(gè)本發(fā)明提出的嵌入式系統(tǒng)的全系統(tǒng)能耗模擬系統(tǒng),包括以下幾個(gè)模塊1)人機(jī)交互接口模塊,用于接收用戶的配置信息,從能耗數(shù)據(jù)庫中提取并顯示能耗fe息;2)控制模塊,用于處理用戶的配置信息,啟動(dòng)和控制其他模塊的運(yùn)行;3)外部設(shè)備能耗模擬器,用于模擬運(yùn)行操作系統(tǒng)內(nèi)核和應(yīng)用程序的執(zhí)行,模擬外部設(shè)備能耗并發(fā)送到全系統(tǒng)能耗合成模塊,獲取指令流信息并通過消息隊(duì)列發(fā)送到處理器能耗模擬器;4)處理器能耗模擬器,從外部設(shè)備能耗模擬器獲得指令流,模擬執(zhí)行指令,獲得處理器和內(nèi)存能耗,并發(fā)送到全系統(tǒng)能耗合成模塊中;5)全系統(tǒng)能耗合成模塊,把外部設(shè)備能耗和處理器及內(nèi)存能耗合成為全系統(tǒng)能耗,并存入能耗數(shù)據(jù)庫中;各模塊之間的關(guān)系如下1)人機(jī)交互接口將用戶的控制命令發(fā)送給控制模塊,根據(jù)其他各模塊的運(yùn)行情況顯示相應(yīng)的提示信息,并從能耗數(shù)據(jù)庫中提取并顯示能耗信息;2)控制模塊讀取配置文件并將配置信息發(fā)送給人機(jī)交互接口顯示;控制模塊接收人機(jī)交互接口的用戶控制命令,解析控制命令,啟動(dòng)和控制其他模塊的運(yùn)行;3)外部設(shè)備能耗模擬器加載目標(biāo)操作系統(tǒng)內(nèi)核和應(yīng)用程序可執(zhí)行文件,將指令流信息發(fā)送到處理器能耗模擬器,將外設(shè)能耗信息發(fā)送到全系統(tǒng)能耗合成模塊;4)處理器能耗模擬器從外部設(shè)備能耗模擬器中獲取指令流信息,將處理器和內(nèi)存能耗發(fā)送到全系統(tǒng)能耗合成模塊;5)全系統(tǒng)能耗合成模塊將外部設(shè)備能耗和處理器及內(nèi)存能耗全成全系統(tǒng)能耗并發(fā)送到能耗數(shù)據(jù)庫中。該系統(tǒng)采用本發(fā)明提供的方法實(shí)現(xiàn),同時(shí),用戶可以通過配置各種系統(tǒng)部件的參數(shù)來定制目標(biāo)嵌入式平臺(tái),用戶不設(shè)置的情況下采用系統(tǒng)默認(rèn)值。本發(fā)明方法包括1)以 IPAQH3630為目標(biāo)系統(tǒng)配置系統(tǒng)部件信息;2)Εχ-Skyeye模擬執(zhí)行程序,模擬系統(tǒng)部件能耗,獲取指令信息流,發(fā)送到Ex-SimPanalyer中;3) Εχ-SimPanalyer模擬處理器能耗,并通過截獲對(duì)內(nèi)存的訪問來模擬內(nèi)存能耗;4)合并能耗模擬結(jié)果力)顯示能耗模擬結(jié)果。流程圖如圖5所示。具體步驟如下1.以IPAQ H3630為目標(biāo)系統(tǒng)配置系統(tǒng)部件信息a)獲取IPAQ H3630 (各種系統(tǒng)部件,如處理器,內(nèi)存,LCD, FLASH,網(wǎng)絡(luò)設(shè)備,IO控制器)的硬件參數(shù),如表1所示;b)嵌入式處理器Mrong Arm 1110和內(nèi)存的配置文件是simpa. config ;c)其他系統(tǒng)部件,如10控制器、網(wǎng)絡(luò)設(shè)備、IXD,配置文件是device, config。
權(quán)利要求
1.一種面向嵌入式系統(tǒng)的全系統(tǒng)能耗模擬方法,其特征在于,包含以下步驟A.配置目標(biāo)嵌入式系統(tǒng)的系統(tǒng)部件信息;B.外部設(shè)備能耗模擬器模擬執(zhí)行操作系統(tǒng)和應(yīng)用程序,每次模擬執(zhí)行一條指令,并獲取當(dāng)前運(yùn)行進(jìn)程的進(jìn)程名和進(jìn)程ID ;獲取運(yùn)行時(shí)的指令流信息,并通過消息隊(duì)列將指令流信息發(fā)送到處理器能耗模擬器;在系統(tǒng)模擬器的模擬系統(tǒng)部件功能的函數(shù)中,根據(jù)當(dāng)前執(zhí)行的操作部件的指令的功能,更新相關(guān)系統(tǒng)部件的功耗狀態(tài);根據(jù)系統(tǒng)部件的當(dāng)前狀態(tài)或者操作特征,模擬除處理器和內(nèi)存外的其他系統(tǒng)部件的能耗;將進(jìn)程名和進(jìn)程ID、指令-地址,所模擬的系統(tǒng)部件能耗及操作的時(shí)鐘周期數(shù),通過消息隊(duì)列發(fā)送給全系統(tǒng)能耗合成模塊;C.處理器能耗模擬器根據(jù)指令流信息,根據(jù)處理器設(shè)計(jì)工藝參數(shù)和頻率、電壓等參數(shù)模擬處理器能耗;根據(jù)處理器訪問內(nèi)存的操作,內(nèi)存數(shù)據(jù)訪問量,以及內(nèi)存參數(shù)模擬內(nèi)存能耗;D.全系統(tǒng)能耗合成模塊接收處理器、內(nèi)存和系統(tǒng)部件能耗,將時(shí)鐘周期能耗映射為指令能耗,累計(jì)進(jìn)程ID或進(jìn)程名對(duì)應(yīng)的程序所有指令執(zhí)行期間的各個(gè)周期的能耗,作為該進(jìn)程在執(zhí)行過程中的全系統(tǒng)能耗;E.分析能耗模擬結(jié)果并顯示。
2.如權(quán)利要求1所述的方法,其特征在于,所述步驟A中所述的系統(tǒng)部件包括處理器,內(nèi)存,IO控制器,LCD、FLASH存儲(chǔ)、網(wǎng)絡(luò)設(shè)備;所述的系統(tǒng)部件信息是指系統(tǒng)部件的結(jié)構(gòu)、性能及功耗信息。
3.如權(quán)利要求2所述的方法,其特征在于,所述系統(tǒng)部件可配置的信息如下 -嵌入式處理器信息,包括體系結(jié)構(gòu)信息和功耗信息;-內(nèi)存信息,包括內(nèi)存的結(jié)構(gòu)信息、性能信息和功耗信息;-IO控制器功耗信息,指IO控制器在各個(gè)功耗狀態(tài)下的功耗;-IXD功耗信息,包括IXD顯示的功耗以及IXD在各個(gè)背光亮度級(jí)別下的功耗;-FLASH信息,包括FLASH的性能信息和功耗信息;-網(wǎng)絡(luò)設(shè)備信息,包括網(wǎng)絡(luò)設(shè)備性能信息和功耗信息。
4.如權(quán)利要求1所述的方法,其特征在于,所述步驟B的實(shí)現(xiàn)方法為 Bi.模擬執(zhí)行操作系統(tǒng)和應(yīng)用程序,每次模擬執(zhí)行一條指令;B2.獲取運(yùn)行時(shí)指令流信息,通過消息隊(duì)列將指令流信息發(fā)送到處理器能耗模擬器; 所述的指令流信息包括指令機(jī)器碼、指令地址、指令訪存地址、指令所屬進(jìn)程信息;B3.系統(tǒng)模擬器的模擬系統(tǒng)部件功能的函數(shù)中,根據(jù)當(dāng)前執(zhí)行的操作部件的指令的功能,更新相關(guān)系統(tǒng)部件的功耗狀態(tài);B4.在系統(tǒng)模擬器模擬執(zhí)行當(dāng)前指令時(shí),根據(jù)系統(tǒng)部件的當(dāng)前狀態(tài)或者操作特征,模擬 IO控制器、LCD、FLASH存儲(chǔ)、網(wǎng)絡(luò)設(shè)備等系統(tǒng)部件周期能耗;B5.將進(jìn)程名和進(jìn)程PID、指令-地址、及所模擬的系統(tǒng)部件能耗,通過消息隊(duì)列發(fā)送給全系統(tǒng)能耗合成模塊。
5.如權(quán)利要求1所述的方法,其特征在于,所述步驟C的實(shí)現(xiàn)步驟為Cl.模擬程序在處理器的執(zhí)行,并根據(jù)處理器設(shè)計(jì)工藝參數(shù)和頻率、電壓等參數(shù)模擬處理器能耗;C2.根據(jù)處理器訪問內(nèi)存的操作,內(nèi)存數(shù)據(jù)訪問量,以及內(nèi)存參數(shù)模擬內(nèi)存能耗。
6.如權(quán)利要求5所述的方法,其特征在于,所述步驟Cl的實(shí)現(xiàn)方法為1)分析配置文件,獲取處理器設(shè)計(jì)工藝參數(shù)、電壓、頻率及各個(gè)體系結(jié)構(gòu)部件的結(jié)構(gòu)信息,獲取內(nèi)存訪問時(shí)間、內(nèi)存在各種狀態(tài)下的功耗等內(nèi)存配置信息;2)根據(jù)處理器設(shè)計(jì)工藝配置,選擇相應(yīng)的設(shè)計(jì)工藝晶體管參數(shù),并根據(jù)處理器的電壓和頻率配置來設(shè)置電壓和頻率,初始化具有多個(gè)可調(diào)頻率的處理器能耗模型;3)按照同步方法,從指令流消息隊(duì)列獲取指令碼;4)模擬執(zhí)行流水線,識(shí)別動(dòng)態(tài)調(diào)頻DVS指令,并執(zhí)行DVS功能;5)在模擬流水線過程中,分析指令訪問的體系結(jié)構(gòu)部件的門電路翻轉(zhuǎn)情況,按照部件的能耗模型計(jì)算被訪問部件的有效電容;6)周期結(jié)束時(shí),累計(jì)各個(gè)體系結(jié)構(gòu)部件的有效電容,作為處理器本周期的有效電容,并計(jì)算處理器本周期的能耗。
7.如權(quán)利要求5所述的方法,其特征在于,所述步驟C2的實(shí)現(xiàn)方法為-未發(fā)生CACHE失效并且上一次的內(nèi)存操作已經(jīng)完成時(shí),內(nèi)存處于IDLE狀態(tài),本周期內(nèi)存能耗為Emem = Pmem—idle*Tcycle ;-當(dāng)處理器能耗模擬器發(fā)生CACHE失效時(shí),開始進(jìn)行內(nèi)存訪問,內(nèi)存執(zhí)行READ或WRITE 操作,此時(shí)計(jì)算內(nèi)存執(zhí)行操作的能耗,實(shí)現(xiàn)方法如下■根據(jù)內(nèi)存數(shù)據(jù)訪問量,計(jì)算內(nèi)存讀寫操作的時(shí)間,在以后的N。p個(gè)周期內(nèi),內(nèi)存處于此狀態(tài),內(nèi)存操作的時(shí)鐘周期數(shù)為N。P = Nfikst+Nsnd*(L-I);其中Nfikst是讀寫第一個(gè)單元所需的處理器周期數(shù);Nsnd是讀寫后續(xù)單元所需的處理器周期數(shù);L是讀寫操作的數(shù)據(jù)長(zhǎng)度; ■計(jì)算內(nèi)存本周期內(nèi)的能耗為E_ = PM—。p*T。y。le。
8.如權(quán)利要求1所述的方法,其特征在于,所述步驟D的實(shí)現(xiàn)方法為1)接受外設(shè)部件能耗模擬器和處理器能耗模擬器發(fā)來的進(jìn)程ID或進(jìn)程名、指令-地址、處理器能耗、各系統(tǒng)部件能耗及操作的時(shí)鐘周期數(shù);2)將系統(tǒng)部件的時(shí)鐘精度能耗映射為指令的系統(tǒng)部件能耗,實(shí)現(xiàn)方法如下對(duì)基于狀態(tài)的系統(tǒng)部件能耗,指令的系統(tǒng)部件能耗為=Einst = Ecycle^CPI ;所述CPI為每指令周期數(shù), 由處理器能耗模擬器根據(jù)體系結(jié)構(gòu)參數(shù)模擬并計(jì)算獲得;對(duì)基于操作的系統(tǒng)部件能耗,指令的系統(tǒng)部件能耗即為該操作的總能耗Einst = Ecycle^Nop ;所述N。p為該操作所需的處理器時(shí)鐘周期數(shù);3)累計(jì)指令ins、對(duì)應(yīng)的各系統(tǒng)部件能耗,作為該指令對(duì)應(yīng)的全系統(tǒng)能耗^instj E^pu j + ^memj + ^LCDj + ^netj + eIOj ;所述瓦;^為處理器的能耗,Ememj,Elcdj,Enetj,盡^分別是內(nèi)存、IXD、網(wǎng)絡(luò)設(shè)備、IO控制器的能耗;
9.一種面向嵌入式系統(tǒng)的系統(tǒng)部件能耗模擬系統(tǒng),其特征在于,該系統(tǒng)的實(shí)現(xiàn)方法如權(quán)利要求1所述;系統(tǒng)包含如下幾個(gè)功能單元-配置單元,主要用于用戶通過該單元輸入配置信息和控制命令,實(shí)現(xiàn)和所述模擬系統(tǒng)的交互;-模擬單元,主要用于模擬嵌入式系統(tǒng)硬件平臺(tái);模擬執(zhí)行嵌入式操作系統(tǒng)和應(yīng)用軟件;-計(jì)算單元,主要用于計(jì)算模擬情況下的各個(gè)系統(tǒng)部件能耗以及全系統(tǒng)的總能耗; -顯示單元,主要用于顯示全系統(tǒng)的能耗,包括全系統(tǒng)總能耗、各個(gè)進(jìn)程總能耗以及進(jìn)程的各個(gè)系統(tǒng)部件能耗。
10.如權(quán)利要求9所述的系統(tǒng),其特征在于,該系統(tǒng)包括以下幾個(gè)模塊1)人機(jī)交互接口模塊,用于接收用戶的配置信息,從能耗數(shù)據(jù)庫中提取并顯示能耗信息;2)控制模塊,用于處理用戶的配置信息,啟動(dòng)和控制其他模塊的運(yùn)行;3)外部設(shè)備能耗模擬器,用于模擬運(yùn)行操作系統(tǒng)內(nèi)核和應(yīng)用程序的執(zhí)行,模擬外部設(shè)備能耗并發(fā)送到全系統(tǒng)能耗合成模塊,獲取指令流信息并通過消息隊(duì)列發(fā)送到處理器能耗模擬器;4)處理器能耗模擬器,從外部設(shè)備能耗模擬器獲得指令流,模擬執(zhí)行指令,獲得處理器和內(nèi)存能耗,并發(fā)送到全系統(tǒng)能耗合成模塊中;5)全系統(tǒng)能耗合成模塊,把外部設(shè)備能耗和處理器及內(nèi)存能耗合成為全系統(tǒng)能耗,并存入能耗數(shù)據(jù)庫中;各模塊之間的關(guān)系如下1)人機(jī)交互接口將用戶的控制命令發(fā)送給控制模塊,根據(jù)其他各模塊的運(yùn)行情況顯示相應(yīng)的提示信息,并從能耗數(shù)據(jù)庫中提取并顯示能耗信息;2)控制模塊讀取配置文件并將配置信息發(fā)送給人機(jī)交互接口顯示;控制模塊接收人機(jī)交互接口的用戶控制命令,解析控制命令,啟動(dòng)和控制其他模塊的運(yùn)行;3)外部設(shè)備能耗模擬器加載目標(biāo)操作系統(tǒng)內(nèi)核和應(yīng)用程序可執(zhí)行文件,將指令流信息發(fā)送到處理器能耗模擬器,將外設(shè)能耗信息發(fā)送到全系統(tǒng)能耗合成模塊;4)處理器能耗模擬器從外部設(shè)備能耗模擬器中獲取指令流信息,將處理器和內(nèi)存能耗發(fā)送到全系統(tǒng)能耗合成模塊;5)全系統(tǒng)能耗合成模塊將外部設(shè)備能耗和處理器及內(nèi)存能耗全成全系統(tǒng)能耗并發(fā)送到能耗數(shù)據(jù)庫中。
全文摘要
本發(fā)明公開了一種面向嵌入式系統(tǒng)的全系統(tǒng)能耗模擬方法及系統(tǒng),屬于嵌入式系統(tǒng)低能耗設(shè)計(jì)領(lǐng)域。本發(fā)明的方法包括配置系統(tǒng)部件信息;模擬執(zhí)行操作系統(tǒng)和應(yīng)用程序,模擬除處理器和內(nèi)存外的其他系統(tǒng)部件的能耗,獲取運(yùn)行時(shí)的指令流信息;根據(jù)指令流信息,模擬處理器能耗和內(nèi)存能耗,將時(shí)鐘周期能耗映射為指令能耗,累計(jì)進(jìn)程對(duì)應(yīng)的程序所有指令執(zhí)行期間的各個(gè)周期的能耗,作為該進(jìn)程在執(zhí)行過程中的全系統(tǒng)能耗;分析能耗模擬結(jié)果并顯示。本發(fā)明能夠提供較高精度的嵌入式系統(tǒng)的全系統(tǒng)能耗模擬結(jié)果,可以在嵌入式系統(tǒng)設(shè)計(jì)開發(fā)的早期階段模擬評(píng)估硬件配置參數(shù)對(duì)系統(tǒng)能耗的影響,支持優(yōu)化系統(tǒng)設(shè)計(jì)降低系統(tǒng)能耗。
文檔編號(hào)G06F9/455GK102231119SQ20101024070
公開日2011年11月2日 申請(qǐng)日期2010年7月29日 優(yōu)先權(quán)日2010年7月29日
發(fā)明者趙敬峰, 趙霞, 郭耀, 陳向群 申請(qǐng)人:北京大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1