(57)【要約】プロセッシングシステム（１００）は、ＲＡＭ（１０８）に結合可能なメモリコントローラ（１１６）と、１つ以上のメモリタイミングパラメータのセットに対するデフォルトの値（１１８）を含むブート情報を記憶するように構成されたＲＯＭ（１１４）と、を含む。少なくとも１つのプロセッサは、初期化中に、１つ以上のメモリタイミングパラメータのセットに対してデフォルトの値を利用するようにメモリコントローラを構成するように構成されている。少なくとも１つのプロセッサは、初期化後のプロセッシングシステムの動作中に、セットの１つ以上の対応するメモリタイミングパラメータの１つ以上の更新された値（１２６）を表すユーザ入力を受信し、１つ以上のメモリタイミングパラメータのセットの１つ以上の更新された値を利用するように、メモリコントローラを動的に再構成するように更に構成されている。プロセッシングシステムは、再構成されたメモリコントローラを使用して、ＲＡＭへの１つ以上のメモリアクセス動作を行うように更に構成されている。【選択図】図１
2022501710.tif 000002
【特許請求の範囲】
【請求項１】
プロセッシングシステム（１００）の初期化（３０４）中に、メモリコントローラ（１１６）と前記プロセッシングシステムの対応するメモリ（１０８）との間のシグナリングのための１つ以上のメモリタイミングパラメータのセットに対してデフォルトの値（１１８）を利用するように、前記プロセッシングシステムの前記メモリコントローラを構成することと、
初期化後の前記プロセッシングシステムの動作中に、
前記セットの１つ以上のメモリタイミングパラメータの更新された値（１２６）を表すユーザ入力を受信することと（３１２）、
前記メモリコントローラを動的に再構成して（３１４）、前記シグナリングに対して、前記セットの前記１つ以上のメモリタイミングパラメータの更新された値を利用することと、
再構成されたメモリコントローラを使用して、前記メモリへの１つ以上のメモリアクセス動作を実行することと（３２４）、を含む、
方法。
【請求項２】
ユーザ入力を受信することは、
グラフィカルユーザインタフェース（１２４）をユーザに提供することと、
前記グラフィカルユーザインタフェースを介して前記ユーザ入力を受信することと、を含む、
請求項１の方法。
【請求項３】
前記メモリコントローラを動的に再構成して、前記１つ以上の更新された値を利用することは、
更新された値の各々を、前記メモリコントローラの対応する制御レジスタ（２２０）に記憶することであって、前記制御レジスタは、前記記憶された値に従って対応するメモリタイミングパラメータを制御するように、前記メモリコントローラの対応する構成要素を構成する、ことを含む、
請求項２の方法。
【請求項４】
前記メモリコントローラは、前記プロセッシングシステムのグラフィックスサブシステム（１１０）のメモリコントローラを備え、
前記メモリは、グラフィックスメモリ（１０８）を備え、
前記グラフィカルユーザインタフェースを提供することは、前記プロセッシングシステムの中央処理装置（ＣＰＵ）（１０２）においてアプリケーション（１２２）を実行することによって、前記グラフィカルユーザインタフェースを提供することを含み、
前記更新された値を前記メモリコントローラの制御レジスタに記憶することは、前記ＣＰＵにおいて実行される前記グラフィックスサブシステムのデバイスドライバ（１２８）を使用して、前記更新された値を前記制御レジスタに記憶することを含む、
請求項２の方法。
【請求項５】
前記メモリコントローラを動的に再構成して、前記更新された値を利用することは、
前記メモリコントローラに対する新たなメモリアクセス要求の発行を一時的に停止することと（３１６）、
前記メモリコントローラがアイドル状態になったことを検出したことに応じて、制御レジスタ内の値を、前記ユーザ入力からの対応する更新された値で上書きすることと（３１８）、
前記制御レジスタに記憶された前記１つ以上の更新された値を用いて前記メモリコントローラを再活性化することと（３２０）、を含む、
請求項１の方法。
【請求項６】
前記１つ以上のメモリタイミングパラメータのセットに対する複数の事前構成された値のセット（５０２）をユーザに提供すること（４０４）であって、値のセットの各々は、前記１つ以上のメモリタイミングパラメータのセットの各々に対する指定された値を有する、ことをさらに含み、
ユーザ入力を受信すること（４０６）は、前記複数の事前構成された値のセットのうち特定のセットの選択を示すユーザ入力を受信することを含む、
請求項１〜５の何れかの方法。
【請求項７】
前記メモリコントローラは、前記プロセッシングシステムのグラフィックスサブシステム（１１０）のメモリコントローラを備え、
前記メモリは、グラフィックスメモリ（１０８）を備える、
請求項１の方法。
【請求項８】
ユーザ入力を受信することは、前記プロセッシングシステムの中央処理装置（ＣＰＵ）（１０２）によって実行されるアプリケーション（１２２）を介してユーザ入力を受信することを含み、
前記メモリコントローラを動的に再構成することは、前記ＣＰＵによって実行されるデバイスドライバ（１２８）を介して前記メモリコントローラを動的に再構成することを含む、
請求項７の方法。
【請求項９】
プロセッシングシステム（１００）であって、
ランダムアクセスメモリ（ＲＡＭ）（１０８）に結合可能なメモリコントローラ（１１６）と、
ブート情報を記憶するように構成されたリードオンリメモリ（ＲＯＭ）（１１４）であって、前記ブート情報は、１つ以上のメモリタイミングパラメータのセットに対するデフォルトの値（１１８）を含む、ＲＯＭと、
前記メモリコントローラ及び前記ＲＯＭに結合された少なくとも１つのプロセッサ（１０２，１０４）と、を備え、
前記少なくとも１つのプロセッサは、
前記プロセッシングシステムの初期化（３０４）中に、前記メモリコントローラと前記ＲＡＭとの間のシグナリング（２１６）のための前記１つ以上のメモリタイミングパラメータのセットに対して前記デフォルトの値を利用するように、前記メモリコントローラを構成することと、
初期化後の前記プロセッシングシステムの動作中に、
前記セットの１つ以上のメモリタイミングパラメータの更新された値（１２６）を表すユーザ入力を受信することと（３１２）、
前記メモリコントローラを動的に再構成して（３１４）、前記シグナリングに対して、前記セットの対応するメモリタイミングパラメータの更新された値を利用することと、
を行うように構成されており、
前記プロセッシングシステムは、前記再構成されたメモリコントローラを使用して、前記ＲＡＭへの１つ以上のメモリアクセス動作を実行する（３２４）ように構成されている、
プロセッシングシステム。
【請求項１０】
前記少なくとも１つのプロセッサは、
グラフィカルユーザインタフェース（１２４）をユーザに提供することと、
前記グラフィカルユーザインタフェースを介して前記ユーザ入力を受信することと、
によって、ユーザ入力を受信するように構成されている、
請求項９のプロセッシングシステム。
【請求項１１】
前記少なくとも１つのプロセッサは、前記更新された値を前記メモリコントローラの制御レジスタ（２２０）に記憶することによって、前記メモリコントローラを動的に再構成して、前記更新された値を利用するように構成されており、前記制御レジスタは、前記記憶された値に従って対応するメモリタイミングパラメータを制御するように、前記メモリコントローラの対応する構成要素を構成する、
請求項１０のプロセッシングシステム。
【請求項１２】
前記メモリコントローラは、前記プロセッシングシステムのグラフィックスサブシステム（１１０）のメモリコントローラを含み、
前記ＲＡＭは、グラフィックスメモリ（１０８）を含み、
前記少なくとも１つのプロセッサは、前記プロセッシングシステムの中央処理装置（ＣＰＵ）（１０２）においてアプリケーション（１２２）を実行することによって、前記グラフィカルユーザインタフェースを提供するように構成されており、
前記少なくとも１つのプロセッサは、前記ＣＰＵにおいて実行される前記グラフィックスサブシステムのデバイスドライバ（１２８）を使用して、前記更新された値を対応する制御レジスタ（２２０）に記憶するように構成されている、
請求項１０のプロセッシングシステム。
【請求項１３】
前記少なくとも１つのプロセッサは、
前記メモリコントローラに対する新たなメモリアクセス要求の発行を一時的に停止することと（３１６）、
前記メモリコントローラがアイドル状態になったことを検出したことに応じて、制御レジスタ内の値を、前記ユーザ入力からの前記更新された値で上書きすることと（３１８）、
前記制御レジスタに記憶された前記更新された値を用いて前記メモリコントローラを再活性化することと（３２０）、
によって、前記メモリコントローラを動的に再構成して、前記更新された値を利用するように構成されている、
請求項１０のプロセッシングシステム。
【請求項１４】
前記少なくとも１つのプロセッサは、
前記１つ以上のメモリタイミングパラメータのセットに対する複数の事前構成された値のセットをユーザに提供すること（４０４）であって、値のセットの各々は、前記１つ以上のメモリタイミングパラメータのセットの各々に対する指定された値を有する、ことと、
前記複数の事前構成された値のセットのうち特定のセットの選択を示すユーザ入力を受信することと（４０６）、
によって、ユーザ入力を受信するように構成されている、
請求項９〜１３の何れかのプロセッシングシステム。
【請求項１５】
前記メモリコントローラは、前記プロセッシングシステムのグラフィックスサブシステム（１１０）のメモリコントローラを備え、
前記メモリは、グラフィックスメモリ（１０８）を備える、
請求項９のプロセッシングシステム。
【請求項１６】
前記少なくとも１つのプロセッサは、中央処理装置（ＣＰＵ）（１０２）によって実行されるアプリケーション（１２２）を介して前記ユーザ入力を受信するように構成されたＣＰＵを含み、
前記ＣＰＵは、前記ＣＰＵによって実行されるデバイスドライバ（１２８）を介して前記メモリコントローラを動的に再構成するように構成されている、
請求項１５のプロセッシングシステム。
【請求項１７】
実行可能命令のセットを具現化したコンピュータ可読記憶媒体であって、
前記実行可能命令のセットは、
プロセッシングシステム（１００）のメモリコントローラ（１１６）に対する１つ以上の対応するメモリタイミングパラメータの１つ以上の値（１１８）のユーザ選択を容易にするためのグラフィカルユーザインタフェース（ＧＵＩ）（１２４）を、前記プロセッシングシステムのユーザに提供することと（３１０）、
前記メモリコントローラと前記プロセッシングシステムの対応するメモリとの間のシグナリングに対して、対応するメモリタイミングパラメータについて前記ユーザが選択した１つ以上の値を利用するように、前記メモリコントローラを動的に更新することと（３１４）、
を行うように少なくとも１つのプロセッサ（１０２，１０４）を操作する、
コンピュータ可読記憶媒体。
【請求項１８】
前記ＧＵＩを提供するために少なくとも１つのプロセッサを操作する前記実行可能命令のセットは、
前記ＧＵＩを介して前記１つ以上のメモリタイミングパラメータのセットに対する複数の事前構成された値のセットを、前記ＧＵＩを介してユーザに提供することであって（４０４）、値のセットの各々は、前記１つ以上のメモリタイミングパラメータの各々に対する指定された値を有する、ことと、
前記ＧＵＩを介して、前記複数の事前構成された値のセットのうち特定のセットの選択を示すユーザ入力を受信することと（４０６）、
を行うように前記少なくとも１つのプロセッサを操作する実行可能命令を含む、
請求項１７のコンピュータ可読記憶媒体。
【請求項１９】
前記メモリコントローラは、前記プロセッシングシステムのグラフィックスサブシステム（１１０）のメモリコントローラを備え、
前記メモリは、グラフィックスメモリ（１０８）を備える、
請求項１７のコンピュータ可読記憶媒体。
【請求項２０】
前記ＧＵＩを提供するために少なくとも１つのプロセッサを操作する前記実行可能命令のセットの実行可能命令は、前記プロセッシングシステムの中央処理装置（ＣＰＵ）（１０２）によって実行されるソフトウェアアプリケーション（１２２）の実行可能命令を含み、
前記メモリコントローラを動的に再構成するために少なくとも１つのプロセッサを操作する前記実行可能命令のセットの実行可能命令は、前記ＣＰＵによって実行されるデバイスドライバ（１２８）の命令を含む、
請求項１９のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
メモリと、対応するメモリコントローラと、の間のシグナリングは、対応するシグナリングプロトコルによって指定された様々なタイミングパラメータによって指示される。従来のプロセッシングシステムでは、メモリコントローラは、初期のシステム構成の間（すなわち、ブートアップの間）、メモリタイミングパラメータのセットに対する固定値によってプログラムされ、メモリコントローラは、後続の全てのメモリアクセス動作に対してメモリタイミングパラメータの同じ固定値を使用する。固定された又はデフォルトのメモリタイミングパラメータ値は、典型的には、基本入出力システム（ＢＩＯＳ）又は他のブートリードオンリメモリ（ＲＯＭ）に記憶され、典型的には、メモリ製造者の推奨又は仕様に基づいている。したがって、これらのデフォルトのメモリタイミングパラメータ値は、殆ど又は全ての予想されるシステム構成に対して安定した動作を提供することを試みる際に、慎重（conservative）なタイミング値になるように構成されている。
【０００２】
添付図面を参照することによって、本開示をより良好に理解することができるとともに、その多数の特徴及び利点が当業者に明らかになる。異なる図面における同じ符号の使用は、同様又は同一の要素を示す。
【図面の簡単な説明】
【０００３】
【図１】いくつかの実施形態による、動的に再構成可能なメモリコントローラを有するプロセッシングシステムを示すブロック図である。
【図２】いくつかの実施形態による、図１の動的に再構成可能なメモリコントローラの実施例を示すブロック図である。
【図３】少なくともいくつかの実施形態による、メモリコントローラのメモリタイミングパラメータのセットを動的に再構成する方法を示すフローチャートである。
【図４】いくつかの実施形態による、動的再構成のための複数の予め定義されたメモリタイミングパラメータ値のセットのユーザ選択を容易にする方法を示すフローチャートである。
【図５】いくつかの実施形態による、メモリコントローラに実装するためにメモリタイミングパラメータ値のセットの選択を示すユーザ入力を受信するための例示的なグラフィックスユーザインタフェース（ＧＵＩ）を示す図である。
【発明を実施するための形態】
【０００４】
慎重なメモリタイミングパラメータ値の固定されたセットを用いてＢＩＯＳ又は他のブートＲＯＭを構成する従来のアプローチは、典型的に、様々なシステムの実装に適合するのに十分なタイミングマージンを提供するという所望の結果を達成する。しかしながら、多くの場合、ワークロード又はシステムの実装は、慎重なメモリタイミングパラメータの固定されたセットによって提供されるタイミングマージンを必要とせず、そのような場合には、過度なタイミングマージンは、典型的に、メモリ速度を不必要に遅らせ、したがって、全体的な処理性能を制限する。したがって、システム性能を改善することを容易にするために、初期化後に動作中のメモリコントローラの１つ以上のメモリタイミングパラメータのセットの動的再構成に関するシステム及び技術が本明細書で開示される。少なくとも１つの実施形態では、プロセッシングシステムは、ブート構成から取得されたメモリタイミングパラメータ値のデフォルトのセットを用いてメモリコントローラを構成することによって初期化する。システムが初期化後動作モードに移行すると、システムは、メモリコントローラとメモリとの間で行われるシグナリングを構成するために、メモリコントローラによって利用されるメモリタイミングパラメータのセットのうち１つ以上に対する更新された値を示すユーザ入力を受信するためのグラフィカルユーザインタフェース（ＧＵＩ）又は他のユーザインタフェースを提供するように構成されている。いくつかの実施形態では、ユーザは、個々のメモリタイミングパラメータに基づいて、更新されたメモリタイミングパラメータ値を提供するユーザ入力を提供してもよい。しかしながら、多くのメモリタイミングパラメータが高度に相互依存することを理由に、他の実施形態では、事前構成されたメモリタイミングパラメータ値の複数のセットがオプションとしてユーザに提供され、ユーザは、次に、事前構成されたメモリタイミングパラメータ値の特定のセットを、メモリタイミングパラメータ値の更新されたセットとして選択する。
【０００５】
使用される１つ以上の更新されたメモリタイミングパラメータのセットを示すユーザ入力を受信したことに応じて、プロセッシングシステムは、メモリコントローラをアイドル状態にし、メモリコントローラがアイドル状態である間、デバイスドライバ又はプロセッシングシステムの他の構成要素は、以前の値の代わりに、１つ以上の更新されたメモリタイミングパラメータのセットを使用し始めるようにメモリコントローラを動的に再構成する。次に、メモリコントローラは、そのアイドル状態を終了し、更新されたメモリタイミングパラメータ値に基づくシグナリングを使用して、メモリ動作の実行を開始することが許可される。このようにして、メモリコントローラは、システムの初期化中にメモリコントローラに対して構成されたメモリタイミングパラメータ値のデフォルトの固定されたセットと比較して、実装されている特定のワークロード又はシステム構成に対して良好に調整された、更新されたメモリタイミングパラメータを実装するように、システム動作中に動的に再構成される（すなわち、リブート、パワーオンリセット、又は、他のシステムの再初期化無しに再構成される）。よって、ユーザは、予想されるワークロード又は他のシステム構成に対して、メモリアクセスレイテンシを低減し、したがって、システム性能を向上させるように、メモリコントローラを微調整することが許可される。
【０００６】
説明のために、この動的メモリタイミングパラメータ再構成技術の例は、グラフィックスプロセッシングユニット（ＧＰＵ）又はグラフィックスメモリに対するメモリコントローラの動的再構成のコンテキストにおいて説明される。しかしながら、この技術は、この例のコンテキストに限定されるものではなく、システムメモリに対するメモリコントローラ及びオフチップキャッシュに対するメモリコントローラ等を含む、様々なメモリコントローラの何れかのタイプの動的再構成のために採用されてもよい。
【０００７】
図１は、少なくとも１つの実施形態による、動的メモリタイミング再構成を採用するプロセッシングシステム１００を示す。プロセッシングシステム１００は、中央処理装置（ＣＰＵ）１０２及びグラフィックスプロセッシングユニット（ＧＰＵ）１０４等の１つ以上のプロセッサと、システムメモリ１０６及びグラフィックスメモリ１０８等の１つ以上のランダムアクセスメモリ（ＲＡＭ）と、を含む。図示した実施形態では、ＧＰＵ１０４は、グラフィックスサブシステム１１０（例えば、グラフィックスカード）に実装されており、グラフィックスサブシステム１１０は、ＣＰＵ１０２に接続するためのバスインタフェース１１２と、グラフィックスサブシステム１１０の初期化情報を記憶するためのＧＰＵ  ＢＩＯＳ１１４と、ＧＰＵ１０４の代わりにグラフィックスメモリ１０８へのアクセスを制御するメモリコントローラ１１６と、を更に含む。ＣＰＵ及びグラフィックスサブシステム１１０を接続するノースブリッジや入力／出力（Ｉ／Ｏ）管理構成要素等のプロセッシングシステムの他の周知の構成要素は、説明を明確にするために省略されている。
【０００８】
プロセッシングシステム１００の全体的な動作の概要として、パワーオンリセット（ＰＯＲ）又は他の起動イベントに応じて、ＣＰＵ１０２は、システムＢＩＯＳ、ユニファイド・エクステンシブル・ファームウェア・インタフェース（ＵＥＦＩ）又は他のシステムブートＲＯＭ（図示省略）に記憶されたブート情報を使用して、ブート初期化処理を開始する。このシステムの初期化処理の間、グラフィックスサブシステム１１０は、ＧＰＵ  ＢＩＯＳ１１４に記憶されたブート情報を使用して、グラフィックスサブシステム１１０の様々な構成要素を初期化することを含む、自身の初期化処理を開始するようにトリガされる。ＧＰＵ  ＢＩＯＳ１１４のブート情報は、メモリタイミングパラメータ値のデフォルトのセット１１８を含み、このセット１１８は、メモリタイミングパラメータ値のデフォルトのセット１１８によって表されるデフォルトのメモリタイミングを実装するようにメモリコントローラ１１６を初期化するために、初期化処理中に使用される。以下に詳細に説明するように、いくつかの実施形態では、メモリコントローラ１１６の初期化は、デフォルトのセット１１８の各々のメモリタイミングパラメータ値を、対応する制御レジスタに書き込むことを含み、制御レジスタは、メモリコントローラとグラフィックスメモリ１０８との間で行われるシグナリングにおいて対応するメモリタイミングパラメータを提供するように、メモリコントローラ１１６の対応する回路の動作を制御するように機能する。
【０００９】
システムの初期化が完了した後、プロセッシングシステム１００は、動作モードに移行し、その間、ＣＰＵ１０２は、システムメモリ１０６に少なくとも部分的に記憶されたオペレーティングシステム（ＯＳ）１２０及び１つ以上のソフトウェアアプリケーション（例えば、グラフィックス構成ユーティリティアプリケーション１２２）を実行する。この動作モードの間、ＣＰＵ１０２又は他の構成要素は、グラフィックスレンダリングワークロード、暗号化ワークロード、機械学習ワークロード及びブロックチェーン演算ワークロード等の実行されるワークロードと共にＣＰＵ１０２によって実行されるデバイスドライバ１２８を介して、グラフィックスサブシステム１１０にタスクを割り当ててもよい。
【００１０】
これらのワークロードを実行する際に、ＧＰＵ１０４は、メモリコントローラ１１６に依存して、メモリコントローラ１１６に記憶されたメモリタイミングパラメータ値のセットに従って構成されたシグナリングにより、グラフィックスメモリ１０８へのメモリアクセスを行う。上述したように、システムの初期化の間、メモリコントローラ１１６は、十分なタイミングマージンを提供するように、慎重なメモリタイミングパラメータ値を採用するように通常選択される、メモリタイミングパラメータ値のデフォルトのセット１１８を用いて構成され、その結果、グラフィックスサブシステム１１０は、様々なワークロード又は構成の下で安定して動作する。しかしながら、メモリコントローラ１１６に対して構成されたデフォルトのタイミングパラメータは、グラフィックスサブシステム１１０にタスクが割り当てられ、又は、タスクが割り当てられることになる特定のワークロードに対して、過度なメモリレイテンシをもたらし、よって、性能が低下する場合がある。
【００１１】
したがって、プロセッシングシステム１００は、メモリコントローラ１１６とグラフィックスメモリ１０８との間のメモリシグナリングをワークロードの特定の特性に良好に調整するように、動作中の（すなわち、動的な）メモリコントローラ１１６のメモリタイミングパラメータのユーザ指示による再構成を可能にする。少なくとも１つの実施形態では、プロセッシングシステム１００は、構成ＧＵＩ１２４を提供することによって、この点に関するユーザ入力を容易にし、これにより、ユーザは、１つ以上のメモリタイミングパラメータ値の更新されたセット１２６の選択を示す入力を提供し、この更新されたセット１２６に従ってメモリコントローラ１１６を更新するようにプロセッシングシステム１００に信号を送る。例示するために、いくつかの実施形態では、プロセッシングシステム１００は、グラフィックスサブシステム１１０の様々な態様を調整する際にユーザを補助するためのグラフィックス構成ユーティリティアプリケーション１２２を採用し、構成ＧＵＩ１２４は、ＣＰＵ１０２によるグラフィックス構成ユーティリティアプリケーション１２２の実行の一部として提供されてもよい。以下により詳細に説明するように、構成ＧＵＩ１２４は、個々のメモリタイミングパラメータを更新することをサポートしてもよいし、メモリタイミングパラメータの多くの依存関係を考慮して、複数の所定のメモリタイミングパラメータ値のセットを提供してもよく、ユーザは、複数の所定のメモリタイミングパラメータ値のセットから、実装のための１つの所定のセットを、メモリコントローラ１１６を再構成するために使用されるメモリタイミングパラメータ値の更新されたセット１２６として選択してもよい。デフォルトのメモリタイミングパラメータ値に基づいてメモリコントローラ１１６を初期構成し、その後、ユーザ指定されたメモリタイミングパラメータ値でメモリコントローラ１１６を動的に再構成するこの処理を、図３及び図４を参照して以下により詳細に説明する。
【００１２】
図２は、少なくとも１つの実施形態による、メモリコントローラ１１６の実施例を示す。メモリコントローラ１１６は、コマンド復号モジュール２０２と、コマンドアプリケーションモジュール２０４と、データパス２０６と、入出力（ＩＯ）シグナリングモジュール２０８（物理インタフェース又は「ＰＨＹ」とも呼ばれる）と、アドレス（ＡＤＤＲ）復号モジュール２１０と、クロックモジュール２１２と、タイミング構成モジュール２１４と、を含む。これらの構成要素の各々は、本明細書で説明する動作及び当該技術分野において周知の他の動作を実行するように構成された回路として実装される。これらの構成要素のロジック態様は、ハードコードされたロジック、プログラム可能ロジック、又は、これらの組み合わせとして実装されてもよい。
【００１３】
ＧＰＵ１０４又はグラフィックスサブシステム１１０の他の構成要素によって提供されるメモリアクセス動作（例えば、ＲＥＡＤ動作又はＷＲＩＴＥ動作）は、概して、少なくとも２つの部分から構成される。２つの部分とは、メモリコントローラ１１６によって実施される特定のコマンド又は動作を表すメモリアクセスコマンド部分と、実施されるコマンド又は動作の対象であるグラフィックスメモリ１０８内の記憶位置のアドレス又は位置を表すメモリアクセスアドレス（ＡＤＤＲ）である。アドレス復号モジュール２１０は、受信したメモリアドレスを、記憶位置の物理位置とより密接に合わせられたアドレスに（例えば、仮想アドレス位置から物理アドレス位置に）復号又は変換するように動作し、この復号されたアドレスは、他の構成要素の各々の動作の必要に応じて、他の構成要素に提供される。コマンド復号モジュール２０２は、受信したメモリアクセス動作のコマンド値を、１つ以上の個々のコマンドに変換し、コマンドアプリケーションモジュール２０４は、これらを使用して、ＩＯ／ＰＨＹ２０８を制御し、これらのコマンドを表すＩＯ／ＰＨＹ２０８とグラフィックスメモリ１０８との間のシグナリング２１６を行い、グラフィックスメモリ１０８からＩＯ／ＰＨＹ２０８に提供されるシグナリング内のデータ又は制御情報を受信及び解釈する。データパス２０６は、メモリ動作の一部としてグラフィックスメモリ１０８に記憶されるデータ値をＩＯ／ＰＨＹ２０８に提供し、ＩＯ／ＰＨＹ２０８から受信したデータ値をコマンド復号モジュール２０２に提供する役割を果たす。ＩＯ／ＰＨＹ２０８のシグナリングは、クロックモジュール２１２によって提供される少なくとも１つのクロック信号（ＣＬＫ）にクロックされるか、時間合わせされる。
【００１４】
ＩＯ／ＰＨＹ２０８からグラフィックスメモリ１０８に送信される信号（シグナリング）及びグラフィックスメモリ１０８からＩＯ／ＰＨＹ２０８に送信される信号（本明細書では、まとめて「シグナリング２１６」）の生成、タイミング、フォーマット及び解釈は、グラフィックスメモリ１０８のメモリタイプに関連するメモリインタフェースプロトコルによって指示される。例示するために、ダブルデータレート（ＤＤＲ）信号プロトコル（ＤＤＲ、ＤＤＲ２、ＤＤＲ３、ＤＤＲ４、ＧＤＤＲ５等）の何れかに従って実装される同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）は、メモリが、指定された位置のデータに対する要求をメモリコントローラから受信するときと、メモリが、その出力ピン上でデータを利用可能にすることができるときと、の間の遅延を一般的に表すＣＬ（ＣＡＳ（Column Access Strobe）レイテンシ）、ターゲットとなるメモリ位置におけるロウアドレスストローブ（ＲＡＳ）を介したラインの活性化と、ターゲットとなるメモリ位置でのＣＡＳを介したカラム（column）の活性化との間で要する時間を一般的に表すｔＲＣＤ（RAS to CAS Delay）と、データのラインへのアクセスが無効にされてから、データの別のラインへのアクセスが有効にされるまでの間の時間を一般的に表すｔＲＰ（RAS Precharge）等の特定のメモリタイミングの影響を受ける。メモリタイミングパラメータの３つの例を説明したが、メモリシグナリングプロトコルによって指定されたメモリタイミングパラメータの典型的な数は、多くの場合、数十のタイミングパラメータを含むことに留意されたい。
【００１５】
少なくとも１つの実施形態では、メモリコントローラ１１６は、制御レジスタ２２０のセット２１８を使用して、対応するメモリシグナリングプロトコルによって指定されたメモリタイミングパラメータの一部又は全てを実装し、各制御レジスタ２２０は、メモリコントローラ１１６で実装するための１つ以上のメモリタイミングパラメータ値を記憶する。説明するために、一実施形態では、各メモリタイミングパラメータは、例えば８ビット値として表され、各制御レジスタ２２０は、例えば３２ビットの幅を有し、よって、各制御レジスタ２２０は、最大で４つの対応するメモリタイミングパラメータ値を記憶する。次に、制御レジスタ２２０内の値は、対応するメモリタイミングをもたらすために、メモリコントローラ１１６の他の構成要素２０２，２０４，２０６，２０８，２１０を直接又は間接的に構成又は制御することができる。例えば、メモリコントローラ１１６がイベント後に一定期間待機することを必要とするメモリタイミングパラメータについては、対応する制御レジスタ２２０内の対応するメモリタイミングパラメータ値の位置が、クロック信号ＣＬＫによってクロックされるカウントダウンタイマ又はコンパレータへの入力として機能する。或いは、タイミング構成モジュール２１４は、対応する値を、フロップのセット、又は、タイマ若しくはコンパレータへの入力として機能する他の一時記憶構成要素にコピーし、或いは、対応するメモリタイミングを実装するようにプログラム可能ロジックをプログラムする。別の例として、メモリタイミングパラメータ値がグラフィックスメモリ１０８のクロック速度（ＭＣＬＫ）に関する場合、タイミング構成モジュール２１４は、所望のメモリ速度に対応する周波数を有するクロック信号ＣＬＫを提供するようにクロックモジュール２１２を構成するために、対応する制御レジスタ２２０に記憶されたメモリタイミングパラメータ値に基づいてクロックモジュール２１２を構成する。
【００１６】
上述したように、グラフィックスＢＩＯＳ１１４は、システムの初期化中にメモリコントローラ１１６を初期化するために利用される１つ以上のメモリタイミングパラメータ値のデフォルトのセット２１８を記憶し、よって、制御レジスタ２２０のセット２１８は、１つ以上のデフォルトのメモリタイミングパラメータ値を、デフォルトのセット２１８から制御レジスタ２２０内の対応する位置にコピーするように、グラフィックスサブシステム１１０によってアクセス可能である。同様に、メモリコントローラ１１６が、この初期化構成の後に動的に再構成可能であるので、制御レジスタ２２０のセット２１８は、制御レジスタ２２０内のメモリタイミングパラメータ値を、本明細書で詳細に説明するように（例えば、グラフィックス構成ユーティリティアプリケーション１２２及びデバイスドライバ１２８を介して）更新することができるように、ＣＰＵ１０２によってアクセス可能である。
【００１７】
図３は、いくつかの実施形態による、メモリコントローラによって使用されるメモリタイミングパラメータの動的更新を使用するプロセッシングシステムの動作の一例の方法３００を示す。説明を容易にするために、方法３００は、図１及び図２のプロセッシングシステム１００の例のコンテキストにおいて説明される。しかしながら、この方法は、このコンテキストに限定されることなく、本明細書で提供されるガイドラインを使用して構成可能なメモリコントローラを使用する様々なプロセッシングシステムの何れかにおいて実施可能である。方法３００は、パワーオンリセット（ＰＯＲ）又は電源からの電力の初期供給等のように、プロセッシングシステム３０２のシステムの初期化をトリガするイベントにより開始する。このトリガイベントに応じて、ブロック３０４において、プロセッシングシステム１００は、システムの初期化システムを実行し、システムの初期化システムは、ＣＰＵ１０２及びその対応する構成要素を初期化するためのシステムＢＩＯＳ又は他のブートＲＯＭからのブートプロセスと、グラフィックスサブシステム１１０のブートプロセスと、を含む。このグラフィックスサブシステムのブートプロセスの一部として、ブロック３０６において、グラフィックスサブシステム１１０は、グラフィックスメモリ１０８の特定のタイプ又は機種に対してＧＰＵ  ＢＩＯＳ１１４において構成されたメモリタイミングパラメータ値のデフォルトのセット１１８にアクセスし、これらのデフォルトのメモリタイミングパラメータ値を、メモリコントローラ１１６のセット２１８の適切な制御レジスタ２２０にコピーすることによって、メモリコントローラ１１６を最初に構成する。このようにして、グラフィックスサブシステム１１０は、様々なワークロードの下でメモリコントローラ１１６及びグラフィックスメモリ１０８の安定した動作を容易にするための慎重なメモリタイミングに従って動作するように、メモリコントローラ１１６を初期化する。
【００１８】
システムの初期化が完了した後（ブロック３０８によって表される）、プロセッシングシステム１００は、動作モード、又は、１つ以上のソフトウェアアプリケーションがＯＳ１２０の支援により実行される状態に移行する。ＯＳ１２０及びそのようなソフトウェアアプリケーションの少なくとも一部は、１つ以上のワークロードを実行するためにグラフィックスサブシステム１１０に割り当てる。これらのワークロードは、例えば、グラフィックスレンダリングワークロード、ブロックチェーン計算ワークロード、及び、機械学習ベースのワークロード等を含む。システムの初期化中のメモリタイミングパラメータ値のデフォルトのセット１１８によるメモリコントローラ１１６の構成は、典型的に、メモリコントローラ１１６及びグラフィックスメモリ１０８が、これらのワークロードの何れに対しても安定して動作することを可能にするが、結果として生じるメモリタイミングは、グラフィックスサブシステム１１０に割り当てられた特定のワークロードに対して最適でない場合があり、よって、このワークロードの実行の性能を抑制する。
【００１９】
したがって、メモリコントローラ１１６を動的に再構成してそのメモリタイミング構成を微調整し、特定のワークロードに良好に適合させるプロセスを開始するために、ブロック３１０において、ユーザは、ＯＳ１２０とインタフェースして、ＧＰＵ構成ユーティリティアプリケーション１２２を起動する。その実行の一部として、ＧＰＵ構成ユーティリティアプリケーション１２２は、表示される構成ＧＵＩ１２４を設ける。構成ＧＵＩ１２４は、メモリコントローラ１１６の１つ以上のメモリタイミングパラメータ値を変更又は更新するためのユーザ入力を受信する機能を含む。構成ＧＵＩ１２４の一例を、図５を参照して以下に説明する。
【００２０】
ブロック３１２において、ユーザは、プロセッシングシステム１００が動作モードにある間、メモリコントローラ１１６での実行のために、１つ以上の更新されたメモリタイミングパラメータ値を（更新されたセット１２６として）選択するためのユーザ入力を提供するように、構成ＧＵＩ１２４を操作する。いくつかの実施形態では、このユーザ入力は、メモリタイミングパラメータ毎に提供される。すなわち、ユーザは、各メモリタイミングパラメータの更新された値を個々に指定することが可能である。このような実施形態では、構成ＧＵＩ１２４は、例えば、プルダウンリスト、空白の数値入力フィールド等の使用を介して、個々の更新されたメモリタイミングパラメータ値のユーザ入力又は選択を容易にするための様々な入力メカニズムの何れかを設ける。グラフィックスメモリ１０８又は別のメモリタイミングパラメータ値と適合しないメモリタイミングパラメータ値のユーザ入力を防止するために、構成ＧＵＩ１２４は、所定のメモリタイミングパラメータ値に対するユーザの選択に制限範囲を設けてもよい。しかしながら、メモリタイミングパラメータの多くが相互に関連しているので、他の実施形態では、構成ＧＵＩ１２４は、相互に適合することが検証された複数の所定の代替的なメモリタイミングパラメータ値のセットを提供する。このような実施形態では、ユーザは、これらの所定のメモリタイミングパラメータのセットのうち何れかの選択を示すユーザ入力を提供してもよい。これらの代替的なメモリタイミングパラメータのセットを決定及び提供するプロセスを、図４を参照して以下に説明する。
【００２１】
構成ＧＵＩ１２４を介してユーザ入力を受信したことに応じて、ブロック３１４において、ＧＰＵ構成ユーティリティアプリケーション１２２は、このユーザ入力に基づいて、メモリコントローラ１１６によって実装されたメモリタイミングの再構成を開始する。図３のブロック３１６〜３２２は、この動的再構成プロセスを示す。メモリコントローラ１１６の再構成に備えて、ブロック３１６において、グラフィックスサブシステム１１０は、グラフィックスメモリ１０８への全てのメモリアクセス動作を一時的に保留する。また、グラフィックスサブシステム１１０は、ＭＬＫスイッチングが有効にされている場合、ＭＣＬＫクロック信号（例えば、ＭＣＬＫ）を停止又は「フリーズ」し、その後、スタッタモードが実装されている、スタッタモードを無効又は終了する。いくつかの実施形態では、既に実行中（in flight）のメモリアクセス動作は完了することが許可され、バッファリングされたメモリアクセス動作は進行を停止する。
【００２２】
一時的な停止（すなわち、現在実行中のメモリアクセス動作が存在しない）の開始に続けてメモリコントローラ１１６がアイドル状態になったことをグラフィックスサブシステム１１０が通知したことに応じて、デバイスドライバ１２８は、ＹＣＬＫ信号を保留し、次いで、ユーザによって選択された１つ以上のメモリタイミングパラメータ値の更新されたセット１２６の、ＣＰＵ１０２又はシステムメモリ１０６内の一時的な記憶位置から、メモリコントローラ１１６におけるセット２１８の各制御レジスタ２２０への転送を開始することによって、メモリコントローラ１１６の再構成を開始する。少なくとも１つの実施形態では、制御レジスタ２２０のセット２１８は、グラフィックスサブシステム１１０のデバイスドライバ１２８によってアクセス及び管理され、デバイスドライバ１２８は、制御レジスタ２２０における現在値を、更新されたセット１２６の更新された値で上書きするプロセスを管理する。例示するために、いくつかの実施形態では、デバイスドライバ１２８は、特定のＶＢＩＯＳコマンドＤｙｎａｍｉｃＭｅｍｏｒｙＳｅｔｔｉｎｇｓ（）を実行し、ＶＢＩＯＳコマンドＤｙｎａｍｉｃＭｅｍｏｒｙＳｅｔｔｉｎｇｓ（）は、次に、更新されたセット１２６の値（ＤｙｎａｍｉｃＭｅｍｏｒｙＳｅｔｔｉｎｇｓコマンドのパラメータとしてメモリコントローラ１１６に渡される）を使用して、メモリ制御レジスタ２２０のメモリタイミング値をプログラム／上書きするメモリコントローラ１１６のマイクロコード関数を呼び出す。更新されたセット１２６の更新されたメモリタイミングパラメータ値の制御レジスタ２２０への書き込みが完了すると、再構成完了信号２２２（図２）がアサートされる。
【００２３】
再構成完了信号２２２のアサートに応じて、ブロック３２０において、メモリコントローラ１１６は、ブロック３１８の処理において記憶された、更新された値を含む制御レジスタ２２０のセット２１８に現在記憶されているメモリタイミングパラメータ値を使用するように再活性化される。この再活性化は、例えば、ＹＣＬＫ信号を活性化することと、メモリコントローラ１１６をブラックアウトから解放し、次に、スタッタモードを再度有効化することと、ＭＣＬＫ切り替えが有効である場合に、ＭＬＣＫ信号を再活性化することと、を含む。この再活性化は、例えば、メモリタイミングパラメータ値のコピーを、制御レジスタ２２０から、メモリシグナリングのいくつかの態様を直接制御するメモリコントローラ１１６の回路のバッファに記憶すること等を更に含む。メモリコントローラ１１６の再活性化が完了すると、ブロック３２２において、グラフィックスサブシステム１１０は、一時的な停止を解除し、ユーザ入力によって指定された更新されたメモリタイミングパラメータ値によって表される更新されたメモリタイミングを使用して、メモリコントローラ１１６がメモリアクセス動作を処理することを開始するのを可能にする。したがって、ブロック３２４において、ＯＳ１２０又は別のソフトウェアアプリケーションは、指定されたワークロードを実行するようにグラフィックスサブシステム１１０を指示し、その間、メモリコントローラ１１６は、これらの更新されたメモリタイミングに基づく信号（シグナリング）を使用して、メモリアクセス動作を実行する。いくつかの実施形態では、所定のワークロードに対して最良又はより最適なメモリ動作性能をもたらす特定のメモリタイミングパラメータ値のセットを識別するために、ユーザの一部に対して実験を行ってもよい。したがって、いくつかの実施形態では、ユーザが対応するワークロードに対して満足するメモリタイミング構成を識別するまで、更新されたメモリタイミングパラメータ値を使用するメモリコントローラ１１６の動的再構成の処理が、１つ以上の反復で繰り返される。
【００２４】
図４は、いくつかの実施形態による、予め定義された代替的なメモリタイミングパラメータ値のセットの中から、ユーザ選択を介したメモリコントローラのメモリタイミングの動的再構成についての例示的な方法４００を示す。方法４００は、図１及び図２のプロセッシングシステムの例のコンテキストにおいて説明される。方法４００は、デバイス／構成ユーティリティ設計段階とデバイス動作段階とに分離される。上述したように、メモリタイミングの依存関係に起因して、メモリコントローラ動作を不安定にすることなく、ユーザがメモリタイミングを個々に調整するのを可能にすることは、実用的でない場合がある。したがって、ブロック４０２におけるデバイス／構成ユーティリティ設計段階の間、グラフィックスサブシステム１１０の提供又は実装に関与する設計者、供給者又は他の当事者は、複数の代替的なメモリタイミングパラメータ値のセットを決定し、各セットは、本明細書においてメモリタイミング構成レベルとも呼ばれる。各メモリタイミング構成レベルは、メモリコントローラ１１６及びグラフィックスメモリ１０８の動作が最小限に安定するように決定されたメモリタイミングパラメータ値のセットを表し、連続するレベルの各々は、１つ以上の対応するメモリタイミングパラメータに対してより厳格なタイミングマージンをもたらす。この評価及び決定は、例えば、メモリコントローラ１１６及びグラフィックスメモリ１０８の設計を利用し、メモリタイミングパラメータ値の様々な順列を通して反復し、これらから、互いに一致し、少なくとも目標とする程度の安定性をもたらすメモリタイミングパラメータ値の組み合わせを識別するシミュレーションソフトウェアを使用して行われてもよい。
【００２５】
ブロック４０４において、当事者は、構成ＧＵＩ１２４を介して、少なくともメモリタイミング構成レベルのサブセットをユーザが選択可能なオプションとして提示するように、ＧＰＵ構成ユーティリティアプリケーション１２２を設計又は構成する。いくつかの実施形態では、ブロック４０２において識別された各メモリタイミング構成レベルは、オプションとして提供される。他の実施形態では、より小さいメモリタイミング構成レベルのサブセットは、ユーザが選択可能なオプションとして提供されるように選択される。例えば、メモリタイミングレベルの多くの間にごく僅かな差しか存在しない場合、僅かな数のメモリタイミング構成レベル（例えば、３つ、４つ又は５つのメモリタイミング構成レベル）のみがオプションとしてユーザに提供され、含まれるメモリタイミング構成レベルは、例えば、安定性、予測される性能強化の程度、及び、可能性のあるワークロードのタイプの予測に基づいて選択される。
【００２６】
図５を簡単に参照すると、ユーザが選択可能なメモリタイミングレベルを提供するための構成ＧＵＩ１２４の例が示されている。この例の目的のために、ＧＵＩ１２４は、Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅ，Ｉｎｃ．から利用可能なＲａｄｅｏｎ  ＷａｔｔＭａｎ構成ユーティリティアプリケーションの拡張として示されている。Ｒａｄｅｏｎ  ＷａｔｔＭａｎアプリケーションは、図５に示されているようなＧＵＩを提供し、それによって、ユーザは、周波数、温度及び電圧等のように、対応するグラフィックスサブシステムの様々なパラメータ又は構成を観察又は変更する。図５の構成ＧＵＩ１２４は、使用可能な複数のメモリタイミング構成レベルを視覚的に示し、これらの利用可能なメモリタイミング構成レベルのうち１つの選択を示すユーザ入力を提供するようにユーザによって操作されるメモリタイミングレベル機能（memory timing level feature）５０２を追加することによって、この機能をさらに拡張する。図示した例では、メモリタイミングレベル機能５０２は、３つのメモリタイミング構成レベルを提供するプルダウンリストとして表されており、３つのメモリタイミング構成レベルのうち１つ目は、システムの初期化時に実装されるメモリタイミングパラメータ値のデフォルトのセット１１８によって表されるデフォルトのメモリタイミング構成レベルであり、残りの２つは、次第に減少するメモリタイミングマージンを表す。更に、図示した例では、各メモリタイミング構成レベルのオプションは、ユーザ選択を示すためのラジオボタンを含み、このラジオボタンは、構成ＧＵＩ１２４の右上の角に示された「適用」機能等の別の機能のユーザ選択を通じて、又は、直ちに、実施することができる。
【００２７】
再度図４を参照すると、ＧＰＵ構成ユーティリティアプリケーション１２２の設計及び構成が完了すると、このソフトウェアツールは、ツールが設計されたプロセッシングシステム１００のユーザによる使用のためにリリースされてもよい。よって、デバイス動作段階に移行すると、ユーザは、ＧＰＵ構成ユーティリティアプリケーション１２２を実行するようにプロセッシングシステム１００に指示し、ＧＰＵ構成ユーティリティアプリケーション１２２は、構成ＧＵＩ１２４の表示をトリガする。ブロック４０６において、構成ＧＵＩ１２４は、構成ＧＵＩ１２４に提示されたメモリタイミング構成レベルのオプションの特定の１つの選択（例えば、対応するメモリタイミング構成レベルに関連するラジオボタンの選択）を示すユーザ入力を受信する。ブロック４０８において、ＧＰＵ構成ユーティリティアプリケーション１２２は、方法３００のブロック３１４を参照して上述したプロセスを使用して、選択されたメモリタイミング構成レベルのメモリタイミングパラメータ値をメモリコントローラ１１６に動的に実装するように、グラフィックスサブシステム１１０に指示する。
【００２８】
メモリコントローラ１１６がそのように再構成されると、ブロック４１０において、ユーザは、選択されたメモリタイミングを使用してワークロードを実行し、次いで、選択されたワークロードに対するメモリサブシステムの安定性及び／又は有効性を評価する。ユーザが性能に満足した場合（ブロック４１２）、ブロック４１４において、ユーザは、ワークロード又はワークロードの変形の１つ以上の反復を実行するための現在のメモリタイミングを維持する。ユーザが現在のメモリタイミングの下での性能に満足していない場合、ユーザは、構成ＧＵＩに戻り、最適な又は最も満足できるグラフィックスサブシステム１１０のメモリタイミング構成をユーザが識別するまで、別の選択されたメモリタイミング構成レベルでブロック４０６〜４１２のプロセスを繰り返してもよい。
【００２９】
いくつかの実施形態では、上記のシステム及び技術は、図１〜図５を参照して上述したプロセッシングシステムの構成要素等の１つ以上の集積回路（ＩＣ）デバイス（集積回路パッケージ又はマイクロチップとも呼ばれる）を含むシステムに実装される。これらのＩＣデバイスの設計及び製造には、電子設計自動化（ＥＤＡ）及びコンピュータ支援設計（ＣＡＤ）ソフトウェアツールが使用される。これらの設計ツールは、通常、１つ以上のソフトウェアプログラムとして表される。１つ以上のソフトウェアプログラムは、回路を製造するための製造システムを設計又は適合するための処理の少なくとも一部を実行するように１つ以上のＩＣデバイスの回路を表すコードで動作するようにコンピュータシステムを操作する、コンピュータシステムによって実行可能なコードを含む。このコードは、命令、データ、又は、命令及びデータの組み合わせを含むことができる。設計ツール又は製造ツールを表すソフトウェア命令は、通常、コンピューティングシステムがアクセス可能なコンピュータ可読記憶媒体に記憶される。同様に、ＩＣデバイスの設計又は製造の１つ以上のフェーズを表すコードは、同じコンピュータ可読記憶媒体又は異なるコンピュータ可読記憶媒体に記憶されてもよいし、同じコンピュータ可読記憶媒体又は異なるコンピュータ可読記憶媒体からアクセスされてもよい。
【００３０】
コンピュータ可読記憶媒体は、命令及び／又はデータをコンピュータシステムに提供するために、使用中にコンピュータシステムによってアクセス可能な任意の非一時的な記憶媒体又は非一時的な記憶媒体の組み合わせを含む。かかる記憶媒体には、限定されないが、光媒体（例えば、コンパクトディスク（ＣＤ）、デジタル多用途ディスク（ＤＶＤ）、ブルーレイ（登録商標）ディスク）、磁気媒体（例えば、フロッピー（登録商標）ディスク、磁気テープ、磁気ハードドライブ）、揮発性メモリ（例えば、ランダムアクセスメモリ（ＲＡＭ）若しくはキャッシュ）、不揮発性メモリ（例えば、読取専用メモリ（ＲＯＭ）若しくはフラッシュメモリ）、又は、微小電気機械システム（ＭＥＭＳ）ベースの記憶媒体が含まれ得る。コンピュータ可読記憶媒体は、コンピュータシステムに内蔵されてもよいし（例えば、システムＲＡＭ又はＲＯＭ）、コンピュータシステムに固定的に取り付けられてもよいし（例えば、磁気ハードドライブ）、コンピュータシステムに着脱可能に取り付けられてもよいし（例えば、光学ディスク又はユニバーサルシリアルバス（ＵＳＢ）ベースのフラッシュメモリ）、有線又は無線のネットワークを介してコンピュータシステムに接続されてもよい（例えば、ネットワークアクセス可能なストレージ（ＮＡＳ））。
【００３１】
いくつかの実施形態では、上記の技術のいくつかの態様は、ソフトウェアを実行するプロセッシングシステムの１つ以上のプロセッサによって実装されてもよい。ソフトウェアは、非一時的なコンピュータ可読記憶媒体に記憶され、又は、非一時的なコンピュータ可読記憶媒体上で有形に具現化された実行可能命令の１つ以上のセットを含む。ソフトウェアは、１つ以上のプロセッサによって実行されると、上記の技術の１つ以上の態様を実行するように１つ以上のプロセッサを操作する命令及び特定のデータを含むことができる。非一時的なコンピュータ可読記憶媒体は、例えば、磁気若しくは光ディスク記憶デバイス、例えばフラッシュメモリ、キャッシュ、ランダムアクセスメモリ（ＲＡＭ）等のソリッドステート記憶デバイス、又は、他の１つ以上の不揮発性メモリデバイス等を含むことができる。非一時的なコンピュータ可読記憶媒体に記憶された実行可能命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、又は、１つ以上のプロセッサによって解釈若しくは実行可能な他の命令フォーマットであってもよい。
【００３２】
上述したものに加えて、概要説明において説明した全てのアクティビティ又は要素が必要とされているわけではなく、特定のアクティビティ又はデバイスの一部が必要とされない場合があり、１つ以上のさらなるアクティビティが実行される場合があり、１つ以上のさらなる要素が含まれる場合があることに留意されたい。さらに、アクティビティが列挙された順序は、必ずしもそれらが実行される順序ではない。また、概念は、特定の実施形態を参照して説明された。しかしながら、当業者であれば、特許請求の範囲に記載されているような本発明の範囲から逸脱することなく、様々な変更及び変形を行うことができるのを理解するであろう。したがって、明細書及び図面は、限定的な意味ではなく例示的な意味で考慮されるべきであり、これらの変更形態の全ては、本発明の範囲内に含まれることが意図される。
【００３３】
利益、他の利点及び問題に対する解決手段を、特定の実施形態に関して上述した。しかし、利益、利点、問題に対する解決手段、及び、何かしらの利益、利点若しくは解決手段が発生又は顕在化する可能性のある特徴は、何れか若しくは全ての請求項に重要な、必須の、又は、不可欠な特徴と解釈されない。さらに、開示された発明は、本明細書の教示の利益を有する当業者には明らかな方法であって、異なっているが同様の方法で修正され実施され得ることから、上述した特定の実施形態は例示にすぎない。添付の特許請求の範囲に記載されている以外に本明細書に示されている構成又は設計の詳細については限定がない。したがって、上述した特定の実施形態は、変更又は修正されてもよく、かかる変更形態の全ては、開示された発明の範囲内にあると考えられることが明らかである。したがって、ここで要求される保護は、添付の特許請求の範囲に記載されている。
【図１】
2022501710.tif 000003
【図２】
2022501710.tif 000004
【図３】
2022501710.tif 000005
【図４】
2022501710.tif 000006
【図５】
2022501710.tif 000007
【手続補正書】
【提出日】令和3年5月19日(2021.5.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッシングシステム（１００）の初期化（３０４）中に、メモリコントローラ（１１６）と前記プロセッシングシステムの対応するメモリ（１０８）との間のシグナリングのための１つ以上のメモリタイミングパラメータのセットに対してデフォルトの値（１１８）を利用するように、前記プロセッシングシステムの前記メモリコントローラを構成することと、
初期化後の前記プロセッシングシステムの動作中に、
前記セットの１つ以上のメモリタイミングパラメータの更新された値（１２６）を表すユーザ入力を受信することと（３１２）、
前記メモリコントローラを動的に再構成して（３１４）、前記シグナリングに対して、前記セットの前記１つ以上のメモリタイミングパラメータの更新された値を利用することと、
再構成されたメモリコントローラを使用して、前記メモリへの１つ以上のメモリアクセス動作を実行することと（３２４）、を含む、
方法。
【請求項２】
ユーザ入力を受信することは、
グラフィカルユーザインタフェース（１２４）をユーザに提供することと、
前記グラフィカルユーザインタフェースを介して前記ユーザ入力を受信することと、を含む、
請求項１の方法。
【請求項３】
前記メモリコントローラを動的に再構成して、前記１つ以上の更新された値を利用することは、
更新された値の各々を、前記メモリコントローラの対応する制御レジスタ（２２０）に記憶することであって、前記制御レジスタは、前記記憶された値に従って対応するメモリタイミングパラメータを制御するように、前記メモリコントローラの対応する構成要素を構成する、ことを含む、
請求項２の方法。
【請求項４】
前記メモリコントローラは、前記プロセッシングシステムのグラフィックスサブシステム（１１０）のメモリコントローラを備え、
前記メモリは、グラフィックスメモリ（１０８）を備え、
前記グラフィカルユーザインタフェースを提供することは、前記プロセッシングシステムの中央処理装置（ＣＰＵ）（１０２）においてアプリケーション（１２２）を実行することによって、前記グラフィカルユーザインタフェースを提供することを含み、
前記更新された値を前記メモリコントローラの制御レジスタに記憶することは、前記ＣＰＵにおいて実行される前記グラフィックスサブシステムのデバイスドライバ（１２８）を使用して、前記更新された値を前記制御レジスタに記憶することを含む、
請求項２の方法。
【請求項５】
前記メモリコントローラを動的に再構成して、前記更新された値を利用することは、
前記メモリコントローラに対する新たなメモリアクセス要求の発行を一時的に停止することと（３１６）、
前記メモリコントローラがアイドル状態になったことを検出したことに応じて、制御レジスタ内の値を、前記ユーザ入力からの対応する更新された値で上書きすることと（３１８）、
前記制御レジスタに記憶された前記１つ以上の更新された値を用いて前記メモリコントローラを再活性化することと（３２０）、を含む、
請求項１の方法。
【請求項６】
前記１つ以上のメモリタイミングパラメータのセットに対する複数の事前構成された値のセット（５０２）をユーザに提供すること（４０４）であって、値のセットの各々は、前記１つ以上のメモリタイミングパラメータのセットの各々に対する指定された値を有する、ことをさらに含み、
ユーザ入力を受信すること（４０６）は、前記複数の事前構成された値のセットのうち特定のセットの選択を示すユーザ入力を受信することを含む、
請求項１〜５の何れかの方法。
【請求項７】
前記メモリコントローラは、前記プロセッシングシステムのグラフィックスサブシステム（１１０）のメモリコントローラを備え、
前記メモリは、グラフィックスメモリ（１０８）を備える、
請求項１の方法。
【請求項８】
ユーザ入力を受信することは、前記プロセッシングシステムの中央処理装置（ＣＰＵ）（１０２）によって実行されるアプリケーション（１２２）を介してユーザ入力を受信することを含み、
前記メモリコントローラを動的に再構成することは、前記ＣＰＵによって実行されるデバイスドライバ（１２８）を介して前記メモリコントローラを動的に再構成することを含む、
請求項７の方法。
【請求項９】
プロセッシングシステム（１００）であって、
ランダムアクセスメモリ（ＲＡＭ）（１０８）に結合可能なメモリコントローラ（１１６）と、
ブート情報を記憶するように構成されたリードオンリメモリ（ＲＯＭ）（１１４）であって、前記ブート情報は、１つ以上のメモリタイミングパラメータのセットに対するデフォルトの値（１１８）を含む、ＲＯＭと、
前記メモリコントローラ及び前記ＲＯＭに結合された少なくとも１つのプロセッサ（１０２，１０４）と、を備え、
前記少なくとも１つのプロセッサは、
前記プロセッシングシステムの初期化（３０４）中に、前記メモリコントローラと前記ＲＡＭとの間のシグナリング（２１６）のための前記１つ以上のメモリタイミングパラメータのセットに対して前記デフォルトの値を利用するように、前記メモリコントローラを構成することと、
初期化後の前記プロセッシングシステムの動作中に、
前記セットの１つ以上のメモリタイミングパラメータの更新された値（１２６）を表すユーザ入力を受信することと（３１２）、
前記メモリコントローラを動的に再構成して（３１４）、前記シグナリングに対して、前記セットの対応するメモリタイミングパラメータの更新された値を利用することと、
を行うように構成されており、
前記プロセッシングシステムは、前記再構成されたメモリコントローラを使用して、前記ＲＡＭへの１つ以上のメモリアクセス動作を実行する（３２４）ように構成されている、
プロセッシングシステム。
【請求項１０】
前記少なくとも１つのプロセッサは、
グラフィカルユーザインタフェース（１２４）をユーザに提供することと、
前記グラフィカルユーザインタフェースを介して前記ユーザ入力を受信することと、
によって、ユーザ入力を受信するように構成されている、
請求項９のプロセッシングシステム。
【請求項１１】
前記少なくとも１つのプロセッサは、前記更新された値を前記メモリコントローラの制御レジスタ（２２０）に記憶することによって、前記メモリコントローラを動的に再構成して、前記更新された値を利用するように構成されており、前記制御レジスタは、前記記憶された値に従って対応するメモリタイミングパラメータを制御するように、前記メモリコントローラの対応する構成要素を構成する、
請求項１０のプロセッシングシステム。
【請求項１２】
前記メモリコントローラは、前記プロセッシングシステムのグラフィックスサブシステム（１１０）のメモリコントローラを含み、
前記ＲＡＭは、グラフィックスメモリ（１０８）を含み、
前記少なくとも１つのプロセッサは、前記プロセッシングシステムの中央処理装置（ＣＰＵ）（１０２）においてアプリケーション（１２２）を実行することによって、前記グラフィカルユーザインタフェースを提供するように構成されており、
前記少なくとも１つのプロセッサは、前記ＣＰＵにおいて実行される前記グラフィックスサブシステムのデバイスドライバ（１２８）を使用して、前記更新された値を対応する制御レジスタ（２２０）に記憶するように構成されている、
請求項１０のプロセッシングシステム。
【請求項１３】
前記少なくとも１つのプロセッサは、
前記メモリコントローラに対する新たなメモリアクセス要求の発行を一時的に停止することと（３１６）、
前記メモリコントローラがアイドル状態になったことを検出したことに応じて、制御レジスタ内の値を、前記ユーザ入力からの前記更新された値で上書きすることと（３１８）、
前記制御レジスタに記憶された前記更新された値を用いて前記メモリコントローラを再活性化することと（３２０）、
によって、前記メモリコントローラを動的に再構成して、前記更新された値を利用するように構成されている、
請求項１０のプロセッシングシステム。
【請求項１４】
前記少なくとも１つのプロセッサは、
前記１つ以上のメモリタイミングパラメータのセットに対する複数の事前構成された値のセットをユーザに提供すること（４０４）であって、値のセットの各々は、前記１つ以上のメモリタイミングパラメータのセットの各々に対する指定された値を有する、ことと、
前記複数の事前構成された値のセットのうち特定のセットの選択を示すユーザ入力を受信することと（４０６）、
によって、ユーザ入力を受信するように構成されている、
請求項９〜１３の何れかのプロセッシングシステム。
【請求項１５】
前記メモリコントローラは、前記プロセッシングシステムのグラフィックスサブシステム（１１０）のメモリコントローラを備え、
前記メモリは、グラフィックスメモリ（１０８）を備え、
前記少なくとも１つのプロセッサは、中央処理装置（ＣＰＵ）（１０２）によって実行されるアプリケーション（１２２）を介して前記ユーザ入力を受信するように構成されたＣＰＵを含み、
前記ＣＰＵは、前記ＣＰＵによって実行されるデバイスドライバ（１２８）を介して前記メモリコントローラを動的に再構成するように構成されている、
請求項９のプロセッシングシステム。
【国際調査報告】
2022501710.tif 000008
2022501710.tif 000009