寫入數(shù)據(jù)的方法及裝置制造方法
【專利摘要】本發(fā)明實(shí)施例提供一種寫入數(shù)據(jù)的方法及裝置,該方法包括:在cache中確定第一有效數(shù)據(jù)塊,所述第一有效數(shù)據(jù)塊包括多個(gè)連續(xù)的有效扇區(qū),所述有效扇區(qū)保存有數(shù)據(jù);在所述第一有效數(shù)據(jù)塊中確定第二有效數(shù)據(jù)塊,所述第二有效數(shù)據(jù)塊是指包含臟扇區(qū)的有效數(shù)據(jù)塊;在所述第二有效數(shù)據(jù)塊中確定目標(biāo)有效數(shù)據(jù)塊,所述目標(biāo)有效數(shù)據(jù)塊中包含多個(gè)頁(yè),其中任意一個(gè)頁(yè)包含有臟扇區(qū);將所述目標(biāo)有效數(shù)據(jù)塊中的數(shù)據(jù)寫入固態(tài)硬盤。本發(fā)明實(shí)施例中,盡可能的減少了寫入SSD中的干凈扇區(qū),從而減少了寫入SSD的數(shù)據(jù)量,實(shí)現(xiàn)了SSD的使用壽命的延長(zhǎng)。
【專利說明】寫入數(shù)據(jù)的方法及裝置【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù),尤其涉及一種寫入數(shù)據(jù)的方法及裝置。
【背景技術(shù)】
[0002]當(dāng)前的固態(tài)硬盤(Solid State Device,簡(jiǎn)稱SSD)基本都是基于閃存的介質(zhì),一個(gè)SSD內(nèi)部,有多片閃存顆粒,每一個(gè)閃存顆粒內(nèi)部,又分為若干的塊(block),每個(gè)塊由分為若干的頁(yè)(page)。閃存介質(zhì)不能對(duì)任意比特(bit)位進(jìn)行0/1的相互轉(zhuǎn)換,只能按照一定的顆粒度進(jìn)行擦除和編程操作。其中,擦除的顆粒度為塊,是指將指定塊中所有的bit位全部設(shè)置為I ;編程的顆粒度為頁(yè),是指將頁(yè)中指定的bit為設(shè)置為O。頁(yè)是SSD內(nèi)部進(jìn)行讀和寫的最小粒度,但是SSD為了與硬盤驅(qū)動(dòng)器(Hard Disk Drive,簡(jiǎn)稱HDD)相兼容,SSD對(duì)外提供的接口是以扇區(qū)(sector )為訪問粒度的。
[0003]現(xiàn)有技術(shù)中,主機(jī)往SSD中寫數(shù)據(jù)的過程為:主機(jī)將要寫的數(shù)據(jù)先給存儲(chǔ)陣列,存儲(chǔ)陣列將該數(shù)據(jù)給存儲(chǔ)陣列中的高速緩存器(cache),cache向主機(jī)發(fā)出響應(yīng)后將數(shù)據(jù)寫入SSD0如果主機(jī)給存儲(chǔ)陣列的數(shù)據(jù)大小小于一個(gè)頁(yè)的大小,則cache可以執(zhí)行補(bǔ)齊,即補(bǔ)足一個(gè)頁(yè)的大小,然后寫入硬盤。
[0004]但是,采用現(xiàn)有技術(shù),由于SSD內(nèi)部讀寫粒度和對(duì)外提供的訪問粒度大小的差異,SSD會(huì)存在寫懲罰和寫放大次數(shù)過多的問題,具體地,對(duì)于主機(jī)的寫請(qǐng)求,上述cache補(bǔ)齊的過程叫做“寫懲罰”;寫放大是指寫入閃存的數(shù)據(jù)量大于寫入SSD的數(shù)據(jù)量,寫懲罰是一種特殊的寫放大。還有其他原因也會(huì)造成寫放大,例如寫入SSD的數(shù)據(jù)沒有按照閃存的“頁(yè)”對(duì)齊,會(huì)進(jìn)行補(bǔ)齊后再以 頁(yè)的粒度寫入閃存。也就是說采用現(xiàn)有技術(shù)會(huì)增加寫入SSD的數(shù)據(jù)量,從而會(huì)減少SSD的使用壽命。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例提供一種寫入數(shù)據(jù)的方法及裝置,用于解決由于寫放大和寫懲罰次數(shù)太多增加寫入SSD的數(shù)據(jù)量的問題。
[0006]本發(fā)明實(shí)施例第一方面提供一種寫入數(shù)據(jù)的方法,所述方法應(yīng)用于存儲(chǔ)設(shè)備中,所述存儲(chǔ)設(shè)備包括控制器和固態(tài)硬盤,所述控制器包括高速緩存器,所述高速緩存器包括多個(gè)頁(yè),每個(gè)頁(yè)包括多個(gè)扇區(qū),該方法包括:
[0007]在所述高速緩存器中確定第一有效數(shù)據(jù)塊,所述第一有效數(shù)據(jù)塊包括多個(gè)連續(xù)的有效扇區(qū),所述有效扇區(qū)保存有數(shù)據(jù);
[0008]在所述第一有效數(shù)據(jù)塊中確定第二有效數(shù)據(jù)塊,所述第二有效數(shù)據(jù)塊是指包含臟扇區(qū)的有效數(shù)據(jù)塊;
[0009]在所述第二有效數(shù)據(jù)塊中確定目標(biāo)有效數(shù)據(jù)塊,所述目標(biāo)有效數(shù)據(jù)塊中包含多個(gè)頁(yè),其中任意一個(gè)頁(yè)包含有臟扇區(qū);
[0010]將所述目標(biāo)有效數(shù)據(jù)塊中的數(shù)據(jù)寫入固態(tài)硬盤。
[0011]結(jié)合第一方面,在第一方面的第一種可能的實(shí)施方式中,所述在所述高速緩存器中確定第一有效數(shù)據(jù)塊,包括:
[0012]遍歷所述高速緩存器中預(yù)設(shè)指定區(qū)域的所有扇區(qū);
[0013]獲取最大連續(xù)有效數(shù)據(jù)塊作為所述第一有效數(shù)據(jù)塊,所述第一有效數(shù)據(jù)塊包括最多的連續(xù)有效扇區(qū)。
[0014]結(jié)合第一方面的第一種可能的實(shí)施方式,在第一方面的第二種可能的實(shí)施方式中,所述臟扇區(qū)中包括將要寫入固態(tài)硬盤的數(shù)據(jù),所述干凈扇區(qū)中包括已經(jīng)寫入固態(tài)硬盤的數(shù)據(jù)。
[0015]本發(fā)明實(shí)施例第二方面提供一種寫入數(shù)據(jù)的裝置,所述存儲(chǔ)設(shè)備包括控制器和固態(tài)硬盤,所述控制器包括高速緩存器,所述高速緩存器包括多個(gè)頁(yè),每個(gè)頁(yè)包括多個(gè)扇區(qū),包括:
[0016]確定模塊,用于在上述高速緩存器中確定第一有效數(shù)據(jù)塊,所述第一有效數(shù)據(jù)塊包括多個(gè)連續(xù)有效的扇區(qū),所述有線扇區(qū)保存有數(shù)據(jù);在所述第一有效數(shù)據(jù)塊中確定第二有效數(shù)據(jù)塊,所述第二有效數(shù)據(jù)塊是指包含臟扇區(qū)的有效數(shù)據(jù)塊;在所述第二有效數(shù)據(jù)塊中確定目標(biāo)有效數(shù)據(jù)塊,所述目標(biāo)有效數(shù)據(jù)塊中包含多個(gè)頁(yè),其中任意一個(gè)頁(yè)包含有臟扇區(qū);
[0017]寫入模塊,用于將所述目標(biāo)有效數(shù)據(jù)塊中的數(shù)據(jù)寫入固態(tài)硬盤。
[0018]結(jié)合第二方面,在第二方面的第一種可能的實(shí)施方式中,所述確定模塊,具體用于遍歷所述告訴緩存器中預(yù)設(shè)指定區(qū)域的所有扇區(qū);獲取最大連續(xù)有效數(shù)據(jù)塊作為所述第一有效數(shù)據(jù)塊,所述第一有效數(shù)據(jù)塊中包括最多的連續(xù)有效扇區(qū)。
[0019]結(jié)合第二方面的第一種可能的實(shí)施方式,在第二方面的第二種可能的實(shí)施方式中,所述臟扇區(qū)中包括將要寫入固態(tài)硬盤的數(shù)據(jù),所述干凈扇區(qū)中包括已經(jīng)寫入固態(tài)硬盤的數(shù)據(jù)。
[0020]本發(fā)明實(shí)施例中,在cache中確定包含連續(xù)有效扇區(qū)的第一有效數(shù)據(jù)塊,然后再第一有效數(shù)據(jù)塊中確定包含臟扇區(qū)的有效數(shù)據(jù)塊,最后在第二有效數(shù)據(jù)塊中確定出目標(biāo)數(shù)據(jù)塊,該目標(biāo)數(shù)據(jù)塊中包含的每個(gè)頁(yè)都有臟扇區(qū),將該目標(biāo)數(shù)據(jù)塊寫入SSD,這樣盡可能的減少了寫入SSD中的干凈扇區(qū),從而減少了寫入SSD的數(shù)據(jù)量,實(shí)現(xiàn)了 SSD的使用壽命的延長(zhǎng)。
【專利附圖】
【附圖說明】
[0021]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0022]圖1為本發(fā)明提供的寫入數(shù)據(jù)的方法實(shí)施例一的流程示意圖;
[0023]圖2為本發(fā)明提供的寫入數(shù)據(jù)的方法實(shí)施例二的扇區(qū)結(jié)構(gòu)示意圖;
[0024]圖3為本發(fā)明提供的寫入數(shù)據(jù)的方法實(shí)施例三的扇區(qū)結(jié)構(gòu)示意圖;
[0025]圖4為本發(fā)明提供的寫入數(shù)據(jù)的方法實(shí)施例四的扇區(qū)結(jié)構(gòu)示意圖;
[0026]圖5為本發(fā)明提供的寫入數(shù)據(jù)的方法實(shí)施例五的扇區(qū)結(jié)構(gòu)示意圖;
[0027]圖6為本發(fā)明提供的寫入數(shù)據(jù)的裝置實(shí)施例一的結(jié)構(gòu)示意圖;[0028]圖7為本發(fā)明提供的存儲(chǔ)設(shè)備實(shí)施例一的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0029]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0030]本發(fā)明實(shí)施例應(yīng)用于存儲(chǔ)設(shè)備中,該存儲(chǔ)設(shè)備包括控制器和SSD,該控制器包括cache, cache中又包含多個(gè)頁(yè),每個(gè)頁(yè)包含多個(gè)扇區(qū)。其中,扇區(qū)中如果保存有數(shù)據(jù),則該扇區(qū)是有效扇區(qū),如果沒有保存數(shù)據(jù),則是無效扇區(qū)。本發(fā)明實(shí)施例中,有效扇區(qū)包含臟扇區(qū)和干凈扇區(qū),其中,臟扇區(qū)中包括將要寫入SSD的數(shù)據(jù),干凈扇區(qū)中包括已經(jīng)寫入SSD的數(shù)據(jù)。
[0031]圖1為本發(fā)明提供的寫入數(shù)據(jù)的方法實(shí)施例一的流程示意圖,圖2為本發(fā)明提供的寫入數(shù)據(jù)的方法實(shí)施例二的扇區(qū)結(jié)構(gòu)示意圖,如圖1所示,該方法包括:
[0032]S101、在cache中確定第一有效數(shù)據(jù)塊。該第一有效數(shù)據(jù)塊包括多個(gè)連續(xù)的有效扇區(qū),該有效扇區(qū)中保存有數(shù)據(jù)。cache中包含很多的扇區(qū),可以將連續(xù)的有效扇區(qū)劃分為一個(gè)有效數(shù)據(jù)塊,在cache中可以確定出一個(gè)或多個(gè)第一有效數(shù)據(jù)塊。
[0033]具體地,臟扇區(qū)表示該扇區(qū)中的數(shù)據(jù)是實(shí)際要寫入SSD的,該臟扇區(qū)中的數(shù)據(jù)與SSD中對(duì)應(yīng)位置當(dāng)前的數(shù)據(jù)不同,臟扇區(qū)在被擦除前不能寫入新的數(shù)據(jù)。干凈扇區(qū)中的數(shù)據(jù)是主機(jī)從SSD中讀取過的數(shù)據(jù),留在cache中,因而干凈扇區(qū)中的數(shù)據(jù)與SSD中對(duì)應(yīng)位置的數(shù)據(jù)相同。臟扇區(qū)和干凈扇區(qū)都為有效扇區(qū)。無效扇區(qū)可以為沒有任何內(nèi)容的空白扇區(qū),即主機(jī)沒有從SSD中讀取過對(duì)應(yīng)扇區(qū)的數(shù)據(jù),cache中該無效扇區(qū)內(nèi)當(dāng)前沒有任何數(shù)據(jù)。確定出的第一有效數(shù)據(jù)塊中都不包含無效扇區(qū)。
[0034]如圖2所示,假設(shè)一個(gè)頁(yè)包含8各扇區(qū),其中,每一個(gè)方格代表一個(gè)扇區(qū),空白的方格表示干凈扇區(qū),“斜紋”陰影的方格表示臟扇區(qū),“點(diǎn)”陰影的方格表示無效扇區(qū),ml-m8這8個(gè)扇區(qū)表示一個(gè)頁(yè),nl-n8這8各扇區(qū)表示另一個(gè)頁(yè),這兩個(gè)頁(yè)是SSD中連續(xù)的兩個(gè)頁(yè)??梢钥闯鰉5-n3連續(xù)扇區(qū)構(gòu)成的數(shù)據(jù)塊M中包含7個(gè)連續(xù)有效數(shù)據(jù)塊,其中沒有無效扇區(qū),可以被確定為上述第一有效數(shù)據(jù)塊。
[0035]S102、在上述第一有效數(shù)據(jù)塊中確定第二有效數(shù)據(jù)塊,該第二有效數(shù)據(jù)塊是指包含臟扇區(qū)的有效數(shù)據(jù)塊。
[0036]也就是,若SlOl中確定多個(gè)第一有效數(shù)據(jù)塊,將其中不包含臟扇區(qū)的第一有效數(shù)據(jù)塊剔除,將剩下的第一有效數(shù)據(jù)塊作為第二有效數(shù)據(jù)塊。
[0037]S103、在上述第二有效數(shù)據(jù)塊中確定目標(biāo)有效數(shù)據(jù)塊。該目標(biāo)有效數(shù)據(jù)塊中包含多個(gè)頁(yè),其中任意一個(gè)頁(yè)包含有臟扇區(qū)。
[0038]每個(gè)上述第二有效數(shù)據(jù)塊中可以包含多個(gè)頁(yè),如果這多個(gè)頁(yè)中存在有所有扇區(qū)都為干凈扇區(qū)的頁(yè),則將這種頁(yè)從上述第二有效數(shù)據(jù)塊中剔除,形成新的有效數(shù)據(jù)塊,作為目標(biāo)有效數(shù)據(jù)塊,這樣目標(biāo)有效數(shù)據(jù)塊中包含的每個(gè)頁(yè)中都包含臟扇區(qū)。
[0039]S104、將上述目標(biāo)數(shù)據(jù)塊中的數(shù)據(jù)寫入SSD。
[0040]本實(shí)施例中,在cache中確定至少一個(gè)第一有效數(shù)據(jù)塊,然后剔除只包含干凈扇區(qū)的第一有效數(shù)據(jù)塊,再進(jìn)一步剔除只包含干凈扇區(qū)的頁(yè),最后得到目標(biāo)數(shù)據(jù)塊,將目標(biāo)數(shù)據(jù)塊寫入SSD,這樣盡可能的減少了寫入SSD中的干凈扇區(qū),從而減少了寫入SSD的數(shù)據(jù)量,實(shí)現(xiàn)了 SSD的使用壽命的延長(zhǎng)。
[0041]圖3為本發(fā)明提供的寫入數(shù)據(jù)的方法實(shí)施例三的扇區(qū)結(jié)構(gòu)示意圖,圖4為本發(fā)明提供的寫入數(shù)據(jù)的方法實(shí)施例四的扇區(qū)結(jié)構(gòu)示意圖,圖5為本發(fā)明提供的寫入數(shù)據(jù)的方法實(shí)施例五的扇區(qū)結(jié)構(gòu)示意圖。如圖3、圖4、圖5所示,為連續(xù)的6個(gè)頁(yè),假設(shè)一個(gè)頁(yè)包含8各扇區(qū),其中,每一個(gè)方格代表一個(gè)扇區(qū),空白的方格表不干凈扇區(qū),“斜紋”陰影的方格表示臟扇區(qū),“點(diǎn)”陰影的方格表示無效扇區(qū)。
[0042]進(jìn)一步地,上述在上述cache中確定第一有效數(shù)據(jù)塊,具體為:遍歷上述cache中預(yù)設(shè)指定區(qū)域的所有扇區(qū);獲取最大連續(xù)有效數(shù)據(jù)塊作為上述第一有效數(shù)據(jù)塊,上述最大連續(xù)有效數(shù)據(jù)塊包括最多的連續(xù)有效扇區(qū)。這里最大連續(xù)有效數(shù)據(jù)塊是指將盡可能多的有效扇區(qū)包含進(jìn)來。
[0043]需要說明的是,cache的容量一般都比較大,為了減小管理開銷,cache不會(huì)直接管理到頁(yè)或扇區(qū),而是會(huì)管理一個(gè)更大的粒度,例如可以是管理一個(gè)頁(yè)面組(page group),上述預(yù)設(shè)指定區(qū)域是指采用預(yù)設(shè)算法選擇出的page group。
[0044]舉例說明上述流程,如圖3所示,指定區(qū)域?yàn)閳D3所示的6個(gè)連續(xù)的頁(yè),首先遍歷這48個(gè)扇區(qū),獲取到3個(gè)最大連續(xù)有效數(shù)據(jù)塊,作為上述第一有效數(shù)據(jù)塊,分別是數(shù)據(jù)塊A、B、C,數(shù)據(jù)塊A包括a3-a6共4個(gè)扇區(qū)、數(shù)據(jù)塊B包括a8_d3共20個(gè)、數(shù)據(jù)塊C包括d6_f8共19個(gè)扇區(qū),可以看出這3第一有效數(shù)據(jù)塊都是包括了最多的連續(xù)有效扇區(qū),其中沒有無效扇區(qū)。然后,在上述3個(gè)第一有效數(shù)據(jù)塊中確定第二有效數(shù)據(jù)塊,即將上述3個(gè)最大連續(xù)有效數(shù)據(jù)塊中所有扇區(qū)都為干凈扇區(qū)的數(shù)據(jù)塊剔除,即剔除數(shù)據(jù)塊A,因?yàn)閍3_a6都為干凈扇區(qū),如圖4所示,剩余的數(shù)據(jù)塊B和C作為第二有效數(shù)據(jù)塊,數(shù)據(jù)塊B和C中都包含有臟扇區(qū)。進(jìn)一步對(duì)第二有效數(shù)據(jù)塊B和C進(jìn)行處理,以頁(yè)為單位進(jìn)行處理,剔除第二有效數(shù)據(jù)塊中所有扇區(qū)都為干凈扇區(qū)的頁(yè),數(shù)據(jù)塊B和C都跨越了多個(gè)頁(yè),如圖4所示,數(shù)據(jù)塊B跨越了 4個(gè)頁(yè),第一個(gè)頁(yè)al-a8中,只有a8屬于該數(shù)據(jù)塊B,a8為干凈的扇區(qū),將a8剔除,第二個(gè)頁(yè)cl_c8都為干凈扇區(qū),將cl_c8這整個(gè)頁(yè)刪除,獲取目標(biāo)數(shù)據(jù)塊,如圖5所示,處理后,原數(shù)據(jù)塊B現(xiàn)在切成數(shù)據(jù)塊D和數(shù)據(jù)塊E。同理,數(shù)據(jù)塊C跨越了 3個(gè)頁(yè),但是所跨越的這3個(gè)頁(yè)的部分都包含臟扇區(qū),d6-d8中d8為臟扇區(qū),el-e8中el為臟扇區(qū),fl_f8中fl、f2、f3、f8為臟扇區(qū),于是最后得到的目標(biāo)連續(xù)有效數(shù)據(jù)塊F與數(shù)據(jù)塊C 一樣,即沒有剔除數(shù)據(jù)塊C中的扇區(qū)。這樣確定出的目標(biāo)數(shù)據(jù)塊為數(shù)據(jù)塊D、E、F,最后將數(shù)據(jù)塊D、E、F中的數(shù)據(jù)都寫入SSD。
[0045]需要說明的是每個(gè)數(shù)據(jù)塊在寫入SSD時(shí)都會(huì)產(chǎn)生一個(gè)輸入/輸出(Input/Output,簡(jiǎn)稱1/0),本發(fā)明實(shí)施例中一個(gè)I/O表示一次寫請(qǐng)求或讀請(qǐng)求。
[0046]對(duì)于cache中的預(yù)設(shè)指定區(qū)域,例如圖3所示的預(yù)設(shè)指定區(qū)域,如果采用現(xiàn)有技術(shù),一種可以是簡(jiǎn)單的將臟扇區(qū)直接寫入SSD,這樣的話就會(huì)產(chǎn)生5個(gè)I/O:將b6寫入SSD產(chǎn)生一個(gè)I/O、將d2寫入SSD產(chǎn)生一個(gè)I/O、將d8-el寫入SSD產(chǎn)生一個(gè)I/O、將f l_f3寫入SSD產(chǎn)生一個(gè)I/O、將f8 —個(gè)寫入SSD產(chǎn)生一個(gè)1/0,而且這5個(gè)I/O寫入SSD時(shí)都需要補(bǔ)齊,會(huì)產(chǎn)生寫懲罰,d2和d8-el這兩個(gè)I/O可能會(huì)在寫入SSD產(chǎn)生不必要的垃圾頁(yè),即會(huì)產(chǎn)生寫放大,同樣,fl-f3和f8這兩個(gè)I/O寫入時(shí)也會(huì)產(chǎn)生寫放大。[0047]本實(shí)施例中,盡可能的減少了寫入SSD中的干凈扇區(qū),實(shí)現(xiàn)了寫放大和寫懲罰減少,從而減少了寫入SSD的數(shù)據(jù)量,實(shí)現(xiàn)了 SSD的使用壽命的延長(zhǎng),同時(shí)還可以減少I/O的產(chǎn)生,減小了整體開銷。
[0048]圖6為本發(fā)明提供的寫入數(shù)據(jù)的裝置實(shí)施例一的結(jié)構(gòu)示意圖,該裝置應(yīng)用與存儲(chǔ)設(shè)備中,該存儲(chǔ)設(shè)備包括控制器和固態(tài)硬盤,該控制器包括cache,該cache包括多個(gè)頁(yè),每個(gè)頁(yè)包括多個(gè)扇區(qū)。如圖6所示,該裝置包括:確定模塊601和寫入模塊602,其中:
[0049]確定模塊601,用于在上述高速緩存器中確定第一有效數(shù)據(jù)塊,所述第一有效數(shù)據(jù)塊包括多個(gè)連續(xù)有效的扇區(qū),所述有線扇區(qū)保存有數(shù)據(jù);在所述第一有效數(shù)據(jù)塊中確定第二有效數(shù)據(jù)塊,所述第二有效數(shù)據(jù)塊是指包含臟扇區(qū)的有效數(shù)據(jù)塊;在所述第二有效數(shù)據(jù)塊中確定目標(biāo)有效數(shù)據(jù)塊,所述目標(biāo)有效數(shù)據(jù)塊中包含多個(gè)頁(yè),其中任意一個(gè)頁(yè)包含有臟扇區(qū)。
[0050]寫入模塊602,用于將所述目標(biāo)有效數(shù)據(jù)塊中的數(shù)據(jù)寫入固態(tài)硬盤。
[0051]在上述實(shí)施例的基礎(chǔ)上,確定模塊601,具體用于遍歷所述告訴緩存器中預(yù)設(shè)指定區(qū)域的所有扇區(qū);獲取最大連續(xù)有效數(shù)據(jù)塊作為所述第一有效數(shù)據(jù)塊,所述第一有效數(shù)據(jù)塊中包括最多的連續(xù)有效扇區(qū)。。
[0052]需要說明的是,所述臟扇區(qū)中包括將要寫入固態(tài)硬盤的數(shù)據(jù),所述干凈扇區(qū)中包括已經(jīng)寫入固態(tài)硬盤的數(shù)據(jù)。
[0053]上述各模塊用于執(zhí)行前述方法實(shí)施例,其實(shí)現(xiàn)原理和技術(shù)效果類似,在此不再贅述。
[0054]圖7為本發(fā)明提供的存儲(chǔ)設(shè)備實(shí)施例一的結(jié)構(gòu)示意圖,該存儲(chǔ)設(shè)備110包括:處理器701、存儲(chǔ)器702、系統(tǒng)總線(簡(jiǎn)稱總線)703和通信接口 704,處理器701、存儲(chǔ)器702和通信接口 704之間通過系統(tǒng)總線703連接并完成相互間的通信。
[0055]處理器701可以為中央處理單元。存儲(chǔ)器702用于存儲(chǔ)指令信息。通信接口 704用于與外部設(shè)備進(jìn)行通信。
[0056]具體實(shí)現(xiàn)過程中,處理器701運(yùn)行存儲(chǔ)器702中的指令信息,可以執(zhí)行圖1所述的
方法流程。
[0057]具體地,該處理器701,用于在上述高速緩存器中確定第一有效數(shù)據(jù)塊,所述第一有效數(shù)據(jù)塊包括多個(gè)連續(xù)有效的扇區(qū),所述有線扇區(qū)保存有數(shù)據(jù);在所述第一有效數(shù)據(jù)塊中確定第二有效數(shù)據(jù)塊,所述第二有效數(shù)據(jù)塊是指包含臟扇區(qū)的有效數(shù)據(jù)塊;在所述第二有效數(shù)據(jù)塊中確定目標(biāo)有效數(shù)據(jù)塊,所述目標(biāo)有效數(shù)據(jù)塊中包含多個(gè)頁(yè),其中任意一個(gè)頁(yè)包含有臟扇區(qū)。還用于將所述目標(biāo)有效數(shù)據(jù)塊中的數(shù)據(jù)寫入固態(tài)硬盤。
[0058]在上述實(shí)施例的基礎(chǔ)上,處理器701,具體用于遍歷所述告訴緩存器中預(yù)設(shè)指定區(qū)域的所有扇區(qū);獲取最大連續(xù)有效數(shù)據(jù)塊作為所述第一有效數(shù)據(jù)塊,所述第一有效數(shù)據(jù)塊中包括最多的連續(xù)有效扇區(qū)。
[0059]其中,所述臟扇區(qū)中包括將要寫入固態(tài)硬盤的數(shù)據(jù),所述干凈扇區(qū)中包括已經(jīng)寫入固態(tài)硬盤的數(shù)據(jù)。
[0060]本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述各方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。該程序在執(zhí)行時(shí),執(zhí)行包括上述各方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:R0M、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0061]最后應(yīng)說明的是:以上各實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。
【權(quán)利要求】
1.一種寫入數(shù)據(jù)的方法,所述方法應(yīng)用于存儲(chǔ)設(shè)備中,所述存儲(chǔ)設(shè)備包括控制器和固態(tài)硬盤,所述控制器包括高速緩存器,所述高速緩存器包括多個(gè)頁(yè),每個(gè)頁(yè)包括多個(gè)扇區(qū),其特征在于,所述方法包括: 在所述高速緩存器中確定第一有效數(shù)據(jù)塊,所述第一有效數(shù)據(jù)塊包括多個(gè)連續(xù)的有效扇區(qū),所述有效扇區(qū)保存有數(shù)據(jù); 在所述第一有效數(shù)據(jù)塊中確定第二有效數(shù)據(jù)塊,所述第二有效數(shù)據(jù)塊是指包含臟扇區(qū)的有效數(shù)據(jù)塊; 在所述第二有效數(shù)據(jù)塊中確定目標(biāo)有效數(shù)據(jù)塊,所述目標(biāo)有效數(shù)據(jù)塊中包含多個(gè)頁(yè),其中任意一個(gè)頁(yè)包含有臟扇區(qū); 將所述目標(biāo)有效數(shù)據(jù)塊中的數(shù)據(jù)寫入固態(tài)硬盤。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述在所述高速緩存器中確定第一有效數(shù)據(jù)塊,包括: 遍歷所述高速緩存器中預(yù)設(shè)指定區(qū)域的所有扇區(qū); 獲取最大連續(xù)有效數(shù)據(jù)塊作為所述第一有效數(shù)據(jù)塊,所述第一有效數(shù)據(jù)塊包括最多的連續(xù)有效扇區(qū)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述臟扇區(qū)中包括將要寫入固態(tài)硬盤的數(shù)據(jù),所述干凈扇區(qū)中包括已經(jīng)寫入固態(tài)硬盤的數(shù)據(jù)。
4.一種寫入數(shù)據(jù)的裝置,該裝置應(yīng)用于存儲(chǔ)設(shè)備中,所述存儲(chǔ)設(shè)備包括控制器和固態(tài)硬盤,所述控制器包括高速緩存器,所述高速緩存器包括多個(gè)頁(yè),每個(gè)頁(yè)包括多個(gè)扇區(qū),其特征在于,包括: 確定模塊,用于在上述高速緩存器中確定第一有效數(shù)據(jù)塊,所述第一有效數(shù)據(jù)塊包括多個(gè)連續(xù)有效的扇區(qū),所述有線扇區(qū)保存有數(shù)據(jù);在所述第一有效數(shù)據(jù)塊中確定第二有效數(shù)據(jù)塊,所述第二有效數(shù)據(jù)塊是指包含臟扇區(qū)的有效數(shù)據(jù)塊;在所述第二有效數(shù)據(jù)塊中確定目標(biāo)有效數(shù)據(jù)塊,所述目標(biāo)有效數(shù)據(jù)塊中包含多個(gè)頁(yè),其中任意一個(gè)頁(yè)包含有臟扇區(qū); 寫入模塊,用于將所述目標(biāo)有效數(shù)據(jù)塊中的數(shù)據(jù)寫入固態(tài)硬盤。
5.根據(jù)權(quán)利要求4所述的裝置,其特征在于,所述確定模塊,具體用于遍歷所述告訴緩存器中預(yù)設(shè)指定區(qū)域的所有扇區(qū);獲取最大連續(xù)有效數(shù)據(jù)塊作為所述第一有效數(shù)據(jù)塊,所述第一有效數(shù)據(jù)塊中包括最多的連續(xù)有效扇區(qū)。
6.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述臟扇區(qū)中包括將要寫入固態(tài)硬盤的數(shù)據(jù),所述干凈扇區(qū)中包括已經(jīng)寫入固態(tài)硬盤的數(shù)據(jù)。
【文檔編號(hào)】G06F12/08GK103513941SQ201310495179
【公開日】2014年1月15日 申請(qǐng)日期:2013年10月18日 優(yōu)先權(quán)日:2013年10月18日
【發(fā)明者】龔濤, 梁劍 申請(qǐng)人:華為技術(shù)有限公司