(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-19
(45)【発行日】2024-06-27
(54)【発明の名称】処理要素の同期のためのシステムおよび方法
(51)【国際特許分類】
H04L 7/04 20060101AFI20240620BHJP
【FI】
H04L7/04
【外国語出願】
(21)【出願番号】P 2022079365
(22)【出願日】2022-05-13
【審査請求日】2022-05-27
(32)【優先日】2021-06-17
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520128820
【氏名又は名称】ノースロップ グラマン システムズ コーポレーション
(74)【代理人】
【識別番号】100105957
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】ブライアン アール.カーニグスバーグ
【審査官】北村 智彦
(56)【参考文献】
【文献】特開2012-191361(JP,A)
【文献】特開2014-187442(JP,A)
【文献】特開2015-226117(JP,A)
【文献】米国特許出願公開第2021/0041586(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 7/04
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
方法であって、
カウント決定信号を複数のシンクロナイザに送信するステップと、ここで、前記複数のシンクロナイザは、複数のアップストリームシンクロナイザと、ダウンストリームシンクロナイザとを含んでおり、前記カウント決定信号は、前記カウント決定信号が生成された時刻を特徴付けるタイムスタンプを含んでおり、
前記複数のシンクロナイザの各々から差信号を受信するステップであって、前記差信号は、前記カウント決定信号の前記タイムスタンプと、前記複数のシンクロナイザの
一つの個別のシンクロナイザが前記カウント決定信号を受信した時刻との間の時間差を特徴付ける、前記差信号を受信するステップと、
前記複数のシンクロナイザの各々に
一つの個別のカウント値を送信するステップであって、各個別のカウント値は、前記複数のシンクロナイザのうちの対応するシンクロナイザから受信された対応する差信号に基づくものである、前記個別のカウント値を送信するステップと、
前記複数のシンクロナイザに同期信号を送信するステップと、
前記複数のアップストリームシンクロナイザの各シンクロナイザに、前記同期信号の受信に応答して、前記個別のカウント値から所定の終了カウントシーケンス値までカウントさせるステップと、前記個別のカウント値は、各シンクロナイザに格納されるとともに、前記複数のアップストリームシンクロナイザの
一つの個別のアップストリームシンクロナイザが前記同期信号を受信する時間と、前記ダウンストリームシンクロナイザが前記同期信号を受信する時間との間の差を表しており、
複数の処理要素の
一つの個別の処理要素の
一つの個別の構成要素に、
一つの個別のアップストリームシンクロナイザが前記所定の終了カウントシーケンス値に到達したことに応答して、
一つの個別の機能または動作を開始させるステップと、を含む方法。
【請求項2】
前記同期信号は、送信されてから時間的に異なるインスタンスで前記複数のシンクロナイザの各シンクロナイザに到達する、請求項1に記載の方法。
【請求項3】
各個別の処理要素の前記
個別の構成要素は、時間的にほぼ同様のインスタンスで
前記個別の機能または動作を開始するように構成されている、請求項2に記載の方法。
【請求項4】
前記同期信号は、同期信号生成器によって生成され、前記ダウンストリームシンクロナイザは、前記複数のアップストリームシンクロナイザと比較して、前記同期信号生成器から最も遠くに位置している、請求項3に記載の方法。
【請求項5】
前記複数のシンクロナイザの各シンクロナイザは、
一つの個別のカウント値を格納するカウンタを含み、前記複数のアップストリームシンクロナイザの各シンクロナイザに、前記個別のカウント値から前記所定の終了カウントシーケンス値までカウントさせるステップは、前記カウンタを起動させて、前記個別のカウント値から前記所定の終了カウントシーケンス値までカウントさせることを含む、請求項4に記載の方法。
【請求項6】
前記複数のアップストリームシンクロナイザは、第1のアップストリームシンクロナイザと、第2のアップストリームシンクロナイザとを含み、前記複数の処理要素は、前記第1のアップストリームシンクロナイザを含む第1の処理要素と、前記第2のアップストリームシンクロナイザを含む第2の処理要素とを含む、請求項4に記載の方法。
【請求項7】
前記第1のアップストリームシンクロナイザは、前記第1のアップストリームシンクロナイザが前記同期信号を受信する時間と前記ダウンストリームシンクロナイザが前記同期信号を受信する時間との間の差を表す第1のカウント値を格納するように構成されており、
前記第2のアップストリームシンクロナイザは、前記第2のアップストリームシンクロナイザが前記同期信号を受信する時間と前記ダウンストリームシンクロナイザが前記同期信号を受信する時間との間の差を表す第2のカウント値を格納するように構成されている、請求項6に記載の方法。
【請求項8】
前記第1のアップストリームシンクロナイザに、前記第1のカウント値から前記所定の終了カウントシーケンス値までカウントダウンさせるステップと、
前記第1のアップストリームシンクロナイザが前記所定の終了カウントシーケンス値に到達したことに応答して、前記第1の処理要素の
一つの個別の構成要素に
一つの個別の機能または動作を開始させるステップと、をさらに含む、請求項7に記載の方法。
【請求項9】
前記第2のアップストリームシンクロナイザに、前記第2のカウント値から前記所定の終了カウントシーケンス値までカウントダウンさせるステップと、
前記第2のアップストリームシンクロナイザが前記所定の終了カウントシーケンス値に到達したことに応答して、前記第2の処理要素の
一つの個別の構成要素に
一つの個別の機能または動作を開始させるステップと、を含む、請求項8に記載の方法。
【請求項10】
前記第1および第2の処理要素の前記
個別の構成要素は、時間的にほぼ同様のインスタンスで
一つの個別の機能または動作を開始するように構成されている、請求項9に記載の方法。
【請求項11】
前記複数の処理要素が、前記ダウンストリームシンクロナイザを含む第3の処理要素を含み、前記ダウンストリームシンクロナイザは、前記所定の終了カウントシーケンス値を表す値に対応する第3のカウント値を格納するように構成されている、請求項10に記載の方法。
【請求項12】
前記ダウンストリームシンクロナイザに、前記第3のカウント値から前記所定の終了カウントシーケンス値までカウントダウンさせるステップと、
前記ダウンストリームシンクロナイザが前記所定の終了カウントシーケンス値に到達したことに応答して、前記第3の処理要素の
一つの個別の構成要素に
一つの個別の機能または動作を開始させるステップと、をさらに含み、前記第3の処理要素の
前記個別の構成要素は、前記第1の処理要素および前記第2の処理要素と時間的にほぼ同様のインスタンスで
一つの個別の機能または動作を開始するように構成されている、請求項11に記載の方法。
【請求項13】
システムであって、
同期信号生成器であって、
複数の処理要素の同期のためのカウント決定信号を生成し、ここで、前記カウント決定信号は、前記カウント決定信号が生成された時刻を特徴付けるタイムスタンプを含んでおり、
複数のシンクロナイザの各々から差信号を受信し、ここで、前記差信号は、前記カウント決定信号の前記タイムスタンプと、前記複数のシンクロナイザの
一つの個別のシンクロナイザが前記カウント決定信号を受信した時刻との間の時間差を特徴付けており、
前記複数のシンクロナイザの各々に
一つの個別のカウント値を送信し、ここで、各個別のカウント値は、前記複数のシンクロナイザのうちの対応するシンクロナイザから受信された対応する差信号に基づくものであり、
前記複数のシンクロナイザに同期信号を送信するように構成された前記同期信号生成器と、
前記複数のシンクロナイザと、を備え、前記複数の処理要素の各処理要素は、前記複数のシンクロナイザの
一つの個別のシンクロナイザを含み、前記複数のシンクロナイザの各々は、前記同期信号の受信に応答して、別個のカウント値から所定の終了カウントシーケンス値までカウントするように構成され、前記複数のシンクロナイザは、
一つの個別のシンクロナイザが前記所定の終了カウントシーケンス値に到達したことに応答して、前記複数の処理要素の
一つの個別の処理要素の
一つの個別の構成要素に
一つの個別の機能または動作を開始させるように構成される、システム。
【請求項14】
前記複数のシンクロナイザは、第1および第2のアップストリームシンクロナイザと、ダウンストリームシンクロナイザとを含み、前記別個のカウント値は、第1のカウント値および第2のカウント値を含み、前記第1のカウント値は、前記第1のアップストリームシンクロナイザが前記同期信号を受信する時間と前記ダウンストリームシンクロナイザが前記同期信号を受信する時間との間の差を表し、前記第2のカウント値は、前記第2のアップストリームシンクロナイザが前記同期信号を受信する時間と前記ダウンストリームシンクロナイザが前記同期信号を受信する時間との間の差を表す、請求項13に記載のシステム。
【請求項15】
前記ダウンストリームシンクロナイザは、前記同期信号の受信に応答して、第3のカウント値から前記所定の終了カウントシーケンス値までカウントするように構成され、前記ダウンストリームシンクロナイザは、前記ダウンストリームシンクロナイザが前記所定の終了カウントシーケンス値に到達したことに応答して、前記複数の処理要素の第3の処理要素の
前記個別の構成要素に
一つの個別の機能または動作を開始させるように構成されている、請求項14に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、処理要素の同期のためのシステムおよび方法に関する。
【背景技術】
【0002】
同期とは、システムまたはデバイスを一体的に動作させるためのイベントの調整である。全ての部分が同期して動作するシステムは、同期しているかまたは同期状態であるといい、そうでないシステムは非同期であるという。システムまたはデバイスは、特定の観点から、遠隔のポイントにおけるイベントが同時またはほぼ同時であるように見えるように同期されることがある。同期は、コンピュータサイエンス(例えば、タスクを完了するためのスレッドまたは処理の調整などの並列コンピューティング)、暗号化、リップシンク、マルチメディア、電気通信など、様々な技術分野で使用されている。
【発明の概要】
【0003】
一例では、方法は、同期信号を複数のシンクロナイザに送信することを含む。複数のシンクロナイザは、複数のアップストリームシンクロナイザおよびダウンストリームシンクロナイザを含む。方法は、複数のアップストリームシンクロナイザの各シンクロナイザに、同期信号の受信に応答して、個々のカウント値から所定の終了カウントシーケンス値までカウントさせることをさらに含む。個々のカウント値は、各シンクロナイザに格納することができ、複数のアップストリームシンクロナイザの個々のアップストリームシンクロナイザが同期信号を受信する時間とダウンストリームシンクロナイザが同期信号を受信する時間との間の差を表すことができる。方法は、複数の処理要素の個々の処理要素に、個々のアップストリームシンクロナイザが所定の終了カウントシーケンス値に到達したことに応答して、個々の機能または動作を開始させることをさらに含む。
【0004】
別の例では、システムは、複数の処理要素の同期のための同期信号を生成および送信するように構成された同期信号生成器を含む。システムは複数のシンクロナイザをさらに含む。複数の処理要素の各処理要素は、複数のシンクロナイザの個々のシンクロナイザを含むことができる。複数のシンクロナイザの各々は、同期信号の受信に応答して、別個のカウント値から所定の終了カウントシーケンス値までカウントするように構成される。複数のシンクロナイザは、個々のシンクロナイザが所定の終了カウントシーケンス値に到達したことに応答して、複数の処理要素の個々の処理要素に個々の機能または動作を開始させるように構成される。
【0005】
さらなる例では、システムは、複数の処理要素の同期のための同期信号を生成および送信するように構成された同期信号生成器を含む。システムは、複数の組のシンクロナイザを含む。各組のシンクロナイザの各個々のシンクロナイザは、複数の処理要素のうちの1つの処理要素の一部であり得る。複数の処理要素は、個々の処理要素ゾーンを形成するように配置することができる複数の組の処理要素を含む。各個々のシンクロナイザは、同期信号の受信に応答して他のシンクロナイザとは異なるカウント値から所定の終了カウントシーケンス値までカウントし、個々のシンクロナイザが所定の終了カウントシーケンス値に到達したことに応答して、個々のシンクロナイザを含む対応する処理要素に個々の機能または動作を開始させるように構成されている。
【図面の簡単な説明】
【0006】
【
図1】処理要素を同期するためのシステムの一例を示す図である。
【
図3】同期型処理要素ゾーンを備えたシステムの一例を示す図である。
【
図4】気象データ処理システムの一例を示す図である。
【
図5】処理要素を同期する方法の一例を示す図である。
【発明を実施するための形態】
【0007】
本開示は、処理要素の同期のためのシステムおよび方法に関する。本明細書では、処理要素の機能または動作を同期させるための多くの例が提示されているが、本明細書の例は、処理要素のみに解釈および/または限定されるべきではない。従って、本明細書に記載されたシステムおよび方法は、システム(例えば、デバイス、装置、回路など)が実質的に同様の時間的なポイント(またはクロック信号の同じクロックサイクル上)で機能または動作を開始または起動できるように、システムの同期を必要とし得る任意の技術環境で使用することができる。例えば、集積回路(IC)、システムオンチップ(SoC)、または別の種類のダイなどの処理デバイスまたはシステムの処理要素のアレイは、協調して動作するように設計されていることが多く、従って、入力されたデータに基づいて個々の機能または動作を実行するために同期される。いくつかの例では、処理要素のアレイを同期させるために、平衡ツリーを使用して、各処理要素が処理要素のアレイの他の処理要素とほぼ同時に同期信号を受信することを保証するようにしている。各処理要素はほぼ同時に同期を受信するため、処理要素は互いに同期して個々の機能または動作を実行することができる。
【0008】
平衡ツリー同期を使用すると、リソースを大量に消費し、多数のゲートおよび電線を使用する必要がある。しかしながら、処理要素の数が増加するにつれて、使用または採用できるゲートおよび電線の数は、処理装置上のそのような要素のために利用可能な領域によって制限される。さらに、場合によっては、平衡ツリーの同期には専用バスが必要となり、これは、より大きなバス(例えば、より大きなバス幅)を必要とし得る他の種類の情報を送信するには実用的でない場合がある。さらに、場合によっては、同期をとるためにラッチを備えた平衡ツリーを使用すると、信号のラッチが不均一になるか、またはダウンストリームノードのラッチに一致させるために、アップストリームノードのラッチを大幅に増加させる必要がある。場合によっては、H型平衡ツリーをバランスの取れた負荷および遅延とともに使用して、各処理要素の絶対時間基準を達成するようにすることができる。しかしながら、これらの代替案はコストが高く、処理装置のコンパクト性を制限する可能性がある。
【0009】
本明細書では、処理要素が協調して動作することができ、従って、各処理要素が実行するように設計された個々の機能または動作を実行するために同期することができるように、処理要素を同期させるための例が提示される。本明細書に記載のシステムおよび方法によれば、他の手法のように信号分配に平衡ツリーを使用することなく、処理要素を同期させることができる。従って、本明細書に記載のシステムおよび方法は、平衡ツリーハードウェア(例えば、ゲート、電線など)を排除することによって、処理デバイスの面積および性能を改善することができる。さらに、本明細書に記載のシステムおよび方法を使用することによって、処理要素が、時間的にほぼ同様のインスタンス(about a similar instance in time)で機能または動作を開始するように構成することができるので、データは追加情報なしで読み取ることができ、データタグ付けおよび/または処理要素が同期されるまでキューへのデータの格納を排除することができる。
【0010】
一例として、同期システムは、同期信号生成器およびシンクロナイザを含むことができる。いくつかの例では、各シンクロナイザは、複数の処理要素のうちの1つの処理要素の一部として使用することができる。同期信号生成器は、各シンクロナイザが受信できる同期信号を送信するように構成することができる。各シンクロナイザは同期信号生成器から異なる距離に位置することができるため、同期信号は、送信されてから、時間的に異なるインスタンス(a different instance in time)で各シンクロナイザに到着し得る。各個々のシンクロナイザは、同期信号の受信に応答して、個々のカウント値から所定の終了カウントシーケンス値までカウントするように構成することができる。各個々のシンクロナイザの個々のカウント値は、最後のシンクロナイザのアップストリームに位置する個々のシンクロナイザが同期信号を受信する時間と最後のシンクロナイザが同期信号を受信する時間との間の差を表すことができる。最後のシンクロナイザは、複数のシンクロナイザの他のシンクロナイザと比較して、同期信号生成器から最も離れた場所に位置することができる。各個々の処理要素は、対応するシンクロナイザが所定の終了カウントシーケンス値に到達したことに応答して、時間的にほぼ同様のインスタンスで個々の機能または動作を開始するように構成することができる。従って、同期システムは、他の手法のように平衡ツリーを使用することなく、処理要素の動作または機能を同期させることができる。
【0011】
図1は、処理要素102、104、および106を同期させるための同期システム100の一例である。
図1の例は、3つの処理要素102、104、および106が同期していることを示しているが、他の例では、3つを超える処理要素(例えば、数百、数千、数百万、またはそれ以上の処理要素)が本明細書に記載の例に従って同期され得る。本明細書で使用される「処理要素」という用語は、回路(例えば、加算器回路、除算回路、レジスタ回路、バッファ回路、組合わせ回路、および別の種類の回路)、機能ユニット、ハードウェアエンジン、コントローラ、プロセッサ、中央処理装置(CPU)、グラフィカル処理装置(GPU)、アクセラレータ(例えば、フィールドプログラマブルアレイ(FPGA)デバイス、テンソルプロセッサユニット、ベクトルプロセッサユニット、機械学習アクセラレータ、目的別アクセラレータソリューションおよび別の種類のワークロードアクセラレータ)、処理システム(例えば、気象データ処理システム、または任意の他の種類のデータ処理システム)、デバイス、または別の要素の動作と同期するために個々の動作を必要とし得る任意の要素を指すことができる。いくつかの例では、二次元(2D)または三次元(3D)パターン配置で配置され得る処理要素のアレイを同期させるために、同期システム100を使用することができる。
【0012】
いくつかの例では、処理要素102、104、および106は、個々の機能または動作を実行するように調整することができる。例えば、処理要素102、104、および106は、データ処理機能または動作を実行するように調整することができる。いくつかの例では、処理要素102、104、および106は、集合的な機能または動作(例えば、並列処理)を実行するように調整することができる。従って、同期システム100は、処理要素102、104、および106の動作を同期させるために使用することができる。本明細書で使用される「動作を同期させる」という語句およびその派生語は、1つまたは複数の動作または機能が、複数の処理要素によって同様の期間にわたって(例えば、同様のクロックサイクル上で、または所定量のクロックサイクル内で)実行されるか、またはほぼ同時に実行されるように、処理要素の1つまたは複数の動作または機能を調整することを指すことができる。いくつかの例では、同期システム100は、処理要素102、104、および106を同期させて、クロック信号の同一または類似のクロックサイクルで個々の機能または動作の実行を開始させることができる。
【0013】
例えば、処理要素102、104、および106の動作を同期させるために、同期システム100は、同期信号生成器108を含むことができる。いくつかの例では、同期システム100は、個々のシンクロナイザ110、112、および114を使用することができる。処理要素102、104、および106の各々は、シンクロナイザ110、112、および114のうちの1つを含むことができる。他の例では、各処理要素102、104、および106は、シンクロナイザ110、112、114のうちの1つに結合することができる。同期信号生成器108は、同期信号116を生成するように構成することができる。
【0014】
同期信号116は、同期信号生成器108が結合され得る主通信チャネル118に供給することができる。各処理要素102、104、および106は、個々の分岐通信チャネル120、122、および124を介して主通信チャネル118に結合することができる。各通信チャネル118、120、122、および124は、同期信号116が伝送され得る経路としての役割を担うことができる。いくつかの例では、各通信チャネル118、120、122、および124は、銅線、光回線、トレース、電線、または別の種類の通信経路などの伝送線であり得る。他の例では、主通信チャネル118を省略して、分岐通信チャネル120、122、および124の各々を同期信号生成器108に結合して、個々の同期信号116を受信することができ、同期信号は、生成器108によって個々の分岐通信チャネル120、122、および124を介してほぼ同時に伝送することができる。さらなる例では、同期信号生成器108は送信機を含むことができ、シンクロナイザ110、112、および114の各々は、同期信号116を受信するための受信機を含むことができる。従って、いくつかの例では、同期信号生成器108は、無線周波数(RF)チャネル、赤外線チャネル、または別の種類の無線通信チャネルなどの無線通信チャネルを介して各処理要素102、104、および106と通信することができる。従って、いくつかの例では、同期信号116は、RF信号または光信号であり得る。
【0015】
さらなる例として、シンクロナイザ110、112、および114の各々は、同期信号116を受信するように構成することができる。シンクロナイザ110、112、および114の各々は、同期システム100の動作の前に決定された個々のカウント値を格納するように構成することができる。例えば、シンクロナイザ110、112、および114の各々は、所定の時間の間、個々のカウント値からカウントするように構成することができる。いくつかの例では、シンクロナイザ110、112、および114の各々は、異なる所定の時間の間、異なるカウント値からカウントするように構成することができる。カウントシーケンスの終了に到達すると、シンクロナイザ110、112、および114の各々は、個々の処理要素102、104、および106に、時間的にほぼ同じインスタンス(例えば、一定時間内)で機能または動作を起動(または実行)させるように構成することができる。従って、シンクロナイザ110、112、および114の各々は、処理要素102、104、および106の個々の1つに互いに同期して動作するように命令するように構成することができる。
【0016】
いくつかの例では、クロック生成器126は、クロック信号128を提供するように構成することができる。従って、他の例では、シンクロナイザ110、112、および114の各々は、クロック信号128のエッジの数またはクロック信号128のクロックサイクルの数を表す個々のカウント値を格納するように構成することができる。シンクロナイザ110、112、および114の各々は、クロック信号128を受信してから経過したクロック信号128のクロックサイクル数を追跡する(例えば、カウントする)ように構成することができる。シンクロナイザ110、112、および114の各々は、クロック信号128を受信してからカウントされたクロック信号128のクロックサイクル数が個々のカウント値に等しいと判定されたことに応答して、個々の処理要素102、104、および106に個々の機能または動作を起動(開始)させるように構成することができる。例として、シンクロナイザ110、112、および114の各々は、クロック信号128を受信してからクロック信号128のエッジ(例えば、立ち上がりエッジおよび/または立ち下がりエッジ)の数をカウントするように構成することができる。クロック信号128を受信してからカウントされたクロック信号128のエッジの数が個々のカウント値に等しいと判定されたことに応答して、シンクロナイザ110、112、および114の各々は、個々の処理要素102、104、および106に個々の機能または動作を起動させるように構成することができる。
【0017】
いくつかの例では、シンクロナイザ110、112、および114の各々は、同期システム100の動作の前に決定された対応するカウント値を格納するように構成することができる。いくつかの例では、個々のシンクロナイザ110、112、および114に格納されている対応するカウント値は、アップストリームシンクロナイザが同期信号116を受信する時間とダウンストリームシンクロナイザが同期信号を受信する時間との間の差を表すことができる。ダウンストリームシンクロナイザは、1つまたは複数のアップストリームシンクロナイザと比較して、同期信号生成器108から最も遠くに位置することができる。同期信号生成器108から最も離れて位置しているシンクロナイザは、本明細書では「ダウンストリームシンクロナイザ」と呼ぶことができる。
図1の例では、シンクロナイザ114は、同期信号生成器108から最も遠くに位置しているので、シンクロナイザ114は、本明細書では、ダウンストリームシンクロナイザと呼ぶことができる。対照的に、ダウンストリームシンクロナイザよりも同期信号生成器108の近くに位置しているシンクロナイザは、本明細書では「アップストリームシンクロナイザ」と呼ぶことができる。
図1の例では、シンクロナイザ110および112は、シンクロナイザ114よりも同期信号生成器108の近くに配置されているので、これらのシンクロナイザは、アップストリームシンクロナイザと呼ぶことができる。
【0018】
いくつかの例では、同期信号116は、同期信号生成器108によって送信(または通信)されてから、時間的に異なるインスタンスで各シンクロナイザ110、112、および114に到着する。処理要素102、104、および106がほぼ同時に機能または動作を開始することを確実にするために、シンクロナイザ110、112、および114の各々は、処理要素102、104、および106の個々の1つに、そこに格納されている対応するカウント値に基づいて機能または動作を開始するように命令するように構成され得る。
【0019】
例えば、シンクロナイザ110は、シンクロナイザ110が同期信号116を受信する時間とシンクロナイザ114が同期信号116を受信する時間との間の差を表す第1のカウント値を格納することができる。シンクロナイザ110は、第1のカウント値から所定の終了カウントシーケンス値(例えば、ゼロ)までカウントダウンまたはカウントアップするように構成することができる。シンクロナイザ110は、所定の終了カウントシーケンス値に到達したことに応答して、処理要素102に個々の機能または動作を開始させるように構成することができる。いくつかの例では、シンクロナイザ112は、シンクロナイザ112が同期信号116を受信する時間とシンクロナイザ114が同期信号116を受信する時間との間の差を表す第2のカウント値を格納することができる。シンクロナイザ112は、第2のカウント値から所定の終了カウントシーケンス値(例えば、ゼロ)までカウントダウンまたはカウントアップするように構成することができる。シンクロナイザ112は、所定の終了カウントシーケンス値に到達したことに応答して、処理要素104に個々の機能または動作を開始させるように構成することができる。
【0020】
いくつかの例では、シンクロナイザ114は、第3のカウント値を格納することができる。シンクロナイザ114はダウンストリームシンクロナイザであるため、第3のカウント値は、所定の終了カウントシーケンス値(例えば、ゼロ)を表すことができる。従って、別の言い方をすれば、第3のカウント値は、シンクロナイザ114が同期信号116を受信する時間とシンクロナイザ114が同期信号116を受信する時間との間の差を表すことができる。シンクロナイザ114は、第3のカウント値から所定の終了カウントシーケンス値(例えば、ゼロ)までカウントするように構成することができる。シンクロナイザ114は、所定の終了カウントシーケンス値に到達したことに応答して、処理要素106に個々の機能または動作を開始させるように構成することができる。従って、シンクロナイザ114は、個々のシンクロナイザ110および112が個々の処理要素102および104に個々の機能または動作機能を開始するように命令するのとほぼ同時に、処理要素106に個々の機能または動作機能を開始させることができる。
【0021】
従って、個々のアップストリームシンクロナイザが同期信号を受信する時間とダウンストリームシンクロナイザが同期信号を受信する時間との間の差を表す対応するカウント値を有する処理要素のシンクロナイザを構成することによって、各個々の処理要素が、時間的にほぼ同じインスタンスで(例えば、同期して)個々の機能または動作機能を開始するように構成することができる。同期システム100は、シンクロナイザ110、112、および114の各々が時間的に異なるインスタンスで(同じ)同期信号116をとらえたとしても、処理要素102、104、および106の各々が、時間的にほぼ同じインスタンスで個々の機能または動作を開始することを可能にする。
【0022】
いくつかの例では、シンクロナイザ110、112、および114の各々に格納されたカウント値は、同期システム100のシミュレーションに基づいて決定(または計算)することができる。例えば、シミュレータ(例えば、シミュレーションソフトウェア)は、シミュレーション環境(例えば、ICなどのシミュレートされた処理装置上)において同期システム100をシミュレートして、シンクロナイザ110、112、および114の各々に対する個々のカウント値を決定するようにプログラムすることができる。例えば、シミュレーション中に、シミュレートされた同期信号がシミュレートされた同期生成器から各シミュレートされたシンクロナイザに移動するのに要する時間を決定するように信号タイミングエンジンをプログラムすることができる。信号タイミングエンジンは、シミュレートされた同期信号がシミュレートされたチャネル(例えば、主チャネル118および個々の分岐チャネル120、122、および124)を介してシミュレートされた同期生成器から個々のシミュレートされたシンクロナイザに移動するに要する時間に基づいて、シンクロナイザ110、112、および114の個々に対する個々のカウント値を計算するようにプログラムすることができる。
【0023】
他の例では、同期信号生成器108は、カウント決定信号130を生成するように構成することができる。カウント決定信号130は、カウント決定信号が同期信号生成器108によって生成された時刻を示す個々のタイムスタンプを含むことができる。シンクロナイザ110、112、および114の各々は、カウント決定信号130を受信するように構成することができる。シンクロナイザ110は、シンクロナイザ110がカウント決定信号130を受信した時刻に対してタイムスタンプと比較して、第1の時間差値を決定することができる。シンクロナイザ112は、シンクロナイザ112がカウント決定信号130を受信した時刻に対してタイムスタンプと比較して、第2の時間差値を決定することができる。シンクロナイザ114は、シンクロナイザ114がカウント決定信号130を受信した時刻に対してタイムスタンプと比較して、第3の時間差値を決定することができる。
【0024】
さらなる例として、シンクロナイザ110、112、および114の各々は、個々の時間差値を同期信号生成器108に伝達するように構成することができる。例えば、シンクロナイザ110、112、および114の各々は、個々の時間差値を(例えば、信号として)伝達することができる個々の通信チャネル(
図1には図示せず)を介して同期信号生成器108に結合され得る。同期信号生成器108は、第1の時間差値と第3の時間差値との間の差に基づいて、シンクロナイザ110に対する第1の時間カウント値を決定するように構成することができる。例えば、第1の時間差値が10で、第3の時間差値が30の場合、第1の時間カウント値を20(例えば、30-10=20)とすることができる。同期信号生成器108は、第2の時間差値と第3の時間差値との間の差に基づいて第2の時間カウント値を決定するように構成することができる。
【0025】
例えば、第2の時間差値が20で、第3の時間差値が30の場合、第2の時間カウント値を10(例えば、20-10=10)とすることができる。同期信号生成器108は、第3の時間差値と第3の時間差値との間の差に基づいて第3の時間カウント値を決定するように構成することができる。同期信号生成器108は、個々の時間差値が伝達された対応する通信チャネル(または同期信号生成器108をシンクロナイザ110、112、および114に結合する異なる個々の通信チャネル)を介して、第1、第2、および第3の時間カウント値を個々のシンクロナイザ110、112、および14に送信するように構成することができる。従って、同期システム100を使用して、処理要素102、104、および106を同期させて、処理要素102、104、および106がほぼ同時に機能または動作を開始することができるようにすることができる。
【0026】
図2は、シンクロナイザ200の一例である。シンクロナイザ200は、
図1に示されるようなシンクロナイザ110、112、および114のうちの1つに対応することができる。従って、以下の
図2の説明は、
図1を参照することもできる。シンクロナイザ200は、ソフトウェア、ハードウェア、および/またはハードウェアとソフトウェアの組み合わせとして実施することができる。いくつかの例では、シンクロナイザ200は、入力段202を含むことができる。入力段202は、同期信号204を受信するように構成することができる。同期信号204は、
図1に示すような同期信号116に対応することができる。従って、同期信号204は、
図1に示されるような同期信号生成器108によって生成することができる。いくつかの例では、入力段は電界効果トランジスタ(FET)である。FETのゲートは、同期信号204が受信されるシンクロナイザの入力ノードに結合することができる。同期信号204は、ゲートを駆動して、FETに(例えば、FETのドレインにおいて)信号をシンクロナイザ200のシンクロナイザ論理回路206に出力させることができる。いくつかの例では、入力段202を省略して、同期信号204をシンクロナイザ論理回路206に供給することができる。さらなる例では、入力段202は、同期信号204をシンクロナイザ論理回路206に供給するように構成することができる。
【0027】
いくつかの例では、シンクロナイザ論理回路206は、同期アプリケーションを実行するための機械可読命令を備えたメモリを含むことができるコントローラとしての役割を担うことができる。例えば、同期アプリケーションは、個々の処理要素(例えば、
図1に示すような処理要素102)に、1つまたは複数の他の処理要素(例えば、
図1に示すような処理要素104および106)とほぼ同時に機能または動作を開始させるようにプログラムすることができる。1つまたは複数の他の処理要素は、シンクロナイザ200と同じようにまたは同様に動作することができるシンクロナイザを使用して(ただし、本明細書で説明するように、異なるカウント値で)、動作または機能を個々の処理要素と同期させることができる。
【0028】
例として、シンクロナイザ論理回路206は、同期信号204に基づいてカウンタ初期化信号208を生成するように構成することができる。例えば、シンクロナイザ論理回路206は、入力段からの信号の受信に応答して、カウンタ初期化信号208を生成することができる。シンクロナイザ200は、カウンタ210を含むことができる。カウンタ210は、ハードウェア、ソフトウェア、またはそれらの組み合わせで実施することができる。いくつかの例では、カウンタ210は、ダウンカウンタとして実施することができる。カウンタ210は、カウンタ値212でプログラムすることができる。カウンタ210は、別のプリセット値またはゼロ値に到達するまで、カウンタ値212からカウントダウンするように構成することができる。例えば、カウンタ210は、カウンタ初期化信号208の受信に応答して、カウンタ値212からプリセット値またはゼロ値にカウントダウンするように構成することができる。
【0029】
いくつかの例では、カウンタ210にカウンタ値212をプログラムするために、シンクロナイザ論理回路206は、カウンタプログラミング信号214を受信するように構成することができる。いくつかの例では、カウンタプログラミング信号214は、
図1に示されるように、同期信号生成器108によって提供され得る。カウンタプログラミング信号214は、カウンタ値212を特徴付けることができる。いくつかの例では、カウンタ値212は、本明細書に記載の例に従って決定することができる。他の例では、別の手法を使用してカウンタ値212を計算することができる。シンクロナイザ論理回路206は、カウンタ210をカウンタプログラミング信号214によって識別されるカウント値に設定するための設定カウント値信号216を生成することができる。従って、カウンタ210は、カウンタ初期化信号208の受信に応答して、カウンタ210がカウントダウンすることになる所定のカウント値をプログラムすることができる。他の例では、カウンタ210に所定のカウント値を設けることができる。
【0030】
いくつかの例では、カウンタ210は、カウントシーケンスの終了に到達したことに応答して、カウント到達信号218を出力するように構成することができる。シンクロナイザ論理回路206は、カウント到達信号218の受信に応答して起動信号220を出力するように構成することができる。起動信号220は、個々の処理要素の機能または動作を起動(または開始)するために、個々の処理要素のコントローラ(例えば、マイクロコントローラ、プロセッサなど)に提供することができる。従って、シンクロナイザ200は、個々の処理要素において、個々の処理要素の動作を1つまたは複数の他の処理要素と同期させるために使用することができる。
【0031】
図3は、処理要素ゾーン302、304、および306を備えたシステム300の一例である。
図3の例は、3つの処理要素ゾーンを示しているが、他の例では、3つより多いかまたは少ない処理要素ゾーンを使用することができる。
図3の例では、処理要素ゾーン302、304、および306の各々は、ゾーン同期して個々の機能または動作をほぼ同時に起動または開始することができる複数の処理要素を含むことができる。いくつかの例では、処理要素ゾーン302、304、および306の各々は、タスクを解決または処理するために同期して動作するように構成することができる。
【0032】
例として、第1の処理要素ゾーン302は、第1の組の処理要素308、310、および312を含む。第2の処理要素ゾーン304は、第2の組の処理要素314、316、および318を含むことができる。第3の処理要素ゾーン308は、第3の組の処理要素320、322、および324を含むことができる。一例として、第1の組の処理要素308、310、および312は、第1の組の論理回路(例えば、加算器回路)であり得、第2の組の処理要素314、316、および318は、第2の組の論理回路(例えば、減算器回路)であり得、第3の組の処理要素320、322、および324は、第3の組の論理回路(例えば、比較器回路)であり得る。いくつかの例では、対応する処理要素ゾーンの個々の処理要素は、データに基づいて機能または動作を実行するために、1つまたは複数の他の処理要素にデータを提供することができる。
【0033】
図3の例を続けると、各処理要素ゾーンの各処理要素は、
図1に示すようなシンクロナイザ110、112、および114のうちの1つ、または
図2に示すようなシンクロナイザ200と同じようにまたは同様に動作するように構成することができるシンクロナイザを含むことができる。従って、以下の
図3の説明は、
図1および
図2を参照することもできる。例えば、第1の組の処理要素308、310、312は、個々のシンクロナイザ326、328、および330を含むことができる。第2の組の処理要素314、316、および318は、個々のシンクロナイザ332、334、および336を含むことができる。第3の組の処理要素320、322、および324は、個々のシンクロナイザ338、340、および342を含むことができる。
図3の例は、3つの個々の処理要素を備えた処理要素ゾーン302、304、および306を示しているが、他の例では、3つより多いかまたは少ない処理要素を個々の処理要素ゾーン内で使用することができる。
【0034】
いくつかの例では、システム300は、同期信号生成器340を含むことができる。同期信号生成器340は、
図1に示されるような同期信号生成器108と同様に構成することができる。同期信号生成器344およびシンクロナイザ326、328、330、332、334、336、338、340、および324は、同期システムを定義または形成することができる。さらなる例として、各処理要素ゾーン302、304、および306は、同期信号生成器344によって生成される個々の同期信号346、348、および350を受信するように構成することができる。いくつかの例では、シンクロナイザ326、328、330、332、334、336、338、340、および324の各々は、個々のカウント値を格納するように構成することができる。各個々のシンクロナイザ326、328、330、332、334、336、338、340、および324に格納されている個々のカウント値は、個々のアップストリームシンクロナイザ326、328、332、334、338および340が個々の同期信号346、348、および350を受信する時間と、個々のアップストリームシンクロナイザに対して、同期信号生成器108から最も離れて位置する個々のダウンストリームシンクロナイザ330、336、および342が個々の同期信号346、348および350を受信する時間との間の差を表すことができる。シンクロナイザ326、328、330、332、334、336、338、340、および324の各々に格納された個々のカウント値は、本明細書に記載されている方法と同じようにまたは同様に決定することができる。
【0035】
各個々の処理要素ゾーン302、304、および306における各組のシンクロナイザ(例えば、第1の組のシンクロナイザ326、328、および330、第2の組のシンクロナイザ332、334、および336、および第3の組のシンクロナイザ338、340、および342)は、別のプリセット値またはゼロ値に到達するまで、個々のカウンタ値からカウントダウンするように構成することができる。各組のシンクロナイザは、各処理要素ゾーン302、304、および306における個々の処理要素に、個々の機能または動作機能を個々の処理要素ゾーン302、304、および306における他の処理要素とほぼ同時に開始させるように(開始するように命令するように)構成することができる。従って、個々の処理要素ゾーン302、304、および306における処理要素の動作は、個々のタスクを解決または処理するために同期して動作するように、1つまたは複数の他の処理要素と同期することができる。
【0036】
図4は、気象データ処理システム400の一例である。気象データ処理システム400は、複数の気象観測所402、404、406、および408を含むことができる。気象観測所402、404、406、および408は、気象観測所の三次元グリッドを形成することができる。
図4の例は4箇所の気象観測所を示しているが、他の例では4箇所より多いかまたは少ない気象観測所を使用することができる。各気象観測所402、404、406、および408は、個々の気象エンジン410、412、414、および416を使用することができる。いくつかの例では、各気象エンジン410、412、414、および416は、個々の気象データ418、420、422、および424の気象処理のための専用のハードウェアアクセラレータを含むことができる。各気象エンジン410、412、414、および416は、データがステーション識別子でタグ付けされているシリアル化されたバスを介して個々の気象データ418、420、422、および424を受信するように構成することができる。データがロードされると、気象観測所402、404、406、および408の間で所定の同期時間に境界状態を送信できるように、同期を使用して全ての処理を整合させることができる。処理が完了すると、結果をシリアルに取り出し、新たなデータをロードして、このプロセスを繰り返すことができる。
【0037】
例えば、気象エンジン410、412、414、および416の動作を同期するために、各エンジンをシンクロナイザ426、428、430、および432を用いて構成することができる。シンクロナイザ426、428、430、および432の各々は、
図1に示すようなシンクロナイザ110、112、および114のうちの1つ、または
図2に示すようなシンクロナイザ200と同じようにまたは同様に動作するように構成することができる。従って、以下の
図4の説明は、
図1および
図2を参照することもできる。いくつかの例では、同期信号生成器434を使用して、気象エンジン410、412、414、および416の動作を同期させることができる。同期信号生成器434は、
図1に示されるような同期信号生成器108と同様に構成することができる。同期信号生成器434は、
図1に示されるような同期信号116と同様の同期信号436を出力するように構成することができる。同期信号生成器434およびシンクロナイザ426、428、430、および432は、同期システムを定義または形成することができる。
【0038】
いくつかの例では、シンクロナイザ426、428、430、および432の各々は、個々のカウント値を格納するように構成することができる。個々のシンクロナイザ426、428、430、および432に格納されている個々のカウント値は、個々のアップストリームシンクロナイザ426、428、および430が同期信号436を受信する時間と、個々のアップストリームシンクロナイザ426、428、および430に対して同期信号生成器434から最も離れて位置しているダウンストリームシンクロナイザ432が同期信号436を受信する時間との間の差を表すことができる。シンクロナイザ426、428、430、および432の各々に格納された個々のカウント値は、本明細書に記載されている方法と同じようにまたは同様に決定することができる。
【0039】
シンクロナイザ426、428、430、および432は、別のプリセット値またはゼロ値に到達するまで、個々のカウンタ値からカウントダウンするように構成することができる。シンクロナイザ426、428、430、および432は、個々の気象エンジン410、412、414、および416に、他の気象エンジンとほぼ同時に個々の機能または動作機能を開始させる(例えば、開始するように命令する)ように構成することができる。従って、個々の気象エンジン410、412、414、および416の動作は、他の気象エンジン410、412、414、および416と同期することができ、従って、個々の気象タスクを解決または処理するために同期して動作することができる。
【0040】
上記の構造的および機能的特徴を考慮して、例示的な方法は、
図5を参照することによって、よりよく理解されるであろう。説明を簡単にするために、
図5の例示的な方法は、連続して実行されるものとして示され、説明されているが、他の例においていくつかの動作が明細書に示されかつ説明されているものとは異なる順序で、複数回、および/または同時に生じる可能性があるため、例示的な方法は、図示された順序によって制限されないことを理解および認識されたい。
【0041】
図5は、
図1に示されるような処理要素110、112、および114などの処理要素を同期させるための方法500の一例である。方法500は、本明細書に記載のシステムによって実行することができる。従って、以下の
図5の説明は、
図1~
図4を参照することもできる。方法500は、502において、同期信号生成器(例えば、
図1に示されるような同期信号生成器108)によって生成される同期信号(例えば、
図1に示されるような同期信号116)を送信することによって、開始することができる。504において、各処理要素の個々のシンクロナイザにおいて、同期信号が受信される。同期信号は、送信されてから時間的に異なるインスタンスで各シンクロナイザに到着する。
【0042】
506において、同期信号の受信に応答して、個々のシンクロナイザに、個々のカウント値(例えば、
図2に示されるようなカウンタ値212)から所定の終了カウントシーケンス値までカウントさせる。各個々のシンクロナイザは、カウント値を(例えば、
図2に示されるようなカウンタ210などのカウンタに)格納するように構成することができる。個々のシンクロナイザに格納されている個々のカウント値は、個々のアップストリームシンクロナイザと、個々のアップストリームシンクロナイザと比較して同期信号生成器から最も離れて位置するダウンストリームシンクロナイザとの間の同期信号を受信する時間の差を表すことができる。508において、対応するシンクロナイザが所定の終了カウントシーケンス値に到達したことに応答して、各個々の処理要素に個々の機能または動作を開始させる。各個々の処理要素は、時間的にほぼ同様のインスタンスで個々の機能または動作を開始するように構成することができる。
【0043】
上記した説明は、本例である。もちろん、構成要素または方法の考えられる全ての組合わせを説明することは不可能であるが、当業者は、さらに多くの組合わせおよび置換が可能であることを認識するであろう。従って、本開示は、添付の特許請求の範囲を含む本出願の範囲内にあるそのような全ての変更、修正、および変形を包含することを意図している。本明細書で使用される場合、「含む」という用語は、限定することなく含むことを意味する。「基づく(based on)」という用語は、少なくとも部分的に基づくことを意味する。さらに、本開示または特許請求の範囲が「ある」、「第1の」、または「別の」構成要素、またはそれらと同等の構成要素を記載している場合、それは、そのような構成要素を1つまたは複数含むと解釈されるべきであり、2つ以上の要素を必要とするわけでも、除外するわけでもない。
以下に、上記実施形態から把握できる技術思想を付記として記載する。
[付記1]
システムであって、
複数の処理要素の同期のための同期信号を生成および送信するように構成された同期信号生成器と、
複数のシンクロナイザと、を備え、前記複数の処理要素の各処理要素は、前記複数のシンクロナイザの個々のシンクロナイザを含み、前記複数のシンクロナイザの各々は、前記同期信号の受信に応答して、別個のカウント値から所定の終了カウントシーケンス値までカウントするように構成され、前記複数のシンクロナイザは、個々のシンクロナイザが前記所定の終了カウントシーケンス値に到達したことに応答して、前記複数の処理要素の個々の処理要素に個々の機能または動作を開始させるように構成される、システム。
[付記2]
前記複数のシンクロナイザは、第1および第2のアップストリームシンクロナイザと、ダウンストリームシンクロナイザとを含み、前記別個のカウント値は、第1のカウント値および第2のカウント値を含み、前記第1のカウント値は、前記第1のアップストリームシンクロナイザが前記同期信号を受信する時間と前記ダウンストリームシンクロナイザが前記同期信号を受信する時間との間の差を表し、前記第2のカウント値は、前記第2のアップストリームシンクロナイザが前記同期信号を受信する時間と前記ダウンストリームシンクロナイザが前記同期信号を受信する時間との間の差を表す、付記1に記載のシステム。
[付記3]
前記ダウンストリームシンクロナイザは、前記同期信号の受信に応答して、第3のカウント値から前記所定の終了カウントシーケンス値までカウントするように構成され、前記ダウンストリームシンクロナイザは、前記ダウンストリームシンクロナイザが前記所定の終了カウントシーケンス値に到達したことに応答して、前記複数の処理要素の第3の処理要素に個々の機能または動作を開始させるように構成されている、付記2に記載のシステム。
[付記4]
前記同期信号は、前記同期信号生成器によって送信されてから時間的に異なるインスタンスで前記第1および第2のアップストリームシンクロナイザおよび前記ダウンストリームシンクロナイザの各々に到着し、第1、第2、および第3の処理要素の各々は、時間的にほぼ同様のインスタンスで個々の機能または動作を開始するように構成される、付記3に記載のシステム。
[付記5]
前記第1および第2のアップストリームシンクロナイザおよび前記ダウンストリームシンクロナイザの各々は、シンクロナイザ論理回路およびカウンタを含み、前記シンクロナイザ論理回路は、前記カウンタを起動して、個々のカウント値から前記所定の終了カウントシーケンス値までカウントダウンまたはカウントアップさせるように構成されており、前記カウンタは、前記所定の終了カウントシーケンス値に到達したことに応答してカウント到達信号を出力するように構成されている、付記4に記載のシステム。
[付記6]
前記シンクロナイザ論理回路は、前記カウント到達信号の受信に応答して起動信号を出力するように構成され、前記起動信号は、個々の機能または動作を開始させるために個々の処理要素のコントローラに供給される、付記5に記載のシステム。
[付記7]
システムであって、
複数の処理要素の同期のための同期信号を生成および送信するように構成された同期信号生成器と、
複数の組のシンクロナイザと、を備え、各組のシンクロナイザの各個々のシンクロナイザは、前記複数の処理要素のうちの1つの処理要素の一部であり、前記複数の処理要素は、個々の処理要素ゾーンを形成するように配置された複数の組の処理要素を含んでおり、
各個々のシンクロナイザは、前記同期信号の受信に応答して他のシンクロナイザとは異なるカウント値から所定の終了カウントシーケンス値までカウントし、個々のシンクロナイザが前記所定の終了カウントシーケンス値に到達したことに応答して、個々のシンクロナイザを含む対応する処理要素に個々の機能または動作を開始させるように構成されている、システム。
[付記8]
前記同期信号は、前記同期信号生成器によって送信されてから時間的に異なるインスタンスで各シンクロナイザに到着する、付記7に記載のシステム。