JP4453915B2 - クロスバー装置、制御方法及びプログラム - Google Patents

クロスバー装置、制御方法及びプログラム Download PDF

Info

Publication number
JP4453915B2
JP4453915B2 JP2005078846A JP2005078846A JP4453915B2 JP 4453915 B2 JP4453915 B2 JP 4453915B2 JP 2005078846 A JP2005078846 A JP 2005078846A JP 2005078846 A JP2005078846 A JP 2005078846A JP 4453915 B2 JP4453915 B2 JP 4453915B2
Authority
JP
Japan
Prior art keywords
packet
odd
queue
reception timing
header
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.)
Expired - Fee Related
Application number
JP2005078846A
Other languages
English (en)
Other versions
JP2006262243A (ja
Inventor
秀人 荒井
信行 鈴木
秀和 小佐野
周 中村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2005078846A priority Critical patent/JP4453915B2/ja
Priority to EP20050254417 priority patent/EP1703412B1/en
Priority to US11/181,826 priority patent/US7583706B2/en
Priority to KR20050069262A priority patent/KR100717669B1/ko
Priority to CNB2005100936309A priority patent/CN100456276C/zh
Publication of JP2006262243A publication Critical patent/JP2006262243A/ja
Application granted granted Critical
Publication of JP4453915B2 publication Critical patent/JP4453915B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17375One dimensional, e.g. linear array, ring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units

Description

本発明は、MPUやサブシステムなどの複数のLSIモジュール間でデータをパケットにより相互に転送するクロスバー装置、制御方法及びプログラムに関し、特に、クロスバー内部の入力キューに書込むデータパケットのスループットを向上させるクロスバー装置、制御方法及びプログラムに関する。
従来、クロスバー装置は異なるLSIモジュール間でのデータパケットを中継するための機能をもっている。このようなクロスバー装置にあっては、LSIモジュールから転送されたパケットを格納する入力キューを内部に備えており、入力キューに宛先別に分けて受信パケットを書込んだ後に、転送先毎に設けた出力キューに入力キューから読み出したパケットを振り分け選択し、出力キューから宛先のLSIモジュールにパケットを送信するようにしている。
図18は従来のクロスバー装置に設けられた入力キュー部のブロック図である。図18において、送信元のLSIモジュールから外部クロックにより外部バスを介して転送されたデータパケットは、図示しないパケット受信部で受信される。ここでLSIモジュール間で相互にパケットを転送する外部クロック周波数に対しクロスバー装置の内部クロック周波数を1/2に設定し、また外部バス幅に対し内部バス幅を2倍に構成している。例えば外部バス幅が36ビットであると、並列内部バスを使用することで、内部バス幅は72ビットとなる。また転送パケットはヘッダと複数ワードで構成され、奇数ワード長としている。
外部バスからパケットを受信したパケット受信部は、外部クロックによる偶数受信タイミングと奇数受信タイミングとに分けて受信パケットのヘッダとこれに続くワードを内部バスに並列的に出力し、偶数受信タイミングのヘッダ及びワードは偶数ラッチ部200に入力し、奇数受信タイミングのヘッダ及びワードは奇数ラッチ部202に入力する。
偶数ラッチ部200は入力パスをヘッダ部通過パス204とデータ部通過パス206に分岐し、ヘッダ部通過パス204にヘッダECC検出修正部208とヘッダラッチ210を設け、データ部通過パス206にはデータラッチ212を設け、セレクタ216からパス215により入力キュー部230に入力している。
奇数ラッチ部202は、同様に、入力パスをヘッダ部通過パス217とデータ部通過パス218に分岐し、ヘッダ部通過パス217にヘッダECC検出訂正部220とヘッダラッチ222を設け、データ部通過パス218にはデータラッチ224を設け、セレクタ226からパス225により入力キュー部230に入力している。
ヘッダECC検出訂正部208,220では、パケットのヘッダの誤りを検出して訂正し、ヘッダラッチ210,222に保持した後に入力キュー部230に書込む。同時にヘッダECC検出訂正部208,220はヘッダの有効性を検出すると、ヘッダに含まれるデータ長の情報をもとに、データ部通過パス206,218を通してデータ長分のパケットワードを選択して入力キュー部230に送る。
入力キュー部230には偶数入力キュー部232と奇数キュー部234が設けられる。偶数入力キュー部232には、宛先の重なる割合を減らしてスループットを改善するために、4つに分割した転送宛先グループ毎にFIFOバッファを用いた第1偶数キュー236−1、第2偶数キュー236−2、第3偶数キュー236−3、第4偶数キュー236−4を設けている。同様に、奇数入力キュー部234にも4つに分割した転送宛先グループ毎に、同様に、第1奇数キュー238−1、第2奇数キュー238−2、第3奇数キュー238−3、第4奇数キュー238−4が設けられる。
ここで入力キュー部230を転送宛先毎に見ると、例えば第1転送先グループを例にとると、受信パケットのヘッダ及びこれに続くパケットワードの受信タイミングが、外部クロック周波数の偶数受信タイミングである場合に書き込む第1偶数キュー236−1と奇数受信タイミングである場合に書き込む第1奇数キュー238−1の2つのキューで構成している。
同様に、第2転送宛先グループは第2偶数キュー236−2と第2奇数キュー238−2の2つのキューで構成し、第3転送宛先グループは第3偶数キュー236−3と第3奇数キュー238−3の2つのキューで構成し、更に、第4転送宛先グループは第4偶数キュー236−4と第4奇数キュー238−4の2つのキューで構成している。
更に入力キュー部230に設けた各キュー236−1〜236−4,238−1〜238−4は、1クロックでライトとリードのできるレジスタファイルを使用し、最大8つのパケットを格納できるように8段のパケット格納区画からなる構造をとっている。
図19はヘッダが外部クロックの偶数受信タイミングとなるパケットのラッチタイミングと入力キュー部への書込みを図19の第1宛先転送グループの偶数ラッチ部200、奇数ラッチ部202、第1偶数キュー236−1、第1奇数キュー238−1について示している。なお、偶数ラッチ部200と奇数ラッチ部202はヘッダラッチとデータラッチを備えるが、説明を簡単にするため、1つのラッチで示している。
図19において、外部クロックに同期してヘッダHとデータワードD0〜D7を備えた9ワード長のパケットを受信したとする。ここでヘッダH、ワードD1,D3,D5,D7は外部クロックの偶数タイミングで受信されていることから、偶数ラッチ部200に順次入力され、一方、ワードD0,D2,D4,D6は外部クロックの奇数タイミングで受信されていることから、奇数ラッチ部202に順次入力される。このため偶数ラッチ部200と奇数ラッチ部202は、受信パケットのヘッダを含むパケットワードを2ワードずつ順次ラッチし、ラッチ毎にパス215,225を使用して第1偶数キュー236−1と第1奇数キュー238−1に対し2ワード単位に書込む。パケット最後のパケットワードD7は第1偶数キュー236−1に対する1ワードの書込みとなる。
図20はヘッダが外部クロックの奇数タイミングとなる受信パケットのラッチタイミングと入力キュー部への書込みを示している。ここでヘッダH、ワードD1,D3,D5,D7は外部クロックの奇数受信タイミングで受信されていることから、奇数ラッチ部202に順次入力され、一方、ワードD0,D2,D4,D6は外部クロックの偶数タイミングで受信されていることから、偶数ラッチ部200に順次入力される。
受信パケットの先頭のヘッダHについては、奇数ラッチ部202にラッチされたとき偶数ラッチ部200にはデータがないことから、ヘッダHは第1奇数キュー238−1に対する1ワード書込みとなる。ヘッダHに続くパケットワードD0〜D7については、偶数ラッチ部100と奇数ラッチ部102に2ワードずつ順次ラッチされることから、ラッチ毎にパス215,225を使用して第1偶数キュー236−1と第1奇数キュー238−1に対し2ワード単位に書込む。
特開平9−81508号公報 特許第2912340号公報
しかしながら、このような従来の入力キュー部に対する受信パケットの書込みにあっては、同一宛先への奇数ワード長のパケットが連続する場合に、キューへの書き込みタイミングにより入力キュー部からパケットを読み出し転送する際に、パケット間に隙間が空いてしまう場合があり、スループットが低下する問題がある。
図21は同一宛先に対する5ワード長のパケットが外部クロックの偶数タイミングで連続して受信されたときの第1偶数キュー236−1と第1奇数キュー238−1に対する書込み状態である。最初の受信パケットについては、ヘッダH及びパケットワードD1,D3は外部クロックの偶数タイミングで受信されていることから、第1偶数キュー236−1に書き込まれ、パケットワードD0,D2は外部クロックの奇数タイミングで受信されていることから、第1奇数キュー238−1に書き込まれている。次の受信パケットについても同様である。
このように外部クロックの偶数タイミングで連続して受信したパケットを格納した入力キュー部からパケットを読み出す場合、リードポインタP1〜P3を設定して読み出す。この場合、リードポインタP1,P2については2ワードの並列読出しとなるが、最後のパケットデータD3についてはリードポインタP3による1ワード読出しとなり、パケットを連続して読み出した場合のリードパケット240のパケット間にデータが存在しない空き242が発生、スループットが低下する。
図22は、外部クロックの奇数タイミングで連続して受信した同一宛先のパケットを格納した入力キュー部からパケットを読み出した場合であり、リードポインタP1〜P3を設定して読み出すが、ポインタリードP1によるヘッダHの読出しが1ワード読出しとなり、パケットを連続して読み出した場合のリードパケット244のパケット間にデータが存在しない空き246が発生し、スループットが低下する。
本発明は、入力キュー部を経由したパケット転送のスループットをパケットワードレべルで向上させるクロスバー装置、制御方法及びプログラムを提供することを目的とする。
図1は本発明の原理説明である。本発明はクロスバー装置を提供する。
本発明は、複数のモジュール間で相互にパケットを転送する外部クロック周波数に対し内部クロック周波数を1/2に設定すると共に外部バス幅に対し内部バス幅を2倍に構成し、受信パケットを宛先別に分けて格納した後に読み出すクロスバー装置に於いて、
外部クロックに同期してワード単位で転送されたパケットを受信すると共にパケットのヘッダを含む複数のパケットワードを外部クロックの偶数受信タイミングと奇数受信タイミングに分けて内部クロックに同期して並列出力するパケット受信部と、
パケット受信部から出力された偶数受信タイミングのパケットワードをラッチする偶数ラッチ部と、
パケット受信部から出力された奇数受信タイミングのパケットワードをラッチする奇数ラッチ部と、
偶数ラッチ部から出力された偶数受信タイミングのパケットワードをパケット単位に書込む複数段のパケット格納区画を複数段備えた宛先毎の偶数キューと、
奇数ラッチ部から出力された奇数受信タイミングのパケットワードをパケット単位に書込む複数段のパケット格納区画を備えた宛先毎の奇数キューと、
偶数ラッチ部をバイパスするバイパス部と、
偶数ラッチ部及びバイパス部の出力を奇数キュー部にスワップすると共に、奇数ラッチ部の出力を偶数キュー部にスワップするスワップ回路部と、
複数のパケットを連続して受信した場合、各受信パケットのヘッダが偶数キューと奇数キューの各パケット格納区画に交互に配置されるようにパケットワードを書込む書込制御部と、
偶数キューと前記奇数キューから2ワード単位にパケットワードを並列的に読み出す読出制御部と、
を備えたことを特徴とする。
ここで、間欠的に受信するパケットのヘッダ受信タイミング、及び連続的に受信する先頭パケットのヘッダ受信タイミングを外部クロックの偶数受信タイミングとする。
書込制御部は、複数のパケットを間欠的又は連続して受信した場合、奇数番目の受信パケットのヘッダを偶数キューの奇数段のパケット格納区画に順次配置し、且つ偶数番目の受信パケットのヘッダを奇数キューの偶数段のパケット格納区画に順次配置するようにパケットワードを書き込む。
偶数キュー及び前記奇数キューとして8段構成のパケット格納区画を備えた場合、書込制御部は、1番目、3番目、5番目及び7番目の受信パケットのヘッダを偶数キューの1段目、3段目、5段目及び7段目のパケット格納区画に順次配置し、且つ2番目、4番目、6番目及び8番目の受信パケットのヘッダを奇数キューの2段目、4段目、6段目及び8段目のパケット格納区画に順次配置するようにパケットワードを書き込む。
書込制御部は、宛先の異なるパケットを間欠的又は連続的に受信した際に次のように処理する。
(ケース1)
受信パケットのヘッダが偶数受信タイミングであり、偶数キューと奇数キューのパケット格納区画が奇数段の場合、偶数ラッチ部でラッチした偶数受信タイミングのヘッダを含むパケットワードを偶数キューにおける奇数段のパケット格納区画に書込むと共に、奇数ラッチ部でラッチした奇数受信タイミングのパケットワードを奇数キューにおける奇数段のパケット格納区画に書込む。
(ケース2)
受信パケットのヘッダが偶数受信タイミングであり、偶数キューと奇数キューのパケット格納区画が偶数段の場合、前記偶数ラッチ部でラッチした偶数受信タイミングのヘッダを含むパケットワードをスワップして前記奇数キューにおける偶数段のパケット格納区画に書込むと共に、前記奇数ラッチ部でラッチした奇数受信タイミングのパケットワードをスワップして前記偶数キューにおける偶数段のパケット格納区画に書込む。
書込制御部は、宛先の異なるパケットを間欠的又は連続的に受信した際に、次のように処理する。
(ケース3)
受信パケットのヘッダが奇数受信タイミングで偶数キューと奇数キューのパケット格納区画が奇数段の場合、奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードをスワップして偶数キューにおける奇数段のパケット格納区画に書込むと共に、バイパス部によりバイパスし且つスワップして得られた偶数受信タイミングのパケットワードを奇数キューにおける奇数段のパケット格納区画に書込む。
(ケース4)
受信パケットのヘッダが奇数受信タイミングで偶数キューと奇数キューのパケット格納区画が偶数段の場合、奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードを奇数キューにおける奇数段のパケット格納区画に書込むと共に、バイパス部でバイバスした偶数受信タイミングのパケットワードを偶数キューにおける偶数段のパケット格納区画に書込む。
(3ワード同時書込み)
書込制御部は、ヘッダが偶数受信タイミングの第1宛先パケットに続いてヘッダが奇数受信タイミングの宛先の異なる第2宛先パケットを連続して受信した際に、第1宛先パケットと第2宛先パケットの境界部分につき、
(1)偶数ラッチ部でラッチした第1宛先パケットの最終パケットワードを第1宛先に対応した偶数キューに書込み、
(2)奇数ラッチ部でラッチした第2宛先パケットのヘッダをスワップして第2宛先に対応した偶数キューに書込み、更に、
(3)第1バイパス部から得られた前記第2宛先パケットのヘッダの次のパケットワードをスワップして第2宛先に対応した奇数キューに書込む、
という3パケットワードの同時書込みを行う。
書込制御部は、宛先が同一のパケットを連続的に受信した際に、次のように処理する。
(ケース5)
受信パケットのヘッダが偶数受信タイミングで偶数キューと奇数キューのパケット格納区画が奇数段の場合、偶数ラッチ部でラッチした偶数受信タイミングのヘッダを含むパケットワードを偶数キューにおける奇数段のパケット格納区画に書込むと共に、奇数ラッチ部でラッチした奇数受信タイミングのパケットワードを奇数キューにおける奇数段のパケット区画に書込む。
(ケース6)
受信パケットのヘッダが偶数受信タイミングで偶数キューと奇数キューのパケット格納区画が偶数段の場合、偶数ラッチ部でラッチした偶数受信タイミングのヘッダを含むパケットワードをスワップして奇数キューにおける偶数段のパケット格納区画に書込むと共に、奇数ラッチ部でラッチした奇数受信タイミングのパケットワードをスワップして偶数キューにおける偶数段のパケット格納区画に書込む。
書込制御部は、宛先が同一のパケットを連続的に受信した際に、受信パケットのヘッダが奇数受信タイミングの場合であり、更に、前段パケットのヘッダが偶数受信タイミングの場合、次のように処理する。
(ケース7)
偶数キューと奇数キューのパケット格納区画が奇数段となる場合、奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードをスワップして偶数キューにおける奇数段のパケット格納区画に書込むと共に、偶数ラッチ部でラッチした偶数受信タイミングのパケットワードをスワップして前記偶数キューにおける奇数段のパケット区画に書込む。
(ケース8)
偶数キューと奇数キューのパケット格納区画が偶数段となる場合、奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードを奇数キューにおける偶数段のパケット格納区画に書込むと共に、偶数ラッチ部でラッチした偶数受信タイミングのパケットワードを偶数キューにおける偶数段のパケット格納区画に書込む。
書込制御部は、宛先が同一のパケットを連続的に受信した際に、受信パケットのヘッダが奇数受信タイミングであり、更に前段パケットのヘッダが奇数受信タイミングの場合、次のように処理する。
(ケース9)
偶数キューと奇数キューのパケット格納区画が奇数段となる場合、奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードをスワップして偶数キューにおける奇数段のパケット格納区画に書込むと共に、偶数ラッチ部でラッチした偶数受信タイミングのパケットワードをバイパス部でバイパスし且つスワップして奇数キューにおける奇数段のパケット区画に書込む。
(ケース10)
偶数キューと奇数キューのパケット格納区画が偶数段となる場合、奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードを奇数キューにおける偶数段のパケット格納区画に書込むと共に、偶数ラッチ部でラッチした偶数受信タイミングのパケットワードを偶数キューにおける偶数段のパケット格納区画に書込む。
書込制御部は、
偶数ラッチ部と奇数ラッチ部にヘッダを含むパケットワードが2ワードラッチされたタイミング、
偶数ラッチ部と奇数ラッチ部にヘッダを含むパケットワードが2ワードラッチされ且つスワップされたタイミング、又は
奇数ラッチ部にヘッダを含むパケットワードがラッチされ且つバイパス部からバイパスされたパケットワードが出力されたタイミング、
のいずれかで偶数キューと奇数キューに2ワードのパケットワードを並列的に書込む。
読出制御部は、
偶数キューと奇数キューの奇数段のパケット格納区画から2ワード単位にパケットワードを並列的に読出し、
次の偶数段のパケット収納区画の境界部分では、先行する奇数段のパケット格納区画の最終ワードと後続する偶数段のパケット格納区画のヘッダとの2ワードを並列的に読出し、
ヘッダを読み出した後の偶数段のパケット収納区画の残りパケットワードについては、偶数キューと前記奇数キューにおける偶数段のパケット格納区画の1ワードずれた位置から2ワード単位をパケットワードを並列的に読み出し、以後これを繰り返す。
(方法)
本発明は、クロスバー装置の制御方法を提供する。本発明は、複数のモジュール間で相互にパケットを転送する外部クロック周波数に対し内部クロック周波数を1/2に設定すると共に外部バス幅に対し内部バス幅を2倍に構成し、受信パケットを宛先別に分けて格納した後に読み出すクロスバー装置の制御方法に於いて、
外部クロックに同期してワード単位に転送されたパケットを受信すると共にパケットのヘッダを含む複数のパケットワードを外部クロックの偶数受信タイミングと奇数受信タイミングに分けて内部クロックに同期して並列出力するパケット受信ステップと、
パケット受信ステップから出力された偶数受信タイミングのパケットワードを偶数数ラッチ部にラッチする偶数ラッチステップと、
パケット受信ステップから出力された奇数受信タイミングのパケットワードを奇数ラッチ部にラッチする奇数ラッチステップと、
偶数ラッチ部から出力された偶数受信タイミングのパケットワードを、複数段のパケット格納区画を備えた宛先毎の偶数キューにパケット単位に書込む偶数キューステップと、
奇数ラッチ部から出力された奇数受信タイミングのパケットワードを、複数段のパケット格納区画を備えた宛先毎の奇数キューにパケット単位に書込む奇数キューステップと、
偶数ラッチ部をバイパスするバイパスステップと、
偶数ラッチ部及びバイパス部の出力を奇数キューにスワップすると共に、奇数ラッチ部の出力を偶数キューにスワップするスワップステップと、
複数のパケットを連続して受信した場合、各受信パケットのヘッダが偶数キューと奇数キューの各パケット格納区画に交互に配置されるようにパケットワードを書込む書込制御ステップと、
偶数キューと奇数キューから2ワード単位にパケットワードを並列的に読み出す読出制御ステップと、
を備えたことを特徴とする。
(プログラム)
本発明は、クロスバー装置のコンピュータで実行されるプログラムを提供する。本発明のプログラムは、複数のモジュール間で相互にパケットを転送する外部クロック周波数に対し内部クロック周波数を1/2に設定すると共に外部バス幅に対し内部バス幅を2倍に構成し、受信パケットを宛先別に分けて格納した後に読み出すクロスバー装置のコンピュータに、
外部クロックに同期してワード単位に転送されたパケットを受信すると共にパケットのヘッダを含む複数のパケットワードを外部クロックの偶数受信タイミングと奇数受信タイミングに分けて内部クロックに同期して並列出力するパケット受信ステップと、
パケット受信ステップから出力された偶数受信タイミングのパケットワードを偶数ラッチ部にラッチする偶数ラッチステップと、
パケット受信ステップから出力された奇数受信タイミングのパケットワードを奇数ラッチ部にラッチする奇数ラッチステップと、
偶数ラッチ部から出力された偶数受信タイミングのパケットワードを、複数段のパケット格納区画を備えた宛先毎の偶数キューにパケット単位に書込む偶数キューステップと、
奇数ラッチ部から出力された奇数受信タイミングのパケットワードを、複数段のパケット格納区画を備えた宛先毎の奇数キューにパケット単位に書込む奇数キューステップと、
偶数ラッチ部をバイパスするバイパスステップと、
偶数ラッチ部及びバイパス部の出力を奇数キューにスワップすると共に、奇数ラッチ部の出力を偶数キューにスワップするスワップステップと、
複数のパケットを連続して受信した場合、各受信パケットのヘッダが偶数キューと奇数キューの各パケット格納区画に交互に配置されるようにパケットワードを書込む書込制御ステップと、
偶数キューと奇数キューから2ワード単位にパケットワードを並列的に読み出す読出制御ステップと、
を実行させることを特徴とする。
なお、本発明のクロスバー装置の制御方法及びプログラムの詳細は、本発明のクロスバー装置の場合と基本的に同じになる。
本発明によれば、複数の受信パケットを入力キュー部に順次格納する場合に、パケットのヘッダが偶数キューと奇数キューの各パケット格納区画に交互に配置されるようにパケットワードを書込むことで、読み出すときにタイミングが揃うようにキューにデータを書き込むことができ、読み出し時にタイミングの隙間が発生することを防ぐ。これにより奇数ワード長のパケットが連続して受信されるときの入力キューを経由したパケット転送を連続するタイミングで行ってスループットを向上させることができる。
図2は本発明のクロスバー装置を用いる情報処理システムの説明図である。図2において、本発明のクロスバー装置10は、この例にあってはMPUや入出力サブシステムなどを構成するLSIモジュール12−1,12−2,12−3,12−4との間を外部バスにより接続し、LSIモジュール12−1〜12−4から自己を含む他のモジュールを宛先とするデータパケット(以下、単に「パケット」という)を受信して内部の入力キュー部に格納し、続いて入力キュー部から読み出して転送先ごとに振り分けて出力キュー部に格納した後に相手先に転送する。
図3は本発明によるクロスバー装置の回路ブロック図である。クロスバー装置10は入力ポート18、振分け選択部20及び出力ポート22で構成される。入力ポート18には、図2に示したLSIモジュール12−1〜12−4からの4本の外部バス16が出力される。また出力ポート22からは、図2のLSIモジュール12−1〜12−4に対する出力用の外部バス24が接続されている。
入力ポート18には、外部バス16の接続側からパケット受信部26、ラッチ部28、入力キュー部30が設けられている。クロスバー装置10に接続した外部バス16は、外部クロックにより各LSIモジュールからのパケットをパケットのワード単位に転送しており、外部バス16のクロック周波数は例えば1.3GHzであり、バス幅は36ビット(4バイト)となっている。
これに対しクロスバー装置10の内部バスは内部クロックによりパケットを転送しており、内部クロックのクロック周波数は外部クロック周波数の半分の667MHzであり、バス幅は36ビットバスを並列に設けることで、2倍の72ビット(8バイト)としている。
パケット受信部26は外部クロックに同期してLSIモジュールからワード単位に転送されたパケットを受信すると、パケットのヘッダを含む複数のパケットワードを外部クロックの偶数受信タイミングと奇数受信タイミングに分けて、内部クロックに同期して並列的に出力する。パケット受信部26に続いて設けたラッチ部28は、入力キュー部30に受信パケットのヘッダ及びこれに続くパケットワードを原則として2ワード単位で書き込むためのラッチを行う。またヘッダについてはECC検出訂正を行う。
入力キュー部30には、宛先となる4つのLSIモジュール12−1〜12−4に対応して、第1入力キュー部36−1、第2入力キュー部36−2、第3入力キュー部36−3及び第4入力キュー部36−4が設けられている。また各入力キュー部36−1〜36−4は第1入力キュー部36−1に示すように、奇数キューと偶数キューの2つのキューを備えている。
振分け選択部20は、入力キュー部30において、第1入力キュー部36−1〜第4入力キュー部36−4に分けて宛先ごとに格納した受信パケットを読み出し、相手先ごとに振分け選択して出力ポート22に出力する。出力ポート22には出力キュー部34とパケット送信部35が設けられている。出力キュー部34は宛先への転送タイミングをとるためにパケットを格納した後、連続的に読み出し、パケット送信部35で外部クロックに同期したパケットに再構成し、対応する外部バス24から相手先のLSIモジュールに対しパケットを転送する。
図4は本発明の実施形態となる図3の入力ポート18に設けたラッチ部28及び入力キュー部の詳細構成の回路ブロック図である。図4において、ラッチ部28は偶数ラッチ部28−1と奇数ラッチ部28−2で構成される。また入力キュー部30は入力偶数キュー部58−1と入力奇数キュー部58−2で構成される。
偶数ラッチ部28−1には、入力段のラッチ37−1に続いて、ヘッダ部通過パス40−1、データ部通過パス42−1、更にバイパス部52の3つのパスに内部バスを分岐している。ヘッダ部通過パス40−1にはヘッダECC検出訂正部44−1、ヘッダラッチ46−1が設けられ、データ部通過パス42−1にはデータラッチ48−1が設けられている。
ヘッダラッチ46−1及びデータラッチ48−1の出力はセレクタ50−1に入力され、セレクタ50−1からのパスは通常パス54として入力偶数キュー部58−1に与えられている。バイパス部52はヘッダラッチ46−1及びデータラッチ48−1をバイパスしており、これによってヘッダラッチ46−1にヘッダがラッチされたタイミングより1つ後のタイミングのデータがバイパス部52から出力できる。
同様に、データラッチ48−1についても、パケットワードを保持した状態で、次のタイミングで得られるパケットワードをバイパス部52より出力できるようにしている。バイパス部52の入力キュー部30に対するパスは、バイパスパス55として示している。
一方、奇数ラッチ部28−2は、入力段のラッチ37−2からの内部バスをヘッダ部通過パス40−2とデータ部通過パス42−2の2つの内部バスに分岐し、ヘッダ部通過パス40−2にはヘッダECC検出訂正部44−2とヘッダラッチ46−2を設け、データ部通過パス42−2にはデータラッチ48−2を設け、それぞれセレクタ50−2に入力し、セレクタ50−2の出力を通常パス56として入力奇数キュー部58−2に接続している。この奇数ラッチ部28−2は、バイパス部52を設けていない点以外は偶数ラッチ部28−1と同じ構成である。
入力キュー部30に設けた入力偶数キュー部58−1には、図2に示した宛先となるLSIモジュール12−1〜12−4に対応して、第1偶数キュー60−1、第2偶数キュー60−2、第3偶数キュー60−3、第4偶数キュー60−4が設けられ、偶数ラッチ部28−1からの通常パス54を並列的に入力している。
一方、入力奇数キュー部58−2も、図2のLSIモジュール12−1〜12−4に対応して、第1奇数キュー62−1、第2奇数キュー62−2、第3奇数キュー62−3及び第4奇数キュー62−4を設けており、奇数ラッチ部28−2からの通常パス56を並列的に入力している。
更に入力キュー部30にはスワップ回路部64が設けられる。スワップ回路部64は、入力偶数キュー部58−1側に設けたセレクタ66−1〜66−4、セレクタ68−1〜68−4、及び入力奇数キュー部58−2側に設けたセレクタ70−1〜70−4と、これらに対する入出力側のパス接続で構成される。
即ち、偶数ラッチ部28−1からの通常パス54は、セレクタ66−1〜66−4を介してセレクタ68−1〜68−4にそれぞれ並列的に入力すると共に、入力奇数キュー部58−2側に分岐してセレクタ70−1〜70−4に入力している。
また奇数ラッチ部28−2からの通常パス56についても、入力奇数キュー部58−2のセレクタ70−1〜70−4に入力すると同時に、入力偶数キュー部58−1側に分岐した後にセレクタ68−1〜68−4に入力している。これによって、通常パス54からのパケットを本来の入力偶数キュー部58−1に格納する以外に、スワップ回路部64によるスワップ動作(交換動作)で入力奇数キュー部58−2側に切り替えて格納することができる。この点は奇数ラッチ部28−2からの通常パス56についても同様である。
更に、偶数ラッチ部28−1に設けたバイパス部52からのバイパスパス55についても、セレクタ66−1〜66−4に入力することで、入力偶数キュー部58−1側への格納以外に入力奇数キュー部58−2側にスワップして格納することが可能である。
ここで第1偶数キュー60−1〜第4偶数キュー60−4、及び第1奇数キュー62−1〜第4奇数キュー62−4のそれぞれは、先入れ後出しとなるFIFOバッファで構成されており、8つのパケットを格納可能な8段のパケット収納区画を備えている。各パケット収納区画内に対する書込みと読出しは、パケットを構成するヘッダ及びパケットワードのワード単位で行われ、ワード単位の書込み読出しは内部クロックの1クロックで書込み及び読出しができる1リード及び1ライトのレジスタファイルである。
更に、ラッチ部28及び入力キュー部30に対しては制御部72が設けられており、制御部72には入力キュー部30に対する書込制御部74と読出制御部76を設けている。書込制御部74は、複数のパケットを受信した際に各受信パケットのヘッダが、偶数キューと奇数キューの各パケット格納区画に交互に配置されるように、ワード単位の書込みを実行する。
このため本発明にあっては、連続的または間欠的に受信するパケットにつき、先頭パケットのヘッダは必ず外部クロックの偶数受信タイミングとなり、したがって先頭パケットのヘッダは入力偶数キュー部58−1側の対応する偶数キューに格納される。そして2番目以降のパケットのヘッダについては、先頭が偶数キューであることから、次のパケットは奇数キュー、次は偶数キュー、次は奇数キューというように、交互に格納される。
このため第1偶数キュー60−1〜第4偶数キュー60−4に示すように、8段のパケット格納区画につき奇数段目となる1段目、3段目、5段目、7段目にヘッダHが配置される。これに対し第1奇数キュー62−1〜第4奇数キュー62−4については、8段のパケット格納区画のうちの偶数段目となる2段目、4段目、6段目、8段目にヘッダHが配置される。したがって、同じ宛先に対応した例えば第1偶数キュー60−1と第1奇数キュー62−1について見ると、1段目から8段目の格納区画につき、ヘッダHは偶数キュー側から始まり、奇数キューとの間で交互に格納されることになる。
このような同じ宛先に対応した偶数キューと奇数キューに対する受信パケットのヘッダの交互の書込みは、偶数キュー及び奇数キューから連続してパケットを読み出す際にパケットの間に空きタイミングを生ずることなく、2ワード単位の連続的な読出しを可能とする書込みを実現している。
制御部70に設けた読出制御部76は、同じ宛先に対応した偶数キューと奇数キューから2ワード単位にパケットワードを並列的に読み出す。この並列読出しは、書込制御部74による書込みの際に、偶数キューと奇数キューに対し偶数キュー側を先頭に交互にヘッダが配置されるように書き込まれているためであり、偶数キューと奇数キューから並列的に連続読出しする際にパケット間に空きタイミングを生ずることがなく、連続的に2ワード読出しを行うことができる。
図5は本発明のクロスバー装置における外部バスと内部バスのパケット転送の説明図である。図5において、外部バス16は、例えば外部クロック78として1.3GHzのクロックを使用してパケットデータ80をワード単位に転送している。この外部バス16のバス幅は4バイト(36ビット)であり、この例ではパケット82−1〜82−8の8パケットを連続して転送しており、パケット82−1〜82−8のそれぞれはヘッダHと番号0〜3で示す4ワードのパケットワードD0〜D3から構成されている。
パケットデータ80の受信タイミングは、外部クロック78による先頭のパケット82−1のヘッダHの受信タイミングが必ず偶数受信タイミング84となり、このため次のパケットワードD0の受信タイミングが奇数受信タイミング86となる。このような奇数ワード長のパケットが連続して受信された場合、2番目のパケット82−2のヘッダHは奇数受信タイミング86、3番目のパケット82−3のヘッダHは偶数受信タイミング84と、交互に受信タイミングが変化している。
クロスバー装置の内部バス38は、内部クロック88に示すように、外部クロック78に対し半分の周波数の667MHzであり、バス幅は2倍の8バイト(72ビット)となっている。このため外部バス16から転送されたパケット82−1〜82−8は、内部バス38にあっては2ワードで1つのバス幅となるように変換された並列パケットデータとして転送される。
このとき先頭のパケット82−1のヘッダH及びパケットワードD1,D3は、外部バス16における偶数受信タイミング84であることから偶数側の内部バスで転送され、パケットワードD0,D2は奇数受信タイミング86であることから奇数側の内部バスで転送される。なお、パケットワードの数字0〜3はパケットワードD0〜D3を表している。
図6は受信パケットを偶数キューと奇数キューに交互に書き込む本発明によるキュー書込み処理の説明図である。図6は図4の偶数ラッチ部28−1と奇数ラッチ部28−2に対するラッチ入力タイミング90と、その後の偶数キュー60と奇数キュー62に対する書込結果を示している。ラッチ入力タイミング90は、図5の内部バス38に示す同じ宛先に対し連続する8個のパケット82−1〜82−8を受信した場合のパケットデータであり、図4における通常パス54,56を使用して2ワード単位に偶数キュー60と奇数キュー62に並列的に書き込まれる。
即ち、偶数キュー60と奇数キュー62は8段のパケット格納区画92−1〜92−8を備えており、ラッチ入力タイミングで先頭パケット82−1のヘッダHとパケットワードD0が図4のヘッダラッチ46−1とデータラッチ48−2にラッチされたタイミングで、偶数キュー60と奇数キュー62の1段目のパケット格納区画92−1の先頭位置にライトポインタP1の指定で書き込まれる。続いて、パケット82−1の偶数側のパケットワードD1と奇数側のパケットワードD2がライトポインタP2の設定で並列的に書き込まれる。
続いて、パケット82−1と次のパケット82−2のパケット境界にあっては、パケット82−1の偶数側の最後のパケットワードD3と次のパケット82−2のヘッダHとが、ライトポインタP3により偶数キュー60のパケット格納区画92−1と奇数キュー62の次のパケット格納区画92−2に並列的に書き込まれる。
続いてパケット82−2のパケットワードD0,D1の並列書込みを行った後、次のパケット82−3とのパケット境界にあっては、パケット82−2の最後のパケットワードD3と次のパケット82−3のヘッダHの並列書込みを行う。以下、残りのパケット82−3〜82−8につき、これを繰り返す。
この結果、8つのパケット82−1〜82−8を格納した偶数キュー60と奇数キュー62にあっては、偶数キュー60側を先頭として奇数キュー62との間で、パケット格納区画92−1〜92−8の順番にヘッダHが交互に書き込まれた格納状態を作り出すことができる。
ここで本発明のパケット書込処理にあっては、図6に示したヘッダが偶数受信タイミングとなるパケットの書込みを含めて次の3通りのキュー書込パターンがある。
(1)パケットのヘッダが外部クロックの偶数受信タイミングとなる第1ケース。
(2)パケットのヘッダが外部クロックの奇数受信タイミングとなる場合で、その前段にパケットが存在しないか、あるいは偶数受信タイミングを持つ宛先の異なるパケットが存在する第2ケース。
(3)パケットのヘッダが外部クロックの奇数受信タイミングであり、その前段に偶数受信タイミングで宛先が同じパケットが存在する第3ケース。
図7(A)は第1ケースであり、ヘッダの外部クロックによる受信タイミングが偶数受信タイミングの場合である。この場合、ラッチ入力タイミング90−1について見ると、偶数受信タイミングのヘッダHと奇数受信タイミングのパケットワードD0が並列的に入力されて、偶数ラッチ部28−1と奇数ラッチ部28−2にラッチされた後、通常パス54,58により偶数キュー60と奇数キュー62に並列的に書き込まれる。
なお、ヘッダについては実際には図4に示すように、ヘッダラッチ46−1,46−2にラッチされ、パケットワードについてはデータラッチ48−1,48−2にラッチされるが、説明を簡単にするため、単に偶数ラッチ部28−1及び奇数ラッチ部28−2として示している。また図7(A)の第1ケースは単独でパケットを受信した場合であるが、連続した場合には図6に示したようになる。
図7(B)は第2ケースであり、ラッチ入力タイミング90−2に示すように、ヘッダHが外部クロックの奇数受信タイミングとなることで奇数側の内部バスにより転送されている。ここで奇数受信タイミングのパケットに対し先行するパケットがなかった場合には、ヘッダHが奇数ラッチ部28−2にラッチされたタイミングでバイパス部52からのパス55により次の偶数受信タイミングのパケットワードD0が得られていることから、このバイパスパス55を使用してヘッダHとパケットデータD0を偶数キュー60と奇数キュー62に並列的に書き込む。残りのパケットワードD1,D2についても同様に、パス58とバイパスパス55を使用して並列的に書き込み、最後のパケットワードD3はパス58で書き込む。
更に第2ケースにあっては、ヘッダ部を奇数受信タイミングとしたパケットの前段にヘッダを偶数受信タイミングとした宛先の異なるパケットが存在した場合には、後の説明で明らかにする3つのキューに対する3ワード同時書込処理を実行する。
図7(C)は第3ケースであり、ラッチ入力タイミング90−3に示すように、パケットのヘッダ部が外部クロックの奇数受信タイミングの場合であり、且つその前段に偶数受信タイミングのヘッダを持つ宛先が同じパケットが存在した場合である。この場合には、ヘッダHが奇数ラッチ部28−2にラッチされたタイミングでは、1つ前のタイミングで前段のパケットの最後のパケットワードDγが偶数ラッチ部28−1に保持されていることから、通常パス54,58を使用して偶数キュー60及び奇数キュー62にパケットデータDγとヘッダHを並列的に書き込んだ後、残りのパケットワードD0,D1,D2,D3については2ワード単位に通常パス54,58を使用して並列的に書き込む。
図8は同じ宛先の受信パケットが連続した場合のキュー書込処理の説明図である。図8(A)はラッチ入力タイミングであり、先頭のパケット82−1及び2番目のパケット82−2は宛先が同じ第1入力キュー部36−1となっている。このような場合、先頭のパケット82−1については、図7(A)の第1ケースによる書込みが第1偶数キュー60−1と第1奇数キュー62−1の第1パケット格納区画92−11に対し行われる。
次の同じ宛先を持つパケット82−2の書込みは図7(C)の第3ケースによる書込みであり、第1偶数キュー60−1と第1奇数キュー62−1の第2パケット格納区画92−12に対し書込みが行われる。このときパケット82−1と82−2の境界部分における書込みは、ライトポインタP3に示すように、先行するパケット82−1の最後のパケットワードD3と後続するパケット82−2のヘッダHの並列書込みが行われることになる。
図9は図7(B)の第2ケースにおいて、偶数受信タイミングのパケットに続いて宛先の異なる奇数受信タイミングのパケットが連続した場合のパケット境界での3ワード同時書込処理の説明図である。
図9(A)はラッチ入力タイミングであり、先頭のパケット82−1はヘッダHが外部クロックの偶数受信タイミングであり、宛先は図9(B)の第1入力キュー部36−1となっている。次のパケット82−2はヘッダHが外部クロックの奇数受信タイミングであり、宛先が図9(B)の異なる宛先である第2入力キュー部36−2となっている。
この場合、先頭のパケット82−1については、図7(A)の第1ケースに従って、第1入力キュー部36に対しヘッダH、パケットワードD0及びパケットワードD1,D2が、ライトポインタP1,P2に示すように並列的に第1偶数キュー60−1,第1奇数キュー62−1に書き込まれる。
続いて、パケット82−1の最後のパケットワードD3が図4のデータラッチ48−1にラッチされたとき、次のパケット82−2のヘッダHがヘッダラッチ46−2にラッチされ、更にパケット82−2のパケットワードD0がバイバスパス55を介して出力されている。
そこで、このようなパケット82−1と次のパケット82−2のパケット境界にあっては、第1偶数キュー60−1に対するパケットデータD3の書込み、第2偶数キュー60−2に対する次のパケット82−2のヘッダHの書込み、更に第2奇数キュー62−2に対する次のパケット82−2のパケットワードD0の書込みの3ワード同時書込みを実行する。
具体的には、先行するパケット82−1の最後のパケットワードは図5におけるデータラッチ48−1にラッチされていることから、そのまま通常パス54を通して第1偶数キュー60−1にライトポインタP3による指定で書き込む。
また、後続するパケット82−2のヘッダHはヘッダラッチ46−2にラッチされていることから、通常パス56からスワップ回路部64のセレクタ68−2で選択するスワップ動作により第2偶数キュー60−2にライトポインタP3で示すように書き込む。
更に、バイパス部52よりバイパスパス55を介して得られている後続するパケット82−2のパケットワードD0については、スワップ回路部64のセレクタ66−2で選択した後に、セレクタ70−2で選択するスワップ動作により、第2奇数キュー62−2に書き込む。
このようなパケット境界における3ワード同時書込みが終了すると、後続するパケット82−2の残りのパケットワードD1〜D3については、同様に、バイパスとスワップを有効とした状態で内部書込みを行い、最後のパケットワードD3はスワップにより第2偶数キュー60−2側に書き込む。
図10は入力キュー部から偶数受信タイミングのパケットを連続して読出す本発明の処理を従来と対比して示した説明図である。図10(A)は従来の読出し処理であり、図10(B)が本発明による読出し処理である。
図10(A)の従来の読出し処理にあっては、第1偶数キュー60−1と第1奇数キュー62−1に対する偶数受信タイミングのヘッダHの書き込みは、ヘッダHがそれぞれのパケットについて第1偶数キュー60−1に位置するように書込まれており、このためリードポインタP1〜P6の指定により連続的に読み出した場合、リードされたパケットデータ100はパケット境界部分にタイミングの空き102を発生している。
これに対し図10(B)の本発明の読出し処理にあっては、偶数受信タイミングのパケットを連続して受信した場合についても、そのヘッダHが第1偶数キュー60−1を第1奇数キュー62−1との間で交互に配置されるように書込まれているため、リードポインタP1〜P5に示すように連続的に読み出した場合、必ず2ワード単位の読み出しとなり、リードパケット104についてパケットの境界部分にタイミングの空きを発生することがなく、これによって入力キュー部を経由したパケット転送のスループットを向上させることができる。
図11は入力キュー部から奇数受信タイミングのパケットを連続して読み出す本発明の処理を従来と対比して示した説明図である。図11(A)が従来処理の説明図であり、図11(B)が本発明の処理の説明図である。
図11(A)の従来処理の説明図にあっては、奇数受信タイミングのパケットが連続した場合、第1奇数キュー62−1側に各パケットのヘッダHが位置するように書き込まれているため、読出し処理の際にはリードポインタP1〜P6の指定で読み出されたリードパケット94はパケット境界部分にタイミングの空き96を発生している。
これに対し図11(B)の本発明にあっては、奇数受信タイミングのパケットであっても、連続して受信した場合には先頭のパケットについては必ず偶数側となる第1偶数キュー60−1にヘッダHが配置され、次のパケットについては必ず第1奇数キュー62−1側となるようにヘッダHが格納される書き込みが行われているため、リードポインタP1〜P5の指定でワード単位に読み出されたリードパケット98にはパケット境界部分の空きが発生せず、スループットを向上させることができる。
図12及び図13は本発明の入力キュー部に対するパケット書込み処理のフローチャートである。この書込み処理にあっては、ステップS1で現在処理対象となったパケットが前段のパケットに連続して入力されているか否かチェックし、連続している場合にはステップS2に進み、連続していない場合にはステップS3に進む。
ステップS2にあっては連続しているパケットの前段のパケットと異なるキューへの入力か否か、即ち宛先の異なるパケットか否かチェックし、宛先が異なる場合にはステップS3に進み、宛先が同一の場合にはステップS11に進む。宛先の異なる場合にはステップS3で現在処理対象となっているパケットのヘッダが外部ブロックの偶数受信タイミングの入力か否かチェックし、偶数受信タイミングであればステップS4に進み、奇数受信タイミングであればステップS7に進む。
ステップS4では入力キューの書込み先が奇数段であるか否かチェックし、奇数段であればステップS5に進み、通常パスを選択して書き込む。このステップS5にいたる処理をケース1の処理とする。
ステップS4で入力キューの書き込み先が偶数段である場合にはステップS6に進み、スワップパスを選択して書き込む。このステップS6にいたる処理をケース2の処理とする。
一方、ステップS3でパケットが奇数受信タイミングであった場合にはステップS7でバイパスパスをセレクトした後、ステップS8で入力キューの書き込み先が奇数段か否かチェックする。奇数段であった場合にはステップS9に進み、スワップパスを選択して書き込む。これをケース3とする。
またステップS8で入力キューの書き込み段が偶数段であった場合にはステップS10に進み、通常パスを選択して書き込む。このステップS10に至る処理をケース4とする。
ステップS2で前段パケットと同一宛先となるキューへの入力が判別された場合にはステップS11でパケットが偶数受信タイミングであればステップS12に進み、入力キューの書き込み先が奇数段であればステップS13で通常パスを選択して書き込む。このステップS13にいたる処理をケース5とする。
またステップS12で入力キューの書き込み先が偶数段であった場合にはステップS14に進み、スワップパスを選択して書き込む。このステップS14に至る処理をケース6とする。
ステップS11で同一宛先となるパケットの受信タイミングが外部クロックの奇数受信タイミングであった場合には図13のステップS15に進み、前段のパケットが偶数受信タイミングであればステップS16で入力キューの書き込み先が奇数段か否かチェックし、奇数段であればステップS17に進み、スワップパスを選択して書き込む。このステップS17にいたる処理をケース7とする。
またステップS16で入力キューの書き込み段が偶数段であった場合にはステップS18で通常パスを選択して書き込む。このステップS18にいたる処理をケース8とする。
ステップS15で前段のパケットが同一宛先のキューであり、パケットが奇数受信タイミングである場合に前段のパケットが奇数受信タイミングであった場合、ステップS19に進みバイパスパスを選択して後、ステップS20で入力キューの書き込み先が奇数段であればステップS21に進み、スワップパスを選択して書き込む。このステップS21に至る処理をケース9とする。
またステップS20で入力キューの書き込み段が偶数段であった場合にはステップS22に進み、通常パスを選択して書き込む。このステップS22に至る処理をケース10とする。
図14は図12のフローチャートにおけるケース1とケース2の書き込み処理の説明図である。図14(A)はケース1の処理であり、
(1)パケットが連続入力または単独入力(間欠入力)であり、
(2)連続入力の場合、前段のパケットと異なる宛先であり、
(3)パケットが偶数受信タイミングであり、
(4)入力キューの書き込み段が奇数段の場合である。
このような(1)〜(4)の条件のもとにケース1にあっては、ラッチ入力タイミング106で得られたパケットにつき、通常パス54,56をセレクトし、偶数キュー60と奇数キュー62の奇数段#1に書き込みを行う。
図14(B)はケース2の場合であり、図14(A)のケース1と異なる点は(4)の入力キューの書き込み段が偶数段から奇数段となっている点である。この場合にはラッチ入力タイミング106のパケットについてはケース1と同じであるが、格納先となる偶数キュー60と奇数キュー62の格納位置が偶数段#2となっており、偶数段#2についてはヘッダHを必ず奇数キュー62側に配置しなければならない。
そこで、ラッチ入力タイミング106にラッチされたデータに対し、通常パス54と通常パス56を交換するスワップパス108を選択し、偶数キュー60と奇数キュー62に書き込む。
図15は図12のフローチャートにおけるケース3とケース4の書き込み処理の説明図である。図15(A)はケース3であり、ケース1の条件(3)が偶数受信タイミングから奇数受信タイミングとなった場合である。
即ち、図15(A)のようにラッチ入力タイミング110において受信パケットのヘッダHは奇数受信タイミングとなることで、奇数側のパスに位置しており、偶数キュー60と奇数キュー62の格納先は奇数段#1であることから、奇数受信タイミングのヘッダHであっても必ず偶数キュー60側に配置しなければならない。したがって、ラッチ入力タイミング110における奇数側のヘッダHについてはスワップパス114により偶数キュー60側に送って格納する。
またヘッダHに続くパケットワードD0については、バイパス部52からのバイパスパス55を選択し且つスワップ回路部64によりスワップパスを選択することにより、バイパス及びスワップパス112として奇数キュー62に書き込む。同様なスワップパス114とバイパス及びスワップパス112を維持した状態で残りのパケットワードD1〜D3について偶数キュー60と奇数キュー62の奇数段#1に対する書き込み処理を行う。
図15(B)は図12のステップS10におけるケース4の場合である。ケース4は図15(A)のケース3における偶数キュー60と奇数キュー62に対する書き込み段が奇数段#1から偶数段#2に変化した場合である。この場合には通常パス54,56を選択してそのまま書き込むことになる。
次に図12のケース5及びケース6は、図14に示したケース1,ケース2の前段のパケットが異なる宛先のパケットに対し、同一宛先のパケット、すなわち同一キューに対する入力に変わった場合である。この場合にはケース5は図14(A)のケース1と同じであり、またケース6は図14(B)のケース2と同じになる。
図16は図13のステップS17,18に至るケース7とケース8の説明図である。図16(A)のケース7は、前段のパケットと同じ宛先のパケットのヘッダが外部クロックの奇数受信タイミングであり、このとき前段のパケットが偶数受信タイミングであり、更に入力キューの書き込み段が奇数受信タイミングの場合である。
即ち、図16(A)のラッチ入力タイミング116に示すように、現在処理対象となっているパケット82−2の前段のパケット82−1はヘッダHが偶数受信タイミングであり、またパケット82−2の偶数キュー60と奇数キュー62への書き込み先が奇数段#3となっている。
この場合パケット82−2のヘッダHについては、格納先が奇数段#3であることから必ず偶数キュー60側に配置しなければならず、したがって通常パス54,56を交換したバイパス及びスワップパス118により入れ替えて偶数キュー60にヘッダHを書き込むようにする。
図16(B)はケース8であり、ケース8は図16(A)のケース7に対し入力キューの書込段が偶数段の場合である。この場合、ラッチ入力タイミング116がパケット82−2はケース7と同じであるが、偶数キュー60と奇数キュー62の格納先が偶数段#4であることから通常パス54,56をセレクトしてそのまま書き込む。
図17は図13のケース9とケース10の処理である。図17(A)はケース9の処理であり、ケース9は図16(A)のケース7に対し、前段のパケットが奇数受信タイミングの場合である。
図17(A)のケース9において、ラッチ入力タイミング120のようにパケット処理対象となっているパケット82−2のヘッダHは奇数受信タイミングであり、前段のパケット82−1もヘッダHは奇数受信タイミングとなっている。そしてパケット82−2の格納先は偶数キュー60と奇数キュー62の奇数段#3であることから、パケット82−2のヘッダーHは偶数キュー60側に配置しなければならない。
このためヘッダHについてはスワップパス121を選択し、また次のパケットワードD0についてはバイパスと同時にスワップを行うことから、バイパス及びスワップパス122を選択して書き込む。
図17(B)は図13のケース10であり、この場合には偶数キュー60と奇数キュー62の格納先が偶数段#4であることから通常パス54,56をそのままセ選択して書き込む。
このようなケース1〜ケース10の書込み処理の結果、パケットの連続かあるいは宛先が同一か異なるかにかかわらず、結果として図6に示したように偶数キュー60を起点として奇数キュー62との間で交互にパケット格納を順番にヘッダが書込まれ、これによって偶数キュー60と奇数キュー62からパケットを連続して読出す際に、図10(B)及び図11(B)に示したように、入力パケットのパケット境界部分にパケット空きを生ずることなく連続的に読み出してスループットを向上させることができる。
さらに本発明は図4に示した制御部70としてプロセッサを使用していることから、このプロセッサに図13及び図14に示したフローチャートの内容のプログラムを実行させることで制御処理を実現でき、本発明はこの制御部70で実行するプログラムそのものも提供する。
尚、本発明はその目的と利点を損なうことのない適宜の変形を含む。更に上記の実施形態に示した数値による限定は受けない。
ここで本発明の特徴をまとめて列挙すると次の付記のようになる。
(付記)
(付記1)
複数のモジュール間で相互にパケットを転送する外部クロック周波数に対し内部クロック周波数を1/2に設定すると共に外部バス幅に対し内部バス幅を2倍に構成し、受信パケットを宛先別に分けて格納した後に読み出すクロスバー装置に於いて、
前記外部クロックに同期してワード単位に転送されたパケットを受信すると共に前記パケットのヘッダを含む複数のパケットワードを前記外部クロックの偶数受信タイミングと奇数受信タイミングに分けて前記内部クロックに同期して並列出力するパケット受信部と、
前記パケット受信部から出力された偶数受信タイミングのパケットワードをラッチする偶数ラッチ部と、
前記パケット受信部から出力された奇数受信タイミングのパケットワードをラッチする奇数ラッチ部と、
前記偶数ラッチ部から出力された偶数受信タイミングのパケットワードをパケット単位に書込む複数段のパケット格納区画を複数段備えた宛先毎の偶数キューと、
前記奇数ラッチ部から出力された奇数受信タイミングのパケットワードをパケット単位に書込む複数段のパケット格納区画を備えた宛先毎の奇数キューと、
前記偶数ラッチ部をバイパスするバイパス部と、
前記偶数ラッチ部及びバイパス部の出力を前記奇数キュー部にスワップすると共に、前記奇数ラッチ部の出力を前記偶数キュー部にスワップするスワップ回路部と、
複数のパケットを連続して受信した場合、各受信パケットのヘッダが前記偶数キューと前記奇数キューの各パケット格納区画に交互に配置されるようにパケットワードを書込む書込制御部と、
前記偶数キューと前記奇数キューから2ワード単位にパケットワードを並列的に読み出す読出制御部と、
を備えたことを特徴とするクロスバー装置。(1)
(付記2)
付記1記載のクロスバー装置に於いて、単独で受信するパケットのヘッダ受信タイミング、及び連続的に受信する先頭パケットのヘッダ受信タイミングを前記外部クロックの偶数受信タイミングとすること特徴とするクロスバー装置。
(付記3)
付記1記載のクロスバー装置に於いて、前記書込制御部は、複数のパケットを間欠的又は連続して受信した場合、奇数番目の受信パケットのヘッダを前記偶数キューの奇数段のパケット格納区画に順次配置し、且つ偶数番目の受信パケットのヘッダを前記奇数キューの偶数段のパケット格納区画に順次配置するようにパケットワードを書き込むことを特徴とするクロスバー装置。(2)
(付記4)
付記1記載のクロスバー装置に於いて、前記偶数キュー及び前記奇数キューとして8段構成のパケット格納区画を備えた場合、前記書込制御部は、1番目、3番目、5番目及び7番目の受信パケットのヘッダを前記偶数キューの1段目、3段目、5段目及び7段目のパケット格納区画に順次配置し、且つ2番目、4番目、6番目及び8番目の受信パケットのヘッダを前記奇数キューの2段目、4段目、6段目及び8段目のパケット格納区画に順次配置するようにパケットワードを書き込むことを特徴とするクロスバー装置。
(付記5)
付記1記載のクロスバー装置に於いて、前記書込制御部は、宛先の異なるパケットを間欠的又は連続的に受信した際に、
前記受信パケットのヘッダが偶数受信タイミングであり、前記偶数キューと奇数キューのパケット格納区画が奇数段の場合、前記偶数ラッチ部でラッチした偶数受信タイミングのヘッダを含むパケットワードを前記偶数キューにおける奇数段のパケット格納区画に書込むと共に、前記奇数ラッチ部でラッチした奇数受信タイミングのパケットワードを前記奇数キューにおける奇数段のパケット格納区画に書込み、
前記受信パケットのヘッダが偶数受信タイミングであり、前記偶数キューと奇数キューのパケット格納区画が偶数段の場合、前記偶数ラッチ部でラッチした偶数受信タイミングのヘッダを含むパケットワードをスワップして前記奇数キューにおける偶数段のパケット格納区画に書込むと共に、前記奇数ラッチ部でラッチした奇数受信タイミングのパケットワードをスワップして前記偶数キューにおける偶数段のパケット格納区画に書込むことを特徴とするクロスバー装置。(3)
(付記6)
付記1記載のクロスバー装置に於いて、前記書込制御部は、宛先の異なるパケットを間欠的又は連続的に受信した際に、
前記受信パケットのヘッダが奇数受信タイミングで前記偶数キューと奇数キューのパケット格納区画が奇数段の場合、前記奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードをスワップして前記偶数キューにおける奇数段のパケット格納区画に書込むと共に、前記バイパス部によりバイパスし且つスワップして得られた偶数受信タイミングのパケットワードを前記奇数キューにおける奇数段のパケット格納区画に書込み、
前記受信パケットのヘッダが奇数受信タイミングで前記偶数キューと奇数キューのパケット格納区画が偶数段の場合、前記奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードを前記奇数キューにおける奇数段のパケット格納区画に書込むと共に、前記バイパス部でバイバスした偶数受信タイミングのパケットワードを前記偶数キューにおける偶数段のパケット格納区画に書込むことを特徴とするクロスバー装置。(4)
(付記7)
付記1記載のクロスバー装置に於いて、前記書込制御部は、ヘッダが偶数受信タイミングの第1宛先パケットに続いてヘッダが奇数受信タイミングの宛先の異なる第2宛先パケットを連続して受信した際に、前記第1宛先パケットと第2宛先パケットの境界部分につき、
前記偶数ラッチ部でラッチした前記第1宛先パケットの最終パケットワードを第1宛先に対応した偶数キューに書込み、
前記奇数ラッチ部でラッチした前記第2宛先パケットのヘッダをスワップして前記第2宛先に対応した偶数キューに書込み、更に、
前記第1バイパス部から得られた前記第2宛先パケットのヘッダの次のパケットワードをスワップして前記第2宛先に対応した奇数キューに書込む3パケットワードの同時書込みを行うことを特徴とするクロスバー装置。(5)
(付記8)
付記1記載のクロスバー装置に於いて、前記書込制御部は、宛先が同一のパケットを連続的に受信した際に、
前記受信パケットのヘッダが偶数受信タイミングで前記偶数キューと奇数キューのパケット格納区画が奇数段の場合、前記偶数ラッチ部でラッチした偶数受信タイミングのヘッダを含むパケットワードを前記偶数キューにおける奇数段のパケット格納区画に書込むと共に、前記奇数ラッチ部でラッチした奇数受信タイミングのパケットワードを前記奇数キューにおける奇数段のパケット区画に書込み、
前記受信パケットのヘッダが偶数受信タイミングで前記偶数キューと奇数キューのパケット格納区画が偶数段の場合、前記偶数ラッチ部でラッチした偶数受信タイミングのヘッダを含むパケットワードをスワップして前記奇数キューにおける偶数段のパケット格納区画に書込むと共に、前記奇数ラッチ部でラッチした奇数受信タイミングのパケットワードをスワップして前記偶数キューにおける偶数段のパケット格納区画に書込むことを特徴とするクロスバー装置。(6)
(付記9)
付記1記載のクロスバー装置に於いて、前記書込制御部は、宛先が同一のパケットを連続的に受信した際に、
前記受信パケットのヘッダが奇数受信タイミングであり、前段パケットのヘッダが偶数受信タイミングであり、更に、前記偶数キューと奇数キューのパケット格納区画が奇数段となる場合、
前記奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードをスワップして前記偶数キューにおける奇数段のパケット格納区画に書込むと共に、前記偶数ラッチ部でラッチした偶数受信タイミングのパケットワードをスワップして前記偶数キューにおける奇数段のパケット区画に書込み、
前記受信パケットのヘッダが奇数受信タイミングであり、前段パケットのヘッダが偶数受信タイミングであり、更に、前記偶数キューと奇数キューのパケット格納区画が偶数段となる場合、
前記奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードを前記奇数キューにおける偶数段のパケット格納区画に書込むと共に、前記偶数ラッチ部でラッチした偶数受信タイミングのパケットワードを前記偶数キューにおける偶数段のパケット格納区画に書込むことを特徴とするクロスバー装置。(7)
(付記10)
付記1記載のクロスバー装置に於いて、前記書込制御部は、宛先が同一のパケットを連続的に受信した際に、
前記受信パケットのヘッダが奇数受信タイミングであり、前段パケットのヘッダが奇数受信タイミングであり、更に、前記偶数キューと奇数キューのパケット格納区画が奇数段となる場合、
前記奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードをスワップして前記偶数キューにおける奇数段のパケット格納区画に書込むと共に、前記偶数ラッチ部でラッチした偶数受信タイミングのパケットワードを前記バイパス部でバイパスし且つスワップして前記奇数キューにおける奇数段のパケット区画に書込み、
前記受信パケットのヘッダが奇数受信タイミングであり、前段パケットのヘッダが偶数受信タイミングであり、更に、前記偶数キューと奇数キューのパケット格納区画が偶数段となる場合、
前記奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードを前記奇数キューにおける偶数段のパケット格納区画に書込むと共に、前記偶数ラッチ部でラッチした偶数受信タイミングのパケットワードを前記偶数キューにおける偶数段のパケット格納区画に書込むことを特徴とするクロスバー装置。(8)
(付記11)
付記1記載のクロスバー装置に於いて、前記書込制御部は、
前記偶数ラッチ部と奇数ラッチ部にヘッダを含むパケットワードが2ワードラッチされたタイミング、
前記偶数ラッチ部と奇数ラッチ部にヘッダを含むパケットワードが2ワードラッチされ且つスワップされたタイミング、又は
前記奇数ラッチ部にヘッダを含むパケットワードがラッチされ且つ前記バイパス部からバイパスされたパケットワードが出力されたタイミング、
のいずれかで前記偶数キューと奇数キューに2ワードのパケットワードを並列的に書込むことを特徴とするクロスバー装置。
(付記12)
付記4記載のクロスバー装置に於いて、前記読出制御部は、
前記偶数キューと奇数キューの奇数段のパケット格納区画から2ワード単位にパケットワードを並列的に読出し、
次の偶数段のパケット収納区画の境界部分では、前記先行する奇数段のパケット格納区画の最終ワードと後続する偶数段のパケット格納区画のヘッダとの2ワードを並列的に読出し、
前記ヘッダを読み出した後の偶数段のパケット収納区画の残りパケットワードについては、前記偶数キューと前記奇数キューにおける偶数段のパケット格納区画の1ワードずれた位置から2ワード単位をパケットワードを並列的に読み出し、
以後これを繰り返すことを特徴とするクロスバー装置。
(付記13)
複数のモジュール間で相互にパケットを転送する外部クロック周波数に対し内部クロック周波数を1/2に設定すると共に外部バス幅に対し内部バス幅を2倍に構成し、受信パケットを宛先別に分けて格納した後に読み出すクロスバー装置の制御方法に於いて、
前記外部クロックに同期してワード単位に転送されたパケットを受信すると共に前記パケットのヘッダを含む複数のパケットワードを前記外部クロックの偶数受信タイミングと奇数受信タイミングに分けて前記内部クロックに同期して並列出力するパケット受信ステップと、
前記パケット受信ステップから出力された偶数受信タイミングのパケットワードを偶数ラッチ部にラッチする偶数ラッチステップと、
前記パケット受信ステップから出力された奇数受信タイミングのパケットワードを奇数ラッチ部にラッチする奇数ラッチステップと、
前記偶数ラッチ部から出力された偶数受信タイミングのパケットワードを、複数段のパケット格納区画を備えた宛先毎の偶数キューにパケット単位に書込むと偶数キューステップと、
前記奇数ラッチ部から出力された奇数受信タイミングのパケットワードを、複数段のパケット格納区画を備えた宛先毎の奇数キューにパケット単位に書込む奇数キューステップと、
前記偶数ラッチ部をバイパスするバイパスステップと、
前記偶数ラッチ部及びバイパス部の出力を前記奇数キューにスワップすると共に、前記奇数ラッチ部の出力を前記偶数キューにスワップするスワップステップと、
複数のパケットを連続して受信した場合、各受信パケットのヘッダが前記偶数キューと前記奇数キューの各パケット格納区画に交互に配置されるようにパケットワードを書込む書込制御ステップと、
偶数キューと前記奇数キューから2ワード単位にパケットワードを並列的に読み出す読出制御ステップと、
を備えたことを特徴とするクロスバー装置の制御方法。(9)
(付記14)
付記13記載のクロスバー装置の制御方法に於いて、間欠的に受信するパケットのヘッダ受信タイミング、及び連続的に受信する先頭パケットのヘッダ受信タイミングを前記外部クロックの偶数受信タイミングとすること特徴とするクロスバー装置の制御方法。
(付記15)
付記13記載のクロスバー装置の制御方法に於いて、前記書込制御ステップは、複数のパケットを間欠的又は連続して受信した場合、奇数番目の受信パケットのヘッダを前記偶数キューの奇数段のパケット格納区画に順次配置し、且つ偶数番目の受信パケットのヘッダを前記奇数キューの偶数段のパケット格納区画に順次配置するようにパケットワードを書き込むことを特徴とするクロスバー装置の制御方法。
(付記16)
付記13記載のクロスバー装置の制御方法に於いて、前記偶数キュー及び前記奇数キューとして8段構成のパケット格納区画を備えた場合、前記書込制御ステップは、1番目、3番目、5番目及び7番目の受信パケットのヘッダを前記偶数キューの1段目、3段目、5段目及び7段目のパケット格納区画に順次配置し、且つ2番目、4番目、6番目及び8番目の受信パケットのヘッダを前記奇数キューの2段目、4段目、6段目及び8段目のパケット格納区画に順次配置するようにパケットワードを書き込むことを特徴とするクロスバー装置の制御方法。
(付記17)
付記13記載のクロスバー装置の制御方法に於いて、前記書込制御ステップは、ヘッダが偶数受信タイミングの第1宛先パケットに続いてヘッダが奇数受信タイミングの宛先の異なる第2宛先パケットを連続して受信した際に、前記第1宛先パケットと第2宛先パケットの境界部分につき、
前記偶数ラッチステップでラッチした前記第1宛先パケットの最終パケットワードを第1宛先に対応した偶数キューに書込み、
前記奇数ラッチステップでラッチした前記第2宛先パケットのヘッダをスワップして前記第2宛先に対応した偶数キューに書込み、更に、
前記バイパスステップから得られた前記第2宛先パケットのヘッダの次のパケットワードをスワップして前記第2宛先に対応した奇数キューに書込む3パケットワードの同時書込みを行うことを特徴とするクロスバー装置の制御方法。
(付記18)
付記13記載のクロスバー装置の制御方法に於いて、前記書込制御ステップは、
前記偶数ラッチステップと奇数ラッチステップにヘッダを含むパケットワードが2ワードラッチされたタイミング、
前記偶数ラッチステップと奇数ラッチステップにヘッダを含むパケットワードが2ワードラッチされ且つスワップされたタイミング、又は
前記奇数ラッチステップにヘッダを含むパケットワードがラッチされ且つ前記バイパスステップからバイパスされたパケットワードが出力されたタイミング、
のいずれかで前記偶数キューと奇数キューに2ワードのパケットワードを並列的に書込むことを特徴とするクロスバー装置の制御方法。
(付記18)
付記13記載のクロスバー装置の制御方法に於いて、前記読出制御ステップは、
前記偶数キューと奇数キューの奇数段のパケット格納区画から2ワード単位にパケットワードを並列的に読出し、
次の偶数段のパケット収納区画の境界部分では、前記先行する奇数段のパケット格納区画の最終ワードと後続する偶数段のパケット格納区画のヘッダとの2ワードを並列的に読出し、
前記ヘッダを読み出した後の偶数段のパケット収納区画の残りパケットワードについては、前記偶数キューと前記奇数キューにおける偶数段のパケット格納区画の1ワードずれた位置から2ワード単位をパケットワードを並列的に読み出し、
以後これを繰り返すことを特徴とするクロスバー装置の制御方法。
(付記19)
複数のモジュール間で相互にパケットを転送する外部クロック周波数に対し内部クロック周波数を1/2に設定すると共に外部バス幅に対し内部バス幅を2倍に構成し、受信パケットを宛先別に分けて格納した後に読み出すクロスバー装置のコンピュータに、
前記外部クロックに同期してワード単位に転送されたパケットを受信すると共に前記パケットのヘッダを含む複数のパケットワードを前記外部クロックの偶数受信タイミングと奇数受信タイミングに分けて前記内部クロックに同期して並列出力するパケット受信ステップと、
前記パケット受信ステップから出力された偶数受信タイミングのパケットワードを偶数ラッチ部にラッチする偶数ラッチステップと、
前記パケット受信ステップから出力された奇数受信タイミングのパケットワードを奇数ラッチ部にラッチする奇数ラッチステップと、
前記偶数ラッチ部から出力された偶数受信タイミングのパケットワードを、複数段のパケット格納区画を備えた宛先毎の偶数キューにパケット単位に書込むと偶数キューステップと、
前記奇数ラッチ部から出力された奇数受信タイミングのパケットワードを、複数段のパケット格納区画を備えた宛先毎の奇数キューにパケット単位に書込む奇数キューステップと、
前記偶数ラッチ部をバイパスするバイパスステップと、
前記偶数ラッチ部及びバイパス部の出力を前記奇数キューにスワップすると共に、前記奇数ラッチ部の出力を前記偶数キューにスワップするスワップステップと、
複数のパケットを連続して受信した場合、各受信パケットのヘッダが前記偶数キューと前記奇数キューの各パケット格納区画に交互に配置されるようにパケットワードを書込む書込制御ステップと、
前記偶数キューと前記奇数キューから2ワード単位にパケットワードを並列的に読み出す読出制御ステップと、
を実行させることを特徴とするプログラム。(10)
(付記20)
付記19記載のプログラムに於いて、間欠的に受信するパケットのヘッダ受信タイミング、及び連続的に受信する先頭パケットのヘッダ受信タイミングを前記外部クロックの偶数受信タイミングとすること特徴とするプログラム。
本発明の原理説明図 本発明のクロスバー装置を用いる回路システムの説明図 本発明のクロスバー装置の回路ブロック図 本発明の実施形態となる図3のラッチ部と入力ポートの詳細構成の回路図 本発明のクロスバー装置における外部バスと内部バスのパケット転送の説明図 受信パケットを偶数キューと奇数キューに交互に書込む本発明によるキュー書込み処理の説明図 ヘッダの偶数受信タイミングと奇数受信タイミングによりケース分けした本発明によるキュー書込みパターンの説明図 同一宛先の受信パケットが連続した場合のキュー書込み処理の説明図 偶数受信タイミングのパケットに続いて宛先の異なる奇数受信タイミングのパケットが連続した場合のパケット境界での3ワード同時書込みの説明図 入力キューから偶数受信タイミングのパケットを連続して読み出す本発明の処理を従来と対比して示した説明図 入力キューから奇数受信タイミングのパケットを連続して読み出す本発明の処理を従来と対比して示した説明図 本発明の入力キューに対するパケット書込み処理のフローチャート 図12に続くパケット書込み処理のフローチャート 図12のフローチャートにおけるケース1とケース2の書込み処理の説明図 図12のフローチャートにおけるケース3とケース4の書込み処理の説明図 図13のフローチャートにおけるケース7とケース8の書込み処理の説明図 図13のフローチャートにおけるケース9とケース10の書込み処理の説明図 従来のクロスバー装置に設けた入力キュー部の回路ブロック図 偶数受信タイミングのパケットをキューに書込む従来処理の説明図 奇数受信タイミングのパケットをキューに書込む従来処理の説明図 入力キューから偶数受信タイミングのパケットを連続して読み出す従来処理の説明図 入力キューから奇数受信タイミングのパケットを連続して読み出す従来処理の説明図
符号の説明
10:クロスバー装置
12−1〜12−4:LSIモジュール
16,24:外部バス
18:入力ポート
20:振分け選択部
22:出力ポート
26:パケット受信部
28:ラッチ部
28−1:偶数ラッチ部
28−2:奇数ラッチ部
30:入力キュー部
34:出力キュー部
35:パケット送信部
36−1:第1入力キュー部
36−2:第2入力キュー部
36−3:第3入力キュー部
36−4:第4入力キュー部
37−1,37−2:ラッチ
38,38−1,38−2:内部バス
40−1,40−2:ヘッダ部通過パス
42−1,42−2:データ部通過パス
44−1,44−2:ヘッダECC検出訂正部
46−1,46−2:ヘッダラッチ
48−1,48−2:データラッチ
50−1,50−2,66−1〜66−4,68−1〜68−4,70−1〜70−4:セレクタ
52:バイパス部
54,56:通常パス
55:バイパスパス
58−1:入力偶数キュー部
58−2:入力奇数キュー部
60:偶数キュー
60−1:第1偶数キュー
60−2:第2偶数キュー
60−3:第3偶数キュー
60−4:第4偶数キュー
62:奇数キュー
62−1:第1奇数キュー
62−2:第2奇数キュー
62−3:第3奇数キュー
62−4:第4奇数キュー
64:スワップ回路部
70:制御部
74:書込制御部
76:読出制御部
78:外部クロック
80,100:パケットデータ
82−1〜82−8:パケット
84:偶数受信タイミング
86:奇数受信タイミング
88:内部クロック
90,90−1〜90−3,106,110,116,120:ラッチ入力タイミング
92−1〜92−8:パケット格納区画
94,98,104:リードパケット
108,114,121:スワップパス
112,122:バイパス及びスワップパス

Claims (10)

  1. 複数のモジュール間で相互にパケットを転送する外部クロック周波数に対し内部クロック周波数を1/2に設定すると共に外部バス幅に対し内部バス幅を2倍に構成し、受信パケットを宛先別に分けて格納した後に読み出すクロスバー装置に於いて、
    前記外部クロックに同期してワード単位に転送されたパケットを受信すると共に前記パケットのヘッダを含む複数のパケットワードを前記外部クロックの偶数受信タイミングと奇数受信タイミングに分けて前記内部クロックに同期して並列出力するパケット受信部と、
    前記パケット受信部から出力された偶数受信タイミングのパケットワードをラッチする偶数ラッチ部と、
    前記パケット受信部から出力された奇数受信タイミングのパケットワードをラッチする奇数ラッチ部と、
    前記偶数ラッチ部から出力された偶数受信タイミングのパケットワードをパケット単位に書込む複数段のパケット格納区画を複数段備えた宛先毎の偶数キューと、
    前記奇数ラッチ部から出力された奇数受信タイミングのパケットワードをパケット単位に書込む複数段のパケット格納区画を備えた宛先毎の奇数キューと、
    前記偶数ラッチ部をバイパスするバイパス部と、
    前記偶数ラッチ部及びバイパス部の出力を前記奇数キュー部にスワップすると共に、前記奇数ラッチ部の出力を前記偶数キュー部にスワップするスワップ回路部と、
    複数のパケットを連続して受信した場合、各受信パケットのヘッダが前記偶数キューと前記奇数キューの各パケット格納区画に交互に配置されるようにパケットワードを書込む書込制御部と、
    前記偶数キューと前記奇数キューから2ワード単位にパケットワードを並列的に読み出す読出制御部と、
    を備えたことを特徴とするクロスバー装置。
  2. 請求項1記載のクロスバー装置に於いて、前記書込制御部は、複数のパケットを間欠的又は連続して受信した場合、奇数番目の受信パケットのヘッダを前記偶数キューの奇数段のパケット格納区画に順次配置し、且つ偶数番目の受信パケットのヘッダを前記奇数キューの偶数段のパケット格納区画に順次配置するようにパケットワードを書き込むことを特徴とするクロスバー装置。
  3. 請求項1記載のクロスバー装置に於いて、前記書込制御部は、宛先の異なるパケットを間欠的又は連続的に受信した際に、
    前記受信パケットのヘッダが偶数受信タイミングであり、前記偶数キューと奇数キューのパケット格納区画が奇数段の場合、前記偶数ラッチ部でラッチした偶数受信タイミングのヘッダを含むパケットワードを前記偶数キューにおける奇数段のパケット格納区画に書込むと共に、前記奇数ラッチ部でラッチした奇数受信タイミングのパケットワードを前記奇数キューにおける奇数段のパケット格納区画に書込み、
    前記受信パケットのヘッダが偶数受信タイミングであり、前記偶数キューと奇数キューのパケット格納区画が偶数段の場合、前記偶数ラッチ部でラッチした偶数受信タイミングのヘッダを含むパケットワードをスワップして前記奇数キューにおける偶数段のパケット格納区画に書込むと共に、前記奇数ラッチ部でラッチした奇数受信タイミングのパケットワードをスワップして前記偶数キューにおける偶数段のパケット格納区画に書込むことを特徴とするクロスバー装置。
  4. 請求項1記載のクロスバー装置に於いて、前記書込制御部は、宛先の異なるパケットを間欠的又は連続的に受信した際に、
    前記受信パケットのヘッダが奇数受信タイミングで前記偶数キューと奇数キューのパケット格納区画が奇数段の場合、前記奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードをスワップして前記偶数キューにおける奇数段のパケット格納区画に書込むと共に、前記バイパス部によりバイパスし且つスワップして得られた偶数受信タイミングのパケットワードを前記奇数キューにおける奇数段のパケット格納区画に書込み、
    前記受信パケットのヘッダが奇数受信タイミングで前記偶数キューと奇数キューのパケット格納区画が偶数段の場合、前記奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードを前記奇数キューにおける奇数段のパケット格納区画に書込むと共に、前記バイパス部でバイバスした偶数受信タイミングのパケットワードを前記偶数キューにおける偶数段のパケット格納区画に書込むことを特徴とするクロスバー装置。
  5. 請求項1記載のクロスバー装置に於いて、前記書込制御部は、ヘッダが偶数受信タイミングの第1宛先パケットに続いてヘッダが奇数受信タイミングの宛先の異なる第2宛先パケットを連続して受信した際に、前記第1宛先パケットと第2宛先パケットの境界部分につき、
    前記偶数ラッチ部でラッチした前記第1宛先パケットの最終パケットワードを第1宛先に対応した偶数キューに書込み、
    前記奇数ラッチ部でラッチした前記第2宛先パケットのヘッダをスワップして前記第2宛先に対応した偶数キューに書込み、更に、
    前記第1バイパス部から得られた前記第2宛先パケットのヘッダの次のパケットワードをスワップして前記第2宛先に対応した奇数キューに書込む3パケットワードの同時書込みを行うことを特徴とするクロスバー装置。
  6. 請求項1記載のクロスバー装置に於いて、前記書込制御部は、宛先が同一のパケットを連続的に受信した際に、
    前記受信パケットのヘッダが偶数受信タイミングで前記偶数キューと奇数キューのパケット格納区画が奇数段の場合、前記偶数ラッチ部でラッチした偶数受信タイミングのヘッダを含むパケットワードを前記偶数キューにおける奇数段のパケット格納区画に書込むと共に、前記奇数ラッチ部でラッチした奇数受信タイミングのパケットワードを前記奇数キューにおける奇数段のパケット区画に書込み、
    前記受信パケットのヘッダが偶数受信タイミングで前記偶数キューと奇数キューのパケット格納区画が偶数段の場合、前記偶数ラッチ部でラッチした偶数受信タイミングのヘッダを含むパケットワードをスワップして前記奇数キューにおける偶数段のパケット格納区画に書込むと共に、前記奇数ラッチ部でラッチした奇数受信タイミングのパケットワードをスワップして前記偶数キューにおける偶数段のパケット格納区画に書込むことを特徴とするクロスバー装置。
  7. 請求項1記載のクロスバー装置に於いて、前記書込制御部は、宛先が同一のパケットを連続的に受信した際に、
    前記受信パケットのヘッダが奇数受信タイミングであり、前段パケットのヘッダが偶数受信タイミングであり、更に、前記偶数キューと奇数キューのパケット格納区画が奇数段となる場合、
    前記奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードをスワップして前記偶数キューにおける奇数段のパケット格納区画に書込むと共に、前記偶数ラッチ部でラッチした偶数受信タイミングのパケットワードをスワップして前記偶数キューにおける奇数段のパケット区画に書込み、
    前記受信パケットのヘッダが奇数受信タイミングであり、前段パケットのヘッダが偶数受信タイミングであり、更に、前記偶数キューと奇数キューのパケット格納区画が偶数段となる場合、
    前記奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードを前記奇数キューにおける偶数段のパケット格納区画に書込むと共に、前記偶数ラッチ部でラッチした偶数受信タイミングのパケットワードを前記偶数キューにおける偶数段のパケット格納区画に書込むことを特徴とするクロスバー装置。
  8. 請求項1記載のクロスバー装置に於いて、前記書込制御部は、宛先が同一のパケットを連続的に受信した際に、
    前記受信パケットのヘッダが奇数受信タイミングであり、前段パケットのヘッダが奇数受信タイミングであり、更に、前記偶数キューと奇数キューのパケット格納区画が奇数段となる場合、
    前記奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードをスワップして前記偶数キューにおける奇数段のパケット格納区画に書込むと共に、前記偶数ラッチ部でラッチした偶数受信タイミングのパケットワードを前記バイパス部でバイパスし且つスワップして前記奇数キューにおける奇数段のパケット区画に書込み、
    前記受信パケットのヘッダが奇数受信タイミングであり、前段パケットのヘッダが偶数受信タイミングであり、更に、前記偶数キューと奇数キューのパケット格納区画が偶数段となる場合、
    前記奇数ラッチ部でラッチした奇数受信タイミングのヘッダを含むパケットワードを前記奇数キューにおける偶数段のパケット格納区画に書込むと共に、前記偶数ラッチ部でラッチした偶数受信タイミングのパケットワードを前記偶数キューにおける偶数段のパケット格納区画に書込むことを特徴とするクロスバー装置。
  9. 複数のモジュール間で相互にパケットを転送する外部クロック周波数に対し内部クロック周波数を1/2に設定すると共に外部バス幅に対し内部バス幅を2倍に構成し、受信パケットを宛先別に分けて格納した後に読み出すクロスバー装置の制御方法に於いて、
    前記外部クロックに同期してワード単位に転送されたパケットを受信すると共に前記パケットのヘッダを含む複数のパケットワードを前記外部クロックの偶数受信タイミングと奇数受信タイミングに分けて前記内部クロックに同期して並列出力するパケット受信ステップと、
    前記パケット受信ステップから出力された偶数受信タイミングのパケットワードを偶数ラッチ部にラッチする偶数ラッチステップと、
    前記パケット受信ステップから出力された奇数受信タイミングのパケットワードを奇数ラッチ部にラッチする奇数ラッチステップと、
    前記偶数ラッチ部から出力された偶数受信タイミングのパケットワードを、複数段のパケット格納区画を備えた宛先毎の偶数キューにパケット単位に書込む偶数キューステップと、
    前記奇数ラッチ部から出力された奇数受信タイミングのパケットワードを、複数段のパケット格納区画を備えた宛先毎の奇数キューにパケット単位に書込む奇数キューステップと、
    前記偶数ラッチ部をバイパスするバイパスステップと、
    前記偶数ラッチ部及びバイパス部の出力を前記奇数キューにスワップすると共に、前記奇数ラッチ部の出力を前記偶数キューにスワップするスワップステップと、
    複数のパケットを連続して受信した場合、各受信パケットのヘッダが前記偶数キューと前記奇数キューの各パケット格納区画に交互に配置されるようにパケットワードを書込む書込制御ステップと、
    前記偶数キューと前記奇数キューから2ワード単位にパケットワードを並列的に読み出す読出制御ステップと、
    を備えたことを特徴とするクロスバー装置の制御方法。
  10. 複数のモジュール間で相互にパケットを転送する外部クロック周波数に対し内部クロック周波数を1/2に設定すると共に外部バス幅に対し内部バス幅を2倍に構成し、受信パケットを宛先別に分けて格納した後に読み出すクロスバー装置のコンピュータに、
    前記外部クロックに同期してワード単位に転送されたパケットを受信すると共に前記パケットのヘッダを含む複数のパケットワードを前記外部クロックの偶数受信タイミングと奇数受信タイミングに分けて前記内部クロックに同期して並列出力するパケット受信ステップと、
    前記パケット受信ステップから出力された偶数受信タイミングのパケットワードを偶数ラッチ部にラッチする偶数ラッチステップと、
    前記パケット受信ステップから出力された奇数受信タイミングのパケットワードを奇数ラッチ部にラッチする奇数ラッチステップと、
    前記偶数ラッチ部から出力された偶数受信タイミングのパケットワードを、複数段のパケット格納区画を備えた宛先毎の偶数キューにパケット単位に書込む偶数キューステップと、
    前記奇数ラッチ部から出力された奇数受信タイミングのパケットワードを、複数段のパケット格納区画を備えた宛先毎の奇数キューにパケット単位に書込む奇数キューステップと、
    前記偶数ラッチ部をバイパスするバイパスステップと、
    前記偶数ラッチ部及びバイパス部の出力を前記奇数キューにスワップすると共に、前記奇数ラッチ部の出力を前記偶数キューにスワップするスワップステップと、
    複数のパケットを連続して受信した場合、各受信パケットのヘッダが前記偶数キューと前記奇数キューの各パケット格納区画に交互に配置されるようにパケットワードを書込む書込制御ステップと、
    前記偶数キューと前記奇数キューから2ワード単位にパケットワードを並列的に読み出す読出制御ステップと、
    を実行させることを特徴とするプログラム。
JP2005078846A 2005-03-18 2005-03-18 クロスバー装置、制御方法及びプログラム Expired - Fee Related JP4453915B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2005078846A JP4453915B2 (ja) 2005-03-18 2005-03-18 クロスバー装置、制御方法及びプログラム
EP20050254417 EP1703412B1 (en) 2005-03-18 2005-07-14 Cross bar apparatus, and method and program for controlling the same
US11/181,826 US7583706B2 (en) 2005-03-18 2005-07-15 Method and apparatus for increasing packet throughput in crossbar
KR20050069262A KR100717669B1 (ko) 2005-03-18 2005-07-29 크로스 바아 장치, 제어 방법 및 기록 매체
CNB2005100936309A CN100456276C (zh) 2005-03-18 2005-08-31 交叉矩阵装置及其控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005078846A JP4453915B2 (ja) 2005-03-18 2005-03-18 クロスバー装置、制御方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2006262243A JP2006262243A (ja) 2006-09-28
JP4453915B2 true JP4453915B2 (ja) 2010-04-21

Family

ID=36636433

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005078846A Expired - Fee Related JP4453915B2 (ja) 2005-03-18 2005-03-18 クロスバー装置、制御方法及びプログラム

Country Status (5)

Country Link
US (1) US7583706B2 (ja)
EP (1) EP1703412B1 (ja)
JP (1) JP4453915B2 (ja)
KR (1) KR100717669B1 (ja)
CN (1) CN100456276C (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7139280B2 (en) * 2001-07-30 2006-11-21 Yishay Mansour Buffer management policy for shared memory switches
US7620050B2 (en) * 2004-09-10 2009-11-17 Canon Kabushiki Kaisha Communication control device and communication control method
US8514875B2 (en) * 2005-11-10 2013-08-20 Broadcom Corporation Processing of multiple cells in a network device with two reads and two writes on one clock cycle
JP4925737B2 (ja) * 2006-06-13 2012-05-09 富士通株式会社 デスタッフ装置
JP4846486B2 (ja) * 2006-08-18 2011-12-28 富士通株式会社 情報処理装置およびその制御方法
US8493979B2 (en) * 2008-12-30 2013-07-23 Intel Corporation Single instruction processing of network packets
WO2011099099A1 (ja) * 2010-02-10 2011-08-18 日本電気株式会社 ストレージ装置
JP5939323B1 (ja) * 2015-02-10 2016-06-22 日本電気株式会社 情報処理装置、情報処理方法、及び、プログラム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2776390B2 (ja) * 1989-11-30 1998-07-16 富士通株式会社 送信系及び受信系バスインタフェース
US5623698A (en) 1993-04-30 1997-04-22 Cray Research, Inc. Memory interconnect network having separate routing networks for inputs and outputs using switches with FIFO queues and message steering bits
JPH06314264A (ja) * 1993-05-06 1994-11-08 Nec Corp セルフ・ルーティング・クロスバー・スイッチ
US5555543A (en) * 1995-01-03 1996-09-10 International Business Machines Corporation Crossbar switch apparatus and protocol
JPH0981508A (ja) 1995-08-31 1997-03-28 Internatl Business Mach Corp <Ibm> 通信方法及び装置
KR0157924B1 (ko) * 1995-12-23 1998-12-15 문정환 데이타 전송 시스템 및 그 방법
JP3836263B2 (ja) * 1998-08-28 2006-10-25 太陽誘電株式会社 アキシャルリード型電子部品及びアキシャルリード型電子部品実装回路基板装置
JP3269526B2 (ja) * 1999-02-09 2002-03-25 日本電気株式会社 プログラマブルロジックlsi
KR100368439B1 (ko) * 1999-06-17 2003-01-24 사단법인 고등기술연구원 연구조합 이중 스위칭 평면을 갖는 패킷 스위치에서 전송 순서 보장 방법 및 장치
JP3725454B2 (ja) * 2001-01-17 2005-12-14 セイコーエプソン株式会社 画像ファイルの出力画像調整
JP4186421B2 (ja) 2001-02-23 2008-11-26 株式会社日立製作所 パケット処理装置
CN1298117C (zh) * 2002-11-21 2007-01-31 中兴通讯股份有限公司 浮动指针的交叉处理的方法
KR100527341B1 (ko) * 2002-12-16 2005-11-09 한국전자통신연구원 크로스바 방식의 방송스위치
KR100544837B1 (ko) * 2003-09-04 2006-01-24 삼성전자주식회사 스케줄링 방법 및 이를 수행하기 위한 스케줄러

Also Published As

Publication number Publication date
CN1834948A (zh) 2006-09-20
EP1703412A2 (en) 2006-09-20
US20060209820A1 (en) 2006-09-21
US7583706B2 (en) 2009-09-01
KR20060101162A (ko) 2006-09-22
KR100717669B1 (ko) 2007-05-14
EP1703412B1 (en) 2013-04-03
JP2006262243A (ja) 2006-09-28
EP1703412A3 (en) 2008-06-04
CN100456276C (zh) 2009-01-28

Similar Documents

Publication Publication Date Title
JP4453915B2 (ja) クロスバー装置、制御方法及びプログラム
US7653805B2 (en) Processing in pipelined computing units with data line and circuit configuration rule signal line
JPH11510285A (ja) メモリインタフェースユニット、共有メモリスイッチシステムおよび関連の方法
US10282343B2 (en) Semiconductor device
US7386689B2 (en) Method and apparatus for connecting a massively parallel processor array to a memory array in a bit serial manner
JPH06266615A (ja) 順次データ転送型メモリ及び順次データ転送型メモリを用いたコンピュータシステム
US11561925B2 (en) Tensor partitioning and partition access order
US11366783B1 (en) Multi-headed multi-buffer for buffering data for processing
EP2437159B1 (en) Apparatus for data comparison and control method thereof
JP3562581B2 (ja) スキュー調整回路及び半導体集積回路
JP5717196B2 (ja) パイプライン回路、半導体装置およびパイプライン制御方法
US7093084B1 (en) Memory implementations of shift registers
JP6094321B2 (ja) バッファ回路及び半導体集積回路
US11487659B2 (en) Data storage system capable of performing interleaving scatter transmissions or interleaving gather transmissions
JP3019767B2 (ja) デジタル信号処理装置
US10496564B2 (en) Bus control circuit, information processing apparatus, and control method for bus control circuit
JP2008129671A (ja) 擬似デュアルポートメモリ回路
JPH0542010B2 (ja)
JP2713487B2 (ja) パケットバッファ回路及びパケット処理回路
JP3675948B2 (ja) データ変換方法及びその装置
JP2008003930A (ja) 通信制御装置及びデータ転送制御装置
JPH0644296B2 (ja) デ−タ流待ち合せ回路
JP2004140520A (ja) セクションフィルタ回路
JP2002132702A (ja) メモリ制御方式
JPH0316719B2 (ja)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070803

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091009

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100105

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100128

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130212

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140212

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees