説明

ネットワークタイマ管理方法及び装置

【課題】ネットワークタイマ管理に適したキャッシュ制御を実現し、キャッシュの再利用性を向上させることを
【解決手段】処理装置によって形成されたネットワーク通信において用いられるタイマを管理するネットワークタイマ管理装置は、タイマ毎に、タイムアウトまでの計数値を含むタイマ情報をキャッシュするキャッシュメモリを有し、タイマ毎に、キャッシュメモリにキャッシュされたタイマ情報を用いてタイムアウトを判定し、タイムアウトを検出した場合に処理装置へ通知する。処理装置は、ネットワーク通信において現在確立されているコネクションに関するコネクション情報を生成しており、ネットワークタイマ管理装置は、このコネクション情報に基づいて、キャッシュメモリにおけるタイマ情報のキャッシュを制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークプロトコル処理におけるネットワークタイマ管理方法及び装置に関するものであり、例えば、TCP/IPネットワークにおけるタイマ管理に好適なものである。
【背景技術】
【0002】
従来から、ネットワークプロトコル処理の一環として、ネットワークタイマ管理が行われている。ネットワークタイマ管理では、確立されたコネクション毎にACKタイマや持続タイマ等の複数種類のタイマが管理対象となる。管理対象のタイマは、ネットワークプロトコル処理において、必要とされるタイミングでCPU等の処理装置により起動される。そして、管理対象のタイマがタイムアウトした場合は、当該コネクションとタイマ種別に応じて所定の処理が行われる。一方、タイムアウトする前に所定の事象が発生しタイマの必要性がなくなった場合は、当該タイマに対し停止処理が行われる。上述したネットワークタイマ処理の実装例としては、ソフトウェアによるタイマ管理手法が挙げられる(特許文献1)。
【0003】
また、近年は処理装置が行うべきネットワークタイマ処理の一部をハードウェアが代替するタイマ管理方法が採用されてきている。この方式では、以下の2つの処理をハードウェアが代替する。すなわち、
(1)タイマ起動及びタイマ停止を行う場合の記憶装置へのタイマ情報の登録、編集、削除処理、及び
(2)周期タイマにより割り込みが発生した場合に行われる、起動中のタイマがタイムアウトしているか否かの確認、である。
ここで上記(1)及び(2)の処理を代替するハードウェア装置をネットワークタイマ管理装置と呼ぶこととする。
【0004】
ネットワークタイマ管理装置は、処理装置がタイマ起動要求及び停止要求を行った場合に上記(1)の処理を行う。より具体的には以下の手順で行う。まず、処理装置はネットワークタイマ管理装置に対し、コネクション種別、タイマ種別、タイムアウト時間等の情報とともにタイマ起動要求を行う。このタイマ起動要求を受けたネットワーク管理装置は、記憶装置へタイマ情報を登録し、当該タイマが起動されていることを示す起動フラグをセットする(編集)。一方、処理装置がネットワークタイマ管理装置に対し、タイマ停止要求を行った場合は、記憶装置内の対象タイマのタイマ情報を検索し、対応する起動フラグを無効化(編集)または削除する。
【0005】
また、ネットワークタイマ管理装置は、周期タイマによる割り込みの通知を受けた場合に上記(2)の処理を行う。より具体的には以下の手順で行う。即ち、周期タイマからの通知を受けたとき、ネットワークタイマ管理装置は記憶装置内のタイマ情報を読み出し、起動フラグがセットされていて、かつタイムアウトしているタイマが存在するかを調べる。そして、そのようなタイマを検出した場合、ネットワークタイマ管理装置は当該タイムアウトを通知するため割り込み信号を処理装置へ発行する。
【特許文献1】特開平10−307767号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら上述したネットワークタイマ管理装置では、タイマ情報が格納される記憶装置は、処理装置とネットワークタイマ管理装置との共有メモリである場合が一般的である。そのため、当該共有メモリへのアクセス量によってはシステムバス競合、共有メモリへのアクセス競合が発生し、システム全体のパフォーマンス低下が懸念される。さらに、メモリアクセスの増加が消費電力の増大も引き起こすことも懸念される。
【0007】
共有メモリへのアクセス量の抑制のため、ネットワークタイマ管理装置に内部キャッシュを実装することが考えられる。しかしながら、ネットワークプロトコル処理においては、コネクションの状態やタイマ種別により再利用率や利用周期が大きく変わるため、単純なキャッシュ制御(例えば周知のFIFOやLRU等)ではキャッシュ使用効率が上がらないという課題があった。キャッシュ使用効率の低下は、共有メモリへのアクセス量の増大を意味し、上述した課題の発生が懸念される。
【0008】
本発明は、上述の課題を鑑みてなされたものであり、ネットワークタイマ管理に適したキャッシュ制御を実現し、キャッシュの再利用性を向上させることを目的とする。
【課題を解決するための手段】
【0009】
上記の目的を達成するための本発明の一態様によるネットワークタイマ管理装置は以下の構成を備える。すなわち、
処理装置によって形成されたネットワーク通信において用いられるタイマを管理するネットワークタイマ管理装置であって、
タイマ毎に、タイムアウトまでの計数値を含むタイマ情報をキャッシュするキャッシュメモリと、
タイマ毎に、前記キャッシュメモリにキャッシュされたタイマ情報を用いてタイムアウトを判定する判定手段と、
前記判定手段でタイムアウトを検出した場合に前記処理装置へ通知する通知手段と、
前記処理装置が生成する、前記ネットワーク通信において現在確立されているコネクションに関するコネクション情報に基づいて、前記キャッシュメモリにおけるタイマ情報のキャッシュを制御するキャッシュ制御手段とを備える。
【0010】
また、上記の目的を達成するための本発明の一態様によるネットワークタイマ管理方法は、
タイマ毎に、タイムアウトまでの計数値を含むタイマ情報をキャッシュするキャッシュメモリを用いて、処理装置によって形成されたネットワーク通信において用いられるタイマを管理するネットワークタイマ管理方法であって、
タイマ毎に、前記キャッシュメモリにキャッシュされたタイマ情報を用いてタイムアウトを判定する判定工程と、
前記判定工程でタイムアウトを検出した場合に前記処理装置へ通知する通知工程と、
前記処理装置が生成する、前記ネットワーク通信において現在確立されているコネクションに関するコネクション情報に基づいて、前記キャッシュメモリにおけるタイマ情報のキャッシュを制御するキャッシュ制御工程とを備える。
【発明の効果】
【0011】
本発明によれば、ネットワークタイマ管理に適したキャッシュ制御を実現し、キャッシュの再利用性を向上させることが可能となる。
【発明を実施するための最良の形態】
【0012】
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
【0013】
図1は、実施形態によるTCP/IPネットワークプロトコル処理システムの構成例を示すブロック図である。図1において、101はCPUであり、TCP/IPネットワークプロトコル処理をソフトウェアにより実行する。102はROMであり、CPU101が実行する各種処理のためのソフトウェアが格納されている。103はRAMであり(例えば、ダイナミックRAM(DRAM))、CPU101の実行ワークエリアとして使用される。また、RAM103には、TCP/IPネットワークプロトコル処理を実行するために必要となる各種データが格納される。そのようなデータには、TCP/IPネットワーク通信において送受信するデータ、TCB(Transmission Control Block)及びネットワークタイマの管理データが含まれる。尚、TCBは、現在確立されているコネクションの状態を示す情報(コネクション情報)を格納する周知のデータ構造である。また、以下では、「ネットワークタイマの管理データ」をタイマエントリ情報と呼ぶこととする。
【0014】
104はネットワークタイマ管理コントローラであり、処理装置(CPU101)が行うべきネットワークタイマ処理の一部を代替する。即ち、処理装置によって形成されたネットワーク通信において用いられるタイマを管理するネットワークタイマ管理装置として機能する。108は該ネットワークタイマ管理コントローラ104が発生するCPU101への割り込み信号である。105はMAC(Media Access Controller)、106はPHY(PHYsical layer)であり、TCP/IPネットワーク通信制御を行う。107はDMAC(DirectMemoryAccessController)であり、TCP/IPネットワーク通信で送受信するデータのRAM103とMAC105間の転送を管轄する。109はバスであり、CPU101、ROM102、RAM103、ネットワークタイマ管理コントローラ104、MAC105、DMAC107を相互接続する。
【0015】
尚、例えば、ネットワークタイマ管理コントローラ104、MAC105、PHY106、DMAC107は、所謂ネットワークインターフェースボードを構成するようにしてもよい。この場合、このようなネットワークインターフェースボードは、CPU101,ROM102、RAM103、バス109を有する処理装置に装着され、ネットワーク通信を実現すると共に、処理装置が行うべきネットワークタイマの管理の一部を実行する。
【0016】
図2は、ネットワークタイマ管理コントローラ104の内部の構成例を示すブロック図である。図2において、201はフリーランタイマであり、設定された周期毎に比較器202にタイミング信号を通知する。尚、本実施形態においては、フリーランタイマ201はネットワークタイマ管理コントローラ104の構成要素としているが、ネットワークタイマ管理コントローラ104の外部に位置していても良い。202は比較器であり、フリーランタイマ201からの通知を受けてキャッシュメモリ203内のタイマエントリ情報内のタイムアウトカウントを減算し、減算結果を0と比較することによりタイムアウトか否かを判定する(詳細は後述する)。比較器202は、タイムアウトしているタイマがあると判定した場合には、割り込み信号204を活性化し、処理装置(CPU101)に対してタイムアウトしたタイマを通知する。割り込み信号204は図1における割り込み信号108に直結する。
【0017】
203はキャッシュメモリであり、比較器202に対しタイマエントリ情報を提供する。205はタイマ情報管理コントローラであり、バス109へのアクセスインタフェースを具備し、当該アクセスインタフェースを通してRAM103内のタイマエントリ情報及びTCBへアクセスする。そして、タイマ情報管理コントローラ205は、必要に応じてタイマエントリ情報をキャッシュメモリ203にキャッシュする。以上のように、タイマ情報管理コントローラ205は、タイマ毎に、タイムアウトまでの計数値(タイムアカウント数)を含むタイマ情報(タイマエントリ情報)をキャッシュメモリ203にキャッシュする。そして、比較器202は、フリーランタイマ201からの信号に応じて、タイマ毎に、キャッシュメモリ203にキャッシュされたタイマ情報を用いてタイムアウトを判定する。
【0018】
ネットワークタイマ管理コントローラ104は、CPU101からタイマ管理開始要求を受けることで、後述するタイマ管理、及びキャッシュ管理を開始する。当該タイマ管理、及びキャッシュ管理はCPU101からタイマ管理停止要求を受けるまで継続される。タイマ管理を開始したネットワークタイマ管理コントローラ104は、CPU101からタイマ開始要求を受け、当該タイマを登録しタイムアウトした場合にCPU101へタイムアウト通知を行う。一方、CPU101からタイマ停止要求を受けた場合は、当該タイマの停止処理を行う。以下、ネットワークタイマ管理コントローラ104が扱うタイマエントリ情報の構造を説明する。また、ネットワークタイマ管理コントローラ104によるタイマ開始要求を受けた場合のタイマ開始処理、タイマ停止要求を受けた場合のタイマ停止処理、及び継続して行うタイマ管理について説明する。
【0019】
タイマエントリ情報は、図2に示されるように、
・コネクションID:当該タイマが関連するコネクションを示す、
・タイマID:TCP/IPネットワークタイマにおけるACKタイマ、持続タイマ等のタイマの種別を示す、
・タイムアウトカウント数:当該タイマがタイムアウトするまでのカウント数を示す、
・アクティブフラグ:当該タイマが有効であるかどうかを示す、
を含む。
【0020】
タイムアウトカウント数は、フリーランタイマ201の周期毎に(クロック入力毎に)1ずつ減算され、減算の結果“0”になった場合は当該タイマがタイムアウトしたことを意味する。このタイムアウトカウント数は、フリーランタイマ201の処理周期におけるカウント数であり、CPU101によって実際のタイムアウト時間から算出される。例えば、フリーランタイマ201が1MHzで動作している場合、10ms(ミリ秒)のタイムアウト時間は10000カウントと算出される。また、アクティブフラグがセットされていない場合は、タイムアウトカウント数の減算は行われず、その結果、当該タイマのタイムアウトは発生しない。
【0021】
図3はネットワークタイマ管理コントローラ104によるタイマ開始処理を示すフローチャートである。ネットワークタイマ管理コントローラ104は、CPU101からタイマ開始要求を受けることでタイマ開始処理を開始する。まず、ステップS301において、タイマ情報管理コントローラ205は、受信したタイマ開始要求によって指定されたタイマ(開始要求タイマという)のタイマエントリ情報が、キャッシュメモリ203に既に登録されているか検索する。より具体的には、CPU101は起動すべきタイマ、即ち開始要求タイマをコネクションIDとタイマIDにより指定する。タイマ情報管理コントローラ205は、キャッシュメモリ203において、開始要求タイマのコネクションID及びタイマIDが一致するタイマエントリ情報を検索する。この検索の結果、キャッシュメモリ203内に開始要求タイマのタイマエントリ情報が存在した場合、処理はステップS302からステップS303へ進む。ステップS303では、タイマ情報管理コントローラ205は、当該タイマエントリ情報のアクティブフラグをセット(有効化)する。
【0022】
一方、ステップS302でキャッシュメモリ203内に開始要求タイマのタイマエントリ情報が存在しないと判定された場合、処理はステップS302からステップS304へ進む。ステップS304において、タイマ情報管理コントローラ205は、RAM103に当該開始要求タイマのタイマエントリ情報が登録されているか検索する。検索の結果、RAM103内に当該開始要求タイマのタイマエントリ情報が存在した場合は、ステップS305からステップS303へ処理を進め、上述したように当該タイマエントリ情報のアクティブフラグをセット(有効化)する。但し、この場合は、RAM103内のタイマエントリ情報のアクティブフラグがセットされる。
【0023】
ステップS305でRAM103内にも開始要求タイマのタイマエントリ情報が存在しない場合は、処理はステップS306に進む。ステップS306において、タイマ情報管理コントローラ205は、キャッシュメモリ203に空きがあるか否かを確認する。キャッシュメモリ203に空きがあった場合、ステップS307において、タイマ情報管理コントローラ205は、登録タイマのタイマエントリ情報をキャッシュメモリ203に格納する。一方、キャッシュメモリ203に空きがない場合は、ステップS308において、タイマ情報管理コントローラ205は、登録タイマのタイマエントリ情報をRAM103に格納する。キャッシュメモリ203及びRAM103いずれに登録した場合も、ステップS304で当該タイマエントリ情報のアクティブフラグがセット(有効化)され、タイマ開始処理を完了する。
【0024】
尚、ステップS305でRAM103に対象のタイマエントリ情報が見つかった場合で、かつキャッシュメモリ203に空きがある場合は、当該タイマエントリ情報をキャッシュメモリ203にロードするように構成しても良い。
【0025】
次に、ネットワークタイマ管理コントローラ104によるタイマ停止処理について説明する。図4はタイマ停止処理を示すフローチャートである。ネットワークタイマ管理コントローラ104は、CPU101からタイマ停止要求を受けることでタイマ停止処理を開始する。まず、ステップS401において、タイマ情報管理コントローラ205は、タイマ停止要求によって指定されたタイマ(以下、停止要求タイマという)のタイマエントリ情報がキャッシュメモリ203に含まれているか検索する。より、具体的には、CPU101は停止すべきタイマ、即ち停止要求タイマをコネクションIDとタイマIDにより指定する。タイマ情報管理コントローラ205は、キャッシュメモリ203において、停止要求タイマのコネクションID及びタイマIDが一致するタイマエントリ情報を検索する。この検索の結果、キャッシュメモリ203内に停止要求タイマのエントリ情報が存在すると判定された場合、処理はステップS402からステップS403へ進む。ステップS403において、タイマ情報管理コントローラ205は、当該タイマエントリ情報のアクティブフラグをリセット(無効化)する。
【0026】
一方、ステップS402でキャッシュメモリ203内に停止要求タイマのタイマエントリ情報が存在しないと判定された場合、処理はステップS402からステップS404へ進む。ステップS404において、タイマ情報管理コントローラ205は、RAM103に停止要求タイマのタイマエントリ情報が含まれているか検索する。検索の結果、RAM103内に停止要求タイマのタイマエントリ情報が存在した場合、処理はステップS405からステップS403へ進み、当該タイマエントリ情報のアクティブフラグがリセット(無効化)される。当該タイマエントリ情報がRAM103内にも存在しなかった場合は、停止すべきタイマが存在しないので、何もせず停止処理を完了する。
【0027】
また、ステップS403でアクティブフラグをリセットしたタイマエントリ情報を、キャッシュメモリ203からフラッシュし、RAM103へ追い出すように構成しても良い。こうすることで、キャッシュメモリ203の利用効率を向上することができる。ただし、追い出したタイマエントリ情報の再利用(CPU101によるタイマ開始要求)が発生した場合は、タイマ情報管理コントローラ205がRAM103へアクセスしなければならなくなり、逆に利用効率が低下する可能性もある。なお、キャッシュ制御において、キャッシュデータをキャッシュから追い出す処理として、フラッシュ、クリーンという用語が用いられる。一般には、フラッシュはキャッシュデータを破棄(キャッシュデータの削除または該当領域の解放)すると共にライトバックする処理を含み、クリーンは単にキャッシュデータを破棄する処理をさす。しかしながら、フラッシュ及びクリーンのいずれの場合もキャッシュメモリからキャッシュデータを「破棄」するものであり、本明細書ではこれらを総称して「フラッシュ」と称することにする。
【0028】
続いて、ネットワークタイマ管理コントローラ104におけるタイマ管理について説明する。図5はネットワークタイマ管理コントローラ104が行うタイマ管理処理を示すフローチャートである。ネットワークタイマ管理コントローラ104は、CPU101からタイマ管理開始要求を受けることでステップS501以降のタイマ管理処理を開始する。
【0029】
タイマ管理開始要求を受信すると、タイマ情報管理コントローラ205は比較器202にタイマ管理処理を開始させる。タイマ管理処理の開始指示を受けた比較器202は、ステップS501でフリーランタイマ201のカウントアップを待つ。フリーランタイマ201のカウントアップが行われると、ステップS502からステップS513まで処理が次のカウントアップまでに行われる。ステップS501〜S513の処理は、フリーランタイマ201のカウントアップ毎に繰り返し行われる。以下、ステップS502〜S513の処理について説明する。
【0030】
まず、ステップS502でキャッシュメモリ203内のタイマエントリ情報が一つ選択される。ステップS503において、比較器202は、ステップS502で選択したタイマエントリ情報のアクティブフラグがセットされているかを確認する。アクティブフラグがセットされていた場合は、処理はステップS503からステップS504へ進む。ステップS504において、比較器202は、ステップS502で選択したタイマエントリ情報のタイムアウトカウント数を1減算する。続いてステップS505で、比較器202は、減算の結果タイムアウトカウント数が“0”になったか否かを確認する。そして、“0”になった場合は、処理はステップS506へ進み、比較器202は、割り込み信号108を介してCPU101へタイムアウト通知を行う。
【0031】
ステップS506でタイムアウト通知を行った場合、ステップS505で“0”にならなかった場合、及びステップS503でアクティブフラグがセットされていなかった場合のいずれの場合も、処理はステップS507へ進む。ステップS507において、比較器202は、キャッシュメモリ203内にまだ選択されていないタイマエントリ情報が存在するかを確認する。確認の結果存在する場合は、処理はステップS502に戻り、選択されていないタイマエントリ情報に対して上記の処理を繰り返し行う。ステップS507でキャッシュメモリ203に選択されていないタイマエントリ情報が残っていないと判断された場合は、処理はステップS508へ進む。ステップS508〜S513では、RAM103内のタイマエントリ情報に対して、上記ステップS502〜S507と同様の処理を行う。
【0032】
以上説明したタイマ管理処理中に、CPU101からタイマ管理終了要求を受けた場合は、タイマ情報管理コントローラ205は、いずれの処理中であっても、比較器202によるタイマ管理処理を終了させる。一旦タイマ管理処理を終了した場合は、次にタイマ管理開始要求を受けるまでは何もせず、タイマ管理開始要求を受けた場合は再度ステップS501からの処理を比較器202に開始させる。
【0033】
以上説明したネットワークタイマ管理コントローラ104によるタイマ管理処理、タイマ開始処理、及びタイマ停止処理により、CPU101はタイマ開始要求を行うことで当該タイマがタイムアウトした場合に割込み通知を受けることができる。また、CPU101は、タイムアウトする前にタイマ停止要求を行うことで、タイマ管理処理対象から当該停止要求タイマを除外させることができる。一方、一度登録されたタイマエントリ情報は、ネットワークタイマ管理コントローラ104の管理下(キャッシュメモリ203、もしくはRAM103内)に置かれるため、再度同じタイマのタイマ開始要求を行ったときに再利用され得る。このとき、キャッシュメモリ203内に再利用対象のタイマエントリ情報が存在した場合は、高速にタイマ開始処理を行えるばかりでなく、RAM103へのアクセスを抑制することができる。
【0034】
次に、タイマ情報管理コントローラ205によるキャッシュ管理について説明する。キャッシュ管理は、上述のタイマ管理と同様にCPU101によるタイマ管理開始要求を受けることで開始し、タイマ管理停止要求を受けるまで継続される。このキャッシュ管理では、RAM103に保持されているTCBの内容を基に後述するキャッシュ制御処理が繰り返し行われる。TCBとはTCP/IPネットワークプロトコル処理で使用されるデータブロックであり、ネットワーク通信において確立されているコネクションの情報が格納されている。つまり、新しいコネクションが確立されたときにはTCBに当該コネクションの情報が追加され、所定のコネクションが切断されたときにはTCBから当該コネクションの情報が削除される。また、コネクションの状態が変更された場合は、TCB内の当該コネクションの情報が修正されることになる。
【0035】
キャッシュ管理において繰り返し行われるキャッシュ制御処理は、TCBの内容を基に行われるため、TCBの変更のタイミングで行うことが望ましい。よって、本実施形態においてはCPU101が、TCBの変更を行ったときにネットワークタイマ管理コントローラ104にキャッシュ制御要求を行うこととする。そして、ネットワークタイマ管理コントローラ104は、当該キャッシュ制御要求を受けたときに、後述するキャッシュ制御処理を行うこととする。ただし、CPU101によるキャッシュ制御要求の発行は、CPU101の処理負荷の増大や既存ソフトウェアの変更を引き起こす可能性がある。従って、これを回避したい場合には、ネットワークタイマ管理コントローラ104が、例えば内部のフリーランタイマ201を用いる等の方法で、定期的にキャッシュ制御処理を行うように構成してもよい。このとき、キャッシュ制御要求は、ネットワークタイマ管理コントローラ104の内部で自動的に生成されることとなる。
【0036】
以下、ネットワークタイマ管理コントローラ104において、キャッシュ制御要求を受けた場合に行われるキャッシュ制御処理について説明する。キャッシュ制御処理は、大きくは、キャッシュロック処理、キャッシュフラッシュ処理、キャッシュプリロード処理の3つの処理の分けられる。以下、キャッシュ制御処理の全体的な処理を図6を参照して説明する。また、上記3つのそれぞれの処理について、図7〜図9を参照して説明する。
【0037】
図6は、ネットワークタイマ管理コントローラ104によるキャッシュ制御処理を示すフローチャートである。ネットワークタイマ管理コントローラ104は、キャッシュ制御要求を受けたときにキャッシュ制御処理を開始する。
【0038】
まず、ステップS601において、タイマ情報管理コントローラ205は、RAM103からTCBを読み出す(ロードする)。ロードされたTCBの全体は、例えばタイマ情報管理コントローラ205内のレジスタやキャッシュ(不図示)に保持される。その後、タイマ情報管理コントローラ205は、ステップS602においてキャッシュロック処理、ステップS603でキャッシュフラッシュ処理、ステップS604でキャッシュプリロード処理を行い、一旦キャッシュ制御処理を完了する。その後、CPU101からタイマ管理終了要求をうけるまで、キャッシュ制御要求毎に、ステップS601からステップS604の処理を繰り返し行う。
【0039】
以下、キャッシュロック処理、キャッシュフラッシュ処理、及びキャッシュプリロード処理のシーケンスを具体的に説明する。
【0040】
図7は、ネットワークタイマ管理コントローラ104によるキャッシュ制御処理の一つであるキャッシュロック処理を示すフローチャートである。まずステップS701において、タイマ情報管理コントローラ205は、キャッシュメモリ203内のタイマエントリ情報を一つ選択する。続いてステップS702において、タイマ情報管理コントローラ205は、当該タイマエントリ情報のコネクションIDを基に、当該コネクションがTCB内に存在するかを確認する。確認の結果、存在する場合は、処理はステップS702からステップS703へ進む。ステップS703において、タイマ情報管理コントローラ205は、当該タイマエントリ情報が格納されているキャッシュエントリにロックをかける。ロックをかけられたキャッシュエントリはフラッシュの対象外となる。換言すれば、このキャッシュロック処理によってロック状態となったキャッシュエントリに対するフラッシュは禁止される。
【0041】
ステップS702でTCB内にコネクション情報が存在しないと判定された場合、及びステップS703でキャッシュロックを行った場合のいずれにおいても、処理はステップS704へ進む。ステップS704において、タイマ情報管理コントローラ205は、キャッシュメモリ203内にまだ選択されていないタイマエントリ情報が存在するかを確認する。確認の結果、存在すると判定された場合は、処理はステップS704からステップS701に戻り、選択されていないタイマエントリ情報に対して、上記処理を繰り返し行う。ステップS704でキャッシュメモリ203に選択されていないタイマエントリ情報が存在しないと判定された場合は、当該キャッシュロック処理を完了する。このように、ネットワークタイマ管理コントローラ104は、キャッシュメモリ203にキャッシュされているタイマエントリ情報に対応するTCB(コネクションに関するコネクション情報)が存在するか確認する。そして、対応するTCBが存在する場合に、ネットワークタイマ管理コントローラ104は、当該タイマエントリ情報を、キャッシュメモリ203からフラッシュされることが禁止されたロック状態とする。
【0042】
図8は、ネットワークタイマ管理コントローラ104によるキャッシュ制御処理の一つであるキャッシュフラッシュ処理を示すフローチャートである。まずステップS801において、タイマ情報管理コントローラ205は、キャッシュメモリ203内のタイマエントリ情報を一つ選択する。続いてステップS802において、タイマ情報管理コントローラ205は、当該タイマエントリ情報のコネクションIDを基に、当該コネクションがTCB内に存在するかを確認する。確認の結果、存在しないと判定された場合は、処理はステップS803へ進む。ステップS803において、タイマ情報管理コントローラ205は、当該タイマエントリ情報をキャッシュメモリ203からフラッシュ(RAM103へライトバック)する。このとき、図7で上述したキャッシュロック処理によって対象のキャッシュエントリがロックをかけられていた場合は、キャッシュロックを解除してフラッシュする。このように、ネットワークタイマ管理コントローラ104は、キャッシュメモリ203にキャッシュされているタイマエントリ情報に対応するTCB(コネクションに関するコネクション情報)が存在するか確認する。そして、対応するTCBが存在しない場合に、ネットワークタイマ管理コントローラ104は、キャッシュメモリ203から当該タイマエントリ情報をフラッシュする。
【0043】
ステップS802において、TCB内に当該タイマエントリ情報に対応するコネクション情報が存在すると判定された場合、及びステップS803でキャッシュロックを行った場合のいずれにおいても、処理はステップS804へ進む。ステップS804において、タイマ情報管理コントローラ205は、キャッシュメモリ203内にまだ選択されていないタイマエントリ情報が存在するかを確認する。確認の結果存在すると判定された場合は、処理はステップS801に戻り、選択されていないタイマエントリ情報に対して上述の処理を繰り返し行う。ステップS804において、キャッシュメモリ203に選択されていないタイマエントリ情報はなかった場合は、当該キャッシュフラッシュ処理を完了する。
【0044】
図9は、ネットワークタイマ管理コントローラ104によるキャッシュ制御処理の一つであるキャッシュプリロード処理を示すフローチャート図である。タイマ情報管理コントローラ205は、まずステップS901において、キャッシュメモリ203に空きがあるかを確認する。確認の結果空きがあると判定された場合は、ステップS902において、タイマ情報管理コントローラ205はTCB内のコネクション情報を一つ選択する。続いてステップS903において、タイマ情報管理コントローラ205は、当該コネクション情報に関連するタイマエントリ情報がキャッシュメモリ203に格納されているかを検索する。検索の結果、存在していると判定された場合は何も行わない。含まれていないと判定された場合は、処理はステップS904からステップS905へ進む。ステップS905において、タイマ情報管理コントローラ205は、当該タイマ情報管理コントローラエントリ情報がRAM103に格納されているかを検索する。検索の結果、存在していると判定された場合は、ステップS907において、タイマ情報管理コントローラ205は当該タイマエントリ情報をキャッシュメモリ203にロードする。存在しないと判定された場合は、ステップS908において、タイマ情報管理コントローラ205はキャッシュメモリ203にタイマエントリ情報を新規に登録する。
【0045】
・ステップS904で既に対象のタイマエントリ情報がキャッシュメモリ203に登録されていた場合、
・ステップS907で対象のタイマエントリ情報をキャッシュにロードした場合、及び
・ステップS908で新規にキャッシュメモリ203に対象のタイマエントリ情報を登録した場合、のいずれにおいても、処理はステップS909へ進む。ステップS909で、タイマ情報管理コントローラ205は、RAM103内のTCBにまだ選択されていないコネクション情報が存在するかを確認する。確認の結果存在すると判定された場合は、処理はステップS901に戻り、選択されていないコネクション情報に対して上記の処理を繰り返し行う。一方、ステップS909において、TCBに選択されていないコネクション情報が存在しなかった場合、及びステップS901でキャッシュメモリ203に空きがないと判断された場合は、キャッシュプリロード処理を完了する。
【0046】
以上説明した実施形態のネットワークタイマ管理コントローラによれば、ネットワーク通信において現在確立されているコネクションに関するコネクション情報(TCB)が参照される。そして、このコネクション情報に基づいて、キャッシュメモリ203におけるタイマ情報のキャッシュが制御される。そのため、ネットワークタイマ管理に適したキャッシュ制御を実現し、キャッシュの再利用性を向上させることができる。
【0047】
尚、キャッシュプリロード処理では、TCBのコネクション情報からアクティブなコネクションに関連するタイマエントリ情報を優先的にキャッシュに格納するようにしてもよい。このようにすれば、ネットワークタイマのタイマエントリ情報に関して内部のキャッシュ使用効率を向上させることができる。キャッシュの使用効率の向上は、RAM103へのアクセス回数の低減を意味し、よって、バスアクセス負荷の低減及び消費電力の低減が期待できる。
【0048】
尚、本実施形態においては、キャッシュロック処理によりTCBに含まれているコネクションに関連するタイマエントリ情報に対しキャッシュロックを行っている。しかしながら、キャッシュフラッシュは図8に示したキャッシュフラッシュ処理においてのみ行うように構成すれば、キャッシュフラッシュはTCB内に含まれているかを確認して行うため、キャッシュロック処理を省略するように構成することも可能である。こうすることで、キャッシュロック処理の分だけ処理負荷を軽減することができ、実装負荷の軽減や処理速度の向上、消費電力の低減等の効果が期待できる。
【0049】
また、本実施形態においては、キャッシュフラッシュ処理においてTCB内に含まれていないコネクションに関連するタイマエントリ情報を対象にキャッシュフラッシュを行っているが、これに限られるものではない。例えば、図7のキャッシュロック処理において、ステップS702でNOであった場合に、当該コネクションIDのタイマエントリ情報のキャッシュロックを解除しておく。そして、図8のキャッシュフラッシュ処理では、ステップS802においてキャッシュロックされているかを確認しキャッシュロックされていないタイマエントリ情報のみを対象にキャッシュフラッシュを行うように構成しても良い。こうすることで、キャッシュフラッシュ処理はTCBの内容に関わらず処理を進めることができるため、例えば所定の周期毎や、キャッシュにタイマエントリ情報を追加したいタイミングでキャッシュフラッシュ処理を行うことが可能となる。これにより、よりキャッシュの使用効率の向上が期待できる。
【0050】
また、本実施形態においては、キャッシュプリロード処理において、プリロードするタイマ種別に関しては明言していないが、特定のタイマ種別のタイマエントリ情報を選択的にプリロードするようにしてもよい。例えば、TCP/IPプロトコル処理においては使用頻度の高いタイマや低いタイマや、タイムアウト周期の長いタイマや短いタイマが存在する。従って、タイマ種別に優先度を設定して優先度の高いタイマ種別から処理を行う、もしくは優先度の高いタイマ種別のみを対象にタイマエントリ情報を準備するように構成しても良い。こうすることで、上記実施形態ではキャッシュに空きがなくなってしまった場合にプリロードの対象とならなかった使用頻度の高いタイマやタイムアウト周期の短いタイマのタイマエントリ情報がキャッシュにプリロードされやすくすることができる。このため、キャッシュの使用効率をより向上させることができ、処理速度の向上やRAM103へのアクセスによるバス負荷の低減、消費電力の低減等の効果が期待できる。
【0051】
同じように、本実施形態においては、キャッシュロック処理、及びキャッシュフラッシュ処理において、タイマ種別に関わらずTCB内に存在するか否かでキャッシュロック、及びキャッシュフラッシュを行っている。しかしながら、優先度の高いタイマ種別のみを対象にキャッシュロックを実行するようにしてもよい。及び/または、優先度の低いタイマ種別はTCBに含まれるコネクション情報に関連するタイマであってもキャッシュフラッシュの実行を行うように構成してもよい。こうすることで、キャッシュの使用効率をより向上させることができ、処理速度の向上やRAM103へのアクセスによるバス負荷の低減、消費電力の低減等の効果が期待できる。
【0052】
同じように、本実施形態においては、タイマ開始処理において、タイマ種別に関わらずキャッシュに空きがある場合はキャッシュにタイマエントリ情報を格納しているが、これに限られるものではない。例えば、優先度の高いタイマ種別のみを対象にキャッシュへの格納を許すように構成してもよい。こうすることで、キャッシュの使用効率をより向上させることができ、処理速度の向上やDRAMへのアクセスによるバス負荷の低減、消費電力の低減等の効果が期待できる。
【0053】
また、本実施形態においては、キャッシュ制御処理においてロードしたTCBのみを基に処理を行っているが、前回ロードしたTCBを残しておき比較することが可能なように構成してもよい。このようにすれば、新規に追加されたコネクション情報、及び削除されたコネクション情報をより簡便に検出することが可能となる。そして、これら検出されたコネクションについて、キャッシュロック処理、キャッシュフラッシュ処理、及びキャッシュプリロード処理を行うようにすれば、これらの処理をより高速に実行することが可能となる。
【0054】
また、本実施形態においては、RAM103やキャッシュメモリ203に登録したタイマエントリ情報の削除に関して述べてはいないが、所定のタイミングや条件で削除するように構成しても良い。このようにRAM103から削除することで、RAM103の使用領域を削減することができるのみならず、種種の効果が期待できる。例えば、TCBから削除されたコネクション情報に関連するタイマエントリ情報をキャッシュメモリ203から削除するように構成すれば、キャッシュフラッシュ処理においてRAM103へのアクセス(そのタイマエントリ情報のライトバック)が発生しなくなる。その結果、処理速度の向上やRAM103へのアクセスによるバス負荷の低減、消費電力の低減等の効果が期待できる。
【0055】
また、本実施形態においては、活性化しているタイマ(アクティブフラグがセットされているタイマ)全てをフリーランタイマのカウントアップのタイミングでタイムアウトしているかの確認を行っているがこれに限られるものではない。たとえば、タイムアウトまでの周期が長いタイマに対してはより長い周期(例えば、フリーランカウンタの所定回数カウントアップ毎等)で確認するように構成しても良い。こうすることで、フリーランカウンタのカウントアップ毎のRAM103へのアクセス量を抑制することができ、処理速度の向上やRAM103へのアクセスによるバス負荷の低減、消費電力の低減等の効果が期待できる。
【0056】
以上のように、上記実施形態によれば、キャッシュが実装されたネットワークタイマ管理装置において、ネットワーク通信におけるコネクションの状態を基にキャッシュ制御が行われる。このため、キャッシュの再利用性が向上し、共有メモリ及びシステムバスの競合によるパフォーマンスの低下を抑制することができる。また、共有メモリ及びシステムバスの使用率を減少することができ、消費電力を抑制することができる。
【0057】
さらに上記実施形態のタイマ開始要求の処理、キャッシュプリロード処理によれば、TCB(コネクション情報)の参照により新規のコネクションの追加に応じて、当該コネクション情報がキャッシュされる。このため、キャッシュによるタイマ制御を行う場合にキャッシュヒット率を向上させることができる。
【0058】
さらに、上記実施形態のフラッシュ処理によれば、クローズされた既存のコネクションに関連するタイマエントリ情報のキャッシュ占有率が抑制される。このため、他のコネクションによるタイマ制御を行う場合にキャッシュを有効に利用することができる。
【0059】
さらに、上記実施形態のキャッシュロック処理によれば、確立されているコネクションに関連するタイムアウト情報がキャッシュからフラッシュされることが抑制される。そのため、当該コネクションによるタイマ制御を行う場合にキャッシュヒット率を向上することができる。
【図面の簡単な説明】
【0060】
【図1】本発明の実施形態に係るネットワークプロトコル処理システムの構成例を示すブロック図である。
【図2】本発明の実施形態に係るネットワークタイマ管理コントローラの構成例を示すブロック図である。
【図3】本発明の実施形態に係るタイマ開始処理を示すフローチャートである。
【図4】本発明の実施形態に係るタイマ停止処理を示すフローチャートである。
【図5】本発明の実施形態に係るタイマ管理処理を示すフローチャートである。
【図6】本発明の実施形態に係るキャッシュ制御処理を示すフローチャートである。
【図7】本発明の実施形態に係るキャッシュロック処理を示すフローチャートである。
【図8】本発明の実施形態に係るキャッシュフラッシュ処理を示すフローチャートである。
【図9】本発明の実施形態に係るキャッシュプリロード処理を示すフローチャートである。

