(58)【調査した分野】(Int.Cl.,DB名)
前記第1キューに格納された前記第1保護データが(i)周期的送信時間間隔において割り当てられた所定の帯域幅、および(ii)所定の最大レイテンシを有するように前記タイミングモジュールは、前記第1優先タイミング信号および前記第2優先タイミング信号を生成する、請求項1または2に記載のネットワークデバイス。
前記タイミングモジュールは、(i)周期的送信時間間隔内の、前記第1フレームを送信するための割り当て期間を決定し、(ii)前記クロック信号および前記割り当て期間に基づき前記第1フレームの送信の開始時間を決定し、(iii)前記開始時間に基づき前記第1優先タイミング信号を生成する、請求項1から7のいずれか1項に記載のネットワークデバイス。
前記タイミングモジュールは、(i)周期的送信時間間隔内の、前記第1フレームを送信するための割り当て期間を決定し、(ii)前記クロック信号および前記割り当て期間に基づき前記第1フレームの送信の開始時間を決定し、(iii)前記開始時間に基づき前記第2優先タイミング信号を生成し、前記第2フレームのマルチプレクサへの転送をブロックする、請求項1から10のいずれか1項に記載のネットワークデバイス。
前記タイミングモジュールは、(i)周期的送信時間間隔内の、前記第2フレームを送信するための割り当て期間を決定し、(ii)前記クロック信号および前記割り当て期間に基づき前記第2フレームの送信の開始時間を決定し、(iii)前記開始時間に基づき前記第2優先タイミング信号を生成する、請求項1から10のいずれか1項に記載のネットワークデバイス。
前記クロック信号とは独立して動作可能であり、(i)前記第1キューからの前記第1保護データを前記デブロックシェーパーへ、または(ii)前記第2キューからの前記非保護データを前記ブロックシェーパーへ転送し、前記第1フレームおよび前記第2フレームのうち一方と関連付けられたクレジットをカウントするカウンタに基づき第2ブロック信号を生成する第2ブロックシェーパーをさらに備え、
前記選択モジュールは、前記カウンタのカウント値に基づき前記選択信号を生成する、請求項1から13のいずれか1項に記載のネットワークデバイス。
前記起動モジュールは、(i)前記ブリッジモードで動作する際に前記デブロックシェーパーを無効化し、(ii)前記トーカーモードで動作する際に前記ブロックシェーパーを無効化する、請求項15に記載のネットワークデバイス。
前記ネットワークデバイスがトーカーモード、ブリッジモード、および時間トランスレータモードのうちどのモードで動作しているかに基づき、前記起動モジュールは前記第2ブロックシェーパーを有効化する、請求項19に記載のネットワークデバイス。
ホスト制御モジュール、トーカー、およびブリッジのうち1つからデータを受信し、(i)受信した前記データを前記複数のキューのそれぞれへパースするか、(ii)前記複数のキューをバイパスして、前記受信したデータを前記第2マルチプレクサへ転送するかを決定する前記イングレスモジュールをさらに備える、請求項21に記載のネットワークデバイス。
【発明を実施するための形態】
【0015】
上述の説明は本質的に例示に過ぎず、本開示、その適用例または利用例を限定することを意図していない。本開示の幅広い教示は、様々な形態で実現が可能である。よって本開示は特定の例を含むが、本開示の本質的な範囲はそれらによって限定されるべきではない。なぜなら添付の図面、本明細書、および特許請求項から他の変形例が明らかとなるからである。説明を明確にすべく、図面において同様の要素は同様の参照番号を用いて識別される。本明細書で用いられるように、A、B、およびCのうち少なくとも1つといった表現は、非排他的な論理ORを用いて論理(A or B or C)を意味するものとして解釈されるべきである。方法の1以上の工程は、本開示の原理から逸脱することなく、異なる順序で(または同時に)実行されてもよい。
【0016】
本明細書で用いるモジュールという用語は、特定用途向け集積回路(ASIC)、電子回路、組み合せ論理回路、フィールドプログラマブルゲートアレイ(FPGA)、コードを実行するプロセッサ(共有、専用、またはグループ)、説明される機能を実現する適した他のハードウェアコンポーネント、或いはシステムオンチップなどにおけるこれらのいくつかまたは全ての組み合わせを言及してもよく、これらの一部であってもよく、若しくはこれらを含んでもよい。モジュールという用語は、プロセッサによって実行されるコードを格納するメモリ(共有、専用、グループ)を含んでもよい。
【0017】
上記で用いたコードという用語は、ソフトウェア、ファームウェア、および/またはマイクロコードを含んでもよく、プログラム、ルーチン、機能、クラス、および/またはオブジェクトを指してもよい。上記で用いた共有という用語は、複数のモジュールからのいくつか、または全てのコードが、単一の(共有)プロセッサを用いて実行され得ることを意味する。加えて、複数のモジュールからのいくつか、または全てのコードは、単一の(共有)メモリに格納されてもよい。上記で用いたグループという用語は、単一のモジュールからのいくつかの、または全てのコードが、1グループの複数のプロセッサを用いて実行され得ることを意味する。加えて、単一のモジュールからのいくつか、または全てのコードは、1グループの複数のメモリに格納されてもよい。
【0018】
加えて以下の説明において、様々な変数ラベルおよび変数値を開示する。それら変数ラベルおよび変数値は単に例として示される。変数ラベルは任意で用いられ、それぞれ異なるアイテムを識別する、または指すのに用いられ得る。例えば、フレーム数またはキュー数を指すのに変数ラベルnを用い得る。変数値も任意で用いられ得、適用例毎に異なるものを指し得る。
【0019】
さらに以下の説明において、「第1」、「第2」、および「第3」などの用語を用いる。これらの用語は何らかの1つのデバイス、または信号などを特定的に指すものではない。同じデバイス、または信号などを指すのに、状況に応じてそれらの用語のうち1以上を用いることが出来る。
【0020】
ギガバイトEthernet(登録商標)(GE)ネットワーク
GEネットワークは、1ホップあたり0.512μ秒の送信レイテンシで64バイトの最小フレームサイズを有し得る。平均の(または通常の)サイズのEthernet(登録商標)フレームは300バイトであり得、最大フレームサイズは1522バイトであり得る。300バイトのEthernet(登録商標)フレームは、対応する320バイトに等しい送信時間を有し得、20バイトの時間は、Ethernet(登録商標)のプリアンブル(1秒および0秒の繰り返しパターン、および/またはフレーム区切りの始まり)、およびフレーム間ギャップ(IFG)に対応する。IFGとは、連続するデータフレーム間の時間のギャップを指す。トーカーからの320バイトの送信に関連するレイテンシは2.56μ秒である。データが例えばCAT5eケーブル上で送信される際のネットワーク局(またはノード)間の送信回線遅延は、ケーブル100メートル(m)あたり、およそ538ナノ秒(ns)である。
【0021】
図1において、輻輳が発生した場合および発生しなかった場合のフレーム送信タイミングを示すタイミング図である10が示されている。示される、ネットワークデバイス間で送信されるデータブロック1〜8はそれぞれデータフレーム(以下、フレームと呼ぶ)を含んでよい。各フレームは300バイトを有し得る。フレームはFE速度で送信されてよい。フレームは周期的な送信時間間隔14に送信される。周期的な送信時間間隔14は8キロヘルツ(kHz)の信号に対し例えば125μ秒の長さであり得る。フレームはクラスAデータを含み得る。クラスAデータとはGEにおける優先レベルの最も高いデータを指し得る。クラスAデータは各周期的送信時間間隔に送信されてもよい。データブロック1〜8は輻輳が発生しなかった(つまり干渉フレームがない)場合のものと、輻輳が発生した(つまり干渉フレームがある)場合のものが示されている。各周期的送信時間間隔に送信され得る最大フレーム数は、例えば8である。
【0022】
第1時間ライン18は、干渉フレームがないデータブロック1〜8を有する。データブロック1〜8のそれぞれは、クラスAフレーム(例えば300バイト)、プリアンブル、およびフレーム間ギャップ(IFG)を含み得る。プリアンブルおよびIFGは、対応する20バイトの時間を有し得る。第2時間ライン20は、干渉フレームブロック22と共にデータブロック1〜8を有する。干渉フレームブロック22は、干渉フレーム、プリアンブル、およびIFGを含み得る。干渉フレームとは、クラスAフレームの送信の準備が出来る前に、および/または出来ている時に送信の準備が出来ており、結果的にクラスAフレームの送信を遅延させるフレームを指す。干渉フレームは、例えば1522バイトのデータを有する最大サイズGEフレームであってよい。干渉フレームブロック22のプリアンブルおよびIFGは対応する20バイトの時間を有し得る。干渉フレームブロック22が原因となり、データブロック1〜8および対応するクラスAフレームは、遅延期間24だけ遅延させられる。クラスAフレームおよび干渉フレームのサイズが小さければ小さい程、クラスAフレームの送信までのレイテンシが短くなる。メディアアクセスコントローラ(MAC)遅延26によって示されるMACの遅延が原因となり8フレームの送信も遅延させられ得る。
【0023】
クラスAフレームのIFGは、時間非認識ブロックシェーパーによって定められ得る。時間非認識ブロックシェーパーは周期的送信時間間隔に亘りフレームを割り振る。フレームの割り振りにより、連続するフレーム間にフレーム間ギャップ(データを含まない期間)が形成される。ブロックシェーパーの例は
図7〜11、および13〜15に示される。時間非認識ブロックシェーパーとは、グランドマスタークロックに基づいて動作しないブロックシェーパーを指す。グランドマスタークロックは、非任意ネットワーク内の複数のネットワークデバイスにより共有されるグローバルクロック信号を生成するクロックである。時間非認識ブロックシェーパーの例は、
図10および11に示す。グランドマスタークロックに基づき実行される送信は、
図7および10にさらに詳細に説明する。
【0024】
トーカーは、周期的送信時間間隔において送信されるクラスAフレームの数に基づきデータをバーストしてもよい。クラスAデータが周期的送信時間時間間隔に亘り割り振られるのを防ぐべく、クラスAデータの時間非認識ブロックシェーパーは無効化させられてよい。これにより、干渉フレームに関連する遅延を最小化することが出来る。なぜなら、干渉フレームの送信が開始され得るIFGが存在しないからである。
【0025】
タイプI送信におけるレイテンシの例
輻輳が発生しブロックシェーバーを用いないデータ送信を、タイプIデータ送信と呼ぶ。単純なネットワークは、トーカー、N個の2ポートブリッジ(単一の入力ポートおよび単一の出力ポートを有するブリッジ)、およびリスナーを含み得る。制御フレームがブリッジの1つを介しトーカーからリスナーへと通過する時間について、
図2A〜2Hを参照し説明する。
図2A〜2Hは、輻輳が発生しブロックシェーパーを用いない、ブリッジ40を通過するデータ伝送を示す。干渉フレーム42およびクラスAフレームのブリッジ40を通過する伝送が示される。クラスAフレームはブロックシェーパーを用いず順次送信される。干渉フレーム42は、クラスAフレームの送信の前に送信される最大サイズの干渉フレームである。
【0026】
ブリッジ40は、メモリ46を有するイングレスモジュール44、キュー48、マルチプレクサ50、および出力ポート52を含む。以下のブリッジレイテンシの値は、IEEE1722に準拠しイングレスの時間基準面またはレイテンシの開始から計測され得る。
【0027】
図2Aにおいて、干渉フレーム42がブリッジ40に到着し、その後にクラスAフレームが続く。時間t
0に、アップストリームのネットワークデバイス(例えばトーカーまたはブリッジ)からの干渉フレーム42の最初のビットがブリッジ40によって受信される。
図2Bにおいて、干渉フレーム42はメモリ46により受信され格納されている。干渉フレーム42は受信された後、クラスAフレームのうちの最初のフレームの最初のビットが受信される。このことは、干渉フレームが関連する1542バイトのレイテンシを有するので、t=12.336μ秒に起こる。干渉フレーム42は、例えば、1522バイト、並びにプリアンブルおよびIFGと関連する20バイトの時間を有し得る。
図2Cにおいて、干渉フレーム42は、メモリ46から、優先度の低いデータおよび/または非AVBデータと関連付けられた複数のキュー48のうち1つへと転送されている。t=13.360μ秒において、第1制御フレームの128バイトが受信される。この時間は、干渉フレーム42を受信する12.336μ秒の時間に128バイトを処理する時間、または1.024μ秒を加算した時間に等しい。
図2Dに示されるように、最初のクラスAフレームの最初のビットが受信された後の2つのスロットタイム(またはブリッジ40のクロックサイクル)において、干渉フレーム42の最初のビットがブリッジ40から送信される。第1のクラスAフレーム57はその後、キュー48の最初のキューに格納されてよい。
【0028】
図2Dにおいて第2のクラスAフレームの第1ビット60は、ブリッジ40によって受信されている。このことは、干渉フレーム42を受信する時間である12.336μ秒に第1のクラスAフレームと関連する時間である320バイトを加算した時間に等しいt=14.896μ秒に起こる。
図2Eにおいて第3のクラスAフレームの第1のビット62が受信されている。このことは、干渉フレームを受信する時間である12.336μ秒にクラスAフレームに関連する320バイトの時間の2倍を加算した時間に等しいt=17.456μ秒に起こる。
【0029】
図2Fにおいて、第1のクラスAフレームの第1のビット64がブリッジ40から送信されている。このことは、干渉フレームを受信する時間(または開始時間)である12.336μ秒に5つのクラスAフレームを処理する時間および第6のクラスAフレームの70バイトの時間(または干渉フレームの送信時間)である13.360μ秒を加算した時間に等しいt=25.696μ秒に起こる。5つのクラスAフレームの処理時間および第6のクラスAフレームの70バイトは、第1のクラスAフレームの開始時間に等しい。
【0030】
図2Gにおいて、クラスAフレームの最後のビット66がブリッジ40により受信される。このことは、第6のフレームの残りの処理時間と、第7および第8フレームの処理時間とを加算したt=32.656μ秒に起こる。
図2Hにおいて、クラスAフレームの最後のビットがブリッジ40から送信される。このことは、開始時間である13.36μ秒に干渉フレームおよびクラスAフレームの送信時間である32.656μ秒を加算した時間であるt=46.016μ秒に起こる。46.016μ秒の時間tは、ブリッジ40に最初のビットが入ってからブリッジ40から最後のビットが出るまでの時間である(最初のビットの受信−最後のビットの送信時間と呼ぶ)。ブリッジ40の受信時間に等しいトーカー送信時間を二重にカウントすることを避けるべく、最初のビットの受信−最後のビットの送信時間ではなく、ブリッジ40に最後のビットが入ってからブリッジ40を最後のビットが出るまでの時間(最後のビットの受信−最後のビットの送信時間)を考慮する。
【0031】
最後のビットの受信−最後のビットの送信時間は、46.016μ秒の時間tから、干渉フレームの送信時間である12.226μ秒を減算し、8つクラスAフレームの送信時間である20.48μ秒を減算し、プリアンブルおよびIFG時間の20バイトを加算した13.36μ秒となる。最後のビットの受信−最後のビットの送信時間は、最後のクラスAのビットの受信時間から最後のクラスAのビットの送信時間を減算することによって求められてもよく、この場合も13.36μ秒となる。
【0032】
クラスAフレームに関するブリッジ40の最大レイテンシは、ブリッジ40の遅延時間t
bridgeに、最大サイズの干渉フレームを受信する時間t
MAXINTを加算し、ブリッジ40と、例えば他のネットワークデバイスとの間のケーブルの送信時間t
Cableを加算した時間に等しい。ケーブルの送信時間t
Cableは、100mケーブルに関して求められてもよい。
【0033】
5つのネットワークデバイス(1つのトーカーおよび4つのブリッジ)のデイジーチェーン上でGEで8つの300バイトのクラスAフレームを送信する際の最大レイテンシは、以下のように求められ得る。2つのスロットタイムのブリッジの遅延、および1522バイトである最大の非AVBデータで、最大レイテンシは、1.024μ秒(t
bridge)に12.336μ秒(t
MAXINT)を加算し、0.538μ秒(t
Cable)を加算した13.898μ秒となる。これは、最後のビットの受信−最後のビットの送信時間である13.36μ秒に0.538μ秒のケーブル遅延時間を加算した時間に等しい。
【0034】
タイプII送信におけるレイテンシの例
図3A〜3Eは、輻輳が発生せずブロックシェーパーを用いないブリッジ40を介したクラスAフレームの伝送を示す。輻輳が発生せずブロックシェーパーを用いないデータ送信を、タイプII送信と呼ぶ。ブリッジ40は、メモリ46を有するイングレスモジュール44、キュー48、マルチプレクサ50、および出力ポート52を含む。
図3Aにおいて、8つのクラスAフレームがブリッジ40に到着する。第1のクラスAフレームの最初のビットがブリッジ40に受信される。この時点が時間t
0である。
図3Bにおいて、第1のクラスAフレームの第1フレーム70は既に受信され、第2のクラスAフレームの最初のビットがブリッジ40によって受信されている。第2のクラスAフレーム71の最初のビットは、例えば、第1のクラスAフレームの最初のビットを受信した後、320バイトの時間である。このことは、2.56μ秒である時間tにおいて起こる。
【0035】
図3Cにおいて、第1のクラスAフレーム70が第1キューに格納されている。第1のクラスAフレーム70の最初のビットは、ブリッジ40から送信されてもよい。このことは、第2のクラスAフレーム71の最初のビットの受信の2つのスロット後に、または3.584μ秒に等しい時間において起こる。この時間において、第2のクラスAフレーム71の128バイトがブリッジ40に格納される。
図3Dにおいて、最後のクラスAフレームの最後のビット74がブリッジ40により受信されている。このことは、それまでの時間3.584μ秒に残りのフレームの受信時間である16.736μ秒を加算した時間である20.32μ秒の時間tにおいて起こる。
【0036】
図3Eにおいて、最後のクラスAフレームの最後のビットがブリッジ40から送信されている。このことは、第1のクラスAフレームに関連する遅延時間である3.584μ秒にトーカーからブリッジ40へのクラスAフレームの送信時間である20.32μ秒を加算した時間である23.904μ秒に等しい時間tにおいて起こる。23.904μ秒は、ブリッジ40の最初のビットの受信−最後のビットの送信時間である。最後のビットの受信−最後のビットの送信時間は、最初のビットの受信−最後のビットの送信時間である23.904μ秒から送信時間である20.48μ秒を減算することにより求めてもよく、3.584μ秒となる。最後のビットの受信−最後のビットの送信時間は、最後のクラスAフレームの最後のビットが受信された時間から最後のクラスAフレームの最後のビットがブリッジ40から送信された時間を減算した時間にも等しい。
【0037】
タイプII送信におけるブリッジ40の最大レイテンシは、ブリッジ40の遅延期間t
Bridgeに最大サイズのクラスAフレームを受信する時間t
MAXFrameを加算し、ケーブル遅延期間t
Cableを加算して求めてもよい。2つのスロットタイムのブリッジ遅延および300バイトの最大のクラスAフレームサイズで、最大レイテンシは、1.024μ秒(t
Bridge)に2.56μ秒(t
MAXFrame)を加算し、0.538μ秒(t
Cable)を加算した4.122μ秒となる。最大レイテンシは、最後のビットの受信−最後のビットの送信時間である3.584μ秒に0.538μ秒のケーブル遅延時間を加算した時間に等しい。
【0038】
図2A〜3Eに示される最大レイテンシに基づくと、輻輳に関連するレイテンシは、輻輳が発生しない場合のレイテンシより長い。非任意ネットワークにおいて、輻輳を発生させることなく送信を行うことが出来る。
【0039】
タイプII送信におけるGEマージンを求める例
一例として、GE制御フレームは256ペイロードバイトを有し、500μ秒あたり32の制御フレームが送信され得る。制御フレームのそれぞれは、22バイトのオーバーヘッドを有し得、20バイトのIFGを有し得る。各制御フレームのトーカーからの送信に関連する遅延期間は、輻輳が発生しない場合において、2.384μ秒(または298バイト×8ビット×1ナノ秒)となる。プリアンブルまたはIFGなしで制御フレームのトーカーからの送信に関連する遅延期間は、輻輳が発生しない場合において、2.224μ秒(または278バイト×8ビット×1ナノ秒)である。トーカーから32のフレームを送信する時間は、輻輳がない場合において、76.288μ秒(または2.384μ秒×32)である。IFGがない場合、レイテンシは72.8μ秒である。このため、GEのレイテンシは、100μ秒以下の時間でトーカーから32のフレームを送信しなければならないAVB第2世代の基準を満たす。GEを用いてデータを送信するネットワークは、輻輳がある場合の100μ秒の基準を満たす。
【0040】
制御フレームのうち1つを送信する時間(278バイト)である2.224μ秒にブリッジが制御フレームを処理する時間(例えば、2つの512ビットの時間に等しい1.024μ秒)を加算した時間に基づくと、1ホップのレイテンシは3.248μ秒となる。4回のブリッジホップでは、レイテンシは12.992μ秒となる。その結果、輻輳がない場合において、トーカーから制御フレームを送信する時間、および4つのブリッジが制御フレームを処理する時間を含む合計の送信時間は、15.216μ秒となる。このため、GEのレイテンシは、5回を超えるホップで100μ秒以下の時間で制御フレームを送信しなければならないAVB第2世代の基準を、84μ秒(残された時間)を超えるマージンを残して満たす。GEにおいて84μ秒のマージンは、周期的送信時間間隔内でデータの他のフレームを送信するのに用いることが出来る。この送信は干渉フレームなしで実行され得、トーカーのイグレスモジュールが受信し、トーカーから送信される制御フレームの調整された送信に基づく。調製された送信タイミングなしでは、マージンは短くなる。
【0041】
AVB第2世代のトーカーの最大レイテンシは、トーカーのメディアアクセスコントローラの内部遅延期間t
MAC、最大サイズの干渉フレームを送信する時間t
MAX、クラスAデータを送信する時間t
A、および100メートルのケーブルを介してビットを送信する時間t
cableを合計することにより計算される。それぞれが20バイトのプリアンブルおよびIFG、および1522バイトに等しいMAC遅延を有する8つの300バイトのクラスAフレームを送信することを想定すると、トーカーの最大レイテンシは、33.866μ秒であり、このうち、t
MAC=0.512μ秒、t
MAX=12.336μ秒、t
A=20.48μ秒、t
cable=0.538μ秒である。33.866μ秒である最大レイテンシは、トーカーから最後のフレームの最後のビットを、トーカーのダウンストリームにあるネットワークデバイス、またはノード(例えばブリッジ、またはレシーバ)へ転送するまでの合計時間である。最大レイテンシは、シェーパーを用いずに計算される(つまり、IFGおよび制御フレームが周期的送信時間間隔に亘り割り振られない)。
【0042】
タイプII送信のFEマージンを求める例
一例として、FF制御フレームは128バイトのデータを有する。8つの制御フレームが、例えば500μ秒である周期的送信時間間隔毎に送信され得る。制御フレームのそれぞれは、20バイトのプリアンブルおよび/またはIFG時間で送信され得る。よって制御フレームを送信する時間は、13.6μ秒(または170バイト×8ビット×10ナノ秒)となる。8つのフレームのレイテンシは、1360バイトの時間(または170バイト×8フレーム)となる。その結果、8つのフレームを送信する時間は108.8μ秒(または、13.6μ秒×8フレーム)となる。8つのフレームを送信する時間は、要求される100μ秒よりも長くなる。FEのAVB第2世代の送信において、レイテンシは5回のホップで100μ秒以下であることが求められる。このため、
図5に示される(以下にさらに説明される)ようにフレームの調整された送信が行われる。この調整により、5回を超えるホップでのレイテンシは、いずれのホップでも輻輳がなかった場合において100μ秒となる。よってFEを用いた際に、周期的送信時間間隔内で輻輳を引き起こし得る他のデータフレームの送信に用いることが出来る残されたマージンはゼロである。1以上のビットの干渉により8つのフレームを送信する時間はさらに長くなる。その結果、FEを用いた8つのデータフレームの従来の送信は、AVB第2世代のレイテンシに関する基準を満たさない。
【0043】
続く
図4および5は、トーカー、4つのブリッジ、およびリスナーを含むネットワークに関するタイミング図を示す。トーカーからデータが送信され、4つのブリッジを通過し、リスナーにより受信される。ブリッジは格納および転送ブリッジである(つまり、ブロックシェーパーは用いられない)。
図4は、8つのフレームA〜Hの並列受信(つまり同じ期間内での受信)に関連するレイテンシを示すタイミング図である100である。8つのフレームA〜Hは、周期的送信時間間隔104(例えば、125μ秒)内でトーカーにより受信され送信される。ネットワークのレイテンシ106は、8つのフレームA〜Hの最後のビットがトーカーから送信されてから、第8のフレームHの最後のビットがリスナーによって受信されるまでの時間として計測される。8つのフレームA〜Hは並列受信されるが、8つのフレームA〜Hは、トーカーおよびブリッジから順次送信される。トーカーからの送信は、トーカーイグレスと呼ぶ。ブリッジからの送信はブリッジイグレスと呼ぶ。
【0044】
図5は、調整された送信におけるレイテンシを示すタイミング図である110である。調製された送信とは、連続するフレームのペアの間にIFGが含まれる所定の期間毎のフレームの順次の送信を指す。8つのフレームA〜Hは周期的送信時間間隔104(例えば125μ秒)内にトーカーによって受信および送信される。レイテンシ112は、第8のフレームHの最後のビットがトーカーから送信されてから、第8のフレームHの最後のフレームがリスナーにより受信されるまでの時間として計測されるので、調整された送信のレイテンシ112は、並列送信のレイテンシ106よりも短い。
【0045】
128バイトの各フレームのレイテンシは、トーカーがフレームを送信する時間に4つのブリッジのそれぞれがフレームを受信し転送するまでの遅延時間を加算した時間に等しい。一例として、トーカーの送信時間は、150バイトの時間、または12.0μ秒(150バイト×8ビット×10ナノ秒)である。150バイトの時間は、128バイトにオーバーヘッドの22バイト(例えばプリアンブルおよびIFG)を加算したものである。各ブリッジがフレームを処理する時間は10.00μ秒(およそ2つの512ビットの時間)となる。トーカーからのフレームの送信、および1つのブリッジを介するフレームの処理に関連するレイテンシは、12.0μ秒に10.00μ秒を加算した22.00μ秒である。その結果、トーカーからのフレームの送信、および4つのブリッジを介するフレームの処理に関連するレイテンシは、100.00μ秒(12.0μ秒+4×22.00μ秒)であり、100μ秒の基準と等しい。輻輳がある場合、レイテンシはさらに長くなり、レイテンシに関する基準を満たさなくなる。時間非認識のシステムにおいて輻輳は通常の状態であるので、従来のFEシステムはレイテンシに関する基準を満たさない。以下に開示する実施例では、トーカーおよびブリッジの送信を制御し、100μ秒の基準より短いFEのレイテンシを実現する。
【0046】
以下に説明する実施例は、非任意ネットワーク(以下、ネットワークと呼ぶ)を対象とする。ネットワークは例えば、自動車のネットワーク、製造施設のネットワーク、および/または組み立てラインネットワークであってもよい。ネットワークは、トーカー、ブリッジ、レシーバ、および時間トランスレータデバイスなどの様々なネットワークデバイスを含み得る。各ネットワークデバイスはトーカー、ブリッジ、レシーバ、および時間トランスレータデバイスのいずれかとしてラベル付けされているが、ネットワークデバイスのそれぞれが、トーカー、ブリッジ、レシーバ、および/または時間トランスレータデバイスとして動作し得る。ネットワークデバイス間のインタフェース、ケーブル、および/または媒体は、コントローラエリアネットワーク(CAN)、および/または、FlexRayインタフェースおよびバス、カテゴリー(CAT)5の通信ケーブル、または他の適したインタフェース、ケーブル、および/または媒体を含み得る。
【0047】
データはネットワークを介し、エンド局と呼ぶ2つのネットワークデバイス間で送信される。データは、第1のネットワークデバイスまたは第1のエンド局(例えばトーカー)から最後のネットワークデバイスまたは最後のエンド局(例えばレシーバ)へ1つの方向へ送信されているものとして説明するが、データ送信はネットワーク内の何れの局によって開始されてもよく、ネットワーク内の何れの局によって受信されてもよい。データは異なる複数の対応する優先レベルを有し得、それら優先レベルに基づいて送信されてよい。
【0048】
優先レベルは、例えば保護されたクラスAのAVBデータ(クラスAデータと呼ぶ)、保護されたクラスBのAVBデータ(クラスBデータ)、および保護されていない非AVBデータを含んでよい。保護されたデータは所定の帯域幅(つまり周期的送信時間間隔内の割り当てられた期間)、および所定の最大レイテンシ(または所定の最大レイテンシ)を有し得る。特定の優先レベルの保護データは、ネットワーク内の1つのネットワークデバイス毎に所定の最大レイテンシを有し、および/または、局間の合計の最大レイテンシを有し得る。
【0049】
クラスAデータは、最も高い優先レベルを有し、最も短いレイテンシを有し得、第1の所定の帯域幅(つまり、周期的送信時間間隔内の第1の割り当て期間)および第1の所定の最大レイテンシが与えられる。クラスAデータは制御データを含み得る。一例として、自動車のネットワークへの適用例において、クラスAデータは、乗り物のエンジンを制御する、またはブレーキを動作させるのに用いられるデータであってよい。クラスBデータは、2番目に高い優先レベルを有し、クラスAデータより長いレイテンシを有し得、第2の所定の帯域幅、および/または所定の最大レイテンシを与えられる。一例として、自動車のネットワークの適用例において、クラスBデータはエンターテイメントシステムのデータを含んでよい。非AVBデータは最も低い優先レベルを有し、所定の帯域幅が与えられず、および/または所定の最大レイテンシが与えられない。ネットワークにおいて、データは、それぞれが複数の優先レベルのうち特定の優先レベルと関連付けられた所定のサイズのバーストとして送信されてよい。バーストは、周期的送信時間間隔の間の割り当てられた時間に起こり得る。一例として、クラスAデータはネットワークデバイスのイグレスモジュール(トーカー、時間トランスレータデバイス、および/またはブリッジ)から125μ秒の周期的送信時間間隔のそれぞれの間の40μ秒間、送信される、
【0050】
図6は、クラスAに割り当てられた期間またはウィンドウ、および対応する周期的送信時間間隔を示すタイミング図である118である。クラスAデータはトーカーから、周期的送信時間間隔の割り当てられた時間ウィンドウ内で送信される。割り当てられた時間のそれぞれは、開始時間t
0を有する。
図6において、2つの例示的な割り当てられた時間ウィンドウ120、122、および対応する周期的送信時間間隔124、126が示されている。各周期的送信時間間隔はサイクルとも呼ぶ。2つの周期的送信時間間隔124、126のサイクルは、nおよびn+1でラベル付けされている。
【0051】
あくまで例としてではあるが、FEの基準は、500μ秒(周期的送信時間間隔)毎に128バイトの8つのフレームを送信することを含む。各周期的送信時間間隔内のクラスAデータに割り当てられた時間ウィンドウ(短いレイテンシデータとも呼ぶ)は108.8μ秒であり得る。8つのフレームに関しては、この時間には、128バイトのデータに関連付けられた時間および22バイトのオーバーヘッドデータ、および/または、プリアンブルデータおよびIFGに関連付けられた20バイトの時間が含まれ得る。バーストウィンドウが108.8μ秒であるので、他のデータ(短くないレイテンシデータとも呼ぶ)に与えられるのは391.2μ秒となる。
【0052】
他の例として、GEの基準は、500μ秒毎に256バイトの32のフレームを送信することを含む。各周期的送信時間間隔内のクラスAデータに割り当てられた時間ウィンドウは76.288μ秒であり得る。32のフレームに関しては、この時間には、256バイトのデータに関連付けられた時間および22バイトのオーバーヘッドデータ、および/または、プリアンブルデータおよびIFGに関連付けられた20バイトの時間が含まれ得る。バーストウィンドウが76.288μ秒であるので、他のデータ(短くないレイテンシデータとも呼ぶ)に与えられるのは423.712μ秒となる。
【0053】
AVB第2世代の基準を満たすには、クラスAデータは、FEおよびGEの両方に関し、100μ秒以下の遅延で5回以上のホップで送信されなければならない。本明細書ではFEおよびGEが開示されるが、本明細書で開示される実施例は、他の送信速度にも適用することが出来る。また主にEthernet(登録商標)ネットワークに関して実施例を説明するが、当該実施例は、他のネットワークにも適用することが出来る。
【0054】
図7は、非任意ネットワーク150を示す。非任意ネットワーク150は、1以上のトーカー(3つのトーカー152、154、156が示されている)、1以上のブリッジ(2つのブリッジ158、160が示されている)、およびリスナー162を含む。トーカー152、154、156はリスナー162へデータを送信するので、ソースとも呼ぶ。リスナー162はトーカー152、154、156からデータを受信するので、レシーバとも呼ぶ。トーカー152、154、156およびブリッジ158、160はそれぞれ、イグレスモジュール164、166、168、170、172を含んでよい。ブリッジ158、160は正確なタイミングのプロトコル(PTP)を実現するIEEE802.1ASに準拠してよい。ブリッジ158、160は、エンド局(例えば、トーカー152、154、156およびリスナー162)間のネットワークデバイスのデイジーチェーンを形成する。イグレスモジュール164、166、168、170、172はそれぞれ、シェーパー174、176、178、180、182、および/またはタイミングモジュール184、186、188、190、192を含んでよい。
【0055】
シェーパー174、176、178、180、182は、ブロックシェーパー、および/またはデブロックシェーパーを含んでよい。ブロックシェーパーは、時間非認識ブロックシェーパー、および時間認識ブロックシェーパー(TABS)を含んでよい。時間非認識ブロックシェーパー、時間認識ブロックシェーパー、およびデブロックシェーパーの例は、
図10、11、および13〜15に示されている。時間認識ブロックシェーパーは、グランドマスタークロック200により生成されるグローバルクロック信号に基づいて動作する。グランドマスタークロック200は、ネットワーク150のネットワークデバイスの何れに位置していてもよい。グローバルクロック信号は、ネットワーク150のネットワークデバイスのいずれによって共有されていてもよい。一例として、グランドマスタークロック200はトーカー154内に示されているが、他のトーカー152、156のうちの1つ、ブリッジ158、160のうちの1つ、リスナー162、またはネットワーク150に接続された他のネットワークデバイスに位置してもよい。
【0056】
時間認識ブロックシェーパーは優先度の高くないデータ(例えばクラスA以外のデータ、またはクラスBデータ、および/または非AVBデータ)の送信の開始を遅延させ得る。この遅延は、優先度が最も高いデータ(クラスAデータ)の送信タイミングに基づいて実行されてもよい。クラスAデータおよびクラスA以外のデータの送信タイミングは、優先タイミング信号を生成するタイミングモジュール184、186、188、190、192によって決められてよい。各優先タイミング信号は、対応するデータの送信が許可される、または許可されないウィンドウを示してよい。クラスA以外のデータ(またはクラスBデータ、および/または非保護データ)に関して生成された優先タイミング信号は、各周期的送信時間間隔内の割り当てられた期間に基づいて生成されてよい。優先度が最も高いデータ(クラスAデータ)は、それぞれの割り当てられた期間に送信される。これにより、クラスAバーストが他のデータ(優先度が最も高くはないデータ)の送信によって干渉されないようイグレスモジュールの出力をアイドル状態に確実にしておくことが出来る。
【0057】
グランドマスタークロック200を含むネットワークデバイス、またはネットワーク150内の他のネットワークデバイスのうちの1つは、時間管理モジュール202を含んでよい。グランドマスタークロック200を有するネットワークデバイス、および/または時間管理モジュール202はマスターデバイスと呼んでもよい。グランドマスタークロック200、および/または時間管理モジュール202を有さないデバイスは、スレーブデバイスと呼んでもよい。時間管理モジュール202は、グランドマスタークロック200、および/または時間間隔モジュール204を含んでよい。時間間隔モジュール204は、周期的送信時間間隔(つまり周期的送信時間間隔の長さ)、および、各周期的送信時間間隔の開始時間t
0を設定してよい。グローバルクロック信号、周期的送信時間間隔、および周期的送信時間間隔の開始時間t
0は、管理情報ベース(MIB)モジュール、および/または単純な管理ネットワークプロトコル(SMNP)を用いて複数のネットワークデバイス間で共有されてもよい。
【0058】
トーカー(例えばトーカー152)に最も近いブリッジ(例えばブリッジ158)は、時間トランスレータデバイスとして動作してもよい。時間認識ブロックシェーパーを有さないトーカーと、時間認識ブロックシェーパーを有するブリッジとの間には時間トランスレータデバイスが組み込まれてもよい。ブリッジは単一の入力ポートおよび単一の出力ポートを有してもよく、またはブリッジのポートのうち2つは、他のポートが無効にされている間、有効にされてもよい。ブリッジのイグレスモジュールがポートを有効化および無効化してもよい。時間トランスレータデバイスとして動作する際、ブリッジは単一の入力ポートが有効化され、単一の出力ポートが有効化される。また、時間トランスレータデバイスとして動作する際(時間トランスレータモードでの動作とも呼ぶ)、ブリッジは、クラスAフレームの時間認識デブロックを実行し、および/または非クラスAフレームの時間認識ブロックを実行し、クラスAフレーム、および/または非クラスAフレームの送信タイミングを調整する。このことは
図10、および対応する時間トランスレータモードの動作を参照し以下により詳細に説明される。
【0059】
リスナー162はブリッジ158、160を介してトーカー152、154、156からデータを受信する。リスナー162はリスナー制御モジュール210を含んでよい。リスナー制御モジュール210は、トーカー152、154、156から受信したデータに基づき、動作し、および/またはネットワークの1以上のセンサ、モータ、アクチュエータ、または他のデバイスをモニタリングする、または動作させる。
【0060】
トーカー152、154、156、ブリッジ158、160、および/またはリスナー162は、有線、または無線接続、および/または媒体を介して互いに通信を行ってよい。無線接続、および/または媒体は、IEEE規格802.11、802.11a、802.11b、802.11g、802.11h、802.11n、802.16、および802.20などに準拠してもよい。
【0061】
図8は、
図7のネットワークのトーカー152、154、156のうちの(参照符号が220の)1つの例を示す。トーカー220は、ホスト制御モジュール222およびインタフェースモジュール224を含んでよい。ホスト制御モジュール222は、例えばプロセッサを含んでよく、インタフェースモジュール224へ異なる複数の優先レベルのデータを提供してよい。データは、クラスAデータ、クラスBデータ、および非AVBデータを含んでよい。インタフェースモジュール224は、例えばネットワークインタフェースカードまたは他の適したインタフェースであってよい。インタフェースモジュール224は、トーカーイングレスモジュール226およびトーカーイグレスモジュール228を含む。
【0062】
トーカーイングレスモジュール226は、例えばトーカーパースモジュール230およびトーカーメモリ232を含んでよい。トーカーパースモジュール230はデータのパケット234をホスト制御モジュール222から受信し、パケット234をパースし、パケット234のフレームに与えられたヘッダに基づき記述子236を生成してよい。各記述子236は、対応するパケットおよび/またはフレームのサイズ、周期的送信時間間隔の開始時間、周期的送信時間間隔の長さ、並びに/或いはソース、および/または宛先のアドレスを含んでよい。受信される各パケットは、所定の数のデータフレームを含んでよい。パケット234および記述子236は、トーカーメモリ232に格納されてもよく、トーカーイグレスモジュール228への記述子信号に与えられてもよい。
【0063】
トーカーイグレスモジュール228は、トーカーシェーパー240(例えば、
図7のトーカーシェーパー174、176、178)、およびトーカータイミングモジュール242(例えば、
図7のトーカータイミングモジュール184、186、188のうちの1つ)を含む。トーカーシェーパー240は、トーカータイミングモジュール242からの優先タイミング信号に基づき動作する。トーカーイングレスモジュール226および/またはトーカーイグレスモジュール228はメディアアクセスコントローラ(MAC)を含んでよい。
【0064】
図9は、
図7のブリッジ158、160のうちの(参照符号が250の)1つの例を示す。ブリッジ250は、入力ポート
1〜N、ブリッジイングレスモジュール252、ブリッジイグレスモジュール254、および出力ポート
1〜Mを含む。ポートN、Mはそれぞれ入力ポートおよび出力ポートとしてラベル付けされているが、ポートN、Mのそれぞれは、入力ポートおよび/または出力ポートをして動作してもよい。また、ポートN、Mのそれぞれは、ブリッジイングレスモジュール252、および/またはブリッジイグレスモジュール254へ接続されてもよい。加えて、ブリッジ250は、任意の数の入力ポートおよび出力ポートを含んでよい。
【0065】
ブリッジイングレスモジュール252は、ブリッジパースモジュール256およびブリッジメモリ258を含む。ブリッジパースモジュール256は、トーカー、ブリッジ、および/または時間トランスレータデバイスからデータを受信してもよい。ブリッジパースモジュール256は、受信したパケット260をパースし、パケット260のフレームに与えられたヘッダに基づき記述子262を生成してもよい。各記述子262は、対応するパケットおよび/またはフレームのサイズ、周期的送信時間間隔の開始時間、周期的送信時間間隔の長さ、並びに/或いはソース、および/または宛先のアドレスを含んでよい。受信される各パケットは、所定の数のデータフレームを含んでよい。パケット260および記述子262は、ブリッジメモリ258に格納されてもよく、ブリッジイグレスモジュール254への記述子信号に与えられてもよい。ブリッジイグレスモジュール254は、ブリッジシェーパー264(例えば、
図7のブリッジシェーパー180、182)、および、ブリッジタイミングモジュール266(例えば、
図7のブリッジタイミングモジュール190、192のうちの1つ)を含む。ブリッジシェーパー264は、ブリッジタイミングモジュール266からの優先タイミング信号に基づいて動作する。ブリッジイングレスモジュール252および/またはブリッジイグレスモジュール254はMACを含んでよい。
【0066】
図10は、ネットワークデバイス270を示す。ネットワークデバイス270は、イングレスモジュール272を有するデータブロックシステム271を含み、かつ、イグレスネットワーク276を有するイグレスモジュール274を含む。
図7のネットワーク150のトーカー152、154、156およびブリッジ158、160のそれぞれは、ネットワークデバイス270と置き換えられてもよく、および/または、イングレスモジュール272および/またはイグレスモジュール274を含んでもよい。ネットワークデバイス270は、トーカー、ブリッジ、および時間トランスレータデバイスとして動作してもよいので、トーカーモード、ブリッジモード、および時間トランスレータモードを含む。
【0067】
イングレスモジュール272は、トーカー、ブリッジ、および/または時間トランスレータデバイスのホスト制御モジュールからデータフレーム(以下、フレームとも呼ぶ)を受信する。イングレスモジュール272はフレームをパースし、イグレスモジュール274の各キューへフレームを提供する。イグレスネットワーク276は、単一の出力ポート(例えば
図9の出力ポートMのうちの1つ)と関連付けられてもよい。イグレスモジュール274は、他の出力ポート用に同様のイグレスネットワークを含んでもよい。イグレスネットワーク276は、それぞれ優先レベルを有するキュー
1−Xを含む。イグレスネットワーク276は、任意の数の、各優先レベルのキューを含んでよい。一例として、イグレスモジュール274は、クラスAデータを受信する1以上のクラスAキュー278、クラスBデータを受信する1以上のクラスBキュー280、および非AVBデータを受信する1以上の非AVBキュー282を含む。キュー
1−Xのそれぞれは、レジスタとして動作してよく、各優先レベルのフレームを格納してもよい。
【0068】
またイグレスネットワーク276は、タイミングモジュール290、時間認識デブロックシェーパー292(
図10にデブロックシェーパーf
Dとして示すTADS/以下、デブロックシェーパーとも呼ぶ)、時間非認識ブロックシェーパー294(
図10にブロックシェーパーf
Qとして示す)、時間認識ブロックシェーパー296(
図10にブロックシェーパーf
Bとして示すTABS)、選択モジュール298、起動モジュール300、および第1マルチプレクサ302を含む。時間非認識ブロックシェーパー294および時間認識ブロックシェーパー296は、個別にブロックシェーパーと呼ぶ、および/または総じてブロックシェーパーと呼ぶ。デブロックシェーパー292およびブロックシェーパー294、296はそれぞれシェーパーモジュールとも呼ぶ。
【0069】
タイミングモジュール290は、デブロックシェーパー292および時間認識ブロックシェーパー296のそれぞれに関し、優先タイミング信号を生成する。各優先タイミング信号は、デブロックシェーパー292および時間認識ブロックシェーパー296がデータの通過を許可するか、または選択モジュール298がデータを選択するのをブロックする時間ウィンドウを設定する。デブロックシェーパー292に関して生成された優先タイミング信号は、デブロックシェーパー292がクラスAフレームの第1マルチプレクサ302への通過をブロックしない時間を示してもよい。時間認識ブロックシェーパー296に関して生成された優先タイミング信号は、時間認識ブロックシェーパー296がクラスBキューおよび非AVBキューに含まれるデータをブロックする時間を示してもよい。時間認識ブロックシェーパー296はそれぞれ同じ優先タイミング信号を受信してもよく、または異なる優先タイミング信号を受信してもよい。
【0070】
ネットワークデバイス270は、任意の数のデブロックシェーパーおよびブロックシェーパーを含んでもよい。デブロックシェーパーおよびブロックシェーパーの数は、クラスAキュー、クラスBキュー、および非AVBキューの数に応じてもよい。クラスAキューはそれぞれ対応するデブロックシェーパーを有してもよい。デブロックシェーパーおよび対応する送信パスによって、優先度の低い他の送信パスの干渉が防がれるので、レイテンシのレベルは最も低くなる。
【0071】
デブロックシェーパー292を用いて、適切な時間に例えばトーカーおよび/または時間トランスレータデバイスからデータが確実に送られるようにすることが出来る。トーカーモードで動作する際、ネットワークデバイス270はクラスAバーストの前にクラスAキュー278のクラスAフレームをアップロードする。クラスAバーストは、クラスAキュー278からのクラスAフレームを転送し、周期的送信時間間隔内の所定の期間、ネットワークデバイス270からクラスAフレームを送信することを含む。デブロックシェーパー292は、クラスAバーストがいつ開始するのかを制御し、さらに、クラスAバーストの間、クラスAフレームの送信タイミングを制御する。クラスAバーストの間、時間認識ブロックシェーパー296は非クラスAフレーム(例えばクラスBフレームまたは非AVBデータ)の送信をブロックし、非クラスAキューをアイドル状態とする。
【0072】
クラスAキュー278およびクラスBキュー280はそれぞれ、対応する時間非認識ブロックシェーパー(例えば、時間非認識ブロックシェーパー294のうちの1つ)を有してよい。クラスBキュー280および非AVBキュー282はそれぞれ、対応する時間認識ブロックシェーパー(例えば、時間認識ブロックシェーパー296のうちの1つ)を有してよい。時間非認識ブロックシェーパー294はデブロックシェーパー292および時間認識ブロックシェーパー296のそれぞれと直列で接続される。時間非認識ブロックシェーパー294を用いて、フレーム送信のペースを保ってもよく、IEEE802.1Qavに準拠してもよい。時間認識ブロックシェーパー296は、クラスAフレームの送信期間、選択モジュール298がクラスBキュー280および非AVBキュー282に含まれるフレームを選択するのをブロックする。これにより、クラスAフレームの他のフレームとの干渉を防ぐことが出来、クラスAフレームのレイテンシを最小化出来る。
【0073】
時間非認識ブロックシェーパー294は選択モジュール298に対して、デブロックシェーパー292および時間認識ブロックシェーパー296と並列動作してよい。例えば、クラスAデータは、デブロックシェーパー292、および時間非認識ブロックシェーパー294のうちの対応する1つに基づき、クラスAキュー278から第1マルチプレクサ302へと通過してもよい。クラスBデータは、時間非認識ブロックシェーパー294および時間認識ブロックシェーパー296のうちそれぞれの対応する1つに基づき、クラスBキュー280から第1マルチプレクサ302へ通過してもよい。
【0074】
キュー
1〜X、デブロックシェーパー292、およびブロックシェーパー294、296のそれぞれは関連付けられた送信パスを有する。各送信パスは、キュー
1〜Xのうち対応する1つを含み、デブロックシェーパー292およびブロックシェーパー294、296のうち1以上を含み得る。デブロックシェーパー292およびブロックシェーパー294、296のそれぞれは、対応するデブロック信号およびブロック信号を生成する。デブロック信号およびブロック信号は、選択モジュール298により受信され、あるフレームが対応するキューにあり、第1マルチプレクサ302へ転送される準備が出来る時間を示す。
【0075】
フレームはキューにあってもよく、対応するデブロック信号またはブロック信号は、キューにフレームがないこと、および/またはフレームが選択される準備が出来ていないことを示してもよい。デブロック信号またはブロック信号は、対応する優先タイミング信号に基づいて、フレームがないこと、および/またはフレームが送信される準備が出来ていないことを示してもよい。これにより、不適切な時間におけるフレーム送信がブロックされる。一例として、クラスBフレームがクラスBキュー280にあるとき、時間認識ブロックシェーパー296のうち1つが、ブロック信号を生成してもよい。ブロック信号は、クラスBフレームがクラスBキュー280にないことを示し、これにより例えばクラスAフレームの送信期間の前に、および/または間に、選択モジュール298がクラスBフレームを選択するのをブロックしてもよい。これにより、クラスAフレームの送信干渉を防ぐことが出来る。
【0076】
選択モジュール298は、第1マルチプレクサ302により受信される選択信号を生成し、第1マルチプレクサ302は当該選択信号に基づきキュー
1〜Xを選択する。選択モジュール298はストリクトスタイルセレクタであってもよい。ストリクトスタイルセレクタは、次に高い優先レベルのキューからのフレームの送信が許可される前に、複数のフレームを有する最も優先レベルの高いキューに含まれる全てのフレームの送信を許可する。このことは、ストリクトセレクタがフレームがキューにあるかどうかを判断することを含め、キューの状態を直接的にモニタリングしている時に起こる。
【0077】
以下の実施例において、キュー
1〜Xの状態を選択モジュール298が直接モニタリングする代わりに、選択モジュール298は、デブロックシェーパー292および/またはブロックシェーパー294、296から受信するデブロック信号またはブロック信号をモニタリングする。選択モジュール298はその後、デブロック信号またはブロック信号に基づいて、キューからのフレームの通過を許可する選択信号を生成する。デブロックシェーパー292、およびブロックシェーパー294、296は、選択モジュール298がキュー
1〜Xにあるフレームを直接的に「見る」ことを防ぐ。
【0078】
起動モジュール300は、ネットワークデバイス270の動作モードに基づきデブロックシェーパー292およびブロックシェーパー294、296を有効化および無効化する。例えば、トーカーモードおよび/または時間トランスレータモードで動作している際、デブロックシェーパー292が有効化されてもよい。クラスAフレームのレイテンシを短くするべく時間非認識ブロックシェーパー294を無効化してもよい。時間認識ブロックシェーパー296は有効化されてもよい。一実施例において、時間認識ブロックシェーパー296が無効化される。他の例において、ブリッジモードで動作している際、デブロックシェーパー292が無効化され、ブロックシェーパー294、296が有効化されてもよい。
【0079】
他の例として、ネットワークデバイス270がプロオーディオ環境で用いられている場合、時間非認識ブロックシェーパー294が有効化され、デブロックシェーパー292が無効化されてもよい。さらに他の例において、自動車のネットワーク環境においてクラスAフレームが送信される際、時間非認識ブロックシェーパー294が無効化され、デブロックシェーパー292が有効化されてもよい。これにより、クラスAフレームのレイテンシが短くなり、さらに、所定の帯域幅に関する基準、および最大フレームのレイテンシに関する基準を満たすことが出来る。
【0080】
時間トランスレータモードで動作しているとき、ネットワークデバイス270はデブロックを行うべくトーカーの出力に接続されてもよい。ネットワークデバイス270は、時間トランスレータデバイスとして構成されてもよく、時間非認識トーカーの出力において組み込まれ、デブロックを行い、クラスAフレームの送信タイミングを調整してもよい。ネットワークデバイス270は、単一の入力ポートおよび単一の出力ポートを有効化し、他のポートは無効化してもよい。このことは、トーカーがデブロックシェーパー、および/または時間認識ブロックシェーパーを含まない時に、クラスAフレームが適切な時間に確実に送信されるように実行されてもよい。適切な時間のクラスAフレームの送信とは、周期的送信時間間隔の所定の開始時間t
0でのクラスAフレームの送信の開始、および周期的送信時間間隔の所定のクラスAバーストウィンドウの間の適切な時間のクラスAフレームの送信を含む。
【0081】
またイグレスモジュール274は、カットスルーモードで動作してもよく、カットスルーモジュール310および第2マルチプレクサ312を含んでもよい。カットスルーモジュール310および第2マルチプレクサ312を用いて、最も優先度の高いフレーム(例えば、クラスAフレーム)のレイテンシをさらに最小化する。カットスルーモジュール310は、(参照番号が313の)グローバルクロック信号を受信し、当該信号に基づき動作することにより時間を認識して動作してもよい。カットスルーモジュール310は時間認識カットスルーシェーパー(TACS)とも呼ぶ。
【0082】
カットスルーモジュール310は、ネットワークデバイス270の出力314(例えば出力ポート)でのアクティビティをモニタリングし、クラスAフレームがイングレスモジュール272から、クラスAキュー278、対応するデブロックシェーパー292、および/または時間非認識ブロックシェーパー294、および第1マルチプレクサ302をバイパスして、第2マルチプレクサ312へ通過することを許可してもよい。出力314でのアクティビティは示されたように直接モニタリングされてもよく、または、カットスルーモジュール310は選択モジュール298および/またはイグレスモジュール274により生成されるラインアクティビティ信号を受信してもよい。ラインアクティビティ信号は、出力においてデータ送信アクティビティがあるかどうかを示してもよい。
【0083】
カットスルーモジュール310は、第1マルチプレクサ302の出力315、およびイングレスモジュール272のデータ出力316のうち1つを選択すべく第2選択信号を生成する。第2マルチプレクサ312は第2選択信号を受信し、第2選択信号に基づき出力315または出力316からクラスAフレームを転送する。出力316からのクラスAフレームの送信は、タイプIIIデータ送信とも呼ぶ。
【0084】
カットスルーモジュール310が行うバイパスは、イングレスモジュール272が、送信されるパケットのクラスAフレームを受信する前、および/または、クラスAフレームの全てのビットを受信する前に起こってもよい。クラスAデータの所定の数のバイト(例えば64バイト)がイングレスモジュールにより受信された後、当該バイトは、イングレスモジュール272から第2マルチプレクサ312へ渡されてもよい。所定の数のバイトは、例えばヘッダデータと関連付けられてもよい。ヘッダデータは、ソースおよびターゲットのアドレス、フレームサイズ、データタイプ、並びに/或いは、他のパケットおよび/またはフレームの情報を含んでもよい。
【0085】
クラスAバーストの間、時間認識ブロックシェーパー296はクラスA以外のデータフレームをブロックするので、出力314はアイドル状態にあり、クラスAフレームは、第2マルチプレクサ312を介して直接出力314に渡され得る。これにより、クラスAキュー278、および対応するシェーパー292、294へのフレームの格納に関連するレイテンシをなくすことが出来る。
【0086】
カットスルーモジュール310が有効化され、クラスAフレームのバイパスに用いられた場合、ブリッジにおけるクラスAフレームの最大レイテンシは、ブリッジの遅延時間t
Bridgeにカットスルーポイント(例えば第2マルチプレクサ)に関連する遅延時間
tCutを加算し、ケーブル最大送信時間
tCableを加算した時間に等しい。一例として、2つのスロットタイムのブリッジの遅延(または1.024μ秒)、および、1スロットタイムのカットスルーの遅延時間(0.512μ秒)により、最大ケーブル送信時間t
Cableが0.538μ秒であれば最大レイテンシは2.074μ秒となる。このレイテンシは送信されているクラスAフレームのサイズに関わらず定まる。なぜならクラスAのビットは、全てのクラスAのビットがブリッジによって受信される前、および/またはクラスAのビットがイングレスモジュール272から出力される際にブリッジから送信されるからである。タイプIII送信に関連するレイテンシは、タイプI送信(例えば、13.898μ秒)およびタイプII送信(例えば、4.122μ秒)に関連するレイテンシよりも短い。
【0087】
カットスルーモジュール310は、イングレスモジュール272に対し、クラスAフレームをクラスAキューへ提供する代わりに、クラスAフレームを第2マルチプレクサ312へバイパスするようシグナリングしてもよい。カットスルーモジュール310は、示されるようにイグレスモジュール274に位置付けられる代わりに、イングレスモジュール272に組み込まれてもよい。
【0088】
図11は、時間非認識ブロックシェーパー320を示す。時間非認識ブロックシェーパー320は
図10の時間非認識ブロックシェーパー294のいずれか1つに置き換わってもよい。時間非認識ブロックシェーパー320はグローバルクロック信号に基づいて動作しなくてもよい。時間非認識ブロックシェーパー320はローカルクロック321に基づいて動作してもよい。ローカルクロック321は、グローバルクロック信号とは独立したクロック信号を生成してもよい。時間非認識ブロックシェーパー320は送信の前にデータフレームを割り振り、選択モジュール298が保護データを有するキュー278、280に含まれるフレームを「見る」ことを防ぐ。このことは、連続的なデータフレームの各ペアの間にIFGを提供することを含む。
【0089】
時間非認識ブロックシェーパー320は、第1カウンタ322およびキューモニタリグンモジュール324を含む。第1カウンタ322はモニタリングされているキュー326(例えば、キュー278、280のうちの1つ)のクレジットをカウントする。キューモニタリグンモジュール324は、キュー326にフレームがあるかどうかをモニタリングし、フレームがキュー326にあり、キュー326から第1マルチプレクサ302へ通過することを許可されていない場合には第1カウンタ322の値を増加させる。キューモニタリグンモジュール324は、フレームが第1マルチプレクサ302に渡される場合には、第1カウンタ322の値を減少させる。第1カウンタ322は、キュー326と関連付けられた第1カウント値の最大値である上限を有し得る。また第1カウンタ322は、キュー326と関連付けられた第1カウント値の最小値である下限を有し得る。
【0090】
図12は、時間非認識ブロックシェーパー320のカウント値を経時的に示すグラフ330である。フレームがキューから第1マルチプレクサ302へ通過することを許可されていない場合の第1カウント値の増加は、第1線分332によって表されている。干渉により(つまり、1以上のキュー
1〜Xに含まれるフレームが送信されていることにより)フレームは通過を許可されないかもしれない。その後、第1カウント値は上限334に達し、現在のカウント値が維持される。フレームはその後、第1マルチプレクサ302へ通過することを許可され、第1の垂直の線分336により表されるように、第1カウント値が減少させられる。その後、フレームがキュー326から第1マルチプレクサ302へ渡されない場合、線分338により表されるように第1カウント値は再び増加させられる。
【0091】
キューにフレームが含まれなくなると第1カウント値は線分340により表されるようにゼロにリセットされてよい。第1カウント値がゼロになった後にフレームがキュー326に到達し送信され、干渉がない場合、第1カウント値が下限342まで減少されてもよい。送信すべきフレームがキューにない場合、線分344に表されるようにカウント値はゼロへ増加させられてもよい。上述した増加および減少は、ローカルクロック321、所定の時間間隔、および/または(参照符号が346の)ライン状況信号に基づいてもよい。
【0092】
ライン状況信号346は、データがイグレスモジュール274から送信されているかどうかを示してもよい。ライン状況信号346は、第1マルチプレクサ302の出力、または第2マルチプレクサ312の出力を示してもよく、並びに/或いは、選択モジュール298および/またはイグレスモジュール274により生成されてもよい。
【0093】
キューモニタリグンモジュール324は第1カウンタ322の第1カウント値に基づき、第1ブロック信号350を生成する。第1ブロック信号350は、イングレスモジュール272からの記述子信号352に基づいて生成されてもよい。記述子信号352は、キュー326にフレームがあるときを示してもよい。データは、キュー326から、キューモニタリグンモジュール324を介し、(参照符号が354の)対応するデブロックシェーパーまたは時間認識ブロックシェーパーへ、そして第1マルチプレクサ302へと渡される。
【0094】
図10〜13にはデブロックシェーパー360が示されている。デブロックシェーパー360は、
図10のネットワークデバイス270のデブロックシェーパー292または他のデブロックシェーパーに置き換わってもよい。デブロックシェーパー360は、クラスAデータがキュー362から第1マルチプレクサ302へ転送されること、および/または、イグレスモジュール274およびネットワークデバイス270から送信されることが許可される時間ウィンドウまで、対応する優先レベルの最も高いキュー362(例えばキュー278)のデータをブロックする。デブロックシェーパー360は、ロジックモジュール364およびデータパスモジュール366を含む。ロジックモジュール364は、第1優先タイミング信号368(最優先ゴー信号)および第1フレーム信号PKT1を受信する。第1優先タイミング信号368は、クラスAフレームの送信がいつ許可されるのかを示してもよい。第1フレーム信号PKT1はデータパスモジュール366により生成されてもよく、キュー362にフレームがあるときを示してもよい。
【0095】
ロジックモジュール364は、示されるようにNANDゲートおよび/または他の適したロジックデバイスを含んでもよい。NANDゲートは、第1優先タイミング信号368および第1フレーム信号PKT1を受信してもよく、第1パス信号PASS1を生成してもよい。第1パス信号PASS1は、クラスAフレームがいつ、キュー362から第1マルチプレクサ302へ通過することを許可されるのかを示してもよい。データパスモジュール366は第1パス信号PASS1に基づいてデブロック信号370を生成し、記述子信号352および/またはライン状況信号346に基づいてデブロック信号370を生成してもよい。
【0096】
図10〜14には、時間認識ブロックシェーパー380が示されている。時間認識ブロックシェーパー380は、
図10の時間認識ブロックシェーパー296のうちいずれか1つに置き換わってもよい。時間認識ブロックシェーパー380は、クラスAデータが第1マルチプレクサ302へ転送される、および/またはネットワークデバイス270から送信される間、対応するキュー382(例えばキュー280、282のうち1つ)に含まれるデータをブロックする。時間認識ブロックシェーパー380は、ロジックモジュール384およびデータパスモジュール386を含む。
【0097】
ロジックモジュール384は、第2優先タイミング信号388(ブロック最低優先信号とも呼ぶ)および第2フレーム信号PK2を受信する。第2優先タイミング信号388は、クラスBフレームおよび/または非AVBフレームの送信がいつ許可されないかを示す。第2フレーム信号PKT2はデータパスモジュール386により生成されてもよく、キュー382にいつフレームがあるのかを示してもよい。
【0098】
ロジックモジュール384は、非反転入力390および反転入力392で示されるNANDゲート、および/または他の適したロジックデバイスを含んでよい。非反転入力は、第2フレーム信号PKT2を受信してもよい。反転入力392は、第2優先タイミング信号388を受信してもよい。ロジックモジュール384は第2パス信号PASS2を生成する。第2パス信号PASS2は、クラスBフレームおよび/または非AVBフレームがいつキュー382から第1マルチプレクサ302へと通過することを許可されるのかを示す。データパスモジュール386は、第2パス信号PASS2に基づき第2ブロック信号394を生成し、記述子信号352および/またはライン状況信号346に基づき第2ブロック信号394を生成してもよい。
【0099】
図10〜15には、フレームサイズベースブロックシェーパー400が示されている。フレームサイズベースブロックシェーパー400は、
図10の時間認識ブロックシェーパー296のうちいずれか1つに置き換わってもよい。フレームサイズベースブロックシェーパー400はロジックモジュール384を含み、かつ、第2カウンタ404を有するデータパスモジュール402を含む。ロジックモジュールは、第2優先タイミング信号388および第2フレーム信号PKT2を受信し、第2パス信号PASS2を生成する。データパスモジュールはキュー382にフレームがあるかどうかに基づいて、第2フレーム信号PKT2を生成する。データパスモジュール402は、第2パス信号PASS2、第2カウンタ404の第2カウント値、記述子信号352、グローバルクロック信号313、および/またはライン状況信号346に基づいて第2ブロック信号406を生成する。
【0100】
図10〜15において、データパスモジュール402は、ヘッドオブラインフレームのサイズ、および次のクラスAバーストまでに残っている時間に基づき、ヘッドオブラインフレームが第1マルチプレクサ302へ通過することを許可する。ヘッドオブラインフレームとは、キューから第1マルチプレクサ302へ転送される次のフレームを指す。
【0101】
非クラスAキュー280、282のうちのいずれか1つに含まれるデータは、次のクラスAバーストウィンドウの前にブロックされ得る。例えば、非クラスAキューは、次のクラスAバーストウィンドウの前に送信される準備が出来ているヘッドオブラインフレーム(例えば1522バイト)を有し得る。クラスAバーストウィンドウの開始の前にヘッドオブラインフレームを完全に送信出来ない場合、ブロックシェーパーはヘッドオブラインフレームの送信をブロックしてもよい(遅延させてもよい)。(
図15の)非クラスAキューに含まれるフレームよりも少ないバイト(例えば64バイト)を有する非クラスAキューのうちの他の1つに含まれるフレームは、より小さなフレームは、次のクラスAバーストウィンドウの前に送信され得るので、マルチプレクサへ通過することが許可されてもよい。
【0102】
第2カウンタ404は、所定の最大フレームサイズ(例えば1522)に等しいカウント値からカウントを開始してもよく、ブロックウィンドウの開始において減少させられてもよい。キュー382に含まれるヘッドオブラインフレームのバイトの数が第2カウント値よりも大きい場合、第2カウンタ404を用いて、対応するキュー382がフレームを渡すことをゲートオフしてもよい。クラスAバーストウィンドウの前に完全に送信され得るヘッドオブラインフレームを有する非クラスAキューは、ブロックされなくてもよい。このことは、
図16A〜16E、および17を参照しさらに説明する。
【0103】
図16A〜16Eには、ブリッジ410を介したフレームサイズベースのデータ伝送が示されている。ブリッジ410は
図7のブリッジ158、160のうちの1つであってもよい。ブリッジ410は、メモリ414を有するイングレスモジュール412、クラスAキュー416、クラスBキュー417、第1非AVBキュー418、第2非AVBキュー419(例えば
図10のキュー
1〜X)、マルチプレクサ420(
図10の第1マルチプレクサ302)、および出力ポート422を含む。第1非AVBキュー418は、管理データを格納してよく、第2非AVBキュー419はレガシーデータを格納してよい。ブリッジ410は
図10のネットワークデバイス270と同様に構成されてもよい。
図16A〜16Eには示されていないが、ブリッジ410は、キュー416〜419のうちのそれぞれとマルチプレクサ420との間にフレームサイズベースブロックシェーパー(例えば
図15のフレームサイズベースブロックシェーパー400)を含んでもよい。
【0104】
図16Aにおいて、時間t
0から例えば16μ秒を減算した時間における、またはクラスAバースト期間の16μ秒前のブリッジ410の状態が示されている。時間t
0とは、クラスAバースト期間の開始時間を指す。クラスBフレーム430は、クラスBキュー417に格納されている。管理フレームn、mは、第1非AVBキュー418に格納されている。レガシーフレーム431は、第2非AVBキュー419に格納されている。クラスBフレーム430は、時間非認識ブロックシェーパーによってゲートされ(またはシェーピングされ)、時間t
0の16μ秒前において送信されるのが防がれる。その結果、管理フレームnのブリッジ410からの送信が開始され得る。
【0105】
図16Bにおいて、時間t
0の例えば3.664μ秒前のブリッジ410の状態が示されいる。この時間において、管理フレームnのブリッジ410からの送信は完了している。3.664μ秒は、16μ秒から、管理フレームnが送信される12.336μ秒を減算した時間である。この時間において、クラスBフレームは、送信される準備が出来ており、2つのフレームを送信するクレジットを有し得る。クラスBデータの300バイトのフレームを送信する時間は、2.56μ秒(プリアンブルおよび/またはIFGの時間である20バイトを含む)である。時間t
0までには3.664μ秒あるので、1つのフレームの送信が許可される。送信の準備が出来ているクラスBの他のフレームはブロックされる。
【0106】
図16Cにおいて、時間t
0の例えば1.104μ秒前のブリッジ410の状態が示されている。時間t
0までには1.104μ秒あるので、クラスBフレーム430および第2の非AVBフレームmがブロックされる。レガシーフレーム431は例えば、64バイトの長さである。プリアンブルおよびIFGの時間である20バイトを含んだレガシーフレーム431のうち1つを送信する時間は、0.672μ秒であり、1.104μ秒よりも短い。このため、フレーム431のうちの1つは、マルチプレクサ420へ通過することが許可される。
【0107】
図16Dにおいて、時間t
0の例えば0.432μ秒前のブリッジ410の状態が示されている。t
0までの時間は0.672μ秒よりも短いので残りのフレームはブロックされる。このことにより、出力ポート422はt
0においてアイドル状態となる。
図16Eにおいて、クラスAフレームがブリッジ410に到達し、クラスAキュー416へ格納されること、および、他のキュー417〜419に格納されるフレームによる干渉なしでブリッジ410へ送信されることが許可される。時間認識ブロックシェーパーは、時間t
0から所定の期間が経つとクラスBキュー417および非AVBキュー418〜419をリリースしてもよい(つまり、ブロックを解除してもよい)。データがクラスAキュー416にあり、出力ポート422から送信されている際、選択モジュール298がキュー417〜419の選択を防ぐので、キュー417〜419がリリースされ得る。このため、クラスAフレームのバーストは、クラスAキュー416に格納されているクラスAフレームなくなるまで継続される。キュー417〜419に含まれるフレームは、クラスAキュー416が空になると送信され得る。
【0108】
時間t
0(クラスAバーストの開始)において出力ポート422がアイドル状態となるよう非クラスAキュー417〜419のうちのそれぞれに対し時間認識ブロックシェーパーを用い、非クラスAキュー417〜419に含まれるフレームのヘッドオブラインサイズを考慮することにより、時間の効率的な利用が実現される。時間t
0の前に送信され得る非クラスAフレームは、優先度に基づき送信される。
【0109】
図17は、クラスAに割り当てられた期間におけるブロックウィンドウタイミングを示すタイミング図である450を示す。クラスAデータとの干渉を防ぐべく、ブロックウィンドウを用いて、定められたサイズを有するフレームの送信を防ぎ得る。サイズは所定のものであるか、上述したように記述子信号(例えば記述子信号352)に含まれる記述子に基づき決められる。上述した優先タイミング信号、および/またはキューの選択は、ブロックウィンドウ、およびライン状況信号に基づいて実行され得る。
【0110】
図17において、8つのデータブロック1〜8の送信時間に関して2つのブロックウィンドウ452、454が示されている。第1ブロックウィンドウ452は、最小サイズの干渉フレーム(例えば256バイト)と関連付けられている。第2ブロックウィンドウ454は、最大サイズの干渉フレーム(例えば1500バイト)と関連付けられている。第1ブロックウィンドウ452は、最小サイズフレームを送信する時間MINT(例えば23.84μ秒)、およびクラスAフレームのうちの少なくとも7つ、および8番目のクラスAフレームの一部を送信する時間を含む。第2ブロックウィンドウ454は、最大サイズフレームを送信する時間MAXT(例えば123.36μ秒)、およびクラスAフレームのうちの少なくとも7つ(またはクラスAフレームの数−1)、および8番目(または最後)のクラスAフレームの一部を送信する時間を含む。クラスA以外のデータが通過を許可される(ブロックが解除される)までの遅延、および各キューから
図10の第1マルチプレクサ302へクラスA以外のデータが実際に転送される時間を最小化するべく、ブロックウィンドウ452、454は、クラスAバースト期間の最後までは続かない。
【0111】
各ブロックウィンドウは、対応するマージン期間(例えばMargin
Min、Margin
Max)を含む。最小サイズフレーム以下のサイズの非クラスAフレームは、マージン期間Margin
Min(例えば367.36μ秒)に送信され得る。最大サイズフレーム以下のサイズの非クラスAフレームは、マージン期間Margin
Max(例えば267.84μ秒)に送信され得る。これらのマージンは、他のトラフィックまたは最大サイズ(例えば1522バイト)のフレームを含む非クラスAフレームの送信に関する判断を行う際に用い得る境界を定める。
【0112】
図10のネットワークデバイス270は、様々な方法を用いて動作し得る。例示的な方法は、
図18Aおよび
図18Bの方法である。
図18Aおよび18Bは、データブロック方法を示す。以下のタスクは主に
図10〜16Eの実施例に関連して説明されるが、それらタスクは、本開示の他の実施例に適用すべく容易に修正が可能である。また、以下のタスクは特定の数のデブロックシェーパー、時間非認識ブロックシェーパー、時間認識ブロックシェーパー、およびフレームに関して説明されるが、それらの数がそれぞれ異なるものであっても当該方法を容易に修正することが出来る。タスクは繰り返して実行され得る。方法は500から始まる。
【0113】
502において、イングレスモジュール272がフレームを受信する。フレームは、ホスト制御モジュール、トーカー、ブリッジ、および/または時間トランスレータデバイスから受信してもよい。504において、イングレスモジュール272はフレームをパースする。イングレスモジュール272はフレームがクラスAフレームかどうかを判断してもよい。フレームがクラスAフレームである場合、506のタスクが実行されてもよく、そうでなければ534のタスクが実行される。
【0114】
506において、イグレスモジュール274は、カットスルーモードが有効化されているかどうかを判断してよい。カットスルーモードが有効化されている場合、508のタスクが実行され、そうでなければ516のタスクが実行される。508において、クラスAキュー278、時間非認識ブロックシェーパー294、デブロックシェーパー292、および第1マルチプレクサ302がバイパスされ、第1マルチプレクサ302からではなく、イングレスモジュール272からフレームを選択すべく第2選択信号を生成する。クラスAフレームは第2マルチプレクサ312へ転送される。510において、クラスAフレームが、イグレスモジュール274および/またはネットワークデバイス270から転送される。方法は512で終了する。
【0115】
516において、イングレスモジュール272はクラスAフレームをクラスAキュー278へパースする。デブロックシェーパー360のデータパスモジュール(例えばデータパスモジュール366)、イングレスモジュール272、および/またはイグレスモジュール274が第1フレーム信号(例えばPKT1)を生成してもよい。第1フレーム信号は、クラスAフレームがクラスAキューにあることを示す。
【0116】
518において、イグレスモジュール274は、時間非認識ブロックが有効化されているかどうかを判断してよい。時間非認識ブロックが有効化されている場合、520のタスクが実行され、そうでなければ524のタスクが実行される。520において、時間非認識ブロックシェーパー294の第1カウンタ322は、第1カウント値を生成してよい。第1カウント値は、
図11および12で説明したように生成されてもよい。522において、キューモニタリングモジュール(例えばキューモニタリグンモジュール324)は、第1カウント値に基づき第1ブロック信号(例えば第1ブロック信号350)を生成する。
【0117】
524において、イグレスモジュール274は時間認識デブロックが有効化されているかどうかを判断してもよい。時間認識ブロックが有効化されている場合、526のタスクが実行され、そうでなければ554のタスクが実行される。526において、タイミングモジュール290は第1優先タイミング信号368を生成する。第1優先タイミング信号368は、上述したようにいつクラスAフレームが第1マルチプレクサ302へ通過することを許可されるのかを示す。528において、時間認識デブロックシェーパー360のロジックモジュール364は、第1優先タイミング信号368に基づき第1パス信号PASS1を生成する。532において、データパスモジュール366は、第1パス信号PASS1に基づきデブロック信号370を生成する。
【0118】
534において、イングレスモジュール272は、非クラスAフレームを非クラスAキュー280、282のそれぞれへパースする。時間認識ブロックシェーパー296のデータパスモジュール(例えばデータパスモジュール380、400)は、非クラスAキュー280、282のうち対応する1つにおけるフレームの存在を示すフレーム信号をそれぞれ生成してよい。このことには、
図14に関連して説明した第2フレーム信号PKT2の生成が含まれてもよい。
【0119】
536において、イグレスモジュール274はフレームはクラスBフレームかどうかを判断してもよい。フレームがクラスBフレームである場合、538のタスクが実行され、そうでなければ544のタスクが実行される。536のタスクは実際には実行されなくてもよい。538および544のタスクは、クラスBキューにクラスBフレームがあるかどうかに基づいて実行されてもよい。
【0120】
538において、イグレスモジュール274は時間非認識ブロックが有効化されているかどうかを判断してよい。時間非認識ブロックが有効化されている場合、540のタスクが実行され、そうでなければ544のタスクが実行される。540において、時間非認識ブロックシェーパーは、クラスBフレームの第2カウント値を生成する。542において、時間非認識ブロックシェーパーのキューモニタリングモジュールは、第2カウント値に基づき第2ブロック信号を生成する。
【0121】
544において、イグレスモジュール274は時間認識ブロックが有効化されているかどうかを判断する。時間認識ブロックが有効化されている場合、546のタスクが実行され、そうでなければ554のタスクが実行される。546において、タイミングモジュール290は、優先タイミング信号(例えば第2優先タイミング信号388)を生成する。優先タイミング信号は非クラスAフレームがいつブロックされるのかを示してよい。548において、時間認識ブロックシェーパーのデータパスモジュールは、546で生成された優先タイミング信号に基づきパス信号(例えば第2パス信号PASS2)を生成する。
【0122】
550において、時間認識ブロックシェーパーのデータパスモジュールは、記述子信号352に基づきヘッドオブラインフレームのサイズを判断してもよい。2以上の時間認識ブロックシェーパーが用いられる場合、時間認識ブロックシェーパーは単一のデータパスモジュールを共有してもよく、並びに/或いはデータパスモジュールは互いに通信を行い、ヘッドオブラインフレームの優先レベルおよびサイズに基づき非クラスAフレームの通過を調整してもよい。ヘッドオブラインの非クラスAフレームのサイズをモニタリングし、クラスAバースト間、および/または次のクラスAバーストの前の送信に「適合する」非クラスAフレームを出来るだけ多く転送するようにイグレスモジュール274および/または時間認識ブロックシェーパーが構成されている場合、550のタスクを実行してもよい。次のクラスのバーストの前に送信が完了するサイズのクラスBフレームは転送され、その後、次に最も大きなサイズのヘッドオブラインフレームが続く。次のクラスAバーストの前に送信され得る最も大きなサイズのヘッドオブフレームは、他の非クラスAフレームの前に送信されてもよい。
【0123】
552において、時間認識ブロックシェーパーは、パス信号、および/または対応する優先レベル、および/またはヘッドオブラインフレームのサイズに基づき、第3ブロック信号を生成してよい。
【0124】
554において、選択モジュール298は、第1ブロック信号、デブロック信号、第2ブロック信号、および/または第3ブロック信号に基づき第1選択信号を生成する。556において、第1マルチプレクサ302はキュー
1〜Xのうちの第1選択信号に基づき選択された1つからのフレームを送信する。第2選択信号は、イングレスモジュール272からではなく、第1マルチプレクサ302から出力されたフレームを選択するよう生成される。
【0125】
558において、イグレスモジュール274は、キュー
1〜Xにさらにフレームがあるかどうかを判断してよい。キュー
1〜Xにフレームがない場合、方法は560において終了し、そうでなければ562のタスクが実行されてよい。562において、イグレスモジュール274は残りのフレームがクラスAフレームであるかどうかを判断してよい。残りのフレームがクラスAフレームである場合、512のタスクが実行され、そうでなければ564のタスクが実行される。564において、残りのフレームはクラスBフレームである場合、538のタスクが実行され、そうでなければ544のタスクが実行される。
【0126】
上述したタスクは例示であり、タスクは適用例に応じて、順次、同期して、同時に、継続的に、重複する期間内で、または異なる順序で実行されてもよい。またいずれのタスクも実施例に応じて、および/またはイベントの順序に応じて、実行しなくてよいか、または飛ばしてもよい。
【0127】
上述した技術は、ネットワーク内のエンド局間のレイテンシを最小化するよう設計、管理、および制御された非任意ネットワークを含む。上述した実施例を用いることにより、非任意ネットワークは、100μ秒以下というFEのAVB第2世代の5回のホップに関するレイテンシの基準を満たすことが出来る。レイテンシは、トーカーの送信時間に、4つのブリッジに関する処理遅延時間を加算した時間に等しい。一例として、制御フレームを送信する時間は、制御データの128バイトおよびオーバーヘッドの22バイトを含む150バイトに関し、干渉フレームがない場合において、12.0μ秒である。4つのブリッジの1つの処理遅延時間は例えば、送信時間の12μ秒、およびおよそ2つの512ビットの時間であるブリッジ遅延の10.0μ秒を含んだ22.0μ秒である。合計のレイテンシは、12.0μ秒の送信時間および88.0μ秒(22.0μ秒×4)のブリッジ処理遅延時間を含んだ100.0μ秒である。
【0128】
本明細書で開示した装置および方法は、1以上のプロセッサにより実行される1以上のコンピュータプログラムによって実行され得る。コンピュータプログラムは、非一時的な有形のコンピュータ可読媒体に格納された、プロセッサ実行可能命令を含む。コンピュータプログラムは格納されたデータも含む。非一時的な有形のコンピュータ可読媒体の非限定的な例は、不揮発性メモリ、磁気記憶装置、および光学記憶装置を含む。