比率/功耗/延時(shí)、CPU操作狀態(tài)、電池狀態(tài)、流量狀態(tài),等等。例如,作為檢查的結(jié)果,如果剩余電池電力小于閾值,則低功耗的硬件加速器可被選擇為壓縮執(zhí)行者。
[0145]在操作1330中,CPU(或控制器)可判定是否優(yōu)選CPU和硬件加速器同時(shí)作為壓縮執(zhí)行者來(lái)壓縮存儲(chǔ)器。
[0146]如果在操作S1330中優(yōu)選CPU和硬件加速器同時(shí)壓縮存儲(chǔ)器,則電子設(shè)備可前進(jìn)到操作S1340,然后CPU和硬件加速器同時(shí)執(zhí)行壓縮。如果在操作S1330中優(yōu)選CPU或硬件加速器中的任一個(gè)來(lái)壓縮存儲(chǔ)器,則電子設(shè)備可前進(jìn)到操作S1350來(lái)判定哪一個(gè)適合作為壓縮執(zhí)行者。
[0147]同時(shí),雖然操作S1330和操作S1350在圖13中是分離的,但關(guān)于選擇CPU和硬件加速器兩者作為壓縮執(zhí)行者的判定和關(guān)于CPU和硬件加速器中的哪一個(gè)適合于壓縮執(zhí)行者的判定可通過單個(gè)操作來(lái)做出。
[0148]隨后,在操作S1350中,CPU (或控制器)可判定CPU和硬件加速器中的哪一個(gè)適合于壓縮執(zhí)行者。例如,CPU在高靈活性、高成本或者大于預(yù)定值的充足電池電力的情況下可判定CPU是適當(dāng)?shù)?。此外,CPU(或控制器)在根據(jù)系統(tǒng)需求要求高服務(wù)速率或低功耗或者CPU的利用率相當(dāng)?shù)偷那闆r下可判定硬件加速器是適當(dāng)?shù)?。此外,CPU(或控制器)在根據(jù)系統(tǒng)需求要求非常高的服務(wù)速率的情況下可判定CPU和硬件加速器兩者同時(shí)執(zhí)行壓縮是適當(dāng)?shù)摹?br>[0149]例如,當(dāng)CPU需要執(zhí)行應(yīng)用時(shí),也就是說(shuō),當(dāng)CPU要用于執(zhí)行諸如用于顯示圖像的圖庫(kù)應(yīng)用、電影播放器應(yīng)用或者網(wǎng)絡(luò)瀏覽應(yīng)用之類的應(yīng)用時(shí),硬件加速器可被選擇為壓縮執(zhí)行者。
[0150]此外,當(dāng)要求短延時(shí)時(shí),CPU和硬件加速器兩者為了迅速壓縮可被選擇為壓縮執(zhí)行者。
[0151]當(dāng)在操作S1350中CPU被選擇為壓縮執(zhí)行者時(shí),電子設(shè)備可前進(jìn)到操作S1360。在操作S1360中,CPU可對(duì)被請(qǐng)求壓縮的存儲(chǔ)器數(shù)據(jù)進(jìn)行壓縮。當(dāng)在操作S1350中硬件加速器被選擇為壓縮執(zhí)行者時(shí),電子設(shè)備可前進(jìn)到操作S1370。在操作S1370中,硬件加速器可對(duì)被請(qǐng)求壓縮的存儲(chǔ)器數(shù)據(jù)進(jìn)行壓縮。
[0152]現(xiàn)在,根據(jù)本發(fā)明的實(shí)施例,將描述根據(jù)系統(tǒng)要求的服務(wù)速率選擇壓縮執(zhí)行者的操作。如果系統(tǒng)要求的服務(wù)速率高于硬件加速器的最大服務(wù)速率,則可判定CPU和硬件加速器同時(shí)執(zhí)行壓縮(操作S1330)。在此情況下,CPU和硬件加速器可在下一操作中同時(shí)執(zhí)行壓縮。
[0153]根據(jù)另一實(shí)施例,當(dāng)剩余電池電力小于50%時(shí),或者當(dāng)CPU的利用率小于10%時(shí),根據(jù)系統(tǒng)的預(yù)定配置,可判定硬件加速器要執(zhí)行壓縮以便降低功耗并且將CPU轉(zhuǎn)換到空閑狀態(tài)中。在此情況下,硬件加速器可執(zhí)行壓縮。相反,當(dāng)剩余電池電力大于50%時(shí),或者當(dāng)由于有限的成本而沒有采用硬件加速器時(shí),CPU可執(zhí)行壓縮。
[0154]根據(jù)系統(tǒng)需求的判定只是本發(fā)明的實(shí)施例的一個(gè)示例,而本發(fā)明的范圍不限于此。很明顯,系統(tǒng)需求的每個(gè)項(xiàng)目的條件可隨著系統(tǒng)而變化。
[0155]現(xiàn)在,將參考圖14至圖17來(lái)描述根據(jù)本發(fā)明的實(shí)施例的判定壓縮單位的方法。圖14至圖17示出了上文記載的圖3的操作S330中的判定存儲(chǔ)器壓縮單位的詳細(xì)操作。
[0156]圖14是圖示出根據(jù)本發(fā)明的實(shí)施例的用于選擇存儲(chǔ)器壓縮單位的方法的流程圖,并且圖15是圖示出根據(jù)本發(fā)明的實(shí)施例的用于選擇存儲(chǔ)器壓縮單位的方法的流程圖。此外,圖16是圖示出根據(jù)本發(fā)明的實(shí)施例的多頁(yè)壓縮系統(tǒng)的操作的流程圖,并且圖17圖示了根據(jù)本發(fā)明的實(shí)施例的基于硬件加速器的壓縮系統(tǒng)的特征。
[0157]參考圖14,包括存儲(chǔ)器的電子設(shè)備在操作S1410中可檢查系統(tǒng)需求。例如,系統(tǒng)需求可以是輸入緩沖器大小N、延時(shí)、可用存儲(chǔ)器空間,等等。然而,系統(tǒng)需求不限于此。
[0158]在操作S1430中,CPU(或控制器)可判定是單頁(yè)壓縮適合作為壓縮單位還是多頁(yè)壓縮適合作為壓縮單位。CPU(或控制器)在短延時(shí)時(shí)段或者可用存儲(chǔ)器不足的情況下或者在多媒體流服務(wù)應(yīng)用正在進(jìn)行時(shí),可判定單頁(yè)壓縮是適當(dāng)?shù)?。此外,在可用存?chǔ)器充足的情況下,可判定多頁(yè)壓縮是適當(dāng)?shù)?。判定條件不限于此。
[0159]當(dāng)在操作S1430中判定單頁(yè)壓縮適當(dāng)時(shí),電子設(shè)備可前進(jìn)到操作S1450以執(zhí)行單頁(yè)壓縮。當(dāng)在操作S1430中判定多頁(yè)壓縮適當(dāng)時(shí),電子設(shè)備可前進(jìn)到操作S1470以執(zhí)行多頁(yè)壓縮。
[0160]操作S1430中的判定可如下進(jìn)行。例如,當(dāng)作為一種用于檢查壓縮系統(tǒng)的試運(yùn)行要求短延時(shí)(表明存儲(chǔ)器壓縮的結(jié)果多快得出的指標(biāo))時(shí),單頁(yè)壓縮可能是優(yōu)選的。
[0161]此外,根據(jù)應(yīng)用的特征,例如,在由使用多媒體流服務(wù)的正在進(jìn)行的應(yīng)用引起的重流量的情況下,單頁(yè)壓縮可能是優(yōu)選的。詳細(xì)地說(shuō),重流量意味著有大量工作要處理。雖然多頁(yè)壓縮可高速進(jìn)行,但其要求處理大量工作,因此多頁(yè)壓縮不適合于重流量。雖然在該實(shí)施例中單頁(yè)壓縮對(duì)于重流量是優(yōu)選的,但本發(fā)明不限于此。
[0162]此外,CPU(或控制器)可根據(jù)輸入緩沖器大小來(lái)判定壓縮單位。例如,CPU(或控制器)可進(jìn)行配置以使得在N = I的情況下按一頁(yè)進(jìn)行壓縮(單頁(yè)),并且在N ^ I的情況下按幾頁(yè)進(jìn)行壓縮(多頁(yè))。
[0163]此外,單頁(yè)壓縮要求相對(duì)較小的輸入緩沖器大小N,因此其適合于系統(tǒng)的可用存儲(chǔ)器小于總存儲(chǔ)器的預(yù)定值(例如,20%)的情況(可用存儲(chǔ)器值不限于此,并且其可根據(jù)用戶或電子設(shè)備的配置而不同)。相反,多頁(yè)壓縮適合于系統(tǒng)的可用存儲(chǔ)器大于總存儲(chǔ)器的預(yù)定值(例如,20%)的情況。然而,每個(gè)項(xiàng)的判定參考可根據(jù)系統(tǒng)而不同。
[0164]此外,當(dāng)壓縮執(zhí)行者與壓縮單位有關(guān)時(shí),硬件加速器適合于多頁(yè)壓縮,而CPU適合于單頁(yè)壓縮。如上所述,雖然壓縮單位可受壓縮執(zhí)行者的影響,但本發(fā)明不限于此,并且判定壓縮執(zhí)行者和壓縮單位的操作可彼此獨(dú)立。
[0165]接下來(lái),將參考圖15來(lái)描述初始化多頁(yè)壓縮系統(tǒng)的操作。在操作S1510中,CPU(或控制器)可將存儲(chǔ)器分配到輸入緩沖器。輸入緩沖器是用于存儲(chǔ)要壓縮的頁(yè)的空間,其可以是一種虛擬RAM盤。此外,輸入緩沖器大小“N”指的是要存儲(chǔ)的頁(yè)的數(shù)目,其可以變化。輸入緩沖器大小可由要存儲(chǔ)的頁(yè)的數(shù)目以及其大小來(lái)確定。
[0166]接下來(lái),在操作S1530中,CPU(或控制器)可將存儲(chǔ)器分配到輸出緩沖器。輸出緩沖器可以是用于按頁(yè)單位存儲(chǔ)壓縮結(jié)果的空間,并且其大小可依據(jù)輸入緩沖器大小N而變化。將存儲(chǔ)器分配到輸出緩沖器可在操作S1510之前進(jìn)行。
[0167]CPU(或控制器)在操作S1550中可判定是否所有的緩沖器都被分配了存儲(chǔ)器。如果不是所有緩沖器都被分配了,則CPU(或控制器)可返回到操作S1510以將存儲(chǔ)器分配到每個(gè)緩沖器。當(dāng)判定所有緩沖器都已被分配時(shí),CPU(或控制器)在操作S1570中可為元數(shù)據(jù)分配存儲(chǔ)器。
[0168]壓縮信息存儲(chǔ)空間可存儲(chǔ)元數(shù)據(jù)。壓縮信息存儲(chǔ)空間可以是用于存儲(chǔ)關(guān)于頁(yè)的信息的空間,可通過用于分離要壓縮的頁(yè)與經(jīng)壓縮的頁(yè)的內(nèi)在索引來(lái)管理該空間。此外,壓縮信息存儲(chǔ)空間可包括存儲(chǔ)相應(yīng)頁(yè)的緩沖器的位置,以及該緩沖器中的該位置的地址。其可包括經(jīng)壓縮的頁(yè)的大小。
[0169]在操作S1590中,CPU (或控制器)可選擇壓縮處理類型。
[0170]現(xiàn)在,將參考圖16來(lái)描述多頁(yè)壓縮系統(tǒng)的操作。
[0171]在操作S1610中,CPU(或控制器)可進(jìn)行控制以在輸入緩沖器中存儲(chǔ)壓縮目標(biāo)數(shù)據(jù)。在操作S1630中,CPU(或控制器)可初始化與輸入緩沖器相對(duì)應(yīng)的元數(shù)據(jù)空間以存儲(chǔ)壓縮目標(biāo)數(shù)據(jù)。
[0172]在操作S1650中,CPU(或控制器)可根據(jù)輸入緩沖器狀態(tài)來(lái)判定是否要求壓縮。例如,當(dāng)輸入緩沖器空間已滿或者輸入緩沖器中的數(shù)據(jù)量超過預(yù)定閾值時(shí),CPU(或控制器)可判定開始存儲(chǔ)器壓縮。
[0173]CPU (或控制器)在操作S1670中可開始?jí)嚎s輸入緩沖器中存儲(chǔ)的數(shù)據(jù)。在CPU壓縮數(shù)據(jù)的情況下,CPU可不發(fā)送單獨(dú)的信號(hào)。硬件加速器可接收關(guān)于壓縮的指令從而壓縮數(shù)據(jù)。硬件加速器可從CPU接收關(guān)于壓縮的指令。CPU和/或硬件加速器可執(zhí)行壓縮。CPU和/或硬件加速器可按每頁(yè)對(duì)輸入緩沖器中存儲(chǔ)的頁(yè)進(jìn)行壓縮,從而將其存儲(chǔ)在輸出緩沖器中。在操作S1680中,壓縮操作正在進(jìn)行中。在壓縮期間,CPU可待機(jī),而不把要壓縮的額外頁(yè)存儲(chǔ)在輸入緩沖器中。在硬件加速器完成壓縮之后,CPU可繼續(xù)把要壓縮的數(shù)據(jù)存儲(chǔ)在輸入緩沖器中。
[0174]在操作S1690中,可存儲(chǔ)關(guān)于經(jīng)壓縮的頁(yè)的信息。關(guān)于經(jīng)壓縮的頁(yè)的信息可被更新以被存儲(chǔ)在元數(shù)據(jù)中。此外,關(guān)于等待壓縮的頁(yè)和關(guān)于壓縮失敗的頁(yè)的信息可被更新在元數(shù)據(jù)中。一般地,OS按頁(yè)單位管理存儲(chǔ)器空間,因此按每頁(yè)的壓縮可促進(jìn)存儲(chǔ)器的解壓縮。
[0175]接下來(lái),將參考圖17來(lái)描述基于硬件加速器的多頁(yè)壓縮系統(tǒng)的特征。
[0176]CPU可在輸入緩沖器中最多存儲(chǔ)N頁(yè),并且可通過硬件加速器來(lái)按每頁(yè)執(zhí)行壓縮。從而,CPU對(duì)于N/μ的時(shí)間可處于空閑狀態(tài)中,因此可降低功耗??筛鶕?jù)CPU的空閑時(shí)間、系統(tǒng)可用存儲(chǔ)器空間、服務(wù)速率等等來(lái)動(dòng)態(tài)地確定輸入緩沖器大小N。
[0177]此外,CPU在硬件加速器對(duì)輸入緩沖器中存儲(chǔ)的頁(yè)進(jìn)行壓縮時(shí),可不把要壓縮的額外頁(yè)存儲(chǔ)在相應(yīng)的輸入緩沖器中,并且在硬件加速器進(jìn)行的壓縮完成之后,CPU可繼續(xù)存儲(chǔ)頁(yè)。這可減少CPU和硬件加速器之間的交互,從而降低通信開銷。同時(shí),可以使用多個(gè)輸入緩沖器和輸出緩沖器,據(jù)此,CPU可減少阻塞現(xiàn)象,根據(jù)這種現(xiàn)象,要壓縮的頁(yè)不能被存儲(chǔ),而是處于等待狀態(tài)。
[0178]另外,輸入緩沖器和輸出緩沖器的存儲(chǔ)器區(qū)域可被分配到物理上連續(xù)的空間,因此硬件加速器僅利用相應(yīng)緩沖器區(qū)域的開始地址和大小信息就能執(zhí)行直接存儲(chǔ)器訪問(direct memory access,DMA)操作。據(jù)此,可以提高數(shù)據(jù)傳送速度并且可以簡(jiǎn)化硬件結(jié)構(gòu)。
[0179]以下,將描述圖3的操作S340中的壓縮處理。
[0180]這里,在描述根據(jù)本發(fā)明的實(shí)施例的壓縮處理之前將描述理解本發(fā)明所必要的系統(tǒng)參數(shù)之間的關(guān)系。
[0181]圖18圖示了根據(jù)本發(fā)明的實(shí)施例的系統(tǒng)參數(shù)之間的關(guān)系。
[0182]圖18示出了系統(tǒng)參數(shù)之間的關(guān)系,S卩,到達(dá)速率λ、服務(wù)速率μ和壓縮比率R。λ是到達(dá)速率的指標(biāo),意思是從OS生成要壓縮的頁(yè)的平均速度。μ是壓縮服務(wù)速率的指標(biāo),意思是平均服務(wù)速率。R指的是壓縮比率。
[0183]參考示出λ和μ之間的關(guān)系的曲線圖,為了保持系統(tǒng)穩(wěn)定,服務(wù)速率μ應(yīng)當(dāng)大于到達(dá)速率λ,因此服務(wù)速率μ與到達(dá)速率λ成比例。如果CPU或硬件加速器的服務(wù)速率μ不比生成要壓縮的頁(yè)的到達(dá)速率λ更快,則要壓縮的頁(yè)可不被處理。從而,為了系統(tǒng)的穩(wěn)定管理,要求服務(wù)速率μ比要壓縮的頁(yè)的到達(dá)速率λ更快。
[0184]相反,參考示出μ和R之間的關(guān)系的曲線圖,服務(wù)速率μ與壓縮比率R成反比。也就是說(shuō),服務(wù)速率μ越快,壓縮比率R越低,反之亦然。
[0185]圖19是圖示出根據(jù)本發(fā)明的實(shí)施例的壓縮處理的流程圖。
[0186]參考圖19,示出