KR102008634B1 - 타임베이스 동기화 - Google Patents

타임베이스 동기화 Download PDF

Info

Publication number
KR102008634B1
KR102008634B1 KR1020187015115A KR20187015115A KR102008634B1 KR 102008634 B1 KR102008634 B1 KR 102008634B1 KR 1020187015115 A KR1020187015115 A KR 1020187015115A KR 20187015115 A KR20187015115 A KR 20187015115A KR 102008634 B1 KR102008634 B1 KR 102008634B1
Authority
KR
South Korea
Prior art keywords
timebase
value
clock
response
register
Prior art date
Application number
KR1020187015115A
Other languages
English (en)
Other versions
KR20180079376A (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 KR20180079376A publication Critical patent/KR20180079376A/ko
Application granted granted Critical
Publication of KR102008634B1 publication Critical patent/KR102008634B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

일 실시예에서, SOC와 같은 집적 회로(또는 심지어 개별 칩 시스템)는 다양한 위치에 하나 이상의 로컬 타임베이스를 포함한다. 타임베이스들은 사용 중에 변동에 영향을 받을 수 있는 고주파수 로컬 클록에 기초하여 증분될 수 있다. 주기적으로, 로컬 타임베이스들은 변동에 영향을 덜 받는 저주파수 클록에 기초하여 하드웨어 회로를 이용하여 정확한 시간에 동기화될 수 있다. 특히 후속 동기화를 위한 정확한 타임베이스 값이 각 로컬 타임베이스에 전송될 수 있으며, 로컬 타임베이스의 제어 회로는 동기화가 발생되기 전에 로컬 타임베이스가 정확한 값에 도달하면 로컬 타임베이스를 정확한 값으로 포화시키도록 구성될 수 있다. 유사하게, 동기화가 발생하고 로컬 타임베이스가 정확한 값에 도달하지 않은 경우, 제어 회로는 정확한 타임베이스 값을 로딩하도록 구성될 수 있다.

Description

타임베이스 동기화
본 명세서에 기술된 실시예들은 SOC(system on a chip)와 같은 집적 회로에서의 타임베이스 동기화에 관한 것이다.
디지털 시스템에서 실시간(또는 "벽시계 시간")은 타임베이스로 표현된다. 전형적으로 타임베이스는 시스템 시동 시 0으로 리셋되며 시스템의 클록에 따라 증분된다. 시스템 시동 시 실시간이 알려지면(일반적으로 소프트웨어에 유지됨), 타임베이스 값이 실시간에 추가되어 현재 시간을 결정할 수 있다.
대형 시스템 또는 시스템 내의 집적 회로, 예컨대 SOC의 경우, 짧은 레이턴시를 가지면서 단일 글로벌 타임베이스에 액세스하는 것이 하나의 과제이다. 과거에는 글로벌 타임베이스 버스가 SOC를 통해 타임베이스에 대한 액세스가 요구되는 위치로 전송되었다. 이 접근법은 낮은 레이턴시 액세스를 제공할 수 있지만, 버스를 원하는 모든 액세스 포인트로 라우팅하기 위해 영역 오버헤드(overhead)를 증가시키며 버스 상의 신호 전파의 레이턴시 때문에 물리적 설계에서 타이밍을 종료하는 것이 어렵다. 또 다른 접근법은 SOC에 걸쳐 로컬 타임베이스들을 추가하는 것을 포함한다. 그러나 로컬 클록 변동 및 심지어 다양한 포인트에서의 클록들에 대한 상이한 클록 소스로 인해 글로벌 타임베이스와 로컬 타임베이스들 간의 동기화가 쉽게 손실될 수 있다. 소프트웨어가 글로벌 타임베이스를 판독하고 타임베이스를 로컬 타임베이스들에 전파하여 로컬 타임베이스들과 동기화될 수 있지만 새로운 값들을 전파하기 위한 레이턴시가 고려되어야 하고 정확하게 결정하기가 어렵다. 또한 소프트웨어 동기화가 바람직한 것보다 훨씬 덜 빈번함에 따라 로컬 타임베이스들이 동기화 사이의 기간 동안 다양한 변동을 겪게 할 수 있다.
또한 타임베이스 정확도를 유지하려면 고품질의 크리스털 클록 신호가 요구된다. 저주파수 크리스털 클록 신호가 이용가능할 수 있지만, 타임베이스 업데이트는 SOC의 다양한 컴포넌트의 동작 클록 주파수들과 비교하여 너무 드물게 발생하기 때문에 이러한 클록은 타임베이스에서 보다 높은 정확도/입상도(granularity)를 제공하지 않는다. 크리스털 신호를 통해 필요한 주파수를 획득하는 것은 어렵다. 또한, 저주파수 크리스털 클록 신호에 기초하여 외부 타임베이스들이 유지될 수 있으며, 외부 타임베이스와 SOC 내의 다양한 타임베이스 간의 동기화를 달성하기 어려울 수 있다.
일 실시예에서, SOC(또는 심지어 개별 칩 시스템)와 같은 집적 회로는 다양한 위치에 하나 이상의 로컬 타임베이스를 포함한다. 타임베이스들은 사용 중에 변동에 영향을 받을 수 있는 고주파수 로컬 클록에 기초하여 증분될 수 있다. 주기적으로, 로컬 타임베이스들은 변동에 영향을 덜 받는 저주파수 클록에 기초하여 하드웨어 회로를 이용하여 정확한 시간에 동기화될 수 있다. 특히 후속 동기화를 위한 정확한 타임베이스 값이 각 로컬 타임베이스에 전송될 수 있으며, 로컬 타임베이스의 제어 회로는 동기화가 발생되기 전에 로컬 타임베이스가 정확한 값에 도달하면 로컬 타임베이스를 정확한 값으로 포화시키도록 구성될 수 있다. 유사하게, 동기화가 발생하고 로컬 타임베이스가 정확한 값에 도달하지 않은 경우, 제어 회로는 정확한 타임베이스 값을 로딩하도록 구성될 수 있다. 따라서 소프트웨어 동기화의 필요성을 없애면서 타임베이스의 고해상도/입상도, 타임베이스에 대한 낮은 레이턴시 액세스 및 타임베이스의 높은 정확성이 지원될 수 있다. 또한 외부 타임베이스와의 동기화가 예컨대, 후속 동기화 이벤트에서의 외부 타임베이스에 대한 정확한 타임베이스 값을 로컬 타임베이스들로 전송하고 이들 로컬 타임베이스들로 포화/업데이트함으로써 수행될 수 있다.
하기의 상세한 설명은 첨부 도면들을 참조하며, 이제 도면들이 간단히 설명된다.
도 1은 SOC를 포함하는 집적 회로의 하나의 실시예의 블록도이다.
도 2는 로컬 타임베이스 회로의 하나의 실시예의 블록도이다.
도 3은 글로벌 타임베이스 회로의 하나의 실시예의 블록도이다.
도 4는 타임베이스 동기화의 하나의 실시예를 예시한 타이밍도이다.
도 5는 타임베이스들을 동기화하기 위한 로컬 타임베이스 회로의 하나의 실시예의 동작을 예시한 흐름도이다.
도 6은 타임베이스들을 동기화하기 위한 글로벌 타임베이스 회로의 하나의 실시예의 동작을 예시한 흐름도이다.
도 7은 타임베이스들을 초기화하기 위한 글로벌 타임베이스 회로 및 로컬 타임베이스 회로의 하나의 실시예의 동작을 예시한 흐름도이다.
도 8은 시스템의 하나의 실시예의 블록도이다.
본 개시내용에 기술된 실시예들은 다양한 수정들 및 대안적인 형태들을 허용하지만, 본 개시내용의 특정 실시예들이 도면들에 예로서 도시되고, 본 명세서에서 상세히 기술될 것이다. 그러나, 그에 대한 도면들 및 상세한 설명은 실시예들을 개시된 특정 형태로 제한하는 것으로 의도되는 것이 아니라, 그와는 반대로, 의도는 첨부된 청구범위의 사상 및 범주 내에 속한 모든 수정들, 등가물들 및 대안들을 커버하기 위한 것임을 이해하여야 한다. 본 명세서에서 사용되는 표제들은 오직 구성을 위한 것이며 설명의 범주를 제한하기 위해 사용되는 것으로 의도되지 않는다. 본 출원 전반에 걸쳐 사용되는 바와 같이, "일 수 있다(may)"라는 단어는 의무적인 의미(즉, "이어야만 한다(must)"를 의미)라기보다 오히려 허용의 의미(즉, "~에 대해 가능성을 갖는다"는 의미)로 사용된다. 유사하게, "포함하다(include, includes)" 및 "포함하는(including)"이라는 단어는, 포함하지만 이로 제한되지 않음을 의미한다.
다양한 유닛들, 회로들 또는 기타 컴포넌트들이 태스크 또는 태스크들을 수행하도록 "구성되는 것"으로 설명될 수 있다. 이러한 맥락에서, "~하도록 구성된"은 동작 동안에 태스크 또는 태스크들을 수행하는 "회로를 갖는"을 일반적으로 의미하는 구조의 광의의 설명이다. 이와 같이, 유닛/회로/컴포넌트는 유닛/회로/컴포넌트가 현재 온(on) 상태가 아닐 시에도 태스크를 수행하도록 구성될 수 있다. 일반적으로, "~하도록 구성된"에 대응되는 구조를 형성하는 회로는 하드웨어 회로들을 포함할 수 있다. 하드웨어 회로는 조합 논리 회로, 플롭(flop), 레지스터, 래치 등과 같은 클로킹된(clocked) 저장 디바이스, 유한 상태 기계, 정적 랜덤 액세스 메모리 또는 임베디드 동적 랜덤 액세스 메모리와 같은 메모리, 주문 설계된 회로, 아날로그 회로, 프로그램가능한 논리 어레이 등의 임의의 조합을 포함할 수 있다. 유사하게, 다양한 유닛들/회로들/컴포넌트들은 설명의 편의상 태스크 또는 태스크들을 수행하는 것으로 설명될 수 있다. 이러한 설명은 "~하도록 구성된"이라는 문구를 포함하는 것으로 해석되어야 한다. 하나 이상의 태스크를 수행하도록 구성된 유닛/회로/컴포넌트를 언급하는 것은 그 유닛/회로/컴포넌트에 대해 35 U.S.C. ㄷ 112 (f)항의 해석을 적용하지 않고자 명확히 의도된다.
일 실시예에서, 본 개시에 따른 하드웨어 회로들은 Verilog 또는 VHDL과 같은 하드웨어 기술 언어(HDL)로 회로의 디스크립션(description)을 코딩함으로써 구현될 수 있다. HDL 디스크립션은 주어진 집적 회로 제조 기술을 위해 설계된 셀들의 라이브러리에 대해 합성될 수 있고, 타이밍, 전력 및 다른 이유로 인해 수정되어 최종 설계 데이터베이스를 생성할 수 있으며, 이는 파운드리(foundry)로 전송되어 마스크를 생성하고 궁극적으로 집적 회로를 생성할 수 있다. 일부 하드웨어 회로 또는 그것의 부분들 또한 회로도 편집기(schematic editor)로 주문 설계될 수 있고 합성된 회로와 함께 집적 회로 설계 내로 캡쳐될 수 있다. 집적 회로는 트랜지스터를 포함할 수 있고, 다른 회로 소자들(예컨대, 커패시터, 저항기, 인덕터 등의 수동 소자)을 포함할 수 있으며, 트랜지스터와 회로 소자 사이를 상호접속할 수 있다. 일부 실시예들은 하드웨어 회로를 구현하기 위해 함께 결합된 다수의 집적 회로를 구현할 수 있고/있거나 일부 실시예들에서는 개별적인 소자들이 사용될 수 있다. 대안적으로, HDL 디자인은 FPGA(Field Programmable Gate Array)와 같은 프로그램가능한 로직 어레이로 합성될 수 있으며 FPGA에서 구현될 수 있다.
본 명세서는 "하나의 실시예" 또는 "일 실시예"에 대한 참조를 포함한다. 본 명세서에서 명시적으로 부인하지 않는다면, 임의의 특징들의 조합을 포함하는 실시예들이 일반적으로 고려되더라도, "하나의 실시예에서" 또는 "일 실시예에서"라는 문구가 나타난다고 해서 반드시 동일한 실시예를 지칭하지는 않는다. 특정 특징들, 구조들 또는 특성들이 본 개시내용과 일관성을 유지하는 임의의 적합한 방식으로 조합될 수 있다.
이제 도 1을 참조하면, 메모리(12) 및 외부 클록 소스(34)에 결합된 SOC(10)의 하나의 실시예의 블록도가 도시된다. 명칭에서 암시되는 바와 같이, SOC(10)의 컴포넌트들은 집적 회로 "칩"으로서 단일의 반도체 기판 상에 집적될 수 있다. 일부 실시예들에서, 컴포넌트들은 시스템 내의 둘 이상의 별개의 칩 상에서 구현될 수 있다. 그러나, SOC(10)는 본 명세서에서 일례로서 사용될 것이다. 예시된 실시예에서, SOC(10)의 컴포넌트들은 중앙 프로세싱 유닛(CPU) 컴플렉스(14), "상시-온" 컴포넌트(16), 주변 컴포넌트들(18A 및 18B)(더 간단하게, "주변장치들"), 메모리 제어기(22), 전력 관리자(PMGR)(32), 내부 클록 발생 회로(36) 및 통신 패브릭(communication fabric)(27)을 포함한다. 컴포넌트들(14, 16, 18A 및 18B, 22, 32, 및 36)은 모두 통신 패브릭(27)에 결합될 수 있다. 메모리 제어기(22)는 사용 중에 메모리(12)에 결합될 수 있다. 상시-온 컴포넌트(16)는 외부 클록 소스(34)에 결합될 수 있다. 예시된 실시예에서, CPU 컴플렉스(14)는 하나 이상의 프로세서(도 1의 P(30))를 포함할 수 있다. 프로세서들(30)은 SOC(10) 내의 CPU 컴플렉스(14)의 CPU(들)를 형성할 수 있다. 일부 실시예들에서, 제2 내부 클록 생성기 회로(37)가 포함될 수 있으며, 하나 이상의 로컬 타임베이스(예컨대,도 1의 로컬 타임베이스(26B))에 결합될 수 있다. 이러한 실시예에서, 로컬 타임베이스(26B)는 클록 생성기 회로(36)에 결합되지 않을 수 있다. 다수의 부가적인 클록 생성기 회로가 또 다른 실시예들에 포함될 수 있다.
SOC(10)의 다양한 컴포넌트는 시간을 결정하기 위해 타임베이스에 대한 액세스를 가질 수 있다. 타임베이스들은 (예를 들어, 이벤트의 시간적 순서가 확인될 수 있도록, 또는 주어진 이벤트가 특정 실시간(벽시계 시간)과 연관될 수 있도록) 이벤트의 타임스탬프를 생성하는 데 사용될 수 있다. 타임베이스들은 (예컨대, 예를 들어 사용자에게 디스플레이하거나, 경고 또는 알람과 같은 타임베이스 알림을 허용하기 위해) 애플리케이션들에 시간을 제공하는 데 사용할 수 있다. 타임베이스들은 (예컨대, 멀티 태스킹 운영 시스템에서 태스크의 실행을 스케줄링하기 위해) 경과 시간을 측정하는 데 사용될 수 있다. 일반적으로, 타임베이스는 임의의 시간 측정(measure of time)일 수 있다. 일 실시예에서, 타임베이스는 특정 입상도로 시간을 나타내는 값일 수 있다(예컨대, 최하위 숫자(least significant digit)가 특정 시간량을 나타낼 수 있음). 최하위 숫자 중 일부는 (예컨대, 타임베이스 값이 SOC(10)의 클록이 허용할 수 있는 것보다 더 높은 입상도로 시간을 측정하는 경우에) 실제로 구현되지 않을 수 있다. 다른 실시예들에서, 타임베이스 값은 SOC(10)의 클록의 틱(tick)들을 측정할 수 있다. 클록의 주파수에 기초하여 실시간이 계산될 수 있다
타임베이스를 사용하는 컴포넌트들은 로컬 타임베이스 회로들(예컨대, 도 1의 CPU 컴플렉스(14), 주변장치(18A), 메모리 제어기(22) 및 PMGR(32) 내의 로컬 타임베이스 회로들(26A 내지 26D))을 포함할 수 있다. 일 실시예에서, 컴포넌트는 다수의 로컬 타임베이스 회로를 가질 수 있고/있거나(예컨대, CPU 컴플렉스(14) 내의 각각의 CPU(30)에 대한 로컬 타임베이스 회로(26A 내지 26D))가 있을 수 있음) 다수의 컴포넌트가 로컬 타임베이스 회로(26A 내지 26D)를 공유할 수 있다. 상시-온 컴포넌트(16) 내의 글로벌 타임베이스 회로(20)는 로컬 타임베이스 회로들(26A 내지 26D)에 의해 유지되는 로컬 타임베이스들을 동기화하도록 구성될 수 있다. 일부 실시예들에서, 글로벌 타임베이스 회로(20)는 또한 글로벌 타임베이스를 유지할 수 있다.
클록 생성기(36)는 로컬 타임베이스들(및 포함되는 경우, 선택적으로 글로벌 타임베이스)을 업데이트하는데 사용될 수 있는 비교적 고주파수 클록(Fr_clk)을 생성하도록 구성될 수 있다. 따라서, Fr_clk는 클록 생성기(36), 로컬 타임베이스 회로들(26A 내지 26D) 및 선택적으로 글로벌 타임베이스 회로(20) 사이에 결합된다. 클록 생성기(36)는 위상 고정 루프(phase-locked-loop, PLL), 지연 고정 루프(delay-locked-loop, DLL) 등과 같은 임의의 설계 및 구성을 가질 수 있다. 일반적으로, 클록 생성기(36)는 사용 중에 Fr_clk의 클록 주파수의 변동을 초래하는 다양한 부정확성의 원인들에 영향을 받을 수 있다. 예를 들어, 클록 생성기(36) 내의 회로는 온도 변화, 회로의 지연을 변화시키는 공급 전압 변동, 지터(jitter), 노이즈 등으로 인한 변동에 영향을 받을 수 있다. 공급 전압 변동은 노이즈, 부하 등으로 인한 일시적 변동 및 사용 중의 동적인 전압 변화와 같은 의도적인 변동 둘 모두를 포함할 수 있다. Fr_clk의 주파수는 시간이 지남에 따라 원하는 주파수보다 빠르고/빠르거나 느리게 드리프트(drift)할 수 있다. 따라서 로컬 타임베이스들에 오류가 있을 수 있다.
회로 분석, 경험적 데이터 및/또는 시뮬레이션에 기초하여, 주파수 변동은 원하는 주파수 부근의 범위 내에 있도록 결정될 수 있다. 원하는 주파수(즉, 클록 생성기(36)로부터 기대되는 주파수)는 공칭 주파수로 지칭될 수 있다. 클록은 주어진 주파수를 공칭적으로 갖는 것으로 지칭될 수 있으며, 공칭 주파수 부근에 일부 변동이 있을 수 있는 것이 공지되어 있다. 클록은 그의 공칭 주파수들을 비교함으로써 높거나 낮은 주파수를 공칭적으로 갖는 것으로 지칭될 수 있으며, 주파수는 변동으로 인해 변화될 수 있음을 주지한다.
저주파 클록(Rt_clk)은 (예컨대, 외부 클록 소스(34)에 대한) SOC(10)로의 입력에서 수신될 수 있다. 외부 클록 소스(34)는 예컨대, 수정 발진기와 같은 "고품질" 클록 소스일 수 있다. 클록 품질은 다양한 방식으로 측정될 수 있지만, 일반적으로 사용 중에 낮은 변동을 겪는 클록을 지칭하는 것일 수 있다. 따라서, 예를 들어, Rt_clk는 Fr_clk보다 사용 중에 더 낮은 변동을 가질 수 있다. 즉, Rt_clk의 공칭 주파수 부근의 클록 주파수의 변동의 범위는 Fr_clk의 변동의 범위보다 더 작을 수 있다.
따라서, 로컬 타임베이스들을 (서로에 대해 그리고 정확한 타임베이스 값으로) 동기화하도록 Rt_clk로부터 동기화 이벤트가 트리거될 수 있다. 동기화 이벤트는 타임베이스들의 동기화를 발생시키는 임의의 통신일 수 있다. 예를 들어, 글로벌 타임베이스 회로(20)는 Rt_clk로부터 트리거된 신호를 로컬 타임베이스 회로들(26A 내지 26C)에 어써트(assert)하도록 구성될 수 있다. 글로벌 타임베이스 회로(20)는 또한 로컬 타임베이스들이 업데이트를 위한 동기화 값을 갖도록 Rt_clk에 기초하여 후속 타임베이스 동기화 값을 통신할 수 있다. 일 실시예에서, 글로벌 타임베이스 회로(20)는 Rt_clk 신호의 각각의 주기마다 한 번 동기화 이벤트를 트리거할 수 있다. 예를 들어, 동기화 이벤트는 클록의 에지(edge)에서 트리거될 수 있다. 본 명세서에서 상승 에지가 일례로서 사용될 수 있지만, 하강 에지도 또한 사용될 수 있다. 글로벌 타임베이스 회로(20)는 또한 에지(예컨대, 동기화 이벤트 에지에 반대되는 에지 또는 상승 에지 예에 대한 하강 에지)에 응답하여 후속 타임베이스 동기화 값을 전송할 수 있다. 다른 실시예들은 필요에 따라, 동기화 이벤트가 Rt_clk의 다수의 주기마다 한 번, 또는 Rt_clk의 각각의 엣지마다 한 번 발생하는 것으로 정의할 수 있다.
후속 타임베이스 동기화 값은 각각의 동기화 주기에 이전 동기화 값 및 Fr_clk 및 Rt_clk의 주파수의 비율에 의존하는 값으로부터 생성될 수 있다. 비율은 정수 값이 아닐 수도 있고, 따라서 타임베이스는 Rt_clk 사이클의 관점에서 정수 부분과 분수 부분을 가질 수 있다. 예를 들어, 하나의 실시예에서, Fr_clk는 24 메가헤르츠(㎒)일 수 있고, Rt_clk는 32,768 ㎐일 수 있다. 이 예에서 비율은 가장 단순한 수학적 형태로 24 ㎒/32,768 ㎐ 또는 46875/64이다. 따라서, 연속적인 동기화 타임베이스 값들 간의 차이는 46875일 수 있고, Fr_clk의 각각의 클록 사이클은 로컬 타임베이스에서 64의 증분일 수 있다. 분수 부분은 각각의 증분이 64이므로 5비트일 수 있고, 분수 부분은 다양한 실시예들에서 필요에 따라 구현되거나 구현되지 않을 수 있다. 일부 실시예들에서, 분수 부분은 로컬 타임베이스가 외부 클록 소스로부터 도출된 타임베이스에 대해 드리프트하는 것을 방지하기 위해 사용될 수 있다. 따라서, Fr_clk 당 증분 및 연속적인 동기화 값들의 차이는 주파수들의 비율에 의존할 수 있다.
일 실시예에서, 적어도 하나의 로컬 타임베이스 회로(26A 내지 26D)는 글로벌 타임베이스 회로(20)에 의해 전송된 후속 타임베이스 동기화 값을 캡쳐하도록 구성되며, 로컬 타임베이스가 주어진 동기화 주기 내에서 증분됨에 따라, 로컬 타임베이스와 후속 타임베이스 동기화 값을 비교할 수 있다. Fr_clk가 예상보다 고주파수에서 동작하면 로컬 타임베이스는 동기화 주기가 종료되기 전에 후속 타임베이스 동기화 값에 도달할 수 있다. 로컬 타임베이스 회로들(26A 내지 26D)은 동기화 주기의 나머지 동안 로컬 타임베이스 값을 후속 타임베이스 동기화 값으로 포화시킬 수 있다. 따라서 로컬 타임베이스는 타임베이스가 동기화 주기의 종료점에서 갖게 될 정확한 타임베이스 값보다 더 "선행(get ahead)"하지 않을 수 있다. 또한, (로컬 타임베이스가 후속 동기화 값에 도달하지 않은 것으로 가정할 때) 로컬 타임베이스 회로들(26A 내지 26D)은 동기화 이벤트에 응답하여 로컬 타임베이스 내로 후속 타임베이스 동기화 값을 로딩할 수 있다. 후속 타임베이스 동기화 값을 로딩하는 것은 로컬 타임베이스가 정확한 타임베이스의 "뒤"로 동기화 주기보다 더 쳐지는 것을 방지할 수 있다.
임의의 통신 메커니즘은 글로벌 타임베이스 회로(20)로부터 로컬 타임베이스 회로들(26A 내지 26D)로 후속 타임베이스 동기화 값을 전송하는 데 사용될 수 있다. 일 실시예에서, Fr_clk의 레이트의 직렬 인터페이스가 값을 전송하는데 사용될 수 있다. 이 예에서 Fr_clk는 Rt_clk보다 상당히 더 고주파수이기 때문에, 후속 타임베이스 동기화 값은 동기화 주기의 종료 훨씬 전에 로컬 타임베이스 회로들(26A 및 26B)에 수신될 수 있다.
예시된 실시예는 클록 생성기 회로(36)로부터 로컬 타임베이스 회로들(26A 내지 26D) 및 글로벌 타임베이스 회로(20)로 제공되는 하나의 Fr_clk를 도시하지만, 다른 실시예들은 도 1에 점선 형태로 도시된 로컬 타임베이스 회로(26B)에 Fr_clk2를 제공하는 클록 생성기 회로(37)와 같은 Fr_clk의 다수의 소스들을 가질 수 있다. 이러한 실시예에서, 로컬 타임베이스 회로(26B)는 클록 생성기 회로(36)로부터 Fr_clk를 수신하지 않을 수 있다. 또 다른 실시예들에서, 다양한 로컬 타임베이스 회로들(26A 내지 26D)에 다른 Fr_clk들을 제공하는 더 많은 내부 클록 발생 회로들이 있을 수 있다. 소스들은 서로 독립적일 수 있으므로 클록의 위상 및 주파수가 상이할 수 있다.
전술한 바와 같이, 증분은 주어진 동기화 주기 동안 후속 타임베이스 동기화 값으로 포화될 수 있다. 일반적으로 값을 포화시킨다고 하는 것은 그 값이 되기까지 증분하되 증분된 결과는 추가적인 증분에도 불구하고 그 값에 고정되게 유지함을 지칭할 수 있다. 증분은 일반적으로 사용 중에 고정된 양만큼 값을 증가시키는 것을 지칭할 수 있다. 고정된 양은 일부 실시예들에서 하나, 또는 임의의 다른 정수 또는 다른 값일 수 있다. 위에서 언급한 예에서 증분은 64일 수 있다.
일 실시예에서, 상시-온 컴포넌트(16)는, SOC(10)의 다른 컴포넌트들(예컨대, CPU 컴플렉스(14), 주변장치들(18A 및 18B) 및 PMGR(32))이 파워 다운되는 경우 파워 업으로 유지되도록 구성될 수 있다. 보다 상세하게는, 상시-온 컴포넌트(16)는 SOC(10)가 외부 전력 관리 유닛(PMU)으로부터 전력을 수신하고 있을 때마다 온될 수 있다. 따라서, 상시-온 컴포넌트는 SOC(10)가 임의의 전력을 수신하고 있을 경우에는(예컨대, SOC(10)를 포함하는 디바이스가 스탠바이 모드에 있거나 능동적으로 동작하고 있을 때) 파워 온될 수 있지만, SOC(10)가 어떠한 전력도 수신하고 있지 않을 때에는(예컨대, 디바이스가 완전히 턴 오프될 때) 파워 온되지 않을 수 있다는 점에서, 상시-온 컴포넌트는 "상시-온"이다. 상시-온 컴포넌트(16)는 SOC(10)의 나머지가 오프되는 동안 소정 기능들을 지원하여, 저전력 동작을 허용할 수 있다. 또한, 글로벌 타임베이스 회로(20)는 시스템에 대한 글로벌 타임베이스를 계속 유지할 수 있어, 글로벌 타임베이스가 SOC(10)의 다음 파워 업(power up)에서 재초기화될 필요가 없다.
도 1에서, 상시-온 컴포넌트(16)를 다른 컴포넌트들로부터 분리시키는 점선(24)은 상시-온 컴포넌트(16)에 대한 독립적인 전력 도메인을 표시할 수 있다. 다른 컴포넌트들, 컴포넌트들의 그룹들 및/또는 서브컴포넌트들 또한 독립적인 전력 도메인들을 가질 수 있다. 일반적으로, 전력 도메인은 다른 전력 도메인들과 독립적으로 공급 전압을 수신하거나(즉, 파워 온됨) 또는 공급 전압을 수신하지 않도록(즉, 파워 오프됨) 구성될 수 있다. 일부 실시예들에서, 전력 도메인들은 상이한 공급 전압 크기들을 동시에 공급받을 수 있다. 독립성은 다양한 방식들로 제공될 수 있다. 예를 들어, 독립성은, 외부 PMU로부터 별개의 공급 전압 입력들을 제공함으로써, 공급 전압 입력들과 컴포넌트들 사이에 전력 스위치들을 제공하고, 주어진 도메인에 대한 전력 스위치들을 일 단위로 제어함으로써, 그리고/또는 위의 조합에 의해 제공될 수 있다. 또한 도 1에 예시된 것보다 더 많은 전력 도메인들이 존재할 수 있다. 예를 들어, CPU 컴플렉스(14)는 실시예에서 독립적인 전력 도메인을 가질 수 있다(그리고 각각의 CPU 프로세서(30)는 독립적인 전력 도메인을 또한 가질 수 있다). 하나 이상의 주변장치 컴포넌트들(18A 및 18B)은 일 실시예에서 하나 이상의 독립적인 전력 도메인에 있을 수 있다.
일반적으로, 컴포넌트는 파워 온되거나 파워 오프되는 것으로 지칭될 수 있다. 컴포넌트는, 공급 전압을 수신하고 있어서 설계된 대로 동작할 수 있는 경우, 파워 온될 수 있다. 컴포넌트가 파워 오프되는 경우, 그것은 공급 전압을 수신하고 있지 않으며 동작하고 있지 않다. 컴포넌트는 또한 그것이 파워 온되는 경우 파워 업된 것으로 지칭될 수 있고, 그것이 파워 오프되는 경우에는 파워 다운된 것으로 지칭될 수 있다. 컴포넌트를 파워 업하는 것은 파워 오프된 컴포넌트에 공급 전압을 공급하는 것을 지칭할 수 있고, 컴포넌트를 파워 다운하는 것은 컴포넌트로의 공급 전압의 공급을 종료하는 것을 지칭할 수 있다. 유사하게, 임의의 서브컴포넌트 및/또는 SOC(10)는 전체적으로 파워 업/다운 등이 되는 것으로 지칭될 수 있다. 컴포넌트는, SOC(10) 내에서 특정 기능을 제공하고 SOC(10)의 나머지에 대한 특정 인터페이스를 갖는 미리 정의된 회로 블록일 수 있다. 따라서, 상시-온 컴포넌트(16), 주변장치들(18A 및 18B) 및 CPU 컴플렉스(14), 메모리 제어기(22) 및 PMGR(32) 각각은 컴포넌트의 예들일 수 있다.
컴포넌트가 파워 업되었는데 클록 게이팅되지(clock gated) 않으면 그것은 활성일 수 있다. 따라서, 예를 들어, CPU 컴플렉스(14)의 프로세서는 활성이면, 명령어 실행을 위해 이용가능할 수 있다. 컴포넌트는, 파워 오프되거나, 명령어들이 실행될 수 있기 전에 상당한 지연을 겪게될 수 있는 다른 저전력 상태인 경우에, 비활성일 수 있다. 예를 들어, 컴포넌트가 위상 고정 루프(PLL)의 리셋 또는 재잠금을 요구하는 경우, 컴포넌트는 가동 상태로 유지되더라도 비활성일 수 있다. 컴포넌트는 또한 클록 게이팅되면 비활성일 수 있다. 클록 게이팅은, 컴포넌트의 디지털 회로에 대한 클록이 일시적으로 "턴 오프되어", 클로킹된 저장 디바이스, 예를 들어, 플롭, 레지스터 등의 디지털 회로로부터의 상태가 캡쳐되는 것이 방지되는 기술들을 지칭할 수 있다.
앞서 언급된 바와 같이, CPU 컴플렉스(14)는 SOC(10)에서 CPU 컴플렉스(14)의 CPU로서 기능할 수 있는 하나 이상의 프로세서(30)를 포함할 수 있다. 시스템의 CPU는 시스템의 메인 제어 소프트웨어, 예컨대 운영체제를 실행시키는 프로세서(들)를 포함한다. 일반적으로, 사용 중에 CPU에 의해 실행되는 소프트웨어는 시스템의 다른 컴포넌트들을 제어하여 시스템의 원하는 기능을 실현할 수 있다. 프로세서들은 또한 다른 소프트웨어, 예를 들어, 애플리케이션 프로그램들을 실행할 수 있다. 애플리케이션 프로그램들은 사용자 기능을 제공할 수 있고, 저-레벨 디바이스 제어, 스케줄링, 메모리 관리 등을 위해 운영 시스템에 의존할 수 있다. 따라서, 프로세서들은 또한 애플리케이션 프로세서들로 지칭될 수 있다. CPU 컴플렉스(14)는 다른 하드웨어, 예컨대, L2 캐시 및/또는 시스템의 다른 컴포넌트들에 대한 인터페이스(예컨대, 통신 패브릭(27)에 대한 인터페이스)를 더 포함할 수 있다.
동작 포인트는 CPU 컴플렉스(14), 상시-온 컴포넌트(16), SOC(10)의 다른 컴포넌트들 등에 대한 동작 주파수와 전력 공급 전압 크기의 조합을 지칭할 수 있다. 동작 주파수는, 컴포넌트를 클로킹하는 클록의 주파수일 수 있다. 동작 주파수는 또한 클록 주파수 또는 간단히 주파수로 지칭될 수 있다. 동작 포인트는 또한 동작 상태 또는 전력 상태로 지칭될 수 있다. 동작 포인트는, 상시-온 컴포넌트(16)에 저장될 수 있고, 재구성이 발생하는 경우 컴포넌트들로 리프로그래밍될 수 있는 프로그래밍가능 구성 데이터의 일부일 수 있다.
일반적으로, 프로세서는 프로세서에 의해 구현된 명령어 세트 아키텍처에 정의된 명령어들을 실행하도록 구성된 임의의 회로 및/또는 마이크로코드를 포함할 수 있다. 프로세서들은 시스템-온-칩(SOC(10)) 또는 다른 레벨들의 통합부로서 다른 컴포넌트들과 함께 집적 회로 상에 구현된 프로세서 코어들을 망라할 수 있다. 프로세서들은 별개의 마이크로프로세서들, 멀티칩 모듈 구현부들 내에 집적화된 프로세서 코어들 및/또는 마이크로프로세서들, 다수의 집적 회로들로서 구현된 프로세서들 등을 추가로 망라할 수 있다.
메모리 제어기(22)는 일반적으로, SOC(10)의 다른 컴포넌트들로부터 메모리 동작들을 수신하고, 메모리(12)에 액세스하여 메모리 동작들을 완료하기 위한 회로를 포함할 수 있다. 메모리 제어기(22)는 임의의 타입의 메모리(12)에 액세스하도록 구성될 수 있다. 예를 들어, 메모리(12)는 SRAM(static random access memory), DRAM(dynamic RAM), 예컨대 더블 데이터 레이트(DDR, DDR2, DDR3, DDR4 등) DRAM을 포함하는 SDRAM(synchronous DRAM)일 수 있다. 저전력/모바일 버전들의 DDR DRAM(예컨대, LPDDR, mDDR 등)이 지원될 수 있다. 메모리 제어기(22)는, 동작들을 순서화하기 위한(그리고 잠재적으로 재순서화하기 위한) 그리고 동작들을 메모리(12)에 제시하기 위한, 메모리 동작들에 대한 큐(queue)들을 포함할 수 있다. 메모리 제어기(22)는 메모리로의 기록을 기다리는 기록 데이터 및 메모리 동작의 소스로의 복귀를 기다리는 판독 데이터를 저장하는 데이터 버퍼들을 더 포함할 수 있다. 일부 실시예들에서, 메모리 제어기(22)는 최근에 액세스된 메모리 데이터를 저장하는 메모리 캐시를 포함할 수 있다. SOC 구현예들에서, 예를 들어, 메모리 캐시는, 곧 다시 액세스될 것으로 예상되는 경우에 메모리(12)로부터의 데이터의 재-액세스를 피함으로써, SOC에서의 전력 소모를 감소시킬 수 있다. 일부 경우들에서, 메모리 캐시는 또한, 소정의 컴포넌트들만을 보조하는 전용 캐시(private cache)들 그 예로서 프로세서들 내의 L2 캐시 또는 캐시들과 상반되는, 시스템 캐시로서 지칭될 수 있다. 추가적으로, 일부 실시예들에서, 시스템 캐시는 메모리 제어기(22) 내에 위치될 필요가 없다.
주변장치들(18A, 18B)은 SOC(10)에 포함된 추가 하드웨어 기능성의 임의의 세트일 수 있다. 예를 들어, 주변장치들(18A 및 18B)은 비디오 주변장치들, 예를 들어, 카메라 또는 다른 이미지 센서로부터의 이미지 캡쳐 데이터를 프로세싱하도록 구성된 이미지 신호 프로세서, 하나 이상의 디스플레이 디바이스 상에 비디오 데이터를 디스플레이하도록 구성된 디스플레이 제어기들, 그래픽 프로세싱 유닛(GPU)들, 비디오 인코더/디코더들, 스케일러(scaler)들, 로테이터(rotator)들, 블렌더(blender)들 등을 포함할 수 있다. 주변장치들은 오디오 주변장치들, 예를 들어, 마이크로폰들, 스피커들, 마이크로폰들 및 스피커들에 대한 인터페이스들, 오디오 프로세서들, 디지털 신호 프로세서들, 믹서들 등을 포함할 수 있다. 주변장치들은, 인터페이스들, 예를 들어, 범용 직렬 버스(USB), PCI 익스프레스(PCIe)를 포함한 주변장치 컴포넌트 상호접속부(PCI), 직렬 및 병렬 포트들 등을 포함한 SOC(10) 외부의 다양한 인터페이스들에 대한 인터페이스 제어기들(예컨대, 주변장치(18B))을 포함할 수 있다. 주변장치들은 네트워킹 주변장치들, 예를 들어, 미디어 액세스 제어기(MAC)들을 포함할 수 있다. 하드웨어의 임의의 세트가 포함될 수 있다.
통신 패브릭(27)은 SOC(10)의 컴포넌트들 간의 통신을 위한 임의의 통신 상호접속부 및 프로토콜일 수 있다. 통신 패브릭(27)은 공유 버스 구성, 크로스 바(cross bar) 구성, 및 브릿지를 이용한 계층적 버스를 포함하는 버스-기반일 수 있다. 통신 패브릭(27)은, 또한, 패킷 기반일 수 있고, 브리지를 갖는 계층구조, 크로스 바, 포인트-투-포인트(point-to-point), 또는 다른 상호접속부들일 수 있다.
PMGR(32)은 외부 PMU로부터 요청된 공급 전압 크기들을 제어하도록 구성될 수 있다. SOC(10)를 위해 외부 PMU에 의해 생성된 다수의 공급 전압들이 있을 수 있다. 예를 들어, CPU 컴플렉스(14)에 대한 공급 전압, SOC의 나머지에 대한 공급 전압, 메모리(12)에 대한 공급 전압 등이 있을 수 있다. PMGR(32)은 직접적인 소프트웨어 제어(예컨대, 소프트웨어가 컴포넌트들의 파워 업 및/또는 파워 다운을 직접 요청할 수 있음)를 받을 수 있고/있거나, SOC(10)를 모니터링하고 다양한 컴포넌트들이 언제 파워 업되거나 파워 다운될지를 결정하도록 구성될 수 있다.
SOC(10)의 컴포넌트들의 개수(및 CPU 복합체(14) 내에서와 같은, 도 1에 도시된 컴포넌트들에 대한 서브컴포넌트들의 개수)는 실시예마다 다를 수 있다는 것에 유의한다. 도 1에 도시된 개수보다 많거나 적은 각각의 컴포넌트/서브컴포넌트가 있을 수 있다.
도 2는 로컬 타임베이스 회로(26A)의 하나의 실시예의 블록도이다. 다른 로컬 타임베이스 회로들(26B 내지 26D)은 유사할 수 있다. 도 2의 실시예에서, 로컬 타임베이스 회로(26A)는 제어 회로(40), 후속 동기화 값 레지스터(42), 로컬 타임베이스 레지스터(44) 및 증분 레지스터(46)를 포함한다. 제어 회로(40)는 글로벌 타임베이스 회로(20)로부터의 Fr_clk 입력 및 글로벌 타임베이스 인터페이스에 결합되고, 후속 동기화 값 레지스터(42), 로컬 타임베이스 레지스터(44) 및 증분 레지스터(46)에 더 결합된다.
Fr_clk에 응답하여, 제어 회로(40)는 레지스터(42)의 후속 타임베이스 동기화 값("후속 동기화 값")으로의 포화의 대상이 되는 로컬 타임베이스 레지스터(44)를 증분하도록 구성될 수 있다. 예를 들어, 증분은 Fr_clk의 각각의 상승 에지에 응답하여 적용될 수 있다. 전술한 바와 같이, 증분의 크기는 예시적인 실시예에서 Fr_clk 주파수와 Rt_clk 주파수의 비율에 의존할 수 있다. 증분의 크기는 예를 들어 증분 레지스터(46)에 프로그램될 수 있다. 제어 회로(40)는 현재 로컬 타임베이스에 증분을 가산할 수 있고 그 결과(후속 동기화 값으로 포화됨)를 로컬 타임베이스 레지스터(44)에 기록할 수 있다.
일 실시예에서, 후속 동기화 값은 동기화 이벤트들 사이의 주기 중에 글로벌 타임베이스 인터페이스를 통해 로컬 타임베이스 회로(26A)로 전송될 수 있다. 위의 예에서, 동기화 이벤트들은 Rt_clk의 상승 에지에서 발생하고 후속 동기화 값은 Rt_clk의 하강 에지에서 전송된다. 보다 상세하게는, 글로벌 타임베이스 인터페이스는 Fr_clk 주파수에서 동작하는 직렬 인터페이스일 수 있고, 일 실시예에서, Rt_clk의 하강 에지에서 시작하는 Fr_clk의 다수의 클록 사이클에 걸쳐 후속 동기화 값을 전송할 수 있다. 제어 회로(40)는 후속 동기화 값이 제공되고 있을 때, 후속 동기화 값 레지스터(42)를 시프트 레지스터로서 동작하도록 구성될 수 있고, 후속 동기화 값 레지스터(42)로 시프트되면 후속 동기화 값이 유효함을 표시하도록 구성될 수 있다. 제어 회로(40)는 업데이트된 값이 전송될 때까지, 동기화 이벤트에 응답하여 후속 동기화 값을 무효로 처리하도록 구성될 수 있다. 다른 실시예들은 그 값을 병렬 버스로서 또는 다른 메커니즘들을 사용하여 전송할 수 있다.
다른 실시예들에서, 로컬 타임베이스 회로(26A)는 글로벌 타임베이스 회로(20)로부터의 동기화 값들 사이의 차이를 수신할 수 있고, 그 차이를 이전 값에 가산함으로써 후속 동기화 값을 국부적으로 생성하도록 구성될 수 있다.
다음으로 도 3을 참조하면, 글로벌 타임베이스 회로(20)의 하나의 실시예의 블록도가 도시된다. 도 3의 실시예에서, 글로벌 타임베이스 회로(20)는 제어 회로(50), 후속 동기화 값 레지스터(52), 글로벌 타임베이스 레지스터(54), 증분 레지스터(56) 및 동기화 증분 레지스터(58)를 포함한다. 제어 회로(50)는 Rt_clk 입력, Fr_clk 입력 및 로컬 타임베이스 회로들(26A 내지 26D)에 대한 글로벌 타임베이스 인터페이스에 결합된다. 제어 회로(50)는 또한 후속 동기화 값 레지스터(52), 글로벌 타임베이스 레지스터(54), 증분 레지스터(56) 및 동기화 증분 레지스터(58)에 결합된다.
로컬 타임베이스 회로(26A)에 대한 위의 설명과 유사하게, 제어 회로(50)는 레지스터(52) 내의 후속 타임베이스 동기화 값("후속 동기화 값")으로의 포화의 대상이 되는 글로벌 타임베이스 레지스터(54)를 증분하도록 구성될 수 있다. 증분의 크기는 예를 들어 증분 레지스터(56)에 프로그램될 수 있다. 제어 회로(50)는 현재 글로벌 타임베이스에 증분을 가산할 수 있고 그 결과(후속 동기화 값으로 포화됨)를 글로벌 타임베이스 레지스터(54)에 기록할 수 있다. 다른 실시예들에서, 글로벌 타임베이스 레지스터(54)는 제공되지 않을 수 있다. 예를 들어, 타임베이스에 액세스하는 모든 컴포넌트가 로컬 타임베이스 회로(26A 내지 26D)에 대한 액세스를 갖는 경우, 글로벌 타임베이스 레지스터(54)는 필요하지 않을 수 있다. 대신에, 글로벌 타임베이스 회로(20)는 Rt_clk에 응답하여 로컬 타임베이스들의 동기화를 담당할 수 있다.
일 실시예에서, 제어 회로(50)는 레지스터(58)로부터의 동기화 증분을 후속 동기화 값 레지스터(52)의 현재 콘텐츠에 부가하고 그 결과를 후속 동기화 값 레지스터(52)에 기록함으로써 동기화 이벤트에 응답하여 후속 동기화 값을 생성할 수 있다. 동기화 증분은 동기화 증분 레지스터(58) 내로 프로그램될 수 있고, Fr_clk와 Rt_clk의 주파수의 비율에 의존할 수 있다. 제어 회로(50)는, 로컬 타임베이스 회로(26A)와 관련하여 전술한 바와 같이, 동기화 이벤트 사이의 주기 중에 글로벌 타임베이스 인터페이스를 통해 로컬 타임베이스 회로들(26A 내지 26D)에 후속 동기화 값을 전송하도록 구성될 수 있다.
도 4는 로컬 타임베이스 회로들(26A 내지 26D) 및 글로벌 타임베이스 회로(20)의 하나의 실시예의 동작을 예시하는 타이밍도이다. 도 4에서, Fr_clk 뿐만 아니라 Rt_clk이 도시된다(다만 주파수의 큰 비율에서, Fr_clk에 대해 축척에 맞지 않음). sync_time은 글로벌 타임베이스 회로(50) 내의 후속 동기화 값 레지스터(56)의 후속 동기화 값일 수 있다. 따라서, sync_time은 현재의 상승 Rt_clk 에지에서 후속 동기화 값(후속 상승 Rt_clk 에지에 대해 유효함)으로 변경될 수 있다. 따라서, 동기 시간은 도 4의 N으로부터 Rt_clk의 제1 주기에서 N+M(여기서 M은 동기화 증분 레지스터(58)의 동기화 증분임)으로 변경되고 이어서, 제2 주기에서 N+2M, 및 제3 주기에서 N+3M으로 변경된다. Rt_clk의 하강 에지에 응답하여, 글로벌 타임베이스 회로(20)는 로컬 타임베이스 회로들(26A 내지 26D)에 sync_time을 전송할 수 있고, 따라서 도 4에 도시된 바와 같이 후속 동기화 값(로컬 타임베이스 회로들(26A 내지 26D)의 레지스터(42)의 후속 동기화 값)은 Rt_clk 주기에 걸쳐 대략적으로 중간에 업데이트될 수 있다.
글로벌 타임베이스 및 로컬 타임베이스 값도 각각의 주기에 도시되어 있다. 도시된 제1 주기의 시작(점선(60)) 시에, 두 타임베이스들은 N에 동기화된다. 제1 클록 주기에서, Fr_clk가 뒤쳐질 수 있고, 따라서 주기의 종료(점선(62)) 시에 타임베이스들은 후속 동기화 값(예컨대, 글로벌 타임베이스의 경우 N+M-x, 로컬 타임베이스의 경우 N+M-y) 미만이다. 글로벌 및 로컬 타임베이스들은 Fr_clk에 대한 상이한 클록 소스 또는 Fr_clk의 다른 변동으로 인해(예컨대, Fr_clk 또는 다른 로컬 변동에 대한 불균형 클록 트리로 인해) 상이할 수 있다. 다른 경우들에서, x와 y는 동일할 수 있다.
글로벌 타임베이스 회로(20) 및 로컬 타임베이스 회로들(26A 내지 26D)은 (다음 주기 동안 후속 동기화 값을 업데이트하기 전에) 동기화 이벤트에 응답하여 후속 동기화 값을 로딩할 수 있으며, 따라서 글로벌 타임베이스 및 로컬 타임베이스 둘 모두는 제2 주기의 시작 시에 N+M으로 이동할 수 있다. 제2 주기에서, Fr_clk는 예상보다 빠르게 동작될 수 있으므로, 따라서 글로벌 타임베이스 및 로컬 타임베이스는 제2 주기의 종료(예컨대, 점선(64)) 시에 N+2M으로 포화될 수 있다.
도 4의 타이밍도는 동기화 값의 포화 및 로딩 모두를 예시하기 위한 예시에 불과하다는 것을 유의한다. 실제 동작에서, 인접한 주기들은 종종 동일한 동작(예컨대, 포화 또는 로딩)을 가질 수 있으며, 덜 빈번하게 반대되는 동기화로 전환한다.
도 5는 로컬 타임베이스 회로들(26A 내지 26D)(및 보다 상세하게는 도 2의 실시예에서, 제어 회로(40))의 하나의 실시예의 동작을 예시하는 흐름도이다. 블록들이 이해의 용이함을 위해 특정 순서로 도시되었지만, 다른 순서들도 사용될 수 있다. 블록들은 제어 회로(40) 내의 조합 로직 회로에서 병렬로 수행될 수 있다. 블록들, 블록들의 조합들, 및/또는 흐름도 전체는 다수의 클록 사이클들에 걸쳐 파이프라인화될 수 있다. 제어 회로(40)는 도 5에 도시된 동작을 구현하도록 구성될 수 있다.
후속 동기화 값이 글로벌 타임베이스 회로(20)로부터 수신되면(결정 블록(70), "예" 가지), 제어 회로(40)는 후속 동기화 값 레지스터(42)에서 후속 동기화 값을 캡쳐하도록 구성될 수 있다(블록(72)). 예를 들어, 전술한 바와 같이, 글로벌 타임베이스 회로(20)는 후속 동기화 값을 직렬 비트 스트림으로서 Fr_clk 클록 레이트로 전송할 수 있다. 이러한 실시예에서, 후속 동기화 값을 캡쳐하는 것은 직렬 데이터를 후속 동기화 값 레지스터(42)로 시프트하는 것을 포함할 수 있다. 후속 동기화 값은 동기화 주기의 시작으로부터 데이터가 레지스터(42)에 캡쳐될 때까지 무효일 수 있다.
Fr_clk 클록 상승 에지가 검출되면(결정 블록(74), "예" 가지), 후속 동기화 값이 유효하지 않거나(결정 블록(76), "아니오" 가지) 또는 후속 동기화 값이 유효하고(결정 블록(76), "예" 가지) 로컬 타임베이스 값이 후속 동기화 값에 도달하지 않았다면(결정 블록(78), "아니오" 가지), 제어 회로(40)는 레지스터(44)의 로컬 타임베이스를 업데이트하도록 구성될 수 있다(블록(80)). 보다 상세하게는, 일 실시예에서, 업데이트는 레지스터(46)의 증분 값 만큼의 레지스터(44)의 값의 증분일 수 있다. 한편, Fr_clk 클록 상승 에지가 검출되면(결정 블록(74), "예" 가지), 후속 동기화 값이 유효하고(결정 블록(76), "예" 가지) 로컬 타임베이스 값이 후속 동기화 값에 도달했다면(결정 블록(78), "예" 가지), 제어 회로(40)는 레지스터(44)의 로컬 타임베이스를 후속 동기화 값으로 포화시키도록 구성될 수 있다(블록(82)).
동기화 이벤트가 글로벌 타임베이스 회로(20)에 의해 시그널링되면(결정 블록(84), "예" 가지), 제어 회로(40)는 로컬 타임베이스가 이미 포화되지 않은 경우 로컬 타임베이스 내로 후속 동기화 값을 로딩하도록 구성될 수 있다(블록(86)). 포화가 후속 동기화 값에 있기 때문에, 로딩은 동기화 이벤트의 시간의 로컬 타임베이스의 콘텐츠들과 독립적으로 수행될 수 있다. 로컬 타임베이스가 포화되면, 이는 이미 후속 동기화 값에서 있는 것이고, 따라서 로딩이 필요하지 않지만 어쨌든 로딩이 수행될 수는 있다.
도 6은 글로벌 타임베이스 회로(20)(및 보다 상세하게는 도 3의 실시예에서, 제어 회로(50))의 하나의 실시예의 동작을 예시하는 흐름도이다. 블록들이 이해의 용이함을 위해 특정 순서로 도시되었지만, 다른 순서들도 사용될 수 있다. 블록들은 제어 회로(50) 내의 조합 로직 회로에서 병렬로 수행될 수 있다. 블록들, 블록들의 조합들, 및/또는 흐름도 전체는 다수의 클록 사이클들에 걸쳐 파이프라인화될 수 있다. 제어 회로(50)는 도 6에 도시된 동작을 구현하도록 구성될 수 있다.
Rt_clk 하강 에지가 검출되면(결정 블록(90), "예" 가지), 제어 회로(50)는 후속 동기화 값 레지스터(52)의 후속 동기화 값을 로컬 타임베이스 회로들(26A 내지 26D)로 전송하도록 구성될 수 있다(블록(92)). 예를 들어, 전술한 바와 같이, 글로벌 타임베이스 회로(20)는 후속 동기화 값을 직렬 비트 스트림으로서 Fr_clk 클록 레이트로 전송할 수 있다.
Fr_clk 클록 상승 에지가 검출되고(결정 블록(94), "예" 가지) 글로벌 타임베이스 값이 후속 동기화 값에 도달하지 않았다면(결정 블록(96), "아니오" 가지), 제어 회로(50)는 레지스터(54)의 글로벌 타임베이스를 업데이트하도록 구성될 수 있다(블록(98)). 보다 상세하게는, 일 실시예에서, 업데이트는 레지스터(56)의 증분 값 만큼의 레지스터(54)의 값의 증분일 수 있다. 한편, Fr_clk 클록 상승 에지가 검출되고(결정 블록(94), "예" 가지) 글로벌 타임베이스 값이 후속 동기화 값에 도달했다면(결정 블록(96), "예" 가지), 제어 회로(50)는 레지스터(54)의 글로벌 타임베이스를 후속 동기화 값으로 포화시키도록 구성될 수 있다(블록(100)).
Rt_clk 상승 에지가 검출되면(결정 블록(102), "예" 가지), 동기화 이벤트가 발생한다. 제어 회로(50)는 글로벌 타임베이스가 이미 포화되지 않은 경우, 글로벌 타임베이스 내로 후속 동기화 값을 로딩하도록 구성될 수 있다(블록(104)). 포화가 후속 동기화 값에 있기 때문에, 로딩은 동기화 이벤트의 시간의 글로벌 타임베이스의 콘텐츠들과 독립적으로 수행될 수 있다. 제어 회로(50)는 또한 동기화 이벤트를 로컬 타임베이스 회로들(26A 내지 26D)에 시그널링하도록 구성될 수도 있다(블록(106)). 부가적으로, 제어 회로(50)는 현재 값을 레지스터(58)로부터의 동기화 증분에 가산함으로써 레지스터(52)의 후속 동기화 값을 업데이트하도록 구성될 수 있다(블록(108)).
도 7은 하나의 실시예에 대한(또한 보다 상세하게는, 도 2 및 도 3의 실시예들에서, 각각의 제어 회로들(40 및 50)에 대한) 글로벌 및 로컬 타임베이스들의 초기화를 예시하는 흐름도이다. 블록들이 이해의 용이함을 위해 특정 순서로 도시되었지만, 다른 순서들도 사용될 수 있다. 블록은 제어 회로들(40 및 50) 내의 조합 논리 회로에서 병렬로 수행될 수 있다. 블록들, 블록들의 조합들, 및/또는 흐름도 전체는 다수의 클록 사이클들에 걸쳐 파이프라인화될 수 있다. 제어 회로들(40 및 50)은 도 7에 도시된 동작을 구현하도록 구성될 수 있다.
글로벌 타임베이스 회로(20)는 상시-온 컴포넌트(16)의 일부일 수 있으며 따라서 상시-온 컴포넌트(16)에 대한 리셋의 릴리즈(release)에 기초하여 리셋될 수 있다. 특히, 전력이 없는 기간 이후 SOC(10)에 전력이 처음 공급 될 때, 상시-온 컴포넌트(16)가 리셋될 수 있다. 일반적으로, SOC(10)에 전원이 공급되는 한, 심지어 SOC(10)의 다른 부분들이 파워 오프되었어도 상시-온 컴포넌트(16)는 온 상태일 수 있고 리셋될 필요가 없을 수 있다. 상시-온 컴포넌트(16)가 리셋되고 리셋이 릴리즈되면(결정 블록(110), "예" 가지), 제어 회로(50)는 Fr_clk에 기초하여 0에서 시작하여 글로벌 타임베이스 레지스터(54)를 업데이트할 수 있다(블록(112)). 업데이트는 도 6과 관련하여 전술한 바와 같이 수행될 수 있다.
(상시-온 컴포넌트(16) 이외의) SOC(10) 내의 다른 컴포넌트가 리셋되고 리셋이 릴리즈되면(결정 블록(114), "예" 가지), 대응되는 로컬 타임베이스 회로(26A 내지 26D) 내의 제어 회로(40)는 글로벌 타임베이스 회로(20)로부터의 각각의 전송에서 후속 동기화 값 레지스터(42)에 후속 동기화 값을 캡쳐하기 시작할 수 있다(블록(116)). 그러나, 후속 동기화 값이 직렬 전송되는 실시예들에서, 리셋이 전송 중에 릴리즈되고 따라서, 후속 동기화 값이 올바르게 캡쳐되지 않을 수도 있다. 따라서, 제어 회로(40)는 리셋 릴리즈 후 제2 동기화 이벤트를 검출하기 위해 대기할 수 있고(블록(118)), 이어서 후속 동기화 값을 후속 동기화 레지스터(42)로부터 로컬 타임베이스 레지스터(44) 내로 로딩할 수 있다(블록(120)). 이어서, 제어 회로(40)는 도 5와 관련하여 기술된 바와 같이 Fr_clk 값으로 레지스터를 업데이트하기 시작할 수 있다(블록(122)).
다음으로 도 8을 참조하면, 시스템(150)의 하나의 실시예의 블록도가 도시된다. 예시되는 실시예에서, 시스템(150)은 하나 이상의 주변장치(154) 및 외부 메모리(12)에 결합된 SOC(10)의 적어도 하나의 인스턴스를 포함한다. 공급 전압들을 SOC(10)에 공급할 뿐 아니라 하나 이상의 공급 전압들을 메모리(12) 및/또는 주변장치들(154)에 공급하는 전력 관리 유닛(PMU)(156)이 제공된다. 일부 실시예들에서, SOC(10)의 1개 초과의 인스턴스들이 포함될 수 있다(그리고 1개 초과의 메모리(12)가 마찬가지로 포함될 수 있다).
PMU(156)는 일반적으로, 공급 전압들을 생성하고 시스템의 다른 컴포넌트들, 예를 들어, SOC(10), 메모리(12), 다양한 오프-칩 주변장치 컴포넌트들(154), 예를 들어, 디스플레이 디바이스들, 이미지 센서들, 사용자 인터페이스 디바이스들 등에 이러한 공급 전압들을 제공하기 위한 회로를 포함할 수 있다. 따라서, PMU(156)는 프로그래밍가능 전압 레귤레이터들, SOC(10)와 인터페이싱하기 위한 로직 및 더 상세하게는 전압 요청들을 수신하기 위한 SOC PMGR(16) 등을 포함할 수 있다.
주변장치들(154)은 시스템(150)의 유형에 따라 임의의 원하는 회로를 포함할 수 있다. 예를 들어, 하나의 실시예에서, 시스템(150)은 모바일 디바이스(예컨대, 개인 휴대 정보 단말기(personal digital assistant, PDA), 스마트 폰 등)일 수 있고, 주변장치(154)들은 WiFi, 블루투스(Bluetooth), 셀룰러, 글로벌 포지셔닝 시스템 등과 같은 다양한 유형의 무선 통신용 디바이스들을 포함할 수 있다. 또한, 주변장치(154)들은 RAM 저장 장치, 솔리드 스테이트 저장 장치(solid state storage) 또는 디스크 저장 장치를 비롯한 추가적인 저장 장치를 포함할 수 있다. 주변장치(154)들은 터치 디스플레이 스크린 또는 멀티터치 디스플레이 스크린을 비롯한 디스플레이 스크린과 같은 사용자 인터페이스 디바이스들, 키보드 또는 다른 입력 디바이스들, 마이크로폰, 스피커 등을 포함할 수 있다. 다른 실시예들에서, 시스템(150)은 임의의 유형의 컴퓨팅 시스템(예를 들어, 데스크톱 개인용 컴퓨터, 랩톱, 워크스테이션, 넷 톱(net top) 등)일 수 있다.
외부 메모리(12)는 임의의 유형의 메모리를 포함할 수 있다. 예를 들어, 외부 메모리(12)는 SRAM, 동적 RAM(DRAM), 예컨대, 동기 DRAM(SDRAM), 더블 데이터 레이트(DDR, DDR2, DDR3 등) SDRAM, RAMBUS DRAM, 저 전력 버전들의 DDR DRAM(예컨대, LPDDR, mDDR 등) 등일 수 있다. 외부 메모리(12)는 메모리 디바이스들이 장착되는 하나 이상의 메모리 모듈들, 예를 들어, 단일 인라인 메모리 모듈(SIMM)들, 듀얼 인라인 메모리 모듈(DIMM)들 등을 포함할 수 있다. 대안적으로, 외부 메모리(12)는 칩-온-칩 또는 패키지-온-패키지 구현예로 SOC(10) 상에 장착되는 하나 이상의 메모리 디바이스들을 포함할 수 있다.
상기의 개시내용이 완전히 이해된다면, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어서 다수의 변형들 및 수정들이 명백해질 것이다. 다음의 청구범위는 모든 그러한 변형들 및 수정들을 망라하는 것으로 해석되는 것으로 의도된다.

Claims (20)

  1. 장치로서,
    제1 타임베이스 레지스터;
    상기 제1 타임베이스 레지스터에 결합된 제1 제어 회로 - 상기 제1 제어 회로는:
    제1 클록에 응답하여 상기 제1 타임베이스 레지스터에서 제1 타임베이스 값을 증분하고;
    상기 제1 타임베이스 값이 동기화 이벤트 전에 제1 값에 도달하는 것에 응답하여 상기 제1 타임베이스 값을 상기 제1 값으로 포화시키고;
    상기 동기화 이벤트에 응답하여, 또한 상기 제1 타임베이스 값이 상기 동기화 이벤트 전에 상기 제1 값에 도달하지 않은 것에 응답하여 상기 제1 값을 상기 제1 타임베이스 레지스터 내로 로딩하도록 구성됨 -; 및
    상기 제1 제어 회로에 결합된 제2 제어 회로를 포함하며, 상기 제2 제어 회로는:
    상기 제1 값을 생성하고;
    제2 클록의 제1 에지에 응답하여 상기 동기화 이벤트를 생성하고;
    상기 제2 클록의 제2 에지에 응답하여 상기 제1 제어 회로로 상기 제1 값을 전송하도록 구성되며, 상기 제2 에지는 상기 제1 에지에 반대되는 에지인, 장치.
  2. 제1항에 있어서,
    제2 타임베이스 레지스터; 및
    상기 제2 타임베이스 레지스터 및 상기 제2 제어 회로에 결합된 제3 제어 회로를 더 포함하며, 상기 제3 제어 회로는:
    제3 클록에 응답하여 상기 제2 타임베이스 레지스터에서 제2 타임베이스 값을 증분하고;
    상기 제2 타임베이스 값이 상기 동기화 이벤트 전에 상기 제1 값에 도달하는 것에 응답하여 상기 제2 타임베이스 값을 상기 제1 값으로 포화시키고;
    상기 동기화 이벤트에 응답하여, 또한 상기 제2 타임베이스 값이 상기 동기화 이벤트 전에 상기 제1 값에 도달하지 않은 것에 응답하여 상기 제1 값을 상기 제2 타임베이스 레지스터 내로 로딩하도록 구성되는, 장치.
  3. 제2항에 있어서, 상기 제1 클록 및 상기 제3 클록은 동일한 주파수를 가지며, 상기 제2 클록은 상기 동일한 주파수보다 작은 제2 주파수를 갖는, 장치.
  4. 제1항에 있어서, 상기 제1 클록은 제1 주파수를 가지고, 상기 제2 클록은 상기 제1 주파수보다 작은 제2 주파수를 가지며, 연속적인 동기화 이벤트들에서의 상기 제1 값들 간의 차이는 상기 제1 주파수와 상기 제2 주파수의 비율에 의존하는, 장치.
  5. 제1항에 있어서, 상기 제1 에지는 상기 제2 클록의 상승 에지인, 장치.
  6. 제5항에 있어서, 상기 제2 에지는 상기 제2 클록의 하강 에지인, 장치.
  7. 제1항에 있어서, 상기 제1 클록은 제1 클록 소스에 의해 생성되고, 상기 제2 클록은 제2 클록 소스에 의해 생성되고, 상기 제1 클록 소스는 사용 중에 제1 변동에 영향을 받을 수 있고, 상기 제2 클록 소스는 사용 중에 제2 변동에 영향을 받을 수 있고, 상기 제1 변동의 제1 범위는 상기 제2 변동의 제2 범위보다 더 큰, 장치.
  8. 제1항에 있어서, 상기 제2 제어 회로에 결합된 제3 타임베이스 레지스터를 더 포함하며, 상기 제2 제어 회로는:
    상기 제1 클록에 응답하여 상기 제3 타임베이스 레지스터에서 제3 타임베이스 값을 증분하고;
    상기 제3 타임베이스 값이 상기 동기화 이벤트 전에 상기 제1 값에 도달하는 것에 응답하여 상기 제3 타임베이스 값을 상기 제1 값으로 포화시키고;
    상기 동기화 이벤트에 응답하여, 또한 상기 제3 타임베이스 값이 상기 동기화 이벤트 전에 상기 제1 값에 도달하지 않은 것에 응답하여 상기 제1 값을 상기 제3 타임베이스 레지스터 내로 로딩하도록 구성되는, 장치.
  9. 집적 회로로서,
    각각 로컬 타임베이스 회로를 포함하는 복수의 컴포넌트 - 상기 컴포넌트는 상기 로컬 타임베이스 회로로부터 시간을 측정하도록 구성되고, 상기 로컬 타임베이스 회로는 제1 항에 기재된 상기 장치의 상기 제1 타임베이스 레지스터 및 상기 제1 제어 회로의 인스턴스(instance)임 -; 및
    각각의 로컬 타임베이스 회로에서 상기 제1 타임베이스 레지스터를 동기화하도록 구성된 글로벌 타임베이스 회로를 포함하며, 상기 글로벌 타임베이스 회로는 제1 항에 기재된 상기 제2 제어 회로의 인스턴스인, 집적 회로.
  10. 제9항에 있어서, 상기 제1 클록을 생성하도록 구성된 클록 생성 회로를 더 포함하며, 상기 제2 클록은 상기 집적 회로에 대한 입력으로부터 수신되는, 집적 회로.
  11. 제9항에 있어서, 상기 제1 클록은 제1 클록 주파수를 갖고, 상기 제2 클록은 상기 제1 클록 주파수보다 작은 제2 클록 주파수를 가지며, 상기 제2 클록 주파수와 상기 제1 클록 주파수의 비율은 연속적인 제1 값들의 차이를 나타내는, 집적 회로.
  12. 방법으로서,
    제1 클록에 응답하여 제1 타임베이스 레지스터에서 제1 타임베이스 값을 증분하는 단계;
    상기 제1 타임베이스 값이 동기화 이벤트 전에 제1 값에 도달하는 것에 응답하여 상기 제1 타임베이스 값을 상기 제1 값으로 포화시키는 단계;
    상기 동기화 이벤트에 응답하여, 또한 상기 제1 타임베이스 값이 상기 동기화 이벤트 전에 상기 제1 값에 도달하지 않은 것에 응답하여 상기 제1 값을 상기 제1 타임베이스 레지스터 내로 로딩하는 단계;
    상기 제1 값을 생성하는 단계;
    제2 클록의 제1 에지에 응답하여 상기 동기화 이벤트를 생성하는 단계; 및
    상기 제2 클록의 제2 에지에 응답하여 상기 제1 값을 전송하는 단계를 포함하며, 상기 제1 에지는 상기 제2 에지에 반대되는, 방법.
  13. 제12항에 있어서,
    제3 클록에 응답하여 제2 타임베이스 레지스터에서 제2 타임베이스 값을 증분하는 단계;
    상기 제2 타임베이스 값이 상기 동기화 이벤트 전에 상기 제1 값에 도달하는 것에 응답하여 상기 제2 타임베이스 값을 상기 제1 값으로 포화시키는 단계; 및
    상기 동기화 이벤트에 응답하여, 또한 상기 제2 타임베이스 값이 상기 동기화 이벤트 전에 상기 제1 값에 도달하지 않은 것에 응답하여 상기 제1 값을 상기 제2 타임베이스 레지스터 내로 로딩하는 단계를 더 포함하는, 방법.
  14. 제13항에 있어서, 상기 제1 클록 및 상기 제3 클록은 동일한 주파수를 가지며, 상기 제2 클록은 상기 동일한 주파수보다 작은 제2 주파수를 갖는, 방법.
  15. 제12항에 있어서, 상기 제1 클록은 제1 주파수를 가지고, 상기 제2 클록은 상기 제1 주파수보다 작은 제2 주파수를 가지며, 연속적인 동기화 이벤트들에서의 상기 제1 값들 간의 차이는 상기 제1 주파수와 상기 제2 주파수의 비율에 의존하는, 방법.
  16. 제15항에 있어서, 상기 제1 에지는 상기 제2 클록의 상승 에지인, 방법.
  17. 제16항에 있어서, 상기 제2 에지는 상기 제2 클록의 하강 에지인, 방법.
  18. 제12항에 있어서,
    제1 클록 소스에 의해 상기 제1 클록을 생성하는 단계; 및
    제2 클록 소스에 의해 상기 제2 클록을 생성하는 단계를 더 포함하며, 상기 제1 클록 소스는 제1 변동에 영향을 받을 수 있고, 상기 제2 클록 소스는 제2 변동에 영향을 받을 수 있고, 상기 제1 변동의 제1 범위는 상기 제2 변동의 제2 범위보다 더 큰, 방법.
  19. 제12항에 있어서,
    상기 제1 클록에 응답하여 제3 타임베이스 레지스터에서 제3 타임베이스 값을 증분하는 단계;
    상기 제3 타임베이스 값이 동기화 이벤트 전에 상기 제1 값에 도달하는 것에 응답하여 상기 제3 타임베이스 값을 상기 제1 값으로 포화시키는 단계; 및
    상기 동기화 이벤트에 응답하여, 또한 상기 제3 타임베이스 값이 상기 동기화 이벤트 전에 상기 제1 값에 도달하지 않은 것에 응답하여 상기 제1 값을 상기 제3 타임베이스 레지스터 내로 로딩하는 단계를 더 포함하는, 방법.
  20. 삭제
KR1020187015115A 2015-12-10 2016-09-15 타임베이스 동기화 KR102008634B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/965,073 2015-12-10
US14/965,073 US9864399B2 (en) 2015-12-10 2015-12-10 Timebase synchronization
PCT/US2016/051967 WO2017099861A1 (en) 2015-12-10 2016-09-15 Timebase synchronization

Publications (2)

Publication Number Publication Date
KR20180079376A KR20180079376A (ko) 2018-07-10
KR102008634B1 true KR102008634B1 (ko) 2019-08-07

Family

ID=57047313

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187015115A KR102008634B1 (ko) 2015-12-10 2016-09-15 타임베이스 동기화

Country Status (6)

Country Link
US (2) US9864399B2 (ko)
JP (1) JP6554615B2 (ko)
KR (1) KR102008634B1 (ko)
CN (2) CN108369434B (ko)
DE (1) DE112016005671T5 (ko)
WO (1) WO2017099861A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9864399B2 (en) * 2015-12-10 2018-01-09 Apple Inc. Timebase synchronization
FR3052571B1 (fr) * 2016-06-08 2018-06-29 Idemia France Procede de calibration d'une horloge d'un circuit de carte a puce, et systeme associe
US10031992B2 (en) * 2016-12-23 2018-07-24 Movellus Circuits, Inc. Concurrently optimized system-on-chip implementation with automatic synthesis and integration
US10530562B2 (en) * 2017-04-21 2020-01-07 Arm Limited Correlating local time counts of first and second integrated circuits
CN109001970B (zh) * 2017-06-07 2021-09-24 精工爱普生株式会社 计时装置、电子设备以及移动体
EP3902166B1 (de) * 2020-04-21 2022-03-23 TTTech Computertechnik Aktiengesellschaft Fehlertoleranter zeitserver für ein echtzeitcomputersystem
US11366488B1 (en) 2021-05-20 2022-06-21 Nxp Usa, Inc. Timer for use in an asymmetric mutli-core system
SE2150797A1 (en) * 2021-06-22 2022-12-23 Bombardier Transp Gmbh A pulse width modulation system and a method in relation thereto
US11625064B2 (en) 2021-08-16 2023-04-11 Qualcomm Incorporated Systems and methods for sleep clock edge-based global counter synchronization in a chiplet system
US11720520B2 (en) 2021-09-14 2023-08-08 Apple Inc. Universal serial bus time synchronization
US11757610B1 (en) * 2022-04-18 2023-09-12 Nxp B.V. Low phase noise clock recovery over a data connection
US11936393B1 (en) * 2022-06-06 2024-03-19 Amazon Technologies, Inc. Cooperative timing alignment using synchronization pulses

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003526833A (ja) 1999-02-26 2003-09-09 レヴェオ・インコーポレーテッド グローバル時間同期システム、装置および方法
US20130195124A1 (en) 2012-02-01 2013-08-01 Microchip Technology Incorporated Timebase peripheral

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5295257A (en) 1991-05-24 1994-03-15 Alliedsignal Inc. Distributed multiple clock system and a method for the synchronization of a distributed multiple system
DE4140017C2 (de) 1991-12-04 1995-01-05 Nec Electronics Germany Verfahren zum Betreiben von über einen Datenbus durch seriellen Datenaustausch miteinander kommunizierenden Rechnereinheiten
US5729721A (en) * 1995-11-13 1998-03-17 Motorola, Inc. Timebase synchronization in separate integrated circuits or separate modules
GB9523256D0 (en) * 1995-11-14 1996-01-17 Switched Reluctance Drives Ltd Phase energization controller and method for controlling switched reluctance machines using simple angular position sensors with improved angle interpolation
US6333939B1 (en) * 1998-08-14 2001-12-25 Qualcomm Incorporated Synchronization of a low power oscillator with a reference oscillator in a wireless communication device utilizing slotted paging
DE10000303B4 (de) * 2000-01-05 2011-09-29 Robert Bosch Gmbh Verfahren und Vorrichtung zum Austausch von Daten zwischen wenigstens zwei mit einem Bussystem verbundenen Teilnehmern
JP3748204B2 (ja) * 2000-11-27 2006-02-22 三菱電機株式会社 周期制御同期システム
US6801876B2 (en) 2000-12-08 2004-10-05 Caterpillar Inc Method and apparatus of managing time for a processing system
DE10255685B3 (de) * 2002-11-28 2004-07-29 Infineon Technologies Ag Taktsynchronisationsschaltung
US7058838B2 (en) 2002-12-17 2006-06-06 Hewlett-Packard Development Company, L.P. System and method for synchronizing a plurality of processors in a multiprocessor computer platform employing a global clock counter
JP2004328512A (ja) * 2003-04-25 2004-11-18 Matsushita Electric Ind Co Ltd 同期処理装置及び同期処理方法
US7602874B2 (en) * 2006-01-26 2009-10-13 International Business Machines Corporation Providing accurate time-based counters for scaling operating frequencies of microprocessors
US8190942B2 (en) 2008-07-02 2012-05-29 Cradle Ip, Llc Method and system for distributing a global timebase within a system-on-chip having multiple clock domains
US20120005517A1 (en) * 2008-08-21 2012-01-05 Peter Graham Foster Synchronisation and timing method and apparatus
US8724665B2 (en) * 2009-07-20 2014-05-13 Synopsys, Inc. Pseudo-synchronous time division multiplexing
US8977881B2 (en) * 2011-08-12 2015-03-10 Apple Inc. Controller core time base synchronization
US8498373B2 (en) * 2011-09-20 2013-07-30 Arm Limited Generating a regularly synchronised count value
JP5886015B2 (ja) * 2011-12-01 2016-03-16 ラピスセミコンダクタ株式会社 時間測定装置、マイクロコントローラ、プログラム、及び時間測定方法
US8892933B2 (en) * 2012-04-23 2014-11-18 Analog Devices, Inc. Synchronization of multiple signal converters by transmitting signal conversion data and receiving unique correction values for the respective counters through the same data interface pins
US9864399B2 (en) * 2015-12-10 2018-01-09 Apple Inc. Timebase synchronization

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003526833A (ja) 1999-02-26 2003-09-09 レヴェオ・インコーポレーテッド グローバル時間同期システム、装置および方法
US20130195124A1 (en) 2012-02-01 2013-08-01 Microchip Technology Incorporated Timebase peripheral
WO2013116435A2 (en) 2012-02-01 2013-08-08 Microchip Technology Incorporated Timebase peripheral

Also Published As

Publication number Publication date
US20170168520A1 (en) 2017-06-15
WO2017099861A1 (en) 2017-06-15
CN112817370A (zh) 2021-05-18
DE112016005671T5 (de) 2018-08-23
CN108369434B (zh) 2021-03-09
JP2019504423A (ja) 2019-02-14
US10048720B2 (en) 2018-08-14
US9864399B2 (en) 2018-01-09
CN108369434A (zh) 2018-08-03
JP6554615B2 (ja) 2019-07-31
KR20180079376A (ko) 2018-07-10
US20180107240A1 (en) 2018-04-19

Similar Documents

Publication Publication Date Title
KR102008634B1 (ko) 타임베이스 동기화
US20210333132A1 (en) System on a Chip with Always-On Processor
US10571996B2 (en) System on a chip with fast wake from sleep
US8892922B2 (en) Voltage detection
US20170177256A1 (en) System on a Chip with Always-On Processor Which Reconfigures SOC and Supports Memory-Only Communication Mode
CN110573991B (zh) 架构状态保留
US11683149B2 (en) Precise time management using local time base
JP2013058209A (ja) ダイナミックデータストローブ検出
US11226752B2 (en) Filtering memory calibration
US11687115B2 (en) Precise time management for peripheral device using local time base
US20230112432A1 (en) Dynamic setup and hold times adjustment for memories
US8786332B1 (en) Reset extender for divided clock domains
US11169585B2 (en) Dashboard with push model for receiving sensor data

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant