(57)【特許請求の範囲】
【請求項１】
受信したパケットで使用されたメモリリソースに対して多くのバッファを使うパケットを優先的に処理することでメモリを効率よく使用してパケット処理装置のスループットを高めることができるパケットバッファ管理装置であって、
入力された全パケットを受信するとともに、受信したパケットを固定長に分割して先頭ページおよびそれに続くパケットページとして生成されたブロックをリスト構造により管理し、当該全パケットが受信完了したときに前記先頭ページおよびそれに対応した自ページ番号を次段に備わるパケット処理回路に送出し、前記パケット処理回路から前記自ページ番号および前記パケット処理回路で前記先頭ページを処理した更新済みページを受け取り、前記自ページ番号をもとに前記先頭ページを前記更新済みページに置き換え、それに続く前記パケットページの全ページ分を順次回線に転送するバッファメモリを備えたパケットバッファ管理装置において、
前記バッファメモリから未使用ページアラームが出ている場合、およびパケットを次段のパケット処理回路に早く送ったほうが結果として輻輳状態を早く脱することが可能となる長いデータ長のパケットの場合には前記バッファメモリを高優先キューに接続し、それ以外は前記バッファメモリを低優先キューに接続して前記パケットの前記先頭ページおよびそれに対応した自ページ番号を前記次段のパケット処理回路に転送し前記高優先キューのパケットを優先して処理する手段を有することを特徴とするパケットバッファ管理装置。
【請求項２】
前記バッファメモリの各ページに対して使用していないページを管理する未使用ページキューを有することを特徴とする請求項１記載のパケットバッファ管理装置。
【請求項３】
前記未使用ページキュー内に格納している未使用ページ数をカウントするアップダウンカウンタを有することを特徴とする請求項２に記載のパケットバッファ管理装置。
【請求項４】
前記アップダウンカウンタは、所定のしきい値を設定可能であって、前記未使用ページキュー内に格納している未使用ページ数のカウント値が当該しきい値を下回ることを検出してアラームを送出するように構成されていることを特徴とする請求項３に記載のパケットバッファ管理装置。
【請求項５】
前記パケットのパケット長を書き込んだ位置を検出するとともに、当該パケット長を書き込んだ位置に対してデータ長フラグを生成・出力するフラグメント制御部を有することを特徴とする請求項１乃至４のいずれか一項に記載のパケットバッファ管理装置。
【請求項６】
前記データ長フラグが出た位置のパケットデータを保持できるデータ長レジスタを有することを特徴とする請求項１乃至５のいずれか一項に記載のパケットバッファ管理装置。
【請求項７】
前記次段のパケット処理回路に対して前記パケットのヘッダ部を含むページを順に、かつ優先度によってキューイングできる高優先および低優先のページキューを有することを特徴とする請求項１乃至６のいずれか一項に記載のパケットバッファ管理装置。
【請求項８】
前記次段のパケット処理回路から更新済みパケット先頭ページをキューイングできる更新ページキューを有することを特徴とする請求項１乃至７のいずれか一項に記載のパケットバッファ管理装置。
【請求項９】
更新されたページとリスト構造を備えた全パケットを外部に送出するためにキューイングするパケットキューを有することを特徴とする請求項１乃至８のいずれか一項に記載のパケットバッファ管理装置。
【請求項１０】
未使用ページアラームおよび受信データ長に基づいて前記高優先および低優先のページキューのいずれと接続するかを切り替えるセレクタを有することを特徴とする請求項７に記載のパケットバッファ管理装置。
【請求項１１】
受信したパケットで使用されたメモリリソースに対して多くのバッファを使うパケットを優先的に処理することでメモリを効率よく使用してパケット処理装置のスループットを高めることができるパケットバッファ管理方法であって、
入力した全パケットを受信するとともに、受信したパケットを固定長に分割して先頭ページおよびそれに続くパケットページとして生成されたブロックをリスト構造により管理し、前記全パケットが受信完了したときに前記先頭ページおよびそれに対応した自ページ番号を次段に備わるパケット処理回路に送出し、前記パケット処理回路から前記自ページ番号および前記パケット処理回路で前記先頭ページを処理した更新済みページを受け取り、前記自ページ番号をもとに前記先頭ページを前記更新済みページに置き換え、それに続く前記パケットページの全ページ分を順次回線に転送するバッファメモリを備えたパケットバッファ管理装置のパケットバッファ管理方法において、
前記バッファメモリから未使用ページアラームが出ている場合、およびパケットを次段のパケット処理回路に早く送ったほうが結果として輻輳状態を早く脱することが可能となる長いデータ長のパケットの場合には前記バッファメモリを高優先キューに接続し、それ以外は前記バッファメモリを低優先キューに接続して前記パケットの前記先頭ページおよびそれに対応した自ページ番号を前記次段のパケット処理回路に転送し前記高優先キューのパケットを優先して処理する工程を有することを特徴とするパケットバッファ管理方法。
【請求項１２】
前記バッファメモリの各ページに対して使用していないページを管理する未使用ページキューを実行する工程を有することを特徴とする請求項１１に記載のパケットバッファ管理方法。
【請求項１３】
前記未使用ページキュー内に格納している未使用ページ数をカウントするアップダウンカウンタを管理する工程を有することを特徴とする請求項１２に記載のパケットバッファ管理方法。
【請求項１４】
前記アップダウンカウンタを管理する工程は、所定のしきい値を設定可能であって、前記未使用ページキュー内に格納している未使用ページ数のカウント値が当該しきい値を下回ることを検出してアラームを送出する工程を含むことを特徴とする請求項１３に記載のパケットバッファ管理方法。
【請求項１５】
前記パケットのパケット長を書き込んだ位置を検出するとともに、当該パケット長を書き込んだ位置に対してデータ長フラグを生成・出力するフラグメント制御部を管理する工程を有することを特徴とする請求項１１乃至１４のいずれか一項に記載のパケットバッファ管理方法。
【請求項１６】
前記データ長フラグが出た位置のパケットデータを保持できるデータ長レジスタを管理する工程を有することを特徴とする請求項１１乃至１５のいずれか一項に記載のパケットバッファ管理方法。
【請求項１７】
前記次段のパケット処理回路に対して前記パケットのヘッダ部を含むページを順に、かつ優先度によってキューイングできる高優先および低優先のページキューを管理する工程を有することを特徴とする請求項１１乃至１６のいずれか一項に記載のパケットバッファ管理方法。
【請求項１８】
前記次段のパケット処理回路から更新済みパケット先頭ページをキューイングできる更新ページキューを管理する工程を有することを特徴とする請求項１１乃至１７のいずれか一項に記載のパケットバッファ管理方法。
【請求項１９】
更新されたページとリスト構造を備えた全パケットを外部に送出するためにキューイングするパケットキューを管理する工程を有することを特徴とする請求項１１乃至１８のいずれか一項に記載のパケットバッファ管理方法。
【請求項２０】
未使用ページアラームおよび受信データ長に基づいて前記高優先および低優先のページキューのいずれと接続するかを切り替えるセレクタを管理する工程を有することを特徴とする請求項１７に記載のパケットバッファ管理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、パケット処理技術に係り、特に受信したパケットで使用されたメモリリソースに対して多くのバッファを使うパケットを優先的に処理することでメモリを効率よく使用してパケット処理装置のスループットを高めることができるパケットバッファ管理装置およびパケットバッファ管理方法に関する。
【０００２】
【従来の技術】
従来、周知のように、パケット交換機の送受信バッファの輻輳を回避するための制御としては、受信バッファの使用率を監視し、この使用率が規定値を超えた時に、受信パケットを一時的に保留バッファに保存しておくと共に、その後、受信バッファの使用率が上記規定値以下まで回復した時点で、保留バッファからそれまで保存していたパケットを受信バッファに転送して送信バッファから送出する方法が一般的である。この種の従来の送受信バッファ輻輳制御方式では、受信バッファの使用率が上記規定値以上となった後、送信元からの受信パケットをその種類に関わらず等しく遅延させることを基本としていた。例えば、パケットの種類には、データパケット（ＤＴ）の他、コールリクエスト（ＣＱ）やレシーブレディ（ＲＲ）等の非データパケットがあるが、上記従来の輻輳回避制御方式では、これらパケットが混在した受信状況に際して、受信バッファの使用率が上記規定値以上となった場合にこれら各パケットがその受信順に保留パケットに登録され、以後、受信バッファの使用率が上記規定値以下まで復旧した後、再び、その待避した順に保留バッファから読み出されて受信バッファに転送されるようになっていた。この従来の方法によれば、パケット伝送の主情報であるデータパケットも他の非データパケットと同様に保留バッファへの待避による遅延を受けることになり、単に送受信バッファの輻輳を回避できるだけで、パケット伝送の実質的な機能低下を免れなかった。しかしながら、このような従来のバッファ輻輳制御方式では、受信バッファが一定の使用率を超えた後の受信パケットをその種類に関わらず保留バッファを通して等しく遅延させるようにしていたため、パケット伝送の主情報たるデータパケットの遅延が顕著化し、送受信バッファの輻輳を回避するためにパケット伝送の効率低下を免れないという問題点があった。
【０００３】
このような問題点を解決することを目的とする従来技術としては、例えば、特開平５−２２７２１６号公報に記載のものがある。すなわち、従来技術は、保留パケットに対する受信パケットの待避処理に際してデータパケットの遅延を最小限に抑えることができ、送受信バッファの輻輳回避と同時に、パケットの高い伝送効率も維持可能なパケット交換機におけるバッファ輻輳制御方式を提供することを目的とし、受信パケットをその送信に先だって登録しておく受信バッファと、該受信バッファの使用率が規定値を超えた時に受信パケットを一時的に保留させる保留バッファとを少なくとも備えるパケット交換機において、予めパケットの種類に応じて優先度を設定しておき、受信バッファの使用率が規定値を超えた時に、以後の受信パケットをその優先度に従って受信バッファまたは保留バッファに振り分けて登録するバッファ管理手段を設け、受信バッファの使用率が規定値を超えてから規定値以下に回復するまでの間、優先度の高いパケットほど短い保留時間が与えられるようにしたパケット交換機におけるバッファ輻輳制御方式である。このようなパケット交換機におけるバッファ輻輳制御方式では、バッファ管理手段は、送受信バッファの運用状況を監視し、その使用率が規定値を超えた時には、その後に受信されるパケットを予めパケットの種類に応じて設定した優先度に従って選別し、優先度が高い種類のパケットから順にかつ輻輳とならない範囲内でこれらを送受信バッファに登録すると共に、より優先度の低い種類のパケットは保留用バッファに登録後に上記送受信バッファの使用率の回復を待って送信処理するようにしている。このような従来技術では、予めパケットの種類に応じて優先度を設定しておき、送受信バッファの使用率が規定値を超えた場合、その後の受信パケットを上記優先度が高い種類順にかつ輻輳とならない範囲内で送受信バッファに登録する一方、より優先度の低い種類のパケットは保留バッファに登録後、上記使用率の回復を待って送受信バッファに登録するようにしたため、データパケット等に関して予め高い優先度を設定しておくことで、保留バッファへの登録を経ずに最小限の遅延時間でこれら高優先度パケットの伝送を継続でき、送受信バッファの輻輳回避制御に際しても、パケット伝送効率を低下させずに済むといった効果が開示されている。
【０００４】
ところで、上記従来のパケットバッファ管理方式は、データ長が可変であるパケットを受信するパケットバッファを高速に制御し、かつパケットバッファを有効に制御するための構成を備えている。このような、パケットバッファは一般的に全パケットをメモリに一旦受信し、メモリに一旦受信したパケットをプロセッサで順次検索し、ヘッダ部のみ書き換えて転送するように制御されている。一方、可変長のパケットを受信する場合、メモリリソースの有効利用のために、固定長のブロックにメモリ領域を分割し、これをリスト構造にすることによりパケットを受信する回路を構成することが近年一般的になっている。このような従来のパケットバッファ管理方式では、パケットを順次受信するに従ってデータを格納できる未使用ページを求めてそこにデータを格納する処理において、未使用ページが少なくなったことを検出した際に回線からのデータを受信せずに廃棄することが以前から行われていた。
【０００５】
【発明が解決しようとする課題】
しかしながら、上記従来のパケットバッファ管理方式は、未使用ページが少なくなると全てのパケットが廃棄され、未使用ページがある一定量になるまでに回復するまでの間は、外部処理回路の負荷に関わらずパケットを廃棄するという問題点があった。このため、この条件下でただ廃棄するだけでなく、よりスループットを高めることが要求されていた。
【０００６】
本発明は斯かる問題点を鑑みてなされたものであり、その目的とするところは、受信したパケットで使用されたメモリリソースに対して多くのバッファを使うパケットを優先的に処理することでメモリを効率よく使用してパケット処理装置のスループットを高めることができるパケットバッファ管理装置およびパケットバッファ管理方法を提供する点にある。
【０００７】
【課題を解決するための手段】
請求項１に記載の発明の要旨は、受信したパケットで使用されたメモリリソースに対して多くのバッファを使うパケットを優先的に処理することでメモリを効率よく使用してパケット処理装置のスループットを高めることができるパケットバッファ管理装置であって、入力された全パケットを受信するとともに、受信したパケットを固定長に分割して先頭ページおよびそれに続くパケットページとして生成されたブロックをリスト構造により管理し、当該全パケットが受信完了したときに前記先頭ページおよびそれに対応した自ページ番号を次段に備わるパケット処理回路に送出し、前記パケット処理回路から前記自ページ番号および前記パケット処理回路で前記先頭ページを処理した更新済みページを受け取り、前記自ページ番号をもとに前記先頭ページを前記更新済みページに置き換え、それに続く前記パケットページの全ページ分を順次回線に転送するバッファメモリを備えたパケットバッファ管理装置において、前記バッファメモリから未使用ページアラームが出ている場合、およびパケットを次段のパケット処理回路に早く送ったほうが結果として輻輳状態を早く脱することが可能となる長いデータ長のパケットの場合には前記バッファメモリを高優先キューに接続し、それ以外は前記バッファメモリを低優先キューに接続して前記パケットの前記先頭ページおよびそれに対応した自ページ番号を前記次段のパケット処理回路に転送し前記高優先キューのパケットを優先して処理する手段を有することを特徴とするパケットバッファ管理装置に存する。
また請求項２記載の発明の要旨は、前記バッファメモリの各ページに対して使用していないページを管理する未使用ページキューを有することを特徴とする請求項１記載のパケットバッファ管理装置に存する。
また請求項３記載の発明の要旨は、前記未使用ページキュー内に格納している未使用ページ数をカウントするアップダウンカウンタを有することを特徴とする請求項２に記載のパケットバッファ管理装置に存する。
また請求項４記載の発明の要旨は、前記アップダウンカウンタは、所定のしきい値を設定可能であって、前記未使用ページキュー内に格納している未使用ページ数のカウント値が当該しきい値を下回ることを検出してアラームを送出するように構成されていることを特徴とする請求項３に記載のパケットバッファ管理装置に存する。
また請求項５記載の発明の要旨は、前記パケットのパケット長を書き込んだ位置を検出するとともに、当該パケット長を書き込んだ位置に対してデータ長フラグを生成・出力するフラグメント制御部を有することを特徴とする請求項１乃至４のいずれか一項に記載のパケットバッファ管理装置に存する。
また請求項６記載の発明の要旨は、前記データ長フラグが出た位置のパケットデータを保持できるデータ長レジスタを有することを特徴とする請求項１乃至５のいずれか一項に記載のパケットバッファ管理装置に存する。
また請求項７記載の発明の要旨は、前記次段のパケット処理回路に対して前記パケットのヘッダ部を含むページを順に、かつ優先度によってキューイングできる高優先および低優先のページキューを有することを特徴とする請求項１乃至６のいずれか一項に記載のパケットバッファ管理装置に存する。
また請求項８記載の発明の要旨は、前記次段のパケット処理回路から更新済みパケット先頭ページをキューイングできる更新ページキューを有することを特徴とする請求項１乃至７のいずれか一項に記載のパケットバッファ管理装置に存する。
また請求項９記載の発明の要旨は、更新されたページとリスト構造を備えた全パケットを外部に送出するためにキューイングするパケットキューを有することを特徴とする請求項１乃至８のいずれか一項に記載のパケットバッファ管理装置に存する。
また請求項１０記載の発明の要旨は、未使用ページアラームおよび受信データ長に基づいて前記高優先および低優先のページキューのいずれと接続するかを切り替えるセレクタを有することを特徴とする請求項７に記載のパケットバッファ管理装置に存する。
また請求項１１記載の発明の要旨は、受信したパケットで使用されたメモリリソースに対して多くのバッファを使うパケットを優先的に処理することでメモリを効率よく使用してパケット処理装置のスループットを高めることができるパケットバッファ管理方法であって、入力した全パケットを受信するとともに、受信したパケットを固定長に分割して先頭ページおよびそれに続くパケットページとして生成されたブロックをリスト構造により管理し、前記全パケットが受信完了したときに前記先頭ページおよびそれに対応した自ページ番号を次段に備わるパケット処理回路に送出し、前記パケット処理回路から前記自ページ番号および前記パケット処理回路で前記先頭ページを処理した更新済みページを受け取り、前記自ページ番号をもとに前記先頭ページを前記更新済みページに置き換え、それに続く前記パケットページの全ページ分を順次回線に転送するバッファメモリを備えたパケットバッファ管理装置のパケットバッファ管理方法において、前記バッファメモリから未使用ページアラームが出ている場合、およびパケットを次段のパケット処理回路に早く送ったほうが結果として輻輳状態を早く脱することが可能となる長いデータ長のパケットの場合には前記バッファメモリを高優先キューに接続し、それ以外は前記バッファメモリを低優先キューに接続して前記パケットの前記先頭ページおよびそれに対応した自ページ番号を前記次段のパケット処理回路に転送し前記高優先キューのパケットを優先して処理する工程を有することを特徴とするパケットバッファ管理方法に存する。
また請求項１２記載の発明の要旨は、前記バッファメモリの各ページに対して使用していないページを管理する未使用ページキューを実行する工程を有することを特徴とする請求項１１に記載のパケットバッファ管理方法に存する。
また請求項１３に記載の発明の要旨は、前記未使用ページキュー内に格納している未使用ページ数をカウントするアップダウンカウンタを管理する工程を有することを特徴とする請求項１２に記載のパケットバッファ管理方法に存する。
また請求項１４に記載の発明の要旨は、前記アップダウンカウンタを管理する工程は、所定のしきい値を設定可能であって、前記未使用ページキュー内に格納している未使用ページ数のカウント値が当該しきい値を下回ることを検出してアラームを送出する工程を含むことを特徴とする請求項１３に記載のパケットバッファ管理方法に存する。
また請求項１５に記載の発明の要旨は、前記パケットのパケット長を書き込んだ位置を検出するとともに、当該パケット長を書き込んだ位置に対してデータ長フラグを生成・出力するフラグメント制御部を管理する工程を有することを特徴とする請求項１１乃至１４のいずれか一項に記載のパケットバッファ管理方法に存する。
また請求項１６に記載の発明の要旨は、前記データ長フラグが出た位置のパケットデータを保持できるデータ長レジスタを管理する工程を有することを特徴とする請求項１１乃至１５のいずれか一項に記載のパケットバッファ管理方法に存する。
また請求項１７に記載の発明の要旨は、前記次段のパケット処理回路に対して前記パケットのヘッダ部を含むページを順に、かつ優先度によってキューイングできる高優先および低優先のページキューを管理する工程を有することを特徴とする請求項１１乃至１６のいずれか一項に記載のパケットバッファ管理方法に存する。
また請求項１８に記載の発明の要旨は、前記次段のパケット処理回路から更新済みパケット先頭ページをキューイングできる更新ページキューを管理する工程を有することを特徴とする請求項１１乃至１７のいずれか一項に記載のパケットバッファ管理方法に存する。
また請求項１９に記載の発明の要旨は、更新されたページとリスト構造を備えた全パケットを外部に送出するためにキューイングするパケットキューを管理する工程を有することを特徴とする請求項１１乃至１８のいずれか一項に記載のパケットバッファ管理方法に存する。
また請求項２０に記載の発明の要旨は、未使用ページアラームおよび受信データ長に基づいて前記高優先および低優先のページキューのいずれと接続するかを切り替えるセレクタを管理する工程を有することを特徴とする請求項１７に記載のパケットバッファ管理方法に存する。
【０００８】
【発明の実施の形態】
以下に示す各実施の形態の特徴は、受信パケットを固定長に分割するフラグメント制御部と、フラグメント制御部から送出されるデータ長位置信号をもとにして受信パケットのデータ長を受信パケット毎に格納できるデータ長レジスタを当該分割したパケットを実際に格納するバッファメモリ間のパケットバスの部分に設けたことにある。以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【０００９】
（第１の実施の形態）
図１は本発明の第１の実施の形態にかかるパケットバッファ管理装置１０を説明するための機能ブロック図である。図１において、１はフラグメント制御部、２はデータ長レジスタ、３はバッファメモリ、４はセレクタ、５は高優先キュー、６は低優先キュー、７は更新ページキュー、そして、８は順次パケットキューを示している。図１を参照すると、本実施の形態のパケットバッファ管理装置１０は、フラグメント制御部１、データ長レジスタ２、バッファメモリ３、セレクタ４、高優先キュー５、低優先キュー６、更新ページキュー７、順次パケットキュー８を備えている。
【００１０】
データ長レジスタ２は、受信パケットを固定長に分割し、データの先頭から決まった場所に格納されているデータ長位置を示すデータ長フラグを生成し、固定長に分割されたメモリ（以下、ページという）を格納するバッファメモリ３−フラグメント制御部１間のデータバス上に、本発明のパケットバッファ管理方法に従って、データ長フラグに基づき受信する各パケットのデータ長を格納する機能を有している。
【００１１】
このデータ長フラグに基づき受信する各パケットのデータ長は、バッファ輻輳（すなわち、未使用バッファが少ない）が発生した際に、バッファ格納に優先制御を行うための情報として機能する。
【００１２】
本実施の形態では、パケットバッファ管理装置１０におけるパケット転送処理に要する時間は、データ長にあまり依存せず、処理するパケットが何パケットあるかに主に依存する長いデータ長のパケット、すなわち、次段にパケット処理回路を有するバッファにおいてデータ長の多いパケットを早く次段に送ったほうが結果として輻輳状態を早く脱することが可能となる長いデータ長のパケットを優先して次段のパケット処理回路に転送する。すなわち、ページを多く使用するパケットが処理されることにより、早く輻輳状態から脱することが可能となり、これが装置のスループットを高めるという効果が得られることになる。
【００１３】
次に、パケットバッファ管理装置１０の動作を説明する。図１を参照すると、フラグメント制御部１で生成されるデータ長フラグ信号はデータ長レジスタ２に供給され、全パケットがバッファメモリ３に書き込まれるまで保持され、セレクタ４で未使用バッファメモリ３のメモリ残量が少なくなった場合に使用され、高優先キュー（Ｑｕｅｕｅ）５か低優先キュー６のいずれに接続するかの制御を実行するために用いられる。
【００１４】
バッファメモリ３は、フラグメント制御部１から供給されるパケット完了信号により、受信パケットの先頭ページとその先頭ページ番号をセレクタ４に出力し、また、未使用ページ数を管理し、未使用ページ数がある一定しきい値を下回ると残りページアラームをセレクタ４に出力する。
【００１５】
高優先キュー５および低優先キュー６には、各パケットの先頭ページとバッファメモリ３の先頭ページ番号が積まれており、高優先キュー５に一つ異常のページがあれば、受信パケットの異常ページのページとその異常ページのページ番号を常に優先して外部のパケット処理回路（不図示）に送出する。外部のパケット処理回路は、送られたパケットヘッダ部（不図示）の書き換えおよび出力回線（不図示）の決定を行い、先頭ページ番号をそのままつけた状態でページを更新ページキュー７に書き込む。
【００１６】
更新ページキュー７のページにはパケットの先頭ページ番号があるので、バッファメモリ３は、この先頭ページと先頭ページ以下のパケットデータを順次パケットキュー８経由で回線に送出する。
【００１７】
図２は図１のフラグメント制御部１の動作を説明するためのタイミングチャートである。図２を参照すると、図１のフラグメント制御部１は、入力パケットを順次パケットデータバスに送出するとともに、パケットの先頭から決まった位置にあるデータ長位置で信号がＨになるデータ長フラグと、パケットの終了を示すパケット完了の信号と、ページの固定データ長毎にページの先頭（ページ先頭）を表す信号を送出する。
【００１８】
図３は図１のバッファメモリ３の構成図である。図３において、１０１はページ番号メモリ、１０２は未使用ページキュー、１０３はアップダウンカウンタ、１０４は受信中パケット先頭ページ、１０５は受信中最終ページを示している。図３を参照すると、バッファメモリ３は、ページ番号メモリ１０１、未使用ページキュー１０２、アップダウンカウンタ１０３、受信中パケット先頭ページ１０４、受信中最終ページ１０５を備えている。
【００１９】
図３を参照すると、ページ番号メモリ１０１は、固定長ページをリスト構造にて受信パケットを構成できるように、アドレスをページ番号としてデータ格納エリアとは別に次ページ番号格納エリアを有し、入力されるページ先頭信号毎に未使用ページキュー１０２からのページ番号を得て受信中最終ページ１０５の次ページにリスト構造となるように接続する。
【００２０】
未使用ページキュー１０２は、初期設定時に全ページ分のページ番号を格納し、ページ先頭信号と同時にキューの先頭のページ番号メモリ１０１に送出できるとともに、ページ番号メモリ１０１から外部にパケットを送出時に不要となったページの番号をキューの最後に格納する。
【００２１】
アップダウンカウンタ１０３は、未使用ページキュー１０２の中に格納されている未使用ページ数を常に表しているカウンタであって、未使用ページキュー１０２からページ番号が送出されたときにカウントダウンされ、使用済みページが未使用ページキュー１０２に戻されたときにカウントアップし、さらにあるしきい値を保持でき、カウント値がしきい値を下回ったときに、未使用ページ数アラームを送出できる。
【００２２】
ページ番号メモリ１０１は、パケット完了信号を受け取ると外部に受信中パケット先頭ページ１０４のコピーと、そのページ番号を送出できる。また、ページ番号メモリ１０１は更新済みページとともに送られるページ番号のページをこの更新済みページで置き換えるとともに、順次ページをパケットとして外部に送出する。
【００２３】
データ長レジスタ２は、データ長フラグに従い、パケットのデータ長部分を単に保持するだけであり、動作は容易に理解できるので説明は省略する。
【００２４】
次にパケットバッファ管理装置１０の動作（パケットバッファ管理方法）について説明する。まず、前提条件を説明する。通常のパケットは、ヘッダ部とペイロード（実際のデータ部）に分かれており、ヘッダ部に決まった位置にそのパケットデータ長を書いてあることが一般的である。例えば、最近広く利用されているＩＰ  ｖｅｒ．４の場合は先頭から３オクテッド目と４オクテッド目がデータ長を示す。また、ＩＰルータなどのパケット処理装置はパケットを一旦バッファメモリ３に格納し、処理回路にて送出（Ｆｏｒｗａｒｄｉｎｇ）処理をするが、このときの処理は、ヘッダ部の情報により、次転送先を決定し、必要に応じてヘッダ部を書き換える処理なので、（ｉ）処理回路には、全パケットを送る必要がなく、ヘッダ部のみで送出（Ｆｏｒｗａｒｄｉｎｇ）処理が行える、（ｉｉ）処理時間はパケット長にはあまり依存しないという特徴がある。また、送出（Ｆｏｒｗａｒｄｉｎｇ）処理が終わってパケットを転送し終えるとバッファとして使用したページは未使用ページに戻す。これらより、未使用ページ数が減少した場合に、いち早く未使用ページ数をある一定数まで戻すためには、（ｉ）データ長の長いパケットを先に処理する、（ｉｉ）データ長の長いパケットは処理せずバッファで廃棄する、といった方法が考えられる。
【００２５】
次に、フラグメント制御部１の動作（パケットバッファ管理方法）ついて図２のフラグメント制御部１のタイムチャートを用いて説明する。ここでは、ページの大きさは受信するパケットのヘッダ部より大きいものに設定する。フラグメント制御部１は、パケットの先頭と最後を検出することが可能であって、データの先頭から受信したデータ数をカウントし、一定の間隔でページ先頭信号を送出する。また、前述したようにパケットのデータ長は先頭から決まった位置にあるので、データ長が格納されている位置でデータ長フラグを送出する。パケットの最終オクテッドを受信した時にパケット完了信号を送付し、この信号をトリガにしてバッファメモリ３は外部のパケット処理回路にヘッダ部の送付を開始する。データ長レジスタ２は、受信中のパケットのデータ長を保持するためのレジスタでフラグメント制御部１から出力されるデータ長フラグ信号に従い、データバスに流れるデータ長を保持する。
【００２６】
次に、バッファメモリ３の動作（パケットバッファ管理方法）に付いて説明する。図３を参照すると、ページ番号メモリ１０１は、１ページのオクテッド数に応じて分割されており、各ページ毎に他のページと識別できる排他な番号を有している。パケットのデータを格納するエリア以外にリスト構造を構成するために必要な次ページ番号を書き込めるレジスタを各ページについて併せて有している。パケットをまったく格納していない場合には未使用ページキュー１０２に全ページ数分の番号を格納しており、パケットを受信する場合に、１ページ分のデータを受信する毎に未使用ページキュー１０２から順にページ番号を読み出しその番号に従い、ページ番号メモリ１０１内のページを使用する。１ページ分のデータを格納すると次ページ番号をその時点での最終ページである受信中最終ページ１０５の次ページ番号レジスタに書き込みリスト構造を構成する。
【００２７】
受信中パケット先頭ページ１０４は、前述の通り、パケットのヘッダ部が格納されており、パケット送出（パケットフォワーディング）のために重要なデータが格納されている。パケット完了発生時（図３に示す、「▲１▼パケット完了」参照）には、パケットの全データがバッファメモリ３に格納されているので、パケット送出（Ｆｏｒｗａｒｄｉｎｇ）のために受信中パケット先頭ページ１０４のコピーに自ページ番号を付加し、パケット処理回路に転送する（図３に示す、「▲２▼先頭ページ＋自ページ番号」参照）。更新されたページ（図３に示す、「▲３▼更新済みページ＋自ページ番号」参照）は自ページ番号をもとにもとのページを置き換え、その後パケット全ページをリスト構造に従い順次転送する（図３に示す、「▲４▼パケット分全ページ」参照）。アップダウンカウンタ１０３は、しきい値により、未使用ページがある一定以下になっているかどうかを識別するために利用されており、しきい値以下となれば未使用ページアラームを送出する。
【００２８】
バッファメモリ３−外部のパケット処理回路間には、パケットの先頭ページを格納できる高優先キュー５および低優先キュー６を有している。
【００２９】
セレクタ４は、バッファメモリ３から未使用ページアラームが出ている場合、およびデータ長が長い場合は高優先キュー５に接続し、そうでない場合は低優先キュー６に接続するように動作する。
【００３０】
外部のパケット処理回路により更新されたページは、更新ページキュー７に格納され、自ページ番号に応じてパケット先頭ページを置き換えるために用いられ、リンクリストに応じて順次パケットキュー８を通して外部に転送される。
【００３１】
以上説明したように第１の実施の形態によれば、未使用ページが少なくなることを検出し、ページを多く使用するパケットの処理を優先することで使用可能ページの回復を早めることができるようになる。その理由は、ページ数が無くなるとパケットが受信できなくなるので、未使用ページがなくなることを防止するからである。
【００３２】
（第２の実施の形態）
第２の実施の形態は、その基本的構成は上記第１の実施の形態と同様であるが、アップダウンカウンタ１０３に工夫して２種類のしきい値、すなわち、第１しきい値と第２しきい値を用意し、第１しきい値が第２しきい値より多くの未使用ページがある状態でアラーム検出する点に特徴を有している。本実施の形態は、第１しきい値による動作は上記と全く同じ動作をするが、未使用ページ数となった状態で検出する第２しきい値を下回った時点で高優先キュー５にたまっているページを、データ長が長いパケットの先頭ページと判断して、このページにたまっているパケットをすべて廃棄するように動作する。
【００３３】
なお、本発明が上記各実施の形態に限定されず、本発明の技術思想の範囲内において、各実施の形態は適宜変更され得ることは明らかである。また上記構成部材の数、位置、形状等は上記実施の形態に限定されず、本発明を実施する上で好適な数、位置、形状等にすることができる。また、各図において、同一構成要素には同一符号を付している。
【００３４】
【発明の効果】
本発明は以上のように構成されているので、未使用ページが少なくなることを検出し、ページを多く使用するパケットの処理を優先することで使用可能ページの回復を早めることができるようになる。その理由は、ページ数が無くなるとパケットが受信できなくなるので、未使用ページがなくなることを防止するからである。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態にかかるパケットバッファ管理装置を説明するための機能ブロック図である。
【図２】図１のフラグメント制御部の動作を説明するためのタイミングチャートである。
【図３】図１のバッファメモリの構成図である。
【符号の説明】
１…フラグメント制御部
２…データ長レジスタ
３…バッファメモリ
４…セレクタ
５…高優先キュー
６…低優先キュー
７…更新ページキュー
８…順次パケットキュー
１０…パケットバッファ管理装置
１０１…ページ番号メモリ
１０２…未使用ページキュー
１０３…アップダウンカウンタ
１０４…受信中パケット先頭ページ
１０５…受信中最終ページ
【図１】
0003587080.tif 000002
【図２】
0003587080.tif 000003
【図３】
0003587080.tif 000004