(57)【要約】【課題】出力ポートの増加に起因する入力ＦＩＦＯによるハードウェア規模の増大を抑制する。【解決手段】各出力ＦＩＦＯ２５へ書き込みできなかった通信データを一時蓄積する入力ＦＩＦＯ２２を各出力系統に共通して設け、入力ＦＩＦＯ２２における通信データの蓄積状況に応じて、入力ＦＩＦＯ２２に蓄積されている通信データを記録装置３０へ転送し、任意の出力系統の出力ＦＩＦＯ２５が書き込み可状態となった時点で、記録装置３０および入力ＦＩＦＯ２２の順に当該出力系統の通信データを読み出して当該出力ＦＩＦＯ２５へ書き込むものとし、記録装置３０が、多重分離装置２０から転送された通信データを、当該通信データに付加されている出力先情報と対応する出力系統のキューに書き込む。【選択図】  図１
2016134711.tif 000002
【特許請求の範囲】
【請求項１】
順次入力される通信データに、当該通信データを出力すべき出力系統と対応する出力先情報を付加して多重化する多重化装置と、前記多重化装置から出力された通信データを、当該通信データに付加されている前記出力先情報に基づき分離し、当該出力先情報と対応する出力系統の出力ＦＩＦＯへ書き込む多重分離装置と、複数のキューにより前記通信データを前記出力系統ごとに一時蓄積する記録装置とを備える通信用入出力装置であって、
前記多重分離装置は、
前記各出力系統に共通して設けられて、前記各出力ＦＩＦＯへ書き込みできなかった通信データを一時蓄積する入力ＦＩＦＯと、
前記入力ＦＩＦＯにおける通信データの蓄積状況に応じて、当該入力ＦＩＦＯに蓄積されている通信データを前記記録装置へ転送し、任意の出力系統の出力ＦＩＦＯが書き込み可状態となった時点で、前記記録装置および前記入力ＦＩＦＯの順に当該出力系統の通信データを読み出して当該出力ＦＩＦＯへ書き込むアクセス調停部とを備え、
前記記録装置は、前記多重分離装置から転送された前記通信データを、当該通信データに付加されている前記出力先情報と対応する出力系統のキューに書き込む書き込み制御部を備える
ことを特徴とする通信用入出力装置。
【請求項２】
請求項１に記載の通信用入出力装置において、
前記記録装置は、前記出力系統ごとに１つまたは複数の前記キューを有し、これらキューは、１つまたは複数の別個のメモリ回路で構成されていることを特徴とする通信用入出力装置。
【請求項３】
請求項１または請求項２記載の通信用入出力装置において、
前記記録装置は、前記キューを論理的に形成して前記通信データを蓄積するためメモリを有し、前記アクセス調停部から指示された、読み出し対象となるキューに関する前記メモリ上でのアドレス情報に基づいて、前記メモリから対応するキューに蓄積されている前記通信データを読み出して当該アクセス調停部へ転送することを特徴とする通信用入出力装置。
【請求項４】
請求項１または請求項２に記載の通信用入出力装置において、
前記記録装置は、前記キューを論理的に形成して前記通信データを蓄積するためメモリを有し、前記アクセス調停部から指示された、読み出し対象となるキューを識別するためのキュー情報に基づいて、当該キューに関する前記メモリ上でのアドレス情報を特定し、当該アドレス情報に基づいて、前記メモリから対応するキューに蓄積されている前記通信データを読み出して当該アクセス調停部へ転送することを特徴とする通信用入出力装置。
【請求項５】
請求項１または請求項２に記載の通信用入出力装置において、
前記記録装置は、前記キューを論理的に形成して前記通信データを蓄積するためメモリを有し、前記アクセス調停部から指示された、読み出し対象となる通信データに関連するユーザＩＤまたは出力系統に関連する出力ポートＩＤに基づいて、対応するキューに関する前記メモリ上でのアドレス情報を特定し、当該アドレス情報に基づいて、前記メモリから対応するキューに蓄積されている前記通信データを読み出して当該アクセス調停部へ転送し、対応するキューが複数存在する場合は、最も優先度の高いキューから順に前記通信データを読み出して当該アクセス調停部へ転送することを特徴とする通信用入出力装置。
【請求項６】
請求項１〜請求項５のいずれかに記載の通信用入出力装置において、
前記アクセス調停部は、前記出力系統ごとに設けられたセレクタ、および、前記記録装置との間で前記通信データの転送を行うＩＦ制御部を有し、
前記セレクタは、前記多重化装置からの通信データ、前記入力ＦＩＦＯからの通信データ、もしくは前記ＩＦ制御部からの通信データのいずれか１つを選択して対応する出力ＦＩＦＯへ書き込み、
前記ＩＦ制御部は、前記入力ＦＩＦＯから前記記録装置へ前記通信データを転送し、前記記録装置から転送された前記通信データを対応する前記セレクタへ出力する
ことを特徴とする通信用入出力装置。
【請求項７】
請求項１〜請求項５のいずれかに記載の通信用入出力装置において、
前記アクセス調停部は、前記出力系統ごとに設けられたセレクタ、および、前記記録装置との間で前記通信データの転送を行うＩＦ制御部を有し、
前記セレクタは、前記多重化装置からの通信データ、もしくは前記ＩＦ制御部からの通信データのいずれか１つを選択して対応する出力ＦＩＦＯへ書き込み、
前記ＩＦ制御部は、前記入力ＦＩＦＯから前記記録装置へ前記通信データを転送し、前記多重化装置からの通信データ、および前記記録装置から転送された前記通信データを対応する前記セレクタへ出力する
ことを特徴とする通信用入出力装置。
【請求項８】
請求項１〜請求項５のいずれかに記載の通信用入出力装置において、
前記多重分離装置は、前記アクセス調停部から書き込まれたマルチキャスト用フレームデータを順次蓄積し、出力ポートごとに設けられた出力ＦＩＦＯ読み出し制御部からの読み出し要求に応じて、蓄積している前記マルチキャスト用フレームデータを読み出して出力するとともに、当該マルチキャスト用フレームデータの出力先となるすべての出力ＦＩＦＯ読み出し制御部への出力が完了するまで当該マルチキャスト用フレームデータを保持するマルチキャスト用出力ＦＩＦＯをさらに備え、
前記アクセス調停部は、前記出力系統ごとに設けられたセレクタ、マルチキャスト用セレクタ、および、前記記録装置との間で前記通信データの転送を行うＩＦ制御部を有し、
前記セレクタは、前記多重化装置からの通信データ、前記入力ＦＩＦＯからの通信データ、または前記ＩＦ制御部からの通信データのいずれか１つを選択して対応する出力ＦＩＦＯへ書き込み、
前記マルチキャスト用セレクタは、前記多重化装置からのマルチキャスト用通信データ、前記入力ＦＩＦＯからのマルチキャスト用通信データ、もしくは前記ＩＦ制御部からのマルチキャスト用通信データのいずれか１つを選択してマルチキャスト用出力ＦＩＦＯへ書き込み、
前記ＩＦ制御部は、前記入力ＦＩＦＯから前記記録装置へ前記通信データを転送し、前記記録装置から転送された通信データを対応する前記セレクタへ出力し、前記記録装置から転送されたマルチキャスト用通信データを対応する前記マルチキャスト用セレクタへ出力する
ことを特徴とする通信用入出力装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ通信技術に関し、特に通信データ（フレームデータ）の入出力を行う通信用入出力装置で用いられるメモリアクセス制御技術に関する。
【背景技術】
【０００２】
従来、インターネット通信等で使用されるイーサネット（登録商標）フレームデータ等の通信データの入出力を行う通信用入出力装置として、例えば、特許文献１のような構成が提案されている。図８は、従来の通信用入出力装置（内蔵メモリ）の構成を示すブロック図である。
この通信用入出力装置は、多重化装置ＭＵＸ、記録装置ＭＥＭ、および多重分離装置ＤＥＭＵＸから構成されている。
【０００３】
ＭＵＸは、入力ポートごとに設けられたキュー指定情報付加部により、入力されたフレームデータに対して、当該フレームデータの出力先に対応するキュー指定情報を付加した後、多重化部により多重化して出力する。
ＭＥＭは、ＭＵＸから時分割多重で出力されたフレームデータを書き込み制御部により受け取り、各フレームデータに付加されているキュー指定情報とキューマップとを参照し、内蔵するメモリ（ＤＲＡＭチップ）内にフレームデータの出力先ごとに論理的に設けたキューのうち、キュー指定情報と対応するキューのアドレスへフレームデータを書き込む。また、ＭＥＭは、ＤＥＭＵＸからの指示に応じて、読出制御部により対応するキューからフレームデータを読み出して、ＤＥＭＵＸに出力する。
【０００４】
ＤＥＭＵＸは、読出部により、出力ポートごとの優先制御ロジックに基づき、ＭＥＭ内の優先出力ポートに対応する出力先のキューからフレームデータを読み出して、振分部により対応する出力ポートへ振り分け、出力ポートごとに設けられた速度変換部により当該出力ポートの通信速度に変換して出力する。
【０００５】
図９は、キューと出力ポートとの対応を示す説明図であり、出力ポート数が３の場合が示されている。図９（ａ）では、キューと出力ポートとが１対１に対応付けられているが、図９（ｂ）のように、１対多に対応付けることにより、１つのフレームデータを複数の出力ポートが出力する場合に対応可能となる。また、図９（ｃ）のように、出力ポートごとに、読出優先度に応じたキューを対応付けることもできる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−０１０１９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
前述の図８で説明した従来の通信用入出力装置は、メモリをＭＥＭに内蔵した構成例であるが、メモリを外部メモリとしてＭＥＭに外付けすることも考えられる。図１０は、通信用入出力装置（ＭＥＭ外付けメモリ）の構成を示すブロック図である。これにより、ＭＥＭのハードウェア規模に関する各種制約を受けることなく、メモリの記憶容量を増大することが可能となる。
ここで、ＭＥＭに外付けする外部メモリとして、ＤＲＡＭチップを使用した場合、ｗｒｉｔｅ／ｒｅａｄアクセスの実効スループットがデータバスの速度より小さくなり、特に短フレームデータが連続入力すると、極端に実効スループットが低下するという問題点がある。
【０００８】
このようなスループットの低下を抑止するため、ＤＥＭＵＸから外部メモリをアクセスする構成が考えられる。図１１は、通信用入出力装置（ＤＥＭＵＸ外付けメモリ）の構成を示すブロック図である。図１２は、図１１のアクセス調停部の構成例である。図１３は、図１１のアクセス調停部に関する状態遷移図である。
しかしながら、このような構成において、出力ポート数が多くなると、入力ＦＩＦＯ等の数も多くなるため、ハードウェア規模が増大してしまうという問題点がある。
【０００９】
以下、従来の図１１〜図１３に示した構成にかかる問題点について詳細に説明する。
ＤＥＭＵＸにおいて、ＦＩＦＯ書き込み制御部は、ＭＵＸ内のキュー指定情報付加部により付加されたキュー指定情報に従って、対応する系統（０系もしくは１系）の入力ＦＩＦＯへ、もしくはアクセス調停部を介して出力ＦＩＦＯへ、ＭＵＸから受け取ったフレームデータを書き込む。
例えば、出力ポートＰｏｕｔ０宛てのフレームデータであれば、入力ＦＩＦＯ（０系）もしくは出力ＦＩＦＯ（０系）にフレームデータを書き込み、出力ポートＰｏｕｔ１宛てのフレームデータであれば、入力ＦＩＦＯ（１系）もしくは出力ＦＩＦＯ（１系）にフレームデータを書き込む。
【００１０】
図１１の構成例において、ＦＩＦＯ書き込み制御部は、ＭＵＸから受け取ったフレームデータの書き込み処理を行う場合、アクセス調停部から出力される、出力ＦＩＦＯ（０系）、出力ＦＩＦＯ（１系）への書き込み可否かを示す制御信号に基づいて、次の４つの処理動作のいずれかを選択する。
【００１１】
（１）出力ＦＩＦＯ（０系）、出力ＦＩＦＯ（１系）が共に書き込み不可の場合、キュー指定情報に応じて、入力ＦＩＦＯ（０系）、もしくは、入力ＦＩＦＯ（１系）への書き込みを行う。（２）出力ＦＩＦＯ（０系）への書き込みは可能だが、出力ＦＩＦＯ（１系）への書き込みが不可の場合、キュー指定情報に応じて、出力ＦＩＦＯ（０系）、もしくは、入力ＦＩＦＯ（１系）への書き込みを行う。この際、出力ＦＩＦＯ（０系）への書き込みはアクセス調停部を介して行う。
【００１２】
（３）出力ＦＩＦＯ（１系）への書き込みは可能だが、出力ＦＩＦＯ（０系）への書き込みが不可の場合、キュー指定情報に応じて、出力ＦＩＦＯ（１系）、もしくは、入力ＦＩＦＯ（０系）への書き込みを行う。この際、出力ＦＩＦＯ（１系）への書き込みはアクセス調停部を介して行う。（４）出力ＦＩＦＯ（０系）、出力ＦＩＦＯ（１系）共に書き込みが可能な場合、キュー指定情報に応じて、出力ＦＩＦＯ（０系）、もしくは、出力ＦＩＦＯ（１系）への書き込みを行う（アクセス調停部を介して行う）。
【００１３】
アクセス調停部は、ＦＩＦＯ書き込み制御部から出力ＦＩＦＯへのフレームデータの書き込みを仲介する他、入力ＦＩＦＯから外部メモリや出力ＦＩＦＯへのフレームデータの転送、および、外部メモリから出力ＦＩＦＯへのフレームデータの転送等を行う。
図１２に示したアクセス調停部の構成例において、アクセス調停部は０系／１系の出力ＦＩＦＯからの書込許可入力に対応して以下の様に動作する。
【００１４】
［出力ＦＩＦＯ（０系）の状態Ａ：初期状態］
出力ＦＩＦＯ（０系）からの書込許可入力が許可状態で、入力ＦＩＦＯ（０系）にも入力ＦＩＦＯ（０系）に対応した外部メモリの領域（アドレス）にもフレームデータが蓄積されていない場合、ＦＩＦＯ書き込み制御部に対して、出力ＦＩＦＯ（０系）への書き込みが可能であることを出力し、ＦＩＦＯ書き込み制御部から入力されるフレームデータが出力ポートＰｏｕｔ０（０系）宛てとなっていた場合、出力ＦＩＦＯ（０系）へのフレームデータの書き込みを行う。
なお、この状態Ａでは、ＦＩＦＯ書き込み制御部から入力ＦＩＦＯ（０系）へのフレームデータの書き込みも、入力ＦＩＦＯ（０系）からのフレームデータの転送も、入力ＦＩＦＯ（０系）に対応した外部メモリの領域からのフレームデータの転送も行われない。
【００１５】
［出力ＦＩＦＯ（０系）の状態Ｂ］
出力ＦＩＦＯ（０系）からの書込許可入力が禁止（非許可）状態の場合、ＦＩＦＯ書き込み制御部に対して出力ＦＩＦＯ（０系）への書き込みは不可であることを出力し、入力ＦＩＦＯ（０系）に蓄積されているフレームデータのサイズ（バイト数）の合計が所定の値（フレームデータの最少サイズより大きい値を設定）より大きくなった場合、入力ＦＩＦＯ（０系）内のフレームデータをまとめて外部メモリの入力ＦＩＦＯ（０系）に対応する領域（アドレス）に転送する。
【００１６】
転送終了後、他の状態に遷移する前に、入力ＦＩＦＯ（０系）に蓄積されているフレームデータのサイズ（バイト数）の合計が所定の値より大きくなっていれば、同様の転送を繰り返す。
外部メモリへの転送では、入力ＦＩＦＯごとに異なるメモリ領域（アドレス）に対してフレームデータの書き込みを行い、入力ＦＩＦＯごとに転送したフレームデータのサイズ（バイト数）の累積値を管理する。外部メモリへの転送に使用するアドレス（ｗｒｉｔｅポインタ）の値は、例えば、初期値をキューマップの設定で決定し、転送ごとに、ｗｒｉｔｅポインタを更新する。
【００１７】
なお、入力ＦＩＦＯ（０系）から外部メモリへの転送と入力ＦＩＦＯ（１系）から外部メモリへの転送が競合する場合があるので、セレクタ（ＭＥＭ用）にて競合制御を行う。
この状態では、ＦＩＦＯ書き込み制御部から入力ＦＩＦＯ（０系）へフレームデータの書き込みが行われ、ＦＩＦＯ書き込み制御部から出力ＦＩＦＯ（０系）へのフレームデータの書き込み、入力ＦＩＦＯ（０系）から出力ＦＩＦＯ（０系）へのフレームデータの転送、および、入力ＦＩＦＯ（０系）に対応したＤＲＡＭチップ等のメモリの領域からのフレームデータの転送は行われない。
【００１８】
［出力ＦＩＦＯ（０系）の状態Ｃ］
出力ＦＩＦＯ（０系）からの書込許可入力が許可状態で、入力ＦＩＦＯ（０系）に対応した外部メモリの領域（アドレス）にフレームデータが蓄積されている場合、ＦＩＦＯ書き込み制御部に対して、出力ＦＩＦＯ（０系）への書き込みが不可であることを出力し、入力ＦＩＦＯ（０系）に蓄積されているフレームデータのサイズ（バイト数）の合計が所定の値（フレームデータの最少サイズより大きい値を設定）より大きくなった場合、入力ＦＩＦＯ（０系）内のフレームデータをまとめて外部メモリの入力ＦＩＦＯ（０系）に対応する領域（アドレス）に転送する。
【００１９】
転送終了後、他の状態に遷移する前に、入力ＦＩＦＯ（０系）に蓄積されているフレームデータのサイズ（バイト数）の合計が所定の値より大きくなっていれば、同様の転送を繰り返す。
外部メモリへの転送は、入力ＦＩＦＯごとに異なるメモリ領域（アドレス）に対してフレームデータの書き込みを行い、入力ＦＩＦＯごとに転送したフレームデータのサイズ（バイト数）の累積値を管理する。
【００２０】
なお、入力ＦＩＦＯ（０系）から外部メモリへの転送と入力ＦＩＦＯ（１系）から外部メモリへの転送が競合する場合があるので、セレクタ（ＭＥＭ用）にて競合制御を行う。
また、入力ＦＩＦＯ（０系）に対応した外部メモリの領域（アドレス）に蓄積されているフレームデータを出力ＦＩＦＯ（０系）に対して転送する。この転送は、他の状態に遷移するか、もしくは、入力ＦＩＦＯ（０系）に対応した外部メモリの領域（アドレス）に蓄積されているフレームデータがなくなるまで行う。
【００２１】
外部メモリから出力ＦＩＦＯへの転送を行う際には、出力ＦＩＦＯごと（対応する入力ＦＩＦＯごと）に転送したフレームデータのサイズ（バイト数）をカウントして、入力ＦＩＦＯから外部メモリに転送したフレームデータのサイズ（バイト数）の累積値からの減算を行う。この値は、対応する入力ＦＩＦＯごとに、外部メモリに蓄積されているフレームデータの有無を確認するために使用する。外部メモリから出力ＦＩＦＯへの転送を行う際に使用するアドレス（ｒｅａｄポインタ）の値は、例えば、初期値をｗｒｉｔｅポインタの初期値と同じ値とし、転送ごとにｒｅａｄポインタを更新する。
【００２２】
なお、ＤＲＡＭチップ等のメモリから出力ＦＩＦＯ（０系）への転送とＤＲＡＭチップ等のメモリから出力ＦＩＦＯ（１系）への転送が競合する場合があるので、ＩＦ制御部にて競合制御を行う。さらに、入力ＦＩＦＯから外部メモリへの転送と、外部メモリから出力ＦＩＦＯへの転送が競合する場合があるので、ＩＦ制御部にて競合制御を行う。
この状態では、ＦＩＦＯ書き込み制御部から入力ＦＩＦＯ（０系）へのフレームデータの書き込みが行われ、ＦＩＦＯ書き込み制御部から出力ＦＩＦＯ（０系）へのフレームデータの書き込み、入力ＦＩＦＯ（０系）から出力ＦＩＦＯ（０系）へのフレームデータの転送は行われない。
【００２３】
［出力ＦＩＦＯ（０系）の状態Ｄ］
出力ＦＩＦＯ（０系）からの書込許可入力が許可状態で、入力ＦＩＦＯ（０系）に対応した外部メモリの領域（アドレス）にフレームデータが蓄積されていないが、入力ＦＩＦＯ（０系）にフレームデータが蓄積されている場合、ＦＩＦＯ書き込み制御部に対して出力ＦＩＦＯ（０系）への書き込みが不可であることを出力し、入力ＦＩＦＯ（０系）内のデータを出力ＦＩＦＯ（０系）に転送する。この転送は、他の状態に遷移するか、もしくは、入力ＦＩＦＯ（０系）に蓄積されているフレームデータがなくなるまで行う。
【００２４】
この状態では、ＦＩＦＯ書き込み制御部から入力ＦＩＦＯ（０系）へのフレームデータの書き込みが行われ、ＦＩＦＯ書き込み制御部から出力ＦＩＦＯ（０系）へのフレームデータの書き込み、入力ＦＩＦＯ（０系）から外部メモリへのフレームデータの転送、および、入力ＦＩＦＯ（０系）に対応した外部メモリの領域からのフレームデータの転送は行われない。
なお、上述した状態Ａ〜Ｄについては、出力ＦＩＦＯ（０系）からの書込許可入力に対応する動作について説明したが、出力ＦＩＦＯ（１系）からの書込許可入力に対してもアクセス調停部は同様に動作する。
【００２５】
図１３にアクセス調停部の状態遷移（例）を示す。図１３は０系もしくは１系どちらかの出力ＦＩＦＯからの書込許可入力に対応したアクセス調停部での動作を示している。このように動作する制御回路を２つ（０系用と１系用）搭載して、状態遷移としてはそれぞれ独立して、もう一方の系の動作に依存せずに動作させることが可能である。なお、外部メモリへの転送と外部メモリからの転送において０系と１系が競合することはあるが、状態遷移上は影響しない。
【００２６】
図１１の出力ＦＩＦＯは、アクセス調停部から入力されたフレームデータを蓄積し、出力ＦＩＦＯ読み出し制御部からの要求に従って、フレームデータを出力する。また、フレームデータの蓄積量、すなわち入力されたデータの量から出力したデータの量を減算した値を測定し、その値が規定値を超えた場合に、アクセス調停部に対する書き込み許可信号を禁止（非許可）状態とする。この規定値は、例えば、出力ＦＩＦＯに蓄積可能なデータ量の最大値から最長フレームデータ（2000Byte）分のデータ量を減算した値とする。
【００２７】
図１１の出力ＦＩＦＯ読み出し制御部は、例えば、出力ＦＩＦＯに１フレームデータ以上のフレームデータが蓄積されていれば、出力ＦＩＦＯからフレームデータを読み出して出力ポートから出力する。
【００２８】
［スループットについて］
次に、外部メモリとしてＤＲＡＭチップを用いる場合における、図１１の構成のスループットを、図１０の構成のスループットと比較する。ＤＲＡＭチップへの転送もしくはＤＲＡＭチップからの転送におけるスループットは、１回の転送のデータサイズに依存する。
【００２９】
１回の転送で転送可能なサイズの最大値（以下、「最大バーストサイズ」と記述する）は、ＤＲＡＭチップの仕様で決まり、転送時のデータサイズが最大バーストサイズより小さい場合、スループットは、次の式（１）で求められる。
ＤＲＡＭチップのビット幅×動作クロック速度×ＴＤ／（ＴＯ＋ＴＤ）…（１）
【００３０】
但し、式（１）において、ＴＤ＝転送時のデータサイズ（ビット数）／（ＤＲＡＭチップのビット幅×動作クロック速度）、ＴＯ＝１転送当たりのＤＲＡＭチップアクセス時のオーバーヘッド時間である。
オーバーヘッド時間ＴＯは、ＤＲＡＭチップの仕様で決まる固定値であり、転送時のデータサイズが小さいほどスループットが小さくなる。
【００３１】
転送をフレームデータごとに行う構成が従来から使用されているが、その場合、最小フレームデータ長のフレームデータが連続すると、ＤＲＡＭチップの仕様によってはスループットが極端に低下してしまう。
例えば、ＤＲＡＭチップのビット幅が32、動作クロック速度が312.5MHz、ＴＯが16nsだとすると最小フレームデータ長（64Byte）のフレームデータが連続した場合、式（１）のＴＤは、次の式（２）となる。
ＴＤ＝64[Byte]×8／（32×312.5[MHz]）＝51.2ns…（２）
【００３２】
このため、スループットは、次の式（３）となる。
32[bit]×312.5[MHz]×51.2[ns]／（16[ns]＋51.2[ns]）＝約7.6[gbit/s]…（３）
ＤＲＡＭチップのバスの速度は、32[bit]×312.5[MHz]の場合、10Gbit/sに相当するが、これに対して、式（３）のスループットは２割以上低下していることが分かる。
【００３３】
このように、図１０の構成においても、転送をフレームデータごとに行う構成が一般的であり、上記の様に、最小フレームデータ長のフレームデータが連続すると、ＤＲＡＭチップの仕様によってはスループットが極端に低下してしまう。
【００３４】
一方、図１１の構成で、ＤＲＡＭチップからなる外部メモリへの転送を行うか否かを判定する際、入力ＦＩＦＯに蓄積されているデータのサイズ（バイト数）の合計値を、例えば、1000Byteとする構成が考えられる。これにより、外部メモリに転送するデータのサイズは、最小フレームデータ長のフレームデータが連続した場合でも、必ず1000Byte以上となる。
【００３５】
この場合、ＴＤの最小値は、次の式（４）となり、最小スループットは、次の式（５）となる。
ＴＤの最小値＝1000[Byte]×8／（32×312.5[MHz]）＝800ns…（４）
32[bit]×312.5[MHz]×800[ns]／（16[ns]＋800[ns]）＝約9.8[Gbit/s] …（５）
したがって、外部メモリから出力ＦＩＦＯへの転送においても、図１１の構成で、１回の転送で転送するデータのサイズを最小フレームデータ長（64Byte）より大きくすることで、同様にスループットの低下を抑制できる。
【００３６】
しかしながら、従来の図１１の構成によれば、出力ポート数が多くなると、これら出力ポート数と同数分だけ入力ＦＩＦＯが必要となり、ハードウェアの規模が増大してしまうという問題点があった。
【００３７】
本発明はこのような課題を解決するためのものであり、出力ポートの増大に起因する入力ＦＩＦＯによるハードウェア規模の増大を抑制できるメモリアクセス制御技術を提供することを目的としている。
【課題を解決するための手段】
【００３８】
このような目的を達成するために、本発明にかかる通信用入出力装置は、順次入力される通信データに、当該通信データを出力すべき出力系統と対応する出力先情報を付加して多重化する多重化装置と、前記多重化装置から出力された通信データを、当該通信データに付加されている前記出力先情報に基づき分離し、当該出力先情報と対応する出力系統の出力ＦＩＦＯへ書き込む多重分離装置と、前記出力系統ごとに前記通信データを一時蓄積するキューを有する記録装置とを備える通信用入出力装置であって、前記多重分離装置は、前記各出力系統に共通して設けられて、前記各出力ＦＩＦＯへ書き込みできなかった通信データを一時蓄積する入力ＦＩＦＯと、前記入力ＦＩＦＯにおける通信データの蓄積状況に応じて、当該入力ＦＩＦＯに蓄積されている通信データを前記記録装置へ転送し、任意の出力系統の出力ＦＩＦＯが書き込み可状態となった時点で、前記記録装置および前記入力ＦＩＦＯの順に当該出力系統の通信データを読み出して当該出力ＦＩＦＯへ書き込むアクセス調停部とを備え、前記記録装置は、前記多重分離装置から転送された前記通信データを、当該通信データに付加されている前記出力先情報と対応する出力系統のキューに書き込む書き込み制御部を備えている。
【００３９】
また本発明にかかる上記通信用入出力装置の一構成例は、前記記録装置が、前記出力系統ごとに１つまたは複数の前記キューを有し、これらキューは、１つまたは複数の別個のメモリ回路で構成されているものである。
【００４０】
また本発明にかかる上記通信用入出力装置の一構成例は、前記記録装置が、前記キューを論理的に形成して前記通信データを蓄積するためメモリを有し、前記アクセス調停部から指示された、読み出し対象となるキューに関する前記メモリ上でのアドレス情報に基づいて、前記メモリから対応するキューに蓄積されている前記通信データを読み出して当該アクセス調停部へ転送するようにしたものである。
【００４１】
また本発明にかかる上記通信用入出力装置の一構成例は、前記記録装置が、前記キューを論理的に形成して前記通信データを蓄積するためメモリを有し、前記アクセス調停部から指示された、読み出し対象となるキューを識別するためのキュー情報に基づいて、当該キューに関する前記メモリ上でのアドレス情報を特定し、当該アドレス情報に基づいて、前記メモリから対応するキューに蓄積されている前記通信データを読み出して当該アクセス調停部へ転送するようにしたものである。
【００４２】
また本発明にかかる上記通信用入出力装置の一構成例は、前記記録装置が、前記キューを論理的に形成して前記通信データを蓄積するためメモリを有し、前記アクセス調停部から指示された、読み出し対象となる通信データに関連するユーザＩＤまたは出力系統に関連する出力ポートＩＤに基づいて、対応するキューに関する前記メモリ上でのアドレス情報を特定し、当該アドレス情報に基づいて、前記メモリから対応するキューに蓄積されている前記通信データを読み出して当該アクセス調停部へ転送し、対応するキューが複数存在する場合は、最も優先度の高いキューから順に前記通信データを読み出して当該アクセス調停部へ転送するようにしたものである。
【００４３】
また本発明にかかる上記通信用入出力装置の一構成例は、前記アクセス調停部が、前記出力系統ごとに設けられたセレクタ、および、前記記録装置との間で前記通信データの転送を行うＩＦ制御部を有し、前記セレクタは、前記多重化装置からの通信データ、前記入力ＦＩＦＯからの通信データ、もしくは前記ＩＦ制御部からの通信データのいずれか１つを選択して対応する出力ＦＩＦＯへ書き込み、前記ＩＦ制御部は、前記入力ＦＩＦＯから前記記録装置へ前記通信データを転送し、前記記録装置から転送された前記通信データを対応する前記セレクタへ出力するようにしたものである。
【００４４】
また本発明にかかる上記通信用入出力装置の一構成例は、前記アクセス調停部が、前記出力系統ごとに設けられたセレクタ、および、前記記録装置との間で前記通信データの転送を行うＩＦ制御部を有し、前記セレクタは、前記多重化装置からの通信データ、もしくは前記ＩＦ制御部からの通信データのいずれか１つを選択して対応する出力ＦＩＦＯへ書き込み、前記ＩＦ制御部は、前記入力ＦＩＦＯから前記記録装置へ前記通信データを転送し、前記多重化装置からの通信データ、および前記記録装置から転送された前記通信データを対応する前記セレクタへ出力するようにしたものである。
【００４５】
また本発明にかかる上記通信用入出力装置の一構成例は、前記多重分離装置が、前記アクセス調停部から書き込まれたマルチキャスト用フレームデータを順次蓄積し、出力ポートごとに設けられた出力ＦＩＦＯ読み出し制御部からの読み出し要求に応じて、蓄積している前記マルチキャスト用フレームデータを読み出して出力するとともに、当該マルチキャスト用フレームデータの出力先となるすべての出力ＦＩＦＯ読み出し制御部への出力が完了するまで当該マルチキャスト用フレームデータを保持するマルチキャスト用出力ＦＩＦＯをさらに備え、前記アクセス調停部は、前記出力系統ごとに設けられたセレクタ、マルチキャスト用セレクタ、および、前記記録装置との間で前記通信データの転送を行うＩＦ制御部を有し、前記セレクタは、前記多重化装置からの通信データ、前記入力ＦＩＦＯからの通信データ、または前記ＩＦ制御部からの通信データのいずれか１つを選択して対応する出力ＦＩＦＯへ書き込み、前記マルチキャスト用セレクタは、前記多重化装置からのマルチキャスト用通信データ、前記入力ＦＩＦＯからのマルチキャスト用通信データ、もしくは前記ＩＦ制御部からのマルチキャスト用通信データのいずれか１つを選択してマルチキャスト用出力ＦＩＦＯへ書き込み、前記ＩＦ制御部は、前記入力ＦＩＦＯから前記記録装置へ前記通信データを転送し、前記記録装置から転送された通信データを対応する前記セレクタへ出力し、前記記録装置から転送されたマルチキャスト用通信データを対応する前記マルチキャスト用セレクタへ出力するようにしたものである。
【発明の効果】
【００４６】
本発明によれば、入力ＦＩＦＯを各出力系統で共通して用いることができ、出力系統を増大させても、従来技術のように出力系統の増大に合わせて入力ＦＩＦＯを増大させる必要はないため、入力ＦＩＦＯによるハードウェア規模の増大を抑制することができる。これにより、通信用入出力装置における消費電力を削減することが可能となる。
【図面の簡単な説明】
【００４７】
【図１】第１の実施の形態にかかる通信用入出力装置の構成を示すブロック図である。
【図２】第１の実施の形態にかかるアクセス調停部の要部を示す回路構成例である。
【図３】第１の実施の形態にかかるアクセス調停部の状態遷移図である。
【図４】第４の実施の形態にかかるアクセス調停部の要部を示す回路構成例である。
【図５】第４の実施の形態にかかるアクセス調停部の状態遷移図である。
【図６】第５の実施の形態にかかる通信用入出力装置の構成を示すブロック図である。
【図７】第５の実施の形態にかかるアクセス調停部の要部を示す回路構成例である。
【図８】従来の通信用入出力装置（内蔵メモリ）の構成を示すブロック図である。
【図９】キューと出力ポートとの対応を示す説明図である。
【図１０】通信用入出力装置（ＭＥＭ外付けメモリ）の構成を示すブロック図である。
【図１１】通信用入出力装置（ＤＥＭＵＸ外付けメモリ）の構成を示すブロック図である。
【図１２】図１１のアクセス調停部の構成例である。
【図１３】図１１のアクセス調停部に関する状態遷移図である。
【発明を実施するための形態】
【００４８】
次に、本発明の実施の形態について図面を参照して説明する。
［第１の実施の形態］
まず、図１を参照して、本発明の第１の実施の形態にかかる通信用入出力装置１００について説明する。図１は、第１の実施の形態にかかる通信用入出力装置の構成を示すブロック図である。
【００４９】
この通信用入出力装置１００は、インターネット通信等で使用されるイーサネットフレームデータ等の通信データの入出力を行う装置であり、１つまたは複数の入力ポートから入力された通信データを、その通信データを出力すべき出力系統ごとに分離し、当該出力系統と対応する出力ポートの通信速度に変換して出力する機能を有している。
【００５０】
図１に示すように、通信用入出力装置１００は、多重化装置（ＭＵＸ）１０、メモリアクセス制御機能内蔵型の多重分離装置（ＤＥＭＵＸ）２０、およびアクセス制御機能内蔵型の記録装置（ＭＥＭ）３０から構成されている。以下では、通信用入出力装置１００で入出力する通信データがフレームデータである場合を例として説明するが、これに限定されるものではなく、パケットやＡＴＭセルなど各種の通信データを、フレームデータと同様にして入出力することも可能である。
【００５１】
多重化装置１０は、外部から順次入力されるフレームデータに、当該フレームデータを出力すべき出力系統と対応する出力先情報を付加して多重化する機能を有している。
多重分離装置２０は、多重化装置１０から出力されたフレームデータを、当該フレームデータに付加されている出力先情報に基づき分離し、当該出力先情報と対応する出力系統の出力ＦＩＦＯ２５へ書き込む機能を有している。
記録装置３０は、複数のキューにより通信データを出力系統ごとに一時蓄積する機能を有している。
【００５２】
本実施の形態は、多重分離装置２０に、各出力ＦＩＦＯ２５へ書き込みできなかった通信データを一時蓄積する入力ＦＩＦＯ２２を各出力系統に共通して設け、入力ＦＩＦＯ２２における通信データの蓄積状況に応じて、入力ＦＩＦＯ２２に蓄積されている通信データを記録装置３０へ転送し、任意の出力系統の出力ＦＩＦＯ２５が書き込み可状態となった時点で、記録装置３０および入力ＦＩＦＯ２２の順に当該出力系統の通信データを読み出して当該出力ＦＩＦＯ２５へ書き込むものとし、記録装置３０が、多重分離装置２０から転送された通信データを、当該通信データに付加されている出力先情報と対応する出力系統のキューに書き込むようにしたものである。
【００５３】
本実施の形態では、図１に示すように、入力ポートＰｉｎとして２つの入力ポートＰｉｎ０，Ｐｉｎ１が設けられ、出力ポートＰｏｕｔとして２つの出力ポートＰｏｕｔ０，Ｐｏｕｔ１が設けられている場合を例として説明するが、入力ポートＰｉｎおよび出力ポートＰｏｕｔの数については、これに限定されるものではない。入力ポートＰｉｎおよび出力ポートＰｏｕｔのいずれか一方または両方を３つ以上設けることも可能であり、入力ポート数と出力ポート数が異なっていても良い。なお、入力ポート数は、１つであってもよい。
【００５４】
［多重化装置］
次に、図１を参照して、本実施の形態にかかる通信用入出力装置１００で用いられる多重化装置１０について詳細に説明する。
多重化装置１０には、主な回路部として、キュー指定情報付加部１１と多重化部１２が設けられている。
【００５５】
キュー指定情報付加部１１は、入力ポートＰｉｎ０，Ｐｉｎ１ごとに設けられて、対応する入力ポートＰｉｎから入力されるフレームデータに対して、当該フレームデータの出力先に対応するキュー指定情報を付加して多重化部１２へ出力する機能を有している。
多重化部１２は、各キュー指定情報付加部１１に共通して１つ設けられて、各キュー指定情報付加部１１から出力されたフレームデータを時分割で多重化して、多重分離装置２０へ出力する機能を有している。
【００５６】
［多重分離装置］
次に、図１を参照して、本実施の形態にかかる通信用入出力装置１００で用いられる多重分離装置２０について詳細説明する。
多重分離装置２０には、主な回路部として、ＦＩＦＯ書き込み制御部２１、入力ＦＩＦＯ２２、キューマップ２３、アクセス調停部２４、出力ＦＩＦＯ２５、および出力ＦＩＦＯ読み出し制御部２６が設けられている。
【００５７】
ＦＩＦＯ書き込み制御部２１は、多重化装置１０から出力されたフレームデータを受け取り、多重化装置１０によりフレームデータに付加されたキュー指定情報により当該フレームデータに対応する出力系統を特定する機能と、多重化装置１０から出力されたフレームデータに付加されている出力先情報と対応する出力ＦＩＦＯ２５が書き込み不可状態の場合、当該フレームデータを入力ＦＩＦＯ２２へ書き込み、出力ＦＩＦＯ２５が書き込み可状態の場合、アクセス調停部２４に対して、当該出力ＦＩＦＯ２５に対する当該フレームデータの書き込みを指示する機能とを有している。
【００５８】
入力ＦＩＦＯ２２は、各出力系統に共通して設けられて、出力ＦＩＦＯ２５に対して書き込みできなかったフレームデータを順次蓄積する機能を有している。
キューマップ２３は、フレームデータに付加されているキュー指定情報と出力系統（出力ポートＰｏｕｔ）との対応関係をマッピング情報として記憶する機能を有している。この対応関係は、１対１に限らず、多対１、１対多、多対多の場合もありうる。これら対応関係は、装置外部（例えば外部の制御装置等）からの信号入力により設定できるようにしてもよい。
【００５９】
アクセス調停部２４は、出力系統（出力ポートＰｏｕｔ）ごとに、当該出力系統の出力ＦＩＦＯ２５からの書き込み許可信号の有無と、入力ＦＩＦＯ２２における当該出力系統のフレームデータの蓄積有無に基づいて、出力系統の出力ＦＩＦＯ２５に関するフレームデータ書込可否制御信号をＦＩＦＯ書き込み制御部２１へ出力する機能と、ＦＩＦＯ書き込み制御部２１から指示されたフレームデータを当該出力ＦＩＦＯ２５へ書き込む機能と、入力ＦＩＦＯ２２の蓄積状況に応じて、入力ＦＩＦＯ２２に蓄積されているフレームデータを記録装置３０へ転送する機能と、出力ＦＩＦＯ２５のいずれかが書き込み可状態となった時点で、記録装置３０および入力ＦＩＦＯ２２の順に、対応する出力系統のフレームデータを読み出して当該出力ＦＩＦＯ２５へ書き込む機能とを有している。
【００６０】
出力ＦＩＦＯ２５は、出力系統（出力ポートＰｏｕｔ）ごとに設けられて、アクセス調停部２４から書き込まれたフレームデータを順次蓄積する機能と、出力ＦＩＦＯ読み出し制御部２６からの読み出し要求に応じて蓄積されているフレームデータを読み出して出力する機能とを有している。
【００６１】
出力ＦＩＦＯ読み出し制御部２６は、出力系統（出力ポートＰｏｕｔ）ごとに設けられて、当該出力系統と対応する出力ポートＰｏｕｔからの要求に応じて、出力ＦＩＦＯ２５からフレームデータを読み出す機能と、当該出力ポートの通信速度に変換して出力ポートＰｏｕｔへ出力する機能とを有している。
【００６２】
多重分離装置２０において、キューを指定する場合、例えば、ＩＥＥＥ８０２．１Ｄ等のブリッジ機能により実現することができる。具体的には、ＭＡＣアドレス学習による出力ポート検索、ＶＬＡＮ  ＩＤによる出力ポート指定等が可能である。
【００６３】
記録装置３０からのデータ出力（読み出し）については、複数のキューにフレームデータが記録されている場合に、どのキューのフレームデータを先に出力するかを判断するための優先制御が必要となる。
複数の出力ポートを持つ通信装置においては、通常、出力ポートごとの実効出力レート（単位時間当たりの平均データ量）が同等に（公平に）なることが望まれる。ただし、入力されるフレームデータの出力先が特定の出力ポートに偏る場合もあるので、アクセス調停部２４では、このようなケースも考慮して優先制御が行われる。
【００６４】
この際、各出力ポートの物理レート（単位時間当たりの最大データ量）よりもキューからのフレームデータの出力（読み出し）の物理レート（単位時間当たりの最大データ量）の方が大きいため、同じキューから連続してフレームデータを読み出し続けることはできない。したがって、例えば、各キューの容量が同じ場合であれば、読み出し可能なキューの中でキューに蓄積されているフレームデータの量が最も多いキューからデータ出力（読み出し）を行うなどの優先制御を行えばよい。
【００６５】
［記録装置］
次に、図１を参照して、本実施の形態にかかる通信用入出力装置１００で用いられる記録装置３０について詳細説明する。
記録装置３０には、主な回路部として、メモリ３１、書き込み制御部３２、読み出し制御部３３、および論理キュー設定情報保持部３４が設けられている。
【００６６】
メモリ３１は、ＤＲＡＭチップなどの半導体メモリからなり、論理キュー設定情報保持部３４の論理キュー設定情報に応じて、出力系統ごとに設けられた論理的なキューを有し、これらキューにより当該出力系統に対応するフレームデータを記憶する機能を有している。具体的には、メモリ３１を複数のＤＲＡＭチップで構成して、複数の出力系統に対応する各キューに対応させればよく、出力系統ごとにそれぞれ１つのキューを持たせる構成の他、１つの出力系統に複数のキューを持たせることも可能である。これらはＤＲＡＭチップごとに異なるアドレスを割り振って、それぞれのキューのアドレス範囲を決めることにより実現される。この際、１つのキューを１つまたは複数のＤＲＡＭチップを割り当ててもよい。一方、１つのＤＲＡＭチップを複数のキューで使用すると、後述するようにＤＲＡＭチップアクセスのスループットが極端に劣化する可能性があるので、本実施の形態ではそのような構成は使用しない。
【００６７】
書き込み制御部３２は、多重分離装置２０から転送されたフレームデータを受け取り、当該フレームデータに付加されているキュー指定情報と、論理キュー設定情報保持部３４の論理キュー設定情報とを参照して、メモリ３１のうち、書き込み対象となる出力系統のキューへ当該フレームデータを書き込む機能を有している。
【００６８】
読み出し制御部３３は、多重分離装置２０からの読み出し指示に応じて、論理キュー設定情報保持部３４の論理キュー設定情報を参照して、メモリ３１のうち、読み出し対象となる出力系統のキューから、蓄積されているフレームデータを読み出して、多重分離装置２０へ転送する機能を有している。
【００６９】
論理キュー設定情報保持部３４は、メモリ３１内に出力系統ごとに設けられている各キューに関するアドレス範囲（先頭アドレスと最終アドレス）をマッピング情報として記憶する機能と、キューごとに対応するヘッダ情報（出力ポート番号、優先度等）を記憶する機能を有している。各キューのアドレス範囲およびヘッダ情報は予め決めておくこともできるが、装置外部（例えば外部の制御装置等）からの信号入力により設定できるようにしてもよい。
【００７０】
なお、記録装置３０へのデータ出力（書き込み）時には、すべての入力ポートＰｉｎの物理レート（単位時間当たりの最大データ量）を合計した値に相当する物理レートが必要となり、記録装置３０からのデータ出力（読み出し）時には、すべての出力ポートＰｏｕｔの物理レート（単位時間当たりの最大データ量）を合計した値に相当する物理レートが必要となる。
【００７１】
記録装置３０において、論理的な記録領域であるキューを同一メモリ空間内に複数設ける場合、メモリのアドレスを分割して、それぞれのキューのアドレス範囲を決定すればよい。各キューのアドレス範囲は予め決めておくこともできるが、装置外部（例えば外部の制御装置等）からの信号入力により設定できるようにしてもよい。
【００７２】
［第１の実施の形態の動作］
次に、本実施の形態にかかる通信用入出力装置１００の動作として、多重化装置１０、多重分離装置２０および記録装置３０の動作について詳細に説明する。
【００７３】
［多重化装置の動作］
まず、多重化装置１０の動作について説明する。
キュー指定情報付加部１１は、対応する入力ポートＰｉｎから順次入力されるフレームデータに対して、当該フレームデータの出力先に対応するキュー指定情報を付加して多重化部１２へ出力する。
多重化部１２は、各キュー指定情報付加部１１から出力されたフレームデータを時分割で多重化して、多重分離部２０へ出力する。
【００７４】
［多重分離装置の動作］
次に、多重分離装置２０の動作について説明する。
ＦＩＦＯ書き込み制御部２１は、多重化装置１０から出力されたフレームデータを受け取り、多重化装置１０によりフレームデータに付加されているキュー指定情報により当該フレームデータに対応する出力系統を特定し、アクセス調停部２４に対して、出力系統の出力ＦＩＦＯ２５へのフレームデータの書き込み指示、または０系／１系共用の入力ＦＩＦＯ２２に対するフレームデータの書き込みを行う。
【００７５】
例えば、出力ポートＰｏｕｔ０宛てのフレームデータであれば、出力ＦＩＦＯ（０系）２５、もしくは、０系／１系共用の入力ＦＩＦＯ２２にフレームデータを書き込み、出力ポートＰｏｕｔ１宛てのフレームデータであれば、出力ＦＩＦＯ（１系）２５、もしくは、０系／１系共用の入力ＦＩＦＯ２２にフレームデータを書き込む。
【００７６】
この際、ＦＩＦＯ書き込み制御部２１は、アクセス調停部２４から出力された、各出力系統の出力ＦＩＦＯ２５に関するフレームデータ書込可否制御信号に応じて、受け取ったフレームデータに対して、次の４つの処理動作のいずれかを選択する。
【００７７】
（１）出力ＦＩＦＯ（０系）２５、出力ＦＩＦＯ（１系）２５が共に書き込み不可の場合、入力ＦＩＦＯ２２への書き込みを行う。
（２）出力ＦＩＦＯ（０系）２５への書き込みは可能であるが、出力ＦＩＦＯ（１系）２５への書き込みが不可の場合、アクセス調停部２４を介した出力ＦＩＦＯ（０系）２５への書き込み、もしくは、入力ＦＩＦＯ２２への書き込みを行う。
【００７８】
（３）出力ＦＩＦＯ（１系）２５への書き込みは可能であるが、出力ＦＩＦＯ（０系）２５への書き込みが不可の場合、アクセス調停部２４を介した出力ＦＩＦＯ（１系）２５への書き込み、もしくは、入力ＦＩＦＯ２２への書き込みを行う。
（４）出力ＦＩＦＯ２５（０系）２５、出力ＦＩＦＯ（１系）２５が共に書き込み可能な場合、アクセス調停部２４を介して、フレームデータに対応する出力系統の出力ＦＩＦＯ（０系）２５、もしくは、出力ＦＩＦＯ（１系）２５への書き込みを行う。
【００７９】
図２は、第１の実施の形態にかかるアクセス調停部の要部を示す回路構成例である。図１２に示した従来技術による構成と比較して、本実施の形態にかかるアクセス調停部２４は、入力ＦＩＦＯ２２が１つのみとなっている点のほか、記録装置３０と接続している点、すなわち、入力ＦＩＦＯ２２から各出力ＦＩＦＯ２５もしくは記録装置３０への転送が可能となっている点が異なる。
【００８０】
このアクセス調停部２４には、主な回路部として、セレクタ（０系）２４Ａ、セレクタ（１系）２４Ａ、ＩＦ制御部２４Ｂ、および制御回路２４Ｃが設けられている。
セレクタ（０系）２４Ａは、ＦＩＦＯ書き込み制御部２１からのフレームデータ、入力ＦＩＦＯ２２からのフレームデータ、もしくは、ＩＦ制御部２４Ｂで受け取った記録装置３０からのフレームデータのうちのいずれか１つを選択して、出力ＦＩＦＯ（０系）２５へ出力する機能を有している。
【００８１】
セレクタ（１系）２４Ａは、ＦＩＦＯ書き込み制御部２１からのフレームデータ、入力ＦＩＦＯ２２からのフレームデータ、もしくは、ＩＦ制御部２４Ｂで受け取った記録装置３０からのフレームデータのうちのいずれか１つを選択して、出力ＦＩＦＯ（１系）２５へ出力する機能を有している。
【００８２】
ＩＦ制御部２４Ｂは、入力ＦＩＦＯ２２におけるフレームデータの蓄積状況に応じて、入力ＦＩＦＯ２２から記録装置３０へフレームデータを転送する機能と、予め設定されている出力系統ごとの優先制御ロジックに基づき、記録装置３０に対して、各出力系統と対応するキューからのフレームデータの読み出しを指示する機能と、これに応じて記録装置３０から転送されたフレームデータを、対応する出力系統のセレクタ２４Ａへ出力する機能とを有している。
【００８３】
制御回路２４Ｃは、出力系統ごとに、当該出力系統の出力ＦＩＦＯ２５からの書き込み許可信号の有無と、入力ＦＩＦＯ２２における当該出力系統のフレームデータの蓄積有無とに基づいて、出力系統の出力ＦＩＦＯ２５に関するフレームデータ書込可否制御信号をＦＩＦＯ書き込み制御部２１へ出力する機能を有している。
【００８４】
図３は、第１の実施の形態にかかるアクセス調停部の状態遷移図である。アクセス調停部２４は、出力系統ごとに、当該出力系統に対応する出力ＦＩＦＯ２５の書き込み可否状態、入力ＦＩＦＯ２２内における当該出力系統に対応するフレームデータの蓄積有無、記録装置３０の当該出力系統に対応するキュー内におけるフレームデータの蓄積有無に応じて、次の４つの遷移状態Ａ，Ｂ，Ｃ，Ｄを遷移することにより、実行する処理動作を選択する。ここでは、処理対象となるフレームデータの出力系統が０系である場合を例としてアクセス調停部２４の動作を説明するが、処理対象となるフレームデータの出力系統が１系である場合もこれと同様にしてアクセス調停部２４が動作する。
【００８５】
なお、出力ＦＩＦＯ２５の書き込み可否状態については、制御回路２４Ｃで検出した出力ＦＩＦＯ２５からの書き込み許可信号の有無で判断すればよく、入力ＦＩＦＯ２２内における当該出力系統に対応するフレームデータの蓄積有無については、入力ＦＩＦＯ２２から取得すればよい。また、記録装置３０の各キュー内におけるフレームデータの蓄積有無については、アクセス調停部２４で管理している蓄積状況で判断してもよく、ＩＦ制御部２４Ｂを介して記録装置３０から取得してもよい。
【００８６】
［出力ＦＩＦＯ（０系）の状態Ａ：初期状態］
状態Ｂ，Ｃ，Ｄにおいて、出力ＦＩＦＯ（０系）２５が書き込み可状態で、出力ＦＩＦＯ（０系）２５に対応する、記録装置３０内のキューにフレームデータが蓄積されておらず、入力ＦＩＦＯ２２内に出力ポートＰｏｕｔ０（０系）宛てのフレームデータが蓄積されていない場合、アクセス調停部２４は状態Ａに遷移し、ＦＩＦＯ書き込み制御部２１に対して、出力ＦＩＦＯ（０系）２５への書き込みが可能であることを出力する。
【００８７】
また、アクセス調停部２４は、ＦＩＦＯ書き込み制御部２１から入力されたフレームデータが、０系宛てすなわち出力ポートＰｏｕｔ０（０系）宛てとなっていた場合は、出力ＦＩＦＯ（０系）２５へのフレームデータの書き込みを行い、ＦＩＦＯ書き込み制御部２１から入力されたフレームデータが、０系宛てではなかった場合は、出力ＦＩＦＯ（１系）２５へのフレームデータの書き込みを行うか、もしくは、フレームデータの廃棄を行う。
【００８８】
この状態Ａにおいて、入力ＦＩＦＯ２２から出力ＦＩＦＯ（０系）２５へのフレームデータの転送、入力ＦＩＦＯ２２から０系に対応する記録装置３０内のキューへのフレームデータの転送、および、０系に対応する記録装置３０内のキューからのフレームデータの転送は行われない。なお、この状態Ａでは、入力ＦＩＦＯ２２から出力ＦＩＦＯ（１系）２５へのフレームデータの転送、入力ＦＩＦＯ２２から１系に対応する記録装置３０内のキューへのフレームデータの転送、および、１系に対応した記録装置３０内のキューからのフレームデータの転送が行われる場合はあるが、ＦＩＦＯ書き込み制御部２１とアクセス調停部２４との動作において競合は発生しない。
【００８９】
［出力ＦＩＦＯ（０系）の状態Ｂ］
状態Ａ，Ｃ，Ｄにおいて、出力ＦＩＦＯ（０系）２５が書き込み不可状態となった場合、アクセス調停部２４は状態Ｂに遷移する。この状態Ｂにおいて、アクセス調停部２４は、ＦＩＦＯ書き込み制御部２１に対して出力ＦＩＦＯ（０系）２５への書き込みが不可であることを出力し、入力ＦＩＦＯ２２に蓄積されているフレームデータの蓄積量（バイト数）の合計が、予め設定されているしきい値（フレームデータの最少サイズより大きい値を設定）を超えた場合に、入力ＦＩＦＯ２２内のフレームデータをまとめて記録装置３０に転送する。
【００９０】
記録装置３０は、多重分離装置２０から転送されたフレームデータに付加されているキュー指定情報、例えば出力ポート番号や優先度等に従って、メモリ３１内に設けられている論理的な記録領域であるキューを選択し、入力されたフレームデータを記録する。これにより、各出力系統（出力ＦＩＦＯ）に対応する領域（アドレス）に入力されたフレームデータが振り分けて蓄積されることになる。
【００９１】
記録装置３０に対するフレームデータの転送終了後、他の状態に遷移する前に、入力ＦＩＦＯ２２に蓄積されている残りのフレームデータのサイズ（バイト数）の合計がしきい値を超えている場合、アクセス調停部２４は、上記と同様の転送を繰り返す。
記録装置３０に対するフレームデータの転送は、複数の出力系統宛てのフレームデータもまとめて転送するが、転送したフレームデータのサイズ（バイト数）の累積値を出力系統ごとに管理する。
【００９２】
この状態Ｂにおいて、ＦＩＦＯ書き込み制御部２１から入力ＦＩＦＯ２２への０系宛てのフレームデータの書き込みが行われ、ＦＩＦＯ書き込み制御部から出力ＦＩＦＯ（０系）２５へのフレームデータの書き込み、入力ＦＩＦＯ２２から出力ＦＩＦＯ（０系）２５へのフレームデータの転送、および、０系に対応した記録装置３０のキューからのフレームデータの転送は行われない。この状態Ｂでは、入力ＦＩＦＯ２２から出力ＦＩＦＯ（１系）２５へのフレームデータの転送との競合が発生する可能性があるが、タイミング調整、例えば先に実行された転送が終了するのを待ってからもう一方の転送を開始するなどの対処が可能である。
【００９３】
［出力ＦＩＦＯ（０系）の状態Ｃ］
状態Ｂにおいて、出力ＦＩＦＯ（０系）２５が書き込み可状態となり、０系に対応した記録装置３０のキューにフレームデータが蓄積されている場合、アクセス調停部２４は状態Ｃに遷移する。この状態Ｃにおいて、アクセス調停部２４は、ＦＩＦＯ書き込み制御部２１に対して、出力ＦＩＦＯ（０系）２５への書き込みが不可であることを出力し、入力ＦＩＦＯ２２に蓄積されているフレームデータのサイズ（バイト数）の合計がしきい値（フレームデータの最少サイズより大きい値を設定）を超えた場合に、状態Ｂと同様にして入力ＦＩＦＯ２２内のフレームデータをまとめて記録装置３０に転送する。
【００９４】
記録装置３０に対するフレームデータの転送終了後、他の状態に遷移する前に、入力ＦＩＦＯ２２に蓄積されている残りのフレームデータのサイズ（バイト数）の合計がしきい値を超えている場合、アクセス調停部２４は、上記と同様の転送を繰り返す。
記録装置３０へのフレームデータ転送時には、状態Ｂと同様、出力ＦＩＦＯ２５ごとに転送したフレームデータのサイズ（バイト数）の累積値を管理する。
【００９５】
また、状態Ｃにおいて、アクセス調停部２４は、０系に対応した記録装置３０のキューに蓄積されているフレームデータを出力ＦＩＦＯ（０系）２５に対して転送する。この転送は、他の状態、例えば後述する状態Ｄに遷移するか、もしくは、出力ＦＩＦＯ（０系）２５に対応した記録装置３０の領域（アドレス）に蓄積されているフレームデータがなくなるまで行う。具体的な転送方法は後述する。
【００９６】
記録装置３０から出力ＦＩＦＯ２５へフレームデータの転送を行う際には、出力系統ごとに転送したフレームデータのサイズ（バイト数）をカウントして、入力ＦＩＦＯ２２から記録装置３０に転送したフレームデータのサイズ（バイト数）の累積値からの減算を行う。この値は、対応する出力系統ごとに、記録装置３０に蓄積されているフレームデータの有無を確認するために使用する。
【００９７】
なお、記録装置３０から出力ＦＩＦＯ（０系）２５へのフレームデータの転送と記録装置３０から出力ＦＩＦＯ（１系）２５へのフレームデータの転送が競合する場合があるので、ＩＦ制御部２４Ｂにて競合制御を行う。さらに、入力ＦＩＦＯ２２から記録装置３０へのフレームデータの転送と、記録装置３０から出力ＦＩＦＯ２５へのフレームデータの転送が競合する場合があるので、ＩＦ制御部２４Ｂにて競合制御を行う。
【００９８】
この状態Ｃにおいて、ＦＩＦＯ書き込み制御部２１から入力ＦＩＦＯ２２への０系宛てのフレームデータの書き込みが行われ、ＦＩＦＯ書き込み制御部２１から出力ＦＩＦＯ（０系）２５へのフレームデータの書き込み、および、入力ＦＩＦＯ２２から出力ＦＩＦＯ（０系）２５へのフレームデータの転送は行われない。この状態Ｃでは、状態Ｂと同様、入力ＦＩＦＯ２２から出力ＦＩＦＯ（１系）２５へのフレームデータの転送との競合も発生する可能性があるが、タイミング調整、例えば先に実行された転送が終了するのを待ってからもう一方の転送を開始するなどの対処が可能である。
【００９９】
［出力ＦＩＦＯ（０系）の状態Ｄ］
状態Ｂ，Ｃにおいて、出力ＦＩＦＯ（０系）２５が書き込み可状態で、０系に対応した記録装置３０のキューにフレームデータが蓄積されておらず、入力ＦＩＦＯ２２に０系宛てフレームデータが蓄積されている場合、アクセス調停部２４は、ＦＩＦＯ書き込み制御２１部に対して出力ＦＩＦＯ（０系）２５への書き込みが不可であることを出力し、入力ＦＩＦＯ２２内の０系宛てのフレームデータを出力ＦＩＦＯ（０系）２５に転送する。この転送は、他の状態に遷移するか、もしくは、入力ＦＩＦＯ２２に蓄積されている０系宛てのフレームデータがなくなるまで行う。
【０１００】
この状態Ｄにおいて、ＦＩＦＯ書き込み制御部２１から入力ＦＩＦＯ２２への０系宛てのフレームデータの書き込みが行われ、ＦＩＦＯ書き込み制御部２１から出力ＦＩＦＯ（０系）２５へのフレームデータの書き込み、入力ＦＩＦＯ２２から０系に対応した記録装置３０のキューへのフレームデータの転送、および、０系に対応した記録装置３０のキューからのフレームデータの転送は行われない。この状態Ｄでは、状態Ｂと同様、入力ＦＩＦＯ２２から出力ＦＩＦＯ（１系）２５へのフレームデータの転送との競合が発生する可能性があるが、タイミング調整、例えば先に実行された転送が終了するのを待ってからもう一方の転送を開始するなどの対処が可能である。
【０１０１】
図３に示した状態遷移については、出力系統ごとにそれぞれ独立に動作させることが可能である。ただし、前述したようにタイミング調整等の競合制御を行う必要がある。これら状態遷移は、図１３に示した従来技術のものと同様であるが、以下の点で従来技術の構成との違いがある。従来技術による構成では、出力ＦＩＦＯごとに状態が完全に独立している。一方、本実施の形態の構成においては、出力ＦＩＦＯ２５ごとに状態が独立しているが、状態Ｄになった場合、入力ＦＩＦＯ２２には複数の出力系統宛てのフレームデータが混在して蓄積されている場合があり、状態Ｄになった出力系統宛てのフレームデータのみを抽出してその出力ＦＩＦＯ２５へ転送する。また、本実施の形態の構成においては、状態Ｂ及び状態Ｃにおいて、入力ＦＩＦＯ２２から記録装置３０への転送を行う際には、複数の出力系統宛てのフレームデータをまとめて転送する。
【０１０２】
本実施の形態にかかる出力ＦＩＦＯ２５は、アクセス調停部２４から入力されたフレームデータを蓄積し、出力ＦＩＦＯ読み出し制御部２６からの要求に従って、フレームデータを出力する。また、フレームデータの蓄積量（入力されたデータの量から出力したデータの量を減算した値）を測定し、その値が規定値を超えた場合に、アクセス調停部２４に対する書き込み許可信号を不可状態とする。この規定値は、例えば、従来と同様に、出力ＦＩＦＯ２５に蓄積可能なデータ量の最大値から最長フレームデータ（2000Byte）分のデータ量を減算した値としてもよい。
【０１０３】
本実施の形態にかかる出力ＦＩＦＯ読み出し制御部２６は、例えば、出力ＦＩＦＯ２５に１フレームデータ以上のフレームデータが蓄積されていれば、従来と同様に、出力ＦＩＦＯ２５からフレームデータを読み出して出力ポートＰｏｕｔから出力する。
【０１０４】
［記録装置の動作］
次に、記録装置３０の動作について説明する。
書き込み制御部３２は、多重分離装置２０のアクセス調停部２４から転送されたフレームデータを、当該フレームデータに付加されているキュー指定情報に対応したメモリ３１のキューに書き込む。この際、入力ＦＩＦＯ２２には、前述したように、異なる出力系統宛てのフレームデータが混在して蓄積されるため、このような混在した状態でフレームデータが書き込み制御部３２に入力される。したがって、書き込み制御部３２は、入力されたそれぞれのフレームデータごとに、どのキューに書き込むかを識別して該当のキューに書き込む。
【０１０５】
書き込み制御部３２は、キューを識別する場合、フレームデータに付加されているキュー指定情報が、論理キュー設定情報保持部３４内に保持されているキューごとのヘッダ情報（出力ポート番号、優先度等）と一致するか否か判断する。また、書き込みに使用するアドレス（ｗｒｉｔｅポインタ）の値をキューごとに管理し、その初期値は論理キュー設定情報保持部内の該当キューの先頭アドレスとし、転送ごとに、該当キューのｗｒｉｔｅポインタを更新する。また、書き込み制御部３２は、読み出し制御部３３に対して、書き込んだフレームデータのサイズ（バイト数）をキューごとに出力する。
【０１０６】
読み出し制御部３３は、多重分離装置２０のアクセス調停部２４から指示された情報、例えば出力系統に対応するキューの情報、読み出し開始アドレス、読み出しデータサイズに従って、メモリ３１からフレームデータを読み出してアクセス調停部２４へ転送する。
【０１０７】
本実施の形態では、アクセス調停部２４が、読み出しに使用するアドレス（ｒｅａｄポインタ）をキューごとに管理し、読み出し開始アドレスと読み出しデータサイズ（バーストサイズ）をキュー情報と共に指示する。なお、各キューのｒｅａｄポインタの値は、初期値を論理キュー設定情報保持部３４内の該当キューの先頭アドレスとし、読み出し完了ごとに、該当キューのｒｅａｄポインタを更新する。
【０１０８】
また、読み出し制御部３３は、書き込み制御部３２から、書き込んだフレームデータのサイズ（バイト数）がキューごとに入力されるので、論理キュー設定情報保持部３４内の該当キューの先頭アドレスと、このデータサイズの累積値、および、それまでに読み出したデータサイズの累積値を用いて、アクセス調停部２４から指示された情報に従った読み出しが可能か否かを、例えば指定されたアドレスに読み出しが必要なフレームデータが存在するか否かを判定し、読み出し不可の場合にアクセス調停部２４に対してエラー情報を出力するようにしてもよい。
【０１０９】
［第１の実施の形態の効果］
このように、本実施の形態は、多重分離装置２０に、各出力ＦＩＦＯ２５へ書き込みできなかった通信データを一時蓄積する入力ＦＩＦＯ２２を各出力系統に共通して設け、入力ＦＩＦＯ２２における通信データの蓄積状況に応じて、入力ＦＩＦＯ２２に蓄積されている通信データを記録装置３０へ転送し、任意の出力系統の出力ＦＩＦＯ２５が書き込み可状態となった時点で、記録装置３０および入力ＦＩＦＯ２２の順に当該出力系統の通信データを読み出して当該出力ＦＩＦＯ２５へ書き込むものとし、記録装置３０が、多重分離装置２０から転送された通信データを、当該通信データに付加されている出力先情報と対応する出力系統のキューに書き込むようにしたものである。
【０１１０】
したがって、入力ＦＩＦＯ２２を各出力系統で共通して用いることができ、出力系統を増大させても、従来技術のように出力系統の増大に合わせて入力ＦＩＦＯ２２を増大させる必要はないため、入力ＦＩＦＯ２２によるハードウェア規模の増大を抑制することが可能となる。これにより、半導体集積回路等でハードウェアを構成した場合の消費電力が小さくなるという効果もある。
【０１１１】
また、本実施の形態において、出力系統ごとに１つまたは複数のキューを設け、これらキューを１つまたは複数の別個のＤＲＡＭチップ（メモリ回路）で構成してもよい。これにより、ハードウェア規模の増加が想定されるが、記録装置３０を１つの半導体集積回路で実現した場合、ＤＲＡＭチップ容量が同じであればＤＲＡＭチップのハードウェア規模の増加よりも入力ＦＩＦＯ２２の削減による効果の方が大きくなることが期待でき、入力ＦＩＦＯ２２の合計の容量を削減することが可能となる。また、メモリ３１を複数のＤＲＡＭチップで構成することにより、使用しないＤＲＡＭチップへの電源の供給を遮断して省電力化を行うこともできる。
【０１１２】
［スループットについて］
次に、本実施の形態にかかる構成のスループットを、図１１の従来構成と比較する。
従来構成において、フレームデータを入力ＦＩＦＯからＤＲＡＭチップへの転送を行うか否かを判定する際の用いる、入力ＦＩＦＯに蓄積されているフレームデータのサイズ（バイト数）の合計値を、例えば１０００Ｂｙｔｅとすると、従来構成でスループットが最低となる条件は、転送サイズが常に１０００Ｂｙｔｅで、かつ、転送ごとにＤＲＡＭチップのｒａｗ  ａｄｄｒｅｓｓが変わる場合である。したがって、従来構成によれば、ＤＲＡＭチップへの書き込みおよび読み出し共にキュー単位となり、キューごとにｒａｗ  ａｄｄｒｅｓｓが変わる可能性が高く、転送サイズが常に１０００Ｂｙｔｅの場合は、実効スループットが最低値に近い値となる可能性が高い。
【０１１３】
一方、本実施の形態によれば、メモリ３１としてＤＲＡＭチップを１つだけ使用する場合、すなわちキューを１つだけ使用する場合については、同じキューへのアクセスしかしないので、ｒａｗ  ａｄｄｒｅｓｓが変わる頻度が小さくなり、転送サイズ等を同じ条件で比較すると、従来構成より、スループットの低下が小さくなり、実効スループットが大きくなる。
また、本実施の形態によれば、複数のＤＲＡＭチップを１つのキューだけで使用する場合も、同じキューへのアクセスしかしないので、ｒａｗ  ａｄｄｒｅｓｓが変わる頻度が小さくなり、転送サイズ等を同じ条件で比較すると、従来構成より、スループットの低下が小さくなり、実効スループットが大きくなる。
【０１１４】
さらに、本実施の形態において、キューごとに別個のＤＲＡＭチップで構成した場合、キューごとにＤＲＡＭチップが変わるので、従来構成でキューごとにｒａｗ  ａｄｄｒｅｓｓが変わる場合と同等のオーバーヘッド時間が発生する。しかし、キューごとにアクセスするＤＲＡＭチップが異なるので、あるキューへのアクセスのオーバーヘッド時間の経過を待たずに、別のキューのアクセス処理を開始でき、キューごとに並行処理ができるので、オーバーヘッド時間が発生しても極端なスループット低下は発生しない。
【０１１５】
例えば、転送サイズが常に最小の64Byteだと仮定しても、各キューへのアクセスのスループットは、同一キューへのアクセスのみであるため、次の式（６）で求められる図１０の従来構成の最小スループットより大きくなる。
32[bit]×312.5[MHz]×51.2[ns]／（16[ns]＋51.2[ns]）＝約7.6[Gbit/s] …（６）
（ＴＤ＝64[Byte]×8／（32×312.5[MHz]）＝51.2ns）
【０１１６】
仮に、メモリ３１を２つのキューで構成し、各キューへのアクセス頻度が同等の場合、各キューのアクセスに必要となるスループットが10[Gbit/s] ×0.5＝5[Gbit/s]なので、上記スループットですべてのアクセスを行うことができ、通信用入出力装置１００としての実効スループットは10Gbit/sとなる。３つ以上のキューで構成する場合も同様である。従って、本実施の形態の構成は、従来構成より実効スループットが小さくなることは無く、極端なスループット低下は発生しない。
【０１１７】
［第２の実施の形態］
次に、本発明の第２の実施の形態にかかる通信用入出力装置１００について説明する。
本実施の形態は、第１の実施の形態と比較して、読み出し開始アドレスを用いずに読み出しを行う点が異なる。以下に、本実施の形態と第１の実施の形態との差分について説明する。なお、記録装置３０の回路構成は図１と同様である。
【０１１８】
すなわち、本実施の形態において、記録装置３０の読み出し制御部３３は、多重分離装置２０のアクセス調停部２４から指示された情報、すなわち出力系統に対応するキューを識別するためのキュー情報、および読み出しデータサイズに従って、メモリ３１からフレームデータを読み出してアクセス調停部２４へ転送する機能を有している。
したがって、本実施の形態において、アクセス調停部２４は、読み出しに使用するアドレス（ｒｅａｄポインタ）を管理せず、読み出し時には読み出しデータサイズ（バーストサイズ）とキュー情報のみを指示する。
【０１１９】
読み出し制御部３３は、読み出しに使用するアドレス（ｒｅａｄポインタ）をキューごとに管理し、アクセス調停部２４から指示されたキュー情報に対応するｒｅａｄポインタを読み出し開始アドレスとする。なお、各キューのｒｅａｄポインタの値は、初期値を論理キュー設定情報保持部３４内の該当キューの先頭アドレスとし、読み出し完了ごとに、該当キューのｒｅａｄポインタを更新する。
【０１２０】
また、読み出し制御部３３は、書き込み制御部３２から、書き込んだフレームデータのサイズ（バイト数）がキューごとに入力されるので、論理キュー設定情報保持部３４内の該当キューの先頭アドレスと、このデータサイズの累積値、および、それまでに読み出したデータサイズの累積値を用いて、アクセス調停部２４から指示された情報に従った読み出しが可能か否か、すなわち指定されたキューに読み出しが必要なフレームデータが存在するか否かを判定し、読み出し不可の場合にアクセス調停部２４に対してエラー情報を出力するようにしてもよい。
【０１２１】
［第２の実施の形態の効果］
このように、本実施の形態は、書き込み制御部３２が、アクセス調停部２４から指示された、読み出し対象となるキューを識別するためのキュー情報に基づいて、当該キューに関するメモリ３１上でのアドレス情報を特定し、当該アドレス情報に基づいて、メモリ３１から対応するキューに蓄積されているフレームデータを読み出してアクセス調停部２４へ転送するようにしたものである。
これにより、第１の実施の形態と同様の効果が得られるのに加えて、アクセス調停部２４からの開始アドレスの指示が不要なので、アクセス調停部２４のハードウェア規模を削減することが可能となる。
【０１２２】
［第３の実施の形態］
次に、本発明の第３の実施の形態にかかる通信用入出力装置１００について説明する。
本実施の形態は、第１の実施の形態と比較して、キュー情報として、出力ポートＩＤもしくはユーザＩＤを用い、このキュー情報に対応するキューに蓄積されているフレームデータを、優先度の高い論理キューから順番に出力する点が異なる。以下に、本実施の形態と第２の実施の形態との差分を説明する。なお、記録装置３０の回路構成は図１と同様である。
【０１２３】
すなわち、本実施の形態において、記録装置３０の読み出し制御部３３は、多重分離装置２０のアクセス調停部２４から指示された情報、すなわち出力ポートＩＤもしくはユーザＩＤと、読み出しデータサイズとに従って、メモリ３１からフレームデータを読み出してアクセス調停部２４へ転送する機能を有している。
したがって、本実施の形態において、アクセス調停部２４は、読み出しに使用するアドレス（ｒｅａｄポインタ）を管理せず、読み出し時には読み出しデータサイズ（バーストサイズ）と出力ポートＩＤ（出力ＦＩＦＯ２５ごとのＩＤ）もしくはユーザＩＤのみを指示する。なお、ユーザＩＤを指示する場合は、アクセス調停部２４でユーザＩＤごとに対応する出力ポートＩＤを管理する。
【０１２４】
読み出し制御部３３は、読み出しに使用するアドレス（ｒｅａｄポインタ）をキューごとに管理するとともに、キューごとに対応する出力ポートＩＤもしくはユーザＩＤを管理する。
読み出し制御部３３は、アクセス調停部２４から指示された出力ポートＩＤもしくはユーザＩＤに対応するキューのｒｅａｄポインタを読み出し開始アドレスとする。また、各キューのｒｅａｄポインタの値は、初期値を論理キュー設定情報保持部３４内の該当キューの先頭アドレスとし、読み出し完了ごとに、該当キューのｒｅａｄポインタを更新する。
【０１２５】
なお、指定された出力ポートＩＤもしくはユーザＩＤに対して複数のキューが対応している場合、読み出し制御部３３にて優先制御を行って、読み出すキューを選択する。この際、優先制御の方法は、例えば、予めキューごとに優先度を決めておく方法や、キューごとの優先度を読み出しごとに変更するラウンドロビンと呼ばれている方法等の従来技術を使用すればよい。
【０１２６】
また、読み出し制御部３３は、書き込み制御部３２から、書き込んだフレームデータのサイズ（バイト数）がキューごとに入力されるので、論理キュー設定情報保持部３４内の該当キューの先頭アドレスと、このデータサイズの累積値、および、それまでに読み出したデータサイズの累積値を用いて、アクセス調停部２４から指示された情報に従った読み出しが可能か否か、すなわち指定されたキューに読み出しが必要なフレームデータが存在するか否かを判定し、読み出し不可の場合にアクセス調停部２４に対してエラー情報を出力するようにしてもよい。
【０１２７】
さらに、指定された出力ポートＩＤもしくはユーザＩＤに対応するキューが複数存在し、指定された読み出しデータサイズ（バーストサイズ）が対応するキューの中で最も優先度の高いキューに蓄積されているデータの量よりも大きい場合、読み出し制御部３３は、読み出しデータサイズ（バーストサイズ）分まで、優先度の高い順に対応する複数のキューのデータを読み出して、まとめてアクセス調停部２４へ転送するようにしても良い。
【０１２８】
［第３の実施の形態の効果］
このように、本実施の形態は、書き込み制御部３２が、アクセス調停部２４から指示された、読み出し対象となるフレームデータに関連するユーザＩＤまたは出力系統に関連する出力ポートＩＤに基づいて、対応するキューに関するメモリ３１上でのアドレス情報を特定し、当該アドレス情報に基づいて、メモリ３１から対応するキューに蓄積されているフレームデータを読み出してアクセス調停部２４へ転送し、対応するキューが複数存在する場合は、最も優先度の高いキューから順にフレームデータを読み出してアクセス調停部２４へ転送するようにしたものである。
これにより、第１の実施の形態と同様の効果が得られるのに加えて、アクセス調停部２４における優先制御のためのハードウェアの一部を削減でき、アクセス調停部２４にかかるハードウェア規模を削減することが可能となる。
【０１２９】
［第４の実施の形態］
次に、図４を参照して、本発明の第４の実施の形態にかかる通信用入出力装置１００について説明する。図４は、第４の実施の形態にかかるアクセス調停部の要部を示す回路構成例である。
本実施の形態は、第１の実施の形態と比較して、多重分離装置２０のアクセス調停部２４において、入力ＦＩＦＯ２２から各出力ＦＩＦＯ２５に対応するセレクタ２４Ａへの直接転送を行わない点が異なる。
【０１３０】
本実施の形態において、ＩＦ制御部２４Ｂは、第１の実施の形態におけるＩＦ制御部２４Ｂと同様に、入力ＦＩＦＯ２２におけるフレームデータの蓄積状況に応じて、入力ＦＩＦＯ２２から記録装置３０へフレームデータを転送する機能と、予め設定されている出力系統ごとの優先制御ロジックに基づき、記録装置３０に対して、各出力系統と対応するキューからのフレームデータの読み出しを指示する機能と、これに応じて記録装置３０から転送されたフレームデータを、対応する出力系統のセレクタ２４Ａへ出力する機能とを有している。
【０１３１】
セレクタ（０系）２４Ａは、ＦＩＦＯ書き込み制御部２１からのフレームデータ、もしくは、ＩＦ制御部２４Ｂから受け取った記録装置３０からのフレームデータを出力ＦＩＦＯ（０系）２５へ出力する機能を有している。
セレクタ（１系）２４Ａは、ＦＩＦＯ書き込み制御部２１からのフレームデータ、もしくは、ＩＦ制御部２４Ｂから受け取った記録装置３０からのフレームデータを出力ＦＩＦＯ（１系）２５へ出力する機能を有している。
【０１３２】
図５は、第４の実施の形態にかかるアクセス調停部の状態遷移図である。図３との差分は状態Ｄが存在しない点である。本実施の形態の構成では、出力系統ごとに、アクセス調停部２４の遷移状態が完全に独立している。以下に、本実施の形態と第１の実施の形態との差分を説明する。
【０１３３】
アクセス調停部２４は、出力系統ごとに、当該出力系統に対応する出力ＦＩＦＯ２５の書き込み可否状態、入力ＦＩＦＯ２２内における当該出力系統に対応するフレームデータの蓄積有無、記録装置３０の当該出力系統に対応するキュー内におけるフレームデータの蓄積有無に応じて、次の３つの遷移状態Ａ，Ｂ，Ｃを遷移することにより、実行する処理動作を選択する。ここでは、処理対象となるフレームデータの出力系統が０系である場合を例としてアクセス調停部２４の動作を説明するが、処理対象となるフレームデータの出力系統が１系である場合もこれと同様にしてアクセス調停部２４が動作する。
【０１３４】
［出力ＦＩＦＯ（０系）の状態Ａ：初期状態］
状態Ｂ，Ｃにおいて、出力ＦＩＦＯ（０系）２５が書き込み可状態で、出力ＦＩＦＯ（０系）２５に対応する、記録装置３０内のキューにフレームデータが蓄積されておらず、入力ＦＩＦＯ２２内に出力ポートＰｏｕｔ０（０系）宛てのフレームデータが蓄積されていない場合、アクセス調停部２４は状態Ａに遷移し、ＦＩＦＯ書き込み制御部２１に対して、出力ＦＩＦＯ（０系）２５への書き込みが可能であることを出力する。
【０１３５】
また、アクセス調停部２４は、ＦＩＦＯ書き込み制御部２１から入力されたフレームデータが、０系宛てすなわち出力ポートＰｏｕｔ０（０系）宛てとなっていた場合は、出力ＦＩＦＯ（０系）２５へのフレームデータの書き込みを行い、ＦＩＦＯ書き込み制御部２１から入力されたフレームデータが、０系宛てではなかった場合は、出力ＦＩＦＯ（１系）２５へのフレームデータの書き込みを行うか、もしくは、フレームデータの廃棄を行う。
【０１３６】
この状態Ａにおいて、入力ＦＩＦＯ２２から０系に対応する記録装置３０内のキューへのフレームデータの転送、および、０系に対応する記録装置３０内のキューからのフレームデータの転送は行われない。なお、この状態Ａでは、１系に対応する記録装置３０内のキューへのフレームデータの転送、および、１系に対応した記録装置３０内のキューからのフレームデータの転送が行われる場合はあるが、ＦＩＦＯ書き込み制御部２１とアクセス調停部２４との動作において競合は発生しない。
【０１３７】
［出力ＦＩＦＯ（０系）の状態Ｂ］
状態Ａ，Ｃにおいて、出力ＦＩＦＯ（０系）２５が書き込み不可状態となった場合、アクセス調停部２４は状態Ｂに遷移する。この状態Ｂにおいて、アクセス調停部２４は、ＦＩＦＯ書き込み制御部２１に対して出力ＦＩＦＯ（０系）２５への書き込みは不可であることを出力し、入力ＦＩＦＯ２２に蓄積されているフレームデータのサイズ（バイト数）の合計が、予め設定されているしきい値（フレームデータの最少サイズより大きい値を設定）を超えた場合に、入力ＦＩＦＯ２２内のフレームデータをまとめて記録装置３０に転送する。
【０１３８】
記録装置３０は、多重分離装置２０から転送されたフレームデータに付加されているキュー指定情報、例えば出力ポート番号や優先度等に従って、メモリ３１内に設けられている論理的な記録領域であるキューを選択し、入力されたフレームデータを記録する。これにより、各出力系統（出力ＦＩＦＯ）に対応する領域（アドレス）に入力されたフレームデータが振り分けて蓄積されることになる。
【０１３９】
記録装置３０に対するフレームデータの転送終了後、他の状態に遷移する前に、入力ＦＩＦＯ２２に蓄積されている残りのフレームデータのサイズ（バイト数）の合計がしきい値を超えている場合、アクセス調停部２４は、上記と同様の転送を繰り返す。
記録装置３０に対するフレームデータの転送は、出力系統宛てのフレームデータをまとめて転送するが、転送したフレームデータのサイズ（バイト数）の累積値を出力系統ごとに管理する。
【０１４０】
この状態Ｂにおいて、ＦＩＦＯ書き込み制御部２１から入力ＦＩＦＯ２２への０系宛てのフレームデータの書き込みが行われ、ＦＩＦＯ書き込み制御部から出力ＦＩＦＯ（０系）２５へのフレームデータの書き込み、および、０系に対応した記録装置３０のキューからのフレームデータの転送は行われない。
【０１４１】
［出力ＦＩＦＯ（０系）の状態Ｃ］
状態Ｂにおいて、出力ＦＩＦＯ（０系）２５が書き込み可状態となり、０系に対応した記録装置３０のキューにフレームデータが蓄積されている場合、アクセス調停部２４は状態Ｃに遷移する。この状態Ｃにおいて、アクセス調停部２４は、ＦＩＦＯ書き込み制御部２１に対して、出力ＦＩＦＯ（０系）２５への書き込みが不可であることを出力し、入力ＦＩＦＯ２２に蓄積されているフレームデータのサイズ（バイト数）の合計がしきい値（フレームデータの最少サイズより大きい値を設定）を超えた場合に、状態Ｂと同様にして入力ＦＩＦＯ２２内のフレームデータをまとめて記録装置３０に転送する。
【０１４２】
記録装置３０に対するフレームデータの転送終了後、他の状態に遷移する前に、入力ＦＩＦＯ２２に蓄積されているフレームデータのサイズ（バイト数）の合計がしきい値を超えている場合、アクセス調停部２４は、上記と同様の転送を繰り返す。
記録装置３０に対するフレームデータの転送は、複数の出力系統宛てのフレームデータもまとめて転送するが、転送したフレームデータのサイズ（バイト数）の累積値を出力系統ごとに管理する。
【０１４３】
また、この状態Ｃにおいて、アクセス調停部２４は、０系に対応した記録装置３０のキューに蓄積されているフレームデータを出力ＦＩＦＯ（０系）２５に対して転送する。この転送は、他の状態に遷移するか、もしくは、０系に対応した記録装置３０のキューに蓄積されているフレームデータがなくなるまで行う。
【０１４４】
記録装置３０から出力ＦＩＦＯ２５へフレームデータの転送を行う際には、出力系統ごとに転送したフレームデータのサイズ（バイト数）をカウントして、入力ＦＩＦＯ２２から記録装置３０に転送したフレームデータのサイズ（バイト数）の累積値からの減算を行う。この値は、対応する出力系統ごとに、記録装置３０に蓄積されているフレームデータの有無を確認するために使用する。
【０１４５】
なお、記録装置３０から出力ＦＩＦＯ（０系）２５へのフレームデータの転送と記録装置３０から出力ＦＩＦＯ（１系）２５へのフレームデータの転送が競合する場合があるので、ＩＦ制御部２４Ｂにて競合制御を行う。さらに、入力ＦＩＦＯ２２から記録装置３０へのフレームデータの転送と、記録装置３０から出力ＦＩＦＯ２５へのフレームデータの転送が競合する場合があるので、ＩＦ制御部２４Ｂにて競合制御を行う。
【０１４６】
この状態Ｃにおいて、ＦＩＦＯ書き込み制御部２１から入力ＦＩＦＯ２２への０系宛てのフレームデータの書き込みが行われ、ＦＩＦＯ書き込み制御部２１から出力ＦＩＦＯ（０系）２５へのフレームデータの書き込みは行われない。
なお、本実施の形態の構成は、第１の実施例と同様、状態Ｂ，Ｃにおいて、入力ＦＩＦＯ２２から記録装置３０へのフレームデータの転送を行う際には、複数の出力系統宛てのフレームデータをまとめて転送する。
【０１４７】
［第４の実施の形態の効果］
このように、本実施の形態は、アクセス調停部２４が、出力ＦＩＦＯ２５ごとに設けられたセレクタ２４Ａ、および、記録装置３０との間でフレームデータの転送を行うＩＦ制御部２４Ｂを有し、セレクタ２４Ａは、ＦＩＦＯ書き込み制御部２１からのフレームデータ、もしくはＩＦ制御部２４Ｂからのフレームデータのいずれか１つを選択して対応する出力ＦＩＦＯ２５へ書き込み、ＩＦ制御部２４Ｂは、入力ＦＩＦＯ２２から記録装置３０へフレームデータを転送し、記録装置３０から転送されたフレームデータを対応するセレクタ２４Ａへ出力するようにしたものである。
これにより、第１〜第３の実施の形態と同様の効果が得られるのに加えて、入力ＦＩＦＯ２２から出力ＦＩＦＯ２５への転送のためのハードウェアを省くことができ、アクセス調停部２４のハードウェア規模を削減できる。
【０１４８】
［第５の実施の形態］
次に、図６を参照して、本発明の第５の実施の形態にかかる通信用入出力装置１００について説明する。図６は、第５の実施の形態にかかる通信用入出力装置の構成を示すブロック図である。
【０１４９】
本実施の形態は、第１の実施の形態と比較して、多重分離装置２０に、マルチキャスト用の出力系統、すなわちＭＣ系統に対応する出力ＦＩＦＯ２７を設け、マルチキャスト用のフレームデータを入力出力可能とした点が異なる。以下に、本実施の形態と第１の実施の形態との差分を説明する。なお、本実施の形態では、マルチキャストに対応する場合を例として説明するが、ブロードキャストについても後述の通り同様にして対応することができる。
【０１５０】
本実施の形態にかかる多重分離装置２０において、入力ＦＩＦＯ２２は、各出力系統（０系，１系，ＭＣ系）に共通して設けられて、出力ＦＩＦＯ２５に対して書き込みできなかったフレームデータを順次蓄積する機能を有している。
【０１５１】
ＦＩＦＯ書き込み制御部２１は、多重化装置１０から出力されたフレームデータを受け取り、多重化装置１０によりフレームデータに付加されたキュー指定情報により当該フレームデータに対応する出力系統（０系，１系，ＭＣ系）を特定する機能と、多重化装置１０から出力されたフレームデータに付加されている出力先情報と対応する出力ＦＩＦＯ２５が書き込み不可状態の場合、当該フレームデータを入力ＦＩＦＯ２２へ書き込み、当該出力ＦＩＦＯ２５が書き込み可状態の場合、アクセス調停部２４に対して、当該出力ＦＩＦＯ２５に対する当該フレームデータの書き込みを指示する機能を有している。
【０１５２】
アクセス調停部２４は、出力系統（出力ポートＰｏｕｔ）ごとに、当該出力系統の出力ＦＩＦＯ２５からの書き込み許可信号の有無と、入力ＦＩＦＯ２２における当該出力系統のフレームデータの蓄積有無に基づいて、出力系統の出力ＦＩＦＯ２５に関するフレームデータ書込可否制御信号をＦＩＦＯ書き込み制御部２１へ出力する機能と、ＦＩＦＯ書き込み制御部２１から指示されたフレームデータを当該出力ＦＩＦＯ２５へ書き込む機能と、入力ＦＩＦＯ２２の蓄積状況に応じて、入力ＦＩＦＯ２２に蓄積されているフレームデータを記録装置３０へ転送する機能と、出力ＦＩＦＯ２５のいずれかが書き込み可状態となった時点で、記録装置３０および入力ＦＩＦＯ２２の順に、対応する出力系統のフレームデータを読み出して当該出力ＦＩＦＯ２５へ書き込む機能とを有している。
【０１５３】
出力ＦＩＦＯ（ＭＣ系）２７は、アクセス調停部２４から書き込まれたマルチキャスト用フレームデータを順次蓄積する機能と、出力ＦＩＦＯ読み出し制御部（０系）２６および出力ＦＩＦＯ読み出し制御部（１系）２６からの読み出し要求に応じて、蓄積されているマルチキャスト用フレームデータを読み出して出力する機能とを有している。
【０１５４】
ただし、マルチキャスト用フレームデータの出力先は複数であるため、出力ＦＩＦＯ（ＭＣ系）２７は、出力すべきすべての出力ＦＩＦＯ読み出し制御部２６への出力が完了するまでフレームデータを保持し、例えば、出力先となる各出力ＦＩＦＯ読み出し制御部２６は、それぞれ個別に、出力ＦＩＦＯ（ＭＣ系）２７に対して読み出し要求信号を出力するものとする。また、フレームデータの蓄積量（入力されたデータの量から出力したデータの量を減算した値）を測定し、その値が規定値を超えた場合に、アクセス調停部２４に対する書き込み許可信号を不可状態とする。この規定値は、例えば、従来と同様に、出力ＦＩＦＯ（ＭＣ系）２７に蓄積可能なデータ量の最大値から最長フレームデータ（2000Byte）分のデータ量を減算した値としてもよい。
【０１５５】
図７は、第５の実施の形態にかかるアクセス調停部の要部を示す回路構成例である。図２の構成と比較して、本実施の形態にかかるアクセス調停部２４には、マルチキャスト用のセレクタ２４Ｄが設けられている点、および、制御回路２４Ｃが出力ＦＩＦ０（ＭＣ系）２７からの書き込み許可信号に対応している点が異なる。
【０１５６】
セレクタ２４Ｄは、ＦＩＦＯ書き込み制御部２１からのマルチキャスト用フレームデータ、入力ＦＩＦＯ２２からのマルチキャスト用フレームデータ、もしくは、ＩＦ制御部２４Ｂで受け取った記録装置３０からのマルチキャスト用フレームデータのうちのいずれか１つを選択して、出力ＦＩＦＯ（ＭＣ系）２７へ出力する機能を有している。
【０１５７】
制御回路２４Ｃは、出力系統ごとに、当該出力系統の出力ＦＩＦＯ２５および出力ＦＩＦＯ２７からの書き込み許可信号の有無と、ＩＦ制御部２４Ｂから出力された入力ＦＩＦＯ２２における当該出力系統のフレームデータの蓄積有無とに基づいて、出力系統の出力ＦＩＦＯ２５および出力ＦＩＦＯ２７に関するフレームデータ書込可否制御信号をＦＩＦＯ書き込み制御部２１へ出力する機能を有している。
【０１５８】
したがって、多重分離装置２０では、出力ＦＩＦＯ（ＭＣ系）２７に１フレームデータ以上のマルチキャスト用フレームデータが蓄積されていない場合や、出力ＦＩＦＯ（ＭＣ系）２７からの読み出し要求がない場合、第１の実施の形態と同様に動作する。
また、出力ＦＩＦＯ（ＭＣ系）２７からの読み出し要求があり、その他の出力ＦＩＦＯ２５に１フレームデータ以上のフレームデータが蓄積されていない場合、出力ＦＩＦＯ（ＭＣ系）２７からマルチキャスト用フレームデータを読み出して、対応する出力ポートＰｏｕｔ０，Ｐｏｕｔ１から出力する。
【０１５９】
一方、出力ＦＩＦＯ（ＭＣ系）２７からの読み出し要求があり、その他の出力ＦＩＦＯ２５に１フレームデータ以上のフレームデータが蓄積されている場合には、例えば、出力系統（０系，１系，ＭＣ系）ごとの優先度に応じて、出力すべき出力ＦＩＦＯ２５，２７を選択し、該当する出力ＦＩＦＯ２５，２７からフレームデータを読み出して出力ポートから出力する。
【０１６０】
［第５の実施の形態の効果］
このように、本実施の形態は、多重分離装置２０に、マルチキャスト用の出力系統であるＭＣ系統としてマルチキャスト用出力ＦＩＦＯ２７を設け、アクセス調停部２４から書き込まれたマルチキャスト用フレームデータを順次蓄積し、出力ポートＰｏｕｔ０，Ｐｏｕｔ１ごとに設けられた出力ＦＩＦＯ読み出し制御部２６からの読み出し要求に応じて、蓄積しているマルチキャスト用フレームデータを読み出して出力するとともに、当該マルチキャスト用フレームデータの出力先となるすべての出力ＦＩＦＯ読み出し制御部２６への出力が完了するまで当該マルチキャスト用フレームデータを保持するようにしたものである。
【０１６１】
そして、アクセス調停部２４により、マルチキャスト用の出力系統を含む各出力系統（０系，１系，ＭＣ系）を出力宛てとするフレームデータについて、ＦＩＦＯ書き込み制御部２１から出力ＦＩＦＯ２５，２７への書き込み、入力ＦＩＦＯ２２から出力ＦＩＦＯ２５，２７または記録装置３０への書き込み、記録装置３０から出力ＦＩＦＯ２５，２７への書き込みを行うようにしたものである。
これにより、第１の実施の形態と同様の効果が得られるのに加えて、マルチキャスト用フレームデータの入出力が可能となる。
【０１６２】
また、本実施の形態では、出力ポートＰｏｕｔが２つ設けられている構成であるため、マルチキャストフレームデータ用の出力ＦＩＦＯ２７は、ブロードキャストフレームデータ用の出力ＦＩＦＯとして共用することができる。なお、出力ポートが３以上の場合、ブロードキャストフレームデータはすべての出力ポートから出力するのに対して、マルチキャストフレームデータは出力しない出力ポートが存在する場合がある。この場合には、ブロードキャスト用出力ＦＩＦＯを設けるとともに、宛先の組み合わせ（例えば、特許文献１の第２の実施形態を参照）ごとにマルチキャスト用出力ＦＩＦＯ２７を設ければよい。
【０１６３】
［実施の形態の拡張］
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。また、各実施形態については、矛盾しない範囲で任意に組み合わせて実施することができる。
【符号の説明】
【０１６４】
１００…通信用入出力装置、１０…多重化装置、１１…キュー指定情報付加部、１２…多重化部、２０…多重分離装置、２１…ＦＩＦＯ書き込み制御部、２２…入力ＦＩＦＯ、２３…キューマップ、２４…アクセス調停部、２４Ａ…セレクタ、２４Ｂ…ＩＦ制御部、２４Ｃ…制御回路、２４Ｄ…セレクタ（マルチキャスト用）、２５…出力ＦＩＦＯ、２６…出力ＦＩＦＯ読み出し制御部、２７…出力ＦＩＦＯ（マルチキャスト用）、３０…記録装置、３１…メモリ、３２…書き込み制御部、３３…読み出し制御部、３４…論理キュー設定情報保持部、Ｐｉｎ０…入力ポート（０系）、Ｐｉｎ１…入力ポート（１系）、Ｐｏｕｔ０…出力ポート（０系）、Ｐｏｕｔ１…出力ポート（１系）。
【図１】
2016134711.tif 000003
【図２】
2016134711.tif 000004
【図３】
2016134711.tif 000005
【図４】
2016134711.tif 000006
【図５】
2016134711.tif 000007
【図６】
2016134711.tif 000008
【図７】
2016134711.tif 000009
【図８】
2016134711.tif 000010
【図９】
2016134711.tif 000011
【図１０】
2016134711.tif 000012
【図１１】
2016134711.tif 000013
【図１２】
2016134711.tif 000014
【図１３】
2016134711.tif 000015