BELLE 高速データ転送・記録システム
このメモは、
BELLE 実験
のための、計算機システムの一部をなす
高速データ転送・記録システムの部分の仕様を決める際のたたき台とした
私(藤井啓文)の個人的メモです。高速データ転送・記録システム
の役割等を、私個人がどのように考えているかを示すものであって
公式のものではないことにご注意下さい。
(現在、導入されようとしている、このシステムの概略図(GIF 18KBytes)
はここ)。
システムの概要
1.目的
BELLE 実験における各測定器からのデータは、事象単位にまとめられ、
オンラインファームで処理される。要求される処理速度を満たすため
にオンラインファームは多数の CPU を用いて事象単位で並列処理
を行う。本システムはオンラインファームで処理された事象データを、
テープライブラリ装置1へ転送し直列化して記録することを目的とする。
2.持つべき機能
本システムは次の機能を持つものとする。
- オンラインファームからの事象データ書き込み通知を受け取り読み取る。
- 並列に読み込まれた事象データを直列化する。
- 事象データをケーブル長で約 2.5 km 離れたトリスタン計算機棟へ
転送する。
- 転送されたデータをテープライブラリ装置1の磁気テープ媒体に記録する。
- 記録媒体が終端に近づいたことを検知し、媒体を自動的に交換する。
- 転送障害時には、バックアップ記録装置を用いてデータを記録する。
- BELLE 実験制御ネットワークにより伝達される Run の開始・終了
および状態報告命令を受け取り、必要な処理を行う。
- システムの状態報告を BELLE 実験制御用ネットワーク経由で行う。
システムの範囲
構成要素
本システムは次の構成要素から成る。
- VME 部
- 直列化部
- 転送部
- 記録部
- バックアップ記録部
また、本システムに直接接続される要素(本所が用意する)に次の
ものがある。
- オンラインファーム
- BELLE 実験制御用ネットワーク
これらの各部間を接続するため、本システムは次のインターフェイス
を有する。
- VME システムインターフェイス
- 送信インターフェイス
- 受信インターフェイス
- 記録装置インターフェイス
- バックアップ記録装置インターフェイス
- BELLE 実験制御用ネットワークインターフェイス
事象データの直列化は、転送前に筑波実験室側で行ってもよいし、
転送後にトリスタン計算機棟側で行ってもよい。ただし、転送後に
直列化する場合は、筑波実験室側に設置されるバックアップ記録装置に
対しても直列化機構が必要となることに注意すること。
各部およびインターフェイスの関係は、直列化部を用意する場所により
異なる。直列化部を転送部の前に置く場合の各部の位置関係を図1に、
直列化部を転送部の後に置く場合の位置関係を図2に示す。
図1:直列化部を転送部の前に置く場合
図2:直列化部を転送部の後に置く場合
各部の役割
VME 部
VME システムインターフェイスは、各事象データメモリー
モジュールから発生する割り込みを受け付け、
指定されたアドレスとデータ長をもとにデータを読み出す。
転送部
送信は各 VME システムインターフェイスにより
読み取られた事象データを長距離転送部の経路数に応じて
直列化し、送信インターフェイスを通じて行う。
単一経路による受信では、転送されてきたデータを記録装置
インターフェイスを通じて記録媒体へ書き込む。
複数経路による受信では、このデータを直列化部へ転送する。
直列化部
直列化部は複数の入力源からのデータを直列に並び変える。これが
転送部より前にある場合は、VME 部からのデータを受信しながら
転送部へ出力することが必要である。転送部より後にある場合は、
受信しながら記録部へ出力することが必要である。
直列化の順序は1事象データを最小単位として任意でよい。
記録部
仕様書テープライブラリ装置1を見よ。
要求要件
本システムに要求される性能は次の通りである。
- 連続して毎秒 15M バイト以上のデータ転送能力および記録能力を
有すること。
- 媒体交換による記録停止は30秒以下であること。
これを実現するために、各部に対し、以下の性能を要求する。
- VME 部は 3 つ以上の 6U の VME バスを有すること。またバス電源
を供給すること。
- VME 部は全体として、事象データメモリを 10 台以上格納でき、
かつ同時に使用できること。
- VME システムインターフェイスは、DMA マスター機能を有し、
1Mバイト以下のブロックサイズで、VME バスの数を経路数と見なして
表1に示す値以上でデータを転送できること。
- VME システムインターフェイスは、上記転送を行いながら、
複数の VME の割り込み源からの非同期割り込みを受け付け、
処理できること。割り込みは 10Hz まで処理できること。
- 直列化部は表1に示す並列入力の速度でデータを受信しながら、
連続して毎秒 15M バイト以上で直列化し、出力できること。直列化
の順序は1事象を最小単位として任意でよい。
- 記録部は毎秒 15M バイト以上の入力データを受信しながら、
連続して毎秒 15M バイト以上で記録できること。
- 記録部は記録中のドライブ1台の他に媒体を装着し記録可能状態で
待機しているドライブ1台、故障時交換用ドライブ1台を用意
すること。媒体終端に近づいた時には、待機ドライブに自動的に 30 秒
以内で切り替え、記録を続けること。先に記録中であったドライブは、
新しい媒体を自動的に装着し、記録可能状態で待機させること。
- 各部はネットワークインターフェイスを有し、BELLE 実験制御
用ネットワークに接続でき、TCP/IP を用いて通信できること。
BELLE 実験制御用ネットワークはイーサネットとしてよい。
また、筑波実験室側で一つ、およびトリスタン計算機棟側で一つに
各部をまとめてから接続してもよい。
- BELLE 実験制御用ネットワークを介して送信されるメッセージを
受信し、初期化等の必要な動作を行うこと。また、状態報告
要求メッセージに対し、状態報告を行うこと。
- 各部に障害が発生した場合は、BELLE 実験制御用ネットワーク
を介して報告すること。
- バックアップ記録部は、毎秒 7.5 Mバイト以上の入力データを
受信しながら、連続して毎秒 7.5 Mバイト以上で記録できること。
ただし、媒体交換時間は含まなくてよい。
- バックアップ記録部は、少なくとも3日間の連続運転が行える
こと。ただし媒体交換は手動でよい。
複数経路に対する転送速度
本システムは毎秒 15Mバイト以上のデータ転送能力を要求している。
これを実現するのに、複数経路を使用する場合、各経路における
データ転送能力は、次の表に示す値とする。
表1:複数経路の転送能力
経路数 | 転送能力(毎秒 MB以上)
|
1 | 15
|
2 | 11
|
3 | 8.7
|
4 | 7.5
|
5 | 6.7
|
6 | 6.1
|
7 | 5.7
|
8 | 5.3
|
注:この値は、各経路の転送データ量が独立にゆらぐものとして、
毎秒 15M バイトを経路数の平方根で割ったものである。
VME 部でのデータ転送能力
- VME 部におけるデータ転送能力を示すにあたって、
各事象データメモリからの 1 回のデータ転送量は 1M バイト以下
での値を示すこと。
- 割り込みは各 VME バスで少なくとも 10Hz までは処理できる
こと。
これらの条件を満たした上で、VME バスの数を経路数とみなして
表1に示してある処理能力があると判断されること。
システムに対する指針
本システムは、ソフトウェア等の設計に依存する部分が多く
存在する。そこで、以下に本システムに対する指針を示す。
本システムの制御
全体制御
本システムは BELLE 実験制御用ネットワークにより制御
される。
BELLE 実験制御用ネットワークはイーサネット媒体上の
TCP/IP ネットワークである。
RUN の開始、および終了は、この BELLE 実験制御用ネットワーク
を介して行われる。また、これらメッセージに対する応答を
行う。
このメッセージ交換は TCP/IP の特定ポートで行われる。
本システムは、これらのメッセージを送受信するためのサーバ
プロセスを含む。
一つのメッセージは ASCII 文字列により形成され、ASCII 0 (NULL)
によりメッセージの終端を示す可変長データである。
一つのメッセージは NULL まで含めて 512 バイト以下である。
転送制御
本システムのデータ転送の制御のために、VME メモリ空間の特定アドレス
を次の表に示す目的に使用する。
表:転送制御のために使用される VME メモリ
名称 | 役割
|
状態フラグ | 転送可能状態を示す
|
要求アドレス | 要求する転送開始アドレスを示す
|
要求データ長 | 要求する転送データ長を示す
|
送信系列番号 | 送信するデータの最初の系列番号を示す
|
完了アドレス | 完了した転送の開始アドレスを示す
|
完了データ長 | 完了した転送のデータ長を示す
|
受信系列番号 | 次に受け取るべき系列番号を示す
|
状態フラグ
VME バスのメモリ空間内に、本システムから書き込み可能なフラグ
が用意される。
このフラグは事象データメモリからの転送が可能であるか不可能
であるかを示す。このフラグの設定は、本システムが行う。
このフラグを不可能に設定している時、事象データメモリ側からの
割り込みは、無視してよい。
このフラグはオンラインファーム側から読み出し可能である。
転送の開始と完了
転送の制御は7つの VME 空間のメモリを用いて行われる。このうち
要求アドレス、要求データ長および送信系列番号は事象データメモリ側が
書き込む。
残りのうち、完了アドレス、完了データ長および次系列番号は本システムが
書き込む。
状態フラグは双方から読み込み、書き込みを行う。
オンラインファームは事象データメモリに転送用データの準備ができると、
転送開始アドレス、転送データ長および送信系列番号を書き込み、
VME システムインターフェイスに割り込みをかける。
VME システムインターフェイスは、割り込みを受け付けたら、このメモリを
読み取り、転送を開始する。転送が完了したら、この完了した転送の
開始アドレスと転送データ数および受信系列番号を書き込む。
障害処理
本システムに障害が発生した場合は、BELLE 実験制御用
ネットワークを通じて BELLE 実験制御システムへ通知する。
本システムの転送部、記録部のいずれか、
または両方に発生した障害により記録部での
記録が不能になった場合は、バックアップ記録部で記録する。
事象データメモリモジュールの動作
事象データメモリモジュールの動作を以下に記述する。
この動作に基づき、VME システムインターフェイスの
動作を設計すること。
事象データメモリモジュールは、
- 状態フラグのうちの完了フラグが set されていることを check し、
- 転送完了フラグを clear し、
- 転送先頭アドレス、転送データ数および送信系列番号を書き込み
- 完了フラグを clear し、
- 割り込みをかける。
VME システムインターフェイスの動作
VME システムインターフェイスは事象データメモリモジュール
からの割り込みに対し、次の動作を行う。
- 割り込み Vector から転送レジスタ(メモリ)決定
- 転送レジスタに示される先頭アドレスとデータ数に従って転送
- 転送完了したら、先頭アドレスとデータ数および受信系列番号を設定
- 状態フラグのうちの転送完了フラグを set
転送障害を検知した場合は、次の動作を行う。
- 先頭アドレスと正常に転送が完了したデータ数
および障害により転送できなかった最初の系列番号を受信系列番号
に設定し、
- 完了状態にエラーコードを設定する。
割り込み Vector から転送レジスタ(メモリ)の決定には
予め決められたテーブルを用いる。
このテーブルは書き換え可能であること(システムリセットを
伴ってもよい)。
直列化
直列化は少なくとも2個所で必要になる。一つは各 VME バス上で
各事象データメモリモジュールから並列に入ってくるデータを
一つの VME システムインターフェイスで処理するために必要であり、
もう一つは、各 VME システムインターフェイスから送られてきた
データを一つの記録装置で記録するために必要である。
インターフェイス等は異なるが、基本動作は同じであるので、
ここでは VME システム上での直列化動作について説明しておく。
考慮すべき点は以下の通りである。
- 複数の割り込み源(事象データメモリ)があり、非同期で
割り込みが起こる。
- 割り込みに伴うデータ転送量は1回毎に異なる(可変長データ)。
これを VME システムインターフェイスで処理する。
実装例を示す。
- 割り込みを処理するドライバーを用意する。割り込みの性質は
同一であるので、このドライバーは1種類でよい。
- 各割り込み源(事象データモジュール)に対し、複数のプロセスを
起動しておく。
- このプロセスは同一クラスに属する複数のオブジェクトであり、
扱う事象データメモリモジュールが異なる。すなわち、扱う VME 空間
が異なる。
- このプロセスは通常休眠状態に置く。
- 割り込みドライバーは、割り込み源に応じて、対応するプロセス
にシグナルを送り、プロセスを起こす。ドライバーは、この後、直ちに
システムに制御を戻す。
- プロセスはドライバーにより起こされたら、担当する VME 空間の
転送先頭アドレスおよび転送データ数を読み取る。
- プロセスは続いて、メモリー管理モジュールに対し、必要サイズ
を要求する。
- メモリー管理プロセスは、空きメモリを割り当て、このプロセス
に通知する。(ここでも通知が来るまではポーリングせずに休眠すること)。
- プロセスは通知を受け取ったら、DMA 転送を行い、転送完了後、
完了先頭アドレスおよび完了データ数を設定する。
その後、完了フラグを設定する。