(57)【特許請求の範囲】
【請求項１】
フレームを格納するように構成された第１のキューと、
ローカルクロック信号を生成するように構成された第１のタイミングモジュールと、
（ｉ）グローバルクロック信号の第１のエッジに基づいて、前記グローバルクロック信号の第２のエッジの予期時間、および（ｉｉ）前記グローバルクロック信号の前記第２のエッジが前記予期時間の中心に置かれるウィンドウを判断するように構成された調整モジュールと、
前記ローカルクロック信号の第１のエッジの時間をキャプチャするように構成されたレジスタモジュールと、
ブロックシェーパと、を備え、
前記調整モジュールは前記ローカルクロック信号の前記第１のエッジの前記キャプチャされた時間および前記グローバルクロック信号の前記第１のエッジの前記時間に基づいて、前記ローカルクロック信号の第２のエッジを前記ウィンドウの中心に置くための調整信号を生成し、
前記ブロックシェーパは、前記ローカルクロック信号の前記第２のエッジの調整後、前記ローカルクロック信号のタイミングに基づいて、ネットワークデバイスからの前記フレームの送信をブロックするように構成される、ネットワークデバイス。
【請求項２】
複数のポートであって、前記複数のポートの各々は（ｉ）複数のキューと、（ｉｉ）エグレスモジュールと、（ｉｉｉ）複数のキュー状態テーブルのうちのそれぞれのものと、を含み、前記複数のキュー状態テーブルの各々は複数のエントリを含み、前記複数のエントリの各々は対応する前記ポートの前記複数のキューのうちのそれぞれのものの状態を含み、前記複数のポートは第１のポートを含み、前記第１のポートは前記第１のキューを含み、
前記エグレスモジュールの各々は前記複数のキュー状態テーブルのうちの対応するものにある前記複数のエントリを循環するように構成された、複数のポートと、
ポートテーブルを格納するように構成されたメモリであって、前記ポートテーブルは前記複数のポートのそれぞれに対する複数の遅延を含み、
前記エグレスモジュールの各々はそれぞれの前記遅延に基づいて、対応する前記ポートの前記複数のキューの循環を開始するように構成された、メモリと、をさらに備える、請求項１に記載のネットワークデバイス。
【請求項３】
前記第１のポートの前記エグレスモジュールは、前記ポートテーブル内の対応する前記遅延に基づいて、前記ローカルクロック信号のエッジから遅延するように構成され、前記複数のキュー状態テーブルのうちの前記対応するものにある前記複数のエントリを循環し、
前記第１のポート以外の前記複数のポートの前記エグレスモジュールの各々は、前記ポートテーブル内の対応する複数の前記遅延に基づいて、前記複数のポートのうちの連続する前のものによって行われる動作から遅延するように構成され、前記複数のキュー状態テーブルのうちの前記対応するものにある前記複数のエントリを循環する、請求項２に記載のネットワークデバイス。
【請求項４】
前記第１のタイミングモジュールまたは前記調整モジュールは、複数の前記テーブルにわたる、前記複数のポートのサイクル開始時間を調整すべく、前記ローカルクロック信号のタイミングを調整するように構成された、請求項３に記載のネットワークデバイス。
【請求項５】
前記第１のタイミングモジュールまたは前記調整モジュールは、前記ポートテーブルの前記複数の遅延を調整することなく、前記ローカルクロック信号のタイミングを調整するように構成された、請求項４に記載のネットワークデバイス。
【請求項６】
前記第１のタイミングモジュールまたは前記調整モジュールは、前記複数のポートの前記複数のキュー状態テーブルの複数の継続期間または複数の遅延を調整することなく、前記ローカルクロック信号のタイミングを調整するように構成された、請求項４に記載のネットワークデバイス。
【請求項７】
前記調整モジュールは、
前記ローカルクロック信号の前記第１のエッジの前記キャプチャされた時間が前記グローバルクロック信号の前記第１のエッジの予め定められた時間範囲内にない場合、前記ローカルクロック信号のタイミングの調整を控えるように構成され、および
前記ローカルクロック信号の前記第１のエッジの前記キャプチャされた時間が前記グローバルクロック信号の前記第１のエッジの前記予め定められた時間範囲内にある場合、前記ローカルクロック信号の前記第２のエッジが前記ウィンドウの中心に置かれるように、前記ローカルクロック信号の前記タイミングを調整するように構成された、請求項１から６のいずれか一項に記載のネットワークデバイス。
【請求項８】
前記タイミングモジュールは、前記グローバルクロック信号に基づいて、前記ローカルクロック信号を生成するように構成された、請求項１から７のいずれか一項に記載のネットワークデバイス。
【請求項９】
前記グローバルクロック信号に基づいてトリガ信号を生成するように構成された第２のタイミングモジュールをさらに備え、
前記レジスタモジュールは、前記トリガ信号に基づいて、前記ローカルクロック信号の前記第１のエッジの前記時間をキャプチャするように構成された、請求項１から８のいずれか一項に記載のネットワークデバイス。
【請求項１０】
前記レジスタモジュールは、前記グローバルクロック信号に基づいて、前記ローカルクロック信号の前記第１のエッジの前記時間をキャプチャするように構成された、請求項１から９のいずれか一項に記載のネットワークデバイス。
【請求項１１】
テーブルを格納するように構成されたメモリをさらに備え、
前記テーブルは複数の遅延時間を含み、
前記複数の遅延時間は前記ネットワークデバイスの複数のポートのそれぞれのためのものであり、
前記複数のポートの動作タイミングは（ｉ）前記複数の遅延時間、および（ｉｉ）前記ローカルクロック信号に基づく、請求項１に記載のネットワークデバイス。
【請求項１２】
前記複数の遅延時間は、前記グローバルクロック信号または前記ローカルクロック信号のエッジからのそれぞれの遅延量を指す、請求項１１に記載のネットワークデバイス。
【請求項１３】
テーブルを格納するように構成されたメモリであって、前記テーブルは複数のエントリを含み、前記複数のエントリの各々は（ｉ）複数のキューのうちのそれぞれのものに対する状態、および（ｉｉ）対応する前記状態にとどまる継続時間を含む、メモリと、
前記テーブルの前記複数のエントリを循環するように構成されたエグレスモジュールと、をさらに備え、
前記ブロックシェーパは、前記複数のエントリのうちの現在のものに基づいて、前記フレームが前記ネットワークデバイスから送信されることをブロックするように構成された、請求項１に記載のネットワークデバイス。
【請求項１４】
テーブルを格納するように構成されたメモリであって、前記テーブルは複数のエントリを含み、前記複数のエントリの各々は（ｉ）複数のキューのうちのそれぞれのものに対する状態、および（ｉｉ）対応するキューからの送信を許可する前に待機する遅延時間を含む、メモリと、
前記テーブルの前記複数のエントリを循環するように構成されたエグレスモジュールと、をさらに備え、
前記ブロックシェーパは、前記複数のエントリのうちの現在のものに基づいて、前記フレームが前記ネットワークデバイスから送信されることをブロックするように構成された、請求項１に記載のネットワークデバイス。
【請求項１５】
ネットワークデバイスを動作する方法であって、前記ネットワークデバイスは第１のキューを含み、前記方法は、
前記第１のキュー内にフレームを格納する段階と、
ローカルクロック信号を生成する段階と、
（ｉ）グローバルクロック信号の第１のエッジに基づいて、前記グローバルクロック信号の第２のエッジの予期時間、および（ｉｉ）前記グローバルクロック信号の前記第２のエッジが前記予期時間の中心に置かれるウィンドウを判断する段階と、
前記ローカルクロック信号の第１のエッジの時間をキャプチャする段階と、
前記ローカルクロック信号の前記第１のエッジの前記キャプチャされた時間および前記グローバルクロック信号の前記第１のエッジの前記時間に基づいて、前記ローカルクロック信号の第２のエッジを前記ウィンドウの中心に置くための調整信号を生成する段階と、
前記ローカルクロック信号の前記第２のエッジを調整する段階の後、前記ローカルクロック信号のタイミングに基づいて、前記ネットワークデバイスからの前記フレームの送信をブロックする段階と、を備える、方法。
【請求項１６】
前記ネットワークデバイスは複数のポートを含み、前記複数のポートの各々は（ｉ）複数のキューと、（ｉｉ）エグレスモジュールと、（ｉｉｉ）複数のキュー状態テーブルのうちのそれぞれのものと、を含み、前記複数のキュー状態テーブルの各々は複数のエントリを含み、前記複数のエントリの各々は対応する前記ポートの前記複数のキューのうちのそれぞれのものの状態を含み、前記複数のポートは第１のポートを含み、前記第１のポートは前記第１のキューを含み、前記方法は、
前記エグレスモジュールの各々を介し、前記複数のキュー状態テーブルのうちの対応するものにある前記複数のエントリを循環する段階と、
ポートテーブルを格納する段階であって、前記ポートテーブルは前記複数のポートのそれぞれに対する複数の遅延を含む、段階と、
前記エグレスモジュールの各々を介し、およびそれぞれの前記遅延に基づいて、対応する前記ポートの前記複数のキューの循環を開始する段階と、をさらに備える、請求項１５に記載の方法。
【請求項１７】
前記第１のポートの前記エグレスモジュールを介し、および前記ポートテーブル内の対応する前記遅延に基づいて、前記ローカルクロック信号のエッジから遅延させる段階であって、前記複数のキュー状態テーブルのうちの前記対応するものにある前記複数のエントリを循環する、段階と、
前記第１のポート以外の前記複数のポートの前記エグレスモジュールの各々を介し、および前記ポートテーブル内の対応する複数の前記遅延に基づいて、前記複数のポートのうちの連続する前のものによって行われる動作から遅延させる段階であって、前記複数のキュー状態テーブルのうちの前記対応するものにある前記複数のエントリを循環する、段階と、をさらに備える、請求項１６に記載の方法。
【請求項１８】
複数の前記テーブルにわたる、前記複数のポートのサイクル開始時間を調整すべく、前記ローカルクロック信号のタイミングを調整する段階をさらに備える、請求項１７に記載の方法。
【請求項１９】
前記ポートテーブルの前記複数の遅延を調整することなく、前記ローカルクロック信号のタイミングを調整する段階をさらに備える、請求項１８に記載の方法。
【請求項２０】
前記複数のポートの前記複数のキュー状態テーブルの複数の継続期間または複数の遅延を調整することなく、前記ローカルクロック信号のタイミングを調整する段階をさらに備える、請求項１８に記載の方法。
【請求項２１】
前記ローカルクロック信号の前記第１のエッジの前記キャプチャされた時間が前記グローバルクロック信号の前記第１のエッジの予め定められた時間範囲内にない場合、前記ローカルクロック信号のタイミングの調整を控える段階と、
前記ローカルクロック信号の前記第１のエッジの前記キャプチャされた時間が前記グローバルクロック信号の前記第１のエッジの前記予め定められた時間範囲内にある場合、前記ローカルクロック信号の前記第２のエッジが前記ウィンドウの中心に置かれるように、前記ローカルクロック信号の前記タイミングを調整する段階と、をさらに備える、請求項１５から２０のいずれか一項に記載の方法。
【請求項２２】
前記グローバルクロック信号に基づいて、前記ローカルクロック信号を生成する段階をさらに備える、請求項１５から２１のいずれか一項に記載の方法。
【請求項２３】
前記グローバルクロック信号に基づいて、トリガ信号を生成する段階をさらに備え、
前記トリガ信号に基づいて、前記ローカルクロック信号の前記第１のエッジの前記時間はキャプチャされる、請求項１５から２２のいずれか一項に記載の方法。
【請求項２４】
前記グローバルクロック信号に基づいて、前記ローカルクロック信号の前記第１のエッジの前記時間はキャプチャされる、請求項１５から２３のいずれか一項に記載の方法。
【請求項２５】
テーブルを格納する段階であって、前記テーブルは複数の遅延時間を含み、前記複数の遅延時間は前記ネットワークデバイスの複数のポートのそれぞれのためのものである、段階と、
前記複数のポートの動作タイミングを（ｉ）前記複数の遅延時間、および（ｉｉ）前記ローカルクロック信号に基づいて制御する段階と、をさらに備える、請求項１５に記載の方法。
【請求項２６】
前記複数の遅延時間は、前記グローバルクロック信号または前記ローカルクロック信号のエッジからのそれぞれの遅延量を指す、請求項２５に記載の方法。
【請求項２７】
テーブルを格納する段階であって、前記テーブルは複数のエントリを含み、前記複数のエントリの各々は（ｉ）複数のキューのうちのそれぞれのものに対する状態、および（ｉｉ）対応する前記状態にとどまる継続時間を含む、段階と、
前記ネットワークデバイスのエグレスモジュールを介し、前記テーブルの前記複数のエントリを循環する段階と、
前記複数のエントリのうちの現在のものに基づいて、前記フレームが前記ネットワークデバイスから送信されることをブロックする段階と、をさらに備える、請求項１５に記載の方法。
【請求項２８】
テーブルを格納する段階であって、前記テーブルは複数のエントリを含み、前記複数のエントリの各々は（ｉ）複数のキューのうちのそれぞれのものに対する状態、および（ｉｉ）対応するキューからの送信を許可する前に待機する遅延時間を含む、段階と、
前記ネットワークデバイスのエグレスモジュールを介し、前記テーブルの前記複数のエントリを循環する段階と、
前記複数のエントリのうちの現在のものに基づいて、前記フレームが前記ネットワークデバイスから送信されることをブロックする段階と、をさらに備える、請求項１５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本開示は、２０１５年６月８日に出願された米国実用特許出願第１４／７３３，３７０号に基づく優先権を主張し、２０１４年６月１１日に出願された米国仮出願第６２／０１０，５４２号および２０１４年６月１３日に出願された米国仮出願第６２／０１１，７６０号に基づく優先権の利益を主張する。本開示は、２０１５年６月８日に出願された米国実用特許出願第１４／７３３，２９６号（発明の名称「ガードバンドの残りの期間のサイズに基づきキューのソフトブロックを実行するためのシステムおよび方法」および代理人整理番号ＭＰ５９０３）と関連する。本願は、２０１２年３月８日に出願された米国実用特許出願第１３／４１５，１１２号（現在米国特許第８，９８２，８９６号）とも関連する。上記複数の出願の開示は、参照により本明細書にそれら全体が組み込まれる。
【０００２】
本開示はネットワークに関し、より具体的には、非恣意的ネットワークにおけるデータソースおよびブリッジのポートからのタイミング制御されたデータ転送に関する。
【背景技術】
【０００３】
データ通信ネットワークは複数のトーカ（または複数のデータソース）および複数のレシーバを含んでよい。任意の数のブリッジが複数のトーカおよびレシーバのそれぞれの間で、デイジーチェーンで接続されてよい。データ通信ネットワークは恣意的ネットワーク（ノンエンジニアードネットワークと呼ばれる）または非恣意的ネットワーク（エンジニアードネットワークと呼ばれる）であってよい。恣意的ネットワークとは、例えば住宅用ローカルエリアネットワーク（ＬＡＮ）であってよく、ＬＡＮはネットワーク内の様々なポイントにランダムな時間において恣意的に接続および切断する複数の異なるネットワークデバイス（例えば、コンピュータ、携帯電話、テレビ、プリンタおよび電子タブレット）を有してよい。複数のネットワークデバイスは、恣意的ネットワーク内で送信されるデータの優先レベルに関わらず、いつでも接続および切断してよい。
【０００４】
非恣意的ネットワークとは、例えば車両内の自動車用ネットワークまたは製造アセンブリラインネットワークであってよい。一般に、非恣意的ネットワーク内のネットワークデバイスは固定されており、非恣意的ネットワークへ接続される、および／または非恣意的ネットワークから切断されることはない。ネットワークデバイスが非恣意的ネットワークへ接続される、および／または非恣意的ネットワークから切断されることはあり得るものの、非恣意的ネットワークへ接続される、または非恣意的ネットワークから切断されるネットワークデバイスとの通信は、優先度の高いデータの送信期間中は阻止される。これらの送信期間中は、優先度の高いデータが非恣意的ネットワーク内の複数のネットワークデバイス間で送信される。
【０００５】
例えば、米国電気電子学会（ＩＥＥＥ）８０２．１ＢＡに従い動作する非恣意的なＥｔｈｅｒｎｅｔ（登録商標）ネットワークは、トーカ（またはソース）、複数のブリッジおよびリスナ（またはレシーバ）を含んでよい。トーカは、周期的な送信時間間隔のうち割り当てられた送信期間中に、優先度の高いデータをリスナにブリッジを介して送信してよい。優先度の高いデータとは、例えば低レイテンシ要件を持つクラスＡまたはクラスＢデータを指してよい。レイテンシという用語は、フレームが非恣意的ネットワークの１または複数のホップを介して送信されるための時間を指す。単一ホップのレイテンシは、そのホップについて、フレームの最後のビットがネットワークデバイスによって受信される時間から、最後のビットがネットワークデバイスから送信される時間までで測定される。格納および転送方法では、単一ホップのレイテンシは、ネットワークデバイスに入る最後のビットから、ネットワークデバイスから出る最後のビットまでで測定される。カットスルー方法では、当該レイテンシはネットワークデバイスに入る第１のビットから、ネットワークデバイスから出る第１のビットまでで測定される。単一ホップとは、非恣意的ネットワークのトーカ（エンドステーションと称される）またはブリッジを指してよい。
【０００６】
非恣意的ネットワークにおいては、送信されるデータは、例えば３つの優先レベルのうちの１つを有してよい。クラスＡデータは、最優先レベルを持つオーディオビデオブリッジング（ＡＶＢ）データを含んでよい。ＡＶＢデータはオーディオデータおよび／またはビデオデータを含んでよいが、ＡＶＢデータはまた制御データ、ユーザデータ、参照データ、または他のタイプのデータを含んでよい。最優先レベルデータは、予め定められた量の帯域幅および予め定められた最大レイテンシで提供されてよい。これは、クラスＡデータが割り当てられた期間中に送信されること、および予め定められた数のホップを経由し、および／または複数のエンドステーション間でクラスＡデータを送信することに関連するレイテンシが予め定められた最大レイテンシ未満であることを保証する。クラスＢデータは次の最優先レベルを持つＡＶＢデータであってよい。非ＡＶＢデータは最も低い優先レベルを有してよい。一般に、より優先度の高いデータが、より優先度の低いデータの前に送信される。
【０００７】
ＩＥＥＥ  ８０２．１  ＱｂｖはＡＶＢ第２世代ネットワークにおける時間認識シェーパのための仕様であり、時間感知ネットワーク（ＴＳＮ）と称される。ＩＥＥＥ  ８０２．１  Ｑｂｖに従い動作する複数のネットワークデバイスは、いつでもネットワークに接続してよい。しかしながら、複数のネットワークデバイスによる通信および／または複数のネットワークデバイスによる使用の前に、高い優先度のデータがネットワークを通過することを許可されるように、複数のネットワークデバイスによる通信および／または複数のネットワークデバイスによるネットワークの使用は制御されてよい。
【０００８】
高速Ｅｔｈｅｒｎｅｔ（登録商標）（ＦＥ）とは、１００メガビット／秒（Ｍｂｉｔｓ／ｓ）でのデータ送信を指す。ギガバイトＥｔｈｅｒｎｅｔ（登録商標）（ＧＥ）とは、１ギガビット／秒（Ｇｂｉｔｓ／ｓ）の送信を指す。第１世代のＥｔｈｅｒｎｅｔ（登録商標）ネットワークのＩＥＥＥ８０２．１  ＡＶＢ規格（ＦＥまたはＧＥの送信速度における）によると、クラスＡデータフレームは７回のホップを２ミリ秒（ｍｓ）未満で通過し、クラスＢデータフレームは７回のホップを５０ｍｓ未満で通過することになる。第２世代ネットワークのＩＥＥＥ８０２．１  ＡＶＢのゴール１によると、クラスＡフレームは３２回のＧＥ送信速度のホップを１２５μｓ未満で通過することになる。無線接続経由でのデータ送信時間は、有線接続経由でのデータ送信時間より長い。
【発明の概要】
【０００９】
ネットワークデバイスが提供され、ネットワークデバイスはキュー、タイミングモジュール、調整モジュール、レジスタモジュールおよびブロックシェーパを含む。キューは、フレームを格納するよう構成される。タイミングモジュールは、ローカルクロック信号を生成するよう構成される。調整モジュールは、（ｉ）グローバルクロック信号の第１のエッジに基づいて、グローバルクロック信号の第２のエッジの予期時間、および（ｉｉ）グローバルクロック信号の第２のエッジの予期時間の中心に置かれるウィンドウを判断するよう構成される。レジスタモジュールは、ローカルクロック信号の第１のエッジの時間をキャプチャするよう構成される。調整モジュールは、ローカルクロック信号の第１のエッジのキャプチャされた時間およびグローバルクロック信号の第１のエッジの時間に基づいて、ローカルクロック信号の第２のエッジをウィンドウの中心に置くための調整信号を生成するよう構成される。ブロックシェーパは、ローカルクロック信号の第２のエッジの調整後、ローカルクロック信号のタイミングに基づいて、ネットワークデバイスからのフレームの送信をブロックするよう構成される。
【００１０】
他の特徴において、キュー、タイミングモジュール、複数のポートおよびメモリを含むネットワークデバイスが提供される。キューは、フレームを格納するよう構成される。タイミングモジュールは、ローカルクロック信号を生成するよう構成される。複数のポートの各々は、（ｉ）複数のキューと、（ｉｉ）エグレスモジュールと、（ｉｉｉ）複数のキュー状態テーブルのうちのそれぞれものと、を含み、複数のキュー状態テーブルの各々は複数のエントリを含み、複数のエントリの各々は対応するポートの複数のキューのうちのそれぞれのものの状態を含み、複数のポートは第１のポートを含み、第１のポートは第１のキューを含み、複数のエグレスモジュールの各々は複数のキュー状態テーブルのうちの対応するものにある複数のエントリを循環するよう構成される。メモリはポートテーブルを格納するよう構成され、ポートテーブルは複数のポートのそれぞれに対する複数の遅延を含む。複数のエグレスモジュールの各々は、それぞれの遅延に基づいて、対応するポートの複数のキューの循環を開始するよう構成される。第１のポートのエグレスモジュールは、ポートテーブル内の対応する遅延に基づいて、ローカルクロック信号のエッジから遅延させ、複数のキュー状態テーブルのうちの対応するものにある複数のエントリを循環するよう構成される。第１のポート以外の複数のポートの複数のエグレスモジュールの各々は、ポートテーブル内の対応する複数の遅延に基づいて、複数のポートのうちの連続する前のものによって行われる動作から遅延させ、複数のキュー状態テーブルのうちの対応するものにある複数のエントリを循環するよう構成される。
【００１１】
本開示の利用可能なさらなる領域は、詳細な説明、特許請求の範囲、および図面から明らかになるであろう。詳細な説明および具体定例は、専ら例示を目的とし、本開示の範囲を限定することを意図していない。
【図面の簡単な説明】
【００１２】
【図１】本開示の一態様による、グランドマスタ（またはグローバル）クロック信号、ローカルクロック信号およびキュータイミング信号のプロットである。
【００１３】
【図２】本開示の一態様による非恣意的ネットワークの機能ブロック図である。
【００１４】
【図３】本開示の一態様によるトーカの機能ブロック図である。
【００１５】
【図４】本開示の一態様によるブリッジの機能ブロック図である。
【００１６】
【図５】本開示の一態様によるネットワークデバイスの機能ブロック図である。
【００１７】
【図６】本開示の一態様による時間非認識ブロックシェーパの機能ブロック図である。
【００１８】
【図７】本開示の一態様による、時間非認識ブロックシェーパの経時的なカウント値を示すグラフである。
【００１９】
【図８】本開示の一態様による、時間認識ブロックシェーパの機能ブロック図である。
【００２０】
【図９】本開示の一態様による、ウィンドウロッキングシステムを組み込んだネットワークデバイスの機能ブロック図である。
【００２１】
【図１０】本開示の一態様によるリングネットワークの図である。
【００２２】
【図１１】本開示の一態様によるＱｂｖウィンドウを示すタイミングプロットである。
【００２３】
【図１２】本開示の一態様による時間認識ブロック構成方法を示す。
【００２４】
【図１３】本開示の一態様によるカットスルーモードのためのタイミングプロットである。
【００２５】
【図１４】本開示の一態様による複数のＱｂｖウィンドウを示すタイミングプロットである。
【００２６】
【図１５】本開示の一態様によるローカルクロックロッキング方法を示す。
【００２７】
【図１６】本開示の一態様によるソフトブロック方法を示す。
【００２８】
図面中、参照符号は繰り返し使用され、類似および／または同一の要素を識別することがある。
【発明を実施するための形態】
【００２９】
ＩＥＥＥ  ８０２．１  Ｑｂｖは、ＡＶＢ第２世代ネットワークにおける時間認識シェーパのための仕様であり、タイムセンシティブネットワーク（ＴＳＮ）と称される。時間認識シェーパはネットワークデバイスのポート内のキューからのデータの通過をブロックするために使用される。時間認識シェーパはＰＴＰ（ｐｒｅｃｉｓｅ  ｔｉｍｉｎｇ  ｐｒｏｔｏｃｏｌ：正確なタイミングプロトコル）時間に基づいて動作してよい。非恣意的ネットワークにおける各時間認識デバイス（またはＰＴＰ時間に基づいて動作する任意のデバイス）は「ホールドオーバ（ｈｏｌｄ  ｏｖｅｒ）」、ＰＴＰ時間が一定期間、利用不可能（または「消失している」）なときに動作できる必要がある。時間認識ブロックシェーパの例が少なくとも図５〜６および図８〜９に示され、それらを参照して以下記載される。
【００３０】
「ホールドオーバ」機能に対応すべく、各時間認識機能および／またはネットワークデバイスのポートに対し、別個のクロック回路が提供されてよい。ローカルクロックの周波数および位相を判断し得る時間認識シェーパが以下開示される。ローカルクロックは、対応するクロック回路（またはタイミングモジュール）によって提供される。ネットワーク内の複数のネットワークデバイスのそれぞれのローカルクロックの一定周波数および／または位相の維持を含む複数の例が開示される。周波数および位相はグローバルクロック信号に対して維持される。
【００３１】
ネットワーク内の複数のネットワークデバイスはそれぞれの水晶オシレータを有してよく、それら水晶オシレータは異なる基本周波数を有するそれぞれのローカルクロック信号を生成する。それら基本周波数は、互いにプラスマイナス１００の分脈泊数（ＰＰＭ）の範囲内であってよい。基本周波数は、温度変化に起因して経時的に変更可能である。温度変化に対応すべく、周期的な訂正が実行される。グランドマスタクロック（場合によって「グローバルクロック」と称される）に基づき、クロック周波数の差に対応すべく、ＰＴＰプロトコルが使用されてよい。グランドマスタクロックとは、非恣意的ネットワーク内で複数のネットワークデバイスによって共有されるグローバルクロック信号を生成するクロックである。ローカルクロックおよびグローバルクロックは、アナログまたはデジタルのクロック信号を生成してよい。
【００３２】
ＩＥＥＥ  ８０２．１ＱｂｖはＥｔｈｅｒｎｅｔ（登録商標）ネットワークからの可能な限り低いレイテンシをサポートする。これは、クリティカルデータフローを送信する必要がある場合の時間窓中に、他のデータフローをブロックすることによって、最低レイテンシデータフローへの輻輳を阻止することによって実現される。この輻輳阻止には、ポートからフレーム全体が受信される前に、ポートからフレームの一部が送信されることを許容することによって、さらなるレイテンシの低減をサポートする「カットスルー」動作が含まれ得る。ＩＥＥＥ８０２．１Ｑｂｖは、時間認識ブロック（ＴＡＢ）ウィンドウを使用することによって、カットスルー動作をサポートする。ＴＡＢウィンドウは、データの通過を許可するとき、および／またはデータの通過をブロックするときのための基準ポイントを提供する。複数のスイッチから構成される長いデイジーチェーンでは、ネットワークデバイスの複数のポートに対し、同一の反復ＴＡＢウィンドウが提供されてよい。ＴＡＢウィンドウは、対応するネットワークデバイスにおけるローカルクロックに基づいて生成されてよい。
【００３３】
以下の開示例は、複数のスイッチから構成される長いデイジーチェーンおよびリングネットワーク等の他のアプリケーションに対応するための、ネットワークデバイスの各ポート用の独立した反復ＴＡＢウィンドウを提供する。リングネットワークは、リング状態に接続された複数のネットワークデバイスを含み、データが複数の方向において同一のネットワークデバイスに移動できるようにする。複数のＴＡＢウィンドウは同一のローカルクロックに基づいて生成されてよく、それらはすべて同一の期間を有してよいが、当該ＴＡＢウィンドウのオープンおよびクローズ（または開始および終了）時間は、同一のポートについてキューごとに加え、ポートごとに独立である。
【００３４】
カットスルー動作を最大化すべく、クリティカル（またはカットスルー）データが定期的な時間間隔で送信される準備がなされている場合、カットスルーデータがポートから送信される期間中、ポートの他のデータおよび／またはキューが遮断されていれば、カットスルーの低レイテンシが保証可能である。これには、カットスルーウィンドウの間、すべての他のトラフィックをブロックするための複数のブリッジ（または複数のスイッチ）が必要である。この機能は、時間認識ブロックスケジューラ（またはタイミングモジュール）によって実行されてよい。
【００３５】
図１は、グランドマスタ（またはグローバル）クロック信号１０、ローカルクロック信号１２およびキュータイミング信号１４を示す。グランドマスタクロック信号１０およびローカルクロック信号１２の各サイクル（または周期的な送信タイミング間隔）は、例えば８キロヘルツ（ｋＨｚ）信号について１２５マイクロ秒（μｓ）の長さを有してよい。周期的な送信時間間隔のそれぞれの間に送信可能なフレームの最大数は、例えば８個であってよい。
【００３６】
ローカルクロック信号１２はグローバルクロック信号１０と同期されてよく、またはパルス１６、１８によって示されるように、グローバルクロック信号から時間がずれてよい。ネットワークデバイスの１または複数のポートは、ローカルクロック信号１２に基づいて動作してよい。キュータイミング信号１４は、ネットワークデバイスのポートのキューからのクリティカルデータの送信タイミングを指してよい。ポートは、ローカルクロック信号１２の立ち上りエッジからクリティカルデータを送信してよい。キューからのクリティカルデータの送信との干渉を阻止すべく、ポートの他のすべてのキューは、ローカルクロック信号の立ち上がりエッジの前に開始する予め定められた期間、送信をブロックされてよい。ガードバンドと称されるこの予め定められた期間が図示されている。上記ブロックにより、ローカルクロック信号１２の立ち上がりエッジの発生時、ポートはアイドルであること、およびクリティカルデータの送信が干渉なく行われることが保証される。
【００３７】
線形回路網（例えば、一連に接続された複数のネットワークデバイスを有するネットワーク）またはリングネットワーク（例えば、リング状に接続された複数のネットワークデバイスを有するネットワーク）において、および拡張期間にわたり、複数のネットワークデバイスのローカルクロックはグローバルクロックと同期されなくなってよい。線形回路網の一例が図２に示されている。リングネットワークの一例が図１０に示されている。例えば、ローカルクロックの立ち上がりエッジおよび／または立ち下りエッジは、グローバルクロックの立ち上がりエッジおよび立ち下りエッジとの差分時間において発生してよい。ローカルクロックは、グローバルクロックに対して、それぞれの時間遅延（または位相差）を有してよい。時間遅延は、経時的に変化および／または増加してよい。複数のネットワークデバイスの各々はそれぞれのローカルオシレータを有してよい。ローカルオシレータの製造誤差、ローカルオシレータおよび／またはネットワークデバイスにおける動作温度における誤差および／またはジッタに起因して、ローカルオシレータによって生成されたローカルクロック信号はグローバルクロック信号と非同期になる可能性があり、および／または位相における誤差は変化および／または増加する可能性がある。これら誤差は経時的に累積する可能性がある。以下に開示される例では、グローバルクロックおよびローカルクロック間の同期および／または位相差を維持する。ネットワークデバイスの複数のポートのローカルクロック信号をグローバルクロック信号へロックするための複数の例が提供される。グローバルクロックとローカルクロックとの間のＰＰＭ差に対応すべく、ローカルクロック周波数を調整するタイミングモジュール（またはタイムアプリケーションインタフェース（ＴＡＩ））が提供される。ローカルクロック周波数は、予め定められたインクリメント（例えば、ピコ秒インクリメントまたは他のインクリメント）で調整されてよい。
【００３８】
開示された例はまた、グローバルクロックに対して、および／またはグローバルクロックに基づいてネットワークデバイス（またはステーション）遅延を判断し、並びにローカルクロックに対して、および／またはローカルクロックに基づいてポート遅延を判断する。複数のネットワークデバイスの各々は、複数のスケジュールされたポート送信時間、複数の継続期間および／または複数の遅延を含むテーブルを有してよい。テーブルは複数のポート状態およびそれぞれの遅延を識別してよい。一実施形態において、テーブルは複数の継続期間を含まずに、複数の連続的な相対遅延を含む。各ポートは異なる遅延期間を有してよい。例示的なポート遅延期間が後述の式１によって表される。各遅延期間とは、次の連続する（または第２の）ポートで特定の動作を実行するまでの、グローバルクロック信号からのそれぞれの遅延量および／または第１のポートの特定の動作からのそれぞれの遅延を指してよく、および／またはそれらに基づいてよい。特定の動作とは、各ポートの複数のキュー状態を含む対応するＱｂｖテーブルの複数のエントリの循環を再設定および／または再開することであってよい。各遅延期間とは、第１のポートのアクティベーションおよび／または初期化と、次の連続するポートのアクティベーションおよび／または初期化との間の遅延を指してよく、および／またはそれに基づいてよい。代替的に、各遅延期間とは、（ｉ）第１のポートがデータの送信を開始または終了するときと、（ｉｉ）次の（または第２の）連続するポートがデータの送信を開始するときとの間の遅延量を指してよく、および／またはそれに基づいてよい。これにより、（ｉ）ポートの遅延および／またはポート内の複数のキューの状態の継続期間を変更することなく、ローカルクロックが独立して調整されること、および（ｉｉ）すべてのポートのタイミングが、グローバルクロックに対して直接的または間接的に調整されること、を可能にする。ローカルクロックの周波数は、任意の恣意的な周波数に調整可能である。
【００３９】
上記例はさらに、ソフトブロックが非クリティカルデータ（すなわち、最優先ではないデータ）のためにガードバンド期間を利用することを可能にする。ハードブロックとは、最優先ではないすべてのキューをガードバンドの少なくとも一部の間ブロックして、最優先キュー（すなわち、ガードバンドの終端にある、データを送信するようスケジュールされた次のキュー）からのデータ送信を可能にすることを指す。ソフトブロックには、フレームおよび／またはパケットのサイズを判断すること、クリティカルデータの送信前にフレームおよび／またはパケットを送信するための残り時間が十分あるかを判断すること、およびクリティカルデータの送信前にフレームおよび／またはパケットの送信を許可することが含まれる。クリティカルデータは、例えばクラスＡデータまたは他のデータを含んでよい。クラスＡデータとは、ＧＥの最優先レベルを持つデータを指してよい。フレーム若しくはパケットが大きすぎる場合、および／またはフレーム若しくはパケットがクリティカルデータのスケジュールされた送信の前に送信できない場合、フレームおよび／またはパケットはブロックされる。例えば、ガードバンドおよび／またはガードバンドの残りの部分の長さが、フレームおよび／またはパケットを送信するために必要な長さ未満の場合、フレームおよび／またはパケットはブロックされる。この判断は、フレームおよび／またはパケットのサイズ（すなわちバイト数）並びにガードバンドのバイト単位のサイズ（すなわち長さ）に基づいてなされてよい。
【００４０】
サイズに基づいてソフトブロックを実行することによって、純粋に時間に基づくアプローチよりも、より正確で信頼性のある技術がもたらされる。例えば、フレームおよび／またはパケットを送信すべかを判断する場合、送信時間はナノ秒で判断されてよい。フレームおよび／またはパケットの送信は、ガードバンド間隔の残りの部分より１ナノ秒未満短くまたは長くてよい。結果的に、フレームおよび／またはパケットがガードバンド間隔の残りの部分より短い場合、フレームおよび／またはパケットは過度にブロックされ、または他のデータの送信中に誤って送信される可能性がある。
【００４１】
図２には、非恣意的ネットワーク１５０が示されている。非恣意的ネットワーク１５０は線形回路網であり、１または複数のトーカ（トーカ１５２、１５４、１５６の３つが示されている）、１または複数のブリッジ（ブリッジ１５８、１６０の２つが示されている）およびリスナ１６２を含む。トーカ１５２、１５４、１５６は、トーカがデータをリスナ１６２に送信するので、ソースと称されてよい。リスナ１６２は、リスナ１６２がデータをトーカ１５２、１５４、１５６から受信するので、レシーバと称されてよい。トーカ１５２、１５４、１５６およびブリッジ１５８、１６０の各々は、それぞれエグレスモジュール１６４、１６６、１６８、１７０、１７２を含んでよい。ブリッジ１５８、１６０は、正確なタイミングプロトコル（ＰＴＰ）を規定するＩＥＥＥ８０２．１  ＡＳを満たしてよい。ブリッジ１５８、１６０は、エンドステーション（例えば、トーカ１５２、１５４、１５６およびリスナ１６２）間に、複数のネットワークデバイスで構成されるデイジーチェーンを提供する。エグレスモジュール１６４、１６６、１６８、１７０、１７２の各々は、それぞれシェーパ１７４、１７６、１７８、１８０、１８２および／またはタイミングモジュール１８４、１８６、１８８、１９０、１９２を含んでよい。
【００４２】
シェーパ１７４、１７６、１７８、１８０、１８２はブロックシェーパを含んでよい。ブロックシェーパは、時間非認識ブロックシェーパおよび時間認識ブロックシェーパ（ＴＡＢＳ）を含んでよい。時間非認識ブロックシェーパおよび時間認識ブロックシェーパの例が図５〜６および図８〜９に示されている。時間認識ブロックシェーパはグランドマスタクロック２００によって生成されるグローバルクロック信号に基づいて動作する。グランドマスタクロック２００は、ネットワーク１５０の複数のネットワークデバイスのうちの任意のものに配置されてよい。グローバルクロック信号はネットワーク１５０内の複数のネットワークデバイスのうちの任意のものと共有されてよい。一例として、グランドマスタクロック２００が第２のトーカ１５４内に示されているが、グランドマスタクロック２００は他のトーカ１５２、１５６のうちの１つ、ブリッジ１５８、１６０のうちの１つ、リスナ１６２またはネットワーク１５０に接続された他のネットワークデバイスに配置されてよい。
【００４３】
時間認識ブロックシェーパは、非最優先度のデータ（例えば、非クラスＡデータまたはクラスＢデータおよび／または非ＡＶＢデータ）の送信開始を遅延させてよい。この遅延は、最優先度のデータ（例えば、クラスＡデータ）の送信タイミングに基づいて実行されてよい。クラスＡおよび非クラスＡデータの送信タイミングは、優先度タイミング信号またはキュー状態出力信号を生成し得るタイミングモジュール１８４、１８６、１８８、１９０、１９２によって提供されてよい。各優先度タイミング信号および／またはキュー状態出力信号は、対応するデータの送信が許可され、または許可されないウィンドウを示してよい。非クラスＡデータ（またはクラスＢデータおよび／または保護されていないデータ）に対し生成された優先度タイミング信号および／またはキュー状態出力信号は、各周期的な送信時間間隔の中で割り当てられた期間に基づいて生成されてよい。最優先度のデータ（クラスＡデータ）が割り当てられた期間の各々の中で送信される。これにより、クラスＡバーストが他のデータ（非最優先度のデータ）の送信によって干渉されないように、エグレスモジュールの出力がアイドルであることを保証する。
【００４４】
グランドマスタクロック２００を含むネットワークデバイスまたはネットワーク１５０内の他の複数のネットワークデバイスのうちの１つは、時間管理モジュール２０２を含んでよい。グランドマスタクロック２００および／または時間管理モジュール２０２を有するネットワークデバイスは、マスタデバイスと称されてよい。グランドマスタクロック２００および／または時間管理モジュール２０２を有さないデバイスは、スレーブデバイスと称されてよい。時間管理モジュール２０２は、グランドマスタクロック２００および／または時間間隔モジュール２０４を含んでよい。時間間隔モジュール２０４は、周期的な送信時間間隔（すなわち、周期的な送信時間間隔の継続期間）および複数の周期的な送信時間間隔の各々の開始時間ｔ０を設定してよい。グローバルクロック信号、周期的な送信時間間隔、および複数の周期的な送信時間間隔の開始時間ｔ０は、管理情報ベース（ＭＩＢ）モジュールおよび／または簡易管理ネットワークプロトコル（ＳＭＮＰ）を使用して、複数のネットワークデバイス間で共有されてよい。
【００４５】
トーカ（例えば、トーカ１５２）に最も近接するブリッジ（例えば、ブリッジ１５８）が時間変換デバイスとして実行されてよい。時間変換デバイスは、時間認識ブロックシェーパを有さないトーカと、時間認識ブロックシェーパを有するブリッジとの間に組み込まれてよい。ブリッジは単一の入力ポートおよび単一の出力ポートを有してよく、またはブリッジの複数のポートのうちの２つが、ブリッジの他の複数のポートが無効にされている間、有効にされてよい。ブリッジのエグレスモジュールはこれらポートを有効および無効にしてよい。これはポートテーブルの内容に基づいてよく、その場合、本明細書で開示される通り、ポートテーブルは対応する複数の遅延を持つ複数のエントリを含む。時間変換デバイスとして動作する間、ブリッジは有効にされた単一の入力ポートおよび有効にされた単一の出力ポートを有する。また、時間変換デバイスとして動作する間（時間変換モードで動作中と称される）、ブリッジは非クラスＡフレームの時間認識ブロックを実行し、クラスＡフレームおよび／または非クラスＡフレームの送信タイミングを調整する。
【００４６】
リスナ１６２は、ブリッジ１５８、１６０を介してトーカ１５２、１５４、１５６からデータを受信する。リスナ１６２は、リスナ制御モジュール２１０を含んでよい。リスナ制御モジュール２１０は、トーカ１５２、１５４、１５６から受信されるデータに基づいて動作してよく、および／または、それらに基づいて１または複数のセンサ、モータ、アクチュエータ、若しくはネットワークの他のデバイスをモニタリング若しくは動作させてよい。
【００４７】
トーカ１５２、１５４、１５６、ブリッジ１５８、１６０および／またはリスナ１６２は、有線若しくは無線接続および／または媒体を介して互いに通信してよい。無線接続および／または媒体は、例えばＩＥＥＥ規格８０２．１１、８０２．１１ａ、８０２．１１ｂ、８０２．１１ｇ、８０２．１１ｈ、８０２．１１ｎ、８０２．１６および８０２．２０を満たしてよい。
【００４８】
図３には、図２のネットワークのトーカ１５２、１５４、１５６（２２０と指定）のうちの１つの例が示されている。トーカ２２０は、ホスト制御モジュール２２２およびインタフェースモジュール２２４を含む。ホスト制御モジュール２２２は、例えばプロセッサを含んでよく、インタフェースモジュール２２４に対し、異なる優先レベルのデータを提供してよい。データはクラスＡデータ、クラスＢデータ、および非ＡＶＢデータを含んでよい。インタフェースモジュール２２４は、例えばネットワークインタフェースカードまたは他の好適なインタフェースであってよい。インタフェースモジュール２２４は、トーカイングレスモジュール２２６およびトーカエグレスモジュール２２８を含む。
【００４９】
トーカイングレスモジュール２２６は、例えばトーカ解析モジュール２３０およびトーカメモリ２３２を含んでよい。トーカ解析モジュール２３０は、ホスト制御モジュール２２２からデータのパケット２３４を受信し、パケット２３４を解析し、パケット２３４の複数のフレーム内に提供された複数のヘッダーに基づいて複数の記述子２３６を生成してよい。複数のヘッダーおよび／または記述子２３６の各々は、対応するパケットおよび／またはフレームのサイズ、周期的な送信時間間隔の開始時間、周期的な送信時間間隔の長さ、並びに／またはソースアドレスおよび／またはデスティネーションアドレスを含んでよい。受信された各パケットは、予め定められたデータフレーム数を含んでよい。複数のパケット２３４および複数の記述子２３６は、トーカメモリ２３２内に格納されてよく、記述子信号の中でトーカエグレスモジュール２２８に提供されてよい。
【００５０】
トーカエグレスモジュール２２８は、トーカシェーパ２４０（例えば、図２のトーカシェーパ１７４、１７６、１７８）およびトーカタイミングモジュール２４２（例えば、図２のトーカタイミングモジュール１８４、１８６、１８８のうちの１つ）を含む。トーカシェーパ２４０は、トーカタイミングモジュール２４２からの優先度タイミング信号および／またはキュー状態出力信号に基づいて動作する。トーカイングレスモジュール２２６および／またはトーカエグレスモジュール２２８は、メディアアクセス制御（ＭＡＣ）を含んでよい。
【００５１】
図４に、図２のブリッジ１５８、１６０（２５０と指定）のうちの一例が示されている。ブリッジ２５０は、入力ポート１〜Ｎ、ブリッジイングレスモジュール２５２、ブリッジエグレスモジュール２５４および出力ポート１〜Ｍを含む。ポートＮ、Ｍは入力ポートおよび出力ポートとして表示されているが、ポートＮ、Ｍの各々は入力ポートおよび／または出力ポートとして実行されてよい。また、ポートＮ、Ｍの各々は、ブリッジイングレスモジュール２５２および／またはブリッジエグレスモジュール２５４に接続されてよい。また、ブリッジ２５０は任意の数の入力ポートおよび出力ポートを含んでよい。
【００５２】
ブリッジイングレスモジュール２５２は、ブリッジ解析モジュール２５６およびブリッジメモリ２５８を含む。ブリッジ解析モジュール２５６は、トーカ、ブリッジ、および／または時間変換デバイスからデータを受信してよい。ブリッジ解析モジュール２５６は、受信されたパケット２６０を解析し、パケット２６０の複数のフレーム内に提供される複数のヘッダーに基づいて複数の記述子２６２を生成してよい。複数の記述子２６２の各々は、対応するパケットおよび／またはフレームのサイズ、周期的な送信時間間隔の開始時間、周期的な送信時間間隔の長さ、並びに／またはソースアドレスおよび／またはデスティネーションアドレスを含んでよい。受信された各パケットは、予め定められたデータフレーム数を含んでよい。複数のパケット２６０および複数の記述子２６２は、ブリッジメモリ２５８内に格納されてよく、記述子信号の中でブリッジエグレスモジュール２５４に提供されてよい。ブリッジエグレスモジュール２５４は、ブリッジシェーパ２６４（例えば、図２のブリッジシェーパ１８０、１８２）およびブリッジタイミングモジュール２６６（例えば、図２のブリッジタイミングモジュール１９０、１９２のうちの１つ）を含む。ブリッジシェーパ２６４は、ブリッジタイミングモジュール２６６からの優先度タイミング信号および／またはキュー状態出力信号に基づいて動作する。ブリッジイングレスモジュール２５２および／またはブリッジエグレスモジュール２５４はＭＡＣを含んでよい。
【００５３】
図５に、ネットワークデバイス２７０が示されている。ネットワークデバイス２７０は、イングレスモジュール２７２を持つデータブロックシステム２７１、およびエグレスネットワーク２７６を持つエグレスモジュール２７４を含む。図２のネットワーク１５０のトーカ１５２、１５４、１５６およびブリッジ１５８、１６０の各々は、ネットワークデバイス２７０と置換されてよく、並びに／またはイングレスモジュール２７２および／またはエグレスモジュール２７４を含んでよい。ネットワークデバイス２７０はトーカ、ブリッジおよび時間変換デバイスとして動作してよく、それ故、トーカモード、ブリッジモード、および時間変換モードを有する。
【００５４】
イングレスモジュール２７２は、トーカ、ブリッジ、および／または時間変換デバイスのホスト制御モジュールから、データフレーム（以下、フレームと言う）を受信する。イングレスモジュール２７２はフレームを解析し、フレームをエグレスモジュール２７４のそれぞれキューに提供する。エグレスネットワーク２７６は、単一の出力ポート（例えば、図４の複数の出力ポートＭのうちの１つ）に関連付けられてよい。エグレスモジュール２７４は、他の複数の出力ポートに対し、類似するエグレスネットワークを含んでよい。エグレスネットワーク２７６は、それぞれの優先度レベルを有するキュー１〜Ｘを含む。エグレスネットワーク２７６は、各優先レベルに対し、任意の数のキューを含んでよい。一例として、エグレスモジュール２７４は、クラスＡデータを受信する１または複数のクラスＡキュー２７８、クラスＢデータを受信する１または複数のクラスＢキュー２８０、および非ＡＶＢデータを受信する１または複数の非ＡＶＢキュー２８２を含んでよい。キュー１‐Ｘの各々はレジスタとして実行され、それぞれの優先度レベルのフレームを格納してよい。エグレスモジュール２７４は、対応するポートのＱｂｖキューテーブル内の複数のエントリを循環してよい。当該複数のエントリは、さらに詳細に後述される通り、複数のキュー状態並びにそれぞれの継続期間および／または遅延を含んでよい。
【００５５】
エグレスネットワーク２７６はまた、タイミングモジュール２９０、時間非認識ブロックシェーパ２９４（図５にブロックシェーパｆＱとして示される）、時間認識ブロックシェーパ２９６（ＴＡＢＳ、図５にブロックシェーパｆＢとして示される）、選択モジュール２９８、アクティベーションモジュール３００、および第１のマルチプレクサ３０２を含む。時間非認識ブロックシェーパ２９４および時間認識ブロックシェーパ２９６は、個別にブロックシェーパ、および／またはまとめて複数のブロックシェーパと称されてよい。複数のブロックシェーパ２９４、２９６の各々はシェーパモジュールと称されてよい。
【００５６】
タイミングモジュール２９０は、グローバルクロック信号２９３に基づいてローカルクロック信号２９１を生成するローカルクロックジェネレータ２９２を含む。タイミングモジュール２９０はまた、複数の時間認識ブロックシェーパ２９６の各々に提供される複数のキューゲート出力信号２９５を生成してよい。複数のキューゲート出力信号２９５の各々は、データがキューから通過することが許可されるか、またはキューがブロックされるかを示すキュー状態ビットを提供する。これは、時間窓（または継続期間）および／または遅延期間に基づいてよく、そこにおいて、複数の時間認識ブロックシェーパ２９６は、データの通過を許可するか、または対応するキューについて、データが選択モジュール２９８によって選択されることをブロックするかのいずれかを行う。時間窓、継続期間および／または遅延はテーブル内に格納されてよく、その一例が図８に示されている。複数の時間認識ブロックシェーパ２９６のために生成される複数のキューゲート出力信号２９５は、時間認識ブロックシェーパ２９６がクラスＡキュー、クラスＢキューおよび非ＡＶＢキュー内のデータをいつブロックするかを示してよい。複数の時間認識ブロックシェーパ２９６は、それぞれのキューゲート出力信号２９５を受信する。
【００５７】
ネットワークデバイス２７０は任意の数のブロックシェーパを含んでよい。ブロックシェーパの数は、クラスＡキューの数、クラスＢキューの数および非ＡＶＢキューの数に依存してよい。複数のブロックシェーパおよび対応する送信パスは、より低い優先レベルを持つ他の送信パスからの干渉が阻止されるので、最も低いレイテンシレベルを提供する。
【００５８】
複数の時間認識ブロックシェーパ２９６を使用して、データが、例えばトーカおよび／または時間変換デバイスから適切な時間において送信されることを保証してよい。トーカモードで動作する場合、ネットワークデバイス２７０は、クラスＡバーストの前に、クラスＡキュー２７８内のクラスＡフレームを読み込んでよい。クラスＡバーストは、クラスＡキュー２７８からのクラスＡフレームを転送すること、周期的な送信時間間隔内の予め定められた期間にわたり、ネットワークデバイス２７０からクラスＡフレームを送信することを含む。時間認識ブロックシェーパ２９６は、クラスＡバーストの開始時を制御し、さらにクラスＡバーストの間、クラスＡフレームの送信タイミングを制御する。クラスＡバーストの間、複数の時間認識ブロックシェーパ２９６は非クラスＡフレーム（例えば、クラスＢフレームまたは非ＡＶＢデータ）の送信をブロックし、非クラスＡキューをアイドル状態にする。
【００５９】
クラスＡキュー２７８およびクラスＢキュー２８０はそれぞれ、対応する時間非認識ブロックシェーパ（例えば、複数の時間非認識ブロックシェーパ２９４のうちの１つ）を有してよい。クラスＡキュー２７８、クラスＢキュー２８０および非ＡＶＢキュー２８２はそれぞれ対応する時間認識ブロックシェーパ（例えば、複数の時間認識ブロックシェーパ２９６のうちの１つ）を有してよい。複数の時間非認識ブロックシェーパ２９４はブロックシェーパ２９６および時間認識ブロックシェーパ２９６のそれぞれと直列で接続される。複数の時間非認識ブロックシェーパ２９４は、フレーム送信をペース調整するために使用され、ＩＥＥＥ８０２．１  Ｑａｖを満たしてよい。複数の時間認識ブロックシェーパ２９６は、クラスＡキュー２７８、クラスＢキュー２８０、非ＡＶＢキュー２８２の１または複数の他のフレームの送信期間中に、クラスＡキュー２７８、クラスＢキュー２８０の特定のものにあるフレーム並びに非ＡＶＢキュー２８２内にあるフレームを選択モジュール２９８が選択することをブロックする。これにより、フレームの干渉を阻止し、レイテンシを最小化する。
【００６０】
複数の時間非認識ブロックシェーパ２９４は、選択モジュール２９８に対しブロックシェーパ２９６と並行して動作してよい。例えば、クラスＡデータは、複数のブロックシェーパ２９６のうちの１つおよび複数の時間非認識ブロックシェーパ２９４のうちの対応する１つに基づいて、クラスＡキュー２７８から第１のマルチプレクサ３０２へ渡されてよい。クラスＢデータは、複数の時間非認識ブロックシェーパ２９４および複数の時間認識ブロックシェーパ２９６のうちの対応するものに基づいて、クラスＢキュー２８０から第１のマルチプレクサ３０２へ渡されてよい。
【００６１】
キュー１‐Ｘおよびブロックシェーパ２９４、２９６の各々は、関連付けられた送信パスを有する。各送信パスは、キュー１‐Ｘのうちのそれぞれを含み、ブロックシェーパ２９４、２９６のうちの１または複数を含んでよい。ブロックシェーパ２９４、２９６は、それぞれのブロック信号を生成する。ブロック信号は選択モジュール２９８によって受信され、ブロック信号はフレームが対応するキューに存在するとき、およびフレームが第１のマルチプレクサ３０２に転送準備ができているときを示す。
【００６２】
フレームはキューに存在してよく、対応するブロック信号はキュー内にフレームが存在しないこと、および／またはフレームが選択される準備がなされていないことを示してよい。ブロック信号は、対応するキューゲート出力信号に基づいて、フレームが存在しないこと、および／またはフレームが送信される準備がなされていないことを示してよい。これにより、不適切な時点におけるフレームの送信をブロックする。一例として、複数の時間認識ブロックシェーパ２９６のうちの１つは、クラスＢフレームがクラスＢキュー２８０内に存在するとき、ブロック信号を生成してよい。ブロック信号は、クラスＢフレームがクラスＢキュー２８０内に存在しないことを示してよく、それによって、例えばクラスＡフレームの送信期間前および／または送信期間中に、選択モジュール２９８がクラスＢフレームを選択することをブロックする。これにより、クラスＡフレームとの送信干渉を阻止する。
【００６３】
選択モジュール２９８は、キュー１‐Ｘからフレームを選択するために、第１のマルチプレクサ３０２によって受信される選択信号を生成する。選択モジュール２９８は、厳格なスタイルセレクタであってよい。厳格なスタイルセレクタは、送信されるべきフレームを有する最優先レベルキュー内にあるすべてのフレームを許可した後、次の最優先レベルキューからのフレーム送信を許可する。これは、フレームがキュー内に存在するかどうかを判断することを含み、厳格なセレクタが直接的にキューの状態をモニタリングする際に起こる。
【００６４】
以下の実装においては、選択モジュール２９８がキュー１‐Ｘの状態を直接モニタリングする代わりに、選択モジュール２９８は、ブロックシェーパ２９４、２９６から受信されるブロック信号をモニタリングする。選択モジュール２９８はその後、ブロック信号に基づいて、キューからのフレームの通過を許可するための選択信号を生成する。ブロックシェーパ２９４、２９６は、選択モジュール２９８に、キュー１‐Ｘ内に存在するフレームを直接「見せる」ことを阻止する。
【００６５】
アクティベーションモジュール３００は、ネットワークデバイス２７０の動作モードに基づいて、ブロックシェーパ２９４、２９６を有効化および無効化する。例えば、トーカモードおよび／または時間変換モードでの動作時、１または複数のブロックシェーパ２９４、２９６は無効化されてよい。クラスＡフレームのレイテンシを低減すべく、複数の時間非認識ブロックシェーパ２９４は無効化されてよい。残りの時間認識ブロックシェーパ２９６のうちの１または複数は有効化されてよい。一実装において、複数の時間認識ブロックシェーパ２９６は無効化される。別の例として、ブリッジモードでの動作時、ブロックシェーパ２９４、２９６のうちの１または複数は有効化されてよい。
【００６６】
別の例として、ネットワークデバイス２７０がプロオーディオ環境で使用される場合、複数の時間非認識ブロックシェーパ２９４が有効化されてよい。さらなる別の例として、自動車用環境においてクラスＡフレームが送信される場合、複数の時間非認識ブロックシェーパ２９４は無効化されてよく、複数のブロックシェーパ２９６のうちの１つが無効化されてよい。これにより、クラスＡフレームのレイテンシを低減し、さらに予め定められた帯域幅要件および最大フレームレイテンシ要件を満たすことを可能にする。
【００６７】
時間変換モードでの動作時、ネットワークデバイス２７０はトーカの出力に接続されてよい。ネットワークデバイス２７０は時間変換デバイスとして構成されてよく、時間非認識トーカの出力において組み込まれてよく、クラスＡフレームのブロックを阻止し、クラスＡフレームの送信タイミングを調整してよい。ネットワークデバイス２７０は、他の複数のポートを無効化しつつ、単一の入力ポートおよび単一の出力ポートを有効化してよい。これは、トーカが複数の時間認識ブロックシェーパを含まない場合に実行されてよく、クラスＡフレームが適切な時間に送信されることを保証する。適切な時間にクラスＡフレームを送信することは、ローカルクロック信号２９１の周期的な送信時間間隔の予め定められた開始時間ｔ０におけるクラスＡフレームの送信、および周期的な送信時間間隔の予め定められたクラスＡバーストウィンドウ中の適切な時間にクラスＡフレームの送信を開始することを含む。
【００６８】
エグレスモジュール２７４はまた、カットスルーモードで動作してよく、カットスルーモジュール３１０および第２のマルチプレクサ３１２を含んでよい。カットスルーモジュール３１０および第２のマルチプレクサ３１２を使用して、最優先度のフレーム（例えば、クラスＡフレーム）のレイテンシをさらに最小化する。カットスルーモジュール３１０はローカルクロック信号２９１を受信すること、およびローカルクロック信号２９１に基づいて動作することによって、時間を認識してよい。カットスルーモジュール３１０は、時間認識カットスルーシェーパ（ＴＡＣＳ）と称されてよい。
【００６９】
カットスルーモジュール３１０は、ネットワークデバイス２７０の出力３１４（例えば、出力ポート）におけるアクティビティをモニタリングし、クラスＡフレームまたは他のフレームが、対応するキュー、対応するブロックシェーパおよび／または時間非認識ブロックシェーパ、並びに第１のマルチプレクサ３０２をバイパスして、イングレスモジュール２７２から第２のマルチプレクサ３１２へ渡されることを許可する。カットスルーモジュール３１０は、イングレスモジュール２７２でのフレーム全体および／またはパケット全体の受信の前に、第２のマルチプレクサ３１２からフレームの一部および／またはパケットの一部を送信することを許可してよい。図示の通り、出力３１４におけるアクティビティは直接モニタリングされてよく、またはカットスルーモジュール３１０は選択モジュール２９８および／またはエグレスモジュール２７４によって生成されるラインアクティビティ信号を受信してよい。ラインアクティビティ信号は、出力においてデータ送信アクティビティがあるかどうかを示してよい。
【００７０】
カットスルーモジュール３１０は、第１のマルチプレクサ３０２の出力３１５およびイングレスモジュール２７２のデータ出力３１６のうちの１つを選択するための第２の選択信号を生成する。第２のマルチプレクサ３１２は第２の選択信号を受信し、第２の選択信号に基づいて、出力３１５または出力３１６のいずれかからのクラスＡフレーム（または他のフレーム）を転送する。出力３１６からのクラスＡフレームの送信は、タイプ３データ送信と称されてよい。
【００７１】
カットスルーモジュール３１０によって実行されるバイパスは、イングレスモジュール２７２が送信されるパケットのすべてのフレームを受信する前および／または１フレームのすべてのビットを受信する前に行われてよい。予め定められたバイト数（例えば、６４バイト）のデータがイングレスモジュールによって受信済みの後、当該バイトはイングレスモジュール２７２から第２のマルチプレクサ３１２へ渡されてよい。予め定められたバイト数は、例えば、ヘッダデータと関連付けられてよい。ヘッダデータはソースアドレスおよびターゲットアドレス、フレームサイズ、データタイプ、並びに／または他のパケットおよび／またはフレーム情報を含んでよい。
【００７２】
複数の時間認識ブロックシェーパ２９６はクラスＡバースト中、非クラスＡのデータフレームをブロックするので、出力３１４はアイドルであり、クラスＡフレームは、第２のマルチプレクサ３１２を介して出力３１４に直接渡されてよい。これにより、クラスＡキュー２７８および対応するブロックシェーパ内にフレームを格納することに関連するレイテンシを除去する。
【００７３】
カットスルーモジュール３１０が有効にされ、クラスＡフレームをバイパスするために使用される場合、ブリッジのクラスＡフレームの最大レイテンシは、ブリッジの時間遅延ｔＢｒｉｄｇｅにカットスルーポイント（例えば、第２のマルチプレクサ）に関連する時間遅延ｔＣｕｔをプラスし、ケーブル最大送信時間ｔＣａｂｌｅをプラスしたものに等しい。一例として、２つのスロット時間（または１．０２４μｓ）のブリッジ遅延および１つのスロット時間（０．５１２μｓ）のカットスルー遅延時間を合わせると、最大ケーブル送信時間ｔＣａｂｌｅが０．５３８μｓの場合、最大レイテンシは２．０７４μｓであってよい。このレイテンシは送信されるクラスＡフレームのサイズに関わらず規定される。というのは、すべてのクラスＡビットがブリッジによって受信される前に、クラスＡビットはブリッジから送信され、および／またはクラスＡビットはイングレスモジュール２７２から出力されるからである。タイプ３送信に関連するレイテンシは、タイプ１（例えば、１３．８９８μｓ）およびタイプ２（例えば、４．１２２μｓ）送信に関連するレイテンシ未満である。
【００７４】
カットスルーモジュール３１０は、クラスＡフレームをクラスＡキューに提供する代わりに、イングレスモジュール２７２に対し、クラスＡフレームを第２のマルチプレクサ３１２にバイパスするようシグナリングしてよい。図示の通り、カットスルーモジュール３１０はエグレスモジュール２７４内に存在する代わりに、イングレスモジュール２７２に組み込まれてよい。
【００７５】
ここでまた図６を参照すると、時間非認識ブロックシェーパ３２０が示されている。時間非認識ブロックシェーパ３２０は、図５の複数の時間非認識ブロックシェーパ２９４のうちの任意の１つに置き換わってよい。時間非認識ブロックシェーパ３２０は、グローバルクロック信号に基づいて動作しなくてよい。一実施形態において、時間非認識ブロックシェーパ３２０は、ローカルクロック３２１に基づいて動作する。ローカルクロック３２１は、グローバルクロック信号と独立したクロック信号を生成してよい。クロック信号はまた、図５のローカルクロックジェネレータ２９２によって生成されるローカルクロック信号とは独立であってよい。時間非認識ブロックシェーパ３２０は送信前にデータフレームを拡散し、選択モジュール２９８に、保護されたデータを持つキュー２７８、２８０内のフレームを「見せる」することを阻止する。これには、シーケンシャルなデータフレームの各ペア間にＩＦＧを提供することが含まれる。
【００７６】
時間非認識ブロックシェーパ３２０は、第１のカウンタ３２２およびキューモニタリングモジュール３２４を含む。第１のカウンタ３２２は、モニタリングされるキュー３２６（例えば、キュー２７８、２８０のうちの１つ）のクレジットをカウントする。キューモニタリングモジュール３２４は、キュー３２６内にフレームが存在するかどうかをモニタリングし、フレームがキュー３２６内に存在し、それがキュー３２６から第１のマルチプレクサ３０２へ渡されることが許可されない場合、第１のカウンタ３２２をインクリメントする。キューモニタリングモジュール３２４は、フレームが第１のマルチプレクサ３０２に渡される場合、第１のカウンタ３２２をデクリメントする。第１のカウンタ３２２は、キュー３２６に関連する第１のカウントを最大化する上限値を有してよい。第１のカウンタ３２２はまた、キュー３２６に関連する第１のカウントを最小化する下限値を有してよい。
【００７７】
ここでまた図７を参照すると、時間非認識ブロックシェーパ３２０の経時的なカウント値を示すグラフ３３０が示されている。フレームがキューから第１のマルチプレクサ３０２に渡されることが許可されないときの第１のカウントのインクリメントは、第１の線分３３２によって表わされている。フレームは干渉に起因して、通過を許可されなくてよい（すなわち、送信される１または複数の他のキュー１‐Ｘ内のフレーム）。その後、第１のカウントは上限値３３４に到達し、現在のカウント値で維持される。その後、フレームは第１のマルチプレクサ３０２へ渡されることが許可され、第１のカウントが第１の垂線３３６によって表されるようにデクリメントされる。その後、第１のカウントは、フレームがキュー３２６から第１のマルチプレクサ３０２に渡されないとき、線分３３８によって表される通り、再度インクリメントされる。
【００７８】
キュー内にフレームが存在しない場合、第１のカウントは線分３４０によって表わされる通り、ゼロにリセットされてよい。フレームがキュー３２６内に到着し、第１のカウントがゼロになった後に送信され、干渉が存在しない場合、第１のカウントは下限値３４２にデクリメントされてよい。キュー内に送信するためのフレームが存在しない場合、カウントは線分３４４によって表される通り、ゼロに増加されてよい。上記のインクリメントおよびデクリメントはローカルクロック３２１、予め定められた時間間隔、および／またはライン状態信号（３４６と指定）に基づいてよい。
【００７９】
ライン状態信号３４６は、データがエグレスモジュール２７４から送信されているかどうかを示してよい。ライン状態信号３４６は、第１のマルチプレクサ３０２の出力、第２のマルチプレクサ３１２の出力を示してよく、並びに／または、選択モジュール２９８および／またはエグレスモジュール２７４によって生成されてよい。
【００８０】
キューモニタリングモジュール３２４は、第１のカウンタ３２２の第１のカウント値に基づいて、第１のブロック信号３５０を生成する。第１のブロック信号３５０は、イングレスモジュール２７２からの記述子信号３５２に基づいて生成されてよい。記述子信号３５２は、キュー３２６内にフレームが存在するとき、およびそのフレームのサイズ（または行頭（ｈｅａｄ‐ｏｆ‐ｌｉｎｅ）フレーム）を示してよい。データがキュー３２６から、キューモニタリングモジュール３２４を通って、対応する時間認識ブロックシェーパ（３５４と指定）に渡された後、第１のマルチプレクサ３０２へ渡される。
【００８１】
図５および図８を参照すると、タイミングモジュール２９０、メモリ３６０、および時間認識ブロックシェーパ３８０が示されている。図８中、タイミングモジュール２９０は単一の時間認識ブロックシェーパに対し示されているが、タイミングモジュール２９０は任意の数の時間認識ブロックシェーパに対し動作し、および／または信号を提供してよい。タイミングモジュール２９０は、ローカルクロックジェネレータ２９２、カウンタモジュール３６２およびキューゲートモジュール３６４を含む。カウンタモジュール３６２はローカルクロック信号２９１をモニタリングする。またカウンタモジュール３６２はキューゲートモジュール３６４の出力をモニタリングして、次のスケジュールされたキューについて、１または複数のガードバンドのサイズおよび／または残りの継続期間を判断してよい。サイズおよび／または残りの継続期間は時間（例えば、ナノ秒またはピコ秒）で判断されてよく、並びに／または、例えば、ビットおよび／またはバイトで判断されてよい。一実施形態において、サイズおよび／または残りの継続期間は時間で判断され、その後、ビット数および／またはバイト数に変換される。カウンタモジュール３６２は、サイズおよび／または残りの継続期間を示すためのソフトブロック信号ＳｉｚｅＳＢを出力する。キューゲートモジュール３６４は、上記の通り、キューゲート出力信号を生成する。キューゲート出力信号は、ローカルクロック信号２９１および、メモリ３６０内に格納された複数のテーブル３６６のうちの１つであるキューテーブル内の情報に基づいて生成されてよい。キューテーブルは、Ｑｂｖテーブルと称されてよい。情報は、複数のキューの状態並びにポートの複数のキューの各々のための対応する複数の継続期間および／または複数の遅延を含んでよい。ポートは、キューテーブル内に示された順序で複数のキューを循環してよい。後にさらに詳細に説明される通り、テーブルはまた、ネットワークデバイスのポートの一覧を含むポートテーブルを含んでよい。上記の通り、ポートテーブルは、ネットワークデバイスの複数のポートの状態およびローカルクロック信号に対する、および／または互いに対する、当該ポートのそれぞれの遅延を含んでよい。メモリ３６０はまた、複数のレジスタ３６８を含んでよく、複数のレジスタ３６８は、タイミングモジュール２９０、時間認識ブロックシェーパ３８０、および／またはタイミングモジュール２９０の１または複数のモジュール並びに時間認識ブロックシェーパ３８０によって使用されるパラメータを格納する。複数のレジスタ３６８について、以下さらに記載する。
【００８２】
時間認識ブロックシェーパ３８０は、図５の複数の時間認識ブロックシェーパ２９６のうちの任意の１つに置き換わってよい。クラスＡデータが第１のマルチプレクサ３０２に転送され、および／またはネットワークデバイス２７０から送信される間、時間認識ブロックシェーパ３８０は、対応するキュー３８２（例えば、キュー２８０、２８２のうちの１つ）内のデータをブロックする。時間認識ブロックシェーパ３８０は、第１のロジックモジュール３８４およびデータ通過モジュール３８６を含む。
【００８３】
ロジックモジュール３８４は、図５のキューゲート出力信号（３８８と指定）のうちの１つおよびフレーム信号ＰＫ１を受信する。キューゲート出力信号は、メモリ３６０内に格納されたＱｂｖテーブル内の情報を含んでよい。一実装において、キューゲート出力信号は、対応するキューがＱｂｖテーブルに従い、特定の時点に送信されるようスケジュールされているかを示すキュー状態ビットを含む。フレーム信号ＰＫＴ１はデータ通過モジュール３８６によって生成されてよく、キュー３８２内にフレームが存在するときを示してよい。ロジックモジュール３８４は、図示の通りＡＮＤゲートおよび／または他の好適なロジックデバイスを含んでよい。ＡＮＤゲートの入力は、キューゲート出力信号３８８およびフレーム信号ＰＫＴ１を受信してよい。ロジックモジュール３８４は、第１の通過信号ＰＡＳＳ１を生成する。
【００８４】
データ通過モジュール３８６は、第２のロジックモジュール４００、比較モジュール４０２およびサイズ判断モジュール４０４を含む。サイズ判断モジュール４０４は、記述子信号３５２に基づいて、次のフレームおよび／またはパケットのサイズを判断する。記述子信号３５２は、キュー３８２内の次のフレームおよび／またはパケットのサイズを示してよい。当該サイズは、信号ＳｉｚｅＦ／Ｐによって表される。比較モジュール４０２は、信号ＳｉｚｅＳＢおよびＳｉｚｅＦ／Ｂを比較し、結果的にもたらされる信号ＲＥＳを生成する。結果的にもたらされる信号ＲＥＳは、フレームおよび／またはパケットのサイズが、ソフトブロック信号ＳｉｚｅＳＢによって示されるサイズより小さいまたはそれに等しいかを示す。結果的にもたらされる信号ＲＥＳは、フレームおよび／またはパケットが、ガードバンド間隔の間および／またはガードバンド間隔の残りの部分の間に、送信可能であるかを示す。
【００８５】
第２のロジックモジュール４００は、図示の通り第２のＡＮＤゲートおよび／または他の好適なロジックデバイスを含んでよい。第２のＡＮＤゲートは、第１の通過信号ＰＡＳＳ１および結果的にもたらされる信号ＲＥＳを受信する入力を含む。第２のＡＮＤゲートは、第２の通過信号ＰＡＳＳ  ２を生成する。データ通過モジュール３８６は、第２の通過信号ＰＡＳＳ２に基づいて、第２のブロック信号３９４を生成する。データ通過モジュール３８６は、ローカルクロック信号２９１、記述子信号３５２および／またはライン状態信号３４６に基づいて、第２のブロック信号３９４を生成してよい。データ通過モジュール４０２は、行頭フレームのサイズおよび次のクリティカルデータバースト前の残り時間に基づいて、行頭フレームが第１のマルチプライヤ３０２に渡されることを許可する。行頭フレームとは、キューから第１のマルチプレクサ３０２に転送されることになる、キュー内の次のフレームを指す。
【００８６】
非クラスＡキュー２８０、２８２内のいずれかにあるデータは、次のクリティカルデータバーストウィンドウの前にブロックされてよい。例えば、非クラスＡキューは、次のクラスＡバーストウィンドウの前に送信される準備の整った最大行頭フレーム（例えば、１５２２バイト）を有してよい。クラスＡバーストウィンドウの開始前に、行頭フレームが完全に送信できない場合、ブロックシェーパは、行頭フレームの送信をブロック（遅延）してよい。より小さいフレームは、次のクラスＡバーストウィンドウの前に送信されてよいので、当該非クラスＡキュー内のフレームより少ないバイト（例えば、６４バイト）を有するもう一方の非クラスＡキュー内にあるフレームはマルチプレクサ３１５に渡されることが許可されてよい。
【００８７】
ここで図１および図９を参照する。図９にはウィンドウロックキングシステム４５２、メモリ３６０および複数のポート４５４を含むネットワークデバイス４５０が示されている。ネットワークデバイス４５０は、図５のイングレスモジュール２７２およびエグレスモジュール２７４を含んでよく、この場合、エグレスモジュール２７４に類似するエグレスモジュールが複数のポート４５４の各々に含まれてよい。ウィンドウロッキングシステム４５２は、タイミングモジュール２９０、ＰＴＰモジュール４５６、レジスタモジュール４５８および調整モジュール４６０を含む。タイミングモジュール２９０は、ローカルクロック信号２９１を生成するローカルクロックジェネレータ２９２を含む。
【００８８】
ＰＴＰモジュール４５６は、グローバルクロック信号２９３に基づいて、トリガ信号を生成してよい。レジスタモジュール４５８は、図示の通り、グローバルクロック信号２９３および／またはトリガ信号に基づいて、ローカルクロック信号２９１の立ち上りエッジの時間をキャプチャする。一実施形態において、レジスタモジュール４５８は、グローバルクロック信号２９３に基づいて、ローカルクロック信号２９１の立ち上りエッジの時間をキャプチャする。ローカルクロック信号２９１の立ち上りエッジの時間は、調整モジュール４６０に提供されてよい。レジスタモジュール４５８は、立ち上りエッジが検出されたときを示すビットを格納してよい。当該ビットは、複数のレジスタ３６８のうちの１つ、またはレジスタモジュール４５８内のイベントキャプチャレジスタ内に格納されてよい。トリガ信号は、立ち上りエッジが発生したとき、および／またはローカルクロック信号２９１がＨＩＧＨ状態にあるときを示してよい。調整モジュール４６０は、ローカルクロック信号２９１の立ち上りエッジのタイミングを、（ｉ）グローバルクロック信号２９３のエッジの時間、および（ｉｉ）ローカルクロック信号２９１のエッジの時間に基づいて調整する。
【００８９】
レジスタモジュール４５８はカウンタ４６９を含んでよく、カウンタ４６９は（ｉ）グローバルクロック信号２９３の立ち上りエッジの時間と、（ｉｉ）ローカルクロック信号２９１の立ち上りエッジの時間との間の誤差または差の量を判断するために使用される自走カウンタであってよい。カウンタ４６９のカウント値は、ローカルクロックの信号２９１の周波数より速いレートでインクリメントされてよい。カウント値は、誤差を示すための時間に変換されてよく、これは調整モジュール４６０に転送されてよく、およびローカルクロック信号２９１のエッジを調整すべく、調整モジュール４６０によって使用されてよい。
【００９０】
図１に示される通り、調整モジュール４６０は、ウィンドウ（ウィンドウ４７０、４７２が示されている）を判断し、そのウィンドウ内でローカルクロック信号２９１の立ち上りエッジは、グローバルクロック信号２９３の立ち上りエッジに基づいて発生することが予期される。複数のレジスタ３６８のうちの１つが、ウィンドウの幅を格納するために使用されてよい。一例として、ＴｒｉｇＬｏｃｋＲａｎｇｅ（またはロッキングウィンドウ）レジスタが使用されてよく、それは４ビットレジスタであってよい。ローカルクロック信号２９１を再開または再ロックするために、ロッキングウィンドウレジスタが使用されてよい。調整モジュール４６０は、ロッキングウィンドウレジスタに関連するウィンドウの開始、終了および／または継続期間を調整してよい。調整モジュール４６０は、ローカルクロック信号２９１の立ち上りエッジは、ウィンドウのそれぞれ中心にくるように、グローバルクロック信号２９３の前の立ち上りエッジに基づいて、ローカルクロック信号２９１のこれから来る立ち上りエッジの時間を調整する。これには、グローバルクロック信号２９３のこれから来る立ち上りエッジの判断された時間に対するウィンドウの開始時間および終了時間、ウィンドウの継続期間、ウィンドウの中心、並びに、ローカルクロック信号２９１の立ち上りエッジへの正および／または負の調整量の判断を含んでよい。結果的に、ローカルクロック信号２９１をグローバルクロック信号２９３に対し周波数においてロックすべく、および／またはローカルクロック信号２９１をグローバルクロック信号２９３から予め定められた時間量で遅延させるようにロックすべく、ローカルクロック信号２９１のサイクルの長さは低減および／または増加されてよい。
【００９１】
メモリ３６０はポートテーブルを含む複数のテーブル３６６を格納してよく、ポートテーブルは複数のポート状態および複数のポート遅延時間を格納する。複数のポート４５４は、それぞれの複数の遅延時間４８２および複数のキューテーブル４８４を格納する、それぞれの複数のメモリ４８０を含んでよい。
【００９２】
ローカルクロック信号２９１をグローバル（またはグランドマスタ）クロック信号２９３に対しロックすべく、タイミングモジュール２９０は、信号２７１、２９３を比較してよく、当該比較に基づき、ローカルクロック信号を適切に調整してよい。これは、クロック補正と称され、信号２７１、２９３間の誤差の９９．９％を訂正してよい。本明細書においては主に信号２７１、２９３の立ち上りエッジがモニタリングおよび／または調整されるものと言及されているが、信号２７１、２９３の立ち下りエッジがモニタリングおよび／または調整されてよい。ローカルクロック信号２９１の立ち上がりおよび／または立ち下りエッジは観測可能なので、クロック補正は連続的におよび／または周期的にモニタリングおよび調整可能である。
【００９３】
非常に長期間（数日）、長距離にわたり、および／または例えば温度変化に起因して、グローバルおよび／またはローカルクロックがドリフトする状況の場合、ローカルクロック信号２９１のロックを維持するための追加の訂正が行われる。これは、レジスタモジュール４５８により、ローカルクロック信号２９１の立ち上がりエッジが、グローバルクロック信号２９３の対応する立ち上がりエッジと関連付けられた場所を「見る」ことで実現される。また、ローカルクロック信号２９１がグローバルクロック信号２９３と同一のＰＰＭに近接する場合、クロック補正が辛うじて正（ゼロに近接）で、その後負にドリフト（またはその逆）するときは問題が発生する可能性がある。これは可能性がないわけではないので、ローカルクロック信号２９１の生成中にローカルクロック信号２９１の立ち上がりエッジを再整列させるために、ウィンドウロックシステム４５２が提供されている。ＴｒｉｇＬｏｃｋワンショット有効ビットを有する構成レジスタ（例えば、複数のレジスタ３６８のうちの１つ）およびＴｒｉｇＬｏｃｋＲａｎｇｅビットが提供される。ＴｒｉｇＬｏｃｋワンショット有効ビットは、ローカルクロック信号２９１の立ち上りエッジの調整を有効化するときを示す自己クリアビットである。このビットが１に設定されている場合、ローカルクロック信号２９１の立ち上がりエッジがＴｒｉｇＬｏｃｋＲａｎｇｅビットによって定義される通り、予め定められた数のＰＴＰクロックサイクルのプラスマイナスで発生する場合およびその場合に限り、ローカルクロック信号２９１の立ち上がりエッジはＴｒｉｇＧｅｔＴｉｍｅレジスタ（複数のレジスタ３６８のうちの１つ）内に含まれる値に調整される。
【００９４】
ＴｒｉｇＬｏｃｋ  Ｒａｎｇｅビットによって示される範囲が時間において過去になると、ＴｒｉｇＬｏｃｋワンショット有効ビットは自己クリアする（すなわち、ローカルクロックのローカル時間の一周ごとの１訂正に対し、ＴｒｉｇＬｏｃｋワンショット有効ビットは設定される（またはアクティブである）。例えば、ローカルクロックは、タイミングモジュール２９０またはローカルクロックジェネレータ２９２内に含まれ得る３２ビットのローカルタイマであってよい。このビットは、訂正が行われたかどうかに関わらずクリアされる。ＴｒｉｇＬｏｃｋワンショット有効ビットおよび対応するＴｒｉｇＬｏｃｋＲａｎｇｅは、将来のどこかの時点で訂正が行われることを可能にする。一例として、ローカルクロックタイマが一周するのに３０秒より多くかかってよい。ローカルクロック信号２９１の特定の立ち上りエッジが対応するウィンドウ内（すなわち、ＴｒｉｇＬｏｃｋＲａｎｇｅウィンドウ内）である場合、その立ち上がりエッジで訂正が発生してよい。このタイプのウィンドウの例が図１に示されている。ＴｒｉｇＬｏｃｋＲａｎｇｅビットは、プラスマイナスの誤差限界を提供し、その中でローカルクロック信号２９１の立ち上りエッジが調整される。立ち上りエッジがウィンドウの限界値のプラスマイナスの範囲内に属する場合、ローカルクロック信号２９１の立ち上りエッジまたはローカルクロック信号２９１の１または複数の後続の立ち上りエッジは、対応するＴｒｉｇＬｏｃｋＲａｎｇｅ（または調整ウィンドウ）内の中心に置かれるように調整される。
【００９５】
レジスタ３６８はまた、状態レジスタを含んでよい。状態レジスタは、読み取り、書き込み、およびリセットビットである、キャプチャトリガビットを含んでよい。キャプチャトリガビットがゼロにクリアされると、レジスタモジュール４５８はローカルクロック信号２９１の立ち上りエッジイベントをモニタリングし、イベントキャプチャレジスタ（１ビットレジスタ）内にイベントをキャプチャする。これにより、エッジが経時的にドリフトしないことを保証し、それによって、これから来るエッジが再整列されることを可能にする。
【００９６】
構成レジスタは、訂正が発生したかどうかということ、および訂正量をモニタリングするために使用されるロック訂正有効ビットおよびロック訂正量ビットをさらに含んでよい。この情報は、調整モジュール４６０または評価モジュール４９０に対し、ローカルクロック信号２９１のエッジにおけるさらなる調整のために、および／または、ウィンドウロッキングシステム４５２の性能の評価のためにフィードバックされてよい。
【００９７】
訂正が有効でないまたは訂正が発生しなかった場合、ロック訂正有効ビットは０である。訂正が有効であり、訂正が発生した場合、ロック訂正有効ビットは１である。ＴｒｉｇＬｏｃｋワンショット有効ビットが設定され、それにより潜在的なローカルクロック信号調整が有効にされると、ロック訂正有効ビットは０にクリアされる。ＴｒｉｇＬｏｃｋワンショット有効ビットがクリアされると、訂正が発生しており、訂正が有効であれば、ロック訂正有効ビットは１に設定される。ロック訂正量ビットは訂正中に行われた訂正量を示す。ＴｒｉｇＬｏｃｋワンショット有効ビットが１に設定されると、ロック訂正量ビットは０にクリアされる。ＴｒｉｇＬｏｃｋワンショット有効ビットが０にクリアされると、ロック訂正量ビットは、ローカルクロック信号２９１の立ち上がりエッジに適用された大きさおよび方向を反映する。ロック訂正量ビットが０の場合、調整は必要ではなかった。ロック訂正量ビットのビット３が１の場合、ローカルクロック信号２９１の立ち上がりエッジは、ｎ個のクロックサイクル分、前の時間に移動された。ここでｎはロック訂正量ビットのビット０〜２によって提供される整数である。ビット３が０の場合、ローカルクロック信号２９１の立ち上がりエッジは、ｎ個のクロックサイクル分、後の時間に移動された。
【００９８】
図１０は、産業ネットワークまたはコントローラエリアネットワーク等のリングネットワーク４９０を示す。リングネットワーク４９０は、１または複数のリング（例えば、リング４９１、４９２、４９３）を含む。複数のリングの各々は、複数のネットワークデバイス（またはステーション）４９４を含み、複数のネットワークデバイス（またはステーション）４９４は、複数のリングのうちの対応するものの周囲を、時計回りまたは反時計回りのいずれかの方向で、互いに通信してよい。第１のリング（例えば、リング４９１）上の複数のネットワークデバイス４９４の各々は、他のリング（例えば、リング４９２、４９３）上の複数のネットワークデバイスのうちの任意のものと通信してよい。データは、ネットワークデバイスからネットワークデバイスへ、ターゲットのネットワークデバイスに到達するまで転送される。特定のネットワークデバイス（例えば、ネットワークデバイス４９５）は、複数のリング間のゲートウェイとして動作してよく、当該リング間で、リンク４９６を介して通信してよい。
【００９９】
複数のリング上の複数のネットワークデバイスの各々は、グローバル（またはグランドマスタ）クロック信号を受信してよい。複数のネットワークデバイスの各々は、図示の通り、並びに図１〜９および図１２〜１６に関し記載の通り構成さてよい。複数のネットワークデバイスの各々、当該ネットワークデバイスの複数のチップ、および／または当該ネットワークデバイスの複数のモジュール（例えば、複数のタイミングモジュール、データ通過モジュール、調整モジュール）はまた、そのネットワークデバイスのためのそれぞれのローカルクロック信号の、グローバルクロック信号との対応する遅延を認識してよい。複数のネットワークデバイスの各々、当該ネットワークデバイスの複数のチップ、および／または当該ネットワークデバイスの複数のモジュール（例えば、複数のタイミングモジュール、データ通過モジュール、調整モジュール）はまた、「隣接重み比率」を認識してよく、隣接重み比率とは、グローバルクロック信号と、同一ネットワーク内および／または同一リング上にある他の複数のネットワークデバイスのそれぞれのローカルクロック信号との間の時間遅延を指す。複数のネットワークデバイスの各々、当該ネットワークデバイスの複数のチップ、および／または当該ネットワークデバイスの複数のモジュール（例えば、複数のタイミングモジュール、データ通過モジュール、調整モジュール）は、対応するローカルクロック信号のロックを調整および維持するとき、これらの時間遅延を補正してよい。これは、それぞれのネットワークデバイスのタイミングモジュールを介してなされてよい。
【０１００】
一実施形態において、フレームまたはパケットが、同一リング上の複数のネットワークデバイス間で送信されているとき、本明細書に開示されるカットスルー方法が、当該複数のネットワークデバイスおよび／または同一のリング上にある複数の他のネットワークデバイスによって使用され、フレームまたはパケットを効率的に転送してよい。異なる複数のリング上にある複数のネットワークデバイス間でフレームまたはパケットが送信されているとき、ゲートウェイとして実行される対応するネットワークデバイスは、カットスルー方法を使用せずに、フレームまたはパケットを格納および転送してよい。これにより、複数のリング間での送信時に、フレームまたはパケットの送信タイミングのリタイミングが生じる。
【０１０１】
本明細書に開示の通り、ネットワークデバイスの各ポートは、ローカルクロック信号の立ち上りエッジに対応する独立Ｐｏｒｔ  ｔ０時間を有する。Ｐｏｒｔ  ｔ０時間は、そのポートの遅延時間およびグローバルクロック信号に基づいて生成される。各ポートは、対応するＰｏｒｔ  ｔ０時間においてＱｂｖテーブル処理を再開してよい。これは、グローバルクロック信号時間Ｇｌｏｂａｌ  ｔ０とＰｏｒｔ  ｔ０との間の時間を定義するポートごとのプログラマブル遅延レジスタによってサポートされる。各ポートのＱｂｖテーブルが使用され、そのポートのどのキューがオープンおよびクローズされるか（送信可能か、またはブロックされるか）、および、そのポートのキューがどのくらいの間オープンおよびクローズされるかを定義する。ポートの各Ｑｂｖテーブルは１６エントリをサポートしてよく、そこにおいて、各エントリは、キューごとのブロッキングビット、オープンまたはクローズ状態の保持時間、および単一のガードバンドビットを含む。ガードバンドビットは、対応するブロックビットが適用される前に、ポートのＱｂｖガードバンド値が定義された期間に適用される必要があることを示す。これは、テーブルサイズの低減に寄与し、ガードバンド中の小フレーム（またはパケット）送信利用をサポートする。
［ポート間のローカルクロックｔ０をスキューする］
【０１０２】
Ｑｂｖレジスタ空間（例えば、図９のメモリ３６０内）内のポートごとのプログラマブル遅延レジスタを使用して、ローカルクロックｔ０とＰｏｒｔ  ｔ０との間の時間を定義してよい。このアプローチは、ポートごとにローカルクロック信号が変更される必要性をなくし、ネットワークデバイスのすべてのポートに対し、単一のローカルクロックｔ０のみが使用されることを可能にする。
［Ｑｂｖ動作構成へリセットする段階］
【０１０３】
図１１は、Ｑｂｖまたは第１の時間クリティカルウィンドウを示すタイミングプロットを示す。リセット時間においては、すべてのキュー状態が１にリセットされ、それらキューの送信を可能にする。またリセット時間においては、ローカルクロックｔ０を定義するための立ち上りエッジが存在しないように、ローカルクロックｔ０が実行されていない。
【０１０４】
図５のネットワークデバイス２７０は、多数の方法を使用して動作されてよく、例示的な方法が図１２および図１５〜１６に提供されている。図１２には、時間認識ブロック構成方法が示されている。以下のタスクは図１〜１１の実装例に関し主に記載されているが、これらタスクは本開示の他の実装例に適用すべく、容易に修正可能である。また、以下のタスクは特定数の時間非認識ブロックシェーパ、時間認識ブロックシェーパ、およびフレームに関し記載されているが、それら各々の異なる数に対応すべく、これらタスクは容易に修正可能である。タスクは反復的に実行されてよい。
【０１０５】
方法は、３９８で開始してよい。４００で、タイミングモジュール２９０は、ローカルクロックｔ０を有効化し、ローカルクロックのレート（または周波数）を設定する。ローカルクロックｔ０時間は、図１１のラインＡによって表され、レートはラインＡとラインＢとの間の時間によって表される。トリガ生成（Ｔｒｉｇ  Ｇｅｎ）時間およびＴｒｉｇ  Ｇｅｎ量が、ローカルクロックｔ０時間およびレートの設定に使用される。複数のポートの各Ｑｂｖテーブルが各ｔ０で処理され（ローカルクロックは現在トグル中なので）、各Ｑｂｖテーブル内の第１のエントリがキュー状態１および時間０を定義するので、何も起こらない（対応するＱｂｖテーブルがリセットされて以来、修正されていない場合、何も起こらないはずなので）。
【０１０６】
４０２で、各Ｐｏｒｔ  ｔ０が定義される。Ｐｏｒｔ  ｔ０は、ローカルクロックｔ０からの予め定められた遅延に基づいて定義される。この遅延の一例が、図１１のラインＡとラインＣとの間の時間によって表わされる。タイミングモジュール２９０は、第１の時間クリティカルウィンドウの開始に対する予め定められた時間を設定し、ローカルクロックｔ０の時間およびガードバンドの長さを認識する。この情報に基づいて、式１によって提供されるように、タイミングモジュール２９０はポート遅延を判断してよい。
ポート遅延＝ローカルクロックｔ０＋第１のウィンドウの開始時間−ガードバンドの継続期間（式１）
【０１０７】
ガードバンドの継続期間とは、ポートから最大サイズフレーム（またはパケット）を送信するための時間に、ギャップ遅延をプラスした時間であり、その結果、新しいフレームまたはパケットの送信が開始済みでないと想定して、ポートは第１のウィンドウ（またはブロッキングウィンドウ）の最初においてアイドルである。ポート遅延とは、ガードバンドの開始を指すために使用されてよい。
【０１０８】
４０４で、ガードバンドはハードウェアで定義されてよい。時間クリティカルデータがポートをエグレスするとき、ポートが第１のウィンドウの開始においてアイドルであることを保証すべく、ガードバンドが使用される。輻輳を阻止するこの方法により、ネットワーク内の可能な限り低いレイテンシを可能にする。ポートがアイドルであることを保証するために、ガードバンドの終了前に、フレームの送信が完了可能でない限り、新しいフレームは、ポートからの送信開始を許容されてはならない。従って、ガードバンドの開始は、最大フレーム（またはパケット）サイズに基づいており、第１のウィンドウの開始の前である。１５２２バイトがＩＥＥＥタグフレームの最大サイズであるので、ネットワーク上の典型的な最大フレームサイズは１５２２バイトである。記載の例については、最大フレームサイズは１５２２バイトであるが、最大フレームサイズは任意の予め定められたサイズであってよい。ガードバンドのサイズはＴＸバイトでプログラムされ、その結果、ガードバンドはネットワークで使用される最大フレームサイズに容易に合致する。
【０１０９】
４０６で、ソフトブロックモードが有効にされる。ポート０〜６上のソフトブロックについて、ポート０〜６のキュー状態は０に設定され、ガードバンド（またはＧＢバイト）は１５２２バイトに設定される。このガードバンド設定により１から０に移動する任意のキュー状態ビットは、「ソフトブロック」を実行し、「ソフトブロック」は、ガードバンドの終了前に、フレームの送信が完了可能である限り、フレームがキューをエグレスするのを可能にする。
【０１１０】
ソフトブロックは、以下のタスク４０６Ａ〜４０６Ｄによって提供される通り、実現されてよい。４０６Ａおよびガードバンドの開始において、カウンタ（例えば、図８のカウンタモジュール３６２）が、ガードバンドの残り時間量（ＧＢＬｅｆｔ）および／またはガードバンドの継続期間（例えば、１５２２バイトまたは時間における１５２２バイトの同等のもの）と共に読み込まれる。対応するキュー状態がガードバンドの開始において１から０に変化する場合、対応するキューは、「ソフトブロック」キューとみなされる。
【０１１１】
４０６Ｂにおいて、すべての「ソフトブロック」キューについて、対応する行頭フレームのサイズがＧＢＬｅｆｔの現在の値と比較される。フレームのサイズがＧＢＬｅｆｔに等しいまたはそれ未満の場合、そのフレーム／キューは、スケジューラ（例えば、図５のタイマモジュール２９０または選択モジュール２９８）に対し、送信開始を可能性として考慮するものとして提示され得る。
【０１１２】
４０６Ｃで、ポートの速度に応じて、ＧＢＬｅｆｔ時間は、例えば以下のようにデクリメントされる。
ａ．１００個の８ｎｓクロックサイクルごとの１０Ｍｂｐで、ＧＢＬｅｆｔを１だけデクリメントする。
ｂ．１０個の８ｎｓクロックサイクルごとの１００Ｍｂｐｓで、ＧＢＬｅｆｔを１だけデクリメントする。
ｃ．１個の８ｎｓクロックサイクルごとの１Ｇｂｐｓで、ＧＢＬｅｆｔを１だけデクリメントする。
ｄ．１個の８ｎｓクロックサイクルごとの１０Ｇｂｐｓで、ＧＢＬｅｆｔを１０だけデクリメントする（ゼロクリップと共に）。
ｅ．ＧＢＬｅｆｔ＝０になるまで、タスク４０８に戻る。
【０１１３】
４０６Ｄで、ＧＢＬｅｆｔ＝０の場合、このポートへのカットスルー接続が許可される前に、２〜３のバイト時間（各バイト時間は１バイトを送信するための時間量である）が必要となる可能性がある。バイト時間の数（「予備のバイト」と称される）が判断されてよく、時間クリティカルウィンドウ（または第１のウィンドウ）の開始に進む前に、ガードバンド時間はこの予備のバイト数、持続（または拡張）されてよい。この予備時間とは、バイト時間合計と同一であってよい追加の遅延を指す。バイト時間の数に基づいて、バイト時間がガードバンドの継続期間に追加されるかどうか、またはブロッキング前に、拡張期間を提供するための別のフィールドが使用されるかについて判断がなされる。換言すると、対応するテーブルが完全な遅延（比較のための予備時間を加えたフレームサイズ）または単なるフレームサイズのみを含むかについて判断がなされる。完全な遅延が存在する場合、タイミングモジュールは、フレームサイズ比較のための「予備」または完全な遅延を減算する。この時点において、ガードバンドは定義されているが、Ｑｂｖテーブルは各ポートｔ０の開始においてアクセスされているものの、Ｑｂｖ動作はまだアクティブ化されないように、ガードバンドはアクセスされていない。
【０１１４】
４０８で、時間クリティカルウィンドウが定義される。ポートでのＱｂｖ動作を有効にする最後の段階は、１または複数の時間クリティカルウィンドウを定義することである。４０８Ａで、タイミングモジュール２９０は、ウィンドウを定義するために、いくつの状態が必要かを判断してよい。単純なウィンドウは、２つの状態（オープニング状態およびクロージング状態）を有する。４０８Ｂで、ポートテーブルは最後の状態から第１の状態まで、より高いエントリ番号を先に読み込まれる。４０８Ｃで、いったん第１のエントリが読み込まれると、Ｑｂｖ動作（または時間認識ブロック動作）がポートで自動的に開始する。４０８Ｄで、ポートでのＱｂｖ動作は、第１のエントリを既定値／リセット値で再初期化することによって、無効化されてよく、この場合、キュー状態は１に等しく、ガードバンドは０に等しく、時間クリティカルウィンドウの継続期間は０である。
［クリティカルフレームのリタイミングを持つ非カットスルーブリッジ］
【０１１５】
図１１に関し上記した例は、キュー７にマッピングされた時間クリティカルフレームが、これらの時間クリティカルフレームが既にキュー７に格納されている限り、第１のウィンドウの開始において、ポートをエグレスするためにリタイミング可能である一例を示す。これは、格納および転送アプローチと呼ばれる。このアプローチはレイテンシをより追加する可能性はあるものの、大規模ネットワークが、特定の時点において、フレームをリタイミング可能とするのに有用である。
［クリティカルフレームのカットスルー‐最低レイテンシ］
【０１１６】
より低いレイテンシを得るために、キュー７にカットスルーアプローチを使用可能である。図１１中の構成が使用される場合、時間クリティカルフレームはリタイミング不可能である。というのは、カットスルーポイントは、第１のウィンドウの開始より後に生じる必要があり、さもなければフレームは格納および転送される。これがなされる場合、ウィンドウが小さければ、フレームはウィンドウ内への到達が遅すぎて送信されない場合がある。これらのシステムのうちの１つにおいて、適切なタイミングを得ることは複雑となる可能性がある。時間クリティカルフレームのリタイミングはカットスルーでは有用ではないので、図１２を参照して記載される代替的なアプローチが使用されてよい。
第１のウィンドウとのＱｂｖ‐カットスルーモード
【０１１７】
図１３は、カットスルーモード用である点を除き、図１１のタイミングプロットと類似するタイミングプロットを示す。このモードの間、キュー７は全くブロックされない。これは、以下のようにＱｂｖテーブルを読み込むことによって実現される。ポートのガードバンドエントリは、キュー７がオープンであり、キュー０〜６がソフトブロックされている。ポートのエントリ１は、キュー０〜７が、Ｑｂｖテーブルのサイクルの終了までオープンである。ポートのエントリ０は、キュー０〜６がクローズであり、キュー７がオープンである。
［複数のウィンドウの構成］
【０１１８】
図１４は、複数のＱｂｖウィンドウを示すタイミングプロットを示す。Ｑｂｖテーブル内のポートＱｂｖエントリは、ローカルクロック信号２９１のサイクルごとに複数のウィンドウをサポートするよう構成可能である。より多くのウィンドウをローカルクロックサイクルに適合させるべく、レートが増加される。図１４では、第１のウィンドウが異なるパターンで示されており、ここではキュー６がキュー０〜５の前にオープンされる。これを実現するために、予備のＱｂｖテーブルエントリが提供される。スケジューラが厳格モードで設定された場合、これは必要でなくてよい。第２および第３のウィンドウが示されている。第３のウィンドウは次のローカルクロックサイクルに伸びているが、第２のＣ１ラインでは早期にカットオフされるよう示されている。第２のＣ１ラインでは、Ｑｂｖテーブル内の第１のエントリが処理され（Ｑｂｖテーブルの処理が前にどこで行われたかに関わらず）、その後、ガードバンドが続き、第１のウィンドウが開始する。この場合、いずれのキュー状態も１から０に推移しないので、ガードバンドは無用であり、これは「ソフトブロック」を有効にする。第３の（または重複する）ウィンドウは誤差である。結果的に、第３のウィンドウの後、ガードバンドに訂正がなされる必要がない。後続の第３のウィンドウのエッジが訂正される。
【０１１９】
ポートテーブルの一部である上記のポート遅延時間は、１または複数のポートレジスタ内に格納されてよい。各ポート遅延時間に対し、それぞれのポートレジスタが提供されてよい。ポート遅延レジスタは、これらのレジスタ内に格納されたポート遅延に基づいて、ポートの再開始時間の間接的な調整を可能にする。ポート遅延は予め定められてよく、対応するネットワークデバイスの開示時に読み込まれてよい。ポートレジスタは読み取り、書き込みおよびリセットレジスタであってよい。ポート遅延時間の各々は、ローカルクロックｔ０およびそれぞれのポートｔ０間のそれぞれの遅延を示す（ここで、ポートｔ０は、ポートがそれぞれのＱｂｖテーブルに従い、処理を開始する時間である）。
【０１２０】
ポートごとに制御レジスタが提供されてよく、メモリ３６０内に格納されてよい。制御レジスタによって提供される情報が下の表１に示されている。制御レジスタは、更新フィールド、ポインタフィールド、およびキュー状態フィールドを含む。更新フィールドは自己クリア（ＳＣ）フィールドである。ポインタフィールドは、読み取り、書き込み、およびリセット（ＲＷＲ）フィールドである。キュー状態フィールドは、読み取り、書き込み、およびセット（ＲＷＳ）フィールドである。
【表１】
0006575772.tif 000002
【０１２１】
以下の表２は、メモリ３６０内に格納されてよいデータレジスタの一例である。
【表２】
0006575772.tif 000003
【０１２２】
ガードバンドレジスタもメモリ３６０内に格納されてよい。ガードバンドレジスタ内に格納されたガードバンドバイトが最初に処理されてよく、その後、キュー状態および／またはデータレジスタのウィンドウ時間が適用される。ガードバンドバイトは、フレームがガードバンド中およびクリティカルタイムウィンドウの前に送信可能であるかを判断するために使用される。ポートのキューにある行頭フレームのサイズおよび残りのガードバンド期間との間でリアルタイムのハードウェア比較が実行され、１または複数のフレームが送信可能であるかを判断してよい。ガードバンドのソフトブロック継続期間（または残りの部分）に適合するキュー内のフレームのうち最優先のものが最初に送信される。マグニチュードコンパレータが使用され、送信可能な、最も高い優先度を有するフレームを判断してよい。
【表３】
0006575772.tif 000004
【０１２３】
図１５には、ローカルクロックロッキング方法が示されている。以下のタスクは図１〜１４の実装例に関し主に記載されているが、これらタスクは本開示の他の実装例に適用すべく、容易に修正可能である。また、以下のタスクは特定数の時間非認識ブロックシェーパ、時間認識ブロックシェーパ、およびフレームに関し記載されているが、それら各々の異なる数に対応すべく、方法は容易に修正可能である。タスクは反復的に実行されてよい。
【０１２４】
方法は５００で開始してよい。５０２で、タイミングモジュール２９０はローカルクロックジェネレータ２９２を介し、ローカルクロック信号を生成し、これはグローバルクロック信号に基づいてよい。５０４で、上記の通り、トリガ信号がＰＴＰモジュール４５６によって生成されてよい。５０６で、レジスタモジュール４５８はカウンタ４６９を使用して、ローカルクロック信号の立ち上がりエッジをキャプチャする。これは、５０４で生成されたトリガ信号に基づいてよく、および／またはグローバルクロック信号に基づいてよい。これには、立ち上りエッジが生じる時間のタイムスタンプを記録することが含まれてよい。
【０１２５】
５０８で、調整モジュール４６０は、立ち上りエッジがグローバルクロック信号の対応する立ち上がりエッジの予め定められた範囲内で生じたかを判断するために、比較ウィンドウの開始時間および終了時間を判断してよい。当該ウィンドウの開始時間および終了時間は、グローバルクロック信号の立ち上りエッジに基づいて判断されてよい。
【０１２６】
５１０で、調整モジュール４６０および／またはタイミングモジュール２９０は、ローカルクロック信号の立ち上りエッジとグローバルクロック信号の立ち上りエッジとの間の時間の差、ビット数、および／またはバイト数を判断してよい。５１２で、調整モジュール４６０および／またはタイミングモジュール２９０は、ローカルクロック信号の次の立ち上がりエッジが比較ウィンドウの中心に収まり、グローバルクロック信号の次の立ち上がりエッジと同時になるように、ローカルクロック信号のタイミングを調整する。比較ウィンドウの例が図１に示されている。比較ウィンドウの幅（またはサイズ）、開始時間および終了時間は調整されてよく、その中心がグローバルクロック信号のエッジに置かれる。この方法は主に立ち上りエッジに関し記載されているが、当該方法はクロック信号の立ち下りエッジがモニタリングおよび／または調整されるように変更されてよい。タスク５０４が、タスク５１２の後に実行されてよい。
【０１２７】
図１６には、ソフトブロック方法が示されている。以下のタスクは図１〜１５の実装例に関し主に記載されているが、これらタスクは本開示の他の実装例に適用すべく、容易に修正可能である。また、以下のタスクは特定数の時間非認識ブロックシェーパ、時間認識ブロックシェーパ、およびフレームに関し記載されているが、それら各々の異なる数に対応すべく、方法は容易に修正可能である。タスクは反復的に実行されてよい。
【０１２８】
方法は５５０で開始されてよい。５５２で、フレームがキュー（例えば、キュー３８２）で受信される。５５４で、キュー状態ビットがキューゲート出力信号を介して、時間認識ブロックシェーパ（例えば、時間認識ブロックシェーパ３８０）で受信される。５５６で、キュー内の行頭フレームの存在およびサイズ示す記述子ＳｉｚｅＦ／Ｐが受信される。５５８で、サイズ判断モジュール（例えば、サイズ判断モジュール４０４）が、ソフトブロック継続期間または、ビットおよび／またはバイトでのガードバンドの残り時間ＳｉｚｅＳＢを判断する。
【０１２９】
５６０で、比較モジュール（例えば、比較モジュール４０２）が、ＳｉｚｅＦ／ＰがＳｉｚｅＳＢ未満またはそれに等しいかを判断する。ＳｉｚｅＦ／ＰがＳｉｚｅＳＢ未満またはそれに等しい場合、タスク５６２が実行され、そうでない場合、タスク５６６が実行される。５６２で、データ通過モジュール（例えば、データ通過モジュール３８６）が、少なくとも対応する、およびこれから来るクリティカルタイムウィンドウの後まで、行頭フレームの送信をブロックする。
【０１３０】
５６６で、ロジックモジュール（例えば、ロジックモジュール３８４、４００）は、キュー状態出力信号のキュー状態ビットが１で、行頭フレームがキュー３８２内に存在するかを判断する。タスク５６６はタスク５６０の前に実行されてよい。図示の通り、キュー状態ビットが１で、行頭フレームが存在する場合、タスク５６８が実行され、そうでない場合、タスク５５８が実行されてよい。５６８で、データ通過モジュールは、ガードバンド中およびクリティカルタイムウィンドウの前に、キューおよび／または対応するネットワークデバイスからの行頭フレームの送信を許可する。別のキューの別のフレームは、クリティカルタイムウィンドウ中に送信されてよい。方法は、タスク５６４で、タスク５６２および５６８の後に終了してよい。
【０１３１】
図１２および図１５〜１６の上記タスクは例示を意図しており、これらタスクは適用に応じて、順次的、同期的、同時的、連続的、重複する期間中に、または異なる順序で実行されてよい。また、実装および／またはイベントの順に応じて、これらタスクのうちの任意のものが実行されなくてよく、またはスキップされてよい。
【０１３２】
上記の開示技術は、ネットワークのエンドステーション間のレイテンシを最小化すべく、設計、管理、および制御された非恣意的ネットワークを含む。
【０１３３】
本開示に記載の無線通信は、ＩＥＥＥ規格８０２．１１‐２０１２、ＩＥＥＥ規格８０２．１６‐２００９、ＩＥＥＥ規格８０２．２０‐２００８、および／またはＢｌｕｅｔｏｏｔｈ（登録商標）Ｃｏｒｅ仕様書ｖ４．０に完全または部分的に準拠して実行され得る。様々な実装において、Ｂｌｕｅｔｏｏｔｈ（登録商標）Ｃｏｒｅ仕様書ｖ４．０は、Ｂｌｕｅｔｏｏｔｈ（登録商標）Ｃｏｒｅ仕様書補遺２、３、または４のうちの１または複数により修正されることがある。様々な実装において、ＩＥＥＥ８０２．１１‐２０１２は、ドラフトＩＥＥＥ規格８０２．１１ａｃ、ドラフトＩＥＥＥ規格８０２．１１ａｄ、および／またはドラフトＩＥＥＥ規格８０２．１１ａｈにより補足され得る。
【０１３４】
前述の記載は本質的に例示にすぎず、本開示、その用途または使用法を限定する意図は一切ない。本開示の広範な教示は、様々な形態で実装可能である。従って、本開示は具体例を含むものの、図面、明細書および以降の特許請求の範囲を検討すると、他の修正形態が自明であるので、本開示の真の範囲はそのように限定されるべきではない。本明細書で使用されるＡ、Ｂ、およびＣのうちの少なくとも１つという表現は、非排他的論理ＯＲを使用して、論理（ＡまたはＢまたはＣ）を意味するものと解釈されるべきであり、「少なくとも１つのＡ、少なくとも１つのＢ、および、少なくとも１つのＣ」を意味するものと解釈されるべきではない。方法における１または複数の段階は、本開示の原理を変更することなく異なる順序で（または同時に）実行可能であることが理解されるべきである。
【０１３５】
本明細書においては、第１のキュー、第１のタイミングモジュール、調整モジュール、レジスタモジュール、およびブロックシェーパを含むネットワークデバイスが開示される。第１のキューは、フレームを格納するよう構成される。第１のタイミングモジュールは、ローカルクロック信号を生成するよう構成される。調整モジュールは、（ｉ）グローバルクロック信号の第１のエッジに基づいて、グローバルクロック信号の第２のエッジの予期時間、および（ｉｉ）グローバルクロック信号の第２のエッジの予期時間の中心に置かれるウィンドウを判断するよう構成される。レジスタモジュールは、ローカルクロック信号の第１のエッジの時間をキャプチャするよう構成される。調整モジュールは、ローカルクロック信号の第１のエッジのキャプチャされた時間およびグローバルクロック信号の第１のエッジの時間に基づいて、ローカルクロック信号の第２のエッジをウィンドウの中心に置くための調整信号を生成するよう構成される。ブロックシェーパは、ローカルクロック信号の第２のエッジの調整後、ローカルクロック信号のタイミングに基づいて、ネットワークデバイスからのフレームの送信をブロックするよう構成される。
【０１３６】
他の特徴において、ネットワークデバイスはさらに複数のポートおよびメモリを含む。複数のポートの各々は、（ｉ）複数のキューと、（ｉｉ）エグレスモジュールと、（ｉｉｉ）複数のキュー状態テーブルのうちのそれぞれのものと、を含む。複数のキュー状態テーブルの各々は、複数のエントリを含む。複数のエントリの各々は、対応するポートの複数のキューのうちのそれぞれのものの状態を含む。複数のポートは、第１のポートを含む。第１のポートは、第１のキューを含む。複数のエグレスモジュールの各々は、複数のキュー状態テーブルのうちの対応するものにある複数のエントリを循環するよう構成される。メモリは、ポートテーブルを格納するよう構成される。ポートテーブルは、複数のポートのそれぞれに対する複数の遅延を含む。複数のエグレスモジュールの各々は、それぞれの遅延に基づいて、対応するポートの複数のキューの循環を開始するよう構成される。
【０１３７】
他の特徴において、第１のポートのエグレスモジュールは、ポートテーブル内の対応する遅延に基づいて、ローカルクロック信号のエッジから遅延させ、複数のキュー状態テーブルのうちの対応するものにある複数のエントリを循環するよう構成される。第１のポート以外の複数のポートのエグレスモジュールの各々は、ポートテーブル内の対応する複数の遅延に基づいて、複数のポートのうちの連続する前のものによって行われる動作から遅延させ、複数のキュー状態テーブルのうちの対応するものにある複数のエントリを循環するよう構成される。
【０１３８】
他の特徴において、第１のタイミングモジュールまたは調整モジュールは、複数のテーブルにわたる、複数のポートのサイクル開始時間を調整すべく、ローカルクロック信号のタイミングを調整するよう構成される。他の特徴において、第１のタイミングモジュールまたは調整モジュールは、ポートテーブルの複数の遅延を調整することなく、ローカルクロック信号のタイミングを調整するよう構成される。
【０１３９】
他の特徴において、第１のタイミングモジュールまたは調整モジュールは、複数のポートの複数のキュー状態テーブルの複数の継続期間または複数の遅延を調整することなく、ローカルクロック信号のタイミングを調整するよう構成される。他の特徴において、調整モジュールは、ローカルクロック信号の第１のエッジのキャプチャされた時間がグローバルクロック信号の第１のエッジの予め定められた時間範囲内にない場合、ローカルクロック信号のタイミングの調整を控える、およびローカルクロック信号の第１のエッジのキャプチャされた時間がグローバルクロック信号の第１のエッジの予め定められた時間範囲内にある場合、ローカルクロック信号の第２のエッジがウィンドウの中心に置かれるように、ローカルクロック信号のタイミングを調整する、ように構成される。
【０１４０】
他の特徴において、タイミングモジュールは、グローバルクロック信号に基づいて、ローカルクロック信号を生成するよう構成される。他の特徴において、ネットワークデバイスはグローバルクロック信号に基づいてトリガ信号を生成するよう構成された第２のタイミングモジュールをさらに含む。レジスタモジュールは、トリガ信号に基づいて、ローカルクロック信号の第１のエッジの時間をキャプチャするよう構成される。
【０１４１】
他の特徴において、レジスタモジュールは、グローバルクロック信号に基づいて、ローカルクロック信号の第１のエッジの時間をキャプチャするよう構成される。他の特徴において、ネットワークデバイスは、テーブルを格納するよう構成されたメモリをさらに含む。テーブルは、複数の遅延時間を含む。複数の遅延時間は、ネットワークデバイスの複数のポートのそれぞれのためのものである。複数のポートの動作タイミングは、（ｉ）複数の遅延時間、および（ｉｉ）ローカルクロック信号に基づく。
【０１４２】
他の特徴において、複数の遅延時間は、グローバルクロック信号またはローカルクロック信号のエッジからのそれぞれの遅延量を指す。他の特徴において、ネットワークデバイスは、テーブルを格納するよう構成されたメモリであって、テーブルは複数のエントリを含み、複数の援護地の各々は（ｉ）複数のキューのうちのそれぞれのものに対する状態、および（ｉｉ）対応する状態にとどまる継続時間を含む、メモリと、テーブルの複数のエントリを循環するよう構成されたエグレスモジュールと、をさらに含む。ブロックシェーパは、複数のエントリのうちの現在のものに基づいて、フレームがネットワークデバイスから送信されることをブロックするよう構成される。
【０１４３】
他の特徴において、ネットワークデバイスはメモリおよびエグレスモジュールをさらに含む。メモリは、テーブルを格納するよう構成される。テーブルは複数のエントリを含み、複数のエントリの各々は（ｉ）複数のキューのうちのそれぞれのものに対する状態、および（ｉｉ）対応するキューからの送信を許可する前に待機する遅延時間を含む。エグレスモジュールは、テーブルの複数のエントリを循環するよう構成される。ブロックシェーパは、複数のエントリのうちの現在のものに基づいて、フレームがネットワークデバイスから送信されることをブロックするよう構成される。
【０１４４】
他の特徴において、第１のキュー、第１のタイミングモジュール、調整モジュール、レジスタモジュール、ブロックシェーパ、複数のポートおよびメモリを含むネットワークデバイスが提供される。第１のキューは、フレームを格納するよう構成される。第１のタイミングモジュールは、ローカルクロック信号を生成するよう構成される。調整モジュールは、（ｉ）グローバルクロック信号の第１のエッジに基づいて、グローバルクロック信号の第２のエッジの予期時間、および（ｉｉ）グローバルクロック信号の第２のエッジの予期時間の中心に置かれるウィンドウを判断するよう構成される。レジスタモジュールは、ローカルクロック信号の第１のエッジの時間をキャプチャするよう構成される。調整モジュールは、ローカルクロック信号の第１のエッジのキャプチャされた時間およびグローバルクロック信号の第１のエッジの時間に基づいて、ローカルクロック信号の第２のエッジをウィンドウの中心に置くための調整信号を生成するよう構成される。ブロックシェーパは、ローカルクロック信号の第２のエッジの調整後、ローカルクロック信号のタイミングに基づいて、ネットワークデバイスからのフレームの送信をブロックするよう構成される。複数のポートの各々は、（ｉ）複数のキューと、（ｉｉ）エグレスモジュールと、（ｉｉｉ）複数のキュー状態テーブルのうちのそれぞれものと、を含み、複数のキュー状態テーブルの各々は複数のエントリを含み、複数のエントリの各々は対応するポートの複数のキューのうちのそれぞれのものの状態を含み、複数のポートは第１のポートを含み、第１のポートは第１のキューを含み、複数のエグレスモジュールの各々は複数のキュー状態テーブルのうちの対応するものにある複数のエントリを循環するよう構成される。メモリはポートテーブルを格納するよう構成され、ポートテーブルは複数のポートのそれぞれに対する複数の遅延を含む。
【０１４５】
複数のエグレスモジュールの各々は、それぞれの遅延に基づいて、対応するポートの複数のキューの循環を開始するよう構成される。第１のポートのエグレスモジュールは、ポートテーブル内の対応する遅延に基づいて、ローカルクロック信号のエッジから遅延させ、複数のキュー状態テーブルのうちの対応するものにある複数のエントリを循環するよう構成される。第１のポート以外の複数のポートの複数のエグレスモジュールの各々は、ポートテーブル内の対応する複数の遅延に基づいて、複数のポートのうちの連続する前のものによって行われる動作から遅延させ、複数のキュー状態テーブルのうちの対応するものにある複数のエントリを循環するよう構成される。
【０１４６】
他の特徴において、ネットワークデバイスを動作する方法が提供される。ネットワークデバイスは第１のキューを含む。方法は、第１のキュー内にフレームを格納する段階と、ローカルクロック信号を生成する段階と、（ｉ）グローバルクロック信号の第１のエッジに基づいて、グローバルクロック信号の第２のエッジの予期時間、および（ｉｉ）グローバルクロック信号の第２のエッジの予期時間の中心に置かれるウィンドウを判断する段階と、ローカルクロック信号の第１のエッジの時間をキャプチャする段階と、ローカルクロック信号の第１のエッジのキャプチャされた時間およびグローバルクロック信号の第１のエッジの時間に基づいて、ローカルクロック信号の第２のエッジをウィンドウの中心に置くための調整信号を生成する段階と、ローカルクロック信号の第２のエッジを調整する段階の後、ローカルクロック信号のタイミングに基づいて、ネットワークデバイスからのフレームの送信をブロックする段階と、を備える。
【０１４７】
他の特徴において、ネットワークデバイスは複数のポートを含み、複数のポートの各々は（ｉ）複数のキューと、（ｉｉ）エグレスモジュールと、（ｉｉｉ）複数のキュー状態テーブルのうちのそれぞれものと、を含み、複数のキュー状態テーブルの各々は複数のエントリを含み、複数のエントリの各々は対応するポートの複数のキューのうちのそれぞれのものの状態を含み、複数のポートは第１のポートを含み、第１のポートは第１のキューを含む。方法は、複数のエグレスモジュールの各々を介し、複数のキュー状態テーブルのうちの対応するものにある複数のエントリを循環する段階であって、ポートテーブルは複数のポートのそれぞれに対する複数の遅延を含む、段階と、ポートテーブルを格納する段階であって、複数のエグレスモジュールの各々を介し、およびそれぞれの遅延に基づいて、対応するポートの複数のキューの循環を開始する段階と、をさらに含む。
【０１４８】
他の特徴において、方法は、第１のポートのエグレスモジュールを介して、およびポートテーブル内の対応する遅延に基づいて、ローカルクロック信号のエッジから遅延させる段階であって、複数のキュー状態テーブルのうちの対応するものにある複数のエントリを循環する、段階と、第１のポート以外の複数のポートの複数のエグレスモジュールの各々を介して、およびポートテーブル内の対応する複数の遅延に基づいて、複数のポートのうちの連続する前のものによって行われる動作から遅延させる段階であって、複数のキュー状態テーブルのうちの対応するものにある複数のエントリを循環する、段階と、をさらに含む。
【０１４９】
他の特徴において、方法は、複数のテーブルにわたる、複数のポートのサイクル開始時間を調整すべく、ローカルクロック信号のタイミングを調整する段階をさらに含む。他の特徴において、方法は、ポートテーブルの複数の遅延を調整することなく、ローカルクロック信号のタイミングを調整する段階をさらに含む。他の特徴において、方法は、複数のポートの複数のキュー状態テーブルの複数の継続期間または複数の遅延を調整することなく、ローカルクロック信号のタイミングを調整する段階をさらに含む。
【０１５０】
他の特徴において、方法は、ローカルクロック信号の第１のエッジのキャプチャされた時間がグローバルクロック信号の第１のエッジの予め定められた時間範囲内にない場合、ローカルクロック信号のタイミングの調整を控える段階と、ローカルクロック信号の第１のエッジのキャプチャされた時間がグローバルクロック信号の第１のエッジの予め定められた時間範囲内にある場合、ローカルクロック信号の第２のエッジがウィンドウの中心に置かれるように、ローカルクロック信号のタイミングを調整する段階と、をさらに含む。
【０１５１】
他の特徴において、方法はグローバルクロック信号に基づいてローカルクロック信号を生成する段階をさらに含む。他の特徴において、方法は、グローバルクロック信号に基づいて、トリガ信号を生成する段階をさらに含み、ローカルクロック信号の第１のエッジの時間は、トリガ信号に基づいてキャプチャされる。他の特徴において、ローカルクロック信号の第１のエッジの時間は、グローバルクロック信号に基づいてキャプチャされる。
【０１５２】
他の特徴において、方法はテーブルを格納する段階であって、テーブルは複数の遅延時間を含み、複数の遅延時間はネットワークデバイスの複数のポートのそれぞれのためのものである、段階と、複数のポートの動作タイミングを（ｉ）複数の遅延時間、および（ｉｉ）ローカルクロック信号に基づいて制御する段階と、をさらに含む。他の特徴において、複数の遅延時間は、グローバルクロック信号またはローカルクロック信号のエッジからのそれぞれの遅延量を指す。
【０１５３】
他の特徴において、方法はテーブルを格納する段階であって、テーブルは複数のエントリを含み、複数のエントリの各々が（ｉ）複数のキューのうちのそれぞれのものに対する状態、および（ｉｉ）対応する状態にとどまる継続時間を含む、段階と、ネットワークデバイスのエグレスモジュールを介し、テーブルの複数のエントリを循環する段階と、複数のエントリのうちの現在のものに基づいて、フレームがネットワークデバイスから送信されることをブロックする段階と、をさらに含む。
【０１５４】
他の特徴において、方法はテーブルを格納する段階であって、テーブルは複数のエントリを含み、複数のエントリの各々が（ｉ）複数のキューのうちのそれぞれのものに対する状態、および（ｉｉ）対応するキューからの送信を許可する前に待機する遅延時間を含む、段階と、ネットワークデバイスのエグレスモジュールを介し、テーブルの複数のエントリを循環する段階と、複数のエントリのうちの現在のものに基づいて、フレームがネットワークデバイスから送信されることをブロックする段階と、をさらに含む。
【０１５５】
以下の定義を含め、本願においては、用語「モジュール」または用語「コントローラ」は、用語「回路」と置換されてよい。用語「モジュール」は、特定用途向け集積回路（ＡＳＩＣ）、デジタル、アナログ、若しくは混成アナログ／デジタルディスクリート回路、デジタル、アナログ、若しくは混成アナログ／デジタル集積回路、組み合わせ論理回路、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、コードを実行する（共有、専用、またはグループの）プロセッサ回路、プロセッサ回路によって実行されるコードを格納する（共有、専用、またはグループの）メモリ回路、説明された機能を提供する他の好適なハードウェアコンポーネント、またはシステムオンチップ等、上記の一部または全部の組み合わせを指してよい、またはそれらの一部であってよい、またはそれらを含んでよい。
【０１５６】
モジュールは、１または複数のインタフェース回路を含んでよい。いくつかの例において、インタフェース回路は、ローカルエリアネットワーク（ＬＡＮ）、インターネット、ワイドエリアネットワーク（ＷＡＮ）、またはそれらの組み合わせに接続される有線インタフェースまたは無線インタフェースを含んでよい。本開示の任意の特定のモジュールの機能は、インタフェース回路を介して接続される複数のモジュール間で分散されてよい。例えば、複数のモジュールは負荷分散を可能にしてよい。さらなる例において、サーバ（リモートまたはクラウドとしても知られる）モジュールは、クライアントモジュールの代わりにいくつかの機能を実現してよい。
【０１５７】
上記で使用されるコードという用語は、ソフトウェア、ファームウェアおよび／またはマイクロコードを含んでよく、プログラム、ルーチン、関数、クラス、データ構造および／またはオブジェクトを指してよい。共有プロセッサ回路という用語は、複数のモジュールからの一部のコードまたは全部のコードを実行する単一のプロセッサ回路を包含する。グループプロセッサ回路という用語は、複数の追加のプロセッサ回路と組み合わせて、１または複数のモジュールからの一部のコードまたは全部のコードを実行するプロセッサ回路を包含する。複数のプロセッサ回路という言及は、個別のダイ上の複数のプロセッサ回路、単一のダイ上の複数のプロセッサ回路、単一のプロセッサ回路の複数のコア、単一のプロセッサ回路の複数のスレッド、または上記の組み合わせを包含する。共有メモリ回路という用語は、複数のモジュールからの一部のコードまたは全部のコードを格納する単一のメモリ回路を包含する。グループメモリ回路という用語は、複数の追加メモリと組み合わせて、１または複数のモジュールからの一部のコードまたは全部のコードを格納するメモリ回路を包含する。
【０１５８】
メモリ回路という用語は、コンピュータ可読媒体という用語のサブセットである。本明細書で使用されるコンピュータ可読媒体という用語は、媒体（搬送波上等）を介して伝播される一時的な電気信号または電磁信号を包含しない。コンピュータ可読媒体という用語は従って、有形および非一時的なものとみなされてよい。非一時的で有形なコンピュータ可読媒体の非限定的な例としては、不揮発性メモリ回路（フラッシュメモリ回路、消去可能プログラマブルリードオンリメモリ回路、またはマスクリードオンリメモリ回路等）、揮発性メモリ回路（スタティックランダムアクセスメモリ回路またはダイナミックランダムアクセスメモリ回路等）、磁気記憶媒体（アナログ若しくはデジタル磁気テープまたはハードディスクドライブ等）、および光記憶媒体（ＣＤ、ＤＶＤ、またはブルーレイディスク等）である。
【０１５９】
本願に記載の装置および方法は、複数のコンピュータプログラム中に具現化される１または複数の特定の機能を実行するよう汎用コンピュータを構成することによって作成される専用コンピュータによって部分的または完全に実装されてよい。上記の機能ブロック、フローチャートコンポーネント、および他の要素は、熟練技術者またはプログラマの日常業務によってコンピュータプログラムに変換可能なソフトウェア仕様として機能する。
【０１６０】
コンピュータプログラムは、少なくとも１つの非一時的な、有形のコンピュータ可読媒体上に格納される複数のプロセッサで実行可能な命令を含む。コンピュータプログラムはまた、格納されたデータを含んでよく、または格納されたデータに依存してよい。コンピュータプログラムは、専用コンピュータのハードウェアとやり取りする基本入出力システム（ＢＩＯＳ）、専用コンピュータの特定のデバイスとやり取りするデバイスドライバ、１または複数のオペレーティングシステム、ユーザアプリケーション、バックグラウンドサービス、バックグラウンドアプリケーション等を包含してよい。
【０１６１】
コンピュータプログラムは、（ｉ）ＨＴＭＬ（ハイパーテキストマークアップ言語）若しくはＸＭＬ（拡張マークアップ言語）等の解析されるべき記述テキスト、（ｉｉ）アセンブリコード、（ｉｉｉ）コンパイラによってソースコードから生成されるオブジェクトコード、（ｉｖ）インタプリタによる実行のためのソースコード、（ｖ）ジャストインタイムコンパイラによるコンパイルおよび実行のためのソースコード等を含んでよい。例示にすぎないが、ソースコードはＣ、Ｃ＋＋、Ｃ＃、Ｏｂｊｅｃｔｉｖｅ  Ｃ、Ｈａｓｋｅｌｌ、Ｇｏ、ＳＱＬ、Ｒ、Ｌｉｓｐ、Ｊａｖａ（登録商標）、Ｆｏｒｔｒａｎ、Ｐｅｒｌ、Ｐａｓｃａｌ、Ｃｕｒｌ、ＯＣａｍｌ、Ｊａｖａｓｃｒｉｐｔ（登録商標）、ＨＴＭＬ５、Ａｄａ、ＡＳＰ（ａｃｔｉｖｅ  ｓｅｒｖｅｒ  ｐａｇｅｓ），ＰＨＰ、Ｓｃａｌａ、Ｅｉｆｆｅｌ、Ｓｍａｌｌｔａｌｋ、Ｅｒｌａｎｇ、Ｒｕｂｙ、Ｆｌａｓｈ（登録商標）、Ｖｉｓｕａｌ  Ｂａｓｉｃ（登録商標）、Ｌｕａ、およびＰｙｔｈｏｎ（登録商標）を含む言語の構文を使用して記述されてよい。
【０１６２】
特許請求の範囲に記載された要素はいずれも、要素が明示的に「ｍｅａｎｓ  ｆｏｒ」という文言を使用して記載されていない限り、または「ｏｐｅｒａｔｉｏｎ  ｆｏｒ」若しくは「ｓｔｅｐ  ｆｏｒ」という文言を使用する方法クレームの場合を除き、米国特許法第１１２条（ｆ）の意味におけるミーンズプラスファンクション要素を意図していない。
（項目１）
フレームを格納するための第１のキューと、
ローカルクロック信号を生成するための第１のタイミングモジュールと、
（ｉ）グローバルクロック信号の第１のエッジに基づいて、前記グローバルクロック信号の第２のエッジの予期時間、および（ｉｉ）前記グローバルクロック信号の前記第２のエッジの前記予期時間の中心に置かれるウィンドウを判断するための調整モジュールと、
前記ローカルクロック信号の第１のエッジの時間をキャプチャするためのレジスタモジュールであって、前記調整モジュールは前記ローカルクロック信号の前記第１のエッジの前記キャプチャされた時間および前記グローバルクロック信号の前記第１のエッジの前記時間に基づいて、前記ローカルクロック信号の第２のエッジを前記ウィンドウの中心に置くための調整信号を生成する、レジスタモジュールと、
前記ローカルクロック信号の前記第２のエッジの調整後、前記ローカルクロック信号のタイミングに基づいて、ネットワークデバイスからの前記フレームの送信をブロックするためのブロックシェーパと、を備える、ネットワークデバイス。
（項目２）
複数のポートであって、前記複数のポートの各々は（ｉ）複数のキューと、（ｉｉ）エグレスモジュールと、（ｉｉｉ）複数のキュー状態テーブルのうちのそれぞれのものと、を含み、前記複数のキュー状態テーブルの各々は複数のエントリを含み、前記複数のエントリの各々は対応する前記ポートの前記複数のキューのうちのそれぞれのものの状態を含み、前記複数のポートは第１のポートを含み、前記第１のポートは前記第１のキューを含み、
前記エグレスモジュールの各々は前記複数のキュー状態テーブルのうちの対応するものにある前記複数のエントリを循環する、複数のポートと、
ポートテーブルを格納するためのメモリであって、前記ポートテーブルは前記複数のポートのそれぞれに対する複数の遅延を含み、
前記エグレスモジュールの各々はそれぞれの前記遅延に基づいて、対応する前記ポートの前記複数のキューの循環を開始する、メモリと、をさらに備える、項目１に記載のネットワークデバイス。
（項目３）
前記第１のポートの前記エグレスモジュールは、前記ポートテーブル内の対応する前記遅延に基づいて、前記ローカルクロック信号のエッジから遅延させ、前記複数のキュー状態テーブルのうちの前記対応するものにある前記複数のエントリを循環し、
前記第１のポート以外の前記複数のポートの前記エグレスモジュールの各々は、前記ポートテーブル内の対応する複数の前記遅延に基づいて、前記複数のポートのうちの連続する前のものによって行われる動作から遅延させ、前記複数のキュー状態テーブルのうちの前記対応するものにある前記複数のエントリを循環する、項目２に記載のネットワークデバイス。
（項目４）
前記第１のタイミングモジュールまたは前記調整モジュールは、複数の前記テーブルにわたる、前記複数のポートのサイクル開始時間を調整すべく、前記ローカルクロック信号のタイミングを調整する、項目３に記載のネットワークデバイス。
（項目５）
前記第１のタイミングモジュールまたは前記調整モジュールは、前記ポートテーブルの前記複数の遅延を調整することなく、前記ローカルクロック信号のタイミングを調整する、項目４に記載のネットワークデバイス。
（項目６）
前記第１のタイミングモジュールまたは前記調整モジュールは、前記複数のポートの前記複数のキュー状態テーブルの複数の継続期間または複数の遅延を調整することなく、前記ローカルクロック信号のタイミングを調整する、項目４に記載のネットワークデバイス。
（項目７）
前記調整モジュールは、
前記ローカルクロック信号の前記第１のエッジの前記キャプチャされた時間が前記グローバルクロック信号の前記第１のエッジの予め定められた時間範囲内にない場合、前記ローカルクロック信号のタイミングの調整を控える、および
前記ローカルクロック信号の前記第１のエッジの前記キャプチャされた時間が前記グローバルクロック信号の前記第１のエッジの前記予め定められた時間範囲内にある場合、前記ローカルクロック信号の前記第２のエッジが前記ウィンドウの中心に置かれるように、前記ローカルクロック信号の前記タイミングを調整する、項目１から６のいずれか一項に記載のネットワークデバイス。
（項目８）
前記第１のタイミングモジュールは、前記グローバルクロック信号に基づいて、前記ローカルクロック信号を生成する、項目１から７のいずれか一項に記載のネットワークデバイス。
（項目９）
前記グローバルクロック信号に基づいてトリガ信号を生成するための第２のタイミングモジュールをさらに備え、
前記レジスタモジュールは、前記トリガ信号に基づいて、前記ローカルクロック信号の前記第１のエッジの前記時間をキャプチャする、項目１から８のいずれか一項に記載のネットワークデバイス。
（項目１０）
前記レジスタモジュールは、前記グローバルクロック信号に基づいて、前記ローカルクロック信号の前記第１のエッジの前記時間をキャプチャする、項目１から９のいずれか一項に記載のネットワークデバイス。
（項目１１）
テーブルを格納するためのメモリをさらに備え、
前記テーブルは複数の遅延時間を含み、
前記複数の遅延時間は前記ネットワークデバイスの複数のポートのそれぞれのためのものであり、
前記複数のポートの動作タイミングは（ｉ）前記複数の遅延時間、および（ｉｉ）前記ローカルクロック信号に基づく、項目１に記載のネットワークデバイス。
（項目１２）
前記複数の遅延時間は、前記グローバルクロック信号または前記ローカルクロック信号のエッジからのそれぞれの遅延量を指す、項目１１に記載のネットワークデバイス。
（項目１３）
テーブルを格納するためのメモリであって、前記テーブルは複数のエントリを含み、前記複数のエントリの各々は（ｉ）複数のキューのうちのそれぞれのものに対する状態、および（ｉｉ）対応する前記状態にとどまる継続時間を含む、メモリと、
前記テーブルの前記複数のエントリを循環するためのエグレスモジュールと、をさらに備え、
前記ブロックシェーパは、前記複数のエントリのうちの現在のものに基づいて、前記フレームが前記ネットワークデバイスから送信されることをブロックする、項目１に記載のネットワークデバイス。
（項目１４）
テーブルを格納するためのメモリであって、前記テーブルは複数のエントリを含み、前記複数のエントリの各々は（ｉ）複数のキューのうちのそれぞれのものに対する状態、および（ｉｉ）対応するキューからの送信を許可する前に待機する遅延時間を含む、メモリと、
前記テーブルの前記複数のエントリを循環するためのエグレスモジュールと、をさらに備え、
前記ブロックシェーパは、前記複数のエントリのうちの現在のものに基づいて、前記フレームが前記ネットワークデバイスから送信されることをブロックする、項目１に記載のネットワークデバイス。
（項目１５）
フレームを格納するための第１のキューと、
ローカルクロック信号を生成するためのタイミングモジュールと、
複数のポートであって、前記複数のポートの各々は（ｉ）複数のキューと、（ｉｉ）エグレスモジュールと、（ｉｉｉ）複数のキュー状態テーブルのうちのそれぞれのものと、を含み、前記複数のキュー状態テーブルの各々は複数のエントリを含み、前記複数のエントリの各々は対応する前記ポートの前記複数のキューのうちのそれぞれのものの状態を含み、前記複数のポートは第１のポートを含み、前記第１のポートは前記第１のキューを含み、
前記エグレスモジュールの各々は前記複数のキュー状態テーブルのうちの対応するものにある前記複数のエントリを循環する、複数のポートと、
ポートテーブルを格納するためのメモリであって、前記ポートテーブルは前記複数のポートのそれぞれに対する複数の遅延を含み、
前記エグレスモジュールの各々はそれぞれの前記遅延に基づいて、対応する前記ポートの前記複数のキューの循環を開始し、
前記第１のポートの前記エグレスモジュールは、前記ポートテーブル内の対応する前記遅延に基づいて、前記ローカルクロック信号のエッジから遅延させ、前記複数のキュー状態テーブルのうちの前記対応するものにある前記複数のエントリを循環し、
前記第１のポート以外の前記複数のポートの前記エグレスモジュールの各々は、前記ポートテーブル内の対応する複数の前記遅延に基づいて、前記複数のポートのうちの連続する前のものによって行われる動作から遅延させ、前記複数のキュー状態テーブルのうちの前記対応するものにある前記複数のエントリを循環する、メモリと、を備える、ネットワークデバイス。
（項目１６）
ネットワークデバイスを動作する方法であって、前記ネットワークデバイスは第１のキューを含み、前記方法は、
前記第１のキュー内にフレームを格納する段階と、
ローカルクロック信号を生成する段階と、
（ｉ）グローバルクロック信号の第１のエッジに基づいて、前記グローバルクロック信号の第２のエッジの予期時間、および（ｉｉ）前記グローバルクロック信号の前記第２のエッジの前記予期時間の中心に置かれるウィンドウを判断する段階と、
前記ローカルクロック信号の第１のエッジの時間をキャプチャする段階と、
前記ローカルクロック信号の前記第１のエッジの前記キャプチャされた時間および前記グローバルクロック信号の前記第１のエッジの前記時間に基づいて、前記ローカルクロック信号の第２のエッジを前記ウィンドウの中心に置くための調整信号を生成する段階と、
前記ローカルクロック信号の前記第２のエッジを調整する段階の後、前記ローカルクロック信号のタイミングに基づいて、前記ネットワークデバイスからの前記フレームの送信をブロックする段階と、を備える、方法。
（項目１７）
前記ネットワークデバイスは複数のポートを含み、前記複数のポートの各々は（ｉ）複数のキューと、（ｉｉ）エグレスモジュールと、（ｉｉｉ）複数のキュー状態テーブルのうちのそれぞれのものと、を含み、前記複数のキュー状態テーブルの各々は複数のエントリを含み、前記複数のエントリの各々は対応する前記ポートの前記複数のキューのうちのそれぞれのものの状態を含み、前記複数のポートは第１のポートを含み、前記第１のポートは前記第１のキューを含み、前記方法は、
前記エグレスモジュールの各々を介し、前記複数のキュー状態テーブルのうちの対応するものにある前記複数のエントリを循環する段階と、
ポートテーブルを格納する段階であって、前記ポートテーブルは前記複数のポートのそれぞれに対する複数の遅延を含む、段階と、
前記エグレスモジュールの各々を介し、およびそれぞれの前記遅延に基づいて、対応する前記ポートの前記複数のキューの循環を開始する段階と、をさらに備える、項目１６に記載の方法。
（項目１８）
前記第１のポートの前記エグレスモジュールを介し、および前記ポートテーブル内の対応する前記遅延に基づいて、前記ローカルクロック信号のエッジから遅延させる段階であって、前記複数のキュー状態テーブルのうちの前記対応するものにある前記複数のエントリを循環する、段階と、
前記第１のポート以外の前記複数のポートの前記エグレスモジュールの各々を介し、および前記ポートテーブル内の対応する複数の前記遅延に基づいて、前記複数のポートのうちの連続する前のものによって行われる動作から遅延させる段階であって、前記複数のキュー状態テーブルのうちの前記対応するものにある前記複数のエントリを循環する、段階と、をさらに備える、項目１７に記載の方法。
（項目１９）
複数の前記テーブルにわたる、前記複数のポートのサイクル開始時間を調整すべく、前記ローカルクロック信号のタイミングを調整する段階をさらに備える、項目１８に記載の方法。
（項目２０）
前記ポートテーブルの前記複数の遅延を調整することなく、前記ローカルクロック信号のタイミングを調整する段階をさらに備える、項目１９に記載の方法。
（項目２１）
前記複数のポートの前記複数のキュー状態テーブルの複数の継続期間または複数の遅延を調整することなく、前記ローカルクロック信号のタイミングを調整する段階をさらに備える、項目１９に記載の方法。
（項目２２）
前記ローカルクロック信号の前記第１のエッジの前記キャプチャされた時間が前記グローバルクロック信号の前記第１のエッジの予め定められた時間範囲内にない場合、前記ローカルクロック信号のタイミングの調整を控える段階と、
前記ローカルクロック信号の前記第１のエッジの前記キャプチャされた時間が前記グローバルクロック信号の前記第１のエッジの前記予め定められた時間範囲内にある場合、前記ローカルクロック信号の前記第２のエッジが前記ウィンドウの中心に置かれるように、前記ローカルクロック信号の前記タイミングを調整する段階と、をさらに備える、項目１６から２０のいずれか一項に記載の方法。
（項目２３）
前記グローバルクロック信号に基づいて、前記ローカルクロック信号を生成する段階をさらに備える、項目１６から２１のいずれか一項に記載の方法。
（項目２４）
前記グローバルクロック信号に基づいて、トリガ信号を生成する段階をさらに備え、
前記トリガ信号に基づいて、前記ローカルクロック信号の前記第１のエッジの前記時間はキャプチャされる、項目１６から２２のいずれか一項に記載の方法。
（項目２５）
前記グローバルクロック信号に基づいて、前記ローカルクロック信号の前記第１のエッジの前記時間はキャプチャされる、項目１６から２３のいずれか一項に記載の方法。
（項目２６）
テーブルを格納する段階であって、前記テーブルは複数の遅延時間を含み、前記複数の遅延時間は前記ネットワークデバイスの複数のポートのそれぞれのためのものである、段階と、
前記複数のポートの動作タイミングを（ｉ）前記複数の遅延時間、および（ｉｉ）前記ローカルクロック信号に基づいて制御する段階と、をさらに備える、項目１６に記載の方法。
（項目２７）
前記複数の遅延時間は、前記グローバルクロック信号または前記ローカルクロック信号のエッジからのそれぞれの遅延量を指す、項目２６に記載の方法。
（項目２８）
テーブルを格納する段階であって、前記テーブルは複数のエントリを含み、前記複数のエントリの各々は（ｉ）複数のキューのうちのそれぞれのものに対する状態、および（ｉｉ）対応する前記状態にとどまる継続時間を含む、段階と、
前記ネットワークデバイスのエグレスモジュールを介し、前記テーブルの前記複数のエントリを循環する段階と、
前記複数のエントリのうちの現在のものに基づいて、前記フレームが前記ネットワークデバイスから送信されることをブロックする段階と、をさらに備える、項目１６に記載の方法。
（項目２９）
テーブルを格納する段階であって、前記テーブルは複数のエントリを含み、前記複数のエントリの各々は（ｉ）複数のキューのうちのそれぞれのものに対する状態、および（ｉｉ）対応するキューからの送信を許可する前に待機する遅延時間を含む、段階と、
前記ネットワークデバイスのエグレスモジュールを介し、前記テーブルの前記複数のエントリを循環する段階と、
前記複数のエントリのうちの現在のものに基づいて、前記フレームが前記ネットワークデバイスから送信されることをブロックする段階と、をさらに備える、項目１６に記載の方法。
【図１】
0006575772.tif 000005
【図２】
0006575772.tif 000006
【図３】
0006575772.tif 000007
【図４】
0006575772.tif 000008
【図５】
0006575772.tif 000009
【図６】
0006575772.tif 000010
【図７】
0006575772.tif 000011
【図８】
0006575772.tif 000012
【図９】
0006575772.tif 000013
【図１０】
0006575772.tif 000014
【図１１】
0006575772.tif 000015
【図１２】
0006575772.tif 000016
【図１３】
0006575772.tif 000017
【図１４】
0006575772.tif 000018
【図１５】
0006575772.tif 000019
【図１６】
0006575772.tif 000020