(57)【特許請求の範囲】
【請求項１】
外部装置との通信のためのコネクションを確立する第１の制御手段と、
タイマ情報を格納するメモリと、
タイマ情報を格納するキャッシュと、
前記第１の制御手段によって確立されているコネクションに関するタイマ情報を前記メモリに格納する第２の制御手段とを有し、
前記第２の制御手段は、前記キャッシュ内に空きがある場合、前記メモリに格納された前記タイマ情報を前記キャッシュに移動することを特徴とする通信装置。
【請求項２】
前記第２の制御手段は、前記キャッシュに格納されたタイマ情報が確立されていないコネクションに関するタイマ情報である場合、前記キャッシュから当該タイマ情報を破棄することを特徴とする請求項１に記載の通信装置。
【請求項３】
前記第２の制御手段は、前記キャッシュの状態に応じて前記コネクションに関するタイマ情報を前記メモリに格納するか前記キャッシュに格納するかを変更することを特徴とする請求項１または２に記載の通信装置。
【請求項４】
タイマの種別に応じて優先度が設定されており、
前記第２の制御手段は、前記コネクションに関するタイマ情報が示すタイマの種別に応じて設定された優先度に基づいて、当該タイマ情報を前記メモリに格納するか前記キャッシュに格納するかを変更することを特徴とする請求項１乃至３のいずれか１項に記載の通信装置。
【請求項５】
前記第１の制御手段は、ＴＣＰ／ＩＰプロトコルに従った通信処理を行うことを特徴とする請求項１乃至４のいずれか１項に記載の通信装置。
【請求項６】
前記メモリまたは前記キャッシュに格納されたタイマ情報が示すタイマがタイムアウトしたことを前記第１の制御手段に通知する通知手段を更に有することを特徴とする請求項１乃至５のいずれか１項に記載の通信装置。
【請求項７】
タイマ情報を格納するキャッシュを管理するタイマ管理装置であって、
確立されているコネクションに関するタイマ情報を外部メモリに格納する制御手段と、  前記キャッシュ内に空きがある場合、前記外部メモリに格納された前記タイマ情報を前記キャッシュに移動する移動手段と、
を有することを特徴とするタイマ管理装置。
【請求項８】
前記キャッシュに格納されたタイマ情報が確立されていないコネクションに関するタイマ情報である場合、前記キャッシュから当該タイマ情報を破棄する破棄手段を更に有することを特徴とする請求項７に記載のタイマ管理装置。
【請求項９】
前記制御手段は、前記キャッシュの状態に応じて前記コネクションに関するタイマ情報を前記メモリに格納するか前記キャッシュに格納するかを変更することを特徴とする請求項７または８に記載のタイマ管理装置。
【請求項１０】
タイマの種別に応じて優先度が設定されており、
前記制御手段は、前記コネクションに関するタイマ情報が示すタイマの種別に応じて設定された優先度に基づいて、当該タイマ情報を前記メモリに格納するか前記キャッシュに格納するかを変更することを特徴とする請求項７乃至９のいずれか１項に記載のタイマ管理装置。
【請求項１１】
前記メモリまたは前記キャッシュに格納されたタイマ情報が示すタイマがタイムアウトしたことを外部に通知する通知手段を更に有することを特徴とする請求項７乃至１０のいずれか１項に記載のタイマ管理装置。
【請求項１２】
通信制御のためのタイマ情報を格納するメモリと、タイマ情報を格納するキャッシュとを有する通信装置の制御方法であって、
第１の制御手段が、外部装置との通信のためのコネクションを確立する第１の制御工程と、
第２の制御手段が、前記第１の制御工程で確立されているコネクションに関するタイマ情報を前記メモリに格納する第２の制御工程と、
移動手段が、前記キャッシュ内に空きがある場合、前記メモリに格納された前記タイマ情報を前記キャッシュに移動する移動工程とを有することを特徴とする通信装置の制御方法。
【請求項１３】
タイマ情報を格納するキャッシュを管理するタイマ管理装置の制御方法であって、
制御手段が、確立されているコネクションに関するタイマ情報を外部メモリに格納する制御工程と、
移動手段が、前記キャッシュ内に空きがある場合、前記外部メモリに格納された前記タイマ情報を前記キャッシュに移動する移動工程と、
を有することを特徴とするタイマ管理装置の制御方法。
【請求項１４】
通信制御のためのタイマ情報を格納するメモリと、タイマ情報を格納するキャッシュとを有する通信装置のコンピュータを、
外部装置との通信のためのコネクションを確立する第１の制御手段、
前記第１の制御手段によって確立されているコネクションに関するタイマ情報を前記メモリに格納する第２の制御手段、
前記キャッシュ内に空きがある場合、前記メモリに格納された前記タイマ情報を前記キャッシュに移動する移動手段、として機能させることを特徴とするコンピュータプログラム。
【請求項１５】
タイマ情報を格納するキャッシュを管理するタイマ管理装置のコンピュータを、
確立されているコネクションに関するタイマ情報を外部メモリに格納する制御手段、
前記キャッシュ内に空きがある場合、前記外部メモリに格納された前記タイマ情報を前記キャッシュに移動する移動手段、として機能させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークプロトコル処理におけるネットワークタイマ管理方法及び装置に関するものであり、例えば、ＴＣＰ／ＩＰネットワークにおけるタイマ管理に好適なものである。
【背景技術】
【０００２】
従来から、ネットワークプロトコル処理の一環として、ネットワークタイマ管理が行われている。ネットワークタイマ管理では、確立されたコネクション毎にＡＣＫタイマや持続タイマ等の複数種類のタイマが管理対象となる。管理対象のタイマは、ネットワークプロトコル処理において、必要とされるタイミングでＣＰＵ等の処理装置により起動される。そして、管理対象のタイマがタイムアウトした場合は、当該コネクションとタイマ種別に応じて所定の処理が行われる。一方、タイムアウトする前に所定の事象が発生しタイマの必要性がなくなった場合は、当該タイマに対し停止処理が行われる。上述したネットワークタイマ処理の実装例としては、ソフトウェアによるタイマ管理手法が挙げられる（特許文献１）。
【０００３】
また、近年は処理装置が行うべきネットワークタイマ処理の一部をハードウェアが代替するタイマ管理方法が採用されてきている。この方式では、以下の２つの処理をハードウェアが代替する。すなわち、
（１）タイマ起動及びタイマ停止を行う場合の記憶装置へのタイマ情報の登録、編集、削除処理、及び
（２）周期タイマにより割り込みが発生した場合に行われる、起動中のタイマがタイムアウトしているか否かの確認、である。
ここで上記（１）及び（２）の処理を代替するハードウェア装置をネットワークタイマ管理装置と呼ぶこととする。
【０００４】
ネットワークタイマ管理装置は、処理装置がタイマ起動要求及び停止要求を行った場合に上記（１）の処理を行う。より具体的には以下の手順で行う。まず、処理装置はネットワークタイマ管理装置に対し、コネクション種別、タイマ種別、タイムアウト時間等の情報とともにタイマ起動要求を行う。このタイマ起動要求を受けたネットワーク管理装置は、記憶装置へタイマ情報を登録し、当該タイマが起動されていることを示す起動フラグをセットする（編集）。一方、処理装置がネットワークタイマ管理装置に対し、タイマ停止要求を行った場合は、記憶装置内の対象タイマのタイマ情報を検索し、対応する起動フラグを無効化（編集）または削除する。
【０００５】
また、ネットワークタイマ管理装置は、周期タイマによる割り込みの通知を受けた場合に上記（２）の処理を行う。より具体的には以下の手順で行う。即ち、周期タイマからの通知を受けたとき、ネットワークタイマ管理装置は記憶装置内のタイマ情報を読み出し、起動フラグがセットされていて、かつタイムアウトしているタイマが存在するかを調べる。そして、そのようなタイマを検出した場合、ネットワークタイマ管理装置は当該タイムアウトを通知するため割り込み信号を処理装置へ発行する。
【特許文献１】特開平１０−３０７７６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら上述したネットワークタイマ管理装置では、タイマ情報が格納される記憶装置は、処理装置とネットワークタイマ管理装置との共有メモリである場合が一般的である。そのため、当該共有メモリへのアクセス量によってはシステムバス競合、共有メモリへのアクセス競合が発生し、システム全体のパフォーマンス低下が懸念される。さらに、メモリアクセスの増加が消費電力の増大も引き起こすことも懸念される。
【０００７】
共有メモリへのアクセス量の抑制のため、ネットワークタイマ管理装置に内部キャッシュを実装することが考えられる。しかしながら、ネットワークプロトコル処理においては、コネクションの状態やタイマ種別により再利用率や利用周期が大きく変わるため、単純なキャッシュ制御（例えば周知のＦＩＦＯやＬＲＵ等）ではキャッシュ使用効率が上がらないという課題があった。キャッシュ使用効率の低下は、共有メモリへのアクセス量の増大を意味し、上述した課題の発生が懸念される。
【０００８】
本発明は、上述の課題を鑑みてなされたものであり、ネットワークタイマ管理に適したキャッシュ制御を実現し、キャッシュの再利用性を向上させることを目的とする。
【課題を解決するための手段】
【０００９】
上記の目的を達成するための本発明の一態様による通信装置は以下の構成を備える。すなわち、
外部装置との通信のためのコネクションを確立する第１の制御手段と、
タイマ情報を格納するメモリと、
タイマ情報を格納するキャッシュと、
前記第１の制御手段によって確立されているコネクションに関するタイマ情報を前記メモリに格納する第２の制御手段とを有し、
前記第２の制御手段は、前記キャッシュ内に空きがある場合、前記メモリに格納された前記タイマ情報を前記キャッシュに移動する。
【００１０】
また、上記の目的を達成するための本発明の一態様によるタイマ管理装置は以下の構成を備える。すなわち、
タイマ情報を格納するキャッシュを管理するタイマ管理装置であって、
確立されているコネクションに関するタイマ情報を外部メモリに格納する制御手段と、
前記キャッシュ内に空きがある場合、前記外部メモリに格納された前記タイマ情報を前記キャッシュに移動する移動手段と、を有する。
【発明の効果】
【００１１】
本発明によれば、ネットワークタイマ管理に適したキャッシュ制御を実現し、キャッシュの再利用性を向上させることが可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
【００１３】
図１は、実施形態によるＴＣＰ／ＩＰネットワークプロトコル処理システムの構成例を示すブロック図である。図１において、１０１はＣＰＵであり、ＴＣＰ／ＩＰネットワークプロトコル処理をソフトウェアにより実行する。１０２はＲＯＭであり、ＣＰＵ１０１が実行する各種処理のためのソフトウェアが格納されている。１０３はＲＡＭであり（例えば、ダイナミックＲＡＭ（ＤＲＡＭ））、ＣＰＵ１０１の実行ワークエリアとして使用される。また、ＲＡＭ１０３には、ＴＣＰ／ＩＰネットワークプロトコル処理を実行するために必要となる各種データが格納される。そのようなデータには、ＴＣＰ／ＩＰネットワーク通信において送受信するデータ、ＴＣＢ（Transmission Control Block）及びネットワークタイマの管理データが含まれる。尚、ＴＣＢは、現在確立されているコネクションの状態を示す情報（コネクション情報）を格納する周知のデータ構造である。また、以下では、「ネットワークタイマの管理データ」をタイマエントリ情報と呼ぶこととする。
【００１４】
１０４はネットワークタイマ管理コントローラであり、処理装置（ＣＰＵ１０１）が行うべきネットワークタイマ処理の一部を代替する。即ち、処理装置によって形成されたネットワーク通信において用いられるタイマを管理するネットワークタイマ管理装置として機能する。１０８は該ネットワークタイマ管理コントローラ１０４が発生するＣＰＵ１０１への割り込み信号である。１０５はＭＡＣ（Media Access Controller）、１０６はＰＨＹ（PHYsical layer）であり、ＴＣＰ／ＩＰネットワーク通信制御を行う。１０７はＤＭＡＣ（DirectMemoryAccessController）であり、ＴＣＰ／ＩＰネットワーク通信で送受信するデータのＲＡＭ１０３とＭＡＣ１０５間の転送を管轄する。１０９はバスであり、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、ネットワークタイマ管理コントローラ１０４、ＭＡＣ１０５、ＤＭＡＣ１０７を相互接続する。
【００１５】
尚、例えば、ネットワークタイマ管理コントローラ１０４、ＭＡＣ１０５、ＰＨＹ１０６、ＤＭＡＣ１０７は、所謂ネットワークインターフェースボードを構成するようにしてもよい。この場合、このようなネットワークインターフェースボードは、ＣＰＵ１０１，ＲＯＭ１０２、ＲＡＭ１０３、バス１０９を有する処理装置に装着され、ネットワーク通信を実現すると共に、処理装置が行うべきネットワークタイマの管理の一部を実行する。
【００１６】
図２は、ネットワークタイマ管理コントローラ１０４の内部の構成例を示すブロック図である。図２において、２０１はフリーランタイマであり、設定された周期毎に比較器２０２にタイミング信号を通知する。尚、本実施形態においては、フリーランタイマ２０１はネットワークタイマ管理コントローラ１０４の構成要素としているが、ネットワークタイマ管理コントローラ１０４の外部に位置していても良い。２０２は比較器であり、フリーランタイマ２０１からの通知を受けてキャッシュメモリ２０３内のタイマエントリ情報内のタイムアウトカウントを減算し、減算結果を０と比較することによりタイムアウトか否かを判定する（詳細は後述する）。比較器２０２は、タイムアウトしているタイマがあると判定した場合には、割り込み信号２０４を活性化し、処理装置（ＣＰＵ１０１）に対してタイムアウトしたタイマを通知する。割り込み信号２０４は図１における割り込み信号１０８に直結する。
【００１７】
２０３はキャッシュメモリであり、比較器２０２に対しタイマエントリ情報を提供する。２０５はタイマ情報管理コントローラであり、バス１０９へのアクセスインタフェースを具備し、当該アクセスインタフェースを通してＲＡＭ１０３内のタイマエントリ情報及びＴＣＢへアクセスする。そして、タイマ情報管理コントローラ２０５は、必要に応じてタイマエントリ情報をキャッシュメモリ２０３にキャッシュする。以上のように、タイマ情報管理コントローラ２０５は、タイマ毎に、タイムアウトまでの計数値（タイムアカウント数）を含むタイマ情報（タイマエントリ情報）をキャッシュメモリ２０３にキャッシュする。そして、比較器２０２は、フリーランタイマ２０１からの信号に応じて、タイマ毎に、キャッシュメモリ２０３にキャッシュされたタイマ情報を用いてタイムアウトを判定する。
【００１８】
ネットワークタイマ管理コントローラ１０４は、ＣＰＵ１０１からタイマ管理開始要求を受けることで、後述するタイマ管理、及びキャッシュ管理を開始する。当該タイマ管理、及びキャッシュ管理はＣＰＵ１０１からタイマ管理停止要求を受けるまで継続される。タイマ管理を開始したネットワークタイマ管理コントローラ１０４は、ＣＰＵ１０１からタイマ開始要求を受け、当該タイマを登録しタイムアウトした場合にＣＰＵ１０１へタイムアウト通知を行う。一方、ＣＰＵ１０１からタイマ停止要求を受けた場合は、当該タイマの停止処理を行う。以下、ネットワークタイマ管理コントローラ１０４が扱うタイマエントリ情報の構造を説明する。また、ネットワークタイマ管理コントローラ１０４によるタイマ開始要求を受けた場合のタイマ開始処理、タイマ停止要求を受けた場合のタイマ停止処理、及び継続して行うタイマ管理について説明する。
【００１９】
タイマエントリ情報は、図２に示されるように、
・コネクションＩＤ：当該タイマが関連するコネクションを示す、
・タイマＩＤ：ＴＣＰ／ＩＰネットワークタイマにおけるＡＣＫタイマ、持続タイマ等のタイマの種別を示す、
・タイムアウトカウント数：当該タイマがタイムアウトするまでのカウント数を示す、
・アクティブフラグ：当該タイマが有効であるかどうかを示す、
を含む。
【００２０】
タイムアウトカウント数は、フリーランタイマ２０１の周期毎に（クロック入力毎に）１ずつ減算され、減算の結果“０”になった場合は当該タイマがタイムアウトしたことを意味する。このタイムアウトカウント数は、フリーランタイマ２０１の処理周期におけるカウント数であり、ＣＰＵ１０１によって実際のタイムアウト時間から算出される。例えば、フリーランタイマ２０１が１ＭＨｚで動作している場合、１０ｍｓ（ミリ秒）のタイムアウト時間は１００００カウントと算出される。また、アクティブフラグがセットされていない場合は、タイムアウトカウント数の減算は行われず、その結果、当該タイマのタイムアウトは発生しない。
【００２１】
図３はネットワークタイマ管理コントローラ１０４によるタイマ開始処理を示すフローチャートである。ネットワークタイマ管理コントローラ１０４は、ＣＰＵ１０１からタイマ開始要求を受けることでタイマ開始処理を開始する。まず、ステップＳ３０１において、タイマ情報管理コントローラ２０５は、受信したタイマ開始要求によって指定されたタイマ（開始要求タイマという）のタイマエントリ情報が、キャッシュメモリ２０３に既に登録されているか検索する。より具体的には、ＣＰＵ１０１は起動すべきタイマ、即ち開始要求タイマをコネクションＩＤとタイマＩＤにより指定する。タイマ情報管理コントローラ２０５は、キャッシュメモリ２０３において、開始要求タイマのコネクションＩＤ及びタイマＩＤが一致するタイマエントリ情報を検索する。この検索の結果、キャッシュメモリ２０３内に開始要求タイマのタイマエントリ情報が存在した場合、処理はステップＳ３０２からステップＳ３０３へ進む。ステップＳ３０３では、タイマ情報管理コントローラ２０５は、当該タイマエントリ情報のアクティブフラグをセット（有効化）する。
【００２２】
一方、ステップＳ３０２でキャッシュメモリ２０３内に開始要求タイマのタイマエントリ情報が存在しないと判定された場合、処理はステップＳ３０２からステップＳ３０４へ進む。ステップＳ３０４において、タイマ情報管理コントローラ２０５は、ＲＡＭ１０３に当該開始要求タイマのタイマエントリ情報が登録されているか検索する。検索の結果、ＲＡＭ１０３内に当該開始要求タイマのタイマエントリ情報が存在した場合は、ステップＳ３０５からステップＳ３０３へ処理を進め、上述したように当該タイマエントリ情報のアクティブフラグをセット（有効化）する。但し、この場合は、ＲＡＭ１０３内のタイマエントリ情報のアクティブフラグがセットされる。
【００２３】
ステップＳ３０５でＲＡＭ１０３内にも開始要求タイマのタイマエントリ情報が存在しない場合は、処理はステップＳ３０６に進む。ステップＳ３０６において、タイマ情報管理コントローラ２０５は、キャッシュメモリ２０３に空きがあるか否かを確認する。キャッシュメモリ２０３に空きがあった場合、ステップＳ３０７において、タイマ情報管理コントローラ２０５は、登録タイマのタイマエントリ情報をキャッシュメモリ２０３に格納する。一方、キャッシュメモリ２０３に空きがない場合は、ステップＳ３０８において、タイマ情報管理コントローラ２０５は、登録タイマのタイマエントリ情報をＲＡＭ１０３に格納する。キャッシュメモリ２０３及びＲＡＭ１０３いずれに登録した場合も、ステップＳ３０４で当該タイマエントリ情報のアクティブフラグがセット（有効化）され、タイマ開始処理を完了する。
【００２４】
尚、ステップＳ３０５でＲＡＭ１０３に対象のタイマエントリ情報が見つかった場合で、かつキャッシュメモリ２０３に空きがある場合は、当該タイマエントリ情報をキャッシュメモリ２０３にロードするように構成しても良い。
【００２５】
次に、ネットワークタイマ管理コントローラ１０４によるタイマ停止処理について説明する。図４はタイマ停止処理を示すフローチャートである。ネットワークタイマ管理コントローラ１０４は、ＣＰＵ１０１からタイマ停止要求を受けることでタイマ停止処理を開始する。まず、ステップＳ４０１において、タイマ情報管理コントローラ２０５は、タイマ停止要求によって指定されたタイマ（以下、停止要求タイマという）のタイマエントリ情報がキャッシュメモリ２０３に含まれているか検索する。より、具体的には、ＣＰＵ１０１は停止すべきタイマ、即ち停止要求タイマをコネクションＩＤとタイマＩＤにより指定する。タイマ情報管理コントローラ２０５は、キャッシュメモリ２０３において、停止要求タイマのコネクションＩＤ及びタイマＩＤが一致するタイマエントリ情報を検索する。この検索の結果、キャッシュメモリ２０３内に停止要求タイマのエントリ情報が存在すると判定された場合、処理はステップＳ４０２からステップＳ４０３へ進む。ステップＳ４０３において、タイマ情報管理コントローラ２０５は、当該タイマエントリ情報のアクティブフラグをリセット（無効化）する。
【００２６】
一方、ステップＳ４０２でキャッシュメモリ２０３内に停止要求タイマのタイマエントリ情報が存在しないと判定された場合、処理はステップＳ４０２からステップＳ４０４へ進む。ステップＳ４０４において、タイマ情報管理コントローラ２０５は、ＲＡＭ１０３に停止要求タイマのタイマエントリ情報が含まれているか検索する。検索の結果、ＲＡＭ１０３内に停止要求タイマのタイマエントリ情報が存在した場合、処理はステップＳ４０５からステップＳ４０３へ進み、当該タイマエントリ情報のアクティブフラグがリセット（無効化）される。当該タイマエントリ情報がＲＡＭ１０３内にも存在しなかった場合は、停止すべきタイマが存在しないので、何もせず停止処理を完了する。
【００２７】
また、ステップＳ４０３でアクティブフラグをリセットしたタイマエントリ情報を、キャッシュメモリ２０３からフラッシュし、ＲＡＭ１０３へ追い出すように構成しても良い。こうすることで、キャッシュメモリ２０３の利用効率を向上することができる。ただし、追い出したタイマエントリ情報の再利用（ＣＰＵ１０１によるタイマ開始要求）が発生した場合は、タイマ情報管理コントローラ２０５がＲＡＭ１０３へアクセスしなければならなくなり、逆に利用効率が低下する可能性もある。なお、キャッシュ制御において、キャッシュデータをキャッシュから追い出す処理として、フラッシュ、クリーンという用語が用いられる。一般には、フラッシュはキャッシュデータを破棄（キャッシュデータの削除または該当領域の解放）すると共にライトバックする処理を含み、クリーンは単にキャッシュデータを破棄する処理をさす。しかしながら、フラッシュ及びクリーンのいずれの場合もキャッシュメモリからキャッシュデータを「破棄」するものであり、本明細書ではこれらを総称して「フラッシュ」と称することにする。
【００２８】
続いて、ネットワークタイマ管理コントローラ１０４におけるタイマ管理について説明する。図５はネットワークタイマ管理コントローラ１０４が行うタイマ管理処理を示すフローチャートである。ネットワークタイマ管理コントローラ１０４は、ＣＰＵ１０１からタイマ管理開始要求を受けることでステップＳ５０１以降のタイマ管理処理を開始する。
【００２９】
タイマ管理開始要求を受信すると、タイマ情報管理コントローラ２０５は比較器２０２にタイマ管理処理を開始させる。タイマ管理処理の開始指示を受けた比較器２０２は、ステップＳ５０１でフリーランタイマ２０１のカウントアップを待つ。フリーランタイマ２０１のカウントアップが行われると、ステップＳ５０２からステップＳ５１３まで処理が次のカウントアップまでに行われる。ステップＳ５０１〜Ｓ５１３の処理は、フリーランタイマ２０１のカウントアップ毎に繰り返し行われる。以下、ステップＳ５０２〜Ｓ５１３の処理について説明する。
【００３０】
まず、ステップＳ５０２でキャッシュメモリ２０３内のタイマエントリ情報が一つ選択される。ステップＳ５０３において、比較器２０２は、ステップＳ５０２で選択したタイマエントリ情報のアクティブフラグがセットされているかを確認する。アクティブフラグがセットされていた場合は、処理はステップＳ５０３からステップＳ５０４へ進む。ステップＳ５０４において、比較器２０２は、ステップＳ５０２で選択したタイマエントリ情報のタイムアウトカウント数を１減算する。続いてステップＳ５０５で、比較器２０２は、減算の結果タイムアウトカウント数が“０”になったか否かを確認する。そして、“０”になった場合は、処理はステップＳ５０６へ進み、比較器２０２は、割り込み信号１０８を介してＣＰＵ１０１へタイムアウト通知を行う。
【００３１】
ステップＳ５０６でタイムアウト通知を行った場合、ステップＳ５０５で“０”にならなかった場合、及びステップＳ５０３でアクティブフラグがセットされていなかった場合のいずれの場合も、処理はステップＳ５０７へ進む。ステップＳ５０７において、比較器２０２は、キャッシュメモリ２０３内にまだ選択されていないタイマエントリ情報が存在するかを確認する。確認の結果存在する場合は、処理はステップＳ５０２に戻り、選択されていないタイマエントリ情報に対して上記の処理を繰り返し行う。ステップＳ５０７でキャッシュメモリ２０３に選択されていないタイマエントリ情報が残っていないと判断された場合は、処理はステップＳ５０８へ進む。ステップＳ５０８〜Ｓ５１３では、ＲＡＭ１０３内のタイマエントリ情報に対して、上記ステップＳ５０２〜Ｓ５０７と同様の処理を行う。
【００３２】
以上説明したタイマ管理処理中に、ＣＰＵ１０１からタイマ管理終了要求を受けた場合は、タイマ情報管理コントローラ２０５は、いずれの処理中であっても、比較器２０２によるタイマ管理処理を終了させる。一旦タイマ管理処理を終了した場合は、次にタイマ管理開始要求を受けるまでは何もせず、タイマ管理開始要求を受けた場合は再度ステップＳ５０１からの処理を比較器２０２に開始させる。
【００３３】
以上説明したネットワークタイマ管理コントローラ１０４によるタイマ管理処理、タイマ開始処理、及びタイマ停止処理により、ＣＰＵ１０１はタイマ開始要求を行うことで当該タイマがタイムアウトした場合に割込み通知を受けることができる。また、ＣＰＵ１０１は、タイムアウトする前にタイマ停止要求を行うことで、タイマ管理処理対象から当該停止要求タイマを除外させることができる。一方、一度登録されたタイマエントリ情報は、ネットワークタイマ管理コントローラ１０４の管理下（キャッシュメモリ２０３、もしくはＲＡＭ１０３内）に置かれるため、再度同じタイマのタイマ開始要求を行ったときに再利用され得る。このとき、キャッシュメモリ２０３内に再利用対象のタイマエントリ情報が存在した場合は、高速にタイマ開始処理を行えるばかりでなく、ＲＡＭ１０３へのアクセスを抑制することができる。
【００３４】
次に、タイマ情報管理コントローラ２０５によるキャッシュ管理について説明する。キャッシュ管理は、上述のタイマ管理と同様にＣＰＵ１０１によるタイマ管理開始要求を受けることで開始し、タイマ管理停止要求を受けるまで継続される。このキャッシュ管理では、ＲＡＭ１０３に保持されているＴＣＢの内容を基に後述するキャッシュ制御処理が繰り返し行われる。ＴＣＢとはＴＣＰ／ＩＰネットワークプロトコル処理で使用されるデータブロックであり、ネットワーク通信において確立されているコネクションの情報が格納されている。つまり、新しいコネクションが確立されたときにはＴＣＢに当該コネクションの情報が追加され、所定のコネクションが切断されたときにはＴＣＢから当該コネクションの情報が削除される。また、コネクションの状態が変更された場合は、ＴＣＢ内の当該コネクションの情報が修正されることになる。
【００３５】
キャッシュ管理において繰り返し行われるキャッシュ制御処理は、ＴＣＢの内容を基に行われるため、ＴＣＢの変更のタイミングで行うことが望ましい。よって、本実施形態においてはＣＰＵ１０１が、ＴＣＢの変更を行ったときにネットワークタイマ管理コントローラ１０４にキャッシュ制御要求を行うこととする。そして、ネットワークタイマ管理コントローラ１０４は、当該キャッシュ制御要求を受けたときに、後述するキャッシュ制御処理を行うこととする。ただし、ＣＰＵ１０１によるキャッシュ制御要求の発行は、ＣＰＵ１０１の処理負荷の増大や既存ソフトウェアの変更を引き起こす可能性がある。従って、これを回避したい場合には、ネットワークタイマ管理コントローラ１０４が、例えば内部のフリーランタイマ２０１を用いる等の方法で、定期的にキャッシュ制御処理を行うように構成してもよい。このとき、キャッシュ制御要求は、ネットワークタイマ管理コントローラ１０４の内部で自動的に生成されることとなる。
【００３６】
以下、ネットワークタイマ管理コントローラ１０４において、キャッシュ制御要求を受けた場合に行われるキャッシュ制御処理について説明する。キャッシュ制御処理は、大きくは、キャッシュロック処理、キャッシュフラッシュ処理、キャッシュプリロード処理の３つの処理の分けられる。以下、キャッシュ制御処理の全体的な処理を図６を参照して説明する。また、上記３つのそれぞれの処理について、図７〜図９を参照して説明する。
【００３７】
図６は、ネットワークタイマ管理コントローラ１０４によるキャッシュ制御処理を示すフローチャートである。ネットワークタイマ管理コントローラ１０４は、キャッシュ制御要求を受けたときにキャッシュ制御処理を開始する。
【００３８】
まず、ステップＳ６０１において、タイマ情報管理コントローラ２０５は、ＲＡＭ１０３からＴＣＢを読み出す（ロードする）。ロードされたＴＣＢの全体は、例えばタイマ情報管理コントローラ２０５内のレジスタやキャッシュ（不図示）に保持される。その後、タイマ情報管理コントローラ２０５は、ステップＳ６０２においてキャッシュロック処理、ステップＳ６０３でキャッシュフラッシュ処理、ステップＳ６０４でキャッシュプリロード処理を行い、一旦キャッシュ制御処理を完了する。その後、ＣＰＵ１０１からタイマ管理終了要求をうけるまで、キャッシュ制御要求毎に、ステップＳ６０１からステップＳ６０４の処理を繰り返し行う。
【００３９】
以下、キャッシュロック処理、キャッシュフラッシュ処理、及びキャッシュプリロード処理のシーケンスを具体的に説明する。
【００４０】
図７は、ネットワークタイマ管理コントローラ１０４によるキャッシュ制御処理の一つであるキャッシュロック処理を示すフローチャートである。まずステップＳ７０１において、タイマ情報管理コントローラ２０５は、キャッシュメモリ２０３内のタイマエントリ情報を一つ選択する。続いてステップＳ７０２において、タイマ情報管理コントローラ２０５は、当該タイマエントリ情報のコネクションＩＤを基に、当該コネクションがＴＣＢ内に存在するかを確認する。確認の結果、存在する場合は、処理はステップＳ７０２からステップＳ７０３へ進む。ステップＳ７０３において、タイマ情報管理コントローラ２０５は、当該タイマエントリ情報が格納されているキャッシュエントリにロックをかける。ロックをかけられたキャッシュエントリはフラッシュの対象外となる。換言すれば、このキャッシュロック処理によってロック状態となったキャッシュエントリに対するフラッシュは禁止される。
【００４１】
ステップＳ７０２でＴＣＢ内にコネクション情報が存在しないと判定された場合、及びステップＳ７０３でキャッシュロックを行った場合のいずれにおいても、処理はステップＳ７０４へ進む。ステップＳ７０４において、タイマ情報管理コントローラ２０５は、キャッシュメモリ２０３内にまだ選択されていないタイマエントリ情報が存在するかを確認する。確認の結果、存在すると判定された場合は、処理はステップＳ７０４からステップＳ７０１に戻り、選択されていないタイマエントリ情報に対して、上記処理を繰り返し行う。ステップＳ７０４でキャッシュメモリ２０３に選択されていないタイマエントリ情報が存在しないと判定された場合は、当該キャッシュロック処理を完了する。このように、ネットワークタイマ管理コントローラ１０４は、キャッシュメモリ２０３にキャッシュされているタイマエントリ情報に対応するＴＣＢ（コネクションに関するコネクション情報）が存在するか確認する。そして、対応するＴＣＢが存在する場合に、ネットワークタイマ管理コントローラ１０４は、当該タイマエントリ情報を、キャッシュメモリ２０３からフラッシュされることが禁止されたロック状態とする。
【００４２】
図８は、ネットワークタイマ管理コントローラ１０４によるキャッシュ制御処理の一つであるキャッシュフラッシュ処理を示すフローチャートである。まずステップＳ８０１において、タイマ情報管理コントローラ２０５は、キャッシュメモリ２０３内のタイマエントリ情報を一つ選択する。続いてステップＳ８０２において、タイマ情報管理コントローラ２０５は、当該タイマエントリ情報のコネクションＩＤを基に、当該コネクションがＴＣＢ内に存在するかを確認する。確認の結果、存在しないと判定された場合は、処理はステップＳ８０３へ進む。ステップＳ８０３において、タイマ情報管理コントローラ２０５は、当該タイマエントリ情報をキャッシュメモリ２０３からフラッシュ（ＲＡＭ１０３へライトバック）する。このとき、図７で上述したキャッシュロック処理によって対象のキャッシュエントリがロックをかけられていた場合は、キャッシュロックを解除してフラッシュする。このように、ネットワークタイマ管理コントローラ１０４は、キャッシュメモリ２０３にキャッシュされているタイマエントリ情報に対応するＴＣＢ（コネクションに関するコネクション情報）が存在するか確認する。そして、対応するＴＣＢが存在しない場合に、ネットワークタイマ管理コントローラ１０４は、キャッシュメモリ２０３から当該タイマエントリ情報をフラッシュする。
【００４３】
ステップＳ８０２において、ＴＣＢ内に当該タイマエントリ情報に対応するコネクション情報が存在すると判定された場合、及びステップＳ８０３でキャッシュロックを行った場合のいずれにおいても、処理はステップＳ８０４へ進む。ステップＳ８０４において、タイマ情報管理コントローラ２０５は、キャッシュメモリ２０３内にまだ選択されていないタイマエントリ情報が存在するかを確認する。確認の結果存在すると判定された場合は、処理はステップＳ８０１に戻り、選択されていないタイマエントリ情報に対して上述の処理を繰り返し行う。ステップＳ８０４において、キャッシュメモリ２０３に選択されていないタイマエントリ情報はなかった場合は、当該キャッシュフラッシュ処理を完了する。
【００４４】
図９は、ネットワークタイマ管理コントローラ１０４によるキャッシュ制御処理の一つであるキャッシュプリロード処理を示すフローチャート図である。タイマ情報管理コントローラ２０５は、まずステップＳ９０１において、キャッシュメモリ２０３に空きがあるかを確認する。確認の結果空きがあると判定された場合は、ステップＳ９０２において、タイマ情報管理コントローラ２０５はＴＣＢ内のコネクション情報を一つ選択する。続いてステップＳ９０３において、タイマ情報管理コントローラ２０５は、当該コネクション情報に関連するタイマエントリ情報がキャッシュメモリ２０３に格納されているかを検索する。検索の結果、存在していると判定された場合は何も行わない。含まれていないと判定された場合は、処理はステップＳ９０４からステップＳ９０５へ進む。ステップＳ９０５において、タイマ情報管理コントローラ２０５は、当該タイマ情報管理コントローラエントリ情報がＲＡＭ１０３に格納されているかを検索する。検索の結果、存在していると判定された場合は、ステップＳ９０７において、タイマ情報管理コントローラ２０５は当該タイマエントリ情報をキャッシュメモリ２０３にロードする。存在しないと判定された場合は、ステップＳ９０８において、タイマ情報管理コントローラ２０５はキャッシュメモリ２０３にタイマエントリ情報を新規に登録する。
【００４５】
・ステップＳ９０４で既に対象のタイマエントリ情報がキャッシュメモリ２０３に登録されていた場合、
・ステップＳ９０７で対象のタイマエントリ情報をキャッシュにロードした場合、及び
・ステップＳ９０８で新規にキャッシュメモリ２０３に対象のタイマエントリ情報を登録した場合、のいずれにおいても、処理はステップＳ９０９へ進む。ステップＳ９０９で、タイマ情報管理コントローラ２０５は、ＲＡＭ１０３内のＴＣＢにまだ選択されていないコネクション情報が存在するかを確認する。確認の結果存在すると判定された場合は、処理はステップＳ９０１に戻り、選択されていないコネクション情報に対して上記の処理を繰り返し行う。一方、ステップＳ９０９において、ＴＣＢに選択されていないコネクション情報が存在しなかった場合、及びステップＳ９０１でキャッシュメモリ２０３に空きがないと判断された場合は、キャッシュプリロード処理を完了する。
【００４６】
以上説明した実施形態のネットワークタイマ管理コントローラによれば、ネットワーク通信において現在確立されているコネクションに関するコネクション情報（ＴＣＢ）が参照される。そして、このコネクション情報に基づいて、キャッシュメモリ２０３におけるタイマ情報のキャッシュが制御される。そのため、ネットワークタイマ管理に適したキャッシュ制御を実現し、キャッシュの再利用性を向上させることができる。
【００４７】
尚、キャッシュプリロード処理では、ＴＣＢのコネクション情報からアクティブなコネクションに関連するタイマエントリ情報を優先的にキャッシュに格納するようにしてもよい。このようにすれば、ネットワークタイマのタイマエントリ情報に関して内部のキャッシュ使用効率を向上させることができる。キャッシュの使用効率の向上は、ＲＡＭ１０３へのアクセス回数の低減を意味し、よって、バスアクセス負荷の低減及び消費電力の低減が期待できる。
【００４８】
尚、本実施形態においては、キャッシュロック処理によりＴＣＢに含まれているコネクションに関連するタイマエントリ情報に対しキャッシュロックを行っている。しかしながら、キャッシュフラッシュは図８に示したキャッシュフラッシュ処理においてのみ行うように構成すれば、キャッシュフラッシュはＴＣＢ内に含まれているかを確認して行うため、キャッシュロック処理を省略するように構成することも可能である。こうすることで、キャッシュロック処理の分だけ処理負荷を軽減することができ、実装負荷の軽減や処理速度の向上、消費電力の低減等の効果が期待できる。
【００４９】
また、本実施形態においては、キャッシュフラッシュ処理においてＴＣＢ内に含まれていないコネクションに関連するタイマエントリ情報を対象にキャッシュフラッシュを行っているが、これに限られるものではない。例えば、図７のキャッシュロック処理において、ステップＳ７０２でＮＯであった場合に、当該コネクションＩＤのタイマエントリ情報のキャッシュロックを解除しておく。そして、図８のキャッシュフラッシュ処理では、ステップＳ８０２においてキャッシュロックされているかを確認しキャッシュロックされていないタイマエントリ情報のみを対象にキャッシュフラッシュを行うように構成しても良い。こうすることで、キャッシュフラッシュ処理はＴＣＢの内容に関わらず処理を進めることができるため、例えば所定の周期毎や、キャッシュにタイマエントリ情報を追加したいタイミングでキャッシュフラッシュ処理を行うことが可能となる。これにより、よりキャッシュの使用効率の向上が期待できる。
【００５０】
また、本実施形態においては、キャッシュプリロード処理において、プリロードするタイマ種別に関しては明言していないが、特定のタイマ種別のタイマエントリ情報を選択的にプリロードするようにしてもよい。例えば、ＴＣＰ／ＩＰプロトコル処理においては使用頻度の高いタイマや低いタイマや、タイムアウト周期の長いタイマや短いタイマが存在する。従って、タイマ種別に優先度を設定して優先度の高いタイマ種別から処理を行う、もしくは優先度の高いタイマ種別のみを対象にタイマエントリ情報を準備するように構成しても良い。こうすることで、上記実施形態ではキャッシュに空きがなくなってしまった場合にプリロードの対象とならなかった使用頻度の高いタイマやタイムアウト周期の短いタイマのタイマエントリ情報がキャッシュにプリロードされやすくすることができる。このため、キャッシュの使用効率をより向上させることができ、処理速度の向上やＲＡＭ１０３へのアクセスによるバス負荷の低減、消費電力の低減等の効果が期待できる。
【００５１】
同じように、本実施形態においては、キャッシュロック処理、及びキャッシュフラッシュ処理において、タイマ種別に関わらずＴＣＢ内に存在するか否かでキャッシュロック、及びキャッシュフラッシュを行っている。しかしながら、優先度の高いタイマ種別のみを対象にキャッシュロックを実行するようにしてもよい。及び／または、優先度の低いタイマ種別はＴＣＢに含まれるコネクション情報に関連するタイマであってもキャッシュフラッシュの実行を行うように構成してもよい。こうすることで、キャッシュの使用効率をより向上させることができ、処理速度の向上やＲＡＭ１０３へのアクセスによるバス負荷の低減、消費電力の低減等の効果が期待できる。
【００５２】
同じように、本実施形態においては、タイマ開始処理において、タイマ種別に関わらずキャッシュに空きがある場合はキャッシュにタイマエントリ情報を格納しているが、これに限られるものではない。例えば、優先度の高いタイマ種別のみを対象にキャッシュへの格納を許すように構成してもよい。こうすることで、キャッシュの使用効率をより向上させることができ、処理速度の向上やＤＲＡＭへのアクセスによるバス負荷の低減、消費電力の低減等の効果が期待できる。
【００５３】
また、本実施形態においては、キャッシュ制御処理においてロードしたＴＣＢのみを基に処理を行っているが、前回ロードしたＴＣＢを残しておき比較することが可能なように構成してもよい。このようにすれば、新規に追加されたコネクション情報、及び削除されたコネクション情報をより簡便に検出することが可能となる。そして、これら検出されたコネクションについて、キャッシュロック処理、キャッシュフラッシュ処理、及びキャッシュプリロード処理を行うようにすれば、これらの処理をより高速に実行することが可能となる。
【００５４】
また、本実施形態においては、ＲＡＭ１０３やキャッシュメモリ２０３に登録したタイマエントリ情報の削除に関して述べてはいないが、所定のタイミングや条件で削除するように構成しても良い。このようにＲＡＭ１０３から削除することで、ＲＡＭ１０３の使用領域を削減することができるのみならず、種種の効果が期待できる。例えば、ＴＣＢから削除されたコネクション情報に関連するタイマエントリ情報をキャッシュメモリ２０３から削除するように構成すれば、キャッシュフラッシュ処理においてＲＡＭ１０３へのアクセス（そのタイマエントリ情報のライトバック）が発生しなくなる。その結果、処理速度の向上やＲＡＭ１０３へのアクセスによるバス負荷の低減、消費電力の低減等の効果が期待できる。
【００５５】
また、本実施形態においては、活性化しているタイマ（アクティブフラグがセットされているタイマ）全てをフリーランタイマのカウントアップのタイミングでタイムアウトしているかの確認を行っているがこれに限られるものではない。たとえば、タイムアウトまでの周期が長いタイマに対してはより長い周期（例えば、フリーランカウンタの所定回数カウントアップ毎等）で確認するように構成しても良い。こうすることで、フリーランカウンタのカウントアップ毎のＲＡＭ１０３へのアクセス量を抑制することができ、処理速度の向上やＲＡＭ１０３へのアクセスによるバス負荷の低減、消費電力の低減等の効果が期待できる。
【００５６】
以上のように、上記実施形態によれば、キャッシュが実装されたネットワークタイマ管理装置において、ネットワーク通信におけるコネクションの状態を基にキャッシュ制御が行われる。このため、キャッシュの再利用性が向上し、共有メモリ及びシステムバスの競合によるパフォーマンスの低下を抑制することができる。また、共有メモリ及びシステムバスの使用率を減少することができ、消費電力を抑制することができる。
【００５７】
さらに上記実施形態のタイマ開始要求の処理、キャッシュプリロード処理によれば、ＴＣＢ（コネクション情報）の参照により新規のコネクションの追加に応じて、当該コネクション情報がキャッシュされる。このため、キャッシュによるタイマ制御を行う場合にキャッシュヒット率を向上させることができる。
【００５８】
さらに、上記実施形態のフラッシュ処理によれば、クローズされた既存のコネクションに関連するタイマエントリ情報のキャッシュ占有率が抑制される。このため、他のコネクションによるタイマ制御を行う場合にキャッシュを有効に利用することができる。
【００５９】
さらに、上記実施形態のキャッシュロック処理によれば、確立されているコネクションに関連するタイムアウト情報がキャッシュからフラッシュされることが抑制される。そのため、当該コネクションによるタイマ制御を行う場合にキャッシュヒット率を向上することができる。
【図面の簡単な説明】
【００６０】
【図１】本発明の実施形態に係るネットワークプロトコル処理システムの構成例を示すブロック図である。
【図２】本発明の実施形態に係るネットワークタイマ管理コントローラの構成例を示すブロック図である。
【図３】本発明の実施形態に係るタイマ開始処理を示すフローチャートである。
【図４】本発明の実施形態に係るタイマ停止処理を示すフローチャートである。
【図５】本発明の実施形態に係るタイマ管理処理を示すフローチャートである。
【図６】本発明の実施形態に係るキャッシュ制御処理を示すフローチャートである。
【図７】本発明の実施形態に係るキャッシュロック処理を示すフローチャートである。
【図８】本発明の実施形態に係るキャッシュフラッシュ処理を示すフローチャートである。
【図９】本発明の実施形態に係るキャッシュプリロード処理を示すフローチャートである。
【図１】
0005049763.tif 000002
【図２】
0005049763.tif 000003
【図３】
0005049763.tif 000004
【図４】
0005049763.tif 000005
【図５】
0005049763.tif 000006
【図６】
0005049763.tif 000007
【図７】
0005049763.tif 000008
【図８】
0005049763.tif 000009
【図９】
0005049763.tif 000010