(57)【要約】  メモリ電力状態遷移タイマを動的に調整するためのシステム、方法、およびコンピュータプログラムが開示される。方法の一実施形態は、コンピューティングデバイス内のプロセッサに結合されたメモリデバイスの使用または性能に影響を及ぼす1つまたは複数のパラメータを受領するステップを備える。1つまたは複数のメモリ電力状態遷移タイマ設定値の最適値が決定される。メモリ電力状態遷移タイマ設定値の現在値が最適値で更新される。
2018527676.tif 000002
【特許請求の範囲】
【請求項１】
メモリ電力状態遷移タイマを動的に調整するための方法であって、前記方法が、
コンピューティングデバイス内のプロセッサに結合されたメモリデバイスの使用または性能に影響を及ぼす1つまたは複数のパラメータを受領するステップと、
前記1つまたは複数のパラメータに基づいて、1つまたは複数のメモリ電力状態遷移タイマ設定値の最適値を決定するステップと、
前記メモリ電力状態遷移タイマ設定値の現在値を前記最適値で更新するステップと
を備える、方法。
【請求項２】
前記メモリデバイスの使用または性能に影響を及ぼす前記1つまたは複数のパラメータが、メモリトラフィックパターン、メモリ動作周波数、メモリトラフィック量、メモリ利用率、および電力/性能モードのうちの1つまたは複数を備える、請求項1に記載の方法。
【請求項３】
前記メモリ電力状態遷移タイマ設定値が、より低電力のメモリ状態に入るためのアイドルタイマ設定値を備える、請求項1に記載の方法。
【請求項４】
前記メモリデバイスの使用または性能に影響を及ぼす1つまたは複数のパラメータを前記受領するステップが、前記1つまたは複数のパラメータの変化を監視および検出するステップを備える、請求項1に記載の方法。
【請求項５】
前記1つまたは複数のメモリ電力状態遷移タイマ設定値の前記最適値を前記決定するステップが、ルックアップテーブルにアクセスして、前記1つまたは複数のパラメータに基づいて、前記最適値を決定するステップを備える、請求項1に記載の方法。
【請求項６】
前記1つまたは複数のメモリ電力状態遷移タイマ設定値の前記最適値を前記決定するステップが、前記最適値を平均アイドルタイマ期間に基づいて計算するステップを備える、請求項1に記載の方法。
【請求項７】
前記メモリデバイスが、ダイナミックランダムアクセスメモリ(DRAM)デバイスを備え、前記メモリ電力状態遷移タイマ設定値が、前記DRAMデバイスを低電力モードに遷移させるためのパワーダウンタイマ設定値およびページダウンタイマ設定値を備える、請求項1に記載の方法。
【請求項８】
前記1つまたは複数のメモリ電力状態遷移タイマ設定値の前記最適値を前記決定するステップが、複数の設定値の反復探索を備える、請求項1に記載の方法。
【請求項９】
メモリ電力状態遷移タイマを動的に調整するためのシステムであって、前記システムが、
コンピューティングデバイス内のプロセッサに結合されたメモリデバイスの使用または性能に影響を及ぼす1つまたは複数のパラメータを受領するための手段と、
前記1つまたは複数のパラメータに基づいて、1つまたは複数のメモリ電力状態遷移タイマ設定値の最適値を決定するための手段と、
前記メモリ電力状態遷移タイマ設定値の現在値を前記最適値で更新するための手段と
を備える、システム。
【請求項１０】
前記メモリデバイスの使用または性能に影響を及ぼす前記1つまたは複数のパラメータが、メモリトラフィックパターン、メモリ動作周波数、メモリトラフィック量、メモリ利用率、および電力/性能モードのうちの1つまたは複数を備える、請求項9に記載のシステム。
【請求項１１】
前記メモリ電力状態遷移タイマ設定値が、より低電力のメモリ状態に入るためのアイドルタイマ設定値を備える、請求項9に記載のシステム。
【請求項１２】
前記メモリデバイスの使用または性能に影響を及ぼす1つまたは複数のパラメータを受領するための前記手段が、前記1つまたは複数のパラメータの変化を監視および検出するための手段を備える、請求項9に記載のシステム。
【請求項１３】
前記1つまたは複数のメモリ電力状態遷移タイマ設定値の前記最適値を決定するための前記手段が、ルックアップテーブルにアクセスして、前記1つまたは複数のパラメータに基づいて、前記最適値を決定するための手段を備える、請求項9に記載のシステム。
【請求項１４】
前記1つまたは複数のメモリ電力状態遷移タイマ設定値の前記最適値を決定するための前記手段が、前記最適値を平均アイドルタイマ期間に基づいて計算するための手段を備える、請求項9に記載のシステム。
【請求項１５】
前記メモリデバイスが、ダイナミックランダムアクセスメモリ(DRAM)デバイスを備え、前記メモリ電力状態遷移タイマ設定値が、前記DRAMデバイスを低電力モードに遷移させるためのパワーダウンタイマ設定値およびページダウンタイマ設定値を備える、請求項9に記載のシステム。
【請求項１６】
前記1つまたは複数のメモリ電力状態遷移タイマ設定値の前記最適値を決定するための前記手段が、複数の設定値を反復探索するための手段を備える、請求項9に記載のシステム。
【請求項１７】
メモリ電力状態遷移タイマを動的に調整するための、コンピュータ可読媒体内に具体化され、プロセッサによって実行可能なコンピュータプログラムであって、前記コンピュータプログラムが、
コンピューティングデバイス内のプロセッサに結合されたメモリデバイスの使用または性能に影響を及ぼす1つまたは複数のパラメータを受領することと、
前記1つまたは複数のパラメータに基づいて、1つまたは複数のメモリ電力状態遷移タイマ設定値の最適値を決定することと、
前記メモリ電力状態遷移タイマ設定値の現在値を前記最適値で更新することと
を行うように構成されたロジックを備える、コンピュータプログラム。
【請求項１８】
前記メモリデバイスの使用または性能に影響を及ぼす前記1つまたは複数のパラメータが、メモリトラフィックパターン、メモリ動作周波数、メモリトラフィック量、メモリ利用率、および電力/性能モードのうちの1つまたは複数を備える、請求項17に記載のコンピュータプログラム。
【請求項１９】
前記メモリ電力状態遷移タイマ設定値が、より低電力のメモリ状態に入るためのアイドルタイマ設定値を備える、請求項17に記載のコンピュータプログラム。
【請求項２０】
前記1つまたは複数のメモリ電力状態遷移タイマ設定値の前記最適値を決定することを行うように構成された前記ロジックが、ルックアップテーブルにアクセスして、前記1つまたは複数のパラメータに基づいて、前記最適値を決定することを行うように構成されたロジックを備える、請求項17に記載のコンピュータプログラム。
【請求項２１】
前記1つまたは複数のメモリ電力状態遷移タイマ設定値の前記最適値を決定することを行うように構成された前記ロジックが、前記最適値を平均アイドルタイマ期間に基づいて計算することを行うように構成されたロジックを備える、請求項17に記載のコンピュータプログラム。
【請求項２２】
前記メモリデバイスが、ダイナミックランダムアクセスメモリ(DRAM)デバイスを備え、前記メモリ電力状態遷移タイマ設定値が、前記DRAMデバイスを低電力モードに遷移させるためのパワーダウンタイマ設定値およびページダウンタイマ設定値を備える、請求項17に記載のコンピュータプログラム。
【請求項２３】
前記1つまたは複数のメモリ電力状態遷移タイマ設定値の前記最適値を決定することを行うように構成された前記ロジックが、複数の設定値の反復探索を備える、請求項17に記載のコンピュータプログラム。
【請求項２４】
メモリデバイスと、
プロセッサおよびメモリコントローラを備えるシステムオンチップ(SoC)であって、前記メモリコントローラが前記メモリデバイスに電気的に結合される、システムオンチップ(SoC)と、
前記プロセッサによって実行されるメモリスケジューラであって、前記メモリスケジューラが、低電力メモリ状態に入るために前記メモリコントローラによって使用される、1つまたは複数のメモリ電力状態遷移タイマ設定値の最適値を決定することを行うように構成される、メモリスケジューラと
を備える、コンピュータシステム。
【請求項２５】
前記1つまたは複数のメモリ電力状態遷移タイマ設定値の前記最適値が、前記メモリデバイスの使用または性能に影響を及ぼす1つまたは複数のパラメータを監視することによって決定される、請求項24に記載のコンピュータシステム。
【請求項２６】
前記メモリデバイスの使用または性能に影響を及ぼす前記1つまたは複数のパラメータが、メモリトラフィックパターン、メモリ動作周波数、メモリトラフィック量、メモリ利用率、および電力/性能モードのうちの1つまたは複数を備える、請求項25に記載のコンピュータシステム。
【請求項２７】
前記メモリ電力状態遷移タイマ設定値が、アイドルタイマ設定値を備える、請求項25に記載のコンピュータシステム。
【請求項２８】
前記1つまたは複数のメモリ電力状態遷移タイマ設定値の前記最適値が、ルックアップテーブルにアクセスすることによって決定される、請求項25に記載のコンピュータシステム。
【請求項２９】
前記最適値が平均アイドルタイマ期間に基づいて計算される、請求項25に記載のコンピュータシステム。
【請求項３０】
前記メモリデバイスが、ダイナミックランダムアクセスメモリ(DRAM)デバイスを備え、前記メモリ電力状態遷移タイマ設定値が、前記低電力メモリ状態に入るためのパワーダウンタイマ設定値およびページダウンタイマ設定値を備える、請求項25に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ状態遷移タイマを動的に調整するためのシステムおよび方法に関する。
【背景技術】
【０００２】
ポータブルコンピューティングデバイス(たとえば、セルラー電話、スマートフォン、タブレットコンピュータ、携帯情報端末(PDA)、ポータブルゲームコンソール、ウェアラブルデバイス、および他のバッテリ駆動デバイス)、ならびに他のコンピューティングデバイスは、絶えず拡大する多数の特徴およびサービスを提供し続け、情報、リソース、および通信への先例のないレベルのアクセスをユーザに提供する。これらのサービス拡張とペースを合わせるために、そのようなデバイスは、より強力、かつより複雑になってきた。現在、ポータブルコンピューティングデバイスには、一般に、単一の基板上に組み込まれた1つまたは複数のチップ構成要素(たとえば、1つまたは複数の中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、デジタル信号プロセッサなど)を含む、システムオンチップ(SoC)が含まれる。SoCは、ダブルデータレート(DDR)高性能データおよび制御インターフェースを介して、ダイナミックランダムアクセスメモリ(DRAM)など、1つまたは複数の揮発性メモリモジュールまたはデバイスに結合されてもよい。
【０００３】
既存世代および将来世代のDDRメモリ(たとえばDDR1、DDR2、DDR3、DDR4など)は、デバイスが所望の電力モードおよび/または性能モードに従って動作することを可能にするための2つ以上のメモリ電力状態をサポートする。メモリ電力状態のうちの少なくとも1つは、デバイスが電力を節約することを可能にするための比較的より低電力のモードを含んでもよい。メモリ電力状態間の遷移を制御するために、DDRメモリデバイスは、クロックタイマ設定値(たとえばパワーダウンタイマ、ページクローズタイマ、セルフリフレッシュタイマ)を有しており、これは、より低電力のモードに入るために必要となるアイドル時間期間に影響を及ぼし得る。既存の設計では、たとえば、SoCおよびシステムの製造業者が、アイドルタイマの静的な値を、実験室シミュレーションおよびテスト結果に基づいてプログラムすることがある。静的なアイドルタイマ値は、キーとなるユースケース全体についての電力および性能を実現するように決定されることがある。動作の際には、ユースケースの様々な変化、DDRのタイプおよびモデル、電力対性能の優先度の変化などにかかわらず、所定の静的なアイドルタイマ値が使用される。
【０００４】
しかしながら、より低電力のメモリ状態に入る際、アイドルタイマの所定の静的な設定値を使用すると、動的に変化する要因のため、最適とは言えない電力および/または性能を生み出すことがある。たとえば、最適なアイドルタイマ値は、DDRのタイプ、モデル、および世代、ならびに、メモリトラフィックパターン、メモリ動作周波数、メモリトラフィック量、および電力対性能の優先度など、変化する動作上の要因に応じて変わることがある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
したがって、メモリ電力状態遷移タイマを動的に調整するための改善されたシステムおよび方法が必要とされる。
【課題を解決するための手段】
【０００６】
メモリ電力状態遷移タイマを動的に調整するためのシステム、方法、およびコンピュータプログラムが開示される。方法の一実施形態は、コンピューティングデバイス内のプロセッサに結合されたメモリデバイスの使用または性能に影響を及ぼす1つまたは複数のパラメータを受領するステップを備える。1つまたは複数のメモリ電力状態遷移タイマ設定値の最適値が決定される。メモリ電力状態遷移タイマ設定値の現在値が最適値で更新される。
【０００７】
別の実施形態は、コンピュータシステムである。コンピュータシステムは、メモリデバイスとシステムオンチップ(SoC)とを備える。SoCは、プロセッサおよびメモリコントローラを備える。メモリコントローラはメモリデバイスに電気的に結合される。プロセッサは、低電力メモリ状態に入るためにメモリコントローラによって使用される、1つまたは複数のメモリ電力状態遷移タイマ設定値の最適値を決定することを行うように構成された、メモリスケジューラを実行する。
【０００８】
図において、特に明記しない限り、同様の参照番号は、様々な図を通して同様の部分を指す。「102A」または「102B」などの文字指定を有する参照番号について、文字指定は、同じ図中に存在する2つの同様な部分または要素を区別することができる。参照番号のための文字指定は、参照番号がすべての図における同じ参照番号を有するすべての部分を包含することが意図されるとき、省略されてもよい。
【図面の簡単な説明】
【０００９】
【図１】メモリ電力状態遷移タイマを動的に調整するためのシステムの一実施形態のブロック図である。
【図２】メモリ電力状態遷移タイマを動的に調整するための図1のシステムにおいて実施される方法の一実施形態を示すフローチャートである。
【図３】図1のメモリ電力状態遷移マネージャの一実施形態のデータ入力および出力を示すブロック図である。
【図４】ダイナミックランダムアクセスメモリ(DRAM)デバイスのより低電力の状態における消費電力を最適化するために動的に調整され得るアイドルタイマの、例示的な実施形態を示すタイミング図である。
【図５】最適なパワーダウンタイマ設定値およびページダウンタイマ設定値をメモリ利用率およびメモリ動作周波数に基づいて決定するためのルックアップテーブルの一実施形態を示すブロック図である。
【図６】最適なアイドルタイマ設定値を決定するための反復探索方法の一実施形態を示すグラフである。
【図７】最適なパワーダウンタイマ設定値およびページダウンタイマ設定値をユースケースタイプに基づいて決定するためのルックアップテーブルの、別の実施形態を示すブロック図である。
【図８】図1のシステムを組み込むためのポータブル通信デバイスの一実施形態のブロック図である。
【発明を実施するための形態】
【００１０】
「例示的」という語は、本明細書では、「例、事例、または例示として役立つ」ことを意味するために使用される。本明細書で「例示的」として記載されている任意の態様は、必ずしも他の態様よりも好ましいまたは有利であると解釈されるべきではない。
【００１１】
本明細書では、「アプリケーション」という用語はまた、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの実行可能なコンテンツを有するファイルを含む場合がある。さらに、本明細書において言及される「アプリケーション」は、開かれる必要がある場合がある文書、またはアクセスされる必要がある他のデータファイルなどの、本質的に実行可能でないファイルを含む場合もある。
【００１２】
「コンテンツ」という用語はまた、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの実行可能なコンテンツを有するファイルを含む場合がある。加えて、本明細書で言及する「コンテンツ」は、開封される必要があり得る文書、またはアクセスされる必要がある他のデータファイルなど、本質的に実行可能ではないファイルを含むこともある。
【００１３】
本明細書で使用する場合、「構成要素」、「データベース」、「モジュール」、「システム」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアとの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかのコンピュータ関連エンティティを指すことが意図される。たとえば、構成要素は、限定はしないが、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および/またはコンピュータであってもよい。例として、コンピューティングデバイス上で実行されるアプリケーションとコンピューティングデバイスの両方が構成要素であってもよい。1つまたは複数の構成要素は、実行のプロセスおよび/またはスレッド内に存在してもよく、構成要素は、1つのコンピュータ上に局所化されてもよく、または2つ以上のコンピュータ間に分散されてもよい。加えて、これらの構成要素は、様々なデータ構造が記憶されている様々なコンピュータ可読媒体から実行してもよい。構成要素は、たとえば、1つまたは複数のデータパケット(たとえば、信号によって、ローカルシステム内の別の構成要素、分散システム内の別の構成要素、および/または他のシステムを有するインターネットなどのネットワークを介して別の構成要素と対話する1つの構成要素からのデータ)を有する信号に従って、ローカルおよび/またはリモートプロセスによって通信してもよい。
【００１４】
本明細書では、「通信デバイス」、「ワイヤレスデバイス」、「ワイヤレス電話」、「ワイヤレス通信デバイス」、および「ワイヤレスハンドセット」は、互換的に使用される。第3世代(「3G」)ワイヤレス技術および第4世代(「4G」)の登場により、より大きい帯域幅の可用性は、より多様なワイヤレス機能を有するよりポータブルなコンピューティングデバイスを可能にした。したがって、ポータブルコンピューティングデバイスには、セルラー電話、ページャ、PDA、スマートフォン、ナビゲーションデバイス、またはワイヤレス接続もしくはワイヤレスリンクを有するハンドヘルドコンピュータが含まれる場合がある。
【００１５】
図1は、1つまたは複数のメモリデバイス104に電気的に結合されたシステムオンチップ(SoC)102を備える、システム100を示す。SoC102は、SoCバス114を介して相互接続された様々なオンチップ構成要素を備える。図1の実施形態では、SoC102は、メモリデバイス104にメモリリソースを要求する1つまたは複数のメモリクライアントを備える。メモリクライアントは、1つまたは複数の処理ユニット(たとえば、中央処理ユニット(CPU)106、グラフィックス処理ユニット(GPU)、デジタル信号プロセッサ(DSP)など)、ビデオエンコーダ、またはメモリデバイス104への読出し/書込みアクセスを要求する他のクライアントを備えてもよい。SoC102はさらに、スタティックランダムアクセスメモリ(SRAM)110や読出し専用メモリ(ROM)112などのオンチップメモリを備えてもよい。
【００１６】
システム100は、パーソナルコンピュータ、ワークステーション、サーバ、セルラー電話、スマートフォン、携帯情報端末(PDA)、ポータブルゲームコンソール、ナビゲーションデバイス、タブレットコンピュータ、スポーツウォッチ、フィットネス追跡デバイスなどのウェアラブルデバイス、などのポータブルコンピューティングデバイス(PCD: Portable Computing Device)、または他のバッテリ駆動ウェブ対応デバイスを含む、任意のコンピューティングデバイス内に実装されてもよいことが理解されるべきである。
【００１７】
SoC102上のメモリコントローラ108は、バス124を介してメモリデバイス104に電気的に結合される。メモリコントローラ108は、メモリデバイス104に出入りするデータの流れを管理する。メモリコントローラ108は、一般に、メモリデバイス104に対して読み書きするためのロジックを備える。一実施形態では、メモリデバイス104は、ダイナミックランダムアクセスメモリ(DRAM)デバイスを備え、バス124が、高性能ランダムアクセスメモリ(RAM)バスを備える。メモリコントローラ108およびDRAMデバイスは、どんな既存世代または将来世代のダブルデータレート(DDR)インターフェース(たとえばDDR1、DDR2、DDR3、DDR4など)をサポートしてもよい。
【００１８】
メモリデバイス104およびメモリコントローラ108は、2つ以上のメモリ電力状態またはモードをサポートするように構成され得る。各メモリ電力状態またはモードは、メモリコントローラ108によって、メモリ消費電力および/またはメモリ性能の異なる組合せをもたらすように選択的に制御され得る。メモリ電力状態のうちの少なくとも1つは、メモリ消費電力を節約するための比較的より低電力のメモリ状態を含む。図1にさらに示すように、CPU106によって実行されるオペレーティングシステム(O/S116)は、メモリマネージャ118を備え得る。メモリマネージャ118は、一般に、メモリデバイス104内の記憶域をメモリクライアントに割り振るためのロジックを備える。メモリマネージャ118は、メモリデバイス104に対するメモリ読出し/書込み動作をスケジューリングするためのスケジューラ構成要素120を備え得る。メモリマネージャ118はさらに、あるメモリ電力状態から別の電力状態に遷移するためにメモリデバイス104によって使用される1つまたは複数のタイマ設定値を動的に調整するためのロジックを一般に備える、メモリ電力状態遷移タイマ最適化構成要素122を備え得る。一実施形態では、メモリ電力状態遷移タイマ最適化構成要素122は、より低電力のメモリ状態に入るために使用される1つまたは複数のタイマ設定値にとって最適な電力節減値を決定することを行うように構成される。メモリ電力状態遷移タイマ最適化構成要素122は、図1に示すように、O/S116内に、またはハードウェアもしくはファームウェア内に実装され得る。
【００１９】
図2は、低電力メモリ状態における電力節減を生み出すようにメモリ電力状態遷移タイマを動的に調整するための、システム100において実施される方法200の一実施形態を示す。ブロック202において、メモリ電力状態遷移タイマ最適化構成要素122が、メモリデバイス104の使用または性能に影響を及ぼす1つまたは複数のパラメータを受領し得る。受領パラメータは、オペレーティングシステム116、メモリマネージャ118、および/またはスケジューラ120によって監視され得ることが理解されるべきである。さらに、受領パラメータは、たとえば、システム100内のメモリデバイスまたは他の構成要素のタイプに応じて変わることがある。一実施形態では、受領パラメータは、次に挙げる、メモリトラフィックパターン、メモリ動作周波数、メモリトラフィック量、メモリ利用率、電力および/または性能の優先度、システムユースケース、ならびに実行中のアプリケーションのタイプ、のうちの1つまたは複数に関係する情報を含み得る。受領パラメータは、メモリデバイス104のタイプ、モデル、および/またはベンダの特定もし得る。
【００２０】
ブロック204において、メモリ電力状態遷移タイマ最適化構成要素122が、1つまたは複数の受領パラメータに基づいて、1つまたは複数のメモリ電力状態遷移タイマ設定値の現在値が更新されるべきかどうかを判定し得る。メモリ電力状態遷移タイマ最適化構成要素122は、受領パラメータの動的変化を監視および検出して、メモリ電力状態遷移タイマの現在値が、低電力メモリ状態における電力節約にとって最適とは言えないかどうかを判定し得る。メモリ電力状態遷移タイマは、メモリデバイス104のタイプ、世代、モデルなどに応じて変わることがあることが理解されるべきである。たとえば、メモリデバイス104がDRAMを備える実施形態では、タイマは、たとえばパワーダウンタイマ、ページクローズタイマ、またはセルフリフレッシュタイマなどのDDRアイドルタイマを備え得る。
【００２１】
メモリ電力状態遷移タイマのタイプにかかわらず、現在値がもはや最適な電力節減になっていない場合、受領パラメータに基づいて新たな値が決定され得る。新たな値は、たとえば、ルックアップテーブルまたは他の最適化ロジックによって計算または決定され得る。ブロック206において、メモリ電力状態遷移タイマ最適化構成要素122が、メモリ電力状態遷移タイマの値を、受領パラメータに基づく、または受領パラメータのうちのより多くのものである、最適値で更新し得る。最適値は、低電力メモリ状態に入る際に使用するために、メモリコントローラ108に提供され、その中に記憶され得る(ブロック208)。
【００２２】
図3は、メモリ電力状態遷移タイマ最適化構成要素122の一実施形態についての例示的なデータ入力および出力を示すブロック図である。本実施形態では、メモリ電力状態遷移タイマ最適化構成要素122は、低電力メモリ状態に入るためにDRAMデバイスによって使用されるDDRアイドルタイマ設定値312の最適値を決定することを行うように構成される。DRAMコントローラ304が、DDRアイドルタイマ設定値312の現在値を、1つまたは複数のレジスタ310内に記憶させ得る。システム動作の間、メモリ電力状態遷移タイマ最適化構成要素122は、矢印306のところに示すように、様々なデータ入力302を監視および/または受領し得る。データ入力302は、たとえばメモリトラフィックパターン、メモリ動作周波数、メモリトラフィック量または利用率、およびメモリデバイスのタイプ、ベンダ、またはモデルなど、メモリの使用に関係する様々な情報を含み得る。データ入力302は、メモリ電力および/もしくは性能の優先度もしくはモード、実行中のアプリケーション、残りのバッテリ寿命、またはDDRアイドルタイマ設定値の最適値に影響を及ぼすことのある他の任意の状況もしくはパラメータに関係する情報も含み得る。
【００２３】
図4は、メモリ電力状態遷移タイマ最適化構成要素122によって動的に調整され得る様々な例示的なDDRアイドルタイマの、動作を示すタイミング図400である。タイミング図400は、パワーダウンアイドルタイマ402、ページクローズアイドルタイマ404、およびセルフリフレッシュアイドルタイマ406の動作を示す。アイドルタイマ402、404、および406の期間は、レジスタ310内に記憶された対応するアイドルタイマ設定値312によって制御され得る。図4の例では、パワーダウンアイドルタイマ402は、64DDRクロックサイクルという現在値を有する。ページクローズアイドルタイマ404は、128DDRクロックサイクルという現在値を有する。セルフリフレッシュアイドルタイマ406は、水晶発振器の50サイクルという現在値を有する。図3を再度参照すると、メモリ電力状態遷移タイマ最適化構成要素122が、タイマ402、404、および406の最適値をデータ入力302に基づいて決定し得る。
【００２４】
最適値は様々な方途で決定され得ることが理解されるべきである。一実施形態では、メモリ電力状態遷移タイマ最適化構成要素122は、ルックアップテーブルにアクセスして、データ入力302のうちの1つまたは複数に対応するアイドルタイマ設定値(すなわちデータ出力)を決定する。図5は、最適なパワーダウンタイマ設定値およびページダウンタイマ設定値をメモリ利用率およびメモリ動作周波数に基づいて決定するためのルックアップテーブル500を示す。列502は、メモリ利用率506とDDR周波数508との組合せの値を示す。列502内の入力値の各組合せについて、テーブル500は、列504内に対応する出力値をリストしている。パワーダウンタイマの対応する出力値は、列510内に特定され、ページクローズタイマの対応する出力値は、列512内に特定されている。たとえば、テーブル500内の最上行を参照すると、メモリ利用率が30%未満であり、かつDDR周波数が200MHzである場合、ルックアップテーブル500は、パワーダウンタイマおよびページクローズタイマの値がそれぞれ、4および64DDRサイクルに更新されるべきであると決定する。入力502および出力504は、シミュレーションしたデータに基づいてよく、デフォルト値としてレジスタ310内にプログラムされてよいことが理解されるべきである。
【００２５】
図7は、別の実施形態である、最適なパワーダウンタイマ設定値およびページクローズタイマ設定値をユースケースタイプに基づいて決定するためのルックアップテーブル700を示す。列706内にリストされたユースケースタイプが、テーブル入力を定義する。各ユースケースタイプについて、テーブル700は、列704内に対応する出力値をリストしている。パワーダウンタイマの対応する出力値は、列708内に特定され、ページクローズタイマの対応する出力値は、列710内に特定されている。図7の例では、ユースケースタイプは、次に挙げる、広帯域符号分割多元接続(WCDMA(登録商標))もしくはグローバルシステムフォーモバイルコミュニケーション(GSM(登録商標))を使用した音声通話、ロングタームエボリューション(LTE)経由の音声通話、LTEデータダウンロード、グラフィックスベンチマークアプリケーション、DDRベンチマークアプリケーション、または他の任意のユースケース、のうちの1つまたは複数を含み得る。入力702および出力704も、シミュレーションしたデータに基づいてよく、デフォルト値としてレジスタ310内にプログラムされてよいことが理解されるべきである。他の実施形態では、メモリ電力状態遷移タイマ最適化構成要素122が、DDRアイドルタイマ設定値の最適値を平均アイドルタイマ期間に基づいて計算することを行うように構成され得る。
【００２６】
図6は、最適なアイドルタイマ設定値を、反復探索方法を使用して決定するための、別の実施形態を示すグラフ600である。x軸はページクローズタイマの値を表し、y軸はパワーダウンタイマの値を表す。システム100の動作の間、探索アルゴリズムが、より低い平均メモリ電力を生み出す最適なx値およびy値を求めて反復的に探索し得る。図6の例では、探索方法は、X0のところの初期値組合せから開始し得る。探索アルゴリズムは、隣接値組合せについて、電力および/または性能を推定し得る。図6に示すように、パワーダウンタイマとページクローズタイマの両方について値の大小のある隣接値が探索されて、ある隣接値がより良好な電力および/または性能を生み出すかどうかが判定され得る。探索方法は、可能な最も低い平均メモリ電力を生み出す最適値組合せが決定されるまで、後続の値組合せX1、X2、X3などを反復的に特定するように構成され得る。
【００２７】
上述したように、システム100は、任意の所望のコンピューティングデバイスに組み込まれてもよい。図8は、例示的なポータブルコンピューティングデバイス(PCD)800に組み込まれたシステム100を示す。システム100の特定の構成要素は、SoC322に含まれ、他の構成要素(たとえば、DRAM104)は、SoC322に結合された外部構成要素であることが容易に理解されるであろう。SoC322は、マルチコアCPU802を含んでもよい。マルチコアCPU802は、第0のコア810と、第1のコア812と、第Nのコア814とを含んでもよい。コアのうちの1つは、たとえば、グラフィックス処理ユニット(GPU)を備えてもよく、他のコアのうちの1つまたは複数は、CPUを備える。
【００２８】
ディスプレイコントローラ328およびタッチスクリーンコントローラ330がCPU802に結合されてもよい。次に、オンチップシステム322の外部のタッチスクリーンディスプレイ806は、ディスプレイコントローラ328およびタッチスクリーンコントローラ330に結合されてもよい。
【００２９】
図8は、ビデオエンコーダ334、たとえば、位相反転線(PAL)エンコーダ、順次式カラーメモリ(SECAM)エンコーダ、または全米テレビジョン放送方式標準化委員会(NTSC)エンコーダがマルチコアCPU802に結合されることをさらに示す。さらに、ビデオ増幅器336がビデオエンコーダ334およびタッチスクリーンディスプレイ806に結合される。また、ビデオポート338がビデオ増幅器336に結合される。図8に示すように、ユニバーサルシリアルバス(USB)コントローラ340が、マルチコアCPU802に結合される。また、USBポート342がUSBコントローラ340に結合される。メモリ104が(図1に示すように)SoC322に結合されてもよい。
【００３０】
さらに、図8に示すように、デジタルカメラ348がマルチコアCPU802に結合されてもよい。例示的な態様では、デジタルカメラ348は、電荷結合デバイス(CCD)カメラまたは相補型金属酸化膜半導体(CMOS)カメラである。
【００３１】
図8にさらに示すように、ステレオオーディオコーダ-デコーダ(CODEC)350がマルチコアCPU802に結合されてもよい。さらに、オーディオ増幅器352がステレオオーディオコーデック350に結合されてもよい。例示的な態様では、第1のステレオスピーカ354と第2のステレオスピーカ356とがオーディオ増幅器352に結合される。図8は、マイクロフォン増幅器358がさらにステレオオーディオコーデック350に結合されてもよいことを示す。加えて、マイクロフォン360がマイクロフォン増幅器358に結合されてもよい。特定の態様では、周波数変調(FM)無線チューナ362が、ステレオオーディオコーデック350に結合されてもよい。また、FMアンテナ364が、FM無線チューナ362に結合される。さらに、ステレオヘッドフォン366がステレオオーディオコーデック350に結合されてもよい。
【００３２】
図8は、無線周波数(RF)トランシーバ368がマルチコアCPU802に結合されてもよいことをさらに示す。RFスイッチ370がRFトランシーバ368およびRFアンテナ372に結合されてもよい。キーパッド204がマルチコアCPU802に結合されてもよい。また、マイクロフォン376を有するモノラルヘッドセットがマルチコアCPU802に結合されてもよい。さらに、バイブレータデバイス378がマルチコアCPU802に結合されてもよい。
【００３３】
図8はまた、電源380がオンチップシステム322に結合されてもよいことを示す。特定の態様では、電源380は電力を必要とするPCD800の様々なコンポーネントに電力を供給する直流(DC)電源である。さらに、特定の態様では、電源は、充電式DCバッテリ、または交流(AC)電源に接続されたAC-DC変換器から得られるDC電源である。
【００３４】
図8は、PCD800がまたデータネットワーク、たとえば、ローカルエリアネットワーク、パーソナルエリアネットワーク、または任意の他のネットワークにアクセスするために使用され得るネットワークカード388を含んでもよいことをさらに示す。ネットワークカード388は、Bluetooth(登録商標)ネットワークカード、WiFiネットワークカード、パーソナルエリアネットワーク(PAN)カード、パーソナルエリアネットワーク超低電力技術(PeAUNT: Personal Area Network Ultra-Low-Power Technology)ネットワークカード、テレビジョン/ケーブル/衛星チューナ、または当該技術分野で周知の任意の他のネットワークカードであってもよい。さらに、ネットワークカード388は、チップに組み込まれてもよく、すなわち、ネットワークカード388は、チップ内のフルソリューションであってもよく、別個のネットワークカード388でなくてもよい。
【００３５】
図8に示すように、タッチスクリーンディスプレイ806、ビデオポート338、USBポート342、カメラ348、第1のステレオスピーカ354、第2のステレオスピーカ356、マイクロフォン360、FMアンテナ364、ステレオヘッドフォン366、RFスイッチ370、RFアンテナ372、キーパッド374、モノラルヘッドセット376、バイブレータ378、電源380は、オンチップシステム322の外部にあってもよい。
【００３６】
本明細書で説明する1つまたは複数の方法ステップは、上記で説明したモジュールなどのコンピュータプログラム命令としてメモリ内に記憶されてもよいことが理解されるべきである。これらの命令は、本明細書で説明した方法を実行するために、対応するモジュールと組み合わせてまたは協働して、任意の適切なプロセッサによって実行される場合がある。
【００３７】
本明細書で説明するプロセスまたはプロセスフローにおける特定のステップは、説明したように本発明が機能するために他のステップよりも自然に先行する。しかしながら、そのような順序またはシーケンスが本発明の機能を変えない場合には、本発明は、説明されたステップの順序に限定されない。すなわち、本発明の範囲および趣旨から逸脱することなく、いくつかのステップは、他のステップの前に実行され、後に実行され、または他のステップと並行して(実質的に同時に)実行される場合があることを認識されたい。場合によっては、本発明から逸脱することなく、いくつかのステップが省略される場合があるか、または実行されない場合がある。さらに、「その後(thereafter)」、「次いで(then)」、「次に(next)」などの語は、ステップの順序を限定することを意図していない。これらの語は単に、例示的な方法の説明を通して読者を導くために使用される。
【００３８】
加えて、当業者は、たとえば、本明細書におけるフローチャートおよび関連する説明に基づいて、容易に、開示された発明を実現するために、コンピュータコードを書くことができ、または適切なハードウェアおよび/もしくは回路を識別することができる。
【００３９】
したがって、プログラムコード命令の特定のセットまたは詳細なハードウェアデバイスの開示は、本発明を製作し使用する方法の十分な理解のために必要であるとは考えられない。特許請求されるコンピュータ実施プロセスの発明性のある機能は、上記の説明において、かつ様々なプロセスフローを示す場合がある図面とともに、より詳細に説明される。
【００４０】
1つまたは複数の例示的な態様では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装されてもよい。ソフトウェアにおいて実装される場合、機能は、コンピュータ可読媒体上の1つまたは複数の命令またはコードとして記憶または送信されてもよい。コンピュータ可読媒体は、コンピュータ記憶媒体と、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であってもよい。例として、限定はしないが、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、NANDフラッシュ、NORフラッシュ、M-RAM、P-RAM、R-RAM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形態における所望のプログラムコードを担持または記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を備えてもよい。
【００４１】
ディスク(disk)およびディスク(disc)は、本明細書で使用される場合、コンパクトディスク(「CD」)、レーザディスク(登録商標)、光ディスク、デジタル多用途ディスク(「DVD」)、フロッピー(登録商標)ディスク、およびBlu-ray(登録商標)ディスクを含み、ディスク(disk)は、通常データを磁気的に再生し、ディスク(disc)は、レーザを用いてデータを光学的に再生する。上記の組合せもまた、コンピュータ可読媒体の範囲内に含まれるべきである。
【００４２】
代替実施形態は、本発明の趣旨および範囲から逸脱することなく本発明が属する技術分野の当業者には明らかになるであろう。したがって、選択された態様が図示され詳細に説明されてきたが、以下の特許請求の範囲によって定義されるように、本発明の趣旨および範囲から逸脱することなく、各態様において様々な置換および改変が行われてよいことが理解されよう。
【符号の説明】
【００４３】
100  システム
102  システムオンチップ(SoC)
104  メモリデバイス
106  中央処理ユニット(CPU)
108  メモリコントローラ
110  スタティックランダムアクセスメモリ(SRAM)
112  読出し専用メモリ(ROM)
114  SoCバス
116  オペレーティングシステム、O/S
118  メモリマネージャ
120  スケジューラ構成要素、スケジューラ
122  メモリ電力状態遷移タイマ最適化構成要素
124  バス
200  方法
302  データ入力
304  DRAMコントローラ
310  レジスタ
312  DDRアイドルタイマ設定値
400  タイミング図
402  パワーダウンアイドルタイマ
404  ページクローズアイドルタイマ
406  セルフリフレッシュアイドルタイマ
500  ルックアップテーブル
502  列、入力
504  列、出力
506  メモリ利用率
508  DDR周波数
510  列
512  列
600  グラフ
700  ルックアップテーブル
702  入力
704  列、出力
706  列
708  列
710  列
800  ポータブルコンピューティングデバイス(PCD)
802  マルチコアCPU
806  タッチスクリーンディスプレイ
810  第0のコア
812  第1のコア
814  第Nのコア
【図１】
2018527676.tif 000003
【図２】
2018527676.tif 000004
【図３】
2018527676.tif 000005
【図４】
2018527676.tif 000006
【図５】
2018527676.tif 000007
【図６】
2018527676.tif 000008
【図７】
2018527676.tif 000009
【図８】
2018527676.tif 000010
【手続補正書】
【提出日】平成30年3月6日(2018.3.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メモリ電力状態遷移タイマを動的に調整するための方法であって、前記方法が、
コンピューティングデバイス内のプロセッサに結合されたメモリデバイスの使用に対応する1つまたは複数のパラメータを受領するステップであって、前記パラメータが、メモリ利用率、ならびにメモリトラフィックパターン、メモリ動作周波数、メモリトラフィック量、および電力/性能モードのうちの1つまたは複数を含む、ステップと、
前記1つまたは複数のパラメータに基づいて、前記メモリデバイスの1つまたは複数のメモリ電力状態遷移タイマ設定値の最適値を決定するステップと、
前記メモリデバイスの前記メモリ電力状態遷移タイマ設定値の現在値を前記最適値で更新するステップと
を備える、方法。
【請求項２】
前記メモリ電力状態遷移タイマ設定値が、より低電力のメモリ状態に入るためのアイドルタイマ設定値を備える、請求項1に記載の方法。
【請求項３】
前記メモリデバイスの使用に影響を及ぼす1つまたは複数のパラメータを前記受領するステップが、前記1つまたは複数のパラメータの変化を監視および検出するステップを備える、請求項1に記載の方法。
【請求項４】
前記1つまたは複数のメモリ電力状態遷移タイマ設定値の前記最適値を前記決定するステップが、ルックアップテーブルにアクセスして、前記1つまたは複数のパラメータに基づいて、前記最適値を決定するステップを備える、請求項1に記載の方法。
【請求項５】
前記1つまたは複数のメモリ電力状態遷移タイマ設定値の前記最適値を前記決定するステップが、前記最適値を平均アイドルタイマ期間に基づいて計算するステップを備える、請求項1に記載の方法。
【請求項６】
前記メモリデバイスが、ダイナミックランダムアクセスメモリ(DRAM)デバイスを備え、前記メモリ電力状態遷移タイマ設定値が、前記DRAMデバイスを低電力モードに遷移させるためのパワーダウンタイマ設定値およびページダウンタイマ設定値を備える、請求項1に記載の方法。
【請求項７】
前記1つまたは複数のメモリ電力状態遷移タイマ設定値の前記最適値を前記決定するステップが、複数の設定値の反復探索を備える、請求項1に記載の方法。
【請求項８】
メモリ電力状態遷移タイマを動的に調整するためのシステムであって、前記システムが、
コンピューティングデバイス内のプロセッサに結合されたメモリデバイスの使用に対応する1つまたは複数のパラメータを受領するための手段であって、前記パラメータが、メモリ利用率、ならびにメモリトラフィックパターン、メモリ動作周波数、メモリトラフィック量、および電力/性能モードのうちの1つまたは複数を含む、手段と、
前記1つまたは複数のパラメータに基づいて、前記メモリデバイスの1つまたは複数のメモリ電力状態遷移タイマ設定値の最適値を決定するための手段と、
前記メモリデバイスの前記メモリ電力状態遷移タイマ設定値の現在値を前記最適値で更新するための手段と
を備える、システム。
【請求項９】
前記メモリ電力状態遷移タイマ設定値が、より低電力のメモリ状態に入るためのアイドルタイマ設定値を備える、請求項8に記載のシステム。
【請求項１０】
前記メモリデバイスの使用に影響を及ぼす1つまたは複数のパラメータを受領するための前記手段が、前記1つまたは複数のパラメータの変化を監視および検出するための手段を備える、請求項8に記載のシステム。
【請求項１１】
前記1つまたは複数のメモリ電力状態遷移タイマ設定値の前記最適値を決定するための前記手段が、ルックアップテーブルにアクセスして、前記1つまたは複数のパラメータに基づいて、前記最適値を決定するための手段を備える、請求項8に記載のシステム。
【請求項１２】
前記1つまたは複数のメモリ電力状態遷移タイマ設定値の前記最適値を決定するための前記手段が、前記最適値を平均アイドルタイマ期間に基づいて計算するための手段を備える、請求項8に記載のシステム。
【請求項１３】
前記メモリデバイスが、ダイナミックランダムアクセスメモリ(DRAM)デバイスを備え、前記メモリ電力状態遷移タイマ設定値が、前記DRAMデバイスを低電力モードに遷移させるためのパワーダウンタイム設定値およびページダウンタイマ設定値を備える、請求項8に記載のシステム。
【請求項１４】
前記1つまたは複数のメモリ電力状態遷移タイマ設定値の前記最適値を決定するための前記手段が、複数の設定値を反復探索するための手段を備える、請求項8に記載のシステム。
【請求項１５】
メモリ電力状態遷移タイマを動的に調整するための、非一時的コンピュータ可読媒体内に具体化され、プロセッサによって実行可能なコンピュータプログラムであって、前記コンピュータプログラムが、
コンピューティングデバイス内のプロセッサに結合されたメモリデバイスの使用に対応する1つまたは複数のパラメータを受領することであって、前記パラメータが、メモリ利用率、ならびにメモリトラフィックパターン、メモリ動作周波数、メモリトラフィック量、および電力/性能モードのうちの1つまたは複数を含む、ことと、
前記1つまたは複数のパラメータに基づいて、前記メモリデバイスの1つまたは複数のメモリ電力状態遷移タイマ設定値の最適値を決定することと、
前記メモリデバイスの前記メモリ電力状態遷移タイマ設定値の現在値を前記最適値で更新することと
を行うように構成されたロジックを備える、コンピュータプログラム。
【請求項１６】
前記メモリ電力状態遷移タイマ設定値が、より低電力のメモリ状態に入るためのアイドルタイマ設定値を備える、請求項15に記載のコンピュータプログラム。
【請求項１７】
前記1つまたは複数のメモリ電力状態遷移タイマ設定値の前記最適値を決定することを行うように構成された前記ロジックが、ルックアップテーブルにアクセスして、前記1つまたは複数のパラメータに基づいて、前記最適値を決定することを行うように構成されたロジックを備える、請求項15に記載のコンピュータプログラム。
【請求項１８】
前記1つまたは複数のメモリ電力状態遷移タイマ設定値の前記最適値を決定することを行うように構成された前記ロジックが、前記最適値を平均アイドルタイマ期間に基づいて計算することを行うように構成されたロジックを備える、請求項15に記載のコンピュータプログラム。
【請求項１９】
前記メモリデバイスが、ダイナミックランダムアクセスメモリ(DRAM)デバイスを備え、前記メモリ電力状態遷移タイマ設定値が、前記DRAMデバイスを低電力モードに遷移させるためのパワーダウンタイム設定値およびページダウンタイマ設定値を備える、請求項15に記載のコンピュータプログラム。
【請求項２０】
前記1つまたは複数のメモリ電力状態遷移タイマ設定値の前記最適値を決定することを行うように構成された前記ロジックが、複数の設定値の反復探索を備える、請求項15に記載のコンピュータプログラム。
【請求項２１】
メモリデバイスと、
プロセッサおよびメモリコントローラを備えるシステムオンチップ(SoC)であって、前記メモリコントローラが前記メモリデバイスに電気的に結合される、システムオンチップ(SoC)と、
前記プロセッサによって実行されるメモリスケジューラであって、前記メモリスケジューラが、
前記メモリデバイスの使用に対応する1つまたは複数のパラメータを監視することであって、前記パラメータが、メモリ利用率、ならびにメモリトラフィックパターン、メモリ動作周波数、メモリトラフィック量、および電力/性能モードのうちの1つまたは複数を含む、ことと、
前記監視されたパラメータに基づいて、低電力メモリ状態に入るために前記メモリコントローラによって使用される、1つまたは複数のメモリ電力状態遷移タイマ設定値の最適値を決定することと
を行うように構成される、メモリスケジューラと
を備える、コンピュータシステム。
【請求項２２】
前記メモリ電力状態遷移タイマ設定値が、アイドルタイマ設定値を備える、請求項21に記載のコンピュータシステム。
【請求項２３】
前記1つまたは複数のメモリ電力状態遷移タイマ設定値の前記最適値が、ルックアップテーブルにアクセスすることによって決定される、請求項24に記載のコンピュータシステム。
【請求項２４】
前記最適値が平均アイドルタイマ期間に基づいて計算される、請求項21に記載のコンピュータシステム。
【請求項２５】
前記メモリデバイスが、ダイナミックランダムアクセスメモリ(DRAM)デバイスを備え、前記メモリ電力状態遷移タイマ設定値が、前記低電力メモリ状態に入るためのパワーダウンタイム設定値およびページダウンタイマ設定値を備える、請求項21に記載のコンピュータシステム。
【国際調査報告】
2018527676.tif 000011
2018527676.tif 000012
2018527676.tif 000013