技術(shù)領(lǐng)域
本發(fā)明構(gòu)思涉及固態(tài)驅(qū)動器(SSD),更具體地講,涉及改進(jìn)在SSD上執(zhí)行垃圾回收。
背景技術(shù):
如今的存儲裝置包含許多技術(shù)。一個重要技術(shù)是NAND閃速存儲器。在諸如固態(tài)驅(qū)動器(SSD)的存儲裝置中使用閃速存儲器涉及眾多設(shè)計考慮。這些重要的考慮涉及用于有效地使用存儲容量的策略。
當(dāng)在閃速存儲器中更新先前存儲的數(shù)據(jù)值時,存儲這些數(shù)據(jù)值的現(xiàn)有頁被內(nèi)部標(biāo)記為無效,更新的數(shù)據(jù)值被存儲在新的頁中。當(dāng)刪除數(shù)據(jù)時,存儲該數(shù)據(jù)的頁被相似地標(biāo)記為無效。無效的頁最終在稱為垃圾回收的處理中被恢復(fù)。但是垃圾回收是在塊層面(包含若干頁的塊)操作的。如果垃圾回收將要等待直至塊完全為空(即,塊中的所有頁均被標(biāo)記為無效),則SSD可能最終沒有自由頁可寫入數(shù)據(jù)。因此,執(zhí)行垃圾回收可能需要將有效頁從以擦除為目標(biāo)的塊移至其它塊。
SSD可按照數(shù)據(jù)到達(dá)的順序?qū)?shù)據(jù)寫入頁。這意味著來自完全不相關(guān)的文件的數(shù)據(jù)(甚至如果SSD用在多客戶端系統(tǒng)中,由完全不相關(guān)的客戶端使用的數(shù)據(jù))可能在SSD上相鄰。由于不存在與在SSD中四處移動讀取頭關(guān)聯(lián)的延遲(與傳統(tǒng)硬盤驅(qū)動器相比),所以SSD的讀和寫訪問時間不受這種數(shù)據(jù)寫入策略影響。
仍需要一種方式來使垃圾回收操作對SSD的其它操作的影響最小化。
技術(shù)實現(xiàn)要素:
根據(jù)示例性實施方式的一方面,提供一種固態(tài)驅(qū)動器(SSD),包括:接收電路,從包括第一生存時間(TTL)的第一流接收數(shù)據(jù),并且從包括第二TTL的第二流接收數(shù)據(jù),第二TTL不同于第一TTL;選擇邏輯,基于第一TTL和第二TTL選擇哪一流以寫入SSD上的塊;以及寫入邏輯,將來自第一流和第二流二者的數(shù)據(jù)寫入SSD上的塊。
根據(jù)示例性實施方式的一方面,提供一種方法,包括:識別固態(tài)驅(qū)動器(SSD)上的塊;接收第一流,該第一流包括第一生存時間(TTL);接收第二流,該第二流包括第二TTL,第二TTL不同于第一TTL;基于第一TTL和第二TTL選擇是將第一流還是第二流寫入塊;以及將來自第一流和第二流二者的數(shù)據(jù)寫入塊。
附圖說明
圖1示出接收與具有關(guān)聯(lián)的存活時間(TTL)的流關(guān)聯(lián)的數(shù)據(jù)的塊。
圖2A至圖2D示出根據(jù)本發(fā)明構(gòu)思的實施例的圖1的塊的第一示例,其接收與具有不同TTL的多個流關(guān)聯(lián)的數(shù)據(jù)。
圖3A至圖3D示出圖1的塊的第二示例,其接收與具有不同TTL的多個流關(guān)聯(lián)的數(shù)據(jù)。
圖4示出根據(jù)本發(fā)明構(gòu)思的實施例的圖1的塊,其接收與具有TTL的二階流關(guān)聯(lián)的數(shù)據(jù)。
圖5示出根據(jù)本發(fā)明構(gòu)思的實施例的將來自不同的流的數(shù)據(jù)寫入圖1的塊的固態(tài)驅(qū)動器(SSD)。
圖6示出圖5的選擇邏輯的細(xì)節(jié)。
圖7示出圖6的平均寫入大小計算器的細(xì)節(jié)。
圖8示出圖6的平均寫到達(dá)率計算器的細(xì)節(jié)。
圖9示出圖6的流選擇邏輯的細(xì)節(jié)。
圖10示出圖5的TTL計算器的細(xì)節(jié)。
圖11示出可包括圖5的SSD的機器的細(xì)節(jié)。
圖12示出根據(jù)本發(fā)明構(gòu)思的實施例的圖5的SSD將來自不同的流的數(shù)據(jù)寫入圖1的塊的過程的流程圖。
圖13示出根據(jù)本發(fā)明構(gòu)思的實施例的圖5的SSD利用二階流將來自不同的流的數(shù)據(jù)寫入圖1的塊的過程的流程圖。
具體實施方式
現(xiàn)在將詳細(xì)參照本發(fā)明構(gòu)思的實施方式,其示例示出于附圖中。在以下詳細(xì)描述中,闡述了眾多具體細(xì)節(jié)以使得能夠徹底理解本發(fā)明構(gòu)思。然而,應(yīng)該理解,本領(lǐng)域普通技術(shù)人員可在沒有這些具體細(xì)節(jié)的情況下實踐本發(fā)明構(gòu)思。在其它示例中,公知方法、過程、組件、電路和網(wǎng)絡(luò)沒有詳細(xì)描述,以避免不必要地模糊實施方式的方面。
將理解,盡管本文中可使用術(shù)語第一、第二等來描述各種元件,這些元件不應(yīng)受這些術(shù)語限制。這些術(shù)語僅用于將一個元件與另一元件相區(qū)分。例如,在不脫離本發(fā)明構(gòu)思的范圍的情況下,第一模塊可被稱為第二模塊,類似地,第二模塊可被稱為第一模塊。
本文的本發(fā)明構(gòu)思的描述中所使用的術(shù)語僅用于描述特定實施方式,并非意在限制本發(fā)明構(gòu)思。如本發(fā)明構(gòu)思和所附權(quán)利要求書的描述中所用,單數(shù)形式意在也包括復(fù)數(shù)形式,除非上下文清楚地另外指示。還將理解,如本文所用,術(shù)語“和/或”表示并且涵蓋一個或更多個相關(guān)所列項的任何及所有可能的組合。還將理解,術(shù)語“包括”當(dāng)用在本說明書中時指明存在所提及的特征、整數(shù)、步驟、操作、元件和/或組件,但是不排除一個或更多個其它特征、整數(shù)、步驟、操作、元件、組件和/或其組合的存在或添加。附圖的組件和特征未必按比例繪制。
如上所述,固態(tài)驅(qū)動器(SSD)將數(shù)據(jù)寫入頁,所述頁繼而被組織成塊。當(dāng)將要更新數(shù)據(jù)時,存儲舊的數(shù)據(jù)的頁被復(fù)制到RAM中,被修改,然后被寫入SSD上的自由頁。然后,原始頁被標(biāo)記為無效,新的頁被標(biāo)記為有效。
隨著時間過去,無效頁的數(shù)量增加。最終,SSD將不再有自由頁,除非通過執(zhí)行垃圾回收來恢復(fù)無效的頁。垃圾回收涉及取目標(biāo)塊(或超塊),將該塊中的所有有效頁復(fù)制到新的塊中,然后擦除原始目標(biāo)塊。這種有效數(shù)據(jù)復(fù)制需要時間和能量。另外,由于閃速存儲器僅可承受有限數(shù)量的寫,所以垃圾回收對SSD壽命有負(fù)面影響。
由于閃速垃圾回收顯著影響存儲裝置性能、響應(yīng)性和壽命,所以存在各種方法來幫助優(yōu)化垃圾回收效率。它們中的一個方法被稱作多流(multi-stream),一種允許計算系統(tǒng)嘗試對數(shù)據(jù)寫活動進(jìn)行分類的技術(shù)。
多流為SSD提供一種方法來將數(shù)據(jù)寫操作合并成流?;谂c流關(guān)聯(lián)的所有數(shù)據(jù)具有相似的生存時間(TTL)的預(yù)期,數(shù)據(jù)寫操作與多個流中的一個關(guān)聯(lián)。這允許存儲裝置將數(shù)據(jù)一起布置在閃速媒介中,希望所述數(shù)據(jù)在窄的可預(yù)測的時間幀內(nèi)共同地變?yōu)闊o效。當(dāng)成功時,這種布置策略顯著降低了垃圾回收的操作密集度,因為無需將來自垃圾回收塊的有效數(shù)據(jù)保存在別處。
圖1示出在典型系統(tǒng)中接收與具有關(guān)聯(lián)的TTL的流關(guān)聯(lián)的數(shù)據(jù)的塊。在圖1中,存儲裝置為針對一個特定流的多個寫請求提供服務(wù)。在實踐中,裝置將通過以下方法為流請求提供服務(wù):首先將可用的未用存儲塊指派給(隨后專用于)流,然后將所呈現(xiàn)的數(shù)據(jù)值寫入塊內(nèi)的第一可用區(qū)域(即,頁)(在最低位置地址處開始并且向更高位置地址前進(jìn))。當(dāng)滿了時,另一塊被指派并專用于該流。當(dāng)稍后通過垃圾回收來完全回收塊時,它返回到可用塊池,以便于隨后指派給另一流或同一流。
在圖1中,一些最早寫入的數(shù)據(jù)值已被刪除或更新,使得它們的存儲位置無效。例如,塊103已專用于流。流寫106、109、112被寫入頁115、118和121。最終,頁115、118和121全部變?yōu)闊o效。此外,最近的流寫124和127已被寫入頁130和133,其它頁136、139、142和145保持自由。如果來自頁115、118或121中的一個的數(shù)據(jù)值被更新,則新的更新的值如今可駐留于塊內(nèi)的更高的地址處,諸如頁148、151、130和133。另選地,新的值可駐留于隨后指派并專用于流的另一塊中。
在圖1中,有效頁148、151、130和133被示出為具有剩余TTL值154、157、160和163。這些值實際上未存儲在SSD上,而是表示頁中的數(shù)據(jù)預(yù)期將到期(過期,終止)的時間。該值可被計算為流中的數(shù)據(jù)的TTL與數(shù)據(jù)已駐留于SSD上多長時間之差。例如,TTL值154、157、160和163指示頁148中的數(shù)據(jù)預(yù)期將在一分鐘內(nèi)到期,頁151中的數(shù)據(jù)預(yù)期將在兩分鐘內(nèi)到期,頁130中的數(shù)據(jù)預(yù)期將在59分鐘內(nèi)到期,頁133中的數(shù)據(jù)預(yù)期將在60分鐘內(nèi)到期。例如,如果流具有60分鐘的TTL并且在塊103中占據(jù)一頁的數(shù)據(jù)每分鐘到達(dá)流,則可能發(fā)生這種情況。
如果塊103以頁133結(jié)束,則具有TTL值163的頁133將是數(shù)據(jù)將到期的最后頁,需要60分鐘到期。因此,當(dāng)SSD準(zhǔn)備對塊103執(zhí)行垃圾回收時,SSD將不得不等待直至頁133中的數(shù)據(jù)到期(它被寫入之后60分鐘),或者SSD將不得不將有效數(shù)據(jù)從塊103復(fù)制到另一塊以擦除塊103。
在傳統(tǒng)多流存儲中,如圖1所示,單個塊與單個流關(guān)聯(lián)。被寫入塊103的數(shù)據(jù)可具有可預(yù)測的TTL。但是由于填充塊所需的時間,塊103中的頁可成“波浪”變無效:即,塊103中的頁可隨時間順序地到期。這可將SSD置于“困難的”境地:或者SSD必須等待直至所有數(shù)據(jù)均已到期,導(dǎo)致無法使用原本的“自由空間”的時間損失,或者SSD必須將一些有效頁復(fù)制到另一塊以對塊103執(zhí)行垃圾回收,導(dǎo)致已知的垃圾回收損失。
圖1還可表示在沒有多流存儲的情況下SSD如何填充塊。當(dāng)SSD在沒有多流存儲的情況下操作時,各個頁具有基本上隨機的TTL,無法預(yù)測塊103中的任何數(shù)據(jù)將何時到期。將順序的TTL值154、157、160和163與隨機值交換并且通過混合塊103內(nèi)的無效頁和有效頁,圖1可反映傳統(tǒng)的非多流存儲。
但是當(dāng)傳統(tǒng)多流系統(tǒng)將特定流指派給存儲塊時,存儲塊不需要被指派給特定流。相反,總壽命可被指派給塊,來自具有變化的TTL的流的數(shù)據(jù)可被寫入塊,目的在于塊中的數(shù)據(jù)應(yīng)該在單個定義的時間到期。利用存儲裝置智能和歷史數(shù)據(jù),SSD可確定是繼續(xù)將來自當(dāng)前流的數(shù)據(jù)寫入塊,還是將來自不同流的數(shù)據(jù)寫入塊中的剩余頁更有效。當(dāng)然,相同的邏輯也可應(yīng)用于塊的稍后指派的流。具體地講,存儲裝置可隨后確定,將來自第三流而非來自第二流的數(shù)據(jù)寫入塊更有效。當(dāng)然,來自已從塊轉(zhuǎn)移(switched away)的流的數(shù)據(jù)可使其數(shù)據(jù)被寫入其它塊。
另一解決方案是使用“二階流”。上述流可被視為一階流:即,各個流可包含具有相似的TTL特性的數(shù)據(jù)。但是代替將來自一階流的數(shù)據(jù)寫入塊,來自一階流的數(shù)據(jù)被寫入二階流。二階流可具有自己的TTL,發(fā)送至二階流的數(shù)據(jù)被寫入塊。根據(jù)在二階流的壽命中剩余多少時間,不同的一階流可向二階流提供數(shù)據(jù)。在本發(fā)明構(gòu)思的這樣的實施方式中,可維持二階流與SSD上的塊之間的關(guān)聯(lián),同時仍實現(xiàn)塊內(nèi)的數(shù)據(jù)的更一致的到期。
圖2A至圖2D示出根據(jù)本發(fā)明構(gòu)思的實施例的圖1的塊的示例,塊接收與具有不同TTL的多個流關(guān)聯(lián)的數(shù)據(jù)。圖2A至圖2D還示出將來自多個流的數(shù)據(jù)寫入單個塊的益處。在圖2A至圖2D中,假設(shè)SSD上的塊的大小為1MB,并且SSD接收兩個流。流205具有60分鐘的預(yù)期TTL,一次寫入平均24KB的數(shù)據(jù),并且平均每分鐘寫入一次文件。流210具有45分鐘的預(yù)期TTL,一次寫入平均256KB的數(shù)據(jù),并且平均每五分鐘寫入一次文件。
圖2A再次示出寫入塊103的所有數(shù)據(jù)與單個流關(guān)聯(lián)的情況。針對流205假定24KB數(shù)據(jù)的平均文件大小以及每分鐘一個文件的平均寫到達(dá)率,將花費大致45分鐘來填充塊103的1MB容量。因此,在塊103已被填充之后,寫入塊103的第一數(shù)據(jù)具有15分鐘的剩余TTL值215,而寫入塊103的最后數(shù)據(jù)具有60分鐘的剩余TTL值220,在總共一小時45分鐘(直至最后數(shù)據(jù)被寫入的45分鐘,加上數(shù)據(jù)的TTL的一小時)內(nèi)塊103將具有有效數(shù)據(jù)。
如果在最后的數(shù)據(jù)被增加到塊之后的一小時之前的任何時間強迫目標(biāo)塊進(jìn)行垃圾回收,則塊中將仍存在有效數(shù)據(jù),將需要在垃圾回收期間將其轉(zhuǎn)移至另一塊。另外,SSD越早對塊執(zhí)行垃圾回收,越多有效數(shù)據(jù)留下必須被遷移至SSD上的另一塊。
相反,考慮圖2B,其中流205僅在22分鐘內(nèi)將數(shù)據(jù)寫入塊103(此時塊103將被半填充)。在時間0:22,寫入的第一數(shù)據(jù)將具有38分鐘的剩余TTL值215,寫入的最后數(shù)據(jù)將具有60分鐘的剩余TTL值225。
在時間0:22之后,塊103切換為流210,如圖2C所示。在時間0:27,流210將數(shù)據(jù)寫入塊103,增加具有45分鐘的TTL值230的數(shù)據(jù)。需要注意的是,為了等待流210寫入其第一數(shù)據(jù),TTL值215和225也減小了五分鐘。
最后,在時間0:32,流210將第二文件寫入塊103。為流210假定平均寫入大小和寫到達(dá)率,該第二文件完成塊103。此時,從流205寫入的數(shù)據(jù)具有從28分鐘的TTL值215至50分鐘的TTL值225變化的剩余TTL,從流210寫入的數(shù)據(jù)分別具有40和45分鐘的TTL值230和235。由于塊103在時間0:32完全填充,并且具有最長剩余TTL(TTL值225)的數(shù)據(jù)預(yù)期將在50分鐘內(nèi)到期,所以塊103可在時間1:22經(jīng)受垃圾回收,這比圖2A中將發(fā)生的情況快23分鐘。另外,由于更多數(shù)據(jù)在相同的時間左右經(jīng)受到期,所以在所有數(shù)據(jù)到期之前塊103將是垃圾回收的不佳候選。
需要注意的是,即使有更多流,利用填充率、TTL和數(shù)據(jù)大小的更多數(shù)量的選項,按照它們的頁同時全部“變無效”的方式切換流以填充塊的能力增強??纱嬖谌魏螖?shù)量的流,各個流可具有任何TTL、平均寫入大小和平均寫到達(dá)率。
圖3A至圖3D示出圖1的塊103可如何接收與具有不同TTL的多個流關(guān)聯(lián)的數(shù)據(jù)的第二示例。在圖3A至圖3D中,假設(shè)僅有四個流,其具有相同的數(shù)據(jù)填充率(data fill rate)和平均寫入大小,以使得流之間的主要差異在于其TTL。圖3A至圖3D中所描述的四個流分別具有60、45、30和15分鐘的TTL值。
在圖3A中,流305寫入塊103,其具有60分鐘的TTL 240。流305具有60分鐘的TTL 310,并且在15分鐘時間內(nèi)足夠的數(shù)據(jù)被寫入以將塊103填充至四分之一滿,其中數(shù)據(jù)具有最長60分鐘的剩余TTL 315。此時,SSD從流305切換至流320,如圖3B所示。流320具有45分鐘的TTL 325。同樣,在15分鐘內(nèi)足夠的數(shù)據(jù)從流320被寫入以填充塊103的另一四分之一。此時,塊103為半滿,其中數(shù)據(jù)315和330預(yù)期在45分鐘內(nèi)到期。
現(xiàn)在SSD可切換至流335,如圖3C所示。流335具有30分鐘的TTL 340。再次,在15分鐘內(nèi),流335可將足夠的數(shù)據(jù)寫入以填充塊103的另一四分之一,現(xiàn)在塊103為四分之三滿,其中數(shù)據(jù)具有30分鐘的剩余TTL 315、330和345。此時,SSD可切換至流350,如圖3D所示。流350具有15分鐘的TTL 355。在另一15分鐘之后,流350寫入了足夠的數(shù)據(jù)以將塊103完全填充,并且塊103中的數(shù)據(jù)315、330、345和360預(yù)期在15分鐘內(nèi)到期。因此,在來自圖3A的流305的第一數(shù)據(jù)被寫入塊103之后的時間1:15,塊103中的所有數(shù)據(jù)預(yù)期將到期,整個塊可被垃圾回收。
與傳統(tǒng)系統(tǒng)相比,圖2B至圖2D以及圖3A至圖3D的示例提供了改進(jìn)的垃圾回收性能。利用多流存儲,用具有減小的TTL值的數(shù)據(jù)順序地填充塊。塊中的數(shù)據(jù)可整體更快地到期,并且更多數(shù)據(jù)可趨于在相同的時間左右到期。結(jié)果,當(dāng)執(zhí)行垃圾回收時塊更有可能使所有數(shù)據(jù)到期,從而不再需要在對塊執(zhí)行垃圾回收之前將任何有效數(shù)據(jù)復(fù)制到另一塊。另外,由于更多數(shù)據(jù)趨于在相同的時間到期,在塊中的所有數(shù)據(jù)到期之前塊不太可能被選擇進(jìn)行垃圾回收。
通過將圖2B至圖2D與圖3A至圖3D進(jìn)行比較可以看出,當(dāng)存在待選擇的更多流時,直至塊中的所有數(shù)據(jù)到期的時間可更少。例如,在圖2B至圖2D中,塊中的所有數(shù)據(jù)預(yù)期將在時間1:32到期;在圖3A至圖3D,塊中的所有數(shù)據(jù)預(yù)期將在時間1:15到期。塊中的數(shù)據(jù)也更可能使數(shù)據(jù)在大致相同的時間到期,使得在塊仍包含有效數(shù)據(jù)的同時塊不太可能被選擇進(jìn)行垃圾回收。
在圖2A至圖2D中,兩個流被描述并用于將數(shù)據(jù)寫入塊103。在圖3A至圖3D中,四個流被描述并用于將數(shù)據(jù)寫入塊103。但是盡管這些示例示出所有流用于將數(shù)據(jù)寫入塊103,本發(fā)明構(gòu)思的其它實施例可僅使用可用流的子集。例如,在圖2A至圖3D中,可存在待寫入SSD的20個流,但是僅那些流中的幾個被寫入塊103。并且各種流可具有不同的TTL、寫入大小和寫到達(dá)率(非限制)。
對塊將多早準(zhǔn)備好進(jìn)行最佳垃圾回收存在下限。寫入塊103的各個頁根據(jù)它源自的流而具有自己的TTL。在最差情況下,在填充塊所花費的時間加上寫入塊的任何數(shù)據(jù)的最大TTL那么長的時間內(nèi)塊可具有有效數(shù)據(jù)。更準(zhǔn)確地講,直至塊103將包含一些有效數(shù)據(jù)。需要注意的是,可能發(fā)生較早寫入的頁可具有較長的TTL,并且該頁的到期時間可能晚于具有較短TTL的較晚寫入的頁的到期時間。但是經(jīng)常地,塊中的所有數(shù)據(jù)的到期時間將是寫入塊的最后數(shù)據(jù)的到期時間。因此,如果花費一個小時來完全填充塊,并且寫入的最后數(shù)據(jù)具有15分鐘TTL,則塊中的所有數(shù)據(jù)可預(yù)期將在時間1:15左右到期。
在本發(fā)明構(gòu)思的其它實施例中,所有一階流將如上文所示分析。但是代替直接寫入塊,一階流將基于那些流中剩余的時間寫入時間受限的二階流。
圖4示出二階流的示例。
作為簡單情況,假設(shè)圖3A至圖3D中所示的相同一階流:
流305,具有1小時的TTL 310。
流320,具有45分鐘的TTL 325。
流335,具有30分鐘的TTL 340。
流350,具有15分鐘的TTL 355。
還假設(shè)單個二階流405,具有1小時的TTL 410。
當(dāng)創(chuàng)建二階流405時,它首先被指派來自流305的數(shù)據(jù)。隨著二階流405長大并且其壽命接近45分鐘,它停止從流305接收數(shù)據(jù)并且開始從流320接收數(shù)據(jù)。同樣,隨著二階流405的壽命接近30分鐘,它從流335接收數(shù)據(jù),并且隨后當(dāng)僅15分鐘剩余時從流350接收數(shù)據(jù)。
在此方法下,指派給二階流405的塊103將使所有數(shù)據(jù)彼此在約15分鐘內(nèi)變無效(需要注意的是這是一階流的粒度),并且整個塊的最大候命將為約1:15。需要注意的是在此示例中,行為類似于圖3A至圖3D所示的實施例,但是這并非必須如此。在與數(shù)據(jù)的壽命或者塊的剩余大小相比數(shù)據(jù)填充率較高的情況下,二階流實施例可提供更多靈活性。如果二階流在其到期之前填充塊,則它可移至新的塊(利用其剩余TTL);同時,舊的塊仍將使所有其數(shù)據(jù)在大約相同的時間到期(在一階流的粒度內(nèi))。換言之,利用二階流機制,系統(tǒng)沒有在接近其壽命結(jié)束時尋找壽命低或者填充率快的流來填充塊的壓力。還需要注意的是,未通過到期二階流填充的任何塊可通過具有與已經(jīng)存儲在塊中的數(shù)據(jù)的剩余TTL相似的壽命的新的流來填充。
需要注意的是,對于任一解決方案,一階流越多,可獲得越小的時間粒度(意味著頁將具有在彼此更接近的時間內(nèi)變無效的趨勢)。
如早前呈現(xiàn)的一階實施例一樣,許多二階流可同時操作。不同的二階流可根據(jù)一階流的屬性被創(chuàng)建為具有不同的壽命。
在任一解決方案中,當(dāng)SSD決定切換至不同的流(是寫入塊的不同一階流或者指派給二階流的不同一階流)時,SSD可使用任何期望的算法來選擇新的流。選擇新的一階流的一個算法是選擇具有大于塊或二階流的剩余TTL的最小TTL的流(或者如果沒有流具有大于塊或二階流的剩余TTL的TTL,則最大TTL)。因此,返回圖3A,由于塊103具有60分鐘的TTL 240,所以具有60分鐘的TTL 310的流305是最佳選擇。當(dāng)在圖3B中TTL 240下降至45分鐘時,利用該算法,具有45分鐘的TTL 325的流320變?yōu)樽罴堰x擇。然后,當(dāng)在圖3C中TTL 240下降至30分鐘時,利用該算法,具有30分鐘的TTL 340的流335變?yōu)樽罴堰x擇,依此類推。當(dāng)選擇一階流以與圖4的二階流405關(guān)聯(lián)時可應(yīng)用相同的選擇策略。
作為替代,SSD可選擇TTL最接近于塊的剩余TTL的一階流。因此,返回圖3A,具有60分鐘的TTL 310的流305最接近于60分鐘的塊TTL 240,并且保持使用該流直至?xí)r間0:07.5。在該時間之后,具有45分鐘的TTL 325的流320最接近于521/2分鐘的剩余塊TTL 240,并且保持如此直至?xí)r間0:22.5。在時間0:22.5,具有30分鐘的TTL 340的流335最接近于371/2分鐘的剩余塊TTL 240,依此類推。
圖5示出根據(jù)本發(fā)明構(gòu)思的實施例的將來自不同流的數(shù)據(jù)寫入圖1的塊的固態(tài)驅(qū)動器(SSD)。在圖5中,示出SSD 505。SSD 505可包括電路510,其可用于發(fā)送和接收信息(諸如操作或數(shù)據(jù))。SSD 505還可包括SSD控制器515和閃速存儲器520。SSD控制器515可控制SSD 505的操作。閃速存儲器520可存儲數(shù)據(jù)(即,閃速存儲器520可存儲圖1的塊103以及其它塊)。
SSD控制器515可包括選擇邏輯525、寫入邏輯530和TTL計算器535以及其它組件。選擇邏輯525可選擇將要使用的流,以用于寫入圖1的塊103或者指派給圖4的二階流405(如果使用圖4的二階流405的話)。寫入邏輯530可將數(shù)據(jù)寫入閃速存儲器520(可能在圖4的二階流405的命令下)。更具體地講,寫入邏輯530可將數(shù)據(jù)寫入閃速存儲器520中的頁(諸如圖1的塊103中的頁)。TTL計算器535可為流(諸如圖2A至圖2D的TTL 245和250、圖3A至圖3D的TTL 310、325、340和355、圖4的TTL 410)或者塊(諸如圖2A至圖3D的塊TTL 240)計算TTL。
在本發(fā)明構(gòu)思的使用二階流的實施例中,SSD控制器515還可包括二階流創(chuàng)建器540。二階流創(chuàng)建器540可創(chuàng)建圖4的二階流405,其可與圖4的塊103關(guān)聯(lián)。
圖6示出圖5的選擇邏輯525的細(xì)節(jié)。在圖6中,選擇邏輯525可包括比較器605、平均寫入大小計算器610、平均寫到達(dá)率計算器615、流選擇邏輯620和存儲器625。存儲器625可存儲塊TTL 240和/或二階流TTL 410(盡管塊TTL 240和二階流TTL 410可被存儲到選擇邏輯525的外部)。根據(jù)本發(fā)明構(gòu)思的實施例,比較器605可將圖2A至圖2D的TTL 245和250(對于圖2A至圖2D的流205和210)以及圖3A至圖3D的TTL 310、325、340和355(對于圖3A至圖3D的流305、320、335和350)與塊TTL 240或二階流TTL 410進(jìn)行比較。基于該比較,根據(jù)本發(fā)明構(gòu)思的實施例,流選擇邏輯620可選擇什么流應(yīng)該寫入圖1的塊103或者被指派給圖4的二階流405。
選擇邏輯525可在任何期望的時間操作。例如,選擇邏輯525可周期性地(諸如每5分鐘)使用?;蛘?,每當(dāng)新的寫操作被發(fā)送至圖5的SSD 505時可使用選擇邏輯525?;蛘撸慨?dāng)塊TTL 240或二階流TTL 410變得低于當(dāng)前寫入圖1的塊103的流或者圖4的二階流405的圖2A至圖2D的TTL 245或250或者圖3A至圖3D的TTL 310、325、340或355時可使用選擇邏輯525。選擇邏輯525也可在選擇流時考慮其它信息,諸如各個流的平均寫入大小和平均寫到達(dá)率。例如,再次考慮圖2A至圖3D的具有圖2A至圖3D的60分鐘的TTL 240的塊103,并且假設(shè)圖2A至圖3D的塊103包括60個頁。具有60分鐘的TTL且每分鐘寫入一頁的流將意味著在120分鐘(直至最后頁被寫入的60分鐘與直至該頁到期的60分鐘)內(nèi)塊103將包含有效數(shù)據(jù)。但是如果可用的僅有另一流以15分鐘的TTL每五分鐘寫一頁并且選擇邏輯525在時間0:45切換至該流,則將花費120分鐘來填充塊103,加上塊103中的最后數(shù)據(jù)到期之前的又15分鐘。因此,平均寫入大小和平均寫到達(dá)率可影響改變流的最佳時間。使用選擇邏輯525的其它安排也可使用(非限制)。
圖7示出圖6的平均寫入大小計算器610的細(xì)節(jié)。在圖7中,平均寫入大小計算器610可接收關(guān)于給定流的寫操作106、109、112、124和127的信息,并且計算那些寫的平均寫入大小705(即,所寫入的數(shù)據(jù)量之和除以所執(zhí)行的寫操作的數(shù)量)。如上所述,平均寫入大小計算器610可使用流的所有可用信息、或者流的最近n次寫操作、或者流的最后n次寫操作中的最早k次寫操作、或者在最后t分鐘發(fā)生的流的寫操作、或者任何其它期望的方法來選擇流的寫操作。
圖8示出圖6的平均寫到達(dá)率計算器615的細(xì)節(jié)。在圖8中,平均寫到達(dá)率計算器615可接收關(guān)于給定流的寫操作106、109、112、124和127的信息,并且計算那些寫的平均寫到達(dá)率805(即,第一寫操作與最后寫操作之間的時間量除以在該區(qū)間內(nèi)執(zhí)行的寫操作的數(shù)量)。如上所述,平均寫到達(dá)率計算器615可使用流的所有可用信息、或者流的最近n次寫操作、或者流的最后n次寫操作中的最早k次寫操作、或者在最后t分鐘內(nèi)發(fā)生的流的寫操作、或者任何其它期望的方法來選擇流的寫操作。
圖9示出圖6的流選擇邏輯620的細(xì)節(jié)。在圖9中,流選擇邏輯620可接收各種信息,諸如圖2A至圖3D的塊TTL 240、來自圖2A至圖2D的流205和210的圖2A至圖2D的TTL 245和250、來自圖3A至圖3D的流305、320、335和350的圖3A至圖3D的TTL 310、325、340和355、各個流的平均寫入大小705以及各個流的平均寫到達(dá)率805。流選擇邏輯620可使用該信息來選擇流905以寫入圖2B至圖3D的塊103。流選擇邏輯620可使用任何期望的策略來選擇流905以寫入圖2B至圖3D的塊103或者圖4的二階流405。例如,流選擇邏輯620可選擇具有小于圖2A至圖3D的塊240的剩余TTL的最高TTL的流?;蛘撸鬟x擇邏輯620可計算何時切換流以優(yōu)化數(shù)據(jù)到期,如上面參照圖2A至圖2D舉例說明的。流選擇邏輯620還可使用其它選擇策略。如上所述,流選擇邏輯620可使用所有提供的信息或者僅使用它們中的一些來選擇流905。如果在本發(fā)明構(gòu)思的實施例中,流選擇邏輯620沒有使用圖9所示的所有信息,則流選擇邏輯620無需被提供圖9中示出的所有信息。
圖10示出圖5的TTL計算器535的細(xì)節(jié)。在圖10中,TTL計算器535可接收關(guān)于給定流的寫操作106、109、112、124和127的信息,并且計算那些流的TTL 310、325、340和355(即,通過測量數(shù)據(jù)被寫入時與該數(shù)據(jù)被修改或者刪除時之間的持續(xù)時間,然后對那些持續(xù)時間求和并除以受影響的頁的數(shù)量)。如上所述,TTL計算器535可使用流的所有可用信息、或者流的最近n次寫操作、或者流的最后n次寫操作中的最早k次寫操作、或者在最后t分鐘內(nèi)發(fā)生的流的寫操作、或者任何其它可取的方法來選擇流的寫操作。
圖11示出可包括圖5的SSD的機器的細(xì)節(jié)。參照圖11,通常,機器1105包括一個或更多個處理器1110,其可包括內(nèi)存控制器1115和時鐘1120(可用于協(xié)調(diào)機器1105的組件的操作)。處理器1110還可耦合至內(nèi)存1125,作為示例,內(nèi)存1125可包括隨機存取存儲器(RAM)、只讀存儲器(ROM)或者其它狀態(tài)保存介質(zhì)。處理器1110還可耦合至存儲裝置505和網(wǎng)絡(luò)連接器1130(可以是例如以太網(wǎng)連接器)。處理器1110還可連接至總線1135,除了其他組件以外,用戶接口1140和可利用輸入/輸出引擎1145管理的輸入/輸出接口端口可附接至總線1135。
圖12示出根據(jù)本發(fā)明構(gòu)思的實施例的圖5的SSD將來自不同流的數(shù)據(jù)寫入圖1的塊的過程的流程圖。在圖12,在方框1205,圖5的SSD 505可識別的圖1的塊103。在方框1210,圖5的SSD 505可使圖2A至圖3D的TTL 240與圖1的塊103關(guān)聯(lián)。在方框1215,圖5的SSD 505可接收圖2A至圖2D的流205和210以及圖3A至圖3D的流305、320、335和350。在方框1220,圖5的SSD 505可選擇流905以寫入圖1的塊103。在方框1225,圖5的SSD 505可將來自選擇的流905的數(shù)據(jù)寫入圖1的塊103。如虛線1230所示,可選地,控制可返回到方框1220以使得圖5的SSD 505能夠選擇不同的流以在稍后的時間寫入圖1的塊103。
圖13示出根據(jù)本發(fā)明構(gòu)思的實施例的圖5的SSD利用二階流將來自不同流的數(shù)據(jù)寫入圖1的塊的過程的流程圖。在圖13中,在方框1305,圖5的SSD 505可識別圖1的塊103。在方框1310,圖5的SSD 505可創(chuàng)建圖4的二階流405。在方框1315,圖5的SSD 505可將圖4的TTL 410指派給圖4的二階流405。在方框1320,圖5的SSD 505可接收圖2A至圖2D的流205和210或者圖3A至圖3D的流305、320、335和350。在方框1320,圖5的SSD 505可選擇流905以寫入圖4的二階流405。在方框1325,圖5的SSD 505可將來自選擇的流905的數(shù)據(jù)寫入圖4的二階流405。在方框1325,圖5的SSD 505可將來自圖4的二階流405的數(shù)據(jù)寫入圖1的塊103。如虛線1330所示,可選地,控制可返回到方框1325以使得圖5的SSD 505能夠選擇不同的流以在稍后的時間寫入圖4的二階流405。
在圖12至圖13中,示出了本發(fā)明構(gòu)思的一些實施例。但是本領(lǐng)域技術(shù)人員將認(rèn)識到,通過改變方框的順序,通過省略方框,或者通過包括圖中未示出的鏈路,本發(fā)明構(gòu)思的其它實施例也是可能的。流程圖的所有這樣的變化無論是否被明確地描述,均被視為本發(fā)明構(gòu)思的實施例。
以下討論意在提供可實現(xiàn)本發(fā)明構(gòu)思的特定方面的合適的機器的簡要的一般描述。所述機器可至少部分地通過來自傳統(tǒng)輸入裝置(諸如鍵盤、麥克風(fēng)等)的輸入以及通過從另一機器接收的指令、與虛擬現(xiàn)實(VR)環(huán)境的交互、生物反饋或其它輸入信號來控制。如本文所用,術(shù)語“機器”意在廣義地涵蓋單個機器、虛擬機或者在通信上耦合的機器、虛擬機或一起操作的裝置的系統(tǒng)。示例性機器包括諸如個人計算機、工作站、服務(wù)器、便攜式計算機、手持裝置、電話、平板等的計算裝置以及諸如私人或公共交通工具(例如,汽車、火車、出租車等)的運輸裝置。
所述機器可包括嵌入式控制器,諸如可編程或不可編程邏輯器件或陣列、專用集成電路(ASIC)、嵌入式計算機、智能卡等。所述機器可使用到一個或更多個遠(yuǎn)程機器的一個或更多個連接(諸如通過網(wǎng)絡(luò)接口、調(diào)制解調(diào)器或者其它通信耦合)。機器可通過物理和/或邏輯網(wǎng)絡(luò)來互連,諸如內(nèi)聯(lián)網(wǎng)、互聯(lián)網(wǎng)、局域網(wǎng)、廣域網(wǎng)等。本領(lǐng)域技術(shù)人員將理解,網(wǎng)絡(luò)通信可使用各種有線和/或無線短距離或長距離載波和協(xié)議,包括射頻(RF)、衛(wèi)星、微波、電氣和電子工程師協(xié)會(IEEE)802.11、光學(xué)、紅外、線纜、激光等。
本發(fā)明構(gòu)思的實施例可通過參考或結(jié)合關(guān)聯(lián)的數(shù)據(jù)(包括功能、過程、數(shù)據(jù)結(jié)構(gòu)、應(yīng)用程序等)來描述,所述數(shù)據(jù)在被機器訪問時導(dǎo)致所述機器執(zhí)行任務(wù)或者定義抽象數(shù)據(jù)類型或低級硬件上下文。關(guān)聯(lián)的數(shù)據(jù)可被存儲在例如易失性和/或非易失性存儲器(例如,RAM、ROM等)中或者其它存儲裝置機器關(guān)聯(lián)的存儲介質(zhì)(包括硬盤驅(qū)動器、軟盤、光學(xué)存儲裝置、磁帶、閃速存儲器、記憶棒、數(shù)字視頻盤、生物存儲裝置等)中。關(guān)聯(lián)的數(shù)據(jù)可經(jīng)傳輸環(huán)境(包括物理和/或邏輯網(wǎng)絡(luò))以分組、串行數(shù)據(jù)、并行數(shù)據(jù)、傳播信號等的形式傳送,并且可按照壓縮或加密格式來使用。關(guān)聯(lián)的數(shù)據(jù)可用在分布式環(huán)境中,并且被本地地和/或遠(yuǎn)程地存儲以便于機器訪問。
本發(fā)明構(gòu)思的實施例可包括有形的非暫時性機器可讀介質(zhì),其包括可由一個或更多個處理器執(zhí)行的指令,所述指令包括執(zhí)行如本文所述的本發(fā)明構(gòu)思的元件的指令。
已參照所示的實施例描述并示出了本發(fā)明構(gòu)思的原理,將認(rèn)識到,在不脫離這樣的原理的情況下所示的實施例可在布置方式和細(xì)節(jié)上修改,并且可按照任何期望的方式組合。并且,盡管以上討論聚焦于特定實施例,可以想到其它配置。具體地講,即使本文中使用諸如“根據(jù)本發(fā)明構(gòu)思的實施例”等的表達(dá),這些短語意在總體上引用實施例可能性,而非意在將本發(fā)明構(gòu)思限制為特定實施例配置。如本文所用,這些術(shù)語可引用可組合成其它實施例的相同或不同的實施例。
上述示意性實施方式不應(yīng)被解釋為限制其發(fā)明構(gòu)思。盡管描述了幾個實施方式,本領(lǐng)域技術(shù)人員將容易理解,在不本質(zhì)上脫離本公開的新穎教導(dǎo)和優(yōu)點的情況下,可對那些實施方式進(jìn)行許多修改。因此,所有這些修改旨在被包括在如權(quán)利要求書中定義的本發(fā)明構(gòu)思的范圍內(nèi)。
本發(fā)明構(gòu)思的實施方式可擴展至以下聲明(無限制):
聲明1.本發(fā)明構(gòu)思的實施例包括一種固態(tài)驅(qū)動器(SSD),包括:
接收電路,從包括第一生存時間(TTL)的第一流接收數(shù)據(jù),并且從包括第二TTL的第二流接收數(shù)據(jù),第二TTL不同于第一TTL;
選擇邏輯,基于第一TTL和第二TTL來選擇哪一流寫入SSD上的塊;以及
寫入邏輯,將來自第一流和第二流二者的數(shù)據(jù)寫入SSD上的塊。
聲明2.本發(fā)明構(gòu)思的實施例包括根據(jù)聲明1所述的SSD,其中,存儲在塊中的所有數(shù)據(jù)預(yù)期將比僅來自第一流和第二流中的一個的數(shù)據(jù)被寫入塊的情況更快到期。
聲明3.本發(fā)明構(gòu)思的實施例包括根據(jù)聲明1所述的SSD,其中,選擇邏輯操作以在第一時間基于第一TTL和第二TTL選擇第一流寫入塊,在第二時間基于第一TTL和第二TTL選擇第二流寫入塊。
聲明4.本發(fā)明構(gòu)思的實施例包括根據(jù)聲明1所述的SSD,其中,選擇邏輯操作以周期性地基于第一TTL和第二TTL選擇哪一流寫入SSD上的塊。
聲明5.本發(fā)明構(gòu)思的實施例包括根據(jù)聲明1所述的SSD,其中,當(dāng)接收電路從第一流或第二流接收數(shù)據(jù)時,選擇邏輯操作以基于第一TTL和第二TTL選擇哪一流寫入SSD上的塊。
聲明6.本發(fā)明構(gòu)思的實施例包括根據(jù)聲明1所述的SSD,其中,選擇邏輯包括比較器以將第一TTL和第二TTL與塊所關(guān)聯(lián)的塊TTL進(jìn)行比較。
聲明7.本發(fā)明構(gòu)思的實施例包括根據(jù)聲明1所述的SSD,其中,選擇邏輯包括:
平均寫入大小計算器,計算與第一流關(guān)聯(lián)的寫操作的第一平均寫入大小以及與第二流關(guān)聯(lián)的寫操作的第二平均寫入大?。灰约?/p>
平均寫到達(dá)率計算器,計算第一流的第一平均寫到達(dá)率以及第二流的第二平均寫到達(dá)率。
聲明8.本發(fā)明構(gòu)思的實施例包括根據(jù)聲明7所述的SSD,其中,選擇邏輯操作以基于第一TTL、第二TTL、第一平均寫入大小、第一平均寫到達(dá)率、第二平均寫入大小和第二平均寫到達(dá)率中的至少兩個來選擇哪一流寫入SSD上的塊。
聲明9.本發(fā)明構(gòu)思的實施例包括根據(jù)聲明1所述的SSD,還包括TTL計算器以計算第一流的第一TTL和第二流的第二TTL。
聲明10.本發(fā)明構(gòu)思的實施例包括根據(jù)聲明1所述的SSD,其中:
SSD還包括二階流創(chuàng)建器以創(chuàng)建二階流;
選擇邏輯包括流選擇邏輯以選擇第一流和第二流中的哪一個寫入二階流;并且
寫入邏輯操作以將二階流寫入塊。
聲明11.本發(fā)明構(gòu)思的實施例包括根據(jù)聲明1所述的SSD,其中:
接收電路操作以從第一流、第二流以及包括第三TTL的第三流接收數(shù)據(jù),第三TTL不同于第一TTL和第二TTL;
選擇邏輯操作以基于第一TTL、第二TTL和第三TTL選擇哪一流寫入SSD上的塊;并且
寫入邏輯操作以將來自第一流、第二流和第三流的數(shù)據(jù)寫入SSD上的塊。
聲明12.本發(fā)明構(gòu)思的實施例包括一種用于固態(tài)驅(qū)動器(SSD)的邏輯,包括:
用于SSD上的塊的塊生存時間(TTL)的存儲器;以及
選擇邏輯,在具有第一TTL的第一流和具有第二TTL的第二流之間基于塊TTL、第一TTL和第二TTL進(jìn)行選擇以寫入塊。
聲明13.本發(fā)明構(gòu)思的實施例包括根據(jù)聲明12所述的邏輯,其中,存儲在塊中的所有數(shù)據(jù)預(yù)期將比僅來自第一流和第二流中的一個的數(shù)據(jù)被寫入塊的情況更快到期。
聲明14.本發(fā)明構(gòu)思的實施例包括根據(jù)聲明12所述的邏輯,其中,選擇邏輯操作以在第一時間基于塊TTL、第一TTL和第二TTL選擇第一流寫入塊,在第二時間基于塊TTL、第一TTL和第二TTL選擇第二流寫入塊。
聲明15.本發(fā)明構(gòu)思的實施例包括根據(jù)聲明12所述的邏輯,其中,選擇邏輯操作以周期性地基于塊TTL、第一TTL和第二TTL選擇哪一流寫入SSD上的塊。
聲明16.本發(fā)明構(gòu)思的實施例包括根據(jù)聲明12所述的邏輯,其中,當(dāng)SSD從第一流或第二流接收數(shù)據(jù)時,選擇邏輯操作以基于塊TTL、第一TTL和第二TTL選擇哪一流寫入SSD上的塊。
聲明17.本發(fā)明構(gòu)思的實施例包括根據(jù)聲明12所述的邏輯,其中,選擇邏輯包括比較器以將第一TTL和第二TTL與塊TTL進(jìn)行比較。
聲明18.本發(fā)明構(gòu)思的實施例包括根據(jù)聲明12所述的邏輯,其中,選擇邏輯包括:
平均寫入大小計算器,計算與第一流關(guān)聯(lián)的寫操作的第一平均寫入大小以及與第二流關(guān)聯(lián)的寫操作的第二平均寫入大小;以及
平均寫到達(dá)率計算器,計算第一流的第一平均寫到達(dá)率以及第二流的第二平均寫到達(dá)率。
聲明19.本發(fā)明構(gòu)思的實施例包括根據(jù)聲明18所述的邏輯,其中,選擇邏輯操作以基于塊TTL、第一TTL、第二TTL、第一平均寫入大小、第一平均寫到達(dá)率、第二平均寫入大小和第二平均寫到達(dá)率中的至少兩個來選擇哪一流寫入SSD上的塊。
聲明20.本發(fā)明構(gòu)思的實施例包括根據(jù)聲明12所述的邏輯,還包括TTL計算器以計算第一流的第一TTL和第二流的第二TTL。
聲明21.本發(fā)明構(gòu)思的實施例包括根據(jù)聲明12所述的邏輯,其中:
該邏輯還包括二階流創(chuàng)建器以創(chuàng)建二階流;并且
選擇邏輯包括流選擇邏輯以選擇第一流和第二流中的哪一個寫入二階流,
其中,二階流可被寫入塊。
聲明22.本發(fā)明構(gòu)思的實施例包括根據(jù)聲明12所述的邏輯,其中,選擇邏輯操作以基于塊TTL、第一TTL、第二TTL和第三TTL在具有第一TTL的第一流、具有第二TTL的第二流和具有第三TTL的第三流之間進(jìn)行選擇以寫入塊。
聲明23.本發(fā)明構(gòu)思的實施例包括一種方法,該方法包括:
識別固態(tài)驅(qū)動器(SSD)上的塊;
接收第一流,該第一流包括第一生存時間(TTL);
接收第二流,該第二流包括第二TTL,第二TTL不同于第一TTL;
基于第一TTL和第二TTL選擇是將第一流還是將第二流寫入塊;以及
將來自第一流和第二流二者的數(shù)據(jù)寫入塊。
聲明24.本發(fā)明構(gòu)思的實施例包括根據(jù)聲明23所述的方法,其中,存儲在塊中的所有數(shù)據(jù)預(yù)期將比僅來自第一流和第二流中的一個的數(shù)據(jù)被寫入塊的情況更快到期。
聲明25.本發(fā)明構(gòu)思的實施例包括根據(jù)聲明23所述的方法,其中,選擇是將第一流還是第二流寫入塊的步驟包括:
在第一時間基于第一TTL和第二TTL選擇將第一流寫入塊;以及
在第二時間基于第一TTL和第二TTL選擇將第二流寫入塊。
聲明26.本發(fā)明構(gòu)思的實施例包括根據(jù)聲明23所述的方法,其中,選擇是將第一流還是第二流寫入塊的步驟包括周期性地基于第一TTL和第二TTL選擇是將第一流還是第二流寫入塊。
聲明27.本發(fā)明構(gòu)思的實施例包括根據(jù)聲明23所述的方法,其中,選擇是將第一流還是第二流寫入塊的步驟包括每當(dāng)來自第一流或第二流的數(shù)據(jù)被寫入SSD時基于第一TTL和第二TTL選擇是將第一流還是第二流寫入塊。
聲明28.本發(fā)明構(gòu)思的實施例包括根據(jù)聲明23所述的方法,其中:
選擇是將第一流還是第二流寫入塊的步驟包括基于第一TTL、第二TTL、第一流的第一平均寫入大小、第二流的第二平均寫入大小、第一流的第一平均寫到達(dá)率和第二流的第二平均寫到達(dá)率中的至少兩個來選擇是將第一流還是第二流寫入塊。
聲明29.本發(fā)明構(gòu)思的實施例包括根據(jù)聲明23所述的方法,其中,識別固態(tài)驅(qū)動器(SSD)上的塊的步驟包括使塊TTL與塊關(guān)聯(lián)。
聲明30.本發(fā)明構(gòu)思的實施例包括根據(jù)聲明29所述的方法,其中,選擇是將第一流還是第二流寫入塊的步驟包括基于第一TTL、第二TTL和塊TTL來選擇是將第一流還是第二流寫入塊。
聲明31.本發(fā)明構(gòu)思的實施例包括根據(jù)聲明30所述的方法,其中,選擇是將第一流還是第二流寫入塊的步驟還包括基于是第一TTL還是第二TTL更接近塊TTL來選擇是寫入第一流還是第二流。
聲明32.本發(fā)明構(gòu)思的實施例包括根據(jù)聲明23所述的方法,其中:
該方法還包括:
建立二階流;
使二階流與塊關(guān)聯(lián);并且
選擇是將第一流還是第二流寫入塊的步驟包括選擇是將來自第一流還是第二流的數(shù)據(jù)指派給二階流。
聲明33.本發(fā)明構(gòu)思的實施例包括根據(jù)聲明23所述的方法,其中:
該方法還包括接收第三流,該第三流包括第三TTL,第三TTL不同于第一TTL和第二TTL;
選擇是將第一流還是第二流寫入塊的步驟包括基于第一TTL、第二TTL和第三TTL來選擇是將第一流、第二流還是第三流寫入塊;并且
將來自第一流和第二流二者的數(shù)據(jù)寫入塊的步驟包括將來自第一流、第二流和第三流的數(shù)據(jù)寫入塊。
因此,鑒于對本文所述的實施例的各種各樣的排列,此詳細(xì)描述和附圖旨在僅為示意性的,不應(yīng)被視為限制本發(fā)明構(gòu)思的范圍。因此,作為本發(fā)明構(gòu)思要求保護(hù)的是可能落入所附權(quán)利要求及其等同物的范圍和精神內(nèi)的所有這樣的修改。