KR20140032945A - 불완전한 오류 특성을 갖는 채널 및 메모리를 위한 오류 감지 및 정정 코드 - Google Patents

불완전한 오류 특성을 갖는 채널 및 메모리를 위한 오류 감지 및 정정 코드 Download PDF

Info

Publication number
KR20140032945A
KR20140032945A KR1020137012736A KR20137012736A KR20140032945A KR 20140032945 A KR20140032945 A KR 20140032945A KR 1020137012736 A KR1020137012736 A KR 1020137012736A KR 20137012736 A KR20137012736 A KR 20137012736A KR 20140032945 A KR20140032945 A KR 20140032945A
Authority
KR
South Korea
Prior art keywords
code
channel
error
symbol
word
Prior art date
Application number
KR1020137012736A
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 KR20140032945A publication Critical patent/KR20140032945A/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/47Error detection, forward error correction or error protection, not provided for in groups H03M13/01 - H03M13/37
    • H03M13/49Unidirectional error detection or correction
    • 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
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/033Theoretical methods to calculate these checking codes
    • H03M13/036Heuristic code construction methods, i.e. code construction or code search based on using trial-and-error
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • H03M13/353Adaptation to the channel

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

본 발명은 제 1 및 제 2 단부를 갖는 채널에 관한 것이다. 채널의 제 1 단부는 송신기에 결합된다. 채널은 제 1 단부로부터 제 2 단부에 심볼 세트로부터 선택된 심볼을 송신할 수 있다. 채널은 불완전 오류 도입 특성을 나타낸다. 코드는 코드 워드의 세트를 포함한다. 코드 워드의 세트의 요소는 하나 이상의 코드 심볼 길이가 된다. 코드 심볼은 심볼 세트의 구성요소가 된다. 채널의 오류 도입 특성을 고려한 코드 워드의 세트의 요소들 사이의 최소 변경 해밍 간격은, 코드 워드의 세트의 요소들 간의 최소 해밍 거리보다 크다. 메모리 장치, 채널을 사용하는 방법, 코드를 생성하는 방법 또한 기재된다.

Description

불완전한 오류 특성을 갖는 채널 및 메모리를 위한 오류 감지 및 정정 코드{ERROR DETECTION AND CORRECTION CODES FOR CHANNELS AND MEMORIES WITH INCOMPLETE ERROR CHARACTERISTICS}
본 발명은 저장 및 통신 응용에 적용되는 오류 감지 및 정정 코드에 관한 것이며, 더욱 구체적으로, 가능한 오류가 저장된 또는 통신된 테이터에 관련되는 환경에서 오류를 효율적으로 감지하고 및/또는 정정하기 위한 방법, 장치 및 시스템에 관한 것이다.
데이터내에 오류를 도입하는 물리적이고 전기적인 현상에 직면하여, 오류가 저장되거나 통신되는 데이터에 도입되는 확률을 줄이기 위하여, 오류 감지 및 정정 코드가 전자 시스템에서 사용되어왔다. 예컨대, 도 1은 통신 시스템의 전형적인 개념화를 도시한다. 통신 시스템의 기초가 되는 모델은, 직렬 데이터 스트림이 소스(101)로부터 목적지(109)로 보내질 필요가 있는 모델이다. 소스 데이터는 먼저, 원래 직렬 소스 데이터 스트림(X) 내에서 임의의 리던던시를 제거함으로써 원래 직렬 소스 데이터 스트림(X)을 압축하는 소스 인코더(102)를 통과한다. 채널 인코더(103)는 제어되고 체계적인 방식으로 리던던시를 추가하여, 채널 인코더(103)와 채널 디코더(107) 사이에 도입된 임의의 오류를 감지하는 것을 되도록이면 이러한 오류를 정정하는 옵션을 갖고 용이하게 한다. 이 오류는 불완전한 채널(105)에 의해 일반적으로 도입되는 것으로 가정되며, 이 채널은 노이즈 또는 다른 물리적이거나 전기적인 현상으로 인하여, 채널(105)로부터 나오는 심볼 스트림(r')이 채널(105)내에 들어가는 심볼 스트림(v')과 상이하게끔 한다. 이로써, 채널 인코더(103)는 오류 정정 코드(ECC)를 데이터 스트림 내에 전형적으로 도입한다.
채널 변조기(104)는, 들어오는 비트 스트림(v)을 채널(105)의 전기 신호로 바꾸고자 한다. 2진(binary) 디지털 채널의 경우, 변조기는 복잡하지 않다 - 이것은 일반적으로 인코딩된 데이터 스트림(v)을 채널에 대하여 직접적이고 변하지 않게 전달하여 v'=v 이다. 그러나 2개 이상의 요소를 갖는 심볼 세트로부터 선택된 심볼을 한번에 하나씩 전하는 채널이 존재한다. 예컨대, 통신 채널이 각각의 데이터 송신 시간 기간 동안 4개의 전압 중 하나를 보낼 수 있는 경우, 심볼 세트의 크기는 4가 된다. 일반적으로, 송신된 심볼(v'[j])은 심볼의 세트(S={ s 0 , s 1 , s 2 ,... s l })로부터 선택되고, 심볼 세트의 크기는 l이 된다. 당업자는, 이러한 다수의 채널이 존재하고, 특히, 예컨대 이러한 채널은 위상 편이 방식(PSK) 진폭 변조 및 멀티 비트 퍼 셀(multi-bit-per-cell) 플래시 또는 DRAM 메모리를 사용하는 것을 이해한다. 이러한 경우에, 채널 변조기(104)는 2 비트의 입력 스트림(v)을 취하여, 심볼 스트림(v')의 하나의 심볼을 선택한다. 2진 디지털 채널의 경우, 심볼 스트림(v')을 형성하는 심볼 - 전류, 전압, 전하 또는 다른 수량에 의해 표시되든지 간에 - 은 2진 숫자 0 및 1과 쉽게 관련된다. 2진 채널에 있어서, 심볼 세트의 크기(
Figure pct00001
)는 2이다. 이러한 관련성을 고려하고, 상기 표시된 바와 같이, 이러한 경우에, 다른 관계가 가능하지만, 일반적으로 v'v와 동일한 것으로 보여질 수 있다. 하나의 공통적인 대안은, 예컨대, v'v의 보수와 동일한 것이다.
심볼 세트(S)의 크기에 관계없이, 노이즈 또는 그 밖에 채널에 도입된 유도된 오류는 하나의 통신되고 또는 저장된 심볼을 다른 하나의 심볼로 변경시킬 것이며, 이는 이하에서 기재될 것이다.
채널 복조기(106)의 역할은, 수신된 심볼 스트림(r')을 2진 수신된 인코딩된 데이터 스트림(r)으로 변환하는 것이다. 어떤 오류가 채널에 의해 심볼 스트림내에 도입되는가에 따라서, 수신된 인코딩된 데이터 스트림(r)은 비록 아마도 그러나 반드시 그렇지는 않지만 시간적으로 시프트 되더라도인코딩된 데이터 스트림(v)의 비슷하되 완전하지 않은 복사품이다. 시간 시프트의 양은 채널이 통신 채널인지에 달려 있으며, 이 경우, 시간 지연은 변조기(104), 채널(105) 및 복조기(106)를 통한 전파 지연과 동일하다. 채널이 메모리 장치인 경우, vr 간의 시간 시프트는, 메모리가 제조될 때 심볼 스트림(v')이 메모리에 임베드되는 경우(예컨대 CD 및 DVD와 같은 경우)에 특히 상당할 수 있다.
채널 디코더(107)의 역할은 정정된 데이터 스트림(w)을 생성하기 위해 채널 인코더(103)에 의해 도입된 리던던시를 제거하는 것이다. 오류 정정 코드가 연상되는 채널의 특성을 염두해두고 설계되는 경우, 수신된 심볼 스트림(r')에 도입되는 오류가 제거되어서, 디코딩된 데이터 스트림(w)의 어느 비트라도 압축된 데이터 스트림(u)의 상응하는 비트와 일치하는, 매우 높은 확률이 존재한다. 일부 오류 정정 코드는 정정이 불가능한 일부 오류의 클래스를 감지할 수 있다. 이러한 코드가 주기적으로 수신된 심볼 스트림의 감지가능하되 정정불가능한 오류가 존재하는 곳에서 사용될 때, 정정된 데이터 스트림은 오류가 있는(erroneous)것으로 알려지고, 이것의 인식은 일반적으로 제어 메커니즘에 통신되어, 오류가 있는 정정 데이터가 정보가 재생산되고 및/또는 재전송될 때까지 사용되는 것을 방지한다.
이 프로세스의 최종 단계는 소스 디코더(108)이며, 이것은 소스 인코더(102)에 의해 데이터 스트림 상에서 수행되는 데이터 압축을 해제하여, 소스 데이터 스트림(x)과 이상적으로 일치하는 최종 수신된 데이터 스트림(x')을 생산한다. 그러나, 다수의 통신 및 메모리 시스템은 소스 인코더/소스 디코더 쌍을 포함하지 않는다. 이러한 환경에서, 채널 인코더(103)에 대한 입력은 처리되지 않은 소스 데이터 스트림이 되고, 채널 디코더(107)의 출력은 데이터의 목적지(109)로 보내지는 최종 수신된 데이터 스트림(x')이 될 수 있다.
도 2는 통신 또는 저장 시스템의 단순화된 도면을 도시하며, 이 시스템에는, 소스 인코더 또는 소스 디코더가 존재하지 않고, 채널은 2진 디지털 채널이므로 송신된 심볼은 인코딩된 데이터 스트림 비트와 동일한 것이다. 그러므로, 채널 변조기 및 복조기는 전체 시스템에 대한 중요도(significance)를 가지지 않는, 효과적으로 통과하는 장치이다. 결과적으로, 중요도의 블록만이 채널 인코더(202) 및 채널 디코더(204)가 된다. 이 도면에서, 채널(203)은 2진 가산에 의해 표시되고, 이것은 단일 배타적 OR 게이트와 기능적으로 동등하다. 채널 및 오류의 이러한 개념화에서, 오류 스트림(e)은 인코딩된 데이터 스트림(v)과 동일한 길이의 2진 비트 스트림이다. 오류 스트림에서의 1은 오류가 이 비트 위치에서 채널에 의해 데이터 스트림내에 주입되는 것을 의미한다. 2진 가산 기능의 특성은, 오류의 존재가 데이터 스트림의 0을 1로 그리고 그 반대로 변경하는 것이다. 채널의 이러한 개념화에서, 오류는, 오류 스트림의 1이 인코딩된 데이터 스트림의 상응하는 위치에서의 데이터 비트가 0 또는 1인지에 관계 없이 오류를 유발한다는 점에 있어서 데이터와 독립적이다. 게다가, 오류가 도입될 확률은 하나의 심볼에서 다음까지 일정한 것으로 간주된다. 채널의 이러한 형식은 2진 대칭 채널(BSC)로 지칭된다. 1 비트 위치의 오류의 확률이 이전 비트 위치에서 발생한 오류의 확률과 관련되는 개념을 포함하는 다른 채널 모델도 존재한다. 이러한 채널은 메모리를 가지기 위한 것이며 이 채널은 가까이 이격된 오류의 버스트(burst)를 경험한다.
도 3은 도 1의 일반적인 통신 시스템의 다른 단순화를 도시하며, 이러한 경우에 용어의 명칭은 스토리지 응용을 반영하기 위하여 변경된다. 이러한 응용에서, 통신 채널은 메모리 장치(303)에 의해 교체된다. 메모리 장치는 예컨대 하나 이상의 CD 또는 DVD와 같은 물리적으로 정적인 장치, 반도체 메모리와 같은 동적인 장치, 예컨대, 다이나믹 랜덤 액세스 메모리(DRAMs), 플래쉬 메모리 또는 읽기 전용 메모리(ROM); 또는 그 기능이 부분적으로 시간의 기간 동안 정보를 저장하기 위한 다른 방식의 장치도 될 수 있다. 이러한 개념화에서, 채널 인코더는 ECC 인코더(302)로 불린다. 인코딩된 데이터 스트림은 제조시 한번, 필드에서 한번 메모리 장치로 기록되거나 장치가 사용될 때 반복적으로 기록된다. 수신된 데이터 스트림(r)은 일반적으로 메모리 장치의 상세에 따라 하나의 종류 또는 또 다른 종류의 판독 동작을 통해 메모리 장치로부터 회수된다. 랜덤 액세스 메모리 장치의 경우, 데이터는 기록된 순서대로 회수될 필요가 없고, 기록 심볼 및 판독 심볼 간의 관계는 암시적으로나 명시적으로나 제공된 어드레스에 의한 것이다. ECC 디코더는 메모리 컨트롤러 내에서 또는 메모리 장치 집적 회로내에서 또는 개별장치 사이 어디서든 또는 메모리 컨트롤러와 데이터 목적지 사이에서 제한 없이 상주할 수 있음 이해하게 될 것이다.
메모리 장치는 일반적으로 메모리 셀에 정보를 저장한다. 대부분의 메모리 형태는 각각의 메모리 셀에 단일 비트의 정보를 저장한다. 이러한 장치에 있어서, 심볼 세트는 2진 숫자 0 및 1의 세트이고, 상응하는 채널 변조기가 존재하지 않는다. 다양한 반도체 메모리 형태에서, 메모리 셀에 인코딩된 데이터 비트(v[i])를 운반하는 신호 경로를 따라 존재하는 반전(inversion)이 존재하여 저장된 심볼은 어떤 면에서는 일부 또는 모든 스토리지 셀에 대한 디코딩된 데이터 비트로부터 반전된다는 예외가 있다.
또한, 상업적으로 이용가능하고 선행 기술의 문헌에서 제안된, 메모리 장치가 또한 존재하며, 이것은 각각의 메모리 로케이션의 더 큰 심볼 세트로부터 심볼을 저장한다. 예컨대, 다수의 멀티-레벨 플래시 메모리 장치는 각각의 메모리 셀을 4개의 레벨 중 하나로 프로그래밍하고, 이로써 각각의 메모리 로케이션에 2 비트에 달하는 인코딩된 데이터 스트림을 저장한다. 이러한 장치에 있어서, 채널 변조기 및 채널 복조기에 상응하는 것 - 인코딩된 데이터 비트와 저장된 심볼 사이의 맵핑 뿐만 아니라 저장된 심볼과 수신된 데이터 스트림(r[i])으로부터 판독되는 비트 사이의 상응하는 맵핑을 관리하는 회로 또는 알고리즘 - 은, 메모리 장치를 판독 및 기록하는 것에 대한 책임이 있는 메모리 컨트롤러의 부분이다.
당업자는, 오류 정정 코드 및 채널 변조 기법이 특정 채널의 오류 특성을 염두해두고 설계되고, 임의의 특정 메모리 또는 통신 시스템을 설계하기 위한 것으로부터 선택하기 위한 매우 다양한 코드 형태가 존재하는 것을 이해할 것이다. 오류 정정 코드는 일반적으로 정정된 데이터 스트림(w)의 오류 확률을 0으로 줄일 수 없다. 대신에, 이 코드는 단순히 특정 주관적으로 용인가능한 오류 비율보다 낮은 레벨로 이 확률을 실질적으로 감소시킨다.
도 4는 상기 도 2를 참조하여 기재된 바와 같이, 2진 대칭 채널의 확률 천이 다이어그램을 도시한다. 2진 대칭 채널은 채널을 통해 채널 디코더에 인코딩된 데이터 스트림(v[i])의 비트를 수신된 데이터 스트림(r[i])의 비트로서 전달한다. 오류가 도입되면, 즉 r[i]v[i]와 상이한 임의의 비트 위치에서의 확률은 p이고, 그러므로 비트가 채널에 의해 비오유로 통과할 확률은 l-p이다. 채널은 오류의 확률이 인코딩된 데이터 비트가 0 또는 1인지의 여부에 관계없이 동일하다는 점에서 대칭이다.
다수의 정보 및 코딩 이론은 2진 대칭 채널 모델에 내재하는 가정을 기반으로 한다. 그러나, 실제로, 다수의 통신 채널 및 메모리 장치는 자신의 오류 특성에 관하여 2진이 아니거나 대칭이 아니다. 실제로, 오류가 수신된 데이터 스트림(r)내에 주입되도록 유도하는 다수의 현상은 채널에서의 상이한 심볼 상에서 우선적으로 동작한다. 예컨대, 2진 채널의 특성이, 하나의 심볼이 항상 오류 없이 통과하는 반면에 다른 심볼은 확률(p)을 갖는 제 1 심볼로 변경되는 것이라면, 이 채널은 Z-채널로 지칭되는 것이다. 도 5는 이러한 채널을 위한 확률 천이 다이어그램을 도시하고, 여기서 0은 항상 변하지 않고 통과하는 반면에 1은 확률(p)을 갖고 0으로 변화한다. 모든 오류가 가능한 것은 아닌 오류 확률 천이 다이어그램(도 5에서와 같이, 여기서 0으로부터 1로의 오류는 가능하지 않거나 고려되지 않기에 충분히 가능성이 없음)은 불완전한 것으로 불린다. 일부 형태의 오류 천이만 생성하되 다른 종류는 생성하지 않는 오류 주입 메커니즘을 갖는 채널 및 메모리는 유사하게 불완전한 것으로 불린다.
도 6은 또 다른 불완전한 채널을 위한 확률 천이 다이어그램을 도시한다. 이런 경우에, 채널은 3개의 심볼로 구성된 심볼 세트로부터 선택된 하나의 심볼을 한번에 보내는 것이 가능하다. 3개의 심볼을 운반하기 위해 사용된 물리적 또는 전기적 특성은 채널의 오류 특성의 추상 분석에 관련되지 않으므로, 심볼은 a, bc로 간단하게 라벨링된다. 이러한 심볼은 특히 상이한 전압, 전류, 전하 또는 상태에 의해 표시될 수 있다. 예컨대, 심볼 a는 양의 전압에 의해 표시될 수 있고, 심볼 c는 음의 전압에 의해 표시될 수 있으며, 심볼 b는 접지에 가까운 전압에 의해 표시될 수 있다. 이러한 예시적인 채널에서, 심볼 b는 항상 변하지 않은 상태로 채널을 통과하는 반면에, 심볼 ac는 확률 pq로 심볼 b로 각각 변화한다. 이러한 경우에, 이것이 3진 채널(ternary channel)이므로, 채널 입력 내에 입력되는 심볼은 송신된 심볼 스트림(v'[j]) 의 아이템이고, 채널을 나가는 심볼은 수신된 심볼 스트림(r'[j])의 아이템이다. 심볼 세트 크기가 2보다 크고 적어도 하나의 가능 오류 천이는 유효하게 0인 확률을 갖는다는 점에서, 도 6에 도시된 다이어그램과 같은 확률 천이 다이어그램을 특징으로 하는 채널은 비2진(non-binary) 불완전 채널로 불린다. 이러한 채널은 또한 모든 가능한 오류가 동일한 발생 확률을 갖는 것은 아니라는 점에서 비대칭이다.
송신된 신호의 오류를 감지하고 정정할 능력은 사용된 코드의 해밍 거리를 특징으로 할 수 있다. 임의의 2개의 코드 워드 간의 해밍 거리(종종 "거리"로도 지칭됨)는 2개의 코드 워드가 상이한 심볼 위치의 수이다. 예컨대, 2개의 2진 코드 워드(0011010 및 0010110)는 2개의 장소에서 상이하므로 해밍 거리 2를 갖는다. 유사하게, 코드 워드 abacddaacdadda는 3개의 심볼 위치에서 상이하므로, 해밍 거리 3을 갖는다. t개의 오류를 정정하고 t+1개의 오류를 감지하는 것이 가능한 완전한 채널 - 심볼 세트에서 모든 심볼 쌍 사이의 모든 오류가 가능함 - 상에서 사용하기 위한 코드에 있어서, 모든 코드 워드의 최소 간격은 적어도 2t+2가 되어야 하는 것이 적절하게 이해된다. 특히, 잘 인식된 단일 오류 정정, 더블 오류 정정 (SECDED) 2진 해밍 코드는 모든 코드 워드 간에 최소 간격 4를 갖는다. 코드 워드로부터의 해밍 거리가 1인 모든 수신된 워드는 이 워드의 단일 오류를 갖는 것으로 가정되고, 그러므로, 모든 이러한 수신된 데이터 워드는 수신기에 의한 코드 워드로 정정될 수 있다. 하나 이상의 코드 워드로부터 2의 해밍 거리를 갖는 임의의 수신된 데이터 워드는 2개의 오류를 갖는 것으로 가정된다. 수신된 코드 워드로부터 2개의 개별 유효 코드 워드로의 해밍 거리가 동일하므로, 수신기는 2개의 코드 워드중 어떤 것이 채널 변조기에 의해 보내질지를 분명하게 결정하지 못한다. 이러한 상황에서, 2개의 오류는 감지가능하되 정정불가능하다.
본 발명의 목적은, 오류 감지 및/또는 정정 코드와 비2진 불완전 채널을 통과하는 심볼 스트림을 위한 채널 변조를 제공하는 것이다.
본 발명의 다른 목적은, 비2진 불완전 채널을 갖는 메모리 장치의 오류 감지 및/또는 정정을 위한 코드를 제공하는 것이다.
본 발명의 또 다른 목적은, 불완전 오류 천이 특성을 갖는 다치(multi-valued) 메모리의 오류 감지 및/또는 정정을 위한 코드를 제공하는 것이다.
본 발명의 또 다른 목적은, 비2진 불완전 채널 및 메모리를 위한 유효한 오류 정정 코드를 제공하는 것이다.
본 발명은 비2진 불완전 통신 채널이나 비교가능한 다치 메모리 장치에서 발생하는 오류를 감지하고 정정하기 위한 방법 및 시스템을 제공한다.
본 발명의 또 다른 목적은, 불완전 통신 채널 또는 비교가능한 다치 메모리 장치와 사용하기 위한 코드를 찾기 위한 알고리즘을 제공하는 것이다.
제 1 측면에 있어서, 채널은 제 1 및 제 2 단부를 갖는다. 채널의 제 1 단부는 송신기에 결합된다. 채널은 제 1 단부로부터 제 2 단부에 심볼 세트로부터 선택된 심볼을 송신할 수 있다. 채널은 불완전 오류 도입 특성을 나타낸다. 코드는 코드 워드의 세트를 포함한다. 코드 워드의 세트의 요소는 하나 이상의 코드 심볼 길이가 된다. 코드 심볼은 심볼 세트의 구성요소가 된다. 채널의 오류 도입 특성을 고려한 코드 워드의 세트의 요소들 사이의 최소 변경 해밍 간격은, 코드 워드의 세트의 요소들 간의 최소 해밍 거리보다 크다. 메모리 장치, 채널을 사용하는 방법, 코드를 생성하는 방법 또한 기재된다.
추가 측면에 있어서, 코드는 데이터 워드의 세트를 더 포함한다. 데이터 워드의 세트의 크기는 코드 워드의 세트의 크기와 동일하다. 데이터 워드의 세트의 요소와 코드 워드의 요소 사이의 일대일 맵핑이 존재한다.
추가 측면에 있어서, 심볼 세트의 크기는 적어도 3이다.
추가 측면에 있어서, 심볼 세트의 크기는 적어도 4이다.
추가 측면에 있어서, 수신기는 채널의 제 2 단부에 결합된다. 수신기는 채널 복조기 및 채널 디코더를 포함한다. 송신기는 채널 변조기 및 소스 데이터 인코더를 포함한다. 채널의 제 1 단부는 송신기에 결합된다. 채널은 통신 채널이다. 송신기는 데이터 워드를 수신하고 코드 워드를 생성함으로써 코드를 실행한다. 수신기는 채널로부터 심볼의 그룹을 수신하고 송신기에 의해 수신된 데이터 워드에 상응하는 데이터 워드를 생성함으로써 코드를 실행한다.
추가 측면에 있어서, 심볼 세트의 크기는 적어도 3이다.
추가 측면에 있어서, 심볼 세트의 크기는 적어도 4이다.
추가 측면에 있어서, 코드 워드의 세트의 요소들 간의 최소 변경 해밍 거리는 4 이상이다.
추가 측면에 있어서, 코드 워드의 세트의 요소들 간의 최소 변경 해밍 거리는 5 이상이다.
추가 측면에 있어서, 시스템은 복수의 메모리 셀을 포함하는 적어도 하나의 메모리 장치를 포함한다. 각각의 메모리 셀은 저장된 심볼의 세트의 구성요소와 일대일로 부합하는 복수의 저장 상태를 갖는다. 메모리 장치는 불완전 오류 도입 특성을 갖는 오류 메커니즘을 갖는다. 메모리 컨트롤러는 저장된 심볼의 세트로부터 선택된 심볼로부터 얻어진 데이터가 적어도 하나의 메모리 장치의 복수의 메모리 셀로부터 판독되도록 유도하기 위해 적어도 하나의 메모리 장치에 결합된다. 채널 디코더는 적어도 하나의 메모리 장치로부터 판독되는 데이터의 오류를 정정하기 위해 메모리 컨트롤러에 결합되고, 오류는 오류 메커니즘에 의해 적어도 부분적으로 도입된다. 채널 디코더는 코드 워드의 세트를 포함하는 코드를 디코딩한다. 적어도 하나의 메모리 장치의 불완전 오류 도입 특성을 고려한 코드 워드의 세트의 요소들 간의 최소 변경 해밍 간격은, 코드 워드의 세트의 요소들 간의 최소 해밍 거리보다 크다.
추가 측면에 있어서, 심볼의 크기는 적어도 3이다.
추가 측면에 있어서, 심볼의 크기는 적어도 4이다.
추가 측면에 있어서, 채널 인코더는 인코딩되지 않은 데이터를 수신하고 데이터를 코드 워드의 세트로부터 선택된 코드 워드의 콜렉션내에 인코딩하도록 구성된다. 코드 워드는 이후에 적어도 하나의 메모리 장치의 복수의 메모리 셀에 기록된다.
추가 측면에 있어서, 심볼 세트의 크기는 적어도 3이다.
추가 측면에 있어서, 심볼 세트의 크기는 적어도 4이다.
추가 측면에 있어서, 코드 워드의 세트의 요소들 간의 최소 변경 해밍 거리는 4 이상이다.
추가 측면에 있어서, 코드 워드의 세트의 요소들 간의 최소 변경 해밍 거리는 5 이상이다.
추가 측면에 있어서, 반도체 메모리 장치는 복수의 메모리 셀을 갖는다. 각각의 메모리 셀은 저장된 심볼의 세트의 구성요소와 일대일로 부합하는 복수의 저장 상태를 갖는다. 메모리 장치는 불완전 오류 도입 특성을 갖는 오류 메커니즘을 갖는다. 채널 디코더는 메모리 셀로부터 판독되는 데이터의 오류를 정정하기 위해 메모리 셀에 결합되고, 오류는 오류 메커니즘에 의해 적어도 부분적으로 도입된다. 채널 디코더는 코드 워드의 세트를 포함하는 코드를 디코딩한다. 메모리 셀의 불완전 오류 도입 특성을 고려한 코드 워드의 세트의 요소들 간의 최소 변경 해밍 간격은, 코드 워드의 세트의 요소들 간의 최소 해밍 거리보다 크다.
추가 측면에 있어서, 심볼 세트의 크기는 적어도 3이다.
추가 측면에 있어서, 심볼 세트의 크기는 적어도 4이다.
추가 측면에 있어서, 채널 인코더는 인코딩되지 않은 데이터를 수신하고 데이터를 코드 워드의 세트로부터 선택된 코드 워드의 콜렉션내에 인코딩하기 위해 구성된다. 코드 워드는 이후에 복수의 메모리 셀에 기록된다.
추가 측면에 있어서, 심볼 세트의 크기는 적어도 3이다.
추가 측면에 있어서, 심볼 세트의 크기는 적어도 4이다.
추가 측면에 있어서, 코드 워드의 세트의 요소들 간의 최소 변경 해밍 거리는 4 이상이다.
추가 측면에 있어서, 코드 워드의 세트의 요소들 간의 최소 변경 해밍 거리는 5 이상이다.
추가 측면에 있어서, 제 1 단부, 제 2 단부 및 불완전 오류 특성을 갖는 오류 주입 메커니즘을 갖는 채널을 동작하는 방법은:
채널로부터 심볼 스트림을 수신하는 단계 - 수신된 심볼 스트림은 복수의 심볼 워드를 포함하고, 각각의 심볼 워드는 심볼 세트로부터 선택된 하나 이상의 심볼을 포함함 - ; 및
오류 정정 및/또는 감지 코드에 따라, 정정된 데이터 스트림 또한 생성하기 위해 수신된 심볼 워드를 디코딩하는 단계 - 코드는 코드의 최소 변경 해밍 거리를 갖는 코드 워드의 세트를 포함하고, 최소 변경 해밍 간격은 채널의 오류 주입 메커니즘의 오류 주입 특성에 따라 계산되고, 최소 변경 해밍 거리는 코드의 해밍 거리의 최소치보다 큼 - 를 포함하고,
심볼 워드를 디코딩하는 단계는 코드 워드의 세트 중 어떠한 코드 워드가 가장 작은 변경 해밍 거리를 산출할지 결정하는 단계 및 코드 워드를 출력하는 단계를 포함한다.
추가 측면에 있어서, 이 방법은:
데이터 워드와 코드 워드 간의 일대일 맵핑에 따라 인코딩되지 않은 데이터 워드를 코드 워드로 변환함으로써 인코딩되지 않은 데이터를 인코딩하는 단계 - 상기 코드는 상기 매핑을 더 포함하고 인코딩하는 단계는 채널의 제 1 단부에 결합된 송신기에 의해 수행됨 - ; 및
오류 주입 메커니즘에 따라 오류가 도입되는 채널에 걸쳐서 코드 워드를 송신하는 단계를 더 포함한다.
추가 측면에 있어서, 심볼 세트의 크기는 적어도 3이다.
추가 측면에 있어서, 최소 변경 해밍 거리는 적어도 4이고 해밍 거리는 4 미만이다.
본 발명의 다른 목적 및 장점은 이하에 포함된 도면 및 상세한 설명으로부터 명백해 질 것이다.
도 1은 본 발명의 측면이 적용될 수 있는 제 1 단부간 통신 시스템을 도시한다;
도 2는 본 발명의 측면이 적용될 수 있는 제 2 단부간 통신 시스템을 도시한다;
도 3은 본 발명의 측면이 적용될 수 있는 메모리 시스템을 도시한다;
도 4는 2진 대칭 채널에 대한 일반적인 천이 확률을 도시한다;
도 5는 비대칭 및 불완전한 오류 천이 확률을 갖는 2진 채널을 위한 천이 확률 다이어그램을 도시한다. 이러한 종류의 도면은 오류 천이 다이어그램 또는 심볼 천이 다이어그램으로 교체가능하게 지칭된다;
도 6은 3개의 심볼을 저장하거나 송신할 수 있는 3진 채널을 위한 천이 확률 다이어그램을 도시하고, 여기서 오류 천이 확률은 비대칭이고 그래프는 불완전하다;
도 7은 단일 심볼이 대칭 3진 채널로 보내지는 것이 가능한 오류 천이를 도시한다;
도 8은 단일 심볼이 불완전한 3진 채널로 보내지는 것이 가능한 오류 천이를 도시한다;
도 9는 도 6에서 도시된 오류 천이를 갖는 불완전한 3진 채널로 단일 심볼이보내지는 것이 가능한 오류 천이를 도시한다;
도 10은 도 6에서 도시된 오류 천이를 갖는 불완전한 3진 채널로 한 쌍의 심볼이 보내지는 것이 가능한 오류 천이를 도시한다;
도 11은 도 6에서 도시된 오류 천이를 갖는 불완전한 3진 채널로 3 쌍의 심볼이 보내지는 것이 가능한 오류 천이를 도시한다;
도 12는 매 심볼 시간 기간 마다 3개의 심볼 중 하나를 보내도록 구성된 채널 상에 보내지는 심볼의 데이터 아이(data eye)를 도시한다;
도 13은 종래 기술의 DRAM 메모리 셀을 도시한다;
도 14는 DRAM 스토리지 셀의 셀 전압의 3개의 전압 범위에 대한 3개의 심볼의 할당을 도시한다;
도 15는 Vplate에 단락된 Vcell을 갖는 3진 DRAM 메모리 셀에 대한 확률 천이 다이어그램을 도시한다;
도 16은 DRAM 스토리지 셀의 셀 전압의 4개의 전압 범위에 대한 4개의 심볼의 할당 및 심볼에 대한 소스 데이터 비트 쌍의 4개의 가능 할당을 도시한다;
도 17은 4개의 심볼을 저장하거나 송신할 수 있는 채널에 대한 천이 확률 다이어그램을 도시하며, 여기서 오류 천이 확률은 데이터 의존적이다; 그리고
도 18은 비대칭 오류 확률을 갖는 채널과 사용을 위한 코드를 식별하는 알고리즘을 도시한다.
블록 코드는, n개의 심볼 길이인 코드를 형성하기 위해 리던던시의 심볼을 더함으로써, 소스 데이터 스트림(u)의 k개의 심볼의 그룹을 보호하는 오류 정정 코드의 그룹이다. 소스 데이터 스트림으로부터의 k개의 심볼의 그룹은 데이터 워드이다. 데이터 심볼과 코딩된 심볼이 동일한 심볼 세트로부터 선택될 경우, 오류 보호(감지 및/또는 정정)를 필수적으로 제공하는 리던던트 심볼의 수는 n-k이다. 2진 블록 코드는, 소스 데이터 스트림을 논리적으로, 시간적으로 또는 물리적으로 k-비트 데이터 워드로 나누는 2진 소스 데이터 스트림에 적용된다. 각각의 데이터 워드는, m개의 심볼로 인코딩하기 위하여 채널 변조기로 보내지는 n개의 비트 코드 워드로 인코딩되고 m 심볼 길이로 송신된 코드 워드를 생성한다. 2진 채널 및 2진 소스 데이터 스트림의 경우, mn이다. 대안으로, 오류 코딩 및 변조(비트 그룹을 심벌로 나눔)가 단일 단계로서 동시에 행해질 수 있다는 것이 이해된다.
코드는, n-튜플(tuple)의 서브셋이 모든 가능 데이터 워드의 세트와 일대일 관계로 상응하는 코드 워드의 세트를 형성하고 남아있는 코드 n-튜플은 데이터 워드에 상응하지 않는, 즉 코드의 일부분이 아닌 것으로 선택될 수 있다. 이 경우에, 코드의 부분이 아닌 n-튜플중 하나가 채널 복조기 또는 채널 디코더 또는 ECC 디코더에 의해 수신될 때, 이러한 조건은 채널 또는 메모리에 의해 도입된 하나 이상의 오류를 나타낸다. 이러한 처리는 이하에서 더욱 상세히 기재될 것이다.
도 7은 대칭적이고 완전한 3진 채널을 위한 가능 오류 천이를 도시한다. 이러한 방식의 그래프는, 보내진 심볼과 수신된 심볼이 도면에서 서로 중첩되는 것을 제외하고 예컨대 도 5의 정보와 동일한 정보를 도시한다. 표시된 채널은, 각각의 심볼이 양방향 화살표에 의해 표시되는 것과 같이, 채널 또는 메모리 내에서 임의의 다른 심볼로 오류를 갖고 변경될 수 있으므로, 완전하다. 각각의 양방향 화살표는 송신된 심볼 스트림내에 주입될 수 있는 2개의 가능 오류를 나타낸다. 도 8은 또 다른, 불완전한 3진 채널을 위한 가능 심볼 변경 그래프를 도시한다. 이러한 경우에, 심볼 a는 심볼 b 또는 c로 디그레이딩될 수 있고, 심볼 b는 심볼 c로 디그레이딩될 수 있지만, 기타 생각할 수 있는 오류 변경은 물리적으로 불가능하다. 이러한 심볼 변경 그래프는 채널에 있어서 가능하고, 예컨대, 여기서 신호 레벨 또는 저장된 값은 심볼 "c"에 의해 표시된 최소 가능 값을 향하여, 채널의 길이를 따라 또는 시간에 따라 디그레이딩한다.
코드의 예시는 단일 오류 정정, 더블 오류 감지 코드 및 3진 불완전 채널과 사용하기 위한 코드 단일 오류 정정, 단일 오류 감지 코드를 성취하기 위하여 이하에서 기재될 것이다. 오류 감지 및 정정의 다른 형태는 유사한 방식으로 구현될 수 있고 q>2인 경우 q-ary 채널에 일반화될 수 있다는 점이 이해되어야 한다. 3진 채널은 도 6에서 도시된 바와 같이, 송신된 심볼 세트의 크기가 3인 채널이다. 도 9는 하나의 심볼의 3개의 값의 완전한 세트를 도시한다. 일 가능 코드는, 일부 심볼 주위의 음영처리 된 회색 박스로 표시되는 바와 같이, 심볼 ac만을 포함한다. 심볼 b가 수신되고 오류가 일어나되 원래 송신된 심볼이 식별될 수 없을 경우, 이 채널의 가능 오류 천이가 주어진 것처럼, 심볼 b는 양쪽 심볼 a 및 심볼 b로부터의 변경된 해밍 거리 1이다. 본 발명의 일 실시예에서, 도 10은 도 6의 오류 특성을 갖는 3진 채널 상에 보내진 심볼의 쌍으로 구조화된 코드를 도시한다. 9개의 가능한 심볼 쌍이 존재한다. 심볼 쌍 aacc가 코드워드로 선택되어 소스 데이터 비트의 2개의 2진 값(0 또는 1)을 나타내는 경우, 모든 가능 단일 오류는 정정될 수 있고 모든 가능 더블 오류는 감지될 수 있다. 이러한 코드는 표 1에서 도시된다.
표 1
소스 데이터 송신된 코드 워드 수신된 코드 워드 코멘트 목적지 데이터
0 aa aa 오류 없음 0
ab 단일 오류 0
ac 불가능 NA
ba 단일 오류 0
bb 더블 오류 오류 표시
bc 단일 오류 1
ca 불가능 NA
cb 단일 오류 1
1 cc cc 오류 없음 1
코드 워드 상에 소스 데이터 비트를 매핑하는 것은 전적으로 자의적이고, 코드 워드(aacc) 상으로의 소스 데이터 비트 값(0 및 1)의 두 번의 할당이 동일한 순 효과를 산출하는 것이 이해되어야 한다.
표 1의 코멘트 영역에서 "불가능"으로 개재된 수신된 코드 워드는 임의의 가능 코드 워드로부터의 오류 천이에 기반한 도 9의 오류 천이 차트에 의해 고려되지 않는 수신된 코드 워드를 나타낸다는 점 또한 고려되어야 한다. 특정 경우에서, 오류 변환 다이어그램에서 실시되는 메커니즘 외에도, 짐작컨대 낮은 확률의 기타 오류 메커니즘이 존재할 수 있다. 일반적으로, 이러한 오류 메커니즘은 보호된 주요 오류 메커니즘보다 훨씬 가능성이 낮다. 코드의 기반이 되는 오류 천이 다이어그램에서 명백하지 않은 오류 천이를 생성하는 오류 메커니즘은 그러한 코드에 의해 정정불가능하다. 이러한 환경에서, 불가능한 것으로 개재된 수신된 코드 워드는 정정불가능한 오류로 간주된다. 게다가, 단독으로 또는 다른 오류 메커니즘과 결합하여 하나의 코드 워드를 다른 코드 워드로 변경할 수 있는 기타 오류 메커니즘 역시 존재할 수도 있다; 이러한 오류 또는 오류 결합은 감지불가능한 오류의 클래스로 떨어진다.
심볼 쌍 bb 또한 코드 워드일 경우, 코드는 단일 오류 감지, 3개의 유효 코드 워드를 갖는 단일 오류 정정 코드가 된다. 각각의 심볼 쌍은 소스 데이터의 단일 비트 만을 송신할 수 있지만, 심볼 쌍의 콜렉션은 더 큰 수의 소스 데이터 비트를 인코딩하기 위해 결합될 수 있다. 표 2는 2쌍의 심볼을 함께 그룹핑하는 것이 3 비트의 소스 데이터를 송신할 수 있는 코드를 생성하고 각각의 심볼의 쌍의 단일 오류를 감지하고 정정할 수 있는 것을 도시한다.
표 2
소스 데이터 송신된 코드 워드
000 aa aa
001 aa bb
010 aa cc
011 bb aa
미사용 bb bb
100 bb cc
101 cc aa
110 cc bb
111 cc cc
3개의 소스 비트가 2쌍의 심볼로 변조되는 것에 있어서, 8개의 소스 비트 조합 및 9개의 유효 코드 워드 조합이 존재한다. 코드 워드 조합 중 하나는 사용되지 않고 남겨진다. 소스 데이터 비트 트리플의 심볼 쌍으로의 특정 변조는 자의적이고 기타 고려에 따라 선택될 수 있다는 것이 이해되어야 한다. 더 많은 심볼 쌍을 그룹핑하는 이러한 패턴은, 더 많은 수의 소스 비트를 인코딩하고 코드의 유효성을 개선할 수 있는 각각의 심볼 쌍의 단일 오류를 감지하고 정정할 수 있는 추가적인 더 높은 순서의 코드를 생성할 것임이 또한 이해되어야 한다. 이러한 코드의 예시적인 일부의 특성은 표 3에 주어진다. 소스 데이터 비트 값의 이러한 심볼 쌍 값으로의 변조는 자의적이고, 상응하는 변조기 및 복조기는 종래의 논리 최소화 기법을 사용하여 설계될 수 있는 것이 이해되어야 한다. 심볼 쌍의 부분인 개별 심볼은 시간적으로 분리되거나 심볼을 인터리빙하거나 그렇지 않으면 셔플링하거나 리오더링함으로써 이격될 수 있어서 이러한 코드의 클래스로 감지가능할 수 없는 오류 쌍은 논리적으로, 물리적으로 또는 시간적으로 인접하지 않아서, 다수의 오류가 동일한 심볼 쌍에서 발생하는 확률을 감소시키는 것 또한 이해되어야 한다.
표 3
심볼 쌍의 수 심볼의 수 코드 워드 조합의 수 소스 데이터 비트의 가능 수
2 4 9 3
3 6 27 4
4 8 81 6
5 10 243 7
6 12 729 9
7 14 2187 11
8 16 6561 12
9 18 19683 14
10 20 59049 15
11 22 177147 17
12 24 531441 19
도 11은 3개의 심볼로 구성된 코드 워드를 위한 도 6에 정의된 3진 채널을 고려한 모든 가능한 오류 천이를 도시한다. 이러한 경우에, 표 4에 도시된 바와 같이 5개의 코드 워드로 구성된 코드는 모든 단일 오류의 콜렉션 및 3개의 심볼 내의 모든 더블 오류의 감지를 허용할 수 있다.
예컨대, 표 4를 참조하면, 수신된 심볼 트리플 bab는 양쪽 코드 워드 aaacac로부터 2개 오류씩 떨어져 있는 것을 주목해야 한다. 구체적으로, 코드 워드 aaa는 제 1 오류(a→b)에 의해 baa로 변경될 수 있으며, 이것은 동일한 오류 형태의 또 다른 경우로, 이번에는 제 3 심볼에서 bab로 변경될 수 있다. 유사하게는, 코드 워드 cac는 제 1 및 제 3 심볼 위치에서 발생하는 c→b 오류에 의해 비코드 워드 bab로 변경될 수 있다.
더욱 중요하게, 심볼 b로부터 심볼 a로의 변화는 도 6에 의해 정의된 채널 특성에 따르면 불가능하므로, 코드 워드 bbb로부터 심볼 트리플 bab로의 변경 해밍 거리는, 제 2 b 심볼을 a 심볼로 변경할 수 있는 도 6의 불완전 오류 천이 다이어그램에 의해 오류가 없는 것으로 고려되므로, 유효하게 무한대이다. 상기 동일 예시에 있어서, 도 11의 심볼 천이 다이어그램에 따르면, 단일 허용 오류는 a로부터 a b로 변경될 수 있고 이로써 트리플을 bab로부터 트리플 bbb로 변경하기 때문에, 심볼 트리플 bab로부터 심볼 트리플 bbb로의 변경 해밍 거리는 1이다. 유사하게는, 심볼 트리플 bbb로부터 심볼 트리플 bab로의 변경 해밍 거리는 무한대이고, aaa로부터 abb로 변경 해밍 거리는 2이며, acc로부터 abb로 변경 해밍 거리는 2이다.
표 4
송신된 코드 워드 수신된 코드 워드 오류 형태 정정된 코드 워드
aaa aaa 오류 없음 aaa
aab 단일 오류 aaa
aac 불가능 NA
aba 단일 오류 aaa
abb 더블 오류 오류 표시
abc 단일 오류 acc
aca 불가능 NA
acb 단일 오류 acc
acc acc 단일 오류 acc
baa 단일 오류 aaa
bab 더블 오류 오류 표시
bac 단일 오류 cac
bba 더블 오류 오류 표시
bbb bbb 오류 없음 bbb
bbc 더블 오류 오류 표시
bca 단일 오류 cca
bcb 더블 오류 오류 표시
bcc 불가능 NA
caa 불가능 NA
cab 단일 오류 cac
cac cac 오류 없음 cac
cba 단일 오류 cca
cbb 더블 오류 오류 표시
cbc 단일 오류 cac
cca cca 오류 없음 cca
ccb 단일 오류 cca
ccc 불가능 NA
이러한 코드의 오류 감지 및 정정 특성을 이해하고자 하는 목적에 있어서, 집합 특성이 고려된다. 상기 예시에서, aaa로부터 abb로의 변경 해밍 거리는 2이고, acc로부터 abb로의 변경 해밍 거리 또한 2 이므로, 비코드 워드 abb를 통하는 코드 워드 aaaacc간의 변경 해밍 간격은 이러한 2개의 값의 합 또는 4이다. 비교하자면, 각각의 워드는 단 3개의 심볼을 포함하여 2개의 워드는 최소 3개의 위치에서 상이할 수 있으므로, 코드의 종래의 해밍 거리는 3을 초과할 수 없다.
종래의 해밍 거리와 변경 해밍 거리 사이의 중요한 차이점은, 변경 해밍 거리를 계산하는데 있어서, 단일 심볼 위치의 2개의 오류는 2의 거리를 초래할 수 있다는 것이다. 예컨대, 도 17에 도시된 불완전한 세트의 오류 천이를 갖는 채널 또는 메모리의 경우, 심볼 트리플 caabba는 전자가 오직 제 1 심볼의 오류만 포함함에도 불구하고 심볼 트리플 aaa로부터 모두 2의 거리이다. 이러한 경우의 2개의 오류(a→b) 및 (b→c)는 모두 허용되고 이러한 채널의 정의내에서 동일한 심볼 위치로 순차적으로 일어날 수 있다. 다른 실시예에서, 동일한 오류 천이 다이어그램을 갖는 상이한 채널 또는 메모리는 최소 하나의 오류를 각각의 송신되거나 저장된 심볼에 주입하는 것이 가능하고, 또는, 대안으로, 제 2 오류가 심볼로 주입될 확률은 제 2 오류가 다른 심볼에 도입될 확률보다 실질적으로 낮아서 이벤트의 전자의 클래스가 무시될 수 있다.
변경 해밍 간격은, 특성 심볼 천이 다이어그램을 고려하여 코드에 의해 제공되는 오류 감지 및 정정의 정도를 이해하는데 중요한 역할을 한다. 코드 워드가 4의 해밍 거리를 갖는다는 종래의 요건이 충족되지 않더라도, 코드는 불완전한 오류 주입 특성을 갖는 채널에 대하여 단일 오류 정정 및 더블 오류 감지를 제공할 수 있는 것이 상기 예시로부터 이해되어야 한다.
예컨대, 모든 코드 워드가 모든 다른 코드 워드로부터 적어도 3의 변경 해밍 거리를 가질 경우, 제 1 코드 워드의 더블 오류는 임의의 다른 코드 워드의 오류 없는 송신과 구별할 수 있다. 게다가, 코드 워드가 아니지만 코드 워드로부터 1의 변경 해밍 거리를 갖는 모든 기타 가능한 수신된 워드는 모든 기타 코드 워드로부터 적어도 3의 변경 해밍 거리를 가지는 경우, 모든 가능 단일 오류는 분명히 정정가능하고 모든 기타 단일 및 이중 오류와 구분가능하다. 최종적으로, 코드 워드로부터 2의 거리인 모든 가능한 수신된 워드가 또한 모든 기타 코드 워드로부터 적어도 2의 변경 해밍 거리를 가지는 경우, 모든 필수적으로 정정가능한 것이 아니라도 모든 더블 오류는 더블 오류로서 감지가능하다. 이러한 이중 오류는 수신된 워드가 적어도 2개의 코드 워드로부터 2의 변경 해밍 거리일 경우 정정불가능할 것이다.
종래의 해밍 거리가 완전한 오류 특성을 갖는 환경에서 동작하는 코드를 위한 것과 동일한 방식으로, 2개의 코드 워드 간의 변경 해밍 간격은 이로써 주입된 오류를 갖는 코드 워드를 구분 짓는 능력과 관련된다. 특히, 2개의 코드 워드 간의 변경 해밍 간격은 제 1 코드 워드로부터 임의의 비코드 워드로의 변경 해밍 거리와 제 2 코드 워드로부터 임의의 동일한 비코드 워드로의 변경 해밍 거리의 합의 최소값과 동일하고, 이 최소값은 모든 가능 비코드 워드에 대하여 취해진다.
대수적으로 표현할 때, 가능한 n-튜플(S n )의 공간으로부터 선택된 양쪽 n-튜플에서 2개의 코드 워드 ab 사이의 변경 해밍 거리는,
모든 c∈ S n , c≠a, c≠b에 대하여, mHs(a,b)=min(mHd(a,c)+mHd(b,c))에 의해 주어지고,
mHs(a,b)는 코드 워드 a와 코드 워드 b 사이의 변경 해밍 거리이고, mHd(a,b)는 코드 워드 a로부터 코드 워드 b로의 변경 해밍 거리이다.
변경 해밍 간격 기능은 mHs(a,b) = mHs(a,b)인 점에서 대칭이다.
전체 코드의 변경 해밍 코드 워드 스페이싱은 코드의 코드 워드의 각각의 쌍 사이에서 변경 해밍 거리의 최소값이다. 전체 코드의 변경 해밍 코드 워드는 코드의 코드 워드의 각각의 쌍 사이에서의 변경 해밍 거리의 최소값이다. 대수적으로, 이것은
모든 a,b ∈ C,C ⊆ S n , a≠b에 대하여, mHcws(C)=min(mHs(a,b))
모든 a,b ∈ C,C ⊆ S n , a≠b에 대하여, mHcwd(C)=min(mHd(a,b))
에 의해 주어지고, 여기서 CS n 의 n-튜플의 세트로 구성된 코드이다.
코드의 변경 해밍 코드 워드 스페이싱이 4일 경우, 모든 비코드 워드는 1) 하나의 코드 워드로부터 1 오류 만큼 그리고 모든 기타 코드 워드로부터 적어도 3 오류만큼 떨어져 있고, 2)하나의 코드 워드로부터 2 오류 만큼 그리고 모든 기타 코드 워드로부터 적어도 2 오류만큼 떨어져 있고, 3)2개 이상의 코드 워드로부터 2 오류 만큼 떨어져 있거나, 4)모든 코드 워드로부터 2개 이상의 오류만큼 떨어져 있다. 게다가, 각각의 코드 워드가 모든 다른 코드 워드로부터 적어도 3의 변경 해밍 거리만큼 떨어지고, 이로써 수신된 워드가 코드이면, 이거에 주입된 하나 또는 두개의 오류를 갖는 상이한 코드 워드의 결과가 될 수 없다.
그러므로, 만약
mHcws(C)≥4 및
mHcwd(C)≥3일 경우,
코드는 불완전 오류 주입 특성을 갖는 채널 또는 메모리에 대한 단일 오류 정정, 더블 오류 감지(SECDED) 코드이다.
이러한 조건들이 모두 충족될 경우, 모든 수신된 코드 워드는 오류 없는 송신 및/또는 저장의 결과가 되는 것으로 가정될 수 있다. 상기 제 1 카테고리의 모든 수신된 비 코드 워드는 단일 오류의 결과가 되는 것으로 안전하게 가정될 수 있고, 송신되거나 저장된 코드 워드가 오류를 정정하기 위해 명확하게 결정될 수 있다. 유사하게 제 2 카테고리의 모든 수신된 비코드 워드는 명확하게 정정가능한 더블 오류의 결과가 되도록 결론지어질 수 있다. 제 3 카테고리의 모든 수신된 비코드 워드는 이중 오류의 결과이지만, 원래 송신되거나 저장된 코드 워드는 명확하게 결정될 수 없다. 제 4 카테고리의 모든 수신된 비 코드 워드는 일부가 정정가능한 다수의 오류의 결과일 수 있더라도 정정불가능한 다수의 오류로서 취급될 수 있다.
표 5는 상기 적용된 바와 같이 동일한 논리에 따라, 코드에 의해 제공된 오류 정정 및 감지의 정도와 코드의 최소 변경 해밍 코드 워드 간격과 최소 변경 해밍 코드 워드 거리 간의 관계를 기록한다. 당업자는 기재된 추론에 따라 표 5를 더 높은 정도의 오류 정정 및 감지로 확대하는 방법을 이해해야 한다.
표 5
정정가능한 오류의 수 감지가능한 오류의 수 코드의 최소 변경 해밍 코드 워드 스페이싱 코드의 최소 변경 해밍 코드 워드 거리
0 0 1 1
0 1 2 2
1 1 3 2
1 2 4 3
2 2 5 3
오류 변환 다이어그램의 불완전성의 결과로, 2개의 코드 워드 간의 변경 해밍 간격은 종래의 해밍 거리, 즉, 두 개의 코드 워드가 상이한 심볼 위치의 수의 합보다 크다. 표 4에서의 상기 예시에서, aaaacc간의 해밍 거리는 3개의 심볼들 중 2개가 상이하므로 2이다. 이러한 2개의 코드 워드는 3의 요구된 해밍 간격이 부족하므로 종래의 단일 오류 정정 코드의 부분이 될 수 없다.
코드가 적어도 4의 변경 해밍 코드 워드 스페이싱일 경우, 코드는 단일 오류 정정 및 이중 오류 감지가 될 수 있다. 예컨대, 비 코드 워드가 제 1 코드로부터 해밍 거리 1 만큼 떨어지고 제 2 코드 워드로부터 변경 해밍 거리 2 만큼 떨어질 경우(즉, 코드의 변경 해밍 간격은 최소 3임), 채널 디코더는 제 1 코드 워드와 관련된 단일 심볼 오류와 제 2 코드 워드와 관련된 더블 심볼 오류 사이에서 구분할 수 없다. 2개의 코드 워드 간의 변경 해밍 거리가 이들의 종래 해밍 거리보다 클 수 있는 것과 같이, 코드의 변경 해밍 코드 워드 스페이싱은 이것의 종래의 해밍 거리(즉, 코드 워드의 모든 쌍 간의 해밍 거리의 최소값)보다 더 클 수 있다. 그러므로, 코드는, 오류 천이 다이어그램이 완전하거나 코드가 불완전한 오류 특성의 장점을 취하는데 실패했을 경우 불가능할 정도로 오류 정정 및/또는 감지가 될 수 있다.
표 4의 예시는, 변경 해밍 코드 워드 스페이싱이 4 이상이고 변경 해밍 코드 워드 거리는 해밍 거리가 4 미만이더라도 3 이상이므로, 불완전 오류 천이 다이어그램이 있을 경우 단일 오류 정정 더블 오류 감지인 코드이다. 이로 인하여, 표 4의 코드는 종래의 해밍 거리에 기반한 SECDED로 고려되지 않는다. 추가 예시가, 특정 오류 천이 다이어그램이 주어지는 경우 자신의 해밍 거리보다 큰 변경 해밍 코드 워드 스패이싱을 가져서 해밍 거리만 고려함으로써 이해되는 것보다 더 큰 수의 오류를 감지하거나 정정할 수 코드에 대해 기재될 것이다.
여전히 표 4를 참조하여, 심볼 트리플 bbb가 코드 워드의 세트로부터 제외되는 경우 모든 경우에 심볼 b의 수령은 오류의 표시인 것을 주목해야 한다. 이러한 경우에, 물리적인 채널 특성 - 예컨대, 전압 또는 전류 또는 전하 레벨 - 은 적절한 심볼 a, b, c가 할당될 수 있어서 심볼 a로부터 심볼 c로의 변화 또는 그 반대의 확률이 심볼 a 및 심볼 c로부터 심볼 b로의 허용된 오류 천이의 확률보다 작다. 이러한 하나의 예시는, 일부 심볼 변화가 기타 심볼 변화와 상당히 다르고 이 구분은 필수적으로 불가능한 변화와 0이 아닌 확률을 갖는 오류 천이간의 차이점이 되는 것을 보장하도록 설계된 변조기/복조기로 결합된 채널이다.
더 많은 수의 소스 코드 비트를 동시에 처리할 수 있는 더 큰 코드를 생성하기 위하여 이러한 채널 상의 심볼 쌍의 결합으로, 다수의 심볼 트리플은 더 많은 수의 코드 워드를 갖는 코드를 생성하기 위해 결합될 수 있다. 표 6은 트리플의 동일한 결합을 도시한다. 소스 데이터 비트와 다수의 심볼 트리플간의 임의의 변조나 매핑이 본 실시예로 사용될 수 있는 것이 이해되어야 한다.
표 6
심볼 트리플의 수 코드 워드의 심볼의 수 코드 워드 결합의 수 소스 데이터 비트의 가능 수
1 3 5 2
2 6 25 4
3 9 125 6
4 12 625 9
5 15 3125 11
6 18 15625 13
7 21 78125 16
8 24 390625 18
9 27 1953125 20
유사하게, 더 큰 그룹의 심볼은 코드 워드로 결합될 수 있다. 누락 변경된 해밍 코드 워드 스페이싱이 4 이상이라면, 코드는 단일 오류 정정, 이중 오류 정정 코드이다. 본 발명의 일 실시예는 도 6에 도시된 바와 같이 오류 특성을 갖는 삼중 채널 상의 4개의 심볼 워드를 기반으로 한 SECDED 코드이다. 이러한 코드는 표 7에서 도시된다. 이러한 코드는 오직 하나의 코드 워드의 중간 심볼 b를 사용한다. 이러한 코드 워드는 채널 상의 4개의 심볼에 3개의 소스 데이터 비트를 매핑하는 변조를 실행하는 가능성을 변경하지 않고 제거될 수 있다. 본 발명의 또 다른 실시예는 표 7에 도시된 바와 같이 동일한 코드를 포함하고, 여기서 bbbb가 되는 코드 워드 5는 사용되지 않는다. 이러한 경우에, 이전 실시예에서와 같이, 표 7의 마지막 열에 도시된 것에서 코드 워드 중에서 심볼 b는 사용하지 않는다. 이러한 실시예에서, 심볼 b의 수령은 오류 표시로서 사용될 수 있고, 오류 또는 오류들의 특성을 모두 결정하고 임의의 정정가능한 오류를 정정하기 위해 추가 분석을 유발할 수 있다. 이러한 예시는 소스 데이터 비트의 그룹의 특정 값의 특정 코드 워드로의 임의의 특정 매핑에 의존하지 않는 것을 이해해야 한다.
표 7
색인 송신된 코드 워드 가능한 소스 데이터 스트림 인코딩
1 aaaa 000
2 aacc 001
3 acac 010
4 acca 011
5 bbbb
6 caac 100
7 caca 101
8 ccaa 110
9 cccc 111
다른 실시예에서, 동일한 채널 상의 5개의 심볼의 그룹은 코드 워드로 그루핑될 수 있고 표 8에 개재된 코드에 따라 인코딩될 수 있다. 이러한 실시예에서, 이러한 클래스의 다른 것들과 같이, 각각의 코드 워드간의 변경 해밍 간격은 적어도 4이며 이것을 SECDED 코드로 생성한다. 다른 코드는 현안의 채널의 오류 특성을 기초로 한 자신의 변경 해밍 코드 워드 스페이싱을 기반으로하는 상이한 특성으로 가능할 수 있다는 것이 이해되어야 한다.
표 8
색인 송신된 코드 워드 가능한 소스 데이터 스트림 인코딩
1 aaaaa 0000
2 aaacc 0001
3 aacac 0010
4 aacca 0011
5 cacca 0100
6 acaca 0101
7 accaa 0110
8 acccc 0111
9 aabbb
10 ababb
11 abbab
12 abbba
13 caaaa 1000
14 caacc 1001
15 cacac 1010
16 cacca 1011
17 ccaac 1100
18 ccaca 1101
19 cccaa 1110
20 ccccc 1111
21 ccbbb
22 cbcbb
23 cbbcb
24 cbbbc
이러한 클래스의 코드는 각각의 코드 워드에서 5개 이상의 심볼을 대안적으로 사용하고 상응하는 채널 인코더, 채널 변조기, 채널 복조기 및 채널 디코더는 채널이 통신 채널 또는 메모리 장치인지의 여부에 관계없이 알려진 논리 합성 기법을 사용하여 실행될 수 있는 것이 이해되어야 한다. 채널이 하나 이상의 메모리 장치로서 구현되는 경우에 본 발명의 임의의 실시예의 개별 코드 워드가 단일 메모리 장치에 전체적으로 저장되거나 또는 다수의 메모리 장치의 전체에 퍼질 수 있는 것이 이해되어야 한다. 표 9는 도 6에 의해 정의된 특성을 갖는 채널을 취하는 도 18의 방법에 따라 찾아진 코드의 다양함 및 효율을 도시한다.
표 9
심볼의 수 코드 워드 결합의 수 소스 데이터 비트의 가능 수
3 5 2
4 9 3
5 21 4
6 51 5
7 118 6
8 291 8
10 1842 10
12 12155 13
도 12는 본 발명의 일 실시예의 3진 통신 채널의 아이 다이어그램을 도시한다. 샘플 포인트(t샘플)에서, 들어가는 신호의 전압은 샘플링, 즉 캡쳐된다. 도면은 심볼 c, ba로서 신뢰성있게 개별적으로 샘플링된 3개의 전압 범위(Vcl-Vch, Vbl-Vbh 및 Val-Vah)를 도시한다. 수신기의 입력 회로의 특성 뿐만 아니라 3개의 전압 범위의 폭과 심볼 a, b 및 c에 대한 전압 범위 사이의 노이즈 마진은 하나의 심볼로서 보내진 신호가 또 다른 신호로서 수신되는 조건을 결정한다. 예컨대, 일 실시예에서, 심볼 ac에 대한 허용가능한 범위가 감소되는 반면에, 심볼 b에 대한 범위는 증가된다. 이러한 변경된 범위는, 심볼 a로서 송신된 심볼이 심볼 c로 수신되거나 그 반대일 확률을 감소시기기 위해 영향을 받는다. 결과적으로 채널은 이것의 송신기 및 수신기 쌍으로, 예컨대, 도 9 내지 도 11의 변경된 해밍 거리 그래프 또는 도 6의 확률 천이 다이어그램에서 도시된 바와 같이 비대칭 오류 특성을 가지기 위해 보장된다. 본 실시예에서, 그러므로, 선택된 전압 범위는 비대칭 오류 특성의 장점을 취하는 3진 코드의 사용을 용이하게 한다. 이는, 심볼 a로부터 심볼 b로 또는 심볼 c로부터 심볼 b로의 오류 변환의 확률이 증가하더라도 유리할 수 있다.
본 발명의 실시예는 도 1, 도 2 및 도 3에 도시된 일반적인 형태의 시스템에서 사용될 수 있다. 예컨대, 도 1에 도시된 형태의 통신 시스템의 경우에, 채널 인코더와 채널 변조기는 본 발명의 코드를 구현하여, 채널의 불완전한 오류 특성의 장점이 취해진다. 채널 복조기 및 채널 디코더는 코드를 디코딩하고, 코드의 오류 감지와 정정의 한계까지 채널에 의해 도입되는 임의의 오류를 감지 및/또는 정정한다. 도 3에서 도시된 저장 시스템의 경우, ECC 인코더는 코드를 구현하여 메모리 장치의 불완전한 오류 특성의 장점을 취한다. ECC 디코더는 판독 데이터를 디코딩하고 코드의 오류 감지 및 정정 한계까지 메모리에 의해 도입된 임의의 오류를 감지 및/또는 정정한다.
도 13은 다이나믹 랜덤 액세스 메모리(DRAM)의 메모리 셀의 개략도를 도시한다. DRAM은 복수의 메모리 셀을 포함하고, 이것의 각각은 단일 비트 정보를 저장하기 위해 일반적으로 사용된다. 각각의 비트의 정보는 일반적으로 도시된 커패시터 상에 저장된 전하량에 의해 나타나고, Vcell은 Vplate보다 더 크거나 작다. DRAM의 중요한 특성은 커패시터 상에 저장된 전하가 방출되어 Vcell은 Vplate를 변위한다는 것이다. 기간 이후에, Vcell은 1 또는 0이 원래 저장되었는지를 구별하기 위한 정보의 비트를 판독할 책임이 있는 DRAM의 부분에 있어서 Vplate 와 불충분하게 상이해진다. 이러한 메커니즘과 해당 기술분야에 알려진 다른 메커니즘은 기록된 1이 0으로 판독되고 그 반대가 되도록 유도할 수 있다. 그러므로, 채널의 부분으로서 고려될 때, 도 1 및 도 3에 따라서, DRAM은 도 4의 천이 확률 다이어그램에 의해 도시되는 바와 같이 종래의 2진 대칭 오류 특성을 갖는다.
일 실시예에서, 메모리 셀 판독 회로는 각각의 메모리 셀내의 셀 전압(Vcell)을 3개의 심볼 a, bc 중 하나로 표시되는 것으로 해석하도록 적응된다. 셀 당 1 비트의 이상의 정보를 저장하는 DRAM은 해당 기술 분야에 알려져 있다. 이러한 예시에서, 도 14에 도시된 바와 같이, 셀이 판독될 때 Val과 Vah 사이의 셀 전압은 심볼 a로서 해석되고, Vbl과 Vbh 사이의 셀 전압은 심볼 b로서 해석되며 셀이 판독될 때 Vcl과 Vch 사이의 셀 전압은 심볼 c로서 해석된다. 이러한 셀 전압 범위가 선택되어서 Vplate는 심볼 b에 상응하는 범위 내에 있고, 심볼 ac에 상응하는 범위는 각각 Vplate의 위 아래에 있다. 메모리 셀이 기록될 때, 셀은 심볼 a로 기록되고, Vcell은 실질적으로 Vdd에 가까운 초기 값으로 설정된다. 또한, 셀이 심볼 c로 기록되어야 하는 경우, Vcell은 실질적으로 Gnd에 가까운 초기 값으로 설정되고 셀이 심볼 b로 기록되어야 하는 경우, Vcell은 Vplate에 가까운 초기 값으로 설정된다. 커패시터 상의 전하가 방출되고 전압(Vcell)이 Vplate를 향해 디그레이드 되면, 심볼 ac는 심볼 b와 덜 구분되지만 서로 불명확하지는 않다. DRAM의 이러한 오류 메커니즘은 3진 메모리로서 동작될 때 불완전한 천이 확률 다이어그램을 갖는다. 이러한 원칙은 다른 저장 미디어나 통신 채널에 적용될 수 있고, 여기서 하나의 중요한 오류 메커니즘은 미리결정된 양이나 상태를 향하여 감쇠하는 임의의 신호를 생성한다. 다양한 심볼에 상응하는 신호 범위가 선택되어서 불완전한 천이 확률 다이어그램이 생성될 수 있고, 이로써, 미리결정된 양보다 작고 많은 신호 값이 이용가능할 때 불완전한 천이 확률 다이어그램이 생성된다.
DRAM은 다른 오류 도입 메커니즘을 갖는다. 일부는 일회용 오류인 소프트 오류를 생성하지만 나머지는 항상 동일한 방식으로 실패하는 결함 메모리 셀을 포함한다. 예컨대, Vcell이 Vplate에 영구적으로 단락되도록 유도하는 방식으로 고장나는 커패시터를 포함하는 메모리 셀은 도 15에 도시된 확률 천이 다이어그램을 갖는 셀로서 스스로를 나타낸다.
다른 실시예는 4개의 값 중 하나를 저장하거나 통신하는 메모리 또는 해당 채널과 사용하기 위한 채널의 패밀리를 포함한다. 셀 당 4개의 값을 저장하는 DRAM 및 다른 메모리 종류는 선행 기술에 알려져 있다. 도 16에 도시된 바와 같이, 예시적인 메모리 셀에 저장된 4개의 전압 범위 중 각각은 4개의 심볼 중 하나를 나타내고, 여기서는 a, b, cd로 표시된다. 심볼 세트의 크기가 2의 파워인 채널 또는 메모리의 경우, 채널 변조는 저장되거나 송신될 심볼을 결정하기 위하여 인코딩된 데이터 스트림으로부터 정수의 비트를 선택하는 것 만큼 간단할 수 있다. 도 16은 4개의 저장되고 송신된 심볼의 각각에 상응하는 상이한 인코딩된 데이터 스트림 비트 쌍으로 4개의 가능 채널 변조를 도시한다. 이러한 인코딩의 첫번째는 도 16에서 I로 라벨링되고, 도 17에 도시된 채널 천이 확률 다이어그램에 도시된다. 이러한 다이어그램은 중심점을 향하여 디그레이딩하는 저장되거나 송신된 전압에 의해 유도된 오류 도입 메커니즘의 특성이다. 특히, 심볼 a d는 각각 심볼 bc를 향해 디그레이딩 하는 반면 심볼 bc는 공통 중간 전압에 접근함으로써 서로에 대하여 유효하게 디그레이딩 할 것이다. 심볼에 대한 인코딩된 채널 비트의 이러한 그레이 코드 인코딩으로 모든 오류 천이가 가능한 것은 아니다. 인코딩된 채널 비트의 쌍 당 4개의 가능 오류가 존재한다(11⇒10; 10⇒00; 00⇒10; 01⇒00). 이러한 오류가 개별 비트로 보여질 때, 이 쌍의 제 1 비트에 있어서, 모든 오류는 가능(1⇒0 및 0⇒1)하지만, 각 쌍의 제 2 비트에 있어서, 오직 하나의 오류 천이가 가능하다(1⇒0). 이러한 채널 및 이러한 채널 변화를 사용하는데 있어서, 각각의 쌍의 제 1 비트에 대한 채널 천이 확률 다이어그램은 도 4에 도시된 것인 반면에, 각각의 쌍의 제 2 비트에 대한 채널 천이 확률 다이어그램은 도 5에 도시된 것이다. 그러나, 각각의 쌍의 제 1 및 제 2 비트의 가능 오류가 커플링되므로(각 쌍에서 단 하나의 오류가 한번 가능함), 도 17의 오류 천이 그래프를 도 4 및 도 5의 그래프로 분해하는 것은 일부 정보를 잃을 수 있고, 도 17을 기반으로 한 코드는 홀수 비트 위치에 대한 도 4에 기반하고 짝수 비트 위치에 대한 도 5에 기반한 2진 코드보다 더 높은 정보 콘텐트 또는 더 나은 오류 정정/감지를 가질 수 있다.
도 16 및 도 17에 의해 표시되는 4진 채널 또는 메모리에 의해 표시되는 환경에서, 채널 인코딩 및 채널 변조는 함께 간편하게 다뤄질 수 있다. 예컨대, k 2진 소스 데이터 비트의 콜렉션은 데이터 워드로 콜렉트될 수 있고, 각각의 데이터 워드는 k 비트 코드 워드로 인코딩될 수 있다. 이러한 경우에, k가 짝수인 한, 인코딩은 채널/메모리의 오류 특성을 고려하고, 코드/채널 결합의 임의의 바람직한 오류 정정 및 감지 특성이 얻어질 수 있다.
도 18은 채널/메모리의 오류 주입 특성에 기반한 오류 정정 성능의 바람직한 레벨을 충족하는 코드를 찾는 방법 - 즉, 데이터 워드와 코드 워드간의 일치 - 을 나타낸다. 알고리즘은 코드 워드 스페이스를 찾아서 서로로부터 적당한 변경 해밍 간격을 갖는 코드 워드를 찾고 데이터 워드에 이러한 코드 워드를 할당한다. 알고리즘은 예컨대, 코드 워드의 크기, 생성된 코드의 바람직한 또는 타겟 변경 해밍 코드 워드 스페이싱 및 변경 해밍 코드 워드 거리 및 코드 워드 내의 각각의 비트위치 또는 비트 위치의 그룹에 대한 채널 오류 천이 특성과 같은 코드 파라미터를 결정함으로써 단계 A에서 시작한다. 이러한 특성의 일부는 채널/메모리의 특성, 전체 시스템 오류 비율 타겟 및 메모리 조직 제약에 의해 결정될 수 있다. 이와 같이, 이것은 이러한 파라미터에 적용되는 코드를 찾는 이러한 알고리즘에 대한 입력이된다. 표 5는 단계 A에서 사용될 수 있어서 타켓 변경 해밍 코드 워드 스페이싱으로서 바람직한 오류 정정 및 감지 특성을 수량화한다.
일반적으로, 코드 워드가 더 커지면, 미리 결정된 레벨의 오류 감지 및 정정을 성취하기 위한 오버헤드도 낮아지고 유효한 생성된 코드가 더 많아진다. 또한, 각각의 심볼 위치에 대한 더 많은 채널 오류 천이 특성은, 불완전한 특성이 완전한 오류 천이 다이어그램을 취하는 비교가능한 종래의 코드보다 더욱 유효한 코드를 가능하게 할 가능성이 더 커진다.
단계 B에서, 가능 코드 워드 중 하나는 제 1 실제 코드 워드로서 선택되고 지정된다. 변수 J는 그룹으로서 모두 서로로부터의 최소 변경 해밍 간격 기준을 충족하는 것을 발견한 가능 코드 워드의 실제 개수의 러닝 카운트로서 유지된다. 이러한 제 1 코드 워드는 불규칙하게 또한 채널/메모리의 오류 특성에 대한 인사이트에 따라, 또는 모든 0 또는 모든 1과 같은 간단히 알려진 시작 코드 워드로, 또는 모든 0 또는 모든 1로부터의 특정 변경 해밍 거리의 코드 워드로, 또는 일부 다른 기준으로 선택된다. 본 발명은 제 1 코드 워드를 선택하는 임의의 특정 방법에 한정되지 않는다. 제 1 코드 워드의 선택은 도 18의 알고리즘이 찾게 될 코드 워드의 세트에 영향을 미칠 것이다. 일부 최종 세트의 코드 워드는, 일부 최종 세트의 코드 워드가 다른것들 보다 더 많은 코드 워드를 가질 수 있고 일부는 다른것들 보다 하드웨어 인코더 또는 디코더에서 더욱 쉽게 구현가능한 점에 있어서 다른 것에 비해 선호될 것이다. 하나의 초기 코드 워드가 다른 코드 워드보다 선호되는지 채널의 오류 천이 다이어그램, 구현 제약과 방법 및 오류 감지 및 정정의 타겟 레벨의 함수이다.
제 1 코드 워드가 최종 코드 설계에서 변화가능하므로, 도 18의 알고리즘은 상이한 제 1 코드 워드 및/또는 상이한 후보 선택 알고리즘(단계 C)으로 코드 워드 세트 선호의 단순한 기준 또는 코드 워드 세트 선호의 복수의 단순한 기준의 집합에 따라 모든 생성된 코드 중 가장 선호되는 것을 선택하여 여러번 수행될 수 있다. 본 발명은 다른것에 대하여 코드 워드의 콜렉션을 선택하기 위한 임의의 특정 기준이나 기준의 콜렉션에 한정되지 않는다.
단계 C에서, 새로운 후보 코드 워드는 고려를 위해 아직 선택되지 않은 잠재적 코드 워드로부터 선택된다. 단계 A에서 처럼, 이것은 임의의 수의 상이한 방식으로 행해질 수 있다. 예컨대, 내부 루프의 현재의 반복을 위한 후보 코드 워드는, 선택된 코드 워드로부터 작은 변경 해밍 거리 또는 간격인 후보 코드 워드를 선택하거나 다른 방법에 의하여 마지막 후보 코드워드로부터 무작위로, 점진적으로 선택될 수 있다. 예컨대, 코드 워드가 멀티 디지트 정수, 베이스 1(심볼 세트의 크기)로서 고려되면, 점진적인 방법은 ci +1=ci+1를 선택하는 것이며, ci는 i번째 후보 코드 워드이다. 대안적인 방법은, 단계 C의 후속 실행에서, 제 1 코드 워드(w1)로부터의 변경 해밍 간격 d인 모든 후보 코드 워드를 선택하고, 이어서 코드 워드(w2)로부터 변경 해밍 간격 d인 모든 후보 코드 워드를 선택하고 지정된 코드 워드(wj)의 리스트가 소진될 때까지 이를 지속하는 것이다. 지정된 코드 워드의 리스트가 소진될 때 여전히 선택되지 않은 후보 코드 워드가 남아있을 경우, 모든 남아있는 선택되지 않은 후보 코드 워드는 다른 방법에 의해 무작위로 또는 점진적으로 단계 C에서 순차적으로 선택될 수 있다.
단계 C의 후속 실행의 모든 후보 코드 워드를 순차적으로 선택하는 것으로 구성된 다른 잠재적인 방법은, 제 1 코드 워드로부터 변경 해밍 거리 1인 모든 후보 코드 워드를 먼저 선택하고, 이어서 제 1 코드 워드로부터 변경 해밍 간격 2인 모든 후보를 선택하고 그 후에 제 1 코드 워드로부터 변경 해밍 간격 3인 모든 후보들을 선택하며 모든 후보들이 선택될 때까지 이를 지속하는 것이다. 다른 잠재적인 방법은, 상응하는 인코더나 디코더의 유효하거나 작은 구현을 가능하게 하는 후보 코드 워드를 선택하는 단계를 포함한다. 후보 코드 워드가 선택된 순서는 생성된 코드와 이것의 구현의 용이함에 영향을 주므로 상이한 구현 환경은 상이한 선택 시퀀스나 기준을 요구할 수 있다. 본 발명은 후속하는 후보 코드 워드를 선택하는 임의의 특정 방법에 한정되지 않는다.
후보 코드 워드(c i )가 단계 C에서 선택되면, 후보 코드 워드(c i )를 포함하는 잠재적인 코드의 변경 해밍 코드 워드 스페이싱 및 변경 해밍 코드 워드 거리는 단계 D에서 결정된다. 이것은 후보 코드 워드(c i )와 모든 이전에 지정된 코드 워드(w j ) 사이의 변경 해밍 거리를 결정하고 타겟 변경 해밍 코드 워드 스페이싱에 그 결과를 비교함으로써 행해질 수 있다. 후보 코드 워드를 포함하는 잠재적인 코드의 변경 해밍 코드 워드 스페이싱이 타겟 변경 해밍 코드 워드보다 작거나 더 많거나 동일할 지를 결정하는 대안적인 방법이 사용될 수 있다. 먼저 지정된 코드 워드와 현재 후보 코드 워드간의 변경 해밍 간격의 결정은 상기 기재된 바와 같이 허용된 오류 천이를 기반으로 한다.
유사하게, 후보 코드 워드(c i )를 포함하는 잠재적 코드의 변경 해밍 코드 워드 거리는 당업자에 알려진 임의의 방법에 의해 잠재된 코드의 변경 해밍 코드 워드 스페이싱의 결정 이전에 또는 이와 동시에 결정될 수 있다.
단계 E에서, 모든 먼저 지정된 코드 워드로부터의 후보 코드 워드의 변경된 해밍 간격과 후보 코드 워드로부터 각각의 먼저 지정된 코드 워드( 및 그 반대)의 변경 해밍 거리 양쪽은 생성될 코드를 위한 타겟 최소 변경 해밍 코드 워드 스페이싱 및 타겟 최소 변경 해밍 코드 워드 거리에 비교된다. 변경 해밍 간격과 변경 해밍 거리(즉, 후보 코드 워드로 그리고 이것으로 부터 거리)는 각각 타겟 최소 변경 해밍 코드 워드 스페이싱과 타겟 최소 변경 해밍 코드 워드 거리보다 크거나 같으며, 후보 코드 워드(ci)는 단계 F에서의 실제 코드 워드(wJ)로서 지정된다. 변경 해밍 간격이 타겟 최소 변경 해밍 코드 워드 스페이싱보다 작을 경우, 또는 최소 해밍 거리 중 어느 것이 타겟 최소 변경 해밍 코드 워드 거리보다 작을 경우, 후보 코드 워드(ci)는 코드 워드로서 거절된다. 과정은 단계 G에서 계속된다.
단계 G에서, 충분한 수의 코드 워드가 초기 파라미터를 충족하도록 지정되거나 충분하게 많은 잠재적 코드 워드가 초기 파라미터를 충족하는 코드가 생성될 수 없어서 거절되거나, 또는 모든 잠재적 코드 워드가 고려되면, 코드 생성 과정이 완료된다. 과정이 불완전하면, 과정은 다른 후보 코드 워드를 선택하고 평가하기 위해 단계 C로 돌아간다. 과정이 완료되고 충분한 수의 코드 워드가 지정되면, 과정은 단계 H로 나아가고, 지정된 코드 워드는 일대일 대응으로 데이터 워드에 할당된다. 처리가 완료되고 충분한 수의 코드 워드가 지정되지 않을 경우, 타겟 특성을 충족하는 코드가 찾아지지 않았기 때문에 이 과정은 실패로 끝난다. 처리는 덜 제한적이도록 초기 파라미터를 수정함으로써 단계 A에서 선택적으로 다시 시작할 수 있거나 상이한 제 1 코드 워드를 선택함으로써 단계 B에서 다시 시작할 수 있다.
단계 H는 데이터 워드를 일대일 대응으로 코드 워드에 할당한다. 이것은 연속하는 코드 워드를 연속하는 데이터 워드에 할당하는 양쪽 세트를 통해 순차적으로 스텝핑함으로써 실행될 수 있다. 대안으로, 할당 동작은 무작위로 행해질 수 있다. 대안으로, 할당은 점진적으로 그리고 생성하는 채널 인코더와 채널 디코더의 구현을 고려하여 이루어질 수 있어서 하나 또는 또 다른 또는 양쪽의 이러한 유닛의 더욱 효과적인 구현을 야기할 수 있다. 대안으로, 이 할당은, 다수의 할당이 시도되고 구현되고, 인코더, 디코더 또는 양쪽의 가장 바람직한 구현을 야기하는 할당이 궁극적으로 선택되는 방식으로 반복적으로 수행될 수 있다. 본 발명은 코드 워드를 데이터 워드에 할당하는 것을 수행하는 임의의 특정한 방법에 한정되지 않는다.
다른 실시예에서, 도 18의 방법은 시간, 영역 및/또는 전력상 유효한 특정 상황을 위한 코드를 찾기 위해 논리 최적화 및 논리 합성에 대해 선행 기술에서 잘 알려진 방법과 결합하여, 복수의 코드 및 이것의 인코더 및 디코더 구현을 반복적으로 또는 병행하여 찾는다.
도 18의 방법의 동작을 도시하기 위하여, 예시가 도 17의 오류 천이 차트에 의해 기재된 4진 채널, 4개의 심볼의 코드 워드 크기 및 4의 최소 변경 해밍 코드 워드 스페이싱에 기반하여 표시된다. 이러한 예시에서, 표 10은 방법에 의해 따르는 단계 및 각각의 단계에서 수행된 동작을 개재한다.
표 10
단계 동작 코멘트
1 A m=4; 모든 가능 코드 워드의 세트는 심볼의 모든 4-투플의 세트이고, 각각은 심볼 세트 {a, b, c, d}로부터 드로잉된다. 각각의 심볼에 대한 오류 천이는 도 17에 도시된다. 타겟 변화 해밍 코드 워드 간격은 4이다. 이것은 테이블 123 당 SECDED 코드를 생성할 것이다.
2 B w1=c1="aaaa" 설정
J=1 설정
"aaaa"를 제 1 후보 코드 워드 c1로 선택하고 이것을 제 1 코드 워드 w1로서 지정한다. 변수 J는 지정된 코드 워드의 러닝 카운트이다.
3 C i=1+1=2 설정
C2="baaa" 선택
변수 i는 선택된 후보 코드 워드의 수의 러닝 카운트이다. 제 2 후보 코드 워드 C2는 "baaa"가 되도록 선택된다.
4 D mHd(w1, c2)=1 코드 워드"aaaa"의 단일 허용된 오류는 이것을 "baaa"로 변환하므로, 지정된 코드 워드 w1로부터 후보 c2로의 변경 해밍 거리는 1이다.
5 E mHd(w1, c2)<3이므로, 단계 G로 진행 후보 코드 워드는 지정된 다른 코드 워드가 되기에 기존의 코드 워드에 지나치게 가깝다.
6 G 모든 가능 코드 워드가 선택된 것은 아니므로, 단계 C로 진행 이때까지 44=256의 2개의 가능 코드 워드가 고려된다.
7 C i=2+1=3을 설정
c3="caaa"을 선택
"caaa"는 제 3 후보 코드 워드로서 선택된다.
8 D mHs(w1, c3)=2 "caaa"로부터 "baaa"로의 변경 해밍 간격이 1이기 때문에, "aaaa"과 "cccc"사이의 변경 해밍 거리는 2이고, "aaaa"로부터 "baaa"로의 변경 해밍 간격은 또한 1이다.
9 E mHs(w1, c3)<4이므로, 단계 G로 진행 후보 코드 워드는 지정된 다른 코드 워드가 되기에 기존의 코드 워드에 지나치게 가깝다.
10 G 모든 가능 코드 워드가 선택된 것은 아니므로, 단계 C로 진행
11 C i=3+1=4를 설정
c4="daaa"를 선택
"daaa"는 제 4 후보 코드 워드로서 선택됨
12 D mHs(w1, c4)=2 "daaa"로부터 "baaa"로의 변경 해밍 거리가 2이기 때문에, "aaaa"와 "daaa"사이의 변경 해밍 거리는 3이고, "aaaa"로부터 "baaa"로의 변경 해밍 거리는 또한 1이다.
13 E mHs(w1, c4)<4이므로, 단계 G로 진행
14 G 모든 가능 코드 워드가 선택된 것은 아니므로, 단계 C로 진행
15 C i=4+1=5를 설정
c5="abaa"를 선택
"abaa"는 제 5 후보 코드 워드로서 선택됨
16 D mHd(w1, c5)=1 "aaaa(w1)"로부터 "abaa"로의 변경된 해밍 거리는 오직 1이다.
17 E mHd(w1, c5)<3이므로, 단계 G로 진행 "abaa"는 "aaaa"에 또한 코드 워드가 되기에 지나치게 가깝다.
18 G 모든 가능 코드 워드가 선택된 것은 아니므로, 단계 F로 진행
등 등
표 11은 표 10에서 도시된 바와 같이 도 18의 방법에 의해 결정된 코드를 도시한다. 특히, 이것은 도 17에 도시된 오류 천이 차트를 갖는 4진 채널에 대한 코드이다. 전압이나 전하가 오직 중간지점으로 디그레이딩되는 경향이 있는 기간이나 셀 당 2 비트를 저장 또는 송신하는 메모리 및 채널에 적용가능한 코드를 표시한다. 이러한 코드는 4의 최소 변경 해밍 코드 워드 스페이싱을 가지고, 이것은 단일 오류 정정, 더블 오류 감지 코드인 것을 의미한다. 특히, 도 18의 방법은, 20개의 가능 코드 워드를 찾으며 적어도 서로로부터 3의 거리이다. 표 11은 소스 데이터 스트림으로부터 16개의 가능 4-비트 데이터 워드에 대하여 도 18의 단계 H당 할당된 이러한 20개의 코드 워드중 16개를 도시한다. 이로써, 4개의 4진 심볼은 각각의 니블에 대하여 완전한 SECDED 보호로 4 비트의 소스 데이터를 저장하거나 송신할 수 있다. 본 발명은 단계 M에서 할당된 바와 같이 데이터 워드에 대한 코드의 특정 할당에 따르지 않으며, 효율적이거나 바람직한 인코더 및/또는 디코더를 생성하는 임의의 할당이 적절하다.
표 11
코드 워드 인코딩된 데이터 스트림 데이터 워드
1 aaaa 11 11 11 11 0000
2 dbaa 01 10 11 11 0001
3 bdaa 10 00 11 11
4 caca 00 11 00 11 0010
5 acca 11 00 00 11 0011
6 ddca 01 01 00 11 0100
7 bbbb 10 10 10 10 0101
8 aadb 11 11 01 10
9 dbdb 01 10 01 10 0110
10 bddb 10 01 01 10 0111
11 caac 00 11 11 00 1100
12 acac 11 00 11 00 1110
13 ddac 01 01 11 00 1101
14 cccc 00 00 00 00 1111
15 aabd 11 11 10 01
16 dbbd 01 10 10 01 1011
17 bdbd 10 01 10 01 1010
18 cadd 00 11 01 01
19 acdd 11 00 01 01 1001
20 dddd 01 01 01 01 1000
채널 특성이 최소 하나의 오류가 각각의 심볼 위치에서 가능한 것일 경우, 코드 워드로부터 2 이상의 거리 이내인 적은 수의 가능 수신 워드가 존재한다. 예컨대, 도 17에 도시된 오류 변환 차트를 갖는 4진 채널에 있어서, 수신된 워드는 caaa이고 이것은 코드 워드 aaaa로부터 변경 해밍 거리 2이며 이러한 오류 양쪽은 제 1 오류 위치에서 일어난다. 결과적으로, 표 10에서 도시된 바와 같이, 후보 코드 워드 daaa는 코드 워드 aaaa로부터의 이것의 변경된 해밍 간격이 3이므로 가능 코드 워드가 아니다. 그러나 동일한 코드 워드의 제 2 오류의 확률은 0 또는 송신되거나 저장된 워드의 또 다른 심볼의 제 1 오류보다 실질적으로 작으며, 이로써, 단일 심볼 내의 다수의 오류가 그 심볼의 제로 오류나 단일 오류로부터 정확하게 구분되지 않더라도 오류의 감지되지 않은 콜렉션의 전체 확률은 임계값 아래가 될 수 있는 것이 가능하다. 이러한 예시는, 단일 심볼 내의 다수의 오류가 코드의 형성에서 고려되지 않을 경우, 코드 워드 aaaa로부터 가능 수신 워드 caaa로의 변경 해밍 간격은 무한대이다. 결과적으로, 표 10의 엔트리 12에서의 코드 워드 aaaa와 후보 코드 워드 daaa간의 변경 해밍 간격은 무한대이고, 후보 코드 워드 daaa는 도 18의 방법의 단계 F로 진행함에 따라 제 2 코드 워드로 지정될 수 있다. 오류 컨디션의 이러한 릴렉싱된 세트는 도 18의 방법은 SECDED 코드에 대한 기준을 충족하는 24개의 코드 워드를 발견한다. 데이터 워드에 대한 가능한 할당을 갖는 이러한 24개의 코드 워드는 표 12에서 도시된다.
표 12
코드 워드 인코딩된 데이터 스트림 데이터 워드
1 aaaa 11 11 11 11 0000
2 daaa 01 11 11 11 0001
3 adaa 11 01 11 11
4 ddaa 01 01 11 11 0010
5 bbba 10 10 10 11 0011
6 aada 11 11 01 11 0100
7 dada 01 11 01 11 0101
8 adda 11 01 01 11
9 ddda 01 01 01 11
10 ccab 00 00 11 10 0110
11 cacb 00 11 00 10 0111
12 accb 11 00 00 10
13 dbbc 01 10 10 00
14 bdbc 10 01 10 00 1111
15 bbdc 10 10 01 00 1110
16 aaad 11 11 11 01
17 daad 01 11 11 01
18 adad 11 01 11 01 1101
19 ddad 01 01 11 01 1100
20 cccd 00 00 00 01 1011
21 aadd 11 11 01 01 1010
22 dadd 01 11 01 01
23 addd 11 01 01 01 1001
24 dddd 01 01 01 01 1000
또한, 코드 워드 크기 m이 8개의 심볼이면, 도 17의 주어진 오류 천이 차트를 고려하면 SECDED 코드를 찾을 때 도 18의 알고리즘은, 심볼 당 다수의 오류가 고려되면 1762개의 가능 코드 워드를 찾고 심볼 당 다수의 오류가 고려되지 않으면 1866개의 가능 코드 워드를 찾는다.
양쪽의 경우에서, 코드 워드 크기 m이 4일 때, 도 18의 방법은 16개 이상의 가능 코드 워드를 찾는 것이 중요하다. 코드의 정보 용량은 코드 워드의 수의 log2에 의해 고려되고, 2개의 4-심볼 코드의 정보 용량은 고려 당 다수의 오류가 고려되고 고려되지 않을 때 개별적으로 4.322 비트 및 4.585 비트이다. 채널은 4진 채널이므로, 4개의 심볼을 송신하거나 저장할 필요가 있는 로우(raw) 채널 용량은 8 비트이다. 8개의 송신되거나 저장된 비트를 사용하는 SECDED 해밍 코드의 정보 콘텐트가 4 비트인 것은 선행 기술에 잘 알려져 있다. 표 11 및 표 12에 표시된 본 발명의 코드는 비교가능한 SECDED 해밍 코드보다 더 큰 효율성을 갖는다.
단계 F에 관하여, 대안으로, 해밍 간격 d이거나 새로운 코드 워드(wj)보다 작은 모든 먼저 선택되지 않은 후보 코드 워드는 스스로 코드 워드가 되기에 기존의 코드 워드에 상당히 가까운 것으로 표시될 수 있다. 이것은 필수적으로 선택되는 것(그리고 명료하게 거절되는 것)으로 표시될 수 있어서 단계 C의 미래의 수행에서 다시 선택될 수 없거나 단계 C에서 이어서 선택될 때 단계 E에서 빠른 거절로 표시될 수 있다. 더 신속하게 전체 코드를 찾는 것을 기능하게 하기 위한 다른 최적화는 본 발명의 맥락에서 가능하다.
본 발명의 실시예는 근본적으로 불완전한 오류 주입 특성을 갖는 다른 메모리 장치 및 통신 장치에 적용할 수 있는 것이 이해될 것이다. 다른 메모리 장치 및 통신 채널은 복수의 오류 주입 메커니즘을 가질 수 있고, 이것의 하나 이상은 다른것 보다 더욱 가능성이 있다. 실질적으로 가능성이 적은 메커니즘이 무시되어서 불완전한 오류 주입 특성을 갖는 것으로서 장치 또는 채널을 만들 수 있다.
상기 상세한 설명에서, 본 발명은 특정 실시예를 참조하여 기재되었다. 본 발명의 정신 및 권리 범위를 넓게 벗어나지 않고, 기재된 실시예를 다양하게 변경할 수 있다. 본 실시예의 기재 및 도면은 따라서 제한적인 개념보다는 설명적인 개념으로 이해되어야 한다.
이하의 용어는 본 발명의 상세한 설명에서 일반적으로 사용된다:
용어 x 는 소스 데이터 스트림을 표시하기 위해 사용된다. 이것은 일반적이되 필수적이진 않지만 2진 비트 스트림이다.
용어 u 는 압축된 데이터 스트림을 표시하기 위해 사용된다. 이것은 일반적이되 필수적이진 않지만 2진 비트 스트림이다.
용어 v 는 인코딩된 데이터 스트림을 표시하기 위해 사용된다. 이것은 일반적이되 필수적이진 않지만 2진 비트 스트림이다.
용어 v' 는 송신된 심볼 스트림을 표시하기 위해 사용된다. 이것은 일반적으로 심볼 스트림이다. 각각의 심볼은 단일 전기적 또는 물리적 엔티티 또는 성질에 의해 표현될 수 있거나, 각각의 심볼은 더 작은 심볼의 콜렉션, 예컨대 2진 비트의 콜렉션으로 구성될 수 있다. 하나의 극단에서, 각각의 심볼은 2진 비트이고, 또 다른 극단에서, 각각의 심볼은 상당히 많은 비트의 원래 소스 데이터 스트림을 인코딩할 수 있다.
용어 r' 은 수신된 심볼 스트림을 표시하기 위해 사용되고, 이것은 불완전한 채널 및/또는 메모리에 의한 오류의 주입 이후에 송신된 심볼 스트림이다.
용어 r 은 복조 이후에 수신된 데이터 스트림을 표시하기 위해 사용된다. 이것은 일반적이되 필수적이지는 않지만 2진 비트 스트림이다.
용어 w 는 채널 또는 ECC 디코더에 의해 출력되는 바와 같이 정정된 데이터 스트림을 표시하기 위해 사용된다. 이것은 일반적이되 필수적이진 않지만 2진 비트 스트림이다.
심볼 x' 는 최종 수신된 데이터 스트림을 표시하기 위해 사용된다. 이것은 일반적이되 필수적이진 않지만 2진 비트 스트림이다.
심볼 S 는 채널이 자연적으로 통신하는 심볼의 세트를 표시하기 위해 사용된다. 2진 채널에 있어서, 심볼 세트 S 는 심볼 0 및 1로 구성된다. 변수 l은 심볼 세트의 크기(또는 심볼 세트의 요소의 수)를 지칭하기 위해 사용된다. "심볼"이라는 용어는 소스 또는 코드 데이터의 단일 비트의 값의 표시를 의미한다. 심볼 세트의 크기는 단일 심볼이 가질 수 있는 상이한 값의 수이다. 2진 심볼 세트의 크기는 2개의 값(0 또는 1)이 각각의 심볼을 위해 사용되므로, 2이다.
용어 n은 심볼이나 비트 단위의 코드 워드의 크기를 나타내기 위해 사용된다. "코드 워드"라는 용어는 하나 이상의 데이터 워드를 표한하기 위해 할당되고 선택적으로 오류 검출 또는 정정 정보를 포함하는 미리결정된 길이의 코드 심볼의 시퀀스를 의미한다.
용어 k는 데이터 워드의 크기를 나타내기 위해 사용된다. 데이터 워드는 채널 심볼이나 저장된 비트내에 함께 인코딩되는 비트나 심볼의 콜렉션이다. "데이터 워드"라는 용어는 소스 데이터의 하나 이상의 비트를 표시하는, 미리 결정된 길이의 심볼의 시퀀스를 의미한다.
조건 pq는 오류가 송신되거나 저장된 심볼 스트림 내의 임의의 심볼 위치에서 도입될 확률을 나타내기 위해 사용된다.
"심볼 n-투플(tuple)(예컨대, "심볼 트리플")은 시퀀스가 소스 데이터의 하나 이상의 비트의 상응하는지와 상관없이 데이터나 코드의 n개의 심볼의 시퀀스를 의미한다.
코드의 유효성은 데이터 워드 k의 크기를 코드 워드 n의 크기로 나눈 비율로서 측정된다. 다시 말해서, 코드의 유효성은, 인코딩되지 않은 데이터의 주어진 수를 송신하거나 저장하기 위해 요구되는 인코딩된 데이터의 비트의 수와 인코딩되지 않은 데이터 비트의 수의 비율이다. 데이터 세트나 송신된 심볼 세트가 비2진일 경우, n 또는 k 는 그 심볼 세트 크기로 곱해진다. 인코딩된 데이터의 경우, 심볼 세트 크기는 "1"로서 표시된다. 그러므로, 데이터 워드가 2진이고 송신된(또는 저장된) 심볼 스트림이 비2진일 경우, 코드의 유효성은 k/n*l로서 계산된다.
"데이터 스트림" 또는 "심볼 스트림"이라는 용어는, 순수 단일 비트 와이드 직렬 스트림으로부터 멀티 비트 병렬 조직의 모든 방식의 통신 또는 저장 메커니즘 - 여기서 많은 심볼이 동시에 또는 병렬로 통신 또는 저장됨 - 을 나타내기 위해 사용된다. 또한, 하나 이상의 메모리 장치를 포함하는 채널의 경우, 인코딩된 심볼 스트림이 메모리를 임의의 순서로 특정 어드레스에 기록하는 시퀀스와 정보가 이러한 어드레스로부터 판독되어 수신된 데이터 또는 심볼 스트림을 형성하는 시퀀스간의 관련성이 꼭 필수적으로 존재하지 않는다. 또한, 입력 및 출력을 갖는 블록으로서 메모리 장치(303)의 도시는 멀티 포트 메모리에 대한 본 발명의 적용가능성을 어떤 방식으로든 제한하는 것을 의도하지 않는다는 것이 이해될 것이다. 본 발명의 실시예들은 저장 셀 또는 로케이션 당 하나 이상의 2진 비트 정보를 저장하는 비2진 채널 또는 메모리 및/또는 비대칭 오류 주입 특성을 보이는 모든 폭 및 구조 또는 채널 및 메모리에 적용가능하다. 특히, 본 발명은, 데이터 인코딩 및 디코딩이 메모리 또는 메모리들 내에 또는 메모리 컨트롤러 또는 시스템의 다른 곳에 위치되는지의 여부에 관계없이, 공유된 데이터 어드레스 및/또는 제어 신호 경로를 갖는 종래의 구조의 메모리 시스템 및 메모리 시스템 내의 메모리 장치에 데이터를 기록하고 그로부터 데이터를 판독하기 위한 공통 또는 공유된 컨트롤러 회로에 명확하게 적용가능하다.
본 발명의 목적에 있어서, "변경 해밍 거리"라는 용어는 한 쌍의 코드 워드와 관련하여, 제 1 코드 워드로부터 제 2 코드 워드로 이동하기 위한 특정 가능 심볼 천이 다이어그램 - 예컨대 도 11에 도시된 바와 같은 것 - 을 트래버스(traverse)하기 위해 요구되는 허용된 오류의 최소 수를 의미한다. 변경 해밍 거리는, 허용된 오류 천이에 상응하는 유일한 차이점이 고려된다는 점에 있어서 종래의 해밍 거리와 상이하다. 다시 말해서, 변경 해밍 거리는 제 1 워드에서 제 2 워드로 변환할 수 있는 가능 오류의 가장 작은 수이다. 변경 해밍 거리는 불완전 채널에서 필수적으로 대칭은 아님이 이해되어야 한다. 도 11에 있어서, 예컨대 3개의 오류 천이 aaa aab, 이어지는 aab abbabb bbb를 통해 aaabbb로 변환될 수 있으므로, aaa로부터 bbb까지의 변경 해밍 거리는 3이다. 그러나, 오류 천이의 결합이 bbbaaa로 변환할 수 없으므로, bbb로부터 aaa로 변경 해밍 거리는 무한하다. 반대로, aaabbb가 3개의 심볼 위치에서 상이하므로, 종래의 해밍 거리는 대칭이고 aaabbb사이의 해밍 거리는 심볼 천이 다이어그램에 상관없이 3이다.
한 쌍의 코드 워드간의 "변경 해밍 간격"은, 2개의 코드 워드 또는 임의의다른 워드가 될 수 있는 제 3 워드로 변환될 양쪽 코드 워드에 대해 요구되는 허용되거나 가능한 오류의 최소 총 수이다. 2개의 허용된 오류 천이(abb bbb bba)는 양쪽 워드가 공통 워드 bbb로 변환되는 것을 초래하므로, 워드 abbbba 사이의 변경 해밍 간격은 2이다. 유사하게, aaa는 상기 도시된 바와 같이 2개의 허용된 오류 천이에서 abb로 변경될 수 있으므로, aaaabb사이의 변경 해밍 간격은 2이다. 변경 해밍 간격의 정의는 추가적으로 이하에서 기재된다.
전체 코드의 "변경 해밍 코드 워드 스페이싱"은 코드의 코드 워드의 임의의 쌍 사이의 최소 변경 해밍 간격이다.
불완전한 오류 특성을 갖는 채널 또는 메모리의 경우, 예컨대 하나의 코드 워드가 하나 이상의 오류 천이에 더하여 또 다른 코드 워드의 결과로서 표현될 수 없을 경우, 2개의 코드 워드간의 변경 해밍 거리는 동일한 두개의 코드 워드간의 종래의 해밍 거리보다 더 크게될 수 있다. 예컨대, 도 11을 참조하면, 트리플 aaacca는 2개의 심볼 위치에서 상이하므로 2의 해밍 거리를 갖는다. 동일한 2개의 트리플 aaacca는 양쪽 트리플이 2개의 오류 천이 각각을 통해, 예컨대, aaa →baa→ bbacca bca bba를 통해 공통 트리플 bba로 변형될 수 있으므로, 4의 변경 해밍 간격을 갖는다.

Claims (29)

  1. 시스템으로서,
    제 1 및 제 2 단부를 갖는 채널 - 상기 채널의 제 1 단부는 송신기에 결합되고 상기 채널은 상기 제 1 단부로부터 상기 제 2 단부에 심볼 세트로부터 선택된 심볼을 송신할 수 있음 -, 및
    코드 워드의 세트를 포함하는 코드 - 상기 코드 워드의 세트의 요소는 하나 이상의 코드 심볼 길이가 되고, 상기 코드 심볼은 상기 심볼 세트의 구성요소가 됨 - 을 포함하고,
    상기 채널은 불완전 오류 도입 특성을 나타내며,
    상기 채널의 오류 도입 특성을 고려한 코드 워드의 세트의 요소들 사이의 최소 변경 해밍 간격은, 상기 코드 워드의 세트의 요소들 간의 최소 해밍 거리보다 큰, 시스템.
  2. 청구항 1에 있어서, 상기 코드는 데이터 워드의 세트 - 상기 데이터 워드의 세트의 크기는 상기 코드 워드의 세트의 크기와 동일함 -, 및 상기 데이터 워드의 세트의 요소와 상기 코드 워드의 요소 사이의 일대일 맵핑을 더 포함하는, 시스템.
  3. 청구항 2에 있어서, 상기 심볼 세트의 크기는 적어도 3인, 시스템.
  4. 청구항 2에 있어서, 상기 심볼 세트의 크기는 적어도 4인, 시스템.
  5. 청구항 2에 있어서,
    상기 채널의 제 2 단부에 결합된 수신기 - 상기 수신기는 채널 복조기 및 채널 디코더를 포함함 - 를 더 포함하고,
    상기 송신기는 채널 변조기 및 소스 데이터 인코더를 포함하고 상기 채널의 제 1 단부는 상기 송신기에 결합되고,
    상기 채널은 통신 채널이고,
    상기 송신기는 데이터 워드를 수신하고 코드 워드를 생성함으로써 코드를 실행하며,
    상기 수신기는 상기 채널로부터 심볼의 그룹을 수신하고 상기 송신기에 의해 수신된 데이터 워드에 상응하는 데이터 워드를 생성함으로써 코드를 실행하는, 시스템.
  6. 청구항 5에 있어서, 상기 심볼 세트의 크기는 적어도 3인, 시스템.
  7. 청구항 5에 있어서, 상기 심볼 세트의 크기는 적어도 4인, 시스템.
  8. 청구항 1에 있어서, 상기 코드 워드의 세트의 요소들 간의 최소 변경 해밍 거리는 4 이상인, 시스템.
  9. 청구항 1에 있어서, 상기 코드 워드의 세트의 요소들 간의 최소 변경 해밍 거리는 5 이상인, 시스템.
  10. 시스템으로서,
    복수의 메모리 셀을 포함하는 적어도 하나의 메모리 장치 - 각각의 메모리 셀은 저장된 심볼의 세트의 구성요소와 일대일로 부합하는 복수의 저장 상태를 가지고, 상기 메모리 장치는 불완전 오류 도입 특성을 갖는 오류 메커니즘을 가짐 -,
    상기 저장된 심볼의 세트로부터 선택된 심볼로부터 얻어진 데이터가 상기 적어도 하나의 메모리 장치의 복수의 메모리 셀로부터 판독되도록 하기 위해 상기 적어도 하나의 메모리 장치에 결합된 메모리 컨트롤러,
    상기 적어도 하나의 메모리 장치로부터 판독되는 데이터의 오류를 정정하기 위해 상기 메모리 컨트롤러에 결합된 채널 디코더 - 상기 오류는 상기 오류 메커니즘에 의해 적어도 부분적으로 도입됨 - 를 포함하며,
    상기 채널 디코더는 코드 워드의 세트를 포함하는 코드를 디코딩하고, 상기 적어도 하나의 메모리 장치의 불완전 오류 도입 특성을 고려한 상기 코드 워드의 세트의 요소들 간의 최소 변경 해밍 간격은, 상기 코드 워드의 세트의 요소들 간 최소 해밍 거리보다 큰, 시스템.
  11. 청구항 10에 있어서, 상기 심볼의 크기는 적어도 3인, 시스템.
  12. 청구항 10에 있어서, 상기 심볼 세트의 크기는 적어도 4인, 시스템.
  13. 청구항 10에 있어서, 채널 인코더를 더 포함하고, 상기 채널 인코더는 인코딩되지 않은 데이터를 수신하고 상기 데이터를 상기 코드 워드의 세트로부터 선택된 코드 워드의 콜렉션내에 인코딩하도록 구성되며, 상기 코드 워드는 이후에 상기 적어도 하나의 메모리 장치의 복수의 메모리 셀에 기록되는, 시스템.
  14. 청구항 13에 있어서, 상기 심볼 세트의 크기는 적어도 3인, 시스템.
  15. 청구항 13에 있어서, 상기 심볼의 세트의 크기는 적어도 4인, 시스템.
  16. 청구항 10에 있어서, 상기 코드 워드의 세트의 요소들 간의 최소 변경 해밍 거리는 4 이상인, 시스템.
  17. 청구항 10에 있어서, 상기 코드 워드의 세트의 요소들 간의 최소 변경 해밍 거리가 5 이상인, 시스템.
  18. 반도체 메모리 장치로서,
    복수의 메모리 셀 - 각각의 메모리 셀은 저장된 심볼의 세트의 구성요소와 일대일로 부합하는 복수의 저장 상태를 가지고, 상기 메모리 장치는 불완전 오류 도입 특성을 갖는 오류 메커니즘을 가짐 - ,
    상기 메모리 셀로부터 판독되는 데이터의 오류를 정정하기 위해 상기 메모리 셀에 결합된 채널 디코더 - 상기 오류는 상기 오류 메커니즘에 의해 적어도 부분적으로 도입됨 - 를 포함하며,
    상기 채널 디코더는 코드 워드의 세트를 포함하는 코드를 디코딩하고, 상기 메모리 셀의 불완전 오류 도입 특성을 고려한 상기 코드 워드의 세트의 요소들 간의 최소 변경 해밍 간격은, 상기 코드 워드의 세트의 요소들 간의 최소 해밍 거리보다 큰, 반도체 메모리 장치.
  19. 청구항 18에 있어서, 상기 심볼 세트의 크기는 적어도 3인, 반도체 메모리 장치.
  20. 청구항 18에 있어서, 상기 심볼 세트의 크기는 적어도 4인, 반도체 메모리 장치.
  21. 청구항 18에 있어서, 채널 인코더를 더 포함하고, 상기 채널 인코더는 인코딩되지 않은 데이터를 수신하고 상기 데이터를 상기 코드 워드의 세트로부터 선택된 코드 워드의 콜렉션내에 인코딩하기 위해 구성되며, 상기 코드 워드는 이후에 복수의 메모리 셀에 기록되는, 반도체 메모리 장치.
  22. 청구항 21에 있어서, 상기 심볼 세트의 크기는 적어도 3인, 반도체 메모리 장치.
  23. 청구항 21에 있어서, 상기 심볼 세트의 크기는 적어도 4인, 반도체 메모리 장치.
  24. 청구항 18에 있어서, 상기 코드 워드의 세트의 요소들 간의 최소 변경 해밍 거리는 4 이상인, 반도체 메모리 장치.
  25. 청구항 18에 있어서, 상기 코드 워드의 세트의 요소들 간의 최소 변경 해밍 거리는 5 이상인, 반도체 메모리 장치.
  26. 제 1 단부, 제 2 단부 및 불완전 오류 특성을 갖는 오류 주입 메커니즘을 갖는 채널을 동작하는 방법으로서, 이 방법은:
    상기 채널로부터 심볼 스트림을 수신하는 단계 - 상기 수신된 심볼 스트림은 복수의 심볼 워드를 포함하고, 각각의 심볼 워드는 심볼 세트로부터 선택된 하나 이상의 심볼을 포함함 - ; 및
    오류 정정 및/또는 감지 코드에 따라, 정정된 데이터 스트림을 생성하기 위해 수신된 심볼 워드를 디코딩하는 단계 - 상기 코드는 상기 코드의 최소 변경 해밍 거리를 갖는 코드 워드의 세트를 포함하고, 상기 최소 변경 해밍 간격은 상기 채널의 오류 주입 메커니즘의 오류 주입 특성에 따라 계산되고, 상기 최소 변경 해밍 거리는 상기 코드의 해밍 거리의 최소치보다 큼 - 를 포함하고,
    상기 심볼 워드를 디코딩하는 단계는 코드 워드의 세트 중 어떠한 코드 워드가 상기 최소 변경 해밍 거리를 산출할지 결정하는 단계 및 상기 코드 워드를 출력하는 단계를 포함하는, 방법.
  27. 청구항 26에 있어서, 상기 방법은:
    데이터 워드와 코드 워드 간의 일대일 맵핑에 따라 인코딩되지 않은 데이터 워드를 코드 워드로 변환함으로써 인코딩되지 않은 데이터를 인코딩하는 단계 - 상기 코드는 상기 매핑을 더 포함하고 상기 인코딩하는 단계는 상기 채널의 제 1 단부에 결합된 송신기에 의해 수행됨 - ; 및
    상기 오류 주입 메커니즘에 따라 오류가 도입되는 상기 채널을 통해 코드 워드를 송신하는 단계를 더 포함하는, 방법.
  28. 청구항 27에 있어서, 상기 심볼 세트의 크기는 적어도 3인, 방법.
  29. 청구항 28에 있어서, 상기 최소 변경 해밍 거리는 적어도 4이고 상기 해밍 거리는 4 미만인, 방법.
KR1020137012736A 2010-10-19 2011-09-27 불완전한 오류 특성을 갖는 채널 및 메모리를 위한 오류 감지 및 정정 코드 KR20140032945A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/907,210 2010-10-19
US12/907,210 US8429495B2 (en) 2010-10-19 2010-10-19 Error detection and correction codes for channels and memories with incomplete error characteristics
PCT/US2011/053353 WO2012054188A1 (en) 2010-10-19 2011-09-27 Error detection and correction codes for channels and memories with incomplete error characteristics

Publications (1)

Publication Number Publication Date
KR20140032945A true KR20140032945A (ko) 2014-03-17

Family

ID=45935174

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137012736A KR20140032945A (ko) 2010-10-19 2011-09-27 불완전한 오류 특성을 갖는 채널 및 메모리를 위한 오류 감지 및 정정 코드

Country Status (6)

Country Link
US (2) US8429495B2 (ko)
EP (1) EP2630572A1 (ko)
JP (1) JP5726312B2 (ko)
KR (1) KR20140032945A (ko)
CN (1) CN103270498A (ko)
WO (1) WO2012054188A1 (ko)

Families Citing this family (124)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9288089B2 (en) 2010-04-30 2016-03-15 Ecole Polytechnique Federale De Lausanne (Epfl) Orthogonal differential vector signaling
US9251873B1 (en) 2010-05-20 2016-02-02 Kandou Labs, S.A. Methods and systems for pin-efficient memory controller interface using vector signaling codes for chip-to-chip communications
US9288082B1 (en) 2010-05-20 2016-03-15 Kandou Labs, S.A. Circuits for efficient detection of vector signaling codes for chip-to-chip communication using sums of differences
US9362962B2 (en) 2010-05-20 2016-06-07 Kandou Labs, S.A. Methods and systems for energy-efficient communications interface
US9300503B1 (en) 2010-05-20 2016-03-29 Kandou Labs, S.A. Methods and systems for skew tolerance in and advanced detectors for vector signaling codes for chip-to-chip communication
US9106238B1 (en) 2010-12-30 2015-08-11 Kandou Labs, S.A. Sorting decoder
US9479369B1 (en) 2010-05-20 2016-10-25 Kandou Labs, S.A. Vector signaling codes with high pin-efficiency for chip-to-chip communication and storage
US9596109B2 (en) 2010-05-20 2017-03-14 Kandou Labs, S.A. Methods and systems for high bandwidth communications interface
US9450744B2 (en) 2010-05-20 2016-09-20 Kandou Lab, S.A. Control loop management and vector signaling code communications links
US9985634B2 (en) 2010-05-20 2018-05-29 Kandou Labs, S.A. Data-driven voltage regulator
US9077386B1 (en) 2010-05-20 2015-07-07 Kandou Labs, S.A. Methods and systems for selection of unions of vector signaling codes for power and pin efficient chip-to-chip communication
US9564994B2 (en) 2010-05-20 2017-02-07 Kandou Labs, S.A. Fault tolerant chip-to-chip communication with advanced voltage
US8593305B1 (en) 2011-07-05 2013-11-26 Kandou Labs, S.A. Efficient processing and detection of balanced codes
US9401828B2 (en) 2010-05-20 2016-07-26 Kandou Labs, S.A. Methods and systems for low-power and pin-efficient communications with superposition signaling codes
US9246713B2 (en) 2010-05-20 2016-01-26 Kandou Labs, S.A. Vector signaling with reduced receiver complexity
WO2011151469A1 (en) 2010-06-04 2011-12-08 Ecole Polytechnique Federale De Lausanne Error control coding for orthogonal differential vector signaling
US8429495B2 (en) * 2010-10-19 2013-04-23 Mosaid Technologies Incorporated Error detection and correction codes for channels and memories with incomplete error characteristics
US9275720B2 (en) * 2010-12-30 2016-03-01 Kandou Labs, S.A. Differential vector storage for dynamic random access memory
US9032277B1 (en) * 2011-11-28 2015-05-12 Altera Corporation Parallel low and asymmetric rate Reed Solomon coding
US8732560B2 (en) * 2012-05-08 2014-05-20 Infineon Technologies Ag Method and device for correction of ternary stored binary data
US9268683B1 (en) 2012-05-14 2016-02-23 Kandou Labs, S.A. Storage method and apparatus for random access memory using codeword storage
US10621040B2 (en) 2012-11-30 2020-04-14 Hewlett Packard Enterprise Development Lp Memory controllers to form symbols based on bursts
US9204467B2 (en) * 2012-12-11 2015-12-01 Blackberry Limited Communicating encoded traffic data
US9021328B2 (en) * 2013-01-15 2015-04-28 International Business Machines Corporation Shared error protection for register banks
US9041428B2 (en) 2013-01-15 2015-05-26 International Business Machines Corporation Placement of storage cells on an integrated circuit
US9201727B2 (en) 2013-01-15 2015-12-01 International Business Machines Corporation Error protection for a data bus
CN104995612B (zh) 2013-01-17 2020-01-03 康杜实验室公司 低同步开关噪声芯片间通信方法和系统
US9043683B2 (en) * 2013-01-23 2015-05-26 International Business Machines Corporation Error protection for integrated circuits
CN105122758B (zh) 2013-02-11 2018-07-10 康杜实验室公司 高带宽芯片间通信接口方法和系统
CN105379170B (zh) 2013-04-16 2019-06-21 康杜实验室公司 高带宽通信接口方法和系统
CN105393512B (zh) 2013-06-25 2019-06-28 康杜实验室公司 具有低接收器复杂度的向量信令
US9106465B2 (en) 2013-11-22 2015-08-11 Kandou Labs, S.A. Multiwire linear equalizer for vector signaling code receiver
US9806761B1 (en) 2014-01-31 2017-10-31 Kandou Labs, S.A. Methods and systems for reduction of nearest-neighbor crosstalk
CN105993151B (zh) 2014-02-02 2019-06-21 康杜实验室公司 低isi比低功率芯片间通信方法和装置
US9369312B1 (en) 2014-02-02 2016-06-14 Kandou Labs, S.A. Low EMI signaling for parallel conductor interfaces
KR102240544B1 (ko) 2014-02-28 2021-04-19 칸도우 랩스 에스에이 클록 임베디드 벡터 시그널링 코드
US9509437B2 (en) 2014-05-13 2016-11-29 Kandou Labs, S.A. Vector signaling code with improved noise margin
US9148087B1 (en) 2014-05-16 2015-09-29 Kandou Labs, S.A. Symmetric is linear equalization circuit with increased gain
US9852806B2 (en) 2014-06-20 2017-12-26 Kandou Labs, S.A. System for generating a test pattern to detect and isolate stuck faults for an interface using transition coding
US9112550B1 (en) 2014-06-25 2015-08-18 Kandou Labs, SA Multilevel driver for high speed chip-to-chip communications
CN106797352B (zh) 2014-07-10 2020-04-07 康杜实验室公司 高信噪特性向量信令码
US9432082B2 (en) 2014-07-17 2016-08-30 Kandou Labs, S.A. Bus reversable orthogonal differential vector signaling codes
KR101943048B1 (ko) 2014-07-21 2019-01-28 칸도우 랩스 에스에이 다분기 데이터 전송
US9461862B2 (en) 2014-08-01 2016-10-04 Kandou Labs, S.A. Orthogonal differential vector signaling codes with embedded clock
US9967500B2 (en) * 2014-09-29 2018-05-08 Samsung Electronics Co., Ltd. Systems and methods of selective output for reducing power
US9674014B2 (en) 2014-10-22 2017-06-06 Kandou Labs, S.A. Method and apparatus for high speed chip-to-chip communications
US9948920B2 (en) 2015-02-27 2018-04-17 Qualcomm Incorporated Systems and methods for error correction in structured light
US10068338B2 (en) 2015-03-12 2018-09-04 Qualcomm Incorporated Active sensing spatial resolution improvement through multiple receivers and code reuse
US9530215B2 (en) 2015-03-20 2016-12-27 Qualcomm Incorporated Systems and methods for enhanced depth map retrieval for moving objects using active sensing technology
CN113225159B (zh) 2015-06-26 2024-06-07 康杜实验室公司 高速通信系统
US9635339B2 (en) 2015-08-14 2017-04-25 Qualcomm Incorporated Memory-efficient coded light error correction
US9846943B2 (en) 2015-08-31 2017-12-19 Qualcomm Incorporated Code domain power control for structured light
US9557760B1 (en) 2015-10-28 2017-01-31 Kandou Labs, S.A. Enhanced phase interpolation circuit
US9577815B1 (en) 2015-10-29 2017-02-21 Kandou Labs, S.A. Clock data alignment system for vector signaling code communications link
US10055372B2 (en) 2015-11-25 2018-08-21 Kandou Labs, S.A. Orthogonal differential vector signaling codes with embedded clock
EP3408935B1 (en) 2016-01-25 2023-09-27 Kandou Labs S.A. Voltage sampler driver with enhanced high-frequency gain
US10003454B2 (en) 2016-04-22 2018-06-19 Kandou Labs, S.A. Sampler with low input kickback
CN115051705A (zh) 2016-04-22 2022-09-13 康杜实验室公司 高性能锁相环
EP3449379B1 (en) 2016-04-28 2021-10-06 Kandou Labs S.A. Vector signaling codes for densely-routed wire groups
US10153591B2 (en) 2016-04-28 2018-12-11 Kandou Labs, S.A. Skew-resistant multi-wire channel
CN109417521B (zh) 2016-04-28 2022-03-18 康杜实验室公司 低功率多电平驱动器
KR102565005B1 (ko) * 2016-08-04 2023-08-07 에스케이하이닉스 주식회사 저항 변화 메모리의 수명 연장 방법 및 그 방법을 이용하는 데이터 저장 시스템
US9906358B1 (en) 2016-08-31 2018-02-27 Kandou Labs, S.A. Lock detector for phase lock loop
US10411922B2 (en) 2016-09-16 2019-09-10 Kandou Labs, S.A. Data-driven phase detector element for phase locked loops
US10200188B2 (en) 2016-10-21 2019-02-05 Kandou Labs, S.A. Quadrature and duty cycle error correction in matrix phase lock loop
US10200218B2 (en) 2016-10-24 2019-02-05 Kandou Labs, S.A. Multi-stage sampler with increased gain
US10372665B2 (en) 2016-10-24 2019-08-06 Kandou Labs, S.A. Multiphase data receiver with distributed DFE
DE102017130591B4 (de) 2016-12-20 2022-05-25 Hyperstone Gmbh Verfahren und Vorrichtung zur Fehlerkorrekturkodierung auf Basis einer Datenkomprimierung
EP4216444A1 (en) 2017-04-14 2023-07-26 Kandou Labs, S.A. Pipelined forward error correction for vector signaling code channel
US10116468B1 (en) 2017-06-28 2018-10-30 Kandou Labs, S.A. Low power chip-to-chip bidirectional communications
US10686583B2 (en) 2017-07-04 2020-06-16 Kandou Labs, S.A. Method for measuring and correcting multi-wire skew
US10693587B2 (en) 2017-07-10 2020-06-23 Kandou Labs, S.A. Multi-wire permuted forward error correction
US10203226B1 (en) 2017-08-11 2019-02-12 Kandou Labs, S.A. Phase interpolation circuit
US10877898B2 (en) 2017-11-16 2020-12-29 Alibaba Group Holding Limited Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements
US10326623B1 (en) 2017-12-08 2019-06-18 Kandou Labs, S.A. Methods and systems for providing multi-stage distributed decision feedback equalization
US10554380B2 (en) 2018-01-26 2020-02-04 Kandou Labs, S.A. Dynamically weighted exclusive or gate having weighted output segments for phase detection and phase interpolation
US10496548B2 (en) 2018-02-07 2019-12-03 Alibaba Group Holding Limited Method and system for user-space storage I/O stack with user-space flash translation layer
US10749547B2 (en) * 2018-03-28 2020-08-18 Intel Corporation Error detector and/or corrector checker method and apparatus
WO2019222958A1 (en) 2018-05-24 2019-11-28 Alibaba Group Holding Limited System and method for flash storage management using multiple open page stripes
US10921992B2 (en) 2018-06-25 2021-02-16 Alibaba Group Holding Limited Method and system for data placement in a hard disk drive based on access frequency for improved IOPS and utilization efficiency
US11816043B2 (en) 2018-06-25 2023-11-14 Alibaba Group Holding Limited System and method for managing resources of a storage device and quantifying the cost of I/O requests
US10996886B2 (en) 2018-08-02 2021-05-04 Alibaba Group Holding Limited Method and system for facilitating atomicity and latency assurance on variable sized I/O
US10985779B2 (en) * 2018-08-27 2021-04-20 Polaran Haberlesme Teknolojileri Anonim Sirketi Method and system for decoding data using compressed channel output information
US11327929B2 (en) 2018-09-17 2022-05-10 Alibaba Group Holding Limited Method and system for reduced data movement compression using in-storage computing and a customized file system
KR20200078830A (ko) * 2018-12-24 2020-07-02 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 모듈
US10977122B2 (en) 2018-12-31 2021-04-13 Alibaba Group Holding Limited System and method for facilitating differentiated error correction in high-density flash devices
US11061735B2 (en) 2019-01-02 2021-07-13 Alibaba Group Holding Limited System and method for offloading computation to storage nodes in distributed system
US11132291B2 (en) 2019-01-04 2021-09-28 Alibaba Group Holding Limited System and method of FPGA-executed flash translation layer in multiple solid state drives
US10860420B2 (en) * 2019-02-05 2020-12-08 Alibaba Group Holding Limited Method and system for mitigating read disturb impact on persistent memory
US11200337B2 (en) 2019-02-11 2021-12-14 Alibaba Group Holding Limited System and method for user data isolation
US10970212B2 (en) 2019-02-15 2021-04-06 Alibaba Group Holding Limited Method and system for facilitating a distributed storage system with a total cost of ownership reduction for multiple available zones
US11061834B2 (en) 2019-02-26 2021-07-13 Alibaba Group Holding Limited Method and system for facilitating an improved storage system by decoupling the controller from the storage medium
US10891065B2 (en) 2019-04-01 2021-01-12 Alibaba Group Holding Limited Method and system for online conversion of bad blocks for improvement of performance and longevity in a solid state drive
US10922234B2 (en) 2019-04-11 2021-02-16 Alibaba Group Holding Limited Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive
US10908960B2 (en) 2019-04-16 2021-02-02 Alibaba Group Holding Limited Resource allocation based on comprehensive I/O monitoring in a distributed storage system
US11169873B2 (en) 2019-05-21 2021-11-09 Alibaba Group Holding Limited Method and system for extending lifespan and enhancing throughput in a high-density solid state drive
CN112118018B (zh) * 2019-06-19 2021-12-31 瑞昱半导体股份有限公司 发送器、通信系统及发送方法
US10860223B1 (en) 2019-07-18 2020-12-08 Alibaba Group Holding Limited Method and system for enhancing a distributed storage system by decoupling computation and network tasks
US11074124B2 (en) 2019-07-23 2021-07-27 Alibaba Group Holding Limited Method and system for enhancing throughput of big data analysis in a NAND-based read source storage
US11617282B2 (en) 2019-10-01 2023-03-28 Alibaba Group Holding Limited System and method for reshaping power budget of cabinet to facilitate improved deployment density of servers
US11126561B2 (en) 2019-10-01 2021-09-21 Alibaba Group Holding Limited Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive
US11449455B2 (en) 2020-01-15 2022-09-20 Alibaba Group Holding Limited Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility
US11150986B2 (en) 2020-02-26 2021-10-19 Alibaba Group Holding Limited Efficient compaction on log-structured distributed file system using erasure coding for resource consumption reduction
US11200114B2 (en) 2020-03-17 2021-12-14 Alibaba Group Holding Limited System and method for facilitating elastic error correction code in memory
US11385833B2 (en) 2020-04-20 2022-07-12 Alibaba Group Holding Limited Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources
US11281575B2 (en) 2020-05-11 2022-03-22 Alibaba Group Holding Limited Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks
US11461262B2 (en) 2020-05-13 2022-10-04 Alibaba Group Holding Limited Method and system for facilitating a converged computation and storage node in a distributed storage system
US11494115B2 (en) 2020-05-13 2022-11-08 Alibaba Group Holding Limited System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC)
US11218165B2 (en) 2020-05-15 2022-01-04 Alibaba Group Holding Limited Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM
US11507499B2 (en) 2020-05-19 2022-11-22 Alibaba Group Holding Limited System and method for facilitating mitigation of read/write amplification in data compression
US11556277B2 (en) 2020-05-19 2023-01-17 Alibaba Group Holding Limited System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification
US11263132B2 (en) 2020-06-11 2022-03-01 Alibaba Group Holding Limited Method and system for facilitating log-structure data organization
US11354200B2 (en) 2020-06-17 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating data recovery and version rollback in a storage device
US11422931B2 (en) 2020-06-17 2022-08-23 Alibaba Group Holding Limited Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization
US11354233B2 (en) 2020-07-27 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating fast crash recovery in a storage device
US11372774B2 (en) 2020-08-24 2022-06-28 Alibaba Group Holding Limited Method and system for a solid state drive with on-chip memory integration
US11487465B2 (en) 2020-12-11 2022-11-01 Alibaba Group Holding Limited Method and system for a local storage engine collaborating with a solid state drive controller
US11734115B2 (en) 2020-12-28 2023-08-22 Alibaba Group Holding Limited Method and system for facilitating write latency reduction in a queue depth of one scenario
US11416365B2 (en) 2020-12-30 2022-08-16 Alibaba Group Holding Limited Method and system for open NAND block detection and correction in an open-channel SSD
US11356197B1 (en) 2021-03-19 2022-06-07 Kandou Labs SA Error-tolerant forward error correction ordered set message decoder
US11726699B2 (en) 2021-03-30 2023-08-15 Alibaba Singapore Holding Private Limited Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification
US11463112B1 (en) * 2021-04-06 2022-10-04 Micron Technology, Inc. Dynamic bit flipping order for iterative error correction
US11461173B1 (en) 2021-04-21 2022-10-04 Alibaba Singapore Holding Private Limited Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement
US11476874B1 (en) 2021-05-14 2022-10-18 Alibaba Singapore Holding Private Limited Method and system for facilitating a storage server with hybrid memory for journaling and data storage

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5048023A (en) * 1989-02-16 1991-09-10 The United States Of America As Represented By The Administrator, National Aeronautics And Space Administration Asymmetric soft-error resistant memory
JP3999822B2 (ja) * 1993-12-28 2007-10-31 株式会社東芝 記憶システム
JP3854331B2 (ja) * 1996-01-11 2006-12-06 日立マクセル株式会社 多値記録用符号化及びその復号方法
FR2809905B1 (fr) * 2000-05-30 2002-08-30 Cit Alcatel Procede de transfert avec traitement de signaux entre deux interfaces d'emission/reception distinctes
US7649956B2 (en) * 2004-10-27 2010-01-19 Nec Corporation Modulation and demodulation system, modulator, demodulator and phase modulation method and phase demodulation method used therefor
JP4613693B2 (ja) * 2005-05-24 2011-01-19 日本電気株式会社 変復調システム、変調装置、復調装置及びそれらに用いる位相変調方法並びに位相復調方法
FR2906656A1 (fr) * 2006-10-03 2008-04-04 France Telecom Procede et dispositif de decodage a l'aide de codes correcteurs d'erreurs.
US8296623B2 (en) * 2007-01-05 2012-10-23 California Institute Of Technology Codes for limited magnitude asymmetric errors in flash memories
US7805658B2 (en) * 2007-02-12 2010-09-28 International Business Machines Corporation DRAM Cache with on-demand reload
US8266495B2 (en) * 2008-02-20 2012-09-11 Marvell World Trade Ltd. Systems and methods for performing concatenated error correction
US8429495B2 (en) * 2010-10-19 2013-04-23 Mosaid Technologies Incorporated Error detection and correction codes for channels and memories with incomplete error characteristics

Also Published As

Publication number Publication date
WO2012054188A1 (en) 2012-04-26
US20130232393A1 (en) 2013-09-05
JP5726312B2 (ja) 2015-05-27
CN103270498A (zh) 2013-08-28
JP2014502071A (ja) 2014-01-23
US20120096330A1 (en) 2012-04-19
US8806305B2 (en) 2014-08-12
EP2630572A1 (en) 2013-08-28
US8429495B2 (en) 2013-04-23

Similar Documents

Publication Publication Date Title
KR20140032945A (ko) 불완전한 오류 특성을 갖는 채널 및 메모리를 위한 오류 감지 및 정정 코드
JP5944941B2 (ja) クロス・ページ・セクタ、マルチ・ページ符号化およびパー・ページ符号化を使用して多重レベル・セル・フラッシュ・メモリ・デバイスにデータを記憶するための方法および装置
US6990622B2 (en) Method for error correction decoding in an MRAM device (historical erasures)
TWI353521B (en) Soft-input soft-output decoder for nonvolatile mem
US8020081B2 (en) Multi-level cell memory devices using trellis coded modulation and methods of storing data in and reading data from the memory devices
US7579968B2 (en) Encoding of data words using three or more level levels
US9047213B2 (en) Coding architecture for multi-level NAND flash memory with stuck cells
Shpilka New constructions of WOM codes using the Wozencraft ensemble
Wu Low complexity codes for writing a write-once memory twice
JP6145220B2 (ja) アナログメモリセルにおけるセル当り非整数個のビットを用いたデータ記憶の管理
US20230085730A1 (en) Hard decoding methods in data storage devices
CN109935263A (zh) 非易失性存储器的编译码方法及存储系统
JP2011141914A (ja) Nand型フラッシュメモリの入出力制御方法及び装置
US20030172339A1 (en) Method for error correction decoding in a magnetoresistive solid-state storage device
KR102007163B1 (ko) 인코더, 디코더 및 이를 포함하는 반도체 장치
US9374107B1 (en) Time shared protograph LDPC decoder
Tatwawadi et al. Tutorial on algebraic deletion correction codes
Horovitz et al. WOM codes with uninformed encoder
JP2000298625A (ja) 多重レベルメモリセル内に記憶される2進ワードの誤りを訂正する方法
Haymaker et al. Covering codes for multilevel flash memories
CN108170554A (zh) 一种nand的数据编码方法和装置
Mohammed Coding Techniques for Error Correction and Rewriting in Flash Memories
Gad Rewriting Schemes for Flash Memory
Yaakobi Coding for flash memories
Salomon et al. Error Correcting Codes

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid