KR20100109445A - 메모리 컨트롤러 및 반도체 기억 장치 - Google Patents

메모리 컨트롤러 및 반도체 기억 장치 Download PDF

Info

Publication number
KR20100109445A
KR20100109445A KR1020100027719A KR20100027719A KR20100109445A KR 20100109445 A KR20100109445 A KR 20100109445A KR 1020100027719 A KR1020100027719 A KR 1020100027719A KR 20100027719 A KR20100027719 A KR 20100027719A KR 20100109445 A KR20100109445 A KR 20100109445A
Authority
KR
South Korea
Prior art keywords
unit
threshold level
error
error threshold
error correction
Prior art date
Application number
KR1020100027719A
Other languages
English (en)
Inventor
미찌꼬 다까하시
겐지 사까우에
히로시 스께가와
Original Assignee
가부시끼가이샤 도시바
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 가부시끼가이샤 도시바 filed Critical 가부시끼가이샤 도시바
Publication of KR20100109445A publication Critical patent/KR20100109445A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)
  • Error Detection And Correction (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

메모리 컨트롤러는, 오류 정정 수에 대응하는 오류 임계치 레벨을 기억하는 오류 정정 수 대응 테이블, 각 블록에 대한 오류 임계치 레벨을 기억하는 오류 임계치 레벨 기억부, 각 블록마다 미정정된 오류 정정의 수를 계측하는 미정정된 수 계측부, 소정의 블록의 미정정된 수가 소정의 수를 초과할 때마다, 블록의 오류 임계치 레벨을 변경하는 오류 임계치 레벨 변경부, 오류 정정 수 대응 테이블 및 오류 임계치 레벨에 기초하는 오류 정정 수로 각 블록에 속하는 메모리 셀에 기억된 데이터의 부호화 처리를 행하는 인코더; 및 데이터의 복호화 처리를 행하는 디코더를 포함한다.

Description

메모리 컨트롤러 및 반도체 기억 장치{MEMORY CONTROLLER AND SEMICONDUCTOR MEMORY APPARATUS}
<관련 출원에 대한 교차 참조>
본 출원은 2009년 3월 30일자로 일본에서 출원된 일본 특허 출원 제2009-83051호의 이익을 주장하며, 그 전체 내용은 참조함으로써 본 명세서에 포함된다.
본 발명은, 데이터의 부호화 처리를 행하여 부호화된 데이터를 생성하고 부호화된 데이터의 복호화 처리를 행하는 오류 정정 부호부를 갖는 메모리 컨트롤러 및 반도체 기억 장치에 관한 것이다. 더 구체적으로는, 본 발명은 플래시 메모리부에 기억되어 있는 데이터의 부호화 처리를 행할 때 오류 정정 수(error correction number)를 변경할 수 있는 메모리 컨트롤러 및 반도체 기억 장치에 관한 것이다.
일본 특허 출원 공보 제2004-120419호는 프레임 길이와 오류 정정 수를 임의로 설정할 수 있는 리드-솔로몬(Reed-Solomon) 부호화 회로를 개시한다.
그러나, 플래시 메모리부에 기억된 데이터의 부호화 처리를 행하여 부호화된 데이터를 생성하고 또한 부호화된 데이터의 복호화 처리를 행하는 메모리 컨트롤러에서, 데이터를 기억하는 메모리부는 복수의 메모리 셀로 이루어져 있고, 오류 발생 확률은 개개의 셀에 기억된 데이터마다 동일하지 않다. 그러므로, 모든 메모리 셀에 기억되어 있는 데이터에 대해 동일한 오류 정정 수가 획일적으로 설정되는 경우, 설정되어 있는 오류 정정 수가 작으면 오류가 빈번하게 발생한다. 반면, 설정되어 있는 오류 정정 수가 크면 오류 정정 부호가 길어지게 되어, 즉, 패리티가 데이터에 부가되므로 부호화된 데이터의 길이가 길어지게 되어, 사용자가 데이터를 임의로 기억시킬 수 있는 메모리부의 용량이 감소하게 된다. 또한, 불필요한 처리가 행해지기 때문에 부호화 처리 및 복호화 처리의 처리 시간이 증가한다. 따라서, 단지 오류 정정 수를 증가시킬 수 있거나 또는 감소시킬 수 있는 메모리 컨트롤러가 사용되는 경우에도, 오류 정정 처리를 효율적으로 행하는 것이 반드시 쉬운 것이 아니었다.
본 발명의 일 양태에 따라, 플래시 메모리부에 기억되어 있는 데이터의 부호화 처리를 행할 때 오류 정정 수에 대응하여 오류 임계치 레벨을 기억하는 오류 정정 수 대응 테이블(오류 정정 수는 증가 또는 감소될 수 있고, 플래시 메모리부는 복수의 세트 단위들 중 임의의 하나로 각각 분류가능한 복수의 메모리 셀로 이루어져 있음), 각 세트 단위의 오류 임계치 레벨을 기억하는 오류 임계치 레벨 기억부, 각 세트 단위의 미정정된 오류 정정의 수를 계측하는 미정정된 수 계측부, 소정의 세트 단위의 미정정된 수가 소정의 수를 초과할 때마다, 오류 임계치 레벨 기억부에 기억되어 있는 관련 세트 단위의 오류 임계치 레벨을 새로운 오류 임계치 레벨로 변경하는 오류 임계치 레벨 변경부, 오류 정정 수 대응 테이블 및 오류 임계치 레벨 기억부에 기억되어 있는 오류 임계치 레벨에 기초하는 오류 정정 수로 부호화 처리를 행하는 인코더, 및 플래시 메모리부에 기억되어 있는 데이터의 복호화 처리를 행하는 디코더를 포함하는 메모리 컨트롤러가 제공된다.
또한, 본 발명의 또 다른 양태에 따라, 반도체 기억 장치로서, 각각이 복수의 세트 단위 중 임의의 하나로 분류가능한 복수의 메모리 셀로 이루어진 플래시 메모리부, 플래시 메모리부에 기억되어 있는 데이터의 부호화 처리를 행할 때 메모리 컨트롤러의 오류 정정 수에 대응하여 오류 임계치 레벨을 기억하는 오류 정정 수 대응 테이블(오류 정정 수는 증가 또는 감소될 수 있음), 각 세트 단위의 오류 임계치 레벨을 기억하는 오류 임계치 레벨 기억부, 각 세트 단위의 미정정된 오류 정정의 수를 계측하는 미정정된 수 계측부, 소정의 세트 단위의 미정정된 수가 소정의 수를 초과할 때마다, 오류 임계치 레벨 기억부에 기억되어 있는 관련 세트 단위의 오류 임계치 레벨을 새로운 오류 임계치 레벨로 변경하는 오류 임계치 레벨 변경부, 오류 정정 수 대응 테이블 및 오류 임계치 레벨 기억부에 기억되어 있는 오류 임계치 레벨에 기초하는 오류 정정 수로 부호화 처리를 행하는 인코더, 및 플래시 메모리부에 기억되어 있는 데이터의 복호화 처리를 행하는 디코더를 포함하는 반도체 기억 장치가 제공된다.
본 실시 형태의 메모리 컨트롤러(10)는 공장 출하 시 초기 설정된 오류 정정 수를 ECC부(20)의 최대 오류 정정 수보다 작게 하기 때문에, 패리티 길이는 짧고 사용자가 사용할 수 있는 메모리부(30)의 용량은 크다. 또한, 메모리 컨트롤러(10)와 반도체 기억 장치(2)가 작은 오류 정정 수로 부호화된 데이터를 생성하기 때문에, 인코더(21) 및 디코더(22)의 처리 부하는 작고, 처리 속도는 빠르며, 전력 소비가 작다. 따라서, 오류 정정 처리의 효율이 양호하다.
또한, 본 메모리 컨트롤러(10)와 반도체 기억 장치(2)에 따르면, 임의의 하나의 블록의 데이터 오류로 인해 그에 수반하여 반도체 기억 장치(2)의 사용이 증가하더라도, 블록 단위의 오류 발생률의 증가에 따라 최적의 값으로 블록 단위의 자동 조정을 행하는 것이 가능하므로 오류 정정 처리 효율이 양호하다. 더욱 구체적으로, 메모리 컨트롤러(10) 및 반도체 기억 장치(2)는 오류의 수와 오류 레벨에 따라, 다시 말해, 메모리부(30)의 신뢰도에 따라, 오류 정정 수를 최적의 값으로 가변적으로 자동으로 조정할 수 있다.
도 1은 제1 실시 형태에 따른 반도체 디바이스의 구성을 도시하는 구성도.
도 2는 제1 실시 형태에 따른 반도체 디바이스의 구성을 도시하는 구성도.
도 3은 제1 실시 형태에 따른 메모리 컨트롤러의 오류 정정 수 대응 테이블의 예를 보여주는 도면.
도 4는 제1 실시 형태에 따른 메모리 컨트롤러의 복호화 처리를 설명하는 흐름도.
도 5는 제1 실시 형태에 따른 메모리 컨트롤러의 복호화 처리를 설명하는 구성도.
도 6은 제1 실시 형태에 따른 메모리 컨트롤러의 부호화 처리를 설명하는 흐름도.
도 7은 제1 실시 형태에 따른 메모리 컨트롤러의 부호화 처리를 설명하는 구성도.
도 8은 제2 실시 형태에 따른 반도체 디바이스의 구성을 도시하는 구성도.
<제1 실시 형태>
이하에, 본 발명의 제1 실시 형태에 따른 메모리 컨트롤러 및 반도체 기억 장치를 도면을 참조하여 설명한다.
도 1에 도시된 바와 같이, 본 실시 형태에 따른 반도체 기억 장치(2)는 퍼스널 컴퓨터 또는 디지털 카메라와 같은 호스트(3)에 착탈가능하게 접속되어 있는 기억 매체이며, 예를 들면, 메모리 카드의 형태이다. 이와 관련하여, 본 발명의 실시 형태로서의 반도체 기억 장치(미도시)는, 호스트(미도시) 내부에 하우징되고 호스트의 구동 데이터(activation data) 등을 기억하는 소위 내장형 장치일 수 있고, 또는 반도체 디스크:SSD(Solid State Drive)와 같은 구성을 또한 채택할 수 있다. 대안으로, 반도체 기억 장치(2)와 호스트(3)는 휴대용 음악 재생기인 MP3 플레이어와 같은 메모리 시스템(1)에 포함될 수도 있다. 반도체 기억 장치(2)는 메모리부(30)와 메모리 컨트롤러(10)를 갖는다. 메모리부(30)는 NAND형 플래시 메모리부이며, 단위 셀인 많은 수의 메모리 셀(31)이 기입에 사용되는 비트선(미도시) 및 판독 등에 사용되는 워드선(32)과 연결되어 있는 구성을 갖는다.
이와 관련하여, NAND형 플래시 메모리부를 갖는 반도체 기억 장치(2)의 구성은 복수의 메모리 셀(31)에 기억되어 있는 데이터를 일괄하여 소거함으로써 단순화된다. 데이터가 일괄하여 소거 처리되는 때의 소거 단위는 도 1에 개략적으로 도시되어 있는 블록(33)이다. 반도체 기억 장치(2)에서, 복수의 메모리 셀(31)에 기억되어 있는 데이터의 판독 단위는 블록(33)보다 크기가 작은 "페이지"라 불리는 단위이다. 보다 구체적으로, 페이지는 복수의 메모리 셀(31)로 이루어져 있고, 블록(33)은 복수의 페이지로 이루어져 있고, 메모리부(30)는 복수의 블록(33)으로 이루어져 있다.
메모리 컨트롤러(10)는 ROM(13), 제어부인 CPU(11), RAM(15), 호스트 I/F(인터페이스)(12), 기억되어 있는 데이터의 부호화 처리를 행하고 부호화된 데이터를 출력하는 인코더(21) 및 기억되어 있는 부호화된 데이터의 복호화 처리를 행하는 디코더(22)를 포함하고, 오류 정정 수를 증가 또는 감소시킬 수 있는 오류 정정 부호부(ECC)(20), 및 NAND I/F(인터페이스)(14)를 포함한다. 이 메모리 컨트롤러(10)의 구성요소들은 버스(17)를 통해 접속된다. 메모리 컨트롤러(10)는 CPU(11)를 사용하여 호스트 I/F(12)를 통해 호스트(3)로 데이터를 송신하고 호스트(3)로부터 데이터를 수신하며, NAND I/F(14)를 통해 메모리부(30)로 데이터를 송신하고 및 메모리부(30)로부터 데이터를 수신한다.
전술한 바와 같이, 메모리 컨트롤러(10)는 복수의 메모리 셀(31)을 포함하는 메모리 셀 어레이가 복수의 블록(33)으로 이루어져 있고 각 블록(33)이 블록 단위로 소거 가능한 메모리부(30)에 기억되어 있는 데이터의 부호화 처리 및 복호화 처리를 행한다.
다음으로, 본 실시 형태의 메모리 컨트롤러(10)의 구성에 대해 도 2를 이용하여 좀 더 상세하게 설명한다. 도 2에 도시된 바와 같이, 메모리 컨트롤러(10)는 ECC(20)와 기능부(18)를 가지며, ECC(20)는 이 기능부(18)와 함께 오류 정정 수 등을 증가 또는 감소시키는 기능을 행한다.
ECC(20)의 인코더(21)는, 호스트(3)로부터 입력되는 데이터에 대해 후술하는 오류 임계치 레벨(또한 "ETL"이라 지칭됨) 기억부(23)에 기억되어 있는 오류 정정 수에 기초하여 각 블록(33)마다 상이한 패리티 길이의 패리티를 계산하는 패리티 계산부(21A)와, 패리티를 데이터에 할당하여 부호화된 데이터를 형성하는 셀렉터(21B)를 갖는다. 더욱 구체적으로, 인코더(21)는, 오류 정정 수에 대응하여 오류 임계치 레벨을 기억하는 오류 정정 수 대응 테이블(25) 및 오류 임계치 레벨 기억부(23)에 기억되어 있는 오류 임계치 레벨에 기초하는 오류 정정 수로 각 블록에 속하는 메모리 셀에 기억되어 있는 데이터의 부호화 처리를 행한다.
메모리부(30)로부터 페이지 단위로 판독된 부호화된 데이터에서의 오류를 검출하고 정정하기 위해, ECC(20)의 디코더(22)는 신드롬(syndrome)을 계산하는 신드롬 계산부(22A), 오류 위치 다항식을 계산하는 오류 위치 다항식 계산부(22B), 오류 위치를 탐색(search)하는 치엔(Chien) 탐색부(22C) 및 특정된 오류 위치에서의 오류를 정정하는 오류 정정부(미도시)를 갖는다.
더욱 구체적으로, 복호화 처리에서, 우선 신드롬 계산부(22A)에서 신드롬이 계산된다. 신드롬 계산 값이 0일 때, 이것은 오류 개수 N이 0임을 의미하며, 오류 정정을 반드시 행할 필요는 없기 때문에, 당해의 데이터는 호스트 인터페이스(12)를 통해 호스트(3)에 출력된다. 신드롬 계산 값이 0이 아닐 때에는, 오류 위치 다항식이 신드롬에 기초하여 오류 위치 다항식 계산부(22B)에서 계산된다. 계산된 오류 위치 계산식의 계수(coefficient)가 N차 다항식으로 표현되면, 이것은 N개의 오류가 있음을 의미한다.
오류 위치 다항식 계산에 의해 N개의 오류가 있는 것으로 밝혀지면, 다음 단계로서 치엔 탐색부(22C)에서 오류 위치가 특정된다. 치엔 탐색부(22C)에서, 모든 가능한 값(예를 들면, 0 내지 M; 여기서 M은 최종 비트 위치 또는 최종 바이트 위치임)을 N차 오류 위치 다항식의 변수 X에 차례로 대입하여(assign) 오류 위치 다항식이 만족되는지의 여부를 탐색한다. 이어서, N개의 모든 해답이 특정되면, 오류 정정부는 오류 데이터를 일괄하여 정정한다.
BCH 부호를 갖는 부호화된 데이터의 경우, 오류 정정부에서의 오류 정정은 비트 반전(bit inversion)에 의해 행해진다. 리드-솔로몬 부호를 갖는 부호화된 데이터의 경우에서는, 오류 정정 후의 값이 연립 1차 방정식(simultaneous linear equation)을 추가로 풀어서 8-비트 데이터로서 계산된다.
기능부(18)는 각 블록에 대응하는 오류 정정 수에 대응하여 오류 임계치 레벨 ETL을 기억하는 오류 임계치 레벨 기억부(23), 복호화 처리 시 각 블록마다 미정정된 오류 정정의 수(an uncorrected number of an error correction)를 계측하는 미정정된 수 계측부(uncorrected number measurement section)(26), 미정정된 수 계측부(26)에 의해 계측된 미정정된 수가 소정의 수를 초과할 때마다 오류 임계치 레벨 기억부(23)에 기억되어 있는 각 블록에 대응하는 ETL을 증가시키는 오류 임계치 레벨 변경부(24), 및 ETL과 오류 정정 수 T 간의 대응관계를 기억하는 오류 정정 수 대응 테이블(25)을 갖는다. 더욱 구체적으로, 메모리 컨트롤러(10)는 각 개별 블록마다 오류 정정 수를 자동으로 조정한다.
본 명세서에서는 설명을 용이하게 하기 위해 기능부(18)가 독립적인 구성요소로서 설명되었지만, 기능부(18)의 각 구성요소는 전술한 CPU(11) 및 RAM(15)의 일부이다. 예를 들어, 미정정된 수 계측부(26) 및 오류 임계치 레벨 변경부(24)의 동작은 펌웨어(FW)를 이용하여 CPU(11)에 의해 실행된다. 또한, 오류 임계치 레벨 기억부(23) 및 오류 정정 수 대응 테이블(25)은 RAM(15)의 일부이다. 당연히, 기능부(18)의 각 구성요소는 또한 CPU(11) 또는 RAM(15)과는 실제로 독립적인 구성요소일 수 있다.
이 경우, NAND형 플래시 메모리부를 갖는 반도체 기억 장치(2)에서는, 기억된 데이터를 판독할 때의 오류가 기입/소거 횟수의 증가에 수반하여 증가하는 경향이 있다. 이것은 NAND형 플래시 메모리부의 메모리 셀(31)의 기입/소거 처리 시 플로팅 게이트로 주입되는 전자 및 기판에 대해 게이트에 인가되는 전압이 높기 때문이다. 기입/소거 동작의 횟수가 증가할수록 플로팅 게이트 주위의 산화물막이 열화하기 때문에, 오류 수가 증가한다. 또한, 메모리부(30) 내의 복수의 블록에서, 기입/소거 동작의 횟수는 각 블록마다 상이하다.
장기간 사용 후에도 미정정된 오류가 발생하지 않도록 하기 위해서는, 우선, 예를 들어, 공장 출하(factory shipment) 시 오류가 더 발생할 것을 고려하여 오류 정정 수를 설정하는 것이 필요하다. 따라서, 상술한 바와 같이, 오류 정정 처리의 효율이 악화된다.
반면, 메모리 컨트롤러(10)는 반도체 기억 장치(2)의 사용을 시작할 때 작은 오류 정정 수로 복호화 처리를 행하고, 오류 발생의 증가에 따라 각 블록마다 오류 정정 수를 증가시킨다.
그런 연유로, 반도체 기억 장치(2)의 사용을 시작하기에 앞서, 메모리 컨트롤러(10)는 기입/소거 동작의 횟수가 많은 것이 명백한 블록, 예를 들면 FAT 영역의 블록에 대한 오류 정정 수의 초기값을 다른 블록들의 초기값보다 큰 값으로 설정할 수 있다.
도 3은 본 실시 형태에 따른 메모리 컨트롤러(10)의 오류 정정 수 대응 테이블(25)의 예를 도시하는 도면이다. 도 3에 도시된 예에서, 오류 정정 수는 3개의 레벨, 즉, 오류 임계치 레벨 0, 1 및 2의 3 레벨로 분류되어 있다. 오류 임계치 레벨 0에서의 정정 능력(correction capability)이 0 내지 4 비트의 오류에 대응하는 4비트로 작다고 할지라도, 그 패리티 길이 p도 7 바이트로 또한 작다. 오류 임계치 레벨 1에서의 정정 능력은 12비트이며, 5 내지 12 비트의 오류에 대응하며, 그 패리티 길이 p는 20바이트이다. 또한, 오류 임계치 레벨 2에서의 정정 능력은 16 비트로 크고, 13 내지 16 비트의 오류에 대응하며, 그 패리티 길이 p는 26 바이트로 길다. 상술한 오류 정정 수 대응 테이블은 ECC(20)의 최대 오류 정정 수가 16 비트일 때의 예이며, 오류 정정 수 대응 테이블은 ECC(20)의 최대 오류 정정 수에 따라 적절하게 설정된다.
더욱 구체적으로, 메모리 컨트롤러(10)는 오류 정정 수를 오류 임계치 레벨 ETL로 분류하고, ETL과 오류 정정 수 T 간의 대응관계를 기억하고 있는 오류 정정 수 대응 테이블(25)을 사용함으로써 오류 정정 수 변경 처리의 발생 빈도를 줄인다. 그 결과, 메모리 컨트롤러(10)에서의 복호화 처리 효율이 양호하다.
다음으로, 도 4 및 도 5를 이용하여 메모리 컨트롤러(10)의 복호화 처리를 설명한다. 도 4는 메모리 컨트롤러(10)의 복호화 처리를 설명하는 흐름도다. 이하에서는 도 4에 도시된 흐름도에 따라 복호화 처리를 설명한다.
<스텝 S10> 초기화 스텝
반도체 기억 장치(2)의 공장 출하 시, 메모리 컨트롤러(10)는 블록에 따른 오류 임계치 레벨 ETL을 오류 정정 수 대응 테이블(25)에 기억시킨다.
이어서, 반도체 기억 장치(2)의 사용이 시작된 후, 메모리 컨트롤러(10)는 이전 시간에서의 사용이 종료되었을 때 각 블록의 미정정된 수에 따르는 오류 임계치 레벨 ETL을 오류 정정 수 대응 테이블(25)에 기억시킨다.
더욱 구체적으로, 논리 어드레스/물리 어드레스 변환 테이블(미도시)과 함께, 예를 들어, 메모리 컨트롤러(10)는 오류 정정 수 대응 테이블(25), 이전 시간에서의 사용이 종료되었을 때 미정정된 수 계측부(26)에 의해 계측된 미정정된 수, 및 메모리부(30)에 기억되어 있는 각 블록의 오류 임계치 레벨에 대한 정보 등을 RAM(115)에 전달한다. 또한, CPU(11)는 미정정된 수 계측부(26) 및 오류 임계치 레벨 변경부(24)의 동작을 행하기 위한 FW를 ROM(13) 등으로부터 CPU(11)로 전달한다.
이와 관련하여, 도 5에 도시된 메모리 컨트롤러(10)에 따르면, 현재 시간까지의 오류 임계치 레벨 ETL이 ETL 기억부(23)의 블록 어드레스 BA와 관련하여 기억되어 있다. 더욱 구체적으로, 오류 임계치 레벨 ETL은 블록 어드레스 BA와 관련되고, 관련 블록의 ETL 및 부호 길이 n이 기억된다.
<스텝 S11> 판독 커맨드 입력
논리 어드레스로 위치가 특정된 데이터에 대한 판독 커맨드가 호스트(3)로부터 입력된다. 더욱 구체적으로, 반도체 기억 장치(2)에 따르면, 기입/소거 처리가 특정 메모리 셀에 집중되는 것을 피하기 위해, 소거 횟수를 카운트하여 소거 횟수가 많은 메모리 셀을 소거 횟수가 작은 메모리 셀로 대체하여 메모리 셀들 간에 기입/소거 동작의 횟수를 평균화하는 소위 "웨어 레벨링(wear leveling)"이 구현된다.
웨어 레벨링을 행하는 반도체 기억 장치(2)에서는, 메모리 셀의 메모리부에서의 물리적 위치를 나타내는 물리 어드레스를 이용하여 호스트가 데이터 기억 위치를 특정하는 것이 곤란하다. 그러므로, 데이터의 위치는 논리 공간에서의 위치를 나타내는 논리 어드레스에 의해 호스트(3)로부터 특정된다.
<스텝 S12> 논리 대 물리 변환; ETL 판독
메모리 컨트롤러(10)는 논리 어드레스/물리 어드레스 변환 테이블(미도시)을 이용하여 논리 어드레스를 물리 어드레스로 변환한다.
메모리 컨트롤러(10)는 또한, 예를 들어, 논리 어드레스/물리 어드레스 변환 테이블과 관련된 서브테이블로서 오류 임계치 레벨 기억부(23)에 기억되어 있는 판독 대상으로서, 물리 어드레스에서의 메모리 셀(31)이 속하는 블록의 오류 임계치 레벨 ETL을 제어 레지스터(11A) 내로 판독 입력한다. 제어 레지스터(11A)는, 예를 들어, CPU(11)의 일부다.
<스텝 S13> 오류 정정 수 계산
메모리 컨트롤러(10)는 RAM(15)에 기억되어 있는 오류 정정 수 대응 테이블(25) 및 블록에 대응하는 오류 임계치 레벨에 기초하여 판독 대상인 블록에 대응하는 오류 정정 수를 계산한다.
도 3에 도시된 바와 같이 오류 정정 수가 오류 정정 수 대응 테이블(25)에서 3 레벨로 분류되지만, 오류 정정 수는 4 이상의 레벨로 분류될 수 있다. 예를 들어, 오류 정정 수는 오류 정정 수와 동일한 수의 레벨로 분류될 수 있다.
<스텝 S14> 데이터 판독
메모리 컨트롤러(10)는 판독 대상인 메모리 셀(31)의 부호화된 데이터를 판독한다.
<스텝 S15> 복호화 처리
메모리 컨트롤러(10)의 디코더(22)는 부호화된 데이터의 복호화 처리를 행하며, 복호화를 행하는 것이 가능할 때, 즉, 오류의 수가 오류 정정 수 이하일 때, 오류 정정이 행해진 데이터를 호스트(3)에 출력한다.
<스텝 S16> 오류가 정정되지 않았다고 판정
오류의 수가 부호화 처리에서의 오류 정정 수를 초과할 경우, 디코더(22)는 미정정된 수 계측부(26)에 오류 미정정된 신호(error uncorrected signal)를 출력한다.
<스텝 S17> 미정정된 오류 정정의 수 증가시키기
디코더(22)로부터 오류 미정정된 신호를 수신하면, 미정정된 수 계측부(26)는 관련 데이터가 기억되어 있는 메모리 셀이 속하는 블록에 대응하는, 내부의 미정정된 수 카운터(미도시)를 1만큼 증가시킨다.
<스텝 S18> 미정정된 오류 정정의 수 비교
미정정된 수 계측부(26)는 미정정된 수 카운터의 카운트, 즉, 미정정된 수와 소정의 수인 미정정된 수 임계치를 비교한다. 미정정된 수 임계치는 반도체 기억 장치(2)에 의해 사전에 설정되어 있다. 이 미정정된 수 임계치를 1 이상의 값, 예를 들어, 100으로 설정하면 충분하다.
<스텝 S19> 오류 임계치 레벨 변경
미정정된 수가 미정정된 수 임계치를 초과할 경우, 오류 임계치 레벨 변경부(24)는 관련 블록의 오류 임계치 레벨을 1만큼 증가시켜, 블록의 오류 임계치 레벨을 더 높은 오류 정정 능력을 갖는 레벨로 변경시킨다. 이때, 미정정된 수 계측부(26)는 미정정된 수 카운터의 카운트를 리셋한다.
이와 관련하여, 미정정된 수 임계치는 오류 임계치 레벨에 따라 달라질 수 있다. 예를 들어, 미정정된 수 임계치는 오류 임계치 레벨이 0에서 1로 변경되는 경우 10일 수 있고, 오류 임계치 레벨이 1에서 2로 변경되는 경우 100일 수 있다.
<스텝 S20> 처리의 연속
메모리 컨트롤러(10)는 호스트(3)로부터 종료 명령어를 수신할 때까지 상술한 처리를 반복한다.
<스텝 S21> ETL 데이터 기억 처리
종료 명령어를 호스트(3)로부터 수신하면, 메모리 컨트롤러는, 미정정된 수 계측부(26)의 미정정된 수 카운터의 카운트와 오류 임계치 레벨 기억부(23)의 정보를 메모리부(30) 등에 기억시키기 위해 메모리부(30) 등으로 전송한다.
다음으로, 도 6과 도 7을 이용하여 메모리 컨트롤러(10)의 부호화 처리에 대해 설명한다. 도 6은 메모리 컨트롤러(10)의 부호화 처리를 설명하는 흐름도이다. 이하에서는, 도 6에 도시된 흐름도에 따라 부호화 처리가 설명된다.
<스텝 S30> 초기화
메모리 컨트롤러(10)는 메모리부(30) 등에 기억되어 있는 오류 정정 수 대응 테이블(25) 등을 RAM(15) 등으로 전송한다.
<스텝 S31> 기입 커맨드 입력
논리 어드레스로 위치가 특정된 데이터에 대한 기입 커맨드가 호스트(3)로부터 입력된다.
<스텝 S32> 논리 대 물리 변환; ETL 판독
메모리 컨트롤러(10)는 논리 어드레스/물리 어드레스 변환 테이블(미도시)을 이용하여 논리 어드레스를 물리 어드레스로 변환한다.
또한, 메모리 컨트롤러(10)는, 오류 임계치 레벨 기억부(23)에 기억되어 있으며, 변환 결과로서 획득된 물리 어드레스에서의 메모리 셀(31)이 속하는 블록의 오류 임계치 레벨 ETL을 제어 레지스터(11A) 내로 판독 입력한다.
<스텝 S33> 오류 정정 수 계산
메모리 컨트롤러(10)는 오류 정정 수 대응 테이블(25)에 기초하여 대상 블록에 대응하는 오류 정정 수와 이 블록에 대응하는 오류 임계치 레벨을 계산한다.
<스텝 S34> 패리티 생성
인코더(21)는 오류 정정 수에 따른 부호 길이의 패리티를 생성하고, 이 패리티를 데이터에 부가하여 부호화된 데이터를 생성한다.
<스텝 S35> 기억 처리
메모리 컨트롤러(10)는 메모리부(30)의 특정 블록 내의 메모리 셀(31)에 부호화된 데이터를 기억시킨다.
<스텝 S36> 처리의 연속
메모리 컨트롤러(10)는 종료 명령어를 호스트(3)로부터 수신할 때까지 상술한 처리를 반복한다.
상술한 바와 같이, 본 실시 형태의 메모리 컨트롤러(10)는 공장 출하 시 초기 설정된 오류 정정 수를 ECC부(20)의 최대 오류 정정 수보다 작게 하기 때문에, 패리티 길이는 짧고 사용자가 사용할 수 있는 메모리부(30)의 용량은 크다. 또한, 메모리 컨트롤러(10)와 반도체 기억 장치(2)가 작은 오류 정정 수로 부호화된 데이터를 생성하기 때문에, 인코더(21) 및 디코더(22)의 처리 부하는 작고, 처리 속도는 빠르며, 전력 소비가 적다. 따라서, 오류 정정 처리의 효율이 양호하다.
또한, 본 메모리 컨트롤러(10)와 반도체 기억 장치(2)에 따르면, 임의의 하나의 블록의 데이터 오류에 수반하여 반도체 기억 장치(2)의 사용이 증가하는 경우에도, 블록 단위의 오류 발생률의 증가에 따라 최적의 값으로 블록 단위의 자동 조정을 행하는 것이 가능하므로 오류 정정 처리의 효율이 양호하다. 더욱 구체적으로, 본 메모리 컨트롤러(10) 및 반도체 기억 장치(2)는 오류의 수와 오류 레벨에 따라, 다시 말해, 메모리부(30)의 신뢰도에 따라, 오류 정정 수를 최적의 값으로 가변적으로 자동으로 조정할 수 있다.
이와 관련하여, 하나의 블록을 세트 단위(set unit)로 하는 예를 상술하였지만, 복수의 블록을 포함하는 블록 그룹을 세트 단위로 하는 구성을 채용할 수도 있다.
<제2 실시 형태>
이하에서는, 도 8을 참조하여 본 발명의 제2 실시 형태의 메모리 컨트롤러(10B) 및 반도체 기억 장치(2B)를 설명한다. 제2 실시 형태의 메모리 시스템(1B), 메모리 컨트롤러(10B), 및 반도체 기억 장치(2B)는 제1 실시 형태의 메모리 시스템(1), 메모리 컨트롤러(10), 및 반도체 기억 장치(2)와 유사하기 때문에, 이하에서 동일한 구성요소는 동일한 참조번호로 표시되며, 이들 구성요소의 설명을 생략한다.
반도체 기억 장치(2B)의 메모리부(30B)는, 하나의 메모리 셀(31)에 기억되어 있는 데이터 비트의 수가 2인 소위 멀티-레벨 메모리 셀(31A)을 포함하는 멀티-레벨 셀(MLC) 영역(30C)과, 하나의 메모리 셀(31)에 기억되어 있는 데이터 비트의 수가 1인 소위 단일-비트 메모리 셀(31B)을 포함하는 단일-레벨 셀(SLC) 영역(30D)을 포함한다. 멀티-레벨 메모리 셀(31A)이 단일-비트 메모리 셀(31B)에 비해 2배의 데이터량을 기억할 수 있기 때문에, 멀티-레벨 메모리 셀(31A)은 대용량의 반도체 기억 장치(2B)를 제공하는 데에 있어 크게 기여한다. 그러나, 단일-비트 메모리 셀(31B)에 비해, 멀티-레벨 메모리 셀(31A)에 관한 판독 동작 시에 오류가 발생할 가능성이 더 크다.
반도체 기억 장치(2B)의 메모리 컨트롤러(10B)는, 멀티-레벨 메모리 셀(31A)을 갖는 메모리 셀의 세트 단위, 및 단일-비트 메모리 셀(31B)을 갖는 메모리 셀의 세트 단위에 대한 부호화 처리 시 오류 정정 수를 변경한다.
더 구체적으로, 반도체 기억 장치(2B)의 메모리 컨트롤러(10B)는, 단일 메모리 셀에 기억되어 있는 데이터 비트와 동일한 수를 갖는 메모리 셀들로 이루어진 각 세트 단위마다 오류 정정 수를 관리한다. 예를 들어, 단일 메모리 셀에 기억되어 있는 데이터 비트의 수가 2인 2-비트 메모리 셀과 단일 메모리 셀에 기억되어 있는 데이터 비트의 수가 3인 3-비트 메모리 셀을 갖는 반도체 기억 장치(2B)의 메모리 컨트롤러(10B)에서는, 2-비트 메모리 셀과 3-비트 메모리 셀이 세트 단위로서 취급된다.
본 실시 형태의 반도체 기억 장치(2B)의 메모리 컨트롤러(10B)에서는, 메모리 셀에 기억되어 있는 비트의 수가 다르기 때문에 오류 발생 정도가 메모리 셀의 세트 단위에 따라 다를 때조차도, 제1 실시 형태와 마찬가지로 오류 정정 처리의 효율이 양호하다.
<제2 실시 형태의 변형예>
제2 실시 형태의 반도체 기억 장치(2B) 및 메모리 컨트롤러(10B)에 따르면, 부호화 처리 시의 오류 정정 수는, 멀티-레벨 메모리 셀(31A)을 포함하는 메모리 셀의 세트 단위 및 단일-비트 메모리 셀(31B)을 포함하는 메모리 셀의 세트 단위에 대해 설정된다. 그러나, 메모리 셀의 세트 단위는 이들 세트 단위에 한정되지 않는다.
예를 들어, 메모리부(30)가 물리적으로 복수의 영역, 즉, 복수의 플레인(plain)을 갖는 경우에서는, 하나의 플레인이 하나의 세트 단위로 취급될 수 있다. 또한, 데이터 판독 단위인 페이지가 세트 단위로 취급될 수 있다. 페이지를 세트 단위로 할 때에는, 페이지의 미정정된 수와 오류 임계치 레벨이 페이지의 관리부(리던던시부)에 기억될 수 있다.
또한, 동일한 블록 내에서조차도 특정 워드선이나 또는 컬럼 영역에서 오류 발생률이 물리적으로 증가하는 경우가 있을 수 있기 때문에, 워드선이나 컬럼 영역이 세트 단위로서 취급될 수도 있다. 보다 구체적으로, 세트 단위로서, 워드선(32)에서의 홀수 및 짝수 페이지 단위와, 페이지 등 내부의 헤드/엔드 컬럼에 특정한 ECC 프레임 단위를 언급할 수 있다. 다시 말해, 메모리 셀의 세트 단위는 메모리부 내의 물리적 구조에 좌우되는 신뢰도 파라미터(reliability parameter)에 의해 분류가능한 복수의 메모리 셀로 이루어진다.
또한, 블록 그룹과 마찬가지로, 복수의 세트 단위로 이루어진 하나의 그룹도 하나의 단위로서 취급될 수 있다. 또한, 블록과 워드선의 조합과 같이, 상이한 종류의 세트 단위를 조합함으로써 하나의 단위가 형성될 수 있다.
첨부된 도면을 참조하여 본 발명의 바람직한 실시 형태를 설명하였지만, 본 발명이 이들 상세히 설명된 실시 형태에 한정되지 않으며, 첨부된 특허청구범위에 정의된 바와 같이 본 발명의 사상 또는 범위를 벗어나지 않고 당업자에 의해 각종 변경 및 변형이 행해질 수 있다.
1 : 메모리 시스템
2 : 반도체 기억 장치
3 : 호스트
18 : 기능부
20 : ECC
30 : 메모리부

Claims (17)

  1. 플래시 메모리부에 대한 오류 정정을 제어하도록 구성된 메모리 컨트롤러로서,
    상기 플래시 메모리부에 기억되어 있는 데이터의 부호화 처리를 행할 때 오류 정정 수(error correction number)에 대응하여 오류 임계치 레벨을 기억하는 오류 정정 수 대응 테이블 -상기 오류 정정 수는 증가 또는 감소될 수 있고, 상기 플래시 메모리부는 복수의 세트 단위들 중 임의의 하나로 각각 분류가능한 복수의 메모리 셀로 이루어져 있음 -;
    각 세트 단위의 오류 임계치 레벨을 기억하는 오류 임계치 레벨 기억부;
    각 세트 단위의 미정정된 오류 정정의 수(uncorrected number of an error correction)를 계측하는 미정정된 수 계측부(uncorrected number measurement unit);
    소정의 세트 단위의 미정정된 수가 소정의 수를 초과할 때마다, 상기 오류 임계치 레벨 기억부에 기억되어 있는 관련 세트 단위의 오류 임계치 레벨을 새로운 오류 임계치 레벨로 변경하는 오류 임계치 레벨 변경부;
    상기 오류 정정 수 대응 테이블 및 상기 오류 임계치 레벨 기억부에 기억되어 있는 오류 임계치 레벨에 기초하는 오류 정정 수로 부호화 처리를 행하는 인코더; 및
    상기 플래시 메모리부에 기억되어 있는 데이터의 복호화 처리를 행하는 디코더
    를 포함하는, 메모리 컨트롤러.
  2. 제1항에 있어서, 상기 세트 단위는 상기 플래시 메모리부의 물리적 구조에 좌우되는 신뢰도 파라미터(reliability parameter)에 의해 분류가능한 복수의 메모리 셀로 이루어지는, 메모리 컨트롤러.
  3. 제1항에 있어서, 상기 세트 단위는 소거 단위인 블록인, 메모리 컨트롤러.
  4. 제1항에 있어서, 상기 세트 단위는 복수의 블록인, 메모리 컨트롤러.
  5. 제1항에 있어서, 상기 세트 단위는 각 메모리 셀에 기억되어 있는 데이터 비트의 수가 동일한 메모리 셀들을 포함하는 세트 단위인, 메모리 컨트롤러.
  6. 제1항에 있어서, 상기 세트 단위는 데이터 판독 단위인 페이지인, 메모리 컨트롤러.
  7. 제1항에 있어서, 오류 임계치 레벨의 초기값은 각 세트 단위마다 설정되는, 메모리 컨트롤러.
  8. 제1항에 있어서, 상기 오류 임계치 레벨 변경부가 세트 단위의 오류 임계치 레벨을 변경하는 소정의 수는 오류 임계치 레벨에 따라 상이한, 메모리 컨트롤러.
  9. 반도체 기억 장치로서,
    각각이 복수의 세트 단위 중 임의의 하나로 분류가능한 복수의 메모리 셀로 이루어진 플래시 메모리부;
    상기 플래시 메모리부에 기억되어 있는 데이터의 부호화 처리를 행할 때 메모리 컨트롤러의 오류 정정 수에 대응하여 오류 임계치 레벨을 기억하는 오류 정정 수 대응 테이블 -상기 오류 정정 수는 증가 또는 감소될 수 있음 -;
    각 세트 단위의 오류 임계치 레벨을 기억하는 오류 임계치 레벨 기억부;
    각 세트 단위의 미정정된 오류 정정의 수를 계측하는 미정정된 수 계측부;
    소정의 세트 단위의 미정정된 수가 소정의 수를 초과할 때마다, 상기 오류 임계치 레벨 기억부에 기억되어 있는 관련 세트 단위의 오류 임계치 레벨을 새로운 오류 임계치 레벨로 변경하는 오류 임계치 레벨 변경부;
    상기 오류 정정 수 대응 테이블 및 상기 오류 임계치 레벨 기억부에 기억되어 있는 오류 임계치 레벨에 기초하는 오류 정정 수로 부호화 처리를 행하는 인코더; 및
    상기 플래시 메모리부에 기억되어 있는 데이터의 복호화 처리를 행하는 디코더
    를 포함하는, 반도체 기억 장치.
  10. 제9항에 있어서, 상기 세트 단위는 상기 플래시 메모리부의 물리적 구조에 좌우되는 신뢰도 파라미터에 의해 분류가능한 복수의 메모리 셀로 이루어지는, 반도체 기억 장치.
  11. 제9항에 있어서, 상기 세트 단위는 소거 단위인 블록인, 반도체 기억 장치.
  12. 제9항에 있어서, 상기 세트 단위는 복수의 블록인, 반도체 기억 장치.
  13. 제9항에 있어서, 상기 세트 단위는 각 메모리 셀에 기억되어 있는 데이터 비트의 수가 동일한 메모리 셀들을 포함하는 세트 단위인, 반도체 기억 장치.
  14. 제9항에 있어서, 상기 세트 단위는 데이터 판독 단위인 페이지인, 반도체 기억 장치.
  15. 제9항에 있어서, 오류 임계치 레벨의 초기값은 각 세트 단위마다 설정되는, 반도체 기억 장치.
  16. 제9항에 있어서, 상기 오류 임계치 레벨 변경부가 세트 단위의 오류 임계치 레벨을 변경하는 소정의 수는 오류 임계치 레벨에 따라 상이한, 반도체 기억 장치.
  17. 반도체 기억 장치로서,
    소거 단위인 임의의 블록으로 분류가능한 복수의 메모리 셀로 이루어진 NAND형 플래시 메모리부;
    상기 플래시 메모리부에 기억되어 있는 데이터의 부호화 처리를 행할 때 메모리 컨트롤러의 오류 정정 수에 대응하여 오류 임계치 레벨을 기억하는 오류 정정 수 대응 테이블 -상기 오류 정정 수는 블록 단위로 증가 또는 감소될 수 있음 -;
    각 블록의 오류 임계치 레벨을 기억하는 오류 임계치 레벨 기억부;
    각 블록의 미정정된 오류 정정의 수를 계측하는 미정정된 수 계측부;
    소정의 블록의 미정정된 수가 소정의 수를 초과할 때마다, 오류 임계치 레벨 기억부에 기억되어 있는 블록의 오류 임계치 레벨을 새로운 오류 임계치 레벨로 변경하는 오류 임계치 레벨 변경부;
    상기 오류 정정 수 대응 테이블 및 상기 오류 임계치 레벨 기억부에 기억되어 있는 오류 임계치 레벨에 기초하는 오류 정정 수로 부호화 처리를 행하는 인코더; 및
    상기 플래시 메모리부에 기억되어 있는 데이터의 복호화 처리를 행하는 디코더
    를 포함하는, 반도체 기억 장치.
KR1020100027719A 2009-03-30 2010-03-29 메모리 컨트롤러 및 반도체 기억 장치 KR20100109445A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009083051A JP2010237822A (ja) 2009-03-30 2009-03-30 メモリコントローラおよび半導体記憶装置
JPJP-P-2009-083051 2009-03-30

Publications (1)

Publication Number Publication Date
KR20100109445A true KR20100109445A (ko) 2010-10-08

Family

ID=42785827

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100027719A KR20100109445A (ko) 2009-03-30 2010-03-29 메모리 컨트롤러 및 반도체 기억 장치

Country Status (3)

Country Link
US (1) US20100251075A1 (ko)
JP (1) JP2010237822A (ko)
KR (1) KR20100109445A (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8745451B2 (en) * 2009-07-02 2014-06-03 Sony Corporation Method and device for processing signal data
JP5039193B2 (ja) * 2010-09-22 2012-10-03 株式会社東芝 半導体記憶装置および制御方法
JP5605238B2 (ja) 2011-01-25 2014-10-15 ソニー株式会社 メモリシステムおよびその動作方法
JP2013242694A (ja) * 2012-05-21 2013-12-05 Renesas Mobile Corp 半導体装置、電子装置、電子システム及び電子装置の制御方法
WO2013190597A1 (en) * 2012-06-21 2013-12-27 Hitachi, Ltd. Flash memory device and storage control method
US20140068378A1 (en) * 2012-08-31 2014-03-06 Kabushiki Kaisha Toshiba Semiconductor storage device and memory controller
JP2014082574A (ja) 2012-10-15 2014-05-08 Samsung Electronics Co Ltd 誤り検出訂正回路、及びメモリ装置
US9257203B2 (en) 2012-12-06 2016-02-09 Micron Technology, Inc. Setting a default read signal based on error correction
US9230684B2 (en) 2012-12-19 2016-01-05 Kabushiki Kaisha Toshiba Memory controller, storage device, and memory control method
US10241866B2 (en) 2013-01-04 2019-03-26 International Business Machines Corporation Allocating rebuilding queue entries in a dispersed storage network
US10204009B2 (en) 2013-01-04 2019-02-12 International Business Machines Corporation Prioritized rebuilds using dispersed indices
US9311187B2 (en) * 2013-01-04 2016-04-12 Cleversafe, Inc. Achieving storage compliance in a dispersed storage network
US10013203B2 (en) * 2013-01-04 2018-07-03 International Business Machines Corporation Achieving storage compliance in a dispersed storage network
US10229002B2 (en) 2013-01-04 2019-03-12 International Business Machines Corporation Process to migrate named objects to a dispersed or distributed storage network (DSN)
US11416340B1 (en) 2013-01-04 2022-08-16 Pure Storage, Inc. Storage system with multiple storage types in a vast storage network
US9349476B2 (en) * 2013-02-21 2016-05-24 Sandisk Technologies Inc. Methods, systems, and computer readable media for early detection of potential flash failures using an adaptive system level algorithm based on flash program verify
US9563373B2 (en) * 2014-10-21 2017-02-07 International Business Machines Corporation Detecting error count deviations for non-volatile memory blocks for advanced non-volatile memory block management
US10365859B2 (en) 2014-10-21 2019-07-30 International Business Machines Corporation Storage array management employing a merged background management process
US9990279B2 (en) 2014-12-23 2018-06-05 International Business Machines Corporation Page-level health equalization
US10339048B2 (en) 2014-12-23 2019-07-02 International Business Machines Corporation Endurance enhancement scheme using memory re-evaluation
US9811417B2 (en) 2015-03-12 2017-11-07 Toshiba Memory Corporation Semiconductor memory device
US9772901B2 (en) * 2015-05-08 2017-09-26 Nxp Usa, Inc. Memory reliability using error-correcting code
KR20160146332A (ko) * 2015-06-12 2016-12-21 에스케이하이닉스 주식회사 복수의 저장 영역들을 포함하는 메모리 시스템 및 그것의 동작 방법
WO2018020299A1 (en) * 2016-07-29 2018-02-01 Chan Kam Fu Lossless compression and decompression methods
KR20180090422A (ko) * 2017-02-02 2018-08-13 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR20230064279A (ko) * 2021-11-03 2023-05-10 에스케이하이닉스 주식회사 메모리 시스템에서 데이터를 복구하는 장치 및 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990056099A (ko) * 1997-12-29 1999-07-15 윤종용 에러정정코드 임계치 변경을 이용한 데이타섹터 재 할당방법
JP2000059237A (ja) * 1998-08-07 2000-02-25 Nec Corp 誤り訂正復号方法及びその装置
KR20060032098A (ko) * 2004-10-11 2006-04-14 삼성전자주식회사 가변적인 반복 에러 정정 횟수를 갖는 디지털 신호 처리방법
KR20080011228A (ko) * 2005-06-13 2008-01-31 인텔 코포레이션 에러 완화를 위한 장치, 방법 및 시스템
KR100842680B1 (ko) * 2007-01-08 2008-07-01 삼성전자주식회사 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템
JP2009129070A (ja) * 2007-11-21 2009-06-11 Hitachi Ltd フラッシュメモリ記憶装置の制御方法、その方法を用いたフラッシュメモリ記憶装置及びストレージシステム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4117458A (en) * 1977-03-04 1978-09-26 Grumman Aerospace Corporation High speed double error correction plus triple error detection system
JP3953397B2 (ja) * 2002-09-26 2007-08-08 沖電気工業株式会社 リードソロモン符号化回路およびリードソロモン復号化回路
JP4073799B2 (ja) * 2003-02-07 2008-04-09 株式会社ルネサステクノロジ メモリシステム
US7480848B2 (en) * 2006-02-10 2009-01-20 The Directv Group, Inc. Methods and apparatus to select tornado error correction parameters
US7900116B2 (en) * 2006-08-07 2011-03-01 Broadcom Corporation Switch with error checking and correcting
JP2008192240A (ja) * 2007-02-05 2008-08-21 Toshiba Corp 半導体メモリと半導体メモリシステム
JP4925301B2 (ja) * 2007-02-07 2012-04-25 株式会社メガチップス 半導体メモリシステム
US8122323B2 (en) * 2007-03-08 2012-02-21 Intel Corporation Method, apparatus, and system for dynamic ECC code rate adjustment

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990056099A (ko) * 1997-12-29 1999-07-15 윤종용 에러정정코드 임계치 변경을 이용한 데이타섹터 재 할당방법
JP2000059237A (ja) * 1998-08-07 2000-02-25 Nec Corp 誤り訂正復号方法及びその装置
KR20060032098A (ko) * 2004-10-11 2006-04-14 삼성전자주식회사 가변적인 반복 에러 정정 횟수를 갖는 디지털 신호 처리방법
KR20080011228A (ko) * 2005-06-13 2008-01-31 인텔 코포레이션 에러 완화를 위한 장치, 방법 및 시스템
KR100842680B1 (ko) * 2007-01-08 2008-07-01 삼성전자주식회사 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템
JP2009129070A (ja) * 2007-11-21 2009-06-11 Hitachi Ltd フラッシュメモリ記憶装置の制御方法、その方法を用いたフラッシュメモリ記憶装置及びストレージシステム

Also Published As

Publication number Publication date
US20100251075A1 (en) 2010-09-30
JP2010237822A (ja) 2010-10-21

Similar Documents

Publication Publication Date Title
KR20100109445A (ko) 메모리 컨트롤러 및 반도체 기억 장치
JP6606039B2 (ja) メモリシステムおよび制御方法
US8832526B2 (en) Data reading method, memory controller, and memory storage device
US9543983B2 (en) Decoding method, memory storage device and memory control circuit unit
TWI474330B (zh) 用來進行記憶體存取管理之方法以及記憶裝置及其控制器
EP2776929B1 (en) Soft information generation for memory systems
US9136872B2 (en) Memory, memory system, and error checking and correcting method for memory
US9583217B2 (en) Decoding method, memory storage device and memory control circuit unit
TWI582779B (zh) 讀取電壓準位估測方法、記憶體儲存裝置及記憶體控制電路單元
US9424126B2 (en) Memory controller
TWI514388B (zh) 讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與系統
US9934087B2 (en) Decoding method, memory storage device and memory control circuit unit
US20160350179A1 (en) Decoding method, memory storage device and memory control circuit unit
US10445002B2 (en) Data accessing method, memory controlling circuit unit and memory storage device
US10985780B2 (en) Error correction circuit, and memory controller having the error correction circuit and memory system having the memory controller
US10679707B2 (en) Voltage adjusting method, memory controlling circuit unit and memory storage device
US10193569B2 (en) Decoding method, memory storage device and memory control circuit unit
US20070266297A1 (en) Controller and storage device having the same
US20140245103A1 (en) Memory controller, storage device, and memory control method
US20180276069A1 (en) Memory controller, memory system, and control method
US20120124450A1 (en) Method for enhancing error correction capability, and associated memory device and controller thereof
US10459630B2 (en) Memory management method, memory storage device and memory controlling circuit unit
US10997067B2 (en) Data storing method, memory controlling circuit unit and memory storage device
US11139044B2 (en) Memory testing method and memory testing system
US11726709B2 (en) Memory control method, memory storage device and memory control circuit unit

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application