(57)【要約】    【課題】回路規模の増加及び処理サイクル数を必要最小限に抑えるように緩衝キューを用いてる回路の削減と効率化を図る。    【解決手段】  受信用ラッチ２８で受信したパケットをワード単位に分けての緩衝キュー３４に格納した後、緩衝キュー３４から読み出されたパケットをパケット格納キュー３８に格納する。フォーマット決定回路３２は、緩衝キュー３４の空き状態に応じた複数種類の書込フォーマットを予め定義し、複数の受信用ラッチ２８の何れかでパケットを受信した際に、そのときの緩衝キュー３４の空き状態に応じて書込フォーマットを動的に決定し、パケット制御回路３０は決定した書込フォーマットに従って受信パケットをワード単位に分けて緩衝キュー３４に格納する。    【選択図】      図１
2006119962.tif 000002
【特許請求の範囲】
【請求項１】
ワード数が変化するパケットを複数のインターフェースから受信する複数の受信用ラッチと、
前記受信用ラッチで受信したパケットをワード単位に分けて格納する最大ワード数に一致する数の緩衝キューと、
前記緩衝キューから読み出されたパケットを格納する前記緩衝キューと同数のパケット格納キューと、
前記緩衝キューの空き状態に応じた複数種類の書込フォーマットを予め定義し、前記複数の受信用ラッチの何れかでパケットを受信した際に、そのときの前記緩衝キューの空き状態に応じて書込フォーマットを動的に決定するフォーマット決定回路と、
前記フォーマット決定回路で決定した書込フォーマットに従って受信パケットをワード単位に分けて前記緩衝キューに格納するパケット制御回路と、
前記フォーマット決定回路で決定されたフォーマットを格納するフォーマット情報格納部と、
前記フォーマット情報格納部に格納されたフォーマットから有効データの格納位置を認識して前記パケット格納キューからパケットを読み出すパケット読出回路と、
を備えたことを特徴とするデータキュー制御回路。
【請求項２】
請求項１記載のデータキュー制御回路に於いて、
前記フォーマット決定回路は、複数の緩衝キューのうち、空き度合いの高い緩衝キューから順番に受信パケットをワード順に格納する書込フォーマットを定義することを特徴とするデータキュー制御回路。
【請求項３】
請求項１記載のデータキュー制御回路に於いて、
前記フォーマット決定回路は、
受信パケットがｎワードの場合、ｎ個の緩衝キューのうち、空き度合いの高い緩衝キューから順番にｎワードをワード順に格納する書込フォーマットを定義し、
受信パケットがｎワード未満の場合、ｎ個の緩衝キューのうち、空き度合いの高い緩衝キューから順番にｎワード未満の各有効ワードをワード順に格納する書込フォーマットを定義することを特徴とするデータキュー制御回路。
【請求項４】
ワード数が変化するパケットを複数のインターフェースから複数の受信用ラッチに受信するパケット受信ステップと、
前記受信用ラッチで受信したパケットをワード単位に分けて最大ワード数に一致する数の緩衝キューに格納する緩衝キュー格納ステップと、
前記緩衝キューから読み出されたパケットを前記緩衝キューと同数のパケット格納キューに格納するパケット格納ステップと、
前記緩衝キューの空き状態に応じた複数種類の書込フォーマットを予め定義し、前記複数のラッチの何れかでパケットを受信した際に、そのときの前記緩衝キューの空き状態に応じて書込フォーマットを動的に決定するフォーマット決定ステップと、
前記フォーマット決定回路で決定した書込フォーマットに従って受信パケットをワード単位に分けて前記緩衝キューに格納するパケット制御ステップと、
前記フォーマット決定回路で決定されたフォーマットを格納するフォーマット情報格納ステップと、
前記フォーマット情報格納部に格納されたフォーマットから有効データの格納位置を認識して前記パケット格納キューからパケットを読み出すパケット読出ステップと、
を備えたことを特徴とするデータキュー制御方法。
【請求項５】
システムコントローラを構成するコンピュータに、
ワード数が変化するパケットを複数のインターフェースから複数の受信用ラッチに受信するパケット受信ステップと、
前記受信用ラッチで受信したパケットをワード単位に分けて最大ワード数に一致する数の緩衝キューに格納する緩衝キュー格納ステップと、
前記緩衝キューから読み出されたパケットを格納する前記緩衝キューと同数のパケット格納キューに格納するパケット格納ステップと、
前記緩衝キューの空き状態に応じた複数種類の書込フォーマットを予め定義し、前記複数のラッチの何れかでパケットを受信した際に、そのときの前記緩衝キューの空き状態に応じて書込フォーマットを動的に決定するフォーマット決定ステップと、
前記フォーマット決定回路で決定した書込フォーマットに従って受信パケットをワード単位に分けて前記緩衝キューに格納するパケット制御ステップと、
前記フォーマット決定回路で決定されたフォーマットを格納するフォーマット情報格納ステップと、
前記フォーマット情報格納部に格納されたフォーマットから有効データの格納位置を認識して前記パケット格納キューからパケットを読み出すパケット読出ステップと、
を実行させることを特徴とするデータキュー制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のインターフェースからのパケットを複数のRAMで構成される同一データキューに格納するデータキュー制御回路、方法及びプログラムに関し、特に、ＲＡＭの前段に緩衝キューを配置して特定のキューへのパケット書込みの集中を回避するデータキュー制御回路、方法及びプログラムに関する。
【背景技術】
【０００２】
従来、マルチＣＰＵ構成のプロセッサボード等にあっては、複数のＣＰＵとメモリやＩ／Ｏバスなどのリソースとの間にシステムコントローラを配置し、リソース側に位置する複数のインターフェースから到着するパケットをキューを構成するＲＡＭに書き込んだ後に読み出してＣＰＵにデータを提供している。
【０００３】
しかしながら、パケットが到着するスループットよりもＲＡＭの書き込みスループットが小さい場合、ＲＡＭへの書き込みが間に合わないケースが存在し、インターフェースに対しビジー信号を出してパケット転送を中止させることとなり、ＲＡＭ書み込みのスループットが低下する。
【０００４】
この問題を解決する方法として、図３０のように、複数のＲＡＭ２００、２０２、２０４、２０６を用意して横に展開し、パケットを格納する領域(１ブロックデータ領域)をＲＡＭ２００、２０２、２０４、２０６毎のサブブロックに分割し、パケット書き込み先ＲＡＭを分散させることによりＲＡＭの書き込みスループットを確保している。
【０００５】
図３１は図３０のＲＡＭを使用したデータキュー制御回路であり、６つのＩＦラッチ２０８−１〜２０８−６で受信されるパケットに対し４つのサブブロックに分けたパケット格納ＲＡＭ領域２１４−１〜２１４−４を横に配置した場合である。パケットを受信するＩＦラッチ２０８−１〜２０８−６の出力はパケット制御回路２１０−１〜２１０−６に接続され、パケット制御回路２１０−１〜２１０−６の出力は調停回路２１２−１〜２１２−４を経由してパケット格納ＲＡＭ領域２１４−１〜２１４−４に接続される。パケット格納ＲＡＭ領域２１４−１〜２１４−４の出力側にはパケット読出回路２１６が設けられる。
【特許文献１】特開平０１−１６２９５４
【特許文献２】特開２００３−３０３１３０
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、このような図３１のデータキュー制御方法は、パケット格納時に１ブロック分のパケットデータの全てを格納する場合、即ち横に展開したＲＡＭ２００、２０２、２０４、２０６に対応したパケット格納ＲＡＭ領域２１４−１〜２１４−４を全てを利用する場合は問題ないが、パケットのデータ書き込み領域が制限されることにより、パケット長がばらばらで１ブロックに満たないパケットが混在し、短いパケットが集中して到着した場合、横に展開したパケット格納ＲＡＭ領域２１４−１〜２１４−４を有効に利用できず、パケット書き込み先が特定のパケット格納ＲＡＭ領域に集中してしまい、パケットをＲＡＭに書き込むためのスループットが確保できないという問題が生じる。
【０００７】
この問題を解決するために例えば図３２に示すデータキュー制御方法が考えられる。図３２のデータキュー制御回路は、本来のパケット格納ＲＡＭ領域２１４−１〜２１４−４の他に、ＩＦラッチ２０８−１〜２０８−６に対してパケットを一時的に溜め込むための緩衝キューを構成する緩衝ＲＡＭ２１８−１〜２１８−６を配置し、緩衝ＲＡＭ２１８−１〜２１８−６には緩衝制御回路２２０−１〜２２０−６とＲＡＭ読出ラッチ２２２−１〜２２２−６を設けている。
【０００８】
このような図３２のデータキュー制御回路にあっては、緩衝ＲＡＭ２１８−１〜２１８−６があふれないように緩衝制御回路２２０−１〜２２０−６からのビジー信号等によりパケット転送を制御する資源管理を行い、必要に応じて送信元にパケットの転送を止めてもらいながら緩衝ＲＡＭ２１８−１〜２１８−６からパケットを読み出し、パケット格納ＲＡＭ領域２１４−１〜２１４−４に書き込むような制御を行うことが考えられる。
【０００９】
しかし、図３２のデータキュー制御方法は、パケット格納ＲＡＭ領域２１４−１〜２１４−４へのパケット書き込みが間に合わない問題は解決できるが、緩衝ＲＡＭ２１８−１〜２１８−６、緩衝制御回路２２０−１〜２２０−６及びＲＡＭ読出ラッチ２２２−１〜２２２−６をインタフェースの数だけ設けなければならず、回路規模が大幅に増加する問題があり、またＩＦラッチ２０８−１〜２０８−６によるパケット受信からパケット格納ＲＡＭ領域２１４−１〜２１４−４に書き込まれるまでのサイクル数が増えることによる性能低下を招く問題がある。
【００１０】
本発明は、回路規模の増加及び処理サイクル数を必要最小限に抑えるように緩衝キューを設けて制御するデータキュー制御回路、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
図１は本発明の原理説明図である。本発明は、データキュー制御回路を提供する。本発明のデータキュー制御回路は、
ワード数が変化するパケットを複数のインターフェースから受信する複数のＩＦラッチ（受信用ラッチ）２８と、
ＩＦラッチ２８で受信したパケットをワード単位に分けて格納する最大ワード数に一致する数の緩衝キュー３４と、
緩衝キュー３４から読み出されたパケットを格納する緩衝キュー３４と同数のパケット格納キュー３８と、
緩衝キュー３４の空き状態に応じた複数種類の書込フォーマットを予め定義し、複数のラッチの何れかでパケットを受信した際に、そのときの緩衝キュー３４の空き状態に応じて書込フォーマットを動的に決定するフォーマット決定回路３２と、
フォーマット決定回路３２で決定した書込フォーマットに従って受信パケットをワード単位に分けて緩衝キューに格納するパケット制御回路３０と、
フォーマット決定回路３２で決定されたフォーマットを格納するフォーマット情報格納部４０と、
フォーマット情報格納部４０に格納されたフォーマットから有効データの格納位置を認識してパケット格納キュー３８からパケットを読み出すパケット読出回路４２と、
を備えたことを特徴とする。
【００１２】
ここで、受信パケットは所定サイズのブロックデータであり、ブロックデータを所定サイズに分割したサブブロックを１ワードとする。
【００１３】
フォーマット決定回路は、複数の緩衝キューのうち、空き度合いの高い緩衝キューから順番に受信パケットをワード順に格納する書込フォーマットを定義する。
【００１４】
フォーマット決定回路は、受信パケットがフルワードの場合、複数の緩衝キューのうち、空き度合いの高い緩衝キューから順番に各ワードをワード順に格納する書込フォーマットを定義する。
【００１５】
フォーマット決定回路は、受信パケットが空きワードを含む場合、複数の緩衝キューのうち、空き度合いの高い緩衝キューから順番に有効ワードをワード順に格納する書込フォーマットを定義する。
【００１６】
フォーマット決定回路は、受信パケットがｎワードの場合、ｎ個の緩衝キューのうち、空き度合いの高い緩衝キューから順番にｎワードをワード順に格納する書込フォーマットを定義し、受信パケットがｎワード未満の場合、ｎ個の緩衝キューのうち、空き度合いの高い緩衝キューから順番にｎワード未満の各有効ワードをワード順に格納する書込フォーマットを定義する。
【００１７】
フォーマット決定回路は、受信パケットが４ワードの場合、４個の緩衝キューのうち、空き度合いの高い緩衝キューから順番に４ワードをワード順に格納する書込フォーマットを定義し、受信パケットが３ワード、２ワード又は１ワードの場合、４個の緩衝キューのうち、空き度合いの高い緩衝キューから順番に３ワード、２ワード又は１ワードの各有効ワードをワード順に格納する書込フォーマットを定義する。
【００１８】
複数の緩衝キューは、１ワードサイズを持つ少なくとも２アドレスのＲＡＭで構成され、フォーマット決定回路は、複数の緩衝キューのＲＡＭ構成の空き状態に応じた書込みフォーマットを定義し、パケット受信時の複数の緩衝キューのＲＡＭ構成の空き状態に応じて書き込みフォーマットを決定する。
【００１９】
受信パケットの各ワードに対応して設けた緩衝キューの各々は、ＩＦラッチに対するインターフェースに対応した数の緩衝キューを並列配置した緩衝キュー群で構成され、各緩衝キュー群に格納されたＩＦラッチ毎の受信パケットの各ワードを、各緩衝キュー群に対応して設けた複数の調停回路により受信パケット単位に読出してパケット格納キューに格納する。
【００２０】
ＩＦラッチは、メモリコントローラや入出力コントローラ等のリソースのインタフェースからパケットを受信し、パケット読出回路は、パケット格納キューから読み出したパケットをＣＰＵ等の処理モジュールに出力する。
【００２１】
本発明はデータキュー制御方法を提供する。本発明のデータキュー制御方法は、
ワード数が変化するパケットを複数のインターフェースから複数のＩＦラッチ（受信ラッチ）に受信するパケット受信ステップと、
ＩＦラッチで受信したパケットをワード単位に分けて最大ワード数に一致する数の緩衝キューに格納する緩衝キュー格納ステップと、
緩衝キューから読み出されたパケットを緩衝キューと同数のパケット格納キューに格納するパケット格納ステップと、
緩衝キューの空き状態に応じた複数種類の書込フォーマットを予め定義し、複数のラッチの何れかでパケットを受信した際に、そのときの緩衝キューの空き状態に応じて書込フォーマットを動的に決定するフォーマット決定ステップと、
フォーマット決定回路で決定した書込フォーマットに従って受信パケットをワード単位に分けて緩衝キューに格納するパケット制御ステップと、
フォーマット決定回路で決定されたフォーマットを格納するフォーマット情報格納ステップと、
フォーマット情報格納部に格納されたフォーマットから有効データの格納位置を認識してパケット格納キューからパケットを読み出すパケット読出ステップと、
を備えたことを特徴とする。
【００２２】
本発明は、システムコントローラを構成するコンピュータにより実行されるデータキュー制御プログラムを提供する。本発明のデータキュー制御プログラムは、コンピュータに、
ワード数が変化するパケットを複数のインターフェースから複数の受信用ラッチに受信するパケット受信ステップと、
受信用ラッチで受信したパケットをワード単位に分けて最大ワード数に一致する数の緩衝キューに格納する緩衝キュー格納ステップと、
緩衝キューから読み出されたパケットを格納する緩衝キューと同数のパケット格納キューに格納するパケット格納ステップと、
緩衝キューの空き状態に応じた複数種類の書込フォーマットを予め定義し、複数のラッチの何れかでパケットを受信した際に、そのときの緩衝キューの空き状態に応じて書込フォーマットを動的に決定するフォーマット決定ステップと、
フォーマット決定回路で決定した書込フォーマットに従って受信パケットをワード単位に分けて緩衝キューに格納するパケット制御ステップと、
フォーマット決定回路で決定されたフォーマットを格納するフォーマット情報格納ステップと、
フォーマット情報格納部に格納されたフォーマットから有効データの格納位置を認識してパケット格納キューからパケットを読み出すパケット読出ステップと、
を実行させることを特徴とする。
【００２３】
なお、本発明によるデータキュー制御方法及びプログラムの詳細は、本発明のデータキュー制御回路と基本的に同じとなる。
【発明の効果】
【００２４】
本発明によれば、ワード数の変化により異なる長さのパケットが複数のインターフェースから別々のタイミングで到着するような場合について、緩衝キューの空き状態から書込フォーマットを動的に決定してワード単位に分けて緩衝キューに格納した後に本来のパケット格納キューへ書き込むため、特定のパケット格納キューへの書込み集中を回避するように緩衝キューに対するワード単位に分けた書込みが行われ、その結果、本来のパケット格納キューに対する書き込みの負荷を均等にすることができ、これによってスループット確保に必要な緩衝キューの回路規模を最小限に留め、実装面積とコストの削減を図ることができる。
【発明を実施するための最良の形態】
【００２５】
図２は、本発明が適用されるコンピュータシステムにおけるシステムボードのブロック図である。図２において、システムボード１０にはシステムコントローラ１２が設けられ、システムコントローラ１２に本発明によるデータキュー制御回路が組み込まれている。
【００２６】
システムコントローラ１２に対しては、パケットバス１６−１〜１６−４を介してＣＰＵ１４−１〜１４−４が接続されている。またシステムコントローラ１２に対しては、パケットバス２６−１〜２６−３を介して、メモリコントローラ１８−１、１８−２及びＩ／Ｏコントローラ２０が接続されている。
【００２７】
メモリコントローラ１８−１、１８−２は、デュアルインラインメモリモジュール（ＤＩＭＭ）２２−１、２２−２を接続している。Ｉ／Ｏコントローラ２０にはＩ／Ｏバス２４が接続され、図示しない磁気ディスクサブシステムを含む各種の入出力デバイスが接続される。
【００２８】
システムコントローラ１２は、メモリコントローラ１８−１、１８−２、Ｉ／Ｏコントローラ２０、ＣＰＵ１４−１〜１４−４と接続するそれぞれのインターフェースによるパケットの転送を受けて受信し、内蔵しているデータキュー制御回路のキューに受信パケットを格納した後、ＣＰＵ１４−１〜１４−４側にパケットを読み出して転送し、ＣＰＵ１４−１〜１４−４でパケット内容に応じた必要な処理を行うようにしている。
【００２９】
また、ＣＰＵ１４−１〜１４−４で処理されたデータはシステムコントローラ１２にインターフェースによりパケットとして送られ、キューに格納した後に、対応するコントローラ又はＣＰＵ側にパケットを転送する。
【００３０】
図３は、図２のシステムコントローラ１２に設けた本発明のデータキュー制御回路１１の実施形態のブロック図である。図３において、データキュー制御回路１１は、図２に示したように、メモリコントローラ１８−１、１８−２やＩ／Ｏコントローラ２０側から複数のインターフェースによるパケットを受信してキューイングした後に読み出して、ＣＰＵ１４−１〜１４−４側に転送している。
【００３１】
この例では６つのインターフェースからパケット２５−１〜２５−６を、それぞれのインターフェースに応じたタイミングで、受信ラッチとして機能するＩＦラッチ（以下「ＩＦラッチ」という）２８−１〜２８−６で受信するようにしている。ＩＦラッチ２８−１〜２８−６に続いてはパケット制御回路３０−１〜３０−６が設けられ、パケット制御回路３０−１〜３０−６には本発明のデータキュー制御に必要なフォーマット決定回路３２−１〜３２−６を設けている。パケット制御回路３０−１〜３０−６に続いては、緩衝キューとして機能する緩衝ＲＡＭ３４−１〜３４−４が設けられている。
【００３２】
ここで、ＩＦラッチ２８−１〜２８−６で受信するパケット２５−１〜２５−６のそれぞれは、図４に示すように最大パケット長で４ワードパケット４６−４を受信し、またそれ以外に３ワードパケット４６−３、２ワードパケット４６−２または１ワードパケット４６−1を、インターフェースにおけるデータ長の制約などによりデータ長の異なるパケットを各インターフェースに応じたタイミングで受信している。
【００３３】
ここで図４の４ワードパケット４６−４が基本的なパケットフォーマットであり、４ワードに相当するブロックデータを４分割してサブブロックに分けており、このサブブロックを１ワードとしている。
【００３４】
再び図３を参照するに、緩衝ＲＡＭ３４−１〜３４−４はＩＦラッチ２８−１〜２８−６で受信するパケットの最大ワード数に対応した４個を配置している。また緩衝ＲＡＭ３４−１〜３４−４は、例えば緩衝ＲＡＭ３４−１を例にとると、ＩＦラッチ２８−１〜２８−６に対応して６つの緩衝ＲＡＭ群から構成されている。この点は他の緩衝ＲＡＭ３４−２〜３４−４についても同様である。
【００３５】
緩衝ＲＡＭ３４−１〜３４−４に続いては調停回路３６−１〜３６−４が設けられており、ＩＦラッチ２８−１〜２８−６におけるパケットの受信順に応じた調停回路３６−１〜３６−４の制御で、緩衝ＲＡＭ３４−１〜３４−４のそれぞれにおける６つのＲＡＭ領域の中の対応する１つのＲＡＭ領域を選択して、受信パケットを読み出す。
【００３６】
調停回路３６−１〜３６−４に続いては、パケット格納キューとして機能するパケット格納ＲＡＭ３８−１〜３８−４が設けられており、これも緩衝ＲＡＭ３４−１〜３４−４と同様、インターフェースラッチ（以下「ＩＦラッチ」という）２８−１〜２８−６で受信するパケットの最大ワード数に対応した４個を並列的に配置している。
【００３７】
パケット格納ＲＡＭ３８−２〜３８−４に続いてはパケット読出回路４２が設けられる。またフォーマット情報格納部４０が設けられ、ここにはフォーマット決定回路３２−１〜３２−６のいずれかで決定した対応する受信パケットをパケット格納ＲＡＭ３８−１〜３８−４に格納した際に対応するフォーマット情報を格納し、パケット読出回路４２でパケット格納ＲＡＭ３８−１〜３８−４から受信パケットを読み出す際に、フォーマット情報格納部４０に格納されている対応するフォーマット情報から有効格納位置、即ち有効ワード位置を特定して、受信パケットの読出しを行う。
【００３８】
更にデータキュー制御回路１１には全体的な制御を行う制御部４４が設けられ、制御部４４にはフォーマット決定テーブル４８、１ワードフォーマットテーブル５０−１、２ワードフォーマットテーブル５０−２、３ワードフォーマットテーブル５０−３及び４ワードフォーマットテーブル５０−４が格納されている。
【００３９】
なお制御部４４に設けている各テーブルは、共通テーブルとしてフォーマット決定回路３２−１〜３２−６が参照して利用するが、他の実施形態としてフォーマット決定回路３２−１〜３２−６のそれぞれに各テーブルを配置するようにしてもよい。
【００４０】
図５は、４ワードパケットを対象にパケット格納ＲＡＭ３８−１〜３８−４に対する第１乃至第４フォーマットによる書込状態の説明図である。図５（Ａ）は４ワードパケットによる第１フォーマットによる書込状態であり、第１フォーマットによる書込みは、パケット格納ＲＡＭ３８−１〜３８−４に対し、第１サブブロックから第４サブブロックのブロック順即ちワード順に書き込んでいる。
【００４１】
図５（Ｂ）は４ワードパケットにおける第２フォーマットであり、第２フォーマットにあっては２番目のパケット格納ＲＡＭ３８−２を先頭に、第１サブブロックから第４サブブロックまで順番に格納している。
【００４２】
図５（Ｃ）は４ワードパケットの第３フォーマットであり、第３フォーマットにあっては３番目のパケット格納ＲＡＭ３８−１に先頭の第１サブブロックを格納し、その後ろから前方に巡回する形で残りのサブブロックを順番に格納している。
【００４３】
更に図５（Ｄ）は４ワードパケットの第４フォーマットであり、４番目のパケット格納ＲＡＭ３８−４を先頭として第１サブブロックを格納し、そこから１番目のパケット格納ＲＡＭ３８−１に戻って、後続するサブブロックを格納している。
【００４４】
このような４ワードパケットにおける第１フォーマット〜第４フォーマットの決定は、図３に示した緩衝ＲＡＭ３４−１〜３４−４における空き状態に応じて決定されており、最も空き度合の高いパケット格納ＲＡＭの位置に先頭の第１サブブロックを格納して、以下、これに後続して残りのサブブロックを格納するようにしている。
【００４５】
図６は３ワードパケットにおける第１乃至第４フォーマットによるパケット格納ＲＡＭの書込状態の説明図である。図６（Ａ）は３ワードパケットの第１フォーマットであり、第１フォーマットにあっては空き度合の最も高いパケット格納ＲＡＭ３４−１に先頭の第１サブブロックを格納し、以下これに続いて残りのサブブロックを格納しており、第４ブロックはないことから、パケット格納ＲＡＭ３８−４は未使用となる。
【００４６】
図６（Ｂ）は３ワードパケットの第２フォーマットであり、空き度合が最も高いパケット格納ＲＡＭ３８−２に先頭の第１サブブロックを格納し、これに続いて残りのサブブロックを格納しており、４ワード目はないことから、１番目のパケット格納ＲＡＭ３８−１については未使用としている。
【００４７】
図６（Ｃ）は３ワードパケットの第３フォーマットであり、空き度合の最も高い３番目のパケット格納ＲＡＭ３８−３に先頭の第１サブブロックを格納し、これに続いて後続する残り２つのサブブロックを格納しており、４ワード目となる第４サブブロックは存在しないことから、２番目のパケット格納ＲＡＭ３８−２は未使用としている。
【００４８】
図６（Ｄ）は３ワードパケットの第４フォーマットであり、空き度合の最も高い４番目のパケット格納ＲＡＭ３８−４に先頭の第１サブブロックを格納し、後続するサブブロックについては１番目、２番目に戻ってそれぞれ格納しており、４ワード目となる第４サブブロックは存在しないことから、３番目のパケット格納ＲＡＭ３８−３は未使用としている。
【００４９】
図７は、２ワードパケットにおける第１乃至第４フォーマットによるパケット格納ＲＡＭの書込状態である。図７（Ａ）が２ワードパケットの第１フォーマット、図７（Ｂ）が２ワードパケットの第２フォーマット、図７（Ｃ）が２ワードパケットの第３フォーマット、図７（Ｄ）が２ワードパケットの第４フォーマットを示している。
【００５０】
第１フォーマット、第２フォーマット、第３フォーマット、第４フォーマットにおけるそれぞれの空き度合の最も高い格納位置は、図６の３ワードパケットと同様、第１フォーマットは図７（Ａ）の１番目のパケット格納ＲＡＭ３８−１、第２フォーマットは図７（Ｂ）の２番目のパケット格納ＲＡＭ３８−２、第３フォーマットは図７（Ｃ）の３番目のパケット格納ＲＡＭ３８−３、第４フォーマットは図７（Ｄ）の４番目のパケット格納ＲＡＭ３８−４の位置であることから、それぞれの空き度合の最も高い格納ＲＡＭに先頭の第１サブブロックを格納し、その後に第２サブブロックを格納し、図７（Ｄ）のように第１サブブロックが最後のパケット格納ＲＡＭ３８−４となった場合には、第２サブブロックは１番目のパケット格納ＲＡＭ３８−１に戻って格納している。
【００５１】
図８は、１ワードパケットの第１乃至第４フォーマットによるパケット格納ＲＡＭの書込状態の説明図である。１ワードパケットにあっては、図８（Ａ）の第１フォーマット、図８（Ｂ）の第２フォーマット、図８（Ｃ）の第３フォーマット及び図８（Ｄ）の第４フォーマットであり、内容的には図７の２ワードパケットにおける各フォーマットの第２サブブロックを未使用として、第１サブブロックの格納状態のみを残した書込フォーマットとなっている。
【００５２】
この図５〜図８に示した１〜４ワードパケットにおける第１〜第４フォーマットは、図９に示すフォーマット決定テーブル４８に基づいて動的に決定される。図９のフォーマット決定テーブル４８は、図４に示した緩衝ＲＡＭ３４−１〜３４−４を２アドレスの格納領域とした場合を対象としており、緩衝ＲＡＭ３４−１〜３４−４の格納状態を第１ケースから第８ケースの８つのケースに分けている。
【００５３】
このバッファ格納状態となる第１ケースから第８ケースに対しては、その右側に示すように、緩衝ＲＡＭ３４−１〜３４−４における２つのＲＡＭアドレスの格納状態を、格納であれば「１」、空きであれば「０」として表わしている。
【００５４】
緩衝ＲＡＭ３４−１〜３４−４につき、２ビットで示す格納状態が得られれば、その右側に示すフォーマット番号となる第１フォーマット乃至第４フォーマットのいずれかが決定される。ここで適用パケットワード数としては、第１ケース〜第４ケースが１ワードパケット乃至４ワードパケットについて適用されるが、第５ケースから第８ケースは1ワードパケットと２ワードパケットについてのみ適用される。
【００５５】
図１０は、図９のフォーマット決定テーブル４８のフォーマット番号で指定されるフォーマット情報を格納したフォーマットテーブルの説明図であり、図１０（Ａ）の４ワード用フォーマットテーブル５０−４、図１０（Ｂ）の３ワード用フォーマットテーブル５０−３、図１０（Ｃ）の２ワード用フォーマットテーブル５０−２及び図１０（Ｄ）の１ワード用フォーマットテーブル５０−１で構成されている。
【００５６】
フォーマット情報を格納したフォーマットテーブルは、例えば図１０（Ａ）の４ワード用フォーマットテーブル５０−４を例にとると、フォーマット番号である第１フォーマットから第４フォーマットのそれぞれに対応して、右側に緩衝ＲＡＭ３４−１〜３４−４の書込みの順番を示す数値１〜４が格納されており、０は未使用ＲＡＭを表している。
【００５７】
図１０（Ａ）の４ワード用フォーマットテーブル５０−４については、第１フォーマットから第４フォーマットについて４つの緩衝ＲＡＭ３４−１〜３４−４を全て使用しており、フォーマット番号の相違はパケットの先頭サブブロックをどの位置に書き込むかが空き状態によって変わることになる。
【００５８】
図１０（Ｂ）の３ワード用フォーマットテーブル５０−３にあっては、第１フォーマット〜第４フォーマットにつき、４つの格納領域のうちの３つが使用され、残り１つが未使用となっており、フォーマットの順番に、最初の書込位置が緩衝ＲＡＭの順番に1つずつ後ろにずれるようになっている。
【００５９】
図１０（Ｃ）の２ワード用フォーマットテーブル５０−２については、第１フォーマット〜第４フォーマットのいずれについても緩衝ＲＡＭの４つの領域のうちの２つが使用され、残り２つが０で示す未使用領域であり、同様にフォーマット番号の順番に先頭のサブブロックを書き込む位置が１つずつ後ろにずれている。
【００６０】
図１０（Ｄ）の1ワード用フォーマットテーブル５０−１にあっては、フォーマット番号のいずれについても緩衝ＲＡＭの４つの格納領域のうちの１つが使用され、０で示す残り３つが未使用おり、１で示す格納領域となる位置がフォーマット番号の順番に緩衝ＲＡＭの先頭位置から後ろに１つずつずれている。
【００６１】
図１１は、４ワードパケット受信時に緩衝ＲＡＭ３４−１〜３４−４の格納状態が図９のフォーマット決定テーブル４８の第１ケースと判別されて、フォーマット番号として第１フォーマットが決定された場合の書込説明図である。
【００６２】
図１１（Ａ）は、あるタイミングで受信された４ワードの受信パケットであり、第１ワードから第４ワードまでのワードデータをＢ１、Ｂ２、Ｂ３、Ｂ４で示している。このとき図１１（Ｃ）に示す緩衝ＲＡＭ３４−１〜３４−４における下側の第１列（先頭アドレス）と、その上の第２列（２番目のアドレス）のいずれについても、全て空き状態になっていたとする。
【００６３】
このような緩衝ＲＡＭ３４−１〜３４−４の空き状態を検出してフォーマット決定テーブル４８を参照すると、格納状態は第１ケースに該当し、したがって第１フォーマットがフォーマット番号として決定される。この４ワードの第１フォーマットは、図１０（Ａ）の４ワード用フォーマットテーブル５０−４の第１フォーマットであることから、図１１（Ｂ）のように第１フォーマットに従った緩衝ＲＡＭ３４−１〜３４−４に対する格納位置は図４（Ａ）の４ワード受信パケットの並びと同じになり、そのまま緩衝ＲＡＭ３４−１〜３４−４にワードデータＢ１〜Ｂ４が格納される。
【００６４】
図１２は、４ワードパケット受信時に緩衝ＲＡＭの格納状態が第２ケースとなって第２フォーマットを決定した場合の書込説明図である。この場合、図１２（Ａ）の４ワード受信パケットの受信時に、図１２（Ｃ）のように緩衝ＲＡＭ３４−１〜３４−４は図９の第２ケースの格納状態にあり、したがってフォーマット番号として第２フォーマットが決定され、図１０（Ａ）の４ワード用フォーマットテーブル５０−４から図１２（Ｂ）の第２フォーマットに示すように、空き度合が最も高い先頭の格納位置となる緩衝ＲＡＭ３４−２を先頭として、順番にワードデータＢ１、Ｂ２、Ｂ３、Ｂ４を格納している。
【００６５】
図１３は、４ワードパケットの受信時に緩衝ＲＡＭ３４−１〜３４−４の第３ケースの状態で決定された第３フォーマットによる書込説明図であり、図９のフォーマット決定テーブル４８及び図１０（Ａ）の４ワードフォーマットテーブル５０−４から求められ、第３フォーマットにあっては、図１３（Ｃ）の緩衝ＲＡＭの３４−１、３４−２の１列目は既にワードデータＡ１、Ａ２が格納されており、格納順から最も空き度合の高いのは３番目の緩衝ＲＡＭ３４−３であり、この位置から現在受信している４ワードのワードデータＢ１〜Ｂ４を図１３（Ｂ）に示すように配置して、緩衝ＲＡＭ３４−１〜３４−４に格納することになる。
【００６６】
図１４は、４ワードパケットの受信時に緩衝ＲＡＭ３４−１〜３４−４の格納状態が図９のフォーマット決定テーブル４８の第４ケースに該当して、第４フォーマットが決定された場合の書込説明図である。この第４フォーマットにあっては、図１４（Ｃ）の緩衝ＲＡＭ３４−１〜３４−３が既にワードデータＡ１〜Ａ３で使用済みであり、４番目の緩衝ＲＡＭ３４−４のみが空いていることから、ここを先頭位置として、現在受信したワードデータＢ１〜Ｂ４を図１４（Ｂ）の第４フォーマットの格納順に並び替えて、緩衝ＲＡＭ３４−１〜３４−４に格納する。
【００６７】
図１５、図１６、図１７及び図１８は、３ワード受信パケットについて、緩衝ＲＡＭ３４−１〜３４−４の格納状態による第１ケース、第２ケース、第３ケース及び第４ケースから第１フォーマット、第２フォーマット、第３フォーマット及び第４フォーマットを決定した場合の緩衝ＲＡＭ３４−１〜３４−４に対する書込みの説明図である。
【００６８】
更に図１９、図２０、図２１及び図２２は、２ワード受信パケットについて、第１ケース、第２ケース、第３ケース、第４ケースと格納状態が判別されて、第１フォーマット、第２フォーマット、第３フォーマット、第４フォーマットが決定された場合の緩衝ＲＡＭ３４−１〜３４−４に対する書込説明図である。
【００６９】
このうち図１９〜図２２の（Ａ）〜（Ｃ）については４ワード受信パケット及び３ワード受信パケットの場合と同じであるが、図１９〜図２２の（Ｄ）は緩衝ＲＡＭ３４−１〜３４−４の第１列目（先頭アドレス）に先に受信されたパケットのワードデータＡ１〜Ａ４が既に格納されている状態にあり、この場合には２番目のアドレスとなる第２列の格納状態から判別された第１フォーマット、第２フォーマット、第３フォーマットまたは第４フォーマットの決定による緩衝ＲＡＭ３４−１〜３４−４に対するワードデータの書込みが行われることになる。
【００７０】
図２３、図２４、図２５及び図２６は、１ワード受信パケットにおける緩衝ＲＡＭ３４−１〜３４−４の第１ケース、第２ケース、第３ケース、第４ケースの第１フォーマット、第２フォーマット、第３フォーマット及び第４フォーマットの決定による書込みを（Ａ）〜（Ｃ）に示す。
【００７１】
更に緩衝ＲＡＭ３４−１〜３４−４の第１列（先頭アドレス）に先に受信したパケットのワードデータＡ１〜Ａ４が格納されている状態については、図２３、図２４、図２５及び図２６の（Ｄ）のように、第２列の格納状態について第５ケース、第６ケース、第７ケースまたは第８ケースを判別し、第１フォーマット、第２フォーマット、第３フォーマットまたは第４フォーマットを決定して書き込むことになる。
【００７２】
図２７は、図３のデータキュー制御回路１１において、４ワードパケット（Ａ１、Ａ２、Ａ３、Ａ４）に続いて２ワードパケット（Ｂ１、Ｂ２）を受信した場合の第１ケースの格納状態にある緩衝ＲＡＭ３４−１〜３４−４への書込みと、その後のパケットＲＡＭ３８−１〜３８−４への書込動作の説明図である。
【００７３】
図２７（Ａ）は図３の制御部４４のタイミング制御で与えられる処理サイクルであり、図２７（Ｂ）のように、例えばＩＦラッチ２８−１で４ワードパケット５２が受信された後に２ワードパケット５４が受信されたとする。
【００７４】
図２７（Ｃ）は、図２７（Ａ）の８サイクル目の格納状態を示しており、ＩＦラッチ２８−１に２ワードパケット５４における先頭のワードデータＢ１がラッチされたとき、緩衝ＲＡＭ３４−１〜３４−４の先頭アドレスとなる第１列には、先行して受信された４ワードパケット５２のワードデータＡ１〜Ａ４が既に格納されている。
【００７５】
このような格納状態から、図９のフォーマット決定テーブル４８を参照することで第１ケースの格納状態が判別され、その結果、フォーマット番号として第１フォーマットが決定される。第１フォーマットが決定されると、ＩＦラッチ２８−１にラッチされたワードデータＢ１は、第１フォーマットに従って緩衝ＲＡＭ３４−１に格納されることになる。
【００７６】
図２７（Ｄ）は次の９サイクル目の状態であり、ＩＦラッチ２８−１に２番目のワードデータＢ２がラッチされ、このとき緩衝ＲＡＭ３４−１の２列目には先行するワードデータＢ１が格納されており、フォーマットとして第１フォーマットが決定されていることから、ＩＦラッチ２８−１のワードデータＢ２は２番目の緩衝ＲＡＭ３４−２に格納される。
【００７７】
図２７（Ｅ）は、４ワードパケット５２及び２ワードパケット５４が緩衝ＲＡＭ３４−１〜３４−４の格納を経て、パケットＲＡＭ３８−１〜３８−４に格納された状態であり、このとき右側に示すフォーマット情報格納部４０には緩衝ＲＡＭ３４−１〜３４−４に格納する際に決定されたフォーマット情報５６及び５８が格納されている。
【００７８】
このフォーマット情報格納部４０のフォーマット情報は、パケット格納ＲＡＭ３８−１〜３８−４から図３に示したパケット読出回路４２が受信パケットを読み出す際に、有効なワードデータがどのパケット格納ＲＡＭに存在しており且つその順番がどのようになっているかを示しており、このフォーマット情報を使用してパケットを読み出すことで、ワード単位に分けて格納した受信パケットを再構築してＣＰＵ側に送り出すことができる。
【００７９】
図２８は、図２７と同様、４ワードパケットに続いて２ワードパケットを受信した際に、第２ケースの格納状態にある緩衝ＲＡＭ３４−１〜３４−４への書込みとその後のパケット格納ＲＡＭ３８−１〜３８−４への書込動作の説明図である。
【００８０】
図２８において、パケット受信状況は図２７（Ａ）（Ｂ）と同じであり、図２８（Ａ）は８サイクル目でＩＦラッチ２８−１に２ワードパケット５４の先頭ワードデータＢ１がラッチされた状態である。
【００８１】
このとき緩衝ＲＡＭ３４−１〜３４−４は１列目の先頭位置に先行する４ワードパケットのワードデータＡ１が残っており、この格納状態から図９のフォーマット決定テーブル４８を参照すると、格納状態として第２ケースに該当し、その結果、第２フォーマットが決定される。
【００８２】
このようにして第２フォーマットが決定されると、ＩＦラッチ２８−１のワードデータＢ１は第２フォーマットに従って２番目の緩衝ＲＡＭ３４−２の第１列目に格納される。
【００８３】
図２８（Ｂ）は図２７（Ａ）の９サイクル目であり、ＩＦラッチ２８−１に２番目のワードデータＢ２がラッチされており、先にラッチされたワードデータＢ１は緩衝ＲＡＭ３４−２の第１列目に格納されている。この場合、第２フォーマットが決定されていることから、ＩＦラッチ２８−１のワードデータＢ２は３番目の緩衝ＲＡＭ３４−３の第１列目に格納される。
【００８４】
図２８（Ｃ）は緩衝ＲＡＭ３４−１〜３４−４に格納された後に転送されたパケット格納ＲＡＭ３８−１〜３８−４の格納状態であり、これに対応して右側のフォーマット情報収納部４０に、２ワードパケットのワードデータＡ１〜Ａ４についてはフォーマット情報５６が格納され、次のワードデータＢ１、Ｂ２についてはフォーマット情報６０が格納されており、パケット読出しの際にフォーマット情報５６、６０を参照することで、パケット格納ＲＡＭ３８−１〜３８−４におけるワードデータの有効格納位置と格納の順番を認識し、受信パケットを再構築してＣＰＵ側に転送することができる。
【００８５】
なお図２７（Ｅ）及び図２８（Ｃ）のパケット格納ＲＡＭ３８−１〜３８−４における空きアドレスの部分は、他のＩＦラッチで受信されたパケットのワードデータが格納される位置として使用されることになるが、この受信データについては言及していないことから、空きスペースとしている。
【００８６】
図２９は、図３の実施形態によるデータキュー制御処理のフローチャートであり、特定のＩＦラッチでのパケット受信からキュー格納、更にキュー読出しまでを示している。このため実際のデータキュー格納処理にあっては、図２９のフローチャートに示す処理プログラムが、パケットを受信するＩＦキューの受信処理ごとにマルチタスク処理として並列的に実行されることになる。
【００８７】
図２９において、ステップＳ１で対象とするＩＦラッチにパケットが到着したか否かチェックしており、パケットが到着するとステップＳ２に進み、このときの緩衝ＲＡＭ３４−１〜３４−４の使用状態を認識し、図９のフォーマット決定テーブル４８からステップＳ３でフォーマット番号を決定する。
【００８８】
次にステップＳ４で受信パケットのワード数に対応したフォーマット番号についてフォーマット情報を取得し、ステップＳ５でフォーマット情報に従って受信パケットの各ワードを緩衝ＲＡＭにワード単位に書き込む。
【００８９】
このようにして緩衝ＲＡＭ３４−１〜３４−４に対するパケット格納が済むと、ステップＳ６で緩衝ＲＡＭの読出タイミングをチェックしており、読出タイミングを判別すると、ステップＳ７で緩衝ＲＡＭの受信パケットをワード単位に並列的に読み出してパケット格納ＲＡＭ３８−１〜３８−４に書き込み、次にステップＳ８でパケット格納ＲＡＭ３８−１〜３８−４に書き込んだ受信パケットのフォーマット情報をフォーマット情報格納部４０に別途格納する。
【００９０】
続いてステップＳ９でパケット格納ＲＡＭの読出タイミングをチェックしており、読出タイミングを判別すると、ステップＳ１０で別途格納しているフォーマット情報からパケット格納ＲＡＭ３８−１〜３８−４の中の有効ワードの格納位置を認識してパケットを読み出し、またフォーマット情報から得られた格納順番からワード順に配列してパケットを再構築し、ＣＰＵ側に出力する。このようなステップＳ１〜Ｓ１０の処理を、ステップＳ１１で停止指示があるまでパケット到着ごとに繰り返す。
【００９１】
また本発明は、図２に示したように、システムコントローラ１２を構成するコンピュータで実行される図２９のフローチャートに示すデータキュー制御処理手順に従ったプログラムを提供するものであり、この場合、図３に示した回路はラッチ回路及びＲＡＭ以外については、例えば制御部４４の機能をプログラム制御により実現するソフトウェアあるいはファームウェアとして提供することができる。
【００９２】
なお、上記の実施形態は、受信パケットとして１ブロックデータを４つのサブブロックに分けた４ワードを最大ワード長として１〜４ワードの範囲でデータ長が変化するパケットを受信してデータキュー制御を行う場合を例にとるものであったが、受信パケットの１ブロックをサブブロックに分割する分割数ｎは必要に応じて適宜に定めることができ、例えばｎ＝６ブロック、ｎ＝８ブロックなど適宜に設定できる。
【００９３】
また上記の実施形態は緩衝ＲＡＭ３４−１〜３４−４として２アドレス構成を例にとるものであったが、更に緩衝ＲＡＭ３４−１〜３４−４のアドレス数を増やすようにしてもよい。更に上記の実施形態にあっては、６つのインターフェースからパケットを受信する場合を例にとっているが、このインターフェースの数も必要に応じて適宜に定めることができ、基本的にはパケット格納キューの数がインターフェースの数より少なくなるような構成をとることになる。
【００９４】
また本発明は、その目的と利点を損なうことのない適宜の変形を含み、更に上記の実施形態に示した数値による限定は受けない。
【００９５】
ここで本発明の特徴をまとめて列挙すると次の付記のようになる。
（付記）
（付記１）
ワード数が変化するパケットを複数のインターフェースから受信する複数の受信用ラッチと、
前記受信用ラッチで受信したパケットをワード単位に分けて格納する最大ワード数に一致する数の緩衝キューと、
前記緩衝キューから読み出されたパケットを格納する前記緩衝キューと同数のパケット格納キューと、
前記緩衝キューの空き状態に応じた複数種類の書込フォーマットを予め定義し、前記複数の受信用ラッチの何れかでパケットを受信した際に、そのときの前記緩衝キューの空き状態に応じて書込フォーマットを動的に決定するフォーマット決定回路と、
前記フォーマット決定回路で決定した書込フォーマットに従って受信パケットをワード単位に分けて前記緩衝キューに格納するパケット制御回路と、
前記フォーマット決定回路で決定されたフォーマットを格納するフォーマット情報格納部と、
前記フォーマット情報格納部に格納されたフォーマットから有効データの格納位置を認識して前記パケット格納キューからパケットを読み出すパケット読出回路と、
を備えたことを特徴とするデータキュー制御回路。（１）
【００９６】
（付記２）
付記１記載のデータキュー制御回路に於いて、前記受信パケットは所定サイズのブロックデータであり、前記ブロックデータを所定サイズに分割したサブブロックを１ワードとしたことを特徴とするデータキュー制御回路。
【００９７】
（付記３）
付記１記載のデータキュー制御回路に於いて、
前記フォーマット決定回路は、複数の緩衝キューのうち、空き度合いの高い緩衝キューから順番に受信パケットをワード順に格納する書込フォーマットを定義することを特徴とするデータキュー制御回路。（２）
【００９８】
（付記４）
付記１記載のデータキュー制御回路に於いて、
前記フォーマット決定回路は、受信パケットがフルワードの場合、複数の緩衝キューのうち、空き度合いの高い緩衝キューから順番に各ワードをワード順に格納する書込フォーマットを定義することを特徴とするデータキュー制御回路。
【００９９】
（付記５）
付記１記載のデータキュー制御回路に於いて、
前記フォーマット決定回路は、受信パケットが空きワードを含む場合、複数の緩衝キューのうち、空き度合いの高い緩衝キューから順番に有効ワードをワード順に格納する書込フォーマットを定義することを特徴とするデータキュー制御回路。
【０１００】
（付記６）
付記１記載のデータキュー制御回路に於いて、
前記フォーマット決定回路は、
受信パケットがｎワードの場合、ｎ個の緩衝キューのうち、空き度合いの高い緩衝キューから順番にｎワードをワード順に格納する書込フォーマットを定義し、
受信パケットがｎワード未満の場合、ｎ個の緩衝キューのうち、空き度合いの高い緩衝キューから順番にｎワード未満の各有効ワードをワード順に格納する書込フォーマットを定義することを特徴とするデータキュー制御回路。（３）
【０１０１】
（付記７）
付記１記載のデータキュー制御回路に於いて、
前記フォーマット決定回路は、
受信パケットが４ワードの場合、４個の緩衝キューのうち、空き度合いの高い緩衝キューから順番に４ワードをワード順に格納する書込フォーマットを定義し、
受信パケットが３ワード、２ワード又は１ワードの場合、４個の緩衝キューのうち、空き度合いの高い緩衝キューから順番に３ワード、２ワード又は１ワードの各有効ワードをワード順に格納する書込フォーマットを定義することを特徴とするデータキュー制御回路。
【０１０２】
（付記８）
付記１記載のデータキュー制御回路に於いて、
前記複数の緩衝キューは、１ワードサイズを持つ少なくとも２アドレスのＲＡＭで構成され、
前記フォーマット決定回路は、前記複数の緩衝キューのＲＡＭ構成の空き状態に応じた書込みフォーマットを定義し、パケット受信時の前記複数の緩衝キューのＲＡＭ構成の空き状態に応じて書き込みフォーマットを決定することを特徴とするデータキュー制御回路。
【０１０３】
（付記９）
付記１記載のデータキュー制御回路に於いて、
受信パケットの各ワードに対応して設けた緩衝キューの各々は、前記受信ラッチに対するインターフェースに対応した数の緩衝キューを並列配置した緩衝キュー群で構成され、各緩衝キュー群に格納された受信用ラッチ毎の受信パケットの各ワードを、各緩衝キュー群に対応して設けた複数の調停回路により受信パケット単位に読出して前記パケット格納キューに格納することを特徴とするデータキュー制御回路。
【０１０４】
（付記１０）
付記１記載のデータキュー制御回路に於いて、
前記受信用ラッチは、メモリコントローラや入出力コントローラ等のリソースのインタフェースからパケットを受信し、
前記パケット読出回路は、前記パケット格納キューから読み出したパケットをＣＰＵ等の処理モジュールに出力することを特徴とするデータキュー制御回路。
【０１０５】
（付記1１）
ワード数が変化するパケットを複数のインターフェースから複数の受信用ラッチに受信するパケット受信ステップと、
前記受信用ラッチで受信したパケットをワード単位に分けて最大ワード数に一致する数の緩衝キューに格納する緩衝キュー格納ステップと、
前記緩衝キューから読み出されたパケットを前記緩衝キューと同数のパケット格納キューに格納するパケット格納ステップと、
前記緩衝キューの空き状態に応じた複数種類の書込フォーマットを予め定義し、前記複数のラッチの何れかでパケットを受信した際に、そのときの前記緩衝キューの空き状態に応じて書込フォーマットを動的に決定するフォーマット決定ステップと、
前記フォーマット決定回路で決定した書込フォーマットに従って受信パケットをワード単位に分けて前記緩衝キューに格納するパケット制御ステップと、
前記フォーマット決定回路で決定されたフォーマットを格納するフォーマット情報格納ステップと、
前記フォーマット情報格納部に格納されたフォーマットから有効データの格納位置を認識して前記パケット格納キューからパケットを読み出すパケット読出ステップと、
を備えたことを特徴とするデータキュー制御方法。（４）
【０１０６】
（付記１２）
付記１１記載のデータキュー制御方法に於いて、前記受信パケットは所定サイズのブロックデータであり、前記ブロックデータを所定サイズに分割したサブブロックを１ワードとしたことを特徴とするデータキュー制御方法。
【０１０７】
（付記１３）
付記１１記載のデータキュー制御方法於いて、
前記フォーマット決定ステップは、複数の緩衝キューのうち、空き度合いの高い緩衝キューから順番に受信パケットをワード順に格納する書込フォーマットを定義することを特徴とするデータキュー制御方法。
【０１０８】
（付記１４）
付記１１記載のデータキュー制御方法に於いて、
前記フォーマット決定ステップは、受信パケットがフルワードの場合、複数の緩衝キューのうち、空き度合いの高い緩衝キューから順番に各ワードをワード順に格納する書込フォーマットを定義することを特徴とするデータキュー制御方法。
【０１０９】
（付記１５）
付記１１記載のデータキュー制御方法に於いて、
前記フォーマット決定ステップは、受信パケットが空きワードを含む場合、複数の緩衝キューのうち、空き度合いの高い緩衝キューから順番に有効ワードをワード順に格納する書込フォーマットを定義することを特徴とするデータキュー制御方法。
【０１１０】
（付記１６）
付記１１記載のデータキュー制御方法に於いて、
前記フォーマット決定ステップは、
受信パケットがｎワードの場合、ｎ個の緩衝キューのうち、空き度合いの高い緩衝キューから順番にｎワードをワード順に格納する書込フォーマットを定義し、
受信パケットがｎワード未満の場合、ｎ個の緩衝キューのうち、空き度合いの高い緩衝キューから順番にｎワード未満の各有効ワードをワード順に格納する書込フォーマットを定義することを特徴とするデータキュー制御方法。
【０１１１】
（付記１７）
付記１１記載のデータキュー制御方法に於いて、
前記フォーマット決定ステップは、
受信パケットが４ワードの場合、４個の緩衝キューのうち、空き度合いの高い緩衝キューから順番に４ワードをワード順に格納する書込フォーマットを定義し、
受信パケットが３ワード、２ワード又は１ワードの場合、４個の緩衝キューのうち、空き度合いの高い緩衝キューから順番に３ワード、２ワード又は１ワードの各有効ワードをワード順に格納する書込フォーマットを定義することを特徴とするデータキュー制御方法。
【０１１２】
（付記１８）
付記１１記載のデータキュー制御方法に於いて、
前記複数の緩衝キューは、１ワードサイズを持つ少なくとも２アドレスのＲＡＭで構成され、
前記フォーマット決定ステップは、前記複数の緩衝キューのＲＡＭ構成の空き状態に応じた書込みフォーマットを定義し、パケット受信時の前記複数の緩衝キューのＲＡＭ構成の空き状態に応じて書き込みフォーマットを決定することを特徴とするデータキュー制御方法。
【０１１３】
（付記１９）
付記１１記載のデータキュー制御方法に於いて、
受信パケットの各ワードに対応して設けた緩衝キューの各々は、前記受信ラッチに対するインターフェースに対応した数の緩衝キューを並列配置した緩衝キュー群で構成され、各緩衝キュー群に格納された受信ラッチ毎の受信パケットの各ワードを、各緩衝キュー群に対応して設けた複数の調停回路により受信パケット単位に読出して前記パケット格納キューに格納することを特徴とするデータキュー制御方法。
【０１１４】
（付記２０）
付記１１記載のデータキュー制御方法に於いて、
前記受信用ラッチは、メモリコントローラや入出力コントローラ等のリソースのインターフェースからパケットを受信し、
前記パケット読出回路は、前記パケット格納キューから読み出したパケットをＣＰＵ等の処理モジュールに出力することを特徴とするデータキュー制御方法。
【０１１５】
（付記２１）（プログラム）
システムコントローラを構成するコンピュータに、
ワード数が変化するパケットを複数のインターフェースから複数の受信用ラッチに受信するパケット受信ステップと、
前記受信用ラッチで受信したパケットをワード単位に分けて最大ワード数に一致する数の緩衝キューに格納する緩衝キュー格納ステップと、
前記緩衝キューから読み出されたパケットを格納する前記緩衝キューと同数のパケット格納キューに格納するパケット格納ステップと、
前記緩衝キューの空き状態に応じた複数種類の書込フォーマットを予め定義し、前記複数のラッチの何れかでパケットを受信した際に、そのときの前記緩衝キューの空き状態に応じて書込フォーマットを動的に決定するフォーマット決定ステップと、
前記フォーマット決定回路で決定した書込フォーマットに従って受信パケットをワード単位に分けて前記緩衝キューに格納するパケット制御ステップと、
前記フォーマット決定回路で決定されたフォーマットを格納するフォーマット情報格納ステップと、
前記フォーマット情報格納部に格納されたフォーマットから有効データの格納位置を認識して前記パケット格納キューからパケットを読み出すパケット読出ステップと、
を実行させることを特徴とするデータキュー制御プログラム。（５）
【０１１６】
（付記２２）
付記２１記載のデータキュー制御プログラムに於いて、前記受信パケットは所定サイズのブロックデータであり、前記ブロックデータを所定サイズに分割したサブブロックを１ワードとしたことを特徴とするデータキュー制御プログラム。
【０１１７】
（付記２３）
付記２１記載のデータキュー制御プログラム於いて、
前記フォーマット決定ステップは、複数の緩衝キューのうち、空き度合いの高いの緩衝キューから順番に受信パケットをワード順に格納する書込フォーマットを定義することを特徴とするデータキュー制御プログラム。
【０１１８】
（付記２４）
付記２１記載のデータキュー制御プログラムに於いて、
前記フォーマット決定ステップは、受信パケットがフルワードの場合、複数の緩衝キューのうち、空き度合いの高いの緩衝キューから順番に各ワードをワード順に格納する書込フォーマットを定義することを特徴とするデータキュー制御プログラム。
【０１１９】
（付記２５）
付記２１記載のデータキュー制御プログラムに於いて、
前記フォーマット決定ステップは、受信パケットが空きワードを含む場合、複数の緩衝キューのうち、空き度合いの高いの緩衝キューから順番に有効ワードをワード順に格納する書込フォーマットを定義することを特徴とするデータキュー制御プログラム。
【０１２０】
（付記２６）
付記２１記載のデータキュー制御プログラムに於いて、
前記フォーマット決定ステップは、
受信パケットがｎワードの場合、ｎ個の緩衝キューのうち、空き度合いの高い緩衝キューから順番にｎワードをワード順に格納する書込フォーマットを定義し、
受信パケットがｎワード未満の場合、ｎ個の緩衝キューのうち、空き度合いの高い緩衝キューから順番にｎワード未満の各有効ワードをワード順に格納する書込フォーマットを定義することを特徴とするデータキュー制御プログラム。
【０１２１】
（付記２７）
付記２１記載のデータキュー制御プログラムに於いて、
前記フォーマット決定ステップは、
受信パケットが４ワードの場合、４個の緩衝キューのうち、空き度合いの高い緩衝キューから順番に４ワードをワード順に格納する書込フォーマットを定義し、
受信パケットが３ワード、２ワード又は１ワードの場合、４個の緩衝キューのうち、空き度合いの高い緩衝キューから順番に３ワード、２ワード又は１ワードの各有効ワードをワード順に格納する書込フォーマットを定義することを特徴とするデータキュー制御プログラム。
【０１２２】
（付記２８）
付記２１記載のデータキュー制御プログラムに於いて、
前記複数の緩衝キューは、１ワードサイズを持つ少なくとも２アドレスのＲＡＭで構成され、
前記フォーマット決定ステップは、前記複数の緩衝キューのＲＡＭ構成の空き状態に応じた書込みフォーマットを定義し、パケット受信時の前記複数の緩衝キューのＲＡＭ構成の空き状態に応じて書き込みフォーマットを決定することを特徴とするデータキュー制御プログラム。
【０１２３】
（付記２９）
付記２１記載のデータキュー制御プログラムに於いて、
受信パケットの各ワードに対応して設けた緩衝キューの各々は、前記受信用ラッチに対するインターフェースに対応した数の緩衝キューを並列配置した緩衝キュー群で構成され、各緩衝キュー群に格納された受信ラッチ毎の受信パケットの各ワードを、各緩衝キュー群に対応して設けた複数の調停回路により受信パケット単位に読出して前記パケット格納キューに格納することを特徴とするデータキュー制御プログラム。
【０１２４】
（付記３０）
付記２１記載のデータキュー制御プログラムに於いて、
前記受信用ラッチは、メモリコントローラや入出力コントローラ等のリソースのインターフェースからパケットを受信し、
前記パケット読出回路は、前記パケット格納キューから読み出したパケットをＣＰＵ等の処理モジュールに出力することを特徴とするデータキュー制御プログラム。
【図面の簡単な説明】
【０１２５】
【図１】本発明の原理説明図
【図２】本発明が適用されるシステムボードのブロック図
【図３】図２のシステムコントローラに設けた本発明のデータキュー制御回路の実施形態のブロック図
【図４】図３で受信するパケットの説明図
【図５】４ワードパケットの第１乃至第４フォーマットによるパケット格納ＲＡＭの書込み状態の説明図
【図６】３ワードパケットの第１乃至第４フォーマットによるパケット格納ＲＡＭの書込み状態の説明図
【図７】２ワードパケットの第１乃至第４フォーマットによるパケット格納ＲＡＭの書込み状態の説明図
【図８】１ワードパケットの第１乃至第４フォーマットによるパケット格納ＲＡＭの書込み状態の説明図
【図９】図２のフォーマット決定回路で使用するフォーマット決定テーブルの説明図
【図１０】図２のフォーマット決定回路で使用する４ワード用、３ワード用、２ワード用及び１ワード用フォーマットテーブルの説明図
【図１１】４ワードパケット受信時に緩衝ＲＡＭの第１ケースの状態で決定された第１フォーマットによる書込み説明図
【図１２】４ワードパケット受信時に緩衝ＲＡＭの第２ケースの状態で決定された第２フォーマットによる書込み説明図
【図１３】４ワードパケット受信時に緩衝ＲＡＭの第３ケースの状態で決定された第３フォーマットによる書込み説明図
【図１４】４ワードパケット受信時に緩衝ＲＡＭの第４ケースの状態で決定された第４フォーマットによる書込み説明図
【図１５】３ワードパケット受信時に緩衝ＲＡＭの第１ケースの状態で決定された第１フォーマットによる書込み説明図
【図１６】３ワードパケット受信時に緩衝ＲＡＭの第２ケースの状態で決定された第２フォーマットによる書込み説明図
【図１７】３ワードパケット受信時に緩衝ＲＡＭの第３ケースの状態で決定された第３フォーマットによる書込み説明図
【図１８】３ワードパケット受信時に緩衝ＲＡＭの第４ケースの状態で決定された第４フォーマットによる書込み説明図
【図１９】２ワードパケット受信時に緩衝ＲＡＭの第１ケース又は第５ケースの状態で決定された第１フォーマットによる書込み説明図
【図２０】２ワードパケット受信時に緩衝ＲＡＭの第２ケース又は第６ケースの状態で決定された第２フォーマットによる書込み説明図
【図２１】２ワードパケット受信時に緩衝ＲＡＭの第３ケース又は第７ケースの状態で決定された第３フォーマットによる書込み説明図
【図２２】２ワードパケット受信時に緩衝ＲＡＭの第４ケース又は第８ケースの状態で決定された第４フォーマットによる書込み説明図
【図２３】１ワードパケット受信時に緩衝ＲＡＭの第１ケース又は第５ケースの状態で決定された第１フォーマットによる書込み説明図
【図２４】１ワードパケット受信時に緩衝ＲＡＭの第２ケース又は第６ケースの状態で決定された第２フォーマットによる書込み説明図
【図２５】１ワードパケット受信時に緩衝ＲＡＭの第３ケース又は第７ケースの状態で決定された第３フォーマットによる書込み説明図
【図２６】１ワードパケット受信時に緩衝ＲＡＭの第４ケース又は第８ケースの状態で決定された第４フォーマットによる書込み説明図
【図２７】４ワードパケットに続いて２ワードパケットを受信した際の第１ケースの状態にある緩衝ＲＡＭへの書込みとその後のパケット収納ＲＡＭへの書込み動作明図
【図２８】４ワードパケットに続いて２ワードパケットを受信した際の第２ケースの状態にある緩衝ＲＡＭへの書込みとその後のパケット収納ＲＡＭへの書込み動作明図
【図２９】図３の実施形態によるデータキュー制御処理のフローチャート
【図３０】受信パケットをサブブロックに分けてパケット格納ＲＡＭに囲む従来装置の説明図
【図３１】従来のデータキュー制御回路の説明図
【図３２】緩衝ＲＡＭを配置した従来のデータキュー制御処理説明図
【符号の説明】
【０１２６】
１０：システムボート
１１：データキュー制御回路
１２：システムコントローラ
１４−１〜１４−４：ＣＰＵ
１６−１〜１６−３、２６−１〜２６−３：パケットバス
１８−１、１８−２：メモリコントローラ
２０：Ｉ／Ｏコントローラ
２２−１、２２−２：デュアルインラインメモリモジュール
２４：Ｉ／Ｏバス
２５−１〜２５−６：パケット
２８、２８−１〜２８−６：インターフェースラッチ（ＩＦラッチ）
３０、３０−１〜３０−６：パケット制御回路
３２、３２−１〜３２−６：フォーマット決定回路
３４：緩衝キュー
３４−１〜３４−４：緩衝ＲＡＭ
３６、３６−１〜３６−４：調停回路
３８：パケット格納キュー
３８−１〜３８−４：パケット格納ＲＡＭ
４０：フォーマット情報格納部
４２：パケット読出回路
４４：制御部
４６−１：１ワードパケット
５４：２ワードパケット
４６−３：３ワードパケット
５２：４ワードパケット
４８：フォーマット決定テーブル
５０−１：１ワード用フォーマットテーブル
５０−２：２ワード用フォーマットテーブル
５０−３：３ワード用フォーマットテーブル
５０−４：４ワード用フォーマットテーブル
５６、５８、６０：フォーマット情報
【図１】
2006119962.tif 000003
【図２】
2006119962.tif 000004
【図３】
2006119962.tif 000005
【図４】
2006119962.tif 000006
【図５】
2006119962.tif 000007
【図６】
2006119962.tif 000008
【図７】
2006119962.tif 000009
【図８】
2006119962.tif 000010
【図９】
2006119962.tif 000011
【図１０】
2006119962.tif 000012
【図２９】
2006119962.tif 000013
【図３０】
2006119962.tif 000014
【図３１】
2006119962.tif 000015
【図３２】
2006119962.tif 000016
【図１１】
2006119962.tif 000017
【図１２】
2006119962.tif 000018
【図１３】
2006119962.tif 000019
【図１４】
2006119962.tif 000020
【図１５】
2006119962.tif 000021
【図１６】
2006119962.tif 000022
【図１７】
2006119962.tif 000023
【図１８】
2006119962.tif 000024
【図１９】
2006119962.tif 000025
【図２０】
2006119962.tif 000026
【図２１】
2006119962.tif 000027
【図２２】
2006119962.tif 000028
【図２３】
2006119962.tif 000029
【図２４】
2006119962.tif 000030
【図２５】
2006119962.tif 000031
【図２６】
2006119962.tif 000032
【図２７】
2006119962.tif 000033
【図２８】
2006119962.tif 000034