(57)【要約】【課題】データのコピーを作成するような場合に、ＣＰＵに負担を掛けることなくこれを実現できるデータ処理装置および受信したデータを必要な数だけコピーして転送するデータ転送方法を得ること。【解決手段】受信ＦＩＦＯメモリ２０２から読み出された受信データ２０３は比較器２０４で設定テーブル２０５のヘッダ情報と比較され、対応するパラメータを用いてバッファ管理部２０９が受信データのプライオリティ情報やそのデータのコピーの要否を判別して、必要な数のアドレスをＤＭＡコントローラ２１３に供給する。メモリコントローラ２１４はＲＡＭ１２３における対応するアドレスに受信データ２０３をＤＭＡ転送する。これによりメモリ上に得られた所定数の受信データを必要に応じて変換して宛先に送信する。【選択図】図６
2009031954.tif 000002
【特許請求の範囲】
【請求項１】
特定のデータを一時的に保存するデータ一時保存手段と、
このデータ一時保存手段に保存されたデータについてコピーの要否を判別するコピー要否判別手段と、
このコピー要否判別手段によってコピーが必要であると判別されたとき前記データ一時保存手段から読み出されるデータをコピーによって必要とされるデータの総計に該当するそれぞれ異なったメモリ領域にＤＭＡ（Direct Memory Access）転送するＤＭＡ転送手段
とを具備することを特徴とするデータ処理装置。
【請求項２】
データを受信するデータ受信手段と、
このデータ受信手段で受信したデータを一時的に保存するデータ一時保存手段と、
前記データ受信手段の受信したデータについてコピーの要否を判別するコピー要否判別手段と、
このコピー要否判別手段によってコピーが必要であると判別されたとき前記データ一時保存手段から読み出されるデータをコピーによって必要とされるデータの総計に該当するそれぞれ異なったメモリ領域にＤＭＡ（Direct Memory Access）転送するＤＭＡ転送手段と、
このＤＭＡ転送手段によってＤＭＡ転送されたそれぞれのメモリ領域のデータを読み出してこれらの送信先に送信するデータ送信手段
とを具備することを特徴とするデータ処理装置。
【請求項３】
前記データ送信手段は、それぞれの送信先に必要とされるデータ形式への変換を個別に行うデータ変換手段を更に具備することを特徴とする請求項２記載のデータ処理装置。
【請求項４】
前記データ一時保存手段から読み出されるデータとは、ＦＩＦＯ（First-In First-Out）メモリから出力されるデータであり、これが前記ＤＭＡ転送手段によって転送された後に次のデータが前記ＦＩＦＯメモリから読み出されることを特徴とする請求項２記載のデータ処理装置。
【請求項５】
前記ＦＩＦＯメモリから出力されるデータのヘッダは、ＭＡＣ（Media Access Control）ヘッダ、ＶＬＡＮ（Virtual Local Area Network）タグ、ＩＰ（Internet Protocol）ヘッダ、ＴＣＰ／ＵＤＰ（Transmission Control Protocol/User Datagram Protocol）ヘッダのうちの所定のものと比較されて、前記ＤＭＡ転送手段によってＤＭＡ転送されるそれぞれのメモリ領域のアドレスが決定されることを特徴とする請求項４記載のデータ処理装置。
【請求項６】
受信したデータの送信先を判別する送信先判別ステップと、
この送信先判別ステップで判別された送信先が２箇所以上であるとき、これらの送信先に送信するそれぞれのデータの格納先を指定する格納先指定ステップと、
この格納先指定ステップで指定されたそれぞれの格納先に前記特定のデータをＤＭＡ（Direct Memory Access）転送するＤＭＡ転送ステップと、
このＤＭＡ転送ステップで転送された前記特定のデータをそれぞれの送信先に応じたデータ形式に変換するデータ変換ステップと、
このデータ変換ステップで変換した後のデータをそれぞれの送信先に送信する送信ステップ
とを具備することを特徴とするデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同一のデータを必要な数だけコピーするデータ処理装置および受信したデータを必要な数だけコピーして転送するデータ転送方法に係わり、たとえばデータをブロードキャストあるいはマルチキャストする場合に好適なデータ処理装置およびデータ転送方法に関する。
【背景技術】
【０００２】
イーサネット（登録商標）によるデータの通信速度が年々向上しており、その主流が１００Ｍｂｐｓ（megabit per second）から１Ｇｂｐｓ（gigabit per second）に移行している。これに伴って、ルータには以前にも増してルーティング処理の高速化が要求されるようになっている。これに対する１つの解決法は、ルータ内の制御やデータ処理を行なうＣＰＵ（Central Processing Unit）のクロック周波数を上げることである。クロック周波数を上げればＣＰＵの単位時間での処理能力は向上し、ひいてはルーティング処理能力の向上にもつながる。
【０００３】
ところが、一般にクロック周波数が高くなるほど、これを搭載したデバイスの価格は高くなる傾向にある。またそのデバイスの消費電力も高くなることが多い。特定のデータを必要に応じてコピーして複数組作成するようなデータ処理装置としては、前記したルータの他にたとえば同報通信装置がある。このような同報通信装置では、ＣＰＵが関与する形でユーザデータをコピーし、各同報通信先のポート番号を含んだヘッダ部分をそれぞれのユーザデータに付与して通信を行っている（たとえば特許文献１参照）。
【特許文献１】特開２００５−０３３２９６号公報（第００８７段落、図２）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
同報通信装置やルータ等のこのようなデータ処理装置はホームユースのものも多く、低価格や低消費電力の製品が要求されている。したがってデータ処理装置は安易にＣＰＵのクロック周波数を上げることはできず、クロック周波数のアップに頼らない処理能力の向上のための施策が必要である。
【０００５】
そこで本発明の目的は、通信等の用途でデータのコピーを作成するような場合に、ＣＰＵに負担を掛けることなくこれを実現できるデータ処理装置および受信したデータを必要な数だけコピーして転送するデータ転送方法を得ることにある。
【課題を解決するための手段】
【０００６】
本発明では、（イ）特定のデータを一時的に保存するデータ一時保存手段と、（ロ）このデータ一時保存手段に保存されたデータについてコピーの要否を判別するコピー要否判別手段と、（ハ）このコピー要否判別手段によってコピーが必要であると判別されたときデータ一時保存手段から読み出されるデータをコピーによって必要とされるデータの総計に該当するそれぞれ異なったメモリ領域にＤＭＡ（Direct Memory Access）転送するＤＭＡ転送手段とをデータ処理装置に具備させる。
【０００７】
すなわち本発明では、データ一時保存手段に特定のデータを一時的に保存して、これについてのコピーの要否をコピー要否判別手段で判別し、コピーが必要であると判別されたときには、データ一時保存手段から読み出されるデータを、ＤＭＡ転送手段を用いてコピーによって必要とされるデータの総計に該当するそれぞれ異なったメモリ領域にＤＭＡ転送することにしている。したがって、ＣＰＵに負担を掛けることなく、特定のデータを必要数得ることができる。
【０００８】
また、本発明では、（イ）データを受信するデータ受信手段と、（ロ）このデータ受信手段で受信したデータを一時的に保存するデータ一時保存手段と、（ハ）データ受信手段の受信したデータについてコピーの要否を判別するコピー要否判別手段と、（ニ）このコピー要否判別手段によってコピーが必要であると判別されたときデータ一時保存手段から読み出されるデータをコピーによって必要とされるデータの総計に該当するそれぞれ異なったメモリ領域にＤＭＡ（Direct Memory Access）転送するＤＭＡ転送手段と、（ホ）このＤＭＡ転送手段によってＤＭＡ転送されたそれぞれのメモリ領域のデータを読み出してこれらの送信先に送信するデータ送信手段とをデータ処理装置に具備させる。
【０００９】
すなわち本発明では、データ受信手段で受信したデータをデータ一時保存手段に一時的に保存すると共に、このデータについてコピーの要否をコピー要否判別手段で判別する。そして、コピーが必要であると判別されたときには、データ一時保存手段から読み出されるデータをコピーによって必要とされるデータの総計に該当するそれぞれ異なったメモリ領域にＤＭＡ転送手段でＤＭＡ転送し、この後、データ送信手段がＤＭＡ転送されたそれぞれのメモリ領域のデータを読み出してこれらの送信先に送信することにしている。これにより、受信したデータのコピーをＣＰＵに負担を掛けることなく作成して、送信することができる。
【００１０】
また、本発明では、（イ）受信したデータの送信先を判別する送信先判別ステップと、（ロ）この送信先判別ステップで判別された送信先が２箇所以上であるとき、これらの送信先に送信するそれぞれのデータの格納先を指定する格納先指定ステップと、（ハ）この格納先指定ステップで指定されたそれぞれの格納先に前記した特定のデータをＤＭＡ（Direct Memory Access）転送するＤＭＡ転送ステップと、（ニ）このＤＭＡ転送ステップで転送された前記した特定のデータをそれぞれの送信先に応じたデータ形式に変換するデータ変換ステップと、（ホ）このデータ変換ステップで変換した後のデータをそれぞれの送信先に送信する送信ステップとをデータ転送方法に具備させる。
【００１１】
すなわち本発明では、受信したデータの送信先を送信先判別ステップで判別し、送信先が２箇所以上であるとき、これらの送信先に送信するそれぞれのデータの格納先を格納先指定ステップで指定する。そして、（ハ）この格納先指定ステップで指定されたそれぞれの格納先に前記した特定のデータをＤＭＡ転送ステップでＤＭＡ転送することにしている。この後、ＤＭＡ転送ステップで転送された前記した特定のデータを、データ変換ステップでそれぞれの送信先に応じたデータ形式に変換して、送信ステップでこれらのデータをそれぞれの送信先に送信するようにしている。これにより、受信したデータのコピーをＣＰＵに負担を掛けることなく作成して、送信することができる。
【発明の効果】
【００１２】
以上説明したように、本発明によれば、データを複数の格納先にＤＭＡ転送することで必要なコピーを取得するので、この処理にＣＰＵを介する必要がない。したがって、ＣＰＵの処理能力を他の処理に発揮させ、データ処理の効率を高めることができる。
【発明を実施するための最良の形態】
【００１３】
以下実施例につき本発明を詳細に説明する。
【実施例１】
【００１４】
図１は、本発明の一実施例におけるデータ処理システムを表わしたものである。本実施例のデータ処理システム１００で受信データのコピーを行う機能を備えたルータ１０１は、無線ＬＡＮ（Local Area Network）インタフェース１１１を介して通信を行う無線端末１０２と、有線ＬＡＮインタフェース１１２を介して通信を行う第１〜第４の有線端末１０３1〜１０３4と、電話線や専用線からなるＷＡＮ（Wide Area Network）インタフェース１１３を介したインターネット１１４と接続されている。
【００１５】
ルータ１０１自体は、その各部の制御を行うＣＰＵ（Central Processing Unit）１２１を備えている。ＣＰＵ１２１は、その制御プログラムを格納した不揮発性のフラッシュＲＯＭ（flash Read Only Memory）１２２と、作業用データや通信データ等の各種データならびにフラッシュＲＯＭ１２２に格納されたプログラムを展開して格納するＲＡＭ（Random Access Memory）１２３と接続されている。また、ＣＰＵ１２１は無線ユニット１２４および有線ＬＡＮコントローラ１２５とも接続されている。ＣＰＵ１２１と無線ユニット１２４の間は、たとえばＰＣＩ（Peripheral Components Interconnect）バスで接続されている。
【００１６】
ここで、無線ユニット１２４は、無線端末１０２とＩＥＥＥ（Institute of Electrical and Electronic Engineers）８０２．１１準拠の無線通信を行うデバイスである。有線ＬＡＮコントローラ１２５は、イーサネット（登録商標）用のコントローラである。有線ＬＡＮコントローラ１２５は、ＭＡＣ（Media Access Control）層と物理層とのインタフェースとしてのＭＩＩ（Media Independent Interface）１２６およびイーサネット（登録商標）プロトコルで定義されたバス構造としてのＭＤＩＯ（Management Data Input/Output）１２７を介して、Ｌ２（レイヤ２）スイッチ１２８の制御側と接続されている。また、有線ＬＡＮコントローラ１２５は、ＭＩＩ１３１およびＭＤＩＯ１３２を介してイーサネット（登録商標）によってインターネット１１４に接続するためのＥｔｈｅｒＰＨＹ（Fast Ethernet（登録商標） Physical Layer Transceivers）１３３の制御側と接続されている。
【００１７】
ここでＬ２スイッチ１２８は、学習したＭＡＣアドレスに従ってパケットの行き先を切り替えるための第１〜第４のポートＰ1〜Ｐ4を備えている。第１のポートＰ1は、第１のコネクタ１３５および有線ＬＡＮインタフェース１１２を介して第１の有線端末１０３1と接続されるようになっている。また第２のポートＰ2は、第２のコネクタ１３６および有線ＬＡＮインタフェース１１２を介して第２の有線端末１０３2と接続されるようになっている。同様に第３のポートＰ3は、第３のコネクタ１３７および有線ＬＡＮインタフェース１１２を介して第３の有線端末１０３3と接続されるようになっている。また第４のポートＰ4は、第４のコネクタ１３８および有線ＬＡＮインタフェース１１２を介して第４の有線端末１０３4と接続されるようになっている。ＥｔｈｅｒＰＨＹ１３３は、第５のコネクタ１３９およびＷＡＮインタフェース１１３を介してインターネット１１４と接続されるようになっている。
【００１８】
このような構成のデータ処理システム１００で、ルータ１０１によるルーティングの処理について説明する。一例としてルータ１０１がＷＡＮインタフェース１１３を用いて受信したデータを無線ＬＡＮ（Local Area Network）インタフェース１１１および有線ＬＡＮインタフェース１１２にルーティングする場合を考える。
【００１９】
図２は、この例の場合のデータの処理される様子を表わしたものである。ルータ１０１が第５のコネクタ１３９を介してＷＡＮインタフェース１１３から受信したデータは、矢印１５１で示すようにまずＥｔｈｅｒＰＨＹ１３３に到達し、ＭＩＩ１３１を経由して有線ＬＡＮコントローラ１２５に到達する。有線ＬＡＮコントローラ１２５は、図示しないがＤＭＡ回路を備えており、受信データはＣＰＵ１２１を介することなくＲＡＭ１２３に格納される。この後、ルータ１０１内でデータの受信が完了したことや、受信バッファのアドレスや受信データ長（レングス）を示すために、たとえばＲＡＭ１２３内の図示しない受信ディスクリプタと呼ばれる領域に情報の書き込みが行われる。受信ディスクリプタは、有線ＬＡＮコントローラ１２５内の図示しないレジスタ群として構成されていてもよいし、ＲＡＭ１２３内の領域と有線ＬＡＮコントローラ１２５内の前記したレジスタ群の双方を併用することも可能である。
【００２０】
図３は、このような受信ディスクリプタおよび受信バッファを表わしたものである。値「ｎ」を２以上の整数とすると、受信ディスクリプタ１６１には、第１〜第ｎの要素領域１６２1〜１６２nが用意されている。これら第１〜第ｎの要素領域１６２1〜１６２nには、それぞれの対象とする受信データについて、受信完了か未受信かを示す受信ステータス１６３と、受信データのバッファ領域を示すための受信バッファアドレス１６４と、受信データ長１６５とが記録されるようになっている。この例では、第１〜第ｎ−１の要素領域１６２1〜１６２n-1がそれぞれ個別に受信データのための情報を保有している。これにより、第１〜第ｎ−１の要素領域１６２1〜１６２n-1では、受信ステータスが共に「受信完了」となっている。この例で第ｎの要素領域１６２nについては、受信ステータスが「未受信」となっており、受信データのための情報が格納されていない。
【００２１】
ＲＡＭ１２３（図１）内は、受信バッファアドレス１６４と受信データ長１６５とで定まる第１〜第ｎ−１の受信バッファ１６７1〜１６７n-1が割り当てられており、それぞれの受信データが格納されている。図３に示した例では、第ｎの受信バッファ１６７nの受信ステータス１６３が未受信となっているので、これに対応する受信データは存在せず、第ｎの受信バッファ１６７nはＲＡＭ１２３内に割り当てられていない。
【００２２】
第１〜第ｎ−１の受信バッファ１６７1〜１６７n-1に格納された受信データは、図１に示したＣＰＵ１２１によってルーティング処理が行われることになる。具体的に説明すると、たとえば受信データのＭＡＣ、ＶＬＡＮタグ、ＩＰおよびＴＣＰ／ＵＤＰといったプロトコルヘッダをルーティングテーブルの値と比較して、どこに送信するかを決定する。
【００２３】
たとえば、ルータ１０１の受信データの送信先が有線ＬＡＮインタフェース１１２（図１）であるものとする。この場合、ＣＰＵ１２１は、この受信データを有線ＬＡＮインタフェース１１２に対して送信するためのＬＡＮ用データに変換する。変換によって得られたＬＡＮ用データはＣＰＵ１２１によって所定の送信バッファに書き込まれる。
【００２４】
図４は、送信ディスクリプタおよび送信バッファを示したものである。送信ディスクリプタ１７１には、第１〜第ｎの要素領域１７２1〜１７２nが用意されている。これら第１〜第ｎの要素領域１７２1〜１７２nには、それぞれの対象とする送信データについて、送信許可か送信未許可かを示す送信ステータス１７３と、送信データのバッファ領域を示すための送信バッファアドレス１７４と、送信データ長（レングス）１７５が記録されるようになっている。この例では、少なくとも第１および第２の要素領域１７２1、１７２2がそれぞれ個別に送信データのための情報を保有しており、これらの送信ステータスが共に「送信許可」となっている。また、少なくとも第ｎ−１の送信バッファ１７７nと第ｎの送信バッファ１７７nについては、送信ステータスが「送信未許可」となっており、これらには受信データのための情報が格納されていない。
【００２５】
図４に示した例では、ＲＡＭ１２３（図１）内に、送信バッファアドレス１７４と送信データ長１７５で定まる、少なくとも第１および第２の送信バッファ１７７1、１７７2が割り当てられている。したがって、送信バッファにはそれぞれの送信データが格納されている。この図４に示した例では、たとえば第ｎ−１および第ｎの送信ステータス１７３が送信未許可となっている。したがって、これらに対応する送信データは存在せず、これらに対応する送信バッファはＲＡＭ１２３内に割り当てられていない。
【００２６】
有線ＬＡＮコントローラ１２５（図１）は、送信ディスクリプタ１７１をチェックして送信ステータス１７３に「送信許可」が存在するかを判別する。そして、「送信許可」の存在を検出したら、その要素領域１７２X（Ｘは「１」から「ｎ」までの該当する任意の整数）の送信バッファアドレス１７４と送信データ長１７５を基にして、第Ｘの送信バッファ１７７Xから該当する送信データの読み出しを行う。そして、図２で矢印１５２で示したように、この送信データを有線ＬＡＮインタフェース１１２に送信することになる。
【００２７】
これに対して、ＲＡＭ１２３の受信データの送信先が無線ＬＡＮインタフェース１１１の場合、図２の矢印１５３で示すようにＲＡＭ１２３に格納された受信データはＣＰＵ１５３に直接送られる。ＣＰＵ１５３はこの受信データを無線ＬＡＮインタフェース１１１に送信するための無線データに変換する。そして、これを無線ユニット１２４に送信することになる。
【００２８】
ところで、ＷＡＮインタフェース１１３からルータ１０１がユニキャストのデータを受信した場合、その受信データの送信先は単一のアドレスとなる。したがって、この場合には、無線ＬＡＮインタフェース１１１あるいは有線ＬＡＮインタフェース１１２のうちの送信先に対応するものに変換後のデータを送信すればよい。
【００２９】
これに対して、ＷＡＮインタフェース１１３からルータ１０１が受信したデータがブロードキャストあるいはマルチキャストの場合がある。このような場合とは、インターネット１１４の図示しないコンテンツサーバからＩＰマルチキャストを利用したストリーミングデータが配信される例を挙げることができる。ブロードキャストあるいはマルチキャストのデータを受信した場合、この受信データは無線ＬＡＮインタフェース１１１と有線ＬＡＮインタフェース１１２の双方に転送しなければならない。ここで、無線ＬＡＮインタフェース１１１に送信するデータは、イーサネット（登録商標）のＤＩＸＩＩ仕様に準拠しているか、ＩＥＥＥ８０２.３準拠のパケットである。また、有線ＬＡＮインタフェース１１２に送信するデータはＩＥＥＥ８０２.１１準拠のパケットとなる。
【００３０】
このように無線ＬＡＮインタフェース１１１と有線ＬＡＮインタフェース１１２の双方に同時にデータを送信する際には、一つの受信データからこれら２種類の宛先用に異なるプロトコルのデータを生成しなければならない。そこで本発明に関連する技術では、変換処理を行う前にＣＰＵ１２１によって受信データをコピーしておき、その後にそれぞれのデータの変換を行ってルーティング処理を行うようにしている。本発明を理解するために、まずこの本発明に関連する技術についての説明を行う。
【００３１】
図５は、本発明に関連する技術で無線ＬＡＮと有線ＬＡＮの双方にデータを送信する際の原理を表わしたものである。図２と共に説明する。図５に示すようにルータ１０１が受信処理１８１を行ったデータとしての受信データ１８２は、第１のバッファ１８３に格納される。この受信データ１８２の格納領域は、図３で説明したように受信バッファアドレス１６４と、受信データ長１６５で定めることができる。受信データ１８２は、無線で送信するデータを生成するためにＣＰＵ１２１によってコピー処理１８４されてコピーデータ１８５となる。コピーデータ１８５は第２のバッファ１８６に格納される。
【００３２】
一方、第１のバッファ１８３に格納された受信データ１８２は、有線ＬＡＮインタフェース１１２に送信するために変換処理１８８が行われてＬＡＮ送信データ１８９が生成される。生成されたＬＡＮ送信データ１８９を送信するためにその情報が送信ディスクリプタ１７１に設定される。このとき、第１のバッファ１８３内における変換されたＬＡＮ送信データ１８９の格納箇所は、送信バッファアドレス１７４と送信データ長１７５で定められる。第１のバッファ１８３に格納されたＬＡＮ送信データ１８９は、有線ＬＡＮコントローラ１２５の送信処理１９１によって有線ＬＡＮインタフェース１１２に送信される。
【００３３】
第２のバッファ１８６内のコピーデータ１８５に対しては、無線用の変換処理１９２が行わる。そして、変換後の無線送信データ１９３は送信処理１９４によって無線ユニット１２４に送信される。
【００３４】
ところが、このような本発明に関連する技術では、コピー処理１８４がＣＰＵ１２１のパワーを消費することになるので、ルータ１０１の処理能力を大きく低下させる要因となる。そこで、本実施例のルータ１０１は図５で説明したコピー処理１８４を行わず、ＣＰＵ１２１の処理能力の低下を防止している。
【００３５】
図６は、本実施例のルータによる受信データの処理の様子を原理的に表わしたものである。図２と共に説明する。図６に示すようにルータ１０１が第５のコネクタ１３９を介してＷＡＮインタフェース１１３から取得した受信データ２０１は、有線ＬＡＮコントローラ１２５内の受信ＦＩＦＯ（First-In First-Out）メモリ２０２に格納される。受信ＦＩＦＯメモリ２０２は、受信データ２０１を順に格納して、その古いものから順に読み出すようになっている。受信ＦＩＦＯメモリ２０２から出力される受信データ２０３は比較器２０４に入力されて、そのヘッダ情報が設定テーブル２０５の設定値と順次比較されるようになっている。ここで設定テーブル２０５は、ＭＡＣヘッダ、ＩＰヘッダ、ＴＣＰ／ＵＤＰヘッダ等の比較のための設定値を格納しておくものであり、第１の設定値から第ｍの設定値までのｍ個の要素を持っている。
【００３６】
有線ＬＡＮコントローラ１２５内には、設定テーブル２０５に対応する形でパラメータテーブル２０７が配置されている。パラメータテーブル２０７には、第１の設定値から第ｍの設定値のそれぞれの設定値に対応させたパラメータが格納されている。これらのパラメータは、たとえば受信データのプライオリティ設定に関するプライオリティ情報や、そのデータが無線ユニット１２４にも送信すべきデータであるか否かを示す無線送信ビットから構成されている。
【００３７】
一例として、受信ＦＩＦＯメモリ２０２から読み出されたある受信データ２０３が設定テーブル２０５の第ｍ−２の設定値２０６と一致したものとする。この場合には、パラメータテーブル２０７から第ｍ−２の設定値２０６に対応する第ｍ−２のパラメータであるパラメータ２０８が出力されてアドレス検索データとしてバッファ管理部２０９に渡されるようになっている。ここでＣは無線への送信を示す無線送信ビットである。
【００３８】
バッファ管理部２０９は、プライオリティおよび無線送信ビットがセットされているか否かによって、ＲＡＭ１２３内の受信用のバッファについての管理を個別に行うブロックである。すなわち、バッファ管理部２０９はパラメータテーブル２０７から取得したパラメータ２０８に含まれるプライオリティ情報を基にして、受信用のバッファにおける書き込みのためのアドレスを検索する。本実施例でプライオリティが４段階の優先度からなるものとする。
【００３９】
図７は、本実施例の場合の受信ディスクリプタの構成を表わしたものである。図３に示した受信ディスクリプタ１６１は、最も優先度の高い第１順位受信ディスクリプタ１６１Ａと、２番目の優先度の第２順位受信ディスクリプタ１６１Ｂと、３番目の優先度の第３順位受信ディスクリプタ１６１Ｃと、最も優先度の低い第４順位受信ディスクリプタ１６１Ｄで構成されている。第１順位受信ディスクリプタ１６１Ａには、第１〜第ｎの要素領域１６２Ａ1〜１６２Ａnが用意されており、以下同様に第４順位受信ディスクリプタ１６１Ｄには、第１〜第ｎの要素領域１６２Ｄ1〜１６２Ｄnが用意されている。
【００４０】
今、図６に示した受信ＦＩＦＯメモリ２０２から読み出された受信データ２０３のプライオリティが第２順位で、無線送信ビットがセットされていたものとする。この場合、バッファ管理部２０９は第２順位受信ディスクリプタ１６１Ｂにおける受信データの書き込まれている要素領域１６２ＢX（ただしＸは１〜ｎのうちの所定の整数であり、ＸがｎのときはＸ＋１は１とする。）の次の要素領域１６２ＢX+1にこの受信データを書き込むための受信バッファアドレス２１１と、コピーデータを格納することのできる領域の検索結果としてのコピーアドレス２１２をＤＭＡコントローラ２１３に供給する。ただし、無線送信ビットがセットされていない場合、バッファ管理部２０９はコピーアドレス２１２の検索とＤＭＡコントローラ２１３に対する通知の必要がないことはもちろんである。要素領域１６２ＢX+1に対しては、図３で説明したように受信ステータス１６３、受信バッファアドレス１６４および受信データ長１６５が記録される。
【００４１】
なお、プライオリティが第１順位であれば第１順位受信ディスクリプタ１６１Ａ内の未受信の要素のアドレスが指定され、第３順位であれば第３順位受信ディスクリプタ１６１Ｃ内の未受信の要素のアドレスが指定され、第４順位であれば第４順位受信ディスクリプタ１６１Ｄ内の未受信の要素のアドレスが指定される。そして、これら対応する要素領域１６２Ａ、１６２Ｃあるいは１６２Ｄに対して必要な記録が行われることになる。
【００４２】
ＤＭＡコントローラ２１３は、提供されたアドレスに基づいて、メモリコントローラ２１４を制御してＲＡＭ１２３の該当する領域に受信データの書き込みを行う。すなわち、前記した要素領域１６２ＢX+1についての受信バッファアドレス２１１が指定されている状態では、受信データバッファ２１６内のそのアドレスに、処理中の受信データ２０３を、ＣＰＵ１２１（図２）が介在することなく書き込む処理を行う。無線送信ビットがセットされている場合、バッファ管理部２０９はコピーデータバッファ２１７における書き込み可能なコピーアドレス２１２を指定する。したがって、この場合、ＤＭＡコントローラ２１３はメモリコントローラ２１４を制御して、指定されたコピーアドレス２１２に対しても同様に受信データ２０３の書き込みを行う。
【００４３】
以上のようにして受信ＦＩＦＯメモリ２０２から読み出された１つの受信データ２０３に対する受信データバッファ２１６やコピーデータバッファ２１７に対する書込処理が終了したら、この受信ＦＩＦＯメモリ２０２から次に古い受信データ２０３の読み出しとこれに基づく書き込みの処理が行われることになる。以下、同様である。
【００４４】
このようにしてＲＡＭ１２３における受信データバッファ２１６に対しては、図５で示した変換処理１８８と同様な変換処理が行われる。そして、有線ＬＡＮインタフェース１１２に送信するためのＬＡＮ送信データ１８９（図５）が生成される。その後は図５で説明したように、生成されたＬＡＮ送信データ１８９を送信するためにその情報が送信ディスクリプタ１７１に設定される。このとき、図７に示した第１順位受信ディスクリプタ１６１Ａを基にして読み出した受信データに対応するＬＡＮ送信データ１８９が送信の際に最も優先度の高いデータとなることになる。他の順位の受信ディスクリプタ１６１Ｂ、１６１Ｃ、１６１Ｄは同様にそれらの優先度に応じた取り扱いとなる。
【００４５】
このようにして第１のバッファ１８３に格納されたＬＡＮ送信データ１８９は、有線ＬＡＮコントローラ１２５の送信処理１９１によって有線ＬＡＮインタフェース１１２に送信される。また、図５に示すコピーデータバッファ２１７に格納された受信データに対しては、図６に示したような無線用の変換処理１９２が行わる。そして、変換後の無線送信データ１９３は送信処理１９４によって無線ユニット１２４に送信されることになる。
【００４６】
以上説明した実施例では、ＤＭＡコントローラ２１３を用いて受信データ２０３のコピーを行ったので、この処理にＣＰＵ１２１の介在が不要である。したがって、特にプログラムがインストラクションキャッシュにヒットしている状況であれば、ＣＰＵ１２１はこのコピー処理中に別の処理を行うことができ、ルータ１０１としての処理能力の向上を図ることができる。すなわち、図５で示したような関連技術によれば、コピーをＣＰＵ１２１によって処理するので、（１）受信データ格納のためのメモリライト、（２）コピーのための受信データの読み出し、および（３）コピーデータの書き込みと３回のメモリアクセスが発生するが、本実施例では（１）受信データ２０１の格納のためのメモリライト後に（２）コピーデータの書き込みを連続して行うことができる。したがって、コピーのための受信データ２０３の読み出し処理を削減することができ、またコピーに要する時間も短縮できるので、ルータ１０１の性能向上に寄与する。またＲＡＭ１２３等のメモリへのアクセスが減ることでＣＰＵ１２１からメモリへのアクセス待ち時間が短縮され、これも性能アップに貢献することになる。
【００４７】
特に実施例のようなルータを使用したデータ処理装置システムの場合、無線ＬＡＮは８０２.１１準拠であり、有線ＬＡＮは８０２.３準拠となっていて参照すべき規格が異なっている。このため、フレームのフォーマットが異なり、あるデータを無線ＬＡＮと有線ＬＡＮの２箇所に送信するためには、それぞれ異なるフレーム形式に変換する必要がある。たとえばＷＡＮから受信したデータをＬＡＮと無線に送信する場合、ＬＡＮに送信するデータは受信データに対して、一例としてＮＡＴ（Network Address Translation）でアドレス変換を行い送信を行う。このデータはイーサネット（登録商標）（ＤＩＸＩＩ）準拠のフレーム形式をとる。一方、無線に送信するデータは、同様にアドレス変換を行った後、さらに８０２.１１準拠するフレーム形式に変換する必要がある。
【００４８】
これらの必要条件を満足するためには、受信データをコピーしておき、それぞれ有線ＬＡＮ用、無線ＬＡＮ用のデータに変換して送信することが必要であった。本発明に関連する技術では受信データのコピーとして、メモリ間コピーをソフトウェア処理によって行っていた。メモリ間コピー中、ＣＰＵはメモリリードとライトを繰り返すだけなので、他の処理を行うことができず、ＣＰＵの処理能力を相当圧迫していた。本実施例では、これをＤＭＡ転送で行うようにしたので、ルータにおけるＣＰＵの大幅な負担軽減に繋がることになる。
【００４９】
なお、実施例では送信ディスクリプタ１７１を単一としたが、これをプライオリティに応じて複数個配置して、有線ＬＡＮコントローラ１２５の送信処理１９１の際に優先度に応じた送信処理を行うようにしてもよい。また、本実施例では無線ユニット１２４の送信する無線データについては優先度を考慮しなかったが、送信の際に同様にして考慮することも可能である。たとえばリアルタイム性の強い受信データについては優先的に送信することが有効である。
【００５０】
また、実施例でプライオリティは図１または図２に示す第１〜第４の有線端末１０３1〜１０３4と直接関係ないものとして説明したが、これらに対応付けられるものであってもよい。たとえば第１の有線端末１０３1が他の有線端末１０３2〜１０３4よりもリアルタイム性が要求される端末である場合には、これを宛先とするデータの送信の優先度を高めるようにしてもよい。
【００５１】
更に、実施例ではＷＡＮから有線および無線ＬＡＮへのパケットの転送について説明したが、この逆に有線ＬＡＮからＷＡＮおよび無線ＬＡＮへの転送や、無線ＬＡＮから有線ＬＡＮおよびＷＡＮへの転送についても本発明を適用することができることは同様である。また、実施例ではイーサネット（登録商標）を扱う有線ＬＡＮコントローラ１２５とＣＰＵ１２１をルータ１０１内の別のデバイスとして説明したが、両者をインテグレーションして１つのデバイスとして実現することも可能である。
【００５２】
また、実施例ではルーティング処理をＣＰＵが行うものとしたが、有線ＬＡＮコントローラ１２５がハードウェアによるルーティング機能を具備している場合や、ＤＳＰ（Digital Signal Processor）等の補助プロセッサを使用してルーティング機能を実現している場合についても本発明を適用することができることは当然である。更に、実施例では設定テーブル２０５やパラメータテーブル２０７を有線ＬＡＮコントローラ１２５内にレジスタ群のような形で配置することにしたが、ＲＡＭ１２３等のメモリ内に配置してもよい。
【００５３】
また、実施例では受信データ２０３のコピーから送信までをハードウェアで処理することにしたが、この処理の少なくとも一部をソフトウェアを用いて行うことも可能であることは当然である。
【図面の簡単な説明】
【００５４】
【図１】本発明の一実施例における通信システムを表わしたシステム構成図である。
【図２】本実施例でＷＡＮからＬＡＮへデータが転送される場合を示した通信システムの説明図である。
【図３】本実施例の受信ディスクリプタと受信バッファを示した説明図である。
【図４】本実施例の送信ディスクリプタおよび送信バッファを示した説明図である。
【図５】本発明に関連する技術で無線ＬＡＮと有線ＬＡＮの双方にデータを送信する様子を表わした説明図である。
【図６】本実施例のルータによる受信データの処理の様子を表わした説明図である。
【図７】本実施例の受信ディスクリプタの構成を表わした説明図である。
【符号の説明】
【００５５】
１００  データ処理システム
１０１  ルータ
１０２  無線端末
１０３  有線端末
１１１  無線ＬＡＮインタフェース
１１２  有線ＬＡＮインタフェース
１１３  ＷＡＮインタフェース
１２１  ＣＰＵ
１２２  フラッシュＲＯＭ
１２３  ＲＡＭ
１２４  無線ユニット
１２５  有線ＬＡＮコントローラ
２０２  受信ＦＩＦＯメモリ
２０４  比較器
２０５  設定テーブル
２０７  パラメータテーブル
２０９  バッファ管理部
２１３  ＤＭＡコントローラ
２１４  メモリコントローラ
２１６  受信データバッファ
２１７  コピーデータバッファ
【図１】
2009031954.tif 000003
【図２】
2009031954.tif 000004
【図３】
2009031954.tif 000005
【図４】
2009031954.tif 000006
【図５】
2009031954.tif 000007
【図６】
2009031954.tif 000008
【図７】
2009031954.tif 000009