(57)【要約】データ処理システム（１０）には、相互接続（２２）が含まれ、第１相互接続マスタ（１２）及び第２相互接続マスタ（１４）が、その相互接続に接続される。共有記憶装置（３５）は、その相互接続に接続され、第１相互接続マスタ及び第２相互接続マスタによって用いられる。また、このデータ処理システムには、第１相互接続マスタに対応する第１制御記憶回路（６０，６４）と、第２相互接続マスタに対応する第２制御記憶回路（６２，６６）とが含まれる。一実施形態において、プリフェッチ回路（４０）は、第１制御記憶回路及び第２制御記憶回路に接続され、第１相互接続マスタ及び第２相互接続マスタのうちのどちらが、共有記憶装置へのアクセスを要求しているかに基づき、第１制御記憶装置及び第２制御記憶回路のうちの一方を選択する。次いで、プリフェッチ回路は、選択した制御記憶回路を用いて、共有記憶装置へのアクセスによってトリガされるプリフェッチ動作を決定する。
2007500402.tif 000002
【特許請求の範囲】
【請求項１】
データ処理システムであって、
相互接続と、
前記相互接続に接続された第１相互接続マスタと、
前記相互接続に接続された第２相互接続マスタと、
前記相互接続に接続され、前記第１相互接続マスタ及び前記第２相互接続マスタによって用いられる共有記憶装置と、
前記第１相互接続マスタに対応する第１制御記憶回路と、
前記第２相互接続マスタに対応する第２制御記憶回路と、
前記第１制御記憶回路及び前記第２制御記憶回路に接続されたプリフェッチ回路と、
を備え、前記プリフェッチ回路は、前記第１相互接続マスタ及び前記第２相互接続マスタのうちのどちらが前記共有記憶装置へのアクセスを要求しているのかに基づき、前記第１制御記憶回路及び前記第２制御記憶回路のうちの一方を選択し、該選択した制御記憶回路を用いて、前記共有記憶装置へのアクセスによってトリガされるプリフェッチ動作を決定する、データ処理システム。
【請求項２】
請求項１に記載のデータ処理システムにおいて、前記第１相互接続マスタは、命令を実行し、前記第１制御記憶回路及び前記プリフェッチ回路は、プリフェッチを命令アクセスに選択的に制限する、データ処理システム。
【請求項３】
請求項１に記載のデータ処理システムにおいて、前記第１相互接続マスタは、直接メモリ・アクセスを行い、前記第１制御記憶回路及び前記プリフェッチ回路は、プリフェッチをデータ・アクセスに選択的に制限する、データ処理システム。
【請求項４】
請求項１に記載のデータ処理システムにおいて、前記第１相互接続マスタは、デバッグ動作を行い、前記第１制御記憶回路及び前記プリフェッチ回路は、プリフェッチを防止することによってプリフェッチを選択的に制限するデータ処理システム。
【請求項５】
請求項１に記載のデータ処理システムにおいて、前記第１制御記憶回路及び前記プリフェッチ回路は、非バースト・アクセス用のプリフェッチを防止することによって、プリフェッチを選択的に制限する、データ処理システム。
【請求項６】
プリフェッチ制御を提供するための方法であって、
記憶装置へアクセスするためのアクセス要求を受信すること、
プリフェッチ・バースト・アクセス制御情報を記憶するプリフェッチ制御記憶回路を提供すること、
前記バースト・アクセス制御情報、及び前記アクセス要求がバースト・アクセスであるか否かに基づき、前記記憶装置へのプリフェッチを選択的に起動すること、
を備える方法。
【請求項７】
請求項６に記載の方法であって、更に、
第１相互接続マスタを提供すること、
第２相互接続マスタを提供すること、
を備え、前記プリフェッチ制御記憶回路を提供する段階は、前記アクセス要求が前記第１相互接続マスタからであるのか、あるいは前記第２相互接続マスタからであるのかに基づき、前記バースト・アクセス制御情報を提供する複数のプリフェッチ制御記憶回路のうちの１つを選択することを含む、方法。
【請求項８】
データ処理システムにおいてプリフェッチ制御を提供するための方法であって、
第１相互接続マスタを提供すること、
第２相互接続マスタを提供すること、
共有記憶装置へアクセスするためのアクセス要求を受信すること、
前記アクセス要求が前記第１相互接続マスタからであるのか、あるいは前記第２相互接続マスタからであるのかに基づき、プリフェッチ制御記憶回路を選択すること、
前記共有記憶装置へのアクセス要求によってトリガされるプリフェッチ動作を制御するために、前記プリフェッチ記憶回路に記憶されている制御情報を用いること、
を備える方法。
【請求項９】
請求項８に記載の方法において、前記共有記憶装置へのアクセス要求によってトリガされるプリフェッチ動作を制御するために、前記プリフェッチ記憶回路に記憶された制御情報を用いる段階は、アクセス要求がバースト・アクセスであるか否かに基づき、前記共有記憶装置へのプリフェッチを選択的に起動することを含む、方法。
【請求項１０】
請求項８に記載の方法において、前記共有記憶装置へのアクセス要求によってトリガされるプリフェッチ動作を制御するために、前記プリフェッチ記憶回路に記憶された制御情報を用いる段階は、アクセス要求が、命令アクセスであるのか、あるいはデータ・アクセスであるのかに基づき、前記共有記憶装置へのプリフェッチを選択的に起動することを含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システムに関する。より詳細には、データ処理システム内におけるプリフェッチ制御に関する。
【背景技術】
【０００２】
プリフェッチ処理は、一般的に、データ処理システム内の情報にアクセスするために用いられる。情報に対する要求に先立ち、その情報をプリフェッチすることによって、バス・マスタから要求される情報をアクセスすることにより生じる待ち時間を低減し得る。しかしながら、通常のプリフェッチ処理方式では、バス・マスタが、プリフェッチされた情報へのアクセスを要求しないことがあるため、多数のプリフェッチが無駄になる。一般的なプリフェッチ処理方式の他の欠点は、プリフェッチ動作が、利用可能なメモリ帯域幅のかなりの部分を必要とし、これが、バス・マスタによって要求される要求時フェッチを妨害し得ることである。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従って、無駄なプリフェッチの数を低減し、データ・プロセッサ機能への無用な妨害を防止し、これによって消費電力量を低減し、また、データ・プロセッサ性能を最適化するプリフェッチ処理方法に対するニーズが存在する。
【課題を解決するための手段】
【０００４】
本発明の一実施形態は、データ処理システム内における選択的プリフェッチ制御に関する。例えば、多重マスタ・データ処理システム内において、プリフェッチ動作は、例えば、アクセス要求を行うマスタの識別子及びアクセス要求のタイプ（例えば、アクセス要求がデータ用であるのか、あるいは命令用であるのか、もしくはアクセス要求がバースト・アクセスであるのか、あるいは非バースト・アクセスであるのか）のような属性に基づき、マスタによるアクセス要求（例えば、読出しアクセス要求、要求時フェッチとも称される）によってトリガされ得る。プリフェッチ動作は、例えば、データ処理システム内における各マスタに関連するプリフェッチ制御情報を記憶可能なプリフェッチ制御レジスタ（又は他のプリフェッチ制御記憶回路）を用いることによって、決定又は制御され得る。幾つかの実施形態において、プリフェッチ動作は、プリフェッチが発生しないようにプリフェッチを抑制することを含み得る。データ処理システム内においてプリフェッチを選択的に制御することによって、余分な電力を消費し性能低下をもたらす無駄なプリフェッチを防止し得る。
【０００５】
本発明の一実施形態は、データ処理システムに関する。このデータ処理システムは、相互接続と、相互接続に接続された第１相互接続マスタと、相互接続に接続された第２相互接続マスタと、相互接続に接続され第１相互接続マスタ及び第２相互接続マスタによって用いられる共有記憶装置と、第１相互接続マスタに対応する第１制御記憶回路と、第２相互接続マスタに対応する第２制御記憶回路と、第１制御記憶回路及び第２制御記憶回路に接続されたプリフェッチ回路とを有する。プリフェッチ回路は、第１相互接続マスタ及び第２相互接続マスタのうちのどちらが共有記憶装置へのアクセスを要求しているのかに基づき、第１制御記憶回路及び第２制御記憶回路のうちの一方を選択し、選択した制御記憶回路を用いて、共有記憶装置へのアクセスによってトリガされるプリフェッチ動作を決定する。
【０００６】
本発明の他の実施形態は、データ処理システムにおいてプリフェッチ制御を提供するための方法に関する。本実施形態では、記憶装置へアクセスするためのアクセス要求を受信し、プリフェッチ制御記憶回路を提供してプリフェッチ・バースト・アクセス制御情報を記憶し、バースト・アクセス制御情報、及びアクセス要求がバースト・アクセスであるか否かに基づき、記憶装置へのプリフェッチを選択的に起動する。
【０００７】
本発明の更に他の実施形態は、データ処理システムにおいてプリフェッチ制御を提供するための方法に関する。本方法では、第１相互接続マスタを提供し、第２相互接続マスタを提供し、共有記憶装置へアクセスするためのアクセス要求を受信し、アクセス要求が第１相互接続マスタからであるのか、あるいは第２相互接続マスタからであるのかに基づき、プリフェッチ制御記憶装置を選択し、プリフェッチ記憶回路に記憶されている制御情報を用いて、共有記憶装置へのアクセス要求によってトリガされるプリフェッチ動作を制御する。
【発明を実施するための最良の形態】
【０００８】
本発明は、添付図面によって、一例として例示されるものであって、これらによって限定されるものではない。図面では、同様な参照符号は、同様な構成要素を示す。
図面の構成要素は、簡単明瞭に示されており、必ずしも縮尺通りに描かれていないことを当業者は認識されよう。例えば、図面の構成要素の中には、本発明の実施形態の理解を改善する一助とするために、他の構成要素と比較して寸法を誇張したものがある。
【０００９】
本明細書で用いる用語「バス」は、データ、アドレス、制御、又はステータス等、１つ又は複数の様々なタイプの情報を伝達するために用い得る複数の信号又は配線を参照するために用いる。本明細書で記載される配線は、単一の配線、複数の配線、単方向の配線、又は双方向の配線を参照するものとして例示され、説明される。しかしながら、異なる実施形態では、配線の実装を変更してもよい。例えば、双方向の配線以外に別個の単方向の配線を用いてもよく、また、その逆であってもよい。更に、複数の配線は、直列にあるいは時分割多重方式で多数の信号を伝達する単一の配線で置き換えられ得る。同様に、多数の信号を搬送する単一の配線は、これらの信号の一部を搬送する様々な異なる配線に分離され得る。従って、信号を伝達するための多くの選択肢が存在する。
【００１０】
図１は、データ処理システム１０の一実施形態を示す。データ処理システム１０には、マスタ１２（相互接続マスタ１２とも称される）と、マスタ１４（相互接続マスタ１４とも称される）と、メモリ・アレイ・コントローラ３６と、システム相互接続２２と、Ｉ／Ｏ回路１６と、周辺装置１８と、他のスレーブ２０と、メモリ・アレイ３５と、が含まれる。マスタ１２は、配線４８を介してシステム相互接続２２に双方向接続され、マスタ１４は、配線５０を介してシステム相互接続２２に双方向接続され、Ｉ／Ｏ回路は、配線５２を介してシステム相互接続２２に双方向接続され、周辺装置１８は、配線５４を介してシステム相互接続２２に双方向接続され、他のスレーブ２０は、配線５６を介してシステム相互接続２２に双方向接続され、メモリ・アレイ・コントローラ３６は、配線２４を介してシステム相互接続２２に双方向接続される。配線２４には、マスタ識別子２６、アドレス／データ２７、Ｒ／Ｗ信号２８、バースト信号３０、命令／データ信号３２、及び他の信号３４を伝達するための配線が含まれる。メモリ・アレイ・コントローラ３６には、制御レジスタ３８、プリフェッチ回路４０、及びバッファ群４２が含まれ、また、配線３３を介してメモリ・アレイ３５に双方向接続される。制御レジスタ３８は、プリフェッチ回路４０に接続され、プリフェッチ回路４０は、バッファ群４２に接続される。バッファ群４２には、バッファ４４及びバッファ４６が含まれる。図１には、１つの周辺装置１８のみを示すが、データ処理システム１０には、システム相互接続２２に接続される任意の数の周辺装置を含めてもよい。同様に、任意の数のマスタ及びスレーブをシステム相互接続２２に接続してよく、図１に示すものに制限されない。また、一実施形態において、データ処理システム１０の全てを、単一の集積回路上に又は同じ装置内に配置し得ることに留意されたい。他の選択肢として、データ処理システム１０には、互いに相互接続された任意の数の別個の集積回路又は別個の装置が含まれていてもよい。例えば、一実施形態において、メモリ及びメモリ・コントローラ（例えば、メモリ・アレイ３５及びメモリ・アレイ・コントローラ３６等）は、データ処理システム１０の他の部分から分離して、１つ又は複数の集積回路上に配置されてもよい。
【００１１】
一実施形態において、バス・マスタ１２及びバス・マスタ１４は、マイクロプロセッサ、デジタル信号プロセッサ等の命令を実行可能なプロセッサであってよく、あるいは、直接メモリ・アクセス（ＤＭＡ：Direct Memory Access）回路又はデバッグ回路等のいずれか他のタイプの相互接続マスタであってもよい。周辺装置１８は、ユニバーサル非同期型送受信機（ＵＡＲＴ：Universal Asynchronous Receiver Transmitter ）、リアル・タイム・クロック（ＲＴＣ：Real Time Clock ）、キーボード・コントローラ等の任意のタイプの周辺装置であってもよい。他のスレーブ２０は、例えば、マスタ１２及び１４によってアクセス可能なメモリ等、任意のタイプの相互接続スレーブを含み得ること、また更に、周辺装置１８と同じタイプの周辺装置等、システム・バス上に常駐する任意のタイプの周辺装置を含み得ることに留意されたい。Ｉ／Ｏ回路１６は、データ処理システム１０の外部の情報を受信又は提供する任意のタイプのＩ／Ｏ回路を含み得る。
【００１２】
例示した実施形態において、メモリ・アレイ・コントローラ３６及びメモリ・アレイ３５は、システム相互接続２２に接続された他のスレーブに対応する。他の実施形態において、メモリ・アレイ３５は、任意の数のアレイを含み得ることに留意されたい。また、他の実施形態において、メモリ・アレイ３５は、システム相互接続２２に接続された少なくとも２つのマスタ（例えば、マスタ１２及び１４等）によって共有される記憶装置であることから、共有記憶装置３５と呼称され得ることに留意されたい。メモリ・アレイ３５は、マスタ１２及び１４と同じ集積回路又は別個の集積回路に配置され得る。更に、メモリ・アレイ３５は、例えば、読出し専用メモリ（ＲＯＭ：Read Only Memory）、ランダム・アクセス・メモリ（ＲＡＭ：Random Access Memory）、不揮発性メモリ（例えば、フラッシュ・メモリ）等の任意のタイプのメモリであってよい。また、メモリ・アレイ３５は、メモリ、又は他の周辺装置又はスレーブ内に配置される他の記憶装置であってよい。
【００１３】
システム相互接続２２は、マスタ１２、マスタ１４、Ｉ／Ｏ回路１６、周辺装置１８、他のスレーブ２０、及びメモリ・アレイ・コントローラ３６を相互接続する。一実施形態において、図１に示すように、システム相互接続２２は、システム・バス・プロトコルにより動作するシステム・バスとして実装される。他の選択肢として、システム相互接続２２は、例えば、様々な装置間において情報をルーティングするスイッチング回路等の相互接続回路を用いて実装され得る。
【００１４】
動作時、マスタ１２及び１４は、システム相互接続２２のアクセスを要求して、他のスレーブ２０に対して、周辺装置１８に対して、あるいはメモリ・アレイ・コントローラ３６を介してメモリ・アレイ３５に対してアクセスを要求する。要求側マスタは、システム相互接続２２を介して、メモリ・アレイ・コントローラ３６にアクセス要求を提供し得る。アクセス要求は、例えば、データ又は命令のいずれかに対する読出し要求又は書込み要求であってもよい。メモリ・アレイ・コントローラ３６は、読出しアクセス要求に応答して、要求された情報（データ又は命令）を、システム相互接続２２を介して、要求側マスタに提供する。要求側マスタからの読出しアクセス要求は、要求時フェッチとも呼称されることに留意されたい。一実施形態において、アクセス要求に対して、マスタ識別子２６がメモリ・アレイ・コントローラ３６に提供され、これによって、どのマスタが現アクセスを要求しているかが識別される。また、Ｒ／Ｗ信号２８は、メモリ・アレイ・コントローラ３６に提供され、現アクセス要求が、読出しタイプのアクセスであるのか、あるいは書込みタイプのアクセスであるのかを示す。バースト信号３０は、メモリ・アレイ・コントローラ３６に提供され、現アクセス要求が、バースト・タイプのアクセスであるのか、あるいは非バースト・タイプのアクセスであるのかを示す。例えば、非バースト・タイプのアクセスは、単一ビート読出し又は書込みを含み得る。命令／データ信号３２は、メモリ・アレイ・コントローラ３６に提供され、現アクセス要求が命令用であるのか、あるいはデータ用であるのかを示す。また、メモリ・アレイ・コントローラ３６は、現アクセス要求に対応するアドレス情報を受信し、アドレス／データ２７を介して、要求された情報を提供する。メモリ・アレイ・コントローラ３６との通信を行うために必要な他のあらゆる信号は、他の信号３４によって提供され得る。
【００１５】
一実施形態において、メモリ・アレイ３５とメモリ・アレイ・コントローラ３６との間における配線３３の幅は、システム相互接続２２の幅より大きい。例えば、一実施形態において、システム相互接続２２は、配線３３の幅のわずか４分の１であり、このことは、単一のバースト・トランザクションの４つのデータ又は命令項目を、メモリ・アレイ３５からの単一のアクセスで取得し得ることを意味する。例えば、システム相互接続２２及びデータ又は命令項目は、わずかに６４ビット幅であるが、配線３３は、２５６ビット幅であってもよい。しかしながら、また、一般的に、メモリ・アレイ３５から情報を取り出すためのアクセス時間は、システム相互接続２２に接続された他の周辺装置、スレーブ、又はマスタと比較して、非常に長い（例えば、４〜５倍長い）ことに留意されたい。従って、アクセス時間を低減するために、メモリ・アレイ・コントローラ３６は、メモリ・アレイ３５から情報をプリフェッチし、その情報をバッファ群４２内に記憶し得る。
【００１６】
例えば、一実施形態において、プリフェッチ回路４０は、一例として、各々、２５６ビット幅であり得るバッファ４４及びバッファ４６等のバッファ群４２へメモリ・アレイ３５からの情報をプリフェッチし得る。従って、要求側マスタからのアクセス要求に応答して、メモリ・アレイ・コントローラ３６は、一般的に、バッファ群４２と比較してアクセス時間が長いメモリ・アレイ３５から情報をフェッチしなければならないこと以外に（情報が既にプリフェッチされているならば）要求された情報をバッファ群４２から提供することができる。一実施形態において、プリフェッチ回路には、バッファ４４及び４６の各々に対応するタグ部（図示せず）、及び現アクセス要求において要求されている情報が、バッファ４４及び４６のうちの１つに既に配置されているか否かを判断するための比較回路（図示せず）が含まれる。例えば、プリフェッチ回路は、アドレス／データ２７を介した現アクセス要求に対応する着信アドレスとタグ部とを比較して、既に情報がプリフェッチされているか否かを判断することができる。プリフェッチされていない場合、メモリ・アレイ・コントローラ３６は、要求された情報をメモリ・アレイ３５から提供する。
【００１７】
例示した実施形態においては、２つのバッファが示されている（バッファ４４及びバッファ４６）。しかしながら、他の実施形態において、バッファ群４２は、任意の数の（１つ又は複数の）バッファを含み得る。一実施形態において、プリフェッチ回路は、メモリ・アレイ３５からバッファ４４及び４６のうちの一方に情報をプリフェッチし、その間、バッファ４４及び４６のうちの他方から要求側マスタに情報を提供し得る。即ち、複数のバッファを用いると、少なくとも部分的には、要求側マスタからのアクセス要求に対応すると同時に、メモリ・アレイ３５へのプリフェッチを行い得る。また、一実施形態において、バッファは、配線３３と同じ幅を有し得るが、他の実施形態において、その幅は、異なっていてもよいことに留意されたい。
【００１８】
メモリ・アレイ３５にアクセスして要求側マスタからのアクセス要求に応答することに比べて、バッファ群４２から情報提供すると、アクセス時間が低減されることから、その後要求される情報をメモリ・アレイ３５からバッファ群４２にプリフェッチすることが望ましい。しかしながら、プリフェッチ処理は、プリフェッチされた情報がマスタによって実際に要求されるか否かを断定できないという点において、不確かであることに留意されたい。プリフェッチされた情報が、その後要求されないならば、プリフェッチは、無駄なプリフェッチになり、余分な電力が消費され、性能が低下する。一実施形態において、プリフェッチ処理は、また、（マスタによって実際に要求されるものなどの、不確かでない）要求時フェッチを妨害し得る。例えば、プリフェッチの間、要求側マスタからの要求時フェッチは、それが対応されるまで、プリフェッチの完了を待たねばならず、従って、要求時フェッチの待ち時間が長くなり、平均アクセス待ち時間が長くなる。更に、そのプリフェッチが、無駄なプリフェッチになると、プリフェッチに用いられた時間が無用に浪費され、従って、更に、平均アクセス待ち時間が長くなる。従って、本発明の一実施形態は、平均アクセス待ち時間を低減するために、バッファ群４２への不確かなデータのプリフェッチ処理を制御する。
【００１９】
引き続き図１において、プリフェッチ回路４０は、制御レジスタ３８に基づき、バッファ群４２へのプリフェッチ処理を選択的に制御し得る。例えば、一実施形態において、プリフェッチ回路４０は、制御レジスタ３８に基づき、（マスタ１２又は１４等の）要求側マスタからのメモリ・アレイ３５へのアクセス要求によってトリガされるプリフェッチ動作を決定する。従って、異なるタイプのプリフェッチ動作は、異なるタイプのアクセス属性によってトリガされ得るが、これら属性は、例えば、どのマスタがアクセスを要求しているか、アクセス要求が部分的にバースト・アクセスであるか否か、アクセス要求がデータ用であるか、あるいは命令用であるか、もしくは、それらの任意の組合せ、を含み得る。従って、現アクセス要求（即ち、現要求時フェッチ）に対応するマスタ識別子２６、Ｒ／Ｗ信号３８、バースト信号３０、及び命令／データ信号３２の値、及び制御レジスタ３８に基づき、プリフェッチ回路４０は、現アクセス要求によってトリガされるプリフェッチ動作を決定する。
【００２０】
図２は、各マスタ用の１つのデータ・プリフェッチ・イネーブル（ＤＰＥＮ：Data Prefetch Enable）フィールド及び１つの命令プリフェッチ・イネーブル（ＩＰＥＮ：Instruction Prefetch Enable ）フィールドが含まれる制御レジスタ３８の一実施形態を示す。例えば、図２に示すように、制御レジスタ３８には、マスタ１２ＤＰＥＮフィールド６０、マスタ１４ＤＰＥＮフィールド６２、マスタ１２ＩＰＥＮフィールド６４、及びマスタ１４ＩＰＥＮフィールド６６が含まれる。従って、他の実施形態において、制御レジスタ３８には、所望のプリフェッチ制御情報を記憶するために、必要に応じていくらかのフィールドを含み得る。また、制御レジスタ３８は、システム相互接続２２に接続されたマスタ１２又は１４等のマスタからの命令を介して、プログラムされ得ることに留意されたい。これらの値を、例えば、ユーザが提供したり、設計時、プログラム化したりしてもよい。
【００２１】
図３は、図２の制御レジスタ３８におけるフィールド定義の一実施形態を示す。例えば、一実施形態において、各フィールド６０，６２，６４，６６は、２ビット・フィールドであり、ここで、各フィールドは、４つの値（００，０１，１０，１１）を持つことが可能である。図３で説明するように、ＤＰＥＮフィールド６０及び６２は、どのマスタが、アクセスを要求したか、また、データ読出しアクセスよって起動されたプリフェッチ処理をイネーブルするか、あるいはディスエーブルするかに基づき、データ・プリフェッチ動作がトリガされるか否かを制御するために用いられる。（どのマスタがアクセスを要求したか決定するために用いられ得る）マスタ識別子は、例えば、図１のマスタ識別子２６によって提供される。一実施形態において、マスタ１２は０の識別子を有し、マスタ１４は１の識別子を有し得る。従って、各マスタには、固有の識別子が割り当てられ得る。他の実施形態において、幾つかのマスタは、同じ識別子を共有し得る。また、他の実施形態において、どのマスタがアクセスを要求しているかは、マスタ識別子２６等の信号を提供すること以外の様々な方法で決定され得ることに留意されたい。
【００２２】
図３の例において、各ＤＰＥＮフィールド６０及び６２は、２ビット・フィールドであり、ここで、００の値は、プリフェッチ処理が、対応するマスタからのデータ読出しアクセスによってトリガされていないことを示す。即ち、マスタ１２ＤＰＥＮフィールド６０が００に設定されているならば、プリフェッチ処理は、マスタ１２からのデータ読出しアクセスによってトリガされていない。同様に、マスタ１４ＤＰＥＮフィールド６２が００に設定されているならば、プリフェッチ処理は、マスタ１４からのデータ読出しアクセスによってトリガされていない。現アクセス要求が読出し要求であるのか、あるいは書込み要求であるのかは、Ｒ／Ｗ信号２８によってプリフェッチ回路４０に示され得ること、また、現アクセス要求がデータ用であるのか、あるいは命令用であるのかは、命令／データ信号３２によってプリフェッチ回路に示され得ることに留意されたい。ＤＰＥＮフィールド６０及び６２の０１の値は、プリフェッチ処理が、対応するマスタからのデータ・バースト読出しアクセスのみによってトリガされ得ることを示す。即ち、マスタ１２ＤＰＥＮフィールド６０が０１に設定されているならば、プリフェッチ処理は、マスタ１２からのデータ・バースト読出しアクセスのみによってトリガされ得る。現アクセスがバースト読出しアクセスであるか否かは、バースト信号３０によって、プリフェッチ回路４０に示され得る。ＤＰＥＮフィールド６０及び６２の１１の値は、プリフェッチ処理が、対応するマスタからの任意のデータ読出しアクセスによってトリガされ得ることを示す。即ち、マスタ１２ＤＰＥＮフィールド６０が１１に設定されているならば、プリフェッチ処理は、マスタ１２からの任意のデータ読出しによってトリガされ得る。（本実施形態において、１０の値は予備の値であり、プリフェッチ動作を設定するために用いられていないことに留意されたい。）従って、マスタ１２からのデータ・アクセス要求によってトリガされたメモリ・アレイ３５からのデータ・プリフェッチ動作は、ＤＰＥＮフィールド６０に基づき、決定され制御され得る。また、本明細書に用いられるデータ・プリフェッチ動作は、プリフェッチを選択的に実施すること、あるいはプリフェッチを実施しないことを含み得ることに留意されたい。
【００２３】
図３の例において、各ＩＰＥＮフィールド６４及び６６は、２ビット・フィールドであり、ここで、００の値は、プリフェッチ処理が、対応するマスタからの命令読出しアクセスによって、トリガされていないことを示す。即ち、マスタ１２ＩＰＥＮフィールド６４が００に設定されるならば、プリフェッチ処理は、マスタ１２からの命令読出しアクセスによってトリガされていない。再度、上述したように、Ｒ／Ｗ信号２８及び命令／データ信号３２は、現アクセスが読出しアクセスであるのか、あるいは書込みアクセスであるのか、現アクセスが命令を要求しているのか、あるいはデータを要求しているのかを、プリフェッチ回路４０に示すために用いられ得る。ＩＰＥＮフィールド６４及び６６の０１の値は、プリフェッチ処理が、対応するマスタからの命令バースト読出しアクセスのみによってトリガされ得ることを示す。即ち、マスタ１２ＩＰＥＮフィールド６４が０１に設定されているならば、プリフェッチ処理は、マスタ１２からの命令バースト読出しアクセスのみによってトリガされ得る。ＩＰＥＮフィールド６４及び６６の１１の値は、プリフェッチ処理が、対応するマスタからの任意の命令読出しアクセスによってトリガされ得ることを示す。即ち、マスタ１２ＤＰＥＮフィールド６０が１１に設定されているならば、プリフェッチ処理は、マスタ１２からの命令読出しアクセスによってトリガされ得る。従って、マスタ１２からの命令アクセス要求によってトリガされたメモリ・アレイ３５からの命令プリフェッチ動作は、ＩＰＥＮフィールド６４に基づき、決定され制御され得る。また、本明細書に用いられる命令プリフェッチ動作には、プリフェッチを選択的に実施すること、あるいはプリフェッチを実施しないことを含み得ることに留意されたい。
【００２４】
他の実施形態において、制御レジスタ３８には、必要に応じて、いくらかのビットを有する各マスタ用のいくらかのフィールドを含み得ることに留意されたい。また、図３において説明した制御レジスタ３８のフィールドの設定値は、例として提供されている。他の実施形態は、図３において提供されたものとは異なる属性、図３のものよりも多くの属性、又は図３におけるもののうちの一部に基づき、データ・アクセス要求、命令アクセス要求、又は双方のうちのいずれかによってトリガされるプリフェッチ動作を決定し得る。例えば、一実施形態において、プリフェッチは、現時点でアクセスを要求しているマスタの識別子のみに基づき、トリガされ得る。他の選択肢として、プリフェッチは、現在アクセスを要求しているマスタの識別子にかかわらず、アクセス要求がバースト・アクセスであるのか、あるいは非バースト・アクセスであるのかのみに基づき、トリガされ得る。また、他の実施形態において、現アクセス要求の特定の属性は、図１に示す信号２８，３０，３２による方法以外の様々な方法で、プリフェッチ回路４０に示され得ることに留意されたい。
【００２５】
図４は、本発明の一実施形態に基づくデータ処理システム１０の動作をフロー図形式で示す。フロー７０は、開始７２で始まり、ブロック７４に進み、ここで、マスタからのアクセス要求を受信する。このアクセス要求は、読出し要求、書込み要求、バースト要求、非バースト要求、データ要求、命令要求等の多くの異なるタイプの要求であってもよい。次いで、フローは、ブロック７６に進み、ここで、要求側マスタの識別子を判断する。例えば、図１の実施形態において、このことは、マスタ識別子２６を提供することによって行われる。次いで、フローは、ブロック７８に進み、ここで、アクセス要求がデータ用であるのか、あるいは命令用であるのかを判断する（このことは、一実施形態において、命令／データ信号３２を提供することによって行われる）。次いで、フローは、ブロック８０に進み、ここで、アクセス要求が、バースト・アクセスであるのか、あるいは非バースト・アクセスであるのかを判断する（このことは、一実施形態において、バースト信号３０を提供することによって行われる）。次いで、フローは、ブロック８２に進み、ここで、ブロック７６，７８，８０において決定されたアクセス属性に基づき、プリフェッチ処理動作を決定する。即ち、ブロック８２において、プリフェッチ処理は、制御レジスタ３８における要求側マスタに対応する少なくとも１つのフィールドに基づき、選択的に行われる。例えば、アクセス要求がマスタ１２からであると判断され、かつ、アクセス要求が命令用であるのならば、そのアクセス要求によってトリガされるプリフェッチ動作は、マスタ１２ＩＰＥＮフィールド６４内の制御情報によって決定されるように実施される。次いで、フローは、終了８４において終了する。
【００２６】
他の実施形態において、フロー７０は、ブロック７６，７８，８０のうちの１つ又は２つのブロックのみを含み得ることに留意されたい。例えば、プリフェッチ処理が、要求側マスタの識別子のみに基づくように、もしくは、アクセスがバースト・アクセスであるのか、あるいは非バースト・アクセスであるのかのみに基づくように、ブロック７６，７８，８０のうちのブロック７６のみ又はブロック８０のみが存在し得る。他の選択肢として、選択的プリフェッチ処理が、ブロック７６，７８，８０に対応するものよりも多くの属性に基づくように、フロー７０は、より多くの決定を含み得る。
【００２７】
従って、性能を向上できるように、また、無駄なプリフェッチを最小限に抑えられるように、様々なタイプのアクセス属性に基づき、如何にしてプリフェッチ動作がトリガされるのかを理解されたであろう。本明細書に説明した実施形態を用いて、様々な異なる方法及び用途において、アクセス要求によってトリガされるプリフェッチ動作を制御し得る。例えば、一実施形態において、命令を実行するプロセッサによって（例えば、中央処理装置（ＣＰＵ：Central Processing Unit ）によって）なされる命令アクセス要求にプリフェッチトリガ動作を制限することは、有益であり得る。このことは、命令フェッチは、一般的に、順次的であるが、データ・フェッチは、ランダムに分散し得ることによる。従って、本例において、制御レジスタ３８は、プロセッサからの命令アクセス要求のみがプリフェッチをトリガするように、設定され得るが、これは、命令が一般的に順次的であることから、このプリフェッチが無駄にならない可能性が高いからである。更に、多くの制御コード用途において（例えば、車両用途において）、分岐でさえ一般的に順次的に見えるが、これは、分岐は、一般的に、依然として（一実施形態において、２５６ビットである）バッファ・プリフェッチ・サイズに収まる短い前方分岐であるためである。従って、制御レジスタ３８内のフィールドを用いて、この選択的プリフェッチ方式を実現し得る。
【００２８】
他の例において、直接メモリ・アクセス（ＤＭＡ：Direct Memory Access）装置が要求側マスタである場合、データ・プリフェッチ処理は、通常、ＤＭＡが、順次的であるブロック・データの移動処理等のデータ伝達を実施しているため、有利なことがある。従って、制御レジスタ３８内のフィールドは、ＤＭＡからのデータ・アクセス要求がメモリ・アレイ３５へのプリフェッチをトリガするように、設定され得る。更に他の例において、デバッグ動作を実施可能なデバッグ回路が要求側マスタである場合（この場合、デバッグ回路は、システム相互接続２２に接続されたマスタであっても、あるいは、システム相互接続２２に接続されたマスタ内に常駐していてもよい）、他のマスタ又はシステム全般との干渉は一般的に望ましくないことから、プリフェッチ処理を全て抑制することが望ましい。即ち、デバッグの場合、システムに対する影響を最小限にすると、デバッグ処理の精度は、通常、向上する。更に、デバッグ動作の間の性能は、一般的に重要ではない。
【００２９】
更に他の例において、現読出しアクセスが単一ビート読出しであるのならば、バッファ群（バッファ４４及び４６等）がオペランド又はデータサイズより広い場合、最初の要求時フェッチによって、多数のデータ又は命令項目がフェッチされることから、プリフェッチ処理をディスエーブルすることが望ましい。即ち、例えば、一実施形態において、バッファは、２５６ビット幅であり、これによって、バッファにロードされた元の情報を保持するために用いられるバッファにおいて、順次的アクセス（例えば、順次的単一ビート読出し）がヒットするように、多数の命令又はデータ項目を保持する。この場合、プリフェッチは、恐らく次のプリフェッチ・ラインは必要とされないことから、無駄である。
【００３０】
本明細書において、具体的な実施形態を参照して、本発明について説明した。しかしながら、当業者が理解されるように、以下の請求項に記載した本発明の範囲から逸脱することなく、様々な修正及び変更が行われ得る。したがって、明細書及び図面は、限定的でなく例示的であると見なすものとし、また、そのような全ての修正は、本発明の範囲内に含まれるものとする。
【００３１】
恩恵、他の利点、及び問題の解決策について、具体的な実施形態を基に上述した。しかしながら、これらの恩恵、利点、問題の解決策、及び何らかの恩恵、利点、又は解決策を生じさせるか、あるいはより顕著にさせる如何なる構成要素も、全ての請求項の重要な、必要な、若しくは不可欠な特徴又は構成要素として解釈してはならない。本明細書に用いた用語「“a ”又は“an”（不定冠詞）」は、１つ又は１つ以上と定義する。本明細書に用いた用語「“including ”（含んでいる）」及び／又は「“having”（有している）」は、「“comprising”（備えている）」（即ち、オープン・ランゲージ）と定義する。本明細書に用いた用語「“comprises ”（備える）」、「“comprising”（備えている）」又はその派生語は、非排他的な包括を網羅するものであり、一連の構成要素を含むプロセス、方法、物、又は装置が、これらの構成要素だけでなく、明示的に列記されていない他の構成要素や、このようなプロセス、方法、物、又は装置に固有の他の構成要素も含み得る。
【図面の簡単な説明】
【００３２】
【図１】本発明による一実施形態に基づくデータ処理システムをブロック図形式で示す図。
【図２】本発明による一実施形態に基づく図１のデータ処理システムの制御レジスタをブロック図形式で示す図。
【図３】本発明による一実施形態に基づく図２の制御レジスタのフィールド内容を表形式で示す図。
【図４】本発明による一実施形態に基づく図１のデータ処理システムの動作をフロー図形式で示す図。
【図１】
2007500402.tif 000003
【図２】
2007500402.tif 000004
【図３】
2007500402.tif 000005
【図４】
2007500402.tif 000006
【国際調査報告】
2007500402.tif 000007