JP6212059B2 - 通信用入出力装置 - Google Patents

通信用入出力装置 Download PDF

Info

Publication number
JP6212059B2
JP6212059B2 JP2015007491A JP2015007491A JP6212059B2 JP 6212059 B2 JP6212059 B2 JP 6212059B2 JP 2015007491 A JP2015007491 A JP 2015007491A JP 2015007491 A JP2015007491 A JP 2015007491A JP 6212059 B2 JP6212059 B2 JP 6212059B2
Authority
JP
Japan
Prior art keywords
output
fifo
frame data
input
communication data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015007491A
Other languages
English (en)
Other versions
JP2016134711A (ja
Inventor
川村 智明
智明 川村
重松 智志
智志 重松
草場 律
律 草場
晶子 大輝
晶子 大輝
寛之 鵜澤
寛之 鵜澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2015007491A priority Critical patent/JP6212059B2/ja
Publication of JP2016134711A publication Critical patent/JP2016134711A/ja
Application granted granted Critical
Publication of JP6212059B2 publication Critical patent/JP6212059B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Time-Division Multiplex Systems (AREA)

Description

本発明は、データ通信技術に関し、特に通信データ(フレームデータ)の入出力を行う通信用入出力装置で用いられるメモリアクセス制御技術に関する。
従来、インターネット通信等で使用されるイーサネット(登録商標)フレームデータ等の通信データの入出力を行う通信用入出力装置として、例えば、特許文献1のような構成が提案されている。図8は、従来の通信用入出力装置(内蔵メモリ)の構成を示すブロック図である。
この通信用入出力装置は、多重化装置MUX、記録装置MEM、および多重分離装置DEMUXから構成されている。
MUXは、入力ポートごとに設けられたキュー指定情報付加部により、入力されたフレームデータに対して、当該フレームデータの出力先に対応するキュー指定情報を付加した後、多重化部により多重化して出力する。
MEMは、MUXから時分割多重で出力されたフレームデータを書き込み制御部により受け取り、各フレームデータに付加されているキュー指定情報とキューマップとを参照し、内蔵するメモリ(DRAMチップ)内にフレームデータの出力先ごとに論理的に設けたキューのうち、キュー指定情報と対応するキューのアドレスへフレームデータを書き込む。また、MEMは、DEMUXからの指示に応じて、読出制御部により対応するキューからフレームデータを読み出して、DEMUXに出力する。
DEMUXは、読出部により、出力ポートごとの優先制御ロジックに基づき、MEM内の優先出力ポートに対応する出力先のキューからフレームデータを読み出して、振分部により対応する出力ポートへ振り分け、出力ポートごとに設けられた速度変換部により当該出力ポートの通信速度に変換して出力する。
図9は、キューと出力ポートとの対応を示す説明図であり、出力ポート数が3の場合が示されている。図9(a)では、キューと出力ポートとが1対1に対応付けられているが、図9(b)のように、1対多に対応付けることにより、1つのフレームデータを複数の出力ポートが出力する場合に対応可能となる。また、図9(c)のように、出力ポートごとに、読出優先度に応じたキューを対応付けることもできる。
特開2011−010195号公報
前述の図8で説明した従来の通信用入出力装置は、メモリをMEMに内蔵した構成例であるが、メモリを外部メモリとしてMEMに外付けすることも考えられる。図10は、通信用入出力装置(MEM外付けメモリ)の構成を示すブロック図である。これにより、MEMのハードウェア規模に関する各種制約を受けることなく、メモリの記憶容量を増大することが可能となる。
ここで、MEMに外付けする外部メモリとして、DRAMチップを使用した場合、write/readアクセスの実効スループットがデータバスの速度より小さくなり、特に短フレームデータが連続入力すると、極端に実効スループットが低下するという問題点がある。
このようなスループットの低下を抑止するため、DEMUXから外部メモリをアクセスする構成が考えられる。図11は、通信用入出力装置(DEMUX外付けメモリ)の構成を示すブロック図である。図12は、図11のアクセス調停部の構成例である。図13は、図11のアクセス調停部に関する状態遷移図である。
しかしながら、このような構成において、出力ポート数が多くなると、入力FIFO等の数も多くなるため、ハードウェア規模が増大してしまうという問題点がある。
以下、従来の図11〜図13に示した構成にかかる問題点について詳細に説明する。
DEMUXにおいて、FIFO書き込み制御部は、MUX内のキュー指定情報付加部により付加されたキュー指定情報に従って、対応する系統(0系もしくは1系)の入力FIFOへ、もしくはアクセス調停部を介して出力FIFOへ、MUXから受け取ったフレームデータを書き込む。
例えば、出力ポートPout0宛てのフレームデータであれば、入力FIFO(0系)もしくは出力FIFO(0系)にフレームデータを書き込み、出力ポートPout1宛てのフレームデータであれば、入力FIFO(1系)もしくは出力FIFO(1系)にフレームデータを書き込む。
図11の構成例において、FIFO書き込み制御部は、MUXから受け取ったフレームデータの書き込み処理を行う場合、アクセス調停部から出力される、出力FIFO(0系)、出力FIFO(1系)への書き込み可否かを示す制御信号に基づいて、次の4つの処理動作のいずれかを選択する。
(1)出力FIFO(0系)、出力FIFO(1系)が共に書き込み不可の場合、キュー指定情報に応じて、入力FIFO(0系)、もしくは、入力FIFO(1系)への書き込みを行う。(2)出力FIFO(0系)への書き込みは可能だが、出力FIFO(1系)への書き込みが不可の場合、キュー指定情報に応じて、出力FIFO(0系)、もしくは、入力FIFO(1系)への書き込みを行う。この際、出力FIFO(0系)への書き込みはアクセス調停部を介して行う。
(3)出力FIFO(1系)への書き込みは可能だが、出力FIFO(0系)への書き込みが不可の場合、キュー指定情報に応じて、出力FIFO(1系)、もしくは、入力FIFO(0系)への書き込みを行う。この際、出力FIFO(1系)への書き込みはアクセス調停部を介して行う。(4)出力FIFO(0系)、出力FIFO(1系)共に書き込みが可能な場合、キュー指定情報に応じて、出力FIFO(0系)、もしくは、出力FIFO(1系)への書き込みを行う(アクセス調停部を介して行う)。
アクセス調停部は、FIFO書き込み制御部から出力FIFOへのフレームデータの書き込みを仲介する他、入力FIFOから外部メモリや出力FIFOへのフレームデータの転送、および、外部メモリから出力FIFOへのフレームデータの転送等を行う。
図12に示したアクセス調停部の構成例において、アクセス調停部は0系/1系の出力FIFOからの書込許可入力に対応して以下の様に動作する。
[出力FIFO(0系)の状態A:初期状態]
出力FIFO(0系)からの書込許可入力が許可状態で、入力FIFO(0系)にも入力FIFO(0系)に対応した外部メモリの領域(アドレス)にもフレームデータが蓄積されていない場合、FIFO書き込み制御部に対して、出力FIFO(0系)への書き込みが可能であることを出力し、FIFO書き込み制御部から入力されるフレームデータが出力ポートPout0(0系)宛てとなっていた場合、出力FIFO(0系)へのフレームデータの書き込みを行う。
なお、この状態Aでは、FIFO書き込み制御部から入力FIFO(0系)へのフレームデータの書き込みも、入力FIFO(0系)からのフレームデータの転送も、入力FIFO(0系)に対応した外部メモリの領域からのフレームデータの転送も行われない。
[出力FIFO(0系)の状態B]
出力FIFO(0系)からの書込許可入力が禁止(非許可)状態の場合、FIFO書き込み制御部に対して出力FIFO(0系)への書き込みは不可であることを出力し、入力FIFO(0系)に蓄積されているフレームデータのサイズ(バイト数)の合計が所定の値(フレームデータの最少サイズより大きい値を設定)より大きくなった場合、入力FIFO(0系)内のフレームデータをまとめて外部メモリの入力FIFO(0系)に対応する領域(アドレス)に転送する。
転送終了後、他の状態に遷移する前に、入力FIFO(0系)に蓄積されているフレームデータのサイズ(バイト数)の合計が所定の値より大きくなっていれば、同様の転送を繰り返す。
外部メモリへの転送では、入力FIFOごとに異なるメモリ領域(アドレス)に対してフレームデータの書き込みを行い、入力FIFOごとに転送したフレームデータのサイズ(バイト数)の累積値を管理する。外部メモリへの転送に使用するアドレス(writeポインタ)の値は、例えば、初期値をキューマップの設定で決定し、転送ごとに、writeポインタを更新する。
なお、入力FIFO(0系)から外部メモリへの転送と入力FIFO(1系)から外部メモリへの転送が競合する場合があるので、セレクタ(MEM用)にて競合制御を行う。
この状態では、FIFO書き込み制御部から入力FIFO(0系)へフレームデータの書き込みが行われ、FIFO書き込み制御部から出力FIFO(0系)へのフレームデータの書き込み、入力FIFO(0系)から出力FIFO(0系)へのフレームデータの転送、および、入力FIFO(0系)に対応したDRAMチップ等のメモリの領域からのフレームデータの転送は行われない。
[出力FIFO(0系)の状態C]
出力FIFO(0系)からの書込許可入力が許可状態で、入力FIFO(0系)に対応した外部メモリの領域(アドレス)にフレームデータが蓄積されている場合、FIFO書き込み制御部に対して、出力FIFO(0系)への書き込みが不可であることを出力し、入力FIFO(0系)に蓄積されているフレームデータのサイズ(バイト数)の合計が所定の値(フレームデータの最少サイズより大きい値を設定)より大きくなった場合、入力FIFO(0系)内のフレームデータをまとめて外部メモリの入力FIFO(0系)に対応する領域(アドレス)に転送する。
転送終了後、他の状態に遷移する前に、入力FIFO(0系)に蓄積されているフレームデータのサイズ(バイト数)の合計が所定の値より大きくなっていれば、同様の転送を繰り返す。
外部メモリへの転送は、入力FIFOごとに異なるメモリ領域(アドレス)に対してフレームデータの書き込みを行い、入力FIFOごとに転送したフレームデータのサイズ(バイト数)の累積値を管理する。
なお、入力FIFO(0系)から外部メモリへの転送と入力FIFO(1系)から外部メモリへの転送が競合する場合があるので、セレクタ(MEM用)にて競合制御を行う。
また、入力FIFO(0系)に対応した外部メモリの領域(アドレス)に蓄積されているフレームデータを出力FIFO(0系)に対して転送する。この転送は、他の状態に遷移するか、もしくは、入力FIFO(0系)に対応した外部メモリの領域(アドレス)に蓄積されているフレームデータがなくなるまで行う。
外部メモリから出力FIFOへの転送を行う際には、出力FIFOごと(対応する入力FIFOごと)に転送したフレームデータのサイズ(バイト数)をカウントして、入力FIFOから外部メモリに転送したフレームデータのサイズ(バイト数)の累積値からの減算を行う。この値は、対応する入力FIFOごとに、外部メモリに蓄積されているフレームデータの有無を確認するために使用する。外部メモリから出力FIFOへの転送を行う際に使用するアドレス(readポインタ)の値は、例えば、初期値をwriteポインタの初期値と同じ値とし、転送ごとにreadポインタを更新する。
なお、DRAMチップ等のメモリから出力FIFO(0系)への転送とDRAMチップ等のメモリから出力FIFO(1系)への転送が競合する場合があるので、IF制御部にて競合制御を行う。さらに、入力FIFOから外部メモリへの転送と、外部メモリから出力FIFOへの転送が競合する場合があるので、IF制御部にて競合制御を行う。
この状態では、FIFO書き込み制御部から入力FIFO(0系)へのフレームデータの書き込みが行われ、FIFO書き込み制御部から出力FIFO(0系)へのフレームデータの書き込み、入力FIFO(0系)から出力FIFO(0系)へのフレームデータの転送は行われない。
[出力FIFO(0系)の状態D]
出力FIFO(0系)からの書込許可入力が許可状態で、入力FIFO(0系)に対応した外部メモリの領域(アドレス)にフレームデータが蓄積されていないが、入力FIFO(0系)にフレームデータが蓄積されている場合、FIFO書き込み制御部に対して出力FIFO(0系)への書き込みが不可であることを出力し、入力FIFO(0系)内のデータを出力FIFO(0系)に転送する。この転送は、他の状態に遷移するか、もしくは、入力FIFO(0系)に蓄積されているフレームデータがなくなるまで行う。
この状態では、FIFO書き込み制御部から入力FIFO(0系)へのフレームデータの書き込みが行われ、FIFO書き込み制御部から出力FIFO(0系)へのフレームデータの書き込み、入力FIFO(0系)から外部メモリへのフレームデータの転送、および、入力FIFO(0系)に対応した外部メモリの領域からのフレームデータの転送は行われない。
なお、上述した状態A〜Dについては、出力FIFO(0系)からの書込許可入力に対応する動作について説明したが、出力FIFO(1系)からの書込許可入力に対してもアクセス調停部は同様に動作する。
図13にアクセス調停部の状態遷移(例)を示す。図13は0系もしくは1系どちらかの出力FIFOからの書込許可入力に対応したアクセス調停部での動作を示している。このように動作する制御回路を2つ(0系用と1系用)搭載して、状態遷移としてはそれぞれ独立して、もう一方の系の動作に依存せずに動作させることが可能である。なお、外部メモリへの転送と外部メモリからの転送において0系と1系が競合することはあるが、状態遷移上は影響しない。
図11の出力FIFOは、アクセス調停部から入力されたフレームデータを蓄積し、出力FIFO読み出し制御部からの要求に従って、フレームデータを出力する。また、フレームデータの蓄積量、すなわち入力されたデータの量から出力したデータの量を減算した値を測定し、その値が規定値を超えた場合に、アクセス調停部に対する書き込み許可信号を禁止(非許可)状態とする。この規定値は、例えば、出力FIFOに蓄積可能なデータ量の最大値から最長フレームデータ(2000Byte)分のデータ量を減算した値とする。
図11の出力FIFO読み出し制御部は、例えば、出力FIFOに1フレームデータ以上のフレームデータが蓄積されていれば、出力FIFOからフレームデータを読み出して出力ポートから出力する。
[スループットについて]
次に、外部メモリとしてDRAMチップを用いる場合における、図11の構成のスループットを、図10の構成のスループットと比較する。DRAMチップへの転送もしくはDRAMチップからの転送におけるスループットは、1回の転送のデータサイズに依存する。
1回の転送で転送可能なサイズの最大値(以下、「最大バーストサイズ」と記述する)は、DRAMチップの仕様で決まり、転送時のデータサイズが最大バーストサイズより小さい場合、スループットは、次の式(1)で求められる。
DRAMチップのビット幅×動作クロック速度×TD/(TO+TD)…(1)
但し、式(1)において、TD=転送時のデータサイズ(ビット数)/(DRAMチップのビット幅×動作クロック速度)、TO=1転送当たりのDRAMチップアクセス時のオーバーヘッド時間である。
オーバーヘッド時間TOは、DRAMチップの仕様で決まる固定値であり、転送時のデータサイズが小さいほどスループットが小さくなる。
転送をフレームデータごとに行う構成が従来から使用されているが、その場合、最小フレームデータ長のフレームデータが連続すると、DRAMチップの仕様によってはスループットが極端に低下してしまう。
例えば、DRAMチップのビット幅が32、動作クロック速度が312.5MHz、TOが16nsだとすると最小フレームデータ長(64Byte)のフレームデータが連続した場合、式(1)のTDは、次の式(2)となる。
TD=64[Byte]×8/(32×312.5[MHz])=51.2ns…(2)
このため、スループットは、次の式(3)となる。
32[bit]×312.5[MHz]×51.2[ns]/(16[ns]+51.2[ns])=約7.6[gbit/s]…(3)
DRAMチップのバスの速度は、32[bit]×312.5[MHz]の場合、10Gbit/sに相当するが、これに対して、式(3)のスループットは2割以上低下していることが分かる。
このように、図10の構成においても、転送をフレームデータごとに行う構成が一般的であり、上記の様に、最小フレームデータ長のフレームデータが連続すると、DRAMチップの仕様によってはスループットが極端に低下してしまう。
一方、図11の構成で、DRAMチップからなる外部メモリへの転送を行うか否かを判定する際、入力FIFOに蓄積されているデータのサイズ(バイト数)の合計値を、例えば、1000Byteとする構成が考えられる。これにより、外部メモリに転送するデータのサイズは、最小フレームデータ長のフレームデータが連続した場合でも、必ず1000Byte以上となる。
この場合、TDの最小値は、次の式(4)となり、最小スループットは、次の式(5)となる。
TDの最小値=1000[Byte]×8/(32×312.5[MHz])=800ns…(4)
32[bit]×312.5[MHz]×800[ns]/(16[ns]+800[ns])=約9.8[Gbit/s] …(5)
したがって、外部メモリから出力FIFOへの転送においても、図11の構成で、1回の転送で転送するデータのサイズを最小フレームデータ長(64Byte)より大きくすることで、同様にスループットの低下を抑制できる。
しかしながら、従来の図11の構成によれば、出力ポート数が多くなると、これら出力ポート数と同数分だけ入力FIFOが必要となり、ハードウェアの規模が増大してしまうという問題点があった。
本発明はこのような課題を解決するためのものであり、出力ポートの増大に起因する入力FIFOによるハードウェア規模の増大を抑制できるメモリアクセス制御技術を提供することを目的としている。
このような目的を達成するために、本発明にかかる通信用入出力装置は、順次入力される通信データに、当該通信データを出力すべき出力系統と対応する出力先情報を付加して多重化する多重化装置と、前記多重化装置から出力された通信データを、当該通信データに付加されている前記出力先情報に基づき分離し、当該出力先情報と対応する出力系統の出力FIFOへ書き込む多重分離装置と、前記出力系統ごとに前記通信データを一時蓄積するキューを有する記録装置とを備える通信用入出力装置であって、前記多重分離装置は、前記各出力系統に共通して設けられて、前記各出力FIFOへ書き込みできなかった通信データを一時蓄積する入力FIFOと、前記入力FIFOにおける通信データの蓄積状況に応じて、当該入力FIFOに蓄積されている通信データを前記記録装置へ転送し、任意の出力系統の出力FIFOが書き込み可状態となった時点で、前記記録装置および前記入力FIFOの順に当該出力系統の通信データを読み出して当該出力FIFOへ書き込むアクセス調停部とを備え、前記記録装置は、前記多重分離装置から転送された前記通信データを、当該通信データに付加されている前記出力先情報と対応する出力系統のキューに書き込む書き込み制御部を備えている。
また本発明にかかる上記通信用入出力装置の一構成例は、前記記録装置が、前記出力系統ごとに1つまたは複数の前記キューを有し、これらキューは、1つまたは複数の別個のメモリ回路で構成されているものである。
また本発明にかかる上記通信用入出力装置の一構成例は、前記記録装置が、前記キューを論理的に形成して前記通信データを蓄積するためメモリを有し、前記アクセス調停部から指示された、読み出し対象となるキューに関する前記メモリ上でのアドレス情報に基づいて、前記メモリから対応するキューに蓄積されている前記通信データを読み出して当該アクセス調停部へ転送するようにしたものである。
また本発明にかかる上記通信用入出力装置の一構成例は、前記記録装置が、前記キューを論理的に形成して前記通信データを蓄積するためメモリを有し、前記アクセス調停部から指示された、読み出し対象となるキューを識別するためのキュー情報に基づいて、当該キューに関する前記メモリ上でのアドレス情報を特定し、当該アドレス情報に基づいて、前記メモリから対応するキューに蓄積されている前記通信データを読み出して当該アクセス調停部へ転送するようにしたものである。
また本発明にかかる上記通信用入出力装置の一構成例は、前記記録装置が、前記キューを論理的に形成して前記通信データを蓄積するためメモリを有し、前記アクセス調停部から指示された、読み出し対象となる通信データに関連するユーザIDまたは出力系統に関連する出力ポートIDに基づいて、対応するキューに関する前記メモリ上でのアドレス情報を特定し、当該アドレス情報に基づいて、前記メモリから対応するキューに蓄積されている前記通信データを読み出して当該アクセス調停部へ転送し、対応するキューが複数存在する場合は、最も優先度の高いキューから順に前記通信データを読み出して当該アクセス調停部へ転送するようにしたものである。
また本発明にかかる上記通信用入出力装置の一構成例は、前記アクセス調停部が、前記出力系統ごとに設けられたセレクタ、および、前記記録装置との間で前記通信データの転送を行うIF制御部を有し、前記セレクタは、前記多重化装置からの通信データ、前記入力FIFOからの通信データ、もしくは前記IF制御部からの通信データのいずれか1つを選択して対応する出力FIFOへ書き込み、前記IF制御部は、前記入力FIFOから前記記録装置へ前記通信データを転送し、前記記録装置から転送された前記通信データを対応する前記セレクタへ出力するようにしたものである。
また本発明にかかる上記通信用入出力装置の一構成例は、前記アクセス調停部が、前記出力系統ごとに設けられたセレクタ、および、前記記録装置との間で前記通信データの転送を行うIF制御部を有し、前記セレクタは、前記多重化装置からの通信データ、もしくは前記IF制御部からの通信データのいずれか1つを選択して対応する出力FIFOへ書き込み、前記IF制御部は、前記入力FIFOから前記記録装置へ前記通信データを転送し、前記多重化装置からの通信データ、および前記記録装置から転送された前記通信データを対応する前記セレクタへ出力するようにしたものである。
また本発明にかかる上記通信用入出力装置の一構成例は、前記多重分離装置が、前記アクセス調停部から書き込まれたマルチキャスト用フレームデータを順次蓄積し、出力ポートごとに設けられた出力FIFO読み出し制御部からの読み出し要求に応じて、蓄積している前記マルチキャスト用フレームデータを読み出して出力するとともに、当該マルチキャスト用フレームデータの出力先となるすべての出力FIFO読み出し制御部への出力が完了するまで当該マルチキャスト用フレームデータを保持するマルチキャスト用出力FIFOをさらに備え、前記アクセス調停部は、前記出力系統ごとに設けられたセレクタ、マルチキャスト用セレクタ、および、前記記録装置との間で前記通信データの転送を行うIF制御部を有し、前記セレクタは、前記多重化装置からの通信データ、前記入力FIFOからの通信データ、または前記IF制御部からの通信データのいずれか1つを選択して対応する出力FIFOへ書き込み、前記マルチキャスト用セレクタは、前記多重化装置からのマルチキャスト用通信データ、前記入力FIFOからのマルチキャスト用通信データ、もしくは前記IF制御部からのマルチキャスト用通信データのいずれか1つを選択してマルチキャスト用出力FIFOへ書き込み、前記IF制御部は、前記入力FIFOから前記記録装置へ前記通信データを転送し、前記記録装置から転送された通信データを対応する前記セレクタへ出力し、前記記録装置から転送されたマルチキャスト用通信データを対応する前記マルチキャスト用セレクタへ出力するようにしたものである。
本発明によれば、入力FIFOを各出力系統で共通して用いることができ、出力系統を増大させても、従来技術のように出力系統の増大に合わせて入力FIFOを増大させる必要はないため、入力FIFOによるハードウェア規模の増大を抑制することができる。これにより、通信用入出力装置における消費電力を削減することが可能となる。
第1の実施の形態にかかる通信用入出力装置の構成を示すブロック図である。 第1の実施の形態にかかるアクセス調停部の要部を示す回路構成例である。 第1の実施の形態にかかるアクセス調停部の状態遷移図である。 第4の実施の形態にかかるアクセス調停部の要部を示す回路構成例である。 第4の実施の形態にかかるアクセス調停部の状態遷移図である。 第5の実施の形態にかかる通信用入出力装置の構成を示すブロック図である。 第5の実施の形態にかかるアクセス調停部の要部を示す回路構成例である。 従来の通信用入出力装置(内蔵メモリ)の構成を示すブロック図である。 キューと出力ポートとの対応を示す説明図である。 通信用入出力装置(MEM外付けメモリ)の構成を示すブロック図である。 通信用入出力装置(DEMUX外付けメモリ)の構成を示すブロック図である。 図11のアクセス調停部の構成例である。 図11のアクセス調停部に関する状態遷移図である。
次に、本発明の実施の形態について図面を参照して説明する。
[第1の実施の形態]
まず、図1を参照して、本発明の第1の実施の形態にかかる通信用入出力装置100について説明する。図1は、第1の実施の形態にかかる通信用入出力装置の構成を示すブロック図である。
この通信用入出力装置100は、インターネット通信等で使用されるイーサネットフレームデータ等の通信データの入出力を行う装置であり、1つまたは複数の入力ポートから入力された通信データを、その通信データを出力すべき出力系統ごとに分離し、当該出力系統と対応する出力ポートの通信速度に変換して出力する機能を有している。
図1に示すように、通信用入出力装置100は、多重化装置(MUX)10、メモリアクセス制御機能内蔵型の多重分離装置(DEMUX)20、およびアクセス制御機能内蔵型の記録装置(MEM)30から構成されている。以下では、通信用入出力装置100で入出力する通信データがフレームデータである場合を例として説明するが、これに限定されるものではなく、パケットやATMセルなど各種の通信データを、フレームデータと同様にして入出力することも可能である。
多重化装置10は、外部から順次入力されるフレームデータに、当該フレームデータを出力すべき出力系統と対応する出力先情報を付加して多重化する機能を有している。
多重分離装置20は、多重化装置10から出力されたフレームデータを、当該フレームデータに付加されている出力先情報に基づき分離し、当該出力先情報と対応する出力系統の出力FIFO25へ書き込む機能を有している。
記録装置30は、複数のキューにより通信データを出力系統ごとに一時蓄積する機能を有している。
本実施の形態は、多重分離装置20に、各出力FIFO25へ書き込みできなかった通信データを一時蓄積する入力FIFO22を各出力系統に共通して設け、入力FIFO22における通信データの蓄積状況に応じて、入力FIFO22に蓄積されている通信データを記録装置30へ転送し、任意の出力系統の出力FIFO25が書き込み可状態となった時点で、記録装置30および入力FIFO22の順に当該出力系統の通信データを読み出して当該出力FIFO25へ書き込むものとし、記録装置30が、多重分離装置20から転送された通信データを、当該通信データに付加されている出力先情報と対応する出力系統のキューに書き込むようにしたものである。
本実施の形態では、図1に示すように、入力ポートPinとして2つの入力ポートPin0,Pin1が設けられ、出力ポートPoutとして2つの出力ポートPout0,Pout1が設けられている場合を例として説明するが、入力ポートPinおよび出力ポートPoutの数については、これに限定されるものではない。入力ポートPinおよび出力ポートPoutのいずれか一方または両方を3つ以上設けることも可能であり、入力ポート数と出力ポート数が異なっていても良い。なお、入力ポート数は、1つであってもよい。
[多重化装置]
次に、図1を参照して、本実施の形態にかかる通信用入出力装置100で用いられる多重化装置10について詳細に説明する。
多重化装置10には、主な回路部として、キュー指定情報付加部11と多重化部12が設けられている。
キュー指定情報付加部11は、入力ポートPin0,Pin1ごとに設けられて、対応する入力ポートPinから入力されるフレームデータに対して、当該フレームデータの出力先に対応するキュー指定情報を付加して多重化部12へ出力する機能を有している。
多重化部12は、各キュー指定情報付加部11に共通して1つ設けられて、各キュー指定情報付加部11から出力されたフレームデータを時分割で多重化して、多重分離装置20へ出力する機能を有している。
[多重分離装置]
次に、図1を参照して、本実施の形態にかかる通信用入出力装置100で用いられる多重分離装置20について詳細説明する。
多重分離装置20には、主な回路部として、FIFO書き込み制御部21、入力FIFO22、キューマップ23、アクセス調停部24、出力FIFO25、および出力FIFO読み出し制御部26が設けられている。
FIFO書き込み制御部21は、多重化装置10から出力されたフレームデータを受け取り、多重化装置10によりフレームデータに付加されたキュー指定情報により当該フレームデータに対応する出力系統を特定する機能と、多重化装置10から出力されたフレームデータに付加されている出力先情報と対応する出力FIFO25が書き込み不可状態の場合、当該フレームデータを入力FIFO22へ書き込み、出力FIFO25が書き込み可状態の場合、アクセス調停部24に対して、当該出力FIFO25に対する当該フレームデータの書き込みを指示する機能とを有している。
入力FIFO22は、各出力系統に共通して設けられて、出力FIFO25に対して書き込みできなかったフレームデータを順次蓄積する機能を有している。
キューマップ23は、フレームデータに付加されているキュー指定情報と出力系統(出力ポートPout)との対応関係をマッピング情報として記憶する機能を有している。この対応関係は、1対1に限らず、多対1、1対多、多対多の場合もありうる。これら対応関係は、装置外部(例えば外部の制御装置等)からの信号入力により設定できるようにしてもよい。
アクセス調停部24は、出力系統(出力ポートPout)ごとに、当該出力系統の出力FIFO25からの書き込み許可信号の有無と、入力FIFO22における当該出力系統のフレームデータの蓄積有無に基づいて、出力系統の出力FIFO25に関するフレームデータ書込可否制御信号をFIFO書き込み制御部21へ出力する機能と、FIFO書き込み制御部21から指示されたフレームデータを当該出力FIFO25へ書き込む機能と、入力FIFO22の蓄積状況に応じて、入力FIFO22に蓄積されているフレームデータを記録装置30へ転送する機能と、出力FIFO25のいずれかが書き込み可状態となった時点で、記録装置30および入力FIFO22の順に、対応する出力系統のフレームデータを読み出して当該出力FIFO25へ書き込む機能とを有している。
出力FIFO25は、出力系統(出力ポートPout)ごとに設けられて、アクセス調停部24から書き込まれたフレームデータを順次蓄積する機能と、出力FIFO読み出し制御部26からの読み出し要求に応じて蓄積されているフレームデータを読み出して出力する機能とを有している。
出力FIFO読み出し制御部26は、出力系統(出力ポートPout)ごとに設けられて、当該出力系統と対応する出力ポートPoutからの要求に応じて、出力FIFO25からフレームデータを読み出す機能と、当該出力ポートの通信速度に変換して出力ポートPoutへ出力する機能とを有している。
多重分離装置20において、キューを指定する場合、例えば、IEEE802.1D等のブリッジ機能により実現することができる。具体的には、MACアドレス学習による出力ポート検索、VLAN IDによる出力ポート指定等が可能である。
記録装置30からのデータ出力(読み出し)については、複数のキューにフレームデータが記録されている場合に、どのキューのフレームデータを先に出力するかを判断するための優先制御が必要となる。
複数の出力ポートを持つ通信装置においては、通常、出力ポートごとの実効出力レート(単位時間当たりの平均データ量)が同等に(公平に)なることが望まれる。ただし、入力されるフレームデータの出力先が特定の出力ポートに偏る場合もあるので、アクセス調停部24では、このようなケースも考慮して優先制御が行われる。
この際、各出力ポートの物理レート(単位時間当たりの最大データ量)よりもキューからのフレームデータの出力(読み出し)の物理レート(単位時間当たりの最大データ量)の方が大きいため、同じキューから連続してフレームデータを読み出し続けることはできない。したがって、例えば、各キューの容量が同じ場合であれば、読み出し可能なキューの中でキューに蓄積されているフレームデータの量が最も多いキューからデータ出力(読み出し)を行うなどの優先制御を行えばよい。
[記録装置]
次に、図1を参照して、本実施の形態にかかる通信用入出力装置100で用いられる記録装置30について詳細説明する。
記録装置30には、主な回路部として、メモリ31、書き込み制御部32、読み出し制御部33、および論理キュー設定情報保持部34が設けられている。
メモリ31は、DRAMチップなどの半導体メモリからなり、論理キュー設定情報保持部34の論理キュー設定情報に応じて、出力系統ごとに設けられた論理的なキューを有し、これらキューにより当該出力系統に対応するフレームデータを記憶する機能を有している。具体的には、メモリ31を複数のDRAMチップで構成して、複数の出力系統に対応する各キューに対応させればよく、出力系統ごとにそれぞれ1つのキューを持たせる構成の他、1つの出力系統に複数のキューを持たせることも可能である。これらはDRAMチップごとに異なるアドレスを割り振って、それぞれのキューのアドレス範囲を決めることにより実現される。この際、1つのキューを1つまたは複数のDRAMチップを割り当ててもよい。一方、1つのDRAMチップを複数のキューで使用すると、後述するようにDRAMチップアクセスのスループットが極端に劣化する可能性があるので、本実施の形態ではそのような構成は使用しない。
書き込み制御部32は、多重分離装置20から転送されたフレームデータを受け取り、当該フレームデータに付加されているキュー指定情報と、論理キュー設定情報保持部34の論理キュー設定情報とを参照して、メモリ31のうち、書き込み対象となる出力系統のキューへ当該フレームデータを書き込む機能を有している。
読み出し制御部33は、多重分離装置20からの読み出し指示に応じて、論理キュー設定情報保持部34の論理キュー設定情報を参照して、メモリ31のうち、読み出し対象となる出力系統のキューから、蓄積されているフレームデータを読み出して、多重分離装置20へ転送する機能を有している。
論理キュー設定情報保持部34は、メモリ31内に出力系統ごとに設けられている各キューに関するアドレス範囲(先頭アドレスと最終アドレス)をマッピング情報として記憶する機能と、キューごとに対応するヘッダ情報(出力ポート番号、優先度等)を記憶する機能を有している。各キューのアドレス範囲およびヘッダ情報は予め決めておくこともできるが、装置外部(例えば外部の制御装置等)からの信号入力により設定できるようにしてもよい。
なお、記録装置30へのデータ出力(書き込み)時には、すべての入力ポートPinの物理レート(単位時間当たりの最大データ量)を合計した値に相当する物理レートが必要となり、記録装置30からのデータ出力(読み出し)時には、すべての出力ポートPoutの物理レート(単位時間当たりの最大データ量)を合計した値に相当する物理レートが必要となる。
記録装置30において、論理的な記録領域であるキューを同一メモリ空間内に複数設ける場合、メモリのアドレスを分割して、それぞれのキューのアドレス範囲を決定すればよい。各キューのアドレス範囲は予め決めておくこともできるが、装置外部(例えば外部の制御装置等)からの信号入力により設定できるようにしてもよい。
[第1の実施の形態の動作]
次に、本実施の形態にかかる通信用入出力装置100の動作として、多重化装置10、多重分離装置20および記録装置30の動作について詳細に説明する。
[多重化装置の動作]
まず、多重化装置10の動作について説明する。
キュー指定情報付加部11は、対応する入力ポートPinから順次入力されるフレームデータに対して、当該フレームデータの出力先に対応するキュー指定情報を付加して多重化部12へ出力する。
多重化部12は、各キュー指定情報付加部11から出力されたフレームデータを時分割で多重化して、多重分離部20へ出力する。
[多重分離装置の動作]
次に、多重分離装置20の動作について説明する。
FIFO書き込み制御部21は、多重化装置10から出力されたフレームデータを受け取り、多重化装置10によりフレームデータに付加されているキュー指定情報により当該フレームデータに対応する出力系統を特定し、アクセス調停部24に対して、出力系統の出力FIFO25へのフレームデータの書き込み指示、または0系/1系共用の入力FIFO22に対するフレームデータの書き込みを行う。
例えば、出力ポートPout0宛てのフレームデータであれば、出力FIFO(0系)25、もしくは、0系/1系共用の入力FIFO22にフレームデータを書き込み、出力ポートPout1宛てのフレームデータであれば、出力FIFO(1系)25、もしくは、0系/1系共用の入力FIFO22にフレームデータを書き込む。
この際、FIFO書き込み制御部21は、アクセス調停部24から出力された、各出力系統の出力FIFO25に関するフレームデータ書込可否制御信号に応じて、受け取ったフレームデータに対して、次の4つの処理動作のいずれかを選択する。
(1)出力FIFO(0系)25、出力FIFO(1系)25が共に書き込み不可の場合、入力FIFO22への書き込みを行う。
(2)出力FIFO(0系)25への書き込みは可能であるが、出力FIFO(1系)25への書き込みが不可の場合、アクセス調停部24を介した出力FIFO(0系)25への書き込み、もしくは、入力FIFO22への書き込みを行う。
(3)出力FIFO(1系)25への書き込みは可能であるが、出力FIFO(0系)25への書き込みが不可の場合、アクセス調停部24を介した出力FIFO(1系)25への書き込み、もしくは、入力FIFO22への書き込みを行う。
(4)出力FIFO25(0系)25、出力FIFO(1系)25が共に書き込み可能な場合、アクセス調停部24を介して、フレームデータに対応する出力系統の出力FIFO(0系)25、もしくは、出力FIFO(1系)25への書き込みを行う。
図2は、第1の実施の形態にかかるアクセス調停部の要部を示す回路構成例である。図12に示した従来技術による構成と比較して、本実施の形態にかかるアクセス調停部24は、入力FIFO22が1つのみとなっている点のほか、記録装置30と接続している点、すなわち、入力FIFO22から各出力FIFO25もしくは記録装置30への転送が可能となっている点が異なる。
このアクセス調停部24には、主な回路部として、セレクタ(0系)24A、セレクタ(1系)24A、IF制御部24B、および制御回路24Cが設けられている。
セレクタ(0系)24Aは、FIFO書き込み制御部21からのフレームデータ、入力FIFO22からのフレームデータ、もしくは、IF制御部24Bで受け取った記録装置30からのフレームデータのうちのいずれか1つを選択して、出力FIFO(0系)25へ出力する機能を有している。
セレクタ(1系)24Aは、FIFO書き込み制御部21からのフレームデータ、入力FIFO22からのフレームデータ、もしくは、IF制御部24Bで受け取った記録装置30からのフレームデータのうちのいずれか1つを選択して、出力FIFO(1系)25へ出力する機能を有している。
IF制御部24Bは、入力FIFO22におけるフレームデータの蓄積状況に応じて、入力FIFO22から記録装置30へフレームデータを転送する機能と、予め設定されている出力系統ごとの優先制御ロジックに基づき、記録装置30に対して、各出力系統と対応するキューからのフレームデータの読み出しを指示する機能と、これに応じて記録装置30から転送されたフレームデータを、対応する出力系統のセレクタ24Aへ出力する機能とを有している。
制御回路24Cは、出力系統ごとに、当該出力系統の出力FIFO25からの書き込み許可信号の有無と、入力FIFO22における当該出力系統のフレームデータの蓄積有無とに基づいて、出力系統の出力FIFO25に関するフレームデータ書込可否制御信号をFIFO書き込み制御部21へ出力する機能を有している。
図3は、第1の実施の形態にかかるアクセス調停部の状態遷移図である。アクセス調停部24は、出力系統ごとに、当該出力系統に対応する出力FIFO25の書き込み可否状態、入力FIFO22内における当該出力系統に対応するフレームデータの蓄積有無、記録装置30の当該出力系統に対応するキュー内におけるフレームデータの蓄積有無に応じて、次の4つの遷移状態A,B,C,Dを遷移することにより、実行する処理動作を選択する。ここでは、処理対象となるフレームデータの出力系統が0系である場合を例としてアクセス調停部24の動作を説明するが、処理対象となるフレームデータの出力系統が1系である場合もこれと同様にしてアクセス調停部24が動作する。
なお、出力FIFO25の書き込み可否状態については、制御回路24Cで検出した出力FIFO25からの書き込み許可信号の有無で判断すればよく、入力FIFO22内における当該出力系統に対応するフレームデータの蓄積有無については、入力FIFO22から取得すればよい。また、記録装置30の各キュー内におけるフレームデータの蓄積有無については、アクセス調停部24で管理している蓄積状況で判断してもよく、IF制御部24Bを介して記録装置30から取得してもよい。
[出力FIFO(0系)の状態A:初期状態]
状態B,C,Dにおいて、出力FIFO(0系)25が書き込み可状態で、出力FIFO(0系)25に対応する、記録装置30内のキューにフレームデータが蓄積されておらず、入力FIFO22内に出力ポートPout0(0系)宛てのフレームデータが蓄積されていない場合、アクセス調停部24は状態Aに遷移し、FIFO書き込み制御部21に対して、出力FIFO(0系)25への書き込みが可能であることを出力する。
また、アクセス調停部24は、FIFO書き込み制御部21から入力されたフレームデータが、0系宛てすなわち出力ポートPout0(0系)宛てとなっていた場合は、出力FIFO(0系)25へのフレームデータの書き込みを行い、FIFO書き込み制御部21から入力されたフレームデータが、0系宛てではなかった場合は、出力FIFO(1系)25へのフレームデータの書き込みを行うか、もしくは、フレームデータの廃棄を行う。
この状態Aにおいて、入力FIFO22から出力FIFO(0系)25へのフレームデータの転送、入力FIFO22から0系に対応する記録装置30内のキューへのフレームデータの転送、および、0系に対応する記録装置30内のキューからのフレームデータの転送は行われない。なお、この状態Aでは、入力FIFO22から出力FIFO(1系)25へのフレームデータの転送、入力FIFO22から1系に対応する記録装置30内のキューへのフレームデータの転送、および、1系に対応した記録装置30内のキューからのフレームデータの転送が行われる場合はあるが、FIFO書き込み制御部21とアクセス調停部24との動作において競合は発生しない。
[出力FIFO(0系)の状態B]
状態A,C,Dにおいて、出力FIFO(0系)25が書き込み不可状態となった場合、アクセス調停部24は状態Bに遷移する。この状態Bにおいて、アクセス調停部24は、FIFO書き込み制御部21に対して出力FIFO(0系)25への書き込みが不可であることを出力し、入力FIFO22に蓄積されているフレームデータの蓄積量(バイト数)の合計が、予め設定されているしきい値(フレームデータの最少サイズより大きい値を設定)を超えた場合に、入力FIFO22内のフレームデータをまとめて記録装置30に転送する。
記録装置30は、多重分離装置20から転送されたフレームデータに付加されているキュー指定情報、例えば出力ポート番号や優先度等に従って、メモリ31内に設けられている論理的な記録領域であるキューを選択し、入力されたフレームデータを記録する。これにより、各出力系統(出力FIFO)に対応する領域(アドレス)に入力されたフレームデータが振り分けて蓄積されることになる。
記録装置30に対するフレームデータの転送終了後、他の状態に遷移する前に、入力FIFO22に蓄積されている残りのフレームデータのサイズ(バイト数)の合計がしきい値を超えている場合、アクセス調停部24は、上記と同様の転送を繰り返す。
記録装置30に対するフレームデータの転送は、複数の出力系統宛てのフレームデータもまとめて転送するが、転送したフレームデータのサイズ(バイト数)の累積値を出力系統ごとに管理する。
この状態Bにおいて、FIFO書き込み制御部21から入力FIFO22への0系宛てのフレームデータの書き込みが行われ、FIFO書き込み制御部から出力FIFO(0系)25へのフレームデータの書き込み、入力FIFO22から出力FIFO(0系)25へのフレームデータの転送、および、0系に対応した記録装置30のキューからのフレームデータの転送は行われない。この状態Bでは、入力FIFO22から出力FIFO(1系)25へのフレームデータの転送との競合が発生する可能性があるが、タイミング調整、例えば先に実行された転送が終了するのを待ってからもう一方の転送を開始するなどの対処が可能である。
[出力FIFO(0系)の状態C]
状態Bにおいて、出力FIFO(0系)25が書き込み可状態となり、0系に対応した記録装置30のキューにフレームデータが蓄積されている場合、アクセス調停部24は状態Cに遷移する。この状態Cにおいて、アクセス調停部24は、FIFO書き込み制御部21に対して、出力FIFO(0系)25への書き込みが不可であることを出力し、入力FIFO22に蓄積されているフレームデータのサイズ(バイト数)の合計がしきい値(フレームデータの最少サイズより大きい値を設定)を超えた場合に、状態Bと同様にして入力FIFO22内のフレームデータをまとめて記録装置30に転送する。
記録装置30に対するフレームデータの転送終了後、他の状態に遷移する前に、入力FIFO22に蓄積されている残りのフレームデータのサイズ(バイト数)の合計がしきい値を超えている場合、アクセス調停部24は、上記と同様の転送を繰り返す。
記録装置30へのフレームデータ転送時には、状態Bと同様、出力FIFO25ごとに転送したフレームデータのサイズ(バイト数)の累積値を管理する。
また、状態Cにおいて、アクセス調停部24は、0系に対応した記録装置30のキューに蓄積されているフレームデータを出力FIFO(0系)25に対して転送する。この転送は、他の状態、例えば後述する状態Dに遷移するか、もしくは、出力FIFO(0系)25に対応した記録装置30の領域(アドレス)に蓄積されているフレームデータがなくなるまで行う。具体的な転送方法は後述する。
記録装置30から出力FIFO25へフレームデータの転送を行う際には、出力系統ごとに転送したフレームデータのサイズ(バイト数)をカウントして、入力FIFO22から記録装置30に転送したフレームデータのサイズ(バイト数)の累積値からの減算を行う。この値は、対応する出力系統ごとに、記録装置30に蓄積されているフレームデータの有無を確認するために使用する。
なお、記録装置30から出力FIFO(0系)25へのフレームデータの転送と記録装置30から出力FIFO(1系)25へのフレームデータの転送が競合する場合があるので、IF制御部24Bにて競合制御を行う。さらに、入力FIFO22から記録装置30へのフレームデータの転送と、記録装置30から出力FIFO25へのフレームデータの転送が競合する場合があるので、IF制御部24Bにて競合制御を行う。
この状態Cにおいて、FIFO書き込み制御部21から入力FIFO22への0系宛てのフレームデータの書き込みが行われ、FIFO書き込み制御部21から出力FIFO(0系)25へのフレームデータの書き込み、および、入力FIFO22から出力FIFO(0系)25へのフレームデータの転送は行われない。この状態Cでは、状態Bと同様、入力FIFO22から出力FIFO(1系)25へのフレームデータの転送との競合も発生する可能性があるが、タイミング調整、例えば先に実行された転送が終了するのを待ってからもう一方の転送を開始するなどの対処が可能である。
[出力FIFO(0系)の状態D]
状態B,Cにおいて、出力FIFO(0系)25が書き込み可状態で、0系に対応した記録装置30のキューにフレームデータが蓄積されておらず、入力FIFO22に0系宛てフレームデータが蓄積されている場合、アクセス調停部24は、FIFO書き込み制御21部に対して出力FIFO(0系)25への書き込みが不可であることを出力し、入力FIFO22内の0系宛てのフレームデータを出力FIFO(0系)25に転送する。この転送は、他の状態に遷移するか、もしくは、入力FIFO22に蓄積されている0系宛てのフレームデータがなくなるまで行う。
この状態Dにおいて、FIFO書き込み制御部21から入力FIFO22への0系宛てのフレームデータの書き込みが行われ、FIFO書き込み制御部21から出力FIFO(0系)25へのフレームデータの書き込み、入力FIFO22から0系に対応した記録装置30のキューへのフレームデータの転送、および、0系に対応した記録装置30のキューからのフレームデータの転送は行われない。この状態Dでは、状態Bと同様、入力FIFO22から出力FIFO(1系)25へのフレームデータの転送との競合が発生する可能性があるが、タイミング調整、例えば先に実行された転送が終了するのを待ってからもう一方の転送を開始するなどの対処が可能である。
図3に示した状態遷移については、出力系統ごとにそれぞれ独立に動作させることが可能である。ただし、前述したようにタイミング調整等の競合制御を行う必要がある。これら状態遷移は、図13に示した従来技術のものと同様であるが、以下の点で従来技術の構成との違いがある。従来技術による構成では、出力FIFOごとに状態が完全に独立している。一方、本実施の形態の構成においては、出力FIFO25ごとに状態が独立しているが、状態Dになった場合、入力FIFO22には複数の出力系統宛てのフレームデータが混在して蓄積されている場合があり、状態Dになった出力系統宛てのフレームデータのみを抽出してその出力FIFO25へ転送する。また、本実施の形態の構成においては、状態B及び状態Cにおいて、入力FIFO22から記録装置30への転送を行う際には、複数の出力系統宛てのフレームデータをまとめて転送する。
本実施の形態にかかる出力FIFO25は、アクセス調停部24から入力されたフレームデータを蓄積し、出力FIFO読み出し制御部26からの要求に従って、フレームデータを出力する。また、フレームデータの蓄積量(入力されたデータの量から出力したデータの量を減算した値)を測定し、その値が規定値を超えた場合に、アクセス調停部24に対する書き込み許可信号を不可状態とする。この規定値は、例えば、従来と同様に、出力FIFO25に蓄積可能なデータ量の最大値から最長フレームデータ(2000Byte)分のデータ量を減算した値としてもよい。
本実施の形態にかかる出力FIFO読み出し制御部26は、例えば、出力FIFO25に1フレームデータ以上のフレームデータが蓄積されていれば、従来と同様に、出力FIFO25からフレームデータを読み出して出力ポートPoutから出力する。
[記録装置の動作]
次に、記録装置30の動作について説明する。
書き込み制御部32は、多重分離装置20のアクセス調停部24から転送されたフレームデータを、当該フレームデータに付加されているキュー指定情報に対応したメモリ31のキューに書き込む。この際、入力FIFO22には、前述したように、異なる出力系統宛てのフレームデータが混在して蓄積されるため、このような混在した状態でフレームデータが書き込み制御部32に入力される。したがって、書き込み制御部32は、入力されたそれぞれのフレームデータごとに、どのキューに書き込むかを識別して該当のキューに書き込む。
書き込み制御部32は、キューを識別する場合、フレームデータに付加されているキュー指定情報が、論理キュー設定情報保持部34内に保持されているキューごとのヘッダ情報(出力ポート番号、優先度等)と一致するか否か判断する。また、書き込みに使用するアドレス(writeポインタ)の値をキューごとに管理し、その初期値は論理キュー設定情報保持部内の該当キューの先頭アドレスとし、転送ごとに、該当キューのwriteポインタを更新する。また、書き込み制御部32は、読み出し制御部33に対して、書き込んだフレームデータのサイズ(バイト数)をキューごとに出力する。
読み出し制御部33は、多重分離装置20のアクセス調停部24から指示された情報、例えば出力系統に対応するキューの情報、読み出し開始アドレス、読み出しデータサイズに従って、メモリ31からフレームデータを読み出してアクセス調停部24へ転送する。
本実施の形態では、アクセス調停部24が、読み出しに使用するアドレス(readポインタ)をキューごとに管理し、読み出し開始アドレスと読み出しデータサイズ(バーストサイズ)をキュー情報と共に指示する。なお、各キューのreadポインタの値は、初期値を論理キュー設定情報保持部34内の該当キューの先頭アドレスとし、読み出し完了ごとに、該当キューのreadポインタを更新する。
また、読み出し制御部33は、書き込み制御部32から、書き込んだフレームデータのサイズ(バイト数)がキューごとに入力されるので、論理キュー設定情報保持部34内の該当キューの先頭アドレスと、このデータサイズの累積値、および、それまでに読み出したデータサイズの累積値を用いて、アクセス調停部24から指示された情報に従った読み出しが可能か否かを、例えば指定されたアドレスに読み出しが必要なフレームデータが存在するか否かを判定し、読み出し不可の場合にアクセス調停部24に対してエラー情報を出力するようにしてもよい。
[第1の実施の形態の効果]
このように、本実施の形態は、多重分離装置20に、各出力FIFO25へ書き込みできなかった通信データを一時蓄積する入力FIFO22を各出力系統に共通して設け、入力FIFO22における通信データの蓄積状況に応じて、入力FIFO22に蓄積されている通信データを記録装置30へ転送し、任意の出力系統の出力FIFO25が書き込み可状態となった時点で、記録装置30および入力FIFO22の順に当該出力系統の通信データを読み出して当該出力FIFO25へ書き込むものとし、記録装置30が、多重分離装置20から転送された通信データを、当該通信データに付加されている出力先情報と対応する出力系統のキューに書き込むようにしたものである。
したがって、入力FIFO22を各出力系統で共通して用いることができ、出力系統を増大させても、従来技術のように出力系統の増大に合わせて入力FIFO22を増大させる必要はないため、入力FIFO22によるハードウェア規模の増大を抑制することが可能となる。これにより、半導体集積回路等でハードウェアを構成した場合の消費電力が小さくなるという効果もある。
また、本実施の形態において、出力系統ごとに1つまたは複数のキューを設け、これらキューを1つまたは複数の別個のDRAMチップ(メモリ回路)で構成してもよい。これにより、ハードウェア規模の増加が想定されるが、記録装置30を1つの半導体集積回路で実現した場合、DRAMチップ容量が同じであればDRAMチップのハードウェア規模の増加よりも入力FIFO22の削減による効果の方が大きくなることが期待でき、入力FIFO22の合計の容量を削減することが可能となる。また、メモリ31を複数のDRAMチップで構成することにより、使用しないDRAMチップへの電源の供給を遮断して省電力化を行うこともできる。
[スループットについて]
次に、本実施の形態にかかる構成のスループットを、図11の従来構成と比較する。
従来構成において、フレームデータを入力FIFOからDRAMチップへの転送を行うか否かを判定する際の用いる、入力FIFOに蓄積されているフレームデータのサイズ(バイト数)の合計値を、例えば1000Byteとすると、従来構成でスループットが最低となる条件は、転送サイズが常に1000Byteで、かつ、転送ごとにDRAMチップのraw addressが変わる場合である。したがって、従来構成によれば、DRAMチップへの書き込みおよび読み出し共にキュー単位となり、キューごとにraw addressが変わる可能性が高く、転送サイズが常に1000Byteの場合は、実効スループットが最低値に近い値となる可能性が高い。
一方、本実施の形態によれば、メモリ31としてDRAMチップを1つだけ使用する場合、すなわちキューを1つだけ使用する場合については、同じキューへのアクセスしかしないので、raw addressが変わる頻度が小さくなり、転送サイズ等を同じ条件で比較すると、従来構成より、スループットの低下が小さくなり、実効スループットが大きくなる。
また、本実施の形態によれば、複数のDRAMチップを1つのキューだけで使用する場合も、同じキューへのアクセスしかしないので、raw addressが変わる頻度が小さくなり、転送サイズ等を同じ条件で比較すると、従来構成より、スループットの低下が小さくなり、実効スループットが大きくなる。
さらに、本実施の形態において、キューごとに別個のDRAMチップで構成した場合、キューごとにDRAMチップが変わるので、従来構成でキューごとにraw addressが変わる場合と同等のオーバーヘッド時間が発生する。しかし、キューごとにアクセスするDRAMチップが異なるので、あるキューへのアクセスのオーバーヘッド時間の経過を待たずに、別のキューのアクセス処理を開始でき、キューごとに並行処理ができるので、オーバーヘッド時間が発生しても極端なスループット低下は発生しない。
例えば、転送サイズが常に最小の64Byteだと仮定しても、各キューへのアクセスのスループットは、同一キューへのアクセスのみであるため、次の式(6)で求められる図10の従来構成の最小スループットより大きくなる。
32[bit]×312.5[MHz]×51.2[ns]/(16[ns]+51.2[ns])=約7.6[Gbit/s] …(6)
(TD=64[Byte]×8/(32×312.5[MHz])=51.2ns)
仮に、メモリ31を2つのキューで構成し、各キューへのアクセス頻度が同等の場合、各キューのアクセスに必要となるスループットが10[Gbit/s] ×0.5=5[Gbit/s]なので、上記スループットですべてのアクセスを行うことができ、通信用入出力装置100としての実効スループットは10Gbit/sとなる。3つ以上のキューで構成する場合も同様である。従って、本実施の形態の構成は、従来構成より実効スループットが小さくなることは無く、極端なスループット低下は発生しない。
[第2の実施の形態]
次に、本発明の第2の実施の形態にかかる通信用入出力装置100について説明する。
本実施の形態は、第1の実施の形態と比較して、読み出し開始アドレスを用いずに読み出しを行う点が異なる。以下に、本実施の形態と第1の実施の形態との差分について説明する。なお、記録装置30の回路構成は図1と同様である。
すなわち、本実施の形態において、記録装置30の読み出し制御部33は、多重分離装置20のアクセス調停部24から指示された情報、すなわち出力系統に対応するキューを識別するためのキュー情報、および読み出しデータサイズに従って、メモリ31からフレームデータを読み出してアクセス調停部24へ転送する機能を有している。
したがって、本実施の形態において、アクセス調停部24は、読み出しに使用するアドレス(readポインタ)を管理せず、読み出し時には読み出しデータサイズ(バーストサイズ)とキュー情報のみを指示する。
読み出し制御部33は、読み出しに使用するアドレス(readポインタ)をキューごとに管理し、アクセス調停部24から指示されたキュー情報に対応するreadポインタを読み出し開始アドレスとする。なお、各キューのreadポインタの値は、初期値を論理キュー設定情報保持部34内の該当キューの先頭アドレスとし、読み出し完了ごとに、該当キューのreadポインタを更新する。
また、読み出し制御部33は、書き込み制御部32から、書き込んだフレームデータのサイズ(バイト数)がキューごとに入力されるので、論理キュー設定情報保持部34内の該当キューの先頭アドレスと、このデータサイズの累積値、および、それまでに読み出したデータサイズの累積値を用いて、アクセス調停部24から指示された情報に従った読み出しが可能か否か、すなわち指定されたキューに読み出しが必要なフレームデータが存在するか否かを判定し、読み出し不可の場合にアクセス調停部24に対してエラー情報を出力するようにしてもよい。
[第2の実施の形態の効果]
このように、本実施の形態は、書き込み制御部32が、アクセス調停部24から指示された、読み出し対象となるキューを識別するためのキュー情報に基づいて、当該キューに関するメモリ31上でのアドレス情報を特定し、当該アドレス情報に基づいて、メモリ31から対応するキューに蓄積されているフレームデータを読み出してアクセス調停部24へ転送するようにしたものである。
これにより、第1の実施の形態と同様の効果が得られるのに加えて、アクセス調停部24からの開始アドレスの指示が不要なので、アクセス調停部24のハードウェア規模を削減することが可能となる。
[第3の実施の形態]
次に、本発明の第3の実施の形態にかかる通信用入出力装置100について説明する。
本実施の形態は、第1の実施の形態と比較して、キュー情報として、出力ポートIDもしくはユーザIDを用い、このキュー情報に対応するキューに蓄積されているフレームデータを、優先度の高い論理キューから順番に出力する点が異なる。以下に、本実施の形態と第2の実施の形態との差分を説明する。なお、記録装置30の回路構成は図1と同様である。
すなわち、本実施の形態において、記録装置30の読み出し制御部33は、多重分離装置20のアクセス調停部24から指示された情報、すなわち出力ポートIDもしくはユーザIDと、読み出しデータサイズとに従って、メモリ31からフレームデータを読み出してアクセス調停部24へ転送する機能を有している。
したがって、本実施の形態において、アクセス調停部24は、読み出しに使用するアドレス(readポインタ)を管理せず、読み出し時には読み出しデータサイズ(バーストサイズ)と出力ポートID(出力FIFO25ごとのID)もしくはユーザIDのみを指示する。なお、ユーザIDを指示する場合は、アクセス調停部24でユーザIDごとに対応する出力ポートIDを管理する。
読み出し制御部33は、読み出しに使用するアドレス(readポインタ)をキューごとに管理するとともに、キューごとに対応する出力ポートIDもしくはユーザIDを管理する。
読み出し制御部33は、アクセス調停部24から指示された出力ポートIDもしくはユーザIDに対応するキューのreadポインタを読み出し開始アドレスとする。また、各キューのreadポインタの値は、初期値を論理キュー設定情報保持部34内の該当キューの先頭アドレスとし、読み出し完了ごとに、該当キューのreadポインタを更新する。
なお、指定された出力ポートIDもしくはユーザIDに対して複数のキューが対応している場合、読み出し制御部33にて優先制御を行って、読み出すキューを選択する。この際、優先制御の方法は、例えば、予めキューごとに優先度を決めておく方法や、キューごとの優先度を読み出しごとに変更するラウンドロビンと呼ばれている方法等の従来技術を使用すればよい。
また、読み出し制御部33は、書き込み制御部32から、書き込んだフレームデータのサイズ(バイト数)がキューごとに入力されるので、論理キュー設定情報保持部34内の該当キューの先頭アドレスと、このデータサイズの累積値、および、それまでに読み出したデータサイズの累積値を用いて、アクセス調停部24から指示された情報に従った読み出しが可能か否か、すなわち指定されたキューに読み出しが必要なフレームデータが存在するか否かを判定し、読み出し不可の場合にアクセス調停部24に対してエラー情報を出力するようにしてもよい。
さらに、指定された出力ポートIDもしくはユーザIDに対応するキューが複数存在し、指定された読み出しデータサイズ(バーストサイズ)が対応するキューの中で最も優先度の高いキューに蓄積されているデータの量よりも大きい場合、読み出し制御部33は、読み出しデータサイズ(バーストサイズ)分まで、優先度の高い順に対応する複数のキューのデータを読み出して、まとめてアクセス調停部24へ転送するようにしても良い。
[第3の実施の形態の効果]
このように、本実施の形態は、書き込み制御部32が、アクセス調停部24から指示された、読み出し対象となるフレームデータに関連するユーザIDまたは出力系統に関連する出力ポートIDに基づいて、対応するキューに関するメモリ31上でのアドレス情報を特定し、当該アドレス情報に基づいて、メモリ31から対応するキューに蓄積されているフレームデータを読み出してアクセス調停部24へ転送し、対応するキューが複数存在する場合は、最も優先度の高いキューから順にフレームデータを読み出してアクセス調停部24へ転送するようにしたものである。
これにより、第1の実施の形態と同様の効果が得られるのに加えて、アクセス調停部24における優先制御のためのハードウェアの一部を削減でき、アクセス調停部24にかかるハードウェア規模を削減することが可能となる。
[第4の実施の形態]
次に、図4を参照して、本発明の第4の実施の形態にかかる通信用入出力装置100について説明する。図4は、第4の実施の形態にかかるアクセス調停部の要部を示す回路構成例である。
本実施の形態は、第1の実施の形態と比較して、多重分離装置20のアクセス調停部24において、入力FIFO22から各出力FIFO25に対応するセレクタ24Aへの直接転送を行わない点が異なる。
本実施の形態において、IF制御部24Bは、第1の実施の形態におけるIF制御部24Bと同様に、入力FIFO22におけるフレームデータの蓄積状況に応じて、入力FIFO22から記録装置30へフレームデータを転送する機能と、予め設定されている出力系統ごとの優先制御ロジックに基づき、記録装置30に対して、各出力系統と対応するキューからのフレームデータの読み出しを指示する機能と、これに応じて記録装置30から転送されたフレームデータを、対応する出力系統のセレクタ24Aへ出力する機能とを有している。
セレクタ(0系)24Aは、FIFO書き込み制御部21からのフレームデータ、もしくは、IF制御部24Bから受け取った記録装置30からのフレームデータを出力FIFO(0系)25へ出力する機能を有している。
セレクタ(1系)24Aは、FIFO書き込み制御部21からのフレームデータ、もしくは、IF制御部24Bから受け取った記録装置30からのフレームデータを出力FIFO(1系)25へ出力する機能を有している。
図5は、第4の実施の形態にかかるアクセス調停部の状態遷移図である。図3との差分は状態Dが存在しない点である。本実施の形態の構成では、出力系統ごとに、アクセス調停部24の遷移状態が完全に独立している。以下に、本実施の形態と第1の実施の形態との差分を説明する。
アクセス調停部24は、出力系統ごとに、当該出力系統に対応する出力FIFO25の書き込み可否状態、入力FIFO22内における当該出力系統に対応するフレームデータの蓄積有無、記録装置30の当該出力系統に対応するキュー内におけるフレームデータの蓄積有無に応じて、次の3つの遷移状態A,B,Cを遷移することにより、実行する処理動作を選択する。ここでは、処理対象となるフレームデータの出力系統が0系である場合を例としてアクセス調停部24の動作を説明するが、処理対象となるフレームデータの出力系統が1系である場合もこれと同様にしてアクセス調停部24が動作する。
[出力FIFO(0系)の状態A:初期状態]
状態B,Cにおいて、出力FIFO(0系)25が書き込み可状態で、出力FIFO(0系)25に対応する、記録装置30内のキューにフレームデータが蓄積されておらず、入力FIFO22内に出力ポートPout0(0系)宛てのフレームデータが蓄積されていない場合、アクセス調停部24は状態Aに遷移し、FIFO書き込み制御部21に対して、出力FIFO(0系)25への書き込みが可能であることを出力する。
また、アクセス調停部24は、FIFO書き込み制御部21から入力されたフレームデータが、0系宛てすなわち出力ポートPout0(0系)宛てとなっていた場合は、出力FIFO(0系)25へのフレームデータの書き込みを行い、FIFO書き込み制御部21から入力されたフレームデータが、0系宛てではなかった場合は、出力FIFO(1系)25へのフレームデータの書き込みを行うか、もしくは、フレームデータの廃棄を行う。
この状態Aにおいて、入力FIFO22から0系に対応する記録装置30内のキューへのフレームデータの転送、および、0系に対応する記録装置30内のキューからのフレームデータの転送は行われない。なお、この状態Aでは、1系に対応する記録装置30内のキューへのフレームデータの転送、および、1系に対応した記録装置30内のキューからのフレームデータの転送が行われる場合はあるが、FIFO書き込み制御部21とアクセス調停部24との動作において競合は発生しない。
[出力FIFO(0系)の状態B]
状態A,Cにおいて、出力FIFO(0系)25が書き込み不可状態となった場合、アクセス調停部24は状態Bに遷移する。この状態Bにおいて、アクセス調停部24は、FIFO書き込み制御部21に対して出力FIFO(0系)25への書き込みは不可であることを出力し、入力FIFO22に蓄積されているフレームデータのサイズ(バイト数)の合計が、予め設定されているしきい値(フレームデータの最少サイズより大きい値を設定)を超えた場合に、入力FIFO22内のフレームデータをまとめて記録装置30に転送する。
記録装置30は、多重分離装置20から転送されたフレームデータに付加されているキュー指定情報、例えば出力ポート番号や優先度等に従って、メモリ31内に設けられている論理的な記録領域であるキューを選択し、入力されたフレームデータを記録する。これにより、各出力系統(出力FIFO)に対応する領域(アドレス)に入力されたフレームデータが振り分けて蓄積されることになる。
記録装置30に対するフレームデータの転送終了後、他の状態に遷移する前に、入力FIFO22に蓄積されている残りのフレームデータのサイズ(バイト数)の合計がしきい値を超えている場合、アクセス調停部24は、上記と同様の転送を繰り返す。
記録装置30に対するフレームデータの転送は、出力系統宛てのフレームデータをまとめて転送するが、転送したフレームデータのサイズ(バイト数)の累積値を出力系統ごとに管理する。
この状態Bにおいて、FIFO書き込み制御部21から入力FIFO22への0系宛てのフレームデータの書き込みが行われ、FIFO書き込み制御部から出力FIFO(0系)25へのフレームデータの書き込み、および、0系に対応した記録装置30のキューからのフレームデータの転送は行われない。
[出力FIFO(0系)の状態C]
状態Bにおいて、出力FIFO(0系)25が書き込み可状態となり、0系に対応した記録装置30のキューにフレームデータが蓄積されている場合、アクセス調停部24は状態Cに遷移する。この状態Cにおいて、アクセス調停部24は、FIFO書き込み制御部21に対して、出力FIFO(0系)25への書き込みが不可であることを出力し、入力FIFO22に蓄積されているフレームデータのサイズ(バイト数)の合計がしきい値(フレームデータの最少サイズより大きい値を設定)を超えた場合に、状態Bと同様にして入力FIFO22内のフレームデータをまとめて記録装置30に転送する。
記録装置30に対するフレームデータの転送終了後、他の状態に遷移する前に、入力FIFO22に蓄積されているフレームデータのサイズ(バイト数)の合計がしきい値を超えている場合、アクセス調停部24は、上記と同様の転送を繰り返す。
記録装置30に対するフレームデータの転送は、複数の出力系統宛てのフレームデータもまとめて転送するが、転送したフレームデータのサイズ(バイト数)の累積値を出力系統ごとに管理する。
また、この状態Cにおいて、アクセス調停部24は、0系に対応した記録装置30のキューに蓄積されているフレームデータを出力FIFO(0系)25に対して転送する。この転送は、他の状態に遷移するか、もしくは、0系に対応した記録装置30のキューに蓄積されているフレームデータがなくなるまで行う。
記録装置30から出力FIFO25へフレームデータの転送を行う際には、出力系統ごとに転送したフレームデータのサイズ(バイト数)をカウントして、入力FIFO22から記録装置30に転送したフレームデータのサイズ(バイト数)の累積値からの減算を行う。この値は、対応する出力系統ごとに、記録装置30に蓄積されているフレームデータの有無を確認するために使用する。
なお、記録装置30から出力FIFO(0系)25へのフレームデータの転送と記録装置30から出力FIFO(1系)25へのフレームデータの転送が競合する場合があるので、IF制御部24Bにて競合制御を行う。さらに、入力FIFO22から記録装置30へのフレームデータの転送と、記録装置30から出力FIFO25へのフレームデータの転送が競合する場合があるので、IF制御部24Bにて競合制御を行う。
この状態Cにおいて、FIFO書き込み制御部21から入力FIFO22への0系宛てのフレームデータの書き込みが行われ、FIFO書き込み制御部21から出力FIFO(0系)25へのフレームデータの書き込みは行われない。
なお、本実施の形態の構成は、第1の実施例と同様、状態B,Cにおいて、入力FIFO22から記録装置30へのフレームデータの転送を行う際には、複数の出力系統宛てのフレームデータをまとめて転送する。
[第4の実施の形態の効果]
このように、本実施の形態は、アクセス調停部24が、出力FIFO25ごとに設けられたセレクタ24A、および、記録装置30との間でフレームデータの転送を行うIF制御部24Bを有し、セレクタ24Aは、FIFO書き込み制御部21からのフレームデータ、もしくはIF制御部24Bからのフレームデータのいずれか1つを選択して対応する出力FIFO25へ書き込み、IF制御部24Bは、入力FIFO22から記録装置30へフレームデータを転送し、記録装置30から転送されたフレームデータを対応するセレクタ24Aへ出力するようにしたものである。
これにより、第1〜第3の実施の形態と同様の効果が得られるのに加えて、入力FIFO22から出力FIFO25への転送のためのハードウェアを省くことができ、アクセス調停部24のハードウェア規模を削減できる。
[第5の実施の形態]
次に、図6を参照して、本発明の第5の実施の形態にかかる通信用入出力装置100について説明する。図6は、第5の実施の形態にかかる通信用入出力装置の構成を示すブロック図である。
本実施の形態は、第1の実施の形態と比較して、多重分離装置20に、マルチキャスト用の出力系統、すなわちMC系統に対応する出力FIFO27を設け、マルチキャスト用のフレームデータを入力出力可能とした点が異なる。以下に、本実施の形態と第1の実施の形態との差分を説明する。なお、本実施の形態では、マルチキャストに対応する場合を例として説明するが、ブロードキャストについても後述の通り同様にして対応することができる。
本実施の形態にかかる多重分離装置20において、入力FIFO22は、各出力系統(0系,1系,MC系)に共通して設けられて、出力FIFO25に対して書き込みできなかったフレームデータを順次蓄積する機能を有している。
FIFO書き込み制御部21は、多重化装置10から出力されたフレームデータを受け取り、多重化装置10によりフレームデータに付加されたキュー指定情報により当該フレームデータに対応する出力系統(0系,1系,MC系)を特定する機能と、多重化装置10から出力されたフレームデータに付加されている出力先情報と対応する出力FIFO25が書き込み不可状態の場合、当該フレームデータを入力FIFO22へ書き込み、当該出力FIFO25が書き込み可状態の場合、アクセス調停部24に対して、当該出力FIFO25に対する当該フレームデータの書き込みを指示する機能を有している。
アクセス調停部24は、出力系統(出力ポートPout)ごとに、当該出力系統の出力FIFO25からの書き込み許可信号の有無と、入力FIFO22における当該出力系統のフレームデータの蓄積有無に基づいて、出力系統の出力FIFO25に関するフレームデータ書込可否制御信号をFIFO書き込み制御部21へ出力する機能と、FIFO書き込み制御部21から指示されたフレームデータを当該出力FIFO25へ書き込む機能と、入力FIFO22の蓄積状況に応じて、入力FIFO22に蓄積されているフレームデータを記録装置30へ転送する機能と、出力FIFO25のいずれかが書き込み可状態となった時点で、記録装置30および入力FIFO22の順に、対応する出力系統のフレームデータを読み出して当該出力FIFO25へ書き込む機能とを有している。
出力FIFO(MC系)27は、アクセス調停部24から書き込まれたマルチキャスト用フレームデータを順次蓄積する機能と、出力FIFO読み出し制御部(0系)26および出力FIFO読み出し制御部(1系)26からの読み出し要求に応じて、蓄積されているマルチキャスト用フレームデータを読み出して出力する機能とを有している。
ただし、マルチキャスト用フレームデータの出力先は複数であるため、出力FIFO(MC系)27は、出力すべきすべての出力FIFO読み出し制御部26への出力が完了するまでフレームデータを保持し、例えば、出力先となる各出力FIFO読み出し制御部26は、それぞれ個別に、出力FIFO(MC系)27に対して読み出し要求信号を出力するものとする。また、フレームデータの蓄積量(入力されたデータの量から出力したデータの量を減算した値)を測定し、その値が規定値を超えた場合に、アクセス調停部24に対する書き込み許可信号を不可状態とする。この規定値は、例えば、従来と同様に、出力FIFO(MC系)27に蓄積可能なデータ量の最大値から最長フレームデータ(2000Byte)分のデータ量を減算した値としてもよい。
図7は、第5の実施の形態にかかるアクセス調停部の要部を示す回路構成例である。図2の構成と比較して、本実施の形態にかかるアクセス調停部24には、マルチキャスト用のセレクタ24Dが設けられている点、および、制御回路24Cが出力FIF0(MC系)27からの書き込み許可信号に対応している点が異なる。
セレクタ24Dは、FIFO書き込み制御部21からのマルチキャスト用フレームデータ、入力FIFO22からのマルチキャスト用フレームデータ、もしくは、IF制御部24Bで受け取った記録装置30からのマルチキャスト用フレームデータのうちのいずれか1つを選択して、出力FIFO(MC系)27へ出力する機能を有している。
制御回路24Cは、出力系統ごとに、当該出力系統の出力FIFO25および出力FIFO27からの書き込み許可信号の有無と、IF制御部24Bから出力された入力FIFO22における当該出力系統のフレームデータの蓄積有無とに基づいて、出力系統の出力FIFO25および出力FIFO27に関するフレームデータ書込可否制御信号をFIFO書き込み制御部21へ出力する機能を有している。
したがって、多重分離装置20では、出力FIFO(MC系)27に1フレームデータ以上のマルチキャスト用フレームデータが蓄積されていない場合や、出力FIFO(MC系)27からの読み出し要求がない場合、第1の実施の形態と同様に動作する。
また、出力FIFO(MC系)27からの読み出し要求があり、その他の出力FIFO25に1フレームデータ以上のフレームデータが蓄積されていない場合、出力FIFO(MC系)27からマルチキャスト用フレームデータを読み出して、対応する出力ポートPout0,Pout1から出力する。
一方、出力FIFO(MC系)27からの読み出し要求があり、その他の出力FIFO25に1フレームデータ以上のフレームデータが蓄積されている場合には、例えば、出力系統(0系,1系,MC系)ごとの優先度に応じて、出力すべき出力FIFO25,27を選択し、該当する出力FIFO25,27からフレームデータを読み出して出力ポートから出力する。
[第5の実施の形態の効果]
このように、本実施の形態は、多重分離装置20に、マルチキャスト用の出力系統であるMC系統としてマルチキャスト用出力FIFO27を設け、アクセス調停部24から書き込まれたマルチキャスト用フレームデータを順次蓄積し、出力ポートPout0,Pout1ごとに設けられた出力FIFO読み出し制御部26からの読み出し要求に応じて、蓄積しているマルチキャスト用フレームデータを読み出して出力するとともに、当該マルチキャスト用フレームデータの出力先となるすべての出力FIFO読み出し制御部26への出力が完了するまで当該マルチキャスト用フレームデータを保持するようにしたものである。
そして、アクセス調停部24により、マルチキャスト用の出力系統を含む各出力系統(0系,1系,MC系)を出力宛てとするフレームデータについて、FIFO書き込み制御部21から出力FIFO25,27への書き込み、入力FIFO22から出力FIFO25,27または記録装置30への書き込み、記録装置30から出力FIFO25,27への書き込みを行うようにしたものである。
これにより、第1の実施の形態と同様の効果が得られるのに加えて、マルチキャスト用フレームデータの入出力が可能となる。
また、本実施の形態では、出力ポートPoutが2つ設けられている構成であるため、マルチキャストフレームデータ用の出力FIFO27は、ブロードキャストフレームデータ用の出力FIFOとして共用することができる。なお、出力ポートが3以上の場合、ブロードキャストフレームデータはすべての出力ポートから出力するのに対して、マルチキャストフレームデータは出力しない出力ポートが存在する場合がある。この場合には、ブロードキャスト用出力FIFOを設けるとともに、宛先の組み合わせ(例えば、特許文献1の第2の実施形態を参照)ごとにマルチキャスト用出力FIFO27を設ければよい。
[実施の形態の拡張]
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。また、各実施形態については、矛盾しない範囲で任意に組み合わせて実施することができる。
100…通信用入出力装置、10…多重化装置、11…キュー指定情報付加部、12…多重化部、20…多重分離装置、21…FIFO書き込み制御部、22…入力FIFO、23…キューマップ、24…アクセス調停部、24A…セレクタ、24B…IF制御部、24C…制御回路、24D…セレクタ(マルチキャスト用)、25…出力FIFO、26…出力FIFO読み出し制御部、27…出力FIFO(マルチキャスト用)、30…記録装置、31…メモリ、32…書き込み制御部、33…読み出し制御部、34…論理キュー設定情報保持部、Pin0…入力ポート(0系)、Pin1…入力ポート(1系)、Pout0…出力ポート(0系)、Pout1…出力ポート(1系)。

Claims (8)

  1. 順次入力される通信データに、当該通信データを出力すべき出力系統と対応する出力先情報を付加して多重化する多重化装置と、前記多重化装置から出力された通信データを、当該通信データに付加されている前記出力先情報に基づき分離し、当該出力先情報と対応する出力系統の出力FIFOへ書き込む多重分離装置と、複数のキューにより前記通信データを前記出力系統ごとに一時蓄積する記録装置とを備える通信用入出力装置であって、
    前記多重分離装置は、
    前記各出力系統に共通して設けられて、前記各出力FIFOへ書き込みできなかった通信データを一時蓄積する入力FIFOと、
    前記入力FIFOにおける通信データの蓄積状況に応じて、当該入力FIFOに蓄積されている通信データを前記記録装置へ転送し、任意の出力系統の出力FIFOが書き込み可状態となった時点で、前記記録装置および前記入力FIFOの順に当該出力系統の通信データを読み出して当該出力FIFOへ書き込むアクセス調停部とを備え、
    前記記録装置は、前記多重分離装置から転送された前記通信データを、当該通信データに付加されている前記出力先情報と対応する出力系統のキューに書き込む書き込み制御部を備える
    ことを特徴とする通信用入出力装置。
  2. 請求項1に記載の通信用入出力装置において、
    前記記録装置は、前記出力系統ごとに1つまたは複数の前記キューを有し、これらキューは、1つまたは複数の別個のメモリ回路で構成されていることを特徴とする通信用入出力装置。
  3. 請求項1または請求項2記載の通信用入出力装置において、
    前記記録装置は、前記キューを論理的に形成して前記通信データを蓄積するためメモリを有し、前記アクセス調停部から指示された、読み出し対象となるキューに関する前記メモリ上でのアドレス情報に基づいて、前記メモリから対応するキューに蓄積されている前記通信データを読み出して当該アクセス調停部へ転送することを特徴とする通信用入出力装置。
  4. 請求項1または請求項2に記載の通信用入出力装置において、
    前記記録装置は、前記キューを論理的に形成して前記通信データを蓄積するためメモリを有し、前記アクセス調停部から指示された、読み出し対象となるキューを識別するためのキュー情報に基づいて、当該キューに関する前記メモリ上でのアドレス情報を特定し、当該アドレス情報に基づいて、前記メモリから対応するキューに蓄積されている前記通信データを読み出して当該アクセス調停部へ転送することを特徴とする通信用入出力装置。
  5. 請求項1または請求項2に記載の通信用入出力装置において、
    前記記録装置は、前記キューを論理的に形成して前記通信データを蓄積するためメモリを有し、前記アクセス調停部から指示された、読み出し対象となる通信データに関連するユーザIDまたは出力系統に関連する出力ポートIDに基づいて、対応するキューに関する前記メモリ上でのアドレス情報を特定し、当該アドレス情報に基づいて、前記メモリから対応するキューに蓄積されている前記通信データを読み出して当該アクセス調停部へ転送し、対応するキューが複数存在する場合は、最も優先度の高いキューから順に前記通信データを読み出して当該アクセス調停部へ転送することを特徴とする通信用入出力装置。
  6. 請求項1〜請求項5のいずれかに記載の通信用入出力装置において、
    前記アクセス調停部は、前記出力系統ごとに設けられたセレクタ、および、前記記録装置との間で前記通信データの転送を行うIF制御部を有し、
    前記セレクタは、前記多重化装置からの通信データ、前記入力FIFOからの通信データ、もしくは前記IF制御部からの通信データのいずれか1つを選択して対応する出力FIFOへ書き込み、
    前記IF制御部は、前記入力FIFOから前記記録装置へ前記通信データを転送し、前記記録装置から転送された前記通信データを対応する前記セレクタへ出力する
    ことを特徴とする通信用入出力装置。
  7. 請求項1〜請求項5のいずれかに記載の通信用入出力装置において、
    前記アクセス調停部は、前記出力系統ごとに設けられたセレクタ、および、前記記録装置との間で前記通信データの転送を行うIF制御部を有し、
    前記セレクタは、前記多重化装置からの通信データ、もしくは前記IF制御部からの通信データのいずれか1つを選択して対応する出力FIFOへ書き込み、
    前記IF制御部は、前記入力FIFOから前記記録装置へ前記通信データを転送し、前記多重化装置からの通信データ、および前記記録装置から転送された前記通信データを対応する前記セレクタへ出力する
    ことを特徴とする通信用入出力装置。
  8. 請求項1〜請求項5のいずれかに記載の通信用入出力装置において、
    前記多重分離装置は、前記アクセス調停部から書き込まれたマルチキャスト用フレームデータを順次蓄積し、出力ポートごとに設けられた出力FIFO読み出し制御部からの読み出し要求に応じて、蓄積している前記マルチキャスト用フレームデータを読み出して出力するとともに、当該マルチキャスト用フレームデータの出力先となるすべての出力FIFO読み出し制御部への出力が完了するまで当該マルチキャスト用フレームデータを保持するマルチキャスト用出力FIFOをさらに備え、
    前記アクセス調停部は、前記出力系統ごとに設けられたセレクタ、マルチキャスト用セレクタ、および、前記記録装置との間で前記通信データの転送を行うIF制御部を有し、
    前記セレクタは、前記多重化装置からの通信データ、前記入力FIFOからの通信データ、または前記IF制御部からの通信データのいずれか1つを選択して対応する出力FIFOへ書き込み、
    前記マルチキャスト用セレクタは、前記多重化装置からのマルチキャスト用通信データ、前記入力FIFOからのマルチキャスト用通信データ、もしくは前記IF制御部からのマルチキャスト用通信データのいずれか1つを選択してマルチキャスト用出力FIFOへ書き込み、
    前記IF制御部は、前記入力FIFOから前記記録装置へ前記通信データを転送し、前記記録装置から転送された通信データを対応する前記セレクタへ出力し、前記記録装置から転送されたマルチキャスト用通信データを対応する前記マルチキャスト用セレクタへ出力する
    ことを特徴とする通信用入出力装置。
JP2015007491A 2015-01-19 2015-01-19 通信用入出力装置 Active JP6212059B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015007491A JP6212059B2 (ja) 2015-01-19 2015-01-19 通信用入出力装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015007491A JP6212059B2 (ja) 2015-01-19 2015-01-19 通信用入出力装置

Publications (2)

Publication Number Publication Date
JP2016134711A JP2016134711A (ja) 2016-07-25
JP6212059B2 true JP6212059B2 (ja) 2017-10-11

Family

ID=56464583

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015007491A Active JP6212059B2 (ja) 2015-01-19 2015-01-19 通信用入出力装置

Country Status (1)

Country Link
JP (1) JP6212059B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6977940B1 (en) * 2000-04-28 2005-12-20 Switchcore, Ab Method and arrangement for managing packet queues in switches
JP2009124488A (ja) * 2007-11-15 2009-06-04 Sumitomo Electric Ind Ltd データ中継処理装置及び方法
JP2011010195A (ja) * 2009-06-29 2011-01-13 Nippon Telegr & Teleph Corp <Ntt> 通信用入出力装置
JP5359692B2 (ja) * 2009-08-28 2013-12-04 富士通株式会社 フレーム出力方法及びフレーム出力装置
JP2011239326A (ja) * 2010-05-13 2011-11-24 Renesas Electronics Corp 半導体装置およびそれを用いた通信装置

Also Published As

Publication number Publication date
JP2016134711A (ja) 2016-07-25

Similar Documents

Publication Publication Date Title
US9426099B2 (en) Router, method for controlling router, and program
US7675925B2 (en) Method and apparatus for providing a packet buffer random access memory
US7742408B2 (en) System and method for filtering packets in a switching environment
US7349417B2 (en) Deficit round-robin scheduling in a high-speed switching environment
US7729258B2 (en) Switching device
US10282343B2 (en) Semiconductor device
US7440470B2 (en) Multicasting in a high-speed switching environment
US20090304017A1 (en) Apparatus and method for high-speed packet routing system
US7711787B2 (en) On-chip network interfacing apparatus and method
US10402348B2 (en) Method and system for using feedback information for selecting a routing bus for a memory transaction
JP6212059B2 (ja) 通信用入出力装置
JP6611011B2 (ja) 通信用入出力装置
KR102496994B1 (ko) PCIe 인터페이스 장치 및 그 동작 방법
US10684965B2 (en) Method to reduce write responses to improve bandwidth and efficiency
US20060041705A1 (en) System and method for arbitration between shared peripheral core devices in system on chip architectures
JP2011010195A (ja) 通信用入出力装置
JP6351073B2 (ja) 通信用入出力装置
JP6570075B2 (ja) 通信用入出力装置
WO2019225336A1 (ja) 通信用入出力装置
JP2016158024A (ja) 通信用入出力装置
JP2015069345A (ja) 情報処理装置,データ転送装置,およびデータ転送方法
US7447201B2 (en) Multicasting in a high-speed switching environment
JP5287975B2 (ja) 情報処理装置
JP2019032727A (ja) 通信用入出力装置
JP2008305215A (ja) バスシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161213

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170828

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170912

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170914

R150 Certificate of patent or registration of utility model

Ref document number: 6212059

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150