説明

プリフェッチ・モジュールを備える信号処理システムおよび集積回路、並びにそのための方法

信号処理システム(100)は、少なくとも1つのマスタ・デバイス(110、115)と、少なくとも1つのメモリ素子(160)とを備え、さらに、少なくとも1つのマスタ・デバイス(110、115)から少なくとも1つのメモリ素子(160)へのメモリアクセス要求に応じて、少なくとも1つのメモリ素子(160)からのプリフェッチを実行するように構成されたプリフェッチ・モジュール(142)を備える。プリフェッチ・モジュール(142)は、少なくとも1つのマスタ・デバイス(110、115)からメモリアクセス要求を受信すると、メモリアクセス要求が関連するアドレスに少なくとも部分的に基づいて、そのメモリアクセス要求に関連する命令情報およびデータ情報の少なくとも一方のプリフェッチの許可を設定するように構成されている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の分野は、プリフェッチ・モジュールを備える信号処理システムおよびそのための方法に関し、より具体的には、マスタ・デバイスからメモリ素子へのメモリアクセス要求に応じてメモリ素子からのプリフェッチを実行するように構成されたプリフェッチ・モジュールを備える信号処理システムおよびそのための方法に関する。
【背景技術】
【0002】
信号処理システムにおけるメモリからの命令およびデータの取り出しは、そのフェッチ命令を起動したマスタ・デバイスの動作周波数に比較して遅いプロセスであることが多い。このため、システムがそのようなフェッチ処理を多数実行している場合、それによって、システム全体のパフォーマンスが著しく低下することがある。プリフェッチ方式を実施することが知られており、これによると、データおよび/または命令は、それに対するフェッチ命令がマスタ・デバイスにより起動されるのに先立って取り出される。その結果、比較的低速であるメモリ要素へのアクセスによるパフォーマンスへの影響が軽減され得る。
【0003】
しかしながら、そのようなプリフェッチ方式を実施する場合の問題は、マスタ・デバイスが必要とすることになる命令およびデータの少なくとも一方、さらにはそのタイミングを正確に“予測する”ことが常に可能なわけではないということであり、このため、不要なプリフェッチ処理がしばしば実行される。そのように不要なプリフェッチを実行することは、特にフラッシュメモリ・アクセス要求のアボートが不可能である場合に、それらの実行のためにシステム資源が使い尽くされてしまうため、システム・パフォーマンスの妨げとなり得る。従って、そのようなプリフェッチ方式が不適切な設定であることは、それらの効果を、よくても準最適とし、場合によってはシステム・パフォーマンスの妨げとなることさえある。
【発明の概要】
【課題を解決するための手段】
【0004】
本発明は、添付の請求項に記載の信号処理システム、その信号処理システムを含む集積回路、並びにそのための方法を提供するものである。
本発明の具体的な実施形態は、従属請求項に記載される。
【0005】
本発明のこれらの態様およびその他の態様は、以下で説明する実施形態から明らかとなり、また、それらを参照することで明確に理解されるであろう。
【図面の簡単な説明】
【0006】
【図1】信号処理システムの一例を示す図である。
【図2】アドレスマップの一例を示す図である。
【図3】メモリ素子からのプリフェッチ処理を実行する方法の簡略化したフローチャートの一例を示す図である。
【発明を実施するための形態】
【0007】
本発明のさらなる詳細、態様、および実施形態について、図面を参照して単なる例により説明する。図中の要素は、簡単かつ明瞭に示すものであって、必ずしも正確な縮尺で描かれてはいない。
【0008】
システムオンチップ(SoC)デバイスのような1つの集積回路の中に実質的に組み込まれる信号処理システムを参照して、以下、実施例についての説明を行う。しかし、本明細書で記載される実施例は、そのような集積型信号処理システムの中での使用に限定されるものではなく、別の信号処理構成およびアーキテクチャに同様に適用することができることが理解されるだろう。さらに、本発明を実施する装置例はその大部分が当業者に知られている電子部品および回路で構成されるので、発明の基本的概念の理解および認識のため、さらには発明の教示が曖昧になったり焦点が逸れたりしないようにするため、回路の詳細について、以下の例示で必要と考えられる程度を超えての説明は行わない。
【0009】
図1を参照すると、信号処理システム100の一例が示されている。図示の例では、信号処理システム100は、集積回路(IC)105の中に組み込まれている。図1の信号処理システム100は、システム内部配線120に動作可能に結合された1つまたは複数のマスタ・デバイス110、115を備えている。典型的なマスタ・デバイスとして、CPUまたはDMA(直接メモリアクセス)コントローラを含むことができる。その他のマスタ・デバイスとして、イーサネット(登録商標)・コントローラまたはFlexRay(フレックスレイ)コントローラのような通信プロセッサ、グラフィック・プロセッサおよび/またはコントローラなどを含むことができる。いくつかの例においては、集積回路の外部にあるマスタ・デバイスを、例えばIC105上の内部接続ピン(またはバス)(図示せず)を介して、システム内部配線120に動作可能に結合することもできる。システム内部配線120は、ペリフェラル・コンポーネント・インタフェース(PCI:Peripheral Component Interface)プロトコルまたはARM社のアドバンスト・マイクロコントローラ・バスアーキテクチャ(AMBA(登録商標):Advanced Microcontroller Bus Architecture)プロトコルなどのシステムバス・プロトコルに従って動作するシステムバスによるものなど、何らかの適当な方法で実装することができる。あるいは、システム内部配線120はスイッチング回路を備えるものとすることができ、これにより、そこに接続された異なるマスタ・デバイスとスレーブ・デバイスの間で情報をルーティングする。
【0010】
また、1つまたは複数のスレーブ・デバイスが、システム内部配線120に動作可能に結合されており、これには、図示の例では、入力/出力(I/O)回路125、周辺機器130、およびその他のスレーブ・デバイス135が含まれる。これらのスレーブ・デバイスは、図1では、IC105の中に組み込まれるものとしても示されている。しかしながら、これに代えて、スレーブ・デバイスの一部またはすべてがIC105の外部に配置されていてもよい。信号処理システム100は、さらにプリフェッチ・モジュール142を備えており、これは、図示の例では、システム内部配線120に動作可能に結合されて1つまたは複数のメモリ素子160へのアクセスを提供するように構成されたメモリアクセス要求モジュール140の一部をなしている。図示の例では、1つまたは複数のメモリ素子160がIC105の外部にあるものとして示されている。しかしながら、その1つまたは複数のメモリ素子は、IC105の中に組み込まれていてもよいと考えられる。
【0011】
プリフェッチ・モジュール142は、メモリ素子(複数の場合もある)160へのメモリアクセス要求をマスタ・デバイス110、115から受け取ると、1つまたは複数のメモリ素子160からのプリフェッチを実行するように構成されている。具体的には、マスタ・デバイス110、115からのメモリアクセス要求を、例えばメモリアクセス要求モジュール140によりシステム内部配線120を介して受け取ると、プリフェッチ・モジュール142は、メモリアクセス要求が関連するアドレスに少なくとも部分的に基づいて、そのメモリアクセス要求に関連する命令情報およびデータ情報の少なくとも一方プリフェッチの許可を設定するように構成されている。
【0012】
例えば、プリフェッチ・モジュール142は、メモリアクセス要求が関連するアドレスを、例えばデータ構造(例えば、地図、画像など)に関連付けられた1つまたは複数のアドレス範囲と比較するように構成することができる。メモリアクセス要求が関連するアドレスが、上記アドレス範囲(複数の場合もある)内にある場合に、プリフェッチ・モジュール142は、そのメモリアクセス要求に関連するデータ情報のプリフェッチを許可する(enable)ように構成されているものとすることができる。また、プリフェッチ・モジュール142は、メモリアクセス要求が関連するアドレスが、データ構造に関連付けられた上記アドレス範囲(複数の場合もある)内にある場合に、そのメモリのアクセス要求に関連する命令情報のプリフェッチを不可にする(disable)ように構成されているものとすることができる。
【0013】
追加的および/または代替的に、その他の例において、プリフェッチ・モジュール142は、メモリアクセス要求が関連するアドレスを、例えばオペレーティングシステム・コードおよび/またはアプリケーション・コードのようなプログラムコードに関連付けられた1つまたは複数のアドレス範囲と比較するように構成されているものとすることができ、また、メモリアクセス要求が関連するアドレスが上記アドレス範囲(複数の場合もある)内にある場合に、プリフェッチ・モジュール142は、そのメモリアクセス要求に関連する命令情報のプリフェッチを許可するように構成されているものとすることができる。また、プリフェッチ・モジュール142は、メモリアクセス要求が関連するアドレスが、プログラムコードに関連付けられた上記アドレス範囲(複数の場合もある)内にある場合に、そのメモリアクセス要求に関連するデータ情報のプリフェッチを不可にするように構成されているものとすることができる。
【0014】
図1に示す例では、メモリアクセス要求モジュール140は、例えば1つまたは複数のアドレス範囲の‘開始’アドレスおよび‘終端’アドレスといったアドレス範囲パラメータを記憶するように構成された、1つまたは複数の制御レジスタ146を備えている。さらに、その1つまたは複数の制御レジスタ146は、それらのアドレス範囲の各々の範囲内にあるアドレスへのメモリアクセス要求に関連するプリフェッチが許可されるべきか不可にされるべきかを規定する、1つまたは複数のパラメータを記憶するように構成されているものとすることができる。
【0015】
図2は、メモリ素子160のアドレスマップ200の一例を示している。2つのアドレス範囲が規定されており、それらは、アドレスXとアドレスYの間の第1のアドレス範囲210と、アドレスYとアドレスZの間の第2のアドレス範囲220である。従って、図1の1つまたは複数の制御レジスタ146は、アドレス範囲210、220の各々の開始アドレスと終端アドレスとを記憶するように構成することができる。各々のアドレス範囲210、220について、1つまたは複数の制御レジスタ146は、さらに、例えば個々のアドレス範囲210,220内のアドレスへのアクセスに対して、命令のプリフェッチが許可されるべきかどうか、および、データのプリフェッチが不可にされるべきかどうかを規定する1つまたは複数のパラメータを記憶するように構成することができる。
【0016】
このようにして、メモリアクセス要求が関連するアドレスに基づき、プリフェッチの許可および不可を設定することができる。従って、例として、メモリ内で例えばプログラムコードおよびデータ構造を適切に配置することで、例えば地図および画像といった大きなデータ構造を1つまたは複数の特定のアドレス範囲内に記憶するようにすることにより、そのようなアドレス範囲内のアドレスへのアクセスについてのプリフェッチを適切に設定することができる。例えば、図2の第2のアドレス範囲220のように大きなデータ構造に関連付けられているアドレス範囲の場合、比較的低速のメモリ素子からそのような大きなデータ構造にアクセスすることによるパフォーマンスへの影響の可能性を低減するためには、データのプリフェッチを許可することが適切な場合がある。ところが、データ構造に関連付けられているそのようなアドレス範囲内には命令情報が(もしあるとしても)数行、記憶されていることを想定することができるので、不要なプリフェッチの実行およびシステム資源の無駄な消費を防ぐためには、そのアドレス範囲内での命令のプリフェッチを不可にすることが適切な場合がある。
【0017】
一方、プログラムコードおよびその他の命令情報を、図2の第1のアドレス範囲210のような1つまたは複数の特定のアドレス範囲内に記憶することにより、そのようなアドレス範囲内のアドレスへのアクセスについてのプリフェッチを、やはり適切に設定することができる。例として、例えばプログラムコードと関連付けられているアドレス範囲の場合、比較的低速のメモリ素子からのプログラムコードの大きなセクションにアクセスすることによるパフォーマンスへの影響を軽減するためには、命令のプリフェッチを許可することが適切な場合がある。ところが、プログラムコードに関連付けられているそのようなアドレス範囲内には、変数および定数など、ほんの小さなデータ構造が記憶されている可能性が高いと想定できるので、不要なプリフェッチの実行およびシステム資源の無駄な消費を防ぐためには、データのプリフェッチを不可にすることが適切な場合がある。
【0018】
従って、再び図1を参照して、メモリアクセス要求モジュール140によりメモリアクセス要求を受け取ると、プリフェッチ・モジュール142は、そのメモリアクセス要求が関連するアドレスを、1つまたは複数の制御レジスタ146に記憶されているパラメータにより規定される1つまたは複数のアドレス範囲と比較し、そして、メモリアクセス要求が関連するアドレスが、1つまたは複数の制御レジスタ146で規定されているアドレス範囲内にある場合は、1つまたは複数の制御レジスタ146に記憶されている対応する1つまたは複数の設定パラメータに従って、そのメモリアクセス要求に関連する命令情報および/またはデータ情報のプリフェッチの許可を設定するように構成されるものとすることができる。そして、その設定に従って、プリフェッチ・モジュール142はプリフェッチを実行することができ、これにより、1つまたは複数のメモリ素子160から情報を設定に従って取り出し、取り出した情報をバッファ144に記憶する。このようにして、プリフェッチされた情報は、続いて、例えばマスタ・デバイス110、115のうちの1つによるアクセスに対して利用可能となり、従って、その時点で情報の取り出しのために比較的低速であるメモリ160へのアクセスを実行する必要がなくなり、それに伴うシステム・パフォーマンスの低下が回避される。
【0019】
前述のように、プリフェッチ・モジュール142は、不要なデータ情報のプリフェッチが実行されることを防ぐため、例えばプログラムコードに関連付けられているアドレス範囲へのメモリアクセス要求に関連するデータ情報のプリフェッチを不可にするように構成されるものとすることができる。しかしながら、そのようなメモリアクセス要求が、データのバースト転送(またはその一部)を含む場合、データ情報のプリフェッチを不可にすることによって、そのようなデータのバースト転送に無駄な遅れが生じることがある。従って、さらに別の例において、プリフェッチ・モジュール142は、メモリアクセス要求が関連するアドレスがプログラムコードに関連付けられているアドレス範囲内にある場合に、そのメモリアクセス要求がデータのバースト転送を含むものであるかどうかを判断するように構成されるものとすることができ、そして、メモリアクセス要求がデータのバースト転送を含む場合には、プリフェッチ・モジュール142は、そのメモリアクセス要求に関連するデータ情報のプリフェッチを許可するように構成されるものとすることができる。
【0020】
さらに、いくつかの例においては、1つまたは複数の制御レジスタ146は、図2のアドレス範囲210、220のような各々のアドレス範囲についてのさらなるパラメータを記憶するように構成されており、それは、データ・バーストのプリフェッチが許可されるべきか否かを個々のアドレス範囲について規定するものである。従って、図2に示す例の場合、1つまたは複数の制御レジスタ146は、第1のアドレス範囲210について、開始アドレス=X;終端アドレス=Y;命令プリフェッチ許可;データプリフェッチ不可;データ・バーストプリフェッチ許可;を規定するパラメータを記憶するように構成することができる。
【0021】
一方、いくつかの例においては、1つまたは複数の制御レジスタ146は、第2のアドレス範囲220について、開始アドレス=Y;終端アドレス=Z;命令プリフェッチ不可;データプリフェッチ許可;データ・バーストプリフェッチ許可;を規定するパラメータを記憶するように構成される。
【0022】
一例において、プリフェッチ・モジュール142は、受信したメモリアクセス要求に関連するプリフェッチの他の態様について設定を行うように構成されたものとすることができる。例として、プリフェッチ・モジュール142は、例えばマスタ・デバイス110、115からのメモリアクセス要求に関連するプリフェッチのため、例えばそのメモリアクセス要求が関連するアドレス、あるいはプリフェッチされる情報のタイプ(例えば、命令あるいはデータ)に基づいて、バッファ行数を設定するように構成されたものとすることができる。図1に示す例の場合、そのような設定は、1つまたは複数の制御レジスタ146に記憶される1つまたは複数のパラメータによって規定することができる。
【0023】
プリフェッチ・モジュール142は、さらに、例えば、1つまたは複数の制御レジスタ146に記憶されている1つまたは複数のパラメータによる規定に従って、メモリアクセス要求の発信元である個々のマスタ・デバイス110、115に対して、メモリアクセス要求に関連するプリフェッチが許可されているか否か判断するように構成されたものとすることができる。メモリアクセス要求の発信元である個別のマスタ・デバイスに対してプリフェッチが許可されていないと判断される場合、プリフェッチ・モジュール142は、そのメモリアクセス要求に関連するプリフェッチを不可にすることができる。
【0024】
いくつかの例によっては、メモリアクセス要求が関連するアドレスが例えば1つまたは複数の制御レジスタ146において規定されるアドレス範囲内にない場合に、プリフェッチ・モジュール142は、デフォルトの設定に従って、そのメモリアクセス要求に関連する命令情報およびデータ情報の少なくとも一方のプリフェッチの許可を設定するように構成されたものとすることができる。図1に示す例の場合、そのようなデフォルトの設定は、制御レジスタ146に記憶されているものとすることもできる。同様に、メモリアクセス要求が関連するアドレスが例えば1つまたは複数の制御レジスタ146において規定されるアドレス範囲にない場合に、プリフェッチ・モジュール142は、プリフェッチのためのバッファ行数など、受信したメモリアクセス要求に関連するプリフェッチの他の態様について設定するように構成されているものとすることができる。
【0025】
1つまたは複数の制御レジスタ146は、例えばマスタ・デバイス110、115のうちの1つ以上によって、プログラム可能とすることができる。このようにして、メモリ素子(複数の場合もある)160からの命令のプリフェッチを調整および規制するように、プリフェッチ設定をプログラムし、変更することができる。
【0026】
次に図3を参照すると、そこに、例えば図1の信号処理システム100内で実施することができる、1つまたは複数のメモリ素子からのプリフェッチを実行する方法の、簡略化したフローチャート300の一例を示している。要約して言えば、この方法は、少なくとも1つのメモリ素子へのメモリアクセス要求を受信することを含み、さらに、そのメモリアクセス要求が関連するアドレスに少なくとも部分的に基づいて、そのメモリアクセス要求に関連する命令情報およびデータ情報のうち少なくとも一方のプリフェッチの許可についての設定を行うことを含んでいる。
【0027】
より具体的には、図3に示す例では、この方法は、ステップ305で、例えばマスタ・デバイスからメモリアクセス要求を受信することによって開始される。例えば、図1の信号処理システム100の場合、この方法は、個別のマスタ・デバイス110、115のうち1つからのメモリアクセス要求を、メモリアクセス・モジュール140により受信することによって開始される。次に、ステップ310において、メモリアクセス要求の発信元である個別のマスタ・デバイスに対してプリフェッチが許可されているか否か判断される。メモリアクセス要求の発信元であるマスタ・デバイスに対してプリフェッチが許可されていない場合、この方法はステップ360にジャンプして終了する。しかし、メモリアクセス要求の発信元である個別のマスタ・デバイスに対してプリフェッチが許可されている場合、この方法はステップ315に進み、そこで、メモリアクセス要求が関連するアドレスが、1つまたは複数の規定のアドレス範囲と比較され、特に図示の例の場合、1つまたは複数のプログラムコード用アドレス範囲および1つまたは複数のデータ用アドレス範囲と比較される。
【0028】
ステップ320で、メモリアクセス要求が関連するアドレスが1つまたは複数の規定のアドレス範囲内にある場合、この方法はステップ325に進み、そこで、関連する規定のアドレス範囲、すなわちメモリアクセス要求が関連するアドレスがその範囲内にあるアドレス範囲についてのパラメータに従って、データプリフェッチおよび命令プリフェッチが設定される。次に、ステップ330において、受信したメモリアクセス要求がデータのバースト転送を含むものであるか否か判断される。メモリアクセス要求がデータのバースト転送を含むものである場合、この方法はステップ340に進み、そこで、関連する規定のアドレス範囲についてのパラメータに従って、データ・バーストプリフェッチが設定される。そして、ステップ350において、プリフェッチのためのバッファ行数を設定し、続いてステップ355に進んで、設定されたプリフェッチが実行される。再びステップ330を参照して、メモリアクセス要求がデータのバースト転送を含んでいない場合、この方法はそのままステップ350に進み、プリフェッチのためのバッファ行数が設定され、続いてステップ355に進んで、設定されたプリフェッチが実行される。
【0029】
再びステップ320を参照して、メモリアクセス要求が関連するアドレスが1つまたは複数の規定のアドレス範囲内にない場合、この方法はステップ365に進み、そこで、デフォルトのパラメータに従って、データプリフェッチおよび命令プリフェッチが設定される。次に、ステップ370において、受信したメモリアクセス要求がデータのバースト転送を含むものであるか否か判断される。メモリアクセス要求がデータのバースト転送を含むものである場合、この方法はステップ380に進み、そこで、デフォルトのパラメータに従って、データ・バーストプリフェッチが設定される。そして、ステップ390において、プリフェッチのためのバッファ行数を設定し、続いてステップ355に進んで、設定されたプリフェッチが実行される。再びステップ370を参照して、メモリアクセス要求がデータのバースト転送を含んでいない場合、この方法はそのままステップ390に進み、プリフェッチのためのバッファ行数が設定され、続いてステップ355に進んで、設定されたプリフェッチが実行される。設定されたプリフェッチがステップ355において実行されると、この方法はステップ360に進んで終了する。
【0030】
上記明細書では、本発明について、発明の実施形態の具体例を参照して説明を行った。しかしながら、添付の請求項に記載の発明のより広い範囲から逸脱することなく、様々な変形および変更がなされ得ることは明らかであろう。例えば、接続は、個々のノード、ユニット、またはデバイスから、あるいはそれらに対して、例えば中間デバイスを介して信号を転送するのに適したあらゆるタイプの接続とすることができる。従って、特に黙示または明記されていない限り、接続は、例えば直接的接続とすることができ、あるいは間接的接続とすることができる。
【0031】
本明細書で記載される各信号は、正論理によるもの、あるいは負論理によるものとして設計することができる。負論理信号の場合、信号は、論理的真の状態が論理レベル0(ゼロ)に対応するアクティブ・ローである。正論理信号の場合、信号は、論理的真の状態が論理レベル1に対応するアクティブ・ハイである。注目すべきことは、本明細書で記載される信号は、いずれも、負論理信号または正論理信号のどちらとして設計することも可能であるということである。従って、代替となる実施形態では、正論理信号として記載されている信号を負論理信号として実現することができ、また、負論理信号として記載されている信号を正論理信号として実現することができる。
【0032】
本明細書で解説される導体は、単一の導体、複数の導体、単方向導体、または双方向導体であるものを参照して説明または記載されることがある。しかしながら、導体の実装は、実施形態によって異なるものであってよい。例えば、双方向導体の代わりに別個の複数の単方向導体を用いることができ、またその逆もあり得る。また、多重信号を直列に、または時分割で転送する単一の導体で、複数の導体を置き換えることができる。同様に、多重信号を伝送する単一の導体を分割して、それら信号のサブセットを伝送するいくつかの別々の導体にすることができる。このように、信号の転送には多くの選択肢が存在する。
【0033】
本発明を実施する装置はその大部分が当業者に知られている電子部品および回路で構成されるので、本発明の基本的概念の理解および認識のため、さらには本発明の教示が曖昧になったり焦点が逸れたりしないようにするため、回路の詳細について、上記の例示で必要と考えられる程度を超えての説明は行っていない。
【0034】
本明細書において使用する“プログラム”という用語は、コンピュータシステムで実行するために設計された命令列と定義される。プログラムすなわちコンピュータプログラムには、サブルーチン、関数、プロシージャ、オブジェクト・メソッド、オブジェクト・インプリメンテーション、実行可能アプリケーション、アプレット、サーブレット、ソース・コード、オブジェクト・コード、共有ライブラリ/ダイナミックロード・ライブラリ、および/またはコンピュータシステムで実行するために設計されたその他の命令列を含むことができる。
【0035】
上記の実施形態のうち一部は、適宜、様々に異なる情報処理システムを用いて実施することができる。例えば、図1およびその解説では典型例である情報処理アーキテクチャについて述べているが、この典型例であるアーキテクチャは、本発明の種々の態様の説明において参考として役立てるものとして提示したにすぎない。当然のことながら、アーキテクチャについての記述は、説明の目的のために簡単化されており、また、それは本発明に従って用いることができる多くの異なるタイプの適当なアーキテクチャのうちの1つにすぎない。論理ブロック間の境界は単なる例示であって、別の実施形態では、論理ブロックまたは回路要素を併合したり、あるいは様々な論理ブロックまたは回路要素に対して異なる機能分割を施したりすることができることは、当業者であれば分かるであろう。
【0036】
従って、当然のことながら、本明細書で記載されるアーキテクチャは単なる例示にすぎず、実際には、同様の機能を実現する多くの他のアーキテクチャの実施が可能である。抽象的ではあるが明確な意味で、同様の機能を実現するためのコンポーネントのあらゆる取り合わせは、所望の機能を達成するように効果的に“関連付け”られている。従って、本明細書において特定の機能を実現するために組み合わせられる2つのコンポーネントは、いずれも、アーキテクチャあるいは中間コンポーネントにかかわらず、所望の機能を達成するように互いに“関連付け”られているとみなすことができる。さらにまた、そのように関連付けられた2つのコンポーネントは、いずれも、所望の機能を達成するように互いに“動作可能に接続”または“動作可能に結合”されているものとみなすことができる。
【0037】
また、例えば、一実施形態において、システム100の例示の要素は、1つの集積回路上または同じデバイス内に配置される回路構成である。あるいは、これに代えて、システム100は、相互に接続された任意の数の別個の集積回路または別個のデバイスを含むものとすることができる。例えば、メモリ素子(複数の場合もある)160は、マスタ110および115と同じ集積回路上または別個の集積回路上に配置することができ、あるいはシステム100の他の要素からそれぞれに独立した他の周辺機器またはスレーブ内に配置することができる。また、周辺機器130およびI/O回路125も、別個の集積回路またはデバイス上に配置することができる。さらに、例えば、システム100またはその各部は、物理回路あるいは物理回路に変換可能な論理表現のソフトまたはコード表現とすることができる。このように、システム100の各部は、いずれかの適当な種類のハードウェア記述言語で具現化することができる。
【0038】
また、上述の処理の機能的境界が単なる例示にすぎないことは、当業者であれば分かるであろう。複数の処理の機能を統合して1つの処理とすることができ、さらに/または、1つの処理の機能を追加の処理に分散させることができる。さらに、別の実施形態では、特定の処理の複数のインスタンスを含むことができ、また、処理の順序は、様々な別の実施形態において変更することができる。
【0039】
一実施形態において、システム100は、パーソナルコンピュータシステムのようなコンピュータシステムである。他の実施形態は、様々に異なるタイプのコンピュータシステムを含んでもよい。コンピュータシステムは、1人または複数のユーザに対して独立した演算処理能力を提供するように設計することができる情報処理システムである。コンピュータシステムは、多くの形態のものがあり、メインフレーム、ミニコンピュータ、サーバ、ワークステーション、パーソナルコンピュータ、電子手帳、パーソナルデジタルアシスタント、コンピュータゲーム、自動車などの組込みシステム、携帯電話、および他の様々なワイヤレス機器が含まれるが、これらに限定されるものではない。典型的なコンピュータシステムは、少なくとも1つの処理装置、付属するメモリ、およびいくつかの入力/出力(I/O)装置を備える。
【0040】
コンピュータシステムは、プログラムに従って情報を処理し、結果として得られる出力情報をI/O装置を介して生成する。プログラムは、特定のアプリケーション・プログラムおよび/またはオペレーティングシステムなどの命令列である。コンピュータプログラムは、通常、コンピュータ読み取り可能な記憶媒体に内部的に記憶されているか、あるいはコンピュータ読み取り可能な伝送媒体を介してコンピュータシステムに伝送される。コンピュータプロセスは、通常、実行中のプログラムまたはプログラムの一部と、現在のプログラム値および状態情報と、プロセスの実行を管理するためにオペレーティングシステムにより使用される資源とを含んでいる。親プロセスは、親プロセスの全体的な機能の実行を支援するための子プロセスを別に生成することができる。親プロセスは、特に親プロセスの全体的な機能の一部を実行するために子プロセスを生成するので、子プロセス(および孫プロセスなど)により実行される機能は、時に親プロセスにより実行されるものとして記載されることがある。
【0041】
また、本発明は、非プログラマブル・ハードウェアで実現される物理デバイスまたはユニットに限定されることなく、適当なプログラムコードに従って動作することにより所望のデバイス機能を実行することができるプログラマブル・デバイスまたはユニットにも適用することができる。さらに、デバイスは、機能的には1つのデバイスとして動作しながら、物理的にはいくつかの装置に分散されていてもよい。また、機能的に別々のデバイスを形成しているデバイスを、1つの物理デバイスに統合することができる。
【0042】
しかし、さらに、その他の変更、変形、および代替が可能である。従って、本明細書および図面は、限定的な意味をもつものではなく、例示的なものとみなされるべきである。
請求項において、括弧の中の参照符号は、いずれも請求項を限定するものとして解釈されてはならない。“備えている”という言葉は、請求項に列挙されているもの以外の要素またはステップの存在を除外するものではない。“第1の”および“第2の”のような用語は、特に断りのない限り、それらの用語が記述している要素を任意に区別するために用いている。従って、これらの用語は、必ずしも、それら要素の時間的あるいはその他の優先順位を示すためのものではない。単に、ある手段が互いに異なる請求項に記載されているということが、それらの手段の組み合わせを効果的に利用することができないことを示すわけではない。

【特許請求の範囲】
【請求項1】
信号処理システム(100)であって、
少なくとも1つのマスタ・デバイス(110、115)と、
少なくとも1つのメモリ素子(160)と、
前記少なくとも1つのマスタ・デバイス(110、115)からメモリアクセス要求を受信すると、前記少なくとも1つのメモリ素子(160)からのプリフェッチを実行するように構成されているプリフェッチ・モジュール(142)と
を備え、前記プリフェッチ・モジュールは、(142)は、メモリアクセス要求を受信すると、そのメモリアクセス要求が関連するアドレスに少なくとも部分的に基づいて、そのメモリアクセス要求に関連する命令情報およびデータ情報の少なくとも一方のプリフェッチの許可を設定するように構成されている、信号処理システム(100)。
【請求項2】
前記プリフェッチ・モジュール(142)は、前記メモリアクセス要求が関連するアドレスを、データ構造に関連付けられたアドレス範囲と比較するように構成されており、前記メモリアクセス要求が関連するアドレスが前記アドレス範囲内にある場合に、前記プリフェッチ・モジュール(142)は、そのメモリアクセス要求に関連するデータ情報のプリフェッチを許可するように構成されている、請求項1に記載の信号処理システム(100)。
【請求項3】
前記メモリアクセス要求が関連するアドレスが、データ構造に関連付けられた前記アドレス範囲内にある場合に、前記プリフェッチ・モジュール(142)は、そのメモリアクセス要求に関連する命令情報のプリフェッチを不可にするように構成されている、請求項2に記載の信号処理システム(100)。
【請求項4】
前記プリフェッチ・モジュール(142)は、前記メモリアクセス要求が関連するアドレスを、プログラムコードに関連付けられたアドレス範囲と比較するように構成されており、前記メモリアクセス要求が関連するアドレスが前記アドレス範囲内にある場合に、前記プリフェッチ・モジュール(142)は、そのメモリアクセス要求に関連する命令情報のプリフェッチを許可するように構成されている、請求項1に記載の信号処理システム(100)。
【請求項5】
前記メモリアクセス要求が関連するアドレスが、プログラムコードに関連付けられた前記アドレス範囲内にある場合に、前記プリフェッチ・モジュール(142)は、そのメモリアクセス要求に関連するデータ情報のプリフェッチを不可にするように構成されている、請求項4に記載の信号処理システム(100)。
【請求項6】
前記メモリアクセス要求がデータのバースト転送を含む場合、前記プリフェッチ・モジュール(142)は、そのメモリアクセス要求に関連するデータ情報のプリフェッチを許可するように構成されている、請求項1に記載の信号処理システム(100)。
【請求項7】
前記プリフェッチ・モジュール(142)は、さらに、前記少なくとも1つのマスタ・デバイス(110、115)からのメモリアクセス要求に関連するプリフェッチに対してバッファ行数を設定するように構成されている、請求項1に記載の信号処理システム(100)。
【請求項8】
前記プリフェッチ・モジュール(142)は、さらに、メモリアクセス要求の発信元である前記少なくとも1つのマスタ・デバイス(110、115)に対してプリフェッチが許可されているか否かを判断するように構成されており、メモリアクセス要求の発信元である前記少なくとも1つのマスタ・デバイス(110、115)に対してプリフェッチが許可されていない場合に、前記プリフェッチ・モジュール(142)は、そのメモリアクセス要求に関連するプリフェッチを不可にするように構成されている、請求項1に記載の信号処理システム(100)。
【請求項9】
アドレス範囲を有している少なくとも1つの制御レジスタ(146)をさらに備え、
前記プリフェッチ・モジュール(142)は、さらに、メモリアクセス要求が関連するアドレスが前記アドレス範囲内にない場合に、プログラム可能なデフォルトの設定に従って、そのメモリアクセス要求に関連する命令情報およびデータ情報の少なくとも一方のプリフェッチの許可を設定するように構成されている、請求項1に記載の信号処理システム(100)。
【請求項10】
請求項1に記載のプリフェッチ・モジュール(142)を備え、
前記少なくとも1つのマスタ・デバイス(110、115)と少なくとも1つのメモリ素子とを動作可能に結合するように構成されている、集積回路(105)。
【請求項11】
少なくとも1つのメモリ素子からのプリフェッチを実行する方法(300)であって、
前記少なくとも1つのメモリ素子へのメモリアクセス要求を受信すること(305)、
前記メモリアクセス要求が関連するアドレスに少なくとも部分的に基づいて、そのメモリアクセス要求に関連する命令情報およびデータ情報の少なくとも一方のプリフェッチの許可を設定すること(325、365)
を含む方法(300)。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公表番号】特表2012−533811(P2012−533811A)
【公表日】平成24年12月27日(2012.12.27)
【国際特許分類】
【出願番号】特願2012−521107(P2012−521107)
【出願日】平成21年7月20日(2009.7.20)
【国際出願番号】PCT/IB2009/053138
【国際公開番号】WO2011/010183
【国際公開日】平成23年1月27日(2011.1.27)
【出願人】(504199127)フリースケール セミコンダクター インコーポレイテッド (806)
【Fターム(参考)】