(57)【要約】【課題】ヒープによるソータの実行時間を短縮し、少ないリソースで多数の優先度に対応し、且つ、高速なヒープ構造の情報を記憶することができる、２分木構造の情報を記憶する装置及びヒープ構造の情報を記憶する装置を提供する。【解決手段】Ｎ個のメモリ装置のレイヤ０に対応する第２の情報は、レイヤ１に対応する第１の情報の親になる第１の関係と、レイヤｊ−１に対応する第４の情報は、（２≦ｊ≦Ｎ−１）となるレイヤｊに対応する第３の情報の親になる第２の関係に基づいて、２分木構造の情報における親子の対応関係が識別される分散メモリ手段と、分散メモリ手段のメモリ装置の（１≦Ｌ≦Ｎ−１）となるレイヤＬに対応するアドレス情報から、レイヤ１に対応するアドレスに至るまでの親子の対応関係にある情報を、同時に選択するアドレス入力手段とを備える。【選択図】図１
2007114944.tif 000002
【特許請求の範囲】
【請求項１】
Ｎ個のメモリ装置から構成され、該メモリ装置が各々対応するレイヤをレイヤ０からレイヤＮ−１とする場合、レイヤ０に対応するメモリ装置は、単一の情報を記憶し、（１≦ｉ≦Ｎ−１）となるレイヤｉに対応するメモリ装置は、各々ｉビットのアドレスで情報を識別し、
小数点以下を切り捨てた整数値を商とする除算演算子を「／」として、レイヤ１に対応するメモリ装置のアドレス０若しくはアドレス１で識別される情報を第１の情報とし、レイヤ０に対応するメモリ装置の情報を第２の情報とする場合、該第２の情報は該第１の情報の親に、該第１の情報は該第２の情報の子になる第１の関係と、（２≦ｊ≦Ｎ−１）となるレイヤｊに対応するメモリ装置のアドレスＡで識別される情報を第３の情報とし、レイヤｊ−１に対応するメモリ装置のアドレスＡ／２で識別される情報を第４の情報とする場合、該第４の情報は該第３の情報の親に、該第３の情報は該第４の情報の子になる第２の関係に基づいて、２分木構造の情報における親子の対応関係が識別される分散メモリ手段と、
（１≦Ｌ≦Ｎ−１）となるレイヤＬに対応する該分散メモリ手段のメモリ装置のアドレスにＢが入力された場合、（１≦ｋ≦Ｌ−１）となるレイヤｋに対応する該分散メモリ手段のメモリ装置のアドレスに、各々、Ｂ／２（Ｌ−ｋ）を入力することによって、レイヤＬに対応する該分散メモリ手段のメモリ装置のアドレスＢの情報から、レイヤ１に対応する該分散メモリ手段のメモリ装置のアドレスＢ／２（Ｌ−１）に至るまでの親子の対応関係にある情報を、同時に選択するアドレス入力手段と
を備えて構成したことを特徴とする２分木構造の情報を記憶する装置。
【請求項２】
Ｎ個のメモリ装置から構成され、該メモリ装置が各々対応するレイヤをレイヤ０からレイヤＮ−１とする場合、レイヤ０に対応するメモリ装置は、単一の情報を記憶し、（１≦ｉ≦Ｎ−１）となるレイヤｉに対応するメモリ装置は、各々ｉビットのアドレスで情報を識別し、
整数値の剰余を求める剰余演算子を「％」として、レイヤ１に対応するメモリ装置のアドレス０若しくはアドレス１で識別される情報を第１の情報とし、レイヤ０に対応するメモリ装置の情報を第２の情報とする場合、該第２の情報は該第１の情報の親に、該第１の情報は該第２の情報の子になる第１の関係と、（２≦ｊ≦Ｎ−１）となるレイヤｊに対応するメモリ装置のアドレスＡで識別される情報を第３の情報とし、レイヤｊ−１に対応するメモリ装置のアドレスＡ％２（ｊ−１）で識別される情報を第４の情報とする場合、該第４の情報は該第３の情報の親に、該第３の情報は該第４の情報の子になる第２の関係に基づいて、２分木構造の情報における親子の対応関係が識別される分散メモリ手段と、
（１≦Ｌ≦Ｎ−１）となるレイヤＬに対応する、該分散メモリ手段のメモリ装置のアドレスにＢが入力された場合、（１≦ｋ≦Ｌ−１）となるレイヤｋに対応する該分散メモリ手段のメモリ装置のアドレスに、各々Ｂ％２ｋを入力することによって、レイヤＬに対応する該分散メモリ手段のメモリ装置のアドレスＢの情報から、レイヤ１に対応する該分散メモリ手段のメモリ装置のアドレスＢ％２に至るまでの親子の対応関係にある情報を、同時に選択するアドレス入力手段と
を備えて構成したことを特徴とする２分木構造の情報を記憶する装置。
【請求項３】
Ｎ−１個のメモリ装置から構成され、該メモリ装置が各々対応するレイヤをレイヤ１からレイヤＮ−１とする場合、レイヤ１に対応するメモリ装置は、単一の比較結果を記憶し、該比較結果は、レイヤ１に対応する前記分散メモリ手段のメモリ装置のアドレス０及びアドレス１で識別される情報に対応する比較結果となり、（２≦ｍ≦Ｎ−１）となるレイヤｍに対応するメモリ装置は、各々ｍ−１ビットのアドレスで比較結果を識別し、アドレスＤで識別される比較結果は、レイヤｍに対応する前記分散メモリ手段のメモリ装置のアドレス２Ｄ及びアドレス２Ｄ＋１で識別される情報に対応する比較結果となり、前記分散メモリ手段のメモリ装置に記憶された情報が更新された際に、該情報に対応する比較結果が更新される比較結果メモリ手段と、
レイヤ１に対応する該比較結果メモリ手段のメモリ装置に記憶された比較結果に基づいて、レイヤ１に対応するアドレスを生成し、レイヤ１に対応する前記分散メモリ手段のメモリ装置のアドレス０で識別される情報が高優先、若しくはアドレス１で識別される情報が存在しない場合は、生成されるアドレスは０となり、レイヤ１に対応する前記分散メモリ手段のメモリ装置のアドレス１で識別される情報が高優先、若しくはアドレス０で識別される情報が存在しない場合は、生成されるアドレスは１となり、さもなければ、生成されるアドレスは０か１の何れかとなり、
（２≦ｐ≦Ｎ−１）となるレイヤｐに対応する該比較結果メモリ手段のメモリ装置のアドレスに、各々レイヤｐ−１に対応するアドレスＥｐ−１を入力することによって選択した比較結果に基づいて、レイヤｐに対応するアドレスを各々生成し、レイヤｐに対応する前記分散メモリ手段のメモリ装置のアドレス２Ｅｐ−１で識別される情報が高優先、若しくはアドレス２Ｅｐ−１＋１で識別される情報が存在しない場合は、生成されるアドレスは２Ｅｐ−１となり、レイヤｐに対応する前記分散メモリ手段のメモリ装置のアドレス２Ｅｐ−１＋１で識別される情報が高優先、若しくはアドレス２Ｅｐ−１で識別される情報が存在しない場合は、生成されるアドレスは２Ｅｐ−１＋１となり、さもなければ、生成されるアドレスは２Ｅｐ−１か２Ｅｐ−１＋１の何れかとなるアドレス生成手段と
を備えて構成したことを特徴とする請求項１に記載の２分木構造の情報を記憶する装置。
【請求項４】
Ｎ−１個のメモリ装置から構成され、該メモリ装置が各々対応するレイヤをレイヤ１からレイヤＮ−１とする場合、レイヤ１に対応するメモリ装置は単一の比較結果を記憶し、該比較結果は、レイヤ１に対応する前記分散メモリ手段のメモリ装置のアドレス０及びアドレス１で識別される情報に対応する比較結果となり、（２≦ｍ≦Ｎ−１）となるレイヤｍに対応するメモリ装置は、各々ｍ−１ビットのアドレスで比較結果を識別し、アドレスＤで識別される比較結果は、レイヤｍに対応する前記分散メモリ手段のメモリ装置のアドレスＤ及びアドレスＤ＋２ｍ−１で識別される情報に対応する比較結果となり、前記分散メモリ手段のメモリ装置に記憶された情報が更新された際に、該情報に対応する比較結果が更新される比較結果メモリ手段と、
レイヤ１に対応する該比較結果メモリ手段のメモリ装置に記憶された比較結果に基づいて、レイヤ１に対応するアドレスを生成し、レイヤ１に対応する前記分散メモリ手段のメモリ装置のアドレス０で識別される情報が高優先、若しくはアドレス１で識別される情報が存在しない場合は、生成されるアドレスは０となり、レイヤ１に対応する前記分散メモリ手段のメモリ装置のアドレス１で識別される情報が高優先、若しくはアドレス０で識別される情報が存在しない場合は、生成されるアドレスは１となり、さもなければ、生成されるアドレスは０か１の何れかとなり、
（２≦ｐ≦Ｎ−１）となるレイヤｐに対応する該比較結果メモリ手段のメモリ装置のアドレスに、各々レイヤｐ−１に対応するアドレスＥｐ−１を入力することによって選択した比較結果に基づいて、レイヤｐに対応するアドレスを各々生成し、レイヤｐに対応する前記分散メモリ手段のメモリ装置のアドレスＥｐ−１で識別される情報が高優先、若しくはアドレスＥｐ−１＋２ｍ−１で識別される情報が存在しない場合は、生成されるアドレスはＥｐ−１となり、レイヤｐに対応する前記分散メモリ手段のメモリ装置のアドレスＥｐ−１＋２ｍ−１で識別される情報が高優先、若しくはアドレスＥｐ−１で識別される情報が存在しない場合は、生成されるアドレスはＥｐ−１＋２ｍ−１となり、さもなければ、生成されるアドレスはＥｐ−１かＥｐ−１＋２ｍ−１の何れかとなるアドレス生成手段と
を備えて構成したことを特徴とする請求項２に記載の２分木構造の情報を記憶する装置。
【請求項５】
請求項３又は４に記載の２分木構造の情報を記憶する装置に記憶される情報がヒープ構造であるヒープ構造の情報を記憶する装置であって、
前記分散メモリ手段から情報を出力する際に、レイヤ０に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が１の状態である場合、該レイヤ０に対応する前記分散メモリ手段のメモリ装置に記憶された情報を削除して出力し、その結果、レイヤ０からレイヤＮ−１に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が全て０の状態となる場合、前記分散メモリ手段からの情報の出力を終了し、
（１≦Ｓ≦Ｎ−１）となるレイヤＳに対応する前記分散メモリ手段のメモリ装置に記憶された情報数が１以上の状態となる場合であって、且つ、レイヤＳ＋１に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が０の状態となる、若しくはレイヤＳがレイヤＮ−１となる場合、該レイヤＳに対応する前記分散メモリ手段のメモリ装置に記憶された情報数の値をＣとすると、該レイヤＳに対応する前記分散メモリ手段のメモリ装置のアドレスＣ−１の情報を削除して、挿入する情報とする情報出力手段と、
該情報出力手段による情報の削除の結果、（１≦Ｔ≦Ｎ−１）となるレイヤＴに対応する前記分散メモリ手段のメモリ装置に記憶された情報数が１以上の状態となる場合であって、且つ、レイヤＴ＋１に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が０の状態となる、若しくはレイヤＴがレイヤＮ−１となる場合、該レイヤＴに対応する前記分散メモリ手段のメモリ装置に記憶された情報数が、前記アドレス生成手段が生成したレイヤＴに対応するアドレスの値より大きければ、前記アドレス生成手段が生成したレイヤＴに対応するアドレスを、該レイヤＴに対応する前記分散メモリ手段のメモリ装置のアドレスに入力し、さもなければ、前記アドレス生成手段が生成したレイヤＴ−１に対応するアドレスを、レイヤＴ−１に対応する前記分散メモリ手段のメモリ装置のアドレスに入力して、前記アドレス入力手段により、レイヤ１からレイヤＴ若しくはレイヤＴ−１に対応する前記分散メモリ手段のメモリ装置の情報を同時に選択する第１の比較情報選択手段と、
該第１の比較情報選択手段によって情報が選択された場合は、前記分散メモリ手段のメモリ装置から選択された全ての情報を読み出して、挿入する情報と各々比較し、読み出した情報より、該挿入する情報の優先度が高ければ高優先、さもなければ低優先、或いは読み出した情報より、該挿入する情報の優先度が高いか等しければ高優先、さもなければ低優先とし、
比較の結果、レイヤＵから読み出した情報より、該挿入する情報が低優先となる場合であって、且つ、レイヤＵ＋１から読み出した情報より、該挿入する情報が高優先となる、若しくはレイヤＵ＋１に対応する前記分散メモリ手段のメモリ装置の情報が選択されていない、若しくはレイヤＵがレイヤＮ−１となる場合、レイヤ１から読み出した情報を、レイヤ０に対応する前記分散メモリ手段のメモリ装置の情報に書き込み、（Ｕ≧２）の場合はレイヤ２からレイヤＵまでのレイヤから読み出した情報を、該第１の比較情報選択手段によって選択されたレイヤ１からレイヤＵ−１に対応する前記分散メモリ手段のメモリ装置の情報に各々書き込み、且つ、該第１の比較情報選択手段によって選択されたレイヤＵに対応する前記分散メモリ手段のメモリ装置の情報に、該挿入する情報を書き込み、
比較の結果、レイヤ１から読み出した情報より、該挿入する情報が高優先となる場合、若しくは該第１の比較情報選択手段によって情報が選択されなかった場合は、レイヤ０に対応する前記分散メモリ手段のメモリ装置の情報に、該挿入する情報を書き込む第１の情報移動手段と
を備えて構成したことを特徴とするヒープ構造の情報を記憶する装置。
【請求項６】
請求項１から４のいずれか一項に記載の２分木構造の情報を記憶する装置に記憶される情報がヒープ構造であるヒープ構造の情報を記憶する装置、若しくは請求項５に記載のヒープ構造の情報を記憶する装置であって、
前記分散メモリ手段に情報を入力する際に、レイヤ０に対応する該分散メモリ手段のメモリ装置に記憶された情報数が１の状態である場合、レイヤ０に対応する前記分散メモリ手段のメモリ装置の情報を選択し、
（１≦Ｑ≦Ｎ−１）となるレイヤＱに対応する前記分散メモリ手段のメモリ装置に記憶された情報数が２Ｑ未満の状態であり、且つ、レイヤＱ−１に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が２Ｑ−１の状態となる場合、レイヤＱに対応する前記分散メモリ手段のメモリ装置のアドレスに、レイヤＱに対応する前記分散メモリ手段のメモリ装置に記憶された情報数の値を入力して、前記アドレス入力手段により、レイヤ１からレイヤＱに対応する前記分散メモリ手段のメモリ装置の情報を同時に選択する第２の比較情報選択手段と、
該第２の比較情報選択手段によって情報が選択された場合は、レイヤ０からレイヤＱ−１までの前記分散メモリ手段のメモリ装置から選択された情報を読み出して、入力する情報と各々比較し、読み出した情報より該入力する情報の優先度が高ければ高優先、さもなければ低優先、或いは読み出した情報より該入力する情報の優先度が高いか等しければ高優先、さもなければ低優先とし、
比較の結果、レイヤＲから読み出した情報より該入力する情報が高優先となる場合であって、且つ、レイヤＲ−１から読み出した情報より該入力する情報が低優先となる、若しくはレイヤＲがレイヤ０となる場合、レイヤＲからレイヤＱ−１までのレイヤから読み出した情報を、該第２の比較情報選択手段によって選択されたレイヤＲ＋１からレイヤＱに対応する前記分散メモリ手段のメモリ装置の情報に各々書き込み、且つ、該第２の比較情報選択手段によって選択されたレイヤＲに対応する前記分散メモリ手段のメモリ装置の情報に、該入力する情報を書き込み、
比較の結果、レイヤＱ−１から読み出した情報より該入力する情報が低優先となる場合、該第２の比較情報選択手段によって選択されたレイヤＱに対応する前記分散メモリ手段のメモリ装置の情報に、該入力する情報を書き込み、
該第２の比較情報選択手段によって情報が選択されなかった場合は、レイヤ０に対応する前記分散メモリ手段のメモリ装置の情報に、該入力する情報を書き込む第２の情報移動手段と
を備えて構成したことを特徴とするヒープ構造の情報を記憶する装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、２分木構造の情報を記憶する装置及びヒープ構造の情報を記憶する装置に関し、特に、ヒープによるソータの並列処理による実現に係わる、２分木構造の情報を記憶する装置及びヒープ構造の情報を記憶する装置に関する。
【背景技術】
【０００２】
従来、通信の分野で通信品質制御のために広く使用されている各種のキューイング（待ち行列）システムは、通信回線の高速化への対応やキュー数の増大への対応等のスケーラビリティの向上のために、高速且つ、大容量のソータを必要としている。ここで言う、ソータとは、優先度が付与された情報の中から、最も優先度が高い情報を特定する装置のことで、スケジューリング、符号化、配置配線、数値計算等の幅広い情報処理分野で使用されている。
【０００３】
図１０は、優先キューの一例を示す説明図である。図１０に示すように、キューイングシステムの中で最も基本的な優先キュー（ｐｒｉｏｒｉｔｙ  ｑｕｅｕｅ）とは、キューに対して優先度が規定され、受信したパケットが対応する優先度に基づいてパケットをキューに分類し、パケットの送信が可能なキューの中から最も優先度が高いキューを選択するサービス規則に基づいたキューイングシステムのことである。
【０００４】
優先キューは、対応する優先度が数レベルであれば実用に供されているが、優先度を数千レベルとした場合や高速回線対応とした場合、パケットの送信が可能なキューの中から最も優先度が高いキューを選択する処理がネックとなる。このため、パケットが送信可能であるか否かを、最も優先度が高いキューから低いキューへ逐次確認した場合、数千レベルの優先度や高速回線に対応可能な速度で処理を行なうことは、困難となる。この解決には、高速、且つ、多数の優先度に対応したソータの実現が必要となる。
【０００５】
図１１は、巡回型キューの一例を示す説明図である。図１１に示すように、巡回（ラウンドロビン）型キューとは、キューに対して環状の順序関係が規定され、受信したパケットに含まれるプロトコル情報等に基づいてパケットをキューに分類し、パケットの送信が可能なキューの中から、直前の送信を行なったキューに最も順序が近いキューを選択するサービス規則に基づいたキューイングシステムのことである。
【０００６】
巡回型キューも、キュー数を数千レベルとした場合や高速回線対応とした場合、パケットの送信が可能なキューの中から、直前の送信を行なったキューに最も順序が近いキューを選択する処理がネックとなる。パケットが送信可能であるか否かを、送信を行なったキューを起点として逐次確認した場合、数千レベルのキュー数や高速回線に対応可能な速度で処理を行なうことは困難となる。キューの順序関係は優先度と見なすことができるため、この間題の解決にも、高速、且つ、多数の優先に対応したソータが必要となる。
【０００７】
図１２は、タグ付け型キューの一例を示す説明図である。図１２に示すように、タグ付け型キューとは、ＷＦＱ（Ｗｅｉｇｈｔｅｄ  Ｆａｉｒ  Ｑｕｅｕｉｎｇ），Ｖｉｒｔｕａｌ  Ｃｌｏｃｋ，Ｊｉｔｔａ−ＥＤＤ（Ｅａｒｌｉｓｔ  Ｄｕｅ  Ｄａｔｅ）等に基づいたキューイングシステムのことである。これらの方式には細部に相違があるものの、受信したパケットに含まれるプロトコル情報等に基づいてパケットをキューに分類し、受信したパケットの送信タイミングを計算し、その値をタグとしてパケットに付与して、キューの先頭のパケットの中から、送信タイミングが最も早いタグを持つパケットを記憶するキューを選択するサービス規則に基づく。
【０００８】
タグ付け型キューも、キュー数を数千レベルとした場合や高速回線対応とした場合、送信タイミングが最も早いタグを持つパケットを記憶するキューを選択する処理が、ネックとなる。キューの先頭のパケットのタグの値を逐次比較した場合、数千レベルのキュー数や高速回線に対応可能な速度で処理を行なうことは困難となる。送信タイミングの値は、優先度と見なすことができるため、この問題の解決にも、高速、且つ、多数の優先度に対応したソータの実現が必要となる。
以上から明らかな通り、キューイングシステムのスケーラビリティの向上には、複数の優先度情報から最も高い優先度を選択するソータを、多数の優先度に対応させ、且つ、高速に実現することが必要となる。
【０００９】
従来の技術では、複数の優先度情報から最も高い優先度を選択するソータは、プライオリティエンコーダによって実現することができる。
図１３は、プライオリティエンコーダの一例を示す説明図である。図１３に示すように、プライオリティエンコーダとは、入力信号に対応する優先度が予め定められ、入力信号によって示される優先度から最も高い優先度の値を出力する、組み合わせ論理回路のことである。
【００１０】
図１３に示すのは、８レベルの優先度入力から、最も高い優先度の値を３ビットにコード化して出力するプライオリティエンコーダの例である。プライオリティエンコーダは、論理的には線形探索のハードウェアによる実装であり、多入力若しくは多段の論理和回路を必要とする。このため、優先度の入力から、最も高い優先度が出力されるまでの時間が優先度数に比例し、実用的に対応可能な優先度数は多くても十数レベルとなる。
多数の優先度への対応を必要とするため、プライオリティエンコーダでは対応が困難となる場合、従来の技術では、２分木（ｂｉｎａｒｙ  ｔｒｅｅ）によるソータが多く用いられる。
【００１１】
図１４は、２分木によるソータのハードウェアによる実現例を示す説明図である。図１４に示すように、２分木によるソータとは、２分木の最も低いレイヤ（図では最も下の階層）のノードに優先度情報を配置し、それ以外のレイヤのノードには比較器を配置する。そして、比較器は、下のレイヤから優先度情報を入力し、優先度が高い方の優先度情報を上のレイヤに出力する。結果として、最も高いレイヤのノードに配置された比較器の出力は、最も高い優先度となる。図１４に示した優先度情報は、値が低い程、優先度が高いものとして記載してある。
【００１２】
２分木によるソータでは、優先度情報が入力されてから最も高い優先度情報が出力されるまでの時間は、（ｌｏｇ２  ２分木のノード数）に比例する。このため、２分木によるソータは、プライオリティエンコーダと比較して、多数の優先度に対応することが可能であり、実用的に対応可能な優先度数は数千、キューイングシステムに適用した場合の対応可能な通信速度は、数百Ｍ〜１Ｇｂｐｓ程度となる。しかし、現在、通信速度が１０Ｇ〜４０Ｇｂｐｓの回線が実用に供されており、更に、高速なソータが必要とされている。
【００１３】
アルゴリズムの高速化には、並列処理による高速化とパイプライン処理による高速化がある。並列処理による高速化とは、アルゴリズムを構成する各種の処理の内、実行順序に依存しない処理、即ち、同時に実行可能な処理を物理的に同時に実行することにより、アルゴリズムの実行時間の短縮を図る方法である。従って、アルゴリズムの並列処理化が可能か否かは、対象とするアルゴリズムに依存する。アルゴリズムを構成する処理が逐次処理、即ち、処理が実行順序に依存し、同時に実行可能な処理が存在しない場合は、並列処理化することはできない。
２分木によるソータは、優先度情報の比較を下位のレイヤから上位のレイヤに逐次実行する必要があるため、並列処理によって高速化することは論理的に不可能である。
【００１４】
パイプライン処理による高速化とは、アルゴリズムを構成する処理を幾つかの段階に分割して、各段階の処理を独立に動作させることにより、単位時間当たりの見掛けの処理能力を向上させる方法である。パイプライン処理では、アルゴリズムの実行時間は短縮されないことに注意する必要がある。アルゴリズムのパイプライン化が可能か否かは、対象とするアルゴリズムに依存する。パイプライン処理では、分割された各段階の処理が独立に実行できる必要がある。
従って、アルゴリズムを独立に動作可能な幾つかの段階に分割できない場合、例えば、アルゴリズムの初期段階で参照される変数が、アルゴリズムの最終段階で更新されている場合等は、パイプライン化することはできない。
【００１５】
２分木によるソータは、優先度情報の比較を下位のレイヤから上位のレイヤに逐次実行する必要があるため、レイヤ単位に処理を分割して独立に動作させた場合、下位のレイヤの比較結果が上位のレイヤに伝播して、最も高い優先度情報が出力されるまでの間に、更に高い優先度情報が入力される可能性がある。即ち、この場合は、最上位のレイヤの比較器が優先度情報を識別した時点では、その優先度情報が最も高い優先度であるとは限らない。このため、２分木によるソータは、パイプライン化により処理能力の向上を図ることはできない。
【００１６】
ところで、２分木によるソータをソフトウェアで実現した場合、２分木によるソータのハードウェアによる実現例（図１４参照）における比較器の代わりに、優先度が高い方の優先度情報が比較結果として配置される。このため、２分木によるソータをソフトウェアで実現した場合は、対応する優先度情報数の約２倍のメモリが必要となる問題点がある。
この間題点を解決し、対応する優先度情報数のメモリでソータを実現する方法として、非特許文献１に、ヒープによるソータが開示されている。ヒープは、２分木によるデータ構造の一種であるヒープ構造と、これに優先度情報を入出力するアルゴリズムから構成される。
【００１７】
図１５は、ヒープ構造の一例を示す説明図である。図１５において、丸は優先度情報を示し、リンクは優先度情報間の上下関係を示す。優先度情報は、値が低いほど優先度が高いものとして記載してある。ある優先度情報の上の優先度情報を「親」、下の優先度情報を「子」と呼ぶ。
【００１８】
図１６は、ヒープ構造における優先度情報の親子関係を示す説明図である。図１６に示すように、１つの優先度情報は、最大２優先度情報を子とすることができる。ヒープ構造では、優先度情報が子を持つ場合、その優先度情報は、子の優先度以上となるように優先度情報を配置する。従って、最上位の優先度情報が最も高い優先度となる。ある優先度情報が２つの子を持つ場合、子の間には優先度の大小関係は特に規定されないことに注意する必要がある。また、同じ優先度の情報が、必ずしも同じレイヤに位置するわけではないことに注意する必要がある。ヒープ構造には多数の実現方法があるが、配列で実現する場合、優先度情報はアドレスで識別される。
【００１９】
図１７は、配列で実現したヒープ構造の一例を示す説明図である。図１７に示すように、最上位の優先度情報のアドレスを１とし、以下、上位レイヤから下位レイヤに、左側の優先度情報から右側にアドレスを順次割り当てる。その結果、配列によるヒープ構造の実現では、優先度情報は、低位アドレスから上位アドレスに向けて左詰めで配置される。図１７において、アドレス１の優先度情報を最も左の優先度情報、アドレス１２の優先度情報を最も右の優先度情報、アドレス１３を最も左の空き情報、アドレス１５を最も右の空き情報と呼ぶ。
配列によるヒープ構造に優先度情報を入力する挿入処理、ヒープ構造から最も優先度が高い優先度情報を出力する削除処理は、配列によるヒープ構造において、親の優先度情報が子の優先度以上となる関係、及び優先度情報が左詰めで配置される関係を保つように、優先度情報を再配置する。
【００２０】
ヒープ構造に優先度情報を挿入する際のアルゴリズムは、入力する優先度情報の適切な挿入アドレスを探索することによって実現される。優先度情報を挿入する際のアルゴリズムを以下に示す。
（ａ）挿入位置の初期値を、最も左の空き情報とする。
（ｂ）入力する優先度情報の優先度が、挿入位置の親の優先度以下の場合、若しくは挿入位置が最上位の優先度情報となる場合、入力する優先度情報を挿入位置に移動して停止。（ｃ）入力する優先度情報の優先度が、挿入位置の親の優先度より高い場合、挿入位置の親の優先度情報を挿入位置へ移動し、次の挿入位置を（移動前の）親の位置とする。
（ｄ）停止するまで（ｂ），（ｃ）を繰り返す。
図１８は、図１７に示したヒープ構造に優先度７の情報を挿入する場合のアルゴリズムの例を示す説明図であり、図１９は、図１８において情報を挿入した後のヒープ構造を示す説明図である。
【００２１】
ヒープ構造から最も優先度が高い優先度情報を削除する際のアルゴリズムは、最上位の優先度情報を削除し、最も右の優先度情報の適切な挿入アドレスを探索することによって実現される。優先度情報を削除する際のアルゴリズムを以下に示す。
（ａ）最上位の優先度情報を削除して出力し、その結果、ヒープ構造に記憶された優先度情報数が０となる場合、停止。
（ｂ）最も右の優先度情報を削除して、挿入する優先度情報とする。
（ｃ）挿入位置の初期値を、最上位の優先度情報とする。
（ｄ）挿入する優先度情報の優先度が、挿入位置の全ての子の優先度以上の場合、若しくは挿入位置の優先度情報が子を持たない場合、挿入する優先度情報を挿入位置に移動して停止。
（ｅ）挿入する優先度情報の優先度が、少なくとも１つの子の優先度より低い場合、（子が２つある場合は優先度が高い方の）子を挿入位置に移動し、次の挿入位置を（移動前の）子の位置とする。
（ｆ）停止するまで（ｄ），（ｅ）を繰り返す。
【００２２】
図２０は、図１７に示したヒープ構造から最も優先度が高い情報を削除するアルゴリズムの例を示す説明図であり、図２１は、図２０において情報を削除した後のヒープ構造を示す説明図である。
先に述べた通り、ヒープによるソータの特徴は、必要となるメモリが２分木によるソータの場合の約半分で済むため、リソースの使用効率が高い点が上げられる。更に、ヒープ構造を配列で実現した場合、優先度情報が低位アドレスから上位アドレスに向けて左詰めで配置されるため、メモリの空き領域の管理が非常に容易となり、高速な動作が可能となる点にある。
【００２３】
２分木によるソータは、その実現方法がハードウェアであれ、或いはソフトウェアであれ、２分木の優先度情報を配置するノード毎に、優先度情報が記憶されているか否かを管理する必要がある。例えば、優先度情報の記憶の値が特定の値（例えば最も高い値）の場合は、優先度情報が記憶されていないと判断したり、優先度情報の記憶を構成する特定のビットの値（例えば、最上位ビット）によって、優先度情報が記憶されていないと判断する必要が生じる。
更に、優先度情報が記憶されていないノードを高速に特定するために、優先度情報が記憶されていないノードのアドレスをＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）キュー等で管理する必要が生じる場合がある。このような処理は、多数の優先度数に対応する場合、高速化への大きな妨げとなる。
【００２４】
一方、ヒープ構造を配列で実現した場合は、優先度情報は左詰めで配置されるため、配列メモリの空き領域の管理は、メモリに対して空き領域の開始位置を示すポインタを設定し、ポインタ以降の領域のメモリは空きであるとすれば十分である。このため、ヒープによるソータは、メモリ等のリソースの使用効率が高い点、及びメモリの空き領域の管理が非常に容易な点から、ハードウェアによる実装に適している、
以上述べた、ヒープによるソータが、実用的に対応可能な優先度数は数千、キューイングシステムに適用した場合に対応可能な通信速度は１Ｇｂｐｓ程度となるが、現在、通信速度が１０Ｇ〜４０Ｇｂｐｓの回線が実用に供されており、ヒープによるソータも高速化が必要とされている。
【００２５】
しかし、以上の動作原理に基づくヒープによるソータにおいて、優先度情報を挿入するアルゴリズムと削除するアルゴリズムは、オーバラップして実行することができないため、パイプライン化により処理能力の向上を図ることは論理的に不可能である。何故ならば、優先度情報をヒープ構造に挿入する際の、上位レイヤから下位レイヤヘの優先度情報の移動は、下位のレイヤから上位のレイヤに向けて順次実行されるが、これに対して、優先度情報をヒープ構造から削除する際の、下位レイヤから上位レイヤヘの優先度情報の移動は、上位のレイヤから下位のレイヤに向けて順次実行されるためである。
【００２６】
この間題を解決するために、ヒープによるソータのアルゴリズムを修正して、パイプライン化する方法が、特許文献１、特許文献２及び非特許文献２に開示されている。特許文献１と特許文献２は、論理的には同一の装置を異なる視点から記述したものであるため、以後、特許文献２を参照して説明する。また、非特許文献２には、特許文献２の請求項１から９と、１４から１７に係わる技術が開示されている。
【００２７】
図２２は、特許文献２に記載された、ヒープによるソータから最も高い優先度情報を削除する際のアルゴリズムを示す説明図であり、図２３は、図２２に示したヒープ構造の削除後の状態を示す説明図である。図２２に示すように、特許文献２に記載された、ヒープによるソータから最も高い優先度情報を削除する際のアルゴリズムでは、最初に最上位の優先度情報を削除して出力する。そして、削除した優先度情報の子が存在すれば、優先度が高い方の子を削除して上位レイヤに出力して移動する操作を、上位レイヤから下位レイヤに向けて繰り返す。
【００２８】
図２４は、特許文献２に記載された、ヒープによるソータに優先度情報を挿入する際のアルゴリズムをヒープ構造で示す説明図であり、図２５は、図２４に示したヒープ構造の挿入後の状態を示す説明図である。図２４に示すように、特許文献２に記載された、ヒープによるソータに優先度情報を挿入する際のアルゴリズムでは、最初に入力する優先度情報を最上位の優先度情報と比較し、入力する情報の方の優先度が高ければ、入力する優先度情報を比較した情報の位置に挿入して、比較した優先度情報を下位レイヤに出力し、さもなければ、入力する優先度情報を下位レイヤに出力する。そして、以下のレイヤでは、上位レイヤで比較した優先度情報の子の一方を選択して、上位レイヤから出力された優先度情報と比較し、同様な処理を順次繰り返す。
【００２９】
最上位レイヤ以外のレイヤにおいて、上位レイヤで比較した優先度情報の子の情報から、比較する優先度情報を選択する方法に関しては、基本的に２つの方法が示されている。１つは、ヒープ構造の各ノードに、そのノードの左の子のノードの配下に記憶された優先度情報数と、右の子のノードの配下に記憶された優先度情報数の差分を記憶し、配下に記憶された優先度情報数が少ない方の子を、比較する優先度情報として選択する方法（特許文献２の請求項１０から１３）である。図２４のヒープ構造で示すアルゴリズムは、この方法に基づいて記載されている。
もう１つの方法は、最下位のレイヤにおいて、優先度情報が記憶されていないノードを何らかの方法で選択し、そのノードから最上位のノードに至るまでの優先度情報を、比較する優先度情報として選択する方法（特許文献２の請求項４から９参照）である。
【００３０】
以上から明らかな通り、特許文献２に記載されたヒープによるソータにおける、優先度情報の挿入処理、削除処理は、何れも最上位のレイヤから下位のレイヤに向けてレイヤ毎に順次実行されるため、レイヤ毎に処理をオーバラップさせることによるパイプライン処理によって、単位時間当たりの見かけの処理能力を向上させることが可能である。
【特許文献１】特開平１０−３３６２１５号公報
【特許文献２】特開平１０−３３６２１６号公報
【特許文献３】特開２００４−２３８０９号公報
【非特許文献１】Ｊ．Ｗ．Ｊ  Ｗｉｌｌｉａｍｓ．“Ｈｅａｐｓｏｒｔ，”ＣＡＣＭ，Ｖｏｌ．７，Ｎｏ．６，Ｊｕｎｅ１９６４．
【非特許文献２】Ｔｕａｎ  Ｈａ−ｄｕｏｕｇ，ａｎｄ  Ｓｅｒａｆｉｍ  Ｓｏａｒｅｓ  Ｍｏｒｅｉｒａ，“Ｔｈｅ  ｈｅａｐ−ｓｏｒｔ  ｂａｓｅｄ  ＡＴＭ  ｃｅｌｌｓ  ｓｐａｃｅｒ，”１９９９  ２ｎｄ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  ＡＴＭ，ＩＣＡＴＭ’９９，Ｊｕｎｅ  １９９９．
【発明の開示】
【発明が解決しようとする課題】
【００３１】
しかしながら、特許文献２に記載されたヒープによるソータは、非特許文献１のヒープによるソータのアルゴリズムを修正したため、優先度情報の配置が左詰めでは無くなっている。このため、特許文献２に記載されたヒープによるソータは、２分木によるソータと同様に、ヒープ構造の優先度情報を配置するノード毎に、優先度情報が記憶されているか否かを管理している。具体的には、特許文献２の段落番号０００５に、優先度情報の記憶の値が特定の値（例えば、最も高い値）の場合は、優先度情報が記憶されていないと判断したり、優先度情報の記憶を構成する特定のビットの値（例えば、最上位ビット）によって、優先度情報が記憶されていないと判断する方法が開示されている。
【００３２】
前者の方法は、このソータがタグ付け型キューイングシステムに使用される場合に大きな問題を起こす。先に述べた通り、タグ付け型キューイングシステムは、パケットの送信タイミングをタグとしてパケットに付与する。このため、特定の値がパケットの送信タイミングとして使用できない場合は、送信タイミングの計算の方法をこれに合わせて修正する必要がある。
【００３３】
更に、この送信タイミングは、仮想時間であれ実時間であれ、有限語長の数値で表現される。このため、特許文献３に開示されるように、このキューイングシステムの実装では、時間の経過に伴い、パケットに付与される送信タイミングの値が最大値を越えた場合、初期の値に戻る回り込み現象が発生してしまう。この間題を解決するために、送信タイミングの値の比較や各種のパラメータを、回り込みの発生に応じて修正する必要がある。この際、特定の値が送信タイミングとして使用できないと、回り込みに伴う修正処理が複雑化してしまう問題が生じる。
後者の方法は、優先度情報の１ビットを情報の有無の識別に使用するため、優先度情報が表現可能な数値の範囲が半減して、リソースの使用効率を低下させてしまう問題が生じる。
【００３４】
また、特許文献２に記載されたヒープによるソータの挿入処理において、上位レイヤで比較した優先度情報の子の情報から、比較する優先度情報を選択する方法として、請求項１０から１３に記載した、ヒープ構造の各ノードに、そのノードの左の子のノードの配下に記憶された優先度情報数と、右の子のノードの配下に記憶された優先度情報数の差分を記憶する方法を用いるのは、非現実的である。
この場合、ヒープ構造の最上位以外の各ノードに、記憶した情報数の差分を計数するカウンタを設ける必要があり、ヒープ構造を数千優先度に対応させると、実装に必要なリソース量が莫大なものになってしまう。
【００３５】
また、特許文献２の請求項４から９に記載した、最下位のレイヤにおいて、優先度情報が記憶されていないノードをＦＩＦＯキュー等を用いて選択する方法は、実装に要するリソースを増大させ、高速化への大きな妨げになってしまう。更に、この方法では、特許文献２の請求項５に記載の通り、最下位の優先度情報が記憶されていないノードを挿入処理のために選択した場合、そのノードはその挿入処理が終了するまでは再度選択されてはならない。何故ならば、同一のノードを短時間に立て続けに選択した場合、優先度情報の下位レイヤヘの移動がオーバフローする可能性があるからである。
このため、特許文献２の請求項５に記載の通り、優先度情報が記憶されていないノードは、挿入処理のため選択されているノードとそれ以外のノードに分別して管理しなければならず、更に、実装が複雑化してしまうことが避けられない。
【００３６】
また、先に述べた通り、パイプライン処理は見かけの処理能力を向上させるが、アルゴリズムの実行時間は短縮されない。このため、最下位の優先度情報が記憶されていないノードを挿入処理のために選択した場合、挿入処理が終了するまでの相当の時間、例えば、ヒープ構造を４０９５優先度に対応させた場合、１２レイヤの処理が全て終了するまでは、そのノードを新たな挿入処理のために選択することができない。
このため、特許文献２の段落番号００６４に記載されている通り、ヒープ構造に記憶された優先度情報がほぼ満杯に近い状態では、挿入処理が実行できない場合が生じ、ヒープ構造が完全には使用できないという問題が生じる。
【００３７】
以上から明らかな通り、特許文献２に記載されたヒープによるソータは、パイプライン化を実現するために、非特許文献１に記載されたヒープによるソータのアルゴリズムを修正している。その結果、メモリの空き領域の管理が非常に容易であるという、非特許文献１に記載されたヒープによるソータの大きな特徴が失われ、実現に際して多くのリソースと複雑な処理を必要とすることになり、高速化への大きな妨げになってしまうという問題点がある。
【００３８】
この発明の目的は、非特許文献１に記載された、ヒープによるソータのアルゴリズムを並列化するために必要な２分木構造の情報を記憶する装置を実現し、更に、非特許文献１に記載されたヒープによるソータにおける、メモリ等のリソースの使用効率が高い特徴や、メモリの空き領域の管理が非常に容易な特徴をそのまま生かした並列処理アルゴリズムによって、ヒープによるソータの実行時間を短縮し、少ないリソースで多数の優先度に対応し、且つ、高速なヒープ構造の情報を記憶することができる、２分木構造の情報を記憶する装置及びヒープ構造の情報を記憶する装置を提供することである。
【課題を解決するための手段】
【００３９】
上記目的を達成するため、この発明に係る２分木構造の情報を記憶する装置は、Ｎ個のメモリ装置から構成され、該メモリ装置が各々対応するレイヤをレイヤ０からレイヤＮ−１とする場合、レイヤ０に対応するメモリ装置は、単一の情報を記憶し、（１≦ｉ≦Ｎ−１）となるレイヤｉに対応するメモリ装置は、各々ｉビットのアドレスで情報を識別し、小数点以下を切り捨てた整数値を商とする除算演算子を「／」として、レイヤ１に対応するメモリ装置のアドレス０若しくはアドレス１で識別される情報を第１の情報とし、レイヤ０に対応するメモリ装置の情報を第２の情報とする場合、該第２の情報は該第１の情報の親に、該第１の情報は該第２の情報の子になる第１の関係と、（２≦ｊ≦Ｎ−１）となるレイヤｊに対応するメモリ装置のアドレスＡで識別される情報を第３の情報とし、レイヤｊ−１に対応するメモリ装置のアドレスＡ／２で識別される情報を第４の情報とする場合、該第４の情報は該第３の情報の親に、該第３の情報は該第４の情報の子になる第２の関係に基づいて、２分木構造の情報における親子の対応関係が識別される分散メモリ手段と、（１≦Ｌ≦Ｎ−１）となるレイヤＬに対応する該分散メモリ手段のメモリ装置のアドレスにＢが入力された場合、（１≦ｋ≦Ｌ−１）となるレイヤｋに対応する該分散メモリ手段のメモリ装置のアドレスに、各々、Ｂ／２（Ｌ−ｋ）を入力することによって、レイヤＬに対応する該分散メモリ手段のメモリ装置のアドレスＢの情報から、レイヤ１に対応する該分散メモリ手段のメモリ装置のアドレスＢ／２（Ｌ−１）に至るまでの親子の対応関係にある情報を、同時に選択するアドレス入力手段とを備えて構成したことを特徴としている。
【００４０】
また、この発明に係るヒープ構造の情報を記憶する装置は、請求項３又は４に記載の２分木構造の情報を記憶する装置に記憶される情報がヒープ構造であるヒープ構造の情報を記憶する装置であって、前記分散メモリ手段から情報を出力する際に、レイヤ０に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が１の状態である場合、該レイヤ０に対応する前記分散メモリ手段のメモリ装置に記憶された情報を削除して出力し、その結果、レイヤ０からレイヤＮ−１に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が全て０の状態となる場合、前記分散メモリ手段からの情報の出力を終了し、（１≦Ｓ≦Ｎ−１）となるレイヤＳに対応する前記分散メモリ手段のメモリ装置に記憶された情報数が１以上の状態となる場合であって、且つ、レイヤＳ＋１に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が０の状態となる、若しくはレイヤＳがレイヤＮ−１となる場合、該レイヤＳに対応する前記分散メモリ手段のメモリ装置に記憶された情報数の値をＣとすると、該レイヤＳに対応する前記分散メモリ手段のメモリ装置のアドレスＣ−１の情報を削除して、挿入する情報とする情報出力手段と、該情報出力手段による情報の削除の結果、（１≦Ｔ≦Ｎ−１）となるレイヤＴに対応する前記分散メモリ手段のメモリ装置に記憶された情報数が１以上の状態となる場合であって、且つ、レイヤＴ＋１に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が０の状態となる、若しくはレイヤＴがレイヤＮ−１となる場合、該レイヤＴに対応する前記分散メモリ手段のメモリ装置に記憶された情報数が、前記アドレス生成手段が生成したレイヤＴに対応するアドレスの値より大きければ、前記アドレス生成手段が生成したレイヤＴに対応するアドレスを、該レイヤＴに対応する前記分散メモリ手段のメモリ装置のアドレスに入力し、さもなければ、前記アドレス生成手段が生成したレイヤＴ−１に対応するアドレスを、レイヤＴ−１に対応する前記分散メモリ手段のメモリ装置のアドレスに入力して、前記アドレス入力手段により、レイヤ１からレイヤＴ若しくはレイヤＴ−１に対応する前記分散メモリ手段のメモリ装置の情報を同時に選択する第１の比較情報選択手段と、該第１の比較情報選択手段によって情報が選択された場合は、前記分散メモリ手段のメモリ装置から選択された全ての情報を読み出して、挿入する情報と各々比較し、読み出した情報より、該挿入する情報の優先度が高ければ高優先、さもなければ低優先、或いは読み出した情報より、該挿入する情報の優先度が高いか等しければ高優先、さもなければ低優先とし、比較の結果、レイヤＵから読み出した情報より、該挿入する情報が低優先となる場合であって、且つ、レイヤＵ＋１から読み出した情報より、該挿入する情報が高優先となる、若しくはレイヤＵ＋１に対応する前記分散メモリ手段のメモリ装置の情報が選択されていない、若しくはレイヤＵがレイヤＮ−１となる場合、レイヤ１から読み出した情報を、レイヤ０に対応する前記分散メモリ手段のメモリ装置の情報に書き込み、（Ｕ≧２）の場合はレイヤ２からレイヤＵまでのレイヤから読み出した情報を、該第１の比較情報選択手段によって選択されたレイヤ１からレイヤＵ−１に対応する前記分散メモリ手段のメモリ装置の情報に各々書き込み、且つ、該第１の比較情報選択手段によって選択されたレイヤＵに対応する前記分散メモリ手段のメモリ装置の情報に、該挿入する情報を書き込み、比較の結果、レイヤ１から読み出した情報より、該挿入する情報が高優先となる場合、若しくは該第１の比較情報選択手段によって情報が選択されなかった場合は、レイヤ０に対応する前記分散メモリ手段のメモリ装置の情報に、該挿入する情報を書き込む第１の情報移動手段とを備えて構成したことを特徴としている。
【発明の効果】
【００４１】
この発明によれば、同時に実行可能な処理を物理的に同時に実行する並列処理によって、ヒープによるソータを実現しているため、実行時間が大幅に短縮され、高速化が実現されている。更に、非特許文献１に記載されたヒープによるソータと同様に、メモリ等のリソースの使用効率が高い特徴や、メモリの空き領域の管理が非常に容易な特徴を有する。この結果、非特許文献１に記載された、ヒープによるソータのアルゴリズムを並列化するために必要な２分木構造の情報を記憶する装置を実現し、更に、非特許文献１に記載されたヒープによるソータにおける、メモリ等のリソースの使用効率が高い特徴や、メモリの空き領域の管理が非常に容易な特徴をそのまま生かした並列処理アルゴリズムによって、ヒープによるソータの実行時間を短縮し、少ないリソースで多数の優先度に対応し、且つ、高速なヒープ構造の情報を記憶することができる。
【発明を実施するための最良の形態】
【００４２】
以下、この発明を実施するための最良の形態について図面を参照して説明する。
この発明の一実施の形態に係る２分木構造の情報を記憶する装置は、Ｎ個のメモリ装置から構成され、該メモリ装置が各々対応するレイヤをレイヤ０からレイヤＮ−１とする場合、レイヤ０に対応するメモリ装置は、単一の情報を記憶し、（１≦ｉ≦Ｎ−１）となるレイヤｉに対応するメモリ装置は、各々ｉビットのアドレスで情報を識別し、小数点以下を切り捨てた整数値を商とする除算演算子を「／」として、レイヤ１に対応するメモリ装置のアドレス０若しくはアドレス１で識別される情報を第１の情報とし、レイヤ０に対応するメモリ装置の情報を第２の情報とする場合、該第２の情報は該第１の情報の親に、該第１の情報は該第２の情報の子になる第１の関係と、（２≦ｊ≦Ｎ−１）となるレイヤｊに対応するメモリ装置のアドレスＡで識別される情報を第３の情報とし、レイヤｊ−１に対応するメモリ装置のアドレスＡ／２で識別される情報を第４の情報とする場合、該第４の情報は該第３の情報の親に、該第３の情報は該第４の情報の子になる第２の関係に基づいて、２分木構造の情報における親子の対応関係が識別される分散メモリ手段と、（１≦Ｌ≦Ｎ−１）となるレイヤＬに対応する該分散メモリ手段のメモリ装置のアドレスにＢが入力された場合、（１≦ｋ≦Ｌ−１）となるレイヤｋに対応する該分散メモリ手段のメモリ装置のアドレスに、各々、Ｂ／２（Ｌ−ｋ）を入力することによって、レイヤＬに対応する該分散メモリ手段のメモリ装置のアドレスＢの情報から、レイヤ１に対応する該分散メモリ手段のメモリ装置のアドレスＢ／２（Ｌ−１）に至るまでの親子の対応関係にある情報を、同時に選択するアドレス入力手段とを備えて構成したことを特徴とする。
【００４３】
また、この発明の一実施の形態に係るヒープ構造の情報を記憶する装置は、２分木構造の情報を記憶する装置に記憶される情報がヒープ構造であるヒープ構造の情報を記憶する装置であって、前記分散メモリ手段から情報を出力する際に、レイヤ０に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が１の状態である場合、該レイヤ０に対応する前記分散メモリ手段のメモリ装置に記憶された情報を削除して出力し、その結果、レイヤ０からレイヤＮ−１に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が全て０の状態となる場合、前記分散メモリ手段からの情報の出力を終了し、（１≦Ｓ≦Ｎ−１）となるレイヤＳに対応する前記分散メモリ手段のメモリ装置に記憶された情報数が１以上の状態となる場合であって、且つ、レイヤＳ＋１に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が０の状態となる、若しくはレイヤＳがレイヤＮ−１となる場合、該レイヤＳに対応する前記分散メモリ手段のメモリ装置に記憶された情報数の値をＣとすると、該レイヤＳに対応する前記分散メモリ手段のメモリ装置のアドレスＣ−１の情報を削除して、挿入する情報とする情報出力手段と、該情報出力手段による情報の削除の結果、（１≦Ｔ≦Ｎ−１）となるレイヤＴに対応する前記分散メモリ手段のメモリ装置に記憶された情報数が１以上の状態となる場合であって、且つ、レイヤＴ＋１に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が０の状態となる、若しくはレイヤＴがレイヤＮ−１となる場合、該レイヤＴに対応する前記分散メモリ手段のメモリ装置に記憶された情報数が、前記アドレス生成手段が生成したレイヤＴに対応するアドレスの値より大きければ、前記アドレス生成手段が生成したレイヤＴに対応するアドレスを、該レイヤＴに対応する前記分散メモリ手段のメモリ装置のアドレスに入力し、さもなければ、前記アドレス生成手段が生成したレイヤＴ−１に対応するアドレスを、レイヤＴ−１に対応する前記分散メモリ手段のメモリ装置のアドレスに入力して、前記アドレス入力手段により、レイヤ１からレイヤＴ若しくはレイヤＴ−１に対応する前記分散メモリ手段のメモリ装置の情報を同時に選択する第１の比較情報選択手段と、該第１の比較情報選択手段によって情報が選択された場合は、前記分散メモリ手段のメモリ装置から選択された全ての情報を読み出して、挿入する情報と各々比較し、読み出した情報より、該挿入する情報の優先度が高ければ高優先、さもなければ低優先、或いは読み出した情報より、該挿入する情報の優先度が高いか等しければ高優先、さもなければ低優先とし、比較の結果、レイヤＵから読み出した情報より、該挿入する情報が低優先となる場合であって、且つ、レイヤＵ＋１から読み出した情報より、該挿入する情報が高優先となる、若しくはレイヤＵ＋１に対応する前記分散メモリ手段のメモリ装置の情報が選択されていない、若しくはレイヤＵがレイヤＮ−１となる場合、レイヤ１から読み出した情報を、レイヤ０に対応する前記分散メモリ手段のメモリ装置の情報に書き込み、（Ｕ≧２）の場合はレイヤ２からレイヤＵまでのレイヤから読み出した情報を、該第１の比較情報選択手段によって選択されたレイヤ１からレイヤＵ−１に対応する前記分散メモリ手段のメモリ装置の情報に各々書き込み、且つ、該第１の比較情報選択手段によって選択されたレイヤＵに対応する前記分散メモリ手段のメモリ装置の情報に、該挿入する情報を書き込み、比較の結果、レイヤ１から読み出した情報より、該挿入する情報が高優先となる場合、若しくは該第１の比較情報選択手段によって情報が選択されなかった場合は、レイヤ０に対応する前記分散メモリ手段のメモリ装置の情報に、該挿入する情報を書き込む第１の情報移動手段とを備えて構成したことを特徴とする。
【００４４】
本発明による、ヒープによるソータに優先度情報を挿入する際の並列化されたアルゴリズムの概略を、以下に説明する。
図１は、本発明による、ヒープによるソータに優先度情報を挿入する際の並列化されたアルゴリズムの概要を示し、（ａ）は、挿入位置の決定の説明図、（ｂ）は、挿入位置への移動の説明図である。図１は、図１９に示したヒープ構造に優先度７の情報を挿入する場合の例である。
【００４５】
図１（ａ）に示すように、本発明では、優先度情報を挿入する際に、先ず、最も左の空き情報から最上位の優先度情報に至るまでの親子の関係にある情報を選択し、最も左の空き情報を除く各レイヤの選択された優先度情報と入力する情報を同時に比較して、挿入位置を決定する。次に、図１（ｂ）に示すように、挿入位置以下の選択された優先度情報を、各々下のレイヤに移動し、入力する情報を挿入位置に移動する。
【００４６】
図２は、本発明による、ヒープによるソータから最も高い優先度を削除する際の並列化されたアルゴリズムの概略を示し、（ａ）は、挿入位置の決定の説明図、（ｂ）は、挿入位置への移動の説明図である。図２は、図１９に示したヒープ構造から最も優先度が高い情報を削除する場合の例である。
図２（ａ）に示すように、本発明では、最上位の優先度情報を削除して出力する。削除の結果、ヒープ構造に記憶された優先度情報数が０となる場合、削除処理を終了し、それ以外の場合は、最も右の優先度情報を削除して、挿入する優先度情報に移動する。また、最上位のレイヤの次のレイヤから下位レイヤに向けて優先度情報を選択し、挿入する優先度情報と同時に比較して、挿入位置を決定する。
【００４７】
次に、図２（ｂ）に示すように、挿入位置以上の選択された優先度情報を、各々上のレイヤに移動し、挿入する情報を挿入位置に移動する。挿入する優先度情報と比較される優先度情報の具体的な選択方法は、最上位の次のレイヤでは、優先度情報が２つ存在する場合、優先度の高い方を選択し（優先度が同一の場合は任意に選択する）、優先度情報が１つ存在する場合、その優先度情報を選択し、優先度情報が存在しない場合、選択を終了する。そして、それ以下のレイヤでは、上のレイヤで選択された優先度情報を親とする優先度情報が２つ存在する場合、優先度の高い方を（優先度が同一の場合は任意に）選択し、１つ存在する場合、その優先度情報を選択し、存在しない場合、選択を終了する。
【００４８】
以上の作用から明らかな通り、非特許文献１に記載されたヒープによるソータのアルゴリズムが逐次処理となっているのに対して、本発明は、同時に実行可能な処理を物理的に同時に実行する並列処理によって、ヒープによるソータを実現しているため、実行時間が大幅に短縮され、高速化が実現されている。更に、特許文献１、特許文献２、非特許文献２に記載されたパイプライン処理に基づくヒープによるソータが、メモリの空き領域の管理のため、多くのリソースと複雑な処理とを必要とするのに対して、本発明は、非特許文献１に記載されたヒープによるソータと同様に、メモリ等のリソースの使用効率が高い特徴や、メモリの空き領域の管理が非常に容易な特徴を有するため、少ないリソースで、多数の優先度に対応し、且つ、高速なヒープ構造の情報を記憶する装置を提供できる点が、最も異なる。
【００４９】
図３は、本発明に係る２分木構造の情報を記憶する装置のデータ構造の例を示す説明図である。図３における、本発明に係る２分木構造の情報を記憶する装置のデータ構造は、２分木構造の情報を記憶する装置が４レイヤで構成される例（請求項１及び請求項３に記載した装置に相当）を示し、最上位のレイヤをレイヤ０とし、以下、順次、レイヤ１，レイヤ２とし、最下位のレイヤをレイヤ３としている。
【００５０】
図３に示すように、各レイヤは、情報を記憶するメモリ装置を有し、レイヤｉは２ｉ個の情報を記憶する。情報を記憶するメモリのアドレスは、レイヤ内で最も左の情報を識別するアドレスを０とし、以下、順次、割り当てる。最上位のレイヤのメモリ装置に記憶される情報数は最大１であるため、アドレス入力を有さないメモリ装置で実現しても、アドレス入力の値が０のみとなるメモリ装置で実現しても、論理的には等価であり、本発明の請求項はこれら双方の場合を包含していることは自明である。分散メモリ手段は、これらのメモリ装置によって構成される。
【００５１】
この分散メモリ手段は、２分木構造の情報を記憶する、あるレイヤのメモリ装置のアドレスＡに記憶された情報に対して、その上のレイヤが存在する場合、その上のレイヤのメモリ装置のアドレスＡ／２に親の情報が記憶される。従って、aを偶数とするアドレスa及びa＋１に記憶された情報の親は同一の情報となり、これらの情報はその親の情報の子となる。
【００５２】
また、図３に示すように、最上位以外の各レイヤは、比較結果を記憶するメモリ装置を有しても良く、レイヤｍは、２ｍ−１個の比較結果を記憶する。レイヤ１のメモリ装置に記憶される比較結果数は最大１であるため、アドレス入力を有さないメモリ装置で実現しても、アドレス入力の値が０のみとなるメモリ装置で実現しても、論理的には等価であり、本発明の請求項は、これら双方の場合を包含していることは自明である。比較結果メモリ手段は、これらのメモリ装置によって構成される。
【００５３】
この比較結果メモリ手段は、分散メモリ手段に記憶された２分木構造の情報に対応する。あるレイヤの比較結果メモリ手段のメモリ装置のアドレスＤに記憶された比較結果は、同じレイヤの分散メモリ手段のメモリ装置のアドレス２Ｄと２Ｄ＋１に記憶された情報の比較結果に対応する。
本発明の請求項２及び請求項４に記載の２分木構造の情報を記憶する装置は、各々本発明の請求項１及び請求項３に記載の２分木構造の情報を記憶する装置における、メモリ装置のアドレス入力のビットの上位下位の関係が逆転した装置であり、論理的には等価である。このため、説明は省略する。
【００５４】
図４は、本発明に係る２分木構造の情報を記憶する装置、及びヒープ構造の情報を格納する装置の実施例を示す説明図である。図４では、装置が６レイヤで構成される場合の例を示し、各レイヤは、分散メモリ手段のメモリ装置を有し、最上位以外の各レイヤは、比較結果メモリ手段のメモリ装置を有しても良い。
【００５５】
図４において、ｄａｔａ＿ｉｎ入力は、分散メモリ手段に情報を入力する際に用いられる信号である。ｄａｔａ＿ｏｕｔ出力は、分散メモリ手段から優先度が最も高い情報を出力する際に用いられる信号である。ｃｏｍｐａｒｉｓｏｎ＿ｄａｔａ＿ｂｕｓは、挿入する情報若しくは入力する情報の値を、各レイヤに供給するバスである。ｐｕｓｈ＿ｐｏｐ＿ａｄｄｒｅｓｓ＿ｂｕｓは、挿入する情報若しくは入力する情報の値と比較される情報を選択するアドレスを、レイヤ０以外の各レイヤに供給するバスであり、アドレス入力手段で使用される、ｐｏｐ＿ａｄｄｒｅｓｓ出力は、アドレス生成手段が生成したアドレスを、下のレイヤに示す信号である。
【００５６】
ｅｍｐｔｙ出力は、これを出力するレイヤに対応する分散メモリ手段のメモリ装置に記憶されている情報数が空であることを、上のレイヤに示す信号であり、情報出力手段及び第１の比較情報選択手段で使用される。ｆｕｌｌ出力は、これを出力するレイヤに対応する分散メモリ手段のメモリ装置に記憶されている情報数が満杯であることを、下のレイヤに示す信号であり、第２の比較情報選択手段で使用される。
ｐｏｐ出力は、これを出力するレイヤが情報の移動元であることを上のレイヤに示す信号であり、第１の情報移動手段で使用される。ｐｕｓｈ出力は、これを出力するレイヤが情報の移動元であることを下のレイヤに示す信号であり、第２の情報移動手段で使用される。ｐｏｐ＿ｄａｔａ出力は、移動する情報を上のレイヤに示す信号であり、第１の情報移動手段で使用される。ｐｕｓｈ＿ｄａｔａ出力は、移動する情報を下のレイヤに示す信号であり、第２の情報移動手段で使用される。
【００５７】
非特許文献１のヒープによるソータと同様に、本発明のヒープ構造の情報を記憶する装置の、請求項５に記載の情報出力手段、第１の比較情報選択手段及び第１の情報移動手段、請求項６に記載の第２の比較情報選択手段及び第２の情報移動手段は、何れも親の優先度が子の優先度以上となる関係、及び情報が左詰めで配置される関係を保つように情報を再配置する。即ち、本発明のヒープ構造の情報を記憶する装置の情報は、上位のレイヤから下位のレイヤに、レイヤ内ではアドレス０から順次配置される。
このため、本発明のヒープ構造の情報を記憶する装置において、情報の入出力処理が行なわれていない状態では、あるレイヤの情報数が満杯であれば、それ以上のレイヤの情報数も満杯となる。また、あるレイヤの情報数が空であれば、それ以下のレイヤの情報数も空となる。
【００５８】
従って、最も左の空き情報を有するレイヤでは、情報数が満杯では無く、且つ、その上のレイヤの情報数が満杯となるため、（ｆｕｌｌ出力＝ＦＡＬＳＥ  ＡＮＤ  ｆｕｌｌ入力＝ＴＲＵＥ）が成立する。但し、最上位のレイヤは、（ｆｕｌｌ出力＝ＦＡＬＳＥ）が成立すれば最も左の空き情報を有する。若しくは、最上位のレイヤでは、（ｆｕｌｌ入力＝ＴＲＵＥ）が常に成立すると見なしても良い。本発明の請求項は、何れの場合も包含していることは自明である。また、最下位のレイヤではｆｕｌｌを出力する必要は無いが、最も左の空き情報を有するレイヤであることの判定のために、レイヤ内部でｆｕｌｌ出力に相当する信号を作成する。
【００５９】
また、最も右の情報を有するレイヤでは、情報数が空ではなく、且つ、その下のレイヤの情報数が空となるため、（ｅｍｐｔｙ出力＝ＦＡＬＳＥ  ＡＮＤ  ｅｍｐｔｙ入力＝ＴＲＵＥ）が成立する。但し、最下位のレイヤは（ｅｍｐｔｙ出力＝ＦＡＬＳＥ）が成立すれば最も右の情報を有する。若しくは、最下位のレイヤでは（ｅｍｐｔｙ入力＝ＴＲＵＥ）が常に成立すると見なしても良い。本発明の請求項は、何れの場合も包含していることは自明である。また、最上位のレイヤではｅｍｐｔｙを出力する必要は無いが、最も右の情報を有するレイヤであることの判定のために、レイヤ内部でｅｍｐｔｙ出力に相当する信号を作成する。
【００６０】
本発明の請求項５に記載の第１の比較情報選択手段が、レイヤ１から最も右の情報を有するレイヤ、若しくは、最も右の情報を有するレイヤの上のレイヤまでの、親子関係にある情報を選択した場合、第１の情報移動手段は、選択した情報と挿入する情報を比較して、後者が低優先となる場合、（ｐｏｐ出力＝ＴＲＵＥ）とする。ここで、本発明のヒープ構造の情報を記憶する装置において、情報の入出力処理が行なわれていない状態では、親の優先度は子の優先度以上となる関係にある。このため、あるレイヤの選択された情報と挿入する情報の比較の結果、後者が低優先となる場合、それ以上のレイヤにおいても後者が低優先となる。
【００６１】
従って、挿入する情報の挿入位置となるレイヤは、比較の結果挿入する情報が低優先となるレイヤであって、且つ、その下のレイヤでは比較の結果挿入する情報が高優先となる、若しくは、その下のレイヤでは情報が選択されていないレイヤ、即ち、（ｐｏｐ出力＝ＴＲＵＥ  ＡＮＤ  ｐｏｐ入力＝ＦＡＬＳＥ）となる。但し、最下位のレイヤでは（ｐｏｐ出力＝ＴＲＵＥ）が成立すれば挿入位置となる。若しくは、最下位のレイヤでは（ｐｏｐ入力＝ＦＡＬＳＥ）が常に成立していると見なしても良い。本発明の請求項は何れの場合も包含していることは自明である。また、上のレイヤヘの情報の移動元となるレイヤは（ｐｏｐ出力＝ＴＲＵＥ）となるレイヤ、下のレイヤからの情報の移動先となるレイヤは（ｐｏｐ入力＝ＴＲＵＥ）となるレイヤとなる。
【００６２】
本発明の請求項６に記載の第２の比較情報選択手段が、レイヤ０から最も左の空き情報までの、親子関係にある情報を選択した場合、第２の情報移動手段は、レイヤ０から最も左の空き情報を有するレイヤの上のレイヤまで、即ち、（ｆｕｌｌ出力＝ＴＲＵＥ）が成立するレイヤの選択した情報と、入力する情報を比較し、後者が高優先となる場合（ｐｕｓｈ出力＝ＴＲＵＥ）とする。ここで、本発明のヒープ構造の情報を記憶する装置において、情報の入出力処理が行なわれていない状態では、親の優先度は子の優先度以上となる関係にある。このため、あるレイヤの選択された情報と入力する情報の比較の結果、後者が高優先の場合、それ以下のレイヤにおいても後者が高優先となる。
【００６３】
従って、入力する情報の挿入位置となるレイヤは、（１）比較の結果入力する情報が高優先となるレイヤであって、且つ、その上のレイヤでは比較の結果入力する情報が低優先となるレイヤ、即ち、（ｐｕｓｈ入力＝ＦＡＬＳＥ  ＡＮＤ  ｐｕｓｈ出力＝ＴＲＵＥ）となるレイヤか、（２）最も左の空き情報を有するレイヤであって、且つ、その上のレイヤでは比較の結果入力する情報が低優先度となるレイヤ、即ち、（ｐｕｓｈ入力＝ＦＡＬＳＥ  ＡＮＤ  最も左の空き情報を有するレイヤ）となる。
【００６４】
（１）の場合は、そのレイヤ以下の選択された情報を、各々下のレイヤへ移動する。但し、レイヤ０では、（ｐｕｓｈ出力＝ＴＲＵＥ）若しくは（最も左の空き情報を有するレイヤ）が成立すれば、入力する情報の挿入位置となる。若しくは、レイヤ０では（ｐｕｓｈ入力＝ＦＡＬＳＥ）が常に成立すると見なしても良い。本発明の請求項は何れの場合も包含していることは明白である。また、下のレイヤへの情報の移動元となるレイヤは、（ｐｕｓｈ出力＝ＴＲＵＥ）となるレイヤ、上のレイヤからの情報の移動先となるレイヤは、（ｐｕｓｈ入力＝ＴＲＵＥ）となるレイヤとなる。
なお、第１の情報移動手段及び第２の情報移動手段における選択された情報と、挿入する情報若しくは入力する情報の比較の結果、優先度が等しい場合は、低優先若しくは高優先の何れか一方に分類すればよく、本発明の請求項は何れの場合も包含していることは自明である。
【００６５】
図５は、図４に示した、２分木構造の情報を記憶する装置及びヒープ構造の情報を格納する装置における、分散メモリ手段のメモリ装置、アドレス入力手段、比較結果メモリ手段のメモリ装置、及びアドレス生成手段間の配線例を示す説明図である。図５において、分散メモリ手段のメモリ装置は、請求項１若しくは請求項３に基づくものであり、比較結果メモリ手段のメモリ装置は、比較結果メモリ、と表記してある。
【００６６】
図５に示すように、アドレス入力手段は、各レイヤを接続するｐｕｓｈ＿ｐｏｐ＿ａｄｄｒｅｓｓ＿ｂｕｓで構成され、バスへの入力は、３状態バッファにより、各レイヤの情報数、及び比較結果メモリ手段のメモリ装置の出力を用いたアドレス生成手段から選択される。また、例えば、レイヤ４の分散メモリ手段のメモリ装置のアドレスにＢが入力された場合、レイヤ３の分散メモリ手段のメモリ装置のアドレスにＢ／２が入力され、レイヤ２の分散メモリ手段のメモリ装置のアドレスにＢ／４が入力され、レイヤ１の分散メモリ手段のメモリ装置のアドレスにＢ／８が入力され、レイヤ４からレイヤ１までの親子の対応関係にある情報が同時に選択される。
【００６７】
また、図５に示すように、アドレス生成手段は、各レイヤ間のｐｏｐ＿ａｄｄｒｅｓｓ信号から構成される。図５に示した、比較結果メモリ手段のメモリ装置に記憶される比較結果は、これに対応する分散メモリ手段のメモリ装置に記憶される情報の偶数アドレス側が高優先である場合、若しくは奇数アドレス側に情報が記憶されていない場合は０、奇数アドレス側が高優先である場合、若しくは偶数アドレス側に情報が記憶されていない場合は１、さもなければ０か１、の何れかとする。無論、記憶される比較結果は、他の表現形式で記憶されてもよく、本発明の請求項はそのような場合をも包含していることは自明である。なお、本発明のヒープ構造の情報を記憶する装置では、情報を左詰めで記憶するため、奇数アドレス側に情報が記憶されているが、偶数アドレス側に情報が記憶されていない場合は、存在しない。
【００６８】
図５において、あるレイヤの比較結果メモリ手段のメモリ装置のアドレスに、上位のレイヤからアドレスＥが入力された場合、メモリ装置のデータ出力を、入力されたアドレスの最下位ビットに付与して下位レイヤに出力する。これにより、対応する分散メモリ手段のメモリ装置のアドレス２Ｅの記憶が高優先、若しくは、２Ｅ＋１に情報が記憶されていない場合は、アドレス２Ｅを生成して出力し、アドレス２Ｅ＋１の記憶が高優先の場合は、アドレス２Ｅ＋１を生成して出力し、さもなければ、アドレス２Ｅか２Ｅ＋１を生成して出力する。
【００６９】
また、図５に示すように、あるレイヤが生成するアドレスの最下位ビット以外のビットの値は、上位レイヤで生成されたアドレスの値と同じであるため、各レイヤから、アドレス生成手段が生成したアドレスの最下位ビットがｐｕｓｈ＿ｐｏｐ＿ａｄｄｒｅｓｓに入力されている。このため、あるレイヤが生成したアドレスの値を、ｐｕｓｈ＿ｐｏｐ＿ａｄｄｒｅｓｓ＿ｂｕｓに入力する場合は、３状態バッファにより、そのレイヤ以上の各レイヤが生成したアドレスの最下位ビットを、図５に示すように入力すれば良い。
無論、３状態バッファを介して、各レイヤが生成したアドレスの値を、各々ｐｕｓｈ＿ｐｏｐ＿ａｄｄｒｅｓｓ＿ｂｕｓに接続し、あるレイヤが生成したアドレスの値を、ｐｕｓｈ＿ｐｏｐ＿ａｄｄｒｅｓｓ＿ｂｕｓに入力する場合は、そのレイヤの３状態バッファによって信号を入力しても良く、本発明の請求項は、何れの実施方法をも包含していることは自明である。
【００７０】
図６は、図５に示した、ｐｕｓｈ＿ｐｏｐ＿ａｄｄｒｅｓｓ＿ｂｕｓの入出力、分散メモリ手段のメモリ装置のアドレス入力、各レイヤの優先度情報数、比較結果メモリのアドレス入力とデータ出力の論理的な対応関係の例を示す説明図である。ここで、ｐｕｓｈ＿ｐｏｐ＿ａｄｄｒｅｓｓ＿ｂｕｓからの入出力の０から４のビットは、バスとの対応関係を示すビットである。
図６に示すように、バスのビット４は、レイヤ１の分散メモリ手段のメモリ装置のアドレス入力Ａ０、レイヤ２のＡ１、レイヤ３のＡ２、レイヤ４のＡ３、レイヤ５のＡ４に入力され、バスの他のビットも、入力される。
【００７１】
本発明の２分木構造の情報を記憶する装置では、各レイヤの分散メモリ手段のメモリ装置が記憶する情報数の値が必要となる。図６において、情報数のビット０は最下位ビットを示す。各レイヤの情報数の値は、図６に示すように、レイヤ毎に記憶しても良い。また、２分木構造の情報を記憶する装置全体の情報数を記憶して、これから各レイヤの情報数を生成しても良く、本発明の請求項は、何れの場合をも包含していることは自明である。
図６に示すように、バスのビット４には、レイヤ１の情報数のビット０、レイヤ２の情報数のビット１、レイヤ３の情報数のビット２、レイヤ４の情報数のビット３、レイヤ５の情報数のビット４が、３状態バッファを介して接続され、バスの他のビットも、接続される。
【００７２】
図５に示すように、各レイヤの情報数をレイヤ毎に記憶した場合、レイヤｉに記憶できる情報数は、０から２ｉとなるため、これを識別するために情報数の記憶には、ｉ＋１ビットの語長が必要となる。但し、本発明の２分木構造の情報を記憶する装置では、情報数が満杯、即ち、情報数が２ｉとなるレイヤｉから、アドレス入力手段に情報数を入力することは有り得ないため、図５及び図６に示すように、各レイヤの情報数の最上位ビットを除くビットを、ｐｕｓｈ＿ｐｏｐ＿ａｄｄｒｅｓｓ＿ｂｕｓに、３状態バッファを介して接続し、アドレス入力手段に出力する情報数の値を選択する。
また、図６に示すように、バスのビット４には、レイヤ１の比較結果メモリ手段のメモリ装置の出力が、３状態バッファを介して接続され、この出力は、同時に、レイヤ２のＡ０、レイヤ３のＡ１、レイヤ４のＡ２、レイヤ５のＡ３に入力され、他のバスのビットも、接続される。
【００７３】
先に述べた通り、本発明の請求項２及び請求項４に記載の２分木構造の情報を記憶する装置は、各々、本発明の請求項１及び請求項３に記載の２分木構造の情報を記憶する装置における、メモリ装置のアドレス入力のビットの上位下位の関係が逆転した装置であり、論理的には等価である。この場合のｐｕｓｈ＿ｐｏｐ＿ａｄｄｒｅｓｓ＿ｂｕｓの入出力、分散メモリ装置のアドレス入力、各レイヤの情報数、比較結果メモリのアドレス入力とデータ出力の論理的な対応関係を、図７に示す。
図７は、ｐｕｓｈ＿ｐｏｐ＿ａｄｄｒｅｓｓ＿ｂｕｓの入出力、分散メモリ装置のアドレス入力、各レイヤの優先度情報数、比較結果メモリのアドレス入力とデータ出力の論理関係が異なる例を示す説明図である。なお、図７に示す関係は、図６に示した関係と論理的には等価であるため、説明は省略する。
【００７４】
分散メモリ手段のメモリ装置に記憶された情報を更新した際、比較結果メモリ手段のメモリ装置の比較結果も更新する。これは、分散メモリ手段のメモリ装置に記憶された情報を更新した際に、更新した情報の親の情報が子を２つ有する場合、更新した情報では無い方の子の情報をメモリ装置から読み出して比較し、結果を、対応する比較結果メモリ手段のメモリ装置に書き込めばよい。分散メモリ装置のメモリ装置から比較する情報を読み出すアドレスは、更新した情報のアドレスの最下位ビットを反転させたアドレス（請求項３の記載参照）か、最上位ビットを反転させたアドレス（請求項４の記載参照）となる。
【００７５】
図５に示した配線例には、比較結果メモリの更新に用いるアドレス入力は、煩雑となるため記載されていない。これは、図５に示した比較結果メモリのアドレス入力にセレクタを加えて、アドレス入力信号を選択しても良く、デュアルポートメモリを使用して、更新の際のアドレスを別ポートから入力しても良く、本発明の請求項は、これらの例に限定されるものではないことは自明である。
【００７６】
本発明の請求項５に記載の、ヒープ構造の情報を記憶する装置の分散メモリ手段から情報を出力する際の動作を説明する。情報出力手段は、レイヤ０の分散メモリ手段のメモリ装置に記憶された情報数が１の場合、記憶されている情報を削除してｄａｔａ＿ｏｕｔから出力する。その結果、レイヤ０からレイヤＮ−１の分散メモリ手段のメモリ装置に記憶された情報数が全て０の状態となる場合、即ち、レイヤ０において（ｅｍｐｔｙ入力＝ＴＲＵＥ）となる場合、情報の出力を終了し、さもなければ、最も右の情報を有するレイヤの分散メモリ手段のメモリ装置の情報から、最も右の情報を削除してｃｏｍｐａｒｉｓｏｎ＿ｄａｔａ＿ｂｕｓに出力し、挿入する情報として各レイヤにブロードキャストする。
【００７７】
なお、最も右の情報の削除には、分散メモリ手段のメモリ装置からの情報の読み出しを伴っている必要は必ずしもなく、分散メモリ手段のメモリ装置に情報を書き込む際に、最も右の情報を予めレジスタ等にキャッシュしておいて、ｃｏｍｐａｒｉｓｏｎ＿ｄａｔａ＿ｂｕｓへの出力はキャッシュから行なっても良く、本発明の請求項は、このような場合をも包含していることは自明である。
【００７８】
図８は、図２（ａ）に示した情報の選択方法の詳細を示す説明図である。図８は、最も右の情報を削除した後の状態を示したものであり、レイヤ３の情報数は４となっている。この例では、レイヤ３においてアドレス生成手段が生成するアドレスの値は１（二進表記では００１）となる。図８に示すように、最も右の情報を有するレイヤの情報数は満杯とは限らないことに注意する必要がある。生成されたアドレスの値が、このレイヤの情報数の値より小さい場合は、アドレス生成手段が生成するアドレスには有効な情報が記憶されている。従って、挿入する情報と比較される情報を有するレイヤは、レイヤ１から最も右の情報を有するレイヤまでとなる。
【００７９】
しかし、生成されたアドレスの値が、このレイヤの情報数の値以上となる場合は、図８から明らかな通り、アドレス生成手段が生成するアドレスには有効な情報が記憶されていない。従って、挿入する情報と比較される情報を有するレイヤは、レイヤ１から最も右の情報を有するレイヤの上のレイヤまでとなる（なお、最も右の情報を有するレイヤがレイヤ１となる場合、レイヤ１の情報数は、レイヤ１のアドレス生成手段が生成するアドレスの値より必ず大きくなる）。
【００８０】
即ち、第１の比較情報選択手段は、情報出力手段が情報を削除した結果、最も右の情報を有するレイヤの分散メモリ手段のメモリ装置に記憶された情報数が、そのレイヤのアドレス生成手段が生成したアドレスの値より大きい場合は、このレイヤの分散メモリ手段のメモリ装置のアドレスに、このアドレスの値を入力する。さもなければ、このレイヤの上のレイヤの分散メモリ手段のメモリ装置のアドレスに、そのレイヤのアドレス生成手段が生成したアドレスの値を入力する。
【００８１】
これにより、レイヤ１から最も右の情報を有するレイヤ、若しくは最も右の情報を有するレイヤの上のレイヤまでの親子の関係にある情報を選択する。この処理は一見複雑であるが、図５に示した配線例の場合、優先度情報数が満杯のレイヤでは、比較結果メモリの出力をｐｕｓｈ＿ｐｏｐ＿ａｄｄｒｅｓｓ＿ｂｕｓに出力し、最も右の情報を有するレイヤにおいて比較結果メモリの出力の可否を判断することで、容易に実現できる。
【００８２】
前に述べた通り、第１の比較情報選択手段が情報を選択した場合、第１の情報移動手段は、レイヤ１から最も右の情報を有するレイヤ、若しくは最も右の情報を有するレイヤの上のレイヤまでの、選択した情報を読み出して、ｐｏｐ＿ｄａｔａに各々出力すると共に挿入する情報と比較し、後者が低優先となる場合、（ｐｏｐ出力＝ＴＲＵＥ）とし、情報の移動元となることを上のレイヤに示す。
【００８３】
これに基づいて、（ｐｏｐ入力＝ＴＲＵＥ）となるレイヤは、ｐｏｐ＿ｄａｔａから情報を入力して、これを選択した情報、若しくはレイヤ０の分散メモリ手段のメモリ装置に書き込む。また、挿入する情報の挿入位置となるレイヤの選択した情報に、挿入する情報を書き込む。レイヤ１から読み出した情報より、挿入する情報が高優先となる場合、若しくは第１の比較情報選択手段が情報を選択しなかった場合、第１の情報移動手段は、レイヤ０の分散メモリ手段のメモリ装置の情報に、挿入する情報を書き込む。
【００８４】
本発明の請求項６に記載の、ヒープ構造の情報を記憶する装置の分散メモリ手段に情報を入力する際の動作を説明する。
図９は、図１（ａ）に示した情報の選択方法の詳細を示す説明図である。図９に示すように、最も左の空き情報を有するレイヤＱ（図９の例ではレイヤ３）では、このレイヤの情報数が満杯であることはあり得ないため、このレイヤの情報数の下位Ｑビットは、このレイヤの分散メモリ手段のメモリ装置の最も左の空き情報のメモリのアドレスとなる。
【００８５】
従って、このレイヤの分散メモリ手段のメモリ装置のアドレスに、この値を入力して、レイヤＱの最も左の空き情報から、レイヤ１の情報の親子の関係にある情報を選択し、更に、レイヤ０の情報も親の情報となるため選択する。但し、最も左の空き情報を有するレイヤが、レイヤ０となる場合、即ち、装置に記憶された情報が空の場合は、入力する情報の挿入位置はレイヤ０となり、入力する情報との比較を行なう情報は無いため、情報の選択は行なわない。
【００８６】
即ち、第２の比較情報選択手段は、分散メモリ手段に情報を入力する際に、入力する情報をｄａｔａ＿ｉｎから、ｃｏｍｐａｒｉｓｏｎ＿ｄａｔａ＿ｂｕｓに出力して、各レイヤにブロードキャストする。また、レイヤ０の分散メモリ手段のメモリ装置に記憶された情報数が１の場合は、その情報を選択し、レイヤ０以外の最も左の空き情報を有するレイヤが存在すれば、そのレイヤに記憶された情報数の値を、分散メモリ手段のメモリ装置のアドレスに入力して、アドレス入力手段によってレイヤ１から最も左の空き情報を有するレイヤまでの情報を選択する。
【００８７】
前に述べた通り、第２の比較情報選択手段が情報を選択した場合、第２の情報移動手段は、レイヤ０から最も左の空き情報を有するレイヤの上のレイヤまで、即ち、（ｆｕｌｌ出力＝ＴＲＵＥ）が成立するレイヤの選択した情報を読み出して、ｐｕｓｈ＿ｄａｔａに各々出力すると共に入力する情報と比較し、後者が高優先となる場合、（ｐｕｓｈ出力＝ＴＲＵＥ）とし、情報の移動元となることを下のレイヤに示す。これに基づいて、（ｐｕｓｈ入力＝ＴＲＵＥ）となるレイヤは、ｐｕｓｈ＿ｄａｔａから情報を入力して、これを選択した情報に書き込む。
また、入力する情報の挿入位置となるレイヤの選択した情報に、入力する情報を書き込む。第２の比較情報選択手段が情報を選択しなかった場合、第２の情報移動手段は、レイヤ０の分散メモリ手段のメモリ装置の情報に、入力する情報を書き込む。
【００８８】
以上から明らかな通り、本発明は、従来のヒープによるソータのアルゴリズムを並列化するために必要な２分木構造の情報を記憶する装置を提供し、更に、従来のヒープによるソータにおける、メモリ等のリソースの使用効率が高い特徴や、メモリの空き領域の管理が非常に容易な特徴をそのまま生かした、並列処理アルゴリズムに基づくヒープ構造の情報を記憶する装置を提供することによって、実行時間が短く、少ないリソースで、多数の優先度に対応し、且つ、高速なヒープによるソータを実現することができる。
【００８９】
なお、本発明の請求項に記載された各種の論理関係に対して、例えば、メモリ装置が対応するレイヤをレイヤ１からレイヤＮとする、メモリ装置の開始アドレスを１とする等の、加算・減算・乗算・除算・論理値の反転・上位下位ビットの反転等、或いはこれらの任意の組み合わせを施して得られる、本発明と本質的に同一の論理関係に基づく装置は、全て本発明に含まれることは自明である。
以上、本発明を、実施の形態に基づき具体的に説明したが、本発明は、上述した実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは勿論である。
【００９０】
このように、この発明に係る２分木構造の情報を記憶する装置によれば、Ｎ個のメモリ装置から構成され、該メモリ装置が各々対応するレイヤをレイヤ０からレイヤＮ−１とする場合、レイヤ０に対応するメモリ装置は、単一の情報を記憶し、（１≦ｉ≦Ｎ−１）となるレイヤｉに対応するメモリ装置は、各々ｉビットのアドレスで情報を識別し、小数点以下を切り捨てた整数値を商とする除算演算子を「／」として、レイヤ１に対応するメモリ装置のアドレス０若しくはアドレス１で識別される情報を第１の情報とし、レイヤ０に対応するメモリ装置の情報を第２の情報とする場合、該第２の情報は該第１の情報の親に、該第１の情報は該第２の情報の子になる第１の関係と、（２≦ｊ≦Ｎ−１）となるレイヤｊに対応するメモリ装置のアドレスＡで識別される情報を第３の情報とし、レイヤｊ−１に対応するメモリ装置のアドレスＡ／２で識別される情報を第４の情報とする場合、該第４の情報は該第３の情報の親に、該第３の情報は該第４の情報の子になる第２の関係に基づいて、２分木構造の情報における親子の対応関係が識別される分散メモリ手段と、（１≦Ｌ≦Ｎ−１）となるレイヤＬに対応する該分散メモリ手段のメモリ装置のアドレスにＢが入力された場合、（１≦ｋ≦Ｌ−１）となるレイヤｋに対応する該分散メモリ手段のメモリ装置のアドレスに、各々、Ｂ／２（Ｌ−ｋ）を入力することによって、レイヤＬに対応する該分散メモリ手段のメモリ装置のアドレスＢの情報から、レイヤ１に対応する該分散メモリ手段のメモリ装置のアドレスＢ／２（Ｌ−１）に至るまでの親子の対応関係にある情報を、同時に選択するアドレス入力手段とを備えて構成したことを特徴としている。
【００９１】
また、Ｎ個のメモリ装置から構成され、該メモリ装置が各々対応するレイヤをレイヤ０からレイヤＮ−１とする場合、レイヤ０に対応するメモリ装置は、単一の情報を記憶し、（１≦ｉ≦Ｎ−１）となるレイヤｉに対応するメモリ装置は、各々ｉビットのアドレスで情報を識別し、整数値の剰余を求める剰余演算子を「％」として、レイヤ１に対応するメモリ装置のアドレス０若しくはアドレス１で識別される情報を第１の情報とし、レイヤ０に対応するメモリ装置の情報を第２の情報とする場合、該第２の情報は該第１の情報の親に、該第１の情報は該第２の情報の子になる第１の関係と、（２≦ｊ≦Ｎ−１）となるレイヤｊに対応するメモリ装置のアドレスＡで識別される情報を第３の情報とし、レイヤｊ−１に対応するメモリ装置のアドレスＡ％２（ｊ−１）で識別される情報を第４の情報とする場合、該第４の情報は該第３の情報の親に、該第３の情報は該第４の情報の子になる第２の関係に基づいて、２分木構造の情報における親子の対応関係が識別される分散メモリ手段と、（１≦Ｌ≦Ｎ−１）となるレイヤＬに対応する、該分散メモリ手段のメモリ装置のアドレスにＢが入力された場合、（１≦ｋ≦Ｌ−１）となるレイヤｋに対応する該分散メモリ手段のメモリ装置のアドレスに、各々Ｂ％２ｋを入力することによって、レイヤＬに対応する該分散メモリ手段のメモリ装置のアドレスＢの情報から、レイヤ１に対応する該分散メモリ手段のメモリ装置のアドレスＢ％２に至るまでの親子の対応関係にある情報を、同時に選択するアドレス入力手段とを備えて構成したことを特徴としている。
【００９２】
また、Ｎ−１個のメモリ装置から構成され、該メモリ装置が各々対応するレイヤをレイヤ１からレイヤＮ−１とする場合、レイヤ１に対応するメモリ装置は、単一の比較結果を記憶し、該比較結果は、レイヤ１に対応する前記分散メモリ手段のメモリ装置のアドレス０及びアドレス１で識別される情報に対応する比較結果となり、（２≦ｍ≦Ｎ−１）となるレイヤｍに対応するメモリ装置は、各々ｍ−１ビットのアドレスで比較結果を識別し、アドレスＤで識別される比較結果は、レイヤｍに対応する前記分散メモリ手段のメモリ装置のアドレス２Ｄ及びアドレス２Ｄ＋１で識別される情報に対応する比較結果となり、前記分散メモリ手段のメモリ装置に記憶された情報が更新された際に、該情報に対応する比較結果が更新される比較結果メモリ手段と、レイヤ１に対応する該比較結果メモリ手段のメモリ装置に記憶された比較結果に基づいて、レイヤ１に対応するアドレスを生成し、レイヤ１に対応する前記分散メモリ手段のメモリ装置のアドレス０で識別される情報が高優先、若しくはアドレス１で識別される情報が存在しない場合は、生成されるアドレスは０となり、レイヤ１に対応する前記分散メモリ手段のメモリ装置のアドレス１で識別される情報が高優先、若しくはアドレス０で識別される情報が存在しない場合は、生成されるアドレスは１となり、さもなければ、生成されるアドレスは０か１の何れかとなり、（２≦ｐ≦Ｎ−１）となるレイヤｐに対応する該比較結果メモリ手段のメモリ装置のアドレスに、各々レイヤｐ−１に対応するアドレスＥｐ−１を入力することによって選択した比較結果に基づいて、レイヤｐに対応するアドレスを各々生成し、レイヤｐに対応する前記分散メモリ手段のメモリ装置のアドレス２Ｅｐ−１で識別される情報が高優先、若しくはアドレス２Ｅｐ−１＋１で識別される情報が存在しない場合は、生成されるアドレスは２Ｅｐ−１となり、レイヤｐに対応する前記分散メモリ手段のメモリ装置のアドレス２Ｅｐ−１＋１で識別される情報が高優先、若しくはアドレス２Ｅｐ−１で識別される情報が存在しない場合は、生成されるアドレスは２Ｅｐ−１＋１となり、さもなければ、生成されるアドレスは２Ｅｐ−１か２Ｅｐ−１＋１の何れかとなるアドレス生成手段とを備えて構成したことを特徴としている。
【００９３】
また、Ｎ−１個のメモリ装置から構成され、該メモリ装置が各々対応するレイヤをレイヤ１からレイヤＮ−１とする場合、レイヤ１に対応するメモリ装置は単一の比較結果を記憶し、該比較結果は、レイヤ１に対応する前記分散メモリ手段のメモリ装置のアドレス０及びアドレス１で識別される情報に対応する比較結果となり、（２≦ｍ≦Ｎ−１）となるレイヤｍに対応するメモリ装置は、各々ｍ−１ビットのアドレスで比較結果を識別し、アドレスＤで識別される比較結果は、レイヤｍに対応する前記分散メモリ手段のメモリ装置のアドレスＤ及びアドレスＤ＋２ｍ−１で識別される情報に対応する比較結果となり、前記分散メモリ手段のメモリ装置に記憶された情報が更新された際に、該情報に対応する比較結果が更新される比較結果メモリ手段と、レイヤ１に対応する該比較結果メモリ手段のメモリ装置に記憶された比較結果に基づいて、レイヤ１に対応するアドレスを生成し、レイヤ１に対応する前記分散メモリ手段のメモリ装置のアドレス０で識別される情報が高優先、若しくはアドレス１で識別される情報が存在しない場合は、生成されるアドレスは０となり、レイヤ１に対応する前記分散メモリ手段のメモリ装置のアドレス１で識別される情報が高優先、若しくはアドレス０で識別される情報が存在しない場合は、生成されるアドレスは１となり、さもなければ、生成されるアドレスは０か１の何れかとなり、（２≦ｐ≦Ｎ−１）となるレイヤｐに対応する該比較結果メモリ手段のメモリ装置のアドレスに、各々レイヤｐ−１に対応するアドレスＥｐ−１を入力することによって選択した比較結果に基づいて、レイヤｐに対応するアドレスを各々生成し、レイヤｐに対応する前記分散メモリ手段のメモリ装置のアドレスＥｐ−１で識別される情報が高優先、若しくはアドレスＥｐ−１＋２ｍ−１で識別される情報が存在しない場合は、生成されるアドレスはＥｐ−１となり、レイヤｐに対応する前記分散メモリ手段のメモリ装置のアドレスＥｐ−１＋２ｍ−１で識別される情報が高優先、若しくはアドレスＥｐ−１で識別される情報が存在しない場合は、生成されるアドレスはＥｐ−１＋２ｍ−１となり、さもなければ、生成されるアドレスはＥｐ−１かＥｐ−１＋２ｍ−１の何れかとなるアドレス生成手段とを備えて構成したことを特徴としている。
【００９４】
また、この発明に係るヒープ構造の情報を記憶する装置は、請求項３又は４に記載の２分木構造の情報を記憶する装置に記憶される情報がヒープ構造であるヒープ構造の情報を記憶する装置であって、前記分散メモリ手段から情報を出力する際に、レイヤ０に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が１の状態である場合、該レイヤ０に対応する前記分散メモリ手段のメモリ装置に記憶された情報を削除して出力し、その結果、レイヤ０からレイヤＮ−１に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が全て０の状態となる場合、前記分散メモリ手段からの情報の出力を終了し、（１≦Ｓ≦Ｎ−１）となるレイヤＳに対応する前記分散メモリ手段のメモリ装置に記憶された情報数が１以上の状態となる場合であって、且つ、レイヤＳ＋１に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が０の状態となる、若しくはレイヤＳがレイヤＮ−１となる場合、該レイヤＳに対応する前記分散メモリ手段のメモリ装置に記憶された情報数の値をＣとすると、該レイヤＳに対応する前記分散メモリ手段のメモリ装置のアドレスＣ−１の情報を削除して、挿入する情報とする情報出力手段と、該情報出力手段による情報の削除の結果、（１≦Ｔ≦Ｎ−１）となるレイヤＴに対応する前記分散メモリ手段のメモリ装置に記憶された情報数が１以上の状態となる場合であって、且つ、レイヤＴ＋１に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が０の状態となる、若しくはレイヤＴがレイヤＮ−１となる場合、該レイヤＴに対応する前記分散メモリ手段のメモリ装置に記憶された情報数が、前記アドレス生成手段が生成したレイヤＴに対応するアドレスの値より大きければ、前記アドレス生成手段が生成したレイヤＴに対応するアドレスを、該レイヤＴに対応する前記分散メモリ手段のメモリ装置のアドレスに入力し、さもなければ、前記アドレス生成手段が生成したレイヤＴ−１に対応するアドレスを、レイヤＴ−１に対応する前記分散メモリ手段のメモリ装置のアドレスに入力して、前記アドレス入力手段により、レイヤ１からレイヤＴ若しくはレイヤＴ−１に対応する前記分散メモリ手段のメモリ装置の情報を同時に選択する第１の比較情報選択手段と、該第１の比較情報選択手段によって情報が選択された場合は、前記分散メモリ手段のメモリ装置から選択された全ての情報を読み出して、挿入する情報と各々比較し、読み出した情報より、該挿入する情報の優先度が高ければ高優先、さもなければ低優先、或いは読み出した情報より、該挿入する情報の優先度が高いか等しければ高優先、さもなければ低優先とし、比較の結果、レイヤＵから読み出した情報より、該挿入する情報が低優先となる場合であって、且つ、レイヤＵ＋１から読み出した情報より、該挿入する情報が高優先となる、若しくはレイヤＵ＋１に対応する前記分散メモリ手段のメモリ装置の情報が選択されていない、若しくはレイヤＵがレイヤＮ−１となる場合、レイヤ１から読み出した情報を、レイヤ０に対応する前記分散メモリ手段のメモリ装置の情報に書き込み、（Ｕ≧２）の場合はレイヤ２からレイヤＵまでのレイヤから読み出した情報を、該第１の比較情報選択手段によって選択されたレイヤ１からレイヤＵ−１に対応する前記分散メモリ手段のメモリ装置の情報に各々書き込み、且つ、該第１の比較情報選択手段によって選択されたレイヤＵに対応する前記分散メモリ手段のメモリ装置の情報に、該挿入する情報を書き込み、比較の結果、レイヤ１から読み出した情報より、該挿入する情報が高優先となる場合、若しくは該第１の比較情報選択手段によって情報が選択されなかった場合は、レイヤ０に対応する前記分散メモリ手段のメモリ装置の情報に、該挿入する情報を書き込む第１の情報移動手段とを備えて構成したことを特徴としている。
【００９５】
また、請求項１から４のいずれか一項に記載の２分木構造の情報を記憶する装置に記憶される情報がヒープ構造であるヒープ構造の情報を記憶する装置、若しくは請求項５に記載のヒープ構造の情報を記憶する装置であって、前記分散メモリ手段に情報を入力する際に、レイヤ０に対応する該分散メモリ手段のメモリ装置に記憶された情報数が１の状態である場合、レイヤ０に対応する前記分散メモリ手段のメモリ装置の情報を選択し、（１≦Ｑ≦Ｎ−１）となるレイヤＱに対応する前記分散メモリ手段のメモリ装置に記憶された情報数が２Ｑ未満の状態であり、且つ、レイヤＱ−１に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が２Ｑ−１の状態となる場合、レイヤＱに対応する前記分散メモリ手段のメモリ装置のアドレスに、レイヤＱに対応する前記分散メモリ手段のメモリ装置に記憶された情報数の値を入力して、前記アドレス入力手段により、レイヤ１からレイヤＱに対応する前記分散メモリ手段のメモリ装置の情報を同時に選択する第２の比較情報選択手段と、該第２の比較情報選択手段によって情報が選択された場合は、レイヤ０からレイヤＱ−１までの前記分散メモリ手段のメモリ装置から選択された情報を読み出して、入力する情報と各々比較し、読み出した情報より該入力する情報の優先度が高ければ高優先、さもなければ低優先、或いは読み出した情報より該入力する情報の優先度が高いか等しければ高優先、さもなければ低優先とし、比較の結果、レイヤＲから読み出した情報より該入力する情報が高優先となる場合であって、且つ、レイヤＲ−１から読み出した情報より該入力する情報が低優先となる、若しくはレイヤＲがレイヤ０となる場合、レイヤＲからレイヤＱ−１までのレイヤから読み出した情報を、該第２の比較情報選択手段によって選択されたレイヤＲ＋１からレイヤＱに対応する前記分散メモリ手段のメモリ装置の情報に各々書き込み、且つ、該第２の比較情報選択手段によって選択されたレイヤＲに対応する前記分散メモリ手段のメモリ装置の情報に、該入力する情報を書き込み、比較の結果、レイヤＱ−１から読み出した情報より該入力する情報が低優先となる場合、該第２の比較情報選択手段によって選択されたレイヤＱに対応する前記分散メモリ手段のメモリ装置の情報に、該入力する情報を書き込み、該第２の比較情報選択手段によって情報が選択されなかった場合は、レイヤ０に対応する前記分散メモリ手段のメモリ装置の情報に、該入力する情報を書き込む第２の情報移動手段とを備えて構成したことを特徴としている。
【００９６】
これにより、同時に実行可能な処理を物理的に同時に実行する並列処理によって、ヒープによるソータを実現しているため、実行時間が大幅に短縮され、高速化が実現されている。更に、非特許文献１に記載されたヒープによるソータと同様に、メモリ等のリソースの使用効率が高い特徴や、メモリの空き領域の管理が非常に容易な特徴を有する。この結果、非特許文献１に記載された、ヒープによるソータのアルゴリズムを並列化するために必要な２分木構造の情報を記憶する装置を実現し、更に、非特許文献１に記載されたヒープによるソータにおける、メモリ等のリソースの使用効率が高い特徴や、メモリの空き領域の管理が非常に容易な特徴をそのまま生かした並列処理アルゴリズムによって、ヒープによるソータの実行時間を短縮し、少ないリソースで多数の優先度に対応し、且つ、高速なヒープ構造の情報を記憶することができる。
【図面の簡単な説明】
【００９７】
【図１】本発明による、ヒープによるソータに優先度情報を挿入する際の並列化されたアルゴリズムの概要を示し、（ａ）は、挿入位置の決定の説明図、（ｂ）は、挿入位置への移動の説明図である。
【図２】本発明による、ヒープによるソータから最も高い優先度を削除する際の並列化されたアルゴリズムの概略を示し、（ａ）は、挿入位置の決定の説明図、（ｂ）は、挿入位置への移動の説明図である。
【図３】本発明に係る２分木構造の情報を記憶する装置のデータ構造の例を示す説明図である。
【図４】本発明に係る２分木構造の情報を記憶する装置、及びヒープ構造の情報を格納する装置の実施例を示す説明図である。
【図５】図４に示した、２分木構造の情報を記憶する装置及びヒープ構造の情報を格納する装置における、分散メモリ手段のメモリ装置、アドレス入力手段、比較結果メモリ手段のメモリ装置、及びアドレス生成手段間の配線例を示す説明図である。
【図６】図５に示した、ｐｕｓｈ＿ｐｏｐ＿ａｄｄｒｅｓｓ＿ｂｕｓの入出力、分散メモリ手段のメモリ装置のアドレス入力、各レイヤの優先度情報数、比較結果メモリのアドレス入力とデータ出力の論理的な対応関係の例を示す説明図である。
【図７】ｐｕｓｈ＿ｐｏｐ＿ａｄｄｒｅｓｓ＿ｂｕｓの入出力、分散メモリ装置のアドレス入力、各レイヤの優先度情報数、比較結果メモリのアドレス入力とデータ出力の論理関係が異なる例を示す説明図である。
【図８】図２（ａ）に示した情報の選択方法の詳細を示す説明図である。
【図９】図１（ａ）に示した情報の選択方法の詳細を示す説明図である。
【図１０】優先キューの一例を示す説明図である。
【図１１】巡回型キューの一例を示す説明図である。
【図１２】タグ付け型キューの一例を示す説明図である。
【図１３】プライオリティエンコーダの一例を示す説明図である。
【図１４】２分木によるソータのハードウェアによる実現例を示す説明図である。
【図１５】ヒープ構造の一例を示す説明図である。
【図１６】ヒープ構造における優先度情報の親子関係を示す説明図である。
【図１７】配列で実現したヒープ構造の一例を示す説明図である。
【図１８】図１７に示したヒープ構造に優先度７の情報を挿入する場合のアルゴリズムの例を示す説明図である。
【図１９】図１８において情報を挿入した後のヒープ構造を示す説明図である。
【図２０】図１７に示したヒープ構造から最も優先度が高い情報を削除するアルゴリズムの例を示す説明図である。
【図２１】図２０において情報を削除した後のヒープ構造を示す説明図である。
【図２２】特許文献２に記載された、ヒープによるソータから最も高い優先度情報を削除する際のアルゴリズムを示す説明図である。
【図２３】図２２に示したヒープ構造の削除後の状態を示す説明図である。
【図２４】特許文献２に記載された、ヒープによるソータに優先度情報を挿入する際のアルゴリズムをヒープ構造で示す説明図である。
【図２５】図２４に示したヒープ構造の挿入後の状態を示す説明図である。
【図１】
2007114944.tif 000003
【図２】
2007114944.tif 000004
【図３】
2007114944.tif 000005
【図４】
2007114944.tif 000006
【図５】
2007114944.tif 000007
【図６】
2007114944.tif 000008
【図７】
2007114944.tif 000009
【図８】
2007114944.tif 000010
【図９】
2007114944.tif 000011
【図１０】
2007114944.tif 000012
【図１１】
2007114944.tif 000013
【図１２】
2007114944.tif 000014
【図１３】
2007114944.tif 000015
【図１４】
2007114944.tif 000016
【図１５】
2007114944.tif 000017
【図１６】
2007114944.tif 000018
【図１７】
2007114944.tif 000019
【図１８】
2007114944.tif 000020
【図１９】
2007114944.tif 000021
【図２０】
2007114944.tif 000022
【図２１】
2007114944.tif 000023
【図２２】
2007114944.tif 000024
【図２３】
2007114944.tif 000025
【図２４】
2007114944.tif 000026
【図２５】
2007114944.tif 000027