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

數(shù)據(jù)緩存方法和裝置的制作方法

文檔序號:6439474閱讀:302來源:國知局
專利名稱:數(shù)據(jù)緩存方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及網(wǎng)絡(luò)應(yīng)用領(lǐng)域,特別涉及一種數(shù)據(jù)緩存方法和裝置。
背景技術(shù)
通用的延時通道delay cache方案廣泛的應(yīng)用于CPU設(shè)計、高速緩存等各種應(yīng)用場景,基本的思想是將可釋放的cache放入延時釋放通道,當(dāng)延時到達(dá)時,即可釋放cache, 將數(shù)據(jù)寫入片外存儲器;但在網(wǎng)絡(luò)應(yīng)用中,由于不同流帶寬的差異、流數(shù)的隨機(jī)、業(yè)務(wù)處理時間的不定,導(dǎo)致通用的delay cache方案不再用。具體來說,網(wǎng)絡(luò)應(yīng)用中對cache的需求是大于配置帶寬的流一定能命中cache,避免高帶寬流的處理頻繁訪問片外存儲器。這就要求每個cache從占用至釋放的時間(存留時間)需近似相等,在此期間如果收到同一類型的流,即可以命中cache直接進(jìn)行處理。傳統(tǒng)的delay cache采用將完成處理的cache進(jìn)入延時通道的機(jī)制,由于處理時間的不定,會導(dǎo)致cache的存留時間相差很大,故會對網(wǎng)絡(luò)應(yīng)用造成一定的影響。

發(fā)明內(nèi)容
本發(fā)明實施例提供了一種數(shù)據(jù)緩存方法和裝置。所述技術(shù)方案如下一種數(shù)據(jù)緩存方法,包括接收第一數(shù)據(jù)請求;將所述第一數(shù)據(jù)請求中的目標(biāo)數(shù)據(jù)寫入到片內(nèi)緩存Cache中,并統(tǒng)計所述目標(biāo)數(shù)據(jù)在所述片內(nèi)緩存中的存儲時間;當(dāng)所述目標(biāo)數(shù)據(jù)在所述Cache中的存儲時間達(dá)到預(yù)設(shè)延時時間時,使能所述目標(biāo)數(shù)據(jù)的延時通過標(biāo)識;當(dāng)所述目標(biāo)數(shù)據(jù)的延時通過標(biāo)識處于使能狀態(tài),且所述目標(biāo)數(shù)據(jù)被處理完成時, 釋放所述目標(biāo)數(shù)據(jù)。一種數(shù)據(jù)緩存裝置,包括數(shù)據(jù)讀寫請求處理模塊,用于將第一數(shù)據(jù)請求中的目標(biāo)數(shù)據(jù)寫入到片內(nèi)存儲模塊的緩沖存儲器Cache中;所述片內(nèi)存儲模塊,包括用于存儲所述目標(biāo)數(shù)據(jù)的所述緩沖存儲器,以及延時緩存模塊,其中,所述延時緩存模塊用于在所述目標(biāo)數(shù)據(jù)被寫入到所述片內(nèi)存儲模塊的Cache 中后,統(tǒng)計所述目標(biāo)數(shù)據(jù)在所述Cache中的存儲時間;標(biāo)識使能模塊,用于當(dāng)所述目標(biāo)數(shù)據(jù)被寫入所述Cache中時,為所述目標(biāo)數(shù)據(jù)設(shè)置延時通過標(biāo)識和處理完成標(biāo)識,其中,當(dāng)所述目標(biāo)數(shù)據(jù)在所述Cache中的存儲時間達(dá)到預(yù)設(shè)延時時間時,所述標(biāo)識使能模塊使能所述延時通過標(biāo)識;當(dāng)所述目標(biāo)數(shù)據(jù)被處理完成時,所述標(biāo)識使能模塊使能所述目標(biāo)數(shù)據(jù)在所述Cache中的處理完成標(biāo)識,其中,所述片內(nèi)存儲模塊還用于在所述Cache中的所述目標(biāo)數(shù)據(jù)的延時通過標(biāo)識和處理完成標(biāo)識均處于使能狀態(tài)時,釋放所述目標(biāo)數(shù)據(jù)。
本發(fā)明實施例提供的技術(shù)方案的有益效果是通過統(tǒng)計目標(biāo)數(shù)據(jù)在片內(nèi)緩存中的存儲時間,并根據(jù)該統(tǒng)計的存儲時間以及存儲時間達(dá)到預(yù)設(shè)延時時間時使能的延時通過標(biāo)識,并在目標(biāo)數(shù)據(jù)被處理完成且延時通過標(biāo)識為使能狀態(tài)時,釋放目標(biāo)數(shù)據(jù),改變了現(xiàn)有技術(shù)中將目標(biāo)數(shù)據(jù)進(jìn)行固定延時的做法,大大減少了占用的資源,采用較少的資源實現(xiàn)了不同數(shù)據(jù)在片內(nèi)存留時間的近似均等、不增加原有cache的深度、充分發(fā)揮cache的性能,使得數(shù)據(jù)緩存更適合當(dāng)前的網(wǎng)絡(luò)應(yīng)用。


為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本發(fā)明實施例提供的一種數(shù)據(jù)緩存方法的流程圖;圖2是本發(fā)明實施例提供的一種數(shù)據(jù)緩存方法的流程圖;圖3是本發(fā)明實施例提供的一種數(shù)據(jù)緩存裝置的結(jié)構(gòu)示意圖;圖4是本發(fā)明實施例提供的一種數(shù)據(jù)緩存裝置的結(jié)構(gòu)示意圖。
具體實施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方式作進(jìn)一步地詳細(xì)描述。圖1是本發(fā)明實施例提供的一種數(shù)據(jù)緩存方法的流程圖。參見圖1,該實施例提供的數(shù)據(jù)緩存方法包括101、接收第一數(shù)據(jù)請求;在本實施例中,該數(shù)據(jù)請求可以為數(shù)據(jù)報文入隊請求、流標(biāo)號是指報文的隊列號, 指示當(dāng)前報文去往的用戶,流標(biāo)號決定了流去往哪里。102、將所述第一數(shù)據(jù)請求中的目標(biāo)數(shù)據(jù)寫入到片內(nèi)緩存Cache中,并統(tǒng)計所述目標(biāo)數(shù)據(jù)在所述片內(nèi)緩存中的存儲時間;在本實施例中,cache ID用于標(biāo)識存儲該目標(biāo)數(shù)據(jù)的cache塊,通過在delay buffer中存儲cache ID,該delay buffer的深度等于預(yù)設(shè)延時時間。103、當(dāng)所述目標(biāo)數(shù)據(jù)在所述Cache中的存儲時間達(dá)到預(yù)設(shè)延時時間時,使能所述目標(biāo)數(shù)據(jù)的延時通過標(biāo)識;在本實施例中,當(dāng)目標(biāo)數(shù)據(jù)在cache中的存儲時間達(dá)到delay buffer的深度時, 使能目標(biāo)數(shù)據(jù)的延時通過標(biāo)識,此時對該目標(biāo)數(shù)據(jù)的處理有可能未完成,則此時,不能釋放目標(biāo)數(shù)據(jù),直到目標(biāo)數(shù)據(jù)的處理完成,才能釋放該目標(biāo)數(shù)據(jù)。進(jìn)一步地,當(dāng)所述目標(biāo)數(shù)據(jù)被處理完成時,使能所述目標(biāo)數(shù)據(jù)的處理完成標(biāo)識,相應(yīng)地,當(dāng)所述當(dāng)所述目標(biāo)數(shù)據(jù)的延時通過標(biāo)識處于使能狀態(tài),且所述目標(biāo)數(shù)據(jù)被處理完成時,釋放所述目標(biāo)數(shù)據(jù)包括當(dāng)所述目標(biāo)數(shù)據(jù)的延時通過標(biāo)識和處理完成標(biāo)識均處于使能狀態(tài)時,釋放所述目標(biāo)數(shù)據(jù)。
104、當(dāng)所述目標(biāo)數(shù)據(jù)的延時通過標(biāo)識處于使能狀態(tài),且所述目標(biāo)數(shù)據(jù)被處理完成時,釋放所述目標(biāo)數(shù)據(jù)。其中,處理完成是指發(fā)起第一數(shù)據(jù)請求的應(yīng)用等已經(jīng)使用完目標(biāo)數(shù)據(jù)。進(jìn)一步地,該方法還包括接收第二數(shù)據(jù)請求;當(dāng)所述第二數(shù)據(jù)請求命中存儲在所述Cache中的所述目標(biāo)數(shù)據(jù)時,重置所述目標(biāo)數(shù)據(jù)在所述Cache中的存儲時間,并且,如果所述目標(biāo)數(shù)據(jù)的延時通過標(biāo)識處于使能狀態(tài), 則將所述目標(biāo)數(shù)據(jù)的延時通過標(biāo)識置為無效狀態(tài);當(dāng)所述目標(biāo)數(shù)據(jù)在所述Cache中的存儲時間再次達(dá)到所述預(yù)設(shè)延時時間時,再次使能所述目標(biāo)數(shù)據(jù)的延時通過標(biāo)識。通過統(tǒng)計目標(biāo)數(shù)據(jù)在片內(nèi)緩存中的存儲時間,并根據(jù)該統(tǒng)計的存儲時間以及存儲時間達(dá)到預(yù)設(shè)延時時間時使能的延時通過標(biāo)識,并在目標(biāo)數(shù)據(jù)被處理完成且延時通過標(biāo)識為使能狀態(tài)時,釋放目標(biāo)數(shù)據(jù),改變了現(xiàn)有技術(shù)中將目標(biāo)數(shù)據(jù)進(jìn)行固定延時的做法,大大減少了占用的資源,采用較少的資源實現(xiàn)了不同數(shù)據(jù)在片內(nèi)存留時間的近似均等、不增加原有Cache的深度、充分發(fā)揮Cache的性能,使得數(shù)據(jù)緩存更適合當(dāng)前的網(wǎng)絡(luò)應(yīng)用。圖2是本發(fā)明實施例提供的一種數(shù)據(jù)緩存方法的流程圖。在本實施例中,通過 delay buffer來設(shè)置預(yù)設(shè)延時時間,參見圖2,該實施例具體包括201、接收攜帶流標(biāo)號的第一數(shù)據(jù)請求,根據(jù)所述流標(biāo)號匹配片內(nèi)緩存Cache ;在本實施例中,當(dāng)接收到第一數(shù)據(jù)請求時,該第一數(shù)據(jù)請求中會攜帶流標(biāo)號。每個 Cache塊中都有一個數(shù)據(jù)域,用于存儲當(dāng)前Cache塊服務(wù)的流標(biāo)號。202、通過比較第一數(shù)據(jù)請求的流標(biāo)號與流標(biāo)號表確定該第一數(shù)據(jù)請求未命中片內(nèi)緩存Cache ;Cache由數(shù)據(jù)存儲器、流標(biāo)號表、失效判斷邏輯、訪存控制器組成。流標(biāo)號表的輸入通道通過主存地址總線與CPU、數(shù)據(jù)存儲器和訪存控制器相連,輸出端與失效判斷邏輯相連。流標(biāo)號表所包含的項數(shù)等于Cache的塊數(shù),每一項對應(yīng)Cache中的一個塊,它通過記錄該主存儲器塊地址一一標(biāo)識來指明當(dāng)前該塊中存放的信息是哪個主存塊的。當(dāng)一個主存塊被調(diào)入Cache中某一個塊時,該主存塊的流標(biāo)號就被填入流標(biāo)號表中與該Cache塊相應(yīng)的項中。通過比較主存地址總線上的標(biāo)識即流標(biāo)號與標(biāo)志表輸出的標(biāo)識是否相等來判斷數(shù)據(jù)請求是否命中或未命中,如果相等則表示命中,如果不相等則表示未命中。其中,命中意味著所要訪問的數(shù)據(jù)在cache中,失效意味著cache中沒有所要訪問的數(shù)據(jù)。其中,根據(jù)流標(biāo)號匹配cache是現(xiàn)有技術(shù),在此不再贅述。在本實施例中,僅以第一數(shù)據(jù)請求未命中cache為例進(jìn)行說明。203、為將所述第一數(shù)據(jù)請求中的目標(biāo)數(shù)據(jù)寫入到片內(nèi)緩存Cache時,將所述目標(biāo)數(shù)據(jù)的緩存標(biāo)識Cache ID寫入延時緩存delay buffer的隊尾;在本實施例中,該延時緩存delay buffer用于存儲Cache ID,該delay buffer中存儲的數(shù)據(jù)可以按照預(yù)設(shè)周期從隊尾向隊頭移動。本領(lǐng)域技術(shù)人員可以獲知,本實施例所述的隊尾是指尾指針?biāo)傅牡刂?,隊頭是指頭指針?biāo)傅牡刂贰.?dāng)有新的cache ID寫入隊尾時,尾指針和頭指針均加1,則可以認(rèn)為原來存儲的cache ID向隊頭移動了一個地址,當(dāng)Cache ID的延時達(dá)到了 delay buffer的深度,則頭指針指向該Cache ID,可釋放該Cache ID。在另一實施例中,該delay buffer的尾指針和頭指針還可以每隔預(yù)設(shè)時長移動一個地址,使得當(dāng)Cache ID的延時達(dá)到了 delay buffer的深度,則頭指針指向該Cache ID。204、接收攜帶流標(biāo)號的第二數(shù)據(jù)請求,根據(jù)所述流標(biāo)號匹配片內(nèi)緩存Cache ;該步驟204與步驟201同理,在此不再贅述。205、通過比較第二數(shù)據(jù)請求的流標(biāo)號與流標(biāo)號表確定該第二數(shù)據(jù)請求命中片內(nèi)緩存Cache ;206、獲取命中的 Cache ID ;在本實施例中,每個cache塊中包括數(shù)據(jù)和該數(shù)據(jù)對應(yīng)的Cache ID,在數(shù)據(jù)的處理過程中,該數(shù)據(jù)存儲于cache中,當(dāng)數(shù)據(jù)處理完成后,且數(shù)據(jù)對應(yīng)的Cache ID的延時通過標(biāo)識處于無效狀態(tài),cache不釋放該數(shù)據(jù)。當(dāng)通過步驟202的比較,確定接收的第二數(shù)據(jù)請求命中cache中存儲的數(shù)據(jù)時,獲取該命中的數(shù)據(jù)的Cache ID。每個cache塊都有兩個idle標(biāo)志,處理完成標(biāo)識use_idle和延時通過標(biāo)識 delay_idle ;其中,use_idle存儲在片內(nèi)緩存外,當(dāng)請求分配一個cache塊時,將當(dāng)前cache 塊的USe_idle置為無效;當(dāng)請求使用完該cache塊時,將標(biāo)志置為有效。delay_idle存儲在delay_buffer中,當(dāng)請求分配一個cache塊時,將當(dāng)前cache塊的delay_idle置為有效;如果delay buffer中的Cache ID被重新命中,則該Cache ID的delay_idle置為無效。當(dāng)Cache ID從delay buffer中移出時,數(shù)據(jù)在Cache內(nèi)的存儲時間達(dá)到預(yù)設(shè)延時時間,將delay_idle置為有效。當(dāng)兩個標(biāo)志都有效時,cache可以釋放標(biāo)識對應(yīng)的數(shù)據(jù),當(dāng)前 Cache ID可以進(jìn)入idle池,如果請求沒有命中cache,則從idle池中隨機(jī)選擇一個cache 塊使用。207、根據(jù)所述命中的Cache ID匹配延時緩存delay buffer,確定所述命中的 Cache ID 命φ delay buffer ;在本實施例中,延時緩存delay buffer用于儲存cache中數(shù)據(jù)所對應(yīng)的Cache ID,數(shù)據(jù)仍存儲在cache中,該Cache ID的數(shù)據(jù)大小遠(yuǎn)遠(yuǎn)小于cache中數(shù)據(jù)的大小,在根據(jù)命中的Cache ID匹配delay buffer時,可能出現(xiàn)兩種情況,delay buffer中還未釋放該命中的Cache ID,則命中delay buffer ;或,delay buffer中已釋放該命中的Cache ID,則未命中delay buffer。需要說明的是,delay buffer中所有數(shù)據(jù)的延時時長是相同的,由于數(shù)據(jù)在cache中的處理時間不同,當(dāng)處理時間較長,可能會出現(xiàn)delay buffer已釋放該 Cache ID的情況。本實施例僅以Cache ID命中delay buffer為例進(jìn)行說明。208、重置目標(biāo)數(shù)據(jù)在所述Cache中的存儲時間,并且,如果所述目標(biāo)數(shù)據(jù)的延時通過標(biāo)識處于使能狀態(tài),則將所述目標(biāo)數(shù)據(jù)的延時通過標(biāo)識置為無效狀態(tài)。在該步驟208中,根據(jù)命中結(jié)果確定第二數(shù)據(jù)請求所請求的數(shù)據(jù)存儲于Cache中, 則為了延長該數(shù)據(jù)的延時,減少對主存的讀取,重置目標(biāo)數(shù)據(jù)在所述Cache中的存儲時間, 具體地,該重置過程包括當(dāng)命中所述delay buffer,將命中的所述Cache ID對應(yīng)的延時通過標(biāo)識置為無效;當(dāng)所述delay buffer已寫滿時,將命中的所述Cache ID寫入所述 delay buffer的尾指針指向的地址,將所述頭指針和尾指針加1,并將命中的所述Cache ID 對應(yīng)的延時通過標(biāo)識置為有效;當(dāng)所述delay buffer未寫滿時,將命中的所述Cache ID寫入所述delay buffer的尾指針指向的地址,所述頭指針保持不變,將所述尾指針加1,并將命中的所述Cache ID對應(yīng)的延時通過標(biāo)識置為有效。相同流標(biāo)號的請求的時間間隔小于 delay buffer的延時時間,就一定能命中cache。在另一實施例中,當(dāng)未命中所述delay buffer且所述delay buffer已寫滿時,將所述Cache ID寫入所述delay buffer的尾指針指向的地址,將所述頭指針和尾指針加1, 將所述Cache ID對應(yīng)的延時通過標(biāo)識置為有效;當(dāng)未命中所述delay buffer且當(dāng)所述delay buffer未寫滿時,將所述Cache ID 寫入所述delay buffer的尾指針指向的地址,所述頭指針保持不變,將所述尾指針加1,將所述Cache ID對應(yīng)的延時通過標(biāo)識置為有效。在另一實施例中,當(dāng)未命中cache時,說明該cache中未存儲該數(shù)據(jù)請求對應(yīng)的數(shù)據(jù)或該請求的數(shù)據(jù)已經(jīng)被延時釋放,則為該數(shù)據(jù)請求分配新的Cache ID,并將該新分配的 Cache ID寫入延時釋放通道delay buffer,以便后續(xù)再接收到其他數(shù)據(jù)請求時,根據(jù)第二數(shù)據(jù)請求對cache進(jìn)行匹配。由于Cache ID的大小很小,因此,delay buffer的深度可以很深,增加了數(shù)據(jù)的存留時間。舉例說明,如果cache的深度是128,入口的速率是FPl,則每個cache的平均使用時間應(yīng)為1 個cycle (數(shù)據(jù)的最大處理時間必須小于等于1 個cycle),配置delay buffer的深度為120,保證了每個cache至少會使用120個cycle后才會被釋放(也就是數(shù)據(jù)存留的時間),而平均的使用時間是1 個cycle,所以每個cache的存留時間相差不大,性能逼近LRU (Latest Recently Used)替換策略,數(shù)據(jù)的存留時間相對固定。而且,深度 128的cache,入口的速率是FP1,每個cache的平均使用時間為1 個cycle,把每個cache 限制為必須使用120個cycle后才允許釋放,不會存在因為增加了該限制而出現(xiàn)cache不夠的情況發(fā)生,所以對cache的深度無影響,不會增加cache的深度。209、當(dāng)所述目標(biāo)數(shù)據(jù)在所述Cache中的存儲時間再次達(dá)到預(yù)設(shè)延時時間時,使能所述目標(biāo)數(shù)據(jù)的延時通過標(biāo)識;通過將cache ID重新寫入delay buffer的隊尾,實現(xiàn)了對cache中目標(biāo)數(shù)據(jù)的存儲時間的延時。210、當(dāng)所述目標(biāo)數(shù)據(jù)的延時通過標(biāo)識處于使能狀態(tài),且所述目標(biāo)數(shù)據(jù)被處理完成時,釋放所述目標(biāo)數(shù)據(jù)。需要說明的是,該釋放目標(biāo)數(shù)據(jù)可以被動釋放,當(dāng)接收到第三數(shù)據(jù)請求,且該第三數(shù)據(jù)請求未命中cache時,根據(jù)cache中目標(biāo)數(shù)據(jù)的處理完成標(biāo)識和延時通過標(biāo)識,獲知該目標(biāo)數(shù)據(jù)可以釋放,則釋放該目標(biāo)數(shù)據(jù),將第三數(shù)據(jù)請求對應(yīng)的數(shù)據(jù)寫入cache,并為之分配 cache ID,將 cache ID 寫入 delay buffer。本實施例提供的方法,支持FPl的申請、匹配cache,其中,cache的深度,delay buffer的深度可根據(jù)實際需求進(jìn)行設(shè)置,本發(fā)明實施例不做具體限定。在另一實施例中,該delay buffer的功能可以用計數(shù)器實現(xiàn),cache的每個存儲單元都配置一個counter計數(shù)器,counter的初值配置為cache的每個存儲單元中數(shù)據(jù)的存留時間,如果接收到的數(shù)據(jù)請求命中cache的某個存儲單元,將對應(yīng)的counter置為初始值,其他counter繼續(xù)計時;如果請求沒有命中cache,分配counter減為0的cache給當(dāng)前請求。
通過統(tǒng)計目標(biāo)數(shù)據(jù)在片內(nèi)緩存中的存儲時間,并根據(jù)該統(tǒng)計的存儲時間以及存儲時間達(dá)到預(yù)設(shè)延時時間時使能的延時通過標(biāo)識,并在目標(biāo)數(shù)據(jù)被處理完成且延時通過標(biāo)識為使能狀態(tài)時,釋放目標(biāo)數(shù)據(jù),改變了現(xiàn)有技術(shù)中將目標(biāo)數(shù)據(jù)進(jìn)行固定延時的做法,通過改變delay buffer的存儲數(shù)據(jù)類型,僅在delay buffer中存儲Cache的緩存索引,大大減少了 delay buffer占用的資源,采用較少的資源實現(xiàn)了不同數(shù)據(jù)在片內(nèi)存留時間的近似均等、不增加原有cache的深度、充分發(fā)揮cache的性能,提高了網(wǎng)絡(luò)應(yīng)用中cache的命中率, 使得數(shù)據(jù)緩存更適合當(dāng)前的網(wǎng)絡(luò)應(yīng)用。圖3是本發(fā)明實施例提供的一種數(shù)據(jù)緩存裝置的結(jié)構(gòu)示意圖。參見圖3,該實施例具體包括數(shù)據(jù)讀寫請求處理模塊301,用于將第一數(shù)據(jù)請求中的目標(biāo)數(shù)據(jù)寫入到片內(nèi)存儲模塊302的緩沖存儲器Cache中;所述片內(nèi)存儲模塊302,包括用于存儲所述目標(biāo)數(shù)據(jù)的所述緩沖存儲器3021,以及延時緩存模塊3022,其中,所述延時緩存模塊用于在所述目標(biāo)數(shù)據(jù)被寫入到所述片內(nèi)存儲模塊的Cache中后,統(tǒng)計所述目標(biāo)數(shù)據(jù)在所述Cache中的存儲時間;標(biāo)識使能模塊303,用于當(dāng)所述目標(biāo)數(shù)據(jù)被寫入所述Cache中時,為所述目標(biāo)數(shù)據(jù)設(shè)置延時通過標(biāo)識和處理完成標(biāo)識,其中,當(dāng)所述目標(biāo)數(shù)據(jù)在所述Cache中的存儲時間達(dá)到預(yù)設(shè)延時時間時,所述標(biāo)識使能模塊使能所述延時通過標(biāo)識;當(dāng)所述目標(biāo)數(shù)據(jù)被處理完成時,所述標(biāo)識使能模塊使能所述目標(biāo)數(shù)據(jù)在所述Cache中的處理完成標(biāo)識,其中,所述片內(nèi)存儲模塊302還用于在所述Cache中的所述目標(biāo)數(shù)據(jù)的延時通過標(biāo)識和處理完成標(biāo)識均處于使能狀態(tài)時,釋放所述目標(biāo)數(shù)據(jù)。參見圖4,所述裝置還包括重置模塊304,用于當(dāng)?shù)诙?shù)據(jù)請求命中存儲在所述Cache中的所述目標(biāo)數(shù)據(jù)時, 重置所述目標(biāo)數(shù)據(jù)在所述Cache中的存儲時間,并且,所述標(biāo)識使能模塊303,還用于如果所述目標(biāo)數(shù)據(jù)的延時通過標(biāo)識處于使能狀態(tài), 則將所述目標(biāo)數(shù)據(jù)的延時通過標(biāo)識置為無效狀態(tài);所述標(biāo)識使能模塊303,還用于當(dāng)所述目標(biāo)數(shù)據(jù)在所述Cache中的存儲時間再次達(dá)到所述預(yù)設(shè)延時時間時,再次使能所述目標(biāo)數(shù)據(jù)的延時通過標(biāo)識。所述標(biāo)識使能模塊303,還用于如果所述第一數(shù)據(jù)請求被處理完成時,使能所述目標(biāo)數(shù)據(jù)的處理完成標(biāo)識,所述標(biāo)識使能模塊303,還用于當(dāng)所述第二數(shù)據(jù)請求命中存在所述Cache中的所述目標(biāo)數(shù)據(jù)時,將所述目標(biāo)數(shù)據(jù)的處理完成標(biāo)識置為無效狀態(tài)。所述裝置還包括寫入模塊305,用于將所述第一數(shù)據(jù)請求中的目標(biāo)數(shù)據(jù)寫入到片內(nèi)緩存Cache時,將所述目標(biāo)數(shù)據(jù)的緩存標(biāo)識Cache ID寫入延時緩存的隊尾;相應(yīng)地,所述延時緩存模塊3022具體用于當(dāng)所述目標(biāo)數(shù)據(jù)的Cache ID在所述延時緩存中從隊尾移動到隊頭時,所述目標(biāo)數(shù)據(jù)在所述Cache中的存儲時間達(dá)到所述預(yù)設(shè)延時時間。本實施例提供的裝置,與方法實施例屬于同一構(gòu)思,其具體實現(xiàn)過程詳見方法實施例,這里不再贅述。本發(fā)明實施例提供的上述技術(shù)方案的全部或部分可以通過程序指令相關(guān)的硬件來完成,所述程序可以存儲在可讀取的存儲介質(zhì)中,該存儲介質(zhì)包括R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。 以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種數(shù)據(jù)緩存方法,其特征在于,包括 接收第一數(shù)據(jù)請求;將所述第一數(shù)據(jù)請求中的目標(biāo)數(shù)據(jù)寫入到片內(nèi)緩存Cache中,并統(tǒng)計所述目標(biāo)數(shù)據(jù)在所述片內(nèi)緩存中的存儲時間;當(dāng)所述目標(biāo)數(shù)據(jù)在所述Cache中的存儲時間達(dá)到預(yù)設(shè)延時時間時,使能所述目標(biāo)數(shù)據(jù)的延時通過標(biāo)識;當(dāng)所述目標(biāo)數(shù)據(jù)的延時通過標(biāo)識處于使能狀態(tài),且所述目標(biāo)數(shù)據(jù)被處理完成時,釋放所述目標(biāo)數(shù)據(jù)。
2.如權(quán)利要求1所述的數(shù)據(jù)緩存方法,其特征在于,還包括當(dāng)所述目標(biāo)數(shù)據(jù)被處理完成時,使能所述目標(biāo)數(shù)據(jù)的處理完成標(biāo)識, 相應(yīng)地,當(dāng)所述當(dāng)所述目標(biāo)數(shù)據(jù)的延時通過標(biāo)識處于使能狀態(tài),且所述目標(biāo)數(shù)據(jù)被處理完成時,釋放所述目標(biāo)數(shù)據(jù)包括當(dāng)所述目標(biāo)數(shù)據(jù)的延時通過標(biāo)識和處理完成標(biāo)識均處于使能狀態(tài)時,釋放所述目標(biāo)數(shù)據(jù)。
3.如權(quán)利要求1所述的數(shù)據(jù)緩存方法,其特征在于,還包括 接收第二數(shù)據(jù)請求;當(dāng)所述第二數(shù)據(jù)請求命中存儲在所述Cache中的所述目標(biāo)數(shù)據(jù)時,重置所述目標(biāo)數(shù)據(jù)在所述Cache中的存儲時間,并且,如果所述目標(biāo)數(shù)據(jù)的延時通過標(biāo)識處于使能狀態(tài),則將所述目標(biāo)數(shù)據(jù)的延時通過標(biāo)識置為無效狀態(tài);當(dāng)所述目標(biāo)數(shù)據(jù)在所述Cache中的存儲時間再次達(dá)到所述預(yù)設(shè)延時時間時,再次使能所述目標(biāo)數(shù)據(jù)的延時通過標(biāo)識。
4.如權(quán)利要求3所述的數(shù)據(jù)緩存方法,其特征在于, 在接收所述第二數(shù)據(jù)請求之前,所述方法還包括如果所述第一數(shù)據(jù)請求被處理完成時,使能所述目標(biāo)數(shù)據(jù)的處理完成標(biāo)識, 當(dāng)所述第二數(shù)據(jù)請求命中存在所述Cache中的所述目標(biāo)數(shù)據(jù)時,將所述目標(biāo)數(shù)據(jù)的處理完成標(biāo)識置為無效狀態(tài)。
5.如權(quán)利要求1所述的數(shù)據(jù)緩存方法,其特征在于,將所述第一數(shù)據(jù)請求中的目標(biāo)數(shù)據(jù)寫入到片內(nèi)緩存Cache時,將所述目標(biāo)數(shù)據(jù)的緩存標(biāo)識Cache ID寫入延時緩存的隊尾;相應(yīng)地,所述統(tǒng)計所述目標(biāo)數(shù)據(jù)在所述片內(nèi)緩存中的存儲時間包括 當(dāng)所述目標(biāo)數(shù)據(jù)的Cache ID在所述延時緩存中從隊尾移動到隊頭時,所述目標(biāo)數(shù)據(jù)在所述Cache中的存儲時間達(dá)到所述預(yù)設(shè)延時時間。
6.一種數(shù)據(jù)緩存裝置,其特征在于,包括數(shù)據(jù)讀寫請求處理模塊,用于將第一數(shù)據(jù)請求中的目標(biāo)數(shù)據(jù)寫入到片內(nèi)存儲模塊的緩沖存儲器Cache中;所述片內(nèi)存儲模塊,包括用于存儲所述目標(biāo)數(shù)據(jù)的所述緩沖存儲器,以及延時緩存模塊,其中,所述延時緩存模塊用于在所述目標(biāo)數(shù)據(jù)被寫入到所述片內(nèi)存儲模塊的Cache中后,統(tǒng)計所述目標(biāo)數(shù)據(jù)在所述Cache中的存儲時間;標(biāo)識使能模塊,用于當(dāng)所述目標(biāo)數(shù)據(jù)被寫入所述Cache中時,為所述目標(biāo)數(shù)據(jù)設(shè)置延時通過標(biāo)識和處理完成標(biāo)識,其中,當(dāng)所述目標(biāo)數(shù)據(jù)在所述Cache中的存儲時間達(dá)到預(yù)設(shè)延時時間時,所述標(biāo)識使能模塊使能所述延時通過標(biāo)識;當(dāng)所述目標(biāo)數(shù)據(jù)被處理完成時,所述標(biāo)識使能模塊使能所述目標(biāo)數(shù)據(jù)在所述Cache中的處理完成標(biāo)識,其中,所述片內(nèi)存儲模塊還用于在所述Cache中的所述目標(biāo)數(shù)據(jù)的延時通過標(biāo)識和處理完成標(biāo)識均處于使能狀態(tài)時,釋放所述目標(biāo)數(shù)據(jù)。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括重置模塊,用于當(dāng)?shù)诙?shù)據(jù)請求命中存儲在所述Cache中的所述目標(biāo)數(shù)據(jù)時,重置所述目標(biāo)數(shù)據(jù)在所述Cache中的存儲時間,并且,所述標(biāo)識使能模塊,還用于如果所述目標(biāo)數(shù)據(jù)的延時通過標(biāo)識處于使能狀態(tài),則將所述目標(biāo)數(shù)據(jù)的延時通過標(biāo)識置為無效狀態(tài);所述標(biāo)識使能模塊,還用于當(dāng)所述目標(biāo)數(shù)據(jù)在所述Cache中的存儲時間再次達(dá)到所述預(yù)設(shè)延時時間時,再次使能所述目標(biāo)數(shù)據(jù)的延時通過標(biāo)識。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述標(biāo)識使能模塊,還用于如果所述第一數(shù)據(jù)請求被處理完成時,使能所述目標(biāo)數(shù)據(jù)的處理完成標(biāo)識,所述標(biāo)識使能模塊,還用于當(dāng)所述第二數(shù)據(jù)請求命中存在所述Cache中的所述目標(biāo)數(shù)據(jù)時,將所述目標(biāo)數(shù)據(jù)的處理完成標(biāo)識置為無效狀態(tài)。
9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括寫入模塊,用于將所述第一數(shù)據(jù)請求中的目標(biāo)數(shù)據(jù)寫入到片內(nèi)緩存Cache時,將所述目標(biāo)數(shù)據(jù)的緩存標(biāo)識Cache ID寫入延時緩存的隊尾;相應(yīng)地,所述延時緩存模塊具體用于當(dāng)所述目標(biāo)數(shù)據(jù)的Cache ID在所述延時緩存中從隊尾移動到隊頭時,所述目標(biāo)數(shù)據(jù)在所述Cache中的存儲時間達(dá)到所述預(yù)設(shè)延時時間。
全文摘要
本發(fā)明公開了一種數(shù)據(jù)緩存方法和裝置,屬于網(wǎng)絡(luò)應(yīng)用領(lǐng)域。該方法包括接收第一數(shù)據(jù)請求;將所述第一數(shù)據(jù)請求中的目標(biāo)數(shù)據(jù)寫入到片內(nèi)緩存Cache中,并統(tǒng)計所述目標(biāo)數(shù)據(jù)在所述片內(nèi)緩存中的存儲時間;當(dāng)所述目標(biāo)數(shù)據(jù)在所述Cache中的存儲時間達(dá)到預(yù)設(shè)延時時間時,使能所述目標(biāo)數(shù)據(jù)的延時通過標(biāo)識;當(dāng)所述目標(biāo)數(shù)據(jù)的延時通過標(biāo)識處于使能狀態(tài),且所述目標(biāo)數(shù)據(jù)被處理完成時,釋放所述目標(biāo)數(shù)據(jù)。本發(fā)明實施例采用較少的資源實現(xiàn)了不同數(shù)據(jù)在片內(nèi)存留時間的近似均等、不增加原有cache的深度、充分發(fā)揮cache的性能,提高了網(wǎng)絡(luò)應(yīng)用中cache的命中率,使得數(shù)據(jù)緩存更適合當(dāng)前的網(wǎng)絡(luò)應(yīng)用。
文檔編號G06F12/08GK102521151SQ20111038482
公開日2012年6月27日 申請日期2011年11月28日 優(yōu)先權(quán)日2011年11月28日
發(fā)明者畢子學(xué), 范純磊, 魏華 申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1