JP5960639B2 - 情報処理装置および情報処理方法 - Google Patents

情報処理装置および情報処理方法 Download PDF

Info

Publication number
JP5960639B2
JP5960639B2 JP2013086466A JP2013086466A JP5960639B2 JP 5960639 B2 JP5960639 B2 JP 5960639B2 JP 2013086466 A JP2013086466 A JP 2013086466A JP 2013086466 A JP2013086466 A JP 2013086466A JP 5960639 B2 JP5960639 B2 JP 5960639B2
Authority
JP
Japan
Prior art keywords
data
register
information processing
unit
comparison
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.)
Expired - Fee Related
Application number
JP2013086466A
Other languages
English (en)
Other versions
JP2014211682A (ja
Inventor
青木 孝
孝 青木
英一 細谷
英一 細谷
大塚 卓哉
卓哉 大塚
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 JP2013086466A priority Critical patent/JP5960639B2/ja
Publication of JP2014211682A publication Critical patent/JP2014211682A/ja
Application granted granted Critical
Publication of JP5960639B2 publication Critical patent/JP5960639B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)

Description

本発明は、複数のデータを並び替える技術、特に、オンライン型アルゴリズムを利用してストリームデータをソートする技術に関する。
従来のマージソータをストリームデータに対してオンライン型アルゴリズムで実装する場合では、マージソータの各段に、該当段におけるマージソート対象のデータ個数、すなわち、第n段の場合では2^(n−1)で2組、つまり2^n個のデータに相当する記憶装置が必要であった。
従来のマージソートの一例が非特許文献1に開示されている。図7を参照して、非特許文献1に開示されたマージソートの手順を説明する。マージソートは、各1個のデータの比較を行う1段目と、1段目の結果を各2個ずつ2組にして一時的に格納し、これを比較しつつ併合する2段目と、2段目の結果を各4個ずつ2組にして一時的に格納し、これを比較しつつ併合する3段目とを有する構成である。
"マージソート[Merge Sort]"、[online]、[平成25年4月2日検索]、インターネット<URL:http:// www.codereading.com/ algo_and_ds/ algo/ merge_sort. html>
特に、絶え間なく到来するデータに対して、常に停滞することなくソートを行い続けるマージソートのオンライン実装では、以下に説明するように、段数が増えることにより記憶装置の所要量の増大が避けられない。
初段には、比較するデータ各1個のための記憶装置が必要であり、比較の結果、時間的に指定の大小順になるように出力する機能を備え、第2段には、比較するデータ各2個のための記憶装置が必要であり、比較の結果、時間的に指定の大小順になるように出力する機能を備えている。一般に、第n段には、比較するデータ各(2^(n−1))個のための記憶装置が必要であり、比較の結果、時間的に指定の大小順になるように出力する機能を備えることが必要であった。これは、各段でデータ比較を進めていく途中で、2つデータ列のどちらが、どれだけ残るかを、予め決めることができないため、どちらについても、全体を格納できる記憶容量を考慮して第n段に2組の(2^(n−1))個の比較対象のデータを保持するための記憶装置を用意しなければならないことに起因する。オンライン型実装に期待される間断ない動作のためには、これらの総和の記憶装置を備えることが必要である。
また、処理対象となるデータの増大に対して、ハードウェアとして必要な記憶装置の所要量が増大してしまうという問題がある。
本発明は上述したような技術が有する問題点を解決するためになされたものであり、オンラインアルゴリズム型のマージソートの処理において、記憶装置の所要量の削減を可能にした情報処理装置および情報処理方法を提供することを目的とする。
上記目的を達成するための本発明の情報処理装置は、オンライン型アルゴリズムを利用してストリームデータをマージソートする情報処理装置であって、
前記ストリームデータとして入力され、所定のルールにしたがって予め別々にソートされた前半部分および後半部分からなるデータのうち、少なくとも該前半部分を記憶する記憶部と、
前記後半部分および前記前半部分のデータをマージソートして出力するソート処理部と、を有し、
前記ソート処理部は、前記記憶部において、前記前半部分を記憶する領域と前記後半部分を記憶する領域とで共用する構成である。
また、本発明の情報処理方法は、オンライン型アルゴリズムを利用してストリームデータをマージソートする情報処理装置による情報処理方法であって、
所定のルールにしたがって予め別々にソートされた前半部分および後半部分からなるデータのうち、前記ストリームデータとして入力される前記前半部分のデータを前記情報処理装置の記憶部に格納し、
前記ストリームデータとして入力される前記後半部分のデータと前記記憶部に格納された前記前半部分のデータをマージソートして出力し、
前記マージソートを行う際、前記記憶部において、前記前半部分を記憶する領域と前記後半部分を記憶する領域とで共用するものである。
本発明によれば、記憶装置の所要量を削減でき、処理対象の増大に対するハードウェアの増大を緩和できる。
第1の実施形態の情報処理装置の一構成例を示すブロック図である。 第1の実施形態のマージソータの第n段の構成例を示す図である。 第1の実施形態の情報処理装置によるマージソートの動作手順を示すフローチャートである。 第n段の入力となるデータの時系列の一例を示す図である。 第n段の出力となるデータの時系列の一例を示す図である。 第2の実施形態のマージソータの一構成例を示すブロック図である。 従来のマージソートの手順を説明するための図である。
オンラインアルゴリズム型のマージソータを構成する、本発明の情報処理装置および情報処理方法について、実施形態を説明する。
(第1の実施形態)
本実施形態の情報処理装置の構成を説明する。本実施形態は、第1段から第n段(nは2以上の整数)のマージソータを有するオンラインアルゴリズム型のマージソータの場合である。図1は本実施形態の情報処理装置の一構成例を示すブロック図である。
図1に示すように、情報処理装置10は、前段のソータから到来するストリームデータを受け付ける入力部11と、マージソートの対象となるデータを保持する記憶部12と、マージソートを実行するソート処理部13と、マージソート後のデータを順に出力する出力部14とを有する。ソート処理部13は、プログラムにしたがって処理を実行するCPU(Central Processing Unit)(不図示)と、プログラムを記憶するメモリ(不図示)とを有する。
図2は本実施形態のマージソータの第n段の構成例を示す図である。ここで、第(n−1)段でソートされたデータの長さをNとすると、N=2^(n−1)である。
第n段のマージソータは、図2に示すように、カウンタ21と、ラベル生成部22と、レジスタR_0〜R_Nと、比較選択部23と、制御部24とを有する構成である。図1に示したソート処理部13におけるCPU(不図示)がプログラムにしたがって処理を実行することで、図2に示すカウンタ21、ラベル生成部22、比較選択部23および制御部24が情報処理装置10に仮想的に構成される。レジスタR_0〜R_Nが図1に示した記憶部12に含まれている。
以下では、カウンタ21がカウントする値をcとし、ラベル生成部22が生成するラベルをLとする。
kを0からNの任意の整数とすると、各レジスタR_kは、ラベル生成部22で付与されるラベルの値を記録するためのフィールドL_kと、比較対象のデータを記録するためのフィールドv_kからなる。
カウンタ21は、第(n−1)段から出力されるデータが入力される度に、カウント値cを「c+1」に更新する。カウンタ21は、c=Nになると、カウント値cをリセットして0にする。
ラベル生成部22は、第(n−1)段から出力されるデータが入力される度に、データにラベルLを付与する。また、ラベル生成部22は、カウント値cを監視し、c=Nになると、データに付与するラベルを(L+1)mod 4の値に更新する。
比較選択部23は、第(n−1)段でソートされた、前半部分および後半部分からなるデータのうち、前半部分がレジスタR_1〜R_Nに格納された後、後半部分のデータが新たにレジスタR_0に格納される度に、レジスタR_1〜R_kに格納された後半部分の先頭のデータとv_Nの値を比較し、昇順に出力する場合には小さい方を出力値とし、降順に出力する場合には大きい値を出力値とする。昇順および降順がソートに関するルールに相当し、本実施形態では、昇順に出力する場合で説明する。
具体的には、比較選択部23は、各レジスタR_kのフィールドL_kを参照し、<条件式(1)>「隣接する2つの値(L_k,L_(k+1))について(1,0)または(3,2)となる箇所がある」を満たすkがあるか否かを調べ、該当するkがあると、<条件式(2)>「v_k<v_N」を満たすか否か判定し、条件式(2)を満たしていると、v_kの値を出力値とする。一方、比較選択部23は、条件式(1)を満たさない、または条件式(1)を満たしても条件式(2)を満たさない場合、v_Nの値を出力値とする。さらに、比較選択部23は、その出力結果を制御部24に通知する。
制御部24は、ラベルの付与されたデータをレジスタR_1〜R_Nに順次シフトさせて格納する。また、制御部24は、比較選択部23から受け取る出力結果がv_kを出力したことを示していると、レジスタR_1からR_kのそれぞれの値をレジスタR_(k−1)の値に更新する。また、制御部24は、受け取った出力結果がv_Nを出力したことを示していると、レジスタR_1からR_Nのそれぞれの値をレジスタR_(k−1)の値に更新する。そして、制御部24は、出力結果がいずれの場合でも、R_0の値を新たに入力されたデータの値xに更新する。
従来のオンラインアルゴリズム型のマージソータでは、比較対象のデータを保持するために、第n段において、(2^(n−1))個のレジスタを含む記憶装置を2組、すなわち(2^n)個のレジスタを用意していた。この記憶装置が2組必要になるのは、最悪の場合、どちらか一方の記憶装置のデータを全て、他方の記憶装置に後続して出力しなければならず、前半あるいは後半どちらがどれだけ残るかは、処理毎に変わるからである。しかしながら、処理の途中で、双方の記憶装置には空きができる。
これに対して、本実施形態の構成では、図2に示すように、記憶装置はR_0〜R_Nで十分であり、該当する第n段には1組の(2^(n−1)+1)個のレジスタを含む記憶装置を用意すればよい。そのため、本実施形態では、各段における記憶装置の所要量を削減でき、空き容量を再利用することができる。
なお、本実施形態では、CPU(不図示)がプログラムにしたがって処理を実行することで、カウンタ21、ラベル生成部22、比較選択部23および制御部24が情報処理装置10に仮想的に構成される場合で説明しているが、これらの構成のうち、一部または全部がそれぞれ専用の回路で構成されてもよい。
次に、本実施形態の情報処理装置による、第n段のマージソートの動作を説明する。ここでは、n=3の場合で説明する。
図3は本実施形態の情報処理装置によるマージソートの動作手順を示すフローチャートである。ここでは、昇順にソートする場合で説明する。降順にソートする場合は、図3に示すフローのステップ106における判定式「v_k<v_N」を「v_k>v_N」に置き換えればよい。
カウント値cおよびラベルLの初期値を0とし、各フィールドL_k(k=0,・・・,N)の初期値を0とする。各フィールドv_k(k=0,・・・,N)の初期値は、無効値であり任意であるが、例えば、0とする。
第(n−1)段から出力されるデータが1つ入力される度に、ソート処理部13は、図3に示す動作フローを実行する。第(n―1)段からデータが入力され、この値を「x」とすると、カウンタ21はカウント値cを「c+1」に更新する(ステップ101)。カウンタ21およびラベル生成部22は、c=Nであるか否かの判定を行い(ステップ102)、c=Nの場合、カウンタ21はカウント値cをリセットし、ラベル生成部22はラベルの値を更新する(ステップ102)。ステップ102において、c=Nでない場合、ラベルLは更新されず、カウント値cはリセットされない。
続いて、ソート処理部13は、図2に示したレジスタR_0〜R_Nに記録される情報について、次のように更新の判定を行う。
制御部24は、ラベルの付与されたデータをレジスタR_0〜R_Nに順次シフトさせて格納し、比較選択部23は、全てのレジスタR_0〜R_Nに記録されたラベルについて、<条件式(1)>を満たすか否か判定する(ステップ104)。比較選択部23は、該当するkの値を取得する。
条件式(1)を満たすkがある場合、比較選択部23は、該当するkを取得し、取得したkに対応するv_kの値が、<条件式(2)>を満たすか否か判定する(ステップ105)。条件式(2)を満たす場合、比較選択部23は、v_kの値を出力値yとし、その出力結果を制御部24に通知する。制御部24は、比較選択部23から受け取る出力結果により、レジスタR_1〜R_kのそれぞれに保持される値を、レジスタR_(k−1)に保持された値に更新する。その際、制御部24は、レジスタR_0のフィールドL_0にラベル生成部22によって付与されたラベルLの値を格納し、フィールドv_0にxの値を格納して、レジスタR_0を更新する(ステップ106)。レジスタR_(k−1)に格納されていたデータがレジスタR_kにシフトする。これにより、昇順が維持されたままレジスタR_Nの方にレジスタ間でデータがシフトする。
例えば、レジスタR_1のv_1に保持されていた値が出力値yとなった場合、レジスタR_1に保持される値がレジスタR_0に保持されていた値に更新され、新たに入力されたデータの値xがレジスタR_0のフィールドv_0に格納される。
一方、ステップ104の判定で条件式(1)を満たさない場合、または、条件式(1)を満たしてもステップ105の判定で条件式(2)を満たさない場合、比較選択部23は、v_Nの値を出力値yとし、その出力結果を制御部24に通知する。制御部24は、比較選択部23から受け取る出力結果により、レジスタR_1〜R_Nのそれぞれに保持される値を、レジスタR_(k−1)に保持された値に更新する。その際、制御部24は、レジスタR_0のフィールドL_0にラベル生成部22によって付与されたラベルLの値を格納し、フィールドv_0にxの値を格納して、レジスタR_0を更新する(ステップ107)。
このようにして、第n段のマージソータは、第(n−1)段から入力されるデータに対して、カウンタ21で計数し、ラベルLを付与し、上述した論理判断にしたがってレジスタR_0〜R_Nに順次格納して更新することで、N=2^(n−1)個のソートの済んだ2つのデータ系列を、昇順にマージして、2^n個のソートの済んだ1つのデータ系列を生成する。
次に、図3に示した手順の具体例を、図4および図5を参照して説明する。
図4は第n段の入力となるデータの時系列の一例を示す図である。図5は第n段の出力となるデータの時系列の一例を示す図である。説明を簡単にするために、n=3とする。
第n段の入力となるデータ系列は、すでに(2^(n−1))の系列についてソートの済んでいる2つのデータ系列を連結したものである。n=3の場合の出力は、図4に示すように、ソートの済んだ4つのデータで構成されるデータ系列を、2つ連結させたものになる。
n=3の場合の第n段のマージソータが達成する機能は、図5に示すように、N=4個(=2^(n−1)個)のソートの済んだ2つのデータ系列を昇順にマージして、8個(=2^n個)のソートの済んだ1つのデータ系列を生成することである。
第3段のマージソータにおいて、初期化直後に、図4に示すデータ系列が入力されるものとして説明する。
時刻t0に、値x=2のデータが入力されると、カウンタ21が計数を行う。カウント値cの初期値は0なので、このデータの入力により、カウント値cは1となる。続いて、カウンタ21およびラベル生成部22がc=Nであるか否かの判定を行うが、c=Nではないので、カウント値c=1のままである。また、入力されたデータに対して、ラベル生成部22が初期値0のラベルLを付与する。
次の時刻t0+1に値x=3のデータが入力されるとき、制御部24はレジスタR_0のフィールドL_0に「0」を格納し、フィールドv_0にデータ「2」を格納する。このようにして、時刻t0+3までに最初の4つのデータが順にレジスタに格納される。
時刻t0+4に、[数1]のように最初の4つのデータがレジスタR_0〜R_3に格納されたところで、値x=1のデータが入力される。
値x=1のデータが入力されたとき、c=Nが成立するので、ラベルLが更新される。次の時刻t0+5に値x=5のデータが入力されるとき、制御部24はレジスタR_0のフィールドL_0に「1」を格納し、フィールドv_0にデータ「1」を格納する。レジスタR_0〜R_4に保持される値は[数2]のようになる。
値x=5のデータが入力されるとき、[数2]を参照すると、条件式(1)がk=0において成立し、さらに、<条件式(2)>も成立するため、v_0=1がyとして出力される。ステップ106において、レジスタR_0のみが更新される。その結果、レジスタR_0〜R_4に保持される値は[数3]のようになる。
これ以降、時刻t0+12まで値xのデータが入力される度に、ソート処理部13が図3に示した動作フローを実行する。時刻t0+6〜t0+12における、レジスタR_0〜R_4に保持される値および出力値yを[数4]から[数10]に示す。なお、図4に示さないデータの値を「*」で表記する。
次の時刻では、v_4に格納された「*1」の値とv_0に格納された「*5」の値の比較が行われる。以降、第3段では、間断なく到来する図4と同周期の入力に対して、ソート処理部13は、第3段の処理を行い、図5と同周期の出力を発生させる。この出力は、第4段の入力となる。
以上のように、レジスタR_0〜R_4、すなわち第n段において、(2^(n−1)+1)個のレジスタ(記憶装置)によって、マージソートの処理が行われることがわかる。
本実施形態では、マージソートのオンラインアルゴリズムを実装した場合に前半データと後半データのそれぞれの記憶のために必要となる記憶装置を共用することにより、記憶装置の所要量が概ね半分で済み、記憶装置の所要量を削減することが可能となる。その結果、処理対象の増大に対するハードウェアの増大を緩和できる。
(第2の実施形態)
本実施形態は、第1の実施形態で説明したマージソータとは異なる構成の場合である。なお、本実施形態の情報処理装置の全体は、図1のブロック図に示した装置と同様であり、本実施形態では、第1の実施形態と同様な構成についての詳細な説明を省略し、第1の実施形態と異なる点を説明する。
本実施形態のマージソータの構成を説明する。図6は本実施形態のマージソータの第n段の構成例を示すブロック図である。
図6に示すように、第n段のマージソータは、ラベル生成部31と、レジスタR_0〜R_Nと、制御部32_kと、セレクタ33_kと、バス34と、比較選択部35と、分配部36とを有する。
図1に示したソート処理部13におけるCPU(不図示)がプログラムにしたがって処理を実行することで、図6に示すラベル生成部31、制御部32_0〜32_N、セレクタ33_0〜33_N、バス34、分配部36および比較選択部35が情報処理装置10に仮想的に構成される。レジスタR_0〜R_Nが図1に示した記憶部12に含まれている。
ラベル生成部31は、カウント値cを計数するカウンタ21およびラベルLを生成するラベル生成部22を有し、これらの値を更新する機能を有する。
レジスタR_kは、ラベルLを保持するためのフィールドL_kと、比較対象のデータを保持するためのフィールドv_kとを有する。k=2〜Nの場合で、各レジスタR_kの入力はレジスタR_(k−1)の出力と接続されている。
制御部32_kは、ラベルの付与されたデータをレジスタR_0〜R_Nに順次シフトさせて格納し、条件式(1)を満たすか否か、(L_k,L_(k+1))を調べ、条件式(1)の真偽に対応する制御信号をセレクタ33_kに送信することでセレクタ33_kを制御する。具体的には、制御部32_kは、条件式(1)が満たされる場合、「真」であることを示す第1の制御信号をセレクタ33_kに送信し、条件式(1)が満たされない場合、「偽」であることを示す第2の制御信号をセレクタ33_kに送信する。図6に示すように、制御部32_0〜32_Nから出力される制御信号は比較選択部35にも伝送される。
また、制御部32_kは、比較選択部35の比較結果に対応して、第1の実施形態と同様に、レジスタR_kが保持するデータを更新する。この更新処理の詳細は後述する。
セレクタ33_kは、制御部32_kから受信する制御信号にしたがって、レジスタR_kのv_kの値または0を選択して出力する。具体的には、セレクタ33_kは、第1の制御信号を制御部32_kから受信すると、レジスタR_kのv_kの値を出力し、第2の制御信号を制御部32_kから受信すると、0の値を出力する。
バス34は、セレクタ33_0〜33_Nの出力の論理和を求めて比較選択部35に出力する。条件式(1)を満たすkに対応するv_kが、バス34を介して、比較選択部35に提供される。
比較選択部35は、v_Nの値、制御部32_kからの制御信号、およびバス34の出力値に基づいて、出力値yを決定し、比較結果dを分配部36に出力する。具体的には、比較選択部35は、制御部32_0〜32_Nから受信する制御信号により条件式(1)の真偽を判定し、真がある場合には、バス34から受け取るv_kの値とレジスタR_Nのv_Nの値を比較し、条件式(2)を満たすか否かを判定し、v_Nまたはv_kの値をyとして出力する。さらに、比較選択部35は、条件式(2)の判定結果を比較結果dとして分配部36に出力する。
例えば、データを昇順に並べる場合、v_k<v_Nであるとき、比較結果dは真となり、比較選択部35はv_kの値を出力値yとする。そして、v_k<v_Nでないとき、比較結果dは偽となり、比較選択部35はv_Nの値を出力値yとする。
分配部36は、比較選択部35から受信する比較結果dを制御部32_0〜32_Nに分配する。
ここで、制御部32_kによる、レジスタR_kに格納される値の更新方法を説明する。
制御部32_kは、条件式(2)の判定結果を比較結果dとして分配部36から受け取り、条件式(2)の判定結果が真であり、条件式(1)の判定結果が真である場合には、条件式(2)を満たすkについて、k以下のレジスタR_kの値をR_(k−1)の値に更新し、レジスタR_0については、入力されたデータの(L,x)に更新する。全てのレジスタの各レジスタR_kの入力はレジスタR_(k−1)の出力と接続されており、更新には、その値が用いられる。
一方、条件式(1)の判定結果が偽である場合、または、条件式(2)の判定結果が偽である場合には、全ての制御部32_0〜32_Nは、レジスタR_1〜R_Nの全てのレジスタの値をレジスタR_(k−1)の値に更新し、レジスタR_0については、入力されたデータの(L,x)に更新する。全てのレジスタの各レジスタR_kの入力はレジスタR_(k−1)の出力と接続されており、更新には、その値が用いられる。
なお、制御部32_Nが判断対象として用いるL_(N+1)については、R_(N+1)として用意する必要はなく、L_(N+1)のみもしくは、固定値で「3」または「1」としておくこと等により、境界条件を打ち消すことができる。また、セレクタ33_Nに対応するv_kがv_Nに相当し、本実施形態では、必須の構成ではないため、図に示すことを省略している。
さらに、本実施形態では、CPU(不図示)がプログラムにしたがって処理を実行することで、ラベル生成部31、制御部32_0〜32_N、セレクタ33_0〜33_N、バス34、分配部36および比較選択部35が情報処理装置10に仮想的に構成される場合で説明したが、これらの構成のうち、一部または全部がそれぞれ専用の回路で構成されてもよい。
図6に示したマージソータが図2に示したマージソータと同様な機能を有し、本実施形態においても、図3に示した動作フローと同様な処理が実行されるため、本実施形態における動作手順についての詳細な説明を省略する。
本実施形態においても、第1の実施形態と同様な効果が得られる。また、本実施形態では、図6に示したように、第n段は、構成単位(2^n+1)個で構成され、この構成単位は、どの段であるかによらず同一である。そのため、予めこの構成単位を用意しておけば、需要に応じて即座に所定の第n段を構成することが可能となる。つまり、マージソータの各段においてソート対象のデータを記憶する部品の設計が、その部品が使われるソータの段によって変わるということがなく、どの段に対しても共通化できる。各段の構成部品の規格を共通化することで、必要に応じて所定の段を構成する際に、設計変更を速やかに実行することが可能となる。
10 情報処理装置
12 記憶部
13 ソート処理部
21 カウンタ
22、31 ラベル生成部
23、35 比較選択部
24、32_0〜32_N 制御部
33_0〜33_N セレクタ
36 分配部

Claims (5)

  1. オンライン型アルゴリズムを利用してストリームデータをマージソートする情報処理装置であって、
    前記ストリームデータとして入力され、所定のルールにしたがって予め別々にソートされた前半部分および後半部分からなるデータのうち、少なくとも該前半部分を記憶する記憶部と、
    前記後半部分および前記前半部分のデータをマージソートして出力するソート処理部と、を有し、
    前記ソート処理部は、前記記憶部において、前記前半部分を記憶する領域と前記後半部分を記憶する領域とで共用する、情報処理装置。
  2. 請求項1に記載の情報処理装置において、
    前記記憶部は、所定の順序で配置され、データ数が「前記前半部分のデータ数+1」のデータを格納するための複数のレジスタを有し、
    前記ソート処理部は、
    前記前半部分のデータを前記所定のルールに準じて前記複数のレジスタに順次シフトさせて格納し、前記後半部分のデータが1つ入力される度に、前記複数のレジスタのうち、順序が最初のレジスタに該データを格納し、該後半部分の先頭のデータと順序が最後のレジスタに格納されたデータとの大きさを比較し、前記所定のルールに基づいて1つのデータを選択して出力し、前記記憶部に残されたデータを前記順序が最後のレジスタの方にレジスタ間でシフトさせる、情報処理装置。
  3. 請求項2に記載の情報処理装置において、
    前記ソート処理部は、
    入力されるデータの数をカウントするカウンタと、
    前記入力されるデータにラベルを付与し、前記カウンタによるカウント値が所定の値になると前記ラベルを更新するラベル生成部と、
    入力される順序が隣り合う2つのデータの前記ラベルが所定の条件を満たす場合、前記複数のレジスタのデータのうち、前記後半部分の先頭のデータと前記順序が最後のレジスタに格納されたデータとの大きさを比較し、前記所定のルールに基づいて1つのデータを選択して出力し、前記2つのデータの前記ラベルが所定の条件を満たさない場合、前記順序が最後のレジスタに格納されたデータを出力する比較選択部と、
    前記比較選択部の出力結果に基づいて、前記記憶部に残されたデータを前記順序が最後のレジスタの方にレジスタ間でシフトさせる制御部と、を有する情報処理装置。
  4. 請求項2に記載の情報処理装置において、
    前記ソート処理部は、
    入力されるデータの数をカウントするとともに該データにラベルを付与し、カウント値が所定の値に達すると前記ラベルを更新するラベル生成部と、
    前記複数のレジスタに対応して設けられた、複数のセレクタおよび複数の制御部と、
    前記複数のセレクタの出力の論理和を出力するバスと、
    前記複数の制御部から受信する制御信号により、前記バスから受け取るデータと前記順序が最後のレジスタに格納されたデータとの大きさを比較するか否かを判定し、該比較の結果または前記制御信号に基づいて、出力するデータを決定する比較選択部と、
    前記比較選択部の比較結果を前記複数の制御部に出力する分配部と、を有し、
    前記複数の制御部のそれぞれは、対応するレジスタと隣り合うレジスタの2つのデータの前記ラベルが前記所定の条件を満たすか否かを示す前記制御信号を、対応するセレクタと前記比較選択部に出力し、該制御信号と前記比較結果とに基づいて、対応するレジスタに格納されたデータを順序が次のレジスタにシフトさせるか否かを判断し、
    前記複数のセレクタのそれぞれは、対応する前記制御部から受信する前記制御信号にしたがって、対応するレジスタに格納されたデータまたは0を選択して前記バスに出力し、
    前記比較選択部は、前記複数の制御部から受信する前記制御信号のうち、いずれか1つが前記所定の条件を満たすものである場合、前記バスから受け取るデータと前記順序が最後のレジスタに格納されたデータとの大きさを比較し、前記所定のルールに基づいて1つのデータを選択して出力し、前記制御信号が前記所定の条件を満たすものでない場合、前記順序が最後のレジスタに格納されたデータを出力する、情報処理装置。
  5. オンライン型アルゴリズムを利用してストリームデータをマージソートする情報処理装置による情報処理方法であって、
    所定のルールにしたがって予め別々にソートされた前半部分および後半部分からなるデータのうち、前記ストリームデータとして入力される前記前半部分のデータを前記情報処理装置の記憶部に格納し、
    前記ストリームデータとして入力される前記後半部分のデータと前記記憶部に格納された前記前半部分のデータをマージソートして出力し、
    前記マージソートを行う際、前記記憶部において、前記前半部分を記憶する領域と前記後半部分を記憶する領域とで共用する、情報処理方法。
JP2013086466A 2013-04-17 2013-04-17 情報処理装置および情報処理方法 Expired - Fee Related JP5960639B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013086466A JP5960639B2 (ja) 2013-04-17 2013-04-17 情報処理装置および情報処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013086466A JP5960639B2 (ja) 2013-04-17 2013-04-17 情報処理装置および情報処理方法

Publications (2)

Publication Number Publication Date
JP2014211682A JP2014211682A (ja) 2014-11-13
JP5960639B2 true JP5960639B2 (ja) 2016-08-02

Family

ID=51931426

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013086466A Expired - Fee Related JP5960639B2 (ja) 2013-04-17 2013-04-17 情報処理装置および情報処理方法

Country Status (1)

Country Link
JP (1) JP5960639B2 (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0728624A (ja) * 1993-07-13 1995-01-31 Mitsubishi Electric Corp ソート装置及びソート方法

Also Published As

Publication number Publication date
JP2014211682A (ja) 2014-11-13

Similar Documents

Publication Publication Date Title
US10824585B2 (en) Comparison-based sort in a reconfigurable array processor having multiple processing elements for sorting array elements
US11068265B2 (en) Sequence alignment method of vector processor
JP2017138964A5 (ja)
US8161274B2 (en) Command selection method and its apparatus
US10642901B2 (en) Sorting an array consisting of a large number of elements
US10528558B2 (en) Processing a database query in a database system
US20180129766A1 (en) Clock Jitter Emulation
US10101965B1 (en) Method and apparatus for high speed streaming sorter
US7734456B2 (en) Method and apparatus for priority based data processing
JP5960639B2 (ja) 情報処理装置および情報処理方法
KR20140096108A (ko) 집적 회로 내의 임베디드 메모리 및 전용 프로세서 구조
US8196082B1 (en) Signal routing and pin placement
JP2013156696A (ja) クラスタリング装置及び方法及びプログラム
JP4323663B2 (ja) 画像フィルタ回路及び画像フィルタリング方法
CN103631316B (zh) 用于输出复杂触发信号的多级触发系统
JP4539889B2 (ja) プロセッサ及びデータ収集方法
JPWO2009147794A1 (ja) 有限オートマトン生成システム
Kohútka et al. Reliable real-time task scheduler based on Rocket Queue architecture
CN103020203B (zh) 一种数据处理方法及装置
TWI730335B (zh) 排序裝置
JP2015053001A (ja) 半導体集積回路のレイアウト方法、及び、半導体集積回路のレイアウトプログラム
JP2013030984A (ja) 遅延ロックループ回路及びロックアップ方法
US10496564B2 (en) Bus control circuit, information processing apparatus, and control method for bus control circuit
JP2017173068A (ja) 試験回路
JP4254557B2 (ja) データ選択回路及び方法

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20141027

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20141031

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150701

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20151001

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20151005

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: 20160621

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160622

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160623

R150 Certificate of patent or registration of utility model

Ref document number: 5960639

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees