Ssd存儲(chǔ)訪問的方法和裝置制造方法
【專利摘要】一種包括應(yīng)用層(12)、系統(tǒng)層(14)以及固態(tài)驅(qū)動(dòng)器(SSD)存儲(chǔ)層(16)的媒體管理系統(tǒng)(10)。所述應(yīng)用層(12)包括用于將分類代碼分配給數(shù)據(jù)文件的媒體數(shù)據(jù)分析應(yīng)用(20)。所述系統(tǒng)層(14)與所述應(yīng)用層(12)進(jìn)行通信。所述系統(tǒng)層(14)包括用于向SSD控制器(26)發(fā)出寫命令的文件系統(tǒng)(22)。所述寫命令包含所述數(shù)據(jù)文件的分類代碼。所述SSD存儲(chǔ)層(16)包括所述SSD控制器(26)和可擦除塊(28)?;谒鰧懨钪袛?shù)據(jù)文件的分類代碼,所述SSD控制器(26)用于將數(shù)據(jù)文件寫入其中一個(gè)可擦除塊(28)中。在實(shí)施例中,所述SSD控制器(26)用于將數(shù)據(jù)文件寫入其中一個(gè)可擦除塊28中。其中也存儲(chǔ)同樣具有分類代碼的其他數(shù)據(jù)文件。
【專利說明】SSD存儲(chǔ)訪問的方法和裝置
[0001]相關(guān)申請案的交叉參考
[0002]本發(fā)明要求2011年7月20日遞交的發(fā)明名稱為“SSD存儲(chǔ)訪問的方法和裝置(Method and Apparatus for SSD Storage Access),,的第 61/509,930 號(hào)美國臨時(shí)申請案的在先申請優(yōu)先權(quán),該在先申請的內(nèi)容以全文引入的方式并入本文本中。本發(fā)明同樣要求2012年5月22日遞交的發(fā)明名稱為“SSD存儲(chǔ)訪問的方法和裝置(Method and Apparatusfor SSD Storage Access)”的第13/477,924號(hào)美國臨時(shí)申請案的在先申請優(yōu)先權(quán),該在先申請的內(nèi)容以全文引入的方式并入本文本中。
【技術(shù)領(lǐng)域】
[0003]本發(fā)明涉及通信系統(tǒng)和方法,且在具體實(shí)施例中,涉及一種SSD存儲(chǔ)訪問的方法和裝置。
【背景技術(shù)】
[0004]非易失性存儲(chǔ)器已經(jīng)作為存儲(chǔ)器使用在計(jì)算機(jī)和便攜信息裝置中。近年來,在計(jì)算機(jī)中將利用NAND閃速存儲(chǔ)器的固態(tài)驅(qū)動(dòng)器(SSD)用作硬盤驅(qū)動(dòng)器(HDD)的替代物這種用法越來越流行。SSD被視為最有可能進(jìn)入傳統(tǒng)上認(rèn)為僅限于使用HDD的領(lǐng)域中。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例一般能夠獲得技術(shù)優(yōu)點(diǎn),其提供一種固態(tài)驅(qū)動(dòng)器(SSD)存儲(chǔ)訪問方法和裝置以提高SSD性能及使用期限。
[0006]在實(shí)施例中,媒體管理系統(tǒng)包括應(yīng)用層、系統(tǒng)層以及固態(tài)驅(qū)動(dòng)器(SSD)層。所述應(yīng)用層包括用于將分類代碼分配給數(shù)據(jù)文件的媒體數(shù)據(jù)分析應(yīng)用。所述系統(tǒng)層與應(yīng)用層進(jìn)行通信并且包括用于向SSD控制器發(fā)出寫命令的文件系統(tǒng)。所述寫命令包含所述數(shù)據(jù)文件的分類代碼。所述SSD存儲(chǔ)層與系統(tǒng)層進(jìn)行通信并且包括所述SSD控制器和可擦除塊?;谒鰧懨钪袛?shù)據(jù)文件的分類代碼,所述SSD控制器用于將數(shù)據(jù)文件寫入其中一個(gè)可擦除塊中。
[0007]在實(shí)施例中,媒體管理系統(tǒng)包括應(yīng)用層、系統(tǒng)層以及固態(tài)驅(qū)動(dòng)器(SSD)層。所述應(yīng)用層包括用于將分類代碼分配給數(shù)據(jù)文件的媒體數(shù)據(jù)分析應(yīng)用。所述系統(tǒng)層與應(yīng)用層進(jìn)行通信并且用于向SSD控制器發(fā)出寫命令。所述寫命令包含所述數(shù)據(jù)文件的分類代碼。所述SSD存儲(chǔ)層與系統(tǒng)層進(jìn)行通信并且包括所述SSD控制器和可擦除塊。所述SSD控制器用于將數(shù)據(jù)文件寫入其中一個(gè)可擦除塊中。該擦除塊中存儲(chǔ)有同樣具有所述分類代碼的其他數(shù)據(jù)文件。
[0008]在實(shí)施例中,一種在固態(tài)驅(qū)動(dòng)器(SSD)中存儲(chǔ)媒體的方法包括從應(yīng)用層的媒體數(shù)據(jù)分析應(yīng)用中接收數(shù)據(jù)文件的分類代碼以及向SSD控制器發(fā)出寫命令。所述寫命令指示所述SSD控制器將數(shù)據(jù)文件存儲(chǔ)在一擦除塊中,該擦除塊中存儲(chǔ)有同樣具有所述分類代碼的其他數(shù)據(jù)文件?!緦@綀D】
【附圖說明】
[0009]為了更完整地理解本發(fā)明及其優(yōu)點(diǎn),現(xiàn)在參考下文結(jié)合附圖進(jìn)行的描述,其中:
[0010]圖1示出了具有固態(tài)驅(qū)動(dòng)器(SSD)的典型媒體系統(tǒng)的環(huán)境圖。
[0011]圖2是描繪媒體數(shù)據(jù)分析應(yīng)用或引擎的數(shù)據(jù)源的圖,所述分析應(yīng)用或引擎使用所述數(shù)據(jù)源來分析和分配分類代碼(CC)給待存儲(chǔ)到圖1中的SSD中的數(shù)據(jù)單元。
[0012]圖3是圖1中的SSD和系統(tǒng)的分類代碼使用圖。
[0013]圖4示出了能實(shí)施本發(fā)明實(shí)施例的系統(tǒng)。
[0014]圖5是圖1中的SSD媒體存儲(chǔ)方法的一項(xiàng)實(shí)施例。
【具體實(shí)施方式】
[0015]下文將詳細(xì)論述對本發(fā)明實(shí)施例的實(shí)施和使用。但應(yīng)了解,本發(fā)明提供的許多適用發(fā)明概念可在多種具體環(huán)境中實(shí)施。所論述的具體實(shí)施例僅為說明性的,而不限制本發(fā)明的范圍。
[0016]最近出現(xiàn)的將固態(tài)驅(qū)動(dòng)器(SSD)用作CPU存儲(chǔ)器(RAM)和硬盤驅(qū)動(dòng)器(HDD)之間的中間存儲(chǔ)器或者直接替換HDD的用法促使了新一代系統(tǒng)架構(gòu)的產(chǎn)生。在這樣一個(gè)新的系統(tǒng)架構(gòu)中,越來越多地使用SSD以增加訪問存儲(chǔ)(或緩存)數(shù)據(jù)的速度,降低存儲(chǔ)驅(qū)動(dòng)器失敗率(例如HDD),減少系統(tǒng)的尺寸、重量以及功耗配置文件,并且減少訪問存儲(chǔ)(或緩存)數(shù)據(jù)的時(shí)延。例如,可以在內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)中使用SSD以加快數(shù)據(jù)訪問。
[0017]盡管SSD有著明顯的優(yōu)點(diǎn),但其也有一些缺點(diǎn)。例如,SSD的使用期限(即可持久的寫數(shù)目)往往是有限的。這是由于NAND閃速存儲(chǔ)器的編程/擦除周期是有限的,對于MLC(多層單元)類的NAND閃存而言尤為如此。SSD還可能有其他缺點(diǎn),比如對數(shù)據(jù)如何寫入SDD存儲(chǔ)塊以及如何從SSD存儲(chǔ)塊擦除的限制導(dǎo)致SSD訪問效率低下,以及每兆SSD的成本相比于HDD或磁帶的較高。
[0018]本發(fā)明實(shí)施例針對上述SSD缺點(diǎn)的前兩個(gè)方面。實(shí)際上,本發(fā)明實(shí)施例通過將待存儲(chǔ)到SSD中的數(shù)據(jù)進(jìn)行分類以及根據(jù)數(shù)據(jù)的分類值存儲(chǔ)數(shù)據(jù)來幫助延長SSD的使用期限。為了提高基于SSD存儲(chǔ)系統(tǒng)的各種性能矩陣,實(shí)施例方法和裝置采用了存儲(chǔ)數(shù)據(jù)的固有特性,例如待緩存到SSD中內(nèi)容的熱度。
[0019]正如以下將會(huì)充分說明的那樣,提出一個(gè)方案,其中根據(jù)數(shù)據(jù)的類型對SSD存儲(chǔ)塊進(jìn)行分類,這反映出數(shù)據(jù)的特點(diǎn),包括但不限于數(shù)據(jù)的預(yù)期使用期限,從而將相似的內(nèi)容/數(shù)據(jù)一起存儲(chǔ)在同一個(gè)SSD擦除塊內(nèi)。這樣做就減少了從一個(gè)使用過的數(shù)據(jù)塊復(fù)制有效數(shù)據(jù)到一個(gè)新的數(shù)據(jù)塊以騰出SSD空間(對于基于SSD的NAND來說,其稱為“垃圾收集”)的需求。
[0020]分析表明這套方法在常見內(nèi)容訪問模式的基礎(chǔ)上,大大改進(jìn)了 SSD訪問??紤]到視頻內(nèi)容流量將在2014年占據(jù)超過90%的IP流量,SSD數(shù)據(jù)塊的大小持續(xù)在增長,以及對更快I/O的需求將推動(dòng)實(shí)現(xiàn)更高的并行性能,實(shí)施例可能影響到所有使用SSD來存儲(chǔ)/緩存在線內(nèi)容的系統(tǒng)/網(wǎng)絡(luò)。
[0021]現(xiàn)參考圖1,圖1示出了媒體系統(tǒng)10使用三個(gè)層實(shí)施SSD存儲(chǔ)。如圖1所示,所述媒體系統(tǒng)10包括應(yīng)用層12、系統(tǒng)層14以及SSD存儲(chǔ)層16 (本文中,其表示為以及稱為SSD)。所述應(yīng)用層12與所述系統(tǒng)層14進(jìn)行通信??赏ㄟ^或者借助如電子裝置(如計(jì)算機(jī)、服務(wù)器、平板裝置、智能手機(jī)等)的中央處理器(CPU)等來實(shí)現(xiàn)此類通信。所述系統(tǒng)層14與所述SSD存儲(chǔ)層16進(jìn)行通信??赏ㄟ^如快捷外圍部件互連標(biāo)準(zhǔn)(PCIe)接口等來實(shí)現(xiàn)此類通信。在不同的實(shí)施例中,也可以使用其他通信的接口或方法。同樣,在一些實(shí)施例中,所述應(yīng)用層12、系統(tǒng)層14和SSD存儲(chǔ)層16以及他們各自的功能和特征可以組合使用,以便采用的層數(shù)少于3。
[0022]所述應(yīng)用層12包括各種應(yīng)用18。當(dāng)由CUP或其他處理器執(zhí)行時(shí),所述應(yīng)用18可以是能夠訪問媒體、數(shù)據(jù)、內(nèi)容等的軟件或程序等。應(yīng)用戶的請求,可運(yùn)行或執(zhí)行所述應(yīng)用
18。所述應(yīng)用層12還包括媒體數(shù)據(jù)分析(MDA)應(yīng)用20或引擎。如下文更充分的說明所述,所述媒體數(shù)據(jù)分析應(yīng)用20用于將分類代碼分配給數(shù)據(jù)文件。所述應(yīng)用層12包括所述媒體數(shù)據(jù)分析應(yīng)用20,并表示使用較低系統(tǒng)層進(jìn)行存儲(chǔ)業(yè)務(wù)的通用應(yīng)用和內(nèi)容業(yè)務(wù)層。
[0023]所述系統(tǒng)層14可以為管理計(jì)算機(jī)硬件資源和提供普通業(yè)務(wù)給應(yīng)用軟件的操作系統(tǒng)等。實(shí)際上,在一項(xiàng)實(shí)施例中,所述系統(tǒng)層14可表示Microsoft Windows以及Linux等操作系統(tǒng)。如附圖1所示,所述系統(tǒng)層14包括用于向例如SSD控制器或其他裝置發(fā)出寫命令的文件系統(tǒng)22。正如以下將會(huì)詳細(xì)說明的那樣,所述寫命令包含或包括所述數(shù)據(jù)文件的分類代碼,其中分類代碼由上述提到的媒體數(shù)據(jù)分析應(yīng)用20來確定。
[0024]在實(shí)施例中,所述系統(tǒng)層14的一項(xiàng)實(shí)施方案為圖1中的文件系統(tǒng)22。然而,在另一實(shí)施例中,所述系統(tǒng)層14的另一實(shí)施方案可以為基于塊的鍵-值存儲(chǔ)系統(tǒng)。
[0025]所述系統(tǒng)層14同樣可以包括或支持針對媒體內(nèi)容的緩存或存儲(chǔ)系統(tǒng)24。在實(shí)施例中,所述緩存或存儲(chǔ)系統(tǒng)24是靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)或另一類型存儲(chǔ)器。在圖1中,雖然文件系統(tǒng)22被描述成位于緩存或存儲(chǔ)系統(tǒng)24內(nèi),但所述文件系統(tǒng)22實(shí)際上可以位于或設(shè)置于其他地方。例如,可在網(wǎng)絡(luò)服務(wù)器上獲得所述文件系統(tǒng)22或通過分布式系統(tǒng)訪問。
[0026]提供或監(jiān)控存儲(chǔ)業(yè)務(wù)的系統(tǒng)層14可以接受數(shù)據(jù)(比如文件或鍵值成對數(shù)據(jù))以及描述數(shù)據(jù)本質(zhì)的附加元數(shù)據(jù)。所述附加元數(shù)據(jù)可以是一組系統(tǒng)/應(yīng)用,其分配了為最佳SSD存儲(chǔ)而設(shè)計(jì)的分類代碼。
[0027]所述SSD存儲(chǔ)層16包括SSD控制器26和可擦除塊28。所述SSD控制器26用于接收如所述系統(tǒng)層14的文件系統(tǒng)22發(fā)出的寫命令等?;谒鰧懨钪袛?shù)據(jù)文件的分類代碼,所述SSD控制器26還用于將所述數(shù)據(jù)文件寫入其中一個(gè)可擦除塊中。實(shí)際上,所述SSD控制器26用于將所述數(shù)據(jù)文件寫入其中一個(gè)可擦除塊28,所述可擦除塊已經(jīng)或當(dāng)前存儲(chǔ)同樣具有所述分類代碼的其他數(shù)據(jù)文件。換言之,所述SSD控制器26能夠?qū)⑺鰯?shù)據(jù)文件寫入其中一個(gè)存儲(chǔ)其他數(shù)據(jù)文件的可擦除塊中,所述其他數(shù)據(jù)文件與所述數(shù)據(jù)文件共享相同的分類代碼。
[0028]圖1中的每個(gè)可擦除塊28用于存儲(chǔ)成頁的數(shù)據(jù)或內(nèi)容。在實(shí)施例中,每個(gè)可擦除塊28能夠存儲(chǔ)256頁數(shù)據(jù)或內(nèi)容。一般認(rèn)為一個(gè)可擦除塊28是可被一次擦除的NAND閃存中最小的單元。因此,在實(shí)施例中,當(dāng)擦除一個(gè)可擦除塊28時(shí),全部256頁也同時(shí)被擦除。雖然圖1未示出,存儲(chǔ)晶片上可包含若干個(gè)可擦除塊28,也可包含在存儲(chǔ)芯片中。
[0029]在實(shí)施例中,采用一種方案將待存儲(chǔ)到圖1的可擦除塊28中的數(shù)據(jù)分成不同的種類。正如以下將會(huì)詳細(xì)說明的那樣,一旦數(shù)據(jù)被分類,當(dāng)數(shù)據(jù)實(shí)際上存儲(chǔ)到所述SSD存儲(chǔ)層16 (即存儲(chǔ)到所述SSD)的可擦除塊28中時(shí)或在這之前,將分類信息傳遞到所述SSD控制器26中。
[0030]在實(shí)施例中,根據(jù)數(shù)據(jù)的預(yù)測使用期限對數(shù)據(jù)進(jìn)行了分類(例如,從數(shù)據(jù)寫入SSD中的時(shí)間到系統(tǒng)/應(yīng)用宣布數(shù)據(jù)過時(shí)從而不再使用的時(shí)間之間的一段時(shí)間)。已經(jīng)發(fā)明了一種方法來給任何與待寫入SDD中的給定數(shù)據(jù)片相關(guān)的數(shù)據(jù)進(jìn)行分類,這反映出相關(guān)數(shù)據(jù)塊28的可能“使用期限”。然后所述相關(guān)分類信息被用來選擇SSD存儲(chǔ)層16中合適的可擦除塊28,或最適合用于存儲(chǔ)的可擦除塊28組。
[0031]現(xiàn)描述由媒體數(shù)據(jù)分析應(yīng)用20或引擎執(zhí)行的媒體數(shù)據(jù)分析以及方法。出于簡單性考慮,提供了兩個(gè)得到描述分類系統(tǒng)和方法如何工作的分類代碼的實(shí)例。
[0032]實(shí)例A
[0033]分類代碼:內(nèi)容熱度水平1、2、j、......、n,其中j和n為正整數(shù)且j ^ n ;其中n
的值可以根據(jù)每系統(tǒng)/業(yè)務(wù)的需要來配置。此處示出了當(dāng)n=5的實(shí)例,分類代碼表示為CC:
[0034]CC=1: Red hot content that always stays in system cache
[0035]CC=2:Hot content that likely stays in system cache
[0036]CC=3:Warm content that is moderately requested and may stay in cache
[0037]CC=4:Colder content that is less used,but get occasional burst ofrequests
[0038]CC=5:Very cold content that is rarely requested(long tail content)
[0039]實(shí)例B
[0040]分類代碼:x和y,其中x表示內(nèi)容熱度水平1、2、x、......、m,其中x和m為正整
數(shù)且I S X S m ;其中m的值可以根據(jù)每系統(tǒng)/業(yè)務(wù)的需要來配置。此處示出了當(dāng)m=5的
實(shí)例,其中y表示內(nèi)容類型l、2、y、......、n,其中y和n為正整數(shù)且I蘭y蘭n,其中n的
值可以根據(jù)系統(tǒng)/業(yè)務(wù)需要來配置。此處示出了當(dāng)n=5的實(shí)例。
[0041]CC=y=l, x=1:Video file, red hot content
[0042]CC=y=l, x=2:Video file, hot content
[0043]CC=y=l, x=3: Video file, warm content
[0044]CC=y=l, x=4:Video file, colder content
[0045]CC=y=l, x=5:Video file, very cold content
[0046]CC=y=2, x=l:Audio file, red hot content
[0047]CC=y=2, x=2:Audio file, red hot content
[0048]CC=y=2, x=3:Audio file, hot content
[0049]CC=y=2, x=4:Audio file, warm content
[0050]CC=y=2, x=5:Audio file, colder content
[0051]CC=y=3,x=l: Application data (Web, email, Appsj etc.), red hot content
[0052]CC=y=3,x=2:Application data, hot content
[0053]CC=y=3,x=3:Application data, warm content
[0054]CC=y=3, x=4:Application data, colder content
[0055]CC=y=3,x=5:Application data,very cold content
[0056]CC=y=4, x=l: System persistent data, red hot content[0057]CC=y=4, x=2: System persistent data,hot content
[0058]CC=y=4, x=3: System persistent data, warm content
[0059]CC=y=4, x=4: System persistent data, colder content
[0060]CC=y=4, x=5: System persistent data,very cold content
[0061]CC=y=5, x=l: System transient data, red hot content
[0062]CC=y=5, x=2: System transient data,hot content
[0063]CC=y=5, x=3: System transient data, warm content
[0064]CC=y=5, x=4: System transient data,colder content
[0065]CC=y=5, x=5: System transient data,very cold content
[0066]需要注意的是,這些實(shí)例僅僅是出于說明的目的,可根據(jù)現(xiàn)實(shí)要求和應(yīng)用靈活使用。分類代碼(CC)可以如服務(wù)一樣,是單維(如實(shí)例A)可擴(kuò)展的,因此對分類代碼的需求不斷增長。分類代碼(CC)也可以是多維(如實(shí)例B)可擴(kuò)展的。為了在可能是單一值分類代碼的系統(tǒng)層14上實(shí)現(xiàn)單一值分類代碼,上述多維分類代碼的方案可以映射到(例如散列到)單一號(hào)碼或數(shù)字的分類代碼中。
[0067]在實(shí)施例中,將所述分類代碼加入到數(shù)據(jù)文件的頭部作為擴(kuò)展字段。由于這些擴(kuò)展字段,只有支持分類代碼的系統(tǒng)能夠識(shí)別,因此系統(tǒng)可以操作這些字段。不能識(shí)別分類代碼概念的系統(tǒng)會(huì)忽略這些增加的字段。
[0068]分類代碼組就是分享或擁有相同分類代碼的一組內(nèi)容。換句話說,分類代碼組中每條數(shù)據(jù)或每個(gè)數(shù)據(jù)單元均已分配有相同的分類代碼。
[0069]在實(shí)施例中,可使用探試算法來分配分類代碼。有很多種方式為一組內(nèi)容指配分類代碼,這就使得分配了指定分類代碼組的內(nèi)容在進(jìn)行緩存或儲(chǔ)存時(shí)具有相似的使用期限。本發(fā)明實(shí)施例鑒于之前的歷史以及與內(nèi)容組相關(guān)的元數(shù)據(jù),提供了一組通用方法和裝置來將分類代碼分配到每個(gè)內(nèi)容單元。
[0070]在實(shí)施例中,將分類代碼分配到內(nèi)容上的任務(wù)取決于分類代碼方案的類型和語義。在上述實(shí)例A中,(分類代碼組的)熱度直接與其在緩存/存儲(chǔ)系統(tǒng)24內(nèi)的使用期限(需要所述內(nèi)容的時(shí)間段)相關(guān)。因此,確認(rèn)內(nèi)容可能的使用期限被用于實(shí)例A類型的分類當(dāng)中。
[0071]內(nèi)容使用的歷史通常為類似的地理環(huán)境、類似的用戶群以及社會(huì)環(huán)境等提供了很好的預(yù)測。在實(shí)施例中,所述媒體數(shù)據(jù)分析應(yīng)用20是一個(gè)分布式數(shù)據(jù)分析平臺(tái),其分析所有可能的輸入從而得到內(nèi)容之間的相關(guān)性。例如,一條內(nèi)容在一個(gè)國家的不同時(shí)區(qū)內(nèi)的使用模式,可以為在翻轉(zhuǎn)到下一個(gè)時(shí)區(qū)時(shí)可能如何使用該內(nèi)容,提供可靠的預(yù)測。所述媒體數(shù)據(jù)分析應(yīng)用20可以用于依據(jù)一段時(shí)間內(nèi)的此類輸入信息重新將分類代碼分配到文件上。
[0072]另一實(shí)例是擁有類似收視統(tǒng)計(jì)的內(nèi)容(例如進(jìn)入前十名瀏覽的內(nèi)容)可能被分在相同的分類代碼組。由于在實(shí)施例中,所述媒體數(shù)據(jù)分析應(yīng)用20是一個(gè)不斷對系統(tǒng)/業(yè)務(wù)中的每條內(nèi)容進(jìn)行統(tǒng)計(jì)計(jì)算的系統(tǒng),這種分類可由于需求的不斷變化而隨時(shí)間發(fā)展。
[0073]圖2中示出了一些數(shù)據(jù)輸入源30的實(shí)例,可以收集和分析這些數(shù)據(jù)作為分配內(nèi)容分類代碼探試算法的輸入。實(shí)際上,所述媒體數(shù)據(jù)分析應(yīng)用20可以考慮和利用0ΤΤ (overthe top)業(yè)務(wù) 32、B2C(business to consumer)業(yè)務(wù) 34 以及 B2B(business to business)業(yè)務(wù)36等,其包括用戶賬戶數(shù)據(jù)(UAD)和內(nèi)容元數(shù)據(jù)。所述媒體數(shù)據(jù)分析應(yīng)用20還可以考慮和利用如來自移動(dòng)帶寬(MBB )網(wǎng)絡(luò)42的核心節(jié)點(diǎn)38和邊緣節(jié)點(diǎn)40、內(nèi)容分發(fā)網(wǎng)絡(luò)(OTN)44以及固定寬帶(FBB)網(wǎng)絡(luò)46等。此外,所述媒體數(shù)據(jù)分析應(yīng)用20可以考慮和利用端點(diǎn)48,包括用戶客戶端應(yīng)用、用戶設(shè)備數(shù)據(jù)以及用戶行為數(shù)據(jù)。
[0074]所述內(nèi)容分類還可以基于來自內(nèi)容提供商的原始元數(shù)據(jù)。內(nèi)容分類分配也可以基于他們的標(biāo)簽、關(guān)鍵詞或者其他與內(nèi)容相關(guān)的或者內(nèi)容被創(chuàng)建后用戶或服務(wù)提供商增加的其他元數(shù)據(jù)。
[0075]根據(jù)關(guān)鍵詞搜索要求,可以一起搜索具有類似標(biāo)簽或具有包含相同或類似關(guān)鍵詞的元數(shù)據(jù)的內(nèi)容。
[0076]再參見圖1,現(xiàn)在介紹附加系統(tǒng)層14操作和方法。在一項(xiàng)實(shí)施例中,圖1中所述系統(tǒng)層14是一個(gè)中間層,其與所述應(yīng)用層12中的應(yīng)用(比如18、20)和所述SSD存儲(chǔ)層16中的SSD控制器26進(jìn)行通信。通過使用相應(yīng)的接口 /協(xié)議,所述系統(tǒng)層14接受來自應(yīng)用的I/O指令并把這些指令轉(zhuǎn)發(fā)到所述SSD控制器26。在此過程中,由媒體數(shù)據(jù)分析應(yīng)用20(或分析器)產(chǎn)生的分類信息用作參數(shù)可以通過所述接口 /協(xié)議進(jìn)行傳遞。
[0077]在傳統(tǒng)的文件系統(tǒng)中,當(dāng)應(yīng)用請求文件系統(tǒng)寫數(shù)據(jù)時(shí),可以采用一種接口,如下說明。
[0078]int write (fid, data, size);
[0079]where:
[0080]fid:file handle
[0081]data:the data that is to be written
[0082]size:the size of the data in bytes
[0083]在本發(fā)明實(shí)施例中,如果使用文件系統(tǒng)22,應(yīng)用程序和文件系統(tǒng)之間的接口可以為:
[0084]int write (fid, data, size, class);
[0085]where:
[0086]fid:file handle
[0087]data:the data that is to be written
[0088]size:the size of the data in bytes
[0089]class: the class information of the to-be-written data
[0090]如果釆用鍵-值存儲(chǔ)系統(tǒng)而不釆用系統(tǒng)層14中的文件系統(tǒng)22,當(dāng)應(yīng)用請求所述系統(tǒng)層14寫數(shù)據(jù)時(shí),可釆用以下接口:
[0091]int write (key,key—size,value,value—size,class);
[0092]where:
[0093]key:the key that distinguishes the to-be-written value
[0094]key—size:the size of the key
[0095]value:the value that is to be written
[0096]value_size:the size of the value
[0097]class: the class information of the to-be-written value
[0098]可使用單獨(dú)接口 /協(xié)議來進(jìn)行所述系統(tǒng)層14和SSD控制器26之間的通信。在實(shí)施樣例中,接口可以為:[0099]int write_ssd (lba, data, size)
[0100]where:
[0101]lba:Logical Block Address
[0102]data:the data that is to be written
[0103]size: the size of the data in an appropriate unit
[0104]在這種實(shí)施樣例中,已經(jīng)將類別信息集成在所述邏輯塊地址中,并且已經(jīng)將SSD存儲(chǔ)空間歸類到一個(gè)不同的區(qū)域,該區(qū)域與其中一種類別對應(yīng)。
[0105]附加SSD控制器26的操作與方法可包括以下途徑和好處。例如,所述SSD控制器26可以將所接收到的數(shù)據(jù),根據(jù)輸入的分類值歸類為由文件系統(tǒng)22傳入,或者基于預(yù)寫入的分類規(guī)則根據(jù)數(shù)據(jù)的邏輯塊地址歸類為由文件系統(tǒng)層方法表明。此外,根據(jù)通過上述任一分類方法,在將數(shù)據(jù)寫入所述SSD16設(shè)備的可擦除塊28中之前確定的分類值,所述SSD控制器26可以對塊數(shù)據(jù)進(jìn)行分組。因此,不同類的數(shù)據(jù)被寫入到所述SSD的不同塊中,并且相似類的數(shù)據(jù)被寫入到所述SSD的相似塊中。
[0106]當(dāng)媒體系統(tǒng)10需要的時(shí)候,可以根據(jù)存儲(chǔ)在所述SSD16中的分類值,實(shí)現(xiàn)垃圾收集。這樣,不同類別的數(shù)據(jù)將被整理為所述SSD的不同新數(shù)據(jù)塊。由于數(shù)據(jù)是根據(jù)其相關(guān)的分類值進(jìn)行存儲(chǔ)的,相同可擦除塊28內(nèi)的數(shù)據(jù)的使用期限往往同時(shí)或者差不多同時(shí)會(huì)過時(shí)。因此,在相同可擦除塊28上的過時(shí)數(shù)據(jù),與存儲(chǔ)在所述SSD16上的數(shù)據(jù)一樣,可以被作為垃圾一同收集,而不會(huì)在相對于當(dāng)數(shù)據(jù)在寫入SSD之前或當(dāng)時(shí)尚未歸類或分類時(shí)的相同可擦除塊28內(nèi),產(chǎn)生重新寫入有效數(shù)據(jù)那樣的數(shù)據(jù)開銷。
[0107]在最好的情況下,在同一可擦除塊28中的相同類別的所有數(shù)據(jù)在同一時(shí)間成為過時(shí)數(shù)據(jù),不需要將可擦除塊28中的任何其他有效數(shù)據(jù)復(fù)制到其他新的NAND閃存可擦除塊28中,只需要擦除可擦除塊28即可。這樣將減少所述SSD儲(chǔ)存層16中的寫入放大率,極大提高SSD的后臺(tái)處理,并且同樣改善SSD的性能。
[0108]在別的情況下,在同一可擦除塊28中的相同類別的所有數(shù)據(jù)大約在同一時(shí)間成為過時(shí)數(shù)據(jù)(即,當(dāng)一個(gè)數(shù)據(jù)單元相對于相同數(shù)據(jù)塊上的另一個(gè)數(shù)據(jù)單元成為過時(shí)數(shù)據(jù)的這段時(shí)間之間,存在一個(gè)很短的時(shí)間間隔)。所述SSD控制器26可能會(huì)選擇該時(shí)間間隔的后一時(shí)間點(diǎn),從而使同一可擦除塊28上的絕大部分?jǐn)?shù)據(jù),在可擦除塊28進(jìn)行垃圾收集的時(shí)候,成為過時(shí)數(shù)據(jù)。在這種情況下,垃圾收集的效率將依然高于未分類就隨機(jī)寫入數(shù)據(jù)。
[0109]現(xiàn)參見圖3,通過圖表50,實(shí)施例展示出CPU52如何確定類別代碼,然后傳遞到所述SSD存儲(chǔ)層16,用于根據(jù)該類別代碼將數(shù)據(jù)存儲(chǔ)到某個(gè)可擦除塊28中。在實(shí)施例中,所述CPU52包括若干CPU內(nèi)核54和北橋芯片邏輯電路56。所述CPU52用于執(zhí)行或操作例如圖1中的應(yīng)用層12和系統(tǒng)層14。所述PCIe橋58是一種接口,其允許由CPU52確定的所述系統(tǒng)層14的分類能夠傳遞到所述SSD存儲(chǔ)層16中。如圖3所示,該數(shù)據(jù)根據(jù)分類存儲(chǔ)在所述SSD存儲(chǔ)層16的可擦除塊28中。實(shí)際上,在實(shí)施例中,在實(shí)際的程度下,共享相同分類的數(shù)據(jù)全部存儲(chǔ)在同一可擦除塊28中。
[0110]圖4提供了計(jì)算機(jī)系統(tǒng)60的一項(xiàng)實(shí)施例的簡化方框圖,所述計(jì)算機(jī)系統(tǒng)包括所述SSD16、CUP52或其他處理器、存儲(chǔ)器62 (標(biāo)記為RAM)、輸入/輸出端口 64或接口以及其他存儲(chǔ)器66??衫盟鲇?jì)算機(jī)系統(tǒng)60來實(shí)施本發(fā)明的方法。在圖4中,主要處理在所述CPU52中執(zhí)行,其可為微處理器或任何其他合適的處理裝置。程序代碼(例如,實(shí)施上述算法的代碼)以及數(shù)據(jù)可以存儲(chǔ)到存儲(chǔ)器62中。所述存儲(chǔ)器62,其可存儲(chǔ)所述應(yīng)用層12和/或系統(tǒng)層14,可為諸如DRAM等本地存儲(chǔ)器或大容量存儲(chǔ)器,例如,硬盤驅(qū)動(dòng)器、光盤驅(qū)動(dòng)器或其他存儲(chǔ)器(其可為本地或遠(yuǎn)程)。雖然使用單個(gè)塊來說明存儲(chǔ)器62的功能,但應(yīng)了解,可使用一個(gè)或多個(gè)硬件塊來實(shí)施該功能。
[0111]在一項(xiàng)實(shí)施例中,可使用所述CPU52來實(shí)施上述論述的各種(或全部)功能。例如,所述CUP52可在不同時(shí)間用作特定的功能單元,以實(shí)施執(zhí)行本發(fā)明技術(shù)時(shí)所涉及的子任務(wù)。或者,可使用不同硬件塊(例如,與處理器相同或不同)來執(zhí)行不同功能。在其他實(shí)施例中,某些子任務(wù)由所述CPU52來執(zhí)行,而其他子任務(wù)則使用單獨(dú)的電路來執(zhí)行。
[0112]圖4還示出了 I/O端口 64,其可以用來向計(jì)算機(jī)系統(tǒng)60提供信息。所述信息可能包括,例如,待存儲(chǔ)到所述SSD16中的視頻。所述I/O端口 64可以包括用于連接網(wǎng)絡(luò)的端口,包括互聯(lián)網(wǎng)或本地接口(例如,USB或LAN接口)。所述I/O端口 64還可以包括本地用戶1/0,比如顯示屏、鍵盤、以及鼠標(biāo)等等。換句話說,所述I/O端口 64就是一個(gè)用來代表潛在的大量硬件項(xiàng)目的一體框。
[0113]所述SSD16和其他存儲(chǔ)器66 (例如,HDD、光驅(qū)或其他存儲(chǔ)器)被顯示出,與所述I/0端口 64、CPU52以及存儲(chǔ)器62 (RAM) 一樣連接在同一個(gè)總線68上。這僅僅是可使用的架構(gòu)的一個(gè)實(shí)例。出于簡單性的目的,控制電路,比如存儲(chǔ)控制器或橋,已經(jīng)在圖中忽略,盡管實(shí)際系統(tǒng)會(huì)視情況包括附加電路。
[0114]現(xiàn)參見圖5,從所述系統(tǒng)層14的角度示出了所述SSD16中媒體存儲(chǔ)方法70的一項(xiàng)實(shí)施例。在方框72中,所述系統(tǒng)層14從所述應(yīng)用層12中的媒體數(shù)據(jù)分析應(yīng)用20接收用于數(shù)據(jù)文件的分類代碼。在方框74中,發(fā)出一個(gè)寫命令到SSD控制器26中。所述寫命令指示所述SSD控制器26將數(shù)據(jù)文件存儲(chǔ)到可擦除塊28中,其中也存儲(chǔ)了具有相同分類代碼的其他數(shù)據(jù)文件。
[0115]本發(fā)明的各項(xiàng)實(shí)施例提供了許多新穎有利的特征。此方案的一個(gè)特征是基于預(yù)測使用期限首先將要存儲(chǔ)到所述SSD16中的數(shù)據(jù)進(jìn)行分類。此方案的實(shí)施例提供了兩種方式將分類值傳遞給所述SSD控制器26,即要么通過軟件接口傳遞到所述SSD控制器26,要么通過一些特殊分配的邏輯塊地址空間傳遞。此方案的實(shí)施例同樣也具有新穎性,原因在于所述SSD16將基于所分類的分類值存儲(chǔ)數(shù)據(jù)。
[0116]本發(fā)明的實(shí)施例具有唯一性,原因在于其基于待寫入SSD16中的內(nèi)容的預(yù)測熱度采用方法。本發(fā)明的實(shí)施例可以應(yīng)用在許多產(chǎn)品、程序以及服務(wù)中。例如,本發(fā)明的實(shí)施例可以用在下一代PCIESSD中。其中一種產(chǎn)品類型可能是媒體儲(chǔ)存產(chǎn)品中的PCIESSD存儲(chǔ)刀片。本發(fā)明的實(shí)施例也可以用于下一代內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)軟件中的媒體存儲(chǔ)系統(tǒng)和媒體存儲(chǔ)緩存系統(tǒng)。
[0117]本發(fā)明實(shí)施例可提高所述SSD16的使用期限和后臺(tái)垃圾收集效率。本文所公開的特征可使SSD的存儲(chǔ)更有效并且提供更長的使用期限。企業(yè)存儲(chǔ)和內(nèi)容遞送網(wǎng)絡(luò)存儲(chǔ)市場可以從這些特征中受益。
[0118]如上所披露,本發(fā)明實(shí)施例可提供許多優(yōu)勢。通過將SSD存儲(chǔ)器中的數(shù)據(jù)分類到不同的類別,提高了 SSD性能和效率。對SSD的好處是減少寫入放大因子、寫入帶寬以及SSD的使用期限。也可通過使軟件識(shí)別待存儲(chǔ)于所述SSD存儲(chǔ)系統(tǒng)中的數(shù)據(jù)或文件類別以及將所述類別告知該SSD存儲(chǔ)系統(tǒng)來實(shí)現(xiàn)這些優(yōu)點(diǎn)。[0119]在本發(fā)明中,文件/數(shù)據(jù)先被分成不同的類別,這樣當(dāng)存儲(chǔ)在SSD存儲(chǔ)器中的時(shí)候,數(shù)據(jù)就得以區(qū)分開來。因此,所述SSD能夠?qū)⒉煌念愋偷臄?shù)據(jù)寫入到不同的可擦除塊中。因此,減少了寫入放大因子,提高了性能。
[0120]本發(fā)明實(shí)施例也解決了所述SSD控制器26/存儲(chǔ)層16,系統(tǒng)層14 (文件系統(tǒng)/緩存管理)以及應(yīng)用層12 (數(shù)據(jù)分析引擎)之間實(shí)際內(nèi)容使用期限信息交換的需要。實(shí)際使用期限數(shù)據(jù)交換用來提高系統(tǒng)性能和內(nèi)容使用期限的可預(yù)見性。
[0121]本發(fā)明實(shí)施例,為了實(shí)現(xiàn)SSD16潛在有效期限的最佳表現(xiàn),結(jié)合了智能探試法的所有三個(gè)方面。在實(shí)施例中,主要有三個(gè)方面互相借鑒,為實(shí)現(xiàn)整體的高性能而做出貢獻(xiàn):
[0122]1、利用媒體數(shù)據(jù)分析,基于現(xiàn)有知識(shí)和歷史數(shù)據(jù)來提供初始媒體分類代碼(CC)。
[0123]2、利用媒體文件內(nèi)的連續(xù)媒體數(shù)據(jù)的本質(zhì)作為一個(gè)分類符。例如,同一個(gè)文件內(nèi)的鄰近介質(zhì)塊很有可能具有相似的使用期限,因此可被看作具有相同的使用期限或相同的分類代碼。
[0124]3、將所述SSD控制器層的優(yōu)化用于以下方面:
[0125]a.數(shù)據(jù)遷移——為了清除數(shù)據(jù)塊;以及
[0126]b.在寫操作中使用數(shù)據(jù)的分類代碼,以將相同類別的數(shù)據(jù)寫入到相同的NAND閃存塊中來優(yōu)化SSD數(shù)據(jù)塊的使用期限。
[0127]本發(fā)明實(shí)施例可通過軟件、硬件、固件以及這些項(xiàng)的組合來實(shí)施。
[0128]雖然已參考說明性實(shí)施例描述了本發(fā)明,但此描述并不旨在限制本發(fā)明。所屬領(lǐng)域的技術(shù)人員在參考該描述后,將會(huì)明白說明性實(shí)施例的各種修改和組合,以及其他實(shí)施例。因此,希望所附權(quán)利要求書涵蓋任何此類修改或?qū)嵤├?br>
【權(quán)利要求】
1.一種媒體管理系統(tǒng),其特征在于,包括:包括媒體數(shù)據(jù)分析應(yīng)用的應(yīng)用層,所述媒體數(shù)據(jù)分析應(yīng)用用于將分類代碼分配給數(shù)據(jù)文件;與所述應(yīng)用層進(jìn)行通信的系統(tǒng)層,所述系統(tǒng)層包括用于向SSD控制器發(fā)出寫命令的文件系統(tǒng),所述寫命令包含所述數(shù)據(jù)文件的分類代碼;以及與所述系統(tǒng)層進(jìn)行通信的固態(tài)驅(qū)動(dòng)器(SSD),所述SSD存儲(chǔ)層包括所述SSD控制器和可擦除塊,基于所述寫命令中數(shù)據(jù)文件的分類代碼,所述SSD控制器用于將所述數(shù)據(jù)文件寫入其中一個(gè)可擦除塊中。
2.根據(jù)權(quán)利要求1所 述的系統(tǒng),其特征在于,基于所述數(shù)據(jù)文件的預(yù)測使用期限,所述媒體數(shù)據(jù)分析應(yīng)用用于分配所述分類代碼。
3.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,基于所述數(shù)據(jù)文件的實(shí)際使用期限,所述媒體數(shù)據(jù)分析應(yīng)用用于分配所述分類代碼。
4.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,基于數(shù)據(jù)文件對應(yīng)的歷史信息和元數(shù)據(jù)中的至少一種,所述媒體數(shù)據(jù)分析應(yīng)用用于分配所述分類代碼。
5.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,基于據(jù)數(shù)據(jù)文件對應(yīng)的啟發(fā)式信息,所述媒體數(shù)據(jù)分析應(yīng)用用于分配所述分類代碼。
6.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,基于所述數(shù)據(jù)文件的相鄰部分,所述媒體數(shù)據(jù)分析應(yīng)用用于分配所述分類代碼。
7.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述媒體數(shù)據(jù)分析應(yīng)用程序用于從內(nèi)容供應(yīng)商接收所述分類代碼。
8.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,基于數(shù)據(jù)文件仍然保留在與文件系統(tǒng)相關(guān)的緩存中的可能性,所述媒體數(shù)據(jù)分析應(yīng)用用于確定所述分類代碼。
9.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述分類代碼是多維的。
10.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述文件系統(tǒng)用于將分類代碼添加到所述數(shù)據(jù)文件的邏輯塊地址。
11.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述SSD控制器用于將所述數(shù)據(jù)文件寫入其中一個(gè)存儲(chǔ)可擦除塊中,其中也存儲(chǔ)了具有相同分類代碼的其他數(shù)據(jù)文件。
12.—種計(jì)算機(jī)系統(tǒng),其特征在于,包括:處理器,用于為數(shù)據(jù)文件確定分類代碼;以及固態(tài)驅(qū)動(dòng)器(SSD)存儲(chǔ)設(shè)備,其與所述處理器進(jìn)行通信,所述SSD存儲(chǔ)設(shè)備包括SSD控制器和可擦除塊,所述SSD控制器用于將數(shù)據(jù)文件寫入到其中一個(gè)可擦除塊中,其中也存儲(chǔ)了具有相同分類代碼的其他數(shù)據(jù)文件。
13.根據(jù)權(quán)利要求12所述的計(jì)算機(jī)系統(tǒng),其特征在于,還包括存儲(chǔ)器,所述存儲(chǔ)器存儲(chǔ)了帶有媒體數(shù)據(jù)分析應(yīng)用的應(yīng)用層,所述媒體數(shù)據(jù)分析應(yīng)用由所述處理器用于將所述分類代碼分配給所述數(shù)據(jù)文件。
14.根據(jù)權(quán)利要求12所述的計(jì)算機(jī)系統(tǒng),其特征在于,還包括存儲(chǔ)器,所述存儲(chǔ)器存儲(chǔ)帶有用于向所述SSD控制器發(fā)出寫命令的文件系統(tǒng)的系統(tǒng)層,所述寫命令包含所述數(shù)據(jù)文件的分類代碼。
15.根據(jù)權(quán)利要求12所述的計(jì)算機(jī)系統(tǒng),其特征在于,還包括輸入/輸出端口,用于將所述數(shù)據(jù)文件傳送到與所述計(jì)算機(jī)系統(tǒng)相關(guān)聯(lián)的網(wǎng)絡(luò)。
16.根據(jù)權(quán)利要求12所述的計(jì)算機(jī)系統(tǒng),其特征在于,還包括硬盤和光驅(qū)動(dòng)器中的至少一個(gè)。
17.一種固態(tài)驅(qū)動(dòng)器(SSD)中媒體存儲(chǔ)方法,其特征在于,包括: 從應(yīng)用層中的媒體數(shù)據(jù)分析應(yīng)用接收用于數(shù)據(jù)文件的分類代碼;以及 向SSD控制器發(fā)出寫命令,基于該寫命令中數(shù)據(jù)文件的分類代碼,所述寫命令指示所述SSD控制器存儲(chǔ)所述數(shù)據(jù)文件。
18.根據(jù)權(quán)利要求17所述的方法,其特征在于,所述寫命令指示所述SSD控制器將數(shù)據(jù)文件存儲(chǔ)在可擦除塊中,其中也存儲(chǔ)同樣具有所述分類碼的其他數(shù)據(jù)文件。
19.根據(jù)權(quán)利要求17所述的方法,其特征在于,所述分類代碼基于數(shù)據(jù)文件的預(yù)測使用期限和實(shí)際使用期限中的至少一種。
20.根據(jù)權(quán)利要求17所述的方法,其特征在于,所述分類代碼基于所述數(shù)據(jù)文件對應(yīng)的歷史信息和元數(shù)據(jù)中的至少一種。
【文檔編號(hào)】G06F13/00GK103703450SQ201280035706
【公開日】2014年4月2日 申請日期:2012年7月18日 優(yōu)先權(quán)日:2011年7月20日
【發(fā)明者】黃亦仁, 王永, 林奎 申請人:華為技術(shù)有限公司