(57)【要約】【課題】複数のデータを切り替えながら処理を行う多重処理において、データ処理の切り替えのために必要な管理データを削減可能なデータ処理装置を提供する。【解決手段】バッファ管理部１００は、処理の対象となるデータが格納されているデータバッファ１０１の管理情報を制御部１０３へ通知し、情報管理メモリ１０７へ格納される。情報管理部１０６は、データ開始アドレスとサイズにより構成される処理要求を生成し、データ取得部１１０へ送信する。データ取得部１１０は、データバッファ１０１から処理対象のデータを取得しデータ処理部１０２へ渡す。データ処理部１０２は、処理対象のデータについて処理を行い、処理結果と処理完了サイズを制御部１０３へ通知する。情報管理部１０６は、処理完了サイズから次の処理を開始するためのアドレスを算出し、情報管理メモリ１０７を更新する。【選択図】図１
2009015429.tif 000002
【特許請求の範囲】
【請求項１】
データを格納するデータバッファと、該データバッファを管理するバッファ管理部と、データを前記データバッファから取得するデータ取得部と、該データ取得部が取得したデータを処理するデータ処理部と、前記バッファ管理部と前記データ処理部を制御する制御部とを有し、
前記制御部は、情報管理メモリと、前記バッファ管理部から通知された、前記データバッファに格納されている各データの、前記データバッファ内の開始アドレスと終了アドレスからなるバッファ管理情報を前記情報管理メモリに格納し、処理対象となるデータを決定し、決定されたデータに関して開始アドレスとサイズから構成される処理要求を生成し、前記データ取得部に送信し、また前記データ処理部から、前記処理対象のデータについての処理結果と処理が完了したデータサイズを受信し、次の処理を開始するためのアドレスを算出し、前記情報管理メモリを更新し、処理が完了したデータについては前記バッファ管理部にバッファ開放要求を通知する情報管理部を含む
データ処理装置。
【請求項２】
前記制御部は、前記バッファ管理情報を前記バッファ管理部から受信するバッファ情報受信部と、前記データ処理部から、前記処理対象のデータについての処理結果と処理が完了したデータサイズを受信する処理結果受信部と、前記処理要求を前記データ取得部に送信する処理要求送信部と、前記バッファ開放要求を前記バッファ管理部に送信するバッファ制御情報送信部をさらに含む、請求項１に記載のデータ処理装置。
【請求項３】
前記情報管理メモリは、処理対象データの処理ＩＤごとに、該処理ＩＤの領域が有効かどうかを示す有効フラグと、格納されているデータが処理可能であるかどうかを示す処理待ちフラグと、処理対象データが存在しないことを示すエンプティフラグと、処理を再開する場合のデータの先頭アドレスを示す処理開始アドレスをさらに有し、
前記情報管理部は、
前記情報管理メモリを参照して、該当するデータ処理ＩＤの有効フラグが有効であるかどうかの確認を行い、有効である場合は、前記終了アドレスのみ更新し、有効でない場合は、通知されたバッファ管理情報をもとに前記開始アドレスと前記終了アドレスの更新を行い、前記有効フラグを有効に設定し、次に、前記エンプティフラグを参照し、処理対象データが存在するかどうかのチェックを行い、エンプティフラグが処理データなしを示している場合、前記終了アドレスと前記処理開始アドレスの比較を行い、前記終了アドレスが前記処理開始アドレスより小さい場合、前記開始アドレスから前記終了アドレスまでのデータの解放要求を生成し、前記「終了アドレスが前記処理開始アドレスより大きい場合、前記開始アドレスから前記処理開始アドレスまでのデータの解放要求を生成し、さらに前記エンプティフラグを解除し、前記エンプティフラグが処理データありを示している場合も含めて、処理対象のデータサイズが固定サイズを超えているかどうかのチェックを行い、超えている場合は前記処理待ちフラグをセットし、超えていない場合は前記処理待ちフラグを解除するバッファ管理情報更新処理と、
処理ＩＤの選択を行い、前記有効フラグが有効および処理待ちフラグが処理可能になっているかを確認し、前記有効フラグが有効および処理待ちフラグが処理可能である場合には、処理要求を生成し、処理要求を送信し、そうでない場合は、前記処理を処理対象データが存在する処理ＩＤが選択されるまで繰り返す処理要求生成処理と、
前記データ処理部から処理結果が通知されると、処理開始アドレスを算出し、前記情報管理メモリの処理開始アドレスを更新し、処理完了サイズと前記データバッファに格納されているデータサイズの比較を行い、処理完了サイズの方が大きい場合は前記開始アドレスから前記終了アドレスまでのデータの解放要求を生成し、さらに前記開始アドレスに前記終了アドレスを設定して、前記エンプティフラグを設定し、処理完了サイズが前記データバッファに格納されているデータサイズより小さい場合、前記開始アドレスから前記処理開始アドレスまでのデータの解放要求を生成し、さらに前記開始アドレスに前記処理開始アドレスを設定し、以降、バッファ情報更新処理におけるデータサイズの確認処理を行う処理結果受信処理と
行う
請求項１に記載のデータ処理装置。
【請求項４】
データを格納するデータバッファと、該データバッファを管理するバッファ管理部と、データを前記データバッファから取得するデータ取得部と、該データ取得部が取得したデータを処理するデータ処理部と、前記バッファ管理部と前記データ処理部を制御する制御部とを有するデータ処理装置において前記制御部が行うデータ処理方法であって、
前記バッファ管理部から通知された、前記データバッファに格納されている各データの、前記データバッファ内の開始アドレスと終了アドレスからなるバッファ管理情報を情報管理メモリに格納するステップと、
処理対象となるデータを決定し、決定されたデータに関して開始アドレスとサイズから構成される処理要求を生成し、前記データ取得部に送信するステップと、
前記データ処理部から、前記処理対象のデータについての処理結果と処理が完了したデータサイズを受信し、次の処理を開始するためのアドレスを算出し、前記情報管理メモリを更新し、処理が完了したデータについては前記バッファ管理部にバッファ開放要求を通知するステップと
を有するデータ処理方法。
【請求項５】
データを格納するデータバッファと、該データバッファを管理するバッファ管理部と、データを前記データバッファから取得するデータ取得部と、該データ取得部が取得したデータを処理するデータ処理部と、前記バッファ管理部と前記データ処理部を制御する制御部とを有し、前記制御部は、前記データバッファ内の開始アドレスと終了アドレスからなるバッファ管理情報を格納する情報管理メモリを含むデータ処理装置において前記制御部が行うデータ処理方法であって、
前記情報管理メモリは、処理対象データの処理ＩＤごとに、該処理ＩＤの領域が有効かどうかを示す有効フラグと、格納されているデータが処理可能であるかどうかを示す処理待ちフラグと、処理対象データが存在しないことを示すエンプティフラグと、処理を再開する場合のデータの先頭アドレスを示す処理開始アドレスをさらに有し、
前記情報管理メモリを参照して、該当するデータ処理ＩＤの有効フラグが有効であるかどうかの確認を行い、有効である場合は、前記終了アドレスのみ更新し、有効でない場合は、通知されたバッファ管理情報をもとに前記開始アドレスと前記終了アドレスの更新を行い、前記有効フラグを有効に設定し、次に、前記エンプティフラグを参照し、処理対象データが存在するかどうかのチェックを行い、エンプティフラグが処理データなしを示している場合、前記終了アドレスと前記処理開始アドレスの比較を行い、前記終了アドレスが前記処理開始アドレスより小さい場合、前記開始アドレスから前記終了アドレスまでのデータの解放要求を生成し、前記「終了アドレスが前記処理開始アドレスより大きい場合、前記開始アドレスから前記処理開始アドレスまでのデータの解放要求を生成し、さらに前記エンプティフラグを解除し、前記エンプティフラグが処理データありを示している場合も含めて、処理対象のデータサイズが固定サイズを超えているかどうかのチェックを行い、超えている場合は前記処理待ちフラグをセットし、超えていない場合は前記処理待ちフラグを解除するバッファ管理情報更新処理と、
処理ＩＤの選択を行い、前記有効フラグが有効および処理待ちフラグが処理可能になっているかを確認し、前記有効フラグが有効および処理待ちフラグが処理可能である場合には、処理要求を生成し、処理要求を送信し、そうでない場合は、前記処理を処理対象データが存在する処理ＩＤが選択されるまで繰り返す処理要求生成処理と、
前記データ処理部から処理結果が通知されると、処理開始アドレスを算出し、前記情報管理メモリの処理開始アドレスを更新し、処理完了サイズと前記データバッファに格納されているデータサイズの比較を行い、処理完了サイズの方が大きい場合は前記開始アドレスから前記終了アドレスまでのデータの解放要求を生成し、さらに前記開始アドレスに前記終了アドレスを設定して、前記エンプティフラグを設定し、処理完了サイズが前記データバッファに格納されているデータサイズより小さい場合、前記開始アドレスから前記処理開始アドレスまでのデータの解放要求を生成し、さらに前記開始アドレスに前記処理開始アドレスを設定し、以降、バッファ情報更新処理におけるデータサイズの確認処理を行う処理結果受信処理と
を有するデータ処理方法。
【請求項６】
データを格納するデータバッファと、該データバッファを管理するバッファ管理部と、データを前記データバッファから取得するデータ取得部と、該データ取得部が取得したデータを処理するデータ処理部とを有するデータ処理装置において、
前記バッファ管理部から通知された、前記データバッファに格納されている各データの、前記データバッファ内の開始アドレスと終了アドレスからなるバッファ管理情報を情報管理メモリに格納する手順と、
処理対象となるデータを決定し、決定されたデータに関して開始アドレスとサイズから構成される処理要求を生成し、前記データ取得部に送信する手順と、
前記データ処理部から、前記処理対象のデータについての処理結果と処理が完了したデータサイズを受信し、次の処理を開始するためのアドレスを算出し、前記情報管理メモリを更新し、処理が完了したデータについては前記バッファ管理部にバッファ開放要求を通知する手順と
をコンピュータに実行させるためのデータ処理プログラム。
【請求項７】
データを格納するデータバッファと、該データバッファを管理するバッファ管理部と、データを前記データバッファから取得するデータ取得部と、該データ取得部が取得したデータを処理するデータ処理部と、前記データバッファ内の開始アドレスと終了アドレスからなるバッファ管理情報を格納する情報管理メモリを有し、前記情報管理メモリは、処理対象データの処理ＩＤごとに、該処理ＩＤの領域が有効かどうかを示す有効フラグと、格納されているデータが処理可能であるかどうかを示す処理待ちフラグと、処理対象データが存在しないことを示すエンプティフラグと、処理を再開する場合のデータの先頭アドレスを示す処理開始アドレスをさらに有するデータ処理装置において、
前記情報管理メモリを参照して、該当するデータ処理ＩＤの有効フラグが有効であるかどうかの確認を行い、有効である場合は、前記終了アドレスのみ更新し、有効でない場合は、通知されたバッファ管理情報をもとに前記開始アドレスと前記終了アドレスの更新を行い、前記有効フラグを有効に設定し、次に、前記エンプティフラグを参照し、処理対象データが存在するかどうかのチェックを行い、エンプティフラグが処理データなしを示している場合、前記終了アドレスと前記処理開始アドレスの比較を行い、前記終了アドレスが前記処理開始アドレスより小さい場合、前記開始アドレスから前記終了アドレスまでのデータの解放要求を生成し、前記「終了アドレスが前記処理開始アドレスより大きい場合、前記開始アドレスから前記処理開始アドレスまでのデータの解放要求を生成し、さらに前記エンプティフラグを解除し、前記エンプティフラグが処理データありを示している場合も含めて、処理対象のデータサイズが固定サイズを超えているかどうかのチェックを行い、超えている場合は前記処理待ちフラグをセットし、超えていない場合は前記処理待ちフラグを解除するバッファ管理情報更新手順と、
処理ＩＤの選択を行い、前記有効フラグが有効および処理待ちフラグが処理可能になっているかを確認し、前記有効フラグが有効および処理待ちフラグが処理可能である場合には、処理要求を生成し、処理要求を送信し、そうでない場合は、前記処理を処理対象データが存在する処理ＩＤが選択されるまで繰り返す処理要求生成手順と、
前記データ処理部から処理結果が通知されると、処理開始アドレスを算出し、前記情報管理メモリの処理開始アドレスを更新し、処理完了サイズと前記データバッファに格納されているデータサイズの比較を行い、処理完了サイズの方が大きい場合は前記開始アドレスから前記終了アドレスまでのデータの解放要求を生成し、さらに前記開始アドレスに前記終了アドレスを設定して、前記エンプティフラグを設定し、処理完了サイズが前記データバッファに格納されているデータサイズより小さい場合、前記開始アドレスから前記処理開始アドレスまでのデータの解放要求を生成し、さらに前記開始アドレスに前記処理開始アドレスを設定し、以降、バッファ情報更新処理におけるデータサイズの確認処理を行う処理結果受信手順と
をコンピュータに実行させるためのデータ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを格納し処理対象データを取得して処理を行う装置、方法およびプログラムに関し、特に複数の処理データを多重して処理することが可能なデータ処理装置、データ処理方法、およびデータ処理プログラムに関する。
【背景技術】
【０００２】
インターネットの普及が進み、特にＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）のようなＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ Ｃｏｎｔｒｏｌ Ｐｒｏｔｏｃｏｌ）上で動作するプロトコルを利用したサービスが多く存在するようになってきている。このような状況の中、これらプロトコルを解析し情報を取得することやプロトコル処理自体を高速に行うことが可能なハードウェアによる実現の要求が高まっている。ＴＣＰレイヤでは複数のセッションが同時に存在することがあるため、上位のレイヤであるＨＴＴＰに関しても複数のセッションの対応が要求される。
【非特許文献１】ＲＦＣ２６１６  Hypertext Transfer Protocol -- HTTP/1.1       The Internet Engineering Task Force
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来のデータ処理装置では、複数の処理対象データを切り替えながら処理を行う場合、データ処理を切り替える場合に保存しておく情報量が多くなり、データ処理が複雑になるという問題がある。
【０００４】
その理由は、データ処理がどこまで完了しているかの状態、処理が完了したときの状態などを処理対象データごとに保存しておき、次回該当する処理対象データの処理要求があった場合に、それまで行っていた処理に関する情報を退避し、保存しておいた情報を復元し処理を再開する必要があるためである。
【０００５】
本発明の目的は、複数の処理対象データを切り替えながら処理を行う多重処理において、データ処理の切り替えのために必要な管理データを削減可能なデータ処理装置、データ処理方法、およびデータ処理プログラムを提供することにある。
【課題を解決するための手段】
【０００６】
本発明のデータ処理装置は、データを格納するデータバッファと、該データバッファを管理するバッファ管理部と、データを前記データバッファから取得するデータ取得部と、該データ取得部が取得したデータを処理するデータ処理部と、前記バッファ管理部と前記データ処理部を制御する制御部とを有し、
前記制御部は、情報管理メモリと、前記バッファ管理部から通知された、前記データバッファに格納されている各データの、前記データバッファ内の開始アドレスと終了アドレスからなるバッファ管理情報を前記情報管理メモリに格納し、処理対象となるデータを決定し、決定されたデータに関して開始アドレスとサイズから構成される処理要求を生成し、前記データ取得部に送信し、また前記データ処理部から、前記処理対象のデータについての処理結果と処理が完了したデータサイズを受信し、次の処理を開始するためのアドレスを算出し、前記情報管理メモリを更新し、処理が完了したデータについては前記バッファ管理部にバッファ開放要求を通知する情報管理部を含む処理対象となるデータを格納するためのデータバッファと、データバッファを管理するバッファ管理部と、データバッファからデータを取得してデータ処理を行うデータ処理部と、データ処理対象となる情報を管理する情報管理部および情報管理メモリを有する。
【０００７】
制御部は固定サイズのデータの処理要求を行い、処理が完了したデータサイズを受信し、次の処理を開始するアドレスを決定して管理を行い、データ処理部の処理対象データを制御することにより、本発明の目的を達成することができる。
【発明の効果】
【０００８】
複数の対象データを切り替えながら処理を行う場合に、データ処理部で切り替え処理を行わず、制御部でデータ処理部が処理を行うデータの開始位置を制御するようにしたため、データ処理における管理情報を削減することが可能である。
【発明を実施するための最良の形態】
【０００９】
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００１０】
[第１の実施の形態]
図１を参照すると、本発明の第１の実施の形態によるデータ処理装置は、処理対象となるデータを格納するデータバッファ１０１と、データバッファ１０１を管理するバッファ管理部１００と、データをデータバッファ１０１から取得するデータ取得部１１０と、データ取得部１１０が取得したデータを処理するデータ処理部１０２と、バッファ管理部１００とデータ処理部１０２を制御する制御部１０３から構成される。
【００１１】
制御部１０３は、バッファ管理部１００からのバッファ管理情報を受信するバッファ情報受信部１０４と、バッファ管理部１００へデータ解放の通知を行うバッファ制御情報送信部１０５と、データ処理部１０２へ処理要求を送信する処理要求送信部１０８と、データ処理部１０２からの処理結果を受信する処理結果受信部１０９と、前記送受信する情報を管理する情報管理メモリ１０７と、情報管理部１０６から構成される。図２を参照すると、情報管理メモリ１０７は、処理ＩＤごとにデータバッファ１０１の開始アドレス３００と終了アドレス３０１を管理している。
【００１２】
図３を参照すると、本実施の形態における情報管理部１０６は、情報管理メモリ１０３にアクセスするメモリアクセス部２００と、複数のデータから処理対象となるデータを決定する処理ＩＤ決定部２０１と、決定した処理ＩＤに対して処理要求を生成する処理要求生成部２０２と、データ処理部１０２から送信された処理結果をもとに次回処理開始の情報を算出する処理開始アドレス算出部２０３から構成される。
【００１３】
次に、本実施の形態の全体の動作について図１、図４を参照して詳細に説明する。
【００１４】
データバッファ１０１には処理対象となる複数のデータが格納されており、各処理対象のデータが格納されている領域の開始アドレスと終了アドレスがバッファ管理部１００により管理されている。バッファ管理部１００は、開始アドレスおよび終了アドレスで構成されるバッファ管理情報を制御部１０３へ通知する。制御部１０３ではバッファ情報受信部１０４で受信したバッファ管理情報を情報管理部１０６に通知し、情報管理メモリ１０７に格納する（ステップ４１０）。情報管理部１０６は、処理対象ＩＤを選択する（ステップ４３０）。情報管理メモリ１０７を参照して処理可能なデータが存在するかどうかの確認を、情報管理メモリ１０７の開始アドレスと終了アドレスが一致しているかどうかにより行う（ステップ４３１）。存在する（開始アドレスと終了アドレスが異なる）場合は処理要求送信部１０８を介して、データ取得部１１０へ処理要求を送信する（ステップ４３２）。処理対象データが存在しない場合は、異なる処理対象ＩＤの選択を再び実行する（ステップ４３０）。処理対象データが存在する処理ＩＤを選択するまで本処理を実行する。処理要求は、処理対象となるデータの格納されている領域の開始アドレスと処理サイズで構成される。処理サイズは処理対象となるデータを固定サイズに分割した場合のサイズを示すもので、本実施形態ではＮバイトに分割されているものとする。データ取得部１１０は、制御部１０３より通知された処理要求をもとにデータバッファ１０１から処理対象のデータを取得して、データ処理部１０２へ渡す。データ処理部１０２は、データの処理を実施し、処理結果と処理完了サイズを制御部１０３へ通知する。処理結果受信部１０９で受信した処理完了サイズをもとに処理開始アドレスの算出を行い（ステップ４２０）、情報管理メモリ１０７の更新を行う（ステップ４２１）。処理が完了したデータについては、バッファ制御情報送信部１０５からバッファ解放要求をバッファ管理部１００へ通知し、データバッファ１０１の解放処理を行う（ステップ４２２）。
【００１５】
次に、情報管理部１０６内の動作を説明する。処理ＩＤ決定部２０１は、情報管理メモリ１０７を参照して、処理対象となるデータが存在する処理ＩＤを決定する。処理対象となるデータが存在するかどうかは開始アドレスと終了アドレスが同一のアドレスを示しているかどうかにより判定することができる。決定する方法の例としては、処理ＩＤを＃１から＃Ｌまで順番に選択する方法や、処理ＩＤごとに重み付けを行い、重みの数の大きい順に、重みの数だけ処理を行う方法などがある。処理要求生成部２０２は、開始アドレス、処理サイズ（Ｎバイト）、および処理ＩＤから構成される処理要求を生成し、処理要求送信部１０８を介してデータ取得部１１０へ通知する。前記処理要求を受信したデータ取得部１１０は、開始アドレスと処理サイズを参照して、データバッファ１０１から処理対象のデータを読み出し、データ処理部１０２へ通知する。データ処理部１０２は、処理対象のデータに対して処理を実行し、解析結果、処理完了サイズおよび処理ＩＤを制御部１０３へ通知する。処理開始アドレス算出部２０３は、処理結果受信部１０９から通知された処理結果をもとに、次に処理するときに開始アドレスの算出を行う。開始アドレスの算出は、通知された処理ＩＤをもとに情報管理メモリ１０３を参照して、処理前の開始アドレスを取得する。前記開始アドレスに通知された処理完了サイズを加算して、次回の処理開始アドレスを算出する。算出された処理開始アドレスは、メモリアクセス部２００に通知され、該当する処理ＩＤの領域に開始アドレスとして格納される。メモリアクセス部２００は処理前の開始アドレスから処理完了後の開始アドレスで規定される処理完了データに対する解放要求をバッファ制御情報送信部１０５に通知し、バッファ管理部１００はデータバッファ１０１の該当するデータの解放処理（データを書き込むことができる状態にすること）を行う。
【００１６】
次に、具体的な処理の例について図５を参照して説明する。処理対象となるデータはヘッダ５００−１〜５００−３とボディ５０１−１〜５４１−３から構成される。データ処理の例としては、処理対象のデータからヘッダ領域を見つけ出し、次のヘッダ領域の位置を検出するとともに、ヘッダ内に格納されている情報を抽出するものとする。より具体的には、たとえばＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）において、ヘッダ位置を検出し、ヘッダに格納されているＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）を検出する処理が該当する。まず、第１の処理として、処理要求サイズ５０２−１で示されるサイズの処理要求を送信する。データ処理部１０２では、ヘッダ４００−１を検出し解析を行うことにより次のヘッダ５００−２の開始位置を特定する。処理データはヘッダ５００−２の途中までであるが、ヘッダ５００−２までのサイズを処理完了サイズ５０３−１として制御部１０３へ送信する。次に、第２の処理として、ヘッダ５００−２を起点として処理要求サイズ５０２−２で示されるサイズの処理要求を送信する。データ処理部１０２では、ヘッダ５００−２を検出し解析を行うことにより次のヘッダ５００−３の開始位置を特定する。処理データはボディ５０１−２の途中までであるが、ヘッダ５００−３までのサイズを処理完了サイズ５０３−２として制御部１０３へ送信する。以降の処理も同様に行う。
【００１７】
[第２の実施の形態]
図６を参照すると、本発明の第２の実施の形態によるデータ処理装置は、情報管理部１０６が、バッファ管理部１００からのバッファの更新情報とデータ処理部１０２からの処理結果から、各処理データの管理情報の更新方法を判断する管理情報更新部２０４と、バッファ１０１に格納されているデータの解放範囲を決定しおよび解放要求を生成するバッファ解放要求生成部２０５をさらに備える点が第１の実施の形態と異なる。
【００１８】
図７を参照すると、情報管理メモリ１０７は、処理ＩＤごとに、処理ＩＤの領域が有効かどうかを示す有効フラグ７００と、格納されているデータが処理可能であるかどうかを示す処理待ちフラグ７０１と、処理対象データが存在しないことを示すエンプティフラグ７０２と、処理を再開する場合のデータの先頭アドレスを示す処理開始アドレス７０３から構成される。その他の点は第１の実施の形態と同じである。
【００１９】
次に、図８を参照して本実施の形態の全体の動作について詳細に説明する。
【００２０】
本実施の形態は、データバッファ１０１に処理対象となるすべてのデータが格納されておらず、たとえばネットワークのプロトコル処理のようにデータが常に到着し格納されている状況に対応するものである。バッファ管理部１００は、処理対象となるデータをデータバッファ１０１で管理し、バッファ管理情報を制御部１０３に通知する。たとえば処理対象のデータが１０００バイト、２０００バイト、５００バイトの順に到着する場合、まず１０００バイトのデータ領域をデータバッファ１０１に確保して格納する。そのときの開始アドレスをＡとすると、バッファ管理部１００は開始アドレスＡと終了アドレス（Ａ＋９９９）を制御部１０３へ通知する。次に、２０００バイトのデータを受信したとき、同様に２０００バイトの領域を確保し、開始アドレス（Ａ＋１０００）と終了アドレス（Ａ＋２９９９）を通知する。最後に、５００バイトのデータを受信したとき、同様に５００バイトの領域を確保し、開始アドレス（Ａ＋３０００）と終了アドレス（Ａ＋３４９９）を通知する。
【００２１】
まず、バッファ情報の更新処理について説明する。
【００２２】
管理情報更新部２０４は、バッファ管理部１００から通知されたバッファ管理情報をもとに情報管理メモリ１０７の更新処理を行う。管理情報更新処理部２０４は、情報管理メモリ１０７を参照して、該当する処理ＩＤの有効フラグ７００が有効（＝“１”）であるかどうかの確認を行う（ステップ８１０）。有効である場合は、すでに該当する処理ＩＤについては情報管理メモリ１０７で管理されているため、終了アドレスのみ更新する（ステップ８１２）。有効でない場合は、通知されたバッファ管理情報をもとに開始アドレス３００と終了アドレスの更新を行い、有効フラグ７００を有効に設定する（ステップ８１１）。次に、エンプティフラグ７０２を参照し、処理対象データが存在するかどうかのチェックを行う（ステップ８１３）。エンプティフラグ７０２は、最後にデータ処理を実行した場合に、データバッファ１０１に格納されているデータすべてについて処理が完了したことを示すフラグである。エンプティフラグ７０２がエンプティ（処理データなし）を示している場合、次に終了アドレスと処理開始アドレス７０３の比較を行う（ステップ８１４）。終了アドレスが処理開始アドレス７０３より小さい場合、すなわちデータが到着したものの、次回処理開始のアドレスに到達していない場合は、開始アドレス３００から終了アドレス３０１までのデータの解放要求をバッファ解放要求生成部２０５で生成する（ステップ８１６）。終了アドレスが処理開始アドレス７０３より大きい場合、すなわちデータが到着し次回処理開始のアドレスに到達した場合は、開始アドレス３００から処理開始アドレス７０３までのデータの解放要求をバッファ解放要求生成部２０５で生成する（ステップ８１５）。さらにエンプティフラグ７０２を解除（＝“０”）する（ステップ８１７）。エンプティフラグ７０２がエンプティを示していない場合（処理データあり）も含めて、処理対象のデータサイズが固定サイズ（Ｎバイト）を超えているかどうかのチェックを行う（ステップ８２６）。超えている場合は処理待ちフラグ７０１をセットし（ステップ８２７）、超えていない場合は処理待ちフラグ７０１を解除する（ステップ８２８）。
【００２３】
次に、処理要求の生成処理について説明する。まず、処理ＩＤ決定部２０１において処理ＩＤの選択を行い（ステップ４３０）、有効フラグ７００および処理待ちフラグ７０１が“１”になっているかを確認する（ステップ８３０）。“１”である場合には、処理要求生成部２０２は処理要求を生成し処理要求送信部１０８を介して処理要求を送信する（ステップ４３２）。“１”でない場合は、処理ＩＤの選択（ステップ４３０）に戻り、有効フラグ７００および処理待ちフラグ７０１の確認を行う。前記処理を処理対象データが存在する処理ＩＤが選択されるまで繰り返す。
【００２４】
次に、処理結果を受信した場合の処理について説明する。データ処理部１０２から処理結果が通知されると、処理開始アドレス算出部２０３にて処理開始アドレスを算出する（ステップ５２０）。処理開始アドレスは、情報管理メモリ１０３に格納されている開始アドレス３００と処理結果で通知された処理完了サイズを加算することで求めることができる。情報管理メモリ１０３の処理開始アドレス７０３は、前記算出された処理開始アドレスに更新される（ステップ５２１）。処理完了サイズとデータバッファ１０１に格納されているデータサイズの比較を行い（ステップ８２０）、処理完了サイズの方が大きい場合は開始アドレス３００から終了アドレス３０１までのデータの解放要求をバッファ解放要求生成部６００で生成する（ステップ８２１）。さらに開始アドレス３００に終了アドレス３０１を設定して（ステップ８２２）、エンプティフラグ７０２を設定する（ステップ８２３）。処理完了サイズがデータバッファ１０１に格納されているデータサイズより小さい場合、開始アドレス３００から処理開始アドレス７０３までのデータの解放要求をバッファ解放要求生成部６００で生成する（ステップ８２４）。さらに開始アドレス３００に処理開始アドレスを設定する（ステップ８２５）。以降の処理は、バッファ情報の更新処理におけるデータサイズの確認（ステップ８２６〜８２８）の処理と同様であるため、省略する。
【００２５】
本実施の形態では、管理情報更新部２０４はバッファ管理部１００から通知されるバッファ更新情報とデータ処理部１０２から通知される処理結果をもとに、処理対象となるデータに関する情報が格納されている情報管理メモリ１０３を更新し、バッファ解放要求生成部２０５において処理が完了したデータに関して解放要求を生成することにより、処理対象データがすべてそろっていない場合の処理にも対応することが可能となる。
【００２６】
なお、本情報処理装置の機能は、その機能を実現するためのプログラムを、コンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行するものであってもよい。コンピュータ読み取り可能な記録媒体とは、フレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ等の記録媒体、コンピュータシステムに内蔵されるハードディスク装置等の記憶装置を指す。さらに、コンピュータ読み取り可能な記録媒体は、インターネットを介してプログラムを送信する場合のように、短時間、動的にプログラムを保持するもの（伝送媒体もしくは伝送波）、その場合のサーバとなるコンピュータ内の揮発性メモリのように、一定時間プログラムを保持しているものを含む。
【図面の簡単な説明】
【００２７】
【図１】本発明の第１の実施形態のデータ処理装置のブロック図である。
【図２】第１の実施形態における情報管理メモリの構成図である。
【図３】第１の実施形態における情報管理部の構成図である。
【図４】第１の実施形態の動作を説明するためのフローチャートである。
【図５】第１の実施形態を説明するための処理対象データの図である。
【図６】本発明の第２の実施形態のデータ処理装置のブロック図である。
【図７】第２の実施形態における情報管理メモリの構成図である。
【図８】第２の実施形態の動作を説明するためのフローチャートである。
【符号の説明】
【００２８】
１００  バッファ管理部
１０１  データバッファ
１０２  データ処理部
１０３  制御部
１０４  バッファ情報受信部
１０５  バッファ制御情報送信部
１０６  情報管理部
１０７  情報管理メモリ
１０８  処理要求送信部
１０９  処理結果送信部
１１０  データ取得部
２００  メモリアクセス部
２０１  処理ＩＤ決定部
２０２  処理要求生成部
２０３  処理開始アドレス算出部
２０４  管理情報更新部
２０５  バッファ開放要求生成部
３００  開始アドレス
３０１  終了アドレス
４００〜４３２  ステップ
５００−１〜５００−３  ヘッダ
５０１−１〜５０１−３  ボディ
５０２−１〜５０２−３  処理要求サイズ
５０３−１〜５０３−３  処理完了サイズ
７００  有効フラグ
７０１  処理待ちフラグ
７０２  エンプティフラグ
７０３  処理開始アドレス
８１０〜８２８  ステップ
【図１】
2009015429.tif 000003
【図２】
2009015429.tif 000004
【図３】
2009015429.tif 000005
【図４】
2009015429.tif 000006
【図５】
2009015429.tif 000007
【図６】
2009015429.tif 000008
【図７】
2009015429.tif 000009
【図８】
2009015429.tif 000010