JP5826085B2 - 交換機およびデータ転送方法 - Google Patents
交換機およびデータ転送方法 Download PDFInfo
- 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
Links
Images
Landscapes
- Small-Scale Networks (AREA)
Description
しかし、クロスバー型回路には全ての受信ポートの中から1つの受信ポートを選択するためのセレクタがポート数(N)と同じ数だけ必要なため、回路規模が大きくなる。
しかし、あるポートから受信したパケットがリングを流れている期間、その経路上に接続されている他のポートは送受信が出来ずに待たされる。そのため、クロスバー型回路に比べて転送効率が悪くなる、という課題があった。
データを送受信する複数のポート部と、データを周回させる周回方向が決められたリング状の中継路を構成する複数のデータ中継部とを備える。
前記複数のポート部それぞれのポート部は、前記複数のデータ中継部のうちいずれかのデータ中継部に対応付けられたポート受信部とポート送信部とを備える。
前記複数のポート部それぞれのポート受信部は、伝送路から通信データを受信し、受信した通信データを前記複数のポート部それぞれのポート送信部のうちいずれかのポート送信部を宛先とする通信データとして所定のポート周期で出力し、
前記通信データを出力したポート受信部に対応付けられたデータ中継部は、前記通信データを入力し、前記通信データを前記所定のポート周期より短い所定の中継周期で前記周回方向の下流側のデータ中継部に中継し、
前記通信データが中継されたデータ中継部は、前記通信データを前記所定の中継周期で前記周回方向の下流側のデータ中継部に中継し、
前記通信データの前記宛先のポート送信部に対応付けられたデータ中継部は、前記通信データを前記宛先のポート送信部に出力し、
前記通信データの前記宛先のポート送信部は、前記通信データを入力し、前記通信データを受信した前記伝送路とは異なる伝送路に送信する。
回路規模が小さく、データの転送効率が高いパケット交換機について説明する。
実施の形態1におけるパケット交換機900の構成について、図1に基づいて説明する。
実施の形態1では、パケット交換機900が8つのポート100A〜Hと、8つのリング回路ブロック200A〜Hと、1つのカウンタ300とを備える場合について説明する。但し、ポート100およびリング回路ブロック200の数は2つから7つまたは9つ以上であっても構わない。
リング回路クロックのクロック周波数は、ポートクロックのクロック周波数のN倍である。ここで、「N」はリング回路ブロック200A〜Hの個数「8」を意味する。
つまり、リング回路クロックのクロック周期は、ポートクロックのクロック周期のN分の1である。
以下、ポート100A〜Hに接続するコンピュータまたは他のパケット交換機(いずれも通信装置の一例)を「ノード」という。
以下、リング回路の周回方向の上流側を「前段」といい、リング回路の周回方向の下流側を「後段」という。例えば、リング回路ブロック200Aの前段にはリング回路ブロック200Hが配置され、リング回路ブロック200Aの後段にはリング回路ブロック200Bが配置されている。
リング回路ブロック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へ出力する。
実施の形態1において、カウンタ300は「0」から「7」までの整数値を繰り返しカウントする。
実施の形態1におけるポート100A〜Hの受信部110の構成について、図2に基づいて説明する。
パケットは、送信元のノードを識別する送信元アドレス、宛先のノードを識別する宛先アドレス、送信対象のデータ(ペイロードデータ)などを含んだデータである。
S/P変換部111は、パケットの部分データと共に信号値「1」のデータイネーブル信号をデータ解析部112へ出力し、最後の部分データと共にフラグ値「1」の最終データフラグをデータ解析部112へ出力する。
最終データフラグは、パケットを構成する最後の部分データの出力が終了したことを通知するためのフラグ(データまたは信号)である。最終データフラグのフラグ値「1」は最後の部分データの出力が終了したことを意味し、最終データフラグのフラグ値「0」は最後の部分データの出力が終了していないことを意味する。
データ解析部112は、受信バッファ113に蓄積したパケットの部分データから宛先アドレスを取得する。例えば、受信処理記憶部114に宛先アドレスを含む部分データの順番を示す宛先データ番号を予め記憶しておく。そして、データ解析部112は宛先データ番号が示す順番に蓄積したパケットの部分データから宛先アドレスを取得する。
データ解析部112は、取得した宛先アドレスに対応付けられた宛先ポート番号を受信処理記憶部114内の変換テーブル119から取得する。変換テーブル119は、宛先アドレスと、宛先のポート100を識別する宛先ポート番号(宛先ポート識別子の一例)とを対応付けたデータである。変換テーブル119は受信処理記憶部114に予め記憶しておく。
データ解析部112は、パケットの部分データと共に、データイネーブル信号と宛先ポート番号とをリング回路ブロックへ出力する。
データ解析部112は、最後の部分データを出力したときにはフラグ値「1」の最終データフラグもリング回路ブロックへ出力する。
受信部110のS/P変換部111またはデータ解析部112(図2参照)は、図3に示すように、パケットの部分データを出力している間、信号値「1(High)」のデータイネーブル信号を出力し、最後の部分データを出力したときにフラグ値「1(High)」の最終データフラグを出力する。
実施の形態1におけるリング回路ブロック200A〜Hの構成について、図4に基づいて説明する。
フリップフロップ部220は、3つのフリップフロップ221〜223を備える。
また、「現段受信部」は現段のポート100の受信部110を意味し、「後段送信部」は後段のポート100の送信部120を意味する。
例えば、図4がリング回路ブロック200Aを表している場合、「リング前段」はリング回路ブロック200Hであり、「リング後段」はリング回路ブロック200Bであり、「現段受信部」はポート100Aの受信部110であり、「後段送信部」はポート100Bの送信部120である。
制御回路230から信号値「1」のセレクト信号が出力された場合、セレクタ210は、現段受信部を選択し、現段受信部から入力したパケットの部分データと部分データの宛先ポート番号と最終データフラグとをフリップフロップ部220へ出力する。
セレクト信号は、現段受信部からのパケットの部分データとリング前段からのパケットの部分データとのうちいずれかのパケットの部分データを選択するための信号である。
制御回路230の詳細については後述する。
フリップフロップ221〜223は、記憶したパケットの部分データと部分データの宛先ポート番号と最終データフラグとをリング後段と後段送信部とに出力する。
実施の形態1におけるリング回路ブロック200の制御回路230の構成について、図5に基づいて説明する。
「現段送信部」は、現段のポート100の送信部120を意味する。例えば、図5がリング回路ブロック200Aの制御回路230を示している場合、「現段送信部」はポート100Aの送信部120を意味する。
「カウンタ」は、カウンタ300を意味する。
カウンタ値が「0」である場合、デコーダ231は信号値「1」のポート動作信号を出力し、カウンタ値が「0」以外である場合、デコーダ231は信号値「0」のポート動作信号を出力する。
ポート動作信号の信号値「0」はポート100A〜Hが動作を開始しないタイミングであることを意味し、ポート動作信号の信号値「1」はポート100A〜Hが動作を開始するタイミングであることを意味するものとする。
ポート100A〜Hは、カウンタ300のカウンタ値が「0」から「1」になるタイミングで動作を開始する。
ポート動作信号の信号値が「1」であって、且つデータフラグのフラグ値が「0」である場合、AND回路232は、信号値「1」のセレクト信号をセレクタ210へ出力する。それ以外の場合、AND回路232は信号値「0」のセレクト信号をセレクタ210へ出力する。
ポート動作信号の信号値が「1」であって、且つデータフラグのフラグ値が「1」である場合、AND回路233は、フラグ値「1」のウエイトフラグを現段受信部へ出力する。それ以外の場合、AND回路233はフラグ値「0」のウエイトフラグを現段受信部へ出力する。
ウエイトフラグは、現段受信部に新たな部分データの出力を停止させるためのフラグ(データまたは信号)である。
ポート動作信号の信号値が「1」であって、且つデータイネーブル信号の信号値が「1」である場合、AND回路234は、信号値「1」のフラグセット信号をフリップフロップ235へ出力する。それ以外の場合、AND回路234は信号値「0」のフラグセット信号をフリップフロップ235へ出力する。
フラグセット信号は、データフラグにフラグ値「1」を設定するための信号である。
フリップフロップ235は、AND回路234から出力されるフラグセット信号と、現段送信部から出力されるフラグクリア信号とに応じてデータフラグを更新する。
フラグセット信号の信号値が「1」である場合(但し、フラグクリア信号の信号値が「1」である場合を除く)、フリップフロップ235はデータフラグにフラグ値「1」を設定する。
フラグクリア信号の信号値が「1」である場合、フリップフロップ235はデータフラグにフラグ値「0」を設定する。
フラグセット信号とフラグクリア信号との両方の信号値が「0」である場合、フリップフロップ235は、リング前段のフリップフロップ235から出力されたデータフラグと同じフラグ値をリング後段と後段送信部とへ出力する。
実施の形態1におけるポート100A〜Hの送信部120の構成について、図6に基づいて説明する。
「カウンタ」はカウンタ300を意味する。
AND回路124から信号値「1」のフラグクリア信号が出力されている場合、送信制御部121は、リング前段から出力されるパケットの部分データとデータフラグと最終データフラグとを入力する。
送信制御部121は、入力したパケットの部分データをポートクロックのクロック周期に合わせてP/S変換部122へ出力する。送信制御部121は、パケットの部分データと共にデータイネーブル信号をP/S変換部122へ出力する。また、送信制御部121は、最後の部分データをP/S変換部122へ出力するときにはフラグ値「1」の最終データフラグをP/S変換部122へ出力する。
P/S変換部122は、送信バッファに蓄積したパケットの部分データを用いてパケットを生成し、生成したパケット伝送路へシリアルに送信する。このとき、P/S変換部122は、フラグ値「1」の最終データフラグに基づいて最後の部分データを判定する。
リング前段から出力されるデータフラグのフラグ値が「1」であり、且つ比較器123から出力される比較信号の信号値が「1」である場合、AND回路124はフラグ値「1」のデータフラグを出力する。それ以外の場合、AND回路124はフラグ値「0」のデータフラグを出力する。
また、比較器123は、現段のポート100を識別するポート番号を予め記憶する。以下、比較器123が記憶するポート番号を「固定ポート番号」という。
(1)リング前段から出力される宛先ポート番号と、固定ポート番号とが一致する。
(2)カウンタ300から出力されるカウンタ値と、フリップフロップ127から出力されるカウンタ値とが一致する。
(3)フリップフロップ126から出力されるパケットフラグのフラグ値が「1」である。
(4)フリップフロップ126から出力されるパケットフラグのフラグ値が「0」である。
フリップフロップ127は、AND回路124から出力されるフラグクリア信号の信号値が「1」であるときにカウンタ300から出力されたカウンタ値を入力し、入力したカウンタ値を記憶する。
したがって、送信制御部121は、特定のポート100によって受信される一つのパケットの全ての部分データを入力し終わるまで同じパケットの部分データだけを入力し、他のポート100によって受信された他のパケットの部分データを入力しない。他のパケットの部分データは、送信制御部121が一つのパケットの全ての部分データを入力し終わるまで、リング回路ブロック200A〜Hが構成するリング回路を巡回する。
フリップフロップ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回路124から出力されるフラグクリア信号の信号値が「1」であり、且つリング前段から出力される最終データフラグのフラグ値が「1」である場合、AND回路125は、フラグ値「1」のフラグリセット信号をフリップフロップ126へ出力する。それ以外の場合、AND回路125は、信号値「0」のフラグリセット信号をフリップフロップ126へ出力する。
実施の形態1におけるパケット交換機900の動作について、図7、図8に基づいて説明する。
「リング回路クロック」は、リング回路ブロック200A〜Hの動作クロックのクロック信号を示す。
「カウンタ値」は、カウンタ300によってカウントされたカウンタ値を示す。
「受信データA」は、ポート100Aの受信部110からリング回路ブロック200Aのセレクタ210へ出力されるパケットの部分データを示す。
「受信データF」は、ポート100Fの受信部110からリング回路ブロック200Fのセレクタ210へ出力されるパケットの部分データを示す。
「中継データx(xはAからHのいずれか)」は、リング回路ブロック200xのフリップフロップ部220から次段のポート100の送信部120と次段のリング回路ブロック200のセレクタ210とに出力されるパケットの部分データを示す。
つまり、リング回路クロックのクロック周期(サイクル)は、ポートクロックのクロック周期のN分の1である。
カウンタ値「0」は、ポート100A〜Hの受信部110が受信データ(例えば「DF−1」「DH−1」「DF−2」「DH−2」をリング回路ブロック200A〜Hのセレクタ210へ出力するタイミングであることを意味する。
受信データA「DF−1」は宛先がポート100Fであるパケットの1番目の部分データであり、受信データF「DH−1」は宛先がポート100Hであるパケットの1番目の部分データである。
リング回路ブロック200F〜Gのフリップフロップ部220は受信データF「DH−1」を中継し、受信データF「DH−1」はカウンタ値「2」のタイミングでリング回路ブロック200Gのフリップフロップ部220から出力される(中継データF−G)。
「ラッチデータF」はポート100Fの送信部120の送信制御部121が記憶するパケットの部分データを示し、「送信データF」はポート100Fの送信部120の送信制御部121からP/S変換部122へ出力されるパケットの部分データ(接続信号)を示す。
「ラッチデータH」はポート100Hの送信部120の送信制御部121が記憶するパケットの部分データを示し、「送信データH」はポート100Hの送信部120の送信制御部121からP/S変換部122へ出力されるパケットの部分データ(接続信号)を示す。
ポート100Fの送信部120の送信制御部121はリング回路ブロック200Eのフリップフロップ部220から出力される中継データE「DF−1」を入力し、入力した中継データE「DF−1」をラッチデータFとして記憶する。送信制御部121はカウンタ値「1」のタイミングでラッチデータF「DF−1」をP/S変換部122へ出力する。
実施の形態1におけるリング回路ブロック200A〜Hの動作について、図9、図10に基づいて説明する。リング回路ブロック200A〜Hの構成については図4、図5を参照のこと。
「ポートクロック」は、ポート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へ出力されるデータイネーブル信号を示す。
(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とに出力する。
(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」をポートクロックの次のクロック周期でも出力する。
「前段データフラグ」は、前段のリング回路ブロック200の制御回路230から現段のリング回路ブロック200xの制御回路230に入力されるデータフラグを示す。
「フラグセット信号」は、現段のリング回路ブロック200xの制御回路230内で発生するフラグセット信号を示す。
「後段データフラグ」は、現段のリング回路ブロック200xの制御回路230から後段のリング回路ブロック200の制御回路230へ出力されるデータフラグを示す。
前段データフラグおよび後段データフラグの網掛けは、フラグ値が「0」と「1」とのどちらでもあっても構わないことを意味している。
実施の形態1におけるリング回路ブロック200Fとポート100Fの送信部120との動作について、図11に基づいて説明する。
リング回路ブロック200Fの構成については図4、図5を参照のこと。ポート100Fの送信部120の構成については図6を参照のこと。
リング回路ブロック200A〜E、G、Hはリング回路ブロック200Fと同様に動作し、ポート100A〜E、G、Hの送信部120はポート100Fの送信部120と同様に動作する。
「ポートクロック」は、ポート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へ出力されるデータフラグを示す。
前段データ、前段ポート番号、後段データ、後段ポート番号の網掛けは、データが無い又はデータが無効であることを意味する。
この場合、ポート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とに出力する。
この場合、ポート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」は伝送路へ送信されない。
この場合、ポート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」はその後のいずれかのタイミングで伝送路へ送信される。
この場合、ポート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」は伝送路へ送信されない。
つまり、ポート100はn段前のポート100が受信したパケットをn+1段前のポート100が受信したパケットよりも優先して送信する。
例えば、ポート100Aは、1段前のポート100Hが受信したパケットを2段前のポート100Gが受信したパケットよりも優先して送信する。このような優先制御を「絶対優先制御」という。
(1)複数のポート100が同じポート100を宛先とするパケットを同じタイミングで受信した場合、上流側の近いポート100によって受信されたパケットの部分データが、上流側の遠いポート100によって受信されたパケットの部分データよりも先に、宛先のポート100に到達する。(2)宛先のポート100は一つのパケットを構成する全ての部分データを送信し終わるまで、他のパケットの部分データを送信しない。
図12において、パケット交換機900(コンピュータの一例)は、CPU901(Central Processing Unit)を備えている。CPU901は、バス902を介してROM903、RAM904、バッファ909、通信ボード905などのハードウェアデバイスと接続され、これらのハードウェアデバイスを制御する。ROM903、RAM904、バッファ909は記憶装置の一例である。
通信ボード905は、ポート100A〜Hやリング回路ブロック200A〜Hとして機能する。
構成図やタイミングチャートなどに基づいて説明するパケット交換機900の処理はCPU901や記憶装置などのハードウェアを用いて実行される。
また、リング回路クロックのクロック周波数がポートクロックのクロック周波数の2倍からN−1倍、つまり、リング回路クロックのクロック周期がポートクロックのクロック周期の2分の1からN分の1であっても構わない。
但し、これらの場合、カウンタ300のカウンタ値とポート100A〜Hのポート番号との対応関係がずれるため、カウンタ300のカウンタ値とポート100A〜Hのポート番号との対応関係を記憶管理する必要がある。
パケット交換機900は、データを送受信する複数のポート部(例えば、ポート100A〜H)と、データを周回させる周回方向が決められたリング状の中継路を構成する複数のデータ中継部(例えば、リング回路ブロック200A〜H)とを備える。
複数のポート部それぞれのポート部は、複数のデータ中継部のうちいずれかのデータ中継部に対応付けられたポート受信部(例えば、受信部110)とポート送信部(例えば、送信部120)とを備える。
複数のポート部それぞれのポート受信部は、伝送路から通信データ(例えば、パケットの部分データ)を受信し、受信した通信データを複数のポート部それぞれのポート送信部のうちいずれかのポート送信部を宛先とする通信データとして所定のポート周期(例えば、ポートクロックのクロック周期)で出力する。
通信データを出力したポート受信部に対応付けられたデータ中継部は、通信データを入力し、通信データを所定のポート周期より短い所定の中継周期(例えば、リング回路クロックのクロック周期)で周回方向の下流側のデータ中継部に中継する。
通信データが中継されたデータ中継部は、通信データを所定の中継周期で周回方向の下流側のデータ中継部に中継する。
通信データの宛先のポート送信部に対応付けられたデータ中継部は、通信データを宛先のポート送信部に出力する。
通信データの宛先のポート送信部は、通信データを入力し、通信データを受信した伝送路とは異なる伝送路に送信する。
パケット交換機900は、ノード数分のフリップフロップ(例えば、フリップフロップ部220)をリング状に配置し、各フリップフロップ間に2−to−1セレクタ(例えば、セレクタ210)を配置する。2−to−1セレクタは、リング回路を回るデータと、ポートを通してノードから受信したパケットデータとの何れかを選択し、ポートは各フリップフロップの出力を送信する。リング回路内のフリップフロップのクロック(例えば、リング回路クロック)はポートのクロック(例えば、ポートクロック)のN倍以上の周波数であり、ポートとフリップフロップは時分割で動作する。
パケット交換機900は、各ポートからリング回路にデータを入力するタイミングが同期している。また、自宛てのパケットを受け取った送信ポートは、パケットの送信が完了するまで他のポートからリング回路に入力したデータを無視する。これにより、パケット交換機900は、単純な回路で固定優先制御を行うことができる。
実施の形態1と異なる優先制御を行うパケット交換機について説明する。
以下、実施の形態1と異なる事項について主に説明する。説明を省略する事項については実施の形態1と同様である。
但し、ポート100A〜Hの送信部120の動作は、実施の形態1で説明した動作と以下のように異なる。
図6において、比較器123は、フリップフロップ126からパケットフラグ「0」が出力された場合、以下のように動作する。
パケットフラグ「0」が出力されてからポートクロックの1周期が経過した後にリング前段からの宛先ポート番号と固定ポート番号とが一致し、保留カウンタ値とカウンタ300から出力されるカウンタ値とが一致した場合、比較器123は、信号値「1」の比較信号を出力する。以後の比較器123の動作は実施の形態1と同じである。
さらに、ポート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の順番に送信を行う。
ポート100は、直前に送信したパケットの送信元となるポートの、前段のポートから順番にパケットデータを受け付ける。
パケット交換機900は、入力ポートを特定する為の比較器123とN進カウンタ(カウンタ300)を利用してラウンドロビン制御を実現している。これにより、回路規模が大きくならず、特定のポートが固定的に優先されず、全ポートに対し公平に伝送帯域を割り当てることができる。
Claims (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のデータ中継部から出力された部分データを入力し、入力した部分データを前記異なる伝送路に送信する
ことを特徴とする交換機。 - データを送受信する複数のポート部と、データを周回させる周回方向が決められたリング状の中継路を構成する複数のデータ中継部とを備え、
前記複数のポート部それぞれのポート部は、前記複数のデータ中継部のうちいずれかのデータ中継部に対応付けられたポート受信部とポート送信部とを備え、
前記複数のポート部それぞれのポート受信部は、伝送路から通信データを受信し、受信した通信データを前記複数のポート部それぞれのポート送信部のうちいずれかのポート送信部を宛先とする通信データとして所定のポート周期で出力し、
前記通信データを出力したポート受信部に対応付けられたデータ中継部は、前記通信データを入力し、前記通信データを前記所定のポート周期より短い所定の中継周期で前記周回方向の下流側のデータ中継部に中継し、
前記通信データが中継されたデータ中継部は、前記通信データを前記所定の中継周期で前記周回方向の下流側のデータ中継部に中継し、
前記通信データの前記宛先のポート送信部に対応付けられたデータ中継部は、前記通信データを前記宛先のポート送信部に出力し、
前記通信データの前記宛先のポート送信部は、前記通信データを入力し、前記通信データを受信した前記伝送路とは異なる伝送路に送信するデータ転送方法であって、
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のデータ中継部から出力された部分データを入力し、入力した部分データを前記異なる伝送路に送信する
ことを特徴とするデータ転送方法。
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) |
-
2012
- 2012-03-21 JP JP2012064379A patent/JP5826085B2/ja not_active Expired - Fee Related
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 |