(57)【要約】【課題】ＣＰＵにおける処理効率の低下を低減すると共に、データ転送の効率を向上させることができる通信装置を提供する。【解決手段】受信時に、通信コントローラ２が受信データをメモリ７に記憶保持させているときに、ＣＰＵ３は通信コントローラ２により既に受信されてメモリ７に記憶保持されたデータに所定処理を施し、ＤＭＡコントローラ１０はバス５がメモリ７のポートＢ及びメモリ８に接続された状態として、該所定処理が施されたデータをメモリ７からメモリ８にバス５を介して転送する。送信時に、ＤＭＡコントローラ１０がメモリ８に記憶保持されたデータをメモリ７にバス６を介して転送し、ＣＰＵ３がメモリ７に記憶保持された転送されたデータに所定処理を施しているときに、通信コントローラ２はメモリ７に記憶保持された該所定処理が既に施されたデータを送信する。【選択図】図１
2007219712.tif 000002
【特許請求の範囲】
【請求項１】
データの受信を行う通信装置であって、
第１のポート及び第２のポートを有する第１のメモリと、
前記第１のメモリの前記第１のポートに接続され、他の通信装置から受信したデータを該第１のメモリに記憶保持させる通信コントローラと、
第１のバスに接続されたＤＭＡコントローラからの該第１のバスへのアクセス要求と、第２のバスに接続されたＣＰＵからの該第２のバスへのアクセス要求とを調停して、該第１のバス又は該第２のバスを前記第１のメモリの第２のポートに接続する第１のバス調停回路と、
前記ＤＭＡコントローラからの前記第１のバスへのアクセス要求と、前記ＣＰＵからの前記第２のバスへのアクセス要求とを調停して、該第１のバス又は該第２のバスを第２のメモリに接続する第２のバス調停回路とを備え、
前記通信コントローラがデータを受信して前記第１のメモリに記憶保持させているときに、前記ＣＰＵは、前記第１のバス調停回路に対する第２のバスのアクセス要求により、該第２のバスが該第１のメモリの第２のポートに接続された状態として、該通信コントローラにより既に受信されて該第１のメモリに記憶保持されたデータに所定処理を施し、前記ＤＭＡコントローラは、前記第１のバス調停回路及び第２のバス調停回路に対する前記第１のバスのアクセス要求により、該第１のバスが該第１のメモリの第２のポート及び前記第２のメモリに接続された状態として、前記所定処理が施されたデータを、該第１のメモリから該第２のメモリに該第１のバスを介して転送することを特徴とする通信装置。
【請求項２】
データの送信を行う通信装置であって、
第１のポート及び第２のポートを有する第１のメモリと、
前記第１のメモリの前記第１のポートに接続され、該第１のメモリに記憶保持されたデータを他の通信装置に送信する通信コントローラと、
第１のバスに接続されたＤＭＡコントローラからの該第１のバスへのアクセス要求と、第２のバスに接続されたＣＰＵからの該第２のバスへのアクセス要求とを調停して、該第１のバス又は該第２のバスを前記第１のメモリの第２のポートに接続する第１のバス調停回路と、
前記ＤＭＡコントローラからの前記第１のバスへのアクセス要求と、前記ＣＰＵからの前記第２のバスへのアクセス要求とを調停して、該第１のバス又は該第２のバスを第２のメモリに接続する第２のバス調停回路とを備え、
前記ＤＭＡコントローラが、前記第１のバス調停回路及び第２のバス調停回路に対する前記第１のバスのアクセス要求により、該第１のバスが前記第１のメモリの第２のポート及び前記第２のメモリに接続された状態として、該第２のメモリに記憶保持されたデータを該第１のメモリに該第１のバスを介して転送し、前記ＣＰＵが、該第１のバス調停回路に対する第２のバスのアクセス要求により、該第２のバスが該第１のメモリの第２のポートに接続された状態として、該第１のメモリに記憶保持された該転送されたデータに所定処理を施しているときに、前記通信コントローラは、該第１のメモリに記憶保持された前記所定処理が既に施されたデータを送信することを特徴とする通信装置。
【請求項３】
データの送信と受信とを切り換えて行う通信装置であって、
第１のポート及び第２のポートを有する第１のメモリと、
前記第１のメモリの前記第１のポートに接続され、受信時には他の通信装置から受信したデータを該第１のメモリに記憶保持させ、送信時には該第１のメモリに記憶保持されたデータを他の通信装置に送信する通信コントローラと、
第１のバスに接続されたＤＭＡコントローラからの該第１のバスへのアクセス要求と、第２のバスに接続されたＣＰＵからの該第２のバスへのアクセス要求とを調停して、該第１のバス又は該第２のバスを前記第１のメモリの第２のポートに接続する第１のバス調停回路と、
前記ＤＭＡコントローラからの前記第１のバスへのアクセス要求と、前記ＣＰＵからの前記第２のバスへのアクセス要求とを調停して、該第１のバス又は該第２のバスを第２のメモリに接続する第２のバス調停回路とを備え、
データの受信時には、前記通信コントローラがデータを受信して前記第１のメモリに記憶保持させているときに、前記ＣＰＵは、前記第１のバス調停回路に対する第２のバスのアクセス要求により、該第２のバスが該第１のメモリの第２のポートに接続された状態として、該通信コントローラにより既に受信されて該第１のメモリに記憶保持されたデータに所定処理を施し、前記ＤＭＡコントローラは、前記第１のバス調停回路及び第２のバス調停回路に対する前記第１のバスのアクセス要求により、該第１のバスが該第１のメモリの第２のポート及び前記第２のメモリに接続された状態として、前記所定処理が施されたデータを、該第１のメモリから該第２のメモリに該第１のバスを介して転送し、
データの送信時には、前記ＤＭＡコントローラが、前記第１のバス調停回路及び第２のバス調停回路に対する前記第１のバスのアクセス要求により、該第１のバスが前記第１のメモリの第２のポート及び前記第２のメモリに接続された状態として、該第２のメモリに記憶保持されたデータを該第１のメモリに該第１のバスを介して転送し、前記ＣＰＵが、該第１のバス調停回路に対する第２のバスのアクセス要求により、該第２のバスが該第１のメモリの第２のポートに接続された状態として、該第１のメモリに記憶保持された該転送されたデータに所定処理を施しているときに、前記通信コントローラは、該第１のメモリに記憶保持された前記所定処理が既に施されたデータを送信することを特徴とする通信装置。
【請求項４】
他の通信装置との間でパケット通信を行い、該パケット通信は、送信側の通信装置に対して、受信側の通信装置からの受信確認応答を待たずに、所定数を上限とする複数のパケットを連続して送信することを許容する仕様であって、
前記第１のメモリは、前記通信コントローラにより受信されたデータを記憶保持する領域として、少なくとも、前記パケットの容量と前記所定数との積の容量を有することを特徴とする請求項３記載の通信装置。
【請求項５】
他の通信装置との間でパケット通信を行い、該パケット通信は、送信側の通信装置に対して、受信側の通信装置からの受信確認応答を待たずに、所定数を上限とする複数のパケットを連続して送信することを許容すると共に、該受信確認応答が送信不良を示すものであったときに再送信処理を要求する仕様であって、
前記第１のメモリは、前記通信コントローラにより連続して送信される複数のパケットのデータを記憶保持する第１の領域として、少なくとも、該パケットの容量と前記所定数との積の容量を有すると共に、少なくとも、該通信コントローラにより該データの次に連続して送信される複数のパケットのデータを記憶保持する第２の領域として、該パケットの容量と該所定数との積の容量を有し、
複数のパケットを連続して送信する際に、前記通信コントローラが、前記第１のメモリの前記第１の領域に記憶保持されたデータを送信しているときに、前記ＤＭＡコントローラは、次に送信されるデータを、前記第２のメモリから前記第１のメモリに転送して前記第２の領域に記憶保持することを特徴とする請求項３記載の通信装置。
【請求項６】
前記通信コントローラにより受信されるデータは、該データを送信及び受信するために必要な情報を含むヘッダ部と、それ以外の部分とからなり、
他の通信装置からのデータの受信時に、前記ＣＰＵは、前記所定処理において、前記通信コントローラにより受信されて前記第１のメモリに記憶保持されたデータから前記ヘッダ部を分離し、前記ＤＭＡコントローラは、前記第１のメモリから前記第２のメモリへ、該ヘッダ部が分離されたデータを転送することを特徴とする請求項１又は請求項３記載の通信装置。
【請求項７】
前記通信コントローラから送信されるデータは、該データを送信及び受信するために必要な情報を含むヘッダ部と、それ以外の部分とからなり、
他の通信装置へのデータの送信時に、前記ＤＭＡコントローラは、前記第２のメモリに記憶保持された前記ヘッダ部を含まないデータを、前記第１のメモリへ転送し、前記ＣＰＵは、前記所定処理において、該転送されたデータに該ヘッダ部を付加することを特徴とする請求項２又は請求項３記載の通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの送信及び受信を制御し、送信及び受信されるデータの処理を実行する通信装置に関する。
【背景技術】
【０００２】
例えば図８に示したように、従来の通信装置１０１には、他の通信装置との送信データ及び受信データの通信を制御する通信コントローラ１０２と、送信データ及び受信データのプロトコル処理等を実行するＣＰＵ１０３とが備えられている。通信コントローラ１０２とＣＰＵ１０３とは、ＣＰＵバス１０４に接続されている。ＣＰＵバス１０４には、主記憶メモリ（ＲＯＭ１０５，ＲＡＭ１０６）が接続されている。ＣＰＵ１０３は、ＣＰＵバス１０４を介して、主記憶メモリ１０５，１０６にアクセスし、送信データ及び受信データやプロトコル処理の命令等の読み込みや書き込みを行う。また、ＣＰＵバス１０４には、ＲＡＭ１０６からＣＰＵ１０３を介さずにデータを転送するＤＭＡコントローラ１０７が接続されている。
【０００３】
通信コントローラ１０２は、ＤＭＡコントローラ１０７を使用して、ＲＡＭ１０６との間で、送信データ及び受信データを転送する。このとき、通信コントローラ１０２は、ＣＰＵバス１０４のデータ転送速度と通信速度との差を吸収するために、ＦＩＦＯタイプの小容量のバッファメモリ１０８を搭載して、送信データ及び受信データをバッファし、これによりデータのアンダーラン、オーバーランを防止して通信及びデータ転送を行う。詳細には、通信コントローラ１０２は、データ受信時には、バッファメモリ１０８が満状態になる前にＣＰＵ１０３に割込処理等で知らせ、ＤＭＡコントローラ１０７を起動させる。また、通信コントローラ１０２は、データ送信時には、バッファメモリ１０８が空状態になる前にＣＰＵ１０３に割込処理等で知らせ、ＤＭＡコントローラ１０７を起動させる。
【０００４】
そして、ＤＭＡコントローラ１０７は、ＣＰＵ１０３により起動されると、ＣＰＵバス１０４を介して、ＲＡＭ１０６に直接アクセスする。そして、ＤＭＡコントローラ１０７により、送信データは、ＲＡＭ１０６から通信コントローラ１０２のバッファメモリ１０８に転送され、受信データは、通信コントローラ１０２のバッファメモリ１０８からＲＡＭ１０６に転送される。このようにすれば、通信装置１０１は、送信データ及び受信データを、ＣＰＵ１０３を介さず、ＤＭＡコントローラ１０７を使用して、ＲＡＭ１０６に直接アクセスして転送することにより、データ転送の効率が向上する。
【０００５】
ここで、通信装置１０１では、ＣＰＵ１０３とＤＭＡコントローラ１０７が、共にＣＰＵバス１０４を介して主記憶メモリ１０５，１０６にアクセスするように構成されているので、ＣＰＵ１０３とＤＭＡコントローラ１０７とのメモリへのアクセスが競合する場合がある。よって、このようなアクセスの競合を回避する必要がある。例えば、通信装置１０１では、ＤＭＡコントローラ１０７は、起動されるとＣＰＵ１０３にバス制御信号を送出し、バス制御権を取得してから主記憶メモリ１０５，１０６へのアクセスを行う。このようなメモリアクセス制御として、さらに、一般には、メモリに対する複数のバスマスタ（通信装置１０１ではＣＰＵ１０３とＤＭＡコントローラ１０７）からのアクセス要求に応じて調停を行い、バス制御権を取得したバスマスタがメモリにアクセスを行うように制御する技術が知られている（例えば特許文献１参照）。特許文献１のメモリアクセス制御方法では、予め定められた優先順位に従って、メモリに対するアクセス要求の競合を調停して、いずれかのバスマスタにバス制御権が付与される。
【０００６】
しかしながら、通信装置１０１及び特許文献１のようなメモリアクセス制御では、ＤＭＡコントローラ１０７がバス制御権を取得すると、ＣＰＵ１０３のバス制御権が全て奪われる。よって、ＤＭＡコントローラ１０７により、通信コントローラ１０２のバッファメモリ１０８とＲＡＭ１０６との間でデータが転送されているときには、ＣＰＵ１０３は主記憶メモリ１０５，１０６にアクセスできず、命令やデータの読み出し等ができない。このため、特に転送するデータの容量が大きい場合には、ＣＰＵ１０３が停止したままになり、ＣＰＵ１０３の処理効率が低下する。特に、通信装置１０１では、送信データ及び受信データのプロトコル処理をＣＰＵ１０３で行う必要があるが、ＤＭＡコントロール１０７のデータの転送中には主記憶メモリ１０５，１０６にアクセスしてプロトコル処理することができないため、プロトコル処理から送信完了までの時間及び受信からプロトコル処理完了までの時間が長くなるという不都合があった。
【特許文献１】特開平１０−２２８４１３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、かかる不都合を解消し、ＣＰＵにおける処理効率の低下を低減すると共に、データ転送の効率を向上させることができる通信装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は上記目的を達成するためになされたものであり、本発明の第１態様の通信装置は、データの受信を行う通信装置であって、第１のポート及び第２のポートを有する第１のメモリと、前記第１のメモリの前記第１のポートに接続され、他の通信装置から受信したデータを該第１のメモリに記憶保持させる通信コントローラと、第１のバスに接続されたＤＭＡコントローラからの該第１のバスへのアクセス要求と、第２のバスに接続されたＣＰＵからの該第２のバスへのアクセス要求とを調停して、該第１のバス又は該第２のバスを前記第１のメモリの第２のポートに接続する第１のバス調停回路と、前記ＤＭＡコントローラからの前記第１のバスへのアクセス要求と、前記ＣＰＵからの前記第２のバスへのアクセス要求とを調停して、該第１のバス又は該第２のバスを第２のメモリに接続する第２のバス調停回路とを備え、前記通信コントローラがデータを受信して前記第１のメモリに記憶保持させているときに、前記ＣＰＵは、前記第１のバス調停回路に対する第２のバスのアクセス要求により、該第２のバスが該第１のメモリの第２のポートに接続された状態として、該通信コントローラにより既に受信されて該第１のメモリに記憶保持されたデータに所定処理を施し、前記ＤＭＡコントローラは、前記第１のバス調停回路及び第２のバス調停回路に対する前記第１のバスのアクセス要求により、該第１のバスが該第１のメモリの第２のポート及び前記第２のメモリに接続された状態として、前記所定処理が施されたデータを、該第１のメモリから該第２のメモリに該第１のバスを介して転送することを特徴とする。
【０００９】
前記本発明の第１態様の通信装置によれば、前記通信コントローラは他の通信装置から受信したデータを前記第１のメモリに記憶保持させる。そして、第１のメモリに記憶保持されたデータは、ＣＰＵにより所定処理を施され、ＤＭＡコントローラにより第２のメモリに転送される。
【００１０】
このとき、前記通信コントローラは、前記第１のメモリの第１のポートに接続され、前記第１又は第２のバスは、該第1のメモリの第２のポートに接続されるので、該通信コントローラの該第１のメモリへのアクセスと、該第１又は第２のバスから該第１のメモリへのアクセスとを、並行して行うことが可能である。そして、前記第１及び第２のバス調停回路により、前記第１又は第２のバスが選択的に切り換えられて前記第１及び第２のメモリに接続されるので、該第１のバスに接続された前記ＣＰＵと、該第２のバスに接続された前記ＤＭＡコントローラとからの、該第１及び第２のメモリへのアクセスがそれぞれ可能である。
【００１１】
そこで、通信コントローラにより受信したデータを第１のメモリに記憶保持する処理と並行して、ＣＰＵにより第１のメモリに既に受信されたデータに所定処理を施し、ＤＭＡコントローラにより該所定処理が施されたデータを第１のメモリから第２のメモリへ転送する。そして、これにより、第１のメモリから第２のメモリへの受信データの転送効率を向上させている。
【００１２】
詳細には、まず、前記ＣＰＵは、前記第１のバス調停回路に対する第２のバスのアクセス要求により、該第２のバスが該第１のメモリの第２のポートに接続された状態とする。そして、前記ＣＰＵは、前記通信コントローラにより既に受信されて前記第１のメモリに記憶保持されたデータに所定処理を施す。前記所定処理は、例えば、前記データに含まれる該データを送信及び受信するために必要な情報を解析する処理等である。
【００１３】
次に、前記所定処理が完了すると、前記ＤＭＡコントローラは、前記第１のバス調停回路及び第２のバス調停回路に対する前記第１のバスのアクセス要求により、該第１のバスが該第１のメモリの第２のポート及び前記第２のメモリに接続された状態とする。そして、前記ＤＭＡコントローラは、前記所定処理が施されたデータを、前記第１のメモリから前記第２のメモリに前記第１のバスを介して転送する。このように、第１のメモリと第２のメモリとの間で、ＤＭＡコントローラを利用して、ＣＰＵを介さずにデータを転送することで、データ転送の効率が向上する。
【００１４】
このとき、ＤＭＡコントローラに接続された第１のバスと、ＣＰＵに接続された第２のバスとが分離されているので、ＤＭＡコントローラが第１のバスを介してデータを転送している間に、ＣＰＵは、第２のバスを介して、第１のメモリ及び第２のメモリの受信されたデータにアクセスする以外の他の処理を行うことができ、ＣＰＵの処理効率の低下を低減することができる。以上により、ＣＰＵにおける処理効率の低下を低減すると共に、データ転送の効率を向上させることができる。
【００１５】
次に、本発明の第２態様の通信装置は、データの送信を行う通信装置であって、第１のポート及び第２のポートを有する第１のメモリと、前記第１のメモリの前記第１のポートに接続され、該第１のメモリに記憶保持されたデータを他の通信装置に送信する通信コントローラと、第１のバスに接続されたＤＭＡコントローラからの該第１のバスへのアクセス要求と、第２のバスに接続されたＣＰＵからの該第２のバスへのアクセス要求とを調停して、該第１のバス又は該第２のバスを前記第１のメモリの第２のポートに接続する第１のバス調停回路と、前記ＤＭＡコントローラからの前記第１のバスへのアクセス要求と、前記ＣＰＵからの前記第２のバスへのアクセス要求とを調停して、該第１のバス又は該第２のバスを前記第２のメモリに接続する第２のバス調停回路とを備え、前記ＤＭＡコントローラが、前記第１のバス調停回路及び第２のバス調停回路に対する前記第１のバスのアクセス要求により、該第１のバスが前記第１のメモリの第２のポート及び前記第２のメモリに接続された状態として、該第２のメモリに記憶保持されたデータを該第１のメモリに該第１のバスを介して転送し、前記ＣＰＵが、該第１のバス調停回路に対する第２のバスのアクセス要求により、該第２のバスが該第１のメモリの第２のポートに接続された状態として、該第１のメモリに記憶保持された該転送されたデータに所定処理を施しているときに、前記通信コントローラは、該第１のメモリに記憶保持された前記所定処理が既に施されたデータを送信することを特徴とする。
【００１６】
前記本発明の第２態様の通信装置によれば、前記第１態様の通信装置と同様に、前記通信コントローラは、前記第１のメモリの第１のポートに接続され、前記第１又は第２のバスは、該第1のメモリの第２のポートに接続されるので、該通信コントローラの該第１のメモリへのアクセスと、該第１又は第２のバスから該第１のメモリへのアクセスとを、並行して行うことが可能である。そして、前記第１及び第２のバス調停回路により、前記第１又は第２のバスが選択的に切り換えられて前記第１及び第２のメモリに接続されるので、該第１のバスに接続された前記ＣＰＵと、該第２のバスに接続された前記ＤＭＡコントローラとからの、該第１及び第２のメモリへのアクセスがそれぞれ可能である。
【００１７】
そこで、前記本発明の第２態様の通信装置では、前記通信コントローラが、第１のメモリに記憶保持され既に所定処理を施されたデータを送信する処理と並行して、第２のメモリに記憶保持されたデータをＤＭＡコントローラにより第１のメモリへ転送し、該転送されて該第１のメモリに記憶保持されたデータにＣＰＵにより所定処理を施す。そして、これにより、第２のメモリから第１のメモリへの送信データの転送効率を向上させている。
【００１８】
詳細には、まず、前記ＤＭＡコントローラは、前記第１のバス調停回路及び第２のバス調停回路に対する前記第１のバスのアクセス要求により、該第１のバスが前記第１のメモリの第２のポート及び前記第２のメモリに接続された状態とする。そして、前記ＤＭＡコントローラは、前記第２のメモリに記憶保持されたデータを前記第１のメモリに前記第１のバスを介して転送する。このように、第１のメモリと第２のメモリとの間で、ＤＭＡコントローラを利用して、ＣＰＵを介さずにデータを転送することで、データ転送の効率が向上される。
【００１９】
このとき、ＤＭＡコントローラに接続された第１のバスと、ＣＰＵに接続された第２のバスとが分離されているので、ＤＭＡコントローラが第１のバスを介してデータを転送している間に、ＣＰＵは、第２のバスを介して、第１のメモリ及び第２のメモリの送信されるデータにアクセスする以外の他の処理を行うことができ、ＣＰＵの処理効率の低下を低減することができる。
【００２０】
次に、ＤＭＡコントローラによるデータ転送が完了すると、前記ＣＰＵは、前記第１のバス調停回路に対する第２のバスのアクセス要求により、該第２のバスが該第１のメモリの第２のポートに接続された状態とする。そして、ＣＰＵは、前記第１のメモリに記憶保持された前記転送されたデータに所定処理を施す。前記所定処理は、例えば、転送されたデータを送信及び受信するために必要な情報を生成する処理等である。以上により、ＣＰＵにおける処理効率の低下を低減すると共に、データ転送の効率を向上させることができる。
【００２１】
次に、本発明の第３態様の通信装置は、データの送信と受信とを切り換えて行う通信装置であって、第１のポート及び第２のポートを有する第１のメモリと、前記第１のメモリの前記第１のポートに接続され、受信時には他の通信装置から受信したデータを該第１のメモリに記憶保持させ、送信時には該第１のメモリに記憶保持されたデータを他の通信装置に送信する通信コントローラと、第１のバスに接続されたＤＭＡコントローラからの該第１のバスへのアクセス要求と、第２のバスに接続されたＣＰＵからの該第２のバスへのアクセス要求とを調停して、該第１のバス又は該第２のバスを前記第１のメモリの第２のポートに接続する第１のバス調停回路と、前記ＤＭＡコントローラからの前記第１のバスへのアクセス要求と、前記ＣＰＵからの前記第２のバスへのアクセス要求とを調停して、該第１のバス又は該第２のバスを前記第２のメモリに接続する第２のバス調停回路とを備え、データの受信時には、前記通信コントローラがデータを受信して前記第１のメモリに記憶保持させているときに、前記ＣＰＵは、前記第１のバス調停回路に対する第２のバスのアクセス要求により、該第２のバスが該第１のメモリの第２のポートに接続された状態として、該通信コントローラにより既に受信されて該第１のメモリに記憶保持されたデータに所定処理を施し、前記ＤＭＡコントローラは、前記第１のバス調停回路及び第２のバス調停回路に対する前記第１のバスのアクセス要求により、該第１のバスが該第１のメモリの第２のポート及び前記第２のメモリに接続された状態として、前記所定処理が施されたデータを、該第１のメモリから該第２のメモリに該第１のバスを介して転送し、データの送信時には、前記ＤＭＡコントローラが、前記第１のバス調停回路及び第２のバス調停回路に対する前記第１のバスのアクセス要求により、該第１のバスが前記第１のメモリの第２のポート及び前記第２のメモリに接続された状態として、該第２のメモリに記憶保持されたデータを該第１のメモリに該第１のバスを介して転送し、前記ＣＰＵが、該第１のバス調停回路に対する第２のバスのアクセス要求により、該第２のバスが該第１のメモリの第２のポートに接続された状態として、該第１のメモリに記憶保持された該転送されたデータに所定処理を施しているときに、前記通信コントローラは、該第１のメモリに記憶保持された前記所定処理が既に施されたデータを送信することを特徴とする。
【００２２】
前記本発明の第３態様の通信装置によれば、前記第１態様及び第２態様の通信装置と同様に、前記通信コントローラは、前記第１のメモリの第１のポートに接続され、前記第１又は第２のバスは、該第1のメモリの第２のポートに接続されるので、該通信コントローラの該第１のメモリへのアクセスと、該第１又は第２のバスから該第１のメモリへのアクセスとを、並行して行うことが可能である。そして、前記第１及び第２のバス調停回路により、前記第１又は第２のバスが選択的に切り換えられて前記第１及び第２のメモリに接続されるので、該第１のバスに接続された前記ＣＰＵと、該第２のバスに接続された前記ＤＭＡコントローラとからの、該第１及び第２のメモリへのアクセスがそれぞれ可能である。
【００２３】
そこで、前記本発明の第３態様の通信装置で、データの送信時には、前記第２態様の通信装置と同様に、前記通信コントローラが、第１のメモリに記憶保持され既に所定処理を施されたデータを送信する処理と並行して、第２のメモリに記憶保持されたデータをＤＭＡコントローラにより第１のメモリへ転送し、該転送されて該第１のメモリに記憶保持されたデータにＣＰＵにより所定処理を施す。そして、これにより、第２のメモリから第１のメモリへの送信データの転送効率を向上させている。
【００２４】
詳細には、まず、前記ＤＭＡコントローラは、前記第１のバス調停回路及び第２のバス調停回路に対する前記第１のバスのアクセス要求により、該第１のバスが前記第１のメモリの第２のポート及び前記第２のメモリに接続された状態とする。そして、前記ＤＭＡコントローラは、前記第２のメモリに記憶保持されたデータを前記第１のメモリに前記第１のバスを介して転送する。このように、第１のメモリと第２のメモリとの間で、ＤＭＡコントローラを利用して、ＣＰＵを介さずにデータを転送することで、データ転送の効率が向上される。
【００２５】
このとき、ＤＭＡコントローラに接続された第１のバスと、ＣＰＵに接続された第２のバスとが分離されているので、ＤＭＡコントローラが第１のバスを介してデータを転送している間に、ＣＰＵは、第２のバスを介して、第１のメモリ及び第２のメモリの送信されるデータにアクセスする以外の他の処理を行うことができ、ＣＰＵの処理効率の低下を低減することができる。
【００２６】
次に、ＤＭＡコントローラによるデータ転送が完了すると、前記ＣＰＵは、前記第１のバス調停回路に対する第２のバスのアクセス要求により、該第２のバスが該第１のメモリの第２のポートに接続された状態とする。そして、ＣＰＵは、前記第１のメモリに記憶保持された前記転送されたデータに所定処理を施す。前記所定処理は、例えば、転送されたデータを送信及び受信するために必要な情報を生成する処理等である。
【００２７】
また、前記本発明の第３態様の通信装置で、データの受信時には、前記第１態様の通信装置と同様に、通信コントローラにより受信したデータを第１のメモリに記憶保持する処理と並行して、ＣＰＵにより第１のメモリに既に受信されたデータに所定処理を施し、ＤＭＡコントローラにより該所定処理が施されたデータを第１のメモリから第２のメモリへ転送する。そして、これにより、第１のメモリから第２のメモリへの受信データの転送効率を向上させている。
【００２８】
詳細には、まず、前記ＣＰＵは、前記第１のバス調停回路に対する第２のバスのアクセス要求により、該第２のバスが該第１のメモリの第２のポートに接続された状態とする。そして、前記ＣＰＵは、前記通信コントローラにより既に受信されて前記第１のメモリに記憶保持されたデータに所定処理を施す。前記所定処理は、例えば、前記データに含まれる該データを送信及び受信するために必要な情報を解析する処理等である。
【００２９】
次に、前記所定処理が完了すると、前記ＤＭＡコントローラは、前記第１のバス調停回路及び第２のバス調停回路に対する前記第１のバスのアクセス要求により、該第１のバスが該第１のメモリの第２のポート及び前記第２のメモリに接続された状態とする。そして、前記ＤＭＡコントローラは、前記所定処理が施されたデータを、前記第１のメモリから前記第２のメモリに前記第１のバスを介して転送する。このように、第１のメモリと第２のメモリとの間で、ＤＭＡコントローラを利用して、ＣＰＵを介さずにデータを転送することで、データ転送の効率が向上する。
【００３０】
このとき、ＤＭＡコントローラに接続された第１のバスと、ＣＰＵに接続された第２のバスとが分離されているので、ＤＭＡコントローラが第１のバスを介してデータを転送している間に、ＣＰＵは、第２のバスを介して、第１のメモリ及び第２のメモリの受信されたデータにアクセスする以外の他の処理を行うことができ、ＣＰＵの処理効率の低下を低減することができる。
【００３１】
以上により、前記本発明の第３態様の通信装置によれば、送信時と受信時とのいずれにおいても、ＣＰＵにおける処理効率の低下を低減すると共に、データ転送の効率を向上させることができる。
【００３２】
また、前記本発明の第３態様の通信装置において、他の通信装置との間でパケット通信を行い、該パケット通信は、送信側の通信装置に対して、受信側の通信装置からの受信確認応答を待たずに、所定数を上限とする複数のパケットを連続して送信することを許容する仕様であって、前記第１のメモリは、前記通信コントローラにより受信されたデータを記憶保持する領域として、少なくとも、前記パケットの容量と前記所定数との積の容量を有することを特徴とする。
【００３３】
上記通信仕様によるパケット通信において、前記パケットの容量と前記所定数との積の容量は、受信側の通信装置で、少なくとも受信バッファが該容量を有していれば、受信されるデータのオーバーランが生じない容量である。そして、前記第１のメモリが、前記受信されるデータが記憶保持される領域として、少なくとも、前記パケットの容量と前記所定数との積の容量を有していれば、通信コントローラにより受信されて第１のメモリに既に記憶保持されたパケットに対して、ＣＰＵによる所定処理とＤＭＡコントローラによるデータ転送とを行っているときに、通信コントローラにより、該パケットを上書きしないように、該パケットの後に受信されたパケットを順次記憶保持させることができる。よって、第１のメモリの容量を効率良く割り当てて、データの受信時に、通信速度と転送速度との差を吸収して受信されるデータのオーバーランを防止しつつ、効率の良いデータ転送を行うことができる。
【００３４】
さらに、前記本発明の第３態様の通信装置において、他の通信装置との間でパケット通信を行い、該パケット通信は、送信側の通信装置に対して、受信側の通信装置からの受信確認応答を待たずに、所定数を上限とする複数のパケットを連続して送信することを許容すると共に、該受信確認応答が送信不良を示すものであったときに再送信処理を要求する仕様であって、前記第１のメモリは、前記通信コントローラにより連続して送信される複数のパケットのデータを記憶保持する第１の領域として、少なくとも、該パケットの容量と前記所定数との積の容量を有すると共に、該通信コントローラにより該データの次に連続して送信される複数のパケットのデータを記憶保持する第２の領域として、少なくとも、該パケットの容量と該所定数との積の容量を有し、複数のパケットを連続して送信する際に、前記通信コントローラが、前記第１のメモリの前記第１の領域に記憶保持されたデータを送信しているときに、前記ＤＭＡコントローラは、次に送信されるデータを、前記第２のメモリから前記第１のメモリに転送して前記第２の領域に記憶保持することを特徴とする。
【００３５】
上記通信仕様によるパケット通信において、送信側の通信装置は、先に送信したパケットにエラーが生じて、受信側の通信装置から送信不良を示す受信確認応答を受信したときには、再送信処理を行うことを要求される。このため、送信側の通信装置は、受信確認応答が返信されるまでは、前記第１のメモリに、先に送信したパケットのデータを残しておく必要がある。
【００３６】
そこで、複数のパケットを連続して送信する際に、前記通信コントローラが、前記第１のメモリの前記第１の領域に記憶保持されたデータを送信しているときに、前記ＤＭＡコントローラは、次に送信されるデータを、前記第２のメモリから前記第１のメモリに転送して前記第２の領域に記憶保持する。これにより、受信確認応答が返信されるまで、先に送信したパケットのデータを残しておくと共に、次に送信するデータを、第２のメモリから第１のメモリに順次転送して準備しておくことができる。よって、第１のメモリの容量を効率良く割り当てて、データの送信時に、送信不良時の再送信処理を行いつつ、効率の良いデータ転送を行うことができる。
【００３７】
また、前記本発明の第１態様又は第３態様の通信装置において、前記通信コントローラにより受信されるデータは、該データを送信及び受信するために必要な情報を含むヘッダ部と、それ以外の部分とからなり、他の通信装置からのデータの受信時に、前記ＣＰＵは、前記所定処理において、前記通信コントローラにより受信されて前記第１のメモリに記憶保持されたデータから前記ヘッダ部を分離し、前記ＤＭＡコントローラは、前記第１のメモリから前記第２のメモリへ、該ヘッダ部が分離されたデータを転送することを特徴とする。
【００３８】
本発明によれば、他の通信装置からのデータの受信時に、前記ＣＰＵは、前記所定処理において、前記通信コントローラにより受信されて前記第１のメモリに記憶保持されたデータのヘッダ部を解析し、解析が済んで不要となる該ヘッダ部を該データから分離する。そして、前記ＤＭＡコントローラは、前記第１のメモリから前記第２のメモリへ、前記ヘッダ部が分離されたデータを転送する。これにより、ヘッダ部の分だけ、転送するデータの容量が減少するため、データ転送の効率をより向上することができると共に、第２のメモリでデータを記憶保持するために必要な容量を小さくすることができる。
【００３９】
また、前記本発明の第２態様又は第３態様の通信装置において、前記通信コントローラから送信されるデータは、該データを送信及び受信するために必要な情報を含むヘッダ部と、それ以外の部分とからなり、他の通信装置へのデータの送信時に、前記ＤＭＡコントローラは、前記第２のメモリに記憶保持された前記ヘッダ部を含まないデータを、前記第１のメモリへ転送し、前記ＣＰＵは、前記所定処理において、該転送されたデータに該ヘッダ部を付加することを特徴とする。
【００４０】
本発明によれば、他の通信装置へのデータの送信時に、前記ＤＭＡコントローラは、前記第２のメモリに記憶保持された前記ヘッダ部を含まないデータを前記第１のメモリへ転送する。そして、前記ＣＰＵは、前記所定処理において、前記転送されたデータに基づいてヘッダ部を生成し、該データに該ヘッダ部を付加する。これにより、ヘッダ部の分だけ、第２のメモリから第１のメモリに転送するデータの容量が減少するため、データ転送の効率をより向上することができると共に、第２のメモリでデータを記憶保持するために必要な容量を小さくすることができる。
【発明を実施するための最良の形態】
【００４１】
本発明の一実施形態を添付の図面を参照して説明する。図１，２は、本発明の第１実施形態による通信装置の機能ブロック図である。また、図３，４は、図１の通信装置における受信動作の説明図であり、図５，６は、図１の通信装置における送信動作の説明図である。また、図７は、図１の通信装置におけるデュアルポートメモリの容量の割当に関する説明図である。なお、本実施形態は、本発明の第３態様の通信装置に対応する。
【００４２】
図１，２を参照して、通信装置１は電子ユニットであり、ポートＡ，Ｂを有するデュアルポートメモリ７と、ポートＡに接続されたバス４に接続された通信コントローラ２及びＤＭＡコントローラ９と、バス５に接続されたＤＭＡコントローラ１０と、バス６に接続されたＣＰＵ３と、バス５又はバス６をメモリ７のポートＢに接続するバス調停回路１１と、バス５又はバス６をメモリ８に接続するバス調停回路１２とを備えている。
【００４３】
通信装置１は、データの送信と受信とを切り換えて半二重通信を行う通信装置であり、他の通信装置１８との間でパケット通信を行う。送信及び受信されるパケットは、パケットを送信及び受信するために必要な情報（例えば宛先情報等）を含むヘッダ部と、それ以外の部分（例えば音声等の元データを分割してなるデータ部分）とからなる。パケット通信では、到着したデータに対応する受信確認応答（ＡＣＫパケット，ACKnowledgement Packet）が受信側の通信装置から送信側の通信装置へ送信される。この受信確認応答により、送信側の通信装置は、自分の送信したパケットが受信側の通信装置に到着したことを確認し、受信確認応答が送信不良を示すときには、パケットの再送信処理を行う。
【００４４】
また、通信装置１は、パケット通信の仕様（プロトコル）として、ＨＤＬＣ（High-level Data Link Control procedure）を用いている。ＨＤＬＣでは、受信側の通信装置からの受信確認応答を受け取る前に、送信側の通信装置が所定数（ウィンドウサイズ）を上限とする複数のパケットを連続して送信（先送り）できる。
【００４５】
デュアルポートメモリ（Dual Port Memory）７は、１つのメモリセルに対して、２つの入出力ポートＡ，Ｂを有するＲＡＭ（Random Access Memory）であり、メモリに対して、ポートＡを介したアクセスと、ポートＢを介したアクセスとを並行して行うことが可能である。なお、デュアルポートメモリ７は、本発明の第１のメモリに相当する。
【００４６】
通信コントローラ２は、受信時には、他の通信装置１８から受信したデータを、デュアルポートメモリ７に記憶保持させ、送信時には、デュアルポートメモリ７に記憶保持されたデータを、他の通信装置１８に送信する。通信コントローラ２は、通信規格として、例えば次世代通信規格として検討されているＵＦＩＲ（超高速赤外線通信，Ultra Fast InfraRed）を用いている。また、通信コントローラ２には、図２に示したように、ＵＦＩＲ用送信回路（UFIR Transmitter）２ａとＵＦＩＲ用受信回路（UFIR Receiver）２ｂにより、送信回路と受信回路とが別々に実装されている。
【００４７】
通信コントローラ２は、バス４に接続されており、バス４は、デュアルポートメモリ７のポートＡに接続されている。また、バス４は、ＤＭＡコントローラ９に接続されている。さらに、バス４は、詳細には、図２に示したように、ＤＭＡコントローラ９がデータを読み込む際に用いるバス（Read Master）４ａと、ＤＭＡコントローラ９がデータを書き込む際に用いるバス（Write Master）４ｂとから構成される。通信コントローラ２は、ＤＭＡコントローラ９を使用して、他の通信装置１８から受信したデータを、バス４ｂを介してデュアルポートメモリ７に書き込む。また、通信コントローラ２は、ＤＭＡコントローラ９を使用して、バス４ａを介してデュアルポートメモリ７からデータを読み込み、他の通信装置１８に送信する。なお、ＤＭＡコントローラ９が、通信コントローラ２に搭載された構成（ＤＭＡコントローラ９の機能を有する通信コントローラ２）としてもよい。
【００４８】
バス調停回路１１（本発明の第１のバス調停回路）は、バス５に接続されたＤＭＡコントローラ１０からのバス５へのアクセス要求と、バス６に接続されたＣＰＵ３からのバス６へのアクセス要求とを調停して、バス５又はバス６をメモリ７のポートＢに接続する。
【００４９】
バス調停回路１２（本発明の第２のバス調停回路）は、バス５に接続されたＤＭＡコントローラ１０からのバス５へのアクセス要求と、ＣＰＵ３からのバス６へのアクセス要求とを調停して、バス５又はバス６をメモリ８に接続する。
【００５０】
ＤＭＡコントローラ（Direct Memory Access controller）１０は、バス調停回路１１，１２に対するバス５のアクセス要求により、バス５がメモリ７のポートＢ及びメモリ８に接続された状態とする。バス５（本発明の第１のバス）は、詳細には、図２に示したように、ＤＭＡコントローラ１０がデータを読み込む際に用いるバス（Read Master）５ａと、ＤＭＡコントローラ１０がデータを書き込む際に用いるバス（Write Master）５ｂとから構成される。そして、ＤＭＡコントローラ１０は、データの受信時には、ＣＰＵ３により所定処理が施されたデータをバス５ａを介して読み込み、デュアルポートメモリ７からメモリ８にバス５ｂを介して書き込む。また、ＤＭＡコントローラ１０は、データの送信時には、メモリ８に記憶保持されたデータをバス５ａを介して読み込み、デュアルポートメモリ７にバス５ｂを介して書き込む。
【００５１】
ＣＰＵ（Central Processing Unit）３は、バス調停回路１１に対するバス６のアクセス要求により、バス６がデュアルポートメモリ７のポートＢに接続された状態とする。なお、ＣＰＵ３は、例えば、インストラクションバスとデータバスとが独立したハーバード型アーキテクチャを用いている。バス６（本発明の第２のバス）は、詳細には、図２に示したように、命令用のインストラクションバス６ａと、データ用のデータバス６ｂとから構成される。
【００５２】
メモリ８は、送信及び受信されるデータが記憶保持される大容量のＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）である。メモリ８は、バス調停回路１１を介して、バス５又はバス６に接続される。なお、メモリ８は、本発明の第２のメモリに相当する。
【００５３】
また、バス６には、図２に示したように、プロトコル処理のためのプログラム等が記憶保持されるＳＲＡＭ（Static Random Access Memory）１３，ＲＯＭ（Read Only Memory）１４とが接続されている。ＳＲＡＭ１３は、インストラクションバス６ａ及びデータバス６ｂに接続され，ＲＯＭ１４は、インストラクションバス６ａに接続される。メモリ８、ＳＲＡＭ１３、ＲＯＭ１４により、ＣＰＵ３の主記憶メモリが構成される。
【００５４】
さらに、データバス６ｂには、図２に示したように、パラレル信号とシリアル信号との相互変換を行なう回路であるＵＡＲＴ（Universal Asynchronous Receiver Transmitter）１５が接続されている。また、ＵＡＲＴ１５には、ＳＩＲ Endec（シリアル赤外線通信用エンコーダ／デコーダ，Serial InfraRed Encoder-Decoder）機能が備えられている。通信装置１内部のデータの転送はパラレル方式であり、通信コントローラ２によるデータの送信及び受信はシリアル方式であるので、ＵＡＲＴ１５は、これらのデータを変換する。さらに、データバス６ｂには、ＧＰＩＯ１６（General Purpose Input/Output，汎用入出力インタフェース）、タイマ（Timer）１７が接続されている。
【００５５】
なお、図２のデュアルポートパケットバッファ７，１１は、図１に示したデュアルポートメモリ７とバス調停回路１１とを含むものである。また、図２のＳＤＲＡＭコントローラ９，１２は、図１に示したＳＤＲＡＭ９とバス調停回路１２とを含むものである。
【００５６】
次に、デュアルポートメモリ７について、図７を用いて詳細に説明する。図７を参照して、デュアルポートメモリ７は、通信コントローラ２により受信されたデータを記憶保持する領域（受信用領域α）として、１パケットの容量とウィンドウサイズとの積の容量を有する。また、通信コントローラ２により送信されるデータを記憶保持する領域（送信用領域β）として、１パケットの容量とウィンドウサイズとの積の２倍の容量を有する。送信用領域βは、１パケットの容量とウィンドウサイズとの積の容量を有する領域β１と領域β２とからなる。
【００５７】
なお、１パケットの容量とウィンドウサイズとの積の容量は、ＨＤＬＣにおいて、受信側の通信装置で、少なくとも受信バッファが該容量を有していれば、受信されるデータのオーバーランが生じない容量である。本発明では、デュアルポートメモリ７が受信バッファの機能を有する。
【００５８】
次に、本実施形態の通信装置の作動（受信動作及び送信動作）を、図３〜６を用いて説明する。まず、受信動作について図３，４を用いて説明する。なお、以下の説明では、ウィンドウサイズはｎであり、受信動作においては、ｎ個のパケット（時系列順にＰ１，Ｐ２，．．．，Ｐｎとする）が、他の通信装置１８から通信装置１に連続して送信されるものとする。
【００５９】
図３において、横軸は時間（ｔ）であり、図３の最上段には、通信装置１により受信されるパケットＰ１〜Ｐｎが示されている。また、図３の最下段には、通信装置１から送信される受信確認応答が示されている。図３において、各パケットＰｉ（ｉ＝１，２，．．．，ｎ）の長さは、各パケットＰｉが他の通信装置１８から送信された時から、通信装置１の通信コントローラ２による受信が完了した時までの時間を示している。なお、各パケットＰｉは、通信速度に応じて順次受信される。
【００６０】
通信装置１では、各パケットＰｉに対して、図４のフローチャートに示したＳＴＥＰ００１〜ＳＴＥＰ００６の処理（受信処理）が行われる。まず、通信コントローラ２が、他の通信装置１８からパケットＰｉが受信してデュアルポートメモリ７に書き込む（ＳＴＥＰ００１）。このとき、通信コントローラ２は、ＤＭＡコントローラ９を使用して、パケットＰｉのデータを、バス４ｂを介してデュアルポートメモリ７へ書き込む。
【００６１】
パケットＰｉのデータの書き込みが完了すると、次に、ＣＰＵ３が、デュアルポートメモリ７に記憶保持されたパケットＰｉのデータに所定処理を施す。まず、ＣＰＵ３は、バス調停回路１１に対するバス６のアクセス要求により、バス６がデュアルポートメモリ７のポートＢに接続された状態とする（ＳＴＥＰ００２）。これにより、バス６に接続されたＣＰＵ３からのデュアルポートメモリ７へのアクセスが可能となる。
【００６２】
次に、ＣＰＵ３は、デュアルポートメモリ７に記憶保持されたパケットＰｉのデータのヘッダ部を読み込み、受信されたパケットＰｉのデータにエラーがあるか否かを判断する（ＳＴＥＰ００３）。
【００６３】
ＳＴＥＰ００３の判断の結果がＹＥＳ（受信されたパケットＰｉのデータにエラーがある）の場合には、パケットＰｉのデータを破棄し、パケットＰｉに対する受信処理を終了する。これにより、受信されたパケットＰｉのデータにエラーがある場合には、デュアルポートメモリ７からメモリ８への該エラーのあるデータの転送を禁止して、不要なデータの転送が行われることを排除している。
【００６４】
ＳＴＥＰ００３の判断の結果がＮＯ（受信されたパケットＰｉのデータにエラーがない）の場合には、ＳＴＥＰ００４に進み、ＣＰＵ３により、デュアルポートメモリ７に記憶保持されたパケットＰｉのヘッダ部の解析処理が行われ、解析処理が済んだ後に、ＣＰＵ３により、受信パケットＰｉのデータから、ヘッダ部が分離される。
【００６５】
次に、ＣＰＵ３による所定処理が完了すると、ＤＭＡコントローラ１０は、パケットＰｉのデータをメモリ８に転送する。ＤＭＡコントローラ１０は、ＣＰＵ３により起動されると、バス調停回路１１，１２に対するバス５のアクセス要求を行って、バス５がデュアルポートメモリ７のポートＢ及びメモリ８に接続された状態とする（ＳＴＥＰ００５）。これにより、バス５に接続されたＤＭＡコントローラ１０からのデュアルポートメモリ７及びメモリ８へのアクセスが可能となる。
【００６６】
次に、ＤＭＡコントローラ１０は、パケットＰｉのデータを、デュアルポートメモリ７からメモリ８にバス５ｂを介して書き込む（ＳＴＥＰ００６）。このように、デュアルポートメモリ７とメモリ８との間で、ＤＭＡコントローラ１０を利用して、ＣＰＵ３を介さずにデータを転送することで、データ転送の効率が向上する。このとき、転送されるパケットＰｉのデータは、ＣＰＵ３によりヘッダ部が分離されている。これにより、通信装置１は、ヘッダ部の分だけ、転送するデータの容量が減少するため、データ転送の効率をより向上させることができると共に、メモリ８でデータを記憶保持するために必要な容量を小さくすることができる。
【００６７】
さらに、このとき、ＤＭＡコントローラ１０に接続されたバス５と、ＣＰＵ３に接続されたバス６とが分離され、バス６には、ＳＲＡＭ１３，ＲＯＭ１４が接続されている。このため、ＣＰＵ３は、プログラムを読み出して動作を継続することができる。そのため、ＤＭＡコントローラ１０がバス５を介してデータを転送している間に、ＣＰＵ３は、バス６を介して、デュアルポートメモリ７及びメモリ８のパケットＰｉのデータにアクセスする以外の他の処理（ＳＲＡＭ１３，ＲＯＭ１４に記憶保持されたプログラムを用いた処理や、ＵＡＲＴ１５，ＧＰＩＯ１６を用いた処理等）を行うことができ、ＣＰＵ３の処理効率の低下が低減される。
【００６８】
上述のＳＴＥＰ００１〜００６の処理により、受信されたパケットＰ１〜Ｐｎに対して、ＣＰＵ３により所定処理が施され、ＤＭＡコントローラ１０により該所定処理を施されたデータがメモリ８に転送される。そして、パケットＰ１〜Ｐｎに対する受信処理が完了すると、送信側の他の通信装置１８に、通信装置１から次データの要求（受信確認応答）が送信される。
【００６９】
次に、図３を参照して、パケットＰ１〜Ｐｎの処理のタイミングについて説明する。図３の上から２段目は、パケットＰ１〜Ｐｎのデータがデュアルポートメモリ７に記憶保持される時間Ｄ１〜Ｄｎ（上述のＳＴＥＰ００１の処理時間に相当する）を示している。図３の３段目は、ＣＰＵ３によりパケットＰ１〜Ｐｎのデータに所定処理が施される時間Ｅ１〜Ｅｎ（上述のＳＴＥＰ００２〜００４の処理時間に相当する）を示している。図３の４段目は、ＤＭＡコントローラ１０によりパケットＰ１〜Ｐｎのデータがデュアルポートメモリ７からメモリ８に転送される時間Ｆ１〜Ｆｎ（上述のＳＴＥＰ００５〜００６の処理時間に相当する）を示している。
【００７０】
図３に示したように、通信装置１の受信動作では、通信コントローラ２により受信したパケットＰｉ（ｉ＝２，３，．．．，ｎ）のデータをデュアルポートメモリ７に記憶保持する処理Ｄｉと並行して、デュアルポートメモリ７に既に記憶保持されたパケットＰi-1のデータに、ＣＰＵ３により所定処理を施し（処理Ｅi-1）、該所定処理を施したデータを、ＤＭＡコントローラ１０によりデュアルポートメモリ７からメモリ８へ転送する（処理Ｆi-1）ことができる。
【００７１】
次に、送信動作について図５を用いて説明する。送信動作においては、ｎ個のパケット（時系列順にＱ１，Ｑ２，．．．，Ｑｎとする）が、通信装置１から他の通信装置１８に連続して送信されるものとする。さらに、パケットＱ１〜Ｑｎの次に、ｎ個のパケットＱ'１〜Ｑ'ｎが、通信装置１から連続して送信されるものとする。
【００７２】
図５において、横軸は時間（ｔ）であり、図５の最上段には、受信側の他の通信装置１８から送信される受信確認応答が示されている。また、図５の最下段には、送信されるパケットＱ１〜Ｑｎが示されている。図５において、各パケットＱｉ（ｉ＝１，２，．．．，ｎ）の長さは、各パケットＱｉが通信装置１の通信コントローラ２により送信された時から、他の通信装置１８により受信された時までの時間を示している。なお、通信装置１は、他の通信装置１８から受信確認応答（次データ要求）を受け取ったときに、各パケットＱｉを通信速度に応じて順次送信する。
【００７３】
通信装置１では、各パケットＱｉを生成して送信するために、図６のフローチャートに示したＳＴＥＰ１０１〜１０５の処理が行われる。まず、ＤＭＡコントローラ１０により、メモリ８に記憶保持されたデータ（パケットＱｉのヘッダ部以外のデータ部分となる）がデュアルポートメモリ７に転送される。ＤＭＡコントローラ１０は、ＣＰＵ３により起動されると、バス調停回路１１，１２に対するバス５のアクセス要求を行って、バス５がデュアルポートメモリ７のポートＢ及びメモリ８に接続された状態とする（ＳＴＥＰ１０１）。これにより、バス５に接続されたＤＭＡコントローラ１０からのデュアルポートメモリ７及びメモリ８へのアクセスが可能となる。
【００７４】
次に、ＤＭＡコントローラ１０は、メモリ８に記憶保持されたデータをバス５ａを介して読み込み、デュアルポートメモリ７の領域β１（図７参照）にバス５ｂを介して書き込む（ＳＴＥＰ１０２）。このように、メモリ８とデュアルポートメモリ７との間で、ＤＭＡコントローラ１０を使用して、ＣＰＵ３を介さずにデータを転送することで、データ転送の効率が向上される。なお、パケットＱｉのヘッダ部は、ＣＰＵ３による後述の処理により生成されて付加される。これにより、ヘッダ部の分だけ、メモリ８からデュアルポートメモリ７に転送するデータの容量が減少する。このため、通信装置１は、データ転送の効率をより向上させることができると共に、メモリ８でデータを記憶保持するために必要な容量を小さくすることができる。
【００７５】
さらに、このとき、ＤＭＡコントローラ１０に接続されたバス５と、ＣＰＵ３に接続されたバス６とが分離され、バス６には、ＳＲＡＭ１３，ＲＯＭ１４が接続されているので、プログラムを読み出して動作を継続することができる。そのため、ＤＭＡコントローラ１０がバス５を介してデータを転送している間に、ＣＰＵ３は、バス６を介して、デュアルポートメモリ７及びメモリ８のパケットＱｉのデータにアクセスする以外の他の処理（ＳＲＡＭ１３，ＲＯＭ１４に記憶保持されたプログラムを用いた処理や、ＵＡＲＴ１５，ＧＰＩＯ１６を用いた処理等）を行うことができ、ＣＰＵ３の処理効率の低下が低減される。
【００７６】
ＤＭＡコントローラ１０によるデータの転送が完了すると、次に、ＣＰＵ３は、デュアルポートメモリ７に記憶保持されたデータに所定処理を施す。まず、ＣＰＵ３は、バス調停回路１１に対するバス６のアクセス要求により、バス６がデュアルポートメモリ７のポートＢに接続された状態とする（ＳＴＥＰ１０３）。これにより、バス６に接続されたＣＰＵ３からのデュアルポートメモリ７へのアクセスが可能となる。
【００７７】
次に、ＣＰＵ３は、ＤＭＡコントローラ１０により転送されてデュアルポートメモリ７に記憶保持されたデータを読み込み、パケットＱｉのヘッダ部を生成して、該データに付加する（ＳＴＥＰ１０４）。
【００７８】
次に、ＣＰＵ３による所定処理が完了すると、通信コントローラ２が、デュアルポートメモリ７に記憶保持されたパケットＱｉを他の通信装置１８へ送信する（ＳＴＥＰ１０５）。このとき、通信コントローラ２は、ＤＭＡコントローラ９を使用して、パケットＱｉを、バス４ａを介してデュアルポートメモリ７から読み込む。
【００７９】
上述のＳＴＥＰ１０１〜１０５の処理により、ＤＭＡコントローラ１０によりメモリ８に記憶保持されたデータがデュアルポートメモリ７に転送され、該転送されたデータにＣＰＵ３により所定処理が施されてパケットＱ１〜Ｑｎが生成され、パケットＱ１〜Ｑｎが通信コントローラ２により連続して送信される。
【００８０】
さらに、送信動作において、パケットＱ１〜Ｑｎの送信中に、次に連続して送信されるパケットＱ'１〜Ｑ'ｎが生成される。すなわち、パケットＱ１〜Ｑｎを送信しているときに、上述のＳＴＥＰ１０１〜１０４と同様に、ＤＭＡコントローラ１０によりメモリ８に記憶保持されたデータがからデュアルポートメモリ７に転送され、該転送されたデータにＣＰＵ３により所定処理が施されてパケットＱ'１〜Ｑ'ｎが生成される。
【００８１】
ただし、パケットＱ'１〜Ｑ'ｎの生成では、ＳＴＥＰ１０２と同様の処理において、ＤＭＡコントローラ１０は、メモリ８に記憶保持されたデータをバス５ａを介して読み込み、バス５ｂを介してデュアルポートメモリ７の領域β２（図７参照）に書き込む。
【００８２】
これにより、通信コントローラ２がパケットＱ１〜Ｑｎの通信を開始してから、パケットＱ１〜Ｑｎに対応する受信確認応答を受け取るまでの間に、次に送信するパケットＱ'１〜Ｑ'ｎを生成して準備しておくことができる。また、パケットＱ'１〜Ｑ'ｎはデュアルポートメモリ７の領域β２に記憶保持されるので、パケットＱ１〜Ｑｎに対応する受信確認応答が返信されるまで、デュアルポートメモリ７の領域β１に記憶保持されたパケットＱ１〜Ｑｎのデータを残しておくことができる。
【００８３】
次に、図５を参照して、パケットＱ１〜Ｑｎの生成処理及び送信処理のタイミングについて説明する。図５の上から２段目は、ＤＭＡコントローラ１０により、パケットＱ１〜Ｑｎ，Ｑ'１を生成するためのデータがメモリ８からデュアルポートメモリ７に転送される時間Ｈ１〜Ｈｎ，Ｈ'１（上述のＳＴＥＰ１０１〜１０２の処理時間に相当する）を示している。図５の３段目は、ＣＰＵ３によりヘッダ部を付加してパケットＱ１〜Ｑｎ，Ｑ'１を生成する所定処理の実行時間Ｉ１〜Ｉｎ，Ｉ'１（上述のＳＴＥＰ１０３〜１０４の処理時間に相当する）が示されている。図５の４段目は、デュアルポートメモリ７に記憶保持されたパケットＱ１〜Ｑｎが通信コントローラ２により送信される時間Ｊ１〜Ｊｎ（上述のＳＴＥＰ１０５の処理時間に相当する）が示されている。
【００８４】
図５に示したように、通信装置１の送信動作では、デュアルポートメモリ７に記憶保持されたパケットＱi-1を通信コントローラ２により送信する処理Ｊi-1（ｉ＝２，３，．．．，ｎ）と並行して、ＤＭＡコントローラ１０によりメモリ８に記憶保持されたデータをデュアルポートメモリ７へ転送し（処理Ｈｉ）、該転送されたデータにＣＰＵ３により所定処理を施して次に送信するパケットＱｉを生成する（処理Ｉｉ）ことができる。
【００８５】
また、通信装置１の送信動作では、デュアルポートメモリ７に記憶保持されたパケットＱnを通信コントローラ２により送信する処理Ｊnと並行して、ＤＭＡコントローラ１０によりメモリ８に記憶保持されたデータをデュアルポートメモリ７へ転送し（処理Ｈ'１）、該転送されたデータに、ＣＰＵ３により所定処理を施して次に連続して送信するパケットＱ'１を生成する（処理Ｉ'１）ことができる。これにより、パケットＱ１〜Ｑｎに対応する受信確認応答が送信されて、パケットＱ１〜Ｑｎが他の受信装置１８に受信されたことが確認されたときに、通信コントローラ２が、パケットＱ'１〜Ｑ'ｎの送信を直ちに開始することができる。
【００８６】
さらに、パケットＱ１〜Ｑｎに対応する受信確認応答が送信不良を示すものだった場合には、通信コントローラ２は、デュアルポートメモリ７の領域β１に記憶保持されたパケットＱ１〜Ｑｎの再送信処理を行う。
【００８７】
以上により、データの受信時と送信時とのいずれにおいても、ＣＰＵ３における処理効率の低下を低減すると共に、データ転送の効率を向上させることができる。
【００８８】
なお、本実施形態においては、通信装置1は、データの受信と送信とを切り換えて半二重通信を行うものとしたが、他の実施形態として、他の通信装置１８からのデータの受信のみを行う受信装置としてもよい。これは本実施形態の第１態様の通信装置に対応する。または、他の通信装置１８へのデータの送信のみを行う送信装置としてもよい。これは本実施形態の第２態様の通信装置に対応する。
【図面の簡単な説明】
【００８９】
【図１】本発明の第１実施形態による通信装置の機能ブロック図。
【図２】図１の通信装置の機能ブロック図。
【図３】図１の通信装置における受信動作の説明図。
【図４】図３の受信動作におけるフローチャート。
【図５】図１の通信装置における送信動作の説明図。
【図６】図５の送信動作におけるフローチャート。
【図７】図１の通信装置におけるデュアルポートメモリの容量の割当の説明図。
【図８】従来の通信装置の機能ブロック図。
【符号の説明】
【００９０】
１…通信装置、２…通信コントローラ、３…ＣＰＵ、４，４ａ，４ｂ，５，５ａ，５ｂ，６，６ａ，６ｂ…バス、７…デュアルポートメモリ（第１のメモリ）、８…ＳＤＲＡＭ（第２のメモリ），９，１０…ＤＭＡコントローラ、１１，１２…バス調停回路。
【図１】
2007219712.tif 000003
【図２】
2007219712.tif 000004
【図３】
2007219712.tif 000005
【図４】
2007219712.tif 000006
【図５】
2007219712.tif 000007
【図６】
2007219712.tif 000008
【図７】
2007219712.tif 000009
【図８】
2007219712.tif 000010