KR20100123836A - 2개의 기준 클럭을 구비한 리드라이버 및 그의 동작 방법 - Google Patents

2개의 기준 클럭을 구비한 리드라이버 및 그의 동작 방법 Download PDF

Info

Publication number
KR20100123836A
KR20100123836A KR1020107018505A KR20107018505A KR20100123836A KR 20100123836 A KR20100123836 A KR 20100123836A KR 1020107018505 A KR1020107018505 A KR 1020107018505A KR 20107018505 A KR20107018505 A KR 20107018505A KR 20100123836 A KR20100123836 A KR 20100123836A
Authority
KR
South Korea
Prior art keywords
inbound
clock
outbound
elastic buffer
redriver
Prior art date
Application number
KR1020107018505A
Other languages
English (en)
Other versions
KR101419292B1 (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 KR20100123836A publication Critical patent/KR20100123836A/ko
Application granted granted Critical
Publication of KR101419292B1 publication Critical patent/KR101419292B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor

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)

Abstract

2 기준 클럭 아키텍처의 리드라이버는 인바운드 탄성 버퍼 및 아웃바운드 탄성 버퍼를 포함한다. 노스 브리지로 전송되고 그로부터 수신되는 데이터는 공통 기준 클럭 아키텍처를 이용한다. 외부 블레이드로 전송되고 그로부터 수신되는 데이터는 개별 기준 클럭 아키텍처를 이용한다. 인바운드 탄성 버퍼는 인바운드 탄성 버퍼 복구 클럭 도메인, 인바운드 탄성 버퍼 공통 기준 클럭 도메인, 및 인바운드 디코더/디스크램블러, 인바운드 스크램블러/인코더 및 인바운드 선형 시프트 레지스터들을 포함한다. 아웃바운드 탄성 버퍼는 아웃바운드 탄성 버퍼 공통 기준 클럭 도메인, 아웃바운드 탄성 버퍼 낮은 지터 클럭 도메인, 및 아웃바운드 디코더/디스크램블러, 아웃바운드 스크램블러/인코더 및 아웃바운드 선형 시프트 레지스터를 포함한다.

Description

2개의 기준 클럭을 구비한 리드라이버 및 그의 동작 방법{REDRIVER WITH TWO REFERENCE CLOCKS AND METHOD OF OPERATION THEREOF}
본 발명은 전자 조립체들에 대한 타이밍 스킴들에 관한 것이다.
현재의 일부 서버 블레이드들에서는 저장 용량이 제한된다. 그러한 서버 블레이드들을 구비하는 시스템의 저장 용량을 증가시키는 데 사용될 수 있는 하나의 아키텍처는 서버 블레이드 근처에 저장 블레이드를 설치하는 것을 포함한다. 서버 블레이드 및 저장 블레이드는 x4 PCI-Express (PCIe) 링크를 통해 통신한다. 그러나, 블레이드들과 함께 사용되는 백플레인은 공통 기준 클럭을 지원하지 않는다. 더구나, 현재의 x86 클럭 아키텍처는 다수의 출력 주파수를 갖는 저가의 크리스털 플러스 클럭 생성기를 구현하므로, 서버들 상은 물론, 서버 블레이드 시스템들 상의 클럭 소스도 큰 위상 지터를 갖는 경향이 있다. 게다가, 대부분의 칩 판매자들은 저가의 디지털 클럭 데이터 복구(CDR) 회로를 구현하며, 이는 높은 위상 지터의 환경에서 적절히 동작하지 못할 수 있다.
현재의 블레이드 아키텍처에서 사용되는 개별 기준 클럭(refclk)으로 인해, 확산 스펙트럼 클럭킹(SSC)이 지원되지 않는다. 확산 스펙트럼 클럭킹을 이용하려는 임의의 시도는 아마도 그러한 아키텍처들이 실패하기 쉽게 할 것이다.
2개의 기준 클럭을 구비하는 리드라이버가 개시된다. 리드라이버는 저장 블레이드와 같은 외부 컴포넌트를 서버 블레이드 상의 노스 브리지(North-Bridge) 또는 루트 컴플렉스(Root Complex)와 같은 허브에 결합한다. 리드라이버는 리드라이버와 외부 컴포넌트 사이의 인바운드 탄성 버퍼 인터페이스에 대한 개별 기준 클럭, 노스 브리지와 리드라이버 사이의 인바운드 탄성 버퍼 인터페이스에 대한 공통 기준 클럭, 및 인바운드 디코더/디스크램블러, 인바운드 스크램블러/인코더 및 인바운드 선형 시프트 레지스터들을 구비하는 인바운드 탄성 버퍼를 포함한다. 리드라이버는 리드라이버와 외부 컴포넌트 사이의 아웃바운드 탄성 버퍼 인터페이스에 대한 개별 기준 클럭, 노스 브리지와 리드라이버 사이의 아웃바운드 탄성 버퍼 인터페이스에 대한 공통 기준 클럭, 및 아웃바운드 디코더/디스크램블러, 아웃바운드 스크램블러/인코더 및 아웃바운드 선형 시프트 레지스터들을 구비하는 아웃바운드 탄성 버퍼를 더 포함한다. 마지막으로, 리드라이버는 리드라이버의 외부 컴포넌트 측에 그리고 리드라이버의 노스 브리지 측에 결합되는 클럭 복구 로직을 포함한다.
또한, 다수의 비공통 기준 클럭을 사용하는 리드라이버가 개시된다. 리드라이버는 인바운드 데이터 부분 및 아웃바운드 데이터 부분을 구비한다. 리드라이버는 비공통 기준 클럭을 보상하도록 인바운드 데이터를 조정하기 위한 수단을 포함하는 인바운드 탄성 버퍼 및 비공통 기준 클럭을 보상하도록 아웃바운드 데이터를 조정하기 위한 수단을 포함하는 아웃바운드 탄성 버퍼를 포함한다. 리드라이버는 리드라이버의 제1 측에 결합되는 공통 기준 클럭, 리드라이버의 제2 측에 결합되는 낮은 지터의 기준 클럭, 및 리드라이버의 제1 및 제2 측에 결합되는 클럭 복구 로직을 더 포함한다.
상세한 설명은 동일 번호들이 동일 아이템들을 참조하는 아래의 도면들을 참조할 것이다. 도면에서:
도 1a 및 1b는 다중 블레이드 아키텍처들의 실시예들을 나타내는 도면.
도 2는 확산 스펙트럼 클럭킹을 이용하여 허가되는 주파수 변화들을 나타내는 도면.
도 3은 2개의 기준 클럭을 이용하는 다중 블레이드 아키텍처의 일 실시예를 나타내는 도면.
도 4는 2 기준 클럭 리드라이버 아키텍처의 일 실시예를 나타내는 도면.
도 5는 고속 복구 클럭에 대해 2 기준 클럭 리드라이버 아키텍처에서 사용되는 탄성 버퍼 동작의 일 실시예를 나타내는 도면.
도 6은 저속 복구 클럭에 대한 탄성 버퍼의 동작의 일 실시예를 나타내는 도면.
도 7-9는 2 기준 클럭 아키텍처들의 대안 응용들을 나타내는 도면.
도 10은 2개의 기준 클럭을 구비하는 컴퓨터 시스템 컴포넌트를 동작시키기 위한 방법의 일 실시예를 나타내는 흐름도.
본 명세서에서 사용될 때, 컴퓨터 시스템은 예를 들어 블레이드 서버 시스템들, 블레이드 저장 시스템들, 노트북 컴퓨터 및 그의 도킹 스테이션, PCI-Express 확장 시스템, 및 공통 기준 클럭을 구비하지 않은 장치들을 이용할 수 있는 임의의 다른 컴퓨팅 시스템을 포함하는 임의 수의 아키텍처들을 포함한다. 그러한 아키텍처들의 예들이 도 4 및 7-9에 제공된다. 본 명세서에서 사용될 때, 컴퓨터는 또한 컴퓨터 시스템을 구성하는 컴포넌트들의 일부 또는 서브세트를 포함한다. 본 명세서에서 사용될 때, 기준 클럭들은 낮은 등급의 시스템 클럭들, 낮은 지터의 클럭들, 및 데이터 스트림들에 내장된 클럭들을 포함한다. 본 명세서에서 사용될 때, 신호 컨디셔너들은 신호 증폭기들, 리드라이버들 및 유사한 장치들을 포함한다.
높은 데이터 전송 레이트로 동작하는 PCI-Express와 같은 고속 직렬 차동 프로토콜들의 출현은 일부 아키텍처들에서, 구체적으로는 다손실 전송 응용들에서 신호 보전의 문제들을 유발하였다. 신호 컨디셔너들은 예를 들어 등화 및 프리엠퍼시스/디엠퍼시스 기술들을 이용하여 신호 레벨 감쇠 및 잡음(지터)을 조정하고 정정하여, 수신단이 PCI-Express와 같은 고속 신호 프로토콜들을 이용하여 낮은 비트 에러 레이트들을 전송하는 데 필요한 마진들을 갖게 하는 데 이용될 수 있다. 그러한 하나의 신호 컨디셔너는 리드라이버이다.
동기 디지털 시스템들, 특히 마이크로프로세서들을 포함하는 시스템들의 설계에서는, 그러한 시스템들이 생성하는 전자기 간섭(EMI)의 스펙트럼 밀도를 줄이기 위해 확산 스펙트럼 클럭킹이 이용된다. 동기 디지털 시스템은 그의 주기성으로 인해 불가피하게 좁은 주파수 스펙트럼을 갖는 클럭 신호에 의해 구동되는 시스템이다. 실제로, 완전한 클럭 신호는 단일 주파수에 집중된 그의 모든 에너지, 및 그의 고조파들을 가질 것이며, 따라서 무한 스펙트럼 밀도를 갖는 에너지를 방출할 것이다. 실제의 동기 디지털 시스템들은 클럭 주파수 및 그의 고조파들에 걸쳐 확산되는 다수의 협대역 상의 전자기 에너지를 방출하며, 따라서 주파수 스펙트럼은 소정의 주파수들에서 전자기 간섭에 대한 규제 한도를 초과할 수 있다.
EMI 방출 문제를 방지하기 위하여, 확산 스펙트럼 클럭킹을 이용하여, 시스템의 전자기 방출 형태를 전자기 적합성(EMC) 규정에 맞게 변화시킨다. 확산 스펙트럼 클럭킹은 법정 한도를 초과하기에 충분한 에너지가 임의의 한 대역에 있지 않고 에너지가 수신기의 다수의 주파수 대역에 있도록 에너지를 분산시킨다. 그러나, 시스템 클럭의 변경은 클럭/데이터 오정렬의 위험을 유발하므로, 확산 스펙트럼 클럭킹은 설계자들에게 난제를 제공할 수 있다.
확산 스펙트럼 클럭킹은 시스템 클럭의 주파수를 천천히 앞뒤로 소량 변조함으로써 달성된다. PCI-Express 사양은 하향 확산 스펙트럼 클럭킹을 허가하는데, 즉 데이터 레이트가 30KHz 내지 33KHz의 범위 내의 변조 레이트에서 정상 데이터 레이트 주파수로부터 +0% 내지 -0.5% 변조될 수 있다. 도 2를 참조한다. 그러나, PCI-Express 사양은 여전히 확산 스펙트럼 클럭킹이 인에이블될 때에도 송신기 및 수신기 클럭들이 서로의 +/-300ppm 내에 있을 것을 요구한다. 이러한 요구는 비공통 기준 클럭을 갖는 시스템들에서는 보장될 수 없다.
PCI-Express는 소스 동기 타이밍 아키텍처를 이용한다. 소스 동기 타이밍 아키텍처에서, 데이터 및 클럭 양자는 발신 장치의 드라이버로부터 전송된다. 수신 장치는 데이터의 동기화를 허가하기 위해 클럭을 복구한다. PCI-Express는 전송된 클럭을 IBM의 8B/10B 인코딩 테이블들을 이용하여 데이터 스트림 내에 삽입하는 스킴을 이용한다. 이러한 인코딩 메커니즘은 데이터 스트림이 클럭 복구를 가능하게 하기에 충분한 수의 0에서 1로 그리고 1에서 0으로의 전이들을 갖는 것을 보장한다. 이러한 메커니즘은 스큐(skew)를 최소화해야 할 필요를 없애는 대신에 2 클럭 도메인을 생성한다. 즉, 허가된 600 ppm 허용 한계 대역으로 인해, PCI-Express 접속에 의해 서로 접속된 2개의 장치는 약간 다른 주파수들로 동작할 수 있고, 거의 그렇게 동작할 것이다.
블레이드 아키텍처에서 SAS 저장 용량을 증가시키기 위하여, 임의의 C 등급 서버 블레이드 곁에 설치하기 위한 저장 블레이드 제품이 제공된다. 서버 블레이드와 저장 블레이드 사이의 통신은 x4 PCI-Express 링크를 통해 이루어진다. 2개의 가능한 PCI-Express 링크 구성, 즉 직접 및 간접 링크가 각각 도 1a 및 1b에 도시되어 있다. 도 1a에서, 절반 높이의 C 등급 서버 블레이드(10)가 저장 블레이드(20)에 결합된다. PCI-Express 버스(18)가 서버 블레이드(10) 상의 노스 브리지(NB)(14)로부터 접속들(16, 26)을 통해 저장 블레이드(20) 상의 SAS 제어 카드(24)로 직접 접속될 때 직접 링크가 설정된다. 또한, 카드들(10, 20) 상에는 클럭들(12, 22)이 각각 도시되어 있다. 클럭들(12, 22)은 확산 스펙트럼 클럭킹이 인에이블될 때 시스템 장애를 유발할 수 있는 비공통 기준 클럭들이라는 점에 유의한다.
도 1b에서, 전체 높이의 C 등급 서버 블레이드(30)가 저장 블레이드(20) 옆에 설치된다. C 등급 서버 블레이드(30) 상의 PCI-Express 버스(38)가 노스 브리지(14)로부터 리드라이버 칩(32)으로 접속된 후, 리드라이버 칩(32)으로부터 저장 블레이드(20) 상의 SAS 제어 카드(24)로 접속된다. 리드라이버 칩(32)의 사용은 PCI-Express 버스(38)의 더 긴 트레이스 길이로 인해 추가적인 신호 손실의 원인이 된다. 리드라이버 칩(32)은 메자닌 카드(34) 상에 장착된다. 2개의 블레이드(20, 30)는 각각 비공통 기준 클럭들(22, 12)을 이용한다.
서버/저장 블레이드 응용들에서 확산 스펙트럼 클럭킹에 의해 발생하는 문제들을 해결하기 위하여, 본 명세서에서 개시되는 아키텍처들은 2개의 기준 클럭을 제공한다. 그러한 아키텍처의 일례가 도 3에 도시되어 있으며, 여기서는 저장 블레이드(100)가 서버 블레이드(120)에 결합된다. 서버 블레이드(120)는 예를 들어 C 등급 서버 블레이드를 포함하는 임의 타입의 서버 블레이드일 수 있다. 저장 블레이드는 PCI-Express 카드(24), 커넥터들(26) 및 낮은 지터의 클럭(110)을 포함한다. 낮은 지터의 클럭은 통상적으로 100 ppm(parts per million)보다 낮은 위상 지터를 갖는다. 이와 달리, 저가 클럭들은 300 ppm 이상의 위상 지터를 갖는다. 낮은 지터의 클럭을 이용하면, 위상 지터가 낮을 뿐만 아니라, 낮은 지터의 클럭은 전력 잡음 변조를 방지하며, 클럭 주파수가 매우 안정적이다. 공통 기준 클럭을 사용하지 않는 임의의 블레이드는 확산 스펙트럼 클럭킹을 수용할 수 없다는 점에 유의한다. 그 이유는 PCI 장치 내에 통상적으로 설치된 탄성 버퍼가 복구되는 클럭과 로컬 클럭 사이에서 600 ppm만을 보상할 수 있으며, 따라서 최대 5,600 ppm의 스큐를 가질 수 있는 확산 스펙트럼 클럭킹과 더불어 사용될 수 없기 때문이다.
서버 블레이드(120)는 노스 브리지(14), PCI-Express 링크(130), 커넥터들(16), 카드(150) 상에 실장된 리드라이버(200) 및 리드라이버(200)의 노스 브리지 측에 결합된 클럭(140)을 포함한다. 도 3에 도시된 바와 같이, 노스 브리지(14)는 리드라이버(200)의 노스 브리지 측에 공통인 기준 클럭(클럭 140)을 사용한다. 노스 브리지(14)는 확산 스펙트럼 클럭킹을 수용하기 위하여 드레인 및 필(drain and fill) 레이트들을 조정할 수 있는 탄성 버퍼를 구비하지 않지만, 리드라이버(200)는 도 4-6과 관련하여 설명되는 바와 같이 그러한 탄성 버퍼를 구비한다. 리드라이버(200)와 노스 브리지(14) 사이에 공통 기준 클럭을 사용함으로써, 확산 스펙트럼 클럭킹의 이익들이 노스 브리지(14)에 적용될 수 있다.
리드라이버(200)의 저장 블레이드 측에는 낮은 지터의 클럭(210)이 결합된다. 낮은 지터의 기준 클럭(210) 및 낮은 지터의 기준 클럭(110)은 동일한 회로 설계를 갖는다. 전술한 아키텍처로 인해, 리드라이버(200)는 2개의 클럭 아키텍처, 즉 공통 기준 클럭 아키텍처(140) 및 별개의 기준 클럭 아키텍처(210)와 더불어 동작한다. 2 기준 클럭 아키텍처의 이용은 확산 스펙트럼 클럭킹이 가능한 하나의 장치(예를 들어, 노스 브리지(14)) 및 정상 클럭으로 클럭킹되는 다른 장치(예를 들어, 저장 블레이드(100))와 같은 2개의 장치 또는 각각이 확산 스펙트럼 클럭킹되는 2개의 장치 사이의 클럭 주파수들의 (약간의) 차이를 지원한다.
전술한 바와 같이, 동기 타이밍 아키텍처에서는, 공통 클럭 소스가 버스 상의 모든 장치들에 클럭을 공급하며, 그 클럭은 장치들의 송수신기들이 데이터를 클럭 인 및 아웃(clock in and out)하는 것을 가능하게 하는 데 사용된다. 이러한 아키텍처는 클럭이 정확히 동시에 각각의 장치에 도달하는 것을 필요로 한다. 그러나, 소량의 핀 대 핀 스큐가 허용되는데, 이것은 클럭 트레이스들의 길이들이 장치들 간의 스큐를 최소화하기 위하여 매칭되어야 한다는 것을 의미한다. 클럭의 속도가 증가함에 따라, 허용되는 핀 대 핀 스큐가 감소하며, 이는 클럭 트레이스들의 매칭된 라우팅의 달성을 더 어렵게 한다.
2개의 기준 클럭 아키텍처, 즉 공통 기준 클럭 아키텍처 및 개별 기준 클럭 아키텍처의 사용시에, 데이터가 리드라이버(200)를 통해 흐르기 위해, 데이터는 공통 기준 클럭과 개별 기준 클럭 사이의 경계를 가로질러야 할 것이다. 이 경계는 도 3에서 리드라이버(200)를 양분하는 점선에 의해 비유적으로 지시된다. 이 경계를 천이하기 위하여, 리드라이버(200)는 그의 인바운드 및 아웃바운드 측에 탄성 버퍼들을 포함한다. 이러한 경계의 브리징은 하나의 클럭 아키텍처를 이용하여 수신 데이터를 탄성 버퍼 내에 배치하고, 다른 클럭 아키텍처를 이용하여 데이터를 탄성 버퍼 밖으로 인출함으로써 달성된다. 2개의 기준 클럭이 약간 다른 주파수로 동작할 수 있고, 노스 브리지(14)에 대해 확산 스펙트럼 클럭킹이 인에이블될 수 있으므로, 탄성 버퍼는 오버플로우 또는 언더플로우 에러 조건을 경험할 수 있다. 이러한 에러들을 제거하기 위하여, 탄성 버퍼 필 및 드레인 레이트들이 조정될 수 있다. 이러한 레이트들을 조정하기 위한 하나의 수단은 PCI-Express 아키텍처들에서 사용되는 특수 심벌들의 추가 또는 제거를 포함한다. 이러한 심벌들은 SKP 심벌들로서 알려져 있으며, SKP 배열 세트들에서 발견된다. SKP 배열 세트들은 송신기와 수신기 사이의 동기화를 유지하고 오버플로우 또는 언더플로우 에러 조건들을 방지하는 데 사용된다. 수신기는 SKP 문자들을 버릴 수 있다. SKP 배열 세트는 3개의 SKP 심벌이 뒤따르는 단일 COM 심벌로 구성된다. 필 및 드레인 레이트들을 조정하기 위한 다른 수단은 나중에 설명될 것이다.
SKP 배열 세트들이 전송되는 레이트는 2개의 장치 사이에 허용되는 최대 주파수 허용 한계, 즉 600ppm으로부터 도출된다. 이 레벨에서, 2개의 장치의 로컬 클럭들은 1,666 사이클마다 1 클럭 사이클이 시프트된다. 따라서, 송신기는 SKP 배열 세트를 1,666 클럭 사이클마다보다 더 자주 전송되도록 스케줄링해야 한다. PCI-Express 사양은 SKP 배열 세트 전송들 사이의 주기를 1,180 및 1,538 심벌 타임들 사이로서 정의한다. SKP 배열 세트의 수신시, 탄성 버퍼는 2개의 클럭 도메인 사이의 주파수 차이를 보상하기 위해 SKP 심벌들을 삽입 또는 제거할 수 있다.
도 4는 2개의 기준 클럭을 갖는 리드라이버를 더 상세히 도시한다. 도 4에서, 리드라이버(200)는 저장 블레이드(100)와 노스 브리지(14)를 결합하는 것으로 도시된다. 그러나, 리드라이버(200)는 예를 들어 임의의 2개의 블레이드 타입의 결합을 포함하는 다른 응용들에 사용될 수 있다. 리드라이버(200)는 저장 블레이드(100)로부터의 데이터를 노스 브리지(14)로 전송하는 인바운드 탄성 버퍼(220) 및 노스 브리지(14)로부터의 데이터를 전송하는 아웃바운드 탄성 버퍼(240)를 포함한다. 도 4로부터 알 수 있듯이, 인바운드 및 아웃바운드 탄성 버퍼들(220/240)을 포함하는 리드라이버(200)의 노스 브리지 측은 공통 기준 클럭(140)을 사용한다. 공통 기준 클럭(140)은 확산 스펙트럼 클럭킹을 인에이블할 수 있다. 리드라이버(200)의 저장 블레이드 측은 개별 낮은 지터 클럭(210)을 사용한다. 낮은 지터 기준 클럭(210)은 확산 스펙트럼 클럭킹을 이용하지 않는다. 저장 블레이드(100)는 또한 확산 스펙트럼 클럭킹을 또한 허가하지 않는 개별 낮은 지터 기준 클럭(110)을 사용한다. 기준 클럭들(110, 140, 210)은 내부 로직들 및 CDR(클럭 데이터 복구)을 위한 더 높은 주파수 클럭들을 생성하기 위하여 위상 동기 루프들(PLLs)에 대한 입력들로 사용되는 표준 100MHz 클럭 소스들을 구비한다. 예컨대, PLL(145)은 100MHz 클럭을 2.5GHz로 변환할 수 있다.
저장 블레이드(100)로부터의 데이터(160)는 공칭 2.5GHz로 인바운드 탄성 버퍼(220) 내로 들어가며, 인바운드 탄성 버퍼(220)로부터 나오는 데이터(165)는 공칭 2.5GHz로 나온다. 유사하게, 데이터(170)는 공칭 2.5GHz로 아웃바운드 탄성 버퍼(240) 내로 들어가며, 데이터(175)는 공칭 2.5GHz로 아웃바운드 탄성 버퍼(240)로부터 나온다. 인바운드 데이터(160)는 클럭 복구 회로(216)에 의해 복구되는 내장 클럭을 구비한다. 클럭 복구 회로(216)는 낮은 지터 기준 클럭(210)에 기초하여 PLL(212)의 출력으로부터 도출되는 로컬 클럭 B 신호(215)를 사용한다. 로컬 클럭 B 신호(215)는 아웃바운드 탄성 버퍼(240)로부터 데이터를 클럭 아웃하는 데에도 사용된다. 아웃바운드 데이터(170)는 클럭 복구 회로(141)에 의해 복구되는 내장 클럭을 갖는다. 클럭 복구 회로(141)는 공통 기준 클럭에 기초하여 PLL(142)의 출력으로부터 도출되는 로컬 클럭 A 신호(145)를 사용한다. 로컬 클럭 A 신호(145)는 인바운드 탄성 버퍼(220)로부터 데이터를 클럭 아웃하는 데에도 사용된다.
저장 블레이드(100)는 확산 스펙트럼 클럭킹을 이용하지 않고, 노스 브리지(14)는 (인에이블 시에) 확산 스펙트럼 클럭킹을 이용하므로, 인바운드 데이터(160)는 항상 인바운드 데이터(165)보다 빠른 클럭에 있을 것이다. 역으로, 아웃바운드 데이터(170)는 항상 아웃바운드 데이터(175)보다 느린 클럭에 있을 것이다. 송신기(TX)와 수신기(RX) 사이의 클럭 주파수의 차이는 5600ppm 정도로 클 수 있다. 이러한 클럭 차이를 수용하기 위하여, 인바운드 탄성 버퍼(220) 및 아웃바운드 탄성 버퍼(240)는 현재의 PCI-Express 탄성 버퍼들이 이용할 수 없는 단계들을 이용하여 그들의 필 및 드레인 레이트들을 조정할 수 있어야 한다.
공통 타입의 저장 블레이드들이 리드라이버(200)를 이용하여 결합되는 응용들에서, 확산 스펙트럼 클럭킹의 이용은 추가적인 클럭 차이를 유발할 수 있다는 점에 유의한다. 그러한 아키텍처는 도 7에 도시되어 있다.
도 5는 고속 복구 클럭에 대해 도 4의 리드라이버(200)와 더불어 사용되는 탄성 버퍼 동작의 일 실시예를 나타낸다. 탄성 버퍼(220)는 인바운드 데이터 스트림을 수신하고, 변경된 인바운드 데이터 스트림을 제공한다. 탄성 버퍼(220)는 통상적으로 절반이 채워지거나 트립 포인트 A 바로 아래에 있도록 동작할 수 있다. 고속 복구 클럭의 경우, 탄성 버퍼 내용물이 트립 포인트 A에 도달할 때, 탄성 버퍼(220)는 중간 포인트에 위치하고, 따라서 SKP 배열 세트들을 변경할 수 없으므로, 탄성 버퍼(220) 내의 버퍼 로직은 PCI-Express 링크가 활성 상태에 있는 경우에(즉, 링크가 파워 업되고 링크 훈련 상태들을 통과한 후에) 먼저 인바운드 데이터 스트림으로부터 유휴 데이터를 제거한다. PCI-Express 링크가 훈련 상태에 있는 경우, 버퍼 로직은 전체 훈련 배열 세트를 제거할 것이다. 링크 훈련은 소프트웨어 개입 없이 리셋 후에 모든 PCI-Express 링크들 상에서 자동으로 이루어진다는 점에 유의한다. 대부분의 링크 훈련 상태들은 16 심벌 훈련 배열 세트들의 전송을 포함한다. 각각의 컴포넌트의 수신기는 세트들을 이용하여, 비트 록(lock), 심벌 록 및 레인(lane) 대 레인 스큐를 얻는다. 이러한 세트들의 교환은 링크의 각각의 단부 상의 컴포넌트들이 링크 번호, 레인 번호들, 데이터 레이트 등을 협상하는 것을 돕는다. 훈련이 완료된 때, 링크는 트랜잭션 계층 패킷들(TLPs)이 교환될 수 있는 활성 상태가 된다. 탄성 버퍼 내용물이 트립 포인트 B에 도달하는 경우, 버퍼 로직은 인바운드 데이터 스트림으로부터 선택된 데이터 링크 계층 패킷들(DLLP)을 제거할 것이다. PCI-Express는 각각의 DLLP에 포함된 정보가 동일 타입의 후속 DLLP들에도 포함되도록 설계되며, 따라서 전송 중에 손상되거나 유실된 DLLP는 링크 성능에 최소의 영향을 미친다. 그러나, 동일 타입의 다수의 연속 DLLP가 유실되는 경우, 성능 저하가 발생할 것이다(이것은 트랜잭션 리플레이를 유발하고, 그리고/또는 새로운 트랜잭션들의 발행을 금지할 수 있다). DLLP들은 스크램블되지 않은 "SDP" 프레이밍 심벌로 시작하고, DLLP 타입 바이트가 이어진다. 탄성 버퍼(220) 내의 버퍼 로직은 4개의 DLLP 타입, 구체적으로는 수신 응답, 포스트된 크레디트 업데이트, 포스트되지 않은 크레디트 업데이트 및 완료 크레디트 업데이트를 제거하도록 설계된다. 여기에 설명되는 유연한 버퍼들은 세마포어를 이용하여 동일 타입의 다수의 DLLP의 삭제를 방지한다. 예를 들어, 고속 복구 클럭은 버퍼 로직이 포스트된 크레디트 업데이트 DLLP를 버리게 할 수 있다. 이것이 발생할 때, 내부의 포스트된 크레디트 업데이트 세마포어는 (동일 가상 채널의) 다른 포스트된 크레디트 업데이트가 통과할 때까지 로직이 다른 포스트된 크레디트 업데이트를 버리는 것을 방지하도록 설정된다. 제2 업데이트는 이전 패킷과 동일한 수의 크레디트들을 포함하며, 추가 크레디트들을 포함할 수도 있다. 제2 패킷의 통과는 아웃바운드의 포스트된 사이클들에서 잠재적 병목 현상을 제거한다. 마지막으로, 탄성 버퍼(220)의 내용물이 트립 포인트 C에 도달하는 경우, 버퍼 로직은 인바운드 데이터 스트림으로부터 트랜잭션 계층 패킷(TLP)을 버린다. 버퍼 로직은 TLP 시작 프레이밍 심벌(STP)을 찾고, END 심벌을 검출할 때까지 모든 심벌을 버림으로써 이를 달성한다. 이것은 후속 TLP의 부정 수신 응답(Nak)으로 인해 또는 수신 응답(Ack) 타임아웃으로 인해 송신기가 TLP를 리플레이하게 할 것이다. 제거된 TLP에 대한 시퀀스 번호는 미래의 아웃바운드 Ack 패킷들에 대한 비교를 위해 로컬 레지스터에 저장된다. 아웃바운드 Ack가 버려진 TLP가 성공적으로 리플레이되었음을 입증할 때, TLP 처분 로직은 탄성 버퍼가 트립 포인트 C를 초과하여 채워지는 다음 번을 위해 그 자신을 리셋한다. 이것은 링크 성능을 심하게 손상시킬 수 있는 과다한 TLP 리플레이들을 방지한다.
저속 복구 클럭의 경우, PCI-Express 사양은 SKP 배열 세트에 대한 SKP 심벌들의 추가를 요구한다. 그러한 시나리오는 도 6에 도시되어 있다. 트립 포인트 E에서, 탄성 버퍼(220)의 업스트림 및 다운스트림 컴포넌트들과 연관된 탄성 버퍼와 같은 통상적인 탄성 버퍼와 연관된 버퍼 로직은 버퍼 내용물에 SKP 심벌들을 추가한다. 유사하게, 트립 포인트 E에서, 탄성 버퍼(220)와 연관된 버퍼 로직은 데이터 스트림에 SKP 배열 세트를 추가한다. 리드라이버(200)는 링크 상의 최종 수신기가 아니라 중간 버퍼이므로, 리드라이버(200)는 SKP 배열 세트의 크기를 변경하지 않아야 한다는 점에 유의한다. 그러나, 일부 예들에서는, SKP 심벌들의 추가조차도 탄성 버퍼(220)의 비움을 방지하기에 충분하지 않다. PCI-Express 링크가 활성 상태에 있을 때, PCI-Express 사양은 데이터 스트림에 대한 논리 유휴 데이터의 추가를 허가한다. 따라서, 트립 포인트 F에서, 링크가 활성 상태에 있을 때, 버퍼 로직은 탄성 버퍼(220)로부터 나오는 데이터 스트림에 유휴 데이터를 추가한다.
SKP 배열 세트들의 추가 및 DLLP들 및 TLP들의 제거를 허가하기 위하여, 리드라이버(200)는 도 6에 도시된 바와 같이 10/8b 디코더(221), 디스크램블러(222), 선형 피드백 시프트 레지스터(LSFR)(223), SKP/유휴 삽입 모듈(225), 스크램블러(226), 8b/10b 인코더(227) 및 아웃바운드 선형 피드백 시프트 레지스터(LSFR)(229)와 같은 통상적인 PCI-Express 컴포넌트들을 포함한다. 디코더(221)는 10비트 인바운드 심벌들을 8비트 바이트들로 변환하며, 디스크램블러(222)는 LSFR(223)을 이용하여, 바이트들을 스크램블되지 않은 바이트들로 변환한다. 이 시점에서, 데이터 스트림은 전술한 프레이밍 심벌들에 대해 분석될 수 있다. SKP 배열 세트들은 임의의 다른 배열 세트 또는 패킷의 중간에 추가되지 않는다는 점에 유의한다. 데이터 스트림의 조작 후에, 스크램블러(226)는 아웃바운드 LFSR(229)을 이용하여 바이트들을 다시 스크램블하며, 8b/10b 인코더(227)는 8비트 바이트들을 다시 10비트 심벌들로 변환한다.
도 5 및 6은 인바운드 탄성 버퍼(220)의 동작을 나타낸다. 인바운드 탄성 버퍼(220)는 2 기준 클럭 탄성 버퍼 아키텍처이다. 아웃바운드 탄성 버퍼(240)도 2 기준 클럭 아키텍처 버퍼이며, 아웃바운드 탄성 버퍼(240)의 오버플로우 및 언더플로우를 방지하기 위한 아키텍처 및 방법은 모든 관련된 점에서 인바운드 탄성 버퍼(220)에 적용 가능한 아키텍처 및 방법과 유사하다.
도 7-9는 다수의 접속들 및 가변 길이 트레이스 길이들에 걸쳐 신호 연속성 및 충실도를 보장하기 위해 리드라이버들을 사용하는 컴퓨터 시스템들의 실시예들을 도시한다.
도 10은 2 기준 클럭 아키텍처를 갖는 도 3의 컴퓨터 시스템과 같은 컴퓨터 시스템을 동작시키기 위한 방법(500)의 일 실시예를 나타내는 흐름도이다. 도 10에서, 블록 501에서 시작하여, 리드라이버(200)는 복구 클럭을 갖는 인바운드 데이터 스트림을 수신한다(데이터 스트림이 저장 블레이드(100)로부터 나온다는 점에서 인바운드이다). 블록 505에서, 인바운드 탄성 버퍼(220)와 연관된 버퍼 로직이 복구 클럭에 주목한다. 블록 510에서, 인바운드 탄성 버퍼(220)는 복구 클럭이 시스템 클럭(140)에 비해 고속인지를 결정한다. 복구 클럭이 고속인 경우, 방법(500)은 블록 515로 이동하고, 링크가 활성인지를 알기 위해 링크가 검사된다. 링크가 활성인 경우, 방법(500)은 블록 520으로 이동한다. 링크가 활성이 아닌 경우, 방법(500)은 블록 516으로 이동하여, 링크가 "구성 유휴" 훈련 하위 상태에 있는지를 결정한다. 링크가 "구성 유휴"에 있지 않은 경우, 블록 518에서 버퍼(220)와 연관된 버퍼 로직은 훈련 배열 세트를 제거한다. 링크가 "구성 유휴" 하위 상태에 있는 경우, 방법(500)은 블록 517로 이동하고, 인바운드 버퍼(220)와 연관된 버퍼 로직은 인바운드 데이터 스트림으로부터 유휴 데이터를 제거한다. 이 시점에서, 로직은 인바운드 데이터를 NB로 전송한다(블록 560). 블록 517 또는 518에 이어서, 방법(500)은 블록 560으로 이동한다. 블록 520에서, 인바운드 버퍼(220)와 연관된 버퍼 로직은 복구 클럭이 여전히 너무 빠른지를 결정한다. 복구 클럭이 여전히 너무 빠른 경우, 방법(500)은 블록 525로 이동하고, 버퍼 로직은 DLLP 심벌을 제거하고, 대응 세마포어를 설정한다. 이어서, 방법(500)은 블록 530으로 이동한다. 블록 530에서, 버퍼 로직은 다시 복구 클럭이 너무 빠른지를 결정한다. 복구 클럭이 여전히 너무 빠른 경우, 블록 535에서 버퍼 로직은 데이터 스트림으로부터 TLP 패킷을 제거하고, TLP 세마포어를 설정한다. 이어서, 방법은 블록 560으로 이동한다.
블록 530으로 돌아가서, 복구 클럭이 너무 빠르지 않은 경우, 방법(500)은 블록 560으로 이동한다. 블록 520으로 돌아가서, 복구 클럭이 너무 빠르지 않은 경우, 방법(500)은 블록 560으로 이동한다.
블록 510으로 돌아가서, 복구 클럭이 너무 빠르지 않은 경우, 방법(500)은 블록 540으로 이동하고, 인바운드의 유연한 버퍼(220)와 연관된 버퍼 로직은 복구 클럭이 너무 느린지를 결정한다. 복구 클럭이 너무 느리지 않은 경우, 방법(500)은 블록 560으로 이동한다. 복구 클럭이 너무 느린 경우, 방법(500)은 블록 545로 이동하고, 링크가 활성인지를 알기 위해 링크가 검사된다. 링크가 활성인 경우, 방법(500)은 블록 546으로 이동하며, 인바운드 데이터 스트림에 유휴 데이터가 추가된다. 링크가 활성이 아닌 경우, 블록 547에서 버퍼 로직은 인바운드 데이터 스트림에 SKP 심벌들을 추가한다. 이어서, 방법은 블록 550으로 이동하며, 버퍼 로직은 다시 복구 클럭이 너무 느린지를 알기 위해 검사한다. 복구 클럭이 여전히 너무 느린 경우, 방법(500)은 블록 555로 이동하며, 버퍼 로직은 인바운드 데이터 스트림에 유휴 데이터를 추가한다. 이어서, 방법은 블록 560으로 이동하며, 인바운드 데이터 스트림이 노스 브리지(14)로 전달된다.

Claims (20)

  1. 2개의 기준 클럭을 구비하고, 외부 컴포넌트를 PCI-Express 링크를 통해 허브에 결합하는 리드라이버(redriver)로서,
    상기 리드라이버와 상기 외부 컴포넌트 사이의 인바운드 탄성 버퍼 인터페이스에 대한 개별 기준 클럭,
    상기 허브와 상기 리드라이버 사이의 인바운드 탄성 버퍼 인터페이스에 대한 공통 기준 클럭, 및
    인바운드 디코더/디스크램블러, 인바운드 스크램블러/인코더 및 인바운드 선형 시프트 레지스터들
    을 포함하는 인바운드 탄성 버퍼;
    상기 리드라이버와 상기 외부 컴포넌트 사이의 아웃바운드 탄성 버퍼 인터페이스에 대한 개별 기준 클럭,
    상기 허브와 상기 리드라이버 사이의 아웃바운드 탄성 버퍼 인터페이스에 대한 공통 기준 클럭, 및
    아웃바운드 디코더/디스크램블러, 아웃바운드 스크램블러/인코더 및 아웃바운드 선형 시프트 레지스터들
    을 포함하는 아웃바운드 탄성 버퍼; 및
    상기 리드라이버의 외부 컴포넌트 측에 그리고 상기 리드라이버의 허브 측에 결합되는 클럭 복구 로직
    을 포함하는 리드라이버.
  2. 제1항에 있어서,
    상기 인바운드 탄성 버퍼는 버퍼 로직 및 오버플로우 트립(trip) 포인트들을 더 포함하고,
    상기 오버플로우 트립 포인트들은
    제1 오버플로우 트립 포인트-상기 제1 오버플로우 트립 포인트에 도달하고, 상기 링크가 비활성 상태에 있을 때, 상기 버퍼 로직은 데이터 스트림으로부터 유휴 데이터(idle data) 및 전체 훈련 세트 중 하나를 제거함-;
    제2 오버플로우 트립 포인트-상기 제2 오버플로우 트립 포인트에 도달할 때, 상기 버퍼 로직은 상기 데이터 스트림으로부터 DLLP 패킷들을 제거함-; 및
    제3 오버플로우 트립 포인트-상기 제3 오버플로우 트립 포인트에 도달할 때, 상기 버퍼 로직은 상기 데이터 스트림으로부터 트랜잭션 계층 패킷들을 제거함-
    를 포함하는 리드라이버.
  3. 제2항에 있어서, DLLP 세마포어들을(semaphores) 더 포함하고, 상기 데이터 스트림으로부터 특정 타입의 DLLP 패킷이 제거될 때, 상기 버퍼 로직은 대응하는 DLLP 세마포어를 설정하며, 이에 따라 해당 타입의 DLLP 패킷의 추가 제거가 방지되는 리드라이버.
  4. 제2항에 있어서, 트랜잭션 계층 패킷 세마포어들을 더 포함하고, 트랜잭션 계층 패킷이 제거될 때, 트랜잭션 계층 패킷 세마포어가 설정되는 리드라이버.
  5. 제4항에 있어서, 제거된 트랜잭션 계층 패킷들에 대한 시퀀스 번호들을 저장하는 로컬 레지스터를 더 포함하고, 이에 따라 상기 제거된 트랜잭션 계층 패킷이 복구될 때, 상기 로컬 레지스터로부터 상기 저장된 시퀀스 번호가 삭제되고, 상기 트랜잭션 계층 패킷 세마포어가 리셋되는 리드라이버.
  6. 제2항에 있어서,
    상기 인바운드 탄성 버퍼는
    제1 언더플로우 트립 포인트-상기 제1 언더플로우 트립 포인트에 도달할 때, 상기 버퍼 로직은 상기 인바운드 탄성 버퍼로부터 나오는 데이터 스트림에 SKP 심벌들을 추가함-; 및
    제2 언더플로우 트립 포인트-상기 제2 언더플로우 트립 포인트에 도달할 때, 상기 버퍼 로직은 상기 인바운드 탄성 버퍼로부터 나오는 데이터 스트림에 유휴 데이터를 추가함-
    를 더 포함하는 리드라이버.
  7. 제1항에 있어서,
    상기 아웃바운드 탄성 버퍼는
    버퍼 로직;
    오버플로우 트립 포인트들-상기 오버플로우 트립 포인트들에 도달할 때, 상기 버퍼 로직은 유휴 데이터, 훈련 세트, DLLP 패킷들 및 트랜잭션 계층 패킷들 중 하나 이상을 제거함-; 및
    언더플로우 트립 포인트들-상기 언더플로우 트립 포인트들에 도달할 때, 상기 버퍼 로직은 상기 아웃바운드 탄성 버퍼로부터 나오는 데이터 스트림에 SKP 심벌들 및 유휴 데이터를 추가함-
    을 더 포함하는 리드라이버.
  8. 제1항에 있어서, 상기 리드라이버는 서버 블레이드 상에 설치되며, 저장 블레이드가 상기 PCI-Express 링크를 이용하여 상기 서버 블레이드에 결합되는 리드라이버.
  9. 제1항에 있어서, 상기 리드라이버는 제1 서버 블레이드 상에 설치되고, 제2의 2 클럭 리드라이버를 포함하는 제2 서버 블레이드가 상기 PCI-Express 링크를 이용하여 상기 제1 서버 블레이드에 결합되는 리드라이버.
  10. 제1항에 있어서, 상기 개별 기준 클럭은 100MHz의 낮은 지터 클럭에 의해 구동되는 리드라이버.
  11. 제1항에 있어서, 상기 버스는 확산 스펙트럼 클럭킹이 인에이블된 노스 브리지이고, 상기 외부 컴포넌트는 확산 스펙트럼 클럭킹이 디스에이블된 저장 블레이드인 리드라이버.
  12. 2개의 기준 클럭을 사용하고, 인바운드 데이터 부분 및 아웃바운드 데이터 부분을 구비하는 리드라이버로서, 상기 신호 컨디셔너는
    상기 2개의 기준 클럭을 보상하기 위해 인바운드 데이터를 조정하기 위한 수단을 포함하는 인바운드 탄성 버퍼;
    상기 2개의 기준 클럭을 보상하기 위해 아웃바운드 데이터를 조정하기 위한 수단을 포함하는 아웃바운드 탄성 버퍼;
    상기 리드라이버의 제1 측에 결합되는 공통 기준 클럭;
    상기 리드라이버의 제2 측에 결합되는 낮은 지터의 개별 기준 클럭; 및
    상기 리드라이버의 제1 및 제2 측에 결합되는 클럭 복구 로직
    을 포함하고,
    상기 리드라이버의 제1 측에 결합되는 클럭 복구 로직은 상기 공통 기준 클럭을 사용하고, 상기 리드라이버의 제2 측에 결합되는 클럭 복구 로직은 상기 낮은 지터의 개별 기준 클럭을 사용하는 리드라이버.
  13. 제12항에 있어서,
    상기 인바운드 탄성 버퍼는
    인바운드 탄성 버퍼 복구 클럭 도메인; 및
    인바운드 탄성 버퍼 공통 기준 클럭 도메인
    을 포함하는 리드라이버.
  14. 제13항에 있어서,
    상기 2개의 기준 클럭을 보상하기 위해 인바운드 데이터를 조정하기 위한 수단은
    인바운드 디코더/디스크램블러;
    인바운드 스크램블러/인코더; 및
    상기 인바운드 탄성 버퍼 시스템 클럭 도메인에 모두가 결합되는 인바운드 선형 시프트 레지스터들
    을 포함하는 리드라이버.
  15. 제14항에 있어서,
    개별 기준 클럭을 보상하기 위해 인바운드 데이터를 조정하기 위한 수단은 버퍼 로직 및 오버플로우 트립 포인트들을 더 포함하고,
    상기 오버플로우 트립 포인트들은
    제1 오버플로우 트립 포인트-상기 제1 오버플로우 트립 포인트에 도달할 때, 상기 버퍼 로직은 인바운드 데이터 스트림으로부터 유휴 데이터 및 훈련 세트 중 하나를 제거함-;
    제2 오버플로우 트립 포인트-상기 제2 오버플로우 트립 포인트에 도달할 때, 상기 버퍼 로직은 데이터 스트림으로부터 DLLP 패킷들을 제거함-; 및
    제3 오버플로우 트립 포인트-상기 제3 오버플로우 트립 포인트에 도달할 때, 상기 버퍼 로직은 상기 데이터 스트림으로부터 트랜잭션 계층 패킷들을 제거함-
    를 포함하는 리드라이버.
  16. 제12항에 있어서,
    상기 아웃바운드 탄성 버퍼는
    아웃바운드 탄성 버퍼 공통 기준 클럭 도메인; 및
    아웃바운드 탄성 버퍼 낮은 지터 기준 클럭 도메인
    을 포함하는 리드라이버.
  17. 제16항에 있어서,
    비공통 기준 클럭을 보상하기 위해 상기 아웃바운드 데이터를 조정하기 위한 수단은
    아웃바운드 디코더/디스크램블러;
    아웃바운드 스크램블러/인코더; 및
    상기 아웃바운드 탄성 버퍼 낮은 지터 클럭 도메인에 모두가 결합되는 아웃바운드 선형 시프트 레지스터들
    을 포함하는 리드라이버.
  18. 제17항에 있어서,
    개별 기준 클럭을 보상하기 위해 상기 아웃바운드 데이터를 조정하기 위한 수단은
    버퍼 로직;
    오버플로우 트립 포인트들-상기 오버플로우 트립 포인트들에 도달할 때, 상기 버퍼 로직은 유휴 데이터, DLLP 패킷들 및 트랜잭션 계층 패킷들 중 하나 이상을 제거함-; 및
    언더플로우 트립 포인트들-상기 언더플로우 트립 포인트들에 도달할 때, 상기 버퍼 로직은 상기 아웃바운드 탄성 버퍼로부터 나오는 데이터 스트림에 SKP 심벌들 및 유휴 데이터를 추가함-
    을 포함하는 리드라이버.
  19. 2개의 기준 클럭을 갖는 리드라이버를 구비하는 컴퓨터 시스템을 동작시키기 위한 방법으로서,
    인바운드 데이터 스트림으로부터 클럭을 복구하는 단계;
    상기 복구된 클럭을 시스템 클럭과 비교하는 단계;
    상기 복구된 클럭이 너무 빠른 경우,
    상기 인바운드 데이터 스트림으로부터 유휴 데이터 및 훈련 세트 중 하나를 제거하고, 상기 복구된 클럭이 여전히 너무 빠른 경우에,
    상기 인바운드 데이터 스트림으로부터 DLLP 패킷을 제거하고, 상기 복구된 클럭이 여전히 너무 빠른 경우에,
    상기 인바운드 기준 스트림으로부터 TLP 패킷을 제거하는 단계; 및
    상기 복구된 클럭이 너무 느린 경우에,
    상기 인바운드 데이터 스트림에 SKP 심벌들을 추가하고, 상기 복구된 클럭이 여전히 너무 느린 경우에,
    상기 인바운드 데이터 스트림에 유휴 데이터를 추가하는 단계
    를 포함하는 방법.
  20. 제17항에 있어서,
    상기 DLLP 패킷을 제거할 때 DLLP 세마포어를 설정하는 단계; 및
    상기 TLP 패킷을 제거할 때, TLP 세마포어를 설정하는 단계
    를 더 포함하는 방법.
KR1020107018505A 2008-02-20 2008-02-20 2개의 기준 클럭을 구비한 리드라이버 및 그의 동작 방법 KR101419292B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2008/054399 WO2009105095A1 (en) 2008-02-20 2008-02-20 Redriver with two reference clocks and method of operation thereof

Publications (2)

Publication Number Publication Date
KR20100123836A true KR20100123836A (ko) 2010-11-25
KR101419292B1 KR101419292B1 (ko) 2014-07-14

Family

ID=40985813

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107018505A KR101419292B1 (ko) 2008-02-20 2008-02-20 2개의 기준 클럭을 구비한 리드라이버 및 그의 동작 방법

Country Status (6)

Country Link
US (1) US8166334B2 (ko)
EP (1) EP2255263B1 (ko)
JP (1) JP5138050B2 (ko)
KR (1) KR101419292B1 (ko)
CN (1) CN101946219B (ko)
WO (1) WO2009105095A1 (ko)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5266164B2 (ja) * 2009-08-25 2013-08-21 ルネサスエレクトロニクス株式会社 データ受信装置
JP5426326B2 (ja) * 2009-11-09 2014-02-26 ルネサスエレクトロニクス株式会社 データ受信装置、データ受信方法、及びプログラム
TWI423007B (zh) * 2009-12-31 2014-01-11 Via Tech Inc 串列匯流排裝置以及其時脈差補償方法
JP5748320B2 (ja) * 2010-03-11 2015-07-15 株式会社リコー アダプタ、情報機器、情報システム及び通信方法
US8938567B2 (en) 2010-03-11 2015-01-20 Ricoh Company, Limited Communication apparatus, communication system and adapter
JP5764919B2 (ja) * 2010-12-16 2015-08-19 株式会社リコー 通信機器および通信システム
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
US8666013B1 (en) 2011-03-22 2014-03-04 Altera Corporation Techniques for clock data recovery
US8645724B2 (en) * 2011-06-03 2014-02-04 Nxp B.V. Redriver circuits with power saving modes
WO2013001631A1 (ja) * 2011-06-29 2013-01-03 富士通株式会社 伝送装置、伝送回路、伝送システムおよび伝送装置の制御方法
WO2012119385A1 (zh) 2011-08-11 2012-09-13 华为技术有限公司 对pcie设备进行时间同步的方法、装置和系统
US9261897B2 (en) 2012-03-07 2016-02-16 Intel Corporation Scalable, common reference-clocking architecture using a separate, single clock source for blade and rack servers
KR101876418B1 (ko) * 2012-04-05 2018-07-10 한국전자통신연구원 Pci 익스프레스 디스큐 장치 및 그 방법
JP5928192B2 (ja) * 2012-06-28 2016-06-01 株式会社ソシオネクスト ブリッジ回路
US20140036966A1 (en) * 2012-07-31 2014-02-06 Robert C. Elliott Varying rate of deletable bits for spread spectrum clocking
US9153198B2 (en) * 2012-09-25 2015-10-06 Ati Technologies Ulc Method and device for link over-training
US9213355B2 (en) 2012-11-06 2015-12-15 Advanced Micro Devices, Inc. Selective insertion of clock mismatch compensation symbols in signal transmissions based on a receiver's compensation capability
US8879680B2 (en) * 2012-11-06 2014-11-04 Ati Technologies Ulc Adaptive clock mismatch compensation symbol insertion in signal transmissions
US9223385B2 (en) * 2012-12-19 2015-12-29 Intel Corporation Re-driver power management
CN104063352B (zh) * 2013-03-20 2017-03-15 上海华虹集成电路有限责任公司 Pipe的弹性缓冲电路及其状态同步方法
US10237087B2 (en) * 2013-09-02 2019-03-19 Samsung Electronics Co., Ltd. Method for controlling transmission speed and electronic device thereof
JP6339198B2 (ja) * 2013-12-26 2018-06-06 インテル・コーポレーション インターコネクトリタイマのエンハンスメント
KR102108380B1 (ko) 2014-02-04 2020-05-08 삼성전자주식회사 송신 데이터 오류를 복구하도록 작동하는 인터페이스 회로
CN104484011A (zh) * 2014-11-25 2015-04-01 上海高性能集成电路设计中心 一种分布控制双时钟异步发送、接收模块及fifo装置
US9946683B2 (en) * 2014-12-24 2018-04-17 Intel Corporation Reducing precision timing measurement uncertainty
WO2016122480A1 (en) * 2015-01-28 2016-08-04 Hewlett-Packard Development Company, L.P. Bidirectional lane routing
US9692589B2 (en) * 2015-07-17 2017-06-27 Intel Corporation Redriver link testing
KR102507714B1 (ko) 2016-05-02 2023-03-09 삼성전자주식회사 SRIS를 지원하는 PCIe 장치
US10128985B2 (en) 2016-07-01 2018-11-13 International Business Machines Corporation ACK clock compensation for high-speed serial communication interfaces
US10491701B2 (en) * 2016-07-14 2019-11-26 Cisco Technology, Inc. Interconnect method for implementing scale-up servers
CN106848785A (zh) * 2016-12-28 2017-06-13 曙光信息产业(北京)有限公司 Pci‑e信号传输装置
US10789201B2 (en) * 2017-03-03 2020-09-29 Intel Corporation High performance interconnect
US10860449B2 (en) 2017-03-31 2020-12-08 Intel Corporation Adjustable retimer buffer
US20180329855A1 (en) 2017-05-12 2018-11-15 Intel Corporation Alternate protocol negotiation in a high performance interconnect
US11249808B2 (en) 2017-08-22 2022-02-15 Intel Corporation Connecting accelerator resources using a switch
US11356236B2 (en) * 2019-05-16 2022-06-07 Texas Instruments Incorporated Bidirectional re-driver for half-duplex interfaces
US11546128B2 (en) 2020-06-16 2023-01-03 SK Hynix Inc. Device and computing system including the device
KR102519480B1 (ko) 2021-04-01 2023-04-10 에스케이하이닉스 주식회사 PCIe 장치 및 이를 포함하는 컴퓨팅 시스템
KR102415309B1 (ko) 2020-06-16 2022-07-01 에스케이하이닉스 주식회사 인터페이스 장치 및 그 동작 방법
KR102518285B1 (ko) 2021-04-05 2023-04-06 에스케이하이닉스 주식회사 PCIe 인터페이스 및 인터페이스 시스템
US12068783B2 (en) * 2020-11-02 2024-08-20 Cisco Technology, Inc. Dispersing data rate to mitigate electromagnetic interference
US11271656B1 (en) 2020-11-02 2022-03-08 Cisco Technology, Inc. Dispersing data rate to mitigate electromagnetic interference
CN115794242B (zh) * 2023-02-08 2023-08-15 苏州浪潮智能科技有限公司 一种服务器展频方法、系统、电子设备及可读介质

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06338138A (ja) * 1993-05-28 1994-12-06 Toshiba Corp 基準クロック発生装置及び基準クロック発生方法
US6055645A (en) * 1996-12-30 2000-04-25 Intel Corporation Method and apparatus for providing a clock signal to a processor
JPH11150475A (ja) * 1997-11-14 1999-06-02 Toyo Commun Equip Co Ltd シンセサイザ
US6079027A (en) * 1998-01-23 2000-06-20 Via Technologies, Inc. Computer chip set for computer mother board referencing various clock rates
US6154803A (en) * 1998-12-18 2000-11-28 Philips Semiconductors, Inc. Method and arrangement for passing data between a reference chip and an external bus
US6748039B1 (en) * 2000-08-11 2004-06-08 Advanced Micro Devices, Inc. System and method for synchronizing a skip pattern and initializing a clock forwarding interface in a multiple-clock system
EP1276028A1 (en) * 2001-07-09 2003-01-15 Telefonaktiebolaget L M Ericsson (Publ) Status indication detection device and method
JP4335586B2 (ja) * 2003-06-11 2009-09-30 Necエレクトロニクス株式会社 クロックアンドデータリカバリ回路
JP2005252587A (ja) * 2004-03-03 2005-09-15 Seiko Epson Corp クロック整形器およびクロック整形器を用いた電子機器
US7571338B2 (en) * 2004-05-24 2009-08-04 Telefonaktiebolaget Lm Ericsson (Publ) Determining a time difference between first and second clock domains
US7434073B2 (en) * 2004-11-29 2008-10-07 Intel Corporation Frequency and voltage scaling architecture
JP4587798B2 (ja) * 2004-12-08 2010-11-24 ルネサスエレクトロニクス株式会社 スペクトラム拡散クロック発生装置
US7281077B2 (en) * 2005-04-06 2007-10-09 Qlogic, Corporation Elastic buffer module for PCI express devices
US7802031B2 (en) * 2005-05-18 2010-09-21 Qlogic, Corporation Method and system for high speed network application
JP2007109199A (ja) * 2005-09-15 2007-04-26 Seiko Epson Corp バッファ装置、、バッファ装置の制御方法、情報処理装置
US7478255B2 (en) * 2005-12-13 2009-01-13 Hewlett-Packard Development Company, L.P. Clock distribution in multi-cell computing systems
CN101001199A (zh) * 2006-01-11 2007-07-18 中兴通讯股份有限公司 一种高速多位并行数据总线的数据处理方法
JP2007193633A (ja) * 2006-01-20 2007-08-02 Renesas Technology Corp インタフェース機能付きデバイス回路
US8867683B2 (en) * 2006-01-27 2014-10-21 Ati Technologies Ulc Receiver and method for synchronizing and aligning serial streams

Also Published As

Publication number Publication date
EP2255263A4 (en) 2011-08-31
KR101419292B1 (ko) 2014-07-14
US8166334B2 (en) 2012-04-24
CN101946219A (zh) 2011-01-12
WO2009105095A1 (en) 2009-08-27
US20100315135A1 (en) 2010-12-16
EP2255263A1 (en) 2010-12-01
JP5138050B2 (ja) 2013-02-06
JP2011519077A (ja) 2011-06-30
CN101946219B (zh) 2013-03-20
EP2255263B1 (en) 2013-07-31

Similar Documents

Publication Publication Date Title
KR101419292B1 (ko) 2개의 기준 클럭을 구비한 리드라이버 및 그의 동작 방법
US7631118B2 (en) Lane to lane deskewing via non-data symbol processing for a serial point to point link
EP1388975B1 (en) System and method for data transition control in a multirate communication system
US11546128B2 (en) Device and computing system including the device
US11151066B2 (en) Link width scaling across multiple retimer devices
CN108733608B (zh) Usb链路桥接器
WO2005066827A2 (en) Buffer management via non-data symbol processing for a point to point link
KR102518285B1 (ko) PCIe 인터페이스 및 인터페이스 시스템
US7339995B2 (en) Receiver symbol alignment for a serial point to point link
US8948192B2 (en) Data switch
US11818238B2 (en) Low overhead high bandwidth data transfer protocol
US9141459B2 (en) Precursor adaptation algorithm for asynchronously clocked SERDES
JP5545146B2 (ja) シリアル通信システム

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