欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種進(jìn)行數(shù)據(jù)存儲(chǔ)的方法、裝置及系統(tǒng)的制作方法

文檔序號:6636307閱讀:264來源:國知局
一種進(jìn)行數(shù)據(jù)存儲(chǔ)的方法、裝置及系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及電子【技術(shù)領(lǐng)域】,尤其涉及一種進(jìn)行數(shù)據(jù)存儲(chǔ)的方法、裝置及系統(tǒng),用以解決存儲(chǔ)設(shè)備寫性能較低、使用壽命較短的問題。本發(fā)明實(shí)施例提供的進(jìn)行數(shù)據(jù)存儲(chǔ)的方法包括:存儲(chǔ)控制器接收待存儲(chǔ)數(shù)據(jù),存儲(chǔ)控制器中設(shè)有第一緩存和第二緩存,第一緩存用于緩存第一類數(shù)據(jù),第二緩存用于緩存第二類數(shù)據(jù),第一類數(shù)據(jù)的更新頻率大于第二類數(shù)據(jù)的更新頻率;存儲(chǔ)控制器識別待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù),并將識別的所述第一類數(shù)據(jù)寫入第一緩存中;若寫入的第一類數(shù)據(jù)中包含更新數(shù)據(jù),則將第一緩存中該更新數(shù)據(jù)對應(yīng)的更新前的數(shù)據(jù)設(shè)為無效;存儲(chǔ)控制器在確定當(dāng)前滿足第一類數(shù)據(jù)的寫入觸發(fā)條件時(shí),將第一緩存中的有效數(shù)據(jù)寫入存儲(chǔ)介質(zhì)。
【專利說明】一種進(jìn)行數(shù)據(jù)存儲(chǔ)的方法、裝置及系統(tǒng)

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及電子【技術(shù)領(lǐng)域】,尤其涉及一種進(jìn)行數(shù)據(jù)存儲(chǔ)的方法、裝置及系統(tǒng)。

【背景技術(shù)】
[0002]固態(tài)硬盤(Solid State Drives,SSD)作為一種高性能存儲(chǔ)設(shè)備,一般使用閃存(Flash芯片)作為存儲(chǔ)介質(zhì)。Flash芯片的最小寫數(shù)據(jù)單元為邏輯塊(Block),一個(gè)Block的大小通常為幾兆比特(Megabit,MB)。Flash芯片有寫次數(shù)的限制,多層單元閃存的可擦寫次數(shù)為10000次左右,單層單元閃存的可擦寫次數(shù)為100000次左右,因此,在使用SSD時(shí),應(yīng)盡量減少Flash芯片的擦寫次數(shù)或減少對Flash芯片的寫入數(shù)據(jù)量,以提高SSD的使用壽命。
[0003]應(yīng)用運(yùn)行過程中會(huì)生成用戶數(shù)據(jù),而日志文件系統(tǒng)在將用戶數(shù)據(jù)寫入存儲(chǔ)設(shè)備之前,通常還會(huì)生成用于記錄用戶數(shù)據(jù)的修改信息的日志數(shù)據(jù)(Journal data)和用于描述用戶數(shù)據(jù)的各種屬性信息(包括文件大小、修改時(shí)間等)的元數(shù)據(jù)(Metadata),這些數(shù)據(jù)也需要寫入存儲(chǔ)設(shè)備,如圖1所示。這里,元數(shù)據(jù)包括文件大小、修改時(shí)間等;日志數(shù)據(jù)是為了保證數(shù)據(jù)可靠性而生成的,具體地,在將用戶數(shù)據(jù)和元數(shù)據(jù)正式寫入Flash芯片的日志文件系統(tǒng)主存儲(chǔ)區(qū)域之前,先將該用戶數(shù)據(jù)和元數(shù)據(jù)的日志記錄(Journal logs)寫入Flash芯片中的日志區(qū),即將描述該用戶數(shù)據(jù)的修改信息的日志數(shù)據(jù)存儲(chǔ)在日志區(qū),由于該日志數(shù)據(jù)詳細(xì)描述了用戶數(shù)據(jù)的修改信息,因此,若日志文件系統(tǒng)在將用戶數(shù)據(jù)和元數(shù)據(jù)寫入存儲(chǔ)介質(zhì)的過程中出現(xiàn)中斷,日志文件系統(tǒng)可以根據(jù)該日志數(shù)據(jù)重新恢復(fù)用戶數(shù)據(jù)和元數(shù)據(jù)。
[0004]在上述數(shù)據(jù)存儲(chǔ)方式下,每次在向文件中寫入新的用戶數(shù)據(jù)時(shí),都需要更新元數(shù)據(jù)和日志數(shù)據(jù),可見,對元數(shù)據(jù)和日志數(shù)據(jù)的頻繁更新大大增加了寫入存儲(chǔ)介質(zhì)的數(shù)據(jù)量,也即將用戶數(shù)據(jù)寫入存儲(chǔ)介質(zhì)的操作存在寫放大的問題,從而導(dǎo)致存儲(chǔ)設(shè)備寫性能較低,使用壽命也較短。


【發(fā)明內(nèi)容】

[0005]本發(fā)明實(shí)施例提供一種進(jìn)行數(shù)據(jù)存儲(chǔ)的方法、裝置及系統(tǒng),用以解決存儲(chǔ)設(shè)備寫性能較低、使用壽命較短的問題。
[0006]第一方面,提供一種進(jìn)行數(shù)據(jù)存儲(chǔ)的方法,包括:
[0007]存儲(chǔ)控制器接收待存儲(chǔ)數(shù)據(jù),所述存儲(chǔ)控制器中設(shè)有第一緩存和第二緩存,所述第一緩存用于緩存第一類數(shù)據(jù),所述第二緩存用于緩存第二類數(shù)據(jù),所述第一類數(shù)據(jù)的更新頻率大于所述第二類數(shù)據(jù)的更新頻率;
[0008]所述存儲(chǔ)控制器識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù),并將識別的所述第一類數(shù)據(jù)寫入所述第一緩存中;若寫入的所述第一類數(shù)據(jù)中包含更新數(shù)據(jù),則將所述第一緩存中該更新數(shù)據(jù)對應(yīng)的更新前的數(shù)據(jù)設(shè)為無效;
[0009]所述存儲(chǔ)控制器在確定當(dāng)前滿足所述第一類數(shù)據(jù)的寫入觸發(fā)條件時(shí),將所述第一緩存中的有效數(shù)據(jù)寫入存儲(chǔ)介質(zhì)。
[0010]結(jié)合第一方面,在第一種可能的實(shí)現(xiàn)方式中,所述存儲(chǔ)控制器識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù),包括:
[0011]所述存儲(chǔ)控制器根據(jù)所述待存儲(chǔ)數(shù)據(jù)中攜帶的標(biāo)識信息,以及標(biāo)識信息與數(shù)據(jù)類型的對應(yīng)關(guān)系,識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù);其中,所述標(biāo)識信息包括所述第一類數(shù)據(jù)中攜帶的第一標(biāo)識信息和/或所述第二類數(shù)據(jù)中攜帶的第二標(biāo)識信息。
[0012]結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述存儲(chǔ)控制器根據(jù)所述待存儲(chǔ)數(shù)據(jù)中攜帶的標(biāo)識信息,以及標(biāo)識信息與數(shù)據(jù)類型的對應(yīng)關(guān)系,識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù),包括:
[0013]所述存儲(chǔ)控制器根據(jù)所述待存儲(chǔ)數(shù)據(jù)中的存儲(chǔ)地址信息,以及不同存儲(chǔ)地址范圍對應(yīng)的數(shù)據(jù)類型,識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù)。
[0014]結(jié)合第一方面,或第一方面的第一或第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述存儲(chǔ)控制器在確定當(dāng)前滿足所述第一類數(shù)據(jù)的寫入觸發(fā)條件時(shí),將所述第一緩存中的有效數(shù)據(jù)寫入所述存儲(chǔ)介質(zhì),包括:
[0015]所述存儲(chǔ)控制器在所述第一緩存寫滿后,將所述第一緩存中的有效數(shù)據(jù)寫入所述存儲(chǔ)介質(zhì);和/或,
[0016]所述存儲(chǔ)控制器在監(jiān)測到所述存儲(chǔ)設(shè)備發(fā)生斷電后,將所述第一緩存中的有效數(shù)據(jù)寫入所述存儲(chǔ)介質(zhì);和/或,
[0017]所述存儲(chǔ)控制器將所述第一緩存中在設(shè)定時(shí)間長度內(nèi)未被更新的有效數(shù)據(jù)寫入所述存儲(chǔ)介質(zhì)。
[0018]結(jié)合第一方面,或第一方面的第一?三種可能的實(shí)現(xiàn)方式中的任意一種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述存儲(chǔ)介質(zhì)為閃存Flash芯片;
[0019]所述第一緩存和第二緩存分別為所述存儲(chǔ)控制器中的雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器DDR的不同部分;或者,所述第一緩存為相變存儲(chǔ)器PCM,所述第二緩存為DDR或PCM。
[0020]結(jié)合第一方面,或第一方面的第一?四種可能的實(shí)現(xiàn)方式中的任意一種可能的實(shí)現(xiàn)方式,在第五種可能的實(shí)現(xiàn)方式中,所述第二類數(shù)據(jù)包括所述應(yīng)用實(shí)際操作的用戶數(shù)據(jù),所述第一類數(shù)據(jù)包括用于記錄所述用戶數(shù)據(jù)的修改信息的日志數(shù)據(jù)和/或用于描述所述用戶數(shù)據(jù)的各種屬性信息的元數(shù)據(jù)。
[0021]第二方面,提供一種進(jìn)行數(shù)據(jù)存儲(chǔ)的方法,包括:
[0022]第一設(shè)備為需要寫入存儲(chǔ)設(shè)備的待存儲(chǔ)數(shù)據(jù)添加用于識別所述待存儲(chǔ)數(shù)據(jù)中的不同類型數(shù)據(jù)的標(biāo)識信息,其中,所述待存儲(chǔ)數(shù)據(jù)中包括第一類數(shù)據(jù)和第二類數(shù)據(jù),所述第一類數(shù)據(jù)的更新頻率大于所述第二類數(shù)據(jù)的更新頻率;
[0023]所述第一設(shè)備將攜帶所述標(biāo)識信息的待存儲(chǔ)數(shù)據(jù)發(fā)送給所述存儲(chǔ)設(shè)備;
[0024]所述存儲(chǔ)設(shè)備基于接收的待存儲(chǔ)數(shù)據(jù)中攜帶的標(biāo)識信息,識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù),并將識別的所述第一類數(shù)據(jù)寫入第一緩存中;若寫入的所述第一類數(shù)據(jù)中包含更新數(shù)據(jù),則將所述第一緩存中該更新數(shù)據(jù)對應(yīng)的更新前的數(shù)據(jù)設(shè)為無效;其中,所述存儲(chǔ)設(shè)備中包括第一緩存和第二緩存,所述第一緩存用于緩存第一類數(shù)據(jù),所述第二緩存用于緩存第二類數(shù)據(jù);
[0025]所述存儲(chǔ)設(shè)備在確定當(dāng)前滿足所述第一類數(shù)據(jù)的寫入觸發(fā)條件時(shí),將所述第一緩存中的有效數(shù)據(jù)寫入存儲(chǔ)介質(zhì)。
[0026]結(jié)合第二方面,在第一種可能的實(shí)現(xiàn)方式中,所述標(biāo)識信息為存儲(chǔ)地址信息;
[0027]所述第一設(shè)備為需要寫入存儲(chǔ)設(shè)備的待存儲(chǔ)數(shù)據(jù)添加用于識別所述待存儲(chǔ)數(shù)據(jù)中的不同類型數(shù)據(jù)的標(biāo)識信息,包括:
[0028]所述第一設(shè)備基于不同存儲(chǔ)地址范圍對應(yīng)的數(shù)據(jù)類型,為待存儲(chǔ)數(shù)據(jù)中不同類型的數(shù)據(jù)確定存儲(chǔ)地址信息。
[0029]結(jié)合第二方面,或第二方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述第二類數(shù)據(jù)包括所述應(yīng)用實(shí)際操作的用戶數(shù)據(jù),所述第一類數(shù)據(jù)包括用于記錄所述用戶數(shù)據(jù)的修改信息的日志數(shù)據(jù)和/或用于描述所述用戶數(shù)據(jù)的各種屬性信息的元數(shù)據(jù)。
[0030]第三方面,提供一種進(jìn)行數(shù)據(jù)存儲(chǔ)的裝置,包括:
[0031]接收模塊,用于接收待存儲(chǔ)數(shù)據(jù),所述存儲(chǔ)控制器中設(shè)有第一緩存和第二緩存,所述第一緩存用于緩存第一類數(shù)據(jù),所述第二緩存用于緩存第二類數(shù)據(jù),所述第一類數(shù)據(jù)的更新頻率大于所述第二類數(shù)據(jù)的更新頻率;
[0032]識別模塊,用于識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù),并將識別的所述第一類數(shù)據(jù)寫入所述第一緩存中;若寫入的所述第一類數(shù)據(jù)中包含更新數(shù)據(jù),則將所述第一緩存中該更新數(shù)據(jù)對應(yīng)的更新前的數(shù)據(jù)設(shè)為無效;
[0033]寫入模塊,用于在確定當(dāng)前滿足所述第一類數(shù)據(jù)的寫入觸發(fā)條件時(shí),將所述第一緩存中的有效數(shù)據(jù)寫入存儲(chǔ)介質(zhì)。
[0034]結(jié)合第三方面,在第一種可能的實(shí)現(xiàn)方式中,所述識別模塊具體用于:
[0035]根據(jù)所述待存儲(chǔ)數(shù)據(jù)中攜帶的標(biāo)識信息,以及標(biāo)識信息與數(shù)據(jù)類型的對應(yīng)關(guān)系,識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù);其中,所述標(biāo)識信息包括所述第一類數(shù)據(jù)中攜帶的第一標(biāo)識信息和/或所述第二類數(shù)據(jù)中攜帶的第二標(biāo)識信息。
[0036]結(jié)合第三方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述標(biāo)識信息為存儲(chǔ)地址信息:
[0037]所述識別模塊具體用于:根據(jù)所述待存儲(chǔ)數(shù)據(jù)中的存儲(chǔ)地址信息,以及不同存儲(chǔ)地址范圍對應(yīng)的數(shù)據(jù)類型,識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù)。
[0038]結(jié)合第三方面,或第三方面的第一或第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述寫入模塊具體用于:在所述第一緩存寫滿后,將所述第一緩存中的有效數(shù)據(jù)寫入所述存儲(chǔ)介質(zhì);和/或,在監(jiān)測到所述存儲(chǔ)設(shè)備發(fā)生斷電后,將所述第一緩存中的有效數(shù)據(jù)寫入所述存儲(chǔ)介質(zhì);和/或,將所述第一緩存中在設(shè)定時(shí)間長度內(nèi)未被更新的有效數(shù)據(jù)寫入所述存儲(chǔ)介質(zhì)。
[0039]結(jié)合第三方面,或第三方面的第一?三種可能的實(shí)現(xiàn)方式中的任意一種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述存儲(chǔ)介質(zhì)為閃存Flash芯片;
[0040]所述第一緩存和第二緩存分別為所述存儲(chǔ)控制器中的雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器DDR的不同部分;或者,所述第一緩存為相變存儲(chǔ)器PCM,所述第二緩存為DDR或PCM。
[0041]結(jié)合第三方面,或第三方面的第一?四種可能的實(shí)現(xiàn)方式中的任意一種可能的實(shí)現(xiàn)方式,在第五種可能的實(shí)現(xiàn)方式中,所述第二類數(shù)據(jù)包括所述應(yīng)用實(shí)際操作的用戶數(shù)據(jù),所述第一類數(shù)據(jù)包括用于記錄所述用戶數(shù)據(jù)的修改信息的日志數(shù)據(jù)和/或用于描述所述用戶數(shù)據(jù)的各種屬性信息的元數(shù)據(jù)。
[0042]第四方面,提供一種進(jìn)行數(shù)據(jù)存儲(chǔ)的系統(tǒng),包括:第一設(shè)備和存儲(chǔ)設(shè)備,所述存儲(chǔ)設(shè)備包括存儲(chǔ)控制器和存儲(chǔ)介質(zhì),所述存儲(chǔ)控制器中設(shè)有第一緩存和第二緩存,所述第一緩存用于緩存第一類數(shù)據(jù),所述第二緩存用于緩存第二類數(shù)據(jù),所述第一類數(shù)據(jù)的更新頻率大于第二類數(shù)據(jù)的更新頻率;其中,
[0043]所述第一設(shè)備,用于為需要寫入所述存儲(chǔ)設(shè)備的待存儲(chǔ)數(shù)據(jù)添加用于識別所述待存儲(chǔ)數(shù)據(jù)中的不同類型數(shù)據(jù)的標(biāo)識信息,將攜帶所述標(biāo)識信息的待存儲(chǔ)數(shù)據(jù)發(fā)送給所述存儲(chǔ)設(shè)備;其中,所述待存儲(chǔ)數(shù)據(jù)中包括第一類數(shù)據(jù)和第二類數(shù)據(jù);
[0044]所述存儲(chǔ)設(shè)備中的存儲(chǔ)控制器,用于基于接收的待存儲(chǔ)數(shù)據(jù)中攜帶的標(biāo)識信息,識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù),并將識別的所述第一類數(shù)據(jù)寫入所述第一緩存中;若寫入的所述第一類數(shù)據(jù)中包含更新數(shù)據(jù),則將所述第一緩存中該更新數(shù)據(jù)對應(yīng)的更新前的數(shù)據(jù)設(shè)為無效;在確定當(dāng)前滿足所述第一類數(shù)據(jù)的寫入觸發(fā)條件時(shí),將所述第一緩存中的有效數(shù)據(jù)寫入存儲(chǔ)介質(zhì)。
[0045]結(jié)合第四方面,在第一種可能的實(shí)現(xiàn)方式中,所述標(biāo)識信息為存儲(chǔ)地址信息;
[0046]所述第一設(shè)備具體用于:基于不同存儲(chǔ)地址范圍對應(yīng)的數(shù)據(jù)類型,為待存儲(chǔ)數(shù)據(jù)中不同類型的數(shù)據(jù)確定存儲(chǔ)地址信息。
[0047]結(jié)合第四方面,或第四方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述第二類數(shù)據(jù)包括所述應(yīng)用實(shí)際操作的用戶數(shù)據(jù),所述第一類數(shù)據(jù)包括用于記錄所述用戶數(shù)據(jù)的修改信息的日志數(shù)據(jù)和/或用于描述所述用戶數(shù)據(jù)的各種屬性信息的元數(shù)據(jù)。
[0048]第五方面,提供一種進(jìn)行數(shù)據(jù)存儲(chǔ)的設(shè)備,該設(shè)備包括存儲(chǔ)控制器和存儲(chǔ)介質(zhì),所述存儲(chǔ)控制器中設(shè)有第一緩存和第二緩存,所述第一緩存用于緩存第一類數(shù)據(jù),所述第二緩存用于緩存第二類數(shù)據(jù),所述第一類數(shù)據(jù)的更新頻率大于所述第二類數(shù)據(jù)的更新頻率;當(dāng)所述存儲(chǔ)控制器運(yùn)行時(shí),所述存儲(chǔ)控制器與所述存儲(chǔ)介質(zhì)之間通過總線通信,執(zhí)行如下指令:
[0049]接收待存儲(chǔ)數(shù)據(jù),所述存儲(chǔ)控制器中設(shè)有第一緩存和第二緩存,所述第一緩存用于緩存第一類數(shù)據(jù),所述第二緩存用于緩存第二類數(shù)據(jù),所述第一類數(shù)據(jù)的更新頻率大于所述第二類數(shù)據(jù)的更新頻率;
[0050]識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù),并將識別的所述第一類數(shù)據(jù)寫入所述第一緩存中;若寫入的所述第一類數(shù)據(jù)中包含更新數(shù)據(jù),則將所述第一緩存中該更新數(shù)據(jù)對應(yīng)的更新前的數(shù)據(jù)設(shè)為無效;
[0051]在確定當(dāng)前滿足所述第一類數(shù)據(jù)的寫入觸發(fā)條件時(shí),將所述第一緩存中的有效數(shù)據(jù)寫入存儲(chǔ)介質(zhì)。
[0052]結(jié)合第五方面,在第一種可能的實(shí)現(xiàn)方式中,所述存儲(chǔ)控制器執(zhí)行的所述指令中,識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù),包括:
[0053]根據(jù)所述待存儲(chǔ)數(shù)據(jù)中攜帶的標(biāo)識信息,以及標(biāo)識信息與數(shù)據(jù)類型的對應(yīng)關(guān)系,識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù);其中,所述標(biāo)識信息包括所述第一類數(shù)據(jù)中攜帶的第一標(biāo)識信息和/或所述第二類數(shù)據(jù)中攜帶的第二標(biāo)識信息。
[0054]結(jié)合第五方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述標(biāo)識信息為存儲(chǔ)地址信息:
[0055]所述存儲(chǔ)控制器執(zhí)行的所述指令中,根據(jù)所述待存儲(chǔ)數(shù)據(jù)中攜帶的標(biāo)識信息,以及標(biāo)識信息與數(shù)據(jù)類型的對應(yīng)關(guān)系,識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù),包括:
[0056]根據(jù)所述待存儲(chǔ)數(shù)據(jù)中的存儲(chǔ)地址信息,以及不同存儲(chǔ)地址范圍對應(yīng)的數(shù)據(jù)類型,識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù)。
[0057]結(jié)合第五方面,或第五方面的第一或第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述存儲(chǔ)控制器執(zhí)行的所述指令中,在確定當(dāng)前滿足所述第一類數(shù)據(jù)的寫入觸發(fā)條件時(shí),將所述第一緩存中的有效數(shù)據(jù)寫入所述存儲(chǔ)介質(zhì),包括:
[0058]在所述第一緩存寫滿后,將所述第一緩存中的有效數(shù)據(jù)寫入所述存儲(chǔ)介質(zhì);和/或,
[0059]在監(jiān)測到所述存儲(chǔ)設(shè)備發(fā)生斷電后,將所述第一緩存中的有效數(shù)據(jù)寫入所述存儲(chǔ)介質(zhì);和/或,
[0060]將所述第一緩存中在設(shè)定時(shí)間長度內(nèi)未被更新的有效數(shù)據(jù)寫入所述存儲(chǔ)介質(zhì)。
[0061]結(jié)合第五方面,或第五方面的第一?三種可能的實(shí)現(xiàn)方式中的任意一種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述存儲(chǔ)介質(zhì)為閃存Flash芯片;
[0062]所述第一緩存和第二緩存分別為所述存儲(chǔ)控制器中的雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器DDR的不同部分;或者,所述第一緩存為相變存儲(chǔ)器PCM,所述第二緩存為DDR或PCM。
[0063]結(jié)合第五方面,或第五方面的第一?四種可能的實(shí)現(xiàn)方式中的任意一種可能的實(shí)現(xiàn)方式,在第五種可能的實(shí)現(xiàn)方式中,所述第二類數(shù)據(jù)包括所述應(yīng)用實(shí)際操作的用戶數(shù)據(jù),所述第一類數(shù)據(jù)包括用于記錄所述用戶數(shù)據(jù)的修改信息的日志數(shù)據(jù)和/或用于描述所述用戶數(shù)據(jù)的各種屬性信息的元數(shù)據(jù)。
[0064]第六方面,提供一種進(jìn)行數(shù)據(jù)存儲(chǔ)的設(shè)備,該設(shè)備包括處理器、存儲(chǔ)器和總線,所述存儲(chǔ)器存儲(chǔ)執(zhí)行指令,當(dāng)所述設(shè)備運(yùn)行時(shí),所述處理器與所述存儲(chǔ)器之間通過總線通信,所述處理器執(zhí)行所述執(zhí)行指令使得所述設(shè)備執(zhí)行如下指令:
[0065]為需要寫入存儲(chǔ)設(shè)備的待存儲(chǔ)數(shù)據(jù)添加用于識別所述待存儲(chǔ)數(shù)據(jù)中的不同類型數(shù)據(jù)的標(biāo)識信息,其中,所述待存儲(chǔ)數(shù)據(jù)中包括第一類數(shù)據(jù)和第二類數(shù)據(jù),所述第一類數(shù)據(jù)的更新頻率大于所述第二類數(shù)據(jù)的更新頻率;
[0066]將攜帶所述標(biāo)識信息的待存儲(chǔ)數(shù)據(jù)發(fā)送給所述存儲(chǔ)設(shè)備;所述標(biāo)識信息用于存儲(chǔ)控制器識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù),將識別的所述第一類數(shù)據(jù)寫入存儲(chǔ)控制器的第一緩存中,并在確定寫入的所述第一類數(shù)據(jù)中包含更新數(shù)據(jù)后,將第一緩存中該更新數(shù)據(jù)對應(yīng)的更新前的數(shù)據(jù)設(shè)為無效。
[0067]結(jié)合第六方面,在第一種可能的實(shí)現(xiàn)方式中,所述標(biāo)識信息為存儲(chǔ)地址信息;
[0068]所述處理器執(zhí)行的所述指令中,為需要寫入存儲(chǔ)設(shè)備的待存儲(chǔ)數(shù)據(jù)添加用于識別所述待存儲(chǔ)數(shù)據(jù)中的不同類型數(shù)據(jù)的標(biāo)識信息,包括:
[0069]基于不同存儲(chǔ)地址范圍對應(yīng)的數(shù)據(jù)類型,為待存儲(chǔ)數(shù)據(jù)中不同類型的數(shù)據(jù)確定存儲(chǔ)地址信息。
[0070]結(jié)合第六方面,或第六方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述第二類數(shù)據(jù)包括所述應(yīng)用實(shí)際操作的用戶數(shù)據(jù),所述第一類數(shù)據(jù)包括用于記錄所述用戶數(shù)據(jù)的修改信息的日志數(shù)據(jù)和/或用于描述所述用戶數(shù)據(jù)的各種屬性信息的元數(shù)據(jù)。
[0071]采用上述任一方面提供的方案,存儲(chǔ)控制器識別出待存儲(chǔ)數(shù)據(jù)中頻繁更新的第一類數(shù)據(jù),并將這類數(shù)據(jù)存儲(chǔ)在額外設(shè)置的緩存空間(即第一緩存)中;為這類數(shù)據(jù)預(yù)先設(shè)置好寫入觸發(fā)條件,在寫入觸發(fā)條件滿足之前,不將第一緩存中的數(shù)據(jù)寫入存儲(chǔ)介質(zhì);在向第一緩存中寫入更新數(shù)據(jù)時(shí),將第一緩存中該更新數(shù)據(jù)對應(yīng)的更新前的數(shù)據(jù)設(shè)為無效;在寫入觸發(fā)條件滿足之后,將第一緩存中的有效數(shù)據(jù)寫入存儲(chǔ)介質(zhì)中;這樣,寫入存儲(chǔ)介質(zhì)的數(shù)據(jù)只是第一緩存中的有效數(shù)據(jù),相比將緩存中的數(shù)據(jù)都實(shí)時(shí)寫入存儲(chǔ)介質(zhì),只能對存儲(chǔ)介質(zhì)中的數(shù)據(jù)進(jìn)行更新的方式大大減少了寫入存儲(chǔ)介質(zhì)的數(shù)據(jù)量及寫入次數(shù),解決了寫放大的問題,進(jìn)而提高了存儲(chǔ)設(shè)備的寫性能,并可以延長存儲(chǔ)設(shè)備的使用壽命。

【專利附圖】

【附圖說明】
[0072]圖1為【背景技術(shù)】中的數(shù)據(jù)存儲(chǔ)示意圖;
[0073]圖2為本發(fā)明實(shí)施例一提供的進(jìn)行數(shù)據(jù)存儲(chǔ)的方法流程圖;
[0074]圖3本發(fā)明實(shí)施例二提供的進(jìn)行數(shù)據(jù)存儲(chǔ)的方法流程圖;
[0075]圖4為本發(fā)明實(shí)施例三提供的進(jìn)行數(shù)據(jù)存儲(chǔ)的方法流程圖;
[0076]圖5為本發(fā)明實(shí)施例中SSD進(jìn)行數(shù)據(jù)存儲(chǔ)的示意圖;
[0077]圖6為本發(fā)明實(shí)施例四提供的進(jìn)行數(shù)據(jù)存儲(chǔ)的方法流程圖;
[0078]圖7為本發(fā)明實(shí)施例五提供的進(jìn)行數(shù)據(jù)存儲(chǔ)的裝置結(jié)構(gòu)示意圖;
[0079]圖8為本發(fā)明實(shí)施例六提供的進(jìn)行數(shù)據(jù)存儲(chǔ)的系統(tǒng)結(jié)構(gòu)示意圖;
[0080]圖9為本發(fā)明實(shí)施例七提供的存儲(chǔ)設(shè)備結(jié)構(gòu)示意圖;
[0081]圖10為本發(fā)明實(shí)施例八提供的進(jìn)行數(shù)據(jù)存儲(chǔ)的設(shè)備結(jié)構(gòu)示意圖。

【具體實(shí)施方式】
[0082]本發(fā)明實(shí)施例的基本思想是:存儲(chǔ)控制器識別出待存儲(chǔ)數(shù)據(jù)中頻繁更新的第一類數(shù)據(jù),并將這類數(shù)據(jù)存儲(chǔ)在額外設(shè)置的緩存空間(即第一緩存)中;為這類數(shù)據(jù)預(yù)先設(shè)置好寫入觸發(fā)條件,在寫入觸發(fā)條件滿足之前,不將第一緩存中的數(shù)據(jù)寫入存儲(chǔ)介質(zhì);在向第一緩存中寫入更新數(shù)據(jù)時(shí),將第一緩存中該更新數(shù)據(jù)對應(yīng)的更新前的數(shù)據(jù)設(shè)為無效;在寫入觸發(fā)條件滿足之后,將第一緩存中的有效數(shù)據(jù)寫入存儲(chǔ)介質(zhì)中;這樣,寫入存儲(chǔ)介質(zhì)的數(shù)據(jù)只是第一緩存中的有效數(shù)據(jù),相比將緩存中的數(shù)據(jù)都實(shí)時(shí)寫入存儲(chǔ)介質(zhì),只能對存儲(chǔ)介質(zhì)中的數(shù)據(jù)進(jìn)行更新的方式大大減少了寫入存儲(chǔ)介質(zhì)的數(shù)據(jù)量及寫入次數(shù),解決了寫放大的問題,進(jìn)而提高了存儲(chǔ)設(shè)備的寫性能,并可以延長存儲(chǔ)設(shè)備的使用壽命。
[0083]下面結(jié)合說明書附圖對本發(fā)明實(shí)施例作進(jìn)一步詳細(xì)描述。
[0084]實(shí)施例一
[0085]如圖2所示,為本發(fā)明實(shí)施例一提供的進(jìn)行數(shù)據(jù)存儲(chǔ)的方法流程圖,該方法包括:
[0086]S201:存儲(chǔ)控制器接收待存儲(chǔ)數(shù)據(jù),所述存儲(chǔ)控制器中設(shè)有第一緩存和第二緩存,所述第一緩存用于緩存第一類數(shù)據(jù),所述第二緩存用于緩存第二類數(shù)據(jù),所述第一類數(shù)據(jù)的更新頻率大于所述第二類數(shù)據(jù)的更新頻率。
[0087]該步驟中,第一設(shè)備在運(yùn)行應(yīng)用的過程中,將待存儲(chǔ)數(shù)據(jù)寫入存儲(chǔ)設(shè)備中,該待存儲(chǔ)數(shù)據(jù)包括第一類數(shù)據(jù)和第二類數(shù)據(jù),其中,第一類數(shù)據(jù)的更新頻率大于第二類數(shù)據(jù)的更新頻率,比如第一類數(shù)據(jù)為非用戶數(shù)據(jù),如用于記錄用戶數(shù)據(jù)的修改信息的日志數(shù)據(jù)和/或用于描述用戶數(shù)據(jù)的各種屬性信息的元數(shù)據(jù),第二類數(shù)據(jù)為第一設(shè)備在運(yùn)行應(yīng)用的過程中實(shí)際操作的用戶數(shù)據(jù),也即用戶實(shí)際需要的數(shù)據(jù)。第一設(shè)備運(yùn)行的應(yīng)用可以是任意需要與存儲(chǔ)設(shè)備進(jìn)行數(shù)據(jù)交互的應(yīng)用。
[0088]S202:存儲(chǔ)控制器識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù),并將識別的第一類數(shù)據(jù)寫入第一緩存中;若寫入的所述第一類數(shù)據(jù)中包含更新數(shù)據(jù),則將第一緩存中該更新數(shù)據(jù)對應(yīng)的更新前的數(shù)據(jù)設(shè)為無效。
[0089]該步驟中,存儲(chǔ)控制器在接收到第一設(shè)備發(fā)送的待存儲(chǔ)數(shù)據(jù)后,可以基于待存儲(chǔ)數(shù)據(jù)中攜帶的標(biāo)識信息、以及標(biāo)識信息與數(shù)據(jù)類型的對應(yīng)關(guān)系,識別待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù);這里的標(biāo)識信息可以只包括第一類數(shù)據(jù)中攜帶的第一標(biāo)識信息(只標(biāo)識第一類數(shù)據(jù));或者可以只包括第二類數(shù)據(jù)中攜帶的第二標(biāo)識信息(只標(biāo)識第二類數(shù)據(jù)),這時(shí)存儲(chǔ)控制器將沒有攜帶第二標(biāo)識信息的數(shù)據(jù)歸類為第一類數(shù)據(jù),或者可以既包括第一類數(shù)據(jù)中攜帶的第一標(biāo)識信息也包括第二類數(shù)據(jù)中攜帶的第二標(biāo)識信息(標(biāo)識兩類數(shù)據(jù)),這三種標(biāo)識信息添加方式都能夠使存儲(chǔ)控制器識別出待存儲(chǔ)數(shù)據(jù)中的兩類不同的數(shù)據(jù)。
[0090]可選地,標(biāo)識信息具體可以是存儲(chǔ)地址信息:此時(shí),存儲(chǔ)控制器根據(jù)所述待存儲(chǔ)數(shù)據(jù)中攜帶的標(biāo)識信息,以及標(biāo)識信息與數(shù)據(jù)類型的對應(yīng)關(guān)系,識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù),包括:
[0091]所述存儲(chǔ)控制器根據(jù)所述待存儲(chǔ)數(shù)據(jù)中的存儲(chǔ)地址信息,以及不同存儲(chǔ)地址范圍對應(yīng)的數(shù)據(jù)類型,識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù)。
[0092]在具體實(shí)施過程中,可以為不同類型的數(shù)據(jù)設(shè)置不同的存儲(chǔ)介質(zhì)空間,也即,不同存儲(chǔ)地址范圍對應(yīng)不同的數(shù)據(jù)類型;存儲(chǔ)控制器只需根據(jù)待存儲(chǔ)數(shù)據(jù)中的不同數(shù)據(jù)的存儲(chǔ)地址所屬的存儲(chǔ)地址范圍,即可確定出哪些數(shù)據(jù)屬于第一類數(shù)據(jù),哪些數(shù)據(jù)屬于第二類數(shù)據(jù)。
[0093]在具體實(shí)施中,針對第一類數(shù)據(jù),若其中包含更新數(shù)據(jù)(比如更新一個(gè)文件的文件屬性信息(如文件大小)),在將更新數(shù)據(jù)寫入第一緩存后,第一緩存中可能還存在該更新數(shù)據(jù)對應(yīng)的更新前的數(shù)據(jù)(比如更新前文件的文件屬性信息),則此時(shí)可以直接將第一緩存中該更新前的數(shù)據(jù)設(shè)為無效;這里,將第一緩存中更新前的數(shù)據(jù)設(shè)為無效也即:將地址映射表中該更新前的數(shù)據(jù)所對應(yīng)的映射表項(xiàng)中的有效標(biāo)識位的值置0 (有效標(biāo)識位的值為0時(shí)標(biāo)識無效、有效標(biāo)識位的值為1時(shí)標(biāo)識有效)。具體地,存儲(chǔ)控制器維護(hù)一張記錄緩存地址與存儲(chǔ)介質(zhì)地址之間的映射關(guān)系的映射關(guān)系表,每個(gè)映射表項(xiàng)中包含待存儲(chǔ)數(shù)據(jù)所在的緩存地址、需要寫入的存儲(chǔ)介質(zhì)的地址以及有效標(biāo)志位,在向第一緩存中寫入更新數(shù)據(jù)后,需要記錄新的映射表項(xiàng),即記錄更新后的數(shù)據(jù)所在的緩存地址、需要寫入的存儲(chǔ)介質(zhì)中的地址(因?yàn)闆]有將更新前的數(shù)據(jù)寫入存儲(chǔ)介質(zhì),因此更新前數(shù)據(jù)的映射表項(xiàng)中的存儲(chǔ)介質(zhì)地址與更新后數(shù)據(jù)的映射表項(xiàng)中的存儲(chǔ)介質(zhì)地址可以相同)、并將有效標(biāo)識位的值置為1;同時(shí),將該更新后的數(shù)據(jù)所對應(yīng)的更新前的數(shù)據(jù)的映射表項(xiàng)中的有效標(biāo)識位的值置為0,以表示更新前的數(shù)據(jù)無效,無需寫入存儲(chǔ)介質(zhì)。
[0094]針對第二類數(shù)據(jù),在將其寫入第二緩存后,需要及時(shí)寫入存儲(chǔ)介質(zhì),在寫入更新數(shù)據(jù)時(shí),必定是在存儲(chǔ)介質(zhì)中將該更新數(shù)據(jù)對應(yīng)的更新前的數(shù)據(jù)設(shè)為無效,也就是,凡是寫入第二緩存的第二類數(shù)據(jù)都必定會(huì)寫入存儲(chǔ)介質(zhì)。
[0095]S203:存儲(chǔ)控制器在確定當(dāng)前滿足所述第一類數(shù)據(jù)的寫入觸發(fā)條件時(shí),將所述第一緩存中的有效數(shù)據(jù)寫入所述存儲(chǔ)介質(zhì)。
[0096]在具體實(shí)施過程中,存儲(chǔ)控制器將識別的第一類數(shù)據(jù)寫入第一緩存中,將識別的第二類數(shù)據(jù)寫入第二緩存中,其中,針對第二緩存中的數(shù)據(jù),按照現(xiàn)有的緩存管理機(jī)制將其及時(shí)寫入存儲(chǔ)介質(zhì),由于寫入第二緩存中的數(shù)據(jù)都寫入了存儲(chǔ)介質(zhì),因此在需要更新第二類數(shù)據(jù)時(shí),需要先將更新后的數(shù)據(jù)寫入第二緩存,從第二緩存中寫入存儲(chǔ)介質(zhì),再將存儲(chǔ)介質(zhì)中該更新后的數(shù)據(jù)對應(yīng)的更新前的數(shù)據(jù)設(shè)為無效。而針對第一緩存中的數(shù)據(jù),則不必將其及時(shí)寫入存儲(chǔ)介質(zhì),而是在滿足第一類數(shù)據(jù)的寫入觸發(fā)條件時(shí),才將其寫入存儲(chǔ)介質(zhì);這樣,當(dāng)需要更新第一類數(shù)據(jù)時(shí),更新前的數(shù)據(jù)有可能還存儲(chǔ)在第一緩存中,這時(shí),可以在將更新后的數(shù)據(jù)寫入第一緩存的同時(shí),將第一緩存中該更新后的數(shù)據(jù)對應(yīng)的更新前的數(shù)據(jù)設(shè)為無效;在滿足第一類數(shù)據(jù)的寫入觸發(fā)條件時(shí),只將第一緩存中的有效數(shù)據(jù)寫入存儲(chǔ)介質(zhì)。這里的寫入觸發(fā)條件可以是在監(jiān)測到存儲(chǔ)設(shè)備發(fā)生斷電后,將第一緩存中的數(shù)據(jù)寫入存儲(chǔ)介質(zhì);也可以在檢測到第一緩存寫滿時(shí),將第一緩存中的數(shù)據(jù)寫入存儲(chǔ)介質(zhì);也可以將所述第一緩存中在設(shè)定時(shí)間長度內(nèi)未被更新的有效數(shù)據(jù)寫入所述存儲(chǔ)介質(zhì);也可以在滿足這三種寫入觸發(fā)條件中的任意一種時(shí),將第一緩存中的數(shù)據(jù)寫入存儲(chǔ)介質(zhì)。當(dāng)然,除此之外,用戶還可以設(shè)置其它寫入觸發(fā)條件,比如,設(shè)置預(yù)設(shè)的寫入周期,即周期性將所述第一緩存中的數(shù)據(jù)寫入存儲(chǔ)介質(zhì);可以接收第一設(shè)備的寫入觸發(fā)指令,在接收到該寫入觸發(fā)指令后,將該第一緩存中的數(shù)據(jù)寫入存儲(chǔ)介質(zhì),該寫入觸發(fā)指令可以是用戶觸發(fā)的,也可以是第一設(shè)備在確定當(dāng)前寫操作完成后觸發(fā)的,比如第一設(shè)備檢測到文件關(guān)閉后,可以向存儲(chǔ)控制器下發(fā)寫入觸發(fā)指令;還可以設(shè)置在所有的寫操作完成后,在預(yù)設(shè)時(shí)間長度閾值內(nèi)沒有接收到寫命令時(shí),將第一緩存中的數(shù)據(jù)寫入存儲(chǔ)介質(zhì)。
[0097]可見,采用本發(fā)明實(shí)施例,可以不必將緩存中的頻繁更新數(shù)據(jù)實(shí)時(shí)寫入存儲(chǔ)介質(zhì),在更新這類數(shù)據(jù)時(shí),如果緩存中還存在更新前的數(shù)據(jù),可以直接對緩存中的這類數(shù)據(jù)進(jìn)行更新(也即將更新前的數(shù)據(jù)設(shè)為無效),在這類數(shù)據(jù)的寫入觸發(fā)條件滿足時(shí),再將緩存中這類數(shù)據(jù)中的有效數(shù)據(jù)寫入存儲(chǔ)介質(zhì),這樣,可以減少對存儲(chǔ)介質(zhì)的寫入次數(shù)及寫入數(shù)據(jù)量,進(jìn)而提高了存儲(chǔ)設(shè)備的寫性能,并可以額延長存儲(chǔ)設(shè)備的使用壽命。
[0098]實(shí)施例二
[0099]如圖3所示,為本發(fā)明實(shí)施例二提供的數(shù)據(jù)存儲(chǔ)方法流程圖,包括以下步驟:
[0100]S301:第一設(shè)備為需要寫入存儲(chǔ)設(shè)備的待存儲(chǔ)數(shù)據(jù)添加用于識別所述待存儲(chǔ)數(shù)據(jù)中的不同類型數(shù)據(jù)的標(biāo)識信息,其中,所述待存儲(chǔ)數(shù)據(jù)中包括第一類數(shù)據(jù)和第二類數(shù)據(jù),所述第一類數(shù)據(jù)的更新頻率大于所述第二類數(shù)據(jù)的更新頻率。
[0101]在具體實(shí)施過程中,第一設(shè)備在運(yùn)行應(yīng)用的過程中生成需要寫入存儲(chǔ)設(shè)備的待存儲(chǔ)數(shù)據(jù)。該待存儲(chǔ)數(shù)據(jù)中包括更新頻繁的第一類數(shù)據(jù)和更新不頻繁的第二類數(shù)據(jù)。比如,該待存儲(chǔ)數(shù)據(jù)中除可以包括應(yīng)用實(shí)際操作的用戶數(shù)據(jù)(第二類數(shù)據(jù))外,還可以包括用于記錄所述用戶數(shù)據(jù)的修改信息的日志數(shù)據(jù)和/或用于描述所述用戶數(shù)據(jù)的各種屬性信息的元數(shù)據(jù)(第一類數(shù)據(jù))。這里的日志數(shù)據(jù)和元數(shù)據(jù)的更新頻率大于用戶數(shù)據(jù)的更新頻率,比如針對日志型文件系統(tǒng)這種應(yīng)用,每次在文件中寫入新的用戶數(shù)據(jù)時(shí),都需要更新該文件的各種屬性信息,比如文件大小、修改時(shí)間等(即元數(shù)據(jù)),并且,每次都需要更新描述該用戶數(shù)據(jù)的修改信息的日志數(shù)據(jù)。
[0102]該步驟中,第一設(shè)備為待存儲(chǔ)數(shù)據(jù)添加用于識別不同類型數(shù)據(jù)的標(biāo)識信息,具體地,可以只標(biāo)識第一類數(shù)據(jù),這時(shí),沒有攜帶標(biāo)識信息的數(shù)據(jù)即為第二類數(shù)據(jù),或者,也可以只標(biāo)識第二類數(shù)據(jù),這時(shí),沒有攜帶標(biāo)識信息的數(shù)據(jù)即為第一類數(shù)據(jù),或者,第一設(shè)備可以同時(shí)為這兩類數(shù)據(jù)分別添加不同的標(biāo)識信息。也即,第一設(shè)備為待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù)添加用于標(biāo)識第一類數(shù)據(jù)的第一標(biāo)識信息;和/或,為待存儲(chǔ)數(shù)據(jù)中的第二類數(shù)據(jù)添加用于標(biāo)識第二類數(shù)據(jù)的第二標(biāo)識信息。可選地,所述標(biāo)識信息具體可以是存儲(chǔ)地址信息;在具體實(shí)施過程中,可以為不同類型的數(shù)據(jù)設(shè)置不同的存儲(chǔ)介質(zhì)空間,也即,存儲(chǔ)介質(zhì)的不同存儲(chǔ)地址范圍對應(yīng)不同的數(shù)據(jù)類型;存儲(chǔ)控制器只需根據(jù)待存儲(chǔ)數(shù)據(jù)中的不同數(shù)據(jù)的存儲(chǔ)地址所屬的存儲(chǔ)地址范圍,即可確定出哪些數(shù)據(jù)屬于第一類數(shù)據(jù),哪些數(shù)據(jù)屬于第二類數(shù)據(jù)。
[0103]S302:第一設(shè)備將攜帶所述標(biāo)識信息的待存儲(chǔ)數(shù)據(jù)發(fā)送給所述存儲(chǔ)設(shè)備;
[0104]該步驟中,第一設(shè)備可以采用存儲(chǔ)器直接訪問(Direct Memory Access,DMA)的方式將待存儲(chǔ)數(shù)據(jù)發(fā)送給所述存儲(chǔ)設(shè)備;也即,存儲(chǔ)控制器通過外部接口接收第一設(shè)備的寫入請求,并使用DMA方式讀取第一設(shè)備內(nèi)存的待存儲(chǔ)數(shù)據(jù),該外部接口可以是外設(shè)部件互連標(biāo)準(zhǔn)(Peripheral Component Interconnect, PCI)接口、極速 PCI (PCI Express, PC1-E)接口、串行高級技術(shù)附件(Serial Advanced Technology Attachment, SATA)接口、串行連接小型計(jì)算機(jī)系統(tǒng)接口 (Serial Attached Small Computer System Interface, SAS)、或雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器(Double Data Rate,DDR)接口等中的任意一種,本發(fā)明實(shí)施例中并不限定。
[0105]S303:存儲(chǔ)設(shè)備基于接收的待存儲(chǔ)數(shù)據(jù)中攜帶的標(biāo)識信息,識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù),并將識別的所述第一類數(shù)據(jù)寫入第一緩存中;若寫入的所述第一類數(shù)據(jù)中包含更新數(shù)據(jù),則將所述第一緩存中該更新數(shù)據(jù)對應(yīng)的更新前的數(shù)據(jù)設(shè)為無效;其中,所述存儲(chǔ)設(shè)備中包括第一緩存和第二緩存,所述第一緩存用于緩存第一類數(shù)據(jù),所述第二緩存用于緩存第二類數(shù)據(jù);
[0106]S304:存儲(chǔ)設(shè)備在確定當(dāng)前滿足所述第一類數(shù)據(jù)的寫入觸發(fā)條件時(shí),將所述第一緩存中的有效數(shù)據(jù)寫入存儲(chǔ)介質(zhì)。
[0107]下面,以所述存儲(chǔ)設(shè)備為SSD、所述存儲(chǔ)控制器為SSD控制器、所述存儲(chǔ)介質(zhì)為Flash芯片為例,通過實(shí)施例三、實(shí)施例四,對本發(fā)明方案作進(jìn)一步描述。
[0108]實(shí)施例三
[0109]如圖4所示,為本發(fā)明實(shí)施例三提供的進(jìn)行數(shù)據(jù)存儲(chǔ)的方法流程圖,包括以下步驟:
[0110]S401:第一設(shè)備為所述待存儲(chǔ)數(shù)據(jù)中的日志數(shù)據(jù)和元數(shù)據(jù)添加區(qū)別于其它類型數(shù)據(jù)的標(biāo)識信息。
[0111]比如,第一設(shè)備為待存儲(chǔ)數(shù)據(jù)為日志數(shù)據(jù)和元數(shù)據(jù)添加自主控制寫入(Self-Control Write, SCW)標(biāo)識,而對用戶數(shù)據(jù)不作標(biāo)記。
[0112]S402:第一設(shè)備將攜帶標(biāo)識信息的待存儲(chǔ)數(shù)據(jù)發(fā)送給SSD控制器。
[0113]S403:SSD控制器根據(jù)待存儲(chǔ)數(shù)據(jù)中的標(biāo)識信息識別其中的日志數(shù)據(jù)和元數(shù)據(jù),并將識別的日志數(shù)據(jù)和元數(shù)據(jù)寫入第一緩存中,將其它數(shù)據(jù)寫入第二緩存中;若寫入的日志數(shù)據(jù)或元數(shù)據(jù)中包含更新數(shù)據(jù),則將第一緩存中該更新數(shù)據(jù)對應(yīng)的更新前的數(shù)據(jù)設(shè)為無效。
[0114]在具體實(shí)施中,SSD控制器可以在自己的緩存中劃分出一段緩存空間作為所述第一緩存,比如,第一緩存和第二緩存分別為作為SSD控制器的緩存的雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器(Double Data Rate,DDR)的不同部分;或者,由于第一緩存的數(shù)據(jù)緩存時(shí)間較長,可以在SSD控制器中另設(shè)能夠支持?jǐn)嚯姾蟛粊G失數(shù)據(jù)的性能的相變存儲(chǔ)器(Phase ChangeMemory, PCM)作為第一緩存,當(dāng)然,第二緩存也可以采用PCM。
[0115]S404:SSD控制器將第二緩存的數(shù)據(jù)寫入SSD的Flash芯片中。
[0116]S405:SSD控制器在日志數(shù)據(jù)和元數(shù)據(jù)的寫入觸發(fā)條件滿足后,將第一緩存中的有效數(shù)據(jù)寫入SSD的Flash芯片中。
[0117]如圖5所示,為本發(fā)明實(shí)施例中SSD進(jìn)行數(shù)據(jù)存儲(chǔ)的示意圖。日志文件系統(tǒng)基于應(yīng)用運(yùn)行中生成的待存儲(chǔ)的用戶數(shù)據(jù)生成日志數(shù)據(jù)和元數(shù)據(jù);第一設(shè)備的SSD驅(qū)動(dòng)(Driver)為日志數(shù)據(jù)和元數(shù)據(jù)添加SCW標(biāo)識。在SSD控制器內(nèi)部的DDR緩存中單獨(dú)劃出一段緩存空間作為第一緩存,其它緩存空間作為第二緩存,或者,增加PCM作為第一緩存。SSD控制器中的SSD緩存管理器管理第一緩存和第二緩存。SSD控制器通過PCI接口接收第一設(shè)備驅(qū)動(dòng)的寫入請求,并使用DMA方式讀取第一設(shè)備內(nèi)存的待存儲(chǔ)數(shù)據(jù)。SSD緩存管理器將讀取的待存儲(chǔ)數(shù)據(jù)中的帶有SCW標(biāo)識的數(shù)據(jù)寫入第一緩存,將其它數(shù)據(jù)寫入第二緩存,將第二緩存中的數(shù)據(jù)寫入Flash芯片中,在滿足第一緩存的寫入觸發(fā)條件時(shí),將第一緩存中的數(shù)據(jù)寫入Flash芯片中。Flash控制器控制Flash芯片的數(shù)據(jù)存儲(chǔ),并可以支持Flash Block整塊擦除(Erase)、Flash 顆粒屬性讀取(Read ID)、讀頁(Page Read)和 Flash Page 編程(PageProgram)等命令。閃存轉(zhuǎn)換層(Flash Translat1n Layer,FTL)主要負(fù)責(zé)Flash芯片的壞塊管理,邏輯塊映射和磨損平衡,同時(shí)對運(yùn)行中的各種狀態(tài)信息進(jìn)行記錄并上報(bào),包括位翻轉(zhuǎn)、擦除失敗、編程失敗、標(biāo)記壞塊等。當(dāng)讀數(shù)據(jù)出現(xiàn)異常時(shí),讀恢復(fù)(Read Recovery)模塊負(fù)責(zé)恢復(fù)數(shù)據(jù);垃圾回收(Garbage Collector)模塊負(fù)責(zé)垃圾回收。寫入(Write)模塊負(fù)責(zé)寫數(shù)據(jù),由寫數(shù)據(jù)編碼(Write Data Encoder, WDE)模塊負(fù)責(zé)編碼后的數(shù)據(jù)傳輸給Flash控制器,寫入Flash芯片中。
[0118]在不采用本發(fā)明實(shí)施例的情況下,每向SSD的Flash芯片寫入4KB的用戶數(shù)據(jù),即一個(gè)數(shù)據(jù)塊(Block),就需要同步更新32KB的日志數(shù)據(jù)和4KB的元數(shù)據(jù)。實(shí)際寫入到SSD的有效數(shù)據(jù)量(即指用戶數(shù)據(jù))只占9%,寫性能只有裸設(shè)備(沒有安裝日志文件系統(tǒng)等生成日志數(shù)據(jù)和元數(shù)據(jù)的軟件系統(tǒng))的1/4。在采用本發(fā)明實(shí)施例后,只需將4KB的用戶數(shù)據(jù)通過第二緩存實(shí)時(shí)寫入Flash芯片,而將32KB的日志數(shù)據(jù)和4KB的元數(shù)據(jù)寫入第一緩存,可以在所有寫操作完成后,在設(shè)定時(shí)間長度內(nèi)沒有再接收到寫命令時(shí)再將日志數(shù)據(jù)和元數(shù)據(jù)寫入第一緩存。這樣,SSD寫性能可以接近裸設(shè)備性能。
[0119]實(shí)施例四
[0120]如圖6所示,為本發(fā)明實(shí)施例四提供的進(jìn)行數(shù)據(jù)存儲(chǔ)的方法流程圖,包括以下步驟:
[0121]S601:第一設(shè)備基于不同存儲(chǔ)地址范圍對應(yīng)的數(shù)據(jù)類型,為待存儲(chǔ)數(shù)據(jù)中不同類型的數(shù)據(jù)確定存儲(chǔ)地址信息;該數(shù)據(jù)類型包括第一類數(shù)據(jù)和第二類數(shù)據(jù),第一類數(shù)據(jù)的更新頻率大于第二類數(shù)據(jù)的更新頻率。
[0122]S602:第一設(shè)備將攜帶存儲(chǔ)地址信息的待存儲(chǔ)數(shù)據(jù)發(fā)送給SSD控制器。
[0123]S603:SSD控制器根據(jù)根據(jù)待存儲(chǔ)數(shù)據(jù)中的存儲(chǔ)地址信息,以及不同存儲(chǔ)地址范圍對應(yīng)的數(shù)據(jù)類型,識別待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù)和第二類數(shù)據(jù),將第一類數(shù)據(jù)寫入第一緩存中,將第二類數(shù)據(jù)寫入第二緩存中;若寫入的第一類數(shù)據(jù)中包含更新數(shù)據(jù),則將第一緩存中該更新數(shù)據(jù)對應(yīng)的更新前的數(shù)據(jù)設(shè)為無效。
[0124]S604:SSD控制器將第二緩存的數(shù)據(jù)寫入SSD的Flash芯片中。
[0125]S605:SSD控制器在第一類數(shù)據(jù)的寫入觸發(fā)條件滿足后,將第一緩存中的有效數(shù)據(jù)寫入SSD的Flash芯片中。
[0126]基于同一發(fā)明構(gòu)思,本發(fā)明實(shí)施例中還提供了一種與進(jìn)行數(shù)據(jù)存儲(chǔ)的方法對應(yīng)的進(jìn)行數(shù)據(jù)存儲(chǔ)的裝置、系統(tǒng),由于該裝置及系統(tǒng)解決問題的原理與本發(fā)明實(shí)施例進(jìn)行數(shù)據(jù)存儲(chǔ)的方法相似,因此該裝置及系統(tǒng)的實(shí)施可以參見方法的實(shí)施,重復(fù)之處不再贅述。
[0127]實(shí)施例五
[0128]如圖7所示,為本發(fā)明實(shí)施例五提供的進(jìn)行數(shù)據(jù)存儲(chǔ)的裝置結(jié)構(gòu)示意圖,包括:
[0129]接收模塊71,用于接收待存儲(chǔ)數(shù)據(jù),所述存儲(chǔ)控制器中設(shè)有第一緩存和第二緩存,所述第一緩存用于緩存第一類數(shù)據(jù),所述第二緩存用于緩存第二類數(shù)據(jù),所述第一類數(shù)據(jù)的更新頻率大于所述第二類數(shù)據(jù)的更新頻率;
[0130]識別模塊72,用于識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù),并將識別的所述第一類數(shù)據(jù)寫入所述第一緩存中;若寫入的所述第一類數(shù)據(jù)中包含更新數(shù)據(jù),則將所述第一緩存中該更新數(shù)據(jù)對應(yīng)的更新前的數(shù)據(jù)設(shè)為無效;
[0131]寫入模塊73,用于在確定當(dāng)前滿足所述第一類數(shù)據(jù)的寫入觸發(fā)條件時(shí),將所述第一緩存中的有效數(shù)據(jù)寫入存儲(chǔ)介質(zhì)。
[0132]可選地,所述識別模塊72具體用于:
[0133]根據(jù)所述待存儲(chǔ)數(shù)據(jù)中攜帶的標(biāo)識信息,以及標(biāo)識信息與數(shù)據(jù)類型的對應(yīng)關(guān)系,識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù);其中,所述標(biāo)識信息包括所述第一類數(shù)據(jù)中攜帶的第一標(biāo)識信息和/或所述第二類數(shù)據(jù)中攜帶的第二標(biāo)識信息。
[0134]可選地,所述標(biāo)識信息為存儲(chǔ)地址信息:
[0135]所述識別模塊72具體用于:根據(jù)所述待存儲(chǔ)數(shù)據(jù)中的存儲(chǔ)地址信息,以及不同存儲(chǔ)地址范圍對應(yīng)的數(shù)據(jù)類型,識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù)。
[0136]可選地,所述寫入模塊73具體用于:在所述第一緩存寫滿后,將所述第一緩存中的有效數(shù)據(jù)寫入所述存儲(chǔ)介質(zhì);和/或,在監(jiān)測到所述存儲(chǔ)設(shè)備發(fā)生斷電后,將所述第一緩存中的有效數(shù)據(jù)寫入所述存儲(chǔ)介質(zhì);和/或,將所述第一緩存中在設(shè)定時(shí)間長度內(nèi)未被更新的有效數(shù)據(jù)寫入所述存儲(chǔ)介質(zhì)。
[0137]可選地,所述存儲(chǔ)介質(zhì)為閃存Flash芯片;
[0138]所述第一緩存和第二緩存分別為所述存儲(chǔ)控制器中的雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器DDR的不同部分;或者,所述第一緩存為相變存儲(chǔ)器PCM,所述第二緩存為DDR或PCM。
[0139]可選地,所述第二類數(shù)據(jù)包括所述應(yīng)用實(shí)際操作的用戶數(shù)據(jù),所述第一類數(shù)據(jù)包括用于記錄所述用戶數(shù)據(jù)的修改信息的日志數(shù)據(jù)和/或用于描述所述用戶數(shù)據(jù)的各種屬性信息的元數(shù)據(jù)。
[0140]實(shí)施例六
[0141]如圖8所示,為本發(fā)明實(shí)施例六提供的進(jìn)行數(shù)據(jù)存儲(chǔ)的系統(tǒng)結(jié)構(gòu)示意圖,該系統(tǒng)包括第一設(shè)備81和存儲(chǔ)設(shè)備82,存儲(chǔ)設(shè)備82包括存儲(chǔ)控制器821和存儲(chǔ)介質(zhì)822,存儲(chǔ)控制器821中設(shè)有第一緩存821a和第二緩存821b,第一緩存821a用于緩存第一類數(shù)據(jù),第二緩存821b用于緩存第二類數(shù)據(jù),該第一類數(shù)據(jù)的更新頻率大于第二類數(shù)據(jù)的更新頻率;其中,
[0142]第一設(shè)備81,用于為需要寫入存儲(chǔ)設(shè)備82的待存儲(chǔ)數(shù)據(jù)添加用于識別所述待存儲(chǔ)數(shù)據(jù)中的不同類型數(shù)據(jù)的標(biāo)識信息,將攜帶所述標(biāo)識信息的待存儲(chǔ)數(shù)據(jù)發(fā)送給所述存儲(chǔ)設(shè)備82 ;其中,所述待存儲(chǔ)數(shù)據(jù)中包括第一類數(shù)據(jù)和第二類數(shù)據(jù);
[0143]存儲(chǔ)控制器821,用于基于接收的待存儲(chǔ)數(shù)據(jù)中攜帶的標(biāo)識信息,識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù),并將識別的所述第一類數(shù)據(jù)寫入第一緩存821a中;若寫入的所述第一類數(shù)據(jù)中包含更新數(shù)據(jù),則將所述第一緩存821a中該更新數(shù)據(jù)對應(yīng)的更新前的數(shù)據(jù)設(shè)為無效;在確定當(dāng)前滿足所述第一類數(shù)據(jù)的寫入觸發(fā)條件時(shí),將所述第一緩存821a中的有效數(shù)據(jù)寫入存儲(chǔ)介質(zhì)。
[0144]可選地,所述標(biāo)識信息為存儲(chǔ)地址信息;
[0145]所述第一設(shè)備81具體用于:基于不同存儲(chǔ)地址范圍對應(yīng)的數(shù)據(jù)類型,為待存儲(chǔ)數(shù)據(jù)中不同類型的數(shù)據(jù)確定存儲(chǔ)地址信息。
[0146]可選地,所述第二類數(shù)據(jù)包括所述應(yīng)用實(shí)際操作的用戶數(shù)據(jù),所述第一類數(shù)據(jù)包括用于記錄所述用戶數(shù)據(jù)的修改信息的日志數(shù)據(jù)和/或用于描述所述用戶數(shù)據(jù)的各種屬性信息的元數(shù)據(jù)。
[0147]實(shí)施例七
[0148]如圖9所示,為本發(fā)明實(shí)施例七提供的存儲(chǔ)設(shè)備90結(jié)構(gòu)示意圖,該設(shè)備包括存儲(chǔ)控制器91和存儲(chǔ)介質(zhì)92,所述存儲(chǔ)控制器中設(shè)有第一緩存91a和第二緩存91b,所述第一緩存91a用于緩存第一類數(shù)據(jù),所述第二緩存91b用于緩存第二類數(shù)據(jù),所述第一類數(shù)據(jù)的更新頻率大于所述第二類數(shù)據(jù)的更新頻率;當(dāng)所述存儲(chǔ)控制器91運(yùn)行時(shí),所述存儲(chǔ)控制器91與所述存儲(chǔ)介質(zhì)92之間通過總線93通信,執(zhí)行如下指令:
[0149]接收待存儲(chǔ)數(shù)據(jù),所述存儲(chǔ)控制器中設(shè)有第一緩存和第二緩存,所述第一緩存用于緩存第一類數(shù)據(jù),所述第二緩存用于緩存第二類數(shù)據(jù),所述第一類數(shù)據(jù)的更新頻率大于所述第二類數(shù)據(jù)的更新頻率;
[0150]識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù),并將識別的所述第一類數(shù)據(jù)寫入所述第一緩存中;若寫入的所述第一類數(shù)據(jù)中包含更新數(shù)據(jù),則將所述第一緩存中該更新數(shù)據(jù)對應(yīng)的更新前的數(shù)據(jù)設(shè)為無效;
[0151]在確定當(dāng)前滿足所述第一類數(shù)據(jù)的寫入觸發(fā)條件時(shí),將所述第一緩存中的有效數(shù)據(jù)寫入存儲(chǔ)介質(zhì)。
[0152]可選地,所述存儲(chǔ)控制器91執(zhí)行的所述指令中,識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù),包括:
[0153]根據(jù)所述待存儲(chǔ)數(shù)據(jù)中攜帶的標(biāo)識信息,以及標(biāo)識信息與數(shù)據(jù)類型的對應(yīng)關(guān)系,識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù);其中,所述標(biāo)識信息包括所述第一類數(shù)據(jù)中攜帶的第一標(biāo)識信息和/或所述第二類數(shù)據(jù)中攜帶的第二標(biāo)識信息。
[0154]可選地,所述標(biāo)識信息為存儲(chǔ)地址信息:
[0155]所述存儲(chǔ)控制器91執(zhí)行的所述指令中,根據(jù)所述待存儲(chǔ)數(shù)據(jù)中攜帶的標(biāo)識信息,以及標(biāo)識信息與數(shù)據(jù)類型的對應(yīng)關(guān)系,識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù),包括:
[0156]根據(jù)所述待存儲(chǔ)數(shù)據(jù)中的存儲(chǔ)地址信息,以及不同存儲(chǔ)地址范圍對應(yīng)的數(shù)據(jù)類型,識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù)。
[0157]可選地,所述存儲(chǔ)控制器91執(zhí)行的所述指令中,在確定當(dāng)前滿足所述第一類數(shù)據(jù)的寫入觸發(fā)條件時(shí),將所述第一緩存中的有效數(shù)據(jù)寫入所述存儲(chǔ)介質(zhì),包括:
[0158]在所述第一緩存寫滿后,將所述第一緩存中的有效數(shù)據(jù)寫入所述存儲(chǔ)介質(zhì);和/或,
[0159]在監(jiān)測到所述存儲(chǔ)設(shè)備發(fā)生斷電后,將所述第一緩存中的有效數(shù)據(jù)寫入所述存儲(chǔ)介質(zhì);和/或,
[0160]將所述第一緩存中在設(shè)定時(shí)間長度內(nèi)未被更新的有效數(shù)據(jù)寫入所述存儲(chǔ)介質(zhì)。
[0161]可選地,所述存儲(chǔ)介質(zhì)92為閃存Flash芯片;
[0162]所述第一緩存91a和第二緩存91b分別為所述存儲(chǔ)控制器中的雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器DDR的不同部分;或者,所述第一緩存9la為相變存儲(chǔ)器PCM,所述第二緩存91b為 DDR 或 PCM。
[0163]可選地,所述第二類數(shù)據(jù)包括所述應(yīng)用實(shí)際操作的用戶數(shù)據(jù),所述第一類數(shù)據(jù)包括用于記錄所述用戶數(shù)據(jù)的修改信息的日志數(shù)據(jù)和/或用于描述所述用戶數(shù)據(jù)的各種屬性信息的元數(shù)據(jù)。
[0164]實(shí)施例八
[0165]如圖10所示,為本發(fā)明實(shí)施例八提供的進(jìn)行數(shù)據(jù)存儲(chǔ)的設(shè)備結(jié)構(gòu)示意圖,該設(shè)備包括處理器101、存儲(chǔ)器102和總線103,所述存儲(chǔ)器102存儲(chǔ)執(zhí)行指令,當(dāng)所述設(shè)備運(yùn)行時(shí),所述處理器101與所述存儲(chǔ)器102之間通過總線103通信,所述處理器101執(zhí)行所述執(zhí)行指令使得所述設(shè)備執(zhí)行如下指令:
[0166]為需要寫入存儲(chǔ)設(shè)備的待存儲(chǔ)數(shù)據(jù)添加用于識別所述待存儲(chǔ)數(shù)據(jù)中的不同類型數(shù)據(jù)的標(biāo)識信息,其中,所述待存儲(chǔ)數(shù)據(jù)中包括第一類數(shù)據(jù)和第二類數(shù)據(jù),所述第一類數(shù)據(jù)的更新頻率大于所述第二類數(shù)據(jù)的更新頻率;
[0167]將攜帶所述標(biāo)識信息的待存儲(chǔ)數(shù)據(jù)發(fā)送給所述存儲(chǔ)設(shè)備;所述標(biāo)識信息用于存儲(chǔ)控制器識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù),將識別的所述第一類數(shù)據(jù)寫入存儲(chǔ)控制器的第一緩存中,并在確定寫入的所述第一類數(shù)據(jù)中包含更新數(shù)據(jù)后,將第一緩存中該更新數(shù)據(jù)對應(yīng)的更新前的數(shù)據(jù)設(shè)為無效。
[0168]可選地,所述標(biāo)識信息為存儲(chǔ)地址信息;
[0169]所述處理器101執(zhí)行的所述指令中,為需要寫入存儲(chǔ)設(shè)備的待存儲(chǔ)數(shù)據(jù)添加用于識別所述待存儲(chǔ)數(shù)據(jù)中的不同類型數(shù)據(jù)的標(biāo)識信息,包括:
[0170]基于不同存儲(chǔ)地址范圍對應(yīng)的數(shù)據(jù)類型,為待存儲(chǔ)數(shù)據(jù)中不同類型的數(shù)據(jù)確定存儲(chǔ)地址信息。
[0171]可選地,所述第二類數(shù)據(jù)包括所述應(yīng)用實(shí)際操作的用戶數(shù)據(jù),所述第一類數(shù)據(jù)包括用于記錄所述用戶數(shù)據(jù)的修改信息的日志數(shù)據(jù)和/或用于描述所述用戶數(shù)據(jù)的各種屬性信息的元數(shù)據(jù)。
[0172]本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
[0173]本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
[0174]這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
[0175]這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
[0176]盡管已描述了本發(fā)明的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明范圍的所有變更和修改。
[0177]顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
【權(quán)利要求】
1.一種進(jìn)行數(shù)據(jù)存儲(chǔ)的方法,其特征在于,該方法包括: 存儲(chǔ)控制器接收待存儲(chǔ)數(shù)據(jù),所述存儲(chǔ)控制器中設(shè)有第一緩存和第二緩存,所述第一緩存用于緩存第一類數(shù)據(jù),所述第二緩存用于緩存第二類數(shù)據(jù),所述第一類數(shù)據(jù)的更新頻率大于所述第二類數(shù)據(jù)的更新頻率; 所述存儲(chǔ)控制器識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù),并將識別的所述第一類數(shù)據(jù)寫入所述第一緩存中;若寫入的所述第一類數(shù)據(jù)中包含更新數(shù)據(jù),則將所述第一緩存中該更新數(shù)據(jù)對應(yīng)的更新前的數(shù)據(jù)設(shè)為無效; 所述存儲(chǔ)控制器在確定當(dāng)前滿足所述第一類數(shù)據(jù)的寫入觸發(fā)條件時(shí),將所述第一緩存中的有效數(shù)據(jù)寫入存儲(chǔ)介質(zhì)。
2.如權(quán)利要求1所述的方法,其特征在于,所述存儲(chǔ)控制器識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù),包括: 所述存儲(chǔ)控制器根據(jù)所述待存儲(chǔ)數(shù)據(jù)中攜帶的標(biāo)識信息,以及標(biāo)識信息與數(shù)據(jù)類型的對應(yīng)關(guān)系,識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù);其中,所述標(biāo)識信息包括所述第一類數(shù)據(jù)中攜帶的第一標(biāo)識信息和/或所述第二類數(shù)據(jù)中攜帶的第二標(biāo)識信息。
3.如權(quán)利要求2所述的方法,其特征在于,所述標(biāo)識信息為存儲(chǔ)地址信息: 所述存儲(chǔ)控制器根據(jù)所述待存儲(chǔ)數(shù)據(jù)中攜帶的標(biāo)識信息,以及標(biāo)識信息與數(shù)據(jù)類型的對應(yīng)關(guān)系,識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù),包括: 所述存儲(chǔ)控制器根據(jù)所述待存儲(chǔ)數(shù)據(jù)中的存儲(chǔ)地址信息,以及不同存儲(chǔ)地址范圍對應(yīng)的數(shù)據(jù)類型,識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù)。
4.如權(quán)利要求1?3任一所述的方法,其特征在于,所述存儲(chǔ)控制器在確定當(dāng)前滿足所述第一類數(shù)據(jù)的寫入觸發(fā)條件時(shí),將所述第一緩存中的有效數(shù)據(jù)寫入所述存儲(chǔ)介質(zhì),包括: 所述存儲(chǔ)控制器在所述第一緩存寫滿后,將所述第一緩存中的有效數(shù)據(jù)寫入所述存儲(chǔ)介質(zhì);和/或, 所述存儲(chǔ)控制器在監(jiān)測到所述存儲(chǔ)設(shè)備發(fā)生斷電后,將所述第一緩存中的有效數(shù)據(jù)寫入所述存儲(chǔ)介質(zhì);和/或, 所述存儲(chǔ)控制器將所述第一緩存中在設(shè)定時(shí)間長度內(nèi)未被更新的有效數(shù)據(jù)寫入所述存儲(chǔ)介質(zhì)。
5.如權(quán)利要求1?4任一所述的方法,其特征在于,所述存儲(chǔ)介質(zhì)為閃存Flash芯片; 所述第一緩存和第二緩存分別為所述存儲(chǔ)控制器中的雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器DDR的不同部分;或者,所述第一緩存為相變存儲(chǔ)器PCM,所述第二緩存為DDR或PCM。
6.如權(quán)利要求1?5任一所述的方法,其特征在于,所述第二類數(shù)據(jù)包括所述應(yīng)用實(shí)際操作的用戶數(shù)據(jù),所述第一類數(shù)據(jù)包括用于記錄所述用戶數(shù)據(jù)的修改信息的日志數(shù)據(jù)和/或用于描述所述用戶數(shù)據(jù)的各種屬性信息的元數(shù)據(jù)。
7.一種進(jìn)行數(shù)據(jù)存儲(chǔ)的方法,其特征在于,包括: 第一設(shè)備為需要寫入存儲(chǔ)設(shè)備的待存儲(chǔ)數(shù)據(jù)添加用于識別所述待存儲(chǔ)數(shù)據(jù)中的不同類型數(shù)據(jù)的標(biāo)識信息,其中,所述待存儲(chǔ)數(shù)據(jù)中包括第一類數(shù)據(jù)和第二類數(shù)據(jù),所述第一類數(shù)據(jù)的更新頻率大于所述第二類數(shù)據(jù)的更新頻率; 所述第一設(shè)備將攜帶所述標(biāo)識信息的待存儲(chǔ)數(shù)據(jù)發(fā)送給所述存儲(chǔ)設(shè)備; 所述存儲(chǔ)設(shè)備中的存儲(chǔ)控制器基于接收的待存儲(chǔ)數(shù)據(jù)中攜帶的標(biāo)識信息,識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù),并將識別的所述第一類數(shù)據(jù)寫入第一緩存中;若寫入的所述第一類數(shù)據(jù)中包含更新數(shù)據(jù),則將所述第一緩存中該更新數(shù)據(jù)對應(yīng)的更新前的數(shù)據(jù)設(shè)為無效;其中,所述存儲(chǔ)控制器中包括第一緩存和第二緩存,所述第一緩存用于緩存第一類數(shù)據(jù),所述第二緩存用于緩存第二類數(shù)據(jù); 所述存儲(chǔ)控制器在確定當(dāng)前滿足所述第一類數(shù)據(jù)的寫入觸發(fā)條件時(shí),將所述第一緩存中的有效數(shù)據(jù)寫入所述存儲(chǔ)設(shè)備的存儲(chǔ)介質(zhì)。
8.如權(quán)利要求7所述的方法,其特征在于,所述標(biāo)識信息為存儲(chǔ)地址信息; 所述第一設(shè)備為需要寫入存儲(chǔ)設(shè)備的待存儲(chǔ)數(shù)據(jù)添加用于識別所述待存儲(chǔ)數(shù)據(jù)中的不同類型數(shù)據(jù)的標(biāo)識信息,包括: 所述第一設(shè)備基于不同存儲(chǔ)地址范圍對應(yīng)的數(shù)據(jù)類型,為待存儲(chǔ)數(shù)據(jù)中不同類型的數(shù)據(jù)確定存儲(chǔ)地址信息。
9.如權(quán)利要求7或8所述的方法,其特征在于,所述第二類數(shù)據(jù)包括所述應(yīng)用實(shí)際操作的用戶數(shù)據(jù),所述第一類數(shù)據(jù)包括用于記錄所述用戶數(shù)據(jù)的修改信息的日志數(shù)據(jù)和/或用于描述所述用戶數(shù)據(jù)的各種屬性信息的元數(shù)據(jù)。
10.一種進(jìn)行數(shù)據(jù)存儲(chǔ)的裝置,其特征在于,該裝置包括: 接收模塊,用于接收待存儲(chǔ)數(shù)據(jù),所述存儲(chǔ)控制器中設(shè)有第一緩存和第二緩存,所述第一緩存用于緩存第一類數(shù)據(jù),所述第二緩存用于緩存第二類數(shù)據(jù),所述第一類數(shù)據(jù)的更新頻率大于所述第二類數(shù)據(jù)的更新頻率; 識別模塊,用于識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù),并將識別的所述第一類數(shù)據(jù)寫入所述第一緩存中;若寫入的所述第一類數(shù)據(jù)中包含更新數(shù)據(jù),則將所述第一緩存中該更新數(shù)據(jù)對應(yīng)的更新前的數(shù)據(jù)設(shè)為無效; 寫入模塊,用于在確定當(dāng)前滿足所述第一類數(shù)據(jù)的寫入觸發(fā)條件時(shí),將所述第一緩存中的有效數(shù)據(jù)寫入存儲(chǔ)介質(zhì)。
11.如權(quán)利要求10所述的裝置,其特征在于,所述識別模塊具體用于: 根據(jù)所述待存儲(chǔ)數(shù)據(jù)中攜帶的標(biāo)識信息,以及標(biāo)識信息與數(shù)據(jù)類型的對應(yīng)關(guān)系,識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù);其中,所述標(biāo)識信息包括所述第一類數(shù)據(jù)中攜帶的第一標(biāo)識信息和/或所述第二類數(shù)據(jù)中攜帶的第二標(biāo)識信息。
12.如權(quán)利要求11所述的裝置,其特征在于,所述標(biāo)識信息為存儲(chǔ)地址信息: 所述識別模塊具體用于:根據(jù)所述待存儲(chǔ)數(shù)據(jù)中的存儲(chǔ)地址信息,以及不同存儲(chǔ)地址范圍對應(yīng)的數(shù)據(jù)類型,識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù)。
13.如權(quán)利要求10?12任一所述的裝置,其特征在于,所述寫入模塊具體用于:在所述第一緩存寫滿后,將所述第一緩存中的有效數(shù)據(jù)寫入所述存儲(chǔ)介質(zhì);和/或,在監(jiān)測到所述存儲(chǔ)設(shè)備發(fā)生斷電后,將所述第一緩存中的有效數(shù)據(jù)寫入所述存儲(chǔ)介質(zhì);和/或,將所述第一緩存中在設(shè)定時(shí)間長度內(nèi)未被更新的有效數(shù)據(jù)寫入所述存儲(chǔ)介質(zhì)。
14.如權(quán)利要求10?13任一所述的裝置,其特征在于,所述存儲(chǔ)介質(zhì)為閃存Flash芯片; 所述第一緩存和第二緩存分別為所述存儲(chǔ)控制器中的雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器DDR的不同部分;或者,所述第一緩存為相變存儲(chǔ)器PCM,所述第二緩存為DDR或PCM。
15.如權(quán)利要求10?14任一所述的裝置,其特征在于,所述第二類數(shù)據(jù)包括所述應(yīng)用實(shí)際操作的用戶數(shù)據(jù),所述第一類數(shù)據(jù)包括用于記錄所述用戶數(shù)據(jù)的修改信息的日志數(shù)據(jù)和/或用于描述所述用戶數(shù)據(jù)的各種屬性信息的元數(shù)據(jù)。
16.一種進(jìn)行數(shù)據(jù)存儲(chǔ)的系統(tǒng),其特征在于,該系統(tǒng)包括第一設(shè)備和存儲(chǔ)設(shè)備,所述存儲(chǔ)設(shè)備包括存儲(chǔ)控制器和存儲(chǔ)介質(zhì),所述存儲(chǔ)控制器中設(shè)有第一緩存和第二緩存,所述第一緩存用于緩存第一類數(shù)據(jù),所述第二緩存用于緩存第二類數(shù)據(jù),所述第一類數(shù)據(jù)的更新頻率大于第二類數(shù)據(jù)的更新頻率;其中, 所述第一設(shè)備,用于為需要寫入所述存儲(chǔ)設(shè)備的待存儲(chǔ)數(shù)據(jù)添加用于識別所述待存儲(chǔ)數(shù)據(jù)中的不同類型數(shù)據(jù)的標(biāo)識信息,將攜帶所述標(biāo)識信息的待存儲(chǔ)數(shù)據(jù)發(fā)送給所述存儲(chǔ)設(shè)備;其中,所述待存儲(chǔ)數(shù)據(jù)中包括第一類數(shù)據(jù)和第二類數(shù)據(jù); 所述存儲(chǔ)設(shè)備中的存儲(chǔ)控制器,用于基于接收的待存儲(chǔ)數(shù)據(jù)中攜帶的標(biāo)識信息,識別所述待存儲(chǔ)數(shù)據(jù)中的第一類數(shù)據(jù),并將識別的所述第一類數(shù)據(jù)寫入所述第一緩存中;若寫入的所述第一類數(shù)據(jù)中包含更新數(shù)據(jù),則將所述第一緩存中該更新數(shù)據(jù)對應(yīng)的更新前的數(shù)據(jù)設(shè)為無效;在確定當(dāng)前滿足所述第一類數(shù)據(jù)的寫入觸發(fā)條件時(shí),將所述第一緩存中的有效數(shù)據(jù)寫入所述存儲(chǔ)介質(zhì)。
17.如權(quán)利要求16所述的系統(tǒng),其特征在于,所述標(biāo)識信息為存儲(chǔ)地址信息; 所述第一設(shè)備具體用于:基于不同存儲(chǔ)地址范圍對應(yīng)的數(shù)據(jù)類型,為待存儲(chǔ)數(shù)據(jù)中不同類型的數(shù)據(jù)確定存儲(chǔ)地址信息。
18.如權(quán)利要求16或17所述的系統(tǒng),其特征在于,所述第二類數(shù)據(jù)包括所述應(yīng)用實(shí)際操作的用戶數(shù)據(jù),所述第一類數(shù)據(jù)包括用于記錄所述用戶數(shù)據(jù)的修改信息的日志數(shù)據(jù)和/或用于描述所述用戶數(shù)據(jù)的各種屬性信息的元數(shù)據(jù)。
【文檔編號】G06F12/08GK104461935SQ201410705705
【公開日】2015年3月25日 申請日期:2014年11月27日 優(yōu)先權(quán)日:2014年11月27日
【發(fā)明者】陳義全 申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
东源县| 宜宾县| 卢氏县| 织金县| 塔河县| 马山县| 芮城县| 高陵县| 武隆县| 黄大仙区| 古丈县| 昌都县| 颍上县| 容城县| 台东县| 满城县| 扎囊县| 镇平县| 伊宁市| 宣城市| 昌吉市| 龙泉市| 玛沁县| 青阳县| 栖霞市| 柯坪县| 辽源市| 辰溪县| 北碚区| 元谋县| 江达县| 南城县| 开鲁县| 长垣县| 修水县| 普安县| 莱州市| 中超| 张掖市| 武清区| 襄城县|