存儲裝置、存儲器控制器及存儲器控制方法
【專利說明】存儲裝置、存儲器控制器及存儲器控制方法
[0001]本申請基于美國臨時專利申請61/950,625號(申請日:2014年3月10日)并要求其優先權。該在先申請的全部內容通過引用并入此處。
技術領域
[0002]本發明涉及存儲裝置、存儲器控制器及存儲器控制方法。
【背景技術】
[0003]在NAND閃存(以下稱為NAND存儲器)中,利用在存儲器單元的浮置柵積蓄的電荷量來存儲信息。根據在存儲器單元的浮置柵積蓄的電荷量來決定閾值電壓。閾值電壓表示存儲器單元的晶體管為ON(有電流流動)的電壓。即、在向存儲器單元施加閾值電壓以上的電壓時有電流流動,在施加比閾值電壓低的電壓的情況下沒有電流流動。在NAND存儲器中,定義多個閾值的范圍,并將各范圍分配為多個數據值,注入電子以使存儲器單元的閾值成為與數據值對應的范圍。這樣,各存儲器單元能存儲數據值。
[0004]例如,在使用每一個存儲器單元能存儲3位(比特)的3位/單元的存儲器單元的情況下,將八個電壓范圍分配為八個數據值。在寫入時,注入電子以使在存儲器單元的浮置柵積蓄的電荷量成為與八個第一范圍中的任一個對應的電荷量。而且,通過施加用于區別八個電壓范圍的七個讀取電壓,而能讀取存儲于存儲器單元的數據值。另一方面,在NAND存儲器中,浮置柵的電荷量有時從寫入時變化,這樣,有時不能正確地讀取存儲于存儲器單元的數據值。
【發明內容】
[0005]本發明的目的是在進行從存儲器單元度讀取的數據的糾錯時提高能糾正的可能性。
[0006]本實施方式的存儲裝置,包括:半導體存儲器,存儲作為編碼字的第一編碼字及第二編碼字,并具有多層單元,與一個字線連接的多個存儲器單元能存儲多個頁;和控制器,其從半導體存儲器的多個頁中的一個頁讀取第一編碼字及向多個頁中的與第一編碼字對應的頁以外的頁寫入的第二編碼字。控制器使用從半導體存儲器讀取的第一編碼字及第二編碼字來進行糾錯處理,控制器在由糾錯處理不能糾正第一編碼字且能糾正第二編碼字的情況下再讀取第一編碼字,控制器使用再讀取所形成的讀取結果和糾錯后的第二編碼字的各位的位值來決定第一編碼字的各位值。
【附圖說明】
[0007]圖1是表示第一實施方式涉及的存儲裝置的構成例的框圖。
[0008]圖2是表示使用3位/單元的存儲器單元的情況下的存儲器單元和頁的關系的圖。
[0009]圖3是表示3位/單元的多層單元的電壓范圍和數據的分配例的圖。
[0010]圖4是表示在半導體存儲器的各頁保存的用戶數據和奇偶校驗(〃 U f )的一例的圖。
[0011]圖5是表示閾值的變化和位值的判斷錯誤及再讀取后的值的一例的圖。
[0012]圖6是表示第一實施方式的存儲裝置的再讀取控制涉及的數據的收發的圖。
[0013]圖7是示意地表示推定數據的選擇方法的圖。
[0014]圖8是表示第一實施方式的再讀取步驟的一例的圖。
[0015]圖9是表示第二實施方式的再讀取步驟的一例的圖。
[0016]圖10是表示求出從七個再讀取數據觀測的電平的一例的圖。
【具體實施方式】
[0017]下面參照附圖來詳細說明實施方式涉及的存儲裝置、存儲器控制器及存儲器控制方法。再有,本發明不限于這些實施方式。
[0018](第一實施方式)
[0019]圖1是表示第一實施方式涉及的存儲裝置的構成例的框圖。本實施方式的存儲裝置I具備存儲器控制器2和半導體存儲器3。存儲裝置I能與主機4連接,在圖1中表示了與主機4連接的狀態。主機4是例如個人計算機、移動終端等電子設備。
[0020]半導體存儲器3是非易失地存儲數據的半導體存儲器,例如,是NAND存儲器。在NAND存儲器中,在通常為被稱為頁的寫入單位數據的每個進行數據的寫入、讀取。在本實施方式中,半導體存儲器3的存儲器單元是能在單個存儲器單元進行2位以上的存儲的多層單元。
[0021]存儲器控制器2根據來自主機4的寫入命令來控制向半導體存儲器3的寫入。此夕卜,存儲器控制器2根據來自主機4的讀取命令來控制從半導體存儲器3的讀取。存儲器控制器2具備主機I/F21、存儲器I/F22(存儲器控制部)、控制部23、ECC (Error CorrectingCode (糾錯碼或糾錯符碼))部24、數據緩沖器27及再讀取控制部28,且互相之間用內部總線20連接。
[0022]主機I/F21將從主機4接收的命令、用戶數據(寫入數據)等向內部總線20輸出。此外,主機I/F21將從半導體存儲器3讀取的用戶數據(讀取數據)、來自控制部23的響應等向主機4發送。
[0023]存儲器I/F22基于控制部23的指示來控制將用戶數據等向半導體存儲器3寫入的處理及從半導體存儲器3讀取的處理。
[0024]控制部23整體地控制存儲裝置I。控制部23是例如CPU (中央處理器)、MPU (微處理器)等。控制部23在從主機4經由主機I/F21接收命令的情況下進行根據該命令的控制。例如,控制部23根據來自主機4的命令來向存儲器I/F22指示向半導體存儲器3寫入用戶數據及奇偶校驗。此外,控制部23根據來自主機4的命令來向存儲器I/F22指示從半導體存儲器3讀取用戶數據及奇偶校驗。
[0025]控制部23對在數據緩沖器27積蓄的用戶數據決定半導體存儲器3上的保存區域(存儲器區域)。用戶數據經由內部總線20保存于數據緩沖器27中。控制部23對作為寫入單位的頁單位的數據(頁數據)實施存儲器區域的決定。在本實施方式中,將與一個字線共同地連接的存儲器單元定義為存儲器單元組。在存儲器單元是多層單元的情況下,存儲器單元組與多個頁對應。例如,在使用能存儲2位的(2位/單元的)多層單元的情況下,存儲器單元組與2頁對應。在使用能存儲3位的(3位/單元的)多層單元的情況下,存儲器單元組與3頁對應。
[0026]圖2是表示使用3位/單元的存儲器單元的情況下的存儲器單元和頁的關系的圖。在使用3位/單元的存儲器單元的情況下,在本實施方式中,將在一個存儲器單元保存的3位分別稱為上位、中位、下位。此外,將由構成一個存儲器單元組(與一個字線(WL)連接的存儲器單元)的存儲器單元的上位所構成的頁稱為上頁,將由中位所構成的頁稱為中頁,將由下位所構成的頁稱為下頁。
[0027]控制部23在每頁決定寫入目標的半導體存儲器3的存儲器區域。在半導體存儲器3的存儲器區域分配了物理地址。控制部23使用物理地址來管理用戶數據的寫入目標的存儲器區域。控制部23向存儲器I/F22指示以指定決定的存儲器區域(物理地址)來將用戶數據向半導體存儲器3寫入。控制部23管理用戶數據的邏輯地址(主機4管理的邏輯地址)和物理地址的對應。在接收包括來自主機4的邏輯地址在內的讀取命令的情況下,控制部23特定與接收的邏輯地址對應的物理地址,并向存儲器I/F22指示從特定的物理地址讀取用戶數據。
[0028]ECC部24具備編碼部25及解碼部26。編碼部25將在同一頁寫入的預定大小的用戶數據進行編碼以生成奇偶校驗。奇偶校驗在已寫入成為編碼的基礎的用戶數據的頁寫入。解碼部26使用該奇偶校驗來解碼。對于本實施方式的編碼及解碼的詳細情況在后面描述。
[0029]數據緩沖器27將從主機4接收的用戶數據在向半導體存儲器3存儲前臨時保存,并將從半導體存儲器3讀取的數據在向主機4發送前臨時保存。數據緩沖器27包括例如SRAM(靜態隨機訪問存儲器)和/或DRAM(動態隨機訪問存儲器)等通用存儲器。
[0030]再讀取控制部28進行控制以在從半導體存儲器3讀取時基于解碼部26的解碼結果來在存在不能糾錯的用戶數據的情況下實施再讀取。在該再讀取中,基于保存不能糾錯的用戶數據的存儲器單元組內的其他頁的數據值來實施再讀取。對于本實施方式的詳情在后面描述。再讀取控制部28可通過硬件來安裝,或者也可作為由作為控制部23的CPU、MPU等執行的固件來安裝,還可作為由與控制部23不同的CPU、MPU等執行的固件來安裝。
[0031]在圖1中,存儲器控制器2表示分別具備ECC部24和存儲器I/F22的構成例。然而,ECC部24也可