[go: up one dir, main page]

KR20220127113A - Encoding and decoding apparatus and method for implementing maximum transition-avoidance coding with minimum overhead - Google Patents

Encoding and decoding apparatus and method for implementing maximum transition-avoidance coding with minimum overhead Download PDF

Info

Publication number
KR20220127113A
KR20220127113A KR1020210070262A KR20210070262A KR20220127113A KR 20220127113 A KR20220127113 A KR 20220127113A KR 1020210070262 A KR1020210070262 A KR 1020210070262A KR 20210070262 A KR20210070262 A KR 20210070262A KR 20220127113 A KR20220127113 A KR 20220127113A
Authority
KR
South Korea
Prior art keywords
subblock
bit
codeword
lookup table
data
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
KR1020210070262A
Other languages
Korean (ko)
Inventor
설창규
김지엽
소혜정
곽명보
윤필상
이수철
임진수
최영돈
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US17/590,474 priority Critical patent/US11757567B2/en
Priority to CN202210119251.6A priority patent/CN115080475A/en
Priority to EP22160817.7A priority patent/EP4057515B1/en
Publication of KR20220127113A publication Critical patent/KR20220127113A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/04Conversion to or from representation by pulses the pulses having two levels
    • H03M5/14Code representation, e.g. transition, for a given bit cell depending on the information in one or more adjacent bit cells, e.g. delay modulation code, double density code
    • 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/04Conversion to or from representation by pulses the pulses having two levels
    • H03M5/06Code representation, e.g. transition, for a given bit cell depending only on the information in that bit cell
    • H03M5/08Code representation by pulse width
    • 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/20Conversion to or from representation by pulses the pulses having more than three levels
    • 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

최소 오버헤드를 갖는 최대 천이 방지 코딩을 구현하는 인코딩 및 디코딩 장치 및 방법이 기술된다. 예시적인 장치는, 데이터 버스트 내 일부 비트 값들과 심볼들과의 상관 관계를 나타내는 서브블록 룩업 테이블들, 데이터 버스트의 나머지 비트 값들에 기초하여 서브블록 룩업 테이블들을 선택적으로 연접시키는 조합 룩업 테이블, 그리고 수신된 코드워드들 각각의 심볼들에 대응하는 서브블록 룩업 테이블들을 지정하는 코드워드 디코딩 룩업 테이블을 이용하여 인코딩 및/또는 디코딩을 수행한다.An encoding and decoding apparatus and method for implementing maximum transition-avoidance coding with minimum overhead are described. An exemplary apparatus includes subblock lookup tables indicating correlations with symbols with some bit values in a data burst, a combination lookup table for selectively concatenating subblock lookup tables based on remaining bit values of the data burst, and receiving Encoding and/or decoding is performed using a codeword decoding lookup table that designates subblock lookup tables corresponding to symbols of each of the codewords.

Description

최소 오버헤드를 갖는 최대 천이 방지 코딩을 구현하는 인코딩 및 디코딩 장치 및 방법 {Apparatuses and methods for encoding and decoding to implement maximun transition avoidance(MTA) coding with minimum overhead}{Apparatuses and methods for encoding and decoding to implement maximun transition avoidance (MTA) coding with minimum overhead}

본 발명은 장치들(apparatuses) 및 방법들(methods)에 관한 것으로서, 더욱 상세하게는 최소 오버헤드를 갖는 최대 천이 방지 코딩을 구현하는 인코딩 및 디코딩 장치 및 방법에 관한 것이다.The present invention relates to applications and methods, and more particularly to an encoding and decoding apparatus and method for implementing maximum transition-avoidance coding with minimum overhead.

컴퓨팅 시스템을 더욱 강력하고 보다 전력 효율적으로 만들려는 노력은 인터페이스 통신을 발전시켜, 전력 소비를 증가시키지 않으면서, 이상적인 경우 감소시키면서, 처리량을 향상시킨다. 일부 시스템은 펄스-진폭 변조 4-레벨 (Pulse-Amplitude Modulation 4-Level: PAM-4) 시그널링을 구현하고 있다. PAM-4는 2-비트 스트림을 4-레벨을 갖는 단일(single) 멀티 레벨 신호로 변환하는 데 사용될 수 있다. PAM-4 시그널링 시스템은 인터페이스 라인에서 PAM-4 심볼들 사이의 최대 전압 천이를 제거하기 위한 최대 천이 방지(Maximun Transition Avoidance: MTA) 코딩을 이용할 수 있다. MTA 코딩은 신호 왜곡을 유발하는 심볼간 간섭(Inter-Symbol Interference: ISI) 및 크로스토크(Crosstalk)를 줄일 수 있다.Efforts to make computing systems more powerful and more power efficient are advancing interface communications, improving throughput while not increasing power consumption, ideally reducing it. Some systems implement Pulse-Amplitude Modulation 4-Level (PAM-4) signaling. PAM-4 can be used to convert a 2-bit stream into a single multi-level signal having 4-levels. The PAM-4 signaling system may use Maximum Transition Avoidance (MTA) coding to remove a maximum voltage transition between PAM-4 symbols on an interface line. MTA coding may reduce inter-symbol interference (ISI) and crosstalk that cause signal distortion.

컴퓨팅 시스템에서 수행되는 동작들 중에서 데이터 기입 및/또는 독출을 위한 메모리 억세스 동작이 중요하다. 메모리 억세스 동작은 메모리의 입출력 구조에 적어도 부분적으로 기초하여 수행되고, 메모리 밴드위스가 32-비트 이상으로 증가하게 되면, 데이터 변조 방식을 이용하여 메모리를 억세스할 수 있다. 예컨대, PAM-4 시그널링을 이용하게 되면, MTA 코딩에 필요한 신호 라인들의 수 및/또는 칩 면적의 증가로 인하여 큰 오버헤드가 발생될 수 있다. 이에 따라, 32-비트 데이터를 MTA를 적용한 PAM-4 시그널링으로 송수신하기 위하여 최소 오버헤드로 구현할 수 있는 장치 및 방법이 요구된다.Among operations performed in a computing system, a memory access operation for writing and/or reading data is important. The memory access operation is performed based at least in part on the input/output structure of the memory, and when the memory bandwidth is increased to 32-bit or more, the memory may be accessed using a data modulation method. For example, if PAM-4 signaling is used, a large overhead may be generated due to an increase in the number of signal lines and/or a chip area required for MTA coding. Accordingly, there is a need for an apparatus and method that can be implemented with minimal overhead in order to transmit and receive 32-bit data through PAM-4 signaling to which MTA is applied.

본 발명의 목적은 최소 오버헤드를 갖는 최대 천이 방지 코딩을 구현하는 인코딩 및 디코딩 장치 및 방법을 제공하는 데 있다.It is an object of the present invention to provide an encoding and decoding apparatus and method for implementing maximum transition-avoidance coding with minimum overhead.

본 발명의 실시예들에 따른 장치는 데이터 버스에 대한 송신기를 포함하고, 상기 송신기는 상기 데이터 버스로 전송될 데이터 버스트들을 심볼들로 구성된 코드워드들로 변환하는 인코더를 포함한다. 상기 인코더는 상기 데이터 버스트들과 상기 심볼들과의 상관 관계를 나타내는 로직 회로를 포함한다. 상기 로직 회로는, 코드워드 맵핑들의 개수에 따라 분류되는 다수의 서브블록 룩업 테이블들, 상기 코드워드 맵핑들은 상기 데이터 버스트들 내 일부 비트 값들과 상기 심볼들과의 상관 관계를 나타내고; 및 상기 데이터 버스트들 각각의 나머지 비트 값들에 기초하여 상기 다수의 서브블록 룩업 테이블들에 따른 인코딩 결과들을 선택적으로 연접시키는 조합 룩업 테이블을 포함한다. 상기 인코더는 상기 조합 룩업 테이블 및 상기 다수의 서브블록 룩업 테이블들을 사용하여 상기 데이터 버스트들에 대응하는 상기 코드워드를 상기 데이터 버스로 제공하도록 구성된다.An apparatus according to embodiments of the present invention comprises a transmitter for a data bus, the transmitter comprising an encoder for converting data bursts to be transmitted over the data bus into codewords composed of symbols. The encoder includes logic circuitry for correlating the data bursts with the symbols. the logic circuit comprises a plurality of sub-block lookup tables sorted according to the number of codeword mappings, the codeword mappings representing the correlation of some bit values in the data bursts with the symbols; and a combination lookup table for selectively concatenating encoding results according to the plurality of subblock lookup tables based on the remaining bit values of each of the data bursts. The encoder is configured to provide the codeword corresponding to the data bursts to the data bus using the combinational lookup table and the plurality of subblock lookup tables.

본 발명의 실시예들에 따른 데이터를 전송하는 방법은, 데이터 라인으로 전송될 m 비트들의 데이터 버스트들을 수신하는 단계; 각 데이터 버스트들의 상기 m 비트들 중 p(m>p) 비트들의 값을 데이터 버스 반전(DBI) 신호 라인으로 보내는 단계; 상기 DBI 신호 라인 상의 상기 p 비트들의 합인 q 비트들에 대하여 q:(q+k) 비트 인코딩을 수행하여 상기 DBI 신호 라인의 코드워드를 생성하는 단계; 및 상기 데이터 버스트들 각각의 나머지 (m-p) 비트들에 대하여 (m-p):m 비트 인코딩을 수행하여 상기 데이터 라인의 코드워드를 생성하는 단계를 포함한다.A method of transmitting data according to embodiments of the present invention includes receiving data bursts of m bits to be transmitted on a data line; sending the value of p(m>p) bits of the m bits of each data burst to a data bus inversion (DBI) signal line; generating a codeword of the DBI signal line by performing q:(q+k) bit encoding on q bits that are the sum of the p bits on the DBI signal line; and performing (m-p):m bit encoding on the remaining (m-p) bits of each of the data bursts to generate a codeword of the data line.

본 발명의 실시예들에 따른 장치는 데이터 버스에 대한 수신기를 포함하고, 상기 수신기는 상기 데이터 버스로 수신된 심볼들로 구성된 코드워드들을 데이터 버스트들로 변환하는 디코더를 포함한다. 상기 디코더는, 상기 심볼들과 상기 데이터 버스트들과의 상관 관계를 나타내는 로직 회로를 포함한다. 상기 로직 회로는, 상기 코드워드들 각각의 상기 심볼들에 대응하는 서브블록 룩업 테이블들을 지정하는 룩업 테이블 맵핑을 제공하도록 구성되는 코드워드 디코딩 룩업 테이블; 코드워드 맵핑들의 개수에 따라 분류되는 상기 서브블록 룩업 테이블들, 상기 코드워드 맵핑들은 상기 심볼들과 상기 데이터 버스트들 내 일부 비트 값들과의 상관 관계를 나타내고; 및 상기 룩업 테이블 맵핑에 의해 지정된 서브블록 룩업 테이블들을 선택적으로 연접시키는 조합 룩업 테이블을 포함한다. 상기 디코더는 상기 코드워드 디코딩 룩업 테이블, 상기 서브블록 룩업 테이블들 및 상기 조합 룩업 테이블을 사용하여 상기 코드워드에 대응하는 상기 데이터 버스트들로 복원한다.An apparatus according to embodiments of the present invention comprises a receiver for a data bus, said receiver comprising a decoder for converting codewords composed of symbols received over said data bus into data bursts. The decoder includes logic circuitry that indicates a correlation between the symbols and the data bursts. The logic circuit comprises: a codeword decoding lookup table configured to provide a lookup table mapping specifying subblock lookup tables corresponding to the symbols of each of the codewords; the sub-block lookup tables classified according to the number of codeword mappings, the codeword mappings indicate the correlation between the symbols and some bit values in the data bursts; and a combination lookup table for selectively concatenating subblock lookup tables designated by the lookup table mapping. The decoder restores the data bursts corresponding to the codeword using the codeword decoding lookup table, the subblock lookup tables and the combination lookup table.

본 발명은 인코딩 및/또는 디코딩에 사용되는 코드워드 맵핑들을 저장하는 다수의 서브블록 룩업 테이블들을 선택적으로 연접시켜 칩 면적을 줄임으로써 오버헤드를 줄일 수 있다. 또한, MTA 코딩을 위한 추가 신호 라인을 필요로 하지 않기 때문에, 추가 신호 라인은 데이터 에러 검출하는데 사용될 수 있으므로 인코딩 및/또는 디코딩 성능을 향상시킬 수 있다.The present invention can reduce the overhead by reducing the chip area by selectively concatenating a plurality of sub-block lookup tables for storing codeword mappings used for encoding and/or decoding. In addition, since an additional signal line for MTA coding is not required, the additional signal line can be used for data error detection, thereby improving encoding and/or decoding performance.

도 1은 본 발명의 실시예들에 따른 송신기와 수신기를 개념적으로 설명하는 블록 다이어그램이다.
도 2는 도 1의 PAM-4 인코더에 이용되는 7-8 비트 인코딩을 설명하는 도면이다.
도 3은 도 1의 PAM-4 인코더의 룩업 테이블들을 설명하는 도면이다.
도 4, 도 5a 내지 도 5c는 도 3의 조합 룩업 테이블 및 서브블록 룩업 테이블들을 사용하는 코드워드 인코딩을 설명하는 도면들이다.
도 6은 도 1의 PAM-4 인코더의 동작 방법을 설명하는 플로우챠트이다.
도 7은 도 1의 PAM-4 디코더의 룩업 테이블들을 설명하는 도면이다.
도 8은 도 7의 코드워드 디코딩 룩업 테이블을 설명하는 도면이다.
도 9는 도 1의 PAM-4 디코더의 동작 방법을 설명하는 플로우챠트이다.
도 10은 도 2의 7:8 비트 인코딩을 이용한 32-비트 데이터 버스트의 인코딩 방법을 설명하는 도면이다.
도 11은 본 발명의 일실시예에 따른 데이터 버스트의 인코딩 방법을 설명하는 도면이다.
도 12 내지 도 14는 도 11의 인코딩 방법에 따른 32-비트 데이터 버스트 구조를 설명하는 도면들이다.
도 15는 본 발명의 실시예들에 따른 인코딩 및 디코딩 장치를 포함하는 메모리 시스템의 제1 예의 블록 다이어그램이다.
도 16은 본 발명의 일실시예에 따른 메모리 장치의 일부를 설명하는 블록도이다.
도 17은 본 발명의 실시예들에 따른 인코딩 및 디코딩 장치를 포함하는 메모리 시스템의 제2 예의 블록 다이어그램이다.
1 is a block diagram conceptually illustrating a transmitter and a receiver according to embodiments of the present invention.
FIG. 2 is a diagram for explaining 7-8 bit encoding used in the PAM-4 encoder of FIG. 1 .
FIG. 3 is a diagram illustrating lookup tables of the PAM-4 encoder of FIG. 1 .
4 and 5A to 5C are diagrams illustrating codeword encoding using the combination lookup table and subblock lookup tables of FIG. 3 .
6 is a flowchart illustrating an operation method of the PAM-4 encoder of FIG. 1 .
FIG. 7 is a diagram illustrating lookup tables of the PAM-4 decoder of FIG. 1 .
FIG. 8 is a view for explaining a codeword decoding lookup table of FIG. 7 .
9 is a flowchart illustrating an operation method of the PAM-4 decoder of FIG. 1 .
FIG. 10 is a diagram for explaining an encoding method of a 32-bit data burst using the 7:8-bit encoding of FIG. 2 .
11 is a diagram for explaining a data burst encoding method according to an embodiment of the present invention.
12 to 14 are diagrams for explaining a 32-bit data burst structure according to the encoding method of FIG. 11 .
15 is a block diagram of a first example of a memory system including an encoding and decoding apparatus according to embodiments of the present invention.
16 is a block diagram illustrating a part of a memory device according to an embodiment of the present invention.
17 is a block diagram of a second example of a memory system including an encoding and decoding apparatus according to embodiments of the present invention.

도 1은 본 발명의 실시예들에 따른 송신기와 수신기를 개념적으로 설명하는 블록 다이어그램이다.1 is a block diagram conceptually illustrating a transmitter and a receiver according to embodiments of the present invention.

도 1을 참조하면, 수신기(120)는 채널 라인(130)을 통해 송신기(110)와 통신할 수 있다. 채널 라인(130)은 송신기(110)와 수신기(120)를 물리적으로 또는 전기적으로 연결하는 복수의 신호 라인들이다. 송신기(110), 수신기(120) 및 채널 라인(130)은 2-비트 스트림들을 4-레벨을 갖는 단일 멀티-레벨 신호로 변환하는 PAM-4 시그널링을 지원할 수 있다.Referring to FIG. 1 , a receiver 120 may communicate with a transmitter 110 through a channel line 130 . The channel line 130 is a plurality of signal lines that physically or electrically connect the transmitter 110 and the receiver 120 . Transmitter 110 , receiver 120 , and channel line 130 may support PAM-4 signaling, which converts 2-bit streams into a single multi-level signal having 4-levels.

송신기(110)는 수신기(120)로 전송될 데이터 버스트들을 PAM-4 심볼들로 변환하는 PAM-4 인코더(112)를 포함할 수 있다. PAM-4 인코더(112)는 데이터 버스트들에 인코딩을 수행하여 PAM-4 심볼들을 생성할 수 있다. 송신기(110)는 PAM-4 심볼들을 채널 라인(130) 상으로 구동하기 위한 드라이버를 더 포함할 수 있다. 송신기(110)는 채널 라인(130)을 통해 PAM-4 심볼들을 수신기(120)로 전송할 수 있다.The transmitter 110 may include a PAM-4 encoder 112 that converts data bursts to be transmitted to the receiver 120 into PAM-4 symbols. The PAM-4 encoder 112 may perform encoding on the data bursts to generate PAM-4 symbols. The transmitter 110 may further include a driver for driving the PAM-4 symbols onto the channel line 130 . The transmitter 110 may transmit PAM-4 symbols to the receiver 120 through the channel line 130 .

PAM-4 인코더(112)는 데이터 버스트들과 PAM-4 심볼들과의 상관 관계를 나타내는 로직 회로(114)를 포함할 수 있다. 로직 회로(114)는 최소 오버헤드를 갖도록 구성되는 룩업 테이블들을 포함할 수 있다. 룩업 테이블들은 데이터 버스트들과 PAM-4 심볼들과의 상관 관계를 저장하는 레지스터들(또는 저장 요소들)로 구현될 수 있다. PAM-4 인코더(112)는 록업 테이블들을 사용하여 데이터 버스트들을 PAM-4 심볼들로 변환할 수 있다.The PAM-4 encoder 112 may include logic circuitry 114 for correlating the data bursts with the PAM-4 symbols. Logic circuitry 114 may include lookup tables configured to have minimal overhead. The lookup tables may be implemented with registers (or storage elements) that store the correlation between data bursts and PAM-4 symbols. The PAM-4 encoder 112 may convert data bursts into PAM-4 symbols using lockup tables.

수신기(120)는 PAM-4 심볼들을 수신하고, 수신된 PAM-4 심볼들을 디코딩하는 PAM-4 디코더(122)를 포함할 수 있다. PAM-4 디코더(122)는 PAM-4 심볼들을 디코딩하여 2 비트 스트림들의 데이터 버스트들을 복원(recover)하도록 구성되는 로직 회로(124)를 포함할 수 있다. 로직 회로(124)는 PAM-4 심볼들을 디코딩하여 2-비트 스트림들의 데이터 버스트들을 복원(recover)하도록 구성되는 룩업 테이블들을 포함할 수 있다. 룩업 테이블들은 PAM-4 심볼들과 데이터 버스트들과의 상관 관계를 저장하는 레지스터들로 구현될 수 있다. PAM-4 디코더(122)는 록업 테이블들을 사용하여 PAM-4 심볼들을 데이터 버스트들로 복원할 수 있다. PAM-4 디코더(122)의 록업 테이블들의 일부는 PAM-4 인코더(112)의 록업 테이블들과 동일하게 구성될 수 있다.The receiver 120 may include a PAM-4 decoder 122 that receives the PAM-4 symbols and decodes the received PAM-4 symbols. The PAM-4 decoder 122 may include a logic circuit 124 configured to decode the PAM-4 symbols to recover data bursts of two bit streams. Logic circuitry 124 may include lookup tables configured to decode PAM-4 symbols to recover data bursts of two-bit streams. Lookup tables may be implemented with registers that store correlations of PAM-4 symbols with data bursts. The PAM-4 decoder 122 may reconstruct the PAM-4 symbols into data bursts using the lockup tables. Some of the lockup tables of the PAM-4 decoder 122 may be configured the same as the lockup tables of the PAM-4 encoder 112 .

도 2는 도 1의 PAM-4 인코더에 이용되는 7-8 비트 인코딩을 설명하는 도면이다.FIG. 2 is a diagram for explaining 7-8 bit encoding used in the PAM-4 encoder of FIG. 1 .

도 2를 참조하면, 유저 데이터(202)와 인코드된 데이터(204) 사이의 7:8 비트 인코딩(200)을 보여준다. 유저 데이터(202)는 원본 데이터라고 지칭될 수 있다. 유저 데이터(202)와 인코딩된 데이터(204)에 대하여, 각 행 DQ[i]는 시리얼 데이터 라인을 나타낸다.Referring to FIG. 2 , a 7:8 bit encoding 200 between user data 202 and encoded data 204 is shown. User data 202 may be referred to as original data. For user data 202 and encoded data 204, each row DQ[i] represents a serial data line.

유저 데이터(202)에서, 각 DQ[i] 시리얼 데이터 라인 상으로 16-비트 데이터 버스트들이 구성되고, 열들은 16-비트 데이터 버스트들 내 순차적인 2-비트 자리들(positions)로 구성된다. 예를 들어, 각 데이터 버스트의 제2 및 제3 비트들은 칼럼 라벨된 d[2:3]으로 나타낸다. 각 16-비트 데이터 버스트들은 8 비트들의 2개 1/2 데이터 버스트들 각각으로 나타낸다. 예를 들어, 시리얼 데이터 라인 DQ[0] 상에서, 16-비트 데이터 버스트는 제1 1/2 데이터 버스트 d0[0]:d0[7:1] 및 제2 1/2 데이터 버스트 d0[8]:d0[15:9]로 나누어진다. 각각의 1/2 데이터 버스트는 1-비트:7-비트 쌍으로 더 나누어진다. 예를 들어, 시리얼 데이터 라인 DQ[0] 상에서, 제1 1/2 데이터 버스트 d0[0]:d0[7:1] 는 1-비트 값의 d0[0]와 7-비트 값의 d0[7:1]으로 나누어진다.In user data 202, 16-bit data bursts are organized on each DQ[i] serial data line, and columns are organized into sequential 2-bit positions within the 16-bit data bursts. For example, the second and third bits of each data burst are denoted by column labeled d[2:3]. Each 16-bit data burst is represented by each of 2 1/2 data bursts of 8 bits. For example, on the serial data line DQ[0], the 16-bit data burst is the 1st 1/2 data burst d0[0]:d0[7:1] and the 2nd 1/2 data burst d0[8]: It is divided by d0[15:9]. Each half data burst is further divided into 1-bit:7-bit pairs. For example, on serial data line DQ[0], the first 1/2 data burst d0[0]:d0[7:1] is a 1-bit value of d0[0] and a 7-bit value of d0[7 : 1].

인코드된 데이터(204)에서, DQ[i] 행들은 시리얼 데이터 라인들을 나타내고, DBI 행은 데이터 버스 반전(DBI) 신호 라인을 나타내고, 열들은 심볼들(s[i])을 나타내는 비트 열들(bit strings)이다. 예를 들면, s[0]는 각 시리얼 데이터 라인 상의 제1 2-비트 PAM4 심볼을 나타내고, s[1]는 제2 2-비트 PAM4 심볼을 나타낸다.In encoded data 204, DQ[i] rows represent serial data lines, DBI rows represent data bus inversion (DBI) signal lines, and columns represent bit columns (s[i]) representing symbols (s[i]). bit strings). For example, s[0] represents the first 2-bit PAM4 symbol on each serial data line, and s[1] represents the second 2-bit PAM4 symbol.

7:8 비트 인코딩(200)은 하나의 시리얼 데이터 라인들의 어느 비트 위치의 1-비트 데이터 값의 쌍을 DBI 신호 라인 상의 PAM-4 심볼로 인코드할 수 있다. 예를 들어, 시리얼 데이터 라인 DQ[0]의 데이터 d0[0] 및 d0[8]은 DBI 신호 라인 상의 2-비트 PAM-4 심볼로 인코드되고, 시리얼 데이터 라인 DQ[1]의 데이터 d1[0] 및 d1[8]은 DBI 신호 라인 상의 2-비트 PAM-4 심볼로 인코드될 수 있다.The 7:8 bit encoding 200 may encode a pair of 1-bit data values at any bit position of one serial data line into a PAM-4 symbol on a DBI signal line. For example, data d0[0] and d0[8] on serial data line DQ[0] are encoded as 2-bit PAM-4 symbols on the DBI signal line, and data d1[ on serial data line DQ[1] 0] and d1[8] may be encoded as 2-bit PAM-4 symbols on the DBI signal line.

실시예에 따라, 7:8 비트 인코딩(200)에서, DBI 신호 라인 상의 2-비트 PAM-4 심볼은 다른 시리얼 데이터 라인들의 1-비트 데이터 값의 쌍을 DBI 신호 라인 상의 PAM-4 심볼로 인코드할 수 있다. 예를 들어, 시리얼 데이터 라인 DQ[0]의 데이터 d0[0] 및 시리얼 데이터 라인 DQ[1]의 데이터 d1[0]은 DBI 신호 라인 상의 2-비트 PAM-4 심볼로 인코드된다. 유사하게, 시리얼 데이터 라인 DQ[2]의 데이터 d2[0] 및 시리얼 데이터 라인 DQ[3]의 데이터 d3[0]은 DBI 신호 라인 상의 2-비트 PAM-4 심볼로 인코드된다.According to an embodiment, in 7:8 bit encoding 200, a 2-bit PAM-4 symbol on a DBI signal line converts a pair of 1-bit data values of other serial data lines into a PAM-4 symbol on a DBI signal line. can code For example, data d0[0] of serial data line DQ[0] and data d1[0] of serial data line DQ[1] are encoded as 2-bit PAM-4 symbols on the DBI signal line. Similarly, data d2[0] of serial data line DQ[2] and data d3[0] of serial data line DQ[3] are encoded as 2-bit PAM-4 symbols on the DBI signal line.

7:8 비트 인코딩(200)에서, 각 1/2 데이터 버스트의 DBI 신호 라인의 PAM-4 심볼로 사용되지 않은 나머지 7 비트들은 해당 시리얼 데이터 라인 상의 4개 PAM-4 심볼들로 인코드된다. 4개 PAM-4 심볼들은 8 비트들로 구성되고 코드워드로 지칭될 수 있다. 예를 들어, 유저 데이터 d0[7:1]은 시리얼 데이터 라인 DQ[0] 상의 코드워드 c0[7:0]으로 인코드된다. 유저 데이터의 각 7 비트들에 대한 코드워드는 4개의 PAM-4 심볼들로 나타낼 수 있다. 유저 데이터 d0[7:1]은 심볼들 s[0], s[1], s[2] 및 s[3]으로 구성되는 코드워드 c0[7:0]로 인코드된다.In the 7:8 bit encoding 200, the remaining 7 bits not used as PAM-4 symbols of the DBI signal line of each 1/2 data burst are encoded as 4 PAM-4 symbols on the corresponding serial data line. The four PAM-4 symbols consist of 8 bits and may be referred to as a codeword. For example, user data d0[7:1] is encoded into codeword c0[7:0] on serial data line DQ[0]. A codeword for each 7 bits of user data may be represented by 4 PAM-4 symbols. User data d0[7:1] is encoded into codeword c0[7:0] consisting of symbols s[0], s[1], s[2] and s[3].

7:8 비트 인코딩(200)에서, 각 DQ[i] 시리얼 데이터 라인 상의 제1 1/2 데이터 버스트의 7 비트들에 대한 코드워드 ci[7:0]과 제2 1/2 데이터 버스트의 7 비트들에 대한 코드워드 ci[15:8] 사이는 블록 바운다리(BB)로 지칭될 수 있다.In 7:8 bit encoding 200, codeword ci[7:0] for 7 bits of the 1st 1/2 data burst on each DQ[i] serial data line and 7 of the 2nd 1/2 data burst The codeword ci[15:8] for bits may be referred to as a block boundary (BB).

7:8 비트 인코딩(200)은 록업 테이블들을 사용하여 7-비트 데이터 값을 대응하는 코드워드로 맵핑할 수 있다. 룩업 테이블들은 도 3에 도시된 바와 같이, 조합 룩업 테이블(310)과 다수개의 서브블록 룩업 테이블들(321-324)을 포함하는 룩업 테이블 세트(320)를 포함할 수 있다. 조합 룩업 테이블(310)은 다수개의 서브블록 룩업 테이블들(321-324)에 따른 인코딩 결과들을 선택적으로 연접시킬 수 있다.7:8 bit encoding 200 may use lockup tables to map a 7-bit data value to a corresponding codeword. The lookup tables may include a lookup table set 320 including a combination lookup table 310 and a plurality of subblock lookup tables 321-324, as shown in FIG. 3 . The combination lookup table 310 may selectively concatenate encoding results according to the plurality of subblock lookup tables 321-324.

한편, 7:8 비트 인코딩(200)에서, PAM-4 심볼들 s[0], s[1], s[2] 및 s[3]의 8 비트 인코딩에 따른 256 패턴들이 존재할 수 있는데, 이들 중에서 유저 데이터의 7 비트 인코딩을 위해 필요한 128개 패턴들을 선택할 수 있다. 선택된 128개 패턴들은 7-비트 유저 데이터의 코드워드들로 제공될 수 있다. 룩업 테이블들에서 선택되지 않는 128개 패턴들과 관련되는 레지스터들은 사용되지 못하고 룩업 테이블의 오버헤드로 작용할 수 있다.On the other hand, in 7:8 bit encoding 200, there may be 256 patterns according to 8 bit encoding of PAM-4 symbols s[0], s[1], s[2] and s[3], these Among them, 128 patterns required for 7-bit encoding of user data can be selected. The selected 128 patterns may be provided as codewords of 7-bit user data. Registers related to 128 patterns that are not selected from the lookup tables are not used and may act as overhead of the lookup table.

이하의 실시예들에서는 룩업 테이블들의 오버헤드를 줄이기 위해, 다수개의 서브블록 룩업 테이블들(321-324)은 서로 잇닿아 배치되어, 즉 연접되어 하나의 룩업 테이블 세트(320)로 구성되는 예가 설명될 것이다. 서브블록 룩업 테이블들(321-324) 각각에는 코드워드 맵핑들의 개수에 따라 분류된 다수개의 서브블록 룩업 테이블들(A1~A5, B1~B4, ~B)을 포함할 수 있다. 조합 룩업 테이블(310)은 7-비트 유저 데이터 값의 유형에 따라 서브블록 룩업 테이블들(A1~A5, B1~B4, ~B)을 선택적으로 조합하는 룩업 테이블 맵핑으로 구성될 수 있다. 룩업 테이블들은 MTA를 지원하도록 구성되는데, PAM-4 심볼들과 심볼 비트들 사이의 맵핑은 표 1을 기반으로 설명될 것이다. 표 1은 설명의 목적을 위한 비제한적인 예시이다.In the following embodiments, in order to reduce the overhead of the lookup tables, a plurality of subblock lookup tables 321-324 are arranged adjacent to each other, that is, an example in which one lookup table set 320 is concatenated is described. will be Each of the subblock lookup tables 321-324 may include a plurality of subblock lookup tables A1 to A5, B1 to B4, and to B classified according to the number of codeword mappings. The combination lookup table 310 may be configured as a lookup table mapping that selectively combines the subblock lookup tables A1 to A5, B1 to B4, and to B according to the type of the 7-bit user data value. The lookup tables are configured to support the MTA, and the mapping between PAM-4 symbols and symbol bits will be described based on Table 1. Table 1 is a non-limiting example for illustrative purposes.

PAM-4 심볼 레벨들PAM-4 Symbol Levels 00 1One 22 33 심볼 비트들symbol bits 0000 0101 1111 1010 전압 레벨
(전원 전압(VDD)의 %)
voltage level
(% of supply voltage (VDD))
0%0% 27%27% 44%44% 50%50%

표 1을 참조하면, 2-비트 PAM-4 심볼은 채널 라인(130, 도 1) 상으로 레벨 0, 1, 2 또는 3으로 표시되는 4개의 전압 레벨들로 전송될 수 있다. 예시적으로, 레벨 3의 PAM-4 심볼은 가장 높은 전압 레벨을 갖고, 레벨 0의 PAM-4 심볼은 가장 낮은 전압 레벨을 갖는 것으로 설정될 수 있다.Referring to Table 1, a 2-bit PAM-4 symbol may be transmitted on the channel line 130 (FIG. 1) at four voltage levels, denoted as level 0, 1, 2, or 3. Exemplarily, the PAM-4 symbol of level 3 may be set to have the highest voltage level, and the PAM-4 symbol of level 0 may be configured to have the lowest voltage level.

도 3은 도 1의 PAM-4 인코더의 룩업 테이블들을 설명하고, 도 4, 도 5a 내지 도 5c는 도 3의 조합 룩업 테이블 및 서브블록 룩업 테이블들(A1~A5, B1~B4, ~B)을 사용하는 코드워드 인코딩을 설명하는 도면들이다. 도 3 내지 도 5c는 7:8 비트 인코더 및/또는 디코더에 사용되는 룩업 테이블들을 설명하고 있으나, 이는 설명의 목적을 위한 비제한적인 예시이다. 실시예에 따라, 도 3 내지 도 5c의 룩업 테이블들을 사용하여 29:32 비트 인코더 및/또는 디코더를 구현할 수 있다.3 illustrates the lookup tables of the PAM-4 encoder of FIG. 1, and FIGS. 4 and 5A to 5C are the combination lookup table and subblock lookup tables A1 to A5, B1 to B4, and to B of FIG. It is a diagram for explaining codeword encoding using 3-5C illustrate lookup tables used in a 7:8 bit encoder and/or decoder, but this is a non-limiting example for illustrative purposes. According to an embodiment, a 29:32 bit encoder and/or decoder may be implemented using the lookup tables of FIGS. 3 to 5C .

도 3을 참조하면, PAM-4 인코더(112)의 로직 회로(114)는 조합 룩업 테이블(310) 및 룩업 테이블 세트(320) 내 연접 배치된 제1 내지 제4 서브블록 룩업 테이블들(321-324)을 포함할 수 있다. 제1 서브블록 룩업 테이블(321)은, 가장 많은 수의 코드워드 맵핑들, 예컨대 8개 코드워드 맵핑들을 포함하는 서브블록 룩업 테이블들(B1, ~B1)로 구성될 수 있다. ~B1 서브블록 룩업 테이블은 B1 서브블록 룩업 테이블에 대응하여 반전된 코드워드 맵핑을 제공하도록 구성될 수 있다. ~B1 서브블록 룩업 테이블은 조합되는 서브블록 룩업 테이블들 내 코드워드의 마지막 심볼과 첫번째 심볼 사이에서 MTA를 지원하도록 구성될 수 있다. 제2 서브블록 룩업 테이블(322)은, 예컨대 4개 코드워드 맵핑들을 포함하는 서브블록 룩업 테이블들(A1, B2)로 구성될 수 있다. 제3 서브블록 룩업 테이블(323)은, 예컨대 2개 코드워드 맵핑들을 포함하는 서브블록 룩업 테이블들(A2, A3, A5, B3, B4)로 구성될 수 있다. 제4 서브블록 룩업 테이블(324)은, 예컨대 1개 코드워드 맵핑을 포함하는 서브블록 룩업 테이블들(A4)로 구성될 수 있다. 서브블록 룩업 테이블들(A1~A5, B1~B4, ~B)은 도 5a 내지 도 5c에서 구체적으로 설명될 것이다.Referring to FIG. 3 , the logic circuit 114 of the PAM-4 encoder 112 includes a combination lookup table 310 and first to fourth subblock lookup tables 321 - concatenated in a lookup table set 320 . 324) may be included. The first subblock lookup table 321 may be composed of subblock lookup tables B1 and B1 including the largest number of codeword mappings, for example, 8 codeword mappings. The ~B1 subblock lookup table may be configured to provide an inverted codeword mapping corresponding to the B1 subblock lookup table. The ~B1 subblock lookup table may be configured to support MTA between the last symbol and the first symbol of a codeword in the combined subblock lookup tables. The second subblock lookup table 322 may be composed of, for example, subblock lookup tables A1 and B2 including four codeword mappings. The third subblock lookup table 323 may be composed of, for example, subblock lookup tables A2, A3, A5, B3, and B4 including two codeword mappings. The fourth subblock lookup table 324 may be composed of, for example, subblock lookup tables A4 including one codeword mapping. The sub-block lookup tables A1 to A5, B1 to B4, and B will be described in detail with reference to FIGS. 5A to 5C.

도 3 및 도 4를 참조하면, 조합 룩업 테이블(310)은 7-비트 유저 데이터 b[6:0]에 대응하는 코드워드 맵핑을 제공하기 위하여, 유저 데이터 b[6:0] 유형에 따라 조합되는 서브블록 룩업 테이블들(A1~A5, B1~B4, ~B)을 설정할 수 있다. 유저 데이터 b[6:0]는 도 2에서 설명된 1/2 데이터 버스트의 유저 데이터 d0[7:1]에 데응할 수 있다.3 and 4 , the combination lookup table 310 is combined according to the type of user data b[6:0] to provide a codeword mapping corresponding to the 7-bit user data b[6:0]. Subblock lookup tables A1 to A5, B1 to B4, and to B can be set. User data b[6:0] may correspond to user data d0[7:1] of the 1/2 data burst described in FIG. 2 .

예시적으로, 7-비트 유저 데이터 b[6:0]의 b5:b6 비트 값이 00 이면, A1 서브블록 룩업 테이블과 B1 서브블록 룩업 테이블이 조합되도록 설정될 수 있다. A1 서브블록 룩업 테이블은 b0:b1 비트 값에 대응하는 코드워드 맵핑을 제공할 수 있다. A1 서브블록 룩업 테이블은 2-비트에 대응하는 4개 코드워드 맵핑들을 포함하고, 제2 서브블록 룩업 테이블(322)에 포함될 수 있다. B1 서브블록 룩업 테이블은 b2:b3:b4 비트 값에 대응하는 코드워드 맵핑을 제공할 수 있다. B1 서브블록 룩업 테이블은 3-비트에 대응하는 8개 코드워드 맵핑들을 포함하고, 제1 서브블록 룩업 테이블(321)에 포함될 수 있다. 이에 따라, 7-비트 유저 데이터 b[6:0]의 b5:b6 비트 값 00에 대한 조합 심볼 인코딩 A1xB1에 의해 구성되는 코드워드들(4*8=32)이 제공될 수 있다.For example, when the b5:b6 bit value of the 7-bit user data b[6:0] is 00, the A1 subblock lookup table and the B1 subblock lookup table may be set to be combined. The A1 subblock lookup table may provide a codeword mapping corresponding to the b0:b1 bit values. The A1 subblock lookup table includes 4 codeword mappings corresponding to 2-bits, and may be included in the second subblock lookup table 322 . The B1 subblock lookup table may provide a codeword mapping corresponding to the b2:b3:b4 bit values. The B1 subblock lookup table includes 8 codeword mappings corresponding to 3-bits, and may be included in the first subblock lookup table 321 . Accordingly, codewords (4*8=32) constructed by the combinatorial symbol encoding A1xB1 for the b5:b6 bit value 00 of the 7-bit user data b[6:0] can be provided.

7-비트 유저 데이터 b[6:0]의 b4:b5:b6 비트 값이 001 이면, A1 서브블록 룩업 테이블과 B2 서브블록 룩업 테이블이 조합되도록 설정될 수 있다. A1 서브블록 룩업 테이블은 b0:b1 비트 값에 대응하는 코드워드 맵핑을 제공할 수 있다. B2 서브블록 룩업 테이블은 b2:b3 비트 값에 대응하는 코드워드 맵핑을 제공할 수 있다. B2 서브블록 룩업 테이블은 2-비트에 대응하는 4개 코드워드 맵핑들을 포함하고, 제2 서브블록 룩업 테이블(322)에 포함될 수 있다. 이에 따라, 7-비트 유저 데이터 b[6:0]의 b4:b5:b6 비트 값 001에 대한 조합 심볼 인코딩 A1xB2에 의해 구성되는 코드워드들(4*4=16)이 제공될 수 있다.When the b4:b5:b6 bit value of the 7-bit user data b[6:0] is 001, the A1 subblock lookup table and the B2 subblock lookup table may be set to be combined. The A1 subblock lookup table may provide a codeword mapping corresponding to the b0:b1 bit values. The B2 subblock lookup table may provide a codeword mapping corresponding to the b2:b3 bit values. The B2 subblock lookup table includes 4 codeword mappings corresponding to 2-bits, and may be included in the second subblock lookup table 322 . Accordingly, codewords (4*4=16) constructed by the combinatorial symbol encoding A1xB2 for the b4:b5:b6 bit value 001 of the 7-bit user data b[6:0] can be provided.

7-비트 유저 데이터 b[6:0]의 b4:b5:b6 비트 값이 101 이면, A2 서브블록 룩업 테이블과 B1 서브블록 룩업 테이블이 조합되도록 설정될 수 있다. A2 서브블록 룩업 테이블은 b0 비트 값에 대응하는 코드워드 맵핑을 제공할 수 있다. A2 서브블록 룩업 테이블은 1-비트에 대응하는 2개 코드워드 맵핑들을 포함하고, 제3 서브블록 룩업 테이블(323)에 포함될 수 있다. B1 서브블록 룩업 테이블은 b1:b2:b3 비트 값에 대응하는 코드워드 맵핑을 제공할 수 있다. 이에 따라, 7-비트 유저 데이터 b[6:0]의 b4:b5:b6 비트 값 101에 대한 조합 심볼 인코딩 A2xB1에 의해 구성되는 코드워드들(2*8=16)이 제공될 수 있다.When the b4:b5:b6 bit value of the 7-bit user data b[6:0] is 101, the A2 subblock lookup table and the B1 subblock lookup table may be set to be combined. The A2 subblock lookup table may provide a codeword mapping corresponding to the b0 bit value. The A2 subblock lookup table includes two codeword mappings corresponding to 1-bit, and may be included in the third subblock lookup table 323 . The B1 subblock lookup table may provide a codeword mapping corresponding to the b1:b2:b3 bit values. Accordingly, codewords (2*8=16) constructed by the combinatorial symbol encoding A2xB1 for the b4:b5:b6 bit value 101 of the 7-bit user data b[6:0] can be provided.

7-비트 유저 데이터 b[6:0]의 b4:b5:b6 비트 값이 010 이면, A3 서브블록 룩업 테이블과 B1 서브블록 룩업 테이블이 조합되도록 설정될 수 있다. A3 서브블록 룩업 테이블은 b0 비트 값에 대응하는 코드워드 맵핑을 제공할 수 있다. A3 서브블록 룩업 테이블은 1-비트에 대응하는 2개 코드워드 맵핑들을 포함하고, 제3 서브블록 룩업 테이블(323)에 포함될 수 있다. B1 서브블록 룩업 테이블은 b1:b2:b3 비트 값에 대응하는 코드워드 맵핑을 제공할 수 있다. 이에 따라, 7-비트 유저 데이터 b[6:0]의 b4:b5:b6 비트 값 010에 대한 조합 심볼 인코딩 A3xB1에 의해 구성되는 코드워드들(2*8=16)이 제공될 수 있다.When the b4:b5:b6 bit value of the 7-bit user data b[6:0] is 010, the A3 subblock lookup table and the B1 subblock lookup table may be set to be combined. The A3 subblock lookup table may provide a codeword mapping corresponding to the b0 bit value. The A3 subblock lookup table includes two codeword mappings corresponding to 1-bit, and may be included in the third subblock lookup table 323 . The B1 subblock lookup table may provide a codeword mapping corresponding to the b1:b2:b3 bit values. Accordingly, codewords (2*8=16) constructed by the combinatorial symbol encoding A3xB1 for the b4:b5:b6 bit value 010 of the 7-bit user data b[6:0] can be provided.

7-비트 유저 데이터 b[6:0]의 b4:b5:b6 비트 값이 110 이면, A5 서브블록 룩업 테이블과 ~B1 서브블록 룩업 테이블이 조합되도록 설정될 수 있다. A5 서브블록 룩업 테이블은 b0 비트 값에 대응하는 코드워드 맵핑을 제공할 수 있다. A5 서브블록 룩업 테이블은 1-비트에 대응하는 2개 코드워드 맵핑들을 포함하고, 제3 서브블록 룩업 테이블(323)에 포함될 수 있다. ~B1 서브블록 룩업 테이블은 b1:b2:b3 비트 값에 대응하는 코드워드 맵핑을 제공할 수 있다. ~B1 서브블록 룩업 테이블은 3-비트에 대응하는 8개 코드워드 맵핑들을 포함하고, 제1 서브블록 룩업 테이블(321)에 포함될 수 있다. 이에 따라, 7-비트 유저 데이터 b[6:0]의 b4:b5:b6 비트 값 110에 대한 조합 심볼 인코딩 A5x~B1에 의해 구성되는 코드워드들(2*8=16)이 제공될 수 있다.If the b4:b5:b6 bit value of the 7-bit user data b[6:0] is 110, the A5 subblock lookup table and the ~B1 subblock lookup table may be set to be combined. The A5 subblock lookup table may provide a codeword mapping corresponding to the b0 bit value. The A5 subblock lookup table includes two codeword mappings corresponding to 1-bit, and may be included in the third subblock lookup table 323 . The ~B1 subblock lookup table may provide a codeword mapping corresponding to the b1:b2:b3 bit values. The ~B1 subblock lookup table includes 8 codeword mappings corresponding to 3-bits, and may be included in the first subblock lookup table 321 . Accordingly, codewords (2*8=16) constructed by combinatorial symbol encoding A5x to B1 for the b4:b5:b6 bit value 110 of the 7-bit user data b[6:0] may be provided. .

7-비트 유저 데이터 b[6:0]의 b3:b4:b5:b6 비트 값이 0011 이면, A1 서브블록 룩업 테이블과 B3 서브블록 룩업 테이블이 조합되도록 설정될 수 있다. A1 서브블록 룩업 테이블은 b0:b1 비트 값에 대응하는 코드워드 맵핑을 제공할 수 있다. B3 서브블록 룩업 테이블은 b2 비트 값에 대응하는 코드워드 맵핑을 제공할 수 있다. B3 서브블록 룩업 테이블은 1-비트에 대응하는 2개 코드워드 맵핑들을 포함하고, 제3 서브블록 룩업 테이블(323)에 포함될 수 있다. 이에 따라, 7-비트 유저 데이터 b[6:0]의 b3:b4:b5:b6 비트 값 0011에 대한 조합 심볼 인코딩 A1xB3에 의해 구성되는 코드워드들(4*2=8)이 제공될 수 있다.When the b3:b4:b5:b6 bit value of the 7-bit user data b[6:0] is 0011, the A1 subblock lookup table and the B3 subblock lookup table may be set to be combined. The A1 subblock lookup table may provide a codeword mapping corresponding to the b0:b1 bit values. The B3 subblock lookup table may provide a codeword mapping corresponding to the b2 bit value. The B3 subblock lookup table includes two codeword mappings corresponding to 1-bit, and may be included in the third subblock lookup table 323 . Accordingly, codewords (4*2=8) constructed by the combinatorial symbol encoding A1xB3 for the b3:b4:b5:b6 bit value 0011 of the 7-bit user data b[6:0] can be provided .

7-비트 유저 데이터 b[6:0]의 b3:b4:b5:b6 비트 값이 1011 이면, A2 서브블록 룩업 테이블과 B2 서브블록 룩업 테이블이 조합되도록 설정될 수 있다. A2 서브블록 룩업 테이블은 b0 비트 값에 대응하는 코드워드 맵핑을 제공할 수 있다. B2 서브블록 룩업 테이블은 b1:b2 비트 값에 대응하는 코드워드 맵핑을 제공할 수 있다. 이에 따라, 7-비트 유저 데이터 b[6:0]의 b3:b4:b5:b6 비트 값 1011에 대한 조합 심볼 인코딩 A2xB2에 의해 구성되는 코드워드들(2*4=8)이 제공될 수 있다.When the b3:b4:b5:b6 bit value of the 7-bit user data b[6:0] is 1011, the A2 subblock lookup table and the B2 subblock lookup table may be set to be combined. The A2 subblock lookup table may provide a codeword mapping corresponding to the b0 bit value. The B2 subblock lookup table may provide a codeword mapping corresponding to the b1:b2 bit values. Accordingly, codewords (2*4=8) constructed by the combinatorial symbol encoding A2xB2 for the b3:b4:b5:b6 bit value 1011 of the 7-bit user data b[6:0] can be provided. .

7-비트 유저 데이터 b[6:0]의 b3:b4:b5:b6 비트 값이 0111 이면, A4 서브블록 룩업 테이블과 B1 서브블록 룩업 테이블이 조합되도록 설정될 수 있다. A4 서브블록 룩업 테이블은 1개 코드워드 맵핑을 포함하고, 제4 서브블록 룩업 테이블(324)에 포함될 수 있다. B1 서브블록 룩업 테이블은 b0:b1:b2 비트 값에 대응하는 코드워드 맵핑을 제공할 수 있다. 이에 따라, 7-비트 유저 데이터 b[6:0]의 b3:b4:b5:b6 비트 값 0111에 대한 조합 심볼 인코딩 A4xB1에 의해 구성되는 코드워드들(1*8=8)이 제공될 수 있다.If the b3:b4:b5:b6 bit value of the 7-bit user data b[6:0] is 0111, the A4 subblock lookup table and the B1 subblock lookup table may be set to be combined. The A4 subblock lookup table includes one codeword mapping, and may be included in the fourth subblock lookup table 324 . The B1 subblock lookup table may provide a codeword mapping corresponding to the b0:b1:b2 bit values. Accordingly, codewords (1*8=8) constructed by the combinatorial symbol encoding A4xB1 for the b3:b4:b5:b6 bit value 0111 of the 7-bit user data b[6:0] can be provided. .

7-비트 유저 데이터 b[6:0]의 b2:b3b4:b5:b6 비트 값이 01111 이면, A2 서브블록 룩업 테이블과 B3 서브블록 룩업 테이블이 조합되도록 설정될 수 있다. A2 서브블록 룩업 테이블은 b0 비트 값에 대응하는 코드워드 맵핑을 제공할 수 있다. B3 서브블록 룩업 테이블은 b1 비트 값에 대응하는 코드워드 맵핑을 제공할 수 있다. 이에 따라, 7-비트 유저 데이터 b[6:0]의 b2:b3b4:b5:b6 비트 값 01111 에 대한 조합 심볼 인코딩 A2xB3에 의해 구성되는 코드워드들(2*2=4)이 제공될 수 있다.When the b2:b3b4:b5:b6 bit value of the 7-bit user data b[6:0] is 01111, the A2 subblock lookup table and the B3 subblock lookup table may be set to be combined. The A2 subblock lookup table may provide a codeword mapping corresponding to the b0 bit value. The B3 subblock lookup table may provide a codeword mapping corresponding to the b1 bit value. Accordingly, codewords (2*2=4) constructed by the combinatorial symbol encoding A2xB3 for the b2:b3b4:b5:b6 bit value 01111 of the 7-bit user data b[6:0] can be provided. .

7-비트 유저 데이터 b[6:0]의 b2:b3b4:b5:b6 비트 값이 11111 이면, A3 서브블록 룩업 테이블과 B4 서브블록 룩업 테이블이 조합되도록 설정될 수 있다. A3 서브블록 룩업 테이블은 b0 비트 값에 대응하는 코드워드 맵핑을 제공할 수 있다. B4 서브블록 룩업 테이블은 b1 비트 값에 대응하는 코드워드 맵핑을 제공할 수 있다. B4 서브블록 룩업 테이블은 1-비트에 대응하는 2개 코드워드 맵핑들을 포함하고, 제3 서브블록 룩업 테이블(323)에 포함될 수 있다. 이에 따라, 7-비트 유저 데이터 b[6:0]의 b2:b3b4:b5:b6 비트 값 11111 에 대한 조합 심볼 인코딩 A3xB4에 의해 구성되는 코드워드들(2*2=4)이 제공될 수 있다.When the b2:b3b4:b5:b6 bit value of the 7-bit user data b[6:0] is 11111, the A3 subblock lookup table and the B4 subblock lookup table may be set to be combined. The A3 subblock lookup table may provide a codeword mapping corresponding to the b0 bit value. The B4 subblock lookup table may provide a codeword mapping corresponding to the b1 bit value. The B4 subblock lookup table includes two codeword mappings corresponding to 1-bit, and may be included in the third subblock lookup table 323 . Accordingly, codewords (2*2=4) constructed by the combinatorial symbol encoding A3xB4 for the b2:b3b4:b5:b6 bit value 11111 of the 7-bit user data b[6:0] can be provided. .

도 5a를 참조하면, A1 및 A2 서브블록 룩업 테이블들 각각은 B1, B2 및 B3 서브블록 룩업 테이블들과 선택적으로 조합될 수 있다. A1 서브 룩업 테이블은 2-비트 값이 00일 때 심볼 레벨 01로 변환되고, 01일 때 심볼 레벨 11로 변환되고, 10일 때 심볼 레벨 02로 변환되고, 11일 때 심볼 레벨 21로 변환되도록 코드워드 인코딩할 수 있다. A2 서브 룩업 테이블은 1-비트 값이 0일 때 심볼 레벨 12로 변환되고, 1일 때 심볼 레벨 22로 변환되도록 코드워드 인코딩할 수 있다. A1 및 A2 서브블록 룩업 테이블들은 첫번째 심볼 레벨 0, 1 또는 2와 마지막 심볼 레벨 1 또는 2의 조합으로 구성될 수 있다. Referring to FIG. 5A , each of the A1 and A2 subblock lookup tables may be selectively combined with the B1, B2 and B3 subblock lookup tables. The A1 sub lookup table is code such that the 2-bit value is converted to symbol level 01 when it is 00, converted to symbol level 11 when it is 01, converted to symbol level 02 when it is 10, and converted to symbol level 21 when it is 11 It can be word encoded. The A2 sub lookup table may be codeword-encoded so that when the 1-bit value is 0, it is converted to symbol level 12, and when the 1-bit value is 1, it is converted to symbol level 22. The A1 and A2 subblock lookup tables may consist of a combination of the first symbol level 0, 1, or 2 and the last symbol level 1 or 2.

B1 서브 룩업 테이블은 3-비트 값이 000일 때 심볼 레벨 00으로 변환되고, 001일 때 심볼 레벨 01로 변환되고, 010일 때 심볼 레벨 10으로 변환되고, 011일 때 심볼 레벨 11로 변환되고, 100일 때 심볼 레벨 02으로 변환되고, 101일 때 심볼 레벨 20으로 변환되고, 110일 때 심볼 레벨 21으로 변환되고, 111일 때 심볼 레벨 12로 변환되도록 코드워드 인코딩할 수 있다. B2 서브 룩업 테이블은 2-비트 값이 00일 때 심볼 레벨 22로 변환되고, 01일 때 심볼 레벨 31로 변환되고, 10일 때 심볼 레벨 13으로 변환되고, 11일 때 심볼 레벨 23으로 변환되도록 코드워드 인코딩할 수 있다. B3 서브 룩업 테이블은 1-비트 값이 0일 때 심볼 레벨 32로 변환되고, 1일 때 심볼 레벨 33으로 변환되도록 코드워드 인코딩할 수 있다. B1 내지 B3 서브블록 룩업 테이블들은 첫번째 심볼 레벨 0, 1, 2 또는 3의 조합으로 구성될 수 있다.B1 sub lookup table is converted to symbol level 00 when the 3-bit value is 000, converted to symbol level 01 when 001, converted to symbol level 10 when 010, converted to symbol level 11 when 011, When it is 100, it is converted to symbol level 02, when it is 101, it is converted to symbol level 20, when it is 110, it is converted to symbol level 21, and when it is 111, it can be codeword-encoded. The B2 sub lookup table is code such that when the 2-bit value is 00, it is converted to symbol level 22, when it is 01, it is converted to symbol level 31, when it is 10, it is converted to symbol level 13, when it is 11, it is converted to symbol level 23. It can be word encoded. The B3 sub lookup table may be codeword-encoded so that when the 1-bit value is 0, it is converted to symbol level 32, and when it is 1, it is converted to symbol level 33. The B1 to B3 subblock lookup tables may consist of a combination of the first symbol level 0, 1, 2, or 3.

도 5a에서, A1 및 A2 서브블록 룩업 테이블들 및 B1, B2 및 B3 서브블록 룩업 테이블들 각 코드워드 내 심볼 간에 레벨 0에서 레벨 3으로 또는 레벨 3에서 레벨 0으로 최대 천이(Maximun Transition: MT) 이벤트가 발생하지 않는 MTA를 지원할 수 있다. 또한, A1 및 A2 서브블록 룩업 테이블들의 코드워드들의 마지막 심볼과 B1, B2 및 B3 서브블록 룩업 테이블들의 코드워드들의 첫번째 심볼 사이에서도 MT 이벤트가 발생하지 않는 MTA를 지원하도록 구성될 수 있다.In FIG. 5A , the A1 and A2 subblock lookup tables and the B1, B2 and B3 subblock lookup tables Maximum transition (MT) from level 0 to level 3 or level 3 to level 0 between symbols within each codeword It can support the MTA in which no event occurs. In addition, it may be configured to support an MTA in which an MT event does not occur even between the last symbol of the codewords of the A1 and A2 subblock lookup tables and the first symbol of the codewords of the B1, B2 and B3 subblock lookup tables.

도 5b를 참조하면, A3 및 A4 서브블록 룩업 테이블들 각각은 B1 및 B4 서브블록 룩업 테이블들과 선택적으로 조합될 수 있다. A3 서브 룩업 테이블은 1-비트 값이 0일 때 심볼 레벨 00으로 변환되고, 1일 때 심볼 레벨 10으로 변환되도록 코드워드 인코딩할 수 있다. A4 서브 룩업 테이블은 하나의 심볼 레벨 20을 제공할 수 있다. A3 및 A4 서브블록 룩업 테이블들은 첫번째 심볼 레벨 0, 1 또는 2와 마지막 심볼 레벨 1의 조합으로 구성될 수 있다.Referring to FIG. 5B , each of the A3 and A4 subblock lookup tables may be selectively combined with the B1 and B4 subblock lookup tables. The A3 sub lookup table may be codeword-encoded so that when the 1-bit value is 0, it is converted to symbol level 00, and when the 1-bit value is 1, it is converted to symbol level 10. The A4 sub lookup table may provide one symbol level 20. The A3 and A4 subblock lookup tables may consist of a combination of the first symbol level 0, 1, or 2 and the last symbol level 1.

B1 서브블록 룩업 테이블은 도 5a에서 설명한 바와 동일하다. B4 서브블록 룩업 테이블들은 1-비트 값이 0일 때 심볼 레벨 22로 변환되고, 1일 때 심볼 레벨 13으로 변환되도록 코드워드 인코딩할 수 있다. B1 및 B4 서브블록 룩업 테이블들은 첫번째 심볼 레벨 0, 1, 또는 2의 조합으로 구성될 수 있다.The B1 subblock lookup table is the same as described with reference to FIG. 5A. The B4 subblock lookup tables may be codeword-encoded so that when a 1-bit value is 0, it is converted to symbol level 22, and when it is 1, it is converted to symbol level 13. The B1 and B4 subblock lookup tables may consist of a combination of the first symbol level 0, 1, or 2.

도 5b에서, A3 및 A4 서브블록 룩업 테이블들과 B1 및 B4 서브블록 룩업 테이블들은 각 코드워드 내 심볼 간에 MTA를 지원할 수 있다. 또한, A1 및 A2 서브블록 룩업 테이블들의 코드워드들의 마지막 심볼과 B1, B2 및 B3 서브블록 룩업 테이블들의 코드워드들의 첫번째 심볼 사이에서도 MT 이벤트가 발생하지 않는 MTA를 지원하도록 구성될 수 있다.In FIG. 5B , the A3 and A4 subblock lookup tables and the B1 and B4 subblock lookup tables may support MTA between symbols within each codeword. In addition, it may be configured to support an MTA in which an MT event does not occur even between the last symbol of the codewords of the A1 and A2 subblock lookup tables and the first symbol of the codewords of the B1, B2 and B3 subblock lookup tables.

도 5c를 참조하면, A5 서브블록 룩업 테이블은 ~B1 서브블록 룩업 테이블들과 선택적으로 조합될 수 있다. A5 서브 룩업 테이블은 1-비트 값이 0일 때 심볼 레벨 13으로 변환되고, 1일 때 심볼 레벨 23으로 변환되도록 코드워드 인코딩할 수 있다. A5 서브블록 룩업 테이블은 첫번째 심볼 레벨 0, 1 또는 2와 마지막 심볼 레벨 3의 조합으로 구성될 수 있다.Referring to FIG. 5C , the A5 subblock lookup table may be selectively combined with the ~B1 subblock lookup tables. The A5 sub lookup table may be codeword-encoded so that when the 1-bit value is 0, it is converted to symbol level 13, and when it is 1, it is converted to symbol level 23. The A5 subblock lookup table may consist of a combination of the first symbol level 0, 1, or 2 and the last symbol level 3.

~B1 서브 룩업 테이블은, 도 5a에서 설명된 B1 서브블록 룩업 테이블의 심볼 레벨이 반전된 코드워드를 제공할 수 있다. ~B1 서브 룩업 테이블은, 3-비트 값이 000일 때 심볼 레벨 33으로 변환되고, 001일 때 심볼 레벨 32로 변환되고, 010일 때 심볼 레벨 23으로 변환되고, 011일 때 심볼 레벨 22로 변환되고, 100일 때 심볼 레벨 31으로 변환되고, 101일 때 심볼 레벨 13으로 변환되고, 110일 때 심볼 레벨 12으로 변환되고, 111일 때 심볼 레벨 21로 변환되도록 코드워드 인코딩할 수 있다. ~B1 서브블록 룩업 테이블은 첫번째 심볼 레벨 1, 2, 또는 3의 조합으로 구성되고 레벨 0이 존재하지 않는다. 이는 A5 서브블록 룩업 테이블이 마지막 심볼이 레벨 3이기 때문에 ~B1 서브블록 룩업 테이블의 첫번째 심볼에 레벨 0을 없앰으로써, MTA를 지원하기 위함이다.The ~B1 sub lookup table may provide a codeword in which the symbol level of the B1 subblock lookup table described with reference to FIG. 5A is inverted. ~B1 sub lookup table, the 3-bit value is converted to symbol level 33 when it is 000, converted to symbol level 32 when it is 001, converted to symbol level 23 when it is 010, and converted to symbol level 22 when it is 011 When it is 100, it is converted to symbol level 31, when it is 101, it is converted to symbol level 13, when it is 110, it is converted to symbol level 12, and when it is 111, it can be codeword-encoded. The ~B1 subblock lookup table consists of a combination of the first symbol level 1, 2, or 3, and there is no level 0. This is to support the MTA by removing level 0 from the first symbol of the ~B1 subblock lookup table because the last symbol of the A5 subblock lookup table is level 3.

7-비트 유저 데이터는 도 3 내지 도 5c을 참조하여 코드워드로 디코딩될 수 있다. 예로서, 7-비트 유저 데이터 b0:b1:b2:b3b4:b5:b6 비트 값이 0010000인 경우, b5:b6 비트 값 00에 따라, 조합 룩업 테이블(310)에서 조합 심볼 인코딩 A1xB1이 선택될 수 있다. b0:b1 비트 값 00에 따라 서브블록 룩업 테이블 A1의 심볼 레벨 01이 선택되고, b2:b3:b4 비트 값 100에 따라 서브블록 룩업 테이블 B1의 심볼 레벨 02가 선택될 수 있다. 이에 따라, 7-비트 유저 데이터 0010000은 조합 심볼 0102의 코드워드로 변환될 수 있다.The 7-bit user data may be decoded into a codeword with reference to FIGS. 3-5C. For example, if the 7-bit user data b0:b1:b2:b3b4:b5:b6 bit value is 0010000, the combination symbol encoding A1xB1 may be selected from the combination lookup table 310 according to the b5:b6 bit value 00. have. The symbol level 01 of the subblock lookup table A1 may be selected according to the b0:b1 bit value 00, and the symbol level 02 of the subblock lookup table B1 may be selected according to the b2:b3:b4 bit value 100. Accordingly, the 7-bit user data 0010000 may be converted into a codeword of the combination symbol 0102.

예를 들어, 7-비트 유저 데이터 b0:b1:b2:b3b4:b5:b6 비트 값이 0101011 이라고 가정하자. b3:b4:b5:b6 비트 값 1011에 따라, 조합 룩업 테이블(310)에서 조합 심볼 인코딩 A2xB3가 선택될 수 있다. b0 비트 값 0에 따라 서브블록 룩업 테이블 A2의 심볼 레벨 12가 선택되고, b1:b2 비트 값 10에 따라 서브블록 룩업 테이블 B3의 심볼 레벨 13이 선택될 수 있다. 이에 따라, 7-비트 유저 데이터 0101011은 조합 심볼 1213의 코드워드로 변환될 수 있다.For example, assume that the 7-bit user data b0:b1:b2:b3b4:b5:b6 bit value is 0101011. According to the b3:b4:b5:b6 bit value 1011 , the combination symbol encoding A2xB3 may be selected from the combination lookup table 310 . The symbol level 12 of the subblock lookup table A2 may be selected according to the b0 bit value 0, and the symbol level 13 of the subblock lookup table B3 may be selected according to the b1:b2 bit value 10. Accordingly, the 7-bit user data 0101011 may be converted into a codeword of the combination symbol 1213 .

예를 들어, 7-비트 유저 데이터 b0:b1:b2:b3b4:b5:b6 비트 값이 1101010인 경우, b4:b5:b6 비트 값 010에 따라, 조합 룩업 테이블(310)에서 조합 심볼 인코딩 A3xB1이 선택될 수 있다. b0 비트 값 1에 따라 서브블록 룩업 테이블 A3의 심볼 레벨 10가 선택되고, b1:b2:b3 비트 값 101에 따라 서브블록 룩업 테이블 B1의 심볼 레벨 20이 선택될 수 있다. 이에 따라, 7-비트 유저 데이터 1101010은 조합 심볼 1020의 코드워드로 변환될 수 있다.For example, if the 7-bit user data b0:b1:b2:b3b4:b5:b6 bit value is 1101010, according to the b4:b5:b6 bit value 010, the combination symbol encoding A3xB1 in the combination lookup table 310 is can be selected. The symbol level 10 of the subblock lookup table A3 may be selected according to the b0 bit value 1, and the symbol level 20 of the subblock lookup table B1 may be selected according to the b1:b2:b3 bit value 101. Accordingly, the 7-bit user data 1101010 may be converted into a codeword of the combination symbol 1020 .

예를 들어, 7-비트 유저 데이터 b0:b1:b2:b3b4:b5:b6 비트 값이 0000110 인 경우, b4:b5:b6 비트 값 110에 따라, 조합 룩업 테이블(310)에서 조합 심볼 인코딩 A5x~B1가 선택될 수 있다. b0 비트 값 0에 따라 서브블록 룩업 테이블 A5의 심볼 레벨 13가 선택되고, b1:b2:b3 비트 값 000에 따라 ~B1 서브블록 룩업 테이블의 심볼 레벨 33이 선택될 수 있다. 이에 따라, 7-비트 유저 데이터 0000110은 조합 심볼 1333의 코드워드로 변환될 수 있다.For example, when the 7-bit user data b0:b1:b2:b3b4:b5:b6 bit value is 0000110, according to the b4:b5:b6 bit value 110, the combination symbol encoding A5x in the combination lookup table 310 is B1 may be selected. The symbol level 13 of the subblock lookup table A5 may be selected according to the b0 bit value 0, and the symbol level 33 of the ~B1 subblock lookup table may be selected according to the b1:b2:b3 bit value 000. Accordingly, the 7-bit user data 0000110 may be converted into a codeword of the combination symbol 1333 .

도 6은 도 1의 PAM-4 인코더의 동작 방법(600)을 설명하는 플로우챠트이다.6 is a flowchart illustrating a method 600 of operation of the PAM-4 encoder of FIG. 1 .

도 1 내지 도 5c와 연계하여 도 6을 참조하면, PAM-4 인코더(112)는 시리얼 데이터 라인 DQ[i]으로 전송될 유저 데이터 16 비트 데이터 버스트들을 수신할 수 있다(S601). PAM-4 인코더(112)는 16 비트 데이터 버스트를 제1 1/2 데이터 버스트 d0[0]d0[7:1] 및 제2 1/2 데이터 버스트 d0[8]d0[15:9]로 나누고(S602), 각 1/2 데이터 버스트의 하나의 비트, 예컨대 d0[0] 및 d0[8]을 DBI 신호 라인으로 전달할 수 있다(S603). PAM-4 인코더(112)는 비트 쌍 d0[0] 및 d0[8]을 PAM-4 심볼로 결합하고(S604), PAM-4 심볼을 DBI 신호 라인으로 전송할 수 있다(S605).Referring to FIG. 6 in conjunction with FIGS. 1 to 5C , the PAM-4 encoder 112 may receive user data 16-bit data bursts to be transmitted through the serial data line DQ[i] (S601). The PAM-4 encoder 112 divides the 16-bit data burst into 1 1/2 data bursts d0[0]d0[7:1] and 2 1/2 data bursts d0[8]d0[15:9] (S602), one bit of each 1/2 data burst, for example, d0[0] and d0[8] may be transferred to the DBI signal line (S603). The PAM-4 encoder 112 may combine the bit pairs d0[0] and d0[8] into a PAM-4 symbol (S604), and transmit the PAM-4 symbol to a DBI signal line (S605).

PAM-4 인코더(112)는 각 1/2 데이터 버스트의 DBI 신호 라인의 PAM-4 심볼로 사용되지 않은 나머지 7 비트들을 코드워드로 변환하는 7:8 비트 인코딩을 수행할 수 있다(S606). 7:8 비트 인코딩은 조합 룩업 테이블(310) 및 룩업 테이블 세트(320) 내 연접 배치된 제1 내지 제4 서브블록 룩업 테이블들(321-324)을 사용하여 수행될 수 있다. 조합 룩업 테이블(310)에서 제공되는 7-비트 데이터 유형에 따라 조합되는 서브블록 룩업 테이블들(A1~A5, B1~B4, ~B)에 의해 7-비트 데이터에 대응하는 코드워드가 생성될 수 있다. PAM-4 인코더(112)는 코드워드를 채널 라인(130) 상으로 전송할 수 있다(S607).The PAM-4 encoder 112 may perform 7:8-bit encoding by converting the remaining 7 bits not used as PAM-4 symbols of the DBI signal line of each 1/2 data burst into a codeword (S606). 7:8 bit encoding may be performed using the combinatorial lookup table 310 and the first to fourth subblock lookup tables 321-324 concatenated in the lookup table set 320 . A codeword corresponding to 7-bit data may be generated by the sub-block lookup tables A1 to A5, B1 to B4, and to B combined according to the 7-bit data type provided from the combination lookup table 310. have. The PAM-4 encoder 112 may transmit the codeword on the channel line 130 (S607).

도 7은 도 1의 PAM-4 디코더의 룩업 테이블들을 설명하고, 도 8은 도 7의 코드워드 디코딩 룩업 테이블을 설명하는 도면들이다.FIG. 7 is a diagram illustrating lookup tables of the PAM-4 decoder of FIG. 1 , and FIG. 8 is a diagram illustrating a codeword decoding lookup table of FIG. 7 .

도 1 및 도 7을 참조하면, PAM-4 디코더(122)의 로직 회로(124)는 조합 룩업 테이블(310), 룩업 테이블 세트(320) 및 코드워드 디코딩 룩업 테이블(710)을 포함할 수 있다. PAM-4 디코더(122)의 조합 룩업 테이블(310) 및 룩업 테이블 세트(320)는 앞서 설명된 도 3의 조합 룩업 테이블(310) 및 룩업 테이블 세트(320)와 동일하게 구성될 수 있다. PAM-4 디코더(122)는 PAM-4 인코더(112)에서 인코딩된 코드워드를 채널 라인(130)을 통해 수신하고, 룩업 테이블들을 사용하여 코드워드에 대응하여 8:7 비트 디코딩을 수행할 수 있다. 코드워드 디코딩 룩업 테이블(710)은 조합 룩업 테이블(310) 및 서브블록 룩업 테이블들(321-324)과 결합하여 코드워드에 대응하는 데이터 버스트를 복원할 수 있다.1 and 7 , the logic circuit 124 of the PAM-4 decoder 122 may include a combinational lookup table 310 , a lookup table set 320 , and a codeword decoding lookup table 710 . . The combination lookup table 310 and the lookup table set 320 of the PAM-4 decoder 122 may have the same configuration as the combination lookup table 310 and the lookup table set 320 of FIG. 3 described above. The PAM-4 decoder 122 may receive the codeword encoded by the PAM-4 encoder 112 through the channel line 130 and perform 8:7 bit decoding corresponding to the codeword using lookup tables. have. The codeword decoding lookup table 710 may be combined with the combinational lookup table 310 and the subblock lookup tables 321-324 to recover a data burst corresponding to the codeword.

도 8을 참조하면, 코드워드 디코딩 룩업 테이블(710)은 코드워드에 대응하는 룩업 테이블을 지정하는 룩업 테이블 맵핑들과 지정된 룩업 테이블에 해당하는 유저 데이터 비트 값을 제공하도록 구성될 수 있다. 코드워드의 첫번째 심불 레벨 0, 1, 2 및 3과 두번째 심볼 레벨 0, 1, 2 및 3의 조합에 따라 A1 내지 A5 서브블록 룩업 테이블들 중 하나가 지정될 수 있다. 예를 들어, 코드워드 00은 A3 서브블록 룩업 테이블에 지정되고, 해당 유저 데이터 비트 값은 0으로 설정될 수 있다. 코드워드 12는 A2 서브블록 룩업 테이블에 지정되고, 해당 유저 데이터 비트 값은 0으로 설정될 수 있다.Referring to FIG. 8 , the codeword decoding lookup table 710 may be configured to provide lookup table mappings designating a lookup table corresponding to a codeword and a user data bit value corresponding to the designated lookup table. One of the A1 to A5 subblock lookup tables may be designated according to a combination of the first symbol levels 0, 1, 2, and 3 of the codeword and the second symbol levels 0, 1, 2, and 3 of the codeword. For example, codeword 00 may be specified in the A3 subblock lookup table, and a corresponding user data bit value may be set to 0. Codeword 12 may be specified in the A2 subblock lookup table, and a corresponding user data bit value may be set to 0.

코드워드 디코딩 룩업 테이블(710)은 A1 내지 A5 서브블록 룩업 테이블과 조합되는 ~B1, B1 내지 B4 서브블록 룩업 테이블들을 나타내는 룩업 테이블 맵핑들(801-803)을 제공할 수 있다.Codeword decoding lookup table 710 may provide lookup table mappings 801-803 representing ˜B1, B1 through B4 subblock lookup tables that are combined with A1 through A5 subblock lookup table.

룩업 테이블 맵핑(801)은 A1 및 A2 서브블록 룩업 테이블들 각각과 조합되는 B1 내지 B3 서브블록 룩업 테이블들을 나타내고, A1 또는 A2 서브블록 룩업 테이블과 조합된 B1 내지 B3 서브블록 룩업 테이블들 각각의 해당 유저 데이터 비트 값을 나타낸다.The lookup table mapping 801 indicates the B1 to B3 subblock lookup tables combined with each of the A1 and A2 subblock lookup tables, and corresponding to each of the B1 to B3 subblock lookup tables combined with the A1 or A2 subblock lookup table. Indicates the user data bit value.

예를 들어, 코드워드 0102는 룩업 테이블 맵핑(801)을 참조하여 7-비트 유저 데이터 비트로 디코딩될 수 있다. 이전 코드워드 01에 A1 서브블록 룩업 테이블이 지정되어 해당 유저 데이터 비트 값은 00으로 설정될 수 있다. 현재 코드워드 02는 룩업 테이블 맵핑(801)을 참조하여 A1 서브블록 룩업 테이블과 조합되는 B1 서브블록 룩업 테이블이 지정되고, 해당 유저 데이터 비트 값은 100으로 설정될 수 있다. 코드워드 0102는 유저 데이터 비트 값 00, 및 100이 결합된 00100으로 변환될 수 있다. 조합된 서브블록 룩업 테이블 A1xB1은 조합 룩업 테이블(310, 도 4)을 참조하여 유저 데이터 비트 값 00으로 변환될 수 있다. 이에 따라, 코드워드 0102는 유저 데이터 비트 값 00100 및 00이 결합된 7-비트 유저 데이터 비트 0010000으로 복원될 수 있다.For example, codeword 0102 may be decoded into 7-bit user data bits with reference to lookup table mapping 801 . The A1 subblock lookup table is specified in the previous codeword 01, and the corresponding user data bit value may be set to 00. The current codeword 02 refers to the lookup table mapping 801 to designate the B1 subblock lookup table combined with the A1 subblock lookup table, and a corresponding user data bit value may be set to 100. Codeword 0102 may be converted to 00100 in which the user data bit value 00 and 100 are combined. The combined subblock lookup table A1xB1 may be converted into the user data bit value 00 with reference to the combined lookup table 310 ( FIG. 4 ). Accordingly, the codeword 0102 may be restored to the 7-bit user data bit 0010000 in which the user data bit values 00100 and 00 are combined.

예를 들어, 코드워드 1213의 경우, 이전 코드워드 12에 A2 서브블록 룩업 테이블이 지정될 때, 해당 유저 데이터 비트 값은 0으로 설정된다. 현재 코드워드 13은 룩업 테이블 맵핑(801)을 참조하여 A2 서브블록 룩업 테이블과 조합되는 B2 서브블록 룩업 테이블에 지정되고, 해당 유저 데이터 비트 값은 10으로 설정될 수 있다. 코드워드 1213은 유저 데이터 비트 값 0 및 10이 결합하여 010으로 변환될 수 있다. 조합된 서브블록 룩업 테이블 A2xB2은 조합 룩업 테이블(310, 도 4)을 참조하여 유저 데이터 비트 값 1011으로 변환될 수 있다. 이에 따라, 코드워드 1213은 유저 데이터 비트 값 010 및 1011이 결합된 7-비트 유저 데이터 비트 0101011로 복원될 수 있다.For example, in the case of codeword 1213, when the A2 subblock lookup table is specified in the previous codeword 12, the corresponding user data bit value is set to 0. The current codeword 13 is assigned to the B2 subblock lookup table combined with the A2 subblock lookup table with reference to the lookup table mapping 801 , and a corresponding user data bit value may be set to 10 . Codeword 1213 may be converted to 010 by combining user data bit values 0 and 10. The combined subblock lookup table A2xB2 may be converted into a user data bit value 1011 with reference to the combined lookup table 310 ( FIG. 4 ). Accordingly, the codeword 1213 may be restored to the 7-bit user data bit 0101011 in which the user data bit values 010 and 1011 are combined.

룩업 테이블 맵핑(802)은 A3 및 A5 서브블록 룩업 테이블들 각각과 조합되는 B1 및 B4 서브블록 룩업 테이블들을 나타내고, A1 또는 A2 서브블록 룩업 테이블과 조합된 B1 내지 B3 서브블록 룩업 테이블들 각각의 해당 유저 데이터 비트 값을 나타낸다.The lookup table mapping 802 represents the B1 and B4 subblock lookup tables combined with the A3 and A5 subblock lookup tables, respectively, and the corresponding of each of the B1 through B3 subblock lookup tables combined with the A1 or A2 subblock lookup table. Indicates the user data bit value.

예를 들어, 코드워드 1020은 룩업 테이블 맵핑(802)을 참조하여 7-비트 유저 데이터 비트로 디코딩될 수 있다. 이전 코드워드 10에 A3 서브블록 룩업 테이블이 지정되어 해당 유저 데이터 비트 값은 1로 설정될 수 있다. 현재 코드워드 20은 룩업 테이블 맵핑(802)을 참조하여 A3 서브블록 룩업 테이블과 조합되는 B1 서브블록 룩업 테이블이 지정되고, 해당 유저 데이터 비트 값은 101로 설정될 수 있다. 코드워드 1020는 유저 데이터 비트 값 1101으로 변환될 수 있다. 조합된 서브블록 룩업 테이블 A3xB1은 조합 룩업 테이블(310, 도 4)을 참조하여 유저 데이터 비트 값 010으로 변환될 수 있다. 이에 따라, 코드워드 1020은 유저 데이터 비트 값 1101 및 010이 결합된 7-비트 유저 데이터 비트 1101010으로 복원될 수 있다.For example, codeword 1020 may be decoded into 7-bit user data bits with reference to lookup table mapping 802 . The A3 subblock lookup table is specified in the previous codeword 10, and the corresponding user data bit value may be set to 1. For the current codeword 20, the B1 subblock lookup table combined with the A3 subblock lookup table is designated with reference to the lookup table mapping 802 , and a corresponding user data bit value may be set to 101 . Codeword 1020 may be converted into user data bit value 1101. The combined subblock lookup table A3xB1 may be converted into a user data bit value 010 with reference to the combined lookup table 310 ( FIG. 4 ). Accordingly, the codeword 1020 may be restored as the 7-bit user data bit 1101010 in which the user data bit values 1101 and 010 are combined.

룩업 테이블 맵핑(803)은 A3 및 A4 서브블록 룩업 테이블들 각각과 조합되는 ~B1 서브블록 룩업 테이블을 나타낸다.The lookup table mapping 803 represents the ˜B1 subblock lookup table combined with each of the A3 and A4 subblock lookup tables.

예를 들어, 코드워드 1333의 룩업 테이블 맵핑(803)을 참조하여 7-비트 유저 데이터 비트로 디코딩될 수 있다. 이전 코드워드 13에 A5 서브블록 룩업 테이블이 지정될 때, 해당 유저 데이터 비트 값은 0으로 설정된다. 현재 코드워드 33은 룩업 테이블 맵핑(803)을 참조하여 A5 서브블록 룩업 테이블과 조합되는 ~B1 서브블록 룩업 테이블에 지정되고, 해당 유저 데이터 비트 값은 000으로 설정될 수 있다. 코드워드 1333은 유저 데이터 비트 값 0000으로 변환될 수 있다. 조합된 서브블록 룩업 테이블 A5x~B1은 조합 룩업 테이블(310, 도 4)을 참조하여 유저 데이터 비트 값 110으로 변환될 수 있다. 이에 따라, 코드워드 1333은 유저 데이터 비트 값 0000 및 110이 결합된 7-비트 유저 데이터 비트 0000110으로 복원될 수 있다.For example, it can be decoded into 7-bit user data bits with reference to lookup table mapping 803 of codeword 1333 . When the A5 subblock lookup table is specified in the previous codeword 13, the corresponding user data bit value is set to 0. The current codeword 33 is assigned to the ~B1 subblock lookup table combined with the A5 subblock lookup table with reference to the lookup table mapping 803 , and the corresponding user data bit value may be set to 000. Codeword 1333 may be converted to a user data bit value of 0000. The combined subblock lookup tables A5x to B1 may be converted into a user data bit value 110 with reference to the combined lookup table 310 ( FIG. 4 ). Accordingly, the codeword 1333 may be restored to the 7-bit user data bit 0000110 in which the user data bit values 0000 and 110 are combined.

도 9는 도 1의 PAM-4 디코더의 동작 방법(900)을 설명하는 플로우챠트이다.9 is a flowchart illustrating a method 900 of operation of the PAM-4 decoder of FIG. 1 .

도 1 내지 도 8과 연계하여 도 9를 참조하면, PAM-4 디코더(122)는 시리얼 데이터 라인 DQ[i]을 통해 코드워드를 수신할 수 있다(S901). PAM-4 디코더(122)는 코드워드를 7-비트 유저 데이터로 변환하는 8:7 비트 디코딩을 수행할 수 있다(S902). 8:7 비트 디코딩은 코드워드 디코딩 룩업 테이블(710), 조합 룩업 테이블(310) 및 룩업 테이블 세트(320) 내 연접 배치된 제1 내지 제4 서브블록 룩업 테이블들(321-324)을 사용하여 수행될 수 있다. 8:7 비트 디코딩에 의해 코드워드에 대응하는 7-비트 유저 데이터가 생성될 수 있다.Referring to FIG. 9 in conjunction with FIGS. 1 to 8 , the PAM-4 decoder 122 may receive a codeword through the serial data line DQ[i] (S901). The PAM-4 decoder 122 may perform 8:7 bit decoding that converts the codeword into 7-bit user data (S902). 8:7 bit decoding is performed using the codeword decoding lookup table 710, the combination lookup table 310 and the first to fourth subblock lookup tables 321-324 concatenated in the lookup table set 320. can be performed. 7-bit user data corresponding to the codeword may be generated by 8:7-bit decoding.

PAM-4 디코더(122)는 DBI 신호 라인을 통해 PAM-4 심볼의 유저 데이터 1-비트를 수신하고(S903), 수신된 유저 데이터 1-비트와 디코드된 7-비트 유저 데이터를 결합시켜 제1 1/2 데이터 버스트를 복원할 수 있다(S904). PAM-4 디코더(122)는 시리얼 데이터 라인 DQ[i]에 대한 제2 1/2 데이터 버스트들을 복원하고, 제1 및 제2 1/2 데이터 버스트들을 결합시켜 완전한 데이터 버스트들을 복원할 수 있다(S905).The PAM-4 decoder 122 receives the user data 1-bit of the PAM-4 symbol through the DBI signal line (S903), combines the received user data 1-bit with the decoded 7-bit user data to obtain the first 1/2 data burst can be restored (S904). The PAM-4 decoder 122 may recover the 2 1/2 data bursts for the serial data line DQ[i], and combine the first and 2 1/2 data bursts to recover complete data bursts ( S905).

도 10은 도 2의 7:8 비트 인코딩을 이용한 32-비트 데이터 버스트의 인코딩 방법을 설명하는 도면이다.FIG. 10 is a diagram for explaining an encoding method of a 32-bit data burst using the 7:8-bit encoding of FIG. 2 .

도 2 및 도 10을 참조하면, 각 DQ[i] 시리얼 데이터 라인 상으로 32-비트 데이터 버스트들이 구성되고, 각 32 비트 데이터 버스트들은 8 비트들의 4개 1/4 데이터 버스트들 각각으로 나타낸다. 각각의 1/4 데이터 버스트는 1-비트:7-비트 쌍으로 더 나누어지고, 도 2에서 설명된 7:8 비트 인코딩(200)을 수행하여 MTA를 지원할 수 있다. 각 1/4 데이터 버스트의 1-비트 값이 DBI 신호 라인 상의 PAM-4 심볼로 인코딩될 수 있는데, 8개 DQ[i] 시리얼 데이터 라인 각각에서 4개 1/4 데이터 버스트의 1-비트가 DBI 신호 라인 상으로 보내지면, DBI 신호 라인 상으로 총 32 비트들이 전송될 수 있다.2 and 10, 32-bit data bursts are constructed on each DQ[i] serial data line, and each 32-bit data burst is represented by each of 4 1/4 data bursts of 8 bits. Each quarter data burst is further divided into 1-bit:7-bit pairs, and can perform the 7:8-bit encoding 200 described in FIG. 2 to support the MTA. The 1-bit value of each quarter data burst can be encoded as a PAM-4 symbol on the DBI signal line, where the 1-bit of the four quarter data bursts on each of the eight DQ[i] serial data lines is DBI When sent over the signal line, a total of 32 bits can be transmitted over the DBI signal line.

DBI 신호 라인 상에도 MTA를 지원하려면, 32 비트들 중에서 28 비트들만이 7:8 비트 인코딩에 사용될 수 있다. DBI 신호 라인 상의 7:8 비트 인코딩에 사용되지 않는 4 비트들은 별도의 신호 라인, 예컨대 EDC(Error Detection Code) 신호 라인을 통해 심볼로 인코드될 수 있다. 이에 따라, 도 10의 32-비트 데이터 버스트의 인코딩 방법은 추가적인 신호 라인을 필요로 하는 오버헤드가 발생한다. To support MTA even on DBI signal lines, only 28 bits out of 32 bits can be used for 7:8 bit encoding. The 4 bits not used for 7:8 bit encoding on the DBI signal line can be symbolically encoded through a separate signal line, for example, an Error Detection Code (EDC) signal line. Accordingly, the encoding method of the 32-bit data burst of FIG. 10 has an overhead that requires an additional signal line.

도 11은 본 발명의 일실시예에 따른 데이터 버스트의 인코딩 방법을 설명하는 도면이다.11 is a diagram for explaining a data burst encoding method according to an embodiment of the present invention.

도 1 및 도 11을 참조하면, PAM-4 인코더(112)는 데이터 라인으로 전송될 m 비트들의 데이터 버스트들에 대하여 (m-p):m 비트 인코딩을 수행할 수 있다. PAM-4 인코더(112)는 m 비트들 중 p(n>p) 비트들의 값을 DBI 신호 라인으로 보내고, DBI 신호 라인 상의 p 비트들의 합인 q 비트들에 대하여 q:(q+k)(k≥1) 비트 인코딩을 수행하여 DBI 신호 라인의 코드워드를 생성할 수 있다. PAM-4 인코더(112)는 데이터 버스트들 각각의 나머지 (m-p) 비트들에 대하여 (m-p):m 비트 인코딩을 수행하여 데이터 라인의 코드워드를 생성할 수 있다.1 and 11 , the PAM-4 encoder 112 may perform (m-p):m-bit encoding on m-bit data bursts to be transmitted on a data line. The PAM-4 encoder 112 sends the value of p(n>p) bits among m bits to the DBI signal line, and q:(q+k)(k) for q bits, which is the sum of p bits on the DBI signal line. ≥1) Bit encoding may be performed to generate codewords of DBI signal lines. The PAM-4 encoder 112 may perform (m-p):m bit encoding on the remaining (m-p) bits of each of the data bursts to generate a codeword of the data line.

PAM-4 인코더(112)는 데이터 버스트들 m 비트들에 대응하는 코드워드들의 총 개수, 심볼들 간 MT 이벤트가 없는 코드워드들 중에서 마지막 심볼이 가장 높은 심볼 레벨인 코드워드들의 개수, 마지막 심볼이 중간 심볼 레벨들인 코드워드들의 개수, 마지막 심볼이 가장 낮은 심볼 레벨인 코드워들의 개수, 및 첫번째 심볼이 가장 높은 심볼 레벨 및 가장 낮은 심볼 레벨이 없는 코드워드들의 개수에 기초하여 p 비트들을 결정할 수 있다. 이에 따라, (m-p):m 비트 인코딩 및 q:(q+k) 비트 인코딩은, 심볼들 간에 최대 천이(MT) 이벤트가 발생하지 않는 최대 천이 방지(MTA) 코딩으로 구현될 수 있다.The PAM-4 encoder 112 determines the total number of codewords corresponding to m bits of data bursts, the number of codewords in which the last symbol is the highest symbol level among codewords without an MT event between symbols, and the last symbol is The p bits may be determined based on the number of codewords with intermediate symbol levels, the number of codewords with the last symbol being the lowest symbol level, and the number of codewords having the first symbol with the highest symbol level and the lowest symbol level. . Accordingly, (m-p):m bit encoding and q:(q+k) bit encoding can be implemented with maximum transition prevention (MTA) coding in which a maximum transition (MT) event does not occur between symbols.

구체적으로, PAM-4 인코더(112)는 32-비트 데이터 버스트에 대하여 PAM-4 심볼 인코딩 시 3-비트의 최소 오버헤드를 갖도록 설계할 수 있다. 29:32 비트 인코더 및/또는 디코더를 룩업 테이블 기반으로 바로 설계하게 되면 수GB 용량의 테이블이 필요하게 된다. 이러한 테이블의 크기를 줄이기 위해, 도 3 내지 도 5c, 도 7 및 도 8에서 설명된 실시예들을 기반으로 29:32 비트 인코더 및 디코더에 적용할 수 있다. 이에 따라, 29:32 비트 인코더 및/또는 디코더에 포함되는 테이블 크기를 크게 줄일 수 있다. PAM-4 인코더(112)는 예를 들어, 수학식 1 내지 7을 이용하여 PAM-4 심볼 인코딩을 수행하면, 코드워드 길이 (또는 PAM-4 심볼 수) n 에 따른 오버헤드 비트들의 수를 계산할 수 있다. 32-비트 데이터 버스트의 경우, 코드워드 길이 (또는 PAM-4 심볼 수) n은 16일 것이다.Specifically, the PAM-4 encoder 112 may be designed to have a minimum overhead of 3-bit when encoding a PAM-4 symbol for a 32-bit data burst. If a 29:32 bit encoder and/or decoder is directly designed based on a lookup table, a table with a capacity of several GB is required. In order to reduce the size of such a table, it can be applied to a 29:32 bit encoder and decoder based on the embodiments described in FIGS. 3 to 5C , 7 and 8 . Accordingly, the size of a table included in the 29:32 bit encoder and/or decoder can be greatly reduced. The PAM-4 encoder 112 calculates the number of overhead bits according to the codeword length (or the number of PAM-4 symbols) n when performing PAM-4 symbol encoding using Equations 1 to 7, for example. can For a 32-bit data burst, the codeword length (or number of PAM-4 symbols) n will be 16.

PAM-4 인코더(112)는 코드워드 길이 n에 대한 MT 이벤트가 없는 패턴들을 계산하기 위하여, 변수들

Figure pat00001
,
Figure pat00002
,
Figure pat00003
을 정의할 수 있다.
Figure pat00004
은 마지막 심볼이 레벨 3인 MT 이벤트가 없는 심볼 n의 코드워드 개수이고,
Figure pat00005
은 마지막 심볼이 레벨 1 또는 2인 MT 이벤트가 없는 심볼 n의 코드워드 개수이고,
Figure pat00006
은 마지막 심볼이 레벨 0인 MT 이벤트가 없는 심볼 n의 코드워드 개수이다. 변수들
Figure pat00007
,
Figure pat00008
,
Figure pat00009
사이의 관계를 나타내는 점화식(recurrence relation)을 구하면 수학식 1과 같다.PAM-4 encoder 112 calculates patterns without MT event for codeword length n, variable
Figure pat00001
,
Figure pat00002
,
Figure pat00003
can be defined.
Figure pat00004
is the number of codewords in symbol n without an MT event where the last symbol is level 3,
Figure pat00005
is the number of codewords in symbol n without an MT event where the last symbol is level 1 or 2,
Figure pat00006
is the number of codewords of symbol n without an MT event in which the last symbol is level 0. variables
Figure pat00007
,
Figure pat00008
,
Figure pat00009
Equation 1 is obtained when a recurrence relation representing the relationship between the two is obtained.

Figure pat00010
Figure pat00010

Figure pat00011
Figure pat00011

Figure pat00012
Figure pat00012

여기에서,

Figure pat00013
=1,
Figure pat00014
=2,
Figure pat00015
=1 으로 나타내고, n은 현재 심볼을 나타내고, n+1은 다음 심볼을 나타낼 수 있다. From here,
Figure pat00013
=1,
Figure pat00014
=2,
Figure pat00015
=1, n may indicate the current symbol, and n+1 may indicate the next symbol.

수학식 1을 이용하여, 코드워드 길이 n에 대한 전체 코드워드 수

Figure pat00016
를 계산하면 수학식 2 및 3과 같다.Using Equation 1, the total number of codewords for codeword length n
Figure pat00016
is calculated as in Equations 2 and 3.

Figure pat00017
Figure pat00017

여기에서, n은 현재 심볼을 나타내고, n-1은 이전 심볼을 나타낼 수 있다.Here, n may indicate a current symbol, and n-1 may indicate a previous symbol.

Figure pat00018
Figure pat00018

수학식 2 및 3에 따른 전체 코드워드 수

Figure pat00019
은 블록 바운더리(BB, 도 2)에서의 MTA를 고려하지 않은, 즉 첫번째 심볼에 올 수 있는 심볼 레벨에 제약이 없는 경우에 해당한다. 블록 바운더리(BB)에서도 이전 코드워드 n-1의 마지막 심볼과 현재 코드워드 n의 첫번째 심볼 사이의 MT 이벤트를 방지하기 위해 MTA를 지원할 필요가 있다. 이를 위하여, 현재 코드워드 n의 첫번째 심볼에 레벨 3 (또는 레벨 0)이 없는 조건을 추가하면, 수학식 2 및 3은 수학식 4 및 5로 변형될 수 있다. Total number of codewords according to Equations 2 and 3
Figure pat00019
is a case in which MTA in the block boundary (BB, FIG. 2 ) is not considered, that is, there is no restriction on the symbol level that can come in the first symbol. Even at the block boundary (BB), it is necessary to support the MTA in order to prevent an MT event between the last symbol of the previous codeword n-1 and the first symbol of the current codeword n. To this end, if the condition that there is no level 3 (or level 0) is added to the first symbol of the current codeword n, Equations 2 and 3 may be transformed into Equations 4 and 5.

Figure pat00020
Figure pat00020

Figure pat00021
Figure pat00021

수학식 3의

Figure pat00022
및 수학식 5의
Figure pat00023
을 기초로 하고 수학식 6 및 7을 이용하여 오버헤드 비트 수 x를 계산할 수 있다.of Equation 3
Figure pat00022
and Equation 5
Figure pat00023
Based on , the number of overhead bits x can be calculated using Equations 6 and 7.

Figure pat00024
Figure pat00024

Figure pat00025
Figure pat00025

수학식 6 및 7을 이용하여 구해지는 코드워드 길이 n에 대한 정수 값을 갖는 오버헤드 비트 수 x는 도 11의 그래프 선(1100)과 같이 나타낼 수 있다. 그래프 선(1100)에 도시된 바와 같이, 코드워드 길이(또는 PAM-4 심볼 수) n=16은 오버헤드 비트 수 3에 대응되는 것을 볼 수 있다(1103).The number of overhead bits x having an integer value for the codeword length n obtained using Equations 6 and 7 may be expressed as the graph line 1100 of FIG. 11 . As shown in the graph line 1100, it can be seen that the codeword length (or the number of PAM-4 symbols) n=16 corresponds to the number of overhead bits 3 ( 1103 ).

도 11의 그래프 선(1100)에서, 도 2의 7:8 비트 인코딩(200)에 따른 코드워드 길이(또는 PAM-4 심볼 수) n=4는 오버헤드 비트 수 1을 갖는 것을 볼 수 있는데(1101), 오버헤드 비트 수 1은 DBI 신호 라인으로 전달되는 각 1/2 데이터 버스트의 하나의 비트와 부합한다. 그리고, 도 10에서 설명된 32-비트 데이터 버스트에 7:8 비트 인코딩(200)을 적용하면 오버헤드 비트 수 4를 갖는 것을 볼 수 있다(1101). 이에 반하여, 수학식 1 내지 7을 이용하여 32-비트 데이터 버스트에 대한 PAM-4 심볼 인코딩을 수행하면, 오버헤드 비트 수 3으로 줄일 수 있다(1103). 이에 따라, 8개 DQ[i] 시리얼 데이터 라인 각각에서 32-비트 데이터 버스트의 3-비트가 DBI 신호 라인 상으로 보내지면, DBI 신호 라인 상으로 총 24 비트들이 전송될 수 있다.In the graph line 1100 of FIG. 11 , it can be seen that the codeword length (or the number of PAM-4 symbols) n=4 according to the 7:8 bit encoding 200 of FIG. 2 has an overhead bit number of 1 ( 1101), the number of overhead bits of 1 corresponds to one bit in each 1/2 data burst carried on the DBI signal line. And, if 7:8 bit encoding 200 is applied to the 32-bit data burst described in FIG. 10 , it can be seen that the number of overhead bits is 4 ( 1101 ). In contrast, when PAM-4 symbol encoding is performed on a 32-bit data burst using Equations 1 to 7, the number of overhead bits can be reduced to 3 (1103). Accordingly, if 3-bits of a 32-bit data burst on each of the 8 DQ[i] serial data lines are sent on the DBI signal line, a total of 24 bits can be transmitted on the DBI signal line.

도 12 내지 도 14는 도 11의 인코딩 방법에 따른 32-비트 데이터 버스트 구조를 설명하는 도면들이다.12 to 14 are diagrams for explaining a 32-bit data burst structure according to the encoding method of FIG. 11 .

도 1 및 도 12를 참조하면, PAM-4 인코더(112)가 도 11에서 설명된 인코딩 방법을 수행하여 8개 DQ[i] 시리얼 데이터 라인 각각에서 32-비트 데이터 버스트의 3-비트를 DBI 신호 라인 상으로 보내면, DBI 신호 라인 상으로 총 24 비트들이 전송될 수 있다. PAM-4 인코더(112)는 DQ[i] 시리얼 데이터 라인 각각의 3-비트 중 첫번째 비트 값들(1201)을 DBI 신호 라인 상으로 보낼 수 있다. 이 후, DQ[i] 시리얼 데이터 라인 각각의 3-비트 중 두번째 비트 값들(1202)이 DBI 신호 라인 상으로 보내지고, 이어서 세번째 비트 값들(1203)이 DBI 신호 라인 상으로 보내질 수 있다. PAM-4 인코더(112)는 DBI 신호 라인 상의 24 비트들을 8개의 3-비트 그룹들로 나누어, 각 3-비트 그룹에 대하여 3:4 비트 인코딩을 수행할 수 있다. 3;4 비트 인코딩은 도 14에서 설명될 것이다.1 and 12, the PAM-4 encoder 112 performs the encoding method described in FIG. 11 to convert 3-bits of a 32-bit data burst in each of 8 DQ[i] serial data lines to a DBI signal. Sending on the line, a total of 24 bits can be transmitted on the DBI signal line. The PAM-4 encoder 112 may transmit the first bit values 1201 of 3-bits of each of the DQ[i] serial data lines on the DBI signal line. Thereafter, the second of the 3-bit values 1202 of each of the DQ[i] serial data lines may be sent on the DBI signal line, followed by the third bit values 1203 being sent on the DBI signal line. The PAM-4 encoder 112 may divide the 24 bits on the DBI signal line into 8 3-bit groups, and perform 3:4 bit encoding for each 3-bit group. The 3,4 bit encoding will be described in FIG. 14 .

도 13을 참조하면, PAM-4 인코더(112)가 도 11의 인코딩 방법을 수행하여 8개 DQ[i] 시리얼 데이터 라인 각각에서 32-비트 데이터 버스트의 3-비트를 DBI 신호 라인 상으로 보내면, DBI 신호 라인 상으로 총 24 비트들이 전송될 수 있다. PAM-4 인코더(112)는 DQ[i] 시리얼 데이터 라인 각각의 3-비트 값들(1300~1307)을 DBI 신호 라인 상으로 보낼 수 있다. PAM-4 인코더(112)는 DBI 신호 라인 상의 3-비트 값들(1300~1307)에 대하여 3:4 비트 인코딩을 수행할 수 있다.Referring to FIG. 13, when the PAM-4 encoder 112 performs the encoding method of FIG. 11 to send 3-bits of a 32-bit data burst in each of the 8 DQ[i] serial data lines onto the DBI signal line, A total of 24 bits can be transmitted on the DBI signal line. The PAM-4 encoder 112 may transmit 3-bit values 1300-1307 of each of the DQ[i] serial data lines on the DBI signal line. The PAM-4 encoder 112 may perform 3:4-bit encoding on the 3-bit values 1300 to 1307 on the DBI signal line.

도 14를 참조하면, 3:4 비트 인코딩(1400)은 DBI 신호 라인 상의 3-비트 값이 000일 때 심볼 비트들 0000 및 심볼 레벨 00의 코드워드로 변환할 수 있다. 3:4 비트 인코딩(1400)은 DBI 신호 라인 상의 3-비트 값 001을 심볼 비트들 0001 및 심볼 레벨 01로 변환하고, 3-비트 값 010을 심볼 비트들 0100 및 심볼 레벨 10으로 변환하고, 3-비트 값 011을 심볼 비트들 0101 및 심볼 레벨 11로 변환하고, 3-비트 값 100을 심볼 비트들 0011 및 심볼 레벨 02으로 변환하고, 3-비트 값 101을 심볼 비트들 1100 및 심볼 레벨 20으로 변환하고, 3-비트 값 110을 심볼 비트들 1101 및 심볼 레벨 21으로 변환하고, 3-비트 값 111을 심볼 비트들 0111 및 심볼 레벨 12로 변환하도록 코드워드 인코딩할 수 있다. 3:4 비트 인코딩(1400)에서, 가장 높은 전압 레벨을 갖는 레벨 3의 PAM-4 심볼이 코드워드에 존재하지 않는다. 이에 따라, 3:4 비트 인코딩(1400)은 DBI 신호 라인 상의 MTA를 지원할 수 있다.Referring to FIG. 14 , the 3:4-bit encoding 1400 may convert symbol bits 0000 and a codeword of symbol level 00 when the 3-bit value on the DBI signal line is 000. 3:4 bit encoding 1400 converts the 3-bit value 001 on the DBI signal line to symbol bits 0001 and symbol level 01, converts the 3-bit value 010 to symbol bits 0100 and symbol level 10, 3 - convert bit value 011 to symbol bits 0101 and symbol level 11, convert 3-bit value 100 to symbol bits 0011 and symbol level 02, and convert 3-bit value 101 to symbol bits 1100 and symbol level 20 codeword encoding to convert the 3-bit value 110 to symbol bits 1101 and symbol level 21, and to convert the 3-bit value 111 to symbol bits 0111 and symbol level 12. In 3:4 bit encoding 1400, no PAM-4 symbol of level 3 with the highest voltage level is present in the codeword. Accordingly, 3:4 bit encoding 1400 can support MTA on DBI signal lines.

상술한 도 12 및 도 13의 32-비트 데이터 버스트 구조는, 도 10의 7:8 비트 인코딩에서 DBI 신호 라인 상에 MTA 지원을 위해 요구된 EDC 신호 라인과 같은 추가적인 신호 라인을 필요로 하지 않는다. 그리고, EDC 신호 라인은 DQ[i] 시리얼 데이터 라인의 데이터(DQ)의 에러 검출하는데 사용되도록 구성할 수 있다. PAM-4 인코더(112)는 데이터(DQ)에 대하여 체크섬(checksum) 또는 CRC(Cyclic Redundancy Check)를 생성하여 소정의 CRC 비트들을 EDC 신호 라인으로 전송함으로써, PAM-4 인코더(112)의 성능 향상을 제공할 수 있다. 이에 따라, PAM-4 인코더(112)는 도 11의 인코딩 방법을 수행하여 DQ[i] 시리얼 데이터 라인 각각에서 32-비트 데이터 버스트의 3-비트를 DBI 신호 라인 상으로 보내고, DBI 신호 라인 상에서 3:4 비트 인코딩(1400)을 수행하여 DBI 신호 라인 상의 MTA를 지원하면서, PAM-4 인코더(112)의 성능 향상 및 최소 오버헤드를 충족할 수 있다. The 32-bit data burst structure of FIGS. 12 and 13 described above does not require additional signal lines such as the EDC signal line required for MTA support on the DBI signal line in the 7:8 bit encoding of FIG. 10 . In addition, the EDC signal line may be configured to be used for error detection of the data DQ of the DQ[i] serial data line. The PAM-4 encoder 112 generates a checksum or a cyclic redundancy check (CRC) for the data DQ and transmits predetermined CRC bits to the EDC signal line, thereby improving the performance of the PAM-4 encoder 112 . can provide Accordingly, the PAM-4 encoder 112 performs the encoding method of FIG. 11 to send 3-bits of a 32-bit data burst in each of the DQ[i] serial data lines on the DBI signal line, and 3 on the DBI signal line. : Performs 4-bit encoding 1400 to support MTA on DBI signal line, while meeting performance improvement and minimum overhead of PAM-4 encoder 112 .

도 15는 본 발명의 실시예들에 따른 인코딩 및 디코딩 장치를 포함하는 메모리 시스템의 제1 예의 블록 다이어그램이다.15 is a block diagram of a first example of a memory system including an encoding and decoding apparatus according to embodiments of the present invention.

도 15를 참조하면, 메모리 시스템(1500)은 메모리 콘트롤러(1510)와 메모리 장치(1520)를 포함할 수 있다. 메모리 시스템(1500)은 집적 회로, 전자 기기 또는 시스템, 스마트 폰, 태블릿 PC, 컴퓨터, 서버, 워크 스테이션, 휴대용 통신 단말기, PDA(Personal Digital Assistant), PMP(Portable Multimedia Player), 그리고 다른 적절한 컴퓨터들 등과 같은 컴퓨팅 장치, 가상 머신 또는 그것의 가상 컴퓨팅 장치 등을 지칭할 수 있다. 또는 메모리 시스템(1500)은 그래픽스 카드와 같은 컴퓨팅 시스템에 포함된 구성 요소들 중 일부일 수 있다.Referring to FIG. 15 , a memory system 1500 may include a memory controller 1510 and a memory device 1520 . Memory system 1500 is an integrated circuit, electronic device or system, smart phone, tablet PC, computer, server, workstation, portable communication terminal, Personal Digital Assistant (PDA), Portable Multimedia Player (PMP), and other suitable computers. may refer to a computing device, such as a virtual machine or a virtual computing device thereof, and the like. Alternatively, the memory system 1500 may be a part of components included in a computing system such as a graphics card.

메모리 콘트롤러(1510)는 채널 또는 메모리 버스(1530)을 통하여 메모리 장치(1520)와 통신적으로 연결(communicatively connected)될 수 있다. 도면의 간결성을 위하여, 메모리 콘트롤러(1510)와 메모리 장치(1520) 사이에 하나의 신호 라인을 통하여 클록(CLK), 커맨드/어드레스(CA), 데이터(DQ)가 제공되는 것으로 도시하고 있으나, 실제로는 복수의 신호 라인들 또는 버스를 통해 제공될 수 있다.The memory controller 1510 may be communicatively connected to the memory device 1520 through a channel or a memory bus 1530 . For the sake of brevity, it is illustrated that the clock CLK, command/address CA, and data DQ are provided between the memory controller 1510 and the memory device 1520 through one signal line, but in reality, the clock CLK, command/address CA, and data DQ are provided. may be provided through a plurality of signal lines or a bus.

클록(CLK) 신호는 메모리 버스(1530)의 클록 신호 라인을 통해서 메모리 콘트롤러(1510)로부터 메모리 장치(1520)로 전송될 수 있다. 커맨드/어드레스(CA) 신호는 메모리 버스(1530)의 커맨드/어드레스 버스를 통해서 메모리 콘트롤러(1510)로부터 메모리 장치(1520)로 전송될 수 있다. 칩 선택(CS) 신호는 메모리 버스(1530)의 칩 선택(CS) 라인을 통해서 메모리 콘트롤러(1510)로부터 메모리 장치(1520)에 전송될 수 있다. 로직 하이로 활성화되는 칩 선택(CS) 신호는 커맨드/어드레스(CA) 버스를 통해서 전송되는 커맨드/어드레스(CA) 신호가 커맨드임을 나타낼 수 있다. 데이터(DQ)는 양방향 신호 라인들로 구성되는 메모리 버스(1530)의 데이터(DQ) 버스를 통해서, 메모리 콘트롤러(1510)로부터 메모리 장치(1520)로 전송되거나 메모리 장치(1520)로부터 메모리 콘트롤러(1510)로 전송될 수 있다.The clock CLK signal may be transmitted from the memory controller 1510 to the memory device 1520 through a clock signal line of the memory bus 1530 . The command/address (CA) signal may be transmitted from the memory controller 1510 to the memory device 1520 through the command/address bus of the memory bus 1530 . The chip select (CS) signal may be transmitted from the memory controller 1510 to the memory device 1520 through a chip select (CS) line of the memory bus 1530 . The chip select (CS) signal activated to be logic high may indicate that the command/address (CA) signal transmitted through the command/address (CA) bus is a command. Data DQ is transmitted from the memory controller 1510 to the memory device 1520 or from the memory device 1520 to the memory controller 1510 through the data DQ bus of the memory bus 1530 composed of bidirectional signal lines. ) can be transmitted.

메모리 콘트롤러(1510)는 메모리 장치(1520)로 데이터(DQ)를 전송하는 데이터 송신기(1512)를 포함하고, 데이터 송신기(1512)는 메모리 장치(1520)로 전송될 기입 데이터 버스트들을 PAM-4 심볼들로 변환하도록 구성된 PAM-4 인코더(112)를 포함할 수 있다. PAM-4 인코더(112)는 도 1의 로직 회로(114), 도 3 내지 도 5c에서 설명된 조합 룩업 테이블(1310) 및 룩업 테이블 세트(320) 내 연접 배치된 제1 내지 제4 서브블록 룩업 테이블들(321-324)을 포함할 수 있다. PAM-4 인코더(112)는 도 6에서 설명된 인코딩 동작 방법(600) 및 도 11 내지 도 14에서 설명된 데이터 버스트 구조 및 DBI MTA 코드워드에 기초하여 기입 데이터 버스트들을 PAM-4 심볼들로 인코딩하도록 구성될 수 있다. 메모리 콘트롤러(1510)는 데이터(DQ) 버스를 통해 인코드된 PAM-4 심볼들을 데이터(DQ)로서 메모리 장치(1520)에 전송할 수 있다.The memory controller 1510 includes a data transmitter 1512 that transmits data DQ to the memory device 1520 , and the data transmitter 1512 transmits write data bursts to be transmitted to the memory device 1520 with a PAM-4 symbol. and a PAM-4 encoder 112 configured to convert The PAM-4 encoder 112 is configured to look up the first to fourth subblocks concatenated in the logic circuit 114 of FIG. 1 , the combination lookup table 1310 and the lookup table set 320 described in FIGS. 3 to 5C . Tables 321-324 may be included. The PAM-4 encoder 112 encodes write data bursts into PAM-4 symbols based on the encoding operation method 600 described in FIG. 6 and the data burst structure and DBI MTA codeword described in FIGS. 11-14. can be configured to The memory controller 1510 may transmit the encoded PAM-4 symbols as data DQ to the memory device 1520 through a data (DQ) bus.

메모리 장치(1520)는 메모리 콘트롤러(1510)의 제어에 따라 데이터(DQ)를 기입하거나 데이터를 독출할 수 있다. 메모리 장치(1520)는 메모리 셀 어레이(1522) 및 데이터 입력 버퍼(1524)를 포함할 수 있다.The memory device 1520 may write data DQ or read data under the control of the memory controller 1510 . The memory device 1520 may include a memory cell array 1522 and a data input buffer 1524 .

메모리 셀 어레이(1522)는 복수의 워드라인들과 복수의 비트라인들, 그리고 워드라인들과 비트라인들이 교차하는 지점에 형성되는 복수의 메모리 셀들을 포함할 수 있다. 메모리 셀 어레이(1522)의 메모리 셀은 휘발성 메모리 셀(예컨대, DRAM(Dynamic Random Access Memory) 셀, SRAM(Static RAM) 셀 등), 비휘발성 메모리 셀(예, 플래시 메모리 셀, ReRAM(Resistive RAM) 셀, PRAM(Phase change RAM) 셀, MRAM(Magnetic RAM) 셀), 또는 어떤 다른 유형의 메모리 셀일 수 있다.The memory cell array 1522 may include a plurality of word lines and a plurality of bit lines, and a plurality of memory cells formed at intersections of the word lines and the bit lines. Memory cells of the memory cell array 1522 include volatile memory cells (eg, dynamic random access memory (DRAM) cells, static RAM (SRAM) cells, etc.), non-volatile memory cells (eg, flash memory cells, resistive RAM (ReRAM) cells, etc.). cell, a phase change RAM (PRAM) cell, a magnetic RAM (MRAM) cell), or some other type of memory cell.

메모리 장치(1520)는 데이터(DQ) 버스로 전송된 PAM-4 심볼들을 데이터 입력 버퍼(1524)를 통해 수신 및 디코딩하도록 구성할 수 있다. 데이터 입력 버퍼(1524)는 PAM-4 심볼들을 기입 데이터 버스트들로 복원하도록 구성된 PAM-4 디코더(122)를 포함할 수 있다. PAM-4 디코더(122)는 도 1의 로직 회로(124), 도 7 및 도 8에서 설명된 조합 룩업 테이블(310), 룩업 테이블 세트(320) 및 코드워드 디코딩 룩업 테이블(710)을 포함할 수 있다. PAM-4 디코더(122)는 도 9에서 설명된 디코딩 동작 방법(1400)에 기초하여 PAM-4 심볼들을 기입 데이터 버스트들로 디코딩하도록 구성될 수 있다. 데이터 입력 버퍼(1524)는 디코드된 기입 데이터 버스트들을 메모리 셀 어레이(1522)에 기입하기 위해 제공할 수 있다.The memory device 1520 may be configured to receive and decode PAM-4 symbols transmitted through the data (DQ) bus through the data input buffer 1524 . The data input buffer 1524 may include a PAM-4 decoder 122 configured to recover the PAM-4 symbols into write data bursts. The PAM-4 decoder 122 may include the logic circuit 124 of FIG. 1 , the combinational lookup table 310 described in FIGS. 7 and 8 , the lookup table set 320 and the codeword decoding lookup table 710 . can The PAM-4 decoder 122 may be configured to decode the PAM-4 symbols into write data bursts based on the decoding operation method 1400 described in FIG. 9 . The data input buffer 1524 may provide decoded write data bursts for writing to the memory cell array 1522 .

도 16은 본 발명의 일실시예에 따른 메모리 장치의 일부를 설명하는 블록도이다.16 is a block diagram illustrating a part of a memory device according to an embodiment of the present invention.

도 16을 참조하면, 메모리 장치(1520)는 메모리 셀 어레이(1522), 로우 디코더(1601), 워드라인 드라이버(1602), 칼럼 디코더(1603), 입출력 게이팅 회로(1604), MRS(1605), 제어 로직 회로(1606), 어드레스 버퍼(1607), 데이터 입력 버퍼(1524), 그리고 데이터 출력 버퍼(1526)를 포함할 수 있다.Referring to FIG. 16 , the memory device 1520 includes a memory cell array 1522 , a row decoder 1601 , a word line driver 1602 , a column decoder 1603 , an input/output gating circuit 1604 , an MRS 1605 , It may include a control logic circuit 1606 , an address buffer 1607 , a data input buffer 1524 , and a data output buffer 1526 .

메모리 셀 어레이(1522)는 로우들 및 칼럼들로 배열되는 매트릭스 형태로 제공되는 복수의 메모리 셀들을 포함한다. 메모리 셀 어레이(1522)는 메모리 셀들과 연결되는 복수개의 워드라인들(WL)과 복수개의 비트라인들(BL)을 포함한다. 복수의 워드라인들(WL)은 메모리 셀들의 로우들과 연결되고, 복수의 비트라인들(BL)은 메모리 셀들의 칼럼들과 연결될 수 있다.The memory cell array 1522 includes a plurality of memory cells provided in the form of a matrix arranged in rows and columns. The memory cell array 1522 includes a plurality of word lines WL and a plurality of bit lines BL connected to the memory cells. The plurality of word lines WL may be connected to rows of memory cells, and the plurality of bit lines BL may be connected to columns of memory cells.

로우 디코더(1601)는 메모리 셀 어레이(1522)와 연결된 복수의 워드라인들(WL) 중 어느 하나를 선택할 수 있다. 로우 디코더(1601)는 어드레스 버퍼(1607)로부터 수신된 로우 어드레스(ROW_ADDR)를 디코딩하여 로우 어드레스(ROW_ADDR)에 상응하는 어느 하나의 워드라인(WL)을 선택하고, 선택된 워드라인(WL)을 활성화하는 워드라인 드라이버(1602)에 연결할 수 있다. 칼럼 디코더(1603)는 메모리 셀 어레이(1522)의 복수의 비트라인들(BL) 중 소정의 비트라인들(BL)을 선택할 수 있다. 칼럼 디코더(1603)는 어드레스 버퍼(1607)로부터 수신된 칼럼 어드레스(COL_ADDR)를 디코딩하여 칼럼 선택 신호를 발생하고, 칼럼 선택 신호에 의해 선택된 비트라인들(BL)을 입출력 게이팅 회로(1604)에 연결할 수 있다. 입출력 게이팅 회로(1604)는 칼럼 선택 신호에 의해 선택된 비트라인들(BL)의 독출 데이터를 저장하는 독출 데이터 래치들과, 메모리 셀 어레이(1522)에 기입 데이터를 기입하기 위한 기입 드라이버를 포함할 수 있다. 입출력 게이팅 회로(1604)의 독출 데이터 래치들에 저장된 독출 데이터는 데이터 출력 버퍼(1526)를 통해 데이터(DQ) 버스에 제공될 수 있다. 기입 데이터는 데이터(DQ) 버스에 연결된 데이터 입력 버퍼(1524)를 통해, 그리고 입출력 게이팅 회로(1604)의 기입 드라이버를 통해 메모리 셀 어레이(1522)에 인가될 수 있다.The row decoder 1601 may select any one of the plurality of word lines WL connected to the memory cell array 1522 . The row decoder 1601 decodes the row address ROW_ADDR received from the address buffer 1607 to select any one word line WL corresponding to the row address ROW_ADDR, and activates the selected word line WL. can be connected to the wordline driver 1602. The column decoder 1603 may select predetermined bit lines BL from among a plurality of bit lines BL of the memory cell array 1522 . The column decoder 1603 decodes the column address COL_ADDR received from the address buffer 1607 to generate a column select signal, and connects the bit lines BL selected by the column select signal to the input/output gating circuit 1604 . can The input/output gating circuit 1604 may include read data latches for storing read data of the bit lines BL selected by the column selection signal, and a write driver for writing write data to the memory cell array 1522 . have. The read data stored in the read data latches of the input/output gating circuit 1604 may be provided to the data (DQ) bus through the data output buffer 1526 . Write data may be applied to the memory cell array 1522 through a data input buffer 1524 coupled to the data (DQ) bus and through a write driver of the input/output gating circuit 1604 .

제어 로직 회로(1606)는 클록(CLK) 신호 및 커맨드(CMD)를 수신하고 메모리 장치(1520)의 동작 타이밍 및/또는 메모리 동작을 제어하는 제어 신호들(CTRLS)을 생성할 수 있다. 제어 로직 회로(1606)는 제어 신호들(CTRLS)을 이용하여 메모리 셀 어레이(1522)로부터 데이터를 독출하고 메모리 셀 어레이(1522)에 데이터를 기입할 수 있다.The control logic circuit 1606 may receive the clock signal CLK and the command CMD and generate control signals CTRLS for controlling an operation timing and/or a memory operation of the memory device 1520 . The control logic circuit 1606 may read data from the memory cell array 1522 and write data to the memory cell array 1522 using the control signals CTRLS.

MRS(1605)는 메모리 장치(1520)에 대한 동작 조건을 설정하기 위해, 메모리 장치(1520)의 동작을 구성하도록 제어 로직 회로(1606)에 의해 사용되는 정보를 저장할 수 있다. MRS(1605)는 메모리 장치(1520)의 동작 조건을 설정하도록 사용되는 다양한 동작 및 제어 파라미터에 대한 파라미터 코드를 저장하는 레지스터를 포함할 수 있다. 파라미터 코드는 커맨드/어드레스(CA) 버스를 통해 메모리 장치(1520)에 수신될 수 있다. 제어 로직 회로(1606)는 MRS(1605)에 의해 저장된 동작 및 제어 파라미터에 설정된 바와 같이 동작하도록 메모리 장치(1520)의 회로들로 제어 신호들(CTRLS)를 제공할 수 있다. 제어 신호들(CTRLS)은 도 9 및 도 13에서 설명된 제1 모드 선택 신호(MRS[1:0]) 및 제2 모드 선택 신호(MTA_Mode)를 포함할 수 있다.The MRS 1605 may store information used by the control logic circuit 1606 to configure the operation of the memory device 1520 to set operating conditions for the memory device 1520 . The MRS 1605 may include a register that stores parameter codes for various operation and control parameters used to set operating conditions of the memory device 1520 . The parameter code may be received by the memory device 1520 through a command/address (CA) bus. The control logic circuit 1606 may provide control signals CTRLS to circuits of the memory device 1520 to operate as set in the operation and control parameters stored by the MRS 1605 . The control signals CTRLS may include the first mode selection signal MRS[1:0] and the second mode selection signal MTA_Mode described with reference to FIGS. 9 and 13 .

도 17은 본 발명의 실시예들에 따른 인코딩 및 디코딩 장치를 포함하는 메모리 시스템의 제2 예의 블록 다이어그램이다.17 is a block diagram of a second example of a memory system including an encoding and decoding apparatus according to embodiments of the present invention.

도 17을 참조하면, 메모리 시스템(1700)은, 도 15의 메모리 시스템(1500)과 비교하여, 메모리 콘트롤러(1710)에 PAM-4 디코더(122)를 포함한 데이터 수신기(1714)를 더 포함하고, 메모리 장치(1720)에 PAM-4 인코더(112)를 포함한 데이터 출력 버퍼(1526)를 보여준다는 점에서 차이가 있다.Referring to FIG. 17 , the memory system 1700 further includes a data receiver 1714 including a PAM-4 decoder 122 in the memory controller 1710 as compared with the memory system 1500 of FIG. 15 , The difference is that the memory device 1720 shows the data output buffer 1526 including the PAM-4 encoder 112 .

메모리 장치(1720)는 메모리 셀 어레이(1522)에서 출력된 독출 데이터 버스트들을 메모리 콘트롤러(1710)로 전송할 때 데이터 출력 버퍼(1526)를 통해 PAM-4 심볼들로 인코딩하여 전송하도록 구성할 수 있다. 데이터 출력 버퍼(1526)는 독출 데이터를 PAM-4 심볼들로 변환하도록 구성된 PAM-4 인코더(112)를 포함할 수 있다.When transmitting the read data bursts output from the memory cell array 1522 to the memory controller 1710 , the memory device 1720 may be configured to encode and transmit PAM-4 symbols through the data output buffer 1526 . The data output buffer 1526 may include a PAM-4 encoder 112 configured to convert the read data into PAM-4 symbols.

메모리 콘트롤러(1710)는 데이터(DQ) 버스로 전송된 PAM-4 심볼들을 데이터 수신기(1714)를 통해 수신 및 디코딩하도록 구성할 수 있다. 데이터 수신기(1714)는 PAM-4 심볼들을 독출 데이터 버스트들로 복원하도록 구성된 PAM-4 디코더(122)를 포함할 수 있다.The memory controller 1710 may be configured to receive and decode PAM-4 symbols transmitted on the data (DQ) bus through the data receiver 1714 . The data receiver 1714 may include a PAM-4 decoder 122 configured to recover the PAM-4 symbols into read data bursts.

본 발명은 도면에 도시된 제한된 수의 실시예들과 관련하여 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변경들 및 변형들, 그리고 균등한 다른 실시예들이 가능하다는 점을 인식할 것이다. 따라서, 첨부된 청구항들은 본 발명의 진정한 사상 및 범위 내에 속하는 바와 같은 모든 그러한 변경들 및 변형들을 커버하는 것을 의도한다.Although the present invention has been described with reference to a limited number of embodiments shown in the drawings, this is merely exemplary, and various changes and modifications, and other equivalent implementations, can be made thereto by those skilled in the art. It will be appreciated that examples are possible. Accordingly, the appended claims are intended to cover all such modifications and variations as fall within the true spirit and scope of the present invention.

Claims (10)

장치로서,
데이터 버스에 대한 송신기를 포함하고, 상기 송신기는 상기 데이터 버스로 전송될 데이터 버스트들을 심볼들로 구성된 코드워드들로 변환하는 인코더를 포함하고,
상기 인코더는 상기 데이터 버스트들과 상기 심볼들과의 상관 관계를 나타내는 로직 회로를 포함하고,
상기 로직 회로는, 코드워드 맵핑들의 개수에 따라 분류되는 다수의 서브블록 룩업 테이블들, 상기 코드워드 맵핑들은 상기 데이터 버스트들 내 일부 비트 값들과 상기 심볼들과의 상관 관계를 나타내고; 및
상기 데이터 버스트들 각각의 나머지 비트 값들에 기초하여 상기 다수의 서브블록 룩업 테이블들에 따른 인코딩 결과들을 선택적으로 연접시키는 조합 룩업 테이블을 포함하고,
상기 인코더는 상기 조합 룩업 테이블 및 상기 다수의 서브블록 룩업 테이블들을 사용하여 상기 데이터 버스트들에 대응하는 상기 코드워드를 상기 데이터 버스로 제공하도록 구성되는 장치.
As a device,
a transmitter for a data bus, the transmitter comprising an encoder for converting data bursts to be transmitted over the data bus into codewords composed of symbols;
the encoder comprises logic circuitry for correlating the data bursts with the symbols;
the logic circuit comprises a plurality of sub-block lookup tables sorted according to the number of codeword mappings, the codeword mappings representing the correlation of some bit values in the data bursts with the symbols; and
a combination lookup table that selectively concatenates encoding results according to the plurality of subblock lookup tables based on the remaining bit values of each of the data bursts;
and the encoder is configured to provide the codeword corresponding to the data bursts to the data bus using the combinational lookup table and the plurality of subblock lookup tables.
제1항에 있어서,
상기 인코더는 상기 데이터 버스트들의 8 비트들 각각에서 1-비트 값을 데이버 버스 반전(DBI) 신호 라인으로 보내어 상기 1- 비트 값의 쌍을 상기 DBI 신호 라인의 심볼로 인코딩하고, 상기 데이터 버스트들 각각의 나머지 7 비트들에 대하여 7:8 비트 인코딩을 수행하고, 상기 7:8 비트 인코딩에 따라 적어도 4개의 레벨들을 갖는 심볼 4개로 구성된 상기 코드워드들을 생성하도록 구성되는 장치.
According to claim 1,
The encoder sends a 1-bit value in each of the 8 bits of the data bursts to a data bus inversion (DBI) signal line to encode the pair of 1-bit values into a symbol of the DBI signal line, and perform 7:8 bit encoding on each of the remaining 7 bits, and generate the codewords consisting of 4 symbols having at least 4 levels according to the 7:8 bit encoding.
제2항에 있어서,
상기 다수의 서브블록 룩업 테이블들은 상기 코드워드 맵핑들을 저장하는 레지스터들이 연접되어 하나의 룩업 테이블 세트로 구성되는 장치.
3. The method of claim 2,
The plurality of sub-block lookup tables are configured as one lookup table set by concatenating registers storing the codeword mappings.
제2항에 있어서, 상기 다수의 서브블록 룩업 테이블들은 상기 데이터 버스트들 각각의 상기 나머지 7 비트들 중 상기 일부 비트 값들에 대응하는 심볼들을 나타내는 상기 코드워드 맵핑들을 포함하고,
상기 다수의 서브블록 룩업 테이블들은,
상기 일부 비트 값들 중 3-비트 값에 대응하는 8개 코드워드 맵핑들을 제공하는 제1 서브블록 룩업 테이블들;
상기 일부 비트 값들 중 2-비트 값에 대응하는 4개 코드워드 맵핑들을 제공하는 제2 서브블록 룩업 테이블들;
상기 일부 비트 값들 중 1-비트 값에 대응하는 2개 코드워드 맵핑들을 제공하는 제3 서브블록 룩업 테이블들; 및
하나의 심볼 레벨을 갖는 1개 코드워드 맵핑을 제공하는 제4 서브블록 룩업 테이블을 포함하는 장치.
3. The method of claim 2, wherein the plurality of subblock lookup tables comprises the codeword mappings representing symbols corresponding to the values of some of the remaining 7 bits of each of the data bursts;
The plurality of sub-block lookup tables are
first subblock lookup tables providing 8 codeword mappings corresponding to 3-bit values of the partial bit values;
second sub-block lookup tables providing four codeword mappings corresponding to 2-bit values of the partial bit values;
third subblock lookup tables providing two codeword mappings corresponding to a 1-bit value of the partial bit values; and
An apparatus comprising a fourth subblock lookup table providing one codeword mapping with one symbol level.
제4항에 있어서,
상기 다수의 서브블록 룩업 테이블들은 상기 코드워드 맵핑들 내 상기 심볼들 간에 상기 적어도 4개의 레벨들 중 가장 높은 전압 레벨을 갖는 레벨에서 가장 낮은 전압 레벨을 갖는 레벨로 또는 상기 가장 낮은 전압 레벨을 갖는 레벨에서 상기 가장 높은 전압 레벨을 갖는 레벨로의 최대 천이(MT) 이벤트가 발생하지 않는 최대 천이 방지(MTA) 코딩으로 구성되는 장치.
5. The method of claim 4,
The plurality of sub-block lookup tables are arranged between the symbols in the codeword mappings from a level having a highest voltage level to a level having a lowest voltage level or a level having the lowest voltage level among the at least four levels. a maximum transition prevention (MTA) coding in which no maximum transition (MT) event to the level with the highest voltage level occurs.
제4항에 있어서,
상기 조합 룩업 테이블은, 상기 데이터 버스트들 각각의 상기 나머지 비트 값들 중 2-비트 값에 기초하여 상기 제1 서브블록 룩업 테이블들 및 상기 제2 서브블록 룩업 테이블들을 조합하여 상기 코드워드를 제공하도록 구성되는 장치.
5. The method of claim 4,
the combination lookup table is configured to combine the first subblock lookup tables and the second subblock lookup tables based on a 2-bit value of the remaining bit values of each of the data bursts to provide the codeword device to be.
제4항에 있어서,
상기 조합 룩업 테이블은, 상기 데이터 버스트들 각각의 상기 나머지 비트 값들 중 3-비트 값에 기초하여 상기 제2 서브블록 룩업 테이블들을 조합하거나 제1 서브블록 룩업 테이블들 및 상기 제3 서브블록 룩업 테이블들을 조합하여 상기 코드워드를 제공하도록 구성되는 장치.
5. The method of claim 4,
The combination lookup table combines the second subblock lookup tables or the first subblock lookup tables and the third subblock lookup tables based on a 3-bit value of the remaining bit values of each of the data bursts. an apparatus configured to provide the codeword in combination.
제4항에 있어서,
상기 조합 룩업 테이블은, 상기 데이터 버스트들 각각의 상기 나머지 비트 값들 중 4-비트 값에 기초하여 상기 제1 서브블록 룩업 테이블들과 상기 제4 서브블록 룩업 테이블을 조합하거나 제2 서브블록 룩업 테이블들 및 상기 제3 서브블록 룩업 테이블들을 조합하여 상기 코드워드를 제공하도록 구성되는 장치.
5. The method of claim 4,
The combination lookup table is configured to combine the first subblock lookup tables and the fourth subblock lookup table based on a 4-bit value among the remaining bit values of each of the data bursts or use second subblock lookup tables and combining the third subblock lookup tables to provide the codeword.
제4항에 있어서,
상기 조합 룩업 테이블은, 상기 데이터 버스트들 각각의 상기 나머지 비트 값들 중 5-비트 값에 기초하여 상기 제3 서브블록 룩업 테이블들을 조합하여 상기 코드워드를 제공하도록 구성되는 장치.
5. The method of claim 4,
and the combination lookup table is configured to combine the third subblock lookup tables based on a 5-bit value of the remaining bit values of each of the data bursts to provide the codeword.
장치로서,
데이터 버스에 대한 수신기를 포함하고, 상기 수신기는 상기 데이터 버스로 수신된 심볼들로 구성된 코드워드들을 데이터 버스트들로 변환하는 디코더를 포함하고,
상기 디코더는, 상기 심볼들과 상기 데이터 버스트들과의 상관 관계를 나타내는 로직 회로를 포함하고,
상기 로직 회로는,
상기 코드워드들 각각의 상기 심볼들에 대응하는 서브블록 룩업 테이블들을 지정하는 룩업 테이블 맵핑을 제공하도록 구성되는 코드워드 디코딩 룩업 테이블;
코드워드 맵핑들의 개수에 따라 분류되는 상기 서브블록 룩업 테이블들, 상기 코드워드 맵핑들은 상기 심볼들과 상기 데이터 버스트들 내 일부 비트 값들과의 상관 관계를 나타내고; 및
상기 룩업 테이블 맵핑에 의해 지정된 서브블록 룩업 테이블들의 조합에 기초하여 상기 서브블록 룩업 테이블들을 연접시키는 조합 룩업 테이블을 포함하고,
상기 디코더는 상기 코드워드 디코딩 룩업 테이블, 상기 서브블록 룩업 테이블들 및 상기 조합 룩업 테이블을 사용하여 상기 코드워드에 대응하는 상기 데이터 버스트들로 복원하는 장치.
As a device,
a receiver for a data bus, the receiver comprising a decoder for converting codewords composed of symbols received on the data bus into data bursts;
wherein the decoder comprises logic circuitry representing a correlation between the symbols and the data bursts;
The logic circuit is
a codeword decoding lookup table configured to provide a lookup table mapping specifying subblock lookup tables corresponding to the symbols of each of the codewords;
the sub-block lookup tables classified according to the number of codeword mappings, the codeword mappings indicate the correlation between the symbols and some bit values in the data bursts; and
a combination lookup table concatenating the subblock lookup tables based on a combination of the subblock lookup tables specified by the lookup table mapping;
and the decoder reconstructs the data bursts corresponding to the codeword by using the codeword decoding lookup table, the subblock lookup tables, and the combination lookup table.
KR1020210070262A 2021-03-10 2021-05-31 Encoding and decoding apparatus and method for implementing maximum transition-avoidance coding with minimum overhead Pending KR20220127113A (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US17/590,474 US11757567B2 (en) 2021-03-10 2022-02-01 Devices and methods for encoding and decoding to implement a maximum transition avoidance coding with minimum overhead
CN202210119251.6A CN115080475A (en) 2021-03-10 2022-02-08 Apparatus and method for encoding and decoding
EP22160817.7A EP4057515B1 (en) 2021-03-10 2022-03-08 Devices for encoding

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20210031486 2021-03-10
KR1020210031486 2021-03-10

Publications (1)

Publication Number Publication Date
KR20220127113A true KR20220127113A (en) 2022-09-19

Family

ID=83460971

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210070262A Pending KR20220127113A (en) 2021-03-10 2021-05-31 Encoding and decoding apparatus and method for implementing maximum transition-avoidance coding with minimum overhead

Country Status (1)

Country Link
KR (1) KR20220127113A (en)

Similar Documents

Publication Publication Date Title
EP4057515B1 (en) Devices for encoding
EP3193259B1 (en) Encoding data using combined data mask and data bus inversion
EP4057516A1 (en) Encoding and decoding apparatuses and methods for implementing multi-mode coding
US8223042B2 (en) Encoding data with minimum hamming weight variation
US11159153B2 (en) Data bus inversion (DBI) on pulse amplitude modulation (PAM) and reducing coupling and power noise on PAM-4 I/O
US8552891B2 (en) Method and apparatus for parallel data interfacing using combined coding and recording medium therefor
US7098817B2 (en) Methods and apparatus for constant-weight encoding and decoding
US7768429B2 (en) Transmitting/receiving methods and systems for data with simultaneous switching noise reducing preambles
US10657094B2 (en) Relaxed 433 encoding to reduce coupling and power noise on PAM-4 data buses
US8656263B2 (en) Trellis-coded modulation in a multi-level cell flash memory device
KR101466695B1 (en) Method for encoding and decoding multi-bit level data
WO2011121490A1 (en) Two -level bch codes for solid state storage devices
JP2011187153A (en) Semiconductor device and memory device
US11822492B2 (en) Signal encoding method and a semiconductor device to generate an optimal transition code in a multi-level signaling system
KR20220127113A (en) Encoding and decoding apparatus and method for implementing maximum transition-avoidance coding with minimum overhead
KR20220127129A (en) Encoding and decoding apparatus and method for implementing multi-mode coding

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20210531

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20240513

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20210531

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20250217

Patent event code: PE09021S01D