(57)【特許請求の範囲】
【請求項１】
通信プロトコルに基づいて通信を行う通信装置であって、
前記通信プロトコルによるコネクションに関するコンテキスト情報を保持管理する手段と、
前記通信プロトコルで使用されるタイマの計時処理を行い、該タイマのタイムアウトを事前検知する手段と、
前記タイムアウトが事前検知された場合、前記コンテキスト情報をキャッシュメモリに格納するようにプリロードを指示する手段とを有することを特徴とする通信装置。
【請求項２】
前記キャッシュメモリへの格納を制御する制御手段を更に有し、
前記制御手段は、前記キャッシュメモリに空き領域がない場合、最終アクセスが最も古いキャッシュメモリ内の領域に格納するように制御することを特徴とする請求項１に記載の通信装置。
【請求項３】
通信プロトコルに基づいて通信を行う通信装置の制御方法であって、
保持管理する手段が、前記通信プロトコルによるコネクションに関するコンテキスト情報を保持管理する工程と、
事前検知する手段が、前記通信プロトコルで使用されるタイマの計時処理を行い、該タイマのタイムアウトを事前検知する工程と、
指示する手段が、前記タイムアウトが事前検知された場合、前記コンテキスト情報をキャッシュメモリに格納するようにプリロードを指示する工程とを有することを特徴とする制御方法。
【請求項４】
コンピュータを請求項１又は２に記載の通信装置の各手段として機能させるためのプログラム。
【請求項５】
請求項４に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信プロトコルに基づいて通信を行う通信装置及び制御方法に関する。
【背景技術】
【０００２】
ＴＣＰ（Transmission Control Protocol）／ＩＰ（Internet Protocol）と総称されるプロトコル群の中で、ＴＣＰは中心的な役割を担うコネクション型のプロトコルである。ＴＣＰは、２つのネットワークデバイス（エンドと称す）の間に論理的な双方向チャネルを形成し、そのチャネル上で双方間のデータの受け渡しを可能とするプロトコルである。また、取り扱いデータの到達保証、フロー制御、輻輳制御、といったサービスを提供している。
【０００３】
ＴＣＰは取り扱うデータの到達保証を実現するため、一方のエンドがデータを受け取ると他方のエンドに確認応答を返す。しかし、この確認応答が伝送の途中で消失することがある。この対策として、ＴＣＰはタイマによる監視を行っている。つまり、データの送信をトリガーにタイマを起動し、所定時間内に確認応答が返ってこなければ、タイムアウトが発生し、そのデータを再転送するというものである。このタイマのことを再転送タイマと称す。
【０００４】
また、ＴＣＰはデータ転送を円滑に行うために、スライディングウインドウプロトコルというフロー制御を行っている。これは確認応答毎に一方のエンドが受けられるデータ量を他方のエンドに通知し、他方のエンドは通知されたデータ量の範囲でデータを送信することで円滑なデータ転送を可能としている。
【０００５】
ところで、一方のエンドの処理が処理遅延のため受信領域が満杯になり、データを受信できなくなった状態（受信ウインドウがクローズしたと称す）では、ウインドウサイズをゼロで通知する。このゼロの通知を受けた他方のエンドは非ゼロの通知を受けるまで送信を停止する。しかし、非ゼロの通知が伝送途中で消失すると、双方のエンドが待ち状態となり通信が途絶えた状態となる。
【０００６】
ＴＣＰでは、この状態を回避するためゼロを受けたエンドが定期的にウインドウが拡大したか否かを他方のエンドに問い合わせるウインドウ検査と呼ばれる手法を用いている。この定期的な動作を助けるために、持続タイマと呼ばれるタイマを起動する。
【０００７】
ＴＣＰは、上述したように確認応答を用いて様々なサービスを実現している。しかし、毎回発生する確認応答は回線を圧迫し、双方のエンドの処理に負荷をかけることになる。そこで、ＴＣＰは遅延確認応答により、この問題を解決している。つまり、毎回の受信の度に確認応答を返すのではなく数回に一回の割合で返すことで、処理の効率化と回線負荷の軽減に役立てている。
【０００８】
しかし、受信セグメントの個数で確認応答を返す実装では、セグメントの消失があった場合、永久に待ちの状態に陥ることになる。この対策として遅延確認応答タイマと呼ばれるタイマを起動して通信の途絶状態が発生しないようにしている。
【０００９】
ＴＣＰは、以上述べた様々な機能を活用して信頼性の高いサービスを提供しているが、その機能実現のため数種類のタイマを駆使して通信途絶を回避する。
【００１０】
近年、ＴＣＰ／ＩＰを搭載してネットワークに接続し、顧客の利便性を向上させる組み込み機器が急増している。このような状況で組み込み機器においてもネットワークプロトコル処理を高速に実行できることが要求されている。ところでギガビットイーサーネットのＦｕｌｌ−ｗｉｒｅの速度を達成するためには動作周波数３ＧＨｚ程度のプロセッサが必要になると言われている。これは今日の組み込み機器が一般的に搭載するプロセッサ能力を遥かに超えている。そこで、ＴＯＥ（ＴＣＰ／ＩＰオフロードエンジン）といったプロトコル処理に特化した補助的デバイスをシステムに付加し、広帯域なネットワーク通信を実現することが一般化している。
【００１１】
ＴＯＥの従来例として特許文献１に開示される技術を挙げることができる。
【００１２】
さて、プロトコル処理、特にＴＣＰにおいて高速化の要となるのはＰＣＢ情報の扱いである。ＰＣＢとはプロトコル制御ブロック（Protocol Control Block）の略であり、通信プロトコルを処理する場合に必要なコンテキスト情報やその集合体の名称である。
【特許文献１】特表2002-524005号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
特許文献１に代表されるように、多くのＴＯＥ実装では、ＴＣＰ処理を行うのに必要なＰＣＢ情報を主記憶からＳＲＡＭなどの高速な一次メモリ（キャッシュ）に複製して保持することでアクセスの高速化を実現している。
【００１４】
また、特許文献１では、コネクションの数が増え全てのＰＣＢ情報が一次メモリに収まらない場合、使用頻度により一次メモリと主記憶との間で入れ替え処理を行っている。
【００１５】
しかし、上述したＴＣＰのタイマ監視におけるタイムアウト発生以降のＴＣＰ処理では、タイムアウトの発生そのものが散発的であり、キャッシュの効果は殆どなくなる。
【００１６】
ＴＣＰ処理のタイムアウト発生が引き起こす突発的なパフォーマンスダウンは、通信メディアの高速化が進む中で大きな問題となっている。
【００１７】
本発明は、通信プロトコルで使用されるタイマのタイムアウトが発生した場合の突発的なパフォーマンスダウンを軽減することを目的とする。
【課題を解決するための手段】
【００１８】
本発明は、通信プロトコルに基づいて通信を行う通信装置であって、前記通信プロトコルによるコネクションに関するコンテキスト情報を保持管理する手段と、前記通信プロトコルで使用されるタイマの計時処理を行い、該タイマのタイムアウトを事前検知する手段と、前記タイムアウトが事前検知された場合、前記コンテキスト情報をキャッシュメモリに格納するようにプリロードを指示する手段とを有することを特徴とする。
【００１９】
また、本発明は、通信プロトコルに基づいて通信を行う通信装置の制御方法であって、保持管理する手段が、前記通信プロトコルによるコネクションに関するコンテキスト情報を保持管理する工程と、事前検知する手段が、前記通信プロトコルで使用されるタイマの計時処理を行い、該タイマのタイムアウトを事前検知する工程と、指示する手段が、前記タイムアウトが事前検知された場合、前記コンテキスト情報をキャッシュメモリに格納するようにプリロードを指示する工程とを有することを特徴とする。
【発明の効果】
【００２０】
本発明によれば、通信プロトコルで使用されるタイマのタイムアウトが発生した場合の突発的なパフォーマンスダウンを軽減することができる。
【発明を実施するための最良の形態】
【００２１】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
【００２２】
まず、ＴＯＥサブシステムを含む通信装置の構成を、図１及び図２を用いて説明する。尚、ＴＯＥは、ＴＣＰ（Transmission Control Protocol）／ＩＰ（Internet Protocol）オフロードエンジンの略である。
【００２３】
図１は、本実施形態における通信装置の構成の一例を示すブロック図である。通信装置には、図１に示すように、各ユニット１０１、１０３、１０５〜１０８、１１０、１１２〜１１４、１１６、１１７が含まれ、それぞれがシステムバス１０２を介して接続されている。尚、システムバス１０２はクロスバースイッチ構造のオンチップバスであり、通信装置で求められる送受信データの並列転送動作が可能である。また、このオンチップバスは、AXI（Advanced eXtensible Interface）プロトコルを追加したオンチップバス規格であるAMBA3.0に準拠している。
【００２４】
主プロセッサ１０１は、電源投入時にフラッシュメモリ１１８内のブートプログラムを実行する。更に、各ハードウェアやサブシステムを初期化後に、ＨＤ（ハードディスク）装置１１１に格納されているソフトウェアを主メモリ１０４上にロードし、ソフトウェアに含まれるＯＳ（オペレーティングシステム）を起動する。主メモリ制御部１０３は、主メモリ１０４へのアクセスを制御する。
【００２５】
ＴＯＥサブシステム１０５は、イーサネット（登録商標）１２０を介して外部のネットワークとの間で行われるデータ通信を制御する。このＴＯＥサブシステム１０５の詳細な構成及び動作については、更に後述する。
【００２６】
割り込み制御部１０６は、各ハードウェアやＴＯＥサブシステム１０５及び無線ＬＡＮサブシステム１１３で割り込みイベントが発生すると、発生した割り込みイベントを予め決められた優先順位に従って主プロセッサ１０１に伝達する。
【００２７】
タイマ１０７は、ソフトウェアなどにより起動され、時間計測やタイムアウトイベントを発生させる。表示制御部１０８は、アプリケーションの状態や設定内容などを表示する表示装置１０９を制御する。
【００２８】
二次記憶制御部１１０は、ＨＤ装置１１１へのアクセスを制御する。ＨＤ装置１１１には、通信装置の機能を実現するソフトウェアや関連データ、各サブシステム内のサブプロセッサやシーケンサで動作するマイクロコードと関連データなどが格納されている。更に、通信データや通信装置の動作履歴や通信履歴などの履歴情報も格納される。
【００２９】
主ＤＭＡ制御部１１２は、主プロセッサ１０１と主メモリ１０４との間のデータ転送やメモリ間のデータ転送を制御する。
【００３０】
無線ＬＡＮサブシステム１１３は、IEEE802.11a/b/g/n規格に準拠した無線ＬＡＮ機能を提供する。汎用ＩＯインタフェース１１４は、通信装置の動作モードの設定やＩＰアドレスに代表される各通信パラメータを入力するための入力キー１１５とのインタフェースである。
【００３１】
汎用バスインタフェース１１６は、ＰＣＩ（Peripheral Component Interconnect）に代表される汎用バスのインタフェースである。尚、ＰＣＩはPCI Special Interest Groupにより策定され、業界標準の汎用バスである。
【００３２】
メモリ制御部１１７は、書き換え可能な不揮発性メモリであるフラッシュメモリ１１８や高速な一次メモリ（キャッシュ）であるＳＲＡＭ１１９へのアクセスを制御する。
【００３３】
尚、このフラッシュメモリ１１８には、起動時に動作するブートプログラムや初期状態設定に必要なパラメータが格納される。更に、起動時に各ハードウェアを制御するためのデバイスドライバや各ハードウェア起動時の設定パラメータなどが保存される。
【００３４】
図２は、図１に示すＴＯＥサブシステム１０５の内部構成の一例を示す図である。サブプロセッサＡ２０１〜Ｅ２０５、バスブリッジ２０６、ＰＣＢ制御部２１０、通信タイマ２１２、共有メモリ２１３、鍵管理部２１４、乱数発生器２１５、暗号器２１６、データパス制御部２１７がサブシステムバス２２０に接続されている。サブシステムバス２２０はクロスバースイッチ接続である。
【００３５】
まず、サブプロセッサＡ２０１〜Ｅ２０５は、メイン側からオフロードされたＴＣＰ／ＩＰプロトコル処理を実行する。サブプロセッサＡ２０１〜Ｅ２０５が実行するファームウェアはＴＯＥサブシステム１０５の初期化時に主メモリ１０４上に展開され、ファームウェアを内蔵するそれぞれの命令キャッシュメモリにロードされて実行される。
【００３６】
バスブリッジ２０６は、メイン側のシステムバス１０２とサブシステムバス２２０とを接続するものである。
【００３７】
ＰＣＢ制御部２１０は、各通信プロトコルを処理する場合に必要なコンテキスト情報やその集合体の名称であるＰＣＢの生成と抹消、アクセス制御、保持管理を行う。ＰＣＢはプロトコル制御ブロック（Protocol Control Block）の略である。ＰＣＢ制御部２１０の詳細については、更に後述する。
【００３８】
また、ＰＣＢ制御部２１０には、サブプロセッサＡ２０１〜Ｅ２０５から短時間に参照又は書き換え可能とするためにＰＣＢを一時的に保持するＰＣＢキャッシュメモリ２１１が接続されている。
【００３９】
更に、ＰＣＢ制御部２１０には、複数のＣＡＭ（Content Addressable Memory）２０７〜２０９が接続されている。ここで、ＣＡＭ２０７は受信フレームから取り出した情報を検索キーとしてＰＣＢを特定するための検索に用いるメモリである。また、ＣＡＭ２０８は所望のＰＣＢがＰＣＢキャッシュメモリ２１１上にあるか否かを判定するために使用するメモリである。即ち、ＣＡＭは、検索キーであるデータとＣＡＭに登録されたデータが一致した場合に、そのデータが格納されているアドレス情報を検索結果として報告するメモリである。
【００４０】
尚、ＣＡＭの中に複数の同一データがある場合、その全てが報告されるが、本実施形態では同一データが複数あることはない。また、ＣＡＭ２０７〜２０９の詳細については、更に後述する。
【００４１】
通信タイマ２１２は、ＴＣＰ／ＩＰプロトコル処理に必要な時間計測及びタイムアウトイベントを発生させる。共有メモリ２１３は、サブプロセッサＡ２０１〜Ｅ２０５の間の通信と情報を共有するためのメモリである。鍵管理部２１４は、暗号通信プロトコル処理のために生成した暗号鍵や乱数及び素数を機密保持する。乱数発生器２１５は、ＴＣＰ／ＩＰプロトコル処理及び暗号通信プロトコル処理のための乱数を発生する。
【００４２】
暗号器２１６は、IPsecやSSL/TLSなどの暗号通信プロトコル処理を行う。また、米国商務省標準技術局（NIST）によって選定されたAES（Advanced Encryption Standard）暗号器を含む。更に、認証やデジタル署名などに使われるSHA-1（Secure Hash Algorithm 1）ハッシュ関数器、RFC-1321としてIETFで標準化されているMD5（Message Digest 5）ハッシュ関数器などを含む。
【００４３】
ＭＡＣ（Media Access Control）２１８は、ＯＳＩ参照モデルのデータリンク層（第２層）に相当するＭＡＣ層のプロトコル処理を扱うハードウェアである。ＰＨＹ（Physical Layer Chip）２１９は、ＯＳＩ参照モデルの第１層に相当するＰＨＹ（物理）層のプロトコル処理及び電気信号を扱うハードウェアである。
【００４４】
データパス制御部２１７は、送受信されるデータを一時的に保持するバッファメモリ、バッファメモリを制御するコントローラ、データ転送を行うＤＭＡ制御ユニット、ＤＭＡ処理の最中にチェックサムを演算するチェックサム演算器を含む。
【００４５】
具体的には、ＭＡＣ２１８で処理された受信フレームを一時的に保持する受信バッファメモリと、受信フレーム中の各階層のプロトコルヘッダをサブプロセッサ２０１〜２０５が参照可能とする受信バッファメモリコントローラとを含む。また、送信データを一時的に保持する送信バッファメモリと、サブプロセッサ２０１〜２０５が各階層のプロトコルヘッダを保持された送信データに形成可能とするための送信バッファメモリコントローラを含む。ＤＭＡ制御ユニットは、送受信バッファメモリと主メモリ１０４との間のデータ転送や送受信バッファメモリとＭＡＣ２１８との間のデータ転送を行う。
【００４６】
ここで、ＴＯＥサブシステム１０５におけるサブプロセッサ２０１〜２０５の役割を、図３を用いて説明する。
【００４７】
図３は、ＴＯＥサブシステムにおける複数のサブプロセッサの役割を説明するための図である。ＴＯＥサブシステム１０５の処理機能は、ＭＡＣ層３０６との間で通信データと通信情報を交換するＭＡＣドライバ３０５の機能をカバーする。また、ＩＰプロトコルを処理するインターネット層（ＩＰ層）３０４と、ＴＣＰ及びＵＤＰプロトコルを処理するトランスポート層（ＴＣＰ／ＵＤＰ層）３０３と、ソケットＡＰＩ３０２の一部の機能をカバーする。これらの機能は、主にプロトコルを選択し、データの受け渡しと情報の伝達を中継する、図３に示す３１０の範囲をカバーする。
【００４８】
図３に示すように、これらの機能はサブプロセッサ２０１〜２０５にそれぞれ分割され処理される。例えば、ソケットＡＰＩ３０２部分の処理をサブプロセッサＡ２０１に割り当てる。また、ＴＣＰ及びＵＤＰプロトコル処理の内、受信動作に関わる処理をサブプロセッサ２０２に割り当て、送信動作に関わる処理をサブプロセッサＣ２０３に割り当てる。そして、ＭＡＣドライバ３０５及びＩＰプロトコル処理の内、受信動作に関わる処理をサブプロセッサＤ２０４に割り当て、送信動作に関わる処理をサブプロセッサＥ２０５に割り当てる。
【００４９】
尚、分割の意図は、これら一連のプロトコル処理を３つのパイプラインステージ３１１〜３１３に分割し、パイプライン動作を行わせることにある。また、送信動作と受信動作を分割することで、それぞれの機能を担当するサブプロセッサ同士が並列的に動作可能となる。
【００５０】
ＴＣＰでは論理チャネル形成の始まりをコネクション確立と称し、終了をコネクション解放と称す。コネクション確立及び解放の間は、エスタブリッシュ状態又はコネクション状態、或いは単にコネクションと称す。
【００５１】
２つのネットワークデバイスの間で複数のコネクションを形成することが可能であり、他の複数のネットワークデバイスとの間でも複数のコネクションを形成することが可能である。ここで、コネクションは２つのネットワークデバイス双方のＩＰアドレスとＴＣＰポート番号の４つの情報の組み合わせで表される。これらの情報の組み合わせをソケットペア情報又はソケット情報と称す。コネクション確立後に送受信される各ＴＣＰパケットのＴＣＰヘッダにはソケット情報が含まれる。
【００５２】
ＴＣＰは転送データの到達保証を行う観点から、コネクション間でデータの受信側から送信側に対して確認応答と称する到達確認情報を伝達する。この確認応答処理を行うには、サブプロセッサＢ２０２とサブプロセッサＣ２０３との間で到達確認情報の伝達３１４が必要となる。
【００５３】
この情報伝達と情報共有、パイプラインステージ間の情報伝達と情報共有、パイプラインステージを構成するサブプロセッサ２０１〜２０５と主プロセッサ１０１との間の情報伝達と情報共有、は共有メモリ２１３を介して行われる。もちろん、これらの情報伝達と情報共有を主メモリ１０４を使って行っても良い。
【００５４】
次に、ＴＯＥサブシステム１０５におけるＰＣＢ制御部２１０の構成とＣＡＭ２０７〜２０９の詳細を、図４乃至図１０を用いて説明する。
【００５５】
図４は、ＴＯＥサブシステムにおけるＰＣＢ制御部の構成の一例を示す図である。ＰＣＢ制御部２１０には、ＣＡＭ２０７〜２０９を制御するＣＡＭ制御部４０１、ＰＣＢ制御部２１０全体を制御するＰＣＢ制御シーケンサ４０２、ＰＣＢキャッシュメモリ２１１と主メモリ１０４との間のデータ転送を行うＤＭＡ制御部４０３が含まれる。更に、ＬＲＵテーブル４０４、ＰＣＢを管理するＰＣＢ管理テーブル４０５、そのＰＣＢ管理テーブル４０５を管理するＰＣＢ管理部４０６、ＰＣＢキャッシュメモリ２１１を制御するＰＣＢキャッシュメモリ制御部４０７が含まれる。
【００５６】
尚、ＰＣＢ制御シーケンサ４０２は、内部の命令メモリにロードされたマイクロコードに従って制御を行う。本実施形態では、ＰＣＢ制御シーケンサ４０２をプログラム可能なシーケンサとしたが、より高速にするために有限状態マシンで構成されたハードウェアでも良い。
【００５７】
図５は、本実施形態におけるＣＡＭ２０７の内部形式の一例を示す図である。図５に示す例では、ＴＣＰコネクション確立時に登録された３つのソケット情報１〜３がソケット番号１〜３のエリア５０１〜５０３に登録されている。
【００５８】
また、ソケット情報とソケット番号とＰＣＢとは一対一に紐付けされている。ＰＣＢがＰＣＢキャッシュメモリ２１１上のどのキャッシュブロック番号に登録されているかは、図６に示すように、ソケット番号の登録の有無によって示される。
【００５９】
図６は、本実施形態におけるＣＡＭ２０８の内部形式の一例を示す図である。図６に示す例では、ソケット番号３がキャッシュブロック番号１のエリア６０１に登録されており、キャッシュブロック番号２のエリア６０２は未登録である。
【００６０】
即ち、受信フレームから取り出したソケット情報を検索キーとしてＣＡＭ２０７を検索することによりソケット番号を取得できる。取得したソケット番号を用いてＣＡＭ２０８を検索することにより対応するＰＣＢがＰＣＢキャッシュメモリ２１１上にあるか、あればどのキャッシュブロック番号に登録されているかを知ることができる。
【００６１】
ＰＣＢはＴＣＰ処理においてはＴＣＰＣＢとも略称される。図７は、このＴＣＰＣＢに含まれる個々の要素の抜粋を示す図である。図７において、接頭辞「snd_」で始まるパラメータは送信パラメータ、「rcv_」で始まるパラメータは受信パラメータである。
【００６２】
尚、図７には示されていないが、送信先ＩＰアドレス、送信先ポート番号、送信元ＩＰアドレス、送信元ポート番号、などの多数の要素が存在する。また、ＴＣＰＣＢは１つのコネクション当たり２Ｋビット程度のサイズである。
【００６３】
ＴＣＰ／ＩＰプロトコル処理の中で、ＴＣＰＣＢは、図８に示すように、１ビット要素８０１、４ビット要素８０２、８ビット要素８０３、１６ビット要素８０４、３２ビット要素８０５というように、要素のサイズで纏められ配置されている。各要素は、これらの何れかのサイズに合うように正規化されている。また、このサイズによる区切りはＴＯＥファームウェアが識別する論理的なものである。ＴＯＥファームウェアをコンパイルする際に与える各種パラメータを纏めたヘッダファイルの記述によって各サイズ及び要素数や要素の順番を定義し直すことができる。また、主メモリ１０４に配置されたＴＣＰＣＢ群８０６は、図９に示すように、ＴＣＰコネクションを識別しているソケット番号順に並べられ格納されている。
【００６４】
ＴＣＰ／ＩＰプロトコル処理の中で、ＴＣＰＣＢはサブプロセッサ２０１、サブプロセッサ２０２、サブプロセッサ２０３からアクセスされる。このアクセスを円滑に行うために、サブプロセッサ２０１〜２０３がアクセスするタイミングでは各ＴＣＰＣＢはＰＣＢキャッシュメモリ２１１に複製されている。
【００６５】
図１０は、ＰＣＢキャッシュメモリ２１１上に配置された各ＴＣＰＣＢの様子を示す図である。この例では、アクセスされるＴＣＰＣＢは、ＰＣＢキャッシュメモリ２１１上のキャッシュブロック番号１、３、４のエリア１００１、１００２、１００３に複製されている。但し、新規のＴＣＰコネクション用に生成されたＴＣＰＣＢの場合、ＰＣＢキャッシュメモリ２１１上にあり、主メモリ１０４に退避されていない場合もある。
【００６６】
ここで、退避などＰＣＢキャッシュメモリ２１１と主メモリ１０４との間のＴＣＰＣＢ転送はＰＣＢ制御シーケンサ４０２の指示でＤＭＡ制御部４０３が行う。
【００６７】
ＴＣＰでは、上述した３つのタイマの他に数種類のタイマがコネクション（ソケット）毎にそれぞれ独立して稼動している。以下、これらのタイマを纏めた本実施形態における通信タイマ２１２の構成を、図１１乃至図１５を用いて説明する。
【００６８】
図１１は、本実施形態における通信タイマの構成の一例を示す図である。図１１に示すように、通信タイマ２１２は通信タイマ２１２全体を制御し、外部とのインタフェース（Ｉ／Ｆ）として機能するタイマ制御部１１０１を備える。更に、各タイマ各コネクション毎に持つタイマの初期値を保持する初期値メモリ１１０６と、その書き込み、読み出しを行う初期値メモリ制御部１１０２とを備える。
【００６９】
また、タイマ起動中の途中経過を保持する計数値メモリ１１０７と、その書き込み、読み出しを行う計数値メモリ制御部１１０４を備える。更に、タイマ制御部１１０１の指令で指定されたタイマとコネクションの初期値を初期値メモリ１１０６から計数値メモリ１１０７へ転送するローダ１１０３を備える。
【００７０】
また、一定周期で計数値メモリ１１０７に格納されているタイマ計数値を読み出しては判定を行い、更新結果を書き戻す処理を行う計時処理部１１０５を備える。更に、タイムアウトした際に、タイマ初期値を倍増させて更新する指数バックオフ処理部１１０８からなる。
【００７１】
ここで、タイマの初期値とは、タイマ起動時に、タイマに与えるタイムアウト時間値を指す。また、計時処理部１１０５は、判定結果をイベント情報として、内蔵するイベントＦＩＦＯに保持し、タイマ制御部１１０１に伝達する。
【００７２】
図１２は、本実施形態における計時処理部に内蔵されるイベントＦＩＦＯのデータ形式を示す図である。イベント情報１２０１は、タイムアウトなどのイベントを示すイベントコード１２１１、タイマの種別（再転送タイマ、持続タイマ、遅延確認応答タイマなど）を示すタイマＩＤ１２１２、コネクションの種別を示すソケット番号１２１３から構成される。
【００７３】
上述した初期値メモリ１１０６には、図１３及び図１４に示すような形式で、各タイマ及び各コネクション毎の初期値が格納されている。ここで、図１３と図１４に示す分解能１３０２と時間値１３０３とは、計時処理部１１０５に存在するタイムベース（図１５）の分解能と時間値を設定するものである。
【００７４】
図１５は、本実施形態における計時処理部に存在するタイムベースの分解能と時間値との関係を示す図である。ここで、分解能１３０２とは、周期が異なる複数のタイムベースを指定するＩＤである。また、時間値１３０３とは、分解能１３０２で指定されたタイムベースの範囲を決定するものである。図１５に示すように、時間値の取り得る範囲は分解能によって異なる。
【００７５】
このように、タイムベースを切り換えることで、少ないビットレンジで広い時間範囲をカバーしている。ここで、タイマの初期値は、コネクションが確立する際に初期値メモリ１１０６に書き込まれる。
【００７６】
次に、再転送タイマを例に挙げて、通信タイマ２１２の初期化とタイマの起動及び停止の各処理について説明する。
【００７７】
通信タイマ２１２の初期化とタイマの起動及び停止の各処理は、タイマ制御部１１０１や計時処理部１１０５内の有限状態マシン又はマイクロプログラムを内蔵したシーケンサによって制御され実行される処理である。
【００７８】
まず、コネクション確立時にコネクションを統括するサブプロセッサＡ２０１や主プロセッサ１０１からコネクションに対応するソケット番号と各タイマの初期値がタイマポートを介してタイマ制御部１１０１へ伝達される。これにより、再転送タイマの所定位置に初期値が設定される。また同様に、持続タイマ、遅延確認応答タイマの所定位置に初期値が設定される。
【００７９】
ここで、ソケット番号１で送信処理が行われた場合、ＴＣＰの送信処理を行うサブプロセッサＣ２０３がＴＣＰ送信処理の直後に、再転送タイマを起動する。サブプロセッサＣ２０３は、タイマポートを介してタイマの種別（タイマＩＤ：再転送タイマ）とソケット番号１をタイマ制御部１１０１に指示する。
【００８０】
一方、タイマ制御部１１０１はタイマの種別（タイマＩＤ：再転送タイマ）とソケット番号１とタイマの起動をローダ１１０３に指示する。ローダ１１０３は初期値メモリ１１０６からソケット番号１の再転送タイマ初期値である分解能１３０２と時間値１３０３を読み出す。そして、Valid Flag１４０１を有効にして、計数値メモリ１１０７のソケット番号１の再転送タイマ値の格納場所に書き込む。尚、後述するが、計時処理部１１０５は計数値メモリ１１０７を定期的に読み出し、そのValid Flag１４０１が有効なタイマ値のみを更新していく。
【００８１】
また、再転送タイマの停止はタイムアウト発生時及び確認応答やリセットセグメントを受領した時点で行われる。ここで、ソケット番号１の停止処理の場合は、サブプロセッサＣ２０３がタイマポートを介してタイマの種別（タイマＩＤ：再転送タイマ）とソケット番号１とタイマ停止をタイマ制御部１１０１に指示する。
【００８２】
一方、タイマ制御部１１０１はタイマの種別（タイマＩＤ：再転送タイマ）とソケット番号１とタイマの停止をローダ１１０３に指示する。ローダ１１０３は、Valid Flag１４０１を無効として、計数値メモリ１１０７のソケット番号１の再転送タイマ値の格納場所に書き込む。
【００８３】
次に、通信タイマ２１２の初期化とタイマ起動処理が行われた後の計時処理とその結果のイベント処理を、図１６を用いて説明する。
【００８４】
この計時処理は主に計時処理部１１０５において行われる。計時処理部１１０５の内部に分解能１３０２毎に用意されているタイムベースの各周期毎に計数値メモリ１１０７を参照して該当する計数値を更新し再び計数値メモリ１１０７に書き戻す。更に、参照結果からタイムアウトなどのイベントを発生させる。
【００８５】
まず、ステップＳ１６０１において、計数値メモリ１１０７の読み出しポインタの初期化を行う。この初期化により、最初の参照はソケット番号１のタイマ計数値から始まる。尚、計数値メモリ１１０７の内部構成は図１７に示す初期値メモリ１１０６の内部構成と同様であり、初期値の代わりにタイマ係数値が格納される。しかし、この中で未使用部分のValid Flag１４０１はゼロ（無効）で初期化されている。
【００８６】
次に、ステップＳ１６０２で、計時処理部１１０５は計数値メモリ１１０７の読み出しポインタで指定されたタイマ計数値を読み出す。そして、ステップＳ１６０３で、読み出されたタイマ計数値の分解能１３０２がタイムベースと一致しているか否かを判定する。判定した結果、一致している場合はステップＳ１６０４へ、また不一致の場合はステップＳ１６０８へ処理を進める。
【００８７】
このステップＳ１６０４では、読み出されたタイマ計数値のValid Flag１４０１が有効（動作中）か無効（停止中）かを判定する。ここで、有効（動作中）の場合はステップＳ１６０５へ、無効（停止中）の場合はステップＳ１６０８へ処理を進める。このステップＳ１６０５では、読み出されたタイマ計数値の時間値１３０３を１だけ減算し、その結果（以降、減算結果と呼ぶ）を計数値メモリ１１０７の読み出しポインタへ書き戻す。
【００８８】
次に、ステップＳ１６０６において、減算結果が「予め設定された値」と一致した場合はステップＳ１６１１へ、不一致の場合はステップＳ１６０７へ処理を進める。ここで、「予め設定された値」とは、主プロセッサ１０１又はサブプロセッサＡ２０１からタイマ制御部１１０１の所定のレジスタに設定されている値である。計時処理部１１０５はこのレジスタを参照して上述の比較を行う。この値の意味は後述する。
【００８９】
次に、ステップＳ１６０７において、減算結果がゼロの場合はステップＳ１６０９へ、ゼロでなければステップＳ１６０８へ処理を進める。このステップＳ１６０８では、読み出しポインタを１だけ更新する。但し、この更新により読み出しポインタが計数値メモリ１１０７の最後尾を超えていた場合は、読み出しポインタをゼロに戻す。ステップＳ１６０８の後はステップＳ１６０２へ戻る。
【００９０】
ステップＳ１６０９では、計時処理部１１０５の内部に設けられたイベントＦＩＦＯ（図１２）にイベントコード（タイムアウト）と処理中のソケット番号、タイマＩＤを書き込む。そして、ステップＳ１６１０で、読み出されたタイマ計数値のValid Flag１４０１を無効として、計数値メモリ１１０７へ書き戻す。
【００９１】
一方、ステップＳ１６１１では、計時処理部１１０５の内部に設けられたイベントＦＩＦＯにイベントコード（事前通知）と処理中のソケット番号、タイマＩＤを書き込む。
【００９２】
次に、上述した各イベントがタイマ制御部１１０１を介して関連部分に伝達され処理が行われる様子を、図１８を用いて説明する。
【００９３】
図１８は、本実施形態におけるイベント通知処理を示すフローチャートである。ここで、タイマ制御部１１０１はイベントＦＩＦＯが空か否かを調べ、イベント情報１２０１の書き込みを監視する。タイマ制御部１１０１は、その他にタイマポートへの書き込みなども監視している。
【００９４】
ステップＳ１８０１において、イベントＦＩＦＯにイベント情報１２０１の書き込みがあった場合はステップＳ１８０２へ処理を進める。このステップＳ１８０２で、イベントＦＩＦＯからイベント情報１２０１を読み出す。そして、ステップＳ１８０３において、読み出されたイベント情報のイベントコード１２１１がタイムアウトの場合はステップＳ１８０７へ、それ以外の場合はステップＳ１８０４へ処理を進める。
【００９５】
このステップＳ１８０４では、読み出されたイベント情報のイベントコード１２１１が事前通知の場合はステップＳ１８０５へ、それ以外の場合はステップＳ１８０１へ処理を進める。
【００９６】
ステップＳ１８０５では、タイマ制御部１１０１はプリロードポートを介してＰＣＢ制御部２１０にソケット番号を指定してＴＣＰＣＢのプリロードを指示する。この処理は、再転送タイマのタイムアウトの可能性を推測（タイムアウトを事前検知）し、再転送処理に必要なＴＣＰＣＢをタイムアウトが発生する直前までにＰＣＢキャッシュメモリ２１１にプリロードするための処理である。
【００９７】
次に、ステップＳ１８０６において、タイマＩＤが再転送タイマか持続タイマの場合、指数バックオフ処理部１１０８に指数バックオフ処理を指示する。
【００９８】
よって、上述した「予め設定された値」はプリロードの完了時間と指数バックオフ処理の完了時間を見越した最小値とする。このように、「予め設定された値」を最小に抑えることで、事前通知以降にタイムアウト要因が無くなり、プリロードが無駄に終わる確率を下げることができる。
【００９９】
本実施形態では、再転送タイマを例に説明したが、他のタイマ（持続タイマ、遅延確認応答タイマなど）も同様な処理となることが容易に類推できる。
【０１００】
このように、ＴＣＰ処理では、再転送タイマのタイムアウトが発生した場合、再転送が実施される。この場合にも再転送タイマが起動されるが、タイムアウトの有効性を高めるため再度の起動の際にはタイマ値を倍増させる仕組みが推奨されている。この処理を指数バックオフと呼んでいる。タイマ制御部１１０１は、上述のプリロードの指示と同時に、指数バックオフ処理部１１０８を起動し、指数バックオフ処理が行われる。
【０１０１】
図１９は、本実施形態における指数バックオフ処理を示すフローチャートである。まず、ステップＳ１９０１において、指数バックオフ処理部１１０８は初期値メモリ１１０６からタイマ初期値を読み出す。
【０１０２】
次に、ステップＳ１９０２において、読み出したタイマ初期値の回数１３０１がゼロであれば何もせずに、この指数バックオフ処理を終了するが、ゼロ以外であればステップＳ１９０３へ処理を進める。
【０１０３】
このステップＳ１９０３では、読み出したタイマ初期値の時間値１３０３を２倍する。このとき、桁あふれが発生した場合は分解能１３０２を１加算し、時間値１３０３を適切な値とする。ここで、適切な値とは２倍値に最も近い値である。
【０１０４】
次に、ステップＳ１９０４において、読み出したタイマ初期値の回数１３０１を１減ずる。そして、ステップＳ１９０４において、タイマ制御部１１０１からタイムアウト通知を受領すると、指数バックオフ処理部１１０８は更新したタイマ初期値（回数１３０１、分解能１３０２、時間値１３０３）を初期値メモリ１１０６に書き戻す。ここで、タイムアウトせずにタイマが停止した場合は何もせず、この指数バックオフ処理を終了する。
【０１０５】
次に、上述のタイマ制御部１１０１からプリロードの指示を受けてＰＣＢ制御部２１０がＴＣＰＣＢを処理する流れを、図２０乃至図２５を用いて説明する。尚、図２０に示す処理は、ＰＣＢ制御部２１０内に置かれたＰＣＢ制御シーケンサ４０２のマイクロコードに従って制御される。
【０１０６】
ＰＣＢ制御部２１０はサブプロセッサＡ２０１からＴＣＰＣＢの生成を指令され、その際にサブプロセッサＡ２０１からソケット情報などが伝達される。そして、ＰＣＢ管理部４０６から未使用のソケット番号を取得する。
【０１０７】
本実施形態では、ソケット番号という一連の番号群の中から、ソケットペアを識別するためにユニークとなるようなソケット番号を割り当てている。ＰＣＢ管理部４０６は、この未使用のソケット番号を管理し発行する。ＰＣＢ管理部４０６は、ＰＣＢ管理テーブル４０５上にソケット番号の使用の有無を示すビットマップ２１００（図２１）を形成してソケット番号を管理している。図２１は、本実施形態におけるＰＣＢ管理テーブル上に配置されたソケット番号の使用／未使用を表すビットマップを示す図である。
【０１０８】
ここで、ＰＣＢ管理部４０６は、サブプロセッサＡ２０１から未使用のソケット番号を要求されると、予めビットマップ２１００を検索し得ていた未使用のソケット番号を報告する。この報告とは別に、バックグラウンドの動作で、ＰＣＢ管理テーブル４０５の更新や次の未使用ソケット番号検索が行われる。
【０１０９】
また、コネクション解放時にサブプロセッサＡ２０１から使用済みソケット番号がＰＣＢ管理部４０６に返却され、ＰＣＢ管理テーブル４０５が更新されると共に、未使用ソケット番号検索が行われる。
【０１１０】
図２０は、本実施形態におけるプリロード処理を示すフローチャートである。この処理は、ＰＣＢ制御部２１０がタイマ制御部１１０１からのプリロードの指示を受けた場合のＰＣＢ制御部２１０の処理である。
【０１１１】
ステップＳ２００１において、ソケット番号を検索キーとしてキャッシュブロック番号を取得する。この検索は、上述したＣＡＭ２０８を使い、ソケット番号を検索キーとして検索し、その一致を見たキャッシュブロック番号が報告される。
【０１１２】
次に、ステップＳ２００２において、キャッシュブロック番号の取得が成功した場合はステップＳ２０１５へ、失敗した場合はステップＳ２００３へ処理を進める。尚、取得の失敗は対象となるＴＣＰＣＢがＰＣＢキャッシュメモリ２１１に無い場合である。
【０１１３】
このステップＳ２００３では、ＰＣＢ管理部４０６から空きキャッシュブロック番号を取得する。キャッシュブロック番号はソケット番号と同様に、ＰＣＢ管理テーブル４０５上にキャッシュブロック番号の使用の有無を示すビットマップ２２００（図２２）を形成して管理されている。図２２は、本実施形態におけるＰＣＢ管理テーブル上に配置されたキャッシュブロック番号の使用／未使用を表すビットマップを示す図である。
【０１１４】
次に、ステップＳ２００４において、未使用のキャッシュブロック番号が枯渇していて取得に失敗した場合はステップＳ２００５へ、成功した場合はステップＳ２０１１へ処理を進める。ステップＳ２００５では、ＬＲＵテーブル４０４から最終アクセスの最も古いキャッシュブロック番号と対応するソケット番号を取得する。
【０１１５】
図２３は、本実施形態におけるＬＲＵテーブル中の連結ブロックの形式を示す図である。また、図２４は、ＬＲＵテーブルの形式並びにＬＲＵテーブル中の連結ブロックと先頭ポインタと終端ポインタの関係を示す図である。
【０１１６】
ＬＲＵテーブル４０４は、図２３に示す形式２３００で、図２４に示すように構成されている。ＰＣＢ制御シーケンサ４０２が保持する２つのポインタ情報、先頭ポインタ２４０１及び終端ポインタ２４０２によって有効なキャッシュブロックが連結されている。また、連結された各キャッシュブロックは２つのポインタ情報、PreviousPointer２３０６及びNextPointer２３０７によって連結状態２４１１〜２４１４が示される。
【０１１７】
先頭ポインタ２４０１は、連結の先頭のキャッシュブロックを示し、終端ポインタ２４０２は連結の終端のキャッシュブロックを示す。新たに生成されたキャッシュブロックは終端ポインタ２４０２の手前に連結され。最も古いキャッシュブロックは、先頭ポインタ２４０１が示すブロックである。また、任意のキャッシュブロックの取り外しも、対象のキャッシュブロックと前後のキャッシュブロックのPreviousPointer２３０６及びNextPointer２３０７を操作するだけで良い。その際に、先頭ポインタ２４０１はNextPointerとして機能し、終端ポインタ２４０２はPreviousPointerとして機能する。
【０１１８】
これらのポインタの他、ＬＲＵテーブル４０４には、キャッシュブロックが有効であることを示すフラグ（ＶＦ）２３０１、ＰＣＢキャッシュメモリ２１１から退避することを禁じる退避ロックフラグ（ＬＦ）２３０２が格納されている。更に、どのサブプロセッサが利用しているか否かを示す利用フラグ（ＨＳＦ、ＴＳＦ、ＲＳＦ）２３０３、２３０４、２３０５及び対応するソケット番号２３０８が格納されている。
【０１１９】
ＬＲＵテーブル４０４の登録、削除などの更新操作は、上述のポインタやフラグを参照したり書き換えたりすることで行われる。また、これらの操作は全てＰＣＢ制御部２１０内に置かれたＰＣＢ制御シーケンサ４０２のマイクロコードに従って制御される。
【０１２０】
次に、ステップＳ２００６において、ＰＣＢキャッシュメモリ２１１上のキャッシュブロック番号のＴＣＰＣＢを主メモリ１０４上のソケット番号のＴＣＰＣＢ格納位置に退避する。そして、ステップＳ２００７において、ＣＡＭ２０８のキャッシュブロック番号にソケット番号を登録する。ＣＡＭ２０８は、ソケット番号を検索キーとして検索した場合、その一致を見たキャッシュブロック番号を報告する。ＣＡＭ２０８への登録はアドレスとしてキャッシュブロック番号を指定し、ソケット番号を登録する。
【０１２１】
次に、ステップＳ２００８において、主メモリ１０４上のソケット番号のＴＣＰＣＢをＰＣＢキャッシュメモリ２１１上のキャッシュブロック番号のキャッシュブロックに読み込む。そして、ステップＳ２００９で、ＬＲＵテーブル４０４を更新する。この更新では対象となるキャッシュブロックを終端ポインタ２４０２の手前に繋ぎ換える。この意図は、この処理以降で、このキャッシュブロックがサブプロセッサＢ２０２によってアクセスされることが予想されるため、退避の可能性を低めるための処置である。
【０１２２】
次に、ステップＳ２０１０において、取得したキャッシュブロック番号をＰＣＢキャッシュメモリ制御部４０７のアドレス変換器に格納する。
【０１２３】
図２５は、本実施形態におけるＰＣＢキャッシュメモリ制御部４０７のアドレス変換を示す図である。アドレス変換器２５０１が格納されたキャッシュブロック番号に基づいてソケット番号及びＴＣＰＣＢ番号をキャッシュブロック番号及びＴＣＰＣＢ番号２５０２に変換する。
【０１２４】
一方、ステップＳ２０１１では、空きキャッシュブロック番号の取得が成功したので、ＣＡＭ２０８の取得したキャッシュブロック番号にソケット番号を登録する。
【０１２５】
次に、ステップＳ２０１２において、主メモリ１０４上のソケット番号のＴＣＰＣＢをＰＣＢキャッシュメモリ２１１上のキャッシュブロック番号のキャッシュブロック位置に読み込む。そして、ステップＳ２０１３で、ＬＲＵテーブル４０４を更新する。ここでは、ステップＳ２００９と同様に、対象となるキャッシュブロックを終端ポインタ２４０２の手前に繋ぎ換える。
【０１２６】
次に、ステップＳ２０１４において、取得したキャッシュブロック番号をＰＣＢキャッシュメモリ制御部４０７のアドレス変換器に格納する。
【０１２７】
また、ステップＳ２０１５では、取得したキャッシュブロック番号をＰＣＢキャッシュメモリ制御部４０７のアドレス変換器に格納する。
【０１２８】
本実施形態によれば、ＴＣＰ処理におけるタイムアウトが発生した場合、その後のＴＣＰ処理が始まるまでに、必要なＰＣＢが一次メモリ（ASIC上の高速メモリ）上にロードされ、ＰＣＢアクセスの高速化に寄与する。よって、ＴＣＰ処理時間を短縮することができ、タイムアウト発生が引き起こすパフォーマンスダウンを軽減することが可能になる。
【０１２９】
なお、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行する。これによっても、本発明の目的が達成されることは言うまでもない。
【０１３０】
この場合、コンピュータ読み取り可能な記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【０１３１】
このプログラムコードを供給するための記録媒体として、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０１３２】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、次の場合も含まれることは言うまでもない。即ち、プログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合である。
【０１３３】
更に、記録媒体から読出されたプログラムコードがコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【０１３４】
【図１】本実施形態における通信装置の構成の一例を示すブロック図である。
【図２】図１に示すＴＯＥサブシステム１０５の内部構成の一例を示す図である。
【図３】ＴＯＥサブシステムにおける複数のサブプロセッサの役割を説明するための図である。
【図４】ＴＯＥサブシステムにおけるＰＣＢ制御部の構成の一例を示す図である。
【図５】本実施形態におけるＣＡＭ２０７の内部形式の一例を示す図である。
【図６】本実施形態におけるＣＡＭ２０８の内部形式の一例を示す図である。
【図７】本実施形態におけるＴＣＰＣＢの各要素の抜粋を示す図である。
【図８】サイズ毎に配置されたＴＣＰＣＢの形式を示す図である。
【図９】主メモリ上に配置されたＴＣＰＣＢ群を示す図である。
【図１０】ＰＣＢキャッシュメモリ２１１上に配置された各ＴＣＰＣＢの様子を示す図である。
【図１１】本実施形態における通信タイマの構成の一例を示す図である。
【図１２】本実施形態における計時処理部に内蔵されるイベントＦＩＦＯのデータ形式を示す図である。
【図１３】本実施形態におけるタイマ初期値の形式を示す図である。
【図１４】本実施形態におけるタイマ計数値の形式を示す図である。
【図１５】本実施形態における計時処理部に存在するタイムベースの分解能と時間値との関係を示す図である。
【図１６】本実施形態における通信タイマの計時処理を示すフローチャートである。
【図１７】本実施形態におけるタイマ計数値のテーブルの形式を示す図である。
【図１８】本実施形態におけるイベント通知処理を示すフローチャートである。
【図１９】本実施形態における指数バックオフ処理を示すフローチャートである。
【図２０】本実施形態におけるプリロード処理を示すフローチャートである。
【図２１】本実施形態におけるＰＣＢ管理テーブル上に配置されたソケット番号の使用／未使用を表すビットマップを示す図である。
【図２２】本実施形態におけるＰＣＢ管理テーブル上に配置されたキャッシュブロック番号の使用／未使用を表すビットマップを示す図である。
【図２３】本実施形態におけるＬＲＵテーブル中の連結ブロックの形式を示す図である。
【図２４】ＬＲＵテーブルの形式並びにＬＲＵテーブル中の連結ブロックと先頭ポインタと終端ポインタの関係を示す図である。
【図２５】本実施形態におけるＰＣＢキャッシュメモリ制御部４０７のアドレス変換を示す図である。
【符号の説明】
【０１３５】
２０１  サブプロセッサＡ
２０２  サブプロセッサＢ
２０３  サブプロセッサＣ
２０４  サブプロセッサＤ
２０５  サブプロセッサＥ
２０７  ＣＡＭ
２０８  ＣＡＭ
２０９  ＣＡＭ
２１０  ＰＣＢ制御部
２１１  ＰＣＢキャッシュメモリ
２１２  通信タイマ
２１３  共有メモリ
２１７  データパス制御部
２１８  ＭＡＣ（Media Access Control）
２１９  ＰＨＹ（Physical Layer Chip）
【図１】
0005028339.tif 000002
【図２】
0005028339.tif 000003
【図３】
0005028339.tif 000004
【図４】
0005028339.tif 000005
【図５】
0005028339.tif 000006
【図６】
0005028339.tif 000007
【図７】
0005028339.tif 000008
【図８】
0005028339.tif 000009
【図９】
0005028339.tif 000010
【図１０】
0005028339.tif 000011
【図１１】
0005028339.tif 000012
【図１２】
0005028339.tif 000013
【図１３】
0005028339.tif 000014
【図１４】
0005028339.tif 000015
【図１５】
0005028339.tif 000016
【図１６】
0005028339.tif 000017
【図１７】
0005028339.tif 000018
【図１８】
0005028339.tif 000019
【図１９】
0005028339.tif 000020
【図２０】
0005028339.tif 000021
【図２１】
0005028339.tif 000022
【図２２】
0005028339.tif 000023
【図２３】
0005028339.tif 000024
【図２４】
0005028339.tif 000025
【図２５】
0005028339.tif 000026