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

管理工作負(fù)載存儲(chǔ)器分配的方法、設(shè)備和系統(tǒng)與流程

文檔序號(hào):11774396閱讀:161來源:國知局
管理工作負(fù)載存儲(chǔ)器分配的方法、設(shè)備和系統(tǒng)與流程

本公開內(nèi)容一般涉及存儲(chǔ)器管理,并且更具體地說,涉及管理工作負(fù)載存儲(chǔ)器分配的方法和設(shè)備。



背景技術(shù):

近年來,處理器已被開發(fā)以執(zhí)行增大的每秒浮點(diǎn)運(yùn)算數(shù)量(flops)。促成增大的flops的設(shè)計(jì)改進(jìn)包括但不限于更大的晶體管密度和多個(gè)核。在另外的晶體管和/或核添加到處理器時(shí),出現(xiàn)了功耗和熱的對(duì)應(yīng)增大,這可對(duì)flops性能起到反作用。

附圖說明

圖1是根據(jù)管理工作負(fù)載存儲(chǔ)器分配的本公開內(nèi)容的教導(dǎo)構(gòu)成的示例工作負(fù)載管理器的示意圖。

圖2是指示請(qǐng)求平臺(tái)的存儲(chǔ)器訪問的示例數(shù)據(jù)元素的示例表格。

圖3是指示請(qǐng)求平臺(tái)的存儲(chǔ)器訪問的示例數(shù)據(jù)陣列簡檔的示例表格。

圖4-6是表示可執(zhí)行以管理工作負(fù)載存儲(chǔ)器分配,實(shí)現(xiàn)圖1的示例工作負(fù)載管理器和/或構(gòu)建圖2和3的表格的示例機(jī)器可讀指令的流程圖。

圖7是可執(zhí)行圖4-6的示例機(jī)器可讀指令以實(shí)現(xiàn)圖1的示例工作負(fù)載管理器和/或構(gòu)建圖2和3的表格的示例系統(tǒng)的框圖。

具體實(shí)施方式

本文公開了管理工作負(fù)載存儲(chǔ)器分配的方法、制品和設(shè)備。示例方法包括識(shí)別與平臺(tái)相關(guān)聯(lián)的主存儲(chǔ)器和輔助存儲(chǔ)器,輔助存儲(chǔ)器具有與主存儲(chǔ)器的第二性能度量不同的第一性能度量,識(shí)別與在平臺(tái)上執(zhí)行期間由工作負(fù)載調(diào)用的多個(gè)數(shù)據(jù)元素相關(guān)聯(lián)的訪問度量,基于與多個(gè)數(shù)據(jù)元素的對(duì)應(yīng)數(shù)據(jù)元素相關(guān)聯(lián)的訪問度量,按優(yōu)先排列(prioritize)多個(gè)數(shù)據(jù)元素的列表,以及基于多個(gè)存儲(chǔ)器元素的第一存儲(chǔ)器元素的優(yōu)先級(jí),將多個(gè)數(shù)據(jù)元素的第一數(shù)據(jù)元素從主存儲(chǔ)器重新分配到輔助存儲(chǔ)器。

圖1是控制工作負(fù)載存儲(chǔ)器分配的示例工作負(fù)載控制器100的示意圖。在圖1的所示示例中,工作負(fù)載管理器100包括工作負(fù)載管理器102、數(shù)據(jù)元素識(shí)別器104、數(shù)據(jù)元素跟蹤器106、數(shù)據(jù)元素性能計(jì)算器108、存儲(chǔ)器管理器110、代碼修改器112及鏈接程序(linker)接口114。示例工作負(fù)載管理器100以通信方式連接到具有一個(gè)或更多個(gè)工作負(fù)載118、主存儲(chǔ)器120、輔助存儲(chǔ)器122和處理器124的示例平臺(tái)116。

圖1的平臺(tái)116的示例處理器124包括執(zhí)行示例工作負(fù)載118的任何數(shù)量的核。圖1的示例工作負(fù)載118可包括但不限于由編譯器機(jī)制從源代碼生成和鏈接的可執(zhí)行代碼(例如,二進(jìn)制碼)的一個(gè)或更多個(gè)程序。代碼的執(zhí)行可包括但不限于執(zhí)行一個(gè)或更多個(gè)程序,程序具有任何數(shù)量的相關(guān)聯(lián)動(dòng)態(tài)鏈路庫(dll)、一起鏈接到相同程序的一個(gè)或更多個(gè)單獨(dú)的文件和/或集群使用模型,集群使用模型中工作負(fù)載包括帶有涉及一個(gè)或更多個(gè)過程的任何數(shù)量的共享庫的程序。在示例工作負(fù)載118執(zhí)行期間,處理器124可訪問主存儲(chǔ)器120以操控和/或以其它方式處理數(shù)據(jù)。數(shù)據(jù)可包括但不限于數(shù)據(jù)陣列、文件、堆(heap)和/或棧(stack)。在本文中使用時(shí),對(duì)數(shù)據(jù)、陣列數(shù)據(jù)和/或數(shù)據(jù)陣列的引用包括可由處理器124處理和/或存儲(chǔ)在主存儲(chǔ)器120和/或輔助存儲(chǔ)器122中的所有類型的數(shù)據(jù)。在本文中使用時(shí),主存儲(chǔ)器120包括閃存、只讀存儲(chǔ)器(rom)、隨機(jī)存取存儲(chǔ)器(ram)和/或硬盤驅(qū)動(dòng)器存儲(chǔ)器。主存儲(chǔ)器120例如可包括任何類型的雙倍數(shù)據(jù)率(ddr)ram(例如,ddr2、ddr3、ddr4等)。

在一些示例中,平臺(tái)116的輔助存儲(chǔ)器122包括在與主存儲(chǔ)器120相比時(shí)展示更低等待時(shí)間、相干性和/或更高帶寬能力的增強(qiáng)性能設(shè)計(jì)。示例輔助存儲(chǔ)器122可包括在與示例主存儲(chǔ)器120對(duì)應(yīng)的對(duì)應(yīng)閃存、rom、ram和/或硬盤驅(qū)動(dòng)器存儲(chǔ)器相比時(shí)具有改進(jìn)性能度量的閃存、rom、ram和/或硬盤驅(qū)動(dòng)器存儲(chǔ)器。示例輔助存儲(chǔ)器122可基于其改進(jìn)的性能特性而具有相關(guān)聯(lián)溢價(jià),并且因此,輔助存儲(chǔ)器122的對(duì)應(yīng)大小/容量可實(shí)質(zhì)上低于主存儲(chǔ)器120的大小/容量。相應(yīng)地,示例輔助存儲(chǔ)器122的利用由于其相對(duì)更高的成本和更低的大小而得到仔細(xì)審查。示例輔助存儲(chǔ)器122可包括但不限于暫存ram。暫存ram是相對(duì)高速的內(nèi)部存儲(chǔ)器,可以是協(xié)調(diào)的(coherent),并且可位于處理器124上,在處理器124附近和/或在處理器封裝內(nèi)。

在操作中,示例工作負(fù)載管理器100識(shí)別改進(jìn)(例如,優(yōu)化)在示例平臺(tái)116上執(zhí)行的代碼的一個(gè)或更多個(gè)機(jī)會(huì)。如上所述,雖然添加到處理器124的另外晶體管和/或核可在執(zhí)行代碼時(shí)產(chǎn)生更快的結(jié)果,但添加的晶體管的對(duì)應(yīng)熱生成和/或功耗可在flops性能方面最終提供減小的收益。為在執(zhí)行一個(gè)或更多個(gè)工作負(fù)載118時(shí)改進(jìn)平臺(tái)性能,示例工作負(fù)載管理器100識(shí)別工作負(fù)載118的存儲(chǔ)器利用模式。如果由示例處理器124創(chuàng)建和/或以其它方式操控的第一數(shù)據(jù)陣列展示相對(duì)高的需求(例如,與第二數(shù)據(jù)陣列相比時(shí)的讀/寫操作的數(shù)量、數(shù)據(jù)陣列實(shí)質(zhì)影響工作負(fù)載/平臺(tái)性能的程度、相對(duì)比較等),則示例工作負(fù)載管理器100修改與示例工作負(fù)載118相關(guān)聯(lián)的代碼,以便為此類讀/寫操作利用相對(duì)更快類型的存儲(chǔ)器。示例工作負(fù)載管理器100執(zhí)行的代碼修改可包括但不限于源代碼修改、二進(jìn)制碼修改、動(dòng)態(tài)即時(shí)(jit)編碼器修改等。在一些示例中,可重新鏈接代碼以在某種程度上改進(jìn)速度而無需一個(gè)或更多個(gè)編譯操作。諸如示例輔助存儲(chǔ)器122等更快類型的存儲(chǔ)器允許通過比主存儲(chǔ)器120更低的等待時(shí)間和/或更高的帶寬進(jìn)行讀/寫操作,由此改進(jìn)在示例平臺(tái)116上執(zhí)行時(shí)工作負(fù)載118的性能。

示例工作負(fù)載管理器102檢索和/或以其它方式接收來自平臺(tái)116的工作負(fù)載118,并且執(zhí)行在受監(jiān)視環(huán)境中的工作負(fù)載以表征其操作。在一些示例中,工作負(fù)載管理器102獲得,檢索和/或以其它方式獲得與示例平臺(tái)116相關(guān)聯(lián)的信息,如平臺(tái)116利用和/或以其它方式可用的一個(gè)或更多個(gè)類型的存儲(chǔ)器。如下面進(jìn)一步詳細(xì)所述,如果平臺(tái)116包括具有在與示例主存儲(chǔ)器120相比時(shí)改進(jìn)的操作特性的一個(gè)或更多個(gè)類型的存儲(chǔ)器(例如,輔助存儲(chǔ)器122),則示例工作負(fù)載管理器100修改與工作負(fù)載118相關(guān)聯(lián)的代碼(例如,源代碼、一個(gè)或更多個(gè)二進(jìn)制碼、磁盤上有利于隨后執(zhí)行優(yōu)化的二進(jìn)制碼等),以利用此類存儲(chǔ)器改進(jìn)平臺(tái)性能。示例工作負(fù)載管理器102可一次或更多次調(diào)用工作負(fù)載118以表征其數(shù)據(jù)陣列和存儲(chǔ)器利用行為。在一些示例中,工作負(fù)載管理器102調(diào)用工作負(fù)載118的多次執(zhí)行迭代以確定平均特性。在其它示例中,工作負(fù)載管理器102通過一個(gè)或更多個(gè)輸入?yún)?shù)調(diào)用工作負(fù)載118以識(shí)別對(duì)應(yīng)數(shù)據(jù)陣列和/或存儲(chǔ)器利用行為(例如,應(yīng)力試驗(yàn))。

在示例工作負(fù)載118執(zhí)行期間,示例數(shù)據(jù)元素識(shí)別器104識(shí)別到諸如示例主存儲(chǔ)器120等平臺(tái)116的一個(gè)或更多個(gè)存儲(chǔ)器的數(shù)據(jù)訪問的實(shí)例。示例數(shù)據(jù)元素跟蹤器106為示例工作負(fù)載118采用的每個(gè)數(shù)據(jù)陣列計(jì)數(shù)數(shù)據(jù)訪問的檢測(cè)到的實(shí)例的數(shù)量,并且存儲(chǔ)此類計(jì)數(shù)以便以后分析工作負(fù)載118行為。在其它示例中,收集和/或監(jiān)視訪問計(jì)數(shù)可能不足以確定在與一個(gè)或更多個(gè)其它數(shù)據(jù)陣列相比時(shí)關(guān)注的數(shù)據(jù)陣列的相對(duì)分級(jí)。在此類情況下,收集和/或監(jiān)視用于關(guān)注的每個(gè)數(shù)據(jù)陣列的每時(shí)間單位的訪問允許進(jìn)行哪個(gè)(些)數(shù)據(jù)陣列可對(duì)平臺(tái)和/或工作負(fù)載性能貢獻(xiàn)最大益處的相對(duì)分級(jí)。如上所述,每個(gè)數(shù)據(jù)陣列可包括由示例工作負(fù)載采用的任何類型的存儲(chǔ)器結(jié)構(gòu),如陣列、文件、堆、棧、寄存器等。示例數(shù)據(jù)元素跟蹤器106也可從工作負(fù)載收集情報(bào)以發(fā)送到示例數(shù)據(jù)元素性能計(jì)算器108。

示例數(shù)據(jù)元素性能計(jì)算器108分析數(shù)據(jù)訪問的存儲(chǔ)實(shí)例,并且生成與執(zhí)行到存儲(chǔ)器的一個(gè)或更多個(gè)讀/寫操作的每個(gè)數(shù)據(jù)陣列相關(guān)聯(lián)的一個(gè)或更多個(gè)數(shù)據(jù)訪問行為的表格。如下面進(jìn)一步詳細(xì)所述,示例數(shù)據(jù)元素性能計(jì)算器108生成的表格可包括與每個(gè)數(shù)據(jù)陣列相關(guān)聯(lián)的存儲(chǔ)器訪問嘗試的數(shù)量的計(jì)數(shù)(訪問計(jì)數(shù))、存儲(chǔ)器訪問嘗試導(dǎo)致延遲(例如,處理器自旋、處理器等待存儲(chǔ)器變得可用于讀/寫操作、與負(fù)載和/或存儲(chǔ)相關(guān)聯(lián)的停頓)的實(shí)例數(shù)量的計(jì)數(shù)和/或在存儲(chǔ)器訪問嘗試造成處理器自旋(例如,處理器等待事件)的實(shí)例期間發(fā)生的周期數(shù)量。在某種程度上基于由示例數(shù)據(jù)元素性能計(jì)算器108識(shí)別的一個(gè)或更多個(gè)計(jì)數(shù)值,數(shù)據(jù)訪問行為的表格可將每個(gè)數(shù)據(jù)陣列分等級(jí)(例如,按優(yōu)先排列)。在一些示例中,等級(jí)(例如,優(yōu)先級(jí))是基于到存儲(chǔ)器的數(shù)據(jù)陣列訪問實(shí)例的數(shù)量,而在其它示例中,等級(jí)是基于由到存儲(chǔ)器的數(shù)據(jù)陣列訪問實(shí)例產(chǎn)生的處理器周期的數(shù)量。通常,雖然第一數(shù)據(jù)陣列可包括在與第二數(shù)據(jù)陣列相比到一個(gè)或更多個(gè)存儲(chǔ)器(例如,主存儲(chǔ)器120)相對(duì)更大數(shù)量的訪問嘗試,但第一數(shù)據(jù)陣列進(jìn)行的每個(gè)存儲(chǔ)器訪問實(shí)例可與相對(duì)小量的數(shù)據(jù)傳送相關(guān)聯(lián)。因此,與第一數(shù)據(jù)陣列相關(guān)聯(lián)的相對(duì)高計(jì)數(shù)可不指示經(jīng)主存儲(chǔ)器120到相對(duì)更快輔助存儲(chǔ)器122的數(shù)據(jù)陣列(例如,數(shù)據(jù)元素)使用的重新分配,用于改進(jìn)平臺(tái)116性能的候選更改(例如,優(yōu)化)。另一方面,在一些示例中,與第一數(shù)據(jù)陣列相關(guān)聯(lián)的相對(duì)低計(jì)數(shù)也可與在每個(gè)訪問嘗試期間相對(duì)大量的數(shù)據(jù)傳送相關(guān)聯(lián)。在此類在示例中,在配置(例如,優(yōu)化)平臺(tái)116性能以降低(例如,最小化)和/或消除在其它情況下在相對(duì)慢存儲(chǔ)器不能足夠快地執(zhí)行讀/寫操作時(shí)可發(fā)生的處理器自旋時(shí),更快的存儲(chǔ)器可以是有益的。

圖2示出由示例數(shù)據(jù)元素性能計(jì)算器108生成的示例表格200。在圖2的所示示例中,表格200包括數(shù)據(jù)元素列202、訪問計(jì)數(shù)列204、等待計(jì)數(shù)列206及處理器等待周期計(jì)數(shù)列208。示例數(shù)據(jù)元素列202包括由已參與示例工作負(fù)載118的示例數(shù)據(jù)元素識(shí)別器104識(shí)別的數(shù)據(jù)陣列的列表。雖然圖2的所示示例包括陣列,但本文中公開的方法、制品和/或設(shè)備不限于此。例如,可實(shí)現(xiàn)其它形式的存儲(chǔ)器,包括但不限于暫存存儲(chǔ)器、暫存器、堆、動(dòng)態(tài)分配的數(shù)據(jù)對(duì)象、棧等。對(duì)于每個(gè)識(shí)別的數(shù)據(jù)陣列,示例表格200包括在訪問計(jì)數(shù)列204中指示數(shù)據(jù)陣列已向平臺(tái)116的存儲(chǔ)器進(jìn)行訪問嘗試(例如,讀、寫等)的數(shù)量的對(duì)應(yīng)計(jì)數(shù)值。另外,示例表格200包括在等待計(jì)數(shù)列206中指示數(shù)據(jù)陣列訪問已造成對(duì)處理器的對(duì)應(yīng)等待的數(shù)量的對(duì)應(yīng)計(jì)數(shù)值。例如,表格200的第一行210與多次訪問存儲(chǔ)器712的“陣列1”相關(guān)聯(lián),但如示例等待計(jì)數(shù)列206中“0”所示,這些訪問實(shí)例均未造成任何對(duì)處理器124的對(duì)應(yīng)自旋/等待。因此,如示例處理器等待周期計(jì)數(shù)列308中“0”所示,示例“陣列1”未造成示例處理器124的任何對(duì)應(yīng)周期計(jì)數(shù)。

另一方面,表格200的示例第三行212與“陣列3”和訪問的存儲(chǔ)器6219次相關(guān)聯(lián),其中,存儲(chǔ)器訪問的101個(gè)實(shí)例造成了示例處理器124等待。處理器124等待的101個(gè)實(shí)例造成處理器周期的對(duì)應(yīng)數(shù)量是5050(例如,101次訪問嘗試的每次造成50個(gè)處理器周期的延遲)。表格200的示例第五行214與“陣列5”和訪問的存儲(chǔ)器3921次相關(guān)聯(lián),其中,存儲(chǔ)器訪問的2971個(gè)實(shí)例造成了示例處理器124等待。雖然“陣列5”訪問存儲(chǔ)器大致為“陣列3”數(shù)量的一半,但在“陣列5”存儲(chǔ)器訪問期間處理器124等待的2971個(gè)實(shí)例造成的處理器周期的對(duì)應(yīng)數(shù)量是2.1x109。相對(duì)而言,“陣列5”存儲(chǔ)器訪問造成的延遲實(shí)質(zhì)上大于與工作負(fù)載118相關(guān)聯(lián)的其它數(shù)據(jù)陣列造成的一個(gè)或更多個(gè)延遲,并且因此示例“陣列5”可以是用于與輔助存儲(chǔ)器122一起使用的候選。

在一些示例中,數(shù)據(jù)元素對(duì)示例工作負(fù)載118執(zhí)行期間的一個(gè)或更多個(gè)實(shí)例提出存儲(chǔ)器訪問需求。例如,第一數(shù)據(jù)元素(例如,“陣列5”)可在與工作負(fù)載118相關(guān)聯(lián)的執(zhí)行過程的前半部分期間執(zhí)行所有其存儲(chǔ)器訪問操作,而執(zhí)行過程的后半部分不包括到第一數(shù)據(jù)元素的其它訪問嘗試。與數(shù)據(jù)元素對(duì)平臺(tái)116存儲(chǔ)器提出需求時(shí)相關(guān)聯(lián)的信息可允許示例工作負(fù)載管理器100以保持輔助存儲(chǔ)器122的有限資源的方式分配存儲(chǔ)器使用。

圖3示出由數(shù)據(jù)元素性能計(jì)算器108生成的示例數(shù)據(jù)陣列簡檔表格300。在圖3的所示示例中,表格300包括數(shù)據(jù)元素列302和活動(dòng)簡檔列304。示例數(shù)據(jù)元素性能計(jì)算器108生成在示例工作負(fù)載118執(zhí)行過程(例如,工作負(fù)載開始時(shí)間350到工作負(fù)載停止時(shí)間352)期間用于每個(gè)對(duì)應(yīng)數(shù)據(jù)元素(例如,“陣列1”到“陣列27”)的存儲(chǔ)器訪問活動(dòng)的曲線圖。在執(zhí)行過程期間(水平軸),每個(gè)曲線表示相對(duì)于其它數(shù)據(jù)元素的訪問活動(dòng)的相對(duì)量值。示例表格300的第一行306與數(shù)據(jù)元素“陣列1”相關(guān)聯(lián),并且通過活動(dòng)簡檔308指示在工作負(fù)載執(zhí)行的后四分之三期間發(fā)生存儲(chǔ)器訪問活動(dòng)。示例表格300的第三行310與數(shù)據(jù)元素“陣列5”相關(guān)聯(lián),并且通過活動(dòng)簡檔312指示在工作負(fù)載執(zhí)行的前半部分期間發(fā)生存儲(chǔ)器訪問活動(dòng)。另外,與“陣列5”312相關(guān)聯(lián)的存儲(chǔ)器訪問活動(dòng)簡檔比與“陣列1”308相關(guān)聯(lián)的存儲(chǔ)器訪問活動(dòng)簡檔更高,這指示在用于每數(shù)據(jù)元素的每時(shí)間單位訪問嘗試數(shù)量中的相對(duì)差別。在一些示例中,比較每個(gè)訪問活動(dòng)簡檔高度和指示在工作負(fù)載118執(zhí)行期間的某個(gè)時(shí)間期內(nèi)存儲(chǔ)器訪問實(shí)例數(shù)量的一個(gè)或更多個(gè)閾值。其它示例閾值可基于由于存儲(chǔ)器等待時(shí)間和/或帶寬限制原因在處理器等待期間(自旋)內(nèi)發(fā)生的處理器周期的數(shù)量。雖然示例閾值可基于明確值,但其它示例閾值可基于與在工作負(fù)載118執(zhí)行期間活動(dòng)的所有數(shù)據(jù)陣列相比時(shí)的相對(duì)百分比。

在示例工作負(fù)載118被執(zhí)行和/或執(zhí)行多次迭代以收集數(shù)據(jù)陣列(和/或任何其它類型的存儲(chǔ)器)行為信息[例如,工作負(fù)載執(zhí)行簡檔、數(shù)據(jù)元素訪問計(jì)數(shù)、等待實(shí)例計(jì)數(shù)(例如,處理器等待)等]后,示例數(shù)據(jù)元素識(shí)別器104從表格200的示例數(shù)據(jù)元素列202選擇數(shù)據(jù)元素之一。示例存儲(chǔ)器管理器110確定示例輔助存儲(chǔ)器122的大小和未使用的輔助存儲(chǔ)器122的剩余空間的對(duì)應(yīng)量。如果在檢查的選擇的數(shù)據(jù)元素在工作負(fù)載118執(zhí)行的整個(gè)持續(xù)時(shí)間內(nèi)指示高需求,并且在示例輔助存儲(chǔ)器122中有足夠的剩余空間,則示例代碼修改器112標(biāo)示數(shù)據(jù)元素在執(zhí)行期間使用輔助存儲(chǔ)器122。在其它示例中,在工作負(fù)載的壽命期間可以有存儲(chǔ)器使用的時(shí)間變化。閾值可用于確定選擇的數(shù)據(jù)元素是否應(yīng)利用輔助存儲(chǔ)器122。如下所述,標(biāo)示成使用諸如更快的輔助存儲(chǔ)器122等特定存儲(chǔ)器的數(shù)據(jù)元素以后由示例代碼修改器112修改,經(jīng)編譯和/或鏈接以生成新二進(jìn)制碼和/或修改現(xiàn)有二進(jìn)制碼(例如,無以前源代碼修改)。

然而,如果選擇的數(shù)據(jù)元素不利用存儲(chǔ)器和/或在工作負(fù)載118執(zhí)行的整個(gè)持續(xù)時(shí)間內(nèi)進(jìn)行存儲(chǔ)器訪問嘗試,則示例存儲(chǔ)器管理器110確定選擇的數(shù)據(jù)元素是否在一部分的工作負(fù)載118執(zhí)行期間利用閾值量的存儲(chǔ)器資源。在操作中,示例存儲(chǔ)器管理器110可分析與關(guān)注的數(shù)據(jù)元素相關(guān)聯(lián)的活動(dòng)簡檔列304中的活動(dòng)簡檔,以識(shí)別閾值需求。例如,如果與“陣列5”相關(guān)聯(lián)的數(shù)據(jù)元素由存儲(chǔ)器管理器110分析,則存儲(chǔ)器管理器110可調(diào)用示例代碼修改器112以修改代碼(例如,源代碼、一個(gè)或更多個(gè)二進(jìn)制碼等),以便為工作負(fù)載118的前半部分利用輔助存儲(chǔ)器122,并且為工作負(fù)載118的后半部分利用主存儲(chǔ)器120。如圖3的每個(gè)對(duì)應(yīng)數(shù)據(jù)元素簡檔所示,在示例工作負(fù)載118的整個(gè)持續(xù)時(shí)間分割存儲(chǔ)器利用可允許更高需求數(shù)據(jù)元素在需要時(shí)更快地操作,并且在不再需要時(shí)釋放此類存儲(chǔ)器。

雖然實(shí)現(xiàn)工作負(fù)載管理器100的示例方式已在圖1-3中示出,但可以任何其它方式組合、劃分、重新布置、忽略、消除和/或?qū)崿F(xiàn)圖1-3所示的一個(gè)或更多個(gè)元素、過程和/或裝置。此外,圖1的示例工作負(fù)載管理器100、示例工作負(fù)載管理器102、示例數(shù)據(jù)元素識(shí)別器104、示例數(shù)據(jù)元素跟蹤器106、示例數(shù)據(jù)元素性能計(jì)算器108、示例存儲(chǔ)器管理器110、示例代碼修改器112、示例主存儲(chǔ)器120和/或示例輔助存儲(chǔ)器122可通過硬件、軟件、固件和/或硬件、軟件、固件的任何組合實(shí)現(xiàn)。因此,例如,示例工作負(fù)載管理器100、示例工作負(fù)載管理器102、示例數(shù)據(jù)元素識(shí)別器104、示例數(shù)據(jù)元素跟蹤器106、示例數(shù)據(jù)元素性能計(jì)算器108、示例存儲(chǔ)器管理器110、示例代碼修改器112、示例主存儲(chǔ)器120和/或示例輔助存儲(chǔ)器122的任何項(xiàng)能夠通過一個(gè)或更多個(gè)電路、可編程處理器、專用集成電路(asic)、可編程邏輯裝置(pld)和/或現(xiàn)場(chǎng)可編程邏輯裝置(fpld)等實(shí)現(xiàn)。在本專利的設(shè)備或系統(tǒng)權(quán)利要求項(xiàng)的任何項(xiàng)顯示為包括純軟件和/或固件實(shí)現(xiàn)時(shí),示例工作負(fù)載管理器100、示例工作負(fù)載管理器102、示例數(shù)據(jù)元素識(shí)別器104、示例數(shù)據(jù)元素跟蹤器106、示例數(shù)據(jù)元素性能計(jì)算器108、示例存儲(chǔ)器管理器110、示例代碼修改器112、示例主存儲(chǔ)器120和/或示例輔助存儲(chǔ)器122的至少一項(xiàng)由此明確定義為包括諸如存儲(chǔ)器、dvd、cd、bluray等存儲(chǔ)軟件和/或固件的至少一種有形計(jì)算機(jī)可讀介質(zhì)。還有,圖1的示例工作負(fù)載管理器100可包括除圖1-3中所示那些元素、過程和/或裝置外的一個(gè)或更多個(gè)元素、過程和/或裝置,或者取代圖1-3中所示那些的元素、過程和/或裝置,和/或可包括任何或所有所示元素、過程和/或裝置的不止一項(xiàng)。

圖4中示出表示用于實(shí)現(xiàn)圖1的工作負(fù)載管理器100的示例機(jī)器可讀指令的流程圖。在此示例中,機(jī)器可讀指令包括由諸如下面結(jié)合圖7所述示例計(jì)算機(jī)700中所示處理器712等處理器執(zhí)行的程序。程序可包含在一個(gè)或更多個(gè)有形計(jì)算機(jī)可讀介質(zhì)上存儲(chǔ)的軟件中,有形計(jì)算機(jī)可讀介質(zhì)如cd-rom、軟盤、硬驅(qū)動(dòng)器、數(shù)字多功能盤(dvd)、bluray盤或與處理器712相關(guān)聯(lián)的存儲(chǔ)器,但整個(gè)程序和/或其部分備選能夠由與處理器712不同的裝置執(zhí)行和/或包含在固件和/或?qū)S糜布?。此外,雖然示例程序參照?qǐng)D4所示流程圖進(jìn)行描述,但備選可使用實(shí)現(xiàn)示例工作負(fù)載管理器100的許多其它方法。例如,可更改框的執(zhí)行順序,和/或可更改、消除或組合一些框。

如上所述,圖4-6的示例過程可使用在諸如硬驅(qū)動(dòng)器、閃存、只讀存儲(chǔ)器(rom)、壓縮盤(cd)、數(shù)字多功能盤(dvd)、高速緩存、隨機(jī)存取存儲(chǔ)器(ram)和/或其中信息在任何持續(xù)時(shí)間內(nèi)存儲(chǔ)(例如,在延長時(shí)間期內(nèi),永久,在簡短時(shí)間內(nèi),暫時(shí)緩沖和/或信息的緩存)的任何其它存儲(chǔ)介質(zhì)等一個(gè)或更多個(gè)有形計(jì)算機(jī)可讀介質(zhì)上存儲(chǔ)的編碼指令(例如,計(jì)算機(jī)可讀指令)實(shí)現(xiàn)。在本文中使用時(shí),術(shù)語有形計(jì)算機(jī)可讀介質(zhì)明確定義成包括任何類型的計(jì)算機(jī)可讀存儲(chǔ)裝置,并且不排除傳播信號(hào)。另外或備選,圖4-6的示例過程可使用在諸如硬驅(qū)動(dòng)器、閃存、只讀存儲(chǔ)器、壓縮盤、數(shù)字多功能盤、高速緩存、隨機(jī)存取存儲(chǔ)器和/或其中信息在任何持續(xù)時(shí)間內(nèi)存儲(chǔ)(例如,在延長時(shí)間期內(nèi),永久,在簡短時(shí)間內(nèi),暫時(shí)緩沖和/或信息的緩存)的任何其它存儲(chǔ)介質(zhì)等一個(gè)或更多個(gè)非短暫性計(jì)算機(jī)可讀介質(zhì)上存儲(chǔ)的編碼指令(例如,計(jì)算機(jī)可讀指令)實(shí)現(xiàn)。在本文中使用時(shí),術(shù)語非短暫性計(jì)算機(jī)可讀介質(zhì)明確定義成包括任何類型的計(jì)算機(jī)可讀介質(zhì),并且不排除傳播信號(hào)。在本文中使用時(shí),在短語“至少”用作權(quán)利要求的前置語中的過渡術(shù)語時(shí),與術(shù)語“包括”是開放式相同,它是開放式。因此,使用“至少”作為其前置語中過渡術(shù)語的權(quán)利要求可包括除權(quán)利要求中明確敘述的那些元素外的元素。

圖4的程序400從框402開始,在該框中,示例工作負(fù)載管理器102從平臺(tái)116檢索,獲得和/或以其它方式接收工作負(fù)載118。示例工作負(fù)載118可存儲(chǔ)在平臺(tái)的存儲(chǔ)器上,并且可包括利用示例平臺(tái)116的一個(gè)或更多個(gè)資源的一個(gè)或更多個(gè)可執(zhí)行程序。任何數(shù)量的執(zhí)行迭代可由示例工作負(fù)載管理器102調(diào)用以表征在示例平臺(tái)116上工作負(fù)載的行為(框404)。在一些示例中,在收集指示數(shù)據(jù)元素行為的一個(gè)或更多個(gè)參數(shù)時(shí),工作負(fù)載管理器102調(diào)用工作負(fù)載118在平臺(tái)116上執(zhí)行一次。在其它示例中,工作負(fù)載管理器102調(diào)用工作負(fù)載118通過多次迭代執(zhí)行,以計(jì)算指示數(shù)據(jù)元素行為的一個(gè)或更多個(gè)參數(shù)的平均值。

在示例工作負(fù)載118執(zhí)行期間,數(shù)據(jù)元素識(shí)別器104識(shí)別到平臺(tái)116的一個(gè)或更多個(gè)存儲(chǔ)器的數(shù)據(jù)陣列訪問嘗試的實(shí)例,如嘗試訪問主存儲(chǔ)器120的數(shù)據(jù)陣列(框406)。一般而言,一些數(shù)據(jù)陣列很少由工作負(fù)載118調(diào)用,并且因此實(shí)質(zhì)對(duì)工作負(fù)載118執(zhí)行延遲不造成影響。在其它示例中,由工作負(fù)載118調(diào)用的其它數(shù)據(jù)陣列對(duì)存儲(chǔ)器訪問(例如,讀/寫訪問嘗試)進(jìn)行相對(duì)頻繁的嘗試,由此可能對(duì)總工作負(fù)載118執(zhí)行時(shí)間造成更大程度影響。為識(shí)別數(shù)據(jù)陣列與平臺(tái)116存儲(chǔ)器交互的程度,示例數(shù)據(jù)元素跟蹤器106收集性能信息,諸如但不限于計(jì)數(shù)每個(gè)數(shù)據(jù)陣列提出存儲(chǔ)器訪問請(qǐng)求的實(shí)例的數(shù)量和/或識(shí)別處理器停頓(框408)。計(jì)數(shù)數(shù)據(jù)訪問實(shí)例可包括但不限于采用性能監(jiān)視單元(pmu)收集來自一個(gè)或更多個(gè)模型特定寄存器(msr)的數(shù)據(jù)。msr可包括計(jì)數(shù)器寄存器、事件編程寄存器和/或全局事件寄存器。另外,pmu可執(zhí)行基于事件的采樣以計(jì)數(shù)與處理器活動(dòng)有關(guān)的事件,如處理器等待由例如存儲(chǔ)器等待時(shí)間和/或存儲(chǔ)器帶寬限制造成的存儲(chǔ)器可用性。在一些示例中,采樣可響應(yīng)工作負(fù)載的擾動(dòng)而進(jìn)行以了解到工作負(fù)載和/或平臺(tái)的一個(gè)或更多個(gè)強(qiáng)制輸入的影響。

關(guān)注的示例工作負(fù)載118在示例平臺(tái)116上執(zhí)行時(shí)(框410),控制任意多次返回框406和408以識(shí)別數(shù)據(jù)訪問實(shí)例和計(jì)數(shù)每個(gè)數(shù)據(jù)陣列進(jìn)行存儲(chǔ)器訪問嘗試的數(shù)量。關(guān)注的示例工作負(fù)載118執(zhí)行完成時(shí)(框410),示例數(shù)據(jù)元素性能計(jì)算器108生成收集的參數(shù)的表格(例如圖2的表格200)(框412)。收集的參數(shù)可包括但不限于已對(duì)存儲(chǔ)器進(jìn)行一次或更多次訪問嘗試的數(shù)據(jù)陣列的列表、每個(gè)數(shù)據(jù)陣列在工作負(fù)載118執(zhí)行期間對(duì)存儲(chǔ)器進(jìn)行訪問嘗試的數(shù)量的計(jì)數(shù)、數(shù)據(jù)陣列進(jìn)行的訪問嘗試造成對(duì)應(yīng)延遲(例如,等待實(shí)例,處理器自旋,造成處理器等待未完成先前讀/寫操作的存儲(chǔ)器)的數(shù)量的計(jì)數(shù)和/或處理器在等待訪問存儲(chǔ)器(例如,主存儲(chǔ)器120)時(shí)在工作負(fù)載118執(zhí)行期間經(jīng)過的處理器周期的數(shù)量的計(jì)數(shù)。雖然示例表格200(參見圖2)在本文中描述為由示例數(shù)據(jù)元素性能計(jì)算器108創(chuàng)建,但可生成任何其它類型的工作負(fù)載簡檔表示,包括但不限于數(shù)據(jù)陣列存儲(chǔ)器訪問活動(dòng)的熱圖。另外,示例數(shù)據(jù)元素性能計(jì)算器108生成示例數(shù)據(jù)陣列簡檔表300(參見圖3)以識(shí)別如下面進(jìn)一步所述在工作負(fù)載118執(zhí)行期間數(shù)據(jù)陣列存儲(chǔ)器訪問的時(shí)間指示(框412)。

為確定一個(gè)或更多個(gè)數(shù)據(jù)陣列是否能夠在工作負(fù)載118執(zhí)行期間有效地利用輔助存儲(chǔ)器122,示例存儲(chǔ)器管理器110、示例數(shù)據(jù)元素識(shí)別器104、示例數(shù)據(jù)元素性能計(jì)算器108及示例代碼修改器112分析輔助存儲(chǔ)器消耗(框414)。如下面進(jìn)一步詳細(xì)所述,如果預(yù)期對(duì)應(yīng)性能改進(jìn),則可分配一個(gè)或更多個(gè)數(shù)據(jù)陣列以使用性能更高的輔助存儲(chǔ)器122。如果預(yù)期性能改進(jìn),則示例代碼修改器112修改與一個(gè)或更多個(gè)數(shù)據(jù)陣列相關(guān)聯(lián)的代碼(例如,源代碼、一個(gè)或更多個(gè)二進(jìn)制碼等),以便在工作負(fù)載118執(zhí)行期間利用性能更高的輔助存儲(chǔ)器122(框416)。示例鏈接程序接口114調(diào)用編譯器/鏈接程序以編譯和/或鏈接修改的代碼,以生成經(jīng)改進(jìn)(例如優(yōu)化)以在所有或部分工作負(fù)載118執(zhí)行期間利用性能更高的輔助存儲(chǔ)器122的新二進(jìn)制碼(框418)。在一些示例中,在修改一個(gè)或更多個(gè)二進(jìn)制碼而不考慮對(duì)應(yīng)源代碼時(shí),不需要編譯器和/或以其它方式繞過編譯器。在其它示例中,簡檔信息可被分析并且引導(dǎo)示例鏈接程序接口114、二進(jìn)制碼修改器和/或運(yùn)行時(shí)(runtime)加載器以重新生成一個(gè)或更多個(gè)二進(jìn)制碼。

轉(zhuǎn)到圖5,圖中示出與分析數(shù)據(jù)訪問實(shí)例相關(guān)聯(lián)的另外細(xì)節(jié)(框412)。在圖5的所示示例中,示例數(shù)據(jù)元素性能計(jì)算器108生成帶有數(shù)據(jù)元素(數(shù)據(jù)陣列)的表格,這些數(shù)據(jù)元素已執(zhí)行到諸如示例主存儲(chǔ)器120等平臺(tái)116存儲(chǔ)器的至少一個(gè)數(shù)據(jù)訪問嘗試(框502)。例如,圖2的示例表格200包括數(shù)據(jù)元素列202,數(shù)據(jù)元素列202包含已進(jìn)行訪問平臺(tái)116存儲(chǔ)器的一次或更多次嘗試的一個(gè)或更多個(gè)數(shù)據(jù)陣列的列表。如圖2的示例訪問計(jì)數(shù)列204所示,示例數(shù)據(jù)元素性能計(jì)算器108也計(jì)數(shù)與每個(gè)數(shù)據(jù)元素相關(guān)聯(lián)的訪問嘗試的數(shù)量(框504)。如果示例數(shù)據(jù)元素列202中的一個(gè)或更多個(gè)數(shù)據(jù)元素包括造成處理器124等待(例如,被浪費(fèi)的處理器周期的自旋)的數(shù)據(jù)陣列,則示例數(shù)據(jù)元素性能計(jì)算器108計(jì)數(shù)該出現(xiàn)(occurrence)的對(duì)應(yīng)實(shí)例數(shù)量(框506)。另外,此類處理器等待實(shí)例的嚴(yán)重性的程度由示例數(shù)據(jù)元素性能計(jì)算器108通過計(jì)數(shù)在此類等待實(shí)例期間處理器周期的對(duì)應(yīng)數(shù)量來確定(框508)。

如圖3所示,為確定一個(gè)或更多個(gè)數(shù)據(jù)陣列訪問存儲(chǔ)器的工作負(fù)載118執(zhí)行的時(shí)間部分,示例數(shù)據(jù)元素性能計(jì)算器108生成數(shù)據(jù)陣列簡檔表格300(框510)。如上所述,數(shù)據(jù)元素性能計(jì)算器108生成與每個(gè)數(shù)據(jù)陣列相關(guān)聯(lián)的簡檔,以示出工作負(fù)載118執(zhí)行的哪個(gè)相對(duì)部分與存儲(chǔ)器訪問活動(dòng)相關(guān)聯(lián)。確定工作負(fù)載118內(nèi)數(shù)據(jù)陣列訪問存儲(chǔ)器的相對(duì)時(shí)間位置的至少一個(gè)益處是能夠在工作負(fù)載118執(zhí)行期間在一個(gè)或更多個(gè)數(shù)據(jù)陣列之間明智地共享性能更高的輔助存儲(chǔ)器122。例如,如果工作負(fù)載118的兩個(gè)數(shù)據(jù)陣列由于輔助存儲(chǔ)器122的存儲(chǔ)器大小限制原因而不能同時(shí)得到利用,則第一數(shù)據(jù)陣列可為一部分工作負(fù)載118執(zhí)行使用輔助存儲(chǔ)器122,并且隨后釋放輔助存儲(chǔ)器122以便第二數(shù)據(jù)陣列能夠?yàn)槭S嗖糠值墓ぷ髫?fù)載118執(zhí)行利用輔助存儲(chǔ)器122。示例數(shù)據(jù)元素性能計(jì)算器108也可基于一個(gè)或更多個(gè)閾值將一個(gè)或更多個(gè)數(shù)據(jù)元素分類和/或指派等級(jí)次序以確定哪些數(shù)據(jù)元素應(yīng)分配到性能更高的輔助存儲(chǔ)器122(框512)。在其它示例中,開發(fā)性能的成本模型可指示輔助存儲(chǔ)器122的利用不可對(duì)總平臺(tái)性能產(chǎn)生增多的益處。

轉(zhuǎn)到圖6,圖中示出與分析輔助存儲(chǔ)器122消耗相關(guān)聯(lián)的另外細(xì)節(jié)(框414)。在圖6所示示例中,示例數(shù)據(jù)元素識(shí)別器104從圖2的表格200和/或圖3的數(shù)據(jù)陣列簡檔表格300選擇關(guān)注的數(shù)據(jù)元素(數(shù)據(jù)陣列)之一。在一些示例中,如上所述,基于對(duì)應(yīng)等級(jí)次序選擇數(shù)據(jù)元素。例如,可將與最高處理器計(jì)數(shù)等待值相關(guān)聯(lián)的數(shù)據(jù)元素選擇為用于改進(jìn)(例如,優(yōu)化)平臺(tái)116性能的最佳候選數(shù)據(jù)元素。諸如示例輔助存儲(chǔ)器122等性能更高的輔助存儲(chǔ)器可實(shí)質(zhì)上比主要存儲(chǔ)器120更小和/或更貴。為確定與平臺(tái)116相關(guān)聯(lián)的輔助存儲(chǔ)器122的大小,示例存儲(chǔ)器管理器110確定輔助存儲(chǔ)器122的對(duì)應(yīng)大小(框604),并且確定其可用剩余空間(框606)。在其它示例中,輔助存儲(chǔ)器122的大小是靜態(tài)的,并且可執(zhí)行一次而不是在環(huán)內(nèi),如在獲得工作負(fù)載后(框402)。

如果示例數(shù)據(jù)元素性能計(jì)算器108確定關(guān)注的數(shù)據(jù)陣列在整個(gè)示例工作負(fù)載118執(zhí)行內(nèi)展示相對(duì)高的對(duì)存儲(chǔ)器的訪問嘗試出現(xiàn)(框608),則示例存儲(chǔ)器管理器110確定輔助存儲(chǔ)器122是否具有足夠的空間容納關(guān)注的數(shù)據(jù)陣列(框610)。如果沒有足夠空間,則示例數(shù)據(jù)元素識(shí)別器104確定另外的候選數(shù)據(jù)陣列是否可供考慮(框612)。例如,數(shù)據(jù)元素識(shí)別器104可選擇圖2的表格200中下一最高等級(jí)的數(shù)據(jù)陣列。另一方面,如果在用于關(guān)注的候選數(shù)據(jù)陣列的輔助存儲(chǔ)器122中有足夠空間(框610),則示例代碼修改器112標(biāo)示要修改的數(shù)據(jù)陣列(框614),以便在所有候選數(shù)據(jù)陣列已考慮后,可修改與標(biāo)示的數(shù)據(jù)陣列相關(guān)聯(lián)的代碼(例如,一個(gè)或更多個(gè)二進(jìn)制碼、源代碼等)(參見圖4的框416)。

如果數(shù)據(jù)元素性能計(jì)算器108確定關(guān)注的數(shù)據(jù)陣列在工作負(fù)載118執(zhí)行期間一部分時(shí)間(例如,閾值部分)內(nèi)嘗試訪問存儲(chǔ)器(框608),則示例存儲(chǔ)器管理器確定此類訪問嘗試是否超過閾值需求(框616)。如上所述,閾值需求可指示在工作負(fù)載118執(zhí)行期間的某個(gè)時(shí)間期內(nèi)存儲(chǔ)器訪問實(shí)例的數(shù)量、與所有數(shù)據(jù)陣列相比時(shí)和/或基于由于存儲(chǔ)器等待時(shí)間和/或帶寬限制原因在處理器等待期間(自旋)內(nèi)發(fā)生的處理器周期的數(shù)量(或相對(duì)數(shù)量)的存儲(chǔ)器訪問實(shí)例的相對(duì)數(shù)量。在關(guān)注的數(shù)據(jù)元素(數(shù)據(jù)陣列)超過指示存儲(chǔ)器訪問需求和/或指示造成處理器周期延遲的一個(gè)或更多個(gè)閾值的部分工作負(fù)載118執(zhí)行期間,示例代碼修改器112標(biāo)示關(guān)注的數(shù)據(jù)元素以便為該部分工作負(fù)載118執(zhí)行使用輔助存儲(chǔ)器122(框618)。如果在圖2的示例表格200和/或圖3的數(shù)據(jù)陣列簡檔表格300中仍有另外的數(shù)據(jù)元素(框612),則控制返回框602。

圖7是能夠執(zhí)行圖4-6的指令以實(shí)現(xiàn)圖1的工作負(fù)載管理器100的示例計(jì)算機(jī)700的框圖。計(jì)算機(jī)700例如能夠是服務(wù)器、個(gè)人計(jì)算機(jī)、移動(dòng)電話(例如,蜂窩電話)、個(gè)人數(shù)字助理(pda)、因特網(wǎng)電器、游戲控制臺(tái)、機(jī)頂盒或任何其它類型的計(jì)算裝置。

本示例的計(jì)算機(jī)700包括處理器712。例如,處理器712能夠由來自任何所需系列或制造商的一個(gè)或更多個(gè)微處理器或控制器實(shí)現(xiàn)。

處理器712經(jīng)總線718與包括易失性存儲(chǔ)器714和非易失性存儲(chǔ)器716的主存儲(chǔ)器進(jìn)行通信。易失性存儲(chǔ)器714可通過同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(sdram)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dram)、rambus動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(rdram)和/或任何其他類型隨機(jī)存取存儲(chǔ)器裝置實(shí)施。非易失性存儲(chǔ)器716可由閃存和/或任何其它所需類型的存儲(chǔ)器裝置實(shí)現(xiàn)。對(duì)主存儲(chǔ)器714、716的訪問由存儲(chǔ)器控制器控制。

計(jì)算機(jī)700也包括接口電路720。接口電路720可通過任何類型的接口標(biāo)準(zhǔn)實(shí)現(xiàn),如以太網(wǎng)接口、通用串行總線(usb)和/或pci高速接口。

一個(gè)或更多個(gè)輸入裝置722連接到接口電路720。輸入裝置722允許用戶將數(shù)據(jù)和命令輸入處理器712。輸入裝置例如能夠由鍵盤、鼠標(biāo)、觸摸屏、觸摸墊、軌跡球、iso點(diǎn)(isopoint)和/或話音識(shí)別系統(tǒng)實(shí)現(xiàn)。

一個(gè)或更多個(gè)輸出裝置724也連接到接口電路720。輸出裝置724例如能夠由顯示裝置(例如,液晶顯示器、陰極射線管顯示器(crt)、打印機(jī)和/或揚(yáng)聲器)實(shí)現(xiàn)。接口電路720因此一般包括圖形驅(qū)動(dòng)程序卡。

接口電路720也包括諸如調(diào)制解調(diào)器或網(wǎng)絡(luò)接口卡等通信裝置(例如,通信裝置756),以促進(jìn)經(jīng)網(wǎng)絡(luò)726[例如,以太網(wǎng)連接、數(shù)字訂戶線路(dsl)、電話線、同軸電纜、蜂窩電話系統(tǒng)等]與外部計(jì)算機(jī)的數(shù)據(jù)交換。

計(jì)算機(jī)700也包括一個(gè)或更多個(gè)海量存儲(chǔ)裝置728以便存儲(chǔ)軟件和數(shù)據(jù)。此類海量存儲(chǔ)裝置728的示例包括軟盤驅(qū)動(dòng)器、硬盤驅(qū)動(dòng)器、壓縮盤驅(qū)動(dòng)器和數(shù)字多功能盤(dvd)驅(qū)動(dòng)器。

圖4-6的編碼指令758可在海量存儲(chǔ)裝置728中,在易失性存儲(chǔ)器714中,在非易失性存儲(chǔ)器716中和/或在諸如cd或dvd等可拆卸存儲(chǔ)介質(zhì)上存儲(chǔ)。

從上述內(nèi)容中,將領(lǐng)會(huì)的是,通過識(shí)別可包括數(shù)據(jù)陣列、棧、堆等利用負(fù)責(zé)平臺(tái)延遲的存儲(chǔ)器資源的候選數(shù)據(jù)元素,上面公開的方法、設(shè)備和制品有利于存儲(chǔ)器管理。通過以分配候選數(shù)據(jù)元素以使用性能更高的存儲(chǔ)器類型的方式重寫代碼(例如,源代碼、一個(gè)或更多個(gè)二進(jìn)制碼等),平臺(tái)的總體操作可通過降低或甚至消除由在等待訪問相對(duì)更慢存儲(chǔ)器的數(shù)據(jù)元素造成的被浪費(fèi)的處理器周期而得以改進(jìn)(例如,優(yōu)化)。

本文公開了管理工作負(fù)載存儲(chǔ)器分配的方法、系統(tǒng)、設(shè)備和制品。一些公開的示例方法包括識(shí)別與平臺(tái)相關(guān)聯(lián)的主存儲(chǔ)器和輔助存儲(chǔ)器,輔助存儲(chǔ)器具有與主存儲(chǔ)器的第二性能度量不同的第一性能度量,識(shí)別與在平臺(tái)上執(zhí)行期間由工作負(fù)載調(diào)用的多個(gè)數(shù)據(jù)元素相關(guān)聯(lián)的訪問度量,基于與多個(gè)數(shù)據(jù)元素的對(duì)應(yīng)數(shù)據(jù)元素相關(guān)聯(lián)的訪問度量,按優(yōu)先排列多個(gè)數(shù)據(jù)元素的列表,以及基于多個(gè)存儲(chǔ)器元素的第一存儲(chǔ)器元素的優(yōu)先級(jí),將多個(gè)數(shù)據(jù)元素的第一數(shù)據(jù)元素從主存儲(chǔ)器重新分配到輔助存儲(chǔ)器。另外,示例方法包括具有比主存儲(chǔ)器更低等待時(shí)間的輔助存儲(chǔ)器或比主存儲(chǔ)器具有更高帶寬的輔助存儲(chǔ)器。在一些示例中,訪問度量包括由多個(gè)數(shù)據(jù)元素的對(duì)應(yīng)元素對(duì)主存儲(chǔ)器的訪問嘗試的數(shù)量,包括檢測(cè)該數(shù)量的訪問嘗試的至少之一是否造成等待事件,包括計(jì)數(shù)與等待事件相關(guān)聯(lián)的處理器周期的數(shù)量,以及其中按優(yōu)先排列多個(gè)數(shù)據(jù)元素的列表包括比較與多個(gè)數(shù)據(jù)元素的每個(gè)數(shù)據(jù)元素相關(guān)聯(lián)的處理器周期的數(shù)量。一些示例包括通過比較與多個(gè)數(shù)據(jù)元素相關(guān)聯(lián)的等待事件的數(shù)量,按優(yōu)先排列多個(gè)數(shù)據(jù)元素的列表,并且在其它示例中,識(shí)別訪問度量還包括測(cè)量與多個(gè)數(shù)據(jù)元素相關(guān)聯(lián)的每單位時(shí)間的訪問嘗試的數(shù)量。本文中公開的示例也包括在每時(shí)間單位訪問嘗試的數(shù)量超過閾值時(shí)選擇多個(gè)數(shù)據(jù)元素之一以從主存儲(chǔ)器重新分配到輔助存儲(chǔ)器,并且還包括在每時(shí)間單位訪問嘗試的數(shù)量超過閾值時(shí)將多個(gè)數(shù)據(jù)元素的第一數(shù)據(jù)元素從主存儲(chǔ)器重新分配到輔助存儲(chǔ)器,并且在每時(shí)間單位訪問嘗試的數(shù)量低于閾值時(shí)將多個(gè)數(shù)據(jù)元素的第一數(shù)據(jù)元素從輔助存儲(chǔ)器重新分配到主存儲(chǔ)器。還有的其它示例包括多個(gè)數(shù)據(jù)元素的第一數(shù)據(jù)元素為工作負(fù)載的執(zhí)行的第一部分利用輔助存儲(chǔ)器,并且為工作負(fù)載的執(zhí)行的第二部分利用主存儲(chǔ)器。一些示例包括多個(gè)數(shù)據(jù)元素的第一數(shù)據(jù)元素利用輔助存儲(chǔ)器,而多個(gè)數(shù)據(jù)元素的第二數(shù)據(jù)元素利用主存儲(chǔ)器,并且其它示例包括交替多個(gè)數(shù)據(jù)元素的第一數(shù)據(jù)元素從輔助存儲(chǔ)器到主存儲(chǔ)器的利用和多個(gè)數(shù)據(jù)元素的第二數(shù)據(jù)元素從主存儲(chǔ)器到輔助存儲(chǔ)器的利用。其它示例包括在輔助存儲(chǔ)器具有用于多個(gè)數(shù)據(jù)元素的第一數(shù)據(jù)元素的空間時(shí),將多個(gè)數(shù)據(jù)元素的第一數(shù)據(jù)元素從主存儲(chǔ)器重新分配到輔助存儲(chǔ)器。

為數(shù)據(jù)元素利用管理工作負(fù)載存儲(chǔ)器的示例設(shè)備包括:工作負(fù)載管理器,以識(shí)別與平臺(tái)相關(guān)聯(lián)的主存儲(chǔ)器和輔助存儲(chǔ)器,輔助存儲(chǔ)器具有與主存儲(chǔ)器的第二性能度量不同的第一性能度量;工作負(fù)載控制器,以識(shí)別與在平臺(tái)上執(zhí)行期間由工作負(fù)載調(diào)用的多個(gè)數(shù)據(jù)元素相關(guān)聯(lián)的訪問度量;數(shù)據(jù)元素性能計(jì)算器,以基于與多個(gè)數(shù)據(jù)元素的對(duì)應(yīng)數(shù)據(jù)元素相關(guān)聯(lián)的訪問度量,按優(yōu)先排列多個(gè)數(shù)據(jù)元素的列表;以及存儲(chǔ)器管理器,以基于多個(gè)存儲(chǔ)器元素的第一存儲(chǔ)器元素的優(yōu)先級(jí),將多個(gè)數(shù)據(jù)元素的第一數(shù)據(jù)元素從主存儲(chǔ)器重新分配到輔助存儲(chǔ)器。另外的示例設(shè)備包括存儲(chǔ)器管理器基于比主存儲(chǔ)器更低的等待時(shí)間參數(shù),選擇輔助存儲(chǔ)器,以及其中,存儲(chǔ)器管理器基于比主存儲(chǔ)器更高的帶寬,選擇輔助存儲(chǔ)器,和/或其中,數(shù)據(jù)元素性能計(jì)算器要確定到主存儲(chǔ)器的訪問嘗試是否造成等待事件。其它示例設(shè)備包括代碼修改器以在每時(shí)間單位訪問嘗試的數(shù)量超過閾值時(shí)將數(shù)據(jù)元素使用從主存儲(chǔ)器重新分配到輔助存儲(chǔ)器,其中,代碼修改器修改與工作負(fù)載相關(guān)聯(lián)的源代碼或二進(jìn)制碼至少之一。

包括存儲(chǔ)機(jī)器可讀指令的一些公開的示例制品,指令執(zhí)行時(shí),促使機(jī)器識(shí)別與平臺(tái)相關(guān)聯(lián)的主存儲(chǔ)器和輔助存儲(chǔ)器,輔助存儲(chǔ)器具有與主存儲(chǔ)器的第二性能度量不同的第一性能度量,識(shí)別與在平臺(tái)上執(zhí)行期間由工作負(fù)載調(diào)用的多個(gè)數(shù)據(jù)元素相關(guān)聯(lián)的訪問度量,基于與多個(gè)數(shù)據(jù)元素的對(duì)應(yīng)數(shù)據(jù)元素相關(guān)聯(lián)的訪問度量,按優(yōu)先排列多個(gè)數(shù)據(jù)元素的列表,以及基于多個(gè)存儲(chǔ)器元素的第一存儲(chǔ)器元素的優(yōu)先級(jí),將多個(gè)數(shù)據(jù)元素的第一數(shù)據(jù)元素從主存儲(chǔ)器重新分配到輔助存儲(chǔ)器。其它示例制品促使機(jī)器確定由多個(gè)數(shù)據(jù)元素的對(duì)應(yīng)元素對(duì)主存儲(chǔ)器的訪問嘗試的數(shù)量,以及檢測(cè)該數(shù)量的訪問嘗試的至少之一是否造成等待事件。還有的其它示例制品促使機(jī)器計(jì)數(shù)與等待事件相關(guān)聯(lián)的處理器周期的數(shù)量,比較與多個(gè)數(shù)據(jù)元素的每個(gè)數(shù)據(jù)元素相關(guān)聯(lián)的處理器周期的數(shù)量以按優(yōu)先排列多個(gè)數(shù)據(jù)元素的列表,以及比較與多個(gè)數(shù)據(jù)元素相關(guān)聯(lián)的等待事件的數(shù)量以按優(yōu)先排列多個(gè)數(shù)據(jù)元素的列表。還有的其它示例制品促使機(jī)器測(cè)量與多個(gè)數(shù)據(jù)元素相關(guān)聯(lián)的每單位時(shí)間的訪問嘗試的數(shù)量以識(shí)別訪問度量,在每時(shí)間單位訪問嘗試的數(shù)量超過閾值時(shí)選擇多個(gè)數(shù)據(jù)元素之一以從主存儲(chǔ)器重新分配到輔助存儲(chǔ)器,并且在每時(shí)間單位訪問嘗試的數(shù)量超過閾值時(shí)將多個(gè)數(shù)據(jù)元素的第一數(shù)據(jù)元素從主存儲(chǔ)器重新分配到輔助存儲(chǔ)器,并且在每時(shí)間單位訪問嘗試的數(shù)量低于閾值時(shí)將多個(gè)數(shù)據(jù)元素的第一數(shù)據(jù)元素從輔助存儲(chǔ)器重新分配到主存儲(chǔ)器。在一些示例制品中,機(jī)器要促使機(jī)器通過多個(gè)數(shù)據(jù)元素的第一數(shù)據(jù)元素,為工作負(fù)載的執(zhí)行的第一部分利用輔助存儲(chǔ)器,并且為工作負(fù)載的執(zhí)行的第二部分利用主存儲(chǔ)器,以及通過多個(gè)數(shù)據(jù)元素的第一數(shù)據(jù)元素,利用輔助存儲(chǔ)器,而多個(gè)數(shù)據(jù)元素的第二數(shù)據(jù)元素利用主存儲(chǔ)器。另外,示例制品促使機(jī)器交替多個(gè)數(shù)據(jù)元素的第一數(shù)據(jù)元素從輔助存儲(chǔ)器到主存儲(chǔ)器的利用和多個(gè)數(shù)據(jù)元素的第二數(shù)據(jù)元素從主存儲(chǔ)器到輔助存儲(chǔ)器的利用,以及在輔助存儲(chǔ)器具有用于多個(gè)數(shù)據(jù)元素的第一數(shù)據(jù)元素的空間時(shí),將多個(gè)數(shù)據(jù)元素的第一數(shù)據(jù)元素從主存儲(chǔ)器重新分配到輔助存儲(chǔ)器。

雖然某些示例方法、設(shè)備和制品已在本文中描述,但本專利的覆蓋的范圍并不限于此。相反,本專利覆蓋完全位于本專利的權(quán)利要求書的范圍內(nèi)的所有方法、設(shè)備和制品。

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