Ethernet TSN(8)時分割多重におけるプリエンプションの概要

工場や物流現場の様々な機械やロボットを期待通りに動かすためには「ハード・リアルタイム」が欠かせない。Ethernet TSN は、ハード・リアルタイムを実現する基本的な仕組みとして、時刻同期による時分割多重を導入した。一定のサイクル時間内に確実に届ける必要がある「CDT」とサイクル時間や確実な伝送があまり重要ではない「その他」の時間帯を一定サイクルで交互に繰り返す方式だ(図1 参照)。一般的にサイクル時間はミリ秒単位だが、自動運転などの高速・高精度な制御が必要な用途ではマイクロ秒単位になる可能性がある。

Ethernet TSN では、「CDT」専用時間帯を「その他」時間帯のトラフィックから守り、「その他」時間帯を確実に使う仕組みとしてプリエンプション(preemption)機能を新たに追加した。

図1 時分割多重によるサイクル時間
図1 時分割多重によるサイクル時間
プリエンプション(Preemption)

プリエンプションは、元々はソフトウェア用語だ。OS のスケジューラが実行中のタスクに行う操作の一つで、実行中のタスクを強制中断し、他のタスク実行に切り替える操作のことだ。一般的には、CPU の割込み機能(タイマーなど)で起動する。このようなタスク切り替えを「コンテキストスイッチ」、プリエンプションで停止していたタスクの実行を再開することを「ディスパッチ」と呼ぶ。この操作を短い周期で高速に繰り返すことで、一見複数のタスクが1個のCPUで同時に動作しているように見えるマルチタスクを実現している。

CDT専用時間帯とその他時間帯の特性

時分割多重で分割した「CDT」と「その他」の時間帯で送受信されるデータの特性を改めて確認したい。産業用ネットワークでは、アプリケーション・ソフトウェアがサイクリックに実行されることが多い。エンコーダやサーボモータなどのデータを読み込み、判断や処理を行った後、更新データを書き込む。この処理を延々と繰り返す。送信フレームの数やビット数は変わらない。この周期的な動きは、PLC(Programmable Logic Controller)DCS(Distributed Control System)では、一般的な動作だ。巡回するデバイスの数や読み書きデータ量は常に一定で、システムを組み替えない限り変わることは考えにくい。伝送路の速度が決まれば、サイクル時間や送受信に必要な時間は正確に計算できる。もちろん、衝突が起きない全2重通信が前提だ。 CDT 専用時間帯の送受信フレームを「周期性通信(Cyclic 通信」、その他の時間帯でやり取りするフレームを「非周期性通信(Acyclic 通信」と呼ぶ。例えば、5個の周期性メッセージ送信は図2 のイメージだ。同じフレームが繰り返し送信される。

図2 フレームのサイクル通信
図2 フレームのサイクル通信

PLCやDCSなどのサイクリックな通信以外に周期性のない通信がある。例えば、エラーが発生し診断データを取得する場合や、デバイスにデータをダウンロードする場合だ。Web ページにアクセスしたり監視カメラ映像が流れることもある。これらのデータの送受信タイミングとデータ量は予測できない。これらの非周期性データは、「その他」の時間帯で送受信を行うが、都合よく「その他」の時間帯枠に収まるとは限らない。その他の時間帯を超過したり、何も送信されないサイクルもあり得る。つまり、非周期性データには規則性がない(図3 参照)。特に図4 の様に時間帯枠を超過すると、肝心な「CDT」専用時間帯を侵食することになる。

サイクル時間や遅延に厳しい制御データが遅れると、重要なデータ取得が遅れたり、制御手順が変わり機械が壊れるかもしれない。自動車の制御が影響を受ければ、人命にも関わる事態を招く。「その他」時間帯のデータが「CDT」時間帯の邪魔をせず、「その他」時間帯を効率よく使う仕組みが「プリエンプション」だ。

図3 規則性のない非サイクル通信
図3 規則性のない非サイクル通信
図4 その他時間帯通信(Acyclic 通信)がCDT 専用時間帯(Cyclic 通信)を侵食
図4 その他時間帯通信(Acyclic 通信)がCDT 専用時間帯(Cyclic 通信)を侵食

ガードバンド

非周期性通信フレームが多すぎると「その他」時間帯を超え、「CDT」専用時間帯を侵食する。この侵食を防ぐために「その他」時間帯の末尾に「ガードバンド」を設け、ガードバンドの時間帯でのフレーム送信を制限することで、「CDT」専用時間帯を守ることができる。プリエンプション機能の一部であるガードバンドについて、次の3つのケースで説明する。もちろん、「その他」時間帯はガードバンドより短くできない。

図5 ガードバンド動作条件
図5 ガードバンド動作条件

ケース 1:送信フレーム長不明

このケースでは、送信フレームの長さが分かっていないため、64バイトから1522バイトのフレームを送信する可能性がある。「CDT」専用時間帯を守るためには、ガードバンドの幅を最大長フレーム相当に設定しなければならない。伝送路上のVLAN 付き最大長フレームは、最大長フレーム1522バイトに物理層で付加される20バイトを加算し1542バイトだ。

ガードバンドが始まったときに既に送信を開始しているフレームはそのまま送信を続けるが(図6 サイクル時間 n+1)、ガードバンド時間帯では新たなフレーム送信を開始しない(図6 サイクル時間 n) 。このような制限をかけることで、「その他」時間帯の Acyclic 通信が「CDT」専用時間帯の Cyclic 通信を邪魔することはなくなる。ガードバンド以降は新たなフレームを一切送信開始しない判断ポイントであるため、ガードバンド幅は伝送路上の最大フレーム長より1バイト小さい値に設定する。実際に設定するガードバンド幅は、1541バイト長になる。

ケース1では、最悪1541バイト分(伝送路上の最大フレーム長より1バイト少ない)の時間空白ができロスになる。1541バイトは、100Mbps イーサネットでは 123.28マイクロ秒になる。図6 のケース(サイクルタイムが1ミリ秒、CDT 専用時間帯が250マイクロ秒、その他時間帯が750マイクロ秒)では、約 16% のロスに相当する。確実に「CDT」専用時間帯を守ることができるが、効率は良くない。

図6 ガードバンドケース 1
図6 ガードバンドケース 1

ケース 2 :送信フレーム長は既知/フレーム分割なし

送信フレームの長さが分かっているケースだ。一般的な Store & Forward スイッチはこの状態だ。図7 の様にケース1と同様に、その他時間帯の最後に 1541 バイト相当のガードバンドを設ける。ガードバンド内に入ったところで、送信フレーム長とガードバンドの残時間を比較する。ガードバンド時間内に送信できれば送信を開始し(図7 サイクル時間 n)、超過する場合は送信を開始せず、次のサイクルを待つ。もちろん、既に送信を開始しているフレームの送信を止める必要はない(図7サイクル時間 n+1) 。

ガードバンドの残りが 63 バイトフレーム分未満(実際は、物理層付加の20バイトを加算し 83 バイト未満)になるとフレーム送信を開始せず、次のサイクルを待つ。イーサネットの最小フレーム長が64バイトであるため、これより短い時間では何も送信できないためだ。

このケースで、運が良ければその他時間帯を全て使い切ることができる。運が悪いと 1541 バイト分のロスが出る。最悪ケースはケース1と同等だが、ガードバンド内の使用効率は改善する。

図7 ガードバンドケース 2
図7 ガードバンドケース 2

ケース 3:送信フレーム長は既知/フレーム分割あり

このケースが本来のプリエンプションだ。送信フレームの長さが分かっていて、かつ「その他」時間帯に収まらない場合はフレームを分割送信するケースだ。ガードバンドが終了する前に、長すぎるフレームの送信を中断し、フレームの残りの部分は次の「その他」時間帯で送信する。状況によっては、3個以上のフレームに分割してもよい。プリエンプションは、Link by Link (接続 Link 単位)で動作する。スイッチが送信したフラグメント(分割)フレームは次段のスイッチで組み立てられて元に戻る。IPプロトコルがサポートする End to End のフラグメントではない。全体の動作概要は、図8 を参照いただきたい。

図8 Link by Link プリエンプション
図8 Link by Link プリエンプション

図9 では、その他時間帯の非周期性フレーム(Acyclic)の A1 は2個に、 A3 は3個に分割送信している。図9 はサイクルを縦に並べたが、横に並べると図10 のようになる。

図9 ガードバンドケース 3
図9 ガードバンドケース 3(1)

フレーム分割(フラグメント)を行うため、ガードバンドの幅が変わる。イーサネットフレームの最小サイズは64バイトで、63バイト以下のフレームは「ラントフレーム(ゴミフレーム)」と呼ばれ、受信すると物理層でノイズとして廃棄される。エラーにもならない。フレーム長が128バイトであれば2個に分割できるが、127バイトでは64バイト+63バイトとなり分割できない。フレームを分割できる限界は127バイトであるため、ガードバンドは127バイト(実際は物理層で付加される20バイトを加算し147バイト)になる。ガードバンドの127バイト未満になるとフレーム分割ができないため、「その他」時間帯におさまるフレームは送信されるが、入りきらないフレームは次のサイクルを待つことになる。

もちろん残り時間が64バイト未満になれば、新しいフレーム送信はできない。ガードバンドの幅はかなり狭くなり、効率は改善されるが動作は複雑だ。

図10 ガードバンドケース 3(2)
図10 ガードバンドケース 3(2)

Ethernet TSN

この記事を書いた人

岩崎 有平

早稲田大学 理工学部 電子通信学科にて通信工学を専攻。
安立電気(現 アンリツ)に入社後、コンピュータ周辺機器の開発を経てネットワーク機器の開発やプロモーションに従事する。
おもにEthernetを利用したリアルタイム監視映像配信サービスの実現や、重要データの優先配信、映像ストリームの安定配信に向けた機器の開発行い、Video On Demandや金融機関のネットワークシステム安定化に注力した。
現在は、Ethernetにおけるリアルタイム機能の強化・開発と普及に向けて、Ethernet TSNの普及活動を行っている。