(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-30
(45)【発行日】2023-12-08
(54)【発明の名称】データパケットを送信する方法、及びこの方法を実施する装置
(51)【国際特許分類】
H04L 47/6275 20220101AFI20231201BHJP
【FI】
H04L47/6275
(21)【出願番号】P 2022524864
(86)(22)【出願日】2020-07-07
(86)【国際出願番号】 JP2020027419
(87)【国際公開番号】W WO2021059683
(87)【国際公開日】2021-04-01
【審査請求日】2021-12-16
(32)【優先日】2019-09-26
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】503163527
【氏名又は名称】ミツビシ・エレクトリック・アールアンドディー・センター・ヨーロッパ・ビーヴィ
【氏名又は名称原語表記】MITSUBISHI ELECTRIC R&D CENTRE EUROPE B.V.
【住所又は居所原語表記】Capronilaan 46, 1119 NS Schiphol Rijk, The Netherlands
(74)【代理人】
【識別番号】100110423
【氏名又は名称】曾我 道治
(74)【代理人】
【識別番号】100111648
【氏名又は名称】梶並 順
(74)【代理人】
【識別番号】100122437
【氏名又は名称】大宅 一宏
(74)【代理人】
【識別番号】100147566
【氏名又は名称】上田 俊一
(74)【代理人】
【識別番号】100161171
【氏名又は名称】吉田 潤一郎
(72)【発明者】
【氏名】ロレ、ロマン
【審査官】中川 幸洋
(56)【参考文献】
【文献】米国特許出願公開第2019/0199646(US,A1)
【文献】米国特許出願公開第2008/0186996(US,A1)
【文献】特表2009-516410(JP,A)
【文献】米国特許出願公開第2012/0120966(US,A1)
【文献】米国特許第07826469(US,B1)
【文献】Naoto Hagino et al.,Frame transmission time control for TDMA-based Ethernet,2018 14TH IEEE INTERNATIONAL WORKSHOP ON FACTORY COMMUNICATION SYSTEMS (WFCS),IEEE,2018年06月13日,1-8
(58)【調査した分野】(Int.Cl.,DB名)
H04L 47/6275
(57)【特許請求の範囲】
【請求項1】
プロセッサを含むデバイスによって実行されるデータパケットを送信する方法であって、複数の連続する時間サイクル内の、複数の連続する期間を含む現在の送信サイクル中、
1つ又はいくつかの第1のデータパケットと、前記1つ又はいくつかの第1のデータパケットのそれぞれの第1のメタデータと、前記1つ又はいくつかの第1のデータパケットに関連付けられた第1の送信優先度と、を得ることであって、前記1つ又はいくつかの第1のデータパケットは、前記プロセッサのメモリに記憶されることと、前記
第1のメタデータは、データフレームを格納するバッファへのメモリ参照及びフレームサイズを格納するメモリ構造を含むことと、
前記第1の送信優先度に基づいて、前記第1のメタデータを、前記プロセッサの前記メモリ内の第1の待機キューに追加することと、
前記第1の送信優先度に関連付けられたデータパケットの送信のために予約された前記現在の送信サイクルの第1の期間中、
前記第1のメタデータを、前記第1の待機キューから、インターフェース送信キューに転送することであって、前記インターフェース送信キューは、前記プロセッサとMACコントローラーとの間のデータ通信インターフェース内に含まれることと、
前記インターフェース送信キュー内の前記第1のメタデータに基づいて、前記メモリから前記MACコントローラー内の送信キューへ前記1つ又はいくつかの第1のデータパケットを転送し、その後、
前記第1の期間内に含まれる前記第1の送信優先度の送信タイムスロット中に前記MACコントローラーによってデータ送信を有効化することにより、送信媒体を介して前記1つ又はいくつかの第1のデータパケットを送信することと、
を含む、方法。
【請求項2】
第2のデータパケットと、前記第2のデータパケットの第2のメタデータと、前記第2のデータパケットに関連付けられた第2の送信優先度と、を得ることであって、前記第2のデータパケットは、前記プロセッサの前記メモリに記憶されることと、
前記第2の送信優先度に基づいて、前記第2のメタデータを、前記プロセッサの前記メモリ内の第2の待機キューに追加することと、
前記第1の期間中、前記第1の送信優先度を有するデータパケットの送信に専用化されるとともに、前記第1の期間内に含まれる前記第1の送信優先度の送信タイムスロットの後に、前記第2のメタデータを、前記第2の待機キューから、前記インターフェース送信キューに転送することと、
前記第1の期間に後続する前記現在の送信サイクルの第2の期間中、前記インターフェース送信キュー内の前記第2のメタデータに基づいた、前記メモリから前記MACコントローラー内の前記送信キューへの前記第2のデータパケットの転送を利用して、前記送信媒体を介して前記第2のデータパケットを送信することと、
を更に含む、請求項1に記載の方法。
【請求項3】
第2のデータパケットと、前記第2のデータパケットの第2のメタデータと、前記第2のデータパケットに関連付けられた第2の送信優先度と、を得ることであって、前記第2のデータパケットは、前記プロセッサの前記メモリに記憶されることと、
前記第2のデータパケットが前記第1の期間中に得られていない場合、前記第2のメタデータを、前記インターフェース送信キューに追加することと、
前記第2の送信優先度に関連付けられたデータパケットの送信のために予約された前記現在の送信サイクルの第2の期間中、前記インターフェース送信キュー内の前記第2のメタデータに基づいた、前記メモリから前記MACコントローラー内の前記送信キューへの前記第2のデータパケットの転送を利用して、前記送信媒体を介して前記第2のデータパケットを送信することと、
を更に含む、請求項1に記載の方法。
【請求項4】
前記第1の送信優先度は、データパケットのリアルタイムにおける送信のためのものであり、前記第2の送信優先度は、データパケットの非リアルタイムにおける送信のためのものである、請求項2又は3に記載の方法。
【請求項5】
前記方法は、前記プロセッサによって実行される1つ又はいくつかの第1のタスクから、前記送信媒体を介した前記1つ又はいくつかの第1のデータパケットの送信の1つ又はいくつかの要求を受信することを更に含み、各要求は、前記第1の送信優先度を含み、又は、前記第1のタスクのうちの1つ以上は、前記第1の送信優先度に関連付けられる、請求項1~4のいずれか1項に記載の方法。
【請求項6】
前記1つ又はいくつかの第1のデータパケットは、前記第1の送信優先度を有するデータパケットの送信に専用化されるとともに、前記第1の期間内に含まれる前記第1の送信優先度の送信タイムスロット中に前記MACコントローラーによって送信され、前記方法は、第1の送信無効期間及び/又は第2の送信無効期間中、前記MACコントローラーにおけるデータ送信を無効化することを更に含み、前記第1の送信無効期間は、前記第1の送信優先度の送信タイムスロットの前の前記第1の期間中に発生し、前記第2の送信無効期間は、前記第1の送信優先度の送信タイムスロットの後の前記第1の期間中に発生する、請求項1~5のいずれか1項に記載の方法。
【請求項7】
前記現在の送信サイクルは、前記第1の期間の直前に発生する時間保護周期を含み、該時間保護周期中、前記MACコントローラーにおけるデータ送信は、無効化される、請求項1~6のいずれか1項に記載の方法。
【請求項8】
前記第2のデータパケットは、前記第1の送信優先度の送信タイムスロットの終了後の前記第1の期間中に、前記第2の待機キューから前記インターフェース送信キューに転送される、請求項
2に記載の方法。
【請求項9】
前記第1のメタデータは、前記第1の待機キューから前記インターフェース送信キューに転送され、前記1つ又はいくつかの第1のデータパケットは、前記インターフェース送信キュー内の前記第1のメタデータに基づいて、前記第1の送信優先度の送信タイムスロットの開始前の第1の所定の時点後の前記第1の期間中に、前記メモリから前記送信キューに転送される、請求項5に記載の方法。
【請求項10】
前記方法は、前記MACコントローラーによる、前記第1の送信優先度の送信タイムスロットの開始前の第2の所定の時点後の前記第1の期間中の、前記送信媒体を介した前記1つ又はいくつかの第1のデータパケットの前記送信を有効化することを更に含む、請求項5に記載の方法。
【請求項11】
前記方法は、前記第1の所定の時点後の前記第1の期間中、及び、前記第1の送信優先度の送信タイムスロット中の前記MACコントローラーによる前記第1の送信優先度のデータパケットの前記送信が完了していない間、前記第1の送信優先度を有するデータパケットの前記受信を無効化することを更に含む、請求項9に記載の方法。
【請求項12】
前記方法は、前記第1の送信優先度に関連付けられた対応する第1のデータパケットの累積サイズに対応するデータ量を、前記第1の送信優先度を有するデータパケットの送信に専用化されるとともに、前記第1の期間内に含まれる前記第1の送信優先度の送信タイムスロット中に送信することができるという判断に基づいて、前記第1のメタデータを、前記第1の待機キューに追加することを更に含む、請求項1~11のいずれか1項に記載の方法。
【請求項13】
プロセッサと、前記プロセッサに作動的に接続されたメモリと、コンピューターネットワーク内で通信するネットワークインターフェースとを備える装置であって、請求項1~12のいずれか1項に記載の、データパケットを送信する方法を実行するように構成される、装置。
【請求項14】
コンピューター可読媒体内に有形に具現されるコンピュータープログラムコードを含むコンピュータープログラムであって、前記コンピュータープログラムコードは、コンピューターに与えられ、実行されると、前記コンピューターに、請求項1~12のいずれか1項に記載の、データパケットを送信する方法を実行させる命令を含む、コンピュータープログラム。
【請求項15】
圧縮又は符号化を通して、請求項14に記載のコンピュータープログラムを表現するデータセット。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、パケットデータネットワークにおけるパケット通信の分野に関し、詳細には、ネットワークにおけるタイムセンシティブパケットの送達に関する。
【背景技術】
【0002】
タイムセンシティブネットワーキング(TSN:Time-Sensitive Networking)は、IEEE802.1ワーキンググループのタイムセンシティブネットワーキングタスクグループによって開発されたイーサネットネットワークにおけるデータのタイムセンシティブ又はタイムクリティカル送信のためのスキームを提供する一組の標準規格である。アプリケーションは、リアルタイムオーディオ/ビデオストリーミング、及び自動車ネットワーク又は産業ネットワークにおけるタイムクリティカル制御信号(例えば、リアルタイム制御信号)を含む。TSNフレームのオンタイム送達を提供するのに、IEEE802.1Qbvタイムアウェアスケジューラを使用することができる。
【0003】
IEEE802.1Qbvは、スケジュールのとおりに或る特定のTSNイーサネットフレームを送信し、それと同時に、TSNフレームの前後で、非TSNイーサネットフレームをベストエフォート型で送信することを可能にする手段を定義する。全てのネットワークノードが同期されるので、IEEE802.1Qbvをサポートするデバイスは、クリティカル通信を非常に迅速に、かつ送達時に非常に低いジッタで送達することができる。
【0004】
しかしながら、IEEE802.1Qbvアクセス制御メカニズムは、イーサネット送信機が、IEEE802.1Qbvにおいて使用されるタイムスライスを遵守するために良好な精度(200ns未満)の正確な時点においていくつかのイーサネットフレームを送信することが可能であることを要求する。送信がタイムクリティカルであるイーサネットフレームは、802.1Qによって導入されるメカニズム等のアクセス制御メカニズムを用いて送信される標準イーサネットフレームと共存する。そのような性能要件は、通常、特有イーサネットMACコントローラー、すなわち、TSNサポートのために開発された特有な拡張を有するコントローラーの開発に至る。これにより、TSNの使用は、コストの理由のみでなく、低コストの市販のマイクロコントローラーデバイス上でTSNを使用することができないことも原因で、著しく制限される。
【発明の概要】
【発明が解決しようとする課題】
【0005】
したがって、当技術分野における従来の技術の上述した欠点及び短所のうちの少なくともいくつかに対処する、データパケットを送信する改善された方法、及びこれを実施するネットワークノードを提供する必要がある。
【課題を解決するための手段】
【0006】
本主題開示の目的は、データパケットを送信する改善された方法、及びこれを実施する装置を提供することである。
【0007】
本主題開示の別の目的は、コンピューターネットワーク、特にイーサネットネットワークにおける従来のタイムセンシティブデータ送達方式の上述した欠点及び短所を軽減するために、データパケットを送信する改善された方法、及びこれを実施する装置を提供することである。
【0008】
本主題開示の更に別の目的は、要求される精度で指定された時点においていくつかのイーサネットフレームを送信するとともに、IEEE802.1qbv標準規格において定義されるように異なるタイムスライスを管理するために、データパケットを送信する改善された方法、及びこれを実施する装置を提供することである。
【0009】
これらの目的及び他の利点を達成するために、本明細書において具現化され広く説明される本主題開示の目的に従うと、本主題開示の1つの態様では、データパケットを送信する方法が提案される。本方法は、複数の連続する時間サイクル内の、複数の連続する期間を含む現在の送信サイクル中、1つ又はいくつかの第1のデータパケットと、1つ又はいくつかの第1のデータパケットのそれぞれの第1のメタデータと、1つ又はいくつかの第1のデータパケットに関連付けられた第1の送信優先度とを得ることであって、1つ又はいくつかの第1のデータパケットは、プロセッサのメモリに記憶されることと、第1の送信優先度に基づいて、第1のメタデータを、プロセッサのメモリ内の第1の待機キューに追加することと、第1の優先度に関連付けられたデータパケットの送信のために予約された現在の送信サイクルの第1の期間中、第1のメタデータを、第1の待機キューから、インターフェース送信キューに転送することであって、インターフェース送信キューは、プロセッサとMACコントローラーとの間のデータ通信インターフェース内に含まれることと、インターフェース送信キュー内の第1のメタデータに基づいた、メモリからMACコントローラー内の送信キューへの1つ又はいくつかの第1のデータパケットの転送を通じて、送信媒体を介して1つ又はいくつかの第1のデータパケットを送信することとを含む。
【0010】
提案される方法は、有利には、例えば、イーサネットフレームのタイムセンシティブ送達のためのIEEE802.1Qbvスケジューラの使用のために、標準MACイーサネットコントローラーを埋め込む任意のデバイスを用いて動作するように実施することができる。実際、提案される方法は、埋め込みアプリケーションのために特別に設計されたリアルタイムオペレーティングシステムを使用して、ソフトウェアにおいて実施することができる。さらに、提案される方法は、有利には、自動車ネットワーク又は産業ネットワークにおいて広範に使用される標準MACイーサネットコントローラーを埋め込む小型マイクロコントローラーデバイスを用いて動作するように実施することができる。
【0011】
1つ以上の実施の形態において、提案される方法は、第2のデータパケットと、第2のデータパケットの第2のメタデータと、第2のデータパケットに関連付けられた第2の送信優先度とを得ることであって、第2のデータパケットは、プロセッサのメモリに記憶されることと、第2の送信優先度に基づいて、第2のメタデータを、プロセッサのメモリ内の第2の待機キューに追加することと、第1の期間中、第1の優先度を有するデータパケットの送信に専用化されるとともに、第1の期間内に含まれる第1の優先度の送信タイムスロットの後に、第2のメタデータを、第2の待機キューから、インターフェース送信キューに転送することと、第1の期間に後続する現在の送信サイクルの第2の期間中、インターフェース送信キュー内の第2のメタデータに基づいた、メモリからMACコントローラー内の送信キューへの第2のデータパケットの転送を通じて、送信媒体を介して第2のパケットデータを送信することとを更に含むことができる。
【0012】
1つ以上の実施の形態において、第1の期間及び第2の期間は、時間において、重複なく連続している。
【0013】
1つ以上の実施の形態において、提案される方法は、第2のデータパケットと、第2のデータパケットの第2のメタデータと、第2のデータパケットに関連付けられた第2の送信優先度とを得ることであって、第2のデータパケットは、プロセッサのメモリに記憶されることと、第2のデータパケットが第1の期間中に得られていない場合、第2のメタデータを、インターフェース送信キューに追加することと、第2の優先度に関連付けられたデータパケットの送信のために予約された現在の送信サイクルの第2の期間中、インターフェース送信キュー内の第2のメタデータに基づいた、メモリからMACコントローラー内の送信キューへの第2のデータパケットの転送を通じて、送信媒体を介して第2のパケットデータを送信することとを更に含むことができる。
【0014】
1つ以上の実施の形態において、第1の送信優先度は、データパケットのリアルタイムにおける送信のためのものであり、第2の送信優先度は、データパケットの非リアルタイムにおける送信のためのものである。
【0015】
1つ以上の実施の形態において、提案される方法は、プロセッサによって実行される1つ又はいくつかの第1のタスクから、送信媒体を介した1つ又はいくつかの第1のデータパケットの送信の1つ又はいくつかの要求を受信することを更に含むことができ、各要求は、第1の送信優先度を含み、又は、第1のタスクのうちの1つ以上は、第1の送信優先度に関連付けられる。
【0016】
1つ以上の実施の形態において、1つ又はいくつかの第1のデータパケットは、第1の期間内に含まれる(第1の優先度を有するデータパケットの送信に専用化される)第1の優先度の送信タイムスロット中にMACコントローラーによって送信され、方法は、第1の送信無効期間及び/又は第2の送信無効期間中、MACコントローラーにおけるデータ送信を無効化することを更に含み、第1の送信無効期間は、第1の優先度の送信タイムスロットの前の第1の期間中に発生し、第2の送信無効期間は、第1の優先度の送信タイムスロットの後の第1の期間中に発生する。
【0017】
1つ以上の実施の形態において、現在の送信サイクルは、第1の期間の直前に発生する時間保護周期を含み、時間保護周期中、MACコントローラーにおけるデータ送信は、無効化される。
【0018】
1つ以上の実施の形態において、第2のデータパケットは、第1の優先度の送信タイムスロットの終了後の第1の期間中に、第2の待機キューからインターフェース送信キューに転送される。
【0019】
1つ以上の実施の形態において、第1のメタデータは、第1の待機キューからインターフェース送信キューに転送され、1つ又はいくつかの第1のデータパケットは、インターフェース送信キュー内の第1のメタデータに基づいて、第1の優先度の送信タイムスロットの開始前の第1の所定の時点後の第1の期間中に、メモリから送信キューに転送される。
【0020】
1つ以上の実施の形態において、提案される方法は、MACコントローラーによる、第1の優先度の送信タイムスロットの開始前の第2の所定の時点後の第1の期間中の、送信媒体を介した1つ又はいくつかの第1のデータパケットの送信を有効化することを更に含むことができる。
【0021】
1つ以上の実施の形態において、提案される方法は、第1の所定の時点後の第1の期間中、及び、第1の優先度の送信タイムスロット中のMACコントローラーによる第1の送信優先度のデータパケットの送信が完了していない間、第1の送信優先度を有するデータパケットの受信を無効化することを更に含むことができる。
【0022】
1つ以上の実施の形態において、提案される方法は、第1の送信優先度に関連付けられた対応する第1のデータパケットの累積サイズに対応するデータ量を、第1の優先度を有するデータパケットの送信に専用化されるとともに、第1の期間内に含まれる第1の優先度の送信タイムスロット中に送信することができるという判断に基づいて、第1のメタデータを、第1の待機キューに追加することを更に含むことができる。
【0023】
本主題開示の別の態様では、プロセッサと、プロセッサに作動的に結合されたメモリと、コンピューターネットワーク内で通信するネットワークインターフェースとを備える装置が提案される。装置は、本主題開示において提案される、データパケットを送信する方法の1つ以上の実施の形態を実行するように構成される。
【0024】
本主題開示の更に別の態様では、実行されると、メモリに作動的に可能に結合されたプロセッサを備える装置に、本主題開示において提案される、データパケットを送信する方法を実行させる実行可能命令で符号化される非一時的コンピューター可読媒体が提案される。
【0025】
本主題開示の更に別の態様では、コンピューター可読媒体内に有形に具現されるコンピュータープログラムコードを含むコンピュータープログラム製品であって、当該コンピュータープログラムコードは、コンピューターシステムに与えられ、実行されると、当該コンピューターに、本主題開示において提案される、データパケットを送信する方法を実行させる命令を含む、コンピュータープログラム製品が提案される。本主題開示の別の態様では、本明細書において提案されるコンピュータープログラムを、例えば、圧縮又は符号化を通じて表すデータセットが提案される。
【0026】
本発明は、限定はしないが、プロセス、装置、システム、デバイスとして、また、現時点で既知であるアプリケーション及び後に開発されるアプリケーションのための方法として含む、数多くの方法において実施し、利用できることは理解されたい。本明細書において開示されるシステムのこれらの特有の特徴、及び他の特有の特徴は、以下の説明及び添付の図面から、より容易に明らかになるであろう。
【0027】
添付の明細書とともに以下の図面を参照することによって、本主題開示がより深く理解され、その数多くの目的及び利点が当業者にとってより明らかになるであろう。
【図面の簡単な説明】
【0028】
【
図1】本主題開示の1つ以上の実施形態において使用することができるIEEE802.1Qbvタイムアウェアスケジューラの2つの連続する時間サイクルの一例示的なシーケンスを示す図である。
【
図2】本主題開示の1つ以上の実施形態において使用することができる、イーサネット物理レイヤ(PHY)及びバスメモリに接続された一例示的なイーサネットMACのブロック図である。
【
図3】リアルタイムプロセスに加えられるジッタの定義を示す図である。
【
図4】本主題開示の1つ以上の実施形態によるデータパケット送信特徴を使用するように構成された一例示的なネットワークノード/デバイスの概略ブロック図である。
【
図5】本主題開示の1つ以上の実施形態による、データパケットを送信する一例示的な方法のブロック図である。
【
図6】本主題開示の1つ以上の実施形態によるデータパケット送信特徴を使用するように構成された一例示的なネットワークノード/デバイスの概略ブロック図である。
【
図7】本主題開示の1つ以上の実施形態による、異なるキューにわたってイーサネットフレームを分配する一例示的な方式を示す図である。
【
図8】提案される方法を実施するデバイスにおいて構成されるような、1サイクルについて定義することができるイベントを示す図である。
【発明を実施するための形態】
【0029】
簡潔及び明確に例示するために、図面は構成の一般的な方法を示し、既知の特徴及び技法の説明及び細部は、本発明の説明される実施形態の論述を無用に分かりにくくするのを避けるために省略される場合がある。さらに、図面内の要素は必ずしも縮尺通りに描かれていない。例えば、図面内の要素のうちのいくつかの要素の寸法は、本発明の実施形態を理解しやすくするのを助けるために、他の要素に対して誇張される場合がある。現実世界の条件下であれば極めて対称性が低く、秩序正しくない可能性がある、直線、鋭い角度及び/又は平行な平面等を有する構造が示されるときのように、或る特定の図は、理解するのを助けるために理想的に示される場合がある。異なる図における同じ参照符号は同じ要素を表し、一方、類似の参照符号は、類似の要素を表す場合があるが、必ずしもそうとは限らない。
【0030】
さらに、本明細書における教示は、多種多様の形態において具現できること、及び本明細書において開示される任意の具体的な構造及び/又は機能は典型にすぎないことは明らかにすべきである。詳細には、本明細書において開示される態様を、任意の他の態様から独立して実施できること、及びいくつかの態様を種々の方法で組み合わせることができることは当業者には理解されよう。
【0031】
本開示は、1つ以上の例示的な実施形態による、方法、システム及びコンピュータープログラムの機能、エンジン、ブロック図及びフローチャートを参照しながら以下に説明される。ブロック図及びフローチャートの説明される各機能、エンジン、ブロックは、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード又は任意の適切なその組み合わせにおいて実現することができる。ソフトウェアにおいて実施される場合には、ブロック図及び/又はフローチャートの機能、エンジン、ブロックは、コンピュータープログラム命令又はソフトウェアコードによって実施することができ、コンピュータープログラム命令又はソフトウェアコードは、コンピューター可読媒体に記憶されるか、又はコンピューター可読媒体を介して送信されるか、又は汎用コンピューター、専用コンピューター若しくは機械を作り出す他のプログラマブルデータ処理装置上にロードすることができ、それにより、コンピューター又は他のプログラマブルデータ処理装置上で実行されるコンピュータープログラム命令又はソフトウェアコードが、本明細書において説明される機能を実施するための手段を生み出す。
【0032】
コンピューター可読媒体の実施形態は、限定はしないが、1つの場所から別の場所へのコンピュータープログラムの転送を容易にする任意の媒体を含む、コンピューター記憶媒体及び通信媒体の両方を含む。本明細書において用いられるとき、「コンピューター記憶媒体」は、コンピューター又はプロセッサによってアクセスすることができる任意の物理的な媒体とすることができる。さらに、「メモリ」及び「コンピューター記憶媒体」という用語は、限定はしないが、ハードドライブ、フラッシュドライブ若しくは他のフラッシュメモリデバイス(例えば、メモリキー、メモリスティック、キードライブ)、CD-ROM若しくは他の光記憶装置、DVD、磁気ディスク記憶装置若しくは他の磁気記憶デバイス、メモリチップ(複数の場合もある)、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、電気的消去可能プログラマブルリードオンリーメモリ(EEPROM)、スマートカード、若しくはコンピュータープロセッサによって読み出すことができる命令若しくはデータ構造の形でプログラムコードを搬送又は記憶するために使用することができる任意の他の適切な媒体、又はその組み合わせ等の、任意のタイプのデータ記憶デバイスを含む。また、種々の形のコンピューター可読媒体は、ルーター、ゲートウェイ、サーバー又は他の伝送デバイスを含むコンピューターに、有線(同軸ケーブル、ファイバー、ツイストペア線、DSLケーブル)で、又はワイヤレス(赤外線、無線、セルラー、マイクロ波)で、命令を送信又は搬送することができる。命令は、限定はしないが、アセンブリ、C、C++、Python、ビジュアルベーシック、SQL、PHP及びJAVA(登録商標)を含む、任意のコンピュータープログラミング言語からのコードを含むことができる。
【0033】
具体的に他に明示されない限り、以下の説明を通して、処理、コンピューティング、計算、決定等の用語を利用する論述は、コンピューティングシステムのレジスタ又はメモリ内の電子的な量等の物理的な量として表されるデータを操作するか、又は、このデータを、コンピューティングシステムのメモリ、レジスタ若しくは他のそのような情報記憶装置、伝送デバイス若しくは表示デバイス内の物理的な量として同様に表される他のデータに変換する、コンピューター、又はコンピューティングシステム、又は類似の電子コンピューティングデバイスの動作又はプロセスを指していることは理解されたい。
【0034】
「備える」、「含む」、「有する」及び任意のその変形のような用語は、非排他的包含を含むことを意図しており、それにより、要素のリストを含むプロセス、方法、物品又は装置は、必ずしもそれらの要素には限定されず、そのようなプロセス、方法、物品又は装置に明記されないか、又は固有でない他の要素を含む場合がある。
【0035】
さらに、「例示的な」という言葉は、本明細書において、「一例、事例又は例示としての役割を果たすこと」を意味するように使用される。「例示的」として本明細書において説明される任意の実施形態又は設計は、必ずしも、他の実施形態又は設計より好ましいか、又は有利であると解釈されるべきではない。
【0036】
以下の説明及び特許請求の範囲において、「結合される」及び「接続される」という用語は、その派生語とともに、2つ以上の要素が互いに直接、物理的若しくは電気的に接触しているか、又は2つ以上の要素が互いに直接接触していないが、それでも依然として互いに協働するか、若しくは相互作用することを示すために、区別なく使用することができる。
【0037】
以下の説明及び特許請求の範囲において、「ペイロード」、「ペイロードデータ」、「メッセージ」、「パケット」、及び「データパケット」という用語は、区別なく使用することができ、ノード間若しくは局間又はネットワークにわたって転送又は送信することができるデータブロック、プロトコルデータユニット又は任意の単位のデータを含むことができる。パケットはビットのグループを含むことができ、グループは、例えば、1つ以上のアドレスフィールド、制御フィールド及びデータを含むことができる。データブロックは、任意の単位のデータ又は情報ビットとすることができる。
【0038】
本開示の場合に、「サーバー」という用語は、処理、データベース及び通信の設備を提供するサービス点を指すために、本明細書において使用される。一例であって、限定はしないが、「サーバー」という用語は、関連する通信、データ記憶及びデータベースの設備を備える、単一の物理的なプロセッサを指すことができるか、又はプロセッサ、並びに関連するネットワーク及び記憶デバイスと、サーバーによって提供されるサービスをサポートするオペレーティングソフトウェア、並びに1つ以上のデータベースシステム及びアプリケーションソフトウェアとのネットワーク化された、又はクラスター化された複合体を指すことができる。サーバーは、構成又は能力に関して大きく異なる場合があるが、一般的に、サーバーは1つ以上の中央処理装置及びメモリを含むことができる。また、サーバーは、1つ以上の大容量記憶デバイス、1つ以上の電源、1つ以上の有線若しくはワイヤレスネットワークインターフェース、1つ以上の入力/出力インターフェース、又はWindows Server、Mac OS X、Unix、Linux(登録商標)、FreeBSD等の1つ以上のオペレーティングシステムを含むこともできる。
【0039】
本開示の場合に、「コンピューターネットワーク」は、例えば、ワイヤレスネットワークを介して作動的に接続されるワイヤレスデバイス間を含む、デバイス間でデータ通信を行うことができるように、デバイス(本明細書において、「ノード」とも呼ばれる)を結合することができるネットワークを指すものと理解されたい。また、ネットワークは、ネットワーク接続型記憶装置(NAS)、ストレージエリアネットワーク(SAN)、又は例えば、他の形態のコンピューター若しくは機械可読媒体等の大容量記憶装置を含む場合もあり、サーバーを含むか、又はサーバーに作動的に接続される場合がある。ネットワークは、インターネット、1つ以上のローカルエリアネットワーク(LAN)、1つ以上のワイドエリアネットワーク(WAN)、有線タイプ接続、ワイヤレスタイプ接続、事業者電話線等のセルラー、光ファイバー、同期光ネットワーク、同期デジタルハイアラーキリンク、電力線通信リンク(例えば、IEEE61334、IEEE P1901.2)、イーサネット、Bluetooth、Bluetooth Low Energy(BLE)若しくはBluetooth Smart、WiFi若しくはIEEE802.11xプロトコルに基づく任意の接続、ZigBee若しくはIEEE802.15.4プロトコルに基づく任意の接続、Z-Wave、6LowPAN(IPv6低電力ワイヤレスパーソナルエリアネットワーク)、Thread、Sigfox、Neul、LoRa、任意のNFC接続、2G(GSM/GPRS/EDGEを含む)/3G(UMTS/HSPAを含む)/4G(LTE及びLTEアドバンストを含む)/5Gセルラー、又はその任意の組み合わせを含むことができる。ネットワークにおいて使用される異なるアーキテクチャ又はプロトコルに対する相互運用能力を提供するために、種々のタイプのデバイス、例えば、ゲートウェイが利用可能である場合がある。本主題開示によれば、コンピューターネットワークにおいて、任意の数のノード、デバイス、装置、リンク、相互接続等が使用される場合がある。
【0040】
通信リンク又はチャネルは、例えば、アナログ電話回線、完全な、又は部分的なデジタル回線、衛星リンクを含むワイヤレスリンク、又は当業者に既知である場合がある等の他の通信リンク若しくはチャネルを含むことができる。
【0041】
ネットワークのコンピューティングデバイス、例えば、センサーノード又はアクチュエーターノードは、有線若しくはワイヤレスネットワークを介して等、信号を送信若しくは受信できる場合があり、及び/又はデータを処理及び/又は記憶できる場合がある。
【0042】
本主題開示の実施形態は種々の適用例において使用される場合があることは理解されたい。本発明はこの点において制限されないが、本明細書において開示される、データパケットを送信する方法は、イーサネットネットワークのネットワークノード(例えば、イーサネットスイッチ、イーサネットブリッジ又はイーサネットルータ)等の、パケット交換ネットワークの任意のネットワークノードにあるような数多くの装置において使用される場合がある。明確にするために、以下の説明は、イーサネットネットワークに焦点を合わせる。しかしながら、本発明の技術的特徴はそれには限定されない。
【0043】
上述したように、TSNは、イーサネットネットワークを介したリアルタイム通信のため、特に自動車ネットワーク及び産業ネットワークのために標準イーサネット上で確定的メッセージングを提供するためにIEEE802.1によって定義された技術である。TSNフレームのオンタイム送達は、802.1Qbv TSNコンポーネントにおいて対処され、このコンポーネントは、送信スケジュールに従って、送信がタイムセンシティブである或る特定のイーサネットフレーム(以下で「TSNフレーム」又は「リアルタイムフレーム」と称される)を送信し、それと同時に、TSNフレームの前後で、非TSNイーサネットフレームをベストエフォート方式で送信することを可能にする方式を定義する。
【0044】
IEEE802.1タイムセンシティブネットワーキングタスクグループによって定義された種々のTSN標準規格は、以下の3つのコンポーネントカテゴリにグループ分けすることができる。
(1)時間同期:TSNネットワークにおいて、時間は、通例、1つのマスターソースから全てのネットワークノードに配信される。大抵の場合、これは、IEEE1588高精度時間プロトコルを使用して行われ、これは、イーサネットフレームを利用して、時間同期情報を配信する。
(2)スケジューリング及びトラフィックシェーピング:スケジューリング及びトラフィックシェーピングにより、異なる優先度を有する異なるトラフィッククラスの同じネットワーク上での共存が可能になる。TSNは、ソフトリアルタイム要件及びハードリアルタイム要件での適時送達を確実にするメカニズムを追加することによって、標準イーサネット通信を向上させる。
(3)通信パスの選択、パス予約及びフォールトトレランスメカニズム。
【0045】
スケジューリングコンポーネントに関して、ユーザーは、優先度ごとに、異なるアクセス制御及びスケジューリングメカニズムから、イーサネットフレームが処理される方法を選択することができる。したがって、或る優先度を、既存の方法(例えば、IEEE802.1Q厳密優先度スケジューラ)、又は何らかの新たな処理方法、例えば、TSN IEEE802.1Qbvタイムアウェアトラフィックスケジューラに割り当てることができる。
【0046】
IEEE802.1Qbvタイムアウェアスケジューラは、イーサネットネットワーク上の通信を、固定長の反復時間サイクルに分離するように設計される。これらのサイクル内で、イーサネット優先度のうちの1つ又はいくつかに割り当てることができる異なるタイムスライスを構成することができる。このタイムスライシング方式を使用して、厳格なリアルタイム制約を有するトラフィッククラスに対して、イーサネット送信媒体への排他的使用を許可することができる。この排他的アクセスにより、イーサネットスイッチ送信バッファにおけるバッファリング効果がなくなり、非確定的な割り込みを伴うことなくタイムクリティカルトラフィックを送信することができる。タイムスライスは、仮想通信チャネルとみなされ、タイムクリティカル通信の、非タイムクリティカルバックグラウンドトラフィックからの分離を可能にすることができる。
【0047】
イーサネットインターフェースが送信媒体上でフレームの送信を開始した場合、この送信は、別の送信が行われ得る前に完全に終了していなければならない。したがって、IEEE802.1Qbvタイムアウェアスケジューラは、スケジューラが或るタイムスライスから次のタイムスライスに切り替わるときにイーサネットインターフェースがフレームの送信でビジーではないことを確実にしなければならない。これを行うために、タイムクリティカルトラフィックを搬送する全てのタイムスライスの前に保護帯域が挿入される。この保護帯域時間中、送信機は、新たな送信を開始することを許可されず、既に進行している送信のみを完了することができる。保護帯域持続時間は、最大フレームサイズ及びデータリンクスピードに依存する。
【0048】
図1は、それぞれが2つのタイムスライス及び保護帯域を含む、2つの連続する時間サイクルの一例示的なシーケンスを示している。図示のシーケンスにおいて、2つのタイムスライスのうち、第1のタイムスライス(#1)は、タイムクリティカルトラフィックに対応する最高優先度(VLAN優先度7)に関連付けられるように構成され、それにより、VLAN優先度7をタグ付けされたタイムクリティカルTSNフレームのみが第1のタイムスライス中に送信される。第2のタイムスライス(#2)は、非タイムクリティカルトラフィックに対応する1つ以上の下位優先度(VLAN優先度0~6)に関連付けられるように構成され、優先度は、第1のタイムスライス中の非タイムクリティカルTSNフレームの送信について、標準規格IEEE802.1Qプロトコルに従ってハンドリングされる。
【0049】
保護帯域は、次の時間サイクルの第1のタイムスライス(#1)の直前のタイムスライスの終了に位置する。
【0050】
TSNは、最大で8個の優先度レベルを定義し、優先度レベル(0...7)を、同様にそれぞれ8個のタイムスライス(1...8)に関連付けることができる。
【0051】
別の例においては、3つの優先度レベルセット(優先度7、優先度6、及び優先度0...5)を、同様にそれぞれ8個のタイムスライス(1、2、及び3)に関連付けることができる。
【0052】
保護帯域によって引き起こされる帯域幅の損失を削減するために、IEEE802.1Qbv標準規格は、長さ認識型スケジューリングメカニズムを導入しており、このメカニズムは、(高優先度を有する)次のスライスを阻害することなく保護帯域内でフレームを送信することができるか否かをチェックする。
【0053】
最新のマイクロコントローラーユニット(MCU)は、通常、何らかのイーサネット媒体アクセスコントローラー(MAC)ペリフェラルを備える。MCUは、コンポーネントの数を削減することによって統合コストを削減する。現在市場に出回っているものとして、MCU及び低コストマイクロプロセッサユニット(MPU)に埋め込まれたイーサネットコントローラーは、ベーシックなIEEE標準規格、例えば、イーサネットMACのための10BASE-T/100BASE-TX 802.3、正確なネットワーク接続クロック同期のための1588-2008に準拠している。これらの標準規格は、10/100Mbpsデータ送信レートをサポートし、この大半は、IEEE802.1Q VLANタグ検出もサポートする。これらの標準規格は、統合されたダイレクトメモリアクセス(DMA)を使用して効率的なデータメモリ転送をサポートする。ホストCPUとMACペリフェラルとの間のデータ交換メカニズムは、柔軟かつ効率的なシステム実装のために、デュアルバッファ(リング型)又は連結リスト(連鎖型)記述子、及びプログラマブル割り込みに基づいている。
【0054】
しかしながら、これらの標準規格は、イーサネット優先度をサポートせず、送信及び受信のために1つのキューのみを実装する。提案される方法は、そのような限界を有利に克服することができる。なぜならば、当該提案される方法は、いくつかの実施形態において、ソフトウェアとして、例えば、MCU(又は低コストMPU)に当該提案される方法の1つ以上の実施形態を実施させるために、実施形態に応じてMCU又は低コストMPUによって実行されるように構成されたコンピューター可読プログラムコードとして実装することができるためである。そのようなソフトウェア実装は、有利には、MCU又は低コストMPUを使用する埋め込み応用に良好に適合するリアルタイムオペレーティングシステム(RTOS)を使用することができる。
【0055】
また、MACペリフェラルは、通常、データパケット、例えばイーサネットフレームの送信及び受信のために、内部高速先入れ先出し(FIFO)メモリセットを実装する。
【0056】
図2は、一端において物理レイヤ(PHY)インターフェース11に、及び他端においてメモリバスインターフェース15に作動的に接続された一例示的なMACコントローラー10のブロック図を示している。
【0057】
MACコントローラー10と、当該MACコントローラー10を駆動するプロセッサのメモリとの間で交換されるデータは、送信/受信(TX/RX)コントローラー12に作動的に接続されたDMAコントローラー13を通して、プロセッサのメモリに作動的に接続されたメモリバス15から受信される(又はメモリバス15に送信される)。
【0058】
DMAコントローラー13は、送信側DMAコントローラー13aと、受信側DMAコントローラー13bとを備え、DMA制御ユニット14によって駆動される。データパケット送信パス上で、送信側DMAコントローラー13aは、メモリバス15から受信されたデータパケットの、TX/RXコントローラー12への送信のために構成される。データパケット受信パス上で、受信側DMAコントローラー13bは、TX/RXコントローラー12から受信されたデータパケットの、メモリバス15への送信のために構成される。
【0059】
DMA制御ユニット14は、DMAコントローラー13及びMACコントローラー10に作動的に接続され、DMA転送を起動/停止するように構成される。データパケット送信パス上に、TX/RXコントローラー12は、送信側DMAコントローラー13aから受信されたデータパケットの、DMAコントローラー10への送信のために構成された送信FIFOメモリ12aを備える。データパケット受信パス上に、TX/RXコントローラー12は、DMAコントローラー10から受信されたデータパケットの、受信側DMAコントローラー13bへの送信のために構成された受信FIFOメモリ12bを備える。
【0060】
PHYインターフェース11は、データ送信パス及びデータ受信パスを含み、データ送信パス上では、データは、DMAコントローラー10から受信されるとともに、物理媒体、例えば、イーサネット送信の場合同軸ケーブル上で送信され、データ受信パス上では、データは、物理媒体から受信されるとともに、MACコントローラー10に送信される。
【0061】
1つ以上の実施形態において、リアルタイムシステムは、インタラクティブリアルタイムプロセスセットとみなすことができ、各リアルタイムプロセスは、有限時間において外部イベントに応答していくつかの反応を生成する。リアルタイムオペレーティングシステム(RTOS)は、その内部プロセスがハードリアルタイム要件又はソフトリアルタイム要件を遵守するオペレーティングシステムである。RTOSの典型的な特徴としては、タスクスケジューリングが予測可能であることから予測可能性、及び同じ条件は一貫して同じ結果を生成することから確定性、が挙げられる。
【0062】
プロセス、及びひいてはシステムは、リアルタイム処理に関して以下のカテゴリのうちの1つに分類することができる。
【0063】
非リアルタイム:非リアルタイムシステムは、システム動作に関わる期限が存在しないシステムである。
【0064】
ソフトリアルタイム:ソフトリアルタイムシステムは、期限に間に合わないことが、望ましくない影響を与え得るが、依然としてシステムによって許容され得るシステムである。望ましくない影響は、例えば、性能劣化を含む。
【0065】
ハードリアルタイム:ハードリアルタイムシステムは、期限に間に合わないことが、システム動作に重大な影響を与え得るシステムである。
【0066】
RTOSにおいてでさえ、プロセスは、一定の時間で反応することはない。なぜならば、いかなる物理プロセスも、十分に小さい時間スケールでは、応答時間において必然的にジッタを有するためである。
図3は、応答時間、すなわち、特定のイベントに反応するために所与のリアルタイムプロセスによって必要とされる時間、及びそれに関連付けられたジッタ(すなわち、偏差)dTを示している。
【0067】
図3は、それぞれ、イベントの発生、反応の発生のための最小時間、及び、反応の発生と、反応の発生のための最小時間との間の遅延の測定値であるジッタを示す、3つの時間線を示している。
【0068】
最も上の時間線は、所与の時点teにおけるイベントの発生を示している。RTOSは、時点teにおけるイベントの発生に対して、最小反応時間Tの前には反応することができず、それにより、ベストケースでは、反応は、時点te+Tにおいて発生することができ、これは、真ん中の時間線上に示されている。すなわち、真ん中の時間線は、イベントの発生に後続する反応タイミングに関してベストケースシナリオを示している。最も下の時間線は、イベントの発生に後続する反応タイミングに関してワーストケースシナリオを示しており、RTOSは、イベントの発生に対して、最小反応時間Tに加えて長さdTのジッタだけ増加した時間の前には反応せず、それにより、反応は、時点te+T+dTにおいて発生する。
【0069】
典型的な埋め込みRTOSにおいて2種類のプロセス、すなわちタスク及び割り込みサービスルーチン(ISR:Interrupt Service Routines)が存在する。ISR及びタスクは、類似しているものとして見ることができるが、ただし、ISRの実行は待機することができない(さもなければ、システムはブロックされる)一方、タスクは、実行まで待機することができるという相違がある。ISRは、割り込みによってトリガーされ、トリガーされると実行され、その後終了する。ISRと異なり、タスクは、それ自身のレジスタバンク及びメモリスタックエリアを有するシステム内の仮想CPUとみなすことができる。
【0070】
RTOSは、プロセス同士の間、例えばタスク同士及びISR同士の間のインタラクションを可能にする同期ツールを提供する。タスクが、割り込みによってトリガーされるいくつかの外部イベントを待機することができるように、いくつかの特定のオブジェクトが提供される。例えば、或るRTOSは、キュー、メールボックス、セマフォ、及び相互排除を提供することができる。
【0071】
上述したように、IEEE802.1Qbvアクセス制御メカニズムは、IEEE802.1Qbvにおいて定義されたタイムスライス内の送信を制限するために、イーサネット送信機が、良好な精度(例えば、厳密に200ns未満の精度)の正確な時点において或る特定のイーサネットフレーム(いわゆるリアルタイムイーサネットフレーム)を送信することが可能であることを要求する。リアルタイムフレームは、通常、レガシーフレーム(すなわち、非リアルタイムフレーム)と共存し、レガシーフレームは、IEEE802.1Qによって導入されたメカニズム等のアクセス制御メカニズムを使用して送信することができる。非特有イーサネットMACコントローラー(すなわち、
図2に示されたコントローラー等の、TSNサポートのために開発された特有な拡張を有しないコントローラー)を使用すると、イーサネット送信機オートマトンの開始、データの内部コントローラーメモリへの転送、及びデータフレームのイーサネット物理レイヤコントローラーへの送信に、数マイクロ秒(μs)が必要とされる。しかしながら、そのような遅延性能は、IEEE802.1qbv要件に適合しない。
【0072】
提案される方法は、有利には、非特有イーサネットMACコントローラー、すなわち、典型的にはマイクロコントローラーユニット(MCU)又は低コストマイクロプロセッサユニット(MPU)上に実装されるイーサネットMACコントローラー上でのIEEE802.1Qbvアクセス制御メカニズムの使用を可能にする。
【0073】
図4は、本主題開示の実施形態によるデータパケット送信特徴を使用するように構成された一例示的なネットワークノード/デバイス100の概略ブロック図である。
【0074】
ネットワークノード100は、中央処理ユニット(CPU)101と、ネットワークインターフェース105と、電源(例えば、バッテリ、プラグイン電源等)104とを備えることができる。CPU101は、制御エンジン102と、メモリ103とを備えることができる。
【0075】
図4に示されているアーキテクチャにおいて、制御エンジン102、メモリ103、ネットワークインターフェース105、及び電源104の全てがシステムバス106を通して互いに作動的に接続されている。
【0076】
制御エンジン102は、1つ以上のプロセッサを備えることができ、プロセッサは、任意の適したマイクロプロセッサ、マイクロコントローラー、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、デジタル信号処理チップ、及び/又は状態機械、又はこれらの組み合わせとすることができる。様々な実施形態によれば、CPU101は、並列計算を提供するために複数のプロセッサを有するマルチプロセッサコンピューターとして構成することができる。
【0077】
また、制御エンジン102は、限定はしないが、制御エンジン102のプロセッサによって実行されると、プロセッサに、リアルタイムオペレーティングシステム103a、1つ以上のアプリケーションタスク103b、及び送信エンジン103cを実行させるコンピュータープログラム命令又はソフトウェアコードを記憶することが可能なメモリ103等のコンピューター記憶媒体を含むこともできるし、これと通信することもできる。メモリ103は、提案される方法の実施形態を実施するコンピューター可読プログラムコードを記憶することが可能な任意のタイプのデータ記憶コンピューター記憶媒体とすることができ、制御エンジン102と作動的に接続し、送信エンジン103cに関連して記憶されたデータパケットの送信を容易にするために送信エンジン103cとともに動作可能とすることができる。
【0078】
ネットワークインターフェース105は、データパケットの送信のための送信FIFOメモリスタック、及びデータの受信のための受信FIFOメモリスタックを制御するように構成された送信/受信(TX/RX)コントローラー105bに作動的に接続された送信/受信(TX/RX)ダイレクトメモリアクセス(DMA)コントローラー105a、媒体アクセスコントローラー(MAC)105c、及び物理レイヤインターフェース105dを備えることができる。
【0079】
本主題開示の実施形態において、ネットワークノード100は、本明細書において説明されるデータパケット送信方法を実行するように構成される。
【0080】
図4を参照して図示及び説明されたネットワークノード100は、単に例示として提供されていることが理解されたい。他の多数のアーキテクチャ、動作環境、及び構成が可能である。他の実施形態のノードは、より少数又はより多数のコンポーネントを含むことができ、
図4に示されたネットワークノードコンポーネントに関して説明された機能のうちの一部又は全てを組み込むことができる。したがって、CPU101、制御エンジン102、RTOS103a、アプリケーションタスク103b、送信エンジン103c、メモリ103、ネットワークインターフェース105、及び電源104がネットワークノード100の一部として示されているものの、コンポーネント101、102、103a、103b、103c、103、105、104のロケーション及び制御に対して制限は課されない。特に、他の実施形態においては、コンポーネント101、102、103a、103b、103c、103、105、104は、異なるエンティティ又はコンピューティングシステムの一部とすることができる。
【0081】
図5は、本主題開示の1つ以上の実施形態による、データパケットを送信する方法の一例示的な簡略フロー図を示している。
【0082】
様々な実施形態において、時間は、複数の連続する期間を含む現在の送信サイクルを含む、複数の連続する時間サイクルに分割することができる。いくつかの実施形態においては、各時間サイクルは、同じ複数の連続する期間を含むことができる。
【0083】
現在の送信サイクル中、1つ又はいくつかの第1のデータパケットと、当該1つ又はいくつかの第1のデータパケットのそれぞれの第1のメタデータ(例えば、データフレームを格納するバッファへのメモリ参照及びフレームサイズを格納するメモリ構造)と、当該1つ又はいくつかの第1のデータパケットに関連付けられた第1の送信優先度(例えば、データパケットのリアルタイムでの送信のために定義された優先度)とを、図示のデータ送信方法を実行するデバイスによって得ることができる(200)。
【0084】
例えば、1つ又はいくつかの第1のデータパケットは、
図4に示されたネットワークノード等のネットワークノードの1つ以上のプロセッサによって実行される1つ以上のアプリケーションタスクから受信することができる。
【0085】
いくつかの実施形態においては、提案される方法を実施するように構成された(データ通信ネットワークにおけるネットワークノードとして動作する)デバイスは、デバイスの1つ以上のプロセッサによって実行される1つ以上のアプリケーションタスクから、通信媒体を介した1つ又はいくつかの第1のデータパケットの送信のための1つ又はいくつかの要求を受信することができる。実施形態に応じて、要求のうちの1つ以上は、第1の送信優先度(例えば、データパケットのリアルタイムでの送信のために定義された優先度)を含むことができ、及び/又は、そこから要求が受信されるアプリケーションタスクのうちの1つ以上は、第1の送信優先度に関連付けることができる。
【0086】
1つ又はいくつかの第1のデータパケットは、その後、提案される方法を実施するデバイスのプロセッサのメモリに記憶することができる(201)。第1の送信優先度に基づいて、第1のメタデータを、プロセッサのメモリ内の第1の待機キューに追加(挿入)することができる(202)。
【0087】
例えば、データパケットは、データパケットを説明する関連メタデータ及び受信データパケットの送信に関係付けられた優先度情報とともに、デバイスによって実行される様々なアプリケーションタスクから受信することができる。有利には、受信データパケットに関連付けられたメタデータのみを待機キュー(例えば、FIFOキュー)に挿入することができ、一方、受信データパケットは、メモリに記憶することができる。
【0088】
第1の優先度に関連付けられたデータパケットの送信のために予約された現在の送信サイクルの第1の期間中、第1のメタデータは、第1の待機キューから、プロセッサとMACコントローラーとの間のデータ通信インターフェース内に含まれるインターフェース送信キューに転送することができる(203)。
【0089】
1つ又はいくつかの第1のデータパケットは、その後、インターフェース送信キュー内の第1のメタデータに基づいて、メモリからMACコントローラー内の送信キューに転送することができる(204)。
【0090】
MACコントローラーの送信キュー内に入ると、1つ又はいくつかの第1のデータパケットは、その後、第1の期間中、送信媒体を介して送信することができる(205)。
【0091】
有利には、特定の期間を各送信サイクル内で定義し、所与の優先度を有する受信データパケットの送信に専用化することができる。これにより、対応する送信優先度に関連付けられたデータパケット、例えば、送信がタイムセンシティブであるリアルタイムデータパケットの送信のために予約される送信時間ウィンドウを定義することが可能になり、それにより、異なる送信優先度に関連付けられたデータパケット、例えば、非リアルタイムデータパケットは、この送信時間ウィンドウ内で送信しないものとすることができる。それゆえ、上記対応する送信優先度に関連付けられたデータパケットの送信タイミングは、当該対応する送信優先度に関連付けられたデータパケットの送信のために予約された送信時間ウィンドウを通じて正確に制御することができる。
【0092】
非リアルタイムデータパケットのハンドリングは、1つ以上の実施形態において、以下のように実行することができる。
【0093】
第2のデータパケットを得ることができ、例えば、第2のデータパケットの第2のメタデータ(例えば、データフレームを格納するバッファへのメモリ参照及びフレームサイズを格納するメモリ構造)、及び第2のデータパケットに関連付けられた(非リアルタイム送信に対応する)第2の送信優先度とともに、アプリケーションタスクから受信することができる。第2のデータパケットも、プロセッサのメモリに記憶することができる。
【0094】
第2の送信優先度に基づいて、第2のメタデータは、プロセッサのメモリ内で、第2の待機キュー、例えば、データパケットの非リアルタイム送信のための待機キューに追加することができる。
【0095】
第1の期間中、第1の優先度を有するデータパケット(例えば、リアルタイムデータパケット)の送信に専用化されるとともに、第1の期間内に含まれる第1の優先度の送信タイムスロットの後に、第2のメタデータを、第2の待機キューから、プロセッサとMACコントローラーとの間のインターフェース送信キューに転送することができる。
【0096】
第1の期間に後続する現在の送信サイクルの第2の期間中、第2のパケットデータは、インターフェース送信キュー内の第2のメタデータに基づいた、メモリからMACコントローラー内の送信キューへの第2のデータパケットの転送を通じて、送信媒体を介して送信することができる。
【0097】
非リアルタイムデータパケットのハンドリングは、1つ以上の実施形態において、以下のように実行することもできる。
【0098】
上述したように、第2のデータパケットを得ることができ、例えば、第2のデータパケットの第2のメタデータ(例えば、データ記述子)、及び第2のデータパケットに関連付けられた(非リアルタイム送信に対応する)第2の送信優先度とともに、アプリケーションタスクから受信することができる。第2のデータパケットも、プロセッサのメモリに記憶することができる。
【0099】
第2のデータパケットが第1の期間中に得られていない場合、第2のメタデータは、最初に第2の待機キューに転送されることなく、プロセッサとMACコントローラーとの間のインターフェース送信キューに直接転送することができる。
【0100】
第2のデータパケットの送信は、その後、上述したように進行することができ、すなわち、第2の優先度に関連付けられたデータパケットの送信のために予約された現在の送信サイクルの第2の期間中、第2のパケットデータは、インターフェース送信キュー内の第2のメタデータに基づいた、メモリからMACコントローラー内の送信キューへの第2のデータパケットの転送を通じて、送信媒体を介して送信することができる。
【0101】
1つ以上の実施形態において、上記で言及した第1の送信優先度は、リアルタイムデータパケットの送信のために定義することができ、上記で言及した第2の送信優先度は、非リアルタイムデータパケットの送信のために定義することができる。
【0102】
図6に示すように、様々な実施形態において、提案される方法を実施するデバイスは、連続するサイクルに分割される時間リソースに従って動作するように構成することができ、各サイクルは、場合によっては、同じ事前定義された持続時間からなり、各サイクルは、最初にリアルタイム周期と、それに後続してレガシー周期とを含み、双方の周期は、実施形態に応じて、事前定義することもサイクルごとに変動することもできる持続期間を有する。
【0103】
1つ以上の実施形態において、サイクルごとに、リアルタイム周期は、提案される方法を実施するように構成された1つ以上のそれぞれのデバイス(ネットワークノード)のために予約された1つ以上のタイムスロットを含むことができる。そのようなデバイスは、リアルタイム周期中の、その予約されたタイムスロット中にのみ、データパケット、例えば、イーサネットフレームを送信するように構成することができる(そのようなデータパケットは、以下、「RTイーサネットフレーム」と称される)。様々な実施形態において、このタイムスロットの位置及び持続時間は、サイクルごとに静的とみなすことができる。デバイスは、時間に関する特有な制約なしでレガシー周期中に、例えば、802.1Qイーサネット標準規格において定義されるようなアクセス制御メカニズムを遵守して、データパケット、例えば、イーサネットフレームを送信するように更に構成することができ、すなわち、イーサネットフレームが、場合によっては全二重モードにおいて厳密に優先度順で送信される。そのような要件をサポートすることにより、有利には、新たに定義されたIEEE801.qbv標準規格を実施することが可能になる。
【0104】
提案される方式は、有利には、RTイーサネットフレームに専用化されたタイムスロット内で、事前定義された精度(例えば、IEEE802.1Qbvタイムアウェアトラフィックスケジューラによって要求される精度)で、イーサネットフレームを送信すること、及び、RTイーサネットフレームの送信の遅延に至ることになるオーバーフローがないように、レガシー周期内のイーサネットフレームの送信を制御することを可能にする。
【0105】
図7は、1つ以上の実施形態による、異なるキューにわたってデータパケット(例えば、イーサネットフレーム)を分配する一例示的な方式を示している。
【0106】
図7は、提案される方法を実施するように構成されたデバイス50の簡略図を示しており、デバイス50は、CPU55を備え、CPU55は、MACコントローラー56(例えば、イーサネットMACコントローラー)に作動的に接続され、MACコントローラー56は、それ自体、物理レイヤ57(例えば、イーサネット物理レイヤ)に作動的に接続される。
【0107】
CPUユニット上で実行される1つ以上のアプリケーションタスク58a、58bは、デバイス50によって送信されるデータパケット、例えば、イーサネットフレームを生成することができる。送信されるフレームは、送信タイミングが正確に制御されるべきである、いわゆるリアルタイムフレーム(「RTフレーム」、
図7に示される例ではRTイーサネットフレームとも称される)、又は、対照的に、レガシーフレーム若しくはノーマルフレームと称される非リアルタイムフレームとすることができる。
【0108】
RTイーサネットフレームは、(レガシーイーサネットフレームと異なり)即座に送信されない場合があり、すなわち、例えば、アプリケーションタスクによって生成された直後に送信されない場合があるので、1つ以上の実施形態において、CPU55内に、RTイーサネットフレームが1つ以上のアプリケーションタスクによって生成される時点と、デバイス50が物理媒体を介してRTイーサネットフレームを送信することができる専用タイムスロットの開始との間、RTイーサネットフレームを記憶するように、RTフレーム用の保留キュー(「RTフレーム保留キュー」と称される)51を構成することができる。
【0109】
1つ以上の実施形態において、レガシーイーサネットフレーム、すなわち、現在のサイクルのリアルタイム周期中に1つ以上のアプリケーションタスクによって生成される、所与の精度でのリアルタイムにおける送信を要求しないイーサネットフレームを記憶するように、レガシーフレーム用の保留キュー(「レガシーフレーム保留キュー」と称される)52も構成することができる。
【0110】
また、1つ以上の実施形態において、レガシーイーサネットフレームは、受信されたレガシーフレームの総持続時間がレガシー周期の持続時間を超過した場合、レガシーフレーム保留キュー52に記憶することができる。
【0111】
図7に示すように、レガシーフレーム保留キュー52及びRTフレーム保留キュー51に加えて、いくつかの実施形態においては、イーサネットMAC DMA送信キュー53を、CPU55とイーサネットMACコントローラー56との間で共有することができる。CPU55は、このキュー53に、アプリケーションタスクから直接又はレガシーフレーム保留キュー52及びRTフレーム保留キュー51のうちの一方から由来するイーサネットフレームを追加するように構成することができる。
【0112】
イーサネットMACコントローラー56は、DMA転送が有効化されているとき、イーサネットMAC DMA送信キュー53からフレームをデキューし、CPUメモリ(例えば、RAMメモリ)から、イーサネットMACコントローラー56の内部イーサネットMAC送信FIFO54(「イーサネットMAC Tx-FIFO」と称される)へのメモリデータ転送(DMA転送)を開始するように構成することができる。メモリデータ転送が完了すると、イーサネット送信機が有効化されていた場合、イーサネットフレームは、イーサネット物理レイヤ57に送信することができ、イーサネット物理レイヤ57は、受信すると、これらのイーサネットフレームを、送信媒体(例えば、送信ワイヤ)を介して送信することができる。いくつかの実施形態において、デバイス50は、DMA転送及びイーサネット送信を独立して有効化/無効化することができるように構成することができる。データフレームが内部イーサネットMAC送信FIFO54に記憶されると、動作は、高速になり、実行時間の観点で非常に低い不確実性を受ける。
【0113】
図8は、提案される方法を実施するデバイス、例えば
図7のデバイスにおいて構成されるような、サイクルごとに定義することができるいくつかのイベントを示している。そのようなデバイスは、1サイクル中、各イベントの発生がイーサネットMACペリフェラル制御、又は内部処理及びイーサネットフレーム準備のいずれかに関係付けられた特定のアクションをトリガーするように構成することができる。
【0114】
図8は、1つ以上の実施形態による、1サイクルに沿って、すなわち、そのサイクルのリアルタイム周期及びレガシー(ノーマル)周期、並びにリアルタイム周期内の専用送信タイムスロットに沿って、イベントをいかに定義することができるかを示す図である。
【0115】
1つ以上の実施形態において、イベント(
図8に示される例では、イベントT0、T1、T2、T4、T5)のうちの一部又は全てを、例えば
図4に示された送信エンジンにおいて実装されるタイマー管理モジュールによって管理される1つ以上のタイマーによってトリガーすることができる。
【0116】
例示的な時間イベントT0、T1、T2、T3、T4、及びT5は、
図7及び
図8を参照して以下で説明され、
図7及び
図8は、これらの時間イベントの例示的な使用を示している。
【0117】
時間イベント「T0」は、サイクルの開始、及び、リアルタイム周期がサイクルの第1の部分内で定義される実施形態においてはサイクルのリアルタイム周期の開始に対応するように定義することができる。
【0118】
いくつかの実施形態においては、イーサネット送信は、時間イベントT0の発生時に無効化されている場合がある。その結果、イーサネットフレームは、イーサネットMACコントローラー(例えば、
図7のイーサネットMACコントローラー56)によってイーサネット物理レイヤ(例えば、
図7のイーサネット物理レイヤ57)に送信することができない。しかしながら、いくつかの実施形態においては、イーサネットMAC DMA送信キュー53とイーサネットMAC送信FIFO54との間の転送は、時間イベント「T0」の発生後も依然として可能とすることができる。
【0119】
いくつかの実施形態において、DMAプロセスを通じたデータの受信(「Rx-DMA」と称される)を、T0の発生時にRTフレームの受信のために有効化することができる。
【0120】
いくつかの実施形態において、「T0,margin」と称される時間マージンを有利に使用して、タイマー管理及び「T0」イベント時に実行される動作によって引き起こされる潜在的なレイテンシーを補償することができる。したがって、送信サイクルは、リアルタイム周期の直前に発生する時間保護周期T0,marginを含むことができ、この周期中、MACコントローラーにおけるデータ送信は、無効化される。
【0121】
時間イベント「T1」は、RTフレーム送信の準備をトリガーするように定義することができる。T1の発生時、RT保留フレームに関連付けられたメタデータは、RTフレーム保留キュー51からイーサネットMAC DMA送信キュー53に転送することができる(転送は、この図において「Data xfer RAM->FIFO」と称される)。
【0122】
いくつかの実施形態において、転送は、さらに、RTフレームの累積持続時間がリアルタイム周期内のデバイス50のために予約されたタイムスロットの持続時間を超過しないことをチェックするために実行することができる。そのようなタイムスロットは、データ通信ネットワーク内の1つ以上のデバイスによる、提案される方式に従ったRTフレームの送信のためにそれぞれ予約された1つ以上のタイムスロットにリアルタイム周期を区分化するように、時間分割多重アクセスにおいてそのデバイスのために定義することができる。
【0123】
したがって、いくつかの実施形態において、RTフレームの累積サイズに対応するデータ量を、リアルタイム周期内でのデバイスによるRTフレームの送信のために予約されたタイムスロット中に送信することができるという判断に基づいて、RTフレームのメタデータを待機キュー(例えば、RTフレーム保留キュー51)に追加することができる。
【0124】
いくつかの実施形態において、イーサネットMAC送信FIFO54へのフレームのDMA転送も、T1の発生時に開始することができる。
【0125】
したがって、いくつかの実施形態において、RTフレームに関係付けられたメタデータは、RTフレームが受信時に内部に記憶された待機キュー(例えば、RTフレーム保留キュー51)から、プロセッサとMACコントローラーとの間のデータ通信インターフェース内に含まれるインターフェース送信キュー(例えば、イーサネットMAC DMA送信キュー53)に転送することができ、RTフレームは、インターフェース送信キューに記憶されたメタデータに基づいて、デバイス50のために予約されたタイムスロットの開始前の第1の所定の時点の後(例えば、時間イベントT1の発生時)に、プロセッサ(CPU)に結合されたメモリから、MACコントローラー内の送信キュー(例えば、イーサネットMAC送信FIFO54)に転送することができる。
【0126】
いくつかの実施形態において、「T1,margin」と称される時間マージンは、有利には、第1のイーサネットフレームに関係付けられたデータが内部MAC送信FIFOに完全に転送されるように、T1の発生とデバイス50のために予約されたタイムスロットの開始との間で使用することができる。
【0127】
いくつかの実施形態において、特に割り込み管理が(例えば、割り込みサービスルーチン(ISR)を通じて)データ送信及び受信間で共有されるデバイスにおいて、メモリアクセス及び受信フレームの処理に起因した擾乱(追加ジッタ)を回避するために、DMAプロセスを通じたデータの受信(「Rx-DMA」と称される)をT1の発生時に無効化することができる。
【0128】
同様に、いくつかの実施形態において、T0の発生時に開始されている場合がある次のサイクルにおいて送信されることになるRTフレームのフレーム受信、処理及び/又は準備を場合によっては含むバックグラウンド処理を、T1の発生時に無効化することができる。
【0129】
時間イベント「T2」を、上述したように、デバイス50のために予約されたタイムスロットの開始に対応するものとして定義することができる。イーサネット送信は、その場合、T2の発生時に有効化することができ、イーサネットMAC送信FIFO54において利用可能な任意のフレームをイーサネット物理レイヤユニット57に転送することができる。この転送は、通常、非常に短く、かつ非常に低いジッタを受けることになり、それにより、この転送は、有利には、割り込みサービスルーチン(ISR)の一部として実行されるように構成することができる。
【0130】
したがって、いくつかの実施形態において、送信媒体を介したMACコントローラー内の送信キュー(例えば、イーサネットMAC送信FIFO54)からのRTフレームの転送は、MACコントローラーによって、デバイス50のために予約されたタイムスロットの開始前の第2の所定の時点後(例えば、時間イベントT2の発生時)のリアルタイム周期中に有効化することができ、第2の所定の時点は、上述した第1の所定の時点の後に発生するように定義される。
【0131】
いくつかの実施形態において、「T2,Margin」と称される時間マージンを、T2の発生とデバイス50のために予約されたタイムスロットの開始との間で有利に使用して、タイマー管理及びイーサネット送信機のハードウェア始動によって引き起こされる潜在的なレイテンシーを補償することができる。
【0132】
時間イベント「T3」は、最後のRTフレームの送信の終了に対応するものとして定義することができる。
【0133】
いくつかの実施形態において、Rx-DMA(DMAプロセスを通じたデータの受信)は、時間イベントT3の発生時にフレームの受信のために有効化することができる。
【0134】
したがって、いくつかの実施形態において、RTフレームの受信は、上述したように時間イベントT1の発生時にリアルタイム周期中に無効化することができ、時間イベントT3の発生時に再び有効化することができる。時間イベントT3を用いてデバイスのために予約されたタイムスロット中のRTフレームの送信の最後を監視することは、有利には、デバイスのために予約されたタイムスロット中のMACコントローラーによるRTフレームの送信が完了されない間、RTフレームのDMA受信を無効化することを可能にし、それにより、DMA受信によって導入される潜在的なレイテンシー(ジッタ)がMACコントローラーによるRTフレームの送信中回避される。
【0135】
いくつかの実施形態において、次のサイクルにおいて送信されることになるフレーム(RTフレーム、又は、実施形態に応じて、RT周期中のRTフレーム及びノーマル周期中のノーマルフレーム)のフレーム受信、処理及び/又は準備を場合によっては含むバックグラウンド処理を、T3の発生時に同様に開始することができる。
【0136】
時間イベント「T4」は、デバイス50のために予約されたタイムスロットの終了に対応するものとして定義することができる。
【0137】
いくつかの実施形態において、レガシーフレーム保留キュー52内で保留中のレガシーフレームに関連付けられたメタデータは、場合によっては、さらに、イーサネットフレームの累積持続時間がレガシー周期の持続時間を超過しないことをチェックするために、イーサネットMAC DMA送信キュー53に転送することができる(この図では「Data xfer RAM->FIFO」と称される)。したがって、レガシーフレームは、(例えば、T4時間イベントの発生時点としての)デバイスのために予約されたタイムスロットの終了の後のリアルタイム周期中に、レガシーフレームが内部で保留中である待機キュー(例えば、レガシーフレーム保留キュー52)から、プロセッサとMACコントローラーとの間のデータ通信インターフェース内に含まれるインターフェース送信キュー(例えば、イーサネットMAC DMA送信キュー53)に転送することができる。
【0138】
いくつかの実施形態において、イーサネット送信は、T4の発生時に無効化することができる。したがって、いくつかの実施形態において、RFフレームは、リアルタイム優先度で送信することができ、すなわち、RT優先度を有するデータの送信のためにそのデバイスのために予約されたタイムスロット中にMACコントローラーによって送信することができ、ただし、そのデバイスのために予約されたタイムスロットは、現在のサイクルのリアルタイム周期内に含まれる。MACコントローラーにおけるデータ送信は、そのデバイスのために予約されたタイムスロット以外の1つ以上の周期の間、すなわち、第1の送信無効期間及び/又は第2の送信無効期間中、無効化することができ、第1の送信無効期間は、そのデバイスのために予約されたタイムスロット前のリアルタイム周期中(例えば、T0において開始し、T2において終了する周期の間)に発生し、第2の送信無効期間は、そのデバイスのために予約されたタイムスロット後のリアルタイム周期中(例えば、以下で説明されるように、T4において開始し、T5において終了する周期の間)に発生する。
【0139】
時間イベント「T5」を、レガシー周期の開始に対応するものとして定義することができる。いくつかの実施形態において、イーサネット送信は、T5の発生時に有効化することができる(これは、T2の発生に関係付けられた動作と同じ動作であり、すなわち、イーサネットMAC送信FIFO54において利用可能な任意のフレームをイーサネット物理レイヤユニット57に転送することができる)。いくつかの実施形態において、次のT0、T1、T2、T4、及びT5タイマーを、T5の発生時にプログラミングすることができる。
【0140】
いくつかの実施形態において、Rx-DMA(DMAプロセスを通じたデータの受信)を、T5の発生時にフレームの受信のために有効化することができる。
【0141】
いくつかの実施形態において、「T5,Margin」と称される時間マージンを、T5の発生とレガシー周期の開始との間で有利に使用して、タイマー管理及びイーサネット送信機のハードウェア始動によって引き起こされる潜在的なレイテンシーを補償することができる。
【0142】
1つ以上の実施形態による提案されるキュー管理方式が、以降で説明される。
【0143】
1つ以上の実施形態において、周期(リアルタイム周期及びノーマル(レガシー)周期)ごとに、それぞれリアルタイム周期についてSRT、及びレガシー周期についてSLeと表記される1つ以上の状態変数を使用して、それぞれの周期における残りの自由時間を維持することができる。さらに、任意の時点tにおいて、状態変数Ptを使用して、現在の周期のタイプ(「RT」又は「レガシー」のいずれか)を示すことができる。サイクルの開始時、双方の変数を各周期のそれぞれの持続時間に初期化することができる。例えば、SRTは、リアルタイム周期の持続時間に初期化することができ、SLeは、レガシー周期の持続時間に初期化することができる。
【0144】
いくつかの実施形態において、T1イベントの発生時、状態変数SRTがキューの先頭に位置するフレームの持続時間よりも大きい間、RTフレーム保留キュー51のフレームをデキューし、MAC DMA送信キュー53にエンキューすることができる。SRT状態変数は、RTフレームがMAC DMA送信キュー53に追加される度にSRTがフレーム持続時間に対応する値だけデクリメントされるように、管理することができる。
【0145】
いくつかの実施形態において、レガシーフレーム保留キュー52とMAC DMA送信キュー53との間のT4イベントの発生時に、SLe状態変数について同じ管理プロセスを適用することができる。すなわち、T4イベントの発生時、SLeがキューの先頭に位置するフレームの持続時間よりも大きい間、レガシーフレーム保留キュー52のフレームをデキューし、MAC DMA送信キュー53にエンキューすることができる。SLe状態変数は、レガシーフレームがMAC DMA送信キュー53に追加される度にSLeがフレーム持続時間に対応する値だけデクリメントされるように、管理することができる。
【0146】
いくつかの実施形態において、RTフレームを送信しなければならないアプリケーションタスクは、最初にRTフレームをRTフレーム保留キュー51内にポストすることができる。
【0147】
いくつかの実施形態において、レガシーフレームを送信しなければならないアプリケーションタスクは、状態変数Ptが「RT」に設定される(tは、現在の時点である)場合に、レガシーフレームをレガシーフレーム保留キュー52内にポストすることができる。Ptが「レガシー」に設定される場合、レガシーフレームは、SLe及びレガシー周期の終了前の時間がフレーム持続時間よりも大きいとき、MAC DMA送信キュー53内にポストすることができる。
【0148】
この提案されるキュー管理方式は、定義された周期の遵守を確実にし、また、有利には、レガシーイーサネットフレームの送信時間を最適化する。実際、タスクによって提案されるレガシーイーサネットフレームは、現在の周期がレガシーフレームに専用化される場合、実質的に即座に送信される。
【0149】
1つ以上の実施形態による提案されるタイマー管理方式が、以降で説明される。
【0150】
1つ以上の実施形態において、タイマー管理モジュールは、クロック(例えば、高精度時間プロトコル(PTP)クロック)によってトリガーされるとともに、レガシースレッドモードにおいて、又はより良好な精度のためにISR(割り込みサービスルーチン)モード下で、特定のアクションを実行するように実装及び構成することができる。
【0151】
上述したように、いくつかの実施形態において、ISRにおいて実行されるアクションの数は、更なるISRの実行レイテンシーを低減するために制限することができる。そのような実行モードは、ISRタスクとRTOSタスクとの間の通知メカニズムを使用することを回避し、それによりトリガーされたアクションを実行するのに必要なレイテンシー(及び関連付けられたジッタ)が低減されるので、有用である。
【0152】
例えば、いくつかの実施形態において、タイマー管理モジュールは、単一のハードウェアタイマーを使用するとともに、イベントコンテキストの連鎖リストを使用するように構成することができる。タイマー管理モジュールは、次のタイマー目標値をプログラミングするとともに、イベントアクションを実行するように構成されたタイマー管理RTOSタスクを実行することができる。ハードウェアタイマーがイベントの発生に対してトリガーされる度に、ハードウェアタイマーは、連鎖リスト上の次のイベントの発生に対して再プログラミングすることができる。複数のイベントを順次的に管理するための単一のタイマーの使用は、有利には、所与の精度で実行ジッタを達成するように、イベントの発生ごとの実行ジッタが限られたものになることを確実にすることを可能にする(例えば、単一のタイマーの使用は、タイマーに関連付けられたタスクを実行するためにいくつかの連鎖リストをパースすることを回避する)。
【0153】
いくつかの実施形態において、各イベントコンテキストは、目標時間、イベントアクション(いくつかの実施形態においては、対応するコンピューター可読プログラムコードが実行されるアドレスによって表される)、及び場合によっては、トリガーされるアクションがISRの内部で直接実行されることになるのか、又はタイマー管理タスクにおいて実行されることになるかを示すフラグを含むことができる。
【0154】
いくつかの実施形態において、リストは、連鎖リストイベントコンテキストの処理を高速化するために時間順にすることができ、低順位のタイムスタンプを有するイベントは、連鎖リストの先頭に置くことができる。そのような実施形態において、ハードウェアタイマーが満了すると、適切なISRを実行することができ、対応するフラグが設定されている場合、連鎖リストの先頭におけるイベントコンテキストに関連付けられたイベントアクションを実行することができる。実施形態において、関連付けられたイベントアクションを未だ実行されていない場合に実行し、連鎖リストの先頭におけるイベントコンテキストをデキューし、連鎖リストの先頭に新たに位置するイベントコンテキストに基づいて次のタイマー目標値をプログラミングするために、ISRの実行時にタイマー管理タスクをウェークさせる(フラグがそれを要求していない、又はフラグが使用されていない実施形態の場合であっても)ことができる。
【0155】
そのような実施形態は、有利には、時間レイテンシー、及びイベントに関連付けられたアクションの実行についてのジッタを低減することになる。
【0156】
上述したように、1つ以上の実施形態において、タイマーによってトリガーされるいくつかのイベントの実行時間は、遅延を補償するためにタイマーを予期することができるように評価することができる。特に、
図7及び
図8に関して上述された実施形態を参照すると、要求される時間精度を達成するために、T2タイマーによってトリガーされるイベントの遅延を正確に補償することが重要である。しかしながら、この遅延補償は、計算が非常に容易というわけではなく、CPU周波数、キャッシュアーキテクチャ、コードのサイズ...等の多くの因子に依存することになる。
【0157】
この問題に対処するために、T2イベントにおいて実行される動作中にイーサネット送信機を有効化するためにシステムによって要求される時間量を決定するために、1つ以上の実施形態に従って、自動較正方法が提案される。提案される方式は、いくつかの特定のフレーム上でMACコントローラーによって実行されるハードウェアタイムスタンプ付与に依拠する。ハードウェアタイムスタンプ付与は、上記で言及されたクロック(例えば、PTPクロック)を使用して実行することができ、PHYレベルにおいてフレーム送信の高精度の時間を含む。この値を予想送信時間と比較することは、大域的実行時間遅延を決定することを可能にする。この遅延は、ISRルーチンの実行時間、タイマー管理に使用されるプログラムコード、及びT2関連アクションに使用されるプログラムコードを含む。
【0158】
いくつかの実施形態において、各サイクルにおいて、リアルタイム周期内で送信される第1のフレームは、送信タイムスタンプ付与が下位レベルにおいて実行されるようにタグ付けすることができる。平均遅延が計算され、T2タイマーを補償するためのT2マージンとして適用される。
【0159】
本主題開示の方法及び装置は、有利には、クリティカルネットワーク(ファクトリーオートメーション、自動車)におけるセンサー/アクチュエーター等の通信インターフェース(例えば、イーサネット通信インターフェース)を有する低コストデバイスにおいて実施することができる。方法及び装置は、さらに、TSN標準規格プロトコルとの互換性を可能にし、標準イーサネット上で確定的メッセージングが提供される。方法及び装置は、有利には、非特有イーサネットMAC統合ペリフェラルを有する低コストMCU/MPUプラットフォーム上で実行するのに使用することができる。
【0160】
本発明は或る特定の好ましい実施形態との関連で開示されてきたが、そのシステム、デバイス及び方法の或る特定の利点、特徴及び態様は種々の他の実施形態において実現される場合があることは理解されたい。さらに、本明細書において説明される種々の態様及び特徴は、別々に実践することができるか、互いに組み合わせることができるか、又は互いに代用することができること、並びに特徴及び態様の種々の組み合わせ及び部分的な組み合わせを行うことができ、それでも本発明の範囲に入ることを意図している。さらに、上記のシステム及びデバイスは、好ましい実施形態において説明されたモジュール及び機能の全てを含む必要はない。
【0161】
本明細書において説明される情報及び信号は、種々の異なる技術及び技法のいずれかを用いて表すことができる。例えば、データ、命令、コマンド、情報、信号、ビット、シンボル及びチップは、電圧、電流、電磁波、磁界若しくは磁気粒子、光場若しくは光子、又はその任意の組み合わせによって表すことができる。
【0162】
実施形態によっては、本明細書において説明された方法のいずれかの或る特定の動作、イベント又は機能は、異なる順序において実行することができるか、追加されるか、統合されるか、又は全て除外される場合がある(例えば、方法を実践するために、説明される全ての動作又はイベントが必要とされるとは限らない)。さらに、或る特定の実施形態では、動作又はイベントは、順次にではなく、同時に実行される場合がある。