(57)【要約】複数のバイナリ値の最小値／最大値を判定するため、複数のバイナリ値において全ての後続ビット値が同じになるビット位置を判定する。複数のバイナリ値から、先行ステップで判定したビット位置と、後続位置がある場合は全後続位置のビット値が、所定値を有するバイナリ値を選択する。その後、１つのバイナリ値が残るまで先行ステップを繰り返し、これを最小値または最大値として供給する。【選択図】図２
2010532065.tif 000002
【特許請求の範囲】
【請求項１】
複数のバイナリ値の最小値／最大値を判定する方法であって、前記方法は、
（ａ）複数のバイナリ値において全ての後続ビット値が同じであるビット位置を判定すること、
（ｂ）複数のバイナリ値から（ａ）で判定した前記ビット位置と、後続ビット位置がある場合は全後続ビット位置のビット値が、所定値を有するバイナリ値を選択すること、
（ｃ）１つの選択バイナリ値か複数の一致バイナリ値が残るまで、ステップ（ｂ）で選択した前記バイナリ値に基づきステップ（ａ）を繰り返す、ステップ（ａ）及び（ｂ）を繰り返すこと、及び
（ｄ）前記残りのバイナリ値を前記最小値／最大値として供給することを有すること、
を特徴とする方法。
【請求項２】
前記所定値は最大値を判定する場合に「１」であって、前記所定値は最小値を判定する場合に「０」であること、を特徴とする請求項１に記載の方法。
【請求項３】
前記複数のバイナリ値は複数のメモリ（Ｍ１−Ｍｎ）によって保持され、ステップ（ａ）は最初に、
（ａ．１）全てのメモリ（Ｍ１−Ｍｎ）から全てのバイナリ値を共同で読み取り、前記共同で読み取ったバイナリ値のビット単位ＯＲの組み合わせとビット単位ＡＮＤの組み合わせとを生成すること、及び
（ａ．２）前記共同で読み取ったバイナリ値の前記ビット単位ＯＲの組み合わせと前記ビット単位ＡＮＤの組み合わせとに基づき、前記複数のバイナリ値において全ての後続ビット値が同じになる前記ビット位置を判定すること、を有すること、
を特徴とする請求項１又は２に記載の方法。
【請求項４】
次のビット単位ＯＲの組み合わせと次のビット単位ＡＮＤの組み合わせとを生成するため、ステップ（ｂ）は、
ステップ（ａ）で判定する前記ビット位置の当初のバイナリ値の前記ビット値が前記所定値と一致する場合に、前記当初のバイナリ値を選択すること、及び
もしくは修正値を選択すること、を有し、
ステップ（ａ）を繰り返すことは、前記次のビット単位ＯＲの組み合わせと前記次のビット単位ＡＮＤの組み合わせとに基づくこと、
を特徴とする請求項３に記載の方法。
【請求項５】
前記次のビット単位ＯＲの組み合わせの場合、前記修正値は、前記最小値／最大値の現時点までの既知ビットと、前記既存のビット単位ＡＮＤの組み合わせの前記残りのビットとによって形成され、
前記次のビット単位ＡＮＤの組み合わせの場合、前記修正値は、前記最小値／最大値の現時点までの既知ビットと、前記既存のビット単位ＯＲの組み合わせの前記残りのビットとによって形成されること、
を特徴とする請求項４に記載の方法。
【請求項６】
ステップ（ａ）は、
前記ビット単位ＯＲの組み合わせと前記ビット単位ＡＮＤの組み合わせとを前記メモリ（Ｍ１−Ｍｎ）へ伝達することを有し、
ステップ（ｂ）は、
前記最小値／最大値の前記現時点までの既知ビットを前記メモリ（Ｍ１−Ｍｎ）へ伝達すること、及び
前記次のビット単位ＯＲの組み合わせの場合、各前記メモリ（Ｍ１−Ｍｎ）に対し、
ステップ（ａ）で判定した前記ビット位置と、後続ビット位置がある場合は全後続ビット位置の前記ビット値が、前記最小値／最大値の前記現時点までの既知ビット値と一致する場合は、前記当初の値を返すこと、
もしくは、前記最小値／最大値の前記現時点までの既知ビット値と、前記既存のビット単位ＡＮＤの組み合わせの前記残りのビット位置の前記ビット値とを返すこと、を命令すること、及び
前記次のビット単位ＡＮＤの組み合わせの場合に、各メモリ（Ｍ１−Ｍｎ）に対し、
ステップ（ａ）で判定した前記ビット位置と、後続ビット位置がある場合は全後続ビット位置の前記ビット値が、前記最小値／最大値の前記現時点までの既知ビット値と一致する場合は、前記当初の値を返すこと、
もしくは、前記最小値／最大値の前記現時点までの既知ビット値と、前記既存のビット単位ＯＲの組み合わせの前記残りのビット位置の前記ビット値とを返すことを命令すること、を有すること、
を特徴とする請求項５に記載の方法。
【請求項７】
前記メモリ（Ｍ１−Ｍｎ）はプロセッサメモリである、または各プロセッサ（Ｐ１−Ｐｎ）と連携するメモリであること、を特徴とする請求項３から６の一項に記載の方法。
【請求項８】
プロセッサ（１０２）による実行時に、請求項１から６の一項に記載の方法を実行するためのコンピュータで読み取り可能なプログラムコードを備えること、を特徴とするコンピュータ記憶媒体。
【請求項９】
プロセッサ（１０２）による実行時に、請求項１から６の一項に記載の方法を実行するためのコンピュータで読み取り可能なプログラムコードを備えること、を特徴とするコンピュータプログラムプロダクト。
【請求項１０】
プロセッサ（１０２）による実行時に、請求項１から６の一項に記載の方法を実行するためのプログラムコードを備えること、を特徴とするコンピュータプログラム。
【請求項１１】
複数のバイナリ値の最小値／最大値を判定するシステムであって、前記システムは、
中央処理装置（１０２）と、
前記中央処理装置（１０２）へ結合され、複数の入力値のビット単位ＯＲの組み合わせとビット単位ＡＮＤの組み合わせとを前記中央処理装置（１０２）へ出力するように構成されたロジック（１０８）と、
各プロセッサ（Ｐ１−Ｐｎ）と連携し、前記ロジック（１０８）へ各々結合され、前記複数のバイナリ値のいずれか１つを各々保持するように構成された複数のメモリ（Ｍ１−Ｍｎ）と、を備え、
前記中央処理装置（１０２）は請求項１から６の一項に記載の方法に従って作動するように構成されること、
を特徴とするシステム。
【請求項１２】
前記ロジック（１０８）は前記中央処理装置（１０２）に実装されること、を特徴とする請求項１１に記載のシステム。
【請求項１３】
電子デバイス（１０４）をテストするテスタ（１００）であって、前記バイナリ値はテスト結果を表すこと、を特徴とする請求項１１または１２に記載のシステム。
【請求項１４】
複数のバイナリ値の最小値／最大値を判定する装置であって、前記装置は請求項１から６の一項に記載の方法に従って作動するように構成されたプロセッサ（１０２）を備えること、を特徴とする装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のバイナリ値の最小値／最大値を判定する方法及び装置に関し、より詳細には、中央処理装置から離れた別の場所に記憶された複数のバイナリ値から最小値／最大値を判定する方法及び装置に関する。
【背景技術】
【０００２】
メモリ素子と集積回路（ＩＣ）は正常作動を確認するためにテストすることが必要であり、特にＩＣ又はメモリ製造の開発過程ではテストが必要である。テスト中には、テスト対象デバイス（ＤＵＴ）を様々な刺激信号に晒し、デバイスからの応答を測定し、処理し、通常は予期応答に比較する。かかるテストは、デバイス固有のテストプログラムに従って、それらのタスクを通常実行する自動テスト装置（ＡＴＥ）によって行われる。
【０００３】
Ｖｅｒｉｇｙ  Ｖ９３０００シリーズやＶｅｒｉｇｙ  Ｖ５０００シリーズがそのような自動テスト装置の例として挙げられるが、前者はシステム・オン・チップと、システム・オン・パッケージと、高速メモリデバイスをテストするプラットフォームである。後者のシリーズは、ウェハソートと最終テストでフラッシュメモリやマルチチップパッケージを含むメモリデバイスをテストするためのものである。
【０００４】
かかる自動テスト装置又はテスタでは、複数のテスト結果を得て中央処理領域から離れた様々な場所に記憶することがある。例えば、複数の処理デバイス又はプロセッサから供給される様々な刺激信号に基づいて結果を得るが、この処理デバイス又はプロセッサは刺激信号を発生するばかりでなく、１つの、又は複数のテスト対象デバイスから応答信号を受信する。通常、テストの実施に際しては、全てのチャネルで並行してテストルーチンを実行する。実行するテストルーチンやテストルーチンで使用するデータはチャネルによって異なることがある。ただし、高速テスト実行にとっては一斉送信と共同読み取りを可能な限り利用するのが望ましく、その場合は、異なるチャネルの関係テストデータが各チャネルの同じメモリアドレスに記憶される。複数のチャネルにわたって一定サイズのメモリ領域を割り当てる作業はテスタメモリ管理機能によって処理される。複雑なテストアプリケーションでは、場合によっては異なるチャネルの関係データを同じアドレスに揃えるという制約があるため、テスタメモリには未使用の間隙が生じる。テストプロセッサに内蔵されたプロセッサの計算能力向上にともない、それぞれのプロセッサが自身のメモリを独自に管理し、中央処理装置とテストプロセッサとの通信に際してはメモリ領域の記号アドレスのみを使用することがある。これにより、異なるチャネルの関係データを同じアドレスに揃えるという制約は回避できる。ただしこの場合は、テストプロセッサに記憶された値の最小値又は最大値を中央処理装置で把握する必要があり、例えば、全てのチャネルにわたって割り当てることができるメモリはいくら残っているかという疑問、すなわちそれぞれのチャネルで最も大きい連続空きメモリブロックの最小サイズはどの位かという疑問が生じる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、様々な場所に記憶された複数のバイナリ値から最小値又は最大値を処理と時間の両面で効率的に判定する改良された方法を提供することにある。
【課題を解決するための手段】
【０００６】
かかる目的は、請求項１に記載の方法と、請求項８に記載のコンピュータ記憶媒体と、請求項９に記載のコンピュータプログラムプロダクトと、請求項１０に記載のコンピュータプログラムと、請求項１１に記載のシステムと、請求項１４に記載の装置とによって解決される。本発明は複数のバイナリ値の最小値／最大値を判定する方法を提供するものであり、該方法は、（ａ）複数のバイナリ値において全ての後続ビット値が同じであるビット位置を判定すること、（ｂ）複数のバイナリ値から（ａ）で判定した前記ビット位置と、後続ビット位置がある場合は全後続ビット位置のビット値が、所定値を有するバイナリ値を選択すること、（ｃ）１つの選択バイナリ値か複数の一致バイナリ値が残るまで、ステップ（ｂ）で選択した前記バイナリ値に基づきステップ（ａ）を繰り返す、ステップ（ａ）及び（ｂ）を繰り返すこと、及び（ｄ）前記残りのバイナリ値を前記最小値／最大値として供給すること、を有する。
【図面の簡単な説明】
【０００７】
【図１】従来型テスタの概略図である。
【図２】本発明の一実施形態に係るテスタの概略図である。
【図３】複数のバイナリ値の最小値／最大値を判定する一実施形態を示すフロー図である。
【発明を実施するための形態】
【０００８】
本発明の実施形態は、複数のバイナリ値の最小値／最大値を判定する装置を提供し、該装置は、本発明の実施形態の方法に従って作動するように構成されたプロセッサを備える。
【０００９】
本発明のさらなる実施形態は、複数のバイナリ値の最小値／最大値を判定するシステムを提供し、同システムは中央処理装置と、中央処理装置へ結合され、複数の入力値のビット単位ＯＲの組み合わせとビット単位ＡＮＤの組み合わせとを中央処理装置へ出力するように構成されたロジックと、各プロセッサと連携し、前記ロジックへ各々結合され、複数のバイナリ値のいずれか１つを各々保持するよう結合された複数のメモリと、を備え、中央処理装置は、本発明の実施形態の方法に従って作動するように構成される。
【００１０】
本発明の実施形態を、添付の図面を参照して以下に説明する。
【００１１】
図１はテスタ１００の概略図であって、テスタ１００は中央処理装置１０２と複数の単独プロセッサＰ１乃至Ｐｎとを備え、単独プロセッサＰ１乃至Ｐｎを中央処理装置１０２に接続する図１の矢印に示すとおり、複数の単独プロセッサＰ１乃至Ｐｎは中央処理装置１０２へ結合する。テスタ１００は１０４で示す１つのテスト対象デバイスへ、又は複数のテスト対象デバイスへ、接続もしくは結合できる。さらにテスタ１００は出力信号を供給する出力１０６を備え、この出力信号は、例えばＤＵＴ１０４のテスト結果を伝達するものである。ＤＵＴ１０４へ刺激信号を供給し、ＤＵＴから応答信号を受信するため、複数のプロセッサＰ１乃至Ｐｎを設けることができる。図１に示すとおり、それぞれのプロセッサＰ１乃至Ｐｎは、応答信号や、各プロセッサによってＤＵＴ１０４に適用されたテストの結果を伝える信号をバイナリ形式で表す１つ以上の値を保持できる。
【００１２】
図１に示す実施形態において、単独プロセッサＰ１は値４５をバイナリ形式（１０１１０１）で記憶し、単独プロセッサＰ２は値５７をバイナリ形式（１１１００１）で記憶し、単独プロセッサＰ３は値１３をバイナリ形式（００１１０１）で記憶し、単独プロセッサＰ４は値４４をバイナリ形式（１０１１００）で記憶し、単独プロセッサＰ５は値２９をバイナリ形式（０１１１０１）で記憶し、単独プロセッサＰｎは値４５をバイナリ形式（１０１１０１）で記憶している。
【００１３】
上記の実施形態では、テスタ１００は整数値をそれぞれ保持するフロントエンドプロセッサＰ１乃至Ｐｎを備えている。この場合、中央処理装置１０２はそれらの値の最小値か最大値を可能な限り速やかに認識する必要がある。図１に示す従来型テスタで全ての値から最小値か最大値を判定する従来の方法では、中央処理装置１０２がプロセッサＰ１乃至Ｐｎから値を順次１つずつ読み取るが、そのためにはｎ回の読み取り動作が必要になる。
【００１４】
中央処理装置１０２は一般的に単純な処理ステップや計算をかなり高速に処理できるが、通常、中央処理装置１０２と単独プロセッサＰ１乃至Ｐｎとの通信は前述の計算に比べて遅いため、全ての値から最小値又は最大値を速やかに得ることはできない。つまり、中央処理装置で単純な処理ステップや計算を行う場合の合計所要時間は所要通信ステップ数に左右される。
【００１５】
したがって、様々な場所に記憶された複数のバイナリ値から最小値又は最大値を処理と時間の両面で効率的に判定する改良された方法を提供する必要がある。１つ以上の最小値／最大値の高速発見をテストシステムに役立てることができ、より具体的には、かかるテストシステムで分散プロセッサのメモリ管理に役立てることができる。かかるテストシステムの一例では複数のチャネル（ＤＵＴの１ピンに対応する測定単位）を使用し、各チャネルは独自のテストプロセッサと関連メモリとを具備する。図２は、本発明の一実施形態に係るテスタの概略図である。図２において、図１との関係で既に述べた要素には同じ参照符号を付してある。図２から分かるように、図１との関係で説明したテスタに加え、テスタ１００は単独プロセッサＰ１乃至Ｐｎと中央処理装置１０２との間に結合されたロジック１０８を備えている。ロジック１０８は単独の要素として図示されているが、別の実施形態では、それらの２要素を囲む破線で示すように、中央処理装置１０２の一部としてロジック１０８を実装することもできる。図面に示すように、ロジック１０８はビット単位の「ＡＮＤ」かビット単位の「ＯＲ」を使ってプロセッサＰ１乃至Ｐｎから読み取られた値を組み合わせるように構成される。ロジック１０８の２つの出力は「ビット単位ＯＲ」出力か「ビット単位ＡＮＤ」出力のいずれかであり、中央処理装置１０２に入力される。図２に示す実施形態では、単独プロセッサＰ１乃至Ｐｎが図１との関係で説明した値と同じ値を保持すると仮定し、さらに、表示された値を保持するメモリ素子Ｍ１乃至Ｍｎが図示されている。メモリＭ１乃至Ｍｎは、例えばプロセッサレジスタとしてプロセッサＰ１乃至Ｐｎの一部を形成することもあれば、それぞれのプロセッサに結合されることもある。図２のテスタは、プロセッサから読み取った値をビット単位「ＡＮＤ」かビット単位「ＯＲ」を使って組み合わせながら全てのプロセッサＰ１乃至Ｐｎから中央処理装置１０２にかけて１つのステップで値を読み取る働きをする。かかる共同読み取り動作を全てのプロセッサで使用すれば、ある１つのプロセッサから１つの値を読み取るのと同程度に速くなる。同様に、中央処理装置から他の全てのプロセッサへ、あるいは１つの単独プロセッサへ、データを１つのステップで一斉送信できる。
【００１６】
以下では図３を参照し、共同読み取り機能を使って分散プロセッサＰ１乃至Ｐｎに記憶された値から最小値／最大値を速やかに判定する例をさらに説明する。
【００１７】
図３は、複数のプロセッサＰ１乃至Ｐｎに対応する１つ以上の最小値／最大値を判定する一実施形態のフロー図を示す。当初の値はそれぞれのプロセッサに記憶されるが、別の場所に記憶していずれか１つのプロセッサに対応付けることもできる。バイナリ値はいくつかのビットからなり、このビット数はｋで設定し、バイナリ表現のビットは０から始まって右（最下位ビット）から左（最上位ビット）に数える。つまりビット（ｋ−１）．．．０で数を表す。ｉは、左（最上位ビット）から見て最小値のビットが既に判明している先頭のビット位置である。図３との関係で説明する例ではｋ＝８であり、最初はｉ＝ｋである。
【００１８】
ステップＳ１００では以下の変数を初期化する：
ｋ＝８（＝８ビット）；
ｎ＝９（＝９個のプロセッサ）；
Ｒ＝最小値／最大値の判定に際して、現時点までに既知の結果ビットを記憶する変数であって、未知のビットは０に設定される；
ｊ＝ビット単位ＡＮＤとビット単位ＯＲとが相違する最高ビット位置（最下位ビットを０とカウントする）；
ＶＡＮＤｎ＝ビット単位ＡＮＤの実値；
ＶＯＲｎ＝ビット単位ＯＲの実値；
Ｐｎ＝プロセッサｎに記憶される／プロセッサｎに対応付けられる値
【００１９】
ステップＳ１００での初期化の後には、プロセッサＰ１乃至Ｐｎから供給されるバイナリ表現による値のビット（ｋ−１）．．．（ｊ＋１）が等しくなる、ｉより小さいｊの値を判定する。この場合、最小値／最大値のビット（ｋ−１）．．．（ｊ＋１）は必ず同じになり、最小値のビットｊは必ず「０」になり、最大値のビットｊは必ず「１」になる。位置ｊを判定するため、プロセッサ１０２はバイナリ表現によるプロセッサの数値を読み取る２回の共同読み取り動作からビット単位「ＡＮＤ」とビット単位「ＯＲ」を取る（ステップＳ１０２参照）。２通りのビットパターンが等しくなるビット位置では、プロセッサから供給される値は全て等しくなる。２通りのビットパターンが相違するビット位置では、少なくとも１つのプロセッサが０ビットを供給し、少なくとも１つのプロセッサは１ビットを供給したことになる。つまりｊは、ビット単位ＡＮＤとビット単位ＯＲが相違する最上位ビット位置であり、これは中央処理装置で個々のビットを調べるだけで計算できる。このステップの後にビット（ｋ−１）．．．ｊは既知であり、ｉはｊに設定できる（ステップＳ１０４参照）。
【００２０】
ステップＳ１０６においてＲで現時点までに既知のビット（ｋ−１）乃至０を判定するには、Ｒのビットｋ−１乃至ｊ＋１をビット単位ＡＮＤ動作とビット単位ＯＲ動作の結果で一致するビットに設定し、Ｒのビットｊ（ある場合）を、最小値検索の場合には０に設定し、最大値検索の場合には１に設定し、Ｒの残りのビットｊ−１乃至０（ある場合）を０に設定する。
【００２１】
ステップＳ１０８では、ｊが０以下か否かを判定する。０以下であればステップＳ１１０でプロセスが終了する。
【００２２】
もしくはプロセスはステップＳ１１２へ進み、ここでビット（ｋ−１）．．．ｉが最も小さい最大値の既知ビットに等しくなる結果に検索の対象を絞る。中央処理装置１０２はこのステップの準備として、最小値／最大値の現時点までの既知ビットを全プロセッサＰ１乃至Ｐｎに伝達するほか、全ての値を対象とする前回の反復におけるビット単位「ＡＮＤ」結果とビット単位「ＯＲ」結果（１回目の反復の場合はプロセッサに記憶された全ての当初値を対象とするビット単位「ＡＮＤ」結果とビット単位「ＯＲ」結果）を伝達する。中央処理装置１０２はさらに、次のステップで以下の値を供給することを全プロセッサＰ１乃至Ｐｎに命じる（ステップＳ１１２乃至Ｓ１１８）：
−各プロセッサの当初値Ｐｎのｊまでのビット（ｋ−１）が最小値／最大値の既知ビットに等しい場合は、当初値Ｐｎが供給され（ステップ１１４及び１１６参照）、及び
−他の全プロセッサで当初バイナリ値が供給されない場合は、ロジック１０８に修正値を供給するようプロセッサに命じる（ステップＳ１１４及びＳ１１８参照）。
【００２３】
より具体的には、ステップＳ１１８では、「ＡＮＤ」動作による共同読み取りが実行されるか、それとも「ＯＲ」動作による共同読み取りが実行されるかに応じて修正値が決まる。「「ＡＮＤ」による共同読み取り」動作の場合は、ビット（ｋ−１）．．．ｉで最小値の現時点までの既知ビットを返すよう各プロセッサに命じる。加えて、蓄積値の先行「ＯＲ」のビットも供給される。同様に、「「ＯＲ」による共同読み取り」動作の場合はプロセッサにそれぞれの修正値を返すよう命じる。この場合もビット（ｋ−１）．．．で最小値の現時点までの既知ビットが返され、残りのビットは先行ビットの「ＡＮＤ」のそれになる。上記の修正値は、限られた検索空間のプロセッサ値に対するビット単位「ＡＮＤ」やビット単位「ＯＲ」に影響しない。
【００２４】
上記のプロセスは、ｊ≦０となるまで当初／修正値に基づき繰り返される（ステップＳ１０８及びＳ１１０参照）。
【００２５】
最小値／最大値を判定する上記の方法を示す例を以下に説明する。
【００２６】
実施例１
９個のプロセッサＰ１乃至Ｐ９に記憶された値から最小値を判定する。
当初の値：
Ｐ１＝１１２  →  ０１１１００００
Ｐ２＝１１４  →  ０１１１００１０
Ｐ３＝１１１  →  ０１１０１１１１
Ｐ４＝９９    →  ０１１０００１１
Ｐ５＝１０１  →  ０１１００１０１
Ｐ６＝１１５  →  ０１１１００１１
Ｐ７＝１１５  →  ０１１１００１１
Ｐ８＝１１１  →  ０１１０１１１１
Ｐ９＝１１４  →  ０１１１００１０
【００２７】
反復＃１
現時点までに既知の結果ビット数：０
現時点までに既知のビットのビットマスク：００００００００
結果ビット：００００００００
【００２８】
現段階の反復で各プロセッサから中央処理装置に供給される値：
ＡＮＤの場合：（Ｐ１からＰ９） ＯＲの場合：（Ｐ１からＰ９）
０１１１００００  当初                    ０１１１００００  当初
０１１１００１０  当初                    ０１１１００１０  当初
０１１０１１１１  当初                    ０１１０１１１１  当初
０１１０１１１１  当初                    ０１１０１１１１  当初
０１１００１０１  当初                    ０１１００１０１  当初
０１１１００１１  当初                    ０１１１００１１  当初
０１１１００１１  当初                    ０１１１００１１  当初
０１１０１１１１  当初                    ０１１０１１１１  当初
０１１１００１０  当初                    ０１１１００１０  当初
０１１０００００（ビット単位ＡＮＤ）      ０１１１１１１１（ビット単位ＯＲ）
【００２９】
ビット単位ＡＮＤとビット単位ＯＲとが相違する最高ビット位置（最下位ビットを０とカウント）：４（ｊ＝４）
＝＞現在、４つの最上位結果ビットが既知。
【００３０】
反復＃２
現時点までに既知の結果ビット数：４
現時点までに既知のビットのビットマスク：１１１１００００
結果ビット：０１１０００００
現時点までに既知の結果ビットの生成：
−ビットｋ−１乃至ｊ＋１（ビット７乃至５）＝反復＃１におけるビット単位ＡＮＤとビット単位ＯＲの一致ビット−この例では０１１。
−最小値検索のためビットｊ（ビット４）を０に設定。
−残りのビットｊ−１乃至０（ビット３乃至０）は０を保つ。
ＡＮＤの場合：（Ｐ１からＰ９）
（０１１０１１１１）  修正
（０１１０１１１１）  修正
０１１０１１１１    当初
０１１０００１１    当初
０１１００１０１    当初
（０１１０１１１１）  修正
（０１１０１１１１）  修正
０１１０１１１１    当初
（０１１０１１１１）  修正
ビット単位ＡＮＤ：０１１００００１
【００３１】
当初：現時点までに既知の結果ビット、すなわち０１１０と、対応する当初値のビットとが一致するため、当初値は維持される。
修正：現時点までに既知の結果ビット、すなわち０１１０と、対応する当初値のビットとが一致しないため、当初値は修正される。当初値で一致しないビットは、現時点までに既知の結果ビットに、すなわち０１１０に置き換えられ、当初値の残りのビットは、反復＃１におけるビット単位ＯＲの結果から対応するビットに、すなわち１１１１に置き換えられる。
ＯＲの場合：（Ｐ１からＰ９）
（０１１０００００）  修正
（０１１０００００）  修正
０１１０１１１１    当初
０１１０００１１    当初
０１１００１０１    当初
（０１１０００００）  修正
（０１１０００００）  修正
０１１０１１１１    当初
（０１１０００００）  修正
ビット単位ＯＲ：０１１０１１１１
【００３２】
当初：現時点までに既知の結果ビット、すなわち０１１０と、対応する当初値のビットとが一致するため、当初値は維持される。
修正：現時点までに既知の結果ビット、すなわち０１１０と、対応する当初値のビットとが一致しないため、当初値は修正される。当初値で一致しないビットは、現時点までに既知の結果ビットに、すなわち０１１０に置き換えられ、当初値の残りのビットは、反復＃１におけるビット単位ＡＮＤの結果から対応するビットに、すなわち００００に置き換えられる。
【００３３】
ビット単位ＡＮＤとビット単位ＯＲとが相違する最高ビット位置（最下位ビットを０とカウント）：３（ｊ＝３）
＝＞現在、５つの最上位結果ビットが既知。
【００３４】
反復＃３
現時点までに既知の結果ビット数：５
現時点までに既知のビットのビットマスク：１１１１１０００
結果ビット：０１１０００００
現時点までに既知の結果ビットの生成：
−ビットｋ−１乃至ｊ＋１（ビット７乃至４）＝反復＃２におけるビット単位ＡＮＤとビット単位ＯＲの一致ビット−この例では０１１０。
−最小値検索のためビットｊ（ビット３）を０に設定。
−残りのビットｊ−１乃至０（ビット２乃至０）は０を保つ。
ＡＮＤの場合：（Ｐ１からＰ９）
（０１１００１１１）  修正
（０１１００１１１）  修正
（０１１００１１１）  修正
０１１０００１１    当初
０１１００１０１    当初
（０１１００１１１）  修正
（０１１００１１１）  修正
（０１１００１１１）  修正
（０１１００１１１）  修正
ビット単位ＡＮＤ：０１１００００１
【００３５】
当初：現時点までに既知の結果ビット、すなわち０１１００と、対応する当初値のビットとが一致するため、当初値は維持される。
修正：現時点までに既知の結果ビット、すなわち０１１００と、対応する当初値のビットとが一致しないため、当初値は修正される。当初値で一致しないビットは、現時点までに既知の結果ビットに、すなわち０１１００に置き換えられ、当初値の残りのビットは、反復＃２におけるビット単位ＯＲの結果から対応するビットに、すなわち１１１に置き換えられる。
ＯＲの場合：（Ｐ１からＰ９）
（０１１０００００）  修正
（０１１０００００）  修正
（０１１０００００）  修正
０１１０００１１    当初
０１１００１０１    当初
（０１１０００００）  修正
（０１１０００００）  修正
（０１１０００００）  修正
（０１１０００００）  修正
ビット単位ＯＲ：０１１００１１１
【００３６】
当初：現時点までに既知の結果ビット、すなわち０１１００と、対応する当初値のビットとが一致するため、当初値は維持される。
修正：現時点までに既知の結果ビット、すなわち０１１００と、対応する当初値のビットとが一致しないため、当初値は修正される。当初値で一致しないビットは、現時点までに既知の結果ビットに、すなわち０１１００に置き換えられ、当初値の残りのビットは、反復＃２におけるビット単位ＡＮＤの結果から対応するビットに、すなわち０００に置き換えられる。
【００３７】
ビット単位ＡＮＤとビット単位ＯＲとが相違する最高ビット位置（最下位ビットを０とカウント）：２（ｊ＝２）
＝＞現在、６つの最上位結果ビットが既知。
【００３８】
反復＃４
現時点までに既知の結果ビット数：６
現時点までに既知のビットのビットマスク：１１１１１１００
結果ビット：０１１００００
現時点までに既知の結果ビットの生成：
−ビットｋ−１乃至ｊ＋１（ビット７乃至３）＝反復＃３におけるビット単位ＡＮＤとビット単位ＯＲの一致ビット−この例では０１１００。
−最小値検索のためビットｊ（ビット２）を０に設定。
−残りのビットｊ−１乃至０（ビット１乃至０）は０を保つ。
ＡＮＤの場合：（Ｐ１からＰ９）
（０１１０００１１）  修正
（０１１０００１１）  修正
（０１１０００１１）  修正
０１１０００１１    当初
（０１１０００１１）  修正
（０１１０００１１）  修正
（０１１０００１１）  修正
（０１１０００１１）  修正
（０１１０００１１）  修正
ビット単位ＡＮＤ：０１１０００１１
【００３９】
当初：現時点までに既知の結果ビット、すなわち０１１０００と、対応する当初値のビットとが一致するため、当初値は維持される。
修正：現時点までに既知の結果ビット、すなわち０１１０００と、対応する当初値のビットとが一致しないため、当初値は修正される。当初値で一致しないビットは、現時点までに既知の結果ビットに、すなわち０１１０００に置き換えられ当初値の残りのビットは、反復＃３におけるビット単位ＯＲの結果から対応するビットに、すなわち１１に置き換えられる。
ＯＲの場合：（Ｐ１からＰ９）
（０１１０００００）  修正
（０１１０００００）  修正
（０１１０００００）  修正
０１１０００１１    当初
（０１１０００００）  修正
（０１１０００００）  修正
（０１１０００００）  修正
（０１１０００００）  修正
（０１１０００００）  修正
ビット単位ＯＲ：０１１０００１１
【００４０】
当初：現時点までに既知の結果ビット、すなわち０１１０００と、対応する当初値のビットとが一致するため、当初値は維持される。
修正：現時点までに既知の結果ビット、すなわち０１１０００と、対応する当初値のビットとが一致しないため、当初値は修正される。当初値で一致しないビットは、現時点までに既知の結果ビットに、すなわち０１１０００に置き換えられ、当初値の残りのビットは、反復＃３におけるビット単位ＡＮＤの結果から対応するビットに、すなわち００に置き換えられる。
【００４１】
ビット単位ＡＮＤとビット単位ＯＲとが相違する最高ビット位置（最下位ビットを０とカウント）：−１（ｊ＝−１）
＝＞現在、８つの最上位結果ビットが既知。
現時点までに既知のビットのビットマスク：１１１１１１１１
結果ビット：０１１０００１１
現時点までに既知の結果ビットの生成：
−ビットｋ−１乃至ｊ＋１（ビット７乃至１）＝反復＃４におけるビット単位ＡＮＤとビット単位ＯＲの一致ビット−この例では０１１０００１１。
−ビットｊは存在しない。
−残りのビットｊ−１乃至０はない。
＝＞現在、全ての結果ビットが既知であり、つまり結果は０１１０００１１＝９９である。したがって、プロセッサＰ４が最小値を保持する。
【００４２】
実施例２
９個のプロセッサＰ１乃至Ｐ９に記憶された値から最大値を判定する。
当初の値：
Ｐ１＝１１２  →  ０１１１００００
Ｐ２＝１１４  →  ０１１１００１０
Ｐ３＝１１１  →  ０１１０１１１１
Ｐ４＝９９    →  ０１１０００１１
Ｐ５＝１０１  →  ０１１００１０１
Ｐ６＝１１５  →  ０１１１００１１
Ｐ７＝１１５  →  ０１１１００１１
Ｐ８＝１１１  →  ０１１０１１１１
Ｐ９＝１１４  →  ０１１１００１０
【００４３】
反復＃１
現時点までに既知の結果ビット数：０
現時点までに既知のビットのビットマスク：００００００００
結果ビット：００００００００
【００４４】
現段階の反復で各プロセッサから中央処理装置に供給される値：
ＡＮＤの場合：（Ｐ１からＰ９） ＯＲの場合：（Ｐ１からＰ９）
０１１１００００  当初                      ０１１１００００  当初
０１１１００１０  当初                      ０１１１００１０  当初
０１１０１１１１  当初                      ０１１０１１１１  当初
０１１０００１１  当初                      ０１１０００１１  当初
０１１００１０１  当初                      ０１１００１０１  当初
０１１１００１１  当初                      ０１１１００１１  当初
０１１１００１１  当初                      ０１１１００１１  当初
０１１０１１１１  当初                      ０１１０１１１１  当初
０１１１００１０  当初                      ０１１１００１０  当初
０１１０００００（ビット単位ＡＮＤ）        ０１１１１１１１（ビット単位ＯＲ）
【００４５】
ビット単位ＡＮＤとビット単位ＯＲとが相違する最高ビット位置（最下位ビットを０とカウント）：４（ｊ＝４）
＝＞現在、４つの最上位結果ビットが既知。
【００４６】
反復＃２
現時点までに既知の結果ビット数：４
現時点までに既知のビットのビットマスク：１１１１００００
結果ビット：０１１１００００
現時点までに既知の結果ビットの生成：
−ビットｋ−１乃至ｊ＋１（ビット７乃至５）＝反復＃１におけるビット単位ＡＮＤとビット単位ＯＲの一致ビット−この例では０１１。
−最大値検索のためビットｊ（ビット４）を１に設定。
−残りのビットｊ−１乃至０（ビット３乃至０）は０を保つ。
ＡＮＤの場合：（Ｐ１からＰ９）
０１１１００００    当初
０１１１００１０    当初
（０１１１１１１１）  修正
（０１１１１１１１）  修正
（０１１１１１１１）  修正
０１１１００１１    当初
０１１１００１１    当初
（０１１１１１１１）  修正
０１１１００１０    当初
ビット単位ＡＮＤ：０１１１００００
【００４７】
当初：現時点までに既知の結果ビット、すなわち０１１１と、対応する当初値のビットとが一致するため、当初値は維持される。
修正：現時点までに既知の結果ビット、すなわち０１１１と、対応する当初値のビットとが一致しないため、当初値は修正される。当初値で一致しないビットは、現時点までに既知の結果ビットに、すなわち０１１１に置き換えられ、当初値の残りのビットは、反復＃１におけるビット単位ＯＲの結果から対応するビットに、すなわち１１１１に置き換えられる。
ＯＲの場合：（Ｐ１からＰ９）
０１１１００００    当初
０１１１００１０    当初
（０１１１００００）  修正
（０１１１００００）  修正
（０１１１００００）  修正
０１１１００１１    当初
０１１１００１１    当初
（０１１１００００）  修正
０１１１００１０    当初
ビット単位ＯＲ：０１１１００１１
【００４８】
当初：現時点までに既知の結果ビット、すなわち０１１１と、対応する当初値のビットとが一致するため、当初値は維持される。
修正：現時点までに既知の結果ビット、すなわち０１１１と、対応する当初値のビットとが一致しないため、当初値は修正される。当初値で一致しないビットは、現時点までに既知の結果ビットに、すなわち０１１１に置き換えられ、当初値の残りのビットは、反復＃１におけるビット単位ＡＮＤの結果から対応するビットに、すなわち００００に置き換えられる。
【００４９】
ビット単位ＡＮＤとビット単位ＯＲとが相違する最高ビット位置（最下位ビットを０とカウント）：１（ｊ＝１）
＝＞現在、７つの最上位結果ビットが既知。
【００５０】
反復＃３
現時点までに既知の結果ビット数：７
現時点までに既知のビットのビットマスク：１１１１１１１０
結果ビット：０１１１００１０
現時点までに既知の結果ビットの生成：
−ビットｋ−１乃至ｊ＋１（ビット７乃至２）＝反復＃２におけるビット単位ＡＮＤとビット単位ＯＲの一致ビット−この例では０１１１００。
−最大値検索のためビットｊ（ビット１）を１に設定。
−残りのビットｊ−１乃至０（ビット０乃至０）は０を保つ。
ＡＮＤの場合：（Ｐ１からＰ９）
（０１１１００１１）  修正
０１１１００１０    当初
（０１１１００１１）  修正
（０１１１００１１）  修正
（０１１１００１１）  修正
０１１１００１１    当初
０１１１００１１    当初
（０１１１００１１）  修正
０１１１００１０    当初
ビット単位ＡＮＤ：０１１１００１０
【００５１】
当初：現時点までに既知の結果ビット、すなわち０１１１００１と、対応する当初値のビットとが一致するため、当初値は維持される。
修正：現時点までに既知の結果ビット、すなわち０１１１００１と、対応する当初値のビットとが一致しないため、当初値は修正される。当初値で一致しないビットは、現時点までに既知の結果ビットに、すなわち０１１１００１に置き換えられ、当初値の残りのビットは、反復＃２におけるビット単位ＯＲの結果から対応するビットに、すなわち１１１に置き換えられる。
ＯＲの場合：（Ｐ１からＰ９）
（０１１１００１０）  修正
０１１１００１０    当初
（０１１１００１０）  修正
（０１１１００１０）  修正
（０１１１００１０）  修正
０１１１００１１    当初
０１１１００１１    当初
（０１１１００１０）  修正
０１１１００１０    当初
ビット単位ＯＲ：０１１１００１１
【００５２】
当初：現時点までに既知の結果ビット、すなわち０１１１００１と、対応する当初値のビットとが一致するため、当初値は維持される。
修正：現時点までに既知の結果ビット、すなわち０１１１００１と、対応する当初値のビットとが一致しないため、当初値は修正される。当初値で一致しないビットは、現時点までに既知の結果ビットに、すなわち０１１１００１に置き換えられ、当初値の残りのビットは、反復＃２におけるビット単位ＡＮＤの結果から対応するビットに、すなわち０に置き換えられる。
【００５３】
ビット単位ＡＮＤとビット単位ＯＲとが相違する最高ビット位置（最下位ビットを０とカウント）：０（ｊ＝０）
＝＞現在、８つの最上位結果ビットが既知。
現時点までに既知のビットのビットマスク：１１１１１１１１
結果ビット：０１１０００１１
現時点までに既知の結果ビットの生成：
−ビットｋ−１乃至ｊ＋１（ビット７乃至１）＝反復＃４におけるビット単位ＡＮＤとビット単位ＯＲの一致ビット−この例では０１１１００１。
−最大値検索のためビットｊ（ビット０）を１に設定。
−残りのビットｊ−１乃至０はない。
＝＞現在、全ての結果ビットが既知であり、つまり結果は０１１１００１１＝１１５である。したがって、プロセッサＰ７が最小値を保持する。
【００５４】
実施例３
１１個のプロセッサＰ１乃至Ｐ１１に記憶された値から最小値を判定する（ビット単位ＡＮＤとビット単位ＯＲの値判定については上記の実施例１及び２を参照）。
当初の値：
Ｐ１  ＝７０     →  ０１０００１１０
Ｐ２  ＝９７     →  ０１１００００１
Ｐ３  ＝１１５   →  ０１１１００１１
Ｐ４  ＝１１６   →  ０１１１０１００
Ｐ５  ＝７７     →  ０１００１１０１
Ｐ６  ＝１０５   →  ０１１０１００１
Ｐ７  ＝１１０   →  ０１１０１１１０
Ｐ８  ＝６８     →  ０１０００１００
Ｐ９  ＝１０１   →  ０１１００１０１
Ｐ１０＝１０９   →  ０１１０１１０１
Ｐ１１＝１１１   →  ０１１０１１１１
【００５５】
反復＃１
現時点までに既知の結果ビット数：０
現時点までに既知のビットのビットマスク：００００００００
結果ビット：００００００００
現段階の反復で各プロセッサから中央処理装置に供給される値：
ＡＮＤの場合：（Ｐ１からＰ１１） ＯＲの場合：（Ｐ１からＰ１１）
０１０００１１０  当初                      ０１０００１１０  当初
０１１００００１  当初                      ０１１００００１  当初
０１１１００１１  当初                      ０１１１００１１  当初
０１１１０１００  当初                      ０１１１０１００  当初
０１００１１０１  当初                      ０１００１１０１  当初
０１１０１００１  当初                      ０１１０１００１  当初
０１１０１１１０  当初                      ０１１０１１１０  当初
０１０００１００  当初                      ０１０００１００  当初
０１１００１０１  当初                      ０１１００１０１  当初
０１１０１１０１  当初                      ０１１０１１０１  当初
０１１０１１１１  当初                      ０１１０１１１１  当初
０１００００００（ビット単位ＡＮＤ）        ０１１１１１１１（ビット単位ＯＲ）
【００５６】
ビット単位ＡＮＤとビット単位ＯＲとが相違する最高ビット位置（最下位ビットを０とカウント）：５（ｊ＝５）
＝＞現在、３つの最上位結果ビットが既知。
【００５７】
反復＃２
現時点までに既知の結果ビット数：３
現時点までに既知のビットのビットマスク：１１１０００００
結果ビット：０１００００００
現時点までに既知の結果ビットの生成：
−ビットｋ−１乃至ｊ＋１（ビット７乃至６）＝反復＃１におけるビット単位ＡＮＤとビット単位ＯＲの一致ビット−この例では０１。
−最小値検索のためビットｊ（ビット５）を０に設定。
−残りのビットｊ−１乃至０（ビット４乃至０）は０を保つ。
ＡＮＤの場合：（Ｐ１からＰ１１） ＯＲの場合：（Ｐ１からＰ１１）
０１０００１１０    当初                ０１０００１１０    当初
（０１０１１１１１）  修正              （０１００００００）  修正
（０１０１１１１１）  修正              （０１００００００）  修正
（０１０１１１１１）  修正              （０１００００００）  修正
０１００１１０１    当初                ０１００１１０１    当初
（０１０１１１１１）  修正              （０１００００００）  修正
（０１０１１１１１）  修正              （０１００００００）  修正
０１０００１００    当初                ０１０００１００    当初
（０１０１１１１１）  修正              （０１００００００）  修正
（０１０１１１１１）  修正              （０１００００００）  修正
（０１０１１１１１）  修正              （０１００００００）  修正
０１０００１００（ビット単位ＡＮＤ）    ０１００１１１１（ビット単位ＯＲ）
【００５８】
ビット単位ＡＮＤとビット単位ＯＲとが相違する最高ビット位置（最下位ビットを０とカウント）：３（ｊ＝３）
＝＞現在、５つの最上位結果ビットが既知。
【００５９】
反復＃３
現時点までに既知の結果ビット数：５
現時点までに既知のビットのビットマスク：１１１１０００
結果ビット：０１００００００
現時点までに既知の結果ビットの生成：
−ビットｋ−１乃至ｊ＋１（ビット７乃至４）＝反復＃２におけるビット単位ＡＮＤとビット単位ＯＲの一致ビット−この例では０１００。
−最小値検索のためビットｊ（ビット３）を０に設定。
−残りのビットｊ−１乃至０（ビット２乃至０）は０を保つ。
ＡＮＤの場合：（Ｐ１からＰ１１） ＯＲの場合：（Ｐ１からＰ１１）
０１０００１１０    当初                ０１０００１１０    当初
（０１０００１１１）  修正              （０１００００００）  修正
（０１０００１１１）  修正              （０１００００００）  修正
（０１０００１１１）  修正              （０１００００００）  修正
（０１０００１１１）  修正              （０１００００００）  修正
（０１０００１１１）  修正              （０１００００００）  修正
（０１０００１１１）  修正              （０１００００００）  修正
０１０００１００    当初                ０１０００１００    当初
（０１０００１１１）  修正              （０１００００００）  修正
（０１０００１１１）  修正              （０１００００００）  修正
（０１０００１１１）  修正              （０１００００００）  修正
０１０００１００（ビット単位ＡＮＤ）    ０１０００１１０（ビット単位ＯＲ）
【００６０】
ビット単位ＡＮＤとビット単位ＯＲとが相違する最高ビット位置（最下位ビットを０とカウント）：１（ｊ＝１）
＝＞現在、７つの最上位結果ビットが既知。
【００６１】
反復＃４
現時点までに既知の結果ビット数：７
現時点までに既知のビットのビットマスク：１１１１１１１０
結果ビット：０１０００１００
現時点までに既知の結果ビットの生成：
−ビットｋ−１乃至ｊ＋１（ビット７乃至２）＝反復＃３におけるビット単位ＡＮＤとビット単位ＯＲの一致ビット−この例では０１１００。
−最小値検索のためビットｊ（ビット１）を０に設定。
−残りのビットｊ−１乃至０（ビット０乃至０）は０を保つ。
ＡＮＤの場合：（Ｐ１からＰ１１） ＯＲの場合：（Ｐ１からＰ１１）
（０１０００１０１）  修正              （０１０００１００）  修正
（０１０００１０１）  修正              （０１０００１００）  修正
（０１０００１０１）  修正              （０１０００１００）  修正
（０１０００１０１）  修正              （０１０００１００）  修正
（０１０００１０１）  修正              （０１０００１００）  修正
（０１０００１０１）  修正              （０１０００１００）  修正
（０１０００１０１）  修正              （０１０００１００）  修正
０１０００１００    当初                ０１０００１００    当初
（０１０００１０１）  修正              （０１０００１００）  修正
（０１０００１０１）  修正              （０１０００１００）  修正
（０１０００１０１）  修正              （０１０００１００）  修正
０１０００１００（ビット単位ＡＮＤ）    ０１０００１００（ビット単位ＯＲ）
【００６２】
ビット単位ＡＮＤとビット単位ＯＲとが相違する最高ビット位置（最下位ビットを０とカウント）：−１（ｊ＝−１）
（つまり全ビットが一致）
現時点までに既知の結果ビット数：８
現時点までに既知のビットのビットマスク：１１１１１１１１
結果ビット：０１０００１００
現時点までに既知の結果ビットの生成：
−ビットｋ−１乃至ｊ＋１（ビット７乃至０）＝反復＃４におけるビット単位ＡＮＤとビット単位ＯＲの一致ビット−この例では０１０００１００。
−ビットｊ（ビット−１）は存在しない。
−残りのビットｊ−１乃至０はない。
＝＞現在、全ての結果ビットが既知であり、つまり結果は０１０００１００＝６８である。したがって、プロセッサＰ７が最小値を保持する。
【００６３】
実施例４
１１個のプロセッサＰ１乃至Ｐ１１に記憶された値から最大値を判定する（ビット単位ＡＮＤとビット単位ＯＲの値判定については上記の実施例１及び２を参照）。
当初の値：
Ｐ１  ＝７０     →  ０１０００１１０
Ｐ２  ＝９７     →  ０１１００００１
Ｐ３  ＝１１５   →  ０１１１００１１
Ｐ４  ＝１１６   →  ０１１１０１００
Ｐ５  ＝７７     →  ０１００１１０１
Ｐ６  ＝１０５   →  ０１１０１００１
Ｐ７  ＝１１０   →  ０１１０１１１０
Ｐ８  ＝６８     →  ０１０００１００
Ｐ９  ＝１０１   →  ０１１００１０１
Ｐ１０＝１０９   →  ０１１０１１０１
Ｐ１１＝１１１   →  ０１１０１１１１
【００６４】
反復＃１
現時点までに既知の結果ビット数：０
現時点までに既知のビットのビットマスク：００００００００
結果ビット：００００００００
現段階の反復で各プロセッサから中央処理装置に供給される値：
ＡＮＤの場合：（Ｐ１からＰ１１） ＯＲの場合：（Ｐ１からＰ１１）
０１０００１１０  当初                      ０１０００１１０  当初
０１１００００１  当初                      ０１１００００１  当初
０１１１００１１  当初                      ０１１１００１１  当初
０１１１０１００  当初                      ０１１１０１００  当初
０１００１１０１  当初                      ０１００１１０１  当初
０１１０１００１  当初                      ０１１０１００１  当初
０１１０１１１０  当初                      ０１１０１１１０  当初
０１０００１００  当初                      ０１０００１００  当初
０１１００１０１  当初                      ０１１００１０１  当初
０１１０１１０１  当初                      ０１１０１１０１  当初
０１１０１１１１  当初                      ０１１０１１１１  当初
０１００００００（ビット単位ＡＮＤ）        ０１１１１１１１（ビット単位ＯＲ）
【００６５】
ビット単位ＡＮＤとビット単位ＯＲとが相違する最高ビット位置（最下位ビットを０とカウント）：５（ｊ＝５）
＝＞現在、３つの最上位結果ビットが既知。
【００６６】
反復＃２
現時点までに既知の結果ビット数：３
現時点までに既知のビットのビットマスク：１１１０００００
結果ビット：０１１０００００
現時点までに既知の結果ビットの生成：
−ビットｋ−１乃至ｊ＋１（ビット７乃至６）＝反復＃１におけるビット単位ＡＮＤとビット単位ＯＲの一致ビット−この例では０１。
−最大値検索のためビットｊ（ビット５）を１に設定。
−残りのビットｊ−１乃至０（ビット４乃至０）は０を保つ。
ＡＮＤの場合：（Ｐ１からＰ１１） ＯＲの場合：（Ｐ１からＰ１１）
（０１１１１１１１）  修正              （０１１０００００）  修正
０１１００００１    当初                ０１１００００１    当初
０１１１００１１    当初                ０１１１００１１    当初
０１１１０１００    当初                ０１１１０１００    当初
（０１１１１１１１）  修正              （０１１０００００）  修正
０１１０１００１    当初                ０１１０１００１    当初
０１１０１１１０    当初                ０１１０１１１０    当初
（０１１１１１１１）  修正              （０１１０００００）  修正
０１１００１０１    当初                ０１１００１０１    当初
０１１０１１０１    当初                ０１１０１１０１    当初
０１１０１１１１    当初                ０１１０１１１１    当初
０１１０００００（ビット単位ＡＮＤ）    ０１１１１１１１（ビット単位ＯＲ）
【００６７】
ビット単位ＡＮＤとビット単位ＯＲとが相違する最高ビット位置（最下位ビットを０とカウント）：４（ｊ＝４）
＝＞現在、４つの最上位結果ビットが既知。
【００６８】
反復＃３
現時点までに既知の結果ビット数：４
現時点までに既知のビットのビットマスク：１１１１００００
結果ビット：０１１１００００
現時点までに既知の結果ビットの生成：
−ビットｋ−１乃至ｊ＋１（ビット７乃至５）＝反復＃２におけるビット単位ＡＮＤとビット単位ＯＲの一致ビット−この例では０１１。
−最大値検索のためビットｊ（ビット４）を１に設定。
−残りのビットｊ−１乃至０（ビット３乃至０）は０を保つ。
ＡＮＤの場合：（Ｐ１からＰ１１） ＯＲの場合：（Ｐ１からＰ１１）
（０１１１１１１１）  修正              （０１１１００００）  修正
（０１１１１１１１）  修正              （０１１１００００）  修正
０１１１００１１    当初                ０１１１００１１    当初
０１１１０１００    当初                ０１１１０１００    当初
（０１１１１１１１）  修正              （０１１１００００）  修正
（０１１１１１１１）  修正              （０１１１００００）  修正
（０１１１１１１１）  修正              （０１１１００００）  修正
（０１１１１１１１）  修正              （０１１１００００）  当初
（０１１１１１１１）  修正              （０１１１００００）  修正
（０１１１１１１１）  修正              （０１１１００００）  修正
（０１１１１１１１）  修正              （０１１１００００）  修正
ビット単位ＡＮＤ：０１１１００００        ０１１１０１１１（ビット単位ＯＲ）
【００６９】
ビット単位ＡＮＤとビット単位ＯＲとが相違する最高ビット位置（最下位ビットを０とカウント）：２（ｊ＝２）
＝＞現在、６つの最上位結果ビットが既知。
【００７０】
反復＃４
現時点までに既知の結果ビット数：６
現時点までに既知のビットのビットマスク：１１１１１１００
結果ビット：０１１１０１００
現時点までに既知の結果ビットの生成：
−ビットｋ−１乃至ｊ＋１（ビット７乃至３）＝反復＃３におけるビット単位ＡＮＤとビット単位ＯＲの一致ビット−この例では０１１１０。
−最大値検索のためビットｊ（ビット２）を１に設定。
−残りのビットｊ−１乃至０（ビット１乃至０）は０を保つ。
ＡＮＤの場合：（Ｐ１からＰ１１） ＯＲの場合：（Ｐ１からＰ１１）
（０１１１０１１１）  修正              （０１１１０１００）  修正
（０１１１０１１１）  修正              （０１１１０１００）  修正
（０１１１０１１１）  修正              （０１１１０１００）  修正
０１１１０１００    当初                ０１１１０１００    当初
（０１１１０１１１）  修正              （０１１１０１００）  修正
（０１１１０１１１）  修正              （０１１１０１００）  修正
（０１１１０１１１）  修正              （０１１１０１００）  修正
（０１１１０１１１）  修正              （０１１１０１００）  修正
（０１１１０１１１）  修正              （０１１１０１００）  修正
（０１１１０１１１）  修正              （０１１１０１００）  修正
（０１１１０１１１）  修正              （０１１１０１００）  修正
０１１１０１００（ビット単位ＡＮＤ）    ０１１１０１００（ビット単位ＯＲ）
【００７１】
ビット単位ＡＮＤとビット単位ＯＲとが相違する最高ビット位置（最下位ビットを０とカウント）：−１（ｊ＝−１）
（つまり全ビットが一致）
現時点までに既知の結果ビット数：８
現時点までに既知のビットのビットマスク：１１１１１１１１
結果ビット：０１１１０１００
現時点までに既知の結果ビットの生成：
−ビットｋ−１乃至ｊ＋１（ビット７乃至０）＝反復＃４におけるビット単位ＡＮＤとビット単位ＯＲの一致ビット−この例では０１１１０１００。
−ビットｊ（ビット−１）は存在しない。
−残りのビットｊ−１乃至０はない。
＝＞現在、全ての結果ビットが既知であり、つまり結果は０１１１０１００＝１１６である。したがって、プロセッサＰ４が最小値を保持する。
【００７２】
実施例５
１８個のプロセッサＰ１乃至Ｐ１８に記憶された値から最小値を判定する（ビット単位ＡＮＤとビット単位ＯＲの値判定については上記の実施例１及び２を参照）。
当初の値：
Ｐ１  ＝１１４   →  ０１１１００１０
Ｐ２  ＝１０４   →  ０１１０１０００
Ｐ３  ＝９７     →  ０１１００００１
Ｐ４  ＝９８     →  ０１１０００１０
Ｐ５  ＝９７     →  ０１１００００１
Ｐ６  ＝１１４   →  ０１１１００１０
Ｐ７  ＝９８     →  ０１１０００１０
Ｐ８  ＝１０１   →  ０１１００１０１
Ｐ９  ＝１１４   →  ０１１１００１０
Ｐ１０＝１１４   →  ０１１１００１０
Ｐ１１＝１０４   →  ０１１０１０００
Ｐ１２＝９７     →  ０１１００００１
Ｐ１３＝９８     →  ０１１０００１０
Ｐ１４＝９７     →  ０１１００００１
Ｐ１５＝１１４   →  ０１１１００１０
Ｐ１６＝９８     →  ０１１０００１０
Ｐ１７＝１０１   →  ０１１００１０１
Ｐ１８＝１１４   →  ０１１１００１０
【００７３】
反復＃１
現時点までに既知の結果ビット数：０
現時点までに既知のビットのビットマスク：００００００００
結果ビット：００００００００
【００７４】
現段階の反復で各プロセッサから中央処理装置に供給される値：
ＡＮＤの場合：（Ｐ１からＰ１８） ＯＲの場合：（Ｐ１からＰ１８）
０１１１００１０  当初                      ０１１１００１０  当初
０１１０１０００  当初                      ０１１０１０００  当初
０１１００００１  当初                      ０１１００００１  当初
０１１０００１０  当初                      ０１１０００１０  当初
０１１００００１  当初                      ０１１００００１  当初
０１１１００１０  当初                      ０１１１００１０  当初
０１１０００１０  当初                      ０１１０００１０  当初
０１１００１０１  当初                      ０１１００１０１  当初
０１１１００１０  当初                      ０１１１００１０  当初
０１１１００１０  当初                      ０１１１００１０  当初
０１１０１０００  当初                      ０１１０１０００  当初
０１１００００１  当初                      ０１１００００１  当初
０１１０００１０  当初                      ０１１０００１０  当初
０１１００００１  当初                      ０１１００００１  当初
０１１１００１０  当初                      ０１１１００１０  当初
０１１０００１０  当初                      ０１１０００１０  当初
０１１００１０１  当初                      ０１１００１０１  当初
０１１１００１０  当初                      ０１１１００１０  当初
０１１０００００（ビット単位ＡＮＤ）        ０１１１１１１１（ビット単位ＯＲ）
【００７５】
ビット単位ＡＮＤとビット単位ＯＲとが相違する最高ビット位置（最下位ビットを０とカウント）：４（ｊ＝４）
＝＞現在、４つの最上位結果ビットが既知。
【００７６】
反復＃２
現時点までに既知の結果ビット数：４
現時点までに既知のビットのビットマスク：１１１１００００
結果ビット：０１１０００００
現時点までに既知の結果ビットの生成：
−ビットｋ−１乃至ｊ＋１（ビット７乃至５）＝反復＃１におけるビット単位ＡＮＤとビット単位ＯＲの一致ビット−この例では０１１。
−最小値検索のためビットｊ（ビット４）を０に設定。
−残りのビットｊ−１乃至０（ビット３乃至０）は０を保つ。
ＡＮＤの場合：（Ｐ１からＰ１８） ＯＲの場合：（Ｐ１からＰ１８）
（０１１０１１１１）  修正              （０１１０００００）  修正
０１１０１０００    当初                ０１１０１０００    当初
０１１００００１    当初                ０１１００００１    当初
０１１０００１０    当初                ０１１０００１０    当初
０１１００００１    当初                ０１１００００１    当初
（０１１０１１１１）  修正              （０１１０００００）  修正
０１１０００１０    当初                ０１１０００１０    当初
０１１００１０１    当初                ０１１００１０１    当初
（０１１０１１１１）  修正              （０１１０００００）  修正
（０１１０１１１１）  修正              （０１１０００００）  修正
０１１０１０００    当初                ０１１０１０００    当初
０１１００００１    当初                ０１１００００１    当初
０１１０００１０    当初                ０１１０００１０    当初
０１１００００１    当初                ０１１００００１    当初
（０１１０１１１１）  修正              （０１１０００００）  修正
０１１０００１０    当初                ０１１０００１０    当初
０１１００１０１    当初                ０１１００１０１    当初
（０１１０１１１１）  修正              （０１１０００００）  修正
０１１０００００（ビット単位ＡＮＤ）    ０１１０１１１１（ビット単位ＯＲ）
【００７７】
ビット単位ＡＮＤとビット単位ＯＲとが相違する最高ビット位置（最下位ビットを０とカウント）：３（ｊ＝３）
＝＞現在、５つの最上位結果ビットが既知。
【００７８】
反復＃３
現時点までに既知の結果ビット数：５
現時点までに既知のビットのビットマスク：１１１１１０００
結果ビット：０１１０００００
現時点までに既知の結果ビットの生成：
−ビットｋ−１乃至ｊ＋１（ビット７乃至４）＝反復＃２におけるビット単位ＡＮＤとビット単位ＯＲの一致ビット−この例では０１１０。
−最小値検索のためビットｊ（ビット３）を０に設定。
−残りのビットｊ−１乃至０（ビット２乃至０）は０を保つ。
ＡＮＤの場合：（Ｐ１からＰ１８） ＯＲの場合：（Ｐ１からＰ１８）
（０１１００１１１）  修正              （０１１０００００）  当初
（０１１００１１１）  修正              （０１１０００００）  修正
０１１００００１    当初                ０１１００００１    修正
０１１０００１０    当初                ０１１０００１０    修正
０１１００００１    当初                ０１１００００１    修正
（０１１００１１１）  修正              （０１１０００００）  修正
０１１０００１０    当初                ０１１０００１０    修正
０１１００１０１    当初                ０１１００１０１    当初
（０１１００１１１）  修正              （０１１０００００）  修正
（０１１００１１１）  修正              （０１１０００００）  修正
（０１１００１１１）  修正              （０１１０００００）  修正
０１１００００１    当初                ０１１００００１    修正
０１１０００１０    当初                ０１１０００１０    修正
０１１００００１    当初                ０１１００００１    修正
（０１１００１１１）  修正              （０１１０００００）  当初
０１１０００１０    当初                ０１１０００１０    修正
０１１００１０１    当初                ０１１００１０１    修正
（０１１００１１１）  修正              （０１１０００００）  修正
０１１０００００（ビット単位ＡＮＤ）    ０１１００１１１（ビット単位ＯＲ）
【００７９】
ビット単位ＡＮＤとビット単位ＯＲとが相違する最高ビット位置（最下位ビットを０とカウント）：２（ｊ＝２）
＝＞現在、６つの最上位結果ビットが既知。
【００８０】
反復＃４
現時点までに既知の結果ビット数：６
現時点までに既知のビットのビットマスク：１１１１１１００
結果ビット：０１１０００００
現時点までに既知の結果ビットの生成：
−ビットｋ−１乃至ｊ＋１（ビット７乃至３）＝反復＃３におけるビット単位ＡＮＤとビット単位ＯＲの一致ビット−この例では０１１００。
−最小値検索のためビットｊ（ビット２）を０に設定。
−残りのビットｊ−１乃至０（ビット１乃至０）は０を保つ。
ＡＮＤの場合：（Ｐ１からＰ１８） ＯＲの場合：（Ｐ１からＰ１８）
（０１１０００１１）  修正              （０１１０００００）  修正
（０１１０００１１）  修正              （０１１０００００）  修正
０１１００００１    当初                ０１１００００１    当初
０１１０００１０    当初                ０１１０００１０    当初
０１１００００１    当初                ０１１００００１    当初
（０１１０００１１）  修正              （０１１０００００）  修正
０１１０００１０    当初                ０１１０００１０    当初
（０１１０００１１）  修正              （０１１０００００）  修正
（０１１０００１１）  修正              （０１１０００００）  修正
（０１１０００１１）  修正              （０１１０００００）  修正
（０１１０００１１）  修正              （０１１０００００）  修正
０１１００００１    当初                ０１１００００１    当初
０１１０００１０    当初                ０１１０００１０    当初
０１１００００１    当初                ０１１００００１    当初
（０１１０００１１）  修正              （０１１０００００）  修正
０１１０００１０    当初                ０１１０００１０    当初
（０１１０００１１）  修正              （０１１０００００）  修正
（０１１０００１１）  修正              （０１１０００００）  修正
０１１０００００（ビット単位ＡＮＤ）    ０１１０００１１（ビット単位ＯＲ）
【００８１】
ビット単位ＡＮＤとビット単位ＯＲとが相違する最高ビット位置（最下位ビットを０とカウント）：１（ｊ＝１）
＝＞現在、７つの最上位結果ビットが既知。
【００８２】
反復＃５
現時点までに既知の結果ビット数：７
現時点までに既知のビットのビットマスク：１１１１１１１０
結果ビット：０１１０００００
現時点までに既知の結果ビットの生成：
−ビットｋ−１乃至ｊ＋１（ビット７乃至２）＝反復＃４におけるビット単位ＡＮＤとビット単位ＯＲの一致ビット−この例では０１１０００。
−最小値検索のためビットｊ（ビット１）を０に設定。
−残りのビットｊ−１乃至０（ビット０乃至０）は０を保つ。
ＡＮＤの場合：（Ｐ１からＰ１８） ＯＲの場合：（Ｐ１からＰ１８）
（０１１００００１）  修正              （０１１０００００）  修正
（０１１００００１）  修正              （０１１０００００）  修正
０１１００００１    当初                ０１１００００１    当初
（０１１００００１）  修正              （０１１０００００）  修正
０１１００００１    当初                ０１１００００１    当初
（０１１００００１）  修正              （０１１０００００）  修正
（０１１００００１）  修正              （０１１０００００）  修正
（０１１００００１）  修正              （０１１０００００）  修正
（０１１００００１）  修正              （０１１０００００）  修正
（０１１００００１）  修正              （０１１０００００）  修正
（０１１００００１）  修正              （０１１０００００）  修正
０１１００００１    当初                ０１１００００１    当初
（０１１００００１）  修正              （０１１０００００）  修正
０１１００００１    当初                ０１１００００１    当初
（０１１００００１）  修正              （０１１０００００）  当初
（０１１００００１）  修正              （０１１０００００）  修正
（０１１００００１）  修正              （０１１０００００）  修正
（０１１００００１）  修正              （０１１０００００）  修正
０１１００００１（ビット単位ＡＮＤ）    ０１１００００１（ビット単位ＯＲ）
【００８３】
ビット単位ＡＮＤとビット単位ＯＲとが相違する最高ビット位置（最下位ビットを０とカウント）：−１（ｊ＝−１）
（つまり全ビットが一致）
現時点までに既知の結果ビット数：８
現時点までに既知のビットのビットマスク：１１１１１１１１
結果ビット：０１１００００１
現時点までに既知の結果ビットの生成：
−ビットｋ−１乃至ｊ＋１（ビット７乃至０）＝反復＃４におけるビット単位ＡＮＤとビット単位ＯＲの一致ビット−この例では０１１００００１。
−ビットｊ（ビット−１）は存在しない。
−残りのビットｊ−１乃至０はない。
＝＞現在、全ての結果ビットが既知であり、つまり結果は０１１００００１＝９７である。したがって、プロセッサＰ３、Ｐ５、Ｐ１２が最小値を保持する。
【００８４】
実施例６
１８個のプロセッサＰ１乃至Ｐ１８に記憶された値から最大値を判定する（ビット単位ＡＮＤとビット単位ＯＲの値判定については上記の実施例１及び２を参照）。
当初の値：
Ｐ１  ＝１１４   →  ０１１１００１０
Ｐ２  ＝１０４   →  ０１１０１０００
Ｐ３  ＝９７     →  ０１１００００１
Ｐ４  ＝９８     →  ０１１０００１０
Ｐ５  ＝９７     →  ０１１００００１
Ｐ６  ＝１１４   →  ０１１１００１０
Ｐ７  ＝９８     →  ０１１０００１０
Ｐ８  ＝１０１   →  ０１１００１０１
Ｐ９  ＝１１４   →  ０１１１００１０
Ｐ１０＝１１４   →  ０１１１００１０
Ｐ１１＝１０４   →  ０１１０１０００
Ｐ１２＝９７     →  ０１１００００１
Ｐ１３＝９８     →  ０１１０００１０
Ｐ１４＝９７     →  ０１１００００１
Ｐ１５＝１１４   →  ０１１１００１０
Ｐ１６＝９８     →  ０１１０００１０
Ｐ１７＝１０１   →  ０１１００１０１
Ｐ１８＝１１４   →  ０１１１００１０
【００８５】
反復＃１
現時点までに既知の結果ビット数：０
現時点までに既知のビットのビットマスク：００００００００
結果ビット：００００００００
現段階の反復で各プロセッサから中央処理装置に供給される値：
ＡＮＤの場合：（Ｐ１からＰ１８） ＯＲの場合：（Ｐ１からＰ１８）
０１１１００１０  当初                      ０１１１００１０  当初
０１１０１０００  当初                      ０１１０１０００  当初
０１１００００１  当初                      ０１１００００１  当初
０１１０００１０  当初                      ０１１０００１０  当初
０１１００００１  当初                      ０１１００００１  当初
０１１１００１０  当初                      ０１１１００１０  当初
０１１０００１０  当初                      ０１１０００１０  当初
０１１００１０１  当初                      ０１１００１０１  当初
０１１１００１０  当初                      ０１１１００１０  当初
０１１１００１０  当初                      ０１１１００１０  当初
０１１０１０００  当初                      ０１１０１０００  当初
０１１００００１  当初                      ０１１００００１  当初
０１１０００１０  当初                      ０１１０００１０  当初
０１１００００１  当初                      ０１１００００１  当初
０１１１００１０  当初                      ０１１１００１０  当初
０１１０００１０  当初                      ０１１０００１０  当初
０１１００１０１  当初                      ０１１００１０１  当初
０１１１００１０  当初                      ０１１１００１０  当初
ビット単位ＡＮＤ：０１１０００００          ビット単位ＯＲ：０１１１１１１１
【００８６】
ビット単位ＡＮＤとビット単位ＯＲとが相違する最高ビット位置（最下位ビットを０とカウント）：４（ｊ＝４）
＝＞現在、４つの最上位結果ビットが既知。
【００８７】
反復＃２
現時点までに既知の結果ビット数：４
現時点までに既知のビットのビットマスク：１１１１００００
結果ビット：０１１１００００
現時点までに既知の結果ビットの生成：
−ビットｋ−１乃至ｊ＋１（ビット７乃至５）＝反復＃１におけるビット単位ＡＮＤとビット単位ＯＲの一致ビット−この例では０１１。
−最小値検索のためビットｊ（ビット４）を１に設定。
−残りのビットｊ−１乃至０（ビット３乃至０）は０を保つ。
ＡＮＤの場合：（Ｐ１からＰ１８） ＯＲの場合：（Ｐ１からＰ１８）
０１１１００１０    当初                ０１１１００１０    当初
（０１１１１１１１）  修正              （０１１１００００）  修正
（０１１１１１１１）  修正              （０１１１００００）  修正
（０１１１１１１１）  修正              （０１１１００００）  修正
（０１１１１１１１）  修正              （０１１１００００）  修正
０１１１００１０    当初                ０１１１００１０    当初
（０１１１１１１１）  修正              （０１１１００００）  修正
（０１１１１１１１）  修正              （０１１１００００）  修正
０１１１００１０    当初                ０１１１００１０    当初
０１１１００１０    当初                ０１１１００１０    当初
（０１１１１１１１）  修正              （０１１１００００）  修正
（０１１１１１１１）  修正              （０１１１００００）  修正
（０１１１１１１１）  修正              （０１１１００００）  修正
（０１１１１１１１）  修正              （０１１１００００）  修正
０１１１００１０    当初                ０１１１００１０    当初
（０１１１１１１１）  修正              （０１１１００００）  修正
（０１１１１１１１）  修正              （０１１１００００）  修正
０１１１００１０    当初                ０１１１００１０    当初
０１１１００１０（ビット単位ＡＮＤ）    ０１１１００１０（ビット単位ＯＲ）
【００８８】
ビット単位ＡＮＤとビット単位ＯＲとが相違する最高ビット位置（最下位ビットを０とカウント）：−１（ｊ＝−１）
現時点までに既知の結果ビット数：８
現時点までに既知のビットのビットマスク：１１１１１１１１
結果ビット：０１１１００１０
現時点までに既知の結果ビットの生成：
−ビットｋ−１乃至ｊ＋１（ビット７乃至０）＝反復＃４におけるビット単位ＡＮＤとビット単位ＯＲの一致ビット−この例では０１１１００１０。
−ビットｊ（ビット−１）は存在しない。
−残りのビットｊ−１乃至０はない。
＝＞現在、全ての結果ビットが既知であり、つまり結果は０１１１００１０＝１１４である。したがって、プロセッサＰ６、Ｐ９、Ｐ１０、Ｐ１５、Ｐ１８が最小値を保持する。
【００８９】
上述した実施形態によれば、この方法で最小値を判定するに際して必要な反復回数は、バイナリ表現による当初値のいずれか２つが相違するビットの数に過ぎない。各回の反復は、「ＡＮＤ」による１回の共同読み取りと「ＯＲ」による１回の共同読み取りと、１回の一斉送信ですむ。
【００９０】
数を表すビット数は通常は３２であり、６４の場合もあるが、１組の値が相違するビットの数はこれよりも少ない。プロセッサの数ｎが１組の値が相違するビットの数を大幅に上回るとすれば、例えば数千の差で上回る場合「高速最小値発見」は上述したｎ回の読み取り動作を要する上記の一般的な方法より大幅に速くなる。
【００９１】
バイナリ値をそれぞれ供給する複数のプロセッサＰ１乃至Ｐｎを使って本発明の実施形態を説明した。上記とは別の実施形態で中央処理装置により最大／最小値を判定するに際し、対応するメモリ素子のレジスタにバイナリ値を保持するプロセッサの数は減らしてもよく、または、１つのプロセッサのみでもよい。
【００９２】
上記の方法は、ハードウェアまたはソフトウェアで実装可能である。加えて、かかる実装は、プログラム可能なコンピュータシステムと協働でき、本発明の実施形態に係る方法を実行するための電子的に読み取り可能な制御信号を有するディスクやＣＤ等のデジタル記憶媒体において成されてもよい。概して本発明は、機械で読み取り可能な担体に記憶され、コンピュータ上での稼動時に実行される、本発明の実施形態に係る方法を実行するためのプログラムコードを有する、コンピュータプログラムプロダクトでもある。換言すると、本発明は、コンピュータ上での稼動時に実行される該方法を実行するためのプログラムコードを有するコンピュータプログラムでもある。
【符号の説明】
【００９３】
１００  テスタ
１０２  プロセッサ（中央処理装置）
１０４  ＤＵＴ
１０６  出力
１０８  ビット単位
【図１】
2010532065.tif 000003
【図２】
2010532065.tif 000004
【図３】
2010532065.tif 000005
【手続補正書】
【提出日】平成21年9月8日(2009.9.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のプロセッサメモリ（Ｍ１−Ｍｎ）又は各プロセッサ（Ｐ１−Ｐｎ）と連携するメモリ（Ｍ１−Ｍｎ）に保持される複数のバイナリ値の最小値／最大値を判定する方法であって、前記方法は、
（ａ）複数のバイナリ値において全ての後続ビット値が同じであるビット位置を判定し、ステップ（ａ）は最初の実行時には、
（ａ．１）全てのメモリ（Ｍ１−Ｍｎ）から全てのバイナリ値を共同で読み取り、前記共同で読み取ったバイナリ値のビット単位ＯＲの組み合わせと、ビット単位ＡＮＤの組み合わせとを生成すること、及び、
（ａ．２）前記共同で読み取ったバイナリ値の前記ビット単位ＯＲの組み合わせと前記ビット単位ＡＮＤの組み合わせとに基づき、前記複数のバイナリ値において全ての後続ビット値が同じになる前記ビット位置を判定すること、を含み、
（ｂ）複数のバイナリ値から（ａ）で判定した前記ビット位置と、後続ビット位置がある場合は全後続ビット位置のビット値が、所定値を有するバイナリ値を選択すること、
（ｃ）１つの選択バイナリ値か複数の一致バイナリ値が残るまで、ステップ（ｂ）で選択した前記バイナリ値に基づきステップ（ａ）を繰り返す、ステップ（ａ）及び（ｂ）を繰り返すこと、及び
（ｄ）前記残りのバイナリ値を前記最小値／最大値として供給することを有すること、
を特徴とする方法。
【請求項２】
前記所定値は最大値を判定する場合に「１」であって、前記所定値は最小値を判定する場合に「０」であること、を特徴とする請求項１に記載の方法。
【請求項３】
次のビット単位ＯＲの組み合わせと次のビット単位ＡＮＤの組み合わせとを生成するため、ステップ（ｂ）は、
ステップ（ａ）で判定する前記ビット位置の当初のバイナリ値の前記ビット値が前記所定値と一致する場合に、前記当初のバイナリ値を選択すること、及び
もしくは修正値を選択すること、を有し、
ステップ（ａ）を繰り返すことは、前記次のビット単位ＯＲの組み合わせと前記次のビット単位ＡＮＤの組み合わせとに基づくこと、
を特徴とする請求項１に記載の方法。
【請求項４】
前記次のビット単位ＯＲの組み合わせの場合、前記修正値は、前記最小値／最大値の現時点までの既知ビットと、前記既存のビット単位ＡＮＤの組み合わせの前記残りのビットとによって形成され、
前記次のビット単位ＡＮＤの組み合わせの場合、前記修正値は、前記最小値／最大値の現時点までの既知ビットと、前記既存のビット単位ＯＲの組み合わせの前記残りのビットとによって形成されること、
を特徴とする請求項３に記載の方法。
【請求項５】
ステップ（ａ）は、
前記ビット単位ＯＲの組み合わせと前記ビット単位ＡＮＤの組み合わせとを前記メモリ（Ｍ１−Ｍｎ）へ伝達することを有し、
ステップ（ｂ）は、
前記最小値／最大値の前記現時点までの既知ビットを前記メモリ（Ｍ１−Ｍｎ）へ伝達すること、及び
前記次のビット単位ＯＲの組み合わせの場合、各前記メモリ（Ｍ１−Ｍｎ）に対し、
ステップ（ａ）で判定した前記ビット位置と、後続ビット位置がある場合は全後続ビット位置の前記ビット値が、前記最小値／最大値の前記現時点までの既知ビット値と一致する場合は、前記当初の値を返すこと、
もしくは、前記最小値／最大値の前記現時点までの既知ビット値と、前記既存のビット単位ＡＮＤの組み合わせの前記残りのビット位置の前記ビット値とを返すこと、を命令すること、及び
前記次のビット単位ＡＮＤの組み合わせの場合に、各メモリ（Ｍ１−Ｍｎ）に対し、
ステップ（ａ）で判定した前記ビット位置と、後続ビット位置がある場合は全後続ビット位置の前記ビット値が、前記最小値／最大値の前記現時点までの既知ビット値と一致する場合は、前記当初の値を返すこと、
もしくは、前記最小値／最大値の前記現時点までの既知ビット値と、前記既存のビット単位ＯＲの組み合わせの前記残りのビット位置の前記ビット値とを返すことを命令すること、を有すること、
を特徴とする請求項４に記載の方法。
【請求項６】
プロセッサ（１０２）による実行時に、請求項１から５の一項に記載の方法を実行するためのコンピュータで読み取り可能なプログラムコードを備えること、を特徴とするコンピュータ記憶媒体。
【請求項７】
プロセッサ（１０２）による実行時に、請求項１から５の一項に記載の方法を実行するためのコンピュータで読み取り可能なプログラムコードを備えること、を特徴とするコンピュータプログラムプロダクト。
【請求項８】
プロセッサ（１０２）による実行時に、請求項１から５の一項に記載の方法を実行するためのプログラムコードを備えること、を特徴とするコンピュータプログラム。
【請求項９】
各プロセッサ（Ｐ１−Ｐｎ）と連携し複数のメモリ（Ｍ１−Ｍｎ）に保持される複数のバイナリ値の最小値／最大値を判定するシステムであって、前記システムは、
中央処理装置（１０２）と、
前記中央処理装置（１０２）へ結合され、複数の入力値のビット単位ＯＲの組み合わせとビット単位ＡＮＤの組み合わせとを前記中央処理装置（１０２）へ出力するように構成されたロジック（１０８）と、
各プロセッサ（Ｐ１−Ｐｎ）と連携し、前記ロジック（１０８）へ各々結合され、前記複数のバイナリ値のいずれか１つを各々保持するように構成された複数のメモリ（Ｍ１−Ｍｎ）と、を備え、
前記中央処理装置（１０２）は請求項１から５の一項に記載の方法に従って作動するように構成されること、
を特徴とするシステム。
【請求項１０】
前記ロジック（１０８）は前記中央処理装置（１０２）に実装されること、を特徴とする請求項９に記載のシステム。
【請求項１１】
電子デバイス（１０４）をテストするテスタ（１００）であって、前記バイナリ値はテスト結果を表すこと、を特徴とする請求項９または１０に記載のシステム。
【請求項１２】
複数のプロセッサメモリ（Ｍ１−Ｍｎ）又は各プロセッサ（Ｐ１−Ｐｎ）と連携するメモリ（Ｍ１−Ｍｎ）に保持される複数のバイナリ値の最小値／最大値を判定する装置であって、前記装置は請求項１から５の一項に記載の方法に従って作動するように構成されたプロセッサ（１０２）を備えること、を特徴とする装置。
【国際調査報告】
2010532065.tif 000006
2010532065.tif 000007
2010532065.tif 000008