(57)【要約】【課題】バッファメモリの増大を抑制してコストダウン、装置の小型化を図ることができると共に、ＣＰＵによる受信用バッファメモリから送信用バッファメモリへのデータの移し変え作業を無くして処理の高速化を実現すること。【解決手段】ネットワークインターフェース１０１から指定されたアドレスをアドレス変換テーブル２０１で実際にデータを格納するメモリのアドレスに変換し、ネットワークインターフェース１０１から指定されたアドレスに関わらず実際にデータをメモリのどの格納領域に格納／読み出しするかを任意に設定できるように構成し、ネットワークインターフェース１０１から同一のアドレスが指定された場合でもメモリ内でデータを移し変えることなくデータの書き込み／読み出しを行う。【選択図】　　　図１
2004129083.tif 000002
【特許請求の範囲】
【請求項１】
データの格納領域を所定容量単位に分割したメモリと、データを格納するメモリの格納領域を示すアドレスを各々予め複数個保有する複数の処理手段と、これらの処理手段に設定された各アドレス毎に対応する記憶領域を有し且つ実際にデータを格納するメモリの格納領域を示すアドレスを前記記憶領域内に書換可能に保持するアドレス変換テーブルと、前記処理手段からアドレスの指定があるとこのアドレスに対応するアドレス変換テーブルの記憶領域を選択し且つこの記憶領域から実際にデータを格納するメモリ領域のアドレスを読出してこのアドレスが示すメモリ領域をデータ格納領域として選択する選択手段と、前記アドレス変換テーブルの記憶領域内に保持されるアドレスを書換える制御手段と、を具備したデータ処理装置。
【請求項２】
データの格納領域を所定容量単位に分割したメモリと、データを読出すメモリの格納領域を示すアドレスを各々予め複数個保有する複数の処理手段と、これらの処理手段に設定された各アドレス毎に対応する記憶領域を有し且つ実際にデータを読出すメモリの格納領域を示すアドレスを前記記憶領域内に書換可能に保持するアドレス変換テーブルと、前記処理手段からアドレスの指定があるとこのアドレスに対応するアドレス変換テーブルの記憶領域を選択し且つこの記憶領域から実際にデータを読出すメモリ領域のアドレスを読出してこのアドレスが示すメモリ領域をデータ読出領域として選択する選択手段と、前記アドレス変換テーブルの記憶領域内に保持されるアドレスを書換える制御手段と、を具備したデータ処理装置。
【請求項３】
データの格納領域を所定容量単位に分割したメモリと、データを格納又は読出すメモリの格納領域を示すアドレスを各々予め複数個保有する複数の処理手段と、これらの処理手段に設定された各アドレス毎に対応する記憶領域を有し且つ実際にデータを格納又は読出すメモリの格納領域を示すアドレスを前記記憶領域内に書換可能に保持するアドレス変換テーブルと、前記処理手段からアドレスの指定があるとこのアドレスに対応するアドレス変換テーブルの記憶領域を選択し且つこの記憶領域から実際にデータを格納又は読出すメモリ領域のアドレスを読出してこのアドレスが示すメモリ領域をデータ格納領域又は読出領域として選択する選択手段と、前記アドレス変換テーブルの記憶領域内に保持されるアドレスを書換える制御手段と、を具備し、
複数の処理手段の中の第１処理手段はデータを受信するとこのデータを所定容量単位に分割し各分割データ毎に保有するアドレスを割当て前記選択手段に前記アドレスを出力し、前記選択手段は前記アドレスの指定を受けると前記アドレス変換テーブルの対応する記憶領域を選択し、前記アドレス変換テーブルは前記選択された記憶領域内に保持された前記メモリの格納領域を前記選択手段に出力し、前記選択手段は前記出力された前記メモリの格納領域にデータを格納し、一方、複数の処理手段の中の第２処理手段が前記メモリの格納領域に格納された同一のデータを読出す場合、所定容量単位に読出すべきデータに保有するアドレスを割当て前記選択手段に前記アドレスを出力し、前記選択手段は前記アドレスの指定を受けると前記アドレス変換テーブルの対応する記憶領域を選択し、前記アドレス変換テーブルは前記選択された記憶領域内に保持され且つ前記読出すべきデータが格納されている前記メモリの記憶領域を前記選択手段に出力し、前記選択手段は前記出力された前記メモリの格納領域からデータを読出すことを特徴としたデータ処理装置。
【請求項４】
データの格納領域を所定容量単位に分割し且つ各格納領域毎に使用の有無を示すステータス領域を有するメモリと、データを格納するメモリの格納領域を示すアドレスを各々予め複数個保有する複数の処理手段と、これらの処理手段に設定された各アドレス毎に対応する記憶領域を有し且つ実際にデータを格納するメモリの格納領域を示すアドレスを前記記憶領域内に書換可能に保持するアドレス変換テーブルと、処理手段からアドレスの指定があるとこのアドレスに対応するアドレス変換テーブルの記憶領域を選択し且つこの記憶領域から実際にデータを格納するメモリ領域のアドレスを読出してこのアドレスが示すメモリの格納領域をデータ格納領域として選択する第１選択手段と、前記アドレス変換テーブルの記憶領域内に保持されるアドレスを書換える制御手段と、前記メモリの未使用領域の中で最もアドレスが小さいものを次の格納領域として選択する第２選択手段と、前記制御手段が前記アドレス変換テーブルの記憶領域内にアドレスを書込んでいない場合、第２選択手段が選択した格納領域を選択する第３選択手段と、を具備したデータ処理装置。
【請求項５】
メモリは、データの格納領域がパケット通信で転送される最大データ量より小さい単位に分割されていることを特徴とする請求項１から請求項４のいずれかに記載のデータ処理装置。
【請求項６】
前記制御手段は、前記アドレス変換テーブルの記憶領域内にイニシャル値としてメモリの格納領域のいずれも指定しない値を設定し、前記選択手段から前記アドレス変換テーブルの記憶領域内のいずれかの指定があると、メモリの格納領域がアドレスの小さい順に使用されるように前記アドレス変換テーブルの記憶領域内の値を設定することを特徴とする請求項１から請求項４のいずれかに記載のデータ処理装置。
【請求項７】
前記メモリに空き領域がなくなった場合、前記制御手段に対して割込信号を発する手段を設けたことを特徴とする請求項１から請求項４のいずれかに記載のデータ処理装置。
【請求項８】
前記アドレス変換テーブルに空き領域がなくなった場合、前記制御手段に対して割込信号を発する手段を設けたことを特徴とする請求項１から請求項４のいずれかに記載のデータ処理装置。
【請求項９】
前記選択手段の出力が前記メモリのいずれのアドレスも選択していない場合、前記制御手段に対して割込信号を発する手段を設けたことを特徴とする請求項１から請求項４のいずれかに記載のデータ処理装置。
【請求項１０】
前記制御手段は、前記メモリのどのアドレスにデータを格納するかについて前記格納すべきアドレスに基づいてコマンドを生成し、また、前記アドレス変換テーブルにアドレスを書込む専用ハード回路を別途設け、この専用ハード回路が前記コマンドを解析して前記アドレス変換テーブルにアドレスを書込むことを特徴とする請求項１から請求項４のいずれかに記載のデータ処理装置。
【請求項１１】
前記複数の処理手段は、送信データと受信データとを同一バスを用いて同一のメモリに対して格納又は読出を行い、且つ前記メモリの格納領域を示すアドレスを送信データ用及び受信データ用に分けて各々保有することを特徴とした請求項１から請求項４のいずれかに記載のデータ処理装置。
【請求項１２】
処理手段の一部は、通信手段であることを特徴とする請求項１から請求項９のいずれかに記載のデータ処理装置。
【請求項１３】
処理手段の一部は、暗号手段であることを特徴とする請求項１から請求項９のいずれかに記載のデータ処理装置。
【請求項１４】
処理手段の一部は、前記制御手段であることを特徴とする請求項１から請求項９のいずれかに記載のデータ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＬＡＮに接続されるルータ、ＬＡＮスイッチ又はデータ端末装置等のデータ処理装置に係り、特にＬＡＮから受信したデータをバッファリングして他へ送信する際にデータの書き込む／読み出しに関するメモリ制御を伴うデータ処理装置に関する。
【０００２】
【従来の技術】
従来のネットワーク機器は、イーサネット（Ｒ）等のＬＡＮから受信したＩＰパケットをバッファメモリに蓄積し、ＣＰＵが読込んで宛先を確認した後に、再びバッファメモリに書き込んで宛先へ送信している。
【０００３】
図１６は従来のネットワーク機器の概略的な構成を示している。ネットワーク機器は、コネクタ等の物理層インターフェース（ＰＨＹ）１を介してＬＡＮに接続され、ＬＡＮ上を流れるＩＰパケットを受信し又は送信する際のバッファリングはＬＳＩ内部ブロック２にて行う。ＣＰＵ３はＬＳＩ内部ブロック２におけるＩＰパケットの受信／送信を制御する。図１６に示すネットワーク機器は、ＬＡＮ１〜ＬＡＮ３の３つのネットワークに接続可能に構成されており、コネクタ１ａ、１ｂ、１ｃにて物理的に接続される。ＬＳＩ内部ブロック２内には、コネクタ１ａ、１ｂ、１ｃ（ＬＡＮ１〜ＬＡＮ３）に対してネットワークインターフェース４、５、６が設置されている。ネットワークインターフェース４、５、６に対して個別にバッファメモリ７、８、９が設けられている。バッファメモリ７、８、９は、それぞれ受信用バッファメモリと送信用バッファメモリとで構成されている。
【０００４】
例えば、ＬＡＮ１から受信したパケットデータをＬＡＮ２へ送出する場合、ＬＡＮ１から受信したパケットデータは、バッファメモリ７の受信用バッファメモリに格納され、その後にＣＰＵ３が受信用バッファメモリから読み出してＬＡＮ２のバッファメモリ８の送信用バッファメモリに書き込むことでＬＡＮ２へ送出される。
【０００５】
また、長さの異なる複数のメインメモリ上のパケット領域を管理する複数の受信用パケットバッファを設けて、ソフトウエア上のオーバヘッドを減らして、受信用のパケット領域を確保する技術がある（例えば、特許文献１参照）。
【０００６】
【特許文献１】
特開２００２−２４４５１７号公報（図２）
【０００７】
【発明が解決しようとする課題】
しかしながら、上記した従来の技術では、ネットワーク機器に接続される個々のＬＡＮ１−３に対応してそれぞれ専用の受信用バッファメモリ及び送信用バッファメモリを設けているので、ＣＰＵ３が受信用バッファメモリからパケットデータを読み込んで、再度送信用バッファメモリに書き込むといった移し変えの作業に時間が要するといった問題があった。
【０００８】
また、ネットワーク機器に接続される個々のＬＡＮ１−３に対応してそれぞれ専用の受信用バッファメモリ及び送信用バッファメモリを設けているが、製品としては１チャンネルしか使用しない場合も有り得、そのような場合には２チャンネル分のバッファメモリが無駄になるといった問題があった。
【０００９】
さらに、ネットワーク機器に接続されるＬＡＮの数が増大すると、それに合わせてバッファメモリも増設しなければならず、またＣＰＵの処理速度に余裕がない場合は、受信用バッファメモリを増設しなければならず、バッファメモリが増大する傾向にあった。
【００１０】
また、特開２００２−２４４５１７号は、入力用通信手段と出力用通信手段とをそれぞれ１個づつ有するもので、入力用及び出力用を兼ねた通信手段を複数個有するものではない。そのため、入力用及び出力用を兼ねた通信手段を複数個設けた場合の上記課題に対応できなかった。
【００１１】
本発明は、以上のような実情に鑑みて成されたものであり、バッファメモリの増大を抑制してコストダウン、装置の小型化を図ることができると共に、ＣＰＵによる受信用バッファメモリから送信用バッファメモリへのデータの移し変え作業を無くして処理の高速化を実現するデータ処理装置を提供することを目的とする。
【００１２】
【課題を解決するための手段】
本発明は、処理手段から指定されたアドレスをアドレス変換テーブルで実際にデータを格納するメモリのアドレスに変換し、処理手段から指定されたアドレスに関わらず実際にデータをメモリのどの格納領域に格納するかを任意に設定できるように構成し、処理手段から同一のアドレスが指定された場合でもメモリ内でデータを移し変えることなくデータの書き込みを行えるようにした。
【００１３】
また本発明は、処理手段から指定されたアドレスをアドレス変換テーブルで実際にデータを読み出すメモリのアドレスに変換し、処理手段から指定されたアドレスに関わらず制御手段で実際にデータをメモリのどの格納領域から読み出すかを任意に設定できるように構成し、メモリ内でデータを移し変える処理を行うことなくデータを読み出せるようにした。
【００１４】
【発明の実施の形態】
本発明の第１の態様は、データの格納領域を所定容量単位に分割したメモリと、データを格納するメモリの格納領域を示すアドレスを各々予め複数個保有する複数の処理手段と、これらの処理手段に設定された各アドレス毎に対応する記憶領域を有し且つ実際にデータを格納するメモリの格納領域を示すアドレスを前記記憶領域内に書換可能に保持するアドレス変換テーブルと、前記処理手段からアドレスの指定があるとこのアドレスに対応するアドレス変換テーブルの記憶領域を選択し且つこの記憶領域から実際にデータを格納するメモリ領域のアドレスを読出してこのアドレスが示すメモリ領域をデータ格納領域として選択する選択手段と、前記アドレス変換テーブルの記憶領域内に保持されるアドレスを書換える制御手段と、を具備したデータ処理装置である。
【００１５】
以上のように構成されたデータ処理装置によれば、アドレス変換テーブルで処理手段から指定されたアドレスを実際にデータを格納するメモリのアドレスに変換し且つ制御手段がアドレス変換テーブルの記憶内容を書換えることにより、処理手段から指定されたアドレスに関わらず制御手段で実際にデータをメモリのどの格納領域に格納するかを任意に設定できるので、処理手段から同一のアドレスが指定された場合でもメモリ内でデータを移し変える処理を行う必要がなく、メモリを有効に活用できると共に処理を高速にできる。
【００１６】
本発明の第２の態様は、データの格納領域を所定容量単位に分割したメモリと、データを読出すメモリの格納領域を示すアドレスを各々予め複数個保有する複数の処理手段と、これらの処理手段に設定された各アドレス毎に対応する記憶領域を有し且つ実際にデータを読出すメモリの格納領域を示すアドレスを前記記憶領域内に書換可能に保持するアドレス変換テーブルと、前記処理手段からアドレスの指定があるとこのアドレスに対応するアドレス変換テーブルの記憶領域を選択し且つこの記憶領域から実際にデータを読出すメモリ領域のアドレスを読出してこのアドレスが示すメモリ領域をデータ読出領域として選択する選択手段と、前記アドレス変換テーブルの記憶領域内に保持されるアドレスを書換える制御手段と、を具備したデータ処理装置である。
【００１７】
以上のように構成されたデータ処理装置によれば、アドレス変換テーブルで処理手段から指定されたアドレスを実際にデータを読み出すメモリのアドレスに変換し且つ制御手段がアドレス変換テーブルの記憶内容を書換えることにより、処理手段から指定されたアドレスに関わらず制御手段で実際にデータをメモリのどの格納領域から読み出すかを任意に設定できるので、メモリに書き込んだときに処理手段が使用したアドレスとは異なるアドレスを使用して処理手段が読み出しアドレスを指定でき、メモリ内でデータを移し変える処理を行うことなく同一アドレスからデータを読み出せるので、メモリを有効に活用できると共に処理を高速にできる。
【００１８】
本発明の第３の態様は、データの格納領域を所定容量単位に分割したメモリと、データを格納又は読出すメモリの格納領域を示すアドレスを各々予め複数個保有する複数の処理手段と、これらの処理手段に設定された各アドレス毎に対応する記憶領域を有し且つ実際データを格納又は読出すメモリの格納領域を示すアドレスを前記記憶領域内に書換可能に保持するアドレス変換テーブルと、前記処理手段からアドレスの指定があるとこのアドレスに対応するアドレス変換テーブルの記憶領域を選択し且つこの記憶領域から実際にデータを格納又は読出すメモリ領域のアドレスを読出してこのアドレスが示すメモリ領域をデータ格納領域又は読出領域として選択する選択手段と、前記アドレス変換テーブルの記憶領域内に保持されるアドレスを書換える制御手段と、を具備し、複数の処理手段の中の第１処理手段はデータを受信するとこのデータを所定容量単位に分割し各分割データ毎に保有するアドレスを割当て前記選択手段に前記アドレスを出力し、前記選択手段は前記アドレスの指定を受けると前記アドレス変換テーブルの対応する記憶領域を選択し、前記アドレス変換テーブルは前記選択された記憶領域内に保持された前記メモリの格納領域を前記選択手段に出力し、前記選択手段は前記出力された前記メモリの格納領域にデータを格納し、一方、複数の処理手段の中の第２処理手段が前記メモリの格納領域に格納された同一のデータを読出す場合、所定容量単位に読出すべきデータに保有するアドレスを割当て前記選択手段に前記アドレスを出力し、前記選択手段は前記アドレスの指定を受けると前記アドレス変換テーブルの対応する記憶領域を選択し、前記アドレス変換テーブルは前記選択された記憶領域内に保持され且つ前記読出すべきデータが格納されている前記メモリの記憶領域を前記選択手段に出力し、前記選択手段は前記出力された前記メモリの格納領域からデータを読出すことを特徴としたデータ処理装置である。
【００１９】
以上のように構成されたデータ処理装置によれば、第１処理手段からメモリに格納したデータを第２処理手段から読出す場合、第１処理手段及び第２処理手段の各々から指定されたアドレスに関わらず制御手段で実際にデータをメモリのどの格納領域に格納するかを任意に設定できるので、第１処理手段及び第２処理手段の各々が指定するアドレス変換テーブルの記憶領域に制御手段が同一アドレスを設定すれば、メモリ内でデータを移し変える処理を行う必要がなく、高速に処理できる。
【００２０】
本発明の第４の態様は、データの格納領域を所定容量単位に分割し且つ各格納領域毎に使用の有無を示すステータス領域を有するメモリと、データを格納するメモリの格納領域を示すアドレスを各々予め複数個保有する複数の処理手段と、これらの処理手段に設定された各アドレス毎に対応する記憶領域を有し且つ実際にデータを格納するメモリの格納領域を示すアドレスを前記記憶領域内に書換可能に保持するアドレス変換テーブルと、処理手段からアドレスの指定があるとこのアドレスに対応するアドレス変換テーブルの記憶領域を選択し且つこの記憶領域から実際にデータを格納するメモリ領域のアドレスを読出してこのアドレスが示すメモリの格納領域をデータ格納領域として選択する第１選択手段と、前記アドレス変換テーブルの記憶領域内に保持されるアドレスを書換える制御手段と、前記メモリの未使用領域の中で最もアドレスが小さいものを次の格納領域として選択する第２選択手段と、前記制御手段が前記アドレス変換テーブルの記憶領域内にアドレスを書込んでいない場合、第２選択手段が選択した格納領域を選択する第３選択手段と、を具備したデータ処理装置である。
【００２１】
以上のように構成されたデータ処理装置によれば、アドレス変換テーブルで処理手段から指定されたアドレスを実際にデータを格納するメモリのアドレスに変換し且つ制御手段がアドレス変換テーブルの記憶内容を書換えることにより、処理手段から指定されたアドレスに関わらず制御手段で実際にデータをメモリのどの格納領域に格納するかを任意に設定できるので、処理手段から同一のアドレスが指定された場合でもメモリ内でデータを移し変える処理を行う必要がなく、メモリを有効に活用できると共に処理を高速にできる。
【００２２】
また、処理手段から指定されたアドレスを実際にデータを格納するメモリのアドレスに変換する際、使用環境に応じてソフト的にも又はハード的にも対応できるので、利用度の高いアドレス変換を実現できる。
【００２３】
本発明の第５の態様は、第１から第４のいずれかの態様のデータ処理装置において、メモリは、データの格納領域がパケット通信で転送される最大データ量より小さい単位に分割されるものとした。
【００２４】
従来のように、データの格納領域をパケット通信で転送される最大データ量が収まる容量で構成すると、実際にパケット通信で転送される最大データ量より小さいデータ量のデータを格納する際、格納領域内に無駄な空きスペースが生じ、メモリの利用効率が悪かった。
【００２５】
そこで、本発明によると、データの格納領域を、パケット通信で転送される最大データ量より小さい単位に分割することにより、実際にパケット通信で転送されるデータを格納する際に無駄な空きスペースが生じにくく、メモリを有効活用できる。
【００２６】
本発明の第６の態様は、第１から第４の態様のいずれかのデータ処理装置において、前記制御手段は、前記アドレス変換テーブルの記憶領域内にイニシャル値としてメモリの格納領域のいずれも指定しない値を設定し、前記選択手段から前記アドレス変換テーブルの記憶領域内のいずれかの指定があると、メモリの格納領域がアドレスの小さい順に使用されるように前記アドレス変換テーブルの記憶領域内の値を設定するものである。
【００２７】
これによると、前記制御手段は、前記選択手段から前記アドレス変換テーブルの指定があると、メモリの格納領域がアドレスの小さい順に使用されるように前記アドレス変換テーブルの記憶領域内の値を設定することにより、メモリ内において使用中の格納領域と未使用の格納領域がまとまっておらず未使用の格納領域が点在する場合でも、メモリ内の未使用の格納領域をアドレスの小さい順番に選択するので、実際のメモリは未使用の格納領域が点在していても、処理手段側から見ると連続したアドレスにデータを格納しているように制御でき、メモリを利用しやすくできる。また、点在する未使用の格納領域を有効利用できるので、メモリを無駄なく効率的に利用できる。
【００２８】
また、前記アドレス変換テーブルの記憶領域内にイニシャル値としてメモリの格納領域のいずれも指定しない値を設定することにより、アドレス変換テーブル内のいずれも指定しない値が格納されている記憶領域をカウントすれば、メモリの格納領域のほとんどが使用されてメモリフルの状態が近いことが分かるので、メモリの未使用領域が残り少ないことを容易に判別できる。
【００２９】
本発明の第７の態様は、第１から第４のいずれかの態様のデータ処理装置において、メモリに空き領域がなくなった場合、前記制御手段に対して割込信号を発する手段を設けたものである。
【００３０】
これによると、前記メモリに空き領域がなくなった場合前記制御手段に対して割込信号を発することにより、それ以降前記制御手段は前記アドレス変換テーブルにアドレス書換えを行なわないので、既にメモリ内に格納されているデータが上書きされるのを防止できる。
【００３１】
本発明の第８の態様は、第１から第４の態様のいずれかのデータ処理装置において、前記アドレス変換テーブルに空き領域がなくなった場合、前記制御手段に対して割込信号を発する手段を設けたものである。
【００３２】
これによると、前記アドレス変換テーブルに空き領域がなくなった場合、前記制御手段に対して割込信号を発することにより、それ以降前記制御手段は前記アドレス変換テーブルにアドレス書換えを行なわないので、既にアドレス変換テーブル内に格納されているデータが上書きされるのを防止できる。
【００３３】
本発明の第９の態様は、第１から第４のいずれかの態様のデータ処理装置において、前記選択手段の出力が前記メモリのいずれのアドレスも選択していない場合、前記制御手段に対して割込信号を発する手段を設けたものである。
【００３４】
これによると、前記選択手段の出力が前記メモリのいずれのアドレスも選択していない場合、前記制御手段に対して割込信号を発することにより、データの書込処理又は読出処理を停止するので、実際にはメモリのどこにもデータが書込まれていないにも関わらず書込処理が正常終了したものと誤判断して処理が進んだり、また、実際にはメモリのどこからもデータが読出されていないにも関わらず読出処理が正常終了したものと誤判断して処理が進むのを防止できる。
【００３５】
特に、処理手段の一部が制御手段の場合、この制御手段から指定されたアドレスはソフト的に設定されるものなので、ソフトのバグにより本来指定すべきアドレスとは異なるアドレスを指定するということが起こり得る。この場合、本発明によれば、前記制御手段に対して割込信号を発することでデータの書込処理又は読出処理を停止するので、誤動作の処理が進行するのを防止できる。
【００３６】
本発明の第１０の態様は、第１から第４のいずれかの態様のデータ処理装置において、前記制御手段は、前記メモリのどのアドレスにデータを格納するかについて前記格納すべきアドレスに基づいてコマンドを生成し、また、前記アドレス変換テーブルにアドレスを書込む専用ハード回路を別途設け、この専用ハード回路が前記コマンドを解析して前記アドレス変換テーブルにアドレスを書込むものとした。
【００３７】
従来のように、データを格納するのにメモリの格納領域を例えば４個使用する場合、制御手段はアドレス変換テーブルに４回のアドレスを書込む必要がある。これによると、制御手段はアドレス変換テーブルの書込み処理のためにその間占有されることになる。
【００３８】
そこで、本発明によると、制御手段において必要なメモリの格納領域の大きさが分かると前記メモリの格納領域を示すアドレスに基づいてコマンドを生成し、また、前記アドレス変換テーブルにアドレスを書込む専用ハード回路を設け、この専用ハード回路が前記コマンドを解析して前記アドレス変換テーブルにアドレスを書込むことにより、制御手段は、必要なメモリの格納領域の大きさに関わらず、コマンドを１回送出するだけで、前記アドレス変換テーブルの複数の記憶領域内の書換えを行うことができるので、制御手段の負荷を軽減し、処理の高速化を図ることができる。
【００３９】
本発明の第１１の態様は、第１から第４のいずれかの態様のデータ処理装置において、前記複数の処理手段は、送信データと受信データとを同一バスを用いて同一のメモリに対して格納又は読出を行い、且つ前記メモリの格納領域を示すアドレスを送信データ用及び受信データ用に分けて各々保有するものである。
【００４０】
これによると、送信データと受信データとを同一バスを用いて同一メモリに対して格納又は読出を行うことにより、送信データの読出しと受信データの格納とは同時には行われないので、送信データに対してメモリの全アドレスを対象とする送信データ専用のアドレスを付与し、又、受信データに対してメモリの全アドレスを対象とする受信データ専用のアドレスを付与すれば、見かけ上実メモリ容量の倍の容量があるように管理でき、送信データと受信データとが相互に上書きすることなく、必要とされるメモリ容量を半分以下に抑えることができる。その結果、処理手段側に対して、予め実メモリの倍以上のメモリ容量があるように装うことができるので、処理手段側にを実メモリの容量以上の通信を支障なく行わせることができる。
【００４１】
また、送信データと受信データとを同一バスを用いて同一のメモリに対して格納又は読出を行う場合であっても、各処理手段がメモリの格納領域を示すアドレスを送信データ用及び受信データ用に分けて各々保有することにより、あるデータの送信中に他のデータを受信してもバス上でデータが衝突することがないので、安定したデータ通信を保障できる。
【００４２】
本発明の第１２の態様は、第１から第９のいずれかの態様のデータ処理装置において、処理手段の一部は、通信手段である。
【００４３】
本発明の第１３の態様は、第１から第９のいずれかの態様のデータ処理装置において、処理手段の一部は、暗号手段である。
【００４４】
本発明の第１４の態様は、第１から第９のいずれかの態様のデータ処理装置において、処理手段の一部は、前記制御手段である。
【００４５】
以下、本発明に係るデータ処理装置を適用したネットワーク機器の一実施の形態について図面を参照して具体的に説明する。
【００４６】
図１は本実施の形態に係るネットワーク機器の機能ブロック図である。本実施の形態は、３つのＬＡＮ１、２、３（例えば、イーサネット（Ｒ））に接続するための物理層インターフェース（ＰＨＹ）１が設けられている。物理層インターフェース（ＰＨＹ）１はＬＡＮ１、２、３の規格に準拠した形状のコネクタ１ａ、１ｂ、１ｃで構成される。ＬＳＩ内部ブロック１００は、各コネクタ１ａ、１ｂ、１ｃに対応してネットワークインターフェース１０１、１０２、１０３が設置されている。ネットワークインターフェース１０１、１０２、１０３は、ＬＡＮ１、２、３の仕様（プロトコル等）に基づいて動作し、ＬＡＮ１、２、３とのインターフェースを取る働きをする。また、ネットワークインターフェース１０１、１０２、１０３は、受信時には受信用アドレスを使用してメモリアクセス動作を実行し、送信動作時には送信用アドレスを使用してメモリアクセス動作する。これらのネットワークインターフェース１０１、１０２、１０３に対して１つの共用バッファメモリ１０４を備えている。共用バッファメモリ１０４は、例えばＲＡＭで構成することができる。共用バッファメモリ１０４に対する書込み／読出しを制御するためにメモリ制御回路１０５が設けられている。ネットワークインターフェース１０１、１０２、１０３と共用バッファメモリ１０４とは１つの内部バス１０６で接続される。暗号回路１０７は、ＩＰｖ６に準拠して暗号化されたデータを復号化し又は送信データを暗号化する部分である。暗号回路１０７は、暗号モジュールの受信用アドレスを使用してメモリアクセスし、暗号モジュールの送信用アドレスを使用してメモリアクセスする。
【００４７】
本実施の形態は、１つの共用バッファメモリ１０４を、複数のネットワークインターフェース１０１、１０２、１０３及び暗号回路１０７並びにＣＰＵ２００が送信用バッファメモリ及び受信用バッファメモリとして使用する。メモリ制御回路１０５は、後述するアドレス変換を実施する。
【００４８】
図２はメモリ制御回路１０５のアドレス変換に関する機能を示したブロック図である。メモリ制御回路１０５は、アドレス変換テーブル２０１と、セレクタ２０２と、コマンド解析回路２０３とを備えている。
【００４９】
アドレス変換テーブル２０１は、テーブル−０からテーブル−２５５までの２５６段構成になっていて、ネットワークインターフェース１０１〜１０３等が共用バッファメモリ１０４にアクセスするために使用するメモリアドレス空間（以下、仮想メモリアドレス空間と呼ぶ）を、共用バッファメモリ１０４の現実のアドレス空間（以下、実メモリアドレス空間と呼ぶ）に変換するテーブルデータがそれぞれ格納されている。アドレス変換テーブル２０１を構成している２５６段の各テーブルは、仮想メモリアドレス空間の上位８ビットが予め固定的に割り付けられている。
【００５０】
セレクタ２０２は、ネットワークインターフェース１０１〜１０３等がアクセスする仮想メモリアドレスの上位８ビットが入力し、その入力アドレスにしたがって１つのテーブルを選択し、選択したテーブルのテーブルデータを共用バッファメモリ１０４に対して実メモリアドレス空間の上位８ビットとして出力する。なお、ネットワークインターフェース１０１〜１０３のアクセスアドレスの下位８ビットは、そのまま変換されずに実メモリアドレスの下位８ビットとして出力する。
【００５１】
コマンド解析回路２０３は、ＣＰＵ２００から制御線を介して与えられるコマンドを解析し、解析結果に示される指示内容にしたがってアドレス変換テーブル２０１のテーブルデータを、クリア、コピー、移動又は再設定する処理を実行する。また、コマンド解析回路２０３は、解析結果に示される指示内容にしたがって共用バッファメモリ１０４の使用状況フラグをリセットする。
【００５２】
ここで、ネットワークインターフェース１０１〜１０３等が共用バッファメモリ１０４へアクセスする際に用いる仮想メモリアドレスについて説明する。
【００５３】
図３に示すように、各ネットワークインターフェース１０１〜１０３は各２Ｋバイトの受信用アドレスと送信用アドレスとを使用可能になっている。また、暗号回路１０７は、ＩＰｖ６に準拠した暗号化に対応させて各２Ｋバイトの暗号モジュールの送信用アドレスと暗号モジュールの受信用アドレスとを使用可能である。さらに、ＣＰＵ２００は直接共用バッファメモリ１０４にアクセスするために、全仮想メモリアドレス空間（００００ｈ〜ｆｆｆｆｈ）を使用可能である。
【００５４】
このように、複数のネットワークインタフェース１０１〜１０３、暗号回路１０７、ＣＰＵ２００は、送信データと受信データとを同一バスを用いて同一の共用バッファメモリ１０４に対して書き込み／読み出しを行い、且つ共用バッファメモリ１０４にアクセスするためのアドレスを送信用アドレス及び受信用アドレスに分けるものとした。これにより、送信データと受信データとを同一バスを用いて同一メモリに対して格納又は読出を行うことにより、送信データの読出しと受信データの格納とは同時には行われないこととなり、送信用アドレス空間として実メモリアドレスの全アドレスを対象とする送信データ専用のアドレスを付与し、又、受信用アドレス空間として実メモリアドレスの全アドレスを対象とする受信データ専用のアドレスを付与すれば、見かけ上実メモリ容量の倍の容量があるように管理でき、送信データと受信データとが相互に上書きすることなく、必要とされるメモリ容量を半分以下に抑えることができる。その結果、書き込み／読み出し側となるネットワークインターフェースなどに対して、予め実メモリの倍以上のメモリ容量があるように装うことができるので、ネットワークインターフェースなどを実メモリの容量以上の通信を支障なく行わせることができる。
【００５５】
また、送信データと受信データとを同一バスを用いて同一のメモリに対して格納又は読出を行う場合であっても、各ネットワークインターフェースなどがメモリの格納領域を示すアドレスを送信データ用及び受信データ用に分けて各々保有することにより、あるデータの送信中に他のデータを受信してもバス上でデータが衝突することがないので、安定したデータ通信を保障できる。
【００５６】
また、上記したように受信用アドレス空間及び送信用アドレス空間をそれぞれ２Ｋバイトとしたのは、イーサネット（Ｒ）に関する規格では１パケットの最大容量を１．５Ｋバイトと定めているからである。他の種類のネットワークに適用する場合は、そのネットワークの規格で定められている送信単位（パケット等）の最大容量に合わせることになる。
【００５７】
上記のように各ネットワークインターフェース１０１〜１０３は、各２Ｋバイトの受信用アドレス空間と送信用アドレス空間を有しているが、各２Ｋバイトの受信用アドレス空間と送信用アドレス空間は、さらに２５６バイト単位でページ分割されている。
【００５８】
図４はネットワークインターフェース１０１について、受信用アドレス空間と送信用アドレス空間とを２５６バイト単位でページ分割したときのアドレスの割付けを示している。同図において、ライトターゲットアドレスは受信用アドレスであり、リードターゲットアドレスは送信用アドレスである。例えば、ネットワークインターフェース１０１が５００バイトのデータを受信した場合、ライトターゲットアドレスとして００００ｈ〜０１ｅｈにアクセスすることになる。上位ビットが００のときはテーブル−０が選択され、テーブル−０に書かれている上位アドレスが出力される。また、上位ビットが０１のときはテーブル−１が選択され、テーブル−１に書かれている上位アドレスが出力される。
【００５９】
一方、共用バッファメモリ１０４はデータの格納領域が２５６バイト単位で分割されている。すなわち、記憶領域の最小単位は２５６バイトに設定されている。このように仮想メモリアドレス空間と実メモリアドレス空間は、データの記憶領域が２５６バイト単位の分割領域に区分けされていて、アドレス変換テーブル２０１によって双方の分割領域（ページ）が対応付けられている。
【００６０】
図５は、ネットワークインターフェース１０１〜１０３等がメモリアクセスの際に使用する仮想メモリアドレス空間の分割領域（ページ）と、共用バッファメモリ１０４の実メモリアドレス空間の分割領域との対応関係を示す図である。なお、本実施の形態では共用バッファメモリ１０４にＲＡＭを想定しているので、図５には仮想メモリの代わりに仮想ＲＡＭ、ＲＡＭと言う文字を使用している。
【００６１】
このように、仮想メモリアドレス空間及び実メモリアドレス空間を２５６バイトの分割領域に分割しているので、共用バッファメモリ１０４を有効活用できる効果を奏する。データの格納領域をパケット通信で転送される最大データ量が収まる容量（例えば、１．５Ｋバイト）で構成すると、実際にパケット通信で転送される最大データ量より小さいデータ量のデータを格納する際、格納領域内に無駄な空きスペースが生じ、メモリの利用効率が悪くなる。本発明は、分割領域をパケット通信で転送される最大データ量より小さい単位（例えば、２５６バイト）に分割することにより、実際にパケット通信で転送されるデータを格納する際に無駄な空きスペースが生じにくく、メモリを有効活用できるようにしている。なお、分割領域をさらに小さいサイズに分割すれば、さらにメモリの使用効率を改善できるが、ページ数が多くなりすぎて管理が煩雑になるので、使用目的に応じて適切なサイズを選択することが望ましい。
【００６２】
次に、以上のように構成された本実施の形態に係るネットワーク機器の具体的なメモリ制御動作について説明する。
【００６３】
初めに、図６から図９を参照して、共用バッファメモリ１０４へ受信パケットデータを書き込む受信動作について説明する。一例として、ネットワークインターフェース１０１がＬＡＮ１から１パケットが７６８バイトから１０２４バイトの間のデータサイズを有するＩＰパケットを受信した場合の動作を説明する。
【００６４】
ネットワークインターフェース１０１は、ＬＡＮ１からパケットデータを受信すると、メモリ制御回路１０５に対して受信用アドレスを指定してメモリアクセスする。このとき、ネットワークインターフェース１０１がアクセスする受信用アドレスは図４に示すようにライトターゲットアドレスが００００ｈから開始することになる。そして、受信パケットデータの全てを書き込み終了するまでライトターゲットアドレスを００００ｈから順次インクリメントしていくことになる。パケットデータはライトターゲットアドレスのインクリメント動作に同期して共用バッファメモリ１０４へ転送される。
【００６５】
また、アドレス変換テーブル２０１の各テーブルは、ライトターゲットアドレスの上位ビットで選択されたときに共用バッファメモリ１０４の空き分割領域の上位アドレスが設定されるようにテーブルデータが書き込み制御される。アドレス変換テーブル２０１に対するテーブルデータの書き込み制御はメモリ制御回路１０５が空き分割領域を探して該当テーブルに自動的に設定する自動モードと、ＣＰＵ２００が空き分割領域を管理していてコマンド解析回路２０３を介して該当テーブルにテーブルデータを設定する手動モードとがある。
【００６６】
図６は、図４に示すライトターゲットアドレスを００００ｈから００ｆｆｈにインクリメントしている過程を示している。この間では仮想メモリアドレスであるライトターゲットアドレス［００＊＊］は上位ビットが００を示すので、セレクタ２０２は００が割り付けられたテーブル−０を選択する。図６に示す例では、テーブル−０にテーブルデータとして０２が設定されているので、０２を変換後の上位アドレスとして出力する。この結果、実メモリアドレスとなるライトターゲットアドレスは［０２＊＊］に変換される。これにより、パケットデータの最初の２５６バイトは実メモリアドレスの０２００ｈ〜０２ｆｆｈに格納される。
【００６７】
図７は、ライトターゲットアドレスとして００００ｈ〜００ｆｆｈの書き込みが完了して、引き続きライトターゲットアドレスを０１００ｈ〜０１ｆｆｈの範囲内でインクリメントしている過程を示している。この間では仮想メモリアドレスであるライトターゲットアドレス［０１＊＊］は上位ビットが０１を示すので、セレクタ２０２は０１が割り付けられたテーブル−１を選択する。図７に示す例では、テーブル−１にテーブルデータとして０３が設定されているので、０３を変換後の上位アドレスとして出力する。この結果、実メモリアドレスであるライトターゲットアドレスは［０３＊＊］に変換される。これにより、パケットデータの次の２５６バイトは実メモリアドレスの０３００ｈ〜０３ｆｆｈに格納される。
【００６８】
図８は、ライトターゲットアドレスとして０１００ｈ〜０１ｆｆｈの書き込みが完了して、引き続きライトターゲットアドレスを０２００ｈ〜０２ｆｆｈの範囲内でインクリメントしている過程を示している。この間では仮想メモリアドレスであるライトターゲットアドレス［０２＊＊］は上位ビットが０２を示すので、セレクタ２０２は０２が割り付けられたテーブル−２を選択する。図８に示す例では、テーブル−２にテーブルデータとして７ｅが設定されているので、７ｅを変換後の上位アドレスとして出力する。この結果、実メモリアドレスとなるライトターゲットアドレスは［７ｅ＊＊］に変換される。これにより、パケットデータのさらに次の２５６バイトは実メモリアドレスの７ｅ００ｈ〜７ｅｆｆｈに格納される。
【００６９】
図９は、ライトターゲットアドレスとして０２００ｈ〜０２ｆｆｈの書き込みが完了して、引き続きライトターゲットアドレスを０３００ｈ〜０３ｆｆｈの範囲内でインクリメントしている過程を示している。この間では仮想メモリアドレスであるライトターゲットアドレス［０３＊＊］は上位ビットが０３を示すので、セレクタ２０２は０３が割り付けられたテーブル−３を選択する。図９に示す例では、テーブル−３にテーブルデータとして７ｆが設定されているので、７ｆを変換後の上位アドレスとして出力する。この結果、実メモリアドレス空間でのライトターゲットアドレスは［７ｆ＊＊］に変換される。これにより、パケットデータのさらに次の２５６バイトは実メモリアドレスの７ｆ００ｈ〜７ｆ＊＊ｈに格納される。＊＊は最終の下位アドレスである。
【００７０】
このように、本実施の形態は、ネットワークインターフェース１０１がライトターゲットアドレスとして出力するアドレスは連続したアドレスでありながら、その連続したライトターゲットアドレスをアドレス変換テーブル２０１によってランダムな実メモリアドレスに変換できる。実メモリアドレスにてアクセスされる共用バッファメモリ１０４に不連続に空き領域が存在する場合であっても、アドレス変換テーブル２０１のテーブルデータを制御することでその不連続な空き領域にパケットデータを格納することができる。本実施の形態のように、複数のネットワークインターフェースのバッファメモリを共有化し、且つ受信用バッファメモリと送信用バッファメモリとを共有化する構成においては、不連続であっても空き領域を利用できることはメモリのオーバーフロー防止の観点からも非常に有効である。
【００７１】
また、アドレス変換テーブル２０１でネットワークインターフェース１０１から指定されたアドレスを実際にデータを格納する実メモリアドレス（上位アドレス）に変換し、ネットワークインターフェース１０１から指定されたアドレスに関わらず実際にデータを実メモリアドレスのどのアドレスに格納するかを任意に設定できるので、ネットワークインターフェース１０１から同一のアドレスが指定された場合でも共用バッファメモリ内でデータを移し変える処理を行う必要がなく、メモリを有効に活用できると共に処理を高速にできる。
【００７２】
次に、図１０から図１３を参照して、共用バッファメモリ１０４からパケットデータを読み出す送信動作について説明する。上記した受信動作（図６から図９）で共用バッファメモリ１０４に書き込まれたデータを、ネットワークインターフェース１０１がＬＡＮ１から送出する場合を説明する。
【００７３】
上記したように、共用バッファメモリ１０４の実メモリアドレスには、０２００ｈ〜０２ｆｆｈ、０３００ｈ〜０３ｆｆｈ、７ｅ００ｈ〜７ｅｆｆｈ、７ｆ００ｈ〜７ｆ＊＊ｈの順にデータが格納されている。これに対して、ネットワークインターフェース１０１は、図４に示す送信用アドレス空間０８００ｈ〜０ｂｆｆｈをリードターゲットアドレスとして使用する。ネットワークインターフェース１０１は、送信用アドレス空間の開始アドレスである０８００ｈから順次インクリメントしたリードターゲットアドレスを出力する。
【００７４】
一方、ＣＰＵ２００は今回読み出し対象にしているパケットデータの格納アドレスである実メモリアドレスを把握している。図９に示すように、データが格納されている実メモリアドレスの上位アドレスは０２、０３、７ｅ、７ｆである。また、ネットワークインターフェース１０１の送信用アドレス（仮想メモリアドレス）も固定である。ネットワークインターフェース１０１の送信用アドレスは、上位アドレスが０８、０９、０ａ、０ｂと変化する。そこで、ＣＰＵ２００は、アドレス変換テーブル２０１において０８、０９、０ａ、０ｂが割り付けられたテーブル−８、テーブル−９、テーブル−１０、テーブル−１１に、実メモリアドレスの上位アドレス０２、０３、７ｅ、７ｆを、それぞれテーブルデータとして設定する。
【００７５】
図１０は、図４に示すリードターゲットアドレスを０８００ｈ〜０８ｆｆｈの範囲内でインクリメントしている過程を示している。この間では仮想メモリアドレスであるリードターゲットアドレス［０８＊＊］は上位ビットが０８を示すので、セレクタ２０２は０８が割り付けられたテーブル−８を選択する。このとき、テーブル−８には０２が設定されているので、０２を変換後の上位アドレスとして出力する。この結果、実メモリアドレス空間でのリードターゲットアドレスは［０２＊＊］に変換される。これにより、パケットデータの最初の２５６バイトは実メモリアドレスの０２００ｈ〜０２ｆｆｈから読み出される。
【００７６】
図１１は、図４に示すリードターゲットアドレスを０９００ｈ〜０９ｆｆｈの範囲内でインクリメントしている過程を示している。この間では仮想メモリアドレスであるリードターゲットアドレス［０９＊＊］は上位ビットが０９を示すので、セレクタ２０２は０９が割り付けられたテーブル−９を選択する。このとき、テーブル−９には０３が設定されているので、０３を変換後の上位アドレスとして出力する。この結果、実メモリアドレス空間でのリードターゲットアドレスは［０３＊＊］に変換される。これにより、パケットデータの最初の２５６バイトは実メモリアドレスの０３００ｈ〜０３ｆｆｈから読み出される。
【００７７】
図１２は、図４に示すリードターゲットアドレスを０ａ００ｈ〜０ａｆｆｈの範囲内でインクリメントしている過程を示している。この間では仮想メモリアドレスであるリードターゲットアドレス［０ａ＊＊］は上位ビットが０ａを示すので、セレクタ２０２は７ｅが割り付けられたテーブル−１０を選択する。このとき、テーブル−１０には７ｅが設定されているので、７ｅを変換後の上位アドレスとして出力する。この結果、実メモリアドレス空間でのリードターゲットアドレスは［７ｅ＊＊］に変換される。これにより、パケットデータの最初の２５６バイトは実メモリアドレスの７ｅ００ｈ〜７ｅｆｆｈから読み出される。
【００７８】
図１３は、図４に示すリードターゲットアドレスを０ｂ００ｈ〜０ｂｆｆｈの範囲内でインクリメントしている過程を示している。この間では仮想メモリアドレスであるリードターゲットアドレス［０ｂ＊＊］は上位ビットが０ｂを示すので、セレクタ２０２は７ｆが割り付けられたテーブル−１１を選択する。このとき、テーブル−１１には７ｆが設定されているので、７ｆを変換後の上位アドレスとして出力する。この結果、実メモリアドレス空間でのリードターゲットアドレスは［７ｆ＊＊］に変換される。これにより、パケットデータの最初の２５６バイトは実メモリアドレスの７ｆ００ｈ〜７ｆ＊＊ｈから読み出される。
【００７９】
このように、ネットワークインターフェース１０１の送信用アドレス（仮想メモリアドレス）をアドレス変換テーブル２０１で実際にデータが格納されている実メモリアドレスに変換するようにしたので、メモリ内でデータを移し変える処理を行う必要がなく、ＣＰＵ２００は受信データを送信用に読込む必要もないことから、処理の高速化を図ることができる。
【００８０】
なお、以上の説明ではネットワークインターフェース１０１でパケットデータ受信して、同一のネットワークインターフェース１０１で当該パケットデータを送信する場合を説明した。しかし、他のネットワークインターフェース１０２、１０３間でも図３に示すように各自に割り付けられた送信用アドレス，受信用アドレスを使用して共用バッファメモリ１０４に対する書き込み／読み出しを実行することができる。また、暗号回路１０７でデータを暗号化または復号化する場合も、暗号回路１０７が暗号モジュールの送信当アドレス、受信用アドレスを使用してメモリアクセスし、ＣＰＵ２００によるデータの移し変えを行うことなく、共用バッファメモリ１０４に対する書き込み／読み出しを実行することができる。
【００８１】
次に、アドレス変換テーブル２０１のテーブルデータを自動的に設定する自動モードについて説明する。どのようなタイミングでＬＡＮ１、２、３からデータが受信されるのか分からない。そのため、常に自動モードで受信可能にしておくことで、いつ受信されるかまたどの程度のサイズか分からない受信に備えることができる。
【００８２】
図１４はメモリ制御回路１０５及び共用バッファメモリ１０４において自動モードに係わる部分を抜き出して示す図である。２５６個のテーブルから構成されるアドレス変換テーブル２０１の各テーブルにテーブルデータが設定されているか否か示すテーブルフラグ２１０がハード的に用意されている。テーブルフラグ２１０は、対応するテーブルに有意なテーブルデータが設定されている場合は１が立つ。また、テーブルにテーブルデータが設定されておらずいずれのアドレスをも指定しないことを示す値ＦＦが入っている場合は０が立つように更新される。
【００８３】
セレクタ２０２の出力信号は第３選択手段となるセレクタ２１１の一方の入力端に入力している。セレクタ２１１のもう一方の入力端には後述する第２選択手段となる最小フラグ検出回路２１３からの出力信号が入力する。このセレクタ２１１は前段のセレクタ２０２からＦＦが入力したときは最小フラグ検出回路２１３からの出力信号を選択して出力する。セレクタ２１１の出力信号が実メモリアドレスの上位ビットを指示するように構成している。
【００８４】
共用バッファメモリ１０４の実メモリアドレスの使用状況が常に反映される使用状況フラグ２１２がハード的に用意されている。使用状況フラグ２１２は、初期値では０が設定されているが、対応する実メモリアドレスにデータが書き込まれると１が立つように更新される。なお、本例では上位アドレスにて指定される分割領域単位（２５６バイト）で記憶領域を使用するので実メモリアドレスの上位アドレスだけを監視しているが、さらに詳細な使用状況を監視するのであれば下位アドレスまで監視する。
【００８５】
最小フラグ検出回路２１３は、使用状況フラグ２１２を先頭アドレス側からスキャンして最初に０が立てられている上位アドレスを出力値として出力する。すなわち、常に実メモリアドレス空間において未使用の最小アドレスを出力値とする。
【００８６】
図１４を参照して、自動モードでの具体的な動作について説明する。図１４に示す状態は、アドレス変換テーブル２０１のテーブル−０、１、４に既にテーブルデータが設定され、その結果、実メモリアドレス（上位アドレス）の００ｈ、０２ｈ、０３ｈにデータが格納されている状態である。
【００８７】
最小フラグ検出回路２１３は、かかる状況において、実メモリアドレスの０１ｈを空き領域の最小アドレスとして出力している。そして、書き込みアドレスの上位アドレスとして０５ｈがセレクタ２０２に与えられている。セレクタ２０２は、上位アドレス０５ｈに基づいてテーブル−５を選択するが、当該テーブル−５に値としてＦＦを後段のセレクタ２１１へ出力する。
【００８８】
セレクタ２１１は、アドレス変換テーブル２０１からＦＦが入力された場合は、最小フラグ検出回路２１３から入力する最小アドレスを選択するので、実メモリアドレスとしては最小アドレスが選択されることになる。すなわち、アドレス変換テーブル２０１によって実メモリアドレスを指定しない場合は、実メモリで空き領域となっている最小アドレスにデータが格納される。
【００８９】
これにより、実メモリアドレスにおいて使用中の格納領域と未使用の格納領域がまとまっておらず未使用の格納領域が点在する場合でも、実メモリアドレスの未使用の格納領域をアドレスの小さい順番に選択するので、点在する未使用の格納領域を有効利用できるので、共用バッファメモリ１０４を無駄なく効率的に利用できる。また、実際のメモリは未使用の格納領域が点在していても、ネットワークインターフェース１０１、１０２、１０３側から見ると連続したアドレスにデータを格納しているように制御でき、共用バッファメモリ１０４を利用しやすくできる。
【００９０】
また、本実施の形態は、アドレス変換テーブル２０１の各テーブルにイニシャル値としてメモリの格納領域のいずれも指定しない値ＦＦを設定している。そして、セレクタ２０２からアドレス変換テーブル２０１のいずれかのテーブルが指定されると、実メモリアドレスの小さい順に使用されるように最小フラグ検出回路２１３及びセレクタ２１１を動作させることとした。
【００９１】
これにより、複数のネットワークインターフェース１０１、１０２、１０３等から共用バッファメモリ１０４に対して同時に送受信動作を実行しない限り、常に１パケット分のデータをまとめて格納でき、１パケットデータが格納された領域の先頭アドレスから順番に当該パケットデータが順番に格納されるので、ＣＰＵ２００は常に格納領域の先頭アドレスから受信データをチェックすればデータ確認を行うことができ、処理の簡素化、高速化を図ることができる。
【００９２】
一方、警告発生回路２１４は、最小フラグ検出回路２１３の出力値を監視して共用バッファメモリ１０４の空き領域が所定量以下になるとＣＰＵ２００に対して割込信号１を出力する。ＣＰＵ２００は、警告発生回路２１４から割込信号１を受けるとそれ以降アドレス変換テーブル２０１にアドレス（テーブルデータ）の書き換えを行わないように動作する。
【００９３】
これにより、共用バッファメモリ１０４に空き領域が無くなった場合、ＣＰＵ２００に割込信号１を発することにより、それ以降ＣＰＵ２００がアドレス変換テーブル２０１にアドレスの書き換えを行わないので、既に共用バッファメモリ１０４に格納されているデータが上書きされるのを防止できる。
【００９４】
また、警告発生回路２１４は、アドレス変換テーブル２０１のテーブルフラグ２１０を監視してアドレス変換テーブル２０１のＦＦをカウントしてカウント値（空き領域）が所定以下になるとＣＰＵ２００に対して割込信号２を出力する。ＣＰＵ２００は、警告発生回路２１４から割込信号２を受けるとそれ以降アドレス変換テーブル２０１にアドレスの書き換えを行わないように動作する。
【００９５】
例えば、ＬＡＮ１からの受信データを書き込んでいるときに、他のＬＡＮ２からの受信データの書き込みが発生したら、実メモリアドレスは空き領域があるがアドレス変換テーブル２０１が一杯になる状態が発生する可能性が有る。本実施の形態によれば、アドレス変換テーブル２０１に空き領域がなくなった時点で、ＣＰＵ２００に対して割込信号２を発することで、それ以降アドレス変換テーブル２０１にアドレス書換えを行なわないので、既にアドレス変換テーブル２０１内に格納されているデータが上書きされるのを防止できる。
【００９６】
また、本実施の形態は、セレクタ２１１の出力が実メモリアドレスのいずれのアドレスも選択していない場合、警報発生回路２１４がＣＰＵ２００に対して割込信号３を発するように構成した。ＣＰＵ２００は、割込信号３を受信した時はデータの書込処理又は読出処理を停止させる。
【００９７】
これによると、セレクタ２１１の出力が実メモリアドレスのいずれのアドレスも選択していない場合、ＣＰＵ２００に対して割込信号３を発することにより、データの書込処理又は読出処理を停止するので、実際には実メモリアドレスのどこにもデータが書込まれていないにも関わらず書込処理が正常終了したものと誤判断して処理が進んだり、また、実際には実メモリアドレスのどこからもデータが読出されていないにも関わらず読出処理が正常終了したものと誤判断して処理が進むのを防止できる。
【００９８】
特に、ＣＰＵ２００がライトアドレス／リードアドレスをソフト的に設定する場合、ソフトのバグにより本来指定すべきアドレスとは異なるアドレスを指定するということが起こり得る。この場合、本実施の形態によれば、ＣＰＵ２００に対して割込信号３を発することでデータの書込処理又は読出処理を停止するので、誤動作の処理が進行するのを防止できる。
【００９９】
次に、コマンド解析回路２０３がＣＰＵ２００の生成したコマンドを解析してアドレス変換テーブル２０１のテーブルデータを操作する動作について説明する。コマンド解析回路２０３は、図１５に示すような３２ビット空間のコマンドレジスタを構成する。本実施の形態ではコマンドの各フィールドの意味は次の様になっている。［３１：２４］の８ビットはコマンド種類を示すフィールドとなっている。コマンドには、テーブルデータの削除を指示するＣＬＥＡＲ、テーブルデータのコピーを意味するＣＯＰＹ、テーブルデータの移動を意味するＭＯＶＥ、テーブルデータ（例えば００）の書き込みを意味するＡＬＬＯＣＡＴＩＯＮが有る。［２３：１６］の８ビットは、ページ数を入力するフィールドである。［１５：８］の８ビットは、削除、移動、コピーの対象の削除又は移動・コピー元の先頭ページを示すフィールドである。［７：０］の８ビットは、移動・コピー先の先頭ページを示すフィールドである。
【０１００】
以上のようなコマンドはＣＰＵ２００が状況に応じて生成する。たとえば、アドレス変換テーブル２０１のテーブルデータを初期化してＦＦに変更する場合は、コマンド種別（ＣＬＥＡＲ）、先頭ページ（テーブル番号）、ページ数を各フィールドに指定したコマンドを生成し、コマンド解析回路２０３へ与える。コマンド解析回路２０３は、ＣＰＵ２００から与えられたコマンドを解析し、解析結果に基づいて指示されている先頭ページから指示されたページ数だけテーブルデータを消去することによりＦＦにする。
【０１０１】
従来は、データを格納するのにメモリの格納領域を例えば４個使用する場合、ＣＰＵ２００はアドレス変換テーブル２０１に４回のアドレスを書込む必要がある。これによると、ＣＰＵ２００はアドレス変換テーブル２０１の書込み処理のためにその間占有されることになる。
【０１０２】
そこで、本実施の形態によると、ＣＰＵ２００において必要な実メモリアドレスの格納領域の大きさが分かると実メモリアドレスの格納領域を示すアドレスに基づいてコマンドを生成し、また、前記アドレス変換テーブル２０１にアドレスをコマンド解析回路２０３がコマンドを解析してアドレス変換テーブル２０１にアドレスを書込むことにより、ＣＰＵ２００は必要なメモリの格納領域の大きさに関わらず、コマンドを１回送出するだけで、アドレス変換テーブル２０１の複数の記憶領域内の書換えを行うことができるので、ＣＰＵ２００の負荷を軽減し、処理の高速化を図ることができる。
【０１０３】
次に、最小フラグ検出回路２１３、セレクタ２１１の自動モード動作を規制して、ＣＰＵ２００がアドレス変換テーブルのテーブルデータを書き換える手動モード（受信動作時）について説明する。
【０１０４】
共用バッファメモリ１０４にデータが格納されていない初期状態では、いずれかのネットワークインターフェース１０１、１０２、１０３から指定されるライトターゲットアドレス（００ｈ〜ｆｆｈのいずれか）を実メモリアドレス（００ｈ〜７ｆｈのいずれか）に変換するテーブルデータをアドレス変換テーブル２０１に設定する。なお、アドレス変換テーブル２０１には初期値として実メモリアドレスのいずれも指定しない値ＦＦを設定している。
【０１０５】
１パケット分の受信動作（格納）が終了すると、アドレス変換テーブル２０１にデータが格納された実メモリアドレス（上位アドレス）がテーブルデータとして残っている。ＣＰＵ２００は、アドレス変換テーブル２０１のテーブルデータから実メモリアドレスの空き領域を認識することができる。例えば、１回の受信動作が完了したらアドレス変換テーブル２０１のテーブルデータを読込んで実メモリアドレスの空き領域を把握する。
【０１０６】
次の受信動作を開始する場合、今回のライトターゲットアドレス（上位アドレス）がＣＰＵ２００の把握している実メモリアドレスの空き領域に変換されるように、ライトターゲットアドレス（上位アドレス）に対応したテーブルのテーブルデータを書き換える。
【０１０７】
これにより、ネットワークインターフェースなどの書き込み側は常に同じ受信用アドレスを使用してアクセスしても、当該受信用アドレスがアドレス変換テーブル２０１により実メモリアドレスの空き領域を指示するアドレスに変換されて書き込まれるものとなる。
【０１０８】
また、本実施の形態は、手動モードにおいても、アドレス変換テーブル２０１には初期値としてＦＦを設定し、実メモリアドレスの格納領域がアドレスの小さい順に使用されるように前記アドレス変換テーブル２０１のテーブルデータを設定することも可能である。
【０１０９】
これにより、実メモリアドレスにおいて使用中の格納領域と未使用の格納領域がまとまっておらず未使用の格納領域が点在する場合でも、実メモリアドレスの未使用の格納領域をアドレスの小さい順番に選択するので、点在する未使用の格納領域を有効利用できるので、共用バッファメモリ１０４を無駄なく効率的に利用できる。また、実際のメモリは未使用の格納領域が点在していても、ネットワークインターフェース１０１、１０２、１０３側から見ると連続したアドレスにデータを格納しているように制御でき、共用バッファメモリ１０４を利用しやすくできる。
【０１１０】
なお、送信動作では手動モードしか使用されない。送信動作の場合は、受信動作の場合と異なり、共用バッファメモリ１０４の特定メモリアドレスの格納領域からデータを読み出す必要があるからである。手動モードでの送信動作は上記した通りである。すなわち、送信動作を開始する場合は、ＣＰＵ２００はパケットデータが格納された実メモリアドレスを把握していて、使用する送信用アドレスも把握しているので、送信用アドレス（上位アドレス）がパケットデータの格納された実メモリアドレスに変換するテーブルデータをアドレス変換テーブル２０１に設定する。この結果、例えばネットワークインターフェース１０２が割り付けられている送信用アドレスでアクセスしてきても、アドレス変換テーブル２０１によりパケットデータの格納された実メモリアドレスに変換されてデータが読み出されることとなる。
【０１１１】
【発明の効果】
以上詳記したように本発明によれば、バッファメモリの増大を抑制してコストダウン、装置の小型化を図ることができると共に、ＣＰＵによる受信用バッファメモリから送信用バッファメモリへのデータの移し変え作業を無くして処理の高速化を実現するデータ処理装置を提供できる。
【図面の簡単な説明】
【図１】本発明の一実施の形態に係るネットワーク機器の機能ブロック図
【図２】図１に示すネットワーク機器におけるメモリ制御回路の機能ブロック図
【図３】受信用アドレスと送信用アドレスの割付を示す図
【図４】ネットワークインターフェースからメモリアクセスする際のページ毎のアドレス対応例を示す図
【図５】アドレス変換テーブルのページ分割領域から実メモリアドレスのページ分割領域への変換例を示す図
【図６】受信用アドレスとして００ｈが指定されたときのアドレス変換例を示す図
【図７】受信用アドレスとして０１ｈが指定されたときのアドレス変換例を示す図
【図８】受信用アドレスとして０２ｈが指定されたときのアドレス変換例を示す図
【図９】受信用アドレスとして０３ｈが指定されたときのアドレス変換例を示す図
【図１０】送信用アドレスとして０８ｈが指定されたときのアドレス変換例を示す図
【図１１】送信用アドレスとして０９ｈが指定されたときのアドレス変換例を示す図
【図１２】送信用アドレスとして０ａｈが指定されたときのアドレス変換例を示す図
【図１３】送信用アドレスとして０ｂｈが指定されたときのアドレス変換例を示す図
【図１４】アドレス変換テーブル、共用バッファメモリ及び周辺回路による自動モードの動作説明図
【図１５】コマンドレジスタの構成図
【図１６】従来のネットワーク機器の機能ブロック図
【符号の説明】
１　物理層インターフェース
１００　ＬＳＩ内部ブロック
１０１、１０２、１０３　ネットワークインターフェース
１０４　共用バッファメモリ
１０５　メモリ制御回路
１０６　内部バス
１０７　暗号回路
２００　ＣＰＵ
２０１　アドレス変換テーブル
２０２、２１１　セレクタ
２０３　コマンド解析回路
２１０　テーブルフラグ
２１２　使用状況フラグ
２１３　最小フラグ検出回路
２１４　警告発生回路
【図１】
2004129083.tif 000003
【図２】
2004129083.tif 000004
【図３】
2004129083.tif 000005
【図４】
2004129083.tif 000006
【図５】
2004129083.tif 000007
【図６】
2004129083.tif 000008
【図７】
2004129083.tif 000009
【図８】
2004129083.tif 000010
【図９】
2004129083.tif 000011
【図１０】
2004129083.tif 000012
【図１１】
2004129083.tif 000013
【図１２】
2004129083.tif 000014
【図１３】
2004129083.tif 000015
【図１４】
2004129083.tif 000016
【図１５】
2004129083.tif 000017
【図１６】
2004129083.tif 000018