KR102242281B1 - Apparatus and method for mapping binary to ternary and its reverse - Google Patents

Apparatus and method for mapping binary to ternary and its reverse Download PDF

Info

Publication number
KR102242281B1
KR102242281B1 KR1020177003915A KR20177003915A KR102242281B1 KR 102242281 B1 KR102242281 B1 KR 102242281B1 KR 1020177003915 A KR1020177003915 A KR 1020177003915A KR 20177003915 A KR20177003915 A KR 20177003915A KR 102242281 B1 KR102242281 B1 KR 102242281B1
Authority
KR
South Korea
Prior art keywords
ternary
binary
output
lut
logic
Prior art date
Application number
KR1020177003915A
Other languages
Korean (ko)
Other versions
KR20170030617A (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 KR20170030617A publication Critical patent/KR20170030617A/en
Application granted granted Critical
Publication of KR102242281B1 publication Critical patent/KR102242281B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/02Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word
    • 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/11Error 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 using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M5/00Conversion of the form of the representation of individual digits
    • H03M5/02Conversion to or from representation by pulses
    • H03M5/16Conversion to or from representation by pulses the pulses having three levels

Abstract

이진 데이터를 삼진 데이터로 그리고 역으로 변환하는 장치가 설명되는데 이 장치는: 19개 이진 비트의 12개 삼진 트리트로의 매핑을 갖는 제1 LUT(look-up table); 및 이진 입력을 수신하고 상기 이진 입력을 상기 제1 LUT에 따라 삼진 출력으로 변환하는 제1 로직을 포함한다.An apparatus for converting binary data to ternary data and vice versa is described, comprising: a first look-up table (LUT) with a mapping of 19 binary bits to 12 ternary trees; And first logic for receiving a binary input and converting the binary input to a ternary output according to the first LUT.

Description

이진을 삼진으로 매핑하기 위한 그리고 그 역을 위한 장치 및 방법{APPARATUS AND METHOD FOR MAPPING BINARY TO TERNARY AND ITS REVERSE}Apparatus and method for mapping binary to ternary and vice versa {APPARATUS AND METHOD FOR MAPPING BINARY TO TERNARY AND ITS REVERSE}

우선권 주장Priority claim

본 출원은 그 전체가 본 명세서에 참고로 포함되는, 2014년 9월 18일 출원된, "APPARATUS AND METHOD FOR MAPPING BINARY TO TERNARY AND ITS REVERSE"라는 제목의 미국 특허 출원 일련 번호 14/490,307에 대한 우선권을 주장한다.This application has priority to U.S. Patent Application Serial No. 14/490,307 filed September 18, 2014, which is incorporated herein by reference in its entirety, entitled "APPARATUS AND METHOD FOR MAPPING BINARY TO TERNARY AND ITS REVERSE" Insist.

플래시 메모리는 각각의 메모리 셀에 단일 비트의 정보를 저장하는 단일 레벨 셀들을 사용하여, 또는 각각의 메모리 셀에 다수의 비트의 정보를 저장하는 다중 레벨 셀들로서 설계될 수 있다. 일반적으로, 단일 레벨 셀은 다중 레벨 셀보다 내구성이 높다. 그러나, 다중 레벨 셀은 단일 레벨 셀보다 높은 저장 밀도를 제공한다. 다중 레벨 셀 메모리(예를 들어, 플래시 메모리)는 다중 레벨 셀들로 구성되며, 그 각각은 다수의 충전 상태 또는 레벨을 저장할 수 있다. 충전 상태들 각각은 메모리 요소 비트 패턴과 관련된다. 다중 레벨 셀 메모리는 다수의 임계 전압 레벨(Vt)을 저장하도록 구성 가능하다.Flash memory can be designed using single level cells that store a single bit of information in each memory cell, or as multilevel cells that store multiple bits of information in each memory cell. In general, single-level cells are more durable than multi-level cells. However, multilevel cells provide a higher storage density than single level cells. A multilevel cell memory (eg, a flash memory) is composed of multilevel cells, each of which can store a plurality of state of charge or levels. Each of the state of charge is associated with a memory element bit pattern. The multi-level cell memory is configurable to store multiple threshold voltage levels (V t ).

다중 레벨 셀 메모리는 충전 상태의 수에 기초하여 1 비트보다 많은 비트의 데이터를 저장할 수 있다. 예를 들어, 4개의 충전 상태(또는 4개의 Vt 레벨)를 저장할 수 있는 다중 레벨 셀 메모리는 2 비트의 데이터를 저장할 수 있고, 8개의 충전 상태(또는 8개의 Vt 레벨)를 저장할 수 있는 다중 레벨 셀 메모리는 3 비트의 데이터를 저장할 수 있고, 16개의 충전 상태를 저장할 수 있는 다중 레벨 셀은 4 비트의 데이터를 저장할 수 있다. n 비트 다중 레벨 셀 메모리들 각각에 대해, 다양한 메모리 요소 비트 패턴들이 상이한 충전 상태들 각각과 관련될 수 있다. 기준 전압은 다양한 충전 상태들을 분리할 수 있다. 예를 들어, 제1 기준 전압은 레벨 3과 레벨 2를 분리할 수 있고, 제2 전압 기준은 레벨 1과 레벨 2를 분리할 수 있고, 제3 기준 전압은 레벨 0과 레벨 1을 분리할 수 있다.The multi-level cell memory can store more than one bit of data based on the number of state of charge. For example, a multilevel cell memory capable of storing 4 charge states (or 4 Vt levels) can store 2 bits of data, and a multilevel capable of storing 8 charge states (or 8 Vt levels). A cell memory can store 3 bits of data, and a multi-level cell capable of storing 16 charge states can store 4 bits of data. For each of the n-bit multi-level cell memories, various memory element bit patterns may be associated with each of the different states of charge. The reference voltage can separate the various states of charge. For example, the first reference voltage can separate level 3 and level 2, the second voltage reference can separate level 1 and level 2, and the third reference voltage can separate level 0 and level 1. have.

이진 정보는 단일 레벨 셀 메모리로 직접 매핑될 수 있다. 그러나, 다중 레벨 셀들은 이진 정보를 다중 레벨 셀들의 레벨의 수로 매핑하는 메모리 매핑 조작을 필요로 한다. 이진-삼진 매핑은 이진 데이터를 취하여 이를 삼진 기호로 매핑하는 기능이다. 전형적인 이진-삼진 매핑은 먼저 이진 문자열의 십진 표현을 획득한 다음에 이 십진수를 그의 삼진 표현으로 매핑한다. 이 매핑에 의해 획득된 압축은 이론적 한계에 가깝다. 예를 들어, 1 킬로바이트 비트(즉, 8192 비트)는 5169개의 삼진 기호로 매핑될 수 있다. 획득된 압축은 이론적 한계에 근접한 1.5848이다. 각각의 3-레벨 메모리 셀의 이론적 저장 한계는 Log2(3) = 1.5849 비트이다.Binary information can be directly mapped to single level cell memory. However, multilevel cells require a memory mapping operation that maps binary information to the number of levels of the multilevel cells. Binary-triple mapping is a function that takes binary data and maps it to a ternary symbol. A typical binary-to-ternary mapping first obtains the decimal representation of a binary string and then maps this decimal number to its ternary representation. The compression obtained by this mapping is close to the theoretical limit. For example, 1 kilobyte bits (ie, 8192 bits) can be mapped to 5169 ternary symbols. The compression obtained is 1.5848, which is close to the theoretical limit. The theoretical storage limit for each 3-level memory cell is Log2(3) = 1.5849 bits.

이러한 전형적인 이진-삼진 매핑에 대한 한 가지 문제점은 에러 전파가 발생한다는 것이다. 저장될 이진 문자열 "000...001111"을 생각해보자. 이 문자열의 십진 표현은 15이고 삼진 표현은 "000..00120"이다. 셀들 내에 레벨 정보로서 (예를 들어, NAND 플래시 메모리에) 저장된 이 삼진 문자열이 다시 판독된다. 메모리(예를 들어, NAND 플래시 메모리)로부터 판독할 때 에러가 있기 때문에, "0000...00121"이 다시 판독된다(즉, 마지막 레벨 0은 레벨 1로서 판독된다). 이 노이즈가 있는 판독에 대한 이진 표현은 "000...0010000"이다. 따라서, 단일 레벨의 에러는 판독 에러에서 5 비트로 변환된다. 전형적인 매핑은 3.5의 인수에 의한 에러 전파를 가지며, 이는 비트 에러율이 레벨 에러율의 3.5배임을 의미한다.One problem with this typical binary-to-ternary mapping is that error propagation occurs. Consider the binary string "000...001111" to be stored. The decimal representation of this string is 15 and the ternary representation is "000..00120". This ternary character string stored as level information in the cells (eg, in a NAND flash memory) is read back. Since there is an error when reading from the memory (e.g., NAND flash memory), "0000...00121" is read again (i.e., the last level 0 is read as level 1). The binary representation for this noisy reading is "000...0010000". Thus, a single level of error is converted to 5 bits in a read error. A typical mapping has an error propagation by a factor of 3.5, which means that the bit error rate is 3.5 times the level error rate.

본 개시의 실시예들은 아래 주어지는 상세한 설명으로부터 그리고 본 개시의 다양한 실시예들의 첨부 도면들로부터 더욱 완전하게 이해될 것이지만, 이는 본 개시를 특정 실시예들로 한정하는 것으로 여겨져서는 안 되며, 설명 및 이해만을 위한 것이다.
도 1은 본 개시의 일부 실시예들에 따라, 이진을 삼진으로 그리고 역으로 매핑하기 위해 LUT(look-up table)들을 사용하는 하드웨어 아키텍처를 도시한다.
도 2는 본 개시의 일부 실시예들에 따라, 19개 비트 이진 입력 및 2의 거듭제곱의 삼진 표현을 갖는 12개 트리트(trit) 삼진 기호 출력을 갖는 LUT를 도시한다.
도 3은 본 개시의 일부 실시예들에 따라, 12개 트리트 삼진 기호 입력 및 3의 거듭제곱의 이진 표현을 갖는 19개 비트 이진 출력을 갖는 LUT를 도시한다.
도 4는 본 개시의 일부 실시예들에 따라, 도 1의 하드웨어 아키텍처에 따라 데이터를 다중 레벨(예를 들어, 3-레벨) 메모리 셀에 저장하는 메모리 아키텍처를 도시한다.
도 5는 본 개시의 일부 실시예들에 따라, 이진을 삼진으로 그리고 역으로 매핑하는 방법의 흐름도를 도시한다.
도 6은 일부 실시예들에 따라, 이진 데이터를 삼진 데이터로 그리고 역으로 매핑하기 위한 장치를 갖는 스마트 디바이스 또는 컴퓨터 시스템 또는 SoC(System-on-Chip)를 도시한다.
Embodiments of the present disclosure will be more fully understood from the detailed description given below and from the accompanying drawings of various embodiments of the present disclosure, but this should not be construed as limiting the disclosure to the specific embodiments, description and understanding. It's for only.
1 shows a hardware architecture using look-up tables (LUTs) to map binary to ternary and vice versa, in accordance with some embodiments of the present disclosure.
2 illustrates a LUT having a 19 bit binary input and a 12 trit ternary symbol output with a ternary representation of a power of 2, in accordance with some embodiments of the present disclosure.
3 illustrates a LUT having a 12-treat ternary symbol input and a 19-bit binary output with a binary representation of a power of 3, in accordance with some embodiments of the present disclosure.
FIG. 4 illustrates a memory architecture for storing data in a multilevel (eg, three-level) memory cell according to the hardware architecture of FIG. 1, in accordance with some embodiments of the present disclosure.
5 shows a flow diagram of a method of mapping binary to ternary and vice versa, in accordance with some embodiments of the present disclosure.
6 illustrates a smart device or computer system or System-on-Chip (SoC) having an apparatus for mapping binary data to and vice versa, in accordance with some embodiments.

다중 레벨 저장 모드(예를 들어, 3개의 임계 전압 레벨 모드)에서 사용되는 플래시 메모리들(예를 들어, NAND 메모리들)에 대해, 이진 비트들이 3개의 임계 레벨로 매핑될 수 있는 다양한 방식이 있다. 예를 들어, 페이로드는 먼저 ECC(Error Protection Code) 보호된 다음 이진 ECC 비트들이 이진 도메인에서 삼진 도메인으로 매핑될 수 있다. 또 다른 방식은 먼저 페이로드의 이진-삼진 매핑을 수행한 다음 삼진 데이터에 대해 삼진 ECC 코드가 작용하게 하는 것이다. 삼진 ECC 방식을 사용하는 데 뚜렷한 이점들이 있다. 이진 ECC 방식은 메모리로부터 판독된 레벨들이 먼저 삼진 도메인에서 이진 도메인으로 변환될 것을 요구할 수 있다. 판독된 삼진 레벨들에 에러가 있기 때문에, 삼진 기호들이 이진 비트들로 변환될 때 2의 인수에 의한 에러 전파가 있다.For flash memories (e.g., NAND memories) used in a multi-level storage mode (e.g., three threshold voltage level mode), there are various ways in which binary bits can be mapped to three threshold levels. . For example, the payload may be first protected by Error Protection Code (ECC) and then binary ECC bits may be mapped from the binary domain to the ternary domain. Another way is to first perform a binary-to-three-way mapping of the payload and then let the three-way ECC code act on the stern data. There are distinct advantages to using the three-way ECC method. The binary ECC scheme may require that the levels read from the memory are first converted from the ternary domain to the binary domain. Because there is an error in the read ternary levels, there is an error propagation by a factor of 2 when ternary symbols are converted to binary bits.

그러나, 삼진 ECC 방식들이 사용되면, 삼진 ECC는 먼저 모든 에러를 정정한다. 노이즈가 없는 데이터에 대해 작용하는, 삼진-이진 매핑은 에러가 없는 이진 비트들을 제공한다. 전형적인 이진-삼진 매핑은 구현하기가 매우 복잡하다. 예를 들어, 샘플 데이터에 대한 ECC 코드워드 크기는 대략 4.6 킬로바이트 비트 또는 대략 37,665 비트이다. 이 37,665 비트가 그들의 대응하는 삼진 표현으로 변환되어야 한다면, 게이트 수는 4*37665 = 150,000 게이트이다. 전형적인 이진-삼진 매핑을 이용한 판독 중에 삼진 데이터를 이진 데이터로 매핑하는 삼진-이진 매핑을 위해 유사한 수의 게이트가 요구된다. 다양한 실시예는 최적의 이진-삼진 맵 및 그의 하드웨어 구현을 상세하게 설명한다.However, when the three-way ECC schemes are used, the three-way ECC first corrects all errors. Working on noise-free data, the ternary-binary mapping provides error-free binary bits. The typical binary-to-three mapping is very complex to implement. For example, the ECC codeword size for sample data is approximately 4.6 kilobyte bits or approximately 37,665 bits. If these 37,665 bits are to be converted to their corresponding ternary representation, then the number of gates is 4*37665 = 150,000 gates. A similar number of gates are required for ternary-binary mapping, which maps ternary data to binary data during readout using typical binary-to-ternary mapping. Various embodiments describe in detail an optimal binary-three-dimensional map and its hardware implementation.

일부 실시예들에서 기술된 매핑은 19개 이진 비트를 취하고 이들을 LUT(look-up table)을 사용하여 12개의 삼진 기호(또는 트리트)로 매핑하는 19-12 매핑이다. 각각의 3-레벨 메모리 셀의 이론적 저장 한계는 Log2(3) = 1.5849 비트이다. 일부 실시예들에서, 변환은 1.5833 비트가 하나의 삼진 기호로 매핑되게 하고, 이는 1.5849 bpc(bits per cell)의 이론적 한계에 더 근접한다. 일부 실시예들에서, 이 매핑의 하드웨어 구현은 전형적인 이진-삼진 매핑을 위한 하드웨어보다 훨씬 덜 복잡한 100개 게이트의 범위 내의 로직 게이트들을 사용한다.The mapping described in some embodiments is a 19-12 mapping that takes 19 binary bits and maps them to 12 ternary symbols (or treats) using a look-up table (LUT). The theoretical storage limit for each 3-level memory cell is Log2(3) = 1.5849 bits. In some embodiments, the transform causes 1.5833 bits to be mapped to one ternary symbol, which is closer to the theoretical limit of 1.5849 bits per cell (bpc). In some embodiments, the hardware implementation of this mapping uses logic gates in the range of 100 gates, which is much less complex than the hardware for a typical binary-to-ternary mapping.

실시예들은 3-레벨 메모리(예를 들어, 3-레벨 NAND, 3-레벨 상변화 메모리, 등)에 저장하는 것에 관련하여 설명되지만, 실시예들은 이로 한정되지 않는다. 일부 실시예들에서, 6-레벨 프로그래밍에 대해, 19-12 매핑은 다음과 같이 일반화될 수 있다. 예를 들어, 6-레벨 프로그래밍의 레벨들은 2개의 그룹 - L0, L1 및 L2의 제1 그룹과 L3, L4 및 L5의 제2 그룹으로 분할되며, 여기서 'L'은 레벨을 나타낸다. 일부 실시예들에서, 그룹(즉, 제1 그룹 또는 제2 그룹)을 결정하기 위해 하나의 비트가 사용되고, 그 후 19-12 맵은 그룹의 3개의 레벨 내에 1.583 bpc를 저장하는 데 사용된다. 이러한 실시예들에 의해, 2.583 bpc의 저장이 달성된다. 다양한 실시예들에서 설명된 방식은 2 또는 3 레벨의 임의의 배수의 프로그래밍으로 확장될 수 있다. 예를 들어, 9-레벨 프로그래밍, 12-레벨 프로그래밍, 18-레벨 프로그래밍, 27-레벨 프로그래밍 등.The embodiments are described with respect to storage in a 3-level memory (eg, 3-level NAND, 3-level phase change memory, etc.), but embodiments are not limited thereto. In some embodiments, for 6-level programming, the 19-12 mapping can be generalized as follows. For example, the levels of 6-level programming are divided into two groups-a first group of L0, L1 and L2 and a second group of L3, L4 and L5, where'L' represents the level. In some embodiments, one bit is used to determine the group (ie, the first group or the second group), and then the 19-12 map is used to store 1.583 bpc within the three levels of the group. By these embodiments, a storage of 2.583 bpc is achieved. The manner described in various embodiments can be extended to programming of any multiple of 2 or 3 levels. For example, 9-level programming, 12-level programming, 18-level programming, 27-level programming, etc.

이하의 설명에서는, 본 개시의 실시예들의 더 철저한 설명을 제공하기 위해 다수의 상세 사항들이 논의된다. 그러나, 본 기술분야의 통상의 기술자에게는, 본 개시의 실시예들이 이러한 특정 상세 사항들 없이도 실시될 수 있다는 점이 명백할 것이다. 다른 경우들에서는, 본 개시의 실시예들을 불명료하게 하는 것을 회피하기 위해서, 잘 알려진 구조들 및 디바이스들이, 상세하게 도시되기보다는, 블록도 형태로 도시된다.In the following description, a number of details are discussed to provide a more thorough description of embodiments of the present disclosure. However, it will be apparent to those skilled in the art that embodiments of the present disclosure may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the embodiments of the present disclosure.

실시예들의 대응 도면들에서, 신호들은 라인들로 표현된다는 점에 주목하자. 일부 라인들은, 더 많은 구성 신호 경로들을 나타내기 위해, 더 두꺼울 수 있으며, 및/또는, 주요 정보 흐름 방향을 표시하기 위해, 하나 이상의 단부에 화살표들을 가질 수 있다. 이러한 표시들은 제한하려는 것이 아니다. 오히려, 라인들은 회로 또는 로직 유닛의 더 쉬운 이해를 촉진하기 위해 하나 이상의 예시적인 실시예들과 관련하여 사용된다. 임의의 표현된 신호는, 설계 요구사항들 또는 선호도들에 의해 지시되는 바와 같이, 어느 한 방향으로 이동할 수 있고 임의의 적합한 타입의 신호 방식으로 구현될 수 있는 하나 이상의 신호들을 실제로 포함할 수 있다.Note that in the corresponding figures of the embodiments, signals are represented by lines. Some lines may be thicker, to indicate more constituent signal paths, and/or may have arrows at one or more ends to indicate the main information flow direction. These indications are not intended to be limiting. Rather, lines are used in connection with one or more exemplary embodiments to facilitate easier understanding of a circuit or logic unit. Any represented signal may actually include one or more signals that may move in either direction and may be implemented in any suitable type of signaling scheme, as dictated by design requirements or preferences.

명세서 전체를 통해, 및 청구항들에서, 용어 "접속된"은, 임의의 중간 디바이스도 없이, 접속이 이루어지는 물체들 간의 직접적인 전기 접속을 의미한다. 용어 "결합된"은, 접속이 이루어지는 물체들 간의 직접적인 전기 접속 또는 하나 이상의 수동 또는 능동 중간 디바이스들을 통한 간접 접속을 의미한다. 용어 "회로"는, 원하는 기능을 제공하기 위해 서로 협력하도록 배열된 하나 이상의 수동 및/또는 능동 컴포넌트를 의미한다. 용어 "신호"는 적어도 하나의 전류 신호, 전압 신호, 또는 데이터/클록 신호를 의미한다. 단수 표현("a", "an" 및 "the")의 의미는 복수의 참조를 포함한다. "에서(in)"의 의미는 "에서(in)" 및 "상에(on)"를 포함한다.Throughout the specification and in the claims, the term “connected” means a direct electrical connection between objects to which the connection is made, without any intermediate device. The term "coupled" means a direct electrical connection between the objects to which the connection is made or an indirect connection through one or more passive or active intermediate devices. The term “circuit” means one or more passive and/or active components arranged to cooperate with each other to provide a desired function. The term “signal” means at least one current signal, voltage signal, or data/clock signal. The meaning of the singular expressions "a", "an" and "the" includes plural references. The meaning of "in" includes "in" and "on".

"실질적으로(substantially)", "근접한(close)", "대략(approximately)", "근처의(near)" 및 "약(about)"이라는 용어들은 일반적으로 목표 값의 ±20% 내에 있는 것을 말한다. 달리 특정되지 않는 한, 공통 대상을 설명하기 위해 서수 형용사 "제1", "제2" 및 "제3" 등을 이용하는 것은, 유사한 대상들의 상이한 경우들이 언급되고 있다는 것을 나타낼 뿐이며, 이렇게 설명된 대상들이, 시간적으로, 공간적으로, 순위적으로 또는 임의의 다른 방식으로, 주어진 순서로 있어야 한다는 것을 암시하려고 하는 것은 아니다.The terms "substantially", "close", "approximately", "near" and "about" are generally within ±20% of the target value. Say. Unless otherwise specified, the use of the ordinal adjectives “first”, “second” and “third”, etc. to describe a common object only indicates that different instances of similar objects are being mentioned, and thus described object It is not intended to imply that they must be in a given order, either temporally, spatially, ranking or in any other way.

도 1은 본 개시의 일부 실시예들에 따라, 이진을 삼진으로 그리고 역으로 매핑하기 위해 LUT들을 사용하는 하드웨어 아키텍처(100)를 도시한다. 일부 실시예들에서, 아키텍처(100)는 제1 로직(101), 제1 LUT(102), 버퍼(들)(103), 제2 로직(104), 및 제2 LUT(105)를 포함한다. 일부 실시예들에서, 제1 로직(101)은 이진 입력을 삼진 기호 출력으로 변환하기 위해 제1 LUT(102)에 액세스하는 조합 로직 및/또는 FSM(finite state machine)을 포함한다.1 shows a hardware architecture 100 using LUTs to map binary to ternary and vice versa, in accordance with some embodiments of the present disclosure. In some embodiments, the architecture 100 includes a first logic 101, a first LUT 102, a buffer(s) 103, a second logic 104, and a second LUT 105. . In some embodiments, the first logic 101 includes combinatorial logic and/or a finite state machine (FSM) that accesses the first LUT 102 to convert a binary input into a three-digit symbol output.

일부 실시예들에서, 제1 로직(101)은 삼진 출력 값을 0으로 초기화하는 로직을 포함한다. 일부 실시예들에서, 제1 로직(101)은 그 후 19-비트 튜플(즉, 이진 입력)에서 1들의 위치를 체크한다. 일부 실시예들에서, 어디든 이진 입력에서 1이 검출되는 곳에서, 그의 삼진 표현이 제1 LUT(102)로부터 판독되고 (처음에 0으로 초기화된) 삼진 값에 가산된다. 제1 LUT(102)는 일부 실시예들에 따라, 도 2를 참조하여 설명된다. 다시 도 1을 참조하면, 일부 실시예들에서, 가산은 삼진 도메인에서 일어난다. 일부 실시예들에서, 19-비트 튜플 내의 모든 1들이 고려될 때, 12-삼진 기호 값이 획득되어 삼진 출력으로서 제공된다.In some embodiments, the first logic 101 includes logic to initialize the ternary output value to zero. In some embodiments, the first logic 101 then checks the position of 1s in a 19-bit tuple (ie, binary input). In some embodiments, wherever a 1 is detected in the binary input, its ternary representation is read from the first LUT 102 and added to the ternary value (which is initially initialized to zero). The first LUT 102 is described with reference to FIG. 2, according to some embodiments. Referring back to Figure 1, in some embodiments, the addition occurs in the ternary domain. In some embodiments, when all 1s in the 19-bit tuple are considered, a 12-triple symbol value is obtained and provided as a ternary output.

일부 실시예들에서, 상기 제2 로직(104)은 이진 출력을 0으로 초기화하는 로직을 포함한다. 일부 실시예들에서, 상기 제2 로직(104)은 그 후 12-트리트 기호(즉, 버퍼링된 삼진 출력)에서 1들의 위치를 체크한다. 일부 실시예들에서, 어디든 버퍼링된 삼진 출력에서 1이 검출되는 곳에서, 그의 이진 표현이 제2 LUT(105)로부터 판독되고 (처음에 0으로 초기화된) 이진 값에 가산된다. 제2 LUT(105)는 일부 실시예들에 따라, 도 3을 참조하여 설명된다. 다시 도 1을 참조하면, 일부 실시예들에서, 가산은 이진 도메인에서 일어난다. 일부 실시예들에서, 12-트리트 기호 내의 모든 1들이 고려될 때, 19-비트 이진 값이 획득되고 이진 출력으로서 제공된다. 제2 로직(104)의 하드웨어 구현은 제1 로직(101)의 하드웨어 구현과 유사할 수 있다.In some embodiments, the second logic 104 includes logic to initialize the binary output to zero. In some embodiments, the second logic 104 then checks the position of 1s in the 12-treat symbol (ie, buffered strikeout output). In some embodiments, wherever a 1 is detected in the buffered ternary output, its binary representation is read from the second LUT 105 and added to the binary value (which is initially initialized to 0). The second LUT 105 is described with reference to FIG. 3, according to some embodiments. Referring again to Figure 1, in some embodiments, the addition occurs in the binary domain. In some embodiments, when all 1s in the 12-treat symbol are considered, a 19-bit binary value is obtained and provided as a binary output. The hardware implementation of the second logic 104 may be similar to the hardware implementation of the first logic 101.

이들 매핑을 사용하여, 일부 실시예들은 기록 동작 동안 인코더에서 이진 데이터를 삼진 도메인으로 효율적으로 변환할 수 있고, 판독 동작 동안 디코더에서 삼진 데이터를 이진 형태로 효율적으로 변환할 수 있다. 일부 실시예들에서, 19-12 매핑은 1.585 bpc의 이론적 한계로의 가장 효율적인 매핑을 제공한다.Using these mappings, some embodiments can efficiently convert binary data to the ternary domain at the encoder during a write operation, and efficiently convert the ternary data to binary form at the decoder during a read operation. In some embodiments, 19-12 mapping provides the most efficient mapping to the theoretical limit of 1.585 bpc.

도 2는 본 개시의 일부 실시예들에 따라, 19-비트 이진 입력 및 2의 거듭제곱의 삼진 표현을 갖는 12 트리트 삼진 기호 출력을 갖는 LUT(200)(예를 들어, 제1 LUT(102))를 도시한다. 임의의 다른 도면의 요소들과 동일한 참조 번호들(또는 명칭들)을 갖는 도 2의 그 요소들은 설명된 것과 유사한 임의의 방식으로 동작 또는 기능할 수 있지만, 그러한 것으로 한정되지 않는다는 점에 주목한다. 일부 실시예들에서, LUT(200)는 0에서 18까지 2의 모든 거듭제곱에 대해 삼진으로 2의 거듭제곱에 대응하는 19개의 항목을 갖는다.2 shows a LUT 200 (e.g., a first LUT 102) having a 19-bit binary input and a 12-treat ternary symbol output with a ternary representation of a power of 2, according to some embodiments of the present disclosure. ). It is noted that those elements of FIG. 2 having the same reference numbers (or names) as those of any other figure may operate or function in any manner similar to that described, but are not limited to such. In some embodiments, LUT 200 has 19 items corresponding to a power of 2 in ternary for every power of 2 from 0 to 18.

일부 실시예들에서, LUT(200)는 비휘발성 메모리로 구현된다. 비휘발성 메모리들의 예들은 상변화 메모리(PCM), 3차원 교차점 메모리, 저항성 메모리, 나노와이어 메모리, FeTRAM(ferro-electric transistor random access memory), NAND 또는 NOR와 같은 플래시 메모리, 멤리스터(memristor) 기술을 통합하는 자기 저항성 랜덤 액세스(MRAM) 메모리 기술, 스핀 전달 토크(STT)-MRAM 등이다. 다른 실시예들에서, LUT(200)는 다른 타입의 저장 회로들로 구현된다.In some embodiments, LUT 200 is implemented with non-volatile memory. Examples of nonvolatile memories include phase change memory (PCM), three-dimensional cross-point memory, resistive memory, nanowire memory, ferro-electric transistor random access memory (FeTRAM), flash memory such as NAND or NOR, and memristor technology. Incorporating magneto-resistive random access (MRAM) memory technology, spin transfer torque (STT)-MRAM, and more. In other embodiments, the LUT 200 is implemented with different types of storage circuits.

도 3은 본 개시의 일부 실시예들에 따라, 12 트리트 삼진 기호 입력 및 3의 거듭제곱의 이진 표현을 갖는 19 비트 이진 출력을 갖는 LUT(300)(예를 들어, 제2 LUT(105))를 도시한다. 임의의 다른 도면의 요소들과 동일한 참조 번호들(또는 명칭들)을 갖는 도 3의 그 요소들은 설명된 것과 유사한 임의의 방식으로 동작 또는 기능할 수 있지만, 그러한 것으로 한정되지 않는다는 점에 주목한다. 일부 실시예들에서, LUT(300)는 0에서 11까지 3의 거듭제곱에 대응하는 12개의 항목을 갖는다. 일부 실시예들에서, LUT(300)는 비휘발성 메모리로 구현된다. 다른 실시예에서, LUT(300)는 다른 타입의 저장 회로들로 구현된다.3 shows a LUT 300 (e.g., a second LUT 105) having a 12-treat ternary symbol input and a 19-bit binary output with a binary representation of a power of 3, according to some embodiments of the present disclosure. Shows. It is noted that those elements of FIG. 3 having the same reference numbers (or names) as those of any other figure may operate or function in any manner similar to that described, but are not limited to such. In some embodiments, LUT 300 has 12 items corresponding to powers of 3 from 0 to 11. In some embodiments, LUT 300 is implemented with non-volatile memory. In another embodiment, LUT 300 is implemented with different types of storage circuits.

