(57)【要約】  時系列データの処理内容変更に伴い、結果データに付加する情報量の増大を抑えながら、新旧の結果データの出力を混在させずに新旧切替前後の結果データを指定可能として、新旧の有用な結果データを多く出力する技術を提供する。新処理および旧処理の各処理部１０１と、旧処理から新処理への変更指示があると、最後の旧処理の結果データに、旧処理を表す新旧識別情報と、待ち合わせノードを示すノード識別情報とを付加し、最初の新処理の結果データに、新処理を表す新旧識別情報とノード識別情報とを付加する制御部１２１と、自ノードからの出力対象を選択する選択情報を記憶し、自ノードに到着した結果データおよび遅延部１１４内の結果データのうち、付加情報と選択情報とに基づき、最初の新処理の結果データより前に最後の旧処理の結果データを選択し、選択しなかった結果データを遅延部１１４に挿入する選択部１１３とを備える。
2015008481.tif 000002
【特許請求の範囲】
【請求項１】
選択手段と遅延手段を備える複数のノードと、
入力データに対して第１の処理を実行することにより、第１の処理の結果データを出力する第１の処理手段と、
入力データに対して第２の処理を実行することにより、第２の処理の結果データを出力する第２の処理手段と、
前記第１の処理から前記第２の処理への変更指示を外部から受信したとき、前記第１の処理の結果データのうち最後に装置外部へ出力されるものであると判定した結果データ（最後の旧処理の結果データ）に対して、旧処理および新処理のいずれかであることを表す新旧識別情報として旧処理を表す情報と、旧処理の結果データおよび新処理の結果データを待ち合わせる装置内のノードを示すノード識別情報とを含む付加情報を付加するとともに、前記第２の処理による結果データのうち最初に装置外部へ出力されるものであると判定した結果データ（最初の新処理の結果データ）に対して、前記新旧識別情報として新処理を表す情報と、前記ノード識別情報とを含む付加情報を付加する制御手段と、備え、
前記選択手段は、自ノードからの出力対象となる結果データを選択するための情報を表す選択情報を記憶し、前記第１の処理手段または前記第２の処理手段から出力されて自ノードに到着した結果データおよび前記遅延手段に保持される結果データのうちいずれかの結果データを選択して他のノードまたは外部に出力する際に、各結果データに付加された前記付加情報と、記憶している前記選択情報とに基づいて、前記最初の新処理の結果データを選択するより前に前記最後の旧処理の結果データを選択するとともに、選択しなかった結果データを前記遅延手段に挿入し、
前記遅延手段は、前記各ノードに含まれ、前記選択手段により選択されなかった結果データを保持することにより遅延させる、
時系列データ処理装置。
【請求項２】
前記選択手段は、前記選択情報として、前記最後の旧処理の結果データが自ノードを通過済でないことを示す情報を記憶しておき、選択した結果データに付加されている前記ノード識別情報が自ノードを示し、かつ、前記新旧識別情報が旧処理を表すとき、前記選択情報が前記通過済を示すよう更新し、到着した結果データおよび前記遅延手段に保持されている結果データについて、付加されている前記ノード識別情報が自ノードを示し、かつ、前記新旧識別情報が新処理を表すとき、前記選択情報が前記通過済を示していない場合、該結果データを選択しないことを特徴とする請求項１に記載の時系列データ処理装置。
【請求項３】
前記制御手段は、前記最後の旧処理の結果データおよび前記最初の新処理の結果データに対して、前記新旧識別情報および前記ノード識別情報に加えて、新旧変更対象の処理の種類を新旧変更対象でない処理から識別する処理識別情報を含む前記付加情報を付加し、
前記選択手段は、前記処理識別情報毎に前記選択情報を記憶し、選択した結果データに付加されている前記ノード識別情報が自ノードを示し、かつ、前記新旧識別情報が旧処理を表すとき、該結果データに付加されている処理識別情報に対応する前記選択情報が前記通過済を示すよう更新し、到着した結果データおよび前記遅延手段に保持されている結果データについて、付加されている前記ノード識別情報が自ノードを示し、かつ、前記新旧識別情報が新処理を表すとき、該結果データに付加されている前記処理識別情報に対応する前記選択情報が前記通過済を示していない場合、該結果データを選択しないことを特徴とする請求項２に記載の時系列データ処理装置。
【請求項４】
前記制御手段は、前記最後の旧処理の結果データの計算に必要な最後の入力データが入力されると、前記第１の処理手段に対して前記付加情報を送信することにより、該付加情報が付加された前記最後の旧処理の結果データを前記第１の処理手段に出力させるとともに、前記最初の新処理の結果データの計算に必要な最後の入力データが入力されると、前記第２の処理手段に対して前記付加情報を送信することにより、該付加情報が付加された前記最初の新処理の結果データを前記第２の処理手段に出力させることを特徴とする請求項１から請求項３のいずれか１項に記載の時系列データ処理装置。
【請求項５】
前記制御手段は、前記最後の旧処理の結果データを計算するのに必要な最後の入力データが入力されたタイミングを、前記第１の処理手段または前記第２の処理手段の処理状況に関する情報、もしくは、前記結果データの出力状況に関する情報に基づいて判定するとともに、前記最初の新処理の結果データを計算するのに必要な最後の入力データが入力されたタイミングを、前記第１の処理手段または前記第２の処理手段の処理状況に関する情報、もしくは、前記結果データの出力状況に関する情報に基づいて判定することを特徴とする請求項１から請求項４のいずれか１項に記載の時系列データ処理装置。
【請求項６】
前記制御手段は、前記第１の処理手段に対して、前記最後の旧処理の結果データの出力以降、結果データを出力しないよう指示する情報を送信するとともに、前記第２の処理手段に対して、前記最初の新処理の結果データの出力以前、結果データを出力しないよう指示する情報を送信することを特徴とする請求項１から請求項５のいずれか１項に記載の時系列データ処理装置。
【請求項７】
入力データに基づき第１の処理の結果データを出力する第１の処理から、入力データに基づき第２の処理の結果データを出力する第２の処理への変更指示を受信すると、
前記第１の処理の結果データのうち最後に装置外部へ出力されるものであると判定した結果データ（最後の旧処理の結果データ）に対して、旧処理および新処理のいずれかであることを表す新旧識別情報として旧処理を表す情報と、旧処理の結果データおよび新処理の結果データを待ち合わせる装置内のノードを示すノード識別情報とを含む付加情報を付加し、
前記第２の処理による結果データのうち最初に装置外部へ出力されるものであると判定した結果データ（最初の新処理の結果データ）に対して、前記新旧識別情報として新処理を表す情報と、前記ノード識別情報とを含む付加情報を付加し、
前記各ノードにおいて、自ノードからの出力対象となる結果データを選択するための情報を表す選択情報を記憶し、前記第１の処理または前記第２の処理により出力されて自ノードに到着した結果データおよび保持される結果データのうちいずれかの結果データを選択して他のノードまたは外部に出力する際に、各結果データに付加された前記付加情報と、記憶している前記選択情報とに基づいて、前記最初の新処理の結果データを選択するより前に前記最後の旧処理の結果データを選択するとともに、選択しなかった結果データを遅延させる、時系列データ処理方法。
【請求項８】
前記各ノードは、前記選択情報として、前記最後の旧処理の結果データが自ノードを通過済でないことを示す情報を記憶しておき、選択した結果データに付加されている前記ノード識別情報が自ノードを示し、かつ、前記新旧識別情報が旧処理を表すとき、前記選択情報が前記通過済を示すよう更新し、到着した結果データおよび保持されている結果データについて、付加されている前記ノード識別情報が自ノードを示し、かつ、前記新旧識別情報が新処理を表すとき、前記選択情報が前記通過済を示していない場合、該結果データを選択しない、請求項７に記載の時系列データ処理方法。
【請求項９】
入力データに基づき第１の処理の結果データを出力する第１の処理から、入力データに基づき第２の処理の結果データを出力する第２の処理への変更指示を受信すると、
前記第１の処理の結果データのうち最後に装置外部へ出力されるものであると判定した結果データ（最後の旧処理の結果データ）に対して、旧処理および新処理のいずれかであることを表す新旧識別情報として旧処理を表す情報と、旧処理の結果データおよび新処理の結果データを待ち合わせる装置内のノードを示すノード識別情報とを含む付加情報を付加し、
前記第２の処理による結果データのうち最初に装置外部へ出力されるものであると判定した結果データ（最初の新処理の結果データ）に対して、前記新旧識別情報として新処理を表す情報と、前記ノード識別情報とを含む付加情報を付加し、
前記各ノードにおいて、自ノードからの出力対象となる結果データを選択するための情報を表す選択情報を記憶し、
前記第１の処理または前記第２の処理により出力されて自ノードに到着した結果データおよび保持される結果データのうちいずれかの結果データを選択して他のノードまたは外部に出力する際に、各結果データに付加された前記付加情報と、記憶している前記選択情報とに基づいて、前記最初の新処理の結果データを選択するより前に前記最後の旧処理の結果データを選択するとともに、選択しなかった結果データを遅延させること、
をコンピュータ装置に実行させるためのプログラムを記録したコンピュータ読取り可能な記録媒体。
【請求項１０】
前記選択情報の記憶は、前記選択情報として、前記最後の旧処理の結果データが自ノードを通過済でないことを示す情報を記憶し、
前記結果データを選択して出力する際に、選択した結果データに付加されている前記ノード識別情報が自ノードを示し、かつ、前記新旧識別情報が旧処理を表すとき、前記選択情報が前記通過済を示すよう更新し、到着した結果データおよび保持されている結果データについて、付加されている前記ノード識別情報が自ノードを示し、かつ、前記新旧識別情報が新処理を表すとき、前記選択情報が前記通過済を示していない場合、該結果データを選択しない、請求項９に記載のコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、時系列データを処理する技術に関し、特に、時系列データに対する処理の内容が変化する時系列データ処理装置、時系列データ処理方法、および、コンピュータ読取り可能な記録媒体に関する。
【背景技術】
【０００２】
まず、「時系列データに対するデータ処理」について説明する。本明細書において、「時系列データに対するデータ処理」とは、次々と入力される一連のデータに対する処理をいう。時系列データに対するデータ処理による結果データも、同様に次々と出力される。「次々と入力される」とは、複数のデータがある期間にわたってそれぞれ異なるタイミングで処理装置に到着する、という意味である。時系列データに対するデータ処理の例として、時系列データの直近の２つの値の和を取る、といった処理が挙げられる。以降、時系列データに対するデータ処理を、単に、「時系列データ処理」という。【０００３】
以下の説明においては、データの配列を、［１，２，３，４］のように表し、データの集合を、｛１，２，３，４｝のように表し、データの組を、＜１０度，１月１日＞のように表す。このように、括弧の種類によってデータの種類を区別して表す。また、１、２のような個々のデータの数値は、“１”、“２”のように表記し、参照符号と区別する。【０００４】
また、時系列データ処理装置の動作に用いられるクロックの周期を「サイクル」といい、これを期間の単位として用いる。「サイクルの開始時」とは、その期間の最初の時点を意味し、「サイクルの終了時」とは、その期間の最後の時点を意味する。例えば、クロックの周波数が１ＧＨｚである場合は、ある基準時刻について第１サイクルは、基準時刻プラスゼロ秒から基準時刻プラス１ナノ秒の間の期間を意味し、第Ｎサイクルは、基準時刻プラス（Ｎ−１）ナノ秒から基準時刻プラスＮナノ秒の期間を意味する。また、第Ｍサイクルの開始時は、基準時刻プラス（Ｍ−１）ナノ秒を意味し、第Ｍサイクルの終了時は、基準時刻プラスＭナノ秒を意味する。【０００５】
ここで、入力データは、１つ以上の値からなる組である。例として、温度および日付の組、温度のみの組、銘柄と株価と時刻との組などが挙げられる。例えば、温度および日付の組を＜１０度，１月１日＞のように表す。入力データおよび装置で扱われる値を、それらが混同されるおそれがない場合は、単に「データ」ともいう。【０００６】
時系列データ処理は、複数の入力データに対して、あるいは、時系列データのウィンドウに対して処理されることが多い。「ウィンドウ」とは、入力データの集合であり、２種類ある。１つは、予め決められた数をＳ（Ｓは１以上の整数）として、直近のＳ個の入力データの集合である。もう１つは、ある決められた期間をＰとして、入力データの組の１要素を時刻とみなし、時刻が期間Ｐに収まる入力データの集合である。【０００７】
例えば、温度および日付の組を入力データとし、＜１０度、１月１日＞、＜１１度、１月２日＞、＜１０度、１月３日＞、＜１０度、１月４日＞という時系列データが与えられたとする。１月４日から過去３日間にわたる期間に収まるウィンドウは、｛＜１１度、１月２日＞，＜１０度、１月３日＞，＜１０度、１月４日＞｝である。【０００８】
また、ウィンドウ内の入力データの集合、部分集合、要素を「ウィンドウデータ」という。時系列データ処理では、このウィンドウデータが記憶されることが多い。以下の説明では、ウィンドウあるいはウィンドウデータを配列あるいは集合として表す。【０００９】
時系列データ処理を、複数のパーティションを持つＩＣ（Integrated Circuit）チップを用いて実行することを想定する。パーティションとは、処理の内容を規定することができる領域である。このようなＩＣチップの例として、ＦＰＧＡ（Field Programmable Gate Array）が挙げられる。この場合、パーティションには、処理を実行する回路を構成するための回路情報等が書き込まれる。また、時系列データ処理を、メモリからプログラムを読み込んで実行するプロセッサを用いて実行することも可能である。この場合、メモリの領域に、時系列データ処理の手順を指定するプログラムが書き込まれる。【００１０】
時系列データ処理において、第１のユーザ定義処理（旧処理）を、第２のユーザ定義処理（新処理）に変更したいことがある。すなわち、ＩＣチップ上の第１のパーティションに定義された旧処理の実行中に、第２のパーティションに新処理を実行する回路情報が書き込まれて新処理が実行され、旧処理が停止する。このようにして、旧処理を新処理に変更したいことがある。【００１１】
旧処理を新処理に変更する例として、広い範囲に分散配置された温度センサの値を入力データとしてある期間の平均を取ることにより、火事を含む緊急事態を検知するアプリケーションを考える。このようなアプリケーションでは、温度変化が激しくなってきたときに温度変化に追従する速度を高めるため、温度の平均を取る期間の長さを変更することが望ましい。【００１２】
また、旧処理を新処理に変更する他の例として、株券など金融商品の売買のタイミングを決めるための指標を計算するアプリケーションを考える。このようなアプリケーションでは、売買する金融商品の銘柄と売買戦略に応じて、必要な指標は複数存在し、出力すべき指標の集合は異なる。このようなアプリケーションが、有限数の指標しか同時に計算できないとする。時刻に応じて売買する銘柄と戦略は変化するため、そのとき売買する銘柄と売買戦略に応じて、算出する指標を変化させることが望ましい。【００１３】
図１５を用いて、旧処理を新処理に変更する際の入力データおよび出力データの一例について説明する。この例では、直近の２値の和を取る旧処理を、直近の３値の和を取る新処理に変更する。また、１サイクルごとにデータが入力されるものとし、１サイクルを単位とする時刻を用いて説明する。【００１４】
図１５において、まず、第１サイクルの開始時に、時系列データ“１”が入力される。そこで、旧処理は、その値をウィンドウデータとして保存する。これにより、旧処理が保存するウィンドウデータは、［］から［１］に変化する。【００１５】
第２サイクルの開始時に、時系列データ“２”が入力される。そこで、旧処理は、その値をウィンドウデータとして保存する。これにより、旧処理が保存するウィンドウデータは、［１］から［１，２］に変化する。そして、旧処理は、直近の２値が手に入ったため、ウィンドウデータ［１，２］を用いて結果データ“３”を出力する。【００１６】
第３サイクルの開始時に、新処理への変更指示が与えられ、新処理を実行するための情報が装置に書き込まれる。例えば、ＦＰＧＡにおいて旧処理とは異なる領域に新処理を実行する回路情報が書き込まれたとする。そして、新処理は、動作を開始する。しばらくの間、旧処理および新処理が並行に動作するものとする。【００１７】
第３サイクルの開始時に、時系列データ“３”が入力される。そこで、旧処理は、入力データ“３”を保存する。これにより、旧処理が保存するウィンドウデータは、［１，２］から［２，３］に変化する。そして、旧処理は、ウィンドウデータ［２，３］を用いて結果データ“５”を出力する。また、新処理は、入力データ“３”をウィンドウデータとして保存する。これにより、新処理が保存するウィンドウデータは、［］から［３］に変化する。【００１８】
第４サイクルの開始時に、時系列データ“４”が入力される。そこで、旧処理は、入力データ“４”を保存し、ウィンドウデータ［３，４］を用いて結果データ“７”を出力する。また、新処理は、入力データ“４”をウィンドウデータとして保存する。これにより、新処理が保存するウィンドウデータは、［３］から［３，４］に変化する。【００１９】
第５サイクルの開始時に、時系列データ“５”が入力される。そこで、旧処理は、入力データ“５”を保存し、ウィンドウデータ［４，５］を用いて結果データ“９”を出力する。また、新処理は、入力データ“５”を保存する。これにより、新処理が保存するウィンドウデータは、［３，４］から［３，４，５］に変化する。そして、新処理は、直近の３値が手に入ったため、ウィンドウデータ［３，４，５］を用いて結果データ“１２”を出力する。【００２０】
その後、旧処理が停止あるいは削除され、処理の変更が完了する。【００２１】
このような処理の変更の際に、新処理および旧処理の両方の結果が混在して装置外部への出力されないようにしつつ、両方の処理を行いたいというニーズがある。具体的には、装置外部へ出力される結果列は、旧処理の特定の結果まで旧処理の結果列で、その後、新処理の特定の結果から始まる新処理の結果列であることが望ましい。また、このような処理の変更の際に、新処理への変更指示後も、旧処理の結果のうち、まだ有用で利用可能なものを装置外部に出しつつ両方の処理を行いたいというニーズがある。【００２２】
処理変更時の上記ニーズの例として、前述した火事を含む緊急事態を検知するアプリケーションを考える。温度変化が激しくなってきた場合、温度変化に追従する速度を高めるために、温度の平均を取る期間の幅を変更することを想定する。このとき、期間の幅を変更する前の温度の平均と、期間の幅を変更した後の温度の平均とが混在して装置外部に出力されると、温度変化を正しく追従できない。したがって、温度の平均を取る期間の幅を変更する際には、処理変更前後の結果が混在して装置外部に出力されないようにする必要がある。また、処理変更を指示した後、処理変更後の温度の平均が出力されるまでの間は、処理変更前の温度の平均も依然有用で利用可能である。したがって、温度の平均を取る期間の幅を変更する際には、新処理の結果が装置外部に出力されるまでの間、旧処理の結果をより多く装置から出力することが望ましい。【００２３】
処理変更時の上記ニーズの他の例として、株券などの金融商品の売買指令を行うアプリケーションを考える。売買する銘柄を変えたい場合、売買指示の処理内容を変更する必要がある。以下、変更前の銘柄を「旧銘柄」、変更後の銘柄を「新銘柄」と記載する。このとき、旧銘柄に関する売買指示と、新銘柄に関する売買指示とが混在して装置外部に出力されると、売買を誤る原因となりうる。したがって、売買指示の処理内容を変更する際には、処理変更前後の結果が混在して装置外部に出力されないようにする必要がある。また、新銘柄に関する処理への変更指示後でも、旧銘柄に関する売買指示を受け取りたい場合がある。例えば、旧銘柄に関する売りの指令後に、新銘柄に関する処理への変更を指示したとする。このような場合、旧銘柄に関する買いの指令を出すまでは、旧銘柄に関する売買指示が出力され、その後、新銘柄に関する売買指示が出力されることが望ましい。このように、停止可能な状態になっていない旧銘柄に関する処理から出力された結果の列は有用で利用可能である。したがって、旧銘柄に関する処理から新銘柄に関する処理へ変更する際には、停止可能な状態になっていない旧処理からの結果の列を出力させ、旧処理が停止可能な状態になった後に、新銘柄に関する処理を出力させることが望ましい。【００２４】
以上のような処理に関連する技術が、特許文献１〜６、および、非特許文献１〜２に記載されている。【００２５】
特許文献１には、再構成可能デバイスを用いたシステムが開示されている。【００２６】
特許文献２には、２種類の処理を行う時系列データ圧縮装置が開示されている。【００２７】
特許文献３、４には、バージョン番号（更新版数）が付加された情報を取り扱う処理装置が開示されている。【００２８】
特許文献５、６には、出力予定時刻が付加された情報を取り扱う処理装置が開示されている。【００２９】
非特許文献１には、旧処理および新処理の２種類の処理が可能な時系列データ処理装置が開示されている。【００３０】
非特許文献２には、旧処理および新処理の２種類の処理が可能な時系列データ処理装置が開示されている。【００３１】
ここで、上述の関連技術を適宜組み合わせることにより、時系列データに対して新処理および旧処理の２種類の処理を行い、旧処理の結果および新処理の結果を識別して出力することは可能である。【００３２】
（関連技術に基づく時系列データ処理装置（その１）の動作例）
例えば、特許文献２〜４、および、非特許文献１〜２に記載された関連技術の組み合わせにより、旧処理の結果および新処理の結果を識別して出力する方法について説明する。図１６に、これらの関連技術の組み合わせにより実現可能な時系列データ処理装置６００の構成を示す。時系列データ処理装置６００は、処理部６０１、制御部６１１、選択部６２１、および、同期部６３１を備える。【００３３】
処理部６０１は、ユーザ定義処理を行う。ここで、時系列データ処理装置６００には、複数の処理部６０１が含まれる。旧処理に対応するユーザ定義処理が書き込まれた処理部６０１は、旧処理を行い、新処理に対応するユーザ定義処理が書き込まれた処理部６０１は、新処理を行う。【００３４】
制御部６１１は、ユーザ定義処理の種類を一意に識別する処理番号と、旧処理および新処理を区別するバージョン番号とを、処理部６０１の処理結果に付加する。なお、ある種類のユーザ定義処理について旧処理から新処理に変更が行われる場合、制御部６１１は、それらの旧処理および新処理に対して、同一の処理番号を付加し、異なるバージョン番号を付加する。【００３５】
選択部６２１は、１つ以上の結果データが到着すると、いずれかの結果データを選択する。ここで、時系列データ処理装置６００には、１つ以上の選択部６２１が含まれ、各選択部６２１には、処理部６０１または他の選択部６２１から出力される結果データが入力される。そして、選択部６２１は、到着した各結果データに付加された処理番号およびバージョン番号に基づいて、同一の処理番号についてより古いバージョン番号の結果を破棄し、より新しいバージョン番号の結果データを選択する。そして、各選択部６２１は、選択したデータを、次の選択部６２１または同期部６３１へ伝達する。【００３６】
同期部６３１は、処理ごとに最新のバージョン番号を記録する。そして、同期部６３１は、結果データが到着すると、記録している最新のバージョン番号より古いバージョン番号の結果データを破棄し、最新のバージョン番号が付加された新処理の結果データを外部に出力する。また、同期部６３１は、記録している最新のバージョン番号より新しいバージョン番号の結果データが到着すると、記録しているバージョン番号を新しいバージョン番号に更新する。【００３７】
このように構成される時系列データ処理装置６００の動作の一例を、図１７〜図１９を用いて説明する。この動作例では、処理部６０１−１が旧処理を行い、処理部６０１−２が新処理を行うものとする。また、処理部６０１−１からの出力が選択部６２１−１に入力され、処理部６０１−２からの出力が選択部６２１−２に入力されるものとする。また、選択部６２１−１からの出力が選択部６２１−２に入力され、選択部６２１−２からの出力が、同期部６３１に入力されるものとする。また、以下では、各処理部６０１から出力されるデータを、〈結果データ、処理番号、バージョン番号〉と表記する。【００３８】
まず、第２サイクルにおいて、旧処理を行った処理部６０１−１は、〈o1,10,1〉を、選択部６２１−１に対して出力する。また、新処理を行った処理部６０１−２は、〈n2, 10, 2〉を、選択部６２１−２に対して出力する。ここでは、旧処理の結果データ“o1”の次に、新処理の結果データ“n2”を、装置外部へ出力したいとする。図１７に、第２サイクル終了時における時系列データ処理装置６００の内部の出力情報を示す。【００３９】
次に、第３サイクルにおいて、選択部６２１−１は、到着した結果データが〈o1, 10, 1〉の１つであり選択を行う必要がない。そこで、選択部６２１−１は、〈o1, 10, 1〉を選択部６２１−２に対して出力する。同様に、選択部６２１−２は、到着した結果データが〈n2, 10, 2〉の１つであるため、これを同期部６３１に対して出力する。図１８に、第３サイクル終了時における時系列データ処理装置６００の内部の出力情報を示す。【００４０】
次に、第４サイクルにおいて、選択部６２１−２は、到着した結果データ〈o1, 10, 1〉が１つであるため、これを同期部６３１に対して出力する。また、同期部６３１は、処理番号“10”の最新バージョン番号として、“1”を記録している。そこで、同期部６３１は、到着した結果データ〈n2, 10, 2〉と、その処理番号“10”に対応する最新のバージョン番号“1”とを比較し、到着した結果データのバージョン番号の方が新しいと判断する。そして、同期部６３１は、この処理番号“10”の最新バージョン番号を“2”に更新し、〈n2, 10, 2〉を外部に出力する。図１９に、第４サイクル終了時における時系列データ処理装置６００の内部の出力情報を示す。【００４１】
次に、第５サイクルにおいて、同期部６３１は、到着した結果データ〈o1, 10, 1〉と、その処理番号“10”に対応する最新のバージョン番号“2”とを比較し、到着した結果データのバージョン番号の方が古いと判断する。そこで、同期部６３１は、この結果データを破棄する。【００４２】
以上のように、関連技術の組み合わせに基づく時系列データ処理装置６００は、旧処理の結果を外部に出力した後に新処理の結果を外部に出力することができる。しかし、この関連技術の組み合わせでは、旧処理の結果データ“o1”の次に、新処理の結果データ“n2”を出力するという目的は達成されない。このように、この関連技術の組み合わせにおいて、結果データの出力内容および順序は、新旧の結果データの各処理部６０１からの出力タイミング、選択部６２１または同期部６３１への到達タイミングに依存する。そのため、時系列データ処理装置６００は、新旧の結果データを混在させずに出力できるものの、旧処理の結果データの指定したものの次に、新処理の結果データの指定したものを出力することができない。【００４３】
（関連技術に基づく時系列データ処理装置（その１）の他の動作例）
上述した関連技術の組み合わせに基づく時系列データ処理装置６００の動作の他の一例を、図２０〜図２２を用いて説明する。ここでは、上述の動作例と同様に、処理部６０１−１が旧処理を行い、処理部６０１−２が新処理を行うものとする。また、上述の動作例と同様に、選択部６２１−１からの出力が選択部６２１−２に入力され、選択部６２１−２からの出力が、同期部６３１に入力されるものとする。ただし、この動作例では、上述の動作例と異なり、処理部６０１−１からの出力が選択部６２１−２に入力され、処理部６０１−２からの出力が選択部６２１−１に入力されるものとする。【００４４】
まず、第２サイクルにおいて、旧処理を行った処理部６０１−１は、〈o1, 10, 1〉を、選択部６２１−２に対して出力する。ここでは、旧処理の結果データ“o1”の次に、新処理の結果データ“n2”を、装置外部へ出力したいとする。図２０に、第２サイクル終了時の時系列データ処理装置６００の内部の出力情報を示す。【００４５】
次に、第３サイクルにおいて、選択部６２１−２は、到着した結果データ〈o1, 10, 1〉が１つであるため、これを同期部６３１に対して出力する。また、旧処理を行った処理部６０１−１は、〈o2, 10, 1〉を、選択部６２１−２に対して出力する。また、新処理を行った処理部６０１−２は、〈n2, 10, 2〉を、選択部６２１−１に対して出力する。図２１に、第３サイクルにおける時系列データ処理装置６００の内部の出力情報を示す。【００４６】
次に、第４サイクルにおいて、選択部６２１−２は、到着した結果データ〈o2, 10, 1〉が１つであるため、これを同期部６３１に対して出力する。また、選択部６２１−１は、到着した結果データ〈n2, 10, 2〉を、選択部６２１−２に対して出力する。また、同期部６３１は、到着した結果データ〈o1, 10, 1〉と、その処理番号“10”に対応する最新のバージョン番号“1”とを比較し、結果データに付加されたバージョン番号が最新であると判断する。そこで、同期部６３１は、〈o1, 10, 1〉を出力し、表のバージョン番号はそのままにする。図２２に、第４サイクル終了時における時系列データ処理装置６００の内部の出力情報を示す。【００４７】
次に、第５サイクルにおいて、同期部６３１は、到着した結果データ〈o2, 10, 1〉と、その処理番号“10”に対応する最新のバージョン番号“1”とを比較し、結果データに付加されたバージョン番号が最新であると判断する。そこで、同期部６３１は、〈o2, 10, 1〉を出力し、表のバージョン番号はそのままにする。【００４８】
以上のように、この関連技術の組み合わせに基づく時系列データ処理装置６００は、新処理の結果を外部に出力する前に、旧処理の結果を外部に順次出力することができる。しかし、この関連技術の組み合わせでは、旧処理の結果データ“o1”の次に新処理の結果データ“n2”を出力するという目的は達成されない。このように、時系列データ処理装置６００において、結果データの出力内容および順序は、新旧の結果データの各処理部６０１からの出力タイミング、選択部６２１または同期部６３１への到達タイミングに依存する。そのため、時系列データ処理装置６００は、新旧の結果データを混在させずに出力できるものの、旧処理の結果データの指定したものの次に、新処理の結果データの指定したものを出力することができない。【００４９】
（関連技術に基づく時系列データ処理装置（その２）の構成）
また、例えば、特許文献５〜６に記載された関連技術の組み合わせにより、旧処理の結果および新処理の結果を識別して出力する方法について説明する。図２３に、これらの関連技術の組み合わせにより実現可能な時系列データ処理装置７００の構成を示す。時系列データ処理装置７００は、処理部７０１およびネットワーク部７３１を備える。また、ネットワーク部７３１は、伝達部７３２、時刻比較部７３３、および、遅延部７３４を有する。【００５０】
処理部７０１は、ユーザ定義処理を行う。ここで、この時系列データ処理装置７００には、複数の処理部７０１が含まれる。旧処理に対応するユーザ定義処理が書き込まれた処理部７０１は、旧処理を行い、新処理に対応するユーザ定義処理が書き込まれた処理部７０１は、新処理を行う。また、処理部７０１は、処理の結果に、処理番号と、ネットワークアドレスと、出力予定時刻とを付加して出力する。処理番号は、処理を一意に識別できる情報である。ネットワークアドレスは、ネットワーク部７３１の識別情報である。【００５１】
ネットワーク部７３１は、到着した結果データの出力順序を制御する。ここで、時系列データ処理装置７００には、１つ以上のネットワーク部７３１が含まれる。各ネットワーク部７３１には、処理部７０１または他のネットワーク部７３１から出力されるデータが入力される。また、各ネットワーク部７３１は、他のネットワーク部７３１または装置外部の出力ポートに対してデータを出力する。【００５２】
遅延部７３４は、結果データを保持することにより遅延させる。【００５３】
時刻比較部７３３は、伝達部７３２に到着した結果データに付加されているネットワークアドレスが自ノードを指している場合、到着した結果データおよび遅延部７３４の結果データにそれぞれ付加されている出力予定時刻を比較する。そして、時刻比較部７３３は、出力予定時刻に達している結果データを選択し、伝達部７３２に出力させる。また、時刻比較部７３３は、選択しなかった結果データを、伝達部７３２から遅延部７３４に格納させる。【００５４】
伝達部７３２は、到着した結果データを、時刻比較部７３３の指示にしたがって、次のネットワーク部７３１または装置外部の出力ポートに伝達するか、遅延部７３４に格納させる。【００５５】
このように構成される時系列データ処理装置７００の動作の一例を、図２４〜図２６を用いて説明する。この動作例では、処理部７０１−１が旧処理を行い、処理部７０１−２が新処理を行うものとする。また、処理部７０１−１からの出力がネットワーク部７３１−１に入力され、処理部７０１−２からの出力がネットワーク部７３１−２に入力されるものとする。また、ネットワーク部７３１−１からの出力がネットワーク部７３１−２に入力され、ネットワーク部７３１−２からの出力が、外部に出力されるものとする。また、ネットワークアドレス“1”は、ネットワーク部７３１−１を指し、ネットワークアドレス“2”は、ネットワーク部７３１−２を指すものとする。また、以下では、処理部７０１から出力されるデータを、〈結果データ、処理番号、ネットワークアドレス、出力予定時刻〉と表記する。また、出力予定時刻は、１サイクルを単位として表されるものとする。【００５６】
まず、第２サイクルにおいて、旧処理を行った処理部７０１−１は、結果データ〈o1, 10, 2, 4〉を、ネットワーク部７３１−１に対して出力する。また、新処理を行った処理部７０１−２は、〈n2, 10, 2, 5〉を、ネットワーク部７３１−２に対して出力する。ここでは、旧処理の結果データ“o1”の次に、新処理の結果データ“n2”を、装置外部へ出力したいとする。図２４に、第２サイクル終了時における時系列データ処理装置７００の内部の出力情報を示す。【００５７】
次に、第３サイクルにおいて、時刻比較部７３３−１は、伝達部７３２−１に到着した結果データ〈o1, 10, 2, 4〉に付加されているネットワークアドレス“2”が自ノードを示していないので、出力予定時刻を比較せず、そのまま出力するよう伝達部７３２−１に指示する。そこで、伝達部７３２−１は〈o1, 10, 2, 4〉を、ネットワーク部７３１−２に対して出力する。また、時刻比較部７３３−２は、到着した結果データ〈n2, 10, 2, 5〉に付加されているネットワークアドレス“2”が自ノードを示しているため、現在時刻が出力予定時刻“5”に達しているかどうかを判定する。ここで、現在時刻（第３サイクル）は、出力予定時刻“5”に達していない。そこで、遅延部７３４−２は、結果データ〈n2, 10, 2, 5〉を格納する。図２５に、第３サイクル終了時における時系列データ処理装置７００の内部の出力情報を示す。【００５８】
次に、第４サイクルにおいて、時刻比較部７３３−２は、伝達部７３２−２に到着した結果データ〈o1, 10, 2, 4〉と、遅延部７３４−２に保持されている結果データ〈n2, 10, 2, 5〉とについて、それぞれ付加されているネットワークアドレス“2”が自ノードを示しているため、出力予定時刻に達しているかどうかを判定する。ここで、現在時刻（第４サイクル）は、出力予定時刻“4”に達している。そこで、時刻比較部７３３−２は、結果データ〈o1, 10, 2, 4〉を選択し、これを出力するよう伝達部７３２−２に指示する。そして、伝達部７３２−２は、結果データ〈o1, 10, 2, 4〉を、装置外部への出力ポートへ出力する。また、伝達部７３２−２は、選択しなかった結果データ〈n2, 10, 2, 5〉を遅延部７３４−２に格納させる。図２６に、第４サイクル終了時における時系列データ処理装置７００の内部の出力情報を示す。【００５９】
次に、第５サイクルにおいて、時刻比較部７３３−２は、遅延部７３４−２に保持されている結果データ〈n2, 10, 2, 5〉について、付加されているネットワークアドレス“2”が自ノードを示しているため、出力予定時刻に達しているかどうか判定する。ここで、現在時刻（第５サイクル）は、出力予定時刻“5”に達している。そこで、時刻比較部７３３−２は、結果データ〈n2, 10, 2, 5〉を選択し、これを出力するよう伝達部７３２−２に指示する。そして、伝達部７３２−２は、結果データ〈n2, 10, 2, 5〉を、装置外部への出力ポートへ出力する。【００６０】
以上のように、この関連技術の組み合わせに基づく時系列データ処理装置７００は、旧処理の結果データの指定したもの（この例では“o1”）を外部に出力後、新処理の結果データの指定したもの（この例では“n2”）を外部に出力するという目的を達成する。
【先行技術文献】
【非特許文献】
【００６１】
【非特許文献１】Kyumars Sheykh Esmail et al., Changing Flights in Mid-air: A model for Safely Modifying Continuous Queries, In Proceedings of SIGMOD’11, June 2011
【非特許文献２】Masamichi Takagi, Takashi Takenaka and Hiroaki Inoue: Dynamic query switching for complex event processing on FPGAs, In Proceedings of FPL 2012
【特許文献】
【００６２】
【特許文献１】特表２００４−５０８６１７号公報
【特許文献２】特開２００２−０４９７４７号公報
【特許文献３】特開２００１−０７５９０８号公報
【特許文献４】特開２００５−０４９１０２号公報
【特許文献５】特表２０１２−５２０６４８号公報
【特許文献６】特表２０１１−５２５３２２号公報
【発明の概要】
【発明が解決しようとする課題】
【００６３】
しかしながら、上述した特許文献１〜６、および、非特許文献１〜２には、以下の課題がある。【００６４】
特許文献１では、デバイスの構成ファイル（所定の回路を構成するための回路情報）の書き換え時に発生する問題には言及されていない。したがって、特許文献１に記載された関連技術は、新処理および旧処理の変更時に、新旧処理の結果を識別することができない。【００６５】
また、特許文献２に記載された関連技術は、前処理の結果に対する所定の判断の結果に基づいて、２種類の処理のうちの１つを適用する。この関連技術において、最終の処理結果が、いずれの処理により出力されたものであるかの区別はされない。このように、この関連技術は、２種類の処理の結果を識別することができない。【００６６】
また、特許文献３、４に記載された関連技術は、バージョン番号を付加することにより、情報の新旧を識別してより古いバージョン番号の情報を破棄する。そのため、この関連技術は、より古いバージョン番号の情報のうち有用なものをより多く出力することができない。【００６７】
また、特許文献２に記載された関連技術と、特許文献３または特許文献４に記載された関連技術とを組み合わせると、時系列データに対して新処理および旧処理の２種類の処理を行い、その結果データについて、新旧いずれの処理により生成されたものであるかを判別することは可能となる。しかしながら、これらの関連技術を組み合わせても、旧処理による結果データであって有用なものをより多く出力することができない。【００６８】
また、図１６〜図２２を用いて説明したように、特許文献２〜４に記載された関連技術と、非特許文献１〜２に記載された関連技術とを組み合わせると、旧処理および新処理の結果を識別可能となる。その結果、上述したように、これらの関連技術の組み合わせにより、旧処理の結果データおよび新処理の結果データを混在させずに出力することはできる。しかしながら、上述したように、これらの関連技術を組み合わせても、旧処理の結果のうち指定したものを外部に出力後、新処理の結果の指定したものを外部に出力することができない。【００６９】
また、図２３〜図２６を用いて説明したように、特許文献５〜６に記載された関連技術を組み合わせると、旧処理の結果データの指定したものを出力後、新処理の結果データの指定したものを出力可能となる。しかしながら、これらの関連技術を組み合わせでは、処理の結果データに対して、出力予定時刻を付加して伝達・記憶する必要がある。そのため、１つの装置内で動作する処理が多くなると、伝達・記憶に必要となる資源が増大するという課題が生じる。例えば、出力予定時刻に64ビットを用いた場合、図２４の例では、処理部７０１−１からネットワーク部７３１−１へのワイヤ、処理部７０１−２からネットワーク部７３１−２へのワイヤ、ネットワーク部７３１−１からネットワーク部７３１−２へのワイヤにそれぞれ64ビット分の資源が追加で必要になる。また、遅延部７３４−１、遅延部７３４−２には、それぞれ64ビット分の資源が追加で必要になる。【００７０】
本発明は、上述の課題を解決するためになされたもので、時系列データ処理における処理内容の変更に伴い、出力の新旧切り替え前後の結果データを指定可能として、新旧の各処理による結果データの有用なものをより多く出力する技術を提供することを目的とする。上記技術の提供の際、本発明は、処理の結果データに付加する情報量の増大を抑え、新旧の各処理による結果データの出力を混在させることはない。
【課題を解決するための手段】
【００７１】
本発明の時系列データ処理装置は、選択部と遅延部を備える複数のノードと、入力データに対して第１の処理を実行することにより、第１の処理の結果データを出力する第１の処理部と、入力データに対して第２の処理を実行することにより、第２の処理の結果データを出力する第２の処理部と、前記第１の処理から前記第２の処理への変更指示を外部から受信したとき、前記第１の処理の結果データのうち最後に装置外部へ出力されるものであると判定した結果データ（最後の旧処理の結果データ）に対して、旧処理および新処理のいずれかであることを表す新旧識別情報として旧処理を表す情報と、旧処理の結果データおよび新処理の結果データを待ち合わせる装置内のノードを示すノード識別情報とを含む付加情報を付加するとともに、前記第２の処理による結果データのうち最初に装置外部へ出力されるものであると判定した結果データ（最初の新処理の結果データ）に対して、前記新旧識別情報として新処理を表す情報と、前記ノード識別情報とを含む付加情報を付加する制御部と、を備え、前記選択部は、自ノードからの出力対象となる結果データを選択するための情報を表す選択情報を記憶し、前記第１の処理部または前記第２の処理部から出力されて自ノードに到着した結果データおよび前記遅延部に保持される結果データのうちいずれかの結果データを選択して他のノードまたは外部に出力する際に、各結果データに付加された前記付加情報と、記憶している前記選択情報とに基づいて、前記最初の新処理の結果データを選択するより前に前記最後の旧処理の結果データを選択するとともに、選択しなかった結果データを前記遅延部に挿入し、前記遅延部は、前記各ノードに含まれ、前記選択部により選択されなかった結果データを保持することにより遅延させる。【００７２】
また、本発明の時系列データ処理方法は、入力データに基づき第１の処理の結果データを出力する第１の処理から、入力データに基づき第２の処理の結果データを出力する第２の処理への変更指示を受信すると、前記第１の処理の結果データのうち最後に装置外部へ出力されるものであると判定した結果データ（最後の旧処理の結果データ）に対して、旧処理および新処理のいずれかであることを表す新旧識別情報として旧処理を表す情報と、旧処理の結果データおよび新処理の結果データを待ち合わせる装置内のノードを示すノード識別情報とを含む付加情報を付加し、前記第２の処理による結果データのうち最初に装置外部へ出力されるものであると判定した結果データ（最初の新処理の結果データ）に対して、前記新旧識別情報として新処理を表す情報と、前記ノード識別情報とを含む付加情報を付加し、前記各ノードにおいて、自ノードからの出力対象となる結果データを選択するための情報を表す選択情報を記憶し、前記第１の処理または前記第２の処理により出力されて自ノードに到着した結果データおよび保持される結果データのうちいずれかの結果データを選択して他のノードまたは外部に出力する際に、各結果データに付加された前記付加情報と、記憶している前記選択情報とに基づいて、前記最初の新処理の結果データを選択するより前に前記最後の旧処理の結果データを選択するとともに、選択しなかった結果データを遅延させる。【００７３】
また、本発明のコンピュータ読取り可能な記録媒体は、入力データに基づき第１の処理の結果データを出力する第１の処理から、入力データに基づき第２の処理の結果データを出力する第２の処理への変更指示を受信し、前記第１の処理の結果データのうち最後に装置外部へ出力されるものであると判定した結果データ（最後の旧処理の結果データ）に対して、旧処理および新処理のいずれかであることを表す新旧識別情報として旧処理を表す情報と、旧処理の結果データおよび新処理の結果データを待ち合わせる装置内のノードを示すノード識別情報とを含む付加情報を付加し、前記第２の処理による結果データのうち最初に装置外部へ出力されるものであると判定した結果データ（最初の新処理の結果データ）に対して、前記新旧識別情報として新処理を表す情報と、前記ノード識別情報とを含む付加情報を付加し、前記各ノードにおいて、自ノードからの出力対象となる結果データを選択するための情報を表す選択情報を記憶し、前記第１の処理または前記第２の処理により出力されて自ノードに到着した結果データおよび保持される結果データのうちいずれかの結果データを選択して他のノードまたは外部に出力する際に、各結果データに付加された前記付加情報と、記憶している前記選択情報とに基づいて、前記最初の新処理の結果データを選択するより前に前記最後の旧処理の結果データを選択するとともに、選択しなかった結果データを遅延させる、をコンピュータ装置に実行させるためのプログラムを記録する。
【発明の効果】
【００７４】
本発明は、時系列データ処理における処理内容の変更に伴い、出力の新旧切り替え前後の結果データを指定可能として、新旧の各処理による結果データの有用なものをより多く出力する技術を提供することができる。上記技術の提供の際、本発明は、処理の結果データに付加する情報量の増大を抑え、新旧の各処理による結果データの出力を混在させることはない。
【図面の簡単な説明】
【００７５】
【図１】本発明の第１の実施の形態としての時系列データ処理装置の構成を示すブロック図である。
【図２】本発明の第１の実施の形態としての時系列データ処理装置の制御部の動作を示すフローチャートである。
【図３】本発明の第１の実施の形態としての時系列データ処理装置の選択部の動作を示すフローチャートである。
【図４】本発明の第２の実施の形態としての時系列データ処理装置の構成を示すブロック図である。
【図５】本発明の第２の実施の形態において処理部から出力される結果データ構造の一例を示す図である。
【図６】本発明の第２の実施の形態としての時系列データ処理装置の制御部の動作を示すフローチャートである。
【図７】本発明の第２の実施の形態としての時系列データ処理装置の選択部の動作を示すフローチャートである。
【図８】本発明の第２の実施の形態としての時系列データ処理装置の動作の具体例において、第２サイクル終了時に各部から出力されるデータを説明する図である。
【図９】本発明の第２の実施の形態としての時系列データ処理装置の動作の具体例において、第３サイクル終了時に各部から出力されるデータを説明する図である。
【図１０】本発明の第２の実施の形態としての時系列データ処理装置の動作の具体例において、第４サイクル終了時に各部から出力されるデータを説明する図である。
【図１１】本発明の第２の実施の形態としての時系列データ処理装置の動作の具体例において、第５サイクル終了時に各部から出力されるデータを説明する図である。
【図１２】本発明の第２の実施の形態としての時系列データ処理装置の動作の具体例において、第６サイクル終了時に各部から出力されるデータを説明する図である。
【図１３】本発明の第２の実施の形態としての時系列データ処理装置の動作の具体例において、第７サイクル終了時に各部から出力されるデータを説明する図である。
【図１４】本発明の第２の実施の形態としての時系列データ処理装置の実現のために必要な追加資源の一例を説明する図である。
【図１５】関連技術の時系列データ処理装置の旧処理および新処理によって出力される結果データの時間遷移図である。
【図１６】関連技術の組み合わせにより実現可能な時系列データ処理装置の一例の構成を示すブロック図である。
【図１７】図１６に示した関連技術の時系列データ処理装置の動作の一例において、第２サイクル終了時に各部から出力されるデータを説明する図である。
【図１８】図１６に示した関連技術の時系列データ処理装置の動作の一例において、第３サイクル終了時に各部から出力されるデータを説明する図である。
【図１９】図１６に示した関連技術の時系列データ処理装置の動作の一例において、第４サイクル終了時に各部から出力されるデータを説明する図である。
【図２０】図１６に示した関連技術の時系列データ処理装置の動作の他の例において、第２サイクル終了時に各部から出力されるデータを説明する図である。
【図２１】図１６に示した関連技術の時系列データ処理装置の動作の他の例において、第３サイクル終了時に各部から出力されるデータを説明する図である。
【図２２】図１６に示した関連技術の時系列データ処理装置の動作の他の例において、第４サイクル終了時に各部から出力されるデータを説明する図である。
【図２３】関連技術の組み合わせにより実現可能な他の時系列データ処理装置の構成を示すブロック図である。
【図２４】図２３に示した関連技術の時系列データ処理装置の動作の一例において、第２サイクル終了時に各部から出力されるデータを説明する図である。
【図２５】図２３に示した関連技術の時系列データ処理装置の動作の一例において、第３サイクル終了時に各部から出力されるデータを説明する図である。
【図２６】図２３に示した関連技術の時系列データ処理装置の動作の一例において、第４サイクル終了時に各部から出力されるデータを説明する図である。
【発明を実施するための形態】
【００７６】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
【００７７】
（第１の実施の形態）
本発明の第１の実施の形態としての時系列データ処理装置１００は、複数の領域においてそれぞれ異なるユーザ定義処理を実行することが可能な装置である。時系列データ処理装置１００は、実行時に、あるユーザ定義処理を、他のユーザ定義処理に変更可能に構成される。以下、ユーザ定義処理を、単に「処理」とも記載する。また、変更前の処理を「旧処理」とも記載し、変更後の処理を「新処理」とも記載するものとする。
【００７８】
例えば、時系列データ処理装置１００は、複数の領域を有するＩＣチップによって構成可能である。このようなＩＣチップの例としては、ＦＰＧＡ（Field Programmable Gate Array）が挙げられる。このようなＩＣチップは、ある領域において旧処理を動作させたまま、新処理を実行するための回路情報を、旧処理が動作する領域とは別の領域に書き込んでその動作を開始させることが可能である。そして、このようなＩＣチップは、その後、旧処理を実行する回路情報を該当する領域から削除することにより、旧処理を停止させることが可能である。このようにして、このようなＩＣチップは、結果が出力されない期間を短縮しながら処理の変更を実現可能となっている。
【００７９】
図１は、時系列データ処理装置１００の構成を示すブロック図である。図１において、時系列データ処理装置１００は、複数の処理部１０１と、１つ以上のネットワーク部１１１と、制御部１２１とを備える。また、ネットワーク部１１１は、伝達部１１２と、選択部１１３と、遅延部１１４とを有する。なお、ネットワーク部１１１は、本発明におけるノードの一実施形態を構成する。また、伝達部１１２は、選択部１１３とともに、本発明における選択部の一実施形態を構成する。
【００８０】
図１において、各処理部１０１には、外部より時系列データが入力される。また、各処理部１０１から出力されるデータは、いずれかのネットワーク部１１１に入力される。また、各ネットワーク部１１１には、処理部１０１または他のネットワーク部１１１から出力されるデータが入力される。また、各ネットワーク部１１１から出力されるデータは、他のネットワーク部１１１に入力されるか、装置外部に出力される。このように、時系列データ処理装置１００は、各処理部１０１により出力される結果データを、１つ以上のネットワーク部１１１から構成されるネットワークで１つに束ねたのち、装置外部に出力する構成となっている。なお、図１には、２つの処理部１０１と、１つのネットワーク部１１１と、１つの制御部１２１とを示しているが、本発明の時系列データ処理装置が備える各部の数を限定するものではない。
【００８１】
処理部１０１は、入力される時系列データに対して、定義された処理を実行することにより結果データを生成して出力する。例えば、ある処理部１０１には、旧処理を実行する回路情報が書き込まれ、他の処理部１０１には、新処理を実行する回路情報が書き込まれていてもよい。なお、旧処理を実行する処理部１０１は、本発明における第１の処理部の一実施形態を構成する。また、新処理を実行する処理部１０１は、本発明における第２の処理部の一実施形態を構成する。
【００８２】
制御部１２１は、外部から、処理の変更指示を表す情報を受信する。この変更指示を表す情報には、旧処理を実行中の処理部１０１を特定する情報と、新処理が書き込まれる処理部１０１を特定する情報とが含まれていてもよい。
【００８３】
また、制御部１２１は、最後の旧処理の結果データに対して、旧処理を表す新旧識別情報と、ノード識別情報とを含む付加情報を付加する。最後の旧処理の結果データとは、旧処理を実行する処理部１０１から出力される結果データのうち最後に装置外部へ出力されるものであると判定した結果データをいう。例えば、制御部１２１は、旧処理を実行する処理部１０１が停止可能な状況になったときに出力される結果データを、最後の旧処理の結果データであると判定してもよい。停止可能な状況とは、旧処理を実行する処理部１０１の一連の処理が完了した状況であってもよい。
【００８４】
また、制御部１２１は、最初の新処理の結果データに対して、新処理を表す新旧識別情報と、ノード識別情報とを含む付加情報を付加する。最初の新処理の結果データとは、新処理を実行する処理部１０１から出力される結果データのうち最初に装置外部へ出力されるものとして判定した結果データをいう。例えば、制御部１２１は、新処理を実行する処理部１０１の起動後所定サイクル後に出力される結果データを、最初の新処理の結果データであると判定してもよい。
【００８５】
新旧識別情報は、旧処理および新処理を識別可能な情報である。つまり、新旧識別情報は、その結果データを出力した処理が、時系列データ処理装置１００内で進行する処理変更の対象であり、旧処理および新処理のいずれかであることを表している。
【００８６】
ノード識別情報は、新処理の結果データおよび旧処理の結果データを待ち合わせるネットワーク部１１１を識別する情報である。前述のように、時系列データ処理装置１００は、複数の各処理部１０１により出力される結果データを、１つ以上のネットワーク部１１１から構成されるネットワークで１つに束ねたのち、装置外部に出力する。そこで、制御部１２１は、最後の旧処理の結果データおよび最初の旧処理の結果データに対してそれぞれ付加する共通のノード識別情報として、双方の結果データが通過する共通のネットワーク部１１１の場所を計算すればよい。なお、ノード識別情報は、待ち合わせが不要であることを表す場合もある。
【００８７】
また、制御部１２１は、最初の新処理の結果データが出力された後、新旧処理の変更が完了する直前までに新処理の処理部１０１から出力される新処理の結果データに対して、新処理を表す新旧識別情報、および、待ち合わせ不要を表すノード識別情報を付加する。なお、新旧処理の変更が完了するとは、装置内に、最初の新処理の結果データ（新処理を示す新旧識別情報および待ち合わせノードを示すノード情報を含む付加情報が付加された結果データ）が存在しなくなる（装置外に出力される）ことをいう。
【００８８】
以降、付加情報が付加された結果データを、単に「結果データ」と記載する場合もある。また、時系列データ処理装置１００内において、結果データは、付加されている付加情報とともに、各部によって入出力または保持されるものとする。
【００８９】
選択部１１３は、自ノードからの出力対象となる結果データを選択するための情報を表す選択情報を記憶しておく。ここで、自ノードとは、その選択部１１３が含まれるネットワーク部１１１をさす。例えば、選択部１１３は、選択情報として、最後の旧処理の結果データが自ノードを通過済であるか否かを示す情報を記憶してもよい。この場合、選択部１１３は、処理変更の開始前に、選択情報を、通過済でないことを表すよう初期化する。
【００９０】
また、選択部１１３は、各処理部１０１により出力されて自ノードに到着した結果データおよび遅延部１１４に保持されている結果データのうちいずれか１つを選択して他ノードまたは外部に出力する。このとき、選択部１１３は、各結果データに付加された付加情報と、記憶している選択情報とを参照することにより、最初の新処理の結果データを選択するより前に、最後の旧処理の結果データを選択する。つまり、選択部１１３は、最後の旧処理の結果データを選択する前に、最初の新処理の結果データを選択しないようにする。
【００９１】
詳細には、選択部１１３は、結果データに付加されているノード識別情報が自ノードを示し、かつ、新旧識別情報が新処理を表すとき、選択情報が通過済を示していない場合には、この結果データを選択しないことを決定する。
【００９２】
また、選択部１１３は、結果データに付加されているノード識別情報が待ち合わせ不要を示し、かつ、新旧識別情報が新処理を表し、かつ、遅延部１１４に最初の新処理の結果データが格納されている場合、この結果データを選択しないことを決定する。なお、選択部１１３は、遅延部１１４に格納されている結果データに付加されている新旧識別情報が新処理を表し、ノード識別情報が自ノードを示していれば、最初の新処理の結果データが遅延部１１４に格納されていると判断できる。
【００９３】
また、選択部１１３は、それ以外の結果データについては、同じ処理部１０１から出力された結果の出力順序が入れ替わらないように、かつ、何らかの優先度に基づいてそのうち１つを選択する。ここで、「それ以外の結果データ」には、選択情報が通過済を示している場合に、ノード識別情報が自ノードを示しかつ新旧識別情報が新処理を示している結果データが含まれる。また、「それ以外の結果データ」には、遅延部１１４に新処理の結果データが格納されていない場合に、ノード識別情報が待ち合わせ不要を示しかつ新旧識別情報が新処理を示している結果データが含まれる。また、「それ以外の結果データ」には、付加されているノード識別情報が自ノードを示していないか、または、新旧識別情報が旧処理を示している結果データが含まれる。また、何らかの優先度とは、処理の種類毎に設定された優先順位や、ラウンドロビンであってもよい。
【００９４】
また、選択部１１３は、選択した結果データに付加されているノード識別情報が自ノードを示し、かつ、新旧識別情報が旧処理を表すとき、選択情報が通過済を示すよう更新する。
【００９５】
また、選択部１１３は、選択した結果データを、伝達部１１２を介して、次のネットワーク部１１１または装置外部に出力する。また、選択部１１３は、選択しなかった結果データを、伝達部１１２から遅延部１１４に挿入させる。
【００９６】
伝達部１１２は、選択部１１３の制御の基に、入力された結果データあるいは遅延部１１４に格納されている結果データを、次のネットワーク部１１１あるいは装置外部への出力ポートへ伝達する。なお、伝達部１１２は、結果データとともに、付加されている付加情報も出力する。
【００９７】
遅延部１１４は、選択部１１３の制御の基に、結果データを保持することにより遅延させる。また、遅延部１１４は、複数の結果データを保持可能となっていてもよい。その場合、遅延部１１４は、旧処理の処理部１０１からの結果データが、新処理の処理部１０１からの結果データより先に取り出される位置につくよう格納する。また、遅延部１１４は、同一の処理部１０１からの結果データについては、到着した順に取り出されるよう格納する。例えば、遅延部１１４は、キュー構造であってもよい。
【００９８】
以上のように構成された時系列データ処理装置１００の動作について、図２および図３を参照して説明する。
【００９９】
なお、以下の説明において、所定の動作を完了させるために要する単位時間を規定するクロックの周期を、「１サイクル」という。また、時系列データ処理装置１００は、複数の領域（パーティション）を有するＩＣチップによって構成されるものとする。また、各パーティションには、構成データ、コンフィギュレーションデータと呼ばれる設定情報が設定されることにより、ユーザ定義処理を実行する回路が作成されるものとする。
【０１００】
また、以下では、「指示する」とは、装置内の任意の部分が、他の部分に接続されている配線の信号を操作すること、または、他の部分に存在する記憶装置に指示内容を表す値を書き込むこと等を意味する。また、「設定する」、「記憶する」とは、装置内の任意の部分が、他の部分に存在する記憶装置に値を書き込むことを意味する。また、「送る」、「送信する」とは、装置内の任意の部分が、他の部分に接続されている配線の信号を操作すること、または、他の部分に存在する記憶装置に値を書き込むことを意味する。また、「受け取る」、「受信する」とは、装置内の任意の部分が、他の部分によって情報を送信される対象となることを意味する。
【０１０１】
また、時系列データ処理装置１００は、旧処理から新処理への処理の変更指示を外部から受信すると、以下の動作を開始するものとする。なお、時系列データ処理装置１００は、このような変更指示を、外部に接続されたホストコンピュータ等から受信してもよい。また、変更指示対象の新処理に関するユーザ定義情報は、旧処理を実行中の処理部１０１とは異なるパーティションによって構成される任意の処理部１０１に書き込まれるものとする。
【０１０２】
まず、制御部１２１による動作を図２に示す。
【０１０３】
図２において、まず、制御部１２１は、旧処理の処理部１０１により出力される最後の旧処理の結果データに対して、旧処理を表す新旧識別情報、および、待ち合わせのノードを示すノード識別情報を付加する（Ｓ１）。なお、これより後のタイミングでは、制御部１２１は、旧処理の処理部１０１に対して、結果データを出力しないよう指示する情報を送信し続ける。
【０１０４】
次に、制御部１２１は、新処理の処理部１０１により出力される最初の新処理の結果データに対して、新処理を表す新旧識別情報、および、待ち合わせのノードを示すノード識別情報を付加する（Ｓ２）。なお、これより以前のタイミングでは、制御部１２１は、新処理の処理部１０１に対して、結果データを出力しないよう指示する情報を送信し続ける。また、制御部１２１は、最初の新処理の結果データが出力された後、新旧処理の変更が完了する直前までの間に、新処理の処理部１０１により出力される結果データに対して、新処理を表す新旧識別情報、および、待ち合わせ不要を表すノード識別情報を付加する。
【０１０５】
そして、制御部１２１は、図２のＳ１とＳ２の動作を繰り返す。
【０１０６】
以上で、制御部１２１の動作の説明を終了する。
【０１０７】
次に、ネットワーク部１１１の動作を図３に示す。
【０１０８】
図３において、まず、選択部１１３は、選択情報として、通過済でないことを表す情報に初期化する（Ｓ１１）。
【０１０９】
次に、選択部１１３は、自ノードの伝達部１１２に到着した結果データと、遅延部１１４に格納されている結果データの最も古いものとの間で、出力ポートの使用権の調停を行う（Ｓ１２）。なお、「出力ポートの使用権の調停」とは、具体的には、出力ポートを使用できるデータを１つ選択する処理を意味する。この調停においてデータが選択されたことを、「調停で選択された」あるいは「データがポートを獲得した」とも記載する。遅延部１１４がキュー構造である場合、「最も古いもの」とは、キューで最初に取り出されるエントリのことである。
【０１１０】
図３のＳ１２では、具体的には、選択部１１３は、選択情報が通過済を示していない場合、付加されているノード識別情報が自ノードを示し、かつ、新旧識別情報が新処理を示している結果データについては、これを選択しないことを決定する。また、選択部１１３は、付加されているノード識別情報が待ち合わせ不要を示し、かつ、新旧識別情報が新処理を表し、かつ、遅延部１１４に最初の新処理の結果データが格納されている場合、この結果データを選択しないことを決定する。また、選択部１１３は、それ以外の結果データについては、同じ処理部１０１から出力された結果の出力順序が入れ替わらないように、かつ、何らかの優先度に基づいてそのうち１つを選択する。前述のように、「それ以外の結果データ」には、選択情報が通過済を示している場合に、ノード識別情報が自ノードを示しかつ新旧識別情報が新処理を示している結果データが含まれる。また、「それ以外の結果データ」には、遅延部１１４に新処理の結果データが格納されていない場合に、ノード識別情報が待ち合わせ不要を示しかつ新旧識別情報が新処理を示している結果データが含まれる。また、「それ以外の結果データ」には、付加されているノード識別情報が自ノードを示していないか、または、新旧識別情報が旧処理を示している結果データが含まれる。また、何らかの優先度とは、処理の種類毎に設定された優先順位や、ラウンドロビンであってもよい。
【０１１１】
次に、選択部１１３は、調停で選択された結果データについて、ノード識別情報が自ノードを示しており、かつ、新旧識別情報が旧処理を示している場合、選択情報を、通過済を示すよう更新する（Ｓ１３）。
【０１１２】
次に、選択部１１３は、調停で選択された結果データを、付加された情報とともに、次のネットワーク部１１１あるいは装置外部への出力ポートへ出力する（Ｓ１４）。
【０１１３】
次に、選択部１１３は、調停で選択されなかった結果データを、遅延部１１４に挿入する（Ｓ１５）。このとき、選択部１１３は、旧処理の処理部１０１からの結果データが新処理の処理部１０１からの結果データより古い位置につくよう遅延部１１４に挿入する。この場合「より古い位置」とは、選択部１１３によって先に取りだされる位置のことである。また、選択部１１３は、それ以外の結果データについては、到着した順序で取り出される位置につくよう遅延部１１４に挿入する。
【０１１４】
そして、選択部１１３は、図３のＳ１２からＳ１５までの動作を繰り返す。
【０１１５】
以上で、ネットワーク部１１１の動作の説明を終了する。
【０１１６】
このように、時系列データ処理装置１００は、処理の変更指示を受信後、出力する結果データを直ちに新処理によるものに変更するのではないことに留意されたい。例えば、時系列データ処理装置１００は、処理の変更指示を受信後も、旧処理が停止可能な状態に至るまでは、旧処理の結果データの出力を継続する。例えば、旧処理が進行中の場合、旧処理は停止可能な状態ではない。また、旧処理による一連のデータが順次出力中である場合、旧処理は停止可能な状態ではない。そして、旧処理が停止可能な状態に至ると、時系列データ処理装置１００は、最後の旧処理の結果データを出力した後、最初の新処理の結果データから始まる結果データ列を出力することになる。
【０１１７】
次に、本発明の第１の実施の形態の効果について述べる。
【０１１８】
本発明の第１の実施の形態としての時系列データ処理装置は、時系列データ処理における処理内容の変更に伴い、出力の新旧切り替え前後の結果データを指定可能として、新旧の各処理による結果データの有用なものをより多く出力する。その際、時系列データ処理装置は、処理の結果データに付加する情報量の増大を抑えながら、新旧の各処理による結果データの出力を混在させることはない。
【０１１９】
その理由は、制御部が、最後の旧処理の結果データに、旧処理を表す新旧識別情報と、新処理の結果データとの待ち合わせ場所を示すノード識別情報とを含む付加情報を付加する。さらに制御部が、最初の新処理の結果データに、新処理を表す新旧識別情報と、旧処理の結果データとの待ち合わせ場所を示すノード識別情報とを含む付加情報を付加するからである。そして、選択部が、自ノードから出力する結果データを選択するための選択情報を記憶する。さらに選択部が、到着した結果データまたは遅延部に格納されている結果データのうちいずれかを選択する際に、各結果データに付加されている付加情報と、記憶している選択情報とに基づいて、最初の新処理の結果データを選択する前に、最後の旧処理の結果データを選択するからである。
【０１２０】
具体的には、例えば、選択部が、最後の旧処理の結果データが通過済であるか否かを表す選択情報として、通過済でないことを記憶する。そして選択部が、到着した結果データまたは遅延部に格納されている結果データのうち、付加されているノード識別情報が自ノードを示し、かつ、新旧識別情報が新処理を示すものについて、選択情報が通過済を示していなければこれを選択しないからである。また、選択部が、それ以外の結果データのうち、何らかの優先度にしたがって１つを選択し、選択した結果データに付加されているノード識別情報が自ノードを示し、かつ、新旧識別情報が旧処理を示す場合には、選択情報を、通過済を示すよう更新するからである。そして、選択部が、選択した結果データを伝達部から次のネットワーク部または外部に出力し、選択しなかった結果データを、遅延部に挿入するからである。
【０１２１】
これにより、本実施の形態は、処理変更指示後、指定された最後の旧処理の結果データを外部に出力後に、指定された最初の新処理の結果データを先頭とする新処理の結果列を装置外部へ出力することができる。すなわち、本実施の形態は、処理の変更の前後において、旧処理の結果データおよび新処理の結果データを混在させて装置外部に出力することがない。また、本実施の形態は、処理変更指示に伴い新処理が動作を開始した後も、旧処理が停止可能な状態となるまで、より多くの有用で利用可能な旧処理の結果データを出力することになる。
【０１２２】
しかも、本実施の形態は、上述のような効果を奏することにより、結果データに付加する必要のある情報量を、関連技術に比べて大幅に削減できる。例えば、特許文献５および６に記載された関連技術の組み合わせでは、どの結果データに対しても少なくとも出力予定時刻を付加する必要がある。このような時刻情報を表すための情報量に比べて、新旧識別情報およびノード識別情報の情報量は非常に少なくて済むからである。
【０１２３】
（第２の実施の形態）
以下、本発明の第２の実施の形態について、図面を参照して詳細に説明する。なお、本発明の第１の実施の形態は、装置内において１種類の新旧変更処理が進行することを想定し、他の新旧変更処理の同時進行や新旧変更対象の処理とは無関係な他の処理を考慮しないケースについて有効であった。本実施の形態では、装置内で、１種類以上の処理が同時動作し、そのうち１種類以上の処理について新旧変更処理が同時進行する場合も考慮した例について説明する。
【０１２４】
本発明の第２の実施の形態としての時系列データ処理装置２００の構成を、図４に示す。図４において、時系列データ処理装置２００は、本発明の第１の実施の形態としての時系列データ処理装置１００に対して、ネットワーク部１１１に替えてネットワーク部２１１と、制御部１２１に替えて制御部２２１とを備える点が異なる。また、ネットワーク部２１１は、本発明の第１の実施の形態におけるネットワーク部１１１に対して、選択部１１３に替えて選択部２１３を有する点が異なる。
【０１２５】
図４において、各処理部１０１には、外部より時系列データが入力される。また、各処理部１０１から出力されるデータは、いずれかのネットワーク部２１１に入力される。また、各ネットワーク部２１１には、処理部１０１または他のネットワーク部２１１から出力されるデータが入力される。また、各ネットワーク部２１１から出力されるデータは、他のネットワーク部２１１に入力されるか、装置外部に出力される。このように、時系列データ処理装置２００は、各処理部１０１により出力される結果データを、１つ以上のネットワーク部２１１から構成されるネットワークで１つに束ねたのち、装置外部に出力する構成となっている。なお、図４には、２つの処理部１０１と、１つのネットワーク部２１１と、１つの制御部２２１とを示しているが、本発明の時系列データ処理装置が備える各部の数を限定するものではない。
【０１２６】
制御部２２１は、最後の旧処理の結果データの計算に必要な最後の入力データが入力されると、旧処理の処理部１０１に対して次の付加情報を送信する。具体的には、制御部２２１は、このタイミングで旧処理の処理部１０１に対して、新旧変更対象の処理の種類を無関係な処理から識別する処理識別情報と、旧処理を表す新旧識別情報と、待ち合わせノードを示すノード識別情報とを含む付加情報を送信する。これにより、制御部２２１は、旧処理の処理部１０１から、処理識別情報、新旧識別情報およびノード識別情報が付加された最後の旧処理の結果データを出力させる。
【０１２７】
また、制御部２２１は、最初の新処理の結果データの計算に必要な最後の入力データが入力されると、新処理の処理部１０１に対して次の付加情報を送信する。具体的には、制御部２２１は、このタイミングで新処理の処理部１０１に対して、対応する旧処理と同一の処理識別情報と、新処理を表す新旧識別情報と、待ち合わせノードを示すノード識別情報とを含む付加情報を送信する。これにより、制御部２２１は、新処理の処理部１０１から、処理識別情報、新旧識別情報およびノード識別情報が付加された最初の新処理の結果データを出力させる。
【０１２８】
また、制御部２２１は、最初の新処理の結果データの計算に必要な最後の入力データが入力された後、新旧処理の変更が完了する直前までのタイミングでは、新処理の処理部１０１に対して、次の付加情報を送信する。具体的には、制御部２２１は、このタイミングで新処理の処理部１０１に対して、対応する旧処理と同一の処理識別情報と、新処理を表す新旧識別情報と、待ち合わせ不要を示すノード識別情報とを含む付加情報を送信する。なお、新旧処理の変更が完了するとは、装置内に、最初の新処理の結果データが存在しなくなることをいう。
【０１２９】
また、制御部２２１は、新旧処理の変更が完了した後のタイミングでは、新処理の処理部１０１に対して、新旧変更対象でないことを表す処理識別情報と、新処理を表す新旧識別情報と、待ち合わせ不要を示すノード識別情報とを含む付加情報を送信する。
【０１３０】
ここで、処理識別情報とは、新旧変更対象の処理の種類を無関係な処理から識別可能な情報である。つまり、処理識別情報は、新旧変更対象の旧処理および新処理に対して同一の値が設定される。また、処理識別情報は、新旧変更対象の処理の種類と、新旧変更対象でない無関係な処理とを識別できればよい。つまり、処理識別情報は、無関係な各処理については、同一の値が設定される。このように、処理識別情報は、新旧変更対象の処理の種類を無関係な処理から区別するために用いられる。
【０１３１】
また、ノード識別情報は、本発明の第１の実施の形態におけるノード識別情報と同様に、新処理の結果データおよび旧処理の結果データを待ち合わせるネットワーク部２１１を識別する情報である。この他、ノード識別情報は、待ち合わせ不要を表す場合もある。
【０１３２】
各処理部１０１から出力される情報のデータ構造を、図５に示す。以降、処理識別情報、新旧識別情報、および、ノード識別情報からなる付加情報が付加された結果データを、単に「結果データ」と記載する場合もある。また、時系列データ処理装置２００内において、結果データは、付加されている各種の付加情報とともに、各機能ブロックによって入出力または保持されるものとする。
【０１３３】
また、制御部２２１は、最後の旧処理の結果データの計算に必要な最後の入力データが入力されたタイミングを、旧処理の処理部１０１または新処理の処理部１０１の処理状況を表す情報、もしくは、結果データの出力状況を表す情報に基づいて判定してもよい。
【０１３４】
また、制御部２２１は、最初の新処理の結果データの計算に必要な最後の入力データが入力されたタイミングを、旧処理の処理部１０１または新処理の処理部１０１の処理状況を表す情報、もしくは、結果データの出力状況を表す情報に基づいて判定してもよい。
【０１３５】
なお、処理部１０１の処理状況とは、例えば、旧処理の処理部１０１において一連の処理が進行中であるか一連の処理が完了したかなどの状況などをいう。あるいは、処理部１０１の処理状況とは、新処理が起動した後の固定サイクル後であるなどの状況などであってもよい。また、結果データの出力状況とは、旧処理の処理部１０１から一連の結果データの出力中であるか出力が完了したかなどの状況をいう。また、制御部２２１は、このようなタイミングを、上述した情報やその他の情報の組み合わせに基づいて判定してもよい。また、制御部２２１は、そのような処理部１０１の処理状況や出力状況を、処理部１０１から通知されることにより判定処理を行ってもよい。
【０１３６】
また、制御部２２１は、新旧変更対象ではない無関係な各処理部１０１（図示せず）に対して、新旧変更対象ではないことを示す処理識別情報と、新処理を表す新旧識別情報と、待ち合わせ不要を表すノード識別情報とを含む付加情報を送信する。なお、無関係な処理部１０１からの結果データについては、後述の選択部２１３においてノード識別情報が主に参照され、新旧識別情報および処理識別情報は参照されない。したがって、無関係な処理部１０１に送信される新旧識別情報は、必ずしも新処理を表さなくてもよく、どのような内容の情報でもよい。また、無関係な処理部１０１に送信される処理識別情報は、新旧変更対象の処理を表す情報以外であればどのような内容であってもよい。
【０１３７】
選択部２１３は、自ノードからの出力対象となる結果データを選択するための選択情報として、新旧変更対象の処理の種類毎に、最後の旧処理の結果データが自ノードを通過済であるか否かを示す情報を記憶する。具体的には、選択部２１３は、処理識別情報をインデックスとする表を選択情報として保持し、処理識別情報に対応付けて、最後の旧処理の結果データが通過済であるか否かを表す情報を記憶してもよい。以降、このような処理識別情報をインデックスとする表（選択情報）を、通過完了表とも記載する。
【０１３８】
また、選択部２１３は、自ノードの伝達部１１２に到着した結果データと、遅延部１１４に格納されている結果データの最も古いものとの間で、出力ポートの使用権の調停を行う。
【０１３９】
具体的には、選択部２１３は、ノード識別情報が自ノードを示し、かつ、新旧識別情報が新処理を示す結果データについて、その処理識別情報に対応する通過完了表のエントリが通過済でないことを示す場合、この結果データを選択しない。また、選択部２１３は、ノード識別情報が待ち合わせ不要を示し、かつ、新旧識別情報が新処理を表す結果データについて、その処理識別情報と同一の処理識別情報が付加された最初の新処理の結果データが遅延部１１４に格納されている場合、この結果データを選択しない。また、選択部２１３は、それ以外の結果データについては、同じ処理部１０１から出力された結果の出力順序が入れ替わらないように、かつ、何らかの優先度に基づいてそのうち１つを選択する。なお、「それ以外の結果データ」には、ノード識別情報が自ノードを示しかつ新旧識別情報が新処理を示している結果データであって、その処理識別情報に対応する通過完了表のエントリが通過済を示している結果データが含まれる。また、「それ以外の結果データ」には、ノード識別情報が待ち合わせ不要を示しかつ新旧識別情報が新処理を示している結果データであって、その処理識別情報と同一の処理識別情報が付加された最初の新処理の結果データが遅延部１１４に格納されていない結果データが含まれる。また、「それ以外の結果データ」には、ノード識別情報が自ノードを示していないか、または、新旧識別情報が旧処理を示している結果データが含まれる。
【０１４０】
また、選択部２１３は、選択した結果データのノード識別情報が自ノードを示し、かつ、新旧識別情報が旧処理を表すとき、その結果データの処理識別情報に対応する通過完了表のエントリを、通過済を示すよう更新する。
【０１４１】
また、選択部２１３は、選択した結果データを次のネットワーク部２１１または外部に出力するよう伝達部１１２を制御する。
【０１４２】
また、選択部２１３は、選択しなかった結果データを、遅延部１１４に挿入して遅延させる。このとき、選択部２１３は、挿入する結果データに、処理識別情報が同一の複数の結果データが含まれる場合、そのうち旧処理の結果データが新処理の結果データより古い位置につくように遅延部１１４に挿入すればよい。前述のように、「より古い位置」とは、選択部２１３によって先に取りだされる位置のことである。また、選択部２１３は、それ以外の結果データについては、到着した順序で取り出される位置につくよう遅延部１１４に挿入する。
【０１４３】
以上のように構成された時系列データ処理装置２００の動作について、図６および図７を参照して説明する。
【０１４４】
なお、以下の説明において、時系列データ処理装置２００は、複数の領域（パーティション）を有するＩＣチップによって構成されるものとする。また、各パーティションには、構成データ、コンフィギュレーションデータと呼ばれる設定情報が設定されることにより、ユーザ定義処理を実行する回路が作成されるものとする。
【０１４５】
また、時系列データ処理装置２００は、旧処理から新処理への処理の変更指示を外部から受信すると、以下の動作を開始するものとする。なお、時系列データ処理装置２００は、このような変更指示を、外部に接続されたホストコンピュータ等から受信してもよい。また、変更指示対象の新処理に関するユーザ定義情報は、旧処理を実行中の処理部１０１とは異なるパーティションによって構成される任意の処理部１０１に書き込まれるものとする。
【０１４６】
まず、制御部２２１による動作を図６に示す。
【０１４７】
図６において、まず、制御部２２１は、最後の旧処理の結果データの計算に必要な最後のデータが入力されたタイミングであると判定すると、旧処理の処理部１０１に対して、結果データに付加するための付加情報を送信する。具体的には、制御部２２１は、旧処理の処理部１０１に対して、新旧変更対象の処理を識別する処理識別情報、旧処理を表す新旧識別情報、および、待ち合わせノードを示すノード識別情報を送信する（Ｓ２１）。
【０１４８】
なお、前述のように、制御部２２１は、このようなタイミングの判定を、旧処理の処理部１０１または新処理の処理部１０１の処理状況に関する情報、もしくは、出力状況に関する情報に基づいて行ってもよい。
【０１４９】
また、図６のＳ２１の後のタイミングでは、制御部２２１は、旧処理の処理部１０１に対して、結果データを出力しないよう指示し続ける。
【０１５０】
次に、制御部２２１は、最初の新処理の結果データの計算に必要な最後のデータが入力されたタイミングであると判定すると、新処理の処理部１０１に対して、結果データに付加するための付加情報を送信する。具体的には、制御部２２１は、新処理の処理部１０１に対して、旧処理と共通の該当する処理識別情報、新処理を表す新旧識別情報、および、待ち合わせのノードを示すノード識別情報を送信する（Ｓ２２）。
【０１５１】
なお、このタイミングより後、この新旧処理の変更が完了する直前までのタイミングでは、制御部２２１は、新処理の処理部１０１に対して、結果データに付加するための次の付加情報を送信する。具体的には、制御部２２１は、新処理の処理部１０１に対して、旧処理と共通の該当する処理識別情報、新処理を表す新旧識別情報、および、待ち合わせ不要を示すノード識別情報を送信する。
【０１５２】
また、制御部２２１は、新旧処理の変更が完了した後のタイミングでは、新処理の処理部１０１に対して、新旧変更対象でないことを表す処理識別情報と、新処理を表す新旧識別情報と、待ち合わせ不要を示すノード識別情報とを含む付加情報を送信する。
【０１５３】
また、前述のように、制御部２２１は、このようなタイミングの判定を、旧処理の処理部１０１または新処理の処理部１０１の処理状況に関する情報、もしくは、出力状況に関する情報に基づいて行ってもよい。
【０１５４】
また、図６のＳ２２より以前のタイミングでは、制御部２２１は、新処理の処理部１０１に対して、結果データを出力しないよう指示し続ける。
【０１５５】
次に、制御部２２１は、新旧変更対象でない無関係な各処理部１０１に対して、結果データに付加するための次の付加情報を送信する。具体的には、制御部２２１は、これらの各処理部１０１に対して、新旧変更対象でないことを表す処理識別情報、新処理を表す新旧識別情報、および、待ち合わせ不要を表すノード識別情報を送信する（Ｓ２３）。
【０１５６】
なお、制御部２２１は、各処理部１０１に送信する各種識別情報の値として、ホストコンピュータにより指示された値を用いてもよい。
【０１５７】
以上で、制御部２２１の動作の説明を終了する。
【０１５８】
次に、選択部２１３の動作を図７に示す。
【０１５９】
図７において、まず、選択部２１３は、変更対象の処理識別情報に対応する通過完了表のエントリを、通過済でないことを表す情報（例えば、“Ｎ”）に設定して初期化する（Ｓ３１）。なお、選択部２１３は、新旧変更対象の処理の種類を識別する各処理識別情報について、その処理識別情報で識別される最初の新処理の結果データが装置内に存在しなくなったタイミングで、その処理識別情報に対応する通過完了表のエントリを初期化すればよい。
【０１６０】
次に、選択部２１３は、自ノードの伝達部１１２に到着した結果データと、遅延部１１４に格納されている結果データの最も古いものとの間で出力ポートの使用権の調停を行う。具体的には、選択部２１３は、結果データについて、ノード識別情報が自ノードを示しており、かつ、新旧識別情報が新処理を示しており、かつ、その処理識別情報に対応する通過完了表のエントリが通過済でないことを表す場合、選択部２１３は、その結果データを選択しないことを決定する。また、選択部２１３は、それ以外の結果データについては、同じ処理部１０１から出力された結果の出力順序が入れ替わらないように、かつ、何らかの優先度にしたがっていずれかを選択する（Ｓ３２）。
【０１６１】
次に、選択部２１３は、調停で選択された結果データについて、ノード識別情報が自ノードを示しており、かつ、新旧識別情報が旧処理を示している場合、その処理識別情報に対応する通過完了表のエントリを、通過済を示す情報（例えば、“Ｙ”）に更新する（Ｓ３３）。 
次に、選択部２１３は、調停で選択された結果データを、次のネットワーク部２１１あるいは装置外部への出力ポートへ、伝達部１１２から出力させる（Ｓ３４）。
【０１６２】
次に、選択部２１３は、調停で選択されなかった結果データを遅延部１１４に挿入する（Ｓ３５）。このとき、選択部２１３は、挿入する結果データに、処理識別情報が同一の複数の結果データが含まれている場合は、それらのうち旧処理の結果データが新処理の結果データより古い位置につくよう遅延部１１４に挿入する。また、選択部２１３は、それ以外の結果データについては、到着した順序で取り出される位置につくよう遅延部１１４に挿入する。
【０１６３】
そして、選択部２１３は、図７のＳ３２からＳ３５までの動作を繰り返す。
【０１６４】
以上で、選択部２１３の動作の説明を終了する。
【０１６５】
（動作の具体例）
次に、時系列データ処理装置２００の動作の具体例を、図８〜図１３を参照して説明する。
【０１６６】
以下に説明する具体例において、時系列データ処理装置２００は、３つの処理部１０１と、２つのネットワーク部２１１とを備える。３つの処理部１０１のうち、処理部１０１−１には、旧処理が定義され、処理部１０１−２には、新処理が定義され、処理部１０１−３には、変更対象でない他の処理が定義されているものとする。
【０１６７】
具体的には、処理部１０１−１には、時系列データについて、直近２つの入力データの積を計算する旧処理が定義されている。また、処理部１０１−２には、直近２つの入力データの和を計算する新処理が新たに定義される。また、処理部１０１−３には、直近２つの入力データの差を計算する処理が、旧処理および新処理とは無関係な処理として定義されている。
【０１６８】
また、処理部１０１−１による旧処理は、２サイクルの計算遅延を要し、処理部１０１−２による新処理は、１サイクルの計算遅延を要し、処理部１０１−３による処理は、１サイクルの計算遅延を要するものとする。また、これらの旧処理および新処理には、処理識別情報“1”が設定され、処理部１０１−３による処理には、処理識別情報“3”が設定されているものとする。
【０１６９】
また、２つのネットワーク部２１１のうち、ネットワーク部２１１−１には、処理部１０１−１および１０１−３から出力されるデータが入力され、ネットワーク部２１１−２には、処理部１０１−２およびネットワーク部２１１−１から出力されるデータが入力される。また、ネットワーク部２１１−２は、装置外部への出力ポートに対してデータを出力する。また、ネットワーク部２１１−１は、ノード識別情報“１”で識別され、ネットワーク部２１１−２は、ノード識別情報“２”で識別されるものとする。
【０１７０】
また、ネットワーク部２１１−１は、伝達部１１２−１、選択部２１３−１、遅延部１１４−１を有し、ネットワーク部２１１−２は、伝達部１１２−２、選択部２１３−２、遅延部１１４−２を有するものとする。
【０１７１】
また、この具体例では、同時に変更対象となる処理の種類数は１つに限定されているものとする。
【０１７２】
また、この具体例において、処理部１０１−２に対して新処理を実行するための回路情報が書き込まれると、処理部１０１−２は新処理の動作を開始する。そして、処理部１０１−２が新処理の動作を開始後、旧処理の処理部１０１−１において旧処理が停止可能になると、処理部１０１−１は動作を停止し、処理部１０１−１の回路情報が削除されるものとする。
【０１７３】
ここで、旧処理が停止可能になるタイミングは、旧処理の処理部１０１−１から制御部２２１に与えられるとする。また、そのタイミングは、新処理を実行するための回路情報の処理部１０１−２への書き込みが完了し、新処理が結果を出力し始めてから、数サイクルの後であるとする。また、旧処理が最後の結果データを出力するタイミングも同時であるとする。つまり、新処理が結果データの出力を開始した以降も、数サイクルの間は、旧処理の結果は利用可能である。この具体例は、この利用可能な旧処理の結果を出力可能にする。
【０１７４】
次に、時系列データ処理装置２００の具体的な動作の詳細を説明する。
【０１７５】
ここでは、時系列データ処理装置２００に対して、第１サイクルにv1、第２サイクルにv2、第３サイクルにv3が入力データとして与えられるとする。なお、入力データは、各サイクルの開始時に与えられる。また、これらの入力データは実数であるものとする。また、v1およびv2を用いた旧処理の結果データを最後の旧処理の結果データとし、v2およびv3を用いた新処理の結果データを最初の新処理の結果データとする。
【０１７６】
まず、選択部２１３−１および選択部２１３−２は、変更対象の処理識別情報“1”に対応づけて、通過完了表のエントリを、通過済でないことを表す“N”に設定する（Ｓ３１）。このように、各選択部２１３は、処理の変更が開始される前に、変更対象の処理識別情報に対応する選択情報を初期化する。
【０１７７】
（第１サイクル）
第1サイクルにおいては、処理部１０１−１は、旧処理を実行している。
【０１７８】
また、時系列データ処理装置２００に対して、データ“v1”が入力され、処理部１０１−１はこれを保持する。
【０１７９】
（第２サイクル）
第２サイクルにおいて、外部より処理部１０１−２に対応する領域に、新処理が書き込まれる。そして、処理部１０１−２は、新処理の動作を開始する。
【０１８０】
また、時系列データ処理装置２００に対して、データ“v2”が入力される。ここで、データ“v2”は、最後の旧処理の結果データの計算に必要な最後の入力データである。
【０１８１】
そこで、制御部２２１は、旧処理および新処理に共通の処理識別情報“1”と、旧処理を表す新旧識別情報“o”と、ノード識別情報“2”とを、旧処理の処理部１０１−１へ送信する（Ｓ２１）。なお、ノード識別情報“2”の示すネットワーク部２１１−２は、旧処理の処理部１０１−１および新処理の処理部１０１−２からの結果データが合流する場所を示している。以下では、制御部２２１から各処理部１０１に送信される情報を〈処理識別情報，新旧識別情報，ノード識別情報〉と表す。つまり、制御部２２１は、処理部１０１−１に対して〈1,o,2〉を送信する。
【０１８２】
第２サイクル終了時における時系列データ処理装置２００の内部の出力情報を図８に示す。
【０１８３】
ここで、前述のように、この具体例では、同時に変更の起こる処理の種類数は１つである。したがって、処理識別情報は、変更対象の処理であるか否かを少なくとも表せばよく、１ビットで表すことができる。また、２つのネットワーク部２１１−１および２１１−２を識別するためのノード識別情報は、１ビットで表すことができる。また、新旧識別情報も１ビットで表すことができるため、制御部２２１により結果データに付加される情報は合計３ビットで表現できる。
【０１８４】
（第３サイクル）
第３サイクルにおいて、時系列データ処理装置２００に対して、データ“v3”が入力される。ここで、データ“v3”は、最初の新処理の結果データの計算に必要な最後の入力データである。
【０１８５】
そこで、制御部２２１は、旧処理および新処理に共通の処理識別情報“1”と、新処理を表す新旧識別情報“ｎ”と、ノード識別情報“2”とからなる情報〈1,n,2〉を、新処理の処理部１０１−２に対して送信する。
【０１８６】
また、処理部１０１−２は、計算遅延が１サイクルであるため“v2”および“v3”の和の計算（新処理）を完了する。そして、処理部１０１−２は、結果データ“v2+v3”に対して、制御部２２１から受信した情報〈1,n,2〉を付加した〈v2+v3, 1, n,2〉を、ネットワーク部２１１−２に対して出力する（Ｓ２２）。このように、処理部１０１から出力される情報を〈結果データ，処理識別情報，新旧識別情報，ノード識別情報〉と表す。
【０１８７】
なお、制御部２２１は、これより前のサイクルでは、処理部１０１−２に対して出力を行わないよう指示し続けている。
【０１８８】
また、処理部１０１−１は、計算遅延が２サイクルであるため、“v1”および“v2”の積の計算（旧処理）を完了する。そして、処理部１０１−１は、結果データ“v1*v2”に対して、制御部２２１から受信した情報〈1,o,2〉を付加した〈v1*v2,1,o,2〉を、ネットワーク部２１１−１に対して出力する（Ｓ２１）。
【０１８９】
なお、制御部２２１は、これより後のサイクルでは、処理部１０１−１に対して出力を行わないよう指示し続ける。
【０１９０】
また、制御部２２１は、処理部１０１−３に対して、処理識別情報“3”と、新処理を表す“ｎ”と、待ち合わせ不要を示す“-”とからなる〈3,n,-〉を送信する。
【０１９１】
そして、処理部１０１−３は、計算遅延が１サイクルであるため、“v2”および“v3”の差の計算を完了する。そして、処理部１０１−３は、結果データ“v2-v3”に対して、制御部２２１から受信した情報〈3,n,-〉を付加した〈v2-v3,3,n,-〉を、ネットワーク部２１１−１に対して出力する（Ｓ２３）。
【０１９２】
第３サイクルの終了時における時系列データ処理装置２００の内部の出力情報を図９に示す。
【０１９３】
（第４サイクル）
第４サイクルにおいて、選択部２１３−１は、入力された〈v1*v2,1,o,2〉および〈v2-v3,3,n,-〉について、出力ポートの使用権の調停を行う。ここで、前者の結果データ〈v1*v2,1,o,2〉に付加されたノード識別情報が自ノードを表していないため、選択部２１３−１は、この結果データについて通過完了表を参照することなく、出力対象の候補とする。また、後者の結果データ〈v2-v3,3,n,-〉に付加されたノード識別情報が待ち合わせ不要を示しているため、選択部２１３−１は、この結果データについても通過完了表を参照することなく、出力対象の候補とする。ここで、〈v1*v2,1,o,2〉と、〈v2-v3,3,n,-〉とでは、後者の結果データの優先度が高いとする。そこで、選択部２１３−１は、出力対象として〈v2-v3,3,n,-〉を選択する（Ｓ３２）。
【０１９４】
また、選択部２１３−１は、選択したデータ〈v2-v3,3,n,-〉のノード識別情報が自ノードを表していないので、通過完了表を更新しない。
【０１９５】
また、選択部２１３−１は、選択した〈v2-v3,3,n,-〉を、ネットワーク部２１１−２に対して出力する（Ｓ３４）。
【０１９６】
また、選択部２１３−１は、選択しなかった〈v1*v2,1,o,2〉を、遅延部１１４−１に挿入する（Ｓ３５）。
【０１９７】
また、選択部２１３−２は、入力された〈v2+v3,1,n,2〉について、出力ポートの使用権の調停を行う。この結果データに付加されたノード識別情報は自ノードを表しており、かつ、新旧識別情報は新処理を表している。そこで、選択部２１３−２は、この処理識別情報“1”に対応する通過完了表のエントリを参照し、その値が“Ｎ”であるため、この結果データを選択しない（Ｓ３２）。
【０１９８】
そして、選択部２１３−２は、選択された結果データがないため、通過完了表を更新しない。
【０１９９】
そして、選択部２１３−２は、選択された結果データがないため、装置外部への出力を行わず、選択しなかった結果データ〈v2+v3,1,n,2〉を、遅延部１１４−２に挿入する（Ｓ３５）。
【０２００】
第４サイクルの終了時における時系列データ処理装置２００の内部の出力情報を図１０に示す。
【０２０１】
（第５サイクル）
第５サイクルにおいて、選択部２１３−１は、遅延部１１４−１に格納されている〈v1*v2,1,o,2〉について出力ポートの使用権の調停を行う。選択部２１３−１は、この結果データに付加されたノード識別情報が自ノードを表していないため、通過完了表を参照することなく、この結果データを選択する（Ｓ３２）。
【０２０２】
また、選択部２１３−１は、この結果データに付加されたノード識別情報が自ノードを表していないので、通過完了表の更新を行わない。
【０２０３】
そして、選択部２１３−１は、この結果データ〈v1*v2,1,o,2〉を、ネットワーク部２１１−２に対して出力する（Ｓ３４）。
【０２０４】
また、選択部２１３−２は、入力された〈v2-v3,3,n,-〉と、遅延部１１４−１に格納されている〈v2+v3,1,n,2〉とについて、出力ポートの使用権の調停を行う。ここで、後者の〈v2+v3,1,n,2〉は、ノード識別情報が自ノードを表しており、かつ、新旧識別情報が新処理を表している。そこで、選択部２１３−２は、この処理識別情報“1”に対応する通過完了表のエントリを参照し、その値が“Ｎ”であるため、この結果データを選択しない（Ｓ３２）。
【０２０５】
また、選択部２１３−２は、前者の〈v2-v3,3,n,-〉のノード識別情報が待ち合わせ不要を表すため、通過完了表を参照することなく、この結果データを選択する（Ｓ３２）。
【０２０６】
また、選択部２１３−２は、選択したデータ〈v2-v3,3,n,-〉のノード識別情報が自ノードを表していないので、通過完了表を更新しない。
【０２０７】
そして、選択部２１３−２は、この結果データ〈v2-v3,3,n,-〉を、装置外部へ出力する（Ｓ３４）。
【０２０８】
また、選択部２１３−２は、選択しなかったデータ〈v2+v3,1,n,2〉を、遅延部１１４−２に挿入する（Ｓ３５）。
【０２０９】
第５サイクルの終了時における時系列データ処理装置２００の内部の出力情報を図１１に示す。
【０２１０】
（第６サイクル）
第６サイクルにおいて、選択部２１３−２は、入力された〈v1*v2, 1,o,2〉と、遅延部１１４−２に格納されている〈v2+v3,1,n,2〉とについて、出力ポートの使用権の調停を行う。
【０２１１】
ここで、後者の結果データ〈v2+v3,1,n,2〉のノード識別情報が自ノードを表しており、かつ、新旧識別情報は新処理を表している。そこで、選択部２１３−２は、この処理識別情報“1”に対応する通過完了表のエントリを参照し、その値が“Ｎ”であるため、この結果データを選択しない（Ｓ３２）。
【０２１２】
また、選択部２１３−２は、前者の結果データ〈v1*v2,1,o,2〉のノード識別情報が自ノードを表しており、新旧識別情報が旧処理を表しているため、この結果データを選択する（Ｓ３２）。
【０２１３】
また、選択部２１３−２は、選択した〈v1*v2,1,o,2〉のノード識別情報が自ノードを表しており、新旧識別情報が旧処理を表しているため、この処理識別情報“1”に対応する通過完了表のエントリを“Ｙ”に更新する（Ｓ３３）。
【０２１４】
そして、選択部２１３−２は、この結果データ〈v1*v2,1,o,2〉を、装置外部へ出力する（Ｓ３４）。
【０２１５】
また、選択部２１３−２は、選択しなかった〈v2+v3,1,n,2〉を、遅延部１１４−２に挿入する（Ｓ３５）。
【０２１６】
第６サイクルの終了時における時系列データ処理装置２００の内部の出力情報を図１２に示す。
【０２１７】
（第７サイクル）
第７サイクルにおいて、選択部２１３−２は、遅延部１１４−２に格納されている〈v2+v3,1,n,2〉について、出力ポートの使用権の調停を行う。
【０２１８】
ここで、〈v2+v3,1,n,2〉のノード識別情報は自ノードを表しており、かつ、新旧識別情報は新処理を表している。そこで、選択部２１３−２は、その処理識別情報“1”に対応する通過完了表のエントリを参照し、その値が“Ｙ”であるため、この結果データを選択する（Ｓ３２）。
【０２１９】
そして、選択部２１３−２は、この結果データ〈v2+v3,1,n,2〉を、装置外部へ出力する（Ｓ３４）。
【０２２０】
第７サイクルの終了時の、時系列データ処理装置２００の内部の出力情報を図１３に示す。
【０２２１】
以上で、時系列データ処理装置２００の具体的な動作の一例の説明を終了する。
【０２２２】
この具体例において、時系列データ処理装置２００は、時刻の若い順に、〈v2-v3,3,n,-〉、〈v1*v2, 1, o, 2〉、〈v2+v3, 1, n, 2〉の結果データを出力した。このように、時系列データ処理装置２００は、旧処理の特定の結果データ〈v1*v2, 1, o, 2〉の次に、新処理の特定の結果データ〈v2+v3, 1, n, 2〉を出力することができる。
【０２２３】
また、時系列データ処理装置２００は、処理の変更指示に伴い処理部１０１−２に対して新処理が定義された第２サイクル以降も、有用で利用可能な旧処理の結果データ〈v1*v2, 1, o, 2〉を、第６サイクルにおいて装置外部に出力することができた。
【０２２４】
これに対して、例えば、上述した関連技術では、新処理の書き込み時点で旧処理が停止される。あるいは、上述した特許文献１〜４には、新処理の動作開始後にも有用で利用可能な旧処理の結果データを出力することについての記載はない。したがって、本実施の形態は、関連技術に比べて、有用で利用可能な旧処理の結果データをより多く出力することができる。
【０２２５】
次に、本発明の第２の実施の形態の効果について述べる。
【０２２６】
本発明の第２の実施の形態としての時系列データ処理装置は、時系列データ処理における処理内容の変更に伴い、出力の新旧切り替え前後の結果データを指定可能として、新旧の各処理による結果データの有用なものをより多く出力する。その際、時系列データ処理装置は、処理の結果データに付加する情報量の増大を抑えながら、新旧の各処理による結果データの出力を混在させることはない。
【０２２７】
その理由は、制御部が、最後の旧処理の結果データに対して、処理の種類を識別する処理識別情報、旧処理を示す新旧識別情報、および、待ち合わせのノード識別情報を付加する。それとともに制御部が、最初の新処理の結果データに、旧処理と同一の処理識別情報、新処理を示す新旧識別情報、および、旧処理の結果データとの待ち合わせのノード識別情報を付加するからである。そして、待ち合わせ場所として指定されたノード内の選択部が、変更対象の処理識別情報に対応付けて通過済でないことを表す情報を記憶する。そして選択部が、自ノードに到着した結果データまたは遅延部に格納されている結果データのノード識別情報が自ノードを示し、かつ、新旧識別情報が新処理を表していれば、その処理識別情報に対応する選択情報を参照して通過済でなければこれを選択しないからである。また、選択部は、それ以外の結果データについては、優先度にしたがって１つを選択して出力するからである。また、選択部は、選択した結果データのノード識別情報が自ノードを示し、かつ、新旧識別情報が旧処理を示す場合には、その処理識別情報に対応する選択情報を通過済に更新するからである。
【０２２８】
これにより、本実施の形態は、処理変更指示後、指定された最後の旧処理の結果データを外部に出力して旧処理が停止可能な状態になるまでは旧処理の結果データ列を出力し、指定された最初の新処理の結果データを先頭とする新処理の結果列を装置外部へ出力する。すなわち、処理の変更の前後において、旧処理、新処理の結果データが混在して装置外部に出力されることがない。また、本実施の形態は、処理変更指示に伴い新処理が動作を開始した後も、より多くの有用で利用可能な旧処理の結果データを出力する。
【０２２９】
しかも、本実施の形態は、旧処理から新処理へ変更の際に上述の効果を奏することにより、結果データに付加する必要のある情報量を、関連技術に比べて大幅に削減できる。その理由について説明する。
【０２３０】
ここで、装置内で同時動作する処理数をＮとし、そのうち新旧変更処理が同時進行する数をｎとする。また、説明を簡単にするため、Ｎおよびｎ＋１は、それぞれ２のべき乗とする。すると、結果データに付加される情報のうち、処理識別情報は、同時進行する新旧変更処理のｎ種類および新旧変更処理対象でない処理を識別できればよい。したがって、処理識別情報は、ｌｏｇ２（ｎ＋１）ビットで表すことができる。なお、ｌｏｇ２（Ｘ）は、２を底とするＸの対数を表す。また、新旧識別情報は、新処理であるか旧処理であるかを区別できればよいので、１ビットで表すことができる。また、ネットワーク部から構成されるネットワークが２分木である場合は、ノード識別情報は、ネットワークの深さを表せばよい。ネットワークの深さは、ｌｏｇ２（Ｎ）で表される。したがって、ノード識別情報は、ｃｅｉｌ（ｌｏｇ２（ｌｏｇ２（Ｎ）＋１））ビットで表すことができる。ここで、ｃｅｉｌ（Ｘ）は、Ｘを下回らない最小の整数を表す。また、ネットワーク部のエッジの本数は（２Ｎ−1）である。したがって、旧処理から新処理への変更に対応するために本実施の形態の時系列データ処理装置に追加されるワイヤの本数は、次式（１）で表される。
【０２３１】
（２Ｎ−１）＊（ｌｏｇ２（ｎ＋１）＋１＋ｃｅｉｌ（ｌｏｇ２（ｌｏｇ２（Ｎ）＋１）））
・・・（１）
さらに、各選択部に格納される選択情報は、新旧変更処理が同時進行する処理数だけ必要となるため、ｎビットである。また、装置内で同時動作する処理数がＮであるため、ネットワークが２分木であれば、ネットワーク部の数は、Ｎ−１となる。したがって、選択部の数は、Ｎ−１である。このため、旧処理から新処理への変更に対応するために本実施の形態における選択部に追加される記憶素子の数は、次式（２）で表される。
【０２３２】
（Ｎ−１）＊ｎ・・・（２）
また、遅延部には、各種情報が付加された結果データが格納される。このとき、同じノードの遅延部で、複数の新旧処理ペアが同時に合流する可能性がある。このため、遅延部には、少なくとも結果データｎ個に付加される情報分の記憶素子が、旧処理から新処理への変更に対応するために追加される。前述のようにネットワーク部の数がＮ−１であるため、遅延部の数は、Ｎ−１である。そこで、旧処理から新処理への変更に対応するために本実施の形態における遅延部に追加される記憶素子の最小の数は、次式（３）で表される。
【０２３３】
（Ｎ−１）＊ｎ＊（ｌｏｇ２（ｎ＋１）＋１＋ｃｅｉｌ（ｌｏｇ２（ｌｏｇ２（Ｎ）＋１）））・・・（３）
これに対して、特許文献５〜６に記載された関連技術を組み合わせた時系列データ処理装置は、各処理部の出力データに、処理を識別する情報、待ち合わせ（同期）を行うネットワークのノードを識別する情報、および、出力予定時刻を追加する必要がある。ここで、処理数をＮ、新旧処理変更の同時進行数をｎとすれば、処理を識別する情報は、ｌｏｇ２（ｎ＋１）ビットで表すことができる。また、ネットワークのノードの識別情報は、ネットワークが２分木であるとすれば、ｃｅｉｌ（ｌｏｇ２（ｌｏｇ２（Ｎ）＋１））ビットで表すことができる。また、出力予定時刻は、例えば６４ビットで表すことができる。ネットワーク部のエッジの本数は、前述のように（２Ｎ−1）である。したがって、旧処理から新処理への変更に対応するために関連技術において追加されるワイヤの本数は、次式（４）で表される。
【０２３４】
（２Ｎ−１）＊（ｌｏｇ２（ｎ＋１）＋６４＋ｃｅｉｌ（ｌｏｇ２（ｌｏｇ２（Ｎ）＋１）））・・・（４）
また、関連技術の遅延部には、各種情報が付加された結果データが格納される。同じノードで複数の新旧処理ペアが同時に合流する可能性を考慮し、少なくとも結果データｎ個に付加される情報分の記憶素子が、旧処理から新処理への変更に対応するために遅延部に追加される。ここで、処理数がＮであるため、ネットワークが２分木であれば、遅延部の数は、Ｎ−１である。このため、旧処理から新処理への変更に対応するために関連技術において遅延部に追加される記憶素子の最小の数は、次式（５）で表される。
【０２３５】
（Ｎ−１）＊ｎ＊（ｌｏｇ２（ｎ＋１）＋６４＋ｃｅｉｌ（ｌｏｇ２（ｌｏｇ２（Ｎ）＋１）））・・・（５）
ここで、例えば、装置内で同時動作する処理数Ｎを１２８とする。また、装置内で同時進行する新旧変更処理数ｎを１つに制限する。すると、本実施の形態において、装置全体に追加が必要なワイヤ数は、式（１）により次のように算出される。
（２Ｎ−１）＊（ｌｏｇ２（ｎ＋１）＋１＋ｃｅｉｌ（ｌｏｇ２（ｌｏｇ２（Ｎ）＋１）））
＝１２７５（Ｎ=128, ｎ=1）
一方、関連技術の組み合わせにおいて、装置全体に追加が必要なワイヤ数は、式（４）により次のように算出される。
（２Ｎ−１）＊（ｌｏｇ２（ｎ＋１）＋６４＋ｃｅｉｌ（ｌｏｇ２（ｌｏｇ２（Ｎ）＋１）））
＝１７３４０（Ｎ=128, ｎ=1）
また、本実施形態において、装置全体として追加される記憶素子数は、式（２）および式（３）により次のように算出される。
（Ｎ−１）＊ｎ＋（Ｎ−１）＊ｎ＊（ｌｏｇ２（ｎ＋１）＋１＋ｃｅｉｌ（ｌｏｇ２（ｌｏｇ２（Ｎ）＋１）））＝７６２（Ｎ=128, ｎ=1）
一方、関連技術の組み合わせにおいて、装置全体として追加される記憶素子数は、式（５）により次のように算出される。
（Ｎ−１）＊ｎ＊（ｌｏｇ２（ｎ＋１）＋６４＋ｃｅｉｌ（ｌｏｇ２（ｌｏｇ２（Ｎ）＋１）））＝８６３６（Ｎ=128, ｎ=1）
この比較を図１４に示す。このように、本実施の形態の時系列データ処理装置は、関連技術に比べて、結果データに追加する情報量を削減することができ、その結果、装置全体に必要な追加資源を大幅に削減している。
【０２３６】
なお、上述した本発明の第２の実施の形態において、装置内で同時進行する新旧変更処理の種類数を１つに限定する具体例について説明したが、装置内で複数の種類の処理について新旧変更処理が同時進行してもよい。
【０２３７】
また、上述した本発明の各実施の形態において、本発明の時系列データ処理装置を、ＦＰＧＡのように再構成可能な回路素子を有するハードウェアによって構成する例を中心に説明した。この他、時系列データ処理装置は、各部の動作を、本発明のコンピュータ・プログラムとしてコンピュータ装置の記憶装置（記憶媒体）に格納しておき、係るコンピュータ・プログラムを当該ＣＰＵが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコードあるいは記憶媒体によって構成される。
【０２３８】
また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。
【０２３９】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、２０１３年７月１９日に出願された日本出願特願２０１３−１５０４２６を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０２４０】
１００、２００    時系列データ処理装置
１０１    処理部
１１１、２１１    ネットワーク部
１１２    伝達部
１１３、２１３    選択部
１１４    遅延部
１２１、２２１    制御部
６００、７００    時系列データ処理装置
６０１、７０１    処理部
６１１    制御部
６２１    選択部
６３１    同期部
７０１    処理部
７３１    ネットワーク部
７３２    伝達部
７３３    時刻比較部
７３４    遅延部
【図１】
2015008481.tif 000003
【図２】
2015008481.tif 000004
【図３】
2015008481.tif 000005
【図４】
2015008481.tif 000006
【図５】
2015008481.tif 000007
【図６】
2015008481.tif 000008
【図７】
2015008481.tif 000009
【図８】
2015008481.tif 000010
【図９】
2015008481.tif 000011
【図１０】
2015008481.tif 000012
【図１１】
2015008481.tif 000013
【図１２】
2015008481.tif 000014
【図１３】
2015008481.tif 000015
【図１４】
2015008481.tif 000016
【図１５】
2015008481.tif 000017
【図１６】
2015008481.tif 000018
【図１７】
2015008481.tif 000019
【図１８】
2015008481.tif 000020
【図１９】
2015008481.tif 000021
【図２０】
2015008481.tif 000022
【図２１】
2015008481.tif 000023
【図２２】
2015008481.tif 000024
【図２３】
2015008481.tif 000025
【図２４】
2015008481.tif 000026
【図２５】
2015008481.tif 000027
【図２６】
2015008481.tif 000028
【手続補正書】
【提出日】平成27年12月18日(2015.12.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
選択手段と遅延手段を備える複数のノードと、
入力データに対して第１の処理を実行することにより、第１の処理の結果データを出力する第１の処理手段と、
入力データに対して第２の処理を実行することにより、第２の処理の結果データを出力する第２の処理手段と、
前記第１の処理から前記第２の処理への変更指示を外部から受信したとき、前記第１の処理の結果データのうち最後に装置外部へ出力されるものであると判定した結果データ（最後の旧処理の結果データ）に対して、旧処理および新処理のいずれかであることを表す新旧識別情報として旧処理を表す情報と、旧処理の結果データおよび新処理の結果データを待ち合わせる装置内のノードを示すノード識別情報とを含む付加情報を付加するとともに、前記第２の処理による結果データのうち最初に装置外部へ出力されるものであると判定した結果データ（最初の新処理の結果データ）に対して、前記新旧識別情報として新処理を表す情報と、前記ノード識別情報とを含む付加情報を付加する制御手段と、備え、
前記選択手段は、自ノードからの出力対象となる結果データを選択するための情報を表す選択情報を記憶し、前記第１の処理手段または前記第２の処理手段から出力されて自ノードに到着した結果データおよび前記遅延手段に保持される結果データのうちいずれかの結果データを選択して他のノードまたは外部に出力する際に、各結果データに付加された前記付加情報と、記憶している前記選択情報とに基づいて、前記最初の新処理の結果データを選択するより前に前記最後の旧処理の結果データを選択するとともに、選択しなかった結果データを前記遅延手段に挿入し、
前記遅延手段は、前記各ノードに含まれ、前記選択手段により選択されなかった結果データを保持することにより遅延させる、
時系列データ処理装置。
【請求項２】
前記選択手段は、前記選択情報として、前記最後の旧処理の結果データが自ノードを通過済でないことを示す情報を記憶しておき、選択した結果データに付加されている前記ノード識別情報が自ノードを示し、かつ、前記新旧識別情報が旧処理を表すとき、前記選択情報が前記通過済を示すよう更新し、到着した結果データおよび前記遅延手段に保持されている結果データについて、付加されている前記ノード識別情報が自ノードを示し、かつ、前記新旧識別情報が新処理を表すとき、前記選択情報が前記通過済を示していない場合、該結果データを選択しないことを特徴とする請求項１に記載の時系列データ処理装置。
【請求項３】
前記制御手段は、前記最後の旧処理の結果データおよび前記最初の新処理の結果データに対して、前記新旧識別情報および前記ノード識別情報に加えて、新旧変更対象の処理の種類を新旧変更対象でない処理から識別する処理識別情報を含む前記付加情報を付加し、
前記選択手段は、前記処理識別情報毎に前記選択情報を記憶し、選択した結果データに付加されている前記ノード識別情報が自ノードを示し、かつ、前記新旧識別情報が旧処理を表すとき、該結果データに付加されている処理識別情報に対応する前記選択情報が前記通過済を示すよう更新し、到着した結果データおよび前記遅延手段に保持されている結果データについて、付加されている前記ノード識別情報が自ノードを示し、かつ、前記新旧識別情報が新処理を表すとき、該結果データに付加されている前記処理識別情報に対応する前記選択情報が前記通過済を示していない場合、該結果データを選択しないことを特徴とする請求項２に記載の時系列データ処理装置。
【請求項４】
前記制御手段は、前記最後の旧処理の結果データの計算に必要な最後の入力データが入力されると、前記第１の処理手段に対して前記付加情報を送信することにより、該付加情報が付加された前記最後の旧処理の結果データを前記第１の処理手段に出力させるとともに、前記最初の新処理の結果データの計算に必要な最後の入力データが入力されると、前記第２の処理手段に対して前記付加情報を送信することにより、該付加情報が付加された前記最初の新処理の結果データを前記第２の処理手段に出力させることを特徴とする請求項１から請求項３のいずれか１項に記載の時系列データ処理装置。
【請求項５】
前記制御手段は、前記最後の旧処理の結果データを計算するのに必要な最後の入力データが入力されたタイミングを、前記第１の処理手段または前記第２の処理手段の処理状況に関する情報、もしくは、前記結果データの出力状況に関する情報に基づいて判定するとともに、前記最初の新処理の結果データを計算するのに必要な最後の入力データが入力されたタイミングを、前記第１の処理手段または前記第２の処理手段の処理状況に関する情報、もしくは、前記結果データの出力状況に関する情報に基づいて判定することを特徴とする請求項１から請求項４のいずれか１項に記載の時系列データ処理装置。
【請求項６】
前記制御手段は、前記第１の処理手段に対して、前記最後の旧処理の結果データの出力以降、結果データを出力しないよう指示する情報を送信するとともに、前記第２の処理手段に対して、前記最初の新処理の結果データの出力以前、結果データを出力しないよう指示する情報を送信することを特徴とする請求項１から請求項５のいずれか１項に記載の時系列データ処理装置。
【請求項７】
入力データに基づき第１の処理の結果データを出力する第１の処理から、入力データに基づき第２の処理の結果データを出力する第２の処理への変更指示を受信すると、
前記第１の処理の結果データのうち最後に装置外部へ出力されるものであると判定した結果データ（最後の旧処理の結果データ）に対して、旧処理および新処理のいずれかであることを表す新旧識別情報として旧処理を表す情報と、旧処理の結果データおよび新処理の結果データを待ち合わせる装置内のノードを示すノード識別情報とを含む付加情報を付加し、
前記第２の処理による結果データのうち最初に装置外部へ出力されるものであると判定した結果データ（最初の新処理の結果データ）に対して、前記新旧識別情報として新処理を表す情報と、前記ノード識別情報とを含む付加情報を付加し、
前記各ノードにおいて、自ノードからの出力対象となる結果データを選択するための情報を表す選択情報を記憶し、前記第１の処理または前記第２の処理により出力されて自ノードに到着した結果データおよび保持される結果データのうちいずれかの結果データを選択して他のノードまたは外部に出力する際に、各結果データに付加された前記付加情報と、記憶している前記選択情報とに基づいて、前記最初の新処理の結果データを選択するより前に前記最後の旧処理の結果データを選択するとともに、選択しなかった結果データを遅延させる、時系列データ処理方法。
【請求項８】
前記各ノードは、前記選択情報として、前記最後の旧処理の結果データが自ノードを通過済でないことを示す情報を記憶しておき、選択した結果データに付加されている前記ノード識別情報が自ノードを示し、かつ、前記新旧識別情報が旧処理を表すとき、前記選択情報が前記通過済を示すよう更新し、到着した結果データおよび保持されている結果データについて、付加されている前記ノード識別情報が自ノードを示し、かつ、前記新旧識別情報が新処理を表すとき、前記選択情報が前記通過済を示していない場合、該結果データを選択しない、請求項７に記載の時系列データ処理方法。
【請求項９】
入力データに基づき第１の処理の結果データを出力する第１の処理から、入力データに基づき第２の処理の結果データを出力する第２の処理への変更指示を受信すると、
前記第１の処理の結果データのうち最後に装置外部へ出力されるものであると判定した結果データ（最後の旧処理の結果データ）に対して、旧処理および新処理のいずれかであることを表す新旧識別情報として旧処理を表す情報と、旧処理の結果データおよび新処理の結果データを待ち合わせる装置内のノードを示すノード識別情報とを含む付加情報を付加し、
前記第２の処理による結果データのうち最初に装置外部へ出力されるものであると判定した結果データ（最初の新処理の結果データ）に対して、前記新旧識別情報として新処理を表す情報と、前記ノード識別情報とを含む付加情報を付加し、
前記各ノードにおいて、自ノードからの出力対象となる結果データを選択するための情報を表す選択情報を記憶し、
前記第１の処理または前記第２の処理により出力されて自ノードに到着した結果データおよび保持される結果データのうちいずれかの結果データを選択して他のノードまたは外部に出力する際に、各結果データに付加された前記付加情報と、記憶している前記選択情報とに基づいて、前記最初の新処理の結果データを選択するより前に前記最後の旧処理の結果データを選択するとともに、選択しなかった結果データを遅延させること、
をコンピュータ装置に実行させるためのプログラム。
【請求項１０】
前記選択情報の記憶は、前記選択情報として、前記最後の旧処理の結果データが自ノードを通過済でないことを示す情報を記憶し、
前記結果データを選択して出力する際に、選択した結果データに付加されている前記ノード識別情報が自ノードを示し、かつ、前記新旧識別情報が旧処理を表すとき、前記選択情報が前記通過済を示すよう更新し、到着した結果データおよび保持されている結果データについて、付加されている前記ノード識別情報が自ノードを示し、かつ、前記新旧識別情報が新処理を表すとき、前記選択情報が前記通過済を示していない場合、該結果データを選択しない、請求項９に記載のプログラム。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は、時系列データを処理する技術に関し、特に、時系列データに対する処理の内容が変化する時系列データ処理装置、時系列データ処理方法、および、プログラムに関する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００７３
【補正方法】変更
【補正の内容】
【００７３】
また、本発明のプログラムは、入力データに基づき第１の処理の結果データを出力する第１の処理から、入力データに基づき第２の処理の結果データを出力する第２の処理への変更指示を受信し、前記第１の処理の結果データのうち最後に装置外部へ出力されるものであると判定した結果データ（最後の旧処理の結果データ）に対して、旧処理および新処理のいずれかであることを表す新旧識別情報として旧処理を表す情報と、旧処理の結果データおよび新処理の結果データを待ち合わせる装置内のノードを示すノード識別情報とを含む付加情報を付加し、前記第２の処理による結果データのうち最初に装置外部へ出力されるものであると判定した結果データ（最初の新処理の結果データ）に対して、前記新旧識別情報として新処理を表す情報と、前記ノード識別情報とを含む付加情報を付加し、前記各ノードにおいて、自ノードからの出力対象となる結果データを選択するための情報を表す選択情報を記憶し、前記第１の処理または前記第２の処理により出力されて自ノードに到着した結果データおよび保持される結果データのうちいずれかの結果データを選択して他のノードまたは外部に出力する際に、各結果データに付加された前記付加情報と、記憶している前記選択情報とに基づいて、前記最初の新処理の結果データを選択するより前に前記最後の旧処理の結果データを選択するとともに、選択しなかった結果データを遅延させる、をコンピュータ装置に実行させる。
【国際調査報告】
2015008481.tif 000029
2015008481.tif 000030