KR20190011727A - 레플리카 레인을 사용한 채널 트레이닝 - Google Patents

레플리카 레인을 사용한 채널 트레이닝 Download PDF

Info

Publication number
KR20190011727A
KR20190011727A KR1020187033047A KR20187033047A KR20190011727A KR 20190011727 A KR20190011727 A KR 20190011727A KR 1020187033047 A KR1020187033047 A KR 1020187033047A KR 20187033047 A KR20187033047 A KR 20187033047A KR 20190011727 A KR20190011727 A KR 20190011727A
Authority
KR
South Korea
Prior art keywords
lane
data
sampling point
replica
transmitter
Prior art date
Application number
KR1020187033047A
Other languages
English (en)
Other versions
KR102572281B1 (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 KR20190011727A publication Critical patent/KR20190011727A/ko
Application granted granted Critical
Publication of KR102572281B1 publication Critical patent/KR102572281B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/03Shaping networks in transmitter or receiver, e.g. adaptive shaping networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/147Network analysis or design for predicting network behaviour
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/14Channel dividing arrangements, i.e. in which a single bit stream is divided between several baseband channels and reassembled at the receiver
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/04Speed or phase control by synchronisation signals
    • H04L7/06Speed or phase control by synchronisation signals the synchronisation signals differing from the information signals in amplitude, polarity or frequency or length
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/04Speed or phase control by synchronisation signals
    • H04L7/10Arrangements for initial synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0016Arrangements for synchronising receiver with transmitter correction of synchronization errors
    • H04L7/0033Correction by delay
    • H04L7/0041Delay of data signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/04Speed or phase control by synchronisation signals
    • H04L7/041Speed or phase control by synchronisation signals using special codes as synchronising signal
    • H04L7/043Pseudo-noise [PN] codes variable during transmission

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Power Engineering (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Dc Digital Transmission (AREA)

Abstract

레플리카 레인 상에서 트레이닝 시퀀스를 이용하기 위한 시스템, 장치, 및 방법이 기술된다. 송신기가 다수의 데이터 레인을 가진 통신 채널을 통해 수신기에 연결된다. 레인들 중 하나는 온도 변동, 전력 공급 변동, 또는 기타 요인들로 인한 최적 샘플링 포인트의 드리프트를 추적하는데 사용되는 레플리카 레인이다. 데이터가 데이터 레인 상에서 전송될 때, 테스트 패턴이 레플리카 레인 상에서 전송되어, 레플리카 레인의 최적 샘플링 포인트가 이전 테스트 이래 드리프트되었는지 여부를 결정할 수 있다. 최적 샘플링 포인트가 레플리카 레인에 대해 드리프트된 경우, 레플리카 레인의 샘플링 포인트 및 데이터 레인의 샘플링 포인트에 대해 조정이 이루어진다.

Description

레플리카 레인을 사용한 채널 트레이닝
본 명세서에 개시된 실시예는 데이터 통신에 관한 것으로, 특히, 비트-시리얼 데이터 링크의 트레이닝의 수행에 관한 것이다.
집적 회로의 데이터 처리량은 애플리케이션의 수요 및 데이터 소비가 증가함에 따라 계속 증가하고 있다. 예를 들어 마이크로프로세서 속도의 향상 속도가 메모리 속도의 향상 속도를 계속 넘고 있다. 데이터 전송 속도를 증가시키면 데이터를 송신하고 수신하는 데 사용되는 회로의 타이밍 요건이 증가한다. 컴퓨팅 장치 및 컴퓨팅 시스템에 사용되는 많은 회로에서, 데이터는 전역 클럭(global clock)을 이용하여 이러한 회로 내에서 전달된다. 예를 들어, 클럭의 상승 에지는 플립-플롭으로 들어오는 데이터를 로딩할 수 있고, 그 후 데이터가 플립-플롭으로부터 전달 또는 처리될 수 있다. 일부 경우에, 단일 클럭이 다수의 데이터 라인의 하나의 데이터 버스에 사용되며, 각각의 데이터 레인은 개별 시리얼 비트스트림을 지닌다. 그러나, 이는 클럭의 전이가 전체 데이터 버스를 위해 사용되어야 하기 때문에, 데이터 버스의 속도를 제한한다. 일부 비트의 데이터는 다른 비트의 데이터에 비해 버스에서 내려가는데 더 오랜 시간이 걸릴 수 있다. 데이터 레인 간의 변동이 너무 클 경우, 전체 데이터에서 정확하게 클러킹을 위해 클럭 에지를 배치하기 위한 위치가 존재하지 않을 수 있다. 추가적으로, 온도 또는 전압 변동이 레인의 위상 정렬을 시간에 걸쳐 드리프트시킬 수 있다. 이러한 변동을 교정하면서, 데이터 흐름이 붕괴되거나, 중요한 동작이 차단되거나, 데이터의 전달이 지연될 수 있다.
비트-시리얼 데이터 링크의 트레이닝 수행을 위한 시스템, 장치, 및 방법이 고려된다.
일 실시예에서, 트레이닝 시퀀스는 송신기와 수신기 사이의 지연 설정을 테스트하도록 구현된다. 송신기는 다수의 데이터 레인의 통신 채널을 통해 수신기에 연결된다. 일 실시예에서, 통신 채널은 추가 레플리카 레인(extra replica lane)을 포함한다. 이러한 추가 레플리카 레인은 주기적 추적(PT: periodic tracking) 레인으로도 지칭될 수 있다. 다양한 실시예에서, 레플리카 레인은 시스템 데이터를 운반하지 않는다. 대신에, 레플리카 레인은 테스트 데이터만을 전송하도록 구성된다. 송신기는 레플리카 레인 상에서 일련의 트레이닝 시퀀스를 주기적으로 실행하며, 이때 데이터 레인은 정규 시스템 데이터를 운반한다. 트레이닝 시퀀스는 온도 변동, 전력 공급 변동, 및/또는 기타 요인들로 인한 레플리카 레인 상의 작은 타이밍 변화를 검출하기 위해 수행된다. 레플리카 레인의 위상 타이밍에 변화가 검출될 때, 제어 로직은 레플리카 레인 및 정규 데이터 라인의 위상 타이밍을 업데이트한다.
일 실시예에서, 송신기는 레플리카 레인 상에서 테스트 패턴을 전송하면서 채널의 적어도 하나의 제 2 채널 상에서 제 1 데이터를 전송한다. 수신기가 레플리카 레인 상에서 수신된 테스트 페턴에서 하나 이상의 에러를 검출할 경우, 송신기 및/또는 수신기는 샘플링 포인트가 레플리카 레인 상에서 오정렬되었다고 결정한다. 레플리카 레인 상에서 샘플링 포인트가 오정렬되었다고 결정함에 응답하여, 송신기 및/또는 수신기는 제 1 레인의 샘플링 포인트에 대해 제 1 조정을 수행하고, 제 2 레인의 샘플링 포인트에 대해 제 1 조정을 수행한다. 제 2 레인의 샘플링 포인트에 대한 제 1 조정은 레플리카 레인의 샘플링 포인트에 대한 제 1 조정과 동등하다. 제 2 레인의 샘플링 포인트에 대해 제 1 조정을 행한 후, 송신기는 제 2 레인 상에서 제 2 데이터를 전송하도록 구성된다.
이러한 그리고 그외 다른 특징 및 장점들이 여기서 제시되는 기법들에 대한 다음의 상세한 설명에 비추어 당 업자에게 명백해질 것이다.
상기 방법들 및 메커니즘들의 상기 및 추가 이점들은 첨부 도면들과 관련하여 다음의 설명을 참조함으로써 더 잘 이해될 수 있다.
도 1은 컴퓨팅 시스템의 송신기 및 수신기의 일 실시예의 블록도다.
도 2는 레플리카 레인 상에서 트레이닝 시퀀스를 수행하기 위한 일 실시예의 타이밍도다.
도 3은 통신 채널 및 송신기를 구비한 시스템의 일 실시예의 블록도다.
도 4는 통신 채널 및 수신기를 구비한 시스템의 일 실시예의 블록도다.
도 5는 데이터 아이(data eye)의 일 실시예의 도면이다.
도 6은 멀티-레인 채널의 위상 타이밍 조정 방법의 일 실시예를 나타내는 일반화된 흐름도다.
도 7은 레플리카 레인을 이용하여 채널의 다른 레인들 상의 샘플링 포인트를 조정하기 위한 방법의 다른 실시예를 나타내는 일반화된 흐름도다.
이하의 설명에서, 본 명세서에 제시된 방법 및 메커니즘의 완전한 이해를 제공하기 위해 다수의 특정 세부 사항이 설명된다. 그러나, 당업자는 다양한 실시예들이 이러한 세부 사항없이 실시될 수 있음을 이해할 것이다. 어떤 경우에는 잘 알려진 구조, 구성 요소, 신호, 컴퓨터 프로그램 지침 및 기술이 여기에 설명된 방법을 모호하게 하는 것을 피하기 위해 자세하게 표시되지 않았다. 설명의 단순성 및 명료성을 위해, 도면들에 도시된 요소들은 반드시 일정한 비율로 그려진 것은 아니라는 것을 이해할 것이다. 예를 들어, 일부 구성 요소의 치수는 다른 구성 요소에 비해 과장될 수 있다.
도 1을 참조하면, 컴퓨팅 시스템(100)의 송신기(105) 및 수신기(110)의 일 실시예를 나타내는 블록도가 도시되어 있다. 송신기(105)는 채널(155)을 통해 수신기(110)에 연결된다. 채널(155)은 실시예에 따라 임의의 수의 데이터 레인을 포함한다. 채널(155)은 또한 레플리카 레인, 클럭 레인 및/또는 하나 이상의 다른 레인을 포함한다. 또한, 컴퓨팅 시스템(100)은 클럭(145), 클록(150), 및 도면을 모호하게 하는 것을 피하기 위해 도시되지 않은 하나 이상의 다른 구성요소를 포함한다. 예를 들어, 컴퓨팅 시스템(100)은 하나 이상의 처리 유닛(예를 들어, 프로세서, 프로세서 코어, 프로그램 가능 논리 장치, 주문형 집적 회로), 하나 이상의 메모리 장치 및/또는 다른 구성 요소를 포함한다. 하나 이상의 처리 유닛은 실시예에 따라 명령어를 실행하도록 및/또는 하나 이상의 유형의 연산(예를 들어, 부동 소수점, 정수, 메모리, I/O)을 수행하도록 구성된다. 다양한 실시예에서, 컴퓨팅 시스템(100)의 구성요소는 하나 이상의 통신 버스에 의해 상호 접속된다. 일 실시예에서, 송신기(105) 및 수신기(110)는 프로세서의 메모리 경로에 있다. 다양한 실시예에서, 프로세서에 연결된 메모리는 더블 데이터 레이트 동기 동적 랜덤 액세스 메모리(DDRSDRAM)이다. 다른 실시예에서, 메모리는 다른 유형의 메모리 디바이스를 이용하여 구현된다.
송신기(105)는 채널(155)에 결합되는 버퍼(115)를 포함한다. 일 실시예에서, 버퍼(115)는 송신기(105)가 수신기(110)로부터의 트레이닝 시퀀스의 상태에 관한 피드백을 수신하기 위해 대기하고 있을 때 하이 임피던스 상태를 생성하기 위한, 또는 채널(155) 상에 출력을 구동하기 위한, 트리스테이트(tri-state) 버퍼다. 송신기(105)는 제어 로직(135)을 또한 포함하여, 트레이닝 시퀀스를 생성할 수 있고, 채널(155)의 레인들을 위한 지연 설정을 제어할 수 있으며, 및/또는 다른 기능을 수행할 수 있다. 송신기(105)는 수퍼사이클을 카운팅하기 위한 카운터(125)를 또한 포함한다. 다양한 실시예에서, 수퍼사이클은 'N' 길이의 클럭 사이클이며, 'N'은 양의 정수이다. 예를 들어, 일 실시예에서, 수퍼사이클은 8 클럭 사이클 길이이며, 다른 실시예에서 수퍼사이클은 다른 개수의 클럭 사이클이다. 일 실시예에서, 클럭(145)은 카운터(125)의 클러킹을 위한 클럭 신호를 제공한다.
수신기(110)는 채널(155)에 연결하기 위한 버퍼(120)를 포함한다. 일 실시예에서, 버퍼(120)는 수신기(110)가 송신기(105)로부터 데이터를 수신하고 있을 때 하이 임피던스 상태를 생성하거나 채널(155) 상에 피드백 결과를 구동하기 위한 트리스테이트 버퍼다. 수신기(110)는 제어 로직(140)을 또한 포함하여, 트레이닝 시퀀스를 생성할 수 있고, 채널(155) 상의 트레이닝 시퀀스 표시를 검출할 수 있고, 수신되는 테스트 패턴을 기대값에 비교할 수 있으며, 채널(155)의 레인들을 위한 지연 설정을 제어할 수 있고, 및/또는 다른 기능을 수행할 수 있다. 수신기(110)는 수퍼사이클을 카운팅하기 위한 카운터(130)를 또한 포함한다. 일 실시예에서, 클럭(150)은 카운터(130)를 클러킹하기 위한 클럭 신호를 제공한다. 다른 실시예에서, 수신기(110)는 카운터(130)를 클러킹하기 위한 클럭 신호로 채널(155) 상에서 수신되는 클럭 신호를 이용한다.
송신기(105)는 채널(155)의 하나 이상의 데이터 레인 및 상기 레플리카 레인을 통해 테스트 패턴을 전송하도록 구성된다. 테스트 패턴은 채널(155)의 데이터 레인 및 레플리카 레인의 최적 샘플링 포인트를 결정하는데 이용된다. 레플리카 레인 및 데이터 레인의 지연은 테스트 패턴의 결과에 기초하여 조정되고, 그 후 정규 데이터 동작이 시작될 수 있다. 주기적인 원칙으로, 송신기(105)는 데이터 레인이 시스템 데이터를 운반하고 있을 때 레플리카 레인을 통해 추가의 테스트 패턴을 전송하도록 구성된다. 시스템(100)이 레플리카 레인의 최적 샘플링 포인트가 이전 테스트 이래 드리프트되고 있다고 결정하면, 시스템(100)은 레플리카 레인의 샘플링 포인트를 정렬하여 최적 샘플링 포인트와 정렬되게 한다. 시스템(100)은 데이터 레인의 샘플링 포인트에 대해 동등한 조정을 또한 행한다. 이러한 방식으로, 온도 변동, 전력 공급 변동, 및/또는 기타 요인으로 인한 데이터 레인의 샘플링 포인트의 드리프트가, 시스템 데이터의 흐름 차단없이 교정된다.
수신기(110)는 레플리카 레인 및 데이터 레인 상에서 송신기(105)에 의해 전송되는 테스트 패턴을 캡처하도록 구성된다. 그 후 수신기(110)는 캡처된 테스트 패턴의 에러를 체크한다. 일 실시예에서, 트레이닝 패턴 전송 후, 송신기(105)는 버퍼(115)를 동작정지시키고, 캡처된 테스트 패턴에 관한 피드백을 수신기(110)가 전송하기를 기다린다. 수신기(110)는 버퍼(120)를 동작시키고, 캡처된 테스트 패턴에 에러가 검출되었는지 여부를 결정 후 피드백을 송신기(105)에 전송한다. 송신기(105)는 피드백을 캡처하고, 그 후, (다른 지연 설정의 다른 테스트로부터의 피드백과 함께) 피드백을 이용하여 주어진 데이터 레인의 데이터 유효 주기(또는 "데이터 아이")를 결정할 수 있다. 피드백 캡처 후, 송신기(105)는 다른 테스트를 수행할 것인지 또는 정규 데이터 동작으로 복귀할지 여부를 결정한다. 다른 실시예에서, 수신기(110)는 캡처된 테스트 패턴의 검출된 에러 수에 기초하여 데이터 레인 및 레플리카 레인의 지연 설정을 조정한다.
시스템(100)은 송신기(105) 및 수신기(110)를 포함하는 임의의 유형의 컴퓨팅 시스템 또는 컴퓨팅 장치를 나타낸다. 예를 들어, 다양한 실시예에서, 시스템(100)은 컴퓨터, 서버, 컴퓨트 노드, 프로세서, 처리 장치, 프로그래머블 로직 장치, 메모리 장치, 프로세싱 인 메모리(PIM) 노드, 모바일 장치, 텔레비전, 엔터테인먼트 시스템 또는 장치, 및/또는 다른 유형의 시스템 또는 장치다. 시스템(100)은 송신기(105) 및 수신기(110)에 추가하여 다른 임의의 개수의 송신기 및 수신기를 또한 포함한다.
이제 도 2를 살펴보면, 레플리카 레인의 트레이닝 시퀀스를 수행하는 일 실시예의 타이밍도(200)가 도시된다. 트레이닝 시퀀스는 송신기(가령, 도 1의 송신기(105))와 수신기(가령, 도 1의 수신기(110)) 사이에서 멀티-레인 채널(가령, 채널(155))을 통해 구현된다. 멀티-레인 채널은 시스템 데이터를 운반하기 위한 복수의 데이터 레인 및 하나의 레플리카 레인을 포함한다.
시스템 클럭(202)의 사이클은 타이밍도(200)의 상위 행에 도시된다. 일 실시예에서, 타이밍도(200)의 클럭(202) 행에 도시되는 사이클은 수퍼사이클을 나타낸다. 수퍼사이클은 'N'개의 시스템 클럭으로서, 'N'은 1보다 큰 양의 정수이고, 'N'은 프로그래머블 레지스터에 저장된다. 일 실시예에서, 송신기 및 수신기 모두 수퍼사이클 카운팅을 위한 카운터를 포함한다. 일 실시예에서, 수퍼사이클은 8 클럭 사이클 길이이며, 카운터는 모듈로-8 카운터다. 다른 실시예에서, 수퍼사이클은 다른 개수의 클럭 사이클이다. 레플리카 레인 상태(204)는 타이밍도(200)에 도시되는 클럭 사이클 중 채널의 레플리카 레인의 상태를 도시한다. 레플리카 레인(206)은 레플리카 레인 상에서 데이터가 전송됨을 보여준다. 마찬가지로, 데이터 레인 상태(208)는 데이터 레인의 상태를 보여주며, 데이터 레인(210)은 타이밍도(200)에 도시되는 클럭 사이클 중 데이터 레인 상에서 전송되는 데이터를 보여준다.
초기 테스트 단계 중, 송신기는 레플리카 레인 및 데이터 레인 상에서 수신기에 테스트 패턴을 전송한다. 이는 레플리카 레인(206) 상의 테스트 데이터(215) 및 데이터 레인(210) 상의 테스트 데이터(220)로 도시된다. 일 실시예에서, 테스트 패턴은 의사-랜덤 이진 시퀀스(pseudo-random binary sequence)다. 레플리카 레인 및 데이터 레인 상에서 테스트 패턴을 전송하기 전에, 송신기는 수신기가 테스트 패턴 전송을 알 수 있도록 트레이닝 시퀀스 표시를 전송한다. 수신기가 주어진 레인 상에서 트레이닝 시퀀스 표시를 수신할 때, 수신기는 주어진 레인 상에서 테스트 패턴을 수신할 준비가 된다. 테스트 데이터(215) 및 테스트 데이터(220)는 상이한 지연 설정을 가진 채로 수행되는 임의의 개수의 테스트에 대응한다.
수신기는 레플리카 레인 및 데이터 레인 상에서 테스트 패턴을 수신하고, 수신된 테스트 패턴에 에러가 있는지 여부를 체크한다. 일 실시예에서, 수신기는 수신된 테스트 패턴 내 에러의 존재 또는 부재에 관한 피드백을 송신기에 전송한다. 이는 레플리카 및 데이터 레인의 "대기" 상태 동안 이루어진다. 시스템은 테스트 패턴의 결과를 이용하여, 레플리카 레인 및 데이터 레인 각각의 데이터 아이를 식별할 수 있다. 그 후, 테스트 데이터의 결과에 기초하여, 시스템은 데이터 레인 각각 및 레플리카 레인의 위상 타이밍을 업데이트한다. 각각의 레인은 레인 상의 수신된 테스트 패턴의 결과에 기초하여 다른 레인에 관계없이 업데이트된다. 주어진 레인이 최적 샘플링 포인트용으로 이미 구성되어 있다고 결과가 표시하면, 주어진 레인의 지연 설정이 업데이트 단계 타이밍 주기 동안 조정되지 않는다.
레플리카 레인 및 데이터 레인의 위상 타이밍에 대한 제 1 업데이트 후, 레플리카 레인은 아이들 상태에 놓이고 데이터 레인은 시스템 데이터(230)를 운반한다. 소정의 시간 주기 후, 시스템은 레플리카 레인의 위상 타이밍이 드리프트되고 있는지 여부를 확인하기 위해 레플리카 레인을 테스트한다. 시스템은 데이터 레인 상에서 시스템 데이터(230)를 계속하여 전송하며, 동시에 테스트 데이터(225)가 레플리카 레인 상에서 전송된다. 그 후, 테스트 데이터(225)가 전송된 후, 시스템은 레플리카 레인의 위상 타이밍을 조정해야하는지 여부를 결정한다. 레플리카 레인 상에서 수신된 테스트 패턴의 결과에 기초하여 최적 샘플링 포인트가 이전 테스트 이후 드리프트된 경우, 시스템은 레플리카 레인 상태(204) 행의 업데이트(235)로 도시되는 바와 같이, 레플리카 레인 상의 위상 타이밍을 업데이트한다. 시스템은 레플리카 레인의 임의의 드리프트가 데이터 레인 상에서도 발생할 것이라는 가정에 기초하여 데이터 레인의 위상 타이밍에 대해 동일한 업데이트(240)를 또한 수행한다. 다양한 실시예에서, 데이터 레인의 타이밍에 대한 업데이트는 데이터 전송이 데이터 레인 상에서 활발할 때(가령, 시스템 데이터(230)를 전송하면서) 수행된다. 다른 실시예에서, 데이터 레인은 데이터의 전송을 일시 중지시키고, 타이밍 파라미터가 업데이트 단계(가령, 240) 중 조정된다. 두 접근법 모두 고려된다. 레플리카 레인 및 데이터 레인의 위상 타이밍에 대한 각각의 업데이트(235, 240) 후, 시스템은 데이터 레인 상의 시스템 데이터 전송으로 복귀하고, 레플리카 레인은 아이들 상태로 복귀한다. 앞서 말하자면, 시스템은 계속하여 주기적으로 레플리카 레인을 테스트하, 레플리카 레인의 위상 타이밍이 드리프트된 경우 레플리카 레인 및피이터 레인에 대해 변경을 가한다.
이제 도 3을 살펴보면, 송신기(305) 및 통신 채널(320)을 가진 시스템(300)의 일 실시예의 블록도가 도시된다. 통신 채널(320)은 송신기(305) 및 수신기(도시되지 않음)를 연결하는 임의의 유형의 통신 채널을 나타낸다. 통신 채널(320)은 실시예에 따라 레플리카 레인(325A) 및 임의의 개수의 데이터 레인(325B-N)을 포함한다. 레플리카 레인(325A)은 테스트 데이터를 운반하도록 구성되어, 이전 테스트 후 최적 샘플링 포인트가 드리프트되었는지 여부를 결정할 수 있다. 정규 데이터 동작에서, 레플리카 레인(325A)은 시스템 데이터 운반에 이용되지 않으며, 대신에 아이들 상태다. 각각의 데이터 레인(325B-N)은 시스템 데이터의 시리얼 비트스트림을 운반하도록 구성된다. 통신 채널(320)은 클럭 레인(도시되지 않음) 및/또는 하나 이상의 다른 레인을 또한 포함한다.
일 실시예에서, 송신기(305)는 제어 로직(310) 및 지연 요소(315A-N)를 포함한다. 각각의 개별 지연 요소 세트(315A-N)는 레인(325A-N)의 대응하는 레인에 대한 지연 설정을 선택하기 위해 하나 이상의 지연 요소를 포함한다. 일 실시예에서, 하나 이상의 지연 요소는 레인(325A-N) 중 단일 레인에 적용할 개략적 지연 조정 및 정밀 지연 조정을 포함한다.
송신기(305)는 초기 테스트 주기 동안 레인(325A-N)의 지연 설정을 테스트하기 위해, 모든 레인(325A-N) 상에서 테스트 패턴을 전송하도록 구성된다. 예를 들어, 초기 테스트 주기는 시동시 또는 리셋 후 이루어진다. 테스트 패턴 전송 후, 송신기는 그 출력 버퍼(가령, 도 1의 버퍼(115))를 동작정지시킨다. 출력 버퍼는 송신기(305)가 수신기에 테스트 패턴을 전송한 후 송신기(305)에 의해 하이 임피던스 상태로 스위칭되는 트리스테이트 버퍼다. 피드백을 준비하는 시간 주기 후, 수신기는 출력 버퍼를 활성화시키고 송신기에 피드백을 전송한다. 일 실시예에서, 피드백은 수신된 테스트 패턴에 에러가 있는지 여부를 표시한다. 일 실시예에서, 피드백은 단일 비트이다. 다른 실시예에서, 피드백은 다수의 비트를 이용하여 다수의 에러를 표시한다. 송신기는 피드백을 수신하고 피드백을 이용하여 현재 지연 설정이 데이터 아이의 내부 또는 외부인지를 결정할 수 있다. 송신기가 피드백을 수신 후, 다른 테스트가 수행되거나 송신기가 정규 데이터 동작으로 돌아간다.
일 실시예에서, 송신기(305)는 각 레인 상에서 테스트 패턴을 송신하고, 그 후 수신기(도시되지 않음)가 각각의 테스트 패턴 내 검출된 다수의 에러와 함께 피드백을 송신기(305)에 전송한다. 그 후 송신기(305)의 제어 로직(310)은 이 피드백을 이용하여 각 레인(325A-N)의 데이터 아이를 결정할 수 있다. 예를 들어, 송신기는 채널(320)의 각각의 레인(325A-N)의 상이한 지연 설정으로 복수의 테스트 패턴을 전송한다. 이러한 테스트 패턴들에 대한 수신기로부터의 피드백을 제어 로직(310)이 이용하여, 각 레인에 대한 데이터 아이의 위치를 결정할 수 있다. 제어 로직(310)은 각각의 지연 요소(315A-N)를 조정하여, 대응 레인의 수신기 상의 샘플링 포인트가 데이터 아이 위치에 기초하여 최적 샘플링 포인트에 대응하게 할 수 있다. 지연 요소(315A-N)에 대한 각각의 조정은 다른 지연 요소(315A-N)에 대한 조정에 대해 관계없이 이루어진다.
그 후, 모든 레인(325A-N)에 대해 위상 테스트 시퀀스가 수행된 후, 시스템(300)은 정규 데이터 동작으로 진행한다. 정규 데이터 동작 중, 데이터 레인(325B-N)을 이용하여 시스템 데이터를 운반하고 레플리카 레인(325A)은 아이들 상태에 있다. 다시 말해서, 레플리카 레인(325A)은 시스템 데이터 운반에 사용되지 않는다. 그 후, 정규 데이터 동작 중, 시스템(300)은 레플리카 레인(325A)을 주기적으로 이용하여, 이전 테스트 이후 위상 타이밍이 드리프트되고 있는지 여부를 확인하도록 위상 테스트를 수행한다. 실시예에 따라, 레플리카 레인(325A) 상의 위상 타이밍은 온도 변동, 전력 공급 변동, 및/또는 기타 요인들에 기초하여 드리프트된다. 시스템(300)은 레플리카 레인(325A) 상에서 위상 테스트를 수행하고, 데이터 레인(325B-N)은 시스템 데이터를 운반하고 있다. 이러한 방식으로, 시스템(300)은 데이터 레인(325B-N) 상에서의 시스템 데이터 흐름을 차단하지 않으면서 레플리카 레인(325A)의 위상 타이밍을 테스트할 수 있다.
시스템(300)이 레플리카 레인(325A) 상에서 위상 타이밍의 드리프트를 검출하면, 시스템(300)은 지연 요소(315A)를 조정함으로써 레플리카 레인(325A)의 타이밍을 교정한다. 또한, 시스템(300)은 데이터 레인(325B-N)에 영향을 미칠 다른 지연 요소(315B-N)를 동일하게 조정한다. 많은 경우에, 레플리카 레인(325A) 상에서 위상 타이밍에 나타난 드리프트는 데이터 레인(325B-N)에서도 발생하였을 것이다. 따라서, 시스템(300)은 단일 레플리카 레인(325A)에서만 테스트를 수행함으로써 모든 레인(325A-N)의 위상 타이밍 드리프트를 교정할 수 있다. 일 실시예에서, 시스템(300)은 규칙적 간격으로 단일 레플리카 레인(325A) 상에서 이러한 테스트를 수행하도록 구성된다. 다른 실시예에서, 시스템(300)은 하나 이상의 상태조건(가령, 에러율 증가, 온도 변동, 전력 공급 변동)의 검출에 응답하여 레플리카 레인(325A)에 대한 테스트를 수행하도록 구성된다.
이제 도 4를 살펴보면, 통신 채널(405) 및 수신기(415)를 구비한 시스템(400)의 일 실시예의 블록도가 도시된다. 도 3의 시스템(300)과 유사하게, 시스템(400)은 레플리카 레인(410A)의 위상 타이밍 드리프트 검출에 기초하여 데이터 레인(410B-N)의 위상 타이밍을 교정하도록 구성된다. 그러나, 시스템(300)에 반해, 시스템(400)은 지연 요소(420A-N)를 이용하여 수신기(415)의 위상 타이밍을 교정한다. 이러한 실시예에서, 송신기(도시되지 않음)에 피드백을 전송하기보다, 수신기(415)의 제어 로직(425)은 수신된 테스트 패턴의 피드백을 이용하여, 지연 요소(420A-N)를 조정한다.
이제 도 5를 살펴보면, 데이터 아이(500)의 일 실시예의 도면이 도시된다. 데이터 아이(500)는 채널(가령, 도 3의 통신 채널(320)) 상의 비트 전이를 캡처함으로써 모니터링되는 데이터 유효 주기의 한 예다. 일 실시예에서, 시스템(가령, 시스템(300)은 데이터 아이(500)의 경계를 검출하도록 상이한 지연 설정에서 다수의 트레이닝 시퀀스를 수행하도록 구성된다. 시스템은 각 테스트의 결과에 관해 수신기(가령, 도 1의 수신기(110))에 의해 생성되는 피드백을 이용하도록 구성된다.
시스템은 다수의 지연 설정으로 다수의 테스트를 수행하고, 피드백이 불량(즉, 하나 이상의 에러)로부터 양호(가령, 에러 없음)로 바뀔 때, 시스템은 이러한 특정 지연 설정을 데이터 아이(500)의 열림(510)과 일치하는 것으로 인식한다. 시스템은 지연에 작은 증분을 더하고 추가의 테스트를 수행하여, 피드백이 양호에서 불량으로 바뀔 때, 시스템은 데이터 아이(500)의 닫힘(520)을 식별한다. 그 후 시스템은 열림(510) 및 닫힘(520)의 평균을 취하여, 데이터 아이(500)의 중심(530)을 연산할 수 있다. 데이터 아이(500)의 중심(530)에 대응하는 지연 설정은 채널의 주어진 레인에 대한 최적 지연 설정으로 간주된다. 일 실시예에서, 시스템은 채널의 레플리카 레인에서 이러한 테스트를 수행하며, 그 후 이 테스트 결과를 이용하여 채널의 데이터 레인의 지연 설정을 업데이트할 수 있다.
이제 도 6을 살펴보면, 멀티레인 채널의 위상 타이밍을 조정하기 위한 방법(600)의 일 실시예가 도시된다. 논의를 위해, 본 실시예의 단계들이 순차적인 방식으로 도시된다. 아래 기술되는 방법의 다양한 실시예에서, 기술되는 요소들 중 하나 이상이 동시에, 또는 도시되는 것과 다른 순서로 수행되며, 또는 완전히 생략된다. 다른 추가적인 요소들이 또한 요망되는 대로 수행된다. 여기서 기술되는 다양한 시스템 또는 장치 중 임의의 것이 방법(600)을 구현하도록 구성된다.
멀티레인 통신 채널을 통해 수신기에 연결되는 송신기를 갖춘 시스템이 채널의 다수의 레인에 대한 트레이닝 시퀀스를 동시에 구현한다(블록(605)). 일 실시예에서, 통신 채널은 레플리카 레인 및 하나 이상의 데이터 레인을 포함한다. 채널의 다수의 레인에서 트레이닝 시퀀스를 구현하는 과정으로서, 시스템은 각각의 레인이 최적 샘플링 포인트에서 유입 데이터를 샘플링할 수 있도록 레인에 대한 지연 설정을 업데이트한다.
그 후, 시스템은 정규 데이터 동작에 데이터 레인을 이용할 수 있다(블록(610)). 정규 데이터 동작 중, 채널의 레플리카 레인은 아이들 상태다. 그 후, 최종 트레이닝 시퀀스가 구현된 이래 주어진 크기의 시간이 경과하였는지를 시스템이 결정한다(조건 블록(615)). 예를 들어, 시스템은 주어진 크기의 시간을 추적하는 타이머를 갖고, 주어진 크기의 시간은 프로그램가능하고 실시예마다 다를 수 있다.
주어진 크기의 시간이 경과하면(조건 블록(615), "예"로 분기), 시스템은 그 후 데이터 레인 상에서 시스템 데이터를 전송하면서 동시에 레플리카 레인 상에서 하나 이상의 트레이닝 시퀀스를 구현한다. 주어진 크기의 시간이 경과하지 않으면(조건 블록(615), "아니오"로 분기), 방법(600)은 그 후 조건 블록(615)에 머무른다. 블록(620) 이후, 시스템은 레플리카 레인에 대한 최적 샘플링 포인트가 이전 테스트로부터 드리프트되었음을 레플리카 레인 상에 구현된 트레이닝 시퀀스가 표시하는지를 결정한다(조건 블록(625)).
레플리카 레인에 대한 최적 샘플링 포인트가 이전 테스트로부터 드리프트된 경우(조건 블록(625), "예"로 분기), 시스템은 그 후 레플리카 레인의 샘플링 포인트를 재정렬시키도록 레플리카 레인의 지연 설정에 대해 제 1 조정을 가한다(블록(630)). 시스템은 데이터 레인의 샘플링 포인트를 재정렬시키도록 채널의 데이터 레인의 지연 설정에 제 1 조정을 또한 가한다(블록(635)). 시스템은 레플리카 레인 상의 최적 샘플링 포인트에서의 임의의 드리프트가 데이터 레인 상에서 또한 발생할 것이라는 가정 하에 동작한다. 따라서, 시스템은 데이터 레인의 지연 설정에 대해, 레플리카 레인의 지연 설정에 시스템이 기하는 것과 동일한 조정을 가한다. 예를 들어, 제 1 크기의 지연이 레플리카 레인의 지연 설정에 추가된 경우, 그 후 제 1 크기의 지연이 데이터 레인의 지연 설정에 추가된다. 레플리카 레인의 최적 샘플링 포인트가 이전 테스트로부터 드리프트되지 않은 경우(조건 블록(625), "아니오"로 분기), 그 후 시스템은 레플리카 레인 및 데이터 레인의 현 지연 설정을 유지한다(블록(640)). 블록(635, 640) 이후, 방법(600)은 블록(610)으로 되돌아가고 시스템은 정규 데이터 동작에 대해 데이터 레인을 계속 이용한다.
이제 도 7을 살펴보면, 채널의 다른 레인 상의 샘플링 포인트를 조정하기 위해 레플리카 레인을 이용하기 위한 방법(700)의 일 실시예가 도시된다. 논의를 위해, 본 실시예의 단계들이 순차적인 방식으로 도시된다. 아래 기술되는 방법의 다양한 실시예에서, 기술되는 요소들 중 하나 이상의 동시에, 또는 도시되는 것과는 다른 순서로 수행되며, 또는 완전히 생략된다. 다른 추가의 요소들이 원하는대로 또한 수행된다. 여기서 기술되는 다양한 시스템 또는 장치 중 임의의 것이 방법(700)을 구현하도록 구성된다.
송신기가 멀티 레인 채널의 제 1 레인 상에서 수신기에 하나 이상의 테스트 패턴을 전송함과 동시에, 채널의 제 2 레인 상에서 제 1 데이터를 전송한다(블록(705)). 송신기 및 수신기는 호스트 시스템 내의 구성요소들이다. 제 1 레인은 "레플리카 레인"으로도 지칭될 수 있다. 하나 이상의 테스트 패턴이 트레이닝 시퀀스의 일부분으로 제 1 레인 상에서 수신기에 전송되어, 송신기와 수신기 간에 제 1 레인 상에서 지연 설정을 테스트할 수 있다. 이러한 트레이닝 시퀀스를 이용하여, 제 1 레인에 대한 데이터 아이의 위치를 결정할 수 있고, 데이터 아이(및 대응하는 최적 샘플링 포인트)가 이전 테스트로부터 이동하였는지 여부를 결정할 수 있다.
그 다음, 시스템은 수신기에 의해 수신된 테스트 패턴의 결과에 기초하여 제 1 레인의 현 샘플링 포인트가 오정렬되었는지 여부를 결정한다(조건 블록(710)). 예를 들어, 시스템은 다수의 지연 세팅으로 제 1 레인 상에서 다수의 테스트를 수행하고, 수신된 테스트 패턴이 하나 이상의 에러에서 에러없음으로 바뀔 때, 시스템은 이러한 특정 지연 설정을 데이터 아이의 열림과 일치하는 것으로 인식한다. 시스템은 지연에 작은 증분을 더하여 추가 테스트를 수행하고, 수신된 테스트 패턴이 에러없음에서 하나 이상의 에러로 바뀔 때, 시스템은 데이터 아이의 닫힘을 식별한다. 시스템은 데이터 아이의 열림 및 닫힘의 평균을 취하여, 데이터 아이의 중심(또는 최적 샘플링 포인트)을 계산할 수 있다. 시스템은 그 후 이러한 새 최적 샘플링 포인트가 제 1 레인의 실제 샘플링 포인트와 일치하는지 여부를 결정한다. 다른 실시예에서, 시스템은 최적 샘플링 포인트가 제 1 레인에 대해 드리프트되었는지 여부를 결정하기 위해 다른 적절한 기술을 이용한다.
수신기에 의해 수신된 테스트 패턴에 기초하여 제 1 레인의 현 샘플링 포인트가 오정렬되었다고 시스템이 결정하면(조건 블록(710), "예"로 분기), 시스템은 제 1 레인의 샘플링 포인트에 제 1 조정을 행하여, 샘플링 포인트를 다시 최적 샘플링 포인트에 정렬시킨다(블록(715)). 또한, 시스템은 채널의 제 2 레인의 샘플링 포인트에 제 1 조정을 행한다(블록(720)). 시스템은 채널의 하나 이상의 다른 레인의 샘플링 포인트에 제 1 조정을 또한 행한다. 예를 들어, 일 실시예에서, 시스템은 채널의 모든 데이터 라인의 샘플링 포인트에 제 1 조정을 행한다. 수신기에 의해 수신되는 테스트 패턴 결과에 기초하여 제 1 레인의 샘플링 포인트가 적절히 정렬된다고 시스템이 결정하면(조건 블록(710), "아니오"로 분기), 송신기는 그 후 제 2 레인 상에서 제 2 데이터를 전송한다(블록(725)).
신호 지연의 변동이 온도 변동, 전력 공급 변동, 및/또는 기타 요인으로 인해 제 1 레인 및 기타 레인들에 대해서 유사한 방식으로 일어난다. 따라서, 제 1 레인의 최적 샘플링 포인트 변화를 검출하는 것은, 나머지 레인이 데이터 아이에 유사한 드리프트를 거쳤음을 표시하고, 제 1 레인의 교정을 위한 변화가 채널의 나머지 레인의 교정에 필요한 것과 동일한 변화이기도 함을 통상적으로 표시한다. 따라서, 채널의 제 2 레인(및 기타 레인들)에 대해 이루어진 제 1 조정이 제 1 레인에 대해 이루어진 제 1 조정과 동일하다. 예를 들어, 제 1 조정이 1/4 클럭 사이클만큼 제 1 레인에 더해진 지연의 증가일 경우, 이 지연은 1 클럭 사이클의 1/4만큼 다른 레인에 대해서도 증가한다. 대안으로서, 제 1 조정이 제 1 레인에 더해진 지연의 감소일 경우, 그리고 이 감소가 1/8 클럭 사이클 크기일 경우, 이 지연은 다른 레인에 대해서 1/8 클럭 사이클만큼 감소한다. 다른 실시예에서, 제 1 레인에 대해 이루어진 조정과 동등한 방식으로 다른 지연 증분치들이 레인으로부터 더해지거나 빼진다. 일 실시예에서, 샘플링 포인트에 대한 조정이 송신기에 의해 이루어진다. 다른 실시예에서, 샘플링 포인트에 대한 조정이 수신기에 의해 이루어진다.
블록(720) 이후, 송신기는 제 2 레인 상에서 제 2 데이터를 전송한다(블록(725)). 송신기는 다른 레인들에 대해 사용된 샘플링 포인트에 대한 조정 후 채널의 하나 이상의 다른 레인들 상에서 추가 데이터를 또한 전송한다. 블록(725) 이후, 방법(700)이 종료된다.
다양한 실시예들에서, 소프트웨어 프로그램의 프로그램 명령어를 이용하여 앞서 기술된 방법 및/또는 메커니즘을 구현할 수 있다. 프로그램 명령어는 C와 같은 하이-레벨 프로그래밍 언어로 하드웨어의 거동을 기술한다. 대안으로서, 베리로그(Verilog)와 같은 하드웨어 디자인 언어(HDL)가 사용된다. 프로그램 명령어는 일시적이지 않은 컴퓨터 판독 가능 저장 매체에 저장된다. 다양한 유형의 저장 매체를 사용할 수 있다. 저장 매체는 사용 중 컴퓨팅 시스템에 의해 액세스되어, 프로그램 실행을 위해 프로그램 명령어 및 동반 데이터를 컴퓨팅 시스템에 제공할 수 있다. 컴퓨팅 시스템은 프로그램 명령어를 실행하도록 구성된 하나 이상의 프로세서 및 적어도 하나 이상의 메모리를 포함한다.
전술한 실시예는 단지 구현의 비 제한적인 예일 뿐이라는 것을 강조해야한다. 위 개시를 완전히 이해하면 수 많은 변형과 수정이 당 업자에게 명백할 것이다. 다음의 특허 청구 범위는 이러한 모든 변형 및 수정을 포함하는 것으로 해석되어야 한다.

Claims (20)

  1. 수신기, 및
    복수의 레인을 가진 통신 채널을 통해 상기 수신기에 연결되는 송신기를 포함하는 시스템에 있어서, 상기 시스템은,
    상기 채널의 제 1 레인 상에서 테스트 패턴을 전송하도록 구성되고,
    상기 제 1 레인 상에서 상기 테스트 패턴을 전송함과 동시에 상기 채널의 제 2 레인 상에서 제 1 데이터를 전송하도록 구성되며,
    상기 제 1 레인의 샘플링 포인트의 오정렬을 결정함에 응답하여,
    상기 제 1 레인의 샘플링 포인트에 대해 제 1 조정을 수행하도록 구성되고,
    상기 채널의 상기 제 2 레인의 샘플링 포인트에 대해 상기 제 1 조정을 수행하도록 구성되는, 시스템.
  2. 제 1 항에 있어서, 상기 시스템은 상기 제 1 레인 및 제 2 레인 모두를 동시에 트레이닝시킴에 응답하여, 상기 제 1 레인의 샘플링 포인트 및 상기 제 2 레인의 샘플링 포인트를 설정하도록 또한 구성되는, 시스템.
  3. 제 1 항에 있어서, 상기 제 1 레인이 시스템 데이터 운반에 사용되지 않는, 시스템.
  4. 제 1 항에 있어서, 상기 수신기는,
    상기 제 1 레인 상에서 테스트 패턴을 수신함과 동시에 상기 제 2 레인 상에서 제 1 데이터를 수신하도록 구성되고,
    상기 테스트 패턴에서 에러가 검출되었는지 여부를 표시하는 에러 표시를 상기 제 1 레인을 통해 상기 송신기에 전달하도록 구성되는, 시스템.
  5. 제 4 항에 있어서, 상기 제 1 레인 상에서 에러 표시를 수신함에 응답하여, 상기 송신기는 상기 에러 표시가 에러가 검출되었음을 표시할 경우 제 1 레인의 샘플링 포인트를 조정하도록 상기 제 1 레인에 대한 지연 설정을 변경시키도록 구성되는, 시스템.
  6. 제 4 항에 있어서, 상기 제 1 레인 상에서 에러 표시를 수신함에 응답하여, 상기 송신기는 상기 에러 표시가 에러가 검출되었음을 표시할 경우 제 2 레인의 샘플링 포인트에 대해 제 1 조정을 행하도록 상기 제 2 레인의 지연 설정을 변경시키도록 구성되고, 상기 제 2 레인의 샘플링 포인트에 대한 제 1 조정은 상기 제 1 레인의 샘플링 포인트에 대한 제 1 조정과 동등한, 시스템.
  7. 제 6 항에 있어서, 상기 제 2 레인의 샘플링 포인트에 대한 제 1 조정은, 상기 제 2 레인 상에서 테스트 패턴 전송없이 이루어지는, 시스템.
  8. 수신기,
    송신기, 및
    레플리카 레인 및 적어도 하나의 데이터 라인을 포함하는 통신 채널을 포함하는 장치에 있어서,
    상기 송신기는,
    상기 레플리카 레인 상에서 테스트 패턴을 전송하도록 구성되고,
    상기 레플리카 레인 상에서 상기 테스트 패턴을 전송함과 동시에, 상기 채널의 데이터 레인 상에서 제 1 데이터를 전송하도록 구성되며,
    상기 레플리카 레인의 샘플링 포인트가 오정렬되었다고 결정함에 응답하여,
    상기 레플리카 레인의 샘플링 포인트에 대해 제 1 조정을 수행하도록 구성되고,
    상기 채널의 데이터 레인의 샘플링 포인트에 대해 제 1 조정을 수행하도록 구성되는, 장치.
  9. 제 8 항에 있어서, 상기 장치는 상기 레플리카 레인 및 데이터 레인 모두를 동시에 트레이닝시킴에 응답하여, 상기 레플리카 레인의 샘플링 포인트 및 상기 데이터 레인의 샘플링 포인트를 설정하도록 구성되는, 장치.
  10. 제 8 항에 있어서, 상기 레플리카 레인이 시스템 데이터 운반에 사용되지 않는, 장치.
  11. 제 8 항에 있어서, 상기 수신기는,
    상기 레플리카 레인 상에서 테스트 패턴을 수신함과 동시에 상기 데이터 라인 상에서 제 1 데이터를 수신하도록 구성되고,
    상기 테스트 패턴에서 에러가 검출되었는지 여부를 표시하는 에러 표시를 상기 레플리카 레인을 통해 상기 송신기에 전달하도록 구성되는, 장치.
  12. 제 11 항에 있어서, 상기 레플리카 레인 상에서 에러 표시를 수신함에 응답하여, 상기 송신기는, 상기 에러 표시가 에러가 검출되었음을 표시할 경우 상기 레플리카 레인의 샘플링 포인트에 대해 제 1 조정을 행하도록 상기 레플리카 레인의 지연 설정을 변경하도록 또한 구성되는, 장치.
  13. 제 11 항에 있어서, 상기 레플리카 레인 상에서 에러 표시를 수신함에 응답하여, 상기 송신기는, 상기 에러 표시가 에러가 검출되었음을 표시할 경우 상기 데이터 레인의 샘플링 포인트에 대해 제 1 조정을 행하도록 상기 데이터 레인의 지연 설정을 변경하도록 또한 구성되고, 상기 데이터 레인의 샘플링 포인트에 대한 제 1 조정은 상기 레플리카 레인의 샘플링 포인트에 대한 제 1 조정과 동등한, 장치.
  14. 제 13 항에 있어서, 상기 데이터 레인의 샘플링 포인트에 대한 제 1 보정은 상기 데이터 레인 상에서 테스트 패턴 전송없이 이루어진, 장치.
  15. 통신 채널의 제 1 레인 상에서 테스트 패턴을 전송하는 단계와,
    상기 제 1 레인 상에서 테스트 패턴을 전송함과 동시에 상기 채널의 제 2 레인 상에서 제 1 데이터를 전송하는 단계와,
    수신기에 의해 수신되는 상기 테스트 패턴에서 검출되는 다수의 에러에 기초하여 상기 제 1 레인의 샘플링 포인트가 오정렬됨을 결정함에 응답하여,
    상기 제 1 레인의 샘플링 포인트에 대해 제 1 조정을 수행하는 단계와,
    상기 채널의 제 2 레인에 의해 이용되는 샘플링 포인트에 대해 상기 제 1 조정을 수행하는 단계를 포함하는, 방법.
  16. 제 15 항에 있어서, 상기 제 1 레인 및 제 2 레인을 모두 동시에 트레이닝시킴에 응답하여, 상기 제 1 레인의 샘플링 포인트 및 상기 제 2 레인의 샘플링 포인트를 설정하는 단계를 더 포함하는, 방법.
  17. 제 15 항에 있어서, 상기 제 1 레인이 시스템 데이터 운반에 사용되지 않는, 방법.
  18. 제 15 항에 있어서,
    상기 제 2 레인 상에서 상기 제 1 데이터를 수신함과 동시에 상기 제 1 레인 상에서 테스트 패턴을 수신하는 단계와,
    상기 테스트 패턴에서 에러가 검출되었는지 여부를 표시하는 에러 표시를 상기 제 1 레인을 통해 상기 송신기에 전달하는 단계를 더 포함하는, 방법.
  19. 제 18 항에 있어서, 상기 제 1 레인 상에서 상기 에러 표시를 수신함에 응답하여, 상기 방법은,
    상기 에러 표시가 에러가 검출되었음을 표시할 경우 상기 제 1 레인의 샘플링 포인트에 대해 제 1 조정을 행하도록 상기 제 1 레인의 지연 설정을 상기 송신기에 의해 변경하는 단계를 더 포함하는, 방법.
  20. 제 18 항에 있어서, 상기 제 1 레인 상에서 상기 에러 표시를 수신함에 응답하여, 상기 방법은,
    상기 에러 표시가 에러가 검출되었음을 표시할 경우 상기 제 2 레인의 샘플링 포인트에 대해 상기 제 1 조정을 행하도록 상기 제 12 레인의 지연 설정을 상기 송신기에 의해 변경하는 단계를 더 포함하며, 상기 제 2 레인의 샘플링 포인트에 대한 제 1 조정은 상기 제 1 레인의 샘플링 포인트에 대한 제 1 조정과 동등한 것인, 방법.
KR1020187033047A 2016-06-24 2016-09-21 레플리카 레인을 사용한 채널 트레이닝 KR102572281B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/192,287 2016-06-24
US15/192,287 US10749756B2 (en) 2016-06-24 2016-06-24 Channel training using a replica lane
PCT/US2016/052725 WO2017222578A1 (en) 2016-06-24 2016-09-21 Channel training using a replica lane

Publications (2)

Publication Number Publication Date
KR20190011727A true KR20190011727A (ko) 2019-02-07
KR102572281B1 KR102572281B1 (ko) 2023-08-29

Family

ID=60675203

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187033047A KR102572281B1 (ko) 2016-06-24 2016-09-21 레플리카 레인을 사용한 채널 트레이닝

Country Status (5)

Country Link
US (2) US10749756B2 (ko)
JP (1) JP6703134B2 (ko)
KR (1) KR102572281B1 (ko)
CN (1) CN109076036B (ko)
WO (1) WO2017222578A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10749756B2 (en) 2016-06-24 2020-08-18 Advanced Micro Devices, Inc. Channel training using a replica lane
US11558120B1 (en) * 2021-09-30 2023-01-17 United States Of America As Represented By The Administrator Of Nasa Method for deskewing FPGA transmitter channels directly driving an optical QPSK modulator
US11906585B2 (en) * 2021-12-16 2024-02-20 Samsung Electronics Co., Ltd. Methods and systems for performing built-in-self-test operations without a dedicated clock source

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030046618A1 (en) * 2001-08-29 2003-03-06 Collins Hansel A. Relative dynamic skew compensation of parallel data lines
US20080222594A1 (en) * 2007-03-09 2008-09-11 Nortel Networks Limited Method and apparatus for aligning multiple outputs of an FPGA
US20120151247A1 (en) * 2010-10-27 2012-06-14 International Business Machines Corporation Dynamic Fault Detection and Repair in a Data Communications Mechanism

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5469748A (en) 1994-07-20 1995-11-28 Micro Motion, Inc. Noise reduction filter system for a coriolis flowmeter
US6178213B1 (en) * 1998-08-25 2001-01-23 Vitesse Semiconductor Corporation Adaptive data recovery system and methods
US20020093986A1 (en) * 2000-12-30 2002-07-18 Norm Hendrickson Forward data de-skew method and system
US7072355B2 (en) * 2003-08-21 2006-07-04 Rambus, Inc. Periodic interface calibration for high speed communication
US7095789B2 (en) 2004-01-28 2006-08-22 Rambus, Inc. Communication channel calibration for drift conditions
US7400670B2 (en) * 2004-01-28 2008-07-15 Rambus, Inc. Periodic calibration for communication channels by drift tracking
US7516029B2 (en) * 2004-06-09 2009-04-07 Rambus, Inc. Communication channel calibration using feedback
US7500131B2 (en) 2004-09-07 2009-03-03 Intel Corporation Training pattern based de-skew mechanism and frame alignment
US20080130815A1 (en) * 2006-12-05 2008-06-05 Kumar S Reji Selective tracking of serial communication link data
US7590789B2 (en) * 2007-12-07 2009-09-15 Intel Corporation Optimizing clock crossing and data path latency
US8307265B2 (en) 2009-03-09 2012-11-06 Intel Corporation Interconnection techniques
US20110040902A1 (en) 2009-08-13 2011-02-17 Housty Oswin E Compensation engine for training double data rate delays
US8582706B2 (en) * 2009-10-29 2013-11-12 National Instruments Corporation Training a data path for parallel data transfer
KR101110820B1 (ko) * 2010-05-28 2012-02-27 주식회사 하이닉스반도체 슬레이브 장치, 마스터 장치와 슬레이브 장치를 포함하는 시스템 및 동작방법, 칩 패키지
US8681839B2 (en) 2010-10-27 2014-03-25 International Business Machines Corporation Calibration of multiple parallel data communications lines for high skew conditions
US8774228B2 (en) * 2011-06-10 2014-07-08 International Business Machines Corporation Timing recovery method and apparatus for an input/output bus with link redundancy
US8826092B2 (en) * 2011-10-25 2014-09-02 International Business Machines Corporation Characterization and validation of processor links
US9577816B2 (en) * 2012-03-13 2017-02-21 Rambus Inc. Clock and data recovery having shared clock generator
US9071407B2 (en) * 2012-05-02 2015-06-30 Ramnus Inc. Receiver clock test circuitry and related methods and apparatuses
US8760946B2 (en) 2012-05-22 2014-06-24 Advanced Micro Devices Method and apparatus for memory access delay training
US9030341B2 (en) 2012-06-27 2015-05-12 Broadcom Corporation Compensation for lane imbalance in a multi-lane analog-to-digital converter (ADC)
US20140281085A1 (en) 2013-03-15 2014-09-18 Gregory L. Ebert Method, apparatus, system for hybrid lane stalling or no-lock bus architectures
CN103560785B (zh) * 2013-10-28 2017-05-10 中国电子科技集团公司第四十一研究所 一种产生相位相干信号的方法与装置
US9036757B1 (en) 2014-09-23 2015-05-19 Oracle International Corporation Post-cursor locking point adjustment for clock data recovery
DE112015006953T5 (de) * 2015-09-26 2018-06-14 Intel Corporation Training einer gültigen lane
US10749756B2 (en) 2016-06-24 2020-08-18 Advanced Micro Devices, Inc. Channel training using a replica lane

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030046618A1 (en) * 2001-08-29 2003-03-06 Collins Hansel A. Relative dynamic skew compensation of parallel data lines
US20080222594A1 (en) * 2007-03-09 2008-09-11 Nortel Networks Limited Method and apparatus for aligning multiple outputs of an FPGA
US20120151247A1 (en) * 2010-10-27 2012-06-14 International Business Machines Corporation Dynamic Fault Detection and Repair in a Data Communications Mechanism

Also Published As

Publication number Publication date
US20210028995A1 (en) 2021-01-28
CN109076036A (zh) 2018-12-21
US10749756B2 (en) 2020-08-18
WO2017222578A1 (en) 2017-12-28
JP2019525507A (ja) 2019-09-05
JP6703134B2 (ja) 2020-06-03
US20170373944A1 (en) 2017-12-28
KR102572281B1 (ko) 2023-08-29
CN109076036B (zh) 2022-01-28
US11805026B2 (en) 2023-10-31

Similar Documents

Publication Publication Date Title
US11805026B2 (en) Channel training using a replica lane
US20210082534A1 (en) Methods for memory interface calibration
US8644085B2 (en) Duty cycle distortion correction
US9401189B1 (en) Methods and apparatus for performing runtime data eye monitoring and continuous data strobe calibration
US8565034B1 (en) Variation compensation circuitry for memory interface
US20090276559A1 (en) Arrangements for Operating In-Line Memory Module Configurations
US10564219B2 (en) Time-aligning communication channels
US10103718B1 (en) Recalibration of source synchronous systems
US6903582B2 (en) Integrated circuit timing debug apparatus and method
US7046057B1 (en) System and method for synchronizing devices
EP3260983B1 (en) Channel training using a replica lane
CN109313616B (zh) 异步反馈训练
US7835469B2 (en) Method of compensating skew, digital communication system, receiver, electronic device, circuit and computer program product
US8957714B2 (en) Measure-based delay circuit
EP3260984B1 (en) Asynchronous feedback training
US10158351B1 (en) Skew control apparatus and algorithm using a low pass filter
US7017086B2 (en) Round-robin updating for high speed I/O parallel interfaces
US10467171B2 (en) Detecting the drift of the data valid window in a transaction

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