(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5736320
(24)【登録日】2015年4月24日
(45)【発行日】2015年6月17日
(54)【発明の名称】複製された書き込み要求を伴うコヒーレントメモリコピーのための方法及び装置
(51)【国際特許分類】
G06F 12/10 20060101AFI20150528BHJP
G06F 12/02 20060101ALI20150528BHJP
G06F 12/00 20060101ALI20150528BHJP
G06F 12/06 20060101ALI20150528BHJP
【FI】
G06F12/10 501C
G06F12/02 580A
G06F12/00 550E
G06F12/06 515L
【請求項の数】18
【全頁数】18
(21)【出願番号】特願2011-541047(P2011-541047)
(86)(22)【出願日】2009年12月16日
(65)【公表番号】特表2012-512468(P2012-512468A)
(43)【公表日】2012年5月31日
(86)【国際出願番号】CA2009001855
(87)【国際公開番号】WO2010069071
(87)【国際公開日】20100624
【審査請求日】2012年12月11日
(31)【優先権主張番号】12/340,120
(32)【優先日】2008年12月19日
(33)【優先権主張国】US
【前置審査】
(73)【特許権者】
【識別番号】508301087
【氏名又は名称】エーティーアイ・テクノロジーズ・ユーエルシー
【氏名又は名称原語表記】ATI TECHNOLOGIES ULC
(74)【代理人】
【識別番号】100108833
【弁理士】
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【弁理士】
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【弁理士】
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】セラグ エム.ゲイデルラブ
【審査官】
滝谷 亮一
(56)【参考文献】
【文献】
米国特許出願公開第2008/0313413(US,A1)
【文献】
米国特許第07100013(US,B1)
【文献】
特開2007−172609(JP,A)
【文献】
特開2004−272448(JP,A)
【文献】
特開2003−263280(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/10
G06F 12/00
G06F 12/02
G06F 12/06
(57)【特許請求の範囲】
【請求項1】
メモリ内容を再配分するための方法であって、
外部メモリからデータを内部メモリへコピーして、物理アドレスを含んでいた前記外部メモリ内にある外部翻訳ルックアサイドバッファ(TLB)からの情報の一部又は修正された一部を内部翻訳ルックアサイドバッファ(TLB)に記憶することによって前記内部TLBを作成することと、
前記外部メモリ領域への書き込み要求を複製して複製された書き込み要求を作成することと、
前記複製された書き込み要求を実行して前記外部メモリ領域から内容を前記内部メモリ領域へコピーすることと、
前記内部メモリ領域に対するアドレス翻訳のために前記内部TLBのみを用いることと、
前記外部メモリへのアクセスを停止することと、
前記外部メモリを低電力モードに置くことによって前記外部メモリの電力消費を低減することとを備えた方法。
【請求項2】
前記外部メモリを低電力モードに置くことは、前記外部メモリを自己リフレッシュモードに置くこと又は前記ソースメモリから電力を除去することを備えている請求項1の方法。
【請求項3】
どのメモリページが他より頻繁にプロセッサによってアクセスされているかを決定することと、
前記より頻繁に用いられるメモリページを前記内部メモリ内にコピーすることと、
前記外部TLBを検索するのに先立ち前記内部TLBを検索してアドレス翻訳を決定することとを備えた請求項1の方法。
【請求項4】
前記複製された書き込み要求を作成することに基き前記書き込み要求と同じアドレスに対応している前記外部メモリに対する係属中読み出し要求があるかどうかを決定することと、
前記係属中読み出し要求がある場合にエントリに対する破棄フラグを有効に設定することとを備えた請求項1の方法。
【請求項5】
当該複製書き込みを即時的に実行することを備えた請求項4の方法。
【請求項6】
当該複製書き込みからのデータを係属中データキュー内へ挿入することを備えた請求項4の方法。
【請求項7】
コピーすることは、(a)準備完了フラグが有効であり且つ破棄フラグが無効であり且つ前記内部メモリ領域へ書き込んでいる場合、又は(b)前記準備完了フラグが有効であり且つ読み出し破棄フラグが有効であり且つ当該複製書き込みの内容が係属中データキュー内に既にあった場合のいずれかの場合に前記係属中データキューからエントリを読み出すことを備えている請求項1の方法。
【請求項8】
メモリ内容を再配分するための方法であって、
外部ソースメモリ領域への連続的な読み出し及び書き込みアクセスを提供すると共に前記外部ソースメモリ領域から内部移動先メモリ領域へデータをコピーすることと、
物理アドレスを含んでいた前記外部ソースメモリ内にある全体的な翻訳ルックアサイドバッファ(TLB)情報の一部又は修正された一部を内部翻訳ルックアサイドバッファ(TLB)に記憶することによって前記内部TLBを作成することと、
前記内部TLBを作成した後、前記内部移動先メモリ領域へ内容をコピーすることに応答して前記外部メモリ領域を含む外部メモリの電力を低減することとを備え、
前記データをコピーすることは、
前記外部ソースメモリ領域に対するメモリ書き込みをもたらす現在のアプリケーションを実行し続けることと、
前記ソースメモリ領域に対する当該書き込み要求を複製して複製された書き込み要求を作成することと、
前記複製された書き込み要求を実行して前記ソースメモリ領域からの内容が前記移動先メモリ領域の内容と同一になるのを確実にすることと、によってなされる方法。
【請求項9】
前記内部翻訳ルックアサイドバッファ(TLB)を作成することは、物理アドレスの一部をハードウエア検索ツリー又はハッシュテーブルの少なくとも一方として記憶することを備えている請求項8の方法。
【請求項10】
メモリ内容を再配分するための方法であって、
外部メモリからチップの内部メモリへ動作を移すことと、
前記外部メモリの電力を低減するのに先立ち、物理アドレスを含んでいた前記外部メモリ内にある全体的な翻訳ルックアサイドバッファ(TLB)内の情報の一部又は修正された一部を内部翻訳ルックアサイドバッファ(TLB)に記憶することによって前記内部TLBを作成することと、
前記外部メモリの電力を低減することとを備えた方法。
【請求項11】
前記外部メモリの電力を低減するのに先立ち前記内部翻訳ルックアサイドバッファ(TLB)を作成することは、物理アドレスの一部又は修正された一部をハードウエア検索ツリー又はハッシュテーブルの少なくとも一方として記憶することを備えている請求項10の方法。
【請求項12】
ソースメモリ領域から移動先メモリ領域へデータをコピーするように動作し且つソースメモリ領域に入ってくる書き込み要求を複製して複製された書き込み要求を作成すると共に前記複製された書き込み要求を実行して前記ソースメモリ領域から前記移動先メモリ領域への内容を同期させるように動作するコヒーレントメモリコピー論理と、
物理アドレスを含んでいた当該外部ソースメモリ内にある外部翻訳ルックアサイドバッファ(TLB)からの情報の一部又は修正された一部を記憶する内部翻訳ルックアサイドバッファ(TLB)と、
前記内部TLBを用いて、当該内部メモリ内に記憶されるページのみに対して物理アドレス及び仮想アドレスを翻訳するメモリインタフェース論理とを備えた集積回路(IC)。
【請求項13】
内部メモリを備えている集積回路と、
前記集積回路に対して外部にある外部メモリと、
前記外部メモリから前記内部メモリへ動作を移すように動作し、且つ前記外部メモリの電力を低減するのに先立ち、物理アドレスを含む前記外部メモリ内にある全体的な翻訳ルックアサイドバッファ(TLB)内の情報の一部又は修正された一部を内部翻訳ルックアサイドバッファ(TLB)に記憶することによって前記内部TLBを作成するように動作する論理と、を備え、
前記外部メモリの電力を低減するように動作するデバイス。
【請求項14】
前記論理はコヒーレントメモリコピー論理を備えており、前記コヒーレントメモリコピー論理は、当該移動先メモリ領域へコピーされつつあるソースメモリに対するメモリ書き込み要求を傍受するように動作する入力要求ルータ論理と、前記傍受されたメモリ書き込み要求のアドレスを係属中データキュー内のエントリと比較してコピーコヒーレンシを促進するように動作するコピー書き込み論理とを備えている請求項13のデバイス。
【請求項15】
前記係属中データキューは、当該ソースメモリ領域からコピーされるべきデータと少なくとも前記係属中データキュー内のエントリが当該移動先メモリへコピーされる準備ができていることを表すデータ及びエントリが前記移動先メモリ領域へ既にコピーされたことを表すデータとを一時的に記憶する請求項14のデバイス。
【請求項16】
前記コピー書き込み論理は、複製された書き込み要求を作成することに基き前記書き込み要求と同じアドレスに対応している前記ソースメモリに対する係属中読み出し要求があるかどうかを決定するように動作し、且つ
前記係属中読み出し要求がある場合にエントリに対する破棄フラグを有効に設定するように動作する請求項14のデバイス。
【請求項17】
実行可能な命令を備えたコンピュータ可読媒体であって、
前記実行可能な命令は、実行されるときに、集積回路設計システムに、
外部メモリからデータを内部メモリへコピーして、物理アドレスを含んでいた前記外部メモリ内にある外部翻訳ルックアサイドバッファ(TLB)からの情報の一部又は修正された一部を内部翻訳ルックアサイドバッファ(TLB)に記憶することによって前記内部TLBを作成し、
前記外部メモリ領域への書き込み要求を複製して複製された書き込み要求を作成し、
前記複製された書き込み要求を実行して前記外部メモリ領域から内容を前記内部メモリ領域へコピーし、
前記内部メモリ領域に対するアドレス翻訳のために前記内部TLBのみを用い、
前記外部メモリへのアクセスを停止し、
前記外部メモリを低電力モードに置くことによって前記外部メモリの電力消費を低減することによって、メモリ内容を再配分するように動作する集積回路を作り出させるコンピュータ可読媒体。
【請求項18】
前記実行可能な命令はハードウエア記述言語命令を代表する請求項17のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概してソースメモリから移動先メモリへメモリ内容を再配分するための方法に関し、更に特定的には集積回路(例えばチップ)の外部にある外部メモリとチップ上に配置される内部メモリとの間でメモリ内容を再配分するための方法及び装置に関する。
【背景技術】
【0002】
携帯型デバイス、例えば多機能携帯電話機(smart phones)、マルチメディアプレーヤ、デジタルオーディオプレーヤ及び他の携帯型デバイスは、改善されたバッテリ寿命を必要としている。長いバッテリ寿命のためには、携帯型チップ(携帯型デバイス内に配置される集積回路)の低電力動作が必須である。これらのチップが例えばオーディオ再生のようなアプリケーションを起動する場合、それらは、内部チップメモリ構造内でアプリケーションに対してメモリスペースを割り当てることを試みる。内部メモリ構造が既に他のアプリケーションによって使用されている場合には、チップは、チップの外部にある新たなアプリケーションメモリ構造に対してメモリを割り当てる。しかし、外部メモリを使用することは、携帯型デバイスの電力消費を増やし、バッテリ寿命を短くする。
【0003】
チップ上の内部メモリが空いた場合、最新の携帯型デバイスは、メモリページのソフトウエアベースのマイグレーション(migration)の複雑さ又は信頼性のなさに起因して、典型的にはアプリケーションを外部メモリから内部メモリへ移動させることはできない。従って、内部メモリ構造が使用可能になったとしても、デバイスは典型的には外部メモリを使用し続ける。このことは、電力の不必要な消費をもたらし得る。
【0004】
外部メモリの使用は、追加的な電力を要するであろう外部通信ピン(pins)を必要とする。携帯型デバイスが低電力モードに入り且つ実行中のアプリケーションが内部メモリ内に存在し得る場合、必要な動作は少なくなるが、アプリケーションは通常は外部メモリ内に存在する。他のシステムは、例えば、実行中の全てのアプリケーションが外部メモリから内部メモリへ移動することを可能にし、あるいは幾つかの最小数のアプリケーションが外部メモリから実行されることを可能にしつつ最大数のアプリケーションが移動させられる。しかし、これらは典型的にはソフトウエア同期及び転送動作を用いる。
【0005】
また、アプリケーションが移動させられる場合、オペレーティングシステムはアプリケーションを停止し、そしてデータを外部メモリから内部メモリへ移動させる。しかし、アプリケーションが停止されるので、ユーザに対する許容し得ないサービスの中断が生じる。
【0006】
外部メモリ及び内部メモリのようなソースメモリ及び移動先メモリ(destination memory)の間でアプリケーションを移動させるための1つの既知の試みられている解決法は、ソフトウエアベースである。それらは典型的には複雑なソフトウエア同期技術を必要としている。ソフトウエアベースの転送動作は、アプリケーションを転送するプロセスの間にアプリケーションを完全に又は部分的に利用できなくする。この中断は、どんなに短い期間であろうとも、オーディオ及びビデオ再生のようなマルチメディアアプリケーションにとっては許容することができないであろう。
【0007】
外部メモリから内部メモリへ情報を移動させるための既知のハードウエア技術は、例えば「メモリコピーエンジン」を含むであろうし、あるいはソースメモリから移動先メモリへデータをコピーする直接メモリアクセスコピーエンジン(DMAエンジン)が知られている。そのようなコピーエンジンに伴う問題は、移動先メモリへ既にコピーされたソースメモリの特定のロケーションに対するいかなる更新も移動先メモリ内に反映されないであろうことである。従って、メモリコヒーレンスは強制されない。
【発明の概要】
【発明が解決しようとする課題】
【0008】
アプリケーションは停止される必要がある一方で直接メモリアクセスエンジンは動作しており、その結果サービスが中断される。加えて、直接メモリアクセスエンジンは、典型的には仮想アドレスを認知していない。例えばホストプロセッサ上で実行中のソフトウエアアプリケーションは、データを移動させるように直接メモリアクセスのコピーエンジンに命令する。ソフトウエアアプリケーションは、仮想メモリの物理メモリへの翻訳(translations)を要求する必要がある。従って、アプリケーションが実行され続けることを可能にする一方でソースメモリから移動先メモリへの内容のコピーを作成し又は内容を移動させるハードウエアベースのシステムを有することが望ましい。
【課題を解決するための手段】
【0009】
概して、メモリコピープロセスの一部として、メモリコピー論理がソースメモリ領域への書き込み要求を複製して複製された書き込み要求を作成するように動作する。コヒーレントメモリコピー論理はまた、複製された書き込み要求を実行して、書き込み要求がソースメモリ内で更新する任意の内容が移動先メモリ内でも更新されることを確実にするように動作する。次いで、内部メモリが使用されている間に電力を節約するために、ソースメモリへの電力が低減され得る。その結果、ある種の「ハードウエアメモリムーバ(hard ware memory mover)」は、複雑ないかなるソフトウエア同期の使用をも必要とせず、そしてメモリ移動(memory move)の間にいかなるサービス中断をももたらさない。コヒーレントメモリコピー論理は、アプリケーションソフトウエア及びユーザにとって明白な(transparent)方法で例えば外部メモリからチップ内の内部メモリへアプリケーションメモリスペースを再配分する。ソース領域から移動先領域へデータを移動させる場合にコヒーレンシを提供する他の例は、メモリの1つの領域の内容を同一の物理メモリ(例えば内部メモリ及び外部メモリではない)内の新たなロケーション(領域)へ再配置するためのコヒーレントメモリコピーエンジンの使用を含む。これにより、デバイスの通常動作の間にフラグメント化されてしまっているであろうメモリ領域の整理統合(consolidation)が可能になる。他の利点は当業者によって理解されるであろう。
【図面の簡単な説明】
【0010】
本発明は下記の図面と共に以下の説明を考慮して更に容易に理解されるであろうし、図面において同様の参照番号は同様の要素を表す。
【0011】
【
図1】
図1は本開示において説明される1つの例に従いメモリ内容を移動させるように動作する論理を含む集積回路の部分部分の1つの例を示すブロック図である。
【0012】
【
図2】
図2は本開示において説明される1つの例に従いメモリ内容を再配分するための方法の1つの例を示すフローチャートである。
【0013】
【
図3】
図3は本開示において説明される1つの例に従いメモリ内容を再配分するための方法の1つの例を示すフローチャートである。
【0014】
【
図4】
図4は本開示において説明される1つの例に従いメモリ内容を再配分するための方法の1つの例を示すフローチャートである。
【0015】
【
図5】
図5は本開示において説明される1つの例に従い
図1において説明されるコピーエンジンの1つの例を示すブロック図である。
【0016】
【
図6】
図6は本開示において説明される1つの例に従いメモリ内容を再配分するための方法の1つの例を示すフローチャートである。
【0017】
【
図7】
図7は本開示において説明される1つの例に従いメモリ内容を再配分するための方法の1つの例を示すフローチャートである。
【発明を実施するための形態】
【0018】
コヒーレントメモリコピー論理は、移動先メモリ領域へコピーされつつあるソースメモリ領域に対するメモリ書き込み要求を傍受する(intercepts)入力要求ルータ論理と、傍受されたメモリ書き込み要求のアドレスを係属中データキュー(pending data queue)内のエントリと比較してコピーコヒーレンシを促進するように動作するコピー書き込み制御器論理とを含んでいる。係属中データキューは、外部メモリソース領域からコピーされるべきデータ及び係属中データキュー内のエントリが内部メモリへコピーされる準備ができたことを表すデータを一時的に記憶する。係属中データキュー内の各エントリは、ソースメモリから読み出されてはいるが未だ移動先メモリへは書き込まれていないデータフラグメントを一時的に記憶する。係属中データキューはまた、移動先メモリ領域へコピーされつつあるデータフラグメントに関連するデータを含む。そのような関連するデータは、ソースメモリ及び移動先メモリ内のデータフラグメントの物理アドレス、当該データフラグメントが移動先メモリ内へ書き込まれる準備ができていることを表示するフラグ、並びに当該データフラグメントが破棄されるべきであることを表示する破棄フラグを含む。
【0019】
他の例においては、コヒーレントメモリコピー論理は、物理アドレスを含んでいた外部メモリ又はソースメモリ内にある外部翻訳ルックアサイドバッファ(translation look aside buffer)からの情報の一部、例えば全ページに対する全翻訳より少ない部分、又は修正された一部を記憶する内部翻訳ルックアサイドバッファを含む。外部TLBは、外部ロケーションの代わりに内部ロケーションを向くように修正される。メモリ制御器ブロックメモリインタフェース116及び110は、内部翻訳ルックアサイドバッファ136を使用して、内部メモリ内に記憶されるページのみに対して物理アドレス及び仮想アドレスを翻訳する。
【0020】
集積回路を含む携帯型デバイスの他、対応する方法もまた以下に説明される。
【0021】
図1は携帯型デバイス100の一部分の1つの例を示しており、携帯型デバイス100は、限定はされないが例えば多機能携帯電話機(smart phone)であり、図示はしないがディスプレイ、ワイヤレスセルラサブシステム、カメラ及び他の既知のコンポーネントのような標準的なコンポーネントを含んでいる。
図1は移動先メモリ(destination memory)104を含むグラフィックス処理ユニットのようなプロセッサ102を示しており、移動先メモリ104は、限定はされないがマイクロプロセッサ集積回路102のようなプロセッサ102に対する内部メモリである。また、例えばダイナミックRAM(DRAM)であってよいソースメモリ106が示されており、移動先メモリ104はSRAMであってよいが、任意の適切なメモリ種類が用いられてもよいことが認識されるであろう。ソースメモリ106は、集積回路102に対して外部にある外部メモリとして示されている。携帯型デバイス100はまた、同一の集積回路上又は別個の集積回路上にあってよい中央処理コアのような他のプロセッサ108を含む。プロセッサ102は、適切なバス112を介して内部メモリ104と通信する内部メモリインタフェース110を含み、更に、適切なバス118を介して外部メモリ106と通信する外部メモリインタフェース116を含む。説明のみを目的として、バス112及びバス118を介して通信する個々の通信経路はまた、楕円内に示されている。プロセッサ102はまた、メモリ制御器ブロック122の一部として又は別個のブロックとして、コヒーレントメモリコピー論理124、多重化調整論理(multiplexing arbitration logic)126及び1つ以上のメモリクライアント128,130を含み、これらはプロセッサ102内の他のクライアント及び回路と通信する。
【0022】
コヒーレントメモリコピー論理124は、ページコピー作業キュー132、コピー論理134、随意的内部メモリ翻訳ルックアサイドバッファ136及びコピーフローエンジン138を含むハードウエア論理である。コヒーレントメモリコピー論理124は適切な通信バス140を介してプロセッサ108と通信する。以下に更に説明されるプロセッサ108は、ページコピー作業キュー132へデータ投入する(populate)よう動作する論理142として機能するように実行される適切なプログラムを含んでいてよい。多重化及び調整論理126は、当該分野において知られているような適切なバス150及び152を介して種々のクライアントインタフェース128〜130と通信する。
【0023】
コピーエンジン134は、適切なリンク154を介してページコピー作業キュー132と、また適切なリンク156を介してコピーフローエンジン138と通信するようにこれらと動作可能に結合される。コピーフローエンジン138(例えば状態マシン)は、適切な通信リンク158を介して内部メモリTLB136と、またリンク160を介してページコピー作業キューと通信する。内部メモリTLB136は、適切な通信リンク999を介して種々のメモリインタフェース(内部及び外部)と通信する。
【0024】
図2もまた参照すると、動作において、コヒーレントメモリコピー論理124は、1つのメモリロケーションから他のメモリロケーションへデータをコピーするように動作する(ブロック204及び206参照)。例のみとして、コピーすることは、読み出し要求182を用いてソースメモリ領域164からデータフラグメント(data fragments)をシーケンシャルに読み出すことと、書き込み要求184を用いて移動先メモリ領域180内へデータフラグメントを書き込むこととを含んでいてよい。このことはブロック204及び206内に示されている。コヒーレントメモリコピー論理124はまた、例えばメモリからのページであってよい領域164へ例えば書き込むためにソースメモリ106への書き込みを表示している任意のメモリクライアント130〜128からの書き込み要求162を複製して複製された書き込み要求170を生成し、これを移動先メモリ104内の対応する移動先メモリ領域180へ書き込むようにも動作する。このことはブロック200内に示されている。線163は読み出しを表している。ブロック202内に示されるように、コヒーレントメモリコピー論理124はまた、複製された書き込み要求170を実行してソースメモリ106からの内容を移動先メモリ104内の移動先メモリ領域180へコピーするようにも動作する。リンク171は通常動作の間における読み出し及び書き込みを表している。全ての読み出し要求及び書き込み要求に対して、コピーエンジンとも称されるコピー論理134は、仮想アドレス(
図1にVAで示される)又は物理アドレス(
図1にPAで示される)のいずれかに対して動作することができる。メモリクライアント128〜130又はページコピー作業キュー132が物理アドレスを提供した場合には、コピー論理134は提供されたそれらの物理アドレスを用いる。メモリクライアント128〜130又はページコピー作業キュー132が仮想アドレスを提供する場合には、コピー論理134は仮想アドレスを物理アドレスへ翻訳する。当業者であれば、メモリ内の仮想アドレスと物理アドレスの間での翻訳を解釈するための多くの十分に発達し且つ理解されている方法を認識しているであろう。また、線186はソースメモリから情報を読み出すためのメモリクライアント要求を表しており、ソースメモリ106はクライアント読み出しとして参照される線188によって示される情報を提供する。この実施形態においては、コヒーレントメモリコピー論理124が外部メモリ106への連続的な書き込み及び読み出しのアクセスをもたらす一方でデータフラグメントをコピーするように動作し、ここでは、これらのフラグメントの合計は、ソース領域から移動先メモリ領域180へ、そのコピー機能の使用によって並びに複製された書き込み要求170の生成及び利用によって、1つ以上のメモリページを形成する。このことは、プロセッサ108上で実行中のアプリケーションの動作を停止させることなく行われる。
【0025】
ソースメモリ106から移動先メモリ104へのメモリページのコヒーレントなコピーを実行するために、コヒーレントメモリコピー論理124が例えばプロセッサ108上で実行中のアプリケーションからページコピー作業キュー132を介して指令(command)を受信する。メモリページは、物理ベースのアドレスPA−1に対応する図示されるような仮想ベースのアドレスVA−1を有していてよい。代替的には、プロセッサ108が当該ページの物理ベースのアドレスPA−1を提供してよい。プロセッサ108はまた、ページコピー作業キュー132を介して、コピーされることになる幾つかのページの基本アドレス(VA−11,VA111,…等又はPA−11,PA−111,…等)を提供することができる。ソースメモリからコピーされるべき各メモリページに対して、プロセッサ108はまた、その時点でソースメモリ内にあるデータをコヒーレントコピーエンジンがコピーすることになる移動先メモリ領域のいずれかの基本アドレスを提供する。移動先メモリ領域の基本アドレスは、物理的アドレス(PA−2)又は仮想アドレス(VA−2)のいずれかであり得る。指令のこの受信はまた、ページコピー作業キュー132内のキューを介して又は単純なレジスタベースの指令を介して起こり得る。コピーフローエンジン138は、ページコピー作業キュー132の内容を読み出し、そして適切なバス156を介してコピー論理134へコピー指令を発行する。コピー論理134は、コピー動作の間にコヒーレンシを維持しつつ、その基本アドレスがPA−1であるページをコピーし、そしてそれを基本アドレスがPA−2であるページへ書き込む。ページコピー動作の間、コヒーレンシは全てのクライアントブロックに対して明白(transparent)であるように維持されるべきである。このことは以下に更に説明される。
【0026】
追加的に又は随意的に、仮想アドレスと物理アドレスの間で翻訳することができる又は1つの物理アドレスと他の物理アドレスの間で翻訳することができる内部メモリ翻訳ルックアサイドバッファ136が用いられてもよい。例えば、外部メモリ又はソースメモリ内に仮想ページから物理ページへの翻訳テーブルが記憶されている場合には、要求されたページが内部メモリへ転送された後であっても、外部メモリは仮想アドレスから物理アドレスへの翻訳のためにメモリアクセスユニットにとってアクセス可能のままである必要があるから、課題(a challenge)がもたらされる。内部メモリのみが用いられるモード(IMOM)においては、内部メモリページのみのための内部メモリTBLが用いられる。
【0027】
図3を参照すると、内部メモリページが用いられるのを可能にするために内部メモリTLBを維持すると共に電力を低減する方法は、ブロック300内に示されるように、外部メモリ又はソースメモリからプロセッサ102の内部メモリへ動作を移すことを含む。ブロック302内に示されるように、この方法は、ソースメモリ106の電力を低減するのに先立ち、物理アドレスを含む外部ソースメモリ内の全体的な翻訳ルックアサイドバッファから内部翻訳ルックアサイドバッファへ情報の一部を記憶する(例えばコピーする)ことによって内部翻訳ルックアサイドバッファ136を生成することを含む。このことは、例えばコピー論理134によって行われてよい。メモリインタフェース110及び118は、内部TLB136を用いて、内部メモリ内に記憶されるページだけに対してメモリクライアント128〜130からのアドレスを翻訳する。このことは、例えば、論理142として実行中のソフトウエアモジュールの制御下で行われてよい。内部メモリTLBは、内部メモリのみモードに入るのに先立ち論理142によって構成されてよい。内部メモリTLBの物理的サイズは、内部メモリのサイズの関数であるが、典型的には内部メモリのサイズよりも小さいオーダである。内部メモリTLBは、従って、外部メモリ106の遮断による電源オフ及びこれに伴う電力節約を可能にする拡張可能な解決法(scalable solution)である。
【0028】
ブロック304内に示されるように、方法は次に、外部メモリ106へのアクセスを停止して電力を低減することを含む。ソースメモリを低電力モードに置くことは、ソースメモリを自己リフレッシュモードに置くこと又はソースメモリから電力を排除することを含む。
【0029】
アプリケーションによる更なる動作は、内部メモリ104の使用を通して単独で行われる。内部メモリTLB136は、内部メモリ104とは別個のRAMのピースであってよく、あるいは内部メモリ104内のメモリの一部分であってよい。しかし、内部メモリ翻訳ルックアサイドバッファ136は、全体的な電力を低減するために、望ましくはSRAM内にある。ブロック304内に示されるソースメモリ106へのアクセスの停止は、ソースメモリ106の電力消費の低減を可能にする。ソースメモリは次いで、当該分野において知られているように、低電力モードに置かれる。このことは、例えば、プロセッサ102若しくはプロセッサ108又は他の適切な電力制御モジュールによって行われてよい。内部メモリ翻訳ルックアサイドバッファ136は、2進の又はM進の検索ツリー(binary or M-ary search tree)によって作成されてよい。構造は、単純なハードウエアベースの手法を用いて検索することができる。M値の検索ツリーは、幅の広いRAMインタフェースの利益を享受して検索時間を短縮することができる。代替的には、IM_TLB136はハッシュテーブル(hash table)であってよい。内部メモリモードにある場合のみ、内部メモリインタフェース110は、入ってくるトランザクションのアドレスを提供することによって検索指令をTLBへ発行する。内部メモリTLB136は、その内容の検索を実行し、そして対応するアドレスを内部メモリ104内へ返送する。しかし、ハッシュ検索方法を用いることの1つのそれほど望ましくない結果は、ハッシュテーブル内での衝突(collision)であろう。そのような衝突は、長い検索期間を生み出すことがあり、また場合によってはテーブルの実際の構造を複雑にすることがある。従って、検索ツリー手法がより望ましいであろう。
【0030】
書き込み要求を複製すること及びそれに関連するコヒーレントメモリコピー論理124の動作を再び参照して、
図4〜7について言及する。
図5は、ソース読み出し制御器500と、ソース読み出し制御器に結合される係属中(pending)データキュー502と、係属中データキュー及びソース読み出し制御器に結合されるコピー読み出し制御器504と、外部ソースメモリインタフェース116、コピー書き込み制御器508及び内部メモリインタフェース110に結合される入力要求ルータ506とを含むコピー論理134の1つの例を示している。入力要求ルータ506は、コピー論理134の外部の要求、例えばコピー論理134の外にあるメモリクライアント128〜130からの読み出し要求又は書き込み要求を処理し、そして510及び512のような適切なバスを用いて読み出し応答を提供する。係属中データキュー502は、データキューエントリ516として構成されるメモリを含む。データキューエントリの各々は、読み出しデータ518、準備完了フラグ(ready flag)520、ソースアドレス522、移動先アドレス524、及び読み出し破棄フラグ(read discard flag)526を表すデータを含んでいる。
【0031】
図1、4及び5を再び参照して、外部メモリのようなソースメモリ及び移動先メモリ領域又は内部メモリ104のような移動先メモリからの内容を転送するための方法を説明する。ブロック400内に示されるように、ページコピー作業キュー132内に任意のエントリが存在するかどうかに関して決定がなされる。このことは、例えばコピーフローエンジン138によってなされてよい。ページコピー作業キュー132内にエントリが係属していない場合には、プロセスは、ページコピー作業キュー132内に係属することになるソースメモリロケーションから移動先ロケーションへのコピー要求、例えばページコピー要求を待つことを含む。このことはブロック402内に示されている。ページコピー要求がページコピー作業キュー132内にある場合には、方法は、例えばエントリをキューからデキューすること(dequeuing)によって要求を処理することを含む。ページコピー作業キュー132内のエントリは、移動先開始アドレス、ソース開始アドレス、ページの長さ及びストライド(page length and stride)を含んでいてよい。このことはブロック404内に示されている。このプロセスはまた、移動先アドレスカウンタを開始移動先アドレスに設定することと、ソースアドレスカウンタを開始ソースアドレスに設定することと、最終ソースアドレスを開始ソースアドレス及びページ長さの和に設定することとを含んでいてよい。このことは、例えば、コピー読み出し制御器504においてこれらのカウンタの値をコピーフローエンジン138に設定させることによって行われてよい。上述のエントリ情報に加えて、エントリはまた、所望に応じて読み出し要求毎に幾つかの読み出しを含んでいてもよい。
【0032】
ブロック406内に示されるように、方法は、ソースアドレスカウンタが最終ソースアドレスカウンタに等しいかどうかを決定することを含む。このことはコピー読み出し制御器504によって行われてよい。ソースアドレスカウンタが最終ソースアドレスに等しい場合には、方法は、ブロック408内に示されるように、係属中データキューが空になるのを待つことを含む。一旦空になると、方法は、ブロック410内に示されるように、コピー作業キュー132を更新することを含む。このことは、コピー論理134によるコピー完了が通知されるとすぐにコピーフローエンジン138によって行われてよい。410内に同様に示されるように、方法は、移動先メモリ内のページの新たなロケーションでソースメモリ内の翻訳ルックアサイドバッファを更新することを含む。この動作は、コピーフローエンジン138によって又はプロセッサ108によって行われてよい。
【0033】
ブロック406を再び参照すると、ソースアドレスカウンタが最終ソースアドレスに等しくない場合には、方法は、ブロック412内に示されるように係属中データキュー502が埋まっているかどうかを決定することを含む。係属中データキュー502が埋まっている場合には、方法は、ブロック414内に示されるように、係属中データキューが埋まっていなくなるのを待つことを含む。係属中データキュー502が埋まっていない場合には、ブロック416内に示されるように、方法は、係属中データキュー内の次の空のエントリの数、例えばキュー書き込みスロット数を得ることを含む。このことはコピー読み出し制御器504によって実行されてよい。ブロック418内に示されるように、方法は、書き込みスロット数として知られる数によって標識付けられるキューエントリでの係属中データキュー502内に、ソースアドレスカウンタに等しくなるソースアドレス、移動先アドレスカウンタに等しくなる移動先アドレス、無効に設定されることになる準備完了フラッグ、及び無効に設定された読み出し破棄フラグを挿入することを含む。ブロック420内に示されるように、方法は、ストライド量によってソースアドレスカウンタをインクリメントすることと、ストライドによって移動先アドレスカウンタをインクリメントすることとを含む。ブロック418及び420は、例えば、コピーフローエンジン138によって、そしてより特定的にはコピー読み出し制御器504によって実行されてよい。プロセスは次いでブロック406へ続く。
【0034】
また、方法は、ブロック422内に示されるように、係属中データキュー内の次の空エントリの数、書き込みスロット数を得た後に、読み出し要求を特定のパラメータと共にソース読み出し制御器500へ発行することを含む。これらのパラメータは、ソースアドレスカウンタ、ストライド及びキュー書き込みスロット数に等しくなる読み出しアドレスを含む。ブロック424内に示されるように、方法はまた、ソースメモリ106から返送する読み出しデータを待つことを含む。このことは、例えばソース読み出し制御器500によって行われてよい。ブロック426内に示されるように、方法は、読み出し破棄フラグが有効であるかどうかをキュー書き込みスロット数に対して決定することを含む。読み出し破棄フラグが有効である場合には、方法は、ブロック428内に示されるように、対応するキュー書き込みスロット数での準備完了フラグを有効に設定することを含む。一方、読み出し破棄フラグが有効でない場合には、方法は、ブロック430内に示されるように、キュー書き込みスロット数によって識別されるエントリでの係属中データキュー内の読み出しデータフィールドへ読み出しデータをソースメモリから書き込むことを含む。このプロセスは次いでブロック428へ続く。
【0035】
図6を参照して、
図4において概説されたコピー動作を実行しつつソースメモリ及び移動先メモリの両方において内容のコヒーレントな表示(coherent view)を維持する方法を説明する。ブロック600内に示されるように、読み出し要求又は書き込み要求が一旦コピーエンジン134の外部から受信されると、方法は、ブロック602内に示されるように、要求が読み出し要求であるかどうかを決定することを含む。この決定は、入力要求ルータ506によって実行されてよい。読み出し要求である場合には、ブロック604内に示されるように、その読み出し要求は、適切なメモリインタフェース、内部又は外部のいずれかのメモリインタフェースへ経路付けられる。この例では、全てのメモリアクセス要求はコピー論理134を通過し、それらは入力要求ルータ506によって検査され、そしてアドレスロケーションが、その時点でコピーされつつある領域と比較される。
【0036】
入力要求ルータ506は、要求が書き込み要求であるブロック606内に示されるように、メモリ書き込み要求を傍受する(intercepts)。入力要求ルータ506は、内部移動先メモリ領域へコピーされつつある外部メモリ領域(又はソース領域)に対するメモリ書き込み要求を傍受する。その時点でコピーされつつある領域に対して書き込み要求が向かうことになっていない場合には、ブロック608内に示されるように、書き込み要求は適切なメモリインタフェースへ経路付けられる。傍受されるメモリ要求は、ソースメモリから移動先メモリへコピーされつつある領域に対して傍受されるものである。従って、ブロック610内に示されるように、その時点でコピーされつつある領域に対して書き込み要求が向かうことになっている場合には、方法は、ソースメモリへの書き込み要求、即ち書き込みコピー要求162を送信することを含む。従って、元の書き込み要求はソースメモリへ送信される。入力要求ルータ506は、複製書き込み要求が必要とされていることを表示しているコピー書き込み制御器508へデータ550を供給する。ブロック620内に示されるように、方法は、その準備完了フラグがゼロに設定されている係属中データキュー内のエントリのソースアドレスと書き込み要求のアドレスが等しいかどうかを決定することを含むある種のインフライト動作(in flight operation)コヒーレンスチェックを含む。等しくない場合には、方法は、ブロック622内に示されるように、コピー書き込み制御器508によって書き込み要求のコピーを移動先メモリへ170で示されるように送信することを含む。
【0037】
書き込み要求のアドレスが係属中データキュー内のエントリのソースアドレスと等しい場合には、方法はブロック624内に示されるように続き、ブロック624においては、コピー書き込み制御器が、書き込み動作のソースアドレスに対応する係属中データキュー502内のエントリ数を識別する。ブロック626内に示されるように、方法は、係属中データキュー内の識別されたエントリ数の読み出しデータフィールドへ書き込み要求のデータを書き込むことを含み、このことはコピー書き込み制御器508によって実施される。ブロック628内に示されるように、方法は、コピー書き込み論理508が、係属中データキュー内の識別されたエントリ数の信号552を介して読み出し破棄フラグを有効に設定することを含む。従って、ソース読み出し制御器は、当該エントリに対して係属中データキュー内へ書き込むことができないようにされている。
図7はこの実施形態ではコピー書き込み論理508によって実施されてよい係属中データキュー502からデータを除去するための方法の1つの例を示している。ブロック700内に示されるように、方法は、有効に設定されている準備完了フラグを係属中データキュー502内のエントリが有することになるまで待機することを含む。ブロック702内に示されるように、方法は、キューエントリの読み出しデータフィールドからのデータを有効な準備完了フラグと共に移動先メモリへ書き込むことを含む。このことは、例えば、有効な準備完了フラグを伴うキューエントリの移動先アドレスフィールドと等しくなるように移動先メモリ内にアドレスを書き込むことを含む。ブロック704内に示されるように、方法は、エントリの準備完了フラグを無効として標識付けることと、読み出し破棄フラグを無効として標識付けることとを含む。プロセスは次いで、係属中データキュー内にデータがあるときはいつでも繰り返されてよい。
【0038】
別の言い方をすれば、通常の動作の間には、コピー読み出し制御器504は、ソースメモリロケーションへ読み出しを発行し、そして無効に設定されている準備完了フラグ520及び無効に設定されている読み出し破棄フラグ526と共に当該要求を係属中データキュー502内の待ち行列に入れる(queues)。外部メモリ106は典型的には長い待ち時間(latency)を有している。待ち時間の後、外部メモリインタフェース116は、発行された読み出し要求からの読み出し結果を返送する。ソース読み出し制御器500は、読み出し動作から到着したデータを係属中データキュー内へ書き込み、そして準備完了フラグ520を有効に設定する。コピー書き込み制御器508は、有効にされた準備完了フラグを有する係属中データキュー内のエントリを見出し、その結果、コピー書き込み制御器508は、係属中キュー内のエントリ内にあるデータを移動先メモリへ書き込む。
【0039】
コヒーレンシを促進するために、コピー読み出し制御器504は、ソースメモリロケーションへ読み出しを発行し、そして当該要求を係属中データキュー502内の待ち行列に入れる。外部メモリは、前述したように長い待ち時間を有している。外部メモリからデータが戻る前に、同じメモリロケーションを対象として入力要求ルータ506内へ新たな書き込み動作が到着した場合には、入力要求ルータ506は、当該書き込み要求を複製してそれをデータ550としてコピー書き込み制御器508へ送信する。コピー書き込み制御器508は、係属中データキュー502を検索し、そして同じロケーションに対する外部ソースメモリからの係属中読み出しがあるかどうかを決定する。係属中データキュー502内のエントリのソースアドレスが複製された書き込み要求のソースアドレスと一致する場合には、コピー書き込み制御器508は、複製された書き込み要求に含まれるデータを当該エントリの読み出しデータフィールド518内へ置き、また係属中データキュー502内の当該エントリの読み出し破棄フラグ526を有効に設定し、その結果、後で読み出し結果がソースメモリから到着するときに、古くなったデータ(stale data)の係属中データキューエントリ内への書き込みをトリガーすることはない。外部メモリインタフェースが読み出し要求の結果として読み出し情報を受信した場合においては、読み出し破棄フラグ526が有効でないときにのみ、読み出しデータが係属中データキュー内へ書き込まれる。外部メモリインタフェースが読み出し要求の結果として読み出し情報を受信した場合、読み出し破棄フラグ526の値にかかわらず準備完了フラグが有効に設定される。ソース読み出し制御器からの古くなったデータが係属中データキュー502内のいかなる複製データをも上書きしなかったことが保証された状態で、コピー書き込み制御器は、有効に設定された準備完了フラグを有している係属中データキュー内のエントリを見出し、そしてその準備完了フラグ520が有効である当該係属中データキューからデータを書き込む。最新のエントリはその時点でデータを保持しておらず、従ってコピー読み出し制御器504によって再使用されるために利用可能である。このように、コピー書き込み論理は、傍受されたメモリ書き込み要求のアドレスを係属中データキュー内の全てのエントリのアドレスと比較してコピーコヒーレンシを促進するように動作する。係属中データキュー502は、コピー書き込み論理508が係属中データキュー502からのデータを移動先メモリ領域へコピーすることが可能になる時まで、外部メモリ領域即ちソースメモリ領域からコピーされたデータ及び当該エントリーイン(entry in)を表すデータを一時的に記憶する。コピーされるべきデータを一時的に記憶するためのバッファの一種として係属中データキュー502を用いるのとは対照的に、係属中データキュー内の一時的記憶を必要としない移動先メモリへのデータの即時的な書き込みを用いることができるが、読み出し破棄フラグはこの場合にも用いられる。コヒーレンシを促進するための代替的な方法においては、コピー読み出し制御器504がソースメモリロケーションへ読み出しを発行し、そして当該要求を係属中データキュー502内の待ち行列に入れる。外部メモリは前述したように長い待ち時間を有する。外部メモリからデータが戻る前に、同じメモリロケーションを対象として入力要求ルータ506内へ新たな書き込み動作が到着した場合には、入力要求ルータ506は、当該書き込み要求を複製してそれをデータ550としてコピー書き込み制御器508と162で示されるソースメモリインタフェースとに送信する。コピー書き込み制御器508は次いで、複製された書き込み170を移動先即ち内部メモリインタフェース110へ送信する。コピー書き込み制御器508はまた、係属中データキュー502を検索し、そして同じロケーションに対して外部ソースメモリからの係属中読み出しがあるかどうかを決定する。コピー書き込み制御器508は、係属中データキュー502内の当該エントリの読み出し破棄フラグ526を有効に設定し、その結果、後で読み出し結果がソースメモリから入って来るときに、古くなったデータの移動先メモリ104内への書き込みをトリガーすることはない。外部メモリインタフェースが読み出し要求の結果として読み出し情報を受信する場合、読み出し破棄フラグ526の値にかかわらず読み出しフラグは有効に設定される。コピー書き込み制御器は、有効に設定された準備完了フラグ及び同じく有効に設定された読み出し破棄フラグを有している係属中データキュー内のエントリを見出す。このことは、複製書き込みが既に内部移動先メモリに対して実行されており、従って係属中データキューのエントリ内のデータが古くなっていることを意味する。その結果、コピー書き込み制御器508は、係属中データキューの上記エントリのデータを破棄し、そして準備完了フラグ520及び読み出し破棄フラグ526をリセットする。最新のエントリはその時点でデータを保持しておらず、そしてコピー読み出し制御器504によって再使用されるために利用可能である。従って、コピー書き込み論理は、傍受されたメモリ書き込み要求のアドレスを係属中データキュー内の全てのエントリのアドレスと比較してコピーコヒーレンシを促進するように動作する。係属中データキュー502は、コピー書き込み論理508が係属中データキュー502からのデータを移動先メモリ領域へコピーすることが可能になる時まで、又はその読み出し破棄フラグ526が設定されており且つその準備完了フラグ520も設定されているエントリを表すデータを破棄することが可能になる時まで、外部メモリ領域即ちソースメモリ領域からコピーされたデータ及び当該エントリを表すデータを一時的に記憶する。
【0040】
上述したように、コピー書き込み論理508は、複製された書き込み要求を作成することに基き、書き込み要求と同じアドレスに対応しているソースメモリに対する係属中読み出し要求があるかどうかを係属中データキューから決定するように動作し、係属中読み出し要求がある場合には、破棄フラグがエントリに対して有効に設定される。
【0041】
コヒーレントメモリコピー論理は、複写書き込みを即時的に実行するように動作し、あるいはコピー書き込み論理が複写書き込みからのデータを係属中データキュー内に挿入する。また、データをコピーする場合、コピーすることは、(a)準備完了フラグが有効であり且つ破棄フラグが無効であり且つ移動先メモリ領域へ書き込んでいる場合、又は(b)準備完了フラグが有効であり且つ読み出し破棄フラグが有効であり且つ複製書き込みの既存内容が係属中データキュー内に既にあった場合のいずれかの場合に係属中データキューからエントリを読み出すことを含んでいる。
【0042】
部分的内部メモリのみモードが採用されてもよく、この場合、内部メモリが小さすぎるであろうという理由で、内部メモリ内へ移動させることが必要な全てのページを例えばソフトウエアアプリケーションが移動させることができないかもしれない。この場合、最も頻繁に用いられる複数のページを内部メモリ内へ移動させることによって、外部メモリ使用はやはりまた低減され得る。この部分的内部メモリのみモードにおいては、プロセッサ108によって頻繁にアクセスされるメモリページが内部メモリ内へ入れられる。これにより、プロセッサに対するアクセス待ち時間を減少させることができる一方で、外部メモリへのアクセス数を低減することができる。従って、方法は、どのメモリページが他よりも頻繁にプロセッサによってアクセスされているかを決定することを含んでいてよく、このことは、例えばプロセッサ108上で実行されるソフトウエアを用いると共に、より頻繁に用いられるメモリページを内部移動先メモリへコピーすることによって行われてよい。また、方法は、外部ソースメモリ内にある外部翻訳ルックアサイドバッファ(外部TLB)からの情報の一部を記憶することによって内部翻訳ルックアサイドバッファ(内部TLB)を作成することと、外部TLBを検索する前に内部TLBを検索してアドレス翻訳を決定することとを含む。仮想から物理への翻訳は種々の方法において実行され得る。1つの選択肢は、アドレス翻訳のために外部メモリページテーブルを用いることである。他の選択肢は、内部メモリ翻訳ルックアサイドバッファ及び外部メモリページテーブルの両方を用いることである。この選択肢が採用される場合、内部メモリTLBが先ず検索される。必要な翻訳を内部メモリTLBが含んでいない場合には、検索を実行するために外部メモリページテーブルが用いられる。
【0043】
CPU上で実行されるソフトウエアモジュールは、使用事例に基く先見的な方法(apriori manner)での内部メモリ内の記憶のための良好な候補であるページを識別することができる。代替的には、所与の期間内に最も使用されたメモリページを識別し且つカウントするために、動的ページ履歴バッファ(図示せず)がメモリ制御器ブロック122内に配置されてよい。論理又は実行中のソフトウエアモジュール142は次いで、ページ履歴バッファの内容を用いてコヒーレントメモリコピー論理へのコピー動作を発行するために用いられてよい。
【0044】
所望に応じてバッチ動作が用いられ得るように、ページコピー作業キューが循環バッファであれば便利であろう。コヒーレントメモリコピー論理はまた、ソフトウエア層を通知する前に種々のページをシーケンシャルな様態でコピーすることもできる。所望に応じて多重ページを並列してコピーすることが実施されてもよく、またアプリケーションによっては、バースト読み出し又はバースト書き込みを実行することが望ましいかもしれない。
【0045】
上述したように、メモリ内容を再配分するための方法は、外部ソースメモリ領域への連続的な読み出し及び書き込みアクセスを提供する一方で例えば外部ソースメモリ領域に対するメモリ書き込みをもたらす現在のアプリケーションを実行し続けることによって外部ソースメモリ領域からデータをコピーすることを含んでいる。アプリケーションが実行中の一方で、方法は、外部ソースメモリ領域に対する書き込み要求を複製して複製された書き込み要求を作成することを含んでいる。方法は、複製された書き込み要求を実行して外部ソースメモリからの内容を内部移動先メモリ領域へコピーすることを含んでいる。方法はまた、内部移動先メモリ領域へ内容をコピーすることに応答して外部メモリ領域を含む外部メモリの電力を低減することとを含んでいる。当業者によって理解されるであろうように、携帯型デバイス又は可搬型デバイスの例示的な実施形態がこれまで説明された一方で、本発明の実施形態は、ノートブック及びノートブックコンピュータ、ゲームコンソール、他の可搬型デバイス(例えば可搬型ゲームシステム)、デスクトップ、ワークステーション及びサーバコンピュータその他のものを含み得る。
【0046】
また、限定はされないがCDROM、RAM、ROMの他の形態、ハードドライブ、分散型メモリ等のようなコンピュータ可読メモリに記憶された実行可能な命令に基いて集積回路を作り出す集積回路設計システム(例えばワークステーション)が知られている。命令は、限定はされないがハードウエア記述言語又は他の適切な言語のような任意の適切な言語によって表されてよい。従って、ここに説明される論理(例えば回路)は、そのようなシステムによって集積回路として製造されてもよい。例えば、コンピュータ可読媒体に記憶される命令を用いて、ディスプレイ内で使用される集積回路が作り出されてよく、その命令は、実行されるときに、集積回路設計システムに、多重刺激色空間(multi-stimulus color space)内で受け取られることになるワイドガマット(wide gamut)RGB色データに対するワイドガマットRGB表示情報及びワイドガマット色フォーマット定義情報を画像ソースプロバイダに示し、画像ソースプロバイダからワイドガマット確認情報を受け取り、そしてワイドガマットRGB表示情報及びフォーマット定義情報に応答して受け取られた受信ワイドガマットRGB色データを表示するように動作する集積回路を作り出すことをさせる。ここに説明される他の動作を実行する論理を有する集積回路が適切に製造されてもよい。
【0047】
メモリコピー動作の一部としてメモリ内容のコヒーレンシを提供する新しい種類のDMA論理及び方法が説明されてきた。本発明の上述した詳細な説明及びそこで説明される例は、例示及び説明のみを目的として提示されたものであり、限定によるものではない。従って、本発明は、上記で開示され且つここに請求される基本的な内在する原理の精神及び範囲内に含まれる任意のまた全ての修正、変更又は均等なものに及ぶことが意図されている。