KR20030064379A - 다중-클럭 시스템에서 스킵 패턴을 동기화하고 클럭포워딩 인터페이스를 초기화하는 시스템 및 방법 - Google Patents

다중-클럭 시스템에서 스킵 패턴을 동기화하고 클럭포워딩 인터페이스를 초기화하는 시스템 및 방법 Download PDF

Info

Publication number
KR20030064379A
KR20030064379A KR10-2003-7002015A KR20037002015A KR20030064379A KR 20030064379 A KR20030064379 A KR 20030064379A KR 20037002015 A KR20037002015 A KR 20037002015A KR 20030064379 A KR20030064379 A KR 20030064379A
Authority
KR
South Korea
Prior art keywords
clock
signal
alignment
reset
signals
Prior art date
Application number
KR10-2003-7002015A
Other languages
English (en)
Other versions
KR100804286B1 (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 KR20030064379A publication Critical patent/KR20030064379A/ko
Application granted granted Critical
Publication of KR100804286B1 publication Critical patent/KR100804286B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • 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
    • G06F5/10Methods 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 having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • 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/005Correction by an elastic buffer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Information Transfer Systems (AREA)

Abstract

2개의 클럭 영역들에 스킵 패턴을 동기화하고 상기 2개의 클럭 영역들 사이에서 데이터 전송을 가능하게 해주는 클럭 스킵핑 버퍼(50)를 초기화하는 시스템 및 방법이 개시된다. 일 실시예에 있어서, 회로는 한쌍의 정렬 검출 유닛들(71, 72), 동기 리셋 유닛(73), 스킵 패턴 발생기(74), 카운터 리셋 유닛(75) 및 데이터 전송 버퍼(76)를 포함한다. 상기 정렬 유닛들(71, 72) 각각은 상기 클럭 영역들 중 하나에서 상기 클럭 신호와 기준 클럭 신호의 정렬을 검출하고 상기 정렬을 표시하는 신호를 발생시킨다. 이 신호는 상기 동기 리셋 유닛(73)과 상기 카운터 리셋 유닛(75)에 전달된다. 하나의 정렬 유닛에 의해 발생된 상기 정렬 신호는 스킵 패턴 발생기(74)에 또한 전달된다. 상기 동기 리셋 유닛(73)은 상기 정렬 유닛들로부터 상기 정렬 신호들을 받아들이고 상기 카운터 리셋 유닛을 초기화하기 위해 동시 리셋 신호들(즉, 상기 2개의 클럭 영역들의 각각에 대해 하나)을 발생시킨다. 상기 카운터 리셋 유닛은 상기 데이터 전송 버퍼를 통해 데이터의 흐름을 제어하는 적재 및 하역 카운터들을 제어한다. 상기 동기 리셋 유닛(73)에 의해 발생된 상기 동기 리셋 신호들이 수신된 후, 상기 카운터 리셋 유닛은 상기 개별 클럭 영역에 대응하는 적재 및 하역 펄스들을 발생시키고 상기 데이터 전송 버퍼(76)에 이 신호들을 전송하기 시작한다.

Description

다중-클럭 시스템에서 스킵 패턴을 동기화하고 클럭 포워딩 인터페이스를 초기화하는 시스템 및 방법{SYSTEM AND METHOD FOR SYNCHRONIZING A SKIP PATTERN AND INITIALIZING A CLOCK FORWARDING INTERFACE IN A MULTIPLE-CLOCK SYSTEM}
단순한 컴퓨터 시스템들에 있어서, 칩(chip)안에 집적된 모든 디바이스들을 구동하기 위해 단일 클럭 신호가 이용될 수 있다. 이 클럭 신호는 마이크로프로세서, 메모리 및/또는 다양한 주변 디바이스들에 제공될 수 있다. 상기 신호는 다른 동작들 중에서도 특히, 상기 디바이스들 간의 데이터 전송을 클럭킹(clocking)하는데 이용된다. 이 시스템은 단순하고 비교적 간단하지만, 이러한 단순성은 성능 제한을 일으킬 수 있다. 이 제한들 중 하나는 상기 칩상의 다양한 디바이스들에서 나타나는 상기 클럭 신호들의 변형(variation)과 관계한다. 상기 디바이스들의 각각에 상기 클럭 신호를 전달하기 위한 전도성 트레이스(trace)의 망의 사용은 상기 신호들에서 반사, 잡음 및 다른 변형을 일으킨다. 이 인자들은 서로 다른 디바이스들에 도달하는 상기 신호들의 차이를 일으키고, 결과적으로 데이터를 주고받는 상기 디바이스들의 능력을 제한할 수 있다. 예를 들어, 2개의 디바이스에 도달하는 클럭 신호들 사이에 스큐(skew)가 존재하는 경우, 상기 디바이스들 사이에서 통신되는 값은, 이 값이 수신 디바이스에 의해 샘플링될 수 있도록 하는데 필요한 시간보다 더 긴 시간 동안 송신 디바이스에 의해 어서트(assert)되어야 한다.
클럭 포워딩(clock forwarding)은 클럭 스큐의 영향을 최소화하고 데이터의 전송시 성능을 개선하는데 이용될 수 있는 하나의 기술이다. 클럭 포워딩 방식에서, 보통 데이터를 전송하는데 이용되는 데이터 버스 및 시스템 클럭은 지점간(point-to-point) 데이터 및 클럭 신호들에 의해 대체된다. 다시 말해, 데이터가 하나의 디바이스에서 다른 디바이스로 전송될 때, 상기 데이터는 대응하는 클럭 신호와 함께 전송된다. 상기 데이터는 전형적으로 상기 포워딩된 클럭 신호에 따라 상기 송신 디바이스에 의해 일련의 저장 위치(예를 들어, 플립-플롭)에 클럭킹된다. 이후, 상기 데이터는 로컬 클럭 신호에 따라 상기 수신 디바이스에 의해 상기 저장 위치들 밖으로 클럭킹된다. 상기 클럭 신호들 둘다 동일한 속도를 가져야 하지만, 상기 신호들에서의 실질적인 스큐는 신뢰할 수 있는 데이터의 전송을 방해하지 않을 것이다.
클럭 포워딩은 상기 동일한 클럭 속도로 동작하는 디바이스들 사이에서 데이터를 전송하기 위한 수단을 제공하지만, 서로 다른 디바이스들에 대해 서로 다른 클럭 주파수를 사용하는 것은 현대의 컴퓨터 시스템에서 종종 바람직하다. 예를 들어, 서로 다른 주파수에서 코어 로직(즉, 마이크로프로세서 로직)과 시스템 로직을동작시키는 것은 유용할 수 있다. 주파수의 차이는 한 타입의 로직의 성능 개선을 가능하게 하지만, 다른 타입의 로직에 있어서는 동등한 개선을 요구하지 않는다. 따라서, 예를 들어, 상기 프로세서 속도는 상기 시스템 로직의 속도를 증가시키지 않고도 증가될 수 있다.
이 시스템들에서, 시스템 로직은 시스템 버스에 밀접하게 관계된다. 결국, 상기 시스템 로직은 보통, 시스템 버스 주파수의 정수(또는 1/2정수(half-integer))배인 주파수에서 동작한다. 상기 시스템 로직이 상기 시스템 버스 주파수의 배수인 주파수에서 동작하기 때문에, 상기 시스템 로직에 대한 클럭 신호들과 상기 시스템 버스에 대한 클럭 신호들은 모두 동일한 기준 클럭으로부터 발생될 수 있다. 상기 코어 로직이 또한 상기 시스템 버스 주파수의 정수 또는 1/2정수 배인 주파수에서 구동한다면, 그것은 또한 쉽게 발생될 수 있다. 예를 들어, 상기 시스템 버스가 66MHz에서 구동한다면, 상기 시스템 로직과 코어 로직은 200MHz(상기 시스템 버스 주파수의 3배)에서 동작될 수 있다. 이후, 필요한 경우, 상기 코어 로직의 주파수는 266MHz(상기 시스템 버스 주파수의 4배)로 확대(scale up)시킬 수 있고, 상기 시스템 로직은 200MHz에서 유지된다.
그러나, 상기 시스템 버스의 동작 주파수가 증가함에 따라, 이는 주파수의 더 큰 증가를 요구하기 때문에, 상기 코어 로직의 속도를 높이는 것이 점점더 어려워진다. 예를 들어, 상기 시스템 버스가 200MHz에서 구동하고 상기 코어 로직과 상기 시스템 로직 둘다 400MHz에서 구동한다면, 상기 코어 로직을 450MHz로 확대하는 것은 쉽지 않다. 즉, 450MHz는 상기 시스템 버스 주파수의 정수 또는 1/2정수 배가아니다. 따라서, 단일 클럭 대신에 다중 클럭들을 갖는 것이 유용할 수 있다. 특정 클럭 신호에서 동작하는 상기 디바이스들은 이 신호에 의해 정의된 상기 클럭 영역(clock domain)내에 있다.
컴퓨터 시스템에서 다중 클럭 영역의 사용은 상기 시스템에서 해결되어야 하는 다수의 문제점들을 발생시킬 수 있다. 하나의 문제점은 상기 클럭들이 서로에 대해 정수 또는 1/2정수 배가 아닌 2개의 클럭 영역 사이에 통신하는 것이 어렵다는 것이다. 이 문제점은 상기 2개의 클럭 영역 사이에서 데이터를 전송하기 위해 클럭 스킵핑 기술을 이용함으로써 해결될 수 있다. 그러나, 클럭 스킵핑 기술은 상기 2개의 영역들에서 상기 클럭 신호들에 대해 스킵 패턴의 동기화 및 데이터를 전송하는데 이용되는 전송 버퍼의 적절한 초기화를 요구하기 때문에, 마이크로프로세서에서 클럭 스킵핑을 실시하는 것은 어려울 수 있다.
본 발명은 일반적으로 마이크로프로세서 설계 분야에 관한 것으로 특히, 클럭 스킵핑(clock skipping) 기술을 이용하여 2개의 클럭 영역 사이에서 데이터를 전송하도록 구성된 시스템에서 스킵 패턴(skip patterns)의 동기화 및 전송 버퍼의 초기화에 관한 것이다.
본 발명의 다른 목적 및 장점들은 첨부 도면들을 참조하여 하기의 상세한 설명을 읽었을 때 명백해질 것이다.
도 1은 중간 버퍼를 이용하여 하나의 클럭 영역으로부터 다른 클럭 영역으로 데이터의 전송을 예시하는 블럭도이고;
도 2는 본 시스템의 일 실시예에서 이용된 클럭 스킵핑 기술의 예시이고;
도 3은 일 실시예에서 상기 클럭 신호들이 발생된 방식을 예시하는 기능적인 블럭도이고;
도 4는 일 실시예에서 클럭 스킵핑 버퍼의 구조를 예시하는 블럭도이고;
도 5는 일 실시예에서 클럭 스킵핑 버퍼를 논리적으로 정렬 및 초기화하도록 구성된 회로의 기능적인 블럭도이고;
도 6은 일 실시예에서 정렬 유닛의 기능적인 블럭도이고;
도 7은 일 실시예에서 동기 리셋 유닛의 기능적인 블럭도이다.
본 발명은 다양한 수정들과 변형들을 갖지만, 본원에서는 특정 실시예들이 도면들에서 예시적으로 상세히 설명될 것이다. 그러나, 이러한 특정 실시예들은 본 발명을 개시된 특정 형태들로 한정하지 않으며, 첨부된 청구항들에 의해 정의되는 본 발명의 정신 및 범위 내에 있는 모든 수정들, 등가물들 및 대안들을 포함한다는것을 이해해야 한다.
상기 설명된 하나 또는 그 이상의 문제점들은 본 발명의 다양한 실시예들에 의해 해결될 수 있다. 대체로 말하면, 본 발명은 2개의 클럭 영역의 클럭 신호들에 대해 스킵 패턴을 동기화하고 상기 2개의 클럭 영역 사이의 데이터 전송을 가능하게 해주는 클럭 스킵핑 버퍼를 초기화하는 시스템 및 방법을 포함한다.
본 시스템은 각각 서로 다른 클럭 주파수에서 동작하는 2개의 개별 클럭 영역을 갖는 마이크로프로세서에서 실시된다. 상기 마이크로프로세서는 클럭 스킵핑 버퍼를 이용하여 하나의 클럭 영역에서 다른 클럭 영역으로 데이터를 전송하도록 구성된다. 데이터는 상기 제 1 클럭 영역의 클럭 신호를 이용하여 상기 버퍼 안으로 클럭킹되며, 상기 제 2 클럭 영역의 클럭 신호를 이용하여 상기 버퍼 밖으로 클럭킹된다. 상기 버퍼는 주기적으로 스킵핑될 더 빠른 클럭 신호의 펄스를 생성시킴으로써, 상기 더 빠른 클럭 신호의 펄스에서 전송될 데이터는 더 느린 클럭 신호의 펄스에서 전송되는 데이터를 오버런(overrun)하지 않는다.
일 실시예에 있어서, 본 시스템은 정렬 검출기부, 프로그램가능 지연부 및 신호 오프셋부를 갖는 정렬 회로(alignment circuit)를 포함한다. 상기 회로의 상기 정렬 검출기부는 PLL에 의해 기준 클럭에 고정(lock)되는 분할기 출력 신호의 하강 에지에 대응하는, 상기 클럭 영역들 중 하나에서의 상기 클럭 신호의 하강 에지(edge)를 식별한다. 상기 정렬 신호는 기준 클럭 주기의 나머지 부분에 대응하도록 프로그램할 수 있는 시간의 양 동안 지연된다. 이로써 상기 회로의 상기 프로그램가능 지연부는 상기 2개의 클럭 신호들의 하강 에지들이 일치한 다음에 어서트되는 정렬 신호를 생성시킨다. 상기 회로는 상기 정렬 신호 이전의 소정의 사이클의 수를 오프셋하는 스킵 리셋 신호를 또한 생성시킨다. 상기 스킵 리셋 신호가 상기 정렬 신호를 이끌어내게 됨으로써, 상기 스킵 패턴 발생기는 상기 정렬 신호를 어서트하여 상기 스킵 패턴의 제 1 스킵 값을 생성 및 적용할 수 있게 된다.
일 실시예는 상기 2개의 클럭 영역에서 동기화된 리셋 신호들을 생성하도록 구성된 동기 리셋 회로를 또한 포함한다. 상기 동기 리셋 회로는 1차 리셋 신호를 받아들이고, 기준 클럭 영역으로부터 상기 리셋 신호를 몇몇 중간 단계들을 거쳐 상기 2개의 동작 클럭 영역들 중 하나의 영역 안으로 클럭킹한다. 상기 리셋 신호가 이 클럭 영역 안으로 클럭킹되었을 경우, 상기 회로는 다음 대응하는 정렬 신호의 도달까지 상기 리셋을 지연한다. 이후, 상기 리셋 신호는 각각의 클럭 영역에서 개별 정렬 신호와 어서트되는, 논리적으로 일치하는 동기화 리셋 신호들로서 전송된다.
본 발명의 일 실시예가 하기에 설명된다. 이 실시예는 본 발명의 특징 및 동작을 설명하기 위해 예시적으로 제시되고, 본 발명의 다수의 다른 실시예들이 가능하다는 것을 주목해야 한다.
대체로 말하면, 2개의 클럭 영역에서 리셋 신호들을 동기화시키고 상기 2개의 클럭 영역 사이에서 데이터 전송을 가능하게 해주는 클럭 스킵핑 버퍼(clock skipping buffer)를 초기화하는 시스템 및 방법이 개시된다. 일 실시예는, 각각 서로 다른 클럭 주파수를 갖는 2개의 서로 다른 클럭 영역에서, 구성요소들을 갖는 마이크로프로세서에서 구현된다. 상기 2개의 영역의 클럭 신호들은 단일 기준 클럭 신호로부터 발생되며, 각각의 주파수는 기준 클럭 주파수의 배수 또는 1/2배수(half-multiple)이다. 따라서, 상기 클럭 신호들은 그것들이 배수인 경우 상기 기준 클럭의 주기마다 또는 그것들이 상기 기준 클럭의 1/2배수인 경우 다른 주기마다 적어도 한 번 상기 기준 클럭 신호와 정렬된다. 상기 클럭 영역들의 상기 클럭 신호들은 상기 기준 클럭 신호의 하강 에지와 논리적으로 일치하는 각각의 클럭의 하강 에지를 검출함으로써 논리적으로 정렬된다. 정렬 신호는 상기 각각의 클럭 신호의 일치하는 펄스와 동시에 상기 클럭 영역들의 각각에서 어서트됨으로써, 상기 정렬된 펄스 즉, '0' 펄스를 식별한다. 이것은 기준 클럭 주기 마다(또는 상기 대응하는 클럭 신호가 상기 기준 클럭 신호의 1/2배수인 경우 다른 기준 클럭 주기 마다) 발생한다. 상기 정렬 신호들을 이끌어내는 스킵 패턴 리셋 신호가 또한발생되어 스킵 패턴 발생기로 전달되며, 이후 상기 스킵 패턴 발생기는 상기 정렬 신호들과 동시에 시작되는 스킵 패턴을 발생시킬 수 있다. 비동기 리셋 신호가 상기 클럭 영역들 중 하나에 전송되어 그 영역에서 상기 정렬 신호와 동기화된다. 이후, 상기 정렬된 리셋 신호는 상기 클럭 신호들 사이에서 적어도 최대 스큐 정도의 양만큼 지연된다. 상기 클럭 영역들 각각에서 후속 정렬 신호의 어서트시, (상기 각각의 정렬 신호와 정렬된) 동기 리셋 신호가 어서트되어, 상기 클럭 스킵핑 버퍼의 개별 카운터들을 리셋시킨다.
일 실시예에 있어서, 본 시스템은 고집적 고성능 마이크로프로세서에 포함된다. 이 프로세서는 2개의 주요 클럭 영역(CPU 코어 클럭인 XICLK와 시스템 인터페이스 로직을 구동하는데 이용되는 XBCLK)을 이용한다. 상기 마이크로프로세서는 이 2개의 클럭 영역들 사이에서 효율적으로 데이터를 전송하기 위해 클럭 스킵핑 기술을 이용한다. 클럭 스킵핑 시스템에서, 데이터는 순차적 저장 위치에 일시적으로 저장된다. 상기 제 1 클럭 신호의 대응하는 클럭 펄스가 수신된 경우, 상기 데이터는 상기 저장 위치들에 전달된다. 상기 데이터는 저장된 순서에 따라 상기 저장 위치들에서 검색된다. 상기 제 2 클럭 영역에서 제 2 클럭 신호의 대응하는 클럭 펄스가 수신된 경우, 데이터는 상기 저장 위치들 중 하나에서 검색된다. 이 실시예에서 상기 제 1 및 제 2 클럭 신호들은 서로 다른 클럭 속도를 갖기 때문에, 상기 신호들의 고속의 하나 또는 그 이상의 클럭 펄스는 (상기 저장 위치들에 적재(load)하거나 상기 저장 위치들로부터 하역(unload)하는) 관련 프로세스가 다른 프로세스를 오버런 또는 앞지르는 것을 막기 위하여 스킵핑되어야 한다.
도 1을 참조하면, 제 1 디바이스(11)가 제 2 디바이스(12)에 데이터를 전송하는 시스템이 예시된다. 디바이스(11)는 제 1 클럭 영역에 존재하고, 디바이스(12)는 제 2 클럭 영역에 존재한다. 상기와 나타낸 바와 같이, 클럭 영역은 이 영역의 클럭 신호에 기초하여 동작하는 디바이스들을 포함한다. 상기 개별 클럭 영역들의 상기 클럭 신호들은 공통 기준 클럭 주파수의 서로 다른 배수에서 구동하는 위상 고정 루프(PLL)에 의해 출력된다.
디바이스(11)에서 디바이스(12)로의 데이터 전송은 클럭 스킵핑 버퍼(13)를 통해 이루어진다. 데이터는 상기 제 1 클럭 영역의 상기 클럭 신호의 펄스로 버퍼(13) 안으로 클럭킹되고, 상기 제 2 클럭 영역의 상기 클럭 신호의 펄스로 버퍼(13) 밖으로 클럭킹된다. 클럭 스킵핑은 상기 버퍼 안으로 및 밖으로 데이터의 전송을 동일하게 하는데 이용된다.
도 2를 참조하면, 상기 클럭 스킵핑 기술이 예시된다. 도 2는 3개의 클럭 신호들(기준 클럭 신호(21), 제 1 클럭 영역으로부터의 클럭 신호(22) 및 제 2 클럭 영역으로부터의 클럭 신호(23))을 도시한다. 상기 2개의 클럭 영역들에서 상기 클럭 신호들은 상기 기준 클럭 신호의 배수이다. 상기 도면의 예에서, 클럭 신호(22)는 기준 클럭 신호(21)의 5배인 주파수를 갖는다. 클럭 신호(23)는 기준 클럭 신호(21)의 4배인 주파수를 갖는다.
도 2에 도시된 바와 같이, 데이터 전송시 클럭 신호(22)의 매 5개의 펄스로부터 한 개의 펄스가 스킵핑된다. (본 개시의 목적을 위해, "펄스"는 클럭 신호의 에지를 가리킨다. 상기 펄스들은 특정 실시예의 구현에 따라 상승 에지, 하강 에지또는 둘다를 포함할 수 있다.) 따라서, 기준 클럭 주기마다, 클럭 신호(22)의 4개의 유효 펄스와 1개의 스킵 펄스가 있게 될 것이다. 클럭 신호(23)는 또한 각각의 기준 클럭 주기에 4개의 유효 펄스들을 갖는다(그러나 스킵 펄스를 갖지 않는다). 상기 유효 펄스들은 상기 버퍼 안으로 및 밖으로 데이터를 전송하는데 이용되어, 기준 클럭 주기마다, 4비트의 데이터가 안으로 전송되고 4비트의 데이터가 밖으로 전송될 것이다.
도 2에 도시된 바와 같이, 상기 기준 클럭 주기의 시점에서 상기 2개의 클럭 영역들의 상기 클럭 신호들 사이에 천이(shift)가 없다. 즉, 이들 모두 상기 기준 클럭과 동시에 하강 에지를 가진다. 상기 제 1 클럭 신호가 상기 제 2 클럭 신호보다 더 높은 속도를 갖기 때문에, 상기 제 1 신호의 제 2 하강 에지는 상기 제 2 신호의 제 2 하강 에지 전에 일어난다. 따라서, 상기 2개의 신호들 사이에 천이가 나타난다. 이 천이는 상기 기준 클럭 주기 동안 변한다. 그러나, 클럭 신호(22)의 매 4번째 펄스가 스킵핑되기 때문에, 상기 천이는 항상 상기 클럭 신호(22)의 주기보다 작거나 같다. 이 천이는 상기 클럭 스킵핑 버퍼에 의해 흡수(absorb)된다. 데이터는 상기 클럭 신호들 중 하나의 상기 유효 펄스들에서 상기 버퍼 안으로 적재되며, 이후, 상기 데이터가 기입되게 할 만큼 충분히 긴 주기를 기다린 후에, 상기 데이터는 상기 다른 클럭 신호의 상기 유효 펄스들에서 상기 버퍼로부터 하역된다.
도 2는 상기 기준 클럭 신호와 관련하여, 기준 클럭 주기마다 클럭 신호(22)의 제 2 펄스가 스킵핑되는 것을 예시한다. 각각의 클럭 신호의 제 1 하강 에지가 상기 기준 클럭 신호의 상기 하강 에지와 동기화되는 경우, 각각의 기준 클럭 주기에서 상기 제 2 펄스의 스킵핑은 상기 제 1 클럭 신호의 상기 펄스들이 항상 클럭 신호(23)의 대응하는 펄스들과 동기화되거나 오른쪽으로 천이되도록(즉, 뒤쳐지도록) 해준다. 다른 실시예들에 있어서, 상기 제 1 클럭 신호는 왼쪽으로 천이될 수도 있거나, 상기 천이는 상기 제 2 신호의 양쪽으로 이루어질 수도 있다. 한 신호의 천이가 다른 신호의 한쪽에 항상 머무르도록 강제함으로써, 단일 버퍼가 상기 천이를 흡수시키는데 이용될 수 있게 해준다. 상기 천이가 어떤 때에는 오른쪽으로 그리고 다른 때에는 왼쪽으로 이루어지는 경우, 상기 어떤 버퍼들도 상기 천이의 전체 클럭 주기를 흡수시키지 않기 때문에 2개의 버퍼들은 상기 천이를 흡수시키는데 필요하게 될 것이다. 다른 실시예들에 있어서, 상기 개별 클럭 신호들의 상대적인 주파수들에 따라 한개 펄스 이상 스킵핑될 수 있음을 주목할 필요가 있다.
도 3을 참조하면, 상기 클럭 신호들이 발생되는 방식을 예시하는 기능적인 블럭도가 도시된다. 2개의 PLL(41, 42) 각각으로 기준 클럭 신호가 입력된다. 각각의 PLL은 상기 기준 클럭 주파수의 배수인 주파수를 갖는 클럭 신호를 발생시킨다. 이 경우, PLL(41)은 상기 기준 클럭의 주파수의 N배인 제 1 클럭 신호를 발생시킨다. PLL(42)은 상기 기준 클럭 주파수의 M배인 제 2 클럭 신호를 발생시킨다. 상기 PLL들 각각은 대응하는 클럭 분배 네트워크(43, 44)로 그것의 클럭 신호를 전달한다. 상기 분배 네트워크들은 상기 개별 클럭 영역들에서 상기 디바이스들로 상기 제 1 및 제 2 클럭 신호들을 전달한다. 상기 분배 네트워크들은 분할기 회로들(45, 46)에 상기 클럭 신호들을 전달하며, 상기 분할기 회로는 상기 PLL들에 입력될 피드백 신호들을 생성시킨다. 각각의 분할기 회로는 이 영역들의 클럭 곱함수에 대응하는 인수에 의해 상기 대응하는 클럭 신호를 분할한다. 다시 말해, PLL(41)은 상기 기준 클럭 주파수의 N배인 클럭 신호를 발생시키고, 분할기 회로(45)는 피드백 신호를 발생시키기 위해 상기 클럭 신호를 N으로 분할한다. 마찬가지로, PLL(42)은 상기 기준 클럭 주파수의 M배인 클럭 신호를 발생시키고, 분할기 회로(46)는 피드백 신호를 발생시키기 위해 상기 결과로 생긴 클럭 신호를 M으로 분할한다. 상기 피드백 신호들은 상기 개별 PLL들로 제공되며, 이 PLL들은 상기 피드백 신호들을 상기 기준 클럭과 정렬되도록 상기 발생된 클럭 신호들을 천이한다. 상기 피드백 신호들 각각과 상기 기준 클럭 신호를 정렬함으로써, 상기 시스템은 상기 2개의 클럭 영역들의 상기 클럭 신호들 사이의 스큐를 최소화하고자 한다.
여러 이유로, 상기 클럭 신호들 사이의 스큐를 최소화하는 것이 중요하다. 상기 설명된 바와 같이, 상기 클럭 스킵핑 메커니즘은 상기 제 1 클럭 영역과 상기 제 2 클럭 영역 사이의 스큐를 흡수시키기 위해 버퍼들을 사용한다. 더 많은 스큐가 존재하는 경우, 상기 메커니즘을 실시하기 위해 더 많은 버퍼들이 요구될 수 있다. 상기 클럭 스킵핑 버퍼에서 필요한 상기 버퍼들에 대해 요구되는 영역을 줄이는 것에 더하여, 상기 클럭 신호들 사이에서 상기 스큐를 줄임으로써, 상기 버퍼를 사용하는 데이터 전송들의 지연(latency)을 줄이는 효과를 갖는다. 다시 말해, 상기 데이터 전송의 성능이 개선된다.
도 4를 참조하면, 클럭 스킵핑 버퍼의 구조가 도시된다. 이 도면에 도시된 회로는 상기 데이터를 버퍼링하고 송신 및 수신 클럭 영역들의 클럭 신호들 사이에서 클럭 천이를 흡수하기 위해 한 세트의 저장 위치(플립-플롭)를 사용한다. 데이터 입력선(52)을 통해 일련의 데이터 비트들이 버퍼(50)에 전송된다. 데이터 입력선(52)은 D-타입 플립-플롭들(51a-51d) 각각의 데이터(D) 입력들과 연결된다. (편리함을 위하여, 플립-플롭들(51a-51d)은 단일 참조 부호(51)를 사용하여 본원에서 개별적으로 및 집합적으로 나타낸다.) 각각의 플립-플롭(51)의 클럭 입력은 클럭선(53)과 연결된다. 각각의 플립-플롭(51)의 인에이블(enable)(E) 입력은 적재 카운터(54)의 출력들 중 하나와 연결된다. 적재 카운터(54)는 선(53)상의 상기 신호에 의해 또한 클럭킹되는 패턴 발생기(58)에 의해 제어된다. 각각의 플립-플롭(51)의 출력(Q)은 다중화기(55)와 연결된다. 다중화기(55)의 선택 입력은 상기 다중화기 입력들(따라서 상기 플립-플롭 출력들)이 다중화기(55)에 의해 선택되어 출력되도록 제어하는 하역 카운터(56)와 연결된다. 하역 카운터(56)는 수신 클럭 영역의 클럭 신호에 의해 클럭킹된다. 다중화기(55)의 출력은 플립-플롭(57)의 데이터 입력에 연결되어, 상기 수신 클럭 영역의 클럭 신호에 의해 클럭킹된다. (적재 카운터(54)와 하역 카운터(56)는 또한 상기 카운터들을 리셋하는데 이용되고 하기에 더 상세하게 설명될 여러 제어 입력들을 갖는다.)
선(52)을 통해 시스템(50)으로 데이터가 전달된다. 각각의 플립-플롭(51)으로의 상기 데이터 입력이 선(52)으로 묶여있기 때문에, 각각의 데이터 비트는 상기 플립-플롭들 각각으로 동시에 인가된다. 플립-플롭들(51)의 입력들에 인가된 상기 데이터 비트는 오직 적재 카운터(54)에 의해 선택되는 상기 플립-플롭들 중 하나에 저장된다. 적재 카운터(54)는 그것의 출력들 중 하나에서 인에이블 신호를 어서트하고, 나머지 출력들 각각에서의 상기 인에이블 신호를 디어서트(deassert)한다.상기 카운터 출력들 각각은 대응하는 플립-플롭의 인에이블 입력과 연결되어 상기 플립-플롭들 중 오직 하나가 한번에 인에이블된다. 따라서, 상기 인에이블된 플립-플롭은 현재 인가된 데이터 비트를 저장하고, (디스에이블된) 상기 다른 플립-플롭들은 이전에 그것들에 저장된 비트들을 계속 유지한다.
패턴 발생기(58)는 인에이블-엘피알스킵(enable-Lprskip) 펄스들의 패턴을 발생시킨다. 유효 클럭 펄스가 수신될 때마다, 상기 카운터는 증분된다. 적재 카운터(54)가 증분될 때마다, 이는 플립-플롭들(51)에 연결된 출력들 중 하나에서의 인에이블 신호를 어서트한다(그리고 다른 출력들에서의 상기 인에이블 신호를 디어서트한다). 따라서, 각각의 일련의 데이터 비트는 플립-플롭들(51) 중 하나에 저장된다. 플립-플롭들(51) 중 마지막 플립-플롭(예를 들어, 51d)에 데이터 비트가 저장된 후에, 상기 시스템은 상기 제 1 플립-플롭(51a)으로 순환하고 제 1 플립-플롭에 후속 데이터 비트를 저장한다. 이러한 순환은 상기 데이터 모두가 전송될 때까지 반복된다. 상기 플립-플롭들 각각에 저장되는 데이터 비트는 결국 겹쳐쓰기될 것이지만은, 각각의 데이터 비트는 그것이 겹쳐쓰여지기 전에 검색될 것이다.
상기 스킵 패턴 발생기(58)에 의해 스킵 신호가 출력될 경우, 상기 적재 카운터로부터의 모든 인에이블선들은 디스에이블되고 상기 카운터는 증분되지 않는다. 상기 스킵 신호는 상기 데이터 소스로 또한 전송되어, 이 순환에서 상기 전송을 보류(hold off)한다.
상기 플립-플롭들(51) 각각은 (거기에 임의의 비트가 이미 저장되었다면) 상기 플립-플롭에 저장된 최종 데이터 비트를 그것의 출력에서 어서트한다. 이 비트들은 다중화기(55)로 입력으로써 제공되며, 이는 플립-플롭(57)으로 통과될 상기 입력들 중 하나를 선택한다. 다중화기(55)는 하역 카운터(56)에 의해 제어된다. 하역 카운터(56)는 다중화기(55)에 선택 신호를 제공함으로써, 플립-플롭들(51) 각각은 상기 데이터 비트들이 그것들에 저장되었던 순서로 순차적으로 선택된다. 하역 카운터(56)는 상기 수신 클럭 영역의 클럭 신호에 의해 클럭킹되고 각각의 CLK2 펄스를 증분시킨다. 상기 선택된 플립-플롭(51)에 의해 출력된 상기 비트는 플립-플롭(57)으로 포워딩된다. 플립-플롭(57)은 상기 제 2 클럭 영역의 상기 신호에 의해 클럭킹되고 한 클럭 주기 동안 상기 데이터를 계속 유지한다. 이후, 상기 플립-플롭(57)은 새로 선택된 플립-플롭(51)의 출력을 수신하고 한 클럭 주기 동안 이 비트를 계속 유지한다. 따라서, 상기 데이터 비트들은 그것들이 저장된 동일한 순서로 플립-플롭들(51)에서 검색되고, 상기 제 2 클럭 영역의 클럭 속도에서 새로운 직렬 데이터 스트림이 발생된다.
상기에 나타낸 바와 같이, 각각의 플립-플롭(51)에 저장된 데이터 비트는 새로운 비트와 겹쳐쓰기되기 전에 다중화기(55)에 의해 선택된다. 이는 상기 데이터 전송의 시점에서 적절한 값으로 적재 카운터(54)와 하역 카운터(56)를 초기화함으로써 달성된다. 상기 카운터 값들은 그것들이 검색되기 전에 상기 데이터 비트들이 적절한 간격으로 저장되도록 선택된다. 예를 들어, 도 4에 예시된 상기 시스템에서, 적재 카운터(54)는 (플립-플롭(51a)을 선택하는) 0으로 초기화될 수 있고, 하역 카운터(56)는 (플립-플롭(51c)을 선택하는) 2로 초기화될 수 있다. 상기 데이터 전송이 시작되면, 상기 제 1 데이터 비트는 플립-플롭(51a)에 저장될 것이다. 판독될 제 1 플립-플롭은 51c이며, 여기에는 데이터 비트가 저장되지 않는다. 상기 클럭 영역들 각각의 후속 유효 펄스에서, 상기 개별 카운터들은 증분하여 상기 제 2 데이터 비트는 플립-플롭(51b)에 저장될 것이고, 판독될 상기 제 2 플립-플롭은 51d일 것이다. 상기 후속 유효 펄스에서, 상기 제 3 데이터 비트는 플립-플롭(51c)에 저장될 것이고 다중화기(55)는 플립-플롭(51a)으로부터 상기 제 1 데이터 비트를 검색할 것이다. 따라서, 플립-플롭(51a)에 저장된 상기 데이터 비트는 그것이 저장된 후 2클럭 주기 동안 판독된다. 상기 비트가 모든 시스템 스큐 상태하에서 저장되도록 하기에 불충분한 경우, 상기 하역 카운터는 3클럭 주기의 데이터가 저장되도록 하기 위해 1로 초기화될 수 있다. 오직 1클럭 주기가 필요하다면, 상기 하역 카운터는 3으로 설정될 수 있다.
검색되기 전에 각각의 데이터 비트가 어떤 수의 클럭 주기 동안 플립-플롭에 기입되도록 하기 위해 어떤 최소수의 플립-플롭들이 필요하다는 것은 상기 실시예로부터 명백하다. 필요한 플립-플롭들의 수는 하기의 등식에 따라 계산될 수 있다:
여기서,
periodtargetclock은 상기 수신 클럭 영역의 클럭 주기(각각의 데이터 비트 즉, 비트가 상기 실시예에서 하강 클럭 에지에서 전송되기 때문에, 상기 클럭 주기는 상기 비트 시간과 같다)이고;
delaymax는 상기 클럭 영역들 사이의 최대 신호 지연(상기 송신기 및 수신기로직이 상기 클럭 영역 경계에서 서로 가까이에 위치하는 경우, 상기 지연은 필수적으로 0이어야 한다)이고;
delaymin은 상기 클럭 영역들 사이의 최소 신호 지연이고;
Tskew는 상기 송신 및 수신 클럭 영역들의 상기 클럭 신호들 사이의 스큐이고;
Tsetup은 상기 플립-플롭들에 대한 설정 시간이고;
Thold는 상기 플립-플롭들에 대한 유지 시간이고; 그리고
Nshift는 (도 6 및 7에 도시된) 상기 클럭 신호들 사이의 천이를 계산하는데 필요한 플립-플롭의 수이다.
특정 실시예에서, 도 4에 예시된 4개의 플립-플롭보다 더 적거나 더 많은 플립-플롭들이 필요할 수 있다. 예를 들어, 상기 2개의 클럭 영역들의 상기 클럭 신호들 사이의 스큐가 증가하는 경우, 상기 필요한 플립-플롭의 수는 5 또는 그 이상으로 증가할 수 있다. 반대로, 상기 클럭 신호들 사이에 스큐가 존재하지 않는다면, 오직 2 또는 3개만이 필요할 수 있다. 상기 공식에 따라 계산된 플립-플롭의 수는 최소수를 나타내고 일부 실시예들은 이 최소수 이상 사용할 수 있다는 것에 또한 주목할 필요가 있다.
다른 실시예들은 상기 전송된 데이터 비트들을 저장하기 위해 플립-플롭이 아닌 디바이스들을 이용할 수도 있다는 것에 주목할 필요가 있다. 예를 들어, 하나또는 그 이상의 다중-엔트리 FIFO(선입선출) 메모리 디바이스들이 이용될 수 있다. 상기 설명된 실시예에서 상기 플립-플롭들이 다중-엔트리 FIFO들로 대체될 경우, 여러 개의 데이터 비트들은 상기 비트들이 검색되기 전에 각각의 FIFO에 적재될 수 있고, 따라서 필요한 저장 디바이스들의 수를 줄인다(그러나 상기 디바이스들의 복잡성을 증가시킨다). 사실, 상기 설명된 실시예의 플립-플롭들은 서로 다른 속도로 적재 및 하역될 수 있는 FIFO의 기능을 한다.
상기 펄스 발생기(58)는 M과 N(즉, 클럭 비율)의 값에 따라 적절한 패턴을 찾는 것 또는 동적으로 상기 패턴을 계산하는 것과 같은 다수의 방식들로 이러한 기능을 달성할 수 있다. 상기 펄스 발생기의 기능은 또한 다른 방식들로 달성될 수 있다.
일 실시예에 있어서, 상기 패턴 발생기들은 임의의 데이터 전송 이전에 특정 스킵 패턴을 발생하도록 초기화된다. 초기화 동안, 상기 송신 및 수신 클럭 영역들에 대응하는 상기 M과 N 값은 상기 패턴 발생기들로 통과된다. 이후, 상기 패턴들은 임의의 전송이 발생하기 전에 상기 수신된 M과 N 값에 따라 발생된다. 초기화 동안, 상기 시스템은 또한 상기 하역 및 적재 카운터들을 적절한 값들로 설정해야 하며, 이로써 상기 플립-플롭들로부터 안정된 데이터가 검색될 수 있다. 상기 적재 카운터가 (상기 제 1 플립-플롭에 대응하는) 0으로 초기화된 경우, 상기 하역 카운터는 상기 비트-시간과 (delaymax- delaymin), Tskew및 (Tsetup+Thold)의 합에 의해 결정된 값으로 초기화될 수 있다. 상기 비트-시간은 핀 샘플링(pin sampling) 또는 직렬 비트스트림으로부터 결정될 수 있다. (제 1 클럭 영역에서 제 2 클럭 영역으로의 전송들 및 상기 제 2 클럭 영역에서 상기 제 1 클럭 영역으로의 전송들은 개별적으로 조정되기 때문에, 이 전송들 각각에 대한 상기 초기화 값은 서로 다를 수 있음을 주목할 필요가 있다.)
상기 설명된 바와 같이, 상기 클럭 스킵핑 버퍼는 데이터가 하나의 클럭 영역에서 다른 클럭 영역으로 전송될 수 있도록 하기 위해 적절하게 초기화 및 동기화되는 것이 중요하다. 이는 2개의 주요 기능들을 필요로 한다. 첫째, 상기 2개의 영역들의 상기 클럭 신호들은 정렬되어야 한다. 즉, 상기 클럭 스킵핑 패턴은 상기 클럭 신호들이 정렬되어 있을 때 상기 적재 또는 하역 카운터들에 인가되어야 한다. (예를 들어, 도 2에서 '0' 펄스들이 정렬되어 있다.) 상기 클럭 신호들이 정렬되어 있지 않은 경우(예를 들어, 상기 스킵핑 패턴이 상기 '1'펄스들에서 시작되는 경우), 신뢰할 수 있는 데이터 전송을 방해할 수 있는, 고려되지 않는 추가 스큐가 존재할 것이다. 둘째, 상기 버퍼의 적재 및 하역 카운터들은 동시에 리셋되어야 한다. 상기 카운터들이 동시에 시작되지 않는 경우, 상기 버퍼에 있는 데이터는 적절한 때에 하역될 수 없다. 상기 버퍼가 너무 일찍 하역된 경우, 상기 데이터는 아직도 저장되지 않았을 수 있다. 상기 버퍼가 너무 늦게 하역된 경우, 상기 데이터는 겹쳐쓰기되었을 수 있다.
도 5를 참조하면, 논리적으로 클럭 스킵핑 버퍼를 정렬 및 초기화하도록 구성된 회로의 기능적인 블럭도가 도시된다. 상기 회로는 한 쌍의 정렬 검출 유닛들(71과 72), 동기 리셋 유닛(73), 스킵 패턴 발생기(74), 카운터 리셋유닛(75) 및 데이터 전송 버퍼(76)를 포함한다. 정렬 유닛들(71과 72) 각각은 상기 클럭 영역들 중 하나에서 클럭 신호와 기준 클럭 신호의 정렬을 검출하도록 구성된다. 상기 개별 클럭 신호가 상기 기준 클럭 신호와 대체로 정렬인 경우, 상기 정렬을 나타내는 신호가 발생된다. (상기 신호들이 상기 시스템에서 고유한 스큐 때문에 정확하게 정렬된다기 보다는 "논리적으로" 정렬될 것임에 주목한다.) 이 신호는 동기 리셋 유닛(73)과 카운터 리셋 유닛(75)으로 전달된다. 정렬 유닛(72)에 의해 발생된 상기 정렬 신호는 스킵 패턴 발생기(74)로 또한 전달된다.
상기 도면에 도시된 실시예에서, 정렬 유닛(71)은 더 낮은 클럭 주파수를 갖는 클럭 영역에 존재하고, 정렬 유닛(72)은 더 높은 클럭 주파수를 갖는 클럭 영역에 존재한다는 것에 주목할 필요가 있다. 클럭 펄스들이 상기 더 높은 클럭 속도를 갖는 클럭 영역에서만 스킵핑될 필요가 있기 때문에, 오직 이 클럭 영역은 스킵 패턴 발생기를 필요로 한다. 다른 실시예들에 있어서, 가변 클럭 주파수들이 항상 고속 클럭을 갖도록 하나의 영역을 보증하지 않는 경우, 클럭 펄스들은 두 클럭 영역들에서 스킵핑될 수 있으며, 이 경우 정렬 유닛(71)에 연결된 제 2 스킵 패턴 발생기가 사용된다.
동기 리셋 유닛(73)은 정렬 유닛들(71과 72)로부터 정렬 신호들을 받아들이고 카운터 리셋 유닛(75)을 초기화하기 위해 동기화된 리셋 신호들(즉, 상기 2개의 클럭 영역들 각각에 대해 하나)을 발생시킨다. 카운터 리셋 유닛(75)은 데이터 전송 버퍼(76)를 통해 데이터 흐름을 제어하는 상기 적재 및 하역 카운터들을 포함한다. 동기 리셋 유닛(73)에 의해 생성된 상기 동기화된 리셋 신호들이 수신된 후에,카운터 리셋 유닛(75)은 상기 개별 클럭 영역들에 대응하는 적재 및 하역 펄스들을 생성시키고 이 신호들을 상기 데이터 전송 버퍼(76)에 전송하기 시작한다.
상기 설명된 바와 같이, 상기 2개의 영역들의 클럭 신호들은 동일한 기준 클럭 신호로부터 생성된다. 어떤 때에 그리고 그후 기준 클럭 주기마다 반복할 때, 상기 클럭 신호들은 (적어도 어떤 허용편차 내에서) 일치한다. 도 2에서, 이 지점은 상기 PLL들에 의해 생성된 상기 2개의 클럭 신호들 각각의 하강 에지 0에 의해 식별된다. 이 지점은 상기 기준 클럭 신호의 하강 에지와 또한 일치한다. 상기 개별 클럭 신호들의 정렬을 검출하기 위해 상기 2개의 클럭 영역들 각각에 대해 도 6에 도시된 정렬 검출 회로가 제공된다.
도 6을 참조하면, 정렬 유닛의 기능적인 블럭도가 도시된다. 상기 설명된 바와 같이, 상기 정렬 유닛은 기준 클럭으로 상기 2개의 클럭 영역들 중 하나에서 상기 클럭 신호의 정렬을 검출하는데 이용된다. (동일한 회로들은 두 클럭 영역들에서 상기 클럭 신호들의 정렬을 검출하는데 이용되며, 그래서 상기 회로의 구조는 상기 영역들 중 단일 영역을 참조하여 본원에 설명될 것이다.) 상기 회로는 3개의 주요 구성 요소(에지 검출부, 프로그램가능 지연부 및 신호 오프셋부)로 구분될 수 있다. 이 구성 요소들은 물리적으로 반드시 분리될 필요는 없으나, 설명의 편의를 위해 분리된 것으로 설명된다. 다른 실시예들에 있어서, 상기 정렬 유닛의 설계는 다양하게 될 수 있다.
상기 회로의 상기 정렬 검출부는 2개의 신호들(상기 회로의 클럭 영역에 대응하는 클럭 신호와, 분할된 클럭 신호)을 수신한다. 상기 분할된 클럭 신호는 도3에 도시된 개별 분할기 회로(45 또는 46)의 출력이다. 상기 분할기 출력 회로는 본질적으로 상기 기준 클럭 신호와 동일하지만, 상기 기준 클럭 신호로부터 천이된다. 상기 PLL은 상기 클럭 신호를 조정하며, 결과적으로 그것과 상기 기준 클럭 사이의 차이를 없애기 위한 방식으로 상기 분할기 출력을 천이한다. 상기 에지 검출기는 상기 분할된 클럭 신호의 에지가 검출되었음을 나타내는 신호를 생성하고, (상기 기준 클럭 주기가 아니라, 상기 개별 클럭 영역에서 상기 클럭 신호의) 하나의 클럭 주기 동안 이 신호를 어서트한다. 상기 회로의 상기 오프셋 및 프로그램가능 지연부는 상기 기준 클럭 주기의 나머지에 대해 상기 어서트된 신호를 지연시켜서 상기 분할된 클럭 신호의 하강 에지의 후속 발생에서 상기 회로에 의해 출력될 수 있다. 상기 회로의 상기 오프셋 및 프로그램가능 지연부는 2개의 신호들(정렬 신호 및 스킵 리셋 신호)을 생성하도록 구성된다.
상기 정렬 신호는 상기 분할된 클럭 출력의 하강 에지와 일치한다. 상기 스킵 리셋 신호는 상기 정렬 신호와 동일하지만, 여러 개의 클럭 사이클에 의해 상기 정렬 신호를 일시적으로 이끌어내도록 천이된다. 상기 스킵 리셋 신호는 천이되어 상기 정렬 신호를 예상하여 여러 로직 레벨들을 통해 처리될 수 있다. 상기 스킵 리셋 신호는 상기 스킵 패턴 발생기를 리셋하는데 이용되어 정렬 신호가 어서트될 때 적절하게 초기화될 것이다. 상기 정렬 유닛에 의해 생성된 정렬 신호는 상기 동기 리셋 유닛과 상기 동기 카운터 유닛에 전달된다. 상기 스킵 리셋 신호는 상기 스킵 패턴 발생기에 전달된다. (상기 설명된 바와 같이, 상기 시스템에서 오직 하나의 스킵 패턴 발생기가 존재할 수 있으며, 그래서 스킵 패턴 발생기를 갖지 않는클럭 영역에서 상기 정렬 유닛은 상기 스킵 리셋 신호를 생성시킬 필요가 없다.)
상기 정렬 유닛들은 상기 시스템을 논리적으로 정렬되도록 해준다. 즉, 상기 2개의 클럭 영역들에서 상기 클럭 신호들의 일치하는 하강 에지들은 식별된다. (상기 클럭 신호들은 그럼에도 불구하고 약간 스큐될 수 있어서 상기 에지들이 이 스큐에 의해 천이될 수 있음에 주목할 필요가 있다.) 상기 클럭 스킵 패턴의 적절한 정렬은 상기 적재 및 하역 카운터들이 상기 동일한 효율적인 속도에서 구동될 수 있게 하고 상기 2개의 서로 다른 클럭 영역들 사이에 최소 지연을 갖도록 데이터를 전송할 수 있게 해준다. 그러나, 상기 나타낸 바와 같이, 상기 시스템은 상기 적재 및 하역 카운터들을 동시에 리셋하기 위한 메커니즘을 또한 가져야 하며, 그래서 그들은 동시에 시작하여 상기 클럭 신호들과 정렬된다. 이후, 상기 버퍼에서 상기 저장 위치들은 상기 적절한 순서로 적재 및 하역될 것이다. 이 기능은 상기 동기 리셋 유닛에 의해 수행된다.
도 7을 참조하면, 동기 리셋 유닛을 예시하는 블럭도가 도시된다. 상기 동기 리셋 유닛은 3개의 주요 구성 요소들(리셋 전송 회로, 지연 회로 및 동시 리셋 발생 회로)로 구분될 수 있다. 상기 리셋 전송 회로는 동기 리셋 신호를 받아들이고, 그것을 상기 기준 클럭과 동기화하고, 그리고 상기 2개의 클럭 영역들 중 하나의 정렬 신호를 이용하여 클럭 영역에 그것을 전송한다. 본 실시예에 있어서, 상기 리셋 신호는 더 느린 클럭 속도를 갖는 상기 클럭 영역의 정렬 신호와 함께 전송된다. 다른 실시예들에 있어서, 상기 리셋 신호는 상기 고속 클럭 영역으로 전송될 수 있다. 상기 결과로 생긴 리셋 신호는 상기 지연 회로로 입력된다. 상기 지연 회로는 상기 리셋 신호를 지연하도록 설계되어 그들 사이의 잠재적으로 큰 스큐에도 불구하고 상기 2개의 클럭 영역들 각각으로 상기 리셋 신호의 전송을 안전하게 해준다. 상기 지연은 다른 클럭 영역에서 보다 서로 다른 기준 클럭 주기에서 상기 클럭 영역들 중 하나에서 리셋 신호의 어서트를 피하기 위해 상기 클럭 영역들 사이의 상기 잠재적인 스큐보다 더 커야 한다. 상기 신호가 지연되지 않았고 상기 2개의 클럭 영역들에서 상기 리셋 신호들이 서로 다른 클럭 주기에서 어서트되지 않았다면, 전송된 데이터는 소실되거나 오류가 발생될 수 있다. 상기 지연된 리셋 신호는 상기 동시 리셋 발생 회로에 전달되며, 이는 상기 개별 클럭 영역들에서 후속 정렬 신호를 수신하자 마자 상기 2개의 클럭 영역들 각각에 대한 개별 리셋 신호를 발생시킨다. 상기 2개의 클럭 영역들 각각에 대한 리셋 신호는 상기 개별 정렬 신호와 정렬된다.
도 3을 참조하면, 일 실시예에서, 상기 2개의 클럭 영역들에서 상기 클럭 신호들이 기준 클럭 신호로부터 2개의 PLL에 의해 생성됨을 볼 수 있다. 각각의 영역의 상기 클럭 신호는 M 또는 N(상기 개별 클럭 영역의 클럭 속도와 상기 기준 클럭의 속도의 비)에 의해 분할되어 상기 PLL들에 피드백된다. 이후, 상기 PLL들은 상기 분할된 클럭 신호들이 대체로 상기 기준 클럭 신호와 정렬될 때까지 개별 클럭 신호들의 위상을 조정한다.
일 실시예에 있어서, 상기 리셋 전송 회로는 이들 서로 다른 클럭 신호들(즉, 상기 기준 클럭, 상기 분할된 클럭 출력 신호 및 상기 저속 영역의 클럭 신호들)에 의해 클럭킹되는 일련의 플립-플롭들을 포함한다. 상기 기준 클럭 신호에 의해 클럭킹되는 플립-플롭에서 동기 리셋 신호가 우선 동기화된다. 이는 상기 외부 기준 클럭에 대해 특정될 리셋 타이밍을 가능하게 해준다. 이후, 이 플립-플롭의 출력은 상기 PLL에 입력되는 상기 분할된 클럭 신호들(예를 들어, 도 3의 지점들(C 또는 F)) 중 하나에 의해 클럭킹되는 플립-플롭에서 획득된다. 상기 기준 클럭과 상기 분할된 클럭 사이의 차이는 PLL 위상 에러이며, 이는 미리 예측할 수 있어 다루기 쉽다. 이후, 상기 제 2 플립-플롭의 출력은 상기 분할기 회로들의 출력(예를 들어, 지점들(B 또는 E))의 출력에 의해 클럭킹되는 제 3 플립-플롭으로 전송될 수 있다. 이후, 상기 제 3 플립-플롭의 출력은 상기 클럭 영역 신호(예를 들어, 지점들(A 또는 D))에 의해 클럭킹되는 플립-플롭으로 전송될 수 있다. 각각의 전송은 미리 예측할 수 있어 다루기 쉬운 작은 양의 클럭 스큐로 이루어진다. 상기 동기화된 리셋 신호는 이로써 정렬된 리셋 신호(즉, 상기 클럭 영역의 정렬 신호와 정렬된 리셋 신호)를 생성시키기 위해, 제어 및 결정 방식으로 상기 기준 클럭 신호로부터 상기 정렬 신호로 "워크백(walk back)"된다. 상기 정렬된 리셋 신호는 이후 상기 지연 회로에 입력된다.
상기 지연 회로는 소정의 양의 시간 동안 상기 정렬된 리셋 신호를 지연하도록 제공한다. 상기 지연은 상기 2개의 클럭 영역들에서 상기 정렬 신호들 사이의 최대 가능 스큐보다 더 커야 한다. 상기 정렬된 리셋 신호가 지연된 후, 그것은 상기 동시 리셋 발생 회로에 전송된다.
상기 동시 리셋 발생 회로에서, 상기 지연된 정렬된 리셋 신호는 상기 2개의 클럭 영역들 각각으로부터 상기 정렬 신호들과 함께 수신된다. 그들의 개별 정렬신호들이 어서트된 다음 상기 2개의 클럭 영역들 각각에서 리셋 신호가 어서트된다. 상기 지연의 목적은 상기 리셋 신호들이 연속적인 기준 클럭 펄스들 대신 상기 동일한 기준 클럭 펄스에 대응하는 2개의 정렬 신호 펄스들과 정렬되어 어서트되도록 하는 것이다.
각각의 클럭 영역에서 어서트된 상기 리셋 신호는 초기값이 상기 적재 또는 하역 카운터로 각각 적재되도록 하고, 그들의 개별 클럭 신호들의 대응하는 정렬된 펄스들에서 상기 카운터들을 시작하도록 한다. 따라서, 상기 카운터들이 적절한 때에 시작되고, 상기 클럭 스킵핑 버퍼가 전술한 데이터를 전송하도록 하는데 필요한 양으로, 상기 적재 카운터가 상기 하역 카운터를 이끌 수 있다. 각각의 영역으로 상기 리셋을 전송하기 위해 상기 정렬 신호들을 이용함으로써, 상기 2개의 리셋들은 논리적으로 동시에 발생하고, 스큐에 의해 생성된 그들 사이의 어떤 차이점은 상기 클럭 스킵핑 버퍼에 추가의 스테이지를 부가함으로써 처리된다.
본 발명은 특정 실시예들을 참조하여 설명되었지만은, 상기 실시예들은 예시적인 것이며, 본 발명의 범위는 이들 실시예들로 한정되지 않는다는 것을 이해해야 한다. 설명된 실시예들에 대한 다수의 변형, 수정, 부가 및 개선이 가능하다. 이들 변형, 수정, 부가 및 개선은 하기의 청구 범위에 기재된 바와 같은 발명의 범위 내에 있다.
본 발명은 전자 시스템에서 서브시스템들을 클럭킹하는데 응용가능하다.

Claims (10)

  1. 제 1 클럭 신호를 갖는 제 1 클럭 영역과 제 2 클럭 신호를 갖는 제 2 클럭 영역 사이에 데이터를 전송하기 위해 클럭-스킵핑 버퍼(50)를 갖는 마이크로프로세서에 있어서,
    상기 제 1 클럭 신호의 펄스와 기준 클럭 펄스의 정렬을 검출하는 제 1 정렬 유닛(71)과;
    상기 제 2 클럭 신호의 펄스와 상기 기준 클럭 펄스의 정렬을 검출하는 제 2 정렬 유닛(72)과;
    상기 제 1 및 제 2 정렬 유닛에 연결되어 동기 리셋 신호를 수신하도록 구성된 동기 리셋 유닛(73) - 상기 동기 리셋 유닛은 상기 제 1 클럭 영역에서 상기 클럭 펄스와 정렬되는 제 1 리셋 신호와 상기 제 2 클럭 영역에서 상기 클럭 펄스와 정렬되는 제 2 리셋 신호를 생성한다 - 과; 그리고
    상기 동기 리셋 유닛에 연결되어 상기 제 1 및 제 2 리셋 신호들을 수신하는 카운터 리셋 유닛(75) - 상기 카운터 유닛은 상기 리셋 신호들 중 하나에 기초하여 적재 카운터를 리셋하고 상기 리셋 신호들 중 다른 것에 기초하여 하역 카운터를 리셋한다 - 을 포함하는 것을 특징으로 하는 회로.
  2. 제 1 항에 있어서, 상기 제 1 정렬 유닛(71)은 상기 제 1 클럭 영역에서 상기 클럭 펄스와 대체로 일치하는 제 1 정렬 신호를 발생시키고, 상기 제 2 정렬 유닛(72)은 상기 제 2 클럭 영역에서 상기 클럭 펄스와 대체로 일치하는 제 2 정렬 신호를 발생시키며, 여기서 상기 정렬 유닛들 중 상기 하나는 스킵 리셋 신호를 발생시키도록 구성된 것을 특징으로 하는 회로.
  3. 제 2 항에 있어서, 상기 스킵 리셋 신호를 수신하도록 연결된 스킵 패턴 발생기(74)를 더 포함하는 것을 특징으로 하는 회로.
  4. 제 3 항에 있어서, 상기 스킵 리셋 신호는 상기 제 1 및 제 2 정렬 신호들을 이끌어 내고, 여기서 상기 스킵 패턴 발생기(74)는 상기 스킵 리셋 신호의 수신에 응답하여, 상기 정렬 신호들 중 하나와 동시에 시작하는 스킵 패턴 신호를 생성하기 시작하는 것을 특징으로 하는 회로.
  5. 제 1 항에 있어서, 상기 기준 클럭 신호로부터 상기 제 1 클럭 신호와 상기 제 2 클럭 신호를 발생하도록 구성된 클럭 발생 회로를 더 포함하며, 여기서 상기 클럭 발생 회로는 상기 제 1 클럭 신호의 제 1 펄스와 상기 기준 신호의 제 1 펄스를 대체로 정렬하도록 구성된 제 1 PLL(41) 및 상기 제 2 클럭 신호의 제 1 펄스와 상기 기준 신호의 상기 제 1 펄스를 대체로 정렬하도록 구성된 제 2 PLL(42)을 포함하는 것을 특징으로 하는 회로.
  6. 클럭-스킵핑 버퍼(50)를 리셋하는 방법으로서,
    2개의 클럭 영역들 각각에서, 대응하는 기준 클럭 펄스와 대체로 정렬된 대응하는 클럭 신호의 각각의 펄스를 검출하는 단계와;
    동기 리셋 신호를 수신하는 단계와;
    상기 클럭 영역들 중 하나에서 정렬된 리셋 신호를 발생시키는 단계 - 상기 정렬된 리셋 신호는 상기 대응하는 클럭 영역의 상기 검출된 정렬된 펄스들 중 하나와 대체로 정렬된다 - 와;
    상기 클럭 영역들에서 상기 클럭 신호들 사이에 최대 스큐보다 더 많은 양에 의해 상기 정렬된 리셋 신호를 지연시키는 단계와; 그리고
    상기 2개의 클럭 영역들 각각에서, 동기 리셋 신호를 어서트하는 단계를 포함하는 것을 특징으로 하는 방법.
  7. 제 6 항에 있어서, 상기 2개의 클럭 영역들 각각에서, 상기 대응하는 동기 리셋 신호를 어서트하는 것에 응답하여 카운터를 적재 및 초기화하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  8. 제 7 항에 있어서, 상기 동기 리셋 신호는 상기 대응하는 클럭 영역의 다음의 검출 및 정렬된 펄스와 동시에 어서트되는 것을 특징으로 하는 방법.
  9. 제 7 항에 있어서, 상기 카운터들 중 하나는 상기 클럭-스킵핑 버퍼(50)에 대한 적재 카운터이고, 상기 카운터들 중 하나는 상기 클럭-스킵핑 버퍼에 대한 하역 카운터인 것을 특징으로 하는 방법.
  10. 제 6 항에 있어서, 스킵 패턴 발생기(74)를 포함하는 상기 클럭 영역들 중 하나에서, 상기 검출 및 정렬된 펄스들 중 대응하는 하나를 이끌어 내는 스킵 리셋 신호를 발생시키는 단계를 더 포함하는 것을 특징으로 하는 방법.
KR1020037002015A 2000-08-11 2001-05-09 다중-클럭 시스템에서 스킵 패턴을 동기화하고 클럭포워딩 인터페이스를 초기화하는 시스템 및 방법 KR100804286B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/637,710 2000-08-11
US09/637,710 US6748039B1 (en) 2000-08-11 2000-08-11 System and method for synchronizing a skip pattern and initializing a clock forwarding interface in a multiple-clock system
PCT/US2001/014902 WO2002014992A1 (en) 2000-08-11 2001-05-09 System and method for synchronizing a skip pattern and initializing a clock forwarding interface in a multiple-clock system

Publications (2)

Publication Number Publication Date
KR20030064379A true KR20030064379A (ko) 2003-07-31
KR100804286B1 KR100804286B1 (ko) 2008-02-18

Family

ID=24557059

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020037002015A KR100804286B1 (ko) 2000-08-11 2001-05-09 다중-클럭 시스템에서 스킵 패턴을 동기화하고 클럭포워딩 인터페이스를 초기화하는 시스템 및 방법

Country Status (8)

Country Link
US (1) US6748039B1 (ko)
EP (1) EP1309908A1 (ko)
JP (1) JP2004506974A (ko)
KR (1) KR100804286B1 (ko)
CN (1) CN1228697C (ko)
AU (1) AU2001263015A1 (ko)
TW (1) TW587206B (ko)
WO (1) WO2002014992A1 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7161999B2 (en) * 2002-01-02 2007-01-09 Intel Corporation Synchronizing data or signal transfer across clocked logic domains
JP4176720B2 (ja) * 2002-09-30 2008-11-05 富士通株式会社 同期制御装置および同期制御方法
US7047432B1 (en) * 2003-01-17 2006-05-16 Cisco Technology, Inc. Method and system for synchronizing output from differently timed circuits
WO2004066092A2 (en) * 2003-01-23 2004-08-05 University Of Rochester Multiple clock domain microprocessor
KR100522433B1 (ko) * 2003-04-29 2005-10-20 주식회사 하이닉스반도체 도메인 크로싱 회로
DE10342255A1 (de) 2003-09-11 2005-04-07 Bts Media Solutions Gmbh Schaltung zur Ansteuerung eines Speichers
US7319729B2 (en) * 2003-09-29 2008-01-15 International Business Machines Corporation Asynchronous interface methods and apparatus
US7657689B1 (en) * 2003-10-07 2010-02-02 Altera Corporation Methods and apparatus for handling reset events in a bus bridge
US7231539B1 (en) * 2004-06-03 2007-06-12 Integrated Device Technology, Inc. Reset circuit for resetting two clock domains
EP1615106A1 (en) * 2004-07-05 2006-01-11 STMicroelectronics Limited Reset in a system-on-chip circuit
US20060146967A1 (en) * 2004-12-31 2006-07-06 Adarsh Panikkar Keep-out asynchronous clock alignment scheme
CN101297255B (zh) * 2005-10-26 2011-11-02 英特尔公司 可检测变化的集群体系结构
US7664213B2 (en) * 2005-11-22 2010-02-16 Sun Microsystems, Inc. Clock alignment detection from single reference
US8132041B2 (en) * 2007-12-20 2012-03-06 Qualcomm Incorporated Method and apparatus for generating or utilizing one or more cycle-swallowed clock signals
WO2009105095A1 (en) * 2008-02-20 2009-08-27 Hewlett-Packard Development Company, L.P. Redriver with two reference clocks and method of operation thereof
US7733130B2 (en) * 2008-03-06 2010-06-08 Oracle America, Inc. Skew tolerant communication between ratioed synchronous clocks
WO2010132943A1 (en) 2009-05-20 2010-11-25 Chronologic Pty. Ltd. Jitter reduction method and apparatus for distributed synchronised clock architecture
GB2482303A (en) * 2010-07-28 2012-02-01 Gnodal Ltd Modifying read patterns for a FIFO between clock domains
KR101647002B1 (ko) * 2011-12-22 2016-08-10 인텔 코포레이션 결정론적 클록 크로싱
DE112011106026B4 (de) 2011-12-22 2023-01-05 Intel Corporation Vorrichtung, Tablet-Computer und System
US8972761B2 (en) * 2012-02-01 2015-03-03 Lsi Corporation Systems and methods for idle clock insertion based power control
US8786332B1 (en) 2013-01-17 2014-07-22 Apple Inc. Reset extender for divided clock domains
CN104076263B (zh) * 2013-03-28 2017-03-15 致茂电子(苏州)有限公司 半导体自动测试设备的时间量测模块及方法
US9876709B1 (en) * 2014-08-28 2018-01-23 Xilinx, Inc. Alignment detection in a multi-lane network interface
US9727306B2 (en) 2014-10-07 2017-08-08 Stmicroelectronics S.R.L. Bi-synchronous electronic device with burst indicator and related methods
US10484165B2 (en) * 2017-12-19 2019-11-19 Stmicroelectronics International N.V. Latency buffer circuit with adaptable time shift
CN113472347B (zh) * 2021-07-01 2024-04-05 北京兆芯电子科技有限公司 电子装置以及采样方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4007441A (en) * 1975-05-29 1977-02-08 Burroughs Corporation Method of data communications in a heterogenous environment
DE2853523C2 (de) 1978-12-12 1981-10-01 Ibm Deutschland Gmbh, 7000 Stuttgart Dezentrale Erzeugung von Taktsteuersignalen
JPS63110811A (ja) 1986-10-28 1988-05-16 Mitsubishi Electric Corp クロツクジエネレ−タ
JPH01251738A (ja) 1988-03-31 1989-10-06 Toshiba Corp スタンダードセル
JPH0642196B2 (ja) 1988-06-09 1994-06-01 株式会社東芝 倍密度走査用ラインメモリ
US5224129A (en) 1990-10-31 1993-06-29 Tektronix, Inc. Method of synchronizing signals of a pulse generator
US5448715A (en) 1992-07-29 1995-09-05 Hewlett-Packard Company Dual clock domain interface between CPU and memory bus
US5689689A (en) 1992-12-17 1997-11-18 Tandem Computers Incorporated Clock circuits for synchronized processor systems having clock generator circuit with a voltage control oscillator producing a clock signal synchronous with a master clock signal
US5434996A (en) * 1993-12-28 1995-07-18 Intel Corporation Synchronous/asynchronous clock net with autosense
US5768529A (en) 1995-05-05 1998-06-16 Silicon Graphics, Inc. System and method for the synchronous transmission of data in a communication network utilizing a source clock signal to latch serial data into first registers and a handshake signal to latch parallel data into second registers
US5909563A (en) * 1996-09-25 1999-06-01 Philips Electronics North America Corporation Computer system including an interface for transferring data between two clock domains
JP3019814B2 (ja) * 1997-09-18 2000-03-13 日本電気株式会社 クロックリカバリ回路
US6049887A (en) * 1997-12-04 2000-04-11 Intel Corporation Method and apparatus for propagating a signal between synchronous clock domains operating at a non-integer frequency ratio
US5961649A (en) 1997-12-04 1999-10-05 Intel Corporation Method and apparatus for propagating a signal between synchronous clock domains operating at a non-integer frequency ratio
KR100255664B1 (ko) 1997-12-29 2000-05-01 윤종용 반도체 집적회로의 클락 포워딩 회로 및 클락포워딩 방법
JP4130006B2 (ja) * 1998-04-28 2008-08-06 富士通株式会社 半導体装置
US6081904A (en) 1998-04-30 2000-06-27 International Business Machines Corporation Method for insuring data integrity during transfers
DE19820572A1 (de) * 1998-05-08 1999-11-11 Alcatel Sa Desynchronisiereinrichtung für ein synchrones digitales Nachrichtenübertragungssystem
US6681272B1 (en) * 1999-10-20 2004-01-20 Applied Micro Circuits Corporation Elastic store circuit with static phase offset
US6424688B1 (en) * 1999-10-27 2002-07-23 Advanced Micro Devices, Inc. Method to transfer data in a system with multiple clock domains using clock skipping techniques
US6581164B1 (en) * 2000-01-03 2003-06-17 Conexant Systems, Inc. System for adjusting clock frequency based upon amount of unread data stored in sequential memory when reading a new line of data within a field of data

Also Published As

Publication number Publication date
TW587206B (en) 2004-05-11
US6748039B1 (en) 2004-06-08
JP2004506974A (ja) 2004-03-04
EP1309908A1 (en) 2003-05-14
WO2002014992A1 (en) 2002-02-21
CN1228697C (zh) 2005-11-23
AU2001263015A1 (en) 2002-02-25
CN1466711A (zh) 2004-01-07
KR100804286B1 (ko) 2008-02-18

Similar Documents

Publication Publication Date Title
KR100804286B1 (ko) 다중-클럭 시스템에서 스킵 패턴을 동기화하고 클럭포워딩 인터페이스를 초기화하는 시스템 및 방법
US6424688B1 (en) Method to transfer data in a system with multiple clock domains using clock skipping techniques
US5708801A (en) Apparatus and method for operating chips synchronously at speeds exceeding the bus speed
CA2366898C (en) Elastic interface apparatus and method therefor
US5867541A (en) Method and system for synchronizing data having skew
US6654897B1 (en) Dynamic wave-pipelined interface apparatus and methods therefor
US4881165A (en) Method and apparatus for high speed data transmission between two systems operating under the same clock with unknown and non constant skew in the clock between the two systems
US5535377A (en) Method and apparatus for low latency synchronization of signals having different clock speeds
US20060020843A1 (en) Technique to create link determinism
US7496779B2 (en) Dynamically synchronizing a processor clock with the leading edge of a bus clock
US6892314B2 (en) Method and system of automatic delay detection and receiver adjustment for synchronous bus interface
US20040193931A1 (en) System and method for transferring data from a first clock domain to a second clock domain
US5008904A (en) Synchronizer using clock phase extrapolation
US6760392B1 (en) Method and apparatus to provide fixed latency early response in a system with multiple clock domains with fixable clock ratios
EP2775655B1 (en) Method of distributing a clock signal, a clock distributing system and an electronic system comprising a clock distributing system
US5799175A (en) Synchronization system and method for plesiochronous signaling
JP2007082147A (ja) データ送受信回路のタイミング調整回路、lsi及びデータ送受信システム
US6775339B1 (en) Circuit design for high-speed digital communication
JP6221857B2 (ja) 位相調整回路、データ伝送装置、データ伝送システム及び位相調整方法
US6442223B1 (en) Method and system for data transfer
US6430697B1 (en) Method and apparatus for reducing data return latency of a source synchronous data bus by detecting a late strobe and enabling a bypass path
JPH08329000A (ja) 情報処理装置
KR102516881B1 (ko) 클럭 위상 정렬을 위한 방법 및 장치
WO1993023937A1 (en) Data transmission delaying circuit using time-multiplexed latch enable signals
JPH11345053A (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
FPAY Annual fee payment

Payment date: 20120203

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee