メモリシステムが帯域幅制限状態で動作しているかどうかを判定することと、前記帯域幅制限状態で動作している前記メモリシステムに応答して、圧縮アクセスモードでメモリからデータにアクセスすることと、前記帯域幅制限状態で動作していない前記メモリシステムに応答して、非圧縮アクセスモードで前記メモリからデータにアクセスすることと、を含む、方法。所定のしきい値を超える前記メモリバス上のトラフィックに従って前記帯域幅制限状態が存在することを判定することをさらに含む、請求項1に記載の方法。所定のしきい値を超えるメモリアクセス要求のキューの深さに従って前記帯域幅制限状態が存在することを判定することをさらに含む、請求項1に記載の方法。前記圧縮アクセスモードでのデータ取得は、データブロックに対する各要求に応答して、前記メモリから縮小サイズのデータブロックを取得することを含み、前記非圧縮アクセスモードでのデータ取得は、データブロックに対する各要求に応答して、前記メモリからフルサイズのデータブロックを取得することを含む、請求項1に記載の方法。前記縮小サイズのデータブロックを取得後、前記縮小サイズのデータブロックが、前記縮小サイズのデータブロックと共に取得された情報から圧縮されているかどうかを調べるためにチェックすることと、圧縮されていない場合は、フルサイズのブロックを形成するために前記メモリから残りのデータを取得することとをさらに含む、請求項4に記載の方法。前記縮小サイズのデータブロックと関連がないメモリ要求を発行し、前記縮小サイズのデータブロックを取得することと、前記残りのデータを取得して前記フルサイズのデータブロックを形成することとの間に関連がないデータを取得することをさらに含む、請求項5に記載の方法。前記メモリ内のデータのブロックが前記メモリにおいて圧縮されているか、または圧縮されていないかに関する情報を格納することをさらに含む、請求項1に記載の方法。1つ以上のメモリシステム状態に応答して、帯域幅制限された動作状態が存在するかどうかを判定し、その表示を供給するための帯域幅制限判定論理と、前記帯域幅制限判定論理に応答して、前記帯域幅制限判定論理によって、前記帯域幅制限された動作状態が存在すると判定された場合、圧縮モードで前記メモリからデータを取得し、前記帯域幅制限判定論理によって、前記帯域幅制限された動作状態が存在しないと判定された場合、フルアクセスモードで前記メモリからデータを取得するための、メモリアクセス制御論理と、を備える、装置。前記メモリアクセス制御論理は、要求されたそれぞれのデータブロックに対して縮小サイズのデータブロックにアクセスすることにより、圧縮モードでメモリ内の前記データを取得する、請求項8に記載の装置。前記帯域幅制限判定論理と前記メモリアクセス制御論理とを含むメモリコントローラが、前記縮小サイズのデータブロックが取得後に実際に圧縮されているかどうかをチェックし、前記縮小サイズのデータブロックが圧縮されていないことを前記チェックが示した場合、フルサイズのデータブロックを形成する残りのデータにアクセスするように構成される、請求項8に記載の装置。前記メモリコントローラは、前記メモリに連結されたメモリバスの使用に基づいて、前記帯域幅制限された動作状態の存在を判定するように構成される、請求項10に記載の装置。前記メモリアクセス制御論理は、要求されたそれぞれのデータブロックに対するフルサイズのデータブロックにアクセスすることにより、前記フルアクセスモードでメモリ内のデータにアクセスするように構成される、請求項8に記載の装置。メモリバス要求を含む要求キューをさらに備え、前記帯域幅判定論理は、前記要求キューの深さに従って、前記帯域幅制限された動作状態の存在を判定するように動作可能である、請求項8に記載の装置。前記メモリアクセス制御論理と、前記帯域幅判定論理と、中央演算処理装置および前記メモリに連結された画像処理装置のうちの少なくとも1つとを含む、メモリコントローラをさらに備える、請求項8に記載の装置。種々のメモリ圧縮手法が存在する。多くの構想では、種々のメインメモリブロックの圧縮された、または圧縮されていない状態を格納またはキャッシュするために潜在的に大きなオンチップデータ構造が用いられている。メインメモリアクセスが、フルのメモリ要求サイズ、または縮小したメモリ要求サイズのどちらを使用すべきかを判定する前に、これらのオンチップ構造に対する問い合わせが行われる。このため、大きなメモリ量を圧縮する場合、大きなオンチップ構造が要求される。別の解決策は、メインメモリ内のブロックの圧縮/非圧縮状態それ自体を問題のデータと共に符号化することである。例えば、この状態を符号化するために追加データビットを設けてもよく、あるいは、ECCビットの反転によりデータをタグ付けしてもよい。まずデータは、それが圧縮されているものと想定してアクセスされ、次いで、返されたデータが圧縮されていないことを示した場合、データの残り部分がアクセスされる。この手法は、非圧縮のデータへのアクセスに対する良好でない遅延を結果として生じることになる。なぜなら、この手法は、第2の要求が発行される前に第1の想定された圧縮データが返されるのを待機するメモリ要求を必要とするからである。したがって、本発明の実施形態において、メモリへのアクセス時に帯域幅の制限状態が存在するかどうかに従って、圧縮されたアクセスモードおよびフルの非圧縮のアクセスモードのうちの1つでメモリからデータを取得することを含む方法が提供される。帯域幅が制限された状態の存在の判定は、例えばメモリバスの利用に基づいてまたはメモリアクセス要求のキューの深さに従って行ってもよい。別の実施形態では、装置は、1つ以上のメモリシステム状態に応答して、帯域幅制限された動作状態が存在するかどうかを判定し、判定の表示を供給するための帯域幅制限判定論理を含む。メモリアクセス制御論理は、帯域幅制限判定論理に応答して、帯域幅制限された動作状態が存在することが帯域幅判定論理により判定されたとき、圧縮モードでメモリからデータを取得し、帯域幅制限された動作状態が存在しないことが帯域幅判定論理により判定されたとき、フル非圧縮アクセスモードでメモリからデータを取得する。圧縮モードでは、要求された個々のデータブロックに対して縮小サイズのブロックデータにまずアクセスすることによりデータが取得される。この最初の縮小サイズブロックがフルサイズのブロックに対する圧縮データを含まなければ、第2の縮小サイズのブロックデータが要求され、第1および第2の要求が一緒に受け取られて、フルサイズのデータブロックが結果的にもたらされることになる。フルアクセスモードでは、要求された個々のデータブロックに対してフルサイズのデータブロックが取得される。別の実施形態では、メモリシステムが帯域幅制限モードで動作しているかどうかを判定することを含む方法が提供される。帯域幅制限モードで動作しているメモリシステムに応答して、メモリコントローラは、メモリシステムに応答して、圧縮されたアクセスモードでメモリからデータにアクセスする。帯域幅制限モードで動作していないメモリシステムに応答して、メモリコントローラは非圧縮のアクセスモードでメモリからデータにアクセスする。図1を参照すると、本発明の実施形態を組み込んだコンピュータシステムのブロック図が示されている。このコンピュータシステムは、例えば、中央演算処理装置CPUおよび/または画像処理装置GPU101のようなプロセッサを備える。本システムは帯域幅適応型メモリコントローラ105とメモリ107を備える。動作状態で、メモリの要求率が十分に低く、したがって、多量の使用可能なメモリ帯域が存在する場合、メインメモリの圧縮を使用して帯域幅を節約することにより、最小限のパフォーマンス上の利点が得られることになる。また、メインメモリの要求率がメモリ帯域幅によって制限されるほど十分に高い場合の動作状態では、メモリ要件が経験する待ち時間も待合せ遅延に起因してきわめて高いものとなる。代替の実施形態では、デジタル信号プロセッサ、マイクロコントローラ等のような他のプロセッサの形で、CPUおよび/またはGPUとして例示的な実施形態に示されているプロセッサを具現化してもよい。図1のコンピュータシステムは、ハンドヘルド型デバイス、PDA、ノート型パソコン、デスクトップ型コンピュータ、サーバ、あるいはプロセッサおよびメモリを必要とする他の任意のシステムにおいて具現化されてもよい。したがって、一実施形態は、問題のデータと共にメインメモリそれ自体にブロックの圧縮/非圧縮状態を符号化する。この符号化は、例えば追加データビットにより達成することが可能あり、または、ECCビットの反転により、もしくは何らかの他の適当なメカニズムにより圧縮されたものとしてこのデータはタグ付けされてもよい。メモリコントローラは、帯域幅制限を受けている動作領域に存在していないことを検出すると、常に非圧縮のフルデータサイズにアクセスする。したがって、圧縮済みのまたは非圧縮のデータにアクセスする待ち時間はほとんど同じになる。一方、メモリコントローラが帯域幅制約モードにあることをメモリコントローラが検出した場合、このコントローラは、データが圧縮されているものと想定して、まずデータにアクセスすることになり、返されたデータが圧縮されていないことを示した場合、データの残り部分へのアクセスが行われる。この手法は、非圧縮データへのアクセスに対する待ち時間の増加を結果としてもたらすことになるが、データが圧縮されている場合には帯域幅が節約される。この追加帯域幅は、他の要求に対しても利用可能であり、潜在的に待合せ遅延を減らすことになるため、待ち時間全体の影響を緩和する場合がある。帯域幅制限されたケースではメモリコントローラの有効な帯域幅を増加させることにより、メインメモリ圧縮から得られるパフォーマンス上の利点の大部分を得るはずである。図2を参照すると、帯域幅制限されたメモリコントローラの部分のブロック図が示されている。メモリコントローラは、メモリバス109が帯域幅制限されているかどうか、および帯域幅判定論理201を使用するかどうかを判定する必要がある。1つの実施形態では、帯域幅判定論理201は、メモリバスの使用率を監視し、何らかの直近の処理ウィンドウ内で設定可能な時間の部分未満で、メモリバスが使用されている時間を検出する。この使用は時間ウィンドウにわたって採取したサンプルの平均値であってもよい。バスから、または、メモリアクセス制御論理205内の制御論理から直接バスの利用を監視してもよい。帯域幅判定論理は、メモリバスがそれを越えて帯域幅制限されていると考えられる使用率、および、メモリバスがそれ未満で帯域幅制限されていないと考えられる使用率を特定するプログラム可能なしきい値レジスター202を含んでもよい。時間ウィンドウもまたプログラム可能であってもよい。帯域幅判定論理201は、メモリアクセス制御論理205に対して、帯域幅制限された状態の存在を示す表示206を提供する。メモリアクセス制御論理205には、適切な制御信号と、メインメモリ107からデータを取得するためのインタフェース論理とを提供する周知の機能が含まれている。代替的に、帯域幅判定論理201は、帯域幅制限された状態の存在を判定するための要求キュー203を監視する。要求キュー203は、メインメモリ107に対するメモリアクセス要求をキューに入れる。このキューの深さはメモリバスの使用率を示す。キューが深ければ深いほど、バスの利用率は高く、帯域幅制限された状態でメモリバスが動作している可能性が高い。ある実施形態では、帯域幅判定を評価する際に、要求キューおよび/またはバス利用率監視装置において読出しと書込みが区別されていない。他の実施形態、特に、メモリインタフェース上で一方向シグナリングを用いる実施形態では、読出しデータインタフェースが書込みデータインタフェースとは別個のものになっている場合がある。そのようなシステムでは、バス帯域幅監視装置またはキューの深さ監視装置は読出しのチェックのみを行う必要がある場合がある。バスを監視する実施形態の場合のように、帯域幅制限状態を非帯域幅制限状態と区別するキューの深さのしきい値レベルは、しきい値レジスター202においてプログラム可能である場合がある。所定のまたはプログラム可能な時間ウィンドウにわたってキューの深さの平均値をとるようにしてもよい。実施形態によっては、帯域幅制限されたオペレーション状態の存在に関する追加的な保証を提供するために2つの手法を利用する場合もある。本説明では、データブロックData1は、圧縮データブロックのサイズに対応する縮小サイズのデータブロックを表す。データブロックData1とデータブロックData2との組み合わせは、フルサイズの非圧縮データブロックを表す。帯域幅適応型メモリコントローラが、非帯域幅制限モードで動作している場合、例えば、キューの深さがしきい値レベルを下回り、帯域幅判定論理201はメモリアクセス制御論理205にその表示を提供する場合、一実施形態では、メモリアクセス制御論理は、フルサイズの非圧縮データブロックData1およびData2にアクセスするフルアクセスモードを示すように設定された制御論理のブロックサイズインジケータ207を有する。メモリコントローラがフルサイズのブロックにアクセスするすなわち、メモリコントローラが帯域幅制限状態にないとき、この結果得られるフルサイズのブロックはチェックされて、ブロックが圧縮または非圧縮のいずれの状態にあるかが調べられる。ブロックが圧縮されていなければ、メインメモリから返されたフルサイズのブロックData1Data2は要求元へ返される。一方、ブロックが圧縮されたものであれば、メインメモリから返されたフルサイズのデータブロックのData1の部分は解凍され、要求元へ返されるが、これに対して、メインメモリから返されたData2の部分は破棄される。帯域幅適応型メモリコントローラが帯域幅制限モードで動作しているとき、例えば、キューの深さがしきい値レベルを超えているとき、ブロックサイズインジケータ207は圧縮されたブロックサイズを示すように設定され、そして、メモリコントローラは、例えばData1のみなどの縮小サイズのデータブロックがメモリ要求の実行に応答してアクセスされる圧縮アクセスモードで動作する。圧縮チェック論理209は、ECCビットまたは別の圧縮タグをチェックして、縮小サイズの取得されたブロックが実際に圧縮され、かつ、縮小サイズのブロックがData1の一時的なストレージ213に格納されているかどうかを判定する。ブロックが実際には圧縮されていなかった場合、圧縮チェックブロックは、要求をData2の要求キュー215に入れることによって、フルサイズのブロックの残り部分にアクセスする必要がある旨を伝える。メモリ要件は、Data2の要求キューからメモリアクセス制御論理205により処理される。これらの要求は現在のブロックサイズ設定に関係なく固定サイズである。メインメモリから取得されたData2のデータ値は圧縮チェック論理へ戻されて、Data1の一時記憶域から得られる関連データと、例えば図示されていない別の記憶域で、マージされ、完全な非圧縮データが結果として形成される。なお、Data2の要求キュー215は図2において別個の要求キューとして示されてはいるが、いくつかの実施形態では、キュー215は要求キュー203の中へ組み込まれてもよい。なお、本明細書に記載の手法は、メインメモリ内にデータと共に格納された圧縮/非圧縮のタグ情報を保持することに係る待ち時間についての欠点の制限を試みるものであるこの試みによって圧縮状態を示すこれらのタグを保持したり、キャッシュしたりするための大きなオンチップ構造が不要になるが、その一方で、メモリ圧縮を行うことが最も有利である場合に、メインメモリ圧縮の帯域幅の節約性能の利点を最大にする。図3は、図1および2に示した実施形態に関連する例示的なフローチャートを示す。301において、帯域幅判定論理201は、メモリシステムが帯域幅制限モードで動作しているかどうかを判定する。動作していなければ、303でデータが非圧縮モードフルサイズのブロックで取得される。メモリコントローラがフルサイズのブロックにアクセスすると、この結果得られるフルサイズのブロックは315でチェックされて、ブロックが、圧縮されているか、圧縮されていないかが調べられる。315でのチェックによりブロックが圧縮されていないことが示された場合、319でメインメモリから返されたフルサイズのブロックData1Data2が要求元へ返され、フローは301へ戻る。一方、ブロックが圧縮されたものであれば、321において、メインメモリから返されたフルサイズのデータブロックのData1の部分は、解凍されて、要求元へ返される一方で、メインメモリから返されたData2の部分は破棄され、システムは301へ戻って、次のメモリアクセスを待機する。システムが帯域幅制限モード301のはいで動作している場合、メモリコントローラは圧縮モードで作動して、305において縮小サイズのメモリブロックを取得する。このブロックを取得した後、メモリコントローラはメモリブロックに関連するタグ情報を読み出し例えばECCビットをチェックし、ブロックが実際に圧縮されたものであるかの判定を309において行う。圧縮されたものであれば、メモリコントローラはData1ブロックを解凍し、次いで、310において解凍済みブロックを要求元へ返し、次のメモリアクセスを求めて301へ戻る。ブロックが非圧縮のものであれば、メモリコントローラは、311においてフルサイズの非圧縮ブロックを形成するように求められる残りのデータを取得するために別のメモリアクセスの実行をする必要があり、319においてフルサイズのブロックを要求元へ返し、次いで、次のメモリアクセスを求めて301へ戻る。なお、図3のフローにおいて、任意の特定の読出し要求のために複数のデータブロックを読み出してもよい。なお、読出し要求が複数のデータブロックこのデータブロックのなかには圧縮されているものもあるを要求することも可能な場合がある。ある実施形態では、帯域幅制限モードの場合、いくつかのフルサイズのブロックの要求を行うために、メモリコントローラは、まず要求されたブロックのそれぞれに対して第1の縮小サイズのブロックData1を読み出し、次いで、非圧縮ブロックのそれぞれに対して条件付きの第2の縮小サイズのブロックData2を読み出す。ある実施形態では、帯域幅制限モードで作動する場合、第1のアクセスによりブロックが圧縮されていないことが示されたたとき、縮小サイズのデータブロックData1に対する第1のアクセスと、第2の縮小サイズのデータブロックData2に対する条件付きの第2のアクセスとの間で、他の関連性のないメモリ要件を発行することが可能であると共に、この発行が望ましい場合がある。したがって、例えば、1つ以上の要求が第2の縮小サイズのブロックに対する要求キュー215の入力を要求する前に要求キュー203を入力したとき、要求キュー215内の要求が発行される前に1つ以上の要求を発行してもよい。本発明の実施形態の説明に際して、回路および物理的な構造体が一般的に想定されてきたが、最新の半導体設計および製造において、物理的な構造体および回路が、この後に続く設計、シミュレーション、テストあるいは製造段階での使用に適したコンピュータ読取可能な記述的形態で具現化される場合があることは十分に認識される。構成例の個別の構成要素として示された構造および機能性を、組み合わされた構造または構成要素として実装してもよい。本発明の種々の実施形態は、回路、回路のシステム、関連する方法、および、本明細書に記載のような回路、システム、および方法についての、媒体上に符号化されたデータこのような回路のHDL、VERILOG、GDSIIデータなどを有するコンピュータで読み取り可能な媒体を含むものとして考慮されている。コンピュータで読み取り可能な媒体としては、例えばディスク、テープ、または別の磁気的、光学的、もしくは電子的記憶媒体などの有形のコンピュータ読取可能な媒体が挙げられる。回路、システム、および方法についての、媒体上に符号化されたデータを有するコンピュータで読み取り可能な媒体に加えて、コンピュータで読取可能な媒体は実行命令ならびに本発明を実現するための利用可能なデータを格納してもよい。本明細書で説明した構造はプロセッサ上で実行するソフトウェア、ハードウェア上で実行するファームウェアを用いて、またはソフトウェア、ファームウェア、およびハードウェアの組み合わせにより実装されてもよい。本明細書に記載の本発明の説明は例示的であり、以下の特許請求の範囲に記載のように、本発明の範囲を限定することを意図しない。例えば、メモリコントローラの機能を示すために種々の別個のブロックが図2に示されてはいるが、実際の実施構成は別様に機能を分散してもよく、また、機能のいくつかはメモリコントローラ以外の場所に常駐させることができる。本明細書に開示される実施形態の変形および変更は、以下の特許請求の範囲に記載される本発明の範囲を逸脱することなく、本明細書に記載の説明に基づいて行うことができる。