(57)【要約】    【課題】入力キュー部を経由したパケット転送のスループットをパケットワードレベルで向上させる。    【解決手段】  外部クロック周波数に対し内部クロック周波数を１／２に設定すると共に外部バス幅に対し内部バス幅を２倍に構成する。書込制御部７４はバイパス部５２とスワップ回路部６４を制御し、複数のパケットを受信した場合、各受信パケットのヘッダＨが偶数キュー６０と奇数キュー６２の各パケット格納区画に交互に配置されるようにパケットワードを書込む。読出制御部７６は偶数キュー６０と奇数キュー６２から２ワード単位にパケットワードを並列的に読み出す。    【選択図】        図１
2006262243.tif 000002
【特許請求の範囲】
【請求項１】
複数のモジュール間で相互にパケットを転送する外部クロック周波数に対し内部クロック周波数を１／２に設定すると共に外部バス幅に対し内部バス幅を２倍に構成し、受信パケットを宛先別に分けて格納した後に読み出すクロスバー装置に於いて、
前記外部クロックに同期してワード単位に転送されたパケットを受信すると共に前記パケットのヘッダを含む複数のパケットワードを前記外部クロックの偶数受信タイミングと奇数受信タイミングに分けて前記内部クロックに同期して並列出力するパケット受信部と、
前記パケット受信部から出力された偶数受信タイミングのパケットワードをラッチする偶数ラッチ部と、
前記パケット受信部から出力された奇数受信タイミングのパケットワードをラッチする奇数ラッチ部と、
前記偶数ラッチ部から出力された偶数受信タイミングのパケットワードをパケット単位に書込む複数段のパケット格納区画を複数段備えた宛先毎の偶数キューと、
前記奇数ラッチ部から出力された奇数受信タイミングのパケットワードをパケット単位に書込む複数段のパケット格納区画を備えた宛先毎の奇数キューと、
前記偶数ラッチ部をバイパスするバイパス部と、
前記偶数ラッチ部及びバイパス部の出力を前記奇数キュー部にスワップすると共に、前記奇数ラッチ部の出力を前記偶数キュー部にスワップするスワップ回路部と、
複数のパケットを連続して受信した場合、各受信パケットのヘッダが前記偶数キューと前記奇数キューの各パケット格納区画に交互に配置されるようにパケットワードを書込む書込制御部と、
前記偶数キューと前記奇数キューから２ワード単位にパケットワードを並列的に読み出す読出制御部と、
を備えたことを特徴とするクロスバー装置。
【請求項２】
請求項１記載のクロスバー装置に於いて、前記書込制御部は、複数のパケットを間欠的又は連続して受信した場合、奇数番目の受信パケットのヘッダを前記偶数キューの奇数段のパケット格納区画に順次配置し、且つ偶数番目の受信パケットのヘッダを前記奇数キューの偶数段のパケット格納区画に順次配置するようにパケットワードを書き込むことを特徴とするクロスバー装置。
【請求項３】
請求項１記載のクロスバー装置に於いて、前記書込制御部は、宛先の異なるパケットを間欠的又は連続的に受信した際に、
前記受信パケットのヘッダが偶数受信タイミングであり、前記偶数キューと奇数キューのパケット格納区画が奇数段の場合、前記偶数ラッチ部でラッチした偶数受信タイミングのヘッダを含むパケットワードを前記偶数キューにおける奇数段のパケット格納区画に書込むと共に、前記奇数ラッチ部でラッチした奇数受信タイミングのパケットワードを前記奇数キューにおける奇数段のパケット格納区画に書込み、
前記受信パケットのヘッダが偶数受信タイミングであり、前記偶数キューと奇数キューのパケット格納区画が偶数段の場合、前記偶数ラッチ部でラッチした偶数受信タイミングのヘッダを含むパケットワードをスワップして前記奇数キューにおける偶数段のパケット格納区画に書込むと共に、前記奇数ラッチ部でラッチした奇数受信タイミングのパケットワードをスワップして前記偶数キューにおける偶数段のパケット格納区画に書込むことを特徴とするクロスバー装置。
【請求項４】
請求項１記載のクロスバー装置に於いて、前記書込制御部は、宛先の異なるパケットを間欠的又は連続的に受信した際に、
前記受信パケットのヘッダが奇数受信タイミングで前記偶数キューと奇数キューのパケット格納区画が奇数段の場合、前記奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードをスワップして前記偶数キューにおける奇数段のパケット格納区画に書込むと共に、前記バイパス部によりバイパスし且つスワップして得られた偶数受信タイミングのパケットワードを前記奇数キューにおける奇数段のパケット格納区画に書込み、
前記受信パケットのヘッダが奇数受信タイミングで前記偶数キューと奇数キューのパケット格納区画が偶数段の場合、前記奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードを前記奇数キューにおける奇数段のパケット格納区画に書込むと共に、前記バイパス部でバイバスした偶数受信タイミングのパケットワードを前記偶数キューにおける偶数段のパケット格納区画に書込むことを特徴とするクロスバー装置。
【請求項５】
請求項１記載のクロスバー装置に於いて、前記書込制御部は、ヘッダが偶数受信タイミングの第１宛先パケットに続いてヘッダが奇数受信タイミングの宛先の異なる第２宛先パケットを連続して受信した際に、前記第１宛先パケットと第２宛先パケットの境界部分につき、
前記偶数ラッチ部でラッチした前記第１宛先パケットの最終パケットワードを第１宛先に対応した偶数キューに書込み、
前記奇数ラッチ部でラッチした前記第２宛先パケットのヘッダをスワップして前記第２宛先に対応した偶数キューに書込み、更に、
前記第１バイパス部から得られた前記第２宛先パケットのヘッダの次のパケットワードをスワップして前記第２宛先に対応した奇数キューに書込む３パケットワードの同時書込みを行うことを特徴とするクロスバー装置。
【請求項６】
請求項１記載のクロスバー装置に於いて、前記書込制御部は、宛先が同一のパケットを連続的に受信した際に、
前記受信パケットのヘッダが偶数受信タイミングで前記偶数キューと奇数キューのパケット格納区画が奇数段の場合、前記偶数ラッチ部でラッチした偶数受信タイミングのヘッダを含むパケットワードを前記偶数キューにおける奇数段のパケット格納区画に書込むと共に、前記奇数ラッチ部でラッチした奇数受信タイミングのパケットワードを前記奇数キューにおける奇数段のパケット区画に書込み、
前記受信パケットのヘッダが偶数受信タイミングで前記偶数キューと奇数キューのパケット格納区画が偶数段の場合、前記偶数ラッチ部でラッチした偶数受信タイミングのヘッダを含むパケットワードをスワップして前記奇数キューにおける偶数段のパケット格納区画に書込むと共に、前記奇数ラッチ部でラッチした奇数受信タイミングのパケットワードをスワップして前記偶数キューにおける偶数段のパケット格納区画に書込むことを特徴とするクロスバー装置。
【請求項７】
請求項１記載のクロスバー装置に於いて、前記書込制御部は、宛先が同一のパケットを連続的に受信した際に、
前記受信パケットのヘッダが奇数受信タイミングであり、前段パケットのヘッダが偶数受信タイミングであり、更に、前記偶数キューと奇数キューのパケット格納区画が奇数段となる場合、
前記奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードをスワップして前記偶数キューにおける奇数段のパケット格納区画に書込むと共に、前記偶数ラッチ部でラッチした偶数受信タイミングのパケットワードをスワップして前記偶数キューにおける奇数段のパケット区画に書込み、
前記受信パケットのヘッダが奇数受信タイミングであり、前段パケットのヘッダが偶数受信タイミングであり、更に、前記偶数キューと奇数キューのパケット格納区画が偶数段となる場合、
前記奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードを前記奇数キューにおける偶数段のパケット格納区画に書込むと共に、前記偶数ラッチ部でラッチした偶数受信タイミングのパケットワードを前記偶数キューにおける偶数段のパケット格納区画に書込むことを特徴とするクロスバー装置。
【請求項８】
請求項１記載のクロスバー装置に於いて、前記書込制御部は、宛先が同一のパケットを連続的に受信した際に、
前記受信パケットのヘッダが奇数受信タイミングであり、前段パケットのヘッダが奇数受信タイミングであり、更に、前記偶数キューと奇数キューのパケット格納区画が奇数段となる場合、
前記奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードをスワップして前記偶数キューにおける奇数段のパケット格納区画に書込むと共に、前記偶数ラッチ部でラッチした偶数受信タイミングのパケットワードを前記バイパス部でバイパスし且つスワップして前記奇数キューにおける奇数段のパケット区画に書込み、
前記受信パケットのヘッダが奇数受信タイミングであり、前段パケットのヘッダが偶数受信タイミングであり、更に、前記偶数キューと奇数キューのパケット格納区画が偶数段となる場合、
前記奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードを前記奇数キューにおける偶数段のパケット格納区画に書込むと共に、前記偶数ラッチ部でラッチした偶数受信タイミングのパケットワードを前記偶数キューにおける偶数段のパケット格納区画に書込むことを特徴とするクロスバー装置。
【請求項９】
複数のモジュール間で相互にパケットを転送する外部クロック周波数に対し内部クロック周波数を１／２に設定すると共に外部バス幅に対し内部バス幅を２倍に構成し、受信パケットを宛先別に分けて格納した後に読み出すクロスバー装置の制御方法に於いて、
前記外部クロックに同期してワード単位に転送されたパケットを受信すると共に前記パケットのヘッダを含む複数のパケットワードを前記外部クロックの偶数受信タイミングと奇数受信タイミングに分けて前記内部クロックに同期して並列出力するパケット受信ステップと、
前記パケット受信ステップから出力された偶数受信タイミングのパケットワードを偶数ラッチ部にラッチする偶数ラッチステップと、
前記パケット受信ステップから出力された奇数受信タイミングのパケットワードを奇数ラッチ部にラッチする奇数ラッチステップと、
前記偶数ラッチ部から出力された偶数受信タイミングのパケットワードを、複数段のパケット格納区画を備えた宛先毎の偶数キューにパケット単位に書込む偶数キューステップと、
前記奇数ラッチ部から出力された奇数受信タイミングのパケットワードを、複数段のパケット格納区画を備えた宛先毎の奇数キューにパケット単位に書込む奇数キューステップと、
前記偶数ラッチ部をバイパスするバイパスステップと、
前記偶数ラッチ部及びバイパス部の出力を前記奇数キューにスワップすると共に、前記奇数ラッチ部の出力を前記偶数キューにスワップするスワップステップと、
複数のパケットを連続して受信した場合、各受信パケットのヘッダが前記偶数キューと前記奇数キューの各パケット格納区画に交互に配置されるようにパケットワードを書込む書込制御ステップと、
前記偶数キューと前記奇数キューから２ワード単位にパケットワードを並列的に読み出す読出制御ステップと、
を備えたことを特徴とするクロスバー装置の制御方法。
【請求項１０】
複数のモジュール間で相互にパケットを転送する外部クロック周波数に対し内部クロック周波数を１／２に設定すると共に外部バス幅に対し内部バス幅を２倍に構成し、受信パケットを宛先別に分けて格納した後に読み出すクロスバー装置のコンピュータに、
前記外部クロックに同期してワード単位に転送されたパケットを受信すると共に前記パケットのヘッダを含む複数のパケットワードを前記外部クロックの偶数受信タイミングと奇数受信タイミングに分けて前記内部クロックに同期して並列出力するパケット受信ステップと、
前記パケット受信ステップから出力された偶数受信タイミングのパケットワードを偶数ラッチ部にラッチする偶数ラッチステップと、
前記パケット受信ステップから出力された奇数受信タイミングのパケットワードを奇数ラッチ部にラッチする奇数ラッチステップと、
前記偶数ラッチ部から出力された偶数受信タイミングのパケットワードを、複数段のパケット格納区画を備えた宛先毎の偶数キューにパケット単位に書込む偶数キューステップと、
前記奇数ラッチ部から出力された奇数受信タイミングのパケットワードを、複数段のパケット格納区画を備えた宛先毎の奇数キューにパケット単位に書込む奇数キューステップと、
前記偶数ラッチ部をバイパスするバイパスステップと、
前記偶数ラッチ部及びバイパス部の出力を前記奇数キューにスワップすると共に、前記奇数ラッチ部の出力を前記偶数キューにスワップするスワップステップと、
複数のパケットを連続して受信した場合、各受信パケットのヘッダが前記偶数キューと前記奇数キューの各パケット格納区画に交互に配置されるようにパケットワードを書込む書込制御ステップと、
前記偶数キューと前記奇数キューから２ワード単位にパケットワードを並列的に読み出す読出制御ステップと、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＭＰＵやサブシステムなどの複数のＬＳＩモジュール間でデータをパケットにより相互に転送するクロスバー装置、制御方法及びプログラムに関し、特に、クロスバー内部の入力キューに書込むデータパケットのスループットを向上させるクロスバー装置、制御方法及びプログラムに関する。
【背景技術】
【０００２】
従来、クロスバー装置は異なるＬＳＩモジュール間でのデータパケットを中継するための機能をもっている。このようなクロスバー装置にあっては、ＬＳＩモジュールから転送されたパケットを格納する入力キューを内部に備えており、入力キューに宛先別に分けて受信パケットを書込んだ後に、転送先毎に設けた出力キューに入力キューから読み出したパケットを振り分け選択し、出力キューから宛先のＬＳＩモジュールにパケットを送信するようにしている。
【０００３】
図１８は従来のクロスバー装置に設けられた入力キュー部のブロック図である。図１８において、送信元のＬＳＩモジュールから外部クロックにより外部バスを介して転送されたデータパケットは、図示しないパケット受信部で受信される。ここでＬＳＩモジュール間で相互にパケットを転送する外部クロック周波数に対しクロスバー装置の内部クロック周波数を１／２に設定し、また外部バス幅に対し内部バス幅を２倍に構成している。例えば外部バス幅が３６ビットであると、並列内部バスを使用することで、内部バス幅は７２ビットとなる。また転送パケットはヘッダと複数ワードで構成され、奇数ワード長としている。
【０００４】
外部バスからパケットを受信したパケット受信部は、外部クロックによる偶数受信タイミングと奇数受信タイミングとに分けて受信パケットのヘッダとこれに続くワードを内部バスに並列的に出力し、偶数受信タイミングのヘッダ及びワードは偶数ラッチ部２００に入力し、奇数受信タイミングのヘッダ及びワードは奇数ラッチ部２０２に入力する。
【０００５】
偶数ラッチ部２００は入力パスをヘッダ部通過パス２０４とデータ部通過パス２０６に分岐し、ヘッダ部通過パス２０４にヘッダＥＣＣ検出修正部２０８とヘッダラッチ２１０を設け、データ部通過パス２０６にはデータラッチ２１２を設け、セレクタ２１６からパス２１５により入力キュー部２３０に入力している。
【０００６】
奇数ラッチ部２０２は、同様に、入力パスをヘッダ部通過パス２１７とデータ部通過パス２１８に分岐し、ヘッダ部通過パス２１７にヘッダＥＣＣ検出訂正部２２０とヘッダラッチ２２２を設け、データ部通過パス２１８にはデータラッチ２２４を設け、セレクタ２２６からパス２２５により入力キュー部２３０に入力している。
【０００７】
ヘッダＥＣＣ検出訂正部２０８，２２０では、パケットのヘッダの誤りを検出して訂正し、ヘッダラッチ２１０，２２２に保持した後に入力キュー部２３０に書込む。同時にヘッダＥＣＣ検出訂正部２０８，２２０はヘッダの有効性を検出すると、ヘッダに含まれるデータ長の情報をもとに、データ部通過パス２０６，２１８を通してデータ長分のパケットワードを選択して入力キュー部２３０に送る。
【０００８】
入力キュー部２３０には偶数入力キュー部２３２と奇数キュー部２３４が設けられる。偶数入力キュー部２３２には、宛先の重なる割合を減らしてスループットを改善するために、４つに分割した転送宛先グループ毎にＦＩＦＯバッファを用いた第１偶数キュー２３６−１、第２偶数キュー２３６−２、第３偶数キュー２３６−３、第４偶数キュー２３６−４を設けている。同様に、奇数入力キュー部２３４にも４つに分割した転送宛先グループ毎に、同様に、第１奇数キュー２３８−１、第２奇数キュー２３８−２、第３奇数キュー２３８−３、第４奇数キュー２３８−４が設けられる。
【０００９】
ここで入力キュー部２３０を転送宛先毎に見ると、例えば第１転送先グループを例にとると、受信パケットのヘッダ及びこれに続くパケットワードの受信タイミングが、外部クロック周波数の偶数受信タイミングである場合に書き込む第１偶数キュー２３６−１と奇数受信タイミングである場合に書き込む第１奇数キュー２３８−１の２つのキューで構成している。
【００１０】
同様に、第２転送宛先グループは第２偶数キュー２３６−２と第２奇数キュー２３８−２の２つのキューで構成し、第３転送宛先グループは第３偶数キュー２３６−３と第３奇数キュー２３８−３の２つのキューで構成し、更に、第４転送宛先グループは第４偶数キュー２３６−４と第４奇数キュー２３８−４の２つのキューで構成している。
【００１１】
更に入力キュー部２３０に設けた各キュー２３６−１〜２３６−４，２３８−１〜２３８−４は、１クロックでライトとリードのできるレジスタファイルを使用し、最大８つのパケットを格納できるように８段のパケット格納区画からなる構造をとっている。
【００１２】
図１９はヘッダが外部クロックの偶数受信タイミングとなるパケットのラッチタイミングと入力キュー部への書込みを図１９の第１宛先転送グループの偶数ラッチ部２００、奇数ラッチ部２０２、第１偶数キュー２３６−１、第１奇数キュー２３８−１について示している。なお、偶数ラッチ部２００と奇数ラッチ部２０２はヘッダラッチとデータラッチを備えるが、説明を簡単にするため、１つのラッチで示している。
【００１３】
図１９において、外部クロックに同期してヘッダＨとデータワードＤ０〜Ｄ７を備えた９ワード長のパケットを受信したとする。ここでヘッダＨ、ワードＤ１，Ｄ３，Ｄ５，Ｄ７は外部クロックの偶数タイミングで受信されていることから、偶数ラッチ部２００に順次入力され、一方、ワードＤ０，Ｄ２，Ｄ４，Ｄ６は外部クロックの奇数タイミングで受信されていることから、奇数ラッチ部２０２に順次入力される。このため偶数ラッチ部２００と奇数ラッチ部２０２は、受信パケットのヘッダを含むパケットワードを２ワードずつ順次ラッチし、ラッチ毎にパス２１５，２２５を使用して第１偶数キュー２３６−１と第１奇数キュー２３８−１に対し２ワード単位に書込む。パケット最後のパケットワードＤ７は第１偶数キュー２３６−１に対する１ワードの書込みとなる。
【００１４】
図２０はヘッダが外部クロックの奇数タイミングとなる受信パケットのラッチタイミングと入力キュー部への書込みを示している。ここでヘッダＨ、ワードＤ１，Ｄ３，Ｄ５，Ｄ７は外部クロックの奇数受信タイミングで受信されていることから、奇数ラッチ部２０２に順次入力され、一方、ワードＤ０，Ｄ２，Ｄ４，Ｄ６は外部クロックの偶数タイミングで受信されていることから、偶数ラッチ部２００に順次入力される。
【００１５】
受信パケットの先頭のヘッダＨについては、奇数ラッチ部２０２にラッチされたとき偶数ラッチ部２００にはデータがないことから、ヘッダＨは第１奇数キュー２３８−１に対する１ワード書込みとなる。ヘッダＨに続くパケットワードＤ０〜Ｄ７については、偶数ラッチ部１００と奇数ラッチ部１０２に２ワードずつ順次ラッチされることから、ラッチ毎にパス２１５，２２５を使用して第１偶数キュー２３６−１と第１奇数キュー２３８−１に対し２ワード単位に書込む。
【特許文献１】特開平９−８１５０８号公報
【特許文献２】特許第２９１２３４０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
しかしながら、このような従来の入力キュー部に対する受信パケットの書込みにあっては、同一宛先への奇数ワード長のパケットが連続する場合に、キューへの書き込みタイミングにより入力キュー部からパケットを読み出し転送する際に、パケット間に隙間が空いてしまう場合があり、スループットが低下する問題がある。
【００１７】
図２１は同一宛先に対する５ワード長のパケットが外部クロックの偶数タイミングで連続して受信されたときの第１偶数キュー２３６−１と第１奇数キュー２３８−１に対する書込み状態である。最初の受信パケットについては、ヘッダＨ及びパケットワードＤ１，Ｄ３は外部クロックの偶数タイミングで受信されていることから、第１偶数キュー２３６−１に書き込まれ、パケットワードＤ０，Ｄ２は外部クロックの奇数タイミングで受信されていることから、第１奇数キュー２３８−１に書き込まれている。次の受信パケットについても同様である。
【００１８】
このように外部クロックの偶数タイミングで連続して受信したパケットを格納した入力キュー部からパケットを読み出す場合、リードポインタＰ１〜Ｐ３を設定して読み出す。この場合、リードポインタＰ１，Ｐ２については２ワードの並列読出しとなるが、最後のパケットデータＤ３についてはリードポインタＰ３による１ワード読出しとなり、パケットを連続して読み出した場合のリードパケット２４０のパケット間にデータが存在しない空き２４２が発生、スループットが低下する。
【００１９】
図２２は、外部クロックの奇数タイミングで連続して受信した同一宛先のパケットを格納した入力キュー部からパケットを読み出した場合であり、リードポインタＰ１〜Ｐ３を設定して読み出すが、ポインタリードＰ１によるヘッダＨの読出しが１ワード読出しとなり、パケットを連続して読み出した場合のリードパケット２４４のパケット間にデータが存在しない空き２４６が発生し、スループットが低下する。
【００２０】
本発明は、入力キュー部を経由したパケット転送のスループットをパケットワードレべルで向上させるクロスバー装置、制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００２１】
図１は本発明の原理説明である。本発明はクロスバー装置を提供する。
【００２２】
本発明は、複数のモジュール間で相互にパケットを転送する外部クロック周波数に対し内部クロック周波数を１／２に設定すると共に外部バス幅に対し内部バス幅を２倍に構成し、受信パケットを宛先別に分けて格納した後に読み出すクロスバー装置に於いて、
外部クロックに同期してワード単位で転送されたパケットを受信すると共にパケットのヘッダを含む複数のパケットワードを外部クロックの偶数受信タイミングと奇数受信タイミングに分けて内部クロックに同期して並列出力するパケット受信部と、
パケット受信部から出力された偶数受信タイミングのパケットワードをラッチする偶数ラッチ部と、
パケット受信部から出力された奇数受信タイミングのパケットワードをラッチする奇数ラッチ部と、
偶数ラッチ部から出力された偶数受信タイミングのパケットワードをパケット単位に書込む複数段のパケット格納区画を複数段備えた宛先毎の偶数キューと、
奇数ラッチ部から出力された奇数受信タイミングのパケットワードをパケット単位に書込む複数段のパケット格納区画を備えた宛先毎の奇数キューと、
偶数ラッチ部をバイパスするバイパス部と、
偶数ラッチ部及びバイパス部の出力を奇数キュー部にスワップすると共に、奇数ラッチ部の出力を偶数キュー部にスワップするスワップ回路部と、
複数のパケットを連続して受信した場合、各受信パケットのヘッダが偶数キューと奇数キューの各パケット格納区画に交互に配置されるようにパケットワードを書込む書込制御部と、
偶数キューと前記奇数キューから２ワード単位にパケットワードを並列的に読み出す読出制御部と、
を備えたことを特徴とする。
【００２３】
ここで、間欠的に受信するパケットのヘッダ受信タイミング、及び連続的に受信する先頭パケットのヘッダ受信タイミングを外部クロックの偶数受信タイミングとする。
【００２４】
書込制御部は、複数のパケットを間欠的又は連続して受信した場合、奇数番目の受信パケットのヘッダを偶数キューの奇数段のパケット格納区画に順次配置し、且つ偶数番目の受信パケットのヘッダを奇数キューの偶数段のパケット格納区画に順次配置するようにパケットワードを書き込む。
【００２５】
偶数キュー及び前記奇数キューとして８段構成のパケット格納区画を備えた場合、書込制御部は、１番目、３番目、５番目及び７番目の受信パケットのヘッダを偶数キューの１段目、３段目、５段目及び７段目のパケット格納区画に順次配置し、且つ２番目、４番目、６番目及び８番目の受信パケットのヘッダを奇数キューの２段目、４段目、６段目及び８段目のパケット格納区画に順次配置するようにパケットワードを書き込む。
【００２６】
書込制御部は、宛先の異なるパケットを間欠的又は連続的に受信した際に次のように処理する。
【００２７】
（ケース１）
受信パケットのヘッダが偶数受信タイミングであり、偶数キューと奇数キューのパケット格納区画が奇数段の場合、偶数ラッチ部でラッチした偶数受信タイミングのヘッダを含むパケットワードを偶数キューにおける奇数段のパケット格納区画に書込むと共に、奇数ラッチ部でラッチした奇数受信タイミングのパケットワードを奇数キューにおける奇数段のパケット格納区画に書込む。
【００２８】
（ケース２）
受信パケットのヘッダが偶数受信タイミングであり、偶数キューと奇数キューのパケット格納区画が偶数段の場合、前記偶数ラッチ部でラッチした偶数受信タイミングのヘッダを含むパケットワードをスワップして前記奇数キューにおける偶数段のパケット格納区画に書込むと共に、前記奇数ラッチ部でラッチした奇数受信タイミングのパケットワードをスワップして前記偶数キューにおける偶数段のパケット格納区画に書込む。
【００２９】
書込制御部は、宛先の異なるパケットを間欠的又は連続的に受信した際に、次のように処理する。
【００３０】
（ケース３）
受信パケットのヘッダが奇数受信タイミングで偶数キューと奇数キューのパケット格納区画が奇数段の場合、奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードをスワップして偶数キューにおける奇数段のパケット格納区画に書込むと共に、バイパス部によりバイパスし且つスワップして得られた偶数受信タイミングのパケットワードを奇数キューにおける奇数段のパケット格納区画に書込む。
【００３１】
（ケース４）  
受信パケットのヘッダが奇数受信タイミングで偶数キューと奇数キューのパケット格納区画が偶数段の場合、奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードを奇数キューにおける奇数段のパケット格納区画に書込むと共に、バイパス部でバイバスした偶数受信タイミングのパケットワードを偶数キューにおける偶数段のパケット格納区画に書込む。
【００３２】
（３ワード同時書込み）
書込制御部は、ヘッダが偶数受信タイミングの第１宛先パケットに続いてヘッダが奇数受信タイミングの宛先の異なる第２宛先パケットを連続して受信した際に、第１宛先パケットと第２宛先パケットの境界部分につき、
（１）偶数ラッチ部でラッチした第１宛先パケットの最終パケットワードを第１宛先に対応した偶数キューに書込み、
（２）奇数ラッチ部でラッチした第２宛先パケットのヘッダをスワップして第２宛先に対応した偶数キューに書込み、更に、
（３）第１バイパス部から得られた前記第２宛先パケットのヘッダの次のパケットワードをスワップして第２宛先に対応した奇数キューに書込む、
という３パケットワードの同時書込みを行う。
【００３３】
書込制御部は、宛先が同一のパケットを連続的に受信した際に、次のように処理する。
【００３４】
（ケース５）
受信パケットのヘッダが偶数受信タイミングで偶数キューと奇数キューのパケット格納区画が奇数段の場合、偶数ラッチ部でラッチした偶数受信タイミングのヘッダを含むパケットワードを偶数キューにおける奇数段のパケット格納区画に書込むと共に、奇数ラッチ部でラッチした奇数受信タイミングのパケットワードを奇数キューにおける奇数段のパケット区画に書込む。
【００３５】
（ケース６）
受信パケットのヘッダが偶数受信タイミングで偶数キューと奇数キューのパケット格納区画が偶数段の場合、偶数ラッチ部でラッチした偶数受信タイミングのヘッダを含むパケットワードをスワップして奇数キューにおける偶数段のパケット格納区画に書込むと共に、奇数ラッチ部でラッチした奇数受信タイミングのパケットワードをスワップして偶数キューにおける偶数段のパケット格納区画に書込む。
【００３６】
書込制御部は、宛先が同一のパケットを連続的に受信した際に、受信パケットのヘッダが奇数受信タイミングの場合であり、更に、前段パケットのヘッダが偶数受信タイミングの場合、次のように処理する。
【００３７】
（ケース７）
偶数キューと奇数キューのパケット格納区画が奇数段となる場合、奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードをスワップして偶数キューにおける奇数段のパケット格納区画に書込むと共に、偶数ラッチ部でラッチした偶数受信タイミングのパケットワードをスワップして前記偶数キューにおける奇数段のパケット区画に書込む。
【００３８】
（ケース８）
偶数キューと奇数キューのパケット格納区画が偶数段となる場合、奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードを奇数キューにおける偶数段のパケット格納区画に書込むと共に、偶数ラッチ部でラッチした偶数受信タイミングのパケットワードを偶数キューにおける偶数段のパケット格納区画に書込む。
【００３９】
書込制御部は、宛先が同一のパケットを連続的に受信した際に、受信パケットのヘッダが奇数受信タイミングであり、更に前段パケットのヘッダが奇数受信タイミングの場合、次のように処理する。
【００４０】
（ケース９）
偶数キューと奇数キューのパケット格納区画が奇数段となる場合、奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードをスワップして偶数キューにおける奇数段のパケット格納区画に書込むと共に、偶数ラッチ部でラッチした偶数受信タイミングのパケットワードをバイパス部でバイパスし且つスワップして奇数キューにおける奇数段のパケット区画に書込む。
【００４１】
（ケース１０）
偶数キューと奇数キューのパケット格納区画が偶数段となる場合、奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードを奇数キューにおける偶数段のパケット格納区画に書込むと共に、偶数ラッチ部でラッチした偶数受信タイミングのパケットワードを偶数キューにおける偶数段のパケット格納区画に書込む。
【００４２】
書込制御部は、
偶数ラッチ部と奇数ラッチ部にヘッダを含むパケットワードが２ワードラッチされたタイミング、
偶数ラッチ部と奇数ラッチ部にヘッダを含むパケットワードが２ワードラッチされ且つスワップされたタイミング、又は
奇数ラッチ部にヘッダを含むパケットワードがラッチされ且つバイパス部からバイパスされたパケットワードが出力されたタイミング、
のいずれかで偶数キューと奇数キューに２ワードのパケットワードを並列的に書込む。
【００４３】
読出制御部は、
偶数キューと奇数キューの奇数段のパケット格納区画から２ワード単位にパケットワードを並列的に読出し、
次の偶数段のパケット収納区画の境界部分では、先行する奇数段のパケット格納区画の最終ワードと後続する偶数段のパケット格納区画のヘッダとの２ワードを並列的に読出し、
ヘッダを読み出した後の偶数段のパケット収納区画の残りパケットワードについては、偶数キューと前記奇数キューにおける偶数段のパケット格納区画の１ワードずれた位置から２ワード単位をパケットワードを並列的に読み出し、以後これを繰り返す。
【００４４】
（方法）
本発明は、クロスバー装置の制御方法を提供する。本発明は、複数のモジュール間で相互にパケットを転送する外部クロック周波数に対し内部クロック周波数を１／２に設定すると共に外部バス幅に対し内部バス幅を２倍に構成し、受信パケットを宛先別に分けて格納した後に読み出すクロスバー装置の制御方法に於いて、
外部クロックに同期してワード単位に転送されたパケットを受信すると共にパケットのヘッダを含む複数のパケットワードを外部クロックの偶数受信タイミングと奇数受信タイミングに分けて内部クロックに同期して並列出力するパケット受信ステップと、
パケット受信ステップから出力された偶数受信タイミングのパケットワードを偶数数ラッチ部にラッチする偶数ラッチステップと、
パケット受信ステップから出力された奇数受信タイミングのパケットワードを奇数ラッチ部にラッチする奇数ラッチステップと、
偶数ラッチ部から出力された偶数受信タイミングのパケットワードを、複数段のパケット格納区画を備えた宛先毎の偶数キューにパケット単位に書込む偶数キューステップと、
奇数ラッチ部から出力された奇数受信タイミングのパケットワードを、複数段のパケット格納区画を備えた宛先毎の奇数キューにパケット単位に書込む奇数キューステップと、
偶数ラッチ部をバイパスするバイパスステップと、
偶数ラッチ部及びバイパス部の出力を奇数キューにスワップすると共に、奇数ラッチ部の出力を偶数キューにスワップするスワップステップと、
複数のパケットを連続して受信した場合、各受信パケットのヘッダが偶数キューと奇数キューの各パケット格納区画に交互に配置されるようにパケットワードを書込む書込制御ステップと、
偶数キューと奇数キューから２ワード単位にパケットワードを並列的に読み出す読出制御ステップと、
を備えたことを特徴とする。
【００４５】
（プログラム）
本発明は、クロスバー装置のコンピュータで実行されるプログラムを提供する。本発明のプログラムは、複数のモジュール間で相互にパケットを転送する外部クロック周波数に対し内部クロック周波数を１／２に設定すると共に外部バス幅に対し内部バス幅を２倍に構成し、受信パケットを宛先別に分けて格納した後に読み出すクロスバー装置のコンピュータに、
外部クロックに同期してワード単位に転送されたパケットを受信すると共にパケットのヘッダを含む複数のパケットワードを外部クロックの偶数受信タイミングと奇数受信タイミングに分けて内部クロックに同期して並列出力するパケット受信ステップと、
パケット受信ステップから出力された偶数受信タイミングのパケットワードを偶数ラッチ部にラッチする偶数ラッチステップと、
パケット受信ステップから出力された奇数受信タイミングのパケットワードを奇数ラッチ部にラッチする奇数ラッチステップと、
偶数ラッチ部から出力された偶数受信タイミングのパケットワードを、複数段のパケット格納区画を備えた宛先毎の偶数キューにパケット単位に書込む偶数キューステップと、
奇数ラッチ部から出力された奇数受信タイミングのパケットワードを、複数段のパケット格納区画を備えた宛先毎の奇数キューにパケット単位に書込む奇数キューステップと、
偶数ラッチ部をバイパスするバイパスステップと、
偶数ラッチ部及びバイパス部の出力を奇数キューにスワップすると共に、奇数ラッチ部の出力を偶数キューにスワップするスワップステップと、
複数のパケットを連続して受信した場合、各受信パケットのヘッダが偶数キューと奇数キューの各パケット格納区画に交互に配置されるようにパケットワードを書込む書込制御ステップと、
偶数キューと奇数キューから２ワード単位にパケットワードを並列的に読み出す読出制御ステップと、
を実行させることを特徴とする。
【００４６】
なお、本発明のクロスバー装置の制御方法及びプログラムの詳細は、本発明のクロスバー装置の場合と基本的に同じになる。
【発明の効果】
【００４７】
本発明によれば、複数の受信パケットを入力キュー部に順次格納する場合に、パケットのヘッダが偶数キューと奇数キューの各パケット格納区画に交互に配置されるようにパケットワードを書込むことで、読み出すときにタイミングが揃うようにキューにデータを書き込むことができ、読み出し時にタイミングの隙間が発生することを防ぐ。これにより奇数ワード長のパケットが連続して受信されるときの入力キューを経由したパケット転送を連続するタイミングで行ってスループットを向上させることができる。
【発明を実施するための最良の形態】
【００４８】
図２は本発明のクロスバー装置を用いる情報処理システムの説明図である。図２において、本発明のクロスバー装置１０は、この例にあってはＭＰＵや入出力サブシステムなどを構成するＬＳＩモジュール１２−１，１２−２，１２−３，１２−４との間を外部バスにより接続し、ＬＳＩモジュール１２−１〜１２−４から自己を含む他のモジュールを宛先とするデータパケット（以下、単に「パケット」という）を受信して内部の入力キュー部に格納し、続いて入力キュー部から読み出して転送先ごとに振り分けて出力キュー部に格納した後に相手先に転送する。
【００４９】
図３は本発明によるクロスバー装置の回路ブロック図である。クロスバー装置１０は入力ポート１８、振分け選択部２０及び出力ポート２２で構成される。入力ポート１８には、図２に示したＬＳＩモジュール１２−１〜１２−４からの４本の外部バス１６が出力される。また出力ポート２２からは、図２のＬＳＩモジュール１２−１〜１２−４に対する出力用の外部バス２４が接続されている。
【００５０】
入力ポート１８には、外部バス１６の接続側からパケット受信部２６、ラッチ部２８、入力キュー部３０が設けられている。クロスバー装置１０に接続した外部バス１６は、外部クロックにより各ＬＳＩモジュールからのパケットをパケットのワード単位に転送しており、外部バス１６のクロック周波数は例えば１．３ＧＨｚであり、バス幅は３６ビット（４バイト）となっている。
【００５１】
これに対しクロスバー装置１０の内部バスは内部クロックによりパケットを転送しており、内部クロックのクロック周波数は外部クロック周波数の半分の６６７ＭＨｚであり、バス幅は３６ビットバスを並列に設けることで、２倍の７２ビット（８バイト）としている。
【００５２】
パケット受信部２６は外部クロックに同期してＬＳＩモジュールからワード単位に転送されたパケットを受信すると、パケットのヘッダを含む複数のパケットワードを外部クロックの偶数受信タイミングと奇数受信タイミングに分けて、内部クロックに同期して並列的に出力する。パケット受信部２６に続いて設けたラッチ部２８は、入力キュー部３０に受信パケットのヘッダ及びこれに続くパケットワードを原則として２ワード単位で書き込むためのラッチを行う。またヘッダについてはＥＣＣ検出訂正を行う。
【００５３】
入力キュー部３０には、宛先となる４つのＬＳＩモジュール１２−１〜１２−４に対応して、第１入力キュー部３６−１、第２入力キュー部３６−２、第３入力キュー部３６−３及び第４入力キュー部３６−４が設けられている。また各入力キュー部３６−１〜３６−４は第１入力キュー部３６−１に示すように、奇数キューと偶数キューの２つのキューを備えている。
【００５４】
振分け選択部２０は、入力キュー部３０において、第１入力キュー部３６−１〜第４入力キュー部３６−４に分けて宛先ごとに格納した受信パケットを読み出し、相手先ごとに振分け選択して出力ポート２２に出力する。出力ポート２２には出力キュー部３４とパケット送信部３５が設けられている。出力キュー部３４は宛先への転送タイミングをとるためにパケットを格納した後、連続的に読み出し、パケット送信部３５で外部クロックに同期したパケットに再構成し、対応する外部バス２４から相手先のＬＳＩモジュールに対しパケットを転送する。
【００５５】
図４は本発明の実施形態となる図３の入力ポート１８に設けたラッチ部２８及び入力キュー部の詳細構成の回路ブロック図である。図４において、ラッチ部２８は偶数ラッチ部２８−１と奇数ラッチ部２８−２で構成される。また入力キュー部３０は入力偶数キュー部５８−１と入力奇数キュー部５８−２で構成される。
【００５６】
偶数ラッチ部２８−１には、入力段のラッチ３７−１に続いて、ヘッダ部通過パス４０−１、データ部通過パス４２−１、更にバイパス部５２の３つのパスに内部バスを分岐している。ヘッダ部通過パス４０−１にはヘッダＥＣＣ検出訂正部４４−１、ヘッダラッチ４６−１が設けられ、データ部通過パス４２−１にはデータラッチ４８−１が設けられている。
【００５７】
ヘッダラッチ４６−１及びデータラッチ４８−１の出力はセレクタ５０−１に入力され、セレクタ５０−１からのパスは通常パス５４として入力偶数キュー部５８−１に与えられている。バイパス部５２はヘッダラッチ４６−１及びデータラッチ４８−１をバイパスしており、これによってヘッダラッチ４６−１にヘッダがラッチされたタイミングより１つ後のタイミングのデータがバイパス部５２から出力できる。
【００５８】
同様に、データラッチ４８−１についても、パケットワードを保持した状態で、次のタイミングで得られるパケットワードをバイパス部５２より出力できるようにしている。バイパス部５２の入力キュー部３０に対するパスは、バイパスパス５５として示している。
【００５９】
一方、奇数ラッチ部２８−２は、入力段のラッチ３７−２からの内部バスをヘッダ部通過パス４０−２とデータ部通過パス４２−２の２つの内部バスに分岐し、ヘッダ部通過パス４０−２にはヘッダＥＣＣ検出訂正部４４−２とヘッダラッチ４６−２を設け、データ部通過パス４２−２にはデータラッチ４８−２を設け、それぞれセレクタ５０−２に入力し、セレクタ５０−２の出力を通常パス５６として入力奇数キュー部５８−２に接続している。この奇数ラッチ部２８−２は、バイパス部５２を設けていない点以外は偶数ラッチ部２８−１と同じ構成である。
【００６０】
入力キュー部３０に設けた入力偶数キュー部５８−１には、図２に示した宛先となるＬＳＩモジュール１２−１〜１２−４に対応して、第１偶数キュー６０−１、第２偶数キュー６０−２、第３偶数キュー６０−３、第４偶数キュー６０−４が設けられ、偶数ラッチ部２８−１からの通常パス５４を並列的に入力している。
【００６１】
一方、入力奇数キュー部５８−２も、図２のＬＳＩモジュール１２−１〜１２−４に対応して、第１奇数キュー６２−１、第２奇数キュー６２−２、第３奇数キュー６２−３及び第４奇数キュー６２−４を設けており、奇数ラッチ部２８−２からの通常パス５６を並列的に入力している。
【００６２】
更に入力キュー部３０にはスワップ回路部６４が設けられる。スワップ回路部６４は、入力偶数キュー部５８−１側に設けたセレクタ６６−１〜６６−４、セレクタ６８−１〜６８−４、及び入力奇数キュー部５８−２側に設けたセレクタ７０−１〜７０−４と、これらに対する入出力側のパス接続で構成される。
【００６３】
即ち、偶数ラッチ部２８−１からの通常パス５４は、セレクタ６６−１〜６６−４を介してセレクタ６８−１〜６８−４にそれぞれ並列的に入力すると共に、入力奇数キュー部５８−２側に分岐してセレクタ７０−１〜７０−４に入力している。
【００６４】
また奇数ラッチ部２８−２からの通常パス５６についても、入力奇数キュー部５８−２のセレクタ７０−１〜７０−４に入力すると同時に、入力偶数キュー部５８−１側に分岐した後にセレクタ６８−１〜６８−４に入力している。これによって、通常パス５４からのパケットを本来の入力偶数キュー部５８−１に格納する以外に、スワップ回路部６４によるスワップ動作（交換動作）で入力奇数キュー部５８−２側に切り替えて格納することができる。この点は奇数ラッチ部２８−２からの通常パス５６についても同様である。
【００６５】
更に、偶数ラッチ部２８−１に設けたバイパス部５２からのバイパスパス５５についても、セレクタ６６−１〜６６−４に入力することで、入力偶数キュー部５８−１側への格納以外に入力奇数キュー部５８−２側にスワップして格納することが可能である。
【００６６】
ここで第１偶数キュー６０−１〜第４偶数キュー６０−４、及び第１奇数キュー６２−１〜第４奇数キュー６２−４のそれぞれは、先入れ後出しとなるＦＩＦＯバッファで構成されており、８つのパケットを格納可能な８段のパケット収納区画を備えている。各パケット収納区画内に対する書込みと読出しは、パケットを構成するヘッダ及びパケットワードのワード単位で行われ、ワード単位の書込み読出しは内部クロックの１クロックで書込み及び読出しができる１リード及び１ライトのレジスタファイルである。
【００６７】
更に、ラッチ部２８及び入力キュー部３０に対しては制御部７２が設けられており、制御部７２には入力キュー部３０に対する書込制御部７４と読出制御部７６を設けている。書込制御部７４は、複数のパケットを受信した際に各受信パケットのヘッダが、偶数キューと奇数キューの各パケット格納区画に交互に配置されるように、ワード単位の書込みを実行する。
【００６８】
このため本発明にあっては、連続的または間欠的に受信するパケットにつき、先頭パケットのヘッダは必ず外部クロックの偶数受信タイミングとなり、したがって先頭パケットのヘッダは入力偶数キュー部５８−１側の対応する偶数キューに格納される。そして２番目以降のパケットのヘッダについては、先頭が偶数キューであることから、次のパケットは奇数キュー、次は偶数キュー、次は奇数キューというように、交互に格納される。
【００６９】
このため第１偶数キュー６０−１〜第４偶数キュー６０−４に示すように、８段のパケット格納区画につき奇数段目となる１段目、３段目、５段目、７段目にヘッダＨが配置される。これに対し第１奇数キュー６２−１〜第４奇数キュー６２−４については、８段のパケット格納区画のうちの偶数段目となる２段目、４段目、６段目、８段目にヘッダＨが配置される。したがって、同じ宛先に対応した例えば第１偶数キュー６０−１と第１奇数キュー６２−１について見ると、１段目から８段目の格納区画につき、ヘッダＨは偶数キュー側から始まり、奇数キューとの間で交互に格納されることになる。
【００７０】
このような同じ宛先に対応した偶数キューと奇数キューに対する受信パケットのヘッダの交互の書込みは、偶数キュー及び奇数キューから連続してパケットを読み出す際にパケットの間に空きタイミングを生ずることなく、２ワード単位の連続的な読出しを可能とする書込みを実現している。
【００７１】
制御部７０に設けた読出制御部７６は、同じ宛先に対応した偶数キューと奇数キューから２ワード単位にパケットワードを並列的に読み出す。この並列読出しは、書込制御部７４による書込みの際に、偶数キューと奇数キューに対し偶数キュー側を先頭に交互にヘッダが配置されるように書き込まれているためであり、偶数キューと奇数キューから並列的に連続読出しする際にパケット間に空きタイミングを生ずることがなく、連続的に２ワード読出しを行うことができる。
【００７２】
図５は本発明のクロスバー装置における外部バスと内部バスのパケット転送の説明図である。図５において、外部バス１６は、例えば外部クロック７８として１．３ＧＨｚのクロックを使用してパケットデータ８０をワード単位に転送している。この外部バス１６のバス幅は４バイト（３６ビット）であり、この例ではパケット８２−１〜８２−８の８パケットを連続して転送しており、パケット８２−１〜８２−８のそれぞれはヘッダＨと番号０〜３で示す４ワードのパケットワードＤ０〜Ｄ３から構成されている。
【００７３】
パケットデータ８０の受信タイミングは、外部クロック７８による先頭のパケット８２−１のヘッダＨの受信タイミングが必ず偶数受信タイミング８４となり、このため次のパケットワードＤ０の受信タイミングが奇数受信タイミング８６となる。このような奇数ワード長のパケットが連続して受信された場合、２番目のパケット８２−２のヘッダＨは奇数受信タイミング８６、３番目のパケット８２−３のヘッダＨは偶数受信タイミング８４と、交互に受信タイミングが変化している。
【００７４】
クロスバー装置の内部バス３８は、内部クロック８８に示すように、外部クロック７８に対し半分の周波数の６６７ＭＨｚであり、バス幅は２倍の８バイト（７２ビット）となっている。このため外部バス１６から転送されたパケット８２−１〜８２−８は、内部バス３８にあっては２ワードで１つのバス幅となるように変換された並列パケットデータとして転送される。
【００７５】
このとき先頭のパケット８２−１のヘッダＨ及びパケットワードＤ１，Ｄ３は、外部バス１６における偶数受信タイミング８４であることから偶数側の内部バスで転送され、パケットワードＤ０，Ｄ２は奇数受信タイミング８６であることから奇数側の内部バスで転送される。なお、パケットワードの数字０〜３はパケットワードＤ０〜Ｄ３を表している。
【００７６】
図６は受信パケットを偶数キューと奇数キューに交互に書き込む本発明によるキュー書込み処理の説明図である。図６は図４の偶数ラッチ部２８−１と奇数ラッチ部２８−２に対するラッチ入力タイミング９０と、その後の偶数キュー６０と奇数キュー６２に対する書込結果を示している。ラッチ入力タイミング９０は、図５の内部バス３８に示す同じ宛先に対し連続する８個のパケット８２−１〜８２−８を受信した場合のパケットデータであり、図４における通常パス５４，５６を使用して２ワード単位に偶数キュー６０と奇数キュー６２に並列的に書き込まれる。
【００７７】
即ち、偶数キュー６０と奇数キュー６２は８段のパケット格納区画９２−１〜９２−８を備えており、ラッチ入力タイミングで先頭パケット８２−１のヘッダＨとパケットワードＤ０が図４のヘッダラッチ４６−１とデータラッチ４８−２にラッチされたタイミングで、偶数キュー６０と奇数キュー６２の１段目のパケット格納区画９２−１の先頭位置にライトポインタＰ１の指定で書き込まれる。続いて、パケット８２−１の偶数側のパケットワードＤ１と奇数側のパケットワードＤ２がライトポインタＰ２の設定で並列的に書き込まれる。
【００７８】
続いて、パケット８２−１と次のパケット８２−２のパケット境界にあっては、パケット８２−１の偶数側の最後のパケットワードＤ３と次のパケット８２−２のヘッダＨとが、ライトポインタＰ３により偶数キュー６０のパケット格納区画９２−１と奇数キュー６２の次のパケット格納区画９２−２に並列的に書き込まれる。
【００７９】
続いてパケット８２−２のパケットワードＤ０，Ｄ１の並列書込みを行った後、次のパケット８２−３とのパケット境界にあっては、パケット８２−２の最後のパケットワードＤ３と次のパケット８２−３のヘッダＨの並列書込みを行う。以下、残りのパケット８２−３〜８２−８につき、これを繰り返す。
【００８０】
この結果、８つのパケット８２−１〜８２−８を格納した偶数キュー６０と奇数キュー６２にあっては、偶数キュー６０側を先頭として奇数キュー６２との間で、パケット格納区画９２−１〜９２−８の順番にヘッダＨが交互に書き込まれた格納状態を作り出すことができる。
【００８１】
ここで本発明のパケット書込処理にあっては、図６に示したヘッダが偶数受信タイミングとなるパケットの書込みを含めて次の３通りのキュー書込パターンがある。
【００８２】
（１）パケットのヘッダが外部クロックの偶数受信タイミングとなる第１ケース。
（２）パケットのヘッダが外部クロックの奇数受信タイミングとなる場合で、その前段にパケットが存在しないか、あるいは偶数受信タイミングを持つ宛先の異なるパケットが存在する第２ケース。
（３）パケットのヘッダが外部クロックの奇数受信タイミングであり、その前段に偶数受信タイミングで宛先が同じパケットが存在する第３ケース。
【００８３】
図７（Ａ）は第１ケースであり、ヘッダの外部クロックによる受信タイミングが偶数受信タイミングの場合である。この場合、ラッチ入力タイミング９０−１について見ると、偶数受信タイミングのヘッダＨと奇数受信タイミングのパケットワードＤ０が並列的に入力されて、偶数ラッチ部２８−１と奇数ラッチ部２８−２にラッチされた後、通常パス５４，５８により偶数キュー６０と奇数キュー６２に並列的に書き込まれる。
【００８４】
なお、ヘッダについては実際には図４に示すように、ヘッダラッチ４６−１，４６−２にラッチされ、パケットワードについてはデータラッチ４８−１，４８−２にラッチされるが、説明を簡単にするため、単に偶数ラッチ部２８−１及び奇数ラッチ部２８−２として示している。また図７（Ａ）の第１ケースは単独でパケットを受信した場合であるが、連続した場合には図６に示したようになる。
【００８５】
図７（Ｂ）は第２ケースであり、ラッチ入力タイミング９０−２に示すように、ヘッダＨが外部クロックの奇数受信タイミングとなることで奇数側の内部バスにより転送されている。ここで奇数受信タイミングのパケットに対し先行するパケットがなかった場合には、ヘッダＨが奇数ラッチ部２８−２にラッチされたタイミングでバイパス部５２からのパス５５により次の偶数受信タイミングのパケットワードＤ０が得られていることから、このバイパスパス５５を使用してヘッダＨとパケットデータＤ０を偶数キュー６０と奇数キュー６２に並列的に書き込む。残りのパケットワードＤ１，Ｄ２についても同様に、パス５８とバイパスパス５５を使用して並列的に書き込み、最後のパケットワードＤ３はパス５８で書き込む。
【００８６】
更に第２ケースにあっては、ヘッダ部を奇数受信タイミングとしたパケットの前段にヘッダを偶数受信タイミングとした宛先の異なるパケットが存在した場合には、後の説明で明らかにする３つのキューに対する３ワード同時書込処理を実行する。
【００８７】
図７（Ｃ）は第３ケースであり、ラッチ入力タイミング９０−３に示すように、パケットのヘッダ部が外部クロックの奇数受信タイミングの場合であり、且つその前段に偶数受信タイミングのヘッダを持つ宛先が同じパケットが存在した場合である。この場合には、ヘッダＨが奇数ラッチ部２８−２にラッチされたタイミングでは、１つ前のタイミングで前段のパケットの最後のパケットワードＤγが偶数ラッチ部２８−１に保持されていることから、通常パス５４，５８を使用して偶数キュー６０及び奇数キュー６２にパケットデータＤγとヘッダＨを並列的に書き込んだ後、残りのパケットワードＤ０，Ｄ１，Ｄ２，Ｄ３については２ワード単位に通常パス５４，５８を使用して並列的に書き込む。
【００８８】
図８は同じ宛先の受信パケットが連続した場合のキュー書込処理の説明図である。図８（Ａ）はラッチ入力タイミングであり、先頭のパケット８２−１及び２番目のパケット８２−２は宛先が同じ第１入力キュー部３６−１となっている。このような場合、先頭のパケット８２−１については、図７（Ａ）の第１ケースによる書込みが第１偶数キュー６０−１と第１奇数キュー６２−１の第１パケット格納区画９２−１１に対し行われる。
【００８９】
次の同じ宛先を持つパケット８２−２の書込みは図７（Ｃ）の第３ケースによる書込みであり、第１偶数キュー６０−１と第１奇数キュー６２−１の第２パケット格納区画９２−１２に対し書込みが行われる。このときパケット８２−１と８２−２の境界部分における書込みは、ライトポインタＰ３に示すように、先行するパケット８２−１の最後のパケットワードＤ３と後続するパケット８２−２のヘッダＨの並列書込みが行われることになる。
【００９０】
図９は図７（Ｂ）の第２ケースにおいて、偶数受信タイミングのパケットに続いて宛先の異なる奇数受信タイミングのパケットが連続した場合のパケット境界での３ワード同時書込処理の説明図である。
【００９１】
図９（Ａ）はラッチ入力タイミングであり、先頭のパケット８２−１はヘッダＨが外部クロックの偶数受信タイミングであり、宛先は図９（Ｂ）の第１入力キュー部３６−１となっている。次のパケット８２−２はヘッダＨが外部クロックの奇数受信タイミングであり、宛先が図９（Ｂ）の異なる宛先である第２入力キュー部３６−２となっている。
【００９２】
この場合、先頭のパケット８２−１については、図７（Ａ）の第１ケースに従って、第１入力キュー部３６に対しヘッダＨ、パケットワードＤ０及びパケットワードＤ１，Ｄ２が、ライトポインタＰ１，Ｐ２に示すように並列的に第１偶数キュー６０−１，第１奇数キュー６２−１に書き込まれる。
【００９３】
続いて、パケット８２−１の最後のパケットワードＤ３が図４のデータラッチ４８−１にラッチされたとき、次のパケット８２−２のヘッダＨがヘッダラッチ４６−２にラッチされ、更にパケット８２−２のパケットワードＤ０がバイバスパス５５を介して出力されている。
【００９４】
そこで、このようなパケット８２−１と次のパケット８２−２のパケット境界にあっては、第１偶数キュー６０−１に対するパケットデータＤ３の書込み、第２偶数キュー６０−２に対する次のパケット８２−２のヘッダＨの書込み、更に第２奇数キュー６２−２に対する次のパケット８２−２のパケットワードＤ０の書込みの３ワード同時書込みを実行する。
【００９５】
具体的には、先行するパケット８２−１の最後のパケットワードは図５におけるデータラッチ４８−１にラッチされていることから、そのまま通常パス５４を通して第１偶数キュー６０−１にライトポインタＰ３による指定で書き込む。
【００９６】
また、後続するパケット８２−２のヘッダＨはヘッダラッチ４６−２にラッチされていることから、通常パス５６からスワップ回路部６４のセレクタ６８−２で選択するスワップ動作により第２偶数キュー６０−２にライトポインタＰ３で示すように書き込む。
【００９７】
更に、バイパス部５２よりバイパスパス５５を介して得られている後続するパケット８２−２のパケットワードＤ０については、スワップ回路部６４のセレクタ６６−２で選択した後に、セレクタ７０−２で選択するスワップ動作により、第２奇数キュー６２−２に書き込む。
【００９８】
このようなパケット境界における３ワード同時書込みが終了すると、後続するパケット８２−２の残りのパケットワードＤ１〜Ｄ３については、同様に、バイパスとスワップを有効とした状態で内部書込みを行い、最後のパケットワードＤ３はスワップにより第２偶数キュー６０−２側に書き込む。
【００９９】
図１０は入力キュー部から偶数受信タイミングのパケットを連続して読出す本発明の処理を従来と対比して示した説明図である。図１０（Ａ）は従来の読出し処理であり、図１０（Ｂ）が本発明による読出し処理である。
【０１００】
図１０（Ａ）の従来の読出し処理にあっては、第１偶数キュー６０−１と第１奇数キュー６２−１に対する偶数受信タイミングのヘッダＨの書き込みは、ヘッダＨがそれぞれのパケットについて第１偶数キュー６０−１に位置するように書込まれており、このためリードポインタＰ１〜Ｐ６の指定により連続的に読み出した場合、リードされたパケットデータ１００はパケット境界部分にタイミングの空き１０２を発生している。
【０１０１】
これに対し図１０（Ｂ）の本発明の読出し処理にあっては、偶数受信タイミングのパケットを連続して受信した場合についても、そのヘッダＨが第１偶数キュー６０−１を第１奇数キュー６２−１との間で交互に配置されるように書込まれているため、リードポインタＰ１〜Ｐ５に示すように連続的に読み出した場合、必ず２ワード単位の読み出しとなり、リードパケット１０４についてパケットの境界部分にタイミングの空きを発生することがなく、これによって入力キュー部を経由したパケット転送のスループットを向上させることができる。
【０１０２】
図１１は入力キュー部から奇数受信タイミングのパケットを連続して読み出す本発明の処理を従来と対比して示した説明図である。図１１（Ａ）が従来処理の説明図であり、図１１（Ｂ）が本発明の処理の説明図である。
【０１０３】
図１１（Ａ）の従来処理の説明図にあっては、奇数受信タイミングのパケットが連続した場合、第１奇数キュー６２−１側に各パケットのヘッダＨが位置するように書き込まれているため、読出し処理の際にはリードポインタＰ１〜Ｐ６の指定で読み出されたリードパケット９４はパケット境界部分にタイミングの空き９６を発生している。
【０１０４】
これに対し図１１（Ｂ）の本発明にあっては、奇数受信タイミングのパケットであっても、連続して受信した場合には先頭のパケットについては必ず偶数側となる第１偶数キュー６０−１にヘッダＨが配置され、次のパケットについては必ず第１奇数キュー６２−１側となるようにヘッダＨが格納される書き込みが行われているため、リードポインタＰ１〜Ｐ５の指定でワード単位に読み出されたリードパケット９８にはパケット境界部分の空きが発生せず、スループットを向上させることができる。
【０１０５】
図１２及び図１３は本発明の入力キュー部に対するパケット書込み処理のフローチャートである。この書込み処理にあっては、ステップＳ１で現在処理対象となったパケットが前段のパケットに連続して入力されているか否かチェックし、連続している場合にはステップＳ２に進み、連続していない場合にはステップＳ３に進む。
【０１０６】
ステップＳ２にあっては連続しているパケットの前段のパケットと異なるキューへの入力か否か、即ち宛先の異なるパケットか否かチェックし、宛先が異なる場合にはステップＳ３に進み、宛先が同一の場合にはステップＳ１１に進む。宛先の異なる場合にはステップＳ３で現在処理対象となっているパケットのヘッダが外部ブロックの偶数受信タイミングの入力か否かチェックし、偶数受信タイミングであればステップＳ４に進み、奇数受信タイミングであればステップＳ７に進む。
【０１０７】
ステップＳ４では入力キューの書込み先が奇数段であるか否かチェックし、奇数段であればステップＳ５に進み、通常パスを選択して書き込む。このステップＳ５にいたる処理をケース１の処理とする。
【０１０８】
ステップＳ４で入力キューの書き込み先が偶数段である場合にはステップＳ６に進み、スワップパスを選択して書き込む。このステップＳ６にいたる処理をケース２の処理とする。
【０１０９】
一方、ステップＳ３でパケットが奇数受信タイミングであった場合にはステップＳ７でバイパスパスをセレクトした後、ステップＳ８で入力キューの書き込み先が奇数段か否かチェックする。奇数段であった場合にはステップＳ９に進み、スワップパスを選択して書き込む。これをケース３とする。
【０１１０】
またステップＳ８で入力キューの書き込み段が偶数段であった場合にはステップＳ１０に進み、通常パスを選択して書き込む。このステップＳ１０に至る処理をケース４とする。
【０１１１】
ステップＳ２で前段パケットと同一宛先となるキューへの入力が判別された場合にはステップＳ１１でパケットが偶数受信タイミングであればステップＳ１２に進み、入力キューの書き込み先が奇数段であればステップＳ１３で通常パスを選択して書き込む。このステップＳ１３にいたる処理をケース５とする。
【０１１２】
またステップＳ１２で入力キューの書き込み先が偶数段であった場合にはステップＳ１４に進み、スワップパスを選択して書き込む。このステップＳ１４に至る処理をケース６とする。
【０１１３】
ステップＳ１１で同一宛先となるパケットの受信タイミングが外部クロックの奇数受信タイミングであった場合には図１３のステップＳ１５に進み、前段のパケットが偶数受信タイミングであればステップＳ１６で入力キューの書き込み先が奇数段か否かチェックし、奇数段であればステップＳ１７に進み、スワップパスを選択して書き込む。このステップＳ１７にいたる処理をケース７とする。
【０１１４】
またステップＳ１６で入力キューの書き込み段が偶数段であった場合にはステップＳ１８で通常パスを選択して書き込む。このステップＳ１８にいたる処理をケース８とする。
【０１１５】
ステップＳ１５で前段のパケットが同一宛先のキューであり、パケットが奇数受信タイミングである場合に前段のパケットが奇数受信タイミングであった場合、ステップＳ１９に進みバイパスパスを選択して後、ステップＳ２０で入力キューの書き込み先が奇数段であればステップＳ２１に進み、スワップパスを選択して書き込む。このステップＳ２１に至る処理をケース９とする。
【０１１６】
またステップＳ２０で入力キューの書き込み段が偶数段であった場合にはステップＳ２２に進み、通常パスを選択して書き込む。このステップＳ２２に至る処理をケース１０とする。
【０１１７】
図１４は図１２のフローチャートにおけるケース１とケース２の書き込み処理の説明図である。図１４（Ａ）はケース１の処理であり、
（１）パケットが連続入力または単独入力（間欠入力）であり、
（２）連続入力の場合、前段のパケットと異なる宛先であり、
（３）パケットが偶数受信タイミングであり、
（４）入力キューの書き込み段が奇数段の場合である。
【０１１８】
このような（１）〜（４）の条件のもとにケース１にあっては、ラッチ入力タイミング１０６で得られたパケットにつき、通常パス５４，５６をセレクトし、偶数キュー６０と奇数キュー６２の奇数段＃１に書き込みを行う。
【０１１９】
図１４（Ｂ）はケース２の場合であり、図１４（Ａ）のケース１と異なる点は（４）の入力キューの書き込み段が偶数段から奇数段となっている点である。この場合にはラッチ入力タイミング１０６のパケットについてはケース１と同じであるが、格納先となる偶数キュー６０と奇数キュー６２の格納位置が偶数段＃２となっており、偶数段＃２についてはヘッダＨを必ず奇数キュー６２側に配置しなければならない。
【０１２０】
そこで、ラッチ入力タイミング１０６にラッチされたデータに対し、通常パス５４と通常パス５６を交換するスワップパス１０８を選択し、偶数キュー６０と奇数キュー６２に書き込む。
【０１２１】
図１５は図１２のフローチャートにおけるケース３とケース４の書き込み処理の説明図である。図１５（Ａ）はケース３であり、ケース１の条件（３）が偶数受信タイミングから奇数受信タイミングとなった場合である。
【０１２２】
即ち、図１５（Ａ）のようにラッチ入力タイミング１１０において受信パケットのヘッダＨは奇数受信タイミングとなることで、奇数側のパスに位置しており、偶数キュー６０と奇数キュー６２の格納先は奇数段＃１であることから、奇数受信タイミングのヘッダＨであっても必ず偶数キュー６０側に配置しなければならない。したがって、ラッチ入力タイミング１１０における奇数側のヘッダＨについてはスワップパス１１４により偶数キュー６０側に送って格納する。
【０１２３】
またヘッダＨに続くパケットワードＤ０については、バイパス部５２からのバイパスパス５５を選択し且つスワップ回路部６４によりスワップパスを選択することにより、バイパス及びスワップパス１１２として奇数キュー６２に書き込む。同様なスワップパス１１４とバイパス及びスワップパス１１２を維持した状態で残りのパケットワードＤ１〜Ｄ３について偶数キュー６０と奇数キュー６２の奇数段＃１に対する書き込み処理を行う。
【０１２４】
図１５（Ｂ）は図１２のステップＳ１０におけるケース４の場合である。ケース４は図１５（Ａ）のケース３における偶数キュー６０と奇数キュー６２に対する書き込み段が奇数段＃１から偶数段＃２に変化した場合である。この場合には通常パス５４，５６を選択してそのまま書き込むことになる。
【０１２５】
次に図１２のケース５及びケース６は、図１４に示したケース１，ケース２の前段のパケットが異なる宛先のパケットに対し、同一宛先のパケット、すなわち同一キューに対する入力に変わった場合である。この場合にはケース５は図１４（Ａ）のケース１と同じであり、またケース６は図１４（Ｂ）のケース２と同じになる。
【０１２６】
図１６は図１３のステップＳ１７，１８に至るケース７とケース８の説明図である。図１６（Ａ）のケース７は、前段のパケットと同じ宛先のパケットのヘッダが外部クロックの奇数受信タイミングであり、このとき前段のパケットが偶数受信タイミングであり、更に入力キューの書き込み段が奇数受信タイミングの場合である。
【０１２７】
即ち、図１６（Ａ）のラッチ入力タイミング１１６に示すように、現在処理対象となっているパケット８２−２の前段のパケット８２−１はヘッダＨが偶数受信タイミングであり、またパケット８２−２の偶数キュー６０と奇数キュー６２への書き込み先が奇数段＃３となっている。
【０１２８】
この場合パケット８２−２のヘッダＨについては、格納先が奇数段＃３であることから必ず偶数キュー６０側に配置しなければならず、したがって通常パス５４，５６を交換したバイパス及びスワップパス１１８により入れ替えて偶数キュー６０にヘッダＨを書き込むようにする。
【０１２９】
図１６（Ｂ）はケース８であり、ケース８は図１６（Ａ）のケース７に対し入力キューの書込段が偶数段の場合である。この場合、ラッチ入力タイミング１１６がパケット８２−２はケース７と同じであるが、偶数キュー６０と奇数キュー６２の格納先が偶数段＃４であることから通常パス５４，５６をセレクトしてそのまま書き込む。
【０１３０】
図１７は図１３のケース９とケース１０の処理である。図１７（Ａ）はケース９の処理であり、ケース９は図１６（Ａ）のケース７に対し、前段のパケットが奇数受信タイミングの場合である。
【０１３１】
図１７（Ａ）のケース９において、ラッチ入力タイミング１２０のようにパケット処理対象となっているパケット８２−２のヘッダＨは奇数受信タイミングであり、前段のパケット８２−１もヘッダＨは奇数受信タイミングとなっている。そしてパケット８２−２の格納先は偶数キュー６０と奇数キュー６２の奇数段＃３であることから、パケット８２−２のヘッダーＨは偶数キュー６０側に配置しなければならない。
【０１３２】
このためヘッダＨについてはスワップパス１２１を選択し、また次のパケットワードＤ０についてはバイパスと同時にスワップを行うことから、バイパス及びスワップパス１２２を選択して書き込む。
【０１３３】
図１７（Ｂ）は図１３のケース１０であり、この場合には偶数キュー６０と奇数キュー６２の格納先が偶数段＃４であることから通常パス５４，５６をそのままセ選択して書き込む。
【０１３４】
このようなケース１〜ケース１０の書込み処理の結果、パケットの連続かあるいは宛先が同一か異なるかにかかわらず、結果として図６に示したように偶数キュー６０を起点として奇数キュー６２との間で交互にパケット格納を順番にヘッダが書込まれ、これによって偶数キュー６０と奇数キュー６２からパケットを連続して読出す際に、図１０（Ｂ）及び図１１（Ｂ）に示したように、入力パケットのパケット境界部分にパケット空きを生ずることなく連続的に読み出してスループットを向上させることができる。
【０１３５】
さらに本発明は図４に示した制御部７０としてプロセッサを使用していることから、このプロセッサに図１３及び図１４に示したフローチャートの内容のプログラムを実行させることで制御処理を実現でき、本発明はこの制御部７０で実行するプログラムそのものも提供する。
【０１３６】
尚、本発明はその目的と利点を損なうことのない適宜の変形を含む。更に上記の実施形態に示した数値による限定は受けない。
【０１３７】
ここで本発明の特徴をまとめて列挙すると次の付記のようになる。
【０１３８】
（付記）
（付記１）
複数のモジュール間で相互にパケットを転送する外部クロック周波数に対し内部クロック周波数を１／２に設定すると共に外部バス幅に対し内部バス幅を２倍に構成し、受信パケットを宛先別に分けて格納した後に読み出すクロスバー装置に於いて、
前記外部クロックに同期してワード単位に転送されたパケットを受信すると共に前記パケットのヘッダを含む複数のパケットワードを前記外部クロックの偶数受信タイミングと奇数受信タイミングに分けて前記内部クロックに同期して並列出力するパケット受信部と、
前記パケット受信部から出力された偶数受信タイミングのパケットワードをラッチする偶数ラッチ部と、
前記パケット受信部から出力された奇数受信タイミングのパケットワードをラッチする奇数ラッチ部と、
前記偶数ラッチ部から出力された偶数受信タイミングのパケットワードをパケット単位に書込む複数段のパケット格納区画を複数段備えた宛先毎の偶数キューと、
前記奇数ラッチ部から出力された奇数受信タイミングのパケットワードをパケット単位に書込む複数段のパケット格納区画を備えた宛先毎の奇数キューと、
前記偶数ラッチ部をバイパスするバイパス部と、
前記偶数ラッチ部及びバイパス部の出力を前記奇数キュー部にスワップすると共に、前記奇数ラッチ部の出力を前記偶数キュー部にスワップするスワップ回路部と、
複数のパケットを連続して受信した場合、各受信パケットのヘッダが前記偶数キューと前記奇数キューの各パケット格納区画に交互に配置されるようにパケットワードを書込む書込制御部と、
前記偶数キューと前記奇数キューから２ワード単位にパケットワードを並列的に読み出す読出制御部と、
を備えたことを特徴とするクロスバー装置。（１）
【０１３９】
（付記２）
付記１記載のクロスバー装置に於いて、単独で受信するパケットのヘッダ受信タイミング、及び連続的に受信する先頭パケットのヘッダ受信タイミングを前記外部クロックの偶数受信タイミングとすること特徴とするクロスバー装置。
【０１４０】
（付記３）
付記１記載のクロスバー装置に於いて、前記書込制御部は、複数のパケットを間欠的又は連続して受信した場合、奇数番目の受信パケットのヘッダを前記偶数キューの奇数段のパケット格納区画に順次配置し、且つ偶数番目の受信パケットのヘッダを前記奇数キューの偶数段のパケット格納区画に順次配置するようにパケットワードを書き込むことを特徴とするクロスバー装置。（２）
【０１４１】
（付記４）
付記１記載のクロスバー装置に於いて、前記偶数キュー及び前記奇数キューとして８段構成のパケット格納区画を備えた場合、前記書込制御部は、１番目、３番目、５番目及び７番目の受信パケットのヘッダを前記偶数キューの１段目、３段目、５段目及び７段目のパケット格納区画に順次配置し、且つ２番目、４番目、６番目及び８番目の受信パケットのヘッダを前記奇数キューの２段目、４段目、６段目及び８段目のパケット格納区画に順次配置するようにパケットワードを書き込むことを特徴とするクロスバー装置。
【０１４２】
（付記５）
付記１記載のクロスバー装置に於いて、前記書込制御部は、宛先の異なるパケットを間欠的又は連続的に受信した際に、
前記受信パケットのヘッダが偶数受信タイミングであり、前記偶数キューと奇数キューのパケット格納区画が奇数段の場合、前記偶数ラッチ部でラッチした偶数受信タイミングのヘッダを含むパケットワードを前記偶数キューにおける奇数段のパケット格納区画に書込むと共に、前記奇数ラッチ部でラッチした奇数受信タイミングのパケットワードを前記奇数キューにおける奇数段のパケット格納区画に書込み、
前記受信パケットのヘッダが偶数受信タイミングであり、前記偶数キューと奇数キューのパケット格納区画が偶数段の場合、前記偶数ラッチ部でラッチした偶数受信タイミングのヘッダを含むパケットワードをスワップして前記奇数キューにおける偶数段のパケット格納区画に書込むと共に、前記奇数ラッチ部でラッチした奇数受信タイミングのパケットワードをスワップして前記偶数キューにおける偶数段のパケット格納区画に書込むことを特徴とするクロスバー装置。（３）
【０１４３】
（付記６）
付記１記載のクロスバー装置に於いて、前記書込制御部は、宛先の異なるパケットを間欠的又は連続的に受信した際に、
前記受信パケットのヘッダが奇数受信タイミングで前記偶数キューと奇数キューのパケット格納区画が奇数段の場合、前記奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードをスワップして前記偶数キューにおける奇数段のパケット格納区画に書込むと共に、前記バイパス部によりバイパスし且つスワップして得られた偶数受信タイミングのパケットワードを前記奇数キューにおける奇数段のパケット格納区画に書込み、
前記受信パケットのヘッダが奇数受信タイミングで前記偶数キューと奇数キューのパケット格納区画が偶数段の場合、前記奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードを前記奇数キューにおける奇数段のパケット格納区画に書込むと共に、前記バイパス部でバイバスした偶数受信タイミングのパケットワードを前記偶数キューにおける偶数段のパケット格納区画に書込むことを特徴とするクロスバー装置。（４）
【０１４４】
（付記７）
付記１記載のクロスバー装置に於いて、前記書込制御部は、ヘッダが偶数受信タイミングの第１宛先パケットに続いてヘッダが奇数受信タイミングの宛先の異なる第２宛先パケットを連続して受信した際に、前記第１宛先パケットと第２宛先パケットの境界部分につき、
前記偶数ラッチ部でラッチした前記第１宛先パケットの最終パケットワードを第１宛先に対応した偶数キューに書込み、
前記奇数ラッチ部でラッチした前記第２宛先パケットのヘッダをスワップして前記第２宛先に対応した偶数キューに書込み、更に、
前記第１バイパス部から得られた前記第２宛先パケットのヘッダの次のパケットワードをスワップして前記第２宛先に対応した奇数キューに書込む３パケットワードの同時書込みを行うことを特徴とするクロスバー装置。（５）
【０１４５】
（付記８）
付記１記載のクロスバー装置に於いて、前記書込制御部は、宛先が同一のパケットを連続的に受信した際に、
前記受信パケットのヘッダが偶数受信タイミングで前記偶数キューと奇数キューのパケット格納区画が奇数段の場合、前記偶数ラッチ部でラッチした偶数受信タイミングのヘッダを含むパケットワードを前記偶数キューにおける奇数段のパケット格納区画に書込むと共に、前記奇数ラッチ部でラッチした奇数受信タイミングのパケットワードを前記奇数キューにおける奇数段のパケット区画に書込み、
前記受信パケットのヘッダが偶数受信タイミングで前記偶数キューと奇数キューのパケット格納区画が偶数段の場合、前記偶数ラッチ部でラッチした偶数受信タイミングのヘッダを含むパケットワードをスワップして前記奇数キューにおける偶数段のパケット格納区画に書込むと共に、前記奇数ラッチ部でラッチした奇数受信タイミングのパケットワードをスワップして前記偶数キューにおける偶数段のパケット格納区画に書込むことを特徴とするクロスバー装置。（６）
【０１４６】
（付記９）
付記１記載のクロスバー装置に於いて、前記書込制御部は、宛先が同一のパケットを連続的に受信した際に、
前記受信パケットのヘッダが奇数受信タイミングであり、前段パケットのヘッダが偶数受信タイミングであり、更に、前記偶数キューと奇数キューのパケット格納区画が奇数段となる場合、
前記奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードをスワップして前記偶数キューにおける奇数段のパケット格納区画に書込むと共に、前記偶数ラッチ部でラッチした偶数受信タイミングのパケットワードをスワップして前記偶数キューにおける奇数段のパケット区画に書込み、
前記受信パケットのヘッダが奇数受信タイミングであり、前段パケットのヘッダが偶数受信タイミングであり、更に、前記偶数キューと奇数キューのパケット格納区画が偶数段となる場合、
前記奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードを前記奇数キューにおける偶数段のパケット格納区画に書込むと共に、前記偶数ラッチ部でラッチした偶数受信タイミングのパケットワードを前記偶数キューにおける偶数段のパケット格納区画に書込むことを特徴とするクロスバー装置。（７）
【０１４７】
（付記１０）
付記１記載のクロスバー装置に於いて、前記書込制御部は、宛先が同一のパケットを連続的に受信した際に、
前記受信パケットのヘッダが奇数受信タイミングであり、前段パケットのヘッダが奇数受信タイミングであり、更に、前記偶数キューと奇数キューのパケット格納区画が奇数段となる場合、
前記奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードをスワップして前記偶数キューにおける奇数段のパケット格納区画に書込むと共に、前記偶数ラッチ部でラッチした偶数受信タイミングのパケットワードを前記バイパス部でバイパスし且つスワップして前記奇数キューにおける奇数段のパケット区画に書込み、
前記受信パケットのヘッダが奇数受信タイミングであり、前段パケットのヘッダが偶数受信タイミングであり、更に、前記偶数キューと奇数キューのパケット格納区画が偶数段となる場合、
前記奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードを前記奇数キューにおける偶数段のパケット格納区画に書込むと共に、前記偶数ラッチ部でラッチした偶数受信タイミングのパケットワードを前記偶数キューにおける偶数段のパケット格納区画に書込むことを特徴とするクロスバー装置。（８）
【０１４８】
（付記１１）
付記１記載のクロスバー装置に於いて、前記書込制御部は、
前記偶数ラッチ部と奇数ラッチ部にヘッダを含むパケットワードが２ワードラッチされたタイミング、
前記偶数ラッチ部と奇数ラッチ部にヘッダを含むパケットワードが２ワードラッチされ且つスワップされたタイミング、又は
前記奇数ラッチ部にヘッダを含むパケットワードがラッチされ且つ前記バイパス部からバイパスされたパケットワードが出力されたタイミング、
のいずれかで前記偶数キューと奇数キューに２ワードのパケットワードを並列的に書込むことを特徴とするクロスバー装置。
【０１４９】
（付記１２）
付記４記載のクロスバー装置に於いて、前記読出制御部は、
前記偶数キューと奇数キューの奇数段のパケット格納区画から２ワード単位にパケットワードを並列的に読出し、
次の偶数段のパケット収納区画の境界部分では、前記先行する奇数段のパケット格納区画の最終ワードと後続する偶数段のパケット格納区画のヘッダとの２ワードを並列的に読出し、
前記ヘッダを読み出した後の偶数段のパケット収納区画の残りパケットワードについては、前記偶数キューと前記奇数キューにおける偶数段のパケット格納区画の１ワードずれた位置から２ワード単位をパケットワードを並列的に読み出し、
以後これを繰り返すことを特徴とするクロスバー装置。
【０１５０】
（付記１３）
複数のモジュール間で相互にパケットを転送する外部クロック周波数に対し内部クロック周波数を１／２に設定すると共に外部バス幅に対し内部バス幅を２倍に構成し、受信パケットを宛先別に分けて格納した後に読み出すクロスバー装置の制御方法に於いて、
前記外部クロックに同期してワード単位に転送されたパケットを受信すると共に前記パケットのヘッダを含む複数のパケットワードを前記外部クロックの偶数受信タイミングと奇数受信タイミングに分けて前記内部クロックに同期して並列出力するパケット受信ステップと、
前記パケット受信ステップから出力された偶数受信タイミングのパケットワードを偶数ラッチ部にラッチする偶数ラッチステップと、
前記パケット受信ステップから出力された奇数受信タイミングのパケットワードを奇数ラッチ部にラッチする奇数ラッチステップと、
前記偶数ラッチ部から出力された偶数受信タイミングのパケットワードを、複数段のパケット格納区画を備えた宛先毎の偶数キューにパケット単位に書込むと偶数キューステップと、
前記奇数ラッチ部から出力された奇数受信タイミングのパケットワードを、複数段のパケット格納区画を備えた宛先毎の奇数キューにパケット単位に書込む奇数キューステップと、
前記偶数ラッチ部をバイパスするバイパスステップと、
前記偶数ラッチ部及びバイパス部の出力を前記奇数キューにスワップすると共に、前記奇数ラッチ部の出力を前記偶数キューにスワップするスワップステップと、
複数のパケットを連続して受信した場合、各受信パケットのヘッダが前記偶数キューと前記奇数キューの各パケット格納区画に交互に配置されるようにパケットワードを書込む書込制御ステップと、
偶数キューと前記奇数キューから２ワード単位にパケットワードを並列的に読み出す読出制御ステップと、
を備えたことを特徴とするクロスバー装置の制御方法。（９）
【０１５１】
（付記１４）
付記１３記載のクロスバー装置の制御方法に於いて、間欠的に受信するパケットのヘッダ受信タイミング、及び連続的に受信する先頭パケットのヘッダ受信タイミングを前記外部クロックの偶数受信タイミングとすること特徴とするクロスバー装置の制御方法。
【０１５２】
（付記１５）
付記１３記載のクロスバー装置の制御方法に於いて、前記書込制御ステップは、複数のパケットを間欠的又は連続して受信した場合、奇数番目の受信パケットのヘッダを前記偶数キューの奇数段のパケット格納区画に順次配置し、且つ偶数番目の受信パケットのヘッダを前記奇数キューの偶数段のパケット格納区画に順次配置するようにパケットワードを書き込むことを特徴とするクロスバー装置の制御方法。
【０１５３】
（付記１６）
付記１３記載のクロスバー装置の制御方法に於いて、前記偶数キュー及び前記奇数キューとして８段構成のパケット格納区画を備えた場合、前記書込制御ステップは、１番目、３番目、５番目及び７番目の受信パケットのヘッダを前記偶数キューの１段目、３段目、５段目及び７段目のパケット格納区画に順次配置し、且つ２番目、４番目、６番目及び８番目の受信パケットのヘッダを前記奇数キューの２段目、４段目、６段目及び８段目のパケット格納区画に順次配置するようにパケットワードを書き込むことを特徴とするクロスバー装置の制御方法。
【０１５４】
（付記１７）
付記１３記載のクロスバー装置の制御方法に於いて、前記書込制御ステップは、ヘッダが偶数受信タイミングの第１宛先パケットに続いてヘッダが奇数受信タイミングの宛先の異なる第２宛先パケットを連続して受信した際に、前記第１宛先パケットと第２宛先パケットの境界部分につき、
前記偶数ラッチステップでラッチした前記第１宛先パケットの最終パケットワードを第１宛先に対応した偶数キューに書込み、
前記奇数ラッチステップでラッチした前記第２宛先パケットのヘッダをスワップして前記第２宛先に対応した偶数キューに書込み、更に、
前記バイパスステップから得られた前記第２宛先パケットのヘッダの次のパケットワードをスワップして前記第２宛先に対応した奇数キューに書込む３パケットワードの同時書込みを行うことを特徴とするクロスバー装置の制御方法。
【０１５５】
（付記１８）
付記１３記載のクロスバー装置の制御方法に於いて、前記書込制御ステップは、
前記偶数ラッチステップと奇数ラッチステップにヘッダを含むパケットワードが２ワードラッチされたタイミング、
前記偶数ラッチステップと奇数ラッチステップにヘッダを含むパケットワードが２ワードラッチされ且つスワップされたタイミング、又は
前記奇数ラッチステップにヘッダを含むパケットワードがラッチされ且つ前記バイパスステップからバイパスされたパケットワードが出力されたタイミング、
のいずれかで前記偶数キューと奇数キューに２ワードのパケットワードを並列的に書込むことを特徴とするクロスバー装置の制御方法。
【０１５６】
（付記１８）
付記１３記載のクロスバー装置の制御方法に於いて、前記読出制御ステップは、
前記偶数キューと奇数キューの奇数段のパケット格納区画から２ワード単位にパケットワードを並列的に読出し、
次の偶数段のパケット収納区画の境界部分では、前記先行する奇数段のパケット格納区画の最終ワードと後続する偶数段のパケット格納区画のヘッダとの２ワードを並列的に読出し、
前記ヘッダを読み出した後の偶数段のパケット収納区画の残りパケットワードについては、前記偶数キューと前記奇数キューにおける偶数段のパケット格納区画の１ワードずれた位置から２ワード単位をパケットワードを並列的に読み出し、
以後これを繰り返すことを特徴とするクロスバー装置の制御方法。
【０１５７】
（付記１９）
複数のモジュール間で相互にパケットを転送する外部クロック周波数に対し内部クロック周波数を１／２に設定すると共に外部バス幅に対し内部バス幅を２倍に構成し、受信パケットを宛先別に分けて格納した後に読み出すクロスバー装置のコンピュータに、
前記外部クロックに同期してワード単位に転送されたパケットを受信すると共に前記パケットのヘッダを含む複数のパケットワードを前記外部クロックの偶数受信タイミングと奇数受信タイミングに分けて前記内部クロックに同期して並列出力するパケット受信ステップと、
前記パケット受信ステップから出力された偶数受信タイミングのパケットワードを偶数ラッチ部にラッチする偶数ラッチステップと、
前記パケット受信ステップから出力された奇数受信タイミングのパケットワードを奇数ラッチ部にラッチする奇数ラッチステップと、
前記偶数ラッチ部から出力された偶数受信タイミングのパケットワードを、複数段のパケット格納区画を備えた宛先毎の偶数キューにパケット単位に書込むと偶数キューステップと、
前記奇数ラッチ部から出力された奇数受信タイミングのパケットワードを、複数段のパケット格納区画を備えた宛先毎の奇数キューにパケット単位に書込む奇数キューステップと、
前記偶数ラッチ部をバイパスするバイパスステップと、
前記偶数ラッチ部及びバイパス部の出力を前記奇数キューにスワップすると共に、前記奇数ラッチ部の出力を前記偶数キューにスワップするスワップステップと、
複数のパケットを連続して受信した場合、各受信パケットのヘッダが前記偶数キューと前記奇数キューの各パケット格納区画に交互に配置されるようにパケットワードを書込む書込制御ステップと、
前記偶数キューと前記奇数キューから２ワード単位にパケットワードを並列的に読み出す読出制御ステップと、
を実行させることを特徴とするプログラム。（１０）
【０１５８】
（付記２０）
付記１９記載のプログラムに於いて、間欠的に受信するパケットのヘッダ受信タイミング、及び連続的に受信する先頭パケットのヘッダ受信タイミングを前記外部クロックの偶数受信タイミングとすること特徴とするプログラム。
【図面の簡単な説明】
【０１５９】
【図１】本発明の原理説明図
【図２】本発明のクロスバー装置を用いる回路システムの説明図
【図３】本発明のクロスバー装置の回路ブロック図
【図４】本発明の実施形態となる図３のラッチ部と入力ポートの詳細構成の回路図
【図５】本発明のクロスバー装置における外部バスと内部バスのパケット転送の説明図
【図６】受信パケットを偶数キューと奇数キューに交互に書込む本発明によるキュー書込み処理の説明図
【図７】ヘッダの偶数受信タイミングと奇数受信タイミングによりケース分けした本発明によるキュー書込みパターンの説明図
【図８】同一宛先の受信パケットが連続した場合のキュー書込み処理の説明図
【図９】偶数受信タイミングのパケットに続いて宛先の異なる奇数受信タイミングのパケットが連続した場合のパケット境界での３ワード同時書込みの説明図
【図１０】入力キューから偶数受信タイミングのパケットを連続して読み出す本発明の処理を従来と対比して示した説明図
【図１１】入力キューから奇数受信タイミングのパケットを連続して読み出す本発明の処理を従来と対比して示した説明図
【図１２】本発明の入力キューに対するパケット書込み処理のフローチャート
【図１３】図１２に続くパケット書込み処理のフローチャート
【図１４】図１２のフローチャートにおけるケース１とケース２の書込み処理の説明図
【図１５】図１２のフローチャートにおけるケース３とケース４の書込み処理の説明図
【図１６】図１３のフローチャートにおけるケース７とケース８の書込み処理の説明図
【図１７】図１３のフローチャートにおけるケース９とケース１０の書込み処理の説明図
【図１８】従来のクロスバー装置に設けた入力キュー部の回路ブロック図
【図１９】偶数受信タイミングのパケットをキューに書込む従来処理の説明図
【図２０】奇数受信タイミングのパケットをキューに書込む従来処理の説明図
【図２１】入力キューから偶数受信タイミングのパケットを連続して読み出す従来処理の説明図
【図２２】入力キューから奇数受信タイミングのパケットを連続して読み出す従来処理の説明図
【符号の説明】
【０１６０】
１０：クロスバー装置
１２−１〜１２−４：ＬＳＩモジュール
１６，２４：外部バス
１８：入力ポート
２０：振分け選択部
２２：出力ポート
２６：パケット受信部
２８：ラッチ部
２８−１：偶数ラッチ部
２８−２：奇数ラッチ部
３０：入力キュー部
３４：出力キュー部
３５：パケット送信部
３６−１：第１入力キュー部
３６−２：第２入力キュー部
３６−３：第３入力キュー部
３６−４：第４入力キュー部
３７−１，３７−２：ラッチ
３８，３８−１，３８−２：内部バス
４０−１，４０−２：ヘッダ部通過パス
４２−１，４２−２：データ部通過パス
４４−１，４４−２：ヘッダＥＣＣ検出訂正部
４６−１，４６−２：ヘッダラッチ
４８−１，４８−２：データラッチ
５０−１，５０−２，６６−１〜６６−４，６８−１〜６８−４，７０−１〜７０−４：セレクタ
５２：バイパス部
５４，５６：通常パス
５５：バイパスパス
５８−１：入力偶数キュー部
５８−２：入力奇数キュー部
６０：偶数キュー
６０−１：第１偶数キュー
６０−２：第２偶数キュー
６０−３：第３偶数キュー
６０−４：第４偶数キュー
６２：奇数キュー
６２−１：第１奇数キュー
６２−２：第２奇数キュー
６２−３：第３奇数キュー
６２−４：第４奇数キュー
６４：スワップ回路部
７０：制御部
７４：書込制御部
７６：読出制御部
７８：外部クロック
８０，１００：パケットデータ
８２−１〜８２−８：パケット
８４：偶数受信タイミング
８６：奇数受信タイミング
８８：内部クロック
９０，９０−１〜９０−３，１０６，１１０，１１６，１２０：ラッチ入力タイミング
９２−１〜９２−８：パケット格納区画
９４，９８，１０４：リードパケット
１０８，１１４，１２１：スワップパス
１１２，１２２：バイパス及びスワップパス
【図１】
2006262243.tif 000003
【図２】
2006262243.tif 000004
【図３】
2006262243.tif 000005
【図４】
2006262243.tif 000006
【図５】
2006262243.tif 000007
【図６】
2006262243.tif 000008
【図７】
2006262243.tif 000009
【図８】
2006262243.tif 000010
【図９】
2006262243.tif 000011
【図１０】
2006262243.tif 000012
【図１１】
2006262243.tif 000013
【図１２】
2006262243.tif 000014
【図１３】
2006262243.tif 000015
【図１４】
2006262243.tif 000016
【図１５】
2006262243.tif 000017
【図１６】
2006262243.tif 000018
【図１７】
2006262243.tif 000019
【図１８】
2006262243.tif 000020
【図１９】
2006262243.tif 000021
【図２０】
2006262243.tif 000022
【図２１】
2006262243.tif 000023
【図２２】
2006262243.tif 000024