包括編碼器優(yōu)化模塊,所述編碼器優(yōu)化模塊包括用于生成和優(yōu)化被提供給計(jì)算設(shè)備1302和由相應(yīng)的編碼器108實(shí)現(xiàn)的碼本的邏輯和/或功能。應(yīng)當(dāng)認(rèn)識到的是,編碼器優(yōu)化模塊的某些方面可以位于計(jì)算設(shè)備1302處,而其它方面可以位于服務(wù)器1306處。客戶端側(cè)功能可以由客戶端編碼器優(yōu)化模塊1310來提供,并且服務(wù)器側(cè)功能可以由服務(wù)器編碼器優(yōu)化模塊1314來提供。在一實(shí)施例中,客戶端編碼器優(yōu)化模塊1310可以包括移動應(yīng)用以及用戶接口特征和控制,所述移動應(yīng)用提供與服務(wù)器1314的數(shù)據(jù)通信和同步。例如,用戶1304可以選擇性地啟用和禁用碼本優(yōu)化。如下文更加詳細(xì)的描述的,客戶端編碼器優(yōu)化模塊1310可以控制碼本優(yōu)化數(shù)據(jù)到服務(wù)器1306(例如,壓縮統(tǒng)計(jì)和各種設(shè)備和/或用戶度量)的傳輸。通常,服務(wù)器編碼器優(yōu)化模塊1306包括用于以下操作的邏輯和/或功能:從計(jì)算設(shè)備1302接收碼本優(yōu)化數(shù)據(jù),生成碼本并且將碼本提供給每個計(jì)算設(shè)備1302,以及經(jīng)由數(shù)據(jù)庫1316來優(yōu)化跨越多個用戶1304的網(wǎng)絡(luò)的碼本。
[0072]圖14示出了服務(wù)器數(shù)據(jù)庫1316的實(shí)施例。服務(wù)器數(shù)據(jù)庫1316存儲針對計(jì)算機(jī)系統(tǒng)1302中的每個用戶1304的、具有與用戶1304和/或相應(yīng)的計(jì)算設(shè)備1302相關(guān)聯(lián)的以下信息中的一個或多個信息的各種類型的數(shù)據(jù):設(shè)備存儲器圖像1404,被提供給計(jì)算設(shè)備1302的碼本1406,以及從計(jì)算設(shè)備1302接收的碼本壓縮統(tǒng)計(jì)1407和設(shè)備/用戶度量1408。數(shù)據(jù)庫1316中的每行對應(yīng)于與計(jì)算機(jī)系統(tǒng)1300中的不同的用戶1304相關(guān)聯(lián)的數(shù)據(jù)。第一行對應(yīng)于用戶1304a。第二行對應(yīng)于用戶1304b。第三行對應(yīng)于用戶1304c。最后一行對應(yīng)于用戶1304η。應(yīng)當(dāng)認(rèn)識到的是,可以存儲任意數(shù)量的行以容納任意數(shù)量的用戶。
[0073]圖16示出了服務(wù)器編碼器優(yōu)化模塊1306的實(shí)施例的架構(gòu)、操作和/或功能。在框1602處,可以生成針對計(jì)算機(jī)系統(tǒng)1300中的每個用戶1304的唯一的碼本。每個碼本與計(jì)算設(shè)備1302中的一個計(jì)算設(shè)備相關(guān)聯(lián),如上所述,并且每個碼本被配置用于根據(jù)壓縮方案來編碼相應(yīng)的計(jì)算設(shè)備1302中的存儲器數(shù)據(jù)。壓縮方案可以包括基于熵的編碼算法,諸如在圖5中示出的霍夫曼編碼方案。如圖15所示,碼本1406包括用于標(biāo)識要被壓縮的最頻繁的符號或“模式”的碼表,其中為每個模式分配相應(yīng)的碼字1504。
[0074]可以通過構(gòu)建計(jì)算設(shè)備1302的虛擬存儲器圖像1404來生成針對計(jì)算設(shè)備1302的初始碼本1406。服務(wù)器1306可以接收針對各種軟件組件(例如,應(yīng)用、應(yīng)用框架、服務(wù)/運(yùn)行時間環(huán)境、庫、內(nèi)核、操作系統(tǒng)等)的各種類型的信息(例如圖17的信息1700)。服務(wù)器1306可以解壓縮應(yīng)用和其它預(yù)壓縮的結(jié)構(gòu),并且構(gòu)建虛擬存儲器圖像1404。
[0075]應(yīng)當(dāng)認(rèn)識到的是,可以以各種方式來生成碼本1406。在一個實(shí)施例中,服務(wù)器1306采用分階段的碼本生成過程。第一階段涉及基于每個軟件組件內(nèi)的模式的靜態(tài)分布來生成一階靜態(tài)碼本。服務(wù)器1306可以搜索虛擬存儲器圖像1404中的每個分量,以得到最為重復(fù)的代碼模式1502,并且為這些代碼模式分配最短的碼字1504。也可以為頻繁地運(yùn)行過程分配最短的碼字1504。第二階段可以涉及動態(tài)碼本生成和驗(yàn)證??梢栽诜?wù)器1306上運(yùn)行的虛擬設(shè)備上加載和腳本編寫/執(zhí)行虛擬存儲器圖像1404??梢詫⒋鎯ζ魇聞?wù)記入日志并且記錄讀取/寫入業(yè)務(wù)??梢曰趧討B(tài)分布模式而不是靜態(tài)分布模式來執(zhí)行類似的模式搜索。
[0076]再次參照圖16,在框1604處,服務(wù)器1306將唯一的碼本1406經(jīng)由通信網(wǎng)絡(luò)1308提供給相應(yīng)的計(jì)算設(shè)備1302。計(jì)算設(shè)備1302可以接收碼本1406并且開始使用碼本1406來壓縮存儲器數(shù)據(jù),如上所述。在框1606處,服務(wù)器1306可以從計(jì)算設(shè)備1302接收壓縮統(tǒng)計(jì)和/或設(shè)備度量。壓縮統(tǒng)計(jì)可以包括例如C比特統(tǒng)計(jì),如圖11所示。
[0077]圖17示出了信息1700的各種示例,諸如,例如設(shè)備度量1702以及可以用于優(yōu)化碼本1406的值1704、1706和1708??梢詫嚎s統(tǒng)計(jì)和設(shè)備度量存儲在數(shù)據(jù)庫1316中。第一設(shè)備度量1702可以包括過程標(biāo)識符(ProcessJDx),所示過程標(biāo)識符標(biāo)識了請求存儲器資源的特定的過程或任務(wù),并且所述過程標(biāo)識符可以包括時間戳的值,過程或任務(wù)運(yùn)行的平均時間(%aVg_time_rUnning),以及與過程或任務(wù)相關(guān)聯(lián)的版本信息。第二設(shè)備度量1702可以包括硬件標(biāo)識符(Ph0ne_HardWare_ID),所述硬件標(biāo)識符可以包括用于標(biāo)識硬件型號(Hardware_model)和任何電話修正(Phone_revis1n)的值。第三設(shè)備度量1702可以包括具有用于跟蹤時間戳和平均CPU利用的值的CPU利用。第四設(shè)備度量1702可以包括針對根據(jù)主ID 1104(圖11)識別的特定的客戶端的壓縮統(tǒng)計(jì)。第五設(shè)備度量1702可以包括軟件標(biāo)識符(Phone_Software_ID),所述軟件標(biāo)識符可以包括用于標(biāo)識版本信息的值。
[0078]應(yīng)當(dāng)認(rèn)識到的是,多個過程可以同時地運(yùn)行,并且可以接收與計(jì)算設(shè)備1302相關(guān)聯(lián)的大量額外的度量。在一實(shí)施例中,諸如電話硬件ID和電話軟件ID的度量可以用于單獨(dú)地交叉引用,并且從數(shù)據(jù)庫1316在本地獲得默認(rèn)出廠軟件,以創(chuàng)建默認(rèn)虛擬存儲器圖像1404,以及諸如過程ID和版本的度量可以用于單獨(dú)地交叉引用,并且從數(shù)據(jù)庫1316在本地獲得用戶1304已安裝的任何額外的軟件,并且隨后修改出廠虛擬存儲器圖像1404,以創(chuàng)建特定于用戶的虛擬存儲器圖像1404。在一實(shí)施例中,這可以利用極大地減小的通信網(wǎng)絡(luò)1308帶寬來完成,這是因?yàn)橛脩?304的計(jì)算設(shè)備1302上的實(shí)際的圖像1404不是直接被發(fā)送到服務(wù)器1306??梢岳眯碌能浖M件來周期地更新本地?cái)?shù)據(jù)庫1316。
[0079]在框1608處,服務(wù)器1306可以處理來自計(jì)算機(jī)系統(tǒng)1304中的用戶1304中的每個用戶的壓縮統(tǒng)計(jì)和/或設(shè)備度量,并且生成針對計(jì)算設(shè)備1302中的一個或多個計(jì)算設(shè)備的經(jīng)優(yōu)化的碼本1406。在一實(shí)施例中,服務(wù)器1306可以跨越所有具有類似的設(shè)備度量的用戶1304來尋找,并且希望得到具有最大的成功壓縮百分比的C比特統(tǒng)計(jì),這可以轉(zhuǎn)化為改善的功率節(jié)省。在框1610處,可以將經(jīng)優(yōu)化的碼本1406提供給計(jì)算設(shè)備1302中的一個或多個計(jì)算設(shè)備。
[0080]在本說明書中描述的過程或處理流程中的某些步驟自然地先于其它步驟,以使本發(fā)明如所描述的運(yùn)作。但是,本發(fā)明不限于所描述的步驟的次序,如果這樣的次序或順序不改變本發(fā)明的功能的話。即,認(rèn)識到的是,在不脫離本發(fā)明的范圍和精神的情況下,某些步驟可以在其它步驟之前、之后或與其它步驟并行地(大體同時地)執(zhí)行。在某些實(shí)例中,可以在不脫離本發(fā)明的情況下省略或不執(zhí)行某些步驟。此外,諸如“其后”、“隨后”、“接下來”等的詞語不旨在限制步驟的次序。這些詞語僅用于引導(dǎo)讀者瀏覽示例性的方法的描述。
[0081]另外,編程領(lǐng)域的普通技術(shù)人員能夠基于例如在本說明書中的流程圖和相關(guān)聯(lián)的描述,在沒有困難的情況下編寫計(jì)算機(jī)代碼或識別適當(dāng)?shù)挠布?或電路,以實(shí)現(xiàn)所公開的發(fā)明。
[0082]因此,對程序代碼指令的特定集合或詳細(xì)的硬件設(shè)備的公開不被認(rèn)為是獲得對如何實(shí)現(xiàn)以及使用本發(fā)明的足夠的理解所必須的。在上文描述中并且結(jié)合附圖更加詳細(xì)地解釋了所要求保護(hù)的計(jì)算機(jī)實(shí)現(xiàn)的過程的發(fā)明性功能,所述附圖可以說明各個過程流。
[0083]在一個或多個示例性的方面中,所描述的功能可以在硬件、軟件、固件或其任意組合中實(shí)現(xiàn)。如果在軟件中實(shí)現(xiàn),則所述功能可以作為一個或多個指令或代碼存儲在計(jì)算機(jī)可讀介質(zhì)中或者通過其進(jìn)行傳輸。計(jì)算機(jī)可讀介質(zhì)包括計(jì)算機(jī)存儲介質(zhì)和通信介質(zhì)二者,所述通信介質(zhì)包括促進(jìn)計(jì)算機(jī)程序從一個地方傳送到另一個地方的任何介質(zhì)。存儲介質(zhì)可以是可由計(jì)算機(jī)存取的任何可用的介質(zhì)。通過舉例而非限制性的方式,這樣的計(jì)算機(jī)可讀介質(zhì)可以包括RAM、ROM、EEPROM、NAND 閃存、NOR 閃存、M-RAM、P-RAM、R-RAM、CD-ROM或其它光盤存儲裝置、磁盤存儲裝置或其它磁存儲設(shè)備、或者可以用于以指令或數(shù)據(jù)結(jié)構(gòu)的形式攜帶或存儲期望的程序代碼以及可以由計(jì)算機(jī)來存取的任何其它介質(zhì)。
[0084]此外,任何連接被適當(dāng)?shù)胤Q為計(jì)算機(jī)可讀介質(zhì)。例如,如果使用同軸電纜、光纖光纜、雙絞線、數(shù)字用戶線(“DSL”)或無線技術(shù)(例如紅外、無線和微波)從網(wǎng)站、服務(wù)器或其它遠(yuǎn)程源發(fā)送軟件,那么同軸電纜、光纖光纜、雙絞線、DSL或無線技術(shù)(例如紅外、無線和微波)包括在介質(zhì)的定義中。
[0085]如本文所使用的,磁盤和光盤包括壓縮光盤(“CD”)、激光光盤、光盤、數(shù)字多功能光盤(“DVD”)、軟盤和藍(lán)光光盤,其中磁盤通常磁性地復(fù)制數(shù)據(jù),而光盤則利用激光來光學(xué)地復(fù)制數(shù)據(jù)。上述的組合也應(yīng)當(dāng)包括在計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。
[0086]在不脫離本發(fā)明的精神和范圍的情況下,替代的實(shí)施例對于與本發(fā)明所屬領(lǐng)域的普通技術(shù)人員將是顯而易見的。因此,盡管詳細(xì)地說明和描述了所選擇的方面,但是將理解的是,如下面的權(quán)利要求書所限定的,可以在不脫離本發(fā)明的精神和范圍的情況下在其中做出各種替代和改變。
【主權(quán)項(xiàng)】
1.一種用于提供功率節(jié)省碼本優(yōu)化的方法,所述方法包括: 生成針對多個計(jì)算設(shè)備的唯一的碼本,每個唯一的碼本被配置用于編碼相應(yīng)的計(jì)算設(shè)備中的存儲器數(shù)據(jù); 將所述唯一的碼本經(jīng)由通信網(wǎng)絡(luò)提供給相應(yīng)的計(jì)算設(shè)備; 經(jīng)由所述通信網(wǎng)絡(luò)從所述計(jì)算設(shè)備中的一個或多個計(jì)算設(shè)備接收壓縮統(tǒng)計(jì),所述壓縮統(tǒng)計(jì)與相