KR20160144960A - 폴라 코드들을 이용한 비대칭 에러 정정 및 플래시 메모리 재기록 - Google Patents

폴라 코드들을 이용한 비대칭 에러 정정 및 플래시 메모리 재기록 Download PDF

Info

Publication number
KR20160144960A
KR20160144960A KR1020167021326A KR20167021326A KR20160144960A KR 20160144960 A KR20160144960 A KR 20160144960A KR 1020167021326 A KR1020167021326 A KR 1020167021326A KR 20167021326 A KR20167021326 A KR 20167021326A KR 20160144960 A KR20160144960 A KR 20160144960A
Authority
KR
South Korea
Prior art keywords
rti
message
data
vector
value
Prior art date
Application number
KR1020167021326A
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 KR20160144960A publication Critical patent/KR20160144960A/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
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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
    • 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/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • 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/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/154Error and erasure correction, e.g. by using the error and erasure locator or Forney polynomial

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

변화하는 데이터 값들에서 블록 소거 동작을 방지할 수 있는, 메모리 디바이스들에서 데이터의 표현을 위한 코드들을 생성하기 위한 기술들이 개시된다. 이진 디지트들(비트들)을 포함하는 데이터 값들이, 코드워드들로 지칭되는 일반화된 코드들을 사용하여 인코딩 및 디코딩될 수 있어서, 코드워드들은 블록 소거 방지 코드를 포함할 수 있고, 여기서 데이터 메시지 m의 이진 디지트들이 인코딩된 데이터 메시지가 데이터 디바이스의 다수의 메모리 셀들에 저장될 수 있도록 인코딩될 수 있고, 일단 메모리 셀 값이 제 1 로직 값으로부터 제 2 로직 값으로 변경되면, 메모리 셀에 대한 블록 소거 동작까지, 후속하여 수신된 메시지들에 무관하게, 메모리 셀의 값이 제 2 로직 값에서 유지될 수 있다. 유사하게, 다수의 이진 디지트들의 소스 데이터 값들이 개시된 블록 소거 방지 코드로 인코딩된 입력 코드워드를 포함하는 수신된 데이터 메시지는, 추정된 소스 데이터 메시지를 복원하기 위해 데이터 디바이스에 디코딩될 수 있다.

Description

