KR20000029266A - 클럭 동기방법과 그 방법에 사용하기 위한 장치 - Google Patents

클럭 동기방법과 그 방법에 사용하기 위한 장치 Download PDF

Info

Publication number
KR20000029266A
KR20000029266A KR1019990046144A KR19990046144A KR20000029266A KR 20000029266 A KR20000029266 A KR 20000029266A KR 1019990046144 A KR1019990046144 A KR 1019990046144A KR 19990046144 A KR19990046144 A KR 19990046144A KR 20000029266 A KR20000029266 A KR 20000029266A
Authority
KR
South Korea
Prior art keywords
clock
data
pointer
output
input
Prior art date
Application number
KR1019990046144A
Other languages
English (en)
Other versions
KR100346675B1 (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 KR20000029266A publication Critical patent/KR20000029266A/ko
Application granted granted Critical
Publication of KR100346675B1 publication Critical patent/KR100346675B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling 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)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

본 발명은 동기에 요하는 기억용량을 줄여 간소화한 클럭동기회로에 관한 것이다.
본 발명의 클럭동기회로는, 입출력에 독립적으로 접속가능한 메모리, 기록 포인터 생성회로, 데이터 유지 검출회로 및 독출 포인터 생성회로를 구비하되, 메모리에 데이터의 비존재를 데이터 유지 검출회로에 의해 검출하면, 입출력 클럭중 어느 하나 또는 양자의 재초기화를 독출포인터 생성회로상에서 수행하고, 메모리에의 데이터의 기록 완료후, 입력클럭에 동기하여 입력된 데이터를, 기록포인터 생성회로 및 독출포인터 생성회로를 이용하여 각 포인터를 갱신하여 메모리에 데이터를 기록하거나 또는 메모리로부터 데이터를 독출함으로써, 출력클럭에 동기하여 출력한다.

Description

