KR20060081522A - 피씨아이 익스프레스의 바이트 스큐 보상방법 및 이를위한 피씨아이 익스프레스 물리 계층 수신기 - Google Patents

피씨아이 익스프레스의 바이트 스큐 보상방법 및 이를위한 피씨아이 익스프레스 물리 계층 수신기 Download PDF

Info

Publication number
KR20060081522A
KR20060081522A KR1020050001995A KR20050001995A KR20060081522A KR 20060081522 A KR20060081522 A KR 20060081522A KR 1020050001995 A KR1020050001995 A KR 1020050001995A KR 20050001995 A KR20050001995 A KR 20050001995A KR 20060081522 A KR20060081522 A KR 20060081522A
Authority
KR
South Korea
Prior art keywords
lanes
symbol
data
lane
received data
Prior art date
Application number
KR1020050001995A
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 KR1020050001995A priority Critical patent/KR20060081522A/ko
Priority to JP2006000819A priority patent/JP4870435B2/ja
Priority to US11/326,622 priority patent/US7434114B2/en
Priority to TW095100726A priority patent/TWI382317B/zh
Publication of KR20060081522A publication Critical patent/KR20060081522A/ko

Links

Images

Classifications

    • 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
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • G06F13/423Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus with synchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)

Abstract

피씨아이 익스프레스의 바이트 스큐 보상방법은 수신되는 데이터가 트레이닝 시퀀스인지 여부를 판단하는 단계, 수신되는 데이터가 트레이닝 시퀀스인 경우 트레이닝 시퀀스를 이용하여 컴마 심볼을 기준으로 레인들 각각에 대하여 정렬 포인트들을 설정하는 단계 및 수신되는 데이터가 트레이닝 시퀀스가 아닌 경우 레인들 각각에 대하여 스킵 심볼의 부가 또는 삭제에 따라 정렬 포인트들을 쉬프트하는 단계를 포함한다. 따라서, 스킵 심볼의 부가 또는 삭제에 불구하고 효과적으로 바이트 스큐를 보상할 수 있다.

Description

피씨아이 익스프레스의 바이트 스큐 보상방법 및 이를 위한 피씨아이 익스프레스 물리 계층 수신기{METHOD OF COMPENSATING BYTE SKEW FOR PCI EXPRESS AND PCI EXPRESS PHYSICAL LAYER RECEIVER FOR THE SAME}
도 1은 종래 기술에 따른 피씨아이 익스프레스의 데이터 송신을 나타내는 블록도이다.
도 2는 종래 기술에 따른 피씨아이 익스프레스의 데이터 수신을 나타내는 블록도이다.
도 3은 종래 기술에 따른 컴마 심볼만을 이용한 바이트 스큐 보상방법의 문제점을 나타내는 타이밍도이다.
도 4는 본 발명의 일 실시예에 따른 피씨아이 익스프레스의 바이트 스큐 보상방법을 나타낸 동작 흐름도이다.
도 5는 도 4에 도시된 S420단계의 일 예의 동작 흐름도이다.
도 6은 도 5에 도시된 S520단계의 일 예의 동작 흐름도이다.
도 7은 도 4에 도시된 S430단계의 일 예의 동작 흐름도이다.
도 8a 및 도 8b는 본 발명의 일 실시예에 따른 정렬 포인트 설정을 설명하기 위한 타이밍도이다.
도 9는 본 발명의 일 실시예에 따른 정렬 포인트 쉬프트를 설명하기 위한 타이밍도이다.
도 10은 본 발명의 일 실시예에 따른 피씨아이 익스프레스 물리 계층 수신기의 블록도이다.
* 도면의 주요부분에 대한 부호의 설명 *
S410 : 트레이닝 시퀀스인지 여부 판단단계
S420 : 정렬 포인트 설정단계
S430 : 정렬 포인트 쉬프트단계
본 발명은 피씨아이 익스프레스(PCI Express)에 관한 것으로, 특히 피씨아이 익스프레스의 바이트 스큐(Byte Skew) 보상방법 및 이를 위한 피씨아이 익스프레스의 물리 계층 수신기에 관한 것이다.
피씨아이 익스프레스(PCI Express)는 기존의 피씨아이(PCI)가 가지는 한계를 극복하기 위해 제안되었다. 기존의 피씨아이는 병렬 신호전송 방식으로 인하여 신호 왜곡에 대단히 취약하다. 따라서, 기존의 피씨아이는 클럭 주파수를 향상시키기 어렵다. 피씨아이 익스프레스는 직렬 전송 방식으로 동작주파수를 높이면서 버스 (BUS)폭을 줄인다.
3세대 I/O(3GIO; Third Generation I/O)로 알려진 피씨아이 익스프레스는 많은 분야에서 기존의 피씨아이 버스를 대체하고 있다. 피씨아이 익스프레스는 저전압 차동 시그널링(LVDS; Low Voltage Differential Signaling), 패킷 기반 데이터 전송 프로토콜(packet-based data transmission protocol) 등을 특징으로 한다. 피씨아이 익스프레스는 듀얼 심플렉스(Dual Simplex)방식의 버스이다. 듀얼 심플렉스 방식은 단방향 데이터버스 두 개가 한 조로 구성되어 하나의 버스는 데이터를 보내는 데에만, 다른 하나의 버스는 데이터를 받는 데에만 사용되는 방식을 말한다. 저전압 차동 시그널링을 사용하므로 결국 피씨아이 익스프레스는 하나의 레인(lane)당 4-와이어 인터페이스를 사용하게 된다. 따라서, 종래의 데이터 버스에 비하여 데이터 비트당 더 많은 와이어를 사용하나, 피씨아이 익스프레스의 메시지 기반 프로토콜(message-based protocol) 및 임베디드 클록킹(embedded clocking)은 종래의 데이터 버스의 인터페이싱에 필요한 많은 데이터 제어 신호들을 없앨 수 있다. 피씨아이 익스프레스는 최대 32개의 레인(lane)들을 가질 수 있다.
일반적으로 피씨아이 익스프레스와 같이 다중 레인(multi-lane)을 사용하는 경우, 전송 효율을 높이기 위해 송신부는 각각의 레인들로 데이터를 분할하여 전송하게 된다. 예를 들어, 4개의 레인을 사용하는 경우 보내고자 하는 패킷을 32비트(double word)로 분할하고 이 32비트 데이터를 다시 8비트(byte) 데이터로 분할하여 4개의 레인을 통하여 동시에 전송한다. 수신부에서는 와이어를 통하여 수신된 비트 데이터를 컴마 심볼을 이용한 비트 스큐 보상을 하여 정렬하고, 비트 스큐 보 상되어 정렬된 데이터를 바이트 스큐 보상하여 정렬한다.
비트 스큐 보상은 각각의 레인을 통하여 수신된 데이터들 사이의 8비트 이내의 스큐를 비트 단위로 보상하는 것을 말한다. 멀티 레인을 사용하는 경우에 레인마다 전송 지연 시간이 다르기 때문에 각각의 레인들 사이의 스큐가 존재하게 되는데, 전송 속도가 낮은 경우에는 레인들 사이의 스큐가 8비트 이내에서 발생하기 때문에 비트 스큐 보상만으로도 효과적인 데이터 수신이 가능하다. 그러나, 피씨아이 익스프레스와 같은 고속의 데이터 전송 디바이스는 레인들 사이의 전송 지연 시간의 차이가 8비트의 범위를 벗어날 수 있기 때문에 비트 스큐 보상 뿐 아니라 바이트 스큐 보상이 필요하다. 바이트 스큐 보상은 각각의 레인을 통하여 수신된 데이터들 사이의 바이트 단위의 스큐를 보상하는 것을 말한다.
도 1은 종래 기술에 따른 피씨아이 익스프레스의 데이터 송신을 나타내는 블록도이다.
도 1을 참조하면, 4개의 레인을 사용하여 데이터를 송신하는 피씨아이 익스프레스에서 32비트 데이터(110)는 4개의 8비트 데이터들(111, 112, 113, 114)로 나누어져서 각각의 레인을 통하여 전송된다. 이 때, 4개의 8비트 데이터들(111, 112, 113, 114) 각각은 8비트/10비트 인코더 및 시리얼라이저(serializer)를 통하여 와이어로 한 비트씩 전송되게 된다. 다른 32비트 데이터들(120, 130, 140, 150, 160)도 32비트 데이터(110)와 마찬가지로 4개의 8비트 데이터들로 나누어져서 4개의 레인들 각각을 통하여 전송된다. 이 때, 각각의 레인은 송신 및 수신을 위한 차동 와이어를 구비하여야 하므로 4개의 와이어를 포함할 수 있다.
도 1에 도시된 바와 같이 4개의 레인을 통하여 데이터를 전송하였을 경우에 4개의 레인들 각각 신호 전송 지연이 달라지게 되어 4개의 레인을 통한 데이터들이 모두 동시에 수신되지 않는다. 따라서, 수신단에서는 4개의 레인을 통하여 수신된 데이터들 사이의 스큐를 제거하여야 한다.
도 2는 종래 기술에 따른 피씨아이 익스프레스의 데이터 수신을 나타내는 블록도이다.
도 2를 참조하면, 피씨아이 익스프레스는 먼저 와이어를 통하여 수신되는 비트 데이터를 디-시리얼라이저(de-serializer)를 통하여 8비트 데이터로 복원한다. 도 2에 도시된 바와 같이, 수신된 8비트 데이터들(211, 212, 213, 214, 221, 222, 223, 224, 231, 232, 233, 234, 241, 242, 243, 244)에 비트 스큐 및 바이트 스큐가 발생한다. 이는 각각의 레인들마다 전송 지연시간이 다르기 때문이다. 피씨아이 익스프레스는 먼저 컴마 심볼을 이용하여 수신된 8비트 데이터들의 비트 스큐를 보상하고 정렬하여 정렬된 8비트 데이터들(271, 272, 273, 274, 275, 276, 277, 278)을 생성한다. 이 때, 컴마 심볼은 특정한 비트로 구성된 비트의 열이다. 피씨아이 익스프레스는 4개의 8비트 데이터들(271, 272, 273, 274)로 32비트 데이터(280)를 생성한다. 32비트 데이터(280)가 포함하고 있는 8비트 데이터들(271, 272, 273, 274) 각각은 비트 스큐가 없으나, 32비트 데이터(280)에는 바이트 스큐가 있다. 따라서, 피씨아이 익스프레스는 32비트 데이터들을 입력받아 바이트 스큐를 보상하여 바이트 스큐가 없는 32비트 데이터(260)를 생성하는 디-스큐부(290)가 필요하다.
도 2에 도시된 종래 기술에 따른 디-스큐부(290)는 컴마 심볼을 이용하여 바 이트 스큐를 보상한다. 즉, 종래 기술에 따른 바이트 스큐 보상방법은 수신된 데이터 열에서 컴마 심볼을 찾고 모든 레인에서 컴마 심볼이 감지될 때까지 기다린 후, 마지막에 컴마 심볼이 감지된 타이밍에 맞추어 다른 레인들의 데이터를 지연하여 데이터를 정렬한다. 그러나, 피씨아이 익스프레스는 주기적으로 전송되는 스킵 심볼(skip symbol; SKP)들에 의하여 컴마 심볼 이후의 데이터 열이 변하기 때문에 컴마 심볼만을 사용한 바이트 스큐보상의 경우에 스큐를 적절하게 보상할 수 없다.
피씨아이 익스프레스 수신기는 탄력 버퍼(Elastic Buffer)를 구비한다. 탄력 버퍼는 특정 레인을 통하여 수신되는 데이터의 양이 많은 경우에 수신되는 데이터에 포함된 스킵 심볼을 삭제하여 버퍼의 오퍼플로우를 방지할 수 있다. 탄력 버퍼는 특정 레인을 통하여 수신되는 데이터의 양이 적은 경우에 수신되는 데이터에 포함된 스킵 심볼에 새로운 스킵 심볼을 부가하여 언더플로우를 방지할 수 있다. 이와 같이 탄력 버퍼에 의하여 스킵 심볼의 부가나 삭제가 발생하는 경우에 스킵 심볼의 부가나 삭제는 컴마 심볼 이후에 나타나기 때문에 이와 같은 스킵 심볼의 부가나 삭제를 반영하여 바이트 스큐 보상이 수행되어야 한다.
도 3은 종래 기술에 따른 컴마 심볼만을 이용한 바이트 스큐 보상방법의 문제점을 나타내는 타이밍도이다.
도 3을 참조하면, 송신측에서는 각각의 레인마다 컴마 심볼(COM)과 함께 연속되는 3개의 스킵 심볼(SKP)을 송신하는 것을 알 수 있다. 종래 기술에 따른 바이트 스큐 보상방법은 수신되는 컴마 심볼(COM) 이후의 데이터들이 동일한 타이밍이 되도록 데이터를 정렬한다. 컴마 심볼(COM) 이후에 바로 송신 정보를 담은 데이터 가 오면 문제가 없으나 컴마 심볼(COM) 이후에 스킵 심볼(SKP)이 전송되고, 탄력 버퍼에서 스킵 심볼(SKP)의 부가 또는 삭제가 발생하기 때문에 도 3에 도시된 바와 같이 컴마 심볼(COM)을 통한 정렬에 불구하고 바이트 스큐를 보상하지 못하는 경우가 발생하게 된다.
따라서, 피씨아이 익스프레스에서 스킵 심볼의 부가 또는 삭제에 불구하고 적절하게 바이트 스큐를 보상할 수 있는 방법 및 장치의 필요성이 절실하게 대두된다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은 스킵 심볼의 부가 또는 삭제에 따라 바이트 스큐를 적절히 보상할 수 있는 피씨아이 익스프레스의 바이트 스큐 보상방법을 제공하는 것이다.
본 발명의 다른 목적은 스킵 심볼의 부가 또는 삭제에 따라 바이트 스큐를 적절히 보상할 수 있는 스큐 보상부를 포함하는 피씨아이 익스프레스 물리 계층 수신기를 제공하는 것이다.
상기 목적을 달성하기 위한 피씨아이 익스프레스의 바이트 스큐 보상방법은 수신되는 데이터가 트레이닝 시퀀스인지 여부를 판단하는 단계, 수신되는 데이터가 트레이닝 시퀀스인 경우 트레이닝 시퀀스를 이용하여 컴마 심볼을 기준으로 레인들 각각에 대하여 정렬 포인트들을 설정하는 단계 및 수신되는 데이터가 트레이닝 시퀀스가 아닌 경우 레인들 각각에 대하여 스킵 심볼의 부가 또는 삭제에 따라 정렬 포인트들을 쉬프트하는 단계를 포함한다.
실시예에 따라, 정렬 포인트들을 설정하는 단계는 레인들 중 컴마 심볼을 검출한 레인이 있는지 여부를 판단하는 단계, 레인들 중 컴마 심볼을 검출한 레인이 있는 경우에 소정의 시간내에 모든 레인에 대하여 컴마 심볼이 검출되었는지 여부를 판단하는 단계 및 소정의 시간내에 모든 레인에 대하여 컴마 심볼이 검출된 경우에 컴마 심볼이 검출된 타이밍에 따라 레인들 각각에 대하여 정렬 포인트를 설정하는 단계를 포함할 수도 있다.
실시예에 따라, 정렬 포인트들을 쉬프트하는 단계는 레인들 각각에 대하여 스킵 심볼의 부가의 부가 또는 삭제가 수행되었는지 여부를 판단하는 단계, 레인들 각각에 대하여 스킵 심볼이 부가된 경우에 해당 레인의 정렬 포인트를 수신되는 데이터를 덜 지연시키도록 이동시키는 단계 및 레인들 각각에 대하여 스킵 심볼이 삭제된 경우에 해당 레인의 정렬 포인트를 수신되는 데이터를 더 지연시키도록 이동시키는 단계를 포함할 수도 있다.
이 때, 해당 레인의 정렬 포인트를 수신되는 데이터를 덜 지연시키도록 이동할 수 없는 경우에 해당 레인을 제외한 다른 레인들의 정렬 포인트를 수신되는 데이터를 더 지연시키도록 이동시킬 수 있다.
이 때, 해당 레인의 정렬 포인트를 수신되는 데이터를 더 지연시키도록 이동할 수 없는 경우에 해당 레인을 제외한 다른 레인들의 정렬 포인트를 수신되는 데 이터를 덜 지연시키도록 이동시킬 수 있다.
본 발명의 다른 목적을 달성하기 위한 피씨아이 익스프레스 물리 계층 수신기는 각각의 레인을 통하여 수신되는 직렬 데이터를 10비트 병렬 데이터로 변환하는 직/병렬 변환기, 컴마 심볼을 이용하여 10비트 병렬 데이터에 대한 비트 정렬을 수행하고, 정렬된 10비트 데이터를 8비트 데이터로 변환하고, 수신되는 데이터의 상태에 따라 스킵 심볼을 부가 또는 삭제하는 파이프 및 트레이닝 시퀀스를 이용하여 8비트 데이터를 컴마 심볼을 기준으로 레인들 각각에 대하여 정렬 포인트들을 설정하고, 파이프로부터 스킵 심볼의 부가 또는 삭제에 대한 정보를 입력받아 스킵 심볼의 부가 또는 삭제에 따라 정렬 포인트를 쉬프트하여 바이트 스큐를 보상하는 스큐보상부를 포함한다.
이 때, 직/병렬 변환기는 디시리얼라이저(deserializer) 또는 SERDES 라고도 하며 직렬 데이터를 병렬 데이터로 변환한다.
트레이닝 시퀀스는 피씨아이 익스프레스의 TS1 및 TS2 패턴을 포함한다. 예를 들어, 트레이닝 시퀀스는 2.5 Gb/s의 테스트 패턴일 수 있다. 피씨아이 익스프레스의 초기화 과정에서 여러 개의 TS1 또는 TS2 패턴이 수신될 수 있다.
컴마 심볼은 레인 사이의 스큐 보상 등에 사용되는 소정의 비트 구성을 가지는 8비트 심볼일 수 있다.
스킵 심볼의 부가 또는 삭제는 피씨아이 익스프레스 물리 계층 수신기의 파이프 등에서 수행될 수 있으며, 이 때 스킵 심볼의 부가 또는 삭제에 대한 정보를 이용하여 정렬 포인트를 쉬프트하여 바이트 스큐를 효과적으로 보상할 수 있다.
예를 들어, 피씨아이 익스프레스의 레인들은 4개일 수 있다.
스큐보상부는 상술한 피씨아이 익스프레스의 바이트 스큐 보상방법에 따라 수신되는 데이터의 레인들 사이의 바이트 스큐를 보상한다.
따라서, 피씨아이 익스프레스 데이터 수신시에 스킵 심볼의 부가 또는 삭제에 불구하고 바이트 스큐를 적절히 보상할 수 있다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 4는 본 발명의 일 실시예에 따른 피씨아이 익스프레스의 바이트 스큐 보상방법을 나타낸 동작 흐름도이다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 피씨아이 익스프레스의 바이트 스큐 보상방법은 먼저 수신되는 데이터가 트레이닝 시퀀스인지 여부를 판단한다(S410).
이 때, 트레이닝 시퀀스는 피씨아이 익스프레스의 TS1 및 TS2 패턴을 포함한다. 예를 들어, 트레이닝 시퀀스는 2.5 Gb/s의 테스트 패턴일 수 있다. 피씨아이 익스프레스의 초기화 과정에서 여러 개의 TS1 또는 TS2 패턴이 수신될 수 있다.
피씨아이 익스프레스의 바이트 스큐 보상방법은 수신되는 데이터가 트레이닝 시퀀스인 경우 트레이닝 시퀀스를 이용하여 컴마 심볼을 기준으로 레인들 각각에 대하여 정렬 포인트를 설정한다(S420).
이 때, 컴마 심볼은 소정의 비트구성을 가진 8비트 심볼일 수 있다.
이 때, 레인들은 4개일 수 있다.
수신되는 데이터는 각각의 레인들에 상응하는 레지스터에 저장된다. 예를 들어, 레지스터는 8비트 데이터를 5클록동안 저장할 수 있는 FIFO(First In First Out)방식의 쉬프트 레지스터일 수 있다. 이와 같이, 데이터를 5클록동안 저장할 수 있는 경우에 레지스터의 깊이(depth)가 5라고 한다. 레지스터의 깊이를 5로 하면 레인들 사이의 바이트 스큐가 최대 4클록인 경우에도 바이트 스큐를 보상할 수 있다.
정렬 포인트는 각각의 레인들에 상응하는 쉬프트 레지스터의 지연 포인트일 수 있다. 즉, 레인들 각각에 깊이(depth)가 5인 레지스터가 사용되는 경우에 정렬 포인트는 1 내지 5에 상응하는 포인트일 수 있다. 이 때, 1에 상응하는 정렬 포인트는 가장 최근에 저장된 데이터에 상응하도록 설정된 것이고, 5에 상응하는 정렬 포인트는 가장 최근에 저장된 데이터를 4클록 지연한 데이터에 상응하도록 설정된 것일 수 있다.
도 8a 및 도 8b는 본 발명의 일 실시예에 따른 정렬 포인트 설정을 설명하기 위한 타이밍도이다. 도 8a 및 도 8b에서 FE, COM, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 및 12 등으로 표시된 데이터 심볼은 각각 8비트 데이터 심볼일 수 있다.
도 8a는 본 발명의 일 실시예에 따른 정렬 포인트 설정 이전에 4개의 레인들을 통하여 수신되는 수신 데이터들의 타이밍도이다.
도 8a를 참조하면, 컴마 심볼을 이용한 정렬 포인트 설정 이전에 4개의 레인들(L0_RX_DATA, L1_RX_DATA, L2_RX_DATA, L3_RX_DATA)을 통하여 수신되는 수신 데 이터들에 바이트 스큐가 존재하는 것을 알 수 있다. 따라서, 컴마 심볼을 이용하여 각각의 레인들마다 정렬 포인트를 설정하고, 정렬 포인트에 따라 각각의 레인들의 데이터를 정렬하여야 한다.
도 8b는 본 발명의 일 실시예에 따른 정렬 포인트 설정에 의하여 정렬된 데이터들의 타이밍도이다.
도 8b를 참조하면, 컴마 심볼을 이용하여 정렬 포인트를 설정하여 정렬 포인트를 기준으로 정렬함으로써 4개의 레인들(L0_RX_DATA, L1_RX_DATA, L2_RX_DATA, L3_RX_DATA)을 통하여 수신되는 데이터가 컴마 심볼을 기준으로 정렬된 것을 알 수 있다.
각각의 레인들에 깊이(depth)가 5인 8비트 레지스터가 사용되는 경우에 도 8a에 도시된 타이밍도에 상응하는 각각의 레인들의 레지스터의 상태는 예를 들어 하기 표 1 내지 표 4와 같이 나타낼 수 있다.
L0_RX_DATA REGISTER
ST0 ST1 ST2 ST3 ST4
t=N FE FE FE FE FE
t=N+1 COM FE FE FE FE
t=N+2 0 COM FE FE FE
t=N+3 4 0 COM FE FE
t=N+4 8 4 0 COM FE

L1_RX_DATA REGISTER
ST0 ST1 ST2 ST3 ST4
t=N FE FE FE FE FE
t=N+1 FE FE FE FE FE
t=N+2 FE FE FE FE FE
t=N+3 COM FE FE FE FE
t=N+4 1 COM FE FE FE

L2_RX_DATA REGISTER
ST0 ST1 ST2 ST3 ST4
t=N COM FE FE FE FE
t=N+1 2 COM FE FE FE
t=N+2 6 2 COM FE FE
t=N+3 10 6 2 COM FE
t=N+4 12 10 6 2 COM

L3_RX_DATA REGISTER
ST0 ST1 ST2 ST3 ST4
t=N FE FE FE FE FE
t=N+1 FE FE FE FE FE
t=N+2 COM FE FE FE FE
t=N+3 3 COM FE FE FE
t=N+4 7 3 COM FE FE

상기 표 1 내지 표 4에서 t=N은 도 8a에 도시된 타이밍도에서 4개의 레인 중 가장 먼저 컴마 심볼을 검출하는 레인(L2_RX_DATA)으로 컴마 심볼이 검출되는 타이밍을 나타낸다. t=N+1, t=N+2, t=N+3 및 t=N+4는 각각 t=N인 타이밍으로부터 한 클 럭, 두 클럭, 세 클럭 및 네 클럭 지연된 타이밍을 나타낸다. 표 1 내지 표 4에서 ST0, ST1, ST2, ST3 및 ST4는 각각 쉬프트 레지스터의 첫 번째 단계, 두 번째 단계 세 번째 단계, 네 번째 단계 및 다섯 번째 단계를 나타낸다. 도 8a, 도 8b 및 상기 표 1 내지 표 4에서 COM은 컴마 심볼을 나타내고, 아라비아 숫자로 표시된 심볼은 데이터 심볼을 나타낸다. FE는 컴마 심볼 이전에 전송되어 관심의 대상이 아닌 심볼을 나타낸다.
표 1은 레인(L0_RX_DATA)에 상응하는 레지스터의 상태를 나타낸다. 레인(L0_RX_DATA)에 상응하는 레지스터는 FIFO방식의 쉬프트 레지스터로, 입력되는 데이터를 매 클럭마다 쉬프트하여 저장한다. 매 클럭마다 쉬프트 레지스터에 입력된 데이터가 표 1에 기술된 ST0쪽에서 ST4쪽으로 쉬프트된다. 깊이가 5이므로 5클럭동안 데이터를 저장할 수 있다. 표 1에 기술된 바와 같이 레인(L0_RX_DATA)은 레인(L2_RX_DATA)에 상응하는 레지스터에 처음으로 컴마 심볼이 저장되는 타이밍(t=N)보다 한 클록 늦은 타이밍(t=N+1)에 컴마 심볼이 레지스터로 입력된다. 컴마 심볼은 레인(L2_RX_DATA)에 상응하는 레지스터에 처음으로 컴마 심볼이 저장되는 타이밍(t=N)보다 네 클록 늦은 타이밍(t=N+4)까지 매 클록마다 한 단계씩 쉬프트되면서 저장된다.
표 2는 레인(L1_RX_DATA)에 상응하는 레지스터의 상태를 나타낸다. 레인(L1_RX_DATA)에 상응하는 레지스터는 FIFO방식의 쉬프트 레지스터로, 입력되는 데이터를 매 클럭마다 쉬프트하여 저장한다. 매 클럭마다 쉬프트 레지스터에 입력된 데이터가 표 2에 기술된 ST0쪽에서 ST4쪽으로 쉬프트된다. 깊이가 5이므로 5클럭동 안 데이터를 저장할 수 있다. 표 2에 기술된 바와 같이 레인(L1_RX_DATA)은 레인(L2_RX_DATA)에 상응하는 레지스터에 처음으로 컴마 심볼이 저장되는 타이밍(t=N)보다 세 클록 늦은 타이밍(t=N+3)에 컴마 심볼이 레지스터로 입력된다. 컴마 심볼은 레인(L2_RX_DATA)에 상응하는 레지스터에 처음으로 컴마 심볼이 저장되는 타이밍(t=N)보다 네 클록 늦은 타이밍(t=N+4)까지 매 클록마다 한 단계씩 쉬프트되면서 저장된다.
표 3은 레인(L2_RX_DATA)에 상응하는 레지스터의 상태를 나타낸다. 레인(L2_RX_DATA)에 상응하는 레지스터는 FIFO방식의 쉬프트 레지스터로 입력되는 데이터를 매 클럭마다 쉬프트하여 저장한다. 매 클럭마다 쉬프트 레지스터에 입력된 데이터가 표 3에 기술된 ST0쪽에서 ST4쪽으로 쉬프트된다. 깊이가 5이므로 5클럭동안 데이터를 저장할 수 있다. 표 3에 기술된 바와 같이 레인(L2_RX_DATA)은 t=N인 타이밍에 컴마 심볼이 레지스터로 입력된다. 컴마 심볼은 레인(L2_RX_DATA)에 상응하는 레지스터에 처음으로 컴마 심볼이 저장되는 타이밍(t=N)보다 네 클록 늦은 타이밍(t=N+4)까지 매 클록마다 한 단계씩 쉬프트되면서 저장된다.
표 4는 레인(L3_RX_DATA)에 상응하는 레지스터의 상태를 나타낸다. 레인(L3_RX_DATA)에 상응하는 레지스터는 FIFO방식의 쉬프트 레지스터로 입력되는 데이터를 매 클럭마다 쉬프트하여 저장한다. 매 클럭마다 쉬프트 레지스터에 입력된 데이터가 표 4에 기술된 ST0쪽에서 ST4쪽으로 쉬프트된다. 깊이가 5이므로 5클럭동안 데이터를 저장할 수 있다. 표 4에 기술된 바와 같이 레인(L3_RX_DATA)은 레인(L2_RX_DATA)에 상응하는 레지스터에 처음으로 컴마 심볼이 저장되는 타이밍(t=N) 보다 두 클록 늦은 타이밍(t=N+2)에 컴마 심볼이 레지스터로 입력된다. 컴마 심볼은 레인(L2_RX_DATA)에 상응하는 레지스터에 처음으로 컴마 심볼이 저장되는 타이밍(t=N)보다 네 클록 늦은 타이밍(t=N+4)까지 매 클록마다 한 단계씩 쉬프트되면서 저장된다.
상기 표 1 내지 표 4에서 4개의 레인 전부에 대하여 컴마 심볼이 저장된 타이밍(t=N+3)에서 각각의 레인에 상응하는 레지스터에 저장된 컴마 심볼의 위치에 따라 정렬 포인트를 설정한다.
즉, 표 1에 기술된 레인(L0_RX_DATA)에 상응하는 레지스터에서 4개의 레인 전부에 대하여 컴마 심볼이 저장된 타이밍(t=N+3)에 컴마 심볼은 첫 번째 단계(ST0)에서 두 단계 쉬프트 되어 세 번째 단계(ST2)에 저장되어 있는 상태가 된다. 따라서, 예를 들어, 레인(L0_RX_DATA)에 대한 정렬 포인트를 이진수 "00111"과 같이 설정할 수 있다.
표 2에 기술된 레인(L1_RX_DATA)에 상응하는 레지스터에서 4개의 레인 전부에 대하여 컴마 심볼이 저장된 타이밍(t=N+3)에 컴마 심볼은 첫 번째 단계(ST0)에 저장되어 있는 상태가 된다. 따라서, 예를 들어, 레인(L1_RX_DATA)에 대한 정렬 포인트를 이진수 "00001"과 같이 설정할 수 있다.
표 3에 기술된 레인(L2_RX_DATA)에 상응하는 레지스터에서 4개의 레인 전부에 대하여 컴마 심볼이 저장된 타이밍(t=N+3)에 컴마 심볼은 첫 번째 단계(ST0)에서 세 단계 쉬프트 되어 네 번째 단계(ST3)에 저장되어 있는 상태가 된다. 따라서, 예를 들어, 레인(L2_RX_DATA)에 대한 정렬 포인트를 이진수 "01111"과 같이 설정할 수 있다.
표 4에 기술된 레인(L3_RX_DATA)에 상응하는 레지스터에서 4개의 레인 전부에 대하여 컴마 심볼이 저장된 타이밍(t=N+3)에 컴마 심볼은 첫 번째 단계(ST0)에서 한 단계 쉬프트 되어 두 번째 단계(ST1)에 저장되어 있는 상태가 된다. 따라서, 예를 들어, 레인(L3_RX_DATA)에 대한 정렬 포인트를 이진수 "00011"과 같이 설정할 수 있다.
이상에서 설명한 바와 같이 각각의 레인들에 대하여 컴마 심볼을 기준으로 정렬 포인트를 설정하면 컴마 심볼 이후에 각각의 레인들에 수신되는 데이터의 타이밍을 정렬할 수 있다. 즉, 도 8a에 도시된 타이밍도에서 레인(L0_RX_DATA)에 수신되는 데이터는 두 클럭 지연시키고, 레인(L1_RX_DATA)에 수신되는 데이터는 지연시키지 아니하고, 레인(L2_RX_DATA)에 수신되는 데이터는 세 클럭 지연시키고, 레인(L3_RX_DATA)에 수신되는 데이터는 한 클럭 지연시키면 4개의 레인을 통하여 수신되는 데이터를 컴마 심볼을 기준으로 정렬하여 도 8b에 도시된 타이밍도를 얻을 수 있다.
다시 도 4를 참조하면, 피씨아이 익스프레스의 바이트 스큐 보상방법은 수신되는 데이터가 트레이닝 시퀀스가 아닌 경우 레인들 각각에 대하여 스킵 심볼의 부가 또는 삭제에 따라 정렬 포인트들을 쉬프트한다(S430).
피씨아이 익스프레스는 송신측에서 데이터와 함께 스킵 심볼(skip symbol; SKP)들을 전송한다. 피씨아이 익스프레스 수신측에서는 탄력 버퍼의 오버플로우나 언더플로우를 방지하기 위해 스킵 심볼을 부가하거나 삭제할 수 있다. 스킵 심볼은 컴마 심볼 이후에 수신되기 때문에 컴마 심볼을 이용한 정렬 이외에 스킵 심볼의 부가 또는 삭제에 따른 정렬을 수행하여야 정확한 바이트 스큐 보상을 할 수 있다.
도 9는 본 발명의 일 실시예에 따른 정렬 포인트 쉬프트를 설명하기 위한 타이밍도이다.
도 9를 참조하면, 컴마 심볼을 기준으로 정렬한 이후에 레인(L1_RX_DATA)에서는 스킵 심볼의 삭제가 수행되고, 레인(L2_RX_DATA)에서는 스킵 심볼의 부가가 수행된다. 컴마 심볼을 이용한 정렬에 불구하고 스킵 심볼의 부가 또는 삭제에 의하여 4개의 레인들(L0_RX_DATA, L1_RX_DATA, L2_RX_DATA, L3_RX_DATA)을 통하여 수신되는 수신 데이터들에 바이트 스큐가 존재한다. 따라서, 스킵 심볼의 부가 또는 삭제에 따라 정렬 포인트를 쉬프트하여 새로운 정렬 포인트에 따라 각각의 레인들의 데이터를 정렬하여야 한다.
즉, 스킵 심볼이 부가된 경우에는 그 레인에 수신되는 데이터를 덜 지연하도록 정렬 포인트를 변경하고, 스킵 심볼이 삭제된 경우에는 그 레인에 수신되는 데이터를 더 지연하도록 정렬 포인트를 변경한다.
예를 들어, 상술한 바와 같이 컴마 심볼을 이용하여 레인(L0_RX_DATA)에 대한 정렬 포인트를 이진수 "00111"로, 레인(L1_RX_DATA)에 대한 정렬 포인트를 이진수 "00001"로, 레인(L2_RX_DATA)에 대한 정렬 포인트를 이진수 "01111"로, 레인(L3_RX_DATA)에 대한 정렬 포인트를 이진수 "00011"로 설정하였다고 하자. 도 9에 도시된 바와 같이, 레인(L1_RX_DATA)에서는 스킵 심볼의 삭제가 수행되고, 레인(L2_RX_DATA)에서는 스킵 심볼의 부가가 수행되므로 레인(L1_RX_DATA)에 대한 정렬 포인트를 "00001"에서 "00011"로 변경하고, 레인(L2_RX_DATA)에 대한 정렬 포인트를 "01111"에서 "00111"로 변경한다. 레인(L1_RX_DATA)에 대한 정렬 포인트를 "00001"에서 "00011"로 변경하는 것은 레인(L1_RX_DATA)에 수신되는 데이터를 더 지연시키도록 변경한 것에 해당한다. 레인(L2_RX_DATA)에 대한 정렬 포인트를 "01111"에서 "00111"로 변경하는 것은 레인(L2_RX_DATA)에 수신되는 데이터를 덜 지연시키도록 변경한 것에 해당한다.
이와 같이, 스킵 심볼의 부가 또는 삭제에 따라 정렬 포인트를 쉬프트함으로써 변화하는 레인간의 스큐를 효과적으로 보상하여 각각의 레인으로 수신되는 데이터를 효과적으로 정렬할 수 있다.
도 5는 도 4에 도시된 S420단계의 일 예의 동작 흐름도이다.
도 5를 참조하면, 도 4에 도시된 S420단계는 레인들 중 컴마 심볼을 검출한 레인이 있는지 여부를 판단한다(S510).
피씨아이 익스프레스의 TS1 및 TS2와 같은 트레이닝 시퀀스는 소정의 간격으로 컴마 심볼을 전송한다. 따라서, S510단계는 수신되는 트레이닝 시퀀스에서 컴마 심볼을 검출한 레인이 있는지 여부를 판단한다.
레인들 중 컴마 심볼을 검출한 레인이 있는 경우에 S420단계는 소정의 시간내에 모든 레인에 대하여 컴마 심볼이 검출되었는지 여부를 판단한다(S520).
이 때, 소정의 시간은 레인들 각각에 상응하는 레지스터의 깊이와 관련된 시간이다. 즉, 레지스터의 깊이가 5인 경우라면 5클럭 이내에 모든 레인에 대하여 컴마 심볼이 검출되었는지 여부를 판단하게 된다. 이는 처음 컴마 심볼이 발견된 후 5클럭이 지나게 되면 처음 컴마 심볼을 발견한 레인에 상응하는 레지스터가 더 이상 컴마 심볼을 저장하지 못하기 때문이다.
소정의 시간내에 모든 레인에 대하여 컴마 심볼이 검출된 경우에 S420단계는 컴마 심볼이 검출된 타이밍에 따라 레인들 각각에 대하여 정렬 포인트를 설정한다(S530).
이 때, 정렬 포인트는 각각의 레인들에 상응하는 쉬프트 레지스터의 지연 포인트일 수 있다. 즉, 레인들 각각에 깊이(depth)가 5인 레지스터가 사용되는 경우에 정렬 포인트는 1 내지 5에 상응하는 포인트일 수 있다. 이 때, 1에 상응하는 정렬 포인트는 가장 최근에 저장된 데이터에 상응하도록 설정된 것이고, 5에 상응하는 정렬 포인트는 4클록 지연된 데이터에 상응하도록 설정된 것일 수 있다.
소정의 시간내에 모든 레인에 대하여 컴마 심볼이 검출되지 아니한 경우에 S420단계는 이전에 컴마 심볼이 검출된 레인의 컴마 심볼 검출에 관한 정보를 리셋시키는 동작을 수행한다(S540).
소정의 시간내에 모든 레인에 대하여 컴마 심볼이 검출되지 아니한 경우에는 다시 처음부터 모든 레인에 대한 컴마 심볼 검출동작을 수행하게 된다. 따라서, 이미 컴마 심볼이 검출된 레인의 컴마 심볼 검출에 관한 정보를 리셋시켜서 새로이 각각의 컴마 심볼 검출동작을 수행할 준비를 한다. 이 때, 컴마 심볼 검출정보는 소정의 시간내에 모든 레인에 대하여 컴마 심볼이 검출되었는지 판단하기 위해 필요한 모든 정보를 포함한다. 예를 들어, 컴마 심볼 검출정보는 해당 레인에 상응하는 레지스터에 컴마 심볼이 저장된 위치 등을 포함할 수 있다.
컴마 심볼 검출에 관한 정보를 리셋시킨 후에는 다시 S510단계로 되돌아가서 레인들 중 컴마 심볼을 검출한 레인이 있는지 판단한다.
도 6은 도 5에 도시된 S520단계의 일 예의 동작 흐름도이다.
도 6을 참조하면, 도 5에 도시된 S520단계는 레인들 중 컴마 심볼을 수신한 레인이 있는 경우에 타이머를 스타트시킨다(S610).
이 때, 타이머는 레인들 각각에 상응하는 레지스터의 깊이와 관련된 시간을 측정하기 위한 것이다. 즉, 레지스터의 깊이가 5인 경우라면 5클럭 이내에 모든 레인에 대하여 컴마 심볼이 검출되었는지 여부를 판단하게 된다. 이는 처음 컴마 심볼이 발견된 후 5클럭이 지나게 되면 처음 컴마 심볼을 발견한 레인에 상응하는 레지스터가 더 이상 컴마 심볼을 저장하지 못하기 때문이다. 따라서, 이 경우 타이머는 5클럭에 상응하는 시간을 측정할 수 있는 것이어야 한다.
다음에, S520단계는 모든 레인에 대하여 컴마 심볼이 수신되었는지 여부를 판단한다(S620).
또한 S530단계는 타이머가 종료되었는지 여부를 판단한다(S630).
이 때, S620단계 및 S630단계는 도 6에 도시된 순서, 역순 또는 동시에 수행될 수 있다.
타이머가 종료하기 전에 모든 레인에 대하여 컴마 심볼이 수신되었으면 도 5에 도시된 S530단계로 가서 컴마 심볼이 검출된 타이밍에 따라 레인들 각각에 대하여 정렬 포인트를 설정한다.
모든 레인에 대하여 컴마 심볼이 수신되지 아니하였으나 타이머가 종료하지 아니하였으면 다시 S620단계로 돌아가서 모든 레인에 대하여 컴마 심볼이 수신되었는지 여부를 판단한다.
모든 레인에 대하여 컴마 심볼이 수신되지 아니하고, 타이머가 종료하였으면 도 5에 도시된 S540단계로 가서 타이머 및 이전에 컴마 심볼이 검출된 레인의 컴마 심볼 검출에 관한 정보를 리셋시킨다.
도 7은 도 4에 도시된 S430단계의 일 예의 동작 흐름도이다.
도 7을 참조하면, 도 4에 도시된 S430단계는 스킵 심볼의 부가나 삭제가 발생하였는지 여부를 판단한다(S710).
이 때, 피씨아이 익스프레스의 파이프 등으로부터 제공되는 스킵 심볼의 부가나 삭제에 관한 정보를 이용하여 스킵 심볼의 부가나 삭제가 발생하였는지 여부를 판단할 수 있다.
스킵 심볼이 부가된 경우에 S430단계는 해당 레인의 정렬 포인트를 수신되는 데이터를 덜 지연시키도록 이동시킬 수 있는지 여부를 판단한다(S720).
이는 상기한 표 2에 기술된 경우와 같이 스킵 심볼이 부가된 경우에도 해당 레인의 정렬 포인트를 수신되는 데이터를 덜 지연시키도록 이동시킬 수 없는 경우가 있기 때문이다.
수신되는 데이터를 덜 지연시킬 수 있는 경우에 S430단계는 수신되는 데이터를 덜 지연시키도록 정렬 포인트를 이동시킨다(S740).
예를 들어, 도 9를 참조하여 상술한 바와 같이 스킵 심볼이 부가된 경우에는 해당 레인의 정렬 포인트를 "01111"에서 "00111"로 이동시킨다.
수신되는 데이터를 덜 지연시킬 수 없는 경우에 S430단계는 해당 레인을 제외한 다른 레인들의 정렬 포인트를 수신되는 데이터를 더 지연시키도록 이동시킨다(S760).
이 때, 해당 레인을 제외한 다른 레인들의 스킵 심볼 부가 또는 삭제 여부를 고려하여 효과적인 동작을 수행하도록 할 수 있다.
이 때, 정렬 포인트의 쉬프트가 불가능한 상황이 발생하지 않도록 레인들 각각에 상응하는 레지스터의 깊이를 적절하게 설정하여야 한다.
스킵 심볼이 삭제된 경우에 S430단계는 해당 레인의 정렬 포인트를 수신되는 데이터를 더 지연시키도록 이동시킬 수 있는지 여부를 판단한다(S730).
이는 예를 들어 정렬 포인트가 "11111"인 경우와 같이 스킵 심볼이 삭제된 경우에도 해당 레인의 정렬 포인트를 수신되는 데이터를 더 지연시키도록 이동시킬 수 없는 경우가 있기 때문이다.
수신되는 데이터를 더 지연시킬 수 있는 경우에 S430단계는 수신되는 데이터를 더 지연시키도록 정렬 포인트를 이동시킨다(S750).
예를 들어, 도 9를 참조하여 상술한 바와 같이 스킵 심볼이 삭제된 경우에는 해당 레인의 정렬 포인트를 "00001"에서 "00011"로 이동시킨다.
수신되는 데이터를 더 지연시킬 수 없는 경우에 S430단계는 해당 레인을 제외한 다른 레인들의 정렬 포인트를 수신되는 데이터를 덜 지연시키도록 이동시킨다(S770).
이 때, 해당 레인을 제외한 다른 레인들의 스킵 심볼 부가 또는 삭제 여부를 고려하여 효과적인 동작을 수행하도록 할 수 있다.
이 때, 정렬 포인트의 쉬프트가 불가능한 상황이 발생하지 않도록 레인들 각각에 상응하는 레지스터의 깊이를 적절하게 설정하여야 한다.
도 10은 본 발명의 일 실시예에 따른 피씨아이 익스프레스 물리 계층 수신기의 블록도이다.
도 10을 참조하면, 본 발명의 일 실시예에 따른 피씨아이 익스프레스 물리 계층 수신기는 직/병렬 변환기(910), 파이프(920) 및 스큐보상부(930)를 포함한다.
직/병렬 변환기(910)는 각각의 레인을 통하여 수신되는 직렬 데이터를 10비트 병렬 데이터로 변환한다. 직/병렬 변환기(910)는 직/병렬 변환기는 디시리얼라이저(deserializer) 또는 SERDES일 수 있다.
파이프(920)는 컴마 심볼을 이용하여 10비트 병렬 데이터에 대한 비트 정렬을 수행하고, 정렬된 10비트 데이터를 8비트 데이터로 변환하고, 수신되는 데이터의 상태에 따라 스킵 심볼을 부가 또는 삭제한다.
파이프(920)는 탄성 버퍼(Elastic Buffer)를 포함할 수 있다. 이 때, 파이프(920)는 탄성 버퍼의 오버플로우를 방지하기 위해 스킵 심볼을 삭제할 수 있다. 또한, 파이프(920)는 탄성 버퍼의 언더플로우를 방지하기 위해 스킵 심볼을 부가할 수 있다.
파이프(920)는 인텔사의 PIPE(PHY Interface for the PCI Express Architecture) 스펙에 부합하는 것일 수 있다. 인텔사의 PIPE 스펙은 기능적으로 동등한 피씨아이 익스프레스 물리계층 개발을 가능하게 하기 위해 고안된 것이다.
스큐보상부(930)는 트레이닝 시퀀스를 이용하여 8비트 데이터를 컴마 심볼을 기준으로 레인들 각각에 대하여 정렬 포인트들을 설정하고, 스킵 심볼의 부가 또는 삭제에 따라 정렬 포인트를 쉬프트하여 바이트 스큐를 보상한다. 이 때, 스큐보상부(930)는 파이프로부터 스킵 심볼의 부가 또는 삭제에 대한 정보를 입력받을 수 있다.
트레이닝 시퀀스는 피씨아이 익스프레스의 TS1 및 TS2 패턴을 포함한다. 예를 들어, 트레이닝 시퀀스는 2.5 Gb/s의 테스트 패턴일 수 있다. 피씨아이 익스프레스의 초기화 과정에서 여러 개의 TS1 또는 TS2 패턴이 수신될 수 있다.
컴마 심볼은 레인 사이의 스큐 보상 등에 사용되는 소정의 비트 구성을 가지는 8비트 심볼일 수 있다.
예를 들어, 피씨아이 익스프레스의 레인들은 4개일 수 있다.
스큐보상부(930)는 도 4내지 도 7을 통하여 설명한 피씨아이 익스프레스의 바이트 스큐 보상방법에 따라 수신되는 데이터의 레인들 사이의 바이트 스큐를 보상한다.
스큐보상부(930)는 도 4내지 도 7을 통하여 설명한 피씨아이 익스프레스의 바이트 스큐 보상방법을 수행하도록 마이크로 컨트롤러 등을 프로그래밍하여 구현할 수 있다. 스큐보상부(930)는 도 4내지 도 7을 통하여 설명한 피씨아이 익스프레스의 바이트 스큐 보상방법을 수행하도록 VHDL등의 하드웨어 기술 언어(Hardware Description Language)를 이용하여 코딩된 후 합성(synthesis) 등을 통하여 구현될 수도 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
상기와 같은 본 발명의 피씨아이 익스프레스의 바이트 스큐 보상방법 및 피씨아이 익스프레스 물리 계층 수신기는 트레이닝 시퀀스를 이용하여 컴마 심볼을 기준으로 레인들 각각에 대하여 정렬 포인트를 설정하고, 스킵 심볼의 부가 또는 삭제에 대한 정보를 반영하여 정렬 포인트를 쉬프트한다. 따라서, 스킵 심볼의 부가 또는 삭제에 불구하고 효과적으로 바이트 스큐를 보상할 수 있다. 나아가, 피씨아이 익스프레스 수신단에서 빠르고 정확하게 수신 데이터를 복원할 수 있어 효과적인 데이터 송/수신 시스템을 구현할 수 있다.

Claims (16)

  1. 수신되는 데이터가 트레이닝 시퀀스인지 여부를 판단하는 단계;
    상기 수신되는 데이터가 상기 트레이닝 시퀀스인 경우 상기 트레이닝 시퀀스를 이용하여 컴마 심볼을 기준으로 레인들 각각에 대하여 정렬 포인트들을 설정하는 단계; 및
    상기 수신되는 데이터가 상기 트레이닝 시퀀스가 아닌 경우 상기 레인들 각각에 대하여 스킵 심볼의 부가 또는 삭제에 따라 상기 정렬 포인트들을 쉬프트하는 단계를 포함하는 것을 특징으로 하는 피씨아이 익스프레스의 바이트 스큐 보상방법.
  2. 제 1 항에 있어서,
    상기 레인들은 4개인 것을 특징으로 하는 피씨아이 익스프레스의 바이트 스큐 보상방법.
  3. 제 2 항에 있어서,
    상기 정렬 포인트들을 설정하는 단계는
    상기 레인들 중 컴마 심볼을 검출한 레인이 있는지 여부를 판단하는 단계;
    상기 레인들 중 컴마 심볼을 검출한 레인이 있는 경우에 소정의 시간내에 모든 레인에 대하여 컴마 심볼이 검출되었는지 여부를 판단하는 단계; 및
    소정의 시간내에 모든 레인에 대하여 컴마 심볼이 검출된 경우에 컴마 심볼이 검출된 타이밍에 따라 상기 레인들 각각에 대하여 정렬 포인트를 설정하는 단계를 포함하는 것을 특징으로 하는 피씨아이 익스프레스의 바이트 스큐 보상방법.
  4. 제 3 항에 있어서,
    상기 정렬 포인트들을 쉬프트하는 단계는
    상기 레인들 각각에 대하여 스킵 심볼의 부가 또는 삭제가 수행되었는지 여부를 판단하는 단계;
    상기 레인들 각각에 대하여 스킵 심볼이 부가된 경우에 해당 레인의 정렬 포인트를 수신되는 데이터를 덜 지연시키도록 이동시키는 단계; 및
    상기 레인들 각각에 대하여 스킵 심볼이 삭제된 경우에 해당 레인의 정렬 포인트를 수신되는 데이터를 더 지연시키도록 이동시키는 단계를 포함하는 것을 특징으로 하는 피씨아이 익스프레스의 바이트 스큐 보상방법.
  5. 제 4 항에 있어서,
    상기 소정의 시간내에 모든 레인에 대하여 컴마 심볼이 검출되었는지 여부를 판단하는 단계는
    상기 레인들 중 컴마 심볼을 검출한 레인이 있는 경우에 타이머를 스타트시키는 단계;
    모든 레인에 대하여 컴마 심볼이 검출되었는지 여부를 판단하는 단계; 및
    상기 타이머가 종료되었는지 여부를 판단하는 단계를 포함하는 것을 특징으로 하는 피씨아이 익스프레스의 바이트 스큐 보상방법.
  6. 제 5 항에 있어서,
    상기 스킵 심볼이 부가된 경우에 해당 레인의 정렬 포인트를 수신되는 데이터를 덜 지연시키도록 이동시키는 단계는
    상기 해당 레인의 정렬 포인트를 수신되는 데이터를 덜 지연시키도록 이동시킬 수 없는 경우에 상기 해당 레인을 제외한 다른 레인들의 정렬 포인트를 수신되는 데이터를 더 지연시키도록 이동시키는 것을 특징으로 하는 피씨아이 익스프레스의 바이트 스큐 보상방법.
  7. 제 6 항에 있어서,
    상기 스킵 심볼이 삭제된 경우에 해당 레인의 정렬 포인트를 수신되는 데이터를 더 지연시키도록 이동시키는 단계는
    상기 해당 레인의 정렬 포인트를 수신되는 데이터를 더 지연시키도록 이동시킬 수 없는 경우에 상기 해당 레인을 제외한 다른 레인들의 정렬 포인트를 수신되는 데이터를 덜 지연시키도록 이동시키는 것을 특징으로 하는 피씨아이 익스프레스의 바이트 스큐 보상방법.
  8. 각각의 레인을 통하여 수신되는 직렬 데이터를 10비트 병렬 데이터로 변환하 는 직/병렬 변환기;
    컴마 심볼을 이용하여 상기 10비트 병렬 데이터에 대한 비트 정렬을 수행하고, 정렬된 상기 10비트 병렬 데이터를 8비트 데이터로 변환하고, 수신되는 데이터의 상태에 따라 스킵 심볼을 부가 또는 삭제하는 파이프; 및
    트레이닝 시퀀스를 이용하여 상기 8비트 데이터를 컴마 심볼을 기준으로 레인들 각각에 대하여 정렬 포인트들을 설정하고, 스킵 심볼의 부가 또는 삭제에 따라 상기 정렬 포인트를 쉬프트하여 바이트 스큐를 보상하는 스큐보상부를 포함하는 것을 특징으로 하는 피씨아이 익스프레스 물리 계층 수신기.
  9. 제 8 항에 있어서,
    상기 레인들은 4개인 것을 특징으로 하는 피씨아이 익스프레스 물리 계층 수신기.
  10. 제 9 항에 있어서,
    상기 스큐보상부는 상기 파이프로부터 스킵 심볼의 부가 또는 삭제에 대한 정보를 입력받는 것을 특징으로 하는 피씨아이 익스프레스 물리 계층 수신기.
  11. 제 10 항에 있어서,
    상기 스큐 보상부는
    상기 레인들 중 컴마 심볼을 검출한 레인이 있는지 여부를 판단하고,
    상기 레인들 중 컴마 심볼을 검출한 레인이 있는 경우에 소정의 시간내에 모든 레인에 대하여 컴마 심볼이 검출되었는지 여부를 판단하고,
    소정의 시간내에 모든 레인에 대하여 컴마 심볼이 검출된 경우에 컴마 심볼이 검출된 타이밍에 따라 상기 레인들 각각에 대하여 정렬 포인트를 설정하는 것을 특징으로 하는 피씨아이 익스프레스 물리 계층 수신기.
  12. 제 11 항에 있어서,
    상기 스큐 보상부는
    상기 레인들 각각에 대하여 스킵 심볼이 부가된 경우에 해당 레인의 정렬 포인트를 수신되는 데이터를 덜 지연시키도록 이동시키고,
    상기 레인들 각각에 대하여 스킵 심볼이 삭제된 경우에 해당 레인의 정렬 포인트를 수신되는 데이터를 더 지연시키도록 이동시키는 것을 특징으로 하는 피씨아이 익스프레스 물리 계층 수신기.
  13. 제 12 항에 있어서,
    상기 스큐 보상부는
    상기 소정의 시간내에 모든 레인에 대하여 컴마 심볼이 검출되는지 여부를 판단하기 위한 타이머를 포함하는 것을 특징으로 하는 피씨아이 익스프레스 물리 계층 수신기.
  14. 제 13 항에 있어서,
    상기 타이머는 상기 레인들 중 컴마 심볼을 검출한 레인이 있는 경우에 스타트되고,
    상기 소정의 시간내에 모든 레인에 대하여 컴마 심볼이 검출되지 아니한 경우에 리셋되는 것을 특징으로 하는 피씨아이 익스프레스 물리 계층 수신기.
  15. 제 14 항에 있어서,
    상기 스큐 보상부는
    상기 해당 레인의 정렬 포인트를 수신되는 데이터를 덜 지연시키도록 이동시킬 수 없는 경우에 상기 해당 레인을 제외한 다른 레인들의 정렬 포인트를 수신되는 데이터를 더 지연시키도록 이동시키는 것을 특징으로 하는 피씨아이 익스프레스 물리 계층 수신기.
  16. 제 15 항에 있어서,
    상기 스큐 보상부는
    상기 해당 레인의 정렬 포인트를 수신되는 데이터를 더 지연시키도록 이동시킬 수 없는 경우에 상기 해당 레인을 제외한 다른 레인들의 정렬 포인트를 수신되는 데이터를 덜 지연시키도록 이동시키는 것을 특징으로 하는 피씨아이 익스프레스 물리 계층 수신기.
KR1020050001995A 2005-01-10 2005-01-10 피씨아이 익스프레스의 바이트 스큐 보상방법 및 이를위한 피씨아이 익스프레스 물리 계층 수신기 KR20060081522A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020050001995A KR20060081522A (ko) 2005-01-10 2005-01-10 피씨아이 익스프레스의 바이트 스큐 보상방법 및 이를위한 피씨아이 익스프레스 물리 계층 수신기
JP2006000819A JP4870435B2 (ja) 2005-01-10 2006-01-05 Pciイクスプレスのバイトスキュー補償方法及びこのためのpciイクスプレス物理階層受信機
US11/326,622 US7434114B2 (en) 2005-01-10 2006-01-07 Method of compensating for a byte skew of PCI express and PCI express physical layer receiver for the same
TW095100726A TWI382317B (zh) 2005-01-10 2006-01-09 補償pci express的位元組偏斜的方法以及其pci express物理層接收器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050001995A KR20060081522A (ko) 2005-01-10 2005-01-10 피씨아이 익스프레스의 바이트 스큐 보상방법 및 이를위한 피씨아이 익스프레스 물리 계층 수신기

Publications (1)

Publication Number Publication Date
KR20060081522A true KR20060081522A (ko) 2006-07-13

Family

ID=36654692

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050001995A KR20060081522A (ko) 2005-01-10 2005-01-10 피씨아이 익스프레스의 바이트 스큐 보상방법 및 이를위한 피씨아이 익스프레스 물리 계층 수신기

Country Status (4)

Country Link
US (1) US7434114B2 (ko)
JP (1) JP4870435B2 (ko)
KR (1) KR20060081522A (ko)
TW (1) TWI382317B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9058266B2 (en) 2012-04-05 2015-06-16 Electronics And Telecommunications Research Institute Deskew apparatus and method for peripheral component interconnect express

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7397768B1 (en) 2002-09-11 2008-07-08 Qlogic, Corporation Zone management in a multi-module fibre channel switch
US7930377B2 (en) 2004-04-23 2011-04-19 Qlogic, Corporation Method and system for using boot servers in networks
US7669190B2 (en) 2004-05-18 2010-02-23 Qlogic, Corporation Method and system for efficiently recording processor events in host bus adapters
US7577772B2 (en) * 2004-09-08 2009-08-18 Qlogic, Corporation Method and system for optimizing DMA channel selection
US20060064531A1 (en) * 2004-09-23 2006-03-23 Alston Jerald K Method and system for optimizing data transfer in networks
US7676611B2 (en) * 2004-10-01 2010-03-09 Qlogic, Corporation Method and system for processing out of orders frames
US7392437B2 (en) * 2005-01-20 2008-06-24 Qlogic, Corporation Method and system for testing host bus adapters
US7281077B2 (en) * 2005-04-06 2007-10-09 Qlogic, Corporation Elastic buffer module for PCI express devices
US9014563B2 (en) 2006-12-11 2015-04-21 Cisco Technology, Inc. System and method for providing an Ethernet interface
JP4917901B2 (ja) * 2007-01-15 2012-04-18 川崎マイクロエレクトロニクス株式会社 受信装置
US8284792B2 (en) * 2007-06-01 2012-10-09 Apple Inc. Buffer minimization in interface controller
CA2632031A1 (en) * 2007-09-05 2009-03-05 Faisal Dada Aligning data on parallel transmission lines
US7769048B2 (en) * 2008-06-25 2010-08-03 Intel Corporation Link and lane level packetization scheme of encoding in serial links
US8036248B2 (en) * 2008-10-29 2011-10-11 Silicon Image, Inc. Method, apparatus, and system for automatic data aligner for multiple serial receivers
JP5217946B2 (ja) * 2008-11-19 2013-06-19 株式会社リコー 半導体回路及び信号伝送システム
JP5266164B2 (ja) * 2009-08-25 2013-08-21 ルネサスエレクトロニクス株式会社 データ受信装置
JP2011071852A (ja) * 2009-09-28 2011-04-07 Fujitsu Ltd 伝送システムおよび伝送方法
JP5426326B2 (ja) * 2009-11-09 2014-02-26 ルネサスエレクトロニクス株式会社 データ受信装置、データ受信方法、及びプログラム
TWI423007B (zh) * 2009-12-31 2014-01-11 Via Tech Inc 串列匯流排裝置以及其時脈差補償方法
TW201142613A (en) * 2010-05-31 2011-12-01 Jmicron Technology Corp Timing aligning circuit and timing aligning method for aligning data transmitting timing of a plurality of lanes
US8488729B1 (en) * 2010-09-10 2013-07-16 Altera Corporation Deskew across high speed data lanes
JP5595303B2 (ja) * 2011-02-23 2014-09-24 ルネサスエレクトロニクス株式会社 データ受信装置、データ受信方法及びプログラム
WO2013001631A1 (ja) * 2011-06-29 2013-01-03 富士通株式会社 伝送装置、伝送回路、伝送システムおよび伝送装置の制御方法
US9600431B2 (en) 2012-10-22 2017-03-21 Intel Corporation High performance interconnect physical layer
CN105765544B (zh) * 2013-12-26 2019-04-09 英特尔公司 多芯片封装链路
GB2524979A (en) * 2014-04-08 2015-10-14 Ibm Method for verifying the functionality of a digital circuit
US9666263B2 (en) * 2015-10-07 2017-05-30 Samsung Electronics Co., Ltd. DIMM SSD SoC DRAM byte lane skewing
US10789201B2 (en) * 2017-03-03 2020-09-29 Intel Corporation High performance interconnect
US10445265B2 (en) * 2017-10-20 2019-10-15 Cisco Technology, Inc. Method and apparatus for deskewing decentralized data streams
TWI782694B (zh) * 2021-09-06 2022-11-01 智原科技股份有限公司 時序調整電路、時序不對稱消除方法及接收電路

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06164564A (ja) * 1992-11-19 1994-06-10 Nec Eng Ltd データ転送システム
JP3387379B2 (ja) * 1997-09-01 2003-03-17 富士通株式会社 パラレルデータスキュー検出回路
US6336192B1 (en) 1998-02-16 2002-01-01 Nippon Telegraph And Telephone Corporation Parallel redundancy encoding apparatus
US6678842B1 (en) * 1998-12-14 2004-01-13 Agere Systems Inc. Communications system and associated deskewing methods
US6654897B1 (en) * 1999-03-05 2003-11-25 International Business Machines Corporation Dynamic wave-pipelined interface apparatus and methods therefor
JP3758953B2 (ja) 2000-07-21 2006-03-22 富士通株式会社 スキュー補正装置
JP2002135234A (ja) * 2000-10-20 2002-05-10 Mitsubishi Electric Corp スキュー調整回路
US7020729B2 (en) * 2002-05-16 2006-03-28 Intel Corporation Protocol independent data transmission interface
KR100440585B1 (ko) 2002-05-24 2004-07-19 한국전자통신연구원 대용량 데이터의 분할 전송을 위한 다중 레인간의 비틀림정렬 장치 및 방법, 그리고 기록매체
US7203853B2 (en) * 2002-11-22 2007-04-10 Intel Corporation Apparatus and method for low latency power management on a serial data link
TWI221975B (en) * 2003-07-22 2004-10-11 Via Tech Inc Apparatus and method of a high-speed serial link with de-emphasis function
US20050024926A1 (en) * 2003-07-31 2005-02-03 Mitchell James A. Deskewing data in a buffer
TWI221974B (en) * 2003-08-05 2004-10-11 Genesys Logic Inc Lane sequencing method for PCI express and the associated devices
EP1656777A1 (en) * 2003-08-11 2006-05-17 Koninklijke Philips Electronics N.V. Auto realignment of multiple serial byte-lanes
US7444558B2 (en) * 2003-12-31 2008-10-28 Intel Corporation Programmable measurement mode for a serial point to point link
US7339995B2 (en) * 2003-12-31 2008-03-04 Intel Corporation Receiver symbol alignment for a serial point to point link
US20050144341A1 (en) * 2003-12-31 2005-06-30 Schmidt Daren J. Buffer management via non-data symbol processing for a point to point link
US7631118B2 (en) * 2003-12-31 2009-12-08 Intel Corporation Lane to lane deskewing via non-data symbol processing for a serial point to point link
JP4456432B2 (ja) * 2004-08-02 2010-04-28 富士通株式会社 基準信号を用いて同期伝送を行う装置および方法
JP4330146B2 (ja) * 2004-08-19 2009-09-16 Necエンジニアリング株式会社 スキュー調整回路
US7174412B2 (en) * 2004-08-19 2007-02-06 Genesys Logic, Inc. Method and device for adjusting lane ordering of peripheral component interconnect express

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9058266B2 (en) 2012-04-05 2015-06-16 Electronics And Telecommunications Research Institute Deskew apparatus and method for peripheral component interconnect express
KR101876418B1 (ko) * 2012-04-05 2018-07-10 한국전자통신연구원 Pci 익스프레스 디스큐 장치 및 그 방법

Also Published As

Publication number Publication date
TW200636492A (en) 2006-10-16
US20060156083A1 (en) 2006-07-13
JP4870435B2 (ja) 2012-02-08
JP2006202281A (ja) 2006-08-03
US7434114B2 (en) 2008-10-07
TWI382317B (zh) 2013-01-11

Similar Documents

Publication Publication Date Title
KR20060081522A (ko) 피씨아이 익스프레스의 바이트 스큐 보상방법 및 이를위한 피씨아이 익스프레스 물리 계층 수신기
JP6433973B2 (ja) データシンボル遷移ベースのクロッキングを用いたマルチワイヤシングルエンドプッシュプルリンク
US6757348B1 (en) High-speed coordinated multi-channel elastic buffer
US20090141844A1 (en) Methods and apparatus for interface buffer management and clock compensation in data transfers
EP3211822A1 (en) Multi-wire open-drain link with data symbol transition based clocking
US10461918B2 (en) Data transmission system
US8023602B2 (en) Serial data communication apparatus and methods of using a single line
TW201521408A (zh) 以最小的實體層改變及沒有協定改變而增強行動產業處理器介面界定實體層介面之鏈結速率之方法
JP2009525625A (ja) シリアル相互接続の多数レーン用の装置及びデスキュー
US20090323728A1 (en) Asynchronous data fifo that provides uninterrupted data flow
EP2684325B1 (en) Apparatus and method for deskewing serial data transmissions
JP4917901B2 (ja) 受信装置
US7796063B2 (en) Data transmission circuits and data transceiver systems
US8526554B2 (en) Apparatus and method for deskewing serial data transmissions
JP2013055502A (ja) シリアル通信回路
KR20190055876A (ko) 신호 송수신 장치, 상태 정보 신호를 수신하는 소스 드라이버 및 그것을 포함하는 표시 장치
JP3125348B2 (ja) パラレルビット同期方式
US11190331B1 (en) Data alignment in physical layer device
US20030076562A1 (en) High speed optical transmitter and receiver with a serializer with a minimum frequency generator
US7660364B2 (en) Method of transmitting serial bit-stream and electronic transmitter for transmitting a serial bit-stream
KR102654417B1 (ko) 표시장치에서의 데이터 통신 방법
CN113946526A (zh) 一种高速串行总线的多通道数据绑定系统及方法
US6895542B2 (en) Data recovery circuit and method and data receiving system using the same
US20230128574A1 (en) Method for data transmission
JP2022037647A (ja) 高速シリアル伝送回路

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid