優(yōu)化平臺仿真資源消耗的方法和裝置的制造方法
【專利摘要】本文公開了用于優(yōu)化平臺仿真資源消耗的方法、裝置、系統(tǒng)和制品。示例性的裝置包括仿真管理器,用于在平臺仿真器上利用與平臺的硬件組件相對應(yīng)的組件模型啟動仿真;利用率閾值監(jiān)視器,用于基于被測試的軟件應(yīng)用引起的需求而識別與第一個組件模型相關(guān)聯(lián)的利用率值;以及組件監(jiān)視管理器,用于基于利用率值與利用率閾值的比較而將第一個組件模型附著到平臺仿真器或從其分離。
【專利說明】
優(yōu)化平臺仿真資源消耗的方法和裝置
技術(shù)領(lǐng)域
[0001]本公開整體上涉及硬件仿真,更具體地,涉及優(yōu)化平臺仿真資源消耗的方法和裝置。
【背景技術(shù)】
[0002]近年來,軟件開發(fā)者已面臨開發(fā)運行在任何數(shù)量的不同硬件平臺上的軟件應(yīng)用的挑戰(zhàn)。軟件開發(fā)者不能控制其客戶將使用的硬件平臺,但軟件開發(fā)者能控制其代碼、以及代碼如何與給定目標平臺的一個或多個獨特的方面進行交互。然而,為確保軟件應(yīng)用如預(yù)期地運行,軟件開發(fā)者必須在每個特定目標平臺上測試軟件應(yīng)用。為了將購買執(zhí)行軟件應(yīng)用的每個目標平臺所涉及的硬件費用最小化,可使用系統(tǒng)仿真器對每個所關(guān)注的硬件平臺進行仿真。
【附圖說明】
[0003]圖1是根據(jù)本公開的教導而構(gòu)建的用于優(yōu)化平臺仿真資源消耗的仿真環(huán)境的示意圖。
[0004]圖2是根據(jù)本公開的教導而構(gòu)建的示例性組件利用率表。
[0005]圖3是圖1的用于優(yōu)化平臺仿真資源消耗的示例性仿真代理。
[0006]圖4是表示示例性機器可讀指令的流程圖,可執(zhí)行該指令用于以與本公開的教導相一致的方式優(yōu)化平臺仿真資源消耗。
[0007]圖5是可執(zhí)行圖4的指令以實現(xiàn)圖1和圖3的示例性仿真代理的示例性處理器平臺的示意圖。
【具體實施方式】
[0008]系統(tǒng)仿真涉及在軟件環(huán)境下模擬硬件平臺的行為。通常,系統(tǒng)仿真器包括軟件組件,用于對于待仿真的系統(tǒng)中每個相應(yīng)的硬件組件進行建模。硬件組件可包括但不限于高速緩存存儲器裝置、中央處理單元(CPU)、圖形處理單元(GPU)、磁盤控制器、存儲器控制器、夕卜圍組件互連(PCI)接口 /控制器、通用異步接收器/發(fā)射器(UART)、北橋/南橋芯片組等。所關(guān)注的每個硬件組件在系統(tǒng)仿真器中均具有相關(guān)聯(lián)的軟件組件,在計算裝置上執(zhí)行時,軟件組件仿真硬件組件的行為。因此,軟件開發(fā)者不需要為了開發(fā)和/或測試將用于得到所關(guān)注的平臺的軟件應(yīng)用的目的而購買實際的硬件平臺。
[0009]雖然系統(tǒng)仿真器方便地為軟件開發(fā)者節(jié)省了單獨采購硬件所涉及的相當大的費用支出,但是隨著硬件平臺包括的需要被建模的單個組件更為復(fù)雜和/或數(shù)量更多,仿真持續(xù)時間會變慢。由于系統(tǒng)仿真器為建模目的而啟用的每個軟件組件消耗運行所述仿真器的主機的計算資源,為平臺添加額外的軟件組件自然會帶來對主機計算裝置更高的要求。因此,對于相對復(fù)雜的平臺仿真工作,可能會延長仿真任務(wù)的持續(xù)時間。
[0010]系統(tǒng)仿真產(chǎn)生的結(jié)果可具有的精度與經(jīng)由軟件組件對相應(yīng)的每個硬件組件建模的良好程度相稱。精度被定義為仿真或估計的執(zhí)行狀態(tài)與在目標平臺的實際硬件上的相應(yīng)測量值之間的誤差。另一方面,系統(tǒng)仿真效率被定義為完成仿真所消耗的時間的量(例如,仿真速度),其隨著為提高精度而付出的努力的增加而增加。因此,本文所公開的示例性方法、系統(tǒng)、裝置和/或制品在系統(tǒng)仿真器執(zhí)行仿真時的精度和效率之間建立了平衡。
[0011]圖1是根據(jù)本公開的教導而實現(xiàn)的用于優(yōu)化(改善)平臺仿真資源消耗的示例性仿真環(huán)境100的示意圖。在圖1所示的例子中,主計算機102包括用于運行主機操作系統(tǒng)(OS)104的硬件資源。示例性仿真引擎106(在本文中有時被稱為“平臺仿真器”)和示例性仿真代理108在示例性主機OS 104上運行,其中,示例性仿真引擎106包括與待仿真的平臺相關(guān)聯(lián)的任意數(shù)量的軟件組件(在本文中有時被稱為“仿真組件”)。示例性仿真引擎106的組件包括示例性CPU 110、示例性UART 112、示例性以太網(wǎng)控制器114、示例性存儲器控制器116、示例性PCI控制器118、示例性PCI快速(PCIe)控制器120、示例性定時器122、示例性隨機存取存儲器(RAM)124、示例性硬盤126以及示例性只讀存儲器(R0M)128。在圖1所示的例子中,仿真引擎106的組件反映了所關(guān)注的平臺,而一個或多個可替代的所關(guān)注的平臺可包括任何數(shù)量的另外的和/或備選的軟件組件。
[0012]在運行中,示例性仿真代理108識別一組初始仿真組件,附著到仿真中。如本文所使用的,術(shù)語“附著”是指使一個或多個仿真組件能參與到一個或多個建模任務(wù)中,而術(shù)語“分離”是指在一個或多個建模任務(wù)中禁止一個或多個仿真組件的參與。通常而言,附著較多數(shù)量的仿真組件導致對底層計算資源(例如,主計算機102)的消耗相對較大,而分離一定數(shù)量的仿真組件會導致底層計算資源上的負荷的減少??苫趯τ诖抡娴哪繕藨?yīng)用程序和/或操作系統(tǒng)的檢查來確定該組初始仿真組件。在圖1所示的例子中,仿真引擎106包括待仿真的作為OS 130的Linux內(nèi)核和目標程序132。
[0013]仿真開始后,示例性仿真代理108檢查示例性目標程序132和/SOS130所使用的各組件(例如,目標程序132和/SOS 130從一個或多個組件要求和/或以其他方式請求功能性),以識別相應(yīng)的利用率值。在最初未將第一仿真組件附著到仿真中(或當前未附著到仿真中)、但后來被檢測為針對閾值資源量(例如,時鐘周期的閾值數(shù)量、閾值持續(xù)時間(毫秒))請求與第一仿真組件相關(guān)的功能性的情況下,則所請求的仿真組件被仿真代理108附著到仿真中。響應(yīng)于識別閾值需求而附著示例性第一仿真組件的至少一個好處是將改善仿真的精度。另一方面,在第二仿真組件當前被附著到仿真中、但是被仿真代理108檢測為未使用閾值資源量的情況下,則從仿真中移除未充分利用的仿真組件。響應(yīng)于識別缺少閾值需求而移除示例性第二仿真組件的至少一個好處是減少示例性主計算機102所提供的底層資源的負荷,從而提高仿真速度。
[0014]圖2示出了根據(jù)本公開的教導而構(gòu)建的用于優(yōu)化(改善)平臺仿真資源消耗的示例性組件利用率表200。在圖2所示的例子中,表200包括組件列202、利用率閾值列204以及運行時啟動列206。如以下進一步詳細描述的,示例性仿真代理108的利用率閾值監(jiān)視器將仿真引擎106當前正在使用的每個仿真組件與仿真引擎106能夠使用的每個仿真組件進行比較。換句話說,示例性利用率表200可生成仿真組件的完整列表,每個均表示仿真引擎106所需的實際硬件組件,而不管在仿真過程中目前是否正在使用這種組件。示例性O(shè)S 130和/或程序132運行過程中,一個或多個組件可在不同的時間以不同的量對所述仿真做出貢獻,鑒于這種可能性,示例性利用率表200包括用于控制在何時將一個或多個仿真組件附著于示例性仿真引擎106或從其分離的值。
[0015]圖2中的示例性組件列202列出了在仿真中軟件(例如,圖1中的示例性O(shè)S130和/或程序132)執(zhí)行能夠需要的任何數(shù)目的硬件組件。在一些示例中,組件列202中的每個組件包括對應(yīng)的高利用率閾值204A和低利用率閾值204B。在其他示例中,組件列202中的每個組件包括用于比較目的的單個利用率閾值。另外,在仿真開始(例如,在仿真活動的時間零點)時附著了特定的組件的情況下,則示例性運行時啟動列206包括表示真的值(例如,二進制值“I”、術(shù)語“真(TRUE)”、術(shù)語“是(yes)”等)。另一方面,在仿真開始時避免附著特定的組件的情況下,則示例性運行時啟動列206包括表示假的值(例如,二進制值“O”、術(shù)語“假(FALSE)”、術(shù)語“否(no)” 等)。
[0016]在運行中,示例性仿真代理108監(jiān)視在示例性仿真引擎106中仿真的平臺執(zhí)行期間示例性組件列202中的每個仿真組件的利用率值/需求。在第一仿真組件超過示例性高利用率閾值(例如,上限閾值)204A的情況下,則該相應(yīng)的仿真組件被附著到示例性仿真引擎106,假設(shè)它尚未被附著。另一方面,在第一仿真組件低于示例性低利用率閾值(例如,下限閾值)204B的情況下,則該相應(yīng)的仿真組件將從仿真中分離,假設(shè)它尚未與示例性仿真引擎106分離。
[0017]圖3更詳細地示出了示例性仿真代理108。在圖3所示的例子中,仿真代理108包括仿真管理器302、組件識別器304、利用率閾值監(jiān)視器306、組件監(jiān)視管理器308以及任何數(shù)量的組件監(jiān)視器M1、M2...、Mn,本文中統(tǒng)稱為組件監(jiān)視器310。組件監(jiān)視器310的數(shù)量對應(yīng)于由示例性仿真引擎106仿真的硬件組件的數(shù)量。例如,組件監(jiān)視器M1可與示例性UART 112相關(guān),并在整個仿真中監(jiān)視其利用率量(例如,每單位時間活動的或所需的CPU周期的數(shù)目)。示例性組件監(jiān)視管理器308在周期性的、非周期性的、按計劃的和/或手動的基礎(chǔ)上調(diào)用每個示例性組件監(jiān)視器310,以識別每個相應(yīng)的軟件組件的利用率值。當軟件組件超過或低于相應(yīng)的利用率閾值時,示例性組件監(jiān)視管理器308在仿真過程中將相應(yīng)的組件模型附著至示例性仿真引擎106/從其分離。
[0018]示例性仿真管理器302啟動仿真后,其確定時間量是否已超出培養(yǎng)與每個仿真的組件相關(guān)聯(lián)的利用率信息。對于每個所關(guān)注的組件,示例性利用率閾值監(jiān)視器306確定利用率值(例如,CPU周期、作為總仿真時間的比例/部分的利用率時間的百分比等)是否小于與所關(guān)注的組件相關(guān)聯(lián)的利用率閾值。如上所述,利用率閾值可存儲在圖2的示例性組件利用率表200中。在所關(guān)注的特定組件的利用率值小于相應(yīng)的閾值的情況下,示例性組件監(jiān)視管理器308確定當前是否附著相應(yīng)的所關(guān)注的組件。如上所述,在附著組件模型、但是未被仿真的一個或多個程序使用和/或以其他方式需求的情況下,則將組件模型維持在示例性仿真引擎106中會浪費本應(yīng)能夠被對所關(guān)注的平臺能夠建模的其余的組件使用的主計算機102的底層資源。在這樣的情況下,示例性仿真管理器302暫停仿真,且示例性組件監(jiān)視管理器302分離未充分利用的組件模型。
[0019]另一方面,在示例性利用率閾值監(jiān)視器306確定所關(guān)注的組件的利用率值高于與所關(guān)注的組件相關(guān)聯(lián)的利用率閾值的情況下,則組件監(jiān)視管理器308確定組件模型目前是否被附著在仿真引擎106中。如果沒有,則將所關(guān)注的組件模型附著到示例性仿真引擎106將會以更高的精度對仿真進行建模。示例性仿真管理器302中止正在運行的仿真,并且在重新啟動仿真之前,示例性組件監(jiān)視管理器308將組件模型附著到示例性仿真引擎106。
[0020]雖然在圖1-圖3中示出了圖1和圖3的仿真代理108的示例性實施方式,但是圖1和圖3中所示出的一個或多個元件、進程和/或裝置可被組合、分割、重新設(shè)置、省略、刪除和/或以任何其他方式實現(xiàn)。此外,圖1和圖3中的示例性仿真引擎106、示例性仿真管理器302、示例性組件識別器304、示例性利用率閾值監(jiān)視器306、示例性組件監(jiān)視管理器308、示例性組件監(jiān)視器310,和/或,更一般地,示例性仿真代理108可由硬件、軟件、固件和/或硬件、軟件和/或固件的任何組合實現(xiàn)。因此,例如,圖1和圖3中的任何示例性仿真引擎106、示例性仿真管理器302、示例性組件識別器304、示例性利用率閾值監(jiān)視器306、示例性組件監(jiān)視管理器308、示例性組件監(jiān)視器310,和/或,更一般地,示例性仿真代理108可由一個或多個仿真或數(shù)字電路、邏輯電路、可編程處理器、專用集成電路(ASIC)、可編程邏輯器件(PLD)和/或現(xiàn)場可編程邏輯器件(FPLD)實現(xiàn)。當閱讀本專利的任何裝置或系統(tǒng)權(quán)利要求來覆蓋純軟件和/或固件實施方式,圖1和圖3中的示例性仿真引擎106、示例性仿真管理器302、示例性組件識別器304、示例性利用率閾值監(jiān)視器306、示例性組件監(jiān)視管理器308、示例性組件監(jiān)視器310,和/或,更一般地,示例性仿真代理108中的至少一個在此被明確地限定為包括存儲軟件和/或固件的有形的計算機可讀存儲裝置或存儲盤,例如存儲器、數(shù)字多功能盤(DVD)、壓縮盤(CD)、藍光盤等。再者,除了圖1和圖3中所示出的,或可替代的,圖1和圖3中的示例性仿真代理108可包括一個或多個元件、進程和/或裝置,和/或可包括多于一個的任何的或所有的所示出的元件、進程和裝置。
[0021]圖4示出了表示用于實現(xiàn)圖1和圖3中的仿真代理108的示例性機器可讀指令的流程圖。在本示例中,機器可讀指令包括由處理器執(zhí)行的程序,所述處理器例如為以下結(jié)合圖5所討論的示例性處理器平臺500中所示出的處理器512。程序可被實施為存儲在有形的計算機可讀存儲介質(zhì)上的軟件,所述有形的計算機可讀存儲介質(zhì)例如為CD-ROM、軟盤、硬盤驅(qū)動器、數(shù)字多功能盤(DVD)、藍光盤、或與處理器512相關(guān)聯(lián)的存儲器,但是可替代地,整個程序和/或其部分可由除處理器512以外的裝置來執(zhí)行和/或被實施為固件或?qū)S糜布?。此夕卜,雖然參照圖4所示的流程圖描述了示例性程序,但也可替代地使用其他多種方法實現(xiàn)示例性仿真代理108。例如,可改變塊的執(zhí)行順序,和/或可改變、刪除或組合所描述的一些塊。
[0022]如上所述,圖4的示例性過程可利用存儲在有形的計算機可讀存儲介質(zhì)上的編碼指令(例如,計算機和/或機器可讀指令)實現(xiàn),所述有形的計算機可讀存儲介質(zhì)例如為硬盤驅(qū)動器、閃速存儲器、只讀存儲器(R0M)、壓縮盤(CD)、數(shù)字多功能盤(DVD)、高速緩存、隨機存取存儲器(RAM)和/或以任何持續(xù)時間(例如,以較長的時間段、永久地、短時間、作為暫時緩沖、和/或作為信息的高速緩存)存儲信息的任何其他存儲裝置或存儲盤。如本文中所使用的,有形的計算機可讀存儲介質(zhì)這一術(shù)語被明確地定義為包括任何類型的計算機可讀存儲裝置和/或存儲盤,并排除傳播信號以及排除傳輸介質(zhì)。如本文中所使用的,“有形的計算機可讀存儲介質(zhì)”和“有形的機器可讀存儲介質(zhì)”可互換使用。另外或可替代地,圖4中的示例性進程可利用存儲在非臨時性計算機和/或機器可讀介質(zhì)上的編碼指令(例如,計算機和/或機器可讀指令)實現(xiàn),所述非臨時性計算機和/或機器可讀介質(zhì)例如為硬盤驅(qū)動器、閃速存儲器、只讀存儲器、壓縮盤、數(shù)字多功能盤、高速緩存、隨機存取存儲器和/或以任何持續(xù)時間(例如,以較長的時間段、永久地、短時間、作為暫時緩沖、和/或作為信息的高速緩存)存儲信息的任何其他存儲裝置或存儲盤。如本文中所使用的,非臨時性計算機可讀介質(zhì)這一術(shù)語被明確定義為包括任何類型的計算機可讀存儲裝置和/或存儲盤,并排除傳播信號、以及排除傳輸介質(zhì)。如本文中所使用的,當在權(quán)利要求的前序部分中使用短語“至少”作為過渡詞時,其與開放式術(shù)語“包括”的方式相同,是開放式的。
[0023]圖4中的程序400開始于塊402,其中,示例性組件識別器304檢查和/或以其它方式分析示例性組件利用率表200,從而識別在示例性仿真引擎106執(zhí)行的仿真期間待附著的初始仿真組件。如上所述,圖2中的示例性組件利用率表200包括所關(guān)注的平臺的各組件的列表。在組件在運行時啟動列206中包括指示真(例如,“I”、“真”、“是”等)的情況下,則示例性組件監(jiān)視管理器308將相應(yīng)的組件附著到仿真引擎106。另一方面,在組件在運行時啟動列206中包括表示指示假(例如,“O”、“假”、“否”等)的情況下,則示例性組件監(jiān)視管理器308分離和/或以其他方式確認相應(yīng)組件未包括在示例性仿真引擎106中。在一些示例中,示例性組件識別器304識別與給定的待仿真的所關(guān)注的平臺相關(guān)聯(lián)的所有硬件組件?;谒P(guān)注的平臺的所識別的硬件組件,示例性利用率閾值監(jiān)視器306生成具有針對每個組件模型的相應(yīng)的利用率值的列表,如以上所描述的以及圖2所示的。
[0024]在示例性組件監(jiān)視管理器308配置示例性仿真引擎106以與示例性組件利用率表200(塊402)相一致的方式附著和分離相應(yīng)的組件之后,示例性仿真管理器302啟動仿真(塊404)。示例性仿真管理器302包括定時器,用于確定何時要對選定的所關(guān)注的平臺的所有組件檢查其相應(yīng)的利用率值(塊406)。例如,仿真管理器302可在閾值數(shù)目的CPU周期、閾值持續(xù)時間(例如,每500毫秒)之后,和/或響應(yīng)于一個或多個仿真事件而執(zhí)行所有組件的分析。仿真事件可包括但不限于被仿真的應(yīng)用程序(例如,被仿真的OS 130,被仿真的程序132等)作出對先前未使用的組件的請求的情況。例如,響應(yīng)于示例性以太網(wǎng)控制器116被所仿真的應(yīng)用程序調(diào)用的第一種情形,示例性仿真管理器302可執(zhí)行所有平臺組件的分析,以確定與其相關(guān)聯(lián)的一個或多個利用率值。
[0025]當示例性仿真管理器確定應(yīng)檢查平臺組件(塊406)時,示例性組件監(jiān)視管理器308通過選擇尚未被檢查的任何數(shù)量的平臺組件中的一個而開始組件分析迭代(塊408)。如本文所使用的,組件分析迭代是指每檢查周期內(nèi)評估當前仿真平臺的每一個組件(例如,運行Windows OS的x86 CPU)。在一些示例中,由于對仿真的整體性能的影響可忽略,一個或多個組件可不包括在分析迭代中。
[0026]在示例性組件監(jiān)視管理器308選擇尚未被檢查的組件用于分析迭代(塊408)后,示例性利用率閾值監(jiān)視器306判斷所關(guān)注的組件利用率值是否小于閾值,例如圖2中的示例性組件利用率表200所創(chuàng)建的閾值(塊410)。如果所關(guān)注的組件利用率值小于閾值(塊410),則示例性組件監(jiān)視管理器308判斷所關(guān)注的組件當前是否被附著在仿真引擎106中(塊412)。如果沒有,則針對所關(guān)注的組件,示例性仿真引擎106已經(jīng)被優(yōu)化(改善),因為它既未被正在執(zhí)行的應(yīng)用程序請求,也不必消耗底層主計算機102的資源。在這種情況下,示例性組件監(jiān)視管理器302確定是否還有所關(guān)注的平臺的另外的組件未被檢查(塊414)。如果有,則控制返回到塊408以選擇另一個所關(guān)注的組件。
[0027]然而,在所關(guān)注的組件的利用率值小于與其相關(guān)的利用率閾值(塊410)、并且該所關(guān)注的特定組件當前已被附著在仿真引擎106中(塊412)的情況下,則示例性仿真管理器302中止仿真(塊416)。當仿真中止和/或以其它方式被暫停時(塊416),示例性組件監(jiān)視管理器308從示例性仿真引擎106分離所關(guān)注的組件(塊418)。分離未被仿真的一個或多個正在執(zhí)行的應(yīng)用程序請求和/或以其他方式需求的所關(guān)注的組件的結(jié)果是底層主計算機102無需為所述底層組件提供處理資源。因此,通過允許底層主計算機102將其資源貢獻給仿真的應(yīng)用程序當前所需的一個或多個其他組件,可以以更有效的方式進行仿真。在示例性組件監(jiān)視管理器308分離不需要的組件并恢復(fù)仿真(塊418)后,它確定是否還有所關(guān)注的平臺的另外的組件未被檢查其相應(yīng)的利用率值(塊414)。如果平臺的所有組件均已被檢查以確定其當前利用率值(塊414),示例性仿真管理器302在允許啟動另一迭代之前重置檢查周期定時器(塊420)??刂迫缓蠓祷氐綁K406,以確定何時應(yīng)當開始另一組件的分析迭代。
[0028]在示例性利用率閾值監(jiān)視器306檢測出和/或以其他方式識別出所關(guān)注的組件的利用率值高于相應(yīng)的閾值(塊410)的情況下,則示例性組件監(jiān)視管理器308確定所關(guān)注的組件當前是否被附著在示例性仿真引擎106中(塊422)。如果所關(guān)注的組件當前已被附著(塊422),則由于與從一個或多個正在執(zhí)行的應(yīng)用程序(例如,圖1中的示例性O(shè)S 130和/或示例性程序132)對所述組件的一個或多個請求同時,組件處于活動狀態(tài),因此,示例性仿真引擎106被優(yōu)化。然后控制前進到塊414,其中,示例性組件監(jiān)視管理器302確定所關(guān)注的平臺的另外的組件是否未被檢查。然而,如果組件監(jiān)視管理器308確定所關(guān)注的組件當前未被附著到仿真引擎106(塊422),則示例性仿真管理器302中止模擬(塊424)。在所述仿真被中止和/或以其它方式被暫停(塊424)時,示例性組件監(jiān)視管理器308將所關(guān)注的組件附著到示例性仿真引擎106,并恢復(fù)仿真活動(塊426)。因此,通過包含仿真環(huán)境106中正在執(zhí)行的一個或多個程序所需的軟件組件,所述仿真被進一步優(yōu)化。
[0029]圖5是能夠執(zhí)行圖4中的指令以實現(xiàn)圖1和圖3中的仿真代理108的示例性處理器平臺500的框圖。處理器平臺500可以是例如服務(wù)器、個人計算機、因特網(wǎng)設(shè)備、游戲控制臺、機頂盒或任何其他類型的計算裝置。
[0030]所示的例子中的處理器平臺500包括處理器512。所示的例子中的處理器512是硬件。例如,可利用來自任何期望的家庭或制造商的一個或多個集成電路、邏輯電路、微處理器或控制器來實現(xiàn)處理器512。
[0031]所示的例子中的處理器512包括本地存儲器513(例如,高速緩存)。所示的例子中的處理器512經(jīng)由總線518與包括易失性存儲器514和非易失性存儲器516的主存儲器進行通信。易失性存儲器514可由同步動態(tài)隨機存取存儲器(SDRAM)、動態(tài)隨機存取存儲器(DRAM)、RAMBUS動態(tài)隨機存取存儲器(RDRAM)和/或任何其它類型的隨機存取存儲器裝置實現(xiàn)。非易失性存儲器516可由閃存和/或任何其他期望的類型的存儲器裝置實現(xiàn)。對主存儲器514、516的訪問由存儲器控制器控制。
[0032]所示的例子中的處理器平臺500還包括接口電路520。接口電路520可由任何類型的接口標準實現(xiàn),例如以太網(wǎng)接口、通用串行總線(USB)和/或PCI快速接口。
[0033]在所示的例子中,一個或多個輸入裝置522與接口電路520連接。輸入裝置522允許用戶向處理器1012輸入數(shù)據(jù)和指令。所述輸入裝置可由例如鍵盤、按鈕、鼠標、觸摸屏、跟蹤板、跟蹤球和/或語音識別系統(tǒng)實現(xiàn)。
[0034]—個或多個輸出裝置524也與所示例子中的接口電路520連接。輸出裝置524例如可通過顯示裝置(例如,發(fā)光二極管(LED)、有機發(fā)光二極管(OLED)、液晶顯示器、陰極射線管顯示器(CRT)、觸摸屏、觸覺輸出裝置、發(fā)光二極管(LED)、打印機和/或揚聲器)實現(xiàn)。因此,所示的例子中的接口電路520通常包括圖形驅(qū)動卡、圖形驅(qū)動芯片或圖形驅(qū)動處理器。
[0035]所示例子中的接口電路520還包括經(jīng)由網(wǎng)絡(luò)526 (例如,以太網(wǎng)連接、數(shù)字用戶線(DSL)、電話線、同軸電纜、蜂窩電話系統(tǒng)等)方便與外部機器(例如,任何種類的計算裝置)進行數(shù)據(jù)交換的通信裝置,例如發(fā)射器、接收器、收發(fā)器、調(diào)制解調(diào)器和/或網(wǎng)絡(luò)接口卡。
[0036]所示的例子中的處理器平臺500還包括用于存儲軟件和/或數(shù)據(jù)的一個或多個大容量存儲裝置528。這種大容量存儲裝置528的例子包括軟盤驅(qū)動器、硬盤驅(qū)動器、光盤驅(qū)動器、藍光盤驅(qū)動器、RAID系統(tǒng)和數(shù)字多功能盤(DVD)驅(qū)動器。
[0037]圖4中的編碼指令532可存儲在大容量存儲裝置528、易失性存儲器514、非易失性存儲器516和/或可移動有形計算機可讀存儲介質(zhì)(如CD或DVD)中。
[0038]從前述可以理解,以上所公開的方法、裝置、系統(tǒng)和制品減少和/或消除了主計算平臺在執(zhí)行對正在其上運行的目標平臺和應(yīng)用程序的仿真時的計算浪費。雖然,對于被測試的軟件可在實際的平臺硬件上如何執(zhí)行,包括所關(guān)注的目標平臺中每個和每一個相應(yīng)的硬件組件的軟件組件模型可產(chǎn)生相對準確的仿真,但是在正在執(zhí)行的軟件實際上不需要一個或多個軟件組件時,在整個仿真任務(wù)中包括所有軟件組件模型是浪費的。因此,本文所公開的示例性方法、裝置、系統(tǒng)和/或制品針對需要軟件組件模型作出貢獻的情況,優(yōu)化(改善)了軟件組件模型的應(yīng)用程序,同時在正在執(zhí)行的軟件不需要其他軟件組件模型的貢獻時,去除其他軟件組件模型。
[0039]以下涉及進一步的示例。用于優(yōu)化平臺仿真資源消耗的示例性裝置包括仿真管理器,用于在平臺仿真器上利用與平臺的硬件組件相對應(yīng)的組件模型啟動仿真;利用率閾值監(jiān)視器,用于基于被測試的軟件應(yīng)用引起的需求而識別與第一個組件模型相關(guān)聯(lián)的利用率值;以及組件監(jiān)視管理器,用于基于利用率閾值將第一個組件模型附著到平臺仿真器或從其分離。所公開的其他示例性裝置包括利用率閾值監(jiān)視器,用于生成包含組件模型和相應(yīng)的利用率閾值的組件利用率表。所公開的又一些其他示例性裝置包括組件利用率閾值監(jiān)視器,用于跟蹤高利用率閾值和低利用率閾值,其中,所述組件利用率表用于識別在仿真開始時是否附著或分離一些組件模型。所公開的一些示例性裝置包括利用率閾值監(jiān)視器,其調(diào)用相應(yīng)的組件監(jiān)視器來識別利用率值,其中,在周期性的、非周期性的、按計劃的或手動中的至少一種的基礎(chǔ)上調(diào)用所述組件監(jiān)視器。所公開的其他示例性裝置包括組件監(jiān)視管理器,用于在相應(yīng)的利用率值超過利用率閾值、并且第一個組件模型當前未被附著到平臺仿真器時,附著所述第一個組件模型。在一些示例中,本文所公開的裝置包括組件監(jiān)視管理器,用于在相應(yīng)的利用率值低于利用率閾值、并且第一個組件模型當前被附著到平臺仿真器時,分離所述第一個組件模型。所公開的又一個其他裝置包括組件監(jiān)視管理器,用于在附著和/或分離所述第一個組件模型之前中止仿真,并在附著和/或分離所述第一個組件模型之后重新啟動所述仿真。所公開的其他裝置包括被測試的軟件應(yīng)用,該軟件應(yīng)用包含操作系統(tǒng)或應(yīng)用程序中的至少一個。本文所公開的示例進一步包括具有上限閾值或下限閾值中的至少一個的利用率閾值,以及用于平臺的每個硬件組件的相應(yīng)組件監(jiān)視器,用于在周期性的、非周期性的、按計劃的或手動中的至少一種的基礎(chǔ)上來識別利用率值。
[0040]用于優(yōu)化平臺仿真資源消耗的示例性方法包括利用與平臺的硬件組件相對應(yīng)的組件模型在平臺仿真器上啟動仿真,基于被測試的軟件應(yīng)用所引起的需求而識別與第一個組件模型相關(guān)聯(lián)的利用率值,以及基于利用率閾值而將所述第一個組件模型附著到平臺仿真器或從其分離。所公開的其它示例性方法包括生成包含組件模型和相應(yīng)的利用率閾值的組件利用率表,其可進一步包括跟蹤高利用率閾值和低利用率閾值和/或識別在仿真開始時組件模型中的一些是否將被附著或分離。所公開的一些示例性方法包括調(diào)用相應(yīng)的組件監(jiān)視器來識別利用率值,其中在周期性的、非周期性的、按計劃的或手動的至少一種的基礎(chǔ)上調(diào)用所述組件監(jiān)視器。本文所公開又一些其它的示例性方法包括在相應(yīng)的利用率值超過利用率閾值、并且第一個組件模型當前未被附著到平臺仿真器時,附著所述第一個組件模型。本文所公開的一些示例性方法包括在相應(yīng)的利用率值低于利用率閾值、并且第一個組件模型當前附著到平臺仿真器時,分離所述第一個組件模型。本文所公開的又一些其他方法在附著和/或分離所述第一個組件模型之前中止仿真,并在附著和/或分離所述第一個組件模型之后重新啟動所述仿真。本文所公開的其他示例性方法包括對被測試的軟件應(yīng)用的仿真,例如,操作系統(tǒng)或應(yīng)用程序中的至少一個。所公開的示例性方法還包括具有上限閾值或下限閾值中的至少一個的利用率閾值,以及在周期性的、非周期性的、按計劃的或手動的至少一種的基礎(chǔ)上識別所述利用率值。
[0041]所公開的示例性計算機可讀存儲介質(zhì)包括利用與平臺的硬件組件相對應(yīng)的組件模型在平臺仿真器上啟動仿真,基于被測試的軟件應(yīng)用引起的需求而識別與第一個組件模型相關(guān)聯(lián)的利用率值,以及基于利用率閾值而將所述第一個組件模型附著到平臺仿真器或從其分離。所公開的一些示例性指令包括生成包含組件模型和相應(yīng)的利用率閾值的組件利用率表,其可跟蹤高利用率閾值和低利用率閾值。所公開的又一些其它示例性指令包括識別在仿真開始時組件模型中的一些是否將被附著或分離。所公開的一些示例性指令包括調(diào)用相應(yīng)的組件監(jiān)視器來識別利用率值,其中在周期性的、非周期性的、按計劃的或手動的至少一種的基礎(chǔ)上調(diào)用相應(yīng)的組件監(jiān)視器。所公開的其他示例性指令包括在相應(yīng)的利用率值超過利用率閾值、并且第一個組件模型當前未被附著到平臺仿真器時,附著所述第一個組件模型。所公開的又一些其它示例性指令包括在相應(yīng)的利用率值低于利用率閾值、并且第一個組件模型當前被附著到平臺仿真器時,分離所述第一個組件模型。本文所公開的其它示例包括指令,用于在附著和/或分離所述第一個組件模型之前中止仿真,并在附著和/或分離所述第一個組件模型之后重新啟動所述仿真。在本文所公開的一些示例中,所述指令包括對操作系統(tǒng)或應(yīng)用程序中的至少一個進行仿真,應(yīng)用所述利用率閾值作為上限閾值或下限閾值中的至少一個,和/或在周期性的、非周期性的、按計劃的或手動的至少一種的基礎(chǔ)上確定所述利用率值。
[0042]所公開的用于優(yōu)化平臺仿真資源消耗的示例性系統(tǒng)包括用于利用與平臺的硬件組件相對應(yīng)的組件模型在平臺仿真器上啟動仿真的裝置,用于基于被測試的軟件應(yīng)用引起的需求而識別與第一個組件模型相關(guān)聯(lián)的利用率值的裝置,以及用于基于利用率閾值而將所述第一個組件模型附著到平臺仿真器或從其分離的裝置。一些所公開的系統(tǒng)包括用于生成包含組件模型和相應(yīng)的利用率閾值的組件利用率表的裝置,其可進一步包括用于跟蹤高利用率閾值和低利用率閾值的裝置和/或用于識別在仿真開始時組件模型中的一些是否將被附著或分離的裝置。所公開的又一些其它的示例性系統(tǒng)包括用于調(diào)用相應(yīng)的組件監(jiān)視器來識別利用率值的裝置,其進一步包括用于在周期性的、非周期性的、按計劃的或手動的至少一種的基礎(chǔ)上調(diào)用所述組件監(jiān)視器的裝置。所公開的一些示例性系統(tǒng)包括用于在相應(yīng)的利用率值超過利用率閾值、并且第一個組件模型當前未附著到平臺仿真器時,附著所述第一個組件模型的裝置。本文所公開的其他示例性系統(tǒng)包括用于在相應(yīng)的利用率值低于利用率閾值、并且第一個組件模型當前被附著到平臺仿真器時,分離所述第一個組件模型的裝置。在其他示例中,所公開系統(tǒng)包括用于在附著和/或分離所述第一個組件模型之前中止仿真,并在附著和/或分離所述第一個組件模型之后重新啟動所述仿真的裝置。所公開的又一些其他示例性系統(tǒng)包括用于對操作系統(tǒng)或應(yīng)用程序中的至少一個進行仿真的裝置。
[0043]雖然本文公開了一些示例性的方法、裝置和制品,但本專利覆蓋的范圍并不限于此。相反,本專利覆蓋相當?shù)芈淙朐诒緦@臋?quán)利要求書范圍內(nèi)的所有方法、裝置和制品。
【主權(quán)項】
1.一種用于優(yōu)化平臺仿真器的裝置,包括: 仿真管理器,用于在平臺仿真器上利用與所述平臺的硬件組件相對應(yīng)的組件模型啟動仿真; 利用率閾值監(jiān)視器,用于基于被測試的軟件應(yīng)用所引起的需求而識別與第一個組件模型相關(guān)聯(lián)的利用率值;以及 組件監(jiān)視管理器,用于基于利用率值與利用率閾值的比較而將所述第一個組件模型附著到所述平臺仿真器或從其分離。2.如權(quán)利要求1所述的裝置,其中,所述利用率閾值監(jiān)視器用于生成包含組件模型和相應(yīng)的利用率閾值的組件利用率表。3.如權(quán)利要求2所述的裝置,其中,所述組件利用率表用于識別在仿真開始時是否附著或分離一些組件模型。4.如權(quán)利要求1所述的裝置,其中,所述利用率閾值監(jiān)視器用于調(diào)用相應(yīng)的組件監(jiān)視器來識別所述利用率值。5.如權(quán)利要求1所述的裝置,其中,所述組件監(jiān)視管理器用于在以下情況下附著所述第一個組件模型: 所述利用率值超過所述利用率閾值;且 所述第一個組件模型當前未被附著到所述平臺仿真器。6.如權(quán)利要求1所述的裝置,其中,所述所述組件監(jiān)視管理器用于在以下情況下分離所述第一個組件模型: 所述利用率值低于所述利用率閾值;且 所述第一個組件模型當前被附著到所述平臺仿真器。7.如權(quán)利要求1所述的裝置,其中,所述組件監(jiān)視管理器用于在附著和/或分離所述第一個組件模型之前中止仿真。8.如權(quán)利要求7所述的裝置,其中,所述組件監(jiān)視管理器用于在附著和/或分離所述第一個組件模型之后重新啟動所述仿真。9.如權(quán)利要求2、4、5或6所述的裝置,其中,所述利用率閾值包括上限閾值或下限閾值中的至少一個。10.如權(quán)利要求2、5或6所述的裝置,進一步包括用于平臺的每個硬件組件的相應(yīng)組件監(jiān)視器,用于在周期性的、非周期性的、按計劃的或手動的至少一種的基礎(chǔ)上來識別所述利用率值。11.一種用于優(yōu)化平臺仿真器的方法,包括: 利用與平臺的硬件組件相對應(yīng)的組件模型在平臺仿真器上啟動仿真; 基于被測試的軟件應(yīng)用所引起的需求而識別與第一個組件模型相關(guān)聯(lián)的利用率值;以及 基于所述利用率值與利用率閾值的比較而將所述第一個組件模型附著到所述平臺仿真器或從其分離。12.如權(quán)利要求11所述的方法,進一步包括生成包含組件模型和相應(yīng)的利用率閾值的組件利用率表。13.如權(quán)利要求12所述的方法,進一步包括識別在仿真開始時是否附著或分離一些組件模型。14.如權(quán)利要求11所述的方法,進一步包括調(diào)用相應(yīng)的組件監(jiān)視器來識別利用率值。15.如權(quán)利要求11所述的方法,進一步包括在以下情況下附著所述第一個組件模型: 所述利用率值超過所述利用率閾值;且 所述第一個組件模型當前未被附著到所述平臺仿真器。16.如權(quán)利要求11所述的方法,進一步包括在以下情況下分離所述第一個組件模型: 所述利用率值低于所述利用率閾值;且 所述第一個組件模型當前被附著到所述平臺仿真器。17.如權(quán)利要求11所述的方法,進一步包括在附著和/或分離所述第一個組件模型之前中止仿真。18.如權(quán)利要求17所述的方法,進一步包括在附著和/或分離所述第一個組件模型之后重新啟動所述仿真。19.如權(quán)利要求12、14、15或16所述的方法,其中,所述利用率閾值包括上限閾值或下限閾值中的至少一個。20.如權(quán)利要求12、15或16所述的方法,進一步包括在周期性的、非周期性的、按計劃的或手動的至少一種的基礎(chǔ)上來識別利用率值。21.—種存儲有指令的計算機可讀存儲介質(zhì),所述指令被執(zhí)行時,使機器用于至少: 利用與平臺的硬件組件相對應(yīng)的組件模型在平臺仿真器上啟動仿真; 基于被測試的軟件應(yīng)用所引起的需求而識別與第一個組件模型相關(guān)聯(lián)的利用率值;以及 基于所述利用率值與利用率閾值的比較而將所述第一個組件模型附著到所述平臺仿真器或從其分離。22.如權(quán)利要求21所述的計算機可讀存儲介質(zhì),進一步包括指令,所述指令被執(zhí)行時,使機器生成包含組件模型和相應(yīng)的利用率閾值的組件利用率表。23.如權(quán)利要求22所述的計算機可讀存儲介質(zhì),進一步包括指令,所述指令被執(zhí)行時,使機器追蹤高利用率閾值和低利用率閾值。24.如權(quán)利要求21所述的計算機可讀存儲介質(zhì),進一步包括指令,所述指令被執(zhí)行時,使機器調(diào)用相應(yīng)的組件監(jiān)視器來識別利用率值。25.—種用于優(yōu)化平臺仿真資源消耗的系統(tǒng),包括: 用于利用與平臺的硬件組件相對應(yīng)的組件模型在平臺仿真器上啟動仿真的裝置;用于基于被測試的軟件應(yīng)用所引起的需求而識別與第一個組件模型相關(guān)聯(lián)的利用率值的裝置;以及 用于基于所述利用率值與利用率閾值的比較而將所述第一個組件模型附著到平臺仿真器或從其分離的裝置。
【文檔編號】G06F11/22GK105917313SQ201380080678
【公開日】2016年8月31日
【申請日】2013年12月2日
【發(fā)明人】P·馬拉尼, M·塔姆罕卡, R·賈亞拉曼
【申請人】英特爾公司