KR20220127129A - 멀티 모드 코딩을 구현하는 인코딩 및 디코딩 장치 및 방법 - Google Patents

멀티 모드 코딩을 구현하는 인코딩 및 디코딩 장치 및 방법 Download PDF

Info

Publication number
KR20220127129A
KR20220127129A KR1020210174016A KR20210174016A KR20220127129A KR 20220127129 A KR20220127129 A KR 20220127129A KR 1020210174016 A KR1020210174016 A KR 1020210174016A KR 20210174016 A KR20210174016 A KR 20210174016A KR 20220127129 A KR20220127129 A KR 20220127129A
Authority
KR
South Korea
Prior art keywords
codeword
symbol
symbols
data
level
Prior art date
Application number
KR1020210174016A
Other languages
English (en)
Inventor
설창규
김지엽
소혜정
곽명보
윤필상
이수철
최영돈
최정환
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US17/689,462 priority Critical patent/US11824563B2/en
Priority to EP22160754.2A priority patent/EP4057516B1/en
Priority to TW111108501A priority patent/TWI814271B/zh
Priority to CN202210240107.8A priority patent/CN115086120A/zh
Publication of KR20220127129A publication Critical patent/KR20220127129A/ko
Priority to US18/480,261 priority patent/US20240030935A1/en

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

멀티 모드 코딩을 구현하는 인코딩 및 디코딩 장치 및 방법이 기술된다. 예시적인 장치는 데이터 버스에 연결되는 송신기 및 수신기를 포함한다. 송신기에 의해 데이터 버스트들을 다수의 심볼들로 구성된 코드워드들로 변환할 때 및/또는 수신기에 의해 수신된 코드워드를 데이터 버스트들로 복원할 때, 심볼들 간에 최대 천이(MT) 이벤트가 발생하지 않는 최대 천이 방지(MTA) 코드워드 맵핑들 및 심볼들의 최소 전력 소비와 관련되는 최소 전류(MDC) 코드워드 맵핑들이 이용된다.

Description

멀티 모드 코딩을 구현하는 인코딩 및 디코딩 장치 및 방법 {Apparatuses and methods for encoding and decoding to implement multi-mode coding}
본 발명은 장치들(apparatuses) 및 방법들(methods)에 관한 것으로서, 더욱 상세하게는 최대 천이 방지 및/또는 최소 전력 소비를 선택적으로 또는 조합적으로 지원하도록 멀티 모드 코딩을 구현하는 인코딩 및 디코딩 장치 및 방법에 관한 것이다.
컴퓨팅 시스템을 더욱 강력하고 보다 전력 효율적으로 만들려는 노력은 인터페이스 통신을 발전시켜, 전력 소비를 증가시키지 않으면서, 이상적인 경우 감소시키면서, 처리량을 향상시킨다. 일부 시스템은 펄스-진폭 변조 4-레벨 (Pulse-Amplitude Modulation 4-Level: PAM-4) 시그널링을 구현하고 있다. PAM-4는 2 비트 스트림을 4 레벨을 갖는 단일 멀티 레벨 신호로 변환하는 데 사용될 수 있다. PAM-4 시그널링 시스템은 인터페이스 라인에서 PAM-4 심볼들 사이의 최대 전압 천이를 제거하기 위한 최대 천이 방지(Maximun Transition Avoidance: MTA) 코딩을 이용할 수 있다. MTA 코딩은 신호 왜곡을 유발하는 심볼간 간섭(Inter-Symbol Interference: ISI) 및 크로스토크(Crosstalk)를 줄일 수 있다. PAM-4 시그널링 시스템은 특수 용도(special purpose)에 맞게 MTA 뿐만아니라 최소 전력 소비를 필요로 한다.
본 발명의 목적은 최대 천이 방지 및/또는 최소 전력 소비를 선택적으로 또는 조합적으로 지원하도록 멀티 모드 코딩을 구현하는 인코딩 및 디코딩 장치 및 방법을 제공하는 데 있다.
본 발명의 실시예들에 따른 장치는, 데이터 버스에 연결되는 송신기를 포함하고, 상기 송신기는 상기 데이터 버스로 전송될 데이터 버스트들을 다수의 심볼들로 구성된 코드워드들로 변환하는 인코더를 포함한다. 상기 인코더는, 상기 심볼들 간에 최대 천이(MT) 이벤트가 발생하지 않는 최대 천이 방지(MTA) 코드워드 맵핑들 및 상기 심볼들의 최소 전력 소비와 관련되는 최소 전류(MDC) 코드워드 맵핑들을 이용하여, 상기 데이터 버스트들에 대응하는 코드워드로 인코딩하도록 구성된다.
본 발명의 실시예들에 따른 장치는, 데이터 버스에 연결되는 송신기를 포함하고, 상기 송신기는 상기 데이터 버스로 전송될 데이터 버스트들을 다수의 심볼들로 구성된 코드워드들로 변환하는 인코더를 포함한다. 상기 인코더는, 상기 데이터 버스트들과 상기 코드워드들 사이의 상관 관계를 나타내는 로직 회로, 상기 로직 회로는 상기 인코더의 동작 요건들과 관련되는 코드워드 맵핑들로 구성되고, 상기 인코더의 동작 요건들은 상기 심볼들 간의 최대 천이 방지(MTA) 요건 및 상기 심볼들의 최소 전력 소비와 관련된 최소 전류(MDC) 요건을 포함하고; 및 상기 로직 회로를 이용하여 상기 데이터 버스트들에 대응하는 상기 코드워드를 상기 데이터 버스로 제공하도록 구성되는 인코딩 회로를 포함한다.
본 발명의 실시예들에 따른 데이터 (n-p)(n>p) 비트들을 n 비트들의 코드워드들로 변환하는 (n-p):n 비트 인코딩 방법은, 상기 비트 인코딩의 동작 요건을 나타내는 가중치를 설정하는 단계, 상기 동작 요건은 상기 심볼들 간의 최대 천이 방지(MTA) 요건 및 상기 심볼들의 최소 전력 소비와 관련된 최소 전류(MDC) 요건을 포함하고; 상기 가중치를 이용하여 상기 n-비트들로 구성된 2n개 코드워드들 각각에 대하여 인코딩 코스트 값을 계산하는 단계, 상기 코드워드들은 다수의 심볼들로 구성되고, 상기 인코딩 코스트 값은 상기 2n개 코드워드들 전체에 대한 상기 심볼들 간 최대 천이(MT) 이벤트들의 평균값 및 상기 심볼들의 평균 파워 코스트 값, 상기 2n개 코드워드들 각각의 상기 MT 이벤트들의 횟수 및 파워 코스트 값들의 총합 및 상기 가중치에 기초하여 계산되고; 상기 2n개 코드워드들 중에서 상기 인코딩 코스트 값이 작은 2n-p개 코드워드들을 선택하는 단계; 및 선택된 2n-p개 코드워드들을 상기 데이터 (n-p) 비트들에 맵핑시키는 단계를 포함한다.
본 발명의 실시예들에 따른 데이터를 전송하는 방법은, 데이터 라인으로 전송될 16-비트들의 데이터 버스트들을 수신하는 단계; 상기 데이터 버스트들을 2개의 1/2 데이터 버스트들로 나누는 단계; 각 1/2 데이터 버스트의 1-비트 값을 데이터 버스 반전(DBI) 신호 라인으로 보내어 상기 1- 비트 값의 쌍을 상기 DBI 신호 라인의 심볼로 인코딩하는 단계; 상기 1/2 데이터 버스트들 각각의 나머지 7-비트들에 대하여 7:8 비트 인코딩을 수행하여 적어도 4개의 레벨들을 갖는 심볼들 4개로 구성된 상기 코드워드들을 생성하는 단계; 상기 1/2 데이터 버스트들에 대한 상기 코드워드들 사이의 블록 바운더리에서 상기 데이터 버스로 제공된 이전 코드워드의 마지막 심볼과 현재 코드워드의 첫번째 심볼 사이에 최대 천이(MT) 이벤트가 발생하는지 여부를 판단하는 단계; 상기 판단 결과, 상기 MT 이벤트가 발생하면, 상기 현재 코드워드를 반전시키고 반전된 코드워드를 상기 데이터 라인으로 전송하는 단계; 및 상기 판단 결과, 상기 MT 이벤트가 발생하지 않으면, 상기 현재 코드워드를 상기 데이터 라인으로 전송하는 단계를 포함한다.
본 발명의 실시예들에 따른 장치는, 데이터 버스에 연결되는 수신기를 포함하고, 상기 수신기는 상기 데이터 버스를 통해 다수의 심볼들로 구성된 코드워드들을 수신하고, 상기 수신된 코드워드를 데이터 버스트들로 복원하는 디코더를 포함한다. 상기 디코더는, 상기 심볼들 간에 최대 천이(MT) 이벤트가 발생하지 않는 최대 천이 방지(MTA) 코드워드 맵핑들 및 상기 심볼들의 최소 전력 소비와 관련되는 최소 전류(MDC) 코드워드 맵핑들을 이용하여, 상기 코드워드에 대응하는 상기 데이터 버스트들로 디코딩하도록 구성된다.
본 발명의 실시예들에 따른 장치는, 데이터 버스에 연결되는 수신기를 포함하고, 상기 수신기는 상기 데이터 버스를 통해 다수의 심볼들로 구성된 코드워드들을 수신하고, 상기 수신된 코드워드를 데이터 버스트들로 복원하는 디코더를 포함한다. 상기 디코더는, 상기 코드워드들과 상기 데이터 버스트들과 사이의 상관 관계를 나타내는 로직 회로, 상기 로직 회로는 상기 디코더의 동작 요건들과 관련되는 코드워드 맵핑들로 구성되고, 상기 디코더의 동작 요건들은 상기 심볼들 간의 최대 천이 방지(MTA) 요건 및 상기 심볼들의 최소 전력 소비와 관련된 최소 전류(MDC) 요건을 포함하고; 및 상기 디코더로 수신되는 현재 코드워드가 반전된 코드워드인지를 판단하고, 상기 룩업 테이블들을 이용하여 상기 코드워드에 대응하는 상기 데이터 버스트들로 복원하도록 구성되는 디코딩 회로를 포함한다.
본 발명의 실시예들에 따른 데이터를 수신하는 방법은, 데이터 라인을 통해 적어도 4개의 레벨들을 갖는 심볼들 4개로 구성된 8-비트들의 코드워드들을 수신하는 단계; 상기 데이터 라인으로 수신된 현재 코드워드가 반전된 코드워드인지를 판단하는 단계; 상기 판단 결과, 상기 현재 코드워드가 반전된 코드워드이면 상기 현재 코드워드를 반전시키고, 상기 반전된 코드워드를 제1 코드워드로 출력하는 단계; 상기 판단 결과, 상기 현재 코드워드가 반전된 코드워드가 아니면 상기 현재 코드워드를 상기 제1 코드워드로 출력하는 단계; 상기 제1 코드워드의 상기 8-비트들에 대하여 8:7 비트 디코딩을 수행하여 7-비트들의 데이터 버스트들로 변환하는 단계; 및 상기 8:7 비트 디코딩에 의해 변환된 상기 7-비트들과 데이터 버스 반전(DBI) 신호 라인으로 수신되는 심볼의 1-비트 값을 결합하여 8-비트들의 상기 데이터 버스트들로 복원하는 단계를 포함한다.
본 발명에 따르면, 최대 천이 방지(MTA) 요건 및/또는 최소 전력 소비와 관련된 최소 전류(MDC) 요건을 만족하는 멀티 모드 코딩의 로직 회로를 이용함으로써 PAM-4 인코딩 및 디코딩 장치 및 방법에 요구되는 동작 요건을 적응적으로 지원할 수 있다. 또한, PAM-4 심볼이 전송되는 데이터 라인 양단의 ODT 상태에 따라 코드워드의 심볼 레벨 부호를 반전시킴으로써, MTA 코딩의 코드워드들의 기능에도 부합한다.
도 1은 본 발명의 예시적인 실시예들에 따른 송신기와 수신기를 포함하는 장치를 설명하는 블록 다이어그램이다.
도 2는 본 발명의 실시예에 따른 PAM-4 인코더에 이용되는 7-8 비트 인코딩을 설명하는 도면이다.
도 3은 본 발명의 실시예에 따른 PAM-4 인코더의 로직 회로를 설명하는 일 예의 도면이다.
도 4a 및 도 4b는 도 3의 공통 룩업 테이블의 코드워드 인코딩을 설명하는 도면들이다.
도 5a 및 도 5b는 도 3의 MTA 룩업 테이블의 코드워드 인코딩을 설명하는 도면들이다.
도 6a 및 도 6b는 도 3의 MDC 룩업 테이블의 코드워드 인코딩을 설명하는 도면들이다.
도 7은 본 발명의 실시예에 따른 PAM-4 인코더의 로직 회로를 설명하는 다른 예의 도면이다.
도 8a 및 도 8b는 도 7의 제1 중급 룩업 테이블의 코드워드 인코딩을 설명하는 도면들이다.
도 9a 및 도 9b는 도 7의 제2 중급 룩업 테이블의 코드워드 인코딩을 설명하는 도면들이다.
도 10은 도 3 및 도 7의 PAM-4 인코더의 룩업 테이블들에 적용되는 코드워드 구현 방법을 설명하는 도면이다.
도 11은 본 발명의 실시예에 따른 PAM-4 인코더를 설명하는 회로 다이어그램이다.
도 12a 및 도 12b는 본 발명의 실시예에 따른 블록 바운다리에서의 코드워드 인버전 스킴을 설명하는 도면들이다.
도 13은 본 발명의 실시예에 따른 PAM-4 인코더의 동작 방법을 설명하는 플로우챠트이다.
도 14는 본 발명의 실시예에 따른 PAM-4 디코더를 설명하는 회로 다이어그램이다.
도 15는 본 발명의 실시예에 따른 PAM-4 디코더의 동작 방법을 설명하는 플로우챠트이다.
도 16a 및 도 16b는 본 발명의 실시예에 따른 송신기와 수신기와 관련하여 대칭 ODT 회로를 개념적으로 설명하는 도면들이다.
도 17은 도 16a의 송신기와 수신기 사이의 접지 전압(VSS) ODT 타겟에 적용되는 코드워드의 심볼들을 설명하는 도면이다.
도 18a 및 도 18b는 본 발명의 실시예들에 따른 송신기와 수신기와 관련하여 비대칭 ODT 회로를 개념적으로 설명하는 도면들이다.
도 19a는 도 18의 부호 반전부의 동작을 설명하는 도면이다.
도 19b는 송신기와 수신기 사이의 전원 전압(VDD) ODT 타겟에 적용되는 코드워드의 심볼들을 설명하는 도면이다.
도 20은 본 발명의 실시예들에 따른 인코딩 및 디코딩 장치를 포함하는 메모리 시스템의 제1 예의 블록 다이어그램이다.
도 21은 도 20의 메모리 장치의 일부를 설명하는 블록도이다.
도 22는 본 발명의 실시예들에 따른 인코딩 및 디코딩 장치를 포함하는 메모리 시스템의 제2 예의 블록 다이어그램이다.
도 23은 본 발명의 실시예들에 따른 인코딩 및 디코딩 장치를 포함하는 시스템을 나타내는 블록 다이어그램이다.
도 1은 본 발명의 예시적인 실시예들에 따른 송신기와 수신기를 포함하는 장치(apparatus)를 설명하는 블록 다이어그램이다.
도 1을 참조하면, 장치(100)는 송신기(110)와 수신기(120)를 포함할 수 있다. 장치(100)는 집적 회로, 전자 기기 또는 시스템, 스마트 폰, 태블릿 PC, 컴퓨터, 서버, 워크 스테이션, 휴대용 통신 단말기, PDA(Personal Digital Assistant), PMP(Portable Multimedia Player), 그리고 다른 적절한 컴퓨터들 등과 같은 컴퓨팅 장치, 가상 머신 또는 그것의 가상 컴퓨팅 장치 등을 지칭할 수 있다. 또는 장치(100)는 그래픽스 카드와 같은 컴퓨팅 시스템에 포함된 구성 요소들 중 일부일 수 있다.
송신기(110)는 채널(130)을 통해 수신기(120)와 통신할 수 있다. 채널(130)은 송신기(110)와 수신기(120)를 물리적으로 또는 전기적으로 연결하는 복수의 신호 라인들이다. 송신기(110), 수신기(120) 및 채널(130)은 2 비트 스트림들을 4개 레벨들을 갖는 단일(single) 멀티-레벨 신호로 변환하는 PAM-4 시그널링을 지원할 수 있다.
송신기(110)는 수신기(120)로 전송될 데이터 버스트들을 PAM-4 심볼들로 변환하는 PAM-4 인코더(112)를 포함할 수 있다. PAM-4 인코더(112)는 데이터 버스트들에 인코딩을 수행하여 PAM-4 심볼들을 생성할 수 있다. 송신기(110)는 PAM-4 심볼들을 채널(130)로 구동하기 위한 출력 버퍼(116) 및 터미네이션 회로(118)를 더 포함할 수 있다. 송신기(110)는 PAM-4 심볼들을 채널(130)을 통해 수신기(120)로 전송할 수 있다.
PAM-4 인코더(112)는 멀티 모드 코딩을 구현하도록 구성되는 다수의 룩업 테이블들(905, 도 11)을 포함하는 로직 회로(114)를 포함할 수 있다. 룩업 테이블들은 데이터 버스트들과 PAM-4 심볼들과의 상관 관계를 저장하는 레지스터들(또는 저장 요소들)로 구현될 수 있다. PAM-4 인코더(112)는 록업 테이블들을 사용하여 데이터 버스트들을 PAM-4 심볼들로 변환할 수 있다.
PAM-4 심볼들은 출력 버퍼(116)에 의해 채널(130)로 전송될 수 있다. 터미네이션 회로(118)는 채널(130)에 대하여 임피던스 매칭을 제공하기 위해 터미네이션 저항 값을 조정할 수 있다. 송신기(110)의 출력 임피던스와 수신단의 임피던스가 정합(matching)되지 않으면, 수신단에서 신호 반사가 유발되고 반사된 신호가 제대로 전송되지 않아 수신단에서의 전압 레벨이 바뀌게 되어 신호 전송이 제대로 이루어지지 않을 수 있다. 채널(130)의 임피던스 매칭에 의해 신호 반사를 억제함으로써, 송수신되는 신호의 충실도(signal integrity)를 향상시킬 수 있다.
실시예에 따라, 캘리브레이션 명령은 터미네이션 회로(118)가 임피던스를 캘리브레이트 하도록 지시할 수 있다. 실시예에 따라, 터미네이션 회로(118)는 외부 저항에 연결된 임피던스 조정 핀(예, ZQ 핀)과 관련된 캘리브레이션 동작에서 생성되는 ZQ 캘리브레이션 코드에 기초하여 채널(130)로 터미네이션 저항을 제공하는 온-다이-터미네이션(ODT) 회로일 수 있다. 도 1에서, 터미네이션 회로(118)가 출력 버퍼(116)와 독립적으로 그려져 있으나, ODT 동작은 출력 버퍼(116)의 적어도 일부에 의해 수행될 수 있다. 이에 따라, 출력 버퍼(116)와 터미네이션 회로(118)가 결합되어, 채널(130)로 전송되는 신호들의 스윙 폭 및/또는 구동 강도를 조절하고 채널(130)로 터미네이션 저항을 제공할 수 있다.
수신기(120)는 PAM-4 심볼들을 수신하고, 수신된 PAM-4 심볼들을 디코딩하는 PAM-4 디코더(122)를 포함할 수 있다. PAM-4 디코더(122)는 PAM-4 심볼들을 디코딩하여 2 비트 스트림들의 데이터 버스트들을 복원(recover)할 수 있다. 수신기(120)는 채널(130) 상의 PAM-4 심볼들을 수신하기 위한 입력 버퍼(126) 및 터미네이션 회로(128)를 더 포함할 수 있다. 수신기(120)는 채널(130)을 통해 PAM-4 심볼들을 수신하여 데이터 버스트들로 복원할 수 있다.
PAM-4 디코더(122)는 PAM-4 심볼들을 디코딩하여 2 비트 스트림들의 데이터 버스트들을 복원하도록 구성되는 다수의 룩업 테이블들(1305, 도 13)을 포함하는 로직 회로(124)를 포함할 수 있다. 룩업 테이블들은 PAM-4 심볼들과 데이터 버스트들과의 상관 관계를 보여준다. PAM-4 디코더(122)는 록업 테이블들을 사용하여 PAM-4 심볼들을 데이터 버스트들로 복원할 수 있다. PAM-4 디코더(122)의 록업 테이블들은 PAM-4 인코더(112)의 록업 테이블들과 동일하게 구성될 수 있다.
입력 버퍼(126)는 채널(130) 상의 PAM-4 심볼들을 수신할 수 있다. 터미네이션 회로(128)는 채널(130)에 대하여 터미네이션 저항을 제공할 수 있다. 실시예에 따라, 터미네이션 회로(128)는 온-다이-테미네이션(ODT) 회로일 수 있다. 실시예에 따라, 입력 버퍼(126)는 기준 전압에 기초하여 채널(130)로 전송되는 신호를 수신할 수 있다.
도 2는 도 1의 PAM-4 인코더에 이용되는 7-8 비트 인코딩을 설명하는 도면이다.
도 2를 참조하면, 유저 데이터(202)와 인코드된 데이터(204) 사이의 7-8 비트 인코딩(200)을 보여준다. 유저 데이터(202)는 원본 데이터로 지칭될 수 있다. 유저 데이터(202)와 인코딩된 데이터(204)에 대하여, 각 행 DQ[i]는 시리얼 데이터 라인을 나타낸다.
유저 데이터(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]으로 나누어진다.
인코드된 데이터(204)에서, DQ[i] 행들은 시리얼 데이터 라인들을 나타내고, DBI 행은 데이터 버스 반전(DBI) 신호 라인을 나타내고, 열들은 심볼들(s[i])을 나타내는 비트 열들(bit strings)이다. 예를 들면, s[0]는 각 시리얼 데이터 라인 상의 제1 2-비트 PAM4 심볼을 나타내고, s[1]는 제2 2-비트 PAM4 심볼을 나타낸다.
7-8 비트 인코딩(200)은 다른 시리얼 데이터 라인들의 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 심볼로 인코드된다.
실시예에 따라, 7-8 비트 인코딩(200)에서, DBI 신호 라인 상의 2-비트 PAM-4 심볼은 하나의 시리얼 데이터 라인들의 어느 비트 위치의 1-비트 데이터 값의 쌍을 DBI 신호 라인 상의 PAM-4 심볼로 인코드할 수 있다. 예를 들어, 시리얼 데이터 라인 DQ[0]의 데이터 d0[0] 및 d0[8]은 DBI 신호 라인 상의 2-비트 PAM-4 심볼로 인코드되고, 시리얼 데이터 라인 DQ[1]의 데이터 d1[0] 및 d1[8]은 DBI 신호 라인 상의 2-비트 PAM-4 심볼로 인코드될 수 있다.
7-8 비트 인코딩(200)에서, 각 1/2 데이터 버스트의 DBI 신호 라인의 PAM-4 심볼로 사용되지 않은 나머지 7 비트들은 해당 시리얼 데이터 라인 상의 4개 PAM-4 심볼들로 인코드된다. 4개 PAM-4 심볼들은 8 비트들로 구성되고 코드워드로 지칭될 수 있다. 예를 들어, 데이터 d0[7:1]은 시리얼 데이터 라인 DQ[0] 상의 코드워드 c0[7:0]으로 인코드된다. 데이터 d0[7:1]의 각 7 비트들에 대한 코드워드는 4개의 PAM-4 심볼들로 나타낼 수 있다. 데이터 d0[7:1]은 심볼들 s[0], s[1], s[2] 및 s[3]으로 구성되는 코드워드 c0[7:0]로 인코드된다.
7-8 비트 인코딩(200)에서, 각 DQ[i] 시리얼 데이터 라인 상의 제1 1/2 데이터 버스트의 7 비트들에 대한 코드워드 ci[7:0]과 제2 1/2 데이터 버스트의 7 비트들에 대한 코드워드 ci[15:8] 사이는 블록 바운다리(BB)로 지칭될 수 있다. 블록 바운다리(BB)에는 현재 코드워드의 마지막 심볼과 다음 코드워드의 첫번째 심볼 사이의 최대 천이(Maximun Transition: MT) 이벤트를 방지하기 위해 코드워드 인버전 스킴(도 12a 및 도 12b)이 적용될 수 있다.
7-비트 데이터 값을 8-비트 코드워드들로의 맵핑은, 인코딩 동작 요건들에 따라 다양하게 수행되어 록업 테이블들로 저장될 수 있다. 인코딩 동작 요건들에는 PAM-4 심볼들 간의 최대 천이 방지(Maximun Transition Avoidence: MTA), 송신기(110, 도 1)의 최소 전력 소비와 관련된 최소 전류 (Mininum DC current: MDC) 또는 MTA 및 MDC의 조합들 등을 포함할 수 있다. 룩업 테이블들은 4개 PAM-4 심볼들 s[0], s[1], s[2] 및 s[3]의 8 비트 인코딩에 따른 256 패턴들 중에서 유저 데이터의 7 비트 인코딩을 위해 필요한 128개 패턴을 선택하고 선택된 128개 패턴들의 코드워드들을 제공하도록 구성될 수 있다.
이하에서는 MTA 및/또는 MDC 요건을 지원하도록 구성되는 PAM-4 심볼들과 심볼 비트들 사이의 맵핑은 표 1을 기반으로 설명될 것이다. 표 1은 설명의 목적을 위한 비제한적인 예시이다.
PAM-4 심볼 레벨들 -3 -1 +1 +3
심볼 비트들 00 01 11 10
전류 레벨 0 5VDD/18 8VDD/18 9VDD/18
DC 파워 코스트 0 5 8 9
표 1을 참조하면, 2-비트 PAM-4 심볼은 채널(130, 도 1)로 레벨 -3, -1, +1 또는 +3으로 표시되는 4개의 심볼 레벨들로 전송될 수 있다. 4개의 심볼 레벨들 각각은 출력 버퍼(116, 도 1)에 의해 4개의 전류 레벨을 가질 수 있다. 예시적으로, 레벨 +3의 PAM-4 심볼은 심볼 비트 10으로 표시되고 가장 높은 전류 레벨, 예컨대 9VDD/18 전류 레벨을 갖도록 설정될 수 있다. 레벨 +1의 PAM-4 심볼은 심볼 비트 11으로 표시되고 8VDD/18 전류 레벨을 갖도록 설정될 수 있다. 레벨 -1의 PAM-4 심볼은 심볼 비트 01으로 표시되고 5VDD/18 전류 레벨을 갖도록 설정될 수 있다. 레벨 -3의 PAM-4 심볼은 심볼 비트 00으로 표시되고 가장 낮은 제로(0) 전류 레벨을 갖도록 설정될 수 있다. 이에 따라, 레벨 +3의 PAM-4 심볼은 가장 높은 DC 파워 코스트 값 9를 갖고, 레벨 +1의 PAM-4 심볼은 DC 파워 코스트 값 8을 갖고, 레벨 -1의 PAM-4 심볼은 DC 파워 코스트 값 5를 갖고, 레벨 -3의 PAM-4 심볼은 가장 낮은 DC 파워 코스트 값 0을 갖는 것으로 나타낼 수 있다.
도 3은 도 1의 PAM-4 인코더의 로직 회로를 설명하는 일 예의 도면이다. 도 4a 및 도 4b는 도 3의 공통 룩업 테이블(301)의 코드워드 인코딩을 설명하는 도면들이다. 도 5a 및 도 5b는 도 3의 MTA 룩업 테이블(302)의 코드워드 인코딩을 설명하는 도면들이다. 도 6a 및 도 6b는 도 3의 MDC 룩업 테이블(305)의 코드워드 인코딩을 설명하는 도면들이다. 이하, 참조 번호에 붙은 첨자(예컨대, 114a의 a, 114b의 b)는 동일한 기능을 하는 다수의 회로를 구분하기 위한 것이다.
도 3을 참조하면, PAM-4 인코더(112)의 로직 회로(114a)는 공통 룩업 테이블(301), MTA 룩업 테이블(302) 및 MDC 룩업 테이블(305)를 포함할 수 있다. 공통 룩업 테이블(301)은 MTA 요건과 MDC 요건 둘 다를 완벽하게 지원하는 코드워드 맵핑들을 포함할 수 있다. MTA 룩업 테이블(302)은 MTA 요건을 지원하는 코드워드 맵핑들을 포함할 수 있다. MDC 룩업 테이블(305)은 MDC 요건을 지원하는 코드워드 맵핑들을 포함할 수 있다.
공통 룩업 테이블(301)은 MTA 요건과 MDC 요건 둘 다를 완벽하게 지원하는 코드워드 맵핑들을 포함할 수 있다. MTA 요건 및 MDC 요건 둘 다를 만족하기 위해서는, 공통 룩업 테이블(301)은 도 4a에 도시된 바와 같이, 가장 높은 전압 레벨을 갖는 레벨 +3의 PAM-4 심볼이 코드워드에 존재하지 않아야 할 것이다. 공통 룩업 테이블(301)은 도 4b에 도시된 바와 같이, 각 코드워드의 심볼 s[0], s[1], s[2] 및 s[3]에는 레벨 -3, -1 또는 +1의 심볼 인코딩(401)에 따라 코드워드들(3*3*3*3=81)로 구성될 수 있다. 이에 따라, 공통 룩업 테이블(301)는 81개 코드워드들을 포함할 수 있다.
공통 룩업 테이블(301)이 81개 코드워드들을 포함하므로, 7-8 비트 인코딩(200)을 위한 128 코드워드를 제공하기 위해, MTA 룩업 테이블(302) 및 MDC 룩업 테이블(305) 각각은 47개 코드워드들을 포함하도록 구현될 수 있다. PAM-4 인코더(112)는 MTA 룩업 테이블(302) 및 MDC 룩업 테이블(305) 중 하나를 선택하고, 선택된 룩업 테이블의 47개 코드워드들과 공통 룩업 테이블(301)의 81개 코드워드들을 합한 128개 코드워드들을 이용하여 7-8 비트 인코딩(200)을 수행할 수 있다.
MTA 룩업 테이블(302)은 온전한(entire) MTA 요건을 지원하는 코드워드 맵핑들을 포함할 수 있다. MTA 룩업 테이블(302)은 도 5a에 도시된 바와 같이, 각 코드워드 내 심볼 간에 레벨 -3에서 레벨 +3으로 또는 레벨 +3에서 레벨 -3으로 MT 이벤트가 발생하지 않고 블록 바운다리(BB)에서도 MT 이벤트가 발생하지 않는 온전한 MTA 요건을 만족하도록 제공될 수 있다. 즉, MTA 룩업 테이블(302)은 각 코드워드 내 심볼 사이에서도 그리고 블록 바운다리(BB)에서도 MTA 요건을 만족하도록 제공될 수 있다. MTA 룩업 테이블(302) 도 5b에 도시된 바와 같이, 각 코드워드의 심볼 s[0], s[1], s[2] 및 s[3]이 다수의 심볼 인코딩들(501-506)에 따른 코드워드들로 구성될 수 있다. 심볼 인코딩들(501-506)은 코드워드 내 레벨 +3의 심볼을 적어도 하나를 포함하되 심볼 간 및 블록 바운다리(BB)에서 MTA 요건을 만족하도록 수행될 수 있다.
예시적으로, 심볼 인코딩들(501-503)은 첫번째 심볼 s[0]이 레벨 +3이 아니고 코드워드 내 레벨 +3의 심볼을 적어도 하나 포함하는 코드워드들을 제공할 수 있다. 심볼 인코딩(501)은 두번째 심볼 s[1]이 레벨 +3일 때 심볼 간에 MT 이벤트가 없도록 구성되는 12개 코드워드들(2*1*2*3=12)을 제공할 수 있다. 심볼 인코딩(502)은 세번째 심볼 s[2]이 레벨 +3일 때 심볼 간에 MT 이벤트가 없도록 구성되는 12개 코드워드들(3*2*1*2=12)을 제공할 수 있다. 심볼 인코딩(503)은 네번째 심볼 s[3]이 레벨 +3일 때 심볼 간에 MT 이벤트가 없도록 구성되는 12개 코드워드들(2*3*2*1=12)을 제공할 수 있다. 심볼 인코딩들(504-506)은 첫번째 심볼 s[0]이 레벨 -3 및 레벨 +3이 아니고 레벨 +3의 심볼을 적어도 하나 포함하는 코드워드들을 제공할 수 있다. 심볼 인코딩(504)은 첫번째 심볼 s[0]이 레벨 +1 또는 레벨 -1일 때 심볼 간에 MT 이벤트가 없도록 구성되는 4개 코드워드들(2*1*1*2=4)을 제공할 수 있다. 심볼 인코딩(505)은 첫번째 심볼 s[0]이 레벨 +1일 때 심볼 간에 MT 이벤트가 없도록 구성되는 6개 코드워드들(1*3*2*1=6)을 제공할 수 있다. 그리고, 심볼 인코딩(506)은 첫번째 심볼 s[0]이 레벨 -1일 때 심볼 간에 MT 이벤트가 없도록 구성되는 1개 코드워드들(1*1*1*1=1)을 제공할 수 있다. 이에 따라, MTA 룩업 테이블(302)은 심볼 인코딩들(501-506)에 따른 47개(12+12+12+4+6+1=47) 코드워드들을 포함할 수 있다.
실시예에 따라, MTA 룩업 테이블(302)은 도 16a 및 도 16b에서 설명될 송신기(110a)와 수신기(110b) 사이의 접지 전압(VSS) ODT 상태 또는 전원 전압(VDD) ODT 상태에 따라 적응적으로 상응하는 코드워드들을 제공하도록 구성될 수 있다. 예시적으로, MTA 룩업 테이블(302)은 접지 전압(VSS) ODT 타겟에 상응하는 심볼 레벨 -3이 많이 포함된 코드워드들로 구성된 제1 테이블 및 전원 전압(VDD) ODT 타겟에 상응하는 심볼 레벨 +3이 많이 포함된 코드워드들로 구성된 제2 테이블을 포함할 수 있다.
MDC 룩업 테이블(305)은 최대한 MDC 요건을 지원하는 코드워드 맵핑들을 포함할 수 있다. MDC 룩업 테이블(305)은 도 6a에 도시된 바와 같이, 각 코드워드 내 심볼 간에 MT 이벤트를 최대 2회 허용하여 MDC 요건을 최대한 만족하도록 제공될 수 있다. MDC 룩업 테이블(305)은 MT 이벤트를 최대 2회 허용함에 따라 최저 DC 파워 코스트를 갖는 레벨 -3 심볼이 적어도 둘 이상 포함된 코드워드들을 제공할 수 있다. 이에 따라, MDC 룩업 테이블(305)은 상대적으로 최대한 MDC 요건을 만족할 수 있다.
MDC 룩업 테이블(305)은, 도 6b에 도시된 바와 같이, 각 코드워드의 심볼 s[0], s[1], s[2] 및 s[3]이 다수의 심볼 인코딩들(801-804)에 따른 코드워드들로 구성될 수 있다. 심볼 인코딩들(801-804)은 코드워드 내 레벨 -3이 적어도 둘 이상 포함되고 심볼 간 MT 이벤트가 최대 2회 허용되므로, 레벨 +3의 심볼을 적어도 하나 포함할 수 있다. 이에 따라, 심볼 인코딩들(801-804)에 따른 코드워드들에는 심볼 간 MT 이벤트가 2회 또는 1회 존재할 수 있다.
예시적으로, 심볼 인코딩(801)은 두번째 심볼 s[1]이 레벨 +3일 때 첫번째 심볼 s[0]과 두번째 심볼 s[1] 사이에 그리고 두번째 심볼 s[1]과 세번째 심볼 s[2] 사이에 MT 이벤트 2회가 존재하는, 즉 두번째 심볼 s[1] 전후에 MT 이벤트 2회가 존재하도록 구성되는 12개 코드워드들(2*1*3*2=12)을 제공할 수 있다. 심볼 인코딩(802)은 세번째 심볼 s[2]이 레벨 +3일 때 MT 이벤트 2회가 세번째 심볼 s[2] 전후에 있도록 구성되는 12개 코드워드들(2*3*1*2=12)을 제공할 수 있다. 심볼 인코딩(803)은 네번째 심볼 s[3]이 레벨 +3일 때 세번째 심볼 s[2]과 네번째 심볼 s[3] 사이에 MT 이벤트 1회가 존재하도록 구성되는 12개 코드워드들(2*2*3*1=12)을 제공할 수 있다. 심볼 인코딩(804)은 첫번째 심볼 s[0]이 레벨 +3일 때 첫번째 심볼 s[0]과 두번째 심볼 s[1] 사이에 MT 이벤트 1회가 존재하도록 구성되는 12개 코드워드들(1*3*2*2=12)을 제공할 수 있다. 심볼 인코딩(804)은 12개 코드워드들 중 임의로 1개, 예컨대, 심볼 s[0], s[1], s[2] 및 s[3]이 {3, 2, 2, 1}인 코드워드를 뺀 코드워드들(12-1=11)을 제공할 수 있다. 이에 따라, MDC 룩업 테이블(305)은 심볼 인코딩들(801-804)에 따른 47개(12+12+12+11=47) 코드워드들을 포함할 수 있다.
도 7은 도 1의 PAM-4 인코더의 로직 회로를 설명하는 다른 예의 도면이다. 도 7은 도 3에서 설명된 공통 룩업 테이블(301), MTA 룩업 테이블(302) 및 MDC 룩업 테이블(305)에 추가적으로 제1 중급 룩업 테이블(303) 및 제2 중급 룩업 테이블(304)이 더 포함된 것을 보여준다. 제1 중급 룩업 테이블(303) 및 제2 중급 룩업 테이블(304)은 MTA 요건 및 MDC 요건의 조합들에 따라 제공될 수 있다. 도 8a 및 도 8b는 도 7의 제1 중급 룩업 테이블(303)의 코드워드 인코딩을 설명하는 도면들이다. 도 9a 및 도 9b는 도 7의 제2 중급 룩업 테이블(304)의 코드워드 인코딩을 설명하는 도면들이다.
제1 중급 룩업 테이블(303)은 완화된(mitigated) MTA 요건을 지원하는 코드워드 맵핑들을 포함할 수 있다. 제1 중급 룩업 테이블(303)은 도 8a에 도시된 바와 같이, 각 코드워드 내 심볼 간 MTA 요건은 만족하지만 블록 바운다리(BB)에서는 MT 이벤트를 허용하는 요건을 만족할 수 있다.
제1 중급 룩업 테이블(303)은 도 8b에 도시된 바와 같이, 각 코드워드의 심볼 s[0], s[1], s[2] 및 s[3]이 다수의 심볼 인코딩들(601-604)에 따른 코드워드들로 구성될 수 있다. 심볼 인코딩들(601-604)은 심볼 간 MTA 요건을 만족하지만 블록 바운다리(BB)에서는 MT 이벤트를 허용하므로, 코드워드 내 레벨 +3의 심볼을 적어도 하나 포함할 수 있다.
예시적으로, 심볼 인코딩(601)은 두번째 심볼 s[1]이 레벨 +3일 때 심볼 간에 MT 이벤트가 없도록 구성되는 12개 코드워드들(2*1*2*3=12)을 제공할 수 있다. 심볼 인코딩(602)은 세번째 심볼 s[2]이 레벨 +3일 때 심볼 간에 MT 이벤트가 없도록 구성되는 12개 코드워드들(3*2*1*2=12)을 제공할 수 있다. 심볼 인코딩(603)은 네번째 심볼 s[3]이 레벨 +3일 때 심볼 간에 MT 이벤트가 없도록 구성되는 12개 코드워드들(2*3*2*1=12)을 제공할 수 있다. 심볼 인코딩(604)은 첫번째 심볼 s[0]이 레벨 +3이고 심볼 간에 MT 이벤트가 없도록 구성되는 12개 코드워드들(1*2*3*2=12)을 제공할 수 있다. 심볼 인코딩(604)은 12개 코드워드들 중 임의로 1개, 예컨대, 심볼 s[0], s[1], s[2] 및 s[3]의 레벨이 {+3, +1,+1, -1}인 코드워드를 뺀 11개 코드워드들(12-1=11)을 제공할 수 있다. 이에 따라, 제1 중급 룩업 테이블(303)은 심볼 인코딩들(601-604)에 따른 47개(36+11=47) 코드워드들을 포함할 수 있다.
제2 중급 룩업 테이블(304)은 조합된(combined) MTA 요건 및 MDC 요건을 지원하는 코드워드 맵핑들을 포함할 수 있다. 제2 중급 룩업 테이블(304)은 MTA 요건 및 MDC 요건을 부분적으로 만족하도록 제공될 수 있다. 제2 중급 룩업 테이블(304)은 도 9a에 도시된 바와 같이, 심볼 간에 MT 이벤트를 최대 1회 허용하는 MTA 요건을 만족할 수 있다. 제2 중급 룩업 테이블(304)은 MT 이벤트를 최대 1회 허용함에 따라 레벨 -3에서 레벨 +3으로 또는 레벨 +3에서 레벨 -3으로 MT 이벤트에 의해 최저 DC 파워 코스트를 갖는 레벨 -3이 포함된 코드워드들을 포함할 수 있다. 이에 따라, 제2 중급 룩업 테이블(304)은 MTA 요건 일부와 MDC 요건 일부를 지원하는 조합된 MTA 요건 및 MDC 요건을 만족할 수 있다.
제2 중급 룩업 테이블(304)은 도 9b에 도시된 바와 같이, 각 코드워드의 심볼 s[0], s[1], s[2] 및 s[3]이 다수의 심볼 인코딩들(701-704)에 따른 코드워드들로 구성될 수 있다. 심볼 인코딩들(701-704)은 심볼 간 MT 이벤트가 최대 1회 허용하므로 코드워드 내 레벨 +3의 심볼을 적어도 하나를 포함할 수 있다. 이에 따라, 심볼 인코딩들(701-704)에 따른 코드워드들에는 심볼 간 MT 이벤트가 1회 존재하거나 없을 수 있다.
예시적으로, 심볼 인코딩(701)은 두번째 심볼 s[1]이 레벨 +3일 때 첫번째 심볼 s[0]과 두번째 심볼 s[1] 사이에서 MT 이벤트가 1회 있는 12개 코드워드들(2*1*2*3=12)을 제공할 수 있다. 심볼 인코딩(702)은 세번째 심볼 s[2]이 레벨 +3일 때 세번째 심볼 s[2]과 네번째 심볼 s[3] 사이에서 MT 이벤트가 1회 있는 12개 코드워드들(3*2*1*2=12)을 제공할 수 있다. 심볼 인코딩(703)은 네번째 심볼 s[3]이 레벨 +3일 때 심볼 간에 MT 이벤트가 없도록 구성되는 12개 코드워드들(2*3*2*1=12)을 제공할 수 있다. 심볼 인코딩(704)은 첫번째 심볼 s[0]이 레벨 +3일 때 심볼 간에 MT 이벤트가 없도록 구성되는 12개 코드워드들(1*2*3*2=12)을 제공할 수 제공할 수 있다. 심볼 인코딩(704)에서, 12개 코드워드들 중 임의로 1개, 예컨대, 심볼 s[0], s[1], s[2] 및 s[3]의 레벨이 {+3, +1, +1, -1}인 코드워드를 뺀 11개 코드워드들(12-1=11)이 제공될 수 있다. 이에 따라, 제2 중급 룩업 테이블(304)은 심볼 인코딩들(701-704)에 따른 47개(12+12+12+11=47) 코드워드들을 포함할 수 있다.
도 10은 도 3 및 도 7의 PAM-4 인코더의 룩업 테이블들에 적용되는 코드워드 구현 방법을 설명하는 도면이다.
도 1, 도 2, 도 3 및 도 7과 연계하여 도 10을 참조하면, PAM-4 인코더(112)는 코드워드 생성 방법(1100)을 이용하여 7-비트의 유저 데이터에 대응하는 8-비트의 코드워드들을 제공하는 룩업 테이블들을 구현할 수 있다. 코드워드 생성 방법(1100)은 수학식 1 내지 3을 이용하여 유저 데이터의 7 비트들을 대응하는 코드워드 심볼들 s[0], s[1], s[2] 및 s[3]의 8 비트들로 변환할 수 있다.
단계 S1101에서, PAM-4 인코더(112)는 인코딩 동작 요건에 기초하여 가중치 α를 설정할 수 있다. 가중치 α는, 각 DQ[i] 시리얼 데이터 라인 상의 제1 1/2 데이터 버스트의 7 비트들에 대한 코드워드 ci[7:0] 블록 및/또는 제2 1/2 데이터 버스트의 7 비트들에 대한 코드워드 ci[15:8] 블록 내에서의 최대 천이(MT)와 연관되도록 구성될 수 있다.
단계 S1103에서, 코드워드 x에 대한 인코딩 코스트 값
Figure pat00001
을 계산하기 위하여 수학식 1에 가중치 α를 적용할 수 있다. 예시적으로, 가중치 α=0 은 MTA 룩업 테이블(302)을 구현하기 위해 적용되고, 가중치 α=1 은 MDC 룩업 테이블(305)을 구현하기 위해 적용되고, 가중치 0<α<1 은 제1 중급 룩업 테이블(303) 또는 제2 중급 룩업 테이블(304)을 구현하기 위해 적용될 수 있다.
Figure pat00002
여기에서,
Figure pat00003
는 코드워드 x에 대한 인코딩 코스트 값을 나타내고, α는 PAM-4 인코더(112)의 인코딩 동작 요건에 적응시키는 가중치 인자이다.
Figure pat00004
는 8 비트들에 대응하는 256개 코드워드들 전체에 대한 최대 천이(MT) 평균값을 나타내고,
Figure pat00005
는 256개 코드워드들 전체에 대한 DC 파워 코스트들의 평균값을 나타낸다.
Figure pat00006
는 코드워드 x 심볼들에 대한 MT 횟수를 나타내고,
Figure pat00007
는 코드워드 x 심볼들에 대한 DC 파워 코스트들의 합을 나타낸다.
단계 S1105에서, PAM-4 인코더(112)는 가중치 α>0 일 때 수학식 1을 이용하여 8 비트들에 대응하는 256개 코드워드들에 대한 인코딩 코스트 값
Figure pat00008
를 계산할 수 있다. 인코딩 코스트 값
Figure pat00009
는 256 코드워드들 전체에 대하여 계산될 수 있는데, s[0], s[1], s[2] 및 s[3] 심볼들 간 최대 천이(MT) 이벤트들의 평균 DC 파워 코스트 값, 256 코드워드들 각각의 MT 이벤트들의 횟수 및 DC 파워 코스트 값들의 총합을 이용하여 계산될 수 있다.
단계 S1105에서, PAM-4 인코더(112)는 가중치 α=0 일 때 수학식 2를 이용하여 MT가 없는 코드워드 x에 대한 인코딩 코스트 값
Figure pat00010
을 계산할 수 있다. 가중치 α=0 은 256개 코드워드들 내 MTA 코드워드들 중에서 DC 파워 코스트 값이 적은 MDC 코드워드들과 연관되도록 구성될 수 있다.
Figure pat00011
여기에서,
Figure pat00012
이다.
단계 S1105에서, PAM-4 인코더(112)는 가중치 α=0 일 때 수학식 3를 이용하여 MT가 적어도 1개 이상 존재하는 코드워드 x에 대한 인코딩 코스트 값
Figure pat00013
을 계산할 수 있다. 이 때, 코드워드 x의 첫번째 심볼이 레벨 +3일 때 DC 파워 코스트 값을 증가시키기 위하여
Figure pat00014
에 임의의 상수, 예컨대 +0.5를 산술적으로 합산할 수 있다.
Figure pat00015
여기에서, M은
Figure pat00016
의 절대값들 중 최대값 보다 큰 값으로 설정될 수 있다.
단계 S1107에서, PAM-4 인코더(112)는 단계 S1105에서 가중치 α를 적용하여 계산된 256개 코드워드들의 인코딩 코스트 값
Figure pat00017
을 오름차순으로 정렬하도록 수행될 수 있다.
단계 S1109에서, PAM-4 인코더(112)는 오름차순으로 정렬된 256개 코드워드들 중에서 인코딩 코스트 값
Figure pat00018
이 작은 코드워드들을 우선적으로 선택할 수 있다. PAM-4 인코더(112)는 선택된 코드워드들로 구성되는 룩업 테이블을 구현할 수 있다.
도 10에서는 7:8 비트 인코딩과 결합되는 인코딩 코스트 값
Figure pat00019
을 설명하고 있으나, 다양한 비트 인코딩들, 예컨대 14:16 비트 인코딩에도 인코딩 코스트 값
Figure pat00020
를 결합할 수 있다. 실시예에 따라, 유저 데이터 (n-p)(n>p) 비트들을 n 비트들의 코드워드들로 변환하는 (n-p):n 비트 인코딩은, 비트 인코딩의 동작 요건을 나타내는 가중치 α를 설정하고, 가중치 α를 이용하여 n 비트들로 구성된 2n개 코드워드들 각각에 대하여 인코딩 코스트 값
Figure pat00021
를 계산할 수 있다. 인코딩 코스트 값
Figure pat00022
는 2n개 코드워드들 전체에 대한 심볼들 간 최대 천이(MT) 이벤트들의 평균값 및 DC 파워 코스트 값들의 평균값, 2n개 코드워드들 각각의 MT 이벤트들의 횟수 및 DC 파워 코스트 값들의 합 및 가중치 α에 기초하여 계산될 수 있다. (n-p):n 비트 인코딩은 2n개 코드워드들 중에서 인코딩 코스트 값
Figure pat00023
가 작은 2n-p 개 코드워드들을 선택하고, 선택된 2n-p 개 코드워드들을 유저 데이터 (n-p) 비트들에 맵핑시킬 수 있다.
도 11은 도 1의 PAM-4 인코더를 설명하는 회로 다이어그램이다. 이하에서, PAM-4 인코더(112)는 인코딩 회로(900)를 구성하기 위한 하드웨어, 펌웨어, 소프트웨어 또는 이들의 결합 방식으로 구현되는 것을 통칭한다.
도 11을 참조하면, PAM-4 인코더(112)는 데이터 라인 DQ[0]에 연결되는 인코딩 회로(900)를 포함할 수 있다. 인코딩 회로(900)는 룩업 테이블들(905), 제1 멀티플렉서 회로(910), 제2 멀티플렉서 회로(920), 반전 회로(930), 제3 멀티플렉서 회로(940) 및 지연 회로(950)를 포함할 수 있다. 도면의 간결성을 위하여, 도 11에는 DQ[0] 데이터 라인의 인코딩 회로(900)를 도시하지만, 인코딩 회로(900)는 다른 데이터 라인 DQ[i]에 대해서도 동일하게 반복될 수 있다. 예를 들면, 인코딩 회로(900)는 제2 멀티플렉서 회로(920)로 제공되는 데이터 d0[7:1]에 대응하는 제1 코드워드 C0[7:0]a와 상관되는 코드워드를 DQ[0] 데이터 라인으로 출력하는데, 데이터 di[7:1]에 대응하는 제i 코드워드 Ci[7:0]a와 상관되는 코드워드는 DQ[i] 데이터 라인으로 출력할 수 있다.
룩업 테이블들(905)은 도 3 내지 도 10에서 설명된 공통 룩업 테이블(301), MTA 룩업 테이블(302), 제1 및 제2 중급 룩업 테이블들(303, 304) 및 MDC 룩업 테이블(305)의 코드워드들을 저장하는 레지스터들의 그룹으로 구성될 수 있다.
제1 멀티플렉서 회로(910)는 룩업 테이블들(905)의 MTA 룩업 테이블(302), 제1 및 제2 중급 룩업 테이블들(303, 304) 및 MDC 룩업 테이블(305)을 구성하는 레지스터들과 연결될 수 있다. 제1 멀티플렉서 회로(910)는 제1 모드 선택 신호(MRS[1:0])에 기초하여 MTA 룩업 테이블(302), 제1 및 제2 중급 룩업 테이블들(303, 304) 및 MDC 룩업 테이블(305) 중에서 하나를 선택할 수 있다. 선택된 룩업 테이블의 코드워드들은 제2 멀티플렉서 회로(920)로 출력될 수 있다.
제1 모드 선택 신호(MRS[1:0])는 PAM-4 인코더(112)의 인코딩 동작 요건과 관련된 동작 파라미터 코드를 나타낸다. 제1 모드 선택 신호(MRS[1:0])는 송신기(110)에 대한 동작 조건을 설정하도록 사용되는 다양한 동작 및 제어 파라미터들을 저장하는 모드 레지스터(115)에서 제공될 수 있다.
예시적으로, PAM-4 인코더(112)가 온전한 MTA 요건을 지원하는 인코딩 동작 조건에 따라, 제1 모드 선택 신호(MRS[1:0])는 "00" 코드로 제공될 수 있다. 제1 멀티플렉서 회로(910)는 "00" 코드의 제1 모드 선택 신호(MRS[1:0])에 기초하여 MTA 룩업 테이블(302)의 코드워드들을 제2 멀티플렉서 회로(920)로 출력할 수 있다. PAM-4 인코더(112)가 완화된 MTA 요건을 지원하는 인코딩 동작 조건에 따라, 제1 모드 선택 신호(MRS[1:0])가 "01" 코드로 제공되면 제1 멀티플렉서 회로(910)는 제1 중급 룩업 테이블(303)을 선택하고 제1 중급 룩업 테이블(303)의 코드워드들을 제2 멀티플렉서 회로(920)로 출력할 수 있다. PAM-4 인코더(112)가 조합된 MTA 요건 및 MDC 요건을 지원하는 인코딩 동작 조건에 따라, 제1 모드 선택 신호(MRS[1:0])가 "10" 코드로 제공되면 제2 중급 룩업 테이블(304)의 코드워드들이 제2 멀티플렉서 회로(920)로 출력될 수 있다. PAM-4 인코더(112)가 최대한 MDC 요건을 지원하는 인코딩 동작 조건에 따라, 제1 모드 선택 신호(MRS[1:0])가 "11" 코드로 제공되면 MDC 룩업 테이블(305)의 코드워드들이 제2 멀티플렉서 회로(920)로 출력될 수 있다.
제2 멀티플렉서 회로(920)는 제1 멀티플렉서 회로(910)에 의해 선택된 룩업 테이블 및 공통 룩업 테이블(301)을 구성하는 레지스터들과 연결될 수 있다. 제2 멀티플렉서 회로(920)는 선택된 룩업 테이블 및 공통 룩업 테이블(301)의 코드워드들 중에서 데이터 d0[7:1] 비트 값에 해당하는 제1 코드워드 C0[7:0]a를 출력할 수 있다. 제1 코드워드 C0[7:0]a는 반전 회로(930) 및 제3 멀티플렉서 회로(940)로 출력될 수 있다.
제3 멀티플렉서 회로(940)는 반전 회로(930)에서 출력되는 반전 코드워드 INV_C0[7:0]a와 제2 멀티플렉서 회로(920)에서 출력되는 제1 코드워드 C0[7:0]a를 입력할 수 있다. 제3 멀티플렉서 회로(940)는 제2 모드 선택 신호(MTA_Mode)에 응답하여 반전 코드워드 INV_C0[7:0]a 또는 제1 코드워드 C0[7:0]a를 선택하여 제2 코드워드 c0[7:0]b로 출력할 수 있다.
제2 모드 선택 신호(MTA_Mode)는 블록 바운다리(BB, 도 2)에서 현재 코드워드의 마지막 심볼과 다음 코드워드의 첫번째 심볼 사이의 최대 천이(MT) 이벤트를 방지하기 위해 제공될 수 있다. 제2 모드 선택 신호(MTA_Mode)는 제1 모드 선택 신호(MRS[1:0])가 MTA 요건을 지원하도록 설정될 때, 예컨대 “00" 코드의 제1 모드 선택 신호(MRS[1:0])에 기초하여 활성화되는 신호이다.
제3 멀티플렉서 회로(940)는 제2 모드 선택 신호(MTA_Mode)의 활성화에 따라 반전 코드워드 INV_C0[7:0]a를 선택하여 제2 코드워드 c0[7:0]b로 출력할 수 있다. 제3 멀티플렉서 회로(940)는 제2 모드 선택 신호(MTA_Mode)의 비활성화에 따라 제1 코드워드 C0[7:0]a를 선택하여 제2 코드워드 c0[7:0]b로 출력할 수 있다. 반전 코드워드 INV_C0[7:0]a 또는 제1 코드워드 C0[7:0]a에 상응하는 제2 코드워드 c0[7:0]b)는 DQ[0] 데이터 라인과 연결된 채널(130, 도 1)로 전달되어 수신기(120)로 전송될 수 있다.
반전 회로(930)는 제3 멀티플렉서 회로(940)에서 출력되는 현재의 제1 코드워드 C0[7:0]a를 입력하고, 지연 회로(950)의 출력에 기초하여 제1 코드워드 C0[7:0]a의 비트들을 반전시킬 수 있다. 지연 회로(950)는 제3 멀티플렉서 회로(940)에서 출력된 이전의 제1 코드워드 C0[7:0]a를 저장하고, 이전 제1 코드워드 C0[7:0]a의 마지막 심볼 s[3]을 반전 회로(930)로 제공할 수 있다.
반전 회로(930)는 이전 제1 코드워드 C0[7:0]a의 마지막 심볼 s[3]과 현재 제1 코드워드 C0[7:0]a의 첫번째 심볼 s[0] 사이에 MT 이벤트가 발생하는지 여부를 판단할 수 있다. 반전 회로(930)는 마지막 심볼 s[3]과 첫번째 심볼 s[0] 사이에 MT 이벤트가 발생하는지, 즉 가장 높은 전압 레벨에서 가장 낮은 전압 레벨로 천이하거나 가장 낮은 전압 레벨에서 가장 높은 전압 레벨로의 천이가 발생하는지 판단할 수 있다. 이전 제1 코드워드 C0[7:0]a의 마지막 심볼 s[3]과 현재 제1 코드워드 C0[7:0]a의 첫번째 심볼 s[0] 사이에 MT 이벤트가 발생하면, 반전 회로(930)는 현재 제1 코드워드 C0[7:0]a를 반전시켜 반전 코드워드 INV_C0[7:0]a를 생성할 수 있다. 만약 MT 이벤트가 발생하지 않으면, 반전 회로(930)는 현재 제1 코드워드 C0[7:0]a를 그대로 반전 코드워드 INV_C0[7:0]a로 출력할 수 있다.
예시적으로, 반전 회로(930)는 이전 제1 코드워드 C0[7:0]a의 마지막 심볼이 레벨 +3에 해당하는 심볼 비트 "10" 인지를 판단할 수 있다. 판단 결과, 이전 제1 코드워드 C0[7:0]a의 마지막 심볼 비트 "10"이고 현재 제1 코드워드 C0[7:0]a의 첫번째 심볼 비트가 "00"인 경우, 반전 회로(930)는 현재의 제1 코드워드 C0[7:0]a를 반전시켜 반전 코드워드 INV_C0[7:0]a를 생성할 수 있다. 반전 코드워드 INV_C0[7:0]a는 제2 모드 선택 신호(MTA_Mode)의 활성화에 따라 제3 멀티플렉서 회로(940)를 통해 제2 코드워드 c0[7:0]b로서 출력될 수 있다. 반전 코드워드 INV_C0[7:0]a에 상응하는 제2 코드워드 c0[7:0]b는 DQ[0] 데이터 라인과 연결된 채널(130, 도 1)로 전달되어 수신기(120)로 전송될 수 있다.
한편, 제1 및 제2 멀티플렉서 회로들(910, 920)에 의해 출력되는 코드워드들은 코드워드들 사이의 블록 바운다리(BB)에서 MT 이벤트가 발생하지 않는 코드워드들, 예컨대 MTA 코딩의 코드워드들로 구성될 수 있다. 이 경우, 이전 코드워드의 마지막 심볼이 레벨 +3인 경우는 발생하지 않는다. 반전 회로(930)는 입력되는 현재의 제1 코드워드 c0[7:0]a의 심볼 비트들에 대하여 반전 여부를 판단하도록 구성될 수 있다. 반전 회로(930)는 레벨 +3의 심볼 비트 "10"과 레벨 -3의 심볼 비트 "00"에 공통인 LSB(Least Significant Bit) "0"에 기초하여 현재 제1 코드워드 c0[7:0]a를 반전할 수 있다. 반전 회로(930)는 입력되는 제1 코드워드 C0[7:0]a의 LSB 심볼 비트 "0"에 응답하여 제1 코드워드 C0[7:0]a를 반전시켜 반전 코드워드 INV_C0[7:0]a를 생성할 수 있다.
실시예에 따라, 도 11의 룩업 테이블들(905)은 다수의 멀티플렉서 회로들로 구현되거나 또는 기능적으로 동일한 로직 회로들로 최적화되어 구현될 수도 있다.
도 12a 및 도 12b는 본 발명의 일실시예에 따른 블록 바운다리에서의 코드워드 인버전 스킴을 설명하는 도면들이다. 도 12a 및 도 12b는 도 11의 반전 회로(930)에 의해 수행되는 코드워드 인버전 스킴을 보여준다.
도 11 및 도 12a를 참조하면, 이전 코드워드 심볼들 레벨이 {-3, +1, -1, +1}이라고 가정한다. 반전 회로(930)로 입력되는 현재 코드워드 심볼들 레벨이 {-1, +1, -3, +1}인 경우, 지연 회로(950)에서 제공되는 이전 코드워드의 마지막 심볼 s[3]이 레벨 +3에 해당하지 않기 때문에, 반전 회로(930)는 현재 코드워드 심볼들 {-1, +1, -3, +1}에 대한 코드워드 인버전을 수행하지 않는다.
도 12b를 참조하면, 이전 코드워드 심볼들 레벨이 {-3, +1, -1, +3}이라고 가정한다. 반전 회로(930)로 입력되는 현재 코드워드 심볼들 레벨이 {-3, +1, -3, +1}인 경우, 지연 회로(950)에서 제공되는 이전 코드워드의 마지막 심볼 s[3]이 레벨 +3에 해당하기 때문에, 반전 회로(930)는 현재 코드워드 심볼들 {-3, +1, -3, +1}를 반전시키는 코드워드 인버전(1002)를 수행하여 반전 코드워드 심볼들{+3, -1, +3, -1}을 출력할 수 있다.
도 13은 본 발명의 실시예에 따른 PAM-4 인코더의 동작 방법을 설명하는 플로우챠트이다.
도 2 내지 도 12와 연계하여 도 13를 참조하면, 단계 S1201에서, PAM-4 인코더(112)는 데이터 라인 DQ[0]으로 전송될 16 비트 데이터 버스트들을 수신할 수 있다. 단계 S1202에서, PAM-4 인코더(112)는 16 비트 데이터 버스트를 제1 1/2 데이터 버스트 d0[0]d0[7:1] 및 제2 1/2 데이터 버스트 d0[8]d0[15:9]로 나눌 수 있다. 단계 S1203에서, PAM-4 인코더(112)는 1/2 데이터 버스트 각각에서 하나의 비트, 예컨대 d0[0] 및 d0[8]을 DBI 신호 라인으로 전달할 수 있다. 단계들 S1204 및 S1205에서, PAM-4 인코더(112)는 비트 쌍 d0[0] 및 d0[8]을 PAM-4 심볼로 결합하고, PAM-4 심볼을 DBI 신호 라인으로 전송할 수 있다().
단계 S1206에서, PAM-4 인코더(112)는 1/2 데이터 버스트 각각에서 DBI 신호 라인의 PAM-4 심볼로 사용되지 않은 나머지 7 비트들을 코드워드로 변환하는 인코딩을 수행할 수 있다. 단계들 S1207 및 S1208에서, PAM-4 인코더(112)는 이전 코드워드의 마지막 심볼 s[3]과 현재 코드워드의 첫번째 심볼 s[0] 사이에 MT 이벤트가 발생하는지 여부를 판단할 수 있다. 단계 S1208의 판단 결과, MT 이벤트가 발생하면(YES), PAM-4 인코더(112)는 단계 S1209로 이동할 수 있다. 단계 S1209에서, PAM-4 인코더(112)는 현재 코드워드를 반전하고 단계 S1210로 이동한다. 단계 S1208의 판단 결과, MT 이벤트가 발생하지 않으면(NO), 단계 S1210로 이동한다. 단계 S1210에서, PAM-4 인코더(112)는 현재 코드워드의 마지막 심볼 s[3]이 지연 회로(950)에 저장할 수 있다. 단계 S1211에서, PAM-4 인코더(112)는 1/2 데이터 버스트 각각의 7 비트들에 대한 코드워드를 채널(130)로 전송할 수 있다.
도 14는 본 발명의 실시예에 따른 PAM-4 디코더를 설명하는 회로 다이어그램이다. 이하에서, PAM-4 디코더(122)는 디코딩 회로(1300)를 구성하기 위한 하드웨어, 펌웨어, 소프트웨어 또는 이들의 결합 방식으로 구현되는 것을 통칭한다.
도 1 및 도 13을 참조하면, PAM-4 디코더(122)는 데이터 라인 DQ[0]에 대하여 도 11의 인코딩 회로(900)에 대응하여 8:7 비트 디코딩을 수행하는 디코딩 회로(1300)를 포함한다. 디코딩 회로(1300)는 룩업 테이블들(1305), 제1 멀티플렉서 회로(1310), 제2 멀티플렉서 회로(1320), 반전 회로(1330), 제3 멀티플렉서 회로(1340), 지연 회로(1350) 및 인터리브 회로(1360)를 포함할 수 있다. 디코딩 회로(1300)는 다른 데이터 라인 DQ[i]에 대해서도 동일하게 반복될 수 있다.
룩업 테이블들(1305)은 도 3 내지 도 10에서 설명된 공통 룩업 테이블(301), MTA 룩업 테이블(302), 제1 및 제2 중급 룩업 테이블들(303, 304) 및 MDC 룩업 테이블(305)의 코드워드들을 저장하는 레지스터들의 그룹으로 구성될 수 있다. 룩업 테이블들(1305)은 인코딩 회로(900)의 룩업 테이블들(905)와 동일하게 구성되지만, 입력/출력 코딩 관계는 서로 반대로 구성될 수 있다. 실시예에 따라, 룩업 테이블들(1305)은 다수의 멀티플렉서 회로들로 구현되거나 또는 기능적으로 동일한 로직 회로들로 최적화되어 구현될 수도 있다.
디코딩 회로(1300)는 인코딩 회로(900 도 11)에 의해 채널(130)의 데이터 라인 DQ[0]으로 전송된 제2 코드워드 c0[7:0]b를 수신하고, 제2 코드워드 c0[7:0]b를 반전 회로(1330) 및 제3 멀티플렉서 회로(1340)로 제공할 수 있다.
제3 멀티플렉서 회로(1340)는 반전 회로(1330)에서 출력되는 반전 코드워드 INV_c0[7:0]b와 제2 코드워드 c0[7:0]b를 입력할 수 있다. 제3 멀티플렉서 회로(1340)는 제2 모드 선택 신호(MTA_Mode)에 응답하여 반전 코드워드 INV_c0[7:0]b 또는 제2 코드워드 c0[7:0]b를 선택하여 제3 코드워드 c0[7:0]로 출력할 수 있다. 제2 모드 선택 신호(MTA_Mode)는 도 11의 인코딩 회로(900)에서 설명된 제2 모드 선택 신호(MTA_Mode)와 동일한 기능을 갖는데, 블록 바운다리(BB, 도 2)에서 최대 천이(MT) 이벤트를 방지하기 위해 제공될 수 있다.
제2 코드워드 C0[7:0]b는 제2 모드 선택 신호(MTA_Mode)의 비활성화에 따라 제3 멀티플렉서 회로(1340)를 통해 제3 코드워드 c0[7:0]로 출력될 수 있다. 제2 코드워드 c0[7:0]b에 상응하는 제3 코드워드 c0[7:0]는 제2 멀티플렉서 회로(1320)로 제공될 수 있다.
지연 회로(1350)는 제3 멀티플렉서 회로(1340)에서 출력된 이전의 제3 코드워드 c0[7:0]를 저장하고, 이전 제3 코드워드 c0[7:0]의 마지막 심볼 s[3]을 반전 회로(1330)로 제공할 수 있다.
반전 회로(1330)는 이전 제3 코드워드 c0[7:0]의 마지막 심볼 s[3]이 레벨 +3에 해당하는 심볼인지를 판단할 수 있다. 또한, 반전 회로(1330)는 수신되는 현재의 제2 코드워드 c0[7:0]b의 첫번째 심볼 s[0]이 레벨 +3 인지를 판단할 수 있다. 반전 회로(1330)는 이전 제3 코드워드 c0[7:0]의 마지막 심볼 s[3]이 레벨 +3이고 현재 제2 코드워드 c0[7:0]b의 첫번째 심볼 s[0]이 레벨 +3 인 경우, 현재 제2 코드워드 c0[7:0]b가 PAM-4 인코더(112)에 의해 반전된 것으로 판단할 수 있다. 이 경우, 반전 회로(1330)는 현재 제2 코드워드 c0[7:0b]를 반전시켜 반전 코드워드 INV_c0[7:0]b를 생성할 수 있다. 반전 코드워드 INV_c0[7:0]b는 제2 모드 선택 신호(MTA_Mode)의 활성화에 따라 제3 멀티플렉서 회로(1340)를 통해 제3 코드워드 c0[7:0]로 출력될 수 있다. 반전 코드워드 INV_c0[7:0]b에 상응하는 제3 코드워드 c0[7:0]는 제2 멀티플렉서 회로(1320)로 제공될 수 있다.
디코딩 회로(1300)는 코드워드들 사이의 블록 바운다리(BB)에서 MT 이벤트가 발생하지 않는 MTA 코딩의 제2 코드워드 c0[7:0]b를 수신할 수 있다. 이 경우, 이전 코드워드의 마지막 심볼이 레벨 3인 경우는 발생하지 않는다. 실시예에 따라, 반전 회로(1330)는 순차적으로 입력되는 제2 코드워드 c0[7:0]b의 심볼 비트들에 대하여 반전 여부를 판단하도록 구성될 수 있다. 반전 회로(1330)는 입력되는 현재의 제2 코드워드 c0[7:0]b에 대하여 레벨 +3의 심볼 비트 "10"과 레벨 -3의 심볼 비트 "00"에 공통인 LSB "0"에 기초하여 현재 제2 코드워드 c0[7:0]b를 반전할 수 있다. 반전 회로(930)는 입력되는 제2 코드워드 c0[7:0]b의 LSB 심볼 비트 "0"에 응답하여 제2 코드워드 c0[7:0]b를 반전시켜 반전 코드워드 INV_C0[7:0]b를 생성할 수 있다.
실시예에 따라, 반전 회로(1330)는 송신기(110, 도 1)에서 제공되는 별도의 반전 신호에 응답하여 심볼 비트들의 반전 여부를 판단하고, 판단 결과에 따라 심볼 비트들을 반전할 수 있다.
제1 멀티플렉서 회로(1310)는 룩업 테이블들(1305) 내 MTA 룩업 테이블(302), 제1 및 제2 중급 룩업 테이블들(303, 304) 및 MDC 룩업 테이블(305)을 구성하는 레지스터들과 연결되고, 제1 모드 선택 신호(MRS[1:0])에 기초하여 MTA 룩업 테이블(302), 제1 및 제2 중급 룩업 테이블들(303, 304) 및 MDC 룩업 테이블(305) 중에서 하나를 선택할 수 있다. 선택된 룩업 테이블의 코드워드들은 제2 멀티플렉서 회로(1320)로 출력될 수 있다. 제1 모드 선택 신호(MRS[1:0])는 도 11에서 설명된 PAM-4 인코더(112)의 인코딩 동작 요건과 관련된 동작 파라미터 코드와 동일하게 설정될 수 있다.
제1 모드 선택 신호(MRS[1:0])는 수신기(120)에 대한 동작 조건을 설정하도록 사용되는 다양한 동작 및 제어 파라미터들을 저장하는 모드 레지스터(125)에서 제공될 수 있다. 예시적으로, 송신기(110)에 설정된 인코딩 동작 조건과 동일하게, "00" 코드의 제1 모드 선택 신호(MRS[1:0])에 기초하여 MTA 룩업 테이블(302)이 선택되고, "10" 코드에 기초하여 제2 중급 룩업 테이블(304)이 선택되고, "11" 코드에 기초하여 MDC 룩업 테이블(305)이 선택되도록 설정될 수 있다. 그리고, 제2 모드 선택 신호(MTA_Mode)는 "00" 코드의 제1 모드 선택 신호(MRS[1:0])에 기초하여 활성화되는 신호이다.
제2 멀티플렉서 회로(1320)는 제1 모드 선택 신호(MRS[1:0])에 따라 제1 멀티플렉서 회로(1310)에 의해 선택된 룩업 테이블 및 공통 룩업 테이블(301)을 구성하는 레지스터들과 연결되고, 선택된 룩업 테이블 및 공통 룩업 테이블(301)의 코드워드들 중에서 제3 코드워드 c0[7:0]에 대응하는 데이터 d0[7:1] 비트 값을 출력할 수 있다. 유저 데이터 d0[7:1]는 인터리브 회로(1360)로 제공될 수 있다.
인터리브 회로(1360)는 제2 멀티플렉서 회로(1320)에서 출력되는 데이터 d0[7:1] 및 DBI 신호 라인을 통해 수신되는 PAM-4 심볼에서 데이터 d0[0]을 수신하고, 데이터 d0[0] 및 d0[7:1]를 결합시켜 제1 1/2 데이터 버스트 d0[0]d0[7:1]를 복원할 수 있다. 이와 유사하게, 인터리브 회로(1360)는 데이터 d0[15:9] 및 DBI 신호 라인을 통해 수신되는 데이터 d0[8]을 수신하고, 데이터 d0[8] 및 d0[15:9]를 결합시켜 제2 1/2 데이터 버스트 d0[8]d0[15:9]를 복원할 수 있다. 디코딩 회로(1300)는 각 시리얼 데이터 라인 DQ[i]에 대한 1/2 데이터 버스트들을 결합시켜 완전한(full) 데이터 버스트들을 복원할 수 있다.
도 15는 본 발명의 실시예에 따른 PAM-4 디코더의 동작 방법을 설명하는 플로우챠트이다.
도 1, 도 2, 도 11 및 도 14과 연계하여 도 15를 참조하면, 단계 S1401에서, PAM-4 디코더(122)는 채널(130)의 데이터 라인 DQ[0]을 통해 제2 코드워드 c0[7:0]b를 수신할 수 있다. 단계 S1402에서, PAM-4 디코더(122)는 수신된 제2 코드워드 c0[7:0]b가 반전된 코드워드인지를 판단할 수 있다. 단계 S1402의 판단 결과, 수신된 제2 코드워드 c0[7:0]b가 반전된 코드워드이면(YES), PAM-4 디코더(122)는 단계 S1403로 이동할 수 있다. 단계 S1403에서, PAM-4 디코더(122)는 제2 코드워드 c0[7:0]b를 반전시켜서 제3 코드워드 c0[7:0]로 출력하고 단계 S1404로 이동한다. 현재 코드워드는 반전되어(S1403), 단계 S1404로 이동한다. 단계 S1402의 판단 결과, 수신된 제2 코드워드 c0[7:0]b가 반전된 코드워드가 아니면(NO), 제2 코드워드 c0[7:0]b 그대로 제3 코드워드 c[7:0]로 출력하고, 단계 S1404로 이동한다.
단계 S1404에서, PAM-4 디코더(122)는 제3 코드워드 c0[7:0]를 데이터 d0[7:1]로 변환하는 8:7-비트 디코딩을 수행할 수 있다. 단계 S1405에서, PAM-4 디코더(122)는 채널(130)의 DBI 신호 라인을 통해 PAM-4 심볼을 수신할 수 있다. 단계 S1406에서, PAM-4 디코더(122)는 수신된 PAM-4 심볼의 데이터 d0[0]와 디코드된 데이터 d0[7:1]를 결합시켜서 제1 1/2 데이터 버스트 d0[0]d0[7:1]를 복원할 수 있다.
PAM-4 디코더(122)는 데이터 라인 DQ[0]에 대한 제2 1/2 데이터 버스트들을 복원하기 위해, 단계 S1401 내지 단계 S1406 에서 코드워드 c0[15:8]b를 수신하고 디코딩해서 데이터 d0[15:9]로 변환하고, DBI 신호 라인을 통해 수신된 PAM-4 심볼의 d0[8]과 디코드된 데이터 d0[15:9]를 결합시켜서 제2 1/2 데이터 버스트 d0[8]d0[15:9]를 복원할 수 있다.
단계 S1404에서, PAM-4 디코더(122)는 제1 1/2 데이터 버스트 d0[0]d0[7:1]와 제2 1/2 데이터 버스트 d0[8]d0[15:9]를 결합시켜 완전한 데이터 버스트들을 복원할 수 있다.
도 16a 및 도 16b는 본 발명의 실시예에 따른 송신기와 수신기와 관련하여 대칭 ODT 회로를 개념적으로 설명하는 도면들이다. 도 16a는 송신기와 수신기 사이의 접지 전압(VSS) ODT로 구성된 대칭 ODT 회로를 보여주고, 도 16b는 전원 전압(VDD) ODT로 구성된 대칭 ODT 회로를 보여준다. 도 17은 도 16a의 송신기(110a)와 수신기(120a) 사이의 접지 전압(VSS) ODT 타겟에 적용되는 코드워드의 심볼들을 설명하는 도면이다.
도 16a를 참조하면, 송신기(110a)는 PAM-4 인코더(112)의 인코딩 회로(900)에서 출력되는 코드워드를 출력 버퍼(116)를 통해 채널(130)로 전송할 수 있다. 코드워드는 도 5a 및 도 5b에서 설명된 심볼 간에 MT 이벤트가 발생하지 않고 블록 바운다리(BB)에서도 MT 이벤트가 발생하지 않는 코드워드들로 구성되는 MTA 룩업 테이블(302)에서 제공되는 코드워드일 수 있다. 또한, 코드워드는 이전 코드워드의 마지막 심볼과 현재 코드워드의 첫번째 심볼에 기초하여 블록 바운다리(BB) 사이의 MT 이벤트가 발생할 때, 현재 코드워드 심볼들에 대한 코드워드 인버전을 수행하는 반전 회로(930)에 의해 반전 코드워드로 제공될 수 있다. 이에 따라, 인코딩 회로(900)에서 출력되는 코드워드는 접지 전압(VSS) 레벨에 상응하는 제로(0) 전류 레벨과 제로(0) DC 코스트 값을 갖는 심볼 레벨 -3이 많이 포함되어 저전력으로 전송되도록 코딩된 코드워드일 것이다.
출력 버퍼(116)는 전원 전압(VDD) 라인과 채널(130) 사이에 연결되는 풀-업 트랜지스터(PU)와 채널(130)과 접지 전압(VSS) 라인 사이에 연결되는 풀-다운 트랜지스터(PD)를 포함할 수 있다. 도 16a에서는, 하나의 풀-업 트랜지스터(PU)와 하나의 풀-다운 트랜지스터(PD)가 그려져 있으나, 풀-업 트랜지스터(PU) 및 풀-다운 트랜지스터(PD) 각각은 실제적으로 다수개의 트랜지스터들로 구성될 수 있다. 풀-업 트랜지스터(PU)와 풀-다운 트랜지스터(PD)의 게이트들 중 일부는 인코딩 회로(900)에서 출력되는 코드워드를 수신하고, 나머지 일부는 ZQ 캘리브레이션 코드를 수신할 수 있다. 이에 따라, 풀-업 트랜지스터(PU)와 풀-다운 트랜지스터(PD)는 채널(130)로 전송되는 코드워드의 스윙 폭 및/또는 구동 세기를 조절하고 채널(130)로 터미네이션 저항을 제공할 수 있다.
풀-업 트랜지스터(PU) 및 풀-다운 트랜지스터(PD) 각각은 코드워드의 심볼 레벨 -3, -1, +1 또는 +3에 따라 구동 능력이 결정될 수 있다. 설명의 편의를 위하여, 코드워드에 따른 풀-업 트랜지스터(PU) 및 풀-다운 트랜지스터(PD) 각각의 구동 능력이 풀-업 저항 값 R1 및 풀-다운 저항 값 R2로 모델링된다고 가정한다.
수신기(120a)는 출력 버퍼(116)를 통해 채널(130)로 전송된 코드워드를 입력 버퍼(126)가 수신할 때, 터미네이션 회로(128a)에 의해 채널(130)에 대하여 터미네이션 저항(R3)을 제공할 수 있다. 터미네이션 회로(128a)는 채널(130)과 접지 전압(VSS) 라인 사이에 연결되는 터미네이션 저항(R3)을 포함할 수 있다. 수신기(120a)의 터미네이션 회로(128a)는 접지 전압(VSS) 레벨에 상응하는 심볼 레벨 -3이 많이 포함된 코드워드 레벨에 대하여 동일한 전압, 즉 접지 전압(VSS)에 연결되는 대칭 ODT(symmetric ODT)로 구성될 수 있다.
도 16b를 참조하면, 수신기(120a)는 도 16a와 비교하여, 전원 전압(VDD) 라인과 채널(130) 사이에 연결되는 터미네이션 회로(128a`)를 포함할 수 있다. 송신기(110a)와 수신기(120a) 사이는 전원 전압(VDD) ODT로 구성된 대칭 ODT 상태일 수 있다. 송신기(110a)는 PAM-4 인코더(112)의 MTA 룩업 테이블(302)에서 제공되는 코드워드를 출력 버퍼(116)를 통해 채널(130)로 전송하는데, 코드워드는 도 19b에서 설명될 전원 전압(VDD) ODT 타겟에 적용되는 심볼들로 구성될 수 있다. MTA 룩업 테이블(302)은 전원 전압(VDD) ODT 타겟에 상응하도록 코딩된 코드워드들, 예컨대 심볼 레벨 +3이 많이 포함된 코드워드들을 제공할 수 있다.
실시예에 따라, PAM-4 인코더(112)는 송신기(110a)와 수신기(110b) 사이의 접지 전압(VSS) ODT 상태 또는 전원 전압(VDD) ODT 상태에 따라 적응적으로 상응하는 코드워드들을 제공하는 MTA 룩업 테이블(302)을 포함할 수 있다. MTA 룩업 테이블(302)은 접지 전압(VSS) ODT 타겟에 상응하는 심볼 레벨 -3이 많이 포함된 코드워드들로 구성된 제1 테이블 및 전원 전압(VDD) ODT 타겟에 상응하는 심볼 레벨 +3이 많이 포함된 코드워드들로 구성된 제2 테이블을 포함할 수 있다.
도 16a와 관련하여, 송신기(110a)의 출력 버퍼(116), 채널(130) 및 수신기(120a)의 터미네이션 회로(128a)는 도 17에 도시된 바와 같이 모델링될 수 있다. 도 17을 참조하면, 채널(130)의 임피던스 매칭을 위하여, 터미네이션 저항(R3)은 채널(130)의 저항 값 R과 동일하게 저항 값 R로 설정될 수 있다. 출력 버퍼(116)의 풀-업 트랜지스터(PU) 및 풀-다운 트랜지스터(PD) 각각은 코드워드의 심볼 레벨 -3, -1, +1 또는 +3에 따라 풀-업 모델링 저항 값 R1와 풀-다운 모델링 저장 값 R2는 다르게 나타날 수 있다.
예시적으로, 심볼 레벨 -3과 관련하여, 풀-업 모델링 저항 값 R1은 무한대 값으로 표시되고 풀-다운 모델링 저항 값 R2는 저항 값 R로 표시될 수 있다. 이에 따라, 심볼 레벨 -3은 제로(0) 전류 레벨과 제로(0) DC 코스트 값을 가질 수 있다. 심볼 레벨 -1과 관련하여, 풀-업 모델링 저항 값 R1은 저항 값 3R로 표시되고 풀-다운 모델링 저항 값 R2는 저항 값 1.5R로 표시됨에 따라, 심볼 레벨 -1은 5VDD/18 전류 레벨과 DC 코스트 값 5를 가질 수 있다. 심볼 레벨 +1과 관련하여, 풀-업 모델링 저항 값 R1은 저항 값 1.5R로 표시되고 풀-다운 모델링 저항 값 R2는 저항 값 3R로 표시됨에 따라, 심볼 레벨 +1은 8VDD/18 전류 레벨과 DC 코스트 값 8을 가질 수 있다. 심볼 레벨 +3과 관련하여, 풀-업 모델링 저항 값 R1은 저항 값 R로 표시되고 풀-다운 모델링 저항 값 R2는 무한대 값으로 표시됨에 따라, 심볼 레벨 +3은 9VDD/18 전류 레벨과 DC 코스트 값 9를 가질 수 있다. 접지 전압(VSS) ODT 상태에서는 코드워드의 심볼 레벨 -3이 많을수록 저전력으로 전송되는 코드워드일 것이다.
도 16a 및 도 17에서 설명된 송신기(110a)와 수신기(120a) 사이의 접지 전압(VSS) ODT는 MTA 코드워드를 저전력 공급으로 코드워드 전송 가능하도록 구성될 수 있다. 수신기(120a)의 입력 버퍼(126)를 통해 수신되는 코드워드는 도 14에서 설명된 PAM-4 디코더(122)의 디코딩 회로(1300)에 의해 데이터 버스트로 복원될 수 있다.
도 18a 및 도 18b는 본 발명의 실시예들에 따른 송신기와 수신기와 관련하여 비대칭 ODT 회로를 개념적으로 설명하는 도면들이다. 도 18a는 송신기와 수신기 사이의 전원 전압(VDD) ODT로 구성된 비대칭 ODT 회로를 보여주고, 도 18b는 접지 전압(VSS) ODT로 구성된 비대칭 ODT 회로를 보여준다. 도 19a는 도 18a의 부호 반전부의 동작을 설명하는 도면이다. 도 19b는 송신기(110b)와 수신기(120b) 사이의 전원 전압(VDD) ODT 타겟에 적용되는 코드워드의 심볼들을 설명하는 도면이다.
도 18a를 참조하면, 송신기(110b)는 도 16a의 송신기(110a)와 비교하여, PAM-4 인코더(112)에 인코딩 회로(900)와 결합하는 제1 부호 반전부(1810)를 더 포함하고, 수신기(120b)는 PAM-4 디코더(122)에 디코딩 회로(1300)와 결합하는 제2 부호 반전부(1820)를 더 포함할 수 있다. 그리고, 수신기(120b)는 수신기(120b)의 동작 성능에 따라, 전원 전압(VDD) 라인과 채널(130) 사이에 연결되는 터미네이션 회로(128b)를 포함할 수 있다. 터미네이션 회로(128b)는 전원 전압(VDD)과 채널(130) 사이에 연결되는 터미네이션 저항(R4)을 포함할 수 있다. 터미네이션 회로(128b)는 인코딩 회로(900)의 MTA 테이블(302)에서 접지 전압(VSS) ODT 타겟으로 제공되는 접지 전압(VSS) 레벨에 상응하는 심볼 레벨 -3이 많이 포함된 코드워드 레벨에 대하여 서로 다른 전압, 즉 전원 전압(VDD)에 연결되는 비대칭 ODT(asymmetric ODT)로 구성될 수 있다.
제1 및 제2 부호 반전부들(1810, 1820)은 모드 레지스터들(도 11의 115, 도 14의 125)에서 제공되는 ODT 제어 신호(MRS_ODT)를 수신할 수 있다. ODT 제어 신호(MRS_ODT)는 송신기(110b)와 수신기(120b) 사이의 ODT 상태가 대칭 ODT 상태에 있는지 아니면 비대칭 ODT 상태에 있는지를 나타내는 신호이다.
장치(100, 도 1)가 파워-업 된 후 초기화 단계에서, 송신기(110b)와 수신기(120b) 사이의 ODT 상태가 체크될 수 있다. 송신기(110b)와 수신기(120b) 사이의 ODT 상태가 동일하게 접지 전압(VSS) ODT 상태, 즉 대칭 ODT 상태로 체크되면, 송신기(110b)의 모드 레지스터(115) 및 수신기(120b)의 모드 레지스터(125) 각각은 제1 로직 레벨, 예컨대 로직 로우 레벨의 ODT 제어 신호(MRS_ODT)를 저장할 수 있다. 제1 로직 레벨의 ODT 제어 신호(MRS_ODT)는 디폴트 ODT 제어 신호로 제공될 수 있다. 송신기(110b)와 수신기(120b) 사이의 ODT 상태가 비대칭 ODT 상태로 체크되면, 모드 레지스터들(115, 125)은 제2 로직 레벨, 예컨대 로직 하이 레벨의 ODT 제어 신호(MRS_ODT)를 저장할 수 있다.
송신기(110b)와 수신기(120b) 사이에 접지 전압(VSS) ODT로 구성된 대칭 ODT 상태인 경우, 제1 부호 반전부(1810)는 제1 로직 레벨의 ODT 제어 신호(MRS_ODT)에 응답하여 인코딩 회로(900)에서 출력되는 코드워드를 출력 버퍼(116)로 전송할 수 있다. 출력 버퍼(116)는 도 17에서 설명된 심볼 레벨 -3, -1, +1 또는 +3에 해당하는 전류 레벨 및 DC 코스트 값을 갖는 코드워드를 채널(130)로 전송할 수 있다.
송신기(110b)와 수신기(120b) 사이에 전원 전압(VDD) ODT로 구성된 비대칭 ODT 상태인 경우, 제1 부호 반전부(1810)는 제2 로직 레벨의 ODT 제어 신호(MRS_ODT)에 응답하여 인코딩 회로(900)에서 출력되는 코드워드의 심볼 비트들 중 MSB 비트를 반전시킬 수 있다. 제1 부호 반전부(1810)는, 도 19a에 도시된 바와 같이, 심볼 레벨 -3의 심볼 비트 00에 대하여 MSB 비트를 반전시켜서 심볼 레벨 +3의 심볼 비트 10으로 변환할 수 있다. 제1 부호 반전부(1810)는 심볼 레벨 -1의 심볼 비트 01에 대하여 MSB 비트를 반전시켜서 심볼 레벨 +1의 심볼 비트 11로 변환할 수 있다. 제1 부호 반전부(1810)는 심볼 레벨 +1의 심볼 비트 11에 대하여 MSB 비트를 반전시켜서 심볼 레벨 -1의 심볼 비트 01로 변환할 수 있다. 제1 부호 반전부(1810)는 심볼 레벨 +3의 심볼 비트 10에 대하여 MSB 비트를 반전시켜서 심볼 레벨 -3의 심볼 비트 00로 변환할 수 있다.
비대칭 ODT 상태일 때, 인코딩 회로(900)에서 출력되는 코드워드의 심볼 레벨 -3, -1, +1, +3 각각은 제1 부호 반전부(1810)에 의해 심볼 레벨의 부호가 반전된 심볼 레벨 +3, +1, -1, -3로 출력될 수 있다. 제1 부호 반전부(1810)에 의해 반전된 심볼 레벨 +3, +1, -1, -3에 따라, 송신기(110b)의 출력 버퍼(116), 채널(130) 및 수신기(120b)의 터미네이션 회로(128b)는 도 19b에 도시된 바와 같이 모델링될 수 있다. 도 19b를 참조하면, 채널(130)의 임피던스 매칭을 위하여, 터미네이션 저항(R4)은 채널(130)의 저항 값 R과 동일하게 저항 값 R로 설정될 수 있다. 출력 버퍼(116)의 풀-업 트랜지스터(PU) 및 풀-다운 트랜지스터(PD) 각각은 코드워드의 심볼 레벨 +3, +1, -1 또는 -3에 따라 풀-업 모델링 저항 값 R1와 풀-다운 모델링 저장 값 R2는 다르게 나타날 수 있다.
예시적으로, 제1 부호 반전부(1810)에 의해 반전된 심볼 레벨 +3과 관련하여, 풀-업 모델링 저항 값 R1은 저항 값 R로 표시되고 풀-다운 모델링 저항 값 R2는 무한대 값으로 표시될 수 있다. 이에 따라, 심볼 레벨 +3은 제로(0) 전류 레벨과 제로(0) DC 코스트 값을 가질 수 있다. 반전된 심볼 레벨 +1과 관련하여, 풀-업 모델링 저항 값 R1은 저항 값 1.5R로 표시되고 풀-다운 모델링 저항 값 R2는 저항 값 3R로 표시됨에 따라, 심볼 레벨 +1은 5VDD/18 전류 레벨과 DC 코스트 값 5를 가질 수 있다. 반전된 심볼 레벨 -1과 관련하여, 풀-업 모델링 저항 값 R1은 저항 값 3R로 표시되고 풀-다운 모델링 저항 값 R2는 저항 값 1.5R로 표시됨에 따라, 심볼 레벨 -1은 8VDD/18 전류 레벨과 DC 코스트 값 8를 가질 수 있다. 반전된 심볼 레벨 -3과 관련하여, 풀-업 모델링 저항 값 R1은 무한대 값으로 표시되고 풀-다운 모델링 저항 값 R2는 저항 값 R로 표시될 수 있다. 이에 따라, 심볼 레벨 -3은 9VDD/18 전류 레벨과 DC 코스트 값 9를 가질 수 있다. 전원 전압(VDD) ODT 상태에서는 코드워드의 심볼 레벨 +3이 많을수록 저전력으로 전송되도록 코딩된 코드워드일 것이다.
도 18a에서, 제2 부호 반전부(1820)는 제1 로직 레벨의 ODT 제어 신호(MRS_ODT)에 응답하여 입력 버퍼(126)를 통해 수신되는 코드워드를 디코딩 회로(1300)로 제공하여 데이터 버스트로 복원되도록 할 수 있다.
제2 부호 반전부(1820)는 제2 로직 레벨의 ODT 제어 신호(MRS_ODT)에 응답하여 입력 버퍼(126)를 통해 수신되는 코드워드의 심볼 비트들 중 MSB 비트를 반전시킬 수 있다. 제2 부호 반전부(1820)는 제1 부호 반전부(1810)에 의해 반전된 MSB 심볼 비트에 대하여 MSB 심볼 비트를 반전시켜서 인코딩 회로(900)에서 출력된 원래의 코드워드로 변환할 수 있다. 제2 부호 반전부(1820)에 의해 원래의 코드워드로 변환된 코드워드는 디코딩 회로(1300)로 제공하여 데이터 버스트로 복원될 수 있다.
예시적으로, 유저 데이터 00000011는 PAM-4 인코더(112)에서 수행되는 도 2의 7-8 비트 인코딩(200)에 의해 첫번째 데이터 비트 0은 DBI 신호 라인으로 전송되어 인코딩되도록 구성되고, 나머지 7 비트들 0000011은 MTA 룩업 테이블(302)을 이용하여 심볼 레벨 -3, -3, -3, +1 을 갖는 코드워드로 구성될 수 있다.
송신기(110b)와 수신기(120b) 사이의 ODT 상태가 동일하게 접지 전압(VSS) ODT 상태, 즉 대칭 ODT 상태인 경우, 심볼 레벨 -3, -3, -3, +1 인 코드워드를 채널(130)로 전송할 때 평균 DC 코스트 값은 (0+0+0+8)/4=2 로 계산될 수 있다. 송신기(110b)의 접지 전압(VSS) ODT 상태와 수신기(120b)의 전원 전압(VDD) ODT 상태가 서로 다른 비대칭 ODT 상태인 경우, 제1 부호 반전부(1810)에 의해 반전된 심볼 레벨 +3, +3, +3, -1인 코드워드를 채널(130)로 전송할 때 평균 DC 코스트 값은 (0+0+0+8)/4=2 로 계산될 수 있다. 즉, 송신기(110b)와 수신기(120b) 사이의 채널(130)로 MTA 룩업 테이블(302)을 이용하여 생성된 코드워드가 전송될 때, 대칭 ODT 상태일 때와 비대칭 ODT 상태일 때의 평균 DC 코스트 값은 동일하게 나타난다.
도 18a, 도 19a 및 도 19b에서 설명된 바와 같이, 송신기(110b)의 PAM-4 인코더(112)에 의해 생성된 접지 전압(VSS) ODT 타겟의 코드워드는 제1 부호 반전 회로(1810)에 의해 채널(130)의 전원 전압(VDD) ODT용 코드워드로 변환 가능되고, 제2 부호 반전 회로(1820)에 의해 원래의 접지 전압(VSS) ODT 타겟의 코드워드로 변환 가능하도록 구성될 수 있다.
도 18b를 참조하면, 송신기(110b) 내 MTA 룩업 테이블(302)은 도 18a와 비교하여, 전원 전압(VDD) ODT 타겟에 적용되는 심볼 레벨 +3이 많이 포함된 코드워드 심볼들로 구성되고, 수신기(120b)의 터미네이션 회로(128b`)는 채널(130)과 접지 전압(VSS) 라인 사이에 연결될 수 있다. 송신기(110b)와 수신기(120b) 사이는 접지 전압(VSS) ODT로 구성된 비대칭 ODT 상태일 수 있다.
제1 부호 반전부(1810)는 제2 로직 레벨의 ODT 제어 신호(MRS_ODT)에 응답하여 인코딩 회로(900)에서 출력되는 코드워드의 심볼 비트들 중 MSB 비트를 반전시킬 수 있다. 이에 따라, MTA 룩업 테이블(302)에서 제공되는 전원 전압(VDD) ODT 타겟의 코드워드는 제1 부호 반전 회로(1810)에 의해 채널(130)의 접지 전압(VSS) ODT용 코드워드로 변환될 수 있다.
제2 부호 반전부(1820)는 제2 로직 레벨의 ODT 제어 신호(MRS_ODT)에 응답하여 입력 버퍼(126)를 통해 수신되는 접지 전압(VSS) ODT용 코드워드의 심볼 비트들 중 MSB 비트를 반전시킬 수 있다. 이에 따라, 수신된 접지 전압(VSS) ODT용 코드워드는 제2 부호 반전 회로(1820)에 의해 원래의 전원 전압(VDD) ODT 타겟의 코드워드로 변환될 수 있다.
도 20은 본 발명의 실시예들에 따른 인코딩 및 디코딩 장치를 포함하는 메모리 시스템의 제1 예의 블록 다이어그램이다.
도 20을 참조하면, 메모리 시스템(1500)은 메모리 콘트롤러(1510)와 메모리 장치(1520)를 포함할 수 있다. 메모리 시스템(1500)은 집적 회로, 전자 기기 또는 시스템, 스마트 폰, 태블릿 PC, 컴퓨터, 서버, 워크 스테이션, 휴대용 통신 단말기, PDA(Personal Digital Assistant), PMP(Portable Multimedia Player), 그리고 다른 적절한 컴퓨터들 등과 같은 컴퓨팅 장치, 가상 머신 또는 그것의 가상 컴퓨팅 장치 등을 지칭할 수 있다. 또는 메모리 시스템(1500)은 그래픽스 카드와 같은 컴퓨팅 시스템에 포함된 구성 요소들 중 일부일 수 있다.
메모리 콘트롤러(1510)는 채널 또는 메모리 버스(1530)을 통하여 메모리 장치(1520)와 통신적으로 연결(communicatively connected)될 수 있다. 도면의 간결성을 위하여, 메모리 콘트롤러(1510)와 메모리 장치(1520) 사이에 하나의 신호 라인을 통하여 클록(CLK), 커맨드/어드레스(CA), 데이터(DQ)가 제공되는 것으로 도시하고 있으나, 실제로는 복수의 신호 라인들 또는 버스를 통해 제공될 수 있다.
클록(CLK) 신호는 메모리 버스(1530)의 클록 신호 라인을 통해서 메모리 콘트롤러(1510)로부터 메모리 장치(1520)로 전송될 수 있다. 커맨드/어드레스(CA) 신호는 메모리 버스(1530)의 커맨드/어드레스 버스를 통해서 메모리 콘트롤러(1510)로부터 메모리 장치(1520)로 전송될 수 있다. 칩 선택(CS) 신호는 메모리 버스(1530)의 칩 선택(CS) 라인을 통해서 메모리 콘트롤러(1510)로부터 메모리 장치(1520)에 전송될 수 있다. 로직 하이로 활성화되는 칩 선택(CS) 신호는 커맨드/어드레스(CA) 버스를 통해서 전송되는 커맨드/어드레스(CA) 신호가 커맨드임을 나타낼 수 있다. 데이터(DQ)는 양방향 신호 라인들로 구성되는 메모리 버스(1530)의 데이터(DQ) 버스를 통해서, 메모리 콘트롤러(1510)로부터 메모리 장치(1520)로 전송되거나 메모리 장치(1520)로부터 메모리 콘트롤러(1510)로 전송될 수 있다.
메모리 콘트롤러(1510)는 메모리 장치(1520)로 데이터(DQ)를 전송하는 데이터 송신기(1512)를 포함하고, 데이터 송신기(1512)는 메모리 장치(1520)로 전송될 데이터 버스트들을 PAM-4 심볼들로 변환하도록 구성된 PAM-4 인코더(112)를 포함할 수 있다. 데이터 송신기(1512)는 데이터 버스로 전송될 데이터 버스트들을 다수의 심볼들로 구성된 코드워드들로 변환하는 PAM-4 인코더(112)를 포함한다. PAM-4 인코더(112)는 심볼들 간에 최대 천이(MT) 이벤트가 발생하지 않는 최대 천이 방지(MTA) 코드워드 맵핑들 및 심볼들의 최소 전력 소비와 관련되는 최소 전류(MDC) 코드워드 맵핑들을 이용하여 데이터 버스트들에 대응하는 코드워드로 인코딩하도록 구성된다. PAM-4 인코더(112)는 코드워드들 사이의 블록 바운다리에서 MT 이벤트가 발생하지 않는 MTA 코드워드 맵핑들을 제공할 수 있다. PAM-4 인코더(112)는 데이터 버스에 연결되는 메모리 콘트롤러(1510)와 메모리 장치(1520) 사이의 온-다이-터미네이션(ODT) 상태가 동일한 대칭 ODT 상태인 경우 제1 코드워드를 데이터 버스로 전송하고, 서로 다른 비대칭 ODT 상태인 경우 제1 코드워드의 심볼 비트들 중 MSB 비트를 반전시키고 반전된 MSB 심볼 비트를 포함하는 제2 코드워드를 데이터 버스로 전송할 수 있다.
메모리 장치(1520)는 메모리 콘트롤러(1510)의 제어에 따라 데이터(DQ)를 기입하거나 데이터를 독출할 수 있다. 메모리 장치(1520)는 메모리 셀 어레이(1522) 및 데이터 입력 버퍼(1524)를 포함할 수 있다.
메모리 셀 어레이(1522)는 복수의 워드라인들과 복수의 비트라인들, 그리고 워드라인들과 비트라인들이 교차하는 지점에 형성되는 복수의 메모리 셀들을 포함할 수 있다. 메모리 셀 어레이(1522)의 메모리 셀은 휘발성 메모리 셀(예컨대, DRAM(Dynamic Random Access Memory) 셀, SRAM(Static RAM) 셀 등), 비휘발성 메모리 셀(예, 플래시 메모리 셀, ReRAM(Resistive RAM) 셀, PRAM(Phase change RAM) 셀, MRAM(Magnetic RAM) 셀), 또는 어떤 다른 유형의 메모리 셀일 수 있다.
메모리 장치(1520)는 데이터(DQ) 버스로 전송된 PAM-4 심볼들을 데이터 입력 버퍼(1524)를 통해 수신 및 디코딩하도록 구성할 수 있다. 데이터 입력 버퍼(1524)는 PAM-4 심볼들을 기입 데이터 버스트들로 복원하도록 구성된 PAM-4 디코더(122)를 포함할 수 있다. 데이터 입력 버퍼(1524)는 데이터 버스를 통해 다수의 심볼들로 구성된 코드워드들을 수신하고, 수신된 코드워드를 데이터 버스트들로 복원하는 PAM-4 디코더(122)를 포함한다. PAM-4 디코더(122)는, 심볼들 간에 최대 천이(MT) 이벤트가 발생하지 않는 최대 천이 방지(MTA) 코드워드 맵핑들 및 심볼들의 최소 전력 소비와 관련되는 최소 전류(MDC) 코드워드 맵핑들을 이용하여 코드워드에 대응하는 데이터 버스트들로 디코딩하도록 구성된다. PAM-4 디코더(122)는 데이터 버스에 연결되는 메모리 콘트롤러(1510)와 메모리 장치(1520) 사이의 ODT 상태가 동일한 대칭 ODT 상태인 경우 제1 코드워드를 수신하고 제1 코드워드를 데이터 버스트들로 복원하고, 서로 다른 비대칭 ODT 상태인 경우 수신된 제1 코드워드의 심볼 비트들 중 MSB비트를 반전시키고 반전된 MSB 심볼 비트를 포함하는 제2 코드워드를 데이터 버스트들로 복원할 수 있다. 데이터 입력 버퍼(1524)는 디코드된 기입 데이터 버스트들을 메모리 셀 어레이(1522)에 기입하기 위해 제공할 수 있다.
도 21은 도 20의 메모리 장치의 일부를 설명하는 블록도이다.
도 21을 참조하면, 메모리 장치(1520)는 메모리 셀 어레이(1522), 로우 디코더(1601), 워드라인 드라이버(1602), 칼럼 디코더(1603), 입출력 게이팅 회로(1604), MRS(1605), 제어 로직 회로(1606), 어드레스 버퍼(1607), 데이터 입력 버퍼(1524), 그리고 데이터 출력 버퍼(1526)를 포함할 수 있다.
메모리 셀 어레이(1522)는 로우들 및 칼럼들로 배열되는 매트릭스 형태로 제공되는 복수의 메모리 셀들을 포함한다. 메모리 셀 어레이(1522)는 메모리 셀들과 연결되는 복수개의 워드라인들(WL)과 복수개의 비트라인들(BL)을 포함한다. 복수의 워드라인들(WL)은 메모리 셀들의 로우들과 연결되고, 복수의 비트라인들(BL)은 메모리 셀들의 칼럼들과 연결될 수 있다.
로우 디코더(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)에 인가될 수 있다.
제어 로직 회로(1606)는 클록(CLK) 신호 및 커맨드(CMD)를 수신하고 메모리 장치(1520)의 동작 타이밍 및/또는 메모리 동작을 제어하는 제어 신호들(CTRLS)을 생성할 수 있다. 제어 로직 회로(1606)는 제어 신호들(CTRLS)을 이용하여 메모리 셀 어레이(1522)로부터 데이터를 독출하고 메모리 셀 어레이(1522)에 데이터를 기입할 수 있다.
MRS(1605)는 메모리 장치(1520)에 대한 동작 조건을 설정하기 위해, 메모리 장치(1520)의 동작을 구성하도록 제어 로직 회로(1606)에 의해 사용되는 정보를 저장할 수 있다. MRS(1605)는 메모리 장치(1520)의 동작 조건을 설정하도록 사용되는 다양한 동작 및 제어 파라미터에 대한 파라미터 코드를 저장하는 레지스터를 포함할 수 있다. 파라미터 코드는 커맨드/어드레스(CA) 버스를 통해 메모리 장치(1520)에 수신될 수 있다. 제어 로직 회로(1606)는 MRS(1605)에 의해 저장된 동작 및 제어 파라미터에 설정된 바와 같이 동작하도록 메모리 장치(1520)의 회로들로 제어 신호들(CTRLS)를 제공할 수 있다. 제어 신호들(CTRLS)은 도 11, 도 14 및 도 18에서 설명된 제1 모드 선택 신호(MRS[1:0]), 제2 모드 선택 신호(MTA_Mode) 및 ODT 제어 신호(MRS_ODT)를 포함할 수 있다.
도 22는 본 발명의 실시예들에 따른 인코딩 및 디코딩 장치를 포함하는 메모리 시스템의 제2 예의 블록 다이어그램이다.
도 22를 참조하면, 메모리 시스템(1700)은, 도 20의 메모리 시스템(1500)과 비교하여, 메모리 콘트롤러(1710)에 PAM-4 디코더(122)를 포함한 데이터 수신기(1714)를 더 포함하고, 메모리 장치(1720)에 PAM-4 인코더(112)를 포함한 데이터 출력 버퍼(1526)를 보여준다는 점에서 차이가 있다.
메모리 장치(1720)는 메모리 셀 어레이(1522)에서 출력된 독출 데이터 버스트들을 메모리 콘트롤러(1710)로 전송할 때 데이터 출력 버퍼(1526)를 통해 PAM-4 심볼들로 인코딩하여 전송하도록 구성할 수 있다. 데이터 출력 버퍼(1526)는 독출 데이터를 PAM-4 심볼들로 변환하도록 구성된 PAM-4 인코더(112)를 포함할 수 있다.
메모리 콘트롤러(1710)는 데이터(DQ) 버스로 전송된 PAM-4 심볼들을 데이터 수신기(1714)를 통해 수신 및 디코딩하도록 구성할 수 있다. 데이터 수신기(1714)는 PAM-4 심볼들을 독출 데이터 버스트들로 복원하도록 구성된 PAM-4 디코더(122)를 포함할 수 있다.
도 23은 본 발명의 실시예들에 따른 인코딩 및 디코딩 장치를 포함하는 시스템(3000)을 나타내는 블록 다이어그램이다.
도 23을 참조하면, 시스템(3000)은 카메라(3100), 디스플레이(3200), 오디오 처리부(3300), 모뎀(3400), DRAM들(3500a, 3500b), 플래시 메모리들(3600a, 3600b), I/O 디바이스들(3700a, 3700b) 및 어플리케이션 프로세서(Application Processor, 3800, 이하 "AP"라고 칭함)를 포함할 수 있다. 시스템(3000)은 랩탑(laptop) 컴퓨터, 휴대용 단말기(mobile phone), 스마트폰(smart phone), 태블릿 PC(tablet personal computer), 웨어러블 기기, 헬스케어 기기, 또는 IOT(Internet Of Things) 기기로 구현될 수 있다. 또한, 시스템(3000)은 서버(Server), 또는 개인용 컴퓨터(Personal Computer)로 구현될 수도 있다.
카메라(3100)는 사용자의 제어에 따라 정지 영상 또는 동영상을 촬영하고, 쵤영한 이미지/영상 데이터를 저장하거나 디스플레이(3200)로 전송할 수 있다. 오디오 처리부(3300)는 플래시 메모리 장치들(3600a, 3600b)나 네트워크의 컨텐츠에 포함된 오디오 데이터를 처리할 수 있다. 모뎀(3400)는 유/무선데이터 송수신을 위하여 신호를 변조하여 송신하고, 수신측에서 원래의 신호로 복구하기 위해 복조할 수 있다. I/O 디바이스들(3700a, 3700b)는 USB(Universal Serial Bus)나 스토리지, 디지털 카메라, SD(Secure Digital) 카드, DVD(Digital Versatile Disc), 네트워크 어댑터(Network adapter), 터치 스크린 등과 같은 디지털 입력 및/또는 출력 기능을 제공하는 기기들을 포함할 수 있다.
AP(3800)는 시스템(3000)의 전반적인 동작을 제어할 수 있다. AP(3800)는 플래시 메모리 장치들(3600a, 3600b)에 저장된 컨텐츠의 일부가 디스플레이(3200)에 표시되도록 디스플레이(3200)를 제어할 수 있다. AP(3800)는 I/O 디바이스들(3700a, 3700b)을 통하여 사용자 입력이 수신되면, 사용자 입력에 대응하는 제어 동작을 수행할 수 있다. AP(3800)는 콘트롤러(3810) 및 인터페이스(3830)를 포함할 수 있고, AI(Artifitial Intelligence) 데이터 연산을 위한 전용 회로인 엑셀레이터(Accelerator) 블록을 포함하거나, AP(3800)와 별개로 엑셀레이터 칩(3820)을 구비할 수 있다. 엑셀레이터 블록 또는 엑셀레이터 칩(3820)에 추가적으로 DRAM(3500b)이 장착될 수 있다. 엑셀레이터는 AP(3800)의 특정 기능을 전문적으로 수행하는 기능 블록으로, 엑셀레이터는 그래픽 데이터 처리를 전문적으로 수행하는 기능 블럭인 GPU, AI 계산과 인퍼런스(Inference)를 전문적으로 수행하기 위한 블럭인 NPU(Neural Processing Unit), 데이터 전송을 전문적으로 하는 블록인 DPU(Data Processing Unit)를 포함할 수 있다
시스템(3000)은 복수의 DRAM들(3500a, 3500b)을 포함할 수 있다. AP(3800)는 JEDEC(Joint Electron Device Engineering Council) 표준 규격에 맞는 커맨드와 모드 레지스터(MRS) 셋팅을 통하여 DRAM들(3500a, 3500b)을 제어하거나, 저전압/고속/신뢰성 등 업체 고유 기능 및 CRC(Cyclic Redundancy Check)/ECC(Error Correction Code) 기능을 사용하기 위하여 DRAM 인터페이스 규약을 설정하여 통신할 수 있다. 예를 들어 AP(3800)는 LPDDR4, LPDDR5 등의 JEDEC 표준 규격에 맞는 인터페이스로 DRAM(3500a)과 통신할 수 있으며, 엑셀레이터 블록 또는 엑셀레이터 칩(3820)는 DRAM(3500a)보다 높은 대역폭을 가지는 엑셀레이터용 DRAM(3500b)을 제어하기 위하여 새로운 DRAM 인터페이스 규약을 설정하여 통신할 수 있다.
도 23에서는 DRAM들(3500a, 3500b)만을 도시하였으나, 이에 한정되지 않고 AP(3800)이나 엑셀레이터 칩(3820) 대역폭과 반응 속도, 전압 조건들을 만족한다면 PRAM이나 SRAM, MRAM, RRAM, FRAM 또는 Hybrid RAM의 메모리 등 어떤 메모리라도 사용 가능하다. DRAM들(3500a, 3500b)은 I/O 디바이스(3700a, 3700b)나 플래시 메모리들(3600a, 3600b) 보다 상대적으로 작은 레이턴시(latency)와 대역폭(bandwidth)를 가지고 있다. DRAM들(3500a, 3500b)은 시스템(3000)의 파워 온 시점에 초기화되고, 운영 체제와 어플리케이션 데이터가 로딩되어 운영 체제와 어플리케이션 데이터의 임시 저장 장소로 사용되거나 각종 소프트웨어 코드의 실행 공간으로 사용될 수 있다.
DRAM들(3500a, 3500b) 내에서는 더하기/빼기/곱하기/나누기 사칙 연산과 벡터 연산, 어드레스 연산, 또는 FFT(Fast Fourier Transform) 연산이 수행될 수 있다. 또한, DRAM들(3500a, 3500b) 내에서는 인퍼런스(inference)에 사용되는 수행을 위한 함수 기능(function)이 수행될 수 있다. 여기서, 인퍼런스는 인공 신경망(artificial neural network)을 이용한 딥러닝 알고리즘에서 수행될 수 있다. 딥러닝 알고리즘은 다양한 데이터를 통해 모델을 학습하는 트레이닝(training) 단계와 학습된 모델로 데이터를 인식하는 인퍼런스 단계를 포함할 수 있다. 실시예로서, 사용자가 카메라(3100)를 통해 촬영한 이미지는 신호 처리되어 DRAM(3500b) 내에 저장이 되며, 엑셀레이터 블록 또는 엑셀레이터 칩(3820)은 DRAM(3500b)에 저장된 데이터와 인퍼런스에 사용되는 함수를 이용하여 데이터를 인식하는 AI 데이터 연산을 수행할 수 있다.
시스템(3000)은 DRAM들(3500a, 3500b) 보다 큰 용량을 가진 복수의 스토리지 또는 복수의 플래시 메모리들(3600a, 3600b)을 포함할 수 있다. 엑셀레이터 블록 또는 엑셀레이터 칩(3820)은 플래시 메모리 장치(3600a, 3600b)를 이용하여 트레이닝(training) 단계와 AI 데이터 연산을 수행할 수 있다. 일 실시예로, 플래시 메모리들(3600a, 3600b)은 메모리 콘트롤러(3610) 내에 구비된 연산 장치를 사용하여 AP(3800) 및/내지 엑셀레이터 칩(3820)이 수행하는 트레이닝(training) 단계과 인퍼런스 AI 데이터 연산을 보다 효율적으로 수행할 수 있다. 플래시 메모리들(3600a, 3600b)은 카메라(3100)를 통하여 찍은 사진을 저장하거나, 데이터 네트워크로 전송 받은 데이터를 저장할 수 있다. 예를 들어, 증강 현실(Augmented Reality)/가상 현실(Virtual Reality), HD(High Definition) 또는 UHD(Ultra High Definition) 컨텐츠를 저장할 수 있다.
시스템(3000)은 구성 요소들 간의 고속 동작을 위하여 신호를 전송하거나 수신할 수 있다. 시스템(3000) 내 카메라(3100), 디스플레이(3200), 오디오 처리부(3300), 모뎀(3400), DRAM들(3500a, 3500b), 플래시 메모리들(3600a, 3600b), I/O 디바이스들(3700a, 3700b) 및/또는 AP(3800)는, 도 1 내지 도 19을 참조하여 설명된 송신기(110) 및 수신기(120)를 포함할 수 있다. 송신기(110)는 데이터 버스로 전송될 데이터 버스트들을 다수의 심볼들로 구성된 코드워드들로 변환하는 인코더를 포함한다. 인코더는 심볼들 간에 최대 천이(MT) 이벤트가 발생하지 않는 최대 천이 방지(MTA) 코드워드 맵핑들 및 심볼들의 최소 전력 소비와 관련되는 최소 전류(MDC) 코드워드 맵핑들을 이용하여 데이터 버스트들에 대응하는 코드워드로 인코딩하도록 구성된다. 인코더는 코드워드들 사이의 블록 바운다리에서 MT 이벤트가 발생하지 않는 MTA 코드워드 맵핑들을 제공할 수 있다. 인코더는 데이터 버스에 연결되는 송신기(110) 및 수신기(120)의 온-다이-터미네이션(ODT) 상태가 동일한 대칭 ODT 상태인 경우 제1 코드워드를 데이터 버스로 전송하고, 서로 다른 비대칭 ODT 상태인 경우 제1 코드워드의 심볼 비트들 중 MSB 비트를 반전시키고 반전된 MSB 심볼 비트를 포함하는 제2 코드워드를 데이터 버스로 전송할 수 있다.
수신기(120)는 데이터 버스를 통해 다수의 심볼들로 구성된 코드워드들을 수신하고, 수신된 코드워드를 데이터 버스트들로 복원하는 디코더를 포함한다. 디코더는, 심볼들 간에 최대 천이(MT) 이벤트가 발생하지 않는 최대 천이 방지(MTA) 코드워드 맵핑들 및 심볼들의 최소 전력 소비와 관련되는 최소 전류(MDC) 코드워드 맵핑들을 이용하여 코드워드에 대응하는 데이터 버스트들로 디코딩하도록 구성된다. 디코더는 데이터 버스에 연결되는 송신기(110) 및 수신기(1120)의 ODT 상태가 동일한 대칭 ODT 상태인 경우 제1 코드워드를 수신하고 제1 코드워드를 데이터 버스트들로 복원하고, 서로 다른 비대칭 ODT 상태인 경우 수신된 제1 코드워드의 심볼 비트들 중 MSB비트를 반전시키고 반전된 MSB 심볼 비트를 포함하는 제2 코드워드를 데이터 버스트들로 복원할 수 있다.
본 발명은 도면에 도시된 제한된 수의 실시예들과 관련하여 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변경들 및 변형들, 그리고 균등한 다른 실시예들이 가능하다는 점을 인식할 것이다. 따라서, 첨부된 청구항들은 본 발명의 진정한 사상 및 범위 내에 속하는 바와 같은 모든 그러한 변경들 및 변형들을 커버하는 것을 의도한다.

Claims (20)

  1. 장치로서,
    데이터 버스에 연결되는 송신기를 포함하고, 상기 송신기는 상기 데이터 버스로 전송될 데이터 버스트들을 다수의 심볼들로 구성된 코드워드들로 변환하는 인코더를 포함하고,
    상기 인코더는,
    상기 심볼들 간에 최대 천이(MT) 이벤트가 발생하지 않는 최대 천이 방지(MTA) 코드워드 맵핑들 및 상기 심볼들의 최소 전력 소비와 관련되는 최소 전류(MDC) 코드워드 맵핑들을 이용하여, 상기 데이터 버스트들에 대응하는 코드워드로 인코딩하도록 구성되는 장치.
  2. 제1항에 있어서,
    상기 인코더는, 상기 코드워드들 사이의 블록 바운다리에서 상기 MT 이벤트가 발생하지 않는 상기 MTA 코드워드 맵핑들을 제공하는 장치.
  3. 제1항에 있어서,
    상기 인코더는, 상기 코드워드들 사이의 블록 바운다리에서 이전 코드워드의 마지막 심볼과 현재 코드워드의 첫번째 심볼 사이에 상기 MT 이벤트가 발생할 때, 상기 현재 코드워드를 반전시키고, 상기 반전된 현재 코드워드를 상기 데이터 버스로 전송하는 장치.
  4. 제1항에 있어서,
    상기 인코더는, 상기 코드워드의 심볼 비트들 중 LSB(Least Significant Bit) 값이 소정의 값일 때 상기 코드워드를 반전시키고, 상기 반전된 현재 코드워드를 상기 데이터 버스로 전송하는 장치.
  5. 제1항에 있어서,
    상기 인코더는, 상기 데이터 버스에 연결되는 수신기의 온-다이-터미네이션(ODT) 상태가 상기 송신기의 ODT 상태와 동일한 대칭 ODT 상태인 경우, 제1 코드워드를 상기 데이터 버스로 전송하는 장치.
  6. 제5항에 있어서,
    상기 인코더는, 상기 수신기의 온-다이-터미네이션(ODT) 상태가 상기 송신기의 ODT 상태와 서로 다른 비대칭 ODT 상태인 경우, 상기 제1 코드워드의 심볼 비트들 중 MSB(Most Significant Bit) 비트를 반전시키고, 상기 반전된 MSB 심볼 비트를 포함하는 제2 코드워드를 상기 데이터 버스로 전송하는 장치.
  7. 장치로서,
    데이터 버스에 연결되는 송신기를 포함하고, 상기 송신기는 상기 데이터 버스로 전송될 데이터 버스트들을 다수의 심볼들로 구성된 코드워드들로 변환하는 인코더를 포함하고,
    상기 인코더는,
    상기 데이터 버스트들과 상기 코드워드들 사이의 상관 관계를 나타내는 로직 회로, 상기 로직 회로는 상기 인코더의 동작 요건들과 관련되는 코드워드 맵핑들로 구성되고, 상기 인코더의 동작 요건들은 상기 심볼들 간의 최대 천이 방지(MTA) 요건 및 상기 심볼들의 최소 전력 소비와 관련된 최소 전류(MDC) 요건을 포함하고; 및
    상기 로직 회로를 사용하여 상기 데이터 버스트들에 대응하는 상기 코드워드를 상기 데이터 버스로 제공하도록 구성되는 인코딩 회로를 포함하는 장치.
  8. 제7항에 있어서,
    상기 인코더는 상기 데이터 버스트들의 16-비트들을 2개의 1/2 데이터 버스트들로 나누고, 상기 1/2 데이터 버스트들의 8-비트들 각각에서 1-비트 값을 데이버 버스 반전(DBI) 신호 라인으로 보내어 상기 1- 비트 값의 쌍을 상기 DBI 신호 라인의 심볼로 인코딩하고, 상기 1/2 데이터 버스트들 각각의 나머지 7-비트들에 대하여 7:8 비트 인코딩을 수행하고, 상기 7:8 비트 인코딩에 따라 적어도 4개의 레벨들을 갖는 심볼 4개로 구성된 상기 코드워드들을 생성하고, 상기 1/2 데이터 버스트들에 대한 상기 코드워드들 사이에 블록 바운다리를 설정하도록 구성되는 상기 룩업 테이블을 제공하는 장치.
  9. 제8항에 있어서, 상기 로직 회로는,
    상기 MTA 요건을 지원하는 제1 룩업 테이블;
    상기 MDC 요건을 지원하는 제2 룩업 테이블; 및
    상기 MTA 요건과 상기 MDC 요건 둘 다를 지원하는 제3 룩업 테이블을 포함하고,
    상기 코드워드의 심볼들 각각은 레벨들 -3, -1, +1 또는 +3을 갖고, 상기 레벨 +3은 가장 높은 전류 레벨을 갖고 상기 레벨 -3은 가장 낮은 전류 레벨을 갖는 장치.
  10. 제9항에 있어서,
    상기 제3 룩업 테이블은 각 코드워드의 상기 심볼들에 상기 레벨 +3이 없는 상기 레벨 -3, -1 또는 +1의 심볼 인코딩에 따른 상기 코드워드 맵핑들로 구성되고, 상기 각 코드워드의 상기 심볼들 간에는 상기 레벨 -3에서 상기 레벨 +3으로 또는 상기 레벨 +3에서 상기 레벨 -3으로의 최대 천이(MT) 이벤트가 발생하지 않는 장치.
  11. 제10항에 있어서,
    상기 제1 룩업 테이블은 상기 각 코드워드의 상기 심볼들 간에 상기 MT 이벤트가 발생하지 않고 상기 블록 바운다리에서도 상기 MT 이벤트가 발생하지 않는 상기 코드워드 맵핑들로 구성되는 장치.
  12. 제10항에 있어서,
    상기 제2 룩업 테이블은 상기 각 코드워드의 상기 심볼들 간에 상기 MT 이벤트를 최대 2회 허용하여 상기 심볼들 간 상기 MT 이벤트가 2회 또는 1회 존재하는 상기 코드워드 맵핑들로 구성되는 장치.
  13. 제10항에 있어서,
    상기 로직 회로는 상기 MTA 요건 및 상기 MDC 요건을 부분적으로 지원하는 제4 룩업 테이블을 더 포함하는 장치.
  14. 제13항에 있어서,
    상기 제4 룩업 테이불은 상기 각 코드워드의 상기 심볼들 간에 상기 MT 이벤트가 발생하지 않고 상기 블록 바운다리에서 상기 MT 이벤트를 허용하는 상기 코드워드 맵핑들로 구성되는 장치.
  15. 제13항에 있어서,
    상기 제4 룩업 테이블은 상기 각 코드워드의 상기 심볼들 간에 상기 MT 이벤트를 최대 1회 허용하여 상기 심볼들 간 상기 MT 이벤트가 1회 존재하거나 없는 상기 코드워드 맵핑들로 구성되는 장치.
  16. 제8항에 있어서,
    상기 인코딩 회로는 상기 블록 바운더리에서 이전 코드워드의 마지막 심볼과 현재 코드워드의 첫번째 심볼 사이에 상기 MT 이벤트가 발생할 때, 상기 현재 코드워드를 반전시키고, 상기 반전된 현재 코드워드를 상기 데이터 버스로 전송하는 장치.
  17. 제7항에 있어서, 상기 장치는,
    상기 데이터 버스에 연결되는 수신기의 온-다이-터미네이션(ODT) 상태가 상기 송신기의 ODT 상태와 동일한 대칭 ODT 상태인 경우, 제1 코드워드를 상기 데이터 버스로 전송하는 출력 버퍼를 더 포함하는 장치.
  18. 제17항에 있어서,
    상기 인코더는, 상기 수신기의 온-다이-터미네이션(ODT) 상태가 상기 송신기의 ODT 상태와 서로 다른 비대칭 ODT 상태인 경우, 상기 제1 코드워드의 심볼 비트들 중 MSB(Most Significant Bit) 비트를 반전시키고, 상기 반전된 MSB 심볼 비트를 포함하는 제2 코드워드를 생성하고,
    상기 출력 버퍼는 상기 제2 코드워드를 상기 데이터 버스로 전송하는 장치.
  19. 제7항에 있어서,
    상기 장치는 상기 데이터 라인에 연결되는 메모리 장치에 전송될 기입 데이터를 상기 코드워드로 전송하는 메모리 콘트롤러인 장치.
  20. 제7항에 있어서,
    상기 장치는 상기 데이터 라인에 연결된 메모리 콘트롤러로 전송될 독출 데이터를 상기 코드워드로 전송하는 메모리 장치인 장치.
KR1020210174016A 2021-03-10 2021-12-07 멀티 모드 코딩을 구현하는 인코딩 및 디코딩 장치 및 방법 KR20220127129A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US17/689,462 US11824563B2 (en) 2021-03-10 2022-03-08 Encoding and decoding apparatuses and methods for implementing multi-mode coding
EP22160754.2A EP4057516B1 (en) 2021-03-10 2022-03-08 Encoding apparatuses for implementing multi-mode coding
TW111108501A TWI814271B (zh) 2021-03-10 2022-03-09 編碼及解碼設備
CN202210240107.8A CN115086120A (zh) 2021-03-10 2022-03-10 编码和解码设备和实施多模编码的方法
US18/480,261 US20240030935A1 (en) 2021-03-10 2023-10-03 Encoding and decoding apparatuses and methods for implementing multi-mode coding

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20210031487 2021-03-10
KR1020210031487 2021-03-10
KR1020210059510 2021-05-07
KR20210059510 2021-05-07

Publications (1)

Publication Number Publication Date
KR20220127129A true KR20220127129A (ko) 2022-09-19

Family

ID=83460856

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210174016A KR20220127129A (ko) 2021-03-10 2021-12-07 멀티 모드 코딩을 구현하는 인코딩 및 디코딩 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20220127129A (ko)

Similar Documents

Publication Publication Date Title
US11159153B2 (en) Data bus inversion (DBI) on pulse amplitude modulation (PAM) and reducing coupling and power noise on PAM-4 I/O
US11495271B2 (en) Receiver receiving multi-level signal, memory device including the same and method of receiving data using ihe same
US11501805B2 (en) Receivers for performing reference voltage training and memory systems including the same
US10491435B2 (en) Unrelaxed 433 encoding to reduce coupling and power noise on PAM-4 data buses
US10657094B2 (en) Relaxed 433 encoding to reduce coupling and power noise on PAM-4 data buses
US11587609B2 (en) Multi-level signal receivers and memory systems including the same
US20240030935A1 (en) Encoding and decoding apparatuses and methods for implementing multi-mode coding
EP4057515B1 (en) Devices for encoding
US11651799B2 (en) Method of generating a multi-level signal using a selective level change, a method of transmitting data using the same, and a transmitter and memory system performing the same
US20220059156A1 (en) Method of generating a multi-level signal using selective equalization, method of transmitting data using the same, and transmitter and memory system performing the same
US11594267B2 (en) Memory device for receiving one clock signal as a multi-level signal and restoring original data encoded into the clock signal and method of operating the same
KR20220127129A (ko) 멀티 모드 코딩을 구현하는 인코딩 및 디코딩 장치 및 방법
US11669448B2 (en) Transmitters for generating multi-level signals and memory system including the same
KR20220127113A (ko) 최소 오버헤드를 갖는 최대 천이 방지 코딩을 구현하는 인코딩 및 디코딩 장치 및 방법
US20240073081A1 (en) Transmitting devices that provide tranmission signals having enlarged data eyes
US11942968B2 (en) Transmitter and receiver for 3-level pulse amplitude modulation signaling and system including the same
US20230116188A1 (en) Receiver with pipeline structure for receiving multi-level signal and memory device including the same
US11822492B2 (en) Signal encoding method and a semiconductor device to generate an optimal transition code in a multi-level signaling system
KR20240044269A (ko) 반도체 장치
CN117639804A (zh) 提供具有扩大的数据眼的传输信号的发送器和发送装置