KR20060129398A - 로컬 패리티를 갖는 직류 평형된 6b/8b 송신 코드 - Google Patents

로컬 패리티를 갖는 직류 평형된 6b/8b 송신 코드 Download PDF

Info

Publication number
KR20060129398A
KR20060129398A KR1020067016736A KR20067016736A KR20060129398A KR 20060129398 A KR20060129398 A KR 20060129398A KR 1020067016736 A KR1020067016736 A KR 1020067016736A KR 20067016736 A KR20067016736 A KR 20067016736A KR 20060129398 A KR20060129398 A KR 20060129398A
Authority
KR
South Korea
Prior art keywords
vector
coded
vectors
bit
given
Prior art date
Application number
KR1020067016736A
Other languages
English (en)
Inventor
알버트 엑스 비드머
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20060129398A publication Critical patent/KR20060129398A/ko

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/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
    • H03M5/145Conversion to or from block codes or representations thereof
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M5/00Conversion of the form of the representation of individual digits
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/38Synchronous or start-stop systems, e.g. for Baudot code
    • H04L25/40Transmitting circuits; Receiving circuits
    • H04L25/49Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems
    • H04L25/4906Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems using binary codes
    • H04L25/4908Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems using binary codes using mBnB codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Dc Digital Transmission (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

6 비트의 데이터 및 4개의 제어 벡터를 8 비트 포맷으로 패킹하는 송신 코드가 제공된다. 하나 이상의 6-비트 소스 벡터를 포함하는 입력 데이터 스트림으로부터 직류(DC)-평형된 6B/8B 송신 코드가 생성된다. 주어진 코딩된 벡터는 8개 이진 숫자 코딩된 벡터 세트에 따라 생성된다. 주어진 코딩된 벡터는 8개의 이진 숫자를 가지며 주어진 코딩된 벡터는 주어진 6-비트 소스 벡터에 대응한다. 8개 이진 숫자 코딩된 벡터 세트 내의 각각의 코딩된 벡터가 평형된다. 주어진 코딩된 벡터가 출력된다.
통신 시스템, 송신 코드

Description

로컬 패리티를 갖는 직류 평형된 6B/8B 송신 코드{DC-BALANCED 6B/8B TRANSMISSION CODE WITH LOCAL PARITY}
본 발명은 통신 시스템에 관한 것으로서, 보다 상세하게는 통신 시스템에서의 송신 코드에 관한 것이다.
송신 코드의 목적은 클로킹(clocking)이 즉시 복원될 수 있고 교류(AC) 커플링이 가능하도록 직렬 데이터 스트림의 주파수 스펙트럼을 변환하는 데 있다. 일반적으로, 직류(DC)-평형된 코드는 AC 커플링을 제공하는 데 사용될 수 있다. 송신 코드는 또한 특정의 채널 요건에 보다 가깝게 신호 스펙트럼을 조정하기 위해 종종 신호 파형 정형(signal waveform shaping)과 함께 사용된다.
주파수 스펙트럼 수정을 제공하기 위해, 송신 코드는 데이터 벡터를 코딩된 벡터로 변환한다. 일반적인 송신 코드는 또한 문자 동기화, 프레임 구분자(frame delimiter), 및 종료(abort), 리셋(reset), 아이들(idle), 진단 또는 기타의 기능 등의 기능을 위한 특수한 "제어" 문자를 데이터 벡터 세트 외부에 제공한다. 코딩 동안에, 들어오는(incoming) 데이터 또는 제어 벡터는 송신 코드의 인코딩 규칙에 따라 코딩된 벡터로 변환된다. 디코딩 동안에, 들어오는 코딩된 벡터는 송신 코드의 디코딩 규칙에 따라 데이터 또는 제어 벡터로 다시 변환된다.
송신 코드는 일반적으로 어느 코딩된 벡터 또는 코딩된 벡터의 어느 비트가 에러를 갖는지를 판정하기 위해 패리티 또는 에러 정정 코드 등의 다른 기술과 결합된다.
송신 코드가 유익하기는 하지만, 여전히 개선된 송신 코드가 요구된다.
본 발명은 로컬 패리티(local parity)를 갖는 직류(DC)-평형된 6B/8B 송신 코드를 제공한다.
예시적인 실시예에서, DC-평형된 6B/8B 송신 코드는 하나 이상의 6-비트 소스 벡터를 포함하는 입력 데이터 스트림으로부터 생성된다. 주어진 코딩된 벡터는 8개 이진 숫자 코딩된 벡터 세트에 따라 생성된다. 주어진 코딩된 벡터는 8개의 이진 숫자를 가지며, 주어진 코딩된 벡터는 주어진 6-비트 소스 벡터에 대응한다. 8개 이진 숫자 코딩된 벡터 세트 내의 각각의 코딩된 벡터는 평형되어 있다. 주어진 코딩된 벡터가 출력된다.
이하의 상세한 설명 및 도면을 참조하면 본 발명은 물론 본 발명의 추가의 특징 및 이점에 대한 보다 완전한 이해가 달성될 것이다.
도 1은 제어 벡터를 생성하는 데 사용되는 제어 입력의 값을 무시한, 본 발명의 64개의 소스 벡터의 트렐리스 다이어그램을 나타낸 도면이다.
도 2는 4개의 제어 벡터를 포함하는, 68개의 코딩된 벡터의 트렐리스 다이어그램을 나타낸 도면이다.
도 3 내지 도 6은 도 2의 코딩된 벡터가 분할되어 들어가는 코딩된 벡터 세트를 나타낸 도면이다.
도 7은 코딩 동안에 6개 소스 비트 중 어느 것에서도 변경이 없는 48개의 코딩된 벡터에 대한 예시적인 코딩 할당을 나타낸 테이블을 나타낸 도면이다.
도 8은 디코딩 동안에 1개, 2개, 또는 3개의 소스 비트에 변경이 있는 20개의 코딩된 벡터에 대한 예시적인 코딩 할당을 나타낸 테이블을 나타낸 도면이다.
도 9는 본 발명의 6B/8B 송신 코드에 대한 예시적인 코딩 할당을 나타낸 테이블을 나타낸 도면이다.
도 10a 내지 도 10h는 각각 미코딩된 벡터의 6개 비트를 8개의 비트 a 내지 h를 갖는 코딩된 벡터로 인코딩하는 데 사용되는 테이블을 나타낸 도면이다.
도 11a는 6B/8B 인코더의 블록도이다.
도 11b는 도 11a의 6B/8B 인코더의 예시적인 회로도이다.
도 12a 내지 도 12g는 각각 8 비트 코딩된 벡터를 비트 A 내지 F 및 제어 비트 K를 갖는 미코딩된 벡터로 디코딩하는 데 사용되는 테이블을 나타낸 도면이다.
도 13a는 6B/8B 디코더의 블록도이다.
도 13b는 도 13a의 6B/8B 디코더의 예시적인 회로도이다.
본 발명은 6B/8B 송신 코드를 사용하여 인코딩 및 디코딩하는 방법 및 장치를 제공한다. 이하에서 보다 상세히 기술하는 바와 같이, 본 발명의 6B/8B 송신 코드는 4의 리딩 또는 트레일링 런(leading or trailing run of four)을 갖지 않는 68개의 평형된 코딩된 벡터를 제공한다. 8-비트 벡터 내에 같은 수의 에러있는 1 및 에러있는 0를 갖지 않는 에러 패턴은 어느 것이라도 유효하지 않은 벡터를 발생한다. 따라서, 6B/8B 송신 코드는 로컬 패리티(local parity)를 갖는 것으로 간주될 수 있는데, 그 이유는 단일 비트 에러 또는 홀수 개의 비트 에러가 코드에 의해 검출된 에러의 서브셋이기 때문이다. 단일 비트 에러 또는 홀수 개의 비트 에러를 갖는 벡터를 검출할 수 있는 것은 통상적으로 패리티 비트를 벡터에 부가함으로써 수행되는 기능이다. 달리 말하면, 이하에 기술되는 6B/8B 송신 코드 등의 로컬 패리티를 갖는 코드에서, 각각의 6-비트 미코딩된 벡터는 그에 대응하는 고유의 코딩된 8-비트 코딩된 벡터를 갖는다. 코딩된 벡터는 코딩된 벡터 내에 불평형된 에러 패턴이 있는 경우, 유효한 코딩된 벡터가 유효하지 않은 코딩된 벡터로 변환되도록 설계된다. 본 개시 내용에서, 용어 "코딩된" 및 "인코딩된"은 상호교환가능하게 사용될 것이다.
게다가, 코딩된 벡터 내의 어떤 에러들이 판정될 수 있기 때문에, 코딩된 벡터 내의 어느 비트 또는 비트들이 에러를 갖는지를 판정하는 데 다른 비교적 간단한 기술들이 사용될 수 있다. 예로서, 한 블록의 코딩된 벡터에 걸쳐 계산된 패리티 벡터가 에러를 정정하는 데 사용될 수 있다. 에러를 정정하는 데 패리티 벡터를 사용하는 예들은 발명의 명칭이 "송신 코드 위반 및 패리티에 기초한 에러 정정 장치 및 방법(Apparatus and Method for Error Correction Based on Transmission Code Violations and Parity)"인 A. X. Widmer의 미국 특허 제5,740,186호(1998년), 및 2002년 12월 19일자로 출원된 발명의 명칭이 "버스 구조에 대한 낮은 대기시 간을 갖는 에러 정정(Error Correction with Low Latency for Bus Structures)"인 A. X. Widmer의 미국 특허 출원 제10/323,502호에 개시되어 있으며, 이들은 여기에 인용함으로써 그 전체 내용이 본 명세서에 포함된다.
참조의 편의를 위해, 본 개시 내용은 이하의 섹션들, 즉 서론, 6B/8B 송신 코드에 대한 전반적인 설명, 소스 벡터 및 코딩된 벡터, 인코딩된 8B 벡터의 발생, 6B/8B 인코더의 회로 구현, 디코딩된 6B 벡터의 발생, 유효성 검사, 유효성 검사를 포함하는 6B/8B 디코더의 회로 구현, 및 구현 요약으로 나누어져 있다.
A. 서론
디지털 시대의 시작 이래로, 단일의 에러로 영향을 받은 바이트가 다른 일련의 패리티 비트에 의해 식별되고 아마도 정정될 수 있도록 패리티 비트를 바이트 등의 한 그룹의 비트에 첨부하는 것은 통상적인 일이 되었다. 신뢰성있는 직렬 송신의 경우, 직렬 비트 스트림의 런 길이(run length) 및 대역폭 특성을 제어하기 위해 종종 리던던시(redundancy)가 추가된다. 런 길이는 연속하여 있는(in a row) 1 또는 0의 개수이며, 3의 "리딩 런(leading run)"은 미코딩된 또는 코딩된 벡터의 처음 3 비트에 있는 3개의 1 또는 3개의 0을 말한다. 송신 코드가 통상적으로 일련의 인코딩된 벡터에서 많은 유형의 에러를 검출할 수 있는 반면, 이 송신 코드가 항상 정확한 에러 위치를 가리키거나 특정의 잘못된 벡터를 식별할 수 있는 것은 아닌 것이 보통이다. 그 대신에, 그렇게 하기 위해서는 일반적으로 추가의 리던던시가 요구된다. 이 방법의 예가 미국 특허 출원 제5,740,186호 및 미국 특허 출원 제10/323,502이며, 이들은 여기에 인용함으로써 그 전체 내용이 본 명세서에 포함 된다.
발명의 명칭이 "로컬 패리티를 갖는 송신 코드(Transmission Code having Local Parity)"인 A. X. Widmer의 미국 특허 제5,699,062호(1997)(이는 여기에 인용함으로써 그 전체 내용이 본 명세서에 포함됨)에서 행해진 것처럼, 패리티 및 송신 측면이 단일의 해결책으로 해결되는 경우 전체적인 코딩 효율성은 상승될 수 있다. 광폭의 컴퓨터 버스에서 송신 코드의 새로운 응용을 위해, 미국 특허 제5,699,062호에 기술된 것 등의 8-비트 바이트 포맷과의 호환성은 덜 중요하다. 몇 비트의 나머지는 1B/2B, 3B/4B, 또는 5B/6B 등의 호환되는 송신 코드에 의해 즉시 처리될 수 있다. 버스 폭(n)이 n x 24 등의 6 및 8의 배수인 다른 상황들에서, 변하는 것은 단지 코딩 회로 및 아마도 송신로(transmission lane)의 수이다.
새로운 해결 방안은 본 명세서에서 제시되는 6B/8B 코드이다. 6B/8B 송신 코드는 극히 높은 동작 레이트(operating rate)에 적합한 아주 간단한 회로로 구현된다. 짧은 회로 지연은 낮은 대기시간(low latency) 요건과 호환된다. 또한, 직렬 송신 레이트와 병렬 전기 인터페이스 클록의 비는 상기 인용 문헌 중 임의의 것에 기초한 해결 방안의 경우 양호하게는 2의 멱승(power of 2) 대 3 또는 5의 배수이다. 이 간단한 회로는 또한 중요한 영역에서의 전력 소모를 억제하는 데 도움이 된다.
이 새로운 6B/8B 송신 코드가 주로 잘 설계된 광 링크(optical link) 등의 통계적으로 독립적인 단일의 에러를 갖는 응용을 목표로 하고 있지만, 이 코드는 또한 로컬 패리티 특징이 하위 역할을 갖는 전방 에러 정정(forward error correction)을 갖지 않는 응용에 대해서도 이점을 가질 수 있다. 통계적으로 독립적인 단일 에러에 있어서, 홀수 개의 에러를 갖는 각각의 코딩된 벡터는 쉽게 판정되고 재송신될 수 있다.
게다가, 6B/8B 코드는 몇가지 대안들 중에서 또하나의 설계 주안점을 제공한다. 예를 들어, 72개 데이터 라인을 갖는 전기 버스는 9개의 8B/10B 코딩된 라인을 거쳐 송신될 수 있다. 전기 라인의 거리 및 보 레이트(baud rate)가 공격적인 경우, 다수의 에러를 발생하는 경향을 갖는 결정 피드백 등화기(decision feedback equalizer)가 필요할 수 있다. 이 문제를 극복하기 위해, 에러 정정 해밍 코드(error correction Hamming code)를 전달하는 5개의 라인이 추가된다. 버스 레이트의 10배로 동작하는 14개의 고속 라인을 거쳐 해밍 정정을 갖는 단일의 72-비트 워드를 전송하는 것은 14 x 10 = 140 비트를 필요로 한다. 버스 레이트의 8배로 동작하는 12 + 5 = 17개의 고속 라인을 거쳐 6B/8B 코드를 사용하는 것은 단지 17 x 8 = 136 비트만을 필요로 하며, 이는 6B/8B 코드의 오버헤드가 더 큰 것을 고려하면 놀랄만한 것이다. 이러한 절감은 보다 광범위한 정정 개체(correction entity)로 인해 에러 정정을 위한 오버헤드가 더 적은 것으로부터 얻어진다. 직렬 송신 레이트를 버스 레이트의 10배보다 낮은 8배로 낮추기 위해 더 많은 수의 직렬 라인(serial line)이 사용될 수 있다. 다른 대안으로서, 버스 레이트 및 처리 용량(throughput)은, 양쪽 경우에서 각각의 버스-레이트 클럭 사이클로 전체 72-비트 워드가 전달되는 것으로 가정하면, 25 퍼센트 정도 증가될 수 있다. 비교를 위해, 버스 레이트의 8배로 동작하는 단지 16개의 라인을 통해 해밍 정정을 갖는 77 비트 의 워드를 송신할 수 있는 더 복잡한 7B/8B 코드를 사용하여 유사한 성능이 얻어질 수 있다. 다른 예로서, 공지된 5B/6B 코드는 버스 레이트의 단지 6배인 직렬 레이트(serial rate)로 20개 라인을 통해 해밍 정정을 갖는 75-비트 워드를 처리할 수 있다.
B. 6B/8B 송신 코드에 대한 전반적인 설명
예시적인 실시예에서, 인코딩 장치로의 입력은 7개의 라인 및 클럭을 포함한다. 제어 라인인 제7 라인이 어써트(assert)되지 않은 경우, 6개의 제한이 없는 라인(unrestricted line)은 입력 데이터 스트림의 일부로서의 64개의 데이터 벡터를 나타낸다. 제어 라인이 4개의 지정된 데이터 벡터 중 하나와 함께 어써트되는 경우, 데이터 이외의 것으로 인식가능한 인코딩된 제어 벡터가 발생된다. 6B/8B 송신 코드는 DC-평형되어 있는데 그 이유는 각각의 코딩된 벡터가 0의 디스패리티(disparity)를 갖기 때문이다. 디스패리티는 정의된 비트 블록(이 경우에, 코딩된 8-비트 벡터임) 내에서 1 비트와 0 비트의 수 간의 차이이다. 용어 "평형된(balanced)"은 코딩된 벡터에 대한 디스패리티가 0임을 말한다.
6B/8B 송신 코드에 있어서, 총 68개의 인코딩된 벡터가 있으며, 이 인코딩된 벡터 모두는 평형되어 있다. 따라서, 코딩된 영역에서의 단일의 비트 에러 또는 홀수 개의 비트 에러는 그 자체로서 즉시 인지가능한 유효하지 않은 벡터를 발생하게 된다.
인코딩 및 디코딩을 위해, 64개의 소스 벡터는 4개의 세트로 분류된다.
1. 20개의 소스 벡터로 된 제1 세트는 모든 평형된 6B 벡터를 포함한다.
2. 14개의 소스 벡터로 된 제2 세트는 4개의 1의 트레일링 런(trailing run)을 갖는 벡터를 제외하고(예를 들어, 포함시키지 않고) 플러스 2의 디스패리티를 갖는 모든 6B 벡터를 포함한다.
3. 14개의 소스 벡터로 된 제3 세트는 4개의 0의 트레일링 런을 갖는 벡터를 제외하고(예를 들어, 포함시키지 않고) 마이너스 2의 디스패리티를 갖는 모든 6B 벡터를 포함한다.
4. 20개의 소스 벡터로 된 제4 세트는 4 또는 6의 디스패리티를 갖는 14개 벡터, 2의 디스패리티 및 4의 트레일링 런를 갖는 2개의 벡터, 및 4개의 제어 벡터를 포함한다.
인코딩 프로세스에서, 4개의 세트 전부는 이하에 보다 상세히 기술하는 바와 같이 2-비트 프리픽스(two-bit prefix)를 획득한다. 다른 대안으로서, 이 2 비트는 서픽스(suffix)로서 또는 다른 지정된 위치에 부가될 수도 있다. 그렇지만, 이하에 설명하는 이유로 프리픽스가 유익한 구현이다. 처음 3가지 세트의 소스 비트(source bit)는 인코딩 및 디코딩의 경우 변경되지 않은 채로 있다. 제4 세트의 16개 데이터 벡터만이 평형된 인코딩된 벡터를 발생하기 위해 1개, 2개 또는 3개 비트 위치에서 변경을 필요로 한다. 프리픽스는 다음과 같이 선택된다.
1. 제1 세트는 상보적인 비트 값, 즉 10 또는 다른 대안적인 구현에서는 01을 갖는 2-비트 프리픽스를 갖는다.
2. 제2 세트는 값 00을 갖는 프리픽스를 갖는다.
3. 제3 세트는 값 11을 갖는 프리픽스를 갖는다.
4. 제4 세트는 제1 세트의 2-비트 프리픽스의 보수, 즉 01 또는 다른 대안적인 구현에서는 10의 값인 2-비트 프리픽스를 갖는다.
표기법
소스 벡터의 6 비트는 대문자 A, B, C, D, E, F에 의해 식별된다. 부가의 제어 입력은 라벨 K를 갖는다. 코딩된 벡터의 8 비트는 각자의 소문자 a, b, c, d, e 및 f에 의해 식별되고, 2개의 추가 비트는 문자 g 및 h에 의해 식별된다. 도 11a, 도 11b, 도 13a 및 도 13b를 참조하여 이하에 기술되는 회로도에서, 코딩된 입력 및 출력 'a' 내지 'h'은 대문자 C가 앞부분에 붙여져 있는데, 그 이유는 어떤 설계 도구가 소문자와 대문자를 구별하지 않기 때문이다. 모든 벡터는 데이터 또는 제어 벡터에 대해 각각 문자 D 또는 K로 시작하고 이에 뒤따라 소스 벡터의 경우 2 자리 8진수 숫자(2 position octal number) 또는 코딩된 벡터의 경우 3 자리 8진수 숫자(3 position octal number)가 오는, 이름을 할당받는다. 8진수 숫자는 우측에 하위 비트(즉, 비트 A 또는 a)를 갖는 이진 비트 패턴을 나타낸다. 코딩된 벡터에 대한 상위 8진수 자리(high order octal position)는 코딩된 벡터가 속하는 클래스(class)를 식별해주는 비트 g 및 h의 값을 나타낸다.
본 개시 내용에서는 상위 비트 h가 제일 먼저 송신되는 것으로 가정한다. 6B/8B 송신 코드는 순서에 민감하지 않지만, 비트 g 및 h가 코딩된 벡터를 분류하는 데 사용되기 때문에, 코딩된 벡터의 선두쪽 끝에 있는 비트 g 및 h의 위치가 수신기의 대기 시간(latency)을 약간 감소시키기 위해 또는 타이밍 여유(timing margin)를 향상시키기 위해 사용될 수 있음은 생각가능하다. 유의할 점은 송신 순 서의 역전(reversal)이 이하에 정의되는 동기화 벡터 쌍(synchronizing vector pair)에 영향을 준다는 것이다.
이 문서의 방정식들에서 사용되는 신호 이름은 논리 레벨을 반영하지 않으며, 그 대신에 신호 이름은 추상적인 논리문(abstract logic statement)으로서 해석되어야 한다. 그렇지만, 회로도에서, 신호 이름은 함수가 상위 레벨(upper level)에서 참(true)이 되는지 하위 레벨(lower level)에서 참이 되는지를 나타내기 위해 문자 P 또는 N이 앞부분에 붙여질 수 있다. P 및 N 프리픽스는 각각 P 및 N으로 시작하는 네트 이름(net name)에 대해서는 통상 사용되지 않는다. "n" 또는 "m"으로 시작하는 네트 숫자(net number)는 하위 레벨에서 참이며 상위 레벨에서 참인 경우 P 프리픽스를 갖는다. 논리 방정식에서, 심볼
Figure 112006059259099-PCT00001
, + 및
Figure 112006059259099-PCT00002
은 부울(Boolean) AND, OR 및 EXCLUSIVE OR 함수를 나타낸다. 어포스트로피(')는 부정(negation)을 나타낸다.
C. 소스 벡터 및 코딩된 벡터
도 1은 K-입력의 값을 무시하고 있는, 64개 소스 벡터의 트렐리스 다이어그램이다. 도 2는 데이터 이외의 것인 4개의 제어 벡터를 포함하는, 68개 코딩된 벡터의 트렐리스 다이어그램이다. 이들 다이어그램에서의 숫자들은 숫자의 좌측에 있는 노드에서 끝나는 벡터의 수를 가리킨다.
저주파 특성
도 2의 트렐리스로부터, 코드가 6의 최대 디지털 합 변량(maximum digital sum variation)으로 DC-평형되어 있음은 명백하다. 0 디스패리티 레벨과 트렐리스 의 극한 윤곽선(extreme contour) 사이의 영역에 관계되어 있는, 정규화된 DC-오프셋은 1.75이다. 기준점으로서, 발명의 명칭이 "바이트 중심형 DC 평형된 (0,4) 8B/10B 분할된 블록 송신 코드(Byte Oriented DC Balanced (0,4) 8B/10B Partitioned Block Transmission Code)"인 Franaszek 및 Widmer의 미국 특허 제4,486,739호(1984년)(이는 여기에 인용함으로써 그 전체 내용이 본 명세서에 포함됨)에 기술되어 있는 파이버 채널(Fiber Channel) 8B/10B 코드에 대해 이 오프셋 값은 1.9이다. 고역 통과 필터에 대한 저주파 차단점(low frequency cut-off point)은 동일한 아이 클로저(equal eye closure)에 대해 저역 통과 필터 파라미터에 따라 8B/10B에 대한 것보다 아래에 또는 그 만큼 아래에 위치할 수 있다.
동기화 특성
예시적인 실시예에서, 최대 런 길이는 6으로 8B 경계에 중심이 있다. 이 예시적인 실시예에서, 인접하는 6의 런(contiguous run of 6)이 없다. 게다가, 6의 런은 특이하다, 즉 이는 8B 경계에 관한 임의의 다른 정렬에서 나타날 수 없으며 콤마로서 기능할 수 있다.
제어 문자와 관련하여 6개의 0의 콤마를 발생하기 위해, 제어 문자 중 하나(예를 들어, K170)는 3개의 0의 트레일링 런(trailing run)으로 정의된다. 이 문자는 뒤이어서 3개의 0의 리딩 런(leading run)을 갖는 도 5의 세트들로부터의 4개의 데이터 문자(예를 들어, D027, D033, D035, 또는 D036) 중 임의의 것이 따라올 수 있다. 6개의 1의 등가의 대안적인 콤마는 3개의 1의 트레일링 런을 갖는 다른 제어 문자(K107) 및 그에 뒤따라 오는 3개의 1의 리딩 런을 갖는 도 6의 세트로부 터의 4개의 데이터 문자(D341, D342, D344, D350) 중 임의의 것으로부터 발생된다. 이것은 한 쌍의 벡터에 의해 벡터 정렬(vector alignment) 및 프레임의 시작 또는 끝 둘다를 신호(signaling) 및 검사할 수 있게 해준다.
콤마와 제어 특징을 겸비한 다른 대안적인 벡터 쌍은 먼저 3의 트레일링 런(trailing run)을 갖는 데이터 벡터를 배치하고 다음으로 3의 리딩 런(leading run)을 갖는 제어 벡터를 배치함으로써 정의될 수 있다. 이것은 코딩 테이블 중 어떤 것에서는 변경을 필요로 하며 여기에서는 단지 완벽을 기하기 위해 언급된 것이다.
통상적인 데이터 트래픽에서, 또한 정렬 또는 정렬 검사에도 사용될 수 있는 동일한 정렬을 갖는 6개의 1 또는 0의 시퀀스가 있게 된다.
정렬을 유발할 수 있는 다른 가능성은 코딩된 벡터의 랜덤 시퀀스에서 6-보 간격(six-baud interval)으로 러닝 디스패리티(running disparity)를 검사하고 경계에서의 값들이 0인 것으로 가정될 수 있음과 동시에 에러가 없는 경우 그곳에 있어야만 하는 안정된 값을 가질 때까지 단계적으로 정렬을 행하는 것이다.
6B/8B 인코딩 테이블
상기한 6B/8B 송신 코드에 대한 전반적인 설명 섹션에서 기술한 바와 같이, 도 2의 68개의 코딩된 8-비트(8B) 벡터는 4개의 세트로 분할되며, 이 각각은 도 3, 도 4, 도 5 및 도 6의 트렐리스 다이어그램으로 나타낸 바와 같은 코딩된 벡터를 갖는다. 도 3, 도 5 및 도 6에서의 실선은 2-비트 프리픽스를 제외하고는 인코딩된 영역 내에서 불변인 채로 있는 소스 벡터 중 48개를 나타낸다. 도 4의 트렐리 스 다이어그램은 4개의 제어 벡터 및 나머지 16개의 데이터 벡터를 나타낸다.
인코딩을 위해 변경을 필요로 하지 않는 도 3, 도 5 및 도 6의 48개의 코딩된 8-비트 벡터는 도 7의 테이블에 열거되어 있다. 도 4의 20개의 벡터는 도 8의 테이블에 열거되어 있다. 이 테이블의 좌측에 있는 10개의 소스 벡터는 마이너스 디스패리티(negative disparity)를 갖는다. 우측에 있는 플러스 디스패리티(positive disparity)를 갖는 10개의 소스 벡터는 좌측에 있는 것의 정확한 보수(exact complement)이다. 이들 벡터 중 16개는 다음과 같이 인코딩을 위해 변경을 필요로 한다.
1. 모두 1 또는 0을 가짐과 동시에 6의 디스패리티를 갖는 2개의 벡터는 3개의 비트를 보수화(complement)함으로써 평형된다.
2. 4의 디스패리티를 갖는 12개의 벡터는 2개의 비트를 보수화함으로써 인코딩된다.
3. 2의 디스패리티를 가짐과 동시에 4의 트레일링 런 길이(trailing run length)를 갖는 2개의 데이터 벡터는 단일의 비트의 보수화(complementation)에 의해 평형된다.
각자의 소스 비트의 보수인 코딩된 비트는 굵은체로 인쇄되어 있음과 동시에 밑줄이 그어져 있다. 도 8의 테이블의 16개의 데이터 벡터로 된 세트에서의 보수화된 비트들의 패턴에서의 좌측과 우측 간의 대칭 및 벡터(D10, D20, D40)의 'abc' 비트와 벡터(D04, D02, D01)의 'fed' 비트 각각 사이에서의 대칭에 유의한다. 인코딩을 위해 보수화된 비트-위치는 상보적 벡터들의 각 쌍에 대해 동일하다. 이 특징은 인코딩 및 디코딩 방정식을 단순화시킨다. 전체적인 6B/8B 코딩 할당은 도 9의 테이블에 나타내어져 있다.
D. 인코딩된 8B 벡터의 발생
인코딩 방정식의 도출을 위해, 도 8 및/또는 도 9의 테이블을 참조한다. 일반적으로, 인코딩된 비트들은 미인코딩된 비트의 값을 유지하지만(a=A, b=B, 등등), 각자의 방정식이 참인 경우에만 특정의 소스 비트가 보수화되어 있다(a=A', b=B', 등등). 코딩 라벨 및 방정식에서, 몇개의 비트의 코딩을 위해 더 많은 회로 공유를 가능하도록 해주기 위해 어떤 비트 값들이 중복적으로(redundantly) 포함되어 있다. 리던던트(redundant) 비트 값들은 그 위에 라인을 가지며(위쪽에 줄이 그어져 있으며) 리던던트 벡터 이름들은 별표가 그 앞에 온다.
인코딩된 비트 a
'a' 열은 D00, D04, D10, D20, D40, D37, D57, D67, D73, 및 D77에 대한 굵은체 엔트리를 갖는다. 각자의 미인코딩된 비트(FEDCBA)가 도 10a에 도시된 테이블에 열거되어 있고, A-비트는 윗줄이 그어져 있고(overlined), 소스 비트에서의 공통적인 패턴은 간단한 표현식으로 그 벡터들을 논리적으로 분류하기 위해 굵은체로 표시되어 있다.
이들 식별자를 사용하여, 비트 'a'에 대한 인코딩 방정식은 다음과 같이 기술될 수 있다.
Figure 112006059259099-PCT00003
도 11b의 회로도에서, 이하의 네트 이름(net name)이 사용된다.
Figure 112006059259099-PCT00004
인코딩된 비트 b
'b' 열은 D20, D40, D37 및 D57에 대한 굵은체 엔트리를 갖는다. 각자의 미코딩된 비트(FEDCBA)는 도 10b에 도시된 테이블에 열거되어 있으며, B-비트는 윗줄이 그어져 있으며, 공통적인 패턴에 표시가 되어 있다.
이들 식별자를 사용하여, 비트 'b'에 대한 인코딩 방정식은 다음과 같이 기술될 수 있다.
Figure 112006059259099-PCT00005
도 11b에 도시된 회로도에서, 이하의 네트 이름이 사용된다.
Figure 112006059259099-PCT00006
인코딩된 비트 c
'c' 열은 D60 및 D17에 대한 굵은체 엔트리를 갖는다. 각자의 미코딩된 비트(FEDCBA)는 도 10c에 도시된 테이블에 열거되어 있으며, C-비트는 윗줄이 그어져 있다.
이들 식별자를 사용하여, 비트 'c'에 대한 인코딩 방정식은 다음과 같이 기술될 수 있다.
Figure 112006059259099-PCT00007
도 11b에 도시된 회로도에서, 이하의 네트 이름이 사용된다.
Figure 112006059259099-PCT00008
인코딩된 비트 d
'd' 열은 D00 및 D77에 대한 굵은체 엔트리를 갖는다. 각자의 미코딩된 비트(FEDCBA)는 도 10d에 도시된 테이블에 열거되어 있으며, D-비트는 윗줄이 그어져 있다.
이들 식별자를 사용하여, 비트 'd'에 대한 인코딩 방정식은 다음과 같이 기술될 수 있다.
Figure 112006059259099-PCT00009
도 11b에 도시된 회로도에서, 이하의 네트 이름이 사용된다.
Figure 112006059259099-PCT00010
인코딩된 비트 e
'e' 열은 D00, D01, D02, D75, D76 및 D77에 대한 굵은체 엔트리를 갖는다. 도 10e에 도시된 테이블은 각자의 미코딩된 비트(FEDCBA)를 열거하고 있으며, E-비트는 윗줄이 그어져 있으며, 공통적인 패턴은 굵은체로 표시되어 있다.
이들 식별자를 사용하여, 비트 'e'에 대한 인코딩 방정식은 다음과 같이 기 술될 수 있다.
Figure 112006059259099-PCT00011
도 11b에 도시된 회로도에서, 이하의 네트 이름이 사용된다.
Figure 112006059259099-PCT00012
인코딩된 비트 f
'f' 열은 D01, D02, D04, D10, D67, D73, D75 및 D76에 대한 굵은체 엔트리를 갖는다. 각자의 미코딩된 비트(FEDCBA)는 도 10f에 도시된 테이블에 열거되어 있다. 인코딩을 위해 보수화되어야만 하는 F-비트는 윗줄이 그어져 있으며, 공통적인 패턴은 굵은체 엔트리로 표시되어 있다.
비트 'f'에 대한 인코딩 방정식은 다음과 같이 기술될 수 있다.
Figure 112006059259099-PCT00013
도 11b에 도시된 회로도에서, 이하의 네트 이름이 사용된다.
Figure 112006059259099-PCT00014
인코딩된 비트 g
비트 'g'에 대한 값은 도 4 및 도 6의 34개의 벡터에 대해 1이다. 이들 벡터는 도 7에 도시된 테이블 및 도 8에 도시된 테이블의 우측열에 열거되어 있다. 유의할 점은 도 7의 테이블의 모든 코딩된 벡터에 대한 소스 벡터가 각자의 코딩된 벡터의 트레일링 6 비트와 동일하며 명시적으로 열거되어 있지 않다는 것이다.
비트 'g'에 대한 값이 1인 34개의 소스 벡터가 공유된 비트 패턴에 따라 정렬되어 도 10g의 테이블에 다시 한번 열거되어 있다. 4개 이상의 0을 갖는 22개의 소스 벡터 전부는 이 세트의 일부이다. 논리적 인코딩 방정식의 도출을 위해, 이들 22개의 벡터는 3개의 중첩하는 세트로 그룹화된다. 리던던트 벡터(redundant vector)는 별표로 표시되어 있다. 이 테이블의 좌측 상부에 있는 7개의 소스 벡터로 된 세트는 3개의 트레일링 0(trailing zero) 및 선두의 3개의 비트 위치에서 적어도 하나의 비트가 0의 값을 갖는 것에 의해 특징지워지며, 이는 논리식
Figure 112006059259099-PCT00015
에 의해 기술되어 있다. 이 테이블의 우측 상부에 있는 6개(리던던트 벡터 *D00는 카운트하지 않음)의 소스 벡터로 된 세트는 3개의 리딩 0(leading zero) 및 후미의 3개의 비트 위치에서 적어도 하나의 비트가 0의 값을 갖는 것에 의해 특징지워지며, 이는 논리식
Figure 112006059259099-PCT00016
에 의해 기술되어 있다. 좌측 하부에 있는 9개(리던던트 벡터는 카운트하지 않음)의 벡터로 된 세트는 선두의 3개의 위치에 있는 적어도 2개의 0 및 후미의 3개의 위치에 있는 적어도 2개의 0에 의해 특징지워지며, 이는 논리식
Figure 112006059259099-PCT00017
Figure 112006059259099-PCT00018
로 기술되어 있다.
4개의 1의 트레일링 런을 갖는 도 10g의 우측에 있는 4개의 벡터는 논리식
Figure 112006059259099-PCT00019
에 의해 식별된다. 4개의 리딩 1(leading one)을 갖는 도 10g 내의 2개의 벡터는 논리식
Figure 112006059259099-PCT00020
에 의해 식별되고, 2개의 리딩 1(leading one) 및 2개의 트레일링 1(trailing one)을 갖는 2개의 벡터는 논리식
Figure 112006059259099-PCT00021
으로 식별된다.
마지막으로, K-값이 1인 것으로 식별되는 4개의 제어 벡터 모두는 g 값이 1이다.
따라서, g-비트의 인코딩을 위한 논리 방정식은 다음과 같이 표현될 수 있다.
Figure 112006059259099-PCT00022
도 11b에 도시된 회로도에서, 이하의 네트 이름이 사용된다.
Figure 112006059259099-PCT00023
Figure 112006059259099-PCT00024
인코딩된 비트 h
비트 'h'의 값은 도 4 및 도 5의 34개의 벡터 모두에 대해 0이다. 이들 벡터는 도 7에 도시된 테이블의 중심 열 및 도 8에 도시된 테이블에 열거되어 있다. 유의할 점은 도 7의 테이블의 코딩된 벡터 모두에 대한 소스 벡터가 각자의 코딩된 벡터의 후미의 6 비트(trailing six bits)와 동일하며 명시적으로 열거되어 있지 않다.
비트 'h'에 대한 값이 0인 34개의 소스 벡터가 정렬되어 도 10h에 도시된 테이블에 다시 한번 열거되어 있다. 4개 이상의 1을 갖는 22개의 소스 벡터 전부는 이 세트의 일부이다. 논리적 인코딩 방정식의 도출을 위해, 이들 22개의 벡터는 3개의 중첩하는 세트로 그룹화된다. 리던던트 벡터는 별표로 표시되어 있다. 좌측의 상부에 있는 7개의 소스 벡터로 된 세트는 3개의 트레일링 1 및 선두의 3개의 비트 위치에서 적어도 하나의 비트가 1의 값을 갖는 것에 의해 특징지워지며, 이는 논리식
Figure 112006059259099-PCT00025
으로 기술되어 있다. 논리식
Figure 112006059259099-PCT00026
로 기술되는 우측의 상부에 있는 6개(리던던트 벡터 *D77은 카운트하지 않음)의 소스 벡터로 된 세트는 3개의 리딩 1(leading one) 및 후미의 3개의 비트 위치에서 적어도 하나의 비트가 1의 값을 갖는 것에 의해 특징지워진다. 좌측의 하부에 있는 9개(리던던트 벡터는 카운트하지 않음)의 벡터로 된 세트는 후미의 3개의 위치에 있는 적어도 2개의 1 및 선두의 3개의 위치에 있는 적어도 2개의 1에 의해 특징지워지며, 이는 논리식
Figure 112006059259099-PCT00027
으로 기술되어 있다.
우측에 있는 4개의 0의 트레일링 런을 갖는 4개의 벡터는 논리식
Figure 112006059259099-PCT00028
에 의해 식별된다. 4개의 리딩 0를 갖는 2개의 벡터는 논리식
Figure 112006059259099-PCT00029
에 의해 식별된다. 2개의 리딩 0 및 2개의 트레일링 0를 갖는 2개의 벡터는 논리식
Figure 112006059259099-PCT00030
에 의해 식별된다.
마지막으로, K-값이 1인 것으로 식별되는 4개의 제어 벡터 모두는 0의 h-값 을 갖는다. 따라서, h-비트의 인코딩을 위한 논리 방정식은 다음과 같이 표현될 수 있다.
Figure 112006059259099-PCT00031
Figure 112006059259099-PCT00032
도 11b의 회로도에서, 이하의 네트 이름이 사용된다.
Figure 112006059259099-PCT00033
E. 6B/8B 인코더의 회로 구현
도 11a는 입력 및 출력을 나타낸 인코더 회로(1100)의 심볼이다. 도 11a 및 도 11b의 예에서, 입력 데이터 비트(예를 들어, PA 내지 PF) 및 이 입력 데이터 비트의 반전된 버전(예를 들어, NA 내지 NF)이 인코더 회로(1100)에 입력되지만, 이 인코더 회로는 또한 반전을 수행할 수도 있다.
도 11b는 인코더 회로(1100)의 논리 다이어그램이다. 인코더 회로(1100)는 입력 데이터 비트(예를 들어, PA 내지 PF) 및 입력 데이터 비트의 반전된 버전(예를 들어, NA 내지 NF)을, 제어 신호(PK)와 함께 받아서, 코딩된 벡터(PCa, NCb, NCc, NCd, PCe, PCf, PCg, NCh)를 출력하며, 여기서 코딩된 비트(NCb, NCc, NCd 및 NCh)는 더 낮은 지연 패널티(delay penalty)를 달성하기 위해 코더 자체에서 또는 양호하게는 래치 등의 어떤 후속 회로에서 사용하기 위해 일반적으로 반전된다. 도 11b에 도시된 로직은 도 10a 내지 도 10h의 테이블 또는 연관된 논리 방정식을 사용하여 당업자에 의해 결정될 수 있다.
인코더의 다른 구현
도 8의 테이블의 좌측과 우측 사이의 대칭으로 인해, 비트 a 내지 f에 대한 인코딩 방정식 모두는 배타적 OR 함수의 광범위한 사용으로 이용될 수 있는 상보적인 특징을 갖는다. 비트 a 내지 f에 대한 변환된 코딩 방정식이 이하에 제공되어 있다.
Figure 112006059259099-PCT00034
Figure 112006059259099-PCT00035
이들 대안적인 방정식에 기초한 구현은 실리콘 영역의 관점에서 유리할 수 있다. 특정의 기술 및 응용에 대한 선택을 지원하기 위해, 회로 지연 및 전력 소모와 관계된 전체 회로 용량도 역시 고려되어야만 한다.
F. 디코딩된 6B 벡터의 발생
hg의 값이 01인 인코딩된 벡터 'hgfedcba' 모두에 대해, 디코딩된 비 트(FEDCBA)는 인코딩된 벡터 'fedcba'와 같으며, K-비트의 값은 0이다. hg=01인 경우, 디코딩 방정식은 이하에 나타내는 바와 같이 도 8 또는 도 9에 도시된 테이블로부터 도출될 수 있다.
디코딩된 비트 A
도 8에 도시된 테이블의 'a' 열은 D131, D145, D151, D123, D143, D146, D132, D126, D154 및 D134에 대해 굵은체 엔트리를 갖는다. 각자의 코딩된 비트 'hgfedcba'는 도 12a에 도시된 테이블에 열거되어 있으며, a-비트는 중복성(redundancy)을 나타내기 위해 윗줄이 그어져 있고, 간단한 표현식으로 벡터들을 논리적으로 분류하기 위해 공통적인 패턴에는 굵은체로 표시되어 있다.
벡터(D131, D146)의 경우, 이 표현식이 D-비트 및 E-비트 디코딩과 공유될 수 있도록 윗줄이 그어진 비트 'a'가 디코딩 방정식에 중복 부가되어 있다. 벡터(D145, D151, D132 및 D126)의 경우, 이 표현식이 F-비트 디코딩과 공유될 수 있도록 윗줄이 그어진 비트 'a'가 중복 부가되어 있다. 벡터(D123, D143, D154 및 D134)의 경우, 이 표현식이 B-비트 디코딩과 공유될 수 있도록 윗줄이 그어진 비트 'a'가 중복 부가되어 있다. 이들 식별자를 사용하여, 비트 'A'에 대한 디코딩 방정식은 다음과 같이 쓰여질 수 있다.
Figure 112006059259099-PCT00036
도 13b의 회로도에서, 이하의 네트 이름이 사용된다.
Figure 112006059259099-PCT00037
디코딩된 비트 B
도 8에 도시된 테이블의 'b' 열은 D123, D143, D154 및 D134에 대해 굵은체 엔트리를 갖는다. 각자의 코딩된 비트 'hgfedcba'는 도 12b에 도시된 테이블에 열거되어 있으며, b-비트가 윗줄이 그어져 있고, 공통적인 패턴들은 굵은체로 표시되어 있다. 이 표현식이 A-비트 디코딩과 공유될 수 있도록 윗줄이 그어진 비트 'b'가 디코딩 방정식에 중복 부가되어 있다.
이들 식별자를 사용하여, 비트 'B'에 대한 디코딩 방정식은 다음과 같이 쓰여질 수 있다.
Figure 112006059259099-PCT00038
도 13b의 회로도에서, 이하의 네트 이름이 사용된다.
Figure 112006059259099-PCT00039
디코딩된 비트 C
도 8의 테이블의 'c' 열은 D164 및 D113에 대해 굵은체 엔트리를 갖는다. 각자의 코딩된 비트 'hgfedcba'는 도 12c에 도시된 테이블에 열거되어 있다.
이들 식별자를 사용하여, 비트 'C'에 대한 디코딩 방정식은 다음과 같이 쓰여질 수 있다.
Figure 112006059259099-PCT00040
도 13b의 회로도에서, 이하의 네트 이름이 사용된다.
Figure 112006059259099-PCT00041
디코딩된 비트 D
도 8의 테이블의 'd' 열은 D131 및 D146에 대해 굵은체 엔트리를 갖는다. 각자의 코딩된 비트 'hgfedcba'는 도 12d의 테이블에 열거되어 있다. 이하의 방정식들에서의 윗줄이 그어진 비트 'd'는 이 표현식이 A-비트 및 E-비트 디코딩과 공유될 수 있도록 하기 위해 디코딩 방정식에 중복 부가되어 있다.
이들 식별자를 사용하여, 비트 'D'에 대한 디코딩 방정식은 다음과 같이 쓰여질 수 있다.
Figure 112006059259099-PCT00042
도 13b의 회로도에서, 이하의 네트 이름이 사용된다.
Figure 112006059259099-PCT00043
디코딩된 비트 E
도 8에 도시된 테이블의 'e' 열은 D131, D161, D162, D146, D116 및 D115에 대해 굵은체 엔트리를 갖는다. 도 12e에 도시된 테이블은 각자의 코딩된 비트 'hgfedcba'를 열거하고 있으며, e-비트는 윗줄이 그어져 있고, 공통적인 패턴은 굵은체 엔트리로 표시되어 있다.
벡터(D131, D146)의 경우, 이하의 방정식에서의 윗줄이 그어진 비트 'e'는 이 표현식이 A-비트 및 D-비트 디코딩과 공유될 수 있도록 디코딩 방정식에 중복부가되어 있다. 벡터(D161, D162, D116 및 D115)의 경우, 윗줄이 그어진 비트 'e'는 이 표현식이 F-비트 디코딩과 공유될 수 있도록 중복 부가되어 있다. 이들 식별자를 사용하여, 비트 'E'에 대한 디코딩 방정식은 다음과 같이 쓰여질 수 있다.
Figure 112006059259099-PCT00044
도 13b의 회로도에서, 이하의 네트 이름이 사용된다.
Figure 112006059259099-PCT00045
디코딩된 비트 F
도 8의 테이블의 'f' 열은 D161, D162, D145, D151, D116, D115, D132 및 D126에 대해 굵은체 엔트리를 갖는다. 각자의 코딩된 비트 'hgfedcba'는 도 12f의 테이블에 열거되어 있다. 인코딩을 위해 보수화되어야만 하는 f-비트는 윗줄이 그어져 있다.
벡터(D161, D162, D116 및 D115)의 경우, 이하의 방정식에서의 윗줄이 그어진 비트 'f'는 이 표현식이 E-비트 디코딩과 공유될 수 있도록 디코딩 방정식에 중복 부가되어 있다. 벡터(D145, D151, D132 및 D126)의 경우, 이 표현식이 A-비트 디코딩과 공유될 수 있도록 윗줄이 그어진 'f'가 중복 부가되어 있다. 비트 'F'에 대한 디코딩 방정식은 다음과 같이 쓰여질 수 있다.
Figure 112006059259099-PCT00046
Figure 112006059259099-PCT00047
도 13b의 회로도에서, 이하의 네트 이름이 사용된다.
Figure 112006059259099-PCT00048
디코딩된 비트 K
도 8 및 도 9의 테이블의 'K' 열은 4개의 코딩된 벡터(K107, K125, K170 및 K152)에 대해 1의 값을 갖는다. 각자의 코딩된 비트 'hgfedcba'는 도 12g의 테이블에 열거되어 있다.
비트 'K'에 대한 디코딩 방정식은 다음과 같이 쓰여질 수 있다.
Figure 112006059259099-PCT00049
도 13b의 회로도에서, 이하의 네트 이름이 사용된다.
Figure 112006059259099-PCT00050
G. 유효성 검사
도 2의 트렐리스에 적합하지 않거나 도 9의 테이블에 열거되어 있지 않은 수신된 벡터는 어느 것이라도 유효하지 않다. 256개의 8-비트 벡터 중 단지 68개 벡터만이 유효하기 때문에, 총 188개의 유효하지 않은 벡터가 있다. 벡터가 유효한 벡터들로 된 세트에 속하는지를 검증하는 회로는 유효하지 않은 벡터에 플래그(flag)를 붙이는 회로보다 덜 복잡하다. 유효성 검사는 번호 4, 6 및 4가 부기 되어 있는 중심 노드를 통과하는 3개의 중첩하는 상보적 회로 세트를 사용하여 도 2의 테이블의 트렐리스로부터 직접 도출될 수 있다.
Figure 112006059259099-PCT00051
도 13b의 회로도에서, 이하의 네트 이름이 사용된다.
Figure 112006059259099-PCT00052
Figure 112006059259099-PCT00053
H. 6B/8B 디코더의 회로 구현
도 13a는 입력 및 출력을 나타내는 디코더 회로(1300)의 심볼이다. 도 13b는 디코더 회로(1300)의 논리 다이어그램이다. 디코더 회로(1300)는 코딩된 벡터(예를 들어, PCa 내지 PCh) 및 코딩된 벡터의 역(inverse)(예를 들어, NCa 내지 NCh)을 받아서 디코딩된 출력 벡터(PA, NB, NC, ND, PE 및 PF)를 생성한다. 게다가, 제어 신호(PK)도 역시 생성된다. 일반적으로, NB, NC 및 ND는 어떤 후속하는 회로, 예를 들어 래치에서 반전되어진다. 디코더 회로(1300)는 또한 하위 레벨(lower level)에서 수신된 코딩된 벡터가 유효함을 나타내는 NVAL 신호를 생성한 다. 상위 레벨은 유효하지 않은 벡터를 나타낸다.
도 13b에 도시된 로직은 도 12a 내지 도 12g의 테이블 또는 연관된 논리 방정식을 사용하여 당업자에 의해 결정될 수 있다.
디코더의 다른 대체 구현
인코딩에 관하여, 비트 A 내지 F, 비트 K 및 유효성 검사에 대한 디코딩 방정식 모두는 배타적 OR 함수의 광범위한 사용에 의해 이용될 수 있는 상보적 특징을 갖는다. 비트 a 내지 f, 비트 K 및 VALID에 대한 변환된 코딩 방정식이 이하에 제공되어 있다.
Figure 112006059259099-PCT00054
Figure 112006059259099-PCT00055
VALID에 대한 원래의 방정식의 두번째 및 세번째 줄은 병합되었다. 대안의 인코딩 회로에 관해서는 동일한 설명이 대안의 디코딩 회로에 적용된다.
I. 구현 요약
6B/8B 코드에 대한 인코딩 회로가 69개의 표준 기본 논리 셀(Standard Primitive Logic Cell)(예를 들어, 2 x INV, 8 x NAND3, 20 x NAND2, 26 x NOR3, 10 x NOR2, 3 x XNOR2)로 제작될 수 있다. 상보적인 입력을 가정하면, 어떤 논리 경로에도 기껏해야 5개의 셀이 있다. 이와 유사하게, 유효성 검사를 포함하는 디코딩 회로는 기껏해야 78개의 셀(2 x INV, 3 x NAND3, 19 x NAND2, 10 x NOR4, 7 x NOR3, 28 x NOR2, 9 x XNOR2) 및 논리 경로에 기껏해야 5개의 셀을 필요로 한다. 배타적 OR 함수의 광범위한 사용을 갖는 대체 구현은 보다 적은 실리콘 영역으로 구현될 수 있다.
본 명세서에 도시되고 기술된 실시예 및 변형이 단지 본 발명의 원리들을 설명하는 것이고 또 여러가지 수정이 본 발명의 범위 및 정신을 벗어나지 않고 당업자에 의해 실시될 수 있음을 잘 알 것이다. 예를 들어, 평형된 코딩된 벡터를 생성하는 데 사용되는 비트는 코딩된 벡터 내의 아무 곳에나 배치될 수 있으며, 미코딩된 또는 코딩된 벡터를 정의하는 비트는 역전(reverse)될 수 있다.

Claims (29)

  1. 하나 이상의 6-비트 소스 벡터들을 포함하는 입력 데이터 스트림으로부터 직류(DC) 평형된(balanced) 6B/8B 송신 코드를 생성하는 방법으로서,
    8개 이진 숫자 코딩된 벡터 세트(8 binary digit coded vector set)에 따라, 상기 하나 이상의 6-비트 소스 벡터들 중 주어진 6-비트 소스 벡터에 대해 8개의 이진 숫자를 갖는 주어진 코딩된 벡터를 생성하는 단계로서, 상기 8개의 이진 숫자 코딩된 벡터 세트 내의 각각의 코딩된 벡터는 평형되어 있는 것인, 주어진 코딩된 벡터를 생성하는 단계; 및
    상기 주어진 코딩된 벡터를 출력하는 단계를 포함하는, 하나 이상의 6-비트 소스 벡터들을 포함하는 직류(DC) 평행된 6B/8B 송신 코드의 생성 방법.
  2. 제1항에 있어서, 상기 6-비트 소스 벡터들은 상기 8개의 이진 숫자 코딩된 벡터 세트에 대한 복수의 6-비트 소스 벡터 세트로 분할되는 것인, 직류(DC) 평행된 6B/8B 송신 코드의 생성 방법.
  3. 제2항에 있어서, 상기 복수의 세트 중 하나는 모든 평형된 6-비트 소스 벡터(all balanced six-bit sources vector)를 포함하는 것인, 직류(DC) 평행된 6B/8B 송신 코드의 생성 방법.
  4. 제3항에 있어서, 상기 생성하는 단계는,
    1 및 이에 뒤따라오는 0, 또는 0 및 이에 뒤따라오는 1 중 어느 하나의 비트 시퀀스를 선택하는 단계, 및
    상기 주어진 코딩된 벡터를 생성하기 위해 상기 8개 이진 숫자 코딩된 벡터 세트에 따라 상기 선택된 비트 시퀀스를 6-비트 소스 벡터에 부가하는 단계를 더 포함하는 것인, 직류(DC) 평행된 6B/8B 송신 코드의 생성 방법.
  5. 제4항에 있어서, 상기 복수의 6-비트 소스 벡터 세트 중 제2 세트는 마이너스 디스패리티(negative disparity)를 갖는 10개 벡터로 된 제3 세트 및 플러스 디스패리티(positive disparity)를 갖는 10개 벡터로 된 제4 세트를 포함하며,
    상기 제4 세트 내의 벡터들 각각은 상기 제3 세트 내의 대응하는 벡터의 정확한 보수(exact complement)인 것인, 직류(DC) 평행된 6B/8B 송신 코드의 생성 방법.
  6. 제2항에 있어서, 상기 복수의 세트 중 하나는 4개의 1의 트레일링 런을 갖는 6-비트 소스 벡터를 제외하고는 플러스 2의 디스패리티를 갖는 모든 6-비트 소스 벡터를 포함하는 것인, 직류(DC) 평행된 6B/8B 송신 코드의 생성 방법.
  7. 제6항에 있어서, 상기 생성하는 단계는 상기 주어진 코딩된 벡터를 생성하기 위해 상기 8개의 이진 숫자 코딩된 벡터 세트에 따라 0과 0의 값을 갖는 2-비트 시 퀀스를 6-비트 소스 벡터에 부가하는 단계를 더 포함하는 것인, 직류(DC) 평행된 6B/8B 송신 코드의 생성 방법.
  8. 제2항에 있어서, 상기 복수의 세트 중 하나는 4개의 0의 트레일링 런을 갖는 소스 벡터를 제외하고는 마이너스 2의 디스패리티를 갖는 모든 6-비트 소스 벡터를 포함하는 것인, 직류(DC) 평행된 6B/8B 송신 코드의 생성 방법.
  9. 제8항에 있어서, 상기 생성하는 단계는 상기 주어진 코딩된 벡터를 생성하기 위해 상기 8개의 이진 숫자 코딩된 벡터 세트에 따라 6-비트 소스 벡터에 1과 1의 값을 갖는 2-비트 시퀀스를 부가하는 단계를 더 포함하는 것인, 직류(DC) 평행된 6B/8B 송신 코드의 생성 방법.
  10. 제2항에 있어서, 상기 복수의 세트 중 제1 세트는 모든 평형된 6-비트 소스 벡터를 포함하고,
    상기 생성하는 단계는,
    1 및 이에 뒤따라오는 0, 또는 0 및 이에 뒤따라오는 1 중 어느 하나의 2-비트 시퀀스를 선택하는 단계, 및
    상기 주어진 코딩된 벡터를 생성하기 위해 상기 8개의 이진 숫자 코딩된 벡터 세트에 따라 상기 선택된 2-비트 시퀀스를 상기 제1 세트로부터의 6-비트 소스 벡터에 부가하는 단계를 더 포함하며,
    상기 복수의 6-비트 소스 벡터 세트 중 제2 세트는 4 또는 6의 디스패리티를 갖는 14개의 6-비트 소스 벡터, 2의 디스패리티와 4의 트레일링 런(trailing run of four)을 갖는 2개의 6-비트 소스 벡터, 및 4개의 제어 벡터를 포함하는 것인, 직류(DC) 평행된 6B/8B 송신 코드의 생성 방법.
  11. 제10항에 있어서, 상기 생성하는 단계는 상기 주어진 코딩된 벡터를 생성하기 위해 상기 8개의 이진 숫자 코딩된 벡터 세트에 따라 상기 선택된 2-비트 시퀀스의 값의 보수를 포함하는 또 다른 2-비트 시퀀스를 상기 제2 세트로부터의 6-비트 소스 벡터에 부가하는 단계를 더 포함하는 것인, 직류(DC) 평행된 6B/8B 송신 코드의 생성 방법.
  12. 제11항에 있어서, 상기 생성하는 단계는 3의 리딩 또는 트레일링 런을 갖지 않는 평형된 16개의 고유의 6-비트 벡터가 발생되도록 상기 제2 세트로부터의 16개의 6-비트 소스 벡터의 1개 내지 3개의 비트를 보수화(complement)하는 단계를 더 포함하는 것인, 직류(DC) 평행된 6B/8B 송신 코드의 생성 방법.
  13. 제12항에 있어서, 상기 16개의 6-비트 소스 벡터는 8 쌍의 6-비트 소스 벡터를 포함하고, 각각의 쌍은 플러스 디스패리티를 갖는 6-비트 소스 벡터 및 마이너스 디스패리티를 갖는 대응하는 보수화된 6-비트 소스 벡터를 포함하며,
    1개 내지 3개의 비트를 보수화하는 상기 단계는 임의의 쌍의 6-비트 소스 벡 터에서의 동일한 비트 위치를 보수화하는 단계를 포함하는 것인, 직류(DC) 평행된 6B/8B 송신 코드의 생성 방법.
  14. 제12항에 있어서, 상기 제1 세트를 사용하여 생성된 상기 8-비트 코딩된 벡터는 코딩된 데이터 벡터를 포함하고,
    상기 제2 세트를 사용하여 생성된 상기 8-비트 코딩된 벡터는 코딩된 데이터 및 제어 벡터를 포함하며,
    보수인 2개 비트를 부가하는 상기 단계는, 제어 입력이 4개의 미리 정해진 평형된 6-비트 소스 벡터 중 임의의 것과 함께 활성화될 때, 4개의 코딩된 제어 벡터 중 하나가 발생되도록 수행되는 것인, 직류(DC) 평행된 6B/8B 송신 코드의 생성 방법.
  15. 제14항에 있어서, 상기 코딩된 제어 벡터 중 하나 이상은 3의 트레일링 런을 갖는 것인, 직류(DC) 평행된 6B/8B 송신 코드의 생성 방법.
  16. 제15항에 있어서, 3의 트레일링 런을 갖는 상기 코딩된 제어 벡터는 뒤이어서 3의 리딩 런을 갖는 코딩된 데이터 벡터가 따라 오며, 상기 3의 리딩 런의 값은 2개 코딩된 벡터 동기화 콤마 시퀀스(two coded vector synchronizing comma sequence)를 발생하기 위해 제어 문자의 3의 트레일링 런의 값과 일치하는 것인, 직류(DC) 평행된 6B/8B 송신 코드의 생성 방법.
  17. 하나 이상의 6-비트 소스 벡터들을 포함하는 입력 데이터 스트림으로부터 직류(DC) 평형된 6B/8B 송신 코드를 생성하는 인코더로서,
    8개의 이진 숫자 코딩된 벡터 세트(8 binary digit coded vector set)에 따라, 상기 하나 이상의 6-비트 소스 벡터들 중 주어진 6-비트 소스 벡터에 대해 8개의 이진 숫자를 갖는 주어진 코딩된 벡터를 생성하고 - 상기 8개 이진 숫자 코딩된 벡터 세트 내의 각각의 코딩된 벡터는 평형되어 있음 -,
    상기 주어진 코딩된 벡터를 출력하도록 구성되어 있는 것인, 인코더.
  18. 하나 이상의 6-비트 소스 벡터들을 포함하는 입력 데이터 스트림으로부터 직류(DC) 평형된 6B/8B 송신 코드를 생성하는 하나 이상의 인코더를 포함하는 반도체로서,
    상기 하나 이상의 인코더는,
    8개 이진 숫자 코딩된 벡터 세트에 따라, 상기 하나 이상의 6-비트 소스 벡터들 중 주어진 6-비트 소스 벡터에 대해 8개의 이진 숫자를 갖는 주어진 코딩된 벡터를 생성하고 - 상기 8개의 이진 숫자 코딩된 벡터 세트 내의 각각의 코딩된 벡터는 평형되어 있음 -,
    상기 주어진 코딩된 벡터를 출력하도록 구성되어 있는 것인, 반도체.
  19. 하나 이상의 8-비트 코딩된 벡터들을 포함하는 입력 데이터 스트림으로부터 직류(DC) 평형된 6B/8B 송신 코드를 디코딩하는 방법으로서,
    8개의 이진 숫자 코딩된 벡터 세트에 따라, 상기 하나 이상의 8-비트 코딩된 벡터들 중 주어진 8-비트 코딩된 벡터에 대해 6개의 이진 숫자를 갖는 주어진 미코딩된 벡터를 생성하는 단계 - 상기 8개의 이진 숫자 코딩된 벡터 세트 내의 각각의 코딩된 벡터는 평형되어 있음 -, 및
    상기 주어진 미코딩된 벡터를 출력하는 단계를 포함하는, 직류(DC) 평형된 6B/8B 송신 코드의 디코딩 방법.
  20. 제19항에 있어서, 각각의 8-비트 코딩된 벡터는 2개의 코딩 이진 숫자 및 6개의 미코딩된 이진 숫자를 가지며,
    상기 6개의 미코딩된 이진 숫자는 복수의 6-비트 소스 벡터의 6-비트 소스 벡터에 대응하고,
    상기 복수의 6-비트 소스 벡터는 상기 8개의 이진 숫자 코딩된 벡터 세트에 대한 복수의 6-비트 소스 벡터 세트로 분할되어 있으며,
    각각의 8-비트 코딩된 벡터는 상기 6-비트 소스 벡터들 중 하나에 대응하는 것인, 직류(DC) 평형된 6B/8B 송신 코드의 디코딩 방법.
  21. 제20항에 있어서, 상기 복수의 세트 중 제1 세트는 모든 평형된 6-비트 소스 벡터를 포함하고,
    상기 복수의 세트 중 제2 세트는 4개의 1의 트레일링 런을 갖는 6-비트 소스 벡터를 제외하고는 플러스 2의 디스패리티를 갖는 모든 6-비트 소스 벡터를 포함하며,
    상기 복수의 세트 중 제3 세트는 4개의 0의 트레일링 런을 갖는 소스 벡터를 제외하고는 마이너스 2의 디스패리티를 갖는 모든 6-비트 소스 벡터를 포함하고,
    상기 복수의 세트 중 제4 세트는 4 또는 6의 디스패리티를 갖는 14개의 6-비트 소스 벡터, 2의 디스패리티와 4의 트레일링 런을 갖는 2개의 6-비트 소스 벡터, 및 4개의 제어 벡터를 포함하는 것인, 직류(DC) 평형된 6B/8B 송신 코드의 디코딩 방법.
  22. 제21항에 있어서, 상기 생성하는 단계는 상기 제1, 제2 및 제3 세트에 대응하는 모든 8-비트 코딩된 벡터에 대한 상기 6개의 미코딩된 이진 숫자를 변경하지 않는 단계를 더 포함하는 것인, 직류(DC) 평형된 6B/8B 송신 코드의 디코딩 방법.
  23. 제21항에 있어서, 상기 제1 세트는 10 또는 01의 코딩 이진 숫자를 가지며,
    상기 제2 세트는 2개의 0의 코딩 이진 숫자를 가지며,
    상기 제3 세트는 11의 코딩 이진 숫자를 가지며,
    상기 제4 세트는 상기 제1 세트에 대응하는 상기 코딩 이진 숫자의 역(inverse)인 코딩 이진 숫자를 갖는 것인, 직류(DC) 평형된 6B/8B 송신 코드의 디코딩 방법.
  24. 제23항에 있어서, 상기 주어진 8-비트 코딩된 벡터는 상기 제4 세트에 대응 하며,
    상기 생성하는 단계는,
    상기 주어진 코딩된 벡터의 상기 6개의 미코딩된 이진 숫자가 16개의 고유의 6-비트 미코딩된 벡터 중 하나를 포함하는 경우, 상기 8개의 이진 숫자 코딩된 벡터 세트에 따라 상기 6개의 미코딩된 이진 숫자 중 1개 내지 3개의 비트를 보수화하는 단계,
    상기 주어진 코딩된 벡터의 상기 6개의 미코딩된 이진 숫자가 4개의 고유의 제어 벡터 중 하나를 포함하는 경우, 제어 신호를 어써트(assert)하는 단계, 및
    상기 제4 세트에 대응하는 다른 코딩된 벡터에 대해, 상기 코딩된 벡터에 대한 2개의 코딩 이진 숫자를 제거(drop)하는 단계를 더 포함하는 것인, 직류(DC) 평형된 6B/8B 송신 코드의 디코딩 방법.
  25. 제19항에 있어서, 상기 주어진 8-비트 코딩된 벡터가 상기 주어진 8-비트 코딩된 벡터의 선두쪽 끝에 있는 기껏해야 3의 런(a run of no more than three at the leading end) 또는 상기 주어진 8-비트 코딩된 벡터의 후미쪽 끝에 있는 기껏해야 3의 런(a run of no more than three at the trailing end)으로 평형되는 경우, 상기 주어진 8-비트 코딩된 벡터를 유효한 것으로 선언하는 단계를 더 포함하는, 직류(DC) 평형된 6B/8B 송신 코드의 디코딩 방법.
  26. 제21항에 있어서, 상기 생성하는 단계에서 제어 벡터가 생성되는 경우 제어 신호를 활성화시키는 단계를 더 포함하는, 하나 이상의 8-비트 코딩된 벡터들을 포함하는 입력 데이터 스트림으로부터 직류(DC) 평형된 6B/8B 송신 코드를 디코딩하는 방법.
  27. 제19항에 있어서, 상기 생성하는 단계는, 상기 주어진 8-비트 코딩된 벡터의 2개 이진 숫자를 사용하여, 상기 주어진 8-비트 코딩된 벡터의 어떤 이진 숫자가 변경을 필요로 하는지를 판정하는 단계를 더 포함하며,
    상기 8개의 이진 숫자 코딩된 벡터 세트는 상기 2개의 이진 숫자의 4가지 가능한 조합 중 하나만이 8-비트 코딩된 벡터의 이진 숫자가 변경을 필요로 함을 나타내도록 설계되어 있는 것인, 직류(DC) 평형된 6B/8B 송신 코드의 디코딩 방법.
  28. 하나 이상의 8-비트 코딩된 벡터들을 포함하는 입력 데이터 스트림으로부터 직류(DC) 평형된 6B/8B 송신 코드를 디코딩하는 디코더로서,
    8개의 이진 숫자 코딩된 벡터 세트에 따라, 상기 하나 이상의 8-비트 코딩된 벡터들 중 주어진 8-비트 코딩된 벡터에 대해 6개의 이진 숫자를 갖는 주어진 미코딩된 벡터를 생성하고 - 상기 8개 이진 숫자 코딩된 벡터 세트 내의 각각의 코딩된 벡터는 평형되어 있음 -,
    상기 주어진 미코딩된 벡터를 출력하도록 구성되어 있는, 디코더.
  29. 하나 이상의 8-비트 코딩된 벡터들을 포함하는 입력 데이터 스트림으로부터 직류(DC) 평형된 6B/8B 송신 코드를 디코딩하는 하나 이상의 디코더를 포함하는 반도체로서,
    상기 하나 이상의 디코더는,
    8개의 이진 숫자 코딩된 벡터 세트에 따라, 상기 하나 이상의 8-비트 코딩된 벡터들 중 주어진 8-비트 코딩된 벡터에 대해 6개의 이진 숫자를 갖는 주어진 미코딩된 벡터를 생성하고 - 상기 8개 이진 숫자 코딩된 벡터 세트 내의 각각의 코딩된 벡터는 평형되어 있음 -,
    상기 주어진 미코딩된 벡터를 출력하도록 구성되어 있는 것인, 반도체.
KR1020067016736A 2004-03-12 2004-06-10 로컬 패리티를 갖는 직류 평형된 6b/8b 송신 코드 KR20060129398A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/799,054 2004-03-12
US10/799,054 US6876315B1 (en) 2004-03-12 2004-03-12 DC-balanced 6B/8B transmission code with local parity

Publications (1)

Publication Number Publication Date
KR20060129398A true KR20060129398A (ko) 2006-12-15

Family

ID=34377790

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067016736A KR20060129398A (ko) 2004-03-12 2004-06-10 로컬 패리티를 갖는 직류 평형된 6b/8b 송신 코드

Country Status (6)

Country Link
US (1) US6876315B1 (ko)
EP (1) EP1723724A1 (ko)
JP (1) JP2008508747A (ko)
KR (1) KR20060129398A (ko)
CN (1) CN101076945A (ko)
WO (1) WO2005096506A1 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6459331B1 (en) 1997-09-02 2002-10-01 Kabushiki Kaisha Toshiba Noise suppression circuit, ASIC, navigation apparatus communication circuit, and communication apparatus having the same
EP1518241A2 (en) * 2002-06-20 2005-03-30 Koninklijke Philips Electronics N.V. Balanced disparity channel code for dc control
US7307554B2 (en) * 2004-12-20 2007-12-11 Kawasaki Microelectronics, Inc. Parallel data transmission method and parallel data transmission system
US7292161B2 (en) * 2005-05-31 2007-11-06 International Business Machines Corporation NB/MB coding apparatus and method using both disparity independent and disparity dependent encoded vectors
US7327293B2 (en) * 2006-03-03 2008-02-05 Honeywell International Inc. Compression and data encoding for transmission over a character-based protocol
AU2006204634B2 (en) * 2006-08-31 2009-10-29 Canon Kabushiki Kaisha Runlength encoding of leading ones and zeros
US7405679B1 (en) 2007-01-30 2008-07-29 International Business Machines Corporation Techniques for 9B10B and 7B8B coding and decoding
AU2007214319A1 (en) * 2007-08-30 2009-03-19 Canon Kabushiki Kaisha Improvements for Spatial Wyner Ziv Coding
DE102007053811A1 (de) * 2007-11-12 2009-05-14 Robert Bosch Gmbh Verfahren zum Übertragen von Daten
WO2009104154A1 (en) * 2008-02-19 2009-08-27 Nxp B.V. Modified coding with an additional control symbol
US8228911B2 (en) * 2008-09-19 2012-07-24 Honeywell International Inc. Enhanced data link communication over iridium
EP2239852A1 (en) * 2009-04-09 2010-10-13 Thomson Licensing Method and device for encoding an input bit sequence and corresponding decoding method and device
KR101531981B1 (ko) * 2009-04-29 2015-06-26 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 광학 메모리 확장
JP5657242B2 (ja) * 2009-12-09 2015-01-21 株式会社東芝 半導体装置及びメモリシステム
US9495155B2 (en) 2013-08-06 2016-11-15 Intel Corporation Methods, apparatus, instructions and logic to provide population count functionality for genome sequencing and alignment
US9513907B2 (en) * 2013-08-06 2016-12-06 Intel Corporation Methods, apparatus, instructions and logic to provide vector population count functionality
US9197368B2 (en) * 2013-09-24 2015-11-24 Broadcom Corporation Inband management of ethernet links
US9270411B2 (en) * 2014-02-03 2016-02-23 Valens Semiconductor Ltd. Indicating end of idle sequence by replacing certain code words with alternative code words
US9270403B2 (en) * 2014-02-03 2016-02-23 Valens Semiconductor Ltd. Indicating end of idle sequence by replacing expected code words while maintaining running disparity
US9154156B2 (en) * 2014-02-25 2015-10-06 Qualcomm Incorporated Ternary line code design for controlled decision feedback equalizer error propagation
CN111178008A (zh) * 2019-12-19 2020-05-19 清华大学 一种面向数字字符的数据编码方法、解析方法及系统
CN112838868B (zh) * 2020-12-30 2022-09-09 天津瑞发科半导体技术有限公司 一种9b/10b编解码方法
CN114598579B (zh) * 2022-03-03 2023-07-07 天津瑞发科半导体技术有限公司 一种适用于低通和带通信道的9b/10b编解码方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4486739A (en) * 1982-06-30 1984-12-04 International Business Machines Corporation Byte oriented DC balanced (0,4) 8B/10B partitioned block transmission code
US5304996A (en) * 1992-02-21 1994-04-19 Advanced Micro Devices, Inc. 8B/10B encoder providing one of pair of noncomplementary, opposite disparity codes responsive to running disparity and selected commands
US5387911A (en) * 1992-02-21 1995-02-07 Gleichert; Marc C. Method and apparatus for transmitting and receiving both 8B/10B code and 10B/12B code in a switchable 8B/10B transmitter and receiver
JP3541439B2 (ja) * 1994-07-08 2004-07-14 ソニー株式会社 信号変調方法及び装置、並びに信号復調装置及び方法
US5784387A (en) 1994-10-31 1998-07-21 International Business Machines Corporation Method for detecting start-of-frame, end of frame and idle words in a data stream
US5606317A (en) * 1994-12-09 1997-02-25 Lucent Technologies Inc. Bandwidth efficiency MBNB coding and decoding method and apparatus
US5699062A (en) 1995-02-01 1997-12-16 International Business Machines Corporation Transmission code having local parity
KR100231379B1 (ko) * 1995-04-12 1999-11-15 니시무로 타이조 코드 변환/복호 장치 및 방법

Also Published As

Publication number Publication date
CN101076945A (zh) 2007-11-21
EP1723724A1 (en) 2006-11-22
WO2005096506A1 (en) 2005-10-13
US6876315B1 (en) 2005-04-05
JP2008508747A (ja) 2008-03-21

Similar Documents

Publication Publication Date Title
KR20060129398A (ko) 로컬 패리티를 갖는 직류 평형된 6b/8b 송신 코드
CN101112060A (zh) 16b/10s编码设备和方法
Bose On unordered codes
KR100306425B1 (ko) 런 길이 제한 코드를 실행하기 위한 시스템
US6978416B2 (en) Error correction with low latency for bus structures
US5892466A (en) Coding scheme for transmitting data
Dueck A note on the multiple access channel with correlated sources (corresp.)
EP1573992A2 (en) Technique for improving the quality of digital signals in a multi-level signaling system
JPH0449820B2 (ko)
US6333704B1 (en) Coding/decoding system of bit insertion/manipulation line code for high-speed optical transmission system
US5818362A (en) 5B4T coding scheme
JP4902665B2 (ja) データ伝送装置および伝送符号の生成方法
US6895546B2 (en) System and method for encoding and decoding data utilizing modified reed-solomon codes
KR100281738B1 (ko) 니블 반전 및 블록 반전 부호의 부호화 및 복호화 방법, 그 부호 및 복호장치
US5878061A (en) Providing serial data clock signal transitions with parity bits
US5938773A (en) Sideband signaling with parity bit schemes
US6346895B1 (en) Apparatus and method for using nibble inversion code
CN113949388B (zh) 用于串行器/解串器系统的编解码器与编解码方法
US6911921B2 (en) 5B/6B-T, 3B/4B-T and partitioned 8B/10B-T and 10B/12B transmission codes, and their implementation for high operating rates
US6438728B1 (en) Error character generation
KR20230033623A (ko) 데이터 부호화 방법 및 부호기와 데이터 복호화 방법
JP2022173081A (ja) 符号器および復号器
GB2174577A (en) Digital communication system
JP2002009632A (ja) 通信システムにおける制御情報の符号化方法
JP2022107067A (ja) 符号化回路および半導体装置、符号化方法、データ伝送システム、復号回路

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application