(57)【特許請求の範囲】
【請求項１】
信号処理システム（１００）であって、
少なくとも１つのマスタ・デバイス（１１０、１１５）と、
少なくとも１つのメモリ素子（１６０）と、
前記少なくとも１つのマスタ・デバイス（１１０、１１５）からメモリアクセス要求を受信すると、前記少なくとも１つのメモリ素子（１６０）からのプリフェッチを実行するように構成されているプリフェッチ・モジュール（１４２）と
を備え、前記プリフェッチ・モジュールは、（１４２）は、メモリアクセス要求を受信すると、そのメモリアクセス要求が関連するアドレスに少なくとも部分的に基づいて、そのメモリアクセス要求に関連する命令情報およびデータ情報の少なくとも一方のプリフェッチの許可を設定するように構成され、
前記プリフェッチ・モジュール（１４２）は、前記メモリアクセス要求が関連するアドレスを、データ構造に関連付けられたアドレス範囲と比較するように構成されており、データ構造に関連付けられた前記アドレス範囲は、データ構造を含み、該データ構造内には複数行の命令情報が記憶され、
前記メモリアクセス要求が関連するアドレスが、データ構造に関連付けられた前記アドレス範囲内にある場合に、前記プリフェッチ・モジュール（１４２）は、そのメモリアクセス要求に関連するデータ情報のプリフェッチを許可するように構成され、
前記メモリアクセス要求が関連するアドレスが、データ構造に関連付けられた前記アドレス範囲内にある場合に、前記プリフェッチ・モジュール（１４２）は、そのメモリアクセス要求に関連する命令情報のプリフェッチを不可にするように構成されている、信号処理システム（１００）。
【請求項２】
前記プリフェッチ・モジュール（１４２）は、前記メモリアクセス要求が関連するアドレスを、プログラムコードに関連付けられたアドレス範囲と比較するように構成されており、前記メモリアクセス要求が関連するアドレスが前記アドレス範囲内にある場合に、前記プリフェッチ・モジュール（１４２）は、そのメモリアクセス要求に関連する命令情報のプリフェッチを許可するように構成されている、請求項１に記載の信号処理システム（１００）。
【請求項３】
前記メモリアクセス要求が関連するアドレスが、プログラムコードに関連付けられた前記アドレス範囲内にある場合に、前記プリフェッチ・モジュール（１４２）は、そのメモリアクセス要求に関連するデータ情報のプリフェッチを不可にするように構成されている、請求項２に記載の信号処理システム（１００）。
【請求項４】
前記メモリアクセス要求がデータのバースト転送を含む場合、前記プリフェッチ・モジュール（１４２）は、そのメモリアクセス要求に関連するデータ情報のプリフェッチを許可するように構成されている、請求項１に記載の信号処理システム（１００）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の分野は、プリフェッチ・モジュールを備える信号処理システムおよびそのための方法に関し、より具体的には、マスタ・デバイスからメモリ素子へのメモリアクセス要求に応じてメモリ素子からのプリフェッチを実行するように構成されたプリフェッチ・モジュールを備える信号処理システムおよびそのための方法に関する。
【背景技術】
【０００２】
信号処理システムにおけるメモリからの命令およびデータの取り出しは、そのフェッチ命令を起動したマスタ・デバイスの動作周波数に比較して遅いプロセスであることが多い。このため、システムがそのようなフェッチ処理を多数実行している場合、それによって、システム全体のパフォーマンスが著しく低下することがある。プリフェッチ方式を実施することが知られており、これによると、データおよび／または命令は、それに対するフェッチ命令がマスタ・デバイスにより起動されるのに先立って取り出される。その結果、比較的低速であるメモリ要素へのアクセスによるパフォーマンスへの影響が軽減され得る。
【０００３】
しかしながら、そのようなプリフェッチ方式を実施する場合の問題は、マスタ・デバイスが必要とすることになる命令およびデータの少なくとも一方、さらにはそのタイミングを正確に“予測する”ことが常に可能なわけではないということであり、このため、不要なプリフェッチ処理がしばしば実行される。そのように不要なプリフェッチを実行することは、特にフラッシュメモリ・アクセス要求のアボートが不可能である場合に、それらの実行のためにシステム資源が使い尽くされてしまうため、システム・パフォーマンスの妨げとなり得る。従って、そのようなプリフェッチ方式が不適切な設定であることは、それらの効果を、よくても準最適とし、場合によってはシステム・パフォーマンスの妨げとなることさえある。
【発明の概要】
【課題を解決するための手段】
【０００４】
本発明は、添付の請求項に記載の信号処理システム、その信号処理システムを含む集積回路、並びにそのための方法を提供するものである。
本発明の具体的な実施形態は、従属請求項に記載される。
【０００５】
本発明のこれらの態様およびその他の態様は、以下で説明する実施形態から明らかとなり、また、それらを参照することで明確に理解されるであろう。
【図面の簡単な説明】
【０００６】
【図１】信号処理システムの一例を示す図である。
【図２】アドレスマップの一例を示す図である。
【図３】メモリ素子からのプリフェッチ処理を実行する方法の簡略化したフローチャートの一例を示す図である。
【発明を実施するための形態】
【０００７】
本発明のさらなる詳細、態様、および実施形態について、図面を参照して単なる例により説明する。図中の要素は、簡単かつ明瞭に示すものであって、必ずしも正確な縮尺で描かれてはいない。
【０００８】
システムオンチップ（ＳｏＣ）デバイスのような１つの集積回路の中に実質的に組み込まれる信号処理システムを参照して、以下、実施例についての説明を行う。しかし、本明細書で記載される実施例は、そのような集積型信号処理システムの中での使用に限定されるものではなく、別の信号処理構成およびアーキテクチャに同様に適用することができることが理解されるだろう。さらに、本発明を実施する装置例はその大部分が当業者に知られている電子部品および回路で構成されるので、発明の基本的概念の理解および認識のため、さらには発明の教示が曖昧になったり焦点が逸れたりしないようにするため、回路の詳細について、以下の例示で必要と考えられる程度を超えての説明は行わない。
【０００９】
図１を参照すると、信号処理システム１００の一例が示されている。図示の例では、信号処理システム１００は、集積回路（ＩＣ）１０５の中に組み込まれている。図１の信号処理システム１００は、システム内部配線１２０に動作可能に結合された１つまたは複数のマスタ・デバイス１１０、１１５を備えている。典型的なマスタ・デバイスとして、ＣＰＵまたはＤＭＡ（直接メモリアクセス）コントローラを含むことができる。その他のマスタ・デバイスとして、イーサネット（登録商標）・コントローラまたはＦｌｅｘＲａｙ（フレックスレイ）コントローラのような通信プロセッサ、グラフィック・プロセッサおよび／またはコントローラなどを含むことができる。いくつかの例においては、集積回路の外部にあるマスタ・デバイスを、例えばＩＣ１０５上の内部接続ピン（またはバス）（図示せず）を介して、システム内部配線１２０に動作可能に結合することもできる。システム内部配線１２０は、ペリフェラル・コンポーネント・インタフェース（ＰＣＩ：Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｆａｃｅ）プロトコルまたはＡＲＭ社のアドバンスト・マイクロコントローラ・バスアーキテクチャ（ＡＭＢＡ（登録商標）：Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏｃｏｎｔｒｏｌｌｅｒ  Ｂｕｓ  Ａｒｃｈｉｔｅｃｔｕｒｅ）プロトコルなどのシステムバス・プロトコルに従って動作するシステムバスによるものなど、何らかの適当な方法で実装することができる。あるいは、システム内部配線１２０はスイッチング回路を備えるものとすることができ、これにより、そこに接続された異なるマスタ・デバイスとスレーブ・デバイスの間で情報をルーティングする。
【００１０】
また、１つまたは複数のスレーブ・デバイスが、システム内部配線１２０に動作可能に結合されており、これには、図示の例では、入力／出力（Ｉ／Ｏ）回路１２５、周辺機器１３０、およびその他のスレーブ・デバイス１３５が含まれる。これらのスレーブ・デバイスは、図１では、ＩＣ１０５の中に組み込まれるものとしても示されている。しかしながら、これに代えて、スレーブ・デバイスの一部またはすべてがＩＣ１０５の外部に配置されていてもよい。信号処理システム１００は、さらにプリフェッチ・モジュール１４２を備えており、これは、図示の例では、システム内部配線１２０に動作可能に結合されて１つまたは複数のメモリ素子１６０へのアクセスを提供するように構成されたメモリアクセス要求モジュール１４０の一部をなしている。図示の例では、１つまたは複数のメモリ素子１６０がＩＣ１０５の外部にあるものとして示されている。しかしながら、その１つまたは複数のメモリ素子は、ＩＣ１０５の中に組み込まれていてもよいと考えられる。
【００１１】
プリフェッチ・モジュール１４２は、メモリ素子（複数の場合もある）１６０へのメモリアクセス要求をマスタ・デバイス１１０、１１５から受け取ると、１つまたは複数のメモリ素子１６０からのプリフェッチを実行するように構成されている。具体的には、マスタ・デバイス１１０、１１５からのメモリアクセス要求を、例えばメモリアクセス要求モジュール１４０によりシステム内部配線１２０を介して受け取ると、プリフェッチ・モジュール１４２は、メモリアクセス要求が関連するアドレスに少なくとも部分的に基づいて、そのメモリアクセス要求に関連する命令情報およびデータ情報の少なくとも一方プリフェッチの許可を設定するように構成されている。
【００１２】
例えば、プリフェッチ・モジュール１４２は、メモリアクセス要求が関連するアドレスを、例えばデータ構造（例えば、地図、画像など）に関連付けられた１つまたは複数のアドレス範囲と比較するように構成することができる。メモリアクセス要求が関連するアドレスが、上記アドレス範囲（複数の場合もある）内にある場合に、プリフェッチ・モジュール１４２は、そのメモリアクセス要求に関連するデータ情報のプリフェッチを許可する（ｅｎａｂｌｅ）ように構成されているものとすることができる。また、プリフェッチ・モジュール１４２は、メモリアクセス要求が関連するアドレスが、データ構造に関連付けられた上記アドレス範囲（複数の場合もある）内にある場合に、そのメモリのアクセス要求に関連する命令情報のプリフェッチを不可にする（ｄｉｓａｂｌｅ）ように構成されているものとすることができる。
【００１３】
追加的および／または代替的に、その他の例において、プリフェッチ・モジュール１４２は、メモリアクセス要求が関連するアドレスを、例えばオペレーティングシステム・コードおよび／またはアプリケーション・コードのようなプログラムコードに関連付けられた１つまたは複数のアドレス範囲と比較するように構成されているものとすることができ、また、メモリアクセス要求が関連するアドレスが上記アドレス範囲（複数の場合もある）内にある場合に、プリフェッチ・モジュール１４２は、そのメモリアクセス要求に関連する命令情報のプリフェッチを許可するように構成されているものとすることができる。また、プリフェッチ・モジュール１４２は、メモリアクセス要求が関連するアドレスが、プログラムコードに関連付けられた上記アドレス範囲（複数の場合もある）内にある場合に、そのメモリアクセス要求に関連するデータ情報のプリフェッチを不可にするように構成されているものとすることができる。
【００１４】
図１に示す例では、メモリアクセス要求モジュール１４０は、例えば１つまたは複数のアドレス範囲の‘開始’アドレスおよび‘終端’アドレスといったアドレス範囲パラメータを記憶するように構成された、１つまたは複数の制御レジスタ１４６を備えている。さらに、その１つまたは複数の制御レジスタ１４６は、それらのアドレス範囲の各々の範囲内にあるアドレスへのメモリアクセス要求に関連するプリフェッチが許可されるべきか不可にされるべきかを規定する、１つまたは複数のパラメータを記憶するように構成されているものとすることができる。
【００１５】
図２は、メモリ素子１６０のアドレスマップ２００の一例を示している。２つのアドレス範囲が規定されており、それらは、アドレスＸとアドレスＹの間の第１のアドレス範囲２１０と、アドレスＹとアドレスＺの間の第２のアドレス範囲２２０である。従って、図１の１つまたは複数の制御レジスタ１４６は、アドレス範囲２１０、２２０の各々の開始アドレスと終端アドレスとを記憶するように構成することができる。各々のアドレス範囲２１０、２２０について、１つまたは複数の制御レジスタ１４６は、さらに、例えば個々のアドレス範囲２１０，２２０内のアドレスへのアクセスに対して、命令のプリフェッチが許可されるべきかどうか、および、データのプリフェッチが不可にされるべきかどうかを規定する１つまたは複数のパラメータを記憶するように構成することができる。
【００１６】
このようにして、メモリアクセス要求が関連するアドレスに基づき、プリフェッチの許可および不可を設定することができる。従って、例として、メモリ内で例えばプログラムコードおよびデータ構造を適切に配置することで、例えば地図および画像といった大きなデータ構造を１つまたは複数の特定のアドレス範囲内に記憶するようにすることにより、そのようなアドレス範囲内のアドレスへのアクセスについてのプリフェッチを適切に設定することができる。例えば、図２の第２のアドレス範囲２２０のように大きなデータ構造に関連付けられているアドレス範囲の場合、比較的低速のメモリ素子からそのような大きなデータ構造にアクセスすることによるパフォーマンスへの影響の可能性を低減するためには、データのプリフェッチを許可することが適切な場合がある。ところが、データ構造に関連付けられているそのようなアドレス範囲内には命令情報が（もしあるとしても）数行、記憶されていることを想定することができるので、不要なプリフェッチの実行およびシステム資源の無駄な消費を防ぐためには、そのアドレス範囲内での命令のプリフェッチを不可にすることが適切な場合がある。
【００１７】
一方、プログラムコードおよびその他の命令情報を、図２の第１のアドレス範囲２１０のような１つまたは複数の特定のアドレス範囲内に記憶することにより、そのようなアドレス範囲内のアドレスへのアクセスについてのプリフェッチを、やはり適切に設定することができる。例として、例えばプログラムコードと関連付けられているアドレス範囲の場合、比較的低速のメモリ素子からのプログラムコードの大きなセクションにアクセスすることによるパフォーマンスへの影響を軽減するためには、命令のプリフェッチを許可することが適切な場合がある。ところが、プログラムコードに関連付けられているそのようなアドレス範囲内には、変数および定数など、ほんの小さなデータ構造が記憶されている可能性が高いと想定できるので、不要なプリフェッチの実行およびシステム資源の無駄な消費を防ぐためには、データのプリフェッチを不可にすることが適切な場合がある。
【００１８】
従って、再び図１を参照して、メモリアクセス要求モジュール１４０によりメモリアクセス要求を受け取ると、プリフェッチ・モジュール１４２は、そのメモリアクセス要求が関連するアドレスを、１つまたは複数の制御レジスタ１４６に記憶されているパラメータにより規定される１つまたは複数のアドレス範囲と比較し、そして、メモリアクセス要求が関連するアドレスが、１つまたは複数の制御レジスタ１４６で規定されているアドレス範囲内にある場合は、１つまたは複数の制御レジスタ１４６に記憶されている対応する１つまたは複数の設定パラメータに従って、そのメモリアクセス要求に関連する命令情報および／またはデータ情報のプリフェッチの許可を設定するように構成されるものとすることができる。そして、その設定に従って、プリフェッチ・モジュール１４２はプリフェッチを実行することができ、これにより、１つまたは複数のメモリ素子１６０から情報を設定に従って取り出し、取り出した情報をバッファ１４４に記憶する。このようにして、プリフェッチされた情報は、続いて、例えばマスタ・デバイス１１０、１１５のうちの１つによるアクセスに対して利用可能となり、従って、その時点で情報の取り出しのために比較的低速であるメモリ１６０へのアクセスを実行する必要がなくなり、それに伴うシステム・パフォーマンスの低下が回避される。
【００１９】
前述のように、プリフェッチ・モジュール１４２は、不要なデータ情報のプリフェッチが実行されることを防ぐため、例えばプログラムコードに関連付けられているアドレス範囲へのメモリアクセス要求に関連するデータ情報のプリフェッチを不可にするように構成されるものとすることができる。しかしながら、そのようなメモリアクセス要求が、データのバースト転送（またはその一部）を含む場合、データ情報のプリフェッチを不可にすることによって、そのようなデータのバースト転送に無駄な遅れが生じることがある。従って、さらに別の例において、プリフェッチ・モジュール１４２は、メモリアクセス要求が関連するアドレスがプログラムコードに関連付けられているアドレス範囲内にある場合に、そのメモリアクセス要求がデータのバースト転送を含むものであるかどうかを判断するように構成されるものとすることができ、そして、メモリアクセス要求がデータのバースト転送を含む場合には、プリフェッチ・モジュール１４２は、そのメモリアクセス要求に関連するデータ情報のプリフェッチを許可するように構成されるものとすることができる。
【００２０】
さらに、いくつかの例においては、１つまたは複数の制御レジスタ１４６は、図２のアドレス範囲２１０、２２０のような各々のアドレス範囲についてのさらなるパラメータを記憶するように構成されており、それは、データ・バーストのプリフェッチが許可されるべきか否かを個々のアドレス範囲について規定するものである。従って、図２に示す例の場合、１つまたは複数の制御レジスタ１４６は、第１のアドレス範囲２１０について、開始アドレス＝Ｘ；終端アドレス＝Ｙ；命令プリフェッチ許可；データプリフェッチ不可；データ・バーストプリフェッチ許可；を規定するパラメータを記憶するように構成することができる。
【００２１】
一方、いくつかの例においては、１つまたは複数の制御レジスタ１４６は、第２のアドレス範囲２２０について、開始アドレス＝Ｙ；終端アドレス＝Ｚ；命令プリフェッチ不可；データプリフェッチ許可；データ・バーストプリフェッチ許可；を規定するパラメータを記憶するように構成される。
【００２２】
一例において、プリフェッチ・モジュール１４２は、受信したメモリアクセス要求に関連するプリフェッチの他の態様について設定を行うように構成されたものとすることができる。例として、プリフェッチ・モジュール１４２は、例えばマスタ・デバイス１１０、１１５からのメモリアクセス要求に関連するプリフェッチのため、例えばそのメモリアクセス要求が関連するアドレス、あるいはプリフェッチされる情報のタイプ（例えば、命令あるいはデータ）に基づいて、バッファ行数を設定するように構成されたものとすることができる。図１に示す例の場合、そのような設定は、１つまたは複数の制御レジスタ１４６に記憶される１つまたは複数のパラメータによって規定することができる。
【００２３】
プリフェッチ・モジュール１４２は、さらに、例えば、１つまたは複数の制御レジスタ１４６に記憶されている１つまたは複数のパラメータによる規定に従って、メモリアクセス要求の発信元である個々のマスタ・デバイス１１０、１１５に対して、メモリアクセス要求に関連するプリフェッチが許可されているか否か判断するように構成されたものとすることができる。メモリアクセス要求の発信元である個別のマスタ・デバイスに対してプリフェッチが許可されていないと判断される場合、プリフェッチ・モジュール１４２は、そのメモリアクセス要求に関連するプリフェッチを不可にすることができる。
【００２４】
いくつかの例によっては、メモリアクセス要求が関連するアドレスが例えば１つまたは複数の制御レジスタ１４６において規定されるアドレス範囲内にない場合に、プリフェッチ・モジュール１４２は、デフォルトの設定に従って、そのメモリアクセス要求に関連する命令情報およびデータ情報の少なくとも一方のプリフェッチの許可を設定するように構成されたものとすることができる。図１に示す例の場合、そのようなデフォルトの設定は、制御レジスタ１４６に記憶されているものとすることもできる。同様に、メモリアクセス要求が関連するアドレスが例えば１つまたは複数の制御レジスタ１４６において規定されるアドレス範囲にない場合に、プリフェッチ・モジュール１４２は、プリフェッチのためのバッファ行数など、受信したメモリアクセス要求に関連するプリフェッチの他の態様について設定するように構成されているものとすることができる。
【００２５】
１つまたは複数の制御レジスタ１４６は、例えばマスタ・デバイス１１０、１１５のうちの１つ以上によって、プログラム可能とすることができる。このようにして、メモリ素子（複数の場合もある）１６０からの命令のプリフェッチを調整および規制するように、プリフェッチ設定をプログラムし、変更することができる。
【００２６】
次に図３を参照すると、そこに、例えば図１の信号処理システム１００内で実施することができる、１つまたは複数のメモリ素子からのプリフェッチを実行する方法の、簡略化したフローチャート３００の一例を示している。要約して言えば、この方法は、少なくとも１つのメモリ素子へのメモリアクセス要求を受信することを含み、さらに、そのメモリアクセス要求が関連するアドレスに少なくとも部分的に基づいて、そのメモリアクセス要求に関連する命令情報およびデータ情報のうち少なくとも一方のプリフェッチの許可についての設定を行うことを含んでいる。
【００２７】
より具体的には、図３に示す例では、この方法は、ステップ３０５で、例えばマスタ・デバイスからメモリアクセス要求を受信することによって開始される。例えば、図１の信号処理システム１００の場合、この方法は、個別のマスタ・デバイス１１０、１１５のうち１つからのメモリアクセス要求を、メモリアクセス・モジュール１４０により受信することによって開始される。次に、ステップ３１０において、メモリアクセス要求の発信元である個別のマスタ・デバイスに対してプリフェッチが許可されているか否か判断される。メモリアクセス要求の発信元であるマスタ・デバイスに対してプリフェッチが許可されていない場合、この方法はステップ３６０にジャンプして終了する。しかし、メモリアクセス要求の発信元である個別のマスタ・デバイスに対してプリフェッチが許可されている場合、この方法はステップ３１５に進み、そこで、メモリアクセス要求が関連するアドレスが、１つまたは複数の規定のアドレス範囲と比較され、特に図示の例の場合、１つまたは複数のプログラムコード用アドレス範囲および１つまたは複数のデータ用アドレス範囲と比較される。
【００２８】
ステップ３２０で、メモリアクセス要求が関連するアドレスが１つまたは複数の規定のアドレス範囲内にある場合、この方法はステップ３２５に進み、そこで、関連する規定のアドレス範囲、すなわちメモリアクセス要求が関連するアドレスがその範囲内にあるアドレス範囲についてのパラメータに従って、データプリフェッチおよび命令プリフェッチが設定される。次に、ステップ３３０において、受信したメモリアクセス要求がデータのバースト転送を含むものであるか否か判断される。メモリアクセス要求がデータのバースト転送を含むものである場合、この方法はステップ３４０に進み、そこで、関連する規定のアドレス範囲についてのパラメータに従って、データ・バーストプリフェッチが設定される。そして、ステップ３５０において、プリフェッチのためのバッファ行数を設定し、続いてステップ３５５に進んで、設定されたプリフェッチが実行される。再びステップ３３０を参照して、メモリアクセス要求がデータのバースト転送を含んでいない場合、この方法はそのままステップ３５０に進み、プリフェッチのためのバッファ行数が設定され、続いてステップ３５５に進んで、設定されたプリフェッチが実行される。
【００２９】
再びステップ３２０を参照して、メモリアクセス要求が関連するアドレスが１つまたは複数の規定のアドレス範囲内にない場合、この方法はステップ３６５に進み、そこで、デフォルトのパラメータに従って、データプリフェッチおよび命令プリフェッチが設定される。次に、ステップ３７０において、受信したメモリアクセス要求がデータのバースト転送を含むものであるか否か判断される。メモリアクセス要求がデータのバースト転送を含むものである場合、この方法はステップ３８０に進み、そこで、デフォルトのパラメータに従って、データ・バーストプリフェッチが設定される。そして、ステップ３９０において、プリフェッチのためのバッファ行数を設定し、続いてステップ３５５に進んで、設定されたプリフェッチが実行される。再びステップ３７０を参照して、メモリアクセス要求がデータのバースト転送を含んでいない場合、この方法はそのままステップ３９０に進み、プリフェッチのためのバッファ行数が設定され、続いてステップ３５５に進んで、設定されたプリフェッチが実行される。設定されたプリフェッチがステップ３５５において実行されると、この方法はステップ３６０に進んで終了する。
【００３０】
上記明細書では、本発明について、発明の実施形態の具体例を参照して説明を行った。しかしながら、添付の請求項に記載の発明のより広い範囲から逸脱することなく、様々な変形および変更がなされ得ることは明らかであろう。例えば、接続は、個々のノード、ユニット、またはデバイスから、あるいはそれらに対して、例えば中間デバイスを介して信号を転送するのに適したあらゆるタイプの接続とすることができる。従って、特に黙示または明記されていない限り、接続は、例えば直接的接続とすることができ、あるいは間接的接続とすることができる。
【００３１】
本明細書で記載される各信号は、正論理によるもの、あるいは負論理によるものとして設計することができる。負論理信号の場合、信号は、論理的真の状態が論理レベル０（ゼロ）に対応するアクティブ・ローである。正論理信号の場合、信号は、論理的真の状態が論理レベル１に対応するアクティブ・ハイである。注目すべきことは、本明細書で記載される信号は、いずれも、負論理信号または正論理信号のどちらとして設計することも可能であるということである。従って、代替となる実施形態では、正論理信号として記載されている信号を負論理信号として実現することができ、また、負論理信号として記載されている信号を正論理信号として実現することができる。
【００３２】
本明細書で解説される導体は、単一の導体、複数の導体、単方向導体、または双方向導体であるものを参照して説明または記載されることがある。しかしながら、導体の実装は、実施形態によって異なるものであってよい。例えば、双方向導体の代わりに別個の複数の単方向導体を用いることができ、またその逆もあり得る。また、多重信号を直列に、または時分割で転送する単一の導体で、複数の導体を置き換えることができる。同様に、多重信号を伝送する単一の導体を分割して、それら信号のサブセットを伝送するいくつかの別々の導体にすることができる。このように、信号の転送には多くの選択肢が存在する。
【００３３】
本発明を実施する装置はその大部分が当業者に知られている電子部品および回路で構成されるので、本発明の基本的概念の理解および認識のため、さらには本発明の教示が曖昧になったり焦点が逸れたりしないようにするため、回路の詳細について、上記の例示で必要と考えられる程度を超えての説明は行っていない。
【００３４】
本明細書において使用する“プログラム”という用語は、コンピュータシステムで実行するために設計された命令列と定義される。プログラムすなわちコンピュータプログラムには、サブルーチン、関数、プロシージャ、オブジェクト・メソッド、オブジェクト・インプリメンテーション、実行可能アプリケーション、アプレット、サーブレット、ソース・コード、オブジェクト・コード、共有ライブラリ／ダイナミックロード・ライブラリ、および／またはコンピュータシステムで実行するために設計されたその他の命令列を含むことができる。
【００３５】
上記の実施形態のうち一部は、適宜、様々に異なる情報処理システムを用いて実施することができる。例えば、図１およびその解説では典型例である情報処理アーキテクチャについて述べているが、この典型例であるアーキテクチャは、本発明の種々の態様の説明において参考として役立てるものとして提示したにすぎない。当然のことながら、アーキテクチャについての記述は、説明の目的のために簡単化されており、また、それは本発明に従って用いることができる多くの異なるタイプの適当なアーキテクチャのうちの１つにすぎない。論理ブロック間の境界は単なる例示であって、別の実施形態では、論理ブロックまたは回路要素を併合したり、あるいは様々な論理ブロックまたは回路要素に対して異なる機能分割を施したりすることができることは、当業者であれば分かるであろう。
【００３６】
従って、当然のことながら、本明細書で記載されるアーキテクチャは単なる例示にすぎず、実際には、同様の機能を実現する多くの他のアーキテクチャの実施が可能である。抽象的ではあるが明確な意味で、同様の機能を実現するためのコンポーネントのあらゆる取り合わせは、所望の機能を達成するように効果的に“関連付け”られている。従って、本明細書において特定の機能を実現するために組み合わせられる２つのコンポーネントは、いずれも、アーキテクチャあるいは中間コンポーネントにかかわらず、所望の機能を達成するように互いに“関連付け”られているとみなすことができる。さらにまた、そのように関連付けられた２つのコンポーネントは、いずれも、所望の機能を達成するように互いに“動作可能に接続”または“動作可能に結合”されているものとみなすことができる。
【００３７】
また、例えば、一実施形態において、システム１００の例示の要素は、１つの集積回路上または同じデバイス内に配置される回路構成である。あるいは、これに代えて、システム１００は、相互に接続された任意の数の別個の集積回路または別個のデバイスを含むものとすることができる。例えば、メモリ素子（複数の場合もある）１６０は、マスタ１１０および１１５と同じ集積回路上または別個の集積回路上に配置することができ、あるいはシステム１００の他の要素からそれぞれに独立した他の周辺機器またはスレーブ内に配置することができる。また、周辺機器１３０およびＩ／Ｏ回路１２５も、別個の集積回路またはデバイス上に配置することができる。さらに、例えば、システム１００またはその各部は、物理回路あるいは物理回路に変換可能な論理表現のソフトまたはコード表現とすることができる。このように、システム１００の各部は、いずれかの適当な種類のハードウェア記述言語で具現化することができる。
【００３８】
また、上述の処理の機能的境界が単なる例示にすぎないことは、当業者であれば分かるであろう。複数の処理の機能を統合して１つの処理とすることができ、さらに／または、１つの処理の機能を追加の処理に分散させることができる。さらに、別の実施形態では、特定の処理の複数のインスタンスを含むことができ、また、処理の順序は、様々な別の実施形態において変更することができる。
【００３９】
一実施形態において、システム１００は、パーソナルコンピュータシステムのようなコンピュータシステムである。他の実施形態は、様々に異なるタイプのコンピュータシステムを含んでもよい。コンピュータシステムは、１人または複数のユーザに対して独立した演算処理能力を提供するように設計することができる情報処理システムである。コンピュータシステムは、多くの形態のものがあり、メインフレーム、ミニコンピュータ、サーバ、ワークステーション、パーソナルコンピュータ、電子手帳、パーソナルデジタルアシスタント、コンピュータゲーム、自動車などの組込みシステム、携帯電話、および他の様々なワイヤレス機器が含まれるが、これらに限定されるものではない。典型的なコンピュータシステムは、少なくとも１つの処理装置、付属するメモリ、およびいくつかの入力／出力（Ｉ／Ｏ）装置を備える。
【００４０】
コンピュータシステムは、プログラムに従って情報を処理し、結果として得られる出力情報をＩ／Ｏ装置を介して生成する。プログラムは、特定のアプリケーション・プログラムおよび／またはオペレーティングシステムなどの命令列である。コンピュータプログラムは、通常、コンピュータ読み取り可能な記憶媒体に内部的に記憶されているか、あるいはコンピュータ読み取り可能な伝送媒体を介してコンピュータシステムに伝送される。コンピュータプロセスは、通常、実行中のプログラムまたはプログラムの一部と、現在のプログラム値および状態情報と、プロセスの実行を管理するためにオペレーティングシステムにより使用される資源とを含んでいる。親プロセスは、親プロセスの全体的な機能の実行を支援するための子プロセスを別に生成することができる。親プロセスは、特に親プロセスの全体的な機能の一部を実行するために子プロセスを生成するので、子プロセス（および孫プロセスなど）により実行される機能は、時に親プロセスにより実行されるものとして記載されることがある。
【００４１】
また、本発明は、非プログラマブル・ハードウェアで実現される物理デバイスまたはユニットに限定されることなく、適当なプログラムコードに従って動作することにより所望のデバイス機能を実行することができるプログラマブル・デバイスまたはユニットにも適用することができる。さらに、デバイスは、機能的には１つのデバイスとして動作しながら、物理的にはいくつかの装置に分散されていてもよい。また、機能的に別々のデバイスを形成しているデバイスを、１つの物理デバイスに統合することができる。
【００４２】
しかし、さらに、その他の変更、変形、および代替が可能である。従って、本明細書および図面は、限定的な意味をもつものではなく、例示的なものとみなされるべきである。
請求項において、括弧の中の参照符号は、いずれも請求項を限定するものとして解釈されてはならない。“備えている”という言葉は、請求項に列挙されているもの以外の要素またはステップの存在を除外するものではない。“第１の”および“第２の”のような用語は、特に断りのない限り、それらの用語が記述している要素を任意に区別するために用いている。従って、これらの用語は、必ずしも、それら要素の時間的あるいはその他の優先順位を示すためのものではない。単に、ある手段が互いに異なる請求項に記載されているということが、それらの手段の組み合わせを効果的に利用することができないことを示すわけではない。
【図１】
0005574455.tif 000002
【図２】
0005574455.tif 000003
【図３】
0005574455.tif 000004