錯(cuò)誤檢測和糾正裝置及方法、失配檢測裝置及存儲(chǔ)器系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及錯(cuò)誤檢測和糾正裝置及方法、失配檢測裝置及存儲(chǔ)器系統(tǒng),其中錯(cuò)誤檢測和糾正裝置包括碼字讀出單元,執(zhí)行讀取處理以從存儲(chǔ)器地址讀出包括多個(gè)碼元的碼字作為讀取數(shù)據(jù),并且在自讀出所述讀取數(shù)據(jù)的時(shí)間逝去預(yù)定時(shí)間后,執(zhí)行再讀取處理以從所述存儲(chǔ)器地址讀出碼字作為再讀取數(shù)據(jù),所述多個(gè)碼元通過檢測刪除位置來提高錯(cuò)誤糾正能力;定時(shí)控制刪除位置檢測單元,通過確定所述讀取數(shù)據(jù)和所述再讀取數(shù)據(jù)中每個(gè)碼元的值是否匹配,來將具有不匹配值的碼元的位置檢測作為所述碼字中的所述刪除位置;以及錯(cuò)誤糾正單元,基于被檢測出所述刪除位置的所述碼字中的所述刪除位置糾正錯(cuò)誤。
【專利說明】錯(cuò)誤檢測和糾正裝置及方法、失配檢測裝置及存儲(chǔ)器系統(tǒng)
[0001]相關(guān)申請的交叉引用
[0002]本申請要求于2012年11月2日提交的日本優(yōu)先專利申請JP2012-242975的權(quán)益,其全部內(nèi)容合并于此以供參考。
【技術(shù)領(lǐng)域】
[0003]本技術(shù)涉及錯(cuò)誤檢測和糾正裝置、失配檢測裝置、存儲(chǔ)器系統(tǒng)和錯(cuò)誤檢測和糾正方法。具體地,本技術(shù)涉及用于檢測和糾正從非易失性存儲(chǔ)器讀出的數(shù)據(jù)中的錯(cuò)誤的錯(cuò)誤檢測和糾正裝置、失配檢測裝置、存儲(chǔ)器系統(tǒng)和錯(cuò)誤檢測以及糾正方法。
【背景技術(shù)】
[0004]在最新的信息處理系統(tǒng)中,NVM (非易失性存儲(chǔ)器)將被用作輔助存儲(chǔ)設(shè)備或存儲(chǔ)器。非易失性存儲(chǔ)器的示例包括閃存存儲(chǔ)器、ReRAM (電阻RAM)、PCRAM (相變RAM)和MRAM(磁阻RAM)。在非易失性存儲(chǔ)器中,由于熱噪聲,記錄的數(shù)據(jù)會(huì)被破壞并且不會(huì)被正確讀出。由于這個(gè)原因,數(shù)據(jù)存儲(chǔ)設(shè)備從要被記錄的數(shù)據(jù)生成ECC (錯(cuò)誤檢測和糾正碼)以將ECC記錄在非易失性存儲(chǔ)器中。當(dāng)數(shù)據(jù)被再現(xiàn)時(shí),數(shù)據(jù)存儲(chǔ)設(shè)備可以基于ECC檢測和糾正數(shù)據(jù)錯(cuò)誤。
[0005]在錯(cuò)誤檢測和糾正時(shí),提出一種系統(tǒng),在該系統(tǒng)中,使用不同的閥值電壓多次讀取數(shù)據(jù),每個(gè)數(shù)據(jù)被比較以檢測刪除,并基于所檢測到的刪除糾正錯(cuò)誤(例如,參見美國專利申請公開第2010/0077279號(hào))。
【發(fā)明內(nèi)容】
[0006]然而,在上述相關(guān)技術(shù)中,數(shù)據(jù)錯(cuò)誤不會(huì)被正確糾正。例如,在非易失性存儲(chǔ)器中,會(huì)產(chǎn)生使所記錄的數(shù)據(jù)值根據(jù)時(shí)間波動(dòng)的隨機(jī)電報(bào)噪聲。一旦生成隨機(jī)電報(bào)噪聲,以相同閥值電壓讀出的每個(gè)數(shù)據(jù)會(huì)在讀取時(shí)具有不同的值。在上述比較以不同閥值電壓讀出的每個(gè)數(shù)據(jù)的系統(tǒng)中,這樣的錯(cuò)誤不能夠被檢測到。由于這個(gè)原因,數(shù)據(jù)錯(cuò)誤不會(huì)被正確糾正。
[0007]鑒于上述的情況,需要一種數(shù)據(jù)錯(cuò)誤被準(zhǔn)確糾正的技術(shù)。
[0008]根據(jù)本技術(shù)的實(shí)施例,提供一種錯(cuò)誤檢測和糾正裝置,以及利用所述錯(cuò)誤檢測和糾正裝置的錯(cuò)誤檢測和糾正方法,其中錯(cuò)誤檢測和糾正裝置包括碼字讀出單元,執(zhí)行讀取處理以從存儲(chǔ)器地址讀出包括多個(gè)碼元的碼字作為讀取數(shù)據(jù),并且在自讀出所述讀取數(shù)據(jù)的時(shí)間逝去預(yù)定時(shí)間后,執(zhí)行再讀取處理以從所述存儲(chǔ)器地址讀出碼字作為再讀取數(shù)據(jù),所述多個(gè)碼元通過檢測刪除(eraser,擦除)位置來提高錯(cuò)誤糾正能力;定時(shí)控制刪除位置檢測單元,用于通過確定所述讀取數(shù)據(jù)和所述再讀取數(shù)據(jù)中每個(gè)碼元的值是否匹配,來將具有不匹配值的碼元的位置檢測作為所述碼字中的所述刪除位置;以及錯(cuò)誤糾正單元,基于被檢測出所述刪除位置的所述碼字中的所述刪除位置糾正錯(cuò)誤。讀取數(shù)據(jù)和再讀取數(shù)據(jù)中具有不匹配的值的碼元的位置被檢測作為碼字中的刪除位置,以及具有所檢測出的刪除位置的碼字中的錯(cuò)誤被糾正。[0009]在錯(cuò)誤檢測和糾正裝置中,當(dāng)檢測出的所述刪除位置的總數(shù)量超出對應(yīng)于所述錯(cuò)誤糾正能力的預(yù)定數(shù)量時(shí),所述錯(cuò)誤糾正單元以對應(yīng)于所檢測出的刪除位置中的所述刪除位置的總數(shù)量與所述預(yù)定數(shù)量之間的差的位置數(shù)量不是刪除位置的方式糾正錯(cuò)誤。當(dāng)所檢測出的刪除位置的總數(shù)超出預(yù)定數(shù)量時(shí),以對應(yīng)于所檢測出的刪除位置之中刪除位置的總數(shù)量與預(yù)定數(shù)量之間差異的位置數(shù)量不是刪除位置的方式糾正錯(cuò)誤。
[0010]在錯(cuò)誤檢測和糾正裝置中,可以進(jìn)一步包括數(shù)據(jù)替換單元,當(dāng)所檢測出的所述刪除位置的總數(shù)量超出所述預(yù)定數(shù)量時(shí),所述數(shù)據(jù)替換單元用具有特定值的數(shù)據(jù)替換數(shù)目對應(yīng)于所述差的所述刪除位置處的碼元,并將其提供給所述錯(cuò)誤糾正單元;以及錯(cuò)誤糾正單元,可以以被具有所述特定值的數(shù)據(jù)替換的位置不是所述刪除位置的方式糾正錯(cuò)誤。數(shù)目號(hào)對應(yīng)于刪除位置的總數(shù)與預(yù)定數(shù)量之間差的刪除位置處的所述碼元被具有特定值的數(shù)據(jù)替代,以及以該位置不是刪除位置的方式糾正錯(cuò)誤。
[0011]在錯(cuò)誤檢測和糾正裝置中,所述特定值可以基于將所述碼元的兩個(gè)值中的一個(gè)值反轉(zhuǎn)到另一個(gè)值的可能性以及基于所述碼元的另一個(gè)值反轉(zhuǎn)到所述一個(gè)值的可能性確定。所述特定值基于將所述碼元的兩個(gè)值中的一個(gè)值反轉(zhuǎn)到另一個(gè)值的可能性以及基于所述碼元的另一個(gè)值反轉(zhuǎn)到所述一個(gè)值的可能性被確定。
[0012]在錯(cuò)誤檢測和糾正裝置中,可以進(jìn)一步包括閥值控制讀出單元,將用于確定被保持在所述存儲(chǔ)器地址中的所述碼元的值是兩個(gè)值中哪一個(gè)的閥值控制為第一值,從所述存儲(chǔ)器地址讀出所述碼字作為第一數(shù)據(jù),將所述閥值控制為不同于所述第一值的第二值,以及從所述存儲(chǔ)器地址讀出碼字作為第二數(shù)據(jù);以及閥值控制刪除位置檢測單元,用于確定所述第一數(shù)據(jù)和所述第二數(shù)據(jù)中每個(gè)碼元的值是否匹配,以及檢測具有不匹配值的碼元的位置作為所述碼字中的刪除位置,其中所述錯(cuò)誤糾正單元可以對所述定時(shí)控制刪除位置檢測單元檢測出所述刪除位置的所述碼字中的錯(cuò)誤進(jìn)行糾正,以及對所述閥值控制刪除位置檢測單元檢測出所述刪除位置的碼字中的錯(cuò)誤進(jìn)行糾正。在第一和第二數(shù)據(jù)中具有不匹配的值的所述碼元的位置被檢測為所述碼元中的刪除位置。
[0013]在錯(cuò)誤檢測和糾正裝置中,可以進(jìn)一步包括讀取數(shù)據(jù)錯(cuò)誤檢測單元,當(dāng)碼字讀出單元執(zhí)行讀取處理時(shí),檢測讀取數(shù)據(jù)中的錯(cuò)誤,并且碼字讀出單元可以在所述讀取數(shù)據(jù)錯(cuò)誤檢測單元檢測到所述錯(cuò)誤時(shí),執(zhí)行再讀取處理。當(dāng)讀出處理被執(zhí)行時(shí),所述讀取數(shù)據(jù)中的錯(cuò)誤(如果有的話)被檢測到。一旦檢測出錯(cuò)誤,所述再讀取處理被執(zhí)行。
[0014]在錯(cuò)誤檢測和糾正裝置中,可以進(jìn)一步包括獲取溫度的溫度獲取單元;以及確定單元,根據(jù)所述讀取處理被執(zhí)行前的溫度,確定預(yù)定時(shí)間的長度,以及當(dāng)所述預(yù)定時(shí)間長度被確定時(shí),所述碼字讀出單元可以執(zhí)行讀出處理。當(dāng)所述預(yù)定時(shí)間長度根據(jù)溫度被確定時(shí),所述讀取處理被執(zhí)行。
[0015]根據(jù)本技術(shù)的另一個(gè)實(shí)施例,提供一種失配檢測裝置包括:碼字讀出單元,執(zhí)行讀取處理以從存儲(chǔ)器地址讀出包括多個(gè)碼元的碼字作為讀取數(shù)據(jù),并且在自讀出所述讀取數(shù)據(jù)的時(shí)間逝去預(yù)定時(shí)間后,執(zhí)行再讀取處理以從所述存儲(chǔ)器地址讀出碼字作為再讀取數(shù)據(jù);失配檢測單元,檢測所述讀取數(shù)據(jù)和再讀取數(shù)據(jù)是否失配;以及登記單元,將檢測出所述失配的所述存儲(chǔ)器地址作為禁止進(jìn)行存取的缺陷地址來登記。當(dāng)數(shù)據(jù)讀取數(shù)據(jù)和再讀取數(shù)據(jù)失配時(shí),所述存儲(chǔ)器地址被登記為缺陷地址。
[0016]在錯(cuò)誤檢測和糾正裝置中,所述失配檢測單元可以針對每個(gè)碼元確定所述值是否失配,以及其中當(dāng)被確定為失配的碼元的數(shù)量超出預(yù)定閥值時(shí),所述登記單元將存儲(chǔ)器地址登記為缺陷地址。當(dāng)被確定為失配的碼元的數(shù)量超出預(yù)定閥值時(shí),所述存儲(chǔ)器地址被登記為缺陷地址。
[0017]根據(jù)本技術(shù)的另一個(gè)實(shí)施例,提供一種失配檢測裝置,包括供給單元,按順序提供具有不同長度的多個(gè)時(shí)間作為候選時(shí)間;碼字讀出單元,執(zhí)行讀取處理以從存儲(chǔ)器地址讀出包括多個(gè)碼元的碼字作為讀取數(shù)據(jù),并且在自讀出所述讀取數(shù)據(jù)的時(shí)間逝去所述候選時(shí)間后,執(zhí)行再讀取處理以從所述存儲(chǔ)器地址讀出碼字作為再讀取數(shù)據(jù),每次設(shè)定所述候選時(shí)間都執(zhí)行一定次數(shù)的所述讀取處理和所述再讀取處理;失配檢測單元,每次執(zhí)行所述讀取處理和所述再讀取處理時(shí),檢測所述讀取數(shù)據(jù)和所述再讀取數(shù)據(jù)是否失配;計(jì)數(shù)器,對所述多個(gè)時(shí)間的每一個(gè)計(jì)數(shù)檢測為失配的次數(shù);以及設(shè)定單元,基于所述檢測次數(shù),在所述多個(gè)時(shí)間中,設(shè)定檢測為失配的頻率最高的時(shí)間。所述具有失配的最高檢測頻率的時(shí)間被設(shè)定。
[0018]根據(jù)本技術(shù)的另一個(gè)實(shí)施例,提供一種存儲(chǔ)器系統(tǒng),所述存儲(chǔ)器系統(tǒng)包括將包括多個(gè)碼元的碼字存儲(chǔ)到存儲(chǔ)器地址的存儲(chǔ)器,所述多個(gè)碼元通過檢測刪除位置來提高錯(cuò)誤糾正能力;碼字讀出單元,執(zhí)行讀取處理以從存儲(chǔ)器地址讀出包括多個(gè)碼元的碼字作為讀取數(shù)據(jù),以及在自讀出所述讀取數(shù)據(jù)的時(shí)間逝去預(yù)定時(shí)間后,執(zhí)行再讀取處理,以從所述存儲(chǔ)器地址讀出碼字作為再讀取數(shù)據(jù);定時(shí)控制刪除位置檢測單元,通過確定所述讀取數(shù)據(jù)和所述再讀取數(shù)據(jù)中每個(gè)碼元的值是否匹配,檢測具有不匹配的值的碼元的位置,作為所述碼字中的刪除位置;以及錯(cuò)誤糾正單元,基于被檢測出所述刪除位置的所述碼字中的所述刪除位置,糾正錯(cuò)誤。讀取數(shù)據(jù)和再讀取數(shù)據(jù)中具有不匹配的值的碼元的位置被檢測為刪除位置,以及基于檢測出刪除位置的所述碼字中的刪除位置,糾正錯(cuò)誤。
[0019]根據(jù)本技術(shù)的實(shí)施例,數(shù)據(jù)中的錯(cuò)誤可以被準(zhǔn)確糾正。
[0020]鑒于對附圖中示出本發(fā)明的最佳模式實(shí)施方式的以下詳細(xì)描述,本技術(shù)的這些和其他目標(biāo)、特征和優(yōu)勢將變得更加顯而易見。
【專利附圖】
【附圖說明】
[0021]圖1是示出根據(jù)第一實(shí)施例的信息處理系統(tǒng)的配置示例的框圖;
[0022]圖2是示出根據(jù)第一實(shí)施例的存儲(chǔ)器控制器的配置示例的框圖;
[0023]圖3是示出根據(jù)第一實(shí)施例的存儲(chǔ)器控制器的配置示例的框圖;
[0024]圖4是示出根據(jù)第一實(shí)施例的碼字的數(shù)據(jù)配置示例的示意圖;
[0025]圖5是示出根據(jù)第一實(shí)施例的讀取處理單元的配置示例的框圖;
[0026]圖6是示出根據(jù)第一實(shí)施例的BCH碼的校驗(yàn)矩陣示例的示意圖;
[0027]圖7是示出根據(jù)第一實(shí)施例的錯(cuò)誤糾正單元的配置示例的框圖;
[0028]圖8A、8B和SC是分別示出讀取的數(shù)據(jù)、再讀取的數(shù)據(jù)和刪除位置的數(shù)據(jù)的示例;
[0029]圖9是示出根據(jù)第一實(shí)施例的存儲(chǔ)器控制器的操作示例的流程圖;
[0030]圖10是示出根據(jù)第一實(shí)施例的讀取處理示例的流程圖;
[0031]圖11是示出第一實(shí)施例的替代實(shí)施例的讀取處理示例的流程圖;
[0032]圖12是示出根據(jù)第二實(shí)施例的讀取處理單元的配置示例的框圖;
[0033]圖13A、13B、13C和13D分別示出根據(jù)第二實(shí)施例的讀取數(shù)據(jù)、再讀取數(shù)據(jù)、替換后的讀取數(shù)據(jù)和糾正后的刪除位置數(shù)據(jù)的示例;
[0034]圖14是示出根據(jù)第二實(shí)施例的讀取處理的操作示例的流程圖;
[0035]圖15是示出根據(jù)第三實(shí)施例的讀取處理單元的配置示例的框圖;
[0036]圖16是示出根據(jù)第三實(shí)施例的可變電阻元件的電阻分布示例的示意圖;
[0037]圖17是示出根據(jù)第三實(shí)施例的碼字讀取單元的配置示例的框圖;
[0038]圖18是示出根據(jù)第三實(shí)施例的刪除位置檢測單元的配置示例的框圖;
[0039]圖19是示出根據(jù)第三實(shí)施例的讀取處理的操作示例的流程圖;
[0040]圖20是示出根據(jù)第四實(shí)施例的存儲(chǔ)器控制器的配置示例的框圖;
[0041]圖21是示出根據(jù)第四實(shí)施例的存儲(chǔ)器檢查單元的配置示例的框圖;
[0042]圖22是示出根據(jù)第四實(shí)施例的存儲(chǔ)器控制器的操作示例的流程圖;
[0043]圖23是示出根據(jù)第四實(shí)施例的存儲(chǔ)器檢查處理示例的流程圖;
[0044]圖24是示出根據(jù)第五實(shí)施例的存儲(chǔ)器控制器的配置示例的框圖;
[0045]圖25是示出根據(jù)第五實(shí)施例的RTN周期設(shè)定單元的配置示例的框圖;
[0046]圖26是示出根據(jù)第五實(shí)施例的每個(gè)RTN周期的失配數(shù)量的計(jì)數(shù)結(jié)果示例的直方圖;
[0047]圖27是示出根據(jù)第五實(shí)施例的存儲(chǔ)器控制器的操作示例的流程圖;
[0048]圖28是示出根據(jù)第五實(shí)施例的RTN周期示例的流程圖;以及
[0049]圖29是示出根據(jù)第六實(shí)施例的存儲(chǔ)器控制器的配置示例的框圖。
【具體實(shí)施方式】
[0050]在下文中,將參考附圖來描述本技術(shù)的實(shí)施例。
[0051]將以下列順序描述本技術(shù)的實(shí)施例。
[0052]1.第一實(shí)施例(檢測和糾正刪除位置的示例)
[0053]2.第二實(shí)施例(檢測刪除位置以及替換和糾正數(shù)據(jù)的示例)
[0054]3.第三實(shí)施例(在控制閥值時(shí),檢測和糾正刪除位置的示例)
[0055]4.第四實(shí)施例(檢測失配和存取控制的示例)
[0056]5.第五實(shí)施例(確定RTN周期以及檢測和糾正刪除位置的示例)
[0057]6.第六實(shí)施例(根據(jù)溫度確定RTN周期以及檢測和糾正刪除位置的示例)
[0058]〈1.第一實(shí)施例>
[0059][信息處理系統(tǒng)的配置示例]
[0060]圖1是示出根據(jù)第一實(shí)施例的信息處理系統(tǒng)的配置示例的框圖。信息處理系統(tǒng)包括主機(jī)系統(tǒng)100和存儲(chǔ)系統(tǒng)200。
[0061]主機(jī)系統(tǒng)100控制整個(gè)信息處理系統(tǒng)。具體地,主機(jī)系統(tǒng)100生成命令和寫入數(shù)據(jù),并經(jīng)由信號(hào)線109將命令和寫入數(shù)據(jù)提供給存儲(chǔ)系統(tǒng)200。主機(jī)系統(tǒng)100接收來自存儲(chǔ)系統(tǒng)200的讀取數(shù)據(jù)。在這里,命令用于控制存儲(chǔ)系統(tǒng)200,并且包括用于指示將寫入數(shù)據(jù)寫入的寫入命令以及用于指示將讀取數(shù)據(jù)讀出的讀取命令。
[0062]存儲(chǔ)系統(tǒng)200包括存儲(chǔ)器控制器300和非易失性存儲(chǔ)器400。存儲(chǔ)器控制器300用于控制非易失性存儲(chǔ)器400。當(dāng)從主機(jī)系統(tǒng)100接收寫入命令和寫入數(shù)據(jù)時(shí),存儲(chǔ)器控制器300從寫入數(shù)據(jù)生成ECC (錯(cuò)誤檢測和糾正碼)。具體地,存儲(chǔ)器控制器300將寫入數(shù)據(jù)轉(zhuǎn)換(即,編碼)成包括寫入數(shù)據(jù)和奇偶校驗(yàn)位的碼字。存儲(chǔ)器控制器300通過信號(hào)線309存取非易失性存儲(chǔ)器400,以及將編碼后的數(shù)據(jù)寫入非易失性存儲(chǔ)器400中。
[0063]而且,當(dāng)從主機(jī)系統(tǒng)100接收讀取命令時(shí),存儲(chǔ)器控制器300通過信號(hào)線309存取非易失性存儲(chǔ)器400,并且讀出編碼后的數(shù)據(jù)。接著,存儲(chǔ)器控制器300將編碼后的數(shù)據(jù)轉(zhuǎn)換(即,解碼)為編碼前的原始數(shù)據(jù)。此外,存儲(chǔ)器控制器300基于ECC檢測和糾正數(shù)據(jù)中的錯(cuò)誤。存儲(chǔ)器控制器300向主機(jī)系統(tǒng)100提供糾正后的數(shù)據(jù)。存儲(chǔ)器控制器300是根據(jù)本技術(shù)實(shí)施例的錯(cuò)誤檢測和糾正裝置的示例。
[0064]非易失性存儲(chǔ)器400存儲(chǔ)正被存儲(chǔ)器控制器300控制的數(shù)據(jù)。例如,ReRAM被用作非易失性存儲(chǔ)器400。非易失性存儲(chǔ)器400包括多個(gè)存儲(chǔ)器單元。這些存儲(chǔ)器單元被劃分為多個(gè)塊。在這里,塊是非易失性存儲(chǔ)器400的存取單元,并且也被稱為“扇區(qū)”。存儲(chǔ)器地址被分配給每個(gè)塊。除了 ReRAM以外,閃存存儲(chǔ)器、PCRAM、MRAM等可以被用作非易失性存儲(chǔ)器。
[0065][存儲(chǔ)器控制器的配置示例]
[0066]圖2是示出根據(jù)第一實(shí)施例的存儲(chǔ)器控制器300的配置示例的框圖。存儲(chǔ)器控制器300包括RAM (隨機(jī)存取存儲(chǔ)器)301、CPU (中央處理單元)302、ECC處理單元303和ROM(只讀存儲(chǔ)器)304。進(jìn)一步地,存儲(chǔ)器控制器300包括主機(jī)接口 305、總線306和非易失性存儲(chǔ)器接口 307。
[0067]RAM 301臨時(shí)保持CPU 302執(zhí)行處理所需要的數(shù)據(jù)。CPU 302控制整個(gè)存儲(chǔ)器控制器300。ROM 304存儲(chǔ)由CPU 302執(zhí)行的程序等。主機(jī)接口 305與主機(jī)系統(tǒng)100交換數(shù)據(jù)或命令??偩€306是在RAM 301、CPU 302、ECC處理單元303、ROM 304、主機(jī)接口 305與非易失性存儲(chǔ)器接口 307之間互換數(shù)據(jù)的公用路徑。非易失性存儲(chǔ)器接口 307與非易失性存儲(chǔ)器400互換數(shù)據(jù)或命令。
`[0068]ECC處理單元303編碼寫入數(shù)據(jù)和解碼讀取數(shù)據(jù)。在編碼寫入數(shù)據(jù)后,ECC處理單元303將多個(gè)數(shù)據(jù)中的每個(gè)用作要被編碼的數(shù)據(jù),以及向要被編碼的數(shù)據(jù)添加奇偶校驗(yàn)位,從而將數(shù)據(jù)編碼到預(yù)定單元中。預(yù)定單元中的每個(gè)編碼數(shù)據(jù)被稱為“碼字”。接著,ECC處理單元303經(jīng)由總線306向非易失性存儲(chǔ)器400提供編碼后的寫入數(shù)據(jù)。
[0069]而且,ECC處理單元303將編碼后的讀取數(shù)據(jù)解碼為要被編碼的原始數(shù)據(jù)。在解碼后,ECC處理單元303利用奇偶校驗(yàn)位,檢測和糾正碼字的錯(cuò)誤。ECC處理單元303經(jīng)由總線306向主機(jī)系統(tǒng)100提供要被編碼的解碼數(shù)據(jù)。
[0070]圖3是示出根據(jù)第一實(shí)施例的存儲(chǔ)器控制器300的配置示例的框圖。存儲(chǔ)器控制器300包括寫入處理單元310和讀取處理單元320。在圖3中示出的寫入處理單元310由RAM 301、CPU 302、ECC處理單元303、R0M304、主機(jī)接口 305、總線306、非易失性存儲(chǔ)器接口 307等實(shí)現(xiàn)。同樣適用于讀取處理單元320。
[0071]寫入處理單元310根據(jù)寫入命令,執(zhí)行將寫入數(shù)據(jù)寫入到非易失性存儲(chǔ)器400。當(dāng)寫入處理單元310從主機(jī)系統(tǒng)100接收寫入命令和寫入數(shù)據(jù)時(shí),寫入處理單元310使用寫入數(shù)據(jù)作為要被編碼的數(shù)據(jù),以及將要被編碼的數(shù)據(jù)編碼成碼字。在編碼后,要被編碼的數(shù)據(jù)被編碼到例如具有根^^的二進(jìn)制BCH碼中。在這里,“i”是I或2t的整數(shù),其中t是整數(shù)?!唉痢笔琴ち_瓦域GF (2m)的元素。在二進(jìn)制BCH碼中,每個(gè)Cii取值“I”或“O”。在BCH碼的編碼中,例如由下列表達(dá)式I表示的生成多項(xiàng)式被使用。[0072]G(x) = LCM [M1(X), M2(x),…,M2t (x)]…表達(dá)式 I
[0073]在表達(dá)式I中,LCM[]表示[]中每個(gè)多項(xiàng)式的最小公倍數(shù)多項(xiàng)式。Mi (X)是α 1的伽羅瓦域GF (2m)上的最小多項(xiàng)式。
[0074]寫入處理單元310從要被編碼的數(shù)據(jù)生成碼多項(xiàng)式,以及確定通過將碼多項(xiàng)式除以在表達(dá)式I中示出的生成多項(xiàng)式所得的余數(shù)。碼多項(xiàng)式是具有要被編碼的數(shù)據(jù)的每個(gè)位值的因子的多項(xiàng)式。寫入處理單元310生成被確定為奇偶校驗(yàn)位的余數(shù)中每個(gè)因子的數(shù)據(jù),以及向非易失性存儲(chǔ)器400輸出要被編碼的數(shù)據(jù)和作為碼字的奇偶校驗(yàn)位數(shù)據(jù)。
[0075]而且,寫入處理單元310可以不通過使用生成多項(xiàng)式的多項(xiàng)式運(yùn)算而是通過矩陣運(yùn)算進(jìn)行編碼。寫入處理單元310將寫入數(shù)據(jù)編碼到二進(jìn)制BCH碼中,以及可以將寫入數(shù)據(jù)編碼到非BCH碼的碼中,只要該碼具有錯(cuò)誤糾正能力即可。寫入處理單元310可以將寫入數(shù)據(jù)編碼到RS (里德-索羅門)碼或卷積碼中。而且,寫入處理單元310可以將寫入數(shù)據(jù)編碼到比二進(jìn)制碼更高維的碼中。
[0076]讀取處理單元320根據(jù)讀取命令,執(zhí)行從非易失性存儲(chǔ)器400讀出讀取數(shù)據(jù)。當(dāng)讀取處理單元320接收來自主機(jī)系統(tǒng)100的讀取命令時(shí),讀取處理單元320從被命令指定的存儲(chǔ)器地址讀出碼字來作為讀取數(shù)據(jù)。讀取處理單元320將讀取數(shù)據(jù)解碼為被編碼的原始數(shù)據(jù)。在解碼后,讀取處理單元320使用包括在讀取數(shù)據(jù)中的奇偶校驗(yàn)位,糾正讀取數(shù)據(jù)中的錯(cuò)誤。稍后將詳細(xì)描述糾正錯(cuò)誤的方法。讀取處理單元320向主機(jī)系統(tǒng)100輸出被編碼的解碼數(shù)據(jù)。 [0077]圖4是示出根據(jù)第一實(shí)施例的碼字的數(shù)據(jù)配置示例的示意圖。如圖4所示,寫入處理單元310將具有k位的要被編碼的每個(gè)數(shù)據(jù)編碼為具有η位的碼字。在這里,k是整數(shù),以及η是比k大的整數(shù)。每個(gè)碼字包括具有k位的要被編碼的數(shù)據(jù)和n-k位的奇偶校驗(yàn)位。當(dāng)碼字照原狀包括要被編碼的數(shù)據(jù),并且可以很容易被分離成要被編碼的數(shù)據(jù)和奇偶校驗(yàn)位時(shí),碼被稱為系統(tǒng)碼。但是,碼可以是非系統(tǒng)碼。
[0078][讀取處理單元的配置示例]
[0079]圖5是示出根據(jù)第一實(shí)施例的讀取處理單元320配置示例的框圖。讀取處理單元320包括讀取命令緩沖器321、RTN周期計(jì)數(shù)器322、碼字讀取單元323、讀取數(shù)據(jù)緩沖器324、錯(cuò)誤糾正單元325和刪除位置檢測單元328。
[0080]讀取命令緩沖器321保持從主機(jī)系統(tǒng)100接收的讀取命令。
[0081]RTN周期計(jì)數(shù)器322計(jì)數(shù)RTN周期。RTN周期是隨機(jī)電報(bào)噪聲使數(shù)據(jù)值波動(dòng)的周期。RTN周期被設(shè)定為,使得在RTN期間檢測的失配的頻率成為與非易失性存儲(chǔ)器400相同類型存儲(chǔ)器中最高的。
[0082]碼字讀取單元323從非易失性存儲(chǔ)器400以每個(gè)碼字單元讀出數(shù)據(jù)。具體地,碼字讀取單元323從讀取命令緩沖器321獲得讀取命令,向非易失性存儲(chǔ)器400輸出讀取命令,以及從存儲(chǔ)器地址讀出碼字來作為讀取數(shù)據(jù)RD。而且,碼字讀取單元323發(fā)送讀取命令,以開始由RTN周期計(jì)數(shù)器322進(jìn)行計(jì)數(shù)。
[0083]接著,碼字讀取單元323接收關(guān)于從錯(cuò)誤糾正單元325讀出的讀取數(shù)據(jù)的錯(cuò)誤糾正結(jié)果。如果糾正是成功的,則碼字讀取單元323初始化RTN周期計(jì)數(shù)器322的計(jì)數(shù)值。另一方面,當(dāng)糾正失敗時(shí),碼字讀取單元323參照RTN周期計(jì)數(shù)器的計(jì)數(shù)值,并且確定是否自讀取命令的輸出逝去了 RTN周期。如果逝去了 RTN周期,則碼字讀取單元323從讀取命令緩沖器321獲得讀取命令,向非易失性存儲(chǔ)器400輸出讀取命令,以及從存儲(chǔ)器地址讀出碼字作為再讀取數(shù)據(jù)rRD。碼字讀取單元323是所要求的碼字讀出單元的示例。
[0084]讀取數(shù)據(jù)緩沖器324保持從非易失性存儲(chǔ)器400讀出的讀取數(shù)據(jù)RD和再讀取數(shù)據(jù) rRD。
[0085]錯(cuò)誤糾正單元325糾正讀取數(shù)據(jù)RD中的錯(cuò)誤。當(dāng)讀取數(shù)據(jù)RD被讀取數(shù)據(jù)緩沖器324讀出時(shí),錯(cuò)誤糾正單元325利用包括在讀取數(shù)據(jù)RD中的奇偶校驗(yàn)位,檢測和糾正讀取數(shù)據(jù)RD中的錯(cuò)誤。顯示糾正是否成功的糾正結(jié)果由錯(cuò)誤糾正單元325提供給碼字讀取單元323和刪除位置檢測單元328。
[0086]如果讀取數(shù)據(jù)RD的錯(cuò)誤糾正是成功的,則錯(cuò)誤糾正單元325向主機(jī)系統(tǒng)100輸出從糾正后的讀取數(shù)據(jù)移除奇偶校驗(yàn)位的數(shù)據(jù)RD’。另一方面,如果糾正是失敗的,則錯(cuò)誤糾正單元325從刪除位置檢測單元328接收刪除位置數(shù)據(jù)。刪除位置數(shù)據(jù)顯示讀取數(shù)據(jù)RD中被刪除數(shù)據(jù)的刪除位置。例如,刪除位置數(shù)據(jù)被生成為具有與讀取數(shù)據(jù)RD相同大小的數(shù)據(jù),在刪除位置時(shí),位值為“ 1”,以及不在刪除位置時(shí),位值為“O”。
[0087]一旦錯(cuò)誤糾正單元325接收刪除位置數(shù)據(jù),則錯(cuò)誤糾正單元325基于由刪除位置數(shù)據(jù)示出的刪除位置,執(zhí)行刪除糾正。在這里,刪除糾正是用于確定刪除位置的數(shù)據(jù)值以使得在刪除位置刪除數(shù)據(jù)的糾正處理。刪除糾正是在假定刪除位置被檢測到的條件下執(zhí)行的。錯(cuò)誤糾正單元325向主機(jī)系統(tǒng)100輸出從經(jīng)刪除糾正后的讀取數(shù)據(jù)移除奇偶校驗(yàn)位的數(shù)據(jù)RD’。
[0088]刪除糾正的錯(cuò)誤糾正能力比刪除位置不清楚時(shí)的錯(cuò)誤糾正能力更高,即比刪除位置不清楚時(shí)的錯(cuò)誤糾正能 力大兩倍。在這里,錯(cuò)誤糾正能力是每個(gè)碼字可以被糾正的碼元(例如,位)的數(shù)量。碼元是構(gòu)成碼字的最小單位,并且也被稱為符號(hào)。
[0089]錯(cuò)誤糾正能力由最小漢明距離dmin確定。最小漢明距離dmin是碼所屬的任何不同碼字之間的漢明距離的最小值。如果滿足2?+1〈=(^η的t (整數(shù))的最大值是tmax,則當(dāng)刪除位置不清楚時(shí),碼元可以被糾正到tmax。規(guī)則被稱為有界距離譯碼算法。
[0090]另一方面,在刪除位置被檢測出的刪除糾正中,刪除位置的數(shù)量是h,以及位置不清楚時(shí)的錯(cuò)誤的數(shù)量是t,那么,只要2?+?!+1〈=^η是真,兩者可以被糾正。換句話說,當(dāng)t=0時(shí),碼元可以被糾正到作為滿足h+l〈=dmin的h (整數(shù))的最大值的hmax。由于hmax大于tmax,所以刪除位置被檢測出時(shí)的碼字的錯(cuò)誤糾正能力比刪除位置未被檢測出時(shí)的錯(cuò)誤糾正能力更高。
[0091]刪除位置檢測單元328檢測碼字的刪除位置。當(dāng)刪除位置檢測單元328接收到顯示讀取數(shù)據(jù)RD的糾正是失敗的糾正結(jié)果時(shí),刪除位置檢測單元328從讀取數(shù)據(jù)緩沖器324獲得讀取數(shù)據(jù)RD和再讀取數(shù)據(jù)rRD。如上所述,由于再讀取數(shù)據(jù)rRD是自讀出讀取數(shù)據(jù)RD的時(shí)間逝去RTN周期之后被讀出,所以當(dāng)在RTN周期中生成隨機(jī)電報(bào)噪聲時(shí),再讀取數(shù)據(jù)rRD可以具有不同的值。由于這個(gè)原因,通過確定讀取數(shù)據(jù)RD和再讀取數(shù)據(jù)rRD中的每個(gè)位的值是否匹配,刪除位置檢測單元328可以檢測數(shù)據(jù)被刪除的位的位置。刪除位置檢測單元328向錯(cuò)誤糾正單元325提供顯示所檢測出的刪除位置的刪除位置數(shù)據(jù)。
[0092]存儲(chǔ)器控制器300被配置為檢測刪除位置和糾正錯(cuò)誤,但是非易失性存儲(chǔ)器400可以被配置為執(zhí)行這些處理。
[0093]圖6是示出根據(jù)第一實(shí)施例的BCH碼的校驗(yàn)矩陣示例的示意圖。校驗(yàn)矩陣被用于檢測碼錯(cuò)誤。在BCH碼中,碼字的錯(cuò)誤通過圖6所示的校驗(yàn)矩陣乘以碼字來檢測。
[0094][錯(cuò)誤糾正單元的配置示例]
[0095]圖7是示出根據(jù)第一實(shí)施例的錯(cuò)誤糾正單元325的配置示例的框圖。錯(cuò)誤糾正單元325包括讀取數(shù)據(jù)錯(cuò)誤檢測和糾正單元326以及刪除糾正單元327。
[0096]讀取數(shù)據(jù)錯(cuò)誤檢測和糾正單元326檢測和糾正讀取數(shù)據(jù)RD中的錯(cuò)誤。如果錯(cuò)誤在BCH碼中被糾正,則讀取數(shù)據(jù)錯(cuò)誤檢測和糾正單元326利用被包括在碼字(讀取數(shù)據(jù)RD)中的奇偶校驗(yàn)位,檢測碼字中的錯(cuò)誤位置。具體地,讀取數(shù)據(jù)錯(cuò)誤檢測和糾正單元326從碼字和如圖6所示的校驗(yàn)矩陣確定癥候(syndrome)。在這里,癥候是通過將所接收的碼字乘以校驗(yàn)矩陣獲得的矢量,并且被用于確定錯(cuò)誤位置。
[0097]上述用于確定癥候的矩陣運(yùn)算可以由下列表達(dá)式2表示:
[0098]Si = Y( a x), i = I,…,2t …表達(dá)式 2
[0099]在表達(dá)式2中,Y (X)是具有讀取數(shù)據(jù)的每個(gè)位值的因子的接收多項(xiàng)式。Si表示癥候。
[0100]如果癥候Si完全是“0”,則讀取數(shù)據(jù)錯(cuò)誤檢測和糾正單元326確定讀取數(shù)據(jù)沒有錯(cuò)誤。在這種情況下,讀取數(shù)據(jù)錯(cuò)誤檢測和糾正單元326向主機(jī)系統(tǒng)100提供從讀取數(shù)據(jù)RD移除奇偶校驗(yàn)位的數(shù)據(jù)RD ’。
[0101]另一方面,如果任何癥候Si不是“0”,則讀取數(shù)據(jù)錯(cuò)誤檢測和糾正單元326確定讀取數(shù)據(jù)有錯(cuò)誤。在這種情況下,為了確定錯(cuò)誤位置,讀取數(shù)據(jù)錯(cuò)誤檢測和糾正單元326生成下列表達(dá)式3和4:
[0102]σ (z) = (1-a Jlz) (1-a j2z)…(1-a jLz)…表達(dá)式 3
[0103]…表達(dá)式 4
【權(quán)利要求】
1.一種錯(cuò)誤檢測和糾正裝置,包括: 碼字讀出單元,執(zhí)行讀取處理以從存儲(chǔ)器地址讀出包括多個(gè)碼元的碼字作為讀取數(shù)據(jù),并且在自讀出所述讀取數(shù)據(jù)的時(shí)間逝去預(yù)定時(shí)間后,執(zhí)行再讀取處理以從所述存儲(chǔ)器地址讀出碼字作為再讀取數(shù)據(jù),所述多個(gè)碼元通過檢測刪除位置來提高錯(cuò)誤糾正能力; 定時(shí)控制刪除位置檢測單元,用于通過確定所述讀取數(shù)據(jù)和所述再讀取數(shù)據(jù)中每個(gè)碼元的值是否匹配,來將具有不匹配值的碼元的位置檢測作為所述碼字中的所述刪除位置;以及 錯(cuò)誤糾正單元,基于被檢測出所述刪除位置的所述碼字中的所述刪除位置糾正錯(cuò)誤。
2.根據(jù)權(quán)利要求1所述的錯(cuò)誤檢測和糾正裝置,其中,當(dāng)檢測出的所述刪除位置的總數(shù)量超出對應(yīng)于所述錯(cuò)誤糾正能力的預(yù)定數(shù)量時(shí),所述錯(cuò)誤糾正單元以對應(yīng)于所檢測出的刪除位置中的所述刪除位置的總數(shù)量與所述預(yù)定數(shù)量之間的差的數(shù)量的位置不是刪除位置的方式糾正錯(cuò)誤。
3.根據(jù)權(quán)利要求2所述的錯(cuò)誤檢測和糾正裝置,進(jìn)一步包括: 數(shù)據(jù)替換單元,當(dāng)所檢測出的所述刪除位置的總數(shù)量超出所述預(yù)定數(shù)量時(shí),所述數(shù)據(jù)替換單元用具有特定值的數(shù)據(jù)替換數(shù)目對應(yīng)于所述差的所述刪除位置處的碼元,并將經(jīng)替換的碼元提供給所述錯(cuò)誤糾正單元, 所述錯(cuò)誤糾正單元以被具有所述特定值的數(shù)據(jù)替換的位置不是所述刪除位置的方式糾正錯(cuò)誤。
4.根據(jù)權(quán)利要求3所述的錯(cuò)誤檢測和糾正裝置,其中,基于將所述碼元的兩個(gè)值中的一個(gè)值反轉(zhuǎn)到另一個(gè)值的可能性以及將所述碼元的另一個(gè)值反轉(zhuǎn)到所述一個(gè)值的可能性,來確定所述特定值。
5.根據(jù)權(quán)利要求1所述的錯(cuò)誤檢測和糾正裝置,進(jìn)一步包括: 閥值控制讀出單元,將用于確定被保持在所述存儲(chǔ)器地址中的所述碼元的值是兩個(gè)值中哪一個(gè)的閥值控制為第一值,從所述存儲(chǔ)器地址讀出所述碼字作為第一數(shù)據(jù),將所述閥值控制為不同于所述第一值的第二值,以及從所述存儲(chǔ)器地址讀出碼字作為第二數(shù)據(jù);以及 閥值控制刪除位置檢測單元,用于確定所述第一數(shù)據(jù)和所述第二數(shù)據(jù)中每個(gè)碼元的值是否匹配,以及檢測具有不匹配值的碼元的位置作為所述碼字中的刪除位置, 所述錯(cuò)誤糾正單元對所述定時(shí)控制刪除位置檢測單元檢測出所述刪除位置的所述碼字中的錯(cuò)誤進(jìn)行糾正,以及對所述閥值控制刪除位置檢測單元檢測出所述刪除位置的碼字中的錯(cuò)誤進(jìn)行糾正。
6.根據(jù)權(quán)利要求1所述的錯(cuò)誤檢測和糾正裝置,進(jìn)一步包括: 讀取數(shù)據(jù)錯(cuò)誤檢測單元,當(dāng)所述碼字讀出單元執(zhí)行讀取處理時(shí),檢測所述讀取數(shù)據(jù)中的錯(cuò)誤, 當(dāng)所述讀取數(shù)據(jù)錯(cuò)誤檢測單元檢測到所述錯(cuò)誤時(shí),所述碼字讀出單元執(zhí)行再讀取處理。
7.根據(jù)權(quán)利要求1所述的錯(cuò)誤檢測和糾正裝置,進(jìn)一步包括: 獲取溫度的溫度獲取單元;以及 確定單元,根據(jù)所述讀取處理被執(zhí)行前的溫度,確定所述預(yù)定時(shí)間的長度,當(dāng)所述預(yù)定時(shí)間的長度被確定時(shí),所述碼字讀出單元執(zhí)行所述讀取處理。
8.一種失配檢測裝置,包括: 碼字讀出單元,執(zhí)行讀取處理以從存儲(chǔ)器地址讀出包括多個(gè)碼元的碼字作為讀取數(shù)據(jù),并且在自讀出所述讀取數(shù)據(jù)的時(shí)間逝去預(yù)定時(shí)間后,執(zhí)行再讀取處理以從所述存儲(chǔ)器地址讀出碼字作為再讀取數(shù)據(jù); 失配檢測單元,檢測所述讀取數(shù)據(jù)和所述再讀取數(shù)據(jù)是否失配;以及 登記單元,將檢測出所述失配的所述存儲(chǔ)器地址作為禁止進(jìn)行存取的缺陷地址來登記。
9.根據(jù)權(quán)利要求8所述的失配檢測裝置,其中,所述失配檢測單元針對每個(gè)碼元確定所述值是否失配,以及其中當(dāng)被確定為失配的碼元的數(shù)量超出預(yù)定閥值時(shí),所述登記單元將所述存儲(chǔ)器地址登記為缺陷地址。
10.一種失配檢測裝置,包括: 供給單元,按順序提供具有不同長度的多個(gè)時(shí)間作為候選時(shí)間; 碼字讀出單元,執(zhí)行讀取處理以從存儲(chǔ)器地址讀出包括多個(gè)碼元的碼字作為讀取數(shù)據(jù),并且在自讀出所述讀取數(shù)據(jù)的時(shí)間逝去所述候選時(shí)間后,執(zhí)行再讀取處理以從所述存儲(chǔ)器地址讀出碼字作為再讀取數(shù)據(jù),每次設(shè)定所述候選時(shí)間都執(zhí)行一定次數(shù)的所述讀取處理和所述再讀取處 理; 失配檢測單元,每次執(zhí)行所述讀取處理和所述再讀取處理時(shí),檢測所述讀取數(shù)據(jù)和所述再讀取數(shù)據(jù)是否失配; 計(jì)數(shù)器,對所述多個(gè)時(shí)間計(jì)數(shù)檢測為失配的次數(shù);以及 設(shè)定單元,基于所述檢測次數(shù),在所述多個(gè)時(shí)間中,設(shè)定檢測為失配的頻率最高的時(shí)間。
11.一種存儲(chǔ)器系統(tǒng),包括: 將包括多個(gè)碼元的碼字存儲(chǔ)到存儲(chǔ)器地址的存儲(chǔ)器,所述多個(gè)碼元通過檢測刪除位置來提高錯(cuò)誤糾正能力; 碼字讀出單元,執(zhí)行讀取處理以從存儲(chǔ)器地址讀出包括多個(gè)碼元的碼字作為讀取數(shù)據(jù),以及在自讀出所述讀取數(shù)據(jù)的時(shí)間逝去預(yù)定時(shí)間后,執(zhí)行再讀取處理,以從所述存儲(chǔ)器地址讀出碼字作為再讀取數(shù)據(jù); 定時(shí)控制刪除位置檢測單元,通過確定所述讀取數(shù)據(jù)和所述再讀取數(shù)據(jù)中每個(gè)碼元的值是否匹配,檢測具有不匹配的值的碼元的位置,作為所述碼字中的所述刪除位置;以及錯(cuò)誤糾正單元,基于被檢測出所述刪除位置的所述碼字中的所述刪除位置,糾正錯(cuò)誤。
12.—種檢測和糾正錯(cuò)誤的方法,包括: 由所述碼字讀出單元執(zhí)行的碼字讀出步驟,用于執(zhí)行讀取處理,以從存儲(chǔ)器地址讀出包括多個(gè)碼元的碼字作為讀取數(shù)據(jù),以及在自讀出所述讀取數(shù)據(jù)的時(shí)間逝去預(yù)定時(shí)間后,執(zhí)行再讀取處理,以從所述存儲(chǔ)器地址讀出碼字作為再讀取數(shù)據(jù),所述多個(gè)碼元通過檢測刪除位置來提高錯(cuò)誤糾正能力; 由所述定時(shí)控制刪除位置檢測單元執(zhí)行的定時(shí)控制刪除位置檢測步驟,用于通過確定所述讀取數(shù)據(jù)和所述再讀取數(shù)據(jù)中每個(gè)碼元的值是否匹配,檢測具有不匹配的值的碼元的位置作為所述碼字中的所述刪除位置;以及由所述錯(cuò)誤糾正單元執(zhí)行的錯(cuò)誤糾正步驟,基于被檢測出所述刪除位置的所述碼字中的所述刪除位置 ,糾正錯(cuò)誤。
【文檔編號(hào)】G11C29/42GK103811075SQ201310513810
【公開日】2014年5月21日 申請日期:2013年10月25日 優(yōu)先權(quán)日:2012年11月2日
【發(fā)明者】阪井塁, 藤波靖, 足立直大, 筒井敬一, 新橋龍男, 池谷亮志 申請人:索尼公司