一種基于ssd的數(shù)據(jù)處理方法及電子設(shè)備的制作方法
【專利摘要】本申請?zhí)峁┮环N基于固態(tài)硬盤SSD的數(shù)據(jù)處理方法,應用于一電子設(shè)備,預先依據(jù)數(shù)據(jù)的訪問程度確定SSD的存儲單元的各個分區(qū),并建立數(shù)據(jù)的訪問程度與各個分區(qū)的對應關(guān)系,其中,各個分區(qū)存儲訪問程度不同的數(shù)據(jù),該方法包括:獲取一待寫入數(shù)據(jù),確定待寫入數(shù)據(jù)的訪問程度,基于數(shù)據(jù)的訪問程度與各個分區(qū)的對應關(guān)系,將待寫入數(shù)據(jù)寫入與所確定出的數(shù)據(jù)的訪問程度對應的分區(qū)中。本申請還提供了一種電子設(shè)備。本申請?zhí)峁┑姆椒半娮釉O(shè)備,在寫入數(shù)據(jù)時,可直接將整個閃存塊擦除再重新寫入數(shù)據(jù),或者只需復制少量的有效頁,擦除閃存塊后,將少量的有效頁和待寫入數(shù)據(jù)寫入,這使得數(shù)據(jù)的寫入速度提高,相應的,縮短了數(shù)據(jù)寫入過程占用的時間。
【專利說明】—種基于SSD的數(shù)據(jù)處理方法及電子設(shè)備
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理【技術(shù)領(lǐng)域】,尤其涉及一種基于SSD的數(shù)據(jù)處理方法及電子設(shè)備。
【背景技術(shù)】
[0002]固態(tài)硬盤(Solid State Disk,SSD)是用固態(tài)電子存儲芯片陣列制成的硬盤,由控制器和存儲單元兩部分組成,存儲單元負責存儲數(shù)據(jù),控制單元負責讀取、寫入數(shù)據(jù)。SSD根據(jù)存儲介質(zhì)分為兩種,一種是基于閃存的SSD,另一種是基于DRAM的SSD。通常所說的SSD指的是基于閃存的SSD,以下所稱的SSD均為基于閃存的SSD。
[0003]SSD的存儲單元一般劃分為多個存儲塊,每個存儲塊由多個頁構(gòu)成。SSD的特殊性在于數(shù)據(jù)的寫入是以頁為單位進行的,而擦除是以塊為單位進行的,當依據(jù)用戶操作通過某個具體的寫數(shù)據(jù)指令向SSD中寫入新數(shù)據(jù)或?qū)σ汛嬖跀?shù)據(jù)進行修改時,需要先將閃存塊上的所有數(shù)據(jù)讀入緩存,擦除塊,緩存里更新整個塊的數(shù)據(jù)再把新的數(shù)據(jù)寫回去,即,把原塊中的有效數(shù)據(jù)和新數(shù)據(jù)或要修改的數(shù)據(jù)寫回去。SSD的這種erase-before-write特性,即先擦除后寫入特性,使得SSD寫入速度下降,寫入過程占用時間較長。
【發(fā)明內(nèi)容】
[0004]本發(fā)明提供了一種基于SSD的數(shù)據(jù)存儲方法及電子設(shè)備,用以解決現(xiàn)有技術(shù)中SSD寫入速度下降,寫入過程占用時間較長的問題,其技術(shù)方案如下:
[0005]一種基于固態(tài)硬盤SSD的數(shù)據(jù)處理方法,應用于一電子設(shè)備,預先依據(jù)數(shù)據(jù)的訪問程度確定SSD的存儲單元的各個分區(qū),并建立數(shù)據(jù)的訪問程度與各個分區(qū)的對應關(guān)系,其中,所述各個分區(qū)存儲訪問程度不同的數(shù)據(jù),該方法包括:
[0006]獲取一待寫入數(shù)據(jù);
[0007]確定待寫入數(shù)據(jù)的訪問程度;
[0008]基于所述數(shù)據(jù)的訪問程度與各個分區(qū)的對應關(guān)系,將所述待寫入數(shù)據(jù)寫入與所確定出的數(shù)據(jù)的訪問程度對應的分區(qū)中。
[0009]優(yōu)選的,上述的數(shù)據(jù)處理方法還包括:
[0010]在接收到垃圾回收指令時,針對所述各個分區(qū)進行垃圾回收。
[0011]優(yōu)選的,上述的數(shù)據(jù)處理方法還包括:
[0012]獲取各個分區(qū)的磨損情況,根據(jù)所述各個分區(qū)的磨損情況,調(diào)整與分區(qū)對應的數(shù)據(jù)的訪問程度。
[0013]優(yōu)選的,上述的數(shù)據(jù)處理方法還包括:
[0014]獲取所述各個分區(qū)的空閑區(qū)域的大小,依據(jù)所述各個分區(qū)的空閑區(qū)域的大小調(diào)整所述各個分區(qū)的空間的大小。
[0015]優(yōu)選的,上述的數(shù)據(jù)處理方法還包括:
[0016]當所述SSD的存儲單元存在空閑的連續(xù)區(qū)域,且所述空閑的連續(xù)區(qū)域存在于至少兩個分區(qū)中時,調(diào)整所述至少兩個分區(qū)以使所述空閑區(qū)域存在于一個分區(qū)中。
[0017]優(yōu)選地,所述確定待寫入數(shù)據(jù)的訪問程度具體為:
[0018]根據(jù)所述待寫入數(shù)據(jù)的擴展名確定所述待寫入數(shù)據(jù)的訪問程度:如果所述擴展名指示所述待寫入數(shù)據(jù)為臨時文件,則確定所述待寫入數(shù)據(jù)的訪問程度為低頻讀低頻寫;如果所述擴展名指示所述待寫入數(shù)據(jù)為非臨時文件,則確定所述待寫入數(shù)據(jù)的訪問程度為高
頻讀聞頻與。
[0019]優(yōu)選地,所述確定待寫入數(shù)據(jù)的訪問程度具體為:
[0020]根據(jù)預先統(tǒng)計出的數(shù)據(jù)的讀寫次數(shù)確定所述待寫入數(shù)據(jù)的訪問程度:
[0021]如果待寫入數(shù)據(jù)的讀次數(shù)大于第一設(shè)定閾值,且寫次數(shù)大于第二設(shè)定閾值,則確定所述待寫入數(shù)據(jù)的訪問程度為高頻讀高頻寫;
[0022]如果待寫入數(shù)據(jù)的讀次數(shù)大于第一設(shè)定閾值,且寫次數(shù)小于第三設(shè)定閾值,則確定所述待寫入數(shù)據(jù)的訪問程度為高頻讀低頻寫;
[0023]如果待寫入數(shù)據(jù)的讀次數(shù)小于第四設(shè)定閾值,且寫次數(shù)大于第二設(shè)定閾值,則確定所述待寫入數(shù)據(jù)的訪問程度為低頻讀高頻寫;
[0024]如果待寫入數(shù)據(jù)的讀次數(shù)小于第四設(shè)定閾值,且寫次數(shù)小于第三設(shè)定閾值,則確定所述待寫入數(shù)據(jù)的訪問程度為低頻讀低頻寫。
[0025]一種電子設(shè)備,預先依據(jù)數(shù)據(jù)的訪問程度確定SSD的存儲單元的各個分區(qū),并建立數(shù)據(jù)的訪問程度與各個分區(qū)的對應關(guān)系,其中,所述各個分區(qū)存儲訪問程度不同的數(shù)據(jù),包括:獲取模塊,確定模塊和寫入模塊;
[0026]所述獲取模塊,用于獲取一待寫入數(shù)據(jù);
[0027]所述確定模塊,用于確定所述獲取模塊獲取的待寫入數(shù)據(jù)的訪問程度;
[0028]所述寫入模塊,用于基于所述數(shù)據(jù)的訪問程度與各個分區(qū)的對應關(guān)系,將所述獲取模塊獲取的待寫入數(shù)據(jù)寫入與所述確定模塊確定出的數(shù)據(jù)的訪問程度對應的分區(qū)中。
[0029]優(yōu)選的,上述的電子設(shè)備還包括:垃圾回收模塊;
[0030]所述垃圾回收模塊,用于在接收到垃圾回收指令時,針對所述各個分區(qū)進行垃圾回收。
[0031]優(yōu)選的,上述的電子設(shè)備還包括:第一調(diào)整模塊;
[0032]所述第一調(diào)整模塊,用于獲取各個分區(qū)的磨損情況,根據(jù)獲取的所述各個分區(qū)的磨損情況,調(diào)整與分區(qū)對應的數(shù)據(jù)的訪問程度。
[0033]優(yōu)選的,上述的電子設(shè)備還包括:第二調(diào)整模塊;
[0034]所述第二調(diào)整模塊,用于獲取各個分區(qū)的空閑區(qū)域的大小,依據(jù)獲取的所述各個分區(qū)的空閑區(qū)域的大小調(diào)整所述各個分區(qū)的空間的大小。
[0035]優(yōu)選的,上述的電子設(shè)備還包括:第三調(diào)整模塊;
[0036]所述第三調(diào)整模塊,用于當所述SSD的存儲單元存在空閑的連續(xù)區(qū)域,且所述空閑的連續(xù)區(qū)域存在于至少兩個分區(qū)中時,調(diào)整所述至少兩個分區(qū)以使所述空閑區(qū)域存在于一個分區(qū)中。
[0037]優(yōu)選地,所述確定模塊包括:第一確定子模塊;
[0038]所述第一確定子模塊,用于根據(jù)所述待寫入數(shù)據(jù)的擴展名確定所述待寫入數(shù)據(jù)的訪問程度:如果所述擴展名指示所述待寫入數(shù)據(jù)為臨時文件,則確定所述待寫入數(shù)據(jù)的訪問程度為低頻讀低頻寫;如果所述擴展名指示所述待寫入數(shù)據(jù)為非臨時文件,則確定所述待寫入數(shù)據(jù)的訪問程度為高頻讀高頻寫。
[0039]優(yōu)選地,所述確定模塊包括:第二確定子模塊;
[0040]所述第二確定子模塊,用于根據(jù)預先統(tǒng)計出的數(shù)據(jù)的讀寫次數(shù)確定所述待寫入數(shù)據(jù)的訪問程度:
[0041]如果待寫入數(shù)據(jù)的讀次數(shù)大于第一設(shè)定閾值,且寫次數(shù)大于第二設(shè)定閾值,則確定所述待寫入數(shù)據(jù)的訪問程度為高頻讀高頻寫;
[0042]如果待寫入數(shù)據(jù)的讀次數(shù)大于第一設(shè)定閾值,且寫次數(shù)小于第三設(shè)定閾值,則確定所述待寫入數(shù)據(jù)的訪問程度為高頻讀低頻寫;
[0043]如果待寫入數(shù)據(jù)的讀次數(shù)小于第四設(shè)定閾值,且寫次數(shù)大于第二設(shè)定閾值,則確定所述待寫入數(shù)據(jù)的訪問程度為低頻讀高頻寫;
[0044]如果待寫入數(shù)據(jù)的讀次數(shù)小于第四設(shè)定閾值,且寫次數(shù)小于第三設(shè)定閾值,則確定所述待寫入數(shù)據(jù)的訪問程度為低頻讀低頻寫。
[0045]本發(fā)明提供的數(shù)據(jù)處理方法及電子設(shè)備,將待寫入數(shù)據(jù)依據(jù)數(shù)據(jù)的訪問程度寫入SSD對應的分區(qū)中,當依據(jù)用戶操作通過某個具體的寫數(shù)據(jù)指令向SSD中寫入數(shù)據(jù)時,由于具有相同訪問程度的數(shù)據(jù)存儲在同一分區(qū)中,因此,需要寫入數(shù)據(jù)的閃存塊中可能并不存在有效頁,或者存在較少的有效頁,因此,當向SSD寫入數(shù)據(jù)時,可直接將整個閃存塊擦除再重新寫入數(shù)據(jù),或者只需復制少量的有效頁,擦除閃存塊后,將少量的有效頁和待寫入數(shù)據(jù)寫入,這使得數(shù)據(jù)的寫入速度提高,相應的,縮短了數(shù)據(jù)寫入過程占用的時間。
【專利附圖】
【附圖說明】
[0046]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
[0047]圖1為本發(fā)明實施例一提供的基于固態(tài)硬盤SSD的數(shù)據(jù)處理方法的流程示意圖;
[0048]圖2為本發(fā)明實施例二提供的基于固態(tài)硬盤SSD的數(shù)據(jù)處理方法的流程示意圖;
[0049]圖3為本發(fā)明實施例三提供的基于固態(tài)硬盤SSD的數(shù)據(jù)處理方法的流程示意圖;
[0050]圖4為本發(fā)明實施例四提供的電子設(shè)備的結(jié)構(gòu)示意圖;
[0051]圖5為本發(fā)明實施例五提供的電子設(shè)備的結(jié)構(gòu)示意圖;
[0052]圖6為本發(fā)明實施例六提供的電子設(shè)備的結(jié)構(gòu)示意圖。
【具體實施方式】
[0053]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0054]實施例一
[0055]本發(fā)明實施例一提供了一種基于固態(tài)硬盤SSD的數(shù)據(jù)處理方法,應用于一電子設(shè)備,預先依據(jù)數(shù)據(jù)的訪問程度確定SSD的存儲單元的各個分區(qū),并建立數(shù)據(jù)的訪問程度與各個分區(qū)的對應關(guān)系,其中,各個分區(qū)存儲訪問程度不同的數(shù)據(jù),圖1為該方法的流程示意圖,該方法可以包括:
[0056]SlOl:獲取一待寫入數(shù)據(jù)。
[0057]S102:確定待寫入數(shù)據(jù)的訪問程度。
[0058]S103:基于數(shù)據(jù)的訪問程度與各個分區(qū)的對應關(guān)系,將待寫入數(shù)據(jù)寫入與所確定出的數(shù)據(jù)的訪問程度對應的分區(qū)中。
[0059]本發(fā)明提供的數(shù)據(jù)處理方法及電子設(shè)備,將待寫入數(shù)據(jù)依據(jù)數(shù)據(jù)的訪問程度寫入SSD對應的分區(qū)中,當依據(jù)用戶操作通過某個具體的寫數(shù)據(jù)指令向SSD中寫入數(shù)據(jù)時,由于具有相同數(shù)據(jù)訪問程度的數(shù)據(jù)存儲在同一分區(qū)中,因此,需要寫入數(shù)據(jù)的閃存塊中可能并不存在有效頁,或者存在較少的有效頁,因此,當向SSD寫入數(shù)據(jù)時,可直接將整個閃存塊擦除再重新寫入數(shù)據(jù),或者只需復制少量的有效頁,擦除閃存塊后,將少量的有效頁和待寫入數(shù)據(jù)寫入,這使得數(shù)據(jù)的寫入速度提高,相應的,縮短了數(shù)據(jù)寫入過程占用的時間。
[0060]實施例二
[0061 ] 本發(fā)明實施例二提供了 一種基于固態(tài)硬盤SSD的數(shù)據(jù)處理方法,應用于一電子設(shè)備,預先依據(jù)數(shù)據(jù)的訪問程度確定SSD的存儲單元的各個分區(qū),建立數(shù)據(jù)的訪問程度與各個分區(qū)的對應關(guān)系。其中:
[0062]本實施例中的數(shù)據(jù)的訪問程度可以包括:高頻讀高頻寫和低頻讀低頻寫,相應的,SSD的存儲單元可以包括兩個分區(qū),分別為第一分區(qū)和第二分區(qū),第一分區(qū)與高頻讀高頻寫對應,用于存儲數(shù)據(jù)的訪問程度為高頻讀高頻寫的數(shù)據(jù),第二分區(qū)與低頻讀低頻寫對應,用于存儲數(shù)據(jù)的訪問程度為低頻讀低頻寫的數(shù)據(jù)。
[0063]圖2示出了本發(fā)明實施例二提供的方法的流程示意圖,該方法可以包括:
[0064]S201:獲取一待寫入數(shù)據(jù)。
[0065]S202:確定待寫入數(shù)據(jù)的訪問程度。
[0066]在本實施例中,確定待寫入數(shù)據(jù)的訪問程度可以包括:根據(jù)待寫入數(shù)據(jù)的擴展名確定待寫入數(shù)據(jù)的訪問程度:如果待寫入數(shù)據(jù)的擴展名指示待寫入數(shù)據(jù)為臨時文件,則確定該待寫入數(shù)據(jù)的訪問程度為低頻讀低頻寫;如果待寫入數(shù)據(jù)的擴展名指示待寫入數(shù)據(jù)為非臨時文件,則確定該待寫入數(shù)據(jù)的訪問程度為高頻讀高頻寫。
[0067]S203:基于數(shù)據(jù)的訪問程度與各個分區(qū)的對應關(guān)系,將待寫入數(shù)據(jù)寫入與所確定出的數(shù)據(jù)的訪問程度對應的分區(qū)中。
[0068]具體地,如果確定出的待寫入數(shù)據(jù)的數(shù)據(jù)訪問程度為高頻讀高頻寫,則將待寫入數(shù)據(jù)寫入第一分區(qū),如果確定出的待寫入數(shù)據(jù)的數(shù)據(jù)訪問程度為低頻讀低頻寫,則將待寫入數(shù)據(jù)寫入第二分區(qū)。
[0069]本發(fā)明實施例一提供的數(shù)據(jù)處理方法,將具有不同數(shù)據(jù)訪問程度的數(shù)據(jù)寫入SSD不同的分區(qū)中,如臨時文件寫入第二分區(qū)中,非臨時文件寫入第一分區(qū)中,當依據(jù)用戶操作通過某個具體的寫數(shù)據(jù)指令向SSD中寫入數(shù)據(jù)時,由于整個閃存塊存儲的是同類型數(shù)據(jù),因此需要寫入數(shù)據(jù)的閃存塊中可能并不存在有效數(shù)據(jù),或者存在較少的有效數(shù)據(jù),因此,當向SSD寫入數(shù)據(jù)時,可直接將整個閃存塊擦除再重新寫入數(shù)據(jù),或者只需復制少量的有效數(shù)據(jù),擦除閃存塊后,將少量的有效數(shù)據(jù)和待寫入數(shù)據(jù)重新寫入,這使得數(shù)據(jù)的寫入速度提高,相應的,縮短了數(shù)據(jù)寫入過程占用的時間。
[0070]由于SSD加入了 Trim,其中,Trim是一條操作指令,讓操作系統(tǒng)告訴SSD這個頁已經(jīng)無效,即Trim能直接產(chǎn)生無效頁,為了擦除無效數(shù)據(jù),重新利用無效數(shù)據(jù)所占的無效頁,本發(fā)明實施例二提供的方法還可以包括:
[0071]S204:在接收到垃圾回收指令時,針對各個分區(qū)進行垃圾回收。
[0072]垃圾回收的目的是把所有的有效頁復制到新的空白塊里,然后把舊的塊整體擦除。在進行垃圾回收時,由于需要先查找有效數(shù)據(jù),然后將有效數(shù)據(jù)復制到空白的閃存塊中,最后將那些無效的閃存塊擦除。查找和復制有效數(shù)據(jù)的過程降低了垃圾回收的效率,而本實施例提供的數(shù)據(jù)處理方法,可使具有相同訪問程度的數(shù)據(jù)連在一起,如臨時文件連在一起,非臨時文件連在一起,相應的,有效數(shù)據(jù)和無效數(shù)據(jù)相對比較集中,這使得有些閃存塊可直接擦除,有效數(shù)據(jù)的查找和復制時間縮短,垃圾回收的效率提高。
[0073]實施例三
[0074]本發(fā)明實施例三提供了一種基于固態(tài)硬盤SSD的數(shù)據(jù)處理方法,應用于一電子設(shè)備,預先依據(jù)數(shù)據(jù)的訪問程度確定SSD的存儲單元的各個分區(qū),建立數(shù)據(jù)的訪問程度與各個分區(qū)的對應關(guān)系。其中:
[0075]數(shù)據(jù)的訪問程度可以包括:高頻讀高頻寫、高頻讀低頻寫、低頻讀高頻寫和低頻讀低頻寫,相應的,SSD的存儲單元可以包括四個分區(qū),分別為第一分區(qū)、第二分區(qū)、第三分區(qū)和第四分區(qū),第一分區(qū)與高頻讀高頻寫對應,用于存儲數(shù)據(jù)的訪問程度為高頻讀高頻寫的數(shù)據(jù),第二分區(qū)與高頻讀低頻寫對應,用于存儲數(shù)據(jù)的訪問程度為高頻讀低頻寫的數(shù)據(jù),第三分區(qū)與低頻讀高頻寫對應,用于存儲數(shù)據(jù)的訪問程度為低頻讀高頻寫的數(shù)據(jù),第四分區(qū)與低頻讀低頻寫對應,用于存儲數(shù)據(jù)的訪問程度為低頻讀低頻寫的數(shù)據(jù)。
[0076]圖3示出了本發(fā)明實施例三提供的方法的流程示意圖,該方法可以包括:
[0077]S301:獲取一待寫入數(shù)據(jù)。
[0078]S302:確定待寫入數(shù)據(jù)的訪問程度。
[0079]在本實施例中,確定待寫入數(shù)據(jù)的訪問程度可以包括:根據(jù)預先統(tǒng)計出的數(shù)據(jù)的讀寫次數(shù)確定待寫入數(shù)據(jù)的訪問程度:如果待寫入數(shù)據(jù)的讀次數(shù)大于第一設(shè)定閾值,且寫次數(shù)大于第二設(shè)定閾值,則確定待寫入數(shù)據(jù)的訪問程度為高頻讀高頻寫;如果待寫入數(shù)據(jù)的讀次數(shù)大于第一設(shè)定閾值,且寫次數(shù)小于第三設(shè)定閾值,則確定待寫入數(shù)據(jù)的訪問程度為高頻讀低頻寫;如果待寫入數(shù)據(jù)的讀次數(shù)小于第四設(shè)定閾值,且寫次數(shù)大于第二設(shè)定閾值,則確定待寫入數(shù)據(jù)的訪問程度為低頻讀高頻寫;如果待寫入數(shù)據(jù)的讀次數(shù)小于第四設(shè)定閾值,且寫次數(shù)小于第三設(shè)定閾值,則確定待寫入數(shù)據(jù)的訪問程度為低頻讀低頻寫。
[0080]優(yōu)選的,在本實施例中,在每次讀、寫數(shù)據(jù)時,更新統(tǒng)計的數(shù)據(jù)讀寫次數(shù),以便在后續(xù)的數(shù)據(jù)寫入過程中,能更準確地確定待寫入數(shù)據(jù)的訪問程度。
[0081]S303:基于數(shù)據(jù)的訪問程度與各個分區(qū)的對應關(guān)系,將待寫入數(shù)據(jù)寫入與所確定出的數(shù)據(jù)的訪問程度對應的分區(qū)中。
[0082]具體的,如果確定出的待寫入數(shù)據(jù)的數(shù)據(jù)訪問程度為高頻讀高頻寫,則將待寫入數(shù)據(jù)寫入第一分區(qū);如果確定出的待寫入數(shù)據(jù)的數(shù)據(jù)訪問程度為高頻讀低頻寫,則將待寫入數(shù)據(jù)寫入第二分區(qū);如果確定出的待寫入數(shù)據(jù)的數(shù)據(jù)訪問程度為低頻讀高頻寫,則將待寫入數(shù)據(jù)寫入第三分區(qū),如果確定出的待寫入數(shù)據(jù)的數(shù)據(jù)訪問程度為低頻讀低頻寫,則將待寫入數(shù)據(jù)寫入第四分區(qū)。
[0083]本發(fā)明實施例二提供的數(shù)據(jù)處理方法,將數(shù)據(jù)依據(jù)數(shù)據(jù)訪問程度分類存儲在SSD不同的分區(qū)中,當依據(jù)用戶操作通過某個具體的寫數(shù)據(jù)指令向SSD中寫入數(shù)據(jù)時,由于每個分區(qū)的閃存塊存儲的是同類型數(shù)據(jù),因此需要寫入數(shù)據(jù)的閃存塊中可能并不存在有效數(shù)據(jù),或者存在較少的有效數(shù)據(jù),因此,當向SSD寫入數(shù)據(jù)時,可直接將整個閃存塊擦除再重新寫入數(shù)據(jù),或者只需復制少量的有效數(shù)據(jù),擦除閃存塊后,將少量的有效數(shù)據(jù)和待寫入數(shù)據(jù)重新寫入,這使得數(shù)據(jù)的寫入速度提高,相應的,縮短了數(shù)據(jù)寫入過程占用的時間。
[0084]由于SSD加入了 Trim,其中,Trim是一條操作指令,讓操作系統(tǒng)告訴SSD這個頁已經(jīng)無效,即Trim能直接產(chǎn)生無效頁,為了擦除無效數(shù)據(jù),重新利用無效數(shù)據(jù)所占的無效頁,本發(fā)明實施例三提供的方法還可以包括:
[0085]S304:在接收到垃圾回收指令時,針對各個分區(qū)進行垃圾回收。
[0086]垃圾回收的目的是把所有的有效頁復制到新的空白塊里,然后把舊的塊整體擦除。在進行垃圾回收時,由于需要先查找有效數(shù)據(jù),然后將有效數(shù)據(jù)復制到空白的閃存塊中,最后將那些無效的閃存塊擦除。查找和復制有效數(shù)據(jù)的過程降低了垃圾回收的效率,而本實施例提供的數(shù)據(jù)處理方法,可使具有相同訪問程度的數(shù)據(jù)連在一起,如臨時文件連在一起,非臨時文件連在一起,相應的,有效數(shù)據(jù)和無效數(shù)據(jù)相對比較集中,這使得有些閃存塊可直接擦除,有效數(shù)據(jù)的查找和復制時間縮短,垃圾回收的效率提高。
[0087]由于數(shù)據(jù)的訪問程度不同,因此,第一分區(qū)、第二分區(qū)、第三分區(qū)和第四分區(qū)被操作的頻率是不一樣的,第一分區(qū)和第三分區(qū)的數(shù)據(jù)不斷更新寫入,導致第一分區(qū)和第三分區(qū)的閃存塊不斷地被擦除、寫入,形成壞塊,當壞塊達到一定的數(shù)量后,SSD就不能再使用了,而第二分區(qū)和第四分區(qū)由于長時間不更新寫入,導致這些閃存塊很少被擦除,這樣會造成很大浪費。為了使SSD閃存塊平均地被磨損,本發(fā)明實施例三提供的方法還可以包括:
[0088]S305:獲取各個分區(qū)的磨損情況,根據(jù)各個分區(qū)的磨損情況,調(diào)整與分區(qū)對應的數(shù)據(jù)的訪問程度。
[0089]例如,可以調(diào)換與第一分區(qū)和第四分區(qū)對應的數(shù)據(jù)的訪問程度,調(diào)換與第二分區(qū)和第三分區(qū)對應的數(shù)據(jù)的訪問程度,具體地,將與第一分區(qū)對應的數(shù)據(jù)訪問程度更改為低頻讀低頻寫,將與第四分區(qū)對應的數(shù)據(jù)訪問程度更改為高頻讀高頻寫,將與第二分區(qū)對應的數(shù)據(jù)訪問程度更改為低頻讀高頻寫,將與第三分區(qū)對應的數(shù)據(jù)訪問程度更改為高頻讀低頻寫。當然,本實施例并不限定只采用上述方式調(diào)整與分區(qū)對應的數(shù)據(jù)的訪問程度,還可采用其它方式進行調(diào)整,只要通過調(diào)整與分區(qū)對應的數(shù)據(jù)的訪問程度,從而實現(xiàn)磨損平衡都是本發(fā)明保護的范圍。
[0090]隨著數(shù)據(jù)的不斷寫入,第一分區(qū)、第二分區(qū)、第三分區(qū)和第四分區(qū)中寫入的數(shù)據(jù)量并不一定相同,不能排除其中某一分區(qū)已寫滿,其它的分區(qū)存在較大的空閑區(qū)的情況,為了充分利用SSD的存儲空間,使得各個分區(qū)的數(shù)據(jù)可以快速寫入,本發(fā)明實施例二提供的方法還可以包括:
[0091]S306:獲取各個分區(qū)的空閑區(qū)域的大小,依據(jù)各個分區(qū)的空閑區(qū)域的大小調(diào)整各個分區(qū)的空間的大小。
[0092]例如,第一分區(qū)用于存儲數(shù)據(jù)的訪問程度為高頻讀高頻寫的數(shù)據(jù),因此,該分區(qū)寫入的數(shù)據(jù)量較大,而第二分區(qū)用于存儲數(shù)據(jù)的訪問程度為高頻讀低頻寫的數(shù)據(jù),該分區(qū)寫入的數(shù)據(jù)量較小,當?shù)谝环謪^(qū)的空閑區(qū)較小時,第一分區(qū)的空閑區(qū)較大時,可以調(diào)整兩個分區(qū)的大小,增大第一分區(qū)存儲空間,以使第一分區(qū)中的數(shù)據(jù)可以快速寫入。
[0093]此外,本發(fā)明實施例一提供的方法還可以包括:
[0094]S307:當SSD的存儲單元存在空閑的連續(xù)區(qū)域,且空閑的連續(xù)區(qū)域存在于至少兩個分區(qū)中時,調(diào)整至少兩個分區(qū)以使空閑區(qū)域存在于一個分區(qū)中。
[0095]例如,當?shù)谝环謪^(qū)存在一空閑區(qū)域,且該空閑區(qū)域與第二分區(qū)的空閑區(qū)域為一連續(xù)區(qū)域時,可將第二分區(qū)中空閑區(qū)域調(diào)整至第一分區(qū)中,或者,將第一分區(qū)的空閑區(qū)域調(diào)整至第二分區(qū)中,以使兩個分區(qū)中的空閑區(qū)域連成一連續(xù)區(qū)域,以便能更方便、快速的存儲數(shù)據(jù)。至于調(diào)整至哪個分區(qū),可根據(jù)數(shù)據(jù)的存儲情況、待寫入數(shù)據(jù)的大小以及該待寫入數(shù)據(jù)的數(shù)據(jù)訪問程度而定。
[0096]需要說明的是,本實施例并不限定步驟S304-S307的執(zhí)行順序,這些步驟可在數(shù)據(jù)寫入的過程中執(zhí)行,也可在寫入完數(shù)據(jù)之后執(zhí)行,且S304-S307這四個步驟也執(zhí)行順序的限定。
[0097]實施例四
[0098]本發(fā)明實施例四提供了一種電子設(shè)備,預先依據(jù)數(shù)據(jù)的訪問程度確定SSD的存儲單元的各個分區(qū),并建立數(shù)據(jù)的訪問程度與各個分區(qū)的對應關(guān)系,其中,各個分區(qū)存儲訪問程度不同的數(shù)據(jù),圖4為該電子設(shè)備的結(jié)構(gòu)示意圖,包括:獲取模塊101,確定模塊102和寫入模塊103。其中:
[0099]獲取模塊101,用于獲取一待寫入數(shù)據(jù)。確定模塊102,用于確定獲取模塊101獲取的待寫入數(shù)據(jù)的訪問程度。寫入模塊103,用于基于數(shù)據(jù)的訪問程度與各個分區(qū)的對應關(guān)系,將獲取模塊101獲取的待寫入數(shù)據(jù)寫入與確定模塊103確定出的數(shù)據(jù)的訪問程度對應的分區(qū)中。
[0100]實施例五
[0101]本發(fā)明實施例五提供了一種電子設(shè)備,圖5為該電子設(shè)備的結(jié)構(gòu)示意圖,該電子設(shè)備除了包括實施例四提供的獲取模塊101,確定模塊102和寫入模塊103外,還包括:垃圾回收模塊104。其中:
[0102]垃圾回收模塊104,用于在接收到垃圾回收指令時,針對各個分區(qū)進行垃圾回收。
[0103]在本實施例中,確定模塊102可以包括:第一確定子模塊。
[0104]第一確定子模塊,用于根據(jù)待寫入數(shù)據(jù)的擴展名確定待寫入數(shù)據(jù)的訪問程度:如果擴展名指示待寫入數(shù)據(jù)為臨時文件,則確定待寫入數(shù)據(jù)的訪問程度為低頻讀低頻寫,如果擴展名指示待寫入數(shù)據(jù)為非臨時文件,則確定待寫入數(shù)據(jù)的訪問程度為高頻讀高頻寫。
[0105]實施例六
[0106]本發(fā)明實施例五提供了一種電子設(shè)備,圖6為該電子設(shè)備的結(jié)構(gòu)示意圖,該電子設(shè)備除了包括實施例五提供的獲取模塊101,確定模塊102、寫入模塊103和垃圾回收模塊104外,還包括:第一調(diào)整模塊105、第二調(diào)整模塊106和第三調(diào)整模塊107。其中:
[0107]第一調(diào)整模塊105,用于獲取各個分區(qū)的磨損情況,根據(jù)獲取的各個分區(qū)的磨損情況,調(diào)整與分區(qū)對應的數(shù)據(jù)的訪問程度。
[0108]第二調(diào)整模塊106,用于獲取各個分區(qū)的空閑區(qū)域的大小,依據(jù)獲取的各個分區(qū)的空閑區(qū)域的大小調(diào)整各個分區(qū)的空間的大小。[0109]第三調(diào)整模塊107,用于當SSD的存儲單元存在空閑的連續(xù)區(qū)域,且空閑的連續(xù)區(qū)域存在于至少兩個分區(qū)中時,調(diào)整至少兩個分區(qū)以使空閑區(qū)域存在于一個分區(qū)中。
[0110]在本實施例中,確定模塊102可以包括:第二確定子模塊。
[0111]第二確定子模塊,用于根據(jù)預先統(tǒng)計出的數(shù)據(jù)的讀寫次數(shù)確定待寫入數(shù)據(jù)的訪問程度:如果待寫入數(shù)據(jù)的讀次數(shù)大于第一設(shè)定閾值,且寫次數(shù)大于第二設(shè)定閾值,則確定待寫入數(shù)據(jù)的訪問程度為高頻讀高頻寫;如果待寫入數(shù)據(jù)的讀次數(shù)大于第一設(shè)定閾值,且寫次數(shù)小于第三設(shè)定閾值,則確定所述待寫入數(shù)據(jù)的訪問程度為高頻讀低頻寫;如果待寫入數(shù)據(jù)的讀次數(shù)小于第四設(shè)定閾值,且寫次數(shù)大于第二設(shè)定閾值,則確定待寫入數(shù)據(jù)的訪問程度為低頻讀高頻寫;如果待寫入數(shù)據(jù)的讀次數(shù)小于第四設(shè)定閾值,且寫次數(shù)小于第三設(shè)定閾值,則確定待寫入數(shù)據(jù)的訪問程度為低頻讀低頻寫。
[0112]為了描述的方便,描述以上裝置時以功能分為各種單元分別描述。當然,在實施本發(fā)明時可以把各單元的功能在同一個或多個軟件和/或硬件中實現(xiàn)。
[0113]通過以上的實施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例或者實施例的某些部分所述的方法。
[0114]本說明書中的各個實施例均采用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于系統(tǒng)實施例而言,由于其基本相似于方法實施例,所以描述得比較簡單,相關(guān)之處參見方法實施例的部分說明即可。以上所描述的系統(tǒng)實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上。可以根據(jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。
[0115]本發(fā)明可用于眾多通用或?qū)S玫挠嬎阆到y(tǒng)環(huán)境或配置中。例如:個人計算機、服務器計算機、手持設(shè)備或便攜式設(shè)備、平板型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、置頂盒、可編程的消費電子設(shè)備、網(wǎng)絡(luò)PC、小型計算機、大型計算機、包括以上任何系統(tǒng)或設(shè)備的分布式計算環(huán)境等等。
[0116]本發(fā)明可以在由計算機執(zhí)行的計算機可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計算環(huán)境中實踐本發(fā)明,在這些分布式計算環(huán)境中,由通過通信網(wǎng)絡(luò)而被連接的遠程處理設(shè)備來執(zhí)行任務。在分布式計算環(huán)境中,程序模塊可以位于包括存儲設(shè)備在內(nèi)的本地和遠程計算機存儲介質(zhì)中。
[0117]需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。
[0118]以上所述僅是本發(fā)明的【具體實施方式】,應當指出,對于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發(fā)明的保護范圍。
【權(quán)利要求】
1.一種基于固態(tài)硬盤SSD的數(shù)據(jù)處理方法,其特征在于,應用于一電子設(shè)備,預先依據(jù)數(shù)據(jù)的訪問程度確定SSD的存儲單元的各個分區(qū),并建立數(shù)據(jù)的訪問程度與各個分區(qū)的對應關(guān)系,其中,所述各個分區(qū)存儲訪問程度不同的數(shù)據(jù),該方法包括: 獲取一待寫入數(shù)據(jù); 確定待寫入數(shù)據(jù)的訪問程度; 基于所述數(shù)據(jù)的訪問程度與各個分區(qū)的對應關(guān)系,將所述待寫入數(shù)據(jù)寫入與所確定出的數(shù)據(jù)的訪問程度對應的分區(qū)中。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括: 在接收到垃圾回收指令時,針對所述各個分區(qū)進行垃圾回收。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括: 獲取各個分區(qū)的磨損情況,根據(jù)所述各個分區(qū)的磨損情況,調(diào)整與分區(qū)對應的數(shù)據(jù)的訪問程度。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括: 獲取所述各個分區(qū)的空閑區(qū)域的大小,依據(jù)所述各個分區(qū)的空閑區(qū)域的大小調(diào)整所述各個分區(qū)的空間的大小。
5.根據(jù)權(quán)利要求1所 述的方法,其特征在于,還包括: 當所述SSD的存儲單元存在空閑的連續(xù)區(qū)域,且所述空閑的連續(xù)區(qū)域存在于至少兩個分區(qū)中時,調(diào)整所述至少兩個分區(qū)以使所述空閑區(qū)域存在于一個分區(qū)中。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述確定待寫入數(shù)據(jù)的訪問程度具體為: 根據(jù)所述待寫入數(shù)據(jù)的擴展名確定所述待寫入數(shù)據(jù)的訪問程度:如果所述擴展名指示所述待寫入數(shù)據(jù)為臨時文件,則確定所述待寫入數(shù)據(jù)的訪問程度為低頻讀低頻寫;如果所述擴展名指示所述待寫入數(shù)據(jù)為非臨時文件,則確定所述待寫入數(shù)據(jù)的訪問程度為高頻讀聞頻與。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述確定待寫入數(shù)據(jù)的訪問程度具體為: 根據(jù)預先統(tǒng)計出的數(shù)據(jù)的讀寫次數(shù)確定所述待寫入數(shù)據(jù)的訪問程度: 如果待寫入數(shù)據(jù)的讀次數(shù)大于第一設(shè)定閾值,且寫次數(shù)大于第二設(shè)定閾值,則確定所述待寫入數(shù)據(jù)的訪問程度為高頻讀高頻寫; 如果待寫入數(shù)據(jù)的讀次數(shù)大于第一設(shè)定閾值,且寫次數(shù)小于第三設(shè)定閾值,則確定所述待寫入數(shù)據(jù)的訪問程度為高頻讀低頻寫; 如果待寫入數(shù)據(jù)的讀次數(shù)小于第四設(shè)定閾值,且寫次數(shù)大于第二設(shè)定閾值,則確定所述待寫入數(shù)據(jù)的訪問程度為低頻讀高頻寫; 如果待寫入數(shù)據(jù)的讀次數(shù)小于第四設(shè)定閾值,且寫次數(shù)小于第三設(shè)定閾值,則確定所述待寫入數(shù)據(jù)的訪問程度為低頻讀低頻寫。
8.一種電子設(shè)備,其特征在于,預先依據(jù)數(shù)據(jù)的訪問程度確定SSD的存儲單元的各個分區(qū),并建立數(shù)據(jù)的訪問程度與各個分區(qū)的對應關(guān)系,其中,所述各個分區(qū)存儲訪問程度不同的數(shù)據(jù),包括:獲取模塊,確定模塊和寫入模塊; 所述獲取模塊,用于獲取一待寫入數(shù)據(jù); 所述確定模塊,用于確定所述獲取模塊獲取的待寫入數(shù)據(jù)的訪問程度; 所述寫入模塊,用于基于所述數(shù)據(jù)的訪問程度與各個分區(qū)的對應關(guān)系,將所述獲取模塊獲取的待寫入數(shù)據(jù)寫入與所述確定模塊確定出的數(shù)據(jù)的訪問程度對應的分區(qū)中。
9.根據(jù)權(quán)利要求8所述的電子設(shè)備,其特征在于,還包括:垃圾回收模塊; 所述垃圾回收模塊,用于在接收到垃圾回收指令時,針對所述各個分區(qū)進行垃圾回收。
10.根據(jù)權(quán)利要求8所述的電子設(shè)備,其特征在于,還包括:第一調(diào)整模塊; 所述第一調(diào)整模塊,用于獲取各個分區(qū)的磨損情況,根據(jù)獲取的所述各個分區(qū)的磨損情況,調(diào)整與分區(qū)對應的數(shù)據(jù)的訪問程度。
11.根據(jù)權(quán)利要求8所述的電子設(shè)備,其特征在于,還包括:第二調(diào)整模塊; 所述第二調(diào)整模塊,用于獲取各個分區(qū)的空閑區(qū)域的大小,依據(jù)獲取的所述各個分區(qū)的空閑區(qū)域的大小調(diào)整所述各個分區(qū)的空間的大小。
12.根據(jù)權(quán)利要求8所述的電子設(shè)備,其特征在于,還包括:第三調(diào)整模塊; 所述第三調(diào)整模塊,用于當所述SSD的存儲單元存在空閑的連續(xù)區(qū)域,且所述空閑的連續(xù)區(qū)域存在于至少兩個分區(qū)中時,調(diào)整所述至少兩個分區(qū)以使所述空閑區(qū)域存在于一個分區(qū)中。
13.根據(jù)權(quán)利要求8所述的電子設(shè)備,其特征在于,所述確定模塊包括:第一確定子模塊; 所述第一確定子模塊,用于根據(jù)所述待寫入數(shù)據(jù)的擴展名確定所述待寫入數(shù)據(jù)的訪問程度:如果所述擴展名指示所述待寫入數(shù)據(jù)為臨時文件,則確定所述待寫入數(shù)據(jù)的訪問程度為低頻讀低頻寫;如果所述擴展名指示所述待寫入數(shù)據(jù)為非臨時文件,則確定所述待寫入數(shù)據(jù)的訪問程度為高頻讀高頻寫。
14.根據(jù)權(quán)利要求8所述的電子設(shè)備,其特征在于,所述確定模塊包括:第二確定子模塊; 所述第二確定子模塊,用于根據(jù)預先統(tǒng)計出的數(shù)據(jù)的讀寫次數(shù)確定所述待寫入數(shù)據(jù)的訪問程度: 如果待寫入數(shù)據(jù)的讀次數(shù)大于第一設(shè)定閾值,且寫次數(shù)大于第二設(shè)定閾值,則確定所述待寫入數(shù)據(jù)的訪問程度為高頻讀高頻寫; 如果待寫入數(shù)據(jù)的讀次數(shù)大于第一設(shè)定閾值,且寫次數(shù)小于第三設(shè)定閾值,則確定所述待寫入數(shù)據(jù)的訪問程度為高頻讀低頻寫; 如果待寫入數(shù)據(jù)的讀次數(shù)小于第四設(shè)定閾值,且寫次數(shù)大于第二設(shè)定閾值,則確定所述待寫入數(shù)據(jù)的訪問程度為低頻讀高頻寫; 如果待寫入數(shù)據(jù)的讀次數(shù)小于第四設(shè)定閾值,且寫次數(shù)小于第三設(shè)定閾值,則確定所述待寫入數(shù)據(jù)的訪問程度為低頻讀低頻寫。
【文檔編號】G06F3/06GK103677653SQ201210356601
【公開日】2014年3月26日 申請日期:2012年9月21日 優(yōu)先權(quán)日:2012年9月21日
【發(fā)明者】王歡, 易賢群, 李凡智 申請人:聯(lián)想(北京)有限公司