KR20150037898A - 클록 도메인 간의 데이터 전송 - Google Patents
클록 도메인 간의 데이터 전송 Download PDFInfo
- Publication number
- KR20150037898A KR20150037898A KR20157002115A KR20157002115A KR20150037898A KR 20150037898 A KR20150037898 A KR 20150037898A KR 20157002115 A KR20157002115 A KR 20157002115A KR 20157002115 A KR20157002115 A KR 20157002115A KR 20150037898 A KR20150037898 A KR 20150037898A
- Authority
- KR
- South Korea
- Prior art keywords
- clock
- clock domain
- domain
- checking
- input signal
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/12—Synchronisation of different clock signals provided by a plurality of clock generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/10—Distribution of clock signals, e.g. skew
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/405—Coupling between buses using bus bridges where the bridge performs a synchronising function
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Information Transfer Systems (AREA)
- Manipulation Of Pulses (AREA)
Abstract
제 1 클록 도메인(4)으로부터 제 2 클록 도메인(8)으로 데이터 신호 (sig_fast) 를 전송하는 시스템(1)에 관한 것이다. 제 1 클록 도메인(4)은 제 2 클록 도메인(8)의 제 2 클록 (ck_slow)의 주파수보다 큰 주파수를 갖는 제 1 클록 (ck_fast)을 갖는다. 시스템(1)은 제 1 클록 도메인(4)으로부터 입력 신호 (sig_fast)를 수신하는 신호 입력(10)과, 제 2 클록 (ck_slow)이 다가올 천이로부터 떨어진 사이클의 부분에 있는지를 체킹하는 체킹 수단(16, 18)과, 제 2 클록 (ck_slow)이 다가올 천이로부터 떨어진 사이클의 부분에 있다고 체킹 수단(16, 18)이 판정하는 경우 입력 신호 (sig_fast)를 제 2 클록 도메인(8)으로 전송하는 전송 수단(22)을 갖는다. 체킹 수단(16, 18)은 제 1 클록 (ck_fast)에 의해 클록킹된다.
Description
본 발명은 특히 클록 도메인(clock domains)이 동기화되지 않는 디지털 시스템에서의 클록 도메인들 간에 데이터 신호를 전송하는 시스템 및 방법에 관한 것이다.
예를 들어, 무선(예를 들어, 블루투스) 시스템 등의 다수의 상이한 전자 시스템에서, 상이한 주파수에서 동작하지만, 서로 간에 통신하도록 적어도 산발적으로 요구되는 2 이상의 클록 도메인이 존재한다. 예를 들어, 중앙 프로세서는 높은 주파수에서 동작하고 1 이상의 주변 기기는 낮은 주파수에서 동작할 수 있다. 또한, 클록 도메인 중 하나는 사용되지 않는 경우, 절전하기 위해 비활성 기간, 예를 들어, 슬립 또는 스탠바이 모드에 진입할 수 있다. 그러나, 이 비활성 기간에는 2개의 클록 도메인 사이에 통신이 존재하지 않지만, 하나의 클록 도메인이 슬립 또는 스탠바이 모드를 종료하는 경우, 종종 다른 클록 도메인과 통신할 필요가 있을 것이다. 또한, 고속 및 저속의 클록 도메인은 통상적으로 서로 간에 동기화되지 않을 것이다.
서로 간에 동기화되지 않고 상이한 주파수일 수 있는 상이한 클록 도메인을 포함하는 시스템에서, 예를 들어 비지(busy) 플래그의 사용에 의해 저속 클록 도메인이 고속 클록 도메인으로부터 신호를 수신할 준비가 되어 있는지를 확립하기 위해서 클록 도메인들이 파라미터를 협상하는(negotiate) "핸드쉐이킹(handshaking)" 프로시듀어를 채용하는 것이 알려져 있다. 이것은 신호의 파손(corruption) 또는 시스템의 준안전성(meta-stability)을 방지하기 위해, 저속 클록 도메인의 안전한 기간 동안, 즉, 저속 클록 도메인에서의 (클록이 0으로부터 1로 변경되는) 포지티브(positive) 천이로부터 떨어진 시간에 신호가 전송될 수 있도록 하는데 필요하다. 그러나 알려진 핸드쉐이킹 프로시듀어는 클록 도메인들 간의 동기화를 달성하기 위해 저속의 클록 도메인에 의해 클록킹되고, 저속 클록 도메인의 다수의 사이클을 필요로 하므로 비교적 저속이다. 저속일 뿐만 아니라, 고속 클록 도메인이 그러한 프로시듀어 동안 실행되도록 유지되어야 하므로, 상당한 양의 전력을 소모한다.
또한, 특히 통상적인 핸드쉐이킹 프로시듀어를 이용하여 고속 클록 도메인으로부터 저속 클록 도메인으로 데이터를 전송하는 경우, 고속 클록 도메인의 소스 데이터는 해당 데이터가 전송될 때까지 프로시듀어 전반에 걸쳐 변경되지 않는다는 것이 보장되어야 하며, 그렇지 않으면 몇몇 비트가 전송되어 보다 새로운 데이터를 나타내는 반면 몇몇 비트가 전송되지 않아 보다 오래된 데이터를 나타내어 파손된 데이터를 야기할 위험성이 있다. 따라서 종래에는, "프리즈(freeze)"가 소스 데이터 상에 가해지는데, 이는 데이터를 전송하는데 모든 것이 안전한지를 체크하기 위해 2개의 클록 도메인들 간에 다수의 동기화 신호를 주고 받을 필요로부터 초래되는 상기 설명한 전송 시의 지연의 관점에서 특히 바람직하지 않다.
본 발명의 목적은 상이한 주파수의 2개의 클록 도메인들 간의 통신을 위해 향상된 시스템 및 방법을 제공하는 것이다.
본 발명의 제 1 측면으로부터 보면, 제 1 클록 도메인으로부터 제 2 클록 도메인으로 데이터 신호를 전송하는 시스템으로서, 상기 제 1 클록 도메인은 제 1 클록을 포함하고, 상기 제 2 클록 도메인은 제 2 클록을 포함하고,
상기 제 1 클록 도메인으로부터 입력 신호를 수신하는 신호 입력과,
상기 제 1 클록 또는 상기 제 2 클록 중 보다 느린 클록이 다가올(forthcoming) 천이로부터 떨어진 사이클의 부분에 있는지를 체킹하는 수단으로서, 상기 제 1 클록 또는 상기 제 2 클록 중 보다 빠른 클록에 의해 클록킹되는 체킹 수단과,
상기 제 1 클록 또는 상기 제 2 클록 중 보다 느린 클록이 다가올 천이로부터 떨어진 사이클의 부분에 있다고 상기 체킹 수단이 판정하는 경우 상기 입력 신호를 상기 제 2 클록 도메인으로 전송하는 전송 수단을 포함하는
데이터 신호 전송 시스템을 제공한다.
본 발명은 제 1 클록 도메인으로부터 제 2 클록 도메인으로 데이터 신호를 전송하는 방법으로서, 상기 제 1 클록 도메인은 제 1 클록을 포함하고, 상기 제 2 클록 도메인은 제 2 클록을 포함하고,
상기 제 1 클록 도메인으로부터 입력 신호를 수신하는 단계와,
상기 제 1 클록 또는 상기 제 2 클록 중 보다 빠른 클록에 의해 클록킹되는 체킹 수단을 이용하여 상기 제 1 클록 또는 상기 제 2 클록 중 보다 느린 클록이 다가올 천이로부터 떨어진 사이클의 부분에 있는지를 체킹하는 단계와,
상기 체킹 단계에서 상기 제 1 클록 또는 상기 제 2 클록 중 보다 느린 클록이 다가올 천이로부터 떨어진 사이클의 부분에 있다고 판정하는 경우 상기 입력 신호를 상기 제 2 클록 도메인으로 전송하는 단계를 포함하는
데이터 신호 전송 방법을 제공한다.
본 발명이 저속의 제 1 클록 도메인으로부터 고속의 제 2 클록 도메인으로 데이터 신호를 전송하는데 사용될 수 있다 하더라도, 본 발명은 고속의 제 1 클록 도메인으로부터 저속의 제 2 클록 도메인으로 데이터 신호를 전송하는데 특히 이점이 있다.
따라서, 본 발명의 제 2 측면으로부터 보면,
제 1 클록 도메인으로부터 제 2 클록 도메인으로 데이터 신호를 전송하는 시스템으로서, 상기 제 1 클록 도메인은 상기 제 2 클록 도메인의 제 2 클록의 주파수보다 큰 주파수를 갖는 제 1 클록을 포함하고,
상기 제 1 클록 도메인으로부터 입력 신호를 수신하는 신호 입력과,
상기 제 2 클록이 다가올 천이로부터 떨어진 사이클의 부분에 있는지를 체킹하는 수단으로서, 상기 제 1 클록에 의해 클록킹되는 체킹 수단과,
상기 제 2 클록이 다가올 천이로부터 떨어진 사이클의 부분에 있다고 상기 체킹 수단이 판정하는 경우 상기 입력 신호를 상기 제 2 클록 도메인으로 전송하는 전송 수단을 포함하는
데이터 신호 전송 시스템을 제공한다.
본 발명은 제 1 클록 도메인으로부터 제 2 클록 도메인으로 데이터 신호를 전송하는 방법으로서, 상기 제 1 클록 도메인은 상기 제 2 클록 도메인의 제 2 클록의 주파수보다 큰 주파수를 갖는 제 1 클록을 포함하고,
상기 제 1 클록 도메인으로부터 입력 신호를 수신하는 단계와,
상기 제 1 클록에 의해 클록킹되는 체킹 수단을 이용하여 상기 제 2 클록이 다가올 천이로부터 떨어진 사이클의 부분에 있는지를 체킹하는 단계와,
상기 체킹 단계에서 상기 제 2 클록이 다가올 천이로부터 떨어진 사이클의 부분에 있다고 판정하는 경우 상기 입력 신호를 상기 제 2 클록 도메인으로 전송하는 단계를 포함하는
데이터 신호 전송 방법을 또한 제공한다.
체킹 수단은 포지티브 및/또는 네거티브 천이를 검출하도록 구성될 수 있다. 즉, 제 2 클록 도메인의 데이터 값은 제 2 클록의 포지티브 및 네거티브 천이 중 한쪽 또는 양쪽에서 변경될 수 있다. 그러나, 실시예의 세트에서, 검출되는 천이는 포지티브 천이이다.
따라서 핸드쉐이킹 및/또는 비지 플래그를 이용하는 대신에, 본 발명에 따르면, 저속 클록 도메인이 사이클의 어느 부분에 있는 지에 대해 체킹이 수행되고, 사이클의 '안전한' 부분에 있는 한, 즉, 임박한 천이가 없는 한, 고속 클록 도메인으로부터의 신호가 저속 클록 도메인으로 전송될 수 있거나 또는 저속 클록 도메인으로부터의 신호가 고속 클록 도메인에 의해 단지 판독될 수 있음이 이해될 것이다. 본 출원인은 저속 클록의 체킹이 고속 클록에 의해 클록킹되므로 제 1 클록 도메인으로부터 제 2 클록 도메인으로 고속의 신호의 전송을 초래한다는 것을 이해하였다. 예를 들어, 2개의 고속 클록 사이클일 수 있는 본 발명의 실시예에서의 동기화 및 전송 시간에 비해, 핸드쉐이킹을 포함하는 알려진 구성에서의 동기화 및 전송 시간은 통상적으로 적어도 2개의 저속 클록 사이클이다. 본 발명은 저속의 제 1 클록으로부터 고속의 제 2 클록으로 데이터 신호를 전송하는데 이점이 있지만, 본 명세서에서는 제 1 클록이 제 2 클록보다 큰 주파수를 갖는 실시예의 세트가 주로 참조될 것이다. 제 2 클록의 체킹은 그 사이클이 0으로부터 1로의 다가올 포지티브 천이로부터 떨어져 있음을 보장하도록 행해지므로, 제 1 클록 도메인으로부터 제 2 클록 도메인으로의 입력 신호의 전송은 제 2 클록 사이클의 천이와 일치하지 않는다. 이것은 제 2 클록 도메인의 데이터 값이 포지티브 에지에서 판독되므로, 이 시점에서 제 2 클록 도메인으로 값을 전송하는 것은 데이터 파손 또는 준안전성을 초래할 수 있기 때문이다.
본 출원인은 전송이 저속의 제 2 클록 사이클의 안전한 부분에서 발생하므로, 전송되는 데이터 신호를 동기화하는 것이 필요하지 않다는 것을 이해하였다. 따라서 바람직한 실시예의 세트에서 입력 신호는 체킹 수단을 통해 제 1 클록 도메인으로부터 제 2 클록 도메인으로 전송되지 않는다. 특정의 실시예의 세트에서 제 1 클록 도메인의 입력과 제 2 클록 도메인의 출력 사이에서 클록 사이클 시간 지연을 도입하는 구성요소가 존재하지 않는다.
단일 비트 신호에 이점이 있다 하더라도, 특히 제 1 및 제 2 클록 도메인의 주파수에 큰 차이가 있는 경우, 다중 비트 버스에 큰 이점이 있는데, 왜냐하면 상당한 수의 게이트와 그에 따른 집적 회로 상의 보다 큰 면적 및 보다 큰 전력 소모를 필요로 하는 매 비트 마다의 체킹을 수행하는 것 없이 제 2 클록에 대해 행해진 체킹에 근거하여 전체 신호가 전송될 수 있기 때문이다. 이것은 본 발명의 실시예가 종래 기술에서 클록 도메인을 매칭하는데 통상적으로 사용되는 직렬 플립플롭 또는 다른 구성과 연관된 지연을 도입할 필요가 없음을 또한 의미한다.
본 발명의 몇몇 실시예에서 버스가 임의의 수의 다중 비트를 포함할 수 있는 것으로 이해될 것이지만, 입력 신호는, 예를 들어, 버스로부터 적어도 8, 16 또는 32 비트를 포함한다. 본 명세서에서 전송되는 데이터에 대해 참조하는 경우, 이것은 단일 비트 신호 및 다중 비트 버스 모두를 포함한다.
전력 소모를 감소함에 있어 추가적인 장점은 보다 빠른 전송으로 달성 가능한데, 왜냐하면 보다 빠른 전송은 클록들 중 한쪽 또는 양쪽이 보다 신속하게 슬립 상태로 진입하거나 또는 리턴하게 해 주기 때문이다. 이것은 통상적으로 보다 고속이고 보다 많은 전력을 소모하는 제 1 클록 도메인이며, 이 제 1 클록 도메인은, 예를 들어, 저 전력 타이머로서 작동할 수 있는 제 2 클록 도메인으로부터 데이터를 주기적으로 판독한다.
제 2 클록의 체킹은 제 1 클록 도메인으로부터 제 2 클록 도메인으로 입력 신호가 전송되기 이전에 그 클록 사이클에서 천이(0으로부터 1로 또는 1로부터 0으로)를 갖지 않는 것임을 판정하는 임의의 적절한 방식을 포함할 수 있다. 실시예의 일 세트에서 제 2 클록의 체킹은 제 2 클록이 그 사이클의 포지티브 부분에 있는지를 판정하는 것을 포함한다. 그와 같은 경우이면, 필요한 체킹을 수행하고 입력 신호를 전송하는 데에 저속 클록 사이클의 적어도 절반이 존재한다. 실시예의 이 세트에서 제 2 클록 도메인의 안전한 부분 내에서 체킹의 모든 단계를 수행하고 제 1 클록 도메인으로부터 제 2 클록 도메인으로 입력 신호를 전송할 수 있는 충분한 시간을 갖기 위해, 제 1 클록은 체킹에서의 단계 수의 적어도 2배만큼 제 2 클록의 주파수보다 큰 (체킹 수단이 클록킹되는) 주파수를 가질 필요가 있다.
제 1 클록의 주파수가 제 2 클록의 주파수의 정수배이고 및/또는 고정된 위상을 가질 수 있다 하더라도, 본 발명에 따르면 통상적으로 동기화 또는 특정의 관계가 요구되지 않는다. 또한, 본 발명의 실시예는 제 2 클록 도메인이 슬립 또는 스탠바이 모드에 진입하고 비동기적으로 재개하는 것이 허용된다.
실시예의 일 세트에서 제 1 클록의 주파수가 제 2 클록의 주파수의 적어도 4배, 예를 들어, 제 2 클록의 주파수의 적어도 10배, 예를 들어, 제 2 클록의 주파수의 적어도 100배, 예를 들어, 제 2 클록의 주파수의 적어도 1000배이다. 이것은 전송 동안 제 2 클록에서의 천이가 존재한다는 위험성 및 그에 따른 데이터 파손 또는 준안전성의 연관된 위험성 없이, 제 2 클록의 체킹이 수행되고 신호가 제 1 클록 도메인으로부터 제 2 클록 도메인으로 전송되는 데에 충분한 시간이 존재한다는 것을 보장한다. 이것은 상업적인 제품에 존재하는 상이한 클록 도메인을 또한 반영한다. 실시예의 예시적인 세트에서 제 1 클록의 주파수는 16MHz이고 제 2 클록의 주파수는 32kHz이다.
제 2 클록의 체킹은 제 1 클록의 사이클 동안 임의의 지점에서 수행될 수 있고 이것은 고정될 필요가 없다. 실시예의 일 세트에서 체킹은 제 1 클록의 상승 에지에서 수행된다. 체킹은 복수의 단계를 포함할 수 있는데, 후속하는 단계가 후속의, 예를 들어, 다음의 제 1 클록의 상승 에지에서 수행된다. 상술한 바와 같이, 제 2 클록 사이클의 안전한 부분 내에서 체킹의 모든 단계를 수행하고 제 1 클록 도메인으로부터 제 2 클록 도메인으로 입력 신호를 전송할 수 있는 충분한 시간을 갖기 위해, 제 1 클록은 체킹에서의 적어도 단계 수의 배수만큼 제 2 클록의 주파수보다 큰 주파수를 가질 필요가 있음을 알 수 있을 것이다.
실시예의 일 세트에서 제 2 클록은 비활성 기간, 예를 들어, 슬립 또는 스탠바이 모드에 진입할 수 있다. 그러나, 제 2 클록이 비활성, 즉, 그 클록 사이클이 실행 중이 아니라고 해도, 제 1 클록 도메인으로부터 제 2 클록 도메인으로 신호를 전송하는 것이 여전히 요구될 수 있다. 이 상황에서, 제 2 클록이 사이클의 어느 부분에 있는지의 체킹이 가능하지 않으므로, 시스템은 제 2 클록이 활성인지를 판정하기 위한 수단을 포함할 수 있다. 이 체킹이 만족스러운 경우, 즉, 제 2 클록이 비활성으로 판명되는 경우, 입력 신호는 제 1 클록 도메인으로부터 제 2 클록 도메인으로 전송될 수 있다. 이 상황에서, 입력 신호는 안전하게 전송될 것인데, 왜냐하면 비활성의 제 2 클록으로 인해, 전송 동안 제 2 클록에서 천이가 존재하지 않을 것이 보장될 수 있기 때문이다.
체킹 수단은 클록의 속성에 따라 임의의 적절한 구성을 포함할 수 있다. 실시예의 일 세트에서 체킹을 수행하는 수단은 임의의 타입의 클록킹된 플립플롭이 사용될 수 있지만, 플립플롭, 예를 들어, D 타입 플립플롭을 포함한다. 이것은, 예를 들어, 제 2 클록이 하이(high)인지를 판정하는 것을 체킹이 포함하는 경우에 적합하다. 바람직하게는 체킹을 수행하는 수단은 직렬의 2개의 플립플롭을 포함한다. 2개 이상의 플립플롭을 제공하는 것은 플립플롭에 의해 수행된 체킹의 확실성을 증대시키도록 작용한다. 예를 들어, 제 2 클록이 천이를 거치는 바로 그때에 체킹이 행해지는 경우, 플립플롭으로부터의 출력이 그 자체를 해결하는데 시간이 걸리는 불안정한 상태로 될 약간의 가능성이 존재한다. 그러나, 이 출력이 또 다른 플립플롭의 입력에 공급되면, 양 플립플롭이 불안정한 상태로 될 가능성이 매우 작게 되는데, 왜냐하면 그러한 확률이 승법적(multiplicative)이기 때문이다.
각각의 플립플롭은 제 1 클록에 의해 클록킹된다. 따라서 실시예의 바람직한 세트에서 각 플립플롭이 제 1 클록의 상승 에지에 의해 트리거되고, 두 번째 체킹을 수행하는 플립플롭은 첫 번째 체킹을 수행하는 플립플롭을 트리거하는 상승 에지를 뒤따르는 후속의 상승 에지에 의해 트리거된다는 것이 이해될 것이다. 직렬의 3개 이상의 플립플롭이 사용될 수 있다. 여분의 플립플롭을 추가하는 것은 제 2 클록의 체킹의 정확도를 더 증대시키도록 작용하므로, 매우 높은 주파수에서, 준안전성의 위험성이 더 커지는 경우, 3개 이상의 플립플롭을 갖는 것이 필요할 수 있다.
실시예의 일 세트에서 시스템은, 제 1 클록 도메인으로부터 새로운 입력 신호가 존재하는지, 예를 들어, 이전에 전송된 값으로부터 변경되었는지를 검출하는 수단을 포함한다. 이것은 시스템으로 하여금 제 1 및 제 2 클록 도메인 간의 동기화를 수행할 필요가 있는 때를 알 게 하고, 또한 신호가 전송된 이후이고 새로운 신호가 검출되기 이전인 기간 동안 슬립 모드로 제 2 클록이 진입할 수 있게 하여, 전력을 절약한다. 바람직하게는 검출 수단은 제 1 클록 도메인으로부터의 입력 신호와 제 2 클록 도메인으로의 출력 신호 사이에 비교기, 예를 들어, 배타적 OR(XOR) 게이트를 포함한다. 이들 2개의 신호가 동등하지 않은 경우, 입력 신호가 변경되었고 아직 출력 신호로 전파되지 않은 상태이므로, 비교기는 입력 신호가 변경되었다고 시스템에 알리는 신호를 생성한다.
실시예의 일 세트에서, 제 2 클록의 체킹은 연속적으로, 예를 들어, 제 1 클록의 사이클마다 수행될 수 있다. 그러나, 실시예의 다른 세트에서 시스템은 제 2 클록의 체킹을 개시하는 수단을 포함한다. 이것은 체킹이 수행되도록 전송되는 특정의 신호일 수 있거나, 또는 시스템에서 다른 신호 또는 사이클에 링크될 수 있다. 예를 들어, 상술한 바와 같은 입력 신호의 변경에 의해 개시되거나, 또는 시스템이 스탠바이 또는 슬립 모드를 진입하거나 종료하는 것에 의해 체킹이 개시될 수 있다. 체킹이 연속적으로 수행되지 않고 개시되는 실시예는, 체킹이 필요한 경우에만 수행됨에 따라 시스템이 전력 소모를 감소시키는데 도움을 주므로 유용하다.
실시예의 일 세트에서 시스템은, 예를 들어, 동기화 프로세스에 영향을 주거나, 출력 신호에서 준안전성을 초래하는 것에 의해 발생되는 제 1 클록 도메인으로부터 제 2 클록 도메인으로의 입력 신호의 전송에 영향을 주는 것 없이 동기화 동안 임의의 시점에서 입력 신호가 변경될 수 있도록 한다. 이것은 체킹이 제 2 클록을 입력으로서 취하는 실시예의 세트에서, 예를 들어 상술한 바와 같이 입력 신호의 상태와 독립적으로 제 2 클록의 체킹이 수행되는 경우 달성될 수 있지만, 입력 신호가 체킹을 수행하는 수단을 바이패스한다는 사실로 인해 또한 달성될 수 있다. 실시예의 이 세트에서 체킹 수단은 제 1 클록에 의해 클록킹되고 그 입력이 제 2 도메인이므로, 시스템이 입력 신호를 전송하는데 안전한지를 알 수 있도록 "안전한" 동기화 신호를 단지 생성하고 있다. 따라서 이 동기화 주기 동안 변경될 수 있는 입력 신호의 상태와는 상관이 없다. 이것은 제 1 및 제 2 클록 도메인 간의 동기화를 수행하기 위해, 예를 들어, 비지 플래그의 사용을 통해, 제 1 클록 도메인으로부터 전송되는 데이터 신호 상에 프리즈(freeze)가 가해지는 통상적인 핸드쉐이킹 프로시듀어와 대조적이다. 이것은 명확하게 시간 및 그에 따른 시스템에 의해 소모되는 전력을 증대시킨다. 본 발명의 실시예는 이러한 제약을 제거하여 전력을 덜 소모하는 데이터 신호의 고속의 전송을 가능하게 한다는 것을 이해할 것이다.
실시예의 일 세트에서 시스템은 입력 신호를 저장하는 수단, 예를 들어, 저장 디바이스 또는 구성요소를 포함하며, 방법은 입력 신호를 저장하는 단계를 포함한다. 이것은 제 2 클록의 체킹이 수행되는 동안 입력 신호가 시스템에 저장될 수 있게 해 주고, 그로부터 그 입력 신호가 출력될 수 있다. 그러나, 입력 신호와 독립적으로 제 2 클록의 체킹을 수행하는 상술한 특징은 이러한 저장 수단을 제공할 필요가 없을 수 있음을 의미한다. 실시예의 일 세트에서 제 1 클록 도메인으로부터의 입력 신호와 제 2 클록 도메인으로의 출력 신호 사이에 직접적인 접속이 제공될 수 있다. 따라서 일단 제 2 클록의 체킹이 행해지면, 시스템은 제 1 클록 도메인으로부터 제 2 클록 도메인으로의 입력 신호를 단지 전송하도록 "개방(opened up)"될 수 있다.
제 1 클록 도메인으로부터 신호 입력을 저장하는 수단은 제 2 클록 사이클의 안전하지 않은 부분 동안 및/또는 동기화 프로세스 동안 신호를 저장할 수 있는 임의의 적절한 데이터 저장 구성요소, 구성 또는 디바이스를 포함하는 것에 의해, 사이클의 안전한 부분에 진입하는 경우 신호가 제 2 클록 도메인에 출력되도록 준비될 수 있다. 이것은 레지스터/플립플롭을 포함한다. 이러한 구성요소는, 예를 들어, 동기화 프로세스로부터 신호를 수신할 때까지 입력 신호를 저장할 수 있다. 저장 수단은 신호 입력으로부터 입력 신호를 수신할 수 있다. 즉, 저장 수단과 신호 입력은 별개의 구성요소를 구성할 수 있는데, 즉, 입력 신호를 수신하는 구성요소 및 입력 신호를 저장하는 구성요소가 그것이다. 그러나, 이 기능은 제 1 클록 도메인으로부터 입력된 신호를 수신하고 저장하는 단일의 구성요소에 의해 또한 수행될 수 있다.
제 2 클록 도메인으로의 출력은 단지 출력 라인 또는 와이어를 포함할 수 있다. 대안적으로 또는 추가적으로 출력은 제 2 클록이 다가올 천이로부터 떨어진 사이클의 부분에 있는지의 체킹을 수행하는 수단으로부터 신호를 수신하고 그 다음에 해당 신호를 제 2 클록 도메인에 출력하는 구성요소를 포함한다. 이것은 개별적인 구성요소일 수 있거나, 또는 시스템 내의 다른 수단의 일부와 동일한 구성요소를 포함할 수 있고, 예를 들어, 입력 신호를 수신하고 및/또는 저장하는 수단은 일단 제 2 클록 도메인으로 입력 신호를 전송하기에 안전하다는 신호를 수신하면 입력 신호를 또한 출력할 수 있다. 바람직하게는 출력은 제 1 클록에 의해 클록킹된다. 이것은 일단 제 2 클록의 만족스러운 체킹이 수행되면 제 1 클록 도메인으로부터의 입력 신호가 제 2 클록 도메인으로 신속하게 출력될 수 있게 한다.
시스템 내의 구성요소의 각각, 예를 들어, 수신 수단, 제 2 클록 도메인의 체킹을 수행하는 수단, 출력 수단은 상술한 바와 같이 논리 구성요소를 포함할 수 있다. 실시예의 일 세트에서 이들 구성요소에 대한 로직은 설계 컴파일러를 이용하여 합성된다. 바람직하게는 시스템은 실리콘 칩상의 집적 회로의 일부 또는 등가물으로서 제공된다.
이제 본 발명의 특정의 실시예가 첨부 도면을 참조하여 단지 예시로서 기술될 것이며,
도 1은 본 발명에 따른 논리 회로의 실시예를 도시하는 도면이고,
도 2는 도 1에 도시된 회로도와 연관된 타이밍도를 도시하는 도면이고,
도 3은 본 발명에 따른 상이한 논리 회로의 실시예를 도시하는 도면이고,
도 4는 도 3에 도시된 도면과 유사하되, 버스에 대해 사용되는 실시예를 도시하는 도면이다.
도 1은 본 발명에 따른 논리 회로의 실시예를 도시하는 도면이고,
도 2는 도 1에 도시된 회로도와 연관된 타이밍도를 도시하는 도면이고,
도 3은 본 발명에 따른 상이한 논리 회로의 실시예를 도시하는 도면이고,
도 4는 도 3에 도시된 도면과 유사하되, 버스에 대해 사용되는 실시예를 도시하는 도면이다.
도 1은 본 발명에 따른 실시예에 대응하는 개략적인 논리 회로도를 도시하는 도면이다. 회로(1)는 제 1 클록 도메인(4)으로부터의 입력 신호 sig _fast를 제 2 클록 도메인(8)에 출력 신호 sig _slow로서 전송하도록 구성된다. 제 1 클록의 주파수는 제 2 클록의 주파수보다 크며, 통상적인 주파수는 제 1 클록에 대해 50MHz이고 제 2 클록에 대해 32kHz이다.
회로(1)는 입력 신호 sig _fast 및 출력 신호 sig _slow를 그 입력으로서 취하는 비교기로서 작동하는 XOR 게이트(10)를 포함한다. XOR 게이트(10)로부터의 출력은 제 1 AND 게이트(12)에 공급된다. 제 1 AND 게이트(12)는 보다 낮은 주파수의 제 2 클록 도메인(8)으로부터의 클록 ck_slow을 그 입력으로서 또한 취한다. 제 2 AND 게이트(14)는 XOR 게이트(10)로부터의 출력 sig _ diff 및 직렬로 구성되는 2개의 D 타입 플립플롭(16, 16)으로부터의 출력 sync_safe을 그 입력으로서 취한다.
제 1 플립플롭(16)은 제 1 AND 게이트(12)로부터의 출력을 그 D 입력으로서 갖고 보다 높은 주파수의 제 1 클록 도메인(4)으로부터의 클록 ck_fast에 의해 클록킹된다. 제 1 플립플롭(16)으로부터의 Q 출력 safe_ax은 또한 고속 클록 ck_fast에 의해 클록킹되는 제 2 플립플롭(18)의 D 입력에 공급된다. 상술한 바와 같이, 제 2 플립플롭으로부터의 Q 출력 sync_safe은 제 2 AND 게이트(14)의 입력에 공급된다.
제 2 AND 게이트(14)의 출력은 멀티플렉서(20)의 셀렉터 입력에 공급된다. 멀티플렉서(20)로의 입력은 최종 플립플롭(22)으로부터의 입력 신호 sig _fast 및 출력 신호 sig _slow이다. 멀티플렉서(20)로부터의 출력은 고속 클록 ck_fast에 의해 또한 클록킹되는 추가적인 D 타입 플립플롭(22)에 공급된다. 최종 플립플롭(22)으로부터의 Q 출력은 제 2 클록 도메인(8)으로의 출력 sig _slow이다.
시스템의 동작을 도 1 뿐만 아니라 시스템을 통해 전달되는 1 비트 논리 신호의 시퀀스를 도시하는 도 2를 참조하여 기술할 것이다. 대표적인 시간 스케일(24)에 50ns의 세부분할이 되어 있다. 도 2에 도시된 바와 같이, 도시를 위해, 보다 높은 주파수의 제 1 클록 도메인(4)으로부터의 클록 ck_fast의 주파수는 18MHz로 취해지고, 보다 낮은 주파수의 제 2 클록 도메인(8)으로부터의 클록 ck_slow의 주파수는 1.5MHz로 취해진다. 앞에서 상세하게 기술한 바와 같이, 실제로 이들은 보다 이질적일 가능성이 있으나, 이러한 보다 비슷한 값은 도시의 편의를 위해 선택되었다.
먼저 시스템은 제 1 클록 도메인(4)으로부터의 입력 신호 sig _fast 및 제 2 클록 도메인(8)으로의 출력 신호 sig _slow가 모두 0인 상태이다. 이로 인해 XOR 게이트(10)로부터의 출력 sig _ diff이 0이고 그에 따라 제 2 AND 게이트(14)로부터의 출력이 0으로 되어, 멀티플렉서(20)가 0 입력, 즉, sig _slow를 최종 플립플롭(22)에 출력하게 한다. 따라서 제 2 클록 도메인(8)으로의 출력 sig _slow는 0을 유지한다.
500ns에서 입력 신호 sig _fast는 0으로부터 1로 변경된다. 이로 인해 XOR 게이트(10)로부터의 출력 sig _ diff은 동시에 1로 변경된다. 666.67ns에서, 저속 클록 ck_slow은 0으로부터 1로 변경된다. 이 시점 직후는, 신호를 전송하기에 안전한 그 사이클의 부분인데, 왜냐하면 원하지 않는 포지티브(0으로부터 1) 천이가 존재하기 전에 저속 클록 사이클의 적어도 절반이기 때문이다. 이로 인해 제 1 AND 게이트(12)로부터의 출력이 0으로부터 1로 변경되며, 이는 제 1 플립플롭(16)의 D 입력에 공급된다. 고속 클록 ck_fast이 0으로부터 1로 변경되는, 즉, ck_slow의 상승 에지에 후속하는 ck_fast의 첫 번째 상승 에지인 587.5ns에서, 제 1 플립플롭(16)은 D 입력을 Q 출력 safe_ax에 클록킹하도록 트리거된다. 이 신호 safe_ax는 750ns에서의 고속 클록 ck_fast의 다음의 상승 에지까지 제 2 플립플롭(18)의 D 입력에 공급되고 750ns에서 Q 출력 sync_safe으로 전송된다.
신호 sync_safe 및 sig _ diff가 1이면, 제 2 AND 게이트(14)로부터의 출력이 1로 되고 이에 따라 멀티플렉서(20)로부터의 출력이 0 입력으로부터 1 입력으로 변경되는데, 즉, 멀티플렉서(20)로부터의 출력은 신호 sig _fast로부터의 1이다. 이것은 812.5ns에서의 고속 클록 ck_fast의 다음의 상승 에지에서, 이 신호가 최종 플리플롭(22)의 Q 출력 상으로 클록킹되고 그에 따라 제 2 클록 도메인(8)에 sig_slow로서 출력되도록 최종 플리플롭(22)의 D 입력에 공급된다.
일단 제 2 클록 도메인(8)으로의 출력 sig _slow이 1로 변경되면, 해당 출력이 XOR 게이트(10)에도 공급되고, 이 XOR 게이트(10)는 그 출력 sig _ diff이 0으로 변경되도록 하여, sig _fast에서의 변경이 sig _slow로 전파되었고, 제 1 클록 도메인(4)으로부터의 입력 신호 sig _fast가 1에서 유지되고 있음을 나타낸다. 이것은 제 2 AND 게이트(14)로부터 0 신호가 출력되게 하여 멀티플렉서(20)의 0 입력이 최종 플립플롭(22)에 출력되게 한다. 그러나, 이것은 단지 제 2 클록 도메인(8)으로의 출력 sig _slow이므로, 입력 신호 sig _fast의 변경이 검출될 때까지 동일하게 유지되고, 동기화 체킹, 즉, 제 1 및 제 2 플립플롭(16, 18)은 제 2 클록이 입력 신호를 전송하기 위한 사이클의 안전한 기간에 있는지를 확인한다.
sig _ diff가 0으로 변경되는 것은 0 신호가 제 1 AND 게이트(12)와, 제 1 및 제 2 플립플롭(16, 18)을 통해 전송되도록 하여, 그 결과 sync_safe의 출력이 0이 된다. 이것은 0 신호가 제 2 AND 게이트(14)로부터 출력되게 하여 멀티플렉서(20)의 0 입력이 최종 플립플롭(22)에 계속해서 출력되게 하는데, 즉, 멀티플렉서(20)로부터 출력된 값은 변경되지 않는다. 이것은 또한 변경되지 않은 제 1 클록 도메인(4)으로부터의 입력 신호 sig _fast이므로, 제 2 클록 도메인(8)으로의 출력 sig_slow은 1에서 유지된다.
따라서 새로운 신호가 제 1 클록 도메인(4)으로부터 제 2 클록 도메인(8)으로 전송되는 시간은 (제 2 클록 도메인(8)의 1/2 사이클 + 제 1 클록 도메인(4)의 2개의 사이클)보다 적은, 즉, 도 2에 도시된 클록 도메인의 주파수를 갖는 458.33ns의 최대 전송 시간인 것을 알 수 있다. 그러나, 도 2에서 기술되고 도시된 바와 같은 신호의 특정의 시퀀스에 의해, 전송 시간은 실제로 휠씬 적어 312.5ns이다.
975ns에서 제 1 클록 도메인(4)으로부터의 입력 sig _fast는 1로부터 0으로 변경되고, 입력 신호 sig _fast가 출력 신호 sig _slow와 상이하므로, 이에 따라 XOR 게이트(10)로부터의 출력 sig _ diff이 0으로부터 1로 변경된다. 제 2 클록 도메인(8)은 여전히 그 사이클의 포지티브 부분에 있으므로, 즉, 그 값이 1이므로, 제 1 및 제 2 플립플롭(16, 18)을 통해 추가의 1 신호가 전파하고, 1의 sync_safe 신호를 생성하여 새로운 입력 신호 sig _fast가 최종 플립플롭(22)을 통해 제 2 클록 도메인(8)의 출력 sig _slow으로 전송되도록 한다. 그러나, 입력 sig _fast이 1로부터 0으로 변경된 직후에, 제 2 클록 도메인(8)은 1로부터 0으로 변경되는 것을 알 수 있다. 그러나, 이것이 제 1 클록 도메인(4)의 포지티브 에지에서 발생했으므로, 샘플링된 제 2 클록 도메인(8)의 값은 1이었고, 이 값이 제 1 및 제 2 플립플롭(16, 18)을 통해 전파되는 것이다. 원하는 않는 포지티브 천이 이전에 제 2 클록의 주기의 절반이 여전히 존재하고, 이는 필요한 동기화 체킹을 수행하고 입력 신호 sig _fast를 전송하는데 충분한 시간이므로, 입력 신호 sig _fast는 제 1 클록 도메인(4)으로부터 제 2 클록 도메인(8)으로 여전히 안전하게 전송될 수 있다. 이 예에서, 데이터의 전송은 입력 신호 sig _fast의 변경에 후속하는 단지 150ms 내에서 발생한다. 그러나, 제 2 클록 도메인(8)에서의 데이터 신호 sig _slow는 제 2 클록 도메인(8)에서의 다음의 포지티브 천이, 즉, 1333.33ns일 때까지 각종 다른 값을 업데이트하는 데에 이 클록 도메인에 의해 사용되지 않을 것이다.
도 3에서 개략적인 논리 회로도(101)는 본 발명에 따른 제 2 실시예를 도시한다. 도 1에 도시된 회로도에 의해 시스템의 중앙에, 제 1 플립플롭(116)의 Q 출력이 제 2 플립플롭(118)의 D 입력으로 전송되도록 직렬로 구성되는 2개의 플립플롭(116, 118)이 존재한다. 또한, 이들 2개의 플립플롭(116, 118)은 제 2 클록 도메인(108)이 포지티브 에지로부터 떨어진 사이클의 부분에 있고, 이에 따라 입력 신호 sig _fast가 제 1 클록 도메인(104)으로부터 안전하게 전송될 수 있는 것을 보장하도록 작용한다. 도 1 및 도 2의 시스템에 의해, 제 1 클록 도메인으로부터의 클록 신호 ck_fast의 주파수는 제 2 클록 도메인으로부터의 클록 신호 ck_slow의 주파수보다 훨씬 크다.
2개의 플립플롭(116, 118)은 제 1 및 제 2 클록 도메인(104, 108)의 동기화가 매우 신속하게 수행될 수 있도록 제 1 클록 도메인(104)으로부터의 클록 ck_fast를 이용하여 클록킹된다. 제 1 플립플롭(116)으로의 D 입력은 OR 게이트(111)의 출력이고, 그 OR 게이트(111)는 제 2 클록 도메인(108)으로부터의 클록 ck_slow를 그 입력으로서 갖고, 또한 제 2 클록 도메인(108)이 활성인지 여부를 표시하는 플래그 running_ck_slow를 가지며, 이러한 플래그는 먼저 NOT 게이트(110)를 통해 전달된다. 고속 클록 도메인(104)으로부터의 추가의 비동기 리셋 신호 arst_fast는 플립플롭(116, 118)의 Q 출력에 D 입력을 전송하기 위해 제 1 클록 도메인(104)으로부터의 고속 클록 ck_fast에 의한 클록킹을 무효화(override)하도록 플립플롭(116, 118)의 S(세트) 입력에 공급된다.
제 2 플립플롭(118)의 Q 출력 sync_safe은 제 1 클록 도메인(104)으로부터의 입력 신호 sig _fast를 그 D 입력으로서 갖는 래치(122)의 인에이블 입력에 공급된다. 이 래치(122)의 Q 출력은 제 2 클록 도메인(108)으로의 출력 sig _slow이다. 일단 회로(101)에 의해 동기화되면, 이 래치(122)는 제 1 클록 도메인(104)으로부터 제 2 클록 도메인(108)으로의 데이터 신호의 통상 전송을 위해 사용된다. 추가의 래치(123)는 제 2 플립플롭(118)의 Q 출력 sync_safe을 그 인에이블 입력으로서 또한 갖는다. 이 래치(123)는 D 입력으로 접지된 신호를 갖고 래치(123)의 S 입력으로 입력 reset_fast을 갖는다. Q 출력 reset_slow은 리셋 신호가 제 1 클록 도메인(104)으로부터 제 2 클록 도메인(108)으로 전송되도록 한다. 도 3에서, 래치(123)는 reset_fast 신호가 래치(123)의 S 입력에 인가되는 경우, 활성 하이, 즉, 1 신호가 Q 출력으로부터 reset_slow로 출력되는 구성으로 도시되어 있다. 이와 달리 래치(123)는 reset_fast 입력이 래치(123)의 R(리셋) 입력에 접속되는 활성 로우 모드에서 동작될 수 있다.
이제 도 3에 도시된 회로의 동작이 기술될 것이다. 제 2 클록 도메인(108)이 활성이 아니면, 신호 running_ck_slow는 0이 될 것이다. 제 2 클록 ck_slow이 실행 중이 아니므로, 해당 신호에 있어 준안전성을 제공할 수 있는 포지티브 천이의 가능성이 존재하지 않고, 그에 따라 제 2 클록 ck_slow이 실행 중이 아닌 한, 제 2 클록 도메인(108)으로 데이터를 전송하는 것은 항상 안전하다. running_ck_slow의 이 0 값은 NOT 게이트(110)에 의해 1 신호로 변경되고 이에 따라 1 신호가 OR 게이트(111)로부터 출력되게 된다. 따라서 1 신호는 제 1 플립플롭(116)의 D 입력으로 전송되며, 이 제 1 플립플롭(116)은 제 1 클록 도메인(104)의 클록 사이클 신호 ck_fast의 후속의 상승 에지 시에, 제 2 플립플롭(118)의 Q 출력을 통해 전송된다.
제 1 클록 도메인(104)이 리셋 위상(reset phase)이면, 신호 arst _fast가 플립플롭(116, 118)으로의 D 입력을 무효화하는 데에 사용될 수 있다. 이것은 이 리셋 기간 동안, 래치(122, 123)에 알려진 출력이 전송되도록 하여, 제 2 클록 도메인(108)에 sig _slow로서 출력될 수 있는 알려진 값을 제공한다. 이것이 제 2 클록 도메인(108)에서의 출력 신호 sig _slow의 동기화와 간섭하지 않도록, 제 1 클록 도메인(104)의 리셋 기간 이후에 2개의 플립플롭(116, 118)의 출력이 0으로 다시 세팅되어, 그에 따라 회로(101)의 통상 동작이 개시될 수 있을 때까지, 제 2 클록 ck_slow은 시작될 수 없다.
제 2 클록 도메인(108)이 활성이면, 신호 running_ck_slow는 1이 되어, 제 2 클록 ck_slow이 실행 중이고, 이에 따라 제 1 클록 도메인(104)으로부터 제 2 클록 도메인(108)으로 데이터 신호를 전송하기에 안전한 때를 결정하기 위해 포지티브 천이에 대해 모니터링할 필요가 있음을 나타낸다. running_ck_slow의 이 1 값은 NOT 게이트(110)에 의해 0으로 변경되고, 이에 따라 저속 클록 ck_slow은 OR 게이트(111)가 1 출력을 제공하도록 1이 될 필요가 있다. 즉, 제 2 클록 ck_slow은 제 1 클록 도메인(104)으로부터의 입력 신호 sig _fast가 안전하게 전송될 수 있도록 제 1 및 제 2 클록 도메인(104, 108)의 동기화가 발생할 수 있도록 하기 위해 다가올 포지티브 천이로부터 충분히 떨어져 있는 것을 보장하도록 그 신호의 포지티브 부분에 있을 필요가 있다. 따라서, 일단 저속 클록 ck_slow이 1로 변경되면, 이것은 플립플롭(116, 118)을 통해 전달될 수 있다.
제 2 클록 도메인이 활성인지 여부의 결과는 안전한 하나의 신호이고, 이 신호는 래치(122)의 인에이블 입력에 전송되어, 입력 신호 sig _fast가 제 1 클록 도메인(104)으로부터 곧바로 제 2 클록 도메인(108)에 sig _slow로서 출력되도록 한다. 동기화 프로세스로부터의 안전한 하나의 신호는 제 2 클록 도메인(108)이 그 클록 사이클의 안전한 기간에 있는 경우, 리셋 신호 reset_slow를 소거하도록 로우(low)의 0 신호가 추가의 래치된 플립플롭(123)을 통해 또한 전송되게 한다. 이것은 제 1 클록 도메인(104)으로부터 플립플롭(123)의 S 입력으로 리셋 신호 reset_fast가 수신되지 않는 한 유지될 것이다.
도 4는 매우 유사한 방식으로 동작하는, 도 3과 거의 동일한 회로(201)를 도시한다. 유일한 차이점은 도 3에서 출력 래치(122, 123)가 병렬인 복수의 출력 래치(222, 223)로 대체되었다는 점이다. 따라서 회로(201)는 버스와 함께 사용되도록 용이하게 적응될 수 있음이 이해될 것이다. 데이터 신호 sig _fast 또는 리셋 신호 reset_fast가 제 1 클록 도메인의 버스로부터 제 2 클록 도메인의 버스로 전송되는 경우, 이러한 전송이 각각의 출력 래치(222, 223)를 이용하여 병렬로 행해지고, 이들 래치 모두가 동일한 하나의 신호 sync_safe에 의해 제어된다는 점을 제외하고, 동작은 도 3에 대한 것과 동일하다.
당 분야에서 통상의 지식을 가진 자라면 상술한 실시예에 대한 다수의 변경 및 수정이 본 명세서에서 개시된 본 발명의 각종 측면의 범위 내에서 행해질 수 있음이 이해될 것이다. 예를 들어, 전송되는 신호를 제 2 클록 도메인에 출력하기 위해 플립플롭을 제공하는 것이 필요하지 않으며, 이것은 임의의 다른 데이터 저장 구성요소에 의해 수행될 수 있거나, 또는 입력 신호가 제 1 클록 도메인으로부터 제 2 클록 도메인으로 곧바로 전송되도록 하기 위한 회로를 단지 개방하는 것에 의해 수행될 수 있다.
Claims (30)
- 제 1 클록 도메인으로부터 제 2 클록 도메인으로 데이터 신호를 전송하는 시스템으로서, 상기 제 1 클록 도메인은 상기 제 2 클록 도메인의 제 2 클록의 주파수보다 큰 주파수를 갖는 제 1 클록을 포함하고,
상기 제 1 클록 도메인으로부터 입력 신호를 수신하는 신호 입력과,
상기 제 2 클록이 다가올 천이(forthcoming transition)로부터 떨어진 사이클의 부분에 있는지를 체킹하는 수단으로서, 상기 제 1 클록에 의해 클록킹되는 체킹 수단과,
상기 제 2 클록이 다가올 천이로부터 떨어진 사이클의 부분에 있다고 상기 체킹 수단이 판정하는 경우 상기 입력 신호를 상기 제 2 클록 도메인으로 전송하는 전송 수단을 포함하는
데이터 신호 전송 시스템.
- 제 1 항에 있어서,
상기 다가올 천이는 다가올 포지티브(positive) 천이인
데이터 신호 전송 시스템.
- 제 1 항 또는 제 2 항에 있어서,
상기 입력 신호는 상기 체킹 수단을 통해 상기 제 1 클록 도메인으로부터 상기 제 2 클록 도메인으로 전송되지 않는
데이터 신호 전송 시스템.
- 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
상기 입력 신호는 적어도 8, 16 또는 32 비트를 포함하는
데이터 신호 전송 시스템.
- 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
상기 제 2 클록의 체킹은 상기 제 2 클록이 사이클의 포지티브 부분에 있는지를 판정하는 것을 포함하는
데이터 신호 전송 시스템.
- 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
상기 제 1 클록의 주파수는 상기 제 2 클록의 주파수의 적어도 4배, 예를 들어, 상기 제 2 클록의 주파수의 적어도 10배, 예를 들어, 상기 제 2 클록의 주파수의 적어도 100배, 예를 들어, 상기 제 2 클록의 주파수의 적어도 1000배인
데이터 신호 전송 시스템.
- 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
상기 체킹은 상기 제 1 클록의 상승 에지에서 수행되는
데이터 신호 전송 시스템.
- 제 1 항 내지 제 7 항 중 어느 한 항에 있어서,
상기 제 2 클록이 활성(active)인지를 판정하는 판정 수단을 포함하는
데이터 신호 전송 시스템.
- 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
상기 체킹을 수행하는 수단은 플립플롭을 포함하는
데이터 신호 전송 시스템.
- 제 1 항 내지 제 9 항 중 어느 한 항에 있어서,
상기 체킹을 수행하는 수단은 직렬의 2개의 플립플롭을 포함하는
데이터 신호 전송 시스템.
- 제 1 항 내지 제 10 항 중 어느 한 항에 있어서,
상기 제 1 클록 도메인으로부터 새로운 입력 신호가 존재하는지를 검출하는 검출 수단을 포함하는
데이터 신호 전송 시스템.
- 제 11 항에 있어서,
상기 검출 수단은 상기 제 1 클록 도메인으로부터의 입력 신호와 상기 제 2 클록 도메인으로의 출력 신호 사이에 비교기를 포함하는
데이터 신호 전송 시스템.
- 제 1 항 내지 제 12 항 중 어느 한 항에 있어서,
상기 제 2 클록의 상기 체킹을 개시하는 개시 수단을 포함하는
데이터 신호 전송 시스템.
- 제 1 항 내지 제 13 항 중 어느 한 항에 있어서,
상기 입력 신호를 저장하는 저장 수단을 포함하는
데이터 신호 전송 시스템.
- 제 1 클록 도메인으로부터 제 2 클록 도메인으로 데이터 신호를 전송하는 시스템으로서, 상기 제 1 클록 도메인은 제 1 클록을 포함하고, 상기 제 2 클록 도메인은 제 2 클록을 포함하고,
상기 제 1 클록 도메인으로부터 입력 신호를 수신하는 신호 입력과,
상기 제 1 클록 또는 상기 제 2 클록 중 보다 느린 클록이 다가올 천이로부터 떨어진 사이클의 부분에 있는지를 체킹하는 수단으로서, 상기 제 1 클록 또는 상기 제 2 클록 중 보다 빠른 클록에 의해 클록킹되는 체킹 수단과,
상기 제 1 클록 또는 상기 제 2 클록 중 보다 느린 클록이 다가올 천이로부터 떨어진 사이클의 부분에 있다고 상기 체킹 수단이 판정하는 경우 상기 입력 신호를 상기 제 2 클록 도메인으로 전송하는 전송 수단을 포함하는
데이터 신호 전송 시스템.
- 제 1 클록 도메인으로부터 제 2 클록 도메인으로 데이터 신호를 전송하는 방법으로서, 상기 제 1 클록 도메인은 상기 제 2 클록 도메인의 제 2 클록의 주파수보다 큰 주파수를 갖는 제 1 클록을 포함하고,
상기 제 1 클록 도메인으로부터 입력 신호를 수신하는 단계와,
상기 제 1 클록에 의해 클록킹되는 체킹 수단을 이용하여 상기 제 2 클록이 다가올 천이로부터 떨어진 사이클의 부분에 있는지를 체킹하는 단계와,
상기 체킹 단계에서 상기 제 2 클록이 다가올 천이로부터 떨어진 사이클의 부분에 있다고 판정하는 경우 상기 입력 신호를 상기 제 2 클록 도메인으로 전송하는 단계를 포함하는
데이터 신호 전송 방법.
- 제 16 항에 있어서,
상기 다가올 천이는 다가올 포지티브 천이인
데이터 신호 전송 방법.
- 제 16 항 또는 제 17 항에 있어서,
상기 입력 신호는 체킹 수단을 통해 상기 제 1 클록 도메인으로부터 상기 제 2 클록 도메인으로 전송되지 않는
데이터 신호 전송 방법.
- 제 16 항 내지 제 18 항 중 어느 한 항에 있어서,
상기 입력 신호는 적어도 8, 16 또는 32 비트를 포함하는
데이터 신호 전송 방법.
- 제 16 항 내지 제 19 항 중 어느 한 항에 있어서,
상기 제 2 클록의 체킹은 상기 제 2 클록이 사이클의 포지티브 부분에 있는지를 판정하는 단계를 포함하는
데이터 신호 전송 방법.
- 제 16 항 내지 제 20 항 중 어느 한 항에 있어서,
상기 제 1 클록의 주파수는 상기 제 2 클록의 주파수의 적어도 4배, 예를 들어, 상기 제 2 클록의 주파수의 적어도 10배, 예를 들어, 상기 제 2 클록의 주파수의 적어도 100배, 예를 들어, 상기 제 2 클록의 주파수의 적어도 1000배인
데이터 신호 전송 방법.
- 제 16 항 내지 제 21 항 중 어느 한 항에 있어서,
상기 체킹은 상기 제 1 클록의 상승 에지에서 수행되는
데이터 신호 전송 방법.
- 제 16 항 내지 제 22 항 중 어느 한 항에 있어서,
상기 제 2 클록이 활성인지를 판정하는 단계를 포함하는
데이터 신호 전송 방법.
- 제 16 항 내지 제 23 항 중 어느 한 항에 있어서,
상기 체킹을 수행하는 수단은 플립플롭을 포함하는
데이터 신호 전송 방법.
- 제 16 항 내지 제 24 항 중 어느 한 항에 있어서,
상기 체킹을 수행하는 수단은 직렬의 2개의 플립플롭을 포함하는
데이터 신호 전송 방법.
- 제 16 항 내지 제 25 항 중 어느 한 항에 있어서,
상기 제 1 클록 도메인으로부터 새로운 입력 신호가 존재하는지를 검출하는 단계를 포함하는
데이터 신호 전송 방법.
- 제 26 항에 있어서,
상기 검출 단계를 상기 제 1 클록 도메인으로부터의 입력 신호와 상기 제 2 클록 도메인으로의 출력 신호 사이에 비교기를 포함하는
데이터 신호 전송 방법.
- 제 16 항 내지 제 27 항 중 어느 한 항에 있어서,
상기 제 2 클록의 상기 체킹을 개시하는 단계를 포함하는
데이터 신호 전송 방법.
- 제 16 항 내지 제 28 항 중 어느 한 항에 있어서,
상기 입력 신호를 저장하는 단계를 포함하는
데이터 신호 전송 방법.
- 제 1 클록 도메인으로부터 제 2 클록 도메인으로 데이터 신호를 전송하는 방법으로서, 상기 제 1 클록 도메인은 제 1 클록을 포함하고, 상기 제 2 클록 도메인은 제 2 클록을 포함하고,
상기 제 1 클록 도메인으로부터 입력 신호를 수신하는 단계와,
상기 제 1 클록 또는 상기 제 2 클록 중 보다 빠른 클록에 의해 클록킹되는 체킹 수단을 이용하여 상기 제 1 클록 또는 상기 제 2 클록 중 보다 느린 클록이 다가올 천이로부터 떨어진 사이클의 부분에 있는지를 체킹하는 단계와,
상기 체킹 단계에서 상기 제 1 클록 또는 상기 제 2 클록 중 보다 느린 클록이 다가올 천이로부터 떨어진 사이클의 부분에 있다고 판정하는 경우 상기 입력 신호를 상기 제 2 클록 도메인으로 전송하는 단계를 포함하는
데이터 신호 전송 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1211426.0 | 2012-06-27 | ||
GB1211426.0A GB2503474B (en) | 2012-06-27 | 2012-06-27 | Data transfer between clock domains |
PCT/GB2013/051607 WO2014001764A1 (en) | 2012-06-27 | 2013-06-20 | Data transfer between clock domains |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20150037898A true KR20150037898A (ko) | 2015-04-08 |
Family
ID=46704316
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR20157002115A KR20150037898A (ko) | 2012-06-27 | 2013-06-20 | 클록 도메인 간의 데이터 전송 |
Country Status (8)
Country | Link |
---|---|
US (1) | US10114407B2 (ko) |
EP (1) | EP2847666B1 (ko) |
JP (1) | JP6356669B2 (ko) |
KR (1) | KR20150037898A (ko) |
CN (1) | CN104412220B (ko) |
GB (1) | GB2503474B (ko) |
TW (1) | TWI585570B (ko) |
WO (1) | WO2014001764A1 (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110502066B (zh) * | 2019-08-15 | 2021-03-02 | Oppo广东移动通信有限公司 | 时钟切换装置、方法及电子设备 |
CN112036103B (zh) * | 2020-09-01 | 2024-03-08 | 深圳市傲立电子有限公司 | 一种从快时钟域跨慢时钟域处理多比特数据的装置及方法 |
US20240281021A1 (en) * | 2021-06-22 | 2024-08-22 | Google Llc | Independent Clocking for Configuration and Status Registers |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5987081A (en) * | 1997-06-27 | 1999-11-16 | Sun Microsystems, Inc. | Method and apparatus for a testable high frequency synchronizer |
JP3560793B2 (ja) * | 1997-11-27 | 2004-09-02 | 株式会社東芝 | データ転送方法 |
US6549593B1 (en) * | 1999-07-19 | 2003-04-15 | Thomson Licensing S.A. | Interface apparatus for interfacing data to a plurality of different clock domains |
AU2002326532A1 (en) * | 2001-08-03 | 2003-02-17 | Altera Corporation | Clock loss detection and switchover circuit |
US7085952B2 (en) * | 2001-09-14 | 2006-08-01 | Medtronic, Inc. | Method and apparatus for writing data between fast and slow clock domains |
US7161999B2 (en) * | 2002-01-02 | 2007-01-09 | Intel Corporation | Synchronizing data or signal transfer across clocked logic domains |
DE10255685B3 (de) * | 2002-11-28 | 2004-07-29 | Infineon Technologies Ag | Taktsynchronisationsschaltung |
WO2004100000A1 (en) * | 2003-05-09 | 2004-11-18 | Koninklijke Philips Electronics N.V. | Method for data signal transfer across different clock-domains |
US6949955B2 (en) * | 2003-11-24 | 2005-09-27 | Intel Corporation | Synchronizing signals between clock domains |
US7496779B2 (en) * | 2006-06-13 | 2009-02-24 | Via Technologies, Inc. | Dynamically synchronizing a processor clock with the leading edge of a bus clock |
JP4983349B2 (ja) * | 2007-04-04 | 2012-07-25 | セイコーエプソン株式会社 | クロック監視回路及びルビジウム原子発振器 |
WO2008129364A1 (en) * | 2007-04-23 | 2008-10-30 | Nokia Corporation | Transferring data between asynchronous clock domains |
US7733130B2 (en) * | 2008-03-06 | 2010-06-08 | Oracle America, Inc. | Skew tolerant communication between ratioed synchronous clocks |
TWI443521B (zh) * | 2010-03-26 | 2014-07-01 | Nuvoton Technology Corp | 匯流排介面、時脈控制裝置,以及時脈頻率控制方法 |
TWI417703B (zh) * | 2010-07-22 | 2013-12-01 | Genesys Logic Inc | 相容於通用序列匯流排協定之時脈同步方法 |
-
2012
- 2012-06-27 GB GB1211426.0A patent/GB2503474B/en active Active
-
2013
- 2013-06-18 TW TW102121536A patent/TWI585570B/zh not_active IP Right Cessation
- 2013-06-20 KR KR20157002115A patent/KR20150037898A/ko not_active Application Discontinuation
- 2013-06-20 CN CN201380034624.9A patent/CN104412220B/zh active Active
- 2013-06-20 WO PCT/GB2013/051607 patent/WO2014001764A1/en active Application Filing
- 2013-06-20 US US14/410,655 patent/US10114407B2/en active Active
- 2013-06-20 EP EP13735363.7A patent/EP2847666B1/en active Active
- 2013-06-20 JP JP2015519326A patent/JP6356669B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
EP2847666A1 (en) | 2015-03-18 |
CN104412220A (zh) | 2015-03-11 |
EP2847666B1 (en) | 2019-08-21 |
GB2503474A (en) | 2014-01-01 |
CN104412220B (zh) | 2018-08-28 |
US10114407B2 (en) | 2018-10-30 |
US20150177776A1 (en) | 2015-06-25 |
TWI585570B (zh) | 2017-06-01 |
JP6356669B2 (ja) | 2018-07-11 |
WO2014001764A1 (en) | 2014-01-03 |
GB2503474B (en) | 2016-06-29 |
JP2015527639A (ja) | 2015-09-17 |
TW201403289A (zh) | 2014-01-16 |
GB201211426D0 (en) | 2012-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8214668B2 (en) | Synchronizing circuit | |
US8375239B2 (en) | Clock control signal generation circuit, clock selector, and data processing device | |
US20090150706A1 (en) | Wrapper circuit for globally asynchronous locally synchronous system and method for operating the same | |
WO2003044996A2 (en) | Glitch free clock selection switch | |
JPH0748194B2 (ja) | 同期化バッファ回路 | |
US8831160B2 (en) | Method and apparatus for switching clock frequency in a system-in-package device | |
JP6192065B2 (ja) | クロック・ドメイン間のデータ転送 | |
JP2021528881A (ja) | カスケードクロックリングバスを完了させるためのシステム及び方法 | |
KR20150037898A (ko) | 클록 도메인 간의 데이터 전송 | |
CN107533533B (zh) | 集成电路之间的通信 | |
US10055193B2 (en) | Data transfer between clock domains | |
US6760392B1 (en) | Method and apparatus to provide fixed latency early response in a system with multiple clock domains with fixable clock ratios | |
JP3604637B2 (ja) | 非同期転送装置および非同期転送方法 | |
US20080240320A1 (en) | Transmit clock generator | |
JP3013817B2 (ja) | 非同期データ変換システム | |
Najvirt et al. | How to synchronize a pausible clock to a reference | |
JPH11298300A (ja) | 電子回路 | |
JPH0945096A (ja) | シフトレジスタ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |