(57)【要約】異なるバーストをサポートする複数のバス・マスタ（１２，１４，１６）と、異なる特性を有する複数のメモリとの間でインタフェース接続するために、動的にプリフェッチ・バッファ（３０）を構成するメモリ制御装置（３２）およびその方法。プリフェッチ・バッファ（３０）の少なくとも一部のライン・サイズが、バス・マスタ（１２，１４，１６）のうちの１つからの読出し要求を受信するメモリ制御装置に基づいて修正される。プリフェッチ・バッファ・ラインを最適に置換するための適応方法は、どのバッファ・ラインを置換するべきかを決定するために、優先順位順の状態（状態）フィールド情報を使用する。
2007524904.tif 000002
【特許請求の範囲】
【請求項１】
プリフェッチ・バッファを構成するための方法であって、
マスタから読出し要求を受信すること、
前記読出し要求に応答して、前記読出し要求の属性に基づいて、前記プリフェッチ・バッファの少なくとも一部のライン・サイズを選択的に修正すること、
を備える方法。
【請求項２】
請求項１に記載の方法において、前記読出し要求の前記属性は、前記マスタに対応するマスタ識別子、前記読出し要求のデータ・サイズ、または前記読出し要求のバースト長のうちの１つを含む、方法。
【請求項３】
請求項２に記載の方法において、前記ライン・サイズを選択的に修正することは、前記読出し要求の第２の属性に基づくものであり、該第２の属性は、前記マスタ識別子、前記データ・サイズ、または前記バースト長のうちの他の１つを含む、方法。
【請求項４】
データ処理システムであって、
マスタと、
メモリと、
前記マスタおよび前記メモリに結合されているとともに、複数のラインを有するプリフェッチ・バッファと、
前記プリフェッチ・バッファに結合されているとともに、前記マスタからの読出し要求に応答して、前記プリフェッチ・バッファの少なくとも一部のライン・サイズを選択的に修正するプリフェッチ制御回路と
を備えるデータ処理システム。
【請求項５】
請求項４に記載のデータ処理システムにおいて、前記プリフェッチ制御回路は、前記プリフェッチ・バッファ内で置換エントリを選択し、前記ライン・サイズを選択的に修正することは、前記置換エントリのライン・サイズを選択的に修正するステップを含む、データ処理システム。
【請求項６】
請求項５に記載のデータ処理システムにおいて、前記プリフェッチ制御回路は、前記マスタからデータ・サイズ・インジケータおよびバースト長インジケータを受信し、該データ・サイズ・インジケータおよび該バースト長インジケータに基づいて、前記置換エントリのライン・サイズを選択的に修正する、データ処理システム。
【請求項７】
請求項４に記載のデータ処理システムにおいて、前記プリフェッチ・バッファは、複数のラインおよび複数の状態フィールドを含み、該複数のラインのそれぞれが該複数の状態フィールドのうちの対応する１つを有する、データ処理システム。
【請求項８】
請求項７に記載のデータ処理システムにおいて、前記複数の状態フィールドのそれぞれが、アドレス・タグ・フィールドと、前記プリフェッチ・バッファにおける対応するラインが有効でないことを示す無効フィールドと、前記プリフェッチ・バッファにおける対応するラインが以前のバースト読出し要求に応答して供給されたことを示す使用済みフィールドと、前記プリフェッチ・バッファにおける対応するラインが以前の非バースト読出し要求に応答して供給されたことを示す有効フィールドとを含む、データ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶装置に関し、より詳細には、プロセッサとメモリとの間のメモリ・インタフェースに関する。
【背景技術】
【０００２】
種々のタイプのメモリと１つまたは複数のデータ処理マスタとの間をインタフェース接続するために、メモリ制御装置が、データ処理システムにおいて使用される。種々のタイプのメモリとしては、ＳＲＡＭ、ＤＲＡＭ、フラッシュ、ＲＯＭ、ＭＲＡＭ等がある。高性能のデータ・プロセッサ・システムは、読出しおよび書込みメモリの待ち時間を短縮し、それによりデータ・プロセッサが、命令ストリームの実行を続行するのを支援する「スマート」メモリ制御装置を使用する。メモリ制御装置は、従来は、プロセッサがデータを必要とする前に、必要なデータを取り出すためのプリフェッチ・バッファを使用してはいなかった。しかしながら、「スマート」メモリ制御装置では、データ・プロセッサがデータを要求する前に、データを入手するためのプリフェッチ・バッファが内蔵されている。スマート・メモリ制御装置のプリフェッチ・ユニットは、データ・プロセッサへのデータを識別し、供給するために使用されるタグ、データ、および状態記憶位置を含む。
【０００３】
「ディスクからのデータの適応プリフェッチ（Adaptive Prefetching Of Data From A Disk）」なる名称の米国特許第６，５２９，９９８号の方法は、ディスク記憶装置からデータをプリフェッチするための最適プリフェッチ方針を適応して選択するための方法を提案している。読出しおよび書込みの誤りの過去の履歴を基にする方針が使用される。プリフェッチ方針を決定するために、乱数と共に所定のしきい値が使用される。しきい値は、動作の間に発生する回避可能な読出しの誤りの数を基に定義され、更新される。そのシステムは、静的固定サイズのバッファを予め定めるため、複数のバス・マスタおよび種々のメモリを有するシステムにおいて、その使用は制限される。
【０００４】
「適応ストリーム・バッファ（Adaptive Stream Buffers ）」なる名称の米国特許第５，９５８，０４０号の方法は、命令特定プリフェッチ回避を使用する。テーブルは、ＣＰＵが命令を実行する度にキャッシュ・ラインが使用されないアドレス情報を記憶する。以後の命令アドレスが、テーブル内のアドレスと比較され、以後のアドレスがテーブル内で発見された場合にはバッファは割り当てられない。このシステムは、命令ストリーム（命令読出し動作）上の動作に限定され、データ読出しアクセスに応答しない。それ故、データ読出しアクセスは性能について最適化されず、開示のシステムは固定サイズのバッファに制限されている。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
異なるバーストをサポートする複数のバス・マスタと、異なる特性を有する複数のメモリとの間でインタフェース接続するために、動的にプリフェッチ・バッファを構成するメモリ制御装置およびその方法を提供する。
【発明を実施するための最良の形態】
【０００６】
以下に本発明について説明するが、この説明は例示としてのものであって、本発明は添付図面に限定されない。図面においては、同一の参照番号は同様な構成要素を示す。
当業者であれば、図面内の構成要素の縮尺は、簡便にかつ明確に示すため、必ずしも正確なものでないことを理解することができるだろう。例えば、本発明の実施形態を理解しやすくするために、図面内のある構成要素の寸法は、他の構成要素の寸法より誇張されている場合がある。
【０００７】
図１は、データ処理システム１０のブロック図である。データ処理システム１０は、一般に、データ処理システム１０のバス・マスタとして機能する複数のデータ・プロセッサを有する。第１のマスタ１２、第２のマスタ１４、および第３のマスタ１６は、それぞれスイッチ回路１９を含む相互接続回路１８に接続されている。マスタ１２、マスタ１４、およびマスタ１６は、バス・マスタとして機能し、スイッチ回路１９とメモリ制御装置２０との間のメモリ制御装置相互接続により形成されるバスの単独の制御を選択的に行う。１つの形態の場合には、スイッチ回路１９は、クロスバー・スイッチとして具体化される。クロスバー・スイッチは、通常、アドレス・デコーダ、およびメモリ制御装置２０へのマスタ１２、１４、および１６のいずれか１つのアクセスを許可するためのバス調停機構を含む。データ処理システム１０は、さらに、それぞれがメモリ制御装置２０に接続されている第１のメモリ２２、第２のメモリ２４、および第３のメモリ２６を含む。データ処理システム１０は、また、１つまたは複数の追加のスレーブ・デバイス２８を含む。他のスレーブ・デバイス２８の例としては、タイマ、ＬＣＤ制御装置等がある。メモリ制御装置２０は、プリフェッチ・バッファ３０およびプリフェッチ制御回路３２を含む。第１のマスタ１２は、スイッチ回路１９との間に設けられる種々のシグナリングまたは相互接続を有する。マスタ識別子、すなわちマスタ識別（ＩＤ）信号が、第１のマスタ１２からスイッチ回路１９を接続している。データ・サイズ１信号が、第１のバス・マスタ１２からスイッチ回路１９を接続している。他の制御１信号の形態で、１つまたは複数の制御信号が、第１のバス・マスタ１２からスイッチ回路１９を接続している。バースト長１信号が、第１のマスタ１２からスイッチ回路１９を接続している。双方向アドレス／データ１バスが、第１のマスタ１２とスイッチ回路１９の間を接続している。この相互接続は、全体でマスタ１相互接続を形成している。類似のマスタ相互接続シグナリングが、マスタ１４および１６のそれぞれとスイッチ回路１９との間を接続しているが、便宜上詳細には図示されていない。メモリ制御装置相互接続が、スイッチ回路１９とメモリ制御装置２０との間を接続している。マスタ識別（ＩＤ）信号バスが、スイッチ回路１９からメモリ制御装置２０を接続している。データ・サイズ・インジケータを提供するデータ・サイズ信号バスが、スイッチ回路１９からメモリ制御装置２０を接続している。バースト長インジケータを提供するためのバースト長信号バスが、スイッチ回路１９からメモリ制御装置２０を接続している。「その他の制御」と表示されている信号バスが、選択されたバス・マスタからメモリ制御装置２０に、種々の追加の制御情報を提供するために、スイッチ回路１９からメモリ制御装置２０を接続している。双方向アドレス／データ・バスが、スイッチ回路１９とメモリ制御装置２０との間を接続している。メモリ２２、２４、および２６のそれぞれとメモリ制御装置２０との間にはメモリ相互接続が設けられている。例えば、第１のメモリ相互接続が、メモリ制御装置２０と第１のメモリ２２との間を接続している。バス幅信号が、第１のメモリ２２からメモリ制御装置２０を接続している。多重ビット双方向アドレス／データ／制御バスが、第１のメモリ２２とメモリ制御装置２０との間を接続している。図の形態の場合には、第２のメモリ相互接続および第３のメモリ相互接続は、第１のメモリ相互接続と同じものであるが、表示の便宜上詳細には図示されていない。
【０００８】
動作の間、マスタ１２、１４、および１６のうちのいずれか１つが、メモリの読出し要求によりアドレス指定されるメモリ２２、２４、および２６のうちのいずれかに少なくとも１つまたは複数のデータ要求を発行または生成する。これに応答して、相互接続回路１８が、要求しているマスタにメモリ制御装置相互接続の所有権を許可する。マスタからの読出し要求は、メモリ制御装置２０によりチェックされる。読出し要求は、データ・サイズおよびバースト長のような１つまたは複数の属性を有する。メモリ制御装置は、マスタＩＤを識別し、データ・サイズが要求され、バースト長およびメモリ・アドレスが要求される。バースト長信号は、メモリ制御装置２０に要求した動作がバースト動作であるか否かを通知する。メモリ制御装置相互接続内の情報に基づいて、アドレスがプリフェッチ・バッファ３０内でヒットし、要求されたデータがプリフェッチ・バッファ内に含まれていることを意味している場合には、データが直接スイッチ回路１９に送られ、要求しているマスタに返送される。以下に説明するプリフェッチ・バッファ３０内の状態ビットがそれに応じて更新される。
【０００９】
アドレスが、プリフェッチ・バッファ３０内でヒットしない場合には、要求しているマスタがプリフェッチすることができるかどうかに基づいて、プリフェッチ・バッファ・ライン・サイズの動的構成が、データ・サイズおよびバースト長に基づいて行われる。以下に説明する適合バッファ・ライン置換アルゴリズムが、どのバッファ・ラインが置換されるのかを選択し、新しいデータが書き込まれる。プリフェッチ制御回路３２は、バッファ構成およびメモリ・バス幅に基づいて、メモリ２２、２４、および２６へのアクセスの回数およびサイズを決定する。次に、要求されているデータが、要求しているマスタに提供される。
【００１０】
図２は、異なるバースト長サポートに基づくプリフェッチ・バッファ３０の構成の一部の図面である。例示としての形態の場合には、複数のバースト・ブロックまたはバースト・ライン３６、３８、４０、４２、４４、および４６のような複数のバースト・ラインが提供される。バースト・ライン３６および３８は、８ワード（すなわち、３２ビット・ワード）バースト動作をサポートする。バースト・ライン３６のような各バースト・ラインには、状態フィールドが存在し、さらに、所定の数のデータ・ワードがデータ・フィールド５０に存在する。プリフェッチ・バッファ３０は、各バースト・ライン３６および３８において８ワード・バースト動作を行うように構成されているが、プリフェッチ・バッファ３０は、各バースト・ライン４０、４２、４４、４６において４ワード・バースト動作を行うように構成されている。２つの異なるサイズのバースト・ラインが存在するので、マスタが少なくとも２つの長さのメモリ・バーストをサポートしているか、または逆に異なるバス・マスタが異なるバースト長をサポートすることは明らかである。バースト・ライン３６からのデータは、バースト・ライン３６からのデータとは異なるメモリ２２、２４、および２６のうちの1 つから読出されたのもであってもよし、同じメモリから読み出されたものであってもよいことを理解されたい。すべての他の例示のバースト・ラインにおけるデータ・ソースについても同じことがいえる。データ・サイズ信号およびバースト長信号に応答して、プリフェッチ制御回路３２により、プリフェッチ・バッファ３０の特定の構成が生成される。データ・サイズ信号は、各バースト・ライン内のデータの１つの単位のサイズを決定する。バースト長信号は、各バースト・ライン当たりの１つの単位の数を決定する。図２の場合には、データ・サイズ信号は、長さが１ワードのデータ・サイズを選択する。複数のワードまたはバイトのような他のデータ・サイズを、データ・サイズ信号により示すことが可能である。バースト長信号により、種々のタイプのバス・マスタをデータ処理システム１０で使用することができる。例えば、第１のマスタ１２が、長さ８ワードのバーストをサポートするのみであり、第２のバス・マスタ１４が、長さ４ワードのバーストをサポートする場合には、図２のプリフェッチ・バッファ構成は、これらのバス・マスタの両方をサポートする。対照的に、従来のシステムは、２つの異なるバス・マスタを別々にサポートするために、所定の固定の構成の別々の記憶要素を必要とする。図２のプリフェッチ・バッファ３０の図示の部分においては、バッファ記憶エリアは、提供される要求されたアクセスに基づいて動的に構成可能であることに留意されたい。それ故、図の構成は、それぞれ８ワードを保持している２つのバースト・ライン・バッファ、およびそれぞれ４ワードを保持している４つのバースト・ライン・バッファを含んでいるが、バースト要求の履歴およびタイプにより、バッファは、アクセス要求を受信したときに、任意の組合せの長さを動的に構成することができる。バッファの動的構成は、少なくとも部分的にデータ・サイズ信号およびバースト長信号に基づいて行われる。
【００１１】
図３は、非バースト・メモリ動作用のプリフェッチ・バッファ３０の一部の他の構成を示す。データ・サイズ信号およびバースト長信号に応じて適応して、プリフェッチ制御回路は、プリフェッチ・バッファ３０のライン・サイズを構成する。バースト長信号は、読出し要求を送っているバス・マスタが、要求したデータに対するバースト処理をサポートしていないことを示す。これは、アクセスのタイプのためであるか、あるいは他の任意の種々の理由のためである。バッファ・ライン５２、５４、５６、および５８は、それぞれ状態フィールドに付随する１つのデータ・ワードを含む。さらに、バッファ・ライン６０および６２は、２ワードのデータ・サイズを示すデータ・サイズ信号に応答して、状態フィールドに付随する２つのデータ・ワードを含む。各バッファ・ライン５２、５４、５６、５８、６０、および６２においては、バースト長信号はデータ・バーストを表示しない。それ故、データ・サイズ信号およびバースト長信号を受信しているプリフェッチ制御回路３２に応答して、種々の異なるプリフェッチ・バッファ構成が具体化され得ることに留意されたい。
【００１２】
図４は、図２および図３の状態フィールドのうちのいずれかを示す状態フィールド６４の例である。状態フィールド６４は、アドレス・タグ・フィールド、無効フィールドまたは無効インジケータ、使用済みフィールドまたは使用済みインジケータ、有効フィールドまたは有効インジケータ、プリフェッチ・フィールドまたはプリフェッチ・インジケータ、ビジー・バス・フィールドまたはビジー・バス・インジケータ、およびビジー充填（Busy Fill ）フィールドまたはビジー充填インジケータを含む。図３および図４に示すように、状態フィールドは、プリフェッチ・バッファ３０における最小サポート・ライン・サイズに関連する。タグ・フィールドは、プリフェッチ・バッファ３０のどこにデータの特定のラインが存在するのかを示す情報を含む。無効インジケータは、プリフェッチ・バッファ３０が有効なデータを含んでいないことを示す。すなわち、無効フィールドは、プリフェッチ・バッファ３０におけるデータの対応するラインが有効でないことを示す。使用済みインジケータは、プリフェッチ・バッファ３０がバス・バースト・タイプの読出しを満足させるために提供された有効なデータを含むことを示す。すなわち、使用済みフィールドは、プリフェッチ・バッファ３０におけるデータの対応するラインが、以前のバースト読出し要求に応答して提供されたことを示す。有効インジケータは、プリフェッチ・バッファ３０がバスの単一タイプ（すなわち、非バースト）読出しを満足させるために提供された有効なデータを含むことを示す。すなわち、有効フィールドは、プリフェッチ・バッファ３０内の対応するラインが、以前の非バースト読出し要求に応答して提供されたことを示す。プリフェッチ・インジケータは、プリフェッチ・バッファ３０が、将来のバス・アクセスを満足させるためにプリフェッチした有効なデータを含むことを示す。ビジー・バス・インジケータは、プリフェッチ・バッファ３０が、バス・マスタのうちの１つが開始したバス・バースト読出しを満足させるために現在使用中であることを示す。ビジー充填インジケータは、メモリからデータ受信するためにプリフェッチ・バッファ３０がすでに割り当てられ、メモリ・アクセスが依然として進行中であることを示す。メモリ・アクセスは、プリフェッチ制御回路３２が行ったプリフェッチ動作により開始され、バス・マスタの１つからのアクセス要求には直接には関連しない。状態フィールド６４におけるこれらのインジケータは、プリフェッチ・バッファ３０内のどの１つまたは複数のラインが置換エントリとして選択されるのかを決定するために使用される。どの１つまたは複数のラインが置換エントリとして選択されるのかを決定することにおける選択は、図４に示すような無効、使用済み、有効、プリフェッチ、ビジー・バス、およびビジー充填の順序で、状態フィールドのインジケータの優先順位により行われる。他の実施形態では、図４のインジケータとは異なるインジケータを使用することができるし、あるいは別の方法でインジケータを組み合わせたり、エンコードしたりすることができることに留意されたい。
【００１３】
図５は、図１のプリフェッチ制御回路３２の一実施態様７０の詳細図である。動的バッファ構成論理７２は、データ・サイズ属性信号を受信するための第１の入力、バースト長属性信号を受信するための第２の入力、メモリ２２、２４、または２６のようなアドレス指定されたメモリからバス幅信号を受信するための第３の入力を有する。動的バッファ構成論理７２の第１の出力は、適応バッファ記憶置換論理７４の入力に接続されている。適応バッファ記憶置換論理７４の出力は、バッファ部分置換インジケータを提供し、要求タイプ論理７６の第１の入力に接続されている。動的バッファ構成論理７２の第２の出力は、要求タイプ論理７６の第２の入力に接続されている。要求タイプ論理７６の出力は、図２の３つのメモリ相互接続のうちの１つに接続されている。
【００１４】
図６〜図８は、データ処理システム１０の動作、特にプリフェッチ制御回路３２の実施態様７０の動作を示すフローチャート７９である。ステップ８０において、読出しアクセスが開始される。メモリ制御装置２０は、ステップ８２において、バス・マスタ１２、１４、または１６のうちの１つから読出し要求を受信する。ステップ８４において、読出し要求がプリフェッチ・バッファ３０においてヒットしたか否かについての判断が行われる。この判断は、メモリ制御装置２０において、従来のタグ比較（図示せず）として行われる。タグ比較の結果がヒットになった場合には、ステップ８６に進み、そこでプリフェッチ・バッファ３０からマスタに対する読出しが行われる。ステップ８８において読出しアクセスは終了する。ヒットしなかった場合には、ステップ９０が実行される。要求しているマスタのマスタ識別（ＩＤ）信号バスが、プリフェッチ・バッファ３０を再構成することができるか否かについての判断がメモリ制御装置２０内で行われる。論理回路（図示せず）が、どのバス・マスタが再構成機能を有しているかについての判断を行う。他の実施形態の場合には、任意のバス・マスタにより再構成を行うことができるため、判断ステップ９０を省略することができる。要求しているバス・マスタがプリフェッチ・バッファ３０を再構成することができる場合には、ステップ９２が実行される。読出しアクセスに対応するデータ・サイズ属性およびバースト長属性に基づいて、適応バッファ記憶置換論理７４が再構成インジケータを選択的に有効化する。再構成インジケータは、多数の形態のうちの１つをとることができる。例えば、再構成インジケータは、信号であっても、機械状態であっても、論理状態であっても、静的に駆動された信号であっても、フラグ・インジケータであっても、集積回路のピンにおいて外部供給された信号等であってもよい。要求しているバス・マスタがプリフェッチ・バッファ３０を再構成することができない場合には、再構成インジケータは、適応バッファ記憶置換論理７４によりステップ９４において無効化される。いずれの場合も、ステップ９６が実行され、状態フィールドのうちの一部または全部が、プリフェッチ・バッファ３０における任意の無効エントリについてチェックされる。「エントリ」という用語は、全ライン、ラインの一部、または２つ以上のラインのいずれかであることに留意されたい。ステップ９６において、無効エントリが存在するか否かについての判断が行われる。無効エントリが存在した場合には、ステップ１００において、ラインまたは無効であると判断されたラインの一部に置換エントリというマークがつけられる。マークがつけられたラインの一部は、置換されるエントリのサイズに依存する。１つまたは複数のライン、すなわち置換エントリとしての複数のラインの少なくとも一部の選択は、置換データのために要求される必要容量に依存して実行される。ステップ１００の後で、図８に関連して説明する他のステップが実行される。
【００１５】
ステップ９８において、無効エントリが発見されなかった場合には、ステップ１０２において、任意の使用済みエントリについて状態フィールドがチェックされる。ステップ１０４において、使用済みエントリを発見した場合には、ステップ１０６において、使用済みエントリに置換エントリというマークがつけられる。この場合も、使用済みエントリは、置換されるエントリのサイズに依存して、１つまたは複数のライン、あるいは１つまたは複数のラインの一部であってもよい。ステップ１００の後で、図８に関連して説明する他のステップが実行される。使用済みエントリが発見されなかった場合には、ステップ１０８において、任意の１つの有効エントリについて状態フィールドがチェックされる。ステップ１０８の後で、図７に示すステップが実行される。
【００１６】
図７は、図６の動的バッファ・エントリ置換方法の続きを示す。ステップ１１０において、任意の１つの有効エントリが存在するか否かについての判断が行われる。少なくとも１つの有効エントリが発見されなければならない。複数の有効エントリを発見した場合には、以後の処理に対して有効エントリのうちの任意の１つで十分である。１つの有効エントリが発見された場合には、ステップ１１２が実行される。発見された有効エントリのラインまたはラインの一部には、置換エントリというマークがつけられる。ステップ１１２の後で、図８に関連して説明する他のステップが実行される。有効エントリが１
つも発見されなかった場合には、ステップ１１４において、任意のビジー・ヒット・エントリについて状態フィールドがチェックされる。ステップ１１６において、ビジー・ヒット・エントリが存在するか否かについての判断が行われる。ステップ１１６において、ビジー・ヒット・エントリが存在する場合には、ステップ１１８において、ビジー・ヒット・エントリに置換エントリというマークがつけられる。この場合も、ビジー・ヒット・エントリは、置換されるエントリのサイズに依存して、１つまたは複数のライン、あるいは１つまたは複数のラインの一部であってもよい。ステップ１１８の後で、図８に関連して説明する他のステップが実行される。ビジー・ヒット・エントリが発見されなかった場合には、ステップ１２０において、任意のビジー充填エントリについて状態フィールドがチェックされる。ステップ１２２において、任意のビジー充填エントリが発見されたか否かについての判断が行われる。ビジー充填エントリが発見された場合には、ステップ１２４が実行される。ビジー充填エントリは、置換するエントリのサイズに依存して、１つまたは複数のライン、あるいは１つまたは複数のラインの一部であってもよい。ステップ１２４の後で、図８に関連して説明する他のステップが実行される。ビジー充填エントリが発見されなかった場合には、ステップ９６に戻りこの方法が反復され、十分な数の置換エントリが識別されるまでこの方法を実行する。充填の動的性質のために、十分な数の置換エントリを識別する解決方法が最終的に行われる。
【００１７】
図８は、置換エントリにステップ１００、１０６、１１２、１１８、および１２４においてマークを付けた後で実行するステップ１３０、１３２、１３４、１３６、１３８、および１４０を示す。再構成インジケータに基づいて、置換エントリの状態フィールドが選択的に更新される。この更新がプリフェッチ・バッファ３０を再構成する。アドレス指定されたメモリに対する読出し要求の回数は、ステップ１３２においてメモリ・バス幅に基づいて決定される。１つまたは複数の読出し要求のデータ・サイズは、置換エントリのデータ・サイズおよび状態フィールド情報に基づいて決定される。ステップ１３４において、１つまたは複数の読出し要求が、読出し要求の決定された回数およびサイズにより、アドレス指定されたメモリに対して生成される。ステップ１３６において、要求されたデータが、プリフェッチ・バッファの置換エントリ内に記憶される。ステップ１３８において、現在の要求の一部の場合に、要求されたデータが要求しているマスタに提供される。要求されたデータが現在の要求の一部でない場合（すなわち、それがプリフェッチのみの要求の一部である場合）、データは、プリフェッチ・バッファ３０の識別された置換部分に記憶される。
【００１８】
システムの性能を強化するために、多重プロセッサ・データ処理システムにおいて、構成可能なプリフェッチ・バッファが形成されたことは明らかである。プリフェッチ・バッファは、データ・サイズおよびバースト長のような現在の読出し要求属性に基づいて動的に構成可能である。誤り率を最小限度に低減し、システムの電力および性能特性を改善するために、適応プリフェッチ・バッファ置換法が使用される。誤り率は、将来のバス・マスタ要求を効率的にプリフェッチすることにより低減される。システムのメモリ・リソースからの読出しデータの不必要なプリフェッチを最小限度に低減することにより、電力は低減される。多数のシステム機能を収容するために動的方法で効率的に編成され、電力を最小限度まで低減し、システム性能を改善するために効率的に置換されたデータを有するメモリ制御装置が形成されたことを理解されたい。
【００１９】
プリフェッチ・バッファ置換法は、従来のメモリ置換アルゴリズムよりも効率的である。プリフェッチ・バッファ置換ポリシーの結果は、プリフェッチする場合に、「一番古いものを更新する」こと、かつ要求フェッチ（すなわち、現在のバス・マスタ要求を実際に満足させているフェッチ）のために「最新のものを空にする」ことに基づいて、充填のためにバッファが選択されることである。プリフェッチ・バッファ置換ポリシーにより、非プリフェッチ動作可能なバス・マスタにメモリ・アクセスが許可された場合、プリフェッチされたデータを有効状態に維持することができる。
【００２０】
上記説明においては、特定の実施形態を参照しながら本発明を説明してきた。しかしながら、通常の当業者であれば、添付の特許請求の範囲に記載する本発明の範囲から逸脱することなしに種々の修正および変更を行うことができることを理解されよう。例えば、プリフェッチ・バッファを動的に構成するために、他のまたは追加の読出し要求属性を使用することができる。本発明のプリフェッチ・バッファ方法は、マイクロプロセッサ上であれ、マイクロコントローラ上であれ、ＤＳＰ上であれ、または他のデジタル回路上であれ、任意のマスタまたはスレーブ（メモリ）インタフェース・ユニットを含む任意のシステム上で使用され得る。本発明によるプリフェッチ・バッファ構造および方法は、任意のデータ処理アーキテクチャ、またはプロセッサ・シリーズと共に使用され得る。プリフェッチ・バッファの状態を動的に構成し選択するために状態機械を使用することができるが、従来の組合せ論理も本発明の構造で実施することができる。それ故、説明および図面は、本発明を制限するものではなく、例示としてのものと見なすべきであり、すべてのこのような修正は本発明の範囲内に含まれる。
【００２１】
特定の実施形態を参照しながら利益、他の利点、および問題の解決方法を説明してきた。しかしながら、任意の利益、利点、または解決方法をより顕著なものにすることができる利益、利点、問題の解決方法、および任意の構成要素を、任意のすなわちすべての請求項の重要な、必要なあるいは本質的な機能または構成要素と解釈すべきではない。本明細書で使用する場合、「備える」、「備えている」またはその任意の他の派生語は、構成要素のリストを備えるプロセス、方法、物品、または装置が、これらの構成要素だけを含むだけでなく、明示されていないまたはこのようなプロセス、方法、物品、または装置に固有な他の構成要素を含むことができるというように、非排他的なものを含むことができるようにするためのものである。
【図面の簡単な説明】
【００２２】
【図１】本発明によるプリフェッチ・バッファを含むメモリ制御装置を備えるデータ処理システムのブロック図。
【図２】本発明の１つの形態による第１のプリフェッチ・バッファ構成の図。
【図３】本発明の他の形態による第２のプリフェッチ・バッファ構成の図。
【図４】本発明によるプリフェッチ・バッファのラインの状態フィールドの図。
【図５】プリフェッチ・バッファの動的構成、その内部でのデータ置換を行うための制御回路のブロック図。
【図６】プリフェッチ・バッファを適応するように構成し、プリフェッチ・バッファにおいてデータを置換するための方法のフローチャート。
【図７】プリフェッチ・バッファを適応するように構成し、プリフェッチ・バッファにおいてデータを置換するための方法のフローチャート。
【図８】プリフェッチ・バッファを適応するように構成し、プリフェッチ・バッファにおいてデータを置換するための方法のフローチャート。
【図１】
2007524904.tif 000003
【図２】
2007524904.tif 000004
【図３】
2007524904.tif 000005
【図４】
2007524904.tif 000006
【図５】
2007524904.tif 000007
【図６】
2007524904.tif 000008
【図７】
2007524904.tif 000009
【図８】
2007524904.tif 000010
【手続補正書】
【提出日】平成19年6月18日(2007.6.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プリフェッチ・バッファ（３０）を構成するための方法であって、
マスタ（１２）から読出し要求を受信すること、
前記読出し要求に応答して、前記読出し要求の属性に基づいて、前記プリフェッチ・バッファ（３０）の１つまたは複数のプリフェッチ・バッファ・ライン（５２，６０）の長さを調整されたライン・サイズに選択的に修正すること（ステップ１３０）、
を備え、前記選択的に修正することによって、バッファ記憶を前記１つまたは複数のプリフェッチ・バッファ・ラインの未使用部分に専念させることを取りやめ、前記プリフェッチ・バッファは、処理の間に異なる全長のラインを有する（図２または図３）、方法。
【請求項２】
請求項１に記載の方法において、前記読出し要求の前記属性は、前記マスタに対応するマスタ識別子、前記読出し要求のデータ・サイズ、前記読出し要求のバースト長のうちの１つを含む、方法。
【請求項３】
請求項２に記載の方法において、前記１つまたは複数のプリフェッチ・バッファ・ラインの全長を選択的に修正することは、前記読出し要求の第２の属性に基づくものであり、該第２の属性は、前記マスタ識別子、前記データ・サイズ、前記バースト長のうちの他の１つを含む、方法。
【請求項４】
データ処理システム（１０）であって、
マスタ（１２）と、
メモリ（２２）と、
前記マスタ（１２）および前記メモリ（２２）に結合されているとともに、複数のラインおよび複数の状態フィールドを有するプリフェッチ・バッファ（３０）であって、前記複数のラインのそれぞれは、前記複数の状態フィールドのうちの対応する１つを有し、前記複数の状態フィールドのそれぞれは、アドレス・タグ・フィールドと、前記プリフェッチ・バッファにおける対応するラインが有効でないことを示す無効フィールドと、前記プリフェッチ・バッファにおける対応するラインが以前のバースト読出し要求に応答して供給されたことを示す使用済みフィールドと、前記プリフェッチ・バッファにおける対応するラインが以前の非バースト読出し要求に応答して供給されたことを示す有効フィールドとを含む、プリフェッチ・バッファ（３０）と、
前記プリフェッチ・バッファ（３０）に結合されているとともに、前記マスタからの読出し要求に応答して、前記プリフェッチ・バッファの少なくとも一部のライン・サイズを選択的に修正するプリフェッチ制御回路（３２）と
を備えるデータ処理システム（１０）。
【請求項５】
請求項４に記載のデータ処理システムにおいて、前記プリフェッチ制御回路（３２）は、前記プリフェッチ・バッファ（３０）内で置換エントリを選択し、前記ライン・サイズを選択的に修正することは、前記置換エントリのライン・サイズを選択的に修正することを含む、データ処理システム。
【国際調査報告】
2007524904.tif 000011