【特許請求の範囲】
【請求項1】
処理装置によって形成されたネットワーク通信において用いられるタイマを管理するネットワークタイマ管理装置であって、
タイマ毎に、タイムアウトまでの計数値を含むタイマ情報をキャッシュするキャッシュメモリと、
タイマ毎に、前記キャッシュメモリにキャッシュされたタイマ情報を用いてタイムアウトを判定する判定手段と、
前記判定手段でタイムアウトを検出した場合に前記処理装置へ通知する通知手段と、
前記処理装置が生成する、前記ネットワーク通信において現在確立されているコネクションに関するコネクション情報に基づいて、前記キャッシュメモリにおけるタイマ情報のキャッシュを制御するキャッシュ制御手段とを備えることを特徴とするネットワークタイマ管理装置。
【請求項2】
前記キャッシュ制御手段は、前記コネクション情報に存在するコネクションに関わるタイマ情報であって、前記キャッシュメモリにキャッシュされていないタイマ情報が検出された場合に、前記キャッシュメモリに当該検出されたタイマ情報をキャッシュすることを特徴とする請求項1に記載のネットワークタイマ管理装置。
【請求項3】
前記キャッシュ制御手段は、前記キャッシュメモリにキャッシュされているタイマ情報に対応するコネクションに関するコネクション情報が存在しない場合に、前記キャッシュメモリから当該タイマ情報を破棄することを特徴とする請求項1に記載のネットワークタイマ管理装置。
【請求項4】
前記キャッシュ制御手段は、前記キャッシュメモリにキャッシュされているタイマ情報に対応するコネクションに関するコネクション情報が存在する場合に、当該タイマ情報を、前記キャッシュメモリから破棄されることが禁止されたロック状態とすることを特徴とする請求項1に記載のネットワークタイマ管理装置。
【請求項5】
タイマの種別に応じて優先度が設定されており、
前記キャッシュ制御手段は、タイマ情報が示すタイマの種別に応じて設定された優先度に基づいて、当該タイマ情報の前記キャッシュメモリへのキャッシュ及び前記キャッシュメモリからの破棄を制御することを特徴とする請求項1に記載のネットワークタイマ管理装置。
【請求項6】
使用頻度の高いタイマほど前記優先度が高く設定されていることを特徴とする請求項5に記載のネットワークタイマ管理装置。
【請求項7】
タイムアウトの周期が長いタイマほど前記優先度が低く設定されていることを特徴とする請求項5または6に記載のネットワークタイマ管理装置。
【請求項8】
タイマ毎に、タイムアウトまでの計数値を含むタイマ情報をキャッシュするキャッシュメモリを用いて、処理装置によって形成されたネットワーク通信において用いられるタイマを管理するネットワークタイマ管理方法であって、
タイマ毎に、前記キャッシュメモリにキャッシュされたタイマ情報を用いてタイムアウトを判定する判定工程と、
前記判定工程でタイムアウトを検出した場合に前記処理装置へ通知する通知工程と、
前記処理装置が生成する、前記ネットワーク通信において現在確立されているコネクションに関するコネクション情報に基づいて、前記キャッシュメモリにおけるタイマ情報のキャッシュを制御するキャッシュ制御工程とを備えることを特徴とするネットワークタイマ管理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2009−151498(P2009−151498A)
【公開日】平成21年7月9日(2009.7.9)
【国際特許分類】
【出願番号】特願2007−327991(P2007−327991)
【出願日】平成19年12月19日(2007.12.19)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】