클럭 동기방법과 그 방법에 사용하기 위한 장치{METHOD OF SYNCHRONIZING CLOCK AND DEVICE FOR USE IN SUCH METHOD}
본 발명은 제 1 클럭에 동기하여 입력된 데이터를 제 2 클럭에 동기하여 출력하며 예를들어 컴퓨터 네트워크에 적절히 사용할 수 있는 클럭동기 방법 및 그 방법에 사용하기 위한 장치에 관한 것이다.
도 12 에 도시된 바와 같은, 종래의 일부 근거리 네트워크 (LAN) 에서는, 개인 컴퓨터 (311및 312) 는 패킷 조합/분리 장치 (321및 322), 인터페이스 (331및 332) 및 패킷 송/수신 장치 (341및 342) 를 통하여 LAN 의 네트워크 (35) 에 접속된다. LAN 에서, 개인 컴퓨터와 LAN의 네트워크 (35) 간에 데이터를 송수신하는데 패킷을 이용하고 있다.
일부 패킷 송신에서는, 입력패킷의 클럭신호와 출력패킷의 클럭신호간에 주파수 차이가 없지만, 입력패킷의 클럭신호 주파수와 출력패킷의 클럭신호 주파수간에는 변화가 있다. 또한, 일부의 경우에는, 상술한 바와 같이 차이가 있더라도, 입력패킷의 클럭신호 주파수와 출력패킷의 클럭신호 주파수간에 변화가 있다. 그와 같은 경우에, 입력된 패킷을 출력측으로 정확히 통과시키기 위해서는, 입력클럭에 동기하여 입력된 데이터를 출력클럭에 동기시켜 출력하는 것이 중요하다 (즉, 데이터 클럭이 입력클럭으로부터 출럭클럭으로 변환됨을 의미한다) 그러나, 패킷과 같은 시퀀스 데이터의 경우에는, 데이터의 손실과 중복으로 인해, 펄스의 상승 또는 하강의 검출에 의해서는 클럭의 변환이 불가능하다.
이 때문에, 도 13 에 도시된 바와 같이, LAN 의 패킷 조합/분리 장치 (321및 322) 에는 클럭을 변환하는데 사용하는 클럭동기회로를 제공한다. 도 13 에 도시된 바와 같이, 클럭동기회로는 메모리 (42), 기록 포인터 생성회로 (45), 데이터 종결검출회로 (46) 및 독출포인터 생성회로 (47) 를 포함한다. 클럭 변환의 시작시, 메모리 (42) 가 초기화됨과 동시에, 기록 포인터 생성회로 (45) 는 입력클럭에 응답하여 기록 포인터를 초기화시켜 초기화된 기록 포인터를 생성하는 한편, 독출 포인터 생성회로 (47) 가 출력클럭에 응답하여 독출 포인터를 초기화시켜 독출 포인터를 생성한다 (도 14 의 단계 SQ1 및 SQ2). 메모리 (42) 의 기록 입력에 패킷 데이터가 입력될 때까지, 생성된 기록 포인터는 갱신되지 않는다 (단계 SQ3). 패킷이 입력되면 (단계 SQ3), 메모리 (42) 는 입력클럭 신호에 응답하여 입력된 데이터 패킷 데이터 중에서 기록데이터 단위 (write date unit) 를 기록 포인터 생성수단 (45) 로부터 출력된 기록 포인터에 의해 지정된 기억위치에 기록한다 (단계 SP4). 그후, 기록 포인터가 갱신된다 (단계 SQ5).
매 기록 포인터가 갱신될 때 마다, 데이터 종결 검출회로 (46) 에 의해 모든 패킷 데이터의 기록이 종결하였는지 여부의 판정이 이루어진다 (단계 SQ6). 만약, 기록이 종결되지 않았으면, 패킷 데이터의 후속 기록 데이터 단위를 기록 포인터 생성회로 (45) 에 의해 갱신된 기록 포인터에 의해 지정된 메모리 (42) 의 기록 위치에 기록한다.
만약, 패킷 데이터의 기록의 종결에 관한 판정이 긍정이면, (단계 SQ6 의 "예" 의 경우에), 패킷 기록 종결지시신호가 생성되어 (단계 SQ7) 패킷 독출을 처리하기 위한 신호가 인가됨과 동시에, 패킷 기록 처리시에, 동작은 패킷 데이터의 입력을 대기하고 있는 상태인 단계 SQ3 로 되돌아가, 후속 패킷 데이터의 입력을 대기한다.
패킷 기록처리가 패킷 데이터를 대기하는 상태에 있을 때에 동시에, 대기 상태로 있었던 독출처리가 패킷 독출종결 지시신호에 응답하여 개시된다. (단계 SQ8 에서 "예" 의 경우). 이 패킷 독출 처리가 시작되는 경우, 패킷의 독출 데이터 단위가 초기화된 독출 포인터에 의해 지정된 메모리 (42) 의 독출 위치로부터 독출된다. 이 독출이 수행되는 때와 동시에, 독출 포인터가 후속 데이터 단위를 갖는 독출 포인터로 갱신된다 (단계 SQ10).
그러한 독출 포인터가 갱신될 때마다, 패킷 데이터의 독출이 종결되었는지의 여부의 판정을 수행된다 (단계 SQ11). 만약 종결되지 않았으면 (단계 SQ11 에서 "아니오" 의 경우), 패킷 데이터의 후속 독출 데이터가 갱신된 독출 포인터에 의해 지정된 메모리 (42) 의 독출위치로부터 독출된다.
만약, 패킷 데이터 독출의 종결에 대한 판정이 긍정이면 (단계 SQ11 의 "예" 의 경우), 동작은 패킷 독출의 시작을 대기하고 있는 단계 SQ8 로 되돌아가서, 패킷 기록의 종결을 알리는 신호가 수신될 때까지 후속 패킷의 패킷 기록종결 지시신호를 대기한다. 따라서, 상기 처리에 의해, 입력 클럭에 동기하여 입력된 데이터를 출력클럭에 동기하여 출력시키는 것이 가능하다 (즉, 데이터가 입출력될 때, 데이터의 클럭이 입력클럭에서 출력클럭으로 변환될 수 있다).
그러나, 상술한 바와 같이, 종래의 동기회로는 입력클럭에 동기하여 입력된 패킷 데이터를 출력클럭에 동기하여 출력하는 것이 가능하지만, 동기를 달성하는데 있어, 하나의 패킷을 구성하는 기록단위수를 가지는 입력클럭신호에 의해 전체 패킷을 메모리 (42) 에 기록한 후 그 패킷을 그 패킷을 구성하는 독출단위수를 가지는 출력클럭신호로 독출하는 하나의 기술만을 이용할 수 있다. 그러나, 이 기술은, 입력클럭에 동기하여 입력된 패킷 데이터를 출력클럭에 동기하여 출력시키는데, 한 패킷분의 기억용량이 불가피하게 필요하므로, 일시적인 기억에 의해 야기되는 송수신의 지연을 유발한다는, 단점이 있다. 더욱이, 반도체 칩상에의 집적공정시에, 칩면적의 주요부분이 동기회로에 의해 점유되는 단점이 있다.
이상의 관점에서, 본 발명의 목적은, 입력클럭에 동기하여 입력된 데이터를 출력클럭에 동기하여 출력시키는데 요하는 기억용량의 삭감을 가능케 하여, 동기장치의 간소화, 소형화 및 저렴화를 도모할 수 있는, 클럭동기방법 및 그 방법에 사용하기 위한 장치에 관한 것이다.
본 발명의 제 1 태양에 따르면,
제 1 클럭에서 동작하는 제 1 회로로부터 그 입출력에 독립적으로 접속가능한 기억수단을 통하여 제 2 클럭에서 동작하는 제 2 회로로 데이터를 전송하기 위한 클럭동기방법으로서,
기억수단에 의해 제공된 데이터를 기억하는 단계;
상기 기억수단에 기억된 데이터가 유효 데이터인지를 검출하는 단계;
그 판정이 긍정이면 클럭에 응답하여 상기 기억수단의 액세스 포인터를 갱신하는 단계;
그 판정이 부정이면 클럭에 응답하여 상기 기억수단의 액세스 포인터를 재 초기화하는 단계; 및
상기 액세스 포인터를 이용하여 상기 기억수단에 접속함으로써, 제 1 클럭에 동기하여 입력된 데이터를 제 2 클럭에 동기하여 출력하는 단계를 포함하는 클럭동기방법을 제공한다.
위에서, 바람직한 모드는, 제 1 클럭의 주파수가 제 2 클럭의 주파수와 다른 것이다.
또한, 바람직한 모드는, 기억수단의 기억용량 (N) 의 폭이 출력클럭이 입력클럭보다 더 빠른 경우에 유도된 하기 식 (1) 로 주어지는 기억용량의 폭과, 입력클럭이 출력클럭보다 더 빠른 경우에 유도된 하기 식 (2) 로 주어지는 기억용량의 폭과의 합인 것이다.
N < n+1
n ≤N
여기서, n = |A-B|×L/max(A,B), A 는 제 1 클럭의 주파수, B 는 제 2 클럭의 주파수, L은 최대 패킷길이이고, max(A,B) 는 A≥B 인 경우 max(A,B)=A, A<B 인 경우 max(A,B)=B 이며, N 은 임의의 자연수이다.
또한, 바람직한 모드는 재초기화가 제 2 회로의 액세스 포인터에 의해서만 수행되는 것이다.
또한, 바람직한 모드는 재초기화가 제 1 회로의 액세스 포인터에 의해서만 수행되는 것이다.
또, 바람직한 모드는 재초기화가 제 1 및 제 2 회로 양자의 액세스 포인터에 의해 수행되는 것이다.
본 발명의 제 2 태양에 따르면,
제 1 클럭에서 동작하는 제 1 회로로부터 그 입출력에 독립적으로 접속가능한 기억수단을 통하여 제 2 클럭에서 동작하는 제 2 회로로 데이터를 전송하기 위한 클럭동기장치로서,
입출력에 독립적으로 접속가능한 기억수단;
상기 기억수단에 기억된 데이터가 유효 데이터인지를 검출하는 검출수단;
상기 검출수단이 긍정 판정을 나타내는 경우에는 상기 클럭에 응답하여 상기 기억수단의 액세스 포인터를 갱신하고, 상기 검출수단이 부정 판정을 나타내는 경우에는 상기 클럭에 응답하여 상기 기억수단의 액세스 포인터를 재초기화하는 액세스 포인터 생성수단; 및
상기 액세스 포인터 생성수단으로부터 출력된 액세스 포인터를 이용하여 상기 기억수단에 접속함으로써, 제 1 클럭에 동기하여 입력된 데이터를 제 2 클럭에 동기하여 출력하는 수단을 구비하는 클럭동기장치를 제공한다.
앞에서, 제 1 클럭의 주파수는 제 2 클럭의 주파수와 다른 것이 바람직하다.
또, 기억수단의 기억용량 (N) 의 폭은 출력클럭이 입력클럭보다 더 빠른 경우에 유도된 하기 식 (3) 로 주어지는 기억용량의 폭과, 입력클럭이 출력클럭보다 더 빠른 경우에 유도된 하기 식 (4) 로 주어지는 기억용량의 폭과의 합인 것이 바람직하다.
N < n+1
n ≤N
여기서, n = |A-B|×L/max(A,B), A 는 제 1 클럭의 주파수, B 는 제 2 클럭의 주파수, L은 최대 패킷길이이고, max(A,B) 는 A≥B 인 경우 max(A,B)=A, A<B 인 경우 max(A,B)=B 이며, N 은 임의의 자연수이다.
또한, 액세스 포인터 생성수단을 이용한 액세스 포인터의 재초기화는 제 2 회로의 액세스 포인터에 의해서만 수행하는 것이 바람직하다.
또, 액세스 포인터 생성수단을 이용한 액세스 포인터의 재초기화는 제 1 회로의 액세스 포인터에 의해서만 수행하는 것이 바람직하다.
또, 액세스 포인터 생성수단을 이용한 액세스 포인터의 재초기화는 제 1 및 제 2 회로 양자의 액세스 포인터에 의해서 수행하는 것이 바람직하다.
이하, 본 발명의 상기 및 다른 목적들, 이점들 및 특징들을 첨부도면을 참조한 하기 설명에 의해 좀더 자세히 이해하기로 한다.
도 1 은 본 발명의 제 1 실시예에 따른 클럭동기 회로의 전기적 구성을 나타낸 블럭도.
도 2 는 클럭동기회로의 동작을 나타낸 흐름도.
도 3 은 클럭동기회로를 구성하는 메모리에 기록된 데이터 스트링의 포멧을 개략적으로 나타낸 블럭도.
도 4 는 입력 클럭의 주파수가 출력클럭의 주파수보다 더 높은 주파수에서 동작하는 클럭동기회로의 동작을 설명하기 위한 타이밍 챠트.
도 5 는 출력클럭의 주파수가 입력클럭의 주파수 보다 더 높은 주파수에서 동작하는 클럭동기회로의 동작을 설명하기 위하여, 메모리의 기억내용을 시계열상에 전개한 도면.
도 6 은 출력클럭의 주파수가 입력클럭의 주파수 보다 더 높은 주파수에서 동작하는 클럭동기회로의 동작을 설명하기 위한 타이밍 챠트.
도 7 은 출력클럭의 주파수가 입력클럭의 주파수 보다 더 높은 주파수에서 동작하는 클럭동기회로의 동작을 설명하기 위하여, 메모리의 기억내용을 시계열상에 전개한 도면.
도 8 은 본 발명의 제 2 실시예에 따른 클럭동기회로의 구성을 대략적으로 나타낸 블럭도.
도 9 는 클럭동기회로의 동작과정을 나타낸 설명도.
도 10 은 본 발명의 제 3 실시예에 따른 클럭동기회로의 구성을 개략적으로 나타낸 블럭도.
도 11 은 클럭동기회로의 동작과정을 나타낸 설명도.
도 12 는 근거리(local area) 네트워크를 나타낸 블럭도.
도 13 은 종래의 클럭동기회로를 나타낸 블럭도.
도 14 는 종래의 클럭동기회로의 동작순서를 나타낸 설명도.
※ 도면의 주요부분에 대한 부호의 설명
12 : 메모리 14 : 입력클럭
15 : 기록 포인터 생성회로 16 : 데이터 유지 검출회로
17 : 독출 포인터 생성회로 18 : 출력클럭
331및 332: 인터페이스
이하, 본 발명을 실시하는 최선의 모드를, 첨부도면을 참조한 여러가지 실시예를 통하여, 좀더 자세히 설명하기로 한다.
제 1 실시예
도 1 은 본 발명에 따른 클럭동기회로의 전기적 구성을 나타낸 블럭도이다. 도 2 는 클럭동기회로의 동작을 나타낸 흐름도이다. 도 3 은 클럭동기회로를 구성하는 메모리에 기록된 데이터 스트링의 포멧을 개략적으로 나타낸 도면이다. 도 4 는 입력클럭의 주파수가 출력클럭의 주파수보다 더 높은 주파수에서 동작하는 클럭동기회로의 동작을 설명하기 위한 타이밍 챠트이다. 도 5 는 출력클럭의 주파수가 입력클럭의 주파수보다 더 높은 주파수에서 동작하는 클럭동기회로의 동작을 설명하기 위하여 메모리의 기억내용을 시계열로 전개한 도면이다. 도 6 은 출력클럭의 주파수가 입력클럭의 주파수보다 더 높은 주파수에서 동작하는 클럭동기회로의 동작을 설명하기 위한 타이밍 챠트이다. 도 7 은 입력클럭의 주파수가 출력클럭의 주파수보다 더 높은 주파수에서 동작하는 클럭동기회로의 동작을 설명하기 위하여 메모리의 기억내용을 시계열로 전개한 도면이다.
이 실시예의 클럭동기회로는, 근거리 네트워크의 패킷 조합/분리 장치에 결합되는 패킷 데이터를 출력클럭에 동기하여 출력할 수 있는 기능을 가진 회로로서 (도 12 참조), 도 1 에 도시된 바와 같이, 메모리 (12), 기록 포인터 생성회로 (15), 데이터 유지 검출회로 (16) 및 독출 포인터 생성회로 (17) 로 구성된다.
또, 이 실시예에서는, 상기 클럭동기회로가 내장된 근거리 네트워크의 패킷 조합/분리 장치를 패킷 송수신 장치에 접속하기 위하여, 인터페이스 (331및 332) (도 12) 로서, IEEE 802.3u 에 따라 정의된 MII 인터페이스를 이용한다.
메모리 (12) 는 도 3 에 나타낸 데이터 스트링의 포멧으로 독립적으로 기록 및 독출될 수 있도록 구성되며, 특히 플립플롭회로로 구성된다.
메모리 (12) 의 기억용량을 나타내는 스트링 수 "N"은 입력클럭이 출력클럭보다 빠른 경우에 하기 식 (5) 으로 주어지는 기억용량과 출력클럭이 입력클럭보다 빠른 경우에 하기 (6) 으로 주어지는 기억용량과의 합이다.
N < n+1
n ≤N
여기서, 입력클럭의 주파수는 A (Hz) 이고, 출력클럭의 주파수는 B(Hz) 이며, 최대 패킷길이는 L (클럭/패킷의 수) 이고, 식 (5) 및 (6) 에서, n = |A-B|×L/max(A,B) 이며, 이때 max(A,B) 는 A≥B 인 경우 max(A,B)=A, A<B 인 경우 max(A,B)=B 이며, N 은 임의의 자연수이다.
식 (5) 및 (6) 은 패킷 당 입력클럭에 동기하는 입력 데이터가 출력클럭에 동기하여 출력되는 경우 패킷의 입출력간에 이루어지는 최대 위상차를 나타낸다.
도 3 에 나타낸 바와 같이, 스트링 수 "N" 을 갖는 각 스트링의 데이터는 TXD 필드 (4비트), TXEN 필드 (1비트) 및 TXER 필드 (1비트) 를 포함한다. 따라서, 도 3 에서는, 각 필드뒤에 1 내지 N 을 포함하는 수 또는 부호가 할당된다.
이 실시예에서는, MII 인터페이스가 사용되며 요구되는 스트링수는 다음과 같이 구할 수 있다.
MII 인터페이스상의 패킷은 프리엠블, 시작 프레임 경계표시자 (SFD) 및 데이터 프레임으로 구성된다. 프리엠블은 7옥테트를 포함하고, SFD 는 1옥테트를 포함하며, 데이터 프레임의 최대 길이는 1518 옥테트이다. 그러므로, 이 IEEE802.3u 에서 정의된 MII 인터페이스에서는, 한 패킷의 최대 길이가 1526 옥테트이다. 따라서, MII 인터페이스에서 한 패킷은 1526 옥테트, 즉, 3052 클럭을 포함한다. 이 MII 인터페이스의 클럭 주파수가 25MHz 이면, 클럭동기회로의 입출력부에서 ±100 ppm (1ppm 은 1/10,000임) 의 변화가 가능하므로, 고주파수를 갖는 입력클럭 (14 또는 18) 의 주파수 A 또는 B 는 입력클럭 (14) 과 출력클럭 (18) 간의 주파수차이가 가장 넓게 되는 경우에 25.0025MHz 이나, 저주파수를 갖는 입력클럭 (14) 과 출력클럭 (18) 의 주파수 A 및 B 는 입력클럭 (14) 과 출력클럭 (18) 간의 주파수차이가 가장 넓게 되는 경우에 24.9975이다.
이들 주파수 A 및 B, 와 패킷당 클럭수 3250 를 식 (5) 에 대입하면, N 이 구해지며, 그 결과는 N<2×0.605+1 이고, 메모리 (12) 에 요하는 스트링수는 3이다.
다음으로, 클럭 동기회로를 구성하는 기록 포인터 생성회로 (15) 의 동작을 설명한다.
기록포인터 생성회로 (15) 는 클럭동기회로 (10) 의 동작이 시작될 때에 기록 포인터를 초기함과 동시에, 기록 데이터 단위를 메모리에 기록하도록 구성된다. 매 기록 데이터 단위가 메모리에 기록될 때마다, 기록 포인터 생성회로 (15) 도 입력클럭 (14) 에 응답하여 입력된 패킷의 후속 기억 데이터 단위를 메모리에 기록하기 위하여 기록 포인터를 갱신하도록 구성된다. 또, 기록 포인터 생성회로 (15) 는 데이터 스트링이 기록된 메모리 (12) 내의 데이터 기억위치를 나타내는 기록 포인터 (19) 를 독출 포인터 생성회로 (17) 에 제공한다.
데이터 유지 검출회로 (16) 는 메모리 (12) 에 기억된 데이터 스트링내에 유효 데이터가 존재하는지의 여부를 검출하는데 사용한다. 만약 존재하면, 데이터 유지 검출회로 (16) 는 독출 포인터 갱신신호를 독출포인터 생성회로 (17) 로 출력한다. 만약 존재하지 않으면, 데이터 유지 검출회로 (16) 는 독출 포인터를 재초기화시키는 지시신호 (이하, 독출 포인트 재초기화 지시신호라 함) 를 독출 포인터 생성회로 (17) 로 출력한다. 유효 데이터는 도 3 에 나타낸 데이터 스트링 중에서 TXEN 필드 및 TXER 필드에 의해 표시된다.
독출 포인터 생성회로 (17) 는 클럭동기회로 (10) 의 동작이 시작될 때에 독출 포인터를 초기화함과 동시에, 데이터 유지 검출회로 (16) 로부터 포인터 갱신신호를 수신하도록 구성된다. 독출 데이터 단위가 메모리 (12) 로부터 독출될 때마다, 회로 (17) 는 출력클럭 (18) 에 응답하여 메모리 (12) 로부터 메모리 (12) 에 기억된 패킷들중에서 후속 기억데이터 단위를 독출하기 위하여 독출 포인터를 갱신한다. 이 회로 (17) 는, 데이터 유지 검출회로 (16) 로부터 독출 포인터 재설정 지시신호를 수신하고 출력클럭 직전의 입력클럭을 기록하는데 사용된 기록 포인터 (19) 가 메모리 (12) 로부터의 독출 데이터 단위를 기록 포인터 생성회로 (15) 로부터 독출할 때, 독출 포인터가 수신된 기록 포인터로 전환 (또는 변화) 하도록 재초기화한다.
기록 포인터 생성회로 (15) 및 독출 포인터 생성회로 (17) 는 독립적으로 동작한다. 기록 포인터 생성회로 (15) 와 독출 포인터 생성회로 (17) 의 초기화는, 기록 포인터 생성회로 (15) 로 부터 출력된 기록 포인터가 메모리 (12) 내의 데이터 기록위치들중의 어느 한 위치를 지시하는 경우에 독출 포인터 생성회로 (17) 로부터 출력된 포인터가 그 기록포인터가 지시하는 메모리 (12) 내의 데이터 기록 위치들로부터 정방향 또는 역순방향으로 등거리를 지시함을 의미한다.
이 실시예에서는, 메모리 (12) 가 링 버퍼로서 이용되고 입출력 클럭의 주파수가 정규분포를 가지면, 입력클럭 (14) 가 출력클럭 (18) 보다 빠를 확률은 50% 이기 때문에, 기록 포인터 (19) 로부터 정방향 또는 역순방향으로 등거리 및 가장 이격된 거리에 데이터 기록위치를 지시함으로써, 기록 포인트 (17) 를 초기화한다. 좀더 자세히 설명하면, 기록 포인터 (19) 가 초기 데이터 기록위치 1 를 지시하는 경우에, 독출 포인터의 초기 데이터 기억위치 "m" 는 n/2 +1 이며 기록 포인터 (19) 로부터 정방향 또는 역순방향으로 등거리에 위치된다.
따라서, 독출 포인터 생성회로 (17) 의 재초기화는, 독출 포인터 재초기화 지시신호가 데이터 유지 검출회로 (16) 로부터 수신되고 기록 포인터 (19) 가 메모리 (12) 로부터 독출데이터 다위를 독출하는 출력클럭의 직전의 입력클럭에서 기록하는데 사용된 기록포인터 생성회로 (15) 로부터 수신하는 경우에 독출포인터가 수신된 기록 포인터로 설정됨을 의미한다.
다음으로, 이 실시예의 동작을 설명한다.
클럭동기회로 (10) 의 동작이 시작되는 경우, 기록 포인터 생성회로 (15) 및 독출 포인터 생성회로 (17) 뿐만아니라, 메모리 (12) 가 초기화된다 (도 2 의 단계 SP1 및 SP2). 이 초기화에 의해, 기록 포인터 (19) 는 초기 데이터 기억위치 1 을 지시하고 독출 포인터는 초기 데이터 기억위치 "m" 을 지시한다 (여기서 m = n/2+1).
기록 데이터 단위 [TXD (4비트), TXEN (1비트), TXER (1비트)] 가 기록 포인터 생성회로 (15) 로부터 출력된 기록포인터가 지시하는 데이터 기억위치에 기록되며 (단계 SP3), 그 기록후, 기록 포인터가 갱신된다 (단계 SP4).
독출 처리가 기록처리와 독립적으로 병렬로 수행된다. 이 독출처리는 초기화된 독출 포인터가 지시하는 데이터 기억위치로부터 시작된다 (단계 SP5).
유효 데이터가 독출 데이터 스트링에 존재하는지의 여부에 대한 판정이 데이터 유지 검출회로 (16) 에 의해 이루어진다 (단계 SP6). 독출이 시작될 때, 메모리의 내용이 소거되며 독출 데이터 스트링이 예를들면, 모든 데이터가 0으로 설정된, 데이터 스트링으로 출력된다.
메모리가 아직 유효 데이터를 갖고 있지 않기 때문에, 데이터 유지 검출회로 (16) 는 유효 데이터가 없다고 판정하고 (단계 SP6, 부정판정), 회로 (16) 는 독출 포인터 재초기화 지시신호를 출력하고 독출 포인터는 초기화된다 (재설정된다) (단계 SP7). 그 재초기화에 뒤이은 독출처리는, 단계 SP5 로 되돌아 재초기화된 독출 포인터 (후속 클럭직전에 존재한 클럭에 따라 기록된 기억데이터의 위치로 재초기화된 포인터) 에 의해 지시된 메모리 (12) 내의 데이터 기억위치로부터 발생한다.
이하, 메모리 (12) 의 스트링수가 3인 이 실시예에 나타낸 독출 포인터의 재초기화를, 도 4 내지 7 을 참조하여 설명한다.
먼저, 출력클럭의 주파수가 입력클럭의 주파수보다 더 빠른 경우의 재초기화에 대해, 도 4 및 도 5 를 참조하여 설명한다.
도 4 에서, 영문 소문자 "a" 내지 "m" 은 입력클럭의 상승 (기록 데이터 스트링에 대한 타이밍) 을 나타내며, 번호 "1" 내지 "15" 는 출력클럭의 상승 (독출 데이터 스트링에 대한 타이밍) 을 나타낸다.
도 5 는 메모리 (12) 의 기록 및 독출간의 관계를 시계열로 전개한 도면이다. 도 5 의 세로방향 최좌측열에는 3개의 스트링의 용량을 갖는 메모리 (12) 의 제 1 스트링 (1), 제 2 스트링 (2) 및 제 3 스트링이 도시되어 있다. 도 5 는 도 4 에 나타낸 타이밍의 일부 관계만을 나타낸 것이다. 세로방향 최좌측열의 우측으로부터 순차로, 제 1, 제 2 및 제 3 열 등으로 차례로 위치되어 있다. 각 세로방향 열은 독출 타이밍과 기록타이밍을 교대로 나타낸다. 각 세로열에서 영문 소문자는 도 4 에 나타낸 기록타이밍을 나타내며 아라비아 숫자는 도 4 에 나타낸 독출타이밍을 나타낸다. 또, 밑줄친 영문 소문자는 기록 타이밍을 나타내며, 동시에, 유효데이터가 기록타이밍에서 기록되는 것을 나타내지만, 밑줄치지 않은 영문 소문자는 기록타이밍을 나타내며 유효데이터가 기록타이밍에서 기록되지 않음을 나타낸다.
도 5 에서, 제 1 세로열은 메모리 (12) 내의 제3 스트링을 독출하는 독출타이밍 "3" 을 나타낸다. 도 5 의 독출타이밍 "3" 직전의 기록타이밍은 도 4 에 나타낸 기록타이밍 "b" 에 대응하며, 메모리의 제1 스트링 (1) 에 대해 기록타이밍 "b" 에서 기록이 이루어진다. 메모리 (12) 의 제1 스트링 (1) 을 나타내는 기록 포인터 (19) 가 기록포인터 생성회로 (15) 로부터 독출되어, 독출포인터 생성회로 (17) 에 제공된다.
도 4 의 타이밍 챠트로부터 알수 있는 바와 같이, 이 타이밍에서, 메모리 (12) 는 유효 데이터를 갖고 있지 않으며, 독출 포인터 재초기화 지시신호가 데이터 유지 검출회로 (16) 로부터 발생되어 독출포인터 생성회로 (17) 에 제공되며, 여기서 독출포인터가 기록포인터 (19) 로 전환 (변화) 된다. 기록 포인터의 변화는 이 실시예에 나타낸 재초기화를 나타낸다. 제 1 세로열에, 이 재초기화된 독출 포인터는 프레임에 나타낸 독출타이밍 "3" 의 아래에 숫자 (1) 로서 표시되며, 메모리 (12) 내의 제3 스트링이 할당된다.
제 2 세로열은 기록타이밍 "c" 를 나타낸다. 제 3 세로열은 독출타이밍 "4" 을 나타낸다. 독출타이밍 "4" 의 독출포인터는 제1 세로열에 기술되어 있는 재초기화된 독출 포인터 1 이다. 이 독출포인터 1 에 의해 메모리 (12) 내의 제1 스트링 (1) 의 독출을 수행한 후, 데이터 유지 검출회로 (16) 에 의해 유효 데이터의 존재를 판정한다. 도 4 의 타이밍 챠트에 나타낸 바와 같이, 유효 데이터가 존재하지 않으면, 제 1 세로열에 기술되어 있는 것과 동일한 재초기화를 수행한다. 그 결과, 제 3 세로열에 나타낸 바와 같이, 독출타이밍은 "4"로 표시되며, 이 재초기화된 독출 포인터는 그 독출타이밍 "4" 의 아래에 (2) 로 표시되어 있다.
제 4 및 제 5 열에서, 제 2 및 제 3 열의 동작과 동일한 동작을 수행한다. 이 결과들이 대응하는 세로열에 표시되어 있다.
제 6 및 제 7 세로열에서, 다음의 차이점을 제외하고는, 이전의 세로열에서의 동작과 동일한 동작을 수행한다. 그 차이점은, 제 7 세로열에서의 유효 데이터가 기록타이밍 "e" 에서 존재하는 것으로 판정하는 경우, 데이터 스트링 (유효 데이터) "e" 이 메모리내의 제1 스트링 (1) 에 기록되기 때문에, 독출 포인터가 재초기화되지 않고 +1 만큼 갱신된다. 그러므로, 제 7 세로열에 나타낸 독출타이밍 "6" 의 아래에 독출포인터의 갱신값 (1) 이 표시되어 있다.
이후 제 20 열까지 각 독출타이밍에 대한 유효 데이터의 존재에 관한 판정이 긍정이기 때문에, 제 6 및 제 7 세로열에서 설명한 동작과 동일한 동작이 단순히 반복되므로, 그 설명은 생략한다.
제 21 세로열에 나타낸 독출타이밍에서는, 도 5 에 나타낸 바와 같이, 메모리 (12) 내에 유효 데이터가 존재하지 않기 때문에, 상기 설명으로부터 알수 있는 바와 같이, 재초기화가 발생하여, 그 독출포인터 직전의 타이밍에서 독출 포인터가 기록포인터 (2) 를 나타내게 된다. 이 독출 포인터는 제 21 열의 독출 타이밍 "14" 아래에 숫자 (2) 로 표시되어 있다.
다음으로, 입력클럭의 주파수가 출력클럭의 주파수보다 더 높은 경우의 재초기화에 대해 설명한다.
도 6 및 도 7 은 타이밍 챠트로 나타낸 메모리 (12) 의 기록 및 독출동작간의 관계를 시계열로 전개한 도면으로, 도 4 및 도 5 에 대응한다.
하나 이상의 재초기화 출력클럭에 뒤이은 입력클럭에 응답하여 수행된 기록 처리에서, 메모리 (12) 에 패킷의 제1 데이터 스트링이 기록되고 메모리 (12) 에 유효 데이터가 존재하기 때문에, 데이터 유지 검출회로 (16) 는 유효 데이터가 있다고 판정하고 독출포인터 갱신신호를 출력한다 (단계 SP6 에서 "예" 의 경우). 그 데이터 유지 검출회로 (16) 로부터 출력된 독출포인터 갱신신호에 응답하여, 독출포인터에 +1 만큼 부가하여 독출 포인터를 갱신한다 (단계 SP8). 또한, 독출 포인터 재초기화 신호의 반전신호를 이 독출포인터 갱신신호로 이용할 수도 있다.
이러한 기록포인터와 독출포인터의 갱신을 연속으로 수행한다 (단계 SP4 및 SP8)
기록포인터의 순차적인 갱신에 의해, 그 갱신된 기록포인터가 지시하는 데이터의 기록위치에, 패킷을 구성하는 각 데이터 스트링이 순차로 기록된다.
또한, 독출포인터의 순차적인 갱신에 의해, 모든 데이터가 0으로 설정된 스트링이 메모리 (12) 로부터 순차 출력되며, 최종적으로 독출포인터의 초기값 1 을 독출포인터가 지시한다. 기록 포인터에 의해 "기록 포인터의 초기값 1 이 지시된" 갱신이 이루어질 때까지 출력된 각 출력 데이터는 예를들어, 모든 데이터가 0로 설정된, 데이터 스트링으로, 출력데이터 (13) 으로 출력된다.
따라서, 기록포인터에 의해 기록포인터의 초기값이 지시하는 위치의 다음에 존재하는 출력클럭 다음의 N배의 출력클럭에 응답하여, N개의 데이터 스트링이 각 독출 포인터에 의해 지시된 각 데이터 기억위치 (즉, 패킷의 제1데이터 스트링을 기억하는 데이터 기억위치 1 로부터 계수된 N개의 데이터 기억위치) 로부터 순차로 독출된다. 입력클럭에 동기하는 입력데이터가 출력클럭에 동기하여 출력되는 경우에 사용되는 패킷을 구성하는 데이터 스트링수 (P) (P=kN, k 는 임의의 양수) 가 메모리 (12) 에 기록된 출력클럭에 동기하여 출력되며, 이들이 모두 독출될 때까지, N스트링의 기억용량을 가진 메모리가 반복 사용된다.
이는 메모리 (12) 의 입력에서 주파수 A [Hz] 를 가진 입력클럭으로 수신된 패킷의 데이터 스트링이 데이터 스트링의 손실 또는 중복를 유발하지 않고 주파수 B [Hz] 를 가진 출력클럭으로 메모리 (12) 의 출력으로 출력되어지도록 한다.
패킷 데이터의 손실 또는 중복을 발생시키지 않고 주파수 A [Hz] 를 가진 입력클럭에 동기하여 입력된 패킷 데이터가 주파수 B [Hz] 를 가진 출력클럭에 동기하여 출력된다 (주파수 A [Hz] 를 가진 입력클럭이 주파수 B [Hz] 를 가진 출력클럭으로 변환될 수 있다).
따라서, 이 실시예에 따르면, 입력클럭 (14) 및 출력클럭 (18) 이 동일 주파수를 갖도록 설정되지만, 각 클럭소오스의 주파수 안정성의 변화에 기인하여, 입력클럭 (14) 과 출력클럭 (18) 간의 주파수 차이가 발생하며, 입력클럭 (14) 에 동기하여 입력된 패킷 데이터가 출력클럭 (18) 로 출력될 수 있다.
한 패킷의 최대 패킷 길이를 L이라 가정하면, 동기화에 요하는 기억용량은, 종래의 클럭동기회로가 한 패킷의 최대 패킷길이 "L" 을 갖는 기억용량을 요하지만, 본 발명에 따르면, 요구되는 기억 용량을 (L-N) 스트링만큼 절감할 수 있다. 이러한 기억용량의 절감은 전송지연을 단축시킬 수 있다.
또한, 이 실시예의 구성은 반도체 칩상에의 클럭동기회로의 집적시에 이점을 갖고 있다.
특히 유익한 효과는 메모리 (12) 에 동기화에 요하는 스트링수가 3 개인 점이다. 종래의 클럭동기회로에서는 3052개이다. 따라서, 동기화에 요하는 기억용량을 크게 99.9% 까지 줄일 수 있다. 기억용량의 대폭적인 절감은 패킷의 전송지연의 대폭적인 단축시킬 뿐만 아니라, 반도체 칩상에의 클럭동기회로의 집적화에 유리하다.
제 2 실시예
도 8 은 본 발명의 제 2 실시예에 따른 클럭동기회로의 구성을 개략적으로 나타낸 블럭도이다.
도 9 는 클럭동기회로의 동작과정을 나타낸 설명도이다.
이 실시예의 구성은, 유효 데이터가 메모리에 기억되어있는지의 유무에 대한 판정이 기록처리에 의해 이루어짐과 동시에, 재초기화된 입력클럭의 직전에 존재하는 출력클럭으로 메모리 (12) 로부터 독출된 데이터 스트링인, 독출 포인터 (20) 가 독출포인터 생성회로 (17A) 로부터 기록포인터 생성회로 (15A) 에 제공된다는 점에서, 제 1 실시예와 크게 다르다.
데이터 유지 검출회로 (16) 에 의해 검출된 부정판정 또는 긍정판정에 각각 대응하는 기록 포인터 재초기화 지시신호 또는 기록 포인터 갱신신호가 데이터 유지 검출회로 (16) 로부터 기록포인터 생성회로 (15A) 로 제공된다. 그러므로, 도 9 의 설명도는 기록처리에서 메모리 (12) 에 기억된 데이터 스트링에 유효 데이터가 있는지의 판정하는 단계 SP6A, 및 독출포인터 생성회로 (17A) 로부터 기록포인터 생성회로 (15A) 에 기록포인터 재초기화 지시신호를 출력한 입력클럭 직전에 존재하는 출력클럭으로 발생된 독출 포인터 (20) 을 제공함으로서 데이터 유지 검출회로 (16) 로부터 기록포인터 재초기화 지시신호를 출력하여 기록포인터를 초기화하는 단계 SP7A 를 포함한다. 독출 포인터 생성회로 (17A) 는 출력클럭에만 응답하여 독출포인터를 발생한다.
또, 이 실시예의 구성은, 상술한 것을 제외하고는 제 1 실시예의 동작과 동일하다. 따라서, 동일 참조부호는 도 1 및 도 2 에 나타낸 대응 부분을 지시한다.
다음으로, 제 2 실시예의 동작을 도 8 및 도 9 를 참조하여 설명한다.
이 제 2 실시예의 동작은, 메모리 (12), 기록포인터 및 독출포인터가 모두 초기화를 위해 동작의 개시시에 초기화되어 (단계 SP1 및 SP2), 데이터 스트링이 메모리 (12) 에 기록된다 (단계 SP3) 는 점에서, 제 1 실시예의 동작과 동일하다.
메모리 (12) 에 의해 기록된 데이터 스트링이 유효데이터를 포함하는지의 판정이 데이터 유지 검출회로 (16) 에 의해 이루어진다 (단계 SP6A).
소정 시간 경과후 패킷이 입력되어, 그 패킷내의 제1 스트링 데이터가 초기화 또는 재초기화된 기록포인터가 지사하는 메모리 (12) 의 데이터 기억위치에 기록되는 동안, 데이터 유지 검출회로 (16) 에 의해 부정판정이 취해지며, 독출포인터 생성회로 (17A) 로부터 기록포인터 생성회로 (15A) 로 제공된 기록포인터 재초기화 지시신호가 데이터 유지 검출회로 (16) 에 의해 발생되어 독출포인터 (20) 가 기록포인터 재초기화 지시신호를 발생하는데 사용된 입력클럭의 직전에 존재하는 출력클럭으로 독출하는 경우에, 기록포인터 생성회로 (15A) 는 그 기록포인터를 독출포인터 (20) 로 변환하여 기록포인터를 재초기화한다.
패킷의 제1 데이터 스트링이 초기화 또는 재초기화된 기록포인터가 지시하는 메모리 (12) 의 데이터 기억위치에 기록되는 경우, 긍정 판정이 데이터 유지 검출회로 (16) 에 의해 취해지며, 기록포인터 갱신신호가 데이터 유지 검출회로 (16) 로부터 출력된다 (단계 SP6A 에서 "예" 의 경우). 그 긍정 판정신호에 응답하여, 기록포인터 생성회로 (15A) 는 그 기록포인트를 +1 만큼 갱신한 후 (단계 SP4), 패킷의 데이터 스트링의 기록을 시작한다. 이후, 패킷의 최종 데이터 스트링의 기록이 동일한 방식으로 수행된다.
패킷 스트링의 최종 데이터의 기록의 종결후 후속 패킷이 도달할 때까지, 단계 SP3, SP6A, SP7A 및 SP3 로 되돌아가는 루프가 반복된다. 기록처리에 독립적을 수행되는 독출처리에서, 독출포인터가 동기화 동작의 초기에 초기화된 후 (단계 SP2), 독출포인터가 각 출력클럭에 대해 지시하는 메모리 (12) 의 데이터 기억위치가 독출되며 (단계 SP5) 그 독출포인터가 갱신된다 (단계 SP8).
따라서, 이 실시예에 따르면, 입력클럭 (14) 및 출력클럭 (18) 이 동일 주파수를 갖도록 설정되지만, 각 클럭소오스의 주파수 안정성의 변화에 기인하여, 입력클럭 (14) 과 출력클럭 (18) 간의 주파수 차이가 발생하며, 입력클럭 (14) 에 동기하여 입력된 패킷 데이터가 출력클럭 (18) 로 출력된다.
한 패킷의 최대 패킷 길이를 L이라 가정하면, 동기화에 요하는 기억용량은, 종래의 클럭동기회로가 한 패킷의 최대 패킷길이 "L" 을 갖는 기억용량을 요하지만, 본 발명에 따르면, 요구되는 기억 용량을 (L-N) 스트링만큼 절감할 수 있다. 이러한 기억용량의 절감은 전송지연을 단축시킬 수 있다.
또한, 이 실시예의 구성은 반도체 칩상에의 클럭동기회로의 집적시에 이점을 갖고 있다.
특히 유익한 효과는 메모리 (12) 에 동기화에 요하는 스트링수가 3 개인 점이다. 종래의 클럭동기회로에서는 3052개이다. 따라서, 동기화에 요하는 기억용량을 크게 99.9% 까지 줄일 수 있다. 기억용량의 대폭적인 절감은 패킷의 전송지연의 대폭적인 단축시킬 뿐만 아니라, 반도체 칩상에의 클럭동기회로의 집적화에 유리하다.
제 3 실시예
도 10 은 본 발명의 제 3 실시예에 따른 클럭동기회로의 구성을 개략적으로 나타낸 블럭도이다. 도 11 은 클럭동기회로의 동작과정을 나타낸 설명도이다.
이 실시예의 구성은, 유효 데이터가 메모리 (12) 에 기억되어있는지의 유무에 대한 판정이 기록 및 독출처리에 의해 이루어짐과 동시에, 재초기화된 입력클럭의 직전에 존재하는 출력클럭으로 메모리 (12) 로부터 독출된 데이터 스트링인, 독출 포인터 (20) 가 독출포인터 생성회로 (17A) 로부터 기록포인터 생성회로 (15A) 에 제공되고, 재초기화된 출력클럭의 직전에 존재하는 입력클럭으로 메모리 (12) 에 기록된 데이터 스트링인, 기록포인터 (20) 가 기록포인터 생성회로 (15A) 로부터 독출포인터 생성회로 (17) 로 제공된다는 점에서, 제 1 실시예와 크게 다르다.
데이터 유지 검출회로 (16) 에 의해 검출된 부정판정 또는 긍정판정에 각각 대응하는 기록 포인터 재초기화 지시신호 또는 기록 포인터 갱신신호가 기록포인터 생성회로 (15A) 및 독출 포인터 생성회로 (17) 로 제공된다.
그러므로, 도 11 의 설명도는 기록처리에서 메모리 (12) 에 기억된 데이터 스트링에 유효 데이터가 있는지의 판정하는 단계 SP6A, 및 기록포인터 재초기화 지시신호가 데이터 유지 검출회로 (16) 로부터 출력되며 기록포인터 재초기화 지시신호가 출력되는 입력클럭 직전에 존재하는 출력클럭으로 독출 데이터 단위를 독출하는데 사용된 독출 포인터 (20) 가 독출포인터 생성회로 (17A) 로부터 출력되는 경우에 기록포인터가 재초기화되는 단계 SP7A 를 포함한다.
또, 이 실시예의 구성은, 상술한 것을 제외하고는 제 1 실시예의 동작과 동일하다. 따라서, 동일 참조부호는 도 10 및 도 11 에 나타낸 대응 부분을 지시한다.
다음으로, 제 3 실시예의 동작을 도 10 및 도 11 를 참조하여 설명한다.
이 제 3 실시예의 동작은, 메모리 (12), 기록포인터 및 독출포인터가 모두 초기화를 위해 동작의 개시시에 초기화되어 (도 11 의 단계 SP1 및 SP2), 데이터 스트링이 메모리 (12) 에 기록된다 (단계 SP3) 는 점에서, 제 1 실시예의 동작과 동일하다.
메모리 (12) 에 의해 기록된 데이터 스트링이 유효데이터를 포함하는지의 판정이 데이터 유지 검출회로 (16) 에 의해 이루어진다 (단계 SP6A).
시작동작시 또는 후에 패킷이 입력되는 동안, 패킷내의 제1 스트링 데이터가 초기화 또는 재초기화된 기록포인터가 지시하는 메모리 (12) 의 데이터 기억위치에 기록되며, 재초기화 지시신호가 데이터 유지 검출회로 (16) 에 의해 발생되고, 기록포인터 재초기화 지시신호를 출력하는데 사용된 입력클럭 직전에 존재하는 출력클럭으로 발생된 독출 포인터가 독출 포인터 생성회로 (17A) 로부터 제공되는 경우, 기록 포인터 생성회로 (15A) 는 그 기록포인터를 상술한 바와 같은 제공된 독출포인터로 변환함으로써, 기록 포인터를 재초기화한다.
유사한 독출 포인터의 재초기화가 수행된다. 즉, 동작개시시 또는 이후에 패킷이 입력되고 패킷의 제1 스트링 데이터가 초기화 또는 재초기화 기록 포인터가 지시하는 메모리 (12) 의 데이터 기억위치에 기록되는 동안, 데이터 유지 검출회로 (16) 에 의해 재초기화 지시신호가 발생되며, 또한, 독출 포인터 재초기화 지시신호를 출력하는데 사용된 출력클럭 직전에 존재하는 입력클럭으로 발생된 기록포인터 (19) 가 기록포인터 생성회로 (15A) 로부터 제공되고, 그 독출포인터 생성회로 (17) 는 독출포인터를 상술한 바와 같이 제공된 기록포인터로 변환함으로써, 기록포인터를 재초기화한다.
패킷의 제1 데이터 스트링이 초기화 또는 재초기화 기록포인터가 지시하는 메모리 (12) 의 데이터 기억위치에 기록될 때, 기록포인터 갱신 신호가 데이터 유지 검출회로 (16) 로부터 출력된다 (단계 SP6A 에서 "예" 의 경우). 기록포인터 갱신신호에 응답하여, 기록포인터 생성회로 (15A) 는 기록포인터를 +1 만큼 갱신하고 (단계 SP4), 패킷의 후속 데이터 스트링의 기록을 시작한다. 이상과 동일한 방식으로, 패킷의 최종 데이터 스트링이 기록된다. 최종 데이터 스트링의 기록 종료후 후속 패킷이 도달할 때까지, 단계 SP3, SP6A, SP7A 및 SP3 로 되돌아가는 루프가 반복된다.
이 기록처리에 독립적으로 독출처리가 수행된다. 독출처리는 초기화된 독출 포인터가 지시하는 데이터 기억위치로부터 시작된다 (단계 SP5). 기록데이터 스트링이 유효데이터를 갖고 있는지의 여부가 데이터 유지 검출회로 (16) 에 의해 판정된다 (단계 SP6). 독출이 개시되는 경우, 메모리 (12) 는 소거되며 그 출력된 데이터가 모든 데이터가 0로 설정된 스트링으로 출력된다.
메모리 (12) 가 유효 데이터를 아직 포함하고 있지 않기 때문에, 데이터 유지 검출회로 (16) 에 의한 판정 (단계 6 에서의 판정) 은 유효 데이터를 갖지 않은 것으로 결정되며 (즉, 부정판정) (단계 SP6 에서 "아니오"의 경우), 독출포인터의 재초기화 (재설정) 이 제 1 실시예와 동일한 방법으로 수행된다. 처리가 단계 SP5 로 되돌아간 후 독출이 수행된다.
독출 포인터의 재초기화는 메모리 (12) 의 패킷의 제 1 데이터 스트링이 기록될 때까지 수행된다. 메모리 (12) 에 제 1 데이터 스트링을 기록하는데 사용된 입력클럭이 사라진 후, 메모리 (12) 에 유효 데이터가 있기 때문에, 판정은 유효 데이터를 가지는 것으로 결정되며, 독출포인터 갱신신호가 데이터 유지 검출회로 (16) 으로부터 출력된다 (단계 SP6 에서 "예" 의 경우). 그 독출포인터에 +1 을 더함으로써, 독출포인터가 갱신된다 (단계 SP8).
기록포인터 및 독출포인터의 갱신이 연속으로 이루어진다 (단계 SP4 및 SP8).
순차적인 기록포인터의 갱신에 의해, 패킷을 구성하는 각 데이터 스트링이 갱신된 기록포인터가 지시하는 데이터 기억위치에 순차적으로 기록된다. 또한, 순차적인 독출포인터의 갱신에 의해, 모든 무효 데이터의 스트링이 메모리 (12) 로부터 출력 데이터로서 출력되며, 최종적으로, 독출포인터는 패킷의 데이터 스트링이 기록 포인터에 의해 기록되어 있는 데이터 기억위치에 도달한다. 독출 포인터가 데이터 기억위치에 도달하기 전에, 메모리 (12) 의 초기화에 의해 소거된 스트링, 예들들어 모든 데이터가 0로 설정된 스트링이 출력데이터 (13) 로서 출력되지만, 독출포인터가 데이터 기억위치에 도달하는 경우, 패킷의 데이터 스트링이 출력데이터 (13) 로서 순차적으로 출력된다.
따라서, 동기화되어질 패킷을 구성하는 데이터의 스트링수 (P) 가 메모리 (12) 에 기록되며, 이들 모두가 독출될 때까지, 메모리 용량 N 을 가지는 메모리가 반복적으로 사용된다.
입력클럭에 동기하여 입력된 데이터가 출력클럭에 동기하여 출력된 후, 포인터의 재초기화가 후속패킷이 입력될 때까지 기록 및 독출 처리 양자에서 계속된다.
이는 주파수 A [Hz] 를 가진 입력클럭으로 수신된 패킷의 데이터 스트링이 데이터 스트링의 손실 또는 중복를 유발하지 않고 주파수 B [Hz] 를 가진 출력클럭으로 메모리 (12) 의 출력측으로 출력되어지도록 한다. 즉, 패킷 데이터의 손실 또는 중복을 야기하지 않고, 주파수 A [Hz] 를 가진 입력클럭에 동기하여 입력된 패킷 데이터가 주파수 B [Hz] 를 가진 출력클럭에 동기하여 출력된다 (주파수 A [Hz] 를 가진 입력클럭이 주파수 B [Hz] 를 가진 출력클럭으로 변환될 수 있다).
따라서, 이 실시예에 따르면, 입력클럭 (14) 및 출력클럭 (18) 이 동일 주파수를 갖도록 설정되지만, 각 클럭소오스의 주파수 안정성의 변화에 기인하여, 입력클럭 (14) 과 출력클럭 (18) 간의 주파수 차이가 발생하며, 입력클럭 (14) 에 동기하여 입력된 패킷 데이터가 출력클럭 (18) 로 출력될 수 있다.
한 패킷의 최대 패킷 길이를 L이라 가정하면, 동기화에 요하는 기억용량은, 종래의 클럭동기회로가 한 패킷의 최대 패킷길이 "L" 을 갖는 기억용량을 요하지만, 본 발명에 따르면, 요구되는 기억 용량을 (L-N) 스트링만큼 절감할 수 있다. 이러한 기억용량의 절감은 전송지연을 단축시킬 수 있다.
또한, 이 실시예의 구성은 반도체 칩상에의 클럭동기회로의 집적시에 이점을 갖고 있다.
특히 유익한 효과는 메모리 (12) 에 동기화에 요하는 스트링수가 3 개인 점이다. 종래의 클럭동기회로에서는 3052개이다. 따라서, 동기화에 요하는 기억용량을 크게 99.9% 까지 줄일 수 있다. 기억용량의 대폭적인 절감은 패킷의 전송지연의 대폭적인 단축시킬 뿐만 아니라, 반도체 칩상에의 클럭동기회로의 집적화에 유리하다.
본 발명이 상기 실시예들에 제한되지 않고 본 발명의 범주와 정신으로부터 일탈함이 없이 변경 및 변형될 수 있음은 자명하다. 예를들어, 본 발명은 입력클럭 (14) 과 출력클럭 (18) 이 주파수가 다르거나 또는 입력클럭 (14) 과 출력클럭 (18) 이 다를뿐만 아니라 주파수도 변화하는 경우에 수행될 수도 있다.
또, 본 발명은 근거리 네트워크 및 디지탈 신호의 전송의 기술분야뿐만 아니라, 입력과 출력 클럭이 변화하거나 다른 경우에도 실시할 수 있다.
또, 이들 경우에, 입출력이 독립적으로 접속될 수 있는 반도체 메모리가 메모리로 사용될 수도 있다.
상기 실시예들에서는, 클럭동기회로가 하드웨어로 이루어지지만, 그 일부는 소프트웨어로 이루어질 수도 있다.
또한, 본 출원은, 우선권주장의 기초가 되는 1998.10.22일자 일본 특허출원 평 10-318322호의 출원을 참조하며, 본 명세서는 상기 내용을 포함한다.
본 발명에 따르면, 클럭동기회로는 비록 입력클럭과 출력클럭 사이에 주파수 차이가 있더라도, 기록 포인터와 독출 포인터를 재초기화시킬 수 있도록 구성되며, 입력클럭에 동기하여 입력된 데이터를 출력클럭에 동기하여 출력하는데 요하는 기억용량을 줄일 수 있다. 만약 주파수 차이가 아주 작으면, 감소량은 아주 크다. 이는 패킷 전송시 지연의 저감을 크게 할 수 있다. 또, 이는 대폭적인 기억용량의 저감, 동기화 회로의 간소화 및 소형화, 및 가격의 절감을 가능케 한다.
따라서, 본 발명은 상기 실시예들에 제한되지 않으며 본 발명의 범주와 정신으로부터 일탈함이 없이 변경 및 변형이 이루어질 수 있음은 명백하다.

Claims (12)

  1. 제 1 클럭에서 동작하는 제 1 회로로부터 그 입출력에 독립적으로 접속가능한 기억수단을 통하여 제 2 클럭에서 동작하는 제 2 회로로 데이터를 전송하기 위한 클럭동기방법으로서,
    상기 기억수단에 의해 제공된 상기 데이터를 기억하는 단계;
    상기 기억수단에 기억된 상기 데이터가 유효 데이터인지를 검출하는 단계;
    그 판정이 부정이면 상기 클럭에 응답하여 상기 기억수단의 상기 액세스 포인터를 갱신하는 단계;
    그 판정이 긍정이면 상기 클럭에 응답하여 상기 기억수단의 상기 액세스 포인터를 재 초기화하는 단계; 및
    상기 액세스 포인터를 이용하여 상기 기억수단에 접속함으로써, 상기 제 1 클럭에 동기하여 입력된 데이터를 상기 제 2 클럭에 동기하여 출력하는 단계를 포함하는 것을 특징으로 하는 클럭동기방법.
  2. 제 1 항에 있어서,
    상기 제 1 클럭의 주파수는 상기 제 2 클럭의 주파수와 다른 것을 특징으로 하는 클럭동기방법.
  3. 제 1 항에 있어서,
    상기 기억수단의 기억용량 (N) 의 폭이 출력클럭이 입력클럭보다 더 빠른 경우에 유도된 하기 식,
    N < n+1
    로 주어지는 기억용량의 폭과, 입력클럭이 출력클럭보다 더 빠른 경우에 유도된 하기 식,
    n ≤N
    으로 주어지는 기억용량의 폭과의 합이고,
    여기서, n = |A-B|×L/max(A,B), A 는 상기 제 1 클럭의 주파수, B 는 상기 제 2 클럭의 주파수, L은 최대 패킷길이이고, max(A,B) 는 A≥B 인 경우 max(A,B)=A, A<B 인 경우 max(A,B)=B 이며, N 은 임의의 자연수인 것을 특징으로 하는 클럭동기방법.
  4. 제 1 항에 있어서,
    상기 재초기화는 상기 제 2 회로의 상기 액세스 포인터에 의해서만 수행되는 것을 특징으로 하는 클럭동기방법.
  5. 제 1 항에 있어서,
    상기 재초기화는 상기 제 1 회로의 상기 액세스 포인터에 의해서만 수행되는 것을 특징으로 하는 클럭동기방법.
  6. 제 1 항에 있어서,
    상기 재초기화는 상기 제 1 및 제 2 회로 양자의 상기 액세스 포인터에 의해 수행되는 것을 특징으로 하는 클럭동기방법.
  7. 제 1 클럭에서 동작하는 제 1 회로로부터 그 입출력에 독립적으로 접속가능한 기억수단을 통하여 제 2 클럭에서 동작하는 제 2 회로로 데이터를 전송하기 위한 클럭동기장치로서,
    입출력에 독립적으로 접속가능한 기억수단;
    상기 기억수단에 기억된 데이터가 유효 데이터인지를 검출하는 검출수단;
    상기 검출수단이 긍정 판정을 나타내는 경우에는 상기 클럭에 응답하여 상기 기억수단의 액세스 포인터를 갱신하고, 상기 검출수단이 부정 판정을 나타내는 경우에는 상기 클럭에 응답하여 상기 기억수단의 액세스 포인터를 재초기화하는 액세스 포인터 생성수단; 및
    상기 액세스 포인터 생성수단으로부터 출력된 액세스 포인터를 이용하여 상기 기억수단에 접속함으로써, 제 1 클럭에 동기하여 입력된 데이터를 제 2 클럭에 동기하여 출력하는 수단을 구비하는 것을 특징으로 하는 클럭동기장치.
  8. 제 7 항에 있어서,
    상기 제 1 클럭의 주파수는 상기 제 2 클럭의 주파수와 다른 것을 특징으로 하는 클럭동기장치.
  9. 제 7 항에 있어서,
    상기 기억수단의 기억용량 (N) 의 폭은 출력클럭이 입력클럭보다 더 빠른 경우에 유도된 하기 식,
    N < n+1
    으로 주어지는 기억용량의 폭과, 입력클럭이 출력클럭보다 더 빠른 경우에 유도된 하기 식,
    n ≤N
    로 주어지는 기억용량의 폭과의 합이며,
    여기서, n = |A-B|×L/max(A,B), A 는 상기 제 1 클럭의 주파수, B 는 상기 제 2 클럭의 주파수, L은 최대 패킷길이이고, max(A,B) 는 A≥B 인 경우 max(A,B)=A, A<B 인 경우 max(A,B)=B 이며, N 은 임의의 자연수인 것을 특징으로 하는 클럭동기장치.
  10. 제 7 항에 있어서,
    상기 액세스 포인터 생성수단을 이용한 상기 액세스 포인터의 재초기화는 상기 제 2 회로의 상기 액세스 포인터에 의해서만 수행되는 것을 특징으로 하는 클럭동기장치.
  11. 제 7 항에 있어서,
    상기 액세스 포인터 생성수단을 이용한 상기 액세스 포인터의 재초기화는 상기 제 1 회로의 상기 액세스 포인터에 의해서만 수행되는 것을 특징으로 하는 클럭동기장치.
  12. 제 7 항에 있어서,
    상기 액세스 포인터 생성수단을 이용한 상기 액세스 포인터의 재초기화는 상기 제 1 회로 및 제 2 회로 양자의 액세스 포인터에 의해서 수행되는 것을 특징으로 하는 클럭동기장치.
KR1019990046144A 1998-10-22 1999-10-22 클럭 동기방법과 그 방법에 사용하기 위한 장치 KR100346675B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP98-318322 1998-10-22
JP31832298A JP3447586B2 (ja) 1998-10-22 1998-10-22 クロック同期化方法及びその装置

Publications (2)

Publication Number Publication Date
KR20000029266A true KR20000029266A (ko) 2000-05-25
KR100346675B1 KR100346675B1 (ko) 2002-07-27

Family

ID=18097900

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990046144A KR100346675B1 (ko) 1998-10-22 1999-10-22 클럭 동기방법과 그 방법에 사용하기 위한 장치

Country Status (5)

Country Link
US (1) US6519709B1 (ko)
JP (1) JP3447586B2 (ko)
KR (1) KR100346675B1 (ko)
CN (1) CN1157024C (ko)
TW (1) TW523989B (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6633972B2 (en) * 2001-06-07 2003-10-14 Intel Corporation Method and apparatus for utilizing static queues in processor staging
JP3542574B2 (ja) * 2001-08-28 2004-07-14 Necマイクロシステム株式会社 システムクロック同期化回路
US6952791B2 (en) * 2001-12-03 2005-10-04 Broadcom Corporation Method and circuit for initializing a de-skewing buffer in a clock forwarded system
US6895481B1 (en) 2002-07-03 2005-05-17 Cisco Technology, Inc. System and method for decrementing a reference count in a multicast environment
JP2005101771A (ja) * 2003-09-22 2005-04-14 Matsushita Electric Ind Co Ltd クロック乗せ替え回路および方法
JP2006279326A (ja) * 2005-03-28 2006-10-12 Naohiko Yasui パケット送受信装置
CN101227689B (zh) * 2007-12-27 2011-01-19 华为技术有限公司 信息上报方法及装置
JP6190699B2 (ja) * 2013-11-12 2017-08-30 株式会社メガチップス Emi低減回路

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61196497A (ja) 1985-02-26 1986-08-30 Toshiba Corp メモリ制御回路
JPH0481142A (ja) 1990-07-24 1992-03-13 Fujitsu Ltd 脱落重複判定信号出力回路
US5742760A (en) * 1992-05-12 1998-04-21 Compaq Computer Corporation Network packet switch using shared memory for repeating and bridging packets at media rate
JPH0669913A (ja) 1992-06-18 1994-03-11 Fujitsu Ltd クロック乗換回路
JPH066333A (ja) 1992-06-19 1994-01-14 Fujitsu Ltd クロック乗換回路
JPH0730528A (ja) 1993-07-09 1995-01-31 Fujitsu Ltd クロック乗換回路
US5555524A (en) * 1995-02-13 1996-09-10 Standard Microsystems Corporation Semi-synchronous dual port FIFO
US5668767A (en) * 1995-12-29 1997-09-16 Cypress Semiconductor Corp. Polled FIFO flags
US5956748A (en) * 1997-01-30 1999-09-21 Xilinx, Inc. Asynchronous, dual-port, RAM-based FIFO with bi-directional address synchronization
US6101329A (en) * 1997-02-18 2000-08-08 Lsi Logic Corporation System for comparing counter blocks and flag registers to determine whether FIFO buffer can send or receive data
US5982741A (en) * 1998-09-17 1999-11-09 Tut Systems, Inc. Method and apparatus for automatically reducing cross-talk between wires coupled to a common network device
TW406265B (en) 1998-09-23 2000-09-21 Ind Tech Res Inst Structure and method of asynchronous dual port FIFO memory

Also Published As

Publication number Publication date
KR100346675B1 (ko) 2002-07-27
CN1252658A (zh) 2000-05-10
JP2000134188A (ja) 2000-05-12
TW523989B (en) 2003-03-11
CN1157024C (zh) 2004-07-07
US6519709B1 (en) 2003-02-11
JP3447586B2 (ja) 2003-09-16

Similar Documents

Publication Publication Date Title
US5487092A (en) System for high-speed synchronization across clock domains
US5400340A (en) End of packet detector and resynchronizer for serial data buses
US4945548A (en) Method and apparatus for detecting impending overflow and/or underrun of elasticity buffer
US5323426A (en) Elasticity buffer for data/clock synchronization
JP3156813B2 (ja) バッファ制御回路
US6865241B1 (en) Method and apparatus for sampling digital data at a virtually constant rate, and transferring that data into a non-constant sampling rate device
JP3580242B2 (ja) シリアル/パラレル変換回路、データ転送制御装置及び電子機器
US20060187968A1 (en) Method for data communication
US6128317A (en) Transmitter and receiver supporting differing speed codecs over single links
US7027447B2 (en) Communications interface between clock domains with minimal latency
KR100346675B1 (ko) 클럭 동기방법과 그 방법에 사용하기 위한 장치
US20060209784A1 (en) Methods and apparatus for controlling ethernet packet transfers between clock domains
US6963627B1 (en) Method and apparatus for interfacing to E1 or T1 networks
JPH04312152A (ja) ネットワーク用入出力装置
JPH10136026A (ja) 伝送フレームフォーマット変換回路
JPH07168786A (ja) 同期がとられていない装置間のインターフェイス
EP0396669B1 (en) Method and apparatus for detecting impending overflow and/or underrun of elasticity buffer
JPH0570332B2 (ko)
US7248663B2 (en) Apparatus and method for transforming data transmission speed
JP3475857B2 (ja) ソースシンクロナス転送方式
JP2000172636A (ja) リアルタイムデータ転送系の非同期系データ転送制御装置および方法
JPH11252132A (ja) データ伝達装置
KR20010057815A (ko) 에이티엠 교환 시스템의 셀 판독 동기 제어 장치 및 방법
CN117785792A (zh) 跨同频异步时钟域的信号处理方法及装置
JPH037172B2 (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: 20080701

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee