KR100331139B1 - 에러 위치지정 코드를 사용하여 멀티레벨 셀 메모리를 정정하는방법 및 장치 - Google Patents

에러 위치지정 코드를 사용하여 멀티레벨 셀 메모리를 정정하는방법 및 장치 Download PDF

Info

Publication number
KR100331139B1
KR100331139B1 KR1019997003616A KR19997003616A KR100331139B1 KR 100331139 B1 KR100331139 B1 KR 100331139B1 KR 1019997003616 A KR1019997003616 A KR 1019997003616A KR 19997003616 A KR19997003616 A KR 19997003616A KR 100331139 B1 KR100331139 B1 KR 100331139B1
Authority
KR
South Korea
Prior art keywords
error
multilevel cell
data
charge state
charge
Prior art date
Application number
KR1019997003616A
Other languages
English (en)
Other versions
KR20000052798A (ko
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 KR20000052798A publication Critical patent/KR20000052798A/ko
Application granted granted Critical
Publication of KR100331139B1 publication Critical patent/KR100331139B1/ko

Links

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
    • 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/1072Adding 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 multilevel memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (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)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

방법 및 장치는 멀티레벨 셀 메모리(204)로부터 판독된 데이터를 정정한다. 멀티레벨 셀은 3개 이상의 전하 상태를 저장할 수 있다. 상기 멀티레벨 셀로부터 판독된 제 1 전하 상태는 에러인 것으로 결정된다. 만약 상기 멀티레벨 셀이 제 2 상태를 유지시키면 제공되는 것에 대응하는 출력이 제공되고, 상기 제 2 전하 상태는 상기 제 1 상태보다 더 많은 전하를 가진다.

Description

에러 위치지정 코드를 사용하여 멀티레벨 셀 메모리를 정정하는 방법 및 장치{METHOD AND APPARATUS FOR CORRECTING A MULTILEVEL CELL MEMORY BY USING ERROR LOCATING CODES}
멀티레벨 셀 메모리는 멀티레벨 셀로 구성된다. 각 셀들은 다중 전하 상태 또는 레벨을 저장 할 수 있다. 각 전하 상태는 메모리 소자 비트 패턴과 관련있다.
도 1은 레벨(0 - 3)의 4개의 전하 상태를 저장하는 종래의 멀티레벨 셀을 도시한다. 레벨(3)은 레벨(2)보다 더 높은 전하를 유지하고, 레벨(2)는 레벨(1)보다 더 높은 전하를 유지하고, 레벨(1)은 레벨(0)보다 더 높은 전하를 유지한다. 기준 전압은 다양한 전하 상태들을 분리한다. Vref2는 레벨(3)과 레벨(2)을 분리한다. Vref1은 레벨(2)와 레벨(1)을 분리한다. Vref0는 레벨(1) 과 레벨(0)을 분리한다.
각 전하 상태는 관련된 메모리 소자 비트 패턴을 가진다. 일실시예로서, 메모리 비트(00)는 레벨(3)과 관련되고, 메모리 비트 패턴(10)은 레벨(2)과 관련되며, 메모리 비트 패턴(01)은 레벨(1)과 관련되고, 메모리 비트 패턴(11)은 레벨(0)과 관련된다.
멀티레벨 셀 메모리는 그 자신이 저장할 수 있는 전하 상태의 수에 의거하여 1비트 이상의 데이터를 저장할 수 있다. 가령, 4개의 전하 상태를 저장 할 수 있는 멀티레벨 셀 메모리는 2비트의 데이터를 저장 할 수 있고, 8개의 전하 상태를 저장 할 수 있는 멀티레벨 셀 메모리는 3비트의 데이터를 저장 할 수 있고, 16개의 전하 상태를 저장 할 수 있는 멀티레벨 셀 메모리는 4비트의 데이터를 저장 할 수 있다. 각각의 n비트 멀티레벨 셀 메모리들에 대해서, 다양한 메모리 소자 비트 패턴들은 각각의 다른 전하 상태들과 관련되도록 실시 되어질 수 있다.
그러나, 멀티레벨 셀에 저장할 수 있는 전하 상태들의 수는 2의 거듭제곱에 제한되어 있지 않다. 가령, 3개의 전하 상태를 가진 멀티레벨 셀은 1.5비트의 데이터를 저장 한다. 이 멀티레벨 셀이 추가 디코딩 로직과 결합되고 제 2 유사 멀티레벨 셀에 결합 될 때, 3비트의 데이터가 2개 셀의 조합의 결과로서 제공된다. 다른 다양한 멀티 셀 조합이 또한 가능하다.
멀티레벨 셀 메모리의 일예가 미국 특허번호 제 5,450,363 호에 설명되어 있고, Christopherson등에 의해 'Gray Coding for a Multilevel Cell Memory System'이라 칭해지고, 본 출원의 공동 양도인에게 양도했다. 상기 363특허는 멀티레벨 셀 메모리의 일 실시를 설명한다. 멀티레벨 셀 메모리는 EPROM, EEPROM 및 flash EPROM과 같은 DRAM 및 ROM의 다양한 유형에서 사용될 수 있다.
도 2는 프로세서(100) 및 멀티레벨 셀 메모리(104)의 종래기술의 설명을 도시한다. 프로세서(100)는 버스(102) 및 메모리(104)에 결합된다. 메모리(104)는 인터페이스 콘트롤러(105) 및 멀티레벨 셀 메모리 어레이(150)를 포함한다.프로세서(100)는 버스(102)를 통해 인터페이스 콘트롤러(150)에 또한 결합된다. 인터페이스 콘트롤러(105)는 멀티레벨 셀 메모리 어레이(150)를 제어하기 위해 필요한 동작을 제공한다. 일실시예로, 인터페이스(105) 및 멀티레벨 셀 메모리 어레이(150)는 단일 직접회로 다이 상에 위치된다.
에러 코드
데이터는 전형적으로 특정의 메모리 어레이에 제공되고 소정의 비트 수를 포함한 유닛에 있는 메모리 어레이로부터 검색되며, 여기서 '데이터 워드'로 칭해진다. 상기 데이터가 메모리 어레이에 저장되면, 때때로 인코더가 에러 코드를 생성하기 위해서 사용된다. 상기 에러 코드는, 상기 에러 코드와 관련된 데이터 워드로 검색 될 수 있도록, 저장 될 수 있다. 종래기술에 공지된 바와 같이, 데이터 워드가 메모리 어레이로부터 검색되면, 에러 디코딩 회로는, 상기 메모리 어레이로부터 판독된 데이터 워드에서 발견된 에러를 검출, 위치지정 및/또는 정정하기위한 데이터 워드와 관련된 이전에 보관된 에러 코드를 사용한다.
에러 검출 코드, 에러 위치 지정코드 및 에러 정정 코드를 포함한, 다른 유형의 에러 코드가 있다. 에러 검출 코드는 에러의 발생 유무를 검출하지만, 에러를 정정할 수는 없다. 에러 위치지정 코드는 에러를 검출하고, 에러를 비트 블록으로 집중화 할 수 있지만, 비트 블록내에서 에러난 비트의 정확한 위치를 결정할 수 없다. 에러 정정 코드는 데이터 워드에서 단일 비트 에러를 검출하고 에러를 정정 할 수 있다. 에러 정정 코드의 한 유형인 해밍 코드는, 단일 비트 에러를 정정 할 수는 것 이외에도, 추가적으로 데이터 워드에서 더블 비트 에러를 검출(정정은 못함)할 수 있다.
한 그룹의 에러 위치지정 코드가, 1994년 11월, 정보 이론에 관한 IEEE 보고서의 제 40권, 제 6호에 있는, E.Fujiwara 및 M.Kitakami에 의한 'A Class of Error-Locating Codes for Byte-Organized Memory Systems' 에서 설명되고 있다. Fujiwara는 고장 허용 메모리 시스템에서 사용되는 에러 위치지정 코드를 설명한다. 에러가 메모리 블록에서 검출되면, 에러난 메모리 카드의 위치가 결정되고 보조카드로 바뀐다.
에러 위치지정 코드가, 정보 이론에 관한 1963년 4월, IEEE 보고서에 있는, Wolf 및 B.Elspas에 의한 'Error-Locating Codes A New Concept in Error Control' 에서 또한 설명된다.
발명의 요약
방법 및 장치는 메모리의 멀티레벨 셀로부터 판독된 데이터를 정정한다. 멀티레벨 셀은 3개 이상의 전하 상태를 저장 할 수 있다. 멀티레벨 셀로부터 판독된 제 1 전하 상태는 에러가 난 것으로 결정된다. 멀티레벨 셀이 제 2 전하 상태를 유지할 때 제공되는 것에 대응하여 출력이 제공되고, 여기서 상기 제 2 전하 상태는 상기 제 1 전하 상태이상의 전하를 가진다.
본 발명의 다른 특징 및 장점은 첨부된 도면 및 하기의 상세 설명으로부터 명백 할 것이다.
본 발명은 메모리 디바이스 분야에 관한 것이다. 특히, 본 발명은 멀티레벨 셀 메모리로부터 판독된 데이터의 에러를 정정하는 것에 관한 것이다.
도 1은 4개의 전하 상태를 저장하는 종래기술의 멀티레벨 셀의 설명도.
도 2는 종래기술의 프로세서 및 멀티레벨 셀 메모리의 설명도.
도 3은 본 발명에 도입된 프로세서 및 멀티레벨 셀 메모리의 설명도.
도 4는 메모리 어레이에 데이터를 프로그래밍(가령,기록)을 위해 사용된 에러 정정 회로의 실시도.
도 5는 메모리 어레이(250)로부터 데이터를 판독하기 위해 사용된 에러 정정 회로의 실시도.
도 6은 메모리 어레이에 기록 및 메모리 어레이로부터 판독을 위해 사용될 수 있는 데이터 버퍼, 및 에러 인코더 및 디코더(EED)를 포함한 에러 정정 회로의 실시도.
도 7은 메모리 어레이에 데이터를 기록하는 에러 정정 회로의 또 다른 실시도.
도 8은 메모리 어레이로부터 데이터를 판독하는 에러 정정 회로의 또 다른 실시도.
도 9는 데이터 워드가 멀티레벨 셀 메모리에 기록될 때 에러 정정 코드를 발생시키는 처리 흐름도.
도 10은 데이터 워드 및 이와 관련된 에러 위치지정 코드의 대표도.
도 11은 8비트 에러 위치지정 코드와 함께 이와 관련된 64비트 데이터 워드의 예시도.
도 12는 멀티레벨 셀 메모리로부터 데이터 워드를 판독할 때 에러 위치지정 코드에 의해 검출된 에러를 정정하는 처리 흐름도.
멀티레벨 셀 메모리에서 에러를 정정하는 방법 및 장치가 설명된다.
상기 방법은 한개 이상의 멀티레벨 셀로부터 판독된 데이터 워드에서 에러를 정정하기 위해서 에러 위치지정 코드를 사용한다. 에러 위치지정 코드는, 에러를 포함하지만 어떤 비트가 에러난 것이지를 식별하지 않는 데이터 워드내에서, 비트 블록을 지시한다. 비트 블록이 한개 이상의 멀티레벨 셀에 대응되기 때문에, 에러 위치지정코드는 에러난 멀티레벨 셀을 식별한다.
본 발명은 에러난 멀티레벨 셀의 식별을 사용하고, 이 사실로서 멀티레벨 셀의 주 고장 메카니즘이 전하 손실이라고 인식한다. 일단 특정 멀티레벨 셀이 부정확하게 판독된 것으로 식별되면, 멀티레벨 셀의 정확한 상태가, 멀티레벨 셀로부터 판독되었던 전하 상태보다 더 많은 전하를 갖는 전하 상태인 것이, 예측되어 질 수 있다.
Fujiwara(배경기술에서 언급)의 에러 위치지정 코드가 에러났던 메모리 블록을 검출하는데 사용되고 그 결과, 메모리 블록을 저장하는 메모리 카드의 기능이 억제되는 반면에, 본 발명은 고장을 정정하기 위해서 멀티레벨 셀의 고장 메카니즘을 사용한다. 멀티레벨 셀의 표준 고장 모드는 전하 손실에 의거하여 단 방향성이기 때문에, Fujiwara가 설명한 무작위 대신에, 본 발명은 에러난 멀티레벨 셀의 정확한 상태를 예측할 수 있다.
에러난 멀티레벨 셀의 정정은, 에러난 멀티레벨 셀이 다음의 더 높은 전하 상태에 있을 때, 취해졌던 값을 반영하기 위해서 에러난 멀티레벨 셀로부터 판독된데이터를 수정함으로써, 얻어진다. 에러 위치지정 코드는, 상기 수정이 에러를 정정했는지 안했는지를 검사하기위해, 사용된다. 만약 에러난 멀티레벨 셀로부터 수정된 데이터가 여전히 부정확하다면, 상기 수정 프로세서는 다시 반복될 수 있다. 만약 다중 멀티레벨 셀들이 에러이면, 한 개의 멀티레벨 셀로부터의 데이터는 에러가 정정될 때까지 일정하게 유지될 수 있고, 그 나머지를 수정한다.
본 발명을 설명하는 동안, Fujiwara가 설명한 에러 위치지정 코드는 일 실시예로 언급된다. 그러나, 다른 알고리즘 및 다른 유형의 실시들이 에러난 멀티레벨 셀을 식별하기위해 또한 사용되어 질 수 있다.
도 3내지 도 9는 본 발명의 샘플 실시예를 도시한다. 도 3은 프로세서(200) 및 멀티레벨 셀 메모리(204)를 도시한다. 프로세서(200)는 버스(202)에 결합된다. 멀티레벨 셀 메모리(204)는 인터페이스 콘트롤러(205), 멀티레벨 셀 메모리 어레이(205) 및 에러 정정 회로(260)를 포함한다. 인터페이스 콘트롤러(205)는 멀티레벨 셀 메모리 어레이(250) 및 에러 정정 회로(260)를 제어하기위해 필요한 동작을 제공하도록 결합된다. 인터페이스 콘트롤러(205) 및 에러 정정 회로(260)는 버스(202)에 결합된다. 멀티레벨 셀 메모리 어레이(250)는 에러 정정 회로(260)에 결합된다. 프로세서(200)는 메로리(204)에 데이터를 기록하고 메모리(204)로부터 데이터를 판독한다.
일실시예로, 인터페이스 콘트롤러(205), 멀티레벨 셀 메모리 어레이(250) 및 에러 정정 회로(260)는 단일 직접회로 다이상에 위치결정된다. 또 다른 실시예로, 에러 정정 회로(260)는 메모리 어레이(250) 및 인터페이스 콘트롤러(205)로부터 분리된다. 가령, 에러 정정 회로는 분리 칩상에 주재한다.
도 4는 데이터를 메모리 어레이(250)에 프로그래밍( 가령, 기록)하기위해 사용되는 에러 정정 회로(260)의 일실시예를 도시한다. 에러 정정 회로(260)는 데이터 버퍼(302), 에러 버퍼(304) 및 에러 인코더(300)를 포함한다.
버스(202)는 데이터 버퍼 버스(308)를 통해 데이터 버퍼(302)에 결합된다. 데이터 버퍼(302)는 메모리 버스(312)를 통해 메모리 어레이(250)에 결합된다. 데이터 버퍼는 버스(314)를 통해 에러 인코더(300)에 결합된다. 에러 인코더(300)는 버스(316)를 통해 에러 버퍼(304)에 결합되고, 에러 버퍼(304)는 에러 버스(318)를 통해 메모리 어레이(250)에 결합된다.
데이터는 데이터 버퍼 버스(308)를 통해 데이터 버퍼(302)에 기록된다. 데이터 버퍼 버스(308)를 통한 각 데이터의 전송은 전형적으로 데이터 버퍼(302)의 폭의 일부이다. 가령, 데이터 버퍼 버스(308)는 8비트 또는 16비트 폭이 될 수 있고, 데이터 비트(302)는 64비트 폭이 될 수 있다.
데이터 버퍼(302)의 전체 폭이 버스(202)로부터의 데이터로 기록 되었을 때, 데이터 버퍼(302)에 있는 64비트 데이터 워드가 메모리 버스(312)를 통해 메모리 어레이(250)에 전송된다. 에러 인코더(300)는, 버스(314)를 통해 데이터 버퍼(302)로부터의 데이터 입력을 사용하여, 에러 버퍼(304)에 제공되는 에러 정정 코드를 생성한다. 에러 버퍼(304)는 버스(318)를 통해 에러 정정 코드를 메모리 어레이(250)에 제공한다.
본 발명의 일실시예로, 에러 인코더(300)는 에러 위치지정 코드를 생성하며,상기 에러 위치지정 코드는 1994년 11월, 정보 이론에 관한 IEEE 보고서의 제 40권, 제 6호에 있는, E.Fujiwara 및 M.Kitakami에 의한 'A Class of Error Locating Codes for Byte-Organized Memory Systems' 에서 설명된 것과 같은 에러 정정 코드류이다. 에러 위치지정 코드는 데이터 워드내에서 한개 이상의 데이터 블록을 검출하지만, 에러난 블록의 정확한 비트를 지시하지 못한다. 또한, 에러 위치지정 코드는 단일 비트 에러를 검출 할 수 있다.
본 발명의 일 실시예로, 데이터 버퍼(302)에 의해 제공된 데이터 워드 및 에러 버퍼(304)에 의해 제공된 에러 코드는 연속적으로 메모리 어레이(250)에 저장된다. 또 다른 실시예로, 에러 코드는 이와 관련된 데이터 워드로부터 분리 저장 영역에 저장된다.
도 5는 메모리 어레이(250)로부터 데이터를 판독하기 위해 사용되는 에러 정정 회로(260)의 실시예를 도시한다. 에러 정정 회로(260)는 데이터 버퍼(320), 에러 버퍼(322) 및 에러 인코더 및 디코더(EED)(324)를 포함한다.
판독 동작 동안, 데이터 워드가 버스(330)를 통해 메모리 어레이(250)로부터 데이터 버퍼(320)로 제공된다. 유사하게, 데이터 워드와 관련된 에러 정정 코드가 에러 버퍼(322)에 제공된다. 일실시예로, 에러 정정 코드가 버스(332)를 통해 메모리 어레이(250)로부터 제공된다.
데이터 버퍼(320)는 버스(334)를 통해 데이터를 EED(324)로 제공하기위해 결합되어 있다. 에러 버퍼(322)는 버스(336)를 통해 에러 정정 코드를 EED(324)에 제공하기위해 결합되어 있다. EED(324)는, 데이터 버퍼(320) 및 에러 버퍼(322) 모두로부터 입력을 받자마자, 메모리 어레이로부터 판독되었던 데이터 워드에 에러 비트 유무를 결정한다. 만약 데이터 워드에 어떠한 에러 비트가 있다면, EED(324)는 에러난 비트를 정정하기위해 적당한 신호(340)를 표명하고, 상기는 도 11 및 도 12에 관해서 설명될 것이다. 신호(340)는 데이터 버퍼(320)의 데이터 비트의 어떠한 것이라도 개별적으로 변화시킨다. EED(324)는 더 이상 에러난 비트를 갖지 않는 마지막 데이터 값을 결정하기 전에 데이터 버퍼(320)에서 다양한 데이터 값을 반복적으로 시험할 필요가 있다. 데이터 버퍼(320)는 버스(338)를 통해 버스(202)로 결합된다.
도 6은 데이터 버퍼(350), 및 메모리 어레이(250)에 기록하고 메모리 어레이(250)로부터 판독하는데 사용되어 질 수 있는 에러 인코더 및 더코더(EED)를 포함한 에러 정정 회로(260)의 실시예를 도시한다. EED(354)는, 데이터 워드로부터 에러 위치지정 코드를 발생시키는 인코더 및 메모리 어레이로부터 판독할 때 데이터 워드를 정정하는데 사용되는 디코더를 포함한다.
도 7은 메모리 어레이(250)에 데이터를 기록하기위한 에러 정정 회로(260)의 또 다른 실시예를 도시한다. 그러나, 도 7의 에러 정정 회로(260)는 도 4의 데이터 버퍼 또는 에러 버퍼를 포함하지 않는다. 데이터 워드는 버스(380)를 통해 버스(202)로부터 메모리 어레이(250)로 제공된다. 데이터 워드가 버스(382)를 통해 인코더(384)에 입력으로서 또한 제공된다. 인코더(384)는 에러 위치지정 코드를 발생시키고 버스(386)를 통해 메모리 어레이(250)에 에러 위치지정 코드를 제공한다. 이 실시예는, 인코더(384)에 입력 데이터가 변화되기 전에 인코더(384)가 에러 정정 코드를 발생시킬 충분한 시간을 가질 때, 도입될 수 있다.
도 8은 메모리 어레이(250)로부터 데이터를 판독하기위해 에러 정정 회로(260)의 또 다른 실시예를 도시한다. 도 8의 에러 회로(260)는 도 5의 데이터 버퍼 또는 에러 버퍼를 포함하지 않는다.
데이터 워드는 신호선(388a-z)을 통해 메모리 어레이(250)로부터 에러 정정 회로(260)로 제공된다. 데이터 워드는 신호선(389a-z)을 통해 인코더(390)로 제공된다. 인코더는 데이터 워드를 재부호화하고 신호선(393a-m)으로 에러 정정 코드를 제공한다. 재부호화된 에러 정정 코드는 이전에 보관되었었고 신호선(392a-m)으로 제공된 에러 정정 코드와 비교된다. 가령, 이 비교는 XOR회로로 실행된다. 이 비교의 출력은 디코더(394)에 제공된다. 상기 디코더는 데이터 워드에서 검출된 에러를 정정하기위해 초기 신호(388a-z)를 수정할 수 있는 신호(396a-z)를 제공한다. 정정된 데이터 워드는 신호선(398)을 통해 버스(202)에 제공된다.
대체 실시예로, 도 7의 프로그래밍 회로 및 도 8의 판독 회로가 인코더를 공유하기위해 결합될 수 있다.
도 9는 데이터 워드가 멀티레벨 셀 메모리에 기록될 때 에러 정정 코드를 발생시키는데 있어서 취해진 단계를 보여주는 흐름도이다. 하기의 설명은 도 4의 프로그래밍 회로에 관해서이다. 이 흐름도는 블록(400)에서 시작되고, 여기서부터, 동작이 블록(402)에서 계속된다. 블록(402)에서, 데이터 버퍼(302)는 데이터 워드를 구성한 데이터로 채워져 있다. 데이터 버퍼(302)에 기록은, 데이터 버스 버퍼(308)가 일반적으로 데이터 버퍼(302)만큼 넓지 않기 때문에, 여러번의 버스싸이클을 취할지도 모른다.
동작은 블록(404)에서 시작되고, 여기에서 데이터 워드 비트는 에러 위치지정 코드를 발생시키기위해 인코더(300)에 의해 처리된다. 블록(406)에서, 데이터 워드 및 에러 위치지정 코드는 멀티레벨 셀 메모리(204)에 저장된다. 동작은 블록(410)에서 종료된다.
도 10은 데이터 워드(420) 및 이와 관련된 에러 위치지정 코드(430)의 대표도이다. 에러 위치지정 코드(430)는, 데이터 워드(420)에서 에러난 비트군, 소위 '바이트'를 지시하는 포인트로 복호화된다.
일실시예로, 각 바이트는 정확히 단일 멀티레벨 셀에 대응된다, 즉, 각 바이트는 특정의 멀티레벨 셀에 저장된 비트 수로 구성되고, 각 바이트는 멀티레벨 셀 경계에 맞춤 되어 있다. 이 경우에, 에러 위치지정 코드가 에러난 바이트를 식별할 때, 에러난 멀티레벨 셀을 또한 식별한다. 멀티레벨 셀의 고장 메카니즘이 전하 손실에 의거하여 예측될 수 있기 때문에, 에러난 멀티레벨 셀의 정확한 상태가, 에러난 멀티레벨 셀로부터 판독된 전하 상태보다 더 많은 전하를 가진 전하 상태인 것으로 예측된다.
또 다른 실시예로, 에러난 바이트는 2개의 멀티레벨 셀과 오버랩한다. 즉, 바이트의 일부는 어느 하나의 멀티레벨 셀에 저장되고, 바이트의 일부는 또 다른 멀티레벨 셀에 저장된다. 상기는 바이트의 비트 수가 멀티레벨 셀에서 저장된 비트 수와 같지 않을 때, 또는 바이트가 멀티레벨 셀 경계에 대해 맞춤이 되어있지 않을 때, 발생할 수 있다. 2개의 멀티레벨 셀의 오버랩이 발생하면, 에러난 바이트와 관련된 하나 또는 두개 모두의 셀이, 2개의 멀티레벨 셀중의 하나 또는 두개 모두의 더 높은 전하 상태를 예측함으로써, 정정될 수 있다. 유사하게, 2개 이상의 멀티레벨 셀의 오버랩이, 하나 이상의 에러난 멀티레벨 셀의 더 높은 전하 상태를 예측함으로써, 정정 될 수 있다.
도 11은 64비트 데이터 워드(450)의, 이와 관련된 8비트 에러 위치지정 코드와 함께, 예를 도시한다. 에러 위치지정 코드(460)는 Fujiwara가 설명한 에러 위치지정 코드의 유형이다. 상기(460)는 에러난 n비트 바이트를 검출할 수 있다. 또한 상기(460)는 단일 비트 에러를 또한 검출할 수 있다. 도 11은 n=4 일 경우의 예를 도시한다. 데이터 워드는 2개의 32비트 블록으로 또한 나누어진다. 8비트 에러 위치지정 코드(460)는 32비트 블록의 각각에서 한개의 4비트 바이트 에러를 검출할 수 있다.
그러므로, 데이터 워드가 4비트 멀티레벨 셀 메모리(여기에서 각 셀은 16개의 전하 상태를 가짐)에 저장되면, 각각의 4비트 바이트는 특정의 멀티레벨 셀에 대응한다. 에러가 4비트 바이트중의 하나에서 검출되면, 4비트 바이트와 관련된 멀티레벨 셀로부터 판독된 데이터는 에러난 것이다. 에러 위치지정 코드를 사용하여, 에러난 멀티레벨 셀은 각 블록내에서 결정될 수 있다.
다중 에러난 멀티레벨 셀은 동일한 데이터 워드내에서 결정될 수 있으며, 이것은 데이터 워드(450)의 2개의 분리 4비트 바이트를 지시하는 에러 위치지정 코드(460)에 의해 도 11에 도시된다. 에러 정정의 정확도는, 이전에 언급된 E.Fujiwara 와 M.kitakami에 의한 IEEE 논문에서 설명된 것과 같이, 에러난 비트및 n비트 바이트의 수에 의존하여 변화한다. n비트 바이트의 다양한 구성 및 m 비트 블록은, 에러 위치의 레벨 및 원하는 정정 성능을 얻기위해, 실시 될 수 있다.
에러 위치지정 코드는, 이 코드를 실행하는데 더 적은 비트가 필요하기때문에 에러 정정 코드보다 장점이 있다. 상기 사실은 비용 및 메모리 어레이의 크기를 감소시킨다. 비교컨대, 만약 8비트 해밍 코드(에러 정정 코드 유형)가 에러 위치지정 코드(460)의 위치에서 사용되면, 데이터 워드(450)에 있는 단일 비트 에러가 정정 될 수 있다. 만약 이중 비트 에러가 데이터 워드(450)에서 발생하면, 이중 비트 에러는 검출되나 해밍 코드에 의해서 정정 될 수 없다. 그래서 에러 위치지정 코드(460)는 에러 정정 해밍 코드 보다도 더 좋은 데이터의 에러 정정 방법을 제공한다.
멀티레벨 셀에 대한 유력한 고장 메카니즘으로 멀티레벨 셀이 전하를 손실하는 것이기 때문에, 에러난 멀티레벨 셀이 결정되면 에러난 멀티레벨 셀이 현재상태보다 더 높은 전하 레벨을 가짐을 예측하는 것이 가능하다.
도 12는 멀티레벨 셀 메모리로부터 데이터 워드를 판독할 때 에러 위치지정 코드에의해 검출된 에러 정정 처리 흐름도이다. 도 5의 판독 회로에 관해서 하기에 설명한다. 흐름도는 블록(500)에서 시작하고, 여기로부터 블록(502)에서 계속된다. 블록(502)에서, 데이터 워드 및 이와 관련된 에러 위치지정 코드는 멀티레벨 셀 메모리내에서 판독된다. 데이터 워드는 데이터 버퍼(302)에서 유지되고, 에러 위치지정 코드는 에러 버퍼(322)에서 유지된다.
블록(504)에서, 데이터 비트 및 에러 위치지정 코드는 데이터 워드에 에러가있는지 없는지를 결정하기 위해 EED(324)를 통해 처리된다. EED(324)에 의해 실행되는 데이터 비트 및 에러 위치지정 코드의 처리는 공지의 회로에 의해 실시된다.
블록(506)에서, 어떠한 에러도 검출되지 않았다면, 동작은 블록(560)에서 계속되고, 여기에서 동작은 종료한다. 그러나 만약 에러가 검출되었다면, 동작은 블록(510)에서 계속된다.
블록(510)에서, 만약 EED(324)가 단일 비트 에러를 검출했다면, 동작은 블록(512)에서 계속되고, 여기에서 만약 EED(324)는 데이터 버퍼(320)의 적당한 비트 값을 바꾸는 신호선(340)들 중의 한개를 표명함으로써 데이터 버퍼(320)내의 단일 비트 에러를 정정한다. 블록(512)으로부터, 동작은 블록(560)에서 계속되고, 여기에서 동작은 종료한다.
그러나, 블록(510)에서 디코더가, 도 11에 관해서 설명되었던 4비트 바이트 에러와 같은 멀티 비트 바이트 에러를 검출했다면, 동작은 블록(520)에서 계속된다. 블록(520)에서, 데이터 워드의 일부를 저장한 한개 이상의 에러난 멀티레벨 셀이 결정된다. 이러한 에러난 멀티레벨 셀은 EED(324)에 의해 지시된다. 블록(522)에서, 에러난 셀(들)의 현재 전하 상태는 멀티레벨 셀에 관한 종래기술의 공지의 회로에 의해 검출된다. 블록(524)에서, 에러난 셀(들)에 대응한 메모리 소자 비트 패턴은 다음의 더 높은 전하 상태의 메모리 소자 비트 패턴으로 수정된다. 일 실시예로, 현재의 전하 상태로부터 다음의 직접적인 더 높은 전하 상태는 가장 가능한 정정 수단으로 예측된다. 또 다른 실시예로, 다음의 더 높은 전하 상태와 상이한 전하 상태가 더욱더 에러를 정정할 수 있을지도 모른다. 가령, 현저한 에러 모드로멀티레벨 셀의 특정한 전하 상태가 두 상태를 스킵하는 것이 실험적으로 밝혀질 수 있다. 이 경우에 있어서, 에러는, 판독된 전하 상태로부터 다음의 더 높은 제 2 전하 상태가 가장 가능성 있는 정정 수단임을 예측함으로써, 정정될 수 있다. 유사하게, 만약 특정의 고장 모드가 멀티레벨 셀의 유일한 고장 모드라는 것이 밝혀지면, 정정 알고리즘은 단지 필요한 정정 수단을 취하기위해 적당히 실시된다.
블록(526)에서, 수정된 데이터 워드 및 에러 위치지정 코드는, 블록(524)에서 수행된 데이터 워드의 수정에 의해 에러가 정정되어졌는지를 알기위해, EED(324)를 통해 처리된다.
만약 더 높은 전하 상태로 다시 수정될 수 있는 에러난 멀티레벨 셀(들)과 관련된 에러 및 비트가 여전히 존재한다면, 동작은 블록(530)에서 블록(524)까지 계속된다. 그러나, 만약 더 높은 전하 상태로 수정될 수 없는 에러난 멀티레벨 셀과 관련된 메모리 소자 비트 패턴 및 에러가 여전히 존재하는 두 조건이 만족되면, 동작은 블록(540)에서 계속된다.
블록(540)에서, 데이터 워드에서 에러가 여전히 존재하면, 동작은 블록(550)에서 계속되고, 여기서 에러는 플래그된다. 프로세서(200) 또는 데이터 워드를 요구하는 다른 디바이스는 에러가 발생한 것을 알고 있다.
그러나, 블록(540)에서, 에러가 더이상 검출되지 않으면, 동작은 블록(560)에서 계속된다.
블록(560)에서, 흐름도는 종결한다. 데이터 버퍼(320)는 에러가 정정된 데이터 워드를 유지한다. 멀티레벨 셀 메모리의 일실시예에 있어서, 에러난 멀티레벨셀은 데이터 버퍼(320)에서 유지된 정정된 데이터 워드로 재기록된다. 그러나, 다른 실시예들에 있어서, 메모리 어레이에 대한 정정은 되지 않는다. 이는 메모리 어레이에 다시 기록하기 위해서 추가 회로를 첨가시키는 복잡성 때문이다. 게다가, 플래시 메모리 실시예로, 일반적으로, 모든 블록은 이전에 플래시 메모리에 이미 기록된 데이터 워드를 재기록하기 위해서 소거되어져야만 한다.
상기 설명에서, 본 발명은 특정 실시예에 관해서 설명되어졌다. 그러나. 첨부된 청구항에서 설명된 본 발명의 더 넓은 사상 및 범위를 벗어나지 않고 다양한 수정과 변경이 일어 날 수 있음은 명백하다. 따라서 상세 설명 및 도면은 제한적 의미라기 보다는 예시적 의미로 간주되어져야한다.

Claims (16)

  1. 멀티레벨 셀이 3개 이상의 전하 상태를 저장 할 수 있고, 메모리의 상기 멀티레벨 셀로부터 데이터를 판독하는 방법에 있어서,
    (a) 멀티레벨 셀로부터 판독된 제 1 전하 상태가 에러 위치 지정 코드를 사용하여 에러임을 결정하는 단계; 및
    (b) 상기 제 1 의 전하 상태 보다도 더 많은 전하를 가지는 제 2 전하 상태를 유지하는 멀티레벨 셀에 대응하는 출력을 제공하는 단계를 포함하고,
    상기 제 1 전하 상태는 상기 제 2 전하 상태로부터의 상기 멀티레벨 셀내에 단방향 전하 손실로부터 기인되는 것을 특징으로 하는 방법.
  2. 청구항2는 삭제 되었습니다.
  3. 청구항3는 삭제 되었습니다.
  4. 제 1 항에 있어서, 상기 제 2 전하 상태가 상기 제 1 전하 상태보다 높은 1개의 전하 상태인 것을 특징으로 하는 방법.
  5. 제 1 항에 있어서, 상기 제 2 전하 상태가 상기 제 1 전하 상태보다 높은 2개의 전하 상태인 것을 특징으로 하는 방법.
  6. 멀티레벨 셀 각각이 1비트 이상의 데이터를 저장하고, 상기 멀티레벨 셀이 포함된 메모리로부터 데이터를 판독하는 방법에 있어서,
    (a) 한 세트의 멀티레벨 셀에 저장된 데이터 비트를 판독하는 단계;
    (b) 상기 데이터 비트와 관련된 에러 위치 지정 비트를 판독하는 단계;
    (c) 상기 한 세트의 멀티레벨 셀로부터 판독된 상기 데이터 비트가, 타겟 멀티레벨 셀과 관련되고, 상기 타겟 멀티레벨 셀이 제 1 전하 상태를 유지하는 것을 지시하는 에러난 타겟 비트를 포함하는 것을 결정하기위해 상기 에러 코드 비트를 사용하는 단계; 및
    (d) 상기 제 1 전하 상태보다 더 많은 전하를 유지하는 제 2 전하 상태를 유지하는 상기 타겟 멀티레벨 셀에 대응하도록 상기 타겟 비트를 수정하는 단계를 포함하고,
    상기 제 1 전하 상태는 상기 제 2 전하 상태로부터의 상기 멀티레벨 셀내에 단방향 전하손실로부터 기인되는 것을 특징으로 하는 방법.
  7. 청구항7는 삭제 되었습니다.
  8. 제 6 항에 있어서,
    (e) 단계(d)에서 수정되었던 상기 타겟 비트가 여전히 에러인지를 결정하고, 만약 상기 타겟 비트가 여전히 에러라면 제 3 전하 상태를 유지하는 상기 타겟 멀티레벨 셀에 대응하는 상기 타겟 비트를 수정하는 단계를 더 포함하고,
    상기 제 3 전하 상태가 상기 제 2 전하 상태보다 더 많은 전하를 유지하는 것을 특징으로 하는 방법.
  9. 제 6항에 있어서, 타겟 비트는 제 2 타겟 멀티레벨 셀과 또한 관련되어 있고, 상기 타겟 비트가, 상기 제 2 타겟 멀티레벨 셀이 제 4 전하 상태를 유지하는 것을 지시하는 방법에 있어서,
    (e) 제 5 전하 상태를 유지하는 상기 제 2 타겟 멀티레벨 셀에 대응하는 상기 타겟 비트를 수정하는 단계를 더 포함하고,
    상기 제 5 전하 상태가 상기 제 4 전하 상태보다 더 많은 전하를 유지하는 것을 특징으로하는 방법.
  10. 멀티레벨 셀 메모리로부터 데이터를 판독하는 방법에 있어서,
    (a) 상기 멀티레벨 셀 메모리에서, 소정수의 데이터 비트 및 소정수의 에러 위치지정 비트를 포함한 코드 워드를 액세스하는 단계;
    (b) 제 1 전하 상태를 사실상 유지하는 제 1 멀티레벨 셀에 대응되는 소정수의 데이터 비트 일부가 부정확함을 결정하기위해 에러 위치지정 비트를 사용하는 단계; 및
    (c) 상기 제 1 전하 상태보다 더 높은 전하 상태에 대응하기 위해 상기 제 1 멀티레벨 셀과 관련된 상기 소정수의 데이터 비트 일부를 수정하는 단계를 포함하고 상기 제 1 전하 상태는 상기 더 높은 전하상태로부터의 상기 멀티레벨 셀내의 단방향 전하 손실로부터 기인되는 것을 특징으로 하는 방법.
  11. 제 10 항에 있어서,
    (d) 단계(c)에서 수정되었던 상기 소정수의 데이터 비트에서 에러를 검사하는 단계; 및
    (e) 상기 에러가 정정되기까지 다음의 더 높은 전하 상태에 대응하기 위해 상기 제 1 멀티레벨 셀에 관련된 상기 소정수의 데이터 비트 일부를 수정하는 단계를 더 포함하는 것을 특징으로하는 방법.
  12. 적어도 각각 2비트 데이터를 저장할 수 있는 복수의 멀티레벨 셀을 포함한 메모리 어레이; 및
    상기 메모리 어레이로부터 상기 데이터를 수신하기 위해 결합되어 있고, 상기 멀티레벨 셀중의 하나에 의해 제공된 에러난 메모리 소자 비트 패턴을 정정 할 수 있는 디코더를 포함하고 있으며, 상기 디코더가, 상기 에러난 메모리 소자 비트 패턴과 관련된 단방향 전하손실에 의거하여 정확한 메모리 소자 비트 패턴을 예측하는, 에러 회로를 포함하는 것을 특징으로하는 회로.
  13. 제 12 항에 있어서, 상기 에러난 메모리 소자 비트 패턴을 저장할 수 있고,
    상기 데이터 버퍼내에 저장된 개별적 비트를 수정하는 상기 디코더로부터 입력을 허락하는 데이터 버퍼를 더 포함하고 있는 것을 특징으로 하는 회로.
  14. 적어도 2비트의 데이터를 저장할 수 있는 멀티레벨 셀;
    적어도 상기 멀티레벨 셀의 2비트의 데이터와 관련된 에러 위치지정 코드를 발생시키는 에러 코드 발생기; 및
    상기 멀티레벨 셀로부터 적어도 2비트의 데이터를 검색할 때, 상기 멀티레벨 셀내의 단방향 전하손실로부터 기인되는 에러 유무를 결정하는 에러 코드 디코더를 포함하는 것을 특징으로하는 메모리.
  15. 제 14 항에 있어서, 적어도 2비트의 데이터를 저장하는 상기 에러 코드 디코더에 결합되어 있고,
    자체내에 저장된 비트가 수정되도록 허락하는 데이터 버퍼를 더 포함하는 것을 특징으로 하는 메모리.
  16. 데이터 워드를 저장하고, 각각 3개 이상의 전하 상태를 저장 할 수 있는, 멀티레벨 셀의 어레이; 및
    에러난 멀티레벨 셀의 위치를 결정하기위해 상기 데이터 워드와 관련된 에러 위치지정 코드를 사용하는 제 1 회로; 및
    상기 에러난 멀티레벨 셀과 관련된 메모리 출력을 제공하고, 상기 메모리 출력은 상기 에러난 멀티레벨 셀로부터 판독된 전하 상태보다 더 높은 전하 상태에 대응하는, 제 2 회로를 포함한 에러 정정 회로를 포함하고 상기 에러난 멀티레벨 셀과 연관된 전하상태는 상기 멀티레벨 셀내의 단방향 전하손실로부터 기인되는 것을 특징으로하는 메모리.
KR1019997003616A 1996-10-25 1997-08-06 에러 위치지정 코드를 사용하여 멀티레벨 셀 메모리를 정정하는방법 및 장치 KR100331139B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/740,247 1996-10-25
US8/740,247 1996-10-25
US08/740,247 US5859858A (en) 1996-10-25 1996-10-25 Method and apparatus for correcting a multilevel cell memory by using error locating codes

Publications (2)

Publication Number Publication Date
KR20000052798A KR20000052798A (ko) 2000-08-25
KR100331139B1 true KR100331139B1 (ko) 2002-04-01

Family

ID=24975669

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019997003616A KR100331139B1 (ko) 1996-10-25 1997-08-06 에러 위치지정 코드를 사용하여 멀티레벨 셀 메모리를 정정하는방법 및 장치

Country Status (9)

Country Link
US (1) US5859858A (ko)
JP (1) JP3982639B2 (ko)
KR (1) KR100331139B1 (ko)
CN (1) CN1113294C (ko)
AU (1) AU3911797A (ko)
DE (2) DE19782077T1 (ko)
MY (1) MY114049A (ko)
TW (1) TW368622B (ko)
WO (1) WO1998019241A1 (ko)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3165101B2 (ja) * 1998-03-05 2001-05-14 日本電気アイシーマイコンシステム株式会社 多値式半導体メモリ装置およびその不良救済方法
US6532556B1 (en) 2000-01-27 2003-03-11 Multi Level Memory Technology Data management for multi-bit-per-cell memories
US7079422B1 (en) 2000-04-25 2006-07-18 Samsung Electronics Co., Ltd. Periodic refresh operations for non-volatile multiple-bit-per-cell memory
US6396744B1 (en) 2000-04-25 2002-05-28 Multi Level Memory Technology Flash memory with dynamic refresh
US6856568B1 (en) 2000-04-25 2005-02-15 Multi Level Memory Technology Refresh operations that change address mappings in a non-volatile memory
US6466476B1 (en) 2001-01-18 2002-10-15 Multi Level Memory Technology Data coding for multi-bit-per-cell memories having variable numbers of bits per memory cell
JP4437519B2 (ja) * 2001-08-23 2010-03-24 スパンション エルエルシー 多値セルメモリ用のメモリコントローラ
US6751766B2 (en) 2002-05-20 2004-06-15 Sandisk Corporation Increasing the effectiveness of error correction codes and operating multi-level memory systems by using information about the quality of the stored data
JP3935139B2 (ja) 2002-11-29 2007-06-20 株式会社東芝 半導体記憶装置
ITMI20022669A1 (it) * 2002-12-18 2004-06-19 Simicroelectronics S R L Struttura e metodo di rilevamento errori in un dispositivo
US7388781B2 (en) * 2006-03-06 2008-06-17 Sandisk Il Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
US8848442B2 (en) * 2006-03-06 2014-09-30 Sandisk Il Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
DE102006010820A1 (de) * 2006-03-07 2007-09-13 Micronas Gmbh Fehlerkorrektur- und Fehlererfassungs-Verfahren zum Auslesen von gespeicherten Informationsdaten und Speichersteuereinrichtung dafür
US7945840B2 (en) * 2007-02-12 2011-05-17 Micron Technology, Inc. Memory array error correction apparatus, systems, and methods
US7633798B2 (en) * 2007-11-21 2009-12-15 Micron Technology, Inc. M+N bit programming and M+L bit read for M bit memory cells
KR101515122B1 (ko) * 2008-02-15 2015-04-27 삼성전자주식회사 저장된 데이터의 오류에 기반하여 기준 전압을 제어하는 방법과 메모리 데이터 검출 장치
KR101434405B1 (ko) 2008-02-20 2014-08-29 삼성전자주식회사 메모리 장치 및 메모리 데이터 읽기 방법
KR101506655B1 (ko) * 2008-05-15 2015-03-30 삼성전자주식회사 메모리 장치 및 메모리 데이터 오류 관리 방법
US20100016675A1 (en) * 2008-07-18 2010-01-21 Cohen Jason C Method of assessing a condition using sucking patterns
KR101537018B1 (ko) * 2008-10-01 2015-07-17 삼성전자주식회사 보안 메모리 인터페이스, 이를 포함하는 시스템 및 스마트카드
US8291297B2 (en) * 2008-12-18 2012-10-16 Intel Corporation Data error recovery in non-volatile memory
US8589766B2 (en) * 2010-02-24 2013-11-19 Apple Inc. Codeword remapping schemes for non-volatile memories
US8732557B2 (en) 2011-05-31 2014-05-20 Micron Technology, Inc. Data protection across multiple memory blocks
US20150067437A1 (en) * 2013-08-30 2015-03-05 Kuljit S. Bains Apparatus, method and system for reporting dynamic random access memory error information
KR102157875B1 (ko) 2013-12-19 2020-09-22 삼성전자주식회사 불휘발성 메모리 장치 및 그것을 포함한 메모리 시스템
US9501350B2 (en) * 2014-09-22 2016-11-22 Empire Technology Development Llc Detecting unidirectional resistance drift errors in a multilevel cell of a phase change memory
US9519539B2 (en) * 2014-10-24 2016-12-13 Macronix International Co., Ltd. Monitoring data error status in a memory
US9679661B1 (en) 2016-06-28 2017-06-13 Sandisk Technologies Llc Non-volatile storage system with self-test for read performance enhancement feature setup
US9672940B1 (en) 2016-08-18 2017-06-06 Sandisk Technologies Llc Non-volatile memory with fast read process
CN114765056A (zh) 2021-01-14 2022-07-19 长鑫存储技术有限公司 存储系统
CN114765055B (zh) * 2021-01-14 2024-05-03 长鑫存储技术有限公司 纠错系统
KR20220104031A (ko) 2021-01-14 2022-07-25 창신 메모리 테크놀로지즈 아이엔씨 오류 정정 시스템
US11599417B2 (en) 2021-01-14 2023-03-07 Changxin Memory Technologies, Inc. Error correction system
JP2023512892A (ja) 2021-01-14 2023-03-30 チャンシン メモリー テクノロジーズ インコーポレイテッド 比較システム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5511078A (en) * 1992-11-30 1996-04-23 International Business Machines Corporation Method and apparatus for correction errors in a memory

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5550849A (en) * 1993-05-20 1996-08-27 Ceram Incorporated Method and apparatus for detecting single or multiple bit errors instorage devices
JP3999822B2 (ja) * 1993-12-28 2007-10-31 株式会社東芝 記憶システム
US5450363A (en) * 1994-06-02 1995-09-12 Intel Corporation Gray coding for a multilevel cell memory system
DE69421925T2 (de) * 1994-09-30 2000-03-16 St Microelectronics Srl Speichergerät mit Fehlerdetektion und -korrektur und Verfahren zum Schreiben und Löschen des Speichergeräts
US5555250A (en) * 1994-10-14 1996-09-10 Compaq Computer Corporation Data error detection and correction system
EP0709776B1 (en) * 1994-10-31 2000-02-23 STMicroelectronics S.r.l. Method for detecting and correcting an error in a multilevel memory and memory device implementing the method
US5475693A (en) * 1994-12-27 1995-12-12 Intel Corporation Error management processes for flash EEPROM memory arrays
US5541886A (en) * 1994-12-27 1996-07-30 Intel Corporation Method and apparatus for storing control information in multi-bit non-volatile memory arrays

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5511078A (en) * 1992-11-30 1996-04-23 International Business Machines Corporation Method and apparatus for correction errors in a memory

Also Published As

Publication number Publication date
JP3982639B2 (ja) 2007-09-26
DE19782077T1 (de) 1999-09-23
MY114049A (en) 2002-07-31
DE19782077B4 (de) 2011-04-07
CN1242088A (zh) 2000-01-19
CN1113294C (zh) 2003-07-02
WO1998019241A1 (en) 1998-05-07
KR20000052798A (ko) 2000-08-25
JP2001503181A (ja) 2001-03-06
US5859858A (en) 1999-01-12
AU3911797A (en) 1998-05-22
TW368622B (en) 1999-09-01

Similar Documents

Publication Publication Date Title
KR100331139B1 (ko) 에러 위치지정 코드를 사용하여 멀티레벨 셀 메모리를 정정하는방법 및 장치
US5754566A (en) Method and apparatus for correcting a multilevel cell memory by using interleaving
CN100545817C (zh) 用于提高数据可靠性的数据管理技术
US6625061B2 (en) Method of managing a defect in a flash memory
EP1635261B1 (en) Memory with embedded error correction code circuit
US8694855B1 (en) Error correction code technique for improving read stress endurance
KR100632952B1 (ko) 정전으로 인한 프로그램 페일의 유무를 판별할 수 있는방법 및 장치
EP1164589A1 (en) Storage device having an error correction function
EP0030612A2 (en) Method of correcting double errors in a data storage apparatus and data storage apparatus
WO2007083303A2 (en) A method of arranging data in a multi-level cell memory device
KR920001104B1 (ko) 어드레스 라인 오류 테스트 방법
US4598402A (en) System for treatment of single bit error in buffer storage unit
EP0242595A2 (en) Error detection using variable field parity checking
US7181655B2 (en) Method and circuit arrangement for memory error processing
US11231990B2 (en) Device and method for generating error correction information
US11669392B2 (en) Non-volatile memory
JPH08203292A (ja) 不揮発性メモリ
KR20050064887A (ko) 오류 검출 능력이 강화된 플래시 메모리 및 다비트 오류검출 방법
CN116153378A (zh) 错误检查刷写操作方法和使用该方法的半导体系统
CN111831486B (zh) 半导体装置和包括该半导体装置的半导体系统
EP0442616A2 (en) Method for testing a computer memory location
JPH0756816A (ja) メモリの制御装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120309

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee