一種面向相變存儲的非均勻糾錯方法及相變存儲裝置的制造方法
【技術(shù)領(lǐng)域】
[0001 ]本申請涉及相變存儲領(lǐng)域,尤其涉及一種面向相變存儲的非均勻糾錯方法及相變 存儲裝置。
【背景技術(shù)】
[0002] 相變存儲器(PhaseChangeMemory:PCM)是一種基于硫系化合物(例如Ge2Sb2Te5, 以下簡稱GST)作為相變材料的非易失型存儲器。如圖1所示,為一種相變存儲器存儲單元的 典型結(jié)構(gòu),其主要包括頂部電極、相變材料、熱絕緣體、電阻(加熱器)、底部電極。數(shù)據(jù)存儲 在位于中間的相變材料中。相變材料頂部通過頂部電極連接到位線(bit-1ine,BL),底部電 極連接到控制端。當(dāng)被持續(xù)時間不同、幅度不同的電流脈沖加熱時,相變材料可以在晶態(tài)和 非晶態(tài)之間轉(zhuǎn)化。當(dāng)相變材料處于晶態(tài)時,其電阻值較低;當(dāng)相變材料處于非晶態(tài)時,其電 阻值較高。這兩個不同狀態(tài)的電阻值之間相差數(shù)個數(shù)量級,同時掉電以后仍然會保持相應(yīng) 狀態(tài),這使相變存儲器成為優(yōu)良的非易失存儲器。
[0003]因此,在相變存儲器中,數(shù)據(jù)的存儲是通過對相變材料的配置來實現(xiàn)的,存儲在相 變存儲器中的數(shù)據(jù)"〇"和"Γ就是利用相變材料在晶態(tài)和非晶的阻值差異來進(jìn)行區(qū)分的,通 過對相變材料施加不同幅值與寬度的電流和電壓脈沖使其在晶態(tài)和非晶態(tài)之間轉(zhuǎn)變。然后 通過測量其阻值,并與參考閾值電阻比較得到其存儲的信息。又由于晶態(tài)和非晶態(tài)電阻存 在著數(shù)個數(shù)量級的電阻值的差異,因此可以通過不完全結(jié)晶化實現(xiàn)一個存儲單元中存儲多 位數(shù)據(jù)(MultilevelPerCell,MLC)〇
[0004]相變存儲器存在讀寫串?dāng)_、結(jié)晶化、耐久性失效和阻值漂移等問題。實際讀寫中, 運(yùn)用糾錯技術(shù)進(jìn)行糾錯以保證數(shù)據(jù)讀寫和存儲的可靠性。一般使用存儲控制器完成糾錯、 存儲驅(qū)動、接口適配等功能,如圖2所示。
[0005]實際存儲中,阻值漂移是影響相變存儲的主要問題,其會使得相變存儲器中相變 材料的阻值會隨著時間的推移而發(fā)生變化。這時,相鄰存儲狀態(tài)所對應(yīng)的阻值范圍會出現(xiàn) 一定交疊,存儲時間越長,交疊部分越大,當(dāng)讀取的阻值位于交疊區(qū)域時,不能直接判定其 存儲狀態(tài),從而影響數(shù)據(jù)讀取的可靠性。因此阻值漂移會給相變存儲器的應(yīng)用帶來不利的 影響,主要表示為對相變存儲器的數(shù)據(jù)讀取時誤碼率的增加,讀出值判定錯誤等。在相變存 儲器中表示多位信息的存儲單元中(即多值存儲單元),由于其有效阻值范圍被劃分成多個 小的區(qū)域來表示多個信息值,每個信息值對應(yīng)的阻值范圍成倍縮小,因此相對二值存儲單 元,阻值漂移現(xiàn)象對其造成的影響將更為顯著,故而一個存儲單元中存儲的比特數(shù)越多則 由于阻值漂移信息其造成的誤碼率越大。
[0006]目前針對上述問題提出的糾錯方法有很多,其中一個糾錯效果較好的方法是基于 時稱感知糾錯的軟判決方法,具體如下:
[0007]對待存入數(shù)據(jù)進(jìn)行編碼,將編碼后的數(shù)據(jù)寫入相變存儲器中,同時保存寫入時間, 在讀取數(shù)據(jù)時,通過上述寫入時間計算出數(shù)據(jù)存儲時間,根據(jù)存儲時間計算出阻值分布的 概率密函數(shù),從而將整個阻值范圍劃分成大小相同的若干糾錯區(qū)域以完成阻值量化,計算 每一個數(shù)據(jù)比特的對數(shù)似然比,根據(jù)對數(shù)似然比進(jìn)行糾錯譯碼。
[0008] 上述方法是將阻值分布范圍均勻劃分成若干范圍大小相同的糾錯區(qū)域(均勻量化 糾錯),為了保證在交疊比較大的部分也能夠正常讀取數(shù)據(jù),保證誤碼率低于一可接接受的 范圍,需要將阻值分布范圍均勻劃分成數(shù)量較多的若干范圍大小相同的糾錯區(qū)域。因此,軟 判決譯碼需要的對數(shù)似然比信息也需要對相變存儲單元進(jìn)行高精度的阻值量化讀取,從而 導(dǎo)致相變存儲器陣列與存儲控制器之間傳輸延遲的增大。
【發(fā)明內(nèi)容】
[0009] 為解決上述均勻量化糾錯的問題,本申請?zhí)峁┮环N面向相變存儲的非均勻糾錯方 法及相變存儲裝置。
[0010] 根據(jù)本申請的第一方面,一種實施例提供一種面向相變存儲的非均勻糾錯方法, 其包括以下步驟:
[0011] 對待存入相變存儲器的數(shù)據(jù)進(jìn)行糾錯編碼;
[0012] 將經(jīng)過糾錯編碼的數(shù)據(jù)以及數(shù)據(jù)寫入時間寫入相變存儲器;
[0013] 當(dāng)讀取數(shù)據(jù)時,讀取數(shù)據(jù)對應(yīng)的寫入時間;
[0014] 根據(jù)寫入時間計算出數(shù)據(jù)在相變存儲器中的存儲時間;
[0015] 根據(jù)存儲時間計算各存儲狀態(tài)的阻值分布的交疊邊界,以確定阻值交疊區(qū)域;
[0016] 計算各阻值交疊區(qū)域的熵;
[0017] 將所有阻值交疊區(qū)域劃分成熵大致相等的若干糾錯區(qū)域,其中非阻值交疊區(qū)域為 非糾錯區(qū)域;
[0018] 計算各糾錯區(qū)域的對數(shù)似然比;
[0019] 判斷讀取的數(shù)據(jù)的阻值位于哪一區(qū)域,當(dāng)位于糾錯區(qū)域時,根據(jù)此糾錯區(qū)域的對 數(shù)似然比,對讀取的數(shù)據(jù)進(jìn)行糾錯譯碼;當(dāng)位于非糾錯區(qū)域時,對讀取的數(shù)據(jù)不進(jìn)行糾錯。
[0020] 另一種實施例還提供另一種面向相變存儲的非均勻糾錯方法,包括以下步驟:
[0021 ]預(yù)先設(shè)置若干存儲時間;
[0022] 對于每一個預(yù)先設(shè)置的存儲時間:根據(jù)此存儲時間計算各存儲狀態(tài)的阻值分布的 交疊邊界,以確定阻值交疊區(qū)域;計算各阻值交疊區(qū)域的熵;將所有阻值交疊區(qū)域劃分成熵 大致相等的若干糾錯區(qū)域,其中非阻值交疊區(qū)域為非糾錯區(qū)域;計算各糾錯區(qū)域的對數(shù)似 然比;
[0023] 對待存入相變存儲器的數(shù)據(jù)進(jìn)行糾錯編碼;
[0024] 將經(jīng)過糾錯編碼的數(shù)據(jù)以及數(shù)據(jù)寫入時間寫入相變存儲器;
[0025] 當(dāng)讀取數(shù)據(jù)時,讀取數(shù)據(jù)對應(yīng)的寫入時間;
[0026] 根據(jù)寫入時間計算出數(shù)據(jù)在相變存儲器中的存儲時間;
[0027] 將所述計算出的存儲時間,與預(yù)先設(shè)置的若干存儲時間比較,得到一與所述計算 出的存儲時間最接近的預(yù)先設(shè)置的存儲時間,并依此獲得對應(yīng)的糾錯區(qū)域范圍;
[0028] 判斷讀取的數(shù)據(jù)的阻值位于所述最接近的預(yù)先設(shè)置的存儲時間下的哪一區(qū)域,當(dāng) 位于糾錯區(qū)域時,根據(jù)此糾錯區(qū)域的對數(shù)似然比,對讀取的數(shù)據(jù)進(jìn)行糾錯譯碼;當(dāng)位于非糾 錯區(qū)域時,對讀取的數(shù)據(jù)不進(jìn)行糾錯。
[0029] 根據(jù)本申請的第二方面,一種實施例提供一種相變存儲裝置,包括:
[0030]糾錯編碼器,用于對待存入相變存儲器的數(shù)據(jù)進(jìn)行糾錯編碼;
[0031]存儲控制器,用于將經(jīng)過糾錯編碼的數(shù)據(jù)以及數(shù)據(jù)寫入時間寫入一相變存儲器; [0032]存儲時間計算單元,用于當(dāng)讀取數(shù)據(jù)時讀取數(shù)據(jù)對應(yīng)的寫入時間,以根據(jù)寫入時 間計算出數(shù)據(jù)在相變存儲器中的存儲時間;
[0033]阻值交疊區(qū)確定單元,用于根據(jù)存儲時間計算各存儲狀態(tài)的阻值分布的交疊邊 界,以確定阻值交疊區(qū)域;
[0034]熵計算單元,用于計算各阻值交疊區(qū)域的熵;
[0035]糾錯區(qū)域劃分單元,用于將所有阻值交疊區(qū)域劃分成熵大致相等的若干糾錯區(qū) 域,其中非阻值交疊區(qū)域為非糾錯區(qū)域;
[0036]對數(shù)似然比計算單元,用于計算各糾錯區(qū)域的對數(shù)似然比;
[0037]阻值量化單元,用于判斷讀取的數(shù)據(jù)的阻值位于哪一區(qū)域;
[0038]糾錯譯碼器,用于當(dāng)判斷的結(jié)果為讀取的數(shù)據(jù)的阻值位于糾錯區(qū)域時,根據(jù)此糾 錯區(qū)域的對數(shù)似然比,對讀取的數(shù)據(jù)進(jìn)行糾錯譯碼;當(dāng)位于非糾錯區(qū)域時,對讀取的數(shù)據(jù)不 進(jìn)行糾錯。
[0039]另一實施例提供另一種相變存儲裝置,包括:
[0040]糾錯編碼器,用于對待存入相變存儲器的數(shù)據(jù)進(jìn)行糾錯編碼;
[0041]存儲控制器,用于將經(jīng)過糾錯編碼的數(shù)據(jù)以及數(shù)據(jù)寫入時間寫入一相變存儲器;
[0042]存儲時間計算單元,用于當(dāng)讀取數(shù)據(jù)時讀取數(shù)據(jù)對應(yīng)的寫入時間,以根據(jù)寫入時 間計算出數(shù)據(jù)在相變存儲器中的存儲時間;
[0043]存儲時間判斷單元,預(yù)先設(shè)置若干存儲時間,用于將所述計算出的存儲時間,與預(yù) 先設(shè)置的若干存儲時間比較,得到一與所述計算出的存儲時間最接近的預(yù)先設(shè)置的存儲時 間;
[0044]第一查找表,存儲有每一個預(yù)先設(shè)置的存儲時間下的糾錯區(qū)域范圍,其中,糾錯區(qū) 域范圍通過以下方式計算:對于每一個預(yù)先設(shè)置的存儲時間:根據(jù)此存儲時間計算各存儲 狀態(tài)的阻值分布的交疊邊界,以確定阻值交疊區(qū)域;計算各阻值交疊區(qū)域的熵;將所有阻值 交疊區(qū)域劃分成熵大致相等的若干糾錯區(qū)域,其中非阻值交疊區(qū)域為非糾錯區(qū)域;
[0045]第二查找表,存儲有與第一查找表中每一個預(yù)先設(shè)置的存儲時間下的各糾錯區(qū)域 范圍對應(yīng)的對數(shù)似然比;
[0046]阻值量化單元,用于判斷讀取的數(shù)據(jù)的阻值位于所述第一查找表中所述最接近的 預(yù)先設(shè)置的存儲時間下的哪一區(qū)域;
[0047]糾錯譯碼器,用于當(dāng)判斷的結(jié)果為讀取的數(shù)據(jù)的阻值位于糾錯區(qū)域時,根據(jù)所述 第二查找表中此糾錯區(qū)域的對數(shù)似然比,對讀取的數(shù)據(jù)進(jìn)行糾錯譯碼;當(dāng)位于非糾錯區(qū)域 時,對讀取的數(shù)據(jù)不進(jìn)行糾錯。
[0048]本申請的有益效果是:
[0049]依上述實施的面向面向相變存儲的非均勻糾錯方法及相變存儲裝置,通過計算確 定阻值交疊區(qū)域以及各交疊區(qū)域的熵,將所有阻值交疊區(qū)域劃分成熵大致相等的若干糾錯 區(qū)域,從而使得熵較大的交疊區(qū)域劃分有較多的糾錯區(qū)域,熵較小的交疊區(qū)域劃分有較少 的糾錯區(qū)域,因此在相同誤碼率性能的要求下,本申請非均勻量化糾錯所需的糾錯區(qū)域少 于均勻量化糾錯,阻值量化后的數(shù)據(jù)長度更短,使得相同誤碼率性能的要求下,本申請延遲 較小,同時硬件開銷也小。
[0050]依上述實施的面