(57)【要約】ある実施例では、プログラム可能なプロセッサは、Ｎ／Ｍ個の機械語命令に応じて多くのＮ個のデータ・エレメントを探索する。そこでは、プロセッサは、Ｍ個のデータ・エレメントを並列して処理するためにパイプラインを形成する。機械語命令に応じて、制御ユニットは、単一のフェッチ・サイクル中におけるエレメントのアレイからＭ個のデータ・エレメントを探索するようにパイプラインに命令し、同時にそのデータ・エレメントをＭ個の現在の極限値と比較する。そして、その比較に基づいて、現在の極限値へのＭ個のリファレンスと同様に現在の極限値を更新する。
2004510245.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータ・エレメントを探索するためにプロセッサに命令する機械語命令を受け取る段階と、
前記機械語命令を実行する段階とから構成され、
前記機械語命令は、
単一のフェッチ・サイクル中にＭ個のデータ・エレメントを引き出す段階と、
前記Ｍ個のデータ・エレメントを対応する現在の極限値と同時に比較する段階と、
前記比較に基づいて１組のリファレンスを更新する段階と、
から構成されることを特徴とする方法。
【請求項２】
前記Ｍ個のデータ・エレメントを引き出す段階は、前記Ｍ個のデータ・エレメントを収容する単一のデータ量として前記Ｍ個のデータ・エレメントを取り出す段階を含むことを特徴とする請求項１記載の方法。
【請求項３】
前記１組のリファレンスは、データ量のためのアドレスを格納するポインタ・レジスタを含むことを特徴とする請求項２記載の方法。
【請求項４】
Ｍ＝１であることを特徴とする請求項１記載の方法。
【請求項５】
Ｍ＝２であることを特徴とする請求項１記載の方法。
【請求項６】
前記機械語命令を実行する段階は、
Ｍ個のアキュムレータに前記現在の極限値を格納する段階と、
前記比較に基づいて前記アキュミュレータに前記Ｍ個のデータ・エレメントをコピーする段階と、
をさらに含むことを特徴とする請求項１記載の方法。
【請求項７】
前記データ・エレメントを同時に比較する段階は、パイプライン方式のプロセッサの第１実行ユニットで第１データ・エレメントを処理し、パイプライン方式のプロセッサの第２実行ユニットで第２データ・エレメントを処理することを特徴とする請求項５記載の方法。
【請求項８】
前記データ・エレメントを同時に比較する段階は、パイプライン方式のプロセッサの単一の実行ユニット内で第１データ・エレメントおよび第２データ・エレメントを同時に処理することを特徴とする請求項５記載の方法。
【請求項９】
前記データ・エレメントの各々を現在の極限値と同時に比較する段階は、前記データ・エレメントの各々が対応する現在の極限値未満かどうか決める段階を含むことを特徴とする請求項１記載の方法。
【請求項１０】
前記データ・エレメントの各々を現在の極限値と同時に比較する段階は、前記データ・エレメントの各々が対応する現在の極限値より大きいかどうか決める段階を含むことを特徴とする請求項１記載の方法。
【請求項１１】
ある値を求めてＮ個のデータ・エレメントのアレイを探索する方法において、
Ｎ／Ｍ個の機械語命令をプロセッサへ送出する段階であって、前記プロセッサはＭ個のデータ・エレメントを並列に処理するために適応される、段階と、
前記機械語命令の結果を分析し、前記アレイに対する値を識別する段階と、
から構成されることを特徴とする請求項１記載の方法。
【請求項１２】
Ｍ個のデータ・エレメントを単一のフェッチ・サイクル中に引き出す段階と、
前記Ｍ個のデータ・エレメントの各々を対応する現在の極限値と同時に比較する段階と、
前記比較に基づいて前記レファレンスを更新する段階と、
からなる機械語命令の各々を実行する段階をさらに含むことを特徴とする請求項１１記載の方法。
【請求項１３】
単一の取出し動作中にエレメントのアレイから１対のデータ・エレメントを引き出す段階であって、前記１対のデータ・エレメントは偶数のデータ・エレメントおよび奇数のデータ・エレメントを含む、段階と、
前記１対の偶数エレメントおよび前記１対の奇数エレメントを実質的に比較する段階と、
前記アレイの全てのデータ・エレメントが処理されるまで、前記アレイのデータ・エレメントの残余の対を実質的に取り出しかつ比較する段階、
から構成されることを特徴とする方法。
【請求項１４】
前記１対のデータ・エレメントを実質的に比較する段階は、偶数の最小値をエレメント対の偶数エレメントの関数として設定する段階および奇数の最小値をエレメント対の奇数エレメントの関数として設定する段階を含むことを特徴とする請求項１３記載の方法。
【請求項１５】
前記１対のデータ・エレメントを実質的に比較する段階は、前記偶数エレメントのための最小値を格納する第１アキュミュレータおよび前記奇数エレメントのための最小値を格納する第２アキュミュレータを維持する段階を含むことを特徴とする請求項１３記載の方法。
【請求項１６】
偶数データ・エレメントの最小値のためのアドレスを格納する第１ポインタ・レジスタを維持し、奇数データ・エレメントの最小値のためのアドレスを格納する第２ポインタ・レジスタを維持する段階をさらに含むことを特徴とする請求項１３記載の方法。
【請求項１７】
パイプライン中のステージ数を計数するために、データ・エレメントの対すべてを処理した後に、ポインタ・レジスタの少なくとも１つを調整する段階をさらに含むことを特徴とする請求項１６記載の方法。
【請求項１８】
前記方法はＮ／Ｍ個の機械語命令をプログラム可能なプロセッサへ出すことにより起動され、Ｎはアレイ中のエレメント数に等しく、Ｍは、プロセッサが同時に比較することのできるデータ・エレメント数に等しいことを特徴とする請求項１３記載の方法。
【請求項１９】
パラレル中のＭ個のデータ・エレメントを処理するために適応されるパイプラインと、
Ｎ／Ｍ個の機械語命令に応答してＮ個のデータ・エレメントのアレイを探索するように実行パイプラインに命令するために適合した制御ユニットと、
から構成される装置。
【請求項２０】
前記機械語命令に応答して、前記制御ユニットが、単一のフェッチ動作中にエレメントのアレイからＭ個のデータ・エレメントを引き出し、同時に前記データ・エレメントを対応する現在の極限値と比較するために前記パイプラインに命令することを特徴とする請求項１９記載の装置。
【請求項２１】
前記パイプラインは、極限値に対するリファレンスを格納するために適応されるＭ個のレジスタを含むことを特徴とする請求項１９記載の装置。
【請求項２２】
前記レジスタは、ポインタ・レジスタであることを特徴とする請求項２１記載の装置。
【請求項２３】
前記レジスタは、汎用のデータ・レジスタであることを特徴とする請求項２１記載の装置。
【請求項２４】
前記パイプラインは、Ｍ個の現在の極端値を格納するためのＭ個のアキュムレータを含むことを特徴とする請求項１８記載の装置。
【請求項２５】
前記パイプラインは、Ｍ個の現在の極端値を格納するためのＭ個の汎用レジスタを含むことを特徴とする請求項１８記載の装置。
【請求項２６】
ソフトウェア・プログラムのコンパイルのためにその上にコンピュータ実行可能な命令を格納する媒体を含む物品であって、前記コンピュータ実行可能な命令はＮ個のデータ・エレメントのアレイを探索するためにＮ／Ｍ個の機械語命令を生成するように適応され、各機械語命令によって、プログラム可能なプロセッサは、
単一のフェッチ動作中にＮ個のエレメントのアレイからＭ個のデータ・エレメントを引き出し、
前記Ｍ個のデータ・エレメントの各々を対応する現在の極限値と実質的に比較する、
ことを特徴とする物品。
【請求項２７】
各機械語命令によって前記プロセッサが前記比較に基づいて１組のリファレンスを更新するごとを特徴とする請求項２６記載の物品。
【請求項２８】
各機械語命令によって前記プロセッサがパイプライン方式のプロセッサの単一の実行ユニット内の第１データ・エレメントおよび第２データ・エレメントを同時に処理することを特徴とする請求項２６記載の物品。
【請求項２９】
メモリ・デバイスと、
前記メモリ・デバイスに結合されるプロセッサであって、前記プロセッサがＭ個のデータ・エレメントを並列に処理するために形成されたパイプライン、およびＮ／Ｍ個の機械語命令に応答してＮ個のデータ・エレメントのアレイを探索するようにパイプラインに命令するために形成された制御ユニットを含む、プロセッサと、
から構成されることを特徴とするシステム。
【請求項３０】
各機械語命令に応答して、前記制御ユニットが単一のフェッチ動作中にエレメントの前記アレイからＭ個のデータ・エレメントを引き出し、かつ同時に前記データ・エレメントを対応する現在の極限値と比較するように前記パイプラインに命令することを特徴とする請求項２９記載のシステム。
【請求項３１】
前記パイプラインは、極限値に対するリファレンスを格納するために構成されるＭ個のレジスタを含むことを特徴とする請求項２９記載の装置。
【請求項３２】
前記レジスタは、ポインタ・レジスタであることを特徴とする請求項３１記載の装置。
【請求項３３】
前記レジスタは、汎用のデータ・レジスタであることを特徴とする請求項３１記載の装置。
【請求項３４】
前記メモリ・デバイスは、スタティック・ランダム・アクセス・メモリを含むことを特徴とする請求項２９記載のシステム。
【請求項３５】
前記メモリ・デバイスは、フラッシュ（ＦＬＡＳＨ）・メモリを含むことを特徴とする請求項２９記載のシステム。
【発明の詳細な説明】
【０００１】
【従来の技術】
本発明は、コンピュータ用アレイ探索動作に関する。
【０００２】
デジタル信号プロセッサ（ＤＳＰ）のような多くの従来のプログラム可能なプロセッサは、データのアレイを操作するための多数の命令を含む豊富な命令セットをサポートする。これらの動作は、典型的には、計算集約的で、プロセッサ内の乗算−累積ユニット（ＭＡＣ）のような実行ユニットの数に依存して、かなりの演算時間を要求する。
【０００３】
【詳細な説明】
図１は、実行パイプライン４および制御ユニット６を有するプログラム可能なプロセッサ２を図示するブロック図である。以下詳細に説明されるように、プロセッサ２は、アレイ操作動作によって要求される計算時間を削減する。特に、プロセッサ２は、ＳＥＡＲＣＨ命令と称される機械語命令をサポートするが、それはパイプライン方式の処理環境で多くのアレイ数を探索する計算上の時間を削減する。
【０００４】
パイプライン４は、命令を処理するための多くのステージを具備する。各ステージは、他のステージと同時に処理し、各クロック・サイクルで結果をパイプライン４中の次のステージへ渡す。各命令の最終結果は、パイプラインの終端で連続して出現する。
【０００５】
制御装置６は、パイプライン４の多様なステージを通って命令とデータの流れを制御する。例えば、命令の処理中に、制御ユニット６は、命令を取り込んで解読し、対応する動作を行ない、メモリまたはローカル・レジスタにその結果を書き戻すようにパイプライン方式の多様なコンポーネントに命令する。
【０００６】
図２は、本発明に従って構成されたパイプライン４の一例を図示する。パイプライン４は、例えば、５つのステージ、すなわち、命令フェッチ（ＩＦ），デコード（ＤＥＣ），アドレス計算（ＡＣ），実行（ＥＸ）および書き戻し（ライトバック）（ＷＢ）を具備する。命令は、フェッチ・ユニット２１によるＩＦステージ中に、メモリまたは命令キャッシュから取り込まれ、ＤＥＣステージ中にアドレス・レジスタ２２内で解読される。次のクロック・サイクルで、その結果はＡＣステージに渡し、そこで、データ・アドレス生成器２３は、その動作を実行するために必要なすべてのメモリ・アドレスを計算する。
【０００７】
ＥＸステージ中に、実行ユニット２５Ａないし２５Ｍは、例えば、数の加算または乗算のような特定の動作を並行して実行する。実行ユニット２５は、例えば、１つ以上の演算論理ユニット（ＡＬＵ）、浮動小数点ユニット（ＦＰＵ）およびバレル・シフタを含む動作を行なうための特別のハードウェアを含んでもよい。データ・アドレス生成器２３によって生成されたアドレス、データ・メモリ１８から引き出されたデータ、あるいはデータ・レジスタ２４から引き出されたデータのような多種多様のデータが、実行ユニット２５に適用される。最終段階（ＷＢ）において、その結果は、データ・メモリに、またはデータ・レジスタ２４に書き戻される。
【０００８】
プロセッサ２によってサポートされたＳＥＡＲＣＨ命令は、Ｍがパイプライン４の実行ユニット２５によって並列に処理されるデータ・エレメント数である場合、Ｎ／Ｍ探索命令を出すことにより、ソフトウェア・アプリケーションがＮ個のデータ・エレメントのアレイを探索することが可能となる。しかしながら、単一の実行ユニットは、２つまたはそれ以上の動作を並列に実行することができることに注意せよ。例えば、実行ユニットは、２つの１６ビットの数を同時に比較することができる３２ビットのＡＬＵを含めることができる。
【０００９】
一般に、ＳＥＡＲＣＨ命令のシーケンスによって、そのプロセッサは、各セットに対して最大または最小のような「極限値（ｅｘｔｒｅｍｅ ｖａｌｕｅ）」を識別するためにＭセットのエレメントを並列に処理することができる。探索命令の実行中に、プロセッサ２は、Ｍセットの各エレメントの極限値の場所に対するリファレンスを格納する。Ｎ／Ｍ命令の完了に際して、以下詳細に記述されるように、ソフトウェア・アプリケーションは、各セットに対する極限値へのリファレンスを解析し、アレイに対する極限値をすばやく識別する。例えば、その命令によって、ソフトウェア・アプリケーションが最大または最小値の最初の発生または最後の発生のいずれかを速く識別することを可能にする。更に、以下詳細に説明されるように、プロセッサ２は、Ｍ個の実行ユニット２５を介してパイプライン方式のプロセッサにおいてベクトル化にふさわしい方法で動作を実行する。
【００１０】
上述されたように、ソフトウェア・アプリケーションは、プロセッサ２へＮ／Ｍ個のＳＥＡＲＣＨ機械語命令を出すことによりデータのアレイを探索する。図３は、単一のＳＥＡＲＣＨ機械語命令を受け取るときにプロセッサ２のための動作モード２０の一例を図示するフローチャートである。プロセス２０は、エレメントのアレイ内で最小値の最後の発生を識別することに関して記述されるが、しかしながら、プロセス２０は、最小値の最初の発生、最大値の最初の発生または最大値の最後の発生を識別するような他の機能を実行するために容易に修正することができる。
【００１１】
典型的な目的のために、プロセス２０は、Ｍが２に等しいと仮定して記述され、つまり、プロセッサ２は、各セットがＮ／２エレメントを有する２セットのエレメントを同時に処理する。しかしながら、そのプロセスはそのように制限されるものではなく、同時に２セットを越えるエレメントを処理するために容易に拡張可能である。一般に、プロセス２０は、単一のデータ量として対のエレメントを取り込むことにより、かつパイプライン４によってエレメント対を並列に処理することにより、探索プロセスのベクトル化を促進し、それによって、アレイ内の最小値を識別するのに必要なクロック・サイクルの総数を削減する。他のアーキテクチャに適用可能であるが、プロセス２０は、ＥＸステージで複数の実行ユニットを有するパイプライン方式のプロセッサ２によく適している。エレメントの各セットについては、プロセス２０は、対応するセット内における現在の極限値の位置を格納する２つのポインタ・レジスタ、ＰＥｖｅｎおよびＰＯｄｄを保持する。さらに、プロセス２０は、２つのアキュミュレータＡ０およびＡ１を有し、セットに対する現在の極限値を保持する。
しかしながら、ポインタ・レジスタおよびアキュミュレータは、プロセス３０から逸脱せずに、汎用のデータ・レジスタとして容易に実行されてもよい。
【００１２】
図３を参照して、各ＳＥＡＲＣＨ命令に応答して、プロセッサ２は、単一のデータ量として１クロック・サイクルで１対のエレメントを取り込む（２１）。例えば、プロセッサ２は、１つの３２ビットの量として２つの隣接した１６ビットの値を取り込む。次に、プロセッサ２は、その対の偶数のエレメントを偶数のエレメントのために現在の最小値と比較し（２２）、その対の奇数のエレメントを奇数のエレメントのために現在の最小値と比較する（２４）。
【００１３】
偶数のエレメントに対して新しい最小値が検出されると、プロセッサ２は新しい最小値を保持するためにアキュミュレータＡ０を更新し、アレイ内の対応するデータ量にポインタを保持するためにポインタ・レジスタＰＥｖｅｎを更新する（２３）。同様に、奇数のエレメントに対して新しい最小値が検出されたとき、プロセッサ２はアキュミュレータＡ１およびポインタ・レジスタＰＯｄｄを更新する（２５）。この実例において、そのプロセスはこのように制限されるものではないが、ポインタ・レジスタＰＥｖｅｎおよびＰＯｄｄは、それぞれ、個々のエレメントではなくデータ量を指す。アレイ内のエレメントがすべて処理されるまで、プロセッサ２はこのプロセスを繰り返す（２６）。プロセッサ２はパイプライン方式なので、アレイが処理されるまで、エレメント対が取り込まれる。
【００１４】
下記は機械語命令を起動するための典型的なシンタックスを示す。
【００１５】
2004510245.tif 000003
新しく取り込まれたデータ・エレメントの各対を格納するために、データ・レジスタＲＤａｔａは、ＲＤａｔａの最下位ワードが奇数のエレメントを保持し、かつＲＤａｔａの最上位ワードが偶数のエレメントを保持して、スクラッチ・レジスタとして使用される。２つのアキュミュレータ、Ａ０およびＡ１は、その結果の実際の値を格納するために暗黙的に使用される。ＳＥＡＲＣＨ命令が出され、アレイ内のＮ／２データ数量に対して繰り返すべきポインタとして使用されるとき、追加レジスタ、Ｐｆｅｔｃｈ＿ａｄｄｒが追加される。上記の実例で「未満または等しい」（ＬＥ）のように定義された条件は、どの比較が実行されるか、また、アキュミュレータＡ０およびＡ１と同様にポインタ・レジスタＰＥｖｅｎおよびＰＯｄｄがいつ更新されるかを制御する。「ＬＥ」は、例えば、プロセッサ２が最小値の最後の発生を識別することを指示する。
【００１６】
代表的なアプリケーションでは、プログラマは、多くの場合ループ構成内から、Ｎ／Ｍ探索命令を出すソフトウェア・アプリケーションまたはサブルーチンを開発する。プログラマは、アセンブリ言語または高級レベルのソフトウェア言語でソフトウェア・アプリケーションを書く。コンパイラは、高級レベルのソフトウェア・アプリケーションを処理するために一般的に呼び出され、データのアレイの探索のためのＳＥＡＲＣＨ機械語命令を含むプロセッサ２用の適切な機械語命令を生成する。
【００１７】
図４は、上述した機械語命令の一例を起動するための実例としてのソフトウェア・ルーチン３０のフローチャートである。最初に、ソフトウェア・ルーチン３０は、Ａ０およびＡ１を初期化し、ＰＥｖｅｎおよびＰＯｄｄをアレイ内の第１のデータ量へ仕向けることを含み、レジスタを初期化する（３１）。ある実施例では、ソフトウェア・ルーチン３０は、ループ・カウント・レジスタを生起すべきＳＥＡＲＣＨ命令の数（Ｎ／Ｍ）に初期化する。次に、ルーチン３０は、ＳＥＡＲＣＨ機械語命令をＮ／Ｍ回送出する。これは、多くの方法、たとえば、プロセッサ２によってサポートされたハードウェア・ループ構成を起動することによって達成され得る。しかしながら、しばしば、コンパイラは、同一のＳＥＡＲＣＨ命令のシーケンスへソフトウェア・ループを展開してもよい（３２）。
【００１８】
Ｎ／Ｍ個の探索命令を出した後に、Ａ０とＡ１はそれぞれ最小の偶数値の最終発生および最小の奇数値の最終発生を保持する。更に、ＰＥｖｅｎとＰＯｄｄは、最小の偶数値の最終発生および最小の奇数値の最終発生を保持する２つのデータ量の場所を格納する。
【００１９】
次に、全アレイに対して最小値の最終発生を識別するために、ルーチン３０は、まずによってＰＯｄｄを単一のエレメントだけ増加させ、その結果ＰＯｄｄは最小の奇数のエレメントを直接示す（３３）。ルーチン３０は、アキュミュレータが同じ値を含むかどうか、つまり奇数のエレメントの最小が偶数のエレメントの最小に等しいかどうかを決めるためにアキュミュレータＡ０およびＡ１を比較する（３４）。もしそうならば、ルーチン３０は、ＰＯｄｄがＰＥｖｅｎ未満であるかどうか決めるためにポインタを比較する。したがって、ＰＯｄｄおよびＰＥｖｅｎは最小偶数値がアレイ中に以前生じたかである（３５）。その比較に基づいて、ルーチンは、ＰＯｄｄをＰＥｖｅｎにコピーするべきかどうか決める（３７）。
【００２０】
アキュミュレータＡ０およびＡ１が同じでないとき、ルーチンはどれが最小値を保持するかどうかを決めるために、Ａ０をＡ１と比較する（３６）。そのときＡ１がＡ０未満であるならば、ルーチン３０はＰＥｖｅｎをＰＯｄｄに等しく設定し、それによってそのポインタをＰＯｄｄからＰＥｖｅｎに最小値へコピーする（３７）。
【００２１】
この時点で、ＰＥｖｅｎは、全アレイに対し最小値の最終発生を指す。次に、ルーチン３０は、プロセッサ２のパイプライン方式の構成に導びかれたエラーに対する補正を行うためにＰＥｖｅｎを調整する（３８）。例えば、上述した比較は、ポインタ・レジスタＰｆｅｔｃｈ＿ａｄｄｒの増加がＡＣステージ中に発生する間、パイプライン４のＥＸステージ中で典型的に実行され、それによって、ＰＯｄｄとＰＥｖｅｎが既知数によって不正確になる。ＰＥｖｅｎを調整した後に、ルーチン３０は、ポインタとして、アレイ内の最小値の最終発生にＰＥｖｅｎを返す（３９）。
【００２２】
図５は、プロセッサ２がＭ個の実行ユニットを含み、プロセッサ２がアレイのＭ個のエレメントを並列に処理することができる場合に一般化されるように、単一のＳＥＡＲＣＨ命令の動作を図示する。ＳＥＡＲＣＨ命令によって、プロセッサ２は単一のフェッチ・サイクル中にＭ個のエレメントを取り込む（５１）。更に、この例では、プロセッサ２は、Ｍセットのエレメントの各々に対して対応する極限値のアドレス（場所）を格納するためにＭ個のポインタ・レジスタを維持する。Ｍ個のエレメントを取り込んだ後に、Ｍ個のアキュムレータに格納されるとき、プロセッサ２は同時にＭ個のエレメントをそれぞれのエレメント・セットに対する現在の極限値と比較する（５２）。その比較に基づいて、プロセッサ２は、Ｍ個のアキュムレータおよびＭ個のポインタ・レジスタを更新する（５３）。
【００２３】
図６は、ソフトウェア・アプリケーションがＮ／Ｍ個のＳＥＡＲＣＨ命令を出し、命令の完了に際して、全アレイに対する極限値を決定する一般的なケースを示す。最初に、ソフトウェア・アプリケーションは、ループ・カウンタ、Ｍ個のエレメント・セットに対する現在の極限値を格納するために使用されるＭ個のアキュムレータ、および極限値の場所を格納するために使用されるＭ個のポインタを初期化する（６１）。次に、ソフトウェア・アプリケーションは、Ｎ／Ｍ個のＳＥＡＲＣＨ命令を出す（６２）。命令の完了の後、ソフトウェア・アプリケーションは、それぞれの極限値を正確に参照するために、極限値を保持するデータ数量の代わりに、Ｍ個のポインタ・レジスタを調整する（６３）。ポインタ・レジスタを調整した後に、ソフトウェア・アプリケーションは、Ｍ個のエレメント・セットに対するＭ個の極限値を比較し、全アレイに対する極限値、つまり最大値、最小値を識別する（６４）。その後、ソフトウェア・アプリケーションは、１を超えるエレメント・セットがアレイの極限値に等しい極限値を有しているかどうかを決定するためにポインタ・レジスタを使用し、もしそうであるなら、所望の探索機能に依存して、どの極限値が最初に、または最後に生じたかを決定する（６５）。
【００２４】
本発明の多様な実施例が記述された。例えば、単一の機械語命令が説明され、それはパイプライン方式のプロセッサ内で探索プロセスのベクトル化を促進する方法でデータのアレイを探索する。本プロセッサは、一般目的の計算機システム、デジタル処理システム、ラップトップ・コンピュータ、個人用デジタル情報処理端末（ＰＤＡ）および携帯電話を含む多種多様のシステムで実行され得る。例えば、携帯電話は、電話機の３６０度の周囲で利用可能なサービスのための信号強度を表わす多くの値をしばしば保持する。この意味で、上記議論したプロセスは、利用可能なサービスを調べ、かつ速くその最良のサービスを選択するために携帯電話の初期化で容易に使用することができる。このようなシステムでは、プロセッサは、オペレーティング・システムおよび他のソフトウェア・アプリケーションを格納するフラッシュ（ＦＬＡＳＨ）メモリ・デバイスまたはスタティックＳＲＡＭ（ＳＲＡＭ）のようなメモリ・デバイスに結合される。上記および他の実施例は、添付の請求項の範囲内にある。
【図面の簡単な説明】
【図１】本発明によるパイプライン方式のプログラム可能なプロセッサの例を図示するブロック図である。
【図２】プログラム可能なプロセッサのための実行パイプラインの一例を図示するブロック図である。
【図３】本発明によるアレイ操作の機械語命令を実行するためのフローチャートである。
【図４】機械語命令を起動するためのルーチン例のフローチャートである。
【図５】探索命令を示す。
【図６】Ｎ／Ｍ探索命令を示す。
【図１】
2004510245.tif 000004
【図２】
2004510245.tif 000005
【図３】
2004510245.tif 000006
【図４】
2004510245.tif 000007
【図５】
2004510245.tif 000008
【図６】
2004510245.tif 000009
【国際公開パンフレット】
2004510245.tif 000010
2004510245.tif 000011
2004510245.tif 000012
2004510245.tif 000013
2004510245.tif 000014
2004510245.tif 000015
2004510245.tif 000016
2004510245.tif 000017
2004510245.tif 000018
2004510245.tif 000019
2004510245.tif 000020
2004510245.tif 000021
2004510245.tif 000022
2004510245.tif 000023
2004510245.tif 000024
2004510245.tif 000025
2004510245.tif 000026
2004510245.tif 000027
2004510245.tif 000028
2004510245.tif 000029
2004510245.tif 000030
2004510245.tif 000031
2004510245.tif 000032
2004510245.tif 000033
2004510245.tif 000034
2004510245.tif 000035
【国際公開パンフレット（コレクトバージョン）】
2004510245.tif 000036
2004510245.tif 000037
【国際調査報告】
2004510245.tif 000038
2004510245.tif 000039
2004510245.tif 000040