午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

緩存性能的評(píng)估方法及裝置與流程

文檔序號(hào):11177063閱讀:733來(lái)源:國(guó)知局
緩存性能的評(píng)估方法及裝置與流程

本發(fā)明涉及集成電路設(shè)計(jì)技術(shù)領(lǐng)域,具體涉及一種緩存性能的評(píng)估方法及裝置。



背景技術(shù):

嵌入式片上系統(tǒng)(systemonchip,soc)中,一般采用eeprom或flash等非揮發(fā)性存儲(chǔ)器(non-volatilememory,nvm)作為存儲(chǔ)指令的存儲(chǔ)器。微處理器(mcu)通過(guò)讀取nvm存儲(chǔ)器中的指令并執(zhí)行,完成系統(tǒng)設(shè)計(jì)的功能。

通常情況下,mcu執(zhí)行的速度比nvm的讀取速度快得多,導(dǎo)致mcu經(jīng)常處于讀取指令的等待狀態(tài),這使得讀取指令的速度成為片上系統(tǒng)、尤其是高性能片上存儲(chǔ)系統(tǒng)的瓶頸。

解決這一技術(shù)問(wèn)題的主流方案是采用指令緩存(instructioncache,簡(jiǎn)稱(chēng)cache)。通過(guò)在cache內(nèi)存儲(chǔ)mcu頻繁訪問(wèn)的數(shù)據(jù)及這些數(shù)據(jù)的存儲(chǔ)地址,當(dāng)mcu引用nvm中的某地址時(shí),cache便先檢查是否存有該地址。若存有該地址,則將對(duì)應(yīng)的指令返回mcu,否則mcu從nvm中獲取對(duì)應(yīng)的指令。

由于cache的讀取速度比nvm快得多,因此,當(dāng)訪問(wèn)的數(shù)據(jù)在cache中找到,即命中時(shí),mcu可以直接從cache中讀取對(duì)應(yīng)的數(shù)據(jù),而無(wú)需訪問(wèn)速度較慢的nvm。如果cache的命中率足夠高,mcu近似于直接從ram中讀取指令,因而整體讀取速度可以大大提高。

在實(shí)際應(yīng)用中,嵌入式soc的應(yīng)用需求多種多樣,如何根據(jù)特定的應(yīng)用需求,選擇最合適的cache結(jié)構(gòu)和參數(shù),是嵌入式soc設(shè)計(jì)者面臨的一個(gè)很大挑戰(zhàn)。為此,在嵌入式soc的cache設(shè)計(jì)中,通常需要評(píng)估不同的結(jié)構(gòu)和參數(shù)對(duì)最終cache性能的影響。

目前,對(duì)所設(shè)計(jì)的cache進(jìn)行性能評(píng)估時(shí),通常采用cache的命中率來(lái)評(píng)估cache的性能。然而,cache的命中率并不能真實(shí)地反映cache的真實(shí)性能, 導(dǎo)致根據(jù)評(píng)估結(jié)果所確定的配置參數(shù)非最優(yōu)配置參數(shù),也就是說(shuō),現(xiàn)有緩存性能評(píng)估方法對(duì)所設(shè)計(jì)的cache性能評(píng)估的準(zhǔn)確性較低。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明解決的技術(shù)問(wèn)題是如何提高cache性能評(píng)估的準(zhǔn)確性。

為解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例提供一種緩存性能的評(píng)估方法,包括:獲取n個(gè)待訪問(wèn)數(shù)據(jù)的存儲(chǔ)地址,n為自然數(shù);調(diào)整待評(píng)估的緩存的各配置參數(shù),模擬所述待評(píng)估的緩存訪問(wèn)各所述待訪問(wèn)數(shù)據(jù),分別獲得訪問(wèn)各所述待訪問(wèn)數(shù)據(jù)時(shí),所述各配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的平均訪存時(shí)間;將所述各配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的平均訪存時(shí)間作為評(píng)估結(jié)果并輸出。

可選地,所述模擬所述待評(píng)估的緩存訪問(wèn)各所述待訪問(wèn)數(shù)據(jù),包括:采用如下步驟對(duì)所述待評(píng)估的緩存訪問(wèn)其中任一所述待訪問(wèn)數(shù)據(jù)進(jìn)行模擬,直至所述待評(píng)估的緩存訪問(wèn)n個(gè)所述待訪問(wèn)數(shù)據(jù):當(dāng)獲取到所述待評(píng)估的緩存的配置參數(shù)時(shí),對(duì)所述存儲(chǔ)地址進(jìn)行劃分,獲得所述存儲(chǔ)地址對(duì)應(yīng)的緩存塊的地址信息;根據(jù)所述存儲(chǔ)地址對(duì)應(yīng)的緩存塊的地址信息,搜索第一存儲(chǔ)區(qū),所述第一存儲(chǔ)區(qū)適于存儲(chǔ)存儲(chǔ)地址的標(biāo)識(shí)信息以及對(duì)應(yīng)的使用頻度信息,所述第一存儲(chǔ)區(qū)所存儲(chǔ)的存儲(chǔ)地址的使用頻度均大于預(yù)設(shè)頻度;根據(jù)搜索結(jié)果判斷所述存儲(chǔ)地址在所述第一存儲(chǔ)區(qū)中是否命中;根據(jù)所述存儲(chǔ)地址在所述第一存儲(chǔ)區(qū)中是否命中的判斷結(jié)果,獲取相應(yīng)的數(shù)據(jù)并返回。

可選地,所述根據(jù)所述存儲(chǔ)地址在所述第一存儲(chǔ)區(qū)中是否命中的判斷結(jié)果,獲取相應(yīng)的數(shù)據(jù)并返回,包括:當(dāng)所述存儲(chǔ)地址在所述第一存儲(chǔ)區(qū)中命中時(shí),更新所述第一存儲(chǔ)區(qū)中存儲(chǔ)的信息,以及從第二存儲(chǔ)區(qū)中讀取對(duì)應(yīng)數(shù)據(jù)并返回,其中,所述第二存儲(chǔ)區(qū)適于存儲(chǔ)與所述第一存儲(chǔ)區(qū)所存儲(chǔ)的存儲(chǔ)地址對(duì)應(yīng)的數(shù)據(jù)。

可選地,所述根據(jù)所述存儲(chǔ)地址在所述第一存儲(chǔ)區(qū)中是否命中的判斷結(jié)果,獲取相應(yīng)的數(shù)據(jù)并返回,包括:當(dāng)所述存儲(chǔ)地址在所述第一存儲(chǔ)區(qū)中未命中時(shí),根據(jù)所述緩存塊的地址信息搜索第三存儲(chǔ)區(qū)中存儲(chǔ)的信息,所述第三存儲(chǔ)區(qū)適于存儲(chǔ)預(yù)取的數(shù)據(jù)及對(duì)應(yīng)的緩存塊的地址信息;根據(jù)搜索結(jié)果判斷所述存儲(chǔ)地址在所述第三存儲(chǔ)區(qū)中是否命中;根據(jù)所述存儲(chǔ)地址在所述第 三存儲(chǔ)區(qū)中是否命中的判斷結(jié)果,獲取相應(yīng)的數(shù)據(jù)并返回。

可選地,所述根據(jù)所述存儲(chǔ)地址在所述第三存儲(chǔ)區(qū)中是否命中的判斷結(jié)果,獲取相應(yīng)的數(shù)據(jù)并返回,包括:當(dāng)所述存儲(chǔ)地址在所述第三存儲(chǔ)區(qū)中命中時(shí),更新所述第一存儲(chǔ)區(qū)及第二存儲(chǔ)區(qū)中存儲(chǔ)的信息,從所述第三存儲(chǔ)區(qū)中讀取對(duì)應(yīng)的數(shù)據(jù)并返回;按照預(yù)設(shè)順序從nvm中進(jìn)行數(shù)據(jù)預(yù)取,并將預(yù)取到的數(shù)據(jù)存儲(chǔ)在所述第三存儲(chǔ)區(qū)中;當(dāng)所述存儲(chǔ)地址在所述第三存儲(chǔ)區(qū)中未命中時(shí),從所述nvm中讀取對(duì)應(yīng)的數(shù)據(jù)并返回,以及更新所述第三存儲(chǔ)區(qū)中存儲(chǔ)的信息。

可選地,當(dāng)所述第一存儲(chǔ)區(qū)的對(duì)應(yīng)位置處均已存儲(chǔ)相應(yīng)的信息時(shí),所述更新所述第一存儲(chǔ)區(qū)包括:根據(jù)所述第一存儲(chǔ)器中各緩存塊的使用頻度信息,按照預(yù)先獲取到的替換算法,對(duì)所述第一存儲(chǔ)區(qū)的緩存塊進(jìn)行替換,將在所述第三存儲(chǔ)區(qū)中命中的緩存塊的標(biāo)識(shí)信息以及對(duì)應(yīng)的使用頻度信息寫(xiě)入至被替換的位置。

可選地,在所述根據(jù)所述存儲(chǔ)地址對(duì)應(yīng)的緩存塊的地址信息,搜索第一存儲(chǔ)區(qū)之前,所述方法還包括:根據(jù)所述存儲(chǔ)地址對(duì)應(yīng)的緩存塊的地址信息搜索第四存儲(chǔ)區(qū),所述第四存儲(chǔ)區(qū)適于存儲(chǔ)前一次在所述第一存儲(chǔ)區(qū)中命中時(shí)所對(duì)應(yīng)的緩存塊的地址信息;并根據(jù)搜索結(jié)果判斷所述存儲(chǔ)地址在所述第四存儲(chǔ)區(qū)中是否命中;當(dāng)所述存儲(chǔ)地址在所述第四存儲(chǔ)區(qū)中命中時(shí),從所述第二存儲(chǔ)區(qū)中讀取對(duì)應(yīng)的數(shù)據(jù)并返回,否則搜索所述第一存儲(chǔ)區(qū)。

可選地,所述緩存塊的地址信息包括:所述緩存塊的標(biāo)識(shí)信息及地址索引信息。

可選地,所述待評(píng)估的緩存包括至少一個(gè)存儲(chǔ)區(qū),所述至少一個(gè)存儲(chǔ)區(qū)分別用于存儲(chǔ)不同的信息;

所述獲得訪問(wèn)各所述待訪問(wèn)數(shù)據(jù)時(shí),所述各配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的平均訪存時(shí)間,包括:分別計(jì)算通過(guò)所述待評(píng)估的緩存訪問(wèn)各所述待訪問(wèn)數(shù)據(jù)時(shí),所述各配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的各個(gè)所述存儲(chǔ)區(qū)的訪問(wèn)時(shí)間及命中率;獲取所述各配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的所述待評(píng)估的緩存的失效開(kāi)銷(xiāo);根據(jù)所述各配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的所述待評(píng)估的緩存的命中率、 訪問(wèn)時(shí)間及失效開(kāi)銷(xiāo),計(jì)算得到所述各配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的所述待評(píng)估的緩存的平均訪存時(shí)間。

可選地,所述待評(píng)估的緩存的配置參數(shù)包括:所述待評(píng)估的緩存的特征參數(shù)以及影響所述待評(píng)估的緩存性能的系統(tǒng)參數(shù)。

本發(fā)明實(shí)施例還提供了一種緩存性能的評(píng)估裝置,所述評(píng)估裝置包括:獲取單元,適于獲取n個(gè)待訪問(wèn)數(shù)據(jù)的存儲(chǔ)地址,n為自然數(shù);模擬單元,適于調(diào)整待評(píng)估的緩存的各配置參數(shù),模擬所述待評(píng)估的緩存訪問(wèn)各所述待訪問(wèn)數(shù)據(jù);計(jì)算單元,適于根據(jù)所述模擬子單元的模擬過(guò)程,獲得訪問(wèn)各所述待訪問(wèn)數(shù)據(jù)時(shí),所述各配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的平均訪存時(shí)間;評(píng)估單元,適于將所述各配置參數(shù)在不同數(shù)值下訪問(wèn)各所述待訪問(wèn)數(shù)據(jù)時(shí)的平均訪存時(shí)間作為評(píng)估結(jié)果并輸出。

可選地,所述模擬單元適于對(duì)所述待評(píng)估的緩存訪問(wèn)其中任一所述待訪問(wèn)數(shù)據(jù)進(jìn)行模擬,直至所述待評(píng)估的緩存訪問(wèn)n個(gè)所述待訪問(wèn)數(shù)據(jù);

所述模擬單元包括:地址劃分子單元,適于當(dāng)獲取到所述待評(píng)估的緩存的配置參數(shù)時(shí),對(duì)所述存儲(chǔ)地址進(jìn)行劃分,獲得所述存儲(chǔ)地址對(duì)應(yīng)的緩存塊的地址信息;存儲(chǔ)子單元,包括第一存儲(chǔ)區(qū),所述第一存儲(chǔ)區(qū)適于存儲(chǔ)存儲(chǔ)地址的標(biāo)識(shí)信息以及對(duì)應(yīng)的使用頻度信息,所述第一存儲(chǔ)區(qū)所存儲(chǔ)的存儲(chǔ)地址的使用頻度均大于預(yù)設(shè)頻度;第一處理子單元,適于根據(jù)所述存儲(chǔ)地址對(duì)應(yīng)的緩存塊的地址信息,搜索第一存儲(chǔ)區(qū),并根據(jù)搜索結(jié)果判斷所述存儲(chǔ)地址在所述第一存儲(chǔ)區(qū)中是否命中;第一執(zhí)行子單元,適于根據(jù)所述存儲(chǔ)地址在所述第一存儲(chǔ)區(qū)中是否命中的判斷結(jié)果,獲取相應(yīng)的數(shù)據(jù)并返回。

可選地,所述存儲(chǔ)子單元還包括:第二存儲(chǔ)區(qū),適于存儲(chǔ)與所述第一存儲(chǔ)區(qū)所存儲(chǔ)的存儲(chǔ)地址對(duì)應(yīng)的數(shù)據(jù);

所述第一執(zhí)行子單元包括:第一執(zhí)行模塊,適于更新所述第一存儲(chǔ)區(qū)中存儲(chǔ)的信息,以及從所述第二存儲(chǔ)區(qū)中讀取對(duì)應(yīng)數(shù)據(jù)并返回。

可選地,所述存儲(chǔ)子單元還包括:第三存儲(chǔ)區(qū),適于存儲(chǔ)預(yù)取的數(shù)據(jù)及對(duì)應(yīng)的緩存塊的地址信息;所述第一執(zhí)行子單元包括:第一處理模塊以及第二執(zhí)行模塊,所述第一處理模塊適于當(dāng)所述存儲(chǔ)地址在所述第一存儲(chǔ)區(qū)中未 命中時(shí),根據(jù)所述緩存塊的地址信息搜索所述第三存儲(chǔ)區(qū)中存儲(chǔ)的信息;根據(jù)搜索結(jié)果判斷所述存儲(chǔ)地址在所述第三存儲(chǔ)區(qū)中是否命中;所述第二執(zhí)行模塊,適于根據(jù)所述存儲(chǔ)地址在所述第三存儲(chǔ)區(qū)中是否命中的判斷結(jié)果,獲取相應(yīng)的數(shù)據(jù)并返回。

可選地,所述第二執(zhí)行模塊包括:第一執(zhí)行子模塊,適于當(dāng)所述存儲(chǔ)地址在所述第三存儲(chǔ)區(qū)中命中時(shí),更新所述第一存儲(chǔ)區(qū)及第二存儲(chǔ)區(qū)中存儲(chǔ)的信息,從所述第三存儲(chǔ)區(qū)中讀取對(duì)應(yīng)的數(shù)據(jù)并返回;按照預(yù)設(shè)順序從nvm中進(jìn)行數(shù)據(jù)預(yù)取,并將預(yù)取到的數(shù)據(jù)存儲(chǔ)在所述第三存儲(chǔ)區(qū)中;第二執(zhí)行子模塊,適于當(dāng)所述存儲(chǔ)地址在所述第三存儲(chǔ)區(qū)中未命中時(shí),從所述nvm中讀取對(duì)應(yīng)的數(shù)據(jù)并返回,以及更新所述第三存儲(chǔ)區(qū)中存儲(chǔ)的信息。

可選地,所述第二執(zhí)行子模塊適于當(dāng)所述第一存儲(chǔ)區(qū)的對(duì)應(yīng)位置處均已存儲(chǔ)相應(yīng)的信息時(shí),采用如下步驟更新所述第一存儲(chǔ)區(qū):根據(jù)所述第一存儲(chǔ)區(qū)中各緩存塊的使用頻度信息,按照預(yù)先獲取到的替換算法,對(duì)所述第一存儲(chǔ)區(qū)的緩存塊進(jìn)行替換,將在所述第三存儲(chǔ)區(qū)中命中的緩存塊的標(biāo)識(shí)信息以及對(duì)應(yīng)的使用頻度信息寫(xiě)入至被替換的位置。

可選地,所述存儲(chǔ)子單元還包括:第四存儲(chǔ)區(qū),適于存儲(chǔ)前一次在所述第一存儲(chǔ)區(qū)中命中時(shí)所對(duì)應(yīng)的緩存塊的地址信息;

所述模擬單元還包括:第二處理子單元及第二執(zhí)行子單元,其中:所述第二處理子單元,適于在所述根據(jù)所述存儲(chǔ)地址對(duì)應(yīng)的緩存塊的地址信息,搜索第一存儲(chǔ)區(qū)之前,根據(jù)所述存儲(chǔ)地址對(duì)應(yīng)的緩存塊的地址信息搜索所述第四存儲(chǔ)區(qū),判斷所述存儲(chǔ)地址在所述第四存儲(chǔ)區(qū)中是否命中;所述第二執(zhí)行子單元,適于當(dāng)所述存儲(chǔ)地址在所述第四存儲(chǔ)區(qū)中命中時(shí),從所述第二存儲(chǔ)區(qū)中讀取對(duì)應(yīng)的數(shù)據(jù)并返回;

所述第一處理子單元適于當(dāng)所述存儲(chǔ)地址在所述第四存儲(chǔ)區(qū)中未命中時(shí),搜索所述第一存儲(chǔ)區(qū),并根據(jù)搜索結(jié)果判斷所述存儲(chǔ)地址在所述第一存儲(chǔ)區(qū)中是否命中。

可選地,所述緩存塊的地址信息包括:所述緩存塊的標(biāo)識(shí)信息及地址索引信息。

可選地,所述待評(píng)估的緩存包括至少一個(gè)存儲(chǔ)區(qū),所述至少一個(gè)存儲(chǔ)區(qū)分別用于存儲(chǔ)不同的信息;

所述計(jì)算單元包括:第一計(jì)算子單元,適于分別計(jì)算通過(guò)所述待評(píng)估的緩存訪問(wèn)各所述待訪問(wèn)數(shù)據(jù)時(shí),所述各配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的各個(gè)所述存儲(chǔ)區(qū)的訪問(wèn)時(shí)間及命中率;獲取子單元,適于獲取所述各配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的所述待評(píng)估的緩存的失效開(kāi)銷(xiāo);第二計(jì)算子單元,適于根據(jù)所述各配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的所述待評(píng)估的緩存的命中率、訪問(wèn)時(shí)間及失效開(kāi)銷(xiāo),計(jì)算得到所述各配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的所述待評(píng)估的緩存的平均訪存時(shí)間。

可選地,所述待評(píng)估的緩存的配置參數(shù)包括:所述待評(píng)估的緩存的特征參數(shù)以及影響所述待評(píng)估的緩存性能的系統(tǒng)參數(shù)。

與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例的技術(shù)方案具有以下有益效果:

在上述緩存性能的評(píng)估方法中,通過(guò)采用平均訪存時(shí)間來(lái)評(píng)估緩存的性能,相對(duì)于采用命中率來(lái)評(píng)估緩存的性能,由于所述平均訪存時(shí)間不僅與緩存的命中率相關(guān),還與緩存的訪問(wèn)時(shí)間及失效開(kāi)銷(xiāo)等特征參數(shù)相關(guān),故平均訪存時(shí)間可以更加真實(shí)地反映緩存的真實(shí)性能,故利用平均訪存時(shí)間來(lái)評(píng)估緩存的性能可以提高評(píng)估的準(zhǔn)確性。

附圖說(shuō)明

圖1是本發(fā)明實(shí)施例中一種緩存性能評(píng)估方法流程圖;

圖2是一種cache容量與平均訪存時(shí)間之間對(duì)應(yīng)關(guān)系的曲線示意圖;

圖3是一種cache塊大小與平均訪存時(shí)間之間對(duì)應(yīng)關(guān)系的曲線示意圖;

圖4是一種cache相聯(lián)度與平均訪存時(shí)間之間對(duì)應(yīng)關(guān)系的曲線示意圖;

圖5是本發(fā)明實(shí)施例中一種緩存模擬方法流程圖;

圖6是本發(fā)明實(shí)施例中一種緩存模擬過(guò)程的原理示意圖;

圖7是本發(fā)明實(shí)施例中另一種緩存模擬方法流程圖;

圖8是本發(fā)明實(shí)施例中另一種緩存模擬過(guò)程的原理示意圖;

圖9是本發(fā)明實(shí)施例中一種緩存性能評(píng)估裝置的結(jié)構(gòu)示意圖;

圖10是本發(fā)明實(shí)施例中一種模擬單元的結(jié)構(gòu)示意圖;

圖11是本發(fā)明實(shí)施例中另一種模擬單元的結(jié)構(gòu)示意圖;

圖12是本發(fā)明實(shí)施例中模擬單元不同結(jié)構(gòu)下對(duì)平均訪存時(shí)間的影響示意圖。

具體實(shí)施方式

在實(shí)際應(yīng)用中,嵌入式soc的應(yīng)用場(chǎng)景各種各樣,各種應(yīng)用場(chǎng)景的特點(diǎn)都不盡相同,特定結(jié)構(gòu)的cache很難保證在不同的應(yīng)用場(chǎng)景之間具有通用性。另外,嵌入式soc的設(shè)計(jì)不僅需要考慮系統(tǒng)的性能,系統(tǒng)的功耗、面積和成本也是設(shè)計(jì)者需要考慮的問(wèn)題。因此,在嵌入式soc的cache設(shè)計(jì)中,通常需要評(píng)估不同的應(yīng)用需求下,各種結(jié)構(gòu)和參數(shù)對(duì)最終cache加速效果的影響。

然而,利用現(xiàn)有的cache性能評(píng)估方法進(jìn)行cache性能評(píng)估時(shí),根據(jù)模擬過(guò)程僅能得到cache的命中率,而cache的命中率不能反映cache真實(shí)加速效果,最終導(dǎo)致cache性能評(píng)估的準(zhǔn)確性較低。

針對(duì)上述問(wèn)題,本發(fā)明實(shí)施例提供了一種緩存性能的評(píng)估方法,所述方法可以根據(jù)待評(píng)估緩存的模擬過(guò)程,獲得訪問(wèn)各所述待訪問(wèn)數(shù)據(jù)時(shí),所述各配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的平均訪存時(shí)間,進(jìn)而根據(jù)所述各配置參數(shù)在不同數(shù)值下訪問(wèn)各所述待訪問(wèn)數(shù)據(jù)時(shí)的平均訪存時(shí)間,評(píng)估所述待評(píng)估的緩存的性能。由于所述平均訪存時(shí)間不僅與緩存的命中率相關(guān),還與緩存的訪問(wèn)時(shí)間及失效開(kāi)銷(xiāo)等特征參數(shù)相關(guān),故平均訪存時(shí)間可以更加真實(shí)地反映緩存的真實(shí)性能,利用平均訪存時(shí)間來(lái)評(píng)估緩存的性能的準(zhǔn)確性也就更高。

為使本發(fā)明的上述目的、特征和有益效果能夠更為明顯易懂,下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施例做詳細(xì)地說(shuō)明。

參照?qǐng)D1,本發(fā)明實(shí)施例提供了一種緩存性能的評(píng)估方法,所述方法可以包括如下步驟:

步驟11,獲取n個(gè)待訪問(wèn)數(shù)據(jù)的存儲(chǔ)地址,n為自然數(shù)。

在具體實(shí)施中,可以采用多種方式獲取所述待訪問(wèn)數(shù)據(jù)的存儲(chǔ)地址。在 本發(fā)明的一實(shí)施例中,可以通過(guò)提取待評(píng)估的緩存在某一應(yīng)用場(chǎng)景下的地址訪存蹤跡信息(memoryaccesstrace,mat),來(lái)獲取待訪問(wèn)數(shù)據(jù)的存儲(chǔ)地址。其中,所述mat中不僅可以包括待訪問(wèn)數(shù)據(jù)及對(duì)應(yīng)的存儲(chǔ)地址,還包括mcu在nvm中訪問(wèn)所述待訪問(wèn)數(shù)據(jù)所需的時(shí)間,這樣在后續(xù)對(duì)待評(píng)估的緩存進(jìn)行性能評(píng)估時(shí),則無(wú)須再獲取mcu在nvm中訪問(wèn)所述待訪問(wèn)數(shù)據(jù)所需的訪問(wèn)時(shí)間,為后續(xù)進(jìn)行性能評(píng)估提供便利。

需要說(shuō)明的是,在具體實(shí)施中,n的值可以根據(jù)實(shí)際情況進(jìn)行設(shè)置??梢岳斫獾氖牵琻的值越大,評(píng)估的準(zhǔn)確性越高,但評(píng)估所需時(shí)間也就越長(zhǎng),代價(jià)越大。因此,本領(lǐng)域技術(shù)人員可以實(shí)際情況合理設(shè)置n的值,此處不作限制。

步驟12,調(diào)整待評(píng)估的緩存的各配置參數(shù),模擬所述待評(píng)估的緩存訪問(wèn)各所述待訪問(wèn)數(shù)據(jù),分別獲得訪問(wèn)各所述待訪問(wèn)數(shù)據(jù)時(shí),所述各配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的平均訪存時(shí)間。

在具體實(shí)施中,所述待評(píng)估的cache通常存在多個(gè)配置參數(shù)。所述配置參數(shù)既可以包含所述待評(píng)估的cache的特征參數(shù),又包含可以影響所述待評(píng)估的cache性能的系統(tǒng)參數(shù)。其中,所述待評(píng)估的cache的特征參數(shù)可以包括:所述待評(píng)估的cache的容量、cache塊的大小,cache相聯(lián)度以及替換算法等。影響所述待評(píng)估的cache性能的系統(tǒng)參數(shù)可以包括:nvm、cache及mcu三者的訪問(wèn)時(shí)間、訪問(wèn)功耗及數(shù)據(jù)位寬等。

當(dāng)然,所述配置參數(shù)還可以包括其他參數(shù),并不局限于上述實(shí)施例所給出的參數(shù)。并且,所獲取到的配置參數(shù)中可以?xún)H包含一個(gè)參數(shù),也可以包含兩個(gè)或兩個(gè)以上的參數(shù)。

在具體實(shí)施中,所述配置參數(shù)通?;谒龃u(píng)估的cache的應(yīng)用需求進(jìn)行配置。也就是說(shuō),所獲取到的配置參數(shù)與所述待評(píng)估的cache的應(yīng)用需求相對(duì)應(yīng)。所述待評(píng)估的cache的應(yīng)用需求不同,所獲取到的配置參數(shù)也就不同。

例如,當(dāng)所述待評(píng)估的cache應(yīng)用在aes(對(duì)稱(chēng)加密算法)中時(shí),所述配置參數(shù)可以為:cache容量2kbyte,cache塊大小16byte,cache相聯(lián)度2,最近最少使用(lru)替換算法等。當(dāng)所述待評(píng)估的cache應(yīng)用在dhrystone (處理器整形運(yùn)算性能測(cè)試)程序下時(shí),所述配置參數(shù)可以為:cache容量512byte,cache塊大小16byte,cache相聯(lián)度1等。

以所述待評(píng)估的cache的配置參數(shù)包括:cache容量、cache塊大小、cache相聯(lián)度為例,在調(diào)整待評(píng)估的cache的各配置參數(shù),模擬所述待評(píng)估的cache訪問(wèn)各所述待訪問(wèn)數(shù)據(jù)時(shí),可以先保持cache塊大小及cache相聯(lián)度不變,調(diào)整cache容量,并模擬每次cache容量調(diào)整后,所述待評(píng)估的cache訪問(wèn)各所述待訪問(wèn)數(shù)據(jù)的工作流程,獲得cache容量在不同數(shù)值下對(duì)應(yīng)的平均訪存時(shí)間。接著再保持cache容量及cache塊大小不變,調(diào)整cache相聯(lián)度,并模擬每次cache相聯(lián)度調(diào)整后,所述待評(píng)估的cache訪問(wèn)各所述待訪問(wèn)數(shù)據(jù)的工作流程,獲得cache相聯(lián)度在不同數(shù)值下對(duì)應(yīng)的平均訪存時(shí)間。最后再保持cache容量及cache相聯(lián)度不變,調(diào)整cache塊大小,并模擬每次cache塊大小調(diào)整后,所述待評(píng)估的緩存訪問(wèn)各所述待訪問(wèn)數(shù)據(jù)的工作流程,獲得cache塊大小在不同數(shù)值下對(duì)應(yīng)的平均訪存時(shí)間。

需要說(shuō)明的是,在具體實(shí)施中,各配置參數(shù)調(diào)整的順序不受限制。另外,在對(duì)每個(gè)配置參數(shù)的調(diào)整過(guò)程中,調(diào)整的次數(shù)不受限制,并且各個(gè)配置參數(shù)調(diào)整的次數(shù)可以相同,也可以不同。可以理解的是,調(diào)整的次數(shù)越多,所獲得的平均訪存時(shí)間也就越準(zhǔn)確,但性能評(píng)估所需時(shí)間也就越大,故本領(lǐng)域人員可以根據(jù)實(shí)際情況進(jìn)行設(shè)置。

需要說(shuō)明的是,在具體實(shí)施中,可以采用多種方法對(duì)所述待評(píng)估的cache訪問(wèn)各所述待訪問(wèn)數(shù)據(jù)進(jìn)行模擬,具體不受限制,只要根據(jù)所述方法可以獲得訪問(wèn)各所述待訪問(wèn)數(shù)據(jù)時(shí),所述各配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的平均訪存時(shí)間即可。

在具體實(shí)施中,所述待評(píng)估的cache通常存在多個(gè)配置參數(shù),下面以待評(píng)估的cache為m1,nvm為m2為例,對(duì)每個(gè)配置參數(shù)對(duì)應(yīng)的平均訪存時(shí)間的具體計(jì)算過(guò)程進(jìn)行詳細(xì)說(shuō)明:

需要說(shuō)明的是,為使本領(lǐng)域人員更好地理解和實(shí)施本發(fā)明,在本發(fā)明的以下的實(shí)施例中,所述平均訪存時(shí)間,即mcu訪問(wèn)nvm及cache等存儲(chǔ)器所需的平均訪問(wèn)時(shí)間。所述cache的命中率,即mcu在cache中命中待訪問(wèn) 數(shù)據(jù)的概率。所述cache的缺失率,即mcu未在cache中命中待訪問(wèn)數(shù)據(jù)的概率。

通常情況下,所述平均訪存時(shí)間t=m1命中率*m1訪問(wèn)時(shí)間+m2命中率*m2訪問(wèn)時(shí)間,其中,m1命中率即mcu在待評(píng)估的cache中命中待訪問(wèn)數(shù)據(jù)的概率,m1訪問(wèn)時(shí)間即mcu在待評(píng)估的cache中訪問(wèn)數(shù)據(jù)的時(shí)間,m2命中率即mcu在nvm中命中待訪問(wèn)數(shù)據(jù)的概率,m2訪問(wèn)時(shí)間即mcu在nvm中訪問(wèn)數(shù)據(jù)的時(shí)間。

其中,m2命中率=1-m1命中率=m1缺失率,m2訪問(wèn)時(shí)間=m1訪問(wèn)時(shí)間+m2到m1調(diào)入數(shù)據(jù)的時(shí)間,而m2到m1調(diào)入數(shù)據(jù)的時(shí)間=失效開(kāi)銷(xiāo)t2,當(dāng)所述待評(píng)估的cache的配置參數(shù)及nvm確定時(shí),失效開(kāi)銷(xiāo)t2也是確定的因此,平均訪存時(shí)間t=m1訪問(wèn)時(shí)間+m1缺失率*失效開(kāi)銷(xiāo)t2。由此可以獲得各個(gè)配置參數(shù)對(duì)應(yīng)的平均訪存時(shí)間。

在具體實(shí)施中,所述待評(píng)估的cache通常包括一個(gè)以上的存儲(chǔ)區(qū),所述一個(gè)以上的存儲(chǔ)區(qū)分別用于存儲(chǔ)不同的信息,因此,m1訪問(wèn)時(shí)間及m1命中率或缺失率與所述待評(píng)估的cache中各個(gè)存儲(chǔ)區(qū)的訪問(wèn)時(shí)間或命中率相關(guān)。

以所述待評(píng)估的cache包括k個(gè)存儲(chǔ)區(qū)為例,k≥1,且k為整數(shù),在獲得某一配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的平均訪存時(shí)間時(shí),可以先分別計(jì)算通過(guò)所述待評(píng)估的cache訪問(wèn)各所述待訪問(wèn)數(shù)據(jù)時(shí),該配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的各個(gè)所述存儲(chǔ)區(qū)的訪問(wèn)時(shí)間ti及命中率pi,i≤k,再獲取該配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的所述待評(píng)估的cache的失效開(kāi)銷(xiāo)t2,最后根據(jù)訪問(wèn)時(shí)間ti、命中率pi以及失效開(kāi)銷(xiāo)t2,計(jì)算得到該配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的所述待評(píng)估的cache的平均訪存時(shí)間t,即t=∑ti+(1-∑pi)*t2。

需要說(shuō)明的是,在具體實(shí)施中,計(jì)算訪問(wèn)時(shí)間ti及命中率pi的操作,與獲取所述各配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的所述待評(píng)估的cache的失效開(kāi)銷(xiāo)t2的操作,不存在執(zhí)行順序的限制,既可以先計(jì)算訪問(wèn)時(shí)間ti及命中率pi,再獲取所述各配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的所述待評(píng)估的cache的失效開(kāi)銷(xiāo)t2,也可以先獲取所述各配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的所述待評(píng)估的cache的失效開(kāi)銷(xiāo)t2,再計(jì)算訪問(wèn)時(shí)間ti及命中率pi,還可以同時(shí)執(zhí)行上述兩個(gè)操作。 但無(wú)論按照何種順序執(zhí)行上述兩個(gè)操作,均不構(gòu)成對(duì)本發(fā)明的限制,且均在本發(fā)明的保護(hù)范圍之內(nèi)。

每獲得一組所述待評(píng)估的cache的配置參數(shù),即按照上述的描述計(jì)算得到對(duì)應(yīng)的平均訪存時(shí)間。保持其它配置參數(shù)不變,調(diào)整其中一個(gè)配置參數(shù)時(shí),即可獲得被調(diào)整的配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的平均訪存時(shí)間。由此可以獲得各個(gè)配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的平均訪存時(shí)間。

例如,在計(jì)算某一cache塊大小對(duì)應(yīng)的平均訪存時(shí)間t時(shí),可以先獲得mcu在所述待評(píng)估的cache各個(gè)存儲(chǔ)區(qū)的ti及命中率pi,再獲得所述待評(píng)估的cache的失效開(kāi)銷(xiāo)t2,最后根據(jù)t=∑ti+(1-∑pi)*t2,計(jì)算得到該cache塊大小對(duì)應(yīng)的平均訪存時(shí)間t。每次調(diào)整cache塊大小后,均按照上述實(shí)施例中的描述進(jìn)行計(jì)算,即可獲得cache塊大小在不同數(shù)值下對(duì)應(yīng)的平均訪存時(shí)間。

步驟13,將所述各配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的平均訪存時(shí)間作為評(píng)估結(jié)果并輸出。

在具體實(shí)施中,根據(jù)所述各配置參數(shù)在不同數(shù)值下訪問(wèn)各所述待訪問(wèn)數(shù)據(jù)時(shí)的平均訪存時(shí)間,可以評(píng)估所述各配置參數(shù)對(duì)于cache平均訪存時(shí)間的影響,進(jìn)而可以根據(jù)各配置參數(shù)與平均訪存時(shí)間的對(duì)應(yīng)關(guān)系,確定各配置參數(shù)的合理數(shù)值,以得到最優(yōu)的一組配置參數(shù)。平均訪存時(shí)間越小,對(duì)應(yīng)的配置參數(shù)值越優(yōu),按照所得到的最優(yōu)的一組配置參數(shù)設(shè)置緩存,可以使得所設(shè)計(jì)的緩存性能最佳。

由上述內(nèi)容可知,在本發(fā)明實(shí)施例中所述的緩存性能的評(píng)估方法中,通過(guò)采用平均訪存時(shí)間來(lái)評(píng)估cache的性能,相對(duì)于采用命中率來(lái)評(píng)估cache的性能,由于所述平均訪存時(shí)間不僅與緩存的命中率相關(guān),還與cache的訪問(wèn)時(shí)間及失效開(kāi)銷(xiāo)等特征參數(shù)相關(guān),故平均訪存時(shí)間可以更加真實(shí)地反映緩存的真實(shí)性能,利用平均訪存時(shí)間來(lái)評(píng)估緩存的性能的準(zhǔn)確性也就更高。

圖2~圖4為不同應(yīng)用場(chǎng)景下,cache容量、cache塊大小及cache相聯(lián)度分別與缺失率q和平均訪存時(shí)間t之間的對(duì)應(yīng)曲線,其中,所述缺失率q=1-命中率p。

如圖2所示,所述待評(píng)估的cache的配置參數(shù)為:cache塊大?。?2byte,相聯(lián)度為全相聯(lián),替換算法為lru替換算法,分別在aes、sha(哈希算法)、dhystone、comb(aes、sha及dhystone的組合)四種應(yīng)用環(huán)境下,調(diào)整cache容量,分別得到cache容量與待評(píng)估的cache的缺失率q之間的對(duì)應(yīng)曲線(如圖2(a)所示),以及得到cache容量與待評(píng)估的cache的平均訪存時(shí)間t之間的對(duì)應(yīng)曲線(如圖2(b)所示)。

以所述待評(píng)估的cache應(yīng)用在aes中為例,按照?qǐng)D2(a)得到的曲線確定cache容量的最優(yōu)值時(shí),缺失率q的最小值所對(duì)應(yīng)的cache容量值為最優(yōu)值,即8192byte。按照?qǐng)D2(b)得到的曲線確定cache容量的最優(yōu)值時(shí),平均訪存時(shí)間t的最小值所對(duì)應(yīng)的cache容量值為最優(yōu)值,即2048byte。

如圖3所示,所述待評(píng)估的cache的配置參數(shù)為:cache容量=512byte,相聯(lián)度為全相聯(lián),替換算法為lru替換算法,分別在aes、sha及dhystone三種應(yīng)用環(huán)境下,調(diào)整cache塊的大小,得到cache塊的大小與待評(píng)估的cache的缺失率q之間的對(duì)應(yīng)曲線(如圖3(a)所示),以及得到cache塊的大小與待評(píng)估的cache的平均訪存時(shí)間t之間的對(duì)應(yīng)曲線(如圖3(b)所示)。

以所述待評(píng)估的cache應(yīng)用在sha中為例,按照?qǐng)D3(a)得到的曲線確定cache塊的大小的最優(yōu)值時(shí),缺失率q的最小值所對(duì)應(yīng)的cache塊的大小值為最優(yōu)值,即128byte。按照?qǐng)D3(b)得到的曲線確定cache塊的大小的最優(yōu)值時(shí),平均訪存時(shí)間t的最小值所對(duì)應(yīng)的cache塊的大小值為最優(yōu)值,即16byte。

如圖4所示,所述待評(píng)估的cache的配置參數(shù)為:cache容量=512byte,cache塊的大小=16byte,替換算法為lru替換算法,分別在aes、sha及dhystone三種應(yīng)用環(huán)境下,調(diào)整cache的相聯(lián)度,得到cache的相聯(lián)度與待評(píng)估的cache的缺失率q之間的對(duì)應(yīng)曲線(如圖4(a)所示),以及得到cache的相聯(lián)度與待評(píng)估的cache的平均訪存時(shí)間t之間的對(duì)應(yīng)曲線(如圖4(b)所示)。

以所述待評(píng)估的cache應(yīng)用在dhystone中為例,按照?qǐng)D4(a)得到的曲線確定cache的相聯(lián)度的最優(yōu)值時(shí),缺失率q的最小值所對(duì)應(yīng)的cache的相 聯(lián)度為最優(yōu)值,即1(1表示直接映射)。按照?qǐng)D4(b)得到的曲線確定cache的相聯(lián)度的最優(yōu)值時(shí),平均訪存時(shí)間t的最小值所對(duì)應(yīng)的cache的相聯(lián)度的值為最優(yōu)值,即0(0表示全相聯(lián))。

從圖2~圖4可以看出,在實(shí)際應(yīng)用中,采用cache的命中率來(lái)評(píng)估cache的性能,與采用cache的平均訪存時(shí)間來(lái)評(píng)估cache的性能,所選擇的cache的配置參數(shù)可能完全不同。然而,可以理解的是,cache的平均訪存時(shí)間與cache的命中率相關(guān),而且與cache的訪問(wèn)時(shí)間及失效開(kāi)銷(xiāo)相關(guān),更能反映cache的真實(shí)性能,因此利用cache的平均訪存時(shí)間來(lái)評(píng)估cache的性能,評(píng)估結(jié)果的準(zhǔn)確性也就越高。

在本發(fā)明的一實(shí)施例中,可以參照?qǐng)D5示出的cache的模擬方法,對(duì)本發(fā)明實(shí)施例中所述待評(píng)估的cache訪問(wèn)所述待訪問(wèn)數(shù)據(jù)進(jìn)行模擬,所述方法可以包括如下步驟:

步驟501,獲取待評(píng)估的緩存的配置參數(shù)。

在具體實(shí)施中,所述配置參數(shù)的參數(shù)可以通過(guò)多種方式進(jìn)行獲取,比如,所述配置參數(shù)可以是用戶(hù)輸入的,也可以是通過(guò)訪問(wèn)其它存儲(chǔ)介質(zhì)獲取到的。當(dāng)然,還可以存在其它獲取方式,只要所獲取到的配置參數(shù)與具體的應(yīng)用需求相對(duì)應(yīng)即可。

步驟502,對(duì)所述存儲(chǔ)地址進(jìn)行劃分,獲得所述存儲(chǔ)地址對(duì)應(yīng)的緩存塊的地址信息。

在設(shè)置有cache的嵌入式soc中,cache通常包括若干個(gè)cache塊,每個(gè)cache塊的大小相等。相似地,所述待評(píng)估的cache也設(shè)置有若干個(gè)緩存塊,每個(gè)緩存塊的大小相等。每個(gè)存儲(chǔ)地址對(duì)應(yīng)一緩存塊。所述存儲(chǔ)地址通常為所對(duì)應(yīng)的緩存塊的起始地址信息。

在具體實(shí)施中,對(duì)所述存儲(chǔ)地址進(jìn)行劃分時(shí),通??梢垣@得如下三部分信息:所述存儲(chǔ)地址對(duì)應(yīng)的cache塊的標(biāo)識(shí)信息和地址索引信息,以及所述存儲(chǔ)地址在所述cache塊中的偏移信息。其中,所述cache塊的標(biāo)識(shí)信息和地址索引信息,作為所述cache塊地址信息。

具體地,所述cache塊的標(biāo)識(shí)信息可以唯一標(biāo)識(shí)一cache塊,通常為所 述存儲(chǔ)地址的高位。通過(guò)所述地址索引信息可以在相應(yīng)的存儲(chǔ)區(qū)中的到所述cache塊的信息。所述偏移信息為所述存儲(chǔ)地址在所述cache塊中的偏移量。根據(jù)獲取到的所述待模擬cache的容量、cache塊大小及相聯(lián)度等信息,可以在所述存儲(chǔ)地址中分別獲得對(duì)應(yīng)的cache塊的標(biāo)識(shí)信息和地址索引信息,以及所述存儲(chǔ)地址在所述對(duì)應(yīng)的cache塊中的偏移信息。

步驟503,根據(jù)所述存儲(chǔ)地址對(duì)應(yīng)的緩存塊的地址信息,搜索第一存儲(chǔ)區(qū),并根據(jù)搜索結(jié)果判斷所述存儲(chǔ)地址在所述第一存儲(chǔ)區(qū)中是否命中。

在具體實(shí)施中,所述第一存儲(chǔ)區(qū)適于存儲(chǔ)存儲(chǔ)地址的標(biāo)識(shí)信息以及對(duì)應(yīng)的使用頻度信息,所述第一存儲(chǔ)區(qū)所存儲(chǔ)的存儲(chǔ)地址的使用頻度均大于預(yù)設(shè)頻度。也就是說(shuō),所述第一存儲(chǔ)區(qū)適于存儲(chǔ)mcu經(jīng)常使用的存儲(chǔ)地址的標(biāo)識(shí)信息及相應(yīng)的使用頻度。其中,所述預(yù)設(shè)頻度可以根據(jù)mcu的實(shí)際訪問(wèn)數(shù)據(jù)的情況進(jìn)行設(shè)置。

在具體實(shí)施中,所述第一存儲(chǔ)區(qū)可以劃分為多個(gè)組,每組中可以存儲(chǔ)多個(gè)存儲(chǔ)地址的標(biāo)識(shí)信息以及對(duì)應(yīng)的使用頻度信息。其中,所述第一存儲(chǔ)區(qū)中組的數(shù)量與cache的相聯(lián)度相關(guān),比如,cache的相聯(lián)度為4時(shí),所述第一存儲(chǔ)區(qū)包含4組。當(dāng)cache的相聯(lián)度為2時(shí),所述第一存儲(chǔ)區(qū)包含2組。每組中可以存儲(chǔ)的存儲(chǔ)地址的標(biāo)識(shí)信息的數(shù)量,與所述第一存儲(chǔ)區(qū)所存儲(chǔ)的存儲(chǔ)地址的總數(shù)和組數(shù)相關(guān)。比如,當(dāng)所述第一存儲(chǔ)區(qū)所存儲(chǔ)的存儲(chǔ)地址的總數(shù)為20,cache的相聯(lián)度為4時(shí),每組中可以存儲(chǔ)的存儲(chǔ)地址的標(biāo)識(shí)信息為5個(gè)。當(dāng)所述第一存儲(chǔ)區(qū)所存儲(chǔ)的存儲(chǔ)地址的總數(shù)為20,cache的相聯(lián)度為2時(shí),每組中可以存儲(chǔ)的存儲(chǔ)地址的標(biāo)識(shí)信息為10個(gè)。

在具體實(shí)施中,根據(jù)所述存儲(chǔ)地址對(duì)應(yīng)的cache塊的地址索引信息,搜索所述第一存儲(chǔ)區(qū)中存儲(chǔ)的信息,由此可以獲得所述第一存儲(chǔ)區(qū)中各組在相應(yīng)位置上的標(biāo)識(shí)信息。

在具體實(shí)施中,獲得第一存儲(chǔ)區(qū)中各組在相應(yīng)位置上的標(biāo)識(shí)信息后,分別將搜索到的標(biāo)識(shí)信息與所述存儲(chǔ)地址對(duì)應(yīng)的cache塊的標(biāo)識(shí)信息進(jìn)行比較。當(dāng)二者相同時(shí),判定所述存儲(chǔ)地址在所述第一存儲(chǔ)區(qū)中命中,否則表示所述存儲(chǔ)地址在第一存儲(chǔ)區(qū)中缺失,則判定所述存儲(chǔ)地址在所述第一存儲(chǔ)區(qū)中未 命中。

當(dāng)所述存儲(chǔ)地址在所述第一存儲(chǔ)區(qū)中命中時(shí),執(zhí)行步驟504,否則執(zhí)行步驟505。

步驟504,更新所述第一存儲(chǔ)區(qū)中存儲(chǔ)的信息,以及從第二存儲(chǔ)區(qū)中讀取對(duì)應(yīng)數(shù)據(jù)并返回。

在具體實(shí)施中,所述第二存儲(chǔ)區(qū)適于存儲(chǔ)與所述第一存儲(chǔ)區(qū)所存儲(chǔ)的存儲(chǔ)地址對(duì)應(yīng)的數(shù)據(jù)。當(dāng)所述存儲(chǔ)地址在所述第一存儲(chǔ)區(qū)中命中時(shí),更新所述第一存儲(chǔ)區(qū)中所述存儲(chǔ)地址對(duì)應(yīng)的cache塊的使用頻度信息,以及從所述第二存儲(chǔ)區(qū)中讀取相應(yīng)的數(shù)據(jù)并返回。

需要說(shuō)明的是,在具體實(shí)施中,所述第二存儲(chǔ)區(qū)也可以分為多組,每組中存儲(chǔ)的數(shù)據(jù)與所述第一存儲(chǔ)區(qū)中各組所存儲(chǔ)的cache塊的標(biāo)識(shí)信息相對(duì)應(yīng)。執(zhí)行步驟503的同時(shí),可以同時(shí)執(zhí)行讀取所述第二存儲(chǔ)區(qū)的操作,最終根據(jù)步驟503的判斷結(jié)果,將所述第二存儲(chǔ)區(qū)中對(duì)應(yīng)的數(shù)據(jù)返回至mcu,進(jìn)一步縮短cache的模擬時(shí)間。

需要說(shuō)明的是,在具體實(shí)施中,執(zhí)行更新所述第一存儲(chǔ)區(qū)中存儲(chǔ)的信息的操作,以及執(zhí)行從第二存儲(chǔ)區(qū)中讀取對(duì)應(yīng)數(shù)據(jù)并返回的操作,不存在實(shí)現(xiàn)順序的限制,二者既可以同時(shí)執(zhí)行,也可以順序執(zhí)行。

步驟505,根據(jù)所述緩存塊的地址信息搜索第三存儲(chǔ)區(qū)中存儲(chǔ)的信息,并根據(jù)搜索結(jié)果判斷所述存儲(chǔ)地址在所述第三存儲(chǔ)區(qū)中是否命中。

在具體實(shí)施中,所述存儲(chǔ)地址在所述第一存儲(chǔ)區(qū)中未命中時(shí),表示所述存儲(chǔ)地址在第一存儲(chǔ)區(qū)中缺失。根據(jù)所述cache塊的地址索引信息,搜索所述第三存儲(chǔ)區(qū),可以獲得所述第三存儲(chǔ)區(qū)對(duì)應(yīng)位置上的數(shù)據(jù)及所述數(shù)據(jù)對(duì)應(yīng)的cache塊的標(biāo)識(shí)信息。將所述存儲(chǔ)地址對(duì)應(yīng)cache塊的標(biāo)識(shí)信息與搜索到的標(biāo)識(shí)信息進(jìn)行比較,當(dāng)二者相同時(shí),判定所述存儲(chǔ)地址在所述第三存儲(chǔ)區(qū)中命中,否則判定所述存儲(chǔ)地址在所述第三存儲(chǔ)區(qū)中未命中。

其中,所述第三存儲(chǔ)區(qū)適于存儲(chǔ)預(yù)取的數(shù)據(jù)及對(duì)應(yīng)的cache塊的地址索引信息及標(biāo)識(shí)信息。所述預(yù)取的數(shù)據(jù)可以?xún)H為一個(gè),也可以為多個(gè),具體不受限制。

當(dāng)所述存儲(chǔ)地址在所述第三存儲(chǔ)區(qū)中命中時(shí),執(zhí)行步驟506,否則執(zhí)行步驟507。

步驟506,更新所述第一存儲(chǔ)區(qū)及第二存儲(chǔ)區(qū)中存儲(chǔ)的信息,從所述第三存儲(chǔ)區(qū)中讀取對(duì)應(yīng)的數(shù)據(jù)并返回。

在具體實(shí)施中,當(dāng)所述存儲(chǔ)地址在所述第三存儲(chǔ)區(qū)中命中時(shí),可以先根據(jù)在所述第三存儲(chǔ)區(qū)中命中的數(shù)據(jù)所對(duì)應(yīng)的cache塊的地址索引信息,確定所述第一存儲(chǔ)區(qū)中對(duì)應(yīng)的位置是否已存儲(chǔ)相應(yīng)的信息。

若所述第一存儲(chǔ)區(qū)中有某一組中對(duì)應(yīng)的位置未存儲(chǔ)相應(yīng)的信息,則將在所述第三存儲(chǔ)區(qū)中命中的數(shù)據(jù)所對(duì)應(yīng)的cache塊的標(biāo)識(shí)信息以及對(duì)應(yīng)的使用頻度信息寫(xiě)入至該位置。

若所述第一存儲(chǔ)區(qū)所有組中對(duì)應(yīng)的位置均已存儲(chǔ)相應(yīng)的信息,則可以根據(jù)所述第一存儲(chǔ)器中各cache塊的使用頻度信息,按照預(yù)先獲取到的替換算法,對(duì)所述第一存儲(chǔ)區(qū)的cache塊進(jìn)行替換,將在所述第三存儲(chǔ)區(qū)中命中的緩存塊的標(biāo)識(shí)信息以及對(duì)應(yīng)的使用頻度信息寫(xiě)入至被替換的位置。

需要說(shuō)明的是,所述替換算法作為待模擬cache的一配置參數(shù),可以在對(duì)所述待模擬cache進(jìn)行模擬之前預(yù)先獲取到。在具體實(shí)施中,所述替換算法可以是為先進(jìn)先出替換算法(fifo),也可以為lru,還可以為二叉樹(shù)偽lru替換算法(pseudo-lru)。當(dāng)然,還可以為其他替換算法,具體不作限制。

更新所述第一存儲(chǔ)區(qū)后,將在所述第三存儲(chǔ)區(qū)中命中的數(shù)據(jù)寫(xiě)入至所述第二存儲(chǔ)區(qū)的相應(yīng)位置處。從第三存儲(chǔ)區(qū)中讀取所命中的數(shù)據(jù)并返回至mcu。需要說(shuō)明的是,更新所述第一、第二存儲(chǔ)區(qū)以及向mcu返回?cái)?shù)據(jù)的操作既可以同時(shí)執(zhí)行,也可以順序執(zhí)行。

從所述第三存儲(chǔ)區(qū)讀取所命中的數(shù)據(jù)后,按照預(yù)設(shè)順序從nvm中進(jìn)行數(shù)據(jù)預(yù)取,并將預(yù)取到的數(shù)據(jù)存儲(chǔ)在所述第三存儲(chǔ)區(qū)中,即通過(guò)數(shù)據(jù)預(yù)取更新所述第三存儲(chǔ)區(qū)。

需要說(shuō)明的是,在具體實(shí)施中,所述預(yù)設(shè)順序作為待評(píng)估的cache的一配置參數(shù),可以在對(duì)所述待評(píng)估的cache進(jìn)行模擬之前預(yù)先獲取到。比如, 所述預(yù)設(shè)順序可以為:在所訪問(wèn)存儲(chǔ)地址上加1。

步驟507,從所述nvm中讀取對(duì)應(yīng)的數(shù)據(jù)并返回,以及更新所述第三存儲(chǔ)區(qū)中存儲(chǔ)的信息。

在具體實(shí)施中,所述存儲(chǔ)地址在所述第三存儲(chǔ)區(qū)中未命中時(shí),表示所述存儲(chǔ)地址在所述第三存儲(chǔ)區(qū)中缺失,此時(shí),從所述nvm中讀取對(duì)應(yīng)的數(shù)據(jù)并返回至mcu,并更新所述第三存儲(chǔ)區(qū)中存儲(chǔ)的信息,也就是將從nvm中讀取的數(shù)據(jù)寫(xiě)入至所述第三存儲(chǔ)區(qū)。

