本發(fā)明涉及存儲系統(tǒng)領(lǐng)域,特別涉及一種TLC芯片固態(tài)硬盤的動態(tài)分區(qū)存儲方法及裝置、系統(tǒng)。
背景技術(shù):
隨著電子技術(shù)的不斷發(fā)展,對存儲介質(zhì)的性能的要求也越來越高,閃存是新型非易失存儲介質(zhì)的代表,具有讀寫速度高、低功耗和抗震等優(yōu)點,廣泛應(yīng)用于嵌入式設(shè)備、移動終端等消費類電子產(chǎn)品中。
目前,固態(tài)硬盤主要有SLC(Single-Level Cell)芯片固態(tài)硬盤、MLC(Multi-Level Cell)芯片固態(tài)硬盤和TLC(Trinary-Level Cell)芯片固態(tài)硬盤這三種類型,這三種固態(tài)硬盤相比,TLC芯片固態(tài)硬盤的存儲機(jī)制是3bit/1cell,存儲容量大,價格低廉但速度慢,這制約了TCL芯片固態(tài)硬盤在高性能電子產(chǎn)品中的應(yīng)用,若能提高其讀寫速度,則可以大大降低應(yīng)用成本。
技術(shù)實現(xiàn)要素:
本發(fā)明旨在至少解決上述問題之一,提供一種TLC芯片固態(tài)硬盤的動態(tài)分區(qū)存儲方法及裝置、系統(tǒng),提高TLC芯片固態(tài)硬盤的讀寫速度。
為實現(xiàn)上述目的,本發(fā)明有如下技術(shù)方案:
根據(jù)本發(fā)明的一個方面,一種TLC芯片固態(tài)硬盤的動態(tài)分區(qū)存儲方法,包括:
當(dāng)TLC芯片固態(tài)硬盤的剩余存儲空間大于第一預(yù)設(shè)數(shù)值時,將數(shù)據(jù)流以第一方式存儲到TLC芯片固態(tài)硬盤中,以形成快速操作數(shù)據(jù)區(qū);
當(dāng)TLC芯片固態(tài)硬盤的剩余存儲空間小于第一預(yù)設(shè)數(shù)值時,以快速操作數(shù)據(jù)區(qū)所在的硬盤區(qū)域為第一區(qū)域,將第一區(qū)域中的熱數(shù)據(jù)以第二方式移動存儲到剩余存儲空間的第二區(qū)域中,將第一區(qū)域中的冷數(shù)據(jù)以第三方式移動存儲到剩余空間的第三區(qū)域中,其中,第一方式為每個存儲單元存儲一位數(shù)據(jù)的方式,第二方式為每個存儲單元存儲兩位數(shù)據(jù)的方式,第三方式為每個存儲單元中存儲三位數(shù)據(jù)的方式。
可選地,還包括:
當(dāng)?shù)谝粎^(qū)域的剩余存儲空間大于第二預(yù)設(shè)數(shù)值時,將數(shù)據(jù)流以第一方式存儲到第一區(qū)域中;
當(dāng)?shù)谝粎^(qū)域的剩余存儲空間小于第二預(yù)設(shè)數(shù)值時,判斷第二區(qū)域是否具有足夠的空間容納第一區(qū)域中的熱數(shù)據(jù),若有,則將第一區(qū)域中的熱數(shù)據(jù)以第二方式移動存儲到第二區(qū)域中,若否,則將第一區(qū)域的至少部分空間增添到第二區(qū)域,并將第一區(qū)域中的熱數(shù)據(jù)以第二方式移動存儲到第二區(qū)域中;以及
判斷第三區(qū)域是否具有足夠的空間容納第一區(qū)域中的冷數(shù)據(jù),若有,則將第一區(qū)域中的冷數(shù)據(jù)以第三方式移動存儲到第三區(qū)域中,若否,則將第一區(qū)域的至少部分空間增添到第三區(qū)域,并將第一區(qū)域中的冷數(shù)據(jù)以第三方式移動存儲到第三區(qū)域中。
可選地,還包括:
根據(jù)TLC芯片固態(tài)硬盤中各區(qū)域內(nèi)存儲單元的剩余可擦寫次數(shù),重新劃分TLC芯片固態(tài)硬盤的第一區(qū)域、第二區(qū)域和第三區(qū)域,并進(jìn)行存儲數(shù)據(jù)的替換。
可選地,第一區(qū)域中冷數(shù)據(jù)和熱數(shù)據(jù)的確定方法包括:根據(jù)緩存中建立的冷熱數(shù)據(jù)鏈表,確定第一區(qū)域中的冷數(shù)據(jù)和熱數(shù)據(jù)。
可選地,第一區(qū)域中冷數(shù)據(jù)和熱數(shù)據(jù)的確定方法包括:根據(jù)最近一定時間段內(nèi)對第一區(qū)域中的數(shù)據(jù)的訪問頻率,確定第一區(qū)域中的冷數(shù)據(jù)和熱數(shù)據(jù)。
根據(jù)本發(fā)明的另一方面,一種TLC芯片固態(tài)硬盤的動態(tài)分區(qū)存儲裝置,包括:
快速存儲單元,用于當(dāng)TLC芯片固態(tài)硬盤的剩余存儲空間大于第一預(yù)設(shè)數(shù)值時,將數(shù)據(jù)流以第一方式存儲到TLC芯片固態(tài)硬盤中,以形成快速操作數(shù)據(jù)區(qū);
第二區(qū)域劃分存儲單元,用于當(dāng)TLC芯片固態(tài)硬盤的剩余存儲空間小于第一預(yù)設(shè)數(shù)值時,以快速操作數(shù)據(jù)區(qū)所在的硬盤區(qū)域為第一區(qū)域,將第一區(qū)域中的熱數(shù)據(jù)以第二方式移動存儲到剩余存儲空間的第二區(qū)域中;
第三區(qū)域劃分存儲單元,用于當(dāng)TLC芯片固態(tài)硬盤的剩余存儲空間小于第一預(yù)設(shè)數(shù)值時,將第一區(qū)域中的冷數(shù)據(jù)以第三方式移動存儲到剩余空間的第三區(qū)域中;
其中,第一方式為每個存儲單元存儲一位數(shù)據(jù)的方式,第二方式為每個存儲單元存儲兩位數(shù)據(jù)的方式,第三方式為每個存儲單元中存儲三位數(shù)據(jù)的方式。
可選地,還包括:
第一區(qū)域存儲單元,用于當(dāng)?shù)谝粎^(qū)域的剩余存儲空間大于第二預(yù)設(shè)數(shù)值時,將數(shù)據(jù)流以第一方式存儲到第一區(qū)域中;
第二區(qū)域再存儲單元,用于當(dāng)?shù)谝粎^(qū)域的剩余存儲空間小于第二預(yù)設(shè)數(shù)值時,判斷第二區(qū)域是否具有足夠的空間容納第一區(qū)域中的熱數(shù)據(jù),若有,則將第一區(qū)域中的熱數(shù)據(jù)以第二方式移動存儲到第二區(qū)域中,若否,則將第一區(qū)域的至少部分空間增添到第二區(qū)域,并將第一區(qū)域中的熱數(shù)據(jù)以第二方式移動存儲到第二區(qū)域中;
第三區(qū)域再存儲單元,用于當(dāng)?shù)谝粎^(qū)域的剩余存儲空間小于第二預(yù)設(shè)數(shù)值時,判斷第三區(qū)域是否具有足夠的空間容納第一區(qū)域中的冷數(shù)據(jù),若有,則將第一區(qū)域中的冷數(shù)據(jù)以第三方式移動存儲到第三區(qū)域中,若否,則將第一區(qū)域的至少部分空間增添到第三區(qū)域,并將第一區(qū)域中的冷數(shù)據(jù)以第三方式移動存儲到第三區(qū)域中。
可選地,還包括:
區(qū)域再劃分單元,用于根據(jù)TLC芯片固態(tài)硬盤中各區(qū)域內(nèi)存儲單元的剩余可擦寫次數(shù),重新劃分TLC芯片固態(tài)硬盤的第一區(qū)域、第二區(qū)域和第三區(qū)域,并進(jìn)行存儲數(shù)據(jù)的替換。
可選地,根據(jù)緩存中建立的冷熱數(shù)據(jù)鏈表,確定第一區(qū)域中的冷數(shù)據(jù)和熱數(shù)據(jù)。
可選地,根據(jù)最近一定時間段內(nèi)對第一區(qū)域中的數(shù)據(jù)的訪問頻率,確定第一區(qū)域中的冷數(shù)據(jù)和熱數(shù)據(jù)。
根據(jù)本發(fā)明的又一方面,一種TLC芯片固態(tài)硬盤的動態(tài)分區(qū)存儲系統(tǒng),包括上述任一的存儲裝置,以及TLC芯片固態(tài)硬盤。
可選地,所述的存儲裝置設(shè)置在主控單元中。
可選地,還包括與所述的存儲裝置連接的主控單元。
可選地,還包括緩存單元。
本發(fā)明實施例提供了一種TLC芯片固態(tài)硬盤的動態(tài)分區(qū)存儲方法及其裝置、系統(tǒng),在硬盤空間大于預(yù)設(shè)數(shù)值時,按照一個存儲單元存儲一位數(shù)據(jù)的方式將數(shù)據(jù)流存儲到硬盤中,而當(dāng)硬盤空間小于預(yù)設(shè)數(shù)值時,硬盤空間分成三個區(qū)域,將已經(jīng)存儲到硬盤中的熱、冷數(shù)據(jù)按照一個存儲單元存儲兩位數(shù)據(jù)和一個存儲單元存儲三位數(shù)據(jù)的方式分別移動存儲到另外的兩個區(qū)域中。這樣,在TLC芯片固態(tài)硬盤空間較大時,可以保證對硬盤的快速的讀寫,而在硬盤空間較小時,按照數(shù)據(jù)的使用頻率將數(shù)據(jù)移動到不同的區(qū)域,原區(qū)域仍用于快速數(shù)據(jù)的存儲,這樣,在兼顧數(shù)據(jù)讀寫速度的同時保證硬盤的正常操作,大大提高了低成本、大容量的TLC硬盤的性能。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1示出了根據(jù)本發(fā)明實施例的TLC芯片固態(tài)硬盤的動態(tài)分區(qū)存儲方法的流程圖;
圖2示出了根據(jù)本發(fā)明實施例的TLC芯片固態(tài)硬盤的動態(tài)分區(qū)存儲裝置的結(jié)構(gòu)示意圖;
圖3示出了根據(jù)本發(fā)明實施例一的TLC芯片固態(tài)硬盤的動態(tài)分區(qū)存儲裝置的系統(tǒng)示意圖;
圖4示出了根據(jù)本發(fā)明實施例二的TLC芯片固態(tài)硬盤的動態(tài)分區(qū)存儲裝置的系統(tǒng)示意圖。
具體實施方式
為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖對本發(fā)明的具體實施方式做詳細(xì)的說明。
在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明,但是本發(fā)明還可以采用其他不同于在此描述的其它方式來實施,本領(lǐng)域技術(shù)人員可以在不違背本發(fā)明內(nèi)涵的情況下做類似推廣,因此本發(fā)明不受下面公開的具體實施例的限制。
本發(fā)明實施例提供的存儲方法,是基于TLC芯片固態(tài)硬盤的,傳統(tǒng)的TLC芯片固態(tài)硬盤的一個存儲單元可以存儲3位數(shù)據(jù),即3bit/1cell,在TLC芯片固態(tài)硬盤的物理結(jié)構(gòu)中,一個存儲單元為一個存儲器件,存儲器件通常為MOSFET(Metal-Oxide-Semiconductor Field-Effect Transistor,MOSFET),在存儲數(shù)據(jù)時,也就是寫操作時,對存儲器件的控制柵施加八種不同的電壓,分別代表3位數(shù)據(jù)的八種狀態(tài),因此,可以在一個存儲單元中存儲3位數(shù)據(jù),在讀取時,施加對應(yīng)的讀取電壓,來獲取相應(yīng)的數(shù)據(jù),這種硬盤的存儲容量大,價格低廉,但讀寫操作時,對電壓的敏感性強(qiáng),經(jīng)常需要多次讀取操作,讀寫速度慢,制約了其在高性能產(chǎn)品中的應(yīng)用。為此,本發(fā)明提出了一種動態(tài)分區(qū)存儲方法,以提高TLC芯片固態(tài)硬盤的讀寫速度。
參考圖1所示,一種TLC芯片固態(tài)硬盤的動態(tài)分區(qū)存儲方法,包括:
S101,當(dāng)TLC芯片固態(tài)硬盤的剩余存儲空間大于第一預(yù)設(shè)數(shù)值時,將數(shù)據(jù)流以第一方式存儲到TLC芯片固態(tài)硬盤中,以形成快速操作數(shù)據(jù)區(qū);
S102,當(dāng)TLC芯片固態(tài)硬盤的剩余存儲空間小于第一預(yù)設(shè)數(shù)值時,以快速操作數(shù)據(jù)區(qū)所在的硬盤區(qū)域為第一區(qū)域,將第一區(qū)域中的熱數(shù)據(jù)以第二方式移動存儲到剩余存儲空間的第二區(qū)域中,將第一區(qū)域中的冷數(shù)據(jù)以第三方式移動存儲到剩余空間的第三區(qū)域中,其中,第一方式為每個存儲單元存儲一位數(shù)據(jù)的方式,第二方式為每個存儲單元存儲兩位數(shù)據(jù)的方式,第三方式為每個存儲單元中存儲三位數(shù)據(jù)的方式。
在本發(fā)明的實施例中,TLC芯片固態(tài)硬盤可以由一個或多個TLC閃存顆粒組成,例如為128G的TLC芯片固態(tài)硬盤,可以是一個128G的TLC閃存顆粒,也可以是由4個32G的TLC閃存顆粒組成,多個TLC閃存顆粒組成的硬盤在邏輯上為一個整體的硬盤存儲空間。
為了更好地理解本發(fā)明實施例的技術(shù)方案,先對第一存儲方式、第二存儲方式和第三存儲方式進(jìn)行說明,這三種不同的存儲方式是對這種TLC芯片固態(tài)硬盤做出的。對于TLC芯片固態(tài)硬盤由多個存儲單元組成,每個存儲單元為一個存儲器件,TLC這種硬盤中的存儲器件,在一個存儲單元中存儲三位數(shù)據(jù),為了描述方便,本發(fā)明中記做第三方式,寫操作即往存儲單元中存儲數(shù)據(jù),在寫操作時對控制柵施加八種寫電壓,對應(yīng)3位數(shù)據(jù)的八種狀態(tài),從而實現(xiàn)一個存儲單元存儲三位數(shù)據(jù),這是TLC硬盤的傳統(tǒng)存儲模式,相應(yīng)地,在讀操作時,施加相應(yīng)的八種讀取電壓,實現(xiàn)3位數(shù)據(jù)的讀取,由于對讀寫操作時電壓的靈敏度要求高,經(jīng)常需要多次讀寫才能成功,導(dǎo)致讀寫速度慢,在這三種方式中,第三方式是讀寫速度最慢的,最節(jié)省存儲空間。
而針對TLC這種硬盤中的存儲器件,在本發(fā)明實施例中,還提出了第一方式和第二方式的存儲方式,第一方式為每個存儲單元存儲一位數(shù)據(jù)的方式,第二方式為每個存儲單元存儲兩位數(shù)據(jù)的方式。對于第一方式,在寫操作時對控制柵施加兩種寫電壓,對應(yīng)1位數(shù)據(jù)的兩種狀態(tài),從而實現(xiàn)一個存儲單元存儲一位數(shù)據(jù),相應(yīng)地,在讀操作時,施加相應(yīng)的兩種讀取電壓,實現(xiàn)1位數(shù)據(jù)的讀取,在這三種方式中,第一方式是讀寫速度最快的,占用最多存儲空間。對于第二方式,在寫操作時對控制柵施加四種寫電壓,對應(yīng)2位數(shù)據(jù)的四種狀態(tài),從而實現(xiàn)一個存儲單元存儲兩位數(shù)據(jù),相應(yīng)地,在讀操作時,施加相應(yīng)的四種讀取電壓,實現(xiàn)2位數(shù)據(jù)的讀取,在這三種方式中,第二方式是讀寫速度和占用存儲空間都居中。
以下將結(jié)合具體的實施例對本發(fā)明的技術(shù)方案進(jìn)行說明。在本發(fā)明的實施例中,首先,在TLC芯片固態(tài)硬盤的剩余存儲空間大于第一預(yù)設(shè)數(shù)值時,將數(shù)據(jù)流以每個存儲單元存儲一位數(shù)據(jù)的方式存儲到硬盤中。
此時,認(rèn)為硬盤的存儲空間相對較為富裕,可以將請求存儲的數(shù)據(jù)流都以具有最快存儲效率的第一存儲方式放到硬盤中,這里將以第一方式存進(jìn)的數(shù)據(jù)記做快速操作數(shù)據(jù)區(qū)??梢愿鶕?jù)具體的需要來設(shè)定該第一預(yù)設(shè)數(shù)值,例如可以為總存儲空間的一半或三分之二等,此時,可以使得固態(tài)硬盤的讀寫速度最大化。
而后,當(dāng)TLC芯片固態(tài)硬盤的剩余存儲空間小于第一預(yù)設(shè)數(shù)值時,以快速操作數(shù)據(jù)區(qū)所在的硬盤區(qū)域為第一區(qū)域,將第一區(qū)域中的熱數(shù)據(jù)以第二方式存儲到剩余存儲空間的第二區(qū)域中,將第一區(qū)域中的冷數(shù)據(jù)以第三方式存儲到剩余空間的第三區(qū)域中,其中,第一區(qū)域、第二區(qū)域和第三區(qū)域分別用于以第一方式、第二方式、第三方式存儲數(shù)據(jù)流。
此時,隨著第一方式存儲的數(shù)據(jù)越來越多,對存儲空間的消耗加大,剩余的存儲空間越來越小,根據(jù)快速操作數(shù)據(jù)區(qū)中的冷、熱數(shù)據(jù)的情況,將這些數(shù)據(jù)以另兩種占用存儲空間更小的方式存儲在不同的區(qū)域中,原來的快速操作數(shù)據(jù)區(qū)所在的區(qū)域仍用作后續(xù)數(shù)據(jù)流的以第一方式進(jìn)行存儲,這樣,在保證硬盤有足夠空間正常讀寫的情況下,兼顧讀寫速度,盡可能地提高讀寫性能。
在硬盤的剩余存儲空間小于第一預(yù)設(shè)數(shù)值時,硬盤被分成三個區(qū)域,第一區(qū)域為原快速操作數(shù)據(jù)區(qū)所在的硬盤區(qū)域,第一區(qū)域可以大于或等于快速操作數(shù)據(jù)區(qū)的區(qū)域,第二區(qū)域和第三區(qū)域是從剩余存儲空間劃分出來的,第一區(qū)域、第二區(qū)域、第三區(qū)域都是TLC芯片固態(tài)硬盤的邏輯區(qū)域,每一個區(qū)域可以是地址連續(xù)的一塊區(qū)域或多塊區(qū)域組成,這樣,將硬盤分成了三個區(qū)域,分別用于以第一方式、第二方式、第三方式存儲數(shù)據(jù)流。
具體的,將第一區(qū)域中的熱數(shù)據(jù)以第二方式存儲到第二區(qū)域中,將第一區(qū)域中的冷數(shù)據(jù)以第三方式存儲到第三區(qū)域中,這里的熱數(shù)據(jù)和冷數(shù)據(jù)是相對而言的,熱數(shù)據(jù)是相對于冷數(shù)據(jù)具有更高的訪問頻率的數(shù)據(jù)。
可以通過不同的方式確定第一區(qū)域中的冷數(shù)據(jù)和熱數(shù)據(jù),在一些實施例中,可以根據(jù)緩存中建立的冷熱數(shù)據(jù)鏈表,確定第一區(qū)域中的冷數(shù)據(jù)和熱數(shù)據(jù)。在一些應(yīng)用中,數(shù)據(jù)進(jìn)入硬盤之前,會先在緩存中建立冷熱數(shù)據(jù)鏈表,利用不同的算法和方法,可以建立不同的冷熱數(shù)據(jù)鏈表,例如冷熱數(shù)據(jù)鏈表中僅存在一個冷數(shù)據(jù)鏈表和一個熱數(shù)據(jù)鏈表,也可以存在多個冷數(shù)據(jù)鏈表或多個熱數(shù)據(jù)鏈表,在具體確定第一區(qū)域中的冷數(shù)據(jù)和熱數(shù)據(jù)時,根據(jù)冷熱鏈表,根據(jù)具體的需要,可以將熱鏈表中的數(shù)據(jù)作為第一區(qū)域中的熱數(shù)據(jù),冷鏈表中的數(shù)據(jù)作為第一區(qū)域中的冷數(shù)據(jù),當(dāng)鏈表為多個時,也可以將部分熱鏈表中的數(shù)據(jù)作為第一區(qū)域中的熱數(shù)據(jù),另一部分熱鏈表和冷鏈表中的數(shù)據(jù)作為第一區(qū)域中的冷數(shù)據(jù),可以理解的是,緩存中的冷熱鏈表并沒有包含第一區(qū)域中的所有數(shù)據(jù),第一區(qū)域中未在緩存冷熱鏈表中出現(xiàn)的數(shù)據(jù)為最近一段時間訪問很少的數(shù)據(jù),這些數(shù)據(jù)也認(rèn)為是冷數(shù)據(jù)。
在另一些實施例中,可以直接判斷冷熱數(shù)據(jù),根據(jù)最近一定時間段內(nèi)對第一區(qū)域中的數(shù)據(jù)的訪問頻率,確定第一區(qū)域中的冷數(shù)據(jù)和熱數(shù)據(jù)。具體可以通過統(tǒng)計一段時間對第一區(qū)域中的數(shù)據(jù)的訪問次數(shù),進(jìn)而獲得這段時間的訪問頻率,按照訪問頻率的排序或者訪問頻率的大小,確定一些數(shù)據(jù)為冷數(shù)據(jù),另一些數(shù)據(jù)為熱數(shù)據(jù)。
而后,將確定的熱數(shù)據(jù)將以第二方式移動存儲到第二區(qū)域中,將確定的冷數(shù)據(jù)以第三方式移動存儲到第三區(qū)域中,也就是說數(shù)據(jù)在存儲到第二區(qū)域之后,第一區(qū)域中的數(shù)據(jù)將被擦除。這樣,第一區(qū)域?qū)⑨尫懦鰜恚匀挥糜谝缘谝环绞酱鎯罄m(xù)請求存儲的數(shù)據(jù)流,而訪問次數(shù)少的數(shù)據(jù)以較為密集的方式存儲,訪問次數(shù)較多的數(shù)據(jù)以存儲速度和存儲密度居中的方式存儲,兼顧存儲和速度,提高了TLC芯片固態(tài)硬盤的速度和性價比。
由于數(shù)據(jù)量和存儲空間的不同,在一些實施例中,上述分區(qū)之后就可以以較高的性能實現(xiàn)數(shù)據(jù)的存儲,而在另一些實施例中,還需要進(jìn)一步的分區(qū)存儲,具體的,還包括以下繼續(xù)分區(qū)的步驟:
當(dāng)?shù)谝粎^(qū)域的剩余存儲空間大于第二預(yù)設(shè)數(shù)值時,將數(shù)據(jù)流以第一方式存儲到第一區(qū)域中;
當(dāng)?shù)谝粎^(qū)域的剩余存儲空間小于第二預(yù)設(shè)數(shù)值時,判斷第二區(qū)域是否具有足夠的空間容納第一區(qū)域中的熱數(shù)據(jù),若有,則將第一區(qū)域中的熱數(shù)據(jù)以第二方式移動存儲到第二區(qū)域中,若否,則將第一區(qū)域的至少部分空間增添到第二區(qū)域,并將第一區(qū)域中的熱數(shù)據(jù)以第二方式移動存儲到第二區(qū)域中;以及
判斷第三區(qū)域是否具有足夠的空間容納第一區(qū)域中的冷數(shù)據(jù),若有,則將第一區(qū)域中的冷數(shù)據(jù)以第三方式移動存儲到第三區(qū)域中,若否,則將第一區(qū)域的至少部分空間增添到第三區(qū)域,并將第一區(qū)域中的冷數(shù)據(jù)以第三方式移動存儲到第三區(qū)域中。
在該繼續(xù)分區(qū)的步驟中,在第一區(qū)域中繼續(xù)以第一方式存儲數(shù)據(jù)流,在第一區(qū)域存儲有一定的數(shù)據(jù)量之后,判斷第二區(qū)域和第三區(qū)域是否有足夠的空間進(jìn)行移動存儲,若有,則將第一區(qū)域中的熱數(shù)據(jù)以第二方式移動存儲到第二區(qū)域中,將第一區(qū)域中的冷數(shù)據(jù)以第三方式移動存儲到第三區(qū)域中;若沒有,則進(jìn)行存儲空間的再劃分,將第一區(qū)域的部分空間劃分給第二區(qū)域和/或第三區(qū)域,再將第一區(qū)域中的熱數(shù)據(jù)和冷數(shù)據(jù)移動存儲到第二區(qū)域和第三區(qū)域中,這樣,在充分保證硬盤正常讀寫的情況下,使得硬盤性能最大化。在該繼續(xù)分區(qū)的步驟中,冷數(shù)據(jù)和熱數(shù)據(jù)的確定的方法同上述實施例中的描述,這里不再贅述。根據(jù)具體的需要,該繼續(xù)分區(qū)的步驟可以重復(fù)多次,在數(shù)據(jù)存儲量不斷增加時,不斷的縮小第一區(qū)域所占的比重,充分保證硬盤正常讀寫。
對于上述的實施例,還可以進(jìn)一步進(jìn)行重新分區(qū),重新分區(qū)的步驟包括:根據(jù)TLC芯片固態(tài)硬盤中各區(qū)域內(nèi)存儲單元的剩余可擦寫次數(shù),重新劃分TLC芯片固態(tài)硬盤的第一區(qū)域、第二區(qū)域和第三區(qū)域,并進(jìn)行存儲數(shù)據(jù)的替換。
重新分區(qū)的步驟可以在任意時刻進(jìn)行,優(yōu)選在硬盤沒有操作時進(jìn)行,更優(yōu)地,可以在第一區(qū)域中的數(shù)據(jù)向第二區(qū)域和第三區(qū)域移動存儲之前進(jìn)行。在重新劃分區(qū)域時,主要考慮TLC芯片固態(tài)硬盤中各區(qū)域內(nèi)存儲單元的剩余可擦寫次數(shù),例如,在具體的實施例中,第一區(qū)域中的部分空間的剩余可擦寫次數(shù)小于一定的預(yù)設(shè)值,第二區(qū)域中的部分空間的剩余可擦寫次數(shù)小于另一預(yù)設(shè)值,而硬盤的其他空間存在剩余可擦寫次數(shù)大于一預(yù)設(shè)值的空間,則將第一區(qū)域和第二區(qū)域劃分到剩余可擦寫次數(shù)多的空間上,根據(jù)劃分空間的情況,再確定是否需要重新劃分第三區(qū)域。在重新劃分時,還要進(jìn)行存儲數(shù)據(jù)的替換,將原來各區(qū)域中的數(shù)據(jù)按照原有的存儲方式移動存儲到新劃分的各區(qū)域中,這樣,可以進(jìn)一步保證硬盤數(shù)據(jù)的正常讀寫。
以上對本發(fā)明實施例的TLC芯片固態(tài)硬盤的動態(tài)分區(qū)存儲方法進(jìn)行了詳細(xì)的說明,此外,本發(fā)明還提供了與上述方法相對應(yīng)的TLC芯片固態(tài)硬盤的動態(tài)分區(qū)存儲裝置,用于實現(xiàn)上述方法,參考圖2所示,該裝置200包括:
快速存儲單元210,用于當(dāng)TLC芯片固態(tài)硬盤的剩余存儲空間大于第一預(yù)設(shè)數(shù)值時,將數(shù)據(jù)流以第一方式存儲到TLC芯片固態(tài)硬盤中,以形成快速操作數(shù)據(jù)區(qū);
第二區(qū)域劃分存儲單元220,用于當(dāng)TLC芯片固態(tài)硬盤的剩余存儲空間小于第一預(yù)設(shè)數(shù)值時,以快速操作數(shù)據(jù)區(qū)所在的硬盤區(qū)域為第一區(qū)域,將第一區(qū)域中的熱數(shù)據(jù)以第二方式移動存儲到剩余存儲空間的第二區(qū)域中;
第三區(qū)域劃分存儲單元230,用于當(dāng)TLC芯片固態(tài)硬盤的剩余存儲空間小于第一預(yù)設(shè)數(shù)值時,將第一區(qū)域中的冷數(shù)據(jù)以第三方式移動存儲到剩余空間的第三區(qū)域中;
其中,第一方式為每個存儲單元存儲一位數(shù)據(jù)的方式,第二方式為每個存儲單元存儲兩位數(shù)據(jù)的方式,第三方式為每個存儲單元中存儲三位數(shù)據(jù)的方式。
進(jìn)一步地,還包括:
第一區(qū)域存儲單元,用于當(dāng)?shù)谝粎^(qū)域的剩余存儲空間大于第二預(yù)設(shè)數(shù)值時,將數(shù)據(jù)流以第一方式存儲到第一區(qū)域中;
第二區(qū)域再存儲單元,用于當(dāng)?shù)谝粎^(qū)域的剩余存儲空間小于第二預(yù)設(shè)數(shù)值時,判斷第二區(qū)域是否具有足夠的空間容納第一區(qū)域中的熱數(shù)據(jù),若有,則將第一區(qū)域中的熱數(shù)據(jù)以第二方式移動存儲到第二區(qū)域中,若否,則將第一區(qū)域的至少部分空間增添到第二區(qū)域,并將第一區(qū)域中的熱數(shù)據(jù)以第二方式移動存儲到第二區(qū)域中;
第三區(qū)域再存儲單元,用于當(dāng)?shù)谝粎^(qū)域的剩余存儲空間小于第二預(yù)設(shè)數(shù)值時,判斷第三區(qū)域是否具有足夠的空間容納第一區(qū)域中的冷數(shù)據(jù),若有,則將第一區(qū)域中的冷數(shù)據(jù)以第三方式移動存儲到第三區(qū)域中,若否,則將第一區(qū)域的至少部分空間增添到第三區(qū)域,并將第一區(qū)域中的冷數(shù)據(jù)以第三方式移動存儲到第三區(qū)域中。
進(jìn)一步地,還包括:
區(qū)域再劃分單元,用于根據(jù)TLC芯片固態(tài)硬盤中各區(qū)域內(nèi)存儲單元的剩余可擦寫次數(shù),重新劃分TLC芯片固態(tài)硬盤的第一區(qū)域、第二區(qū)域和第三區(qū)域,并進(jìn)行存儲數(shù)據(jù)的替換。
進(jìn)一步地,根據(jù)緩存中建立的冷熱數(shù)據(jù)鏈表,確定第一區(qū)域中的冷數(shù)據(jù)和熱數(shù)據(jù)。
進(jìn)一步地,根據(jù)最近一定時間段內(nèi)對第一區(qū)域中的數(shù)據(jù)的訪問頻率,確定第一區(qū)域中的冷數(shù)據(jù)和熱數(shù)據(jù)。
參考圖3和圖4所示,本發(fā)明還提供了包含上述任一存儲裝置200的TLC芯片固態(tài)硬盤的動態(tài)分區(qū)存儲系統(tǒng),該系統(tǒng)還包括TLC芯片固態(tài)硬盤300。
如圖3所示,在一些實施例中,存儲裝置200設(shè)置在主控單元310中,主控單元310可以為一主控芯片,主要負(fù)責(zé)固態(tài)硬盤的存儲管理并承擔(dān)數(shù)據(jù)的中轉(zhuǎn),主控芯片例如可以為MCU((Microcontroller Unit,微控制單元)芯片,主控單元將來自I/O的數(shù)據(jù)流動態(tài)存儲到TLC芯片固態(tài)硬盤300中,TLC芯片固態(tài)硬盤300可以包含一個或多個TLC緩存顆粒,在該實施例中,存儲系統(tǒng)還可以進(jìn)一步包括緩存單元320,緩存單元320用于常用文件的隨機(jī)性讀寫以及碎片文件快速讀寫的緩沖,存儲裝置200將來自緩存單元的數(shù)據(jù)流動態(tài)存儲到TLC芯片固態(tài)硬盤300中。
如圖4所示,在另一些實施例中,該存儲系統(tǒng)包括主控單元410以及與主控單元連接的所述的存儲裝置200,主控單元410可以為一主控芯片,主要負(fù)責(zé)固態(tài)硬盤的存儲管理并承擔(dān)數(shù)據(jù)的中轉(zhuǎn),主控芯片例如可以為MCU((Microcontroller Unit,微控制單元)芯片,所述的存儲裝置200可以為另一控制芯片,例如另一MCU芯片,主控單元410將來自I/O的數(shù)據(jù)流通過存儲裝置200動態(tài)存儲到TLC芯片固態(tài)硬盤400中,在該實施例中,存儲系統(tǒng)還可以進(jìn)一步包括緩存單元420,存儲裝置根據(jù)主控單元410的指令將來自緩存單元420的數(shù)據(jù)流動態(tài)存儲到TLC芯片固態(tài)硬盤400中。
本說明書中的各個實施例均采用遞進(jìn)的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于系統(tǒng)實施例而言,由于其基本相似于方法實施例,所以描述得比較簡單,相關(guān)之處參見方法實施例的部分說明即可。以上所描述的系統(tǒng)實施例僅僅是示意性的,其中所述作為分離部件說明的模塊或單元可以是或者也可以不是物理上分開的,作為模塊或單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上。可以根據(jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。
以上所述僅是本發(fā)明的優(yōu)選實施方式,雖然本發(fā)明已以較佳實施例披露如上,然而并非用以限定本發(fā)明。任何熟悉本領(lǐng)域的技術(shù)人員,在不脫離本發(fā)明技術(shù)方案范圍情況下,都可利用上述揭示的方法和技術(shù)內(nèi)容對本發(fā)明技術(shù)方案做出許多可能的變動和修飾,或修改為等同變化的等效實施例。因此,凡是未脫離本發(fā)明技術(shù)方案的內(nèi)容,依據(jù)本發(fā)明的技術(shù)實質(zhì)對以上實施例所做的任何的簡單修改、等同變化及修飾,均仍屬于本發(fā)明技術(shù)方案保護(hù)的范圍內(nèi)。