도 4는 본 개시의 일부 실시예들에 따라, 도 1의 하드웨어 아키텍처에 따라 다중 레벨 메모리(예를 들어, 3-레벨 메모리)에 데이터를 저장하는 메모리 아키텍처(400)를 도시한다. 임의의 다른 도면의 요소들과 동일한 참조 번호들(또는 명칭들)을 갖는 도 4의 그 요소들은 설명된 것과 유사한 임의의 방식으로 동작 또는 기능할 수 있지만, 그러한 것으로 한정되지 않는다는 점에 주목한다.FIG. 4 shows a memory architecture 400 for storing data in a multilevel memory (eg, 3-level memory) according to the hardware architecture of FIG. 1, in accordance with some embodiments of the present disclosure. It is noted that those elements of FIG. 4 having the same reference numbers (or names) as those of any other figure may operate or function in any manner similar to that described, but are not limited to such.

메모리 아키텍처(400)는 일부 실시예들에 따라, SSD(Solid State Drive)일 수 있다. 다른 실시예들에서, 다른 타입의 아키텍처들이 사용될 수 있다. 따라서, 실시예들을 불명료하게 하지 않기 위해, 메모리 아키텍처(400)의 단순화된 버전이 도시된다. 이 기술분야의 기술자는 아키텍처(400)의 완전한 동작을 위해 필요한 다른 로직 및 회로가 있음을 이해할 것이다. 예를 들어, I/O(input/output) 버퍼들(SATA(Serial Advanced Technology Attachment) 인터페이스 등) 및 대응 회로들은 도시되어 있지 않다.The memory architecture 400 may be a solid state drive (SSD), according to some embodiments. In other embodiments, other types of architectures may be used. Thus, in order not to obscure the embodiments, a simplified version of the memory architecture 400 is shown. Those of skill in the art will understand that there are other logic and circuits required for the full operation of architecture 400. For example, input/output (I/O) buffers (Serial Advanced Technology Attachment (SATA) interface, etc.) and corresponding circuits are not shown.

일부 실시예들에서, 메모리 아키텍처(400)는 3-레벨 메모리(401)(예를 들어, 3-레벨 NAND 플래시 메모리, 3-레벨 상변화 메모리(PCM) 등) 및 프로세서(402)(예를 들어, 메모리 제어기)를 포함한다. 메모리(401)는 단일 유닛으로 도시되어 있지만, 그것은 각각이 3-레벨 메모리 셀을 갖는 복수의 비휘발성 메모리 서브유닛을 포함할 수 있다. 일부 실시예들에서, 메모리(401)는 동일한 패키지상의 프로세서(402) 내에 통합될 수 있다. 일부 실시예들에서, 메모리(401)는 별개의 다이상에서 분리될 수 있지만 동일한 패키지상에 또는 상이한 패키지들 상에 있을 수 있다.In some embodiments, the memory architecture 400 includes a three-level memory 401 (e.g., a three-level NAND flash memory, a three-level phase change memory (PCM), etc.) and a processor 402 (e.g. For example, a memory controller). Although memory 401 is shown as a single unit, it may include a plurality of nonvolatile memory subunits, each having a three-level memory cell. In some embodiments, the memory 401 may be integrated within the processor 402 on the same package. In some embodiments, the memory 401 may be separate on a separate die but may be on the same package or on different packages.

일부 메모리들(예를 들어, L06 NAND)에 대해, 비휘발성 메모리 셀(예를 들어, 3-레벨 NAND 셀)은 3 레벨로 프로그래밍된다(즉, 비트들이 3 레벨로 매핑된다). 일부 실시예들은 1.5 비트/셀 프로그래밍 방식을 설명한다. 이것은 2개의 비휘발성 메모리 셀에 3 비트를 프로그래밍하는 것을 포함한다. 2개의 비휘발성 메모리 셀은 9개의 조합을 공동으로 나타낼 수 있다. 조합들 중 하나는 프로그래밍되지 않은 채로 남아 있고 나머지 8개의 조합은 3 비트로 고유하게 매핑된다. 따라서 비휘발성 메모리 셀 당 1.5 비트가 저장된다. 각각의 비휘발성 메모리 셀의 이론적 저장 한계는 실제로 1.5849 비트이다. 따라서 1.5 비트/셀로 저장하는 것은 비효율적이다. 아키텍처(100) 및 SSD(400)는 본 개시의 일부 실시예들에 따라, 1.5849 비트/셀의 저장 한계에 실질적으로 도달하기 위한 하드웨어 및 관련 방법을 설명한다.For some memories (eg, L06 NAND), a nonvolatile memory cell (eg, a 3-level NAND cell) is programmed to 3 levels (ie, bits are mapped to 3 levels). Some embodiments describe a 1.5 bit/cell programming scheme. This involves programming 3 bits into two nonvolatile memory cells. The two nonvolatile memory cells can jointly represent nine combinations. One of the combinations remains unprogrammed and the remaining 8 combinations are uniquely mapped to 3 bits. Thus, 1.5 bits are stored per nonvolatile memory cell. The theoretical storage limit for each nonvolatile memory cell is actually 1.5849 bits. Therefore, storing at 1.5 bits/cell is inefficient. Architecture 100 and SSD 400 describe hardware and associated methods for substantially reaching the storage limit of 1.5849 bits/cell, in accordance with some embodiments of the present disclosure.

일부 실시예들에서, 프로세서(402)는 인코더(403), 디코더(404), 제1 로직(101)(즉, 이진-삼진(Binary to Ternary, B2T) 변환기), 제1 LUT(102), 제2 로직(104)(즉, 삼진-이진(Ternary to Binary, T2B) 변환기), 및 제2 LUT(105)를 포함한다. 일부 실시예들에서, 입력 이진 데이터(data_in)는B2T 변환기(101)에 의해 수신되고 이 변환기는 도 1을 참조하여 설명된 바와 같이 제1 LUT(102)의 매핑을 사용하여 data_in을 삼진 dataT1로 변환한다. 다시 도 4를 참조하면, 일부 실시예들에서, 삼진 dataT1은 메모리(401)에 저장하기 위한 인코딩된 데이터(즉, 인코딩된 레벨 정보)를 생성하는 인코더(403)에 의해 인코딩된다.In some embodiments, the processor 402 includes an encoder 403, a decoder 404, a first logic 101 (i.e., a Binary to Ternary (B2T) converter), a first LUT 102, It includes a second logic 104 (ie, a Ternary to Binary (T2B) converter), and a second LUT 105. In some embodiments, the input binary data (data_in) is received by the B2T converter 101 which converts data_in to ternary dataT1 using the mapping of the first LUT 102 as described with reference to FIG. 1. Convert. Referring again to FIG. 4, in some embodiments, the ternary dataT1 is encoded by an encoder 403 that generates encoded data (ie, encoded level information) for storage in memory 401.

프로세서(402)에 의해 데이터가 요청되면, 인코딩된 데이터가 메모리(401)로부터 검색되어 디코더(404)에 의해 디코딩된다. 디코더(404)의 출력 dataT2는 인코딩된 데이터가 삼진 데이터였기 때문에 삼진 데이터이다. 일부 실시예들에서, dataT2는 T2B 변환기(105)에 의해 수신되며, 이 변환기는 도 1을 참조하여 설명된 바와 같이 제2 LUT(105)의 매핑을 사용하여 dataT2를 이진 출력 data_out으로 변환한다. 여기서, 디코더(404)에 의한 에러 없는 레벨 정보 출력 데이터는 data_out이 T2B 변환기(105)에 의해 이진 도메인로 매핑된다.When data is requested by the processor 402, the encoded data is retrieved from the memory 401 and decoded by the decoder 404. The output dataT2 of the decoder 404 is ternary data because the encoded data was ternary data. In some embodiments, dataT2 is received by a T2B converter 105, which converts dataT2 to a binary output data_out using the mapping of the second LUT 105 as described with reference to FIG. 1. Here, in the error-free level information output data by the decoder 404, data_out is mapped to the binary domain by the T2B converter 105.

