(57)【特許請求の範囲】
【請求項１】
バスを介してデータ処理装置およびメモリと接続されるタイマ制御装置であって、
周期信号を生成する周期信号生成装置に接続する接続手段と、
前記周期信号生成装置から周期信号を受信する周期信号受信手段と、
受信された周期信号に基づいてカウントするカウント処理手段と、
前記メモリにおいてある特定の処理を行うハンドラが格納されたハンドラアドレスを取
得するハンドラアドレス取得手段と、
前記ハンドラが実行されるまでのタイムアウト時間を指定した前記ハンドラの実行要求を前記データ処理装置から受け付けるための要求受付領域を前記メモリに確保する要求受付領域確保手段
と、
前記要求受付領域のアドレスを前記バスを介して前記データ処理装置に通知する通知手
段と、
前記メモリの前記要求受付領域にアクセスするとともに、当該アクセスにより、前記要求受付領域に前記ハンドラの実行要求を確認できた場合に、前記ハンドラの実行要求を取得する要求取得手段と、
前記要求取得手段が前記実行要求を取得した場合に、前記カウント処理手段の前記カウントに基づき、前記実行要求に指定されるタイムアウト時間に達するタイムアウトの判定を開始するタイムアウト判定手段と、
前記タイムアウトが検知されたとき前記メモリにおける前記ハンドラアドレスから前記
ハンドラを読み出して実行するハンドラ実行手段と
を備えたことを特徴とするタイマ制御装置。
【請求項２】
前記カウント処理手段は、前記メモリにおけるカウント領域にカウント値を書き込み、
前記通知手段は、前記カウント領域のアドレスを前記データ処理装置に通知し、
前記タイムアウト時間は、前記ハンドラが実行されるべき実行カウント値であり、
前記タイムアウト判定手段は、前記カウント値が前記実行カウント値に達したとき、前
記タイムアウトを検知する
ことを特徴とする請求項１に記載のタイマ制御装置。
【請求項３】
前記タイムアウト時間は、第１の特定値に対し所望の値を加算または減算した第２の特
定値であり、
前記カウント処理手段は、所定時間毎に前記第２の特定値に対し一定値ずつ減算または
加算し、
前記タイムアウト判定手段は、減算また加算後の前記第２の特定値が第１の特定値に達
したら、前記タイムアウトを検知する
ことを特徴とする請求項１に記載のタイマ制御装置。
【請求項４】
前記要求取得手段は、前記アクセスにより、前記要求受付領域に、前記ハンドラ実行の禁止要求を確認できた場合に、前記ハンドラ実行の禁止要求を取得し、
前記要求取得手段が前記禁止要求を取得した場合に、前記タイムアウト判定手段は、前記タイムアウトの判定を停止する
ことを特徴とする請求項２または３に記載のタイマ制御装置。
【請求項５】
それぞれバスを介してメモリと接続された、タイマ制御装置およびデータ処理装置を備えたタイマ制御システムであって、
周期信号を生成する周期信号生成装置に接続する接続手段と、
前記周期信号生成装置から周期信号を受信する周期信号受信手段と、
受信された周期信号に基づいてカウントするカウント処理手段と、
前記メモリにおいてある特定の処理を行うハンドラが格納されたハンドラアドレスを取得するハンドラアドレス取得手段と、
前記ハンドラが実行されるまでのタイムアウト時間を指定した前記ハンドラの実行要求を前記データ処理装置から受け付けるための要求受付領域を前記メモリに確保する要求受付領域確保手段と、
前記要求受付領域のアドレスを前記バスを介して前記データ処理装置に通知する通知手段と、
前記メモリの前記要求受付領域にアクセスするとともに、当該アクセスにより、前記要求受付領域に前記ハンドラの実行要求を確認できた場合に、前記ハンドラの実行要求を取得する要求取得手段と、
前記要求取得手段が前記実行要求を取得した場合に、前記カウント処理手段の前記カウントに基づき、前記実行要求に指定されるタイムアウト時間に達するタイムアウトの判定を開始するタイムアウト判定手段と、
前記タイムアウトが検知されたとき前記メモリにおける前記ハンドラアドレスから前記ハンドラを読み出して実行するハンドラ実行手段と
を備え、
前記データ処理装置は
前記タイマ制御装置から通知されたアドレスに基づいて前記メモリにおける前記要求受付領域にアクセスして、前記ハンドラが実行されるまでのタイムアウト時間を指定した前記ハンドラの実行要求を設定する条件設定手段を備えた
ことを特徴とするタイマ制御システム。
【請求項６】
前記データ処理装置は、ネットワークを介してフレームを受信するフレーム受信手段をさらに備え、
前記データ処理装置における前記条件設定手段は、受信したフレームのヘッダを解析し、あらかじめ与えられた条件に一致するフレームを検出したとき、前記メモリにおける前記要求受付領域に、前記ハンドラが実行されるまでの第１のタイムアウト時間を指定した実行要求を設定する、
ことを特徴とする請求項５に記載のタイマ制御システム。
【請求項７】
前記データ処理装置における前記条件設定手段は、前記フレームとしてTCPパケットが受信されたとき、前記要求受付領域に前記ハンドラが実行されるまでの第２のタイムアウト時間を指定した実行要求を設定し、
前記ハンドラは、あらかじめ定められた種類のTCPパケットを送信する、
ことを特徴とする請求項６に記載のタイマ制御システム。
【請求項８】
前記タイマ制御装置における前記カウント処理手段は、前記メモリにおけるカウント領域にカウント値を書き込み、前記カウント領域のアドレスを前記データ処理装置に通知し、
前記データ処理装置における前記条件設定手段は、前記メモリにおける前記カウント領域に書き込まれた前記カウント値を参照し、前記ハンドラが実行されるべき実行カウント値を計算し、計算した実行カウント値を前記ハンドラが実行されるまでの第1のタイムアウト時間として指定した前記ハンドラの実行要求を設定し、
前記タイマ制御装置における前記タイムアウト判定手段は、前記カウント値が実行カウント値に達したとき、前記タイムアウトを検知する
ことを特徴とする請求項６に記載のタイマ制御システム。
【請求項９】
前記データ処理装置における前記条件設定手段は、第１の特定値に対し所望の値を加算または減算した第２の特定値を前記ハンドラが実行されるまでの第１のタイムアウト時間として指定した前記ハンドラの実行要求を設定し、
前記カウント処理手段は、所定時間毎に前記第２の特定値に対し一定値ずつ減算または加算し、
前記タイムアウト判定手段は、減算また加算後の前記第２の特定値が第１の特定値に達したとき、前記タイムアウトを検知する
ことを特徴とする請求項６に記載のタイマ制御システム。
【請求項１０】
前記データ処理装置における前記条件設定手段は、ハンドラ実行の禁止要求を前記メモリにおける前記要求受付領域に設定し、
前記タイマ制御装置における前記要求取得手段は、前記要求受付領域にアクセスするとともに、当該アクセスにより、前記要求受付領域に前記ハンドラ実行の禁止要求を確認できた場合に、前記ハンドラ実行の禁止要求を取得し、
前記タイマ制御装置における前記タイムアウト判定手段は、前記要求取得手段が前記禁止要求を取得した場合に、前記タイムアウトの判定を停止する
ことを特徴とする請求項８または９に記載のタイマ制御システム。
【請求項１１】
前記ハンドラは、TCPの確認応答フラグを含むパケットを送信するものであり、
前記データ処理装置における前記条件設定手段は、
前記フレーム受信手段によりTCPパケットが受信されたとき、前記メモリにおける前記要求受付領域にアクセスし、
アクセスした要求受付領域に前記禁止要求が設定されているときは、前記要求受付領域に、前記ハンドラが実行されるまでの第３のタイムアウト時間を指定した前記ハンドラの実行要求を設定し、
アクセスした要求受付領域に前記実行要求が設定されているときは、前記要求受付領域に前記ハンドラ実行の禁止要求を設定し、TCPの確認応答フラグを含むパケットの送信を要求する割り込み要求を前記タイマ制御装置に送信し、
前記タイマ制御装置は、前記データ処理装置からの前記割り込み要求に応じて、前記TCPの確認応答フラグを含むパケットを送信する
ことを特徴とする請求項１０に記載のタイマ制御システム。
【請求項１２】
前記ハンドラは、TCPの確認応答フラグを含むパケットを送信するものであり、
前記データ処理装置における前記条件設定手段は、
前記フレーム受信手段によりTCPパケットが受信されたとき、前記メモリにおける前記要求受付領域にアクセスし、
アクセスした要求受付領域に前記ハンドラ実行の禁止要求が設定されているときは、前記要求受付領域に前記ハンドラが実行されるまでの第３のタイムアウト時間を指定した前記ハンドラの実行要求を設定し、
アクセスした要求受付領域に前記ハンドラの実行要求が設定されているときは、前記要求受付領域にタイムアウト直前の値をタイムアウト時間として指定した前記ハンドラの実行要求を設定する
ことを特徴とする請求項１０に記載のタイマ制御システム。
【請求項１３】
前記データ処理装置における前記フレーム受信手段は、フラグメント化されたIPパケットを受信し、受信された複数のフラグメント化されたIPパケットを用いてリアセンブル処理を行い、
前記データ処理装置における前記条件設定手段は、
前記フレーム受信手段により、フラグメント化された最初のIPパケットが受信されたとき、前記メモリにおける前記要求受付領域に前記ハンドラが実行されるまでの第４の前記タイムアウト時間を指定した前記ハンドラの実行要求を設定し、
前記フレーム受信手段により、前記フラグメント化された最後のIPパケットが受信されたとき、前記メモリにおける前記要求受付領域に前記ハンドラ実行の禁止要求を設定し、
前記ハンドラは、前記フレーム受信手段により受信されたフラグメント化されたIPパケットを廃棄し、送信元にフラグメントのリアセンブル時間超過を意味するICMPメッセージを送信するものである
ことを特徴とする請求項１０に記載のタイマ制御システム。
【請求項１４】
バスを介してデータ処理装置およびメモリと接続されるコンピュータが実行するタイマ制御プログラムであって、
周期信号を生成する周期信号生成装置に接続する接続ステップと、
前記周期信号生成装置から周期信号を受信する周期信号受信ステップと、
受信された周期信号に基づいてカウントするカウント処理ステップと、
前記メモリにおいてある特定の処理を行うハンドラが格納されたハンドラアドレスを取得するハンドラアドレス取得ステップと、
前記ハンドラが実行されるまでのタイムアウト時間を指定した前記ハンドラの実行要求を前記データ処理装置から受け付けるための要求受付領域を前記メモリに確保する要求受付領域確保ステップと、
前記要求受付領域のアドレスを前記バスを介して前記データ処理装置に通知する通知ステップと、
前記メモリの前記要求受付領域にアクセスするとともに、当該アクセスにより、前記要求受付領域に前記ハンドラの実行要求を確認できた場合に、前記ハンドラの実行要求を取得する要求取得ステップと、
前記要求取得ステップで前記実行要求を取得した場合に、前記カウント処理ステップの前記カウントに基づき、前記実行要求に指定されるタイムアウト時間に達するタイムアウトの判定を開始するタイムアウト判定ステップと、
前記タイムアウトが検知されたとき前記メモリにおける前記ハンドラアドレスから前記ハンドラを読み出して実行するハンドラ実行ステップと
を備えたことを特徴とするタイマ制御プログラム。
【請求項１５】
バスを介してデータ処理装置およびメモリと接続されるコンピュータが実行するタイマ制御方法であって、
周期信号を生成する周期信号生成装置に接続する接続ステップと、
前記周期信号生成装置から周期信号を受信する周期信号受信ステップと、
受信された周期信号に基づいてカウントするカウント処理ステップと、
前記メモリにおいてある特定の処理を行うハンドラが格納されたハンドラアドレスを取得するハンドラアドレス取得ステップと、
前記ハンドラが実行されるまでのタイムアウト時間を指定した前記ハンドラの実行要求を前記データ処理装置から受け付けるための要求受付領域を前記メモリに確保する要求受付領域確保ステップと、
前記要求受付領域のアドレスを前記バスを介して前記データ処理装置に通知する通知ステップと、
前記メモリの前記要求受付領域にアクセスするとともに、当該アクセスにより、前記要求受付領域に前記ハンドラの実行要求を確認できた場合に、前記ハンドラの実行要求を取得する要求取得ステップと、
前記要求取得ステップで前記実行要求を取得した場合に、前記カウント処理ステップの前記カウントに基づき、前記実行要求に指定されるタイムアウト時間に達するタイムアウトの判定を開始するタイムアウト判定ステップと、
前記タイムアウトが検知されたとき前記メモリにおける前記ハンドラアドレスから前記ハンドラを読み出して実行するハンドラ実行ステップと
を備えたことを特徴とするタイマ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タイマ制御装置、タイマ制御システム、タイマ制御方法およびタイマ制御プログラムに関する。
【背景技術】
【０００２】
従来のタイマ制御装置では、たとえば特許文献１に開示されているように、プロセッサへの周期的な割り込みを行う発振器を用いて、プロセッサで割り込み回数をカウントする。プロセッサは、カウント値が、ある特定の処理を実行するハンドラの実行カウント値になったか否かを判定する判定処理（タイマ処理）を行い、カウント値が実行カウント値になったと判定すると、タイムアウト処理を行う。ここで、実行カウント値はソフトウェアで管理されており、このため、外部のハードウェア（データ処理装置）で発生したイベントを契機に判定処理（タイマ処理）を行う場合には、外部のハードウェアからソフトウェア（プロセッサ）に対し割り込み要求を上げ、プロセッサが、この割り込み要求を受けて、ハンドラを実行する実行カウント値を設定していた。このため、外部のハードウェアからの割り込みが頻繁に発生すると、割り込みに係るプロセッサの処理負荷が増大するという問題があった。
【特許文献１】特開平９‐２８８５８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明は、プロセッサに与える処理負荷を低く抑えてタイマ処理を行うことを可能としたタイマ制御装置、タイマ制御システム、タイマ制御方法およびタイマ制御プログラムを提供する。
【課題を解決するための手段】
【０００４】
本発明の一態様としてのタイマ制御装置は、
バスを介してデータ処理装置およびメモリと接続されるタイマ制御装置であって、
周期信号を生成する周期信号生成装置に接続する接続手段と、
前記周期信号生成装置から周期信号を受信する周期信号受信手段と、
受信された周期信号に基づいてカウントするカウント処理手段と、
前記メモリにおいてある特定の処理を行うハンドラが格納されたハンドラアドレスを取得するハンドラアドレス取得手段と、
実行されるまでのタイムアウト時間を指定した前記ハンドラの実行要求を前記データ処理装置から受け付けるための要求受付領域を前記メモリに確保する要求受付領域確保手段と、
前記要求受付領域のアドレスを前記バスを介して前記データ処理装置に通知する通知手段と、
前記メモリの前記要求受付領域にアクセスすることにより前記ハンドラの実行要求を取得する要求取得手段と、
前記実行要求が取得されたとき前記実行要求に指定されるタイムアウト時間に対して前記カウント処理手段を用いてタイムアウトの判定を開始するタイムアウト判定手段と、
前記タイムアウトが検知されたとき前記メモリにおける前記ハンドラアドレスから前記ハンドラを読み出して実行するハンドラ実行手段と
を備えたことを特徴とする。
【０００５】
本発明の一態様としてのタイマ制御システムは、
それぞれバスを介してメモリと接続された、タイマ制御装置およびデータ処理装置を備えたタイマ制御システムであって、
周期信号を生成する周期信号生成装置に接続する接続手段と、
前記周期信号生成装置から周期信号を受信する周期信号受信手段と、
受信された周期信号に基づいてカウントするカウント処理手段と、
前記メモリにおいてある特定の処理を行うハンドラが格納されたハンドラアドレスを取得するハンドラアドレス取得手段と、
実行されるまでのタイムアウト時間を指定した前記ハンドラの実行要求を前記データ処理装置から受け付けるための要求受付領域を前記メモリに確保する要求受付領域確保手段と、
前記要求受付領域のアドレスを前記バスを介して前記データ処理装置に通知する通知手段と、
前記メモリの前記要求受付領域にアクセスすることにより前記ハンドラの実行要求を取得する要求取得手段と、
前記実行要求が取得されたとき前記実行要求に指定されるタイムアウト時間に対して前記カウント処理手段を用いてタイムアウトの判定を開始するタイムアウト判定手段と、
前記タイムアウトが検知されたとき前記メモリにおける前記ハンドラアドレスから前記ハンドラを読み出して実行するハンドラ実行手段と
を備え、
前記データ処理装置は
前記タイマ制御装置から通知されたアドレスに基づいて前記メモリにおける前記要求受付領域にアクセスして、前記タイムアウト時間を指定した前記ハンドラの実行要求を設定する条件設定手段を備えた
ことを特徴とする。
【０００６】
本発明の一態様としてのタイマ制御プログラムは、
バスを介してデータ処理装置およびメモリと接続されるコンピュータにおいて実行するタイマ制御プログラムであって、
周期信号を生成する周期信号生成装置に接続する接続ステップと、
前記周期信号生成装置から周期信号を受信する周期信号受信ステップと、
受信された周期信号に基づいてカウントするカウント処理ステップと、
前記メモリにおいてある特定の処理を行うハンドラが格納されたハンドラアドレスを取得するハンドラアドレス取得ステップと、
実行されるまでのタイムアウト時間を指定した前記ハンドラの実行要求を前記データ処理装置から受け付けるための要求受付領域を前記メモリに確保する要求受付領域確保ステップと、
前記要求受付領域のアドレスを前記バスを介して前記データ処理装置に通知する通知ステップと、
前記メモリの前記要求受付領域にアクセスすることにより前記ハンドラの実行要求を取得する要求取得ステップと、
前記実行要求が取得されたとき前記実行要求に指定されるタイムアウト時間に対して前記カウント処理ステップを用いてタイムアウトの判定を開始するタイムアウト判定ステップと、
前記タイムアウトが検知されたとき前記メモリにおける前記ハンドラアドレスから前記ハンドラを読み出して実行するハンドラ実行ステップと
を備えたことを特徴とする。
【０００７】
本発明の一態様としてのタイマ制御方法は、
バスを介してデータ処理装置およびメモリと接続されるコンピュータにおいて実行するタイマ制御方法であって、
周期信号を生成する周期信号生成装置に接続する接続ステップと、
前記周期信号生成装置から周期信号を受信する周期信号受信ステップと、
受信された周期信号に基づいてカウントするカウント処理ステップと、
前記メモリにおいてある特定の処理を行うハンドラが格納されたハンドラアドレスを取得するハンドラアドレス取得ステップと、
実行されるまでのタイムアウト時間を指定した前記ハンドラの実行要求を前記データ処理装置から受け付けるための要求受付領域を前記メモリに確保する要求受付領域確保ステップと、
前記要求受付領域のアドレスを前記バスを介して前記データ処理装置に通知する通知ステップと、
前記メモリの前記要求受付領域にアクセスすることにより前記ハンドラの実行要求を取得する要求取得ステップと、
前記実行要求が取得されたとき前記実行要求に指定されるタイムアウト時間に対して前記カウント処理ステップを用いてタイムアウトの判定を開始するタイムアウト判定ステップと、
前記タイムアウトが検知されたとき前記メモリにおける前記ハンドラアドレスから前記ハンドラを読み出して実行するハンドラ実行ステップと
を備えたことを特徴とする。
【発明の効果】
【０００８】
本発明により、プロセッサに与える処理負荷を低く抑えてタイマ処理を行うことが可能となる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施形態について説明する。
【００１０】
（第１の実施形態）
図１は、本発明の第１の実施形態に係わるプロセッサ（タイマ制御装置）１１を備えたタイマ制御システムの構成を示すブロック図である。
【００１１】
このタイマ制御システムは、プロセッサ（タイマ制御装置）１１と、メモリ２１と、ハードウェア（データ処理装置）３１と、発振器４１とを備える。プロセッサ（タイマ制御装置）１１と、メモリ２１と、ハードウェア３１は、図示しない共通のバスを介して接続されている。発振器４１はプロセッサ１１に直接接続されている。ハードウェア３１は、たとえばネットワークを介してフレームを受信するフレーム受信装置であり、本実施形態ではフレーム受信装置であるとする。
【００１２】
発振器４１は、常時、周期信号（たとえばクロック）を生成し、生成した周期信号をプロセッサ１１に与える。発振器４１は、周期信号を生成する周期信号生成装置に相当する。
【００１３】
プロセッサ１１は、ハンドラ登録部１３、カウント処理部１８、タイムアウト処理部１９を備える。
【００１４】
プロセッサ１１におけるカウント処理部１８は、発振器４１に接続し、発振器４１から周期信号を受信する。すなわちカウント処理部１８は、発振器４１に接続する接続手段と、発振器４１から周期信号を受信する周期信号受信手段とを備える。カウント処理部１８は、受信した周期信号に基づきカウントを行い、カウント値をメモリ２１におけるタイマカウント値記憶部（カウント領域）１２に格納する。タイマカウント値記憶部（カウント領域）１２は、たとえばメモリ２１においてあらかじめ確保されている。
【００１５】
プロセッサ１１におけるハンドラ登録部１３は、図示しないＯＳ（Operating System）等のプログラムからハンドラ登録要求を受けて、以下の処理（１）〜（３）を行う。
【００１６】
（１）メモリ２１に、ハンドラアドレス記憶部１７と、タイマ処理実行条件記憶部１４を確保する。後者のタイマ処理実行条件記憶部１４は、ハンドラの実行される実行カウント値を記憶するタイマ処理実行カウント値記憶部１５と、ハンドラの実行（タイムアウト処理部１９による処理）の許可または禁止を表すフラグ値（許可フラグまたは禁止フラグ）を記憶するタイマ処理実行許可フラグ値記憶部１６を含む。実行カウント値と許可フラグとの組はハンドラの実行要求に相当する。禁止フラグはハンドラ実行の禁止要求に相当する。タイマ処理実行カウント値記憶部１５とタイマ処理実行許可フラグ値記憶部１６との組は、ハンドラの実行要求を受け付ける要求受付領域に相当する。ハンドラ登録部１３は、メモリに当該要求受付領域を確保する要求受付領域確保手段を備えている。
【００１７】
（２）ハンドラ登録部１３は、ハンドラアドレス記憶部１７とタイマ処理実行条件記憶部１４の領域を確保したら、タイムアウト時に実行されるハンドラのアドレスをハンドラアドレス記憶部１７に設定する。このハンドラのアドレスは、要求元（ＯＳ等のプログラム）から指定され、たとえばハンドラ登録要求に含まれている。ハンドラ登録部１３は、ハンドラの登録要求からハンドラアドレスを取得するハンドラアドレス取得手段を含む。なお、ここでのハンドラはTCP（Transmission Control Protocol）のパケットを送信する処理を行うものであるとする。また、ハンドラ登録部１３は、タイマ処理実行許可フラグ値記憶部１６にタイマ処理の実行（タイムアウトの判定）を禁止するフラグ値（禁止フラグ）を設定する。
【００１８】
（３）さらに、ハンドラ登録部１３は、タイマ処理実行カウント値記憶部１５のアドレスと、タイマ処理実行許可フラグ値記憶部１６のアドレスと、タイマカウント値記憶部１２のアドレス（カウント領域のアドレス）を、ハードウェア（フレーム受信装置）３１に対して通知する。ハンドラ登録部１３は、要求受付領域のアドレスと、カウント領域のアドレスを通知する通知手段を備えている。
【００１９】
プロセッサ１１におけるタイムアウト処理部１９は、発振器４１からの周期信号を利用して、タイマ処理実行許可フラグ値記憶部１６に所定間隔でアクセスしてフラグ値を確認する。タイマ処理の実行を許可するフラグ値（許可フラグ）が設定されたとき、タイマカウント値記憶部１２のカウント値と、タイマ処理実行カウント値記憶部１５の実行カウント値に基づき、タイマ処理（タイムアウトの判定）を行う。具体的には、タイマカウント値記憶部１２のカウント値が、タイマ処理実行カウント値記憶部１５の実行カウント値に達したかどうかを判定する。実行カウント値は、ハンドラを実行するタイムアウト時間の一例に相当する。タイムアウト処理部１９は、タイムアウトの判定を行うタイムアウト判定手段を備えている。タイムアウト処理部１９は、実行カウント値に達したら、タイムアウトとして、要求元から指定されたハンドラを実行する。すなわちタイムアウト処理を行う。タイムアウト処理部１９は、タイムアウトが検知されたときハンドラを実行するハンドラ実行手段を備える。タイムアウト処理部１９は、タイマ処理実行許可フラグ値記憶部１６にタイマ処理の実行（タイムアウトの判定）を禁止するフラグ値（禁止フラグ）が設定されているときは、上記タイマ処理およびタイムアウト処理を行わない。タイマ処理中であったときは該タイマ処理を停止する。タイムアウト処理部１９は、上記要求受付領域からハンドラの実行要求およびハンドラ実行の禁止要求を取得する要求取得手段を含んでいる。
【００２０】
ハードウェア３１におけるタイマ処理実行条件設定部３２は、プロセッサ１１におけるハンドラ登録部１３から、タイマ処理実行カウント値記憶部１５のアドレスと、タイマ処理実行許可フラグ値記憶部１６のアドレスと、タイマカウント値記憶部１２のアドレス（カウント領域のアドレス）の通知を受ける。
【００２１】
タイマ処理実行条件設定部３２は、タイマカウント値記憶部１２にアクセスして現在のカウント値を取得する。また、タイマ処理実行条件設定部３２は、タイマ処理実行カウント値記憶部１５にアクセスして、ハンドラの実行カウント値を設定し、また、タイマ処理実行許可フラグ値記憶部１６にアクセスして、タイマ処理の実行（タイムアウトの判定）を許可または禁止するフラグ値（許可フラグまたは禁止フラグ）を設定する。
【００２２】
なお、タイマ処理実行カウント値記憶部１５およびタイマ処理実行許可フラグ値記憶部１６の設定は、ハードウェア３１、プロセッサ１１またはハンドラによって行われることもある。
【００２３】
本例におけるハードウェア３１は、上述したように、フレーム受信装置を想定しており、タイマ処理実行条件設定部３２の他、その構成要素として、ネットワークを介してフレームを受信するフレーム受信手段（図示せず）を有する。本実施形態では、ネットワークを介してＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）通信を行うことを想定し、フレーム受信手段はＴＣＰ／ＩＰ処理部を含んでいるものとする。
【００２４】
以下、図１のタイマ制御システムの動作例を説明する。
【００２５】
プロセッサ１１は、パケットの送信を相手装置にネットワークを介して行う。この際、タイマを起動するため、例えば現在のタイマカウント値から75s後などタイマの種類に応じた実行カウント値を、タイマ処理実行カウント値記憶部１５に設定し、タイマ処理実行許可フラグ値記憶部１６に許可フラグを設定する。
【００２６】
ハードウェア（フレーム受信装置）３１は、たとえば図５のフローチャートに示す処理を行う。本実施形態では図５の処理を実行することによってTCPのセッションタイマを実現している。
【００２７】
図５に示すように、ハードウェア（フレーム受信装置）３１は、相手装置からネットワークを介して到着したTCPパケットを受信し（S11）、受信したパケットのシーケンス番号が、期待されるものであるどうかを検査する（S12）。期待されるものであった場合は（YES）、タイマ処理実行条件設定部３２にタイマのリセットを指示する。指示を受けたタイマ処理実行条件設定部３２は、例えば現在のタイマカウント値から75s後のカウント値など、タイマの種類（ここでは持続タイマ）に応じた実行カウント値を設定する（S13）。フラグ値は変更しない（許可フラグのままにする）。一方、受信したパケットのシーケンス番号が期待されるものでなかったときは（S12のNO）、本処理を終了し、次のパケットの受信を待機する。
【００２８】
カウント処理部１８はカウント値を逐次、タイマカウント値記憶部１２に書き込んでおり、タイムアウト処理部１９は、許可フラグ値が設定されているとき、タイマカウント値記憶部１２のカウント値が、タイマ処理実行カウント値記憶部１５の実行カウント値またはこれ以上になったかどうかを検査する。実行カウント値以上になったら、ハンドラアドレス記憶部１７内のアドレスに示されるハンドラを実行し、あらかじめ定められた種類のTCPパケットを送信する。
【００２９】
このように、第１の実施形態によれば、ハンドラとしてＴＣＰパケットを送信する処理を登録し、ハードウェア（フレーム受信装置）３１からメモリ２１に実行カウント値およびフラグ値を設定し、プロセッサ１１がメモリ２１に設定された実行カウント値およびフラグ値に基づいてタイマ処理を行うことにより、割り込みを用いずにTCPのキープアライブタイマ、SYN+ACKタイマ、再送タイマ、持続タイマ等のセッションタイマを実現することが可能となる。すなわち、プロセッサへの周期的な割り込みを行う発振器を用いてタイマ処理を行う場合に、プロセッサへの割り込みを用いずに、ハードウェアからソフトウェアにタイマ処理を指示することが可能となる。
【００３０】
本実施形態は以下のように種々の変更および拡張を加えることが可能である。これらの変更および拡張は本実施形態のみならず、以降に説明する他の実施形態にも当てはまる。
【００３１】
タイマ処理実行カウント値のアドレス通知と、タイマ処理実行許可フラグ値のアドレス通知と、タイマカウント値のアドレス通知はハンドラ登録時に行ったが、これはハンドラ登録後からハンドラ削除前までの間であればいつ行ってもよい。さらに、タイマの登録はソケット構造体の作成時でもよい。
【００３２】
また、上記でタイマ処理実行カウント値を設定する際にはタイマの種類によって設定する値が異なると述べたが、タイマの種類によっては固定値ではなく、異なる値を設定することもあり得る。例えば再送タイマの場合には、指数バックオフした値が設定される。
【００３３】
上記構成では、フレーム受信装置はTCP／ＩＰ処理部を備えた装置であったが、これはTCP／ＩＰ処理部に限らずSCTPやDCCPなどの他のプロトコル処理部でも、他のプロトコルのパケットを送信するハンドラを登録することができる。
【００３４】
（第２の実施形態）
図２は本実施形態に係るプロセッサ（タイマ制御装置）を備えたタイマ制御システムの構成を示すブロック図である。図１と同一名称の要素には同一の符号を付し、拡張された処理を除き、重複する説明を省略する。
【００３５】
図２のタイマ処理実行条件記憶部１４は、図１と異なり、タイマ処理実行許可フラグ値記憶部１６を備えていない。図２のタイマ制御装置では、タイマ処理の許可または禁止の制御は、許可フラグおよび禁止フラグを用いず、タイマ処理実行カウント値記憶部１５に設定する値によって行うことを特徴とする。
【００３６】
例えばタイマカウント値記憶部１２が取ることのできる最大値など、特定のカウンタ値（第１の所定値）は、タイマ処理の実行を禁止する値として別途定義しておく。第１の所定値はたとえばハンドラ実行の禁止要求に相当する。タイムアウト処理部１９は、タイマ処理実行カウント値記憶部１５にこの特定値（第１の所定値）がセットされていることを検出したときはタイマ処理を実行せず、実行中であるときは処理を停止する。この特定値（第１の所定値）と異なる値がセットされたことを検出したときは、第１の実施形態と同様にしてタイマ処理を行う。
【００３７】
ハードウェア３１におけるタイマ処理実行条件設定部３２は、タイマ処理実行条件記憶部１４に対し、タイマ処理を禁止（停止）するときは、上記第１の所定値をタイマ処理実行条件記憶部１４に設定し、タイマ処理の要求を行うときは、タイマの種類に応じて求まるカウント値（第１の所定値と異なる値）を、タイマ処理実行条件記憶部１４に設定する。
【００３８】
（第３の実施形態）
図３は本実施形態に係るプロセッサ（タイマ制御装置）を備えたタイマ制御システムの構成を示すブロック図である。図１と同一名称の要素には同一の符号を付し、拡張された処理を除き、重複する説明を省略する。本タイマ制御装置は、発振器４１からの周期信号に応じて（たとえば所定数のクロックが入力されるごとに）、タイマ処理実行カウント値記憶部１５の値を一定値ずつ加算または減算し、実行カウント値が例えば0など特定の値となった場合に、ハンドラを実行することを特徴としている。第１の実施形態と異なり、本実施形態では、カウント値を格納するタイマカウント値記憶部はメモリ２１に設けられない。以下、本実施形態について詳細に説明する。
【００３９】
ハンドラ登録部１３は、図示しないＯＳ等からハンドラ登録要求を受けると、メモリ２１において、ハンドラアドレス記憶部１７の領域と、タイマ処理実行条件記憶部１４の領域とを確保する。タイマ処理実行条件記憶部１４には、タイマ処理実行カウント値記憶部１５と、タイマ処理実行許可フラグ値記憶部１６が含まれる。タイマ処理実行カウント値記憶部１５には、第１の特定値に所望の値を加算または減算して得られる第２の特定値（タイムアウト時間）が設定される。この点、本実施形態は、ハンドラが実行されるべきカウント値を設定した第１および第２の実施形態と異なる。第２のカウント値およびフラグ値の設定は、第１の実施形態と同様に、プロセッサ１１、ハンドラ、またはハードウェア３１により行われることができる。
【００４０】
ハンドラ登録部１３は、ハンドラアドレス記憶部１７の領域とタイマ処理実行条件記憶部１４の領域とを確保したら、要求元から指定された、タイムアウト時に実行されるハンドラのアドレスをハンドラアドレス記憶部１７に設定し、またタイマ処理実行許可フラグ値記憶部１６に禁止フラグを設定する。ここでのハンドラはTCPパケットを送信する処理であるとする。また、ハンドラ登録部１３は、タイマ処理実行カウント値記憶部１５のアドレスと、タイマ処理実行許可フラグ値記憶部１６のアドレスとを、ハードウェア（フレーム受信装置）３１に対して通知する。
【００４１】
カウント処理部１８は、発振器４１から入力される周期信号に応じて、タイマ処理実行カウント値記憶部１５の第２の特定値に対し一定値ずつ加算または減算する（タイマ処理）。ただし、カウント処理部１８は、タイマ処理実行許可フラグ値記憶部１６に禁止フラグがセットされているときは、タイマ処理を行わない。
【００４２】
タイムアウト処理部１９は、加算または減算後の第２の特定値が例えば0など特定の値（第１の特定値）となったかどうかを判定し、第１の特定値となったとき、ハンドラを実行する。
【００４３】
以下、図３のタイマ制御システムの動作例を説明する。
【００４４】
プロセッサ１１は、たとえばパケット送信の際、タイマを起動するべく、例えば75s（または75sの間に発生する発振器４１の割り込み回数）など、タイマの種類に応じた第２の特定値をタイマ処理実行カウント値記憶部１５に設定し、またタイマ処理実行許可フラグ値記憶部１６に許可フラグを設定する。
【００４５】
ハードウェア（フレーム受信装置）３１は、たとえば図５のフローチャートの処理を行う。ハードウェア３１は、相手先からネットワークを介して到着したTCPパケットを処理し（Ｓ１１）、受信したパケットのシーケンス番号が期待されるものであるとき（Ｓ１２のＹＥＳ）、タイマ処理条件設定部３２にタイマのリセットを指示する。この指示を受けて、タイマ条件設定部３２は、タイマの種類に応じた第２の特定値をタイマ処理実行条件記憶部１４に設定する（Ｓ１３）。フラグ値は現在のまま（許可フラグのまま）とする。
【００４６】
カウント処理部１８では、発振器４１から入力される周期信号に応じて、タイマ処理実行カウント値記憶部１５の第２の特定値に対し一定値ずつ加算または減算しており、タイムアウト処理部１９は、加算または減算後の第２の特定値が、あらかじめ定めた第１の特定値（例えば0など）となったとき、ハンドラを実行し、TCPパケットを送信する。
【００４７】
（第４の実施形態）
図４は本実施形態に係るプロセッサ（タイマ制御装置）を備えたタイマ制御システムの構成を示すブロック図である。図３と同一名称の要素には同一の符号を付し、拡張された処理を除き、重複する説明を省略する。
【００４８】
図４のタイマ処理実行条件記憶部１４は、図３と異なり、タイマ処理実行許可フラグ値記憶部１６を備えていない。図４のタイマ制御装置は、タイマ処理の許可または禁止の制御は、許可フラグおよび禁止フラグを用いず、タイマ処理実行カウント値記憶部１５に設定する値によって行うことを特徴とする。
【００４９】
例えば所定のカウンタ値（０など）は、タイマ処理の実行を禁止する値（第２の所定値）として別途定義しておく。第２の所定値はたとえばハンドラ実行の禁止要求に相当する。タイマ処理実行カウント値記憶部１５にこの所定の値（第２の所定値）がセットされているときは、カウント処理部１８はタイマ処理を実行せず、この第２の所定値と異なる値がセットされているときは、第３の実施形態と同様にしてタイマ処理を行う。
【００５０】
ハードウェア３１におけるタイマ処理実行条件設定部３２は、タイマ処理の実行を禁止するときは、上記第２の所定値をタイマ処理実行カウント値記憶部１５に設定し、タイマ処理の実行を要求するときは、タイマの種類に応じて求まる第２の特定値を、タイマ処理実行カウント値記憶部１５に設定する。
【００５１】
（第５の実施形態）(TCPの遅延確認応答)
本実施形態では、ハンドラの処理内容を具体的に特定してハードウェア（フレーム受信装置）の動作例を示す。以下では第１の実施形態に示した構成（図１参照）を想定して説明を行うが、第２〜第４の実施形態でも同様に本実施形態を適用可能である。
【００５２】
本実施形態において、ハンドラは、少なくとも２回パケットを受信すると１回確認応答パケットを送信する処理を行う。予め定めた期間内に２個のパケットが受信されたら、その時点で確認応答を返し、１個目のパケットの受信後、上記予め定めた期間内に２個目のパケットが到着しなかったときは、１つのパケットについてのみ確認応答を返す。本実施形態では、上記予め定めた期間についてのタイマ処理を行うことにより、遅延確認応答タイマを実現する。
【００５３】
図６は、本実施形態におけるTCPパケット受信時のハードウェア（フレーム受信装置）３１の動作のフローチャートを示す。
【００５４】
まずフレーム受信装置３１は、到着したパケットのデータ受信処理を行う（S21）。
【００５５】
データ受信処理によって、接続先（パケットの送信元）に通知する確認応答番号が更新されたとき（S22のYES）、タイマ処理条件設定部３２にタイマのセットを指示する。または接続先（パケットの送信元）に通知する確認応答番号が更新されなかったが（S22のNO）、受信したパケットのシーケンス番号が受信範囲内のときも（S23のYES）、タイマ処理条件設定部３２にタイマのセットを指示する。
【００５６】
タイマ条件設定部３２は、タイマが起動中でないとき（許可フラグが設定されているとき）は（S24のNO）、受信したパケットは１つ目のパケットであるため、タイマを起動するための動作を行う。すなわち、タイマ処理実行カウント値記憶部１５内に、現在の時刻（現在のカウント値）から、200〜500ms後にハンドラが実行されるように実行カウント値を設定し（S26）、またタイマ処理実行許可フラグ値記憶部１６に許可フラグを設定する（S27）。
【００５７】
一方、タイマが起動中のとき（許可フラグが設定されているとき）は（S24のYES）、禁止フラグを設定してタイマ処理を停止し、プロセッサ１１に対し確認応答フラグのついたパケットを送信することを要求する割り込み要求を上げる（S25）。プロセッサ１１は、この割り込み要求を受けて、たとえばS22で更新された確認応答番号を含むパケットを送信する。
【００５８】
ステップS22において、接続先（パケットの送信元）に通知する確認応答番号が更新されず（S22のNO）、かつ、受信したパケットのシーケンス番号が受信範囲外のときは（S23のNO）、すぐさま確認応答フラグのついたパケットを送信することを要求する割り込み要求をプロセッサ１１に上げる(S28)。プロセッサ１１は、この割り込み要求を受けて、たとえば直前の更新された確認応答番号を含むパケットを送信する。
【００５９】
このように、本実施形態によれば、ハンドラとして確認応答フラグのついたパケットを送信するプログラム（遅延確認応答用のプログラム）を登録し、フレーム受信装置からメモリ２１に対して実行カウント値およびフラグ値の設定を行い、プロセッサ１１がこの設定に基づきタイマ処理およびタイムアウト処理を行うことで、プロセッサ１１への割り込みを軽減した、TCP遅延確認応答タイマを実現することが可能となる。
【００６０】
なお、図６のフローチャートのステップS25に代えて、図７のフローチャートに示すようにステップS29を実行してもよい。図７における他のステップは図６と同一である。
【００６１】
図６では、タイマが起動中のとき（S24のYES）（許可フラグが設定されているとき）は、禁止フラグを設定し、プロセッサ１１に対し確認応答フラグのついたパケットを送信することを要求する割り込み要求を上げた。これに対し、図７では、プロセッサ１１に割り込み要求を上げず、実行カウント値をタイムアウト直前の値（たとえばタイムアウトよりも所定時間前に相当するカウント値）に設定し（S29）、タイムアウト処理によってハンドラを実行することで、確認応答番号を含むパケットを送信する。
【００６２】
本実施形態では、少なくとも２回パケットを受信すると１回確認応答パケットを送信する遅延確認応答タイマを実現したが、ハードウェア（フレーム受信装置）の動作に変更を加えることで、n(n>2)回に1回確認応答パケットを送信することや、1RTT（Round-Trip Time）に1つの確認応答パケットを送信することも可能である。
【００６３】
また、本実施形態では、ハードウェア（フレーム受信装置）３１は、TCP／IP処理部を備えた装置であったが、ハードウェア（フレーム受信装置）３１が備えるプロトコル処理部はTCP／IP処理部に限定されず、SCTPまたはDCCPなどの他のプロトコル処理部でもよい。このように他のプロトコル処理部であっても、他のプロトコルの確認応答フラグのついたパケットを送信するハンドラを登録することで、遅延確認応答タイマを実現することが可能である。
【００６４】
（第６の実施形態）(IPのデフラグ)
本実施形態では、ハンドラの処理内容を具体的に特定してハードウェア（フレーム受信装置）の動作例を示す。以下では第１の実施形態に示した構成を想定して説明を行うが、第２〜第４の実施形態でも同様に本実施形態を適用可能である。
【００６５】
本実施形態において、ハンドラは、フラグメントしたIPパケットが送信元から送られてくる場合に、予め指定した時間内に、リアセンブル処理の完了しなかったとき、リアセンブル処理の完了しなかったパケットを破棄し、送信元にフラグメントのリアセンブル時間超過を意味するICMPメッセージを送信する処理を行う。
【００６６】
本実施形態において、ハードウェア（フレーム受信装置）のフレーム受信手段は、フラグメント化されたIPパケットをリアセンブルする機能を備えている。ハードウェア（フレーム受信装置）３１は、ここでは識別子、プロトコル番号、始点IPアドレス、終点IPアドレスが一致するフラグメントしたパケットが全て揃うとローカルでの上位層処理またはリモートへのフォワード処理を行うものとする。IPv4ヘッダのフォーマットを図９に示す。
【００６７】
図８は、本実施形態におけるIPパケット受信時のフレーム受信装置の動作のフローチャートを示す。
【００６８】
ハードウェア（フレーム受信装置）３１は、受信したパケットがフラグメントパケットであるときはリアセンブル処理を行う（S31）。なお、受信したパケットがフラグメントパケットかどうかはコントロールフラグの値で判定する。
【００６９】
そのフラグメントパケットが最初のパケットであるかどうかを判定し（S32）、最初のパケットであるとき（S32のYES）、実行カウント値を現在から30s後にハンドラが実行されるように設定し（S35）、さらに許可フラグを設定する（S36）。受信したフラグメントパケットが何番目のパケットかはフラグメントオフセットの値で判定できる。
【００７０】
一方、受信したフラグメントパケットが最初のものでないとき（S32のNO）（なお、識別子、プロトコル番号、始点IPアドレス、終点IPアドレスは、以前に受信したパケットと一致しているものとする）、リアセンブルが完了したかどうかを判定し（S33）、完了したときは（YES）、タイマ処理を行う必要はなくなったため、禁止フラグを設定する（S34）。リアセンブルが完了していないときは（S33のNO）本処理を終了し、次のパケットの到着を待機する。
【００７１】
このように、本実施形態によれば、フラグメントされた最初のIPパケットが到着したときに実行カウント値と、許可フラグとを設定し、実行カウント値により定まる時間（予め定めた時間）内にフラグメントパケットのリアセンブル処理が完了したときには、禁止フラグを設定することで、プロセッサ１１への割り込みを発生させることなく、フラグメントされたIPパケットのリアセンブル処理タイマを実現することが可能となる。
【００７２】
本実施形態ではパケットはIPv4の場合についてIPパケットのリアセンブル処理タイマを実現したが、IPv6またはRTPなど他のフラグメント処理の行われるプロトコルの場合でも同様に、リアセンブル処理タイマを実現可能である。
【００７３】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００７４】
【図１】本発明の第１の実施形態に係わるプロセッサ（タイマ制御装置）を備えたタイマ制御システムの構成を示すブロック図。
【図２】第２の実施形態に係るプロセッサ（タイマ制御装置）を備えたタイマ制御システムの構成を示すブロック図。
【図３】第３の実施形態に係るプロセッサ（タイマ制御装置）を備えたタイマ制御システムの構成を示すブロック図。
【図４】第４の実施形態に係るプロセッサ（タイマ制御装置）を備えたタイマ制御システムの構成を示すブロック図。
【図５】第１の実施形態におけるハードウェア（フレーム受信装置）の処理を説明するフローチャート。
【図６】第５の実施形態におけるTCPパケット受信時のハードウェア（フレーム受信装置）の動作のフローチャート。
【図７】図６のフローを一部変更した処理の流れを示すフローチャート。
【図８】第６実施形態におけるIPパケット受信時のフレーム受信装置の動作のフローチャート。
【図９】IPv4ヘッダのフォーマットを示す図。
【符号の説明】
【００７５】
１１：プロセッサ（タイマ制御装置）
１２：タイマカウント値記憶部（カウント領域）
１３：ハンドラ登録部（ハンドラアドレス取得手段、受付領域確保手段）
１４：発振器（周期信号生成装置）
１５：タイマ処理実行カウント値記憶部（要求受付領域）
１６：タイマ処理実行許可フラグ値記憶部（要求受付領域）
１７：ハンドラアドレス記憶部
１８：カウント処理部
１９：タイムアウト処理部（要求取得手段、タイムアウト判定手段、ハンドラ実行手段）
２１：メモリ
３１：ハードウェア（データ処理装置）
３２：タイマ処理実行条件設定部（条件設定手段）
【図１】
0004966238.tif 000002
【図２】
0004966238.tif 000003
【図３】
0004966238.tif 000004
【図４】
0004966238.tif 000005
【図５】
0004966238.tif 000006
【図６】
0004966238.tif 000007
【図７】
0004966238.tif 000008
【図８】
0004966238.tif 000009
【図９】
0004966238.tif 000010