폴라 코드들을 이용한 비대칭 에러 정정 및 플래시 메모리 재기록{ASYMMETRIC ERROR CORRECTION AND FLASH-MEMORY REWRITING USING POLAR CODES}
관련 출원들에 대한 상호 참조
[0001] 본 출원은, Eyal En Gad, Yue Li, Anxiao Jiang, Jehoshua Bruck, Michael Langberg 및 Joerg Kliewer에 의해 “Polar Coding for Noisy Write-Once Memories”라는 명칭으로 2014년 1월 17일에 출원된 미국 가출원 일련 번호 제 61/928,749호의 35 U.S.C. § 119 (e) 하에서의 우선권을 주장하고, Eyal En Gad, Yue Li, Anxiao Jiang, Jehoshua Bruck, Michael Langberg 및 Joerg Kliewer에 의해 “Polar Coding for Noisy Write-Once Memories”라는 명칭으로 2014년 6월 27일에 출원된 미국 가출원 일련 번호 제 62/018,434 호의 35 U.S.C. § 119 (e) 하에서의 우선권을 주장한다. 이러한 선출원들의 출원 일자들의 우선권은 이로써 주장되며, 그로 인해, 선출원들의 개시는 모든 목적을 위해 인용에 의해 포함된다.
연방 정부 지원 연구 개발에 관한 진술
[0002] 본 연구는 NSF 교부금 CIF-1218005, CCF-1017632, CCF-1161774 및 CCF-1320785, NSF CAREER 어워드 CCF-0747415 및 허가 번호 2010075 하에서 US-이스라엘 양국간 과학 재단(BSF)에 의해 부분적으로 지원되었다.
[0003] 본 명세서에서 달리 명시하지 않으면, 본 섹션에 기술된 내용들은 본 출원의 청구항에 대한 종래 기술이 아니며 본 섹션에 포함함으로써 종래 기술인 것으로 인정되는 것은 아니다. 본 개시는 일반적으로 데이터 저장 디바이스들 및 이러한 디바이스들에 대한 시스템들 및 방법들에 관한 것이다. 다양한 예들에서, 데이터 저장 디바이스, 예컨대 플래시 메모리 디바이스들에서의 데이터 변조 기술들이 개시된다.
[0004] 플래시 메모리들은 현재 비휘발성 메모리(NVM) 시장의 거의 90%를 차지하는, 전자적인 비휘발성 메모리들의 일 타입니다. 오늘날, 수 십억 개의 플래시 메모리들은, 주로 이들의 높은 성능 및 물리적 내구성으로 인해, 이동형, 내장형 및 대용량 저장 시스템들에 사용된다. 플래시 메모리들의 예시적인 응용예들은, 셀 폰들, 디지털 카메라, USB 플래시 드라이브들, 컴퓨터들, 센서들 및 더 많은 기기들을 포함한다. 플래시 메모리들은 이제 때때로 하드 디스크들과 같은 자기 디스크들을 대체하기 위해 사용된다.
[0005] 플래시 메모리 디바이스는, 로직 "1"의 메모리 셀 레벨 또는 로직 "0"의 메모리 셀 레벨 중 하나인 전압 전하를 저장할 수 있는 메모리 셀들을 포함한다. 즉, 셀 전압 레벨은 로직 레벨 또는 이진 디지트의 수치적 표현에 대응한다. 셀 레벨을 변경(예를 들어, 셀 전압 전하를 변경)하면 저장된 이진 디지트 값이 변경된다. 종래의 플래시 메모리들의 한계는 제 1 로직 레벨로부터 제 2 로직 레벨, 예컨대 로직 "1"로부터 로직 "0"으로의 셀 전압 레벨의 변경에 고비용이 드는 것이었다. 이러한 변경을 수행하기 위해, "블록 소거" 동작이 수행된다. 셀 또는 셀들의 그룹에서의 데이터 값이 새로운 값들을 나타내기 위해 변경될 때, 블록 소거들이 전형적으로 수행된다. 블록 소거는, 블록 소거를 수행하기 위한 시간 및 전력과 같은 리소스 사용의 측면에서 비교적 비용이 많이 든다. 플래시 메모리 디바이스들의 동작은, 이러한 블록 소거 리소스 요구들이 감소되면 더욱 효율적일 것이다.
[0006] 데이터 값들을 변경하는데 있어서 블록 소거 동작을 방지하는, 데이터 디바이스들의 데이터 값들의 표시를 위한 코드들을 생성하기 위한 기술들이 개시된다. 특히, 이진 디지트들(비트들)을 포함하는 데이터 값들이, 코드워드들로 지칭되는 데이터 표시 코드들을 이용하여 인코딩 및 디코딩될 수 있어서, 코드워드들은 블록 소거 방지 코드를 포함한다. 본 명세서에 설명된 바와 같이, 블록 소거 방지 코드는, 인코딩된 데이터 메시지가 데이터 디바이스의 다수의 메모리 셀들에 저장될 수 있도록 데이터 메시지의 이진 디지트들(m)이 인코딩될 수 있는 코드일 수 있고, 일단 메모리 셀 값이 제 1 로직 값에서 제 2 로직 값으로 변경되면, 메모리 셀의 값이, 메모리 셀의 값이 메모리 셀에 대한 블록 소거 동작까지는, 추후에 수신된 메시지에 무관하게, 제 2 로직 값으로 유지될 수 있다. 특히, 코드워드들은 메모리 디바이스의 다수의 셀들에 의한 표시를 위해 구성될 수 있어서, 일단 셀 값이 로직 "0"에서 로직 "1"로 변경되면, 대응하는 저장된 데이터 값이 변경되더라도, 이 셀의 값은 로직 "1"로 유지될 수 있다. 이는 개시된 코드워드들에 의해 표시된 데이터 값을 변경하기 위한 블록 소거에 대한 필요성을 방지 또는 그렇지 않으면 감소시킬 수 있다. 유사하게, 다수의 이진 디지트들의 소스 데이터 값들이 개시된 블록 소거 방지 코드로 인코딩된 입력 코드워드를 포함하는 수신된 데이터 메시지는, 추정된 소스 데이터 메시지를 복원하기 위해 데이터 디바이스에 디코딩될 수 있다. 따라서, 데이터 메시지(m)는 통신 채널을 통해 데이터 디바이스에서 수신될 수 있고 메시지(m)의 이진 디지트들은 블록 소거 방지 코드의 코드워드를 나타내도록 인코딩을 위해 디바이스에서 프로세싱될 수 있고, 인코딩된 복수의 이진 디지트들을 포함하는 데이터 메시지는 원래의 소스 데이터 이진 디지트들을 복원하도록 디코딩될 수 있다.
[0007] 현재 개시된 기술들은 메모리 디바이스의 단일 레벨 셀(SLC) 타입에 매우 적합하며, 이는 로직 "0" 및 로직 "1"에 대응하는 두 개의 셀 전하 레벨들 중 하나를 저장하는 메모리 셀의 타입이다. 본 개시에 따른 SLC 메모리 디바이스의 일례는, 통신 채널을 통해 메시지를 수신할 수 있고 메시지를 구성하는 이진 디지트들을 인코딩할 수 있고, 또는 메모리 디바이스는 통신 채널을 통해 코드워드를 수신할 수 있고 추정된 디코딩된 코드워드를 생성하여 원래 메시지를 복원할 수 있다. 개시된 기술들은 또한 메모리 디바이스의 다중 레벨 셀(MLC) 타입과 잘 작동하며, 이는 다수의 전하 레벨들, 전형적으로 4 또는 8 전하 레벨들을 저장하는 메모리 셀들을 이용하는 디바이스의 타입이다.
[0008] 다양한 예들이 두 개의 통신 세팅들: (1) 비대칭 채널 세팅 및 (2) 알려진 인코더 세팅을 갖는 채널을 포함할 수 있는 효율적인 코딩 방식들을 개시한다. 이러한 통신 세팅들은 비휘발성 메모리들은 물론, 광학 및 브로드캐스트 통신에서 사용될 수 있다. 본 개시는 비선형 폴라 코드들에 기초할 수 있는 코딩 방식들을 개시하며, 여기서 설명된 코딩 방식들은 전술한 통신 세팅 토폴로지들을 사용하는 시스템들 및 디바이스들의 성능을 향상시킬 수 있다.
[0009] 이하의 논의에서, 본 명세서에 개시된 블록 소거 방지 코드들은 통신 채널 ―이 통신 채널을 통해 데이터 메시지가 채널 용량에 대해 최대화되거나 그렇지 않으면 증가되도록 전송됨― 의 데이터 비트 전달 레이트를 이네이블하는 코드워드들을 제공한다는 것을 보여준다. 즉, 개시된 블록 소거 방지 코드는, 인코딩된 데이터 메시지가 데이터 디바이스의 다수의 메모리 셀들에 저장될 수 있도록 데이터 메시지의 이진 디지트들(m)이 인코딩될 수 있는 코드의 특성을 제공할 수 있고, 일단 메모리 셀 값이 제 1 로직 값에서 제 2 로직 값으로 변경되면, 메모리 셀의 값이, 메모리 셀의 값이 메모리 셀에 대한 블록 소거 동작까지는, 추후에 수신된 메시지에 무관하게, 제 2 로직 값으로 유지될 수 있지만, 부가적으로, 개시된 블록 소거 방지 코드들은 통신 채널을 통한 데이터 전달이 통신 채널의 최대 또는 그렇지 않으면 증가된 채널 용량이 되게 하는 코드일 수 있다.
[0010] 전술한 요약은 단지 예시적이며 어떤 식으로도 제한하려는 의도는 아니다. 예시된 양상들, 실시예들, 기술들, 시스템들, 동작 방법들, 및 전술한 특징들에 부가하여, 추가의 양상들, 실시예들, 기술들, 시스템들, 동작 방법들, 및 특징들이 이하의 상세한 설명 및 도면을 참조하여 명백할 것이다.
[0011] 본 개시의 전술한 특징 및 다른 특징들이, 첨부된 도면들을 참조하며, 이하의 설명 및 첨부된 청구항들로부터 더욱 충분하게 명백하게 될 것이다. 이러한 도면들이 본 개시에 따른 단지 몇몇 실시예들을 묘사하며, 결국 본 개시의 범위를 제한하지 않는 것임을 이해하면서, 본 개시는 첨부된 도면의 사용을 통해 추가의 특이성 및 세부 사항으로 설명될 것이며, 도면들 모두는 본 명세서에 제시된 적어도 몇몇 실시예들에 따라 배열된다.
[0012] 도 1은 본 명세서에 개시된 바와 같이 데이터 메시지를 인코딩하기 위한 다양한 예들에 따라 구성된 메모리 디바이스에서 수행될 수 있는 동작들을 예시하는 흐름도이다.
[0013] 도 2는 본 명세서에 개시된 바와 같이 데이터 메시지를 디코딩하기 위한 다양한 예들에 따라 구성된 메모리 디바이스에서 수행될 수 있는 동작들을 예시하는 흐름도이다.
[0014] 도 3은 본 명세서에 개시된 바와 같이 데이터 메시지를 인코딩하기 위한 다양한 예들에 따라 구성된 메모리 디바이스에서 수행될 수 있는 동작들을 예시하는 흐름도이다.
[0015] 도 4는 본 명세서에 개시된 바와 같이 데이터 메시지를 디코딩하기 위한 다양한 예들에 따라 구성된 메모리 디바이스에서 수행될 수 있는 동작들을 예시하는 흐름도이다.
[0016] 도 5는 본 명세서에 개시된 바와 같이 데이터 메시지를 인코딩하기 위한 다양한 예들에 따라 구성된 메모리 디바이스에서 수행될 수 있는 동작들을 예시하는 흐름도이다.
[0017] 도 6은 본 명세서에 개시된 바와 같이 데이터 메시지를 디코딩하기 위한 다양한 예들에 따라 구성된 메모리 디바이스에서 수행될 수 있는 동작들을 예시하는 흐름도이다.
[0018] 도 7은 현재 개시된 기술에 따라 구성된 메모리 디바이스의 예를 도시한 도면이다.
[0019] 도 8은 도 7에 묘사된 바와 같은 메모리 디바이스와 통신하기 위해 도 1-6의 동작들을 수행하기 위한 예시적인 컴퓨터 장치의 블록도이다.
[0020] 도 9는 본 명세서에 개시된 다양한 방식에 따라 동작하는 예시적인 메모리 디바이스의 데이터 흐름을 도시하는 블록도이다.
[0021] 본 상세한 설명의 컨텐츠는 다음 표제에 따라 구성되어 있다:
I. 서론
A. 에러 정정 코드들 및 플래시 메모리들
B. 이전 작업에 대한 관계
II. 비대칭 포인트-투-포인트 채널들
III. 넌-캐주얼 인코더 상태 정보를 갖는 채널
A. 특정한 경우들
B. 저하된 채널들에 대한 멀티코딩 구조
C. 저하 없는 멀티코딩 구조
IV. 예시적인 실시예들
첨부 A(정리 6의 증명)
첨부 B(보조 정리 6a의 증명)
첨부 C(정리 7의 증명)
[0022] I. 서론
[0023] 이하의 논의에서, 에러 정정 코드들 및 플래시 메모리들은 일반적으로 "서론" 섹션에서 설명된다. 섹션 II, 비대칭 포인트-투-포인트 채널들은, 비대칭 통신 채널들을 고려하며, 여기서 데이터 값들을 인코딩 및 디코딩하기 위한 코드들은 이러한 통신 채널들의 비균일한 입력 분포를 수용한다. 채널 용량 달성 코드를 위한 파라미터들이 논의되며, "구조 A"로 지칭되는 이러한 채널들에 대한 코드 생성 기술이 설명된다. 채널 용량 달성 코드의 유도는 알려진 채널 코딩 정리들(예컨대, 채널 코딩 정리 및 분극 정리) 및 Bhattacharyya 파라미터들의 관점에서 설명된다. 섹션 III, 넌- 캐주얼 인코더 상태 정보를 갖는 채널들에서, 상이한 채널 용량 달성 코드들이, 채널 상태 정보가 이용가능한 통신 채널들에 사용하기 위해 설명된다. 이러한 코드들은 플래시 메모리 상황에 적합할 수 있고, 여기서 블록 소거 동작들은 리소스 집약적일 수 있고 방지 또는 감소되어야 한다. 편의상 "구조 B" 및 "구조 C"로 지칭되는 기술들인, 두 특정 코드 생성 기술들이 채널 상태 정보를 갖는 통신 채널들에 대해 논의된다. 섹션 III에서, 섹션 II의 정리들 및 정의들에 부가하여 정리들 및 정의들이 개시된 채널 용량 달성 코드들을 유도하기 위해 사용된다. 섹션 IV, 예시적인 실시예들은, 구조 A, 구조 B 및 구조 C 기술들을 포함하며, 본 명세서의 설명에 따른 인코딩 및 디코딩을 위한 기술들을 실행할 수 있는 하드웨어 및 소프트웨어의 구현들을 논의한다.
[0024] A. 에러 정정 코드들 및 플래시 메모리들
[0025] 비대칭 채널 코딩은 다양한 애플리케이션들, 예컨대 비휘발성 메모리들에서 유용할 수 있으며, 여기서 전기적 메커니즘들은 지배적으로 비대칭일 수 있다(예를 들어, Y. Cassuto, M. Schwartz, V. Bohossian, and J. Bruck, “Codes For Asymmetric Limited-Magnitude Errors With Application To Multilevel Flash Memories”, IEEE Trans. On Information Theory, Vol. 56, No. 4, pp. 1582-1595, April 2010 참조). 비대칭 채널 코딩은 또한, 광학 통신에서 유용할 수 있으며, 여기서 광자들이 검출(1→0)되는 것이 실패할 수 있지만, 스퓨리어스 광자들의 생성(0→1) 은 가능하지 않을 수 있다. 이러한 디바이스들의 메모리 상태가 기록 시도들의 레이트에 영향을 줄 수 있기 때문에, 알려진 인코더를 이용한 채널 코딩은 또한, 비휘발성 메모리들에 유용할 수 있다. 알려진 인코더를 이용한 채널 코딩은 또한, 브로드캐스트 통신들에 유용할 수 있으며, 여기서 채널 코딩은 높은 통신 레이트들을 달성하기 위해 Marton의 코딩 방식에서 사용될 수 있다.
[0026] 본 애플리케이션에서 다양한 기술적 논의들이 폴라 코딩 기술들에 속할 수 있다. 폴라 코딩 기술들은 통신 레이트 및 계산상 복잡도 모두의 측면에서 매우 효율적일 수 있으며, 분석 및 이해하기가 비교적 쉬울 수 있다. 폴라 코드들은 Arikan에 의해 소개되었고(예를 들어, E. Arikan, “Channel Polarization: A Method For Constructing Capacity-Achieving Codes For Symmetric Binary-Input Memoryless Channels”, IEEE Trans. on Information Theory, Vol. 55, No. 7, pp. 3051-3073, July 2009 참조), 이진 입력 메모리 없는 채널들의 대칭 용량을 달성한다.
[0027] Gallager의 방식(R. G. Gallager, Information Theory and Reliable Communication, Wiley, 1968, p. 208) 및 두 폴라 코드들의 연쇄(D. Sutter, J. Renes, F. Dupuis, and R. Renner, “Achieving The Capacity Of Any DMC Using Only Polar Codes”, in Information Theory Workshop (ITW), 2012 IEEE, Sept 2012, pp. 114-118)를 이용한 사전-맵핑을 포함하여, 비대칭 채널들에 대한 몇몇 폴라 코딩 방식들이 최근에 제안되었다. 더욱 직접적인 접근법이, J. Honda and H. Yamamoto, “Polar coding without alphabet extension for asymmetric models”, IEEE Trans. on Information Theory, Vol. 59, No. 12, pp. 7829-7838, 2013에서 제안되었으며, 이는 비선형 폴라 코드들을 사용하는 비대칭 채널들의 용량을 달성하지만, 블록 길이에서 지수 함수적인 저장 공간을 포함하는 큰 부울 함수들을 사용한다. 본 발명의 개시는 이러한 방식에 대한 변경을 설명하며, 이는 부울 함수(Boolean function)의 사용을 제거하고, 블록 길이의 선형 기능에 대한 태스크들의 인코딩 및 디코딩의 감소된 저장 요건을 초래할 수 있다.
[0028] 본 발명의 개시는 인코더에서 채널에 관한 부가 정보의 이용성에 대한 비선형 방식의 일반화를 추가로 설명한다. 이러한 방식은 폴라 멀티코딩 방식으로 지칭될 수 있으며, 이는 알려진 인코더를 이용한 채널들의 용량을 달성한다. 이러한 방식은 비휘발성 메모리들, 예컨대 플래시 메모리들 및 위상 변경 메모리들, 그리고 브로드캐스트 채널들에 유용할 수 있다.
[0029] 플래시 메모리들의 일 특성은 기록 시도에 대한 메모리 셀들의 응답이 메모리의 이전 콘텐츠에 의해 영향받을 수 있다는 것이다. 이는 에러 정정 방식들의 디자인을 복잡하게 하고, 결국 플래시 시스템들이 기록 전에 셀들의 콘텐츠를 소거하게 하는 원인이 되며, 그로 인해 지연 효과를 제거한다. 그러나 플래시 메모리들에서 소거 동작은 리소스 소모적일 수 있고, 따라서 기록 전에 소거를 수반하지 않는 단순한 코딩 방식은 솔리드 스테이트 드라이브들의 성능을 현저하게 향상시킬 수 있다. 본 명세서에는 제안된 폴라 멀티코딩 방식의 두 예들이 개시되어 있다.
[0030] B. 이전 작업에 대한 관계
[0031] 알려진 인코더를 이용한 채널 코딩의 연구는, Gelfand 및 Pinsker에 의해 유도된 채널 용량(앞선 Gelfand 및 Pinsker, “Coding For Channel With Random Parameters" 참조)과 함께 Kusnetsov 및 Tsybakov(A. Kusnetsov and B. S. Tsybakov, “Coding In A Memory With Defective Cells”, translated from Problemy Peredachi Informatsii, Vol. 10, No. 2, pp. 52-60, 1974)에 의해 개시되었다. Gelfand 및 Pinsker의 알려진 인코딩 기술은 브로드캐스트 채널들의 용량 구역에 대해 내부 제한을 설정하도록 Marton에 의해 앞서 사용되었다(K. Marton, “A Coding Theorem For The Discrete Memoryless Broadcast Channel”, IEEE Trans. on Information Theory, Vol. 25, No. 3, pp. 306-311, May 1979). 낮은 복잡도 용량 달성 코드들은, 격자 코드들을 사용하여 연속한 채널들에 대해 우선 제안되었다(예를 들어, R. Zamir, S. Shamai, and U. Erez, “Nested Linear/Lattice Codes For Structured Multiterminal Binning”, IEEE Trans. On Information Theory, Vol. 48, No. 6, pp. 1250-1276, June 2002 참조). 개별 채널들에서, 정보 임베딩의 대칭적인 특정한 경우에 대해, 폴라 코드를 사용하여 제 1 의 낮은 복잡도 용량 달성 방식이 제안되었다(예를 들어, S. Korada and R. Urbanke, “Polar Codes Are Optimal For Lossy Source Coding,” IEEE Trans. On Information Theory, Vol. 56, No. 4, pp. 1751-1768, April 2010, Section VIII.B 참조). 플래시 메모리 재기록의 애플리케이션에 대한 이러한 방식의 변경은, 한 번 기록(write-once) 메모리로 불리는 모델을 고려하여, D. Burshtein and A. Strugatski, “Polar Write Once Memory Codes”, IEEE Trans. On Information Theory, Vol. 59, No. 8, pp. 5088-5101, Aug. 2013에서 제안되었다. 랜덤 추출기들에 기반한, 이러한 애플리케이션에 대한 추가의 방식은 최근에, A. Gabizon and R. Shaltiel, “Invertible Zero-Error Dispersers And Defective Memory With Stuck-At Errors”, in APPROX-RANDOM, 2012, pp. 553-564에서 또한 제안되었다.
[0032] 본 개시의 몇몇 양상들은, 앞선 Burshtein and Strugatski, “Polar Write Once Memory Codes” 및 A. Gabizon and R. Shaltiel, “Invertible Zero-Error Dispersers And Defective Memory With Stuck-At Errors”, in APPROX-RANDOM, 2012, pp. 553-564에서 고려된 것과 비교될 수 있는 셋업과 관련된다. 언급된 두 방식들에 비해 현재 개시된 기술들의 기여는, 본 명세서에 설명된 방식들은 잡음을 또한 포함하는 재기록 모델의 용량을 달성할 수 있는 반면, Burshtein and Strugatski, “Polar Write Once Memory Codes” and in Gabizon and Shaltiel, “Invertible Zero-Error Dispersers And Defective Memory With Stuck-At Errors”에 개시된 방식들은 잡음 없는 경우의 용량을 달성할 수 있다. 에러 정정은 현대의 플래시 메모리 시스템들에서 유용한 성능이다. 잡음 용량의 낮은 복잡도 실현성은 멀티코딩 기술을 사용하여 동반될 수 있다.
[0033] 앞선 Gabizon and Shaltiel, “Invertible Zero-Error Dispersers And Defective Memory With Stuck-At Errors”와 비교하면, 현재 개시된 기술들은 입력 비용 제한을 갖는 용량을 달성함으로써 개선된 성능을 초래할 수 있고, 이는 또한 다수의 재기록 라운드 동안 코드 레이트들의 합을 최대화 또는 그렇지 않으면 증가시키기 위해 재기록 모델들에 유용하다. 앞선 Burshtein 및 Strugatski “Polar Write Once Memory Codes”와 비교하면, 현재 개시된 기술들은 인코더와 디코더 사이의 공유된 랜덤의 포함을 제거하거나 그렇지 않으면 감소시킴으로써 향상된 성능을 초래할 것이고, 이는 실질적인 코딩 성능에 영향을 줄 수 있다. 공유된 랜덤의 제거 또는 감소는 비선형 폴라 코드들의 사용에 의해 달성될 수 있다. 본 명세서에서 고려된 추가의 코딩 방식은 또한 공유된 랜덤을 수반하지 않는다. X. Ma, “Write-Once-Memory Codes By Source Polarization”(2004년 5월 현재, 온라인, [arxiv.org/abs/1405.6262]의 인터넷 URL에서 이용가능함)를 참조하라. 그러나, 앞선 Ma, “Write-Once-Memory Codes By Source Polarization”에서 추가의 코딩 방식은 단지 잡음 없는 경우만을 고려한다.
[0034] Marton 코딩 기술이 구성 요소로서 멀티코딩 기술을 포함하기 때문에, 알려진 인코더들을 이용한 채널에 대한 폴라 코딩은 또한 브로드캐스트 채널들의 상황에서 최근에 연구되었다. 코딩 기술이, N. Goela, E. Abbe, and M. Gastpar, “Polar Codes For Broadcast Channels”, in Proc. IEEE Int. Symp. on Information Theory (ISIT), July 2013, pp. 1127-1131에서, 최근에 브로드캐스트 채널들에 대해 제시되었다. 현재 개시된 기술들은 독립적으로 전개되었고, 앞선 Goela et al., “Polar Codes For Broadcast Channels”에서 발견되거나, 제안되거나 그렇지 않으면 개시되지 않은 적어도 3개의 새로운 기여들을 제공한다. 첫째, 비선형 폴라 코드들의 변경된 방식을 사용함으로써, 현재 개시된 기술들은 블록 길이의 지수 함수에서 선형 함수로 감소된 저장 요건들을 초래할 수 있다. 둘째, 현재 개시된 방식들은 플래시 메모리 재기록 및 데이터 저장소의 애플리케이션에 연결될 수 있으며, 이는 이전 작업에서 고려되지 않았다. 셋째, Goela et al., “Polar Codes For Broadcast Channels”에서의 분석은 저하의 특정 기술적 조건을 나타내는 채널들에 대해 유지된다. 본 발명에서, 재기록 모델은 성능 저하 상태를 나타내는 기록 잡음으로 간주되고, 이 방식이 고려된 모델의 용량을 달성하는 것이 본 명세서에서 보여진다.
[0035] 브로드캐스트 채널에 대한 폴라 코딩에 관한 다른 문서는 최근에, Mondelli et. al.; see M. Mondelli, S. H. Hassani, I. Sason, and R. Urbanke, “Achieving Marton's Region For Broadcast Channels Using Polar Codes”(2014년 1월, 온라인, [arxiv.org/abs/1401.6060]의 인터넷 URL에서 이용가능함)에 의해 공표되었다. 이 문서는, 채널 저하의 상태의 바이패스를 허용하는 "체이닝(chaining)"으로 불리는 방법을 제안했다. 본 개시에서, 체이닝 방법은 플래시 메모리 재기록 애플리케이션 및 새로운 비선형 폴라 코딩 방식에 관련되고, 제안된 멀티코딩 방식에 적용된다. 이는 알려진 인코더 모델 및 Marton의 내부 경계의 달성과 함께 선형 저장을 허용하여, 채널 저하의 수반을 제거 또는 감소시킨다. 더욱이, 본 개시는 플래시 메모리 애플리케이션에 대한 체이닝 방식을 논의하고, 플래시 메모리 시스템들에 대한 이러한 예의 적용성을 설명한다.
[0036] 본 개시의 다음 논의 섹션은 비대칭 채널들에 대한 비선형 폴라 코딩 방식을 제안하며, 이는 부울 함수들의 지수적 저장을 수반하지 않는다. 계속되는 추가의 섹션들은, 플래시 메모리들의 재기록을 위한 특정한 경우들을 포함하여, 알려진 인코더를 이용한 채널들에 대한 폴라 멀티코딩 방식을 설명할 것이다.
[0037] II. 비대칭 포인트-투-포인트 채널들
[0038] 주석:
Figure pct00001
인 양의 정수들에 대해,
Figure pct00002
이 집합
Figure pct00003
을 나타내고,
Figure pct00004
은 집합
Figure pct00005
을 나타낸다고 하자.
Figure pct00006
의 부분 집합
Figure pct00007
가 주어지면,
Figure pct00008
Figure pct00009
에 대해
Figure pct00010
의 여집합을 나타내고, 여기서
Figure pct00011
은 문맥으로부터 명확하다.
Figure pct00012
가 길이
Figure pct00013
의 벡터를 나타내고,
Figure pct00014
Figure pct00015
에서 지수들을 갖는 엘리먼트들을 삭제함으로써
Figure pct00016
로부터 획득된 길이
Figure pct00017
의 벡터를 나타낸다고 하자.
[0039] 이러한 섹션 전체를 통해, 이진 입력 알파벳들을 가진 채널들이 고려된다. 그러나 이러한 섹션의 결과들은 다양한 예들, 예컨대, R. Mori and T. Tanaka, “Channel Polarization On Q-Ary Discrete Memoryless Channels By Arbitrary Kernels”, in IEEE Int. Symp. on Information Theory (ISIT), June 2010, pp. 894-898; W. Park and A. Barg, “Polar Codes For Q-Ary Channels, q = 2r”, IEEE Trans. on Information Theory, Vol. 59, No. 2, pp. 955-969, Feb 2013; A. Sahebi and S. Pradhan, “Multilevel Polarization Of Polar Codes Over Arbitrary Discrete Memoryless Channels”, in Communication, Control, and Computing (Allerton), 2011, 49th Annual Allerton Conference on Communication, Control, and Computing, Sep. 2011, pp. 1718-1725; E. Sasoglu, I. Telatar, and E. Arikan, “Polarization For Arbitrary Discrete Memoryless Channels”, in Information Theory Workshop, 2009. ITW 2009. IEEE, Oct. 2009, pp. 144-148; 및 E. Sasoglu, “Polarization and Polar Codes,” Foundation Trends in Communications and Information Theory, Vol. 8, No. 4, pp. 259-381, 2012 (온라인, [dx.doi.org/10.1561/0100000041]의 인터넷 URL에서 이용가능함)에서 설명된 방법들을 이용하여 더 많은 어려움 없이 비-이진 알파벳들에 확장될 수 있다. 폴라 코딩의 일 양상은, 폴라 코딩이 랜덤 벡터들의 엔트로피들에 대한 Hadamard 변환의 분극 효과를 이용할 수 있다는 것이다. 입력 랜덤 변수
Figure pct00018
, 출력 랜덤 변수
Figure pct00019
, 및
Figure pct00020
에 대한 한 쌍의 조건부 확률 매스 함수(pmfs)
Figure pct00021
를 갖는 이진 입력 메모리 없는 채널 모델을 고려하라. n을, 블록 길이로 또한 지칭되는 채널 사용들의 수를 나타내는 2의 지수라고 하자. 채널 용량은 충분히 큰 블록 길이에 대해 요구가능한 정도로 작게 디코딩 에러의 확률이 만들어지는 레이트에 대해 상한으로서 고려될 수 있다. 다양한 예들에서, 채널 용량은 X 및 Y의 상호 정보에 의해 주어질 수 있다.
[0040] 정리 1. ( 채널 코딩 정리)(T. M. Cover and J. A. Thomas, Elements of Information Theory (2nd ed.). Wiley, 2006, Chapter 7 참조). 개별 메모리 없는 채널의 용량
Figure pct00022
Figure pct00023
에 의해 주어질 수 있다.
[0041] Hadamard 변환은 매트릭스
Figure pct00024
를 갖는 원소수 2의 필드에 대해 랜덤 벡터
Figure pct00025
의 곱일 수 있으며, 여기서
Figure pct00026
Figure pct00027
는 Kronecker 거듭제곱을 나타낸다. 다시 말해서,
Figure pct00028
은 아래의 블록 매트릭스에 의해
Figure pct00029
에 대해 귀납적으로 설명될 수 있다:
Figure pct00030
[0042] 본 개시의 일 양상은
Figure pct00031
에 대해 조건부 엔트로피
Figure pct00032
의 거동을 포함한다. 매트릭스
Figure pct00033
Figure pct00034
을 랜덤 벡터
Figure pct00035
로 변환하여, 조건부 엔트로피
Figure pct00036
는 분극된다. 예를 들어,
Figure pct00037
인 지수들의
Figure pct00038
에 근접한 일부에 대해, 조건부 엔트로피
Figure pct00039
는 1에 근접하고, 지수들의 나머지 거의 모두에 대해, 조건부 엔트로피
Figure pct00040
는 0에 근접한다. 이러한 결과는 앞선 E. Arikan에 의한 “Channel Polarization”에 나타났다. "분극 정리"는 아래에서 분극 효과를 수학적으로 표현한다.
[0043] 정리 2. ( 분극 정리)(앞선 E. Arikan, “Source Polarization”, in Proc. IEEE Int. Symp. on Information Theory (ISIT), 2010, pp. 899-903; 정리, 1 참조). 전술한 바와 같이
Figure pct00041
이 제공된다고 하자. 임의의
Figure pct00042
에 대해, Y가 주어진 경우 X의 함수로서 조건부 엔트로피
Figure pct00043
가 다음과 같이 주어진다:
Figure pct00044
그리고 다음과 같이 상보 함수
Figure pct00045
을 정의한다:
Figure pct00046
그러면:
Figure pct00047
이러한 분극 효과는, 블록 길이에서 다항식인 러닝 타임을 갖는 대칭 채널들의 용량을 달성할 수 있는 코딩방식의 설계에 대해 사용될 수 있다. 약하게 대칭인 채널들의 용량은 입력 알파벳에 대한 균일한 분포, 예를 들어,
Figure pct00048
에 의해 달성될 수 있다(예를 들어, T. M. Cover and J. A. Thomas, Elements of Information Theory (2d ed.), Wiley, 2006, Theorem 5.2.1 therein 참조). 약하게 대칭인 채널들은 출력 알파벳에 대해 균일한 분포를 갖도록 고려될 수 있고, 여기서 상이한 입력들이 주어질 경우 출력의 조건부 분포들은 서로의 순열일 수 있다. 이 섹션에서 입력 알파벳이 이진수인 것으로 고려될 수 있기 때문에, 용량 달성 분포는
Figure pct00049
이며, 따라서 아래의 등식(1)이 도출된다:
Figure pct00050
[0044] (조건부 엔트로피가 집합
Figure pct00051
의 정의 만큼 작을 수 있기 때문에)
Figure pct00052
에서 각각의 지수에 대해, 조건부 확률
Figure pct00053
은 0 또는 1에 근접할 수 있다. 결과적으로,
Figure pct00054
Figure pct00055
가 주어지면 랜덤 변수
Figure pct00056
가 신뢰가능하게 추정될 수 있다. 이러한 실현들은 후속하는 다양한 코딩 방식들을 달성하기 위해 사용될 수 있다. 인코더는 소스 메시지를 가진 서브벡터
Figure pct00057
를, 그리고 디코더와 공유된, 균일하게 분포된 랜덤 비트들을 가진 서브 벡터
Figure pct00058
를 할당함으로써 벡터
Figure pct00059
를 생성할 수 있다. 랜덤 공유는 분석에 유용할 수 있지만, 확률적 방법에 의해 불필요한 것으로 드러날 것이다. 등식 (1)은 설명된 코딩 방식이 채널 용량을 달성할 수 있다고 암시한다. 디코딩은 지수 1에서 위로 n까지, 반복적으로 수행될 수 있다. 각각의 반복에서, 디코더는 반복의 세트 멤버십에 따라 공유된 정보 또는 최대 우도 추정을 이용하여 비트
Figure pct00060
를 추정할 수 있다.
Figure pct00061
Figure pct00062
에 있는 비트들
Figure pct00063
의 추정은 성공적일 수 있는데, 그 이유는 이러한 비트들이 디코더에 미리 알려졌기 때문이다. 비트들의 나머지는 비교적 높은 확률로 올바르게 추정될 수 있어서, 높은 확률로 전체 메시지의 만족스런 디코딩을 초래한다.
[0045] 그러나 이러한 추론은 비대칭 채널들로 직접 전환하지 않을 수 있다. 비대칭 채널들의 용량 달성 입력 분포는, 일반적으로, 균일하지 않을 수 있다(예를 들어, S. Golomb, “The limiting behavior of the z-channel (corresp.)”, IEEE Trans. on Information Theory, Vol. 26, No. 3, pp. 372-372, May 1980, e.g.,
Figure pct00064
참조). Hadamard 변환이 전단사일 수 있기 때문에, 결과적으로 분극된 벡터
Figure pct00065
의 용량 달성 분포가 또한 비균일할 수 있다. 가능한 하나의 문제는 메시지의 균일한 비트들을 할당하는 것 또는 공유된 랜덤이
Figure pct00066
의 분포를 변경할 수 있고, 결과적으로 또한 조건부 엔트로피들
Figure pct00067
(또한 확률 체인 룰
Figure pct00068
을 주목)을 변경시킬 수 있다.
[0046] 이러한 전술한 상황을 관리하기 위해,
Figure pct00069
의 분포에서의 변경은 미미한 것으로 유지될 수 있고, 따라서 디코딩 에러의 확률에 대한 그 영향도 또한 미미할 수 있다. 이를 달성하기 위해,
Figure pct00070
에 대한 조건부 엔트로피들
Figure pct00071
이 고려될 수 있다. 분극이 채널의 전이 확률들에 무관하게 발생할 수 있기 때문에, 출력 Y가 결정적 변수이고, 엔트로피들
Figure pct00072
이 또한 분극되는 정리 2에 의해 결론지어지는 잡음 없는 채널이 고려된다. 이러한 분극에 대해, 지수의
Figure pct00073
의 부분은 높은 엔트로피
Figure pct00074
를 허용할 수 있다.
Figure pct00075
의 분포에서 미미하거나 그렇지 않으면 감소된 변경을 초래하기 위해, 메시지의 균일한 비트들의 할당들 및 공유된 랜덤은 높은 엔트로피
Figure pct00076
를 가진 지수들에 대해 제한될 수 있다.
[0047] 변경된 코딩 방식은 전술한 관측의 결과로서 구현될 수 있다. 높은 엔트로피
Figure pct00077
를 가진 위치들은 균일하게 분포된 비트들이 할당될 수 있지만, 나머지 위치들에는
Figure pct00078
의 확률 매스 함수(pmf)가 할당될 수 있다. 정리 2의 표기와 유사하게, 높은 엔트로피
Figure pct00079
를 가진 지수들의 세트가
Figure pct00080
로 표시될 수 있다. 신뢰가능한 디코딩을 달성하기 위해, 신뢰가능하게 디코딩될 수 있는
Figure pct00081
의 지수들에 메시지 비트들이 배치되어서, 이들의 엔트로피들
Figure pct00082
은 낮을 수 있다. 메시지 비트들이 교점
Figure pct00083
에 배치될 수 있다. 지수가
Figure pct00084
에 있지 않은 위치들은 신뢰가능한 디코딩을 위해 미리 디코더에 알려질 수 있다. 앞선 작업은 인코더와 디코더 사이의 랜덤 부울 함수들을 공유하고, pmf(
Figure pct00085
)에 따라 도출하고, 이러한 함수에 따라
Figure pct00086
에 지수를 할당하도록 제안했다. 예를 들어, 앞선, Goela and Gastpar, “Polar Codes For Broadcast Channels”, supra; Honda and Yamamoto, “Polar Coding Without Alphabet Extension For Asymmetric Models”을 참조하라. 그러나 본 개시는, 부울 함수들에 대해 요구되는 저장소가 n에서 지수적일 수 있음을 고려하고, 결국 본 개시는 효율적인 대안을 제안한다.
[0048] 부울 함수를 방지하기 위해,
Figure pct00087
의 여집합이 3개의 디스조인트 세트들로 분할될 수 있다. 첫째, 교점
Figure pct00088
에서의 지수들에, 인코더와 디코더 사이에서 공유될 수 있는, 균일하게 분포된 랜덤 비트들이 할당될 수 있다. 대칭적인 경우에서와 같이, 이러한 랜덤 공유는 필수적이지는 않을 것이다.
Figure pct00089
의 비트들의 나머지(세트
Figure pct00090
의 비트들)가 확률
Figure pct00091
를 가진 값
Figure pct00092
에 랜덤하게 할당될 수 있다(여기서,
Figure pct00093
는 채널의 용량 달성 분포인 pmf(
Figure pct00094
)에 따라 계산된다).
Figure pct00095
의 지수들은 신뢰가능하게 디코딩될 수 있지만,
Figure pct00096
의 지수들은 그렇지 않다. 다행스럽게도, 세트
Figure pct00097
는 작은 것으로 도시되며, 따라서 개별적으로 이러한 위치들은 소멸하거나 그렇지 않으면 코드 레이트에 감소된 영향을 가질 수 있다.
[0049] 소스 메시지가 교점
Figure pct00098
의 지수들에 위치되는 것을 고려함으로써, 코드 레이트는 채널 용량에 접근하는 것으로 나타날 수 있다. 이러한 교점의 점근적인 부분은 다음과 같이 도출될 수 있다:
Figure pct00099
분극 정리(정리 2)는
Figure pct00100
Figure pct00101
을 암시한다. 부분
Figure pct00102
이 큰
Figure pct00103
에 대해 소멸될 수 있기 때문에, 비대칭 레이트는
Figure pct00104
로 보여질 수 있고, 채널 용량을 달성한다.
[0050] 방식의 더욱 정교한 정의를 위해, 소위 Bhattacharyya 파라미터가 조건부 엔트로피 대신에,
Figure pct00105
의 서브세트들의 선택에서 사용될 수 있다. Bhattacharyya 파라미터들은 엔트로피들에 유사한 방식으로 분극될 수 있고, 디코딩 에러의 확률을 제한하기 위해 유용할 수 있다. 별개의 랜덤 값 Y 및 Bernoulli 랜덤 값 X에 대해, Bhattacharyya 파라미터 Z가 다음과 같이 주어질 수 있다:
Figure pct00106
[0051] 다양한 폴라 코딩 논문이, 랜덤 값 X가 균일하게 분포될 때 등식(3)과 일치할 수 있는 Bhattacharyya 파라미터에 대해 조금 상이한 정의를 사용할 수 있음을 주목하라. Bhattacharyya 파라미터는, 디코딩 에러의 확률 및 엔트로피
Figure pct00107
모두에 대한 추정으로서 간주될 수 있다. Bhattacharyya 파라미터와 조건부 엔트로피 사이의 이하의 관계는 이하의 제한 1에서 규정된 바와 같이 관측될 수 있다.
[0052] 명제 1. (E. Arikan, “Source Polarization”, in Proc. IEEE Int. Symp. on Information Theory (ISIT), 2010, pp. 899-903; 명제 2 참조).
Figure pct00108
Figure pct00109
[0053] 높고 낮은 Battacharyya 파라미터들의 세트
Figure pct00110
가 제공되며, 세트들
Figure pct00111
Figure pct00112
에 대신하여 사용될 수 있다.
Figure pct00113
에 대해, 다음과 같이 주어질 수 있다:
Figure pct00114
앞서와 같이, 파라미터
Figure pct00115
에 대한 세트들
Figure pct00116
Figure pct00117
Figure pct00118
를 결정적 변수라고 함으로써 주어질 수 있다.
[0054] 균일하게 분포된 소스 메시지 m은
Figure pct00119
로서 구현될 수 있고, 인코더 및 디코더 모두에 알려진 결정적 벡터
Figure pct00120
Figure pct00121
로서 구현될 수 있다. 서브세트
Figure pct00122
및 지수
Figure pct00123
의 경우, 함수
Figure pct00124
Figure pct00125
의 엘리먼트들의 순서화된 리스트에서
Figure pct00126
의 랭크를 나타내기 위해 사용될 수 있다. 확률들
Figure pct00127
Figure pct00128
는 앞선 Honda and Yamamoto, “Polar Coding Without Alphabet Extension For Asymmetric Models”(이하의 Section III.B (Multicoding Construction for Degraded Channels) 참조)에서 설명된 바와 같이 귀납적 방법에 의해 계산될 수 있다.
[0055] 구조 A. 이 섹션은 후속하는 참조의 편의를 위해 소위 "구조 A"로 지칭되는 구조를 설명하며, 이는 메시지를 인코딩하는 것의 출력으로서 코드워드들을 생성하고 입력 코드워드를 디코딩하는 것의 출력으로서 추정된 메시지를 생성하기 위해 비대칭 채널들에 적합한 방식들을 인코딩 및 디코딩하기 위한 예시적인 동작들을 제공한다.
[0056] 예시적인 메시지 인코딩 방식
입력: 메시지
Figure pct00129
출력: 코드워드
Figure pct00130
연속적으로, 1 내지 n의
Figure pct00131
에 대해, 세트:
Figure pct00132
2) 코드워드
Figure pct00133
송신
3) 균일한 입력 분포를 갖는 선형 비용량 달성 폴라 코드를 이용하여 벡터
Figure pct00134
를 개별적으로 송신
[0057] 예시적인 입력 디코딩 방식
입력: 잡음 벡터
Figure pct00135
.
출력: 메시지 추정
Figure pct00136
.
1)
Figure pct00137
에 의해 벡터
Figure pct00138
를 추정.
2) 1 내지 n의
Figure pct00139
에 대해, 세트:
Figure pct00140
3) 추정된 메시지
Figure pct00141
를 리턴.
[0058] 구조 A의 전술한 이러한 방식에서 예시적인 관심 특성들은 달성된 용량 및 낮은 알고리즘 복잡도일 수 있다. 디코딩 에러의 확률이 소멸되거나 그렇지 않고 용량 미만의 임의의 레이트에 대해 블록 길이에 따라 감소되면, 코딩 방식들의 시퀀스는 채널 용량을 달성하는 것으로 일컬어진다. 이하의 정리 3은 전술한 구조 A의 방식의 관측으로부터 제안된다.
[0059] 정리 3. 전술한 예시적인 인코딩 및 디코딩 방식들을 갖는 구조 A는 낮은 계산상 복잡도를 가진 채널 용량(정리 1)을 달성한다.
[0060] 다음 섹션에서, 일반화된 구조가 그 용량 달성 특성들의 설명과 함께 예시된다. 따라서, 정리 3은 더욱 일반적인 정리의 추론으로서 뒤따른다.
[0061] III. 넌 - 캐주얼 인코더 상태 정보를 갖는 채널
[0062] 이 섹션에서, 구조 A는 인코더에서 채널 상태 정보의 이용가능성에 대해 일반화된다. 플래시 메모리들에서의 재기록이 고려되고, 이러한 애플리케이션에 대한 모델의 두 예시적인 경우들이 제시된다. 셀-투-셀 간섭의 메카니즘으로 인해, 메모리 없는 채널의 가정은 플래시 메모리들에 매우 정확한 것은 아닐 수 있지만, 이 가정은 그럼에도 유익한 실제 성능을 갖는 코딩 방식들의 설계에 유용하다. 본 개시에서 고려되는 플래시 메모리들의 일 특징은 (단일 레벨 셀들에서) 데이터 셀 레벨을 "1"에서 "0"으로 변경하는 높은 비용이다. 이러한 변경을 수행하기 위해, 동작, 소위 "블록 소거"가 구현될 수 있다. 블록 소거 동작을 방지하기 위해 재기록이 고려될 수 있다. 예를 들어, 레벨 "1"을 가진 셀에 대한 재기록 시도는, 이것이 소거 동작이 아니기 때문에, 셀 레벨에 영향을 주지 않을 수 있다. 통신 용어에서, 채널은 개별 상태를 갖는 것으로 고려될 수 있다. 상태는 "메모리 없음"으로 고려될 수 있는데, 예를 들어, 상이한 셀들의 상태는 독립적으로 분포될 수 있다. 이러한 가정은 완벽하게 정확하지는 않을 수 있는데, 그 이유는 재기록 방식에서 메모리 상태는 메모리에 대한 앞선 기록에 의해 결정될 수 있고, 여기서 코드워드 지수들은 필수적으로 독립적으로 분포될 필요가 없을 수 있다. 그러나 용량 달성 코드들이 사용될 수 있기 때문에, 독립적으로 그리고 동등하게 분포된(i.i.d) 가정은, 셀 출력들을 나타내는 상이한 Bernoulli 랜덤 값들의 거동에 대해 합리적인 접근일 수 있다.
[0063] 모든 n개의 셀들의 상태는 기록 프로세스의 시작 이전에 기록기에 대해 이용가능한 것으로 가정될 수 있다. 통신 용어에서, 이러한 종류의 상태 유용성은 "넌-캐주얼"로 지칭될 수 있다. 이러한 세팅은 또한 브로드캐스트 채널들을 통한 통신을 위해 Marton 코딩 방법에서 유용할 수 있다. 따라서, 뒤따를 멀티코딩 방식들은 이러한 세팅에서 기여로서 또한 기능할 수 있다. 고려되는 모델의 일 예시적인 경우는 잡음 없는 한 번 기록 메모리 모델이다. 설명된 모델은 또한, “rank-modulation rewriting codes”로 불리는 코드들의 타입에 대한 기반으로서 기능할 수 있다(예를 들어, E. En Gad, E. Yaakobi, A. Jiang, and J. Bruck, “Rank-Modulation Rewrite Coding For Flash Memories”(온라인, 2013년 12월 현재, [//arxiv.org/abs/1312.0972]의 URL에서 이용가능함) 참조). 따라서, 본 개시에 제안된 방식들은 또한 랭크 변조 재기록 코드들의 설계에 유용할 수 있다.
[0064] 채널 상태는 파라미터 λ를 가진 Bernoulli 랜덤 변수
Figure pct00142
로 표현될 수 있고, 확률
Figure pct00143
로 나타낸다. 전술한 바와 같이, 상태 "1"(예를 들어, 로직 "1")의 셀은 "1"의 값으로 기록될 수 있다(블록 소거 방지). 파라미터 λ가 높은 경우, 메모리 셀의 용량은 작을 수 있는데, 그 이유는 단지 몇몇 셀들이 기록 프로세스에서 변경에 이용가능할 수 있고 결국 정보의 작은 양이 저장될 수 있기 때문이다. 그 결과, 장래의 기록들에서 메모리의 용량은 코드북의 선택에 의해 영향받을 수 있다. 높은 Hamming 가중치의 많은 코드워드들을 포함하는 코드북은 장래의 기록들의 파라미터 λ를 높게 할 수 있고, 결국 장래의 기록들의 용량은 낮을 수 있다. 그러나 코드북의 예상된 Hamming 가중치를 낮게 강제하는 것은 현재 기록의 용량을 감소시킬 수 있다. 이러한 트레이드-오프를 해결하기 위해, 다수의 기록들에 대한 코드 레이트들의 합이 밸런싱된 결과를 달성하기 위해 조정될 수 있다. 많은 경우에, 코드북 가중치에 대한 제한들은 합 레이트를 엄격하게 증가시킬 수 있다(예를 들어, C. Heegard, “On The Capacity Of Permanent Memory”, in IEEE Trans. Information Theory, Vol. 31, No. 1, pp. 34-42, January 1985 참조). 따라서, 입력 비용 제한은 본 명세서에 설명된 모델에서 고려될 수 있다.
[0065] 본 명세서에서 고려되는 일반적인 모델은, 인코더에서 상태 정보가 넌-캐주얼하게 이용가능한 경우, 개별적인 메모리 없는 상태 및 입력 비용 제한을 갖는 개별적인 메모리 없는 채널일 수 있다. 채널 입력, 상태 및 출력은 각각
Figure pct00144
로 표기될 수 있고, 이들 각각의 유한 알파벳들은
Figure pct00145
로 표기될 수 있다. 랜덤 변수들은 X, S 및 Y로 표기될 수 있고, 랜덤 벡터들은
Figure pct00146
로 표기될 수 있으며, 여기서, n은 블록 길이이다. 상태는 확률 매스 함수(pmf)
Figure pct00147
에 따라 분포되는 것으로 고려될 수 있고, 채널의 조건부 pmf들은
Figure pct00148
로 표기될 수 있다. 입력 비용 제한은 다음과 같이 표현될 수 있다:
Figure pct00149
입력 비용 제한 및 알려진 인코더를 이용한 채널 용량은 Gelfand-Pinsker 정리의 확장에 의해 결정될 수 있다(예를 들어, A. El Gamal and Y. Kim, Network Information Theory, Cambridge University Press, 2012, Equation 7.7 at p. 186 참조). 비용 제한은 Gamal 참조에서 조금 상이하게 정의될 수 있지만, 용량은 변경에 의해 실질적으로 영향받지 않을 수 있다.
[0066] 정리 4. ( 비용 제한을 갖는 Gelfand - Pinsker 정리)(예를 들어, 앞선 Gamal and Kim, Network Information Theory, Equation (7.7) at p. 186 참조). 상태 정보가 인코더에서만 넌-캐주얼하게 이용가능한 경우, DM 상태
Figure pct00150
를 갖는 개별적인 메모리 없는 채널의 용량(DMC), 및 입력 비용 제한 B는 다음과 같이 주어진다:
여기서 V 는 유한 알파벳
Figure pct00152
를 갖는 보조 랜덤 변수일 수 있다.
[0067] 본 명세서에 개시된 예시적인 코딩 방식은 정리 4에서 언급된 용량을 달성할 수 있다. 앞선 섹션과 유사하게, 보조 랜덤 변수 V가 이진수인 경우에 처리가 이용가능할 수 있다. 플래시 메모리에서, 이러한 경우는 메모리의 단일 레벨 셀(SLC) 타입에 대응할 수 있다. 위의 섹션 II, 비대칭 포인트-투-포인트 채널들에서 언급한 바와 같이, 비 이진수 경우(이는 다중 레벨 셀(MLC) 메모리에 대응할 것임)에 대한 설명된 방식의 확장이 가능하다. 이진 랜덤 변수에 대한 제한은 채널 출력 Y에 적용되지 않을 수 있다. 따라서, 저밀도 패리티 체크(LDPC) 코드들로서 알려진 코드들을 이용하여 플래시 메모리들에서 사용되는 소프트 디코딩 방법에 유사하게, 셀 전압이 디코더에서 더욱 정확하게 판독될 수 있어서, 코딩 성능을 향상시킬 수 있다.
[0068] 정리 4의 용량을 달성할 수 있는 예시적인 방식이, 이하에서 서브섹션 C, “Multicoding Construction without Degradation”에서 구조 C로서 섹션 III, 넌-캐주얼 인코더 상태 정보를 이용한 채널들에서 이하에서 설명된다. 용량 달성 결과는 이하의 정리, 정리 5에서 요약될 수 있다.
[0069] 정리 5. 구조 C는 낮은 계산상 복잡도로 비용 제한(정리 4)에 따라 Gelfand-Pinsker 정리의 용량을 획득한다.
[0070] 정리 4의 세팅의 예시적인 경우는, (상태 정보 없이) 입력 비용 제한을 갖는 채널 코딩의 세팅이다. 따라서, 정리 5는 또한, 구조 C가 입력 비용 제한에 따라 채널 코딩의 세팅의 용량을 달성할 수 있다는 것을 암시할 수 있다. 이러한 섹션 III에서, 플래시 메모리의 재기록에 유용한 Gelfand-Pinsker 모델의 특정한 두 경우들이 개시된다. 그 후, 섹션 III에서, 모델의 특정한 두 경우들에 대응하는 예시적인 구조 방식들의 두 버젼들이 설명될 것이다.
[0071] A. 특정한 경우들
[0072] 우선, 플래시 메모리 재기록에 대한 매우 자연스런 모델인 예시적인 특정한 경우가 이하에서 설명될 것이다.
[0073] 1. 세트들
Figure pct00153
모두가 {0, 1}과 동일하다고 하고, 상태 확률 매스 함수(pmf)가
Figure pct00154
라고 하자. 이 모델은 단일 레벨 셀 플래시 메모리에 대응할 수 있다. s=0일 때, 셀은 이진 비대칭 채널로 거동할 수 있는데, 그 이유는 셀 상태가 기록 시도와 간섭하지 않을 수 있기 때문이다. s=1일 때, 시도된 실제 값에 무관하게, 셀은 1의 값이 기록되도록 시도된 것처럼 거동할 수 있다. 그러나 기록 프로세스 또는 이후의 임의의 시간 동안 에러가 여전히 발생할 수도 있다. 따라서, s=1일 때, 셀이 입력 "1"을 갖는 이진 비대칭 채널로 거동할 수 있다고 일컬어질 수 있다. 형식적으로, 채널 pmf들은 다음과 같이 주어질 수 있다:
Figure pct00155
[0074] 비용 제한은
Figure pct00156
로 주어질 수 있는데, 그 이유는 기록된 셀들의 양을 1의 값으로 제한하는 것이 유용할 수 있기 때문이다.
[0075] 본 명세서에 개시된 코딩 방식은, 정리 4의 용량을 달성하는 Gelfand 및 Pinsker의 코딩 방식에서와 같이, 보조 변수 V에 기초할 수 있다. Gelfand-Pinsker 코딩 방식은 계산상 비능률적일 수 있다. 현재 개시된 기술들의 일 양상은 동일한 레이트를, 효율적인 계산으로 달성한다. 일반적인 Gelfand-Pinsker 세팅들에 대한 코딩 방식들의 구조는 더 많은 제한된 구조에 기초할 수 있다. 첫째, 제한된 구조가 설명될 것이다. 그 다음, 제한된 구조는 더 많은 일반적인 경우로 확장될 수 있다. 제한은 코드 설계에 대해 선택된 보조 변수 V와 관련될 수 있다. 제한은 이하에서 제공되듯이, 채널 저하로 불리는 특성에 적용될 수 있다.
[0076] 채널 저하에 대한 . 예를 들어, Gamal and Kim, Network Information Theory, supra, at p. 112 참조. 개별 메모리 없는 채널(DMC)
Figure pct00157
은,
Figure pct00158
에 대해 확률적으로 저하(또는 단순히 저하)되고, W가 등식
Figure pct00159
을 만족하도록
Figure pct00160
가 존재하는 경우,
Figure pct00161
로 표기된다.
[0077] 본 명세서에 개시된 제 1 코딩 방식은 이하의 특성이 유지되는 채널들의 용량을 달성할 수 있다.
[0078] 용량 최대화를 위한 특성. 정리 4에서 Gelfand-Pinsker 용량을 최대화하는 함수들
Figure pct00162
Figure pct00163
은 조건
Figure pct00164
을 만족시킨다.
[0079] 예 1의 모델이 용량 최대화를 위한 특성의 저하 조건을 만족시키는 지는 알려지지 않는다. 그러나 모델의 "정확도"의 일부를 희생시키면서, 모델이 용량 최대화를 위한 특성을 만족시키도록 모델이 변경될 수 있다.
[0080] 예 2. 세트들
Figure pct00165
가 모두 {0,1}과 동일하다고 하자. 채널 및 상태 pmfs는
Figure pct00166
로 주어질 수 있고:
Figure pct00167
예를 들어, s=1이면, 채널 출력은 1일 수 있고, s=0이면 채널은 이진 대칭 채널로 거동할 수 있다. 이는 로직 "0"에서 로직 "1"로 셀 레벨을 변경하는 것에 대한 제한에 대응할 수 있다. 이러한 제한을 넘어선 확률론적 잡음 모델은 전체적으로 자연스럽지 않을 수 있고, 저하 조건을 만족시키기 위해 선택될 수 있다. 비용 제한은
Figure pct00168
로 주어질 수 있다.
[0081] 전술한 예 2의 모델은 용량 최대화에 대한 특성의 저하 조건을 만족시킬 수 있다. 이를 증명하기 위해, 정리 4에서 Gelfand-Pinsker 용량을 최대화하거나 그렇지 않으면 증가시키는 함수들
Figure pct00169
Figure pct00170
이 이러한 저하 조건을 만족시키기 위해 결정될 수 있다. 이러한 함수들은 이하의 정리들에서 구축될 수 있다.
[0082] 정리 6. 예 2의 채널의 용량은 다음과 같다:
Figure pct00171
여기서,
Figure pct00172
이고
Figure pct00173
이다. 선택
Figure pct00174
(여기서, V는 논리적 OR 연산임)이고:
Figure pct00175
는 이러한 용량을 달성한다.
[0083] 정리 6은 C. Heegard, “On The Capacity Of Permanent Memory,” IEEE Trans. Information Theory, Vol. 31, No. 1, pp. 34-42, January 1985; 정리 4에 유사할 수 있다. 정리 6의 증명은 이하의 첨부 A에 설명된다. 상한은 상태 정보가 디코더에서도 또한 이용가능하다는 가정에 의해 획득될 수 있고, 하한은 정리의 문구에 따라 함수들
Figure pct00176
Figure pct00177
을 세팅함으로써 획득될 수 있다. 예 2에서의 모델이 용량 최대화에 대한 특성의 저하 조건을 충족시킨다는 증명은 정리 6과 관련된 이하의 보조 정리에 의해 완성될 수 있다.
[0084] 보조 정리 6a. 예 2의 모델에 대한 정리 6의 기능들을 달성하는 용량은 용량 최대화에 대한 특성의 저하 조건을 충족시킨다. 즉, 채널
Figure pct00178
은 채널
Figure pct00179
과 관련하여 저하된다.
[0085] 보조 정리 6a는 아래의 첨부 B에 제공되며, 결과적으로, 예 2의 모델의 용량은 본 명세서에 개시된 예시적인 코딩 방식에 의해 달성될 수 있다. 다음 서브섹션에서, 예 2의 및 용량 최대화를 위한 특성을 충족시키는 임의의 모델의 용량을 달성할 수 있는 더 간단한 코딩 방식이 설명된다.
[0086] B. 저하된 채널들을 위한 멀티코딩 구조
[0087] 섹션 2에서 논의되었던 비대칭 채널 코딩의 세팅은 용량 최대화를 위한 특성을 충족시킬 수 있다. 비대칭 채널 코딩의 경우, 상태는 결정론적 변수로서 간주될 수 있고, 결국 W는 (전술한) 채널 저하에 대한 정의마다 결정론적임은 물론, 그에 의해 용량 최대화에 대한 특성을 충족시키도록 선택될 수 있다. 이는 본 섹션에서 제시된 구조가 비대칭 채널에 대한 구조 A의 일반화일 수 있다는 것을 암시한다.
[0088] 구조는 Gelfand-Pinsker 방식과 유사한 체계를 가질 수 있다. 인코더는 우선, 구조 A에서 설명된 것과 유사한 방식으로 벡터
Figure pct00180
를 찾을 수 있으며, 여기서 랜덤 변수
Figure pct00181
Figure pct00182
로 대체되고, 랜덤 변수
Figure pct00183
Figure pct00184
로 대체된다. 랜덤 변수 V는, 등식 (6)에서 레이트 표현을 최대화하는 pmf들
Figure pct00185
에 따라 취해질 수 있다. 그 다음, 코드워드
Figure pct00186
에서 각각의 비트
Figure pct00187
가 등식(6)을 최대화하는 함수
Figure pct00188
에 의해 계산될 수 있다. 예 2의 모델을 사용하면, 함수
Figure pct00189
Figure pct00190
가 정리 6에 따라 사용될 수 있다. 마찬가지로, 등식(2)를 고려하면, 대체들은 코드들의 비대칭 레이트가
Figure pct00191
일 것이라고 암시하며, 이는 정리 4의 Gelfand-Pinsker 용량을 달성한다(Bhattacharyya 파라미터들에 대한 정리 2의 연결은 명제 1의 고려를 통해 달성될 수 있음). 코딩 방식은 이하와 같이 공식적으로 설명될 수 있다.
[0089] 구조 B. 이번 섹션은, 메시지를 인코딩하는 것의 출력으로서 코드워드를 생성하고, 입력 코드워드를 디코딩하는 것의 출력으로서 추정된 메시지를 생성하기 위해 인코딩 및 디코딩 방식들에 대한 예시적인 동작들을 제공하는 구조를 설명한다.
[0090] 예시적인 메시지 인코딩 방식
입력: 메시지
Figure pct00192
및 상태
Figure pct00193
.
출력: 코드워드
Figure pct00194
1. 1에서 n까지의 각각의
Figure pct00195
에 대해, 다음과 같이 변수
Figure pct00196
를 할당:
Figure pct00197
2.
Figure pct00198
을 계산하고, 각각의
Figure pct00199
에 대해 값
Figure pct00200
를 저장.
3. 균일한 입력 분포를 가진 선형 비용량 달성 폴라 코드를 이용하여 개별적으로 벡터
Figure pct00201
를 저장.
[0091] 예시적인 입력 디코딩 방식
입력: 잡음 벡터
Figure pct00202
.
출력: 메시지 추정
Figure pct00203
.
1.
Figure pct00204
에 의해 벡터
Figure pct00205
를 추정.
2. 다음과 같이
Figure pct00206
에 의해
Figure pct00207
를 추정: 1에서 n까지의 각각의
Figure pct00208
에 대해 다음과 같이 할당:
Figure pct00209
3. 추정된 메시지
Figure pct00210
를 리턴.
구조 B의 비대칭적 성능이 이하의 정리에서 표명될 수 있다.
[0092] 정리 7. 용량 최대화에 대한 특성이 유지되면, 구조 B는 낮은 계산상 복잡도로 정리 4의 용량을 달성한다.
[0093] 정리 7의 증명은 첨부 C에 제공된다. 다음 서브섹션은 용량 최대화를 위한 특성이 저하 요건을 제거하기 위한 방법을 설명한다. 이는 또한 예 1의 더욱 현실적인 모델의 용량의 달성을 허용할 것이다.
[0094] C. 저하 없는 멀티코딩 구조
[0095] 체이닝 아이디어가, 용량 최대화에 대한 특성의 저하 조건을 나타내지 않는 모델들의 용량을 달성하는, 앞선 Mondelli 및 Hassani, “Achieving Marton's Region For Broadcast Channels Using Polar Codes,”에 제안되었다. Modelli 등에서, 체이닝 아이디어가 브로드캐스트 통신 및 포인트-투-포인트 유니버셜 코딩의 상황에서 제시되었다. 체이닝 아이디어는 본 명세서에서, 예 1을 통해 플래시 메모리 재기록의 애플리케이션에 연결될 수 있다. 후속하는 체이닝 기술이 채널 용량에 대한 더 늦은 수렴의 가격으로 구현될 수 있고, 결국 더 낮은 비-점근적 코드 레이트가 실현될 수 있다는 것을 또한 주목해야 한다.
[0096] 저하된 채널들에 대해 구조 B의 특징은 사이드 채널에 통신될 세트
Figure pct00211
로부터 유래될 수 있다. 부분
Figure pct00212
이 n에 따라 소멸되면, 구조 B는 채널 용량을 달성할 수 있다. 부분
Figure pct00213
이 소멸되지 않는 경우에, 등식(2)와 유사하게, 세트는 다음과 같다:
Figure pct00214
[0097] 서브벡터
Figure pct00215
는 n개의 셀들의 추가의 코드 블록의 지수들
Figure pct00216
의 서브세트에 저장될 수 있다. 추가의 블록은 원래의 블록과 동일한 코딩 기술을 이용할 수 있다. 따라서, 추가의 블록은 추가의 메시지 비트들을 저장하기 위해 셀들의 대략
Figure pct00217
을 사용할 수 있고, 채널 용량이 근접될 수 있다. 그러나 추가의 블록은 세트
Figure pct00218
를 갖는 원래 블록과 동일한 어려움을 가질 수 있다. 이를 해결하기 위해, 전체 k개의 블록에서 전송하는 동일한 솔루션이 반복적으로 적용될 수 있는데, k개의 블록들 각각은 길이 n을 갖는다. 각각의 블록은 채널 용량에 접근할 수 있는 소스 메시지(또는 그 부분)를 저장할 수 있다. 블록 k의 “문제가 있는” 비트들이 또 다른 블록을 사용하여 저장될 수 있지만, 이러한 추가의 블록은 상태 정보를 고려하지 않고 코딩될 수 있어서, 동일한 어려움에 직면하지 않을 수 있다. 따라서, 마지막 블록은 레이트 손실을 유발할 수 있지만, 이러한 손실은 k의 큰 값들에 대해 소멸될 수 있는 부분(1/k) 일 수 있다. 이하의 설명에서, 예시적인 구조는 메시지의 j번째 블록의 지수 i를
Figure pct00219
로 표시할 수 있으며, 다른 벡터들에 대해서도 유사하다. 벡터들 그 자체는 또한 2차원, 예를 들어,
Figure pct00220
로 표시될 수 있다.
[0098] 구조 C. 본 섹션은 메시지를 인코딩한 것의 결과로서 코드워드를 생성하고 그리고 입력 코드워드를 디코딩한 것의 결과로서 추정된 메시지를 생성하도록 인코딩 및 디코딩 방식들에 대한 예시적인 연산들을 제공하는 구조를 설명한다.
[0099]
Figure pct00221
을 크기
Figure pct00222
Figure pct00223
의 임의의 서브세트라고 하자.
[0100] 예시적인 메시지 인코딩 방식
입력: 메시지
Figure pct00224
이고 상태
Figure pct00225
.
출력: 코드워드
Figure pct00226
.
1)
Figure pct00227
를 임의의 벡터라고 하자. 1부터 k까지의 각각의
Figure pct00228
에 대해, 그리고 1부터 n까지의 각각의
Figure pct00229
에 대해 다음과 같이 할당된다:
Figure pct00230
2) 1부터 k까지의 각각의
Figure pct00231
에 대해,
Figure pct00232
를 계산하고, 각각의
Figure pct00233
에 대해 값
Figure pct00234
을 저장한다.
3) 균일한 입력 분포를 갖는 비용량 달성 폴라 코드를 이용하여 개별적으로 벡터
Figure pct00235
를 저장.
[0101] 예시적인 입력 디코딩 방식
입력: 잡음 벡터
Figure pct00236
.
출력: 메시지 추정
Figure pct00237
.
1)
Figure pct00238
에 의해 벡터
Figure pct00239
를 추정하고
Figure pct00240
라고 하자.
2) 다음과 같이
Figure pct00241
에 의해
Figure pct00242
를 추정:
k로부터 아래로 1까지의 각각의
Figure pct00243
에 대해, 그리고 1부터 n까지의 각각의
Figure pct00244
에 대해 다음과 같이 할당한다:
Figure pct00245
3) 추정된 메시지
Figure pct00246
를 리턴.
[0102] 구조 B 및 C는 또한 Marton의 구역에서 브로드캐스트 채널들을 통해 통신하기 위해 사용될 수 있으며, 예를 들어, 앞선 Goela and Gastpar, “Polar Codes For Broadcast Channels”; 및 Mondelli et al., “Achieving Marton's Region For Broadcast Channels Using Polar Codes” 참조. 구조 B 및 C는 이러한 앞선 결과들을 향상시킬 수 있는데 그 이유는 이들이 선형 저장 요건을 갖는 용량을 입증가능하게 달성하기 때문이다.
[0103] 구조 C는 용량 최대화를 위한 특성의 저하 요건 없이, 낮은 복잡도로 정리 4의 용량을 달성할 수 있다. 이러한 결과는 정리 5에 명시되었다. 정리 5의 증명은 정리 7 및 레이트 손실이 k의 큰 값에 따라 소멸될 수 있다는 사실로부터 직접 도출된다. 구조 C는 적절한 용량 달성 함수
Figure pct00247
를 사용하여, 예 1의 플래시 메모리 재기록의 현실적인 모델에 유용할 수 있다.
[0104] IV. 예시적인 실시예들
[0105] 이하의 설명들은 첨부한 도면의 예시에 관한 것이며, 여기서 도 1은 본 명세서에 개시된 바와 같은 데이터 메시지를 디코딩하기 위한 다양한 예들에 따라 구조된 메모리 디바이스에서 수행될 수 있는 동작들을 예시하는 흐름도이며, 특히 구조 A에 따른 코드워드로 데이터 값을 인코딩하기 위한 데이터 인코딩 동작들을 도시한다. 추가의 도면들에서, 도 2는 본 명세서에 개시된 바와 같이 데이터를 디코딩하기 위한 다양한 예들에 따라 구조된 메모리 디바이스에서 수행될 수 있는 동작들을 예시하고 특히 구조 A에 따라 코드워드로부터 데이터 값을 복원하기 위한 예시적인 디코딩 동작들을 표현하는 블록도이다. 도 3은 본 명세서에 설명된 바와 같이 데이터 메시지를 인코딩하기 위한 다양한 예들에 따라 구조된 메모리/데이터 디바이스에서 수행될 수 있는 동작들을 예시하고, 특히 예 1에 따라 데이터 값을 코드워드로 인코딩하기 위한 예시적인 데이터 인코딩 동작들을 나타내는 흐름도이다. 도 4는 본 명세서에 설명된 바와 같이 데이터 메시지를 디코딩하기 위한 다양한 예들에 따라 구조된 메모리 디바이스에서 수행될 수 있는 동작들을 예시하고, 특히 예 1에 따라 데이터 값을 코드워드로부터 복원하기 위한 예시적인 데이터 디코딩 동작들을 나타내는 흐름도이다. 도 5는 본 명세서에 설명된 바와 같이 데이터 메시지를 인코딩하기 위한 다양한 예들에 따라 구조된 메모리 디바이스에서 수행될 수 있는 동작들을 예시하고, 특히 예 2에 따라 데이터 값을 코드워드로 인코딩하기 위한 예시적인 데이터 인코딩 동작들을 나타내는 흐름도이다. 도 6은 본 명세서에 설명된 바와 같이 데이터 메시지를 디코딩하기 위한 다양한 예들에 따라 구조된 메모리 디바이스에서 수행될 수 있는 동작들을 예시하고, 특히 예 2에 따라 데이터 값을 코드워드로부터 복원하기 위한 예시적인 데이터 디코딩 동작들을 나타내는 흐름도이다. 도 1, 2, 3, 4, 5 및 6의 동작들은, 예를 들어, 추가로 이하에서 설명되는 도 7, 8 및 9에 예시된 디바이스 실시예들에 의해 수행될 수 있다.
[0106] 도 1은 통신 채널을 통해 수신된 메시지로부터 코드워드를 생성하기 위해 프로세서에 대해 현재 개시된 기술에 따라 구조된 데이터 디바이스를 동작시키는 예시적인 방법(100)을 도시한다. 전술한 바와 같이, 도 1의 동작들은, 예시적인 인코딩 방식을 위해 구조 A와 관련하여 전술된 기술에 대응할 수 있다. 방법(100)은 블록들(105, 110, 115, 120, 125 및 130) 중 하나 이상에 의해 예시된 바와 같이 하나 이상의 동작들, 조치들 또는 기능들을 포함할 수 있다. 도 1에서 개별적인 블록들로 도시되었지만, 다양한 블록들이, 특정 구현에 따라, 추가의 블록들로 분리되거나, 몇몇 블록들로 결합되거나, 추가의 블록으로 보충되거나, 변경되거나 제거될 수 있다.
[0107] 블록(105)에서, 프로세스가 시작될 수 있다. 다음 블록(110), "메시지 수신"이 블록(105)에 뒤따를 수 있으며, 여기서 입력 메시지 m이 수신될 수 있다. 몇몇 예들에서, 수신된 메시지 m이 인코딩되어 데이터 저장소에 저장될 것이며, 여기서 메시지 m은 메시지 채널을 통해 수신된 비트들의 시퀀스를 포함할 수 있고,
Figure pct00248
로 지정될 수 있다. 도 1의 블록(110) 이후에, 코드워드를 생성하기 위한 동작인, 블록(115)이 뒤따를 수 있다. 몇몇 예들에서, 코드워드
Figure pct00249
는 블록(115)에 예시된 동작들에 따라 비트마다 생성될 수 있다:
연속적으로 1 내지 n의
Figure pct00250
에 대해, 세트
Figure pct00251
블록(115)에 뒤이어 블록(120)이 뒤따를 수 있으며, 여기서 값 v는 코드워드
Figure pct00252
가 송신되도록 계산될 수 있다.
[0108] 블록(120)에 뒤이어 블록(125)이 뒤따를 수 있으며, 여기서 이전의 동작들에 의해 형성된 벡터
Figure pct00253
가 저장될 수 있다. 몇몇 예들에서, 블록(125)의 동작은 다음을 포함할 수 있다:
균일한 입력 분포를 갖는 선형 비용량 달성 폴라 코드를 이용하여 벡터
Figure pct00254
가 개별적으로 송신된다.
본 개시의 관점에서, 당업자는 균일한 입력 분포를 갖는 주지된 폴라 코드를 이용하여 벡터
Figure pct00255
를 저장하는 방법을 이해할 것이다. 메모리 디바이스의 동작은 블록(130)에서 추가의 동작으로 블록(125)으로부터 계속될 수 있다.
[0109] 도 1의 동작들은 인코딩될 값을 포함하는 메시지의 수신을 예시한다. 개시된 제한된 동작을 충족시키는 전술한 바와 같은 코드워드들이 생성될 수 있으며, 여기서, 일단 셀 값이 로직 "0"에서 로직 "1"로 변경되면, 대응하는 저장된 데이터 값이 변경되더라도, 이 셀의 값은 로직 "1"로 유지되도록, 코드워드들이 다수의 셀들에 의한 표현을 위해 구성된다.
[0110] 도 2는 통신 채널을 통해 수신된 메시지(예를 들어, 잡음 벡터)를 디코딩함으로써 추정된 메시지(예를 들어, 복원된 메시지)를 생성하기 위해 프로세서에 대해 현재 개시된 기술에 따라 구성된 데이터 디바이스를 동작시키는 예시적인 방법(200)을 도시한다. 즉, 도 2는 데이터 디바이스의 예시적인 동작을 도시하며, 여기서 인코딩된 데이터 값에 대응하는 이진 디지트들을 포함하는 메시지를 데이터 디바이스가 수신한다. 수신된 메시지는, 통신 채널에서 에러를 나타내는 잡음 항목과 함께, 인코딩된 원래의 소스 데이터 값으로서 추정될 수 있다. 전술한 바와 같이, 도 2의 동작들은, 예시적인 디코딩 방식을 위해 구조 A와 관련하여 전술된 기술에 대응할 수 있다. 방법200은 블록들(205, 210, 215, 220, 225, 및 230) 중 하나 이상에 의해 예시된 바와 같이 하나 이상의 동작들, 조치들 또는 기능들을 포함할 수 있다. 도 2에서 개별적인 블록들로 도시되었지만, 다양한 블록들이, 특정 구현에 따라, 추가의 블록들로 분리되거나, 몇몇 블록들로 결합되거나, 추가의 블록으로 보충되거나, 변경되거나 제거될 수 있다.
[0111] 블록(205)에서, 프로세스가 시작될 수 있다. 블록(205)에 뒤이어, 데이터 값을 복원하기 위해 디코딩될 벡터
Figure pct00256
를 포함할 수 있는, 입력 메시지가 수신되는, 다음 블록(210) "메시지...를 수신"이 뒤따를 수 있다. 벡터
Figure pct00257
는 데이터 메시지가 수신되는 데이터 채널로부터 잡음 항목을 포함하도록 표현될 수 있으며, 여기서 벡터
Figure pct00258
Figure pct00259
로서 표현될 수 있다. 블록(210)에 뒤이어 블록(215), "벡터
Figure pct00260
...를 추정"이 뒤따르며, 여기서 원래 데이터 값을 나타내는 추정 값
Figure pct00261
는 비트와이즈 방식으로 생성될 수 있다. 몇몇 예들에서, 벡터
Figure pct00262
추정은
Figure pct00263
에 의해 벡터
Figure pct00264
를 추정함으로써 주어질 수 있다. 블록(215)에 뒤이어 블록(220), "벡터
Figure pct00265
...를 추정"이 뒤따를 수 있다. 몇몇 실시예들에서, 추정
Figure pct00266
는 이하에 따라 비트마다 계산될 수 있다:
1에서 n까지의
Figure pct00267
에 대해, 세트:에 의해 벡터 u를 추정:
Figure pct00268
블록(220)에 뒤이어 블록(225), "추정된 메시지
Figure pct00269
을 리턴"이 뒤따르며, 여기서, 추정된 메시지 값
Figure pct00270
(추정된 원래 소스 데이터 값)이 결정되고 리턴될 수 있다. 몇몇 예들에서, 추정된 메시지는 다음과 같이 결정될 수 있다:
추정된 메시지
Figure pct00271
를 리턴.
메모리 디바이스의 동작은 블록(230)에서 추가의 동작으로 계속될 수 있다.
[0112] 도 2의 데이터 동작들은 디코딩될 하나 이상의 값들을 포함하는 메시지를 수신할 수 있어서, 전술한 코드워드를 포함할 수 있는 메시지가 수신되고, 여기서 코드워드는 메모리 셀 입력 x 및 메모리 셀 출력 y를 갖는 비대칭 채널에 적합한 프로세스에서 생성되었고, 메모리 셀의 수는 n개 일 수 있다. 도 2의 동작들을 통해 달성될 수 있는 구조 A에 대해, 메모리 셀의 앞선 상태가 고려되지 않을 수 있다. 따라서, 수신된 코드워드가 디코딩될 수 있고 원래 저장된 값의 추정 m이 복원될 수 있도록, 일단 셀 값이 로직 "0"에서 로직 "1"로 변경되면, 이 셀의 값이 로직 "0" 또는 로직 "1" 중 하나로 재기록될 수 있도록, 코드워드들이 다수의 셀들에 의한 표현을 위해 구성될 수 있다.
[0113] 도 3은 통신 채널을 통해 수신된 메시지로부터 코드워드를 생성하기 위해 프로세서에 대해 현재 개시된 기술에 따라 구성된 데이터 디바이스를 동작시키는 예시적인 방법(300)을 도시한다. 방법(300)은 블록들(305, 310, 315, 320, 325, 및 330) 중 하나 이상에 의해 예시된 바와 같이 하나 이상의 동작들, 조치들 또는 기능들을 포함할 수 있다. 도 3에서 개별적인 블록들로 도시되었지만, 다양한 블록들이, 특정 구현에 따라, 추가의 블록들로 분리되거나, 몇몇 블록들로 결합되거나, 추가의 블록으로 보충되거나, 변경되거나 제거될 수 있다.
[0114] 블록(305)에서, 프로세스가 시작될 수 있다. 블록(305)에 뒤이어 다음 블록(310), "메시지 m... 및 상태 s... 수신"이 뒤따를 수 있으며, 여기서 입력 메시지 및 상태가 수신될 수 있다. 몇몇 예들에서, 메시지 m이 인코딩되어 데이터 저장소에 저장되며, 메시지 m은
Figure pct00272
로 지정될 수 있고, 상태 s는
Figure pct00273
로 지정될 수 있다. 블록(310)에 뒤이어 블록(315)가 뒤따를 수 있고, 여기서 코드워드가 생성될 수 있다. 몇몇 예들에서, 코드워드
Figure pct00274
는 블록(315)에 예시된 동작들에 따라 비트마다 생성될 수 있다:
1 에서 n까지의 각각의
Figure pct00275
에 대해, 다음과 같이 할당된다:
Figure pct00276
블록(315)에 뒤이어 블록(320)이 뒤따르며, 여기서 값 v는 이하에 따라 계산될 수 있다:
Figure pct00277
를 계산하고, 각각의
Figure pct00278
에 대해 코드워드
Figure pct00279
를 포함하는 값
Figure pct00280
을 저장한다.
[0115] 블록(320)에 뒤이어 블록(325)이 뒤따를 수 있으며, 여기서 이전의 동작들에 의해 형성된 벡터
Figure pct00281
가 저장될 수 있다. 몇몇 예들에서, 블록(325)의 동작은 다음을 포함할 수 있다:
균일한 입력 분포를 갖는 선형 비용량 달성 폴라 코드를 이용하여 벡터
Figure pct00282
를 개별적으로 저장.
본 개시의 관점에서, 당업자는 균일한 입력 분포를 갖는 주지된 폴라 코드를 이용하여 벡터를 저장하는 방법을 이해할 것이다. 메모리 디바이스의 동작은 블록(325)에서 추가의 동작으로 블록(330)으로부터 계속될 수 있다.
[0116] 도 3의 동작들은 인코딩될 값을 포함하는 메시지의 수신을 예시한다. 개시된 제한된 동작을 충족시키는 전술한 바와 같은 코드워드들이 생성될 수 있으며, 여기서, 일단 셀 값이 로직 "0"에서 로직 "1"로 변경되면, 대응하는 저장된 데이터 값이 변경되더라도, 이 셀의 값은 로직 "1"로 유지되도록, 코드워드들이 다수의 셀들에 의한 표현을 위해 구성된다.
[0117] 도 4는 통신 채널을 통해 수신된 메시지(예를 들어, 잡음 벡터)를 디코딩함으로써 추정된 메시지(예를 들어, 복원된 메시지)를 생성하기 위해 프로세서에 대해 현재 개시된 기술에 따라 구성된 데이터 디바이스를 동작시키는 예시적인 방법(400)을 도시한다. 예를 들어, 도 4는 데이터 디바이스의 예시적은 동작을 도시하며, 여기서 데이터 디바이스는, 통신 채널에서 에러를 표현하는 잡음과 함께, 인코딩된 데이터 값에 대응하는 이진 디지트들을 포함하는 메시지를 수신할 수 있다. 전술한 바와 같이, 도 4의 동작들은, 예 1과 관련하여 전술된 디코딩 기술에 대응할 수 있다. 방법(400)은 블록들(405, 410, 415, 420, 425, 및 430) 중 하나 이상에 의해 예시된 바와 같이 하나 이상의 동작들, 조치들 또는 기능들을 포함할 수 있다. 도 4에서 개별적인 블록들로 도시되었지만, 다양한 블록들이, 특정 구현에 따라, 추가의 블록들로 분리되거나, 몇몇 블록들로 결합되거나, 추가의 블록으로 보충되거나, 변경되거나 제거될 수 있다.
[0118] 블록(405)에서, 프로세스가 시작될 수 있다. 블록(405)에 뒤이어 다음 블록(410), "메시지...를 수신"이 뒤따를 수 있고, 여기서 데이터 값을 복원하기 위해 디코딩될 벡터 y 를 포함하는 입력 메시지가 수신된다. 벡터 y 는 데이터 메시지가 수신되는 통신 채널로부터 잡음을 포함할 수 있고, 여기서 벡터 y는
Figure pct00283
로서 표현될 수 있다. 블록(410)에 뒤이어 블록(415), "벡터
Figure pct00284
...를 추정"이 뒤따르며, 여기서 원래 데이터 값을 나타내는 추정 값
Figure pct00285
는 비트와이즈 방식으로 생성될 수 있다. 몇몇 예들에서, 벡터
Figure pct00286
추정은
Figure pct00287
에 의해 벡터
Figure pct00288
를 추정함으로써 주어질 수 있다. 블록(415)에 뒤이어 블록(420), "벡터 ...를 추정"이 뒤따를 수 있다. 일부 예들에서, 1에서 n까지의 각각의
Figure pct00289
에 대해,
Figure pct00290
와 같이
Figure pct00291
에 의해
Figure pct00292
을 추정하는 것에 따라 벡터
Figure pct00293
추정이 비트마다 계산될 수 있다. 블록(420)에 뒤이어 블록(425), "추정된 메시지 m을 리턴"이 뒤따르며, 여기서, 추정된 메시지 값 m(추정된 원래 소스 저장된 값)이 결정되고 리턴될 수 있다. 몇몇 예들에서, 추정된 메시지는 다음과 같이 결정될 수 있다:
추정된 메시지
Figure pct00294
.
메모리 디바이스의 동작은 블록(430)에서 추가의 동작으로 계속될 수 있다.
[0119] 도 4의 데이터 동작들이 디코딩될 하나 이상의 값들을 포함하는 메시지를 수신할 수 있어서, 전술한 바와 같이 코드워드를 포함할 수 있는 메시지가 수신되며, 여기서 코드워드는 설명된 제한된 동작을 충족시킬 수 있는 프로세스에서 생성되었으며, 여기서 일단 셀 값이 로직 "0"에서 로직 "1"로 변경되면, 대응하는 저장된 데이터 값이 변경되더라도 이 셀의 값이 로직 "1"로 유지될 수 있도록 다수의 셀들에 의한 표현을 위해 코드워드들이 구성될 수 있다. 수신된 코드워드가 디코딩될 수 있고, 원래 저장된 값의 추정 m이 복원될 수 있다.
[0120] 도 5는 데이터 메시지를 인코딩하기 위한 다양한 예들에 따라 구성된 메모리 디바이스에서 동작들을 수행하기 위해 현재 개시된 기술에 따라 구성된 데이터 디바이스를 동작시키는 예시적인 방법(500)을 도시하며, 특히 데이터 값을 예 2에 따라 코드워드로 인코딩하기 위한 예시적인 데이터 인코딩 동작들을 나타낸다. 방법(500)은 블록들(505, 510, 515, 520, 525 및 550) 중 하나 이상에 의해 예시된 바와 같이 하나 이상의 동작들, 조치들 또는 기능들을 포함할 수 있다. 도 5에서 개별적인 블록들로 도시되었지만, 다양한 블록들이, 특정 구현에 따라, 추가의 블록들로 분리되거나, 몇몇 블록들로 결합되거나, 추가의 블록으로 보충되거나, 변경되거나 제거될 수 있다.
[0121] 블록(505)에서, 프로세스가 시작될 수 있다. 블록(505)에 뒤이어 다음 블록(510)이 뒤따를 수 있고, 여기서 입력 데이터 메시지가 수신될 수 있고, 이 메시지는 값 m 및 상태 s를 포함하며, m은 인코딩되어 데이터 저장소에 저장될 값이며, 메시지
Figure pct00295
및 상태
Figure pct00296
는 입력으로서 수신될 수 있으며,
Figure pct00297
에 대해 크기
Figure pct00298
Figure pct00299
의 임의의 서브세트이다. 블록(510)에 뒤이어 블록(515)이 뒤따를 수 있으며, 여기서 블록(515)에서 설명된 동작들에 따라, 코드워드
Figure pct00300
가 비트마다 생성될 수 있다:
Figure pct00301
를 임의의 벡터라고 하자. 1에서 k까지의 각각의
Figure pct00302
에 대해 그리고 1에서 n까지의 각각의
Figure pct00303
에 대해 다음과 같이 할당된다:
Figure pct00304
블록(515)에 뒤이어 블록(520)이 뒤따를 수 있고, 여기서 값 v는 이하에 따라 계산될 수 있다:
1에서 k까지의 각각의
Figure pct00305
에 대해
Figure pct00306
를 계산하고, 각각의
Figure pct00307
에 대해, 값
Figure pct00308
, 코드워드
Figure pct00309
를 저장.
[0122] 블록(520)에 뒤이어 블록(525)이 뒤따를 수 있으며, 여기서 이전의 동작들에 의해 형성된 벡터
Figure pct00310
가 저장될 수 있다. 블록(525)의 동작은 다음을 포함할 수 있다:
균일한 입력 분포를 갖는 선형 비용량 달성 폴라 코드를 이용하여 벡터
Figure pct00311
를 개별적으로 저장.
본 개시의 이득을 갖는 당업자는 균일한 입력 분포를 갖는 주지된 폴라 코드를 이용하여 벡터를 저장하는 방법을 이해할 것이다. 메모리 디바이스의 동작은 블록(550)에서 계속될 수 있다.
[0123] 따라서, 도 5의 데이터 동작들은 인코딩될 값을 포함하는 데이터 메시지를 수신할 수 있고, 그 다음 개시된 제한된 동작을 충족시키는 전술한 바와 같은 코드워드들이 생성될 수 있으며, 여기서, 일단 셀 값이 로직 "0"에서 로직 "1"로 변경되면, 대응하는 저장된 데이터 값이 변경되더라도, 이 셀의 값은 로직 "1"로 유지되도록, 코드워드들이 다수의 셀들에 의한 표현을 위해 구성된다.
[0124] 도 6은 데이터 메시지를 디코딩하기 위한 다양한 예들에 따라 구성된 메모리 디바이스에서 동작들을 수행하기 위해 현재 개시된 기술에 따라 구성된 데이터 디바이스를 동작시키는 예시적인 방법(600)을 도시하며, 특히 예 2에 따라 코드워드를 추정된 복원 데이터 값으로 디코딩하기 위한 예시적인 데이터 디코딩 동작들을 나타낸다. 예를 들어, 도 6은 데이터 디바이스의 예시적은 동작을 도시하며, 여기서 데이터 디바이스는, 통신 채널에서 에러를 표현할 수 있는 잡음과 함께, 인코딩된 데이터 값에 대응할 수 있는 이진 디지트들을 포함하는 메시지를 수신할 수 있다. 방법(600)은 블록들(605, 610, 615, 620, 625 및 630) 중 하나 이상에 의해 예시된 바와 같이 하나 이상의 동작들, 조치들 또는 기능들을 포함할 수 있다. 도 6에서 개별적인 블록들로 도시되었지만, 다양한 블록들이, 특정 구현에 따라, 추가의 블록들로 분리되거나, 몇몇 블록들로 결합되거나, 추가의 블록으로 보충되거나, 변경되거나 제거될 수 있다.
[0125] 블록(605)에서, 프로세스가 시작될 수 있다. 블록(605)에 뒤이어 다음 블록(610)이 뒤따를 수 있으며, 여기서 입력 데이터 메시지가 수신될 수 있고, 메시지는 데이터 값을 복원하기 위해 디코딩될 벡터 값 y를 포함하며, y는 데이터 메시지가 수신되는 데이터 채널로부터 잡음 및 잡음 벡터
Figure pct00312
를 포함할 수 있고, 도 6의 동작들은 원래 소스 저장된 값을 포함하는 데이터 값 m 또는 추정된 메시지를 리턴할 수 있다. 블록(610)에 뒤이어 블록(615)이 뒤따를 수 있고, 여기서 원래 데이터 값을 나타내는 추정된 값
Figure pct00313
가 비트마다 생성될 수 있고, 벡터
Figure pct00314
추정은
Figure pct00315
에 의해 벡터
Figure pct00316
를 추정하고
Figure pct00317
라고 함으로써 주어질 수 있다. 블록(615)에 뒤이어 블록(620)이 뒤따를 수 있고, 여기서 블록(620)에 예시된 3개의 동작들 중 하나에 따라, 추정
Figure pct00318
가 비트마다 계산될 수 있다:
다음과 같이
Figure pct00319
에 의해
Figure pct00320
를 추정: k에서 아래로 1까지의 각각의
Figure pct00321
에 대해, 그리고 1에서 n까지의 각각의
Figure pct00322
에 대해, 다음과 같이 할당된다:
Figure pct00323
블록(620)에 뒤이어 블록(625)이 뒤따를 수 있고, 여기서, 추정된 메시지 값 m(추정된 원래 소스 저장 값)이, 리턴될 수 있는 추정된 메시지
Figure pct00324
이도록 계산에 따라 리턴될 수 있다. 메모리 디바이스의 동작은 블록(630)에서 추가의 동작으로 계속될 수 있다.
[0126] 따라서, 도 6의 데이터 동작들은 디코딩될 값을 포함하는 데이터 메시지를 수신할 수 있어서, 앞서 개시된 바와 같이 코드워드가 수신될 수 있고, 설명된 제한된 동작을 충족시키는 프로세스에서 코드워드들이 생성될 수 있으며, 여기서, 일단 셀 값이 로직 "0"에서 로직 "1"로 변경되면, 대응하는 저장된 데이터 값이 변경되더라도, 이 셀의 값은 로직 "1"로 유지되도록, 코드워드들이 다수의 셀들에 의한 표현을 위해 구성된다. 수신된 코드워드가 디코딩될 수 있고 원래 저장된 값의 추정 m이 복원될 수 있다.
[0127] 도 7은 현재 개시된 기술에 따라 구성된 메모리 디바이스의 일 실시예의 예시이다. 메모리 디바이스, 예컨대 도 7의 데이터 디바이스(708)는 메모리(702) 및 메모리 제어기(704)를 포함할 수 있고, 호스트 디바이스(706)에 커플링될 수 있다. 메모리(702) 및 호스트 디바이스(706)는 각각 메모리 제어기(704)에 커플링될 수 있다. 메모리 제어기(704)는 메모리의 인터페이스(712), 호스트 인터페이스(714), 데이터의 버퍼(716), 에러 정정 코드(ECC) 블록(718) 및 프로세서(710)를 포함할 수 있다. 호스트 디바이스(706)는 메모리 제어기(704)의 호스트 인터페이스(714)에 커플링될 수 있다. 프로세서(710)는 마이크로제어기, 마이크로프로세서, 프로세서 코어, 맞춤 설계된 로직, 또는 본 개시의 다양한 양상들에 따라 메모리 인터페이스(712) 및 호스트 인터페이스(714)와 협력하도록 구성될 수 있는 임의의 다른 적절한 디바이스로서 구현될 수 있다.
[0128] 도 7은 메모리(702)가, 호스트 디바이스(706)와 통신하도록 또한 배열되는 메모리의 제어기(704)에 의해 액세스될 수 있음을 도시한다. 메모리(702)는 본 명세서에 기재된 것과 같은 블록 소거 방지 방식에 따라 표현된 데이터를 저장하는 데 사용될 수 있다.
메모리(702)는 예를 들어, 복수의 메모리 셀들을 갖는 플래시 메모리 디바이스로서 구현될 수 있고, 여기서 하나 이상의 이진 디지트들(비트들)을 포함하는 데이터가 저장될 수 있다.
[0129] 메모리(702) 및 메모리 제어기(704)는 호스트 디바이스(706) 외부에 있거나 단일 컴포넌트 또는 시스템으로 호스트 디바이스(706)와 통합될 수 있는 데이터 디바이스(708)로서 협력적으로 동작할 수 있다. 예를 들어, 데이터 디바이스(708)는, USB 연결을 통해, 호스트 컴퓨터로서 실현되는 호스트 디바이스(706)와 통신하는 플래시 메모리 디바이스(예컨대, "썸 드라이브")를 포함할 수 있거나, 데이터 디바이스(708)는 호스트 컴퓨터용 데이터를 저장하는 솔리드 스테이트 드라이브(SSD) 디바이스를 포함할 수 있다. 대안적으로, 데이터 디바이스(708)는 스마트 폰, 네트워크 라우터, MP3 플레이어 또는 기타 디바이스와 같이, 메모리가 블록 소거 방지 방식을 채용하는 단일 시스템 또는 컴포넌트를 포함하도록 적합한 호스트 디바이스(706)와 통합될 수 있다.
[0130] 메모리 제어기(704)는, 메모리 인터페이스(712)를 통해 메모리(702)와의 통신을 관리하도록 구성될 수 있는 프로세서(710)의 제어 하에서 동작할 수 있다. 프로세서(710)는 호스트 인터페이스(714)를 통해 호스트(706) 디바이스와의 통신을 관리하도록 또한 구성될 수 있다. 따라서, 메모리 제어기(704)는 호스트 디바이스(706)와 메모리(702) 사이의 데이터 전송을 관리하도록 구성될 수 있다. 메모리 제어기(704)는 또한, 메모리(702)와 호스트 디바이스(706) 사이의 송신을 위해 데이터 값들이 일시적으로 저장될 수 있는 데이터의 버퍼(716)를 포함한다. 메모리 제어기(704)는 또한, 데이터가 유지될 수 있는 에러 정정 코드(ECC) 블록(718)을 포함할 수 있다. 예를 들어, ECC 블록(718)은 블록 소거 방지 방식을 위해 에러 정정 및 데이터 인코딩/디코딩 동작들을 수행하기 위해 데이터 및 프로그램 코드를 포함할 수 있는 저장소 디바이스로 구현될 수 있다. ECC 블록(718)은, 메모리(702)에 사용될 에러 정정 코드를 위한 파라미터들, 예컨대 수신된 심볼들과 에러 정정 심볼들 사이의 전환을 위해 프로그래밍된 동작들을 포함할 수 있거나, ECC 블록은 코드워드들 또는 다른 데이터를 위한 룩업 테이블들을 포함할 수 있는 식이다. 본 명세서에 설명된 컴포넌트들 사이에서 송신 및 전달되는 심볼들, 코드워드, 데이터 등은, 복수의 이진 디지트들("비트들")을 포함할 수 있다. 메모리 제어기(704)는 데이터를 디코딩하고 그리고 데이터를 인코딩하기 위해 전술된 동작들을 수행할 수 있다. 데이터 버퍼(716), ECC(718) 및 프로세서(710)는 호스트 인터페이스(714) 및 메모리 인터페이스(712)와 상호 연결 및 링크될 수 있다. 실시예들과 관련하여 설명된 컴포넌트들 사이의 모든 연결들 및 인터페이스들(712, 714)은, 예를 들어, 복수의 물리적 회로 연결들, 예컨대 복수의 전기-도전성 연결들을 포함할 수 있다. 컴포넌트들 사이의 연결들은 또한 또는 대안적으로, 예를 들어, 광 연결들, 라디오 주파수 연결들, 및 컴포넌트들 사이에서 비트들을 통신, 전송 및 전달하기 위한 다른 기술들을 포함할 수 있다.
[0131] 데이터 디바이스를 동작시키기 위해, 디바이스로부터 데이터를 판독하기 위해, 데이터 디바이스를 프로그래밍하기 위해 전술한 동작들과 인코딩 및 디코딩은 도 1 내지 6에 도시된 동작들에 의해, 그리고/또는 프로세서(710)와 데이터 디바이스(708)의 관련된 컴포넌트들에 의해 수행될 수 있는 다른 동작들에 의해 수행될 수 있다. 예를 들어, USB 썸 드라이브에서의 블록 소거 방지 방식의 구현에서, 도 7에 도시된 데이터 디바이스(708)의 모든 컴포넌트들이 USB 썸 드라이브 내에 포함될 수 있다.
[0132] 프로세싱 컴포넌트들, 예컨대 메모리 제어기(704) 및 프로세서(710)는 소프트웨어 또는 하드웨어 또는 이 둘의 결합에서 제어 로직의 형태로 다양한 실시예들에 따라 구현될 수 있으며, 프로그램 메모리, 또는 펌웨어 등으로부터 소프트웨어 프로그램 명령들을 실행하는 프로세서들을 포함할 수 있다. 호스트 디바이스(706)는 컴퓨터 장치를 포함할 수 있다. 컴퓨터 장치는 또한, 도 1-6의 동작들 및/또는 몇몇 실시예들에서 다른 동작들을 수행할 수 있다.
[0133] 도 8은 도 7에 묘사된 바와 같은 메모리 디바이스와 통신하기 위해 도 1-6의 동작들을 수행하기 위한 예시적인 컴퓨터 장치의 블록도이다. 예를 들어, 도 8은, 호스트 디바이스(예컨대, 호스트 디바이스(706))로서 수행하기에 충분하고 도 1-6의 동작들 및/또는 다른 동작들을 수행하기에 충분한 컴퓨터 시스템(800)의 블록 다이어그램이다. 컴퓨터 시스템(800)은 현재 개시된 기술의 실시예들을 통합하고 본 명세서에 설명된 동작들을 수행할 수 있다. 컴퓨터 시스템(800)은 전형적으로, 하나 이상의 프로세서들(805), 시스템 버스(810), 메모리 서브시스템(820) 및 파일 저장소 서브시스템(825)을 포함하는 저장소 서브시스템(815), 사용자 인터페이스 출력 디바이스들(830), 사용자 인터페이스 입력 디바이스들(835), 통신 서브시스템(840) 및 다른 컴포넌트들을 포함할 수 있으며, 이들 모두는 서로 동작가능하게 커플링될 수 있다.
[0134] 다양한 실시예들에서, 컴퓨터 시스템 (800)은 하나 이상의 프로세서들(805)과 같은 컴퓨터 컴포넌트들을 포함할 수 있다. 파일 저장소 서브 시스템(825)은 다양한 메모리 저장소 디바이스들, 예컨대, 메모리 서브시스템(820)의 리드 온리 메모리(ROM) (845) 및 랜덤 액세스 메모리(RAM)(850), 및 직접 액세스 저장소 디바이스, 예컨대 디스크 드라이브들을 포함할 수 있다. 주지된 바와 같이, 직접 액세스 저장소 디바이스는, 본 명세서에 설명된 바와 같이 동작하는 블록 소거 방지 데이터 디바이스를 포함할 수 있다.
[0135] 사용자 인터페이스 출력 디바이스들(830)은, 평판 디스플레이들, 터치스크린들, 표시 등, 오디오 디바이스들, 힘 피드백 디바이스들 또는 다른 장치들을 포함하는 다양한 디바이스들을 포함할 수 있다. 사용자 인터페이스 입력 디바이스들(835)은 컴퓨터 마우스, 트랙볼, 트랙패드, 조이스틱, 무선 원격, 드로잉 태블릿, 음성 명령 시스템, 눈 트래킹 시스템 또는 다른 디바이스들을 포함하는 다양한 디바이스들을 포함할 수 있다. 사용자 인터페이스 입력 디바이스들(835)은, 사용자 인터페이스 출력 디바이스들(830) 상에 나타나는 객체들, 아이콘들, 텍스트 등을 버튼의 클릭 등과 같은 명령을 통해, 사용자가 전형적으로 선택하게 할 수 있다.
[0136] 통신 서브시스템(840)의 실시예들은 전형적으로, 이더넷 카드, 모뎀(전화, 위성, 케이블, ISDN), (비동기) DSL(digital subscriber line) 유닛, 파이어와이어(IEEE 1394) 인터페이스, USB 인터페이스 또는 다른 디바이스들을 포함한다. 예를 들어, 통신 서브 시스템(840)은, 통신 네트워크들 및 다른 외부 시스템들(855)(예를 들어, LAN이나 인터넷과 같은 네트워크)에, 파이어와이어 버스에, 또는 기타에 커플링될 수 있다. 다른 실시예들에서, 통신 서브시스템(840)은 컴퓨터 시스템(800)의 마더보드 상에 물리적으로 통합될 수 있거나, 소프트웨어 프로그램, 이를 테면, 소프트 DSL을 포함할 수 있거나 하는 식이다.
[0137] RAM(850) 및 파일 저장소 서브시스템(825)은, 데이터, 예컨대,실행가능한 컴퓨터 코드, 휴먼 판독 가능 코드 등을 포함하여, 하나 이상의 프로세서들에 의한 실행에 응답하여 본 명세서에 설명된 동작들을 수행하기 위한 프로그램 명령들, 코드워드들 및 에러 정정 코드 파라미터들을 저장하도록 구성된 유형의 비일시적 매체의 예들이다. 유형의 비일시적 매체의 다른 타입들은 프로그램 제품 매체, 예컨대 플로피 디스크들, 착탈식 하드 디스크들, 광 저장소 매체, 예컨대 CD들, DVD들 및 하드 코드 매체, 반도체 메모리들 예컨대 플래시 메모리들, 리드 온리 메모리(ROM)들, 배터리 기반(battery-backed) 휘발성 메모리들, 네트워킹된 저장소 디바이스들 등을 포함할 수 있다. 파일 저장소 서브시스템(825)은, 프로세서들(805)에 의한 동작 및 실행을 위해, 프로그램 물건 매체로부터 저장소 서브시스템(815)을 데이터를 전달할 수 있는 판독기 서브시스템들을 포함할 수 있다.
[0138] 컴퓨터 서브시스템(800)은 또한, DNS, TCP/IP, UDP/IP 및 HTTP/HTTPS 프로토콜들 등과 같은 네트워크(예를 들어, 통신 네트워크 및 다른 시스템들(855))를 통한 통신을 이네이블하는 소프트웨어를 포함할 수 있다. 다른 실시예들에서, 다른 통신 소프트웨어 및 전송 프로토콜들, 예를 들어, IPX 등이 사용될 수 있다.
[0139] 많은 다른 하드웨어 및 소프트웨어 구성들이 현재 개시된 기술에 사용하기에 적합하다. 예를 들어, 컴퓨터 시스템(800)은 데스트탑, 포터블, 랙 마운티드 또는 태블릿 구성을 가질 수 있다. 추가적으로, 컴퓨터 시스템(800)은 네트워킹된 컴퓨터들의 시리즈일 수 있다. 또한, 다양한 마이크로프로세서들이 고려되고, 하나 이상의 프로세서들(805), 예컨대, 미국 캘리포니아 산타 클라라 소재 인텔사의 PENTIUM™ 마이크로프로세서; 미국 캘리포니아 서니베일 소재 Advanced Micro Devices Inc.의 OPTERON™ 또는 ATHLON XP™ 마이크로프로세서 등에 적합하다. 추가로, 미국 워싱톤 레드몬드 소재 Microsoft Corporation의 WINDOWS?, WINDOWS XP?, WINDOWS VISTA? 등, 미국 캘리포니아 산타 클라라의 Sun Microsystems, Inc의 SOLARIS?, 다양한 Linux 및 UNIX 분포 등과 같은 다양한 운영 체재가 고려되고 적합하다. 또 다른 실시예들에서, 전술한 기술들은 칩 또는 보조 프로세싱 보드(예를 들어, 프로그램가능한 로직 디바이스 또는 그래픽 프로세서 유닛) 상에서 구현될 수 있다.
[0140] 현재 개시된 기술들은 소프트웨어 또는 하드웨어 또는 이 둘의 결합에서 제어 로직의 형태로 구현될 수 있다. 제어 로직은, 현재 개시된 기술의 실시예들에 개시된 동작들의 세트를 수행하도록 명령 프로세싱 디바이스에 지시하도록 적응되는 복수의 명령들로서 정보 저장 매체에 저장될 수 있다. 본 개시 및 본 명세서에 제공된 기술들에 기초하여, 현재 개시된 기술을 구현하기 위한 다른 방식들 및/또는 방법들이 가능하다.
[0141] 본 명세서에 개시된 블록 소거 방지 방식들은 송신 및 저장을 위해 데이터를 인코딩 및 디코딩하기 위한 다양한 시스템들에서 구현될 수 있다. 즉, 코드워드들이 블록 소거 방지 방식에 따라 정보 채널을 통해 소스로부터 수신될 수 있고 이들의 대응하는 데이터 값들로 디코딩될 수 있고 목적지, 예컨대 메모리 또는 프로세서에 제공될 수 있으며, 저장 또는 송신을 위한 데이터 값들이 정보 채널을 통해 소스로부터 수신될 수 있고 블록 소거 방지 방식으로 인코딩될 수 있다.
[0142] 블록 소거 방지 방식에 따라 데이터를 인코딩 및 디코딩하는 동작들이 도 9에서와 같이 도시될 수 있으며, 이는 본 명세서에 설명된 블록 소거 방지 방식들에 따라 동작하는 메모리 디바이스(902)에서의 데이터 흐름을 도시한다. 도 9에서, 디바이스는, 블록 소거 방지 방식을 사용하여 정보 값들(906)을 저장 및 리트리브하도록 구성될 수 있는 데이터 변조(DM) 제어기(904)를 포함한다. DM 제어기(904)는 데이터 값들을 코드워드들로 인코딩하고 코드워드들을 데이터 값으로 디코딩하기 위한 인코더/디코더(908)를 포함할 수 있다. DM 제어기(904)는 데이터 값들을 인코딩할 수 있고, 소스/목적지 블록(910)으로 코드워드들을 제공할 수 있고, 소스/목적지 블록(910)으로부터 코드워드들을 디코딩할 수 있고 대응하는 데이터 값들을 제공할 수 있다. 데이터 흐름의 양방향 성질이 "데이터 값들"(912) 및 "코드워드들"(914)로 라벨링된 양방향 화살표들로 표시된다. DM 제어기(904)는 인터페이스들을 포함하며, 이를 통해 DM 제어기(904)는 데이터 값들 및 정보 값들(코드워드들)을 수신 및 제공할 수 있다. 화살표들(912, 914)은 인터페이스들을 나타내며, 이를 통해 데이터 값들 및 코드워드들이 수신 및 제공될 수 있고, 이는 집합적으로 통신 채널들을 포함할 수 있다.
[0143] 정보 값들(906)은 데이터 값들 및 코드워드들을 포함하는 데이터를 물리적으로 표현하기 위해 컴포넌트(들)를 포함할 수 있다. 예를 들어, 정보 값들(906)은 메모리 셀들의 전하 레벨들을 나타낼 수 있어서, 다수의 셀들이 가상 셀로서 동작하도록 구성될 수 있으며, 가상 셀에서 셀들의 전하 레벨들은 블록 소거 방지 방식들의 치환을 결정할 수 있다. 데이터 값들이 수신되어 블록 소거 방지 방식의 치환에 대해 인코더/디코더(908)에 의해 인코딩될 수 있고 셀들의 전하 레벨들이 상응하게 조정될 수 있고, 코드워드들은 셀 전하 레벨들 ―이로부터 대응하는 데이터 값이 결정될 수 있음― 에 따라 인코더/디코더(908)에 의해 결정될 수 있다. 대안적으로 또는 부가적으로, 정보 값들(906)은 송신된 신호, 예컨대, 신호 주파수, 크기 또는 지속 기간의 특징들을 나타낼 수 있어서, 셀들 또는 빈들이 신호 특징들에 의해 정의될 수 있고 블록 소거 방지 방식들의 치환을 결정할 수 있다. 셀들의 물리적 표현을 위한 다른 방식들이 본 명세서의 설명의 관점에서 가능하다.
[0144] 본 개시는, 다양한 양상들의 예시들로서 의도된, 본 출원에서 개시된 특정 실시예들의 관점으로 제한되어서는 안 된다. 많은 변경들 및 변화들이 그 사상 및 범위를 벗어나지 않고 행해질 수 있다. 본 명세서에 얼거된 것 외에도, 본 개시의 범위 내의 기능적으로 동일한 방법들 및 장치들이 전술한 설명들로부터 가능하다. 이러한 변경들 및 변화들이 첨부된 청구항들의 범위 내에 속하도록 의도된다. 본 개시는, 첨부된 청구항들이 자격을 주는 등가물의 전체 범위와 함께, 첨부된 청구항들에 의해서만 제한되어야 한다. 본 개시는, 물론 변할 수 있는, 특정 방법들, 반응물들, 화합물들, 조성물들 또는 생물학적 시스템들에 제한되지 않는다. 본 명세서에 이용된 용어는 특정 실시예들만을 설명하기 위한 것이며 제한하려고 의도되지 않는다.
[0145] 본 명세서의 실질적으로 임의의 복수 및/또는 단수 항목들의 사용에 관하여, 기술 분야의 당업자는, 상황 및/또는 애플리케이션에 적절한 경우, 복수로부터 단수로 변환할 수 있고 그리고/또는 단수로부터 복수로 변환할 수 있다. 다양한 단수/복수 치환들이 명확화를 위해 본 명세서에 명확하게 설명될 수 있다.
[0146] 일반적으로, 본 명세서, 및 특히 첨부된 청구항들(예를 들어, 첨부된 청구항들의 본문)에 사용된 용어들은 일반적으로 "개방적인" 용어로서 의도된다(예를 들어, "포함"이라는 용어는 "포함하지만 제한적이지 않은"으로 해석되어야 하고, "갖는"이라는 용어는 "적어도 갖는"으로 해석되어야 하며, "구비"라는 용어는 "구비하지만 제한하지 않는"으로 해석되는 식이다). 제출된 청구항 열거의 특정한 번호가 의도되면, 이러한 의도는 청구항에서 명시적으로 열거될 것이며, 이러한 인용의 부재시 이러한 의도는 존재하지 않는다. 예를 들어, 이해를 위한 의도로서, 청구항 인용의 삽입을 위해, 이하의 첨부된 청구항들은 "적어도 하나" 및 "하나 이상"이라는 서론 문구의 사용을 포함할 수 있다. 그러나 이러한 문구들의 사용은, 동일한 청구항이 "하나 이상" 또는 "적어도 하나"라는 서론 문구 및 부정 관사들(예를 들어, 부정 관사는 "적어도 하나" 또는 "하나 이상"을 의미하도록 해석되어야 함)을 포함하더라도, 부정관사에 의한 청구항 열거의 제출이, 단지 하나의 이러한 열거를 포함하는 실시예들에 대해 이러한 제출된 청구항 열거를 포함하는 임의의 특정 청구항을 제한한다고 암시하도록 구성되어서는 안 되며; 청구항 열거를 제출하기 위해 사용되는 정관사들의 사용에 대해서도 마찬가지이다. 게다가, 제출된 청구항 열거의 특정 번호가 명확하게 열거되면, 이러한 열거는 적어도 열거된 번호를 의미하도록 해석되어야 한다(예를 들어, 다른 수식어구 없이, "두 개의 열거"의 기본적인 열거는 적어도 두 개의 열거들 또는 둘 이상의 열거들을 의미한다). 더욱이, "A ,B 및 C 등 중 적어도 하나"와 유사한 컨벤션이 사용되는 이러한 예들에서, 일반적으로 이러한 구성은 컨벤션(예를 들어, "A, B 및 C 중 적어도 하나를 갖는 시스템"이 제한적이지 않게, A만, B만, C만, A와 B를 함께, A와 C를 함께, B와 C를 함께, 그리고/또는 A, B 및 C를 함께, 등을 갖는 시스템들에 포함될 것임)에 대해 이해되는 것과 같은 관점에서 의도된다. "A ,B 또는 C 등 중 적어도 하나"와 유사한 컨벤션이 사용되는 이러한 예들에서, 일반적으로 이러한 구성은 컨벤션(예를 들어, "A, B 또는 C 중 적어도 하나를 갖는 시스템"이 제한적이지 않게, A만, B만, C만, A와 B를 함께, A와 C를 함께, B와 C를 함께, 그리고/또는 A, B 및 C를 함께, 등을 갖는 시스템들에 포함될 것임)에 대해 이해되는 것과 같은 관점에서 의도된다. 상세한 설명이든, 청구항이든, 또는 도면이든, 둘 이상의 대안적인 항목들을 나타내는 임의의 선언적 단어 및/또는 문구는 항목들 중 하나, 항목들 중 어느 하나, 항목들 모두를 포함하는 가능성들을 고려하도록 이해되어야 한다. 예를 들어, 문구 "A 또는 B"는 "A" 또는 "B" 또는 "A 및 B"의 가능성들을 포함하도록 이해될 것이다.
[0147] 게다가, 본 개시의 특징들 또는 양상들이 Markush 그룹들의 관점에서 설명되는 경우, 본 개시는 또한 그로 인해, Markush 그룹들의 멤버들의 서브그룹 또는 임의의 개별 멤버의 관점에서 설명된다.
[0148] 문서화된 설명을 제공하는 관점에서와 같이, 임의의 그리고 모든 목적들을 위해, 본 명세서에 설명된 모든 범위들은 또한 임의의 그리고 모든 가능한 서브레인지들 및 이들의 서브레인지들의 결합들을 포함한다. 임의의 리스팅된 범위는 동일한 범위가 적어도 동일한 절반, 1/3, 1/4, 1/5, 1/10 등으로 나뉘는 것을 충분히 설명하고 가능하게 하는 것으로 쉽게 인식될 수 있다. 비제한적인 예로서, 본 명세서에 설명된 각각의 범위는 하부 1/3, 중간 1/3 및 상부 1/3 등으로 쉽게 나뉠 수 있다. "~까지", "적어도", "~보다 큰", "~보다 작은" 등과 같은 모든 표현들은 열거된 수를 포함하고 전술한 바와 같이 서브레인지로 순차적으로 나뉠 수 있는 범위들을 지칭한다. 끝으로, 범위는 각각의 개별 멤버를 포함한다. 따라서, 예를 들어, 1-3개의 셀들을 갖는 그룹은 1, 2 또는 3개의 셀들을 갖는 그룹들로 지칭된다. 유사하게, 1-5개의 셀들을 갖는 그룹은 1, 2, 3, 4 또는 5개의 셀들을 갖는 그룹들로 지칭되는 식이다.
[0149] 다양한 양상들 및 실시예들이 본 명세서에 설명되었지만, 다른 양상들 및 실시예들이 가능하다. 본 명세서에 개시된 다양한 양상들 및 실시예들은 설명의 목적을 위한 것이고 제한을 의도하는 것은 아니며, 진정한 범위 및 사상은 아래 리스트된 청구항들에 의해 나타난다.
[0150] 첨부 A
[0151] 본 첨부에서, 정리 6이 제공된다. 유사한 결과가 앞선 Heegard, “On The Capacity Of Permanent Memory,”; 정리 4에서 증명되었다. 상이한 증명이 여기에 제시된다. 상태 정보가 디코더에 대해 또한 이용가능할 수 있다고 가정함으로써 용량에 대한 상한이 획득될 수 있다. 이러한 경우, 코딩 방식은 셀들의 부분
Figure pct00325
를 무시할 수 있고, 셀들의 나머지는, 입력 비용 제한을 갖는 이진 대칭 채널에 따라 코딩될 수 있다. 이 채널에 대해:
Figure pct00326
[0152] 더욱이:
Figure pct00327
[0153] 상태
Figure pct00328
을 갖는 셀들에 대한 비용 제한을 증가시키기 위해, 상태
Figure pct00329
을 갖는 셀들에 대해 채널 입력
Figure pct00330
을 할당하는 것이 가능하다. 이런 방식으로, 상태
Figure pct00331
을 갖는 셀들에 대한 비용 제한은
Figure pct00332
이 될 수 있다.
Figure pct00333
Figure pct00334
이 1/2 미만의
Figure pct00335
에서 증가하고 있을 수 있기 때문에, 결과적으로
Figure pct00336
이고 따라서 또한 결과적으로
Figure pct00337
이다. 따라서, 결과로서:
Figure pct00338
[0154] 이는 상한의 증명을 완료한다.
[0155] 하한은 선택
Figure pct00339
및:
Figure pct00340
를 고려함으로써 그리고:
레이트 표현을 계산함으로써 직접 획득될 수 있다.
Figure pct00341
이기 때문에, 비용 제한이 충족될 수 있다고 우선 주목해야 한다.
[0156] 다음으로,
Figure pct00342
임을 보인다. 분포
Figure pct00343
Figure pct00344
가 주어지면, 조건부 엔트로피
Figure pct00345
는 아래와 같을 수 있다:
Figure pct00346
[0157] 조건부 엔트로피
Figure pct00347
를 계산하기 위해, 우선 다음과 같이 메모리 출력 Y의 확률 분포를 계산한다:
Figure pct00348
[0158] 조건부 분포
Figure pct00349
아래 식으로 주어진다:
Figure pct00350
Figure pct00351
[0159] 따라서:
Figure pct00352
그러므로:
Figure pct00353
[0160] 첨부 B
[0161] 이 첨부에서, 보조 정리 6a가 증명된다. 정리 6의 함수들을 사용하여,
Figure pct00354
가 존재할 수 있어서 다음과 같다는 것이 보여질 수 있다:
Figure pct00355
[0162] 이러한 채널 W를 확인하기 위해, 우선 다음을 주목해야 한다:
Figure pct00356
[0163] 등식(16)은 등식(9)로부터 직접 도출될 수 있는데, 그 이유는:
Figure pct00357
[0164] 다음으로, 임의의
Figure pct00358
에 대해
Figure pct00359
이고 결국
Figure pct00360
임을 가정한다. 이는 아래로부터 도출된다:
Figure pct00361
여기서 (a)는 전체 확률의 법칙에서 도출되며, (b)는 조건부 확률의 정의로부터 도출되고, (c)는 등식(8) 및 (16)으로부터 도출된다.
[0165]
Figure pct00362
는 x의 함수가 아닐 수 있고, [0,1]에 있을 수 있기 때문에, W는 아래에 따라 제공될 수 있다:
Figure pct00363
[0166] 다음으로, 등식(15)는 앞에 제공된 W에 대해 유지되는 것이 보여진다:
Figure pct00364
[0167] 따라서, 채널 W는 등식 (15)를 충족할 수 있고 결국 보조 정리가 유지된다.
[0168] 첨부 C
[0169] 본 첨부에서, 정리 7이 증명된다. 정리 7의 복잡한 주장은, 앞선 Honda 및 Yamamoto, “Polar Coding Without Alphabet Extension For Asymmetric Models,” at Section III.B에서 설명된다. 증명은 구조 B의 점근적 레이트에서 시작할 수 있다.
Figure pct00365
을 보이는 것이 의도된다.
Figure pct00366
Figure pct00367
에 대해 저하될 수 있기 때문에, N. Goela, E. Abbe, 및 M. Gastpar, “Polar Codes For Broadcast Channels”, in Proc. IEEE Int. Symp. on Information Theory (ISIT), July 2013, pp. 1127-1131로부터
Figure pct00368
이고 따라서
Figure pct00369
라는 보조 정리 4가 도출된다. 따라서, 다음이 참일 수 있다:
Figure pct00370
여기서 세트들의 정의에 의해 상등이 도출된다. 정리의 증명을 완료하기 위해, 다음 섹션에서, 비용이 제한을 충족할 수 있음을 보이고, 그 다음 섹션 B, 디코딩 에러의 확률에서 디코딩 에러 확률이 소멸될 수 있음이 보여진다.
[0170] A. 예상된 입력 비용
규정:
Figure pct00371
[0171] 상태 벡터
Figure pct00372
및 인코딩 규칙(10)에 대해, 각각의 벡터
Figure pct00373
은 확률로 나타난다:
Figure pct00374
[0172] 프로즌(frozen) 벡터
Figure pct00375
는 다음과 같이 표현된다:
Figure pct00376
[0173] 이제, 프로즌 벡터가 균일하게 유도된다고 가정하고, 그 랜덤 벡터 특성을
Figure pct00377
로 나타낸다. 다음으로, 랜덤 프로즌 벡터에 대해 비용의 예상을 계산하고, 이러한 예상이 제한을 충족시키는 지를 보인다. 동일한 것이 에러의 확률에 대해 보일 수 있고, 제한 및 낮은 에러 확률 모두를 충족시킬 수 있는 적어도 하나의 프로즌 벡터가 존재한다는 것이 보일 수 있다. 예상은 다음과 같이 획득될 수 있다:
Figure pct00378
[0174] 조인트 pmf를 규정:
Figure pct00379
[0175] 그러면:
Figure pct00380
[0176]
Figure pct00381
임을 증명하기 위해, 다음으로
Figure pct00382
이 보여진다. 이를 보이기 위해, 디코딩 에러의 확률의 증명을 위해 또한 사용될 수 있는 약간 우세한 관계가 증명된다. 우선, 조인트 pmf가 제공된다:
Figure pct00383
[0177] 그 다음,
Figure pct00384
이며, 여기서, 삼각 부등식으로부터 부등식이 도출된다. 그리고 예상 비용의 증명은 정리 7과 관련할 수 있는 이러한 증명에서 정리 7a로 지정된, 이하의 보조 정리로 완료될 수 있다. 정리 7a는 디코딩 에러의 확률을 위해 또한 유용할 수 있다.
[0178] 정리 7a.
Figure pct00385
[0179] 증명:
Figure pct00386
를 상대 엔트로피라고 하자. 그러면:
Figure pct00387
Figure pct00388
Figure pct00389
Figure pct00390
Figure pct00391
Figure pct00392
여기서: (a)는
Figure pct00393
Figure pct00394
로부터 도출되고,
(b)는 체인 룰로부터 도출되고,
(c)는 텔리스코핑 확장
Figure pct00395
으로부터 도출되며, 여기서
Figure pct00396
Figure pct00397
는 각각, 곱들
Figure pct00398
Figure pct00399
을 나타내며,
(d)는 삼각 부등식 및 모든
Figure pct00400
에 대해
Figure pct00401
라는 사실로부터 도출되며,
(e)는 다시 체인 룰로부터 도출되며,
(f)는 Pinsker의 부등식으로부터 도출되며(예를 들어, 앞선 Cover 및 Thomas, Elements of Information Theory, 보조 정리 11.6.1 참조)
(g)는 Jensen의 부등식으로부터 도출되고,
(h)는
Figure pct00402
에 대해
Figure pct00403
라는 사실 및 앞선 보조 정리 10에서 Goela 및 Abbe, “Polar Codes For Broadcast Channels”로부터 도출된다.
[0180] 이제,
Figure pct00404
라면,
Figure pct00405
여기서, 제 1 부등식이 명제 3으로부터 도출되고, 제 2 부등식은
Figure pct00406
Figure pct00407
에 있다는 사실로부터 도출될 수 있다. 이는 보조 정리의 증명을 완료한다.
[0181] B. 디코딩 에러의 확률
[0182]
Figure pct00408
가 한 쌍의 벡터들
Figure pct00409
의 세트라고 하면,
Figure pct00410
는 디코딩
Figure pct00411
의 결과일 수 있고,
Figure pct00412
Figure pct00413
Figure pct00414
를 충족할 수 있다. 블록 디코딩 에러 이벤트는
Figure pct00415
로 주어질 수 있다. 임의의 타이-브레이킹 룰에 따라 (11)에 주어진 디코딩하에서, 각각의 모든 쌍
Figure pct00416
는 다음을 충족시킨다:
Figure pct00417
[0183] 프로즌 벡터
Figure pct00418
에 대해 블록 디코딩 에러 확률
Figure pct00419
을 고려하라. 상태 벡터
Figure pct00420
및 인코딩 규칙 (10)에 대해, 각각의 벡터
Figure pct00421
는 다음 확률로 나타날 수 있다:
Figure pct00422
[0184] 조건부 확률의 정의 및 전체 확률의 법칙에 의해, 에러의 확률
Figure pct00423
은 다음에 의해 주어질 수 있다:
Figure pct00424
[0185] 비용 제한과 마찬가지로, 프로즌 벡터가 균일하게 유도될 수 있고 그 특성이
Figure pct00425
에 의해 랜덤 벡터로서 나타난다고 가정될 수 있다. 예상은
Figure pct00426
로 획득될 수 있다.
[0186] 그 다음:
Figure pct00427
Figure pct00428
여기서, 제 1 부등식은 삼각 부등식으로부터 도출될 수 있다. 합에서의 각각의 항목은 다음에 의해 경계 지어질 수 있다:
Figure pct00429
여기서, 최종 부등식은
Figure pct00430
가 세트
Figure pct00431
에 속할 수 있다는 사실로부터 도출될 수 있다.
[0187]
Figure pct00432
을 증명하기 위해,
Figure pct00433
가 보여질 수 있다. 다음이 주목될 수 있다:
Figure pct00434
여기서, 부등식은 삼각 부등식으로부터 도출될 수 있다. 보조 정리 7a는 이제
Figure pct00435
라는 증명을 완료한다.

