KR101543081B1 - 고착 고장을 갖는 메모리 셀을 수용하기 위한 리던던트 비트의 인코딩 및 디코딩 - Google Patents

고착 고장을 갖는 메모리 셀을 수용하기 위한 리던던트 비트의 인코딩 및 디코딩 Download PDF

Info

Publication number
KR101543081B1
KR101543081B1 KR1020130119756A KR20130119756A KR101543081B1 KR 101543081 B1 KR101543081 B1 KR 101543081B1 KR 1020130119756 A KR1020130119756 A KR 1020130119756A KR 20130119756 A KR20130119756 A KR 20130119756A KR 101543081 B1 KR101543081 B1 KR 101543081B1
Authority
KR
South Korea
Prior art keywords
bits
bit
redundant bits
generate
stuck
Prior art date
Application number
KR1020130119756A
Other languages
English (en)
Other versions
KR20140046381A (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 KR20140046381A publication Critical patent/KR20140046381A/ko
Application granted granted Critical
Publication of KR101543081B1 publication Critical patent/KR101543081B1/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/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/80Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
    • G11C29/802Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout by encoding redundancy signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/14Implementation of control logic, e.g. test mode decoders
    • 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/40Response verification devices using compression techniques
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

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)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

데이터 저장 시스템은 메모리 셀을 포함하는 메모리 회로와 메모리 셀 내에 저장하기 위해 제공된 데이터 비트를 수신하는 제어 회로를 갖는다. 제어 회로는 제1 세트의 리던던트 비트와 인코딩된 데이터 비트를 발생시키기 위해 데이터 비트를 인코딩하며, 이에 의해 제1 고착 고장을 갖는 제1 서브세트 의 메모리 셀 내에 저장하기 위해 선택된 인코딩된 데이터 비트는 제1 고착 고장 중 대응하는 고착 고장의 디지털 값을 갖는다. 제어 회로는 제2 세트의 리던던트 비트를 발생시키기 위해 제1 세트의 리던던트 비트를 인코딩한다. 제어 회로는 제3 세트의 리던던트 비트를 발생시키기 위해 제2 세트의 리던던트 비트와 인코딩된 데이터 비트에 대해 논리 연산을 수행하며, 이에 의해 제2 고착 고장을 갖는 제2 서브세트의 메모리 셀 내에 저장하기 위해 선택된 제3 세트의 리던던트 비트 내 리던던트 비트는 제2 고착 고장 중 대응하는 고착 고장의 디지털 값을 갖는다.

Description

고착 고장을 갖는 메모리 셀을 수용하기 위한 리던던트 비트의 인코딩 및 디코딩{ENCODING AND DECODING REDUNDANT BITS TO ACCOMMODATE MEMORY CELLS HAVING STUCK-AT FAULTS}
본 개시는 데이터 저장 시스템에 관한 것으로, 특히, 고착 고장을 갖는 메모리 셀을 수용하기 위해 리던던트 비트를 인코딩 및 디코딩하기 위한 기법에 관한 것이다.
많은 데이터 통신 시스템은 데이터 내 에러를 검출하고 정정하기 위해 에러 정정 인코더와 디코더를 사용한다. 저장 시스템은 지연을 갖는 통신 시스템으로서 빈번하게 설계되고, 여기서 데이터는 기록 동작 동안 전송되며 데이터는 판독 동작에서 수신된다. 저장 시스템에서, 랜덤 에러는 수용 가능한 오버헤드를 갖는 약 1 × 10-4의 비율까지 정정될 수 있다. 약 1 × 10-4의 에러율에 대해 보호하기 위해, 에러 정정 인코더는 자신의 입력 비트보다 약 10% 많은 비트를 갖는 인코딩된 비트를 발생시킬 수 있다.
상 변화 메모리(PCM)는 비휘발성 반도체 메모리의 클래스이다. PCM 장치는 전통적인 비휘발성 플래시 메모리에 비해 많은 장점이 있다. 그러나, PCM 장치는 기록 사이클 저하에 의해 초래된 다수의 에러를 발생시킬 수 있다. 예를 들어, PCM 장치는 수 백만 또는 수 천만 사이클로 사이클되면 1 × 10-2 이상의 비율로 에러를 발생시킬 수 있다.
내구 연한에서, 비휘발성 메모리 장치 내 에러율은 랜덤 에러가 아닌 기록 사이클 저하에 의해 영향을 받는다. 성능 저하에 의해 야기되는 에러는 고착 고장 및 불안정한 비트를 포함한다. 이들 두 가지 형태의 에러들 각각은 데이터 통신 시스템 및 대응하는 에러 정정 방법에서 통상적으로 가정되는 랜덤 에러와 다른 통계를 갖는다.
몇몇 실시예에 따르면, 데이터 저장 시스템은 메모리 셀을 포함하는 메모리 회로와 메모리 셀 내에 저장하기 위해 제공된 데이터 비트를 수신하는 제어 유닛을 갖는다. 제어 회로는 제1 세트의 리던던트 비트와 인코딩된 데이터 비트를 발생시키기 위해 데이터 비트를 인코딩하며, 이에 의해 제1 고착 고장을 갖는 제1 서브세트의 메모리 셀 내에 저장하기 위해 선택된 인코딩된 데이터 비트는 제1 고착 고장 중 대응하는 고착 고장의 디지털 값을 갖는다. 제어 회로는 제2 세트의 리던던트 비트를 발생시키기 위해 제1 세트의 리던던트 비트를 인코딩한다. 제어 회로는 제3 세트의 리던던트 비트를 발생시키기 위해 제2 세트의 리던던트 비트 와 인코딩된 데이터 비트에 대한 논리 연산을 수행하며, 이에 의해 제2 고착 고장을 갖는 제2 서브세트의 메모리 셀 내에 저장하기 위해 선택된 제3 세트의 리던던트 비트 내 리던던트 비트는 제2 고착 고장 중 대응하는 고착 고장의 디지털 값을 갖는다.
다른 실시예에 따르면, 데이터 저장 시스템은 메모리 셀을 포함하는 메모리 회로와 메모리 셀로부터 판독된 인코딩된 비트를 수신하는 제어 회로를 갖는다. 인코딩된 비트는 메모리 셀 내에 고착 고장을 수용한다. 제어 회로는 제1 중간 비트를 발생시키기 위해 제1 세트들의 인코딩된 비트에 대해 비트마다의 논리 연산(bitwise logic operations)을 수행한다. 제어 회로는 제2 중간 비트를 발생시키기 위해 제2 세트들의 인코딩된 비트에 대해 비트마다의 논리 연산을 수행한다. 제2 세트들 각각은 제1 세트들 각각보다 많은 비트를 갖는다. 제어 회로는 제1 디코딩된 비트를 발생시키기 위해 제1 중간 비트를 이용해 제2 중간 비트를 디코딩한다. 제어 회로는 디코딩된 데이터 비트를 발생시키기 위해 제1 디코딩된 비트를 이용해 제1 서브세트의 인코딩된 비트를 디코딩한다.
본 발명의 다양한 목적, 특징, 그리고 장점은 이어지는 상세한 설명과 첨부 도면들을 고려할 때 분명해질 것이다.
본 발명의 실시예에 따른, 도 1은 데이터 저장 시스템의 예를 예시한다.
본 발명의 실시예에 따른, 도 2a는 메모리 회로의 메모리 셀 내에 저장하기 위한 인코딩된 데이터 비트와 인코딩된 리던던트 비트를 발생시키기 위해 데이터 비트를 인코딩하기 위한 연산의 예들을 예시하는 흐름도이다.
본 발명의 실시예에 따른, 도 2b는 디코딩된 데이터 비트를 발생시키기 위해 메모리 회로의 메모리 셀로부터 판독된 인코딩된 비트를 디코딩하기 위한 연산의 예들을 예시하는 흐름도이다.
본 발명의 실시예에 따른, 도 3a 내지 도 3b는 메모리 셀 내 고착 고장을 수용하는 인코딩된 비트를 발생시키기 위해 데이터 비트를 인코딩하기 위한 연산의 예들을 예시한다.
본 발명의 실시예에 따른, 도 4는 데이터 비트를 재생하기 위해 인코딩된 비트를 디코딩하기 위한 연산의 예들을 예시한다.
본 발명의 실시예에 따른, 도 5a 내지 도 5i는 도 3a 내지 도 3b에 도시되며 도 3a 내지 도 3b에 대하여 기술된 인코딩 연산의 예들을 예시한다.
몇몇 실시예에 따르면, 데이터 비트는 메모리 회로의 메모리 셀 내에 저장하기 위해 제공된다. 메모리 회로의 하나 이상의 메모리 셀이 고착 고장을 포함할 수 있다. 인코더는 인코딩된 데이터 비트와 리던던트 비트를 발생시키기 위해 데이터 비트를 인코딩한다. 리던던트 비트가 고착 고장을 갖는 메모리 회로의 메모리 셀에 대응하면, 인코더는 인코딩된 리던던트 비트를 발생시키기 위해 리던던트 비트를 인코딩한다. 인코딩된 데이터 비트와 인코딩된 리던던트 비트는 메모리 회로의 메모리 셀 내에 저장된다. 인코딩된 데이터 비트와 인코딩된 리던던트 비트는 고착 고장을 갖는 메모리 회로 내에 메모리 셀을 수용한다. 메모리 회로는, 예를 들어, 고착 고장을 갖는 (예를 들어, 칼코게니드 글래스를 이용하는)상 변화 메모리 회로 또는 다른 타입의 메모리 회로일 수 있다.
고착 고장을 갖는 메모리 셀은 하나의 디지털 값만을 저장할 수 있는 메모리 셀이다. 1의 고착 고장 값을 갖는 메모리 셀은 오직 논리 하이 디지털 값만을 저장할 수 있으며, 그리고 0의 고착 고장 값을 갖는 메모리 셀은 오직 논리 로우 디지털 값만을 저장할 수 있다. 따라서, 오직 논리 하이 디지털 값만이 1의 고착 고장 값(즉, 고착 1)을 갖는 메모리 셀로부터 판독될 수 있으며, 그리고 오직 논리 로우 디지털 값만이 0의 고착 고장 값(즉, 고착 0)을 갖는 메모리 셀로부터 판독될 수 있다. 고착 고장을 갖는 메모리 셀은 일반적으로 시간이 지남에 따라 안정적인 고착 고장 값을 갖는다.
메모리 회로 내 몇몇의 메모리 셀이 고착 고장을 가지면, 고착 고장의 디지털 값과 고착 고장을 갖는 메모리 셀의 어드레스는 인코딩 프로세스 전에 결정되어 인코더로 제공된다. 인코더는 고착 고장의 디지털 값과 어드레스를 이용해 인코딩된 데이터 비트와 인코딩된 리던던트 비트를 발생시킨다. 인코딩된 데이터 비트와 인코딩된 리던던트 비트는 메모리 회로의 메모리 셀 내에 저장된다.
그 다음에, 인코딩된 데이터 비트와 인코딩된 리던던트 비트는 메모리 셀로부터 판독되어 디코더로 제공된다. 데이터 비트를 재생하기 위해 디코더는 인코딩된 리던던트 비트를 디코딩한 다음에 디코딩된 리던던트 비트를 이용해 인코딩된 데이터 비트를 디코딩한다. 디코더에 의해 재생된 데이터 비트는 메모리 회로 내에서 알려진 고착 고장에 의해 야기되는 에러를 포함하지 않는다.
본 명세서에 기술된 기법은 멀티-레벨 메모리 셀에 직접 적용할 수 있다. 멀티-레벨 메모리 셀은 메모리 셀당 1 비트보다 많이 저장할 수 있다. 예를 들어, 메모리 셀이 2비트를 유지하고, 메모리 셀이 고착된다면, 그들 2비트의 값이 고정되며, 그리고 값은 2개의 분리 고착 고장 위치로서 간주될 수 있다. 고착 고장 중 하나의 위치가 알려지기 때문에, 다른 고착 고장의 위치 또한 알려진다. 결과적으로, 동일한 고착 고장 에러율을 위해, 싱글-레벨 메모리 셀을 위해 발생되는 리던던트 비트보다 적은 리던던트 비트가 멀티-레벨 메모리 셀을 위해 발생될 수 있다. 리던던트 비트의 수는, 예를 들어, 메모리 셀 당 비트의 수와 동일한 비율로 보다 작을 수 있다.
본 발명의 실시예에 따른, 도 1은 데이터 저장 시스템(100)의 예를 예시한다. 데이터 저장 시스템(100)은 제어 회로(101), 메모리 회로(102), 그리고 메모리 회로(103)를 포함한다. 제어 회로(101)는, 예를 들어, 메모리 컨트롤러 회로, 프로세서 회로, 또는 메모리 회로들(102-103)내에 저장하기 위해 데이터 비트를 인코딩 및/또는 디코딩하는 임의의 다른 형태의 제어 회로일 수 있다. 제어 회로(101)는 메모리 회로들(102-103) 중 하나 또는 둘로 인코딩된 데이터 비트와 인코딩된 리던던트 비트를 제공한다. 인코딩된 데이터 비트와 인코딩된 리던던트 비트는 메모리 회로들(102-103) 중 하나 또는 둘에 저장된다. 판독 동작 동안, 인코딩된 데이터 비트와 인코딩된 리던던트 비트는 메모리 회로로부터 판독되어 제어 회로(101)로 제공된다. 인코딩된 데이터 비트와 인코딩된 리던던트 비트는 하나 이상의 온-칩 또는 외부 버스를 통해 또는 다른 형태의 신호 라인을 통해 제어 회로(101)와 메모리 회로(102-103) 사이에 전송된다.
제어 회로(101), 메모리 회로(102), 그리고 메모리 회로(103)는 동일한 집적 회로 또는 개별적인 집적 회로들 내에 존재할 수 있다. 따라서, 시스템(100)은 회로(101-103)를 포함하는 싱글 집적 회로 장치일 수 있다. 대안으로, 시스템(100)은 3개의 개별적인 집적 회로 장치(101-103)를 포함할 수 있다.
본 발명의 실시예에 따른, 도 2a는 메모리 회로의 메모리 셀 내에 저장하기 위한 인코딩된 데이터 비트 및 인코딩된 리던던트 비트를 발생시키기 위해 데이터 비트를 인코딩하기 위한 연산의 예들을 예시하는 흐름도이다. 메모리 회로 내 각각의 메모리 셀은 적어도 하나의 디지털 값을 저장한다. 하나 이상의 메모리 셀이 고착 고장을 갖는다. 도 2a의 연산에 의해 발생된 인코딩된 데이터 비트와 인코딩된 리던던트 비트가 데이터 비트 대신에 메모리 셀 내에 저장된다. 도 2a의 연산은, 예를 들어, 제어 회로(101) 내 인코더에 의해 수행될 수 있다.
처음에, 인코더는 메모리 회로의 메모리 셀 내에 저장하기 위해 제공되는 데이터 비트를 수신한다. 각각의 데이터 비트는 메모리 회로의 대응하는 메모리 셀 내에 저장하기 위해 제공된다. 하나 이상의 데이터 비트가 알려진 고착 고장을 갖는 대응하는 메모리 셀 내에 저장하기 위해 제공된다. 고착 고장을 갖는 메모리 셀의 어드레스와 고착 고장의 디지털 값이 도 2a의 연산을 수행하기에 앞서 인코더에 제공된다.
연산(201)에서, 인코더는 제1 세트의 리던던트 비트와 인코딩된 데이터 비트를 발생시키기 위해 데이터 비트를 인코딩하여, 고착 고장을 갖는 메모리 셀들 중 하나의 메모리 셀 내에 저장하기 위해 각각의 인코딩된 데이터 비트는 그러한 고착 고장의 디지털 값을 갖는다. 연산(202)에서, 인코더는 제2 세트의 리던던트 비트를 발생시키기 위해 제1 세트의 리던던트 비트를 인코딩한다.
연산(203)에서, 인코더는 제3 세트의 리던던트 비트를 발생시키기 위해 제2 세트의 리던던트 비트와 인코딩된 데이터 비트에 대해 논리 연산들을 수행하여 고착 고장을 갖는 메모리 셀들 중 하나의 셀 내에 저장하기 위해 제3 세트의 리던던트 비트의 내 각각의 리던던트 비트는 그러한 고착 고장의 디지털 값을 갖는다. 인코딩된 데이터 비트와 제3 세트의 리던던트 비트는 적어도 서브세트의 메모리 셀 내에 저장된다.
본 발명의 실시예에 따른, 도 2b는 디코딩된 데이터 비트를 발생시키기 위해 메모리 회로의 메모리 셀로부터 판독된 인코딩된 비트를 디코딩하기 위한 연산의 예들을 예시하는 흐름도이다. 메모리 회로 내 각각의 메모리 셀은 적어도 하나의 디지털 값을 저장한다. 하나 이상의 메모리 셀은 고착 고장을 갖는다. 도 2b의 연산은, 예를 들어, 제어 회로(101) 내 디코더에 의해 수행될 수 있다. 고착 고장을 갖는 메모리 셀의 어드레스와 고착 고장의 디지털 값은 도 2b의 연산을 수행하기에 앞서 디코더에 의해 알려지지 않는다.
연산(211)에서, 디코더는 메모리 셀로부터 판독된 인코딩된 비트를 수신한다. 인코딩된 비트는 메모리 셀 내 고착 고장을 수용한다. 연산(212)에서, 디코더는 제1 중간 비트를 발생시키기 위해 제1 세트들의 인코딩된 비트에 대해 비트마다의 논리 연산을 수행한다. 연산(213)에서, 디코더는 제2 중간 비트를 발생시키기 위해 제2 세트의 인코딩된 비트에 대해 비트마다의 논리 연산을 수행한다. 제2 세트들 각각은 제1 세트들 각각보다 많은 비트를 갖는다. 연산(214)에서, 디코더는 제1 디코딩된 비트를 발생시키기 위해 제1 중간 비트를 이용해 제2 중간 비트를 디코딩한다. 연산(215)에서, 디코더는 디코딩된 데이터 비트를 발생시키기 위해 제1 디코딩된 비트를 이용해 제1 서브세트의 인코딩된 비트를를 디코딩한다.
본 발명의 실시예에 따른, 도 3a 내지 도 3b는 메모리 셀 내 고착 고장을 수용하는 인코딩된 비트를 발생시키기 위해 데이터 비트를 인코딩하기 위한 연산의 예들을 예시한다. 고착 고장을 갖는 메모리 셀의 어드레스와 고착 고장의 디지털 값은 도 3a 내지 도 3b의 연산을 수행하기에 앞서 인코더에 제공된다. 인코딩된 비트는 메모리 셀 내에 저장된다. 고착 고장을 갖는 메모리 셀 내에 저장되는 인코딩된 비트는 그들 메모리 셀들의 대응하는 디지털 값들의 고착 고장들과 동일한 디지털 값을 갖는다.
본 명세서에 논의된 인코더는, 예를 들어, 제어 회로(101)에 의해 구현될 수 있다. 인코더는 인코딩된 데이터 비트와 리던던트 비트를 발생시키기 위해 대응하는 메모리 셀의 고착 고장의 디지털 값과 일치하지 않는 데이터 비트의 디지털 값을 조절할 수 있는 인코딩 기법을 사용한다. 이하 논의된 바와 같이, 데이터 비트를 재생하기 위해 인코딩된 데이터 비트를 디코딩하기 위해 리던던트 비트는 디코더에 의해 사용된다. 고착 고장을 갖는 메모리 셀을 수용하기 위해 인코딩된 데이터 비트와 리던던트 비트를 발생시키는 인코딩 기법과 리던던트 비트를 이용해 인코딩된 데이터 비트를 디코딩하기 위한 기법의 예들은 2012년 10월 10일 출원되고, 공동으로-양도된 미합중국 특허 출원 번호 13/649,007 및 13/649,072에 개시되며, 상기 출원의 전부는 본 명세서에 참조로서 포함된다. 몇몇 실시예에 따르면, 이하 논의된 바와 같이, 이들 특허 출원에 개시된 인코딩과 디코딩 기법은 본 명세서에 제시된 기법과 함께 사용될 수 있다.
연산(301)에서, 인코더는 본 명세서에 기술된 기법에 따라 발생된 인코딩된 데이터 비트와 리던던트 비트를 저장하기 위해 충분한 메모리 셀을 갖는 메모리 셀의 블록(Bi)내에 저장하기 위해 제공되는 데이터 비트를 수신한다. 연산(301)에서 파라미터 "i"는 1과 동일한 양의 정수이다. 따라서, 연산(301)에서 블록(Bi)은 블록(B1)과 동일하다. 연산(302)에서, 인코더는 각각 동일한 수의 메모리 셀들을 갖는 “b”개의 세그먼트로 메모리 셀의 블록(Bi)을 분할한다. 파라미터 "b"는 선택된 인코딩 기법을 이용해 데이터 비트를 위한 인코더에 의해 발생된 데이터 비트의 수(D)와 리던던트 비트의 수(R)간의 비율에 기초하는 양의 정수이다. 예로서, b ≤ D/R이다. 연산(302-303)의 제1 반복에서, 블록(Bi)은 블록(B1)이다.
연산(303)에서, 인코더는 연산(302)에서 발생된 “b”개의 세그먼트 중에서 최소 개수의 고착 고장을 갖는 블록(Bi)에서 세그먼트를 블록(Bi +1)으로서 선택한다. 또한 연산(303)에서, 인코더는 블록(Bi)내 블록(Bi +1)의 위치를 표시하기 위해 log2b 비트를 발생시킨다. 블록(Bi)의 둘 이상의 세그먼트가 최소 개수의 고착 고장을 갖는다면, 인코더는 연산(303)에서 이들 세그먼트 중 하나를 선택한다. 연산(303)의 제1 반복에서, 인코더는 최소 개수의 고착 고장을 갖는 블록(B1)에서 세그먼트를 블록(B2)으로서 선택한다.
결정 연산(304)에서, 인코더는 블록(Bi +1)이 1 또는 0 고착 고장들을 갖는지를 판단한다. 블록(Bi +1)이 1 또는 0 고착 고장들을 가지면, 도 3a 내지 도 3b의 프로세스는 연산(306)으로 진행한다. 블록(Bi +1)이 하나를 초과하는 고착 고장들을 가지면, 도 3a 내지 도 3b의 프로세스는 연산(305)으로 진행한다. 연산(305)에서, 인코더는 파라미터 i에 1을 더한다. 그 다음 인코더는 연산(302-304)을 반복한다. 연산(302-304)의 제2 반복에서, 블록(Bi)은 블록(B2)이며, 그리고 블록(Bi +1)은 블록(B3)이다. 인코더는 블록(Bi +1)이 오직 1 또는 0 고착 고장을 가질 때까지 연산(302-305)의 반복을 지속적으로 수행한다. 이러한 프로세스는 늦어도 블록(Bi +1)내 비트의 수가 데이터 비트 내 고착 비트 에러율의 역함수와 동일할 때 멈춘다. 이하 기술된 바와 같이, 인코더는 인코딩된 데이터 비트를 디코딩하기 위해 디코더에 의해 사용되는 리던던트 비트를 저장하기 위해 연산(302-305)에서 하나 이상의 블록을 발생시킨다.
연산(306)에서, 인코더는 가장 큰 블록(B1)을 위한 인덱스 비트를 발생시키기 위해 데이터 비트와 인코딩된 데이터 비트로 하여금 블록(B1)의 메모리 셀 내 임의의 고착 고장을 수용하도록 하는 인코딩 기법을 이용해 가장 큰 블록(B1)의 메모리 셀들 내에 저장될 인코딩된 데이터 비트를 인코딩한다. 연산(306)에서 사용된 인코딩 기법은, 예를 들어, 미합중국 특허 출원 번호 13/649,007 및 13/649,072에 개시된 인코딩 기법 중 하나일 수 있다. 인덱스 비트는 데이터 비트를 재생하기 위해 인코딩된 데이터 비트를 디코딩하기 위해 디코더에 의해 사용되는 리던던트 비트이다. 연산(306) 후, 프로세스는 연산(309)으로 이어진다. 연산(309-316)은 도 3b에 도시된다.
연산(309)에서, 인코더는 파라미터 i를 1로 리셋한다. 연산(310)에서, 인코더는 블록(Bi+1)내 고착 고장 값과 블록(Bi)내 저장될 대응하는 인코딩된 비트에 대해 비트마다의 XOR 함수를 수행함으로써 블록(Bi+1)을 위한 가상 고착 고장 값을 발생시킨다. 비트마다의 XOR 함수는 동일한 길이의 2비트 패턴을 취하고 대응하는 비트의 각각의 쌍에 대해 논리 배타적 OR 연산을 수행하는 논리 연산이다. 제1 비트가 1이거나 제2 비트가 1인 경우에만 각각의 위치 내 결과는 1이다. 두 비트가 0이거나 두 비트가 1인 경우 결과는 0이다. 연산(310)의 제1 반복에서, 블록(Bi)내에 저장될 인코딩된 비트는 연산(306)에서 발생한 인코딩된 데이터 비트이다.
제한하기 위한 의도가 아닌 연산(310)의 예로서, i는 1과 동일하고, 블록(B2)은 8개의 메모리 셀을 가지며, 그리고 블록(B2)내 제3 및 제7 메모리 셀은 고착 고장을 갖는다. 이러한 예에서, 블록(B2)내 제3 메모리 셀의 고착 고장 값 및 제1 가상 고착 고장 값을 발생시키기 위해 연산(306)에서 발생되는 블록(B1)내에 저장될 인코딩된 데이터 비트 내 8 비트의 각각의 세트 내 각각의 대응하는 제3 인코딩된 데이터 비트에 대해 XOR 함수가 수행된다. 또한, 블록(B2)내 제7 메모리 셀의 고착 고장 값 및 제2 가상 고착 고장 값을 발생시키기 위해 연산(306)에서 발생되는 블록(B1)내에 저장될 인코딩된 데이터 비트 내 8 비트의 각각의 세트 내 각각의 대응하는 제7 인코딩된 데이터 비트에 대해 XOR 함수가 수행된다.
연산(311)에서, 인코더는 고착 고장을 갖는 메모리 셀을 수용하는 인코딩 기법을 이용해 블록(Bi +1)을 위한 대응하는 가상 고착 고장 값과 블록(Bi +1)을 위한 인덱스 비트와 일치하는 인코딩된 비트를 발생시키기 위해 블록(Bi)내 블록(Bi +1)의 위치를 표시하는 log2b 비트와 블록(Bi)을 위한 인덱스 비트를 인코딩한다. 연산(311)에서 사용되는 인코딩 기법은, 예를 들어, 연산(306)에서 사용된 동일한 인코딩 기법일 수 있다. 연산(311)에서 발생된 인코딩된 비트는 연산(310)에서 발생되는 블록(Bi +1)을 위한 대응하는 가상 고착 고장 값과 일치한다.
연산(312)에서, 인코더는 블록(B1 - Bi)의 메모리 셀 내에 저장될 비트 그리고 블록(Bi+1)의 메모리 셀 내에 저장될 비트를 발생시키기 위해 블록(Bi+1)을 위한 인코딩된 비트에 대해 비트마다의 XOR 함수를 수행한다. 연산(312)의 제1 반복에서, 블록(B1 - Bi)의 메모리 셀 내에 저장될 비트는 연산(306)에서 발생된 인코딩된 데이터 비트이다. 연산(312)의 후속적인 반복에서, 블록(B1 - Bi)의 메모리 셀 내에 저장될 비트는 모든 선행하는 연산(312) 반복에서 발생된 비트와 연산(306)에서 발생된 인코딩된 데이터 비트이다. 연산(312)의 각각의 반복에서, 블록(Bi+1)을 위한 인코딩된 비트는 선행하는 연산(311)의 반복에서 발생된다.
연산(312)에서, 블록(Bi)의 메모리 셀 내에 저장되는 비트는 비트의 세트들(Si)로 분할되며, 이에 의해 각각의 세트들(Si) 내 비트의 수는 블록(Bi+1)내 메모리 셀의 수와 동일하다. 그 다음 제1 XOR 결과를 발생시키기 위해 비트마다의 XOR 함수가 비트의 세트들(Si) 중 두 세트에 대해 수행된다. 둘 이상의 비트의 세트들(Si)이 존재하면, 제2 XOR 결과를 발생시키기 위해 제1 XOR 결과와 비트의 세트들(Si) 중 제3 세트에 대해 비트마다의 XOR 함수가 수행된다. 추가적인 비트의 세트들(Si)이 존재하지 않을 때까지, 다음 XOR 결과를 발생시키기 위해 비트마다의 XOR 함수가 앞서 발생된 XOR 결과와 각각의 추가적인 비트의 세트(Si)에 대해 지속적으로 수행된다.
그 다음 블록(Bi+1)의 대응하는 메모리 셀 내에 저장될 비트를 발생시키기 위해 비트의 세트들(Si)과 블록(Bi+1)을 위한 인코딩된 비트로부터 발생된 마지막 XOR 결과에 대해 연산(312)에서 최종 비트마다의 XOR 함수가 수행된다. 최종 비트마다의 XOR 함수는 블록(Bi+2)의 비트 위치에 대응하는 비트에 대해 연산(312)에서 수행되지 않는다. 연산(312)에서 블록(Bi+2)의 메모리 셀들 내에 저장될 비트는 아직 발생되지 않았다. 연산(312)의 최종 비트마다의 XOR 함수의 최종 XOR 결과는 비트의 세트들(Si)로부터 발생된 마지막 XOR 결과내 블록(Bi+1)의 대응하는 메모리 셀 내에 저장될 비트와 블록(Bi+2)의 비트 위치에 대응하는 비트를 포함한다. 이하 기술된 바와 같이, 연산(312)의 마지막 반복의 최종 비트마다의 XOR 함수의 최종 XOR 결과는 연산(315)에서 사용된다.
결정 연산(313)에서, 인코더는 블록(Bi +2)이 연산(302-305)의 반복에서 발생된 메모리 셀의 가장 작은 블록인지를 판단한다. 블록(Bi +2)이 연산(302-305)의 반복에서 발생된 메모리 셀의 가장 작은 블록이 아니면, 인코더는 연산(314)으로 진행한다. 연산(314)에서, 인코더는 파라미터(i)에 1을 더한다. 그 다음, 인코더는 연산(310-313)의 다른 반복을 수행한다. 인코더는 블록(Bi +2)이 연산(302-305)의 반복에서 발생된 메모리 셀의 가장 작은 블록과 동일할 때까지 연산(310-314)의 반복을 지속적으로 수행한다.
블록(Bi+2)이 연산(313)에서 연산(302-305)의 반복에서 발생된 메모리 셀의 가장 작은 블록이면, 인코더는 연산(315)으로 진행한다. 연산(315)에서, 인코더는 블록(Bi+2)의 메모리 셀 내에 저장될 비트를 발생시키기 위해 연산(312)의 마지막 반복에서 발생된 최종 XOR 결과의 b 비트와 블록(Bi+1)을 위한 인덱스 비트와 조합된 블록(Bi+1)내 블록(Bi+2)의 위치를 나타내는 log2b 비트의 세트에 대해 비트마다의 XOR 논리 연산을 수행한다.
연산(315)에서, 연산(312)의 마지막 반복에서 발생된 최종 XOR 결과의 비트는 비트의 세트들(SF)로 분할되어, 각각의 세트들(SF)내 비트의 수는 b와 같아진다. 그 다음 비트마다의 XOR 함수는 제1 XOR 결과를 발생시키기 위해 비트의 세트들(SF) 중 두 세트에 대해 수행된다. 비트의 세트들(SF)이 두 개 이상 존재하면, 비트마다의 XOR 함수가 제2 XOR 결과를 발생시키기 위해 제1 XOR 결과 및 비트의 세트들(SF) 중 제3 세트에 대해 수행된다. 추가적인 비트의 세트들(SF)이 존재하지 않을 때까지, 다음 XOR 결과를 발생시키기 위해 비트마다의 XOR 함수가 앞서 발생된 XOR 결과와 각각의 추가적인 비트의 세트(SF)에 대해 지속적으로 수행된다. 그 다음 블록(Bi+2)의 메모리 셀 내에 저장될 비트를 발생시키기 위해 비트들의 세트들(SF)과 블록(Bi+1)을 위한 인덱스 비트와 조합된 블록(Bi+1)내 블록(Bi+2)의 위치를 표시하는 log2b 비트로부터 발생된 마지막 XOR 결과에 대해 연산(315)에서 최종 비트마다의 XOR 함수는 수행된다.
블록(Bi +2)이 하나의 고착 고장을 갖는다면, 고착 고장을 갖는 블록(Bi +2)의 메모리 셀 내에 저장된 임의의 비트가 그러한 고착 고장의 디지털 값과 일치하여야 한다. 블록(Bi +2)이 p 비트와 정확히 하나의 고착 고장을 포함한다면, p-1 개수의 비트들이 다음과 같이 저장될 수 있다. 제1 비트는 나머지 p-1 비트가 역전되어야 하는지 여부를 표시하기 위해 지정된다. 제1 비트가 0의 디지털 값을 갖는다면, 나머지 p-1 비트는 그대로 판독된다. 제1 비트가 1의 디지털 값을 갖는다면, 나머지 p-1 비트가 역전된다. 고착 고장은 제1 비트 위치 또는 블록(Bi +2)의 나머지 p-1 비트 위치들 중 하나에 존재할 수 있다. 고착 고장이 제1 비트 위치에 있다면, 고착 고장의 값은 어떻게 데이터가 나머지 p-1 비트 내에 저장되는지(즉, 역전되거나 되지 않는 지)를 표시한다. 고착 고장이 제1 위치와 다른 나머지 p-1 비트 위치들 중 하나에 존재한다면, 고착 고장 값은 고착 고장 값이 그러한 비트 위치에 저장되어야 하는 데이터 비트와 동일한 디지털 값을 갖는지 여부를 판단하기 위해 체크된다. 고착 고장 값이 동일한 디지털 값을 갖는다면, 제1 비트가 0으로 설정되며, 그리고 데이터는 그대로 나머지 p-1 비트 위치들에 기록된다. 고착 고장 값이 반대되는 디지털 값을 갖는다면, 제1 비트는 1로 설정되며, 그리고 데이터 비트의 역전된 값은 나머지 p-1 비트 위치들 내에 저장된다.
연산(316)에서, 연산(306)에서 발생된 인코딩된 데이터 비트, 연산(312)의 각각의 반복에서 발생된 비트, 그리고 연산(315)에서 발생된 비트는 메모리 회로의 대응하는 메모리 셀 내에 저장된다.
본 발명의 실시예에 따른, 도 4는 데이터 비트를 재생하기 위해 인코딩된 비트를 디코딩하기 위한 연산의 예들을 예시한다. 인코딩된 비트는 메모리 회로의 메모리 셀로부터 판독되어 디코더로 제공된다. 디코더는, 예를 들어, 제어 회로(101)에 의해 구현될 수 있다.
초기에, 디코더는 메모리 회로의 메모리 셀로부터 인코딩된 비트를 수신한다. 연산(401)에서, 디코더는 인코딩된 비트를 세트들(SD)로 분할하며, 이에 의해 각각의 세트들(SD)은 이들의 비트 위치에 따라서 연속적인 “b”개수의 비트를 갖는다. 파라미터 "b"는 인코딩된 비트들을 발생시키기 위해 인코딩동안 사용된 동일한 값을 갖는다. 파라미터 "b"는 인코딩된 비트들을 디코딩하기에 앞서 디코더에 제공된다. 그 다음 연산(401)에서 b 비트를 갖는 XOR 결과를 발생시키기 위해 디코더는 비트의 세트들(SD)에 대해 비트마다의 XOR 함수들을 수행한다.
연산(402)에서, 파라미터 "n"은 연산(302-305)의 반복에서 발생된 가장 작은 메모리 셀 블록의 수(Bn)를 나타낸다. 연산(402)에서, 디코더는 연산(401)의 XOR 결과 내 제1 log2b 비트에 기초하여 블록(Bn -1)내 가장 작은 블록(Bn)의 위치를 식별한다. 연산(401)의 XOR 결과 내 나머지 비트는 블록(Bn -1)을 위한 인덱스 비트이다.
연산(403)에서, 디코더는 XOR 결과를 발생시키기 위해 메모리 셀로부터 수신된 bj+1 인코딩된 비트의 세트들에 대해 비트마다의 XOR 함수를 수행한다. 연산(403)에서, 디코더는 인코딩된 비트를 세트들(SG)로 분할하며, 이에 의해 각각의 세트들(SG)은 이들의 비트 위치에 따라 bj+1 개수의 연속적인 비트를 갖는다. 그 다음 디코더는 bj+1 비트를 갖는 XOR 결과를 발생시키기 위해 비트의 세트들(SG)에 대해 비트마다의 XOR 함수를 수행한다. 연산(403)의 제1 반복에서, 파라미터 j는 1과 동일하다.
연산(404)에서, 디코더는 디코딩 기법을 이용해 블록(Bn -1)의 디코딩된 비트를 발생시키기 위해, 블록(Bn -1)내 블록(Bn)의 비트 위치에 대응하는 비트를 제외하고, 연산(403)의 XOR 결과를 디코딩하기 위해 블록(Bn -1)을 위한 인덱스 비트를 이용한다. 연산(404)의 제1 반복에서, 블록(Bn -1)을 위한 인덱스 비트는 연산(402)에서 식별되며, 그리고 블록(Bn-1)내 블록(Bn)의 비트 위치는 연산(402)에서 식별된다. 연산(404)의 후속적인 반복에서 블록(Bn -1)을 위한 인덱스 비트가 발생되고 선행하는 연산(404-405)의 반복에서 식별되며, 그리고 블록(Bn-1)내 블록(Bn)의 비트 위치는 선행하는 연산(405)의 반복에서 식별된다. 연산(404)에서 사용된 디코딩 기법은 메모리 셀 내 임의의 고착 고장을 수용하는 연산(311)의 인코딩 기법에서 사용된 인코딩 연산의 역을 수행한다. 연산(404)에서 사용된 디코딩 기법은, 예를 들어, 미합중국 특허 출원 번호 13/649,007 및 13/649,072에 개시된 디코딩 기법들 중 하나일 수 있다.
연산(405)에서, 디코더는 선행하는 연산(404)의 반복에서 발생되는 블록(Bn -1)의 디코딩된 비트 내 제1 log2b 비트에 기초하여 블록(Bn-2)내 블록(Bn -1)의 위치(및 대응하는 비트 위치)를 식별한다. 선행하는 연산(404)의 반복에서 발생된 블록(Bn -1)의 나머지 디코딩된 비트는 블록(Bn -2)을 위한 인덱스 비트이다.
결정 연산(406)에서, 디코더는 블록(Bn -2)이 메모리 셀로부터 판독된 모든 인코딩된 비트를 포함하는지 판단한다. 블록(Bn -2)이 메모리 셀들로부터 판독된 모든 인코딩된 비트를 포함하지 않는다면, 디코더는 연산(407)으로 진행한다. 연산(407)에서, 디코더는 파라미터 n에서 1을 빼고 파라미터 j에 1을 더한다. 그 다음 디코더는 연산(403-406)의 제2 반복을 수행한다. 디코더는 블록(Bn -2)이 가장 큰 블록(B1)과 동일할 때까지 연산(403-407)의 반복을 지속적으로 수행한다.
블록(Bn -2)이 결정 연산(406)에서 메모리 셀들로부터 판독된 모든 인코딩된 비트들을 포함(즉, 블록(Bn-2)이 가장 큰 블록(B1)과 동일)한다면, 디코더는 연산(408)으로 진행한다. 연산(408)에서, 디코더는 디코딩 기법을 이용해 데이터 비트를 재생하기 위해 블록(B1)내 인코딩된 데이터 비트를 디코딩하기 위해 인덱스 비트로서 블록(B2)의 나머지 디코딩된 비트를 사용한다. 연산(408)에서, 블록(B2)의 나머지 디코딩된 비트는 선행하는 연산(405)의 반복에서 발생되며, 그리고 블록(B1)내 인코딩된 데이터 비트는 아직 디코딩되지 않은 블록(B1)내 나머지 인코딩된 비트이다. 연산(408)에서 사용된 디코딩 기법은 연산(306)의 인코딩 기법에서 사용된 인코딩 연산의 역을 수행한다. 연산(408)의 디코딩 기법은 연산(404)에서 사용된 동일한 디코딩 기법일 수 있다.
본 발명의 실시예에 따른, 도 5a 내지 도 5i는 도 3a 내지 도 3b에 도시되고 도 3a 내지 도 3b에 대하여 기술된 인코딩 연산의 예들을 예시한다. 도 5a 내지 도 5i에 대하여 본 명세서에 도시되고 기술된 예들은 단지 예시의 목적을 위해 개시되며 제한하기 위함이 아니다.
도 5a 내지 도 5b는 64개의 메모리 셀의 예시적인 세트를 예시한다. 64개의 메모리 셀은 도 5a 내지 도 5b에 64개의 박스들로서 도시된다. 도 5a 내지 도 5b에 도시된 64개의 메모리 셀 중 15개의 셀은 고착 고장을 갖는다. 도 5a에 박스 위 수직선들은 4, 8 그리고 16개의 메모리 셀들의 세그먼트를 나타낸다. 0으로 표시된 메모리 셀은 고착 0이며, 그리고 1로 표시된 메모리 셀은 고착 1이다. 도 5a 내지 도 5b에 도시된 메모리 셀 중 9개는 고착 1 고장을 가지며, 그리고 도 5a 내지 도 5b에 도시된 메모리 셀 중 6개는 고착 0 고장을 갖는다.
도 5b는 도 3a에 도시된 인코딩 연산(302-305) 동안 64개의 메모리 셀이 어떻게 3개의 블록(B1, B2, 및 B3)으로 분할될 수 있는지 예를 예시한다. 가장 큰 블록(B1)은 모든 64개의 메모리 셀을 포함한다. 블록(B1)은 블록(B2)과 각각 16개의 메모리 셀을 갖는 3개의 서브-블록(B1A, B2B, 및 B1C)을 포함한다. 블록(B2)은 4개의 메모리 셀을 갖는 블록(B3)을 포함한다. 블록(B2)은 고착 고장을 갖는 3개의 메모리 셀을 갖는다. 블록(B3)은 고착 고장을 갖지 않는다.
도 5c는 도 5a에 도시된 메모리 셀 내에 저장하기 위해 제공되는 48개의 데이터 비트의 디지털 값을 예시한다. 블록(B2)의 메모리 셀은 도 3a 내지 도 3b에 대하여 본 명세서에 기술된 기법에 따라 리던던트 비트를 저장하기 위해 예약된다. 따라서, 도 5c에 도시된 48개의 데이터 비트는 서브-블록(B1A, B2B, 및 B1C)내 48개의 대응하는 메모리 셀 내에 저장하기 위해 제공된다.
연산(306)에서, 예를 들어 도 5d에 도시된 바와 같이, 인코더는 48개의 인코딩된 데이터 비트와 10개의 인덱스 비트를 발생시키기 위해 48개의 데이터 비트를 인코딩한다. 도 5d에 도시된 48개의 인코딩된 데이터 비트와 10개의 인덱스 비트는 예로서 제공되는 임의적인 값이며 어떠한 특별한 인코딩 기법에 의해 발생되지 않는다. 48개의 인코딩된 데이터 비트들 각각은 도 5d에서 인코딩된 데이터 비트 바로 위에 존재하는 서브-블록(B1A - B1C)의 48개의 메모리 셀 중 대응하는 메모리 셀에 저장된다. 도 5d에 S로 각각 표시된 인코딩된 데이터 비트는 서브-블록(B1A - B1C) 중 이들의 대응하는 메모리 셀의 고착 고장과 동일한 디지털 값을 갖는다. 따라서 도 5d에 도시된 48개의 인코딩된 데이터 비트는 서브-블록(B1A - B1C)의 48개의 메모리 셀 내에 저장되고 이들 48개의 메모리 셀 내 12개의 알려진 고착 고장에 의해 야기된 에러 없이 서브-블록(B1A - B1C)의 48개의 메모리 셀로부터 판독될 수 있다.
도 5a 내지 도 5i의 예에서, b는 4와 동일하며, 그리고 log2b는 2와 동일하다. 도 5d는 또한 블록(B1)내 16 비트의 제3 세그먼트로서 블록(B2)의 위치를 표시하는 2진 위치 비트(10)의 디지털 값(즉, 십진수 3과 동일)을 도시한다. 블록(B2)의 2개의 위치 비트는 연산(303)에서 발생된다.
도 5e는 가상 고착 고장 값이 연산(310)에 따라서 어떻게 발생될 수 있는지 예를 예시한다. 도 5e에 도시된 바와 같이, XOR 논리 연산은 1의 가상 고착 고장 값을 발생시키기 위해 (긴 점선들로 도시된 바와 같이) 블록(B2)내 제3 메모리 셀의 0, 서브-블록(B1A)내에 저장될 제3 인코딩된 데이터 비트 0, 서브-블록(B1B)내에 저장될 제3 인코딩된 데이터 비트 1, 그리고 서브-블록(B1C)내에 저장될 제3 인코딩된 데이터 비트 0의 고착 고장 값에 대해 수행된다. XOR 논리 연산은 0의 가상 고착 고장 값을 발생시키기 위해 (짧은 점선들로 도시된 바와 같이) 블록(B2)내 제10 메모리 셀의 1, 서브-블록(B1A)내에 저장될 제10 인코딩된 데이터 비트 0, 서브-블록(B1B)내에 저장될 제10 인코딩된 데이터 비트 1, 그리고 서브-블록(B1C)내에 저장될 제10 인코딩된 데이터 비트 0의 고착 고장 값에 대해 수행된다. XOR 논리 연산은 또한 0의 가상 고착 고장 값을 발생시키기 위해 (점선들로 도시되지 않은) 블록(B2)내 제12 메모리 셀의 0, 서브-블록(B1A)내에 저장될 제12 인코딩된 데이터 비트 0, 서브-블록(B1B)내에 저장될 제12 인코딩된 데이터 비트 1, 그리고 서브-블록(B1C)내에 저장될 제12 인코딩된 데이터 비트 1의 고착 고장 값에 대해 수행된다.
연산(311)에서, 도 5f에 도시된 바와 같이, 블록(B2)을 위한 인코딩된 비트와 블록(B2)을 위한 인덱스 비트를 발생시키기 위해 3개의 가상 고착 고장에 기초하여 블록(B2)을 위한 위치 비트와 블록(B1)을 위한 인덱스 비트가 인코딩된다. 도 5f에서 V 아래에 각각 존재하는 블록(B2)을 위한 3개의 인코딩된 비트는 연산(310)에서 발생된 3개의 대응하는 가상 고착 고장 값과 일치한다. 도 5f에 도시된 블록(B2)을 위한 12개의 인코딩된 비트와 2개의 인덱스 비트는 예로서 제공되는 임의적인 값이며 어떠한 특별한 인코딩 기법에 의해 발생되지 않는다.
연산(312)에서, 도 5g에 도시된 바와 같이, 블록(B2)의 메모리 셀 내에 저장될 비트를 발생시키기 위해 서브-블록(B1A - B1C)의 메모리 셀 내에 저장될 인코딩된 데이터 비트와 비트마다의 XOR 논리 연산은 연산(311)에서 발생된 블록(B2)을 위한 인코딩된 비트에 대해 수행된다.
보다 상세하게, 도 5g의 예에서 3개의 비트마다의 XOR 논리 연산은 연산(312)에서 수행된다. 제1 비트마다의 XOR 논리 연산은 제1 16-비트 중간 결과를 발생시키기 위해 서브-블록(B1A)의 메모리 셀 내에 저장될 16개의 인코딩된 데이터 비트와 서브-블록(B1B)의 메모리 셀 내에 저장될 16개의 인코딩된 데이터 비트에 대해 수행된다. 제2 비트마다의 XOR 논리 연산은 제2 16-비트 중간 결과를 발생시키기 위해 제1 16-비트 중간 결과 및 서브-블록(B1C)의 메모리 셀 내에 저장될 16개의 인코딩된 데이터 비트에 대해 수행된다. 도 5g에 도시된 바와 같이, 제3 비트마다의 XOR 논리 연산은 블록(B2)의 메모리 셀 내에 저장될 12 비트를 발생시키기 위해 제2 16-비트 중간 결과의 12 비트와 연산(311)에서 발생된 블록(B2)을 위한 대응하는 12개의 인코딩된 비트에 대해 수행된다.
도 5g에 도시된 16-비트 XOR 결과의 제1 내지 제4 및 제9 내지 제16 비트는 블록(B2)의 대응하는 제1 내지 제4 및 제9 내지 제16 메모리 셀 내에 저장되는 12개의 비트이다. 도 5g에 도시된 제3, 제10 및 제12 비트는, 도 5b에 도시된, 블록(B2)의 제3, 제10 및 제12 메모리 셀의 대응하는 고착 고장 값과 일치한다.
도 5g에 도시된 제5 내지 제8 비트는 연산(312)에서 수행된 제2 비트마다의 XOR 논리 연산의 제2 16-비트 중간 결과의 제5 내지 제8 비트이다. 연산(312)에서 수행된 제2 비트마다의 XOR 논리 연산의 제2 16-비트 중간 결과의 제5 내지 제8 비트는 연산(312)의 제3 비트마다의 XOR 논리 연산에서 사용되지 않는다.
연산(315)에서, 도 5h에 도시된 바와 같이, 비트마다의 XOR 논리 연산들은 블록(B3)의 메모리 셀 내에 저장될 비트를 발생시키기 위해 연산(312)의 XOR 결과들 및 블록(B2)을 위한 인덱스 비트와 조합된 블록(B2)내 블록(B3)의 위치를 표시하는 log2b 비트에 대해 수행된다. 보다 상세하게는, 도 5h의 예에서 4개의 비트마다의 XOR 논리 연산이 연산(315)에서 수행된다. 4개의 비트마다의 XOR 논리 연산들 각각은 4 비트의 두 개 세트에 대해 수행된다.
제1 비트마다의 XOR 논리 연산은 제1 4-비트 중간 결과를 발생시키기 위해 도 5g에 도시된 16-비트 XOR 결과의 제1 내지 제4 비트와 도 5g에 도시된 16-비트 XOR 결과의 제5 내지 제8 비트에 대해 수행된다. 제2 비트마다의 XOR 논리 연산은 제2 4-비트 중간 결과를 발생시키기 위해 연산(315)의 제1 4-비트 중간 결과와 도 5g에 도시된 16-비트 XOR 결과의 제9 내지 제12 비트에 대해 수행된다. 도 5h에 도시된 바와 같이, 제3 비트마다의 XOR 논리 연산은 블록(B3)의 메모리 셀 내에 저장될 4 비트를 발생시키기 위해 연산(315)의 제2 4-비트 중간 결과와 도 5g에 도시된 16-비트 XOR 결과의 제13 내지 제16 비트에 대해 수행된다.
도 5a 내지 5I의 예에서, 블록(B3)은 가장 작은 블록이다. 따라서, 추가적인 연산(310-314)의 반복이 수행되지 않는다. 도 5i에 도시된 바와 같이, 연산(316)에서, 연산(306)에서 발생된 인코딩된 데이터 비트는 서브-블록(B1A - B1C)의 대응하는 메모리 셀 내에 저장된다. 또한, 도 5i에 도시된 바와 같이, 연산(316)에서, 블록(B2)내에 저장될 연산(312)에서 발생된 12 비트는 블록(B2)의 대응하는 메모리 셀 내에 저장되며, 그리고 블록(B3) 내에 저장될 연산(315)에서 발생된 4 비트는 블록(B3)의 대응하는 메모리 셀 내에 저장된다. 도 5a에 대하여 상기 기술된 바와 같이, 메모리 셀 내 1 또는 0으로 표시된 도 5i에 도시된 각각의 메모리 셀은 표시된 값을 갖는 고착 고장을 갖는다. 도 5i에 도시된 바와 같이, 고착 고장을 갖는 메모리 셀 내에 저장될 각각의 비트는 고착 고장과 동일한 디지털 값을 갖는다. 인코딩 프로세스의 단계를 반대로 수행함으로써, 도 4의 디코딩 연산(401-408)이 도 5a 내지 도 5i의 예들에 대해 사용될 수 있다.
본 발명의 실시예는, 예를 들어, 하드웨어, 소프트웨어, 그리고 프로그램 명령을 포함하는 컴퓨터-판독가능 매체 중 하나 또는 이들의 조합을 이용해 구현될 수 있다. 본 발명의 실시예는 컴퓨터상에서 구동될 수 있는 비일시적인 컴퓨터 판독가능 매체 상에 저장된 프로그램 코드로서 구현될 수 있다. 본 발명의 실시예에 의해 구현된 소프트웨어와 본 발명의 결과는 반도체 메모리, 하드 디스크 드라이브, 컴팩트 디스크(CD), 디지털 비디오 디스크(DVD), 또는 기타 매체와 같은 컴퓨터-판독가능 매체 상에 저장될 수 있다. 본 발명의 결과는 프로세서에 의해 실행되거나 처리되고, 사용자에 의해 디스플레이되며, 네트워크 등을 통해 신호로 전송되는 것과 같은 다양한 목적을 위해 사용될 수 있다. 네트워크를 통해 연결된 다수의 컴퓨터 시스템들이 분산 처리에 영향을 주기 때문에, 본 발명의 실시예는 또한 비일시적인 컴퓨터 판독가능 매체 상에 저장된 컴퓨터 판독가능 프로그램 코드 유닛으로서 구현될 수 있다.
본 발명의 예시적인 실시예의 상기 상세한 설명은 예시 및 설명을 위해 제시되었다. 상기 상세한 설명은 발명의 모든 내용을 기술하거나 본 명세서에 개시된 예로 본 발명을 제한하기 위함이 아니다. 몇몇 경우에서, 본 발명의 특징은 설명된 바와 같이 다른 특징의 대응하는 사용 없이 활용될 수 있다. 본 발명의 범주를 벗어나지 않고, 많은 변경, 대체, 그리고 변화가 상기 교시들에 비추어 가능하다.

Claims (20)

  1. 데이터 저장 시스템에 있어서,
    메모리 셀을 포함하는 메모리 회로; 및
    상기 메모리 셀 내에 저장하기 위해 제공된 데이터 비트를 수신하도록 동작하는 제어 회로를 포함하며,
    제1 고착 고장(stuck-at fault)을 갖는 제1 서브세트의 메모리 셀 내에 저장하기 위해 선택된 인코딩된 데이터 비트가 상기 제1 고착 고장의 디지털 값을 갖도록 상기 제어 회로가 제1 세트의 리던던트 비트(redundant bit)와 상기 인코딩된 데이터 비트를 발생시키기 위해 상기 데이터 비트를 인코딩하도록 동작하고,
    상기 제어 회로는 제2 세트의 리던던트 비트를 발생시키기 위해 상기 제1 세트의 리던던트 비트를 인코딩하도록 동작하고,
    제2 고착 고장을 갖는 제2 서브세트의 메모리 셀 내에 저장하기 위해 선택된 제3 세트의 리던던트 비트 내 리던던트 비트가 상기 제2 고착 고장의 디지털 값을 갖도록 상기 제어 회로가 상기 제3 세트의 리던던트 비트를 발생시키기 위해 상기 제2 세트의 리던던트 비트와 상기 인코딩된 데이터 비트에 대해 논리 연산을 수행하도록 동작하는,
    데이터 저장 시스템.
  2. 제1항에 있어서,
    상기 제어 회로가 상기 제2 고착 고장의 디지털 값과 상기 제2 고착 고장에 대응하는 상기 인코딩된 데이터 비트의 서브세트에 대해 논리 연산을 수행함으로써 가상 고착 고장 값들을 발생시키도록 동작하며,
    상기 제어 회로가 상기 가상 고착 고장 값을 수용하기 위해 상기 제2 세트의 리던던트 비트를 발생시키도록 상기 제1 세트의 리던던트 비트를 인코딩하게끔 동작하는,
    데이터 저장 시스템.
  3. 제1항에 있어서,
    상기 제어 회로가 상기 제3 세트의 리던던트 비트를 발생시키기 위해 상기 제2 세트의 리던던트 비트와 상기 인코딩된 데이터 비트에 대해 비트마다의(bitwise) XOR 논리 연산을 수행하도록 동작하는,
    데이터 저장 시스템.
  4. 제1항에 있어서,
    상기 제어 회로가 제3 서브세트의 메모리 셀 내에 저장될 제5 세트의 리던던트 비트를 발생시키기 위해 상기 제3 세트의 리던던트 비트와 제4 세트의 리던던트 비트에 대해 논리 연산을 수행하도록 동작하는,
    데이터 저장 시스템.
  5. 제1항에 있어서,
    상기 제어 회로가 제3 서브세트의 메모리 셀 내에 저장될 제5 세트의 리던던트 비트를 발생시키기 위해 상기 제3 세트의 리던던트 비트와 제4 세트의 리던던트 비트에 대해 비트마다의 XOR 논리 연산을 수행하도록 동작하고,
    상기 제어 회로가 상기 제2 세트의 리던던트 비트와 제6 세트의 리던던트 비트를 발생시키기 위해 상기 제1 세트의 리던던트 비트를 인코딩하도록 동작하며, 상기 제4 세트의 리던던트 비트는 상기 제6 세트의 리던던트 비트와 상기 제3 서브세트의 메모리 셀의 위치를 표시하는 비트를 포함하는,
    데이터 저장 시스템.
  6. 제1항에 있어서,
    상기 인코딩된 데이터 비트와 상기 제3 세트의 리던던트 비트는 상기 메모리 셀 중 선택된 메모리 셀 내에 저장하기 위해 제공되는,
    데이터 저장 시스템.
  7. 제6항에 있어서,
    상기 제어 회로가 상기 제2 세트의 리던던트 비트를 발생시키기 위하여 상기 제3 세트의 리던던트 비트를 저장하기 위해 선택된 상기 메모리 셀의 위치를 표시하는 비트와 상기 제1 세트의 리던던트 비트를 인코딩하도록 동작하는,
    데이터 저장 시스템.
  8. 데이터 저장 시스템에 있어서,
    메모리 셀을 포함하는 메모리 회로; 및
    상기 메모리 셀로부터 판독된 인코딩된 비트 - 상기 인코딩된 비트는 상기 메모리 셀 내의 고착 고장을 수용함 - 를 수신하도록 동작하는 제어 회로를 포함하며,
    상기 제어 회로가 제1 중간 비트를 발생시키기 위해 제1 세트들의 상기 인코딩된 비트에 대해 비트마다의 논리 연산을 수행하도록 동작하고,
    상기 제어 회로가 제2 중간 비트를 발생시키기 위해 제2 세트들 - 상기 제2 세트들 각각은 상기 제1 세트들 각각보다 많은 비트를 가짐 - 의 인코딩된 비트에 대해 상기 비트마다의 논리 연산을 수행하도록 동작하며,
    상기 제어 회로가 제1 디코딩된 비트를 발생시키기 위해 상기 제1 중간 비트를 이용해 상기 제2 중간 비트를 디코딩하도록 동작하며,
    상기 제어 회로가 디코딩된 데이터 비트를 발생시키기 위해 상기 제1 디코딩된 비트를 이용해 제1 서브세트의 상기 인코딩된 비트를 디코딩하도록 동작하는,
    데이터 저장 시스템.
  9. 제8항에 있어서,
    상기 비트마다의 논리 연산은 비트마다의 XOR 논리 연산인,
    데이터 저장 시스템.
  10. 제8항에 있어서,
    제1 서브세트의 제1 중간 비트는 상기 제1 디코딩된 비트를 발생시키기 위해 제2 서브세트의 제1 중간 비트를 이용해 디코딩되지 않은 상기 제2 중간 비트 내 비트의 위치를 표시하는,
    데이터 저장 시스템.
  11. 제9항에 있어서,
    제1 서브세트의 제1 디코딩된 비트는 상기 디코딩된 데이터 비트를 발생시키기 위해 디코딩되지 않은 제2 서브세트의 인코딩된 비트 내 비트의 위치를 표시하며,
    제2 서브세트의 제1 디코딩된 비트는 상기 디코딩된 데이터 비트를 발생시키기 위하여 상기 제1 서브세트의 인코딩된 비트를 디코딩하기 위해 사용되는,
    데이터 저장 시스템.
  12. 제8항에 있어서,
    상기 제2 세트들 각각은 b개의 비트를 가지며, b는 0이 아닌 양의 정수이며,
    상기 제1 세트들 각각은 b2개의 비트를 갖는,
    데이터 저장 시스템.
  13. 데이터 저장 시스템에 의해 수행되는 방법에 있어서,
    상기 데이터 저장 시스템 내의 메모리 회로의 메모리 셀 내에 저장하기 위해 제공되는 데이터 비트를 수신하는 단계;
    제1 고착 고장을 갖는 제1 서브세트의 상기 메모리 셀 내에 저장하기 위해 선택된 인코딩된 데이터 비트가 상기 제1 고착 고장의 디지털 값을 갖도록 제1 세트의 리던던트 비트와 인코딩된 데이터 비트들을 발생시키기 위해 상기 데이터 비트를 인코딩하는 단계;
    제2 세트의 리던던트 비트를 발생시키기 위해 상기 제1 세트의 리던던트 비트를 인코딩하는 단계; 및
    제2 고착 고장을 갖는 제2 서브세트의 상기 메모리 셀 내에 저장하기 위해 선택된 제3 세트의 리던던트 비트 내 리던던트 비트가 상기 제2 고착 고장의 디지털 값을 갖도록 제3 세트의 리던던트 비트를 발생시키기 위해 상기 제2 세트의 리던던트 비트와 상기 인코딩된 데이터 비트에 대해 논리 연산을 수행하는 단계를 포함하는,
    데이터 저장 시스템에 의해 수행되는 방법.
  14. 제13항에 있어서,
    상기 제2 고착 고장의 상기 디지털 값과 상기 제2 고착 고장에 대응하는 서브세트의 상기 인코딩된 데이터 비트에 대해 논리 연산을 수행함으로써 가상 고착 고장 값을 발생시키는 단계를 더 포함하되,
    제2 세트의 리던던트 비트를 발생시키기 위해 상기 제1 세트의 리던던트 비트를 인코딩하는 단계는 상기 가상 고착 고장 값을 수용하기 위해 상기 제2 세트의 리던던트 비트를 발생시키도록 상기 제1 세트의 리던던트 비트를 인코딩하는 단계를 포함하는,
    데이터 저장 시스템에 의해 수행되는 방법.
  15. 제13항에 있어서,
    제3 세트의 리던던트 비트를 발생시키기 위해 상기 제2 세트의 리던던트 비트와 상기 인코딩된 데이터 비트에 대해 논리 연산을 수행하는 단계는 상기 제3 세트의 리던던트 비트를 발생시키기 위해 상기 제2 세트의 리던던트 비트와 상기 인코딩된 데이터 비트에 대해 비트마다의 XOR 논리 연산을 수행하는 단계를 포함하는,
    데이터 저장 시스템에 의해 수행되는 방법.
  16. 제13항에 있어서,
    제3 서브세트의 상기 메모리 셀 내에 저장될 제5 세트의 리던던트 비트를 발생시키기 위해 상기 제3 세트의 리던던트 비트와 제4 세트의 리던던트 비트에 대해 비트마다의 XOR 논리 연산을 수행하는 단계를 더 포함하는,
    데이터 저장 시스템에 의해 수행되는 방법.
  17. 제16항에 있어서,
    제2 세트의 리던던트 비트를 발생시키기 위해 상기 제1 세트의 리던던트 비트를 인코딩하는 단계는 상기 제2 세트의 리던던트 비트와 제6 세트의 리던던트 비트를 발생시키기 위해 상기 제1 세트의 리던던트 비트를 인코딩하는 단계를 포함하며, 상기 제4 세트의 리던던트 비트는 상기 제3 서브세트의 메모리 셀의 위치를 표시하는 비트와 상기 제6 세트의 리던던트 비트를 포함하는,
    데이터 저장 시스템에 의해 수행되는 방법.
  18. 제13항에 있어서,
    제2 세트의 리던던트 비트를 발생시키기 위해 상기 제1 세트의 리던던트 비트를 인코딩하는 단계는 상기 제2 세트의 리던던트 비트를 발생시키기 위하여 상기 제3 세트의 리던던트 비트를 저장하도록 선택된 상기 메모리 셀의 위치를 표시하는 비트와 상기 제1 세트의 리던던트 비트를 인코딩하는 단계를 포함하며,
    상기 방법은 제어 회로에 의해 수행되는,
    데이터 저장 시스템에 의해 수행되는 방법.
  19. 데이터 저장 시스템에 의해 수행되는 방법에 있어서,
    상기 데이터 저장 시스템 내 메모리 회로의 메모리 셀로부터 판독된 인코딩된 비트 - 상기 인코딩된 비트는 상기 메모리 셀 내의 고착 고장을 수용함 - 를 수신하는 단계;
    제1 중간 비트를 발생시키기 위해 제1 세트들의 상기 인코딩된 비트에 대해 비트마다의 논리 연산을 수행하는 단계;
    제2 중간 비트를 발생시키기 위해 제2 세트들 - 상기 제2 세트들 각각은 상기 제1 세트들 각각보다 많은 비트를 가짐 - 의 상기 인코딩된 비트에 대해 비트마다의 논리 연산을 수행하는 단계;
    제1 디코딩된 비트를 발생시키기 위해 상기 제1 중간 비트를 이용해 상기 제2 중간 비트를 디코딩하는 단계; 및
    디코딩된 데이터 비트를 발생시키기 위해 상기 제1 디코딩된 비트를 이용해 제1 서브세트의 상기 인코딩된 비트를 디코딩하는 단계를 포함하는,
    데이터 저장 시스템에 의해 수행되는 방법.
  20. 제19항에 있어서,
    상기 제1 세트와 상기 제2 세트의 인코딩된 비트에 대해 수행된 상기 비트마다의 논리 연산은 비트마다의 XOR 논리 연산이고,
    제1 서브세트의 상기 제1 중간 비트는 상기 제1 디코딩된 비트를 발생시키기 위해 제2 서브세트의 상기 제1 중간 비트를 이용해 디코딩되지 않은 상기 제2 중간 비트 내 비트의 위치를 표시하며,
    제1 서브세트의 상기 제1 디코딩된 비트는 상기 디코딩된 데이터 비트를 발생시키기 위해 디코딩되지 않은 제2 서브세트의 상기 인코딩된 비트 내 비트의 위치를 표시하며,
    제2 서브세트의 상기 제1 디코딩된 비트는 상기 디코딩된 데이터 비트를 발생시키기 위해 상기 제1 서브세트의 인코딩된 비트를 디코딩하도록 사용되고,
    상기 방법은 제어 회로에 의해 수행되는,
    데이터 저장 시스템에 의해 수행되는 방법.
KR1020130119756A 2012-10-10 2013-10-08 고착 고장을 갖는 메모리 셀을 수용하기 위한 리던던트 비트의 인코딩 및 디코딩 KR101543081B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/649,108 2012-10-10
US13/649,108 US9070483B2 (en) 2012-10-10 2012-10-10 Encoding and decoding redundant bits to accommodate memory cells having stuck-at faults

Publications (2)

Publication Number Publication Date
KR20140046381A KR20140046381A (ko) 2014-04-18
KR101543081B1 true KR101543081B1 (ko) 2015-08-07

Family

ID=49630297

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130119756A KR101543081B1 (ko) 2012-10-10 2013-10-08 고착 고장을 갖는 메모리 셀을 수용하기 위한 리던던트 비트의 인코딩 및 디코딩

Country Status (5)

Country Link
US (1) US9070483B2 (ko)
JP (1) JP2014078237A (ko)
KR (1) KR101543081B1 (ko)
DE (1) DE102013016694B4 (ko)
GB (1) GB2507414B (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8812934B2 (en) * 2012-12-12 2014-08-19 HGST Netherlands B.V. Techniques for storing bits in memory cells having stuck-at faults
CN104658608B (zh) 2013-11-22 2018-03-06 华为技术有限公司 存储设备的写入方法及写入装置
KR102389722B1 (ko) * 2017-11-29 2022-04-25 에스케이하이닉스 주식회사 반도체 메모리 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004362587A (ja) 2003-06-04 2004-12-24 Hewlett-Packard Development Co Lp メモリシステム

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3949208A (en) 1974-12-31 1976-04-06 International Business Machines Corporation Apparatus for detecting and correcting errors in an encoded memory word
US6868022B2 (en) 2003-03-28 2005-03-15 Matrix Semiconductor, Inc. Redundant memory structure using bad bit pointers
US7069494B2 (en) * 2003-04-17 2006-06-27 International Business Machines Corporation Application of special ECC matrix for solving stuck bit faults in an ECC protected mechanism
US7533321B2 (en) * 2005-09-13 2009-05-12 International Business Machines Corporation Fault tolerant encoding of directory states for stuck bits
US8144037B2 (en) 2007-07-12 2012-03-27 Intellectual Ventures Fund 44 Llc Blocking for combinatorial coding/decoding for electrical computers and digital data processing systems
EP2291846A1 (en) 2008-06-11 2011-03-09 Nxp B.V. Phase change memory device and control method
US8331168B2 (en) 2009-04-30 2012-12-11 International Business Machines Corporation Increased capacity heterogeneous storage elements
US8412987B2 (en) 2009-06-30 2013-04-02 Micron Technology, Inc. Non-volatile memory to store memory remap information
WO2011030410A1 (ja) 2009-09-09 2011-03-17 株式会社 東芝 メモリ装置
US8255742B2 (en) 2009-11-18 2012-08-28 Microsoft Corporation Dynamically replicated memory
US8839053B2 (en) 2010-05-27 2014-09-16 Microsoft Corporation Error correcting pointers for non-volatile storage
US8352839B2 (en) 2010-06-11 2013-01-08 International Business Machines Corporation Encoding data into constrained memory
US8634235B2 (en) 2010-06-25 2014-01-21 Macronix International Co., Ltd. Phase change memory coding
US8479062B2 (en) * 2010-12-03 2013-07-02 International Business Machines Corporation Program disturb error logging and correction for flash memory
US8589762B2 (en) * 2011-07-05 2013-11-19 International Business Machines Corporation Adaptive multi-bit error correction in endurance limited memories
US8996955B2 (en) 2011-11-16 2015-03-31 HGST Netherlands B.V. Techniques for storing data in stuck and unstable memory cells
US9235465B2 (en) * 2012-06-06 2016-01-12 University of Pittsburgh—of the Commonwealth System of Higher Education Recursively determined invertible set approach to correct multiple stuck-at faults in rewritable memory

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004362587A (ja) 2003-06-04 2004-12-24 Hewlett-Packard Development Co Lp メモリシステム

Also Published As

Publication number Publication date
DE102013016694B4 (de) 2020-07-09
GB201317709D0 (en) 2013-11-20
GB2507414A (en) 2014-04-30
KR20140046381A (ko) 2014-04-18
JP2014078237A (ja) 2014-05-01
GB2507414B (en) 2014-12-10
US20140101517A1 (en) 2014-04-10
US9070483B2 (en) 2015-06-30
DE102013016694A1 (de) 2014-04-10

Similar Documents

Publication Publication Date Title
KR101618925B1 (ko) 고착 고장을 갖는 메모리 셀에 비트를 저장하기 위한 기법
KR101519626B1 (ko) 반도체 메모리 장치 및 그것의 데이터 처리 방법
US8996955B2 (en) Techniques for storing data in stuck and unstable memory cells
US9213602B1 (en) Write mapping to mitigate hard errors via soft-decision decoding
CN102017425B (zh) 用于执行级联纠错的方法和系统
JP5805727B2 (ja) 縮退故障を有するメモリセルに対応するためのデータ符号化及び復号化
KR101543081B1 (ko) 고착 고장을 갖는 메모리 셀을 수용하기 위한 리던던트 비트의 인코딩 및 디코딩
US8429508B2 (en) Data storage apparatus with encoder and decoder
KR101320684B1 (ko) 연접 비씨에이치 부호, 복호 및 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치의 오류 정정 회로 및 플래쉬 메모리 장치
US8627183B1 (en) Systems and methods for storing variable rate product codes
KR101566088B1 (ko) 조합 숫자 시스템을 사용한 인코딩 및 디코딩 기법
US8239726B2 (en) Apparatuses and methods for encoding and decoding
KR20140125987A (ko) 인코더, 디코더 및 이를 포함하는 반도체 장치
US20210058097A1 (en) Memory system and method for controlling non-volatile memory
JP2005011386A (ja) 誤り訂正装置
TWI486963B (zh) 錯誤檢查及校正方法以及錯誤檢查及校正電路
KR101355982B1 (ko) 연접 비씨에이치 부호, 복호 및 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치의 오류 정정 회로 및 플래쉬 메모리 장치
KR101172672B1 (ko) 부호길이 동기화가 적용된 메모리 장치 및 이의 부호길이 동기화 방법
KR20140006445A (ko) 연접 비씨에이치 부호, 복호 및 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치의 오류 정정 회로 및 플래쉬 메모리 장치

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: 20180628

Year of fee payment: 4