KR20120024797A - 데이터 전송 방법, 코드 변환 회로 및 장치 - Google Patents

데이터 전송 방법, 코드 변환 회로 및 장치 Download PDF

Info

Publication number
KR20120024797A
KR20120024797A KR1020117030355A KR20117030355A KR20120024797A KR 20120024797 A KR20120024797 A KR 20120024797A KR 1020117030355 A KR1020117030355 A KR 1020117030355A KR 20117030355 A KR20117030355 A KR 20117030355A KR 20120024797 A KR20120024797 A KR 20120024797A
Authority
KR
South Korea
Prior art keywords
character
bit
data
control
control character
Prior art date
Application number
KR1020117030355A
Other languages
English (en)
Other versions
KR101283844B1 (ko
Inventor
세이시 오카다
Original Assignee
후지쯔 가부시끼가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 후지쯔 가부시끼가이샤 filed Critical 후지쯔 가부시끼가이샤
Publication of KR20120024797A publication Critical patent/KR20120024797A/ko
Application granted granted Critical
Publication of KR101283844B1 publication Critical patent/KR101283844B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/14Conversion to or from non-weighted codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dc Digital Transmission (AREA)
  • Communication Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

데이터 전송 방법에 있어서, 비트폭 M(M은 3 이상의 자연수)의 데이터 캐릭터와 비트폭 N(N은 1 이상의 자연수)의 제어 캐릭터를 다중화하고, 상기 제어 캐릭터가 유효한지의 여부를 나타내는 제어 캐릭터 유효 신호를 부가하여 M+1 또는 N+3 중 어느 큰 쪽의 비트폭을 갖는 심볼 코드를 생성하고, 상기 심볼 코드를 병렬 데이터에서 직렬 데이터로 변환하여 전송로에 출력함으로써 데이터 전송을 한다.

Description

데이터 전송 방법, 코드 변환 회로 및 장치{DATA TRANSFER METHOD, CODE CONVERSION CIRCUIT, AND DEVICE}
본 발명은 데이터 전송 방법, 코드 변환 회로 및 장치에 관한 것이다.
종래, 대규모 집적 회로(LSI : Large Scale Integrated circuit) 간 또는 LSI를 갖는 장치 간의 정보 전송에는, 비교적 저속인 병렬 데이터 버스가 이용되고 있다. 그러나, 병렬 데이터 버스는 간편하게 LSI 사이 또는 장치 사이를 결합할 수 있게 하지만, 신호 간에 발생하는 스큐 때문에 정보 전송 능력을 향상시키는 것은 어려웠다. 따라서, 최근에는 LSI 간 또는 장치 간의 결합에 비교적 고속인 직렬 버스를 이용하게 되었다.
고속 직렬 전송을 하는 전형적인 예로서, PCI(Peripheral Component Interconnect) 익스프레스(이하, PCI Express라고 함)가 알려져 있다. 이 PCI Express에서는, 고속 직렬 전송을 가능하게 할 목적으로, 8B10B 방식이라고 불리는 코드화 방식이 채택되고 있다(예를 들어, 특허문헌 1). 이 8B10B 방식은 PCI Express 외에, 이더넷(Ethernet), 파이버 채널(Fiber Channel), IEEE 1394 등에서 채택되고 있다.
8B10B 방식은 크게 나눠 이하의 2개의 특징을 갖는다. 첫째, 도 1에 나타내는 D 캐릭터라고 불리는 256 종류의 8 비트의 데이터 캐릭터와, 도 2에 나타내는 12 종류의 K 캐릭터라고 불리는 제어 캐릭터를 다중화하고, 3 비트 및 5 비트의 룩업 테이블(LUT)을 이용해서 10 비트의 심볼 코드로 변환하여 전송한다. 도 1은 일례로서 8 비트의 D 캐릭터, K 캐릭터, 제어 캐릭터 유효 신호 및 디스패리티값에 기초해서 룩업 테이블(LUT)을 이용하여 10 비트의 심볼 코드를 출력하는 경우를 나타낸다. 도 2는 K 캐릭터의 코드, 심볼, 명칭 및 의미를 나타낸다. 둘째, 10 비트 심볼 중에서는 최대 5 비트의 연속하는 비트값만 출현하도록 정의되어 있기 때문에, 10 비트 심볼 중에는 비트값의 천이가 반드시 1회 이상 포함되어 있어, 수신측 장치에서의 클록 재생이 용이해진다. 비트값의 천이란, 비트의 값이 0에서 1, 또는 1에서 0으로 천이하는 것을 의미한다.
그러나, 종래의 8B10B 방식에서는, 직렬 전송 시의 오버헤드가 비교적 크기 때문에, 직렬 버스의 대역폭을 비교적 많이 소비해 버린다. 구체적으로는 8 비트의 데이터 캐릭터를 10 비트로 변환하기 때문에, 대역폭이 25% 증가해 버린다.
또, 종래의 8B10B 방식에서는, 데이터의 변환에 룩업 테이블(LUT)을 이용하는 것에 기인하는 문제점도 있다. 즉, 변환에 이용하는 룩업 테이블(LUT)의 회로량이 비교적 크기 때문에, 지연 시간이 비교적 커져 버린다. 구체적으로는, 8 비트에서 10 비트(및 그 반대)로의 변환에는 3 비트 및 5 비트의 변환 테이블이 필요하기 때문에 지연 시간이 비교적 커져 버린다.
또한, 종래의 8B10B 방식에서는, 8 비트 데이터를 3 비트와 5 비트로 분할하고, 룩업 테이블(LUT)을 이용하여 10 비트 심볼로 변환하기 때문에, 에러 내성이 악화되게 된다. 즉, 전송로에서 1 비트의 에러가 발생한 경우, 10 비트 심볼을 8 비트 데이터로 복귀시켰을 때 최대 4 비트 에러가 발생해 버린다.
도 3은 8B10B 코드 변환 회로를 포함하는 직렬 버스의 데이터의 흐름을 설명하는 도면이다. 송신측 장치(1)에서는, 8 비트폭의 병렬 데이터를 8B10B 코드 변환 회로(2)에 의해 10 비트 심볼 코드로 변환한다. 이 심볼 코드는 직렬 버스(5)를 통해 송신측 장치(1)와 수신측 장치(3) 사이에서 전송된다. 수신측 장치(3)에서는, 수신된 10 비트의 심볼 코드를 10B8B 코드 변환 회로(4)에 의해 송신측 장치(1)와는 반대의 순서로 8 비트의 수신 데이터로 변환한다.
설명의 편의상, 송신측 데이터는 16진수로 57(도 3에서 2진수로 01010111로 표기)인 것으로 한다. 이 송신측 데이터가 D 캐릭터인 경우, 8B10B 변환 회로(2)에서 변환한 결과는 16진수로 055(도 3에서 2진수로 0001010101로 표기)가 된다. 이 10 비트 심볼 코드가 전송로인 직렬 버스(5)를 통해 전송될 때 1 비트 에러가 발생하여 16진수 255로 변화(도 3에서 비트 0이 0에서 1로 변화)한 것으로 가정하면, 이 심볼 데이터가 수신측의 10B8B 코드 변환 회로(4)에서 변환된 결과는 16진수로 49(도 3에서 2진수로 01001001로 표기)가 된다. 송신측 데이터인 2진수 01010111과 수신측 데이터인 2진수 01001001을 비교하면, 4 비트가 변화한 것을 알 수 있다. 즉, 직렬 버스(5)에서의 1 비트의 에러가 송수신 데이터에서 보면 4 비트 에러가 되어, 에러 비트가 증가한다.
일본 특허 공개 소 59-10056호 공보 일본 특허 공개 제2004-80300호 공보 일본 특허 공표 제2006-502679호 공보 일본 특허 공개 제2007-32526호 공보
PCI Express Base Specification Revision 2.0, PCI-SIG, December 20, 2006
종래의 8B10B 방식을 이용한 데이터 전송 방법에서는, 직렬 전송 시의 버스의 오버헤드를 감소시켜, 버스의 대역폭을 유효 이용하는 것은 어렵다고 하는 문제가 있었다.
따라서, 본 발명은 직렬 전송 시의 버스의 오버헤드를 감소시켜, 버스의 대역폭을 유효 이용하는 것이 가능한 데이터 전송 방법, 코드 변환 회로 및 장치를 제공하는 것을 목적으로 한다.
본 발명의 일 관점에 의하면, 비트폭 M(M은 3 이상의 자연수)의 데이터 캐릭터와 비트폭 N(N은 1 이상의 자연수)의 제어 캐릭터를 다중화하고, 상기 제어 캐릭터가 유효한지의 여부를 나타내는 제어 캐릭터 유효 신호를 부가하여 M+1 또는 N+3 중 어느 큰 쪽의 비트폭을 갖는 심볼 코드를 생성하고, 상기 심볼 코드를 병렬 데이터에서 직렬 데이터로 변환하여 전송로에 출력함으로써 데이터 전송을 하는 데이터 전송 방법이 제공된다.
본 발명의 일 관점에 의하면, 비트폭 M(M은 3 이상의 자연수)의 데이터 캐릭터와 비트폭 N(N은 1 이상의 자연수)의 제어 캐릭터를 다중화하는 제1 회로와, 상기 제1 회로의 출력에 상기 제어 캐릭터가 유효한지의 여부를 나타내는 제어 캐릭터 유효 신호를 부가하여 M+1 또는 N+3 중 어느 큰 쪽의 비트폭을 갖는 심볼 코드를 생성하는 제2 회로를 포함하고, 상기 심볼 코드는 병렬 데이터에서 직렬 데이터로 변환되어 전송로에 출력되는 것인 코드 변환 회로가 제공된다.
본 발명의 일 관점에 의하면, 비트폭 M(M은 3 이상의 자연수)의 데이터 캐릭터와 비트폭 N(N은 1 이상의 자연수)의 제어 캐릭터를 다중화하는 제1 회로와, 상기 제1 회로의 출력에 상기 제어 캐릭터가 유효한지의 여부를 나타내는 제어 캐릭터 유효 신호를 부가하여 M+1 또는 N+3 중 어느 큰 쪽의 비트폭을 갖는 심볼 코드를 생성하는 제2 회로를 갖는 코드 변환 회로와, 상기 심볼 코드를 병렬 데이터에서 직렬 데이터로 변환하여 전송로에 출력하는 변환 회로를 포함하는 장치가 제공된다.
개시한 데이터 전송 방법, 코드 변환 회로 및 장치에 의하면, 직렬 전송 시의 버스의 오버헤드를 감소시켜, 버스의 대역폭을 유효 이용하는 것이 가능해진다.
도 1은 D 캐릭터를 설명하는 도면이다.
도 2는 K 캐릭터를 설명하는 도면이다.
도 3은 8B10B 코드 변환 회로를 포함하는 직렬 버스의 데이터의 흐름을 설명하는 도면이다.
도 4는 본 발명의 일 실시예에서의 코드 변환 회로를 설명하는 도면이다.
도 5는 심볼 코드의 정의의 일례를 설명하는 도면이다.
도 6은 제어 캐릭터의 정의의 일례를 설명하는 도면이다.
도 7은 제어 캐릭터의 정의의 다른 예를 설명하는 도면이다.
도 8은 실시예에서의 데이터 전송 방법, 코드 변환 회로 및 장치를 적용할 수 있는 정보 처리 장치를 나타내는 블록도이다.
도 9는 송신측 장치 내의 코드 변환 회로와 수신측 장치 내의 코드 변환 회로를 나타내는 블록도이다.
도 10은 송신측 코드 변환 회로의 입출력을 설명하는 도면이다.
도 11은 송신측 코드 변환 회로의 구성의 일례를 나타내는 회로도이다.
도 12는 송신측 코드 변환 회로의 동작을 설명하기 위한 진리값표를 나타내는 도면이다.
도 13은 수신측 코드 변환 회로의 입출력을 설명하는 도면이다.
도 14는 수신측 코드 변환 회로의 구성의 일례를 나타내는 회로도이다.
도 15는 수신측 코드 변환 회로의 동작을 설명하기 위한 진리값표를 나타내는 도면이다.
도 16은 본 발명의 다른 실시예에서의 송신측 장치 내의 코드 변환 회로 및 수신측 장치 내의 코드 변환 회로를 나타내는 블록도이다.
도 17은 각 레인의 비트 할당의 일례를 설명하는 도면이다.
도 18은 72 비트 병렬 데이터 버스의 비트 할당의 일례를 설명하는 도면이다.
개시한 데이터 전송 방법, 코드 변환 회로 및 장치에서는, 직렬 병렬 변환을 수반하는 직렬 전송에 있어서 원하는 전송 효율(또는 송신 효율)을 실현하기 위해, 전송(또는 송신)하는 캐릭터에 대하여 제어 캐릭터가 유효한지의 여부를 나타내는 제어 캐릭터 유효 신호를 부가함으로써 데이터 캐릭터와 제어 캐릭터를 다중화하여 전송(또는 송신)한다.
데이터 캐릭터를 전송하는 경우는, 데이터 캐릭터의 정해진 비트의 반전값을 제어 캐릭터 유효 신호 비트의 값으로 하고, 제어 캐릭터를 전송하는 경우는 제어 캐릭터 유효 신호 비트와 데이터 캐릭터의 정해진 비트를 동일한 값으로 하여, 이들 이외의 비트로 제어 캐릭터를 표현한다.
이에 따라, 다중화된 코드를 효율적으로 AC 전송할 수 있어, 직렬 전송 시의 버스의 오버헤드를 감소시켜, 버스의 대역폭을 유효 이용하는 것이 가능해진다.
AC 전송이란, AC 특성을 가진 신호를 사용하여 데이터를 전송하는 것을 말한다. 또, AC 특성이란, 전송로를 통해 전송되는 데이터에 관해, 전송되는 데이터 캐릭터에 의존하지 않고, 예를 들어 항상 데이터 캐릭터의 모든 비트가 0(All "0")이라 하더라도, 코드 변환후의 심볼 코드에는 반드시 값 「0」과 값 「1」이 포함되어 있어, 비트값의 천이가 반드시 1회 이상 발생하는 것이 보증되는 것을 말한다. 즉, 데이터가 AC 특성을 갖는다는 것은, 전송로를 통해 전송되는 데이터가 이러한 교류 특성을 갖고 있는 것을 말한다.
이하에, 개시한 데이터 전송 방법, 코드 변환 회로 및 장치의 각 실시예를 도면과 함께 설명한다.
실시예
도 4는 본 발명의 일 실시예에서의 코드 변환 회로를 설명하는 도면이다. 도 4에 나타내는 코드 변환 회로(11)에는, 예를 들어 전송 데이터(또는 송신 데이터)로서의 9 비트의 데이터 캐릭터(D 캐릭터) D0?D8, 4 비트의 제어 캐릭터(K 캐릭터) K0?K3, 및 제어 캐릭터 유효 신호가 입력된다. 또, 코드 변환 회로(11)로부터는, 10 비트의 심볼 코드 Cntl, S0?S8이 출력된다. 이하의 설명에서는, 편의상 D 캐릭터의 비트 Bit0을 D0 또는 D_Bit0, K 캐릭터의 비트 Bit0을 K0 또는 K_Bit0, 심볼 코드의 비트 Bit0을 S0 또는 S_Bit0로 표현한다.
도 5는 심볼 코드의 정의의 일례를 설명하는 도면이다. 컨트롤 비트 Cntl이 1이고 심볼 코드의 비트 S_Bit0가 0인 경우, 10 비트의 심볼 코드의 심볼은 D 캐릭터이다. 이 경우, D 캐릭터의 비트 Bit0의 값은 0이고, 비트 S_Bit1?S_Bit8로 D 캐릭터의 비트 D_Bit1?D_Bit8의 값을 나타낸다. 컨트롤 비트 Cntl이 0이고 심볼 코드의 비트 S_Bit0이 1인 경우, 10 비트의 심볼 코드의 심볼은 D 캐릭터이다. 이 경우, D 캐릭터의 비트 Bit0의 값은 1이고, 비트 S_Bit1?S_Bit8로 D 캐릭터의 비트 D_Bit1?D_Bit8의 값을 나타낸다. 컨트롤 비트 Cntl이 1이고 심볼 코드의 비트 S_Bit0가 1인 경우, 10 비트의 심볼 코드의 심볼은 K 캐릭터이다. 이 경우, 비트 S_Bit2?S_Bit8로 최대 128 종류의 코드를 표현하고, 비트 S_Bit1은 비트 S_Bit2의 반전값을 나타낸다. 또, 컨트롤 비트 Cntl이 0이고 심볼 코드의 비트 S_Bit0가 0인 경우, 코드가 무효(Invalid) 심볼인 것을 나타낸다.
도 6은 제어 캐릭터의 정의의 일례를 설명하는 도면이고, 도 7은 제어 캐릭터의 정의의 다른 예를 설명하는 도면이다. 도 6 및 도 7은 각 제어 캐릭터의 명칭에 대응하는 10 비트의 심볼 코드 Cntl, S_Bit0?S_Bit8을 나타낸다. 도 6은 제어 캐릭터 1?128의 심볼 코드를 나타내고, 도 7은 제어 캐릭터 1?16의 심볼 코드를 나타낸다. 도 7의 제어 캐릭터는 도 6의 제어 캐릭터에 비하면 용장성이 높다.
도 4?도 7에서는, 일례로서 9 비트폭(또는 비트 길이)의 데이터 캐릭터와, 4 비트폭(또는 비트 길이)의 제어 캐릭터를 전송하는 것으로 했지만, 데이터 캐릭터의 비트폭은 9 비트에 한정되지 않고, 3 비트폭 이상의 정수값이면 된다. 데이터 캐릭터의 비트폭을 M(M은 3 이상의 자연수), 제어 캐릭터의 비트폭을 N(N은 1 이상의 자연수)으로 한 경우, 심볼 코드의 비트폭은 M+1 또는 N+3 중 어느 큰 쪽의 수치가 된다.
도 4?도 7의 예에서는, 9 비트폭의 데이터 캐릭터에 대하여 1 비트의 컨트롤 비트 Cntl을 부가하기 때문에, 직렬 버스에서 전송되는 하나의 심볼 코드 Cntl, S0?S8은 10 비트폭이 된다. 또한, 제어 캐릭터는 PCI Express 사양과 마찬가지로 도 7의 경우라면 12 종류 이상, 최대 16 종류 전송되고, 도 6의 경우라면 12 종류 이상, 최대 128 종류 전송된다.
송신측 장치에 있어서 데이터 캐릭터를 전송하는 경우는 도 5에 정의된 바와 같이, 데이터 캐릭터의 정해진 비트 D_Bit0의 값의 반전값을 컨트롤 비트 Cntl의 값으로 한다. 제어 캐릭터를 송신하는 경우는 컨트롤 비트 Cntl와 데이터 캐릭터의 정해진 비트 D_Bit0의 위치를 동일하게 하고, 정해진 비트 D_Bit0 이외의 비트로 제어 캐릭터를 표현한다. 도 5에서는, 제어 캐릭터를 송신하는 경우는 컨트롤 비트 Cntl와 심볼 코드의 비트 S_Bit0의 값을 모두 1로 설정했지만, 양 비트의 값을 0으로 해도 되는 것은 물론이다. 제어 캐릭터의 비트 K_Bit0의 반전값을 심볼 코드의 비트 S_Bit1의 값으로 하여, S_Bit2부터 S_Bit8의 7 비트로 128 종류의 제어 캐릭터를 표현한다.
도 6에 나타내는 제어 캐릭터의 정의의 경우, 최대 128 종류의 제어 캐릭터를 정의할 수 있다. 실제로 필요로 하는 제어 캐릭터의 종류가 128 종류보다 대폭 적은 경우, 예를 들어 PCI Express와 같이 12 종류만 필요로 하는 경우, 도 7에 나타내는 제어 캐릭터의 정의와 같이 용장 비트를 설정함으로써 내고장성을 향상시킬 수도 있다.
도 7은 4 비트의 제어 캐릭터를 10 비트의 심볼 코드에 할당한 예를 나타낸다. 도 7의 예에서는, 컨트롤 비트 Cntl와 심볼 코드의 비트 S_Bit0의 값을 1로 설정하고, 제어 캐릭터의 K_Bit0부터 K_Bit3을 각각 심볼 코드의 비트 S_Bit1, S_Bit3, S_Bit5, S_Bit7에 할당하고, 심볼 코드의 비트 S_Bit2, S_Bit4, S_Bit6, S_Bit8에는 각각 심볼 코드의 비트 S_Bit1, S_Bit3, S_Bit5, S_Bit7의 값을 반전한 값을 세팅한다.
한편, 수신측 장치에서는, 도 5에 따라서 컨트롤 비트 Cntl와 심볼 코드의 비트 S_Bit0의 값을 비교한다. 비교의 결과가 일치하지 않으면, 수신된 심볼 코드는 데이터 캐릭터라고 인식하고, 심볼 코드의 비트 S_Bit0부터 S_Bit8을 데이터 캐릭터의 비트 D_Bit0부터 D_Bit8로서 출력한다. 또, 비교의 결과가 일치하고, 그리고 양 비트 Cntl, S_Bit0 모두 값이 1이면, 수신측 장치는 수신된 심볼 코드가 제어 캐릭터라고 인식한다.
도 8은 본 실시예에서의 데이터 전송 방법, 코드 변환 회로 및 장치를 적용할 수 있는 정보 처리 장치를 나타내는 블록도이다. 도 8에 나타내는 정보 처리 장치(20)는 복수의 시스템 보드(21-0?21-n)(n은 1 이상의 자연수), 크로스바 장치(22), 복수의 입출력(IO : Input and Output) 장치(23-0?23-n), 크로스바 버스(24), 및 IO 버스(25)를 갖는다. 도 8의 예에서는, 각 시스템 보드(21-0?21-n)는 동일한 구조를 가지며, 복수의 CPU(Central Processing Unit)(211-0?211-m)(m은 n에 의존하지 않는 1 이상의 자연수), 메모리(212), 메모리 제어 장치(213), CPU 버스(214), 및 메모리 버스(215)를 갖는다. 각 시스템 보드(21-0?21-n)에서, 각 CPU(211-0?211-m)는 CPU 버스(214)를 통해 메모리 제어 장치(213)에 접속되고, 메모리(212)는 메모리 버스(215)를 통해 메모리 제어 장치(213)에 접속된다. 각 시스템 보드(21-0?21-n)는 크로스바 버스(24)를 통해 크로스바 장치(22)에 접속되고, 각 IO 장치(23-0?23-n)는 IO 버스(25)를 통해 크로스바 장치(22)에 접속된다.
각 CPU(211-0?211-m)와 메모리 제어 장치(213) 사이의 데이터 전송은 각 CPU(211-0?211-m) 내의 코드 변환 회로(도시하지 않음)와 메모리 제어 장치(213) 내의 코드 변환 회로(도시하지 않음)의 사이에서, CPU 버스(214)를 통해 행해진다. 각 시스템 보드(21-0?21-n)에서, 메모리(212)와 메모리 제어 장치(213) 사이의 데이터 전송은 메모리(212)와 메모리 제어 장치(213) 내의 코드 변환 회로(도시하지 않음)의 사이에서, 메모리 버스(215)를 통해 행해진다. 각 시스템 보드(21-0?21-n)에서, 메모리 제어 장치(213)와 크로스바 장치(22) 사이의 데이터 전송은 메모리 제어 장치(213) 내의 코드 변환 회로(도시하지 않음)와 크로스바 장치(22) 내의 코드 변환 회로(도시하지 않음)의 사이에서, 크로스바 버스(24)를 통해 행해진다. 또, 크로스바 장치(22)와 각 IO 장치(23-0?23-n) 사이의 데이터 전송은 크로스바 장치(22) 내의 코드 변환 회로(도시하지 않음)와 각 IO 장치(23-0?23-n) 내의 코드 변환 회로(도시하지 않음)의 사이에서, IO 버스(25)를 통해 행해진다.
도 9는 송신측 장치 내의 코드 변환 회로와 수신측 장치 내의 코드 변환 회로를 나타내는 블록도이다. 송신측 장치 및 수신측 장치는 각각, CPU(211-0?211-m), 메모리 제어 장치(213), 크로스바 장치(22) 및 IO 장치(23-0?23-n) 내에 설치된다. 여기서는 설명의 편의상, 송신측 장치(31)는 시스템 보드(21-0) 내의 메모리 제어 장치(213)에 설치된 것이며, 수신측 장치(32)는 크로스바 장치(22)에 설치된 것이라고 한다. 따라서, 송신측 장치(31)와 수신측 장치(32)를 접속하는 프린트판 배선 등의 차동형 전송로(33)는 이 예에서는 크로스바 버스(24)로 형성된다.
도 9에 나타낸 바와 같이, 송신측 장치(31)는 클록 발진기(311), 데이터 송신 회로(312), LFSR(Linear Feedback Shift Register)를 이용한 스크램블러(313), 송신측 제어 회로(314), 송신측 코드 변환 회로(315), 병렬 직렬 변환 회로(316), 및 출력 드라이버(317)를 갖는다. 클록 발진기(311)가 출력하는 클록은 데이터 송신 회로(312), 송신측 제어 회로(314), 송신측 코드 변환 회로(315) 및 병렬 직렬 변환 회로(316)에 입력된다. 송신측 코드 변환 회로(315)에는, 스크램블러(313)로부터의 데이터 캐릭터와, 송신측 제어 회로(314)로부터의 제어 캐릭터 및 제어 캐릭터 유효 신호가 입력된다. 송신측 제어 회로(314)의 출력은 데이터 송신 회로(312)에도 입력된다. 송신측 코드 변환 회로(315)가 출력하는 병렬 데이터는 병렬 직렬 변환 회로(316)에 의해 직렬 데이터로 변환되어 출력 드라이버(317)에 입력된다.
한편, 수신측 장치(32)는 입력 리시버(321), 클록 재생 회로(322), 직렬 병렬 변환 회로(323), 수신측 코드 변환 회로(324), LFSR를 이용한 디스크램블러(325), 수신측 제어 회로(326), 및 데이터 수신 회로(327)를 갖는다. 클록 재생 회로(322)에 의해 입력 리시버(321)가 출력하는 직렬 데이터로부터 재생된 클록은 직렬 병렬 변환 회로(323), 수신측 코드 변환 회로(324), 수신측 제어 회로(326), 및 데이터 수신 회로(327)에 입력된다. 입력 리시버(321)가 출력하는 직렬 데이터는 직렬 병렬 변환 회로(323)에 의해 병렬 데이터로 변환되어 수신측 코드 변환 회로(324)에 입력된다. 수신측 코드 변환 회로(324)가 출력하는 데이터 캐릭터는 디스크램블러(325)에 입력된다. 수신측 코드 변환 회로(324)가 출력하는 제어 캐릭터, 제어 캐릭터 유효 신호, 및 데이터 유효 신호는 수신측 제어 회로(326)에 입력된다. 디스크램블러(325) 및 수신측 제어 회로의 출력은 데이터 수신 회로(327)에 입력된다.
데이터 송신 회로(312) 및 데이터 수신 회로(327)는, 예를 들어 PCI Express의 데이터 링크층에 해당한다. 스크램블러(313) 및 디스크램블러(325)는 전송 데이터를 난수화함으로써 차동형 전송로(33)에서 발생하는 EMI(Electro Magnetic Interference)를 저감하기 위해 설치되어 있지만, 생략해도 좋다.
송신측 제어 회로(314)는 송신측 코드 변환 회로(315)를 포함하는 송신측 장치(31) 전체의 상태를 제어한다. 마찬가지로, 수신측 제어 회로(326)는 수신측 코드 변환 회로(324)를 포함하는 수신측 장치(32) 전체의 상태를 제어한다. 제어 회로(314, 326)의 제어 동작의 일례로서 초기화 처리가 있다. 초기화 처리에서는, K 캐릭터라고 불리는 제어 캐릭터를 이용한 처리가 이루어진다. 초기화 처리가 필요한 경우에, 송신측 장치(31)로부터 수신측 장치(32)에 대하여 초기화를 지시하는 K 캐릭터가 보내져 초기화 시퀀스가 실행된다. K 캐릭터는 이 초기화 시퀀스에 필요한 제어 캐릭터이다. 초기화 처리 자체는 주지되어 있으며, 예를 들어 비특허문헌 1에 기재되어 있기 때문에, 본 명세서에서는 초기화 처리에 관한 상세한 설명은 생략한다.
송신측 장치(31)의 병렬 직렬 변환 회로(316)는 송신측 코드 변환 회로(315)로부터 출력된 병렬 데이터를 직렬 데이터로 변환한다. 한편, 수신측의 직렬 병렬 변환 회로(323)는 입력 리시버(321)가 수신한 직렬 데이터를 병렬 데이터로 변환하여 수신측 코드 변환 회로(324)에 입력한다. 병렬 직렬 변환 회로(316) 및 직렬 병렬 변환 회로(323)는, 예를 들어 고속 시프트 레지스터로 형성될 수 있다.
출력 드라이버(317), 입력 리시버(321), 및 이들을 접속하는 차동형 전송로(33), 송신측 장치(31)와 수신측 장치(32)의 사이(예를 들어 LSI 간)에서 직렬 데이터를 전송하는 회로이다. 직렬 데이터를 전송하는 회로 자체는 주지되어 있으므로, 본 명세서에서는 직렬 데이터를 전송하는 회로에 관한 상세한 설명은 생략한다.
다음으로, 송신측 장치(31)로부터 수신측 장치(32)로의 데이터 전송을 설명한다. 데이터 송신 회로(312)로부터는, 송신측 제어 회로(314)로부터의 전송로 유효 신호에 따라서 병렬 데이터가 출력된다. 병렬 데이터는 스크램블러(313)에 의해 난수화되어 데이터 캐릭터로서 송신측 코드 변환 회로(315)에 공급된다. 송신측 제어 회로(314)가 제어 캐릭터를 출력하는 경우는, 송신측 제어 회로(314)가 제어 캐릭터 유효 신호와 함께 코드화된 제어 캐릭터를 송신측 코드 변환 회로(315)에 공급한다.
스크램블러(313)는 전자 방사 노이즈의 주파수 성분을 확산시켜 EMI 대책을 취하기 쉽게 하기 위한 목적으로 설치된다. 보다 구체적으로는, 전송하는 D 캐릭터가 특정한 값의 연속인 경우, 예를 들어 값 「0」과 값 「1」의 연속인 경우, 스크램블러를 갖지 않는 송신 회로의 경우, 전송로 상에서는 특정한 주파수 성분을 갖는 전자 방사 노이즈가 발생하기 쉬워진다. 이와 같은 노이즈는 일반적으로는 다른 장치에 악영향을 미치기 쉽다. 스크램블러(313)는 D 캐릭터가 연속하는 동일한 값이라 하더라도, 유사 난수화함으로써 특정한 주파수 성분을 갖는 전자 방사 노이즈의 발생을 어렵게 하는 효과가 있고, 이것을 목적으로 설치된다.
송신측 코드 변환 회로(315)에서는, 스크램블러(313)로부터의 데이터 캐릭터 및 송신측 제어 회로(314)로부터의 제어 캐릭터와 제어 캐릭터 유효 신호를, 심볼 코드라고 불리는 병렬 데이터로 변환하여 병렬 직렬 변환 회로(316)에 공급한다. 병렬 직렬 변환 회로(316)에서는, 클록 발진기(311)가 출력하는 클록(송신 클록)에 동기하여 병렬 데이터를 직렬 데이터로 변환하여 출력한다. 클록 발진기(311)는 이 송신 클록 외에, 병렬 데이터의 전송을 제어하는 저속 클록도 출력하여 송신측 장치(31) 내의 각 부분에 공급한다. 저속 클록은 송신 클록에 비해 저속, 즉 주파수가 낮다.
병렬 직렬 변환 회로(316)로부터 출력된 직렬 데이터는 출력 드라이버(317) 및 차동형 전송로(33)를 통해 수신측 장치(32)에 입력된다. 입력 리시버(321)는 수신된 직렬 데이터를 클록 재생 회로(322) 및 직렬 병렬 변환 회로(323)에 출력한다. 도 9에서는 차동형 전송로(33)가 이용되지만, 차동형 전송로(33) 이외의 전송로를 이용해도 좋은 것은 물론이다.
클록 재생 회로(322)는 PLL(Phase Locked Loop) 회로를 내장하고 있고, 심볼 데이터 중에 최소 1회 존재하는 비트 천이의 엣지를 검출해서 내장 PLL 회로를 동기화하여 수신 클록을 재생한다. 이와 같이 수신 클록을 재생하기 위해서는, 심볼 데이터 중에 비트 천이가 존재해야 한다. 이와 같이 하여 수신 클록을 재생하는 방법은 CDR(Clock Data Recovery) 또는 임베디드 클록(Embedded Clock)이라고 불리며, 고속 직렬 전송에 일반적으로 이용되는 기술이다.
직렬 병렬 변환 회로(323)에서는, 재생된 수신 클록에 기초해서 입력 리시버(321)로부터의 직렬 데이터를 심볼 코드(병렬 데이터)로 변환하여 수신측 코드 변환 회로(324)에 출력한다. 수신측 코드 변환 회로(324)는 심볼 코드를 디코딩해서 심볼의 타입(종류)를 검출하고, 데이터 캐릭터 또는 제어 캐릭터와 각각의 유효 신호를 생성한다. 즉, 수신측 코드 변환 회로(324)는 데이터 캐릭터와 데이터 유효 신호, 또는 제어 캐릭터와 제어 캐릭터 유효 신호를 생성한다. 데이터 캐릭터는 디스크램블러(325)에 출력되고, 제어 캐릭터, 제어 캐릭터 유효 신호 및 데이터 유효 신호는 수신측 제어 회로(326)에 출력된다.
심볼 코드를 디코딩할 때, 심볼 에러라고 불리는 특정한 에러 패턴을 검출하여 에러 검출 신호를 구할 수도 있다. 이 경우, 에러 검출 신호는 데이터 캐릭터 또는 제어 캐릭터의 유효 신호와 함께 수신측 제어 회로(326)에 통지하면 된다.
디스크램블러(325)는 LFSR를 이용해서 데이터 캐릭터의 난수화를 해제하여 데이터 캐릭터를 데이터 수신 회로(327)에 출력한다. 수신측 제어 회로(326)는 제어 캐릭터 및 에러 신호에 따라서 각각의 처리를 하지만, 이들 처리 자체는 본 실시예의 요지와는 직접 관계가 없기 때문에, 본 명세서에서는 이들 처리에 관한 상세한 설명은 생략한다.
본 실시예에서는, 종래의 8B10B 방식의 경우와 마찬가지로 K 캐릭터를 정의할 수 있고, 도 7의 경우라면 최대 16 종류의 K 캐릭터를 정의할 수 있다. 이 때문에, 물리층 제어, DLLP 등의 링크층 제어에는, 8B10B 방식의 제어를 이용할 수 있다. 따라서, 제어 회로(314, 326)는 8B10B 방식의 경우에 사용하는 제어 회로에 기초하여 설계할 수 있다.
다음으로, 도 10, 도 11 및 도 12를 이용하여, 송신측 코드 변환 회로(315)의 보다 상세한 동작을 설명한다. 여기서는 일례로서, 데이터 캐릭터의 비트폭이 9 비트, 제어 캐릭터의 비트폭이 4 비트, 심볼 코드의 비트폭이 10 비트인 경우에 관해 설명하지만, 데이터 캐릭터, 제어 캐릭터 및 심볼 코드가 이들 비트폭에 한정되지 않는 것은 전술한 바와 같다.
송신측 코드 변환 회로(315)는 데이터 캐릭터와 제어 캐릭터 중 하나를 선택하여 제어 캐릭터 유효 신호와 다중화하고, 데이터 캐릭터 및 제어 캐릭터가 수신측 장치(32) 내에서 분리가 가능하도록, 특정한 비트 패턴을 심볼 코드에 매립한다. 이 특정한 비트 패턴은 클록 회복을 위한 비트 천이의 발생을 보증하는 것이기도 하다.
도 10은 송신측 코드 변환 회로(315)의 입출력을 설명하는 도면이다. 송신측 코드 변환 회로(315)의 입력은 9 비트의 데이터 캐릭터, 4 비트의 제어 캐릭터 및 제어 캐릭터 유효 신호를 포함한다. 또, 송신측 코드 변환 회로(315)의 출력은 10 비트의 병렬 데이터이고, 이 병렬 데이터가 심볼 코드로서 병렬 직렬 변환 회로(316)에 입력된다.
도 11은 송신측 코드 변환 회로(315)의 구성의 일례를 나타내는 회로도이다. 송신측 코드 변환 회로(315)는 도 11에 나타낸 바와 같이 접속된 인버터 회로(41-1?41-5) 및 2대1 멀티플렉서(2:1 MUX : Multiplexer)(42-1?42-10)를 갖는다. 도 11에서, Kcode_ENBL_in은 제어 캐릭터 유효 신호를 나타내고, 논리 온(예를 들어, 하이 레벨)인 경우에 제어 캐릭터가 유효하다는 것을 나타낸다. 또, Kcode_in[0:3]은 제어 캐릭터 입력을 나타내고, Dcode_in[0:8]은 데이터 캐릭터 입력을 나타낸다. 또한, Output Cntl Bit 및 Output Bit[0:8]은 10 비트의 심볼 코드 출력을 나타낸다. 각 멀티플렉서(42-1?42-10)는 제어 캐릭터 유효 신호 Kcode_ENBL_in이 온(ON)인 경우에 제어 캐릭터 입력 Kcode_in측의 입력을 선택하여 출력하고, 오프(OFF)인 경우에 데이터 캐릭터 입력 Dcode_in측의 입력을 선택하여 출력한다.
멀티플렉서(42-1?42-10)에서, 제어 캐릭터 입력 Kcode_in측의 입력이 선택된 경우, Output Cntl Bit 및 Output Bit[0]에는 값 「1」이 출력된다. 이 값 「1」은 심볼 코드 출력이 제어 캐릭터인 것을 수신측에 통지하는 값이다. 또, Output Bit[1]에는 제어 캐릭터 입력 Kcode_in[0]의 값, Output Bit[2]에는 제어 캐릭터 입력 Kcode_in[0]의 값을 인버터 회로(41-2)에서 반전한 값이 출력된다. 이후, Output Bit[3]에는 제어 캐릭터 입력 Kcode_in[1]의 값, Output Bit[4]에는 제어 캐릭터 입력 Kcode_in[1]의 값을 인버터 회로(41-3)에서 반전한 값, Output Bit[5]에는 제어 캐릭터 입력 Kcode_in[2]의 값, Output Bit[6]에는 제어 캐릭터 입력 Kcode_in[2]의 값을 인버터 회로(41-4)에서 반전한 값, Output Bit[7]에는 제어 캐릭터 입력 Kcode_in[3]의 값, Output Bit[8]에는 제어 캐릭터 입력 Kcode_in[3]의 값을 인버터 회로(41-5)에서 반전한 값이 출력된다.
또, 멀티플렉서(42-1?42-10)에서, 데이터 캐릭터 입력 Dcode_in측의 입력이 선택된 경우, Output Cntl Bit에는 Dcode_in[0]의 값을 인버터 회로(41-1)에서 반전한 값, Output Bit[0]에는 Dcode_in[0]의 값이 출력된다. 이들 값, 즉 Output Cntl Bit의 값과 Output Bit[0]의 값이 일치하지 않는 상태는, 심볼 코드 출력이 데이터 캐릭터인 것을 수신측에 통지하는 값이다. 또, Output Bit[1:8]에는 데이터 캐릭터 입력 Dcode_in[1:8]의 값이 출력된다.
Output Cntl Bit에 출력되는 값은, 이 예에서는 Dcode_in[0]로 하고 있지만, 수신측 코드 변환 회로(324)와 합의가 취해진 경우에는, 다른 데이터 비트를 선택하는 것도 가능하다.
도 12는 송신측 코드 변환 회로(315)의 동작을 설명하기 위한 진리값표를 나타내는 도면이고, 도 11의 송신측 코드 변환 회로(315)의 논리 동작 조건을 나타내고 있다. 도 12에서, ^Kcode_in[0]은 Kcode_in[0]의 값의 반전값, ^Kcode_in[1]은 Kcode_in[1]의 값의 반전값, ^Kcode_in[2]는 Kcode_in[2]의 값의 반전값, ^Kcode_in[3]은 Kcode_in[3]의 값의 반전값, ^Dcode_in[0]은 Dcode_in[0]의 값의 반전값을 각각 나타낸다.
이와 같이, 송신측 코드 변환 회로(315)는 종래의 룩업 테이블을 이용하는 방법과 비교하면, 회로량을 감소시킬 수 있고 저비용으로 실현될 수 있다는 것을 알 수 있다. 또한, 변환에 필요한 회로의 지연 시간은 인버터 회로와 2대1 멀티플렉서(또는 셀렉터)의 지연 시간의 합계치이므로, 종래의 방법과 비교하면 지연 시간을 대폭 단축할 수 있고, 그 결과 고속 변환 동작이 가능하다는 것을 알 수 있다.
다음에, 도 13, 도 14 및 도 15를 이용하여, 수신측 코드 변환 회로(324)의 보다 상세한 동작을 설명한다. 여기서는 일례로서, 송신측 코드 변환 회로(315)의 경우와 마찬가지로 데이터 캐릭터의 비트폭이 9 비트, 제어 캐릭터의 비트폭이 4 비트, 심볼 코드의 비트폭이 10 비트인 경우에 관해 설명하지만, 데이터 캐릭터, 제어 캐릭터 및 심볼 코드가 이들 비트폭에 한정되지 않는 것은 전술한 바와 같다. 단, 수신측 코드 변환 회로(324)에서의 데이터 캐릭터, 제어 캐릭터 및 심볼 코드의 비트폭은 송신측 코드 변환 회로(315)에서의 비트폭과 같아야 한다.
수신측 코드 변환 회로(324)는 심볼 코드에 매립되어 있는 특정한 비트 패턴을 검출하고, 특정한 비트 패턴에 기초하여 다중화되어 있는 데이터 캐릭터와 제어 캐릭터를 분리한다. 수신측 코드 변환 회로(324)는 심볼 에러라고 불리는 특정한 에러 패턴도 검출한다.
도 13은 수신측 코드 변환 회로(324)의 입출력을 설명하는 도면이다. 수신측 코드 변환 회로(324)의 입력은 직렬 병렬 변환 회로(323)로부터의 심볼 코드이다. 또, 수신측 코드 변환 회로(324)의 출력은 9 비트폭의 데이터 캐릭터, 4 비트폭의 제어 캐릭터, 데이터 캐릭터 유효 신호, 제어 캐릭터 유효 신호, 및 심볼 에러를 검출함으로써 얻어지는 에러 검출 신호를 포함한다.
도 14는 수신측 코드 변환 회로(324)의 구성의 일례를 나타내는 회로도이다. 수신측 코드 변환 회로(324)는 도 14에 나타낸 바와 같이 접속된 부정 배타적 논리합(ENOR : Exclusive-NOR) 회로(51), 부정 논리합(NOR) 회로(52), 배타적 논리합(EOR) 회로(53-1?53-4), 논리곱(AND) 회로(54-1?54-5), 및 논리합(OR) 회로(55)를 갖는다. 도 14에서, Input Cntl Bit 및 Input Bit[0:8]은 합계 10 비트폭의 심볼 코드 입력, Dcode_out[0:8]은 데이터 캐릭터 출력, Kcode_out[0:3]은 제어 캐릭터 출력을 나타낸다. 또한, Dcode_ENBL_out은 Dcode_out[0:8]이 유효하다는 것을 나타내는 데이터 캐릭터 유효 신호, Kcode_ENBL_out은 Kcode_out[0:3]이 유효하다는 것을 나타내는 제어 캐릭터 유효 신호, Symbol_ERROR_out은 수신된 심볼 코드가 규정 이외의 코드인 것을 나타내는 에러 검출 신호이다. 이 에러 검출 신호가 온(예를 들어, 하이 레벨)이면, 수신측 코드 변환 회로(324)로부터 출력되는 다른 모든 출력 신호는 수신측 제어 회로(326)에서 무시된다.
수신측 코드 변환 회로(324)에서, 심볼 코드 입력의 비트 Input Cntl Bit, Input Bit[0]은 심볼 코드의 정의에 따라서 디코딩된다. 양 비트 Input Cntl Bit, Input Bit[0]이 일치하지 않는 경우, 도 14의 ENOR 회로(51)에서 이 불일치가 검출되어 데이터 캐릭터 유효 신호 Dcode_ENBL_out이 온이 된다. 또, 양 비트 Input Cntl Bit, Input Bit[0]이 모두 값 「1」인 경우, 도 14의 AND 회로(54-1)에서 이 상태가 검출되어 제어 캐릭터 유효 신호 Kcode_ENBL_out이 온이 된다. 양 비트 Input Cntl Bit, Input Bit[0]이 이들 이외인 경우, 즉 양 비트 Input Cntl Bit, Input Bit[0]이 모두 값 「0」인 경우, 이 비트 패턴은 심볼 코드 에러이므로, 도 14의 NOR 회로(52)에 의해 이 심볼 코드 에러가 검출되어 OR 회로(55)가 출력하는 에러 검출 신호 Symbol_ERROR_out이 온이 된다. 또한, 제어 캐릭터 유효 신호 Kcode_ENBL_out이 온, 즉 수신된 심볼 코드가 제어 캐릭터인 경우, 심볼 코드의 정의에 따라서 Input Bit[1]과 Input Bit[2], Input Bit[3]과 Input Bit[4], Input Bit[5]와 Input Bit[6], Input Bit[7]과 Input Bit[8]이 각각 불일치하는지의 여부를 EOR 회로(53-1?53-4)에 의해 검사한다. 이 검사의 결과, EOR 회로(53-1?53-4) 중 어느 것에서 불일치가 검출되면, 심볼 코드 에러이므로, AND 회로(54-2?54-5) 및 OR 회로(55)를 통해 출력되는 에러 검출 신호 Symbol_ERROR_out이 온이 된다.
심볼 코드 입력의 비트 Input Bit[0:8]의 값은 그대로 데이터 캐릭터의 비트 Dcode_out[0:8]의 값이 되고, 또한 비트 Input Bit[1,3,5,7]의 값은 그대로 제어 캐릭터의 비트 Kcode_out[0:3]의 값이 된다.
도 15는 수신측 코드 변환 회로(324)의 동작을 설명하기 위한 진리값표를 나타내는 도면이고, 도 14의 수신측 코드 변환 회로(324)의 논리 동작 조건을 나타내고 있다.
이와 같이, 수신측 코드 변환 회로(324)는 종래의 룩업 테이블을 이용하는 방법과 비교하면, 회로량을 감소시킬 수 있고 저비용으로 실현 가능할 수 있다는 것을 알 수 있다. 또한, 변환에 필요한 회로의 지연 시간은 최대 ENOR 회로, NOR 회로, EOR 회로, AND 회로 및 OR 회로의 지연 시간의 합계치이므로, 종래의 방법과 비교하면 지연 시간을 대폭 단축할 수 있고, 그 결과 고속 변환 동작이 가능하다는 것을 알 수 있다.
다음으로, 본 발명의 다른 실시예에 관해 도 16과 함께 설명한다. 도 16은 본 발명의 다른 실시예에서의 송신측 장치 내의 코드 변환 회로 및 수신측 장치 내의 코드 변환 회로를 나타내는 블록도이다.
코드 변환 회로가 고속 직렬 인터페이스 회로에 적용되어, 보다 고대역의 버스 성능이 필요한 경우, 복수의 직렬 인터페이스를 조합하여 하나의 논리 인터페이스를 형성하는 경우가 있다. PCI Express 사양에서는, 단독의 직렬 인터페이스를 레인(Lane)이라 불리는 단위로 호칭하지만, 이 PCI Express 사양에서는 1 레인 구성 외에, 2 레인, 4 레인, 8 레인, 12 레인, 16 레인 및 32 레인의 구성이 정의되어 있다. 이하의 설명에서는, 이 PCI Express 사양과 마찬가지로 단독의 직렬 인터페이스를 1 레인이라 호칭하는 것으로 한다.
도 16은 코드 변환 회로를 포함하는 직렬 인터페이스 회로를 8개 조합하여 하나의 논리 인터페이스를 구성한 예를 나타낸다. 즉, 도 16에서, 전송로(133)에 의해 접속된 송신측 장치(131) 및 수신측 장치(132)는 각각 8 레인 구성이다. 송신측 장치(131)는 바이트/비트(Byte-to-Bit) 분리 회로(61), 송신측 코드 변환 회로(62-0?62-7) 및 출력부(63-0?63-7)를 갖는다. 송신측 장치(131) 내의 각 레인 #0?#7의 구성은 동일하기 때문에, 레인 #0의 구성만을 나타낸다. 송신측 코드 변환 회로(62-0?62-7)는 각각 도 9에 나타내는 송신측 코드 변환 회로(315)와 동일한 구성을 갖는다. 출력부(63-0)는 도 9와 동일한 구성의 병렬 직렬 변환 회로(316) 및 출력 드라이버(317)를 갖는다. 한편, 수신측 장치(132)는 입력부(71-0?71-7), 수신측 코드 변환 회로(72-0?72-7) 및 비트/바이트(Bit-to-Byte) 조립 회로(73)를 갖는다. 수신측 장치(132) 내의 각 레인 #0?#7의 구성은 동일하기 때문에, 레인 #0의 구성만을 나타낸다. 입력부(71-0)는 도 9와 동일한 구성의 입력 리시버(321) 및 직렬 병렬 변환 회로(323)를 갖는다. 수신측 코드 변환 회로(72-0?72-7)는 각각 도 9에 나타내는 수신측 코드 변환 회로(324)와 동일한 구성을 갖는다. 송신측 제어 회로 및 수신측 제어 회로는 도 9에 나타내는 송신측 제어 회로(314) 및 수신측 제어 회로(326)와 동일한 구성의 것을 사용할 수 있으므로, 도 16에서는 이들 제어 회로의 도시 및 설명은 생략한다.
상기 실시예와 함께 설명한 바와 같이, 코드 변환 회로는 9 비트의 데이터 캐릭터를 10 비트의 심볼 코드로 변환한다. 이 때문에, 송신측 장치(131)에서 보면, 1 레인당 9 비트의 병렬 데이터 버스를 갖기 때문에, 8 레인 구성의 경우는 9 비트×8 레인=72 비트의 병렬 데이터 버스, 즉 전송로(133)를 갖는 구성이 된다.
한편, 종래 8B10B 코드 변환 회로를 갖는 직렬 인터페이스에서는, 전송로의 대역폭이 동등한 경우, 즉 1 레인의 심볼 코드 길이가 본 실시예와 동일한 10 비트인 경우, 송신측 장치에서 볼 때 1 레인당 8 비트의 병렬 데이터 버스를 갖게 되기 때문에, 8 레인 구성의 경우는 8 비트×8 레인=64 비트의 병렬 데이터 버스를 갖는 구성이 된다.
분리 회로(61) 및 조립 회로(73)는 복수 레인으로 구성되는 직렬 인터페이스 회로의 경우에 필요한 회로이다. 분리 회로(61)는 데이터 송신기(도시하지 않음)로부터의 72 비트폭의 병렬 데이터 버스를 수취하여, 9 비트마다 각 레인에 병렬 데이터를 공급하는 기능을 갖는다. 또, 조립 회로(73)는 분리 회로와 반대의 조작, 즉 각 레인으로부터의 9 비트 병렬 데이터를 72 비트폭의 병렬 데이터 버스에 조립하여, 데이터 수신기(도시하지 않음)에 송신하는 기능을 갖는다.
도 17은 각 레인의 비트 할당의 일례를 설명하는 도면이다. 도 17은 분리 회로(61)에 의한, 72 비트 병렬 데이터 버스의 각 비트의 레인마다의 비트 정의를 나타낸다. 도 17에서, 종축은 각 레인으로 전송되는 심볼 코드(이 예에서는 10 비트폭)를 나타내고, 횡축은 각 레인 번호, 즉 직렬 버스 번호를 나타낸다. 또, 도 17에서는, 72 비트 병렬 데이터 버스의 비트 00을 D00으로 표기하고 있다. 일례를 나타내면, 레인 번호 #0에는, 1 비트의 컨트롤 비트 Cntl와 데이터 비트 D00?D08을 조합하여 1조의 심볼 코드로 하고 있다. 이 예에서는, 유효 데이터 버스폭으로서 72 비트폭을 확보할 수 있다. 1조의 심볼 코드에 1 비트의 컨트롤 비트 Cntl을 정의해야 하지만, 72 비트 병렬 데이터의 어느 비트를 어느 레인에 할당할지는 임의적이며, 도 17에 나타내는 것 이외의 데이터 비트를 할당해도 되는 것은 물론이다.
도 18은 72 비트 병렬 데이터 버스의 비트 할당의 일례를 설명하는 도면이다. 도 18은 송신측 장치(131) 및 수신측 장치(132)에서의 72 비트의 병렬 데이터 버스의 데이터의 정의를 나타낸다. 예를 들어, 72 비트의 병렬 데이터 버스의 비트 Bit0?Bit7(Bit0?7)는 데이터 바이트(Byte) Byte0으로 정의된다. 72 비트의 병렬 데이터 버스의 비트 Bit64?Bit71(Bit64?71)은 용장 비트[0:7]로 정의된다.
고신뢰성의 정보 처리 장치에서는, 8 바이트의 데이터에 대하여 8 비트의 용장 비트를 할당하여, 내고장 성능을 향상시키는 것이 일반적이다. 이와 같이 내고장 성능을 향상시키는 일례로서, DIMM(Dual Inline Memory Module)을 들 수 있다. 72 비트폭의 DIMM의 이용 형태에서는, 도 18과 마찬가지로 8 바이트의 데이터, 즉 64 비트의 데이터에 대하여 에러 정정 코드(ECC : Error Correction Code) 등에 의한 체크 비트(CB : Check Bit)를 8 비트 할당함으로써 1 비트 고장을 수정하고, 또한 2 비트 고장을 검출하는 것을 가능하게 하여 내고장 성능을 향상시킨다.
상기와 같이, 8B10B 코드 변환 회로를 갖는 종래의 직렬 인터페이스 회로에서는, 8 레인 구성이라 하더라도 64 비트폭의 병렬 데이터 버스만 실현할 수 있기 때문에, DIMM에 입력되는 예를 들어 72 비트의 DIMM 데이터를 취급하는 경우, 용장 비트를 폐기하거나 또는 DIMM 데이터를 어떤 형식으로 변형하는 등의 대책이 필요하다.
또한, 종래의 8B10B 코드 변환 회로에서는, 데이터 캐릭터를 룩업 테이블을 이용하여 심볼 코드로 변환하기 때문에, 전송로 상의 1 비트 에러가 최대 4 비트의 에러가 되어 버린다. 일반적으로, 64 비트의 데이터에 대하여 8 비트의 CB를 할당한 경우, 3 비트 이상의 복수 비트의 고장은 검지할 수 없을 가능성이 높다. 따라서, 72 비트의 DIMM 데이터를 종래의 직렬 인터페이스 회로에서 전송한 경우, 전송로 상에서 1 비트 에러가 발생하면, 회복 불능의 다(多)비트 에러로 변화해 버릴 가능성이 있었다.
이에 비해, 본 실시예와 같은 코드 변환 회로를 갖는 직렬 인터페이스 회로에서는, 8 레인 구성의 경우, 72 비트폭의 데이터를 취급하는 것이 가능하므로, DIMM 데이터의 형식을 변경하지 않고, 그대로 직렬 인터페이스 버스에 출력하는 것이 가능해진다. 또, 전송로 상의 심볼 코드의 1 비트 에러는, D 캐릭터로 변환될 때에, 그대로 1 비트 에러로서 인식되기 때문에, ECC에 의해 에러 회복이 가능해져, 보다 신뢰성을 향상시킬 수 있다.
종래의 8B10B 방식에서는, 8 비트의 데이터 캐릭터를 송신하기 위해 10 비트의 심볼로 변환하기 때문에, 25%의 버스의 오버헤드가 된다. 이에 비해, 상기 각 실시예에서는, 9 비트의 데이터 캐릭터를 송신하기 위해 1 비트의 컨트롤 비트를 부가하여 10 비트의 심볼로 변환하기 때문에, 버스의 오버헤드는 11%가 된다. 전송로의 대역폭으로 말하면, 종래의 8B10B 방식에서는 대역의 20%가 오버헤드가 되는 데 비해, 상기 각 실시예에서는 10%의 오버헤드가 되고, 종래의 8B10B 방식과 비교해서 오버헤드가 10% 감소하여, 버스의 대역폭을 유효 이용할 수 있다.
또, 상기 각 실시예에 의하면, 데이터 캐릭터와 제어 캐릭터를 다중화하여 송신하는 것이 가능하다. 즉, 데이터 캐릭터와 12 종류 이상의 제어 캐릭터를 다중화하여 전송하는 것이 가능하다. 이에 따라, 송신측 장치 및 수신측 장치의 각각에서는, 종래와 동일한 제어 회로를 사용하는 것이 가능해진다.
또한, 상기 각 실시예에 의하면, 클록 재생에 필요한 AC 특성을 갖는 코드 변환 회로를 제공할 수 있다. 즉, 1 심볼(이 예에서는 10 비트폭) 중에, 반드시 1회 이상의 비트값 천이(0에서 1, 또는 1에서 0으로 천이하는 것)가 포함되어 있다. 보다 구체적으로는, 데이터 캐릭터를 송신하는 경우는, 심볼 코드의 비트 Cntl Bit, S_Bit0의 값이 반드시 배타적인 관계의 값이 되고, 또 제어 코드를 송신하는 경우는, 최저라도 심볼 코드의 비트 S_Bit1, S_Bit2가 반드시 배타적인 관계의 값이 된다. 이에 따라, 1 심볼 중에 반드시 1회 이상은 비트 천이가 포함되게 되어, 종래와 마찬가지로 비트값의 천이 타이밍을 이용하여 수신 장치측에서 클록 재생이 가능해진다.
종래에는, 최대 5 비트의 런랭스(Run Length)인 데 비해, 상기 각 실시예에서는 최대 9 비트의 런랭스가 된다. 이 런랭스는 클록 재생 기능과 밀접한 관계가 있어, 런랭스가 늘어난 경우 클록 재생에 악영향이 발생한다고 생각된다.
이것에 대해서는, 예를 들어 특허문헌 4에 제안되어 있는 수신측 장치의 입력 리시버 내의 이퀄라이저를 이용함으로써, 런랭스가 5 비트에서 9 비트로 늘어난 경우라도 안정적으로 수신측 장치 내에서 클록을 재생할 수 있다.
또한, 상기 각 실시예에 의하면, D 캐릭터의 각 비트는 반전하여 이용하거나, 또는 그대로 심볼 코드의 비트로서 이용하는 것이 가능하므로, 종래와 같은 룩업 테이블을 이용할 필요는 없다. 이에 따라, 코드 변환에 따른 회로량을 감소시키는 것이 가능해져, 비용을 삭감하고, 나아가 지연 시간을 감소시키는 것이 가능해진다.
또, 종래에는 룩업 테이블을 이용하기 때문에, 전송로 상에서의 1 비트 에러는 최대, 데이터 캐릭터의 5 비트 에러로서 인식된다. 이에 비해, 상기 각 실시예에 의하면, 룩업 테이블을 이용하지 않고, 데이터 캐릭터는 대략 그대로의 형식으로 심볼 코드에 할당된다. 따라서, 전송로에서 발생한 1 비트 에러는, 그대로 1 비트 에러의 형태로 데이터 캐릭터로서 수신측 장치에서 인식된다. 이와 같이, 종래에는 5 비트 에러였던 것이 1 비트 에러가 되기 때문에, 에러를 보정하는 기회가 증가하여 에러 내성을 향상시키는 것이 가능해진다. 또한, 상기 실시예라면, 심볼 코드 중에는 반드시 1개 이상의 값 「0」과 1개 이상의 값 「1」이 포함되어 있기 때문에, 전송로 상에서 모든 비트가 0(All "0") 또는 모든 비트가 1(All "1")이 되는 버스트 에러도 검출할 수 있게 된다.
이상 설명한 바와 같이, 종래의 8B10B 방식에 대하여, 상기 각 실시예는 일종의 9B10B 방식이라고도 할 수 있는 방식을 제공하는 것이다.
이상, 개시한 데이터 전송 방법 및 코드 변환 회로를 실시예에 의해 설명했지만, 본 발명은 상기 실시예에 한정되지 않고, 본 발명의 범위 내에서 여러가지 변형 및 개량이 가능한 것은 물론이다.
20 : 정보 처리 장치 21-0?21-n : 시스템 보드
22 : 크로스바 장치 23-0?23-n : IO 장치
31, 131 : 송신측 장치 32, 132 : 수신측 장치
33, 133 : 전송로
62-0?62-7, 315 : 송신측 코드 변환 회로
72-0?72-7, 324 : 수신측 코드 변환 회로
211-0?211-m : CPU 212 : 메모리
213 : 메모리 제어 장치

Claims (13)

  1. 비트폭 M(M은 3 이상의 자연수)의 데이터 캐릭터와 비트폭 N(N은 1 이상의 자연수)의 제어 캐릭터를 다중화하고, 상기 제어 캐릭터가 유효한지의 여부를 나타내는 제어 캐릭터 유효 신호를 부가하여 M+1 또는 N+3 중 어느 큰 쪽의 비트폭을 갖는 심볼 코드를 생성하고,
    상기 심볼 코드를 병렬 데이터에서 직렬 데이터로 변환하여 전송로에 출력함으로써 데이터 전송을 하는 데이터 전송 방법.
  2. 제1항에 있어서, M=9, N=4이고,
    상기 제어 캐릭터 유효 신호는 1 비트이며,
    상기 심볼 코드의 비트폭은 10 비트인 것인 데이터 전송 방법.
  3. 제1항 또는 제2항에 있어서, 상기 데이터 캐릭터를 전송하는 경우는 상기 데이터 캐릭터의 정해진 비트의 반전값을 상기 제어 캐릭터 유효 신호의 값으로 하고, 상기 제어 캐릭터를 전송하는 경우는 상기 제어 캐릭터 유효 신호와 상기 데이터 캐릭터의 상기 정해진 비트를 동일한 값으로 하여 상기 정해진 비트 이외의 비트로 상기 제어 캐릭터를 표현하는 것인 데이터 전송 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 전송로로부터 입력되는 상기 직렬 데이터 중에 존재하는 비트 천이의 엣지로부터 클록을 재생하고,
    상기 전송로로부터 입력되는 상기 직렬 데이터를 상기 클록에 기초하여 병렬 데이터인 상기 심볼 코드로 변환하며,
    상기 심볼 코드를 디코딩하여 심볼의 타입을 검출하고, 데이터 캐릭터 또는 제어 캐릭터와, 데이터 캐릭터 및 제어 캐릭터의 유효 신호를 생성하는 데이터 전송 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 데이터 캐릭터는 PCI Express의 D 캐릭터이고, 상기 제어 캐릭터는 상기 PCI Express의 K 캐릭터인 것인 데이터 전송 방법.
  6. 비트폭 M(M은 3 이상의 자연수)의 데이터 캐릭터와 비트폭 N(N은 1 이상의 자연수)의 제어 캐릭터를 다중화하는 제1 회로와,
    상기 제1 회로의 출력에 상기 제어 캐릭터가 유효한지의 여부를 나타내는 제어 캐릭터 유효 신호를 부가하여 M+1 또는 N+3 중 어느 큰 쪽의 비트폭을 갖는 심볼 코드를 생성하는 제2 회로
    를 포함하고,
    상기 심볼 코드는 병렬 데이터에서 직렬 데이터로 변환되어 전송로에 출력되는 것인 코드 변환 회로.
  7. 제6항에 있어서, M=9, N=4이고,
    상기 제어 캐릭터 유효 신호는 1 비트이며,
    상기 심볼 코드의 비트폭은 10 비트인 것인 코드 변환 회로.
  8. 제6항 또는 제7항에 있어서, 상기 제1 회로는, 상기 데이터 캐릭터를 전송하는 경우는 상기 데이터 캐릭터의 정해진 비트의 반전값을 상기 제어 캐릭터 유효 신호의 값으로 하고, 상기 제어 캐릭터를 전송하는 경우는 상기 제어 캐릭터 유효 신호와 상기 데이터 캐릭터의 상기 정해진 비트를 동일한 값으로 하여 상기 정해진 비트 이외의 비트로 상기 제어 캐릭터를 표현하는 것인 코드 변환 회로.
  9. 제6항 내지 제8항 중 어느 한 항에 있어서, 상기 데이터 캐릭터는 PCI Express의 D 캐릭터이고, 상기 제어 캐릭터는 상기 PCI Express의 K 캐릭터인 것인 코드 변환 회로.
  10. 비트폭 M(M은 3 이상의 자연수)의 데이터 캐릭터와 비트폭 N(N은 1 이상의 자연수)의 제어 캐릭터를 다중화하는 제1 회로와, 상기 제1 회로의 출력에 상기 제어 캐릭터가 유효한지의 여부를 나타내는 제어 캐릭터 유효 신호를 부가하여 M+1 또는 N+3 중 어느 큰 쪽의 비트폭을 갖는 심볼 코드를 생성하는 제2 회로를 갖는 코드 변환 회로와,
    상기 심볼 코드를 병렬 데이터에서 직렬 데이터로 변환하여 전송로에 출력하는 변환 회로
    를 포함하는 장치.
  11. 제10항에 있어서, M=9, N=4이고,
    상기 제어 캐릭터 유효 신호는 1 비트이며,
    상기 심볼 코드의 비트폭은 10 비트인 것인 장치.
  12. 제10항 또는 제11항에 있어서, 상기 제1 회로는, 상기 데이터 캐릭터를 전송하는 경우는 상기 데이터 캐릭터의 정해진 비트의 반전값을 상기 제어 캐릭터 유효 신호의 값으로 하고, 상기 제어 캐릭터를 전송하는 경우는 상기 제어 캐릭터 유효 신호와 상기 데이터 캐릭터의 상기 정해진 비트를 동일한 값으로 하여 상기 정해진 비트 이외의 비트로 상기 제어 캐릭터를 표현하는 것인 장치.
  13. 제10항 내지 제12항 중 어느 한 항에 있어서, 상기 데이터 캐릭터는 PCI Express의 D 캐릭터이고, 상기 제어 캐릭터는 상기 PCI Express의 K 캐릭터인 것인 장치.
KR1020117030355A 2009-06-19 2009-06-19 데이터 전송 방법, 코드 변환 회로 및 장치 KR101283844B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2009/061235 WO2010146715A1 (ja) 2009-06-19 2009-06-19 データ転送方法、コード変換回路及び装置

Publications (2)

Publication Number Publication Date
KR20120024797A true KR20120024797A (ko) 2012-03-14
KR101283844B1 KR101283844B1 (ko) 2013-07-08

Family

ID=43356053

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117030355A KR101283844B1 (ko) 2009-06-19 2009-06-19 데이터 전송 방법, 코드 변환 회로 및 장치

Country Status (6)

Country Link
US (1) US8723702B2 (ko)
EP (1) EP2445112A4 (ko)
JP (1) JP5382117B2 (ko)
KR (1) KR101283844B1 (ko)
CN (1) CN102460974B (ko)
WO (1) WO2010146715A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5348263B2 (ja) 2012-02-29 2013-11-20 富士通株式会社 データ伝送装置、データ伝送システムおよびデータ伝送方法
CN103067162B (zh) * 2012-11-15 2016-08-03 新浪技术(中国)有限公司 一种数据传输的方法及装置
US10396840B2 (en) * 2013-12-27 2019-08-27 Intel Corporation High speed short reach input/output (I/O)
JP6325264B2 (ja) * 2014-01-31 2018-05-16 ローム株式会社 シリアルデータの送信回路および受信回路、それらを用いた伝送システム、電子機器、シリアルデータの伝送方法
US9319178B2 (en) 2014-03-14 2016-04-19 Qualcomm Incorporated Method for using error correction codes with N factorial or CCI extension
JP6398801B2 (ja) * 2015-03-09 2018-10-03 沖電気工業株式会社 メモリ装置へのデータ書き込み/読み出し制御方法及びメモリ装置
CN107222218B (zh) * 2017-05-26 2020-11-03 四川九洲电器集团有限责任公司 一种并行数据的产生电路、方法及电子设备

Family Cites Families (22)

* 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
JPS60130236A (ja) * 1983-12-19 1985-07-11 Nec Corp 復号器
EP0542087A3 (en) * 1991-11-10 1997-12-29 Hewlett-Packard Company Method and apparatus for efficient serialized transmission of handshake signal on a digital bus
US5838894A (en) * 1992-12-17 1998-11-17 Tandem Computers Incorporated Logical, fail-functional, dual central processor units formed from three processor units
US5930399A (en) * 1997-04-03 1999-07-27 Microsoft Corporation Data encoding for a communication channel supporting a subset of the characters to be transmitted
US6181821B1 (en) * 1997-04-30 2001-01-30 Massachusetts Institute Of Technology Predictive source encoding and multiplexing
US6484167B1 (en) * 1997-11-12 2002-11-19 John P. Tarlano Method and apparatus for providing calendar year dates by forming hexadecimal dates having two digits
JP3166692B2 (ja) 1997-12-09 2001-05-14 日本電気株式会社 符号化回路
US6275587B1 (en) * 1998-06-30 2001-08-14 Adobe Systems Incorporated Secure data encoder and decoder
US6816509B2 (en) * 2001-03-02 2004-11-09 Ciena Corporation Data mapper and method for flexible mapping of control and data information within a SONET payload
US6915352B2 (en) * 2001-06-01 2005-07-05 Inventec Appliances Corp. Infrared transmission system with automatic character identification
US7069464B2 (en) * 2001-11-21 2006-06-27 Interdigital Technology Corporation Hybrid parallel/serial bus interface
JP4000564B2 (ja) 2002-08-15 2007-10-31 富士ゼロックス株式会社 符号化装置およびその方法
US6867713B2 (en) * 2002-09-09 2005-03-15 Seagate Technology Llc DC free code design with state dependent mapping
AU2003269300A1 (en) 2002-10-02 2004-04-23 Koninklijke Philips Electronics N.V. Low latency radio/baseband interface protocol
JP2006250824A (ja) * 2005-03-11 2006-09-21 Nec Electronics Corp 半導体集積回路およびその半導体集積回路におけるデータ解析方法
US7061407B1 (en) * 2005-06-14 2006-06-13 Xilinx, Inc. Encoding of 8B10B control characters
JP4640019B2 (ja) 2005-07-29 2011-03-02 日産自動車株式会社 燃料噴射制御装置
JP2007096903A (ja) * 2005-09-29 2007-04-12 Rohm Co Ltd パラレルシリアル変換回路およびそれを用いた電子機器
US7487426B2 (en) * 2005-10-17 2009-02-03 Enigma Semiconductor, Inc. 64b/66b coding apparatus and method
US20080033974A1 (en) * 2006-08-07 2008-02-07 International Characters, Inc. Method and Apparatus for XML Parsing Using Parallel Bit streams
US20100051470A1 (en) 2006-11-02 2010-03-04 Santoku Corporation Process for producing metallic lithium

Also Published As

Publication number Publication date
JP5382117B2 (ja) 2014-01-08
JPWO2010146715A1 (ja) 2012-11-29
US8723702B2 (en) 2014-05-13
WO2010146715A1 (ja) 2010-12-23
CN102460974B (zh) 2014-08-13
CN102460974A (zh) 2012-05-16
US20120075127A1 (en) 2012-03-29
KR101283844B1 (ko) 2013-07-08
EP2445112A1 (en) 2012-04-25
EP2445112A4 (en) 2012-11-14

Similar Documents

Publication Publication Date Title
KR101283844B1 (ko) 데이터 전송 방법, 코드 변환 회로 및 장치
US9647701B2 (en) Methods and apparatus for the intelligent association of control symbols
US7180957B2 (en) Technique for utilizing spare bandwidth resulting from the use of a transition-limiting code in a multi-level signaling system
US7440513B2 (en) Coding and decoding packetized data
US8340005B1 (en) High speed packet interface and method
US8903000B2 (en) Transmission circuit, reception circuit, transmission method, reception method, communication system and communication method therefor
EP0977411B1 (en) Block code with limited disparity
US20070168835A1 (en) Serial communications system and method
US20090097588A1 (en) Digital data encoding and decoding method and system
US8281207B2 (en) Data transmission equipment and generating method for transmission code
US7876900B1 (en) Hybrid scrambled transmission coding
US6581114B1 (en) Method and system for synchronizing serial data
US20050220232A1 (en) Circuit arrangement and a method to transfer data on a 3-level pulse amplitude modulation (PAM-3) channel
US11777765B2 (en) Signal transmission system, transmitter encoding apparatus and receiver decoding apparatus
CN103051415A (zh) 用于通信系统的将比特编码为符号的设备和方法
WO2010146714A1 (ja) データ転送方法、コード変換回路及び装置
US7302631B2 (en) Low overhead coding techniques
CN115733606A (zh) 用于对数据进行编码和解码的方法以及转换编码器
EP1330910B1 (en) Method and system for reducing inter-symbol interference effects in transmission over a serial link with mapping of each word in a cluster of received words to a single transmitted word
TWI774233B (zh) 訊號傳輸系統與發射端編碼裝置
WO2024095739A1 (ja) 受信装置
CN115865265A (zh) 使用算法转换码的数据发送方法和数据恢复方法
CN116032420A (zh) 用于数据传输的方法

Legal Events

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