JP5826085B2 - 交換機およびデータ転送方法 - Google Patents

交換機およびデータ転送方法 Download PDF

Info

Publication number
JP5826085B2
JP5826085B2 JP2012064379A JP2012064379A JP5826085B2 JP 5826085 B2 JP5826085 B2 JP 5826085B2 JP 2012064379 A JP2012064379 A JP 2012064379A JP 2012064379 A JP2012064379 A JP 2012064379A JP 5826085 B2 JP5826085 B2 JP 5826085B2
Authority
JP
Japan
Prior art keywords
data
port
output
unit
flag
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
JP2012064379A
Other languages
English (en)
Other versions
JP2013198007A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2012064379A priority Critical patent/JP5826085B2/ja
Publication of JP2013198007A publication Critical patent/JP2013198007A/ja
Application granted granted Critical
Publication of JP5826085B2 publication Critical patent/JP5826085B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Small-Scale Networks (AREA)

Description

本発明は、例えば、パケットを転送する交換機およびデータ転送方法に関するものである。
一般に、N×Nのような多ノードのスイッチには、クロスバー型の回路が用いられる。
しかし、クロスバー型回路には全ての受信ポートの中から1つの受信ポートを選択するためのセレクタがポート数(N)と同じ数だけ必要なため、回路規模が大きくなる。
一方、特許文献1に開示されているスイッチは、2−to−1セレクタとフリップフロップとを交互にリング状に配置している。この構成の場合、クロスバー型回路に比べて回路規模は小さくなる。
しかし、あるポートから受信したパケットがリングを流れている期間、その経路上に接続されている他のポートは送受信が出来ずに待たされる。そのため、クロスバー型回路に比べて転送効率が悪くなる、という課題があった。
特開平11−167560号公報
本発明は、例えば、データを効率良く転送できるようにすることを目的とする。
本発明の交換機は、
データを送受信する複数のポート部と、データを周回させる周回方向が決められたリング状の中継路を構成する複数のデータ中継部とを備える。
前記複数のポート部それぞれのポート部は、前記複数のデータ中継部のうちいずれかのデータ中継部に対応付けられたポート受信部とポート送信部とを備える。
前記複数のポート部それぞれのポート受信部は、伝送路から通信データを受信し、受信した通信データを前記複数のポート部それぞれのポート送信部のうちいずれかのポート送信部を宛先とする通信データとして所定のポート周期で出力し、
前記通信データを出力したポート受信部に対応付けられたデータ中継部は、前記通信データを入力し、前記通信データを前記所定のポート周期より短い所定の中継周期で前記周回方向の下流側のデータ中継部に中継し、
前記通信データが中継されたデータ中継部は、前記通信データを前記所定の中継周期で前記周回方向の下流側のデータ中継部に中継し、
前記通信データの前記宛先のポート送信部に対応付けられたデータ中継部は、前記通信データを前記宛先のポート送信部に出力し、
前記通信データの前記宛先のポート送信部は、前記通信データを入力し、前記通信データを受信した前記伝送路とは異なる伝送路に送信する。
本発明によれば、例えば、データを効率良く転送することができる。
実施の形態1におけるパケット交換機900の構成図。 実施の形態1におけるポート100A〜Hの受信部110の構成図。 実施の形態1における受信部110のデータイネーブル信号と最終データフラグとパケットの部分データとの関係図。 実施の形態1におけるリング回路ブロック200A〜Hの構成図。 実施の形態1におけるリング回路ブロック200の制御回路230の構成図。 実施の形態1におけるポート100A〜Hの送信部120の構成図。 実施の形態1におけるパケット交換機900の動作を表すタイミングチャート。 実施の形態1におけるパケット交換機900の動作を表すタイミングチャート。 実施の形態1におけるリング回路ブロック200A〜Hの動作を表すタイミングチャート。 実施の形態1におけるリング回路ブロック200A〜Hの動作を表すタイミングチャート。 実施の形態1におけるリング回路ブロック200Fとポート100Fの送信部120との動作を表すタイミングチャート。 実施の形態1におけるパケット交換機900のハードウェア資源の一例を示す図。
実施の形態1.
回路規模が小さく、データの転送効率が高いパケット交換機について説明する。
図1は、実施の形態1におけるパケット交換機900の構成図である。
実施の形態1におけるパケット交換機900の構成について、図1に基づいて説明する。
パケット交換機900は、パケット(通信データの一例)を宛先の通信装置へ届けるためにパケットを中継する通信装置である。ルータ、スイッチまたはスイッチングハブはパケット交換機900の一例である。
パケット交換機900(交換機の一例)は、複数のポート100(ポート部の一例)と、ポート100と同じ個数のリング回路ブロック200(中継部の一例)と、1つのカウンタ300(カウンタ部の一例)とを備える。
実施の形態1では、パケット交換機900が8つのポート100A〜Hと、8つのリング回路ブロック200A〜Hと、1つのカウンタ300とを備える場合について説明する。但し、ポート100およびリング回路ブロック200の数は2つから7つまたは9つ以上であっても構わない。
以下、ポート100A〜Hを動作させる動作クロックを「ポートクロック」といい、リング回路ブロック200A〜Hを動作させる動作クロックを「リング回路クロック」という。
リング回路クロックのクロック周波数は、ポートクロックのクロック周波数のN倍である。ここで、「N」はリング回路ブロック200A〜Hの個数「8」を意味する。
つまり、リング回路クロックのクロック周期は、ポートクロックのクロック周期のN分の1である。
ポート100A〜Hは、通信ケーブルの端子を挿入する端子口(図示省略)を有するインタフェース回路であり、パケットを通信するコンピュータまたは他のパケット交換機と伝送路(通信ケーブルまたはネットワーク)を介して通信接続する。
以下、ポート100A〜Hに接続するコンピュータまたは他のパケット交換機(いずれも通信装置の一例)を「ノード」という。
ポート100A〜Hはそれぞれ、伝送路からパケットを受信する受信部110と、パケットを伝送路へ送信する送信部120とを備える。
リング回路ブロック200A〜Hはリング状に接続されてリング回路(中継路の一例)を構成し、ポート100A〜Hの受信部110によって受信されたパケットの部分データ(通信データの一例)を所定の周回方向に周回させる。図1に示すリング回路ブロック200A〜Hはパケットの部分データを左回り(中継方向の一例)に周回させる。
以下、リング回路の周回方向の上流側を「前段」といい、リング回路の周回方向の下流側を「後段」という。例えば、リング回路ブロック200Aの前段にはリング回路ブロック200Hが配置され、リング回路ブロック200Aの後段にはリング回路ブロック200Bが配置されている。
リング回路ブロック200A〜Hはそれぞれ、セレクタ210(「SEL」と記す)と、フリップフロップ部220(FF又は「FF部」と記す)とを備える。
リング回路ブロック200x(xはAからHのいずれか)のセレクタ210は、ポート100xの受信部110によって受信されるパケットの部分データと、前段のリング回路ブロック200のフリップフロップ部220から出力されるパケットの部分データとのうち、いずれかのパケットの部分データを選択する回路である。
リング回路ブロック200xのフリップフロップ部220は、リング回路ブロック200xのセレクタ210によって選択されたパケットの部分データを後段のリング回路ブロック200のセレクタ210へ出力する回路である。
例えば、リング回路ブロック200Aのセレクタ210は、ポート100Aの受信部110によって受信されたパケットのデータと前段のリング回路ブロック200Hのフリップフロップ部220から出力されたデータとのうち、いずれかのデータを選択する。また、リング回路ブロック200Aのフリップフロップ部220は、リング回路ブロック200Aのセレクタ210によって選択されたデータを後段のリング回路ブロック200Bのセレクタ210へ出力する。
カウンタ300は、ポートクロックの1回のクロック周期(1サイクル)の間、リング回路クロックのクロック周期をカウントする回路である。
実施の形態1において、カウンタ300は「0」から「7」までの整数値を繰り返しカウントする。
図2は、実施の形態1におけるポート100A〜Hの受信部110の構成図である。
実施の形態1におけるポート100A〜Hの受信部110の構成について、図2に基づいて説明する。
受信部110はパケットを構成する部分データを伝送路から受信する。
パケットは、送信元のノードを識別する送信元アドレス、宛先のノードを識別する宛先アドレス、送信対象のデータ(ペイロードデータ)などを含んだデータである。
受信部110は、S/P変換部111と、データ解析部112と、受信バッファ113と、受信処理記憶部114とを備える。但し、パケット交換機900が受信処理記憶部114を一つ備え、一つの受信処理記憶部114をポート100A〜Hそれぞれの受信部110が共有してもよい。
図2に示す受信部110がポート100x(xはAからHのいずれか)の受信部110である場合、図2の「リング回路ブロック」はリング回路ブロック200xを意味する。
S/P変換部111は、伝送路からパケットの部分データをシリアル(直列)に受信し、受信したパケットの部分データをパラレル(並列)にデータ解析部112へ出力する。例えば、S/P変換部111はポートクロックの1回のクロック周期当たり8ビットの部分データを1ビットずつ受信し、受信した8ビットの部分データをポートクロックの1回のクロック周期でデータ解析部112へ出力する。
S/P変換部111は、パケットの部分データと共に信号値「1」のデータイネーブル信号をデータ解析部112へ出力し、最後の部分データと共にフラグ値「1」の最終データフラグをデータ解析部112へ出力する。
データイネーブル信号は、パケットの部分データを出力していることを通知するための信号である。データイネーブル信号の信号値「1」はパケットの部分データを出力していることを意味し、データイネーブル信号の信号値「0」はパケットの部分データを出力していないことを意味する。
最終データフラグは、パケットを構成する最後の部分データの出力が終了したことを通知するためのフラグ(データまたは信号)である。最終データフラグのフラグ値「1」は最後の部分データの出力が終了したことを意味し、最終データフラグのフラグ値「0」は最後の部分データの出力が終了していないことを意味する。
データ解析部112は、S/P変換部111から出力されるパケットの部分データを入力し、入力したパケットの部分データを受信バッファ113に蓄積する。
データ解析部112は、受信バッファ113に蓄積したパケットの部分データから宛先アドレスを取得する。例えば、受信処理記憶部114に宛先アドレスを含む部分データの順番を示す宛先データ番号を予め記憶しておく。そして、データ解析部112は宛先データ番号が示す順番に蓄積したパケットの部分データから宛先アドレスを取得する。
データ解析部112は、取得した宛先アドレスに対応付けられた宛先ポート番号を受信処理記憶部114内の変換テーブル119から取得する。変換テーブル119は、宛先アドレスと、宛先のポート100を識別する宛先ポート番号(宛先ポート識別子の一例)とを対応付けたデータである。変換テーブル119は受信処理記憶部114に予め記憶しておく。
データ解析部112はパケットの部分データを受信バッファ113から取得し、取得したパケットの部分データをリング回路ブロックへ出力し、リング回路ブロックへ出力したパケットの部分データを受信バッファ113から削除する。但し、リング回路ブロックからフラグ値「1」のウエイトフラグが出力されている場合、データ解析部112は、リング回路ブロックへ出力したパケットの部分データを受信バッファ113から削除しない。この場合、同じ部分データが繰り返しリング回路ブロックに出力されることになる。
データ解析部112は、パケットの部分データと共に、データイネーブル信号と宛先ポート番号とをリング回路ブロックへ出力する。
データ解析部112は、最後の部分データを出力したときにはフラグ値「1」の最終データフラグもリング回路ブロックへ出力する。
図3は、実施の形態1における受信部110のデータイネーブル信号と最終データフラグとパケットの部分データとの関係図である。
受信部110のS/P変換部111またはデータ解析部112(図2参照)は、図3に示すように、パケットの部分データを出力している間、信号値「1(High)」のデータイネーブル信号を出力し、最後の部分データを出力したときにフラグ値「1(High)」の最終データフラグを出力する。
図4は、実施の形態1におけるリング回路ブロック200A〜Hの構成図である。
実施の形態1におけるリング回路ブロック200A〜Hの構成について、図4に基づいて説明する。
リング回路ブロック200A〜Hはそれぞれ、セレクタ210と、フリップフロップ部220と、制御回路230とを備える。
フリップフロップ部220は、3つのフリップフロップ221〜223を備える。
図4において、「リング前段」は前段のリング回路ブロック200を意味し、「リング後段」は後段のリング回路ブロック200を意味する。
また、「現段受信部」は現段のポート100の受信部110を意味し、「後段送信部」は後段のポート100の送信部120を意味する。
例えば、図4がリング回路ブロック200Aを表している場合、「リング前段」はリング回路ブロック200Hであり、「リング後段」はリング回路ブロック200Bであり、「現段受信部」はポート100Aの受信部110であり、「後段送信部」はポート100Bの送信部120である。
セレクタ210は、現段受信部から出力されるパケットの部分データと、リング前段から出力されるパケットの部分データとのうちいずれかのパケットの部分データを選択する回路である。
セレクタ210は、現段受信部とリング前段とのそれぞれから、パケットの部分データと部分データの宛先ポート番号と最終データフラグとを入力する。
制御回路230から信号値「0」のセレクト信号が出力された場合、セレクタ210はリング前段を選択し、リング前段から入力したパケットの部分データと部分データの宛先ポート番号と最終データフラグとをフリップフロップ部220へ出力する。
制御回路230から信号値「1」のセレクト信号が出力された場合、セレクタ210は、現段受信部を選択し、現段受信部から入力したパケットの部分データと部分データの宛先ポート番号と最終データフラグとをフリップフロップ部220へ出力する。
制御回路230はセレクト信号をセレクタ210に出力する回路である。
セレクト信号は、現段受信部からのパケットの部分データとリング前段からのパケットの部分データとのうちいずれかのパケットの部分データを選択するための信号である。
制御回路230の詳細については後述する。
フリップフロップ221〜223は、セレクタ210から出力されたパケットの部分データと部分データの宛先ポート番号と最終データフラグとを入力して記憶する回路である。
フリップフロップ221〜223は、記憶したパケットの部分データと部分データの宛先ポート番号と最終データフラグとをリング後段と後段送信部とに出力する。
図5は、実施の形態1におけるリング回路ブロック200の制御回路230の構成図である。
実施の形態1におけるリング回路ブロック200の制御回路230の構成について、図5に基づいて説明する。
図5において「リング前段」「リング後段」「現段受信部」「後段送信部」の意味は図4と同じである。
「現段送信部」は、現段のポート100の送信部120を意味する。例えば、図5がリング回路ブロック200Aの制御回路230を示している場合、「現段送信部」はポート100Aの送信部120を意味する。
「カウンタ」は、カウンタ300を意味する。
制御回路230は、デコーダ231と、3つのAND回路232〜234と、フリップフロップ235とを備える。
デコーダ231は、カウンタ300からカウンタ値を入力し、入力したカウンタ値に応じてポート動作信号を出力する回路である。
カウンタ値が「0」である場合、デコーダ231は信号値「1」のポート動作信号を出力し、カウンタ値が「0」以外である場合、デコーダ231は信号値「0」のポート動作信号を出力する。
ポート動作信号は、ポートクロックのクロック周期毎のタイミング、つまり、ポート100A〜Hが動作を開始するタイミングを通知するための信号である。
ポート動作信号の信号値「0」はポート100A〜Hが動作を開始しないタイミングであることを意味し、ポート動作信号の信号値「1」はポート100A〜Hが動作を開始するタイミングであることを意味するものとする。
ポート100A〜Hは、カウンタ300のカウンタ値が「0」から「1」になるタイミングで動作を開始する。
AND回路232は、デコーダ231から出力されるポート動作信号とリング前段のフリップフロップ235から出力されるデータフラグとに応じてセレクト信号をセレクタ210へ出力する。
ポート動作信号の信号値が「1」であって、且つデータフラグのフラグ値が「0」である場合、AND回路232は、信号値「1」のセレクト信号をセレクタ210へ出力する。それ以外の場合、AND回路232は信号値「0」のセレクト信号をセレクタ210へ出力する。
AND回路233は、デコーダ231から出力されるポート動作信号とリング前段のフリップフロップ235から出力されるデータフラグとに応じてウエイトフラグを現段受信部へ出力する。
ポート動作信号の信号値が「1」であって、且つデータフラグのフラグ値が「1」である場合、AND回路233は、フラグ値「1」のウエイトフラグを現段受信部へ出力する。それ以外の場合、AND回路233はフラグ値「0」のウエイトフラグを現段受信部へ出力する。
ウエイトフラグは、現段受信部に新たな部分データの出力を停止させるためのフラグ(データまたは信号)である。
AND回路234は、デコーダ231から出力されるポート動作信号と現段受信部から出力されるデータイネーブル信号とに応じてフラグセット信号をフリップフロップ235へ出力する。
ポート動作信号の信号値が「1」であって、且つデータイネーブル信号の信号値が「1」である場合、AND回路234は、信号値「1」のフラグセット信号をフリップフロップ235へ出力する。それ以外の場合、AND回路234は信号値「0」のフラグセット信号をフリップフロップ235へ出力する。
フラグセット信号は、データフラグにフラグ値「1」を設定するための信号である。
フリップフロップ235はデータフラグを記憶し、記憶したデータフラグをリング後段と後段送信部とに出力する回路である。
フリップフロップ235は、AND回路234から出力されるフラグセット信号と、現段送信部から出力されるフラグクリア信号とに応じてデータフラグを更新する。
フラグセット信号の信号値が「1」である場合(但し、フラグクリア信号の信号値が「1」である場合を除く)、フリップフロップ235はデータフラグにフラグ値「1」を設定する。
フラグクリア信号の信号値が「1」である場合、フリップフロップ235はデータフラグにフラグ値「0」を設定する。
フラグセット信号とフラグクリア信号との両方の信号値が「0」である場合、フリップフロップ235は、リング前段のフリップフロップ235から出力されたデータフラグと同じフラグ値をリング後段と後段送信部とへ出力する。
図6は、実施の形態1におけるポート100A〜Hの送信部120の構成図である。
実施の形態1におけるポート100A〜Hの送信部120の構成について、図6に基づいて説明する。
送信部120は、送信制御部121と、P/S変換部122と、比較器123と、2つのAND回路124〜125と、2つのフリップフロップ126〜127とを備える。
図6において、「リング前段」は前段のリング回路ブロック200を意味し、「リング現段」は現段のリング回路ブロック200を意味する。例えば、図6がポート100Aの送信部120を示している場合、「リング前段」はリング回路ブロック200Hを意味し、「リング現段」はリング回路ブロック200Aを意味する。
「カウンタ」はカウンタ300を意味する。
送信制御部121は、AND回路124から信号値「1」のフラグクリア信号が出力されているか否かを判定する。
AND回路124から信号値「1」のフラグクリア信号が出力されている場合、送信制御部121は、リング前段から出力されるパケットの部分データとデータフラグと最終データフラグとを入力する。
送信制御部121は、入力したパケットの部分データをポートクロックのクロック周期に合わせてP/S変換部122へ出力する。送信制御部121は、パケットの部分データと共にデータイネーブル信号をP/S変換部122へ出力する。また、送信制御部121は、最後の部分データをP/S変換部122へ出力するときにはフラグ値「1」の最終データフラグをP/S変換部122へ出力する。
P/S変換部122は、送信制御部121から出力されるパケットの部分データをパラレルに入力し、入力したパケットの部分データを送信バッファ(図示省略)に蓄積する。また、P/S変換部122は、送信制御部121から出力されるデータイネーブル信号と最終データフラグとを入力する。
P/S変換部122は、送信バッファに蓄積したパケットの部分データを用いてパケットを生成し、生成したパケット伝送路へシリアルに送信する。このとき、P/S変換部122は、フラグ値「1」の最終データフラグに基づいて最後の部分データを判定する。
AND回路124は、リング前段から出力されるデータフラグと比較器123から出力される比較信号とに応じてフラグクリア信号を送信制御部121、リング現段、フリップフロップ126およびAND回路125へ出力する。
リング前段から出力されるデータフラグのフラグ値が「1」であり、且つ比較器123から出力される比較信号の信号値が「1」である場合、AND回路124はフラグ値「1」のデータフラグを出力する。それ以外の場合、AND回路124はフラグ値「0」のデータフラグを出力する。
比較器123は、リング前段から出力される宛先ポート番号と、カウンタ300から出力されるカウンタ値と、フリップフロップ127から出力されるカウンタ値と、フリップフロップ126から出力されるパケットフラグとに応じて、比較信号をAND回路124へ出力する。
また、比較器123は、現段のポート100を識別するポート番号を予め記憶する。以下、比較器123が記憶するポート番号を「固定ポート番号」という。
パケットフラグは、同一パケットの部分データが出力されている期間を通知するフラグ(データまたは信号)である。パケットフラグ「1」は同一パケットの部分データが出力されていることを意味し、パケットフラグ「0」は同一パケットの部分データの出力が終了したことを意味する。
以下の(1)から(3)の条件を満たす場合または(1)及び(4)の条件を満たす場合、比較器123は信号値「1」の比較信号を出力する。それ以外の場合、比較器123は信号値「0」の比較信号を出力する。
(1)リング前段から出力される宛先ポート番号と、固定ポート番号とが一致する。
(2)カウンタ300から出力されるカウンタ値と、フリップフロップ127から出力されるカウンタ値とが一致する。
(3)フリップフロップ126から出力されるパケットフラグのフラグ値が「1」である。
(4)フリップフロップ126から出力されるパケットフラグのフラグ値が「0」である。
フリップフロップ127はカウンタ値を記憶し、記憶したカウンタ値を比較器123へ出力する回路である。
フリップフロップ127は、AND回路124から出力されるフラグクリア信号の信号値が「1」であるときにカウンタ300から出力されたカウンタ値を入力し、入力したカウンタ値を記憶する。
これにより、フリップフロップ127は、同一パケットの全ての部分データが送信制御部121に入力されている間(パケットフラグのフラグ値が「1」である間)、同一のカウンタ値を記憶することができる。
また、カウンタ値はポート100A〜Hの個数「0〜7」をカウントした値であるため、リング前段が同じカウンタ値で出力した部分データは、同じポート100によって受信された部分データである。
したがって、送信制御部121は、特定のポート100によって受信される一つのパケットの全ての部分データを入力し終わるまで同じパケットの部分データだけを入力し、他のポート100によって受信された他のパケットの部分データを入力しない。他のパケットの部分データは、送信制御部121が一つのパケットの全ての部分データを入力し終わるまで、リング回路ブロック200A〜Hが構成するリング回路を巡回する。
フリップフロップ126はパケットフラグを記憶し、記憶したパケットフラグを比較器123へ出力する回路である。
フリップフロップ126は、AND回路124から出力されるフラグクリア信号の信号値が「1」である場合にパケットフラグのフラグ値を「1」に更新する。
フリップフロップ126は、AND回路125から出力されるフラグクリア信号の信号値が「1」である場合にパケットフラグのフラグ値を「0」に更新する。
AND回路124から出力されるフラグクリア信号とAND回路125から出力されるフラグリセット信号との両方の信号値が「1」である場合、フリップフロップ126はパケットフラグのフラグ値を「0」に更新する。
AND回路124から出力されるフラグクリア信号とAND回路125から出力されるフラグリセット信号との両方の信号値が「0」である場合、フリップフロップ126はパケットフラグのフラグ値を更新しない。つまり、フリップフロップ126は前回更新したパケットフラグを比較器123へ出力する。
AND回路125は、AND回路124から出力されるフラグクリア信号とリング前段から出力される最終データフラグとに応じてフラグリセット信号をフリップフロップ126へ出力する。
AND回路124から出力されるフラグクリア信号の信号値が「1」であり、且つリング前段から出力される最終データフラグのフラグ値が「1」である場合、AND回路125は、フラグ値「1」のフラグリセット信号をフリップフロップ126へ出力する。それ以外の場合、AND回路125は、信号値「0」のフラグリセット信号をフリップフロップ126へ出力する。
図7、図8は、実施の形態1におけるパケット交換機900の動作を表すタイミングチャートである。
実施の形態1におけるパケット交換機900の動作について、図7、図8に基づいて説明する。
図7において、「ポートクロック」は、ポート100A〜Hの動作クロックのクロック信号を示す。
「リング回路クロック」は、リング回路ブロック200A〜Hの動作クロックのクロック信号を示す。
「カウンタ値」は、カウンタ300によってカウントされたカウンタ値を示す。
「受信データA」は、ポート100Aの受信部110からリング回路ブロック200Aのセレクタ210へ出力されるパケットの部分データを示す。
「受信データF」は、ポート100Fの受信部110からリング回路ブロック200Fのセレクタ210へ出力されるパケットの部分データを示す。
「中継データx(xはAからHのいずれか)」は、リング回路ブロック200xのフリップフロップ部220から次段のポート100の送信部120と次段のリング回路ブロック200のセレクタ210とに出力されるパケットの部分データを示す。
図7に示すように、リング回路クロックのクロック周波数は、ポートクロックのクロック周波数のN倍(Nはリング回路ブロック200A〜Hの個数)である。
つまり、リング回路クロックのクロック周期(サイクル)は、ポートクロックのクロック周期のN分の1である。
図7に示すように、カウンタ300はリング回路クロックと同期してカウンタ値をカウントする。
カウンタ値「0」は、ポート100A〜Hの受信部110が受信データ(例えば「DF−1」「DH−1」「DF−2」「DH−2」をリング回路ブロック200A〜Hのセレクタ210へ出力するタイミングであることを意味する。
図7において、ポート100Aの受信部110が受信データA「DF−1」をリング回路ブロック200Aのセレクタ210へ出力すると同時に、ポート100Fの受信部110が受信データF「DH−1」をリング回路ブロック200Fのセレクタ210へ出力したものとする。
受信データA「DF−1」は宛先がポート100Fであるパケットの1番目の部分データであり、受信データF「DH−1」は宛先がポート100Hであるパケットの1番目の部分データである。
リング回路ブロック200A〜Eのフリップフロップ部220は受信データA「DF−1」を中継し、受信データA「DF−1」はカウンタ値「5」のタイミングでリング回路ブロック200Eのフリップフロップ部220から出力される(中継データA−E)。
リング回路ブロック200F〜Gのフリップフロップ部220は受信データF「DH−1」を中継し、受信データF「DH−1」はカウンタ値「2」のタイミングでリング回路ブロック200Gのフリップフロップ部220から出力される(中継データF−G)。
図8において、「ポートクロック」「リング回路クロック」「カウンタ値」「中継データx」は図7と同じ意味である。
「ラッチデータF」はポート100Fの送信部120の送信制御部121が記憶するパケットの部分データを示し、「送信データF」はポート100Fの送信部120の送信制御部121からP/S変換部122へ出力されるパケットの部分データ(接続信号)を示す。
「ラッチデータH」はポート100Hの送信部120の送信制御部121が記憶するパケットの部分データを示し、「送信データH」はポート100Hの送信部120の送信制御部121からP/S変換部122へ出力されるパケットの部分データ(接続信号)を示す。
図8において、ポート100Hの送信部120の送信制御部121はリング回路ブロック200Gのフリップフロップ部220から出力される中継データG「DH−1」を入力し、入力した中継データG「DH−1」をラッチデータHとして記憶する。送信制御部121はカウンタ値「1」のタイミングでラッチデータH「DH−1」をP/S変換部122へ出力する。
ポート100Fの送信部120の送信制御部121はリング回路ブロック200Eのフリップフロップ部220から出力される中継データE「DF−1」を入力し、入力した中継データE「DF−1」をラッチデータFとして記憶する。送信制御部121はカウンタ値「1」のタイミングでラッチデータF「DF−1」をP/S変換部122へ出力する。
図7、図8において、2番目の部分データ「DF−2」「DH−2」は、ポートクロックの1周期後に1番目の部分データ「DF−1」「DH−1」と同様に処理される。
図9、図10は、実施の形態1におけるリング回路ブロック200A〜Hの動作を表すタイミングチャートである。
実施の形態1におけるリング回路ブロック200A〜Hの動作について、図9、図10に基づいて説明する。リング回路ブロック200A〜Hの構成については図4、図5を参照のこと。
図9において、「通番」は、リング回路ブロック200A〜Hの動作クロックのクロック周期(サイクル)の通番を示す。
「ポートクロック」は、ポート100A〜Hの動作クロックのクロック信号を示す。
「リング回路クロック」は、リング回路ブロック200A〜Hの動作クロックのクロック信号を示す。
「カウンタ値」は、カウンタ300によってカウントされたカウンタ値を示す。
「受信データ」は、現段のポート100x(xはA〜Hのいずれか)の受信部110から現段のリング回路ブロック200xのセレクタ210へ出力されるパケットの部分データを示す。
「前段データ」は、前段のリング回路ブロック200のフリップフロップ部220から現段のリング回路ブロック200xのセレクタ210へ出力されるパケットの部分データを示す。
「選択データ」は、「受信データ」と「前段データ」とのうち、現段のリング回路ブロック200xのセレクタ210が選択してフリップフロップ部220へ出力するパケットの部分データを示す。
「セレクト信号」は、現段のリング回路ブロック200xの制御回路230からセレクタ210へ出力されるセレクト信号を示す。
「中継データ」は、現段のリング回路ブロック200xのフリップフロップ部220から次段のポート100の送信部120と次段のリング回路ブロック200のセレクタ210とに出力されるパケットの部分データを示す。
「ウエイトフラグ」は、現段のリング回路ブロック200xの制御回路230から現段のポート100xの受信部110へ出力されるウエイトフラグを示す。
「データイネーブル」は、現段のポート100xの受信部110から現段のリング回路ブロック200xの制御回路230へ出力されるデータイネーブル信号を示す。
図9において、通番「3」(カウンタ値が「0」)のクロック周期で以下の(1)から(3)の動作があったものとする。
(1)現段のポート100xの受信部110が、受信データ「P0」を現段のリング回路ブロック200xのセレクタ210に出力した。(2)前段のリング回路ブロック200のフリップフロップ部220が、前段データ「R0−0」を現段のリング回路ブロック200xのセレクタ210に出力した。(3)現段のリング回路ブロック200xの制御回路230がセレクト信号「1」をセレクタ210に出力した。
このとき、セレクト信号の信号値が「1」であるため、現段のリング回路ブロック200xのセレクタ210は、受信データ「P0」と前段データ「R0−0」とのうち受信データ「P0」を選択データとして選択し、選択データ「P0」をフリップフロップ部220へ出力する。現段のリング回路ブロック200xのフリップフロップ部220は、セレクタ210から出力された選択データ「P0」を中継データとして次段のポート100の送信部120と次段のリング回路ブロック200のセレクタ210とに出力する。
通番「11」(カウンタ値が「0」)のクロック周期で以下の(4)から(6)の動作があったものとする。
(4)現段のポート100xの受信部110が、受信データ「P1」を現段のリング回路ブロック200xのセレクタ210に出力した。(5)前段のリング回路ブロック200のフリップフロップ部220が、前段データ「R1−0」を現段のリング回路ブロック200xのセレクタ210に出力した。(6)現段のリング回路ブロック200xの制御回路230がセレクト信号「0」をセレクタ210に出力した。(7)現段のリング回路ブロック200xの制御回路230がウエイトフラグ「1」を現段のポート100xの受信部110に出力した。
このとき、セレクト信号の信号値が「0」であるため、現段のリング回路ブロック200xのセレクタ210は、受信データ「P1」と前段データ「R1−0」とのうち前段データ「R1−0」を選択データとして選択し、選択データ「R1−0」をフリップフロップ部220へ出力する。現段のリング回路ブロック200xのフリップフロップ部220は、セレクタ210から出力された選択データ「R1−0」を中継データとして次段のポート100の送信部120と次段のリング回路ブロック200のセレクタ210とに出力する。
また、ウエイトフラグ「1」が出力されたため、現段のポート100xの受信部110は、受信データ「P1」をポートクロックの次のクロック周期でも出力する。
現段のポート100xの受信部110は、受信データ「P0」「P1」を受信している間、データイネーブル「1」を現段のリング回路ブロック200xの制御回路230へ出力する。
図10において、「通番」「ポートクロック」「リング回路クロック」「カウンタ値」「セレクト信号」「ウエイトフラグ」「データイネーブル」は、図9と同じ意味である。
「前段データフラグ」は、前段のリング回路ブロック200の制御回路230から現段のリング回路ブロック200xの制御回路230に入力されるデータフラグを示す。
「フラグセット信号」は、現段のリング回路ブロック200xの制御回路230内で発生するフラグセット信号を示す。
「後段データフラグ」は、現段のリング回路ブロック200xの制御回路230から後段のリング回路ブロック200の制御回路230へ出力されるデータフラグを示す。
前段データフラグおよび後段データフラグの網掛けは、フラグ値が「0」と「1」とのどちらでもあっても構わないことを意味している。
図10において、通番「3」のクロック周期では、カウンタ値が「0」であり、前段データフラグが「0」である。この場合、現段のリング回路ブロック200xの制御回路230は、セレクト信号「1」をセレクタ210に出力する。
通番「11」のクロック周期では、カウンタ値が「0」であり、前段データフラグが「1」である。この場合、現段のリング回路ブロック200xの制御回路230は、ウエイトフラグ「1」を現段のポート100xの受信部110に出力する。
通番「3」「11」のクロック周期では、カウンタ値が「0」であり、データイネーブルが「1」である。この場合、フラグセット信号の信号値は「1」になる。そして、現段のリング回路ブロック200xの制御回路230は、後段データフラグ「1」を後段のリング回路ブロック200の制御回路230に出力する。
図11は、実施の形態1におけるリング回路ブロック200Fとポート100Fの送信部120との動作を表すタイミングチャートである。
実施の形態1におけるリング回路ブロック200Fとポート100Fの送信部120との動作について、図11に基づいて説明する。
リング回路ブロック200Fの構成については図4、図5を参照のこと。ポート100Fの送信部120の構成については図6を参照のこと。
リング回路ブロック200A〜E、G、Hはリング回路ブロック200Fと同様に動作し、ポート100A〜E、G、Hの送信部120はポート100Fの送信部120と同様に動作する。
図11において、「通番」は、リング回路ブロック200Fの動作クロックのクロック周期(サイクル)の通番を示す。
「ポートクロック」は、ポート100Fの動作クロックのクロック信号を示す。
「リング回路クロック」は、リング回路ブロック200Fの動作クロックのクロック信号を示す。
「カウンタ値」は、カウンタ300によってカウントされたカウンタ値を示す。
「前段データフラグ」は、前段のリング回路ブロック200Eの制御回路230からリング回路ブロック200Fの制御回路230に入力されるデータフラグを示す。
「前段データ」は、前段のリング回路ブロック200Eのフリップフロップ部220から、ポート100Fの送信部120とリング回路ブロック200Fのセレクタ210とに出力されるパケットの部分データを示す。
「前段ポート番号」は、前段データの宛先ポート番号を示す。
「フラグクリア信号」は、ポート100Fの送信部120からリング回路ブロック200Fの制御回路230へ出力されるフラグクリア信号を示す。
「後段データ」は、リング回路ブロック200Fのフリップフロップ部220から、後段のポート100Gの送信部120と後段のリング回路ブロック200Gのセレクタ210とに出力されるパケットの部分データを示す。
「後段ポート番号」は、後段データの宛先ポート番号を示す。
「後段データフラグ」は、リング回路ブロック200Fの制御回路230から後段のリング回路ブロック200Gの制御回路230へ出力されるデータフラグを示す。
前段データ、前段ポート番号、後段データ、後段ポート番号の網掛けは、データが無い又はデータが無効であることを意味する。
図11において、ポート100Fの宛先ポート番号が「5」であるものとする。
例えば、通番「1」「3」「6」のクロック周期において、前段データ「R0−2」「R0−0」「R1−5」の宛先はポート100F以外のポート100である(前段ポート番号≠「5」)。
この場合、ポート100Fの送信部120またはリング回路ブロック200Fは、以下のように動作する。
ポート100Fの送信部120は、前段データ「R0−2」「R0−0」「R1−5」を入力しても入力した前段データを送信しない。
リング回路ブロック200Fの制御回路230は、データフラグ「1」を後段のリング回路ブロック200Gの制御回路230へ出力する。
リング回路ブロック200Fのフリップフロップ部220は、前段データ「R0−2」「R0−0」「R1−5」を後段データとして後段のポート100Gの送信部120と後段のリング回路ブロック200Gのセレクタ210とに出力する。
通番「7」のクロック周期において、前段データ「R1−4」の宛先はポート100Fである(前段ポート番号=「5」)。
この場合、ポート100Fの送信部120またはリング回路ブロック200Fは、以下のように動作する。
ポート100Fの送信部120は前段データ「R1−4」を入力し、入力した前段データ「R1−4」を送信する。そして、ポート100Fの送信部120は、リング回路ブロック200Fの制御回路230にフラグクリア信号「1」を出力する。
リング回路ブロック200Fの制御回路230は、ポート100Fの送信部120からフラグクリア信号「1」が出力されたため、後段データフラグを「1」から「0」にリセットし、後段データフラグ「0」を後段のリング回路ブロック200Gの制御回路230へ出力する。
リング回路ブロック200Fのフリップフロップ部220は、前段データ「R1−4」を後段データとして後段のポート100Gの送信部120と後段のリング回路ブロック200Gのセレクタ210とに出力する。但し、後段データフラグが「0」であるため、後段データ「R1−4」は無効なデータとして扱われる。つまり、後段データ「R1−4」は伝送路へ送信されない。
通番「9」のクロック周期において、前段データ「R1−2」の宛先はポート100Fである(前段ポート番号=「5」)。また、通番「4」から通番「11」までがポートクロックの一つのクロック周期である。
この場合、ポート100Fの送信部120またはリング回路ブロック200Fは、以下のように動作する。
ポート100Fの送信部120は、ポートクロックの同一周期内(通番「7」)で既に前段データ「R1−4」を入力している。このため、ポート100Fの送信部120は新たに前段データ「R1−2」を入力できず、フラグクリア信号「1」を出力しない。
リング回路ブロック200Fのフリップフロップ部220は、前段データ「R1−2」を後段データとして後段のポート100Gの送信部120と後段のリング回路ブロック200Gのセレクタ210とに出力する。このとき、後段データフラグが「0」であるため、後段データ「R1−2」は有効なデータとして扱われる。つまり、後段データ「R1−2」はその後のいずれかのタイミングで伝送路へ送信される。
通番「15」のクロック周期において、前段データ「R2−4」の宛先はポート100Fである(前段ポート番号=「5」)。また、通番「12」以降のポートクロックのクロック周期は、通番「4」から通番「11」までのポートクロックのクロック周期と異なる。
この場合、ポート100Fの送信部120またはリング回路ブロック200Fは、以下のように動作する。
ポート100Fの送信部120は、前段データ「R1−4」を入力したときの前回のカウンタ値「4」と今回のカウンタ値「4」とを比較する。このとき、送信部120は、前回のカウンタ値「4」と今回のカウンタ値「4」とが一致するため、前段データ「R2−4」を入力し、入力した前段データ「R2−4」を送信する。そして、ポート100Fの送信部120は、リング回路ブロック200Fの制御回路230にフラグクリア信号「1」を出力する。
リング回路ブロック200Fの制御回路230は、ポート100Fの送信部120からフラグクリア信号「1」が出力されたため、後段データフラグを「1」から「0」にリセットし、後段データフラグ「0」を後段のリング回路ブロック200Gの制御回路230へ出力する。
リング回路ブロック200Fのフリップフロップ部220は、前段データ「R2−4」を後段データとして後段のポート100Gの送信部120と後段のリング回路ブロック200Gのセレクタ210とに出力する。但し、後段データフラグが「0」であるため、後段データ「R2−4」は無効なデータとして扱われる。つまり、後段データ「R2−4」は伝送路へ送信されない。
パケット交換機900は、各ポートからリング回路にデータを入力するタイミングを同期させる。パケット交換機900は、送信ポート(例えば、送信部120)に自宛てのパケットが到着したら、そのパケットの送信が完了するまで、他ポートからリング回路に入力したデータをリング内に巡回させる。これにより、パケット交換機900はポートの優先制御を行うことができる。
実施の形態1において、パケット交換機900のポート100A〜Hは、以下の理由(1)(2)により、上流側で近いポート100が受信したパケットを上流側で遠いポート100(下流側で近いポート100)が受信したパケットよりも優先して送信する。
つまり、ポート100はn段前のポート100が受信したパケットをn+1段前のポート100が受信したパケットよりも優先して送信する。
例えば、ポート100Aは、1段前のポート100Hが受信したパケットを2段前のポート100Gが受信したパケットよりも優先して送信する。このような優先制御を「絶対優先制御」という。
(1)複数のポート100が同じポート100を宛先とするパケットを同じタイミングで受信した場合、上流側の近いポート100によって受信されたパケットの部分データが、上流側の遠いポート100によって受信されたパケットの部分データよりも先に、宛先のポート100に到達する。(2)宛先のポート100は一つのパケットを構成する全ての部分データを送信し終わるまで、他のパケットの部分データを送信しない。
図12は、実施の形態1におけるパケット交換機900のハードウェア資源の一例を示す図である。
図12において、パケット交換機900(コンピュータの一例)は、CPU901(Central Processing Unit)を備えている。CPU901は、バス902を介してROM903、RAM904、バッファ909、通信ボード905などのハードウェアデバイスと接続され、これらのハードウェアデバイスを制御する。ROM903、RAM904、バッファ909は記憶装置の一例である。
通信ボード905は、有線または無線で、LAN(Local Area Network)、インターネット、電話回線などの通信網に接続している。
通信ボード905は、ポート100A〜Hやリング回路ブロック200A〜Hとして機能する。
ROM903またはRAM904には、OS(オペレーティングシステム)、プログラム群、ファイル群が記憶されている。
プログラム群には、パケット交換機900の機能(ポート100、リング回路ブロック200、「〜部」など)を実行するプログラムが含まれる。プログラムは、CPU901により読み出され実行される。すなわち、プログラムは、パケット交換機900を機能させるものであり、またパケット交換の手順や方法をパケット交換機900に実行させるものである。
ファイル群には、パケット交換機900で使用される各種データ(入力、出力、判定結果、計算結果、処理結果など)が含まれる。
実施の形態において構成図およびタイミングチャートに含まれている矢印は主としてデータや信号の入出力を示す。
構成図やタイミングチャートなどに基づいて説明するパケット交換機900の処理はCPU901や記憶装置などのハードウェアを用いて実行される。
実施の形態においてポート100、リング回路ブロック200または「〜部」として説明するものはハードウェア、ファームウェア、ソフトウェアまたはこれらの組み合わせのいずれで実装されても構わない。
実施の形態1において、リング回路クロックのクロック周波数がポートクロックのクロック周波数のN倍以上(Nはリング回路ブロック200の個数)、つまり、リング回路クロックのクロック周期がポートクロックのN分の1以下であっても構わない。
また、リング回路クロックのクロック周波数がポートクロックのクロック周波数の2倍からN−1倍、つまり、リング回路クロックのクロック周期がポートクロックのクロック周期の2分の1からN分の1であっても構わない。
但し、これらの場合、カウンタ300のカウンタ値とポート100A〜Hのポート番号との対応関係がずれるため、カウンタ300のカウンタ値とポート100A〜Hのポート番号との対応関係を記憶管理する必要がある。
実施の形態1において、パケット交換機900は、一つの宛先パケット番号で複数または全てのポート100を識別し、同じパケットを複数または全てのポート100から送信しても構わない。
実施の形態1において、例えば、以下のようなパケット交換機900について説明した。
パケット交換機900は、データを送受信する複数のポート部(例えば、ポート100A〜H)と、データを周回させる周回方向が決められたリング状の中継路を構成する複数のデータ中継部(例えば、リング回路ブロック200A〜H)とを備える。
複数のポート部それぞれのポート部は、複数のデータ中継部のうちいずれかのデータ中継部に対応付けられたポート受信部(例えば、受信部110)とポート送信部(例えば、送信部120)とを備える。
複数のポート部それぞれのポート受信部は、伝送路から通信データ(例えば、パケットの部分データ)を受信し、受信した通信データを複数のポート部それぞれのポート送信部のうちいずれかのポート送信部を宛先とする通信データとして所定のポート周期(例えば、ポートクロックのクロック周期)で出力する。
通信データを出力したポート受信部に対応付けられたデータ中継部は、通信データを入力し、通信データを所定のポート周期より短い所定の中継周期(例えば、リング回路クロックのクロック周期)で周回方向の下流側のデータ中継部に中継する。
通信データが中継されたデータ中継部は、通信データを所定の中継周期で周回方向の下流側のデータ中継部に中継する。
通信データの宛先のポート送信部に対応付けられたデータ中継部は、通信データを宛先のポート送信部に出力する。
通信データの宛先のポート送信部は、通信データを入力し、通信データを受信した伝送路とは異なる伝送路に送信する。
また例えば、以下のようなパケット交換機900について説明した。
パケット交換機900は、ノード数分のフリップフロップ(例えば、フリップフロップ部220)をリング状に配置し、各フリップフロップ間に2−to−1セレクタ(例えば、セレクタ210)を配置する。2−to−1セレクタは、リング回路を回るデータと、ポートを通してノードから受信したパケットデータとの何れかを選択し、ポートは各フリップフロップの出力を送信する。リング回路内のフリップフロップのクロック(例えば、リング回路クロック)はポートのクロック(例えば、ポートクロック)のN倍以上の周波数であり、ポートとフリップフロップは時分割で動作する。
リング回路内のフリップフロップの動作周波数がポートの動作周波数のN倍以上であるため、パケット交換機900は、リング回路に入力したデータをポートのクロックの1サイクルで転送することができる。つまり、パケット交換機900は、宛先ポートが重ならない限り全ポートのデータを並列で転送することができる。これにより、パケット交換機900は、転送効率がクロスバー型スイッチと同等であって回路規模が小さい、という効果を奏することができる。
パケット交換機900は、各ポートからリング回路にデータを入力するタイミングが同期している。また、自宛てのパケットを受け取った送信ポートは、パケットの送信が完了するまで他のポートからリング回路に入力したデータを無視する。これにより、パケット交換機900は、単純な回路で固定優先制御を行うことができる。
実施の形態2.
実施の形態1と異なる優先制御を行うパケット交換機について説明する。
以下、実施の形態1と異なる事項について主に説明する。説明を省略する事項については実施の形態1と同様である。
パケット交換機900の構成、ポート100A〜Hの構成、リング回路ブロック200A〜Hの構成は、実施の形態1と同様である。
但し、ポート100A〜Hの送信部120の動作は、実施の形態1で説明した動作と以下のように異なる。
実施の形態2におけるポート100A〜Hの送信部120の動作について、図6に基づいて説明する。
図6において、比較器123は、フリップフロップ126からパケットフラグ「0」が出力された場合、以下のように動作する。
パケットフラグ「0」が出力されてからポートクロックの1周期が経過する前にリング前段からの宛先ポート番号と固定ポート番号とが一致した場合、比較器123は、信号値「1」の比較信号を出力する代わりに信号値「0」の比較信号を出力する。さらに、比較器123は、カウンタ300から出力されるカウンタ値を記憶する。以下、比較器123に記憶したカウンタ値を「保留カウンタ値」という。
パケットフラグ「0」が出力されてからポートクロックの1周期が経過した後にリング前段からの宛先ポート番号と固定ポート番号とが一致し、保留カウンタ値とカウンタ300から出力されるカウンタ値とが一致した場合、比較器123は、信号値「1」の比較信号を出力する。以後の比較器123の動作は実施の形態1と同じである。
比較器123の上記の動作により、パケット交換機900は、送信し終わったパケットの受信元のポート100が新たに受信したパケットよりも、他のポート100が受信したパケットを優先して送信することができる。このような優先制御を「ラウンドロビン制御」という。
例えば、ポート100Hの受信部110が、ポート100Aを宛先とする第1のパケットHを受信し、第1のパケットHを受信した後にポート100Aを宛先とする第2のパケットHを受信するものとする。また、ポート100Gの受信部110がポート100Aを宛先とする第1のパケットGを受信したものとする。
さらに、ポート100Aの送信部120は、ポート100Aを宛先とする3つのパケットのうち、ポート100Hの受信部110によって受信された第1のパケットHを最初に送信したものとする。
この場合、ポート100Aの送信部120は、ポート100Gの受信部110によって受信された第1のパケットGを、ポート100Hによって受信された第2のパケットHより優先して送信する。つまり、ポート100Aの送信部120は、第1のパケットH、第1のパケットG、第2のパケットHの順番に送信を行う。
実施の形態2において、例えば、以下のようなパケット交換機900について説明した。
ポート100は、直前に送信したパケットの送信元となるポートの、前段のポートから順番にパケットデータを受け付ける。
パケット交換機900は、入力ポートを特定する為の比較器123とN進カウンタ(カウンタ300)を利用してラウンドロビン制御を実現している。これにより、回路規模が大きくならず、特定のポートが固定的に優先されず、全ポートに対し公平に伝送帯域を割り当てることができる。
100 ポート、110 受信部、111 S/P変換部、112 データ解析部、113 受信バッファ、114 受信処理記憶部、119 変換テーブル、120 送信部、121 送信制御部、122 P/S変換部、123 比較器、124,125 AND回路、126,127 フリップフロップ、200 リング回路ブロック、210 セレクタ、220 フリップフロップ部、221〜223 フリップフロップ、230 制御回路、231 デコーダ、232〜234 AND回路、235 フリップフロップ、300 カウンタ、900 パケット交換機、901 CPU、902 バス、903 ROM、904 RAM、905 通信ボード、909 バッファ。

Claims (2)

  1. データを送受信する複数のポート部と、データを周回させる周回方向が決められたリング状の中継路を構成する複数のデータ中継部とを備え、
    前記複数のポート部それぞれのポート部は、前記複数のデータ中継部のうちいずれかのデータ中継部に対応付けられたポート受信部とポート送信部とを備え、
    前記複数のポート部それぞれのポート受信部は、伝送路から通信データを受信し、受信した通信データを前記複数のポート部それぞれのポート送信部のうちいずれかのポート送信部を宛先とする通信データとして所定のポート周期で出力し、
    前記通信データを出力したポート受信部に対応付けられたデータ中継部は、前記通信データを入力し、前記通信データを前記所定のポート周期より短い所定の中継周期で前記周回方向の下流側のデータ中継部に中継し、
    前記通信データが中継されたデータ中継部は、前記通信データを前記所定の中継周期で前記周回方向の下流側のデータ中継部に中継し、
    前記通信データの前記宛先のポート送信部に対応付けられたデータ中継部は、前記通信データを前記宛先のポート送信部に出力し、
    前記通信データの前記宛先のポート送信部は、前記通信データを入力し、前記通信データを受信した前記伝送路とは異なる伝送路に送信する交換機であって、
    前記交換機は、0からX(Xは1以上の整数)までの整数値を繰り返しカウントする際に前記所定の中継周期に1ずつカウントし、カウントした値であるカウンタ値を出力するカウンタを備え、
    前記所定のポート周期は、前記所定の中継周期の(X+1)倍の時間であり、
    前記通信データは、パケットを構成する複数の部分データのうちの部分データであり、
    前記複数のポート部は、第0〜第Xのポート部であり、前記複数のデータ中継部は、第0〜第Xのデータ中継部であり、
    第x(xは0以上X以下の整数)のポート部は、第xのポート受信部と、第xのポート送信部とを備え、
    前記第xのポート送信部は、前記カウンタから出力されたカウンタ値を記憶した後に前記カウンタ値を出力するフリップフロップである第xのカウンタ値用フリップフロップと、前記第xのポート送信部を宛先とするパケットを構成する複数の部分データのうちの1つ目の部分データが前記第xのポート送信部に入力されてから、前記第xのポート送信部を宛先とするパケットを構成する複数の部分データの最終の部分データが前記第xのポート送信部に入力されるまでの間、第1のフラグ値を示すパケットフラグを出力する第xのパケットフラグ用フリップフロップとを有し、
    第y(yは1以上X−1以下の整数)のポート受信部は、
    部分データを受信した場合、受信した部分データを前記所定のポート周期で第yのデータ中継部に出力すると共に、出力する部分データが最終の部分データであるか否かを示す最終データフラグと、出力する部分データの宛先となるポート送信部を識別する宛先ポート番号と、を第yのデータ中継部に出力し、
    第yのデータ中継部は、
    第y−1のデータ中継部から部分データと最終データフラグと宛先ポート番号とが出力された場合、第y−1のデータ中継部から出力された部分データと最終データフラグと宛先ポート番号とを前記所定の中継周期で前記中継路に出力し、
    前記第y−1のデータ中継部から部分データと最終データフラグと宛先ポート番号とが出力されず、前記第yのポート受信部から部分データと最終データフラグと宛先ポート番号とが出力された場合、前記第yのポート受信部から出力された部分データと最終データフラグと宛先ポート番号とを前記所定の中継周期で前記中継路に出力し、
    第y+1のポート送信部は、
    前記第yのデータ中継部から出力された宛先ポート番号を入力し、
    入力した宛先ポート番号が前記第y+1のポート送信部を識別する固定ポート番号と一致し、第y+1のパケットフラグ用フリップフロップから出力されているパケットフラグが前記第1のフラグ値以外のフラグ値を示す場合、前記カウンタから出力されているカウンタ値を第y+1のカウンタ値用フリップフロップに記憶し、前記第yのデータ中継部から出力された部分データを入力し、入力した部分データを前記異なる伝送路に送信し、
    入力した宛先ポート番号が前記固定ポート番号と一致し、前記第y+1のパケットフラグ用フリップフロップから出力されているパケットフラグが前記第1のフラグ値を示し、前記カウンタから出力されているカウンタ値が前記第y+1のカウンタ値用フリップフリップから出力されているカウンタ値と一致しない場合、前記第yのデータ中継部から出力された部分データの送信を行わず、
    入力した宛先ポート番号が前記固定ポート番号と一致し、前記第y+1のパケットフラグ用フリップフロップから出力されているパケットフラグが前記第1のフラグ値を示し、前記カウンタから出力されているカウンタ値が前記第y+1のカウンタ値用フリップフロップから出力されているカウンタ値と一致する場合、前記第yのデータ中継部から出力された部分データを入力し、入力した部分データを前記異なる伝送路に送信する
    ことを特徴とする交換機。
  2. データを送受信する複数のポート部と、データを周回させる周回方向が決められたリング状の中継路を構成する複数のデータ中継部とを備え、
    前記複数のポート部それぞれのポート部は、前記複数のデータ中継部のうちいずれかのデータ中継部に対応付けられたポート受信部とポート送信部とを備え、
    前記複数のポート部それぞれのポート受信部は、伝送路から通信データを受信し、受信した通信データを前記複数のポート部それぞれのポート送信部のうちいずれかのポート送信部を宛先とする通信データとして所定のポート周期で出力し、
    前記通信データを出力したポート受信部に対応付けられたデータ中継部は、前記通信データを入力し、前記通信データを前記所定のポート周期より短い所定の中継周期で前記周回方向の下流側のデータ中継部に中継し、
    前記通信データが中継されたデータ中継部は、前記通信データを前記所定の中継周期で前記周回方向の下流側のデータ中継部に中継し、
    前記通信データの前記宛先のポート送信部に対応付けられたデータ中継部は、前記通信データを前記宛先のポート送信部に出力し、
    前記通信データの前記宛先のポート送信部は、前記通信データを入力し、前記通信データを受信した前記伝送路とは異なる伝送路に送信するデータ転送方法であって、
    0からX(Xは1以上の整数)までの整数値を繰り返しカウントする際に前記所定の中継周期に1ずつカウントし、カウントした値であるカウンタ値を出力するカウンタを備え、
    前記所定のポート周期は、前記所定の中継周期の(X+1)倍の時間であり、
    前記通信データは、パケットを構成する複数の部分データのうちの部分データであり、
    前記複数のポート部は、第0〜第Xのポート部であり、前記複数のデータ中継部は、第0〜第Xのデータ中継部であり、
    第x(xは0以上X以下の整数)のポート部は、第xのポート受信部と、第xのポート送信部とを備え、
    前記第xのポート送信部は、前記カウンタから出力されたカウンタ値を記憶した後に前記カウンタ値を出力するフリップフロップである第xのカウンタ値用フリップフロップと、前記第xのポート送信部を宛先とするパケットを構成する複数の部分データのうちの1つ目の部分データが前記第xのポート送信部に入力されてから、前記第xのポート送信部を宛先とするパケットを構成する複数の部分データの最終の部分データが前記第xのポート送信部に入力されるまでの間、第1のフラグ値を示すパケットフラグを出力する第xのパケットフラグ用フリップフロップとを有し、
    第y(yは1以上X−1以下の整数)のポート受信部は、
    部分データを受信した場合、受信した部分データを前記所定のポート周期で第yのデータ中継部に出力すると共に、出力する部分データが最終の部分データであるか否かを示す最終データフラグと、出力する部分データの宛先となるポート送信部を識別する宛先ポート番号と、を第yのデータ中継部に出力し、
    第yのデータ中継部は、
    第y−1のデータ中継部から部分データと最終データフラグと宛先ポート番号とが出力された場合、第y−1のデータ中継部から出力された部分データと最終データフラグと宛先ポート番号とを前記所定の中継周期で前記中継路に出力し、
    前記第y−1のデータ中継部から部分データと最終データフラグと宛先ポート番号とが出力されず、前記第yのポート受信部から部分データと最終データフラグと宛先ポート番号とが出力された場合、前記第yのポート受信部から出力された部分データと最終データフラグと宛先ポート番号とを前記所定の中継周期で前記中継路に出力し、
    第y+1のポート送信部は、
    前記第yのデータ中継部から出力された宛先ポート番号を入力し、
    入力した宛先ポート番号が前記第y+1のポート送信部を識別する固定ポート番号と一致し、第y+1のパケットフラグ用フリップフロップから出力されているパケットフラグが前記第1のフラグ値以外のフラグ値を示す場合、前記カウンタから出力されているカウンタ値を第y+1のカウンタ値用フリップフロップに記憶し、前記第yのデータ中継部から出力された部分データを入力し、入力した部分データを前記異なる伝送路に送信し、
    入力した宛先ポート番号が前記固定ポート番号と一致し、前記第y+1のパケットフラグ用フリップフロップから出力されているパケットフラグが前記第1のフラグ値を示し、前記カウンタから出力されているカウンタ値が前記第y+1のカウンタ値用フリップフリップから出力されているカウンタ値と一致しない場合、前記第yのデータ中継部から出力された部分データの送信を行わず、
    入力した宛先ポート番号が前記固定ポート番号と一致し、前記第y+1のパケットフラグ用フリップフロップから出力されているパケットフラグが前記第1のフラグ値を示し、前記カウンタから出力されているカウンタ値が前記第y+1のカウンタ値用フリップフロップから出力されているカウンタ値と一致する場合、前記第yのデータ中継部から出力された部分データを入力し、入力した部分データを前記異なる伝送路に送信する
    ことを特徴とするデータ転送方法。
JP2012064379A 2012-03-21 2012-03-21 交換機およびデータ転送方法 Expired - Fee Related JP5826085B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012064379A JP5826085B2 (ja) 2012-03-21 2012-03-21 交換機およびデータ転送方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012064379A JP5826085B2 (ja) 2012-03-21 2012-03-21 交換機およびデータ転送方法

Publications (2)

Publication Number Publication Date
JP2013198007A JP2013198007A (ja) 2013-09-30
JP5826085B2 true JP5826085B2 (ja) 2015-12-02

Family

ID=49396397

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012064379A Expired - Fee Related JP5826085B2 (ja) 2012-03-21 2012-03-21 交換機およびデータ転送方法

Country Status (1)

Country Link
JP (1) JP5826085B2 (ja)

Also Published As

Publication number Publication date
JP2013198007A (ja) 2013-09-30

Similar Documents

Publication Publication Date Title
JP5028431B2 (ja) ネットワーク中継装置およびパケット振り分け方法
JP5197765B2 (ja) 通信管理装置および通信装置
JP6184405B2 (ja) SpaceWireベースのネットワークで用いられる装置および方法、当該方法を実施させるコンピュータプログラム、SpaceWireベースのネットワーク
JP2012065019A (ja) フレーム中継装置システム
US9001841B2 (en) Communication control device, parallel computer system, and communication control method
US9722943B2 (en) Seamless switching for multihop hybrid networks
US11616662B2 (en) Fractal tree structure-based data transmit device and method, control device, and intelligent chip
CN110225133B (zh) 消息发送方法、节点、装置、系统及相关设备
JP5826085B2 (ja) 交換機およびデータ転送方法
JP2016192597A5 (ja)
US10728178B2 (en) Apparatus and method for distribution of congestion information in a switch
JP6437175B1 (ja) ネットワーク管理システムおよびネットワーク管理方法
JP2013232758A (ja) データ収集システム
US20180309859A1 (en) Information processing apparatus, information processing system and method of controlling information processing system
CN111226420A (zh) 使用第一循环以太网协议和第二循环以太网协议的高效调度电信方案
US9385961B2 (en) Parallel computing device, communication control device, and communication control method
CN102055657A (zh) Fc数据报文的负载分担方法和fc交换机系统
JP5187281B2 (ja) ゲートウェイ装置
WO2018097015A1 (ja) 分散システム
JP6221498B2 (ja) 情報処理システム及び情報処理システムの制御方法
US20200036625A1 (en) Communication apparatus, communication control method, and communication system
CN108616375B (zh) 基于as5643协议的指定周期传输数据的方法和电路
JPWO2018167838A1 (ja) 中継装置及びデータ転送方法
JP2008172540A (ja) ステーション装置およびフレーム転送方法
CN108574647B (zh) 交换机和分类器以及相关方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150629

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150707

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150804

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: 20150915

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151013

R150 Certificate of patent or registration of utility model

Ref document number: 5826085

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees