閃存物理塊的控制方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種閃存物理塊的控制方法及裝置,本發(fā)明實(shí)施例獲取閃存的物理塊中多層單元模式物理塊的信息,并實(shí)時(shí)檢測(cè)所述多層單元模式物理塊的安全等級(jí)值是否達(dá)到預(yù)設(shè)等級(jí)值;在所述安全等級(jí)值沒有達(dá)到預(yù)設(shè)等級(jí)值時(shí),將所述多層單元模式物理塊轉(zhuǎn)換為單層單元模式物理塊;利用轉(zhuǎn)換得到的單層單元模式物理塊進(jìn)行數(shù)據(jù)的寫入和/或存儲(chǔ),本發(fā)明實(shí)施例將不安全的多層單元模式物理塊轉(zhuǎn)換為單層單元模式物理塊,提高了閃存物理塊存儲(chǔ)數(shù)據(jù)的安全性。
【專利說明】閃存物理塊的控制方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)存儲(chǔ)領(lǐng)域,尤其涉及閃存物理塊的控制方法及裝置。
【背景技術(shù)】
[0002]閃存的物理塊存在兩種模式,分別是單層單元模式(SLC,Single-Level cell)和多層單元模式(MLC, Mult1-Level cell),所述多層單元模式還包括三層單元模式(TLC,Triple-Level cell),物理塊的工作模式不同其擦寫壽命也不同,當(dāng)物理塊的擦寫次數(shù)超過該物理塊工作模式的擦寫壽命時(shí),用該物理塊寫入或者讀取數(shù)據(jù)就會(huì)出錯(cuò),當(dāng)物理塊的擦寫壽命已盡不能正常運(yùn)行時(shí)會(huì)造成閃存不能再繼續(xù)正常運(yùn)行。
[0003]目前常用的做法是,在對(duì)物理塊進(jìn)行數(shù)據(jù)存儲(chǔ)時(shí),通常是直接將數(shù)據(jù)存儲(chǔ)至物理塊對(duì)應(yīng)的存儲(chǔ)區(qū)域,并不對(duì)上述物理塊是否能夠正常使用進(jìn)行檢測(cè);這種處理方式容易造成數(shù)據(jù)丟失,數(shù)據(jù)存儲(chǔ)的安全性不高。
[0004]上述內(nèi)容僅用于輔助理解本發(fā)明的技術(shù)方案,并不代表承認(rèn)上述內(nèi)容是現(xiàn)有技術(shù)。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的主要目的在于提供閃存物理塊的控制方法及裝置,旨在提高閃存物理塊存儲(chǔ)數(shù)據(jù)的安全性。
[0006]為實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例提供一種閃存物理塊的控制方法,所述方法包括以下步驟:
[0007]獲取閃存的物理塊中多層單元模式物理塊的信息,并實(shí)時(shí)檢測(cè)所述多層單元模式物理塊的安全等級(jí)值是否達(dá)到預(yù)設(shè)等級(jí)值;
[0008]在所述安全等級(jí)值沒有達(dá)到預(yù)設(shè)等級(jí)值時(shí),將所述多層單元模式物理塊轉(zhuǎn)換為單層單元模式物理塊;
[0009]利用轉(zhuǎn)換得到的單層單元模式物理塊進(jìn)行數(shù)據(jù)的寫入和/或存儲(chǔ)。
[0010]優(yōu)選地,所述實(shí)時(shí)檢測(cè)所述多層單元模式物理塊的安全等級(jí)值是否達(dá)到預(yù)設(shè)等級(jí)值,包括:
[0011]檢測(cè)所述多層單元模式物理塊的擦寫次數(shù)是否高于預(yù)設(shè)閾值;
[0012]和/或,檢測(cè)
[0013]所述多層單元模式物理塊的錯(cuò)誤檢查和糾正的比特?cái)?shù)與錯(cuò)誤檢查和糾正能力值的比值是否達(dá)到預(yù)設(shè)比值;
[0014]和/或,檢測(cè)
[0015]錯(cuò)誤檢查和糾正處理而無法進(jìn)行糾正的所述多層單元模式物理塊是否是通過錯(cuò)誤檢查和糾正處理而無法進(jìn)行糾正的物理塊。
[0016]優(yōu)選地,所述獲取閃存的物理塊中多層單元模式物理塊的信息,并實(shí)時(shí)檢測(cè)所述多層單元模式物理塊的安全等級(jí)值是否達(dá)到預(yù)設(shè)等級(jí)值的步驟之前還包括:[0017]將閃存中的物理塊劃分為算法區(qū)和第一數(shù)據(jù)區(qū),所述算法區(qū)包括閃存的物理塊中的單層單元模式物理塊,且所述算法區(qū)用于數(shù)據(jù)的寫入;所述第一數(shù)據(jù)區(qū)包括閃存的物理塊中的多層單元模式物理塊,且所述第一數(shù)據(jù)區(qū)用于數(shù)據(jù)的存儲(chǔ)。優(yōu)選地,所述利用轉(zhuǎn)換得到的所述單層單元模式物理塊進(jìn)行數(shù)據(jù)的寫入的步驟包括:
[0018]將所述轉(zhuǎn)換得到的單層單元模式物理塊加入所述閃存的算法區(qū);
[0019]在所述轉(zhuǎn)換得到的單層單元模式物理塊加入所述算法區(qū)后,利用所述轉(zhuǎn)換得到的單層單元模式物理塊進(jìn)行數(shù)據(jù)的編程。
[0020]優(yōu)選地,所述利用轉(zhuǎn)換得到的所述單層單元模式物理塊進(jìn)行數(shù)據(jù)的存儲(chǔ)的步驟包括:
[0021]將所述轉(zhuǎn)換得到的單層單元模式物理塊加入所述第一數(shù)據(jù)區(qū)或者將所述轉(zhuǎn)換得到的單層單元模式物理塊重新組成第二數(shù)據(jù)區(qū);
[0022]在將所述轉(zhuǎn)換得到的單層單元模式物理塊加入所述第一數(shù)據(jù)區(qū)或者將所述轉(zhuǎn)換得到的單層單元模式物理塊重新組成第二數(shù)據(jù)區(qū)后,利用所述轉(zhuǎn)換得到的單層單元模式物理塊進(jìn)行數(shù)據(jù)的存儲(chǔ),且所述第一數(shù)據(jù)區(qū)或者所述第二數(shù)據(jù)區(qū)在接收到需進(jìn)行存儲(chǔ)的數(shù)據(jù)時(shí),將所述需進(jìn)行存儲(chǔ)的數(shù)據(jù)優(yōu)先存儲(chǔ)在所述轉(zhuǎn)換得到的單層單元模式物理塊中。
[0023]本發(fā)明進(jìn)一步提供的閃存物理塊的控制裝置,所述裝置包括:
[0024]檢測(cè)模塊,用于獲取閃存的物理塊中多層單元模式物理塊的信息,并實(shí)時(shí)檢測(cè)所述多層單元模式物理塊的安全等級(jí)值是否達(dá)到預(yù)設(shè)等級(jí)值;
[0025]轉(zhuǎn)換模塊,用于在所述安全等級(jí)值沒有達(dá)到預(yù)設(shè)等級(jí)值時(shí),將所述多層單元模式物理塊轉(zhuǎn)換為單層單元模式物理塊;
[0026]分配模塊,用于利用所述轉(zhuǎn)換得到的單層單元模式物理塊進(jìn)行數(shù)據(jù)的寫入和/或存儲(chǔ)。
[0027]優(yōu)選地,所述檢測(cè)模塊包括:
[0028]擦寫次數(shù)評(píng)估單元,用于檢測(cè)所述多層單元模式物理塊的擦寫次數(shù)是否高于預(yù)設(shè)閾值;
[0029]和/ 或,
[0030]錯(cuò)誤率評(píng)估單元,用于檢測(cè)所述多層單元模式物理塊的錯(cuò)誤檢查和糾正的比特?cái)?shù)與錯(cuò)誤檢查和糾正能力值的比值是否達(dá)到預(yù)設(shè)比值;
[0031]和/ 或,
[0032]無法糾正評(píng)估單元,用于檢測(cè)所述多層單元模式物理塊是否是通過錯(cuò)誤檢查和糾正處理而無法進(jìn)行糾正的物理塊。
[0033]優(yōu)選地,所述裝置包括:
[0034]分區(qū)模塊,用于將閃存中的物理塊劃分為算法區(qū)和第一數(shù)據(jù)區(qū),所述算法區(qū)包括閃存的物理塊中的單層單元模式物理塊,且所述算法區(qū)用于數(shù)據(jù)的寫入;所述第一數(shù)據(jù)區(qū)包括閃存的物理塊中的多層單元模式物理塊,且所述第一數(shù)據(jù)區(qū)用于數(shù)據(jù)的存儲(chǔ)。
[0035]優(yōu)選地,所述分配模塊包括:
[0036]第一添加單元,用于將所述轉(zhuǎn)換得到的單層單元模式物理塊加入所述閃存的算法區(qū);
[0037]第一分工單元,用于在所述轉(zhuǎn)換得到的單層單元模式物理塊加入所述算法區(qū)后,利用所述轉(zhuǎn)換得到的單層單元模式物理塊進(jìn)行數(shù)據(jù)的編程。
[0038]優(yōu)選地,所述分配模塊包括:
[0039]第二添加單元,用于將所述轉(zhuǎn)換得到的單層單元模式物理塊加入所述第一數(shù)據(jù)區(qū)或者將所述轉(zhuǎn)換得到的單層單元模式物理塊重新組成第二數(shù)據(jù)區(qū);
[0040]第二分工單元,用于在將所述轉(zhuǎn)換得到的單層單元模式物理塊加入所述第一數(shù)據(jù)區(qū)或者將所述轉(zhuǎn)換得到的單層單元模式物理塊重新組成第二數(shù)據(jù)區(qū)后,利用所述轉(zhuǎn)換得到的單層單元模式物理塊進(jìn)行數(shù)據(jù)的存儲(chǔ),且所述第一數(shù)據(jù)區(qū)或者所述第二數(shù)據(jù)區(qū)在接收到需進(jìn)行存儲(chǔ)的數(shù)據(jù)時(shí),將所述需進(jìn)行存儲(chǔ)的數(shù)據(jù)優(yōu)先存儲(chǔ)在所述轉(zhuǎn)換得到的單層單元模式物理塊中。
[0041]本發(fā)明所能實(shí)現(xiàn)的有益效果是通過獲取多層單元模式物理塊的信息,實(shí)時(shí)檢測(cè)所述多層單元模式物理塊的安全等級(jí)值是否達(dá)到預(yù)設(shè)等級(jí)值,將所述安全等級(jí)值沒有達(dá)到預(yù)設(shè)等級(jí)值的多層單元模式物理塊轉(zhuǎn)換為擦寫壽命長、讀寫性能穩(wěn)定的單層單元模式物理塊繼續(xù)使用,使得閃存的存儲(chǔ)數(shù)據(jù)的安全性得到提高,又由于閃存中所述單層單元模式物理塊的增多,閃存的壽命和速度得到了提升,再者,將所述多層單元模式物理塊轉(zhuǎn)換得到的單層單元模式物理塊用于數(shù)據(jù)的寫入有利于閃存寫入的安全性的提高和速度的提升,通過將所述多層單元模式物理塊轉(zhuǎn)換得到的單層單元模式物理塊用于數(shù)據(jù)的存儲(chǔ)有利于提高閃存數(shù)據(jù)存儲(chǔ)的安全性。
【專利附圖】
【附圖說明】
[0042]圖1為本發(fā)明閃存物理塊的控制方法第一實(shí)施例的流程示意圖;
[0043]圖2為本發(fā)明閃存物理塊的控制方法第二實(shí)施例的流程示意圖;
[0044]圖3為本發(fā)明閃存物理塊的控制裝置第一實(shí)施例的功能模塊示意圖;
[0045]圖4為圖3閃存物理塊的控制裝置檢測(cè)模塊的功能單元示意圖;
[0046]圖5為本發(fā)明閃存物理塊的控制裝置第二實(shí)施例的功能模塊示意圖;
[0047]圖6為圖5閃存物理塊的控制裝置中分配模塊的功能單元示意圖;
[0048]圖7為圖5閃存物理塊的控制裝置中分配模塊的功能單元示意圖。
[0049]本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說明。
【具體實(shí)施方式】
[0050]應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0051]本發(fā)明提供一種閃存物理塊的控制方法,參照?qǐng)D1,在第一實(shí)施例中,該方法包括以下步驟:
[0052]步驟S11,獲取閃存的物理塊中多層單元模式物理塊的信息,并實(shí)時(shí)檢測(cè)所述多層單元模式物理塊的安全等級(jí)值是否達(dá)到預(yù)設(shè)等級(jí)值。
[0053]閃存的存儲(chǔ)空間是由物理塊組成的,物理塊存在兩種模式,分別是單層單元模式(SLC, Single-Level cell)和多層單兀模式(MLC, Mult1-Level cell),所述多層單兀模式還包括三層單元模式(TLC, Triple-Level cell),需要注意的是,本發(fā)明實(shí)施例中所述的多層單元模式(MLC)均包括三層單元模式(TLC),即所述MLC物理塊包括TLC物理塊。一些閃存的物理塊全部采用MLC (包括TLC),而一些閃存的物理塊全部采用SLC,還有一些閃存的物理塊一部分采用MLC且一部分采用SLC。SLC物理塊每個(gè)存儲(chǔ)單元存儲(chǔ)I個(gè)信息比特,擦寫壽命約為10萬次,其特點(diǎn)是傳輸速度快、功率消耗低、壽命長、性能穩(wěn)定,MLC物理塊每個(gè)存儲(chǔ)單元存儲(chǔ)2個(gè)信息比特,擦寫壽命約為3千到I萬次,相較于SLC物理塊,其具有傳輸速度較慢、功率消耗較高、存儲(chǔ)單元的壽命較低、存儲(chǔ)密度較大等特點(diǎn),TLC物理塊每個(gè)存儲(chǔ)單元存儲(chǔ)3個(gè)信息比特,擦寫壽命約為500次,相較于MLC物理塊其具有傳輸速度更慢、功率消耗更高、存儲(chǔ)單元的壽命更低、存儲(chǔ)密度更大等特點(diǎn)。
[0054]所述MLC物理塊的信息包括剩余擦寫壽命、錯(cuò)誤檢查和糾正值、錯(cuò)誤檢查和糾正記錄等信息,還可以包括物理塊模式信息等信息,所述MLC物理塊的信息可以保存在預(yù)設(shè)的物理塊的信息表或者分區(qū)的區(qū)信息表中,裝置可以通過讀取所述物理塊的信息表或者所述分區(qū)的區(qū)信息表獲取所需的信息,當(dāng)然還可以是裝置通過其他任何可以實(shí)現(xiàn)的方法完成。
[0055]裝置可以基于所述MLC物理塊的信息如剩余擦寫壽命、錯(cuò)誤檢查和糾正值、錯(cuò)誤檢查和糾正記錄等信息按照預(yù)設(shè)規(guī)則計(jì)算其安全等級(jí)值,實(shí)時(shí)檢測(cè)得出的安全等級(jí)值是否達(dá)到預(yù)設(shè)等級(jí)值。其中,計(jì)算其安全等級(jí)值時(shí),可以將上述剩余擦寫壽命、錯(cuò)誤檢查和糾正值、錯(cuò)誤檢查和糾正記錄作為計(jì)算安全等級(jí)值的安全參數(shù),并對(duì)上述安全參數(shù)分別賦予一定的權(quán)重值,根據(jù)得到上述安全參數(shù)及對(duì)應(yīng)的權(quán)重值計(jì)算其安全等級(jí)值;所述預(yù)設(shè)等級(jí)值可以根據(jù)裝置對(duì)所述安全等級(jí)值的歷史記錄數(shù)據(jù),由裝置本身設(shè)定;或者,由裝置根據(jù)用戶側(cè)的技術(shù)人員觸發(fā)的設(shè)置指令,接收技術(shù)人員設(shè)置的上述預(yù)設(shè)等級(jí)值。
[0056]步驟S12,在所述安全等級(jí)值沒有達(dá)到預(yù)設(shè)等級(jí)值時(shí),將所述多層單元模式物理塊轉(zhuǎn)換為單層單元模式物理塊。
[0057]經(jīng)裝置檢測(cè)發(fā)現(xiàn)所述MLC物理塊安全等級(jí)值沒有達(dá)到預(yù)設(shè)等級(jí)值時(shí),則認(rèn)為該MLC物理塊繼續(xù)使用已經(jīng)不安全,即該物理塊壽命已盡或者在存儲(chǔ)數(shù)據(jù)時(shí)經(jīng)常發(fā)生錯(cuò)誤、數(shù)據(jù)流失等問題,裝置將所述MLC物理塊轉(zhuǎn)換為SLC物理塊。例如,裝置檢測(cè)發(fā)現(xiàn)所述MLC物理塊安全等級(jí)值沒有達(dá)到預(yù)設(shè)等級(jí)值時(shí),則裝置在該物理塊中使用I比特用于標(biāo)記該物理塊,如裝置將安全等級(jí)值沒有達(dá)到預(yù)設(shè)等級(jí)值的MLC物理塊標(biāo)記為“ I ”,而將安全等級(jí)值達(dá)到預(yù)設(shè)等級(jí)值的MLC物理塊標(biāo)記為“0”,待裝置將檢測(cè)得到的所有安全等級(jí)值沒有達(dá)到預(yù)設(shè)等級(jí)值的MLC物理塊完成標(biāo)記后,先將所有標(biāo)記為“ I ”的MLC物理塊上的有效數(shù)據(jù)先轉(zhuǎn)存至其他物理塊上,然后再將該MLC物理塊的工作模式從MLC轉(zhuǎn)換為SLC,此時(shí),所述MLC物理塊已經(jīng)轉(zhuǎn)換為了所述SLC物理塊。裝置將已不安全的MLC物理塊轉(zhuǎn)換成讀寫性能穩(wěn)定的、壽命長的SLC物理塊繼續(xù)使用,使得閃存的存儲(chǔ)數(shù)據(jù)的安全性得到提高、使用壽命得到延長。
[0058]步驟S13,利用所述轉(zhuǎn)換得到的單層單元模式物理塊進(jìn)行數(shù)據(jù)的寫入和/或存儲(chǔ)。
[0059]裝置管理所述MLC物理塊轉(zhuǎn)換得到的SLC物理塊,利用所述轉(zhuǎn)換得到的SLC物理塊進(jìn)行數(shù)據(jù)的寫入,即所述轉(zhuǎn)換得到的SLC物理塊負(fù)責(zé)數(shù)據(jù)的寫入、暫存寫入的數(shù)據(jù)、將一定數(shù)量的暫存數(shù)據(jù)轉(zhuǎn)存到其他物理塊進(jìn)行存儲(chǔ),由于所述轉(zhuǎn)換得到的SLC物理塊穩(wěn)定性好、速度快,因此其用于數(shù)據(jù)的寫入時(shí),使得閃存的穩(wěn)定性得到提高,即進(jìn)一步提高了閃存寫入的安全性,且閃存寫入的速度也明顯的提高,特別是對(duì)于一些閃存中的物理塊全部采用MLC,當(dāng)部分安全等級(jí)值沒有達(dá)到預(yù)設(shè)等級(jí)值的MLC物理塊轉(zhuǎn)換成SLC物理塊且用于數(shù)據(jù)的寫入,所述閃存寫入的安全性和速度的提高是非常明顯的。[0060]裝置管理所述MLC物理塊轉(zhuǎn)換得到的SLC物理塊,將所述轉(zhuǎn)換得到的SLC物理塊用于數(shù)據(jù)的存儲(chǔ),即所述轉(zhuǎn)換得到的SLC物理塊不執(zhí)行寫入任務(wù),僅用于接收并存儲(chǔ)其他物理塊轉(zhuǎn)存來的數(shù)據(jù),由于所述轉(zhuǎn)換得到的SLC物理塊相較于所述MLC物理塊性能更為穩(wěn)定,即所述SLC物理的安全性能更高,因此提高了閃存數(shù)據(jù)存儲(chǔ)的安全性。
[0061]在一些實(shí)施例中,當(dāng)需要在閃存中保存重要數(shù)據(jù)時(shí),裝置還可以進(jìn)一步的將這些數(shù)據(jù)指定存儲(chǔ)在所述轉(zhuǎn)換得到的SLC物理塊中。
[0062]在一些實(shí)施例中,裝置還可以將部分所述轉(zhuǎn)換得到的SLC物理塊用于數(shù)據(jù)的寫入,并將另一部分所述轉(zhuǎn)換得到的SLC物理塊用于數(shù)據(jù)的存儲(chǔ)以滿足需要。
[0063]優(yōu)選地,在利用所述轉(zhuǎn)換得到的單層單元模式物理塊進(jìn)行數(shù)據(jù)的寫入和/或存儲(chǔ)的步驟之后還包括更新閃存物理塊信息、物理塊的地址信息、閃存轉(zhuǎn)換層中的地址映射表。
[0064]優(yōu)選地,所述實(shí)時(shí)檢測(cè)所述多層單元模式物理塊的安全等級(jí)值是否達(dá)到預(yù)設(shè)等級(jí)值,包括:
[0065]檢測(cè)所述多層單元模式物理塊的擦寫次數(shù)是否高于預(yù)設(shè)閾值;
[0066]和/或,檢測(cè)所述多層單元模式物理塊的錯(cuò)誤檢查和糾正的比特?cái)?shù)與錯(cuò)誤檢查和糾正能力值的比值是否達(dá)到預(yù)設(shè)比值;
[0067]和/或,檢測(cè)所述多層單元模式物理塊是否是通過錯(cuò)誤檢查和糾正處理而無法進(jìn)行糾正的物理塊。
[0068]下面基于上述三個(gè)條件舉例說明安全等級(jí)值的技術(shù)以及所述預(yù)設(shè)等級(jí)值的設(shè)定:
[0069]所述安全等級(jí)值和所述預(yù)設(shè)等級(jí)值可以是用量化的數(shù)值表示,也可以用能夠體現(xiàn)等級(jí)差異的代碼表示,還可以是其他任何適合的形式。
[0070]當(dāng)裝置獲取的所述MLC物理塊的擦寫次數(shù)大于預(yù)設(shè)閾值時(shí),則所述安全等級(jí)值不增加數(shù)值,當(dāng)裝置獲取的所述MLC物理塊的擦寫次數(shù)小于或等于預(yù)設(shè)閾值時(shí),則所述安全等級(jí)值增加數(shù)值“I”。此處的預(yù)設(shè)閾值可是裝置根據(jù)所述MLC物理塊的擦寫壽命來設(shè)定,或者是用戶端的技術(shù)人員觸發(fā)的設(shè)置指令,裝置接收技術(shù)人員設(shè)置的上述預(yù)設(shè)閾值。如所述MLC物理塊的擦寫壽命是500次,裝置設(shè)定所述預(yù)設(shè)閾值為450次,那么當(dāng)該MLC物理塊的擦寫次數(shù)大于450次時(shí),裝置則認(rèn)為該MLC物理塊已磨損嚴(yán)重,該MLC物理塊已經(jīng)不安全了,則該MLC物理塊的安全等級(jí)值不增加數(shù)值,即若該MLC物理塊的安全等級(jí)值的基數(shù)是“0”,那么該MLC物理塊的安全等級(jí)值依然是“0”,若該MLC物理塊的擦寫次數(shù)小于或等于450次時(shí),裝置則認(rèn)為該MLC物理塊仍安全,則該MLC物理塊的安全等級(jí)值增加數(shù)值“ I ”,即若該MLC物理塊的安全等級(jí)值的基數(shù)是“0”,那么該MLC物理塊的安全等級(jí)值現(xiàn)在變成了“I”。
[0071]當(dāng)裝置獲取的所述MLC物理塊的錯(cuò)誤檢查和糾正的比特?cái)?shù)與錯(cuò)誤檢查和糾正能力值的比值達(dá)到預(yù)設(shè)比值時(shí),則所述安全等級(jí)值不增加數(shù)值,當(dāng)裝置獲取的所述MLC物理塊的錯(cuò)誤檢查和糾正的比特?cái)?shù)與錯(cuò)誤檢查和糾正能力值的比值低于預(yù)設(shè)比值時(shí),則所述安全等級(jí)值增加數(shù)值“ I ”。所述錯(cuò)誤檢查和糾正比特?cái)?shù)是指該物理塊通過錯(cuò)誤檢查和糾正得到的錯(cuò)誤的比特?cái)?shù),所述錯(cuò)誤檢查和糾正能力值是指在該物理塊中最多能被檢查和糾正的比特?cái)?shù),此處的預(yù)設(shè)比值可是裝置根據(jù)所述MLC物理塊的錯(cuò)誤檢查和糾正的比特?cái)?shù)與錯(cuò)誤檢查和糾正能力值的比值達(dá)到預(yù)設(shè)比值的歷史數(shù)據(jù)來設(shè)定,或者是用戶端的技術(shù)人員觸發(fā)的設(shè)置指令,裝置接收技術(shù)人員設(shè)置的上述預(yù)設(shè)閾值。例如,設(shè)定預(yù)設(shè)比值為0.9,那么當(dāng)所述MLC物理塊的錯(cuò)誤檢查和糾正值與錯(cuò)誤檢查和糾正能力值的比值大于或等于0.9時(shí),則該MLC物理塊的安全等級(jí)值不增加數(shù)值,當(dāng)所述MLC物理塊的錯(cuò)誤檢查和糾正值與錯(cuò)誤檢查和糾正能力值的比值小于0.9時(shí),則該MLC物理塊的安全等級(jí)值增加數(shù)值“I”。
[0072]當(dāng)裝置檢測(cè)發(fā)現(xiàn)所述MLC物理塊通過錯(cuò)誤檢查和糾正處理而無法進(jìn)行糾正的時(shí),則所述安全等級(jí)值不增加數(shù)值,當(dāng)裝置檢測(cè)發(fā)現(xiàn)所述MLC物理塊通過錯(cuò)誤檢查和糾正處理可以進(jìn)行糾正時(shí),則所述安全等級(jí)值增加數(shù)值“I”。例如,當(dāng)裝置讀取所述MLC物理塊上的數(shù)據(jù)時(shí),如果發(fā)現(xiàn)通過錯(cuò)誤檢查和糾正處理而無法進(jìn)行糾正的,則記錄該MLC物理塊發(fā)生無法糾正的狀態(tài),并記錄該MLC物理塊發(fā)生無法糾正的頁的個(gè)數(shù)。導(dǎo)致這種通過錯(cuò)誤檢查和糾正處理而無法進(jìn)行糾正的的情況有兩種,一種是該MLC物理塊壽命終結(jié)且已經(jīng)不安全,存儲(chǔ)數(shù)據(jù)不穩(wěn)定了,另外一種情況是異常掉電導(dǎo)致寫入失敗。重新上電讀取數(shù)據(jù)異常發(fā)生無法糾正。當(dāng)裝置記錄得到無法糾正的的頁數(shù)大于預(yù)設(shè)頁數(shù)(如:3),且無法糾正的頁之間沒有關(guān)聯(lián)關(guān)系,則該MLC物理塊已經(jīng)不安全,而非異常掉電產(chǎn)生的無法糾正現(xiàn)象,當(dāng)裝置檢測(cè)得到是所述MLC物理塊已經(jīng)不安全,則所述安全等級(jí)值不增加數(shù)值,當(dāng)裝置檢測(cè)發(fā)現(xiàn)所述MLC物理塊通過錯(cuò)誤檢查和糾正處理可以進(jìn)行糾正時(shí),則所述安全等級(jí)值增加數(shù)值“I”。
[0073]假設(shè)所述安全等級(jí)值的基數(shù)為“0”,通過上述三個(gè)條件檢測(cè)后裝置得到所述MLC物理塊的安全等級(jí)值為“3”,若裝置根據(jù)用戶端的技術(shù)人員觸發(fā)的設(shè)置指令設(shè)置預(yù)設(shè)閾值為“3”,那么該MLC物理塊的安全等級(jí)值達(dá)到了所述預(yù)設(shè)等級(jí)值,若上述三個(gè)條件檢測(cè)后裝置得到所述MLC物理塊的安全等級(jí)值為“2”,那么該MLC物理塊的安全等級(jí)值沒有達(dá)到所述預(yù)設(shè)等級(jí)值。
[0074]本實(shí)施例通過獲取多層單元模式物理塊的信息,實(shí)時(shí)檢測(cè)所述多層單元模式物理塊的安全等級(jí)值是否達(dá)到預(yù)設(shè)等級(jí)值,將所述安全等級(jí)值沒有達(dá)到預(yù)設(shè)等級(jí)值的多層單元模式物理塊轉(zhuǎn)換為擦寫壽命長、讀寫性能穩(wěn)定的單層單元模式物理塊繼續(xù)使用,使得閃存的存儲(chǔ)數(shù)據(jù)的安全性得到提高,又由于閃存中所述單層單元模式物理塊的增多,閃存的壽命和速度得到了提升,再者,將所述多層單元模式物理塊轉(zhuǎn)換得到的單層單元模式物理塊用于數(shù)據(jù)的寫入有利于閃存寫入的安全性的提高和速度的提升,通過將所述多層單元模式物理塊轉(zhuǎn)換得到的單層單元模式物理塊用于數(shù)據(jù)的存儲(chǔ)有利于提高閃存數(shù)據(jù)存儲(chǔ)的安全性。
[0075]參照?qǐng)D2,為本發(fā)明閃存物理塊的控制方法的第二實(shí)施例,本實(shí)施例在第一實(shí)施例的基礎(chǔ)上,所述獲取閃存的物理塊中多層單元模式物理塊的信息,并實(shí)時(shí)檢測(cè)所述多層單元模式物理塊的安全等級(jí)值是否達(dá)到預(yù)設(shè)等級(jí)值的步驟之前還包括:
[0076]步驟S14,將閃存中的物理塊劃分為算法區(qū)和第一數(shù)據(jù)區(qū),所述算法區(qū)包括閃存的物理塊中的單層單元模式物理塊,且所述算法區(qū)用于數(shù)據(jù)的寫入;所述第一數(shù)據(jù)區(qū)包括閃存的物理塊中的多層單元模式物理塊,且所述第一數(shù)據(jù)區(qū)用于數(shù)據(jù)的存儲(chǔ)。
[0077]由于SLC物理塊、MLC物理塊的特點(diǎn)不同,因此裝置將閃存的物理塊分為算法區(qū)和第一數(shù)據(jù)區(qū),所述算法區(qū)包括SLC物理塊,且所述算法區(qū)用于數(shù)據(jù)的寫入,即所述算法區(qū)負(fù)責(zé)數(shù)據(jù)的寫入、暫存寫入的數(shù)據(jù)、將一定數(shù)量的暫存數(shù)據(jù)轉(zhuǎn)存到所述第一數(shù)據(jù)區(qū)進(jìn)行存儲(chǔ)等,所述第一數(shù)據(jù)區(qū)包括MLC物理塊,且所述第一數(shù)據(jù)區(qū)用于數(shù)據(jù)的存儲(chǔ),即所述第一數(shù)據(jù)區(qū)不執(zhí)行寫入任務(wù),僅用于接收并存儲(chǔ)所述算法區(qū)轉(zhuǎn)存來的數(shù)據(jù)。在進(jìn)行數(shù)據(jù)寫入時(shí),所述算法區(qū)中SLC物理塊的寫入速度遠(yuǎn)高于所述MLC物理塊從而提高了閃存的寫入速度,且所述SLC物理塊可以承受約十萬次的擦寫,所述SLC物理塊在所述算法區(qū)中承擔(dān)了所有的寫入操作從而減少了所述第一數(shù)據(jù)區(qū)的擦寫次數(shù),而所述MLC物理塊由于速度慢、壽命短、存儲(chǔ)密度大被劃分在所述第一數(shù)據(jù)區(qū)用于數(shù)據(jù)的存儲(chǔ),當(dāng)所述算法區(qū)被多次寫入而達(dá)到一定數(shù)量的數(shù)據(jù)存儲(chǔ)量時(shí)再將數(shù)據(jù)轉(zhuǎn)存至所述第一數(shù)據(jù)區(qū),由于所述第一數(shù)據(jù)區(qū)中的MLC物理塊存儲(chǔ)容量大,因此閃存可以以較低的成本存儲(chǔ)更多的數(shù)據(jù)。
[0078]優(yōu)選地,所述利用轉(zhuǎn)換后的所述單層單元模式物理塊進(jìn)行數(shù)據(jù)的寫入的步驟包括:
[0079]將所述轉(zhuǎn)換得到的單層單元模式物理塊加入所述閃存的算法區(qū);
[0080]在所述轉(zhuǎn)換得到的單層單元模式物理塊加入所述算法區(qū)后,利用所述轉(zhuǎn)換得到的單層單元模式物理塊進(jìn)行數(shù)據(jù)的編程。
[0081]裝置將所述轉(zhuǎn)換得到的SLC物理塊分配到所述算法區(qū)中,此時(shí),所述算法區(qū)中包括了原有的SLC物理塊以及所述MLC物理塊轉(zhuǎn)換得到的SLC物理塊,且所述算法區(qū)負(fù)責(zé)數(shù)據(jù)的寫入,那么所述轉(zhuǎn)換得到的SLC物理塊被分配到所述算法區(qū)之后,也用于數(shù)據(jù)的寫入。所述算法區(qū)中SLC物理塊越多,閃存的寫入速度和寫入安全性就越高。
[0082]優(yōu)選地,所述進(jìn)行轉(zhuǎn)換后的所述單層單元模式物理塊進(jìn)行數(shù)據(jù)的存儲(chǔ)的步驟包括:
[0083]將所述轉(zhuǎn)換得到的單層單元模式物理塊加入所述第一數(shù)據(jù)區(qū)或者將所述轉(zhuǎn)換得到的單層單元模式物理塊重新組成第二數(shù)據(jù)區(qū);
[0084]在將所述轉(zhuǎn)換得到的單層單元模式物理塊加入所述第一數(shù)據(jù)區(qū)或者將所述轉(zhuǎn)換得到的單層單元模式物理塊重新組成第二數(shù)據(jù)區(qū)后,利用所述轉(zhuǎn)換得到的單層單元模式物理塊進(jìn)行數(shù)據(jù)的存儲(chǔ),且所述第一數(shù)據(jù)區(qū)或者所述第二數(shù)據(jù)區(qū)在接收到需進(jìn)行存儲(chǔ)的數(shù)據(jù)時(shí),將所述需進(jìn)行存儲(chǔ)的數(shù)據(jù)優(yōu)先存儲(chǔ)在所述轉(zhuǎn)換得到的單層單元模式物理塊中。
[0085]裝置將所述轉(zhuǎn)換得到的SLC物理塊分配到現(xiàn)有的數(shù)據(jù)區(qū)中,此時(shí),所述第一數(shù)據(jù)區(qū)中包括了原有的MLC物理塊以及所述MLC物理塊轉(zhuǎn)換得到的SLC物理塊,且所述第一數(shù)據(jù)區(qū)負(fù)責(zé)數(shù)據(jù)的存儲(chǔ),那么所述轉(zhuǎn)換得到的SLC物理塊被分配到所述第一數(shù)據(jù)區(qū)之后,也用于數(shù)據(jù)的存儲(chǔ)。裝置還可以將所述轉(zhuǎn)換得到的SLC物理塊重新組成第二數(shù)據(jù)區(qū),即所述第二數(shù)據(jù)區(qū)中只有所述轉(zhuǎn)換得到的SLC物理塊,且所述第二數(shù)據(jù)區(qū)負(fù)責(zé)數(shù)據(jù)的存儲(chǔ)。用于數(shù)據(jù)的存儲(chǔ)的SLC物理塊越多,閃存的數(shù)據(jù)存儲(chǔ)的安全性就越高。
[0086]再者,所述第一數(shù)據(jù)區(qū)或者所述第二數(shù)據(jù)區(qū)在接收到需進(jìn)行存儲(chǔ)的數(shù)據(jù)時(shí),將所述需進(jìn)行存儲(chǔ)的數(shù)據(jù)優(yōu)先存儲(chǔ)在所述轉(zhuǎn)換得到的單層單元模式物理塊中,則進(jìn)一步提高了閃存的數(shù)據(jù)存儲(chǔ)的安全性。
[0087]本發(fā)明進(jìn)一步提供的閃存物理塊的控制裝置,參照?qǐng)D3,為所述裝置的第一實(shí)施例,該裝置包括:
[0088]檢測(cè)模塊11,用于獲取閃存的物理塊中多層單元模式物理塊的信息,并實(shí)時(shí)檢測(cè)所述多層單元模式物理塊的安全等級(jí)值是否達(dá)到預(yù)設(shè)等級(jí)值。
[0089]閃存的存儲(chǔ)空間是由物理塊組成的,物理塊存在兩種模式,分別是單層單元模式(SLC, Single-Level cell)和多層單兀模式(MLC, Mult1-Level cell),所述多層單兀模式還包括三層單元模式(TLC, Triple-Level cell),需要注意的是,本發(fā)明實(shí)施例中所述的多層單元模式(MLC)均包括三層單元模式(TLC),即所述MLC物理塊包括TLC物理塊。一些閃存的物理塊全部采用MLC (包括TLC),而一些閃存的物理塊全部采用SLC,還有一些閃存的物理塊一部分采用MLC且一部分采用SLC。SLC物理塊每個(gè)存儲(chǔ)單元存儲(chǔ)I個(gè)信息比特,擦寫壽命約為10萬次,其特點(diǎn)是傳輸速度快、功率消耗低、壽命長、性能穩(wěn)定,MLC物理塊每個(gè)存儲(chǔ)單元存儲(chǔ)2個(gè)信息比特,擦寫壽命約為3千到I萬次,相較于SLC物理塊,其具有傳輸速度較慢、功率消耗較高、存儲(chǔ)單元的壽命較低、存儲(chǔ)密度較大等特點(diǎn),TLC物理塊每個(gè)存儲(chǔ)單元存儲(chǔ)3個(gè)信息比特,擦寫壽命約為500次,相較于MLC物理塊其具有傳輸速度更慢、功率消耗更高、存儲(chǔ)單元的壽命更低、存儲(chǔ)密度更大等特點(diǎn)。
[0090]所述MLC物理塊的信息包括剩余擦寫壽命、錯(cuò)誤檢查和糾正值、錯(cuò)誤檢查和糾正記錄等信息,還可以包括物理塊模式信息等信息,所述MLC物理塊的信息可以保存在預(yù)設(shè)的物理塊的信息表或者分區(qū)的區(qū)信息表中,檢測(cè)模塊11可以通過讀取所述物理塊的信息表或者所述分區(qū)的區(qū)信息表獲取所需的信息,當(dāng)然還可以是檢測(cè)模塊11通過其他任何可以實(shí)現(xiàn)的方法完成。
[0091]檢測(cè)模塊11可以基于所述MLC物理塊的信息如剩余擦寫壽命、錯(cuò)誤檢查和糾正值、錯(cuò)誤檢查和糾正記錄等信息按照預(yù)設(shè)規(guī)則計(jì)算其安全等級(jí)值,實(shí)時(shí)檢測(cè)得出的安全等級(jí)值是否達(dá)到預(yù)設(shè)等級(jí)值。其中,計(jì)算其安全等級(jí)值時(shí),可以將上述剩余擦寫壽命、錯(cuò)誤檢查和糾正值、錯(cuò)誤檢查和糾正記錄作為計(jì)算安全等級(jí)值的安全參數(shù),并對(duì)上述安全參數(shù)分別賦予一定的權(quán)重值,根據(jù)得到上述安全參數(shù)及對(duì)應(yīng)的權(quán)重值計(jì)算其安全等級(jí)值;所述預(yù)設(shè)等級(jí)值可以根據(jù)檢測(cè)模塊11對(duì)所述安全等級(jí)值的歷史記錄數(shù)據(jù),由檢測(cè)模塊11本身設(shè)定;或者,由檢測(cè)模塊11根據(jù)用戶側(cè)的技術(shù)人員觸發(fā)的設(shè)置指令,接收技術(shù)人員設(shè)置的上述預(yù)設(shè)等級(jí)值。
[0092]轉(zhuǎn)換模塊12,用于在所述安全等級(jí)值沒有達(dá)到預(yù)設(shè)等級(jí)值時(shí),將所述多層單元模式物理塊轉(zhuǎn)換為單層單元模式物理塊。
[0093]經(jīng)檢測(cè)模塊11檢測(cè)發(fā)現(xiàn)所述MLC物理塊安全等級(jí)值沒有達(dá)到預(yù)設(shè)等級(jí)值時(shí),則認(rèn)為該MLC物理塊繼續(xù)使用已經(jīng)不安全,即該物理塊壽命已盡或者在存儲(chǔ)數(shù)據(jù)時(shí)經(jīng)常發(fā)生錯(cuò)誤、數(shù)據(jù)流失等問題,轉(zhuǎn)換模塊12將所述MLC物理塊轉(zhuǎn)換為SLC物理塊。例如,檢測(cè)模塊11檢測(cè)發(fā)現(xiàn)所述MLC物理塊安全等級(jí)值沒有達(dá)到預(yù)設(shè)等級(jí)值時(shí),則轉(zhuǎn)換模塊12在該物理塊中使用I比特用于標(biāo)記該物理塊,如轉(zhuǎn)換模塊12將安全等級(jí)值沒有達(dá)到預(yù)設(shè)等級(jí)值的MLC物理塊標(biāo)記為“ I ”,而將安全等級(jí)值達(dá)到預(yù)設(shè)等級(jí)值的MLC物理塊標(biāo)記為“0”,待轉(zhuǎn)換模塊12將檢測(cè)得到的所有安全等級(jí)值沒有達(dá)到預(yù)設(shè)等級(jí)值的MLC物理塊完成標(biāo)記后,先將所有標(biāo)記為“ I ”的MLC物理塊上的有效數(shù)據(jù)先轉(zhuǎn)存至其他物理塊上,然后再將該MLC物理塊的工作模式從MLC轉(zhuǎn)換為SLC,此時(shí),所述MLC物理塊已經(jīng)轉(zhuǎn)換為了所述SLC物理塊。轉(zhuǎn)換模塊12將已不安全的MLC物理塊轉(zhuǎn)換成讀寫性能穩(wěn)定的、壽命長的SLC物理塊繼續(xù)使用,使得閃存的存儲(chǔ)數(shù)據(jù)的安全性得到提高、使用壽命得到延長。
[0094]分配模塊13,用于利用所述轉(zhuǎn)換得到的單層單元模式物理塊進(jìn)行數(shù)據(jù)的寫入和/或存儲(chǔ)。
[0095]分配模塊13管理所述MLC物理塊轉(zhuǎn)換得到的SLC物理塊,利用所述轉(zhuǎn)換得到的SLC物理塊進(jìn)行數(shù)據(jù)的寫入,即所述轉(zhuǎn)換得到的SLC物理塊負(fù)責(zé)數(shù)據(jù)的寫入、暫存寫入的數(shù)據(jù)、將一定數(shù)量的暫存數(shù)據(jù)轉(zhuǎn)存到其他物理塊進(jìn)行存儲(chǔ),由于所述轉(zhuǎn)換得到的SLC物理塊穩(wěn)定性好、速度快,因此其用于數(shù)據(jù)的寫入時(shí),使得閃存的穩(wěn)定性得到提高,即進(jìn)一步提高了閃存寫入的安全性,且閃存寫入的速度也明顯的提高,特別是對(duì)于一些閃存中的物理塊全部采用MLC,當(dāng)部分安全等級(jí)值沒有達(dá)到預(yù)設(shè)等級(jí)值的MLC物理塊轉(zhuǎn)換成SLC物理塊且用于數(shù)據(jù)的寫入,所述閃存寫入的安全性和速度的提高是非常明顯的。
[0096]分配模塊13管理所述MLC物理塊轉(zhuǎn)換得到的SLC物理塊,將所述轉(zhuǎn)換得到的SLC物理塊用于數(shù)據(jù)的存儲(chǔ),即所述轉(zhuǎn)換得到的SLC物理塊不執(zhí)行寫入任務(wù),僅用于接收并存儲(chǔ)其他物理塊轉(zhuǎn)存來的數(shù)據(jù),由于所述轉(zhuǎn)換得到的SLC物理塊相較于所述MLC物理塊性能更為穩(wěn)定,即所述SLC物理的安全性能更高,因此提高了閃存數(shù)據(jù)存儲(chǔ)的安全性。
[0097]在一些實(shí)施例中,當(dāng)需要在閃存中保存重要數(shù)據(jù)時(shí),分配模塊13還可以進(jìn)一步的將這些數(shù)據(jù)指定存儲(chǔ)在所述轉(zhuǎn)換得到的SLC物理塊中。
[0098]在一些實(shí)施例中,分配模塊13還可以將部分所述轉(zhuǎn)換得到的SLC物理塊用于數(shù)據(jù)的寫入,并將另一部分所述轉(zhuǎn)換得到的SLC物理塊用于數(shù)據(jù)的存儲(chǔ)以滿足需要。
[0099]優(yōu)選地,在利用所述轉(zhuǎn)換得到的單層單元模式物理塊進(jìn)行數(shù)據(jù)的寫入和/或存儲(chǔ)的步驟之后還包括更新模塊更新閃存物理塊信息、物理塊的地址信息、閃存轉(zhuǎn)換層中的地址映射表。
[0100]如圖4所示,優(yōu)選地,所述檢測(cè)模塊11包括:
[0101]擦寫次數(shù)評(píng)估單元111,用于檢測(cè)所述多層單元模式物理塊的擦寫次數(shù)是否高于預(yù)設(shè)閾值;
[0102]和/ 或,
[0103]錯(cuò)誤率評(píng)估單元112,用于檢測(cè)所述多層單元模式物理塊的錯(cuò)誤檢查和糾正的比特?cái)?shù)與錯(cuò)誤檢查和糾正能力值的比值是否達(dá)到預(yù)設(shè)比值;
[0104]和/ 或,
[0105]無法糾正評(píng)估單元113,用于檢測(cè)所述多層單元模式物理塊是否是通過錯(cuò)誤檢查和糾正處理而無法進(jìn)行糾正的物理塊。
[0106]下面基于上述三個(gè)條件舉例說明安全等級(jí)值的技術(shù)以及所述預(yù)設(shè)等級(jí)值的設(shè)定:
[0107]所述安全等級(jí)值和所述預(yù)設(shè)等級(jí)值可以是用量化的數(shù)值表示,也可以用能夠體現(xiàn)等級(jí)差異的代碼表示,還可以是其他任何適合的形式。
[0108]當(dāng)擦寫次數(shù)評(píng)估單元111獲取的所述MLC物理塊的擦寫次數(shù)大于預(yù)設(shè)閾值時(shí),則所述安全等級(jí)值不增加數(shù)值,當(dāng)擦寫次數(shù)評(píng)估單元111獲取的所述MLC物理塊的擦寫次數(shù)小于或等于預(yù)設(shè)閾值時(shí),則所述安全等級(jí)值增加數(shù)值“ I ”。此處的預(yù)設(shè)閾值可是擦寫次數(shù)評(píng)估單元111根據(jù)所述MLC物理塊的擦寫壽命來設(shè)定,或者是用戶端的技術(shù)人員觸發(fā)的設(shè)置指令,擦寫次數(shù)評(píng)估單元111接收技術(shù)人員設(shè)置的上述預(yù)設(shè)閾值。如所述MLC物理塊的擦寫壽命是500次,擦寫次數(shù)評(píng)估單元111設(shè)定所述預(yù)設(shè)閾值為450次,那么當(dāng)該MLC物理塊的擦寫次數(shù)大于450次時(shí),擦寫次數(shù)評(píng)估單元111則認(rèn)為該MLC物理塊已磨損嚴(yán)重,該MLC物理塊已經(jīng)不安全了,則該MLC物理塊的安全等級(jí)值不增加數(shù)值,即若該MLC物理塊的安全等級(jí)值的基數(shù)是“0”,那么該MLC物理塊的安全等級(jí)值依然是“0”,若該MLC物理塊的擦寫次數(shù)小于或等于450次時(shí),擦寫次數(shù)評(píng)估單元111則認(rèn)為該MLC物理塊仍安全,則該MLC物理塊的安全等級(jí)值增加數(shù)值“1”,即若該MLC物理塊的安全等級(jí)值的基數(shù)是“O”,那么該MLC物理塊的安全等級(jí)值現(xiàn)在變成了 “I”。
[0109]當(dāng)錯(cuò)誤率評(píng)估單元112獲取的所述MLC物理塊的錯(cuò)誤檢查和糾正的比特?cái)?shù)與錯(cuò)誤檢查和糾正能力值的比值達(dá)到預(yù)設(shè)比值時(shí),則所述安全等級(jí)值不增加數(shù)值,當(dāng)錯(cuò)誤率評(píng)估單元112獲取的所述MLC物理塊的錯(cuò)誤檢查和糾正的比特?cái)?shù)與錯(cuò)誤檢查和糾正能力值的比值低于預(yù)設(shè)比值時(shí),則所述安全等級(jí)值增加數(shù)值“I”。所述錯(cuò)誤檢查和糾正比特?cái)?shù)是指該物理塊通過錯(cuò)誤檢查和糾正得到的錯(cuò)誤的比特?cái)?shù),所述錯(cuò)誤檢查和糾正能力值是指在該物理塊中最多能被檢查和糾正的比特?cái)?shù),此處的預(yù)設(shè)比值可是錯(cuò)誤率評(píng)估單元112根據(jù)所述MLC物理塊的擦寫壽命來設(shè)定,或者是用戶端的技術(shù)人員觸發(fā)的設(shè)置指令,錯(cuò)誤率評(píng)估單元112接收技術(shù)人員設(shè)置的上述預(yù)設(shè)閾值。例如,設(shè)定預(yù)設(shè)比值為0.9,那么當(dāng)所述MLC物理塊的錯(cuò)誤檢查和糾正值與錯(cuò)誤檢查和糾正能力值的比值大于或等于0.9時(shí),則該MLC物理塊的安全等級(jí)值不增加數(shù)值,當(dāng)所述MLC物理塊的錯(cuò)誤檢查和糾正值與錯(cuò)誤檢查和糾正能力值的比值小于0.9時(shí),則該MLC物理塊的安全等級(jí)值增加數(shù)值“ I ”。
[0110]當(dāng)無法糾正評(píng)估單元113檢測(cè)發(fā)現(xiàn)所述MLC物理塊通過錯(cuò)誤檢查和糾正處理而無法進(jìn)行糾正的時(shí),則所述安全等級(jí)值不增加數(shù)值,當(dāng)無法糾正評(píng)估單元113檢測(cè)發(fā)現(xiàn)所述MLC物理塊通過錯(cuò)誤檢查和糾正處理可以進(jìn)行糾正時(shí),則所述安全等級(jí)值增加數(shù)值“I”。例如,當(dāng)無法糾正評(píng)估單元113讀取所述MLC物理塊上的數(shù)據(jù)時(shí),如果發(fā)現(xiàn)通過錯(cuò)誤檢查和糾正處理而無法進(jìn)行糾正的,則記錄該MLC物理塊發(fā)生無法糾正的狀態(tài),并記錄該MLC物理塊發(fā)生無法糾正的頁的個(gè)數(shù)。導(dǎo)致這種通過錯(cuò)誤檢查和糾正處理而無法進(jìn)行糾正的的情況有兩種,一種是該MLC物理塊壽命終結(jié)且已經(jīng)不安全,存儲(chǔ)數(shù)據(jù)不穩(wěn)定了,另外一種情況是異常掉電導(dǎo)致寫入失敗。重新上電讀取數(shù)據(jù)異常發(fā)生無法糾正。當(dāng)裝置記錄得到無法糾正的的頁數(shù)大于預(yù)設(shè)頁數(shù)(如:3),且無法糾正的頁之間沒有關(guān)聯(lián)關(guān)系,則該MLC物理塊已經(jīng)不安全,而非異常掉電產(chǎn)生的無法糾正現(xiàn)象,當(dāng)無法糾正評(píng)估單元113檢測(cè)得到是所述MLC物理塊已經(jīng)不安全,則所述安全等級(jí)值不增加數(shù)值,當(dāng)無法糾正評(píng)估單元113檢測(cè)發(fā)現(xiàn)所述MLC物理塊通過錯(cuò)誤檢查和糾正處理可以進(jìn)行糾正時(shí),則所述安全等級(jí)值增加數(shù)值“I”。
[0111]假設(shè)所述安全等級(jí)值的基數(shù)為“0”,通過上述三個(gè)條件檢測(cè)后檢測(cè)模塊11得到所述MLC物理塊的安全等級(jí)值為“3”,若檢測(cè)模塊11根據(jù)用戶端的技術(shù)人員觸發(fā)的設(shè)置指令設(shè)置預(yù)設(shè)閾值為“3”,那么該MLC物理塊的安全等級(jí)值達(dá)到了所述預(yù)設(shè)等級(jí)值,若上述三個(gè)條件檢測(cè)后檢測(cè)模塊11得到所述MLC物理塊的安全等級(jí)值為“2”,那么該MLC物理塊的安全等級(jí)值沒有達(dá)到所述預(yù)設(shè)等級(jí)值。
[0112]本實(shí)施例通過檢測(cè)模塊11獲取多層單元模式物理塊的信息,實(shí)時(shí)檢測(cè)所述多層單元模式物理塊的安全等級(jí)值是否達(dá)到預(yù)設(shè)等級(jí)值,轉(zhuǎn)換模塊12將所述安全等級(jí)值沒有達(dá)到預(yù)設(shè)等級(jí)值的多層單元模式物理塊轉(zhuǎn)換為擦寫壽命長、讀寫性能穩(wěn)定的單層單元模式物理塊繼續(xù)使用,使得閃存的存儲(chǔ)數(shù)據(jù)的安全性得到提高,又由于閃存中所述單層單元模式物理塊的增多,閃存的壽命和速度得到了提升,再者,分配模塊13將所述多層單元模式物理塊轉(zhuǎn)換得到的單層單元模式物理塊用于數(shù)據(jù)的寫入有利于閃存寫入的安全性的提高和速度的提升,分配模塊13將所述多層單元模式物理塊轉(zhuǎn)換得到的單層單元模式物理塊用于數(shù)據(jù)的存儲(chǔ)有利于提高閃存數(shù)據(jù)存儲(chǔ)的安全性。
[0113]參照?qǐng)D5,為本發(fā)明閃存物理塊的控制裝置的第二實(shí)施例,本實(shí)施例在該裝置的第一實(shí)施例的基礎(chǔ)上,還包括:
[0114]分區(qū)模塊14,用于將閃存中的物理塊劃分為算法區(qū)和第一數(shù)據(jù)區(qū),所述算法區(qū)包括閃存的物理塊中的單層單元模式物理塊,且所述算法區(qū)用于數(shù)據(jù)的寫入;所述第一數(shù)據(jù)區(qū)包括閃存的物理塊中的多層單元模式物理塊,且所述第一數(shù)據(jù)區(qū)用于數(shù)據(jù)的存儲(chǔ)。
[0115]由于SLC物理塊、MLC物理塊的特點(diǎn)不同,因此分區(qū)模塊14將閃存的物理塊分為算法區(qū)和數(shù)據(jù)區(qū),所述算法區(qū)包括SLC物理塊,且所述算法區(qū)用于數(shù)據(jù)的寫入,即所述算法區(qū)負(fù)責(zé)數(shù)據(jù)的寫入、暫存寫入的數(shù)據(jù)、將一定數(shù)量的暫存數(shù)據(jù)轉(zhuǎn)存到所述第一數(shù)據(jù)區(qū)進(jìn)行存儲(chǔ)等,所述第一數(shù)據(jù)區(qū)包括MLC物理塊,且所述第一數(shù)據(jù)區(qū)用于數(shù)據(jù)的存儲(chǔ),即所述第一數(shù)據(jù)區(qū)不執(zhí)行寫入任務(wù),僅用于接收并存儲(chǔ)所述算法區(qū)轉(zhuǎn)存來的數(shù)據(jù)。在進(jìn)行數(shù)據(jù)寫入時(shí),所述算法區(qū)中SLC物理塊的寫入速度遠(yuǎn)高于所述MLC物理塊從而提高了閃存的寫入速度,且所述SLC物理塊可以承受約十萬次的擦寫,所述SLC物理塊在所述算法區(qū)中承擔(dān)了所有的寫入操作從而減少了所述第一數(shù)據(jù)區(qū)的擦寫次數(shù),而所述MLC物理塊由于速度慢、壽命短、存儲(chǔ)密度大被劃分在所述第一數(shù)據(jù)區(qū)用于數(shù)據(jù)的存儲(chǔ),當(dāng)所述算法區(qū)被多次寫入而達(dá)到一定數(shù)量的數(shù)據(jù)存儲(chǔ)量時(shí)再將數(shù)據(jù)轉(zhuǎn)存至所述第一數(shù)據(jù)區(qū),由于所述第一數(shù)據(jù)區(qū)中的MLC物理塊存儲(chǔ)容量大,因此閃存可以以較低的成本存儲(chǔ)更多的數(shù)據(jù)。
[0116]如圖6所示,優(yōu)選地,所述分配模塊13包括:
[0117]第一添加單元131,用于將所述轉(zhuǎn)換得到的單層單元模式物理塊加入所述閃存的算法區(qū);
[0118]第一分工單元132,用于在所述轉(zhuǎn)換得到的單層單元模式物理塊加入所述算法區(qū)后,利用所述轉(zhuǎn)換得到的單層單元模式物理塊進(jìn)行數(shù)據(jù)的編程。
[0119]第一添加單元131將所述轉(zhuǎn)換得到的SLC物理塊分配到所述算法區(qū)中,此時(shí),所述算法區(qū)中包括了原有的SLC物理塊以及所述MLC物理塊轉(zhuǎn)換得到的SLC物理塊,且所述算法區(qū)負(fù)責(zé)數(shù)據(jù)的寫入,那么所述轉(zhuǎn)換得到的SLC物理塊被分配到所述算法區(qū)之后,第一分工單元132將所述轉(zhuǎn)換得到的SLC物理塊分配用于數(shù)據(jù)的寫入。所述算法區(qū)中SLC物理塊越多,閃存的寫入速度和寫入安全性就越高。
[0120]如圖7所示,優(yōu)選地,所述分配模塊13包括:
[0121]第二添加單元133,用于將所述轉(zhuǎn)換得到的單層單元模式物理塊加入所述第一數(shù)據(jù)區(qū)或者將所述轉(zhuǎn)換得到的單層單元模式物理塊重新組成第二數(shù)據(jù)區(qū);
[0122]第二分工單元134,用于在將所述轉(zhuǎn)換得到的單層單元模式物理塊加入所述第一數(shù)據(jù)區(qū)或者將所述轉(zhuǎn)換得到的單層單元模式物理塊重新組成第二數(shù)據(jù)區(qū)后,利用所述轉(zhuǎn)換得到的單層單元模式物理塊進(jìn)行數(shù)據(jù)的存儲(chǔ),且所述第一數(shù)據(jù)區(qū)或者所述第二數(shù)據(jù)區(qū)在接收到需進(jìn)行存儲(chǔ)的數(shù)據(jù)時(shí),將所述需進(jìn)行存儲(chǔ)的數(shù)據(jù)優(yōu)先存儲(chǔ)在所述轉(zhuǎn)換得到的單層單元模式物理塊中。
[0123]第二添加單元133將所述轉(zhuǎn)換得到的SLC物理塊分配到現(xiàn)有的數(shù)據(jù)區(qū)中,此時(shí),所述第一數(shù)據(jù)區(qū)中包括了原有的MLC物理塊以及所述MLC物理塊轉(zhuǎn)換得到的SLC物理塊,且所述第一數(shù)據(jù)區(qū)負(fù)責(zé)數(shù)據(jù)的存儲(chǔ),所述轉(zhuǎn)換得到的SLC物理塊被分配到所述第一數(shù)據(jù)區(qū)之后,第二分工單元134分配所述轉(zhuǎn)換得到的SLC物理塊用于數(shù)據(jù)的存儲(chǔ)。第二添加單元133還可以將所述轉(zhuǎn)換得到的SLC物理塊重新組成第二數(shù)據(jù)區(qū),即所述第二數(shù)據(jù)區(qū)中只有所述轉(zhuǎn)換得到的SLC物理塊,且所述第二分工單元134分配所述第二數(shù)據(jù)區(qū)負(fù)責(zé)數(shù)據(jù)的存儲(chǔ),SP所述第二數(shù)據(jù)區(qū)中的轉(zhuǎn)換得到的SLC物理塊用于數(shù)據(jù)的存儲(chǔ)。所述第一數(shù)據(jù)區(qū)中SLC物理塊越多,閃存的數(shù)據(jù)存儲(chǔ)的安全性就越高。
[0124]再者,第二分工單元134控制所述第一數(shù)據(jù)區(qū)或者所述第二數(shù)據(jù)區(qū)在接收到需進(jìn)行存儲(chǔ)的數(shù)據(jù)時(shí),將所述需進(jìn)行存儲(chǔ)的數(shù)據(jù)優(yōu)先存儲(chǔ)在所述轉(zhuǎn)換得到的單層單元模式物理塊中,則進(jìn)一步提高了閃存的數(shù)據(jù)存儲(chǔ)的安全性。
[0125]以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的【技術(shù)領(lǐng)域】,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
【權(quán)利要求】
1.一種閃存物理塊的控制方法,其特征在于,包括以下步驟: 獲取閃存的物理塊中多層單元模式物理塊的信息,并實(shí)時(shí)檢測(cè)所述多層單元模式物理塊的安全等級(jí)值是否達(dá)到預(yù)設(shè)等級(jí)值; 在所述安全等級(jí)值沒有達(dá)到預(yù)設(shè)等級(jí)值時(shí),將所述多層單元模式物理塊轉(zhuǎn)換為單層單元模式物理塊; 利用轉(zhuǎn)換得到的單層單元模式物理塊進(jìn)行數(shù)據(jù)的寫入和/或存儲(chǔ)。
2.如權(quán)利要求1所述的閃存物理塊的控制方法,其特征在于,所述實(shí)時(shí)檢測(cè)所述多層單元模式物理塊的安全等級(jí)值是否達(dá)到預(yù)設(shè)等級(jí)值,包括: 檢測(cè)所述多層單元模式物理塊的擦寫次數(shù)是否高于預(yù)設(shè)閾值; 和/或,檢測(cè)所述多層單元模式物理塊的錯(cuò)誤檢查和糾正的比特?cái)?shù)與錯(cuò)誤檢查和糾正能力值的比值是否達(dá)到預(yù)設(shè)比值; 和/或,檢測(cè)所述多層單元模式物理塊是否是通過錯(cuò)誤檢查和糾正處理而無法進(jìn)行糾正的物理塊。
3.如權(quán)利要求1或2所述的閃存物理塊的控制方法,其特征在于,所述獲取閃存的物理塊中多層單元模式物理塊的信息,并實(shí)時(shí)檢測(cè)所述多層單元模式物理塊的安全等級(jí)值是否達(dá)到預(yù)設(shè)等級(jí)值的步驟之前還包括: 將閃存中的物理塊劃分為算法區(qū)和第一數(shù)據(jù)區(qū),所述算法區(qū)包括閃存的物理塊中的單層單元模式物理塊,且所述算法區(qū)用于數(shù)據(jù)的寫入;所述第一數(shù)據(jù)區(qū)包括閃存的物理塊中的多層單元模式物理塊,且所述第一數(shù)據(jù)區(qū)用于數(shù)據(jù)的存儲(chǔ)。
4.如權(quán)利要求3所述的閃存物理塊的控制方法,其特征在于,所述利用轉(zhuǎn)換得到的所述單層單元模式物理塊進(jìn)行數(shù)據(jù)的寫入的步驟包括: 將所述轉(zhuǎn)換得到的單層單元模式物理塊加入所述閃存的算法區(qū); 在所述轉(zhuǎn)換得到的單層單元模式物理塊加入所述算法區(qū)后,利用所述轉(zhuǎn)換得到的單層單元模式物理塊進(jìn)行數(shù)據(jù)的編程。
5.如權(quán)利要求3所述的閃存物理塊的控制方法,其特征在于,所述利用轉(zhuǎn)換得到的所述單層單元模式物理塊進(jìn)行數(shù)據(jù)的存儲(chǔ)的步驟包括: 將所述轉(zhuǎn)換得到的單層單元模式物理塊加入所述第一數(shù)據(jù)區(qū)或者將所述轉(zhuǎn)換得到的單層單元模式物理塊重新組成第二數(shù)據(jù)區(qū); 在將所述轉(zhuǎn)換得到的單層單元模式物理塊加入所述第一數(shù)據(jù)區(qū)或者將所述轉(zhuǎn)換得到的單層單元模式物理塊重新組成第二數(shù)據(jù)區(qū)后,利用所述轉(zhuǎn)換得到的單層單元模式物理塊進(jìn)行數(shù)據(jù)的存儲(chǔ),且所述第一數(shù)據(jù)區(qū)或者所述第二數(shù)據(jù)區(qū)在接收到需進(jìn)行存儲(chǔ)的數(shù)據(jù)時(shí),將所述需進(jìn)行存儲(chǔ)的數(shù)據(jù)優(yōu)先存儲(chǔ)在所述轉(zhuǎn)換得到的單層單元模式物理塊中。
6.一種閃存物理塊的控制裝置,其特征在于,所述裝置包括: 檢測(cè)模塊,用于獲取閃存的物理塊中多層單元模式物理塊的信息,并實(shí)時(shí)檢測(cè)所述多層單元模式物理塊的 安全等級(jí)值是否達(dá)到預(yù)設(shè)等級(jí)值; 轉(zhuǎn)換模塊,用于在所述安全等級(jí)值沒有達(dá)到預(yù)設(shè)等級(jí)值時(shí),將所述多層單元模式物理塊轉(zhuǎn)換為單層單元模式物理塊; 分配模塊,用于利用轉(zhuǎn)換得到的單層單元模式物理塊進(jìn)行數(shù)據(jù)的寫入和/或存儲(chǔ)。
7.如權(quán)利要求6所述的閃存物理塊的控制裝置,其特征在于,所述檢測(cè)模塊包括:擦寫次數(shù)評(píng)估單元,用于檢測(cè)所述多層單元模式物理塊的擦寫次數(shù)是否高于預(yù)設(shè)閾值; 和/或, 錯(cuò)誤率評(píng)估單元,用于檢測(cè)所述多層單元模式物理塊的錯(cuò)誤檢查和糾正的比特?cái)?shù)與錯(cuò)誤檢查和糾正能力值的比值是否達(dá)到預(yù)設(shè)比值; 和/或, 無法糾正評(píng)估單元,用于檢測(cè)錯(cuò)誤檢查和糾正處理而無法進(jìn)行糾正的所述多層單元模式物理塊是否是通過錯(cuò)誤檢查和糾正處理而無法進(jìn)行糾正的物理塊。
8.如權(quán)利要求6或7所述的閃存物理塊的控制裝置,其特征在于,所述裝置包括: 分區(qū)模塊,用于將閃存中的物理塊劃分為算法區(qū)和第一數(shù)據(jù)區(qū),所述算法區(qū)包括閃存的物理塊中的單層單元模式物理塊,且所述算法區(qū)用于數(shù)據(jù)的寫入;所述第一數(shù)據(jù)區(qū)包括閃存的物理塊中的多層單元模式物理塊,且所述第一數(shù)據(jù)區(qū)用于數(shù)據(jù)的存儲(chǔ)。
9.如權(quán)利要求8所述的閃存物理塊的控制裝置,其特征在于,所述分配模塊包括: 第一添加單元,用于將所述轉(zhuǎn)換得到的單層單元模式物理塊加入所述閃存的算法區(qū); 第一分工單元,用于在所述轉(zhuǎn)換得到的單層單元模式物理塊加入所述算法區(qū)后,利用所述轉(zhuǎn)換得到的單層單元模式物理塊進(jìn)行數(shù)據(jù)的編程。
10.如權(quán)利要求8所述的閃存物理塊的控制裝置,其特征在于,所述分配模塊包括: 第二添加單元,用于將所述轉(zhuǎn)換得到的單層單元模式物理塊加入所述第一數(shù)據(jù)區(qū)或者將所述轉(zhuǎn)換得到的單層單元模式物理塊重新組成第二數(shù)據(jù)區(qū); 第二分工單元,用于在將所述轉(zhuǎn)換得到的單層單元模式物理塊加入所述第一數(shù)據(jù)區(qū)或者將所述轉(zhuǎn)換得到的單層單元模式物理塊重新組成第二數(shù)據(jù)區(qū)后,利用所述轉(zhuǎn)換得到的單層單元模式物理塊進(jìn)行數(shù)據(jù)的存儲(chǔ),且所述第一數(shù)據(jù)區(qū)或者所述第二數(shù)據(jù)區(qū)在接收到需進(jìn)行存儲(chǔ)的數(shù)據(jù)時(shí),將所述需進(jìn)行存儲(chǔ)的數(shù)據(jù)優(yōu)先存儲(chǔ)在所述轉(zhuǎn)換得到的單層單元模式物理塊中。
【文檔編號(hào)】G06F12/02GK103927262SQ201410109844
【公開日】2014年7月16日 申請(qǐng)日期:2014年3月21日 優(yōu)先權(quán)日:2014年3月21日
【發(fā)明者】譚星, 陳寄福, 吳大畏 申請(qǐng)人:深圳市硅格半導(dǎo)體有限公司