IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ エーティーアイ・テクノロジーズ・ユーエルシーの特許一覧

特表2024-501283ソフトウェア実施ゲンロック及びフレームロック
<>
  • 特表-ソフトウェア実施ゲンロック及びフレームロック 図1
  • 特表-ソフトウェア実施ゲンロック及びフレームロック 図2
  • 特表-ソフトウェア実施ゲンロック及びフレームロック 図3
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-01-11
(54)【発明の名称】ソフトウェア実施ゲンロック及びフレームロック
(51)【国際特許分類】
   H04N 5/66 20060101AFI20231228BHJP
【FI】
H04N5/66 D
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023538714
(86)(22)【出願日】2021-12-22
(85)【翻訳文提出日】2023-08-15
(86)【国際出願番号】 IB2021062213
(87)【国際公開番号】W WO2022144708
(87)【国際公開日】2022-07-07
(31)【優先権主張番号】17/138,181
(32)【優先日】2020-12-30
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】508301087
【氏名又は名称】エーティーアイ・テクノロジーズ・ユーエルシー
【氏名又は名称原語表記】ATI TECHNOLOGIES ULC
【住所又は居所原語表記】One Commerce Valley Drive East, Markham, Ontario, L3T 7X6 Canada
(74)【代理人】
【識別番号】100108833
【弁理士】
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【弁理士】
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【弁理士】
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】デイビッド アイ. ジェイ. グレン
【テーマコード(参考)】
5C058
【Fターム(参考)】
5C058BA23
5C058BB08
(57)【要約】
処理システム(100)は、複数のビデオ処理ユニット(VPU)(105)のディスプレイ出力(130)の周波数及び位相を、各VPUで生成されたローカルタイムベース(230)を調整して、ネットワークプロトコルに基づいて生成された仮想グローバルタイムベース(235)に一致させ、仮想グローバルタイムベースに基づいてディスプレイ出力のビデオタイミングを同期させることによって同期させる。
【選択図】図1
【特許請求の範囲】
【請求項1】
方法であって、
複数のビデオ処理ユニット(VPU)のために、仮想グローバルタイムベースを生成することであって、前記仮想グローバルタイムベースは、ネットワークプロトコルに基づいてネットワークタイムベースに同期され、各VPUは、複数のディスプレイモジュールのうち1つ以上に表示するためのフレームの1つ以上の部分を生成し、前記ディスプレイモジュールは、固定リフレッシュレートを有する、ことと、
各VPUにおいて、ローカルタイムベースを生成することと、
各VPUにおいて、対応するローカルタイムベースと前記仮想グローバルタイムベースとの間の周波数の差を監視することと、
前記差に基づいて前記ローカルタイムベースの周波数を調整することと、を含む、
方法。
【請求項2】
前記VPUが前記差に基づいて前記ローカルタイムベースの前記周波数を調整したことを示す信号を、各VPUから受信することと、
各VPUから前記信号を受信したことに応じて、前記ネットワークタイムベース上で同時に開始するように、開始コマンドを各VPUに送信することと、を含む、
請求項1の方法。
【請求項3】
各VPUにおいて、前記開始コマンドを受信したことに応じて、固定リフレッシュレートビデオタイミング信号を前記ディスプレイモジュールに送信することを含む、
請求項2の方法。
【請求項4】
前記調整することは、
前記ローカルタイムベースが前記仮想グローバルタイムベースよりも速いと判定したことに応じて、前記ローカルタイムベースの周波数を減少させることと、
前記ローカルタイムベースが前記仮想グローバルタイムベースよりも遅いと判定したことに応じて、前記ローカルタイムベースの周波数を増加させることと、を含む、
請求項1~3の何れかの方法。
【請求項5】
各VPUの前記ローカルタイムベースは、水晶発振器と、前記VPUにおける複数の離散的設定を有する位相ロックループ(PLL)と、に基づいており、
前記調整することは、前記差に基づいて、期間の1つ以上の部分について前記PLLの1つ以上の離散的設定を選択することを含む、
請求項1~4の何れかの方法。
【請求項6】
前記調整することは、前記差が閾値を超えることに基づいて周期的に調整することを含む、
請求項1~5の何れかの方法。
【請求項7】
方法であって、
複数のビデオ処理ユニット(VPU)の各々において生成されたローカルタイムベースの周波数を、ネットワークプロトコルに基づいて生成された前記複数のVPUの仮想グローバルタイムベースの周波数と比較することと、
前記ローカルタイムベースの周波数が前記仮想グローバルタイムベースと異なると判定したことに応じて、前記仮想グローバルタイムベースの周波数に一致するように、前記ローカルタイムベースの周波数を調整することと、を含む、
方法。
【請求項8】
前記VPUが前記仮想グローバルタイムベースの周波数に一致するように前記ローカルタイムベースの周波数を調整したことを示す信号を、各VPUから受信することと、
各VPUから前記信号を受信したことに応じて、前記仮想グローバルタイムベース上で同時に開始するように、開始コマンドを各VPUに送信することと、
各VPUにおいて、前記開始コマンドを受信したことに応じて、固定リフレッシュレートビデオタイミング信号を1つ以上のディスプレイモジュールに送信することと、を含む、
請求項7の方法。
【請求項9】
前記調整することは、
前記ローカルタイムベースが前記仮想グローバルタイムベースよりも速いと判定したことに応じて、前記ローカルタイムベースの周波数を減少させることと、
前記ローカルタイムベースが前記仮想グローバルタイムベースよりも遅いと判定したことに応じて、前記ローカルタイムベースの周波数を増加させることと、を含む、
請求項7の方法。
【請求項10】
各VPUの前記ローカルタイムベースは、水晶発振器と、前記VPUにおける複数の離散的設定を有する位相ロックループ(PLL)と、に基づいており、
前記調整することは、前記ローカルタイムベースの周波数が前記仮想グローバルタイムベースと異なる量に基づいて、エポックの1つ以上の部分について前記PLLの1つ以上の離散的設定を選択することを含む、
請求項7~9の何れかの方法。
【請求項11】
前記調整することは、前記ローカルタイムベースの周波数が前記仮想グローバルタイムベースと異なる量が閾値を超えることに基づいて周期的に調整することを含む、
請求項7の方法。
【請求項12】
複数のビデオ処理ユニット(VPU)を備えるシステムであって、各VPUは、1つ以上のディスプレイモジュールに表示するための画像を生成するように構成されており、前記システムは、請求項1~11の何れかの方法を実行するように構成されている、
システム。
【請求項13】
システムであって、
複数のビデオ処理ユニット(VPU)を備え、各VPUは、1つ以上のディスプレイモジュールに表示するための画像を生成するように構成されており、各VPUは、タイミング生成器を備え、
前記タイミング生成器は、
ローカルタイムベースを生成することと、
前記ローカルタイムベースの周波数を、ネットワークプロトコルに基づいて生成された前記複数のVPUの仮想グローバルタイムベースの周波数と比較することと、
前記ローカルタイムベースの周波数が前記仮想グローバルタイムベースと異なると判定したことに応じて、前記仮想グローバルタイムベースの周波数に一致するように、前記ローカルタイムベースの周波数を調整することと、
を行うように構成されている、
システム。
【請求項14】
ドライバを備え、
前記ドライバは、
前記VPUディスプレイタイミング生成器が前記仮想グローバルタイムベースの周波数に一致するように前記ローカルタイムベースの周波数を調整したことを示す信号を、前記VPUディスプレイタイミング生成器の各々から受信することと、
前記VPUディスプレイタイミング生成器の各々から前記信号を受信したことに応じて、前記仮想グローバルタイムベース上で同時に開始するように、開始コマンドを前記VPUディスプレイタイミング生成器に送信することと、
を行うように構成されている、
請求項13のシステム。
【請求項15】
各VPUは、
前記開始コマンドを受信したことに応じて、固定リフレッシュレートビデオタイミング信号を前記ディスプレイモジュールに送信するように構成されている、
請求項14のシステム。
【請求項16】
各タイミング生成器は、
前記ローカルタイムベースが前記仮想グローバルタイムベースよりも速いと判定したことに応じて、前記ローカルタイムベースの周波数を減少させることと、
前記ローカルタイムベースが前記仮想グローバルタイムベースよりも遅いと判定したことに応じて、前記ローカルタイムベースの周波数を増加させることと、
を行うように構成されている、
請求項13のシステム。
【請求項17】
各VPU用の前記ローカルタイムベースは、水晶発振器と、前記VPUにおける複数の離散的設定を有する位相ロックループ(PLL)と、に基づいている、
請求項13~16の何れかのシステム。
【請求項18】
前記複数のVPUから表示するための画像を受信するように構成された固定リフレッシュレートを有する複数のディスプレイモジュールを備える、
請求項17のシステム。
【発明の詳細な説明】
【背景技術】
【0001】
複数のプロセッサからの同期されたディスプレイ出力を必要とするアプリケーションは、典型的に、互いに、ディスプレイモジュールリフレッシュレートの周波数(生成ロック又は「ゲンロック(Genlock)」)及び位相(フレームロック)をプロセッサがロックするための共通タイムベースを生成する外部基準(ハウス同期(house sync))信号に接続するための専用ハードウェア及びケーブルを採用する。例えば、広告及びテレビ及びフィルムの製造に使用されるディスプレイウォールは、(しばしば「ディスプレイパネル」とも呼ばれる)ディスプレイモジュールのアレイを含み、ディスプレイモジュールの各々は、フレームの部分を表示し、それにより、ディスプレイモジュールのアレイは、完全なフレームを一緒に表示し、任意の単一のディスプレイパネルよりも大きい表示領域を生成する。4つ以上のディスプレイモジュールを含む大型ディスプレイウォールは、典型的には、動き又は画像ティアリング(image tearing)による視覚的問題を回避するために周波数及び位相がロックされなければならない複数のビデオ処理ユニットによって駆動される。
【0002】
本開示は、添付の図面を参照することによってより良好に理解され、その多くの特徴及び利点が当業者に明らかにされる。異なる図面における同じ符号の使用は、類似又は同一のアイテムを示す。
【図面の簡単な説明】
【0003】
図1】いくつかの実施形態による、複数のディスプレイモジュールにおいてビデオのフレームの表示を動的に同期させる複数のビデオ処理ユニットを含む処理システムのブロック図である。
図2】いくつかの実施形態による、ローカルタイムベース周波数を仮想グローバルタイムベース周波数と同期させるためのビデオ処理ユニットのディスプレイタイミング生成器のブロック図である。
図3】いくつかの実施形態による、ローカルタイムベース周波数を仮想グローバルタイムベース周波数に同期させるために「モード設定」を実行するための方法を示すフロー図である。
【発明を実施するための形態】
【0004】
図1図3は、複数のビデオ処理ユニット(VPU)のディスプレイ出力の周波数及び位相を、各VPUで生成されたローカルタイムベースを調整して、ネットワークプロトコルに基づいて生成された仮想グローバルタイムベースに一致させ、仮想グローバルタイムベースに基づいてディスプレイ出力の開始時間を同期させることによって同期させるためのシステム及び技術を示す。多数のディスプレイモジュールを組み込んだ大きなディスプレイウォール等のいくつかの実施形態では、処理システムは、各々が複数のディスプレイモジュールを駆動する複数のVPUを含み、各VPUは、複数のディスプレイモジュールの各々で表示するためのフレームの一部を生成する。各ディスプレイモジュールは、アレイのディスプレイモジュールが全フレームを一緒に表示するように、フレームの部分を表示する。
【0005】
処理システムのVPUは、IEEE 1588Precision Time Protocol(PTP)等のネットワークプロトコルを使用して仮想グローバルタイムベースを生成するソフトウェアを含み、これは、全てのシステム構成要素にわたって同期を維持するためにマスタ/スレーブアーキテクチャを採用する。例えば、IEEE 1588ネットワークプロトコルでは、PTPマスタクロックは、タイムスタンプされたメッセージをシステムの構成要素(PTPスレーブ)に提供する基準ソースとして機能する。次いで、PTPスレーブは、それらのローカルタイムベースを受信メッセージ内のタイムスタンプと比較することによって、PTPマスタタイミング基準に同期する。このようにして、VPUは、物理的クロック信号を参照することなく、グローバルタイムベースを仮想的に生成する。
【0006】
また、各VPUは、VPUのためのローカル基準クロック(ローカルタイムベースと呼ばれる)から生成されるビデオタイミングを生成するディスプレイタイミング生成器を含む。各VPUは、ローカルタイムベースの周波数を、ネットワークプロトコルに基づいて生成された仮想グローバルタイムベースの周波数と比較し、ローカルタイムベースを調整して仮想グローバルタイムベースの周波数に一致させることによって「モード設定」を実行する。いくつかの実施形態では、調整は、ディスプレイモジュールを妨害しないように、+/-30ppm等の閾値量内に保たれる。モード設定は、ローカルタイムベースの周波数を仮想グローバルタイムベースの周波数にロックする。
【0007】
いくつかの実施形態では、VPUディスプレイタイミング生成器は、水晶発振器等のクロック源と併せて位相ロックループ(PLL)及び周波数分割器を使用して、ローカルタイムベースを生成する。VPUディスプレイタイミング生成器は、クロック源によって生成されるベースクロック信号の関数であるいくつかの離散周波数を生成するための設定を含む。いくつかの実施形態では、設定間の周波数差は、ローカルタイムベースが仮想タイムベースの周波数に一致するように調整されなければならない量よりも大きい。調整が設定間であるモード設定を実行するために、VPUディスプレイタイミング生成器は、平均ターゲット周波数に到達するための2つの隣接する設定の比率を決定する。例えば、いくつかの実施形態では、仮想グローバルタイムベースがローカルタイムベースの「通常」設定よりわずかに遅い場合、VPUディスプレイ時間生成器は、時間の10%に対してより遅い周波数設定を選択し、時間の90%に対して通常の周波数設定を選択する。
【0008】
モード設定が実行され、VPU及びそれらの対応するディスプレイモジュールのリフレッシュレートがロックされると、処理システムは、仮想グローバルタイムベースに対して同時に開始するようにVPUディスプレイタイミング生成器の全てに信号を送ることによって、VPUリフレッシュレートの位相を同期させる。これに応じて、VPUは、同時(又はほぼ同時)の垂直同期(vsync)コマンド及び他の固定リフレッシュレートビデオタイミング信号をそれぞれのディスプレイモジュールに発行する。VPUの周波数がモード設定の間に固定されると、VPUの位相は、周波数をロックされたままにすることによって同期して維持される。VPUローカルタイムベースの周波数が熱等の要因によって経時的にドリフトするのを防止するために、各VPUは、ローカルタイムベースと仮想グローバルタイムベースとの間の差を周期的に監視し、必要に応じてローカルタイムベースを調整して仮想グローバルタイムベースのレートに一致させる。
【0009】
本明細書で使用される「同期される」又は「同時」とは、2つ以上のディスプレイモジュールの表示サイクルにおける特定の時点の指定された時間量(誤差マージン)内の相対的な位置合わせを指す。例えば、いくつかの実施形態では、2つ以上のディスプレイモジュールは、それぞれの垂直ブランキング期間の開始等のそれぞれの表示サイクルにおける他の時点が互いの指定された時間量内に開始されない場合であっても、また、何れかのディスプレイモジュールについて1つおきの表示サイクル等の他の表示サイクルが互いの指定された時間内に開始されない場合であっても、互いの指定された時間量内に垂直アクティブ期間を開始する場合に「同期されている」とみなされる。
【0010】
図1は、いくつかの実施形態による、ディスプレイウォール140の複数の固定リフレッシュレートディスプレイモジュール141(図示したディスプレイモジュール141-1、141-2、141-3、141-4、141-5、141-6、141-7、141-8、141-9等)においてビデオのフレームの表示を動的に同期させる複数のビデオ処理ユニット(VPU)105(図示したVPU105-1、105-2等)を含む、処理システム100を示す。処理システム100は、概して、アプリケーション155等の命令セット(例えばコンピュータプログラム)を実行して、電子デバイスのための指定されたタスクを実行するように構成されている。そのようなタスクの例は、電子デバイスの動作のアスペクトを制御すること、ユーザに情報を表示して、特定のユーザエクスペリエンスを提供すること、他の電子デバイスと通信すること等を含む。したがって、異なる実施形態では、処理システム100は、デスクトップコンピュータ、ラップトップコンピュータ、サーバ、ゲームコンソール等の多数のタイプの電子デバイスのうち何れかで採用されている。処理システム100は、図1に示すよりも多い又は少ない構成要素を含み得ることを理解されたい。例えば、処理システム100は、追加的に追加のVPU、1つ以上の入力インターフェース、不揮発性ストレージ、1つ以上の出力インターフェース、ネットワークインターフェース、及び、より多い又はより少ない固定リフレッシュレートディスプレイモジュール又はディスプレイインターフェースを含み得る。
【0011】
図1に示すように、処理システム100は、メモリ170、オペレーティングシステム(図示せず)、通信インフラストラクチャ175、及び、1つ以上のアプリケーション155を含む。メモリ170へのアクセスは、メモリ170に結合されたメモリコントローラ(図示せず)によって管理される。例えば、システムメモリ170から読み取るか又はメモリ170に書き込むためのVPU105又はその他のデバイスからの要求は、メモリコントローラによって管理される。いくつかの実施形態では、1つ以上のアプリケーション155は、VPU105においても実行される計算を行うための種々のプログラム又はコマンドを含む。処理システム100は、ドライバ150を更に含む。処理システム100の構成要素は、ハードウェア、ファームウェア、ソフトウェア又はそれらの任意の組み合わせとして実装されてもよい。
【0012】
処理システム100内で、メモリ170は、DRAM(図示せず)等の非永続的メモリを含む。種々の実施形態では、メモリ170は、処理論理命令、定数値、アプリケーション又はその他の処理論理の一部の実行中の変数値、又は、その他の所望の情報を記憶する。例えば、VPU105上の1つ以上の動作を実行するための制御論理の一部は、VPU105による動作のそれぞれの部分の実行中にメモリ170内に存在する。実行中、それぞれのアプリケーション、オペレーティングシステム機能、処理論理コマンド及びシステムソフトウェアは、メモリ170に存在する。いくつかの実施形態では、その他のソフトウェアコマンド(例えば、ドライバ150)は、処理システム100の実行中にメモリ170内に存在する。
【0013】
ソフトウェアドライバ150は、アプリケーション155からグラフィックス動作を受信し、グラフィックス動作を、処理システム100のグラフィックスパイプラインに提供されるコマンドストリームに変換する。ドライバ150は、アプリケーション155から等のより高いレベルのグラフィックコンピューティングプログラムがVPU105-1、105-2と相互作用することを可能にするコンピュータプログラムである。例えば、ドライバ150は、アプリケーション155から受信した標準コードを、VPU105-1、105-2によって理解されるネイティブフォーマットコマンドストリームに変換する。ドライバ150は、アプリケーション155からの入力が、各VPU105の設定を指示することを可能にする。このような設定は、モード設定後にローカルタイムベースを開始するタイミングを含む。
【0014】
命令セットの実行をサポートするために、VPU105-1、105-2の各々は、少なくとも1つのメモリ(図示せず)と、ディスプレイタイミング生成器120-1、120-2と、中央処理ユニット(CPU)110-1、110-2等の少なくとも1つのプロセッサと、ディスプレイインターフェース(IF)130-1、130-2と、を含む。インターフェース130-1、130-2は、HDMI(登録商標)インターフェース、DisplayPortインターフェース、エンベデッドDisplayPort(embedded DisplayPort、eDP)インターフェース等の有線又は無線の相互接続インターフェースを含む。
【0015】
いくつかの実施形態では、各CPU110-1、110-2は、命令をフェッチし、命令を対応する演算にデコードし、演算を1つ以上の実行ユニットにディスパッチし、演算を実行し、演算を終了させるための1つ以上の命令パイプラインを含む。命令を実行する過程で、プロセッサは、情報の視覚的表示に関連付けられるグラフィックス演算及び他の演算を生成する。これらの演算に基づいて、プロセッサは、グラフィックス処理ユニット(graphics processing unit、GPU)115-1、115-2等の1つ以上の並列プロセッサにコマンド及びデータを提供する。本明細書で説明される技術は、様々な実施形態では、様々な並列プロセッサ(例えば、ベクトルプロセッサ、グラフィックス処理ユニット(GPU)、汎用GPU(general-purpose GPU、GPGPU)、非スカラプロセッサ、高並列プロセッサ、人工知能(artificial intelligence、AI)プロセッサ、推論エンジン、機械学習プロセッサ、他のマルチスレッド処理ユニット等)のうち何れかにおいて利用される。図1は、いくつかの実施形態による、並列プロセッサ、特に、GPU115-1、115-2の一例を示す。
【0016】
GPU115-1、115-2は、概して、CPU110-1、110-2からグラフィックス演算及び他の表示演算に関連付けられたコマンド及びデータを受信するように構成されている。受信したコマンドに基づいて、GPU115-1、115-2は、表示する画像(フレーム)を生成するための演算を実行する。演算の例としては、ベクトル演算、描画演算等が挙げられる。GPU115-1、115-2がこれらの演算に基づいてフレームを生成することができるレートは、GPU115-1、115-2のフレーム生成レート又は単にフレームレートと呼ばれる。
【0017】
いくつかの実施形態では、GPU115-1、115-2は、GPU115-1、115-2が、あるフレームを1つのバッファ(バックバッファと呼ばれる)に書き込み、一方、現在のフレームが別のバッファ(フロントバッファと呼ばれる)からスキャンアウトされるように、フレームのそれぞれの部分をディスプレイモジュール141に出力するために複数のバッファリングを採用する。リフレッシュレートと呼ばれる固定周波数においてGPU115-1、115-2は、バックバッファであったバッファが今度はフロントバッファ(すなわち、スキャンアウトバッファ)となり、以前にスキャンアウトバッファであったバッファが今度はバックバッファ(すなわち、GPU115-1、115-2が書き込むバッファ)となるように、スキャンアウトされているバッファをディスプレイに「フリップ」する。
【0018】
ディスプレイタイミング生成器120-1、120-2は、VPU105-1、105-2における論理演算を同期させるために、1つ以上のクロック信号を生成する。タイミング制御モジュール125-1、125-2は、ディスプレイタイミング生成器120-1、120-2によって生成されるクロック信号の周波数を設定する。ディスプレイタイミング生成器120-1、120-2は、タイミング制御モジュール125-1、125-2からの信号のセットと、水晶発振器(図示せず)からの基準クロック信号(図示せず)に基づいて位相ロックループ(phase locked loop、PLL)によって生成されたベースクロック信号のセットと、を受信するように構成される。ディスプレイタイミング生成器120-1、120-2は、ベース信号を組み合わせて、タイミング制御モジュール125-1、125-2から受信された信号によって示される周波数のクロック信号を生成し、これはローカルタイムベースと呼ばれる。ディスプレイタイミング生成器120-1、120-2及びタイミング制御モジュール125-1、125-2は、ハードコードされたロジック又はプログラム可能なロジック、ソフトウェア/ファームウェア命令を実行する1つ以上のプロセッサ、あるいはこれらの任意の組み合わせとして実装される。
【0019】
ディスプレイウォール140は、ディスプレイモジュール141-1、141-2、141-3、141-4、141-5、141-6、141-7、141-8、141-9(まとめてディスプレイモジュール141と呼ばれる)のアレイを含む。各ディスプレイモジュール141は、VPU105-1、105-2のうち何れかからレンダリングされたフレームの部分を受信する。例えば、いくつかの実施形態では、VPU105-1は、レンダリングされたフレームの部分を生成し、1つの部分をディスプレイモジュール141-1、141-2、141-3、141-4の各々に出力し、一方、VPU105-2は、レンダリングされたフレームの部分を生成し、1つの部分をディスプレイモジュール141-5、141-6、141-7、141-8、141-9の各々に出力し、それにより、ディスプレイモジュール141の各々がフレームのその受信されたレンダリングされた部分を表示する場合、フレーム全体(画像)がディスプレイウォール140のディスプレイモジュール141の全てにわたって表示される。各ディスプレイモジュール141はディスプレイパネルを含み、ディスプレイパネルのリフレッシュを、ディスプレイモジュール141がレンダリングされたフレームを受信するVPU105-1、105-2のローカルタイムベースと同期させる。
【0020】
一般的な動作概要として、CPU110-1、110-2及びGPU115-1、115-2は、一連のディスプレイフレーム及び対応するメタデータを含むビデオストリームを生成し、このビデオストリームを、ディスプレイインターフェース130-1、130-2及び相互接続135-1、135-2を介してディスプレイモジュール141に送信する。ディスプレイモジュール141の各々において、ディスプレイコントローラ(図示せず)は、各ディスプレイフレーム及び対応するメタデータを順に受信し、対応するフレーム期間中にディスプレイモジュール141のディスプレイパネルにおいて順次表示するようにディスプレイフレームを処理する。当業者によって理解されるように、ディスプレイモジュール141は、概して、ディスプレイモジュール141が対応するGPU115-1、115-2から受信するピクセルデータを使用してディスプレイパネルをリフレッシュすることによって、対応するGPU115-1、115-2によって生成された最新のフレームを表示するように構成されている。
【0021】
GPU115-1、115-2によって生成される各フレームは、垂直アクティブ領域と、垂直ブランキング領域と、を含む。垂直アクティブ領域は、ディスプレイモジュール141のディスプレイパネルに表示される画像を構成するピクセルデータを含む。垂直ブランキング領域は、ディスプレイモジュール141がピクセルデータをどのように解釈すべきかを示す情報等のメタデータを含む。ディスプレイコントローラが(垂直ブランキング間隔と呼ばれる)垂直ブランキング領域を受け取る期間の間、いくつかの実施形態では、ディスプレイパネルは、前の垂直アクティブ領域においてGPU115-1、115-2によって最後に送信された画像を表示する。
【0022】
ディスプレイウォール140のディスプレイモジュール141の各々による画像の表示の同期を容易にするために、処理システム100は、ソフトウェアプロセスを使用して、ハウス同期受信機又はVPU105-1、105-2を相互接続するための同軸ケーブル等の追加のハードウェアなしに、ディスプレイモジュール141の全てを表示ライン期間の閾値数内に周波数及び位相整合させる。処理システムは、VPU105-1、105-2のためのネットワークプロトコルベースの仮想グローバルタイムベースを生成するための仮想グローバルタイムベース生成器145を含む。仮想グローバルタイムベース生成器145は、ハードコードされたロジック又はプログラム可能なロジック、ソフトウェア/ファームウェア命令を実行する1つ以上のプロセッサ、あるいはこれらの任意の組み合わせとして実装される。いくつかの実施形態では、仮想グローバルタイムベース生成器145は、VPU105-1、105-2に組み込まれる。いくつかの実施形態において、仮想グローバルタイムベース生成器145は、PTPマスタクロック信号として機能する。他の実施形態では、仮想グローバルタイムベース生成器145は、別のネットワーク化された構成要素によって生成されたクロック信号をPTPマスタクロック信号として選択する。
【0023】
PTP、Reference Broadcast Time Synchronization(RBS)、Reference Broadcast Infrastructure Synchronization(RBIS)、Synchronous Ethernet、IEEE 802.1 Time-Sensitive Networking、又は、SMPTE2059等のネットワークプロトコルを使用して、仮想グローバルタイムベース生成器145は、ネットワークタイムベースに基づく共通仮想グローバルタイムベースを処理システム100のデバイスに配信し、ハウス同期又は共通基準クロックを全てのデバイスにケーブルベースで配信する必要はない。
【0024】
各VPU105-1、105-2は、「モード設定」を実行して、ローカルタイムベースの周波数を仮想グローバルタイムベースの周波数にロックする。モード設定を実行するために、VPU105-1、105-2の各々は、それらの対応するローカルタイムベースの周波数と仮想グローバルタイムベースとを比較する。VPU105-1、105-2は、それぞれのローカルタイムベースと仮想グローバルタイムベースとの間の差を監視し、ローカルタイムベースを調整して仮想グローバルタイムベースの周波数に一致させる。したがって、仮想グローバルタイムベースがローカルタイムベースよりも速い場合、VPUはローカルタイムベースの周波数を増加させる。逆に、仮想グローバルタイムベースがローカルタイムベースよりも遅い場合、VPUはローカルタイムベースの周波数を減少させる。
【0025】
モード設定が完了し、ローカルタイムベースが仮想グローバルタイムベースと同期された後、ディスプレイタイミング生成器120-1、120-2は、ドライバ150に信号を送り、ディスプレイタイミング生成器120-1、120-2がそれらのローカルタイムベースの周波数を調整して仮想グローバルタイムベースの周波数に一致させたことを示す。ローカルタイムベースの周波数が仮想グローバルタイムベースの周波数に一致するというインジケーションを受信したことに応じて、ドライバ150は、仮想グローバルタイムベース上で同時に開始するように、VPUディスプレイタイミング生成器120-1、120-2に開始コマンドを送信する。開始コマンドの受信に応じて、VPU105-1、105-2は、垂直同期(vsync)コマンド、固定リフレッシュレート、ラインレート及びピクセルクロックタイミング等の情報を含む固定リフレッシュレートビデオタイミング信号を、開始コマンドによって示された時間にディスプレイインターフェース130-1、130-2及び相互接続135-1、135-2を介してディスプレイモジュール141に送信する。ビデオタイミング信号は、フレームの生成された部分を表示するための表示サイクルの開始を示す。VPU105-1、105-2によるビデオタイミング信号165-1、165-2の同時(又はほぼ同時)発行は、仮想グローバルタイムベースに基づいて、ディスプレイモジュール141の各々の表示サイクルの周波数及び位相を、人間の目には知覚できない差である数個の表示ライン期間内で効果的に同期させる。
【0026】
VPUディスプレイタイミング生成器120-1、120-2が、仮想グローバルタイムベースの周波数に一致する周波数で、仮想グローバルタイムベース上で同時に開始すると、VPUディスプレイタイミング生成器120-1、120-2は、本質的に、周波数及び位相の両方において互いにロックされたままである。VPU105-1、105-2は、仮想グローバルタイムベースの周波数で新しいフレームを生成し、ディスプレイモジュール141は、数ライン期間等の小さなマージン内で同じレートでリフレッシュする。時間の経過とともに、VPU105-1、105-2のうち1つ以上のローカルタイムベースの周波数がドリフトし、熱等の要因によって仮想グローバルタイムベースよりも速くなったり遅くなったりする可能性がある。経時的に同期性を維持するために、ディスプレイタイミング生成器120-1、120-2は、ローカルタイムベースの周波数と仮想グローバルタイムベースの周波数との間の差を監視し、差が閾値を超える場合に、ローカルタイムベース周波数を再調整して仮想グローバルタイムベースに一致させる。
【0027】
図2は、いくつかの実施形態による、VPU105-1、105-2のディスプレイタイミング生成器220と、ローカルタイムベース周波数を仮想グローバルタイムベース周波数と同期させるためのタイミング制御225とのブロック図200である。ディスプレイタイミング生成器220は、水晶発振器210又は他のクロック源から基準クロック信号を受信し、基準クロック信号に基づいて複数のベースクロック信号を生成するPLL215を含む。ディスプレイタイミング生成器220は、ベースクロック信号を組み合わせて、タイミング制御225から受信した信号によって示される周波数でローカルタイムベース230を生成する。
【0028】
タイミング制御225は、比較器240及びタイミング調整モジュール250を含む。比較器240は、ローカルタイムベース230のクロック信号と仮想グローバルタイムベース235のクロック信号とを受信し、2つのクロック信号の周波数を比較する。比較器が周波数間の差245を検出した場合、比較器は、タイミング調整モジュール250に差245を示す。タイミング調整モジュール250は、ローカルタイムベース230を仮想グローバルタイムベース235と同期させる、ローカルタイムベース230の周波数に適用される調整255を決定する。例えば、比較器240が、ローカルタイムベース230周波数と仮想グローバルタイムベース周波数235との間の差245が-10ppmである(すなわち、ローカルタイムベースが仮想グローバルタイムベースよりも10ppm遅い)と判定した場合、タイミング調整モジュール250は、ローカルタイムベース230周波数に対して+10ppmの調整255を示す。
【0029】
いくつかの実施形態では、ディスプレイタイミング生成器220は、比較器240によって検出された周波数の差245の値よりも大きい離散増分(設定)でクロック信号を生成することができる。例えば、差245が-10ppmであり、次に最も遅いクロック周波数設定が-30ppmである場合、タイミング調整モジュール250は、期間又はエポックの小数部分について次に最も遅い周波数設定を選択し、エポックの過程にわたる平均周波数が仮想グローバルタイムベース235の周波数に等しくなるように、エポックの残りについて初期周波数設定を選択する調整255を示す。
【0030】
図3は、いくつかの実施形態による、複数のVPU105-1、105-2のローカルタイムベース周波数を仮想グローバルタイムベース周波数と同期させることによってモード設定を実行するための方法300を示すフロー図である。方法300は、図1の処理システム100等の処理システムにおいて実装される。いくつかの実施形態では、方法300は、コンピュータ可読記憶媒体によって記憶された1つ以上の命令に応じて1つ以上のプロセッサによって開始される。
【0031】
ブロック302において、仮想グローバルタイムベース生成器145は、PTP等のネットワークプロトコルから仮想グローバルタイムベースを生成する。ブロック304において、VPUディスプレイタイミング生成器120-1、120-2の各々は、ローカルタイムベースを生成する。ブロック306において、VPU105-1、105-2は、ローカルタイムベース周波数を使用して、VPU105-1、105-2が表示のためのフレーム又はフレームの一部を生成するディスプレイモジュール141の各々のための固定リフレッシュレートビデオタイミング信号を生成する。仮想グローバルタイムベースで同時にビデオタイミング信号165-1、165-2を発行することによって、VPU105-1、105-2は、仮想グローバルタイムベースに基づいて、ディスプレイモジュール141の各々の表示サイクルの周波数及び位相を、数ディスプレイライン期間内に効果的に同期させる。
【0032】
ブロック308において、タイミング制御モジュール125-1、125-2は、仮想グローバルタイムベース周波数をそれぞれのVPU105-1、105-2のローカルタイムベース周波数と比較する。ブロック310において、タイミング制御モジュール125-1、125-2は、仮想グローバルタイムベース周波数がローカルタイムベース周波数を超えているか否かを判定する。いくつかの実施形態では、タイミング制御モジュール125-1、125-2は、ローカルタイムベースの周波数が仮想グローバルタイムベース周波数から十分に離れてドリフトして、ディスプレイが(ディスプレイライン等の)閾値量を超えて同期外れになったかどうかを判定する。ブロック310において、タイミング制御モジュール125-1、125-2が、仮想グローバルタイムベース周波数がそれらのVPU105-1、105-2のローカルタイムベース周波数を超えていると判定した場合、方法フローはブロック312に続く。ブロック312において、タイミング制御モジュール125-1、125-2は、ローカルタイムベース周波数を増加させて、仮想グローバルタイムベース周波数にほぼ一致させるか、又は、それをわずかに超えるようにする。次に、方法フローはブロック318に続き、ここで、タイミング制御モジュール125-1、125-2は、所定の期間(又はフレーム数又はクロックサイクル数)待機して、次の周波数測定及び更新を行い、ローカルタイムベース周波数に対する調整が周期的に行われるようにする。次に、タイミング制御モジュール125-1、125-2がローカルタイムベース周波数と仮想グローバルタイムベース周波数との間の差を監視し続けるので、方法フローはブロック308に戻る。
【0033】
ブロック310において、タイミング制御モジュール125-1、125-2が、仮想グローバルタイムベース周波数がそれらのVPU105-1、105-2のローカルタイムベース周波数を超えていないと判定した場合、方法フローはブロック314に続く。ブロック314において、タイミング制御モジュール125-1、125-2は、ローカルタイムベース周波数が仮想グローバルタイムベース周波数を超えるかどうかを判定する。ブロック314において、タイミング制御モジュール125-1、125-2が、ローカルタイムベース周波数が仮想グローバルタイムベース周波数を超えないと判定した場合、方法フローはブロック318に続く。ブロック314において、タイミング制御モジュール125-1、125-2が、ローカルタイムベース周波数が仮想グローバルタイムベース周波数を超えると判定した場合、方法フローはブロック316に続く。ブロック316において、タイミング制御モジュール125-1、125-2は、ローカルタイムベース周波数を、仮想グローバルタイムベース周波数にほぼ一致するように、又は仮想グローバルタイムベース周波数よりわずかに低くなるように減少させる。タイミング制御モジュール125-1、125-2-2が、ローカルタイムベース周波数と仮想グローバルタイムベース周波数との間の差を周期的に監視し続け、必要に応じてローカルタイムベース周波数を調整して仮想グローバルタイムベースとの同期及び互いとの同期を維持し続けるので、方法フローはブロック318に戻る。
【0034】
いくつかの実施形態では、上記の装置及び技術は、図1図3を参照して上述した処理システム等の1つ以上の集積回路(integrated circuit、IC)デバイス(集積回路パッケージ又はマイクロチップとも称される)を含むシステムに実装される。電子設計自動化(electronic design automation、EDA)及びコンピュータ支援設計(computer aided design、CAD)ソフトウェアツールは、これらのICデバイスの設計及び製造に使用することができる。これらの設計ツールは、典型的には、1つ以上のソフトウェアプログラムとして表される。1つ以上のソフトウェアプログラムは、回路を製造するための製造システムを設計するか又は適応させるためのプロセスの少なくとも一部を実行するために、1つ以上のICデバイスの回路を表すコードで動作するようにコンピュータシステムを操作するための、コンピュータシステムによって実行可能なコードを含む。このコードは、命令、データ、又は、命令及びデータの組み合わせを含み得る。設計ツール又は製造ツールを表すソフトウェア命令は、典型的には、コンピューティングシステムにアクセス可能なコンピュータ可読記憶媒体に記憶される。同様に、ICデバイスの設計又は製造の1つ以上の段階を表すコードは、同じコンピュータ可読記憶媒体又は異なるコンピュータ可読記憶媒体に記憶され、そこからアクセスされる。
【0035】
コンピュータ可読記憶媒体は、命令及び/又はデータをコンピュータシステムに提供するために、使用中にコンピュータシステムによってアクセス可能な任意の非一時的な記憶媒体又は非一時的な記憶媒体の組み合わせを含む。このような記憶媒体には、限定されないが、光学媒体(例えば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク)、磁気媒体(例えば、フロッピー(登録商標)ディスク、磁気テープ、磁気ハードドライブ)、揮発性メモリ(例えば、ランダムアクセスメモリ(RAM)若しくはキャッシュ)、不揮発性メモリ(例えば、読取専用メモリ(ROM)若しくはフラッシュメモリ)、又は、微小電気機械システム(MEMS)ベースの記憶媒体が含まれ得る。コンピュータ可読記憶媒体(例えば、システムRAM又はROM)はコンピューティングシステムに内蔵されてもよいし、コンピュータ可読記憶媒体(例えば、磁気ハードドライブ)はコンピューティングシステムに固定的に取り付けられてもよいし、コンピュータ可読記憶媒体(例えば、光学ディスク又はユニバーサルシリアルバス(USB)ベースのフラッシュメモリ)はコンピューティングシステムに着脱可能に取り付けられてもよいし、コンピュータ可読記憶媒体(例えば、ネットワークアクセス可能ストレージ(NAS))は有線又は無線ネットワークを介してコンピュータシステムに結合されてもよい。
【0036】
いくつかの実施形態では、上述した技術の特定の態様は、ソフトウェアを実行する処理システムの1つ以上のプロセッサによって実装される。ソフトウェアは、非一時的なコンピュータ可読記憶媒体に記憶されるか、別の方法で明確に具体化された実行可能命令の1つ以上のセットを含む。ソフトウェアは、命令及び特定のデータを含んでもよく、当該命令及び特定のデータは、1つ以上のプロセッサによって実行されると、上述した技術の1つ以上の態様を実行するように1つ以上のプロセッサを操作する。非一時的なコンピュータ可読記憶媒体は、例えば、磁気又は光ディスク記憶デバイス、フラッシュメモリ等のソリッドステート記憶デバイス、キャッシュ、ランダムアクセスメモリ(RAM)、又は、他の不揮発性メモリデバイス(単数又は複数)等を含み得る。非一時的なコンピュータ可読記憶媒体に記憶された実行可能命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、又は、1つ以上のプロセッサによって解釈され若しくは別の方法で実行可能な他の命令形式で実装可能である。
【0037】
上述したものに加えて、概要説明において説明した全てのアクティビティ又は要素が必要とされているわけではなく、特定のアクティビティ又はデバイスの一部が必要とされない場合があり、1つ以上のさらなるアクティビティが実行される場合があり、1つ以上のさらなる要素が含まれる場合があることに留意されたい。さらに、アクティビティが列挙された順序は、必ずしもそれらが実行される順序ではない。また、概念は、特定の実施形態を参照して説明された。しかしながら、当業者であれば、特許請求の範囲に記載されているような本発明の範囲から逸脱することなく、様々な変更及び変形を行うことができるのを理解するであろう。したがって、明細書及び図面は、限定的な意味ではなく例示的な意味で考慮されるべきであり、これらの変更形態の全ては、本発明の範囲内に含まれることが意図される。
【0038】
利益、他の利点及び問題に対する解決手段を、特定の実施形態に関して上述した。しかし、利益、利点、問題に対する解決手段、及び、何かしらの利益、利点若しくは解決手段が発生又は顕在化する可能性のある特徴は、何れか若しくは全ての請求項に重要な、必須の、又は、不可欠な特徴と解釈されない。さらに、開示された発明は、本明細書の教示の利益を有する当業者には明らかな方法であって、異なっているが同様の方法で修正され実施され得ることから、上述した特定の実施形態は例示にすぎない。添付の特許請求の範囲に記載されている以外に本明細書に示されている構成又は設計の詳細については限定がない。したがって、上述した特定の実施形態は、変更又は修正されてもよく、かかる変更形態の全ては、開示された発明の範囲内にあると考えられることが明らかである。したがって、ここで要求される保護は、添付の特許請求の範囲に記載されている。
図1
図2
図3
【手続補正書】
【提出日】2023-08-23
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
方法であって、
複数のビデオ処理ユニット(VPU)のために、仮想グローバルタイムベースを生成することであって、前記仮想グローバルタイムベースは、ネットワークプロトコルに基づいてネットワークタイムベースに同期され、各VPUは、複数のディスプレイモジュールのうち1つ以上に表示するためのフレームの1つ以上の部分を生成し、前記ディスプレイモジュールは、固定リフレッシュレートを有する、ことと、
各VPUにおいて、ローカルタイムベースを生成することと、
各VPUにおいて、対応するローカルタイムベースと前記仮想グローバルタイムベースとの間の周波数の差を監視することと、
前記差に基づいて前記ローカルタイムベースの周波数を調整することと、を含む、
方法。
【請求項2】
前記VPUが前記差に基づいて前記ローカルタイムベースの前記周波数を調整したことを示す信号を、各VPUから受信することと、
各VPUから前記信号を受信したことに応じて、前記ネットワークタイムベース上で同時に開始するように、開始コマンドを各VPUに送信することと、を含む、
請求項1の方法。
【請求項3】
各VPUにおいて、前記開始コマンドを受信したことに応じて、固定リフレッシュレートビデオタイミング信号を前記ディスプレイモジュールに送信することを含む、
請求項2の方法。
【請求項4】
前記調整することは、
前記ローカルタイムベースが前記仮想グローバルタイムベースよりも速いと判定したことに応じて、前記ローカルタイムベースの周波数を減少させることと、
前記ローカルタイムベースが前記仮想グローバルタイムベースよりも遅いと判定したことに応じて、前記ローカルタイムベースの周波数を増加させることと、を含む、
請求項1~3の何れかの方法。
【請求項5】
各VPUの前記ローカルタイムベースは、水晶発振器と、前記VPUにおける複数の離散的設定を有する位相ロックループ(PLL)と、に基づいており、
前記調整することは、前記差に基づいて、期間の1つ以上の部分について前記PLLの1つ以上の離散的設定を選択することを含む、
請求項1~4の何れかの方法。
【請求項6】
前記調整することは、前記差が閾値を超えることに基づいて周期的に調整することを含む、
請求項1~5の何れかの方法。
【請求項7】
方法であって、
複数のビデオ処理ユニット(VPU)の各々において生成されたローカルタイムベースの周波数を、ネットワークプロトコルに基づいて生成された前記複数のVPUの仮想グローバルタイムベースの周波数と比較することと、
前記ローカルタイムベースの周波数が前記仮想グローバルタイムベースと異なると判定したことに応じて、前記仮想グローバルタイムベースの周波数に一致するように、前記ローカルタイムベースの周波数を調整することと、を含む、
方法。
【請求項8】
前記VPUが前記仮想グローバルタイムベースの周波数に一致するように前記ローカルタイムベースの周波数を調整したことを示す信号を、各VPUから受信することと、
各VPUから前記信号を受信したことに応じて、前記仮想グローバルタイムベース上で同時に開始するように、開始コマンドを各VPUに送信することと、
各VPUにおいて、前記開始コマンドを受信したことに応じて、固定リフレッシュレートビデオタイミング信号を1つ以上のディスプレイモジュールに送信することと、を含む、
請求項7の方法。
【請求項9】
前記調整することは、
前記ローカルタイムベースが前記仮想グローバルタイムベースよりも速いと判定したことに応じて、前記ローカルタイムベースの周波数を減少させることと、
前記ローカルタイムベースが前記仮想グローバルタイムベースよりも遅いと判定したことに応じて、前記ローカルタイムベースの周波数を増加させることと、を含む、
請求項7又は8の方法。
【請求項10】
各VPUの前記ローカルタイムベースは、水晶発振器と、前記VPUにおける複数の離散的設定を有する位相ロックループ(PLL)と、に基づいており、
前記調整することは、前記ローカルタイムベースの周波数が前記仮想グローバルタイムベースと異なる量に基づいて、エポックの1つ以上の部分について前記PLLの1つ以上の離散的設定を選択することを含む、
請求項7~9の何れかの方法。
【請求項11】
前記調整することは、前記ローカルタイムベースの周波数が前記仮想グローバルタイムベースと異なる量が閾値を超えることに基づいて周期的に調整することを含む、
請求項7~10の何れかの方法。
【請求項12】
システムであって、
複数のビデオ処理ユニット(VPU)を備え、各VPUは、1つ以上のディスプレイモジュールに表示するための画像を生成するように構成されており、各VPUは、タイミング生成器を備え、
前記タイミング生成器は、
ローカルタイムベースを生成することと、
前記ローカルタイムベースの周波数を、ネットワークプロトコルに基づいて生成された前記複数のVPUの仮想グローバルタイムベースの周波数と比較することと、
前記ローカルタイムベースの周波数が前記仮想グローバルタイムベースと異なると判定したことに応じて、前記仮想グローバルタイムベースの周波数に一致するように、前記ローカルタイムベースの周波数を調整することと、
を行うように構成されている、
システム。
【請求項13】
ドライバを備え、
前記ドライバは、
前記VPUディスプレイタイミング生成器が前記仮想グローバルタイムベースの周波数に一致するように前記ローカルタイムベースの周波数を調整したことを示す信号を、前記VPUディスプレイタイミング生成器の各々から受信することと、
前記VPUディスプレイタイミング生成器の各々から前記信号を受信したことに応じて、前記仮想グローバルタイムベース上で同時に開始するように、開始コマンドを前記VPUディスプレイタイミング生成器に送信することと、
を行うように構成されている、
請求項12のシステム。
【請求項14】
各VPUは、
前記開始コマンドを受信したことに応じて、固定リフレッシュレートビデオタイミング信号を前記ディスプレイモジュールに送信するように構成されている、
請求項13のシステム。
【請求項15】
各VPU用の前記ローカルタイムベースは、水晶発振器と、前記VPUにおける複数の離散的設定を有する位相ロックループ(PLL)と、に基づいている、
請求項12~14の何れかのシステム。
【国際調査報告】