Claims (36)

  1. 데이터 디바이스를 동작시키기 위한 방법으로서,
    통신 채널을 통해 상기 데이터 디바이스에 의해 메시지
    Figure pct00436
    을 수신하는 단계;
    블록 소거 방지 코드의 코드워드를 프로세싱된 메시지
    Figure pct00437
    의 복수의 이진 디지트들이 나타내도록 상기 메시지
    Figure pct00438
    을 프로세싱하는 단계 ―여기서, 메모리 셀의 값이 제 1 로직 값에서 제 2 로직 값으로 변경된 후, 상기 메모리 셀에 대한 블록 소거 동작까지, 후속하여 수신되는 메시지들에 무관하게, 상기 메모리 셀의 값이 상기 제 2 로직 값에서 유지되도록, 상기 프로세싱된 메시지
    Figure pct00439
    의 이진 디지트들이 상기 데이터 디바이스의 복수의 메모리 셀들을 나타냄―; 및
    상기 데이터 디바이스의 메모리 셀들에 상기 프로세싱된 메시지
    Figure pct00440
    을 저장하는 단계를 포함하는,
    데이터 디바이스를 동작시키기 위한 방법.
  2. 제 1 항에 있어서,
    상기 메시지
    Figure pct00441
    은 수식
    Figure pct00442
    에 의해 정의되고, 상기 통신 채널은 수식
    Figure pct00443
    에 의해 정의되는 상태
    Figure pct00444
    를 갖는, 데이터 디바이스를 동작시키기 위한 방법.
  3. 제 2 항에 있어서,
    상기 메시지
    Figure pct00445
    을 프로세싱하는 단계는:
    1부터 n까지의 각각의
    Figure pct00446
    에 대해,
    Figure pct00447

    와 같이 변수
    Figure pct00448
    를 할당하는 것에 따라 값들
    Figure pct00449
    Figure pct00450
    의 상기 이진 디지트들에 할당하도록 상기 메시지
    Figure pct00451
    을 프로세싱하는 단계를 포함하며,
    상기 메시지
    Figure pct00452
    을 프로세싱하는 단계는,
    Figure pct00453
    를 계산하는 단계 ―여기서,
    Figure pct00454
    에 대해
    Figure pct00455
    이고,
    Figure pct00456
    는 크로네커 멱(Kronecker power)을 나타냄― ; 및
    각각의
    Figure pct00457
    에 대해, 값
    Figure pct00458
    를 저장하는 단계를 더 포함하는, 데이터 디바이스를 동작시키기 위한 방법.
  4. 제 3 항에 있어서,
    상기 프로세싱된 메시지
    Figure pct00459
    을 저장하는 단계는:
    균일한 입력 분포를 갖는 선형, 비용량 달성 폴라 코드를 사용하여,
    Figure pct00460
    로부터 개별적으로,
    Figure pct00461
    인 경우, 상기 데이터 디바이스에 벡터
    Figure pct00462
    를 저장하는 단계를 포함하는, 데이터 디바이스를 동작시키기 위한 방법.
  5. 제 1 항에 있어서,
    상기 메시지
    Figure pct00463
    은 수식
    Figure pct00464
    에 의해 정의되며, 상기 통신 채널은 수식
    Figure pct00465
    에 의해 정의되는 상태
    Figure pct00466
    를 가지며,
    상기 메시지
    Figure pct00467
    을 프로세싱하는 단계는,
    Figure pct00468
    가 임의의 벡터라고 하고; 1에서
    Figure pct00469
    까지의 각각의
    Figure pct00470
    에 대해 그리고 1에서 n까지의 각각의
    Figure pct00471
    에 대해
    Figure pct00472

    Figure pct00473
    에 할당하는 것에 따라 값들
    Figure pct00474
    를 상기 이진 디지트들에 할당하기 위해 상기 메시지
    Figure pct00475
    을 프로세싱하는 단계를 포함하며;
    상기 메시지
    Figure pct00476
    을 프로세싱하는 단계는:
    Figure pct00477
    를 계산하는 단계 ―여기서, 1에서
    Figure pct00478
    까지의 각각의
    Figure pct00479
    에 대해,
    Figure pct00480
    는 수식
    Figure pct00481
    에 의해 정의되고,
    Figure pct00482
    에 대해
    Figure pct00483
    이고,
    Figure pct00484
    는 크로네커 멱(Kronecker power)을 나타냄―; 및
    각각의
    Figure pct00485
    에 대해, 값
    Figure pct00486
    를 저장하는 단계를 더 포함하는, 데이터 디바이스를 동작시키기 위한 방법.
  6. 제 5 항에 있어서,
    상기 프로세싱된 메시지
    Figure pct00487
    을 상기 데이터 디바이스에 저장하는 단계는,
    균일한 입력 분포를 갖는 비용량 달성 폴라 코드를 이용하여 벡터
    Figure pct00488
    를 개별적으로 저장하는 단계를 포함하는, 데이터 디바이스를 동작시키기 위한 방법.
  7. 데이터 디바이스를 동작시키기 위한 방법으로서,
    상기 데이터 디바이스의 통신 채널을 통해 메시지
    Figure pct00489
    를 수신하는 단계 ―상기 메시지
    Figure pct00490
    는 인코딩된 데이터 값에 대응하는 이진 디지트들을 포함하고, 상기 통신 채널에서 에러를 나타내는 잡음 항목을 갖는 상기 인코딩된 데이터 값을 나타내는 벡터
    Figure pct00491
    를 포함함―;
    블록 소거 방지 코드의 코드워드를 벡터
    Figure pct00492
    가 포함하도록 디코딩된 상기 메시지
    Figure pct00493
    를 나타내는 상기 벡터
    Figure pct00494
    를 추정하는 단계 ―여기서, 메모리 셀의 값이 로직 "0"에서 로직 "1"로 변경된 후, 대응하는 저장된 데이터 값이 추후에 변경되더러도, 상기 메모리 셀의 상기 값이 로직 "1"에서 유지되도록, 상기 메시지
    Figure pct00495
    의 이진 디지트들이 상기 데이터 디바이스의 복수의 메모리 셀들에 의한 표현을 위해 구성된 코드워드에 의해 표현됨―; 및
    상기 메시지
    Figure pct00496
    의 수신된 인코딩된 데이터 값의 추정된 디코딩된 값에 대응하는 추정된 원래의 데이터 값으로서 상기 추정된 벡터
    Figure pct00497
    를 리턴하는 단계를 포함하는, 데이터 디바이스를 동작시키기 위한 방법.
  8. 제 7 항에 있어서,
    상기 벡터
    Figure pct00498
    를 추정하는 단계는,
    Figure pct00499
    에 의해 벡터
    Figure pct00500
    를 추정하는 단계를 포함하며, 상기 통신 채널은 수식
    Figure pct00501
    에 의해 정의되는 상태
    Figure pct00502
    를 갖는, 데이터 디바이스를 동작시키기 위한 방법.
  9. 제 8 항에 있어서,
    상기 벡터
    Figure pct00503
    를 추정하는 단계는,
    1에서 n까지의 각각의
    Figure pct00504
    에 대해
    Figure pct00505

    를 할당하는 것과 같이,
    Figure pct00506
    에 의해 벡터
    Figure pct00507
    를 추정하는 것에 따라 값들
    Figure pct00508
    를 상기 이진 디지트들에 할당하기 위해 상기 메시지
    Figure pct00509
    를 프로세싱하는 단계를 포함하는,
    데이터 디바이스를 동작시키기 위한 방법.
  10. 제 8 항에 있어서,
    상기 추정된 벡터
    Figure pct00510
    를 리턴하는 단계는, 추정된 메시지
    Figure pct00511
    를 리턴하는 단계를 포함하는, 데이터 디바이스를 동작시키기 위한 방법.
  11. 제 7 항에 있어서,
    상기 벡터
    Figure pct00512
    를 추정하는 단계는,
    Figure pct00513
    에 의해 벡터
    Figure pct00514
    를 추정하는 단계, 및
    Figure pct00515
    라고 하는 단계 ―상기 통신 채널은 수식
    Figure pct00516
    에 의해 정의되는 상태
    Figure pct00517
    를 가짐―; 및
    k에서 아래로 1까지의 각각의
    Figure pct00518
    에 대해 그리고 1에서 n까지의 각각의
    Figure pct00519
    에 대해,
    _를 할당하는 것과 같이,
    Figure pct00520
    에 의해
    Figure pct00521
    를 추정하는 단계를 포함하는, 데이터 디바이스를 동작시키기 위한 방법.
  12. 제 11 항에 있어서,
    추정된 메시지
    Figure pct00522
    를 리턴하는 단계를 더 포함하는, 데이터 디바이스를 동작시키기 위한 방법.
  13. 복수의 메모리 셀들을 갖는 데이터 디바이스의 메모리를 제어하기 위한 메모리 제어기로서,
    통신 채널을 통해 데이터 메시지
    Figure pct00523
    을 수신하도록 구성된 인터페이스; 및
    상기 메시지
    Figure pct00524
    의 복수의 이진 디지트들이 블록 소거 방지 코드의 코드워드를 나타내도록 상기 메시지
    Figure pct00525
    을 프로세싱하고 ―메모리 셀의 값이 제 1 로직 값에서 제 2 로직 값으로 변경된 후, 상기 메모리 셀에 대한 블록 소거 동작까지, 후속하여 수신되는 메시지들에 무관하게, 상기 메모리 셀의 값이 상기 제 2 로직 값에서 유지되도록, 상기 메시지
    Figure pct00526
    의 이진 디지트들이 상기 데이터 디바이스의 복수의 메모리 셀들을 나타냄―, 그리고 상기 데이터 디바이스의 메모리 셀들에 상기 프로세싱된 메시지
    Figure pct00527
    을 저장하도록 구성되고, 상기 인터페이스에 커플링된 프로세서를 포함하는,
    메모리 제어기.
  14. 제 13 항에 있어서,
    상기 메시지
    Figure pct00528
    은 수식
    Figure pct00529
    에 의해 정의되고, 상기 통신 채널은 수식
    Figure pct00530
    에 의해 정의되는 상태
    Figure pct00531
    를 갖는, 메모리 제어기.
  15. 제 14 항에 있어서,
    상기 메시지를 프로세싱하기 위해, 상기 프로세서는,
    1부터 n까지의 각각의
    Figure pct00532
    에 대해,
    Figure pct00533
    와 같이 변수
    Figure pct00534
    를 할당하는 것에 따라 값들
    Figure pct00535
    를 상기 메시지
    Figure pct00536
    의 상기 이진 디지트들에 할당하도록 상기 메시지
    Figure pct00537
    을 프로세싱하고;
    Figure pct00538
    을 계산하고 ―여기서,
    Figure pct00539
    에 대해
    Figure pct00540
    이고,
    Figure pct00541
    는 크로네커 멱(Kronecker power)을 나타냄― ; 그리고
    각각의
    Figure pct00542
    에 대해, 값
    Figure pct00543
    를 저장하도록 구성되는, 메모리 제어기.
  16. 제 15 항에 있어서,
    상기 프로세서는, 균일한 입력 분포를 갖는 선형, 비용량 달성 폴라 코드를 사용하여,
    Figure pct00544
    로부터 개별적으로,
    Figure pct00545
    인 경우, 상기 데이터 디바이스에 벡터
    Figure pct00546
    를 저장하도록 추가로 구성되는, 메모리 제어기.
  17. 제 13 항에 있어서,
    상기 메시지
    Figure pct00547
    은 수식
    Figure pct00548
    에 의해 정의되며, 상기 통신 채널은 수식
    Figure pct00549
    에 의해 정의되는 상태
    Figure pct00550
    를 가지며,
    상기 메시지
    Figure pct00551
    을 프로세싱하기 위해, 상기 프로세서는,
    Figure pct00552
    가 임의의 벡터라고 하고; 1에서
    Figure pct00553
    까지의 각각의
    Figure pct00554
    에 대해 그리고 1에서 n까지의 각각의
    Figure pct00555
    에 대해
    Figure pct00556

    Figure pct00557
    중 하나에 할당하는 것에 따라 값들
    Figure pct00558
    를 상기 이진 디지트들에 할당하기 위해 상기 메시지
    Figure pct00559
    을 프로세싱하도록 구성되고;
    상기 메시지
    Figure pct00560
    을 프로세싱하기 위해, 상기 프로세서는:
    Figure pct00561
    를 계산하고 ―여기서, 1에서
    Figure pct00562
    까지의 각각의
    Figure pct00563
    에 대해,
    Figure pct00564
    는 수식
    Figure pct00565
    에 의해 정의되고, ―여기서,
    Figure pct00566
    에 대해
    Figure pct00567
    이고,
    Figure pct00568
    는 크로네커 멱(Kronecker power)을 나타냄―; 그리고
    각각의
    Figure pct00569
    에 대해, 값
    Figure pct00570
    를 저장하도록 추가로 구성되는, 메모리 제어기.
  18. 제 17 항에 있어서,
    상기 프로세서는, 균일한 입력 분포를 갖는 비용량 달성 폴라 코드를 이용하여 벡터
    Figure pct00571
    를 개별적으로 저장하도록 추가로 구성되는, 메모리 제어기.
  19. 데이터 디바이스의 메모리를 제어하기 위한 메모리 제어기로서,
    상기 데이터 디바이스의 통신 채널을 통해 메시지
    Figure pct00572
    를 수신하기 위한 인터페이스 ―상기 메시지
    Figure pct00573
    는 인코딩된 데이터 값에 대응하는 이진 디지트들을 포함하고, 상기 통신 채널에서 에러를 나타내는 잡음 항목을 갖는 상기 인코딩된 데이터 값을 나타내는 벡터
    Figure pct00574
    를 포함함―;
    벡터
    Figure pct00575
    가 블록 소거 방지 코드의 코드워드를 포함하도록, 디코딩된 상기 메시지
    Figure pct00576
    를 나타내는 상기 벡터
    Figure pct00577
    를 추정하고 ―여기서, 메모리 셀의 값이 로직 "0"에서 로직 "1"로 변경된 후, 대응하는 저장된 데이터 값이 추후에 변경되더러도, 상기 메모리 셀의 상기 값이 로직 "1"에서 유지되도록, 상기 메시지
    Figure pct00578
    의 이진 디지트들이 상기 데이터 디바이스의 복수의 메모리 셀들에 의한 표현을 위해 구성된 코드워드에 의해 표현됨―, 그리고 상기 메시지
    Figure pct00579
    의 수신된 인코딩된 데이터 값의 추정된 디코딩된 값에 대응하는 추정된 원래의 데이터 값으로서 상기 추정된 벡터
    Figure pct00580
    를 리턴하도록 구성되고, 상기 인터페이스에 커플링되는 프로세서를 포함하는, 메모리 제어기.
  20. 제 19 항에 있어서,
    상기 벡터
    Figure pct00581
    를 추정하기 위해, 상기 프로세서는,
    Figure pct00582
    에 의해 벡터
    Figure pct00583
    를 추정하도록 구성되며, 상기 통신 채널은 수식
    Figure pct00584
    에 의해 정의되는 상태
    Figure pct00585
    를 갖는, 메모리 제어기.
  21. 제 20 항에 있어서,
    상기 벡터
    Figure pct00586
    를 추정하기 위해,
    상기 프로세서는,
    1에서 n까지의 각각의
    Figure pct00587
    에 대해
    Figure pct00588

    를 할당하는 것과 같이,
    Figure pct00589
    에 의해 벡터
    Figure pct00590
    를 추정하는 것에 따라 값들
    Figure pct00591
    를 상기 이진 디지트들에 할당하기 위해 상기 메시지
    Figure pct00592
    를 프로세싱하도록 구성되는,
    메모리 제어기.
  22. 제 20 항에 있어서,
    상기 추정된 벡터
    Figure pct00593
    를 리턴하기 위해, 상기 프로세서는,
    추정된 메시지
    Figure pct00594
    를 리턴하도록 구성되는, 메모리 제어기.
  23. 제 19 항에 있어서,
    상기 벡터
    Figure pct00595
    를 추정하기 위해, 상기 프로세서는,
    Figure pct00596
    에 의해 벡터
    Figure pct00597
    를 추정하고,
    Figure pct00598
    라고 하고 ―상기 통신 채널은 수식
    Figure pct00599
    에 의해 정의되는 상태
    Figure pct00600
    를 가짐―; 그리고
    k에서 아래로 1까지의 각각의
    Figure pct00601
    에 대해 그리고 1에서 n까지의 각각의
    Figure pct00602
    에 대해,
    _를 할당하는 것과 같이,
    Figure pct00603
    에 의해
    Figure pct00604
    를 추정하도록 구성되는, 메모리 제어기.
  24. 제 23 항에 있어서,
    상기 프로세서는, 추정된 메시지
    Figure pct00605
    를 리턴하도록 구성되는, 메모리 제어기.
  25. 데이터 디바이스로서,
    데이터 값들을 저장하도록 구성된 메모리; 및
    프로세싱된 메시지
    Figure pct00606
    의 복수의 이진 디지트들이 블록 소거 방지 코드의 코드워드를 나타내도록, 통신 채널을 통해 상기 데이터 디바이스에 의해 수신되는 메시지
    Figure pct00607
    을 프로세싱하고 ―메모리 셀의 값이 제 1 로직 값에서 제 2 로직 값으로 변경된 후, 상기 메모리 셀에 대한 블록 소거 동작까지, 후속하여 수신되는 메시지들에 무관하게, 상기 메모리 셀의 값이 상기 제 2 로직 값에서 유지되도록, 상기 프로세싱된 메시지
    Figure pct00608
    의 이진 디지트들이 상기 데이터 디바이스의 복수의 메모리 셀들을 나타냄―, 그리고 상기 데이터 디바이스의 메모리 셀들에 상기 프로세싱된 메시지
    Figure pct00609
    을 저장하도록 구성되고, 상기 메모리에 커플링되는 메모리 제어기를 포함하는,
    데이터 디바이스.
  26. 제 25 항에 있어서,
    상기 메시지
    Figure pct00610
    은 수식
    Figure pct00611
    에 의해 정의되고, 상기 통신 채널은 수식
    Figure pct00612
    에 의해 정의되는 상태
    Figure pct00613
    를 갖는, 데이터 디바이스.
  27. 제 26 항에 있어서,
    상기 메시지
    Figure pct00614
    을 프로세싱하기 위해,
    상기 메모리 제어기는,
    1부터 n까지의 각각의
    Figure pct00615
    에 대해,
    Figure pct00616
    와 같이 변수
    Figure pct00617
    를 할당하는 것에 따라 값들
    Figure pct00618
    Figure pct00619
    의 상기 이진 디지트들에 할당하도록 상기 메시지
    Figure pct00620
    을 프로세싱하고;
    Figure pct00621
    을 계산하고 ―여기서,
    Figure pct00622
    에 대해
    Figure pct00623
    이고,
    Figure pct00624
    는 크로네커 멱(Kronecker power)을 나타냄― ; 및
    각각의
    Figure pct00625
    에 대해, 값
    Figure pct00626
    를 저장하도록 구성되는, 데이터 디바이스.
  28. 제 27 항에 있어서,
    상기 프로세싱된 메시지
    Figure pct00627
    을 저장하기 위해,
    상기 메모리 제어기는,
    균일한 입력 분포를 갖는 선형, 비용량 달성 폴라 코드를 사용하여,
    Figure pct00628
    로부터 개별적으로,
    Figure pct00629
    인 경우, 상기 데이터 디바이스에 벡터
    Figure pct00630
    를 저장하도록 구성되는, 데이터 디바이스.
  29. 제 25 항에 있어서,
    상기 메시지
    Figure pct00631
    은 수식
    Figure pct00632
    에 의해 정의되며, 상기 통신 채널은 수식
    Figure pct00633
    에 의해 정의되는 상태
    Figure pct00634
    를 가지며,
    상기 메시지
    Figure pct00635
    을 프로세싱하기 위해, 상기 메모리 제어기는,
    Figure pct00636
    가 임의의 벡터라고 하고; 1에서
    Figure pct00637
    까지의 각각의
    Figure pct00638
    에 대해 그리고 1에서 n까지의 각각의
    Figure pct00639
    에 대해
    Figure pct00640

    Figure pct00641
    중 하나에 할당하는 것에 따라 값들
    Figure pct00642
    를 상기 이진 디지트들에 할당하기 위해 상기 메시지
    Figure pct00643
    을 프로세싱하고;
    Figure pct00644
    를 계산하고 ―여기서, 1에서
    Figure pct00645
    까지의 각각의
    Figure pct00646
    에 대해,
    Figure pct00647
    는 수식
    Figure pct00648
    에 의해 정의되고, ―여기서,
    Figure pct00649
    에 대해
    Figure pct00650
    이고,
    Figure pct00651
    는 크로네커 멱(Kronecker power)을 나타냄―; 그리고
    각각의
    Figure pct00652
    에 대해, 값
    Figure pct00653
    를 저장하도록 구성되는, 데이터 디바이스.
  30. 제 25 항에 있어서,
    상기 프로세싱된 메시지
    Figure pct00654
    을 상기 데이터 디바이스에 저장하기 위해, 상기 메모리 제어기는,
    균일한 입력 분포를 갖는 비용량 달성 폴라 코드를 이용하여 벡터
    Figure pct00655
    를 개별적으로 저장하도록 구성되는, 데이터 디바이스.
  31. 데이터 디바이스로서,
    데이터 값들을 저장하도록 구성된 메모리;
    상기 데이터 디바이스의 통신 채널을 통해 데이터 메시지
    Figure pct00656
    를 수신하도록 구성되고 상기 메모리에 커플링된 메모리 제어기 ―상기 메시지
    Figure pct00657
    는 인코딩된 데이터 값에 대응하는 이진 디지트들을 포함하고, 상기 통신 채널에서 에러를 나타내는 잡음 항목을 갖는 상기 인코딩된 데이터 값을 나타내는 벡터
    Figure pct00658
    를 포함함―; 및
    벡터
    Figure pct00659
    가 블록 소거 방지 코드의 코드워드를 포함하도록, 디코딩된 상기 메시지
    Figure pct00660
    를 나타내는 상기 벡터
    Figure pct00661
    를 추정하고 ―메모리 셀의 값이 로직 "0"에서 로직 "1"로 변경된 후, 대응하는 저장된 데이터 값이 추후에 변경되더러도, 상기 메모리 셀의 상기 값이 로직 "1"에서 유지되도록, 상기 메시지
    Figure pct00662
    의 이진 디지트들이 상기 데이터 디바이스의 복수의 메모리 셀들에 의한 표현을 위해 구성된 코드워드에 의해 표현됨―, 그리고 상기 메시지
    Figure pct00663
    의 수신된 인코딩된 데이터 값의 추정된 디코딩된 값에 대응하는 추정된 원래의 데이터 값으로서 상기 추정된 벡터
    Figure pct00664
    를 리턴하도록 구성되고, 상기 메모리에 커플링된 프로세서를 포함하는, 데이터 디바이스.
  32. 제 31 항에 있어서,
    상기 벡터
    Figure pct00665
    를 추정하기 위해,
    상기 프로세서는,
    Figure pct00666
    에 의해 벡터
    Figure pct00667
    를 추정하도록 구성되고,
    상기 통신 채널은 수식
    Figure pct00668
    에 의해 정의되는 상태
    Figure pct00669
    를 갖는, 데이터 디바이스.
  33. 제 32 항에 있어서,
    상기 벡터
    Figure pct00670
    를 추정하기 위해, 상기 프로세서는,
    1에서 n까지의 각각의
    Figure pct00671
    에 대해
    Figure pct00672

    를 할당하는 것과 같이,
    Figure pct00673
    에 의해 벡터
    Figure pct00674
    를 추정하는 것에 따라 값들
    Figure pct00675
    를 상기 이진 디지트들에 할당하기 위해 상기 메시지
    Figure pct00676
    를 프로세싱하도록 구성되는, 데이터 디바이스.
  34. 제 32 항에 있어서,
    상기 추정된 벡터
    Figure pct00677
    를 리턴하기 위해, 상기 프로세서는,
    추정된 메시지
    Figure pct00678
    를 리턴하도록 구성되는, 데이터 디바이스.
  35. 제 31 항에 있어서,
    상기 벡터
    Figure pct00679
    를 추정하기 위해, 상기 프로세서는,
    Figure pct00680
    에 의해 벡터
    Figure pct00681
    를 추정하고, 그리고
    Figure pct00682
    라고 하고 ―상기 통신 채널은 수식
    Figure pct00683
    에 의해 정의되는 상태
    Figure pct00684
    를 가짐―; 그리고
    k에서 아래로 1까지의 각각의
    Figure pct00685
    에 대해 그리고 1에서 n까지의 각각의
    Figure pct00686
    에 대해,
    Figure pct00687
    를 할당하는 것과 같이,
    Figure pct00688
    에 의해
    Figure pct00689
    를 추정하도록 구성되는, 데이터 디바이스.
  36. 제 35 항에 있어서,
    상기 프로세서는, 추정된 메시지
    Figure pct00690
    를 리턴하도록 구성되는, 데이터 디바이스.
KR1020167021326A 2014-01-17 2015-01-14 폴라 코드들을 이용한 비대칭 에러 정정 및 플래시 메모리 재기록 KR20160144960A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461928749P 2014-01-17 2014-01-17
US61/928,749 2014-01-17
US201462018434P 2014-06-27 2014-06-27
US62/018,434 2014-06-27
PCT/US2015/011430 WO2015108995A1 (en) 2014-01-17 2015-01-14 Asymmetric error correction and flash-memory rewriting using polar codes

Publications (1)

Publication Number Publication Date
KR20160144960A true KR20160144960A (ko) 2016-12-19

Family

ID=53543402

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167021326A KR20160144960A (ko) 2014-01-17 2015-01-14 폴라 코드들을 이용한 비대칭 에러 정정 및 플래시 메모리 재기록

Country Status (4)

Country Link
US (1) US10379945B2 (ko)
KR (1) KR20160144960A (ko)
CN (1) CN107077886A (ko)
WO (1) WO2015108995A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10379945B2 (en) 2014-01-17 2019-08-13 California Institute Of Technology Asymmetric error correction and flash-memory rewriting using polar codes

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10191803B2 (en) * 2015-01-30 2019-01-29 California Institute Of Technology Rewriting flash memories by message passing
US10231121B2 (en) * 2015-06-24 2019-03-12 Lg Electronics Inc. Security communication using polar code scheme
KR20180021324A (ko) * 2016-08-19 2018-03-02 삼성전자주식회사 저장 장치 및 그것의 동작 방법
CN115664583A (zh) 2017-01-09 2023-01-31 中兴通讯股份有限公司 一种数据处理方法和装置
CN107659318B (zh) * 2017-11-07 2021-05-18 东南大学 一种自适应的极化码译码方法
US10339971B1 (en) 2017-12-19 2019-07-02 International Business Machines Corporation Sequential data storage with rewrite using dead-track detection
EP3811274A1 (en) * 2018-06-21 2021-04-28 Technische Universität München Method and unit of operating a storage means, storage means and system for data processing
CN117176185B (zh) * 2023-10-18 2024-02-09 苏州元脑智能科技有限公司 一种基于极化码的数据编解码方法、装置和存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0900440B1 (en) 1996-05-22 2003-07-30 Macronix International Co., Ltd. Flash memory device with multiple checkpoint erase suspend logic
CN1492447A (zh) * 2003-09-22 2004-04-28 中兴通讯股份有限公司 一种快闪存储设备的驱动方法
CN100476758C (zh) * 2007-08-14 2009-04-08 北京佳讯飞鸿电气股份有限公司 一种基于nor flash芯片的数据存储实现方法
KR101422704B1 (ko) * 2008-01-21 2014-07-25 삼성전자주식회사 소거 스트레스를 줄일 수 있는 전하 트랩형 플래시 메모리장치 그리고 그것의 프로그램 및 소거 방법
US8386883B2 (en) * 2009-02-24 2013-02-26 International Business Machines Corporation Lengthening life of a limited life memory
US8780620B2 (en) * 2010-09-20 2014-07-15 The Texas A&M University Information representation and coding for nonvolatile memories
WO2013134735A1 (en) * 2012-03-08 2013-09-12 California Institute Of Technology Rank-modulation rewriting codes for flash memories
US9632866B2 (en) * 2012-09-28 2017-04-25 Duke University Systems for and methods of extending lifetime of non-volatile memory
WO2014116301A1 (en) * 2013-01-24 2014-07-31 California Institute Of Technology Joint rewriting and error correction in write-once memories
KR20160144960A (ko) 2014-01-17 2016-12-19 캘리포니아 인스티튜트 오브 테크놀로지 폴라 코드들을 이용한 비대칭 에러 정정 및 플래시 메모리 재기록

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10379945B2 (en) 2014-01-17 2019-08-13 California Institute Of Technology Asymmetric error correction and flash-memory rewriting using polar codes

