(57)【要約】【課題】LANなどのネットワークシステムにおいて、パケットデータを送受信して通信することができるパケット通信装置およびその処理方法を提供。【解決手段】パケット通信装置10は、主制御部12がデータ処理に用いる通常バッファ26と、アクセラレータ22が暗号化／復号化処理に用いる処理バッファ24とを備えて、MAC 20とアクセラレータ22とを一体化して構成し、MAC 20は、受信パケットが緊急パケットであるか否かを判定して、緊急パケットである場合には受信パケットを処理バッファ24に転送し、その他の場合にはDMA制御部18に制御されて受信パケットを通常バッファ26に転送し、さらに、MAC 20が緊急パケット転送に応じて割込みIRQ2を主制御部12に送り、主制御部12がこの割込みIRQ2に応じて処理バッファ24における緊急パケットを優先的にデータ処理する。【選択図】図１
2007088709.tif 000002
【特許請求の範囲】
【請求項１】
通常バッファに格納された送受信パケットをデータ処理する主制御手段と、
外部からの受信パケットを前記通常バッファに転送し、前記通常バッファにおける送信パケットを外部に送信するメディアアクセスコントローラと、
前記通常バッファおよび前記メディアアクセスコントローラ間の前記送受信パケットの転送を制御して、前記主制御手段を介さずにダイレクトメモリアクセス転送させるダイレクトメモリアクセス制御手段と、
処理バッファに格納された前記送受信パケットを復号化および暗号化処理するアクセラレータとを含むパケット通信装置において、
該装置は、前記メディアアクセスコントローラおよび前記アクセラレータを一体化して構成し、
前記メディアアクセスコントローラは、前記受信パケットが前記主制御手段で緊急にデータ処理すべき緊急パケットであるか否かを判定する第１の判定手段を含み、その結果、緊急パケットである場合には前記受信パケットを前記処理バッファに転送して、第１の割込みを前記主制御手段に送り、それ以外の場合には前記受信パケットを通常パケットとして前記通常バッファに転送し、
前記主制御手段は、第１の割込みに応じて、前記緊急パケットである受信パケットを優先的にデータ処理することを特徴とするパケット通信装置。
【請求項２】
請求項１に記載のパケット通信装置において、第１の判定手段は、前記受信パケットが優先パケットであるか否かをその優先度に基づいて判定することにより、前記受信パケットが前記緊急パケットであるか否かを判定することを特徴とするパケット通信装置。
【請求項３】
請求項１に記載のパケット通信装置において、前記主制御手段は、前記緊急パケットである受信パケットを前記処理バッファ上でデータ処理することを特徴とするパケット通信装置。
【請求項４】
請求項１に記載のパケット通信装置において、前記主制御手段は、前記通常バッファにおける前記通常パケットのデータ処理中に第１の割込みを受けたとき、その処理中の前記通常パケットのデータ処理が終了してから、前記緊急パケットのデータ処理を開始し、該緊急パケットのデータ処理が終了してから、前記通常バッファに残っている前記通常パケットのデータ処理に戻ることを特徴とするパケット通信装置。
【請求項５】
請求項１に記載のパケット通信装置において、前記処理バッファは複数のバッファを有し、
前記メディアアクセスコントローラは、前記複数のバッファを交互に使用して前記緊急パケットを連続的に転送することを特徴とするパケット通信装置。
【請求項６】
請求項５に記載のパケット通信装置において、前記メディアアクセスコントローラは、前記複数のバッファのうち、いずれのバッファを緊急パケット転送に用いるかを示すバッファ指定手段と、
該バッファ指定手段を参照して前記複数のバッファの使用を調停するバッファ調停手段を含むことを特徴とするパケット通信装置。
【請求項７】
請求項６に記載のパケット通信装置において、前記複数のバッファは第１のバッファおよび第２のバッファを有し、
前記バッファ指定手段は、緊急パケット転送に第１のバッファを用いる場合には０の値を第２のバッファを用いる場合には１の値を示すフラグであり、初期状態では０の値を示し、
前記メディアアクセスコントローラは、新たに緊急パケットを受信したとき、前記バッファ指定手段を参照して前記緊急パケット転送に用いるバッファを判定し、その判定結果のバッファへと、前記緊急パケットを転送し、該緊急パケットの転送を完了したときに、優先パケット転送完了通知を前記バッファ調停手段に通知し、
前記主制御手段は、緊急パケットのデータ処理などのパケット処理を行うとき、前記バッファ指定手段を参照して前記パケット処理を行うべきバッファを判定し、その判定結果のバッファにおけるパケットに対してパケット処理を行い、該パケット処理を終了したときに、パケット処理終了通知を前記バッファ調停手段に通知し、
前記バッファ調停手段は、前記主制御手段から前記パケット処理終了通知を、または前記メディアアクセスコントローラから前記優先パケット転送完了通知を受けたときに、前記バッファ指定手段の示す値を変換して更新することを特徴とするパケット通信装置。
【請求項８】
請求項１に記載のパケット通信装置において、
前記主制御手段は、前記送信パケットが緊急にデータ処理すべき緊急パケットであるか否かを判定する第２の判定手段を含み、その結果、緊急パケットである場合には前記送信パケットを前記処理バッファに転送し、それ以外の場合には前記送信パケットを通常パケットとして前記通常バッファに転送し、
さらに、前記送信パケットを優先的にデータ処理して、優先パケット送信指令を前記メディアアクセスコントローラに送り、
前記メディアアクセスコントローラは、前記優先パケット送信指令に応じて、前記緊急パケットである送信パケットを優先的に送信することを特徴とするパケット通信装置。
【請求項９】
通常バッファに格納された送受信パケットをデータ処理する主制御手段と、
外部からの受信パケットを前記通常バッファに転送し、前記通常バッファにおける送信パケットを外部に送信するメディアアクセスコントローラと、
前記通常バッファおよび前記メディアアクセスコントローラ間の前記送受信パケットの転送を制御して、前記主制御手段を介さずにダイレクトメモリアクセス転送させるダイレクトメモリアクセス制御手段と、
処理バッファに格納された前記送受信パケットを復号化および暗号化処理するアクセラレータとを含むパケット通信装置において、
該装置は、前記メディアアクセスコントローラおよび前記アクセラレータを一体化して構成し、
前記主制御手段は、前記送信パケットが緊急にデータ処理すべき緊急パケットであるか否かを判定する第２の判定手段を含み、その結果、緊急パケットである場合には前記送信パケットを前記処理バッファに転送し、それ以外の場合には前記送信パケットを通常パケットとして前記通常バッファに転送し、
さらに、前記送信パケットを優先的にデータ処理して、優先パケット送信指令を前記メディアアクセスコントローラに送り、
前記メディアアクセスコントローラは、前記優先パケット送信指令に応じて、前記緊急パケットである送信パケットを優先的に送信することを特徴とするパケット通信装置。
【請求項１０】
請求項９に記載のパケット通信装置において、前記主制御手段は、前記緊急パケットである送信パケットを前記処理バッファ上でデータ処理することを特徴とするパケット通信装置。
【請求項１１】
外部から受信された受信パケットをメディアアクセスコントローラにて前記通常バッファに転送する第１の受信パケット転送工程と、
通常バッファに格納された受信パケットを主制御部にてデータ処理する第１のデータ処理工程と、
前記通常バッファおよび前記メディアアクセスコントローラ間の前記受信パケットの転送をダイレクトメモリアクセス制御部で制御して、前記主制御部を介さずにダイレクトメモリアクセス転送させる転送制御工程と、
処理バッファに格納された前記受信パケットをアクセラレータで復号化処理する復号化工程とを含むパケット処理方法において、該方法は、
一体化された前記メディアアクセスコントローラおよび前記アクセラレータを使用し、
前記受信パケットが前記主制御手段で緊急にデータ処理すべき緊急パケットであるか否かを前記メディアアクセスコントローラで判定して、その結果、前記受信パケットが緊急パケットである場合には前記受信パケットを前記処理バッファに転送する第２の受信パケット転送工程を含み、第１の割込みを前記主制御部に送り、それ以外の場合には第１の受信パケット転送工程により前記受信パケットを通常パケットとして前記通常バッファに転送する第１の判定工程と、
第１の割込みに応じて、前記緊急パケットである受信パケットを主制御部にて優先的にデータ処理する第２のデータ処理工程とを含むことを特徴とするパケット処理方法。
【請求項１２】
請求項11に記載のパケット処理方法において、第１の判定工程は、前記受信パケットが優先パケットであるか否かをその優先度に基づいて判定することにより、前記受信パケットが前記緊急パケットであるか否かを判定することを特徴とするパケット処理方法。
【請求項１３】
請求項11に記載のパケット処理方法において、第２のデータ処理工程は、前記緊急パケットである受信パケットを前記処理バッファ上でデータ処理することを特徴とするパケット処理方法。
【請求項１４】
請求項11に記載のパケット処理方法において、第２のデータ処理工程は、前記主制御部において、前記通常バッファにおける前記通常パケットのデータ処理中に第１の割込みを受けたとき、その処理中の前記通常パケットのデータ処理が終了してから、前記緊急パケットのデータ処理を開始し、該緊急パケットのデータ処理が終了してから、前記通常バッファに残っている前記通常パケットのデータ処理に戻ることを特徴とするパケット処理方法。
【請求項１５】
請求項11に記載のパケット処理方法において、該方法は、複数のバッファを有する前記処理バッファを使用し、
第２の受信パケット転送工程は、前記メディアアクセスコントローラにおいて、前記複数のバッファを交互に使用して前記緊急パケットを連続的に転送することを特徴とするパケット処理方法。
【請求項１６】
請求項15に記載のパケット処理方法において、該方法は、前記複数のバッファのうち、いずれのバッファを緊急パケット転送に用いるかを示すバッファ指定部を参照して、前記複数のバッファの使用をバッファ調停部で調停するバッファ調停工程を含むことを特徴とするパケット処理方法。
【請求項１７】
請求項16に記載のパケット処理方法において、該方法は、第１のバッファおよび第２のバッファを有する前記複数のバッファを使用し、
緊急パケット転送に第１のバッファを用いる場合には０の値を第２のバッファを用いる場合には１の値を示すフラグであり、初期状態では０の値を示す前記バッファ指定部を使用し、
第２の受信パケット転送工程は、前記メディアアクセスコントローラにて、新たに緊急パケットを受信したとき、前記バッファ指定部を参照して前記緊急パケット転送に用いるバッファを判定し、その判定結果のバッファへと、前記緊急パケットを転送し、該緊急パケットの転送を完了したときに、優先パケット転送完了通知を前記バッファ調停部に通知し、
第１または第２のデータ処理工程は、前記主制御部にて、緊急パケットのデータ処理などのパケット処理を行うとき、前記バッファ指定部を参照して前記パケット処理を行うべきバッファを判定し、その判定結果のバッファにおけるパケットに対してパケット処理を行い、該パケット処理を終了したときに、パケット処理終了通知を前記バッファ調停部に通知し、
前記バッファ調停工程は、前記バッファ調停部にて、前記主制御部から前記パケット処理終了通知を、または前記メディアアクセスコントローラから前記優先パケット転送完了通知を受けたときに、前記バッファ指定部の示す値を変換して更新することを特徴とするパケット処理方法。
【請求項１８】
通常バッファに格納された送信パケットを前記主制御部にてデータ処理する第３のデータ処理工程と、
前記通常バッファにおける送信パケットを前記メディアアクセスコントローラにて外部に送信する第１の送信パケット転送工程と、
前記通常バッファおよび前記メディアアクセスコントローラ間の前記送信パケットの転送をダイレクトメモリアクセス制御部で制御して、前記主制御部を介さずにダイレクトメモリアクセス転送させる転送制御工程と、
前記処理バッファに格納された前記送信パケットをアクセラレータで暗号化処理する暗号化工程とを含むパケット処理方法において、該方法は、
一体化された前記メディアアクセスコントローラおよび前記アクセラレータを使用し、
第３のデータ処理工程は、前記送信パケットが緊急にデータ処理すべき緊急パケットであるか否かを判定する第２の判定工程を含み、その結果、緊急パケットである場合には前記送信パケットを前記処理バッファに転送する第２の送信パケット転送工程を含み、それ以外の場合には第１の送信パケット転送工程により前記送信パケットを通常パケットとして前記通常バッファに転送し、
さらに、該方法は、前記送信パケットを優先的にデータ処理して、優先パケット送信指令を前記メディアアクセスコントローラに送る第４のデータ処理工程を含み、
第２の送信パケット転送工程は、前記メディアアクセスコントローラにて、前記優先パケット送信指令に応じて、前記緊急パケットである送信パケットを優先的に送信することを特徴とするパケット処理方法。
【請求項１９】
請求項18に記載のパケット処理方法において、第４のデータ処理工程は、前記緊急パケットである送信パケットを前記処理バッファ上でデータ処理することを特徴とするパケット処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、LANなどのネットワークシステムにおいて、パケットデータを送受信して通信することができるパケット通信装置およびその処理方法に関するものである。
【背景技術】
【０００２】
従来から、LAN（Local Area Network）などのネットワークシステムでは、パーソナルコンピュータ（Personal Computer：PC）やプリンタなどの各機器をツイストペアケーブルなどの配線で接続してデータをやり取りしている。LANの通信制御方式のうち、イーサネット(登録商標)（Ethernet）は、NIC（Network Interface Card）を用いてPCに装備された標準ネットワークとして普及している。イーサネットは、米国Xerox社およびDEC社により考案され、IEEE802.3委員会によって標準化されたLAN規格であり、今日では、通信速度100Mbpsの高速イーサネット（Fast Ethernet）や、ブロードバンド化に対応したギガビットイーサネット（Gigabit Ethernet）により高速化されている。
【０００３】
また、LANに用いられる従来の通信装置には、ダイレクトメモリアクセス（Direct Memory Access：DMA）コントローラ、メディアアクセスコントローラ（Media Access Controller：MAC）、暗号化／復号化アクセラレータおよびバスアービタを内部バスに接続してハードウエアで構成されるものがある。この通信装置は、パケットを通信単位とするデータ（以下、パケットと称する）を送受信バッファに格納してアプリケーションプログラムにより処理するが、DMAコントローラおよびMACによりLANおよび送受信バッファ間のパケットの転送を実現している。
【０００４】
この通信装置では、ディスクリプタ（descriptor）と呼ばれる構造体をあらかじめメモリに備えて、MACにこのディスクリプタの配列を渡してパケットのDMA転送を行っている。
【０００５】
MACは、高速イーサネットなどの高速LANから自分宛てのパケットを受信するもので、通常、パケットの最大データ量は1514バイト程度であるので、MACは、数Kバイト程度のFIFOメモリを備えて受信パケットを一時的に保持することができる。MACは、パケットを受信するとDMAコントローラに受信通知を送る。
【０００６】
また、DMAコントローラは、DMA転送を制御するもので、MACからの受信通知に応じて、受信ディスクリプタに基づいて、MACで受信したパケットを内部バスを介してメモリ上の受信バッファに転送する。DMAコントローラは、DMA転送の結果、受信バッファのデータ量が所定のしきい値に達すると、通信装置のCPU（Central Processing Unit）に割込み（Interrupt ReQuest：IRQ）を送る。
【０００７】
CPUは、DMAコントローラからの割込みIRQに応じて、受信バッファに蓄積されたパケットを、その蓄積の順にデータ処理する。
【０００８】
また、CPUは、このデータ処理において、パケットの暗号化／復号化処理が必要な場合、DESA（Data Encryption Standard Accelerator）などの暗号化／復号化アクセラレータに暗号化／復号化処理をさせる。DESAは、通常、ハードウエアで構成されて、64ビットまたは128ビットの暗号化／復号化処理を高速に行い、DESAにおける暗号化／復号化処理の処理条件は、CPUで実行されるアプリケーションプログラムで設定される。
【０００９】
たとえば、暗号化されたパケットを復号化処理する場合、このパケットを受信バッファからDESAの処理バッファに転送し、DESAが処理バッファ上でこのパケットの復号化処理を行い、さらに復号化後のパケットを受信バッファに再度転送する。
【００１０】
また、従来の通信装置において、パケットを送信する場合、アプリケーションプログラムによるデータ処理によって、送信するパケットは、送信バッファに格納され、DMAコントローラにより送信ディスクリプタに基づいてDMA転送され、このパケットが送信バッファからMACへ転送されて、さらにMACから高速LANに送信される。
【００１１】
ここで、送信するパケットの暗号化が必要であれば、このパケットを送信バッファからDESAの処理バッファに転送し、DESAが処理バッファ上でこのパケットの暗号化処理を行い、さらに暗号化後のパケットを送信バッファに再度転送する。
【００１２】
この通信装置では、CPUバスと制御バスが共有され、メモリおよびDESA間のCPUによる処理と、パケットのDMA転送処理とは、時分割で行われる。
【００１３】
ところで、特許文献１に記載のデータ転送装置では、優先順位の高いデータ転送がDMA制御回路にリクエストされたとき、DMA制御回路は、優先順位の低いデータ転送を一時中断させ、その中断時点におけるステイタスがアドレスレジスタおよび現在転送量レジスタに記憶され、DMA制御回路は、優先順位の高いデータ転送を終了したときに、アドレスレジスタおよび現在転送量レジスタに記憶されたステイタスに対応して、優先順位の低いデータ転送を再開させることができる。
【００１４】
【特許文献１】特開平6-131294号
【発明の開示】
【発明が解決しようとする課題】
【００１５】
しかしながら、従来のDMA転送方式では、システム全体のスループットを向上させる効果があるが、優先度が高く、緊急に処理しなければならないパケットの処理を行うことは困難である。たとえば、VoIP（Voice over Internet Protocol）によって送受信される音声データは、転送レートは低いが時間遅れが品質低下をもたらすので、緊急に処理しなければならないパケットとして知られている。
【００１６】
従来のDMA転送方式では、優先パケットか否かを判別することなく、送受信バッファに転送されて蓄積された順にCPUがデータ処理を行っている。このように、優先パケットのDMA転送やデータ処理を優先的に行わないので、LANの高速化およびネットワーク機器の高機能化に伴う転送データ増大によって、優先パケットの処理速度が遅れるという問題がある。
【００１７】
たとえば、従来の通信装置において、緊急の処理を要しない３つの通常パケットを順次受信し、２番目の通常パケットの受信後で３番目の通常パケットの受信前に、緊急の処理を要する優先パケットを受信する。このとき、DMAコントローラは、この優先パケットをMACから受信バッファにDMA転送して、２番目の通常パケットの次に蓄積する。このように、受信されたパケットは、通常パケットであるか優先パケットであるかに拘らず、DMAコントローラによって、DMA転送されて受信した順に受信バッファに蓄積される。
【００１８】
したがって、この通信装置に受信されたパケットは、通常パケットであるか優先パケットであるかに拘らず、CPUによって、受信バッファに蓄積された順にデータ処理され、CPUによるデータ処理はバスを時分割で使用して行われる。
【００１９】
また、CPUによるデータ処理で暗号化／復号化処理すべきパケットは、メモリ内の送受信バッファから、通常、複数回にわたって切り出されて、DESA内の処理バッファに転送される。その後、DESAによって暗号化／復号化処理されたパケットは、送受信バッファに再度転送する必要がある。このように、暗号化／復号化処理では、送受信バッファおよび処理バッファ間のパケット転送による負担が生じて、内部バスの使用効率の低下だけでなく、システム全体のデータ処理スループットを大きく低下することがある。
【００２０】
なお、パケット転送処理を行うネットワーク機器において、パケットの優先順位に応じてメモリキューを持たせる構造のハードウエアや高速なDSP処理があるが、この構造を一般的な端末に適用するにはコストが高い。
【００２１】
また、従来の通信装置において、緊急の処理を要する優先パケットを送信する場合、すでにDMA転送されたパケットの送信が終了するまでは、優先パケットの処理を待機する必要がある。なお、MACとDESAとの問の転送を別個のDMA転送としても、その転送はCPUが行う緊急処理を妨げることがある。また、優先パケットを送信する場合、送出間隔のゆらぎを抑えて一定間隔で送出することが重要な、リアルタイム性が要求されるデータではとくに問題になる。
【００２２】
また、従来から、ルータなどのネットワーク機器側での処理内容が、主な技術的課題であるが、ネットワーク機器側の高機能化を考慮すると、端末側でVoIP通信の品質（Quality of Service：QoS）を高く保つ技術が重要な課題となる。
【００２３】
さらに、今日では、データの暗号化などによるセキュリティ通信を行う要求が高まり、たとえば、次世代ネットワークのIPv6(Internet Plotocol Version 6)では、IPv4端末間通信では普及しなかったIPSec(IP Security)が標準として取り入れられている。
【００２４】
本発明はこのような従来技術の欠点を解消し、ネットワーク機器との通信において暗号化された緊急パケットの送受信に対応し、通信の品質(QoS)を高く保ちつつ、送受信する緊急パケットの処理を高速化するパケット通信装置およびその処理方法を提供することを目的とする。
【課題を解決するための手段】
【００２５】
本発明は上述の課題を解決するために、通常バッファに格納された送受信パケットをデータ処理する主制御手段と、外部からの受信パケットをこの通常バッファに転送し、この通常バッファにおける送信パケットを外部に送信するメディアアクセスコントローラと、この通常バッファおよびこのメディアアクセスコントローラ間のこれらの送受信パケットの転送を制御して、この主制御手段を介さずにダイレクトメモリアクセス転送させるダイレクトメモリアクセス制御手段と、処理バッファに格納されたこれらの送受信パケットを復号化および暗号化処理するアクセラレータとを含むパケット通信装置は、このメディアアクセスコントローラおよびこのアクセラレータを一体化して構成し、このメディアアクセスコントローラは、この受信パケットがこの主制御手段で緊急にデータ処理すべき緊急パケットであるか否かを判定する第１の判定手段を含み、その結果、緊急パケットである場合にはこの受信パケットをこの処理バッファに転送して、第１の割込みをこの主制御手段に送り、それ以外の場合にはこの受信パケットを通常パケットとしてこの通常バッファに転送し、この主制御手段は、第１の割込みに応じて、この緊急パケットである受信パケットを優先的にデータ処理することを特徴とする。
【００２６】
また、通常バッファに格納された送受信パケットをデータ処理する主制御手段と、外部からの受信パケットをこの通常バッファに転送し、この通常バッファにおける送信パケットを外部に送信するメディアアクセスコントローラと、この通常バッファおよびこのメディアアクセスコントローラ間のこれらの送受信パケットの転送を制御して、この主制御手段を介さずにダイレクトメモリアクセス転送させるダイレクトメモリアクセス制御手段と、処理バッファに格納されたこれらの送受信パケットを復号化および暗号化処理するアクセラレータとを含むパケット通信装置は、このメディアアクセスコントローラおよびこのアクセラレータを一体化して構成し、この主制御手段は、この送信パケットが緊急にデータ処理すべき緊急パケットであるか否かを判定する第２の判定手段を含み、その結果、緊急パケットである場合にはこの送信パケットをこの処理バッファに転送し、それ以外の場合にはこの送信パケットを通常パケットとして転送し、さらに、この送信パケットを優先的にデータ処理して、優先パケット送信指令をこのメディアアクセスコントローラに送り、このメディアアクセスコントローラは、この優先パケット送信指令に応じて、この緊急パケットである送信パケットを優先的に送信することを特徴とする。
【００２７】
また、外部から受信された受信パケットをメディアアクセスコントローラにてこの通常バッファに転送する第１の受信パケット転送工程と、通常バッファに格納された受信パケットを主制御部にてデータ処理する第１のデータ処理工程と、この通常バッファおよびこのメディアアクセスコントローラ間のこの受信パケットの転送をダイレクトメモリアクセス制御部で制御して、この主制御部を介さずにダイレクトメモリアクセス転送させる転送制御工程と、処理バッファに格納されたこの受信パケットをアクセラレータで復号化処理する復号化工程とを含むパケット処理は、一体化されたこのメディアアクセスコントローラおよびこのアクセラレータを使用し、この受信パケットがこの主制御手段で緊急にデータ処理すべき緊急パケットであるか否かをこのメディアアクセスコントローラで判定して、その結果、この受信パケットが緊急パケットである場合にはこの受信パケットをこの処理バッファに転送する第２の受信パケット転送工程を含み、第１の割込みをこの主制御部に送り、それ以外の場合には第１の受信パケット転送工程によりこの受信パケットを通常パケットとしてこの通常バッファに転送する第１の判定工程と、第１の割込みに応じて、この緊急パケットである受信パケットを主制御部にて優先的にデータ処理する第２のデータ処理工程とを含むことを特徴とする。
【００２８】
また、通常バッファに格納された送信パケットをこの主制御部にてデータ処理する第３のデータ処理工程と、この通常バッファにおける送信パケットをこのメディアアクセスコントローラにて外部に送信する第１の送信パケット転送工程と、この通常バッファおよびこのメディアアクセスコントローラ間のこの送信パケットの転送をダイレクトメモリアクセス制御部で制御して、この主制御部を介さずにダイレクトメモリアクセス転送させる転送制御工程と、この処理バッファに格納されたこの送信パケットをアクセラレータで暗号化処理する暗号化工程とを含むパケット処理方法は、一体化されたこのメディアアクセスコントローラおよびこのアクセラレータを使用し、第３のデータ処理工程は、この送信パケットが緊急にデータ処理すべき緊急パケットであるか否かを判定する第２の判定工程を含み、その結果、緊急パケットである場合にはこの送信パケットをこの処理バッファに転送する第２の送信パケット転送工程を含み、それ以外の場合には第１の送信パケット転送工程によりこの送信パケットを通常パケットとしてこの通常バッファに転送し、さらに、該方法は、この送信パケットを優先的にデータ処理して、優先パケット送信指令をこのメディアアクセスコントローラに送る第４のデータ処理工程を含み、第２の送信パケット転送工程は、このメディアアクセスコントローラにて、この優先パケット送信指令に応じて、この緊急パケットである送信パケットを優先的に送信することを特徴とする。
【発明の効果】
【００２９】
本発明のパケット通信装置によれば、MACにおいて受信パケットが緊急パケットか否かを判定して、緊急パケットである場合、この緊急パケットを暗号化／復号化アクセラレータで用いる処理バッファに転送し、ここで、MACが主制御部に割込みを送って、緊急パケットを優先的に処理させて、主制御部が処理バッファ上で緊急パケットをデータ処理することにより、DMA転送などのパケット転送の際に優先度に応じてパケットを処理することができる。
【００３０】
このパケット通信装置では、優先パケットに係るデータは、MACおよびアクセラレータ間で直接転送されるので、DMA転送ではカウントされない。また、主制御部がメモリにアクセスして受信パケットを転送する処理を簡略化して、優先パケットの通常バッファおよび処理バッファ間の双方向の転送を省略し、受信パケットを高速処理することができる。また、優先パケットを、通常バッファではなく処理バッファ上で処理するため、バスの競合を回避して、効率のよい速度で処理することができる。さらに、アクセラレータの処理バッファを利用するので便宜に暗号化／復号化処理を行うことができ、かつ資源の節約を達成することができる。
【００３１】
また、本発明のパケット通信装置によれば、受信パケットの優先度を参照して優先パケットか否かを判定するので、緊急処理決定の具体的な方法を実現し、また、処理バッファを複数有して、優先パケット転送とパケット処理とをバッファリングで行うことにより、優先パケットを連続して受信した場合でも効率的に処理することができ、アクセラレータおよび主制御部の処理時間に余裕を与えて負担を軽くし、パケット処理の破綻を回避することができる。
【発明を実施するための最良の形態】
【００３２】
次に添付図面を参照して、本発明によるパケット通信装置の実施例を詳細に説明する。たとえば、本発明のパケット通信装置10は、図１に示すように、主制御部12とメモリ14とを内部バス16を介して接続し、ダイレクトメモリアクセス（Direct Memory Access：DMA）制御部18で制御することにより、メディアアクセスコントローラ（Media Access Controller：MAC）20にて外部からパケットを受信してメモリ14に転送し、他方、メモリ14におけるパケットをMAC 20に転送して外部に送信する。パケット通信装置10は、とくに、MAC 20を暗号化／復号化アクセラレータ22と一体化して、このアクセラレータ22にて処理バッファ24におけるパケットを暗号化および復号化処理するもので、さらに処理バッファ24を用いて緊急に処理すべきパケットを効率よく転送してデータ処理する。なお、本発明の理解に直接関係のない部分は、図示を省略し、冗長な説明を避ける。
【００３３】
主制御部12は、本装置全体の動作を制御および統括する機能を有してCPU（Central Processing Unit）などで構成されるもので、本実施例では、プログラムに応じてパケット送受信処理を実行し、DMA制御部18を制御することができる。
【００３４】
たとえば、主制御部12は、パケットの受信処理を行う場合、DMA制御部18にパケット受信開始指令を通知してDMA制御部18をパケット受信可能状態にする。また、主制御部12は、このDMA制御部18から通知される割込み要求IRQ1に応じて、メモリ14に転送された受信パケットのデータ処理を開始する。
【００３５】
また、主制御部12は、パケットの送信処理を行う場合、送信するパケットをデータ処理してメモリ14に格納し、また、DMA制御部18にパケット送信開始指令を通知して、DMA制御部18がメモリ14内のパケットをMAC 20に転送して送信するように制御する。
【００３６】
また、主制御部12は、パケット送受信処理において復号化および暗号化処理が必要であると判断した場合、暗号化／復号化アクセラレータ22に復号化および暗号化指令を通知する。このとき、主制御部12は、メモリ14の通常バッファ26におけるパケットの復号化および暗号化処理が必要であると判断した場合、そのパケットを通常バッファ26からMAC 20の処理バッファ24に転送してから、復号化および暗号化指令を通知し、復号化および暗号化処理が終了したとき、DMA制御部18を制御して、処理したパケットを処理バッファ24から通常バッファ26に再度転送させる。
【００３７】
また、主制御部12は、パケット受信処理時において、MAC 20から供給される優先パケット転送完了を示す割込み要求IRQ2に応じて、処理バッファ24に格納された優先パケットなどの緊急に処理すべきパケットを優先的にデータ処理する。主制御部12は、処理バッファ24上の優先パケットに対してデータ処理を行ってよく、データ処理が終了したとき、DMA制御部18を制御して、優先パケットを処理バッファ24から通常バッファ26に転送させるとよい。
【００３８】
また、主制御部12は、受信した優先パケットのデータ処理において、この優先パケットの暗号化ヘッダを参照して、優先パケットが暗号化されている場合、アクセラレータ22に復号化指令を通知して復号化処理をさせる。
【００３９】
主制御部12は、通常バッファ26における通常パケットのデータ処理中に割込み要求IRQ2を受けたとき、その処理中の通常パケットのデータ処理が終了してから、優先パケットのデータ処理を開始するとよい。また、主制御部12は、優先パケットのデータ処理が終了してから、通常バッファ26に残っている通常パケットのデータ処理に戻るとよい。
【００４０】
また、主制御部12は、パケット送信処理時において、送信パケットをデータ処理する際に、緊急に処理すべきパケットであるか否かを判定し、本実施例では、優先パケットであるか否かを判定する。その結果、主制御部12は、優先パケットであると判定した場合、この優先パケットを通常バッファ26から処理バッファ24に転送し、処理バッファ24上の優先パケットに対してデータ処理を行ってよい。このような優先パケットを送信するイベントは、たとえば音響機器などの周辺機器からの外部割込みが主制御部12に送られて発生する。
【００４１】
また、主制御部12は、送信する優先パケットのデータ処理において、この優先パケットを暗号化すべきと判定した場合、アクセラレータ22に暗号化指令を通知して暗号化処理をさせる。主制御部12は、実際には、まだパケット化されていない優先パケットを通常バッファ26から処理バッファ24に転送するので、処理バッファ24上で暗号化前の優先パケットをパケット化するとよい。
【００４２】
主制御部12は、送信する優先パケットのデータ処理が終了したとき、MAC 20に優先パケット送信指令を通知して優先パケットを優先的に送信させる。
【００４３】
メモリ14は、RAM（Random Access Memory）などの記憶部で構成されて、送受信するパケットデータを一時格納する通常バッファ26を有する。また、メモリ14は、DMA制御部18のDMA転送に用いるディスクリプタ（descriptor）などの構造体28を有してもよく、このとき、メモリ14は、受信用および送信用のディスクリプタ28を有するとよい。また、メモリ14は、主制御部12が実行するパケット送受信処理を構成するプログラムを保持してもよい。
【００４４】
本実施例の通常バッファ26は、緊急に処理すべき優先パケットなどの緊急パケットではなく、通常パケットを格納するものである。
【００４５】
内部バス16は、バス調停部30とも接続し、バス調停部30は、内部バス16のバス使用権を主制御部12やDMA制御部18などの各部間で調停する。
【００４６】
DMA制御部18は、主制御部12を介さずにデータ転送を直接実行するメモリ制御回路で、本実施例では、MAC 20および通常バッファ26間のパケットデータのDMA転送を制御する。
【００４７】
たとえば、DMA制御部18は、主制御部12から供給される受信開始指令に応じて受信可能状態となる。受信可能状態のDMA制御部18は、パケットを受信したMAC 20からパケット受信通知を受けて、この通知に応じてMAC 20にて受信したパケットをメモリ14の通常バッファ26に転送する。
【００４８】
本実施例のDMA制御部18は、メモリ14から送受信ディスクリプタを読み出してこのディスクリプタに基づいてMAC 20におけるパケットのDMA転送を制御する。また、DMA制御部18自身が、この送受信ディスクリプタを備えてもよい。
【００４９】
MAC 20は、DMA制御部18に制御されて、外部から、たとえば高速LANを介して受信した受信パケットを内部バス16を介してメモリ14の通常バッファ26に転送し、他方、内部バス16を介して通常バッファ26から転送された送信パケットを外部に送信する。MAC 20は、FIFOメモリを備えて、受信および送信パケットを一時的に保持してから、それぞれを転送および送信するとよい。また、MAC 20は、DMA制御部18から受け渡されるディスクリプタ配列に応じて通常バッファ26とのパケット転送を行ってよい。
【００５０】
本実施例では特に、MAC 20は、暗号化／復号化アクセラレータ22と一体化され、図１において、MAC 20は、アクセラレータ22を含むように構成されるが、アクセラレータ22とともに一つの処理回路として構成されてもよく、別個のアクセラレータ22と直接的に接続されてもよい。また、図１において、MAC 20は、アクセラレータ22による暗号化／復号化処理で用いられる処理バッファ24を含むように構成され、処理バッファ24を用いて優先パケットなどの緊急パケットを格納する。本実施例のMAC 20と暗号化／復号化アクセラレータ22とは、連帯して動作する。
【００５１】
本実施例のMAC 20は、受信パケットが緊急パケットであるか否かを判定し、たとえば、優先パケットであるか否かを判定する。その結果、MAC 20は、優先パケットである場合には処理バッファ24に転送し、それ以外の場合には通常バッファ26に転送する。たとえば、MAC 20は、FIFOメモリに蓄えた受信パケットのパケットヘッダを参照して、その受信パケットが優先パケットか否かを判定することができる。
【００５２】
たとえば、IEEE802.1Qによれば、複数のハブにわたってVLAN（Virtual LAN）を構築するために、イーサネットのフレームを拡張して、パケットは、VLAN IDを含み、すなわち、拡張した4バイト部分にVLANタグを含んでいるので、VLANタグが優先度の定義として利用され得る。本実施例のMAC 20は、VLANタグにおける「ユーザ・プライオリティ」フィールドに格納される3ビットのCoS（Class of Service）値を、パケットの優先度として参照することができる。また、IPv6によれば、パケットヘッダには16段階の数値を設定できる優先度フィールドが設けられているので、MAC 20は、この優先度を参照することができる。
【００５３】
MAC 20は、受信した優先パケットを転送する場合、転送先であるアクセラレータ22または処理バッファ24から応答信号を受けて、この応答信号に応じて優先パケットを処理バッファ24に転送し、その後、主制御部12に対して優先パケット受信通知を示す割込み要求IRQ2を送る。
【００５４】
また、MAC 20は、送信パケットが優先パケットである場合に、通常バッファ26から内部バス16を介して供給される優先パケットを処理バッファ24に転送し、主制御部12から優先パケット送信指令を受けて処理バッファ24における優先パケットを外部に送信する。
【００５５】
暗号化／復号化アクセラレータ22は、主制御部12から設定される共通鍵や初期ベクタなどの復号化および暗号化の処理条件に基づいて、パケットを復号化および暗号化処理するもので、ハードウエアで構成されてこれらの処理を高速に行う。このアクセラレータ22は、たとえば、DES（Data Encryption Standard）方式などの暗号化／復号化方式を使用してよい。
【００５６】
本実施例の暗号化／復号化アクセラレータ22は、主制御部12から通知される復号化および暗号化指令に応じて、処理バッファ24におけるパケットを復号化および暗号化処理し、復号化および暗号化処理を完了した後、主制御部12に処理完了通知IRQ3を送る。
【００５７】
処理バッファ24は、復号化および暗号化処理用のバッファで、本実施例では特に、優先パケットなどの緊急パケット転送のためにも使用される。
【００５８】
次に、本実施例におけるパケット通信装置10の動作について、パケットを受信する動作を図２のシーケンスチャートを参照しながら説明する。
【００５９】
本実施例のパケット通信装置10では、まず主制御部12にてパケット受信処理のプログラムが実行されて、受信開始指令が主制御部12からDMA制御部18に通知される（S102）。
【００６０】
DMA制御部18では、受信開始指令に応じて受信可能状態（S104）となり、MAC 20において外部からのパケット受信が可能な状態となる。
【００６１】
次に、受信可能状態のMAC 20では、外部から、たとえば高速LANを介して第１の通常パケットが受信される（S106）。MAC 20では、ステップS106で受信したパケットはFIFOに一時格納され、このパケットの優先度が参照されて優先パケットであるか否かが判定され、ここでは通常パケットであると判定される。第１の通常パケットの受信S106に応じて、MAC 20からパケット受信通知がDMA制御部18に通知される（S108）。
【００６２】
DMA制御部18では、パケット受信通知S106に応じてDMA転送が実行され、このDMA転送に従って、通常パケット転送指示がMAC 20に通知され（S110）、MAC 20にて受信された第１の通常パケットが通常バッファ26に転送される（S112）。
【００６３】
さらに、MAC 20では、パケット転送S112に応じた転送完了通知がDMA制御部18へと通知され（S114）、DMA制御部18では、この転送完了通知S114に応じて、受信イベントを示す割込み要求IRQ1が主制御部12に送られる。
【００６４】
主制御部12では、割込み要求IRQ1に応じて、受信パケットのデータ処理が実行され（S116）、たとえば、通常バッファ26から通常パケットが順次読み出されてデータ処理されて、ここでは、第１の通常パケットが読み出されてデータ処理される。このとき、第１の通常パケットが暗号化されている場合、第１の通常パケットをアクセラレータ22の処理バッファ24に転送して復号化し、復号化後のパケットをデータ処理するとよい。
【００６５】
本実施例のMAC 20では、第１の通常パケットのデータ処理S116の間に、第２の通常パケットが受信される（S118）。このとき、MAC 20では、第２の通常パケットの受信S118に応じて、パケット受信通知がDMA制御部18に通知され（S120）、DMA制御部18において、パケット受信通知S120に応じてDMA転送が実行されて、通常パケット転送指示がMAC 20に通知され（S122）、MAC 20にて受信された第２の通常パケットが通常バッファ26に転送される（S124）。
【００６６】
また、本実施例では、MAC 20において、第１の通常パケットのデータ処理S116が終了する前に、優先パケットが受信される（S126）。MAC 20では、ステップS106で受信したパケットはFIFOに一時格納され、このパケットの優先度が参照されて優先パケットであるか否かが判定され、ここでは優先パケットであると判定される。また、図示しないが、MAC 20では、優先パケットの転送が処理バッファ24に通知され、処理バッファ24からの応答信号に応じて受信された優先パケットがアクセラレータ22の処理バッファ24に転送される（S128）。
【００６７】
さらに、MAC 20では、優先パケット転送S128が完了すると、優先パケット転送完了を示す割込み要求IRQ2が主制御部12に送られる。
【００６８】
本実施例では、主制御部12において、第１の通常パケットのデータ処理S116が終了する前に、割込み要求IRQ2が送られているので、第２の通常パケットのデータ処理の前に、優先パケットが優先的にデータ処理される（S130）。
【００６９】
ところで、本実施例のMAC 20では、優先パケットのデータ処理S130の間に、第３の通常パケットが受信される（S132）。このとき、MAC 20では、第３の通常パケットの受信S132に応じて、パケット受信通知がDMA制御部18に通知され（S134）、DMA制御部18において、パケット受信通知S134に応じてDMA転送が実行されて、通常パケット転送指示がMAC 20に通知され（S136）、MAC 20にて受信された第３の通常パケットが通常バッファ26に転送される（S138）。
【００７０】
また、主制御部12による優先パケットのデータ処理S130において、優先パケットが暗号化されている場合、復号化指令が発せられてアクセラレータ22に通知される（S140）。このとき、アクセラレータ22において、処理バッファ24における優先パケットは、復号化指令S140に応じて復号化され、復号化された優先パケットは、通常バッファ26に転送される（S142）。
【００７１】
このとき、第３の通常パケットの転送S138と、優先パケットの転送S142とが同時に行われて、内部バス16が競合することがあるが、その場合には、DMA制御部16またはバス調停部30により制御されて、同時に流れるように通常バッファ26への転送がなされてもよい。
【００７２】
ところで、第３の通常パケットの転送S138と、優先パケットの転送S142の競合において、第３の通常パケットは、優先パケットよりも優先度が低いので、優先パケットの転送を優先して第３の通常パケットの転送を保留し、優先パケット転送終了後に第３の通常パケット転送を行ってもよい。ここで、優先度の低いパケット転送は、その保留時間に応じて優先度を変えてもよく、保留時間が長い場合に優先度を一時的に高くしてもよい。また、優先度に応じて転送単位を変えてもよく、優先度の高い優先パケットは大きい単位で、優先度の低い第３のパケットは小さい単位で、それぞれ転送してもよい。これらの転送競合の際の転送手法は、受信時だけでなく送信時でも行われてよい。
【００７３】
主制御部12では、優先パケットのデータ処理S130が終了すると、通常バッファ26に格納されている通常パケットの順にしたがって、第２の通常パケットおよび第３の通常パケットが順次データ処理される（S144およびS146）。
【００７４】
他方、本実施例におけるパケット通信装置10の動作について、パケットを送信する動作を図３のシーケンスチャートを参照しながら説明する。
【００７５】
本実施例のパケット通信装置10では、まず主制御部12にてパケット送信処理のプログラムが実行されて送信パケットのデータ処理が行われ、ここでは、第１の通常パケット、第２の通常パケットおよび第３の通常パケットのデータ処理が行われる（S202、S204およびS206）。
【００７６】
主制御部12では、ステップS202、S204およびS206のデータ処理において、送信パケットが優先パケットか否かが判定されるが、ここでは、いずれも通常パケットであると判定される。ステップS202、S204およびS206のデータ処理の後、主制御部12から送信開始指令がDMA制御部18に通知される（S208）。
【００７７】
DMA制御部18では、送信開始指令S208に応じて、転送指示がMAC 20に通知され（S210）、MAC 20では、転送指示S210に応じて、通常バッファ26から通常パケットが順次転送されて、ここでは、第１の通常パケットが転送される（S212）。
【００７８】
さらに、MAC 20では、S212で転送された第１の通常パケットが外部へ、たとえば高速LANを介して送信され（S214）、第１の通常パケットの送信S214に応じて、送信通知がDMA制御部18に送られる（S216）。
【００７９】
次に、DMA制御部18では、第１の通常パケットの送信通知S216に応じて、転送指示がMAC 20に通知され（S218）、MAC 20では、この転送指示S218に応じて、通常バッファ26から第２の通常パケットが転送され（S220）、S220で転送された第２の通常パケットが外部へ送信される（S222）。
【００８０】
ところで、本実施例の主制御部12では、第２の通常パケットの転送S220と、第２の通常パケットの送信S222との間において、優先度の高い送信パケットがデータ処理される（S224）。主制御部12では、ステップS224のデータ処理において、送信パケットが優先パケットか否かが判定され、ここでは優先パケットであると判定される。
【００８１】
また、主制御部12では、優先パケットのデータ処理S224において、優先パケットの転送指示がアクセラレータ22に送られる（S226）。アクセラレータ22では、この転送指示S226に応じて、通常バッファ26から優先パケットが処理バッファ24へと転送される（S228）。
【００８２】
また、優先パケットの転送S228の後、主制御部12によるデータ処理S224は、処理バッファ24上の優先パケットに対して行われ、データ処理S224において、この優先パケットが暗号化して送信する必要があると判断された場合、暗号化指令がアクセラレータ22に送られる（S230）。アクセラレータ22では、この暗号化指令S230に応じて、処理バッファ24における優先パケットが暗号化される。
【００８３】
さらに、主制御部12では、第２の通常パケットの送信S222の後で、第３の通常パケットの転送前に、優先パケットの送信指令がMAC 20に送られる（S232）。
【００８４】
本実施例ではとくに、MAC 20において、この送信指令S232に応じて、第２の通常パケットの送信S222に応じたDMA制御部18への送信通知は、送られずに待機させられて、優先パケットが優先的に送信され、ここでは、処理バッファ24から優先パケットが転送され（S234）、S234で転送された優先パケットが外部へ送信される（S236）。このように、送信ディスクリプタに第３の通常パケットが残っている状態でも、優先パケットは、優先的に送信される。
【００８５】
次に、MAC 20では、優先パケットの送信S236が終了してから、第２の通常パケットの送信S222に応じた送信通知がDMA制御部18へ送られる（S238）。
【００８６】
DMA制御部18では、第２の通常パケットの送信通知S238に応じて、転送指示がMAC 20に通知され（S240）、MAC 20では、この転送指示S240に応じて、通常バッファ26から第３の通常パケットが転送され（S242）、S242で転送された第３の通常パケットが外部へ送信される（S244）。
【００８７】
また、他の実施例として、パケット通信装置10は、MAC 20において複数のバッファを有する処理バッファ24を備え、これらのバッファを使用してバッファリング（buffering）することにより、主制御部12による通常パケットの暗号化もしくは復号化処理、または優先パケットのデータ処理などのパケット処理と、MAC 20による優先パケットの転送とを効率よく行うことができる。
【００８８】
この実施例によれば、たとえば、複数の処理バッファ24のうち、一方のバッファに優先パケットが転送されて、主制御部12がこの一方のバッファ上で優先パケットのデータ処理を行っているとき、MAC 20は、新たに受信した優先パケットを他方のバッファに転送することができる。
【００８９】
その後、主制御部12が一方のバッファ上におけるデータ処理を終了し、かつ、MAC 20が他方のバッファ上における優先パケット転送を完了すると、主制御部12は、他方のバッファ上の新たな優先パケットのデータ処理をすぐに始めることができる。
【００９０】
また、この実施例において、MAC 20は、複数の処理バッファ24の使用を調停するバッファ調停部50を有し、このバッファ調停部50は、論理回路で構成されてよい。バッファ調停部50は、複数の処理バッファ24のうち、いずれの処理バッファを優先パケット転送に用いるか、またはいずれの処理バッファが優先パケット転送中であるかを示すバッファ指定部52を含んでよい。バッファ調停部50およびバッファ指定部52は、MAC 20と主制御部12が同じ処理バッファに同時にアクセスしないように排他制御を行う機能を有する。
【００９１】
たとえば、MAC 20は、新たに優先パケットを受信したとき、バッファ指定部52を参照して優先パケットを転送すべきバッファを判定し、その判定結果のバッファへと、優先パケットを転送する。
【００９２】
MAC 20は、新たに受信した優先パケットを複数の処理バッファ24のいずれかに転送して完了したときに、優先パケット転送完了通知をバッファ調停部50に通知する。
【００９３】
また、主制御部12は、通常パケットの暗号化もしくは復号化処理、または優先パケットのデータ処理などのパケット処理を行うとき、バッファ指定部52を参照してパケット処理を行うべきバッファを判定し、その判定結果のバッファにおけるパケットに対してパケット処理を行う。
【００９４】
主制御部12は、複数の処理バッファ24のいずれかにおいて、通常パケットの暗号化もしくは復号化処理、または優先パケットのデータ処理を行って終了したときに、パケット処理終了通知をバッファ調停部50に通知する。このとき、主制御部12は、DMA制御部18を制御して、データ処理が終了した優先パケットを処理バッファから通常バッファに転送させるとよい。
【００９５】
また、本実施例のバッファ調停部50は、主制御部12からパケット処理終了通知を、またはMAC 20から優先パケット転送完了通知を受けたときに、バッファ指定部52の示すバッファを変換して更新する。
【００９６】
この実施例のパケット通信装置10において、たとえば、MAC 20が複数の処理バッファ24として２つの処理バッファ54および56を含み、バッファ調停部50がバッファ指定部52としてバッファ指定フラグを含んでもよい。
【００９７】
２つの処理バッファが用いられる場合には、バッファ指定フラグ52は、１ビットのフラグでよく、処理バッファ54および56は、それぞれ、バッファ指定フラグ52の値が０および１の場合に、優先パケットを転送すべきバッファとして用いられる。また、３つ以上の処理バッファが用いられる場合には、バッファ指定フラグ52は、処理バッファの数に応じた複数ビットのフラグが用いられる。この場合には、主制御部12における負担をより低減することができる。
【００９８】
次に、本実施例におけるパケット通信装置10について、２つの処理バッファ54および56を用いてパケットを受信する動作を図５のフローチャートを参照しながら説明する。
【００９９】
本実施例のパケット通信装置10では、まず、パケット受信処理が開始するとき（S302）、２つの処理バッファ54および56は空き状態となり、１ビットのバッファ指定フラグ52の値は０となる。
【０１００】
次に、ステップS304に進み、MAC 20において、第１の優先パケットが受信されると、バッファ調停部50にてバッファ指定フラグ52が参照されて、ここで、バッファ指定フラグ52の値が０であるので、優先パケットを転送すべきバッファが処理バッファ54と判定されて、MAC 20によりこのバッファ54に対して第１の優先パケットが転送される。
【０１０１】
このようにして、第１の優先パケットの転送が完了すると、MAC 20から優先パケット転送完了を示す割込み要求IRQ2が主制御部12に送られる。このとき、バッファ調停部50では、MAC 20から優先パケット転送完了通知を受けて、バッファ指定フラグ52の値を１に設定して更新する。
【０１０２】
次に、ステップS306に進み、主制御部12において、MAC 20からの割込み要求IRQ2に応じて、転送された優先パケットの優先的なデータ処理が開始される。このとき、主制御部12では、バッファ調停部50からパケット処理を行うべきバッファが示されるが、バッファ調停部50にて、バッファ指定フラグ52が参照されて、ここで、バッファ指定フラグ52の値が０であるので、パケット処理を行うべきバッファが第１の優先パケットが転送されている処理バッファ54と判定されて、主制御部12によりこのバッファ54に対してパケット処理が行われる。
【０１０３】
ところで、本実施例では、第１の優先パケットがデータ処理されている間に、MAC 20において、第２の優先パケットが受信される。このとき、バッファ調停部50にてバッファ指定フラグ52が参照されて、ここで、バッファ指定フラグ52の値が１であるので、優先パケットを転送すべきバッファが処理バッファ56と判定される。MAC 20では、このバッファ56に対して第２の優先パケットが転送される。
【０１０４】
このように、処理バッファ54上で第１の優先パケットのデータ処理を行っている間に、処理バッファ56へ第２の優先パケットを転送することができる。また、第２の優先パケットの転送が完了すると、MAC 20から優先パケット転送完了を示す割込み要求IRQ2が主制御部12に送られ、バッファ調停部50では、MAC 20から優先パケット転送完了通知を受けて、バッファ指定フラグ52の値を再度０に設定して更新する。
【０１０５】
次に、ステップS308に進み、主制御部12では、MAC 20から割込み要求IRQ2を受けているので、第１の優先パケットのデータ処理の終了後に、バッファ指定フラグ52の値を更新せずに、第２の優先パケットの優先的なデータ処理が開始される。このとき、主制御部12において、データ処理の対象となるバッファは、バッファ調停部50にて値が０であるバッファ指定フラグ52が参照されるので、第２の優先パケットが転送されている処理バッファ56と判定されて、主制御部12によりこのバッファ56に対してパケット処理が行われる。
【０１０６】
また、主制御部12において、第２の優先パケットのデータ処理が終了したときに、MAC 20から新たな割込み要求IRQ2を受けていないならば、パケット処理終了通知がバッファ調停部50に通知され、バッファ調停部50において、バッファ指定フラグ52の値を再度１に設定して更新する。
【０１０７】
さらに、ステップS310に進み、MAC 20において、第３の優先パケットが受信される。このとき、バッファ調停部50にて値が１であるバッファ指定フラグ52が参照されるので、優先パケットを転送すべきバッファが処理バッファ54と判定される。MAC 20では、このバッファ54に対して第３の優先パケットが転送される。
【０１０８】
このように、処理バッファ54への第３の優先パケットの転送が完了すると、MAC 20から優先パケット転送完了を示す割込み要求IRQ2が主制御部12に送られ、バッファ調停部50では、MAC 20から優先パケット転送完了通知を受けて、バッファ指定フラグ52の値を再度０に設定して更新する。
【０１０９】
次に、ステップS312に進み、主制御部12において、MAC 20からの割込み要求IRQ2に応じて、第３の優先パケットの優先的なデータ処理が開始される。このとき、主制御部12において、データ処理の対象となるバッファは、バッファ調停部50にて値が０であるバッファ指定フラグ52が参照されるので、第３の優先パケットが転送されている処理バッファ54と判定されて、主制御部12によりこのバッファ54に対してパケット処理が行われる。
【０１１０】
主制御部12において、第３の優先パケットのデータ処理が終了したときに、MAC 20から新たな割込み要求IRQ2を受けていないならば、パケット処理終了通知がバッファ調停部50に通知され、バッファ調停部50において、バッファ指定フラグ52の値を再度１に設定して更新する。
【０１１１】
また、本発明のパケット通信装置は、ネットワーク機器に適用される場合には、複数の処理バッファを備えなくても、デュアルポートメモリなどの高価なハードウエアや、循環（リング状）バッファなどの複雑なデータ構造部を組み合わせて、MAC 20および主制御部12の両方からアクセス可能な構成を実現することができる。
【０１１２】
また、本発明のパケット通信装置は、高速LANのみならず、優先度に応じたパケットの転送および処理を行う装置を用いる、すべての有線または無線ネットワークシステムに適用することができる。
【０１１３】
たとえば、本発明のパケット通信装置は、WEBブラウザ機能付きのVoIP端末などに適用することができる。このような端末では、通話用音声パケットを暗号化して秘話に用いる場合や、通話中にWEBブラウザを使う場合に、本発明の構成が効果的である。
【０１１４】
このVoIP端末において、秘話のために暗号化したパケットは、遅延や揺らぎの発生が抑えられ、高音質化を実現できる。また、WEBブラウザで表示するデータを受信する間に、暗号化した音声パケットを受信する場合、WEBブラウザデータを通常パケットとして受信し、秘話のために暗号化した音声パケットを、優先パケットとして受信することができる。
【０１１５】
また、本発明によるVoIP端末では、他の端末にWEBサービスを提供する場合に、本発明の構成が効果的である。
【０１１６】
他の端末のWEBブラウザを用いてこのVoIP端末に通信接続し、このVoIP端末が保持するアドレス帳などの情報を参照するような機能を実現する場合、VoIP端末から他の端末に送信するためのデータを通常パケットとし、VoIP通話のためのパケットを暗号化して優先パケットとすることができる。
【図面の簡単な説明】
【０１１７】
【図１】本発明のパケット通信装置の一実施例を示すブロック図である。
【図２】図１に示すパケット通信装置のパケット受信処理の動作手順を説明するシーケンスチャートである。
【図３】図１に示すパケット通信装置のパケット送信処理の動作手順を説明するシーケンスチャートである。
【図４】本発明のパケット通信装置の他の実施例におけるメディアアクセスコントローラを示すブロック図である。
【図５】図４に示すパケット通信装置の動作手順を説明するフローチャートである。
【符号の説明】
【０１１８】
10  パケット通信装置
12  主制御部
14  メモリ
16  内部バス
18  DMA制御部
20  MAC
22  暗号化／復号化アクセラレータ
24  処理バッファ
26  通常バッファ
28  ディスクリプタ
30  バス調停部
【図１】
2007088709.tif 000003
【図２】
2007088709.tif 000004
【図３】
2007088709.tif 000005
【図４】
2007088709.tif 000006
【図５】
2007088709.tif 000007