다시 도 4를 참조하면, 일부 실시예들에서, 인코더(403)는 저밀도 패리티 체크(Low Density Parity Check, LDPC) 인코더이고 디코더(404)는 LDPC 디코더이다. 다른 실시예들에서, 다른 타입들의 인코딩 및 대응하는 디코딩 방식들이 사용될 수 있다. 예를 들어, BCH(Bose, Chaudhuri, and Hocquenghem) 인코딩 및 대응하는 디코딩 방식이 사용될 수 있다. 일부 실시예들에서, 비-이진 LDPC 코드들은 추가 하드웨어의 비용으로 이진 LDPC 코드들보다 더 우수한 성능을 제공한다. 삼진 코드들의 경우, 일부 실시예들에 따르면, 추가 하드웨어 비용은 최소이다. 일부 실시예들의 잔여 비트 에러율(Residual Bit-Error Rate, RBER) 이득들은 이진 코드들에 비해 현저하다. 예를 들어, 삼진 LDPC 코드들 및 다양한 실시예들을 참조하여 설명된 콤팩트한 이진-삼진 매핑으로 인한 RBER 이득들은 대략 1.53배이고, 2.3e-2의 RBER을 허용한다.Referring back to FIG. 4, in some embodiments, the encoder 403 is a Low Density Parity Check (LDPC) encoder and the decoder 404 is an LDPC decoder. In other embodiments, other types of encoding and corresponding decoding schemes may be used. For example, Bose, Chaudhuri, and Hocquenghem (BCH) encoding and a corresponding decoding scheme may be used. In some embodiments, non-binary LDPC codes provide better performance than binary LDPC codes at the cost of additional hardware. In the case of ternary codes, according to some embodiments, the additional hardware cost is minimal. Residual Bit-Error Rate (RBER) gains of some embodiments are significant compared to binary codes. For example, RBER gains due to ternary LDPC codes and compact binary to ternary mapping described with reference to various embodiments are approximately 1.53 times, allowing an RBER of 2.3e-2.

도 5는 본 개시의 일부 실시예들에 따라, 이진을 삼진으로 그리고 역으로 매핑하는 방법의 흐름도(500)를 도시한다. 임의의 다른 도면의 요소들과 동일한 참조 번호들(또는 명칭들)을 갖는 도 5의 그 요소들은 설명된 것과 유사한 임의의 방식으로 동작 또는 기능할 수 있지만, 그러한 것으로 한정되지 않는다는 점에 주목한다.5 shows a flow diagram 500 of a method of mapping binary to ternary and vice versa, in accordance with some embodiments of the present disclosure. It is noted that those elements of FIG. 5 having the same reference numbers (or names) as those of any other figure may operate or function in any manner similar to that described, but are not limited to such.

도 5를 참조한 흐름도 내의 블록들이 특정 순서로 도시되지만, 동작들의 순서는 수정될 수 있다. 따라서, 도시된 실시예들은 상이한 순서로 수행될 수 있고, 일부 동작들/블록들은 병행하여 수행될 수 있다. 도 5에 열거된 블록들 및/또는 동작들의 일부는 특정 실시예들에 따라 옵션이다. 제시된 블록들의 넘버링은 명료성을 위한 것이며, 다양한 블록들이 발생해야 하는 동작들의 순서를 규정하려는 것은 아니다. 또한, 다양한 흐름들로부터의 동작들이 다양한 조합으로 이용될 수 있다.Although the blocks in the flowchart with reference to FIG. 5 are shown in a specific order, the order of operations may be modified. Accordingly, the illustrated embodiments may be performed in a different order, and some operations/blocks may be performed in parallel. Some of the blocks and/or operations listed in FIG. 5 are optional according to certain embodiments. The numbering of the blocks presented is for clarity, and is not intended to define the order of operations in which various blocks should occur. Also, operations from various flows can be used in various combinations.

블록 501에서, 이진 입력이 제1 로직(101)에 의해 수신된다. 블록 502에서, 이진 입력은 제1 LUT(102)에 따라 제1 로직(101)에 의해 삼진 출력으로 변환되고, 여기서 제1 LUT(102)는 도 2를 참조하여 도시된 바와 같이 19개 이진 비트의 12개 삼진 트리트로의 매핑을 포함한다. 일부 실시예들에서, 제1 로직(101)은 삼진 출력 값을 0으로 초기화한다. 일부 실시예들에서, 제1 로직(101)은 19-비트 이진 입력에서 1들의 위치를 체크한다. 일부 실시예들에서, 어디든 이진 입력에서 1이 검출되는 곳에서, 그의 삼진 표현이 제1 LUT(102)로부터 판독되고 (처음에 0으로 초기화된) 삼진 값에 가산된다. 일부 실시예들에서, 19-비트 이진 입력 내의 모든 1들이 고려될 때, 12-삼진 기호 값이 획득되어 메모리(예를 들어, 메모리(401))에 저장하기 위한 삼진 출력으로서 제공된다.At block 501, a binary input is received by the first logic 101. At block 502, the binary input is converted to a ternary output by the first logic 101 according to the first LUT 102, where the first LUT 102 is 19 binary bits as shown with reference to FIG. Includes a mapping of 12 ternary treatments. In some embodiments, the first logic 101 initializes the ternary output value to zero. In some embodiments, the first logic 101 checks the position of 1s in the 19-bit binary input. In some embodiments, wherever a 1 is detected in the binary input, its ternary representation is read from the first LUT 102 and added to the ternary value (which is initially initialized to zero). In some embodiments, when all 1s in the 19-bit binary input are considered, a 12-triple symbol value is obtained and provided as a ternary output for storage in a memory (eg, memory 401).

다시 도 5를 참조하면, 블록 503에서, 삼진 출력이 메모리(예를 들어, 메모리(401))로부터 검색되어 제2 로직(104)에 제공된다. 블록 504에서, 제2 로직(104)은 제2 LUT(105)에 따라 삼진 출력을 이진 출력으로 변환하고, 여기서 제2 LUT(105)는 도 3을 참조하여 설명된 바와 같이 12개 삼진 트리트의 19개 이진 비트로의 매핑을 포함한다.Referring again to FIG. 5, at block 503, a struck out output is retrieved from memory (eg, memory 401) and provided to second logic 104. At block 504, the second logic 104 converts the ternary output to a binary output according to the second LUT 105, where the second LUT 105 is Includes mapping to 19 binary bits.

일부 실시예들에서, 상기 제2 로직(104)은 이진 출력을 0으로 초기화하는 로직을 포함한다. 일부 실시예들에서, 상기 제2 로직(104)은 그 후 12-트리트 기호(즉, 메모리(401)로부터 검색된 삼진 출력)에서 1들의 위치를 체크한다. 일부 실시예들에서, 어디든 삼진 출력에서 1이 검출되는 곳에서, 그의 이진 표현이 제2 LUT(105)로부터 판독되고 (처음에 0으로 초기화된) 이진 값에 가산된다. 일부 실시예들에서, 가산은 이진 도메인에서 일어난다. 일부 실시예들에서, 12-트리트 기호 내의 모든 1들이 고려될 때, 19-비트 이진 값이 획득되어 이진 출력으로서 제공된다.In some embodiments, the second logic 104 includes logic to initialize the binary output to zero. In some embodiments, the second logic 104 then checks the position of 1s in the 12-treat symbol (ie, the ternary output retrieved from the memory 401). In some embodiments, wherever a 1 is detected in the ternary output, its binary representation is read from the second LUT 105 and added to the binary value (which is initially initialized to 0). In some embodiments, the addition occurs in the binary domain. In some embodiments, when all 1s in the 12-treat symbol are considered, a 19-bit binary value is obtained and provided as a binary output.

도 6은 일부 실시예들에 따라, 이진을 삼진으로 그리고 역으로 매핑하는 장치를 갖는 스마트 디바이스 또는 컴퓨터 시스템 또는 SoC(System-on-Chip)를 도시한다. 임의의 다른 도면의 요소들과 동일한 참조 번호들(또는 명칭들)을 갖는 도 6의 그 요소들은 설명된 것과 유사한 임의의 방식으로 동작 또는 기능할 수 있지만, 그러한 것으로 한정되지 않는다는 점에 주목한다.6 illustrates a smart device or computer system or System-on-Chip (SoC) having an apparatus for mapping binary to ternary and vice versa, in accordance with some embodiments. It is noted that those elements of FIG. 6 having the same reference numbers (or names) as those of any other figure may operate or function in any manner similar to that described, but are not limited to such.

도 6은 평탄 표면 인터페이스 커넥터들이 이용될 수 있는 모바일 디바이스의 실시예의 블록도를 도시한다. 일부 실시예들에서, 컴퓨팅 디바이스(1600)는, 컴퓨팅 태블릿, 모바일 폰 또는 스마트-폰, 무선-가능형 e-리더, 또는 다른 무선 모바일 디바이스와 같은 모바일 컴퓨팅 디바이스를 나타낸다. 특정 컴포넌트들이 일반적으로 도시되며, 이러한 디바이스의 모든 컴포넌트들이 컴퓨팅 디바이스(1600)에 도시된 것은 아니라는 점이 이해될 것이다.6 shows a block diagram of an embodiment of a mobile device in which flat surface interface connectors may be used. In some embodiments, computing device 1600 represents a mobile computing device, such as a computing tablet, mobile phone or smart-phone, wireless-enabled e-reader, or other wireless mobile device. It will be appreciated that certain components are shown generally, and not all components of such a device are shown in computing device 1600.

일부 실시예들에서, 컴퓨팅 디바이스(1600)는 논의된 일부 실시예들에 따라, 이진을 삼진으로 그리고 역으로 매핑하는 장치를 갖는 제1 프로세서(1610)를 포함한다. 컴퓨팅 디바이스(1600)의 다른 블록들은 또한 일부 실시예들에 따라 이진을 삼진으로 그리고 역으로 매핑하는 장치를 포함할 수 있다. 본 개시의 다양한 실시예들은 시스템 실시예가 무선 디바이스, 예를 들어 셀 폰 또는 개인 휴대 정보 단말기에 통합될 수 있도록 무선 인터페이스와 같은 1670 내의 네트워크 인터페이스를 또한 포함할 수 있다.In some embodiments, computing device 1600 includes a first processor 1610 having an apparatus for mapping binary to ternary and vice versa, in accordance with some embodiments discussed. Other blocks of computing device 1600 may also include an apparatus for mapping binary to ternary and vice versa in accordance with some embodiments. Various embodiments of the present disclosure may also include a network interface in 1670, such as a wireless interface, such that a system embodiment may be incorporated into a wireless device, for example a cell phone or personal digital assistant.

일 실시예에서, 프로세서(1610)(및/또는 프로세서(1690))는, 마이크로프로세서들, 애플리케이션 프로세서들, 마이크로컨트롤러들, 프로그램 가능 로직 디바이스들, 또는 다른 처리 수단과 같은 하나 이상의 물리적 디바이스들을 포함할 수 있다. 프로세서(1610)에 의해 수행되는 처리 동작들은, 애플리케이션 및/또는 디바이스 기능들이 실행되는 운영 플랫폼 또는 운영 체제의 실행을 포함한다. 이러한 처리 동작들은 인간 사용자와의 또는 다른 디바이스들과의 I/O(input/output)에 관련된 동작들, 전력 관리에 관련된 동작들, 및/또는 컴퓨팅 디바이스(1600)를 또 다른 디바이스에 접속하는 것에 관련된 동작들을 포함한다. 이러한 처리 동작들은 오디오 I/O 및/또는 디스플레이 I/O에 관련된 동작들을 또한 포함할 수 있다.In one embodiment, processor 1610 (and/or processor 1690) includes one or more physical devices such as microprocessors, application processors, microcontrollers, programmable logic devices, or other processing means. can do. Processing operations performed by the processor 1610 include execution of an operating platform or operating system on which application and/or device functions are executed. These processing operations include operations related to input/output (I/O) with a human user or with other devices, operations related to power management, and/or connecting computing device 1600 to another device. Includes related actions. These processing operations may also include operations related to audio I/O and/or display I/O.

일 실시예에서, 컴퓨팅 디바이스(1600)는, 컴퓨팅 디바이스에 오디오 기능들을 제공하는 것과 관련된 하드웨어(예를 들어, 오디오 하드웨어 및 오디오 회로들) 및 소프트웨어(예를 들어, 드라이버들, 코덱들) 컴포넌트들을 나타내는 오디오 서브시스템(1620)을 포함한다. 오디오 기능들은 스피커 및/또는 헤드폰 출력뿐만 아니라 마이크로폰 입력을 포함할 수 있다. 이러한 기능들을 위한 디바이스들은 컴퓨팅 디바이스(1600) 내로 통합될 수 있거나, 컴퓨팅 디바이스(1600)에 접속될 수 있다. 일 실시예에서, 사용자는 프로세서(1610)에 의해 수신되고 처리되는 오디오 명령들을 제공하는 것에 의해 컴퓨팅 디바이스(1600)와 상호작용한다.In one embodiment, computing device 1600 includes hardware (e.g., audio hardware and audio circuits) and software (e.g., drivers, codecs) components related to providing audio functions to the computing device. Indicative audio subsystem 1620 is included. Audio functions may include speaker and/or headphone output as well as microphone input. Devices for these functions may be integrated into computing device 1600 or may be connected to computing device 1600. In one embodiment, a user interacts with computing device 1600 by providing audio instructions that are received and processed by processor 1610.

디스플레이 서브시스템(1630)은 사용자가 컴퓨팅 디바이스(1600)와 상호작용하기 위한 시각적 및/또는 촉각적 디스플레이를 제공하는 하드웨어(예를 들어, 디스플레이 디바이스들) 및 소프트웨어(예를 들어, 드라이버들) 컴포넌트들을 나타낸다. 디스플레이 서브시스템(1630)은, 사용자에게 디스플레이를 제공하는 데 사용되는 특정 스크린 또는 하드웨어 디바이스를 포함하는 디스플레이 인터페이스(1632)를 포함한다. 일 실시예에서, 디스플레이 인터페이스(1632)는 디스플레이에 관련된 적어도 일부의 처리를 수행하기 위해 프로세서(1610)와 별개인 로직을 포함한다. 일 실시예에서, 디스플레이 서브시스템(1630)은 사용자에게 출력 및 입력 양자 모두를 제공하는 터치 스크린(또는 터치 패드) 디바이스를 포함한다.The display subsystem 1630 is a hardware (e.g., display devices) and software (e.g., drivers) component that provides a visual and/or tactile display for a user to interact with the computing device 1600. Show them. The display subsystem 1630 includes a display interface 1632 that includes a specific screen or hardware device used to present a display to a user. In one embodiment, display interface 1632 includes logic separate from processor 1610 to perform at least some processing related to the display. In one embodiment, display subsystem 1630 includes a touch screen (or touch pad) device that provides both output and input to a user.

I/O 제어기(1640)는 사용자와의 상호작용에 관련된 하드웨어 디바이스들 및 소프트웨어 컴포넌트들을 나타낸다. I/O 제어기(1640)는 오디오 서브시스템(1620) 및/또는 디스플레이 서브시스템(1630)의 일부인 하드웨어를 관리하도록 동작될 수 있다. 또한, I/O 제어기(1640)는, 그것을 통해 사용자가 시스템과 상호작용할 수 있는 컴퓨팅 디바이스(1600)에 접속하는 추가적인 디바이스들에 대한 접속 포인트를 도시한다. 예를 들어, 컴퓨팅 디바이스(1600)에 부착될 수 있는 디바이스로는, 마이크로폰 디바이스, 스피커 또는 스테레오 시스템, 비디오 시스템 또는 기타의 디스플레이 디바이스, 키보드 또는 키패드 디바이스, 또는 카드 리더 또는 다른 디바이스 등의 특정 응용에서 사용하기 위한 다른 I/O 디바이스가 포함될 수 있다.I/O controller 1640 represents hardware devices and software components related to interaction with a user. I/O controller 1640 may be operated to manage hardware that is part of audio subsystem 1620 and/or display subsystem 1630. In addition, the I/O controller 1640 shows a point of connection for additional devices that connect to the computing device 1600 through which a user can interact with the system. For example, devices that can be attached to the computing device 1600 include a microphone device, a speaker or stereo system, a video system or other display device, a keyboard or keypad device, or in a specific application such as a card reader or other device. Other I/O devices may be included for use.

위에 언급된 바와 같이, I/O 제어기(1640)는 오디오 서브시스템(1620) 및/또는 디스플레이 서브시스템(1630)과 상호작용할 수 있다. 예를 들어, 마이크로폰 또는 다른 오디오 디바이스를 통한 입력은 컴퓨팅 디바이스(1600)의 하나 이상의 애플리케이션들 또는 기능들에 입력 또는 명령들을 제공할 수 있다. 또한, 오디오 출력은 디스플레이 출력 대신에, 또는 디스플레이 출력에 가산적으로 제공될 수 있다. 또 다른 예에서, 디스플레이 서브시스템(1630)이 터치 스크린을 포함하면, 디스플레이 디바이스는 I/O 제어기(1640)에 의해 적어도 부분적으로 관리될 수 있는 입력 디바이스로서의 역할도 한다. I/O 제어기(1640)에 의해 관리되는 I/O 기능들을 제공하는 추가적인 버튼들 또는 스위치들이 컴퓨팅 디바이스(1600) 상에 또한 존재할 수 있다.As mentioned above, I/O controller 1640 may interact with audio subsystem 1620 and/or display subsystem 1630. For example, input through a microphone or other audio device may provide input or instructions to one or more applications or functions of computing device 1600. Further, the audio output may be provided instead of the display output or in addition to the display output. In another example, if display subsystem 1630 includes a touch screen, the display device also serves as an input device that can be at least partially managed by I/O controller 1640. Additional buttons or switches may also exist on computing device 1600 that provide I/O functions managed by I/O controller 1640.

일 실시예에서, I/O 제어기(1640)는, 가속도계들, 카메라들, 광 센서들 또는 다른 환경 센서들, 또는 컴퓨팅 디바이스(1600)에 포함될 수 있는 다른 하드웨어와 같은 디바이스들을 관리한다. 입력은(노이즈에 대한 필터링, 밝기 검출을 위한 디스플레이들의 조정, 카메라에 대한 플래시의 적용, 또는 다른 피처들과 같이) 그 동작들에 영향을 주기 위해 환경적 입력을 시스템에 제공하는 것뿐만 아니라, 직접적인 사용자 상호작용의 일부일 수 있다.In one embodiment, I/O controller 1640 manages devices such as accelerometers, cameras, light sensors or other environmental sensors, or other hardware that may be included in computing device 1600. The input (such as filtering for noise, adjusting displays for brightness detection, applying flash to a camera, or other features), as well as providing environmental input to the system to influence its actions, It can be part of a direct user interaction.

일 실시예에서, 컴퓨팅 디바이스(1600)는, 배터리 전력 사용, 배터리의 충전, 및 전력 절감 동작에 관련된 특징들을 관리하는 전력 관리(1650)를 포함한다. 메모리 서브시스템(1660)은 컴퓨팅 디바이스(1600)에 정보를 저장하는 메모리 디바이스들을 포함한다. 메모리는 비휘발성(메모리 디바이스에 대한 전력이 차단되는 경우 상태가 변화하지 않음) 및/또는 휘발성(메모리 디바이스에 대한 전력이 차단되는 경우 상태가 불확정적임) 메모리 디바이스들을 포함할 수 있다. 메모리 서브시스템(1660)은 애플리케이션 데이터, 사용자 데이터, 음악, 사진, 문서, 또는 다른 데이터뿐만 아니라 컴퓨팅 디바이스(1600)의 애플리케이션들 및 기능들의 실행과 관련된 시스템 데이터(장기적이거나 임시적임)를 저장할 수 있다.In one embodiment, computing device 1600 includes power management 1650 that manages battery power usage, charging of the battery, and features related to power saving operations. Memory subsystem 1660 includes memory devices that store information on computing device 1600. The memory may include non-volatile (state does not change when power to the memory device is cut off) and/or volatile (state is indeterminate when power to the memory device is cut off) memory devices. The memory subsystem 1660 may store application data, user data, music, photos, documents, or other data, as well as system data (long term or temporary) related to the execution of applications and functions of the computing device 1600. .

실시예의 요소들은 또한 컴퓨터 실행가능 명령어들(예를 들어, 본 명세서에서 논의된 임의의 다른 프로세스들을 구현하기 위한 명령들)을 저장하기 위한 머신 판독가능 매체(예를 들어, 메모리(1660))로서 제공된다. 이 머신 판독가능 매체(예를 들어, 메모리(1660))는, 플래시 메모리, 광 디스크들, CD-ROM들, DVD ROM들, RAM들, EPROM들, EEPROM들, 자기 또는 광학 카드들, 상변화 메모리(PCM), 또는 전자적 또는 컴퓨터 실행가능 명령어들을 저장하기에 적합한 다른 타입의 머신 판독가능 매체를 포함할 수 있지만, 이에 한정되는 것은 아니다. 예를 들어, 본 개시의 실시예들은 통신 링크(예를 들어, 모뎀 또는 네트워크 접속)를 경유하는 데이터 신호들에 의해 원격 컴퓨터(예를 들어, 서버)로부터 요청 컴퓨터(예를 들어, 클라이언트)에 전송될 수 있는 컴퓨터 프로그램(예를 들어, BIOS)으로서 다운로드될 수 있다.Elements of the embodiment may also be used as a machine-readable medium (e.g., memory 1660) for storing computer-executable instructions (e.g., instructions for implementing any other processes discussed herein). Is provided. This machine-readable medium (e.g., memory 1660) includes flash memory, optical disks, CD-ROMs, DVD ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, phase change Memory (PCM), or other type of machine-readable medium suitable for storing electronic or computer-executable instructions, but is not limited thereto. For example, embodiments of the present disclosure may be directed from a remote computer (e.g., a server) to a requesting computer (e.g., a client) by data signals via a communication link (e.g., modem or network connection). It can be downloaded as a computer program (eg BIOS) that can be transferred.

접속성(connectivity)(1670)은, 컴퓨팅 디바이스(1600)가 외부 디바이스들과 통신하는 것을 가능하게 하는 하드웨어 디바이스들(예를 들어, 무선 및/또는 유선 커넥터들 및 통신 하드웨어) 및 소프트웨어 컴포넌트들(예를 들어, 드라이버들, 프로토콜 스택들)을 포함한다. 컴퓨팅 디바이스(1600)는, 헤드셋들, 프린터들, 또는 다른 디바이스들과 같은 주변 장치들뿐만 아니라, 다른 컴퓨팅 디바이스들, 무선 액세스 포인트들 또는 기지국들과 같은 별개의 디바이스들일 수 있다.Connectivity 1670 includes hardware devices (e.g., wireless and/or wired connectors and communication hardware) and software components that enable computing device 1600 to communicate with external devices. For example, drivers, protocol stacks). Computing device 1600 may be peripheral devices such as headsets, printers, or other devices, as well as separate devices such as other computing devices, wireless access points or base stations.

접속성(1670)은 다수의 상이한 타입의 접속성을 포함할 수 있다. 일반화하기 위해서, 컴퓨팅 디바이스(1600)는 셀룰러 접속성(1672) 및 무선 접속성(1674)을 갖는 것으로 도시된다. 셀룰러 접속성(1672)은, GSM(global system for mobile communications) 또는 변형물들이나 파생물들, CDMA(code division multiple access) 또는 변형물들이나 파생물들, TDM(time division multiplexing) 또는 변형물들이나 파생물들, 또는 다른 셀룰러 서비스 표준들과 같은, 무선 캐리어들에 의해 제공되는 셀룰러 네트워크 접속성을 일반적으로 지칭한다. 무선 접속성(또는 무선 인터페이스)(1674)은 셀룰러가 아닌 무선 접속성을 지칭하며, (블루투스(Bluetooth), 니어 필드(Near Field) 등과 같은) 개인 영역 네트워크들, (와이-파이(Wi-Fi)와 같은) 근거리 네트워크들, 및/또는(와이맥스(WiMax)와 같은) 광역 네트워크들, 또는 다른 무선 통신을 포함할 수 있다.Connectivity 1670 may include a number of different types of connectivity. To generalize, the computing device 1600 is shown as having cellular connectivity 1672 and wireless connectivity 1674. Cellular connectivity 1672 is a global system for mobile communications (GSM) or variants or derivatives, code division multiple access (CDMA) or variants or derivatives, time division multiplexing (TDM) or variants or derivatives, Or generally refers to cellular network connectivity provided by wireless carriers, such as other cellular service standards. Wireless connectivity (or wireless interface) 1674 refers to non-cellular wireless connectivity, and personal area networks (such as Bluetooth, Near Field, etc.), (Wi-Fi )), and/or wide area networks (such as WiMax), or other wireless communications.

주변 장치 접속들(1680)은 주변 장치 접속들을 이루는 하드웨어 인터페이스들 및 커넥터들뿐만 아니라, 소프트웨어 컴포넌트들(예를 들어, 드라이버들, 프로토콜 스택들)을 포함한다. 컴퓨팅 디바이스(1600)는 다른 컴퓨팅 디바이스로의 주변 장치들("~로"(1682))일 수 있는 것은 물론, 자신에 접속된 주변 장치들("~로부터의"(1684))을 가질 수 있다는 점을 이해할 것이다. 컴퓨팅 디바이스(1600)는 흔히, 컴퓨팅 디바이스(1600) 상에서 콘텐츠를 관리(예를 들어, 다운로딩 및/또는 업로딩, 변경, 동기화)하는 것 등의 목적을 위해 다른 컴퓨팅 디바이스에 접속하기 위한 "도킹" 커넥터를 가진다. 또한, 도킹 커넥터는, 예를 들어, 시청각 또는 다른 시스템들에 출력되는 콘텐츠를 컴퓨팅 디바이스(1600)가 제어하게 하는 특정 주변 장치들에 컴퓨팅 디바이스(1600)가 접속하게 할 수 있다.Peripheral device connections 1680 include hardware interfaces and connectors that make up the peripheral device connections, as well as software components (eg, drivers, protocol stacks). Computing device 1600 may be peripherals to other computing devices (“from” 1684), as well as having peripherals connected to itself (“from” 1684). I will understand the point. Computing device 1600 is often “docked” to connect to other computing devices for purposes such as managing (eg, downloading and/or uploading, changing, synchronizing) content on computing device 1600. It has a connector. Further, the docking connector may allow the computing device 1600 to connect to certain peripheral devices that allow the computing device 1600 to control content output to, for example, audiovisual or other systems.

전용 도킹 커넥터(proprietary docking connector) 또는 다른 전용 접속 하드웨어에 추가적으로, 컴퓨팅 디바이스(1600)는 공통의 또는 표준-기반의 커넥터들을 통해 주변 장치 접속들(1680)을 이룰 수 있다. 공통 타입들은 USB(Universal Serial Bus) 커넥터(다수의 상이한 하드웨어 인터페이스 중 임의의 것을 포함할 수 있음), MDP(MiniDisplayPort)를 포함하는 디스플레이포트(DisplayPort), HDMI(High Definition Multimedia Interface), Firewire 또는 다른 타입들을 포함할 수 있다.In addition to a proprietary docking connector or other dedicated connection hardware, computing device 1600 may make peripheral connections 1680 through common or standards-based connectors. Common types include Universal Serial Bus (USB) connectors (which may include any of a number of different hardware interfaces), DisplayPort including MiniDisplayPort (MDP), High Definition Multimedia Interface (HDMI), Firewire or other Can contain types.

본 명세서에서 "실시예", "일 실시예", "일부 실시예들", 또는 "다른 실시예들"이라는 언급은, 실시예들과 관련하여 설명된 특정한 특징, 구조, 또는 특성이, 반드시 모든 실시예가 아니라, 적어도 일부 실시예들에 포함된다는 것을 의미한다. "실시예", "일 실시예", 또는 "일부 실시예들"의 다양한 등장들은 모두가 반드시 동일 실시예를 언급하는 것은 아니다. 명세서에서 컴포넌트, 특징, 구조, 또는 특성이 "포함될 수도(may, might)", 또는 "포함될 수(could)" 있다고 진술한다면, 그 특정한 컴포넌트, 특징, 구조, 또는 특성은 포함될 것이 요구되는 것은 아니다. 명세서 또는 청구항에서 "한(a, an)" 요소를 언급한다면, 이것은 그 요소가 단 하나만 있다는 것을 의미하는 것은 아니다. 명세서 또는 청구항에서, "추가적(additional)" 요소를 언급하고 있다면, 그것은 하나보다 많은 추가적 요소가 있다는 것을 배제하지 않는다.Reference herein to “an embodiment”, “one embodiment”, “some embodiments”, or “other embodiments” means that a particular feature, structure, or characteristic described in connection with the embodiments is not necessarily It means that it is included in at least some embodiments, not all embodiments. The various appearances of “an embodiment”, “one embodiment”, or “some embodiments” are not necessarily all referring to the same embodiment. If the specification states that a component, feature, structure, or characteristic is "may, might," or "could", the particular component, feature, structure, or characteristic is not required to be included. . When reference is made to an "a, an" element in the specification or claim, this does not imply that there is only one element. Where reference is made to an “additional” element in the specification or claim, it does not preclude that there are more than one additional element.

또한, 특정한 특징들, 구조들, 기능들, 또는 특성들은 하나 이상의 실시예들에서 임의의 적합한 방식으로 조합될 수 있다. 예를 들어, 제1 실시예는 2개의 실시예들과 관련되는 특정한 피처들, 구조들, 기능들, 또는 특징들이 상호 배타적이지 않다면 어디서든 제2 실시예와 조합될 수 있다.Further, certain features, structures, functions, or characteristics may be combined in any suitable manner in one or more embodiments. For example, the first embodiment can be combined with the second embodiment anywhere as long as certain features, structures, functions, or features related to the two embodiments are not mutually exclusive.

본 개시가 그 구체적인 실시예들과 함께 설명되었지만, 관련분야의 통상의 지식을 가진 자들에게는 전술한 설명을 고려하여 이러한 실시예들의 다수의 대안들, 수정들 및 변형들이 명백할 것이다. 예를 들어, 다른 메모리 아키텍처들, 예를 들어, DRAM(Dynamic RAM)은 논의된 실시예들을 사용할 수 있다. 본 개시의 실시예들은 이러한 대안들, 수정들 및 변형들 모두를 첨부된 청구항들의 폭넓은 범위 내에 들어가는 것으로 포괄하도록 의도된다.While the present disclosure has been described with its specific embodiments, many alternatives, modifications and variations of these embodiments will be apparent to those skilled in the art in view of the foregoing description. For example, other memory architectures, such as Dynamic RAM (DRAM), may use the embodiments discussed. Embodiments of the present disclosure are intended to cover all such alternatives, modifications and variations as falling within the broad scope of the appended claims.

또한, IC(integrated circuit) 칩들 및 다른 컴포넌트들로의 잘 알려진 전력/접지 접속들은, 설명 및 논의를 간단히 하고, 개시를 불명료하게 하지 않기 위해, 제시된 도면들 내에 보여질 수도 있고 그렇지 않을 수도 있다. 또한, 배열들은 블록도 형태로 도시될 수 있는데, 이는 개시를 불명료하게 하는 것을 회피하기 위한 것이며, 또한 이러한 블록도 배열들의 구현에 대한 상세 사항들이 본 개시가 구현될 플랫폼에 매우 의존한다는 사실을 고려한 것이다(즉, 이러한 상세 사항들은 관련분야의 숙련된 자의 이해의 범위 내에 있을 것이다). 구체적인 상세 사항들(예를 들어, 회로들)이 본 개시의 예시적인 실시예들을 설명하기 위해 제시되는 경우, 관련분야의 숙련된 자에게는 본 개시가 이러한 구체적인 상세 사항들 없이도, 또는 이러한 구체적인 상세 사항들을 변경하여 실시될 수 있다는 점이 명백할 것이다. 따라서, 설명은 제한적인 것 대신에 예시적인 것으로 간주되어야 한다.In addition, well-known power/ground connections to integrated circuit (IC) chips and other components may or may not be shown in the figures presented in order to simplify description and discussion, and not to obscure the disclosure. In addition, arrangements may be shown in block diagram form, which is to avoid obscuring the disclosure, and taking into account the fact that the details of implementation of such block diagram arrangements are highly dependent on the platform on which the present disclosure is to be implemented. (I.e., these details will be within the understanding of those skilled in the relevant field). When specific details (e.g., circuits) are presented to describe exemplary embodiments of the present disclosure, to those skilled in the art, the present disclosure may be used without these specific details, or without such specific details. It will be apparent that these can be implemented by changing them. Accordingly, the description should be regarded as illustrative instead of limiting.

하기의 예들은 추가의 실시예들에 관한 것이다. 이러한 예들에서의 상세 사항들은 하나 이상의 실시예에서 어디에서든 사용될 수 있다. 본 명세서에서 설명되는 장치의 모든 옵션인 특징들도 방법 또는 프로세스에 대하여 구현될 수 있다.The following examples relate to further embodiments. The details in these examples may be used anywhere in one or more embodiments. All optional features of the apparatus described herein can also be implemented for a method or process.

예를 들어, 19개 이진 비트의 12개 삼진 트리트로의 매핑을 갖는 제1 LUT; 및 이진 입력을 수신하고 상기 이진 입력을 상기 제1 LUT에 따라 삼진 출력으로 변환하는 제1 로직을 포함하는 장치가 제공된다. 일부 실시예들에서, 상기 장치는 12개 삼진 트리트의 19개 이진 비트로의 매핑을 갖는 제2 LUT; 및 상기 삼진 출력을 수신하고 이를 상기 제2 LUT에 따라 이진 출력으로 변환하는 제2 로직을 포함한다. 일부 실시예들에서, 상기 제1 LUT는 0에서 18까지 2의 거듭제곱에 대해 삼진으로 2의 거듭제곱 값들에 대응하는 19개의 항목을 포함한다.For example, a first LUT having a mapping of 19 binary bits to 12 ternary trees; And first logic for receiving a binary input and converting the binary input to a ternary output according to the first LUT. In some embodiments, the apparatus comprises: a second LUT having a mapping of 12 ternary treats to 19 binary bits; And second logic for receiving the ternary output and converting it to a binary output according to the second LUT. In some embodiments, the first LUT includes 19 items corresponding to power-of-two values ternary to powers of two from 0 to 18.

일부 실시예들에서, 상기 제2 LUT는 0에서 11까지 3의 거듭제곱에 대해 이진으로 3의 거듭제곱 값들에 대응하는 12개의 항목을 포함한다. 일부 실시예들에서, 상기 제1 로직은 상기 삼진 출력을 0으로 초기화하는 로직을 포함한다. 일부 실시예들에서, 상기 제1 로직은, 이진 입력에서 1들의 위치를 결정하는 로직을 포함한다. 일부 실시예들에서, 상기 이진 입력은 19개 이진 비트를 갖는다. 일부 실시예들에서, 상기 제1 로직은 상기 이진 입력에서 1을 검출하는 로직을 포함한다. 일부 실시예들에서, 상기 제1 로직은 상기 이진 입력에서 1들의 위치로부터 1의 대응하는 위치에 따라 삼진 표현을 상기 제1 LUT로부터 판독하는 로직을 포함한다.In some embodiments, the second LUT includes 12 items corresponding to powers of 3 values in binary for powers of 3 from 0 to 11. In some embodiments, the first logic includes logic to initialize the ternary output to zero. In some embodiments, the first logic includes logic to determine the position of 1s in the binary input. In some embodiments, the binary input has 19 binary bits. In some embodiments, the first logic includes logic to detect a 1 in the binary input. In some embodiments, the first logic includes logic to read a ternary representation from the first LUT according to a corresponding position of 1 from a position of 1s in the binary input.

일부 실시예들에서, 상기 제1 로직은 삼진 도메인에서, 상기 삼진 표현을 상기 초기화된 삼진 출력에 가산하여 상기 삼진 출력을 생성하는 가산기를 포함한다. 일부 실시예들에서, 상기 삼진 출력은 12 삼진 기호 값이다. 일부 실시예들에서, 상기 제2 로직은 상기 삼진 출력을 판독하고 상기 이진 출력을 0으로 초기화하는 로직을 포함한다. 일부 실시예들에서, 상기 제2 로직은: 상기 삼진 출력의 상기 12개 삼진 트리트에서 1들의 위치를 결정하는 로직; 상기 삼진 입력에서 1들의 위치로부터 1의 대응하는 위치에 따라 이진 표현을 상기 제2 LUT로부터 판독하는 로직; 및 이진 도메인에서, 상기 이진 표현을 상기 초기화된 이진 출력에 가산하여 상기 이진 출력을 생성하는 가산기를 포함한다.In some embodiments, the first logic includes an adder that generates the ternary output by adding the ternary expression to the initialized ternary output in the ternary domain. In some embodiments, the ternary output is a 12 ternary symbol value. In some embodiments, the second logic includes logic to read the ternary output and initialize the binary output to zero. In some embodiments, the second logic comprises: logic to determine a position of 1s in the 12 strikeout treats of the strikeout output; Logic to read a binary representation from the second LUT according to the corresponding position of 1 from the position of 1s in the ternary input; And an adder for generating the binary output by adding the binary representation to the initialized binary output in the binary domain.

또 다른 예에서, 비휘발성 메모리; 상기 비휘발성 메모리에 결합된 프로세서 - 상기 프로세서는: 19개 이진 비트의 12개 삼진 트리트로의 매핑을 갖는 제1 LUT; 12개 삼진 트리트의 19개 이진 비트로의 매핑을 갖는 제2 LUT; 이진 입력을 수신하고 상기 이진 입력을 상기 제1 LUT에 따라 삼진 출력으로 변환하는 제1 로직; 및 상기 삼진 출력을 수신하고 상기 삼진 출력을 인코딩하여 상기 비휘발성 메모리에 저장하기 위한 인코딩된 삼진 출력을 생성하는 인코더를 포함함 -; 및 상기 프로세서가 또 다른 디바이스와 통신할 수 있게 하는 무선 인터페이스를 포함하는 시스템이 제공된다.In another example, non-volatile memory; A processor coupled to the non-volatile memory, the processor comprising: a first LUT having a mapping of 19 binary bits to 12 ternary trees; A second LUT with a mapping of 12 ternary treats to 19 binary bits; First logic for receiving a binary input and converting the binary input to a ternary output according to the first LUT; And an encoder receiving the ternary output, encoding the ternary output, and generating an encoded ternary output for storage in the non-volatile memory; And a wireless interface that allows the processor to communicate with another device.

일부 실시예들에서, 상기 시스템은 상기 인코딩된 삼진 출력을 디코딩하고 디코딩된 삼진 출력을 생성하는 디코더를 포함한다. 일부 실시예들에서, 상기 시스템은 상기 디코딩된 삼진 출력을 수신하고 이를 상기 제2 LUT에 따라 이진 출력으로 변환하는 제2 로직을 포함한다. 일부 실시예들에서, 상기 인코더는 삼진 LDPC 인코더이고, 상기 디코더는 삼진 LDPC 디코더이다. 일부 실시예들에서, 상기 제1 LUT는 0에서 18까지 2의 거듭제곱에 대해 삼진으로 2의 거듭제곱 값들에 대응하는 19개의 항목을 포함하고, 상기 제2 LUT는 0에서 11까지 3의 거듭제곱에 대해 이진으로 3의 거듭제곱 값들에 대응하는 12개의 항목을 포함한다.In some embodiments, the system includes a decoder that decodes the encoded ternary output and generates a decoded ternary output. In some embodiments, the system includes second logic to receive the decoded ternary output and convert it to a binary output according to the second LUT. In some embodiments, the encoder is a ternary LDPC encoder and the decoder is a ternary LDPC decoder. In some embodiments, the first LUT includes 19 items corresponding to powers of 2 values in ternary for a power of 2 from 0 to 18, and the second LUT is a power of 3 from 0 to 11. Contains 12 items that correspond to powers of 3 values in binary over the square.

또 다른 예에서, 이진 입력을 수신하는 단계; 및 상기 이진 입력을 제1 LUT에 따라 삼진 출력으로 변환하는 단계를 포함하는 방법이 제공되고, 상기 제1 LUT는 19개 이진 비트의 12개 삼진 트리트로의 매핑을 갖는다. 일부 실시예들에서, 상기 방법은: 상기 삼진 출력을 수신하는 단계; 및 상기 삼진 출력을 제2 LUT에 따라 이진 출력으로 변환하는 단계를 포함하고, 상기 제2 LUT는 12개 삼진 트리트의 19개 이진 비트로의 매핑을 갖는다. 일부 실시예들에서, 상기 제1 LUT는 0에서 18까지 2의 거듭제곱에 대해 삼진으로 2의 거듭제곱 값들에 대응하는 19개의 항목을 포함한다. 일부 실시예들에서, 상기 제2 LUT는 0에서 11까지 3의 거듭제곱에 대해 이진으로 3의 거듭제곱 값들에 대응하는 12개의 항목을 포함한다. 일부 실시예들에서, 상기 방법은 상기 삼진 출력을 0으로 초기화하는 단계를 포함한다. 일부 실시예들에서, 상기 방법은 이진 입력에서 1들의 위치를 결정하는 단계를 포함한다. 일부 실시예들에서, 상기 이진 입력은 19개 이진 비트를 갖는다.In yet another example, receiving a binary input; And converting the binary input to a ternary output according to a first LUT, wherein the first LUT has a mapping of 19 binary bits to 12 ternary trees. In some embodiments, the method further comprises: receiving the strikeout output; And converting the ternary output into a binary output according to a second LUT, wherein the second LUT has a mapping of 12 ternary treats to 19 binary bits. In some embodiments, the first LUT includes 19 items corresponding to power-of-two values ternary to powers of two from 0 to 18. In some embodiments, the second LUT includes 12 items corresponding to powers of 3 values in binary for powers of 3 from 0 to 11. In some embodiments, the method includes initializing the ternary output to zero. In some embodiments, the method includes determining the position of 1s in the binary input. In some embodiments, the binary input has 19 binary bits.

일부 실시예들에서, 상기 방법은 상기 이진 입력에서 1을 검출하는 단계를 포함한다. 일부 실시예들에서, 상기 방법은 상기 이진 입력에서 1들의 위치로부터 1의 대응하는 위치에 따라 삼진 표현을 상기 제1 LUT로부터 판독하는 단계를 포함한다. 일부 실시예들에서, 상기 방법은 삼진 도메인에서, 상기 삼진 표현을 상기 초기화된 삼진 출력에 가산하여 상기 삼진 출력을 생성하는 단계를 포함한다. 일부 실시예들에서, 상기 삼진 출력은 12 삼진 기호 값이다. 일부 실시예들에서, 상기 방법은: 상기 삼진 출력을 판독하는 단계; 및 상기 이진 출력을 0으로 초기화하는 단계를 포함한다.In some embodiments, the method includes detecting a 1 in the binary input. In some embodiments, the method includes reading a ternary representation from the first LUT according to a corresponding position of 1 from a position of 1s in the binary input. In some embodiments, the method includes, in a ternary domain, adding the ternary representation to the initialized ternary output to generate the ternary output. In some embodiments, the ternary output is a 12 ternary symbol value. In some embodiments, the method further comprises: reading the struck out output; And initializing the binary output to zero.

일부 실시예들에서, 상기 방법은 상기 삼진 출력의 상기 12개 삼진 트리트에서 1들의 위치를 결정하는 단계를 포함한다. 일부 실시예들에서, 상기 방법은 상기 삼진 입력에서 1들의 위치로부터 1의 대응하는 위치에 따라 이진 표현을 상기 제2 LUT로부터 판독하는 단계를 포함한다. 일부 실시예들에서, 상기 방법은 이진 도메인에서, 상기 이진 표현을 상기 초기화된 이진 출력에 가산하여 상기 이진 출력을 생성하는 단계를 포함한다.In some embodiments, the method includes determining the location of 1s in the 12 strikeout treats of the strikeout output. In some embodiments, the method includes reading a binary representation from the second LUT according to the corresponding position of 1 from the position of 1s in the ternary input. In some embodiments, the method includes, in a binary domain, adding the binary representation to the initialized binary output to generate the binary output.

또 다른 예에서, 이진 입력을 수신하는 수단; 및 상기 이진 입력을 제1 LUT에 따라 삼진 출력으로 변환하는 수단을 포함하는 장치가 제공되고, 상기 제1 LUT는 19개 이진 비트의 12개 삼진 트리트로의 매핑을 갖는다. 일부 실시예들에서, 상기 장치는: 상기 삼진 출력을 수신하는 수단; 및 상기 삼진 출력을 제2 LUT에 따라 이진 출력으로 변환하는 수단을 포함하고, 상기 제2 LUT는 12개 삼진 트리트의 19개 이진 비트로의 매핑을 갖는다. 일부 실시예들에서, 상기 제1 LUT는 0에서 18까지 2의 거듭제곱에 대해 삼진으로 2의 거듭제곱 값들에 대응하는 19개의 항목을 포함한다. 일부 실시예들에서, 상기 제2 LUT는 0에서 11까지 3의 거듭제곱에 대해 이진으로 3의 거듭제곱 값들에 대응하는 12개의 항목을 포함한다.In yet another example, means for receiving a binary input; And means for converting the binary input to a ternary output in accordance with a first LUT, the first LUT having a mapping of 19 binary bits to 12 ternary trees. In some embodiments, the device comprises: means for receiving the strikeout output; And means for converting the ternary output to a binary output according to a second LUT, wherein the second LUT has a mapping of 12 ternary treats to 19 binary bits. In some embodiments, the first LUT includes 19 items corresponding to power-of-two values ternary to powers of two from 0 to 18. In some embodiments, the second LUT includes 12 items corresponding to powers of 3 values in binary for powers of 3 from 0 to 11.

일부 실시예들에서, 상기 장치는 상기 삼진 출력을 0으로 초기화하는 수단을 포함한다. 일부 실시예들에서, 상기 장치는 이진 입력에서 1들의 위치를 결정하는 수단을 포함한다. 일부 실시예들에서, 상기 이진 입력은 19개 이진 비트를 갖는다. 일부 실시예들에서, 상기 장치는 상기 이진 입력에서 1을 검출하는 수단을 포함한다. 일부 실시예들에서, 상기 장치는 상기 이진 입력에서 1들의 위치로부터 1의 대응하는 위치에 따라 삼진 표현을 상기 제1 LUT로부터 판독하는 수단을 포함한다.In some embodiments, the device includes means for initializing the strikeout output to zero. In some embodiments, the apparatus includes means for determining the position of 1s in the binary input. In some embodiments, the binary input has 19 binary bits. In some embodiments, the apparatus includes means for detecting a 1 in the binary input. In some embodiments, the apparatus includes means for reading a ternary representation from the first LUT according to a corresponding position of 1 from a position of 1s in the binary input.

일부 실시예들에서, 상기 장치는 삼진 도메인에서, 상기 삼진 표현을 상기 초기화된 삼진 출력에 가산하여 상기 삼진 출력을 생성하는 수단을 포함한다. 일부 실시예들에서, 상기 삼진 출력은 12 삼진 기호 값이다. 일부 실시예들에서, 상기 장치는: 상기 삼진 출력을 판독하는 수단; 및 상기 이진 출력을 0으로 초기화하는 수단을 포함한다. 일부 실시예들에서, 상기 장치는 상기 삼진 출력의 상기 12개 삼진 트리트에서 1들의 위치를 결정하는 수단을 포함한다. 일부 실시예들에서, 상기 장치는 상기 삼진 입력에서 1들의 위치로부터 1의 대응하는 위치에 따라 이진 표현을 상기 제2 LUT로부터 판독하는 수단을 포함한다. 일부 실시예들에서, 상기 장치는 이진 도메인에서, 상기 이진 표현을 상기 초기화된 이진 출력에 가산하여 상기 이진 출력을 생성하는 수단을 포함한다.In some embodiments, the apparatus includes means for generating the ternary output by adding the ternary representation to the initialized ternary output, in the ternary domain. In some embodiments, the ternary output is a 12 ternary symbol value. In some embodiments, the device comprises: means for reading the strikeout output; And means for initializing the binary output to zero. In some embodiments, the apparatus includes means for determining the location of 1s in the 12 strikeout treats of the strikeout output. In some embodiments, the apparatus includes means for reading a binary representation from the second LUT according to a corresponding position of 1 from a position of 1s in the ternary input. In some embodiments, the apparatus comprises, in the binary domain, means for generating the binary output by adding the binary representation to the initialized binary output.

또 다른 예에서는, 비휘발성 메모리; 상기 비휘발성 메모리에 결합된 프로세서 - 상기 프로세서는 상기 장치에 따른 장치를 포함함 -; 및 상기 프로세서가 또 다른 디바이스와 통신할 수 있게 하는 무선 인터페이스를 포함하는 시스템이 제공된다. 일부 실시예들에서, 상기 비휘발성 메모리는 NAND 메모리 또는 PCM 중 하나이다. 일부 실시예들에서, 상기 시스템은 디스플레이 유닛이 상기 프로세서에 의해 처리된 콘텐츠를 디스플레이할 수 있게 하는 디스플레이 인터페이스를 포함한다.In another example, non-volatile memory; A processor coupled to the non-volatile memory, the processor comprising a device according to the device; And a wireless interface that allows the processor to communicate with another device. In some embodiments, the non-volatile memory is either a NAND memory or a PCM. In some embodiments, the system includes a display interface that enables a display unit to display content processed by the processor.

독자가 본 기술적 개시의 속성 및 요점을 확인할 수 있게 할 요약서가 제공된다. 이러한 요약서는 청구항들의 범위나 의미를 한정하는 데 사용되지 않을 것이라는 이해와 함께 제출된다. 이하의 청구항들은 이로써 상세한 설명에 통합되며, 각각의 청구항은 개별 실시예로서 자체로 독립적이다.A summary is provided to enable the reader to ascertain the nature and points of this technical disclosure. This summary is submitted with the understanding that it will not be used to limit the scope or meaning of the claims. The following claims are hereby incorporated into the detailed description, with each claim standing on its own as a separate embodiment.

Claims (25)

장치로서,
19개 이진 비트의 12개 삼진 트리트(trit)로의 매핑을 갖는 제1 LUT(look-up table) - 상기 제1 LUT는 100개 게이트의 범위 내의 로직 게이트들로서 하드웨어 내에 구현되고, 상기 제1 LUT는 이하를 나타내는 수들을 포함함:
Figure 112020103019729-pct00007

-; 및
상기 제1 LUT에 통신 가능하게 결합된 제1 로직
을 포함하고,
상기 제1 로직은 이진 입력을 수신하고 상기 이진 입력을 상기 제1 LUT에 따라 삼진 출력으로 변환하고, 상기 삼진 출력으로의 변환은 고유하고 무손실인, 장치.
As a device,
A first look-up table (LUT) with mapping of 19 binary bits to 12 triplets-the first LUT is implemented in hardware as logic gates within a range of 100 gates, and the first LUT is Includes numbers representing:
Figure 112020103019729-pct00007

-; And
A first logic communicatively coupled to the first LUT
Including,
Wherein the first logic receives a binary input and converts the binary input to a ternary output according to the first LUT, wherein the conversion to the ternary output is unique and lossless.
제1항에 있어서,
12개 삼진 트리트의 19개 이진 비트로의 매핑을 갖는 제2 LUT; 및
상기 삼진 출력을 수신하고 이를 상기 제2 LUT에 따라 이진 출력으로 변환하는 제2 로직을 포함하고, 상기 이진 출력으로의 변환은 고유하고 무손실인, 장치.
The method of claim 1,
A second LUT with a mapping of 12 ternary treats to 19 binary bits; And
And a second logic for receiving the ternary output and converting it to a binary output according to the second LUT, wherein the conversion to the binary output is unique and lossless.
제1항에 있어서,
상기 제1 LUT는 0에서 18까지 2의 거듭제곱에 대해 삼진으로 2의 거듭제곱 값들에 대응하는 19개의 항목을 포함하는, 장치.
The method of claim 1,
Wherein the first LUT comprises 19 items corresponding to power-of-two values in ternary for powers of two from 0 to 18.
제2항에 있어서,
상기 제2 LUT는 0에서 11까지 3의 거듭제곱에 대해 이진으로 3의 거듭제곱 값들에 대응하는 12개의 항목을 포함하는, 장치.
The method of claim 2,
Wherein the second LUT comprises 12 items corresponding to powers of 3 values in binary for powers of 3 from 0 to 11.
제1항에 있어서,
상기 제1 로직은 상기 삼진 출력을 0으로 초기화하는 로직을 포함하는, 장치.
The method of claim 1,
Wherein the first logic comprises logic to initialize the strikeout output to zero.
제5항에 있어서,
상기 제1 로직은 이진 입력에서 1들의 위치를 결정하는 로직을 포함하는, 장치.
The method of claim 5,
Wherein the first logic comprises logic to determine a position of ones in a binary input.
제6항에 있어서,
상기 이진 입력은 19개 이진 비트를 갖는, 장치.
The method of claim 6,
Wherein the binary input has 19 binary bits.
제6항에 있어서,
상기 제1 로직은 상기 이진 입력에서 1을 검출하는 로직을 포함하는, 장치.
The method of claim 6,
Wherein the first logic comprises logic to detect a 1 in the binary input.
제6항에 있어서,
상기 제1 로직은 상기 이진 입력에서 1들의 위치로부터 1의 대응하는 위치에 따라 삼진 표현을 상기 제1 LUT로부터 판독하는 로직을 포함하는, 장치.
The method of claim 6,
Wherein the first logic comprises logic to read a ternary representation from the first LUT according to a corresponding position of 1 from a position of 1s in the binary input.
제9항에 있어서,
상기 제1 로직은 삼진 도메인에서, 상기 삼진 표현을 상기 초기화된 삼진 출력에 가산하여 상기 삼진 출력을 생성하는 가산기를 포함하는, 장치.
The method of claim 9,
Wherein the first logic comprises an adder for generating the ternary output by adding the ternary representation to the initialized ternary output in the ternary domain.
제10항에 있어서,
상기 삼진 출력은 12 삼진 기호 값인, 장치.
The method of claim 10,
Wherein the ternary output is a 12 ternary symbol value.
제2항에 있어서,
상기 제2 로직은 상기 삼진 출력을 판독하고 상기 이진 출력을 0으로 초기화하는 로직을 포함하는, 장치.
The method of claim 2,
Wherein the second logic includes logic to read the ternary output and initialize the binary output to zero.
제12항에 있어서,
상기 제2 로직은:
상기 삼진 출력의 상기 12개 삼진 트리트에서 1들의 위치를 결정하는 로직;
상기 삼진 출력에서 1들의 위치로부터 1의 대응하는 위치에 따라 이진 표현을 상기 제2 LUT로부터 판독하는 로직; 및
이진 도메인에서, 상기 이진 표현을 상기 초기화된 이진 출력에 가산하여 상기 이진 출력을 생성하는 가산기를 포함하는, 장치.
The method of claim 12,
The second logic is:
Logic to determine positions of 1s in the 12 strikeout treats of the strikeout output;
Logic to read a binary representation from the second LUT according to the corresponding position of 1 from the position of 1s in the ternary output; And
In the binary domain, an adder that generates the binary output by adding the binary representation to the initialized binary output.
시스템으로서,
비휘발성 메모리;
상기 비휘발성 메모리에 결합된 프로세서; 및
상기 프로세서가 또 다른 디바이스와 통신할 수 있게 하는 무선 인터페이스
를 포함하고,
상기 프로세서는:
19개 이진 비트의 12개 삼진 트리트로의 매핑을 갖는 제1 LUT(look-up table) - 상기 제1 LUT는 이하를 나타내는 수들을 포함함:
Figure 112020103019729-pct00008

-;
12개 삼진 트리트의 19개 이진 비트로의 매핑을 갖는 제2 LUT - 상기 제2 LUT는 이하를 나타내는 수들을 포함함:
Figure 112020103019729-pct00009

-;
이진 입력을 수신하고 상기 이진 입력을 상기 제1 LUT에 따라 삼진 출력으로 변환하는 제1 로직 - 상기 삼진 출력으로의 변환은 고유하고 무손실임 -; 및
상기 삼진 출력을 수신하고 상기 삼진 출력을 인코딩하여 상기 비휘발성 메모리에 저장하기 위한 인코딩된 삼진 출력을 생성하는 인코더를 포함하는, 시스템.
As a system,
Nonvolatile memory;
A processor coupled to the nonvolatile memory; And
A wireless interface that allows the processor to communicate with another device
Including,
The processor is:
A first look-up table (LUT) with mapping of 19 binary bits to 12 ternary trees-the first LUT contains numbers representing the following:
Figure 112020103019729-pct00008

-;
A second LUT with a mapping of 12 ternary treats to 19 binary bits-the second LUT contains numbers representing:
Figure 112020103019729-pct00009

-;
A first logic for receiving a binary input and converting the binary input to a ternary output according to the first LUT, the conversion to the ternary output is inherent and lossless; And
And an encoder receiving the ternary output and encoding the ternary output to generate an encoded ternary output for storage in the non-volatile memory.
제14항에 있어서,
상기 인코딩된 삼진 출력을 디코딩하여 디코딩된 삼진 출력을 생성하는 디코더를 포함하는, 시스템.
The method of claim 14,
And a decoder that decodes the encoded ternary output to produce a decoded ternary output.
제15항에 있어서,
상기 디코딩된 삼진 출력을 수신하고 이를 상기 제2 LUT에 따라 이진 출력으로 변환하는 제2 로직을 포함하고, 상기 이진 출력으로의 변환은 고유하고 무손실인, 시스템.
The method of claim 15,
And a second logic for receiving the decoded ternary output and converting it to a binary output according to the second LUT, wherein the conversion to the binary output is unique and lossless.
제15항에 있어서,
상기 인코더는 삼진 LDPC 인코더이고, 상기 디코더는 삼진 LDPC 디코더인, 시스템.
The method of claim 15,
The encoder is a ternary LDPC encoder and the decoder is a ternary LDPC decoder.
제14항에 있어서,
상기 제1 LUT는 0에서 18까지 2의 거듭제곱에 대해 삼진으로 2의 거듭제곱 값들에 대응하는 19개의 항목을 포함하고, 상기 제2 LUT는 0에서 11까지 3의 거듭제곱에 대해 이진으로 3의 거듭제곱 값들에 대응하는 12개의 항목을 포함하는, 시스템.
The method of claim 14,
The first LUT includes 19 items corresponding to powers of 2 in ternary for powers of 2 from 0 to 18, and the second LUT is 3 in binary for powers of 3 from 0 to 11 A system comprising twelve items corresponding to powers of.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020177003915A 2014-09-18 2015-08-04 Apparatus and method for mapping binary to ternary and its reverse KR102242281B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/490,307 US10454495B2 (en) 2014-09-18 2014-09-18 Apparatus and method for mapping binary to ternary and its reverse
US14/490,307 2014-09-18
PCT/US2015/043660 WO2016043858A1 (en) 2014-09-18 2015-08-04 Apparatus and method for mapping binary to ternary and its reverse

Publications (2)

Publication Number Publication Date
KR20170030617A KR20170030617A (en) 2017-03-17
KR102242281B1 true KR102242281B1 (en) 2021-04-20

Family

ID=55526737

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177003915A KR102242281B1 (en) 2014-09-18 2015-08-04 Apparatus and method for mapping binary to ternary and its reverse

Country Status (6)

Country Link
US (1) US10454495B2 (en)
EP (1) EP3195131B1 (en)
KR (1) KR102242281B1 (en)
CN (1) CN106664098B (en)
TW (1) TWI586112B (en)
WO (1) WO2016043858A1 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10163471B2 (en) * 2017-03-30 2018-12-25 Intel Corporation Time tracking with trits
CN107133330B (en) * 2017-05-10 2021-02-02 苏州浪潮智能科技有限公司 Data binarization processing method and device
US10979221B2 (en) * 2018-01-03 2021-04-13 Arizona Board Of Regents On Behalf Of Northern Arizona University Generation of keys of variable length from cryptographic tables
CN110047266B (en) * 2018-01-17 2021-01-22 京东方科技集团股份有限公司 Information representation method, multi-system calculation circuit and electronic system
KR20210013397A (en) 2019-07-24 2021-02-04 삼성전자주식회사 Storage device
EP3783611B1 (en) * 2019-07-24 2023-02-22 Samsung Electronics Co., Ltd. Storage device that performs state shaping of data
CN110830169A (en) * 2019-11-12 2020-02-21 深圳市本特利科技有限公司 Ternary coding method for electronic detonator detection device
CN113137939B (en) * 2021-05-19 2022-07-19 东南大学 Unpacking method based on binary characteristic pattern matching

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5841874A (en) 1996-08-13 1998-11-24 Motorola, Inc. Ternary CAM memory architecture and methodology

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5633631A (en) * 1994-06-27 1997-05-27 Intel Corporation Binary-to-ternary encoder
US7660941B2 (en) 2003-09-10 2010-02-09 Super Talent Electronics, Inc. Two-level RAM lookup table for block and page allocation and wear-leveling in limited-write flash-memories
US7219319B2 (en) 2004-03-12 2007-05-15 Sensory Networks, Inc. Apparatus and method for generating state transition rules for memory efficient programmable pattern matching finite state machine hardware
US7071850B1 (en) 2005-01-27 2006-07-04 The Chamberlain Group, Inc. Method and apparatus to facilitate transmission of ternary movable barrier operator information
CN101938433A (en) 2009-07-03 2011-01-05 南京壹进制信息技术有限公司 High-efficiency wired communication methods
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
WO2013093669A1 (en) 2011-12-21 2013-06-27 International Business Machines Corporation Read/write operations in solid-state storage devices
US8885410B2 (en) 2012-08-29 2014-11-11 Sandisk Technologies Inc. Direct multi-level cell programming
US8943385B2 (en) 2012-10-23 2015-01-27 Intel Corporation NAND memory management
US9892077B2 (en) * 2013-10-07 2018-02-13 Qualcomm Incorporated Camera control interface slave device to slave device communication

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5841874A (en) 1996-08-13 1998-11-24 Motorola, Inc. Ternary CAM memory architecture and methodology

Also Published As

Publication number Publication date
EP3195131A4 (en) 2018-05-02
CN106664098A (en) 2017-05-10
US10454495B2 (en) 2019-10-22
WO2016043858A1 (en) 2016-03-24
EP3195131B1 (en) 2019-06-26
KR20170030617A (en) 2017-03-17
TWI586112B (en) 2017-06-01
US20160087646A1 (en) 2016-03-24
EP3195131A1 (en) 2017-07-26
CN106664098B (en) 2020-11-10
TW201613278A (en) 2016-04-01

Similar Documents

Publication Publication Date Title
KR102242281B1 (en) Apparatus and method for mapping binary to ternary and its reverse
US9171605B1 (en) Concentrated address detecting method of semiconductor device and concentrated address detecting circuit using the same
TWI692762B (en) Flash memory controller, flash memory module and associated electronic device
CN107408069B (en) Apparatus and method for detecting and relieving bit line open in flash memory
US9251060B2 (en) Compression-enabled blending of data in non-volatile memory
US20160162416A1 (en) Apparatus and Method for Reducing Latency Between Host and a Storage Device
US9798622B2 (en) Apparatus and method for increasing resilience to raw bit error rate
US9762229B2 (en) Data communicating method for use in a single-wire protocol communication and a single-wire protocol communication system using the same
US9405624B2 (en) On-die error detection and correction during multi-step programming
US20200241956A1 (en) Memory system and operating method thereof
US11049531B2 (en) Nonvolatile memory device, operating method thereof, and data storage apparatus including the same
US10324785B2 (en) Decoder using low-density parity-check code and memory controller including the same
US11740965B2 (en) Memory system
US20190280715A1 (en) Compressing error vectors for decoding logic to store compressed in a decoder memory used by the decoding logic
US10116335B2 (en) Data processing method, memory storage device and memory control circuit unit
CN107305510B (en) Data processing method, memory storage device and memory control circuit unit
US11139044B2 (en) Memory testing method and memory testing system
US10866855B2 (en) Memory system varying operation of memory controller according to internal status of memory device
CN107608817B (en) Decoding method, memory storage device and memory control circuit unit
CN108874681B (en) Memory system and operating method thereof
US20230214136A1 (en) Memory system

Legal Events

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