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

動(dòng)態(tài)頻率調(diào)整的制作方法與工藝

文檔序號(hào):12005964閱讀:227來源:國知局
動(dòng)態(tài)頻率調(diào)整的制作方法與工藝
本發(fā)明總體上涉及微處理器,尤其涉及微處理器中的動(dòng)態(tài)頻率調(diào)整。

背景技術(shù):
在今天的市場(chǎng)中,對(duì)使用較少功率的高性能計(jì)算設(shè)備有需求。一個(gè)實(shí)例是移動(dòng)設(shè)備,其可通過運(yùn)行來關(guān)閉用于聽音樂、瀏覽網(wǎng)頁或者看電影的電池電源。然而,新的高性能硬件解決方案可能比前一代方案耗費(fèi)更多功率。出現(xiàn)的片上系統(tǒng)(SoC)和三維集成電路(“3DIC”)設(shè)計(jì)尤其是這樣。因而,當(dāng)設(shè)計(jì)新的計(jì)算設(shè)備時(shí),用功率限制去平衡期望的性能會(huì)是有幫助的。硬件部件(例如CPU)可動(dòng)態(tài)改變它們的頻率以平衡性能和功耗。以低頻運(yùn)行可以降低功耗但是以犧牲性能為代價(jià),而以高頻運(yùn)行可提高性能但是消耗較多功率。這種動(dòng)態(tài)調(diào)整通常稱為動(dòng)態(tài)頻率調(diào)整(“DFS”)或者動(dòng)態(tài)電壓和頻率調(diào)整(“DVFS”)。

技術(shù)實(shí)現(xiàn)要素:
為了解決現(xiàn)有技術(shù)中所存在的問題,根據(jù)本發(fā)明的一個(gè)方面,提供了一種具有被編程以執(zhí)行進(jìn)程的處理器的計(jì)算機(jī),包括:處理單元仿真器;至少一個(gè)硬件部件仿真器;系統(tǒng)總線仿真器,與所述處理單元仿真器和所述至少一個(gè)硬件部件仿真器通信;以及總線監(jiān)控單元(BMU),被配置成監(jiān)控所述處理單元仿真器和所述至少一個(gè)硬件部件仿真器之間的通信量,所述BMU還被配置成在非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中記錄總線使用數(shù)據(jù),其中所述總線使用數(shù)據(jù)包括交易時(shí)間,所述交易時(shí)間表示所述至少一個(gè)硬件部件仿真器花費(fèi)在處理任務(wù)上的時(shí)間。在可選實(shí)施例中,所述處理單元仿真器是被配置成仿真硬件處理器的指令集仿真器(ISS)。在可選實(shí)施例中,所述BMU被配置成在所述非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中記錄多個(gè)交易時(shí)間,其中每一個(gè)交易時(shí)間都與一個(gè)硬件部件仿真器關(guān)聯(lián)。在可選實(shí)施例中,所述計(jì)算機(jī)環(huán)境仿真器基于所述交易時(shí)間周期性調(diào)節(jié)所述處理單元仿真器的頻率。在可選實(shí)施例中,所述計(jì)算機(jī)環(huán)境仿真器是硬件系統(tǒng)的電子系統(tǒng)級(jí)(ESL)設(shè)計(jì)。在可選實(shí)施例中,在交易級(jí)模型(TLM)中具體化所述ESL設(shè)計(jì)。在可選實(shí)施例中,所述系統(tǒng)總線仿真器是配置成將有效載荷從TLM發(fā)起端端傳輸?shù)絋LM目標(biāo)端的TLM總線。在可選實(shí)施例中,所述硬件系統(tǒng)的所述ESL設(shè)計(jì)是片上系統(tǒng)(SoC)的設(shè)計(jì)。在可選實(shí)施例中,所述處理器被配置成將總線使用數(shù)據(jù)寫入存儲(chǔ)在所述非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上的數(shù)據(jù)庫。根據(jù)本發(fā)明的另一個(gè)方面,還提供了一種方法,包括:為運(yùn)行在計(jì)算機(jī)仿真器上的多個(gè)應(yīng)用任務(wù)確定總運(yùn)行時(shí)間;基于所述應(yīng)用任務(wù)花費(fèi)在利用至少一個(gè)硬件部件仿真器上的時(shí)間確定第一交易時(shí)間,所述硬件部件仿真器不是處理單元仿真器;根據(jù)所述總運(yùn)行時(shí)間和所述第一交易時(shí)間計(jì)算第二交易時(shí)間;根據(jù)所述第二交易時(shí)間、所述第一交易時(shí)間以及總交易時(shí)間確定是否調(diào)節(jié)所述處理單元仿真器的頻率;以及調(diào)節(jié)所述處理單元仿真器的頻率。在可選實(shí)施例中,確定所述第一交易時(shí)間進(jìn)一步包括以下步驟:針對(duì)從發(fā)起端設(shè)備傳送到目標(biāo)端設(shè)備的第一有效載荷監(jiān)控系統(tǒng)總線仿真器;接收來自所述目標(biāo)端設(shè)備的第二有效載荷,其中所述第二有效載荷包含表示所述目標(biāo)端設(shè)備花費(fèi)在處理所述第一有效載荷上的時(shí)間的交易時(shí)間;將所述交易時(shí)間存儲(chǔ)到存儲(chǔ)器中;根據(jù)存儲(chǔ)在所述存儲(chǔ)器中的所述交易時(shí)間計(jì)算所述第一交易時(shí)間。在可選實(shí)施例中,確定所述第一交易時(shí)間進(jìn)一步包括以下步驟:針對(duì)從發(fā)起端設(shè)備傳送到目標(biāo)端設(shè)備的第一有效載荷監(jiān)控系統(tǒng)總線仿真器;記錄所述第一有效載荷傳送到存儲(chǔ)器中的時(shí)間;接收來自所述目標(biāo)端設(shè)備的第二有效載荷;計(jì)算所述第一有效載荷的提交時(shí)間和所述第二有效載荷的接收時(shí)間的差值;以及將所述差值作為所述第一交易時(shí)間存儲(chǔ)在存儲(chǔ)器中。在可選實(shí)施例中,基于所述第二交易時(shí)間和所述總交易時(shí)間之間的比值調(diào)節(jié)所述頻率。在可選實(shí)施例中,所述比值被用戶定義的數(shù)值偏移。在可選實(shí)施例中,如果當(dāng)前頻率相對(duì)于所述比值為低,則提高所述頻率。在可選實(shí)施例中,如果當(dāng)前頻率相對(duì)于所述比值為高,則降低所述頻率。根據(jù)本發(fā)明的又一個(gè)方面,提供了一種被編碼有程序代碼的非暫時(shí)性機(jī)器可讀存儲(chǔ)介質(zhì),當(dāng)所述程序代碼被處理器執(zhí)行時(shí),所述處理器執(zhí)行包括以下步驟的方法:建立被配置成仿真硬件環(huán)境的計(jì)算機(jī)仿真器,其中所述計(jì)算機(jī)仿真器包括至少一個(gè)高頻硬件部件仿真器和至少一個(gè)低頻硬件部件仿真器;在所述計(jì)算機(jī)仿真器上運(yùn)行至少一個(gè)計(jì)算機(jī)任務(wù);以及基于低頻硬件部件仿真器花費(fèi)在處理計(jì)算機(jī)任務(wù)上的時(shí)間來調(diào)節(jié)與高頻硬件部件仿真器關(guān)聯(lián)的仿真功率水平。在可選實(shí)施例中,所述至少一個(gè)高頻硬件部件仿真器是被配置成仿真硬件處理器的指令集仿真器(ISS)。在可選實(shí)施例中,所述計(jì)算機(jī)仿真器是硬件環(huán)境的電子系統(tǒng)級(jí)(ESL)設(shè)計(jì)。附圖說明圖1是通用計(jì)算設(shè)備被編程有軟件以形成負(fù)責(zé)電子系統(tǒng)級(jí)虛擬環(huán)境的特定目的工具的一個(gè)實(shí)例的框圖。圖2是可在電子系統(tǒng)級(jí)仿真而作為虛擬環(huán)境的硬件平臺(tái)圖。圖3描繪了在虛擬環(huán)境下運(yùn)行的多個(gè)計(jì)算機(jī)任務(wù)的狀態(tài)圖。圖4是用于動(dòng)態(tài)改變虛擬部件的虛擬頻率的方法。圖5是設(shè)計(jì)成便于動(dòng)態(tài)調(diào)節(jié)虛擬部件頻率的虛擬平臺(tái)的交易級(jí)模型。圖6是示范交易級(jí)模型中動(dòng)態(tài)頻率調(diào)整的流程圖。圖7示出了策略實(shí)施的一個(gè)實(shí)例。具體實(shí)施例結(jié)合被視為整個(gè)書面描述一部分的附圖閱讀本發(fā)明的示例性實(shí)施例。所描述的實(shí)施例包括在高頻硬件部件中的動(dòng)態(tài)頻率調(diào)整,以及具體地在虛擬環(huán)境中進(jìn)行頻率調(diào)整分析。工程師還可能發(fā)現(xiàn)渴望設(shè)計(jì)出能夠動(dòng)態(tài)改變他們硬件部件(例如微處理器或者其他具有嵌入式處理器的裝置)的頻率的計(jì)算機(jī)系統(tǒng)。頻率調(diào)整也稱為動(dòng)態(tài)頻率調(diào)整(“DFS”)或者動(dòng)態(tài)電壓和頻率調(diào)整(“DVFS”)。在各部件是輕負(fù)載或者沒有負(fù)載時(shí),降低部件的頻率的結(jié)果是可以節(jié)能。令人能期望的是,基于作為整體的系統(tǒng)趨勢(shì)而不是基于單一應(yīng)用的行為來調(diào)整該頻率。這樣的調(diào)整使得系統(tǒng)動(dòng)態(tài)了解新的功率分布,預(yù)期未來的性能需求,并因此調(diào)整頻率或者頻率-電壓組合。例如,在系統(tǒng)運(yùn)行多個(gè)應(yīng)用過程中,一些任務(wù)可以為I/O密集型而其他任務(wù)是CPU密集型。如果大多數(shù)或者所有任務(wù)是受I/O限制的(I/Obound),CPU可以以低頻運(yùn)行以在基本上不影響總系統(tǒng)系能的情況下保存功率。相反,如果大多數(shù)或者所有任務(wù)是受CPU限制的(CPUbound),CPU可以以高頻運(yùn)行以提高性能。如果任務(wù)是混合型的,使得一些任務(wù)是CPU密集型而其他任務(wù)是I/O密集型,CPU可以以高頻和低頻之間的一些頻率以平衡功耗和性能。在一些實(shí)施例中,動(dòng)態(tài)頻率調(diào)整包括關(guān)于具體應(yīng)用怎樣運(yùn)行的先驗(yàn)知識(shí)。例如,一個(gè)應(yīng)用可首先執(zhí)行I/O操作,并因而可指示CPU降低其頻率。然而,如果CPU密集型的第二應(yīng)用啟動(dòng),則新的應(yīng)用必須請(qǐng)求CPU相應(yīng)地調(diào)節(jié)頻率。因此,系統(tǒng)實(shí)時(shí)調(diào)節(jié)其本身而不預(yù)測(cè)未來性能。這導(dǎo)致為具體應(yīng)用優(yōu)化而不是為作為整體的系統(tǒng)優(yōu)化的調(diào)節(jié)。盡管功率分析(例如,DFS分析)通常在寄存器傳輸級(jí)(“RTL”)執(zhí)行,然而在電子系統(tǒng)級(jí)執(zhí)行功率分析可能是有益的。RTL可能執(zhí)行比較緩慢,因而在該級(jí)的分析可能需要復(fù)雜的計(jì)算、估算以及其他快捷方法。另外,如果在RTL層發(fā)現(xiàn)功率問題,修改設(shè)計(jì)可能會(huì)困難、耗時(shí)和成本昂貴。ESL為系統(tǒng)設(shè)計(jì)提供了虛擬環(huán)境。虛擬平臺(tái)可簡(jiǎn)化功率分析并且可提高設(shè)計(jì)修改的速度。例如,在一些實(shí)施例中,ESL允許設(shè)計(jì)的系統(tǒng)以每秒百萬周數(shù)(即頻率)工作。較高的周數(shù)可使工程師能在不需進(jìn)行復(fù)雜的計(jì)算和估算的情況下觀察系統(tǒng)功耗和性能影響。這可以降低人為誤差和不確定性的數(shù)量。該速度還允許多次仿真迭代以驗(yàn)證設(shè)計(jì)中的成功或者缺陷。如果要進(jìn)行設(shè)計(jì)修改,可通過程序來實(shí)現(xiàn)。另外或者可選地,ESL層的設(shè)計(jì)允許基本量的數(shù)據(jù)被收集和存儲(chǔ)以用于未來分析或者對(duì)比。圖1示出了能夠處理軟件的一般計(jì)算機(jī)系統(tǒng)10的一個(gè)實(shí)例,在該例子中計(jì)算機(jī)系統(tǒng)10被編程有軟件以形成負(fù)責(zé)ESL虛擬環(huán)境的特定目的工具。如圖1所示,在一些實(shí)施例中,計(jì)算設(shè)備10包括一個(gè)或者多個(gè)處理器,例如,處理器4。處理器4可以為任何中央處理器單元(“CPU”)、微處理器、微控制器或者用于執(zhí)行指令的計(jì)算設(shè)備或者電路,并且其連接至通信基礎(chǔ)設(shè)施6,例如,通信總線、交叉線(cross-overbar)或者網(wǎng)絡(luò)。下面基于該計(jì)算設(shè)備10描述各種軟件控制的實(shí)施例。在一些實(shí)施例中,計(jì)算設(shè)備10包括顯示接口8,其轉(zhuǎn)發(fā)來自通信基礎(chǔ)設(shè)施6(或者來自未示出的幀緩沖存儲(chǔ)器)的圖形、文本以及其他數(shù)據(jù),以在顯示器或者顯示單元11上顯示。計(jì)算機(jī)系統(tǒng)還包括主存儲(chǔ)器12(例如,隨機(jī)存取存儲(chǔ)器(RAM)),以及可選地包括輔助存儲(chǔ)器14。在一些實(shí)施例中,輔助存儲(chǔ)器14包括多個(gè)持久存儲(chǔ)器,例如,硬盤驅(qū)動(dòng)器16和/或可移動(dòng)存儲(chǔ)驅(qū)動(dòng)器18(如閃存驅(qū)動(dòng)器或者光學(xué)驅(qū)動(dòng)器等)??梢苿?dòng)存儲(chǔ)驅(qū)動(dòng)器18從可移動(dòng)存儲(chǔ)單元20讀取數(shù)據(jù)和/或?qū)?shù)據(jù)寫入可移動(dòng)存儲(chǔ)單元20??梢苿?dòng)存儲(chǔ)單元20代表可由可移動(dòng)存儲(chǔ)驅(qū)動(dòng)器18讀取或者寫入可移動(dòng)存儲(chǔ)驅(qū)動(dòng)器18的閃存驅(qū)動(dòng)器,光盤等。在一些實(shí)施例中,計(jì)算設(shè)備10還包括一個(gè)或者多個(gè)通信接口26,這使得軟件和數(shù)據(jù)能在計(jì)算設(shè)備10和外部設(shè)備(例如,主機(jī)或者服務(wù)器)之間傳送。一個(gè)或者多個(gè)通信接口26的實(shí)例包括但不限于調(diào)制解調(diào)器、網(wǎng)絡(luò)接口(例如,以太網(wǎng)卡或者無線網(wǎng)卡)、通訊端口、PC機(jī)內(nèi)存卡國際聯(lián)合會(huì)(PersonalComputerMemoryCardInternationalAssociation,PCMCIA)插槽和卡,一個(gè)或者多個(gè)個(gè)人組件互連高速(PersonalComponentInterconnectExpress,PCIExpress)插槽和卡,或者它們的任何組合。經(jīng)由通信接口26傳送的軟件和數(shù)據(jù)可以是信號(hào)形式,其可是電子、電磁、光學(xué)或者其他能夠被通信接口接收的信號(hào)。這些信號(hào)通過通信路徑或者信道提供給通信接口26??梢允褂秒娋€或者電纜、光纖、電話線、蜂窩鏈路、射頻(“RF”)鏈路或者其他通信信道實(shí)現(xiàn)所述信道。圖2是可在ELS仿真的物理平臺(tái)圖。物理平臺(tái)100可為SoC或者3DIC。平臺(tái)包括由系統(tǒng)處理的多個(gè)應(yīng)用任務(wù)101。另外,平臺(tái)100包括處理器102以及多個(gè)其他硬件部件。在一些實(shí)施例中,硬件部件包括顯卡104(“GFX”)、以太網(wǎng)105、直接存儲(chǔ)器存取106(“DMA”)、液晶顯示器(“LCD”)、閃存108、隨機(jī)存取存儲(chǔ)器(“RAM”)109以及L2緩存器111。硬件部件可進(jìn)一步分為高頻部件112和低頻部件113。在一些實(shí)施例中,處理器102和其他硬件部件通過系統(tǒng)總線114相互通信。物理平臺(tái)100可在電子系統(tǒng)級(jí)(ESL)仿真。這種仿真可在任何用軟件編程以形成特定目的處理器的通用計(jì)算機(jī)系統(tǒng)上運(yùn)行,例如圖1中描繪的系統(tǒng)。例如,在一些實(shí)施例中,圖2中描繪的處理器101體現(xiàn)為指令集仿真器(“ISS”)。其他硬件部件中的每一個(gè)都可類似地體現(xiàn)在虛擬部件中。這些虛擬部件可由處理器10組成,處理器10被配置有計(jì)算機(jī)軟件以仿真物理硬件部件104-108的功能。另外,應(yīng)用任務(wù)101可運(yùn)行在獨(dú)立于下層計(jì)算機(jī)系統(tǒng)的ESL仿真上。也就是,應(yīng)用任務(wù)101可被完全包括在內(nèi),并且不會(huì)意識(shí)到它們?cè)谔摂M的機(jī)器上運(yùn)行而不是在物理機(jī)器上運(yùn)行。在一些實(shí)施例中,應(yīng)用任務(wù)101被仿真應(yīng)用任務(wù)。在這種實(shí)施例中,任務(wù)的各個(gè)方面(例如,交易目的或者處理時(shí)間)可被預(yù)先確定。用戶可輸入這些方面,或者它們可由計(jì)算機(jī)生成。例如,想要仿真視頻游戲的用戶可將仿真的應(yīng)用任務(wù)設(shè)置為CPU或者GFX密集型。同樣地,用戶可通過指定一個(gè)或者多個(gè)任務(wù)來仿真數(shù)據(jù)存儲(chǔ)到閃存中從而模擬I/O交易。這種實(shí)施例使得在不需運(yùn)行實(shí)際應(yīng)用的情況下進(jìn)行功率和頻率分析。例如,每個(gè)仿真任務(wù)或者交易都可根據(jù)預(yù)先確定的概率分布生成、并加入到系統(tǒng)以及被分配交易時(shí)間。所述任務(wù)在其交易時(shí)間期間還可先占用處理器和/或系統(tǒng)總線或者其他資源。因此,在不執(zhí)行信號(hào)級(jí)的每個(gè)任務(wù)的所有步驟的情況下,可監(jiān)控任務(wù)經(jīng)歷的排隊(duì)延遲以及資源使用。圖3描繪了在虛擬環(huán)境(例如,圖2中描繪的物理平臺(tái)的ESL仿真)上運(yùn)行的多個(gè)計(jì)算機(jī)任務(wù)的狀態(tài)圖。盡管圖3的實(shí)例中僅示出了三個(gè)任務(wù),然而其他實(shí)施例具有任何數(shù)量的任務(wù)。任務(wù)DFS是被配置成執(zhí)行圖3中描繪的方法的應(yīng)用任務(wù)。任務(wù)A和任務(wù)B可以為任何其他真實(shí)或者仿真的應(yīng)用任務(wù)。時(shí)間沿x軸表示,x軸被分成時(shí)間片t0-t6。盡管圖3的狀態(tài)圖在超過t6后沒有繼續(xù),然而任務(wù)可運(yùn)行直到終止,因此可存在無限制數(shù)量的時(shí)間片。圖4是動(dòng)態(tài)改變虛擬部件頻率的計(jì)算機(jī)實(shí)現(xiàn)方法的一個(gè)實(shí)例流程圖。所述方法結(jié)合圖3討論并且可通過任務(wù)DFS實(shí)現(xiàn)。為了進(jìn)行討論,假設(shè)圖4中公開的方法正在改變虛擬處理器的頻率。在一些實(shí)施例中,其他虛擬部件也可使它們各自的頻率改變。在本實(shí)例中,改變是虛擬頻率變化,而不是下層的物理處理器的實(shí)際頻率變化。也就是,將頻率變化作為仿真的輸入處理。在步驟300,確定多個(gè)應(yīng)用任務(wù)的總運(yùn)行時(shí)間。在一些實(shí)施例中,運(yùn)行時(shí)間是自虛擬處理器的頻率最后調(diào)節(jié)以后的時(shí)間。在圖3中,第一總運(yùn)行時(shí)間表示為ΔT0并且第二總運(yùn)行時(shí)間由ΔT1表示。圖3的任務(wù)可繼續(xù)運(yùn)行直到它們終止,因而可以有ΔTn+1總運(yùn)行時(shí)間??傔\(yùn)行時(shí)間ΔT0和ΔT1表示任務(wù)A和任務(wù)B花費(fèi)在運(yùn)行狀態(tài)的時(shí)間。ΔT1另外或者可選地表示自任務(wù)DFS最后處于運(yùn)行狀態(tài)以后的時(shí)間。在一種實(shí)施例中,總運(yùn)行時(shí)間是任務(wù)DFS花費(fèi)在就緒、阻塞或者等待狀態(tài)的時(shí)間。可選地或者另外,總運(yùn)行時(shí)間包括任務(wù)DFS花費(fèi)在運(yùn)行狀態(tài)的時(shí)間,而不是僅任務(wù)A和任務(wù)B在運(yùn)行狀態(tài)中的時(shí)間。在步驟302,確定第一交易時(shí)間。第一交易時(shí)間可以為一組進(jìn)程(例如,任務(wù)A和任務(wù)B)花費(fèi)在利用虛擬部件而不是虛擬處理器的時(shí)間。在一種實(shí)施例中,第一交易時(shí)間是花費(fèi)在利用被指定為低頻的虛擬部件(例如,閃存108或者LCD107的虛擬表示)的時(shí)間量??蛇x地或者另外,第一交易時(shí)間是花費(fèi)在執(zhí)行I/O操作的時(shí)間。在一些實(shí)施例中,步驟302是當(dāng)任務(wù)DFS處于運(yùn)行狀態(tài)時(shí)(例如,在時(shí)間片t2-t3和t5-t6)由任務(wù)DFS執(zhí)行。在步驟304,根據(jù)第一交易時(shí)間和總的交易時(shí)間計(jì)算第二交易時(shí)間。第二交易時(shí)間是總的交易時(shí)間減去第一交易時(shí)間。在一種實(shí)施例中,第二交易時(shí)間是應(yīng)用任務(wù)(例如,任務(wù)A和任務(wù)B)花費(fèi)在利用虛擬處理器的時(shí)間。可選地或者另外,第二交易時(shí)間是花費(fèi)在利用具有可調(diào)頻率的任何部件的時(shí)間。步驟306,根據(jù)交易時(shí)間確定是否有必要對(duì)虛擬處理器調(diào)節(jié)功率。這種確定基于第二交易時(shí)間和總交易時(shí)間值。例如,計(jì)算第二交易時(shí)間與總時(shí)間的比值。高比值將歸因于主要利用虛擬處理器的應(yīng)用任務(wù),因?yàn)榈诙灰讜r(shí)間接近總運(yùn)行時(shí)間。相反,如果進(jìn)程大部分是受I/O限制的則會(huì)得出低比值,因?yàn)榈诙灰讜r(shí)間會(huì)遠(yuǎn)小于總運(yùn)行時(shí)間。然后,將產(chǎn)生的比值與虛擬處理器的當(dāng)前頻率相比較以確定是否有必要進(jìn)行調(diào)節(jié)??墒褂冒ǖ谝唤灰讜r(shí)間、第二交易時(shí)間或者總交易時(shí)間的任何其他比值。最后,在308,進(jìn)行調(diào)節(jié)。如果在步驟306中計(jì)算比值,比值還可代表調(diào)節(jié)的方向。例如,由于進(jìn)程是CPU密集型的,相對(duì)于當(dāng)前頻率的高比值可導(dǎo)致正向調(diào)節(jié)。因此,增加頻率可提高這些進(jìn)程的性能。由于進(jìn)程是I/O密集型的,低比值可導(dǎo)致負(fù)向調(diào)節(jié)。在CPU不使用時(shí),降低CPU的頻率可保存能量,并且很少或者沒有可觀察到性能影響。如果比值基本上與當(dāng)前頻率水平相似,可以不調(diào)整或者進(jìn)行小的調(diào)整。例如,如果任務(wù)是受CPU限制的,并且CPU已經(jīng)在高頻下運(yùn)行,進(jìn)一步提高頻率是不可能的或者無益的。圖5是設(shè)計(jì)成便于圖4方法的圖2的物理平臺(tái)的交易級(jí)模型(TLM)。圖5由與圖1中的硬件部件相對(duì)應(yīng)的多個(gè)TLM元件組成。發(fā)起端400和401分別表示處理器102和DMA106。系統(tǒng)總線114由TLM總線403表示。其他虛擬部件GFX104、以太網(wǎng)105、DMA106、LCD107、Flash108以及RAM109由目標(biāo)端404表示,其中每個(gè)目標(biāo)端404具有唯一的目標(biāo)端ID。TLM總線403進(jìn)一步包括總線監(jiān)控單元(BMU)405和路由器406。有效載荷407表示由系統(tǒng)中的給定目標(biāo)端處理的部分應(yīng)用任務(wù)。應(yīng)用任務(wù)(例如,任務(wù)A和任務(wù)B)可作為由發(fā)起端400和401控制的TLM交易處理。當(dāng)在運(yùn)行狀態(tài)時(shí),部分應(yīng)用任務(wù)可被置放在TLM有效載荷中,例如,有效載荷407。有效載荷可被提交到總線403,有效載荷在總線403被路由器406指向到用于處理的合適目標(biāo)端。在處理之后,所述目標(biāo)端可以將有效載荷放回到TLM總線403上,有效載荷在TLM總線403上被返回發(fā)起端。BMU405可監(jiān)控來自發(fā)起端400和401的所有通信量。應(yīng)當(dāng)理解,圖5中描繪的有效載荷在每個(gè)表示形式中是相同的有效載荷。有效載荷的移動(dòng)在幾個(gè)位置中用雙頭箭頭表示,以說明通過系統(tǒng)的移動(dòng)。雙頭箭頭表示從發(fā)起端401到目標(biāo)端的路徑以及再回來的路徑。BMU405被配置成監(jiān)控TLM總線403上的通信量。當(dāng)發(fā)起端400或者401將有效載荷407提交給目標(biāo)端404時(shí),傳輸?shù)挠行лd荷經(jīng)過BMU405。同樣地,當(dāng)目標(biāo)端將有效載荷返回給發(fā)起端時(shí),有效載荷可經(jīng)過BMU回傳。有效載荷可包含處理該有效載荷的目標(biāo)端的目標(biāo)ID。因此。BMU可監(jiān)控總線上所有通信量,除了通信的源端和目的地之外。BMU可被用于監(jiān)控目標(biāo)端的交易時(shí)間。例如,當(dāng)有效載荷由發(fā)起端提交時(shí),BMU可記錄提交時(shí)間。當(dāng)目標(biāo)端用有效載荷響應(yīng)時(shí),BMU可記錄響應(yīng)時(shí)間。根據(jù)這兩個(gè)時(shí)間戳,BMU可確定目標(biāo)端處理有效載荷花費(fèi)的總時(shí)間。可選地或者另外,目標(biāo)端計(jì)算它本身的處理時(shí)間并且在響應(yīng)有效載荷中包括該處理時(shí)間。在這種實(shí)施例中,BMU直接從有效載荷獲取處理時(shí)間而不進(jìn)行任何另外的計(jì)算。BMU可以各種有用的格式將交易時(shí)間存儲(chǔ)在存儲(chǔ)器中。在一種實(shí)施例中,交易時(shí)間可與目標(biāo)端ID關(guān)聯(lián)。每次目標(biāo)端處理新的有效載荷,可存儲(chǔ)一個(gè)新的交易時(shí)間,使得給定目標(biāo)端可在存儲(chǔ)器中具有多個(gè)交易時(shí)間??蛇x地,BMU可獨(dú)立于處理目標(biāo)端而保存運(yùn)行總交易時(shí)間。每次新有效載荷被處理,BMU可將新的時(shí)間增加到總量上。在一種實(shí)施例中,BMU可存儲(chǔ)單個(gè)交易時(shí)間和運(yùn)行總交易時(shí)間的混合。例如,當(dāng)給定目標(biāo)端第一次處理有效載荷時(shí),處理時(shí)間可由BMU存儲(chǔ)。對(duì)于該目標(biāo)端的每個(gè)后續(xù)交易時(shí)間可被加入到由BMU存儲(chǔ)的時(shí)間中。如果另一目標(biāo)端處理一個(gè)有效載荷,則第二目標(biāo)端的交易時(shí)間可作為用于第二目標(biāo)端的運(yùn)行總交易時(shí)間分開存儲(chǔ)。圖6是根據(jù)本發(fā)明的一種實(shí)施例的示范TLM模型(例如,圖5的那個(gè))中的DFS的流程圖。在500,啟動(dòng)一組進(jìn)程。該啟動(dòng)可以在例如虛擬環(huán)境啟動(dòng)時(shí)發(fā)生。在一種實(shí)施例中,進(jìn)程可以為圖3中示出的任務(wù)A、任務(wù)B以及任務(wù)DFS。在502,對(duì)每個(gè)進(jìn)程進(jìn)行循環(huán),這個(gè)循環(huán)可以是由運(yùn)行在虛擬環(huán)境中的操作系統(tǒng)執(zhí)行的上下文切換。在進(jìn)入循環(huán)之前,每個(gè)進(jìn)程可以處于等待、就緒或者阻塞狀態(tài)。盡管循環(huán)內(nèi)每個(gè)進(jìn)程可以為運(yùn)行狀態(tài),這個(gè)循環(huán)可以繼續(xù)直到所有進(jìn)程都已運(yùn)行,或者可被操作系統(tǒng)或者用戶中斷。這種上下文切換的頻率可由操作系統(tǒng)中的設(shè)置控制??蛇x地或者另外,上下文切換可以為用戶定義的數(shù)值。數(shù)值ΔT是圖4中示出的總交易時(shí)間。它是循環(huán)502花費(fèi)在執(zhí)行上的總時(shí)間,并且為便于參考較早的附圖提供了ΔT。盡管ΔT僅包括圖6中的步驟502-506,其他實(shí)施例包括其他步驟。在504,進(jìn)程處于運(yùn)行狀態(tài)。它可將任務(wù)作為有效載荷通過虛擬總線提交到虛擬處理器,或者一個(gè)或者多個(gè)TLM目標(biāo)端。這種提交可基本上類似于上述參考圖5討論的進(jìn)程。在506,有效載荷目標(biāo)端交易時(shí)間可由BMU存儲(chǔ)。這種存儲(chǔ)可以與如上述參考圖4討論的相似方式發(fā)生??蛇x地,BMU可僅存儲(chǔ)利用虛擬處理器的任務(wù)的交易時(shí)間。在一種實(shí)施例中,目標(biāo)端交易時(shí)間和虛擬處理器交易時(shí)間由BMU存儲(chǔ)。接著步驟506,循環(huán)502可重復(fù)直到它被用戶或者與任務(wù)DFS類似的進(jìn)程中斷。在508,從存儲(chǔ)器獲取步驟506中由BMU存儲(chǔ)的交易時(shí)間。這些交易時(shí)間可被用于確定與TLM目標(biāo)端花費(fèi)在處理有效載荷上的時(shí)間相等的總的目標(biāo)端交易時(shí)間。如果獲取的交易時(shí)間被目標(biāo)端分成段,使得每個(gè)目標(biāo)端在存儲(chǔ)器中具有唯一的入口,它們可加在一起以確定總的目標(biāo)端交易時(shí)間。如果獲取的交易時(shí)間是花費(fèi)在利用虛擬處理器的時(shí)間,獲取的時(shí)間可從總交易時(shí)間ΔT中減去以確定總的目標(biāo)端交易時(shí)間。在510,執(zhí)行頻率調(diào)整評(píng)估。在一些實(shí)施例中,評(píng)估實(shí)質(zhì)基本上類似于圖4中公開的方法,其中第一交易時(shí)間等于步驟508中計(jì)算的總的目標(biāo)端交易時(shí)間。頻率調(diào)整評(píng)估可分析每個(gè)進(jìn)程花費(fèi)在利用不同虛擬硬件部件上的時(shí)間。然后它可相應(yīng)地調(diào)整虛擬處理器的頻率。例如,如果進(jìn)程在利用TLM目標(biāo)端上花費(fèi)較多時(shí)間,虛擬處理器可被設(shè)為低頻率。同樣地,如果進(jìn)程在將任務(wù)提交到虛擬處理器花費(fèi)大部分時(shí)間,可提高頻率。如果進(jìn)程在利用虛擬處理器和TLM目標(biāo)端上花費(fèi)一些時(shí)間,頻率可被設(shè)置到平衡功耗和性能的水平。通過基于在進(jìn)程上的上次迭代(即,基于循環(huán)502的上次完整迭代)調(diào)整虛擬處理器的頻率,系統(tǒng)能夠動(dòng)態(tài)優(yōu)化它的性能。在新進(jìn)程開始或者停止時(shí),會(huì)影響交易時(shí)間。例如,如果一個(gè)大量利用虛擬處理器的新進(jìn)程開始,步驟510的策略評(píng)估會(huì)導(dǎo)致處理器的頻率提高。同樣地,如果進(jìn)程停止,評(píng)估會(huì)降低處理器的頻率。這使得系統(tǒng)僅基于在給定時(shí)間運(yùn)行的進(jìn)程了解新的功率分布。它還使系統(tǒng)基于上次進(jìn)程迭代預(yù)測(cè)未來功率需求。如果給出的進(jìn)程組在一次迭代上已為I/O密集型,它們?cè)谙麓蔚虾芸赡芤矔?huì)為I/O密集型。在一種實(shí)施例中,步驟510的策略評(píng)估結(jié)果(專家級(jí)評(píng)估(expert或experts))可存儲(chǔ)在存儲(chǔ)器中以用于未來考慮。例如,所述系統(tǒng)可存儲(chǔ)在先的十個(gè)評(píng)估結(jié)果(專家)。每一個(gè)評(píng)估(專家)可作為新頻率考慮的因素計(jì)入在內(nèi),較近的評(píng)估具有更多的權(quán)重。這有助于保護(hù)避免在短運(yùn)行時(shí)間消耗不成比例的資源量的進(jìn)程。如圖7所示,一些實(shí)施例包括實(shí)施DVFS任務(wù)的計(jì)算機(jī),該計(jì)算機(jī)平衡性能和能量損耗,給出的時(shí)鐘序列T0、T1、T2、...,以及相對(duì)應(yīng)的在時(shí)間(T0-T1、T1-T2、T2-T3、...TN-1-TN)之間的時(shí)間片序列,總的損耗可推導(dǎo)如下:ΔT=Ti-Ti-1,i=0,1,2,...n其中Tio從BMU獲得,Tcpu=ΔT-Tio其中,如果(μ>μmesn)le=0,lp=μ-μmesnlp=性能損耗(2)如果(μ<μmesn)le=μmesn-μ,lp=0,le=能量損耗(3)總損耗lt=α×le+(1-α)×lp(4)其中,0≤α≤1,用戶確定的能耗/性能權(quán)衡在線學(xué)習(xí)被用于預(yù)測(cè)目標(biāo)端電壓-頻率(v-f)設(shè)置,給出總損耗,系統(tǒng)計(jì)算權(quán)重如下:其中,0≤β≤1,用戶確定的,設(shè)置為0.75因此,概率由以下計(jì)算:其中,選擇具有最高概率的專家來調(diào)整處理器的電壓-頻率設(shè)置。圖7表示策略實(shí)施的一個(gè)實(shí)例。例如,假設(shè)總數(shù)有5個(gè)專家,每個(gè)都具有各自的v-f設(shè)置、權(quán)重以及概率,如圖7中所示。在開始中(T0),DVFS策略任務(wù)將所有專家的權(quán)重設(shè)置為相等(例如,零)。然后DVFS策略任務(wù)變?yōu)樾菝?。在時(shí)間T0,DVFS策略任務(wù)喚醒,計(jì)算方程(1),并且使用結(jié)果選擇一個(gè)專家。參見圖7,假設(shè)選擇專家3。一旦選定專家,DVFS策略任務(wù)為專家3繼續(xù)計(jì)算并且更新方程(2)、(3)、(4)、(5)和(6)。這使得通過方程(6)為選定的專家確定最終概率。DVFS策略在所有專家中選擇最高的概率值,并且使用它去調(diào)節(jié)處理器電壓-頻率設(shè)置。在此刻(時(shí)間片T0-T1的末端),僅為專家3計(jì)算概率。所有其他專家的概率值為零。根據(jù)規(guī)則(通過該規(guī)則選定具有最高概率的專家),DVFS策略選擇專家3的V-F設(shè)置,并且調(diào)節(jié)CPU頻率。然后DVFS策略任務(wù)再次變成休眠(睡眠)。在時(shí)間片T1-T2的末端,DVFS任務(wù)喚醒,并且重復(fù)計(jì)算方程(1)的步驟,更新專家選擇,并且為當(dāng)前選定專家更新方程(2)、(3)、(4)、(5)和(6)的執(zhí)行。假設(shè)在時(shí)間T2,選擇專家2,并且DVFS策略任務(wù)更新專家2的概率。然后,DVFS策略任務(wù)掃描圖7中所有專家以尋找最高概率,并且使用選定的專家來調(diào)節(jié)處理器v-f設(shè)置。DVFS任務(wù)繼續(xù)重復(fù)喚醒,計(jì)算方程(1),更新專家選擇,并且為當(dāng)前選定的專家更新方程(2)、(3)、(4)、(5)和(6)的執(zhí)行。在一種實(shí)施例中,評(píng)估結(jié)果(專家)被寫入到外部數(shù)據(jù)庫513。外部數(shù)據(jù)庫可被設(shè)置在運(yùn)行虛擬環(huán)境的物理機(jī)器10上或者另外合適的機(jī)器中。該數(shù)據(jù)庫可被用于功率分析目的。它可包括有關(guān)TLM目標(biāo)端的信息、進(jìn)程花費(fèi)在利用虛擬處理器的時(shí)間、進(jìn)程花費(fèi)在利用TLM目標(biāo)端上的時(shí)間等。在ELS運(yùn)行功率分析使得該數(shù)據(jù)庫在短時(shí)間段中具有相當(dāng)數(shù)量的信息。ELS虛擬平臺(tái)可以每秒百萬周期數(shù)執(zhí)行,并可能因此產(chǎn)生巨大量的運(yùn)行時(shí)間數(shù)據(jù)。這些信息對(duì)工程師在系統(tǒng)繼續(xù)設(shè)計(jì)和優(yōu)化中是無價(jià)的。在一些實(shí)施例中,數(shù)據(jù)庫內(nèi)容包括但不限于:(1)CPU指令執(zhí)行跟蹤(給予用戶多核片上系統(tǒng)(SOC)上程序運(yùn)行和分支的實(shí)際路徑的CPU指令流);(2)CPU中斷事件跟蹤(提供中斷類型(MMU/TLB故障、系統(tǒng)調(diào)用、計(jì)時(shí)器中斷、DMA中斷、外部中斷等);(3)跟蹤或者不跟蹤C(jī)PUL1/L2緩存器(監(jiān)控緩存器的工作);(4)BUS交易跟蹤(記錄交易級(jí)模型(TLM)BUS交易(例如,近似的時(shí)間類型中的發(fā)起端和目標(biāo)端的TLM狀態(tài)));(5)主存儲(chǔ)器讀/寫交易跟蹤(提供存儲(chǔ)器R/W地址日志);以及(6)I/O部件讀/寫交易跟蹤(當(dāng)CPU訪問外圍設(shè)備時(shí)提供外圍設(shè)備的地址和名字)。這僅是一個(gè)實(shí)例,并且在其他實(shí)施例中,數(shù)據(jù)庫的內(nèi)容與上面的列表不同。在511,可提交用戶定義的值以使策略評(píng)估偏移。例如,用戶可約束頻率調(diào)節(jié)的下限以保持性能的最低等級(jí)??蛇x地或者另外,用戶可約束頻率調(diào)節(jié)的上限以限制處理器運(yùn)行的最大功耗或者溫度。在一種實(shí)施例中,用戶的輸入使圖4中所述的比值偏移。例如,用戶可輸入數(shù)值來增加第二交易時(shí)間,從而提高系統(tǒng)的性能和功耗。同樣地,用戶可輸入數(shù)值來減少第二交易時(shí)間從而降低性能和功耗。用戶的輸入還可被用于影響第一交易時(shí)間或者總交易時(shí)間。在一種實(shí)施例中,用戶偏移可基于包含在外部數(shù)據(jù)庫513中的數(shù)據(jù)。當(dāng)設(shè)計(jì)和優(yōu)化系統(tǒng)時(shí),這可能特別有利。一組進(jìn)程可使得運(yùn)行大量迭代次數(shù)或者指定量的時(shí)間來填充數(shù)據(jù)庫。然后,工程師可觀察記錄的趨勢(shì),修正ESL設(shè)計(jì),和/或提交偏移。然后,可再次運(yùn)行進(jìn)程以觀察變化的效果??紤]到用戶偏移輸入可允許對(duì)系統(tǒng)基本上立即修正,這反過來可降低設(shè)計(jì)時(shí)間。在512,由BMU存儲(chǔ)的交易時(shí)間可從存儲(chǔ)器清除,因此他們不影響下次進(jìn)程迭代。可選地,交易時(shí)間可被可被無限期留在存儲(chǔ)器中或者留在存儲(chǔ)器中一段時(shí)間。最后,在514,等待任務(wù)DFS完成的進(jìn)程繼續(xù)并且所述方法重復(fù)它本身。該方法的執(zhí)行可繼續(xù)直到虛擬平臺(tái)關(guān)閉或者直到所有進(jìn)程終止。應(yīng)當(dāng)理解,所述方法不限于步驟500開始的進(jìn)程,并且新的應(yīng)用進(jìn)程可在任何時(shí)間開始或者停止。在一些實(shí)施例中,一種計(jì)算機(jī)具有被編程以執(zhí)行進(jìn)程的處理器,所述處理器包括:處理單元仿真器;至少一個(gè)硬件部件仿真器;與所述處理單元仿真器和所述至少一個(gè)硬件部件仿真器通信的系統(tǒng)總線仿真器;以及被配置成監(jiān)控所述處理單元仿真器和所述至少一個(gè)硬件部件仿真器之間的通信量的總線監(jiān)控單元(BMU)。所述BMU還被配置成記錄非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中的總線使用數(shù)據(jù)。所述總線使用數(shù)據(jù)包括交易時(shí)間,該交易時(shí)間表示所述至少一個(gè)硬件部件仿真器花費(fèi)在處理任務(wù)上的時(shí)間。在一些實(shí)施例中,一種方法包括:為運(yùn)行在計(jì)算機(jī)仿真器上的多個(gè)應(yīng)用任務(wù)確定總運(yùn)行時(shí)間;基于所述應(yīng)用任務(wù)花費(fèi)在利用不是處理單元仿真器的至少一個(gè)硬件部件仿真器上的時(shí)間確定第一交易時(shí)間;根據(jù)所述總運(yùn)行時(shí)間和所述第一交易時(shí)間計(jì)算第二交易時(shí)間;根據(jù)所述第二交易時(shí)間、所述第一交易時(shí)間以及所述總的交易時(shí)間確定是否調(diào)節(jié)所述處理單元仿真器的頻率;以及調(diào)節(jié)所述處理單元仿真器的所述頻率。在一些實(shí)施例中,一種編碼有程序代碼的非暫時(shí)性機(jī)器可讀存儲(chǔ)介質(zhì),其中當(dāng)所述程序代碼由處理器執(zhí)行時(shí),所述處理器執(zhí)行包括以下步驟的方法:建立被配置成仿真硬件環(huán)境的計(jì)算機(jī)仿真器,其中所述計(jì)算機(jī)仿真器包括至少一個(gè)高頻硬件部件仿真器和至少一個(gè)低頻硬件部件仿真器;在所述計(jì)算機(jī)仿真器上運(yùn)行一個(gè)計(jì)算機(jī)任務(wù);以及基于所述低頻硬件部件仿真器花費(fèi)在處理計(jì)算機(jī)任務(wù)上的時(shí)間調(diào)節(jié)與高頻硬件部件仿真器關(guān)聯(lián)的仿真功率水平。本文描述的方法和系統(tǒng)可被至少以計(jì)算機(jī)實(shí)現(xiàn)的進(jìn)程以及用于實(shí)現(xiàn)這些進(jìn)程的裝置的形式體現(xiàn)。本發(fā)明還可以至少部分以編碼有計(jì)算機(jī)程序代碼的可觸知、非暫時(shí)性機(jī)器可讀存儲(chǔ)介質(zhì)的形式體現(xiàn)。所述介質(zhì)可包括諸如,RAM、ROM、CD-ROM、DVD-ROM、BD-ROM、硬盤驅(qū)動(dòng)器、閃存或者任何其他非暫時(shí)性機(jī)器可讀存儲(chǔ)介質(zhì),其中當(dāng)計(jì)算機(jī)程序代碼被下載到計(jì)算機(jī)并且可被計(jì)算機(jī)執(zhí)行時(shí),所述計(jì)算機(jī)變?yōu)閷?shí)施本發(fā)明的裝置。所述方法還可至少部分以計(jì)算機(jī)程序代碼被下載到其上和/或被其執(zhí)行的計(jì)算機(jī)形式體現(xiàn),使得當(dāng)計(jì)算機(jī)程序代碼被下載到計(jì)算機(jī)并且可被計(jì)算機(jī)執(zhí)行時(shí),計(jì)算機(jī)變成實(shí)施所述方法的裝置。當(dāng)在通用處理器上實(shí)施時(shí),計(jì)算機(jī)程序代碼段配置處理器以生成特定的邏輯電路。所述方法可選地可以至少部分體現(xiàn)在由具體應(yīng)用集成電路形成的數(shù)字信號(hào)處理器中以執(zhí)行所述方法。盡管根據(jù)示例性實(shí)施例已描述了本發(fā)明,但不僅限于此。相反,所附權(quán)利要求應(yīng)當(dāng)被廣泛構(gòu)造以包括本領(lǐng)域技術(shù)人員可以進(jìn)行的其他變形和實(shí)施例。
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1