(57)【要約】【課題】ＤＲＡＭアクセスに関する実効スループットの低下を抑制する。【解決手段】記録装置３０において、データメモリ３１をバンクごとにライトポインタを有するＤＲＡＭから構成して、書込対象キューにフレームデータを書き込む際、バンクのうちライトポインタに対応する書込対象ロウアドレスが活性化状態にあるバンクを書込対象バンクとして選択して当該フレームデータを書き込み、当該書込対象ロウアドレスが活性化状態にあるバンクが存在しない場合は、当該書込対象ロウアドレスが非活性化状態にあるバンクを書込対象バンクとして選択して当該書込対象ロウアドレスを活性化した後に当該フレームデータを書き込む。【選択図】  図１
2018032925.tif 000002
【特許請求の範囲】
【請求項１】
順次入力される通信データに、当該通信データを出力すべき出力系統と対応するキューを示すキュー指定情報を付加して多重化する多重化装置と、前記多重化装置から転送された前記通信データを、データメモリ内に論理的に形成した複数のキューのうち前記キュー指定情報で指定された書込対象キューへ一時蓄積する記録装置と、前記キューのうち優先制御ロジックに基づき選択した出力系統と対応する読出対象キューから前記通信データを読み出し、当該出力系統と対応する出力ポートの通信速度に変換して出力する多重分離装置とを備える通信用入出力装置であって、
前記記録装置は、
バンクごとにライトポインタを有するＤＲＡＭからなり、前記キューの通信データを記憶する前記データメモリと、
前記書込対象キューに前記通信データを書き込む際、前記バンクのうちライトポインタに対応する書込対象ロウアドレスが活性化状態にあるバンクを書込対象バンクとして選択して当該通信データを書き込み、当該書込対象ロウアドレスが活性化状態にあるバンクが存在しない場合は、当該書込対象ロウアドレスが非活性化状態にあるバンクを書込対象バンクとして選択して当該書込対象ロウアドレスを活性化した後に当該通信データを書き込むＤＲＡＭアクセス部と
を備えることを特徴とする通信用入出力装置。
【請求項２】
請求項１に記載の通信用入出力装置において、
前記記録装置は、
前記データメモリの前記キューに対する書き込み・読み出しを制御する際に用いるキュー制御情報を記憶するキュー制御メモリと、
前記キュー制御メモリのキュー制御情報に基づいて、前記多重化装置から転送された前記通信データの前記書込対象キューに対する書き込みを前記ＤＲＡＭアクセス部に指示する書込制御部と、
前記キュー制御メモリのキュー制御情報に基づいて、前記読出対象キューからの通信データの読み出しを前記ＤＲＡＭアクセス部に指示し、読み出した通信データを前記多重分離装置へ転送する読出制御部とをさらに備え、
前記キュー制御メモリは、仮想データメモリ上で用いられる仮想格納アドレスごとに、当該仮想格納アドレスに書き込まれた通信データに後続する通信データの仮想格納アドレスを示す後続アドレスを記憶し、前記キューごとに、当該キューの通信データが書き込まれている前記仮想格納アドレスの先頭および最終を示すキュー先頭アドレスおよびキュー最終アドレスを記憶し、前記キューのそれぞれに共通して、次に通信データを書き込むべき仮想格納アドレスを示す次書込アドレスをバンクごとに記憶し、
前記書込制御部は、前記書込対象キューに前記通信データを書き込む際、前記書込対象バンクとして選択したバンクの前記次書込アドレスからなる書込対象仮想アドレスに対する当該通信データの書き込みをＤＲＡＭアクセス部に指示し、当該書込対象キューのキュー最終アドレス、書込前のキュー最終アドレスに関する後続アドレス、および書込対象バンクとして選択したバンクの次書込アドレスをそれぞれ更新し、
前記読出制御部は、前記読出対象キューから前記通信データを読み出す際、当該読出対象キューのキュー先頭アドレスからなる読出対象仮想アドレスに対する当該通信データの読み出しをＤＲＡＭアクセス部に指示し、当該読出対象キューのキュー先頭アドレス、読出対象バンクの次書込アドレス、および新たな読出対象バンクの次書込アドレスに関する後続アドレスをそれぞれ更新する
ことを特徴とする通信用入出力装置。
【請求項３】
請求項１または請求項２に記載の通信用入出力装置において、
前記記録装置は、
前記キューごとに、当該キューが使用している前記仮想データメモリ上での仮想格納アドレスの数を示す使用アドレス数を記憶するキュー使用アドレス数メモリと、
前記書込対象キューに前記通信データを書き込む際、当該通信データのデータ長に基づき、書き込みに必要となる仮想格納アドレスの数を示す必要アドレス数を算出し、前記キュー使用アドレス数メモリから取得した当該書込対象キューまたは前記キューの使用アドレス数に基づき、当該書き込みに使用可能な仮想格納アドレスの数を示す残りアドレス数を算出し、当該必要アドレス数と当該残りアドレス数とを比較することにより当該通信データの書込可否を判定し、書込可の判定に応じて前記書込制御部に対して当該通信データの書き込みを指示するアクセス調停部と
をさらに備えることを特徴とする通信用入出力装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ通信技術に関し、特に通信データ（フレームデータ）の入出力を行う通信用入出力装置で用いられるメモリアクセス制御技術に関する。
【背景技術】
【０００２】
従来、インターネット等のデータ通信で使用されて、例えばイーサネット（登録商標）のフレームデータ等の通信データを入出力するための通信用入出力装置として、例えば、特許文献１のような構成が提案されている。図１９は、従来の通信用入出力装置（内蔵メモリ）の構成を示すブロック図である。
この通信用入出力装置は、多重化装置ＭＵＸ、記録装置ＭＥＭ、および多重分離装置ＤＥＭＵＸから構成されている。
【０００３】
ＭＵＸは、入力ポートごとに設けられたキュー指定情報付加部により、入力されたフレームデータに対して、当該フレームデータの出力先に対応するキュー指定情報を付加した後、多重化部により多重化して出力する。
ＭＥＭは、ＭＵＸから時分割多重で出力されたフレームデータを書込制御部により受け取り、各フレームデータに付加されているキュー指定情報とキューマップとを参照し、内蔵するデータメモリ内にフレームデータの出力先ごとに論理的に設けたキューのうち、キュー指定情報と対応するキューのアドレスへフレームデータを書き込む。また、ＭＥＭは、ＤＥＭＵＸからの読出指示に応じて、読出制御部により対応するキューからフレームデータを読み出して、ＤＥＭＵＸに出力する。
【０００４】
ＤＥＭＵＸは、読出部により、出力ポートごとの優先制御ロジックに基づき、ＭＥＭ内の優先出力ポートに対応する出力先のキューからフレームデータを読み出して、振分部により対応する出力ポートへ振り分け、出力ポートごとに設けられた速度変換部により当該出力ポートの通信速度に変換して出力する。
【０００５】
図２０は、キューと出力ポートとの対応を示す説明図であり、出力ポート数が３の場合が示されている。図２０（ａ）では、キューと出力ポートとが１対１に対応付けられているが、図２０（ｂ）のように、１対多に対応付けることにより、１つのフレームデータを複数の出力ポートが出力する場合に対応可能となる。また、図２０（ｃ）のように、出力ポートごとに、読出優先度に応じたキューを対応付けることもできる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−０１０１９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
このような通信用入出力装置では、出力系統の増加に応じてＭＥＭで必要とされる記憶容量が増大するため、データメモリとしてＤＲＡＭが用いられる。しかしながら、ＤＲＡＭのアクセスには、各バンクにおけるロウアドレスの活性化に起因して待ち時間が発生するため、場合によっては、ＤＲＡＭアクセスの実効スループットが極端に低下して、フレームデータの処理速度に追従できなくなり、通信品質が劣化するという問題点があった。
【０００８】
一般に、ＤＲＡＭでは、任意のバンクの任意のロウアドレスにデータを書き込む場合、当該バンクにおいて当該ロウアドレスを活性化する必要があり、同一バンクの異なるロウアドレスにアクセスする場合には、当該ロウアドレスを用いたアクセスが完了するのを待ってから、新たなロウアドレスを活性化する必要があるため、同一バンクへのアクセスにおいて、ロウアドレスの活性化に起因して比較的大きな待ち時間が発生する。具体的には、同一バンクの異なるロウアドレスへのアクセスが連続した場合である。その他に待ち時間が発生する条件として、読み出し後の同一バンクに書き込みを行う場合、および、書き込み後の同一バンクから読み出しを行う場合がある。
【０００９】
したがって、これら待ち時間がＤＲＡＭアクセスに関する実効スループットの低下原因となる。このため、特に、通信用入出力装置においては、短いフレームデータがバースト的に連続して入力される場合があり、このようなケースにおいて、頻繁に同一バンクの異なるロウアドレスへアクセスを行った場合、極端に実効スループットが低下する可能性がある。
【００１０】
本発明はこのような課題を解決するためのものであり、ＤＲＡＭアクセスに関する実効スループットの低下を抑制できるメモリアクセス制御技術を提供することを目的としている。
【課題を解決するための手段】
【００１１】
このような目的を達成するために、本発明にかかる通信用入出力装置は、順次入力される通信データに、当該通信データを出力すべき出力系統と対応するキューを示すキュー指定情報を付加して多重化する多重化装置と、前記多重化装置から転送された前記通信データを、データメモリ内に論理的に形成した複数のキューのうち前記キュー指定情報で指定された書込対象キューへ一時蓄積する記録装置と、前記キューのうち優先制御ロジックに基づき選択した出力系統と対応する読出対象キューから前記通信データを読み出し、当該出力系統と対応する出力ポートの通信速度に変換して出力する多重分離装置とを備える通信用入出力装置であって、前記記録装置は、バンクごとにライトポインタを有するＤＲＡＭからなり、前記キューの通信データを記憶する前記データメモリと、前記書込対象キューに前記通信データを書き込む際、前記バンクのうちライトポインタに対応する書込対象ロウアドレスが活性化状態にあるバンクを書込対象バンクとして選択して当該通信データを書き込み、当該書込対象ロウアドレスが活性化状態にあるバンクが存在しない場合は、当該書込対象ロウアドレスが非活性化状態にあるバンクを書込対象バンクとして選択して当該書込対象ロウアドレスを活性化した後に当該通信データを書き込むＤＲＡＭアクセス部とを備えている。
【００１２】
また、本発明にかかる上記通信用入出力装置の一構成例は、前記記録装置が、前記データメモリの前記キューに対する書き込み・読み出しを制御する際に用いるキュー制御情報を記憶するキュー制御メモリと、前記キュー制御メモリのキュー制御情報に基づいて、前記多重化装置から転送された前記通信データの前記書込対象キューに対する書き込みを前記ＤＲＡＭアクセス部に指示する書込制御部と、前記キュー制御メモリのキュー制御情報に基づいて、前記読出対象キューからの通信データの読み出しを前記ＤＲＡＭアクセス部に指示し、読み出した通信データを前記多重分離装置へ転送する読出制御部とをさらに備え、前記キュー制御メモリは、仮想データメモリ上で用いられる仮想格納アドレスごとに、当該仮想格納アドレスに書き込まれた通信データに後続する通信データの仮想格納アドレスを示す後続アドレスを記憶し、前記キューごとに、当該キューの通信データが書き込まれている前記仮想格納アドレスの先頭および最終を示すキュー先頭アドレスおよびキュー最終アドレスを記憶し、前記キューのそれぞれに共通して、次に通信データを書き込むべき仮想格納アドレスを示す次書込アドレスをバンクごとに記憶し、前記書込制御部は、前記書込対象キューに前記通信データを書き込む際、前記書込対象バンクとして選択したバンクの前記次書込アドレスからなる書込対象仮想アドレスに対する当該通信データの書き込みをＤＲＡＭアクセス部に指示し、当該書込対象キューのキュー最終アドレス、書込前のキュー最終アドレスに関する後続アドレス、および書込対象バンクとして選択したバンクの次書込アドレスをそれぞれ更新し、前記読出制御部は、前記読出対象キューから前記通信データを読み出す際、当該読出対象キューのキュー先頭アドレスからなる読出対象仮想アドレスに対する当該通信データの読み出しをＤＲＡＭアクセス部に指示し、当該読出対象キューのキュー先頭アドレス、読出対象バンクの次書込アドレス、および新たな読出対象バンクの次書込アドレスに関する後続アドレスをそれぞれ更新するようにしたものである。
【００１３】
また、本発明にかかる上記通信用入出力装置の一構成例は、前記記録装置が、前記キューごとに、当該キューが使用している前記仮想データメモリ上での仮想格納アドレスの数を示す使用アドレス数を記憶するキュー使用アドレス数メモリと、前記書込対象キューに前記通信データを書き込む際、当該通信データのデータ長に基づき、書き込みに必要となる仮想格納アドレスの数を示す必要アドレス数を算出し、前記キュー使用アドレス数メモリから取得した当該書込対象キューまたは前記キューの使用アドレス数に基づき、当該書き込みに使用可能な仮想格納アドレスの数を示す残りアドレス数を算出し、当該必要アドレス数と当該残りアドレス数とを比較することにより当該通信データの書込可否を判定し、書込可の判定に応じて前記書込制御部に対して当該通信データの書き込みを指示するアクセス調停部とをさらに備えるようにしたものである。
【発明の効果】
【００１４】
本発明によれば、多重化装置から転送された通信データを、データメモリ内に論理的に形成した複数のキューのうちキュー指定情報で指定された書込対象キューへ一時蓄積する記録装置において、データメモリをＤＲＡＭで構成した場合でも、ロウアドレスの活性化回数を低減することができる。このため、ＤＲＡＭアクセスに関する実効スループットの低下を抑制することが可能となる。
また、キュー制御情報を記憶するキュー制御メモリに、通信データ書き込み時に選択したバンクの情報を記憶でき、その情報を該当の通信データの読み出し時に使用できる。
【図面の簡単な説明】
【００１５】
【図１】第１の実施の形態にかかる通信用入出力装置の構成を示すブロック図である。
【図２】仮想データメモリの記憶例である。
【図３】キュー制御メモリの構成を示すブロック図である。
【図４】アドレスキュー管理メモリの記憶例である。
【図５】キュー先頭アドレスレジスタおよびキュー最終アドレスレジスタの記憶例である。
【図６】キュー使用アドレス数メモリの記憶例である。
【図７】第１の実施の形態にかかるＤＲＡＭアクセス部の構成を示すブロック図である。
【図８】書込制御部における書込動作を示す説明図である。
【図９】読出制御部における読出動作を示す説明図である。
【図１０】データＰ２−１読出直前（データＰ２−３書込直後）のキュー制御情報を示す説明図である。
【図１１】データＰ２−１読出時におけるキュー制御情報の変化を示す説明図である。
【図１２】データＰ２−２読出時におけるキュー制御情報の変化を示す説明図である。
【図１３】データＰ１−４書込時におけるキュー制御情報の変化を示す説明図である。
【図１４】ＤＲＡＭ書込処理を示すフローチャートである。
【図１５】ＤＲＡＭ読出処理を示すフローチャートである。
【図１６】第２の実施の形態にかかるアクセス調停部の構成を示すブロック図である。
【図１７】判定用アドレス数情報の構成例である。
【図１８】第２の実施の形態にかかる書込可否判定処理を示すフローチャートである。
【図１９】従来の通信用入出力装置（内蔵メモリ）の構成を示すブロック図である。
【図２０】キューと出力ポートとの対応を示す説明図である。
【発明を実施するための形態】
【００１６】
次に、本発明の実施の形態について図面を参照して説明する。
［第１の実施の形態］
まず、図１を参照して、本発明の第１の実施の形態にかかる通信用入出力装置１について説明する。図１は、第１の実施の形態にかかる通信用入出力装置の構成を示すブロック図である。
【００１７】
この通信用入出力装置１は、インターネット通信等で使用されて、例えばイーサネット（登録商標）のフレームデータ等の通信データを入出力するための通信用入出力装置であり、１つまたは複数の入力ポートから入力された通信データを、その通信データを出力すべき出力系統ごとに分離し、当該出力系統と対応する出力ポートの通信速度に変換して出力する機能を有している。
【００１８】
図１に示すように、通信用入出力装置１は、多重化装置（ＭＵＸ）１０、メモリアクセス制御機能内蔵型の多重分離装置（ＤＥＭＵＸ）２０、およびアクセス制御機能内蔵型の記録装置（ＭＥＭ）３０から構成されている。以下では、通信用入出力装置１で入出力する通信データがフレームデータである場合を例として説明するが、これに限定されるものではなく、パケットやＡＴＭセルなど各種の通信データを、フレームデータと同様にして入出力することも可能である。
【００１９】
多重化装置１０は、外部から順次入力されるフレームデータに、当該フレームデータを出力すべき出力系統と対応するキュー指定情報を付加して多重化する機能を有している。
記録装置３０は、多重化装置１０から転送されたフレームデータを、データメモリ内に論理的に形成した複数のキューのうち、当該フレームデータに付加されているキュー指定情報で指定された書込対象キューへ一時蓄積する機能を有している。
多重分離装置２０は、記録装置３０内のキューのうち優先制御に基づき選択した出力系統と対応する読出対象キューから、当該読出対象キューに一時蓄積されているフレームデータを読み出し、当該出力系統と対応する出力ポートの通信速度に変換して出力する機能を有している。
【００２０】
本実施の形態は、記録装置３０において、データメモリ３１をバンクごとにライトポインタを有するＤＲＡＭから構成して、ＤＲＡＭアクセス部３２が、書込対象キューにフレームデータを書き込む際、バンクのうちライトポインタに対応する書込対象ロウアドレスが活性化状態にあるバンクを書込対象バンクとして選択して当該フレームデータを書き込み、当該書込対象ロウアドレスが活性化状態にあるバンクが存在しない場合は、当該書込対象ロウアドレスが非活性化状態にあるバンクを書込対象バンクとして選択して当該書込対象ロウアドレスを活性化した後に当該フレームデータを書き込むようにしたものである。
【００２１】
本実施の形態では、図１に示すように、入力ポートＰｉｎとして２つの入力ポートＰｉｎ０，Ｐｉｎ１が設けられ、出力ポートＰｏｕｔとして２つの出力ポートＰｏｕｔ０，Ｐｏｕｔ１が設けられている場合を例として説明するが、入力ポートＰｉｎおよび出力ポートＰｏｕｔの数については、これに限定されるものではない。入力ポートＰｉｎおよび出力ポートＰｏｕｔのいずれか一方または両方を３つ以上設けることも可能であり、入力ポート数と出力ポート数が異なっていてもよい。なお、入力ポート数は、１つであってもよい。
【００２２】
［多重化装置］
次に、図１を参照して、本実施の形態にかかる通信用入出力装置１で用いられる多重化装置１０について詳細に説明する。
図１に示すように、多重化装置１０には、主な回路部として、キュー指定情報付加部１１と多重化部１２が設けられている。
【００２３】
キュー指定情報付加部１１は、入力ポートＰｉｎ０，Ｐｉｎ１ごとに設けられて、対応する入力ポートＰｉｎから入力されるフレームデータに対して、当該フレームデータの出力先に対応するキュー指定情報と、当該フレームデータのフレーム長情報（Ｂｙｔｅ）とを付加して多重化部１２へ出力する機能を有している。この際、フレーム長情報については、例えば、多重化部１２にフレームデータを出力する際、当該フレームデータの先頭から最終までのＢｙｔｅ数をフレーム長として計数したものを付加すればよい。
【００２４】
多重化部１２は、各キュー指定情報付加部１１に共通して１つ設けられて、各キュー指定情報付加部１１から出力されたフレームデータを時分割で多重化して、記録装置３０へ出力する機能を有している。
多重化装置１０において、フレームデータの出力先に対応するキューの指定については、ＩＥＥＥ８０２．１Ｄ等のブリッジ機能により実現すればよく、具体的には、ＭＡＣアドレス学習による出力ポート検索、ＶＬＡＮ−ＩＤによる出力ポート指定等が可能である（特許文献１など参照）。
【００２５】
［多重分離装置］
次に、図１を参照して、本実施の形態にかかる通信用入出力装置１で用いられる多重分離装置２０について詳細説明する。
図１に示すように、多重分離装置２０には、主な回路部として、読出部２１、振分部２２、および速度変換部２３，２４が設けられている。
【００２６】
読出部２１は、記録装置３０から取得した各キューの蓄積状況や速度変換部２３，２４から出力された読出停止指示信号を参照し、出力ポートＰｏｕｔ０，Ｐｏｕｔ１ごとの優先制御ロジックに基づいてフレームデータを優先して出力すべき出力系統を選択する機能と、当該出力系統と対応する読出対象キューからのフレームデータの読み出しを要求する読み出し要求を出力する機能と、これに応じて記録装置３０から転送されたフレームデータを、振分部２２へ出力する機能を有している。
優先制御ロジックについては、例えば各キューの容量が同じ場合であれば、読み出し可能なキューの中でキューに蓄積されている通信データの量が最も多いキューから読み出しを行う等、一般的な優先制御ロジックを用いればよい（特許文献１など参照）。
【００２７】
また、読出部２１は、記録装置３０に読み出し要求を出力する際、読み出し対象となるキューを指定するキュー指定情報に加えて、読み出しデータのデータ量を示す読出データ量情報を記録装置３０に指示する。
読出データ量情報については、例えば読み出しを行うキューのデータ蓄積量が予め設定した閾値以下の場合は、データ蓄積量に等しい値を読出データ量情報として出力し、閾値を超えていた場合は、閾値の値を読出データ量情報として出力すればよい。
【００２８】
振分部２２は、読出部２１から出力されたフレームデータを、当該フレームデータに付加されているキュー指定情報に基づいて、対応する出力ポートの速度変換部２３，２４へ振り分ける機能を有している。
速度変換部２３，２４は、出力ポートごとに設けられて、振分部２２から振り分けられたフレームデータを当該出力ポートの通信速度に変換して出力する機能と、フレームデータの出力状況に応じて読出停止指示信号を読出部２１に出力する機能とを有している。
なお、フレームデータに付加されているキュー指定情報は、振分部２２もしくは速度変換部２３，２４で削除される。
【００２９】
［記録装置］
次に、図１を参照して、本実施の形態にかかる通信用入出力装置１で用いられる記録装置３０について詳細説明する。
【００３０】
図１に示すように、記録装置３０には、主な回路部として、データメモリ３１、ＤＲＡＭアクセス部３２、キュー制御メモリ３３、書込制御部３４、読出制御部３５、キュー使用アドレス数メモリ３６、およびアクセス調停部３７が設けられている。
【００３１】
データメモリ３１は、バンク（Bank）ごとに複数のロウアドレス（Row Address）を有する一般的なＤＲＡＭ（ＤＲＡＭチップ）からなり、バンクごとのライトポインタを用いてフレームデータを記憶する機能を有している。具体的には、データメモリ３１を１つ、もしくは、複数のＤＲＡＭチップで構成して、バンクごとのライトポインタに対応させればよく、出力系統ごとにそれぞれ１つのキューを持たせる構成の他、１つの出力系統に複数のキューを持たせることも可能である。本実施の形態では、１つのＤＲＡＭチップを複数のキューで共用することになる。
【００３２】
データメモリ３１には、固有の格納アドレスを持つ複数の格納領域が設けられている。各キューはデータメモリ３１の格納アドレスと同等な仮想格納アドレスを持つ仮想データメモリの仮想格納領域を、仮想格納アドレスの連続・不連続あるいは昇順・降順に関わらず任意に連結することにより構成されている。なお、仮想格納アドレスは、ＤＲＡＭへのアクセスに用いる実際のロウアドレス、コラムアドレス（Column Address）、およびバンク番号とは独立した、フレームデータの管理に用いられるものであり、仮想的なメモリ空間におけるアドレス情報である。
図２は、仮想データメモリの記憶例である。ここでは、それぞれ固有の仮想格納アドレスＡＤＭ（０〜Ｎ：Ｎは２以上の整数）を持つ仮想格納領域ごとに、書込制御部３４から書き込まれたデータを記憶している場合のイメージを示している。
【００３３】
この際、１フレームが１仮想アドレス分のデータサイズより長い場合、１フレームは、１仮想アドレス分のデータサイズに合わせて複数のデータＤに分割され、それぞれ異なる複数の仮想格納アドレスに書き込まれる。例えば、図２の場合、バンク０の仮想格納アドレス０，１，４には、キューＰ１のデータＰ１−１，Ｐ１−２，Ｐ１−３が格納されており、バンク０の仮想格納アドレス２，３，５には、キューＰ２のデータＰ２−１，Ｐ２−２，Ｐ２−３が格納されている。これらデータの前後関係やフレームとの対応関係については、後述するアドレスキュー管理メモリで管理される。なお、１フレームが仮想格納領域のデータサイズより短い場合、フレームデータは１つの仮想格納領域に格納される。
【００３４】
ＤＲＡＭアクセス部３２は、書込制御部３４からのＤＲＡＭ書込指示に応じて、データメモリ３１内の対応するアドレスにフレームデータを書き込む機能と、読出制御部３５からのＤＲＡＭ読出指示に応じて、データメモリ３１内の対応するアドレスからフレームデータを読み出す機能とを有している。
【００３５】
ＤＲＡＭアクセス部３２は、フレームデータを書き込む際、指示されたバンクの書込対象ロウアドレスが活性化状態にある場合に、指定された仮想格納アドレス（ロウアドレスおよびコラムアドレス）にフレームデータを書き込む機能と、当該書込対象ロウアドレスが活性化状態にない場合は、当該書込対象ロウアドレスを活性化した後にフレームデータを書き込む機能とを有している。
【００３６】
また、ＤＲＡＭアクセス部３２は、フレームデータを読み出す際、指示された読出対象バンクにおいて読出対象ロウアドレスが活性化状態にある場合は、当該読出対象バンクの読出対象ロウアドレスからフレームデータを読み出し、当該読出対象バンクで読出対象ロウアドレスが活性化状態にない場合は、当該読出対象バンクの読出対象ロウアドレスを活性化した後にフレームデータを読み出す機能とを有している。
【００３７】
キュー制御メモリ３３は、例えばＳＲＡＭチップなどの半導体メモリからなり、データメモリ３１上に形成されている各キューに対するフレームデータの書き込み・読み出しを制御する際に用いる各種のキュー制御情報を記憶する機能を有している。
【００３８】
図３は、キュー制御メモリの構成を示すブロック図である。キュー制御メモリ３３は、レジスタやメモリからなる複数の記憶部を含んでおり、主な記憶部として、空きアドレスレジスタ（ＶＡＲ，ＵＡＲ）３３Ａ、アドレスキュー管理メモリ（ＱＭ）３３Ｂ、キュー先頭アドレスレジスタ（ＳＡＲ）３３Ｃ、キュー最終アドレスレジスタ（ＬＡＲ）３３Ｄ、アクセス履歴レジスタ（ＡＡＲ）３３Ｅ、および作業用アドレスレジスタ（ＴＭＰＶ，ＴＭＰＬ）３３Ｆを有している。なお、以下では理解を容易とするため、レジスタ名を変数名として用いて説明する場合がある。
【００３９】
空きアドレスレジスタ（ＶＡＲ，ＵＡＲ）３３Ａは、各キューに共通して、バンク毎に次書込アドレスＶＡＲと未書込アドレスＵＡＲとを記憶する機能を有している。このうち、ＶＡＲ（Valid Address Register）は、多重化装置１０から次に受け取ったフレームデータを書き込む際、当該フレームデータを次に書き込むべき仮想格納アドレスを示すバンク毎のアドレス情報である。また、ＵＡＲ（Unused Address Register）は、初期化後にまだ一度もデータが書き込まれていない同一バンク内の未使用の仮想格納アドレスのうちの先頭（若番）を示す格納アドレスである。
【００４０】
本実施の形態では、フレームデータ書き込み時、各バンク内では、仮想格納アドレスの若番から順に使用することを基本としており、フレームデータの読み出しにより空き状態となった仮想格納アドレスについては、未使用の仮想格納アドレスより優先して再使用するものとする。なお、再使用する仮想格納アドレスの順序については、例えば直近に空き状態となった仮想格納アドレスから順に再使用するなど、任意の順序でよく、若番の順に限定されない。
【００４１】
アドレスキュー管理メモリ（ＱＭ）３３Ｂは、仮想格納アドレスＡＤＭごとに、後続仮想アドレスＡＤＤ（ADDress）とポインタＰＮ（Pointer of QM）とを記憶する機能を有している。
図４は、アドレスキュー管理メモリの記憶例である。このうち、ＡＤＤは、当該仮想格納アドレスに書き込まれた通信データに後続する通信データが格納されている仮想格納アドレス（バンク情報を含む）である。また、ＰＮは、当該仮想格納アドレスに格納されているデータにフレームデータの最終データを含むか否かを示す情報（フレーム終端フラグ：ＥｏＦ）である。
【００４２】
キュー先頭アドレスレジスタ（ＳＡＲ）３３Ｃは、キューごとに、キュー先頭アドレスＳＡＲ（Start Address register of PM）を記憶する機能を有している。
キュー最終アドレスレジスタ（ＬＡＲ）３３Ｄは、キューごとに、キュー最終アドレスＬＡＲ（Last Address register of PM）を記憶する機能を有している。
【００４３】
図５は、キュー先頭アドレスレジスタおよびキュー最終アドレスレジスタの記憶例である。ここでは、キューを識別するためのキューＩＤ（キュー番号）ごとに、ＳＡＲとＬＡＲを記憶している。このうち、ＳＡＲは、当該キューのフレームデータが書き込まれている仮想格納アドレスの先頭を示すアドレス情報（バンク情報を含む）である。また、ＬＡＲは、当該キューのフレームデータが書き込まれている仮想格納アドレスの最終を示すアドレス情報（バンク情報を含む）である。
【００４４】
アクセス履歴レジスタ（ＡＡＲ）３３Ｅは、最後に書き込み指示、もしくは、読み出し指示を行った仮想格納アドレス（バンク情報を含む）をＡＡＲ＿１として記録し、ＡＡＲ＿ｎはＡＡＲ＿１の更新時にＡＡＲ＿（ｎ−１）の値に更新する（ｎは２以上の整数）。すなわち、直近ｎ回分の書き込み指示、もしくは、読み出し指示の履歴を表示する。
【００４５】
作業用アドレスレジスタ（ＴＭＰＶ，ＴＭＰＬ）３３Ｆは、各キューに共通して、作業用次書込アドレスＴＭＰＶ（Temporary register for VAR）と作業用キュー最終アドレスＴＭＰＬ（Temporary register for LAR）を記憶する機能を有している。
このうち、ＴＭＰＶは、直前に書き込み・読み出しを行ったキューの次書込アドレスＶＡＲを示すアドレス情報（バンク情報を含む）である。また、ＴＭＰＬは、最後に書き込みを行ったキューの直前（更新前）のキュー最終アドレスＬＡＲを示すアドレス情報（バンク情報を含む）である。これらは、それぞれのデータの書き込み・読み出し作業の処理手順の関係から一時的にアドレス情報を保持するために使用されるものであるが、次の書き込み・読み出し作業に用いることもある。
【００４６】
書込制御部３４は、アクセス調停部３７からの書き込み指示に応じて、アクセス履歴レジスタ（ＡＡＲ）とバンク毎のＶＡＲ、ＵＡＲに基づいて最適なバンクのＶＡＲを選択し、仮想格納アドレス（ＴＭＰＶ）を指定した、フレームデータの書き込みを指示するＤＲＡＭ書込指示を、ＤＲＡＭアクセス部３２へ出力する機能を有している。
【００４７】
バンク（ＶＡＲ）の選択は、例えば、以下の様に行う。
書込制御部３４はＡＡＲを用いて各バンクでどのロウアドレスが活性化されているのかを管理する。
各バンクのＶＡＲのロウアドレスの内、活性化されているものを選択する。ただし、該当のバンクのＵＡＲとＶＡＲの両方がバンク毎のメモリ容量の上限値に該当している場合はそのバンクは選択しない。
【００４８】
例えば、まず、バンク番号とロウアドレスの両方がＡＡＲ_１と同じ値のＶＡＲがあれば、そのＶＡＲのロウアドレスが活性化されているので、そのＶＡＲを選択し、なければ、バンク番号とロウアドレスの両方がＡＡＲ_2と同じ値のＶＡＲがあれば、そのＶＡＲのロウアドレスが活性化されているので、そのＶＡＲを選択する。ただし、ＡＡＲ_2のバンク番号がＡＡＲ_１のバンク番号と同じ場合は、そのＶＡＲのロウアドレスは活性化されていないので、そのバンク番号のＶＡＲは選択しない。
【００４９】
ＡＡＲ_２までの比較で未選択の場合は、バンク番号とロウアドレスの両方がＡＡＲ_３と同じ値のＶＡＲがあれば、そのＶＡＲのロウアドレスが活性化されているので、そのＶＡＲを選択する。ただし、ＡＡＲ_３のバンク番号がＡＡＲ_１もしくはＡＡＲ_２のバンク番号と同じ場合は、そのＶＡＲのロウアドレスは活性化されていないので、そのバンク番号のＶＡＲは選択しない。
【００５０】
以下、同様に、ＡＡＲ_ｎまで比較を行い、バンク番号とロウアドレスの両方が同じ値のＶＡＲが有り、かつ、選択可能であれば、そのＶＡＲを選択する。なお、ＡＡＲ_ｎとの比較を行う場合、ＡＡＲ_ｎのバンク番号がＡＡＲ_１からＡＡＲ_（ｎ−１）のいずれかと同じ場合は、そのＶＡＲのロウアドレスは活性化されていないので、そのバンク番号のＶＡＲは選択しない。
該当のロウアドレスが活性化されているもので、かつ、選択可能なものが無い場合は、例えば、どのＡＡＲにも記録されていないバンクのＶＡＲを選択、もしくは、ＡＡＲに記録されているバンクの内で残っている履歴が最も古いバンクのＶＡＲを選択する。
【００５１】
読出制御部３５は、アクセス調停部３７からの読み出し指示に応じて、キュー制御メモリ３３のキュー制御情報に基づいて、仮想格納アドレス（ＳＡＲ）を指定した、読出対象キューからの先頭データの読み出しを指示するＤＲＡＭ読出指示を、ＤＲＡＭアクセス部３２へ出力する機能と、ＤＲＡＭアクセス部３２を介して読出対象キューから読み出したデータをフレーム終端フラグおよびキュー指定情報とともに多重分離装置２０へ転送する機能とを有している。
【００５２】
キュー使用アドレス数メモリ３６は、例えばＳＲＡＭチップなどの半導体メモリからなり、キューごとに、当該キューに蓄積されているフレームデータが使用している仮想アドレス数ＮＫを記憶する機能と、多重分離装置２０およびアクセス調停部３７からの要求に応じて、指定されたキューの仮想アドレス数ＮＫを出力する機能とを有している。
図６は、キュー使用アドレス数メモリの記憶例である。ここでは、キューを識別するためのキューＩＤ（キュー番号）ごとに、当該キューの仮想アドレス数ＮＫが記憶されている。
【００５３】
アクセス調停部３７は、多重化装置１０から転送されたフレームデータを受け取り、当該フレームデータに付加されているフレーム長情報に基づき、フレームデータを１仮想アドレス分のデータサイズで複数のデータＤに分割することにより書込回数を計算する機能と、この書込回数分だけ、それぞれのデータＤに関する、当該フレームデータに付加されているキュー指定情報で指定された書込対象キューへの書き込みを指示する書き込み指示を書込制御部３４に出力する機能と、当該フレームデータの書き込みにより増加する仮想アドレス数を、キュー使用アドレス数メモリ３６の当該書込対象キューの仮想アドレス数ＮＫに加算する機能とを有している。
【００５４】
また、アクセス調停部３７は、多重分離装置２０からの読み出し要求に応じて、当該読み出し要求の読出データ量情報で指定されたデータ量を１仮想アドレス分のデータサイズで分割することにより読出回数を計算する機能と、この読出回数分だけ、当該読み出し要求のキュー指定情報で指定された読出対象キューからのフレームデータの読み出しを指示する読み出し指示を読出制御部３５へ出力する機能と、当該フレームデータの読み出しにより減少する仮想アドレス数を、キュー使用アドレス数メモリ３６の当該書込対象キューの仮想アドレス数ＮＫから減算する機能と、フレームデータの書き込みとの競合を調停し、読み出し可能なタイミングで読み出し指示を出力する機能とを有している。
【００５５】
［ＤＲＡＭアクセス部］
次に、図７を参照して、本実施の形態にかかる記録装置３０で用いられるＤＲＡＭアクセス部３２について説明する。図７は、第１の実施の形態にかかるＤＲＡＭアクセス部の構成を示すブロック図である。
ＤＲＡＭアクセス部３２には、主な回路部として、ＦＩＦＯメモリ３２Ａ、活性化処理部３２Ｂ、アクセス種別判定部３２Ｃ、ＤＲＡＭ書込部３２Ｄ、およびＤＲＡＭ読出部３２Ｅが設けられている。
【００５６】
ＦＩＦＯメモリ３２Ａは、一般的なＦＩＦＯメモリからなり、書込制御部３４からのＤＲＡＭ書込指示および読出制御部３５からのＤＲＡＭ読出指示を混在させて蓄積する機能と、活性化処理部３２Ｂによるロウアドレスの活性化完了後、蓄積していたＤＲＡＭ書込指示またはＤＲＡＭ読出指示を入力順に読み出してアクセス種別判定部３２Ｃへ出力する機能を有している。この際、アクセス種別判定のための情報として、書込制御部３４からのＤＲＡＭ書込指示なのか、もしくは、読出制御部３５からのＤＲＡＭ読出指示なのかを示す情報を、それぞれの指示と合わせてＦＩＦＯメモリ３２Ａに書き込んで、その情報もアクセス種別判定部３２Ｃに出力するようにしてもよい。
【００５７】
なお、後述する図１６に示すアクセス調停部３７を使用する場合、書込制御部３４からのＤＲＡＭ書込指示と読出制御部３５からのＤＲＡＭ読出指示が同時に入力されることはないはずであるが、これらが同時に入力された場合には、ＦＩＦＯメモリ３２Ａに対するＤＲＡＭ書込指示の書込みを優先し、ＦＩＦＯメモリ３２Ａに対するＤＲＡＭ読出指示の書込みを待たせるようにすればよい。
【００５８】
活性化処理部３２Ｂは、ＦＩＦＯメモリ３２ＡにＤＲＡＭ書込指示が蓄積された場合、当該書込対象ロウアドレスが活性化状態にない場合は、当該書込対象ロウアドレスを活性化する機能を有している。
【００５９】
また、活性化処理部３２Ｂは、ＦＩＦＯメモリ３２ＡにＤＲＡＭ読出指示が蓄積された場合、当該読出対象バンクにおいてＤＲＡＭ読出指示で指定された読出対象ロウアドレスが活性化状態にない場合には、当該読出対象バンクにおいて読出対象ロウアドレスを活性化する機能と、当該読出対象バンクにおいて読出対象ロウアドレスとは異なるロウアドレスが活性化状態にある場合は、当該ロウアドレスへのアクセス完了に応じて、読出対象ロウアドレスを活性化する機能とを有している。
【００６０】
アクセス種別判定部３２Ｃは、ＦＩＦＯメモリ３２Ａから出力されたＤＲＡＭ書込指示をＤＲＡＭ書込部３２Ｄへ振り分けて出力する機能と、ＦＩＦＯメモリ３２Ａから出力されたＤＲＡＭ読出指示をＤＲＡＭ読出部３２Ｅへ振り分けて出力する機能とを有している。
【００６１】
ＤＲＡＭ書込部３２Ｄは、入力されたＤＲＡＭ書込指示における書込対象ロウアドレスと書込対象バンクとの組み合わせに基づき、指示されたコラムアドレスに、ＤＲＡＭ書込指示で指定されたフレームデータ（データＤ）を書き込む機能を有している。
【００６２】
この際、１格納アドレス分のフレームデータ（データＤ）の書き込みに、複数のコラムアドレスが必要な場合は、ＤＲＡＭの機能であるバーストモードを用いて、連続するコラムアドレスに書き込みを行うようにしてもよく、書込所要時間を短縮できる。
また、データメモリ３１に対してＥｏＦ値（ＰＮ）の書き込みも行う場合は、フレームデータの書き込みと同時に行えばよい。
【００６３】
ＤＲＡＭ読出部３２Ｅは、入力されたＤＲＡＭ読出指示における読出対象ロウアドレスと読出対象バンクとの組み合わせに基づき、読出対象バンクの読出対象ロウアドレスのうち、指示されたコラムアドレスからフレームデータ（データＤ）を読み出して、キュー指定情報とともに読出制御部３５へ出力する機能を有している。
【００６４】
この際、１仮想格納アドレス分のフレームデータ（データＤ）の読み出しに、複数のコラムアドレスが必要な場合は、ＤＲＡＭの機能であるバーストモードを用いて、連続するコラムアドレスから読み出しを行うようにしてもよく、読出所要時間を短縮できる。
また、データメモリ３１に対してＥｏＦ値（ＰＮ）が書き込まれている場合は、フレームデータの読み出しと同時にＥｏＦ値の読み出しを行えばよい。
【００６５】
読み出したＥｏＦ値は、フレームデータおよびキュー指定情報とともに読出制御部３５へ出力すればよい。なお、データメモリ３１にＥｏＦ値を書き込まない場合は、アドレスキュー管理メモリ（ＱＭ）３３ＢにＥｏＦ値を書き込んでおき、読出制御部３５がキュー指定情報とともにこのＥｏＦ値をＤＲＡＭアクセス部３２に出力し、ＤＲＡＭ読出部３２Ｅがデータメモリ３１から読み出したフレームデータとともに、アクセス種別判定部３２Ｃを介して受け取ったＥｏＦ値を読出制御部３５へ出力すればよい。
【００６６】
［第１の実施の形態の動作］
次に、図８および図９を参照して、本実施の形態にかかる通信用入出力装置１で用いられる記録装置３０の動作について説明する。
図８は、書込制御部における書込動作を示す説明図である。図９は、読出制御部における読出動作を示す説明図である。
【００６７】
［書き込み動作］
まず、図８を参照して、記録装置３０の書込制御部３４における書き込み動作について説明する。
書込制御部３４は、アクセス調停部３７からの書き込み指示に応じて、図８の処理動作を実行する。新たなデータを書込対象キューに書き込んだ場合、各キューによるデータメモリ３１の格納アドレスの共用という観点からすれば、キュー制御情報における主な変化としては、書き込み前後において、書込対象キューに関するキュー最終アドレスＬＡＲと、書込前のキュー最終アドレスに関する後続仮想アドレスＡＤＤと、各キューに共通する次書込アドレスＶＡＲ（選択されたバンクのＶＡＲのみ）と、アクセス履歴レジスタ（ＡＡＲ）とが変化する。なお、書込対象キューに対する最初の書き込みである場合は、書込対象キューに関するキュー先頭アドレスＳＡＲも変化する。
【００６８】
このため、図８の処理動作において、書込制御部３４は、選択されたバンクの次書込アドレスＶＡＲに対する指定データの書き込み（書き込み指示の出力）、書込対象キューに関するキュー最終アドレスＬＡＲの更新、書込前のキュー最終アドレスに関する後続仮想アドレスＡＤＤの更新、各キューに共通する次書込アドレスＶＡＲ（選択されたバンクのＶＡＲのみ）の更新を行う。なお、書込対象キューに対する最初の書き込みである場合は、書込対象キューに関するキュー先頭アドレスの更新も行う。これら更新の詳細については動作例に基づいて後述する。
【００６９】
この際、書込制御部３４は、キュー制御メモリ３３にアクセスすることにより、図８に示すステップＷ１〜Ｗ７を実行する。すなわち、ＬＡＲ保持（Ｗ１）、ＬＡＲ，ＳＡＲ更新（Ｗ２）、ＶＡＲ保持（Ｗ３）、ＡＤＤ更新（Ｗ４）、ＶＡＲ更新（Ｗ５）、ＰＮ更新（Ｗ６）、データ等の出力（Ｗ７）の順で処理を実行する。なお、図８の処理順序は、処理効率を考慮したものであるが、他の処理順序であってもよい。
【００７０】
［読み出し動作］
次に、図９を参照して、記録装置３０の読出制御部３５における読み出し動作について説明する。
読出制御部３５は、アクセス調停部３７からの読み出し指示に応じて、図９の処理動作を実行する。新たなデータを読出対象キューから読み出した場合、各キューによるデータメモリ３１の格納アドレスの共用という観点からすれば、キュー制御情報における主な変化としては、読み出し前後において、読出対象キューに関するキュー先頭アドレスＳＡＲと、各キューに共通する次書込アドレスＶＡＲ（読出対象バンクのＶＡＲのみ）と、新たな次書込アドレスＶＡＲ（読出対象バンクのＶＡＲのみ）に関する後続仮想アドレスＡＤＤと、アクセス履歴レジスタ（ＡＡＲ）とが変化する。
【００７１】
このため、図９の処理動作において、読出制御部３５は、読出対象キューに関するキュー先頭アドレスＳＡＲに対するＥｏＦ（End of Frame：フレーム終端フラグ）の読み出し、読出対象キューに関するキュー先頭アドレスＳＡＲの更新、各キューに共通する次書込アドレスＶＡＲ（読出対象バンクのＶＡＲのみ）の更新、読出済仮想格納アドレスに関する後続仮想アドレスＡＤＤの更新、読み出し指示の出力を行う。これら更新の詳細については動作例に基づいて後述する。
【００７２】
この際、読出制御部３５は、キュー制御メモリ３３にアクセスすることにより、図９に示すステップＲ１〜Ｒ５を実行する。すなわち、ＥｏＦ出力（Ｒ１）、ＶＡＲ保持（Ｒ２）、ＶＡＲ更新（Ｒ３）、ＳＡＲ更新（Ｒ４）、後続仮想アドレス更新（Ｒ５）、読み出し指示の出力の順で処理を実行する。なお、図９の処理順序は、処理効率を考慮したものであるが、他の処理順序であってもよい。
【００７３】
［動作例］
次に、図１０〜図１３を参照して、記録装置３０におけるフレームデータの書込動作および読出動作について、キューＰ２を読出・書込対象キューとし、このキューＰ２にデータＰ２−３が書込まれた後、データＰ２−１、Ｐ２−２を読み出し、さらにデータＰ１−４を書き込む場合を例に説明する。
【００７４】
図１０は、データＰ２−１読出直前（データＰ２−３書込直後）のキュー制御情報を示す説明図である。ここでは、データＰ２−１読出直前すなわちデータＰ２−３が書込まれた直後におけるキュー制御情報が示されている。この状態において、仮想データメモリのうち、バンク０の仮想格納アドレス「０，１，４」にキューＰ１のデータＰ１−１，Ｐ１−２，Ｐ１−３が書き込まれており、バンク０の仮想格納アドレス「２，３，５」にキューＰ２のデータＰ２−１，Ｐ２−２，Ｐ２−３が書き込まれている。また、バンク０の仮想格納アドレス「６〜Ｎ」とバンク１は未使用である。
【００７５】
したがって、バンク０の次書込アドレスＶＡＲは「６」となり、バンク０の未書込アドレスＵＡＲも「６」である。また、キューＰ１のデータＰ１−１，Ｐ１−２，Ｐ１−３の順序に応じて、バンク０の仮想格納アドレス「０，１」に関する後続仮想アドレスＡＤＤはバンク０の「１，４」となり、キューＰ２のデータＰ２−１，Ｐ２−２，Ｐ２−３の順序に応じて、バンク０の仮想格納アドレス「２，３」に関する後続仮想アドレスＡＤＤはバンク０の「３，５」となっている。なお、バンク０の仮想格納アドレス「０，２」のポインタＰＮが「０」となっており、データＰ１−１，Ｐ２−１には、フレーム終端が含まれていないことがわかる。
なお、バンク１の次書込アドレスＶＡＲと未書込アドレスＵＡＲはともに初期値の０である。バンク１のＡＤＤ、ＰＮには何も格納されていない。
【００７６】
また、キューＰ１のキュー先頭アドレスＳＡＲは、データＰ１−１の仮想格納アドレス「バンク０の０」を示し、キュー最終アドレスＬＡＲは、データＰ１−３の仮想格納アドレス「バンク０の４」を示している。また、キューＰ２のキュー先頭アドレスＳＡＲは、データＰ２−１の仮想格納アドレス「バンク０の２」を示し、キュー最終アドレスＬＡＲは、データＰ２−３の仮想格納アドレス「バンク０の５」を示している。なお、作業用次書込アドレスＴＭＰＶと作業用キュー最終アドレスＴＭＰＬには、それぞれ「バンク０の５」と「バンク０の３」が格納されている。
【００７７】
図１０に示した状態において、キューＰ２のデータＰ２−１を読み出した場合、キュー制御情報は、図１１のように変化する。図１１は、データＰ２−１読出時におけるキュー制御情報の変化を示す説明図である。
【００７８】
まず、キューＰ２に関するキュー先頭アドレスＳＡＲが示す読出対象仮想アドレス「バンク０の２」からデータＰ２−１が読み出されるため、読出対象仮想アドレス「バンク０の２」のデータＤは空き状態となり、キューＰ２に関するデータはＰ２−２，Ｐ２−３の２つとなる。これにより、Ｐ２−２がキューＰ２の先頭データとなり、キュー先頭位置が仮想格納アドレス「バンク０の２」から「バンク０の３」に変化するため、キューＰ２に関するキュー先頭アドレスＳＡＲが「バンク０の２」から「バンク０の３」に更新される。
【００７９】
また、読出対象仮想アドレス「バンク０の２」のデータＤは空き状態となったため、この仮想格納アドレス「バンク０の２」がバンク０用の次データの書込位置となる。これにより、バンク０用の次書込アドレスＶＡＲが「６」から「２」に更新される。また、これに伴って、旧次書込アドレスＶＡＲ「６」（バンク０用）と新次書込アドレスＶＡＲ「２」（バンク０用）との順序関係を維持するため、仮想格納アドレス「バンク０の２」の後続仮想アドレスＡＤＤが「バンク０の３」から「バンク０の６」に更新される。これにより、作業用次書込アドレスＴＭＰＶと作業用キュー最終アドレスＴＭＰＬには、それぞれ「バンク０の６」と「バンク０の３」が格納される。
【００８０】
図１１に示した状態において、キューＰ２のデータＰ２−２を読み出した場合、キュー制御情報は、図１２のように変化する。図１２は、データＰ２−２読出時におけるキュー制御情報の変化を示す説明図である。
【００８１】
まず、キューＰ２に関するキュー先頭アドレスＳＡＲが示す読出対象仮想アドレス「バンク０の３」からデータＰ２−２が読み出されるため、読出対象仮想アドレス「バンク０の３」のデータＤは空き状態となり、キューＰ２に関するデータはＰ２−３の１つとなる。これにより、Ｐ２−３がキューＰ２の先頭データとなり、キュー先頭位置が仮想格納アドレス「バンク０の３」から「バンク０の５」に変化するため、キューＰ２に関するキュー先頭アドレスＳＡＲが「バンク０の３」から「バンク０の５」に更新される。
【００８２】
また、読出対象仮想アドレス「バンク０の３」のデータＤは空き状態となったため、この仮想格納アドレス「バンク０の３」がバンク０用の次データの書込位置となる。これにより、バンク０用の次書込アドレスＶＡＲが「２」から「３」に更新される。また、これに伴って、旧次書込アドレスＶＡＲ「２」（バンク０用）と新次書込アドレスＶＡＲ「３」（バンク０用）との順序関係を維持するため、仮想格納アドレス「バンク０の３」の後続仮想アドレスＡＤＤが「バンク０の５」から「バンク０の２」に更新される。これにより、作業用次書込アドレスＴＭＰＶと作業用キュー最終アドレスＴＭＰＬには、それぞれ「バンク０の２」と「バンク０の３」が格納される。
【００８３】
図１２に示した状態において、キューＰ１のデータＰ１−４を書き込みした場合、キュー制御情報は、図１３のように変化する。図１３は、データＰ１−４書込時におけるキュー制御情報の変化を示す説明図である。
【００８４】
まず、バンクを選択する。ＡＡＲに記録されている仮想アドレスはバンク0の0〜5のみであり、このケースでは、活性化されているバンクはバンク0のみであり、活性化されているロウアドレスはバンク0のＶＡＲのロウアドレスと一致する。従って、バンク０を選択して書き込みを行ってもよいが、直前のアクセスが読み出しであることを考慮してここでは別のバンク（バンク１）を選択する。
なお、このケースでバンク０を選択しない理由は、ＤＲＡＭの仕様上、読み出し後の同一バンクに書き込みを行う場合に待ち時間が発生し、実効スループットが低下するためである。
【００８５】
バンク１の次書込アドレスＶＡＲが示す書込対象仮想アドレス「０」にデータＰ１−４が書き込まれるため、Ｐ１−４がキューＰ１の新たな最終データとなり、キュー最終位置が仮想格納アドレス「バンク０の４」から「バンク１の０」に変化するため、キューＰ１のキュー最終アドレスＬＡＲが「バンク０の４」から「バンク１の０」に更新される。
【００８６】
また、書込前にキュー最終データであったＰ１−３にＰ１−４が後続することになるため、Ｐ１−３の仮想格納アドレス「バンク０の４」の後続仮想アドレスとしてＰ２−４の仮想格納アドレス「バンク１の０」が設定される。また、書込前の次書込アドレスＶＡＲ（バンク１用）にＰ１−４が書き込まれたため、バンク１の次書込アドレスＶＡＲが「０」から「１」に更新される。なお、バンク１のＵＡＲも「０」から「１」に更新され、バンク０のＶＡＲとＵＡＲは更新されない。これにより、作業用次書込アドレスＴＭＰＶと作業用キュー最終アドレスＴＭＰＬには、それぞれ「バンク１の０」と「バンク０の４」が格納される。
【００８７】
［ＤＲＡＭ書込動作］
次に、図１４を参照して、本実施の形態にかかるＤＲＡＭアクセス部３２におけるＤＲＡＭ書込動作について説明する。図１４は、ＤＲＡＭ書込処理を示すフローチャートである。
ＤＲＡＭアクセス部３２は、書込制御部３４からのＤＲＡＭ書込指示に応じて、図１４のＤＲＡＭ書込処理を実行する。
【００８８】
まず、活性化処理部３２Ｂは、ＦＩＦＯメモリ３２Ａに蓄積されたＤＲＡＭ書込指示で指定された書込対象ロウアドレスが活性化状態にあるか確認し（ステップ１００）、書込対象ロウアドレスが活性化状態にない場合は（ステップ１００：ＮＯ）、書込対象ロウアドレスの活性化を行って（ステップ１０１）、活性化処理を完了する。なお、書込対象ロウアドレスが活性化状態にある場合（ステップ１００：ＹＥＳ）、何もせず活性化処理を完了する。
【００８９】
活性化処理部３２Ｂでの活性化処理を完了後、ＤＲＡＭ書込指示はＦＩＦＯメモリ３２Ａから出力され、アクセス種別判定部３２Ｃを介してＤＲＡＭ書込部３２Ｄに入力される。
これに応じて、ＤＲＡＭ書込部３２Ｄは、入力されたＤＲＡＭ書込指示に対応するコラムアドレスに、ＤＲＡＭ書込指示で指定されたフレームデータ（データＤ）を書き込んだ後（ステップ１０２）、一連のＤＲＡＭ書込処理を終了する。
【００９０】
本実施の形態では、データメモリ３１を構成するＤＲＡＭにフレームデータを書き込む際、書込制御部３４により、ＤＲＡＭが持つ各バンクのうちから、書込対象ロウアドレスが活性化状態にあるバンクが書込対象バンクとして優先的に選択される。これにより、同一バンクの異なるロウアドレスへの書き込みが発生する確率が低減されることになる。このため、フレームデータ書込時におけるロウアドレスの活性化や、異なるロウアドレスに対するアクセス完了を待つ回数が削減されることになり、ＤＲＡＭアクセスの実効スループットの低下が抑制される。
【００９１】
［ＤＲＡＭ読出動作］
次に、図１５を参照して、本実施の形態にかかるＤＲＡＭアクセス部３２におけるＤＲＡＭ読出動作について説明する。図１５は、ＤＲＡＭ読出処理を示すフローチャートである。
ＤＲＡＭアクセス部３２は、読出制御部３５からのＤＲＡＭ読出指示に応じて、図１５のＤＲＡＭ読出処理を実行する。
【００９２】
まず、活性化処理部３２Ｂは、ＦＩＦＯメモリ３２Ａに蓄積されたＤＲＡＭ読出指示で指定された読出対象バンクにおいて、読出対象ロウアドレスが活性化状態にあるか確認し（ステップ１１０）、読出対象ロウアドレスが活性化状態にある場合（ステップ１１０：ＹＥＳ）、何もせず活性化処理を完了する。
【００９３】
活性化処理部３２Ｂでの活性化処理を完了後、ＤＲＡＭ読出指示はＦＩＦＯメモリ３２Ａから出力され、アクセス種別判定部３２Ｃを介してＤＲＡＭ読出部３２Ｅに入力される。
これに応じて、ＤＲＡＭ読出部３２Ｅは、入力されたＤＲＡＭ読出指示に対応する読出対象バンクの読出対象ロウアドレスのうち、指示されたコラムアドレスからフレームデータ（データＤ）を読み出した後（ステップ１１４）、ＤＲＡＭ読出処理を終了する。
【００９４】
また、読出対象バンクの読出対象ロウアドレスが活性化状態にない場合（ステップ１１０：ＮＯ）、活性化処理部３２Ｂは、読出対象バンクにおいて異なるロウアドレスが活性化状態にあるか確認する（ステップ１１１）。
ここで、異なるロウアドレスが活性化状態にない場合（ステップ１１１：ＮＯ）、活性化処理部３２Ｂは、読出対象バンクの読出対象ロウアドレスを活性化し（ステップ１１３）、活性化処理を完了する。これにより、ＤＲＡＭ読出部３２Ｅにおいて、活性化された読出対象ロウアドレスからの読み出しが行われることになる。
【００９５】
また、異なるロウアドレスが活性化状態にある場合（ステップ１１１：ＹＥＳ）、活性化処理部３２Ｂは、異なるロウアドレスへのアクセスが完了するまで待機した後（ステップ１１２）、ステップ１１３へ移行して、前述と同様に読出対象ロウアドレスの活性化を行う。
【００９６】
このように、データメモリ３１を構成するＤＲＡＭからフレームデータを読み出す際、読出対象となるフレームデータが特定のバンクに書き込まれていることから、書き込み時のように、ロウアドレスが活性化状態にあるバンクを選択することはできない。このため、同一バンクの異なるロウアドレスからの読み出しや、書き込み後の同一バンクからの読み出しにおいて待ち時間が発生するものとなる。なお、同一バンクの異なるロウアドレスからの読み出しについては、異なるロウアドレスからの読み出しが連続しないように、例えば、両者の間に書き込みが挿入されるよう処理間隔をあけるようにしてもよい。
【００９７】
［第１の実施の形態の効果］
このように、本実施の形態は、記録装置３０において、データメモリ３１をバンクごとにライトポインタを有するＤＲＡＭから構成して、書込対象キューにフレームデータを書き込む際、バンクのうちライトポインタに対応する書込対象ロウアドレスが活性化状態にあるバンクを書込対象バンクとして選択して当該フレームデータを書き込み、当該書込対象ロウアドレスが活性化状態にあるバンクが存在しない場合は、当該書込対象ロウアドレスが非活性化状態にあるバンクを書込対象バンクとして選択して当該書込対象ロウアドレスを活性化した後に当該フレームデータを書き込むようにしたものである。
【００９８】
一般に、ＤＲＡＭでは、任意のバンクの任意のロウアドレスにデータを書き込む場合、当該バンクにおいて当該ロウアドレスを活性化する必要があり、同一バンクの異なるロウアドレスにアクセスする場合には、当該ロウアドレスを用いたアクセスが完了するのを待ってから、新たなロウアドレスを活性化する必要があるため、同一バンクへのアクセスにおいて、ロウアドレスの活性化に起因して比較的大きな待ち時間が発生する。具体的には、同一バンクの異なるロウアドレスへのアクセスが連続した場合である。その他に待ち時間が発生する条件として、読み出し後の同一バンクに書き込みを行う場合、および、書き込み後の同一バンクから読み出しを行う場合がある。
【００９９】
本実施形態によれば、データメモリ３１を構成するＤＲＡＭにフレームデータを書き込む際、ＤＲＡＭが持つ各バンクのうちから、書込対象ロウアドレスが活性化状態にあるバンクが書込対象バンクとして優先的に選択される。
これにより、同一バンクの異なるロウアドレスへの書き込みが発生する確率を低減することができる。したがって、フレームデータ書込時におけるロウアドレスの活性化や、異なるロウアドレスに対するアクセス完了を待つ回数を低減させることができ、ＤＲＡＭアクセスに関する実効スループットの低下を抑制することが可能となる。
【０１００】
また、本実施の形態において、記録装置３０において、仮想格納アドレスごとに、当該仮想格納アドレスに書き込まれた通信データに後続する通信データの仮想格納アドレスを示す後続アドレスを記憶し、キューごとに、当該キューの通信データが書き込まれている仮想格納アドレスの先頭および最終を示すキュー先頭アドレスおよびキュー最終アドレスを記憶し、各キューに共通して、次に通信データを書き込むべき仮想格納アドレスを示す次書込アドレスをバンクごとに記憶するようにしてもよい。
【０１０１】
これに加えて、書込制御部３４が、書込対象キューに通信データを書き込む（書き込み指示を行う）際、選択されたバンクの次書込アドレスからなる書込対象仮想アドレスに当該通信データを書き込み、当該書込対象キューのキュー最終アドレス、書込前のキュー最終アドレスに関する後続仮想アドレス、および選択されたバンクの次書込アドレスをそれぞれ更新し、読出制御部３５が、読出対象キューから通信データを読み出す（読み出し指示を行う）際、当該読出対象キューのキュー先頭アドレスからなる読出対象仮想アドレス（バンク情報を含む）から当該通信データを読み出し、当該読出対象キューのキュー先頭アドレス、読出対象バンクの次書込アドレス、および新たな次書込アドレス（読出対象バンク用）に関する後続仮想アドレスをそれぞれ更新するようにしてもよい。
【０１０２】
これにより、各キューのフレームデータが、空き状態にある仮想格納アドレスに順次書き込まれ、フレームデータが読み出された仮想格納アドレスが再び空き状態として管理されることになる。またキューごとに書き込まれた順序でフレームデータの仮想格納アドレスが管理されることになる。空き状態にある仮想格納アドレスについては、複数のキューで共用することができ、従来のキューごとに予めアドレス範囲を固定的に確保しておく場合と比較して、メモリの使用効率を高めることが可能となる。このため、メモリ容量の増大を行う必要がなくなり、結果として回路規模やコストの増大を抑制することが可能となる。
【０１０３】
また、本実施の形態は、ＱＭ内のＡＤＤ値等の初期値を設定する必要が無いという特徴がある。本実施の形態において、通信用入出力装置の起動時に初期値を設定する必要がある情報はＶＡＲ、ＵＡＲと、ＡＡＲのみである（図８の「Initialization」を参照）。従って、初期設定を行うための回路の規模、もしくは、初期設定を行うためのソフトウエアの規模が極めて小さく、初期設定に要する時間も極めて小さいという効果が有る。
なお、図８等において、ＥｏＦ値格納用のＰＮをＱＭ内に搭載する場合を例示しているが、ＰＮをＤＲＡＭ内に搭載することも可能である。
【０１０４】
［第２の実施の形態］
次に、図１６を参照して、本発明の第２の実施の形態にかかる通信用入出力装置１について説明する。図１６は、第２の実施の形態にかかるアクセス調停部の構成を示すブロック図である。
【０１０５】
第１の実施の形態にかかる通信用入出力装置１において、仮想データメモリの仮想格納アドレスを複数のキューで共用するようにした際に、例えば、特定の出力系統に関するフレームデータが多量に入力された場合、仮想データメモリの仮想格納アドレスが当該出力系統のキューにより占有されてしまうという場合がある。このような格納アドレスの占有は、第１の実施の形態に限定されるものではなく、格納アドレスを複数のキューで共用する構成であれば、いずれの構成であっても発生しうる。したがって、このような格納アドレスの占有が発生した場合、他の出力系統のキューが十分な格納アドレス数を使用できず、フレームデータの破棄が発生しやすくなり、通信品質が劣化する原因となる。
【０１０６】
本実施の形態は、このような複数のキューによる格納アドレスの共用時における、特定キューによる格納アドレスの占有を回避することを目的とし、記録装置３０において、アクセス調停部３７が、書込対象キューにフレームデータを書き込む（書き込み指示を行う）際、当該フレームデータのデータ長に基づき、書き込みに必要となる仮想格納アドレスの数を示す必要アドレス数を算出し、キュー使用アドレス数メモリ３６から取得した当該書込対象キューまたは各キューの使用仮想アドレス数に基づき、当該書き込みに使用可能な仮想格納アドレスの数を示す残り仮想アドレス数を算出し、当該必要アドレス数と当該残り仮想アドレス数とを比較することにより当該フレームデータの書込可否を判定し、書込可の判定に応じて書込制御部３４に対して当該フレームデータの書き込みを指示するようにしたものである。
【０１０７】
図１６に示すように、本実施の形態において、アクセス調停部３７には、主な回路部として、書込可否判定部３７Ａ、書込用ＦＩＦＯ３７Ｂ、読出受付部３７Ｃ、読出用ＦＩＦＯ３７Ｄ、優先制御部３７Ｅ、キュー使用アドレス数更新部３７Ｆ、および指示出力部３７Ｇが設けられている。
【０１０８】
書込可否判定部３７Ａは、多重化装置１０から転送されたフレームデータに付加されているキュー指定情報およびフレーム長情報と、キューごとに予め設定されている判定用アドレス数情報と、各キューの使用仮想アドレス数とに基づいて、書込可能か否か判定する機能と、書込可の判定結果に応じて、当該フレームデータを、データメモリ３１に設けられている格納領域の１仮想アドレス分のデータサイズに分割し、得られたデータにキュー指定情報を付加した書き込み指示を、それぞれ書込用ＦＩＦＯ３７Ｂに書き込む機能とを有している。
【０１０９】
判定用アドレス数情報には、当該キュー指定情報で指定された書込対象キューで使用可能な最大仮想アドレス数ＮＫｍａｘと、当該書込対象キューに対して使用が保証されている最低保証仮想アドレス数ＮＫｍｉｎとが含まれている。
図１７は、判定用アドレス数情報の構成例である。ここではキューを識別するためのキューＩＤごとに、最大仮想アドレス数ＮＫｍａｘと最低保証仮想アドレス数ＮＫｍｉｎとが設定されている。これら判定用アドレス数情報は、例えばキュー使用アドレス数更新部３７Ｆ、あるいはアクセス調停部３７の内部メモリ（図示せず）で記憶されている。
【０１１０】
読出受付部３７Ｃは、多重分離装置２０から出力された読み出し要求の読出データ量情報に基づいて、データメモリ３１に対する読み出し回数を計算し、その読み出し回数だけ当該読み出し要求のキュー指定情報を読み出し指示として読出用ＦＩＦＯ３７Ｄに書き込む機能を有している。この計算は、読出データ量情報が示すデータ量をデータメモリ３１の１仮想アドレスあたりのデータサイズで除算した値を読み出し回数とし、剰余がある場合は読み出し回数に１を加算すればよい。
【０１１１】
優先制御部３７Ｅは、書込用ＦＩＦＯ３７Ｂもしくは読出用ＦＩＦＯ３７Ｄから、書き込み指示もしくは読み出し指示を読み出して、キュー使用アドレス数更新部３７Ｆへ出力する機能と、書込用ＦＩＦＯ３７Ｂと読出用ＦＩＦＯ３７Ｄの双方に、書き込み指示と読み出し指示が存在する場合は、書込用ＦＩＦＯ３７Ｂからの書き込み指示を優先して読み出す機能とを有している。
【０１１２】
キュー使用アドレス数更新部３７Ｆは、優先制御部３７Ｅから書き込み指示が入力された場合は、キュー使用アドレス数メモリ３６のうち、当該書き込み指示のキュー指定情報と対応する書込対象キューの使用仮想アドレス数に１を加算し、当該書き込み指示を指示出力部３７Ｇへ出力する機能と、優先制御部３７Ｅから読み出し指示が入力された場合は、キュー使用アドレス数メモリ３６のうち、当該読み出し指示のキュー指定情報と対応する読出対象キューの使用仮想アドレス数から１を減算し、当該読み出し指示を指示出力部３７Ｇへ出力する機能とを有している。
【０１１３】
指示出力部３７Ｇは、キュー使用アドレス数更新部３７Ｆから書き込み指示が入力された場合は、当該書き込み指示を書込制御部３４へ出力する機能と、読み出し指示が入力された場合は、当該読み出し指示を読出制御部３５へ出力する機能とを有している。
【０１１４】
［第２の実施の形態の動作］
次に、図１８を参照して、本実施の形態にかかるアクセス調停部３７の動作として、フレームデータの書き込み時における書込判定動作について説明する。図１８は、第２の実施の形態にかかる書込可否判定処理を示すフローチャートである。
記録装置３０のアクセス調停部３７は、多重化装置１０から転送されたフレームデータごとに、図１８の書込可否判定処理に基づいて、書込可否を判定する。
【０１１５】
まず、アクセス調停部３７は、キュー使用アドレス数メモリ３６から全キューに関する使用仮想アドレス数ＮＫを取得して（ステップ２００）、全キューが使用している合計仮想アドレス数ＮＫＡを算出し（ステップ２０１）、書込対象となる対象フレームデータの書き込みに要する必要仮想アドレス数ＮＦを算出する（ステップ２０２）。
【０１１６】
この後、仮想データメモリの仮想格納アドレスの総アドレス数ＮＡからＮＫＡを減算することにより、対象フレームデータの書き込みに使用可能な仮想格納アドレスの数を示す残り仮想アドレス数ＮＲを算出し（ステップ２０３）、ＮＦとＮＲとを比較する（ステップ２０４）。
ここで、ＮＦ＞ＮＲの場合（ステップ２０４：ＹＥＳ）、アクセス調停部３７は、書込不可と判定して対象フレームデータを破棄し（ステップ２１３）、当該対象フレームデータに関する書込判定処理を終了する。
【０１１７】
一方、ＮＦ≦ＮＲの場合（ステップ２０４：ＮＯ）、アクセス調停部３７は、指定された書込対象キューの最大仮想アドレス数ＮＫｍａｘをキュー使用アドレス数メモリ３６等から取得して（ステップ２０５）、ＮＫｍａｘからＮＫを減算することにより残り仮想アドレス数ＮＲを算出し（ステップ２０６）、ＮＦとＮＲとを比較する（ステップ２０７）。
ここで、ＮＦ＞ＮＲの場合（ステップ２０７：ＹＥＳ）、アクセス調停部３７は、書込不可と判定して対象フレームデータを破棄し（ステップ２１３）、当該対象フレームデータに関する書込判定処理を終了する。
【０１１８】
一方、ＮＦ≦ＮＲの場合（ステップ２０７：ＮＯ）、アクセス調停部３７は、全キューに関する最低保証仮想アドレス数ＮＫｍｉｎをキュー使用アドレス数メモリ３６から取得し（ステップ２０８）、全キューを一括して最低限保証すべき総保証仮想アドレス数ＮＡｍｉｎを算出する（ステップ２０９）。この際、任意のキューのキュー使用仮想アドレス数ＮＫがその最低保証仮想アドレス数以上である場合は、当該キューの保証仮想アドレス数としてキュー使用仮想アドレス数ＮＫを加算し、キュー使用仮想アドレス数ＮＫがその最低保証仮想アドレス数未満である場合は、当該キューの保証仮想アドレス数として最低保証仮想アドレス数ＮＫｍｉｎを加算する。
【０１１９】
この後、アクセス調停部３７は、ＮＡからＮＡｍｉｎを減算することにより残り仮想アドレス数ＮＲを算出し（ステップ２１０）、ＮＦとＮＲとを比較する（ステップ２１１）。
ここで、ＮＦ＞ＮＲの場合（ステップ２１１：ＹＥＳ）、アクセス調停部３７は、書込不可と判定して対象フレームデータを破棄し（ステップ２１３）、当該対象フレームデータに関する書込判定処理を終了する。
【０１２０】
一方、ＮＦ≦ＮＲの場合（ステップ２１１：ＮＯ）、アクセス調停部３７は、対象フレームデータについて書込可と判定し（ステップ２１２）、当該対象フレームデータに関する書込判定処理を終了する。
この後、この書込可の判定に応じて、アクセス調停部３７は、対象フレームデータを１仮想アドレス分のデータサイズに分割し、得られたデータにキュー指定情報を付加した書き込み指示を、それぞれ書込用ＦＩＦＯ３７Ｂに書き込むことになる。
【０１２１】
［第２の実施の形態の効果］
このように、本実施の形態は、記録装置３０において、キュー使用アドレス数メモリ３６が、キューごとに、当該キューが使用している仮想格納アドレスの数を示す使用アドレス数を記憶し、アクセス調停部３７が、書込対象キューに通信データを書き込む（書き込み指示を行う）際、当該通信データのデータ長に基づき、書き込みに必要となる仮想格納アドレスの数を示す必要アドレス数を算出し、キュー使用アドレス数メモリ３６から取得した当該書込対象キューまたは各キューの使用仮想アドレス数等に基づき、当該書き込みに使用可能な仮想格納アドレスの数を示す残り仮想アドレス数を算出し、当該必要アドレス数と当該残り仮想アドレス数とを比較することにより当該通信データの書込可否を判定し、書込可の判定に応じて書込制御部３４に対して当該通信データの書き込みを指示するようにしたものである。
【０１２２】
したがって、それぞれのキューによる仮想格納アドレスの使用数が制限されるため、任意の出力系統と対応するキューによる仮想格納アドレスの占有を抑止することができる。このため、特定の出力系統に関するフレームデータが多量に入力された場合でも、他の出力系統のキューが十分な仮想格納アドレス数を使用することが可能となる。これにより、フレームデータの破棄やこれによる通信品質の劣化を抑制することが可能となるとともに、これら対策として、メモリ容量の増大を行う必要がなくなり、結果として回路規模やコストの増大を抑制することが可能となる。
【０１２３】
なお、本実施の形態におけるＮＫＡ及びＮＡｍｉｎの算出は、キュー使用アドレス数メモリ３６を更新する際に同時に算出（加算、減算等）することができる。
本実施の形態において、図１６の構成のアクセス調停部３７を用いる場合、書込用ＦＩＦＯ３７Ｂに書き込み指示データが存在していると誤って書込可能と判定してしまう可能性がある。誤った判定を防止するためには、各キューの使用仮想アドレス数としてキュー使用アドレス数メモリ３６の情報に書込用ＦＩＦＯ３７Ｂ内の仮想アドレス数（書き込み指示の数）を加算した値を使用するか、ＮＡもしくはＮＫｍａｘとして書込用ＦＩＦＯ３７Ｂ内の仮想アドレス数（書き込み指示の数）を減算した値を使用すればよい。
【０１２４】
［実施の形態の拡張］
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。また、各実施形態については、矛盾しない範囲で任意に組み合わせて実施することができる。
【０１２５】
上記の各実施の形態において、通信用入出力装置１でマルチキャストフレームを処理する場合、出力系統の１つとしてマルチキャスト用出力系統を設けるとともに多重分離装置２０内の振分部２２にマルチキャストフレームを複数の速度変換部２３に出力する手段を設け、記録装置３０のデータメモリ３１内に論理的に形成した一部のキューをこのマルチキャスト用出力系統に対応するキューとして割り当てるようにしてもよい。
これにより、外部から多重化装置１０に入力されたマルチキャストフレームが、データメモリ３１内のマルチキャスト用出力系統に対応するキューに一時格納され、当該キューから多重分離装置２０によりマルチキャストフレームが読み出されて複数の出力ポートから出力される。
【符号の説明】
【０１２６】
１…通信用入出力装置、１０…多重化装置、１１…キュー指定情報付加部、１２…多重化部、２０…多重分離装置、２１…読出部、２２…振分部、２３，２４…速度変換部、３０…記録装置、３１…データメモリ、３２…ＤＲＡＭアクセス部、３２Ａ…ＦＩＦＯメモリ、３２Ｂ…活性化処理部、３２Ｃ…アクセス種別判定部、３２Ｄ…ＤＲＡＭ書込部、３２Ｅ…ＤＲＡＭ読出部、３３…キュー制御メモリ、３４…書込制御部、３５…読出制御部、３６…キュー使用アドレス数メモリ、３７…アクセス調停部、３７Ａ…書込可否判定部、３７Ｂ…書込用ＦＩＦＯ、３７Ｃ…読出受付部、３７Ｄ…読出用ＦＩＦＯ、３７Ｅ…優先制御部、３７Ｆ…キュー使用アドレス数更新部、３７Ｇ…指示出力部。
【図１】
2018032925.tif 000003
【図２】
2018032925.tif 000004
【図３】
2018032925.tif 000005
【図４】
2018032925.tif 000006
【図５】
2018032925.tif 000007
【図６】
2018032925.tif 000008
【図７】
2018032925.tif 000009
【図８】
2018032925.tif 000010
【図９】
2018032925.tif 000011
【図１０】
2018032925.tif 000012
【図１１】
2018032925.tif 000013
【図１２】
2018032925.tif 000014
【図１３】
2018032925.tif 000015
【図１４】
2018032925.tif 000016
【図１５】
2018032925.tif 000017
【図１６】
2018032925.tif 000018
【図１７】
2018032925.tif 000019
【図１８】
2018032925.tif 000020
【図１９】
2018032925.tif 000021
【図２０】
2018032925.tif 000022