Also Published As

Publication number Publication date
WO2015108995A1 (en) 2015-07-23
CN107077886A (zh) 2017-08-18
US10379945B2 (en) 2019-08-13
US20160335156A1 (en) 2016-11-17

Similar Documents

Publication Publication Date Title
KR20160144960A (ko) 폴라 코드들을 이용한 비대칭 에러 정정 및 플래시 메모리 재기록
Sala et al. Dynamic threshold schemes for multi-level non-volatile memories
US9916197B2 (en) Rank-modulation rewriting codes for flash memories
JP5567378B2 (ja) 不揮発性メモリの適応型エンデュランス・コーディング方法及びシステム
JP4818381B2 (ja) 半導体メモリ装置
Gad et al. Asymmetric error correction and flash-memory rewriting using polar codes
US20120096328A1 (en) Multi-write endurance and error control coding of non-volatile memories
Hussain et al. Design of LT codes with equal and unequal erasure protection over binary erasure channels
TWI510000B (zh) 用於結合錯誤編碼與調變方案之裝置及方法
JP5468184B2 (ja) ソリッドステートドライブのための消去カウントを軽減した高機能データ符号化
EP3182601B1 (en) Data processing method and system based on quasi-cyclic ldpc
CN110598867A (zh) 一种量子态信息转化方法
JP2020510931A (ja) 非2値コンテキスト・ミキシング方法、非2値コンテキスト・ミキシング圧縮器および圧縮解除器を備えるデータ・ストレージ・システム、ならびにコンピュータ・プログラム
US8832525B2 (en) Memory controller with low density parity check code decoding capability and relevant memory controlling method
US10326473B2 (en) Symbol-based coding for NAND flash devices
WO2023059517A1 (en) Systems for estimating bit error rate (ber) of encoded data using neural networks
Gad et al. Rank-modulation rewriting codes for flash memories
WO2018157263A1 (en) Generalized polar codes
CN108432170B (zh) 用于多码分布式存储的装置和方法
US10191803B2 (en) Rewriting flash memories by message passing
CN108628698B (zh) 计算crc编码的方法和装置
US9985647B2 (en) Encoder and decoder design for near-balanced codes
KR102098247B1 (ko) 메모리 시스템에서 데이터를 인코딩 및 디코딩하기 위한 방법 및 장치
KR102607761B1 (ko) 극 부호를 이용하는 복호화를 위한 복호 위치 제어 정보 생성 방법 및 장치
KR20180021324A (ko) 저장 장치 및 그것의 동작 방법

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination