JP2007114944A - 2分木構造の情報を記憶する装置及びヒープ構造の情報を記憶する装置 - Google Patents

2分木構造の情報を記憶する装置及びヒープ構造の情報を記憶する装置 Download PDF

Info

Publication number
JP2007114944A
JP2007114944A JP2005304336A JP2005304336A JP2007114944A JP 2007114944 A JP2007114944 A JP 2007114944A JP 2005304336 A JP2005304336 A JP 2005304336A JP 2005304336 A JP2005304336 A JP 2005304336A JP 2007114944 A JP2007114944 A JP 2007114944A
Authority
JP
Japan
Prior art keywords
information
layer
address
memory device
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005304336A
Other languages
English (en)
Other versions
JP4391464B2 (ja
Inventor
Muneyoshi Suzuki
宗良 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2005304336A priority Critical patent/JP4391464B2/ja
Publication of JP2007114944A publication Critical patent/JP2007114944A/ja
Application granted granted Critical
Publication of JP4391464B2 publication Critical patent/JP4391464B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】ヒープによるソータの実行時間を短縮し、少ないリソースで多数の優先度に対応し、且つ、高速なヒープ構造の情報を記憶することができる、2分木構造の情報を記憶する装置及びヒープ構造の情報を記憶する装置を提供する。
【解決手段】N個のメモリ装置のレイヤ0に対応する第2の情報は、レイヤ1に対応する第1の情報の親になる第1の関係と、レイヤj−1に対応する第4の情報は、(2≦j≦N−1)となるレイヤjに対応する第3の情報の親になる第2の関係に基づいて、2分木構造の情報における親子の対応関係が識別される分散メモリ手段と、分散メモリ手段のメモリ装置の(1≦L≦N−1)となるレイヤLに対応するアドレス情報から、レイヤ1に対応するアドレスに至るまでの親子の対応関係にある情報を、同時に選択するアドレス入力手段とを備える。
【選択図】図1

Description

この発明は、2分木構造の情報を記憶する装置及びヒープ構造の情報を記憶する装置に関し、特に、ヒープによるソータの並列処理による実現に係わる、2分木構造の情報を記憶する装置及びヒープ構造の情報を記憶する装置に関する。
従来、通信の分野で通信品質制御のために広く使用されている各種のキューイング(待ち行列)システムは、通信回線の高速化への対応やキュー数の増大への対応等のスケーラビリティの向上のために、高速且つ、大容量のソータを必要としている。ここで言う、ソータとは、優先度が付与された情報の中から、最も優先度が高い情報を特定する装置のことで、スケジューリング、符号化、配置配線、数値計算等の幅広い情報処理分野で使用されている。
図10は、優先キューの一例を示す説明図である。図10に示すように、キューイングシステムの中で最も基本的な優先キュー(priority queue)とは、キューに対して優先度が規定され、受信したパケットが対応する優先度に基づいてパケットをキューに分類し、パケットの送信が可能なキューの中から最も優先度が高いキューを選択するサービス規則に基づいたキューイングシステムのことである。
優先キューは、対応する優先度が数レベルであれば実用に供されているが、優先度を数千レベルとした場合や高速回線対応とした場合、パケットの送信が可能なキューの中から最も優先度が高いキューを選択する処理がネックとなる。このため、パケットが送信可能であるか否かを、最も優先度が高いキューから低いキューへ逐次確認した場合、数千レベルの優先度や高速回線に対応可能な速度で処理を行なうことは、困難となる。この解決には、高速、且つ、多数の優先度に対応したソータの実現が必要となる。
図11は、巡回型キューの一例を示す説明図である。図11に示すように、巡回(ラウンドロビン)型キューとは、キューに対して環状の順序関係が規定され、受信したパケットに含まれるプロトコル情報等に基づいてパケットをキューに分類し、パケットの送信が可能なキューの中から、直前の送信を行なったキューに最も順序が近いキューを選択するサービス規則に基づいたキューイングシステムのことである。
巡回型キューも、キュー数を数千レベルとした場合や高速回線対応とした場合、パケットの送信が可能なキューの中から、直前の送信を行なったキューに最も順序が近いキューを選択する処理がネックとなる。パケットが送信可能であるか否かを、送信を行なったキューを起点として逐次確認した場合、数千レベルのキュー数や高速回線に対応可能な速度で処理を行なうことは困難となる。キューの順序関係は優先度と見なすことができるため、この間題の解決にも、高速、且つ、多数の優先に対応したソータが必要となる。
図12は、タグ付け型キューの一例を示す説明図である。図12に示すように、タグ付け型キューとは、WFQ(Weighted Fair Queuing),Virtual Clock,Jitta−EDD(Earlist Due Date)等に基づいたキューイングシステムのことである。これらの方式には細部に相違があるものの、受信したパケットに含まれるプロトコル情報等に基づいてパケットをキューに分類し、受信したパケットの送信タイミングを計算し、その値をタグとしてパケットに付与して、キューの先頭のパケットの中から、送信タイミングが最も早いタグを持つパケットを記憶するキューを選択するサービス規則に基づく。
タグ付け型キューも、キュー数を数千レベルとした場合や高速回線対応とした場合、送信タイミングが最も早いタグを持つパケットを記憶するキューを選択する処理が、ネックとなる。キューの先頭のパケットのタグの値を逐次比較した場合、数千レベルのキュー数や高速回線に対応可能な速度で処理を行なうことは困難となる。送信タイミングの値は、優先度と見なすことができるため、この問題の解決にも、高速、且つ、多数の優先度に対応したソータの実現が必要となる。
以上から明らかな通り、キューイングシステムのスケーラビリティの向上には、複数の優先度情報から最も高い優先度を選択するソータを、多数の優先度に対応させ、且つ、高速に実現することが必要となる。
従来の技術では、複数の優先度情報から最も高い優先度を選択するソータは、プライオリティエンコーダによって実現することができる。
図13は、プライオリティエンコーダの一例を示す説明図である。図13に示すように、プライオリティエンコーダとは、入力信号に対応する優先度が予め定められ、入力信号によって示される優先度から最も高い優先度の値を出力する、組み合わせ論理回路のことである。
図13に示すのは、8レベルの優先度入力から、最も高い優先度の値を3ビットにコード化して出力するプライオリティエンコーダの例である。プライオリティエンコーダは、論理的には線形探索のハードウェアによる実装であり、多入力若しくは多段の論理和回路を必要とする。このため、優先度の入力から、最も高い優先度が出力されるまでの時間が優先度数に比例し、実用的に対応可能な優先度数は多くても十数レベルとなる。
多数の優先度への対応を必要とするため、プライオリティエンコーダでは対応が困難となる場合、従来の技術では、2分木(binary tree)によるソータが多く用いられる。
図14は、2分木によるソータのハードウェアによる実現例を示す説明図である。図14に示すように、2分木によるソータとは、2分木の最も低いレイヤ(図では最も下の階層)のノードに優先度情報を配置し、それ以外のレイヤのノードには比較器を配置する。そして、比較器は、下のレイヤから優先度情報を入力し、優先度が高い方の優先度情報を上のレイヤに出力する。結果として、最も高いレイヤのノードに配置された比較器の出力は、最も高い優先度となる。図14に示した優先度情報は、値が低い程、優先度が高いものとして記載してある。
2分木によるソータでは、優先度情報が入力されてから最も高い優先度情報が出力されるまでの時間は、(log2 2分木のノード数)に比例する。このため、2分木によるソータは、プライオリティエンコーダと比較して、多数の優先度に対応することが可能であり、実用的に対応可能な優先度数は数千、キューイングシステムに適用した場合の対応可能な通信速度は、数百M〜1Gbps程度となる。しかし、現在、通信速度が10G〜40Gbpsの回線が実用に供されており、更に、高速なソータが必要とされている。
アルゴリズムの高速化には、並列処理による高速化とパイプライン処理による高速化がある。並列処理による高速化とは、アルゴリズムを構成する各種の処理の内、実行順序に依存しない処理、即ち、同時に実行可能な処理を物理的に同時に実行することにより、アルゴリズムの実行時間の短縮を図る方法である。従って、アルゴリズムの並列処理化が可能か否かは、対象とするアルゴリズムに依存する。アルゴリズムを構成する処理が逐次処理、即ち、処理が実行順序に依存し、同時に実行可能な処理が存在しない場合は、並列処理化することはできない。
2分木によるソータは、優先度情報の比較を下位のレイヤから上位のレイヤに逐次実行する必要があるため、並列処理によって高速化することは論理的に不可能である。
パイプライン処理による高速化とは、アルゴリズムを構成する処理を幾つかの段階に分割して、各段階の処理を独立に動作させることにより、単位時間当たりの見掛けの処理能力を向上させる方法である。パイプライン処理では、アルゴリズムの実行時間は短縮されないことに注意する必要がある。アルゴリズムのパイプライン化が可能か否かは、対象とするアルゴリズムに依存する。パイプライン処理では、分割された各段階の処理が独立に実行できる必要がある。
従って、アルゴリズムを独立に動作可能な幾つかの段階に分割できない場合、例えば、アルゴリズムの初期段階で参照される変数が、アルゴリズムの最終段階で更新されている場合等は、パイプライン化することはできない。
2分木によるソータは、優先度情報の比較を下位のレイヤから上位のレイヤに逐次実行する必要があるため、レイヤ単位に処理を分割して独立に動作させた場合、下位のレイヤの比較結果が上位のレイヤに伝播して、最も高い優先度情報が出力されるまでの間に、更に高い優先度情報が入力される可能性がある。即ち、この場合は、最上位のレイヤの比較器が優先度情報を識別した時点では、その優先度情報が最も高い優先度であるとは限らない。このため、2分木によるソータは、パイプライン化により処理能力の向上を図ることはできない。
ところで、2分木によるソータをソフトウェアで実現した場合、2分木によるソータのハードウェアによる実現例(図14参照)における比較器の代わりに、優先度が高い方の優先度情報が比較結果として配置される。このため、2分木によるソータをソフトウェアで実現した場合は、対応する優先度情報数の約2倍のメモリが必要となる問題点がある。
この間題点を解決し、対応する優先度情報数のメモリでソータを実現する方法として、非特許文献1に、ヒープによるソータが開示されている。ヒープは、2分木によるデータ構造の一種であるヒープ構造と、これに優先度情報を入出力するアルゴリズムから構成される。
図15は、ヒープ構造の一例を示す説明図である。図15において、丸は優先度情報を示し、リンクは優先度情報間の上下関係を示す。優先度情報は、値が低いほど優先度が高いものとして記載してある。ある優先度情報の上の優先度情報を「親」、下の優先度情報を「子」と呼ぶ。
図16は、ヒープ構造における優先度情報の親子関係を示す説明図である。図16に示すように、1つの優先度情報は、最大2優先度情報を子とすることができる。ヒープ構造では、優先度情報が子を持つ場合、その優先度情報は、子の優先度以上となるように優先度情報を配置する。従って、最上位の優先度情報が最も高い優先度となる。ある優先度情報が2つの子を持つ場合、子の間には優先度の大小関係は特に規定されないことに注意する必要がある。また、同じ優先度の情報が、必ずしも同じレイヤに位置するわけではないことに注意する必要がある。ヒープ構造には多数の実現方法があるが、配列で実現する場合、優先度情報はアドレスで識別される。
図17は、配列で実現したヒープ構造の一例を示す説明図である。図17に示すように、最上位の優先度情報のアドレスを1とし、以下、上位レイヤから下位レイヤに、左側の優先度情報から右側にアドレスを順次割り当てる。その結果、配列によるヒープ構造の実現では、優先度情報は、低位アドレスから上位アドレスに向けて左詰めで配置される。図17において、アドレス1の優先度情報を最も左の優先度情報、アドレス12の優先度情報を最も右の優先度情報、アドレス13を最も左の空き情報、アドレス15を最も右の空き情報と呼ぶ。
配列によるヒープ構造に優先度情報を入力する挿入処理、ヒープ構造から最も優先度が高い優先度情報を出力する削除処理は、配列によるヒープ構造において、親の優先度情報が子の優先度以上となる関係、及び優先度情報が左詰めで配置される関係を保つように、優先度情報を再配置する。
ヒープ構造に優先度情報を挿入する際のアルゴリズムは、入力する優先度情報の適切な挿入アドレスを探索することによって実現される。優先度情報を挿入する際のアルゴリズムを以下に示す。
(a)挿入位置の初期値を、最も左の空き情報とする。
(b)入力する優先度情報の優先度が、挿入位置の親の優先度以下の場合、若しくは挿入位置が最上位の優先度情報となる場合、入力する優先度情報を挿入位置に移動して停止。(c)入力する優先度情報の優先度が、挿入位置の親の優先度より高い場合、挿入位置の親の優先度情報を挿入位置へ移動し、次の挿入位置を(移動前の)親の位置とする。
(d)停止するまで(b),(c)を繰り返す。
図18は、図17に示したヒープ構造に優先度7の情報を挿入する場合のアルゴリズムの例を示す説明図であり、図19は、図18において情報を挿入した後のヒープ構造を示す説明図である。
ヒープ構造から最も優先度が高い優先度情報を削除する際のアルゴリズムは、最上位の優先度情報を削除し、最も右の優先度情報の適切な挿入アドレスを探索することによって実現される。優先度情報を削除する際のアルゴリズムを以下に示す。
(a)最上位の優先度情報を削除して出力し、その結果、ヒープ構造に記憶された優先度情報数が0となる場合、停止。
(b)最も右の優先度情報を削除して、挿入する優先度情報とする。
(c)挿入位置の初期値を、最上位の優先度情報とする。
(d)挿入する優先度情報の優先度が、挿入位置の全ての子の優先度以上の場合、若しくは挿入位置の優先度情報が子を持たない場合、挿入する優先度情報を挿入位置に移動して停止。
(e)挿入する優先度情報の優先度が、少なくとも1つの子の優先度より低い場合、(子が2つある場合は優先度が高い方の)子を挿入位置に移動し、次の挿入位置を(移動前の)子の位置とする。
(f)停止するまで(d),(e)を繰り返す。
図20は、図17に示したヒープ構造から最も優先度が高い情報を削除するアルゴリズムの例を示す説明図であり、図21は、図20において情報を削除した後のヒープ構造を示す説明図である。
先に述べた通り、ヒープによるソータの特徴は、必要となるメモリが2分木によるソータの場合の約半分で済むため、リソースの使用効率が高い点が上げられる。更に、ヒープ構造を配列で実現した場合、優先度情報が低位アドレスから上位アドレスに向けて左詰めで配置されるため、メモリの空き領域の管理が非常に容易となり、高速な動作が可能となる点にある。
2分木によるソータは、その実現方法がハードウェアであれ、或いはソフトウェアであれ、2分木の優先度情報を配置するノード毎に、優先度情報が記憶されているか否かを管理する必要がある。例えば、優先度情報の記憶の値が特定の値(例えば最も高い値)の場合は、優先度情報が記憶されていないと判断したり、優先度情報の記憶を構成する特定のビットの値(例えば、最上位ビット)によって、優先度情報が記憶されていないと判断する必要が生じる。
更に、優先度情報が記憶されていないノードを高速に特定するために、優先度情報が記憶されていないノードのアドレスをFIFO(First In First Out)キュー等で管理する必要が生じる場合がある。このような処理は、多数の優先度数に対応する場合、高速化への大きな妨げとなる。
一方、ヒープ構造を配列で実現した場合は、優先度情報は左詰めで配置されるため、配列メモリの空き領域の管理は、メモリに対して空き領域の開始位置を示すポインタを設定し、ポインタ以降の領域のメモリは空きであるとすれば十分である。このため、ヒープによるソータは、メモリ等のリソースの使用効率が高い点、及びメモリの空き領域の管理が非常に容易な点から、ハードウェアによる実装に適している、
以上述べた、ヒープによるソータが、実用的に対応可能な優先度数は数千、キューイングシステムに適用した場合に対応可能な通信速度は1Gbps程度となるが、現在、通信速度が10G〜40Gbpsの回線が実用に供されており、ヒープによるソータも高速化が必要とされている。
しかし、以上の動作原理に基づくヒープによるソータにおいて、優先度情報を挿入するアルゴリズムと削除するアルゴリズムは、オーバラップして実行することができないため、パイプライン化により処理能力の向上を図ることは論理的に不可能である。何故ならば、優先度情報をヒープ構造に挿入する際の、上位レイヤから下位レイヤヘの優先度情報の移動は、下位のレイヤから上位のレイヤに向けて順次実行されるが、これに対して、優先度情報をヒープ構造から削除する際の、下位レイヤから上位レイヤヘの優先度情報の移動は、上位のレイヤから下位のレイヤに向けて順次実行されるためである。
この間題を解決するために、ヒープによるソータのアルゴリズムを修正して、パイプライン化する方法が、特許文献1、特許文献2及び非特許文献2に開示されている。特許文献1と特許文献2は、論理的には同一の装置を異なる視点から記述したものであるため、以後、特許文献2を参照して説明する。また、非特許文献2には、特許文献2の請求項1から9と、14から17に係わる技術が開示されている。
図22は、特許文献2に記載された、ヒープによるソータから最も高い優先度情報を削除する際のアルゴリズムを示す説明図であり、図23は、図22に示したヒープ構造の削除後の状態を示す説明図である。図22に示すように、特許文献2に記載された、ヒープによるソータから最も高い優先度情報を削除する際のアルゴリズムでは、最初に最上位の優先度情報を削除して出力する。そして、削除した優先度情報の子が存在すれば、優先度が高い方の子を削除して上位レイヤに出力して移動する操作を、上位レイヤから下位レイヤに向けて繰り返す。
図24は、特許文献2に記載された、ヒープによるソータに優先度情報を挿入する際のアルゴリズムをヒープ構造で示す説明図であり、図25は、図24に示したヒープ構造の挿入後の状態を示す説明図である。図24に示すように、特許文献2に記載された、ヒープによるソータに優先度情報を挿入する際のアルゴリズムでは、最初に入力する優先度情報を最上位の優先度情報と比較し、入力する情報の方の優先度が高ければ、入力する優先度情報を比較した情報の位置に挿入して、比較した優先度情報を下位レイヤに出力し、さもなければ、入力する優先度情報を下位レイヤに出力する。そして、以下のレイヤでは、上位レイヤで比較した優先度情報の子の一方を選択して、上位レイヤから出力された優先度情報と比較し、同様な処理を順次繰り返す。
最上位レイヤ以外のレイヤにおいて、上位レイヤで比較した優先度情報の子の情報から、比較する優先度情報を選択する方法に関しては、基本的に2つの方法が示されている。1つは、ヒープ構造の各ノードに、そのノードの左の子のノードの配下に記憶された優先度情報数と、右の子のノードの配下に記憶された優先度情報数の差分を記憶し、配下に記憶された優先度情報数が少ない方の子を、比較する優先度情報として選択する方法(特許文献2の請求項10から13)である。図24のヒープ構造で示すアルゴリズムは、この方法に基づいて記載されている。
もう1つの方法は、最下位のレイヤにおいて、優先度情報が記憶されていないノードを何らかの方法で選択し、そのノードから最上位のノードに至るまでの優先度情報を、比較する優先度情報として選択する方法(特許文献2の請求項4から9参照)である。
以上から明らかな通り、特許文献2に記載されたヒープによるソータにおける、優先度情報の挿入処理、削除処理は、何れも最上位のレイヤから下位のレイヤに向けてレイヤ毎に順次実行されるため、レイヤ毎に処理をオーバラップさせることによるパイプライン処理によって、単位時間当たりの見かけの処理能力を向上させることが可能である。
特開平10−336215号公報 特開平10−336216号公報 特開2004−23809号公報 J.W.J Williams."Heapsort,"CACM,Vol.7,No.6,June1964. Tuan Ha−duoug,and Serafim Soares Moreira,"The heap−sort based ATM cells spacer,"1999 2nd International Conference on ATM,ICATM’99,June 1999.
しかしながら、特許文献2に記載されたヒープによるソータは、非特許文献1のヒープによるソータのアルゴリズムを修正したため、優先度情報の配置が左詰めでは無くなっている。このため、特許文献2に記載されたヒープによるソータは、2分木によるソータと同様に、ヒープ構造の優先度情報を配置するノード毎に、優先度情報が記憶されているか否かを管理している。具体的には、特許文献2の段落番号0005に、優先度情報の記憶の値が特定の値(例えば、最も高い値)の場合は、優先度情報が記憶されていないと判断したり、優先度情報の記憶を構成する特定のビットの値(例えば、最上位ビット)によって、優先度情報が記憶されていないと判断する方法が開示されている。
前者の方法は、このソータがタグ付け型キューイングシステムに使用される場合に大きな問題を起こす。先に述べた通り、タグ付け型キューイングシステムは、パケットの送信タイミングをタグとしてパケットに付与する。このため、特定の値がパケットの送信タイミングとして使用できない場合は、送信タイミングの計算の方法をこれに合わせて修正する必要がある。
更に、この送信タイミングは、仮想時間であれ実時間であれ、有限語長の数値で表現される。このため、特許文献3に開示されるように、このキューイングシステムの実装では、時間の経過に伴い、パケットに付与される送信タイミングの値が最大値を越えた場合、初期の値に戻る回り込み現象が発生してしまう。この間題を解決するために、送信タイミングの値の比較や各種のパラメータを、回り込みの発生に応じて修正する必要がある。この際、特定の値が送信タイミングとして使用できないと、回り込みに伴う修正処理が複雑化してしまう問題が生じる。
後者の方法は、優先度情報の1ビットを情報の有無の識別に使用するため、優先度情報が表現可能な数値の範囲が半減して、リソースの使用効率を低下させてしまう問題が生じる。
また、特許文献2に記載されたヒープによるソータの挿入処理において、上位レイヤで比較した優先度情報の子の情報から、比較する優先度情報を選択する方法として、請求項10から13に記載した、ヒープ構造の各ノードに、そのノードの左の子のノードの配下に記憶された優先度情報数と、右の子のノードの配下に記憶された優先度情報数の差分を記憶する方法を用いるのは、非現実的である。
この場合、ヒープ構造の最上位以外の各ノードに、記憶した情報数の差分を計数するカウンタを設ける必要があり、ヒープ構造を数千優先度に対応させると、実装に必要なリソース量が莫大なものになってしまう。
また、特許文献2の請求項4から9に記載した、最下位のレイヤにおいて、優先度情報が記憶されていないノードをFIFOキュー等を用いて選択する方法は、実装に要するリソースを増大させ、高速化への大きな妨げになってしまう。更に、この方法では、特許文献2の請求項5に記載の通り、最下位の優先度情報が記憶されていないノードを挿入処理のために選択した場合、そのノードはその挿入処理が終了するまでは再度選択されてはならない。何故ならば、同一のノードを短時間に立て続けに選択した場合、優先度情報の下位レイヤヘの移動がオーバフローする可能性があるからである。
このため、特許文献2の請求項5に記載の通り、優先度情報が記憶されていないノードは、挿入処理のため選択されているノードとそれ以外のノードに分別して管理しなければならず、更に、実装が複雑化してしまうことが避けられない。
また、先に述べた通り、パイプライン処理は見かけの処理能力を向上させるが、アルゴリズムの実行時間は短縮されない。このため、最下位の優先度情報が記憶されていないノードを挿入処理のために選択した場合、挿入処理が終了するまでの相当の時間、例えば、ヒープ構造を4095優先度に対応させた場合、12レイヤの処理が全て終了するまでは、そのノードを新たな挿入処理のために選択することができない。
このため、特許文献2の段落番号0064に記載されている通り、ヒープ構造に記憶された優先度情報がほぼ満杯に近い状態では、挿入処理が実行できない場合が生じ、ヒープ構造が完全には使用できないという問題が生じる。
以上から明らかな通り、特許文献2に記載されたヒープによるソータは、パイプライン化を実現するために、非特許文献1に記載されたヒープによるソータのアルゴリズムを修正している。その結果、メモリの空き領域の管理が非常に容易であるという、非特許文献1に記載されたヒープによるソータの大きな特徴が失われ、実現に際して多くのリソースと複雑な処理を必要とすることになり、高速化への大きな妨げになってしまうという問題点がある。
この発明の目的は、非特許文献1に記載された、ヒープによるソータのアルゴリズムを並列化するために必要な2分木構造の情報を記憶する装置を実現し、更に、非特許文献1に記載されたヒープによるソータにおける、メモリ等のリソースの使用効率が高い特徴や、メモリの空き領域の管理が非常に容易な特徴をそのまま生かした並列処理アルゴリズムによって、ヒープによるソータの実行時間を短縮し、少ないリソースで多数の優先度に対応し、且つ、高速なヒープ構造の情報を記憶することができる、2分木構造の情報を記憶する装置及びヒープ構造の情報を記憶する装置を提供することである。
上記目的を達成するため、この発明に係る2分木構造の情報を記憶する装置は、N個のメモリ装置から構成され、該メモリ装置が各々対応するレイヤをレイヤ0からレイヤN−1とする場合、レイヤ0に対応するメモリ装置は、単一の情報を記憶し、(1≦i≦N−1)となるレイヤiに対応するメモリ装置は、各々iビットのアドレスで情報を識別し、小数点以下を切り捨てた整数値を商とする除算演算子を「/」として、レイヤ1に対応するメモリ装置のアドレス0若しくはアドレス1で識別される情報を第1の情報とし、レイヤ0に対応するメモリ装置の情報を第2の情報とする場合、該第2の情報は該第1の情報の親に、該第1の情報は該第2の情報の子になる第1の関係と、(2≦j≦N−1)となるレイヤjに対応するメモリ装置のアドレスAで識別される情報を第3の情報とし、レイヤj−1に対応するメモリ装置のアドレスA/2で識別される情報を第4の情報とする場合、該第4の情報は該第3の情報の親に、該第3の情報は該第4の情報の子になる第2の関係に基づいて、2分木構造の情報における親子の対応関係が識別される分散メモリ手段と、(1≦L≦N−1)となるレイヤLに対応する該分散メモリ手段のメモリ装置のアドレスにBが入力された場合、(1≦k≦L−1)となるレイヤkに対応する該分散メモリ手段のメモリ装置のアドレスに、各々、B/2(L−k)を入力することによって、レイヤLに対応する該分散メモリ手段のメモリ装置のアドレスBの情報から、レイヤ1に対応する該分散メモリ手段のメモリ装置のアドレスB/2(L−1)に至るまでの親子の対応関係にある情報を、同時に選択するアドレス入力手段とを備えて構成したことを特徴としている。
また、この発明に係るヒープ構造の情報を記憶する装置は、請求項3又は4に記載の2分木構造の情報を記憶する装置に記憶される情報がヒープ構造であるヒープ構造の情報を記憶する装置であって、前記分散メモリ手段から情報を出力する際に、レイヤ0に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が1の状態である場合、該レイヤ0に対応する前記分散メモリ手段のメモリ装置に記憶された情報を削除して出力し、その結果、レイヤ0からレイヤN−1に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が全て0の状態となる場合、前記分散メモリ手段からの情報の出力を終了し、(1≦S≦N−1)となるレイヤSに対応する前記分散メモリ手段のメモリ装置に記憶された情報数が1以上の状態となる場合であって、且つ、レイヤS+1に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が0の状態となる、若しくはレイヤSがレイヤN−1となる場合、該レイヤSに対応する前記分散メモリ手段のメモリ装置に記憶された情報数の値をCとすると、該レイヤSに対応する前記分散メモリ手段のメモリ装置のアドレスC−1の情報を削除して、挿入する情報とする情報出力手段と、該情報出力手段による情報の削除の結果、(1≦T≦N−1)となるレイヤTに対応する前記分散メモリ手段のメモリ装置に記憶された情報数が1以上の状態となる場合であって、且つ、レイヤT+1に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が0の状態となる、若しくはレイヤTがレイヤN−1となる場合、該レイヤTに対応する前記分散メモリ手段のメモリ装置に記憶された情報数が、前記アドレス生成手段が生成したレイヤTに対応するアドレスの値より大きければ、前記アドレス生成手段が生成したレイヤTに対応するアドレスを、該レイヤTに対応する前記分散メモリ手段のメモリ装置のアドレスに入力し、さもなければ、前記アドレス生成手段が生成したレイヤT−1に対応するアドレスを、レイヤT−1に対応する前記分散メモリ手段のメモリ装置のアドレスに入力して、前記アドレス入力手段により、レイヤ1からレイヤT若しくはレイヤT−1に対応する前記分散メモリ手段のメモリ装置の情報を同時に選択する第1の比較情報選択手段と、該第1の比較情報選択手段によって情報が選択された場合は、前記分散メモリ手段のメモリ装置から選択された全ての情報を読み出して、挿入する情報と各々比較し、読み出した情報より、該挿入する情報の優先度が高ければ高優先、さもなければ低優先、或いは読み出した情報より、該挿入する情報の優先度が高いか等しければ高優先、さもなければ低優先とし、比較の結果、レイヤUから読み出した情報より、該挿入する情報が低優先となる場合であって、且つ、レイヤU+1から読み出した情報より、該挿入する情報が高優先となる、若しくはレイヤU+1に対応する前記分散メモリ手段のメモリ装置の情報が選択されていない、若しくはレイヤUがレイヤN−1となる場合、レイヤ1から読み出した情報を、レイヤ0に対応する前記分散メモリ手段のメモリ装置の情報に書き込み、(U≧2)の場合はレイヤ2からレイヤUまでのレイヤから読み出した情報を、該第1の比較情報選択手段によって選択されたレイヤ1からレイヤU−1に対応する前記分散メモリ手段のメモリ装置の情報に各々書き込み、且つ、該第1の比較情報選択手段によって選択されたレイヤUに対応する前記分散メモリ手段のメモリ装置の情報に、該挿入する情報を書き込み、比較の結果、レイヤ1から読み出した情報より、該挿入する情報が高優先となる場合、若しくは該第1の比較情報選択手段によって情報が選択されなかった場合は、レイヤ0に対応する前記分散メモリ手段のメモリ装置の情報に、該挿入する情報を書き込む第1の情報移動手段とを備えて構成したことを特徴としている。
この発明によれば、同時に実行可能な処理を物理的に同時に実行する並列処理によって、ヒープによるソータを実現しているため、実行時間が大幅に短縮され、高速化が実現されている。更に、非特許文献1に記載されたヒープによるソータと同様に、メモリ等のリソースの使用効率が高い特徴や、メモリの空き領域の管理が非常に容易な特徴を有する。この結果、非特許文献1に記載された、ヒープによるソータのアルゴリズムを並列化するために必要な2分木構造の情報を記憶する装置を実現し、更に、非特許文献1に記載されたヒープによるソータにおける、メモリ等のリソースの使用効率が高い特徴や、メモリの空き領域の管理が非常に容易な特徴をそのまま生かした並列処理アルゴリズムによって、ヒープによるソータの実行時間を短縮し、少ないリソースで多数の優先度に対応し、且つ、高速なヒープ構造の情報を記憶することができる。
以下、この発明を実施するための最良の形態について図面を参照して説明する。
この発明の一実施の形態に係る2分木構造の情報を記憶する装置は、N個のメモリ装置から構成され、該メモリ装置が各々対応するレイヤをレイヤ0からレイヤN−1とする場合、レイヤ0に対応するメモリ装置は、単一の情報を記憶し、(1≦i≦N−1)となるレイヤiに対応するメモリ装置は、各々iビットのアドレスで情報を識別し、小数点以下を切り捨てた整数値を商とする除算演算子を「/」として、レイヤ1に対応するメモリ装置のアドレス0若しくはアドレス1で識別される情報を第1の情報とし、レイヤ0に対応するメモリ装置の情報を第2の情報とする場合、該第2の情報は該第1の情報の親に、該第1の情報は該第2の情報の子になる第1の関係と、(2≦j≦N−1)となるレイヤjに対応するメモリ装置のアドレスAで識別される情報を第3の情報とし、レイヤj−1に対応するメモリ装置のアドレスA/2で識別される情報を第4の情報とする場合、該第4の情報は該第3の情報の親に、該第3の情報は該第4の情報の子になる第2の関係に基づいて、2分木構造の情報における親子の対応関係が識別される分散メモリ手段と、(1≦L≦N−1)となるレイヤLに対応する該分散メモリ手段のメモリ装置のアドレスにBが入力された場合、(1≦k≦L−1)となるレイヤkに対応する該分散メモリ手段のメモリ装置のアドレスに、各々、B/2(L−k)を入力することによって、レイヤLに対応する該分散メモリ手段のメモリ装置のアドレスBの情報から、レイヤ1に対応する該分散メモリ手段のメモリ装置のアドレスB/2(L−1)に至るまでの親子の対応関係にある情報を、同時に選択するアドレス入力手段とを備えて構成したことを特徴とする。
また、この発明の一実施の形態に係るヒープ構造の情報を記憶する装置は、2分木構造の情報を記憶する装置に記憶される情報がヒープ構造であるヒープ構造の情報を記憶する装置であって、前記分散メモリ手段から情報を出力する際に、レイヤ0に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が1の状態である場合、該レイヤ0に対応する前記分散メモリ手段のメモリ装置に記憶された情報を削除して出力し、その結果、レイヤ0からレイヤN−1に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が全て0の状態となる場合、前記分散メモリ手段からの情報の出力を終了し、(1≦S≦N−1)となるレイヤSに対応する前記分散メモリ手段のメモリ装置に記憶された情報数が1以上の状態となる場合であって、且つ、レイヤS+1に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が0の状態となる、若しくはレイヤSがレイヤN−1となる場合、該レイヤSに対応する前記分散メモリ手段のメモリ装置に記憶された情報数の値をCとすると、該レイヤSに対応する前記分散メモリ手段のメモリ装置のアドレスC−1の情報を削除して、挿入する情報とする情報出力手段と、該情報出力手段による情報の削除の結果、(1≦T≦N−1)となるレイヤTに対応する前記分散メモリ手段のメモリ装置に記憶された情報数が1以上の状態となる場合であって、且つ、レイヤT+1に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が0の状態となる、若しくはレイヤTがレイヤN−1となる場合、該レイヤTに対応する前記分散メモリ手段のメモリ装置に記憶された情報数が、前記アドレス生成手段が生成したレイヤTに対応するアドレスの値より大きければ、前記アドレス生成手段が生成したレイヤTに対応するアドレスを、該レイヤTに対応する前記分散メモリ手段のメモリ装置のアドレスに入力し、さもなければ、前記アドレス生成手段が生成したレイヤT−1に対応するアドレスを、レイヤT−1に対応する前記分散メモリ手段のメモリ装置のアドレスに入力して、前記アドレス入力手段により、レイヤ1からレイヤT若しくはレイヤT−1に対応する前記分散メモリ手段のメモリ装置の情報を同時に選択する第1の比較情報選択手段と、該第1の比較情報選択手段によって情報が選択された場合は、前記分散メモリ手段のメモリ装置から選択された全ての情報を読み出して、挿入する情報と各々比較し、読み出した情報より、該挿入する情報の優先度が高ければ高優先、さもなければ低優先、或いは読み出した情報より、該挿入する情報の優先度が高いか等しければ高優先、さもなければ低優先とし、比較の結果、レイヤUから読み出した情報より、該挿入する情報が低優先となる場合であって、且つ、レイヤU+1から読み出した情報より、該挿入する情報が高優先となる、若しくはレイヤU+1に対応する前記分散メモリ手段のメモリ装置の情報が選択されていない、若しくはレイヤUがレイヤN−1となる場合、レイヤ1から読み出した情報を、レイヤ0に対応する前記分散メモリ手段のメモリ装置の情報に書き込み、(U≧2)の場合はレイヤ2からレイヤUまでのレイヤから読み出した情報を、該第1の比較情報選択手段によって選択されたレイヤ1からレイヤU−1に対応する前記分散メモリ手段のメモリ装置の情報に各々書き込み、且つ、該第1の比較情報選択手段によって選択されたレイヤUに対応する前記分散メモリ手段のメモリ装置の情報に、該挿入する情報を書き込み、比較の結果、レイヤ1から読み出した情報より、該挿入する情報が高優先となる場合、若しくは該第1の比較情報選択手段によって情報が選択されなかった場合は、レイヤ0に対応する前記分散メモリ手段のメモリ装置の情報に、該挿入する情報を書き込む第1の情報移動手段とを備えて構成したことを特徴とする。
本発明による、ヒープによるソータに優先度情報を挿入する際の並列化されたアルゴリズムの概略を、以下に説明する。
図1は、本発明による、ヒープによるソータに優先度情報を挿入する際の並列化されたアルゴリズムの概要を示し、(a)は、挿入位置の決定の説明図、(b)は、挿入位置への移動の説明図である。図1は、図19に示したヒープ構造に優先度7の情報を挿入する場合の例である。
図1(a)に示すように、本発明では、優先度情報を挿入する際に、先ず、最も左の空き情報から最上位の優先度情報に至るまでの親子の関係にある情報を選択し、最も左の空き情報を除く各レイヤの選択された優先度情報と入力する情報を同時に比較して、挿入位置を決定する。次に、図1(b)に示すように、挿入位置以下の選択された優先度情報を、各々下のレイヤに移動し、入力する情報を挿入位置に移動する。
図2は、本発明による、ヒープによるソータから最も高い優先度を削除する際の並列化されたアルゴリズムの概略を示し、(a)は、挿入位置の決定の説明図、(b)は、挿入位置への移動の説明図である。図2は、図19に示したヒープ構造から最も優先度が高い情報を削除する場合の例である。
図2(a)に示すように、本発明では、最上位の優先度情報を削除して出力する。削除の結果、ヒープ構造に記憶された優先度情報数が0となる場合、削除処理を終了し、それ以外の場合は、最も右の優先度情報を削除して、挿入する優先度情報に移動する。また、最上位のレイヤの次のレイヤから下位レイヤに向けて優先度情報を選択し、挿入する優先度情報と同時に比較して、挿入位置を決定する。
次に、図2(b)に示すように、挿入位置以上の選択された優先度情報を、各々上のレイヤに移動し、挿入する情報を挿入位置に移動する。挿入する優先度情報と比較される優先度情報の具体的な選択方法は、最上位の次のレイヤでは、優先度情報が2つ存在する場合、優先度の高い方を選択し(優先度が同一の場合は任意に選択する)、優先度情報が1つ存在する場合、その優先度情報を選択し、優先度情報が存在しない場合、選択を終了する。そして、それ以下のレイヤでは、上のレイヤで選択された優先度情報を親とする優先度情報が2つ存在する場合、優先度の高い方を(優先度が同一の場合は任意に)選択し、1つ存在する場合、その優先度情報を選択し、存在しない場合、選択を終了する。
以上の作用から明らかな通り、非特許文献1に記載されたヒープによるソータのアルゴリズムが逐次処理となっているのに対して、本発明は、同時に実行可能な処理を物理的に同時に実行する並列処理によって、ヒープによるソータを実現しているため、実行時間が大幅に短縮され、高速化が実現されている。更に、特許文献1、特許文献2、非特許文献2に記載されたパイプライン処理に基づくヒープによるソータが、メモリの空き領域の管理のため、多くのリソースと複雑な処理とを必要とするのに対して、本発明は、非特許文献1に記載されたヒープによるソータと同様に、メモリ等のリソースの使用効率が高い特徴や、メモリの空き領域の管理が非常に容易な特徴を有するため、少ないリソースで、多数の優先度に対応し、且つ、高速なヒープ構造の情報を記憶する装置を提供できる点が、最も異なる。
図3は、本発明に係る2分木構造の情報を記憶する装置のデータ構造の例を示す説明図である。図3における、本発明に係る2分木構造の情報を記憶する装置のデータ構造は、2分木構造の情報を記憶する装置が4レイヤで構成される例(請求項1及び請求項3に記載した装置に相当)を示し、最上位のレイヤをレイヤ0とし、以下、順次、レイヤ1,レイヤ2とし、最下位のレイヤをレイヤ3としている。
図3に示すように、各レイヤは、情報を記憶するメモリ装置を有し、レイヤiは2i個の情報を記憶する。情報を記憶するメモリのアドレスは、レイヤ内で最も左の情報を識別するアドレスを0とし、以下、順次、割り当てる。最上位のレイヤのメモリ装置に記憶される情報数は最大1であるため、アドレス入力を有さないメモリ装置で実現しても、アドレス入力の値が0のみとなるメモリ装置で実現しても、論理的には等価であり、本発明の請求項はこれら双方の場合を包含していることは自明である。分散メモリ手段は、これらのメモリ装置によって構成される。
この分散メモリ手段は、2分木構造の情報を記憶する、あるレイヤのメモリ装置のアドレスAに記憶された情報に対して、その上のレイヤが存在する場合、その上のレイヤのメモリ装置のアドレスA/2に親の情報が記憶される。従って、aを偶数とするアドレスa及びa+1に記憶された情報の親は同一の情報となり、これらの情報はその親の情報の子となる。
また、図3に示すように、最上位以外の各レイヤは、比較結果を記憶するメモリ装置を有しても良く、レイヤmは、2m−1個の比較結果を記憶する。レイヤ1のメモリ装置に記憶される比較結果数は最大1であるため、アドレス入力を有さないメモリ装置で実現しても、アドレス入力の値が0のみとなるメモリ装置で実現しても、論理的には等価であり、本発明の請求項は、これら双方の場合を包含していることは自明である。比較結果メモリ手段は、これらのメモリ装置によって構成される。
この比較結果メモリ手段は、分散メモリ手段に記憶された2分木構造の情報に対応する。あるレイヤの比較結果メモリ手段のメモリ装置のアドレスDに記憶された比較結果は、同じレイヤの分散メモリ手段のメモリ装置のアドレス2Dと2D+1に記憶された情報の比較結果に対応する。
本発明の請求項2及び請求項4に記載の2分木構造の情報を記憶する装置は、各々本発明の請求項1及び請求項3に記載の2分木構造の情報を記憶する装置における、メモリ装置のアドレス入力のビットの上位下位の関係が逆転した装置であり、論理的には等価である。このため、説明は省略する。
図4は、本発明に係る2分木構造の情報を記憶する装置、及びヒープ構造の情報を格納する装置の実施例を示す説明図である。図4では、装置が6レイヤで構成される場合の例を示し、各レイヤは、分散メモリ手段のメモリ装置を有し、最上位以外の各レイヤは、比較結果メモリ手段のメモリ装置を有しても良い。
図4において、data_in入力は、分散メモリ手段に情報を入力する際に用いられる信号である。data_out出力は、分散メモリ手段から優先度が最も高い情報を出力する際に用いられる信号である。comparison_data_busは、挿入する情報若しくは入力する情報の値を、各レイヤに供給するバスである。push_pop_address_busは、挿入する情報若しくは入力する情報の値と比較される情報を選択するアドレスを、レイヤ0以外の各レイヤに供給するバスであり、アドレス入力手段で使用される、pop_address出力は、アドレス生成手段が生成したアドレスを、下のレイヤに示す信号である。
empty出力は、これを出力するレイヤに対応する分散メモリ手段のメモリ装置に記憶されている情報数が空であることを、上のレイヤに示す信号であり、情報出力手段及び第1の比較情報選択手段で使用される。full出力は、これを出力するレイヤに対応する分散メモリ手段のメモリ装置に記憶されている情報数が満杯であることを、下のレイヤに示す信号であり、第2の比較情報選択手段で使用される。
pop出力は、これを出力するレイヤが情報の移動元であることを上のレイヤに示す信号であり、第1の情報移動手段で使用される。push出力は、これを出力するレイヤが情報の移動元であることを下のレイヤに示す信号であり、第2の情報移動手段で使用される。pop_data出力は、移動する情報を上のレイヤに示す信号であり、第1の情報移動手段で使用される。push_data出力は、移動する情報を下のレイヤに示す信号であり、第2の情報移動手段で使用される。
非特許文献1のヒープによるソータと同様に、本発明のヒープ構造の情報を記憶する装置の、請求項5に記載の情報出力手段、第1の比較情報選択手段及び第1の情報移動手段、請求項6に記載の第2の比較情報選択手段及び第2の情報移動手段は、何れも親の優先度が子の優先度以上となる関係、及び情報が左詰めで配置される関係を保つように情報を再配置する。即ち、本発明のヒープ構造の情報を記憶する装置の情報は、上位のレイヤから下位のレイヤに、レイヤ内ではアドレス0から順次配置される。
このため、本発明のヒープ構造の情報を記憶する装置において、情報の入出力処理が行なわれていない状態では、あるレイヤの情報数が満杯であれば、それ以上のレイヤの情報数も満杯となる。また、あるレイヤの情報数が空であれば、それ以下のレイヤの情報数も空となる。
従って、最も左の空き情報を有するレイヤでは、情報数が満杯では無く、且つ、その上のレイヤの情報数が満杯となるため、(full出力=FALSE AND full入力=TRUE)が成立する。但し、最上位のレイヤは、(full出力=FALSE)が成立すれば最も左の空き情報を有する。若しくは、最上位のレイヤでは、(full入力=TRUE)が常に成立すると見なしても良い。本発明の請求項は、何れの場合も包含していることは自明である。また、最下位のレイヤではfullを出力する必要は無いが、最も左の空き情報を有するレイヤであることの判定のために、レイヤ内部でfull出力に相当する信号を作成する。
また、最も右の情報を有するレイヤでは、情報数が空ではなく、且つ、その下のレイヤの情報数が空となるため、(empty出力=FALSE AND empty入力=TRUE)が成立する。但し、最下位のレイヤは(empty出力=FALSE)が成立すれば最も右の情報を有する。若しくは、最下位のレイヤでは(empty入力=TRUE)が常に成立すると見なしても良い。本発明の請求項は、何れの場合も包含していることは自明である。また、最上位のレイヤではemptyを出力する必要は無いが、最も右の情報を有するレイヤであることの判定のために、レイヤ内部でempty出力に相当する信号を作成する。
本発明の請求項5に記載の第1の比較情報選択手段が、レイヤ1から最も右の情報を有するレイヤ、若しくは、最も右の情報を有するレイヤの上のレイヤまでの、親子関係にある情報を選択した場合、第1の情報移動手段は、選択した情報と挿入する情報を比較して、後者が低優先となる場合、(pop出力=TRUE)とする。ここで、本発明のヒープ構造の情報を記憶する装置において、情報の入出力処理が行なわれていない状態では、親の優先度は子の優先度以上となる関係にある。このため、あるレイヤの選択された情報と挿入する情報の比較の結果、後者が低優先となる場合、それ以上のレイヤにおいても後者が低優先となる。
従って、挿入する情報の挿入位置となるレイヤは、比較の結果挿入する情報が低優先となるレイヤであって、且つ、その下のレイヤでは比較の結果挿入する情報が高優先となる、若しくは、その下のレイヤでは情報が選択されていないレイヤ、即ち、(pop出力=TRUE AND pop入力=FALSE)となる。但し、最下位のレイヤでは(pop出力=TRUE)が成立すれば挿入位置となる。若しくは、最下位のレイヤでは(pop入力=FALSE)が常に成立していると見なしても良い。本発明の請求項は何れの場合も包含していることは自明である。また、上のレイヤヘの情報の移動元となるレイヤは(pop出力=TRUE)となるレイヤ、下のレイヤからの情報の移動先となるレイヤは(pop入力=TRUE)となるレイヤとなる。
本発明の請求項6に記載の第2の比較情報選択手段が、レイヤ0から最も左の空き情報までの、親子関係にある情報を選択した場合、第2の情報移動手段は、レイヤ0から最も左の空き情報を有するレイヤの上のレイヤまで、即ち、(full出力=TRUE)が成立するレイヤの選択した情報と、入力する情報を比較し、後者が高優先となる場合(push出力=TRUE)とする。ここで、本発明のヒープ構造の情報を記憶する装置において、情報の入出力処理が行なわれていない状態では、親の優先度は子の優先度以上となる関係にある。このため、あるレイヤの選択された情報と入力する情報の比較の結果、後者が高優先の場合、それ以下のレイヤにおいても後者が高優先となる。
従って、入力する情報の挿入位置となるレイヤは、(1)比較の結果入力する情報が高優先となるレイヤであって、且つ、その上のレイヤでは比較の結果入力する情報が低優先となるレイヤ、即ち、(push入力=FALSE AND push出力=TRUE)となるレイヤか、(2)最も左の空き情報を有するレイヤであって、且つ、その上のレイヤでは比較の結果入力する情報が低優先度となるレイヤ、即ち、(push入力=FALSE AND 最も左の空き情報を有するレイヤ)となる。
(1)の場合は、そのレイヤ以下の選択された情報を、各々下のレイヤへ移動する。但し、レイヤ0では、(push出力=TRUE)若しくは(最も左の空き情報を有するレイヤ)が成立すれば、入力する情報の挿入位置となる。若しくは、レイヤ0では(push入力=FALSE)が常に成立すると見なしても良い。本発明の請求項は何れの場合も包含していることは明白である。また、下のレイヤへの情報の移動元となるレイヤは、(push出力=TRUE)となるレイヤ、上のレイヤからの情報の移動先となるレイヤは、(push入力=TRUE)となるレイヤとなる。
なお、第1の情報移動手段及び第2の情報移動手段における選択された情報と、挿入する情報若しくは入力する情報の比較の結果、優先度が等しい場合は、低優先若しくは高優先の何れか一方に分類すればよく、本発明の請求項は何れの場合も包含していることは自明である。
図5は、図4に示した、2分木構造の情報を記憶する装置及びヒープ構造の情報を格納する装置における、分散メモリ手段のメモリ装置、アドレス入力手段、比較結果メモリ手段のメモリ装置、及びアドレス生成手段間の配線例を示す説明図である。図5において、分散メモリ手段のメモリ装置は、請求項1若しくは請求項3に基づくものであり、比較結果メモリ手段のメモリ装置は、比較結果メモリ、と表記してある。
図5に示すように、アドレス入力手段は、各レイヤを接続するpush_pop_address_busで構成され、バスへの入力は、3状態バッファにより、各レイヤの情報数、及び比較結果メモリ手段のメモリ装置の出力を用いたアドレス生成手段から選択される。また、例えば、レイヤ4の分散メモリ手段のメモリ装置のアドレスにBが入力された場合、レイヤ3の分散メモリ手段のメモリ装置のアドレスにB/2が入力され、レイヤ2の分散メモリ手段のメモリ装置のアドレスにB/4が入力され、レイヤ1の分散メモリ手段のメモリ装置のアドレスにB/8が入力され、レイヤ4からレイヤ1までの親子の対応関係にある情報が同時に選択される。
また、図5に示すように、アドレス生成手段は、各レイヤ間のpop_address信号から構成される。図5に示した、比較結果メモリ手段のメモリ装置に記憶される比較結果は、これに対応する分散メモリ手段のメモリ装置に記憶される情報の偶数アドレス側が高優先である場合、若しくは奇数アドレス側に情報が記憶されていない場合は0、奇数アドレス側が高優先である場合、若しくは偶数アドレス側に情報が記憶されていない場合は1、さもなければ0か1、の何れかとする。無論、記憶される比較結果は、他の表現形式で記憶されてもよく、本発明の請求項はそのような場合をも包含していることは自明である。なお、本発明のヒープ構造の情報を記憶する装置では、情報を左詰めで記憶するため、奇数アドレス側に情報が記憶されているが、偶数アドレス側に情報が記憶されていない場合は、存在しない。
図5において、あるレイヤの比較結果メモリ手段のメモリ装置のアドレスに、上位のレイヤからアドレスEが入力された場合、メモリ装置のデータ出力を、入力されたアドレスの最下位ビットに付与して下位レイヤに出力する。これにより、対応する分散メモリ手段のメモリ装置のアドレス2Eの記憶が高優先、若しくは、2E+1に情報が記憶されていない場合は、アドレス2Eを生成して出力し、アドレス2E+1の記憶が高優先の場合は、アドレス2E+1を生成して出力し、さもなければ、アドレス2Eか2E+1を生成して出力する。
また、図5に示すように、あるレイヤが生成するアドレスの最下位ビット以外のビットの値は、上位レイヤで生成されたアドレスの値と同じであるため、各レイヤから、アドレス生成手段が生成したアドレスの最下位ビットがpush_pop_addressに入力されている。このため、あるレイヤが生成したアドレスの値を、push_pop_address_busに入力する場合は、3状態バッファにより、そのレイヤ以上の各レイヤが生成したアドレスの最下位ビットを、図5に示すように入力すれば良い。
無論、3状態バッファを介して、各レイヤが生成したアドレスの値を、各々push_pop_address_busに接続し、あるレイヤが生成したアドレスの値を、push_pop_address_busに入力する場合は、そのレイヤの3状態バッファによって信号を入力しても良く、本発明の請求項は、何れの実施方法をも包含していることは自明である。
図6は、図5に示した、push_pop_address_busの入出力、分散メモリ手段のメモリ装置のアドレス入力、各レイヤの優先度情報数、比較結果メモリのアドレス入力とデータ出力の論理的な対応関係の例を示す説明図である。ここで、push_pop_address_busからの入出力の0から4のビットは、バスとの対応関係を示すビットである。
図6に示すように、バスのビット4は、レイヤ1の分散メモリ手段のメモリ装置のアドレス入力A0、レイヤ2のA1、レイヤ3のA2、レイヤ4のA3、レイヤ5のA4に入力され、バスの他のビットも、入力される。
本発明の2分木構造の情報を記憶する装置では、各レイヤの分散メモリ手段のメモリ装置が記憶する情報数の値が必要となる。図6において、情報数のビット0は最下位ビットを示す。各レイヤの情報数の値は、図6に示すように、レイヤ毎に記憶しても良い。また、2分木構造の情報を記憶する装置全体の情報数を記憶して、これから各レイヤの情報数を生成しても良く、本発明の請求項は、何れの場合をも包含していることは自明である。
図6に示すように、バスのビット4には、レイヤ1の情報数のビット0、レイヤ2の情報数のビット1、レイヤ3の情報数のビット2、レイヤ4の情報数のビット3、レイヤ5の情報数のビット4が、3状態バッファを介して接続され、バスの他のビットも、接続される。
図5に示すように、各レイヤの情報数をレイヤ毎に記憶した場合、レイヤiに記憶できる情報数は、0から2となるため、これを識別するために情報数の記憶には、i+1ビットの語長が必要となる。但し、本発明の2分木構造の情報を記憶する装置では、情報数が満杯、即ち、情報数が2となるレイヤiから、アドレス入力手段に情報数を入力することは有り得ないため、図5及び図6に示すように、各レイヤの情報数の最上位ビットを除くビットを、push_pop_address_busに、3状態バッファを介して接続し、アドレス入力手段に出力する情報数の値を選択する。
また、図6に示すように、バスのビット4には、レイヤ1の比較結果メモリ手段のメモリ装置の出力が、3状態バッファを介して接続され、この出力は、同時に、レイヤ2のA0、レイヤ3のA1、レイヤ4のA2、レイヤ5のA3に入力され、他のバスのビットも、接続される。
先に述べた通り、本発明の請求項2及び請求項4に記載の2分木構造の情報を記憶する装置は、各々、本発明の請求項1及び請求項3に記載の2分木構造の情報を記憶する装置における、メモリ装置のアドレス入力のビットの上位下位の関係が逆転した装置であり、論理的には等価である。この場合のpush_pop_address_busの入出力、分散メモリ装置のアドレス入力、各レイヤの情報数、比較結果メモリのアドレス入力とデータ出力の論理的な対応関係を、図7に示す。
図7は、push_pop_address_busの入出力、分散メモリ装置のアドレス入力、各レイヤの優先度情報数、比較結果メモリのアドレス入力とデータ出力の論理関係が異なる例を示す説明図である。なお、図7に示す関係は、図6に示した関係と論理的には等価であるため、説明は省略する。
分散メモリ手段のメモリ装置に記憶された情報を更新した際、比較結果メモリ手段のメモリ装置の比較結果も更新する。これは、分散メモリ手段のメモリ装置に記憶された情報を更新した際に、更新した情報の親の情報が子を2つ有する場合、更新した情報では無い方の子の情報をメモリ装置から読み出して比較し、結果を、対応する比較結果メモリ手段のメモリ装置に書き込めばよい。分散メモリ装置のメモリ装置から比較する情報を読み出すアドレスは、更新した情報のアドレスの最下位ビットを反転させたアドレス(請求項3の記載参照)か、最上位ビットを反転させたアドレス(請求項4の記載参照)となる。
図5に示した配線例には、比較結果メモリの更新に用いるアドレス入力は、煩雑となるため記載されていない。これは、図5に示した比較結果メモリのアドレス入力にセレクタを加えて、アドレス入力信号を選択しても良く、デュアルポートメモリを使用して、更新の際のアドレスを別ポートから入力しても良く、本発明の請求項は、これらの例に限定されるものではないことは自明である。
本発明の請求項5に記載の、ヒープ構造の情報を記憶する装置の分散メモリ手段から情報を出力する際の動作を説明する。情報出力手段は、レイヤ0の分散メモリ手段のメモリ装置に記憶された情報数が1の場合、記憶されている情報を削除してdata_outから出力する。その結果、レイヤ0からレイヤN−1の分散メモリ手段のメモリ装置に記憶された情報数が全て0の状態となる場合、即ち、レイヤ0において(empty入力=TRUE)となる場合、情報の出力を終了し、さもなければ、最も右の情報を有するレイヤの分散メモリ手段のメモリ装置の情報から、最も右の情報を削除してcomparison_data_busに出力し、挿入する情報として各レイヤにブロードキャストする。
なお、最も右の情報の削除には、分散メモリ手段のメモリ装置からの情報の読み出しを伴っている必要は必ずしもなく、分散メモリ手段のメモリ装置に情報を書き込む際に、最も右の情報を予めレジスタ等にキャッシュしておいて、comparison_data_busへの出力はキャッシュから行なっても良く、本発明の請求項は、このような場合をも包含していることは自明である。
図8は、図2(a)に示した情報の選択方法の詳細を示す説明図である。図8は、最も右の情報を削除した後の状態を示したものであり、レイヤ3の情報数は4となっている。この例では、レイヤ3においてアドレス生成手段が生成するアドレスの値は1(二進表記では001)となる。図8に示すように、最も右の情報を有するレイヤの情報数は満杯とは限らないことに注意する必要がある。生成されたアドレスの値が、このレイヤの情報数の値より小さい場合は、アドレス生成手段が生成するアドレスには有効な情報が記憶されている。従って、挿入する情報と比較される情報を有するレイヤは、レイヤ1から最も右の情報を有するレイヤまでとなる。
しかし、生成されたアドレスの値が、このレイヤの情報数の値以上となる場合は、図8から明らかな通り、アドレス生成手段が生成するアドレスには有効な情報が記憶されていない。従って、挿入する情報と比較される情報を有するレイヤは、レイヤ1から最も右の情報を有するレイヤの上のレイヤまでとなる(なお、最も右の情報を有するレイヤがレイヤ1となる場合、レイヤ1の情報数は、レイヤ1のアドレス生成手段が生成するアドレスの値より必ず大きくなる)。
即ち、第1の比較情報選択手段は、情報出力手段が情報を削除した結果、最も右の情報を有するレイヤの分散メモリ手段のメモリ装置に記憶された情報数が、そのレイヤのアドレス生成手段が生成したアドレスの値より大きい場合は、このレイヤの分散メモリ手段のメモリ装置のアドレスに、このアドレスの値を入力する。さもなければ、このレイヤの上のレイヤの分散メモリ手段のメモリ装置のアドレスに、そのレイヤのアドレス生成手段が生成したアドレスの値を入力する。
これにより、レイヤ1から最も右の情報を有するレイヤ、若しくは最も右の情報を有するレイヤの上のレイヤまでの親子の関係にある情報を選択する。この処理は一見複雑であるが、図5に示した配線例の場合、優先度情報数が満杯のレイヤでは、比較結果メモリの出力をpush_pop_address_busに出力し、最も右の情報を有するレイヤにおいて比較結果メモリの出力の可否を判断することで、容易に実現できる。
前に述べた通り、第1の比較情報選択手段が情報を選択した場合、第1の情報移動手段は、レイヤ1から最も右の情報を有するレイヤ、若しくは最も右の情報を有するレイヤの上のレイヤまでの、選択した情報を読み出して、pop_dataに各々出力すると共に挿入する情報と比較し、後者が低優先となる場合、(pop出力=TRUE)とし、情報の移動元となることを上のレイヤに示す。
これに基づいて、(pop入力=TRUE)となるレイヤは、pop_dataから情報を入力して、これを選択した情報、若しくはレイヤ0の分散メモリ手段のメモリ装置に書き込む。また、挿入する情報の挿入位置となるレイヤの選択した情報に、挿入する情報を書き込む。レイヤ1から読み出した情報より、挿入する情報が高優先となる場合、若しくは第1の比較情報選択手段が情報を選択しなかった場合、第1の情報移動手段は、レイヤ0の分散メモリ手段のメモリ装置の情報に、挿入する情報を書き込む。
本発明の請求項6に記載の、ヒープ構造の情報を記憶する装置の分散メモリ手段に情報を入力する際の動作を説明する。
図9は、図1(a)に示した情報の選択方法の詳細を示す説明図である。図9に示すように、最も左の空き情報を有するレイヤQ(図9の例ではレイヤ3)では、このレイヤの情報数が満杯であることはあり得ないため、このレイヤの情報数の下位Qビットは、このレイヤの分散メモリ手段のメモリ装置の最も左の空き情報のメモリのアドレスとなる。
従って、このレイヤの分散メモリ手段のメモリ装置のアドレスに、この値を入力して、レイヤQの最も左の空き情報から、レイヤ1の情報の親子の関係にある情報を選択し、更に、レイヤ0の情報も親の情報となるため選択する。但し、最も左の空き情報を有するレイヤが、レイヤ0となる場合、即ち、装置に記憶された情報が空の場合は、入力する情報の挿入位置はレイヤ0となり、入力する情報との比較を行なう情報は無いため、情報の選択は行なわない。
即ち、第2の比較情報選択手段は、分散メモリ手段に情報を入力する際に、入力する情報をdata_inから、comparison_data_busに出力して、各レイヤにブロードキャストする。また、レイヤ0の分散メモリ手段のメモリ装置に記憶された情報数が1の場合は、その情報を選択し、レイヤ0以外の最も左の空き情報を有するレイヤが存在すれば、そのレイヤに記憶された情報数の値を、分散メモリ手段のメモリ装置のアドレスに入力して、アドレス入力手段によってレイヤ1から最も左の空き情報を有するレイヤまでの情報を選択する。
前に述べた通り、第2の比較情報選択手段が情報を選択した場合、第2の情報移動手段は、レイヤ0から最も左の空き情報を有するレイヤの上のレイヤまで、即ち、(full出力=TRUE)が成立するレイヤの選択した情報を読み出して、push_dataに各々出力すると共に入力する情報と比較し、後者が高優先となる場合、(push出力=TRUE)とし、情報の移動元となることを下のレイヤに示す。これに基づいて、(push入力=TRUE)となるレイヤは、push_dataから情報を入力して、これを選択した情報に書き込む。
また、入力する情報の挿入位置となるレイヤの選択した情報に、入力する情報を書き込む。第2の比較情報選択手段が情報を選択しなかった場合、第2の情報移動手段は、レイヤ0の分散メモリ手段のメモリ装置の情報に、入力する情報を書き込む。
以上から明らかな通り、本発明は、従来のヒープによるソータのアルゴリズムを並列化するために必要な2分木構造の情報を記憶する装置を提供し、更に、従来のヒープによるソータにおける、メモリ等のリソースの使用効率が高い特徴や、メモリの空き領域の管理が非常に容易な特徴をそのまま生かした、並列処理アルゴリズムに基づくヒープ構造の情報を記憶する装置を提供することによって、実行時間が短く、少ないリソースで、多数の優先度に対応し、且つ、高速なヒープによるソータを実現することができる。
なお、本発明の請求項に記載された各種の論理関係に対して、例えば、メモリ装置が対応するレイヤをレイヤ1からレイヤNとする、メモリ装置の開始アドレスを1とする等の、加算・減算・乗算・除算・論理値の反転・上位下位ビットの反転等、或いはこれらの任意の組み合わせを施して得られる、本発明と本質的に同一の論理関係に基づく装置は、全て本発明に含まれることは自明である。
以上、本発明を、実施の形態に基づき具体的に説明したが、本発明は、上述した実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは勿論である。
このように、この発明に係る2分木構造の情報を記憶する装置によれば、N個のメモリ装置から構成され、該メモリ装置が各々対応するレイヤをレイヤ0からレイヤN−1とする場合、レイヤ0に対応するメモリ装置は、単一の情報を記憶し、(1≦i≦N−1)となるレイヤiに対応するメモリ装置は、各々iビットのアドレスで情報を識別し、小数点以下を切り捨てた整数値を商とする除算演算子を「/」として、レイヤ1に対応するメモリ装置のアドレス0若しくはアドレス1で識別される情報を第1の情報とし、レイヤ0に対応するメモリ装置の情報を第2の情報とする場合、該第2の情報は該第1の情報の親に、該第1の情報は該第2の情報の子になる第1の関係と、(2≦j≦N−1)となるレイヤjに対応するメモリ装置のアドレスAで識別される情報を第3の情報とし、レイヤj−1に対応するメモリ装置のアドレスA/2で識別される情報を第4の情報とする場合、該第4の情報は該第3の情報の親に、該第3の情報は該第4の情報の子になる第2の関係に基づいて、2分木構造の情報における親子の対応関係が識別される分散メモリ手段と、(1≦L≦N−1)となるレイヤLに対応する該分散メモリ手段のメモリ装置のアドレスにBが入力された場合、(1≦k≦L−1)となるレイヤkに対応する該分散メモリ手段のメモリ装置のアドレスに、各々、B/2(L−k)を入力することによって、レイヤLに対応する該分散メモリ手段のメモリ装置のアドレスBの情報から、レイヤ1に対応する該分散メモリ手段のメモリ装置のアドレスB/2(L−1)に至るまでの親子の対応関係にある情報を、同時に選択するアドレス入力手段とを備えて構成したことを特徴としている。
また、N個のメモリ装置から構成され、該メモリ装置が各々対応するレイヤをレイヤ0からレイヤN−1とする場合、レイヤ0に対応するメモリ装置は、単一の情報を記憶し、(1≦i≦N−1)となるレイヤiに対応するメモリ装置は、各々iビットのアドレスで情報を識別し、整数値の剰余を求める剰余演算子を「%」として、レイヤ1に対応するメモリ装置のアドレス0若しくはアドレス1で識別される情報を第1の情報とし、レイヤ0に対応するメモリ装置の情報を第2の情報とする場合、該第2の情報は該第1の情報の親に、該第1の情報は該第2の情報の子になる第1の関係と、(2≦j≦N−1)となるレイヤjに対応するメモリ装置のアドレスAで識別される情報を第3の情報とし、レイヤj−1に対応するメモリ装置のアドレスA%2(j−1)で識別される情報を第4の情報とする場合、該第4の情報は該第3の情報の親に、該第3の情報は該第4の情報の子になる第2の関係に基づいて、2分木構造の情報における親子の対応関係が識別される分散メモリ手段と、(1≦L≦N−1)となるレイヤLに対応する、該分散メモリ手段のメモリ装置のアドレスにBが入力された場合、(1≦k≦L−1)となるレイヤkに対応する該分散メモリ手段のメモリ装置のアドレスに、各々B%2を入力することによって、レイヤLに対応する該分散メモリ手段のメモリ装置のアドレスBの情報から、レイヤ1に対応する該分散メモリ手段のメモリ装置のアドレスB%2に至るまでの親子の対応関係にある情報を、同時に選択するアドレス入力手段とを備えて構成したことを特徴としている。
また、N−1個のメモリ装置から構成され、該メモリ装置が各々対応するレイヤをレイヤ1からレイヤN−1とする場合、レイヤ1に対応するメモリ装置は、単一の比較結果を記憶し、該比較結果は、レイヤ1に対応する前記分散メモリ手段のメモリ装置のアドレス0及びアドレス1で識別される情報に対応する比較結果となり、(2≦m≦N−1)となるレイヤmに対応するメモリ装置は、各々m−1ビットのアドレスで比較結果を識別し、アドレスDで識別される比較結果は、レイヤmに対応する前記分散メモリ手段のメモリ装置のアドレス2D及びアドレス2D+1で識別される情報に対応する比較結果となり、前記分散メモリ手段のメモリ装置に記憶された情報が更新された際に、該情報に対応する比較結果が更新される比較結果メモリ手段と、レイヤ1に対応する該比較結果メモリ手段のメモリ装置に記憶された比較結果に基づいて、レイヤ1に対応するアドレスを生成し、レイヤ1に対応する前記分散メモリ手段のメモリ装置のアドレス0で識別される情報が高優先、若しくはアドレス1で識別される情報が存在しない場合は、生成されるアドレスは0となり、レイヤ1に対応する前記分散メモリ手段のメモリ装置のアドレス1で識別される情報が高優先、若しくはアドレス0で識別される情報が存在しない場合は、生成されるアドレスは1となり、さもなければ、生成されるアドレスは0か1の何れかとなり、(2≦p≦N−1)となるレイヤpに対応する該比較結果メモリ手段のメモリ装置のアドレスに、各々レイヤp−1に対応するアドレスEp−1を入力することによって選択した比較結果に基づいて、レイヤpに対応するアドレスを各々生成し、レイヤpに対応する前記分散メモリ手段のメモリ装置のアドレス2Ep−1で識別される情報が高優先、若しくはアドレス2Ep−1+1で識別される情報が存在しない場合は、生成されるアドレスは2Ep−1となり、レイヤpに対応する前記分散メモリ手段のメモリ装置のアドレス2Ep−1+1で識別される情報が高優先、若しくはアドレス2Ep−1で識別される情報が存在しない場合は、生成されるアドレスは2Ep−1+1となり、さもなければ、生成されるアドレスは2Ep−1か2Ep−1+1の何れかとなるアドレス生成手段とを備えて構成したことを特徴としている。
また、N−1個のメモリ装置から構成され、該メモリ装置が各々対応するレイヤをレイヤ1からレイヤN−1とする場合、レイヤ1に対応するメモリ装置は単一の比較結果を記憶し、該比較結果は、レイヤ1に対応する前記分散メモリ手段のメモリ装置のアドレス0及びアドレス1で識別される情報に対応する比較結果となり、(2≦m≦N−1)となるレイヤmに対応するメモリ装置は、各々m−1ビットのアドレスで比較結果を識別し、アドレスDで識別される比較結果は、レイヤmに対応する前記分散メモリ手段のメモリ装置のアドレスD及びアドレスD+2m−1で識別される情報に対応する比較結果となり、前記分散メモリ手段のメモリ装置に記憶された情報が更新された際に、該情報に対応する比較結果が更新される比較結果メモリ手段と、レイヤ1に対応する該比較結果メモリ手段のメモリ装置に記憶された比較結果に基づいて、レイヤ1に対応するアドレスを生成し、レイヤ1に対応する前記分散メモリ手段のメモリ装置のアドレス0で識別される情報が高優先、若しくはアドレス1で識別される情報が存在しない場合は、生成されるアドレスは0となり、レイヤ1に対応する前記分散メモリ手段のメモリ装置のアドレス1で識別される情報が高優先、若しくはアドレス0で識別される情報が存在しない場合は、生成されるアドレスは1となり、さもなければ、生成されるアドレスは0か1の何れかとなり、(2≦p≦N−1)となるレイヤpに対応する該比較結果メモリ手段のメモリ装置のアドレスに、各々レイヤp−1に対応するアドレスEp−1を入力することによって選択した比較結果に基づいて、レイヤpに対応するアドレスを各々生成し、レイヤpに対応する前記分散メモリ手段のメモリ装置のアドレスEp−1で識別される情報が高優先、若しくはアドレスEp−1+2m−1で識別される情報が存在しない場合は、生成されるアドレスはEp−1となり、レイヤpに対応する前記分散メモリ手段のメモリ装置のアドレスEp−1+2m−1で識別される情報が高優先、若しくはアドレスEp−1で識別される情報が存在しない場合は、生成されるアドレスはEp−1+2m−1となり、さもなければ、生成されるアドレスはEp−1かEp−1+2m−1の何れかとなるアドレス生成手段とを備えて構成したことを特徴としている。
また、この発明に係るヒープ構造の情報を記憶する装置は、請求項3又は4に記載の2分木構造の情報を記憶する装置に記憶される情報がヒープ構造であるヒープ構造の情報を記憶する装置であって、前記分散メモリ手段から情報を出力する際に、レイヤ0に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が1の状態である場合、該レイヤ0に対応する前記分散メモリ手段のメモリ装置に記憶された情報を削除して出力し、その結果、レイヤ0からレイヤN−1に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が全て0の状態となる場合、前記分散メモリ手段からの情報の出力を終了し、(1≦S≦N−1)となるレイヤSに対応する前記分散メモリ手段のメモリ装置に記憶された情報数が1以上の状態となる場合であって、且つ、レイヤS+1に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が0の状態となる、若しくはレイヤSがレイヤN−1となる場合、該レイヤSに対応する前記分散メモリ手段のメモリ装置に記憶された情報数の値をCとすると、該レイヤSに対応する前記分散メモリ手段のメモリ装置のアドレスC−1の情報を削除して、挿入する情報とする情報出力手段と、該情報出力手段による情報の削除の結果、(1≦T≦N−1)となるレイヤTに対応する前記分散メモリ手段のメモリ装置に記憶された情報数が1以上の状態となる場合であって、且つ、レイヤT+1に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が0の状態となる、若しくはレイヤTがレイヤN−1となる場合、該レイヤTに対応する前記分散メモリ手段のメモリ装置に記憶された情報数が、前記アドレス生成手段が生成したレイヤTに対応するアドレスの値より大きければ、前記アドレス生成手段が生成したレイヤTに対応するアドレスを、該レイヤTに対応する前記分散メモリ手段のメモリ装置のアドレスに入力し、さもなければ、前記アドレス生成手段が生成したレイヤT−1に対応するアドレスを、レイヤT−1に対応する前記分散メモリ手段のメモリ装置のアドレスに入力して、前記アドレス入力手段により、レイヤ1からレイヤT若しくはレイヤT−1に対応する前記分散メモリ手段のメモリ装置の情報を同時に選択する第1の比較情報選択手段と、該第1の比較情報選択手段によって情報が選択された場合は、前記分散メモリ手段のメモリ装置から選択された全ての情報を読み出して、挿入する情報と各々比較し、読み出した情報より、該挿入する情報の優先度が高ければ高優先、さもなければ低優先、或いは読み出した情報より、該挿入する情報の優先度が高いか等しければ高優先、さもなければ低優先とし、比較の結果、レイヤUから読み出した情報より、該挿入する情報が低優先となる場合であって、且つ、レイヤU+1から読み出した情報より、該挿入する情報が高優先となる、若しくはレイヤU+1に対応する前記分散メモリ手段のメモリ装置の情報が選択されていない、若しくはレイヤUがレイヤN−1となる場合、レイヤ1から読み出した情報を、レイヤ0に対応する前記分散メモリ手段のメモリ装置の情報に書き込み、(U≧2)の場合はレイヤ2からレイヤUまでのレイヤから読み出した情報を、該第1の比較情報選択手段によって選択されたレイヤ1からレイヤU−1に対応する前記分散メモリ手段のメモリ装置の情報に各々書き込み、且つ、該第1の比較情報選択手段によって選択されたレイヤUに対応する前記分散メモリ手段のメモリ装置の情報に、該挿入する情報を書き込み、比較の結果、レイヤ1から読み出した情報より、該挿入する情報が高優先となる場合、若しくは該第1の比較情報選択手段によって情報が選択されなかった場合は、レイヤ0に対応する前記分散メモリ手段のメモリ装置の情報に、該挿入する情報を書き込む第1の情報移動手段とを備えて構成したことを特徴としている。
また、請求項1から4のいずれか一項に記載の2分木構造の情報を記憶する装置に記憶される情報がヒープ構造であるヒープ構造の情報を記憶する装置、若しくは請求項5に記載のヒープ構造の情報を記憶する装置であって、前記分散メモリ手段に情報を入力する際に、レイヤ0に対応する該分散メモリ手段のメモリ装置に記憶された情報数が1の状態である場合、レイヤ0に対応する前記分散メモリ手段のメモリ装置の情報を選択し、(1≦Q≦N−1)となるレイヤQに対応する前記分散メモリ手段のメモリ装置に記憶された情報数が2未満の状態であり、且つ、レイヤQ−1に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が2Q−1の状態となる場合、レイヤQに対応する前記分散メモリ手段のメモリ装置のアドレスに、レイヤQに対応する前記分散メモリ手段のメモリ装置に記憶された情報数の値を入力して、前記アドレス入力手段により、レイヤ1からレイヤQに対応する前記分散メモリ手段のメモリ装置の情報を同時に選択する第2の比較情報選択手段と、該第2の比較情報選択手段によって情報が選択された場合は、レイヤ0からレイヤQ−1までの前記分散メモリ手段のメモリ装置から選択された情報を読み出して、入力する情報と各々比較し、読み出した情報より該入力する情報の優先度が高ければ高優先、さもなければ低優先、或いは読み出した情報より該入力する情報の優先度が高いか等しければ高優先、さもなければ低優先とし、比較の結果、レイヤRから読み出した情報より該入力する情報が高優先となる場合であって、且つ、レイヤR−1から読み出した情報より該入力する情報が低優先となる、若しくはレイヤRがレイヤ0となる場合、レイヤRからレイヤQ−1までのレイヤから読み出した情報を、該第2の比較情報選択手段によって選択されたレイヤR+1からレイヤQに対応する前記分散メモリ手段のメモリ装置の情報に各々書き込み、且つ、該第2の比較情報選択手段によって選択されたレイヤRに対応する前記分散メモリ手段のメモリ装置の情報に、該入力する情報を書き込み、比較の結果、レイヤQ−1から読み出した情報より該入力する情報が低優先となる場合、該第2の比較情報選択手段によって選択されたレイヤQに対応する前記分散メモリ手段のメモリ装置の情報に、該入力する情報を書き込み、該第2の比較情報選択手段によって情報が選択されなかった場合は、レイヤ0に対応する前記分散メモリ手段のメモリ装置の情報に、該入力する情報を書き込む第2の情報移動手段とを備えて構成したことを特徴としている。
これにより、同時に実行可能な処理を物理的に同時に実行する並列処理によって、ヒープによるソータを実現しているため、実行時間が大幅に短縮され、高速化が実現されている。更に、非特許文献1に記載されたヒープによるソータと同様に、メモリ等のリソースの使用効率が高い特徴や、メモリの空き領域の管理が非常に容易な特徴を有する。この結果、非特許文献1に記載された、ヒープによるソータのアルゴリズムを並列化するために必要な2分木構造の情報を記憶する装置を実現し、更に、非特許文献1に記載されたヒープによるソータにおける、メモリ等のリソースの使用効率が高い特徴や、メモリの空き領域の管理が非常に容易な特徴をそのまま生かした並列処理アルゴリズムによって、ヒープによるソータの実行時間を短縮し、少ないリソースで多数の優先度に対応し、且つ、高速なヒープ構造の情報を記憶することができる。
本発明による、ヒープによるソータに優先度情報を挿入する際の並列化されたアルゴリズムの概要を示し、(a)は、挿入位置の決定の説明図、(b)は、挿入位置への移動の説明図である。 本発明による、ヒープによるソータから最も高い優先度を削除する際の並列化されたアルゴリズムの概略を示し、(a)は、挿入位置の決定の説明図、(b)は、挿入位置への移動の説明図である。 本発明に係る2分木構造の情報を記憶する装置のデータ構造の例を示す説明図である。 本発明に係る2分木構造の情報を記憶する装置、及びヒープ構造の情報を格納する装置の実施例を示す説明図である。 図4に示した、2分木構造の情報を記憶する装置及びヒープ構造の情報を格納する装置における、分散メモリ手段のメモリ装置、アドレス入力手段、比較結果メモリ手段のメモリ装置、及びアドレス生成手段間の配線例を示す説明図である。 図5に示した、push_pop_address_busの入出力、分散メモリ手段のメモリ装置のアドレス入力、各レイヤの優先度情報数、比較結果メモリのアドレス入力とデータ出力の論理的な対応関係の例を示す説明図である。 push_pop_address_busの入出力、分散メモリ装置のアドレス入力、各レイヤの優先度情報数、比較結果メモリのアドレス入力とデータ出力の論理関係が異なる例を示す説明図である。 図2(a)に示した情報の選択方法の詳細を示す説明図である。 図1(a)に示した情報の選択方法の詳細を示す説明図である。 優先キューの一例を示す説明図である。 巡回型キューの一例を示す説明図である。 タグ付け型キューの一例を示す説明図である。 プライオリティエンコーダの一例を示す説明図である。 2分木によるソータのハードウェアによる実現例を示す説明図である。 ヒープ構造の一例を示す説明図である。 ヒープ構造における優先度情報の親子関係を示す説明図である。 配列で実現したヒープ構造の一例を示す説明図である。 図17に示したヒープ構造に優先度7の情報を挿入する場合のアルゴリズムの例を示す説明図である。 図18において情報を挿入した後のヒープ構造を示す説明図である。 図17に示したヒープ構造から最も優先度が高い情報を削除するアルゴリズムの例を示す説明図である。 図20において情報を削除した後のヒープ構造を示す説明図である。 特許文献2に記載された、ヒープによるソータから最も高い優先度情報を削除する際のアルゴリズムを示す説明図である。 図22に示したヒープ構造の削除後の状態を示す説明図である。 特許文献2に記載された、ヒープによるソータに優先度情報を挿入する際のアルゴリズムをヒープ構造で示す説明図である。 図24に示したヒープ構造の挿入後の状態を示す説明図である。

Claims (6)

  1. N個のメモリ装置から構成され、該メモリ装置が各々対応するレイヤをレイヤ0からレイヤN−1とする場合、レイヤ0に対応するメモリ装置は、単一の情報を記憶し、(1≦i≦N−1)となるレイヤiに対応するメモリ装置は、各々iビットのアドレスで情報を識別し、
    小数点以下を切り捨てた整数値を商とする除算演算子を「/」として、レイヤ1に対応するメモリ装置のアドレス0若しくはアドレス1で識別される情報を第1の情報とし、レイヤ0に対応するメモリ装置の情報を第2の情報とする場合、該第2の情報は該第1の情報の親に、該第1の情報は該第2の情報の子になる第1の関係と、(2≦j≦N−1)となるレイヤjに対応するメモリ装置のアドレスAで識別される情報を第3の情報とし、レイヤj−1に対応するメモリ装置のアドレスA/2で識別される情報を第4の情報とする場合、該第4の情報は該第3の情報の親に、該第3の情報は該第4の情報の子になる第2の関係に基づいて、2分木構造の情報における親子の対応関係が識別される分散メモリ手段と、
    (1≦L≦N−1)となるレイヤLに対応する該分散メモリ手段のメモリ装置のアドレスにBが入力された場合、(1≦k≦L−1)となるレイヤkに対応する該分散メモリ手段のメモリ装置のアドレスに、各々、B/2(L−k)を入力することによって、レイヤLに対応する該分散メモリ手段のメモリ装置のアドレスBの情報から、レイヤ1に対応する該分散メモリ手段のメモリ装置のアドレスB/2(L−1)に至るまでの親子の対応関係にある情報を、同時に選択するアドレス入力手段と
    を備えて構成したことを特徴とする2分木構造の情報を記憶する装置。
  2. N個のメモリ装置から構成され、該メモリ装置が各々対応するレイヤをレイヤ0からレイヤN−1とする場合、レイヤ0に対応するメモリ装置は、単一の情報を記憶し、(1≦i≦N−1)となるレイヤiに対応するメモリ装置は、各々iビットのアドレスで情報を識別し、
    整数値の剰余を求める剰余演算子を「%」として、レイヤ1に対応するメモリ装置のアドレス0若しくはアドレス1で識別される情報を第1の情報とし、レイヤ0に対応するメモリ装置の情報を第2の情報とする場合、該第2の情報は該第1の情報の親に、該第1の情報は該第2の情報の子になる第1の関係と、(2≦j≦N−1)となるレイヤjに対応するメモリ装置のアドレスAで識別される情報を第3の情報とし、レイヤj−1に対応するメモリ装置のアドレスA%2(j−1)で識別される情報を第4の情報とする場合、該第4の情報は該第3の情報の親に、該第3の情報は該第4の情報の子になる第2の関係に基づいて、2分木構造の情報における親子の対応関係が識別される分散メモリ手段と、
    (1≦L≦N−1)となるレイヤLに対応する、該分散メモリ手段のメモリ装置のアドレスにBが入力された場合、(1≦k≦L−1)となるレイヤkに対応する該分散メモリ手段のメモリ装置のアドレスに、各々B%2を入力することによって、レイヤLに対応する該分散メモリ手段のメモリ装置のアドレスBの情報から、レイヤ1に対応する該分散メモリ手段のメモリ装置のアドレスB%2に至るまでの親子の対応関係にある情報を、同時に選択するアドレス入力手段と
    を備えて構成したことを特徴とする2分木構造の情報を記憶する装置。
  3. N−1個のメモリ装置から構成され、該メモリ装置が各々対応するレイヤをレイヤ1からレイヤN−1とする場合、レイヤ1に対応するメモリ装置は、単一の比較結果を記憶し、該比較結果は、レイヤ1に対応する前記分散メモリ手段のメモリ装置のアドレス0及びアドレス1で識別される情報に対応する比較結果となり、(2≦m≦N−1)となるレイヤmに対応するメモリ装置は、各々m−1ビットのアドレスで比較結果を識別し、アドレスDで識別される比較結果は、レイヤmに対応する前記分散メモリ手段のメモリ装置のアドレス2D及びアドレス2D+1で識別される情報に対応する比較結果となり、前記分散メモリ手段のメモリ装置に記憶された情報が更新された際に、該情報に対応する比較結果が更新される比較結果メモリ手段と、
    レイヤ1に対応する該比較結果メモリ手段のメモリ装置に記憶された比較結果に基づいて、レイヤ1に対応するアドレスを生成し、レイヤ1に対応する前記分散メモリ手段のメモリ装置のアドレス0で識別される情報が高優先、若しくはアドレス1で識別される情報が存在しない場合は、生成されるアドレスは0となり、レイヤ1に対応する前記分散メモリ手段のメモリ装置のアドレス1で識別される情報が高優先、若しくはアドレス0で識別される情報が存在しない場合は、生成されるアドレスは1となり、さもなければ、生成されるアドレスは0か1の何れかとなり、
    (2≦p≦N−1)となるレイヤpに対応する該比較結果メモリ手段のメモリ装置のアドレスに、各々レイヤp−1に対応するアドレスEp−1を入力することによって選択した比較結果に基づいて、レイヤpに対応するアドレスを各々生成し、レイヤpに対応する前記分散メモリ手段のメモリ装置のアドレス2Ep−1で識別される情報が高優先、若しくはアドレス2Ep−1+1で識別される情報が存在しない場合は、生成されるアドレスは2Ep−1となり、レイヤpに対応する前記分散メモリ手段のメモリ装置のアドレス2Ep−1+1で識別される情報が高優先、若しくはアドレス2Ep−1で識別される情報が存在しない場合は、生成されるアドレスは2Ep−1+1となり、さもなければ、生成されるアドレスは2Ep−1か2Ep−1+1の何れかとなるアドレス生成手段と
    を備えて構成したことを特徴とする請求項1に記載の2分木構造の情報を記憶する装置。
  4. N−1個のメモリ装置から構成され、該メモリ装置が各々対応するレイヤをレイヤ1からレイヤN−1とする場合、レイヤ1に対応するメモリ装置は単一の比較結果を記憶し、該比較結果は、レイヤ1に対応する前記分散メモリ手段のメモリ装置のアドレス0及びアドレス1で識別される情報に対応する比較結果となり、(2≦m≦N−1)となるレイヤmに対応するメモリ装置は、各々m−1ビットのアドレスで比較結果を識別し、アドレスDで識別される比較結果は、レイヤmに対応する前記分散メモリ手段のメモリ装置のアドレスD及びアドレスD+2m−1で識別される情報に対応する比較結果となり、前記分散メモリ手段のメモリ装置に記憶された情報が更新された際に、該情報に対応する比較結果が更新される比較結果メモリ手段と、
    レイヤ1に対応する該比較結果メモリ手段のメモリ装置に記憶された比較結果に基づいて、レイヤ1に対応するアドレスを生成し、レイヤ1に対応する前記分散メモリ手段のメモリ装置のアドレス0で識別される情報が高優先、若しくはアドレス1で識別される情報が存在しない場合は、生成されるアドレスは0となり、レイヤ1に対応する前記分散メモリ手段のメモリ装置のアドレス1で識別される情報が高優先、若しくはアドレス0で識別される情報が存在しない場合は、生成されるアドレスは1となり、さもなければ、生成されるアドレスは0か1の何れかとなり、
    (2≦p≦N−1)となるレイヤpに対応する該比較結果メモリ手段のメモリ装置のアドレスに、各々レイヤp−1に対応するアドレスEp−1を入力することによって選択した比較結果に基づいて、レイヤpに対応するアドレスを各々生成し、レイヤpに対応する前記分散メモリ手段のメモリ装置のアドレスEp−1で識別される情報が高優先、若しくはアドレスEp−1+2m−1で識別される情報が存在しない場合は、生成されるアドレスはEp−1となり、レイヤpに対応する前記分散メモリ手段のメモリ装置のアドレスEp−1+2m−1で識別される情報が高優先、若しくはアドレスEp−1で識別される情報が存在しない場合は、生成されるアドレスはEp−1+2m−1となり、さもなければ、生成されるアドレスはEp−1かEp−1+2m−1の何れかとなるアドレス生成手段と
    を備えて構成したことを特徴とする請求項2に記載の2分木構造の情報を記憶する装置。
  5. 請求項3又は4に記載の2分木構造の情報を記憶する装置に記憶される情報がヒープ構造であるヒープ構造の情報を記憶する装置であって、
    前記分散メモリ手段から情報を出力する際に、レイヤ0に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が1の状態である場合、該レイヤ0に対応する前記分散メモリ手段のメモリ装置に記憶された情報を削除して出力し、その結果、レイヤ0からレイヤN−1に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が全て0の状態となる場合、前記分散メモリ手段からの情報の出力を終了し、
    (1≦S≦N−1)となるレイヤSに対応する前記分散メモリ手段のメモリ装置に記憶された情報数が1以上の状態となる場合であって、且つ、レイヤS+1に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が0の状態となる、若しくはレイヤSがレイヤN−1となる場合、該レイヤSに対応する前記分散メモリ手段のメモリ装置に記憶された情報数の値をCとすると、該レイヤSに対応する前記分散メモリ手段のメモリ装置のアドレスC−1の情報を削除して、挿入する情報とする情報出力手段と、
    該情報出力手段による情報の削除の結果、(1≦T≦N−1)となるレイヤTに対応する前記分散メモリ手段のメモリ装置に記憶された情報数が1以上の状態となる場合であって、且つ、レイヤT+1に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が0の状態となる、若しくはレイヤTがレイヤN−1となる場合、該レイヤTに対応する前記分散メモリ手段のメモリ装置に記憶された情報数が、前記アドレス生成手段が生成したレイヤTに対応するアドレスの値より大きければ、前記アドレス生成手段が生成したレイヤTに対応するアドレスを、該レイヤTに対応する前記分散メモリ手段のメモリ装置のアドレスに入力し、さもなければ、前記アドレス生成手段が生成したレイヤT−1に対応するアドレスを、レイヤT−1に対応する前記分散メモリ手段のメモリ装置のアドレスに入力して、前記アドレス入力手段により、レイヤ1からレイヤT若しくはレイヤT−1に対応する前記分散メモリ手段のメモリ装置の情報を同時に選択する第1の比較情報選択手段と、
    該第1の比較情報選択手段によって情報が選択された場合は、前記分散メモリ手段のメモリ装置から選択された全ての情報を読み出して、挿入する情報と各々比較し、読み出した情報より、該挿入する情報の優先度が高ければ高優先、さもなければ低優先、或いは読み出した情報より、該挿入する情報の優先度が高いか等しければ高優先、さもなければ低優先とし、
    比較の結果、レイヤUから読み出した情報より、該挿入する情報が低優先となる場合であって、且つ、レイヤU+1から読み出した情報より、該挿入する情報が高優先となる、若しくはレイヤU+1に対応する前記分散メモリ手段のメモリ装置の情報が選択されていない、若しくはレイヤUがレイヤN−1となる場合、レイヤ1から読み出した情報を、レイヤ0に対応する前記分散メモリ手段のメモリ装置の情報に書き込み、(U≧2)の場合はレイヤ2からレイヤUまでのレイヤから読み出した情報を、該第1の比較情報選択手段によって選択されたレイヤ1からレイヤU−1に対応する前記分散メモリ手段のメモリ装置の情報に各々書き込み、且つ、該第1の比較情報選択手段によって選択されたレイヤUに対応する前記分散メモリ手段のメモリ装置の情報に、該挿入する情報を書き込み、
    比較の結果、レイヤ1から読み出した情報より、該挿入する情報が高優先となる場合、若しくは該第1の比較情報選択手段によって情報が選択されなかった場合は、レイヤ0に対応する前記分散メモリ手段のメモリ装置の情報に、該挿入する情報を書き込む第1の情報移動手段と
    を備えて構成したことを特徴とするヒープ構造の情報を記憶する装置。
  6. 請求項1から4のいずれか一項に記載の2分木構造の情報を記憶する装置に記憶される情報がヒープ構造であるヒープ構造の情報を記憶する装置、若しくは請求項5に記載のヒープ構造の情報を記憶する装置であって、
    前記分散メモリ手段に情報を入力する際に、レイヤ0に対応する該分散メモリ手段のメモリ装置に記憶された情報数が1の状態である場合、レイヤ0に対応する前記分散メモリ手段のメモリ装置の情報を選択し、
    (1≦Q≦N−1)となるレイヤQに対応する前記分散メモリ手段のメモリ装置に記憶された情報数が2未満の状態であり、且つ、レイヤQ−1に対応する前記分散メモリ手段のメモリ装置に記憶された情報数が2Q−1の状態となる場合、レイヤQに対応する前記分散メモリ手段のメモリ装置のアドレスに、レイヤQに対応する前記分散メモリ手段のメモリ装置に記憶された情報数の値を入力して、前記アドレス入力手段により、レイヤ1からレイヤQに対応する前記分散メモリ手段のメモリ装置の情報を同時に選択する第2の比較情報選択手段と、
    該第2の比較情報選択手段によって情報が選択された場合は、レイヤ0からレイヤQ−1までの前記分散メモリ手段のメモリ装置から選択された情報を読み出して、入力する情報と各々比較し、読み出した情報より該入力する情報の優先度が高ければ高優先、さもなければ低優先、或いは読み出した情報より該入力する情報の優先度が高いか等しければ高優先、さもなければ低優先とし、
    比較の結果、レイヤRから読み出した情報より該入力する情報が高優先となる場合であって、且つ、レイヤR−1から読み出した情報より該入力する情報が低優先となる、若しくはレイヤRがレイヤ0となる場合、レイヤRからレイヤQ−1までのレイヤから読み出した情報を、該第2の比較情報選択手段によって選択されたレイヤR+1からレイヤQに対応する前記分散メモリ手段のメモリ装置の情報に各々書き込み、且つ、該第2の比較情報選択手段によって選択されたレイヤRに対応する前記分散メモリ手段のメモリ装置の情報に、該入力する情報を書き込み、
    比較の結果、レイヤQ−1から読み出した情報より該入力する情報が低優先となる場合、該第2の比較情報選択手段によって選択されたレイヤQに対応する前記分散メモリ手段のメモリ装置の情報に、該入力する情報を書き込み、
    該第2の比較情報選択手段によって情報が選択されなかった場合は、レイヤ0に対応する前記分散メモリ手段のメモリ装置の情報に、該入力する情報を書き込む第2の情報移動手段と
    を備えて構成したことを特徴とするヒープ構造の情報を記憶する装置。
JP2005304336A 2005-10-19 2005-10-19 2分木構造の情報を記憶する装置及びヒープ構造の情報を記憶する装置 Expired - Fee Related JP4391464B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005304336A JP4391464B2 (ja) 2005-10-19 2005-10-19 2分木構造の情報を記憶する装置及びヒープ構造の情報を記憶する装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005304336A JP4391464B2 (ja) 2005-10-19 2005-10-19 2分木構造の情報を記憶する装置及びヒープ構造の情報を記憶する装置

Publications (2)

Publication Number Publication Date
JP2007114944A true JP2007114944A (ja) 2007-05-10
JP4391464B2 JP4391464B2 (ja) 2009-12-24

Family

ID=38097071

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005304336A Expired - Fee Related JP4391464B2 (ja) 2005-10-19 2005-10-19 2分木構造の情報を記憶する装置及びヒープ構造の情報を記憶する装置

Country Status (1)

Country Link
JP (1) JP4391464B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009134717A (ja) * 2007-11-30 2009-06-18 Palo Alto Research Center Inc 座標データ構造におけるデータの格納またはアクセス方法、及びその方法を用いて印刷ジョブに関する解の識別を実行するシステム
CN105094825A (zh) * 2015-07-21 2015-11-25 中国科学院信息工程研究所 一种内存变量分布动态发现方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009134717A (ja) * 2007-11-30 2009-06-18 Palo Alto Research Center Inc 座標データ構造におけるデータの格納またはアクセス方法、及びその方法を用いて印刷ジョブに関する解の識別を実行するシステム
CN105094825A (zh) * 2015-07-21 2015-11-25 中国科学院信息工程研究所 一种内存变量分布动态发现方法

Also Published As

Publication number Publication date
JP4391464B2 (ja) 2009-12-24

Similar Documents

Publication Publication Date Title
JP6535253B2 (ja) 複数のリンクされるメモリリストを利用する方法および装置
US9342462B2 (en) Systems and methods for implementing low-latency lookup circuits using sparse hash functions
JP5529976B2 (ja) 高速ipルックアップのためのシストリック・アレイ・アーキテクチャ
US10698831B2 (en) Method and apparatus for data access
TWI250424B (en) Method and apparatus for enhancing multiway radix tree
US20150169467A1 (en) Systems and Methods for Rapidly Generating Suitable Pairs of Hash Functions
US10984073B2 (en) Dual phase matrix-vector multiplication system
JPH0856230A (ja) スイッチングシステム
US9892149B2 (en) Parallelized in-place radix sorting
US20190163442A1 (en) Buffer size optimization in a hierarchical structure
US8345816B1 (en) RAM-based event counters using transposition
US11048475B2 (en) Multi-cycle key compares for keys and records of variable length
US9946512B2 (en) Adaptive radix external in-place radix sort
US20190163443A1 (en) Hierarchical sort/merge structure using a request pipe
JP4391464B2 (ja) 2分木構造の情報を記憶する装置及びヒープ構造の情報を記憶する装置
US10896022B2 (en) Sorting using pipelined compare units
US9823896B2 (en) Parallelized in-place radix sorting
WO2024066561A1 (zh) 查找空闲存储的装置、方法及芯片
JPH09179743A (ja) エレメントをソートする方法および装置
CN116521096B (zh) 存储器访问电路及存储器访问方法、集成电路和电子设备
WO2019156060A1 (ja) 並列ユニオン制御装置、並列ユニオン制御方法、および記憶媒体
US20210082082A1 (en) Data processing method and processing circuit
JP3506612B2 (ja) スケジューリング制御装置
CN116820344B (zh) 存储器访问电路及存储器访问方法、集成电路和电子设备
US10122643B2 (en) Systems and methods for reorganization of messages in queuing systems

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20070614

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20070614

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080206

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20081017

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091006

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091007

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121016

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121016

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131016

Year of fee payment: 4

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees