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

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

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

特表2024-503581マルチディスプレイシステム上での非同期メモリクロック変更の実行
<>
  • 特表-マルチディスプレイシステム上での非同期メモリクロック変更の実行 図1
  • 特表-マルチディスプレイシステム上での非同期メモリクロック変更の実行 図2
  • 特表-マルチディスプレイシステム上での非同期メモリクロック変更の実行 図3
  • 特表-マルチディスプレイシステム上での非同期メモリクロック変更の実行 図4
  • 特表-マルチディスプレイシステム上での非同期メモリクロック変更の実行 図5
  • 特表-マルチディスプレイシステム上での非同期メモリクロック変更の実行 図6
  • 特表-マルチディスプレイシステム上での非同期メモリクロック変更の実行 図7
  • 特表-マルチディスプレイシステム上での非同期メモリクロック変更の実行 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-01-26
(54)【発明の名称】マルチディスプレイシステム上での非同期メモリクロック変更の実行
(51)【国際特許分類】
   G06F 1/08 20060101AFI20240119BHJP
   G06F 1/12 20060101ALI20240119BHJP
   G09G 5/00 20060101ALI20240119BHJP
【FI】
G06F1/08 510
G06F1/12
G09G5/00 510V
G09G5/00 550M
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023537099
(86)(22)【出願日】2021-12-16
(85)【翻訳文提出日】2023-07-31
(86)【国際出願番号】 IB2021061867
(87)【国際公開番号】W WO2022137046
(87)【国際公開日】2022-06-30
(31)【優先権主張番号】17/131,209
(32)【優先日】2020-12-22
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.VERILOG
(71)【出願人】
【識別番号】508301087
【氏名又は名称】エーティーアイ・テクノロジーズ・ユーエルシー
【氏名又は名称原語表記】ATI TECHNOLOGIES ULC
【住所又は居所原語表記】One Commerce Valley Drive East, Markham, Ontario, L3T 7X6 Canada
(74)【代理人】
【識別番号】100108833
【弁理士】
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【弁理士】
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【弁理士】
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】アルシャド ラフマン
(72)【発明者】
【氏名】ラジーバン パンチャチャラムーシー
(72)【発明者】
【氏名】ボリス イバノビッチ
【テーマコード(参考)】
5C182
【Fターム(参考)】
5C182AB12
5C182AB14
5C182BB01
5C182BB11
5C182BB22
5C182BC03
5C182CC24
5C182DA05
5C182DA06
5C182DA14
5C182DA22
5C182DA32
5C182DA44
5C182DA52
5C182DA66
(57)【要約】
複数のディスプレイ上で非同期メモリクロック変更を実行するためのシステム、装置及び方法が開示される。随時、メモリクロック周波数変更が、複数のディスプレイに対してピクセルを駆動するために使用されるフレームバッファを格納するメモリサブシステムに対して望まれる。例えば、リアルタイムメモリ帯域幅需要が、既存のメモリクロック周波数で利用可能なメモリ帯域幅と異なる場合、制御ユニットは、第1のディスプレイの垂直帰線消去期間(VBI)タイミングを追跡する。また、制御ユニットは、第2のディスプレイをパネルセルフリフレッシュ(PSR)モードに入らせる。第2のディスプレイのPSRモードが第1のディスプレイのVBIと重複すると、メモリトレーニングを含むメモリクロック周波数変更が開始される。メモリクロック周波数変更の後、ディスプレイは、更新された周波数でメモリサブシステム内のフレームバッファによって駆動される。
【選択図】図5
【特許請求の範囲】
【請求項1】
装置であって、
追跡ユニットと、
周波数調整ユニットと、を備え、
前記追跡ユニットは、
メモリサブシステムのメモリクロック周波数を変更するための条件が満たされていると決定したことに応じて、
第1のディスプレイデバイスの垂直帰線消去期間(VBI)タイミングを追跡することと、
第2のディスプレイデバイスをパネルセルフリフレッシュ(PSR)モードに遷移させることと、
を行うように構成されており、
前記周波数調整ユニットは、
前記第1のディスプレイデバイスのVBIが、前記第2のディスプレイデバイスがPSRモードにある状態と重複する場合に、前記メモリクロック周波数の調整を行わせるように構成されている、
装置。
【請求項2】
前記調整は、前記メモリクロック周波数を第1の周波数から前記第1の周波数とは異なる第2の周波数に変化させる、
請求項1の装置。
【請求項3】
前記メモリクロック周波数を変更するための条件は、前記メモリクロック周波数で利用可能なメモリ帯域幅から閾値を超えて異なるメモリ帯域幅需要を含む、
請求項1の装置。
【請求項4】
前記追跡ユニットは、前記調整が前記メモリクロック周波数に対して行われた後に、前記第2のディスプレイデバイスにPSRモードを終了させるように構成されている、
請求項1の装置。
【請求項5】
前記装置は、
前記第2のディスプレイデバイスを部分PSRモードにすることと、
前記第2のディスプレイデバイスの部分PSRモードのリフレッシュ部分が前記第1のディスプレイデバイスの前記VBIと重複するときに発生するように、前記メモリクロック周波数の調整をスケジューリングすることと、
を行うように構成されている、
請求項1の装置。
【請求項6】
前記装置は、前記第2のディスプレイデバイスがPSRモードにあり、同時に前記第1のディスプレイデバイスに対して前記VBIが発生している間に、メモリトレーニングを実行させるように構成されている、
請求項1の装置。
【請求項7】
前記周波数調整ユニットは、前記第2のディスプレイの前記PSRモードが前記第1のディスプレイデバイスの前記VBIと重複する場合に、前記メモリクロック周波数の調整を行わせるコマンドを位相ロックループに送信するように構成されている、
請求項1の装置。
【請求項8】
方法であって、
制御ユニットが、メモリサブシステムのメモリクロック周波数を変更するための条件が満たされていると決定したことに応じて、第1のディスプレイデバイスの垂直帰線消去期間(VBI)タイミングを追跡することと、
第2のディスプレイデバイスをパネルセルフリフレッシュ(PSR)モードに遷移させることと、
前記第1のディスプレイデバイスのVBIが、前記第2のディスプレイデバイスがPSRモードにある状態と重複することに応じて、前記メモリクロック周波数の調整を行わせることと、を含む、
方法。
【請求項9】
前記調整は、前記メモリクロック周波数を第1の周波数から前記第1の周波数とは異なる第2の周波数に変化させる、
請求項8の方法。
【請求項10】
前記メモリクロック周波数を変更するための条件は、前記メモリクロック周波数で利用可能なメモリ帯域幅から閾値を超えて異なるリアルタイムメモリ帯域幅需要を含む、
請求項8の方法。
【請求項11】
前記調整が前記メモリクロック周波数に対して行われた後に、前記第2のディスプレイデバイスにPSRモードを終了させることを含む、
請求項8の方法。
【請求項12】
前記第2のディスプレイデバイスを部分PSRモードにすることと、
前記第2のディスプレイデバイスの部分PSRモードのリフレッシュ部分が前記第1のディスプレイデバイスの前記VBIと重複するときに発生するように、前記メモリクロック周波数の調整をスケジューリングすることと、を含む、
請求項8の方法。
【請求項13】
前記第2のディスプレイデバイスがPSRモードにあり、同時に前記第1のディスプレイデバイスに対して前記VBIが発生している間に、メモリトレーニングを実行させることを含む、
請求項8の方法。
【請求項14】
前記第2のディスプレイデバイスの前記PSRモードが前記第1のディスプレイデバイスの前記VBIと重複すると決定したことに応じて、前記メモリクロック周波数の調整を行わせるコマンドを位相ロックループに送信することを含む、
請求項8の方法。
【請求項15】
システムであって、
ピクセルデータを第1のディスプレイデバイスに送るように構成されたタイミングコントローラと、
制御ユニットと、を備え、
前記制御ユニットは、メモリサブシステムのメモリクロック周波数を変更するための条件が満たされていると決定したことに応じて、
前記タイミングコントローラをパネルセルフリフレッシュ(PSR)モードに遷移させることと、
第2のディスプレイデバイスの垂直帰線消去期間(VBI)タイミングを追跡することと、
前記タイミングコントローラの前記PSRモードが前記第2のディスプレイのVBIと重複すると決定したことに応じて、メモリクロック周波数の調整を行わせることと、
を行うように構成されている、
システム。
【請求項16】
前記調整は、前記メモリクロック周波数を第1の周波数から前記第1の周波数とは異なる第2の周波数に変化させる、
請求項15のシステム。
【請求項17】
前記メモリクロック周波数を変更するための条件は、前記メモリクロック周波数で利用可能なメモリ帯域幅から閾値を超えて異なるリアルタイムメモリ帯域幅需要を含む、
請求項15のシステム。
【請求項18】
前記制御ユニットは、前記調整が前記メモリクロック周波数に対して行われた後に、前記タイミングコントローラにPSRモードを終了させるように構成されている、
請求項15のシステム。
【請求項19】
前記制御ユニットは、
前記タイミングコントローラを部分PSRモードにすることと、
前記タイミングコントローラの部分PSRモードのリフレッシュ部分が前記第2のディスプレイデバイスの前記VBIと重複するときに発生するように、前記メモリクロック周波数の調整をスケジューリングすることと、
を行うように構成されている、
請求項15のシステム。
【請求項20】
前記制御ユニットは、前記タイミングコントローラがPSRモードにあり、同時に前記第2のディスプレイデバイスに対して前記VBIが発生している間、メモリトレーニングを実行させるように構成されている、
請求項15のシステム。
【発明の詳細な説明】
【背景技術】
【0001】
(関連技術の説明)
多くのタイプのコンピュータシステムは、画像、ビデオストリーム及びデータを表示するためのディスプレイデバイスを含む。したがって、これらのシステムは、典型的には、画像及びビデオ情報を生成及び/又は操作するための機能を含む。デジタル撮像では、画像内の情報の最小項目は「画素」と呼ばれ、より一般的には「ピクセル」と呼ばれる。
【0002】
いくつかのシステムは、複数の個別のディスプレイを含む。これらのシステムでは、マルチディスプレイ技術により、単一のグラフィックス処理ユニット(graphics processing unit、GPU)(又は、アクセラレーテッドプロセッシングユニット(accelerated processing unit、APU)若しくは他のタイプのシステムオンチップ(system on chip、SOC)等の他のデバイス、又は、ディスプレイコントローラを有する任意の特定用途向け集積回路(application-specific integrated circuit、ASIC))が、複数の独立したディスプレイ出力を同時にサポートすることが可能になる。一例では、コンピューティングシステムは、複数の高解像度ディスプレイを大きな統合ディスプレイ面に独立して接続して、拡張された視覚的作業空間を提供することができる。ゲーム、娯楽、医療、オーディオ及びビデオ編集、ビジネス並びに他のアプリケーションは、拡張された視覚的作業空間を利用し、マルチタスクの機会を増やすことができる。
【0003】
サポートされるディスプレイごとに、ビデオサブシステムは、ダイナミックランダムアクセスメモリ(dynamic random access memory、DRAM)に記憶され得る、1つ以上のビデオフレーム等のデータを格納するそれぞれのフレームバッファを維持している。サポートされているディスプレイごとに、ビデオコントローラは、それぞれのフレームバッファにアクセスするために、1つ以上のDRAMインターフェースのうち所定の何れかを介してデータを読み取る。メモリクロックは、典型的には、DRAM内のフレームバッファにアクセスするためのデータレートを制御するために使用される。場合によっては、ピクセルビットストリームをフレームバッファからディスプレイデバイスに送信するための物理的接続を提供するために、コンピュータは、ディスプレイポート(DisplayPort、DP)、組み込みディスプレイポート(embedded DisplayPort、eDP)、高精細マルチメディアインターフェース(high-definition multimedia interface、HDMI(登録商標))、又は、他のタイプのインターフェース等のインターフェースを通して、ディスプレイデバイスに直接接続される。一実施形態では、コンピュータからディスプレイデバイスに送信されるビデオストリームの帯域幅を制限するものは、DisplayPort、eDP又はHDMI(登録商標)ケーブルの最大ビットレートであろう。
【0004】
複数の作業負荷(例えば、ゲームレンダリング、ビデオ処理)がメモリサブシステムにアクセスしているシナリオでは、メモリサブシステムは、その最大可能周波数でクロックすることができるため、メモリサブシステムが多数の読取り及び書込みを確実に処理することができる。場合によっては、メモリサブシステムに過度に負荷がかかっていない場合には、システムは、電力消費を低減するためにメモリクロック周波数を下げようとする場合もある。メモリクロック周波数を変更するには、メモリインターフェース上で実行されるトレーニングセッション、構成/モード変更、又は、アクセスが一時的に停止されることを必要とする別のアクションが必要になる場合がある。しかしながら、マルチディスプレイシステムでは、各ディスプレイは、ディスプレイに対するピクセルの送信(駆動)に関連付けられた異なるタイミング特性を有する場合がある。これにより、メモリインターフェースが再トレーニングされる必要がある場合、又は、他のタイプのモード変更が実行される必要がある場合に、何れかのディスプレイに視覚的アーチファクトを導入することなく、全てのメモリアクセスを停止するための十分な持続時間を見出すことが困難又は不可能になる。したがって、いくつかのシステムでは、メモリクロックを最大周波数又は他の所定の周波数に強制的に維持することができる。その結果、複数のディスプレイの電力消費はかなりのものとなる可能性がある。現代の集積回路(integrated circuit、IC)の電力消費が増加するにつれて、より大型のファン、より大型のヒートシンク、及び、周囲温度を制御するシステム等のより高価な冷却システムを利用して、過剰な熱を除去し、ICの故障を防止している。これにより音響が大きくなり、そのため、顧客が不快な経験をする可能性もある。
【0005】
本明細書に記載の方法及び機構の利点は、添付の図面と併せて以下の説明を参照することによってよりよく理解され得る。
【図面の簡単な説明】
【0006】
図1】コンピューティングシステムの一実施形態のブロック図である。
図2】マルチディスプレイシステムの一実施形態のブロック図である。
図3】マルチディスプレイシステムのメモリクロック周波数更新のタイミングの一実施形態のタイミング図である。
図4】一実施形態によるマルチディスプレイシステムにおけるメモリクロック周波数更新のタイミング図である。
図5】マルチディスプレイシステムにおいてメモリクロック周波数変更を実行するための方法の一実施形態を示す一般化されたフロー図である。
図6】マルチモードタイミングコントローラを動作させるための方法の一実施形態を示す一般化されたフロー図である。
図7】部分PSRモード中にメモリクロック周波数更新を実行するための方法の一実施形態を示す一般化されたフロー図である。
図8】メモリクロック周波数をいつ変更するかを決定するための方法の一実施形態を示す一般化されたフロー図である。
【発明を実施するための形態】
【0007】
以下の説明では、本明細書に提示される方法及び機構の十分な理解を提供するために、多数の具体的な詳細が記載されている。しかしながら、当業者は、これらの具体的な詳細なしに様々な実施形態が実施され得ることを認識するべきである。いくつかの例では、本明細書に記載のアプローチを不明瞭にすることを避けるために、周知の構造、構成要素、信号、コンピュータプログラム命令及び技術が詳細に示されていない。説明を簡単且つ明確にするために、図に示される要素は必ずしも縮尺どおりに描かれているわけではないことが理解されよう。例えば、いくつかの要素の寸法は、他の要素に対して誇張されている場合がある。
【0008】
複数のディスプレイ上で非同期メモリクロック変更を実行するためのシステム、装置及び方法が開示される。一実施形態では、マルチディスプレイシステムは、メモリサブシステム内のフレームバッファから複数のディスプレイを駆動する。一実施形態では、制御ユニットは、現在の動作状態に基づいてリアルタイムでメモリサブシステムに対するメモリ帯域幅需要を決定する。次に、制御ユニットは、リアルタイムメモリ帯域幅需要又は予測メモリ帯域幅需要を、既存のメモリクロック周波数設定で利用可能な帯域幅と比較する。既存のメモリクロック周波数設定で利用可能な帯域幅がリアルタイムメモリ帯域幅需要又は予測される需要と異なる場合、制御ユニットは、リアルタイム需要により適合するように既存のメモリクロック周波数設定を変更する決定を行う。様々な実施形態において、予測されるメモリ帯域幅需要は、機械学習モデル、ヒューリスティック、又は他の技法に基づいて生成される。
【0009】
メモリサブシステムに対してメモリクロック周波数変更が望まれると制御ユニットが決定すると、制御ユニットは、第1のディスプレイをパネルセルフリフレッシュ(panel self-refresh、PSR)モードに遷移させる。PSRモードへの遷移は、1つ以上のフレーム等のように、ある程度の時間を要する可能性がある。本明細書で使用される場合、「PSRモード」は、ディスプレイデバイス(すなわち、パネル)が、インターフェースに依存してピクセルのストリームを提供するのではなく、それ自体のメモリを使用して、スクリーン上に見えるものをリフレッシュする場合として定義される。第1のディスプレイをPSRモードにするのと同時に、制御ユニットは、第2のディスプレイをチェックして、垂直帰線消去期間(vertical blanking interval、VBI)がいつ発生するかを決定する。第1のディスプレイのPSRモードが第2のディスプレイのVBIと重複すると、メモリクロック周波数変更が開始される。また、多くのメモリデバイス(例えば、グラフィックスダブルデータレート6(graphics double data rate、GDDR6)シンクロナスダイナミックランダムアクセスメモリ(synchronous dynamic random-access memory、SDRAM)デバイス)は、メモリクロック周波数が変更される場合にメモリトレーニングが必要になる。これらのメモリデバイスの場合、メモリトレーニングは、メモリクロック周波数変更の一部として実行される。メモリクロック周波数変更の後、第1のディスプレイは、PSRモードから遷移されるが、これには、ある程度の時間がかかる可能性があり、ディスプレイは、更新されたメモリクロック周波数で動作するメモリサブシステム内のフレームバッファによって駆動される。
【0010】
図1を参照すると、コンピューティングシステム100の一実施形態のブロック図が示されている。一実施形態では、コンピューティングシステム100は、少なくともプロセッサ105A~105N、入力/出力(input/output、I/O)インターフェース120、バス125、メモリコントローラ130、ネットワークインターフェース135、メモリデバイス140、ディスプレイコントローラ150A~150N、ディスプレイ155A~155N、及び、制御ユニット160を含む。他の実施形態では、コンピューティングシステム100は、他の構成要素を含み、及び/又は、コンピューティングシステム100は、別様に配置される。
【0011】
ディスプレイコントローラ150A~150Nは、システム100に含まれる任意の数のディスプレイコントローラを表し、その数は実施形態に応じて変化する。各ディスプレイコントローラ150A~150Nは、対応するディスプレイ155A~155Nを駆動し、ディスプレイ155A~155Nは、任意の数のディスプレイを表す。いくつかの実施形態では、ディスプレイコントローラ150A~150Nのうち単一のディスプレイコントローラが、複数のディスプレイを駆動する。
【0012】
ディスプレイコントローラ150Aは、ディスプレイ155Aがパネルセルフリフレッシュ(PSR)モードにある場合に表示されるフレームを格納するためのバッファ152Aを含む。PSRモードは、静的コンテンツが表示されている場合に使用され、ディスプレイ155Aを、メモリデバイス140のフレームバッファ142から駆動するのではなく、バッファ152Aから駆動できるようにする。これは、スクリーンコンテンツが変化していない場合の電力消費を低減するのに役立つ。例えば、デスクトップコンピュータ設定では、ユーザが文書又は他の静的コンテンツを見ている場合、画面ピクセルは変化せず、フレームをバッファ152Aに格納して、ディスプレイ155Aに対して繰り返し送ることができる。別の例では、モバイルデバイス設定において、モバイルデバイスがホーム画面を表示している場合、スクリーンコンテンツは変化していないため、ディスプレイ155Aは、バッファ152Aに格納されたフレームから駆動される。静的画面コンテンツの他の例は、様々な他の使用事例で遭遇することができる。
【0013】
また、ディスプレイコントローラ150Nは、ディスプレイ155NがPSRモードにある場合に同じ目的のためにバッファ152Nを含む。しかしながら、全てのディスプレイ155A~155NがPSRモードをサポートする必要はない。したがって、一実施形態では、システム100は、PSRモードをサポートする1つ以上のディスプレイと、PSRモードをサポートしない1つ以上のディスプレイと、を含む。
【0014】
一実施形態では、制御ユニット160は、電力状態変更を実行するための条件が検出されたかどうかを判定する。また、この実施形態では、制御ユニット160は、ディスプレイ155A~155Nの垂直帰線消去期間のタイミングを監視する。本明細書で使用される場合、「垂直帰線消去期間」という用語は、第1のフレームの最後の可視ラインが表示された後であるが、第2のフレームの最初の可視ラインが表示される前までに経過する時間として定義され、ビデオシーケンスにおいて、第2のフレームは第1のフレームの直後に続く。フレーム内には、アクティブライン(すなわち、走査ライン)及び垂直帰線消去ラインがある。アクティブラインの数によってアクティブフレーム時間が決まり、垂直帰線消去ラインの数によって垂直帰線消去期間の持続時間が決まる。場合によっては、垂直同期(又はVsync)パルスが、垂直帰線消去期間の開始時に生成される。これらの場合、垂直同期パルスは、垂直帰線消去期間の発生のマーカーとして機能する。
【0015】
電力状態変更を実行するための条件が検出されると、制御ユニット160は、第1のディスプレイがPSRモードにあり、同時に第2のディスプレイが垂直帰線消去期間を受けている状態と一致するように、電力状態変更をいつ実施するかを決定する。一実施形態では、電力状態変更は、1つ以上のメモリデバイス140のメモリクロック周波数を調整することを伴う。制御ユニット160は、回路、メモリ要素及びプログラム命令の任意の好適な組み合わせを使用して実装することができる。制御ユニット160は、システム管理コントローラ、システム管理ユニット、システムコントローラ、コントローラ等のように、他の名前で呼ばれることもあることに留意されたい。図1には単一の制御ユニット160が示されているが、これは単に1つの実施形態を代表するものであることを理解されたい。他の実施形態では、システム100は、任意の好適な位置に配置された複数の制御ユニット160を含むことができる。また、別の実施形態では、制御ユニット160は、プロセッサ105A~105Nのうち何れかによって実装される。
【0016】
プロセッサ105A~105Nは、システム100に含まれる任意の数のプロセッサを表す。一実施形態では、プロセッサ105Aは、中央処理ユニット(central processing unit、CPU)等の汎用プロセッサである。この実施形態では、プロセッサ105Aは、システム100内の他のプロセッサのうち1つ以上と通信するための、及び/又は、それらのプロセッサのうち1つ以上の動作を制御するためのドライバ110(例えば、グラフィックドライバ)を実行する。実施形態に応じて、ドライバ110は、ハードウェア、ソフトウェア及び/又はファームウェアの任意の好適な組み合わせを使用して実装することができることに留意されたい。
【0017】
一実施形態では、プロセッサ105Nは、高並列アーキテクチャを有するデータ並列プロセッサである。データ並列プロセッサは、グラフィックス処理ユニット(GPU)、デジタル信号プロセッサ(digital signal processor、DSP)、フィールドプログラマブルゲートアレイ(field programmable gate array、FPGA)、特定用途向け集積回路(ASIC)等を含む。いくつかの実施形態では、プロセッサ105A~105Nは、複数のデータ並列プロセッサを含む。一実施形態では、プロセッサ105Nは、画像を表すピクセルデータをフレームバッファ142にレンダリングするGPUである。次いで、このピクセルデータはディスプレイコントローラ150A~150Nに提供され、それぞれディスプレイ155A~155Nに対して送られる。他の実施形態では、ピクセルデータは複数のフレームバッファにレンダリングされ、各フレームバッファを使用して個別のディスプレイ155A~155Nを駆動する。
【0018】
メモリコントローラ130は、プロセッサ105A~105Nによってアクセス可能な任意の数及びタイプのメモリコントローラを表す。メモリコントローラ130は、プロセッサ105A~105Nから分離されているものとして示されているが、これは、単に1つの可能な実施形態を表すことを理解されたい。他の実施形態では、メモリコントローラ130は、プロセッサ105A~105Nのうち1つ以上の内部に埋め込むことができ、及び/又は、メモリコントローラ130は、プロセッサ105A~105Nのうち1つ以上と同じ半導体ダイ上に位置することができる。メモリコントローラ130は、任意の数及びタイプのメモリデバイス140に結合される。メモリデバイス140は、任意の数及びタイプのメモリデバイスを表す。例えば、メモリデバイス140内のメモリのタイプは、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(Static Random Access Memory、SRAM)、グラフィックスダブルデータレート6(GDDR6)シンクロナスDRAM(SDRAM)、NANDフラッシュメモリ、NORフラッシュメモリ、強誘電体ランダムアクセスメモリ(Ferroelectric Random Access Memory、FeRAM)等を含む。
【0019】
I/Oインターフェース120は、任意の数及びタイプのI/Oインターフェース(例えば、周辺構成要素相互接続(peripheral component interconnect、PCI)バス、PCI-Extended(PCI-X)、PCIE(PCI Express)バス、ギガビットイーサネット(登録商標)(gigabit Ethernet、GBE)バス、ユニバーサルシリアルバス(universal serial bus、USB))を表す。様々なタイプの周辺デバイス(図示せず)がI/Oインターフェース120に結合される。そのような周辺デバイスは、ディスプレイ、キーボード、マウス、プリンタ、スキャナ、ジョイスティック、他のタイプのゲームコントローラ、メディア記録デバイス、外部記憶デバイス、ネットワークインターフェースカード等を含む(が、これらに限定されない)。ネットワークインターフェース135は、ネットワークを介してネットワークメッセージを受信及び送信することができる。
【0020】
様々な実施形態では、コンピューティングシステム100は、コンピュータ、ラップトップ、モバイルデバイス、ゲームコンソール、サーバ、ストリーミングデバイス、ウェアラブルデバイス、又は、様々な他のタイプのコンピューティングシステム若しくはデバイスのうち何れかである。コンピューティングシステム100の構成要素の数は、実施形態ごとに変化することに留意されたい。例えば、他の実施形態では、図1に示される数よりも多い又は少ない各構成要素が存在する。他の実施形態では、コンピューティングシステム100は、図の混乱を回避するために図1に示されていない他の構成要素(例えば、位相ロックループ、電圧調整器)を含むことにも留意されたい。加えて、他の実施形態では、コンピューティングシステム100は、図1に示される以外の方法で構築される。
【0021】
図2を参照すると、マルチディスプレイシステム200の一実施形態のブロック図が示されている。一実施形態では、システム200は、処理要素205、制御ユニット210、ファブリック215、メモリサブシステム220、タイミングコントローラ240及び260、並びに、ディスプレイデバイス250及び270を含む。タイミングコントローラ240及び260は、それぞれディスプレイデバイス250及び270とは別の構成要素として示されているが、これは、タイミングコントローラ240及び260がそれぞれディスプレイデバイス250及び270内に統合されることを排除するものではない。言い換えれば、タイミングコントローラ240及び260は、実施形態に応じて、それぞれディスプレイデバイス250及び270の内部又は外部に配置することができる。同様に、バッファ245は、タイミングコントローラ240内に配置されるように示されているが、これは、他の実施形態では、バッファ245がタイミングコントローラ240の外部に配置されることを排除するものではない。タイミングコントローラは、略して「TCON」又は「T-CON」と呼ばれることがあることに留意されたい。一般的に言えば、TCONは、様々なソースからビデオ画像及びフレームデータを受信し、データを処理し、次に、そのターゲットディスプレイと互換性のあるフォーマットでデータを送出する。
【0022】
処理要素205は、任意の数、タイプ及び配置の処理リソース(例えば、CPU、GPU、FPGA、ASIC)を表す。制御ユニット210は、実行ユニット、回路、メモリ及びプログラム命令の任意の好適な組み合わせを含む。制御ユニット210は、処理要素205とは別の構成要素として示されているが、これは、1つの特定の実施形態を表す。別の実施形態では、制御ユニット210の機能は、少なくとも部分的に、処理要素205によって実行される。ファブリック215は、システム200の様々な構成要素を一緒に接続するための任意の数及びタイプのバス、通信デバイス/インターフェース、相互接続及び他のインターフェースモジュールを表す。
【0023】
一実施形態では、処理要素205は、ディスプレイデバイス250及び270上に表示するためのピクセルデータを生成する。一実施形態では、このピクセルデータは、処理要素205によってメモリ220内のフレームバッファ230に書き込まれ、次いで、フレームバッファ230からディスプレイデバイス250及び270に対して送られる。一実施形態では、フレームバッファ230に格納されたピクセルデータは、ビデオシーケンスのフレームを表す。別の実施形態では、フレームバッファ230に格納されたピクセルデータは、ラップトップ又はデスクトップパーソナルコンピュータ(personal computer、PC)の画面コンテンツを表す。更なる実施形態では、フレームバッファ230に格納されたピクセルデータは、モバイルデバイス(例えば、スマートフォン、タブレット)の画面コンテンツを表す。
【0024】
メモリサブシステム220は、任意の数及びタイプのメモリコントローラ及びメモリデバイスを含む。一実施形態では、メモリサブシステム200は、様々な動作条件に従って調整され得る様々な異なるクロック周波数で動作することが可能である。しかしながら、メモリクロック周波数変更が実装される場合、メモリトレーニングが、典型的には、様々なパラメータを変更するため、データの転送のために生成された信号の特性を調整する等のために実行される。例えば、様々なメモリインターフェース信号の位相、遅延及び/又は電圧レベルは、メモリトレーニング中に試験され、調整される。これらのメモリインターフェース信号をトレーニングするために、メモリコントローラとメモリとの間で様々な信号送信が行われ得る。メモリクロック周波数を変更する場合に、このメモリトレーニングを実行する適切な時間を見出すことが難しい可能性がある。
【0025】
一実施形態では、制御ユニット210は、ディスプレイデバイス250がPSRモードにある場合、及び、ディスプレイデバイス270が垂直帰線消去期間を有する場合、メモリクロック周波数更新を実行させる。これにより、ディスプレイデバイス250及び270へのディスプレイデータの送信を中断することなく、メモリトレーニングを実行することができるようになる。PSRモードの間、ピクセルデータは、タイミングコントローラ240のバッファ245に格納され、メモリサブシステム220を介することなくディスプレイデバイス250に対して送られる。言い換えれば、PSRモードで動作する場合、ディスプレイデバイス250は、バッファ245に格納されたピクセルデータを使用してセルフリフレッシュを実行する。また、ディスプレイデバイス270に対して垂直帰線消去期間(VBI)が発生すると、フレームバッファ230からディスプレイデバイス270にデータが転送されない。これは、メモリサブシステム220に対するメモリクロック周波数変更を開始するための機会のウィンドウを提供する。
【0026】
一実施形態では、制御ユニット210は、メモリ帯域幅モニタ212と、追跡ユニット213と、周波数調整ユニット214と、を含む。メモリ帯域幅モニタ212、追跡ユニット213及び周波数調整ユニット214は、回路、実行ユニット及びプログラム命令の任意の組み合わせを使用して実装することができる。また、別の実施形態では、メモリ帯域幅モニタ212、追跡ユニット213及び周波数調整ユニット214は、制御ユニット210の一部ではなく、制御ユニット210とは別の個々のユニットである。他の実施形態では、制御ユニット210は、メモリ帯域幅モニタ212、追跡ユニット213及び周波数調整ユニット214と同様の機能を実行する構成要素の他の配置を含み得る。
【0027】
一実施形態では、メモリ帯域幅モニタ212は、メモリサブシステム220のリアルタイムメモリ帯域幅需要を、既存のメモリクロックで利用可能なメモリ帯域幅と比較する。既存のメモリクロックで利用可能なメモリ帯域幅がリアルタイムメモリ帯域幅需要と閾値を超えて異なる場合、制御ユニット210は、メモリサブシステム220の1つ以上のクロックの周波数を変更する決定を行う。メモリサブシステム220の1つ以上のクロックの周波数を変更する決定がなされると、追跡ユニット213は、対応するコマンドをタイミングコントローラ240に送信することによって、ディスプレイデバイス250をPSRモードに入れる。ディスプレイデバイス250がPSRモードに入るのに数フレームかかる場合がある。ディスプレイデバイス250にかかるフレームの数は、実施形態に応じて変動し得る。また、追跡ユニット213は、ディスプレイデバイス270のVBIのタイミングを追跡する。
【0028】
一実施形態では、非PSRモードからPSRモードへの遷移を促進するために、追跡ユニット213は、タイミングコントローラ240が以前に格納されたフレームをスキャンアウトするための信号を、サイドバンドインターフェース247を介してタイミングコントローラ240に送信する。サイドバンドインターフェース247は、ピクセルをタイミングコントローラ240に渡すために使用される主インターフェース242とは別であることに留意されたい。一実施形態では、主インターフェース242は、eDPインターフェースである。他の実施形態では、主インターフェース242は、様々な他のプロトコルのうち何れかと互換性がある。サイドバンドインターフェース247を介して信号を送信することにより、以前に格納されたフレームのスキャンアウトを呼び出すタイミング及びスケジューリングを、ディスプレイデバイス270のVBI期間の前の比較的短い期間(すなわち、ライン時間)内に発生させることができる。この方法は、タイミングコントローラ240がPSRモードに入る前に数フレームの遅延が生じ得る、主インターフェース242を介して要求を送信する従来の方法とは対照的である。
【0029】
タイミングコントローラ240がPSRモードになると、周波数調整ユニット214は、追跡ユニット213がディスプレイデバイス270のためのVBIがあると判断した場合に異なる周波数でメモリクロックを生成するようにPLL225をプログラムするコマンドを生成する。他の実施形態では、制御ユニット210は、ディスプレイデバイス250及び270それぞれのためのPSRモードとVBIとの重複中にメモリクロック周波数に対して調整を行わせるための論理及び/又はユニットの他の配置を含む。例えば、別の実施形態では、追跡ユニット213及び周波数調整ユニット214は、単一のユニットに一緒に組み合わされる。更なる実施形態では、周波数調整ユニット214は複数のユニットに分割され、第1のユニットは、PLL225によって生成された周波数を変更するコマンドを生成し、第2のユニットは、コマンドをPLL225に送信する。制御ユニット210の機能を実装するための回路、処理要素、実行ユニット、インターフェースユニット、プログラム命令、及び、他の構成要素の他の配置が可能であり、企図される。
【0030】
タイミングコントローラ(又はTCON)の機能は、TCONごとに異なる。いくつかのTCONは、現在のピクチャの一部分のみを保持する。これらのTCONでは、PSRが機能するために、TCONは、ピクチャがスキャンインされる毎にピクチャがTCONのメモリにコピーされるモード(すなわち、「イネーブルPSR」)に入る必要がある。次に、PSRに入ると、最後の履歴ピクチャがメモリから読み出される。いくつかのTCON又はTCONの特定のモードは、常に、利用可能な以前のピクチャを有する。この場合にPSRモードに入ることは、イネーブルPSRモードを必要としない。したがって、PSRモードに入ることは、TCONの能力又は機能性に応じて、2つのステップ又は1つのステップを伴うことができる。
【0031】
システム200は、様々なタイプのコンピューティングシステムのうち何れかとすることができる。例えば、一実施形態では、システム200は、外部ディスプレイに接続されたラップトップを含む。この実施形態では、ディスプレイデバイス250は、ラップトップの内部ディスプレイであり、ディスプレイデバイス270は、外部ディスプレイである。別の実施形態では、システム200は、外部ディスプレイに接続されたモバイルデバイスを含む。この実施形態では、ディスプレイデバイス250は、モバイルデバイスの内部ディスプレイであり、ディスプレイデバイス270は、外部ディスプレイである。本明細書で説明される技術を実装するためにシステム200の構成要素を採用する他のシナリオが可能であり、企図される。
【0032】
いくつかの実施形態では、システムは3つ以上のディスプレイを有することができる。例えば、一実施形態では、システムは、PSR対応の複数の内部ディスプレイを有する。この実施形態では、第2の内部ディスプレイは、第1の内部ディスプレイと同様の論理を含むことができ、一方のディスプレイがPSR内に配置される場合、他方もまたPSR内に配置されるであろう。別の実施形態では、システムは、PSR対応の複数の外部ディスプレイを含む。システムは、外部ディスプレイに問い合わせ、それらの能力と、適用可能であればPSR又は「セルフリフレッシュ」モードをトリガする方法と、を決定するであろう。
【0033】
一実施形態では、他のディスプレイが「セルフリフレッシュ可能」である限り、単一の「セルフリフレッシュ可能でない」ディスプレイのみをサポートすることができるが、以下の例外があり、複数のセルフリフレッシュ可能でないディスプレイは、それらの垂直帰線消去期間が時々一致するように同期され得る場合、単一のディスプレイとして扱うことができる。例えば、2つの60Hzディスプレイは、一方のディスプレイのタイミングをビット単位で他方のディスプレイと一致するまで(わずかに)「引き込む」ことによって、一致するクロックを有するように同期され得る。一旦同期されると、それらを同期状態に保つために、非常に小さな調整が随時使用され得る。これは、「クロックプリング」又は「ジェンロッキング」として知られることが多い標準的な技術である。別の例では、60Hz及び30Hzディスプレイは、同様の技術と同期して、(30Hzディスプレイに関して)1つおきにVBIを有することができる。VBI期間は、ディスプレイ間で異なる可能性があり、したがって、より短く一致する期間は、トレーニング/クロック変更に適用可能であろう。
【0034】
図3を参照すると、マルチディスプレイシステムのためのメモリクロック周波数更新のタイミングの一実施形態のタイミング図300が示されている。波形302は、外部ディスプレイ接続が、HDMI(登録商標)又はDPのようないくつかのプロトコルに従ってアクティブに確立される場合を示す。外部ディスプレイは、ディスプレイ接続がアクティブになる少し前に既に物理的に接続されていてもよい。従来技術では、外部ディスプレイがシステムに接続される場合、メモリクロックは、典型的には、その可能な最高周波数に設定される。その理由は、内部ディスプレイ及び外部ディスプレイの両方を静止させることができる時間を見出すことが困難であるため、外部ディスプレイが接続されている間、周波数に対する今後の調整が実行可能でないためである。しかしながら、本開示で説明される技術を使用して、外部ディスプレイが接続され、フレーム/画像をアクティブに表示している間のメモリクロック周波数への調整が可能である。
【0035】
波形304は、外部ディスプレイのための垂直帰線消去(又はVBLANK)期間タイミングを表す。波形304に示される各パルスは、垂直帰線消去期間がいつ発生しているかを示す。波形306は、内部ディスプレイの垂直帰線消去期間のタイミングを示す。波形308は、内部ディスプレイがパネルセルフリフレッシュ(PSR)モードに入るときを表す。波形310は、電力状態(又はPState)の変化がいつ起こるかを表す。波形312は、メモリクロックの変更がいつ行われるかを表す。
【0036】
破線314によって示される時点において、内部ディスプレイに対して垂直帰線消去期間が発生する。破線316によって表される時点で、内部ディスプレイはPSRモードに入る。次に、破線318によって表される時点で、外部ディスプレイがシステムに接続される。外部ディスプレイがシステムに接続されると、PSRモードは無効にされ(既に有効にされている場合)、今後のメモリクロック周波数変更は実施が困難になるため、メモリクロック周波数はその最高(又は所定の)可能な周波数に変更される。この例では、主ディスプレイ及び外部ディスプレイの垂直帰線消去期間が重複することは、まれ又はめったに発生しないため、メモリクロック周波数を変更する信頼できる方法として依存することはできない。しかしながら、メモリクロックをその最大周波数に保つことは、電力消費の点で効率的ではない。したがって、メモリクロック周波数を変更するための改善された方法が望まれる。
【0037】
図4を参照すると、一実施形態によるマルチディスプレイシステムにおけるメモリクロック周波数更新のタイミング図400が示されている。タイミング図400は、(図3の)タイミング図300に示されるものと同じ波形を含む。例えば、波形402は、システムへの外部ディスプレイの接続を表し、波形404は、外部ディスプレイのための垂直帰線消去期間のタイミングを表し、波形406は、内部ディスプレイの垂直帰線消去期間のタイミングを表し、波形408は、内部ディスプレイがPSRモードに入るとき(又は、既にPSRモードにあってもよいとき)を表し、波形410は、電力状態の変化を表し、波形412は、メモリクロック周波数が調整されるときを表す。
【0038】
破線414によって表される時点において、内部ディスプレイの垂直帰線消去期間が発生する。破線416によって表される時点で、内部ディスプレイはPSRモードに入る。破線418によって表される時点で、外部ディスプレイがシステムに接続されたときに電力状態変更が実施され、メモリクロック周波数をその最大値にする。これは、図3に示されるアプローチにおいて発生したものと同様である。
【0039】
破線418によって表される時点と、破線420によって表される後の時点との間の期間内のある時点において、メモリクロック周波数を変更する決定が行われる。メモリクロック周波数を変更する決定がなされると、内部ディスプレイがPSRモードに遷移するための信号が内部ディスプレイに送信される(内部ディスプレイがまだPSRモードにない場合)。場合によっては、複数のフレームが経過してから内部ディスプレイがPSRモードに入ることになるため、この遷移は、行われるのにある程度の時間がかかる可能性がある。内部ディスプレイが破線420においてPSRモードに入ると、これにより、外部ディスプレイがその垂直帰線消去期間を有するときと一致する破線422によって表される時点において電力状態変更を発生させることができる。電力状態変更は、メモリクロック周波数を低減するように実行され、その結果、電力消費が低減することになる。メモリクロック周波数は、低い状態、又は、最高周波数と最低周波数との間の中間のどこかの状態であり得る。電力状態変更が実行された後、内部ディスプレイは、メモリクロック周波数を変更する決定がなされる前に内部ディスプレイにあった状態に応じて、オン又はオフのその以前のPSRモードに戻ることができる。
【0040】
PSRモードを使用して電力状態変更を実行するこの技術によって、内部ディスプレイ及び外部ディスプレイの両方において垂直帰線消去期間が重複するのを待つという従来技術と比較して、電力状態変更を実行するための時間を選択することが容易になる。ディスプレイが更新されていない場合に電力節約のためにPSRモードにある選択は、独立した決定であり、PSRを使用してメモリ/クロック/モード変更を容易にする場合、このアクションが完了すると、PSR状態が復元されることが必要である。
【0041】
図5を参照すると、マルチディスプレイシステムでメモリクロック周波数変更を実行するための方法500の一実施形態が示されている。説明の目的で、この実施形態におけるステップ及び図6図8のステップが、順番に示されている。しかしながら、記載された方法の様々な実施形態では、記載された要素のうち1つ以上が、示された順序とは異なる順序で同時に実行されるか、又は、完全に省略されることに留意されたい。必要に応じて、他の追加の要素も実行される。本明細書に記載の様々なシステム又は装置の何れも、方法500を実施するように構成される。
【0042】
制御ユニットは、複数のディスプレイを駆動するメモリサブシステムのメモリクロック周波数への変更を引き起こすための1つ以上の条件が満たされていると判定する(ブロック505)。一実施形態では、メモリサブシステムのメモリクロック周波数への変更は、電力状態変更の一部として実行される。メモリクロック周波数への変更をトリガする1つ以上の条件は、実施形態ごとに異なる可能性がある。方法800は、メモリクロック周波数への変更をトリガするための条件の一例を説明している。他の実施形態では、他の条件がメモリクロック周波数変更を引き起こし得る。例えば、一実施形態では、交流(alternating current、AC)電力又は直流(direct current、DC)電力を接続又は切断することによって、メモリクロック周波数を変更させる可能性がある。電源に応じて異なる許容クロック範囲が存在し得る。別の実施形態では、ホストシステム又は装置の温度の変化が、メモリクロック周波数を変更する所望をトリガすることができる。例えば、ホストシステム/装置の温度が第1の閾値を超える場合、制御ユニットは、温度を下げるために電力消費を低減しようと試みることになる。電力消費を低減する何れかの方法は、メモリクロック周波数を下げることによるものである。更なる実施形態では、温度が第2の閾値を下回る場合、制御ユニットは、メモリクロック周波数を増加させることができるが、そうすることでシステム/装置を過熱させないためである。更に別の実施形態では、性能向上が望ましいと考えられる場合、制御ユニットは、メモリクロック周波数を上げることによって性能を向上させようと試みることになる。メモリクロック周波数を変更するための他の条件も可能であり、企図される。
【0043】
いくつかの実施形態では、メモリクロック周波数への変更をトリガするための条件は、イベント駆動型であり得る。メモリコントローラは、使用されるスループットが、瞬時に、ウィンドウにわたっていくつかの閾値を超える/下回る場合、又は、何らかの方法で時間的にフィルタリングされた場合、イベントを配置することができる。作業負荷が依頼された場合に、作業負荷がスケジュール又は実行される前であっても作業負荷がリソースを必要とすることを機構が認識又は予測する、ソフトウェア、ファームウェア又はハードウェアベースの機構もあり得る。同様に、作業負荷が終了すると、機構は、何れのリソースがもはや必要でないかを認識する。また、同様の機構が周期的な作業負荷を処理することができる。別の実施形態では、リアルタイムオペレーティングシステム(real-time operating system、RTOS)が期限を認識している場合があり、RTOSは、近づいている期限に応じてより最適なクロックを選ぶことができる。
【0044】
次に、メモリクロック周波数を変化させるための条件を検出することに応じて、制御ユニットは、第1のディスプレイデバイスが垂直帰線消去期間(VBI)を有するときを追跡する(ブロック510)。また、メモリクロック周波数の変更を引き起こすための条件を検出したことに応じて、制御ユニットは、第2のディスプレイデバイスをPSRモードに入らせる(ブロック515)。場合によっては、PSRモードに入ることは、第1のステップでPSRモードが有効化され、次いで、第2のステップでPSRモードに入るという2つのステップを伴うことができる。これは、少なくとも1つの実施形態では、第2のディスプレイデバイスの特定のTCONの能力に依存し得る。第2のディスプレイデバイスがすでにPSRモードにある場合、ブロック515はスキップされ得る。第2のディスプレイデバイスがPSRモードに入った後、第1のディスプレイデバイスが垂直帰線消去期間を有する場合(条件ブロック520、「はい」)、制御ユニットは、垂直帰線消去期間中にメモリクロック周波数更新を開始する(ブロック525)。一実施形態では、メモリクロック周波数更新の一部として、メモリトレーニングが実行される。メモリクロック周波数更新が実行された後、制御ユニットは、第2のディスプレイデバイスにPSRモードを終了させる(ブロック530)。第2のディスプレイデバイスは、PSRモードに留まるための他の条件が検出された場合、PSRモードに留まることができることに留意されたい。ブロック530の後、方法500は終了する。第2のディスプレイデバイスが垂直帰線消去期間にない場合(条件ブロック520、「いいえ」)、方法500は条件ブロック520に留まる。方法500は、メモリクロック周波数を変更するための条件が検出される毎に繰り返すことができることに留意されたい。
【0045】
様々な実施形態では、方法500において説明した第1及び第2のディスプレイデバイスは、異なるリフレッシュレートを有する。例えば、一実施形態では、第1のディスプレイデバイスは第1のリフレッシュレート(例えば、毎秒60フレーム(frames per second、fps))を有し、第2のディスプレイデバイスは第2のリフレッシュレート(例えば、24fps)を有する。この説明のために、第2のリフレッシュレートは第1のリフレッシュレートとは異なるものと仮定する。この実施形態では、ディスプレイデバイスのVBIは異なるレートで発生し、VBIが整合するのを待つことは、メモリクロック周波数更新を発生させるための信頼できる戦略ではない。そのため、方法500は、ディスプレイデバイスが異なるフレームリフレッシュレートを有するときであっても、メモリクロック周波数更新を依然として発生させるための有用な技術となる。
【0046】
図6を参照すると、マルチモードタイミングコントローラを動作させるための方法600の一実施形態が示されている。タイミングコントローラは、ピクセルをディスプレイに対して送信するために第1のモードで動作する(ブロック605)。第1のモードで動作している間、タイミングコントローラは、第1のインターフェースを介して、ディスプレイに対して送信されるピクセルを受信する(ブロック610)。一実施形態では、第1のインターフェースは、eDPインターフェースである。他の実施形態では、第1のインターフェースは、他の様々なタイプのインターフェースのうち何れかであり得る。
【0047】
次いで、後の時点で、タイミングコントローラは、ホスト(例えば、プロセッサ)から信号又はコマンドを受信して、第2のモードにプリエンプティブに切り替える(ブロック615)。信号又はコマンドは、実施形態に応じて、第1のインターフェース上で、又は、サイドバンド信号を使用して通信することができる。一実施形態では、第2のモードは、PSRモードへの比較的高速な遷移を可能にするプレPSRモードである。例えば、この実施形態では、第1のモードからPSRモードに切り替えるのに4サイクル又は5サイクルかかる場合があるが、プレPSRモードからPSRモードに切り替えるのに1サイクル又は2サイクルしかかからない場合もある。
【0048】
次に、タイミングコントローラは、第3のモードに切り替えるための信号又はコマンドをホストから受信する(ブロック620)。一実施形態では、第3のモードは、PSRモードである。一シナリオでは、信号又はコマンドは、タイミングコントローラが第3のモードで動作する間のフレーム数を指定する。第3のモードで動作している間、タイミングコントローラは、埋め込みフレームバッファに結合された第2のインターフェースから、ディスプレイに送られるピクセルを受信する(ブロック625)。一実施形態では、タイミングコントローラは、指定された数のフレームの間、埋め込みフレームバッファからディスプレイにピクセルを送る。別の実施形態では、タイミングコントローラは、第3のモードを終了するための信号又はコマンドをホストから受信するまで、ピクセルを埋め込みフレームバッファからディスプレイに送る。何れの場合も、タイミングコントローラは、後の時点で第2又は第1のモードに戻る(ブロック630)。タイミングコントローラが第3のモードから第2又は第1のモードに戻るかどうかは、ホストからの特定のコマンド、プログラム可能な設定、1つ以上の動作条件の状態等を含む様々な要因に依存し得る。ブロック630の後、方法600は終了する。
【0049】
図7を参照すると、部分PSRモード中にメモリクロック周波数更新を実行するための方法700の一実施形態が示されている。システムは、ピクセルデータを第1及び第2のディスプレイデバイスに対して送る(ブロック705)。ピクセルデータを第1及び第2のディスプレイデバイスに送る間、制御ユニットは、メモリサブシステムのメモリクロック周波数を更新するための1つ以上の条件を検出する(ブロック710)。検出される条件は、実施形態ごとに異なり得る。
【0050】
メモリサブシステムのメモリクロック周波数を更新するための条件を検出したことに応じて、制御ユニットは、第1のディスプレイデバイスがVBIを有するときを追跡する(ブロック715)。また、メモリサブシステムのメモリクロック周波数を更新するための条件を検出したことに応じて、制御ユニットは、第2のディスプレイデバイスを部分PSRモードに入れる(ブロック720)。部分PSRモードは、画面の一部分のみが再描画され、残りの部分が以前のフレームからリフレッシュされる(すなわち、繰り返される)モードを指す。例えば、ユーザがマウスを画面の新しい部分に移動させるが、他の画面コンテンツは同じままである場合、部分PSRモードは、マウスの移動によって影響を受けるフレームの部分のみを更新しながら、以前のフレームの大部分を再使用するように実施され得る。部分PSRモードは、画面の一部のみが更新されている他のシナリオでも使用することができる。部分PSRモードは、「Selective Update PSR」と呼ばれることもあることに留意されたい。
【0051】
次に、制御ユニットは、部分PSRモードの異なる段階のタイミングを追跡する(ブロック725)。次いで、制御ユニットは、第1のディスプレイデバイスのVBIが第2のディスプレイデバイスの部分PSRモードのリフレッシュ部分と重複する(すなわち、整合する)ときに発生するように、メモリサブシステムのメモリクロック周波数への更新をスケジューリングする(ブロック730)。ブロック730の後、方法700は終了する。
【0052】
図8を参照すると、メモリクロック周波数をいつ変更するかを決定するための方法800の一実施形態が示されている。メモリ帯域幅モニタ(例えば、図2のメモリ帯域幅モニタ212)は、メモリサブシステムのリアルタイムメモリ帯域幅需要を、メモリクロックの既存の周波数で利用可能なメモリ帯域幅と比較する(ブロック805)。比較は、瞬間的に行うか、又は、固定された又は適応可能な持続時間にわたって複数回行うこともできる。リアルタイムメモリ帯域幅需要は、制御アルゴリズムに依存し、現在のピーク、最近のピーク、ローリング平均、フィルタリング後、又は、他の変動を含むことができる。一実施形態では、リアルタイムメモリ帯域幅需要は、作業負荷が起こるように要求又はスケジューリングされているが、まだ始まっていない場合の予測需要を含む。別の実施形態では、リアルタイムメモリ帯域幅需要は、トレンド需要を含む。
【0053】
メモリクロックの既存の周波数で利用可能なメモリ帯域幅(bandwidth、BW)が、リアルタイムメモリ帯域幅需要と閾値を超えて異なる場合(条件ブロック810、「はい」)、制御ユニット(例えば、制御ユニット210)は、1つ以上のメモリクロックの周波数を変更する決定を行う(ブロック815)。一実施形態では、各メモリクロックは、個別の制御パラメータ(例えば、個別の閾値)を有する。様々な実施形態では、閾値は、時間フィルタ、ヒステリシス等の構成要素を含むことができる。一実施形態では、利用可能なメモリ帯域幅が需要よりも大きい場合、周波数の変更を遅延させることができる、ヒューリスティック又は数学的な条件があり得る。利用可能なメモリ帯域幅が需要よりも小さい場合、制御ユニットは、周波数を可能な限り迅速に増加させたい場合がある。したがって、条件ブロック810における条件は、プログラム可能であり、時間、フィルタリング等を含むことができる。
【0054】
次に、追跡ユニット(例えば、追跡ユニット213)及び周波数調整ユニット(例えば、周波数調整ユニット214)は、第1のディスプレイデバイス上のVBIと第2のディスプレイデバイス上のPSRモードとが重複した場合にメモリクロック周波数変更を発生させる(ブロック820)。プログラム可能遅延(ブロック825)の後、方法800はブロック805に戻る。ブロック825内のプログラム可能遅延は、メモリクロック周波数変更のヒステリシスを防止する。そうではなく、メモリクロックの既存の周波数で利用可能なメモリ帯域幅がリアルタイムメモリ帯域幅需要の閾値内である場合(条件ブロック810、「いいえ」)、方法800はブロック805に戻る。
【0055】
様々な実施形態では、ソフトウェアアプリケーションのプログラム命令を使用して、本明細書に記載の方法及び/又は機構を実装する。例えば、汎用又は専用プロセッサによって実行可能なプログラム命令が企図される。様々な実施形態では、そのようなプログラム命令は、高レベルプログラミング言語によって表される。他の実施形態では、プログラム命令は、高レベルプログラミング言語からバイナリ、中間又は他の形式にコンパイルされる。代替的に、ハードウェアの挙動又は設計を説明するプログラム命令が書かれる。そのようなプログラム命令は、C等の高レベルプログラミング言語によって表される。代替的に、Verilog等のハードウェア設計言語(hardware design language、HDL)が使用される。様々な実施形態では、プログラム命令は、様々な非一時的なコンピュータ可読記憶媒体の何れかに記憶される。記憶媒体は、プログラム実行のためにプログラム命令をコンピューティングシステムに提供するために、使用中にコンピューティングシステムによってアクセス可能である。一般的に言えば、そのようなコンピューティングシステムは、少なくとも1つ以上のメモリと、プログラム命令を実行するように構成された1つ以上のプロセッサと、を含む。
【0056】
上記の実施形態は、実施形態の非限定的な例にすぎないことを強調しておきたい。上記の開示が十分に理解されると、多数の変形及び修正が当業者に明らかになるであろう。以下の特許請求の範囲は、全てのそのような変形及び修正を包含すると解釈されることが意図されている。
図1
図2
図3
図4
図5
図6
図7
図8
【国際調査報告】