(57)【要約】処理の変更時に、新旧処理の両方の結果が混在して外部に出力されず、処理の変更前後の旧処理の結果を外部に出力することができ、またこの実現のための付加情報の量と付加処理の遅延を削減する、時系列データ装置を提供する。第１の処理を実行して第１の結果データを出力する第１の処理手段と、第２の処理を実行して第２の結果データを出力する第２の処理手段と、処理変更指示を受けたとき、第１の処理が停止可能か否かを判断し、第１、第２の結果データのそれぞれに処理の状態を表す第１、第２の識別情報を付加して第１、第２の結果データの組を生成する制御手段と、外部へ出力すべき結果データを指定する第３の識別情報を記録し、第１又は第２の結果データの組が到着したとき、第１、第２、第３の識別情報との比較結果に基づいて、第１又は第２の結果データの組の一方を選択して出力し他方を破棄する選択手段と、を備える。
2014045556.tif 000002
【特許請求の範囲】
【請求項１】
第１の処理を実行して第１の結果データを出力する第１の処理手段と、
第２の処理を実行して第２の結果データを出力する第２の処理手段と、
外部から処理の変更の指示を受けたとき、前記第１の処理が停止可能か否かを判断し、前記第１の結果データに前記第１の処理の状態を表す第１の識別情報を付加して第１の結果データの組を生成し、前記第２の結果データに前記第２の処理の状態を表す第２の識別情報を付加して第２の結果データの組を生成する制御手段と、
外部へ出力すべき結果データを指定する第３の識別情報を記録し、前記第１の結果データの組又は前記第２の結果データの組が到着したとき、前記第１の識別情報と前記第３の識別情報との比較結果及び前記第２の識別情報と前記第３の識別情報との比較結果に基づいて、前記第１の結果データの組又は前記第２の結果データの組の一方を選択して出力し他方を破棄する選択手段と、
を備えることを特徴とする時系列データ処理装置。
【請求項２】
前記制御手段は、前記第１の処理手段の処理状況又は前記第１の処理手段による前記第１の結果データの出力状況に基づいて、前記第１の処理が停止可能か否かを判断する
ことを特徴とする請求項１に記載の時系列データ処理装置。
【請求項３】
前記第１の識別情報は、前記変更の有無又は進行状況を示し、
前記第２の識別情報は、前記第２の結果データの外部への出力の可否、及び前記変更の有無又は進行状況を示し、
前記第３の識別情報は、前記第１の結果データ又は前記第２の結果データのいずれを出力すべきかを指定する
ことを特徴とする請求項１又は２に記載の時系列データ処理装置。
【請求項４】
前記選択手段は、前記第２の識別情報が前記第２の結果データの外部への出力が可能であることを示し、前記第３の識別情報が前記第１の結果データを出力すべきことを指定するときは、前記第３の識別情報を前記第２の結果データを出力すべき旨を指定するように更新する
ことを特徴とする請求項３に記載の時系列データ処理装置。
【請求項５】
前記選択手段は、
前記第３の識別情報が前記第１の結果データを出力すべき旨を指定し、前記第２の識別情報が前記第２の結果データの外部への出力が不可である旨を示すときは、前記第２の結果データを破棄し、
前記第３の識別情報が前記第２の結果データを出力すべき旨を指定し、前記第１の識別情報が前記処理の変更が進行中である旨を示すときは、前記第１の結果データを破棄する、
ことを特徴とする請求項３又は４に記載の時系列データ処理装置。
【請求項６】
前記制御手段は、
前記第１の処理が停止可能な状態に至る前は、前記変更が進行中である旨を示す前記第１の識別情報、及び前記第２の結果データの外部への出力が不可である旨を示す前記第２の識別情報を付加し、
前記第１の処理が停止可能な状態に至ったときに、前記第２の結果データの外部への出力が可能である旨を示す前記第２の識別情報を付加し、
全ての前記第１の結果データが外部に出力又は破棄されたタイミングで、前記変更が完了した旨を示す前記第２の識別情報を付加し、
前記選択手段は、
前記第２の結果データの外部への出力が可能である旨を示す前記第２の識別情報が付加された全ての前記第２の結果データが外部に出力又は破棄されたタイミングで、前記第１の結果データを出力すべき旨を指定する前記第３の識別情報を記録する、
ことを特徴とする請求項３乃至５に記載の時系列データ処理装置。
【請求項７】
第１の処理手段において第１の処理を実行して、第１の結果データを出力し、
第２の処理手段において第２の処理を実行して、第２の結果データを出力し、
外部から処理の変更の指示を受けたとき、前記第１の処理が停止可能か否かを判断し、
前記第１の結果データに前記第１の処理の状態を表す第１の識別情報を付加して第１の結果データの組を生成し、
前記第２の結果データに前記第２の処理の状態を表す第２の識別情報を付加して第２の結果データの組を生成し、
外部へ出力すべき結果データを指定する第３の識別情報を記録し、
前記第１の結果データの組又は前記第２の結果データの組が到着したとき、前記第１の識別情報と前記第３の識別情報との比較結果及び前記第２の識別情報と前記第３の識別情報との比較結果に基づいて、前記第１の結果データの組又は前記第２の結果データの組の一方を選択して出力し他方を破棄する
ことを特徴とする時系列データ処理方法。
【請求項８】
第１の処理を実行して第１の結果データを出力する第１の処理手段、及び第２の処理を実行して第２の結果データを出力する第２の処理手段を備える時系列データ処理装置が備えるコンピュータを、
外部から処理の変更の指示を受けたとき、前記第１の処理が停止可能か否かを判断し、前記第１の結果データに前記第１の処理の状態を表す第１の識別情報を付加して第１の結果データの組を生成し、前記第２の結果データに前記第２の処理の状態を表す第２の識別情報を付加して第２の結果データの組を生成する制御手段、及び
外部へ出力すべき結果データを指定する第３の識別情報を記録し、前記第１の結果データの組又は前記第２の結果データの組が到着したとき、前記第１の識別情報と前記第３の識別情報との比較結果及び前記第２の識別情報と前記第３の識別情報との比較結果に基づいて、前記第１の結果データの組又は前記第２の結果データの組の一方を選択して出力し他方を破棄する選択手段と、
として機能させるための時系列データ処理プログラムを格納した非一時的な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、時系列データを処理する時系列データ処理装置、時系列データ処理方法及び時系列データ処理プログラムに関する。特に、時系列データに対する処理の内容が変化する時系列データ処理装置、時系列データ処理方法及び時系列データ処理プログラムに関する。
【背景技術】
【０００２】
まず、「時系列データに対するデータ処理」について説明する。本明細書において、「時系列データに対するデータ処理」とは、時系列入力データ、すなわち、次々と入力される一連のデータに対して行われる処理をいう。時系列データに対するデータ処理の結果データも、同様に次々と出力される。「次々と入力される」とは、複数のデータがある期間にわたってそれぞれ異なるタイミングで処理装置に到着する、という意味である。時系列データに対するデータ処理の例として、時系列データの直近の２つの値の和を取る、といった処理が挙げられる。以降、時系列データに対するデータ処理を、単に、「時系列データ処理」という。【０００３】
以下の説明においては、データの配列を、［１，２，３，４］のように表し、データの集合を、｛１，２，３，４｝のように表し、データの組を＜１０度，１月１日＞のように、括弧の種類によって区別して表す。また、１、２のような、個々のデータの数値は、”１”、”２”のように表記し、構成要素を示す符号と区別する。【０００４】
また、時系列データ処理装置の動作に用いられるクロックの周期を「サイクル」といい、これを期間の単位として用いる。「サイクルの開始時」とは、その期間の最初の時点を意味し、「サイクルの終了時」とは、その期間の最後の時点を意味する。例えば、クロックの周波数が１ＧＨｚである場合は、ある基準時刻について第１サイクルは、基準時刻プラスゼロ秒から基準時刻プラス１ナノ秒の間の期間を、第Ｎサイクルは基準時刻プラス（Ｎ−１）ナノ秒から基準時刻プラスＮナノ秒の期間を意味する。第Ｍサイクルの開始時は、基準時刻プラス（Ｍ−１）ナノ秒を意味し、第Ｍサイクルの終了時は、基準時刻プラスＭナノ秒を意味する。【０００５】
ここで、入力データは１つ以上の値からなる組である。例として、温度と日付の組、温度のみの組、銘柄と株価と時刻の組、が挙げられる。例えば、温度と日付の組を＜１０度，１月１日＞のように表す。入力データと、装置で扱われる値を、それらが混同されるおそれがない場合は、単に「データ」という。【０００６】
時系列データ処理は、複数の入力データに対して行われることが多い。さらに、時系列データ処理は、時系列データのウィンドウに対して行われることが多い。「ウィンドウ」とは、入力データの集合であり、２種類ある。一つは、予め決められた数をＮ（Ｎは１以上の整数）として、直近のＮ個の入力データの集合である。もう一つは、ある決められた時刻の期間をＰとして、入力データの組の１要素を時刻とみなして、その期間に収まる入力データの集合である。【０００７】
例えば、温度と日付の組を入力データとし、＜１０度、１月１日＞、＜１１度、１月２日＞、＜１０度、１月３日＞、＜１０度、１月４日＞という時系列データが与えられたとする。１月４日から過去３日間にわたる期間に収まるウィンドウは、｛＜１１度、１月２日＞，＜１０度、１月３日＞，＜１０度、１月４日＞｝である。【０００８】
また、ウィンドウ内の入力データの集合、部分集合、要素を「ウィンドウデータ」という。時系列データ処理では、このウィンドウデータが記憶されることが多い。以下の説明では、ウィンドウあるいはウィンドウデータを配列あるいは集合として表す。【０００９】
時系列データ処理を、処理の内容を規定することができる領域（以降、「パーティション」という。）、具体的には、処理を実行する回路を構成するための回路情報等を書き込むことができる領域を複数持つＩＣ（Integrated Circuit）チップを用いて実行するものとする。このようなＩＣチップの例として、ＦＰＧＡ（Field Programmable Gate Array）が挙げられる。あるいは、ＩＣチップとして、メモリからプログラムを読み込んで実行するプロセッサを使用して、時系列データ処理を実行することもできる。この場合は、メモリに処理内容、すなわち、処理の手順を指定するプログラムを書き込めばよい。【００１０】
時系列データ処理において、第１のユーザ定義処理（「旧処理」という。）を、第２のユーザ定義処理（「新処理」という。）に変更したいというニーズが存在する。すなわち、ＩＣチップ上の第１のパーティションでは第１のユーザ定義処理（「旧処理」という。）を実行する。そして、第１のユーザ定義処理実行時に第２のパーティションに第２のユーザ定義処理（「新処理」という。）を実行する回路情報を書き込んで新処理を実行して、旧処理を停止する。このようにして、旧処理を新処理に変更したいというニーズが存在する。【００１１】
例として、広い範囲に分散配置された温度センサの値を入力データとし、ある期間の平均を取って、火事を含む緊急事態を検知するアプリケーションを考える。温度変化が激しくなってきたときに、温度変化に追従する速度を高めるために、温度の平均を取る対象期間の長さを短縮する、というニーズがある。【００１２】
また、株券など金融商品の売買のタイミングを決めるための指標を計算するアプリケーションを考える。売買する金融商品の銘柄と売買戦略に応じて、必要な指標は複数存在し、出力すべき指標の集合は異なる。ある装置は、有限数の指標しか同時に計算できない。時刻に応じて売買する銘柄と戦略は変化する。そのため、そのとき売買する銘柄と売買戦略に応じて、算出する指標を変化させたい、というニーズがある。【００１３】
図１７を用いて、背景技術における、処理の変更の例を説明する。本例では、直近の２値の和を取る旧処理を、直近の３値の和を取る新処理に変更する。【００１４】
また、１サイクルごとにデータが入力されるものとし、１サイクルを単位とする時刻を用いて説明する。【００１５】
第１サイクルの開始時に、時系列データ１が入力され、旧処理がその値をウィンドウデータとして保存する。【００１６】
第２サイクルの開始時に、時系列データ２が入力され、旧処理がその値をウィンドウデータとして保存する。また、旧処理が、直近の２値が手に入ったため、結果データとして”３”を出力する。【００１７】
第３サイクルの開始時に、新処理への変更指示が与えられる。また、新処理を実行するための情報が装置に書き込まれ、動作を開始したとする。例えば、ＦＰＧＡの一部の領域に新処理を実行する回路情報が書き込まれたとする。ここで、旧処理を実行する回路情報とは別に新処理を実行する回路情報が書き込まれ、旧処理と新処理がしばらくの間並行に動作するものとする。【００１８】
第３サイクルの開始時に、時系列データ”３”が入力され、新処理がその値をウィンドウデータとして保存する。【００１９】
第４サイクルの開始時に、時系列データ”４”が入力され、新処理がその値をウィンドウデータとして保存する。【００２０】
第５サイクルの開始時に、時系列データ”５”が入力され、新処理がその値をウィンドウデータとして保存する。また、新処理が、直近の３値が手に入ったため、結果データとして”１２”を出力する。【００２１】
ここで、旧処理を停止あるいは削除して、処理の変更が完了する。【００２２】
ここで、処理の変更の際に、（１）新処理と旧処理の両方の結果が混在して装置外部への出力されないようにしつつ、両方の処理を行いたい。（２）さらに、処理の変更の前後の旧処理の結果のうち、まだ有用で利用可能なものを装置外部に出しつつ両方の処理を行いたい、というニーズが存在する。【００２３】
例として、上記の、ある期間の温度センサの値の平均を取って、火事を含む緊急事態を検知するアプリケーションを考える。このとき、温度変化が激しくなってきたときに、温度変化に追従する速度を高めるために、温度の平均を取る期間の幅を変えることが望ましい。また、旧処理、新処理の結果が混同されないように、両方の結果が混在して装置外部に出力されないように処理を変更することも必要である。さらに、旧処理の結果も依然有用で利用可能であるため、新処理の結果が装置外部に出力されるまでの間、旧処理の結果をなるべく多く装置から受け取ることが望ましい。以上のようなニーズが存在する。【００２４】
もう一つの例として、株券など金融商品の売買の指令を行うアプリケーションを考える。売買する銘柄を変えたいため、売買指示の処理を変える必要がある。変更前の銘柄を「旧銘柄」、変更後の銘柄を「新銘柄」という。また、処理の変更の前後で新旧銘柄に関する指示が混在すると、売買を誤る恐れがある。そのため、新旧処理両方の結果が混在して装置外部に出力されないように、処理の変更を行う必要がある。また、旧銘柄に対して、最後のタイミングまで売買指示が行われるかもしれないため、新処理の結果が装置外部に出力されるまでの間、旧処理の結果をなるべく多く装置から受け取ることが望ましい。以上のようなニーズが存在する。【００２５】
さらに、このアプリケーションでは、処理の変更の過程で、安全な状態になってから旧処理を停止したいというニーズがある。例えば、売りの指令を出したら、買いの指令を出すまで旧処理の指示を出させるようにしておいて、それから新処理の指示だけを出させるようにしたい場合がある。すなわち、（１）停止可能な状態になっていない旧処理から出力された結果の列は有用で利用可能であるため装置外部に出力させ、（２）その後、停止可能な状態になった旧処理から出力された結果の列は、新処理から出力された結果の列で置き換えて装置外部に出力させる、というニーズが存在する。【００２６】
以上のような処理に関連する技術が、特許文献１−４、非特許文献１に記載されている。【００２７】
特許文献１には、再構成可能デバイスを用いたシステムが開示されている。【００２８】
特許文献２には、２種類の処理を行う時系列データ圧縮装置が開示されている。【００２９】
特許文献３、４には、バージョン番号（更新版数）が付加された情報を取り扱う処理装置が開示されている。【００３０】
処理の更新に必要な機能の一つは、処理の結果が旧処理と新処理のいずれによるものであるかを識別することである。特許文献２−４の技術を組み合わせることで、時系列データに対して新処理、旧処理の２種類の処理を行い、旧処理の結果と新処理の結果を識別することは可能である。【００３１】
特許文献２−４の技術を組み合わせて旧処理の結果と新処理の結果を識別する方法について、詳しく説明する。図２９に、特許文献２、特許文献３、特許文献４の技術を組み合わせて構成された時系列データ処理装置の構成を示すブロック図を示す。図２９の時系列データ処理装置は、処理部６０１とバージョン比較部６１１を備える。【００３２】
処理部６０１は、旧処理に対応するユーザ定義処理及び新処理に対応するユーザ定義処理を行い、処理を一意に識別できる処理番号とバージョン番号を、処理の結果に付加して出力する。【００３３】
バージョン比較部６１１は、処理ごとに最新のバージョン番号を記録する。バージョン比較部６１１は、結果データが到着すると、記録されている処理ごとの最新のバージョン番号と結果データに付加されたバージョン番号を比較することで、旧処理の結果と新処理の結果を識別する。そして、バージョン比較部６１１は、識別結果に従って、旧処理の結果の破棄と、新処理の結果の外部出力を行う。【００３４】
図３０を用いて、図２９の時系列データ処理装置の動作を説明する。旧処理を行った処理部から、処理の結果データ“１”、旧処理と新処理に共通の番号で、旧処理と新処理の結果を他の処理の結果から一意に識別できる番号である処理番号“32767”、及び処理のバージョン番号（更新版数）“65534”が、バージョン比較部６１１に出力される。これを、〈結果、処理番号、バージョン番号〉という形式で表す。【００３５】
また、新処理を行った処理部から、処理の結果データ“２”、上記の処理番号“32767”、及び処理のバージョン番号（更新版数）“65535”が、バージョン比較部６１１に出力される。【００３６】
また、新処理にも旧処理にも関係しないその他の処理を行った処理部から、処理の結果データ“３”、この処理にのみ割り当てられている番号である処理番号“32768”、及び処理のバージョン番号（更新版数）“65535”が、バージョン比較部６１１に出力される。【００３７】
バージョン比較部６１１は、結果データの処理番号を用いて、その処理番号に対応する最新のバージョン番号を記録している表から取り出す。そして、その最新バージョン番号と結果データのバージョン番号を比較する。バージョン比較部６１１は、結果データのバージョン番号の方が古い場合には結果データは旧処理の結果であると判断し、古くない場合には結果データは新処理の結果であると判断する。以上の処理によって、旧処理の結果と新処理の結果が識別される。そして、識別結果に従って、旧処理の結果を破棄し、新処理の結果を外部に出力することができる。【００３８】
非特許文献１には、旧処理と新処理の２種類の処理が可能な時系列データ処理装置が開示されている。非特許文献１では、ソフトウェアによる実装が想定されているが、便宜上、ハードウェアによって実装したと想定し、その構成図を図１８に示す。【００３９】
非特許文献１の技術は、旧処理に対応するユーザ定義処理及び新処理に対応するユーザ定義処理を行う処理部５０１、処理部の結果を外部への出力ポートへ接続する合流部５１１を備える。【００４０】
非特許文献１の技術は大きく分けて２種類の方法で動作する。図１９から図２３を用いて、第１の方法による動作を説明する。【００４１】
本例では、直近の２値の和を取る旧処理を、直近の３値の和を取る新処理に変更する。新旧処理の両方とも、データを入力したのと同じサイクルに結果を生成する、とする。また、処理の結果は処理部５０１から合流部５１１へ１サイクルで到達するものとする。また、処理の結果は合流部５１１から装置外部へ１サイクルで到達するものとする。また１サイクルごとにデータが入力されるものとし、１サイクルを単位とする時刻を用いて説明する。【００４２】
第１サイクルの開始時に時系列データ”１”、第２サイクルの開始時に時系列データ”２”が入力されたとする。旧処理は直近の２値である［１，２］を得たため、処理部５０１が結果”３”を計算し出力する。第２サイクルの終了時に、各部分は図１９のような状態になる。【００４３】
第３サイクルの開始時に、新処理の内容が規定され、実行を開始するものとする。新処理の内容の規定は、処理を実現する装置がＦＰＧＡの場合は、例えば、部分再構成機能によって行われる。また、時系列データ３が新旧処理に入力されたとする。旧処理は結果”５”を出力する。新処理は、時系列データ”３”を保存しておく。装置外部へは旧処理の結果”３”が出力される。第３サイクルの終了時に、各部分は図２０のような状態になる。【００４４】
第４サイクルの開始時に、時系列データ”４”が新旧処理に入力されたとする。旧処理は結果”７”を出力する。新処理は、時系列データ”４”を保存しておく。装置外部へは旧処理の結果”５”が出力される。第４サイクルの終了時に、各部分は図２１のような状態になる。【００４５】
第５サイクルの開始時に、時系列データ”５”が新旧処理に入力されたとする。旧処理は結果”９”を出力する。新処理は直近の３値である［３，４，５］を得たため、３つの値の合計である結果”１２”を出力する。装置外部へは旧処理の結果”７”が出力される。第５サイクルの終了時に、各部分は図２２のような状態になる。【００４６】
第６サイクルの開始時に、時系列データ”６”が新旧処理に入力されたとする。旧処理は結果”１１”を出力する。新処理は結果”１５”を出力する。装置外部へは旧処理の結果”９”と新処理の結果”１２”が出力される。第６サイクルの終了時に、各部分は図２３のような状態になる。このように、非特許文献１の第１の方法では、装置外部へ新旧処理両方の結果が混在して出力される。【００４７】
次に、図２４から図２８を用いて、非特許文献１の第２の方法による動作を説明する。【００４８】
ここでも、直近２値の和を取る旧処理を、直近３値の和を取る新処理に変更する。新旧処理両方とも、データを入力したのと同じサイクルに結果を出力する、とする。また、処理の結果は処理部から合流部へ１サイクルで到達するものとする。また、処理の結果は合流部から装置外部へ１サイクルで到達するものとする。また１サイクルごとにデータが入力されるものとし、１サイクルを単位とする時刻を用いて説明する。【００４９】
第１サイクルの開始時に、時系列データ”１”が入力されたとする。第２サイクルの開始時に、時系列データ”２”が入力されたとする。旧処理は直近２値である［１，２］を得たため、処理部５０１が結果”３”を計算し出力する。第２サイクルの終了時に、各部分は図２４のような状態になる。【００５０】
第３サイクルの開始時に、新処理を実行するための情報が書き込まれ、実行を開始するものとする。第２の方法では、旧処理は、このタイミングで停止する。また、時系列データ”３”が新旧処理に入力されたとする。新処理は、時系列データ”３”を保存しておく。第３サイクルの終了時に、各部分は図２５のような状態になる。【００５１】
第４サイクルの開始時に、時系列データ”４”が新旧処理に入力されたとする。新処理は、時系列データ”４”を保存しておく。第４サイクルの終了時に、各部分は図２６のような状態になる。このように、第２の方法では、このタイミングで装置外部へ結果は出力されない。これに対して、第１の方法では、図２１のように、結果が出力される。【００５２】
第５サイクルの開始時に、時系列データ”５”が新旧処理に入力されたとする。新処理は直近の３値である［３，４，５］を得たため、結果”１２”を出力する。第５サイクルの終了時に、各部分は図２７のような状態になる。このように、第２の方法では、このタイミングでも、装置外部へ結果が出力されない。これに対して、第１の方法では、図２２のように、結果が出力される。【００５３】
第６サイクルの開始時に、時系列データ”６”が新旧処理に入力されたとする。新処理は結果”１５”を出力する。第６サイクルの終了時に、各部分は図２８のような状態になる。【００５４】
以上のように、非特許文献１の第２の方法では、新旧処理両方の結果が混在して装置外部に出力されることはない。
【先行技術文献】
【特許文献】
【００５５】
【特許文献１】特表２００４−５０８６１７号公報
【特許文献２】特開２００１−０４９７４７号公報
【特許文献３】特開２００１−０７５９０８号公報
【特許文献４】特開２００５−０４９１０２号公報
【非特許文献】
【００５６】
【非特許文献１】Kyumars Sheykh Esmail et al., Changing Flights in Mid-air: A model for Safely Modifying Continuous Queries, In Proc. Of SIGMOD’11, June 2011
【発明の概要】
【発明が解決しようとする課題】
【００５７】
特許文献１には、再構成可能デバイスを用いたシステムが開示されている。しかし、特許文献１には、デバイスの構成ファイル（所定の回路を構成するための回路情報）の書き換え時に発生する問題には言及されていない。従って、そのような問題を解決することができない。【００５８】
特許文献２には、２種類の処理を行う時系列データ圧縮装置が開示されている。しかし、特許文献２の装置では、前処理の結果に対する所定の判断の結果に基づいて、２種類の処理のうちの１つを適用する。そして、最終の処理結果がいずれの処理が適用されたものであるかの区別はされない。従って、２種類の処理のそれぞれによる結果を判別することができない。【００５９】
特許文献３、４には、バージョン番号（更新版数）が付加された情報を取り扱う処理装置が開示されている。しかし、特許文献３の技術、特許文献４の技術共に、バージョン番号は、それが付加された情報の新旧を判断し、新しい情報に更新するために用いられる。従って、バージョン番号が古い方の情報は、破棄されるため、その情報が有用であっても、活用することはできない。【００６０】
特許文献２の技術と、特許文献３又は特許文献４を組み合わせると、時系列データに対して新処理、旧処理の２種類の処理を行い、その結果データが、いずれの処理が適用されたものであるかの判別は可能である。しかし、その判別は、処理の新旧を判別するものとなり、旧処理による結果データを活用することはできない。【００６１】
前述のように、処理の更新に必要な機能の一つは、一つの装置で同時動作する複数の処理の複数の結果の中から、旧処理と新処理の結果を識別することである。そして、特許文献２−４を組み合わせると、旧処理と新処理の結果の識別機能を実現することはできる。しかし、その機能の実現のためには、処理番号に対応付けてバージョン番号を記憶する必要がある。そのため、処理の種類が多くなると、記憶が必要となる追加情報のデータサイズが大きくなるという課題が生じる。また、上記のような追加情報を用いた処理は、処理番号を用いたバージョン番号の検索と比較処理を含むため、処理の遅延が大きいという課題が存在する。【００６２】
上記の２つの課題が発生する理由について、具体例を用いて詳しく説明する。前述のように、特許文献２−４を組み合わせた技術では、図２９に示すように、旧処理と新処理の結果を一意に識別できる処理番号と、処理のバージョン番号を結果に付加することで、旧処理の結果と新処理の結果を識別する。この二つの情報、すなわち処理番号と処理のバージョン番号は、装置で同時に動作する処理の数が多い、又はバージョン番号の範囲が広いときには、そのデータ量が大きいという課題がある。【００６３】
また、これらの情報を用いて、旧処理と新処理を識別するようにした場合、装置で同時に動作する処理の数が多い、又はバージョン番号の範囲が広いときには、識別のための処理の遅延が大きいという課題がある。【００６４】
例えば、同時に65,536（=2^16）種の処理が一つの装置で動作し、それぞれの処理にバージョン番号が65,536種ある場合、処理番号とバージョン番号のそれぞれに１６ビットの情報が必要である。従って、旧処理と新処理の結果には、合計で３２ビットの情報を付加する必要がある。そして、旧処理と新処理の識別のためには、全体で2,097,152（=65,536×32）ビットという、膨大な量の情報を格納する必要があるという課題がある。【００６５】
また、バージョン比較部が記録する表は、65,536種類の処理ごとに１６ビットのバージョン番号を記録する必要があるので、全体で1,048,576（=65,536×16）ビットという、膨大な量の情報を格納する必要があるという課題がある。【００６６】
さらに、バージョン比較部は、２つの１６ビットのバージョン番号を比較する。これの比較処理は、３２ビットのデータを用いた演算となるため、処理結果が判明するまでの遅延時間が大きいという課題がある。【００６７】
非特許文献１の第１の方法では、図２３のように、新旧処理両方の結果が混在して装置外部に出力される。混在して出力された結果データは、新処理によるものか旧処理によるものかの識別ができない。そのため、処理の変更前後の旧処理による結果データを利用することができないという課題がある。【００６８】
非特許文献１の第２の方法では、新旧処理両方の結果が混在して装置外部に出力されことはない。そのため、結果データを利用することは可能である。【００６９】
ところが、旧処理による結果データで、有用で利用可能な結果があるときも、装置外部に出力されない。すなわち、旧処理は、動作させることが可能であるにもかかわらず、停止させられているために、旧処理によって得られるデータを外部に出力することができない。例えば、上記の例では、［２，３］の和、［３，４］の和は、利用可能であるにもかかわらず出力されない。【００７０】
さらに、旧処理を継続して動作させたとしても、合流部で新処理の結果と旧処理の結果が混合されるために、旧処理の結果を指定したタイミングまで出力させることはできない。上記の例では、新処理の結果と混合されることなく、［２，３］の和、［３，４］の和を出力することはできない。【００７１】
このように、非特許文献１の第２の方法には、旧処理を極力実行させ、その処理結果を最大限に利用するといった、処理装置の有効利用の観点で課題がある。【００７２】
以上の説明を整理すると、非特許文献１の技術では、処理の結果データについて、新処理によるものであるか旧処理によるものであるかを区別せず、混合して出力する。そのため、非特許文献１の技術では、処理を新処理から旧処理に実行時に変更する際に、新旧処理両方の結果が混在して装置外部に出力されるという課題がある。【００７３】
さらに、非特許文献１の技術では、新処理を開始するときは、旧処理は停止させる。そのため、旧処理の有用で利用可能な結果が装置外部に出力されないという課題もある。
（発明の目的）
本発明はこのような事情に鑑みて提案されたものであり、時系列データの処理において、第１の処理から第２の処理への処理の変更時に、新旧処理の両方の結果が混在して外部に出力されず、処理の変更前後の旧処理の結果を外部に出力することができ、旧処理と新処理の結果を識別するための付加情報の量を削減し、さらに、旧処理と新処理の結果の識別、並びに出力及び破棄の対象とする結果の選択の判断に要する時間を短縮できる、時系列データ装置、時系列データ方法及び時系列データ処理プログラムの記憶媒体を提供することにある。
【課題を解決するための手段】
【００７４】
本発明の時系列データ処理装置は、第１の処理を実行して第１の結果データを出力する第１の処理手段と、第２の処理を実行して第２の結果データを出力する第２の処理手段と、外部から処理の変更の指示を受けたとき、第１の処理が停止可能か否かを判断し、第１の結果データに第１の処理の状態を表す第１の識別情報を付加して第１の結果データの組を生成し、第２の結果データに第２の処理の状態を表す第２の識別情報を付加して第２の結果データの組を生成する制御手段と、外部へ出力すべき結果データを指定する第３の識別情報を記録し、第１の結果データの組又は第２の結果データの組が到着したとき、第１の識別情報と第３の識別情報との比較結果及び第２の識別情報と第３の識別情報との比較結果に基づいて、第１の結果データの組又は第２の結果データの組の一方を選択して出力し他方を破棄する選択手段と、を備えることを特徴とする。【００７５】
本発明の時系列データ処理方法は、第１の処理手段において第１の処理を実行して、第１の結果データを出力し、第２の処理手段において第２の処理を実行して、第２の結果データを出力し、外部から処理の変更の指示を受けたとき、第１の処理が停止可能か否かを判断し、第１の結果データに第１の処理の状態を表す第１の識別情報を付加して第１の結果データの組を生成し、第２の結果データに第２の処理の状態を表す第２の識別情報を付加して第２の結果データの組を生成し、外部へ出力すべき結果データを指定する第３の識別情報を記録し、第１の結果データの組又は第２の結果データの組が到着したとき、第１の識別情報と第３の識別情報との比較結果及び第２の識別情報と第３の識別情報との比較結果に基づいて、第１の結果データの組又は第２の結果データの組の一方を選択して出力し他方を破棄することを特徴とする。【００７６】
本発明の時系列データ処理プログラムの記憶媒体は、第１の処理を実行して第１の結果データを出力する第１の処理手段、及び第２の処理を実行して第２の結果データを出力する第２の処理手段を備える時系列データ処理装置が備えるコンピュータを、
外部から処理の変更の指示を受けたとき、第１の処理が停止可能か否かを判断し、第１の結果データに第１の処理の状態を表す第１の識別情報を付加して第１の結果データの組を生成し、第２の結果データに第２の処理の状態を表す第２の識別情報を付加して第２の結果データの組を生成する制御手段、及び外部へ出力すべき結果データを指定する第３の識別情報を記録し、第１の結果データの組又は第２の結果データの組が到着したとき、第１の識別情報と第３の識別情報との比較結果及び第２の識別情報と第３の識別情報との比較結果に基づいて、第１の結果データの組又は第２の結果データの組の一方を選択して出力し他方を破棄する選択手段と、
として機能させるためのプログラムを格納することを特徴とする。
【発明の効果】
【００７７】
本発明によれば、時系列データの処理において、実行する処理を、第１の処理から第２の処理へ変更したときも、第１、第２の両方の結果が混在して装置外部に出力されない。さらに、処理の変更前後の旧処理の結果を外部に出力することができる。さらに、新旧処理の結果データに付加される情報の量を削減し、新旧処理の結果の識別、並びに出力及び破棄の対象とする結果の選択の判断に要する時間を短縮することができる。
【図面の簡単な説明】
【００７８】
【図１】本発明の実施形態の時系列データ処理装置の構成を示すブロック図である。
【図２】選択部１２１の内部構成の例を示すブロック図である。
【図３】結果データの組のデータ構造の例を示す図である。
【図４】本発明の実施形態の時系列データ処理装置における処理例を示すフローチャートである。
【図５】本発明の実施形態の時系列データ処理装置における処理例を示すフローチャートである。
【図６】本発明の実施形態の時系列データ処理装置における処理例を示すフローチャートである。
【図７】本発明の実施形態の時系列データ処理装置の各状態における、識別情報及び出力データを示す表である。
【図８】本発明の実施形態の動作の具体例の、第４サイクル終了時の各部の出力データの状態を示す図である。
【図９】本発明の実施形態の動作の具体例の、第５サイクル終了時の各部の出力データの状態を示す図である。
【図１０】本発明の実施形態の動作の具体例の、第６サイクル終了時の各部の出力データの状態を示す図である。
【図１１】本発明の実施形態の動作の具体例の、第７各サイクル終了時の各部の出力データの状態を示す図である。
【図１２】本発明の実施形態の動作の具体例の、第８サイクル終了時の各部の出力データの状態を示す図である。
【図１３】本発明の実施形態の動作の具体例の、第９サイクル終了時の各部の出力データの状態を示す図である。
【図１４】本発明の実施形態の動作の具体例の、第１０サイクル終了時の各部の出力データの状態を示す図である。
【図１５】本発明の実施形態の動作の具体例の、第１１サイクル終了時の各部の出力データの状態を示す図である。
【図１６】本発明の実施形態の動作の具体例の、第１２サイクル終了時の各部の出力データの状態を示す図である。
【図１７】背景技術の動作例の旧処理と新処理の状態の時間遷移図である。
【図１８】非特許文献１の時系列データ処理装置の構成を示すブロック図である。
【図１９】非特許文献１の時系列データ処理装置の、第１の方法による、第２サイクルの終了時の各部の出力データの状態を示す図である。
【図２０】非特許文献１の時系列データ処理装置の、第１の方法による、第３サイクルの終了時の各部の出力データの状態を示す図である。
【図２１】非特許文献１の時系列データ処理装置の、第１の方法による、第４サイクルの終了時の各部の出力データの状態を示す図である。
【図２２】非特許文献１の時系列データ処理装置の、第１の方法による、第５サイクルの終了時の各部の出力データの状態を示す図である。
【図２３】非特許文献１の時系列データ処理装置の、第１の方法による、第６サイクルの終了時の各部の出力データの状態を示す図である。
【図２４】非特許文献１の時系列データ処理装置の、第２の方法による、第２サイクルの終了時の各部の出力データの状態を示す図である。
【図２５】非特許文献１の時系列データ処理装置の、第２の方法による、第３サイクルの終了時の各部の出力データの状態を示す図である。
【図２６】非特許文献１の時系列データ処理装置の、第２の方法による、第４サイクルの終了時の各部の出力データの状態を示す図である。
【図２７】非特許文献１の時系列データ処理装置の、第２の方法による、第５サイクルの終了時の各部の出力データの状態を示す図である。
【図２８】非特許文献１の時系列データ処理装置の、第２の方法による、第６サイクルの終了時の各部の出力データの状態を示す図である。
【図２９】特許文献２−４の技術を組み合わせて構成された時系列データ処理装置の構成を示すブロック図である。
【図３０】図２９の時系列データ処理装置の、各部の出力データの状態を示す図である。
【発明を実施するための形態】
【００７９】
（第１の実施形態）
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００８０】
時系列データに対して処理を行う時系列データ処理装置において、ＩＣチップ上の複数領域でユーザ定義処理を実行し、実行時に任意の領域を異なる動作をする処理に変更する。前述のように、変更前の処理を「第１のユーザ定義処理」、変更後の処理を「第２のユーザ定義処理」という。あるいは、変更前の処理を「旧処理」、変更後の処理を「新処理」ということもある。
【００８１】
ＩＣチップにおいて、旧処理を動作させたまま、新処理を実行する回路情報を、旧処理を実行する回路の領域とは別の領域に書き込み、新処理の動作を開始させ、その後、旧処理を停止させ、旧処理を実行する回路情報を削除する形で処理の変更を行うことにより、結果が出力されない期間を短縮しながら処理の変更を実現する。なお、上記の処理の変更は、時系列データデータ処理を実行する回路情報を書き込める領域（「パーティション」という。）を、複数持つＩＣチップを用いて実現してもよい。このようなＩＣチップの例として、ＦＰＧＡが挙げられる。  
【００８２】
図１は、本発明の実施形態に係る時系列データ処理装置１００の構成を示すブロック図である。
【００８３】
時系列データ処理装置１００は、処理部１０１、制御部１１１、選択部１２１を備える。１
処理部１０１は、旧処理を実行し結果データを出力する。あるいは、処理部１０１は、旧処理の実行時に置き換えられた新処理を実行し、結果データを出力する。処理部１０１が実行する処理が、旧処理であるか、あるいは新処理であるかは、処理部１０１が実行する処理の変更の有無により決まる。複数の処理部１０１の機能や内部の構成は、全て同じであっても、一部又は全部が異なっていてもよい。
【００８４】
制御部１１１は、各処理部１０１が行った処理の内容に対応する「識別情報」を設定する。識別情報の違いにより、処理部１０１が行った処理の違いを識別することができる。
【００８５】
識別情報を設定する目的について、詳しく説明する。時系列データ処理装置１００では、複数の処理部において、旧処理から新処理への変更が同時に進行することがある。すなわち、第１の処理部における第１の旧処理から第１の新処理への変更と、第２の処理部における第２の旧処理から第２の新処理への変更が同時に進行することがある。このような場合に、所定の識別情報を用いることによって、第１の旧処理と第１の新処理を、時系列データ処理装置１００上で同時に動作する、第２の旧処理及び第２の新処理を含む他の処理から識別することができる。
【００８６】
外部からの、第１の処理部による処理の変更の指示のタイミングと第２の処理部による処理の変更の指示のタイミングは、一致しないように制御される。この制御によって、第１の旧処理から第１の新処理への変更と、第２の旧処理から第２の新処理への変更が同時に進行することはない。この制御により、第１の旧処理及び第１の新処理の状態は、４種類の識別情報で表すことができる。４種類の識別情報を、それぞれ、"stable"、"transit-0"、"transit-1"、"transit-2"と呼ぶ。
【００８７】
"stable"は、処理の変更が起きていない場合の結果データ、すなわち新処理と旧処理のペアが生じていない処理の結果データを意味する。なお、旧処理から新処理への変更が完了したときには、処理部は初期状態、すなわち変更が起きていない状態に戻るので、結果データの識別情報は、"stable"となる。
【００８８】
"transit-0"は、処理の変更が進行中であること、及び"transit-0"に対応する結果データは、新処理の結果データと旧処理の結果データのペアのうち、新処理の結果データであり、現時点ではまだ装置外部に出力しないように指示された結果データであることを意味する。
【００８９】
"transit-1"は、処理の変更が進行中であることを意味する。なお、"transit-1"に対応する結果データは、処理の変更途中のものであるから、新処理の結果データと旧処理の結果データのペアのうち、旧処理の結果データである。"transit-1"は、選択部１２１に記録されたときは、出力すべき結果データが旧処理の結果データであることを指定する。
【００９０】
"transit-2"は、処理の変更が進行中であること、及び"transit-2"に対応する結果データは、新処理の結果データと旧処理の結果データのペアのうち、新処理の結果データであり、装置外部に出力するように指示された結果データであることを意味する。"transit-2"は、選択部１２１に記録されたときは、出力すべき結果データが新処理の結果データであることを指定する。
【００９１】
そして、制御部１１１は、処理部１０１が結果データを出力したタイミングで、結果データに識別情報を付加し、選択部１２１へ出力する。結果データに付加される識別情報は、上記の４種類の全てを取りうるので、２ビットで表現される。２ビットの識別情報は、制御部１１１によって論理レベルが制御される２本の配線、あるいは制御部１１１によって保持値が制御される２個のフリップフロップ等で実現することができる。
【００９２】
以上のように、本実施形態では、旧処理から新処理へ変更される際に、それぞれの処理部１０１の出力において２ビットの識別情報が追加される。従って、時系列データ処理装置１００でＮ個の処理が同時に動作する場合には、装置全体として２＊Ｎビットの情報が追加される。
【００９３】
これに対して、特許文献２−４を組み合わせた方法では、バージョン番号がＭ種の値を取るとし、２を底とするＮの自然対数をｌｏｇ２（Ｎ）と表すとすると、処理部の出力に、装置全体として（ｌｏｇ２（Ｍ）＋ｌｏｇ２（Ｎ））＊Ｎビットの情報が追加される。
【００９４】
ここで、例えば、ＮとＭを65,536とすると、本実施形態と、特許文献２−４を組み合わせた方法で、装置全体として追加される情報のビット数は、それぞれ、131,072、2,097,152となる。このように、本実施形態の方法では、追加される情報の量が大幅に削減される。
【００９５】
選択部１２１は、複数の処理部１０１と制御部１１１から、結果データとそれに対応付けて付加された識別情報の組を受け取る。選択部１２１には予め識別情報が登録されている。選択部１２１は、受け取った識別情報と、選択部１２１に登録されている識別情報を用いて、動作への切り替えを行う。動作の切り替えとは、旧処理の結果データを外部へ出力し新処理の結果データを破棄するという動作から、旧処理の結果データを破棄し新処理の結果データを外部へ出力するという動作への切り替えである。結果データが出力される際に、出力される結果データに付加されていた識別情報も外部へ出力されてもよい。そして、選択部１２１は、ある処理部１０１の処理が新処理に切り替えられた後、新処理の結果データを初めて出力したというイベントを、選択部１２１に記録されている識別情報を用いて記録する。
【００９６】
なお、選択部１２１に記録して用いられる識別情報は、後に説明するように、"transit-1"又は"transit-2"の２種のみなので、１ビットで表現することができる。１ビットの識別情報は、制御部１１１によって論理レベルが制御される１本の配線あるいは制御部１１１によって保持値が制御される１個のフリップフロップ等で実現することができる。
【００９７】
以上のように、本実施形態では、選択部１２１に１ビットの識別情報が記録される。従って、時系列データ処理装置１００でＮ個の処理が同時に平行して動作する場合には、選択部には、１ビットの情報が格納される。
【００９８】
これに対して、特許文献２−４を組み合わせた方法では、バージョン番号がＭ種の値を取るとすると、ｌｏｇ２（Ｍ）＊Ｎビットの情報が格納される。
【００９９】
ここで、例えば、ＮとＭを65,536とすると、本実施形態と、特許文献２−４を組み合わせた方法で、追加して記録される情報のビット数は、それぞれ、１、1,048,576となる。このように、本実施形態の方法では、追加して記録される情報の量が大幅に削減される。
【０１００】
また、本実施形態では、旧処理の結果と新処理の結果の識別のために、結果データに付加された識別情報と、選択部に格納されている識別情報を用いた演算が行われる。さらに、時系列データ処理装置１００で、Ｎ個の処理が同時に平行して動作する場合には、処理の種類の識別、すなわちその処理を行った処理部１０１の識別のために、のために、選択部１２１において、識別情報を用いた演算が追加される。このように、本実施形態では、選択部１２１において、バージョン番号に関する処理と処理番号に関する処理、すなわち２＋１ビットを入力とする演算が行われる。
【０１０１】
これに対して、特許文献２−４を組み合わせた方法では、二つのバージョン番号を用いた演算が追加される。すなわち、バージョン番号がＭ種の値を取るとすると、２＊ｌｏｇ２（Ｍ）を入力とする演算が追加される。
【０１０２】
ここで、例えば、ＮとＭを65,536とすると、本実施形態と、特許文献２−４を組み合わせた方法で、必要となる演算の入力ビット数は、それぞれ、３、３２となる。このように、本実施形態では、演算の入力ビット数が大幅に減少するので、演算に要する時間が大幅に短縮される。
【０１０３】
あるいは、特許文献２−４を組み合わせた方法では、選択部１２１の演算時間を短縮するために、検索及び比較の処理を並列に行う等、ハードウェアの規模を大きくする方法も考えられる。これに対して、本実施形態では、入力ビット数を削減することができるので、並列処理を行う場合であっても、ハードウェアを大幅に削減することができる。
【０１０４】
制御部１１１は、処理部１０１の結果データの出力に合わせて、識別情報を出力する。この結果、選択部１２１への入力情報は、処理部１０１が出力した結果データと制御部が付加した識別情報の組である。上記の情報の組は、例えば、図３に示すような構成をとってもよい。以降、結果データ、識別情報からなる上記情報の組を、一体のものとして取り扱うときは、「結果データの組」という。
【０１０５】
図２は、選択部１２１の内部構成の例を示すブロック図である。選択部１２１は、入力ポート、出力ポート、待ちデータキュー１００１、調停部１００２を備える。選択部１２１は、調停部１００２を用いて、２つの入力ポートと待ちデータキュー１００１から受け取った結果データの組について、出力ポートの割り当ての調停を行う。出力ポートが割り当てられた結果データの組は出力ポートに出力される。出力ポートが割り当てられなかった結果データの組は、破棄されるか、待ちデータキュー１００１に挿入される。待ちデータキュー１００１に挿入されたデータは、次のサイクルに再び選択部１２１への入力となる。
【０１０６】
次に、本実施の形態に係る時系列データ処理装置１００の動作について、図４、図５、図６を参照して説明する。
【０１０７】
まず初めに、いくつかの用語を定義する。新たな入力が到着して、次の入力が来る前の期間を、「１入力期間」という。時系列データ処理装置が、所定の動作を完了させるために要する単位時間を規定するクロックの周期を、「１サイクル」という。
【０１０８】
前述のように、ＩＣチップ上に処理を実行させることのできる回路の領域を複数分けて設け、これを「パーティション」という。パーティションには、構成データ、コンフィギュレーションデータと呼ばれる設定情報を設定することで、ユーザ定義の処理を実行する回路を作成することができる。
【０１０９】
また、「指令する」、「指示する」とは、ある部分（「指令元部分」という。）が、別の部分（「指令先部分」という。）に接続されている配線の信号を操作したり、指令先部分に存在する記憶装置に値を書き込んだりすることを意味する。「登録する」、「設定する」、「記録する」とは、登録元のある部分が、登録先の別の部分に存在する記憶装置に値を書き込むことを意味する。「情報を送る」、「データを送る」、「結果を出力する」とは、送り元である、装置のある部分が、送り先である、装置の別の部分に接続されている配線の信号を操作したり、送り先の部分に存在する記憶装置に値を書き込んだりすることを意味する。
【０１１０】
ところで、本実施形態では、時系列データ処理装置１００から出力される結果データが、旧処理によるものから新処理によるものへ変更される。この変更は、図示されないホストコンピュータ等による、時系列データ処理装置１００に対する、処理の変更指示（以降、「処理変更指示」という。）によって許可される。以下の説明では、時系列データ処理装置１００は、既に処理変更指示を受けていることを前提とする。
【０１１１】
図４のフローチャートにおいて、まず、制御部１１１は、全ての処理部１０１の識別情報を"stable"に設定し、選択部１２１に記録されている識別情報を"transit-1"にする（ステップＳ１００１）。
【０１１２】
次に、制御部１１１は、新処理を実行するための回路情報を、処理部１０１における、旧処理を実行するための回路情報が書き込まれた領域とは別の領域に書き込む前のタイミングで、旧処理の識別情報を"transit-1"にする（ステップＳ１００２）。
【０１１３】
次に、制御部１１１は、処理部１０１への新処理を実行するための回路情報の書き込みのタイミングで、新処理の識別情報を"transit-0"に設定する（ステップＳ１００３）。
【０１１４】
次に、制御部１１１は、旧処理が停止可能な状態に至ったか判断し、該当する場合は新処理の識別情報を"transit-2"に設定する（ステップＳ１００４）。
【０１１５】
ここで、「旧処理が停止可能な状態」とは、旧処理を実行する処理部１０１の動作を停止させ、結果データの出力を停止することができる状態をいう。旧処理が停止可能な状態では、時系列データ処理装置１００から出力される結果データを、旧処理による結果データから新処理による結果データへ変更することができる。
【０１１６】
すなわち、処理変更指示を受けると、時系列データ処理装置１００から出力される結果データが、直ちに、新処理による結果データに変更されるのではない。時系列データ処理装置１００が処理変更指示を受け、さらに、旧処理が停止可能な状態に至った後、時系列データ処理装置１００から出力される結果データが、新処理による結果データに変更される。
【０１１７】
例えば、旧処理が進行中である等の旧処理を実行する処理部１０１の処理状況、あるいは、旧処理による一連のデータの出力中である等の処理部１０１の出力状況によっては、旧処理が停止可能な状態にはならない。この場合は、時系列データ処理装置１００からは、旧処理の結果データの出力が継続される。
【０１１８】
識別情報の設定を指示したり、値を与えたりする主体は、図示されないホストコンピュータでもよい。あるいは、その主体は制御部１１１でもよい。
【０１１９】
次に、制御部１１１は、処理部１０１における旧処理を停止させる（ステップＳ１００５）。
【０１２０】
次に、制御部１１１は、旧処理の結果データが時系列データ処理装置１００中に存在しなくなったタイミングで、新処理の識別情報を"stable"にする（ステップＳ１００６）。
【０１２１】
次に、制御部１１１は、"transit-2"であるデータが装置中に存在しなくなったタイミングで、選択部１２１に記録されている識別情報を"transit-1"にし、ステップＳ１００２に戻る（ステップＳ１００７）。
【０１２２】
図４のフローチャートに示す動作の処理と並行して、制御部１１１では、図５のフローチャートに示す処理が行われる。すなわち、制御部１１１は、結果データの組を選択部１２１に送り、ステップＳ１２０１に戻る（ステップＳ１２０１）。
【０１２３】
さらに、図４のフローチャートに示す動作の処理と並行して、選択部１２１では、図６のフローチャートに示す処理が行われる。すなわち、選択部１２１は、識別情報が"transit-2"である結果データの組が到着し、かつ、記録されている識別情報が"transit-1"である場合は、記録されている識別情報を"transit-2"に更新する（ステップＳ１３０１）。
【０１２４】
次に、選択部１２１は、記録されている識別情報が"transit-1"の場合は、到着した結果データの組のうち、識別情報が"transit-0"のものを破棄する。選択部１２１は、記録されている識別情報が"transit-2"の場合は、到着した結果データの組のうち、識別情報が"transit-1"のものを破棄する（ステップＳ１３０２）。
【０１２５】
次に、選択部１２１は、到着した結果データの組のうちで、破棄されていないものの間で、装置外部への出力ポートの使用権の調停を行う。そして、出力ポートの使用権を獲得できたものを、出力ポートへ転送して装置の外部へ出力し、獲得できなかったものを待ちデータキューに挿入し、ステップＳ１３０１に戻る（ステップＳ１３０３）。
【０１２６】
「待ちデータキュー」とは、選択部１２１において、破棄されず、かつ出力されなかった結果データの組が挿入されるキューである。待ちデータキューに格納された結果データの組は、次のサイクルに待ちデータキューから取り出され、選択部１２１に到着したとみなされる  「出力ポートの使用権の調停」とは、具体的には、出力ポートを使用できるデータを一つ選ぶ行為を意味する。この調停においてデータが選ばれたとき、「データがポートを獲得した」という。
【０１２７】
図７に、時系列データ処理装置１００の各状態における、識別情報及び出力データを示す。
【０１２８】
処理の変更のない初期状態では、全ての処理の結果データの識別情報は"stable"に設定され、選択部１２１に記録される識別情報は"transit-1"に設定される。以上の設定により、選択部１２１からは、全ての処理の結果データが装置外部に出力される。
【０１２９】
次に、処理部１０１における処理の変更が開始された後で、かつ旧処理が停止可能な状態にないときは、旧処理の結果データの識別情報は"transit-1"に変更される。また、新処理の結果データの識別情報は"transit-0"に変更される。ただし、選択部１２１に記録される識別情報は"transit-1"のまま変更されない。以上の設定により、選択部１２１によって、新処理の結果データは、破棄され続ける。
【０１３０】
そして、旧処理が停止可能な状態になったときは、新処理の結果データの識別情報は"transit-2"に変更され、選択部１２１に記録される識別情報が"transit-1"から"transit-2"に変更される。以上の設定により、選択部１２１によって、旧処理の結果データは、破棄され続ける。
【０１３１】
処理の変更が完了した後は、新処理の結果データの識別情報は"stable"に、選択部１２１に記録される識別情報は"transit-1"に変更される。以上の設定によって、識別情報の状態は、初期状態に戻る。
（実施形態の動作の具体例）
図４から図６のフローチャートと、図８から図１６のブロック図を参照して、実施形態に係る時系列データ処理装置１００の動作の具体例を説明する。
【０１３２】
図８から図１６の時系列データ処理装置１００は、４つの処理部１０１を備える。以降、旧処理の実行を担当する処理部は処理部１０１−１と表記し、新処理の実行を担当する処理部は処理部１０１−２と表記する。実行する処理が旧処理であるか新処理であるかを区別する必要がなく、処理部１０１−１、処理部１０１−２の両方に当てはまるとき、あるいは、旧処理、新処理以外の処理を行うときは、処理部１００と表記する。
【０１３３】
本具体例では、株価の時系列データについて、４つの値の和を計算する処理（「旧処理」という。）を、入力値から”２”を減算する処理（「新処理」という。）に変更することを考える。
【０１３４】
なお、以下の説明では、新処理、旧処理とも、ＦＰＧＡのように再構成可能な回路素子に、それぞれの処理を実行するための回路情報を書き込んだ後、回路を動作させることによって実現することを想定している。しかし、新処理、旧処理の実現方法は、上記のようにハードウェアによって実現する方法には限定されない。すなわち、前述のように、処理部１０１が備えるプロセッサにプログラムを実行させるという、ソフトウェアによる方法を用いてもよい。ソフトウェアによる実現方法では、以下の「回路情報」を「プログラム」に置き換えて考えればよい。
【０１３５】
本具体例では、処理を以下のステップで変更する。
（１）新処理を実行するための回路情報を、旧処理を実行するための回路情報が書き込まれた領域とは別の領域に書き込む。
（２）新処理の動作を開始する。
（３）新処理の出力を開始する。
（４）旧処理の動作を停止する。
（５）旧処理を実行するための回路情報を削除する。
【０１３６】
初期状態では、旧処理を実行する処理部１０１−１のみが、時系列データ処理装置１００上で動作している。
【０１３７】
ここで、旧処理が停止可能になって、旧処理の結果データを出力停止し、新処理の結果データを出力開始させたいタイミングが、旧処理の処理部１０１−１から制御部１１１に与えられるとする。そのタイミングは、新処理を実行するための回路情報の、新処理の処理部１０１−２への書き込みが完了し、新処理が結果を出力し始めてから、数サイクルの後であるとする。つまり、新処理が結果出力を開始した以降も、数サイクルの間は、旧処理の結果は利用可能である。そこで、この利用可能な旧処理の結果を出力可能にすることによって、有効に利用することができる。
【０１３８】
新処理及び旧処理を実行する装置はＦＰＧＡでもよい。時系列データ処理装置１００が結果を出力する先は、ホストコンピュータでもよい。旧処理は、処理を実行する装置がＦＰＧＡの場合は、ＦＰＧＡが持つ再構成機能を使って、必要な回路情報をＦＰＧＡに書き込むことによって、実現してもよい。
【０１３９】
また、入力データは整数であるものとする。前述のように、時系列データ処理装置の動作に用いられるクロックの周期を「サイクル」といい、これを期間の単位として用いる。「サイクルの開始時」とは、その期間の最初の時点を意味し、「サイクルの終了時」とは、その期間の最後の時点を意味する。例えば、クロックの周波数が１ＧＨｚである場合は、ある基準時刻について第１サイクルは、基準時刻プラスゼロ秒から基準時刻プラス１ナノ秒の間の期間を、第Ｎサイクルは基準時刻プラス（Ｎ−１）ナノ秒から基準時刻プラスＮナノ秒の期間を意味する。第Ｍサイクルの開始時は、基準時刻プラス（Ｍ−１）ナノ秒を意味し、第Ｍサイクルの終了時は、基準時刻プラスＭナノ秒を意味する。入力データは、毎サイクルの開始時に与えられるものとする。
【０１４０】
また、「処理部１０１が結果を出力する」とは、処理部１０１が算出した結果データを文字通り出力することを意味する。処理部１０１が算出した結果データは、制御部１１１によって、識別情報が付加され、選択部１２１へ送られる。
【０１４１】
まず、制御部は、全ての処理部の識別情報を"stable"にし、選択部に記録されている識別情報を"transit-1"に設定する（ステップＳ１００１）。
【０１４２】
次に、第１、第２、第３、第４サイクルの開始時に、入力データとして、１，２，３，４が旧処理を実行する処理部１０１−１に与えられると、処理部１０１−１は、それらの入力データの和を計算し出力する。処理部１０１−１は、結果データを出力し、制御部１１１が結果データに識別情報"stable"を付加して選択部１２１に送る（ステップＳ１２０１）。結果データと、識別情報とを合わせて＜１０，stable＞のように表す。以降は、この値の組を、混同のない限り「結果」あるいは「結果データの組」という。この時点での、時系列データ処理装置１００の内部の出力情報、すなわち、処理部１０１−１から選択部１２１に送られた結果データの組を図８に示す。
【０１４３】
第５サイクルの開始時に、選択部１２１には、旧処理の結果データの組が到着する。選択部１２１は、結果データの組の識別情報は"transit-2"ではないので、記録している識別情報を更新しない（ステップＳ１３０１）。
【０１４４】
さらに、選択部１２１は、記録されている識別情報が"transit-1"であり、到着した結果データの組の識別情報は"stable"なので、結果データを破棄しない（ステップＳ１３０２）。
【０１４５】
さらに、到着した結果データの組は一つであり、またそれが破棄されなかったため、選択部１２１は、この一つの結果データの組について装置外部への出力ポートの調停を行う。調停によって出力ポートが獲得されるので、選択部１２１は、結果データの組を装置外部への出力ポートへ転送する（ステップＳ１３０３）。
【０１４６】
また、制御部１１１は、新処理を実行するための回路情報の書き込みの準備として、旧処理の識別情報を＜transit-1＞に設定する（ステップＳ１００２）。入力データ”５”が旧処理を実行する処理部１０１−１に与えられ、制御部１１１は、＜１４，transit-1＞を選択部１２１に出力する。
【０１４７】
第５サイクルの終了時の、時系列データ処理装置１００の内部の出力情報を図９に示す。
【０１４８】
第６サイクルの開始時に、選択部１２１には、旧処理の結果データの組が到着する。選択部１２１は、結果データの組の識別情報は"transit-2"ではないので、記録している識別情報を更新しない（ステップＳ１３０１）。
【０１４９】
さらに、選択部１２１は、記録されている識別情報が"transit-1"であり、結果データの組の識別情報は"transit-1"であるため、これを破棄しない（ステップＳ１３０２）。
【０１５０】
さらに、選択部１２１は、破棄されなかった結果データの組について装置外部への出力ポートの調停を行う。調停によって出力ポートが獲得されるので、選択部１２１は、旧処理の結果データの組を装置外部への出力ポートへ転送する（ステップＳ１３０３）。
【０１５１】
このタイミングで、処理部１０１−２に新処理を実行するための回路情報が書き込まれ、さらに、処理部１０１−２が新処理の実行を開始したとする。制御部１１１は、新処理の識別情報を"transit-0"に設定する（ステップＳ１００３）。
【０１５２】
さらに、入力データ”６”が、処理部１０１−１、１０１−２に与えられたとする。そして、処理部１０１−１と制御部１１１が結果データの組〈18,transit-1〉を、処理部１０１−２と制御部１１１が結果データの組〈4,transit-0〉を選択部１２１に出力する。
【０１５３】
第６サイクルの終了時の、時系列データ処理装置１００の内部の出力情報を図１０に示す。
【０１５４】
第７サイクルの開始時に、選択部１２１には、新処理と旧処理の２つの結果データの組が到着する。選択部１２１は、結果データの組の識別情報は２つとも"transit-2"ではないので、記録している識別情報を更新しない（ステップＳ１３０１）。
【０１５５】
さらに、選択部１２１は、記録されている識別情報が"transit-1"であり、旧処理の結果データの組の識別情報は"transit-1"であるため、旧処理の結果データの組を破棄しない。一方で、選択部１２１は、新処理の結果データの組の識別情報は"transit-0"であるため、新処理の結果データの組を破棄する（ステップＳ１３０２）。
【０１５６】
さらに、選択部１２１は、破棄されなかった結果データの組の間の、装置外部への出力ポートの調停を行う。調停によって出力ポートが獲得されるので、選択部１２１は、旧処理の結果データの組を装置外部への出力ポートへ転送する（ステップＳ１３０３）。この動作により、旧処理と新処理の結果が混在して装置外部に出力されるという問題が回避される。また、有用である旧処理の結果データが破棄されることなく、装置外部に出力されるので、結果データを有効に利用することができる。
【０１５７】
また、入力データ“７”が処理部１０１−１、１０１−２に与えられたとする。そして、処理部１０１−１と制御部１１１が結果データの組＜２２，transit-1＞を選択部１２１に送り、処理部１０１−２と制御部１１１が結果データの組＜５，transit-0＞を選択部１２１に送る。
【０１５８】
第７サイクルの終了時の、時系列データ処理装置１００の内部の出力情報を図１１に示す。
【０１５９】
第８サイクルの開始時に、選択部１２１には、新処理と旧処理の２つの結果データの組が到着する。選択部１２１は、結果データの組の識別情報は２つとも"transit-2"ではないので、記録している識別情報を更新しない（ステップＳ１３０１）。
【０１６０】
さらに、選択部１２１は、記録されている識別情報が"transit-1"であり、旧処理の結果データの組の識別情報は"transit-1"であるため、旧処理の結果データの組を破棄しない。一方で、選択部１２１は、新処理の結果データの組の識別情報は"transit-0"であるため、新処理の結果データの組を破棄する（ステップＳ１３０２）。
【０１６１】
さらに、選択部１２１は、破棄されなかった結果データの組について装置外部への出力ポートの調停を行う。調停によって出力ポートが獲得されるので、選択部１２１は、旧処理の結果データの組を装置外部の出力ポートへ転送する（ステップＳ１３０３）。
【０１６２】
このサイクルで、旧処理が停止可能な状態に至り、制御部１１１が新処理の識別情報を"transit-2"に設定したとする（ステップＳ１００４）。同じサイクルに、処理部１０１−１と制御部１１１が結果〈26,transit-1〉を、処理部１０１−２と制御部１１１が結果〈6,transit-2〉を出力したとする。
【０１６３】
第８サイクルの終了時の、時系列データ処理装置１００の内部の出力情報を図１２に示す。
【０１６４】
第９サイクルの開始時に、選択部１２１には、新処理と旧処理の２つの結果データの組が到着する。選択部１２１は、記録されている識別情報が"transit-1"かつ新処理の結果データの組の識別情報は"transit-2"なので、記録している識別情報を"transit-2"に更新する（ステップＳ１３０１）。
【０１６５】
さらに、選択部１２１は、記録されている識別情報が"transit-2"であり、新処理の結果データの組の識別情報は"transit-2"であるため、新処理の結果データを破棄しない（ステップＳ１３０２）。一方で、選択部１２１は、旧処理の結果データの組の識別情報は"transit-1"であるため、旧処理の結果データの組を破棄する
さらに、選択部１２１は、破棄されなかった結果データの組について装置外部への出力ポートの調停を行う。調停によって出力ポートが獲得されるので、選択部１２１は、新処理の結果データの組を装置外部への出力ポートへ転送する（ステップＳ１３０３）。この動作によって、新旧処理の結果が混在して装置外部に出力されるという問題が回避される。そして、旧処理の結果は装置外部への出力ポートへ出力されなくなり、代わりに新処理の結果が出力される。このように、装置外部に出力される結果データを、旧処理の結果データから新処理の結果データへと、円滑に切り替えることができる。
【０１６６】
このサイクルに、制御部１１１は、処理部１０１−１による旧処理を停止する（ステップS１００５）。
【０１６７】
同じサイクルに、処理部１０１−２と制御部１１１が結果〈7,transit-2〉を出力したとする。
【０１６８】
第９サイクルの終了時の、時系列データ処理装置１００の内部の出力情報を図１３に示す。
【０１６９】
第１０サイクルの開始時に、選択部１２１には、新処理の結果データの組が到着する。選択部１２１は、記録されている識別情報が"transit-1"でないので、記録している識別情報を更新しない（ステップＳ１３０１）。さらに、選択部１２１は、記録されている識別情報が"transit-2"であり、新処理の結果データの組の識別情報は"transit-2"であるため、新処理の結果データの組を破棄しない（ステップＳ１３０２）。ここで、選択部１２１は、破棄されなかった結果データの組について装置外部への出力ポートの調停を行う。調停によって出力ポートが獲得されるので、選択部１２１は、新処理の結果データの組を装置外部の出力ポートへ転送する（ステップＳ１３０３）。
【０１７０】
旧処理の結果データは装置上にないため、旧処理の結果データと新処理の結果データを識別して、一方を破棄する必要はない。そこで、このサイクルに、制御部１１１は、新処理の識別情報を"stable"に設定する（ステップS１００６）。
【０１７１】
同じサイクルに、処理部１０１−２と制御部１１１が結果〈8,stable〉を出力したとする。
【０１７２】
第１０サイクルの終了時の、時系列データ処理装置１００の内部の出力情報を図１４に示す。
【０１７３】
第１１サイクルの開始時に、選択部１２１には、新処理の結果データの組が到着する。選択部１２１は、記録されている識別情報が"transit-1"でないので、記録している識別情報を更新しない（ステップＳ１３０１）。さらに、選択部１２１は、新処理の結果データの組の識別情報が"stable"であるため、新処理の結果データの組を破棄しない（ステップＳ１３０２）。ここで、選択部１２１は、破棄されなかった結果データの組について装置外部への出力ポートの調停を行う。調停によって出力ポートが獲得されるので、選択部１２１は、新処理の結果データの組を装置外部への出力ポートへ転送する（ステップＳ１３０３）。
【０１７４】
同じサイクルに、処理部１０１−２と制御部１１１が結果〈9,stable〉を出力したとする。
【０１７５】
第１１サイクルの終了時の、時系列データ処理装置１００の内部の出力情報を図１５に示す。
【０１７６】
第１２サイクルの開始時に、選択部１２１は、前のサイクルと同様に、新処理の結果データの組を装置外部への出力ポートへ転送する。
【０１７７】
識別情報が"transit-2"である結果データは装置上にないため、選択部１２１で結果データの組の破棄を行う必要はない。そこで、このサイクルに、制御部１１１は、選択部１２１に記録されている識別情報を"transit-1"に設定する（ステップS１００７）。
【０１７８】
同じサイクルに、処理部１０１−２と制御部１１１が結果〈10, stable〉を出力したとする。
【０１７９】
第１２サイクルの終了時の、時系列データ処理装置１００の内部の出力情報を図１６に示す。
【０１８０】
これ以降のサイクルでは、選択部１２１が新処理の結果データの組を装置外部への出力ポートに出力し続ける。
【０１８１】
以上の時系列データ処理装置１００の動作と、出力される結果データから、本実施形態の効果を説明する。
【０１８２】
時系列データ処理装置１００から出力される結果データの組は、時刻の若い順に列で表すと、〈10, stable〉〈14, transit-1〉〈18, transit-1〉〈22, transit-1〉〈6, transit-2〉〈7, transit-2〉〈8, stable〉となる。
【０１８３】
まず、本実施形態では、新処理を実行するための回路情報の処理部１０１−２への書き込み以降も、処理部１０１−１において旧処理が停止可能になる時刻まで、有用で利用可能な旧処理の結果データが、破棄されずに装置外部に出力される。本実施形態の場合は、〈18, transit-1〉と〈22, transit-1〉が有用で利用可能な旧処理の結果データに該当する。
【０１８４】
これに対して、例えば非特許文献１の技術では、新処理の書き込み時点で旧処理が停止されるため、この有用で利用可能な結果の出力がなされない。また、特許文献１−４の技術についても、有用で利用可能な旧処理の結果データを出力することは特に考慮されていない。
【０１８５】
このように、本実施形態の手法により、背景技術の方法では出力されなかった、有用で利用可能な旧処理の結果が、最大限、装置外部に出力される。
【０１８６】
そして、旧処理が停止可能になった時刻以降では、旧処理の結果データは破棄され、代わりに新処理を実行する処理部１０１−２から出力された結果データが装置外部へ出力される。すなわち、処理の変更の前後において、旧処理、新処理の両方の結果が混在して装置外部に出力されることがない。
【０１８７】
また、処理を旧処理から新処理に実行時に変更するために、結果データに付加される情報の量は、背景技術の技術に比べて、処理部１０１あたり２ビットに抑えることができる。
【０１８８】
さらに、時系列データ装置として実行する処理を、旧処理から新処理に変更する際に、時系列データ装置から出力する結果データを選択するための演算量も削減することができる。すなわち、選択部１２１における、結果データの組の識別情報と選択部１２１に格納されている識別情報を用いた演算が、２＋１ビットの識別情報を入力とした演算に抑えられる。背景技術のように、処理の新旧の識別のための演算を、識別情報をそのまま使用して行うと、前述のように、演算量が膨大になる可能性がある。このように、本実施形態では、選択部１２１の演算量を削減できるので、時系列データ装置としての、処理の遅延時間を短縮することができる。
【０１８９】
本実施形態の時系列データ処理装置は、ソフトウェアによって実現することも可能である。時系列データ処理装置を制御するプログラムのフローチャートは、図６から図８と同じである。すなわち、制御部１１１、選択部１２１が行う処理を、時系列データ処理装置が備えるプロセッサがプログラムを実行することによって実現してもよい。
【０１９０】
上記のプログラムは、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、フラッシュメモリ等の半導体記憶装置、光ディスク、磁気ディスク、光磁気ディスク等、非一時的な媒体に格納されてもよい。
【０１９１】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１９２】
この出願は、２０１２年９月１８日に出願された日本出願特願２０１２−２０４４２５を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【０１９３】
本発明の活用例として、数値の平均値を計算するアプリケーションにおいて、平均値を求める対象期間を変更する場合がある。例えば、広い範囲に分散配置された温度センサの値を入力データとし、ある期間の平均を取って、火事を含む緊急事態を検知するアプリケーションが挙げられる。この例では、温度変化が激しくなってきたときに、温度変化に追従する速度を高めるために、温度の平均を取る対象期間の長さを短縮する、という機能を実現することができる。【０１９４】
また、本発明の他の活用例として、ある演算に用いるパラメータ又は出力情報を変更するアプリケーションがある。例えば、株券など金融商品の売買のタイミングを決めるための指標を計算するアプリケーションを考える。まず、売買する金融商品の銘柄と売買戦略に応じて、必要な指標は複数存在し、出力すべき指標の集合は異なる。ある装置は有限数の指標しか同時に計算できない。時刻に応じて売買する銘柄と戦略は変化する。そのため、そのとき売買する銘柄と売買戦略に応じて、算出する指標を変化させる、という機能を実現することができる。
【符号の説明】
【０１９５】
１００    時系列データ処理装置
１０１、１０１−１、１０１−２    処理部
１１１    制御部
１２１    選択部
１００１    待ちデータキュー
１００２    調停部
５００    時系列データ処理装置
５０１    処理部
５１１    合流部
６００    時系列データ処理装置
６０１    処理部
６１１    バージョン比較部
【図１】
2014045556.tif 000003
【図２】
2014045556.tif 000004
【図３】
2014045556.tif 000005
【図４】
2014045556.tif 000006
【図５】
2014045556.tif 000007
【図６】
2014045556.tif 000008
【図７】
2014045556.tif 000009
【図８】
2014045556.tif 000010
【図９】
2014045556.tif 000011
【図１０】
2014045556.tif 000012
【図１１】
2014045556.tif 000013
【図１２】
2014045556.tif 000014
【図１３】
2014045556.tif 000015
【図１４】
2014045556.tif 000016
【図１５】
2014045556.tif 000017
【図１６】
2014045556.tif 000018
【図１７】
2014045556.tif 000019
【図１８】
2014045556.tif 000020
【図１９】
2014045556.tif 000021
【図２０】
2014045556.tif 000022
【図２１】
2014045556.tif 000023
【図２２】
2014045556.tif 000024
【図２３】
2014045556.tif 000025
【図２４】
2014045556.tif 000026
【図２５】
2014045556.tif 000027
【図２６】
2014045556.tif 000028
【図２７】
2014045556.tif 000029
【図２８】
2014045556.tif 000030
【図２９】
2014045556.tif 000031
【図３０】
2014045556.tif 000032
【手続補正書】
【提出日】平成27年2月17日(2015.2.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１の処理を実行して第１の結果データを出力する第１の処理手段と、
第２の処理を実行して第２の結果データを出力する第２の処理手段と、
外部から処理の変更の指示を受けたとき、前記第１の処理が停止可能か否かを判断し、前記第１の結果データに前記第１の処理の状態を表す第１の識別情報を付加して第１の結果データの組を生成し、前記第２の結果データに前記第２の処理の状態を表す第２の識別情報を付加して第２の結果データの組を生成する制御手段と、
外部へ出力すべき結果データを指定する第３の識別情報を記録し、前記第１の結果データの組又は前記第２の結果データの組が到着したとき、前記第１の識別情報と前記第３の識別情報との比較結果及び前記第２の識別情報と前記第３の識別情報との比較結果に基づいて、前記第１の結果データの組又は前記第２の結果データの組の一方を選択して出力し他方を破棄する選択手段と、
を備えることを特徴とする時系列データ処理装置。
【請求項２】
前記制御手段は、前記第１の処理手段の処理状況又は前記第１の処理手段による前記第１の結果データの出力状況に基づいて、前記第１の処理が停止可能か否かを判断する
ことを特徴とする請求項１に記載の時系列データ処理装置。
【請求項３】
前記第１の識別情報は、前記変更の有無又は進行状況を示し、
前記第２の識別情報は、前記第２の結果データの外部への出力の可否、及び前記変更の有無又は進行状況を示し、
前記第３の識別情報は、前記第１の結果データ又は前記第２の結果データのいずれを出力すべきかを指定する
ことを特徴とする請求項１又は２に記載の時系列データ処理装置。
【請求項４】
前記選択手段は、前記第２の識別情報が前記第２の結果データの外部への出力が可能であることを示し、前記第３の識別情報が前記第１の結果データを出力すべきことを指定するときは、前記第３の識別情報を前記第２の結果データを出力すべき旨を指定するように更新する
ことを特徴とする請求項３に記載の時系列データ処理装置。
【請求項５】
前記選択手段は、
前記第３の識別情報が前記第１の結果データを出力すべき旨を指定し、前記第２の識別情報が前記第２の結果データの外部への出力が不可である旨を示すときは、前記第２の結果データを破棄し、
前記第３の識別情報が前記第２の結果データを出力すべき旨を指定し、前記第１の識別情報が前記処理の変更が進行中である旨を示すときは、前記第１の結果データを破棄する、
ことを特徴とする請求項３又は４に記載の時系列データ処理装置。
【請求項６】
前記制御手段は、
前記第１の処理が停止可能な状態に至る前は、前記変更が進行中である旨を示す前記第１の識別情報、及び前記第２の結果データの外部への出力が不可である旨を示す前記第２の識別情報を付加し、
前記第１の処理が停止可能な状態に至ったときに、前記第２の結果データの外部への出力が可能である旨を示す前記第２の識別情報を付加し、
全ての前記第１の結果データが外部に出力又は破棄されたタイミングで、前記変更が完了した旨を示す前記第２の識別情報を付加し、
前記選択手段は、
前記第２の結果データの外部への出力が可能である旨を示す前記第２の識別情報が付加された全ての前記第２の結果データが外部に出力又は破棄されたタイミングで、前記第１の結果データを出力すべき旨を指定する前記第３の識別情報を記録する、
ことを特徴とする請求項３乃至５に記載の時系列データ処理装置。
【請求項７】
第１の処理手段において第１の処理を実行して、第１の結果データを出力し、
第２の処理手段において第２の処理を実行して、第２の結果データを出力し、
外部から処理の変更の指示を受けたとき、前記第１の処理が停止可能か否かを判断し、
前記第１の結果データに前記第１の処理の状態を表す第１の識別情報を付加して第１の結果データの組を生成し、
前記第２の結果データに前記第２の処理の状態を表す第２の識別情報を付加して第２の結果データの組を生成し、
外部へ出力すべき結果データを指定する第３の識別情報を記録し、
前記第１の結果データの組又は前記第２の結果データの組が到着したとき、前記第１の識別情報と前記第３の識別情報との比較結果及び前記第２の識別情報と前記第３の識別情報との比較結果に基づいて、前記第１の結果データの組又は前記第２の結果データの組の一方を選択して出力し他方を破棄する
ことを特徴とする時系列データ処理方法。
【請求項８】
第１の処理を実行して第１の結果データを出力する第１の処理手段、及び第２の処理を実行して第２の結果データを出力する第２の処理手段を備える時系列データ処理装置が備えるコンピュータを、
外部から処理の変更の指示を受けたとき、前記第１の処理が停止可能か否かを判断し、前記第１の結果データに前記第１の処理の状態を表す第１の識別情報を付加して第１の結果データの組を生成し、前記第２の結果データに前記第２の処理の状態を表す第２の識別情報を付加して第２の結果データの組を生成する制御手段、及び
外部へ出力すべき結果データを指定する第３の識別情報を記録し、前記第１の結果データの組又は前記第２の結果データの組が到着したとき、前記第１の識別情報と前記第３の識別情報との比較結果及び前記第２の識別情報と前記第３の識別情報との比較結果に基づいて、前記第１の結果データの組又は前記第２の結果データの組の一方を選択して出力し他方を破棄する選択手段と、
として機能させるための時系列データ処理プログラム。
【国際調査報告】
2014045556.tif 000033
2014045556.tif 000034
2014045556.tif 000035
2014045556.tif 000036