www-server:/usr/www/docs/Divisions/np1/tamidaq/info/mt_format.txt.v1.1 MTフォーマット仕様 ver 1.1 22-SEP-1995 0.序 このマニュアルではデータ収集システムが扱うMTフォーマットを定義します。全て のデータはこのフォーマットを満たしていなければなりませんし,全ての解析プログ ラム等はこのフォーマットを扱えなければなりません。フォーマットはバージョンア ップされます。従って古い解析プログラムは新しいフォーマットを理解できないかも 知れません。その場合でもバージョンの違いを区別できるように考慮してありますの で,古いプログラムは自分で扱えない事が分かります。そして適切なエラーメッセー ジを出す事が求められます。新しいプログラムが,古いフォーマットを理解できるよ うにする事は推薦されますが,必須ではありません。RCNPで供給するソフトウエ アはバージョン1.0から最新のものまでの全てのバージョンをサポートします。こ のマニュアルで定義されるMTフォーマットのバージョンは0.1です。バージョン 0.xのフォーマットはテスト実験期間に用いられ将来に渡るサポートは保証されま せん。 1.MTフォーマット MTに書かれるデータはいくつかのブロックから構成されています。これはMT上の 物理ブロックと対応しています。このブロックの長さは可変長ですが,計算機によっ て読み書きできる最小最大のブロック長があります。このフォーマットでは一般的な 全ての計算機で読み書きできるように最大長を16380ワードとします。最小値は フォーマット上は7ワードですが,10ワードに満たない場合はごみデータを後ろに 追加して10ワードにする事が推薦されます。 このフォーマットはMT以外にもデータをやり取りする場合に使用されます。MT以 外の場合のブロック長は最小7ワード,最大16380ワードとなります。 ブロックはワード列として書かれます。1ワードは2バイト(16ビット)です。長 さは全てワード単位で書かれます。ブロックの内部構造は次節を参照して下さい。 各々のパケットには省略可能なワードがあります。これはそのワードは必須ではなく 存在しなくても良い/存在しないかも知れないという事です。しかし,各ワードはそ の位置だけで性質が分かるようになっていますので,省略したワード以降の全てのワ ードを省略しなければなりません。書きたいワードより前に省略したいワードがあっ ても省略できません。 長さを表すワードは最小値は定義されていますが,最大値はフォーマット上3276 7になっている場合が多いです。しかし,実際にはブロック長,イベント長などの制 限も同時に満たさなければならないので,フォーマット上の最大値まで使える事はな い事に注意して下さい。 2.ブロックフォーマット 2−1.ブロックフォーマットの概要 ┌────────────┐ 1つのブロックはブロックヘッダー,ブロックト │ ブロックヘッダー │ レイラー,イベントデータから構成されます。ブ ├────────────┤ ロックヘッダーとブロックトレイラーは必ず存在 │ イベント 1 │ しますが,イベントデータは存在しない場合もあ ├────────────┤ ります。尚,MT等ではブロックトレイラーの後 │ イベント 2 │ ろにごみデータがある場合もあります。 ├────────────┤ │ │ │ … … … … │ │ │ ├────────────┤ │ イベント n │ ├────────────┤ │ ブロックトレイラー │ └────────────┘ 2−2.ブロックヘッダー ┌────────────┐ ブロックヘッダーはブロックの最初である事を示 │ ブロックヘッダーID │ し,ブロックの性質を示します。 ├────────────┤ │ ブロックヘッダーサイズ │ ブロックヘッダーIDはFFFFです。このパケ ├────────────┤ ットがブロックヘッダーである事を示します。 │ ブロックID │ ├────────────┤ ブロックヘッダーサイズはブロックヘッダー自身 │ ブロックサイズ │ の長さで左図の場合は7となります。 ├────────────┤ │ ブロックナンバー │ ブロックIDはブロックの性質を表すコードで, ├────────────┤ 以下の様に定義されています。これら以外は将来 │ イベント数 │ の為の拡張用またはシステムで予約していますの ├────────────┤ で使用できません。 │ イベント存在フラグ │ └────────────┘ 0000〜0EFF 通常のイベントデータ。ユーザーはブロ ックを区別して扱いたい場合任意に使用 できる。特に区別する必要のない場合は 0000を使う。 0F01 ランの最初に取り込むデータ 0F02 ランの最後に取り込むデータ 0F03 ランの途中で取り込むデータ ブロックサイズはブロックヘッダーを除くブロック全体の長さです。0以上 16380以下でなければなりません。 ブロックナンバーはそのランの中での何番目のブロックかを示します。ブロ ックナンバーは0から始まります。もし32767を越える場合は0に戻り また増えていきます。 イベント数はそのブロックに含まれるイベントの総数です。省略可能です。 0以上32767以下です。 イベント存在フラグはそのブロックにどのイベントが含まれているかを示し ます。省略可能です。イベントIDの0がLSBに対応し,15がMSBに 対応します。各々のビットが0のときそのイベントが含まれず,1のとき含 まれています。もしそのイベントが含まれているかどうか分からない場合は 1にします。つまり,0の場合は確実に含まれていませんが,1の場合は含 まれていない場合もあるという事です。しかし,当然の事ながらこれは推奨 されません。 ┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐ │15│14│13│12│11│10│9│8│7│6│5│4│3│2│1│0│ └─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘ イベント存在フラグではイベントIDが0から15までしか扱えません。イ ベントID自身はその制限はありません。イベント存在フラグで調べたいイ ベントはイベントIDの15以下を使用して下さい。 2−2.ブロックトレイラー ┌────────────┐ ブロックトレイラーはブロックの最後である事を │ ブロックトレイラーID │ 論理的に示します。物理ブロックはブロックトレ ├────────────┤ イラーの後に存在するかも知れませんが,その内 │ブロックトレイラーサイズ│ 容は不定です。 └────────────┘ ブロックトレイラーIDはFFEFです。このパ ケットがブロックトレイラーである事を示します。 ブロックトレイラーサイズはブロックトレイラー自身の長さで上図の場合は 2となります。 3.イベントフォーマット 3−1.イベントフォーマットの概要 ┌────────────┐ 1つのイベントはイベントヘッダーといくつかの │ イベントヘッダー │ フィールドから構成されます。イベントヘッダー ├────────────┤ は必ず存在しますが,フィールドは存在しない場 │ フィールド 1 │ 合もあります。 ├────────────┤ │ フィールド 2 │ ├────────────┤ │ │ │ … … … … │ │ │ ├────────────┤ │ フィールド n │ └────────────┘ 3−2.イベントヘッダー ┌────────────┐ イベントヘッダーはイベントの最初である事を示 │ イベントヘッダーID │ し,イベントの性質を示します。 ├────────────┤ │ イベントヘッダーサイズ │ イベントヘッダーIDはFFDFです。このパケ ├────────────┤ ットがイベントヘッダーである事を示します。 │ イベントID │ ├────────────┤ イベントヘッダーサイズはイベントヘッダー自身 │ イベントサイズ │ の長さで,左図の場合は7です。 ├────────────┤ │ イベントナンバー │ イベントIDはイベントの種類を示すIDで,ユー ├────────────┤ ザーが使用します。イベントIDには0から16 │ フィールド数 │ 383までが使用できます。16384以上のイ ├────────────┤ ベントIDはシステムに予約されていますので使 │ フィールド存在フラグ │ 用しないで下さい。 └────────────┘ イベントサイズはイベントヘッダーを除くイベン ト全体の長さです。0以上32767以下です。 イベントナンバーはそのブロックの中での何番目のイベントかを示します。 イベントナンバーは0から始まります。もし32767を越える場合は0に 戻りまた増えていきます。 フィールド数はそのイベントに含まれるフィールドの総数です。0以上32 767以下です。 フィールド存在フラグはそのイベントにどのフィールドが含まれているかを 示します。省略可能です。フィールドIDの0がLSBに対応し,15がM SBに対応します。各々のビットが0のときそのフィールドが含まれず,1 のとき含まれています。もしそのフィールドが含まれているかどうか分から ない場合は1にします。つまり,0の場合は確実に含まれていませんが,1 の場合は含まれていない場合もあるという事です。しかし,当然の事ながら これは推奨されません。 ┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐ │15│14│13│12│11│10│9│8│7│6│5│4│3│2│1│0│ └─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘ フィールド存在フラグではフィールドIDが0から15までしか扱えません。 フィールドID自身はその制限はありません。フィールド存在フラグで調べ たいフィールドはフィールドIDの15以下を使用して下さい。 4.フィールドフォーマット 4−1.フィールドフォーマットの概要 ┌────────────┐ 1つのフィールドはフィールドヘッダーとデータ │ フィールドヘッダー │ 領域から構成されます。フィールドヘッダーは必 ├────────────┤ ず存在しますが,データは存在しない場合もあり │ │ ます。 │ データ │ │ │ └────────────┘ 4−2.フィールドヘッダー ┌────────────┐ フィールドヘッダーはフィールドの最初である事 │ フィールドヘッダーID │ を示し,フィールドの性質を示します。 ├────────────┤ │フィールドヘッダーサイズ│ フィールドヘッダーIDはFFCFです。このパ ├────────────┤ ケットがフィールドヘッダーである事を示します。 │ フィールドID │ ├────────────┤ フィールドヘッダーサイズはフィールドヘッダー │ フィールドサイズ │ 自身の長さで,左図の場合は4です。 └────────────┘ フィールドIDはフィールドの種類を示すIDで, ユーザーが使用します。フィールドIDには0から16383までが使用で きます。16384以上のフィールドIDはシステムに予約されていますの で使用しないで下さい。 フィールドサイズはフィールドヘッダーを除くフィールド全体の長さです。 0以上32767以下です。 4−3.データ ┌────────────┐ フィールド内のデータの型式はユーザーが任意に │ │ 決定し,使用します。 │ データ │ │ │ └────────────┘