為了使本領(lǐng)域技術(shù)人員更好地理解和實(shí)現(xiàn)本發(fā)明,下面結(jié)合圖2,對(duì)上述緩存模擬過(guò)程的工作原理進(jìn)行詳細(xì)描述。

如圖6所示,以所述待評(píng)估的緩存的相聯(lián)度為2、nvm為flash為例,所述第一存儲(chǔ)區(qū)包括兩個(gè)組,每組中分別存儲(chǔ)若干個(gè)存儲(chǔ)地址的標(biāo)識(shí)信息tag及對(duì)應(yīng)的使用頻度信息repinfo。第二存儲(chǔ)區(qū)中包括兩個(gè)組,每組中存儲(chǔ)的數(shù)據(jù)與所述第一存儲(chǔ)區(qū)中各組所存儲(chǔ)的存儲(chǔ)地址的標(biāo)識(shí)信息對(duì)應(yīng)。

接收到mcu發(fā)送的待訪問(wèn)數(shù)據(jù)的存儲(chǔ)地址addr后,對(duì)所述存儲(chǔ)地址addr進(jìn)行劃分,分別獲得對(duì)應(yīng)的標(biāo)識(shí)信息tag、地址索引信息index及偏移信息offset。根據(jù)所述地址索引信息index搜索第一存儲(chǔ)區(qū),并判斷所述存儲(chǔ)地址addr是否在所述第一存儲(chǔ)區(qū)中命中。同時(shí)讀取所述第二存儲(chǔ)區(qū)。若在第一存儲(chǔ)區(qū)中命中,則從第二存儲(chǔ)區(qū)中搜索到的數(shù)據(jù)中選擇一個(gè)并返回至mcu,否則搜索第三存儲(chǔ)區(qū)中存儲(chǔ)的信息。

若在第三存儲(chǔ)區(qū)中命中,則直接從第三存儲(chǔ)區(qū)中讀取相應(yīng)的數(shù)據(jù)并返回至mcu,否則從flash中讀取相應(yīng)的數(shù)據(jù)并返回至mcu。

由上述內(nèi)容可以看出,本發(fā)明實(shí)施例中的緩存模擬方法中,由于該緩存方法可以給出在各存儲(chǔ)區(qū)命中所需的時(shí)間,進(jìn)而可以計(jì)算出存儲(chǔ)系統(tǒng)的平均訪存時(shí)間,該指標(biāo)反映了待評(píng)估的cache的真實(shí)加速效果,因此更有利于準(zhǔn)確地進(jìn)行緩存性能的估計(jì)。

在本發(fā)明的另一實(shí)施例中,可以參照?qǐng)D7示出的緩存的模擬方法,對(duì)本發(fā)明實(shí)施例中所述待評(píng)估的緩存訪問(wèn)所述待訪問(wèn)數(shù)據(jù)進(jìn)行模擬,所述方法可以包括如下步驟:

步驟701,獲取待評(píng)估的緩存的配置參數(shù)。

步驟702,對(duì)所述存儲(chǔ)地址進(jìn)行劃分,獲得所述存儲(chǔ)地址對(duì)應(yīng)的緩存塊的地址信息。

需要說(shuō)明的是,在具體實(shí)施中,步驟701及702可以分別參照上述對(duì)步驟501及502的描述進(jìn)行實(shí)施,此處不再贅述。

步驟703,根據(jù)所述存儲(chǔ)地址對(duì)應(yīng)的緩存塊的地址信息搜索所述第四存儲(chǔ)區(qū),并根據(jù)搜索結(jié)果判斷所述存儲(chǔ)地址在所述第四存儲(chǔ)區(qū)中是否命中。

在具體實(shí)施中,所述第四存儲(chǔ)區(qū)適于存儲(chǔ)前一次在所述第一存儲(chǔ)區(qū)中命中時(shí)所對(duì)應(yīng)的cache塊的地址信息。搜索所述第四存儲(chǔ)區(qū),獲得前一次在所述第一存儲(chǔ)區(qū)中命中時(shí)對(duì)應(yīng)的cache塊的地址信息,并將其與所述存儲(chǔ)地址對(duì)應(yīng)的緩存塊的地址信息進(jìn)行比較。若二者相同,則所述存儲(chǔ)地址在所述第四存儲(chǔ)區(qū)中命中,否則未命中。

當(dāng)所述存儲(chǔ)地址在所述第四存儲(chǔ)區(qū)中命中時(shí),執(zhí)行步驟704,否則執(zhí)行步驟705。

步驟704,從所述第二存儲(chǔ)區(qū)中讀取對(duì)應(yīng)的數(shù)據(jù)并返回。

由于mcu訪問(wèn)前一次在所述第一存儲(chǔ)區(qū)中命中的存儲(chǔ)地址的頻度較高,因此,在搜索第一存儲(chǔ)區(qū)之前,通過(guò)先判斷所述存儲(chǔ)地址在所述第一存儲(chǔ)區(qū)中是否命中,且在命中時(shí),直接從第二存儲(chǔ)區(qū)中讀取對(duì)應(yīng)的數(shù)據(jù)并返回,可以有效減少對(duì)第三存儲(chǔ)區(qū)及第一存儲(chǔ)區(qū)的讀取次數(shù)。

步驟705,根據(jù)所述存儲(chǔ)地址對(duì)應(yīng)的緩存塊的地址信息,搜索第一存儲(chǔ)區(qū),并根據(jù)搜索結(jié)果判斷所述存儲(chǔ)地址在所述第一存儲(chǔ)區(qū)中是否命中。

當(dāng)所述存儲(chǔ)地址在所述第一存儲(chǔ)區(qū)中命中時(shí),執(zhí)行步驟706,否則執(zhí)行步驟707。

步驟706,更新所述第一存儲(chǔ)區(qū)及第四存儲(chǔ)區(qū)中存儲(chǔ)的信息,以及從第二存儲(chǔ)區(qū)中讀取對(duì)應(yīng)數(shù)據(jù)并返回。

需要說(shuō)明的是,在本發(fā)明的實(shí)施例中,當(dāng)所述存儲(chǔ)地址在所述第一存儲(chǔ)區(qū)中命中時(shí),除更新所述第一存儲(chǔ)區(qū)外,還要更新所述第四存儲(chǔ)區(qū),以使得 所述第四存儲(chǔ)區(qū)中所存儲(chǔ)的地址信息始終為前一次在所述第一存儲(chǔ)區(qū)中命中的地址信息。

步驟707,根據(jù)所述緩存塊的地址信息搜索第三存儲(chǔ)區(qū)中存儲(chǔ)的信息,并根據(jù)搜索結(jié)果判斷所述存儲(chǔ)地址在所述第三存儲(chǔ)區(qū)中是否命中。

當(dāng)所述存儲(chǔ)地址在所述第三存儲(chǔ)區(qū)中命中時(shí),執(zhí)行步驟708,否則執(zhí)行步驟709。

步驟708,更新所述第一存儲(chǔ)區(qū)、第二存儲(chǔ)區(qū)及第四存儲(chǔ)區(qū)中存儲(chǔ)的信息,從所述第三存儲(chǔ)區(qū)中讀取對(duì)應(yīng)的數(shù)據(jù)并返回。

需要說(shuō)明的是,在本發(fā)明的實(shí)施例中,當(dāng)所述存儲(chǔ)地址在所述第三存儲(chǔ)區(qū)中命中時(shí),除更新所述第一存儲(chǔ)區(qū)及第二存儲(chǔ)區(qū)外,還要更新所述第四存儲(chǔ)區(qū),以使得所述第四存儲(chǔ)區(qū)中所存儲(chǔ)的地址信息始終為前一次在所述第一存儲(chǔ)區(qū)中命中的地址信息。

步驟709,從所述nvm中讀取對(duì)應(yīng)的數(shù)據(jù)并返回,以及更新所述第三存儲(chǔ)區(qū)中存儲(chǔ)的信息。

需要說(shuō)明的是,在具體實(shí)施中,可以分別參照上述對(duì)步驟關(guān)于步驟503~507的描述實(shí)施步驟705~709,此處不再贅述。

為了使本領(lǐng)域技術(shù)人員更好地理解和實(shí)現(xiàn)本發(fā)明,下面結(jié)合圖8,對(duì)上述緩存模擬過(guò)程的工作原理進(jìn)行詳細(xì)描述。

如圖8所示,以所述待評(píng)估的cache的相聯(lián)度為4、nvm為flash為例,所述第一存儲(chǔ)區(qū)包括4個(gè)組,每組中分別存儲(chǔ)若干個(gè)存儲(chǔ)地址的標(biāo)識(shí)信息tag及對(duì)應(yīng)的使用頻度信息repinfo。第二存儲(chǔ)區(qū)中僅包括1個(gè)組,每組中存儲(chǔ)的數(shù)據(jù)與所述第一存儲(chǔ)區(qū)中各組所存儲(chǔ)的存儲(chǔ)地址的標(biāo)識(shí)信息對(duì)應(yīng)。

接收到mcu發(fā)送的待訪問(wèn)數(shù)據(jù)的存儲(chǔ)地址addr后,對(duì)所述存儲(chǔ)地址addr進(jìn)行劃分,分別獲得對(duì)應(yīng)的標(biāo)識(shí)信息tag、地址索引信息index及偏移信息offset。

根據(jù)所述地址索引信息index搜索第四存儲(chǔ)區(qū),并判斷所述存儲(chǔ)地址在所述第四存儲(chǔ)區(qū)是否命中。若在所述第四存儲(chǔ)區(qū)命中,則從所述第二存儲(chǔ)區(qū)中 搜索相應(yīng)的數(shù)據(jù)并返回至mcu,否則根據(jù)所述地址索引信息index搜索第一存儲(chǔ)區(qū)。

判斷所述存儲(chǔ)地址addr是否在所述第一存儲(chǔ)區(qū)中命中,若在第一存儲(chǔ)區(qū)中命中,則從第二存儲(chǔ)區(qū)中搜索相應(yīng)的數(shù)據(jù)并返回至mcu,否則搜索第三存儲(chǔ)區(qū)中存儲(chǔ)的信息。

若在第三存儲(chǔ)區(qū)中命中,則直接從第三存儲(chǔ)區(qū)中讀取相應(yīng)的數(shù)據(jù)并返回至mcu,否則從flash中讀取相應(yīng)的數(shù)據(jù)并返回至mcu。

由上述內(nèi)容可知,通過(guò)設(shè)置第四存儲(chǔ)區(qū),在對(duì)待訪問(wèn)數(shù)據(jù)的存儲(chǔ)地址進(jìn)行劃分后,先判斷所述存儲(chǔ)地址在所述第四存儲(chǔ)區(qū)中是否命中,再依次判斷在第一存儲(chǔ)區(qū)及第三存儲(chǔ)區(qū)中是否命中,可以有效減少第一存儲(chǔ)區(qū)及第二存儲(chǔ)區(qū)的讀取次數(shù),降低cache模擬的功耗。并且,由于該緩存方法可以給出在各存儲(chǔ)區(qū)命中所需的時(shí)間,進(jìn)而可以計(jì)算出待評(píng)估的cache的平均訪存時(shí)間,該指標(biāo)反映了待評(píng)估的cache的真實(shí)加速效果,因此更有利于準(zhǔn)確地進(jìn)行緩存性能的估計(jì)。

需要說(shuō)明的是,在具體實(shí)施中,還可以采用其它緩存模擬方法來(lái)模擬待評(píng)估的cache的工作流程,具體不受限制,只要根據(jù)模擬的工作流程可以計(jì)算得到所述各配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的平均訪存時(shí)間??梢岳斫獾氖牵唧w無(wú)論采用何種方法來(lái)模擬待評(píng)估的cache的工作流程,均不構(gòu)成對(duì)本發(fā)明的限制,且均在本發(fā)明的保護(hù)范圍之內(nèi)。

為了使本領(lǐng)域技術(shù)人員更好地理解和實(shí)現(xiàn)本發(fā)明,以下對(duì)上述方法對(duì)應(yīng)的裝置進(jìn)行詳細(xì)描述。

參照?qǐng)D9,本發(fā)明實(shí)施例提供了一種緩存性能的評(píng)估裝置,所述裝置可以包括:獲取單元91,模擬單元92,計(jì)算單元93以及評(píng)估單元94。其中:

所述獲取單元91適于獲取n個(gè)待訪問(wèn)數(shù)據(jù)的存儲(chǔ)地址,n為自然數(shù);

所述模擬單元92適于調(diào)整待評(píng)估的緩存的各配置參數(shù),模擬所述待評(píng)估的緩存訪問(wèn)各所述待訪問(wèn)數(shù)據(jù);

所述計(jì)算單元93適于根據(jù)所述模擬子單元的模擬過(guò)程,獲得訪問(wèn)各所述 待訪問(wèn)數(shù)據(jù)時(shí),所述各配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的平均訪存時(shí)間;

所述評(píng)估單元94適于將所述各配置參數(shù)在不同數(shù)值下訪問(wèn)各所述待訪問(wèn)數(shù)據(jù)時(shí)的平均訪存時(shí)間作為評(píng)估結(jié)果并輸出。

在具體實(shí)施中,所述獲取單元91可以采用多種方式獲取所述待訪問(wèn)數(shù)據(jù)的存儲(chǔ)地址。在本發(fā)明的一實(shí)施例中,可以通過(guò)提取待評(píng)估的緩存在某一應(yīng)用場(chǎng)景下的地址訪存蹤跡信息(memoryaccesstrace,mat),來(lái)獲取待訪問(wèn)數(shù)據(jù)的存儲(chǔ)地址。其中,所述mat中不僅可以包括待訪問(wèn)數(shù)據(jù)及對(duì)應(yīng)的存儲(chǔ)地址,還包括mcu在nvm中訪問(wèn)所述待訪問(wèn)數(shù)據(jù)所需的時(shí)間,這樣在后續(xù)對(duì)待評(píng)估的緩存進(jìn)行性能評(píng)估時(shí),則無(wú)須再獲取mcu在nvm中訪問(wèn)所述待訪問(wèn)數(shù)據(jù)所需的訪問(wèn)時(shí)間,為后續(xù)進(jìn)行性能評(píng)估提供便利。

在具體實(shí)施中,所述待評(píng)估的緩存的配置參數(shù)包括:所述待評(píng)估的緩存的特征參數(shù)以及影響所述待評(píng)估的緩存性能的系統(tǒng)參數(shù)。其中,所述待評(píng)估的cache的特征參數(shù)可以包括:所述待評(píng)估的cache的容量、cache塊的大小,cache相聯(lián)度以及替換算法等。影響所述待評(píng)估的cache性能的系統(tǒng)參數(shù)可以包括:nvm、cache及mcu三者的訪問(wèn)時(shí)間、訪問(wèn)功耗及數(shù)據(jù)位寬等。當(dāng)然,所述配置參數(shù)還可以包括其他參數(shù),并不局限于上述實(shí)施例所給出的參數(shù)。并且,所獲取到的配置參數(shù)中可以?xún)H包含一個(gè)參數(shù),也可以包含兩個(gè)或兩個(gè)以上的參數(shù)。并且,所獲取到的配置參數(shù)與所述待評(píng)估的cache的應(yīng)用需求相對(duì)應(yīng)。

在具體實(shí)施中,所述模擬單元92對(duì)各配置參數(shù)調(diào)整的順序不受限制。另外,在對(duì)每個(gè)配置參數(shù)的調(diào)整過(guò)程中,調(diào)整的次數(shù)不受限制,并且各個(gè)配置參數(shù)調(diào)整的次數(shù)可以相同,也可以不同??梢岳斫獾氖牵{(diào)整的次數(shù)越多,所獲得的平均訪存時(shí)間也就越準(zhǔn)確,但性能評(píng)估所需時(shí)間也就越大,故本領(lǐng)域人員可以根據(jù)實(shí)際情況進(jìn)行設(shè)置。

在具體實(shí)施中,所述待評(píng)估的緩存包括至少一個(gè)存儲(chǔ)區(qū),所述至少一個(gè)存儲(chǔ)區(qū)分別用于存儲(chǔ)不同的信息,相應(yīng)地,所述計(jì)算單元93可以包括:第一計(jì)算子單元931,獲取子單元932,以及第二計(jì)算子單元933。其中:

所述第一計(jì)算子單元931,適于分別計(jì)算通過(guò)所述待評(píng)估的緩存訪問(wèn)各所 述待訪問(wèn)數(shù)據(jù)時(shí),所述各配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的各個(gè)所述存儲(chǔ)區(qū)的訪問(wèn)時(shí)間及命中率;

所述獲取子單元932適于獲取所述各配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的所述待評(píng)估的緩存的失效開(kāi)銷(xiāo);

所述第二計(jì)算子單元933適于根據(jù)所述各配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的所述待評(píng)估的緩存的命中率、訪問(wèn)時(shí)間及失效開(kāi)銷(xiāo),計(jì)算得到所述各配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的所述待評(píng)估的緩存的平均訪存時(shí)間。

在具體實(shí)施中,所述待評(píng)估的cache通常存在多個(gè)配置參數(shù),下面以待評(píng)估的cache為m1,nvm為m2為例,對(duì)所述第二計(jì)算子單元933每個(gè)配置參數(shù)對(duì)應(yīng)的平均訪存時(shí)間的具體計(jì)算過(guò)程進(jìn)行詳細(xì)說(shuō)明:

通常情況下,所述平均訪存時(shí)間t=m1命中率*m1訪問(wèn)時(shí)間+m2命中率*m2訪問(wèn)時(shí)間,其中,m1命中率即mcu在待評(píng)估的cache中命中待訪問(wèn)數(shù)據(jù)的概率,m1訪問(wèn)時(shí)間即mcu在待評(píng)估的cache中訪問(wèn)數(shù)據(jù)的時(shí)間,m2命中率即mcu在nvm中命中待訪問(wèn)數(shù)據(jù)的概率,m2訪問(wèn)時(shí)間即mcu在nvm中訪問(wèn)數(shù)據(jù)的時(shí)間。

其中,m2命中率=1-m1命中率=m1缺失率,m2訪問(wèn)時(shí)間=m1訪問(wèn)時(shí)間+m2到m1調(diào)入數(shù)據(jù)的時(shí)間,而m2到m1調(diào)入數(shù)據(jù)的時(shí)間=失效開(kāi)銷(xiāo)t2,當(dāng)所述待評(píng)估的cache的配置參數(shù)及nvm確定時(shí),失效開(kāi)銷(xiāo)t2也是確定的因此,平均訪存時(shí)間t=m1訪問(wèn)時(shí)間+m1缺失率*失效開(kāi)銷(xiāo)t2。由此可以獲得各個(gè)配置參數(shù)對(duì)應(yīng)的平均訪存時(shí)間。

在具體實(shí)施中,所述待評(píng)估的cache通常包括一個(gè)以上的存儲(chǔ)區(qū),所述一個(gè)以上的存儲(chǔ)區(qū)分別用于存儲(chǔ)不同的信息,因此,m1訪問(wèn)時(shí)間及m1命中率或缺失率與所述待評(píng)估的cache中各個(gè)存儲(chǔ)區(qū)的訪問(wèn)時(shí)間或命中率相關(guān)。

以所述待評(píng)估的cache包括k個(gè)存儲(chǔ)區(qū)為例,k≥1,且k為整數(shù),在獲得某一配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的平均訪存時(shí)間時(shí),所述第一計(jì)算子單元931可以先分別計(jì)算通過(guò)所述待評(píng)估的cache訪問(wèn)各所述待訪問(wèn)數(shù)據(jù)時(shí),該配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的各個(gè)所述存儲(chǔ)區(qū)的訪問(wèn)時(shí)間ti及命中率pi,i≤k,再由所述獲取子單元932獲取該配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的所述待評(píng)估的 cache的失效開(kāi)銷(xiāo)t2,最后由所述第二計(jì)算子單元933根據(jù)訪問(wèn)時(shí)間ti、命中率pi以及失效開(kāi)銷(xiāo)t2,計(jì)算得到該配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的所述待評(píng)估的cache的平均訪存時(shí)間t,即t=∑ti+(1-∑pi)*t2。

每獲得一組所述待評(píng)估的cache的配置參數(shù),即按照上述的描述計(jì)算得到對(duì)應(yīng)的平均訪存時(shí)間。保持其它配置參數(shù)不變,調(diào)整其中一個(gè)配置參數(shù)時(shí),即可獲得被調(diào)整的配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的平均訪存時(shí)間。由此可以獲得各個(gè)配置參數(shù)在不同數(shù)值下對(duì)應(yīng)的平均訪存時(shí)間。

例如,在計(jì)算某一cache塊大小對(duì)應(yīng)的平均訪存時(shí)間t時(shí),所述第一計(jì)算子單元931可以先獲得mcu在所述待評(píng)估的cache各個(gè)存儲(chǔ)區(qū)的ti及命中率pi,再由所述獲取子單元932獲得所述待評(píng)估的cache的失效開(kāi)銷(xiāo)t2,最后由所述第二計(jì)算子單元933根據(jù)t=∑ti+(1-∑pi)*t2,計(jì)算得到該cache塊大小對(duì)應(yīng)的平均訪存時(shí)間t。每次調(diào)整cache塊大小后,均按照上述實(shí)施例中的描述進(jìn)行計(jì)算,即可獲得cache塊大小在不同數(shù)值下對(duì)應(yīng)的平均訪存時(shí)間。

由于所述平均訪存時(shí)間不僅與緩存的命中率相關(guān),還與緩存的訪問(wèn)時(shí)間及失效開(kāi)銷(xiāo)等特征參數(shù)相關(guān),故平均訪存時(shí)間可以更加真實(shí)地反映緩存的真實(shí)性能,利用平均訪存時(shí)間來(lái)評(píng)估緩存的性能的準(zhǔn)確性也就更高。

在具體實(shí)施中,所述模擬單元92適于對(duì)所述待評(píng)估的緩存訪問(wèn)其中任一所述待訪問(wèn)數(shù)據(jù)進(jìn)行模擬,直至所述待評(píng)估的緩存訪問(wèn)n個(gè)所述待訪問(wèn)數(shù)據(jù)。

在本發(fā)明的一實(shí)施例中,如圖10所示,所述模擬單元92可以包括:地址劃分子單元101,存儲(chǔ)子單元102,第一處理子單元103以及第一執(zhí)行子單元104。其中:

所述地址劃分子單元101適于當(dāng)獲取到所述待評(píng)估的緩存的配置參數(shù)時(shí),對(duì)所述存儲(chǔ)地址進(jìn)行劃分,獲得所述存儲(chǔ)地址對(duì)應(yīng)的緩存塊的地址信息;

所述存儲(chǔ)子單元包括:第一存儲(chǔ)區(qū)1021,適于存儲(chǔ)存儲(chǔ)地址的標(biāo)識(shí)信息以及對(duì)應(yīng)的使用頻度信息,所述第一存儲(chǔ)區(qū)所存儲(chǔ)的存儲(chǔ)地址的使用頻度均大于預(yù)設(shè)頻度;

所述第一處理子單元103適于根據(jù)所述存儲(chǔ)地址對(duì)應(yīng)的緩存塊的地址信 息,搜索第一存儲(chǔ)區(qū)1021,并根據(jù)搜索結(jié)果判斷所述存儲(chǔ)地址在所述第一存儲(chǔ)區(qū)1021中是否命中;

所述第一執(zhí)行子單元104適于根據(jù)所述存儲(chǔ)地址在所述第一存儲(chǔ)區(qū)1021中是否命中的判斷結(jié)果,獲取相應(yīng)的數(shù)據(jù)并返回。

在具體實(shí)施中,所述存儲(chǔ)子單元還包括:第二存儲(chǔ)區(qū)1022,適于存儲(chǔ)與所述第一存儲(chǔ)區(qū)1021所存儲(chǔ)的存儲(chǔ)地址對(duì)應(yīng)的數(shù)據(jù);

所述第一執(zhí)行子單元104包括:第一執(zhí)行模塊1041,適于更新所述第一存儲(chǔ)區(qū)1021中存儲(chǔ)的信息,以及從所述第二存儲(chǔ)區(qū)1022中讀取對(duì)應(yīng)數(shù)據(jù)并返回。

在具體實(shí)施中,所述存儲(chǔ)子單元102還包括:第三存儲(chǔ)區(qū)1023,適于存儲(chǔ)預(yù)取的數(shù)據(jù)及對(duì)應(yīng)的緩存塊的地址信息;

所述第一執(zhí)行子單元104包括:第一處理模塊1042以及第二執(zhí)行模塊1043,其中:

所述第一處理模塊1042適于當(dāng)所述存儲(chǔ)地址在所述第一存儲(chǔ)區(qū)1021中未命中時(shí),根據(jù)所述緩存塊的地址信息搜索所述第三存儲(chǔ)區(qū)1023中存儲(chǔ)的信息;根據(jù)搜索結(jié)果判斷所述存儲(chǔ)地址在所述第三存儲(chǔ)區(qū)1023中是否命中;

所述第二執(zhí)行模塊1043,適于根據(jù)所述存儲(chǔ)地址在所述第三存儲(chǔ)區(qū)1023中是否命中的判斷結(jié)果,獲取相應(yīng)的數(shù)據(jù)并返回。

在具體實(shí)施中,所述第二執(zhí)行模塊1043包括:

第一執(zhí)行子模塊1043a,適于當(dāng)所述存儲(chǔ)地址在所述第三存儲(chǔ)區(qū)1023中命中時(shí),更新所述第一存儲(chǔ)區(qū)1021及第二存儲(chǔ)區(qū)1022中存儲(chǔ)的信息,從所述第三存儲(chǔ)區(qū)1023中讀取對(duì)應(yīng)的數(shù)據(jù)并返回;按照預(yù)設(shè)順序從nvm中進(jìn)行數(shù)據(jù)預(yù)取,并將預(yù)取到的數(shù)據(jù)存儲(chǔ)在所述第三存儲(chǔ)區(qū)1023中;

第二執(zhí)行子模塊1043b,適于當(dāng)所述存儲(chǔ)地址在所述第三存儲(chǔ)區(qū)1023中未命中時(shí),從所述nvm中讀取對(duì)應(yīng)的數(shù)據(jù)并返回,以及更新所述第三存儲(chǔ)區(qū)1023中存儲(chǔ)的信息。

在具體實(shí)施中,所述第二執(zhí)行子模塊1043b適于當(dāng)所述第一存儲(chǔ)區(qū)1021 的對(duì)應(yīng)位置處均已存儲(chǔ)相應(yīng)的信息時(shí),采用如下步驟更新所述第一存儲(chǔ)區(qū)1021:

根據(jù)所述第一存儲(chǔ)區(qū)1021中各緩存塊的使用頻度信息,按照預(yù)先獲取到的替換算法,對(duì)所述第一存儲(chǔ)區(qū)1021的緩存塊進(jìn)行替換,將在所述第三存儲(chǔ)區(qū)1023中命中的緩存塊的標(biāo)識(shí)信息以及對(duì)應(yīng)的使用頻度信息寫(xiě)入至被替換的位置。

在具體實(shí)施中,所述緩存塊的地址信息包括:所述緩存塊的標(biāo)識(shí)信息及地址索引信息。

由上述內(nèi)容可以看出,采用上述實(shí)施例中所述的模擬裝置進(jìn)行緩存性能評(píng)估時(shí),可以計(jì)算得到待評(píng)估的緩存的各個(gè)配置參數(shù)對(duì)應(yīng)的平均訪存時(shí)間,進(jìn)而根據(jù)各個(gè)配置參數(shù)的平均訪存時(shí)間評(píng)估該緩存的性能,提高緩存性能評(píng)估的準(zhǔn)確性。

在本發(fā)明的另一實(shí)施例中,參照?qǐng)D11,相對(duì)于圖10示出的模擬單元的實(shí)施例,所述存儲(chǔ)子單元102還包括:第四存儲(chǔ)區(qū)1024,適于存儲(chǔ)前一次在所述第一存儲(chǔ)區(qū)1021中命中時(shí)所對(duì)應(yīng)的緩存塊的地址信息;

所述模擬單元92還包括:第二處理子單元105及第二執(zhí)行子單元106。其中:

所述第二處理子單元105適于在所述根據(jù)所述存儲(chǔ)地址對(duì)應(yīng)的緩存塊的地址信息,搜索第一存儲(chǔ)區(qū)1021之前,根據(jù)所述存儲(chǔ)地址對(duì)應(yīng)的緩存塊的地址信息搜索所述第四存儲(chǔ)區(qū)1024,判斷所述存儲(chǔ)地址在所述第四存儲(chǔ)區(qū)1024中是否命中;

所述第二執(zhí)行子單元106適于當(dāng)所述存儲(chǔ)地址在所述第四存儲(chǔ)區(qū)1024中命中時(shí),從所述第二存儲(chǔ)區(qū)1022中讀取對(duì)應(yīng)的數(shù)據(jù)并返回。

相應(yīng)地,所述第一處理子單元103適于當(dāng)所述存儲(chǔ)地址在所述第四存儲(chǔ)區(qū)1024中未命中時(shí),搜索所述第一存儲(chǔ)區(qū)1021,并根據(jù)搜索結(jié)果判斷所述存儲(chǔ)地址在所述第一存儲(chǔ)區(qū)1021中是否命中。

需要說(shuō)明的是,在具體實(shí)施中,所述模擬單元92可以存在多種結(jié)構(gòu),并 不限于上述實(shí)施例中的結(jié)構(gòu)??梢岳斫獾氖牵瞿M單元92的結(jié)構(gòu)不同,對(duì)平均訪存時(shí)間的影響也就不同。但無(wú)論所述模擬單元92的具體結(jié)構(gòu)如何,均不夠成對(duì)本發(fā)明的限制,且均在本發(fā)明的保護(hù)范圍之內(nèi)。

為了使本領(lǐng)域人員更加清楚、直觀地理解和實(shí)現(xiàn)本發(fā)明,將不同模擬單元對(duì)平均訪存時(shí)間t的影響進(jìn)行了比對(duì)。

參照?qǐng)D10、11及12,以所述待評(píng)估的cache應(yīng)用在aes中,且被調(diào)整的參數(shù)為flash的延遲時(shí)間flashlatency為例,所述待評(píng)估的cache的配置參數(shù)為:cache容量=1024byte,cache塊的大?。?2byte,cache的相聯(lián)度為全相聯(lián),flash位寬=32bit。曲線1為mcu直接從flash中讀取數(shù)據(jù)所需的平均訪存時(shí)間曲線,曲線2、3及4為mcu經(jīng)模擬單元獲取待訪問(wèn)數(shù)據(jù)所需的平均訪存時(shí)間曲線。其中,曲線2為模擬單元中設(shè)置第一執(zhí)行子模塊1043a,但未設(shè)置第四存儲(chǔ)區(qū)1024時(shí),對(duì)應(yīng)的平均訪存時(shí)間曲線;曲線3為模擬單元中未設(shè)置第一執(zhí)行子模塊1043a、第一存儲(chǔ)區(qū)1021、第二存儲(chǔ)區(qū)1022及第三存儲(chǔ)區(qū)1023,僅設(shè)置有第四存儲(chǔ)區(qū)1024時(shí),所對(duì)應(yīng)的平均訪存時(shí)間曲線;曲線4為模擬單元中同時(shí)設(shè)置有第一執(zhí)行子模塊1043a、第一存儲(chǔ)區(qū)1021、第二存儲(chǔ)區(qū)1022、第三存儲(chǔ)區(qū)1023及第四存儲(chǔ)區(qū)1024時(shí),所對(duì)應(yīng)的平均訪存時(shí)間曲線。

從圖12中可以看出,在flash的延遲時(shí)間相同的情況下,曲線1對(duì)應(yīng)的平均訪存時(shí)間<曲線2對(duì)應(yīng)的平均訪存時(shí)間<曲線3對(duì)應(yīng)的平均訪存時(shí)間<曲線4對(duì)應(yīng)的平均訪存時(shí)間。也就是說(shuō),應(yīng)用本發(fā)明實(shí)施例中的模擬單元可以減小mcu訪問(wèn)數(shù)據(jù)時(shí)所需的平均訪存時(shí)間,并且,調(diào)整模擬單元92的結(jié)構(gòu),可以對(duì)平均訪存時(shí)間產(chǎn)生一定的影響,尤其第四存儲(chǔ)區(qū)1024的設(shè)置,使得mcu訪問(wèn)數(shù)據(jù)時(shí)所需的平均訪存時(shí)間最小。

由上述內(nèi)容可以看出,采用上述實(shí)施例中所述的模擬裝置進(jìn)行緩存性能評(píng)估時(shí),可以計(jì)算得到待評(píng)估的緩存的各個(gè)配置參數(shù)所對(duì)應(yīng)的平均訪存時(shí)間,進(jìn)而根據(jù)緩存的平均訪存時(shí)間評(píng)估該緩存的性能,提高緩存性能評(píng)估的準(zhǔn)確性。另外,相對(duì)于圖10中示出的緩存模擬裝置,可以有效減少第一存儲(chǔ)區(qū)及第二存儲(chǔ)區(qū)的讀取次數(shù),降低緩存模擬的功耗。

本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件來(lái)完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)可以包括:rom、ram、磁盤(pán)或光盤(pán)等。

雖然本發(fā)明披露如上,但本發(fā)明并非限定于此。任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),均可作各種更動(dòng)與修改,因此本發(fā)明的保護(hù)范圍應(yīng)當(dāng)以權(quán)利要求所限定的范圍為準(zhǔn)。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1