JP2019504423A - タイムベースの同期 - Google Patents

タイムベースの同期 Download PDF

Info

Publication number
JP2019504423A
JP2019504423A JP2018547253A JP2018547253A JP2019504423A JP 2019504423 A JP2019504423 A JP 2019504423A JP 2018547253 A JP2018547253 A JP 2018547253A JP 2018547253 A JP2018547253 A JP 2018547253A JP 2019504423 A JP2019504423 A JP 2019504423A
Authority
JP
Japan
Prior art keywords
time base
clock
value
response
frequency
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2018547253A
Other languages
English (en)
Other versions
JP6554615B2 (ja
Inventor
シュ−イ ユ
シュ−イ ユ
エリック ピー マクニッキ
エリック ピー マクニッキ
ギル ハーベック
ギルバート エイチ ハーベック
キラン ビー カテル
マヌ グラティ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Publication of JP2019504423A publication Critical patent/JP2019504423A/ja
Application granted granted Critical
Publication of JP6554615B2 publication Critical patent/JP6554615B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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(又は更に個別チップシステム)などの集積回路は、様々な場所に1つ以上のローカルタイムベースを含む。タイムベースは、相応の使用中に変動を受けることがある高周波ローカルクロックに基づいてインクリメントすることができる。周期的に、変動を受けることの少ない低周波クロックに基づいて、ローカルタイムベースを、ハードウェア回路を使用して正確な時間に同期させることができる。具体的には、次の同期用の正確なタイムベース値を、それぞれのローカルタイムベースに送信することができ、ローカルタイムベースの制御回路は、同期が発生する前にローカルタイムベースが正確な値に到達する場合に、ローカルタイムベースを正確な値に飽和させるように構成することができる。同様に、同期が発生し、かつローカルタイムベースが正確な値に到達していない場合、制御回路は、正確なタイムベース値をロードするように構成することができる。

Description

本明細書に記載の実施形態は、システムオンチップ(systems on a chip)(SOC)などの集積回路におけるタイムベースの同期に関する。
〔関連技術の説明〕
デジタルシステムにおいて、実時間(又は「ウォールクロックタイム(wall clock time)」)は、タイムベースによって表される。典型的には、タイムベースは、システム起動時にゼロにリセットされ、システム内のクロックに従ってインクリメントされる。システム起動時の実時間が既知である(通常はソフトウェアで維持されている)場合は、タイムベース値を実時間に加算して現在時刻を決定することができる。
より大きいシステム、又はシステム内の集積回路に関しては、短待ち時間で単一のグローバルタイムベースにアクセスすることは、困難である。過去には、グローバルタイムベースバスは、SOCにわたって、タイムベースへのアクセスが必要とされる場所に送られた。この手法は、短待ち時間のアクセスを提供することができるが、所望の全てのアクセスポイントにバスをルーティングするために面積オーバーヘッドを増大させ、バス上の信号伝搬の待ち時間のために物理的設計のタイミングを閉じることは困難である。別の手法は、SOCにわたってローカルタイムベースを追加することを含む。しかし、ローカルクロックの変動、更に様々なポイントでのクロック用の異なるクロック発生源にも起因して、グローバルタイムベースとローカルタイムベースとの間の同期は、容易に失われることがある。ソフトウェアによって、グローバルタイムベースを読み出し、このタイムベースをローカルタイムベースに伝搬させて、ローカルタイムベースに同期させることができるが、新たな値を伝搬する待ち時間を考慮しなければならず、これを正確に判定することは困難である。更に、ソフトウェアの同期は、望ましいより相当頻度が低いことがあり、ローカルタイムベースに、同期の間の時間周期の間に大きな変動を経験させる。
更に、タイムベース精度を維持するために、高品質な水晶クロック信号を必要とする。低周波水晶クロック信号が利用可能であり得るが、そのようなクロックは、SOCの種々の構成要素の動作クロック周波数に比べてタイムベース更新があまりにもまれに発生するので、より高いタイムベースの精度/粒度を提供しない。水晶信号を介して必要な周波数を得ることは困難である。更に、低周波水晶クロック信号に基づいて外部タイムベースを維持することができるが、外部タイムベースとSOC内の様々なタイムベースとの間の同期は、実現することが困難なことがある。
一実施形態では、SOC(又は更に個別チップシステム)などの集積回路は、様々な場所に1つ以上のローカルタイムベースを含む。タイムベースは、使用中に変動を受けることがある高周波ローカルクロックに基づいてインクリメントすることができる。周期的に、変動を受けることの少ない低周波クロックに基づいて、ローカルタイムベースを、ハードウェア回路を使用して正確な時間に同期させることができる。具体的には、次の同期用の正確なタイムベース値を、それぞれのローカルタイムベースに送信することができ、ローカルタイムベースの制御回路は、同期が発生する前にローカルタイムベースが正確な値に到達する場合に、ローカルタイムベースを正確な値に飽和させるように構成することができる。同様に、同期が発生し、かつローカルタイムベースが正確な値に到達していない場合、制御回路は、正確なタイムベース値をロードするように構成することができる。したがって、ソフトウェアの同期の必要性を取り除くと同時に、タイムベースの高い分解能/粒度、タイムベースへの短待ち時間のアクセス、及びタイムベースの高精度をサポートすることができる。外部タイムベースへの同期もまた、例えば、次の同期イベントにおける外部タイムベースに対する正確なタイムベース値をローカルタイムベースに送信し、それらのローカルタイムベースに飽和/更新することにより、実行することができる。
以下の詳細な説明は、次に簡単に記述する添付の図面を参照する。
SOCを含む集積回路の一実施形態のブロック図である。 ローカルタイムベース回路の一実施形態のブロック図である。 グローバルタイムベース回路の一実施形態のブロック図である。 タイムベース同期の一実施形態を示すタイミング図である。 タイムベースを同期させるためのローカルタイムベース回路の一実施形態の動作を示すフローチャートである。 タイムベースを同期させるためのグローバルタイムベース回路の一実施形態の動作を示すフローチャートである。 タイムベースを初期化するためのグローバルタイムベース回路及びローカルタイムベース回路の一実施形態の動作を示すフローチャートである。 システムの一実施形態のブロック図である。
この開示に記述する実施形態には、各種の変更形態及び代替形態の余地があり得るが、その具体的な実施形態を例として図面に示し、本明細書で詳細に説明する。しかし、図面及び図面に関する詳細な説明は、開示する特定の形態に実施形態を限定することを意図しておらず、むしろその意図は、添付の請求項の主旨及び範囲に含まれる全ての変更形態、均等形態、及び代替形態を網羅することであることを理解されたい。本明細書で使用する見出しは、構成を目的とするにすぎず、説明の範囲を限定するために使用することを意図してはいない。この出願を通して使用するとき、「〜し得る(may)」という語は、義務的な意味(即ち、〜しなければならない(must)を意味する)ではなく、許容的な意味(即ち、〜する可能性を有することを意味する)で使用される。同様に、「含む(include)」、「含んでいる(including)」及び「含む(includes)」という語は、何かを含むことを意味するが、その何かに限定されることを意味しない。
種々のユニット、回路、又は他の構成要素については、1タスク(単数又は複数)を実行「するように構成される(configured to)」ものとして述べる場合がある。このような状況では、「〜するように構成される」は、動作中にタスク(単数又は複数)を実行する「回路を備えている(having circuitry)」ことを広く意味する構造の広義な記述である。よって、ユニット/回路/構成要素は、そのユニット/回路/構成要素が現在動作していないときでも、タスクを実施するように構成することができる。一般的に、「〜ように構成される」に対応する構造を形成する回路は、ハードウェア回路を含み得る。ハードウェア回路は、組み合わせ論理回路、フロップ、レジスタ、ラッチ等のクロックド記憶デバイス、有限状態マシン、スタティックランダムアクセスメモリ又は埋め込みダイナミックランダムアクセスメモリなどのメモリ、カスタム設計回路、アナログ回路、プログラマブル論理アレイなどの任意の組み合わせを含むことができる。同様に、種々のユニット/回路/構成要素は、説明を簡便にするために、タスク(単数又は複数)を実行するものとして述べる場合がある。そのような説明は、「〜ように構成される」という語句を含むものとして解釈されるべきである。1つ以上のタスクを実行するように構成されているユニット/回路/構成要素の記載は、そのユニット/回路/構成要素について米国特許法第112条(f)の解釈を援用しないことを明示的に意図している。
一実施形態では、本開示に従ったハードウェア回路は、回路の記述を、Verilog又はVHDLなどのハードウェア記述言語(hardware description language)(HDL)でコーディングすることによって実装されてもよい。HDL記述は、所与の集積回路製造技術のために設計されたセルのライブラリに対して合成されてもよく、タイミング、電力、その他の理由のために修正されて、結果としてファウンドリに送信することができる最終設計データベースとなり、マスクを生成し、最終的に集積回路を製造することができる。いくつかのハードウェア回路又はその一部も、回路図エディタでカスタム設計して、合成された回路とともに集積回路設計に取り込むことができる。集積回路は、トランジスタを含んでもよく、他の回路素子(例えば、コンデンサ、抵抗、インダクタなどの受動素子)、及びトランジスタと回路素子との間の相互接続を更に含むことができる。いくつかの実施形態は、ハードウェア回路を実装するために一体に結合された複数の集積回路を実装することができ、及び/又は、いくつかの実施形態では、個別素子を使用することができる。あるいは、HDL設計は、フィールドプログラマブルゲートアレイ(field programmable gate array)(FPGA)などのプログラム可能な論理アレイに合成されてもよく、FPGAに実装されてもよい。
この明細書は、「一実施形態」又は「ある実施形態」に対する参照を含む。特徴の任意の組み合わせを含む実施形態が概して意図されるが、本明細書で明示的に否定しない限り、「一実施形態で」又は「ある実施形態で」のフレーズの形態は、必ずしも同じ実施形態を指していない。特定の機能、構造又は特性は、本開示に整合する任意の好適な方法で組み合わせられてもよい。
次に図1を参照すると、メモリ12及び外部クロック発生源34に結合されたSOC10の一実施形態のブロック図が示されている。名前が暗示するように、SOC10の構成要素は、集積回路「チップ」として、単一の半導体基板上に集積化することができる。いくつかの実施形態では、構成要素は、システム内の2つ以上の個別のチップ上に実装してもよい。しかし、本明細書では、SOC10を例として用いる。例示する実施形態では、SOC10の構成要素は、中央処理装置(central processing unit)(CPU)コンプレックス14、「常時オン」構成要素16、周辺構成要素18A〜18B(より簡単に、「周辺装置」)、メモリコントローラ22、電力マネージャ(PMGR)32、内部クロック発生回路36、及び通信ファブリック27を含む。構成要素14、16、18A〜18B、22、32、及び36は、通信ファブリック27に全て結合することができる。メモリコントローラ22は、使用中にメモリ12に結合することができる。常時オン構成要素16は、外部クロック発生源34に接続することができる。例示する実施形態では、CPUコンプレックス14は、1つ以上のプロセッサ(図1のP30)を含み得る。プロセッサ30は、SOC10内のCPUコンプレックス14のCPU(単数又は複数)を形成することができる。いくつかの実施形態では、第2の内部クロック発生回路37が含まれてもよく、1つ以上のローカルタイムベース(例えば、図1のローカルタイムベース26B)に結合されてもよい。このような実施形態では、ローカルタイムベース26Bは、クロック発生回路36に結合されなくてもよい。更に他の実施形態では、追加の複数のクロック発生回路が含まれてもよい。
SOC10内の様々な構成要素は、時間を決定するためにタイムベースへのアクセスを有してもよい。タイムベースを使用して、イベントのタイムスタンプを生成する(例えば、イベントの時間的順序を確認することができるように、又は所与のイベントを特定の実時間(ウォールクロックタイム)に関連付けることができるように)ことができる。タイムベースを使用して、アプリケーションに時間を提供する(例えば、ユーザに表示する、又はアラート若しくはアラームなどの時間に基づく通知を可能にする)ことができる。タイムベースを使用して、経過時間を測定する(例えば、マルチタスキング・オペレーティング・システムにおけるタスクの実行をスケジュールする)ことができる。一般に、タイムベースは、任意の時間の単位とすることができる。一実施形態では、タイムベースは、特定の粒度の時間を表す値(例えば、最下位の桁が特定の時間を表すことができる)であってよい。最下位の桁のいくつかは、実際に実装されなくてもよい(例えば、タイムベース値が、SOC10のクロックが許可することができるよりも高い粒度で時間を測定する場合)。他の実施形態では、タイムベース値は、SOC10のクロックのティックを測定してもよい。クロックの周波数に基づいて、実時間を計算することができる。
タイムベースを使用する構成要素は、ローカルタイムベース回路(例えば、図1のCPUコンプレックス14内のローカルタイムベース回路26A〜26D、周辺装置18A、メモリコントローラ22、及びPMGR32)を含むことができる。一実施形態では、構成要素は、複数のローカルタイムベース回路を有することができる(例えば、CPUコンプレックス14内のそれぞれのCPU30に対してローカルタイムベース回路26A〜26Dが存在してもよい)、及び/又は複数の構成要素が、ローカルタイムベース回路26A〜26Dを共有してもよい。常時オン構成要素16内のグローバルタイムベース回路20は、ローカルタイムベース回路26A〜26Dによって維持されるローカルタイムベースを同期させるように構成されてもよい。いくつかの実施形態では、グローバルタイムベース回路20は、グローバルタイムベースを維持することもできる。
クロック発生器36は、ローカルタイムベース(及び、任意選択的に、含まれる場合はグローバルタイムベース)を更新するために使用することができる比較的高い周波数クロック(Fr_clk)を生成するように構成されてもよい。これにより、クロック発生器36とローカルタイムベース回路26A〜26Dと任意選択的にグローバルタイムベース回路20との間にFr_clkが結合される。クロック発生器36は、位相ロックループ(phase−locked−loop)(PLL)、遅延ロックループ(delay−locked−loop)(DLL)などの任意の設計及び構成を有していてもよい。一般に、クロック発生器36は、使用中にFr_clkのクロック周波数の変動をまねく種々の不正確さの発生源の影響下にあることがある。例えば、クロック発生器36内の回路は、温度変化、回路の遅延を変化させる電源電圧変動、ジッタ、ノイズ等に起因する変動を受けやすいことがある。電源電圧変動としては、ノイズ、負荷等による過渡変動、及び使用時の動的電圧変化などの意図的な変動を挙げることができる。Fr_clkの周波数は、経時的にドリフトすることがあり、所望の周波数よりも高速かつ/又は低速である。これにより、ローカルタイムベースに誤りが存在することがある。
回路解析、経験的データ、及び/又はシミュレーションに基づいて、周波数変動は、所望の周波数の周囲の範囲内にあると判定することができる。所望の周波数(すなわち、クロック発生器36から予期される周波数)を公称周波数と称することができる。クロックは、公称周波数の周囲に何らかの変動が存在し得ることが既知の所与の周波数を名目上有すると称することができる。クロックは、その公称周波数を比較することによって、変動が周波数を変化させることがあることを知ることによって、より高い又はより低い周波数を名目上有すると称することができる。
低周波クロック(Rt_clk)は、SOC10への入力(例えば、外部クロック発生源34用)上で受信することができる。外部クロック発生源34は、例えば、水晶発振器などの「高品質」クロック発生源とすることができる。クロック品質は、様々な方法で測定することができるが、一般に、使用中に低い変動を経験するクロックを指すことがある。これにより、Rt_clkは、例えば、Fr_clkより使用中の低い変動を有することができる。すなわち、Rt_clkの公称周波数の周囲のクロック周波数の変動の範囲は、Fr_clkの変動の範囲よりも小さくすることができる。
したがって、同期イベントをRt_clkからトリガして、ローカルタイムベースを(互い及び正確なタイムベース値の両方に)同期させることができる。同期イベントは、タイムベースの同期を行なわせる任意の通信とすることができる。例えば、グローバルタイムベース回路20は、Rt_clkからトリガされた信号をローカルタイムベース回路26A〜26Cにアサートするように構成することができる。グローバルタイムベース回路20はまた、ローカルタイムベースが更新のための同期値を有するように、Rt_clkに基づいて次のタイムベース同期値を通信することができる。一実施形態では、グローバルタイムベース回路20は、Rt_clk信号の各期間に1回、同期イベントをトリガすることができる。例えば、同期イベントは、クロックのエッジでトリガされてもよい。この説明の一例として立ち上がりエッジを用いてもよいが、立ち下がりエッジを用いてもよい。グローバルタイムベース回路20はまた、エッジ(例えば、同期イベントのエッジの反対側のエッジ、又は立ち上がりエッジの例に対する立ち下がりエッジ)に応じて、次のタイムベース同期値を送信することができる。他の実施形態は、所望により、Rt_clkの複数の期間、又はRt_clkの各エッジ上に一度に発生するように同期イベントを定義することができる。
次のタイムベース同期値は、前回の同期値、及びFr_clkとRt_clkとの周波数の比に依存する値から各同期期間を生成してもよい。この比率は整数値ではないため、タイムベースは、Rt_clk周期に関して整数部と小数部とを有していてもよい。例えば、一実施形態では、Fr_clkは24メガヘルツ(MHz)であってもよく、Rt_clkは32,768Hzであってもよい。この例では、最も単純な数学的形式で、比は、24MHz/32,768Hz、又は46875/64である。したがって、連続する同期タイムベース値の間の差は、46875であってもよく、Fr_clkの各クロック周期は、ローカルタイムベース上の64の増分であってもよい。小数部分は、各増分が64であるために5ビットであってもよく、各種実施形態では、小数部分は、所望により、実装されてもよい、又は実装されなくてもよい。いくつかの実施形態では、小数部分は、外部クロック発生源から導出されるタイムベースに対するローカルタイムベースのドリフトを防止するために使用することができる。これにより、Fr_clkの増分及び連続する同期値の差の両方を、周波数の比に依存させることができる。
一実施形態では、少なくとも1つのローカルタイムベース回路26A〜26Dは、グローバルタイムベース回路20によって送信される次のタイムベース同期値を取り込むように構成され、ローカルタイムベースが所与の同期期間内にインクリメントされると、ローカルタイムベースを次のタイムベース同期値と比較することができる。Fr_clkが予期されるより高い周波数で動作している場合、ローカルタイムベースは、同期期間の終了前に次のタイムベース同期値に到達することができる。ローカルタイムベース回路26A〜26Dは、同期期間の残部に対して、ローカルタイムベース値を次のタイムベース同期値に飽和させることができる。これにより、ローカルタイムベースは、同期期間の終了でタイムベースが有することになるのを上回るだけ、正確なタイムベース値の「前方」にならなくてよい。加えて、同期イベントに応じて、ローカルタイムベース回路26A〜26Dは、ローカルタイムベースに次のタイムベース同期値をロードしてもよい(ローカルタイムベースが次の同期値に到達していないと仮定して)。次のタイムベース同期値のロードは、ローカルタイムベースが同期期間を上回るだけ正確なタイムベースの「後」に来ることを防止することができる。
任意の通信機構を使用して、グローバルタイムベース回路20からローカルタイムベース回路26A〜26Dに次のタイムベース同期値を送信することができる。一実施形態では、Fr_clkの速度でのシリアルインターフェースを用いて、その値を送信することができる。この例では、Fr_clkがRt_clkより大幅に高い周波数であるため、同期期間の終了のずっと前にローカルタイムベース回路26A〜26Bで、次のタイムベース同期値を受信することができる。
例示的な実施形態は、クロック発生回路36からローカルタイムベース回路26A〜26D及びグローバルタイムベース回路20に提供される1つのFr_clkを示しているが、他の実施形態は、図1に鎖線形式で示すFr_clk2をローカルタイムベース回路26Bに提供するクロック発生回路37などの、複数のFr_clkの発生源を有することができる。このような実施形態では、ローカルタイムベース回路26Bは、クロック発生回路36からFr_clkを受信しなくてもよい。更に他の実施形態では、様々なローカルタイムベース回路26A〜26Dに他のFr_clkを提供する、より多くの内部クロック発生回路が存在してもよい。発生源は、使用時にクロックの位相及び周波数が異なることができるように、互いに独立していてもよい。
前述したように、インクリメントは、所与の同期期間の間、次のタイムベース同期値に飽和させることができる。一般に、値を飽和させることは、その値までインクリメントするが、その後インクリメントした結果を追加のインクリメントにおいてもその値で定常的に保持することを指すことがある。インクリメントすることは、一般に、使用中に一定量だけ値を増加させることを指し得る。一定量は、いくつかの実施形態では、1若しくは他の任意の整数又は他の値であってよい。上述した例では、増分は64であってもよい。
一実施形態では、常時オン構成要素16は、SOC10の他の構成要素(例えば、CPUコンプレックス14、周辺装置18A〜18B、及びPMGR32)が電源切断されているときに、電源投入されたままであるように構成することができる。より具体的には、常時オン構成要素16は、SOC10が外部の電力管理ユニット(power management unit)(PMU)から電力を受けているときは常にオンとすることができる。よって、常時オン構成要素は、SOC10がなんらかの電力を受けている場合(例えば、SOC10を含むデバイスがスタンバイモードにあるとき、又はアクティブに動作しているとき)に電源がオンにすることができるが、SOC10がなんらかの電力を受けていないとき(例えば、デバイスの電源が完全にオフにされているとき)には電源がオンにされていなくてもよいという意味で「常時オン」である。常時オン構成要素16は、SOC10の残り部分がオフである間に特定の機能をサポートし、低電力動作を可能にし得る。加えて、グローバルタイムベース回路20は、システムに対するグローバルタイムベースを維持し続けることができるので、SOC10の次の電源投入時にグローバルタイムベースを再設定する必要がない。
図1では、常時オン構成要素16を他の構成要素から隔てる点線24が、常時オン構成要素16のための独立したパワードメインを示し得る。他の構成要素、構成要素の群、及び/又は下位構成要素もまた独立したパワードメインを有し得る。一般に、パワードメインは、他のパワードメインから独立して、電源電圧を受ける(すなわち電源オンされる)、又は電源電圧を受けない(すなわち電源オフされる)ように構成することができる。いくつかの実施形態では、複数のパワードメインに、異なる大きさの電源電圧を同時に供給することができる。独立性は、各種のやり方でもたらされ得る。例えば、独立性は、外部PMUからの別個の電源電圧入力を設けることによって、電源電圧入力と構成要素の間に電源スイッチを設け、ユニットとしての所与のドメインのための電源スイッチを制御することによって、及び/又は上記の組み合わせによってもたらされ得る。図1に例示するよりも多くのパワードメインもまた存在し得る。例えば、CPUコンプレックス14は、ある実施形態では、独立したパワードメインを有し得る(各CPUプロセッサ30もまた独立したパワードメインを有し得る)。ある実施形態では、1つ以上の周辺構成要素18A〜18Bが、1つ以上の独立したパワードメイン内にあり得る。
概して、構成要素は、電源オンされる又は電源オフされると称され得る。構成要素は、設計されたように動作し得るように、電源電圧を受けている場合に電源オンされ得る。構成要素は、電源オフされる場合に、電源電圧を受けておらず、動作していない。構成要素は、電源オンされる場合に電源投入されるとも称され得、電源オフされる場合に電源切断されるとも称され得る。構成要素の電源投入は、電源オフされている構成要素に電源電圧を供給することを意味し得、構成要素の電源切断は、構成要素への電源電圧の供給を終了することを意味し得る。同様に、任意の下位構成要素及び/又はSOC10の全体は、電源投入される/電源切断されるなどと称され得る。構成要素は、SOC10内の指定された機能を提供し、SOC10の残り部分に対する特定のインターフェースを有する、回路の予め定められたブロックであり得る。よって、常時オン構成要素16、周辺装置18A〜18B、及びCPUコンプレックス14、メモリコントローラ22、並びにPMGR32は、それぞれ構成要素の例であり得る。
構成要素は、電源投入されクロックゲートされていない場合、アクティブであり得る。よって、例えば、CPUコンプレックス14内のプロセッサは、アクティブである場合、命令実行のために利用可能であり得る。構成要素は、電源オフされている場合、又は命令が実行され得る前に著しい遅延が経験され得る別の低電力状態にある場合に、非アクティブであり得る。例えば、構成要素は、位相ロックループ(PLL)のリセット又は再ロックを必要とする場合、電源供給されたままでも非アクティブであり得る。構成要素はまた、クロックゲートされている場合、非アクティブであり得る。クロックゲートは、構成要素内のデジタル回路へのクロックが一時的に「オフにされ」、フロップ、レジスタなどのクロック制御される記憶デバイス内のデジタル回路から状態がキャプチャされることを妨げる技術を意味し得る。
上述したように、CPUコンプレックス14は、SOC10内のCPUコンプレックス14のCPU(単数又は複数)として機能することができる、1つ以上のプロセッサ30を含むことができる。システムのCPUは、オペレーティングシステムなどの、システムの主制御ソフトウェアを実行するプロセッサ(単数又は複数)を含む。概して、使用中にCPUにより実行されるソフトウェアは、システムの所望の機能を実現するために、システムの他の構成要素を制御し得る。プロセッサは、アプリケーションプログラムなどの他のソフトウェアも実行し得る。アプリケーションプログラムは、ユーザ機能を提供し得、低レベルデバイス制御、スケジューリング、メモリ管理などについてオペレーティングシステムに依存し得る。したがって、プロセッサは、アプリケーションプロセッサとも称され得る。CPUコンプレックス14は、L2キャッシュ及び/又はシステムの他の構成要素に対するインターフェース(例えば、通信ファブリック27に対するインターフェース)などの他のハードウェアを更に含み得る。
動作点は、電源電圧の大きさと、CPUコンプレックス14、常時オン構成要素16、SOC10の他の構成要素などの動作周波数との組み合わせを意味し得る。動作周波数は、構成要素をクロック制御するクロックの周波数であり得る。動作周波数は、クロック周波数又は単に周波数とも称され得る。動作点は、動作状態又は電力状態とも称され得る。動作点は、常時オン構成要素16に記憶され、再設定が生じるときに構成要素内に再プログラミングされ得る、プログラミング可能な設定データの一部分であり得る。
概して、プロセッサは、プロセッサにより実装される命令セットアーキテクチャ内に定義された命令を実行するように構成された任意の回路及び/又はマイクロコードを含み得る。プロセッサは、集積回路上に他の構成要素とともにシステムオンチップ(SOC 10)又は他の一体化レベルとして実装されるプロセッサコアを包含してもよい。プロセッサは、別個のマイクロプロセッサ、マルチチップモジュール実装内に集積化されるプロセッサコア及び/又はマイクロプロセッサ、複数の集積回路として実装されるプロセッサなどを更に包含し得る。
メモリコントローラ22は、概して、SOC10の他の構成要素からメモリ操作を受信し、メモリ操作を完了するためにメモリ12にアクセスするための回路を含み得る。メモリコントローラ22は、任意の形式のメモリ12にアクセスするように構成することができる。例えば、メモリ12は、スタティックランダムアクセスメモリ(static random access memory)(SRAM)、ダブルデータレート(DDR、DDR2、DDR3、DDR4など)DRAMを含むシンクロナスDRAM(synchronous DRAM)(SDRAM)などのダイナミックRAM(dynamic RAM)(DRAM)であり得る。DDR DRAMの低電力/モバイルバージョン(例えば、LPDDR、mDDRなど)がサポートされ得る。メモリコントローラ22は、操作を順序付けし(及び場合によっては再順序付けし)、メモリ12へ操作を提示するための、メモリ操作用の待ち行列を含み得る。メモリコントローラ22は、メモリへの書き込みを待っている書き込みデータ、及びメモリ操作の送信元への返送を待っている読み出しデータを記憶するためのデータバッファを更に含んでもよい。いくつかの実施形態では、メモリコントローラ22は、最近アクセスされたメモリデータを記憶するためのメモリキャッシュを含み得る。SOC実装形態では、例えば、メモリキャッシュは、データがほどなく再びアクセスされると予想される場合、メモリ12からのデータの再アクセスを回避することによって、SOC内の電力消費を低減させ得る。幾つかの場合、メモリキャッシュは、L2キャッシュ又はプロセッサ内のキャッシュなど特定の構成要素のみに役立つプライベートキャッシュとは異なり、システムキャッシュとも称され得る。加えて、幾つかの実施形態では、システムキャッシュはメモリコントローラ22内に位置する必要がない。
周辺装置18A〜18Bは、SOC10内に含まれる追加ハードウェア機能の任意のセットであり得る。例えば、周辺装置18A〜18Bは、カメラ若しくは他の画像センサからの画像キャプチャデータを処理するように構成された画像信号プロセッサなどの映像周辺装置、1つ以上の表示デバイスに映像データを表示するように構成された表示コントローラ、グラフィック処理ユニット(graphics processing units)(GPU)、映像エンコーダ/デコーダ、スケーラ、ローテータ、ブレンダなどを含み得る。周辺装置は、マイクロフォン、スピーカ、マイクロフォン及びスピーカに対するインターフェース、音声プロセッサ、デジタル信号プロセッサ、ミキサなどの音声周辺装置を含み得る。周辺装置は、ユニバーサルシリアルバス(Universal Serial Bus)(USB)、PCIエクスプレス(PCI Express)(PCIe)を含むペリフェラルコンポーネント相互接続(peripheral component interconnect)(PCI)、シリアルポート及びパラレルポートなどのインターフェースを含む、SOC10(例えば周辺装置18B)の外部の各種のインターフェースのためのインターフェースコントローラを含み得る。周辺装置は、メディアアクセスコントローラ(media access controllers)(MAC)などのネットワーク用周辺装置を含み得る。ハードウェアの任意のセットが含まれてもよい。
通信ファブリック27は、SOC10の構成要素間で通信するための任意の通信相互接続及び通信プロトコルであり得る。通信ファブリック27は、共有バス構成、クロスバー構成、及びブリッジを有する階層化バス、を含むバスベースであり得る。通信ファブリック27は、またパケットベースとすることもでき、ブリッジを有する階層構造、クロスバー、ポイントツーポイント、又は他の相互接続とすることもできる。
PMGR32は、外部のPMUから要求される電源電圧の大きさを制御するように構成されてもよい。外部のPMUによってSOC10のために生成される複数の電源電圧が存在してもよい。例えば、CPUコンプレックス14用の電源電圧、SOCの残部用の電源電圧、メモリ12用の電源電圧などが存在してもより。PMGR32は、直接ソフトウェア制御下にしてもよい(例えば、ソフトウェアは、構成要素の電源投入及び/又は電源切断を直接要求してもよい)、及び/又は、SOC10を監視して、様々な構成要素がいつ電源投入若しくは電源切断されるべきかを判定するように構成してもよい。
SOC10の構成要素の数(及びCPUコンプレックス14内などの、図1に示すものに関する下位構成要素の数)が実施形態によって異なり得ることに留意されたい。各構成要素/下位構成要素の数は、図1に示すよりも多くても少なくてもよい。
図2は、ローカルタイムベース回路26Aの一実施形態のブロック図である。他のローカルタイムベース回路26B〜26Dも同様とすることができる。図2の実施形態では、ローカルタイムベース回路26Aは、制御回路40と、次の同期値レジスタ42と、ローカルタイムベースレジスタ44と、インクリメントレジスタ46とを含む。制御回路40は、グローバルタイムベース回路20からFr_clk入力及びグローバルタイムベースインターフェースに結合され、更に次の同期値レジスタ42、ローカルタイムベースレジスタ44、及びインクリメントレジスタ46に結合される。
制御回路40は、Fr_clkに応じて、レジスタ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エッジに有効)に変化することができる。これにより、sync_timeは、図4のRt_clkの第1の期間では、NからN+M(ここで、Mは同期インクリメントレジスタ58での同期インクリメントである)に変化し、第2の期間ではN+2Mに、第3の期間ではN+3Mに変化する。グローバルタイムベース回路20は、Rt_clkの立ち下がりエッジに応じて、sync_timeをローカルタイムベース回路26A〜26Dに送信することができ、したがって、図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へのリセットの放出に基づいてリセットされてもよい。具体的には、無電源期間後にSOC10に最初に電力が供給されたとき、常時オン構成要素16をリセットするようにしてもよい。一般に、SOC10に電力が供給されている限り、SOC10の他の部分が電源オフされた場合でも、常時オン構成要素16は、オンであり、リセットされる必要がなくてよい。常時オン構成要素16がリセットされてリセットが放出される(判定ブロック110の「はい」の分岐)場合、制御回路50は、Fr_clkに基づいて、0で開始して、グローバルタイムベースレジスタ54を更新してもよい(ブロック112)。この更新は、図6に関して上述したように実行してもよい。
SOC10内の別の構成要素(常時オン構成要素16以外の)がリセットされていて、かつリセットが放出される(判定ブロック114の「はい」の分岐)場合、対応するローカルタイムベース回路26A〜26D内の制御回路40は、グローバルタイムベース回路20からの送信毎に次の同期値レジスタ42における次の同期値の取り込みを開始することができる(ブロック116)。しかし、次の同期値がシリアルに送信される実施形態では、送信中にリセットが放出され、したがって、次の同期値が正しく取り込まれないことがあり得る。したがって、制御回路40は、リセット放出後に第2の同期イベントを検出するのを待つことができ(ブロック118)、その後、次の同期レジスタ42から次の同期値をローカルタイムベースレジスタ44にロードしてもよい(ブロック120)。その後、制御回路40は、図5に関して説明したように、Fr_clkの値でレジスタの更新を開始してもよい(ブロック122)。
次に図8に移ると、システム150の一実施形態のブロック図が示されている。例示する実施形態では、システム150は、1つ以上の周辺装置154及び外部メモリ12に結合された、SOC10の少なくとも1つのインスタンスを含む。SOC10に電源電圧を供給するとともに、メモリ12及び/又は周辺装置154に1つ以上の電源電圧を供給する電力管理ユニット(PMU)156が提示されている。いくつかの実施形態では、SOC10の2つ以上のインスタンスが含まれ得る(及び2つ以上のメモリ12もまた含まれ得る)。
PMU156は、概して、電源電圧を生成し、それらの電源電圧をSOC10、メモリ12、ディスプレイデバイス、画像センサ、ユーザインターフェースデバイスなどの各種のオフチップ周辺構成要素154などのシステムの他の構成要素に提供するための回路を含み得る。PMU156は、よって、プログラム可能な電圧レギュレータ、電圧要求などを受信するためにSOC10、より具体的にはSOCのPMGR16に対してインターフェースするためのロジックを含み得る。
周辺装置154は、システム150の種類に応じて任意の所望の回路を含み得る。例えば、一実施形態では、システム150は、モバイルデバイス(例えば、パーソナルデジタルアシスタント(personal digital assistant)(PDA)、スマートフォンなど)であり得、周辺装置154は、WiFi、Bluetooth(登録商標)、セルラー、全地球測位システムなどの各種の無線通信のためのデバイスを含み得る。周辺装置154は、RAM記憶装置、ソリッドステート記憶装置、又はディスク記憶装置を含む追加記憶装置も含み得る。周辺装置154は、タッチディスプレイスクリーン又はマルチタッチディスプレイスクリーンを含むディスプレイスクリーン、キーボード又は他の入力デバイス、マイクロフォン、スピーカなどのユーザインターフェースデバイスを含み得る。他の実施形態では、システム150は、任意の種類のコンピューティングシステム(例えば、デスクトップパーソナルコンピュータ、ラップトップコンピュータ、ワークステーション、ネットトップなど)とすることができる。
外部メモリ12として、任意の種類のメモリを挙げることができる。例えば、外部メモリ12は、SRAM、シンクロナスDRAM(SDRAM)、ダブルデータレート(DDR、DDR2、DDR3など)SDRAM、RAMBUS DRAM、DDR DRAMの低電力バージョン(例えばLPDDR、mDDRなど)などのダイナミックRAM(DRAM)であり得る。外部メモリ12は、シングルインラインメモリモジュール(single inline memory modules)(SIMM)、デュアルインラインメモリモジュール(dual inline memory modules)(DIMM)などのメモリデバイスが装着される1つ以上のメモリモジュールを含み得る。代わりに、外部メモリ12は、チップオンチップ又はパッケージオンパッケージ実装でSOC10に装着される1つ以上のメモリデバイスを含んでもよい。
上述の開示内容が十分に理解されれば、多くの変形及び修正が当業者にとって明らかになるであろう。以下の「特許請求の範囲」は、そのような変形及び修正の全てを包含するように解釈されることを意図するものである。

Claims (20)

  1. 第1のタイムベースレジスタと、
    前記第1のタイムベースレジスタに結合された第1の制御回路であって、
    第1のクロックに応じて前記第1のタイムベースレジスタにおける第1のタイムベース値をインクリメントし、
    同期イベントの前に、前記第1のタイムベース値が第1の値に到達したことに応じて、前記第1の値に前記第1のタイムベース値を飽和させ、
    前記同期イベント、及び前記同期イベントの前に前記第1のタイムベース値が前記第1の値に到達しないことに応じて、前記第1のタイムベースレジスタに前記第1の値をロードする、
    ように構成された、第1の制御回路と、
    前記第1の制御回路に結合された第2の制御回路であって、
    前記第1の値を生成し、
    第2のクロックに応じて前記同期イベントを生成する、
    ように構成された、第2の制御回路と、
    を備える装置。
  2. 第2のタイムベースレジスタと、
    前記第2のタイムベースレジスタ及び前記第2の制御回路に結合された第3の制御回路であって、
    第3のクロックに応じて、前記第2のタイムベースレジスタにおける第2のタイムベース値をインクリメントし、
    前記同期イベントの前に、前記第2のタイムベース値が前記第1の値に到達したことに応じて、前記第1の値に前記第2のタイムベース値を飽和させ、
    前記同期イベント、及び前記同期イベントの前に前記第2のタイムベース値が前記第1の値に到達しないことに応じて、前記第2のタイムベースレジスタに前記第1の値をロードする、
    ように構成された、第3の制御回路と、
    を更に備える、請求項1に記載の装置。
  3. 前記第1のクロック及び前記第3のクロックが同じ周波数を有し、前記第2のクロックは、前記同じ周波数未満の第2の周波数を有する、請求項2に記載の装置。
  4. 前記第1のクロックが第1の周波数を有し、前記第2のクロックが前記第1の周波数未満の第2の周波数を有し、連続する同期イベントにおける前記第1の値の間の差が前記第1の周波数と前記第2の周波数との比に依存する、請求項1から3のいずれか一項に記載の装置。
  5. 前記同期イベントが、前記第2のクロックのエッジである、請求項1から4のいずれか一項に記載の装置。
  6. 前記エッジが立ち上がりエッジであり、前記第2の制御回路は、前記第2のクロックの立ち下がりエッジに応じて前記第1の値を送信するように構成された、請求項5に記載の装置。
  7. 前記第1のクロックは、第1のクロック発生源によって生成され、前記第2のクロックは、第2のクロック発生源によって生成され、前記第1のクロック発生源は、使用中に第1の変動を受け、前記第2のクロック発生源は、使用中に第2の変動を受け、前記第1の変動の第1の範囲は、前記第2の変動の第2の範囲よりも大きい、請求項1から6のいずれか一項に記載の装置。
  8. 前記第2の制御回路に結合された第3のタイムベースレジスタを更に備え、前記第2の制御回路が、
    前記第1のクロックに応じて前記第3のタイムベースレジスタにおける第3のタイムベース値をインクリメントし、
    前記同期イベントの前に、前記第3のタイムベース値が前記第1の値に到達したことに応じて、前記第1の値に前記第3のタイムベース値を飽和させ、
    前記同期イベント、及び前記同期イベントの前に前記第3のタイムベース値が前記第1の値に到達しないことに応じて、前記第3のタイムベースレジスタに前記第1の値をロードする、
    ように構成された、請求項1に記載の装置。
  9. 複数の構成要素であって、前記構成要素のそれぞれがローカルタイムベース回路を含み、前記構成要素のそれぞれが前記ローカルタイムベース回路から時間を測定するように構成されており、前記ローカルタイムベース回路が、請求項1に記載の装置の前記第1のタイムベースレジスタ及び前記第1の制御回路のインスタンスである、複数の構成要素と、
    各ローカルタイムベース回路において前記第1のタイムベースレジスタを同期させるように構成されたグローバルタイムベース回路と、
    を備える集積回路であって、前記グローバルタイムベース回路は、請求項1に記載の前記第2のタイムベースレジスタ及び前記第2の制御回路のインスタンスである、集積回路。
  10. 前記第1のクロックを生成するように構成されたクロック発生回路を更に備え、前記第2のクロックは、前記集積回路への入力から受信される、請求項9に記載の集積回路。
  11. 前記第1のクロックは、第1のクロック周波数を有し、前記第2のクロックは、前記第1のクロック周波数未満の第2のクロック周波数を有し、前記第2のクロック周波数と前記第1のクロック周波数との前記比は、連続する次のタイムベース値の差を示す、請求項9に記載の集積回路。
  12. 第1のクロックに応じて第1のタイムベースレジスタにおける第1のタイムベース値をインクリメントすることと、
    同期イベントの前に前記第1のタイムベース値が第1の値に到達したことに応じて、前記第1の値に前記第1のタイムベース値を飽和させることと、
    前記同期イベント、及び前記同期イベントの前に前記第1のタイムベース値が前記第1の値に到達しないことに応じて、前記第1のタイムベースレジスタに前記第1の値をロードすることと、
    前記第1の値を生成することと、
    第2のクロックに応じて前記同期イベントを生成することと、
    を含む方法。
  13. 第3のクロックに応じて第2のタイムベースレジスタにおける第2のタイムベース値をインクリメントすることと、
    前記同期イベントの前に、前記第2のタイムベース値が前記第1の値に到達したことに応じて、前記第1の値に前記第2のタイムベース値を飽和させることと、
    前記同期イベント、及び前記同期イベントの前に前記第2のタイムベース値が前記第1の値に到達しないことに応じて、前記第2のタイムベースレジスタに前記第1の値をロードすることと、
    を更に含む、請求項12に記載の方法。
  14. 前記第1のクロック及び前記第3のクロックが同じ周波数を有し、前記第2のクロックは、前記同じ周波数未満の第2の周波数を有する、請求項13に記載の方法。
  15. 前記第1のクロックが第1の周波数を有し、前記第2のクロックが前記第1の周波数未満の第2の周波数を有し、連続する同期イベントにおける前記第1の値の間の差が前記第1の周波数と前記第2の周波数との比に依存する、請求項12から14のいずれか一項に記載の方法。
  16. 前記同期イベントが、前記第2のクロックの第1のエッジである、請求項15に記載の方法。
  17. 前記第1のエッジの反対側の前記第2のクロックの第2のエッジに応じて前記第1の値を送信することを更に含み、前記送信することは、前記第1のクロックに応じて実行される、請求項16に記載の方法。
  18. 前記第1のエッジが前記立ち上がりエッジであり、前記第2のエッジが前記立ち下がりエッジである、請求項17に記載の方法。
  19. 第1のクロック発生源によって前記第1のクロックを生成することと、
    第2のクロック発生源によって前記第2のクロックを生成することと、
    を更に含み、前記第1のクロック発生源は、第1の変動を受け、前記第2のクロック発生源は、第2の変動を受け、前記第1の変動の第1の範囲は、前記第2の変動の第2の範囲よりも大きい、請求項12から18のいずれか一項に記載の方法。
  20. 前記第1のクロックに応じて第3のタイムベースレジスタにおける第3のタイムベース値をインクリメントすることと、
    同期イベントの前に、前記第3のタイムベース値が前記第1の値に到達したことに応じて、前記第1の値に前記第3のタイムベース値を飽和させることと、
    前記同期イベント、及び前記同期イベントの前に前記第3のタイムベース値が前記第1の値に到達しないことに応じて、前記第3のタイムベースレジスタに前記第1の値をロードすることと、
    を更に含む、請求項12に記載の方法。
JP2018547253A 2015-12-10 2016-09-15 タイムベースの同期 Active JP6554615B2 (ja)

Applications Claiming Priority (3)

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

Publications (2)

Publication Number Publication Date
JP2019504423A true JP2019504423A (ja) 2019-02-14
JP6554615B2 JP6554615B2 (ja) 2019-07-31

Family

ID=57047313

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018547253A Active JP6554615B2 (ja) 2015-12-10 2016-09-15 タイムベースの同期

Country Status (6)

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

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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001251329A (ja) * 2000-01-05 2001-09-14 Robert Bosch Gmbh データ交換方法及びその装置
JP2002164872A (ja) * 2000-11-27 2002-06-07 Mitsubishi Electric Corp 周期制御同期システム
JP2012533830A (ja) * 2009-07-20 2012-12-27 シノプシス, インコーポレイテッド 擬似同期時分割多重化
US20130070879A1 (en) * 2011-09-20 2013-03-21 Arm Limited Generating a regularly synchronised count value
US20130278312A1 (en) * 2012-04-23 2013-10-24 Analog Devices, Inc. Synchronization of multiple signal converters

Family Cites Families (14)

* 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
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
WO2000050974A2 (en) * 1999-02-26 2000-08-31 Reveo, Inc. Globally time-synchronized systems, devices and methods
US6801876B2 (en) 2000-12-08 2004-10-05 Caterpillar Inc Method and apparatus of managing time for a processing system
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 同期処理装置及び同期処理方法
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
AU2009284710A1 (en) * 2008-08-21 2010-02-25 Chronologic Pty Ltd Synchronisation and timing method and apparatus
US8977881B2 (en) * 2011-08-12 2015-03-10 Apple Inc. Controller core time base synchronization
JP5886015B2 (ja) * 2011-12-01 2016-03-16 ラピスセミコンダクタ株式会社 時間測定装置、マイクロコントローラ、プログラム、及び時間測定方法
US8897324B2 (en) * 2012-02-01 2014-11-25 Microchip Technology Incorporated Timebase peripheral
US9864399B2 (en) * 2015-12-10 2018-01-09 Apple Inc. Timebase synchronization

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001251329A (ja) * 2000-01-05 2001-09-14 Robert Bosch Gmbh データ交換方法及びその装置
JP2002164872A (ja) * 2000-11-27 2002-06-07 Mitsubishi Electric Corp 周期制御同期システム
JP2012533830A (ja) * 2009-07-20 2012-12-27 シノプシス, インコーポレイテッド 擬似同期時分割多重化
US20130070879A1 (en) * 2011-09-20 2013-03-21 Arm Limited Generating a regularly synchronised count value
US20130278312A1 (en) * 2012-04-23 2013-10-24 Analog Devices, Inc. Synchronization of multiple signal converters

Also Published As

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

Similar Documents

Publication Publication Date Title
JP6554615B2 (ja) タイムベースの同期
US20210333132A1 (en) System on a Chip with Always-On Processor
US10915160B2 (en) System on a chip with fast wake from sleep
US9959124B1 (en) Secure bypass of low-level configuration in reconfiguration of a computing system
US9619377B2 (en) System on a chip with always-on processor which reconfigures SOC and supports memory-only communication mode
TWI478498B (zh) 用於在一頻率改變期間之一有效延遲鎖定迴路訓練協定之機制
JP2013058209A (ja) ダイナミックデータストローブ検出
US11683149B2 (en) Precise time management using local time base
US8892922B2 (en) Voltage detection
CN110573991B (zh) 架构状态保留
US20160048334A1 (en) System and method for calibration of a memory interface
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
CN112817370B (en) Time base synchronization
US8786332B1 (en) Reset extender for divided clock domains
US12028437B2 (en) Precise time management using local time base

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190603

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190531

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190613

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190701

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190708

R150 Certificate of patent or registration of utility model

Ref document number: 6554615

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250