KR20010102501A - 엘러스틱 인터페이스 장치 및 그 방법 - Google Patents

엘러스틱 인터페이스 장치 및 그 방법 Download PDF

Info

Publication number
KR20010102501A
KR20010102501A KR1020017011288A KR20017011288A KR20010102501A KR 20010102501 A KR20010102501 A KR 20010102501A KR 1020017011288 A KR1020017011288 A KR 1020017011288A KR 20017011288 A KR20017011288 A KR 20017011288A KR 20010102501 A KR20010102501 A KR 20010102501A
Authority
KR
South Korea
Prior art keywords
data
clock
latch
input
output
Prior art date
Application number
KR1020017011288A
Other languages
English (en)
Other versions
KR100457868B1 (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 KR20010102501A publication Critical patent/KR20010102501A/ko
Application granted granted Critical
Publication of KR100457868B1 publication Critical patent/KR100457868B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/02Speed or phase control by the received code signals, the signals containing no special synchronisation information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/10Indexing scheme relating to groups G06F5/10 - G06F5/14
    • G06F2205/104Delay lines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0008Synchronisation information channels, e.g. clock distribution lines

Abstract

엘러스틱 인터페이스 장치 및 방법이 실행된다. 상기 엘러스틱 인터페이스에는 데이터 값의 열을 기억하는 복수의 기억 장치가 있는데, 그 각각의 기억 장치는 각 데이터 값 세트의 구성 요소를 순차적으로 기억한다. 각 데이터 값은 로컬 클록의 미리 정해진 주기 동안 기억된다. 선택 회로는 상기 기억 장치에 결합되어 그 대응하는 기억 장치에 기억하는 데이터 열로부터 각 데이터 값을 선택한다. 데이터는 상기 로컬 클록의 타겟 싸이클 상에서 로컬 클록과 동기하여 각 기억 장치로부터 순차적으로 출력된다.

Description

엘러스틱 인터페이스 장치 및 그 방법{ELASTIC INTERFACE APPARATUS AND METHOD THEREFOR}
현대의 데이터 처리 시스템은 그 시스템 안에 복수의 칩으로 내장된 동적 또는 클록 회로 사이에 데이터 전송을 필요로 한다. 예컨대, 멀티 CPU 시스템의 중앙 처리 장치(CPUs) 사이 또는 메모리 제어기와 오프 칩 캐시를 포함하는 메모리와 CPU 사이에 데이터를 전송할 필요가 있다. 데이터 전송은 동시에 일어나서, 소정의 시스템 주기에서 상기 칩의 회로로 데이터가 전달될 것이다. CPU 속도가 증가함으로써, 칩 사이의 인터페이스 속도(버스 싸이클 속도)는 상기 인터페이스 양단의 대기 시간이 시스템 클록 주기를 초과하기 때문에 제한 요소로 된다. 시스템 동기화를 유지하기 위해서, 상기 시스템 설계자는 데이터가 도달하는 싸이클이 명확한 순서로 버스의 속도를 낮추어야 한다.
이것은 데이터 처리 시스템에서 2개의 집적 회로 칩, 즉 칩(102) 및 칩(104) 사이에 종래의 인터페이스를 블록도 형태로 도시한 도 1a를 참조하면 더욱 이해될것이다. 각각의 칩(102 및 104)은 위상 동기 루프, PLL(108)에 결합되는 기준 클록 (106)을 수신한다. PLL(108)은 기준 클록(106)으로 동기되는 칩(102)의 클록(110) 및 칩 (104)의 클록(111)을 발생한다. 기준 클록(106)은 "타임 제로" 기준을 제공하고, PLL(108)의 증가에 따라 로컬 클록(110 및 111)의 복수의 주기동안 영향을 미칠 수 있다. 상기 버스 클록(113)은 분배기(112)에서 소정의 정수(N) 만큼 로컬 클록 (110)을 분배함으로써 기준 클록(106)으로부터 유도된다. 칩(102)으로부터 칩(104)로 전송되는 데이터는 그 분배된 로컬 클록(111)의 소정의 에지 상에서 래치되어 구동기(18)를 통해 데이터 라인(116) 상에서 구동된다. 데이터는 수신기(RX)(120)에서 수신되어 칩(204)에서 그 분배된 로컬 클록(110)의 소정의 에지에서 목적 래치에 포획된다. 칩(102 및 104)의 물리적인 분할에 의해서, 상기 데이터는 장차 지연되는 목적 래치(122)의 입력에 나타난다. [상기 대기 시간에 RX(120)의 기여는 통상적으로 데이터 전송에 의한 지연에 비하여 일반적으로 작다]. 그 시간 지연은 대기 시간으로 언급되고, 도 1b와 결합하여 더욱 토론될 것이다.
유사하게, 칩(104)은 데이터 라인(126)을 통하여 데이터를 칩(102)으로 전송한다. 칩(104)으로부터 전송되는 데이터는 로컬 클록(111)을 N 만큼 분할하는 분배기(130)로부터 출력 신호의 소정의 에지 상에 래치(128)에서 래치된다. 상기 데이터는 구동기(132)를 통하여 데이터 라인(126) 상에서 구동되고, 수신기(136)를 통하여 목적 래치(134)에 포획된다. 칩(102)에 데이터 입력은 N 만큼 로컬 클록(110)을 분할하는 분배기(130) 출력의 소정의 에지 상에 데이터 래치(134)로 포획된다.
도 1b에는 종래의 기술에 따라 도 1a의 인터페이스(100)용 타임도가 예시적으로 도시된다. 칩(102)으로부터 칩(104)으로 전송된 데이터는 버스 클록(113)의 상승 에지(t1)에서 래치(114)에 래치된다. 버스 클록(113)은 칩(102) 안의 분배기 (112 및 130)에서 N 만큼 로컬 클록(110)을 분배함으로써 발생된다. 대기 시간(T1) 만큼 지연함에 따라, 데이터(117)는 목적 래치(122)로의 입력에 나타나고, 버스 클록(123)의 상승 에지(t2) 상에서 래치된다. 버스 클록(123)은 칩(104)의 분배기(112 및 130)에서 N 만큼 로컬 클록(111)을 분배함으로써 발생된다. 따라서, 도 1b에 따른 종래의 기술에 있어서, 데이터(125)는 칩(102)에서 개시한 다음의 1 버스 싸이클에서 칩(104)에 나타난다. 따라서, 도 1b에는 버스 클록(113)과 버스 클록(123) 사이에 제로 스큐가 있다.
도 1a의 인터페이스(100)에서, 상기 버스 클록 속도가 증가되면, 그 대기 시간은 1 버스 클록 싸이클을 초과할 수 있다. 다음, 도 1c에 도시된 예시적인 타이밍도에 기인할 것이다. 앞서, 데이터(115)는 버스 클록(113)의 에지(t1) 에서 래치된다. 데이터(117)는 버스 클록(113) 및 버스 클록(123)의 주기보다 긴 대기 시간 (T1) 후의 목적 래치(122)의 입력(124)에 나타난다. 데이터(117)는 칩(104)에서 버스 클록(123)의 에지(t3)상에 래치되어 칩(104) 상에 데이터(125)를 제공한다. 칩 (102 및 104) 사이의 인터페이스(100)가 데이터 처리 시스템 내의 칩(102)과 복수의 다른 칩 사이의 복수의 인터페이스 중에 대기 시간이 가장 긴 인터페이스를 나타내는 경우, 도 1c에 도시되는 2개의 싸이클 대기 시간은 칩(102 및 104) 등의 칩사이에 데이터 전송 및 포획용 "타겟" 싸이클을 나타낸다. 그 타겟 싸이클은 상기 칩에 의해 데이터가 예상되는 소정의 싸이클이다. 대기 시간이 짧은 인터페이스는 확실한 동기 동작을 위해 종래 기술에 따라 패딩될 필요가 있다.그 패딩은 인터페이스(100)의 고속 경로가 1 버스 클록 싸이클보다 대기 시간이 길고, 2 버스 클록 싸이클보다 짧기 때문에, 데이터 동기화는 유지될 수 있다.
이것은 복수의 칩(101), 즉 칩(102, 103 및 104)을 도시하는 도 1d를 참조함으로써 더욱 이해될 것이다. 칩(102 및 104)은 대기 시간(Ts)이 긴 "저속" 경로 (152)에 결합되고, 칩(103)은 대시 시간 주기(TF)가 짧은 "고속" 경로(154)를 경유하여 칩(102)에 결합된다. 복수의 칩(102-105)을 결합하는 "정상" 경로는 칩(102)과 칩(105) 사이의 경로(156) 상의 대기 시간과 같이 대기 시간(TM)을 갖는다.
도 1e의 타이밍도는 더욱 상세히 제공한다. 도 1e는 수신 칩에서 데이터를 포획하는 타겟 싸이클이 2개의 버스 싸이클인 도 1c와 비슷한 타이밍도를 도시한다. 도 1e에 있어서, 그 정상적인 대기 시간(TF)은 1 버스 싸이클보다 큰 것으로 도시되고, 저속 경로 대기 시간(TS)은 2 버스 싸이클보다 약간 느린 것이 도시된다. 이러한 경우에, 도 1d에서 각각의 복수의 칩(101)은 데이터 개시 후에 타겟 싸이클, 즉 2개의 버스 싸이클 상에서 데이터를 포획한다.
그러나, 고속 경로가 짧은 경우에, 고속 경로 대기 시간 데이터 동기화에 의해 손실된다. 이러한 경우에, 데이터는 칩(103)에서 데이터(117)의 파선부로 도시된 바와 같이 칩(103) 버스 클록의 전이 시간(t2) 이전에 칩(103)에 도달하고, 1 버스 싸이클 후에 칩(103)으로 래치된다. 이것은 칩(103)에서 데이터(125)의 파선부에 의해 도시된다. 동기를 회복하기 위해서, 칩(102)과 칩(103) 사이의 고속 경로, 즉 경로(154)는 TF로 고속 경로 대기 시간을 증가시키기 위하여 패딩을 요구할 것이다. 결과적으로, 그러한 종래의 인터페이스의 타이밍은 특정 동작 범위, 즉 특정 인터페이스 길이로 턴되고, 그 설계에 시간을 들여 분석하는 기술에만 유효하다.
유사하게, 도 1d에서 칩의 클록 속도를 증가시키는 것은 동기화의 손실에 기인할 것이다. 이것은 명쾌한 예에 의하여 이해될 수 있다. 먼저 취해진 로컬 클록 싸이클 시간은 1 ㎱ 주기를 갖는다. 상기 버스 클록은 일정한 복수의 주기를 가짐으로써, 상기 로컬 클록은 2가 될 것이다. 상기 인터페이스의 정상 대기 시간(TM)이 시간 변화의 +/- .99 ㎱를 갖는 3 ㎱가 되게 한다. 즉 최상의 경우 또는 고속 경로(TF)는 2 ㎱이고, 최악의 경우 또는 저속 경로(TS)는 4 ㎱이다, 그 데이터는 2 ㎱ 후에 도달할 것이고, 4 ㎱ 전에 도달할 것이다. 나아가서, 상기 인터페이스는 모든 조건 아래서 동작하고, 즉 데이터는 상기 제1 버스 싸이클 후에 및 제2 버스 싸이클 전에 도달하는 것이 확실하다. 그러나, 상기 칩의 속도가 .9 ㎱ 싸이클 시간으로 증가되는 경우, 상기 버스 싸이클 시간은 1.8 ㎱로 변경된다. 상기 데이터가 최악의 조건하에서 인터페이스 양단으로 전파하는데 충분한 시간을 갖기 위해서, 상기 데이터는 2.5 버스 싸이클 또는 4.5 ㎱ 전에 포획되지 않아야 하는데, 그 이유는 2 버스 싸이클이 저속 경로 시간(TS또는 4 ㎱) 이하이기 때문이다. 다음,1.8 ㎱ 버스 싸이클 동작을 위해서, 도달 가능한 가장 고속의 데이터는 1.5 * 1.8 = 2.7 ㎱(초기의 1 버스 싸이클)이며, 모든 조건에 대하여 동일한 싸이클 상에 도달할 수 있다. 그러나, 가장 초기의 데이터는 3 ㎱-.99 ㎱ = 2.01 ㎱의 TF로 고속 경로를 통하여 상기 대기 시간에 도달 할 수 있다. 따라서, 1.8 ㎱의 버스 싸이클 시간에 동작하는 것은 종래의 동기 설계에 제공될 수 없다. 동기적으로 동작하기 위해서, 상기 버스 대 프로세서 속도는 적어도 3 : 1로 느려지고, 로컬 클록 속도의 증가에 영향을 미치는 2.7 ㎱ 싸이클 시간(2.7 ㎱ * 1.5 싸이클 = 4.05 ㎱ 및 2. 7 ㎱ * .5 싸이클 = 1.35 ㎱)에서 동작한다.
따라서, 클록 속도가 증가하는 데이터 처리 시스템에서 칩 사이의 데이터 전송을 수용하는 장치 및 방법에 대한 기술이 필요하게 되었다. 특히, 경로 대기 시간이 한 개 이상의 버스 싸이클 상에서 변하고, 특정 하드웨어 패딩을 설계할 필요성이 없는 데이터 처리 시스템에서 칩사이에 데이터 동기화를 확실하게 하는 방법 및 장치가 필요하게 되었다.
본 발명은 일반적인 데이터 처리 시스템에 관한 것으로써, 특히 데이터 처리 시스템에서 동적 집적 회로 칩 또는 클록 집적 회로 칩 사이의 인터페이스에 관한 것이다.
도 1a는 종래의 기술에 다른 칩 인터페이스도.
도 1b는 종래의 기술에 따른 도 1a의 칩 인터페이스의 실제에 대한 개략 타이밍도.
도 1c는 종래의 기술에 따른 도 1a의 칩 인터페이스의 다른 실시예에 대한 타이밍도.
도 1d는 데이터 처리 시스템에서 복수의 상호 접속 칩을 도시하는 도.
도 1e는 도 d의 복수의 상호 접속 칩에 대한 실체의 개략 타이밍도.
도 2는 본 발명을 실현하는 대표적인 하드웨어 환경의 블록도.
도 3은 본 발명의 실시예에 따른 칩 인터페이스의 블록도.
도 4a는 본 발명의 실시예에 따른 엘러스틱 인터페이스의 블록도.
도 4b는 도 3a의 본 발명의 실시예에 대한 개략 타이밍도.
도 5a 및 5b는 본 발명에 따른 칩 인터페이스의 대체 실시예도.
도 6a는 본 발명에 따른 엘러스틱 인터페이스의 다른 대체 실시예도.
도 6b는 도 5a의 엘러스틱 인터페이스의 개략 타이밍도.
도 7a는 본 발명에 따른 엘러스틱 실체의 다른 대안 실시예도.
도 7b는 도 7a의 실시예에 대한 개략 타이밍도.
도 8a 및 8b는 본 발명에 따른 엘러스틱 인터페이스의 데체 실시예의 블록도.
도 8c는 도 8a 및 8b의 실시예에 대한 개략 타이밍도.
본 발명의 목적은 상기 결점을 극복하는 기술을 제공하는 것이다.
본 발명에는,
데이터 값의 제1 세트를 기억할 수 있는 제1 기억 소자와,
데이터 값의 제2 세트를 기억할 수 있는 제2 기억 소자와,
상기 제1 및 제2 기억 소자에 결합되고 적어도 한 개의 제어 신호에 응답하여 상기 제1 기억 소자로부터 제1 데이터 값 및 상기 제2 기억 소자로부터 제2 데이터 값을 순차적으로 출력하는 회로를 포함하고,
상기 제1 및 제2 기억 소자는 제1 클록의 미리 정해진 횟수의 싸이클 동안 데이터 값을 유지하는 인터페이스 장치를 제공한다.
또한, 본 발명은,
제1 기억 소자 안에 제1 세트의 데이터 값을 기억하는 단계와,
제2 세트의 기억 소자 안에 제2 세트의 데이터 값을 기억하는 단계와,
적어도 한 개의 제어 신호에 응답하여 상기 제1 기억 소자로부터 제1 데이터 값 및 제2 기억 소자로부터 제2 데이터 값을 순차적으로 출력하는 단계를 포함하고,
상기 제1 세트의 각 데이터 값은 제1 클록의 미리 정해진 싸이클의 횟수동안 기억되고,
상기 제2 세트의 각 데이터 값은 제1 클록의 미리 정해진 싸이클의 횟수동안 기억되는 집적회로 인터페이스 방법을 제공한다.
본 발명의 특징 및 기술적인 장점들은 전술한 바와 같이 상세한 설명에서 명백히 이해할 수 있을 것이다. 본 발명의 그 이외의 특징 및 장점들은 이후에 설명될 것이다.
본 발명은 데이터 처리 시스템에서 복수의 데이터 처리 칩 사이에 데이터 동기화를 실행하는 엘러스틱 인터페이스 메커니즘을 제공한다. 데이터 동기화는 물리적인 배선이 복잡하고 하드웨어 설계가 복잡하게 패당할 필요없이 수행된다. 상기 인터페이스의 "탄력성"은 상기 시스템에서 데이터 처리 칩을 결합하는 경로 사이에 물리적인 차이를 설명한다. 상기 수신 데이터를 복수의 기억 소자에 포획하고, 상기 래치된 데이터를 선택적으로 스티어링함으로써, 데이터 동기화는 한 개 이상의 버스 클록 싸이클에 의해 변하는 대기 시간을 갖는 데이터 처리 시스템에 제공된다. 동기화는 파워업 또는 다음 리셋 상에 초기화 정렬 절차를 실행함으로써 동적으로 설정될 수 있다. 이러한 방법으로, 데이터의 동기화는 보드 설계 및 고속 경로 패딩의 시간 분석이 필요 없이 본 발명의 원리에 따라 수행될 수 있다.
다음과 같은 설명에 있어서, 복수의 특정 세부 사항들은 버스 클록 주파수 및 동기화 싸이클, 클록 에지 등으로 설정되어 본 발명의 철저한 이해를 돕는다. 그러나, 본 발명의 당업자라면 그러한 특정 세부 사항 없이도 실시될 수 있다는 것을 알 수 있을 것이다. 다른 예에서, 널리 공지된 회로들은 불필요한 세부 사항으로 본 발명이 불명료해지지 않도록 블록도 형태로 도시된다.
지금부터, 도시한 구성 요소가 설계에 불필요하고, 동일하거나 비슷한 구성 요소가 일부 견지에서 동일한 참조 범호로 지시되는 도 2 내지 9를 참조해 보자.
본 발명을 실시하는 대표적인 하드웨어 환경은 도 2에 도시되고, 이 도면에서는 종래의 마이크로프로세서 및 시스템 버스(212)를 경유하여 상호 접속되는 복수의 다른 장치 등의 중앙 처리 장치(CPU)를 갖는 본 발명의 데이터 처리 시스템 (213)에 대한 통상적인 하드웨어 배치를 도시한다. 데이터 처리 시스템(213)은 랜덤 엑세스 메모리(RAM)(214), 판독 전용 메모리(ROM)(216) 및 디스크 장치(220)와테이프 드라이브(240) 등의 주변 장치를 버스(212)에 접속하는 입력/출력(I/O) 어뎁터(218)와, 키보드(224), 마우스(226) 및/또는 터치 스크린 장치(도시 안함) 등의 다른 사용자 인터페이스 장치를 접속하는 사용자 인터페이스 어뎁터(222)와, 워크스테이션(213)을 데이터 처리 네트워크에 접속하는 통신 어뎁터(234)와, 버스 (212)를 디스플레이 장치(238)에 접속하는 디스플레이 어뎁터(236)를 포함한다. CPU(210)는 마이크로프로세서 내에서 일반적으로 발견되는 회로, 예컨대 실행 장치, 버스 인터페이스 장치, 산술 논리 장치 등을 포함하는 본원에 도시되지 않은 다른 회로를 포함한다. 본 발명의 인터페이스는 CPU(210)에 포함될 수 있다. 부가적으로, 본 발명은 RAM(214) 등의 기억 장치에 포함될 수 있다(본원에 도시되지 않은 메모리 제어 회로를 포함할 수 있다). CPU(210)는 단일 집적 회로 상에 잔류할 수 있다.
지금부터, 본 발명에 따른 인터페이스(300)가 도시되는 도 3을 참조해 보자. 인터페이스(300)는 각 인터페이스(300)를 경유하여 서로 데이터를 전달하는 칩(302 및 304)에 포함된다. (본 발명의 실시예가 칩 대 칩 인터페이스의 목차에 기술되더라도, 본 발명의 원리는 클록 래치쌍 사이의 인터페이스로 구현될 것이다). 데이터는 버스 클록, 버스 클록(306 및 308)에 의해 결정되는 속도에서 칩(302 및 304) 사이에 전달된다. 버스 클록(306 및 308)은 정상적으로 동일한 주파수이고, 각 칩(302 및 304)에서 PLL, 즉 PLL(312)에 제공되는 기준 클록(310)으로부터 유도된다. 본 발명의 실시예에 있어서, 기준 클록(310)은 시스템 클록이 될 수 있다. 각 PLL(312)은 기준 클록(310)으로 위상에 동기되는 로컬 클록, 칩(302)에서 로컬 클록(314) 및 칩(304)에서 로컬 클록(316)을 출력하고, 이전에 선택된 정수(M), 즉 기준 클록(310)의 복수의 주기가 될 수 있다. 로컬 클록(314)은 구동기(318)에 의해 버퍼링되어 칩(302)으로부터 버스 클록(306)을 제공한다. 유사하게, 로컬 클록(316)은 구동기(320)에 의해 버퍼링되어 칩(304)으로부터 제공된 버스 클록 (308)을 제공한다.
상기 버스 클록은 상기 칩으로부터 전달되는 데이터를 따라 제공된다. 칩(302)으로부터 제공된 데이터(322)는 출력 래치(324)로 래치되는 동시에 구동기(326)에 의해 구동되고 버퍼링된다. 상기 데이터는 로컬 클록(314)의 사전 선택된 에지 상에서 래치된다. 상기 데이터는 멀티플렉서(MUX)(328)를 경유하여 수신된다. MUX(328)는 정렬 절차에 따라 미리 정해진 동기화 패턴을 수신한다. 이러한 것은 아래에 더욱 상세히 설명될 것이다.
데이터(322)는 수신기(RX)(330)에 의해 버퍼링되어 엘러스틱 인터페이스 장치(332)에 제공된다. 데이터(322)를 따라 전송되는 버스 클록(306)은 RX(334)에 의해 버퍼링되고, 그 출력은 I/O 클록(336)을 형성하며, 또한 엘러스틱 인터페이스 (332)에 제공된다. 버스 클록(308)에 따라 칩(302)으로 전송되는 칩(304)으로부터 데이터는 칩(302)에서 인터페이스(300)에 의해 유사하게 수신되고, 다음과 같은 엘러스틱 장치(332)의 설명이 칩(304)으로부터 칩(302)에 의한 데이터 수신시에 동일하게 잘 적용한다는 것을 이해할 것이다.
타겟 싸이클 장치(339)는 칩(304)의 로컬 클록(316) 등의 수신 칩에서 로컬 클록에 의해 데이터를 래치하는 타겟 싸이클을 설정한다. 상기 타겟 싸이클은 2개의 탄력성을 갖는 인터페이스를 도시하는 도 4a/b와 결합하여 상세히 토론했다. 탄력성(E)이 있는 인터페이스에 대하여, 타겟 싸이클 장치(339)는 E 회로 만큼 분배한 것을 포함한다. 부가적으로, 타겟 싸이클 장치(339)는 타겟 프로그램(341)을 경유하여 로드되는 미리 정해진 타겟 싸이클 값을 보유하는 프로그래밍 레지스터를 포함할 수 있다. 칩(302)에서 타겟 싸이클 장치(339)로 프로그램되는 타겟 싸이클은 칩(304)에서 타겟 싸이클 장치(339)로 프로그램되는 타겟 싸이클과 달라질 수 있다. 타겟 싸이클 장치(339)는 복수의 신호를 포함하고, 인터페이스 장치(332) 및 해당하는 탄력성(E)의 실체에 의존하여 선택 제어(343)를 출력한다. 선택 제어 (343)는 인터페이스 장치(332)의 실체를 도시하는 도 4a-4b와 결합하여 더욱 설명될 것이다.
지금부터, 본 발명에 따른 엘러스틱 인터페이스 장치(332)의 실체를 도시하는 도 4a를 참조하자. 장치(332)는 RX(330)로부터 데이터를 수신하는 입력(404)을 갖는 MUX(402)를 포함한다. MUX(402)의 출력(406)은 래치(408)의 데이터(D) 입력에 결합된다. 래치(408)는 I/O 클록(336)에 의해 클록된다. 래치(408)는 클록(436)의 상승 에지 상에 D 입력에서 데이터를 래치하는 동시에 클록(336)의 다음 상승 에지까지 상기 데이터를 보유한다. 래치(408)의 출력(410)은 제2 입력, 즉 MUX(402)의 입력(412)에 역으로 결합된다. MUX(402)는 게이트(414)에 응답하여 출력(406) 상에 출력하는 입력(404)과 입력(412) 사이를 선택한다.
게이트(414)는 버스 클록(306)으로부터 유도되어 버스 클록(306)의 2배의 주기를 갖는다. 게이트(414)는 지연 동기 루프(DLL)를 이용하여 발생될 수 있다. 본발명에 이용될 수 있는 DLL의 실시예는 발명의 명칭이 "동적 웨이브 파이프라인 인터페이스 장치 및 그 방법"으로 공동 소유의 동시 계류중인 출원에 개시되어 있으며, 본원에 참조용으로 포함된다. 게이트(414)의 위상은 이후에 토론되는 초기화 정렬 절차 동안에 설정되고, 게이트(414)의 동작은 도 4b와 결합하여 더욱 설명될 것이다.
RX(330)로부터 제공된 데이터는 입력(418) 상의 제2 MUX, 즉 MUX(416)에 병렬로 제공된다. MUX(416)의 출력(420)은 제2 래치, 즉 래치(422)의 D 입력에 결합되고, 또한 I/O 클록(336)에 의해 클록되며, I/O 클록(336)의 상승 에지 상에 데이터를 래치하여 상기 클록의 차후의 상승 에지까지 데이터를 유지한다. 래치(422)의 출력은 제2 입력, 즉 MUX(416)의 입력(426)에 결합된다.
MUX(416)는 게이트(414), \ 게이트(428)에 응답하여 입력(418)과 입력(426) 사이를 선택한다. 따라서, MUXs(402 및 416) 중 하나가 RX(330)로부터 수신되는 데이터에 대하여 선택할 때, 다른 MUX는 그 해당하는 래치, 즉 래치(408 및 422) 중 하나에 유지되는 데이터를 선택한다. 이러한 방법으로, 래치(408 및 422) 중 하나에 이전에 기억되는 데이터 비트는 I/O 클록(336)의 부가적인 싸이클에 유지된다.
나아가서, 2개의 데이터열은 생성되는데, 그 각각의 데이터열은 I/O 클록 (336)의 2개의 주기 동안 변경된다. 게이트(414)와 \ 게이트(428) 사이의 위상 반전 때문에, 상기 2개의 데이터 열은 한 개의 데이터값, 즉 I/O 클록(336)의 한 싸이클의 일시적인 폭 만큼 서로 오프셋 된다.
이것은 도 4a의 엘러스틱 인터페이스 장치(332)에 따른 타이밍도를 도시하는도 4b를 참조하면 더욱 이해될 것이다. 이전에 기술된 바와 같이, 출력 래치(324)에 유지되는 데이터(325)는 칩(202)에서 로컬 클록(314)으로 동기가 시작된다. 상기 데이터, 즉 데이터(322)는 칩(204)의 RX(230)에서 수신되고, 도 1d와 결합하여 본원에 토론된 바와 같이 칩(202 및 204) 사이의 경로에 의해 나타내는 대기 시간에 의해 지연된다. I/O 클록(336)의 에지(t1) 상승시, 데이터(322)의 데이터 값 "a"은 MUX(402)의 출력(406)을 경유하여 래치(408)에 의해 포획된다. 게이트(414)가 명제 또는 개방되기 때문에, 입력(404)에서 RX(330)로부터 제공되는 데이터는 MUX (402)에 의한 출력을 위하여 선택된다. (게이트는 그 해당하는 MUX가 상기 인입 데이터열을 수신하는 입력을 선택할 때 개방 기간이 될 것이다. 이것인 도 4의 실체에서 "하이" 논리 상태와 관련되더라도, "로우" 논리 레벨에 해당되는 개방 게이트가 본 발명의 범위 및 정신 내에 있다는 것을 이해할 것이다.).
반대로, \게이트(428)는 부정된다. 응답시, MUX(416)는 래치(422)에 유지되는 이전의 데이터 값을 선택하고, MUX(416)를 통하여 래치(422)의 D 입력에 역으로 결합된다. 따라서, 래치(422)에 유지되는 데이터 값은 도 4a와 결합하여 기술된 바와 같이 2개의 래치(408 및 322)에 클록 신호를 제공하는 I/O 클록(336)의 부가적인 주기 동안에 보유된다.
I/O 클록(336)은 도 3에 도시된 바와 같이 버스 클록(306)으로부터 얻어진다. 시작시, 버스 클록(306)이 도 4b에 도시된 바와 같이 데이터 유효 윈도우에 집중된다고 가정한다. 그 집중한 버스 클록은 본원에 참조용으로 포함되고 발명의 명칭이 " 동적파 파이프라인 인터페이스 및 그 방법"인 공동 소유의 동시 계류 중인 출원에 개시된다. 버스 클록(306)은 데이터가 행하는 것과 같이 인터페이스 양단에 지연을 제공한다. 그 대기 시간은 T1과 비교될 수 있는 칩(304)에서 버스 클록이고, 이것은 데이터(322)에 상대적으로 집중되는 I/O 클록(336)에 반영된다.
게이트(414)는 게이트(414)의 에지들이 I/O 클록(336)의 하강 에지에 위상 간섭이 빌생된다. I/O 클록(336)의 에지(t2)에서, 게이트(414)는 에지(t3)로 하강한다. 응답시, MUX(402)는 MUX(402)의 입력(412)에 결합되어 출력(406)에서 출력하는 래치(408)의 출력(410)을 선택한다. 게이트(414)가 부정됨으로써, \게이트(428)는 명제되고, MUX(416)는 입력(418) 상에 RX(330)로부터 데이터 출력(420)을 선택한다. 이것은 래치(422)의 D 입력에 결합된다. RX(330)로부터 수신되는 데이터는 데이터(322)의 데이터 값 "b"에 해당한다.
I/O 클록(336)의 에지(t1)에서, 래치(408 및 422)는 그 각각의 D 입력에서 데이터를 래치한다. 래치(408)에서, 이것은 이전에 유지되는 데이터 값, 데이터 (322)의 값에 해당하여, 로컬 클록(416)의 부가적인 주기 동안 유지된다. 래치 (422)는 출력(424) 상에 MUX(416)를 경유하여 그 D 입력 상의 데이터 값(b)을 래치한다.
I/O 클록(336)의 다음 전이(t7)에서, 데이터 값 "c"는 포획된다. 에지(t7)에서, 게이트(414)가 영향을 미치기 때문에, 데이터(322)에서 데이터 값(c)은 MUX (402)의 출력에 나타난다. 데이터 값(b)은 게이트(414)의 보수인 \게이트가 부정되기 때문에 래치(422)에서 보유된다. 데이터열이 데이터(322) 상에 지속적으로 도달함으로써, 이러한 방법으로, 엘러스틱 장치(332)는 래치(408 및 422)의 출력(410 및 424)에서 2개의 데이터열을 지속적으로 발생한다. 상기 2개의 데이터열은 도 4b에 도시된 바와 같이 로컬 클록(416)의 2개의 부분에 유효한 데이터(422)상에 도달하는 입력 데이터열의 다른 부분을 포함한다.
상기 입력 데이터열의 구조는 로컬 클록(416)으로 동기한 2개의 데이터열 중 한 개로부터 제공된 값을 택일적으로 선택함으로서 회복된다. 로컬 클록 타겟 싸이클은 선택된다. 상기 로컬 클록 타겟 싸이클은 도 3 및 4의 로컬 클록(316)과 같은 로컬 클록에 의해 목적 래치에 데이터가 포획되는 싸이클이다. 상기 타겟 싸이클은 분석에 의해 결정된다. 상기 타겟 싸이클은 상기 인터페이스 양단의 최악의 경우의 대기 시간보다 늦은 시간이 되어야 한다. 예컨대, 도 4b에 도시된 실시예에 있어서, 상기 타겟 싸이클은 로컬 클록(316)의 3개의 주기, 에지(t8)에 해당하는 주기가 되도록 설정된다. 상기 타겟 싸이클은 도 1a에 기준 클록(106)과 결합하여 이전에 기술된 바와 같이 기준 클록(310)에 의해 결정된 제로 시간 기준으로부터 측정된다. 도 4a/b의 탄력성에 대한 2개의 실시예에 있어서, 상기 데이터는 상기 타겟 싸이클보다 일찍 2개의 로컬 싸이클에 도달될 수 있다. 그러한 실시예에 있어서, 도 3의 타겟 싸이클 장치(339)는 2개의 회로로 나뉜다.
상기 타겟 싸이클 설정으로, 데이터는 로컬 클록(316)에 응답하여 MUX(432)를 통해 목적 래치(430)에 포획용으로 선택된다. MUX(432)에는 한 쌍의 입력(434및 436)이 있다. 입력(434)은 래치(408)의 출력(410)에 결합되고, 입력(436)은 래치(422)의 출력(424)에 결합된다. MUX(422)는 선택 제어(343)에 응답하여 래치(408 및 422)의 출력에 의해 나타난 2개의 데이터열 중 한 개를 출력하기 위하여 선택한다. 선택 제어(343)가 도 4b의 실시예의 제1 논리 상태 "하이"일 때, MUX(432)는 입력(434)에서 데이터를 래치(430)의 D 입력에 제공하고, 선택 제어(343)가 제2의 미리 정해진 논리 상태, 즉 도 4b의 실시예에서 "로우" 일 때, MUX(432)의 입력에서 데이터는 래치(430)의 D 입력에 제공된다. 선택 제어(343)는 로컬 클록(316) 주기의 2배인 주기를 갖고, 선택 제어(343)가 제1 논리 상태를 갖도록 로컬 클록 (316)과 위상 동기하며, 상기 타겟 싸이클 중앙에 있다. 따라서, 도 4b에 있어서, 로컬 클록(316)의 에지(t8)에서, 출력(410)의 데이터 값은 MUX(432)를 통하여 래치 (430)의 D 입력에 결합되고, 로컬 클록(316)의 에지(t8)에 의해 래치된다. 로컬 클록(t9)의 다음 포지티브 에지에서, 상기 전송된 데이터열의 다음 부분은 목적 래치 (430)로 래치된다. 선택 제어(343)는 1/2 만큼 위상이 이동함으로서, 제2 논리 상태를 갖고, 그 결과, 래치(422)의 출력(424)은 MUX(432)를 경유하여 래치(432)의 D 입력에 결합된다. 에지(t9)에서, 래치(422)의 출력(424)의 데이터 값(b)은 래치 (432)로 래치되고, 데이터 값(b)은 데이터 출력(338) 상에 나타난다. 로컬 클록 (316)의 다음 싸이클에서, 엘러스틱 인터페이스(332)는 래치(408)의 출력(410)과 래치(422)의 출력(424) 사이를 택일적으로 선택함으로써 데이터열(225)을 복원한다.
엘러스틱 인터페이스(322) 양단에 데이터가 전달되기 전에, 게이트(414)(부수하는 보수, \ 게이트(428)는 개시되어야 한다. 상기 인터페이스 양단의 대기 시간이 한 개 이상의 로컬 클록 주기만큼 변할 수 있기 때문에, 게이트(414)는 적합한 위상으로 개시되어야 한다. 이전에 기술된 바와 같이, 상기 게이트(414)의 주기는 I/O 클록(336) 및 로컬 클록(316)의 두배이다. 게이트(414)는 I/O 클록(336)의 사전에 선택된 에지, 즉 도 4b의 실시예에서 포지티브 에지에 집중된다.
게이트(414)는 파워 업 또는 리셋으로 동기화 패턴을 전송함으로써 본 발명의 일 실시예에서 개시될 수 있다. 다시, 도 3을 참조하면, 상기 데이터 처리 시스템의 리셋 또는 파워 업에 응답하여, 초기화 정렬 절차(IAP) 모드 신호(340)가 보내짐으로써, MUX(328)는 미리 정해진 동기 패턴을 출력하기 위하여 선택한다. IAP 모드 신호(340)는 본 발명의 일 실시예에 있어서, ROM(216)에 포함된 BIOS 명령에 응답하여 CPU(210)에 의해 보내질 수 있다.
도 4a에 도시된 엘러스틱 인터페이스 장치(332)의 일 실시예에 있어서, 데이터는 전술한 바와 같이 동기화 문제없이 2 싸이클 윈도우에 도달할 수 있다. 도 4a의 일렉스틱 인터페이스 장치(332)는 2개의 탄력성을 갖는 것으로 언급된다. IAP에 있어서, 상기 동기화 패턴은 엘러스틱 장치의 탄력성보다 크거나 같은 주기(P)로 주기화 되는 것이 필요하다. 따라서, 도 4b의 엘러스틱 인터페이스 장치(332)에 대하여, 적합한 동기화 패턴은 "1"의 개시 비트로 "1"과 "0" 사이를 교번하는 복수의 비트가 될 수 있다. 2 이외의 탄력성을 갖는 엘러스틱 인터페이스의 실체는 이후에 기술될 것이고, 따라서, 그 동기화 패턴은 수정될 것이다. 예컨대, 탄력성 N을 갖는 엘러스틱 인터페이스에 대하여(아래의 도 8a,8b/c와 결합하여 토론), 적합한 패턴은 "0"의 N-1 비트 다음에 "1"의 개시 비트가 되어, 패턴을 반복할 것이다. 또한, 다른 비트 패턴이 이용될 수 있다. 예컨대, 전술한 패턴에 비트 패턴 보수는 다르게 이용될 수 있다.
게이트(414)의 위상을 설정할 때, 래치(408)의 출력(410)은 상기 동기 패턴이 전달되는 동안 샘플링될 수 있다. 게이트(414)는 사전에 선택된 위상으로 개시된다. 탄력성 2를 갖는 엘러스틱 인터페이스 장치(332)에 대하여 전술한 동기 패턴으로, "1"이 출력(410)에서 검출되면, 게이트(414) 및 부수하는 \게이트(428)는 적합하게 파싱(parse)된다. 다른 방법으로, 게이트(414) 및 부수하는 \게이트 (428)의 위상은 I/O 클록(336)의 주기의 1/2 만큼 이동되어야 한다. 전술한 바와 같이, 게이트(414)는 DLL을 이용하여 발생될 수 있고, DLL의 실시예는 발명의 명칭이 "동적파 파이프라인 인터페이스 장치 및 방법" 으로 출원 계류중이고 일반 양도된 전술한 출원에 개시되는데, 이 출원은 본원에 참조용으로 포함된다.
본 발명의 원리에 따라 엘러스틱 인터페이스(300) 등의 엘러스틱 인터페이스의 동작은 지금부터 도 5a 및 5b를 참조하면 더욱 이해될 수 있다. 도 5a 및 5b에 있어서, 칩(302)은 도 3에서 칩(304)과 데이터를 교환하는 이외에, 칩(306)과 데이터를 교환한다. 칩 (302)은 2개의 인터페이스(300)을 포함하는데, 하나의 인터페이스는 칩(304)에 포함되는 인터페이스(300)를 통하여 칩(302)과 칩(304)을 결합하고, 또 하나의 인터페이스는 본 발명의 실시예에 따라 인터페이스(300)를 포함하는 칩 (302)을 칩(306)에 결합한다. 칩(302 및 304)을 결합하는 경로(502)는 대기시간(TF)을 갖는 도 1d의 경로(154)와 비슷한 고속 경로이고, 칩(302)을 칩(306)에 결합하는 경로(504)는 대기 시간(TS)를 갖는 도 1d의 경로(152)와 같은 저속 경로가 될 것이다. 종래의 인터페이스에 있어서, 경로(502)와 경로(504) 사이의 대기 시간 차이가 버스 클록의 주기를 초과하는 경우, 경로(502)는 전술한 바와 같이 데이터의 동기화를 유지하기 위하여 패딩할 필요가 있을 것이다. 그러나, 엘러스틱 인터페이스 장치(332)를 포함하는 인터페이스(300)는 경로(502 및 504) 사이의 대기 시간의 차이를 수용한다. 칩(304 및 306)에서 각 엘러스틱 인터페이스의 타겟 싸이클을 전술한 것과 동일한 싸이클로 설정함으로써, 칩(302, 304 및 306) 사이의 데이터 동기가 유지된다.
본 발명의 다른 실시예는 실행될 수 있다. 2의 탄력성을 갖는 인터페이스 장치(332)의 다른 실시예는 도 6a에 도시된다. 도 6a에 도시된 엘러스틱 인터페이스 (232)의 실체는 도 4a에 도시되는 엘러스틱 인터페이스(232)의 실시예로서 래치 (408 및 422)를 구동하는 MUX(402 및 416)를 포함한다. 그러나, 도 6a의 인터페이스 장치(332)는 제2 포획 래치, 즉 도 4a에 도시되는 실시예의 래치(430)에 해당하는 래치(630) 이외에 로컬 클록(316)에 의해 클록되는 래치(628)를 포함한다. 부가적으로, 도 4a의 MUX(432)에 해당하는 출력 MUX(632)는 도 6a의 인터페이스 장치 (332)의 실체에 있어서 상기 포획 래치의 흐름을 따라 이동된다.
이것은 인터페이스 자체를 통과하는 대기 시간을 줄인다. 래치(628 및 630)의 D 입력은 래치(422 및 408)의 출력(424 및 410)에 결합된다. 래치(628 및 630)의 D 입력에서 데이터는 로컬 클록(316) 만큼 래치에 클록된다. 따라서, 데이터는 MUX(632) 앞의 로컬 클록(316)으로 포획된다. 데이터열(322)은 선택 제어(343)하에 MUX(632)를 경유하여 래치(628 및 630)의 출력(634 및 636) 중 한 출력을 선택함으로써 회복된다. 이것은 도 4a의 실시예에서 출력 MUX(432)의 동작과 비슷하지만, 선택 제어(343)는 도 4a의 선택 제어(343)에 비하여 1/2 주기 만큼 위상 이동된다. 도 6a의 인터페이스(322)의 실시예에 있어서, 상기 데이터는 로컬 클록(316)의 상승 에지에 래치된다. 그러나, 당업자라면 다른 제어 신호들이 위상이 적합하게 조정되는 경우에 하강 에지에서 상기 데이터를 래치할 수 있다는 것을 이해할 것이다. 예컨대, 로컬 클록(316)의 하강 에지에서 래치(628 및 630)가 래치하는 실시예에 있어서, 선택 제어(343)는 1/2 주기 만큼 그 위상을 이동시킬 것이다.
도 6a의 인터페이스 장치(332)의 동작은 타이밍도를 도시하는 도 6b를 참조함으로써 더욱 이해될 것이다. MUX(402 및 416)와, 래치(408 및 422) 뿐만 아니라 I/O 클록(336)과 로컬 클록(316)은 도 4a 및 4b의 인터페이스 장치(332)와 공통이기 때문에, 상기 구조와 관련된 도 6b에 도시되는 타이밍도의 일부분은 간소화하기 위하여 다시 토론되지 않을 것이다.
래치(628 및 630) 및 MUX(632)와 관련된 도 6b의 타이밍도의 일부분에 촛점을 맞추면, 데이터 값(a)은 로컬 클록(316)의 에지(t8') 상에서 래치(630)의 출력 (634)에 래치된다. 유사하게, 데이터 값(b)은 로컬 클록 (316)의 에지(t9') 상에 래치(628)의 출력 (636)에 래치된다. 데이터가 타겟 싸이클에서 데이터 출력(338) 상에 나타나기 위하여, 선택 제어(343)의 상승 에지는 로컬 클록9316)의 에지(t9')까지 지연되어, 타겟 싸이클과 일치시킨다. 따라서, 데이터 값(a)은 선택 제어(343)의 에지(t10)에서 MUX(632)로부터의 데이터 출력(338) 상에 나타난다. 나아가서, 선택 제어(343)는 로컬 클록(316)의 상승 전이 사이에 집중된 플랫탑(flattop)이 있는 로컬 클록(316)과 위상 동기한다. 유사하게, 데이터 값(b)은 선택 제어(343)의 하강 에지(t11)의 데이터 출력(338) 상에 나타나고, 데이터열(322)은 선택 제어 (343)의 다음 전에 지속적으로 회복된다.
부가적으로, 다른 미리 정해진 탄력성을 갖는 엘러스틱 인터페이스(232)의 실체는 본 발명에 따라 실행될 수 있다. 이것은 1/2 주기 탄력성을 포함한다. 1.5 주기의 탄력성을 갖는 본 발명의 실체는 도 7a에 도시된다. 데이터(322)는 래치 (702 및 704)의 D 입력에 결합된다. 래치(702 및 704)는 "우선 순위 유지" 또는 "플러쉬" 래치이다. 상기 래치는 "투명" 래치로 언급될 수 있다. 래치(702)의 클록 (C)이 제1 소정의 논리 상태 또는 레벨을 가질 때, 상기 D 입력 상에 데이터는 출력(706)을 통하여 플러쉬한다. 상기 제1 상태로부터 미리 정해진 제2 논리 상태로 클록의 전이 상에, 래치(702)는 상기 D 입력 상에 데이터를 래치하고, 출력(706) 상에 데이터는 상기 제2 상태로부터 제1 상태로 상기 클록의 다음 전이까지 유지된다. (도 7의 실시예에 있어서, 상기 제1 상태는 "로우" 논리 레벨에 해당하고, 상기 제2 상태는 "하이" 논리 레벨에 대응하게 함으로서, 상기 전이는 상승 에지를 이룬다. 그러나, 보상 논리 상태를 갖는 다른 실시예는 본 발명의 정신 및 범위 내에 있다). 래치(704)는 그 클록(C)이 제2 논리 레벨을 가질 때 출력(708)을 통하여 D 입력 상에 데이터를 플러쉬 한다. 상기 데이터는 상기 클록의 제2 논리 레벨로부터 제1 논리 레벨로 전이로 래치되고, 상기 제2 논리 레벨로부터 제1 논리 레벨로 클록 전이까지 유지되어, 도 7의 실시예에서, "로우"가 된다. 상기 속성을 통한 플러쉬에 의해 데이터가 래치를 클록할 때까지 대기하지 않고도 이용할 수 있음으로써, 인터페이스 장치(332`)의 "적은 대기 시간 적은 탄력성(low-latency-low-elasticity)"을 실행한다.
도 7a에 도시되는 엘러스틱 인터페이스(322)의 실시예에 있어서, 래치(702 및 704)는 I/O 클록(726)에 의해 클록된다. 도 7a의 엘러스틱 인터페이스(322)는 I/O 클록(726)의 각 전이 상에 래치(702 및 704) 중 한 개의 래치로 데이터가 래치되는 이중 데이터 율(double data rate)(DDR)이고, I/O 클록(726)의 주기는 로컬 클록, 즉 로컬 클록(314 및 316) 및 버스 클록(306)의 2배이다. 버스 클록(306)은 폭에서 2개의 로컬 클록 주기인 데이터 윈도우에 집중된다.
도 7a의 엘러스틱 인터페이스 장치(332)의 실체는 도 7b에 도시되는 해당하는 타이밍도를 언급함으로써 이해될 수 있다. 데이터 값(a)이 엘러스틱 인터페이스 장치(332)에 도달할 때, 데이터 값은 I/O 클록(716)이 플랫톱(752)에서 로우이기 때문에 래치(702)의 출력(706)을 통하여 플러쉬한다. 다르게 말해서, 데이터 값(a)은 I/O 클록(716)의 에지(t1) 전에 래치(702)의 출력(706)에 나타난다.
데이터부(a)는 로컬 클록(316)의 1/4 주기에 해당하는 I/O 클록(336)의 1/4주기만큼 전이(t1)가 앞선다. I/O 클록(336)은 버스 클록에서 유도되고, 이전에 기술된 바와 같이 칩 사이의 경로 대기 시간 만큼 개시시 버스 클록에 비하여 위상 이동된다. 부가적으로, I/O 클록(716)은 1/4 주기 위상 진행한다. 에지(t1)에서, 데이터 값(a)은 래치되어, 로컬 클록(316)의 1 주기 동안 유지된다.
유사하게, 데이터 값(b)은 플랫톱(754)에서 I/O 클록(716)이 하이이기 때문에 RX(230)로부터 엘러스틱 인터페이스 장치(332)에 도달할 때 래치(704)의 출력 (708)을 통하여 플러쉬한다. 데이터 값(b)은 I/O 클록(716)의 네가티브 에지(t2)에 의해 출력(708) 상에 유지된다. 따라서, 데이터 값은 도 7a의 엘러스틱 인터페이스 (332)의 탄력성이 있는 1.5 로컬 클록 주기 동안 래치(702 및 704)의 출력(706 및 708) 상에 나타난다.
데이터열(332)은 래치(710 및 712) 및 MUX(714)에 의해 출력(338)에서 재건된다. 상기 출력(706 및 708)에 나타나는 2개의 데이터열은 로컬 클록(316)에 의해 래치(710 및 712)로 래치된다. 데이터는 로컬 클록(316)의 미리 정해진 에지(도 7의 실시예에서 포지티브) 상에 래치되는데, 여기서, 상기 타겟 싸이클은 이전에 기술된 데이터 값(a)의 탄력성의 1.5 싸이클 내에 어디든 나타날 수 있다. 따라서, 도 7b의 타이밍도에 따른 데이터 값(a)은 로컬 클록(316)의 에지(t3)상에 래치 (710)로 래치되고, 선택 제어(343)에 응답하여 MUX(714)를 경유하여 데이터(338) 상에 스위칭된다. 데이터는 제1 소정 값을 갖는 선택 제어(343)에 응답하여 래치 (710)로부터 선택되고, 선택 제어(343)가 제2 소정 값을 가질 때 래치(712)로부터선택된다. 상기 제1 값은 "하이"이고, 도 7의 실시예에서 제2 값은 "로우"이다. 그러나, 본 발명의 정신 및 범위내에 다른 값이 있다는 것을 이해할 것이다. 로컬 클록(316)의 에지(t4)에서, 데이터 값(b)은 래치(712)로 래치되어, 제2 값을 갖는 선택 제어(343)에 응답하여 데이터(338) 상에 스위칭된다. 다음의 데이터 값은 도 7b에 도시된 바와 같이 MUX(714)를 통하여 래치(710 및 712)로부터 출력을 택일적으로 선택함으로서 출력(338)상에 순차적으로 출력된다.
부가적으로, 본 발명의 원리에 따른 엘러스틱 인터페이스는 확장가능하고, 그 탄력성은 스티어링 및 저장 요소를 부가함으로써 증가될 수 있다. N-1 버스 클록 주기의 탄력성을 갖는 엘러스틱 인터페이스의 실체는 도 8a 및 8b에 도시된다. 인터페이스 장치(32)에는 N개의 MUXs(802)가 있다. 각 MUX에서 제1 입력(704)은 RX(330)로부터 데이터열(322)을 수신한다. 제2 입력(806)은 래치(808-818) 중 대응하는 래치에 의한 신호 출력을 수신한다. 각 래치(808-818)는 래치 쌍을 포함한다. 래치 (808, 812 및 816)에 있어서, 상기 래치 쌍은 마스터 슬레이브 방법으로 상기 래치 쌍 중 한 쌍을 다른 쌍에 결합한다. 래치(808, 812 및 816)는 상기 슬레이브로부터의 출력을 상기 대응하는 MUX(802)의 입력(806)에 제공한다. 래치(808, 812 및 816)의 슬레이브부는 I/O 클록(336)의 상승 에지에서 상기 D 입력상의 데이터를 래치한다. 래치(808, 812 및 816)는 대응하는 MUX(802)의 출력에 결합되는 각 D 입력을 갖는다. 래치(810, 814 및 818)는 상기 래치 쌍 중 제1 쌍으로부터 출력(822)을 대응하는 MUX(802)의 입력(806)에 결합한다. 상기 래치 쌍 중 제1 쌍은 명백하고, 제1 입력(828) 상의 데이터는 I/O 클록(336)의 "플랫톱" 상에 출력(822)을 통하여 플러쉬한다. 각 래치(810, 814 및 818)의 입력(828)은 상기 래치 쌍의 제2 쌍으로부터 대응하는 출력(826)에 결합된다. 부가적으로, 상기 래치 쌍 중 제2 쌍으로 입력(830)은 대응한 MUX(802)의 출력에 결합된다. 상기 래치 쌍 중 제2 쌍은 투명하고, I/O 클록(336)의 플랫톱을 통하여 데이터를 플러쉬한다. 래치(810, 814 및 818)를 형성하는 상기 제1 및 제2 쌍의 래치는 반대 극성을 갖는 I/O 클록(336)이 플랫톱을 통하여 데이터를 플러쉬한다.
MUXs(802)는 대응하는 게이트 신호, 즉 게이트(832-842)에 응답하여 입력 (804 및 806) 신호 사이에 선택한다. 게이트 신호(832-840)는 도 8c에 도시되는 타이밍도와 결합하여 토론될 것이다.
데이터는 래치(808-818) 중 대응하는 래치로부터 출력 신호를 각각 수신하는 데이터 래치(844)를 통하여 로컬 클록으로 래치된다. 데이터는 로컬 클록(316)에 의해 데이터 래치(844)로 래치된다. 래치(808, 812 및 816)의 출력(824)은 대응하는 데이터 래치(844)의 D 입력에 제공된다. 출력(824)은 이전에 토론된 바와 같이 투명한 래치(808, 812 및 816)의 마스터부로부터 얻어진다. 데이터 래치(844)의 나머지 하나는 래치(810, 814 및 818)의 대응하는 래치를 형성하는 래치 쌍 중 제2 래치 쌍으로부터 출력(826)에서 제공된 신호를 그 D 입력 상에 수신한다. 상기 래치 쌍 중 제2 래치 쌍은 상기 래치 쌍 중 제1 래치 쌍을 통하여 데이터가 플러쉬하는 극성과 반대의 I/O 클록(336)의 극성을 통하여 플러싱하는 데이터를 갖는 투명한 래치이다.
MUX(846)는 출력용 데이터 래치(844)에 유지되는 신호 중 하나의 신호를 선택한다. 각 데이터 래치(844)의 출력은 대응하는 입력, 즉 입력(848-858) 중 하나의 입력에 결합된다. 이 신호는 MUX(846)의 출력(860)상에 칩(302 또는 304) 등의 칩으로 출력된다. MUX(846)는 선택 제어(343)를 통하여 입력(848-858) 사이에 선택한다. 선텍 제어(343)는 K 신호를 포함하는데, 2K는 N과 같다.
N의 탄력성을 갖는 변경 실시예는 도 8a 및 8b에 도시되는 회로를 이용하여 실행될 수 있다. 데이터 래치(8440의 각 D 입력을 대응하는 래치(808, 812 및 816) 중 하나의 출력(820) 및 대응하는 래치(810, 814 및 818) 중 하나에 결합함으로써[도 8a 및 8b에 도시되는 출력(824 및 822) 대신에], N의 탄력성이 얻어진다. 도 8a 및 8b의 인터페이스 장치(332)의 회로는 다른 방법으로 변경된다.
지금부터, 도 8a 및 8b에 도시되는 인터페이스 장치(332)용 타이밍도를 도시하는 도 8c를 참조하자. 데이터 값(a)은 T1의 인터페이스 대기 시간 후에 데이터(322) 상의 데이터열에 도달하고, 플랫톱(862)에 의해 표시되는 대응하는 MUX(802)에 제공된 게이트(832)의 영향에 응답하여, 데이터 값(a)은 대응하는 MUX(802)를 통하여 래치(808)의 D 입력으로 통과한다. I/O 클록(336)의 에지(t1) 상에서, 래치(808)는 래치(808)의 출력(820)상에 대응하는 MUXs(802) 중 하나에 역으로 결합되는 데이터 값을 유지한다. 게이트(832)의 에지(t2)에서, 상기 대응하는 MUX(802)는 데이터 값 (a)을 갖는 입력(806) 상에 신호를 선택한다. 게이트(832)는 버스 클록(306)의 N-1 주기 동간 부정되는데, 여기서, 그 데이터 값(a)은래치(808)의 D 입력 및 래치 (808)의 출력(824)에 유지된다. 상기 데이터 값(a)은 게이트(832)의 전이(t4)가 대응하는 MUX(802)를 스위칭하여 데이터(322) 상에 데이터열을 선택함으로써, I/O 클록(366)의 에지(t5)에서, 데이터(2)의 (N+2) 번째 데이터 값이 I/O 클록(336)의 에지(t5)상에서 래치(808)로 래치된 후에 I/O 클록(336)의 전이(t3)에 의해 버스 클록 (306)의 부가적인 싸이클 동안 유지된다. 데이터 값(a)은 로컬 클록(316)의 에지 (t6) 상에 래치(808)의 출력(824)을 수신하는 데이터 래치(844)에 포획되어, 출력 (848) 상에 나타난다. 데이터 값(a)은 버스 클록(306)의 N 주기 동안 출력(848)에 유지된다.
데이터(332)의 다음 데이터 값, 즉 데이터 값(b)은 래치(810)에 결합된 데이터 래치(844)의 버스 클록(306) N 주기 동안 유사하게 유지된다. 데이터 값(b)이 장치(322)에 도달할 때, 게이트(834)에 영향을 미쳐, "플랫톱"(864)로 나타냄, 상기 대응하는 MUX(802)의 입력(804) 상에 데이터(332)를 선택한다. 데이터 값(b)은 래치(810)의 입력(830)에 나타나서 I/O 클록(336)의 에지(t7)에 의해 래치됨으로써, 데이터 값(b)은 래치(810)의 출력(826)에 나타난다. 래치(810)의 출력(826)은 래치 (810)의 입력(828)으로 피드백된다. I/O 클록(336)이 다음 에지(t7)에서 부정되기 때문에, 래치(10)의 출력(826) 상에 데이터 값(b)은 래치(810)의 출력(822)을 통하여 떨어지고, 그것은 대응하는 MUX(802)의 입력(806)에 역으로 결합된다. I/O 클록 (336)의 에지(t8)에서, 데이터 값(b)은 래치(810)의 출력(822)에 유지된다. 게이트(834)의 에지(t9)에서, 상기 대응하는 MUX(802)는 래치(810)의 출력(822)에 유지되는 데이터 값(b)을 래치(810)의 입력(830)으로 출력하는 입력(806)을 스위칭하고 선택한다. 데이터 값(b)은 래치(810)의 입력(828)에 역으로 결합되는 래치(810)의 출력(826)을 통하여 하강하고, 데이터 값(b)은 게이트 신호(834)를 수신하는 대응하는 MUX의 입력(806)에 지속적으로 피드백된다. 따라서, 데이터 값(b)은 버스 클록(306)의 N+1 주기, 즉 에지(t10)에서 게이트(834) 전이 후에 한 개의 클록 주기 동안 래치(810)에서 출력(826)에 유지된다.
게이트(836)는 I/O 클록(836)의 1 주기 만큼 게이트(834)에 비하여 위상 지연되고, 유사하게 각 연속 게이트 신호(838-842)는 상기 체인에서 이전 게이트 신호에 비하여 I/O 클록(336)의 1 주기 만큼 위상 지연된다. 이러한 방법으로, 각 연속 래치(808-818)는 데이터(332) 안에 연속 데이터 값을 기억하고, 버스 클록(306)의 N+1 주기 동안 상기 데이터 값을 유지한다. 상기 각 래치(808-818)의 데이터 값은 로컬 클록(316)의 각 주기 동안 대응하는 데이터 래치(44)에서 래치된다. 따라서, 데이터 값(b)은 로컬 클록(316)의 에지(t11) 상에 대응하는 데이터 래치(844)로 래치되어 출력(850) 상에 나타내고, 유사하게, 데이터 값(c)은 로컬 클록(316)의 에지(t12) 상에 각 데이터 래치(844)로 클록되어 출력(852)에 나타난다. 래치(818)에 결합되는 마지막 데이터 래치(844)는 로컬 클록(316)의 에지(t13) 상에 (N+1) 번째 데이터 값을 래치한다.
데이터는 K 신호를 포함하는 선택 제어(343)에 응답하여 MUX(846)로부터 출력된다. 선택 제어(343)의 각 K 신호는 주기적이다. S(0)로 표시되는 "제로번째" 신호는 버스 클록(306)의 주기와 같은 1/2 주기를 갖는다. 상기 (K-1)번째 신호는 N 버스 클록 주기인 1/2 주기를 갖는다. S(0)와 S(N) 사이의 순차로 각 신호는 이전 신호의 주기의 2배인 주기를 갖는다. MUX(846)에서 대응하는 입력(848-858)에 나타나는 데이터 래치(844)에 기억되는 데이터 값은 선택 제어(343)에 응답하여 데이터 판독(860)으로 순차적으로 클록된다. 데이터 값(a)은 선택 제어(343)에서 S(N)의 에지(t14)상에 탄력성(N-1)을 갖는 타겟 싸이클에서 클록된다. 그 나머지 데이터 값은 선택 제어(343)시 k 신호의 싸이클 전이에 응답하여 순차적으로 클록된다. 선택 제어(343)를 구성하는 신호가 상승 에지 상에 위상 동기를 하게 도시되더라도, 다른 방법으로 보상 위상을 이용하는 당업자라면 이해할 수 있을 것이다.
도 8에 도시되는 장치(332)는 도 4와 결합하여 전술한 IAP 동안 개시된다. 적합한 개시 패턴은 도 8에 도시되는 장치(332)의 실체에 대한 탄력성에 해당하는 N-1의 탄력성을 갖는 실체에 대하여 N-1의 주기를 가질 수 있다. 전술한 N의 탄력성을 갖는 다른 실체에 대하여, 상기 동기 패턴은 주기 N을 가질 수 있다. 개시 동안, 복수의 "0" 다음에 "1"을 갖는 동기 패턴에 대하여, 상기 "1"은 선택(343)의 신호들이 적합하게 시퀀스될 때 래치(808)에서 샘플링될 것이다.
이러한 방법으로, 데이터 처리 시스템에서 인터페이스를 통하여 데이터 동기를 유지하는 메커니즘이 제공된다. 수신 데이터는 복수의 기억 소자에 포획되고,상기 칩 클록으로 동기화되는 이전에 선택된 타겟 싸이클 상에 수신 칩으로 선택적으로 진행된다. 초기의 동기화는 IAP을 실행함으로써 동적으로 설정된다. 본 발명의 메커니즘은 1 버스 클록 싸이클 이상으로 변하는 대기 시간을 갖는 데이터 처리 시스템에서 데이터 동기화를 제공한다.

Claims (29)

  1. 제1 데이터값 세트를 기억하는 제1 기억 소자와,
    제2 데이터값 세트를 기억하는 제2 기억 소자와,
    상기 제1 및 제2 기억 소자에 결합되어 상기 제1 기억 소자로부터 제1 데이터 값 및 제2 기억 소자로부터 제2 데이터 값을 적어도 하나의 제어 신호에 응답하여 순차적으로 출력하는 회로를 포함하고,
    상기 제1 및 제2 기억 소자는 제1 클록의 미리 정해진 갯수의 싸이클 동안 데이터 값을 보유하는 것인 인터페이스 장치.
  2. 제1항에 있어서, 상기 출력은 제2 클록에 동기하는 것인 인터페이스 장치.
  3. 제2항에 있어서, 상기 제2 클록은 상기 제1 클록의 주기와 동일한 주기를 갖는 것인 인터페이스 장치.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 제1 및 제2 기억 소자는 복수의 데이터 값을 포함하는 데이터 열을 수신하기 위하여 동작하는 것인 인터페이스 장치.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 제1 기억 소자는 제2 클록의 제1의 미리 정해진 에지에서 데이터를 래치하고, 상기 제2 기억 소자는 상기 제2 클록의 제2의 미리 정해진 에지에서 데이터를 래치하는 것인 인터페이스 장치.
  6. 제5항에 있어서, 상기 제2 클록이 전송 장치로부터 수신되는 클록 신호로부터 유도되는 것인 인터페이스 장치.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서, 상기 제1 및 제2 기억 소자의 대응하는 입력에 각각 결합되는 출력을 각각 갖는 제1 및 제2 선택 회로를 더 포함하고,
    상기 제1 및 제2 선택 회로에는 데이터열을 수신하기 위하여 동작하는 제1 입력 및 상기 제1 및 제2 기억 소자의 각 출력에 결합되는 제2 입력이 각각 있고,
    상기 제1 및 제2 선택 회로는 상기 제1 및 제2 제어 신호에 응답하여 상기 제1 및 제2 입력 중 하나의 입력에 신호를 출력하기 위하여 선택 동작을 하는 인터페이스 장치.
  8. 제7항에 있어서, 상기 제1 및 제2 제어 신호들은 상기 제1 클록 주기의 2배의 클록 주기를 갖고,
    상기 제2 제어 신호는 상기 제1 제어 신호의 보수인 것인 인터페이스 장치.
  9. 제7항에 있어서, 상기 제1 및 제2 선택 회로는 제1 및 제2 멀티플렉서를 각각 포함하는 것인 인터페이스 장치.
  10. 제1항에 있어서, 상기 제1 및 제2 데이터 값을 선택하여 순차적으로 출력하는 회로는 상기 제1 데이터 값을 수신하는 제1 입력 및 상기 제2 데이터 값을 수신하는 제2 입력을 갖는 멀티플렉서(MX)를 포함하고,
    상기 멀티플렉서는 상기 제1 클록의 미리 정해진 복수의 주기인 주기를 갖는 선택 제어 신호에 응답하여 상기 제1 및 제2 데이터 값 중 하나를 출력하기 위하여 선택하는 것인 인터페이스 장치.
  11. 제10항에 있어서, 상기 선택 제어 신호의 주기는 상기 제1 클록 주기의 2배인 것인 인터페이스 장치.
  12. 제1항에 있어서, 상기 제1 및 제2 데이터 값을 선택적으로 순차 출력하는 회로는,
    상기 제1 데이터 값을 수신하는 입력을 갖는 제1 래치와,
    상기 제2 데이터 값을 수신하는 입력을 갖는 제2 래치와,
    상기 제1 래치의 출력에 결합되는 제1 입력 및 상기 제2 래치의 출력에 결합되는 제2 입력을 갖는 멀티플렉서(MX)를 포함하고,
    상기 멀티플렉서는 상기 제1 래치의 출력에 결합되는 제1 입력 및 상기 제2 래치에 결합되는 제2 입력을 갖고,
    상기 멀티플렉서는(MX)는 상기 제1 클록의 미리 정해진 복수의 주기인 주기를 갖는 선택 제어 신호에 응답하여 상기 제1 및 제2 데이터 값 중 하나를 출력하기 위하여 선택적으로 동작되고,
    상기 제1 및 제2 데이터 값은 상기 제1 클록의 제1 및 제2 미리 정해진 레벨에 래치 데이터를 보유하는 것인 인터페이스 장치.
  13. 제12항에 있어서, 상기 제1 기억 소자는 제3 래치를 포함하고, 상기 제2 기억 소자는 제4 래치를 포함하는데,
    상기 제3 래치는 제2 클록의 제1 미리 정해진 레벨 상에 데이터를 보유하는 투명 래치이고,
    상기 제4 래치는 상기 제1 미리 정해진 클록 레벨로 레벨 보수 상에 데이터를 보유하는 투명 래치인 것인 인터페이스 장치.
  14. 제13항에 있어서, 상기 제3 및 제4 래치에 선택적으로 각각 결합되는 출력을 갖는 제3 및 제4 멀티플렉서를 더 포함하고,
    상기 제3 및 제4 멀티플렉서는 데이터 값의 열을 수신하기 위하여 동작하는 제1 입력 및 상기 제3 및 제4 래치의 출력에 각각 결합되는 제2 입력을 갖고,
    상기 제3 멀티플렉서는 제1 게이트 신호에 응답하여 상기 제1 입력과 제2 입력 사이를 선택하기 위하여 동작할 수 있고,
    상기 제4 멀티플렉서는 제2 게이트 신호에 응답하여 상기 제1 입력과 제2 입력 사이에 상기 제1 게이트 신호로 보수를 선택하기 위한 동작이 가능한 인터페이스 장치.
  15. 데이터열을 수신하는 제1 입력 및 출력을 각각 갖는 복수의 M개의 제1 멀티플렉서(MX)와,
    해당하는 제1 멀티플렉서의 출력에 결합된 입력을 각각 갖고, 제1 출력 및 상기 대응하는 제1 멀티플렉서(MX)의 제2 입력에 결합되는 제2 출력을 각각 갖는 복수의 M개의 제1 래치와,
    상기 데이터열을 수신하는 제1 입력 및 출력을 각각 갖는 복수의 M개의 제2 멀티플렉서와,
    제1 래치쌍의 입력이 대응하는 제2 멀티플렉서의 출력에 결합되고 출력을 갖으며, 제2 래치쌍의 입력이 상기 제1 래치쌍의 출력에 결합된 입력 및 상기 대응하는 제2 멀티플렉서의 제2 입력에 결합된 출력을 갖는 래치 쌍을 각각 포함하는 복수의 M개의 제2 래치와,
    상기 제1 래치 중 대응하는 래치의 제1 출력에 결합되는 입력 및 제3 멀티플렉서의 대응하는 입력에 결합되는 출력을 갖는 복수의 제3 래치와,
    상기 제1 래치 쌍의 출력에 결합되는 입력 및 상기 제3 멀티플렉서의 대응하는 입력에 결합되는 출력을 갖는 복수의 제4 래치를 포함하고,
    상기 제3 멀티플렉서는 복수의 k 신호를 갖고 있는 선택 제어에 응답하여 데이터 순차를 출력하기 위하여 동작하고,
    상기 복수의 k 신호 중 제1 신호는 제1 클록의 주기와 같은 1/2 주기를 갖고,
    상기 제1 래치 및 제2 래치 각각은 상기 제1 클록의 주기와 같은 1/2 주기를 갖는 제2 클록 신호에 응답하여 동작하고,
    상기 각각의 제3 래치는 상기 제1 클록에 응답하여 동작할 수 있는 것인 인터페이스 장치.
  16. 제15항에 있어서, 상기 제1 클록은 로컬 칩 클록을 포함하고, 상기 제2 클록은 입력/출력(I/O) 클록을 포함하는 것인 인터페이스 장치.
  17. 제15항에 있어서, 2(k-1)이 M인 것인 인터페이스 장치.
  18. 제1 클록의 미리 정해진 갯수의 싸이클 동안 제1 세트의 각 데이터 값이 기억되는 제1 기억 소자에 제1 데이터 값 세트를 기억하는 단계와,
    제1 클록의 미리 정해진 갯수의 싸이클 동안 제2 세트의 각 데이터 값이 기억되는 제2 기억 소자에 제2 데이터 값 세트를 기억하는 단계와,
    적어도 하나의 제어 신호에 응답하여 상기 제1 기억 소자로부터 제1 데이터 값 및 제2 기억 소자로부터 제2 데이터 값을 순차적으로 출력하는 단계를 포함하는 것인 집적 회로 소자를 인터페이스하는 방법.
  19. 제18항에 있어서, 상기 제1 및 제2 데이터 값 세트는 데이터열에서 수신되는 복수의 데이터 값을 포함하는 것인 집적 회로 소자를 인터페이스하는 방법.
  20. 제18항에 있어서, 상기 제1 데이터 값을 순차적으로 출력하는 단계는,
    제1 선택 회로를 상기 제1 및 제2 기억 장치에 결합하는 단계와,
    상기 선택 회로에 제어 신호를 제공하는 단계를 포함하고,
    상기 제어 신호는 상기 제1 클록의 미리 정해진 복수의 주기인 주기를 갖는 것인 집적 회로 소자를 인터페이스하는 방법.
  21. 제20항에 있어서, 제1 및 제2 선택 회로의 입력에서 데이터 열을 수신하는 단계와,
    제1 선택 신호에 응답하여 상기 제1 선택 회로로부터 상기 제1 기억 소자로 상기 제1 데이터 값 세트를 출력하는 단계와,
    제2 선택 신호에 응답하여 상기 선택 회로로부터 상기 제 제2 기억 소자로 상기 각 제2 데이터 값 세트를 출력하는 단계를 더 포함하는 것인 집적 회로 소자를 인터페이스하는 방법.
  22. 제21항에 있어서, 상기 제1 및 제2 선택 신호는 보수 신호인 것인 집적 회로 소자를 인터페이스하는 방법.
  23. 제21항에 있어서, 상기 제1 및 제2 선택 신호는 상기 제1 클록 주기의 2배의 주기를 갖는 것인 집적 회로 소자를 인터페이스하는 방법.
  24. 제21항에 있어서, 상기 제1 및 제2 선택 신호는 상기 제1 클록 주기의 미리 정해진 복수의 주기를 갖는 것인 집적 회로 소자를 인터페이스하는 방법.
  25. 제21항에 있어서, 상기 제1 및 제2 선택 신호를 개시하는 단계를 더 포함하는 것인 집적 회로 소자를 인터페이스하는 방법.
  26. 제25항에 있어서, 상기 제1 및 제2 선택 신호를 개시하는 단계는,
    미리 선택된 데이터열을 보내는 단계와,
    상기 미리 선택된 데이터열에 응답하여 상기 제1 및 제2 선택 신호의 위상을 조정하는 단계를 포함하는 것인 집적 회로 소자를 인터페이스하는 방법.
  27. 제26항에 있어서, 상기 각 선택 신호의 위상을 조정하는 단계는 상기 데이터열의 제1의 미리정해진 데이터 값이 상기 제1 기억 소자에서 포획되고, 제2의 미리 정해진 데이터 값이 상기 제2 기억 소자에서 포획되는 위상을 선택하는 단계를 더 포함하는 것인 집적 회로 소자를 인터페이스하는 방법.
  28. 제26항에 있어서, 상기 데이터열은 동기화 패턴을 포함하는 것인 집적 회로소자를 인터페이스하는 방법.
  29. 제1 데이터 처리 장치와,
    청구항 제1항 내지 14항의 장치를 포함하는 엘러스틱 인터페이스를 경유하여 상기 제1 데이터 처리 장치에 결합되는 제2 데이터 처리 장치를 포함하는 것인 데이터 처리 장치.
KR10-2001-7011288A 1999-03-05 2000-03-03 엘러스틱 인터페이스 장치 및 그 방법 KR100457868B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/263,661 US6334163B1 (en) 1999-03-05 1999-03-05 Elastic interface apparatus and method therefor
US09/263,661 1999-03-05

Publications (2)

Publication Number Publication Date
KR20010102501A true KR20010102501A (ko) 2001-11-15
KR100457868B1 KR100457868B1 (ko) 2004-11-18

Family

ID=23002731

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-7011288A KR100457868B1 (ko) 1999-03-05 2000-03-03 엘러스틱 인터페이스 장치 및 그 방법

Country Status (17)

Country Link
US (2) US6334163B1 (ko)
EP (1) EP1166210B1 (ko)
JP (1) JP4384819B2 (ko)
KR (1) KR100457868B1 (ko)
CN (1) CN1129853C (ko)
AT (1) ATE239945T1 (ko)
AU (1) AU2925000A (ko)
BR (1) BRPI0009250B1 (ko)
CA (1) CA2366898C (ko)
CZ (1) CZ302550B6 (ko)
DE (1) DE60002571T2 (ko)
ES (1) ES2193940T3 (ko)
HU (1) HUP0200283A3 (ko)
IL (2) IL145275A0 (ko)
PL (1) PL200520B1 (ko)
RU (1) RU2212048C2 (ko)
WO (1) WO2000054163A1 (ko)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69811262T2 (de) * 1997-10-10 2003-11-27 Rambus Inc Verfahren und vorrichtung zur ausfallsicheren resynchronisation mit minimaler latenzzeit
US6636980B1 (en) * 1999-08-19 2003-10-21 International Business Machines Corporation System for launching data on a bus by using first clock for alternately selecting data from two data streams and using second clock for launching data thereafter
US6775339B1 (en) * 1999-08-27 2004-08-10 Silicon Graphics, Inc. Circuit design for high-speed digital communication
US6571346B1 (en) * 1999-11-05 2003-05-27 International Business Machines Corporation Elastic interface for master-slave communication
US6542999B1 (en) * 1999-11-05 2003-04-01 International Business Machines Corp. System for latching first and second data on opposite edges of a first clock and outputting both data in response to a second clock
US6675331B1 (en) * 1999-12-22 2004-01-06 Texas Instruments Incorporated Testable transparent latch and method for testing logic circuitry that includes a testable transparent latch
US7031420B1 (en) 1999-12-30 2006-04-18 Silicon Graphics, Inc. System and method for adaptively deskewing parallel data signals relative to a clock
JP2001195355A (ja) * 2000-01-14 2001-07-19 Sony Corp データ処理回路
US6977979B1 (en) * 2000-08-31 2005-12-20 Hewlett-Packard Development Company, L.P. Enhanced clock forwarding data recovery
US7117126B2 (en) * 2001-09-05 2006-10-03 International Business Machines Corporation Data processing system and method with dynamic idle for tunable interface calibration
JP3798292B2 (ja) * 2001-10-31 2006-07-19 富士通株式会社 データ同期化回路及び通信インターフェース回路
US6661726B2 (en) * 2002-01-09 2003-12-09 International Business Machines Corporation Multiple mode elastic data transfer interface
US6954870B2 (en) * 2002-03-12 2005-10-11 International Business Machines Corporation Method for receiver delay detection and latency minimization for a source synchronous wave pipelined interface
US6934867B2 (en) * 2002-05-17 2005-08-23 International Business Machines Corporation Digital system having a multiplicity of self-calibrating interfaces
US6891406B2 (en) * 2003-01-09 2005-05-10 International Business Machines Corporation Method and apparatus for supplying a reference voltage for chip-to-chip communication
US7313210B2 (en) * 2003-02-28 2007-12-25 Hewlett-Packard Development Company, L.P. System and method for establishing a known timing relationship between two clock signals
US7143304B2 (en) * 2003-05-30 2006-11-28 Sun Microsystems, Inc. Method and apparatus for enhancing the speed of a synchronous bus
KR100594294B1 (ko) * 2004-09-21 2006-06-30 삼성전자주식회사 메모리 장치 및 데이터 트레이닝 방법
US7254656B2 (en) 2004-11-13 2007-08-07 International Business Machines Corporation Method and service and computer program code for broadcast of interface group bring-up in a multiprocessor computer system having multiple nodes
US7412618B2 (en) * 2005-02-11 2008-08-12 International Business Machines Corporation Combined alignment scrambler function for elastic interface
US20060188046A1 (en) * 2005-02-24 2006-08-24 Broadcom Corporation Prediction of an optimal sampling point for clock resynchronization in a source synchronous data channel
US7684534B2 (en) * 2005-07-11 2010-03-23 International Business Machines Corporation Method and apparatus for handling of clock information in serial link ports
US20070098020A1 (en) * 2005-10-27 2007-05-03 Yee Ja Methods and arrangements to model an asynchronous interface
US7783911B2 (en) * 2006-06-27 2010-08-24 International Business Machines Corporation Programmable bus driver launch delay/cycle delay to reduce elastic interface elasticity requirements
US7739538B2 (en) * 2006-06-27 2010-06-15 International Business Machines Corporation Double data rate chaining for synchronous DDR interfaces
US7882322B2 (en) * 2006-06-27 2011-02-01 International Business Machines Corporation Early directory access of a double data rate elastic interface
US7734944B2 (en) * 2006-06-27 2010-06-08 International Business Machines Corporation Mechanism for windaging of a double rate driver
US7752475B2 (en) * 2006-06-27 2010-07-06 International Business Machines Corporation Late data launch for a double data rate elastic interface
US7739545B2 (en) * 2006-09-13 2010-06-15 International Business Machines Corporation System and method to support use of bus spare wires in connection modules
US7979616B2 (en) * 2007-06-22 2011-07-12 International Business Machines Corporation System and method for providing a configurable command sequence for a memory interface device
US7624244B2 (en) * 2007-06-22 2009-11-24 International Business Machines Corporation System for providing a slow command decode over an untrained high-speed interface
JP5921264B2 (ja) * 2012-03-09 2016-05-24 キヤノン株式会社 シリアル通信システムおよびその通信初期化の方法、並びにシリアル通信装置およびその通信初期化の方法
US9645965B2 (en) * 2013-03-15 2017-05-09 Intel Corporation Apparatus, system, and method for improving equalization with a hardware driven algorithm
CN105122158B (zh) * 2013-04-16 2017-12-22 西门子公司 具有短延迟时间的可编程控制装置
CN104348889B (zh) * 2013-08-09 2019-04-16 鸿富锦精密工业(深圳)有限公司 切换开关及电子装置
US9547609B2 (en) * 2013-10-25 2017-01-17 Avago Technologies General Ip (Singapore) Pte. Ltd. Data interface for point-to-point communications between devices
DE102017217051A1 (de) 2017-09-26 2019-03-28 Spinner Gmbh Vorrichtung und Verfahren zur Übertragung von Daten zwischen zwei physikalischen Schnittstellen

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5060280A (en) * 1986-09-30 1991-10-22 Canon Kabushiki Kaisha Masking control for image processing systems
IL96808A (en) * 1990-04-18 1996-03-31 Rambus Inc Introductory / Origin Circuit Agreed Using High-Performance Brokerage
US5560017A (en) * 1990-11-09 1996-09-24 Wang Laboratories, Inc. System with clock frequency controller responsive to interrupt independent of software routine and software loop repeatedly executing instruction to slow down system clock
WO1993018463A1 (en) * 1992-03-06 1993-09-16 Rambus, Inc. Method and circuitry for minimizing clock-data skew in a bus system
US5229668A (en) 1992-03-25 1993-07-20 North Carolina State University Of Raleigh Method and apparatus for high speed digital sampling of a data signal
US5424996A (en) * 1992-09-29 1995-06-13 Hewlett-Packard Company Dual transparent latch
US5394106A (en) * 1993-08-31 1995-02-28 Gadzoox Microsystems Apparatus and method for synthesis of signals with programmable periods
US5509038A (en) * 1994-04-06 1996-04-16 Hal Computer Systems, Inc. Multi-path data synchronizer system and method
JPH07311735A (ja) 1994-05-18 1995-11-28 Hitachi Ltd データ転送装置
US5598113A (en) * 1995-01-19 1997-01-28 Intel Corporation Fully asynchronous interface with programmable metastability settling time synchronizer
US5603050A (en) * 1995-03-03 1997-02-11 Compaq Computer Corporation Direct memory access controller having programmable timing
US5835729A (en) * 1996-09-13 1998-11-10 Silicon Graphics, Inc. Circuit to separate and combine color space component data of a video image
US5915128A (en) * 1997-01-29 1999-06-22 Unisys Corporation Serial speed-matching buffer utilizing plurality of registers where each register selectively receives data from transferring units or sequentially transfers data to another register
US5838936A (en) 1997-03-10 1998-11-17 Emulex Corporation Elastic bus interface data buffer
US6031847A (en) 1997-07-01 2000-02-29 Silicon Graphics, Inc Method and system for deskewing parallel bus channels
US6041417A (en) * 1998-06-04 2000-03-21 Hewlett-Packard Company Method and apparatus for synchronizing data received in an accelerated graphics port of a graphics memory system

Also Published As

Publication number Publication date
HUP0200283A3 (en) 2004-12-28
BR0009250A (pt) 2001-11-27
ES2193940T3 (es) 2003-11-16
JP2002539525A (ja) 2002-11-19
CN1343335A (zh) 2002-04-03
AU2925000A (en) 2000-09-28
US20020013875A1 (en) 2002-01-31
PL200520B1 (pl) 2009-01-30
JP4384819B2 (ja) 2009-12-16
HUP0200283A2 (hu) 2002-05-29
CN1129853C (zh) 2003-12-03
CZ302550B6 (cs) 2011-07-13
BRPI0009250B1 (pt) 2016-08-23
ATE239945T1 (de) 2003-05-15
IL145275A0 (en) 2002-06-30
US6671753B2 (en) 2003-12-30
PL350133A1 (en) 2002-11-04
DE60002571T2 (de) 2004-04-29
CA2366898C (en) 2005-04-12
RU2212048C2 (ru) 2003-09-10
WO2000054163A1 (en) 2000-09-14
KR100457868B1 (ko) 2004-11-18
EP1166210B1 (en) 2003-05-07
IL145275A (en) 2006-08-01
DE60002571D1 (de) 2003-06-12
US6334163B1 (en) 2001-12-25
CA2366898A1 (en) 2000-09-14
EP1166210A1 (en) 2002-01-02

Similar Documents

Publication Publication Date Title
KR100457868B1 (ko) 엘러스틱 인터페이스 장치 및 그 방법
CA2365288C (en) Dynamic wave-pipelined interface apparatus and methods therefor
US6247137B1 (en) Delaying clock and data signals to force synchronous operation in digital systems that determine phase relationships between clocks with related frequencies
US7198197B2 (en) Method and apparatus for data acquisition
US7783911B2 (en) Programmable bus driver launch delay/cycle delay to reduce elastic interface elasticity requirements
JPH11316706A (ja) データ高速転送同期システム及びデータ高速転送同期方法
US6795514B2 (en) Integrated data clock extractor
US20050008110A1 (en) System and method for data phase realignment
US7716514B2 (en) Dynamic clock phase alignment between independent clock domains
US7120214B2 (en) Synchronous signal transfer and processing device
US7839963B2 (en) Isochronous synchronizer
US7668272B1 (en) Method and apparatus for data transfer between mesochronous clock domains
US6636980B1 (en) System for launching data on a bus by using first clock for alternately selecting data from two data streams and using second clock for launching data thereafter
US20060198233A1 (en) System and method to change data window
Teifel et al. A high-speed clockless serial link transceiver
US6973155B2 (en) Highly scalable glitch-free frequency divider
EP1150450A2 (en) Synchronizer
US6542999B1 (en) System for latching first and second data on opposite edges of a first clock and outputting both data in response to a second clock
US7206369B2 (en) Programmable feedback delay phase-locked loop for high-speed input/output timing budget management and method of operation thereof
US7515667B2 (en) Method and apparatus for reducing synchronizer shadow
US11545987B1 (en) Traversing a variable delay line in a deterministic number of clock cycles
JPH08329000A (ja) 情報処理装置
KR100609135B1 (ko) 셋업/홀드 타임 제어 회로

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: 20121024

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20131025

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee