(57)【要約】【課題】通信時のＣＰＵの負担を軽減すること。【解決手段】主メモリ部３は、複数受信データ領域を複数ディスクリプタに対応付けるディスクリプタチェイン１２を記録している。通信制御部１０は、ネットワークを介して受信された書き込み受信データがパケットバッファ７に蓄積された場合で、書き込み受信データ領域に対応するディスクリプタが記録可能を示しているときにその書き込み受信データ領域にその書き込み受信データを記録し、そのディスクリプタが記録不可能を示しているときに割り込み信号を出力する。ＣＰＵ２は、その割り込み信号が出力されたときに、読み出し受信データ領域から受信データを読み出し、その読み出し受信データ領域に対応するディスクリプタが記録可能を示すように、そのディスクリプタチェインを更新する。このとき、その割り込み信号は、１パケットごとに出力されないで、ＣＰＵの負担を軽減することができる。【選択図】図１
2011193242.tif 000002
【特許請求の範囲】
【請求項１】
複数受信データ領域を備え、前記複数受信データ領域を複数ディスクリプタに対応付けるディスクリプタチェインを記録する主メモリ部と、
ネットワークを介して受信された書き込み受信データがパケットバッファに蓄積されたときに、前記ディスクリプタチェインを参照して、前記複数ディスクリプタのうちの書き込み受信データ領域に対応するディスクリプタが記録可能を示すときに前記書き込み受信データ領域に前記書き込み受信データを記録し、前記ディスクリプタが記録不可能を示すときに割り込み信号を出力する通信制御部と、
前記割り込み信号が出力されたときに、前記複数受信データ領域のうちの読み出し受信データ領域から受信データを読み出し、前記複数ディスクリプタのうちの前記読み出し受信データ領域に対応するディスクリプタが記録可能を示すように、前記ディスクリプタチェインを更新するＣＰＵ
とを具備する通信制御装置。
【請求項２】
請求項１において、
前記通信制御部は、前記書き込み受信データ領域に前記書き込み受信データが記録されたときに、前記複数ディスクリプタのうちの前記書き込み受信データ領域に対応するディスクリプタが記録不可能を示すように、前記ディスクリプタチェインを更新する
通信制御装置。
【請求項３】
請求項２において、
前記通信制御部は、前記ディスクリプタが記録不可能を示すときに再開フラグをクリアし、前記割り込み信号が出力されたときに前記再開フラグを設定し、
前記割り込み信号は、前記再開フラグがクリアされているときに、出力される
通信制御装置。
【請求項４】
請求項１〜請求項３のいずれかにおいて、
前記複数ディスクリプタは、それぞれ、再利用可能または再利用不可能のいずれかに対応し、
前記複数ディスクリプタのうちの再利用不可能に対応する再利用不可能ディスクリプタは、前記複数ディスクリプタのうちの前記再利用不可能ディスクリプタと異なる他のディスクリプタを示し、
前記通信制御部は、前記書き込み受信データ領域に前記書き込み受信データが記録された後に、前記ネットワークを介して受信された他の書き込み受信データが前記パケットバッファに蓄積された場合で、前記複数受信データ領域のうちの書き込み受信データ領域の次の受信データ領域に対応する次のディスクリプタが再利用可能を示すときに、前記次の受信データ領域に前記他の書き込み受信データを記録し、前記次のディスクリプタが再利用不可能を示すときに、前記次のディスクリプタが示すディスクリプタに対応する受信データ領域に前記他の書き込み受信データを記録する
通信制御装置。
【請求項５】
請求項４において、
前記ＣＰＵは、受信データを読み出す頻度に基づいて前記複数ディスクリプタから選択された１つのディスクリプタが記録不可能を示すように、前記ディスクリプタチェインを更新する
通信制御装置。
【請求項６】
ネットワークを介して受信された書き込み受信データがパケットバッファに蓄積されたときに、主メモリ部が備える複数受信データ領域を複数ディスクリプタに対応付けるディスクリプタチェインを参照して、前記複数受信データ領域のうちの書き込み受信データ領域に対応するディスクリプタが記録可能を示すときに前記書き込み受信データ領域に前記書き込み受信データを記録し、前記書き込み受信データ領域に対応するディスクリプタが記録不可能を示すときに割り込み信号を出力するステップと、
前記割り込み信号が出力されたときに、前記複数受信データ領域のうちの読み出し受信データ領域からＣＰＵに受信データを読み出し、前記読み出し受信データ領域に対応するディスクリプタが記録可能を示すように、前記ディスクリプタチェインを更新するステップ
とを具備する通信制御方法。
【請求項７】
請求項６において、
前記書き込み受信データ領域に前記書き込み受信データが記録されたときに、複数ディスクリプタのうちの前記書き込み受信データ領域に対応するディスクリプタが記録不可能を示すように、前記ディスクリプタチェインを更新するステップ
をさらに具備する通信制御方法。
【請求項８】
請求項７において、
前記ディスクリプタが記録不可能を示すときに、再開フラグをクリアするステップと、
前記割り込み信号が出力されたときに、前記再開フラグを設定するステップとを更に具備し、
前記割り込み信号は、前記再開フラグがクリアされているときに、出力される
通信制御方法。
【請求項９】
請求項６〜請求項８のいずれかにおいて、
前記複数ディスクリプタは、それぞれ、再利用可能または再利用不可能のいずれかに対応し、
前記複数ディスクリプタのうちの再利用不可能に対応する再利用不可能ディスクリプタは、前記複数ディスクリプタのうちの前記再利用不可能ディスクリプタと異なる他のディスクリプタを示し、
さらに、
前記書き込み受信データ領域に前記書き込み受信データが記録された後に、前記ネットワークを介して受信された他の書き込み受信データが前記パケットバッファに蓄積された場合で、前記複数受信データ領域のうちの書き込み受信データ領域の次の受信データ領域に対応する次のディスクリプタが再利用可能を示すときに、前記次の受信データ領域に前記他の書き込み受信データを記録し、前記次のディスクリプタが再利用不可能を示すときに、前記次のディスクリプタが示すディスクリプタに対応する受信データ領域に前記他の書き込み受信データを記録するステップ
を具備する通信制御方法。
【請求項１０】
請求項９において、
受信データを読み出す頻度に基づいて前記複数ディスクリプタから選択された１つのディスクリプタが記録不可能を示すように、前記ディスクリプタチェインを更新するステップ
をさらに具備する通信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信制御装置および通信制御方法に関し、特に、イーサーネット（登録商標）に例示される通信において受信データを受信するときに利用される通信制御装置および通信制御方法に関する。
【背景技術】
【０００２】
家庭用ルーターの普及により、家庭でも複数台のパーソナルコンピュータをＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）でつなぎ、プリンタやディスクシステムを共有するようになってきている。例えば、パーソナルコンピュータからプリンタに印刷する場合は、モノクロの印刷からカラー印刷に変わってきているため送信するデータ量が増加していると共に、画像データのような大容量のデータをイーサーネット（登録商標）経由でディスクシステムに残しておくことができる。この流れの中で、イーサーネット（登録商標）などの通信装置は、大きなデータを複数のパケットに分けて送信するが、送信対象のデータが大容量化したことで送信するパケット数が増えてしまっている。以上のように、複数のパーソナルコンピュータから大容量のデータ通信をするために通信効率の向上が必要となっている。
【０００３】
特開２００３−８５１２９号公報には、データ受信の終了を容易に検知してデータ転送することが可能なデータ通信コントローラが開示されている。そのデータ通信コントローラは、受信データを一時保持する受信ＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）メモリと、該受信ＦＩＦＯメモリに保持されたデータがすべて転送されると該受信ＦＩＦＯメモリから出力されるデータエンプティ信号により、受信終了信号を生成する受信終了信号生成手段とを備えたことを特徴としている。
【０００４】
特開２００１−１４７８７５号公報には、ネットワークを通じてパケット単位で伝送される通信データを受信した旨を示す割り込み信号の発生回数を低減させて、処理装置への負荷を軽減したデータ通信システムが開示されている。そのデータ通信システムは、ネットワークを通じて通信データの受信及び送信を行うＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）と、一時的に通信データを保持するパケットバッファと、通信データを格納する主メモリ部、送受信手段ＭＡＣから転送された通信データを主メモリ部に格納する制御を司るＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラと、主メモリ部とのメモリインターフェイス部と、データ通信システムの制御を司るＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）とを備えている。そのネットワークを通じて受信された通信データは、ＭＡＣのパケットバッファに一旦格納される。このとき、その通信データは、連続して受信された通信データと、その後に受信された通信データの２つのブロックに分かれて受信される。その通信データは、次いで、メモリインターフェイス部５を介して、ＭＡＣ３１から主メモリ部３に転送される。それぞれの通信データの先頭部分には、その通信データに関する情報等を示すディスクリプタが付加されている。そのディスクリプタ内には、後続する通信データが転送可能状態となったかどうかを示すステータスフラグが設けられている。その後続する通信データは、そのステータスフラグが転送可能を示していれば、割り込み信号が発生されずに、引き続き、主メモリ部へ転送される。このため、そのデータ通信システムは、連続して受信した複数パケットの通信データを一体的な１つの通信データとして扱うことができ、１回の割り込み信号によりデータ転送を制御することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−８５１２９号公報
【特許文献２】特開２００１−１４７８７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特開２００１−１４７８７５号公報の技術では、ＣＰＵは、送信元と送信先が一対一のときに、１回の割り込みで連続パケット処理をおこなうことができる。しかし、複数台のパーソナルコンピュータと１台のプリンタの場合のように、複数の送信元からのデータを受信する場合に、ＭＡＣは、複数の送信元のデータが混在したデータを受信しなければならなくなり、複数の送信元のデータが混在する場合に、後続するデータが存在しないと判断されることとなり、１パケット毎に割り込みを出すことになる。すなわち、特開２００１−１４７８７５号公報の技術では、送信元と送信先が多対一の場合に、複数の送信元のデータが混在するため連続パケット処理できず割り込み回数が増えてしまいＣＰＵの処理負担が増えるという問題がある。
【０００７】
特開２００１−１４７８７５号公報の技術では、さらに、ＣＰＵが主メモリ部の受信データを読み込むことで、主メモリ部の受信データ格納場所は、新しい受信データを格納可能になる。（以下、再利用と記載される。）受信データ格納場所を再利用するためには、ＣＰＵがＭＡＣとＤＭＡコントローラとを一度停止させ、ＣＰＵがＤＭＡコントローラへ設定する受信データの格納アドレスを再設定し、ＤＭＡコントローラとＭＡＣを再初期化する必要がある。このため、ＣＰＵの負担が増加していた。それは、ＤＭＡコントローラがディスクリプタを構築して受信データを格納していくシステムであるため、格納開始信号を出すＭＡＣは、ＣＰＵの受信データ読み込み終了を知る手段がなく、いつ受信データ格納場所を再利用できるようになるのか知ることができない。そのため、ＣＰＵは、ＭＡＣとＤＭＡコントローラとの動作を止めないと受信データ格納場所の再利用ができない。
【０００８】
ＣＰＵがＭＡＣを止める場合の例を、１台のプリンタと複数のパーソナルコンピュータとを接続する場合を例にとり説明する。このとき、パーソナルコンピュータが印刷するデータをプリンタに送信し、プリンタは、パーソナルコンピュータからの送信データを受信することになる。プリンタからは、データ送信要求をださないため、データを送るタイミングを制御できるのは、データ送信側のパーソナルコンピュータとなり、ＭＡＣが動作しているときには、パーソナルコンピュータからのデータを受信してしまう。このため、ＭＡＣは、パケットバッファに受信データを格納する。データ格納場所の準備ができないとき、ＤＭＡコントローラは、パケットバッファの受信データを主メモリ部に転送しないため、ＭＡＣがデータを受信し続けるとパケットバッファに受信データを格納しきれなくなりオーバーフローエラーの状態となる。以上のようにオーバーフローエラーを発生させないためにもプリンタ側が受信できないときには、ＭＡＣを停止し、パーソナルコンピュータからの送信データを受信しないように制御しなければならない。
【０００９】
本発明の課題は、通信時のＣＰＵの負担を軽減する通信制御装置および通信制御方法を提供することにある。
【課題を解決するための手段】
【００１０】
以下に、発明を実施するための形態・実施例で使用される符号を括弧付きで用いて、課題を解決するための手段を記載する。この符号は、特許請求の範囲の記載と発明を実施するための形態・実施例の記載との対応を明らかにするために付加されたものであり、特許請求の範囲に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１１】
本発明による通信制御装置は、主メモリ部（３）と通信制御部（１０）とＣＰＵ（２）とを備えている。主メモリ部（３）は、複数受信データ領域（２０〜２４）を備え、複数受信データ領域（２０〜２４）を複数ディスクリプタ（１３〜１８）に対応付けるディスクリプタチェイン（１２）を記録する。通信制御部（１０）は、ネットワークを介して受信された書き込み受信データがパケットバッファ（７）に蓄積されたときに、ディスクリプタチェイン（１２）を参照して、複数ディスクリプタ（１３〜１８）のうちの書き込み受信データ領域に対応するディスクリプタが記録可能を示しているときにその書き込み受信データ領域にその書き込み受信データを記録し、そのディスクリプタが記録不可能を示しているときに割り込み信号を出力する。ＣＰＵ（２）は、その割り込み信号が出力されたときに、複数受信データ領域（２０〜２４）のうちの読み出し受信データ領域から受信データを読み出し、複数ディスクリプタ（１３〜１８）のうちのその読み出し受信データ領域に対応するディスクリプタが記録可能を示しているように、そのディスクリプタチェインを更新する。
【００１２】
本発明による通信制御方法は、
ネットワークを介して受信された書き込み受信データがパケットバッファ（７）に蓄積されたときに、主メモリ部（３）が備えている複数受信データ領域（２０〜２４）を複数ディスクリプタ（１３〜１８）に対応付けるディスクリプタチェイン（１２）を参照して、複数受信データ領域（２０〜２４）のうちの書き込み受信データ領域に対応するディスクリプタが記録可能を示しているときにその書き込み受信データ領域にその書き込み受信データを記録し、その書き込み受信データ領域に対応するディスクリプタが記録不可能を示しているときに割り込み信号を出力するステップと、
その割り込み信号が出力されたときに、複数受信データ領域（２０〜２４）のうちの読み出し受信データ領域からＣＰＵ（２）に受信データを読み出し、その読み出し受信データ領域に対応するディスクリプタが記録可能を示しているように、そのディスクリプタチェインを更新するステップとを備えている。
【発明の効果】
【００１３】
本発明による通信制御装置および通信制御方法は、主メモリ部のうちの書き込み可能である受信データ領域の情報量が１パケットの情報量より大きいときに、割り込み信号が１パケットごとにＣＰＵに出力されないで、通信時のＣＰＵの負担を軽減することができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、本発明による通信制御装置を示すブロック図である。
【図２】図２は、本発明による通信制御装置を示すブロック図である。
【図３】図３は、主メモリ部を示すブロック図である。
【図４】図４は、ディスクリプタを示す図である。
【図５】図５は、ＣＰＵの動作を示すフローチャートである。
【図６】図６は、通信制御部の動作を示すフローチャートである。
【図７】図７は、ＣＰＵが主メモリ部にディスクリプタチェインを用意する動作を示すフローチャートである。
【図８】図８は、主メモリ部に記録される他のディスクリプタチェインを示す図である。
【発明を実施するための形態】
【００１５】
図面を参照して、本発明による通信制御装置の実施の形態を記載する。その通信制御装置は、図１と図２に示されているように、通信制御部１０とＣＰＵ２と主メモリ部３とメモリインターフェイス部５とを備えている。メモリインターフェイス部５は、内部バス６を介して、通信制御部１０に双方向に情報伝達可能に接続され、ＣＰＵ２に双方向に情報伝達可能に接続されている。ＣＰＵ２は、割り込み信号線１１を介して、通信制御部１０に情報伝達可能に接続されている。
【００１６】
主メモリ部３は、メモリインターフェイス部５により書き込み、読み出し可能なデータを記録する。メモリインターフェイス部５は、通信制御部１０に制御されて、通信制御部１０から出力されるデータを主メモリ部３に記録する。メモリインターフェイス部５は、さらに、ＣＰＵ２に制御されて、主メモリ部３に記録されているデータを読み出し、そのデータをＣＰＵ２に出力する。通信制御部１０は、ネットワークに接続され、そのネットワークを介して他の通信機器から受信データを受信し、または、そのネットワークを介して他の通信機器に通信データを送信する。ＣＰＵ２は、割り込み信号線１１を介して通信制御部１０から割り込み信号を受信したときに、メモリインターフェイス部５を介して、主メモリ部３に記録されている受信データを読み出し、その受信データをデータ処理する。
【００１７】
通信制御部１０は、ＭＡＣ１とＤＭＡコントローラ４とＦＩＦＯ制御９とを備えている。ＦＩＦＯ制御９は、パケットバッファ７とバッファ制御８とを備えている。バッファ制御８は、再開フラグ３４を記録している。再開フラグ３４は、通信制御部１０が一時停止状態から再開するときに割り込みを出すか出さないかの判定に使用される。ＭＡＣ１は、ネットワークに接続され、パケットバッファ７とバッファ制御８に接続されている。ＭＡＣ１は、そのネットワークを介して他の通信機器から通信データを受信し、その通信データをパケットバッファ７に記録する。ＭＡＣ１は、そのネットワークを介して他の通信機器に通信データを送信する。ＤＭＡコントローラ４は、パケットバッファ７とバッファ制御８に接続され、データの入出力を制御する。ＤＭＡコントローラ４は、さらに、内部バス６に接続され、メモリインターフェイス部５とデータの授受を行う。
【００１８】
図３は、主メモリ部３を示している。主メモリ部３は、ディスクリプタチェイン領域１２とＭＡＣ受信データ領域１９とを備えている。ディスクリプタチェイン領域１２には、ディスクリプタチェインが記録される。そのディスクリプタチェインは、複数のディスクリプタ１３〜１８から形成されている。ＭＡＣ受信データ領域１９は、複数の受信データ領域２０〜２４を備えている。複数の受信データ領域２０〜２４には、通信制御部１０により他の通信機器から受信された受信データが記録される。
【００１９】
図４は、複数のディスクリプタ１３〜１８のうちの１つのディスクリプタ１３を示している。ディスクリプタ１３は、Ｔビット２５とＵビット２６とポインタ２７とを有している。ポインタ２７は、受信データポインタまたはリンクポインタのうちのいずれかに使われる。その受信データポインタは、複数の受信データ領域２０〜２４のうちのいずれかの領域のアドレスを示している。そのリンクポインタは、ディスクリプタチェイン領域１２のうちのディスクリプタ１３が記録されている領域のアドレスを示している。Ｔビット２５は、０または１のいずれかを示している。Ｔビット２５は、０を示すときにポインタ２７が受信データポインタを示すことを示し、１を示すときにポインタ２７がリンクポインタを示すことを示している。Ｕビット２６は、０または１のいずれかを示している。Ｕビット２６は、０を示すときに、ポインタ２７が示す領域に受信データが記録されていないことを示し、ＣＰＵ２がその受信データを読み込みすることができないことを示している。Ｕビット２６は、１を示すときに、ポインタ２７が示す領域に受信データが記録されていることを示し、ＣＰＵ２がその受信データを読み込みすることができることを示している。
【００２０】
複数のディスクリプタ１３〜１８のうちのディスクリプタ１３と異なる他のディスクリプタ１４〜１８は、それぞれ、ディスクリプタ１３と同様にして、Ｔビット２５とＵビット２６とポインタ２７とを有している。
【００２１】
図５は、ＣＰＵ２の動作を示している。ＣＰＵ２は、本発明による通信制御装置が起動されると、まず、主メモリ部３にＭＡＣ受信データ領域１９を確保し、メモリインターフェイス部５を介して主メモリ部３のディスクリプタチェイン領域１２にディスクリプタチェインを用意する（ステップＳ１０１）。ＣＰＵ２は、次に、通信制御部１０のＤＭＡコントローラ４とＭＡＣ１とを初期化して通信制御部１０を起動する（ステップＳ１０２）。ＣＰＵ２は、通信制御部１０を監視し、通信制御部１０が主メモリ部３に受信データを格納し終わるまで、すなわち、割り込み信号線１１を介して、通信制御部１０から割り込み信号が出力されるまで待機する（ステップＳ１０３）。
【００２２】
ＣＰＵ２は、通信制御部１０から割り込み信号が出力されたときに（ステップＳ１０３、ＹＥＳ）、ディスクリプタ１３を読み込み、ディスクリプタ１３のＵビット２６が１であるかどうかを判別し、すなわち、ＣＰＵ２が受信データを読み込むことができるかどうかを確認する（ステップＳ１０４）。ＣＰＵ２は、Ｕビット２６が１であるときに、主メモリ部３のうちのディスクリプタ１３のポインタ２７が示す領域に格納された受信データを読み込む（ステップＳ１０５）。ＣＰＵ２は、同様にして、ディスクリプタ１４とディスクリプタ１５とディスクリプタ１６とディスクリプタ１７により示される受信データの読み込みを行う。ＣＰＵ２は、受信データ領域２０と受信データ領域２１と受信データ領域２２と受信データ領域２３と受信データ領域２４に記録された受信データを読み込み終わると、ディスクリプタ１３とディスクリプタ１４とディスクリプタ１５とディスクリプタ１６とディスクリプタ１７とディスクリプタ１８のＵビット２６を０にクリアする（ステップＳ１０６）。
【００２３】
ＣＰＵ２は、ステップＳ１０６を実行した後に、再度、通信制御部１０を監視し、割り込み信号線１１を介して、通信制御部１０から割り込み信号が出力されるまで待機する（ステップＳ１０３）。ＣＰＵ２は、通信制御部１０から割り込み信号が出力されるたびに（ステップＳ１０３、ＹＥＳ）、ステップＳ１０４〜ステップＳ１０６の動作を繰り返して実行する。
【００２４】
図７は、通信制御部１０の動作を示している。通信制御部１０は、ＣＰＵ２によりステップＳ１０２が実行されることにより、起動される。通信制御部１０が起動すると、ＤＭＡコントローラ４は、まず、メモリインターフェイス部５を介して主メモリ部３からディスクリプタ１３を読み出す（ステップＳ２０１）。
【００２５】
ＤＭＡコントローラ４は、その読み込まれたディスクリプタのＴビット２５が０を示し（ステップＳ２０２、ＮＯ）、かつ、その読み込まれたディスクリプタのＵビット２６が０を示しているときに（ステップＳ２０３、ＮＯ）、再開フラグ３４を０でクリアする（ステップＳ２０４）。再開フラグ３４をクリアした後に、ＭＡＣ１は、受信データがパケットバッファ７に蓄積されるまで待機する（ステップＳ２０５）。
【００２６】
バッファ制御８は、受信データがパケットバッファ７に蓄積されると（ステップＳ２０５、ＹＥＳ）、ＤＭＡコントローラ４に受信データを読み込むように指示する。ＤＭＡコントローラ４は、その指示に応答して、その読み込まれたディスクリプタのポインタ２７が示すＭＡＣ受信データ領域１９の受信データ領域２０にパケットバッファ７の受信データを格納する（ステップＳ２０６）。バッファ制御８は、ＤＭＡコントローラ４が１パケット分の受信データを主メモリ部３にまだ格納していないときに（ステップＳ２０７、ＮＯ）、再度、ＤＭＡコントローラ４に受信データを読み込むように指示する（ステップＳ２０５）。ＤＭＡコントローラ４は、１パケット分の受信データの格納を終了すると（ステップＳ２０７、ＹＥＳ）、その読み込まれたディスクリプタのＵビット２６に１を書き込む（ステップＳ２０８）。
【００２７】
ＤＭＡコントローラ４は、ステップＳ２０１で読み込まれたディスクリプタのＴビット２５が１であるときに（ステップＳ２０２、ＹＥＳ）、その読み込まれたディスクリプタのＵビット２６に１を書き込む（ステップＳ２０８）。
【００２８】
ＤＭＡコントローラ４は、ステップＳ２０１で読み込まれたディスクリプタのＴビット２５が０であり（ステップＳ２０２、ＮＯ）、かつ、その読み込まれたディスクリプタのＵビット２６が１を示しているときに（ステップＳ２０３、ＹＥＳ）、再開フラグ３４が１かどうかを確認する（ステップＳ２０９）。
【００２９】
ＤＭＡコントローラ４は、再開フラグ３４が０であるときに（ステップＳ２０９、ＮＯ）、割り込み信号線１１を介して割り込み信号をＣＰＵ２へ出力する（ステップＳ２１０）。ＤＭＡコントローラ４は、割り込み信号をＣＰＵ２へ出力した後に、再開フラグ３４を１に設定する（ステップＳ２１１）。ＤＭＡコントローラ４は、再開フラグ３４が１であるときに（ステップＳ２０９、ＹＥＳ）、または、再開フラグ３４に１が設定された後に、受信データがパケットバッファ７に蓄積されるまで待機する（ステップＳ２１２）。
【００３０】
バッファ制御８は、ステップＳ２０８が実行された後に、または、再開フラグ３４に１が設定された後に受信データがパケットバッファ７に蓄積されたときに（ステップＳ２１２、ＹＥＳ）、受信データを転送するようにＤＭＡコントローラ４に指示する。ＤＭＡコントローラ４は、その指示に応答して、ステップＳ２０１で前回に読み込まれたディスクリプタの次のディスクリプタを読み込む（ステップＳ２０１）。そのディスクリプタは、その前回に読み込まれたディスクリプタのＴビット２５が１であるときに、その前回に読み込まれたディスクリプタのポインタ２７が示すリンクポインタが示すディスクリプタである。
【００３１】
図６は、図５のステップＳ１０１を示し、すなわち、主メモリ部３のディスクリプタチェイン領域１２にディスクリプタチェインを用意する動作を示している。ＤＭＡコントローラ４は、まず、ディスクリプタ１３のＵビット２６を０に設定し、ディスクリプタ１３のＴビット２５を０に設定し、ディスクリプタ１３のポインタ２７にＭＡＣ受信データ領域１９の受信データ領域２０の格納アドレスを示す受信データポインタを設定する（ステップＳ３０１）。ＤＭＡコントローラ４は、ディスクリプタ１４のＵビット２６を０に設定し、ディスクリプタ１４のＴビット２５を０に設定し、ディスクリプタ１４のポインタ２７にＭＡＣ受信データ領域１９の受信データ領域２１の格納アドレスを示す受信データポインタを設定する（ステップＳ３０２）。ＤＭＡコントローラ４は、ディスクリプタ１５のＵビット２６を０に設定し、ディスクリプタ１５のＴビット２５を０に設定し、ディスクリプタ１５のポインタ２７にＭＡＣ受信データ領域１９の受信データ領域２２の格納アドレスを示す受信データポインタを設定する（ステップＳ３０３）。ＤＭＡコントローラ４は、ディスクリプタ１６のＵビット２６を０に設定し、ディスクリプタ１６のＴビット２５を０に設定し、ディスクリプタ１６のポインタ２７にＭＡＣ受信データ領域１９の受信データ領域２３の格納アドレスを示す受信データポインタを設定する（ステップＳ３０４）。ＤＭＡコントローラ４は、ディスクリプタ１７のＵビット２６を０に設定し、ディスクリプタ１７のＴビット２５を０に設定し、ディスクリプタ１７のポインタ２７にＭＡＣ受信データ領域１９の受信データ領域２４の格納アドレスを示す受信データポインタを設定する（ステップＳ３０５）。ＤＭＡコントローラ４は、ディスクリプタ１８のＵビット２６を０に設定し、ディスクリプタ１８のＴビット２５を１に設定し、ディスクリプタ１８のポインタ２７に次のディスクリプタ１３のアドレスを示すリンクポインタを設定する（ステップＳ３０６）。
【００３２】
このような動作によれば、ディスクリプタ１８がディスクリプタ１３の配置アドレスになっているので、ディスクリプタチェインは、複数のディスクリプタ１３〜１８がリング状に構成される。
【００３３】
このような動作によれば、本発明による通信制御装置は、複数のパーソナルコンピュータから送信データを受信した場合でも、所定の情報量の受信データが蓄積された後に、通信制御部１０からＣＰＵ２へ割り込み信号が１回出力される。このため、ＣＰＵ２は、１パケットごとでないタイミングで受信データを読み出すことができ、ＣＰＵ２の負担が軽減される。また、通信制御部１０は、受信データを受信して一時停止状態を解除すると、ディスクリプタを再リードしてディスクリプタのＵビットの状態でＣＰＵ２が受信データの読み込みを完了したかを確認することができるので、ＣＰＵ２は、ＤＭＡコントローラ４とＭＡＣ１を再初期化する必要がなくなり、ＣＰＵ２の負担がさらに軽減される。
【００３４】
本発明による通信制御装置は、ディスクリプタ１３〜１８のＵビット２６の有無を通信制御部１０が検出し、そのＵビット２６を検出するとＣＰＵ２へ割り込み信号を出力し、メモリインターフェイス部５を介して受信データを主メモリ部３に格納する処理を一時停止状態に遷移させる。本発明による通信制御装置は、受信データを受信するとその一時停止状態を解除し、そのディスクリプタを再リードして、そのディスクリプタのＵビットが設定されていたら再度その一時停止状態にし、ＣＰＵがそのディスクリプタのＵビットをクリアすることでその一時停止状態を解除し、再度その一時停止状態に入るときに割り込みを出力する。すなわち、通信制御部１０は、ディスクリプタを読み込んだときにＵビットの状態でＣＰＵへ割り込みを出力できる。このため、ＣＰＵは、１度の割り込みで受信データの読み込みが一括でできるので、本発明による通信制御装置は、ＣＰＵの負担を低減することができる。
【００３５】
本発明による通信制御装置は、さらに、ディスクリプタを読み込んだときのＵビットの状態で受信動作を再開することができる。すなわち、本発明による通信制御装置は、受信データ格納場所を再利用するためにＣＰＵがＭＡＣとＤＭＡコントローラを操作する必要はなく、ディスクリプタの設定だけで済む。このため、本発明による通信制御装置は、ＣＰＵの負担を低減することができる。
【００３６】
ディスクリプタには、ＴビットとＵビットと受信データポインタまたはリンクポインタを有し、リンクポインタに一番目のディスクリプタの配置アドレスを指定することでディスクリプタチェインをリング状態にできる。このため、本発明による通信制御装置は、さらに、受信データ格納領域を再利用可能にでき、大容量ＲＡＭが不要となる。
【００３７】
図８は、ステップＳ１０１またはステップＳ１０６と異なる他の動作により設定されたＣＰＵ生成ディスクリプタを示している。そのＣＰＵ生成ディスクリプタチェイン２８は、既述の実施の形態におけるディスクリプタチェイン１２と比較して、ディスクリプタ１７が他のディスクリプタ２９に置換されている。ディスクリプタ２９は、Ｔビット２５が０に設定され、Ｕビット２６が１に設定されている。このとき、通信制御部１０は、ディスクリプタ２９を読み込み、Ｕビット２６が１になっていることを確認して割り込みを出力し、再開フラグを設定して一時停止状態になり、受信データを待つ。
【００３８】
すなわち、ＣＰＵ２は、既述の実施の形態におけるディスクリプタチェイン１２の設定と異なる他の設定をすることができ、たとえば、所望の頻度に基づいてその設定を設計することができる。このとき、本発明による通信制御装置は、受信データを一括して読み込みたいディスクリプタのＵビットを設定することで、ＣＰＵ２が受信データの読み込み処理をしたいタイミングで１回の割り込みを出力することができる。
【符号の説明】
【００３９】
１  ：ＭＡＣ
２  ：ＣＰＵ
３  ：主メモリ部
４  ：ＤＭＡコントローラ
５  ：メモリインターフェイス部
６  ：内部バス
７  ：パケットバッファ
８  ：バッファ制御
９  ：ＦＩＦＯ制御
１０：通信制御部
１１：割り込み信号線
１２：ディスクリプタチェイン領域
１３〜１８：ディスクリプタ
１９：ＭＡＣ受信データ領域
２０〜２４：受信データ領域
２５：Ｔビット
２６：Ｕビット
２７：ポインタ
３４：再開フラグ
【図１】
2011193242.tif 000003
【図２】
2011193242.tif 000004
【図３】
2011193242.tif 000005
【図４】
2011193242.tif 000006
【図５】
2011193242.tif 000007
【図６】
2011193242.tif 000008
【図７】
2011193242.tif 000009
【図８】
2011193242.tif 000010