JP5191059B2 - バッファ回路及びバッファ回路制御方法 - Google Patents
バッファ回路及びバッファ回路制御方法 Download PDFInfo
- Publication number
- JP5191059B2 JP5191059B2 JP2009149094A JP2009149094A JP5191059B2 JP 5191059 B2 JP5191059 B2 JP 5191059B2 JP 2009149094 A JP2009149094 A JP 2009149094A JP 2009149094 A JP2009149094 A JP 2009149094A JP 5191059 B2 JP5191059 B2 JP 5191059B2
- Authority
- JP
- Japan
- Prior art keywords
- buffer
- frame data
- circuit
- input
- attribute value
- 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
Links
- 239000000872 buffer Substances 0.000 title claims description 961
- 238000000034 method Methods 0.000 title claims description 106
- 238000005192 partition Methods 0.000 claims description 391
- 238000009825 accumulation Methods 0.000 claims description 355
- 230000005540 biological transmission Effects 0.000 claims description 344
- 238000012544 monitoring process Methods 0.000 claims description 160
- 230000004308 accommodation Effects 0.000 claims description 155
- 230000007423 decrease Effects 0.000 claims description 112
- 238000012545 processing Methods 0.000 description 111
- 230000008569 process Effects 0.000 description 64
- 230000003247 decreasing effect Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 17
- 238000012546 transfer Methods 0.000 description 16
- 230000008859 change Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000009467 reduction Effects 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Description
例えば、特許文献1に示されたフレームを蓄積するためのバッファ回路では、DDR−SDRAM(Double-Data-Rate Synchronous Dynamic Random Access Memory)等の汎用の外部メモリをバッファ用メモリとして用いる。この外部メモリは、最長フレームを収容可能な固定容量に区分けされ、バッファ回路は区分けされた領域1個につき1個のフレームを収容する。最長フレームを収容可能な固定容量は、例えば2キロバイトである。前記の区分けされた各領域に各々異なるハンドル番号が割り当てられ、ハンドル管理部が各領域の空塞を前記ハンドル番号を用いて管理する。QoS(Quality of Service、サービス品質)部は、複数のキューを具備し、フレームを収容した領域のハンドル番号と前記フレームの各種情報とを合わせたジョブ情報とを、ジョブ情報に基づいて選択したキューに入力する。このとき前記キューが最大キュー長に達している場合は、このジョブ情報のハンドル番号をハンドル管理部に返却し、ハンドル管理部は前記フレームを収容した領域を空領域にする。
このように、特許文献1に示されたバッファ回路のバッファ制御は、クラス別かつ送信ポート別に用意された各キューのキュー長に基づいてフレームをバッファへ収容するか廃棄するかを判定する、キューイング制御により行われていた。
このように、特許文献1に示されたバッファ回路等、従来のバッファ回路は、バッファ用メモリの利用効率が低い分、バッファ用メモリの容量を大きくする必要があり、回路規模が増大するという課題があった。
フレームデータのクラス及びフレームデータを受信した受信ポート及びフレームデータを送信する送信ポートの3つの属性であるフレームデータの属性毎に前記バッファ用メモリ手段に記憶されたフレームデータ数を示す属性値別蓄積量を出力する属性値別蓄積量監視手段と、前記属性毎に前記属性値別蓄積量の上限量を、前記バッファ用メモリ手段の空き容量に基づいて算出し、フレームデータの属性を示す属性値が入力されると、前記属性値別蓄積量と前記上限量とを前記属性毎に比較して、前記属性値のフレームデータを前記バッファ用メモリ手段に収容可能か否かを示す収容可否判定結果を判定し、前記3つの属性毎の収容可否判定結果のすべてが可であるか否かに応じて、前記属性値のフレームデータを前記バッファ用メモリ手段に蓄積するか否かを判定し、蓄積する場合は収容有を示す情報を出力する収容判定手段と、外部からフレームデータが入力された場合に、前記収容判定手段から収容有の情報が入力されたときは、前記フレームデータを前記バッファ用メモリ手段に書き込むバッファ用メモリ制御手段と、を具備することを特徴とする。
このバッファ回路は、各属性値のフレームデータが同一のバッファ用メモリに記憶され、各属性値に割り当てられる容量は上限値によって管理される。したがって、属性値毎にバッファ用メモリの固定の容量を割り当てる必要が無く、バッファ用メモリの利用効率が高い。
ここで、フレームデータの属性は、例えば、そのフレームデータのクラスや、そのフレームデータを受信した受信ポートや、そのフレームデータを送信する送信ポートである。また、フレームデータのクラスや、そのフレームデータを受信した受信ポートや、そのフレームデータを送信する送信ポートの属性値としてはそれぞれクラス値や、受信ポート番号や、送信ポート番号などを用いることができる。収容判定手段は、例えば、クラス毎のフレームデータの蓄積量又は受信ポート毎のフレームデータの蓄積量又は送信ポート毎のフレームデータの蓄積量のいずれか又はこれらの組み合わせと、対応する各々の蓄積量の上限値と、を比較して、この属性値のフレームデータをバッファ用メモリ手段に蓄積するか否かを決定する。なお、1つのフレームデータがマルチキャスト送信される場合もある。このフレームデータには複数個の送信ポート番号が割り当てられる。マルチキャスト送信されるフレームデータは、割り当てられた送信ポート番号の個数と同じ回数バッファ用メモリ手段から読み出されて送信される。一方、ユニキャスト送信されるフレームデータは、バッファ用メモリ手段から1回のみ読み出されて送信される。このフレームデータには1個の送信ポート番号が割り当てられる。
上記のバッファ回路は、属性値別蓄積量(クラス別・受信ポート別・送信ポート別のバッファ蓄積量)とバッファ用メモリの空き容量を監視し、バッファ用メモリの空き容量の変化に応じて、クラス別・受信ポート別・送信ポート別蓄積量の上限を所定の変更方法に基づいて変更し、前記蓄積量と前記蓄積量上限を比較し、フレームをバッファ用メモリに収容するか否かを判定する。クラス・受信ポート・送信ポートに応じて、蓄積量上限の変更方法に関するパラメタ値を変えることにより、バッファ用メモリの空き容量(蓄積量)に応じて、各フレームデータがバッファ用メモリに占める比率を調整できるため、キューイング制御に拠らずにクラスやポートに関連付けたバッファ輻輳時の廃棄等のバッファ制御が可能となる。また、上記のバッファ回路において、バッファ用メモリの空き容量(蓄積量)に基づいてクラス別・受信ポート別・送信ポート別蓄積量上限を算出する。バッファ用メモリの空きが大きい場合は、クラス別・受信ポート別・送信ポート別蓄積量上限が大きくなるよう算出することにより、バッファ用メモリの空きを蓄積量が増加中のクラス・ポートに振り当てることができる。これにより、バッファ用メモリの利用効率が向上するため、バッファ用メモリに要する回路の規模を削減することができる。
このバッファ回路は、予め定められた蓄積単位容量Sをもつバッファ区画でバッファ用メモリを区画し、各フレームを蓄積単位容量Sの長さの分割フレームに分割し、空きバッファ区画を探して分割フレームを蓄積する。1フレーム当たりの未使用量がS未満となりバッファ用メモリの利用効率が向上するため、バッファ用メモリに要する回路の規模を削減することができる。
このバッファ回路は、バッファ用メモリ手段の空き容量または蓄積量に基づいて属性値別蓄積量の上限値を算出する。これにより各属性値の分割フレームデータを同一のバッファ回路に蓄積でき、バッファ用メモリに要する回路の規模を削減することができる。
このバッファ回路制御方法では、バッファ回路は、各属性値のフレームデータが同一のバッファ用メモリに記憶され、各属性値に割り当てられる容量は上限値によって管理される。したがって、属性値毎にバッファ用メモリの固定の容量を割り当てる必要が無く、バッファ用メモリの利用効率が高い。
このバッファ回路処理方法では、このバッファ回路は、属性値別蓄積量(クラス別・受信ポート別・送信ポート別のバッファ蓄積量)とバッファ用メモリの空き容量を監視し、バッファ用メモリの空き容量の変化に応じて、クラス別・受信ポート別・送信ポート別蓄積量の上限を所定の変更方法に基づいて変更し、前記蓄積量と前記蓄積量上限を比較し、フレームをバッファ用メモリに収容するか否かを判定する。クラス・受信ポート・送信ポートに応じて、蓄積量上限の変更方法に関するパラメタ値を変えることにより、バッファ用メモリの空き容量(蓄積量)に応じて、各フレームデータがバッファ用メモリに占める比率を調整できるため、キューイング制御に拠らずにクラスやポートに関連付けたバッファ輻輳時の廃棄等のバッファ制御が可能となる。また、上記のバッファ回路において、バッファ用メモリの空き容量(蓄積量)に基づいてクラス別・受信ポート別・送信ポート別蓄積量上限を算出する。バッファ用メモリの空きが大きい場合は、クラス別・受信ポート別・送信ポート別蓄積量上限が大きくなるよう算出することにより、バッファ用メモリの空きを蓄積量が増加中のクラス・ポートに振り当てることができる。これにより、バッファ用メモリの利用効率が向上するため、バッファ用メモリに要する回路の規模を削減することができる。
このバッファ回路制御方法では、バッファ回路は、予め定められた蓄積単位容量Sをもつバッファ区画でバッファ用メモリを区画し、各フレームを蓄積単位容量Sの長さの分割フレームに分割し、空きバッファ区画を探して分割フレームを蓄積する。1フレーム当たりの未使用量がS未満となりバッファ用メモリの利用効率が向上するため、バッファ用メモリに要する回路の規模を削減することができる。
このバッファ回路制御方法では、バッファ回路は、バッファ用メモリ手段の空き容量または蓄積量に基づいて属性値別蓄積量の上限値を算出する。これにより各属性値の分割フレームデータを同一のバッファ回路に蓄積でき、バッファ用メモリに要する回路の規模を削減することができる。
以下、図面を参照して、本発明の第1の実施の形態について説明する。
図1は本発明の第1の実施形態におけるスイッチ回路の概略構成を示す構成図である。
同図のスイッチ回路1は、イーサネット(登録商標)等で用いられるスイッチ回路である。スイッチ回路1は、受信ポートでフレームを受信すると、受信したフレームの受信ポートや宛先MAC(Media Access Control)アドレスまたはVLAN ID(Virtual Local Area Network Identifier)等に基づいて送信ポートを決定する。そして、決定された送信ポートにフレームを転送し、VLAN(Virtual Local Area Network)タグの挿入または削除等を行った後に送信する。また、スイッチ回路1は受信したフレームの受信ポートやVLANタグ内の優先度等に基づいてクラスを決定し、決定したクラスに基づいて送信時のQoS処理を行う。具体的には、スイッチ回路1は送信ポート別かつクラス別にキューを備え、より高いクラスのフレームを先に送信する優先制御やクラス毎の送信レート制限を行う。前記キューに格納されるフレームのフレームデータは、前記スイッチ回路1内のバッファ回路に蓄積される。
同図において、スイッチ回路1は、受信ポート毎の受信MAC回路11−1〜Npと受信処理回路12とバッファ回路13とQoS回路14と送信処理回路15と送信ポート毎の送信MAC回路16−1〜Npとを含んで構成される。
受信処理回路12は、入力されたフレームデータから宛先MACアドレスを読み出す。また、入力されたフレームデータがVLANタグを含む場合は、VLANタグからVLAN IDや優先度を読み出す。受信処理回路12は、受信ポートや宛先MACアドレスやVLAN IDに基づいて送信ポートを決定する。なお、受信処理回路12が、1個の受信フレームに対して複数個の送信ポートを決定する場合もある。すなわち、受信処理回路12は、マルチキャスト送信されるフレームデータに対しては、複数個の送信ポートを決定する。このフレームデータは決定された送信ポートの個数と同じ回数だけ読み出されて送信される。一方、受信処理回路12は、ユニキャスト送信されるフレームデータに対しては、1個の送信ポートを決定する。なお、入力されたフレームデータに該当する送信ポートが無く、受信処理回路12がフレームデータを廃棄する場合もある。
また、受信処理回路12は受信ポート番号やVLANタグから読み出した優先度情報に基づいてクラスを決定する。その後、受信処理回路12は、受信フレームのフレームデータと、クラスの情報や受信ポートの情報や送信ポートの情報を含む受信処理出力ジョブ情報とを、バッファ回路13に経路W1−2を通じて出力する。なお、上述したように送信ポートの情報が複数含まれる場合がある。
また、バッファ用メモリの蓄積状態に応じて、バッファ用メモリへの収容有無を判定し、収容無と判定した場合は、受信フレームのフレームデータを前記バッファ用メモリに蓄積せず、また、QoS入力ジョブ情報を出力しない。詳細については後述する。
また、QoS回路14は、各送信ポートについて、当該送信ポートかつ何れかのクラスに対応付けられた1個のキューを選択し、選択したキューから1個のキュー蓄積ジョブ情報を取り出す。QoS回路14は取り出したQoS出力ジョブ情報をバッファ回路13に出力する。その際、QoS回路14は、取り出したキュー蓄積ジョブ情報からハンドル番号と受信ポートの情報とを読み出す。また、キュー蓄積ジョブ情報をどのキューから取り出したかによって、送信ポートの情報とクラスの情報とを取得する。QoS回路14は、これらのハンドル番号とクラスの情報と受信ポートの情報と送信ポートの情報とをQoS出力ジョブ情報に含めて出力する。前記キューの選択やキュー蓄積ジョブ情報を取り出すタイミングは、QoS回路内のスケジューラ・シェーパが制御する。スケジューラ・シェーパは高いクラスのフレームを先に送信する優先制御やクラス毎の送信レート制限を行う。
また、QoS回路14は、送信ポート別かつクラス別に設けられたキューの各々について、キュー長が最大キュー長に達していない場合には当該キューへの入力可と判定し、それ以外の場合には入力不可と判定する。QoS回路14はこの判定結果をQoS入力可否情報としてバッファ回路13に経路W1−5を通じて出力する。
送信処理回路15は、入力したフレームデータに対してVLANタグの挿入または削除等の処理を行う。送信処理回路15は、処理を行ったフレームデータを、バッファ出力ジョブ情報に含まれる送信ポートの送信MAC回路16−1〜Npに経路W1−7を通じて出力する。
送信MAC回路16−1〜Npは、前記入力されたフレームデータに対して所定の送信側MAC処理を行い、送信ポートから送信する。また、送信MAC回路16−1〜Npは、バッファ用メモリの蓄積状態に基づいて、送信ポートからポーズフレームを送信する。
バッファ用メモリ100はフレームデータを記憶する。
バッファ用メモリ制御回路200は、受信処理回路12から入力されたフレームのフレームデータを、バッファ用メモリ100の空き領域に書き込む。この書き込みのため、バッファ用メモリ制御回路200は、バッファ用メモリ100回路に書込指示・書込アドレス・書込データを出力する。
バッファ用メモリ制御回路200は、受信処理回路12から入力されたフレームデータをバッファ用メモリ100に書き込む。バッファ用メモリ制御回路200は、バッファ用メモリ100回路に書込指示と書込アドレスを経路W13−4を通じて出力し、書込データを経路W13−5を通じて出力することにより書き込みを行う。また、バッファ用メモリ制御回路200は、QoS回路14から経路W13−9を通じて入力されるQoS出力ジョブ情報に従ってバッファ用メモリ100からフレームデータを経路W13−6を通じて読み出し、送信処理回路15に出力する。そのために、バッファ用メモリ制御回路200は読出指示と読出アドレスとをバッファ用メモリ100に経路W13−6を通じて出力する。
収容判定回路300はバッファ用メモリ100の空き容量を内部に記憶する。また、収容判定回路300は、記憶する空き容量からクラス別蓄積量上限と受信ポート別蓄積量上限と送信ポート別蓄積量上限とを決定する。また、収容判定回路300は、収容有無情報を出力する。ここで、空き容量とは、後述するバッファ用メモリ100が所定の単位で区画化された場合にて、各区画のうちの空き区画の個数をいう。
なお、収容判定回路300がバッファ用メモリ100におけるフレームデータの蓄積量を内部に記憶するようにしてもよい。ここで、蓄積量とは、バッファ用メモリ100が所定の単位で区画された各区画のうち、フレームデータが記憶されている区画の個数をいう。空き容量と蓄積量とは和が一定の関係にあるので、空き容量を記憶する場合と同様に、収容判定回路300は記憶する蓄積量からクラス別蓄積量上限と受信ポート別蓄積量上限と送信ポート別蓄積量上限とを決定することができる。なお、以下では、収容判定回路300が記憶する空き容量または蓄積量を空き容量情報または蓄積量情報ともいう。
空き容量監視回路301は、バッファ用メモリ100の空き容量情報を、フレーム数にて内部に記憶する。なお、上述のように、空き容量監視回路301が、バッファ用メモリ100におけるフレームデータの蓄積量を、フレーム数に内部に記憶するようにしてもよい。
空き容量監視回路301は、バッファ用メモリ制御回路200から空き容量増減信号が経路W300−1を通じて入力されると、内部に保持する空き容量情報を増加または減少させる。空き容量増減信号がバッファ用メモリの1区画を確保したことを示す場合は、バッファ用メモリ100に1個のフレームを蓄積することに相当するため、空き容量情報を1減少させる。また、空き容量増減信号がバッファ用メモリの1区画を解放したことを示す場合は、バッファ用メモリの1個のフレームを廃棄することに相当するため、空き容量情報を1増加させる。
選択回路304は、クラス_i蓄積量判定回路(i=1〜Nc)303−1〜Ncから入力するクラス_i蓄積量判定結果(i=1〜Nc)のうち、入力フレームのクラスに関する判定結果を選択し、クラス別収容可否判定結果とする。入力フレームのクラスは、バッファ用メモリ制御回路200から経路W300−3を通じて入力される。
選択回路307は、受信ポート_i蓄積量判定回路(i=1〜Np)306〜1−Npから入力する受信ポート_i蓄積量判定結果(i=1〜Np)のうち、入力フレームの受信ポートに関する判定結果を選択し、受信ポート別収容可否判定結果とする。入力フレームの受信ポートは、バッファ用メモリ制御回路200から経路W300−5を通じて入力される。
複数選択回路310は、送信ポート_i蓄積量判定回路(i=1〜Np)309−1〜Npから入力する送信ポート_i蓄積量判定結果(i=1〜Np)のうち、入力フレームの送信ポートに関する判定結果を選択し、送信ポート別収容可否判定結果として出力する。ここで、入力フレームの送信ポートが複数ある場合もある。そこで、複数選択回路310は、入力フレームの送信ポートのうちいずれか1個以上の送信ポートに関して1となる判定結果がある場合は送信ポート別収容可否判定結果を1とし、それ以外の場合は0とする。入力フレームの送信ポートは、バッファ用メモリ制御回路200から経路W300−7を通じて入力される。
または、上記のように、ポーズフレーム送出を、属性値別蓄積量が対応する属性値別蓄積量上限を超えたことを契機として行うのではなく、ポーズ後蓄積可能量を予め定めておき、受信ポート別蓄積量が属性値別蓄積量上限からポーズ後蓄積可能量を減じた量を超えた場合に行ってもよい。この場合は、ポーズフレーム送出後に受信されたフレームであってもポーズ後蓄積可能量の範囲であれば廃棄されない。
または、属性値別蓄積量上限とは別に、属性値別蓄積量上限の生成方法と同様の方法により、属性値別蓄積量制限を生成し、属性値別蓄積量が対応する前記属性値別蓄積量制限を超えたことを契機として、ポーズフレームを送出するようにしてもよい。
受信ポートi_1〜Npの何れかが外部からフレームを受信すると、その受信ポートに対応する受信側MAC回路11−1〜11−Npが受信フレームのフレームデータに対して所定の受信MAC側処理を行う。受信側MAC回路は、処理を行った受信フレームデータを受信処理回路12に入力する。
受信処理回路12は、入力されたフレームデータから宛先MACアドレスを読み出す。また、入力されたフレームデータがVLANタグを含む場合は、VLANタグからVLAN IDや優先度を読み出す。受信処理回路12は、受信ポートや宛先MACアドレスやVLAN IDに基づいて送信ポートを決定する。
また、受信処理回路12は受信ポート番号やVLANタグから読み出した優先度情報に基づいてクラスを決定する。その後、受信処理回路12は、受信フレームのフレームデータと、クラスの情報や受信ポートの情報や送信ポートの情報(複数の場合有り)を含む受信処理出力ジョブ情報とを、バッファ回路13に出力する。
一方、蓄積可否の判定において蓄積可と判定した場合、バッファ用メモリ制御回路200は、前記入力したフレームデータのクラス情報と受信ポートの情報と送信ポートの情報とを収容判定回路300に経路W13−15を通じて出力する。ここで、バッファ用メモリ制御回路200は、受信処理出力ジョブ情報に含まれる送信ポートのうち、上記の蓄積可否判定においてキューへの入力が可能と判定した送信ポートの情報を出力する。バッファ用メモリ制御回路200が複数の送信ポートの情報を出力する場合もある。なお、送信ポート番号を出力する代わりに、バッファ用メモリ制御回路200が送信ポート毎のフラグを含む信号を出力するようにしてもよい。例えば、1ビットのフラグを用いて、フラグが1の送信ポートから入力フレームデータを送信することを示し、フラグが0の送信ポートからは入力フレームデータを送信しないことを示すようにする。
収容判定回路300は、バッファ用メモリ制御回路200から入力した情報に基づいて、入力フレームデータをバッファ用メモリ100に収容するか否かを決定する。収容判定回路の動作の詳細については後述する。収容判定回路300は、判定結果を示す収容有無をバッファ用メモリ制御回路200に経路W13−16を通じて出力する。入力フレームデータをバッファ用メモリ100に収容する場合は収容有無として収容有を出力し、収容しない場合は収容無を出力する。
クラス別蓄積量監視回路400は、次の方法で計数を行う。まず、クラス別蓄積量監視回路400は、バッファ用メモリ100に蓄積中のフレームのうち同一クラスのフレーム数を、クラス別蓄積量として保持する。また、クラス別蓄積量監視回路400は、バッファ用メモリ制御回路200から、バッファ用メモリ100のバッファ区画を確保または解放したことを示す空き容量増減信号が経路13−11を通じて入力される。さらに、前記信号とあわせて、確保または解放されるバッファ区画に蓄積されるフレームデータのクラスの情報が経路13−10を通じて入力される。
空き容量増減信号を入力したとき、クラス別蓄積量監視回路400は、入力したクラスにの情報に対応するクラス別蓄積量を空き容量増減信号に基づいて増加または減少させる。空き容量増減信号がバッファ用メモリの1区画を確保したことを示す場合は、1個のフレームを蓄積することに相当するため、クラス別蓄積量を1増加させる。一方、空き容量増減信号がバッファ用メモリの1区画を解放したことを示す場合は、1個のフレームを廃棄することに相当するため、クラス別蓄積量を1減少させる。
受信ポート別蓄積量監視回路500は、クラス別蓄積量監視回路400と同様に、次の方法で計数を行う。まず、受信ポート別蓄積量監視回路500は、バッファ用メモリ100に蓄積中のフレームのうち同一受信ポートのフレーム数を、受信ポート別蓄積量として保持する。また、受信ポート別蓄積量監視回路500は、バッファ用メモリ制御回路200から、バッファ用メモリ100のバッファ区画を確保または解放したことを示す空き容量増減信号が経路W13−11を通じて入力される。さらに、前記信号とあわせて、確保または解放されるバッファ区画に蓄積されるフレームデータの受信ポートの情報が経路W13−10を通じて入力される。
空き容量増減信号を入力したとき、受信ポート別蓄積量監視回路500は、入力した受信ポートの情報に対応する受信ポート別蓄積量を空き容量増減信号に基づいて増加または減少させる。空き容量増減信号がバッファ用メモリの1区画を確保したことを示す場合は、受信ポート別蓄積量を1増加させる。一方、空き容量増減信号がバッファ用メモリの1区画を解放したことを示す場合は、受信ポート別蓄積量を1減少させる。
送信ポート別蓄積量監視回路600は、クラス別蓄積量監視回路400と同様に、次の方法で計数を行う。まず、送信ポート別蓄積量監視回路600は、バッファ用メモリ100に蓄積中のフレームのうち同一送信ポートのフレーム数を、送信ポート別蓄積量として保持する。また、送信ポート別蓄積量監視回路600は、バッファ用メモリ制御回路200から、バッファ用メモリ100のバッファ区画を確保または解放したことを示す空き容量増減信号が経路W13−11を通じて入力される。さらに、前記信号とあわせて、確保または解放されるバッファ区画に蓄積されるフレームデータの送信ポートの情報が経路W13−10を通じて入力される。
空き容量増減信号を入力したとき、送信ポート別蓄積量監視回路600は、入力した送信ポートの情報対応する送信ポート別蓄積量を、空き容量増減信号に基づいて増加または減少させる。空き容量増減信号がバッファ用メモリの1区画を確保したことを示す場合は、送信ポート別蓄積量を1増加させる。一方、空き容量増減信号がバッファ用メモリの1区画を解放したことを示す場合は、送信ポート別蓄積量を1減少させる。
複数の送信ポートの情報を入力した場合は、各送信ポートについて、対応する送信ポート別蓄積量を増加または減少させる。
また、収容判定回路300は、空き容量情報を内部に保持し、空き容量情報に基づいて、クラス別蓄積量上限と受信ポート別蓄積量上限と送信ポート別蓄積量上限とを定める。
図4(a)は収容判定回路300内の各蓄積量上限生成回路が蓄積量上限を生成する手順を示すフローチャートである。
なお、以下のV_1とV_2とV_NvとL_1とL_2とL_NvとL_maxとLminとKとは外部から設定するパラメタを示すが、斜字による表示を省略する。
空き容量監視回路301から空き容量が入力されると蓄積量上限生成回路は蓄積量上限を生成する処理を開始する。
ステップS1において、蓄積量上限生成回路は空き容量が外部から設定するパラメタ値V_1より小さいかを判断する。V_1より小さい場合(ステップS1:Y)は、ステップS2へ進み、V_1以上の場合(ステップS1:N)は、ステップS3へ進む。ステップS2において、蓄積量上限生成回路は蓄積量上限を外部から設定するパラメタ値L_1とする。その後、蓄積量上限生成回路はステップS8へ進む。
ステップS5において、蓄積量上限生成回路は空き容量が外部から設定するパラメタ値V_Nvより小さいかを判断する。V_Nvより小さい場合(ステップS5:Y)は、ステップS6へ進み、V_Nv以上の場合(ステップS5:N)は、ステップS7へ進む。ステップS6において、蓄積量上限生成回路は蓄積量上限を外部から設定するパラメタ値L_Nvとする。その後、蓄積量上限生成回路は、ステップS8へ進む。
ステップS7において、蓄積量上限生成回路は蓄積量上限を外部から設定するパラメタ値L_maxとする。
ステップS8において、蓄積量上限生成回路は蓄積量判定回路に蓄積量上限を出力する。その後、蓄積量上限生成回路は蓄積量上限を生成する処理を終了する。
なお、ステップS1等の空き容量の大きさを判断するステップとステップS2等の蓄積量上限を設定するステップからなる一連の処理は1個以上であればよく、図4(a)に示される3個に限らない。
図5は、収容判定回路300内の各蓄積量上限生成回路が生成するもう1つの蓄積量上限と、その生成手順を示す図である。
図5(a)は、収容判定回路300内の各蓄積量上限生成回路が蓄積量上限を生成する手順を示すフローチャートである。
空き容量監視回路301から空き容量が入力されると蓄積量上限生成回路は蓄積量上限を生成する処理を開始する。
ステップS21において、蓄積量上限生成回路は空き容量が外部から設定するパラメタ値V_1より小さいかを判断する。V_1より小さい場合(ステップS21:Y)は、ステップS22へ進み、V_1以上の場合(ステップS21:N)は、ステップS23へ進む。ステップS22において、蓄積量上限生成回路は蓄積量上限を外部から設定するパラメタ値Lminとする。その後、蓄積量上限生成回路はステップS26へ進む。
ステップS23において、蓄積量上限生成回路は空き容量が外部から設定するパラメタ値V_2以上かを判断する。V_2以上の場合(ステップS23:Y)は、ステップS24へ進み、V_2より小さい場合(ステップS23:N)は、ステップS25へ進む。ステップS24において、蓄積量上限生成回路は蓄積量上限を外部から設定するパラメタ値L_2とする。その後、蓄積量上限生成回路はステップS26へ進む。その後、蓄積量上限生成回路は蓄積量上限を生成する処理を終了する。
ステップS25において、蓄積量上限生成回路は蓄積量上限を式(1)に従って設定すする。
図5(b)は、収容判定回路300内の各蓄積量上限生成回路が生成する蓄積量上限と空き容量との関係を示すグラフである。図5(a)で示した手順に従い、蓄積量上限生成回路は同図に示される蓄積量上限を生成する。
同図に示されるように、図5(b)の手順では、空き容量がV_1以上V_2未満の範囲にある場合に、蓄積量上限を空き容量の一次関数として算出する。
まず、収容判定回路300は、このフレームのクラスの情報と受信ポートの情報と送信ポート(複数の場合有り)の情報とをバッファ用メモリ制御回路200から入力する。また、クラス別蓄積量監視回路400からクラス別蓄積量を入力し、受信ポート別蓄積量監視回路500から受信ポート別蓄積量を入力し、送信ポート別蓄積量監視回路600から送信ポート別蓄積量を入力する。
収容判定回路300は、クラス別蓄積量から、入力したクラスの情報が示すクラス(以下、単に入力したクラスともいう。入力した受信ポート、入力した送信ポートについても同様。)に関するクラス別蓄積量を読み出す。次に、収容判定回路300は、入力したクラスに関するクラス別蓄積量とクラス別蓄積量上限とを比較し、この蓄積量が蓄積量上限より少ない場合は、クラス別収容可否判定結果として収容可とし、前記以外の場合は収容不可とする。
また、収容判定回路300は、送信ポート別蓄積量から、入力した送信ポートに関する送信ポート別蓄積量を読み出す。次に、収容判定回路300は、入力した送信ポートに関する送信ポート別蓄積量と送信ポート別蓄積量上限とを比較し、この蓄積量が蓄積量上限より少ない場合は、送信ポート別収容可否判定結果として収容可とし、前記以外の場合は収容不可とする。入力した送信ポートが複数ある場合は、複数の送信ポートの何れか1個以上の送信ポートについて、蓄積量が蓄積量上限より少ない場合に、送信ポート別収容可否判定結果として収容可とし、前記以外の場合に収容不可とする。
収容判定回路300は、クラス別収容可否判定結果と受信ポート別収容可否判定結果と送信ポート別収容可否判定結果とのすべてが収容可となった場合に、前記入力フレームに対する収容有無を収容有と判定し、前記以外の場合は収容無と判定する。収容判定回路300は、前記入力フレームの収容有無をバッファ用メモリ制御回路200に出力する。
また、収容判定回路300が、クラス別収容可否判定結果、受信ポート別収容可否判定結果、送信ポート別収容可否判定結果の各々に判定結果イネーブルの設定を設け、前記イネーブルが設定されている判定結果の全てが収容可となった場合のみ収容有と判定するようにしてもよい。
また、収容判定回路300が、クラス別収容可否判定結果、受信ポート別収容可否判定結果、送信ポート別収容可否判定結果の何れか1個が収容可であった場合に収容有と判定するようにしてもよい。
また、収容判定回路300が、2種類のクラス別蓄積量上限(高上限、低上限)を用いて収容可否判定を行うようにしてもよい。例えば、収容判定回路300は、2種類のクラス別蓄積量上限(高上限、低上限)を定めておき、各クラス別蓄積量上限から2種類のクラス別収容可否判定結果(高上限、低上限)を得る。クラス別収容可否判定結果(高上限)において収容可となった場合は、受信ポート別収容可否判定結果または送信ポート別収容可否判定結果において収容不可となった場合であっても、収容有と判定する。前記以外の場合は、クラス別収容可否判定結果(低上限)と受信ポート別収容可否判定結果と送信ポート別収容可否判定結果との全てにおいて収容可となった場合のみ、収容有と判定する。
また、入力フレームの送信ポートが複数個ある場合に、送信ポート別に収容有無をバッファ用メモリ制御回路200に出力するようにしてもよい。例えば、収容判定回路300は、前記送信ポートの各々について、送信ポート別収容可否判定結果を生成する。クラス別収容可否判定結果および受信ポート別収容可否判定結果の両方が収容可である場合に、前記送信ポート別収容可否判定結果に基づいて収容有無を判定し、前記送信ポート別に収容有無をバッファ用メモリ制御回路200に出力する。この場合、バッファ用メモリ制御回路200は、クラス別蓄積量監視回路400や受信ポート別蓄積量監視回路500や送信ポート別蓄積量監視回路600やQoS回路14に出力する送信ポートの情報を、収容有と判定された送信ポートに限定する。
バッファ用メモリ制御回路200は、各区画にバッファ区画番号を割り振り、バッファ区画番号別に空き有無を管理する。入力フレームのフレームデータをバッファ用メモリに書き込むときは、空き有のバッファ区画番号を前記フレームに対するハンドル番号として取得するとともに前記バッファ区画番号の空き有を空き無に変更する。また、取得したハンドル番号が示すバッファ用メモリの空き領域に前記フレームデータを書き込む。
なお、バッファ用メモリ制御回路200が空き容量減信号に代えて、バッファ用メモリ100の蓄積量が増加したことを示す蓄積量増信号を出力するようにしてもよい。バッファ用メモリ制御回路200の空き容量が1区画分減少すると、蓄積量が一区画分増加する関係にあり、蓄積量増信号の入力を受けたクラス別蓄積量監視回路400と受信ポート別蓄積量監視回路500と送信ポート別蓄積量監視回路600と収容判定回路300とは、空き容量減信号の入力を受けた場合と同様の処理を行う。
バッファ用メモリ制御回路200は、読み出したハンドル番号が示すバッファ用メモリ100の区画(以下、バッファ区画ともいう)からフレームデータを読み出し、送信処理回路15に出力する。バッファ用メモリ制御回路200は、バッファ用メモリ100に読出指示と読出アドレスを出力し、バッファ用メモリ100から読出データを入力する。
フレームデータを読み出した場合は、バッファ用メモリ制御回路200はQoS出力ジョブ情報から送信ポートの情報を読み出す。バッファ用メモリ制御回路200は送信ポートの情報を含む送信処理入力ジョブ情報を生成し、送信処理回路15に経路W13−8を通じて出力する。
送信処理回路15は、バッファ回路13から入力されたフレームデータに対してVLANタグの挿入または削除等の処理を行う。送信処理回路15は、処理を行ったフレームデータを、バッファ出力ジョブ情報に含まれる送信ポートの送信MAC回路16−1〜Npに出力する。
送信MAC回路16−1〜Npは、送信処理回路15から入力されたフレームデータに対して所定の送信側MAC処理を行い、送信ポートから送信する。また、送信MAC回路16−1〜Npは、バッファ用メモリの蓄積状態に基づいて、送信ポートからポーズフレームを送信する。
前述したように、クラス別蓄積量監視回路400と受信ポート別蓄積量監視回路500と送信ポート別蓄積量監視回路600と収容判定回路300とは、バッファ用メモリ制御回路200からこれらの信号が入力されると、それぞれクラス別蓄積量と受信ポート別蓄積量と送信ポート別蓄積量と空き容量情報とを増減させる。
なお、バッファ用メモリ制御回路200が空き容量増信号に代えて、バッファ用メモリ100の蓄積量が減少したことを示す蓄積量減信号を出力するようにしてもよい。バッファ用メモリ制御回路200の空き容量が1区画分増加すると、蓄積量が一区画分減少する関係にあり、蓄積量減信号の入力を受けたクラス別蓄積量監視回路400と受信ポート別蓄積量監視回路500と送信ポート別蓄積量監視回路600と収容判定回路300とは、空き容量増信号の入力を受けた場合と同様の処理を行う。
また、上記のバッファ回路13において、算出したクラス別・受信ポート別・送信ポート別蓄積量上限は、バッファ用メモリ100の空き容量(蓄積量)が所定の範囲にある場合に、バッファ用メモリ100の空き容量(蓄積量)の所定量の増加によって、クラス別・受信ポート別・送信ポート別蓄積量上限の所定量の増加(減少)となる。このため、バッファ用メモリ100の空きが大きい場合は、クラス別・受信ポート別・送信ポート別蓄積量上限が大きくなるため、バッファ用メモリ100の空きを蓄積量が増加中のクラス・ポートに振り当てることができる。これにより、バッファ用メモリ100の利用効率が向上するため、バッファ用メモリ100に要する回路の規模を削減することができる。
図6は、本発明の第2の実施形態におけるスイッチ回路2の概略構成を示す構成図である。
同図において、スイッチ回路2は、受信ポート毎の受信MAC回路21−1〜Npと受信処理回路22とバッファ回路23とQoS回路24と送信処理回路25と送信ポート毎の送信MAC回路26−1〜Npとを含んで構成される。
同図の受信MAC回路21−1〜Npと送信処理回路25と送信側MAC回路26−1〜Npとは、図1の受信MAC回路11−1〜Npと送信処理回路15と送信側MAC回路16−1〜Npとに対応し、その説明を省略する。
受信処理回路22は、図1の受信処理回路12に対応するが、経路W2−1を通じて入力された受信フレームのフレームデータを受信ポート別に蓄積する受信バッファ回路22−1〜22−Npを備える点で、受信処理回路12と異なる。受信バッファ回路は、受信ポート毎に少なくとも最大フレーム長のフレームデータを1フレーム分蓄積可能な容量を有する。受信処理回路22は、受信ポート毎に設けられた受信バッファ回路から、少なくとも1フレームのデータが蓄積された受信バッファ回路を選択し、前記選択した受信バッファ回路に蓄積された1フレーム分のフレームデータを、バッファ回路23に出力する受信フレームデータ選択回路22−bを備える。また、受信処理回路22は、受信バッファ回路に蓄積された各フレームについて、そのフレーム長を取得し、前記フレーム長の情報を含む受信処理出力ジョブ情報をバッファ回路23に経路W2−2を通じて出力する。
QoS回路24は、入力したQoS入力ジョブ情報からクラスと送信ポートの情報とを読み出す。QoS回路24は読み出した情報に基づいて、QoS回路24内に送信ポート別かつクラス別に備えるキューの中から入力するキュー(複数の場合有り)を選択し、前記選択したキューに、フレーム長とハンドル番号と受信ポートの情報とを含むキュー蓄積ジョブ情報を入力する。また、QoS回路24は、各送信ポートについて、その送信ポートかつ何れかのクラスに対応するキューのうち1個のキューを選択する。QoS回路24は、選択したキューから1個のキュー蓄積ジョブ情報を取り出して、QoS出力ジョブ情報をバッファ回路に出力する。QoS出力ジョブ情報は、前記キューと前記ジョブ情報とに基づいて、フレーム長とハンドル番号とクラスの情報と受信ポートの情報と送信ポートの情報とを含む。
同図において、バッファ回路23はバッファ用メモリ120とバッファ用メモリ制御回路220と収容判定回路320とクラス別蓄積量監視回路420と受信ポート別蓄積量監視回路520と送信ポート別蓄積量監視回路620とを含んで構成される。
バッファ回路23は、は、図2のスイッチ回路1のバッファ回路23と同様の処理を行う。以下では、図2のバッファ回路23との差異について説明する。
バッファ用メモリ制御回路220は、受信処理回路22からフレームを経路W23−1を通じて入力するとともに、前記入力フレームのフレームデータと、前記入力フレームのフレーム長・クラス・受信ポート・送信ポート(複数の場合有り)の情報を含む受信処理出力ジョブ情報とを、経路W23−1を通じて入力する。
バッファ用メモリ制御回路220は、前記入力フレームの受信処理出力ジョブ情報とQoS回路24から経路W23−3を通じて入力したQoS入力可否情報に基づいてバッファ用メモリ120への蓄積可否を判定する。蓄積可と判定した場合は、入力したフレームのフレームデータ量(フレーム長から算出した値でありフレームデータを蓄積単位容量Sで分割した場合の個数を示す)・クラス・受信ポート・送信ポート(複数の場合有り)を、収容判定回路320に経路W23−15を通じて出力する。収容判定回路320は、入力した情報に基づいて前記入力フレームのバッファ用メモリ120への収容有無を判定し、判定結果をバッファ用メモリ制御回路220に経路W23−16を通じて入力する。
入力フレームのフレームデータをバッファ用メモリ120に経路W23−4及び経路W23−5を通じて書き込む場合、バッファ用メモリ制御回路220は、フレームデータを蓄積単位容量Sずつに分割して1個以上の分割フレームデータとする。バッファ用メモリ制御回路220は、各分割フレームデータについてフレーム先頭側の分割フレームデータから順に、空き有のバッファ区画番号を取得するとともに前記バッファ区画番号の空き有を空き無に変更し、取得したバッファ区画番号が示す空きバッファ区画に分割フレームデータを書き込む。以上により、バッファ用メモリ制御回路220は、入力フレームのフレームデータをバッファ用メモリ120に蓄積するために必要なバッファ用メモリ120の空き領域を確保し、確保した空き領域にフレームデータを書き込む。
また、バッファ用メモリ制御回路220は、バッファ区画1個を確保する度に、バッファ用メモリ120の1区画を確保したことを示す空き容量増減信号を、クラス別蓄積量監視回路420と受信ポート別蓄積量監視回路520と送信ポート別蓄積量監視回路620と収容判定回路320とに出力する。ここで、バッファ用メモリ120の各区画のうち、空きバッファ区画の個数を空き容量といい、分割フレームデータが記憶されたバッファ区画の個数を蓄積量という。
なお、第1の実施形態のバッファ用メモリ制御200と同様、バッファ用メモリ制御回路220が空き容量増信号に代えて蓄積量減信号を出力し、空き容量減信号に変えて蓄積量増信号を出力するようにしてもよい。以下の実施形態および変形例でも同様である。
後述するように、バッファ用メモリ制御回路220は、フレームデータ連結用メモリを備える。フレームデータ連結用メモリは、各バッファ区画番号に対する連結バッファ区画番号を保持する。バッファ用メモリ制御回路220は、フレーム先頭以外の分割フレームデータに対してバッファ区画番号を取得した場合、フレームデータ連結用メモリ中の直前に書き込んだ分割フレームデータが収容されているバッファ区画のバッファ区画番号に対する連結バッファ区画番号に、取得したバッファ区画番号を書き込む。これにより、連結バッファ区画番号とそこに保持される区画番号により、連続する分割フレームデータが保持されるバッファ用メモリ120上のアドレスが示される。
さらに、読み出した分割フレームデータに後続する分割フレームデータが存在する場合(読み出すべきフレームデータが2個以上の分割フレームデータに分割されて収容されている場合)、バッファ用メモリ制御回路220は、次に読み出すべき分割フレームデータの連結バッファ区画番号をフレームデータ連結用メモリから取得し、この分割フレームデータをバッファ用メモリ120から読み出す。バッファ用メモリ制御回路220は、後続する分割フレームデータの読出しを、全ての分割フレームデータをバッファ用メモリ120から読み出し終えるまで(フレーム長に基づいて算出された回数で)繰り返す。バッファ用メモリ制御回路220は、読み出した分割フレームデータを連結して分割前のフレームデータに戻し、送信処理回路25に経路W23−8を通じて出力する。
まず、収容判定回路320は、このフレームのフレームデータ量とクラスの情報と受信ポートの情報と送信ポート(複数の場合有り)の情報とをバッファ用メモリ制御回路200から入力する。また、クラス別蓄積量監視回路420からクラス別蓄積量を入力し、受信ポート別蓄積量監視回路520から受信ポート別蓄積量を入力し、送信ポート別蓄積量監視回路620から送信ポート別蓄積量を入力する。
収容判定回路320は、クラス別蓄積量から、入力したクラスに関するクラス別蓄積量を読み出す。次に、収容判定回路320は、入力したクラスに関するクラス別蓄積量とクラス別蓄積量上限とを比較し、この蓄積量が蓄積量上限より少ない場合は、クラス別収容可否判定結果として収容可とし、前記以外の場合は収容不可とする。
また、収容判定回路320は、送信ポート別蓄積量から、入力した送信ポートに関する送信ポート別蓄積量を読み出す。次に、収容判定回路320は、入力した送信ポートに関する送信ポート別蓄積量と送信ポート別蓄積量上限とを比較し、この蓄積量が蓄積量上限より少ない場合は、送信ポート別収容可否判定結果として収容可とし、前記以外の場合は収容不可とする。入力した送信ポートが複数ある場合は、複数の送信ポートの何れか1個以上の送信ポートについて、蓄積量が蓄積量上限より少ない場合に、送信ポート別収容可否判定結果として収容可とし、前記以外の場合に収容不可とする。
バッファ区画確保・書込制御回路221は、受信処理回路22から、入力フレームのフレームデータと、前記フレームのフレーム長とクラスと受信ポートと送信ポート(複数の場合有り)との情報を含む受信処理出力ジョブ情報とを経路W220−1を通じて入力する。バッファ区画保護・書込制御回路221は、受信処理回路22から入力した受信処理出力ジョブ情報とQoS回路24から経路W220−3を通じて入力したQoS入力可否情報とに基づいてバッファ用メモリへの蓄積可否を判定する。蓄積可と判定した場合は、収容判定回路320に、前記入力したフレームのフレームデータ量とクラスと受信ポートの情報と送信ポート(複数の場合有り)の情報とを経路W220−4を通じて出力する。収容判定回路320は、入力したこれらの情報に基づいて前記入力フレームのバッファ用メモリへの収容有無を判定し、判定結果をバッファ区画確保・書込制御回路221に経路W220−5を通じて出力する。
バッファ区画確保・書込制御回路221は、蓄積不可と判定した場合、または、入力したバッファ用メモリへの収容有無が収容無を示す場合は、前記フレームデータをバッファ用メモリに収容せず廃棄する。
同図において、入力フレームのフレームデータが、先頭(第1)分割フレームデータAと第2分割フレームデータBと第3分割フレームデータCと最終(第4)分割フレームデータDとに分割されている。先頭分割フレームデータAはバッファ用メモリ120のアドレス4に書き込まれ、第2分割フレームデータBはアドレス2に書き込まれ、第3分割フレームデータCはアドレス7に書き込まれ、第4分割フレームデータDはアドレス5に書き込まれている。
フレームデータ連結用メモリ225は、先頭分割フレームデータAのアドレス4の欄に第2分割フレームデータBのアドレス2を記憶し、第2分割フレームデータBのアドレス2の欄に第3分割フレームデータCのアドレス7を記憶し、第3分割フレームデータCのアドレス7の欄に最終分割フレームデータDのアドレス5を記憶する。また、最終分割フレームデータDのアドレス5の欄には何も記憶しない。
バッファ用メモリ制御回路220は、先頭分割フレームデータAのアドレス4を取得しておき、このアドレスを元に、第2分割フレームデータ、第3分割フレームデータ、第4分割フレームデータのアドレスを順次取得する。
また、バッファ区画確保・書込制御回路221は、バッファ区画1個を確保する度に、バッファ用メモリ120の1区画を確保したことを示す空き容量増減信号を、クラス別蓄積量監視回路420と受信ポート別蓄積量監視回路520と送信ポート別蓄積量監視回路620と収容判定回路320とに経路W220−9を通じて出力する。さらに、バッファ区画確保・書込制御回路221は、クラス別蓄積量監視回路420と受信ポート別蓄積量監視回路520と送信ポート別蓄積量監視回路620に対しては、前記出力と同時に、バッファ用メモリ120に記憶された入力フレームの、クラスの情報と受信ポートの情報と送信ポート(複数の場合有り)の情報とを経路W220−8を通じて出力する。
ステップS41においてバッファ区画確保・書込制御回路221は、受信処理回路2232から入力フレーム等を入力したか否かを判断する。入力した場合(ステップS41:Y)は、ステップS42へ進み、入力していない場合(ステップS41:N)は、ステップS41へ戻る。
ステップS42において、バッファ区画確保・書込制御回路221は判定収容回路320から判定有無を入力する。
ステップS43において、バッファ区画確保・書込制御回路221は収容判定の結果が収容有かを判定する。収容有の場合(ステップS43:Y)は、ステップS45に進む。収容無の場合(ステップS43:N)は、ステップS44へ進む。
ステップS44において、バッファ区画確保・書込制御回路221は入力フレームを破棄する。その後、バッファ区画確保・書込制御回路221はステップS41へ戻る。
ステップS46において、バッファ区画確保・書込制御回路221は、空きバッファ区画番号FIFO回路224から確保バッファ区分番号を取得する。
ステップS47において、バッファ区画確保・書込制御回路221は、分割フレームデータを確保バッファ区分番号が示す確保バッファ区分に書き込む。
ステップS48において、バッファ区画確保・書込制御回路221は、書き込んだ分割データが先頭分割フレームデータか否かを判断する。先頭分割フレームデータである場合(ステップS48:Y)は、ステップS50へ進み、先頭分割フレームデータでない場合(ステップS48:N)は、ステップS49へ進む。
ステップS50において、バッファ区画確保・書込制御回路221は、書き込んだ分割データが最終分割フレームデータか否かを判断する。最終分割フレームデータである場合(ステップS50:Y)は、ステップS51へ進み、最終分割フレームデータでない場合(ステップS50:N)は、ステップS52へ進む。
ステップS51において、バッファ区画確保・書込制御回路221は、先頭バッファ区画番号レジスタ222から区画番号を読み出し、読み出した区画番号をハンドル番号として含むQoS入力ジョブ情報をQoS回路2424に出力する。その後、バッファ区画確保・書込制御回路221241は、ステップS41に戻る。
ステップS52において、バッファ区画確保・書込制御回路221は、旧バッファ区画番号レジスタ223に確保バッファ区画番号を書き込む。その後、バッファ区画確保・書込制御回路221241は、ステップS46へ戻り、次の分割フレームの処理を行う。
バッファ区画読出・解放制御回路226は、読み出したハンドル番号が示すバッファ用メモリ120のバッファ区画から分割フレームデータを経路W220−16及びW220−17を通じて読み出す。
さらに、前記分割フレームデータに後続する分割フレームデータが存在する場合(読み出すべきフレームデータが2個以上の分割フレームデータに分割されて収容されている場合)、バッファ区画読出・解放制御回路226は、現バッファ区画番号レジスタ227からバッファ区画番号を読み出し、読み出したバッファ区画番号を読出アドレスとして、フレームデータ連結用メモリ225から連結バッファ区画番号を経路S220−14及びW220−15を通じて読み出す。バッファ区画読出・解放制御回路226は、連結バッファ区画番号が示すバッファ区画に蓄積された分割フレームデータをバッファ用メモリ120から読み出す。バッファ区画読出・解放制御回路226は、この読み出しを、全ての分割フレームデータをバッファ用メモリ120から読み出し終えるまで(フレーム長に基づいて算出された回数で)繰り返す。
ステップS61において、バッファ区画読出・解放制御回路226は、QoS回路24からQoS出力ジョブ情報を入力したか否かを判断する。入力した場合(ステップS61:Y)は、ステップS62へ進み、入力していない場合(ステップS61:N)は、ステップS61へ戻る。
ステップS62において、バッファ区画読出・解放制御回路226は、QoS出力ジョブ情報からハンドル番号を読出し、現バッファ区画番号レジスタ227に書き込む。
ステップS63において、バッファ区画読出・解放制御回路226は、現バッファ区画番号レジスタ227から現バッファ区画番号を読み出し、バッファ用メモリ120中の現バッファ区画番号が示す区画から分割フレームデータを読出し、送信処理回路25へ出力する。
ステップS64において、バッファ区画読出・解放制御回路226は、QoS出力ジョブ情報から解放有無の情報を読み出し、解放有か解放無かを判断する。解放有の場合(ステップS64:Y)は、ステップS65に進み、解放無の場合(ステップS64:N)は、ステップS66に進む。
ステップS66において、バッファ区画読出・解放制御回路226は、バッファ区画残数が1か否かを判断する。残数が1の場合(ステップS66:Y)は、ステップS67へ進み、1でない場合(ステップS66:N)は、ステップS68へ進む。
ステップS67において、バッファ区画読出・解放制御回路226は、QoS出力ジョブ情報から送信ポートの情報を読み出す。出力ジョブ情報から送信ポートの情報を読み出す。バッファ区画読出・解放制御回路226は、送信ポートの情報を含む送信処理入力ジョブ情報を生成し、送信処理回路25に出力する。その後、バッファ区画読出・解放制御回路226はステップS61に戻る。
ステップS68において、バッファ区画読出・解放制御回路226は、現バッファ区画番号レジスタ227から現バッファ区画番号を読み出す。バッファ区画読出・解放制御回路226は、読み出した現バッファ区画番号に基づいてフレームデータ連結用メモリ225から区画番号を読み出す。
ステップS69において、バッファ区画読出・解放制御回路226は、フレームデータ連結用メモリ225から読み出した区画番号を現バッファ区画番号レジスタ227に書き込む。また、バッファ区画読出・解放制御回路226は、バッファ区画残数レジスタ228が保持するバッファ区画残数を1減少させる。その後、バッファ区画読出・解放制御回路226は、ステップS63に戻る。
前記収容判定回路320は、図3の収容判定回路300と同様の処理を行う。以下では、図3の収容判定回路320との差異について説明する。
受信ポート_i蓄積量判定回路(i=1〜Np)326−1〜Npは、入力フレームのフレームデータ量と、受信ポート_iに関する受信ポート別蓄積量上限と受信ポート別蓄積量を入力し、前記蓄積量上限と、前記蓄積量に前記フレームデータ量を加えた値とを比較する。受信ポート_i蓄積量判定結果として、前記蓄積量上限の方が小さい場合は1を出力し、前記以外の場合は0を出力する。受信ポート_i蓄積量判定回路(i=1〜Np)326−1〜Npは、受信ポート別蓄積量を経路320−7を通じて入力を受ける。
なお、上記各判定回路において、全てのクラス・受信ポート・送信ポートに関して、フレームデータ量と蓄積量の加算を行っているが、入力フレームのクラス・受信ポート・送信ポートに関してのみ加算を行う構成であってもよい。
同図において、まず、分割フレームデータ1−A、1−B、1−C、1−Dを入力すると、バッファ区画確保・書込制御回路221は空きバッファ区画番号FIFO回路224から空きバッファ区画番号2と7と5と4とを取得して、バッファ用メモリ120に分割フレームデータを書込み、フレームデータ連結用メモリ225を更新する。また、バッファ区画確保・書込制御回路221は、先頭分割フレームデータ1−Aのアドレス2をハンドル番号として含むQoS入力ジョブ情報をQoS回路24に出力する。
次に、分割フレームデータ2−Aを入力すると、バッファ区画確保・書込制御回路221は空きバッファ区画番号FIFO回路224から空きバッファ区画番号6を取得して、バッファ用メモリ120に分割フレームデータを書込み、フレームデータ連結用メモリ225を更新する。また、バッファ区画確保・書込制御回路221は、先頭分割フレームデータ2−Aのアドレス6をハンドル番号として含むQoS入力ジョブ情報をQoS回路24に出力する。
次に、分割フレームデータ3−A、3−B、3−Cを入力すると、バッファ区画確保・書込制御回路221は空きバッファ区画番号FIFO回路224から空きバッファ区画番号3と1と0と4とを取得して、上記と同様の処理を行う。
図14は、本発明の第3の実施形態によるスイッチ回路3の概略構成を示す構成図である。同図において、スイッチ回路3は、受信ポート毎の受信MAC回路31−1〜Npと受信処理回路32とバッファ回路33とQoS回路34と送信処理回路35と送信ポート毎の送信MAC回路36−1〜Npとを含んで構成される。
スイッチ回路3は、図6のスイッチ回路2と同様の処理を行う。以下では、図6のスイッチ回路2との差異について説明する。
受信処理回路32は、経路W3−1を通じて入力した受信フレームのフレームデータを、受信ポート別に蓄積する受信バッファ回路を備える。受信バッファ回路は、受信ポート毎に少なくともフレームデータを蓄積単位容量S分蓄積可能な容量を有する。なお、前記容量は、蓄積単位容量S分のフレームデータを蓄積した後に、前記蓄積データをバッファ回路に渡すまでの間に蓄積される可能性のあるフレームデータを蓄積する。受信処理回路32は、受信ポート毎に設けられた受信バッファ回路から、少なくとも蓄積単位容量Sのデータが蓄積された受信バッファ回路を選択し、前記選択した受信バッファ回路に蓄積された蓄積単位容量S分のフレームデータを分割フレームデータとしてバッファ回路33に経路W3−2を通じて出力する、受信フレームデータ選択回路を備える。
したがって、受信処理回路32は、1個のフレームの分割フレームデータを先頭側から順に続けて出力するとは限らず、同時に複数の受信ポートでフレームを受信しているような場合は、ある受信ポートで受信したフレームの分割フレームデータを出力した直後に、別の受信ポートで受信した別のフレームの分割フレームデータを出力する可能性がある。
バッファ回路33は、前記入力フレームの分割フレームデータを入力し、前記バッファ回路33内のバッファ用メモリに蓄積する。また、バッファ回路33は、前記分割フレームデータに基づいて前記入力フレームのフレーム長を取得し、前記フレーム長を含むQoS入力ジョブ情報をQoS回路34に経路W3−3を通じて出力する。
上記構成により、図6のスイッチ回路2で必要であった、少なくとも最大フレーム長のフレームデータを1フレーム分蓄積可能な受信処理回路内の受信バッファ回路は不要となり、回路規模の削減が可能となる。
同図において、バッファ用メモリ制御回路240は、バッファ区画確保・書込制御回路241と先頭バッファ区画番号レジスタ242−1〜Npと旧バッファ区画番号レジスタ243−1〜Npと入力途中破棄ジョブ情報FIFO回路244と空きバッファ区画番号FIFO回路245とフレームデータ連結用メモリ246とバッファ区画読出・解放制御回路247と現バッファ区画番号レジスタ248とバッファ区画残数レジスタ249とを含んで構成される。
バッファ用メモリ制御回路240は、図8のバッファ用メモリ制御回路200と同様の処理を行う。以下では、図8のバッファ用メモリ制御回路240との差異について説明する。
バッファ区画確保・書込制御回路241は、受信処理回路32から、入力フレームのフレームデータが分割された1個以上の分割フレームデータと、前記フレームのクラスの情報と受信ポートの情報と送信ポート(複数の場合有り)の情報とを含む受信処理出力ジョブ情報とを経路W240−1を通じて入力し、前記入力フレームの受信処理出力ジョブ情報とQoS回路34から経路W240−3を通じて入力したQoS入力可否情報に基づいてバッファ用メモリ140への蓄積可否を判定する。
蓄積可と判定した場合は、バッファ区画確保・書込制御回路241は、入力された分割フレームデータ毎に、入力したフレームのクラスの情報と受信ポートの情報と送信ポート(複数の場合有り)の情報とを収容判定回路340に経路W240−4を通じて出力する。収容判定回路340は入力した情報に基づいて、分割フレームデータのバッファ用メモリ140への収容有無を判定し、判定結果をバッファ区画確保・書込制御回路241に経路W240−5を通じて出力する。
収容判定回路340が蓄積不可と判定した場合は、前記入力フレームの分割フレームデータ全てをバッファ用メモリ140に収容せず廃棄する。
バッファ区画確保・書込制御回路241は、入力フレームの先頭を含まない分割フレームデータを入力すると、前記分割フレームデータを収容するために空き有のバッファ区画番号を取得する。バッファ区画確保・書込制御回路241は、前記入力フレームの受信ポートに対応する旧バッファ区画番号レジスタ243−1〜Npから、直前に書き込んだ分割フレームデータが収容されているバッファ区画のバッファ区画番号を読み出す。バッファ区画確保・書込制御回路241は、読み出したバッファ区画番号をフレームデータ連結用メモリ246に出力する書込アドレスとし、前記取得したバッファ区画番号をフレームデータ連結用メモリ246に経路W240−12及びW240−13を通じて書き込む。
バッファ区画確保・書込制御回路241は、前記入力フレームの受信ポートに対応する先頭バッファ区画番号レジスタ242−1〜Npから、フレーム先頭を含む分割フレームデータを収容したバッファ区画番号を読み出す。バッファ区画確保・書込制御回路241は、読み出したバッファ区画番号をハンドル番号とし、前記ハンドル番号と前記入力フレームのフレーム長とクラスの情報と受信ポートの情報と送信ポート(複数の場合有り)の情報とを含むQoS入力ジョブ情報を生成する。バッファ区画確保・書込制御回路241は、入力フレームの分割フレームデータ全てをバッファ用メモリ140に書き込み終えると(前記入力フレームの最後を含む分割フレームデータを書き込み終えると)、前記QoS入力ジョブ情報をQoS回路34に経路W240−2を通じて出力する。
ステップS81において、バッファ区画確保・書込制御回路241は、受信処理回路32から入力フレームの分割フレームデータ等を入力したか否かを判断する。入力した場合(ステップS81:Y)は、ステップS82へ進む、入力していない場合(ステップS81:N)は、ステップS81へ戻る。
ステップS82において、バッファ区画確保・書込制御回路241は、収容判定回路340から収容有無を入力する。
ステップS83において、バッファ区画確保・書込制御回路241は収容判定の結果が収容有かを判定する。収容有の場合(ステップS83:Y)は、ステップS84へ進む。収容無の場合(ステップS83:N)は、ステップS90へ進む。
ステップS85において、バッファ区画確保・書込制御回路241は、バッファ用メモリ140中の確保バッファ区分番号が示す区画に分割フレームデータを書き込む。
ステップS86において、バッファ区画確保・書込制御回路241は、書き込んだ分割フレームデータが先頭分割フレームデータか否かを判断する。先頭分割フレームデータの場合(ステップS86:Y)は、ステップS87へ進み、先頭分割フレームデータでない場合(ステップS86:N)は、ステップS93へ進む。
ステップS87において、バッファ区画確保・書込制御回路241は、入力フレームの受信ポートに対応する先頭バッファ区画番号レジスタ242−1〜Npに確保バッファ区画番号を書き込む。
ステップS88において、バッファ区画確保・書込制御回路241は、書き込んだ分割フレームデータが最終分割フレームデータか否かを判断する。最終フレームデータである場合(ステップS88:Y)は、ステップS94へ進み、最終フレームデータでない場合(ステップS88:N)は、ステップS89へ進む。
ステップS90において、バッファ区画確保・書込制御回路241は入力フレームを廃棄する。
ステップS91において、バッファ区画確保・書込制御回路241は、廃棄した分割フレームデータが先頭フレームデータか否かを判断する。先頭フレームデータの場合(ステップS91:Y)ステップS81に戻る。先頭フレームデータで無い場合(ステップS91:N)ステップS92へ進む。
ステップS92において、バッファ区画確保・書込制御回路241は、入力フレームに対応する旧バッファ区画番号レジスタ243−1〜Npの値を最終バッファ区画番号とし、前記最終バッファ区画番号と前記入力フレームのハンドル番号・クラス・受信ポート・送信ポート(複数の場合有り)を含む入力途中廃棄ジョブ情報を生成し、入力途中廃棄ジョブ情報FIFO回路244に出力する。
ステップS94において、バッファ区画確保・書込制御回路241は、入力フレームの受信ポートに対応する先頭バッファ区画番号レジスタ242−1〜Npから、フレーム先頭を含む分割フレームデータを収容したバッファ区画番号を読み出す。バッファ区画確保・書込制御回路241は、読み出したバッファ区画番号をハンドル番号とし、ハンドル番号と入力フレームのフレーム長・クラス・受信ポート・送信ポート(複数の場合有り)とを含むQoS入力ジョブ情報を生成する。バッファ区画確保・書込制御回路241は、生成したQoS入力ジョブ情報をQoS回路34に出力する。その後、バッファ区画確保・書込制御回路241は、ステップS81に戻る。
バッファ区画読出・解放制御回路247は、前記処理を行っていない場合で、かつ、入力途中廃棄ジョブ情報FIFO回路244が1個以上の入力途中廃棄ジョブ情報を蓄積している場合に、入力途中廃棄ジョブ情報FIFO回路244から1個の入力途中廃棄ジョブ情報を経路W240−14を通じて入力すると、この入力途中廃棄ジョブ情報からハンドル番号と最終バッファ区画番号とを読み出す。バッファ区画読出・解放制御回路247は、読み出したハンドル番号と最終バッファ区画番号とに基づいて、入力途中に廃棄となったフレームについて、バッファ用メモリ140に収容済みの分割フレームデータが蓄積されているバッファ区画を解放する。
また、バッファ区画読出・解放制御回路247は、バッファ区画解放に合わせて、空き容量増減信号を、クラス別蓄積量監視回路440と受信ポート別蓄積量監視回路540と送信ポート別蓄積量監視回路640と収容判定回路340に経路w240−22を通じて出力する。クラス別蓄積量監視回路440と受信ポート別蓄積量監視回路540と送信ポート別蓄積量監視回路640に対しては、前記出力と同時に、バッファ用メモリ140の解放により廃棄されるフレームのクラス・受信ポート・送信ポート(複数の場合有り)を経路W240−23を通じて出力する。
ステップS101において、バッファ区画読出・解放制御回路247は、QoS回路34からQoS出力ジョブ情報を入力したか否かを判断する。入力した場合(ステップS101:Y)は、ステップS108へ進み、入力していない場合(ステップS101:N)は、ステップS102へ戻る。
ステップS102において、バッファ区画読出・解放制御回路247は、入力途中廃棄ジョブ情報FIFO回路244245が入力途中廃棄ジョブ情報を蓄積しているか否かを判断する。蓄積している場合(ステップS102:Y)は、ステップS103へ進み、蓄積していない場合(ステップS102:N)は、ステップS101へ戻る。
ステップS104において、バッファ区画読出・解放制御回路247は、現バッファ区画番号を空きバッファ区画番号FIFO回路245に経路W240−15を通じて返却することにより解放する。前記のバッファ区画解放に合わせて、空き容量増減信号を、クラス別蓄積量監視回路440・受信ポート別蓄積量監視回路540・送信ポート別蓄積量監視回路640・収容判定回路340に出力する。クラス別蓄積量監視回路440・受信ポート別蓄積量監視回路540・送信ポート別蓄積量監視回路640に対しては、前記出力と同時に、バッファ用メモリ140の解放により廃棄されるフレームのクラス・受信ポート・送信ポート(複数の場合有り)を出力する。
ステップS105において、バッファ区画読出・解放制御回路247は、入力途中廃棄ジョブ情報から最終バッファ区画番号を読み出し、返却した現バッファ区画番号が最終バッファ区画番号か否かを判断する。最終バッファ区画番号である場合(ステップS105:Y)は、ステップS101に戻り、最終バッファ区画番号でない場合(ステップS105:N)は、ステップS106に進む。
ステップS107において、バッファ区画読出・解放制御回路247は、フレームデータ連結用メモリ246から経路W240−16及びW240−17を通じて読み出した区画番号を、現バッファ区画番号レジスタ248に書き込む。その後、バッファ区画読出・解放制御回路247は、ステップS101に戻る。
ステップS108において、バッファ区画読出・解放制御回路247は、QoS出力ジョブ情報からハンドル番号とフレーム長とを読み出す。バッファ区画読出・解放制御回路247は、読み出したハンドル番号を現バッファ区画番号レジスタ248に書き込む。また、バッファ区画読出・解放制御回路247は、読み出したフレーム長からバッファ区画残数を算出し、バッファ区画残数レジスタ249に出力する。
ステップS110において、バッファ区画読出・解放制御回路247は、QoS出力ジョブ情報から解放有無の情報を読み出し、解放有か解放無かを判断する。解放有の場合(ステップS110:Y)は、ステップS111に進み、解放無の場合(ステップS110:N)は、ステップS112に進む。
ステップS111において、バッファ区画読出・解放制御回路247は、バッファ用メモリ140120中の分割フレームデータを読み出した領域を示すバッファ区画番号を、空きバッファ区画番号FIFO回路245224に返却し、前記フレームデータが蓄積されていたバッファ区画を解放する。あわせて、バッファ用メモリ140の1区画を解放したことを示す空き容量増減信号を、クラス別蓄積量監視回路440・受信ポート別蓄積量監視回路540・送信ポート別蓄積量監視回路640・収容判定回路340に出力する。クラス別蓄積量監視回路440・受信ポート別蓄積量監視回路540・送信ポート別蓄積量監視回路640に対しては、前記出力と同時に、バッファ用メモリ140の解放により廃棄されるフレームのクラス・受信ポート・送信ポート(複数の場合有り)を出力する。
ステップS113において、バッファ区画読出・解放制御回路247は、QoS出力ジョブ情報から送信ポートの情報を読み出す。出力ジョブ情報から送信ポートの情報を読み出す。バッファ区画読出・解放制御回路247は、送信ポートの情報を含む送信処理入力ジョブ情報を生成し、送信処理回路35に出力する。その後、バッファ区画読出・解放制御回路247は、ステップ101に戻る。
ステップS114において、バッファ区画読出・解放制御回路247は、現バッファ区画番号レジスタ248から現バッファ区画番号を読み出す。バッファ区画読出・解放制御回路247は、読み出した現バッファ区画番号に基づいてフレームデータ連絡用メモリ246から区画番号を読み出す。
ステップS115において、バッファ区画読出・解放制御回路247は、フレームデータ連結用メモリ246から読み出した区画番号を現バッファ区画番号レジスタ248に書き込む。また、バッファ区画読出・解放制御回路247は、バッファ区画残数レジスタ249が保持するバッファ区画残数を1減少させる。その後、バッファ区画読出・解放制御回路247は、ステップ109に戻る。
同図において、受信処理回路32は受信ポート_1にて受信したフレームを分割し、分割フレームデータ1−A、1−B、1−C、1−Dをバッファ回路33に出力する。また、受信処理回路32は受信ポート_2にて受信したフレームを分割フレームデータ2−Aとしてバッファ回路33に出力する。また、受信処理回路32は受信ポート_3にて受信したフレームを分割し、分割フレームデータ3−A、3−B、3−Cをバッファ回路33に出力する。受信処理回路32は、図に示す順番で上記の分割フレームデータを送信する。
バッファ区画確保・書込制御回路241は、分割フレームデータ1−Aを入力すると、収容判定にて収容有を判定した後、空きバッファ区画番号FIFO回路245からアドレス2を取得する。バッファ区画確保・書込制御回路241は、バッファ用メモリ140中の取得したアドレス2の区画に分割フレームデータ1−Aを書き込む。バッファ区画確保・書込制御回路241は、分割フレームデータ1−Aが先頭分割フレームデータであると判断して、受信ポート1に対応する先頭バッファ区画番号レジスタ242−1〜Npと旧バッファ区画番号レジスタ243−1〜Npとに読み出したアドレス2を書き込む。
つぎに、バッファ区画確保・書込制御回路241は、分割フレームデータ2−Aを入力すると、収容判定にて収容有を判定した後、空きバッファ区画番号FIFO回路245からアドレス5を取得する。バッファ区画確保・書込制御回路241は、バッファ用メモリ140中の取得したアドレス5の区画に分割フレームデータ2−Aを書き込む。バッファ区画確保・書込制御回路241は、分割フレームデータ2−Aが先頭分割フレームデータであると判断して、受信ポート2に対応する先頭バッファ区画番号レジスタ242−1〜Npと旧バッファ区画番号レジスタ243−1〜Npとに読み出したアドレス5を書き込む。
以下同様に、バッファ区画確保・書込制御回路241は入力する分割フレームデータを処理する。
このように、入力ポート毎に先頭バッファ区画番号と旧バッファ区画番号とを保持して、バッファ回路33は、複数のポートで受信したフレームの分割フレームデータが交互に入力された場合にも、適切な接続関係をフレームデータ連結用メモリ246に書き込む。
図19は、バッファ用メモリ制御回路240の一変形例であるバッファ用メモリ制御回路260の概略構成を示す構成図である。
同図において、バッファ用メモリ制御回路260は、バッファ区画確保・書込制御回路261と先頭バッファ区画番号レジスタ262−1〜Npと旧バッファ区画番号レジスタ263−1〜Npと入力途中破棄ジョブ情報FIFO回路264と空きバッファ区画番号FIFO回路265とフレームデータ連結用メモリ266とバッファ区画読出・解放制御回路267と現バッファ区画番号レジスタ268−1〜Npとバッファ区画残数レジスタ269−1〜Npとを含んで構成される。
バッファ用メモリ制御回路260は、バッファ用メモリ制御回路240と同様の処理を行う。以下では、バッファ用メモリ制御回路240との差異について説明する。
バッファ区画読出・解放制御回路267は、QoS回路34からフレーム長とハンドル番号とクラスの情報と受信ポートの情報と送信ポートの情報と解放有無の情報とを含むQoS出力ジョブ情報を経路W260−19を通じて入力すると、入力した出力ジョブ情報からハンドル番号読み出す。このハンドル番号は、読み出すべき送信フレームのフレームデータのうちフレーム先頭が含まれる分割フレームデータが蓄積されたバッファ用メモリ140の領域を示す。バッファ区画読出・解放制御回路267は、読み出したハンドル番号が示すバッファ区画番号に基づいて、バッファ用メモリ140から前記分割フレームデータを経路W260−17及びW260−18を通じて読み出す。
ただし、バッファ区画読出・解放制御回路267が、上記処理中にQoS回路34から別の送信ポートから出力される送信フレームのQoS出力ジョブ情報を入力したときは、前記処理と並行して、前記処理と同じ処理を、その送信フレームについても実施する。すなわち、同一送信フレームの分割フレームデータを連続して読み出さないで、ある送信ポートへ送信する送信フレームの分割フレームデータを読み出した後は異なる送信ポートへ送信する送信フレームの分割フレームデータを読み出す、というように、分割フレームデータ1個を読み出す度に送信ポートを切り替える。
図20は、収容判定回路320の一変形例である収容判定回路380の概略構成を示す構成図である。
収容判定回路380は、収容判定回路320と同様の処理を行う。以下では、収容判定回路320との差異について説明する。
空き容量監視回路381は、現時点でのバッファ用メモリ120の空き容量情報(空きバッファ区画数)を保持し、入力フレームの収容可否(収容可能な場合に1)と空き容量情報(入力フレーム収容後の空きバッファ区画数)とを経路W380−2及びW380−3を通じて出力する。空き容量監視回路381は、空き容量増減信号を経路W380−1を通じて入力したとき、空き容量情報を増加または減少させた後の空き容量情報と併せて前記空き容量増減信号を出力する。空き容量監視回路381は、空き容量情報の値が所定の値以上である場合は、収容可(1)を示す入力フレームの収容可否を出力し、前記以外の場合は収容不可(0)を示す入力フレームの収容可否を出力する。
クラス_i蓄積量上限生成回路(i=1〜Nc)382−1〜Ncは、空き容量監視回路381から空き容量情報と空き容量増減信号を入力し、クラス_iに関するクラス別蓄積量上限を生成・出力する。また、クラス_i蓄積量上限生成回路(i=1〜Nc)382−1〜Ncは、現時点でのクラス_i蓄積量上限を保持し、空き容量監視回路381から空き容量情報と空き容量増減信号を入力したとき、前記クラス_i蓄積量上限の保持値と入力した空き容量情報と空き容量増減信号とに基づいて、前記クラス_i蓄積量上限の保持値を更新する。
送信ポート_i蓄積量上限生成回路(i=1〜Np)388−1〜Npは、空き容量監視回路381から空き容量情報と空き容量増減信号を入力し、送信ポート_iに関する送信ポート別蓄積量上限を生成・出力する。また、送信ポート_i蓄積量上限生成回路(i=1〜Np) 388−1〜Npは、現時点での送信ポート_i蓄積量上限を保持し、空き容量監視回路381から空き容量情報と空き容量増減信号を入力したとき、前記送信ポート_i蓄積量上限の保持値と入力した空き容量情報と空き容量増減信号とに基づいて、前記送信ポート_i蓄積量上限の保持値を更新する。
ステップS121において、蓄積量上限生成回路は、空き容量増減信号を入力したか否かを判断する。入力した場合(ステップS121:Y)は、ステップS122に進み、入力していない場合(ステップS121:N)は、ステップS121に戻る。
ステップS122において、蓄積量上限生成回路は、式(2)に従って空き容量分割数Ndと空き容量分割単位量Nsとを算出する。
ステップS125において、蓄積量上限生成回路は、空き容量分割数Ndが外部から設定するパラメタNd_1未満か否かを判断する。NdがNd_1未満の場合(ステップS125:Y)は、Lの値を保持してステップS132に進む。NdがNd_1以上の場合(ステップS125:N)は、ステップS127に進む。ステップS127において、蓄積量上限生成回路は、蓄積量上限Lを外部から設定するパラメタLmaxに設定する。
ステップS126において、蓄積量上限生成回路は、空き容量分割残数Nr=0かつ空き容量が増加したか否かを判断する。Nr=0かつ空き容量が増加した場合(ステップS126:Y)は、ステップS127に進み、Nr=0でないまたは空き容量が増加していない場合(ステップS126:N)は、ステップS128に進む。ステップS127において、蓄積量上限生成回路は、蓄積量上限Lに外部から設定するパラメタLsを加算する。その後、蓄積量上限生成回路はステップS130に進む。
ステップS128において、蓄積量上限生成回路は、空き容量分割残数Nr=0かつ空き容量が減少したか否かを判断する。Nr=0かつ空き容量が減少した場合(ステップS128:Y)は、ステップS129に進み、Nr=0でないまたは空き容量が減少していない場合(ステップS128:N)は、ステップS130に進む。ステップS129において、蓄積量上限生成回路は、蓄積量上限Lから外部から設定するパラメタLsを減算する。
ステップS130において、蓄積量上限生成回路は蓄積量上限Lを収容判定回路に出力する。その後、蓄積量上限生成回路はステップS121に戻る。
クラス_i蓄積量判定回路(i=1〜Nc)383−1〜Ncは、クラス_iに関するクラス別蓄積量上限とクラス別蓄積量を入力し、前記蓄積量上限と前記蓄積量とを比較する。比較の結果、蓄積量上限>蓄積量である場合は、クラス_i蓄積量判定結果として1を出力し、それ以外の場合は0を出力する。クラス_i蓄積量判定回路(i=1〜Nc)383−1〜Ncは、クラス別蓄積量を経路W380−4を通じて入力を受ける。
受信ポート_i蓄積量判定回路(i=1〜Np)3861〜Npは、受信ポート_iに関する受信ポート別蓄積量上限と受信ポート別蓄積量を入力し、前記蓄積量上限と前記蓄積量とを比較する。比較の結果、蓄積量上限>蓄積量である場合は、受信ポート_i蓄積量判定結果として1を出力し、それ以外の場合は0を出力する。受信ポート_i蓄積量判定回路(i=1〜Np)3861〜Npは、受信ポート別蓄積量を経路W380−6を通じて入力を受ける。
送信ポート_i蓄積量判定回路(i=1〜Np)389−1〜Npは、送信ポート_iに関する送信ポート別蓄積量上限と送信ポート別蓄積量を入力し、前記蓄積量上限と前記蓄積量とを比較する。比較の結果、蓄積量上限>蓄積量である場合は、送信ポート_i蓄積量判定結果として1を出力し、それ以外の場合は0を出力する。送信ポート_i蓄積量判定回路(i=1〜Np)389−1〜Npは、送信ポート別蓄積量を経路W380−8を通じて入力を受ける。
図22は、本発明を適用したバッファ回路43を内蔵するスイッチ回路4の構成を示す。前記スイッチ回路4は、本発明を適用したバッファ回路43を用いて実現したレイヤ2転送の機能と、レイヤ3(L3)転送の機能を併せ持つ。
本スイッチ回路4の、受信MAC回路41−1〜Np・送信MAC回路45−1〜Np・受信処理回路42・バッファ回路43は、図6のスイッチ回路2と同一であるが、L3転送用受信処理回路52・L3転送用送信処理回路55・L3転送用バッファ回路53が追加されている点が異なる。また、送信処理回路45は、図6のスイッチ回路2における送信処理回路25と同じく、バッファ回路43からの入力と送信MAC回路46−1〜Npへの出力をもつが、前記のほかに、L3転送用送信処理回路55からの入力とL3転送用受信処理回路52への出力が追加されている点が異なる。
本発明のバッファ回路43はQoS回路44と分離しているため、本発明のバッファ回路43を適用することで、レイヤ2転送用スイッチ回路とレイヤ3転送用スイッチ回路に分離した構成と比較して、QoS回路44を共通化できるため、回路規模の削減が可能となる。
また、家庭内ネットワーク向けに複数のポートが必要となり、これらのポート間のレイヤ2転送において、ポート数に比例して扱うデータ帯域が大きくなるため、バッファ用メモリの帯域を大きくする必要があるが、レイヤ2転送用に本発明のバッファ回路43を用いることでバッファ用メモリの利用効率を向上させることができるため、メモリの帯域は大きくすることが可能だが容量に制約のあるSRAMをバッファ用メモリとして採用することが可能となる。
また、L3転送用バッファ回路53は、主に、WAN受信/送信ポートとLAN送信/受信ポート間でL3転送されるIPパケットが蓄積されるため、前記L3転送用バッファ回路53のバッファ用メモリの帯域は比較的小さい一方で、ネットワーク帯域の変動が大きいWAN側との通信のためバッファ用メモリの容量は大きくする必要があり、前記L3転送用バッファ回路53のバッファ用メモリとしてDDR−SRAM等を採用することが望ましい。本発明のバッファ回路43はQoS回路42と独立してバッファ管理が可能であるため、前記DDR−SRAMをバッファ用メモリとするL3転送用バッファ回路53と併用することが可能である。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
13、23、33、43 バッファ回路
100、120、140、160 バッファ用メモリ
200、220、240、260 バッファ用メモリ制御回路
300、320、340、360 収容判定回路
400、420、440、460 クラス別蓄積量監視回路
500、520、540、560 受信ポート別蓄積量監視回路
600、620、640、660 送信ポート別蓄積量監視回路
Claims (8)
- フレームデータを記憶するバッファ用メモリ手段と、
フレームデータのクラス及びフレームデータを受信した受信ポート及びフレームデータを送信する送信ポートの3つの属性であるフレームデータの属性毎に前記バッファ用メモリ手段に記憶されたフレームデータ数を示す属性値別蓄積量を出力する属性値別蓄積量監視手段と、
前記属性毎に前記属性値別蓄積量の上限量を、前記バッファ用メモリ手段の空き容量に基づいて算出し、フレームデータの属性を示す属性値が入力されると、前記属性値別蓄積量と前記上限量とを前記属性毎に比較して、前記属性値のフレームデータを前記バッファ用メモリ手段に収容可能か否かを示す収容可否判定結果を判定し、前記3つの属性毎の収容可否判定結果のすべてが可であるか否かに応じて、前記属性値のフレームデータを前記バッファ用メモリ手段に蓄積するか否かを判定し、蓄積する場合は収容有を示す情報を出力する収容判定手段と、
外部からフレームデータが入力された場合に、前記収容判定手段から収容有の情報が入力されたときは、前記フレームデータを前記バッファ用メモリ手段に書き込むバッファ用メモリ制御手段と、
を具備することを特徴とするバッファ回路。 - 前記バッファ用メモリ制御手段は、外部からフレームデータと当該フレームデータの属性値とが入力され、前記入力されたフレームデータを前記バッファ用メモリ手段に書き込む場合は、空き容量減信号または蓄積量増信号と、前記入力された属性値と、を出力し、外部からフレームデータ読み出し指示と読み出すフレームデータの属性値とが入力され、前記フレームデータを読み出した場合は、空き容量増信号または蓄積量減信号と、前記入力された属性値とを出力し、
前記属性値別蓄積量監視手段は、前記属性値別蓄積量を内部に記憶し、前記バッファ用メモリ制御手段から、前記空き容量減信号または前記蓄積量増信号と、前記属性値と、が入力されると前記属性値に対応する属性値別蓄積量を増加させ、前記空き容量増信号または前記蓄積量減信号と、前記属性値と、が入力されると前記属性値に対応する属性値別蓄積量を減少させ、
前記収容判定手段は、前記空き容量を内部に記憶し、前記バッファ用メモリ制御手段から、前記空き容量減信号または前記蓄積量増信号が入力されると、前記空き容量を減少させ、前記空き容量増信号または前記蓄積量減信号が入力されると前記空き容量を増加させ、前記空き容量に基づいて前記上限量を算出する
ことを特徴とする請求項1記載のバッファ回路。 - 前記バッファ用メモリ制御手段は、外部から入力されるフレームデータを所定の蓄積単位容量ずつに分割した分割フレームデータを前記バッファ用メモリ手段に書き込むとともに、各分割フレームデータを書き込んだ前記バッファ用メモリ手段の内部の記憶領域を示す連結区画番号を内部のフレームデータ連結用メモリに書き込み、外部から前記フレームデータの出力指示が入力されると前記連結区画番号に基づいて前記分割フレームデータを結合して前記フレームデータを生成し、該フレームデータを出力する
ことを特徴とする請求項1または請求項2記載のバッファ回路。 - 前記属性値別蓄積量監視手段は、前記属性値別蓄積量を分割フレームデータ数にて記憶し、前記バッファ用メモリ制御手段から前記空き容量減信号または前記蓄積量増信号と、前記属性値と、が入力されると前記属性値に対応する属性値別蓄積量を増加させ、前記空き容量増信号または前記蓄積量減信号と、前記属性値と、が入力されると前記属性値に対応する属性値別蓄積量を減少させ、
前記収容判定手段は、前記空き容量を分割フレームデータ数にて記憶し、前記バッファ用メモリ制御手段から前記空き容量減信号又は前記蓄積量増信号が入力されると前記空き容量を減少させ、前記空き容量増信号又は前記蓄積量減信号が入力されると前記空き容量を増加させ、前記空き容量に基づいて前記上限値を算出する
ことを特徴とする請求項3記載のバッファ回路。 - バッファ回路が、フレームデータのクラス及びフレームデータを受信した受信ポート及びフレームデータを送信する送信ポートのうちの3つの属性であるフレームデータの属性毎に前記バッファ回路が具備するバッファ用メモリ手段に記憶されたフレームデータ数を示す属性値別蓄積量を出力する属性値別蓄積量監視ステップと、
バッファ回路が、前記属性値別蓄積量の上限量を、前記バッファ用メモリ手段の空き容量に基づいて算出し、前記属性毎にフレームデータの属性を示す属性値が入力されると、前記属性値別蓄積量と前記上限量とを前記属性毎に比較して、前記属性値のフレームデータを前記バッファ用メモリ手段に収容可能か否かを示す収容可否判定結果を判定し、前記3つの属性毎の前記収容可否判定結果のすべてが可であるか否かに応じて、前記属性値のフレームデータを前記バッファ用メモリ手段に蓄積するか否かを決定し、蓄積する場合は収容有を示す情報を出力する収容判定ステップと、
外部からフレームデータが入力された場合に、前記収容判定ステップの出力情報のうち、収容有の出力情報が入力されたときは、前記フレームデータを前記バッファ用メモリ手段に書き込むバッファ用メモリ制御ステップと、
を具備することを特徴とするバッファ回路制御方法。 - 前記バッファ用メモリ制御ステップは、外部からフレームデータと当該フレームデータの属性値とが入力され、前記入力されたフレームデータを前記バッファ用メモリ手段に書き込む場合は、空き容量減信号または蓄積量増信号と、前記入力された属性値と、を出力し、外部からフレームデータ読み出し指示と読み出すフレームデータの属性値とが入力され、前記フレームデータを読み出した場合は、空き容量増信号または蓄積量減信号と、前記入力された属性値とを出力し、
前記属性値別蓄積量監視ステップは、前記属性値別蓄積量を内部に記憶し、前記バッファ用メモリ制御手段から、前記空き容量減信号または前記蓄積量増信号と、前記属性値と、が入力されると前記属性値に対応する属性値別蓄積量を増加させ、前記空き容量増信号または前記蓄積量減信号と、前記属性値と、が入力されると前記属性値に対応する属性値別蓄積量を減少させ、
前記収容判定ステップは、前記空き容量を内部に記憶し、前記バッファ用メモリ制御手段から、前記空き容量減信号または前記蓄積量増信号が入力されると、前記空き容量を減少させ、前記空き容量増信号または前記蓄積量減信号が入力されると前記空き容量を増加させ、前記空き容量に基づいて前記上限量を算出する
ことを特徴とする請求項5記載のバッファ回路制御方法。 - 前記バッファ用メモリ制御ステップは、外部から入力されるフレームデータを所定の蓄積単位容量ずつに分割した分割フレームデータを前記バッファ用メモリ手段に書き込むとともに、各分割フレームデータを書き込んだ前記バッファ用メモリ手段の内部の記憶領域を示す連結区画番号を内部のフレームデータ連結用メモリに書き込み、外部から前記フレームデータの出力指示が入力されると前記連結区画番号に基づいて前記分割フレームデータを結合して前記フレームデータを生成し、該フレームデータを出力する
ことを特徴とする請求項5または請求項6記載のバッファ回路制御方法。 - 前記属性値別蓄積量監視ステップは、前記属性値別蓄積量を分割フレームデータ数にて記憶し、前記バッファ用メモリ制御手段から前記空き容量減信号または前記蓄積量増信号と、前記属性値と、が入力されると前記属性値に対応する属性値別蓄積量を増加させ、前記空き容量増信号または前記蓄積量減信号と、前記属性値と、が入力されると前記属性値に対応する属性値別蓄積量を減少させ、
前記収容判定ステップは、前記空き容量を分割フレームデータ数にて記憶し、前記バッファ用メモリ制御手段から前記空き容量減信号又は前記蓄積量増信号が入力されると前記空き容量を減少させ、前記空き容量増信号又は前記蓄積量減信号が入力されると前記空き容量を増加させ、前記空き容量に基づいて前記上限値を算出する
ことを特徴とする請求項7記載のバッファ回路制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009149094A JP5191059B2 (ja) | 2009-06-23 | 2009-06-23 | バッファ回路及びバッファ回路制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009149094A JP5191059B2 (ja) | 2009-06-23 | 2009-06-23 | バッファ回路及びバッファ回路制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011009876A JP2011009876A (ja) | 2011-01-13 |
JP5191059B2 true JP5191059B2 (ja) | 2013-04-24 |
Family
ID=43566055
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009149094A Active JP5191059B2 (ja) | 2009-06-23 | 2009-06-23 | バッファ回路及びバッファ回路制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5191059B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5706811B2 (ja) * | 2011-12-13 | 2015-04-22 | 日本電信電話株式会社 | 親ノード及び通信システム |
JP5748287B2 (ja) * | 2011-12-27 | 2015-07-15 | 日本電信電話株式会社 | パケットバッファ装置およびパケットバッファ制御方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63209347A (ja) * | 1987-02-26 | 1988-08-30 | Oki Electric Ind Co Ltd | デ−タ交換網のバツフア割当方式 |
US5541912A (en) * | 1994-10-04 | 1996-07-30 | At&T Corp. | Dynamic queue length thresholds in a shared memory ATM switch |
JPH1168784A (ja) * | 1997-08-27 | 1999-03-09 | Mitsubishi Electric Corp | セルスイッチ |
US6700869B1 (en) * | 1999-10-01 | 2004-03-02 | Lucent Technologies Inc. | Method for controlling data flow associated with a communications node |
JP2002044115A (ja) * | 2000-07-31 | 2002-02-08 | Nec Eng Ltd | スイッチングハブのメモリ制御方式 |
JP4256599B2 (ja) * | 2001-05-28 | 2009-04-22 | 日本放送協会 | パケット転送制御装置 |
JP2005323231A (ja) * | 2004-05-11 | 2005-11-17 | Nippon Telegr & Teleph Corp <Ntt> | パケット通信品質制御装置 |
JP2006135762A (ja) * | 2004-11-08 | 2006-05-25 | Fujitsu Ltd | パケット伝送制御装置及びパケット伝送制御方法 |
JP4360439B2 (ja) * | 2007-03-27 | 2009-11-11 | 株式会社デンソー | メモリ管理装置及びメモリ管理方法 |
JP2008278241A (ja) * | 2007-04-27 | 2008-11-13 | Fujitsu Ltd | 伝送装置、伝送装置制御方法、および伝送装置制御プログラム |
-
2009
- 2009-06-23 JP JP2009149094A patent/JP5191059B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2011009876A (ja) | 2011-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10341260B2 (en) | Early queueing network device | |
US7558197B1 (en) | Dequeuing and congestion control systems and methods | |
CN1689278B (zh) | 网络拥塞控制方法和装置 | |
US10218642B2 (en) | Switch arbitration based on distinct-flow counts | |
EP2613479B1 (en) | Relay device | |
US8520522B1 (en) | Transmit-buffer management for priority-based flow control | |
US9596182B2 (en) | Controlling non-congestion controlled flows | |
EP1741229B1 (en) | Weighted random scheduling | |
US7826468B2 (en) | System and method for bypassing an output queue structure of a switch | |
US20110044175A1 (en) | Low cost implementation for a device utilizing look ahead congestion management | |
US20120063313A1 (en) | Hybrid weighted round robin (wrr) traffic scheduling | |
US8392672B1 (en) | Identifying unallocated memory segments | |
JP4771988B2 (ja) | 負荷分散装置及びネットワーク装置 | |
KR100645537B1 (ko) | 안정적인 패킷 포워딩을 위한 동적인 큐 관리방법 및 이를위한 네트워크 프로세서의 구성요소 | |
US20160036689A1 (en) | Method and apparatus for reducing response time in information-centric networks | |
JP7241194B2 (ja) | メモリ管理方法及び装置 | |
US10594631B1 (en) | Methods and apparatus for memory resource management in a network device | |
US11171884B2 (en) | Efficient memory utilization and egress queue fairness | |
JP5191059B2 (ja) | バッファ回路及びバッファ回路制御方法 | |
US20140022895A1 (en) | Reducing Store And Forward Delay In Distributed Systems | |
JP2008017387A (ja) | ロードバランス型スイッチ装置、及びロードバランス型スイッチ方法 | |
US8660001B2 (en) | Method and apparatus for providing per-subscriber-aware-flow QoS | |
US9922000B2 (en) | Packet buffer with dynamic bypass | |
US9998403B2 (en) | Most connection method for egress port selection in a high port count switch | |
JP2007535192A (ja) | サービス品質及びサービスタイプに基づいて電気通信システムにおけるリソースを動的に管理するための方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110329 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110525 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110705 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110913 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110920 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20111013 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20111222 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121004 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121227 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130128 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5191059 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160208 Year of fee payment: 3 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |