TIS-100

TIS-100

345 ratings
Japanese Reference Manual
By BCC
TIS-100 マニュアル 日本語翻訳
誤字・脱字・誤訳・翻訳抜けなどの報告はコメント欄にお願いします。
※注:マニュアルに記載されている仕様と実際の仕様に差異があると思われる箇所があっても、現在のところマニュアルの内容をそのまま訳しています。
 
Rate  
Favorite
Favorited
Unfavorite
OVERVIEW(概要)
Tessellated Intelligence Systemは様々なノードが相互接続されている不均等の超並列コンピューターアーキテクチャーです。Tessellated Intelligence Systemは自動金融取引、大量のデータの収集、一般人の行動分析といった複雑なデータストリーム処理に最適となっております。
注:メモとしてトピックに関する詳細を含む他のドキュメントの参照の提示、注意事項の記述が、このマニュアル内には掲載されています。
SYSTEM ARCHITECTURE AND ORGANIZATION(システムアーキテクチャと組織図)
Tessellated Intelligence Systemは原則として多数の独立したノードから構成されています。(特定デバイスの正確なノード集合数を調べるには、モデル固有のマニュアルを参照してください。)ノードタイプは各カテゴリ内のいくつかの相違点によって、処理・ストレージと概括的に区分することができます。

通常、ノードはポートを通して最大4台の隣接したノードと接続されています。ポートによってノード間の軽量メッセージパッシング通信を可能とします。通信多重ポートはいずれかのノードがポートへ読み書きを行い、通信するノードがリクエストを処理するまで停止して調整されます。

注:接続された二つのノードが双方に同じ通信コマンド(読み込み及び書き込み)を送信した場合、ノードはデッドロックとなり、ハードウェア障害が発生します。効果的かつ安全にポートを使用するには、別紙ドキュメント"Tessellated Intelligence System Best Practices - ノード通信のパターン"を参照してください。

注:ノードが通信コマンドを送信し、通信するノードが無い場合は、ノードはデッドロックとなり、ハードウェア障害が発生します。(この規則に対する例外が存在します;詳細は特定のノードタイプのドキュメントを参照してください。)効果的かつ安全にポートを使用するには、別紙ドキュメント"Tessellated Intelligence System Best Practices - ノード通信のパターン"を参照してください。

注:モデル及びハードウェアリビジョンによって異なる、通信動作及び命令のタイミング及びスループットはこのドキュメントでは記載しません。特定デバイスのパフォーマンス特性の詳細は固有モデルのマニュアルを参照してください。
NODE TYPE T20 - RESERVED(予約)
このノードタイプ識別子は特定モデルのTessellated Intelligence Systemにのみ制限されており、このドキュメントでは記述されておりません。ノードタイプ T20に関するドキュメントは、このノードタイプに対応したシステムにのみ配布されます。このノードを記載しているドキュメントのコピーを無許可で要請されると、法律の定めるところにより 、国家安全保障局へと通報されます。  ???
NODE TYPE T21 - BASIC EXECUTION NODE(基本実行ノード)
1.アーキテクチャ
基本実行ノードはTessellated Intelligence Systemの動作を制御する役割を果たします。処理は基本実行ノード、もしくは特殊処理とストレージノードを通して実行されます。

基本実行ノードは基本実行ノード命令セットで記述されたプログラムを実行できます。基本実行ノードのプログラムには実行する計算式及び通信動作を記述し、プログラムの動作は最初の命令から順番に実行されていき、プログラムの最後の命令が実行された後は、自動的に最初の命令が実行されるようになっています。基本的に基本実行ノードは、無限ループで記述されたプログラムの実行に対応しています。

全てのTessellated Intelligence Systemノード共通の通信ポートの他、基本実行ノードにはプログラムの実行で使用されるいくつかのレジスタが含まれます。基本実行ノードはメモリの拡張はできません。追加ストレージが必要な場合は、他の基本実行ノードかストレージノードを活用する必要があります。

全てのレジスタは整数 -999 から 999(-999と999も含む)を格納できます。レジスタの値表示は自動的に表示され、基本実行ノードで表示用のプログラムを実行する必要はありません。

1-1 ACC
タイプ:内蔵
説明:ACCは基本実行ノードの主要保持レジスタです。ACCは算術命令と分岐命令を含む、多くの命令のソース(訳注:SRC)及びデスティネーションオペランド(訳注:DST)として利用できます。

1-2 BAK
タイプ:内蔵(特殊)
説明:BAKはACCの値を一時保持します。SAV及びSWP命令を通してのみ操作可能で、直接の読み書きは不可能です

1-3 NIL
タイプ:内蔵(特殊)
説明:NILを読み込むと値0が返ってきます。NILへの書き込みは何も変化はありません。NILは結果を破棄するためだけに実行する命令のデスティネーションオペランドとして利用できます。

1-4 LEFT, RIGHT, UP, DOWN
タイプ:ポート
説明:UP, DOWN, LEFT, RIGHTの4つの通信レジスターは、全ての基本実行ノードが位相的に隣接したノードに通信するために使う4つのポートに相当します。ハードウェア内のいくつかのポートは特定のノードと切断されており、READ もしくは WRITE コマンドが出されると無期限に動作が停止します。利用可能ないずれかのポートを決めるのにノード相互接続図を参照してください。

1-5 ANY
タイプ:ポート(疑似ポート)
説明:ANYを命令のソースとして使用されたときは、最初の値が送られてきているポート側を読み込みます。ANYを命令のデスティネーションとして使用されたときは、このノードのどれかのポートへと読み込みを図った最初のノード側に値を送信します。

1-6 LAST
タイプ:ポート(疑似ポート)
説明:LASTはANY疑似ポートを使って最後に読み書きを行ったポートを参照し、ポートを直接指定した時と同じ動作を行います。処理系定義の動作を設定される前に、ANYポートを使用しての読み書きを行ない、LASTポートへの読み書きを行ってください。別紙ドキュメント"Tessellated Intelligence System Best Practices - ノード通信のパターン"のLAST 疑似ポートの使用サンプルコードデモを参照してください。

2.命令セット
命令パラメーター <SRC>と <DST> は.ポート及び内蔵レジスターが指定されます。通信するノードが接続されたポートの値の読み書きするまで、ポートの使用は停止されます。また、<SRC> のパラメーターには整数-999から999までの定数も指定されます。

BAKは <SRC> 及び <DST>オペランドを指定できません。BAKの値はSAVとSWP命令を通してのみ操作できます。

<ラベル> パラメーターはプログラム内のジャンプ先を指定するのに使用される任意の名前です。

2-1 コメント
文法:#(コメント文)
説明:コメントシンボル(#)とそれ以降の全ての文が無視されます。
注意:二つのコメントシンボル(##)の後にテキストを入力すると、プログラムを簡単に探すことができるように、そのテキストがデバッガー上に表示されるプログラムタイトルとして利用されます。

2-2 ラベル
文法: <ラベル>:
説明:ラベルはジャンプ命令のジャンプ先を指定するのに使用します。ジャンプ先に飛ぶと、ラベルの次の命令が実行されます。
例:
  LOOP:        一行に単独でラベルを記載
  L: MOV 8, ACC   他の命令と共にラベルを記載

2-3 NOP
文法:NOP
同等の文法: ADD NIL
説明:NOPはノードの内部状態もしくは通信ポートに影響を及ぼしません。NOPは命令ADD NILに自動的に変換されます。

2-4 MOV
文法:MOV <SRC>,<DST>
説明:<SRC>の値を読み込み、<DST>に書き込む
例:
  MOV 8, ACC     ACCレジスタに値8を書き込みます
  MOV LEFT, RIGHT   LEFT ポートから値を読み込み、RIGHT ポートに書き込みます
  MOV UP, NIL     UP ポートから読み込んだ値を破棄します

2-5 SWP
文法:SWP
説明:ACCとBAKの値を入れ替えます

2-6 SAV
文法:SAV
説明:ACCの値をBAKに書き込みます

2-7 ADD
文法:ADD <SRC>
説明:ACCを<SRC>の値と加算し、結果をACCに入れます。
例:
  ADD 16        値16をACCレジスタに足します。
  ADD LEFT       LEFT ポートの値を読み込み、ACCに足します。

2-8 SUB
文法:SUB <SRC>
説明:ACCを<SRC>の値と減算し、結果をACCに入れます。
例:
  SUB 16        ACCレジスタから値16を引きます。
  SUB LEFT       LEFT ポートの値を読み込み、ACCからその値を引きます。

2-9 NEG
文法:NEG
説明:ACCの値の符号を反転します。

2-10 JMP
文法:JMP <ラベル>
説明:無条件で分岐します。実行すると<ラベル>にジャンプします。

2-11 JEZ
文法:JEZ <ラベル>
説明:条件付で分岐します。実行するとACCの値が0だったら<ラベル>にジャンプします。

2-12 JNZ
文法:JNZ <ラベル>
説明:条件付で分岐します。実行するとACCの値が0以外だったら<ラベル>にジャンプします。

2-13 JGZ
文法:JGZ <ラベル>
説明:条件付で分岐します。実行するとACCの値が正数(0より大きい)だったら<ラベル>にジャンプします。

2-14 JLZ
文法:JLZ <ラベル>
説明:条件付で分岐します。実行するとACCの値が負数(0未満)だったら<ラベル>にジャンプします。

2-15 JRO
文法:JRO <SRC>
説明:無条件で分岐します。実行すると現在の行と比較して <SRC> 目の命令にジャンプします。
例:
  JRO 0         事実上プログラムが停止します。
  JRO -1         前の行の命令に戻ります。
  JRO 2         次の行の命令がスキップされ、その次の命令が実行されます。
  JRO ACC      次に実行する命令行を、ACCの値で指定します。 

3. プログラム例
以下のサンプルプログラムはLEFT ポートから連続して値を読み込み、各値を二倍にしてRIGHT ポートに書き込みます。基礎実行ノードの自動ループ挙動のため、最期の命令を実行した後は最初の命令へと移ります。

  MOV LEFT, ACC     LEFT ポートの値を読み込み、ACCレジスタに代入します。
  ADD ACC        ACCの値にACC自身の値を足すことで、二倍にします。
  MOV ACC, RIGHT    ACCレジスタの値をRIGHT ポートに書き込みます。

以下のサンプルプログラムはUP ポートから連続して値を読み込み、正数の値はRIGHT ポート、負数の値はLEFT ポートに書き込みます。0の値は破棄されます。

  START:
   MOV UP, ACC      UP ポートの値を読み込み、ACCレジスタに代入します。
   JGZ POSITIVE      ACCの値が0より多きかったら"POSITIVE"にジャンプ。
   JLZ NEGATIVE     ACCの値が0未満だったら"NEGATIVE"にジャンプ。
   JMP START      値が正数でも負数でもなかったら"START"にジャンプ。
  POSITIVE:
   MOV ACC, RIGHT   ACCレジスタの値をRIGHT ポートに書き込みます。
   JMP START      "START"にジャンプ。
  NEGATIVE:
   MOV ACC, LEFT    ACCレジスタの値をLEFT ポートに書き込みます。
   JMP START      "START"にジャンプ。
NODE TYPE T30 - STACK MEMORY NODE(スタックメモリノード)
1.アーキテクチャ
スタックメモリノードはシンプルスタックベース通信プロトコルに従って大量の値の読み書きを可能にします。(特定デバイスのスタックメモリーデバイスの容量を調べるには固有モデルの情報マニュアルを参照してください。)

2.通信プロトコル
スタックメモリノードに対するすべてのやり取りは、ポートを通して行います。
スタックメモリノードに書き込みを行うと、スタックの一番上に値が追加され、スタックが一杯になるとスタックが空くまで書き込みが停止されます。
スタックメモリノードに読み込みを行うと、スタックの一番上の値が読み込まれ、その値は削除されます。空の状態だとスタックに値が入るまで読み込みが停止されます。

ほとんどの場合、スタックメモリノードは複数の他のノードと接続されており、接続されたどのノードからも利用することができます。
スタックメモリノードへの同時読み込み及び書き込みはできますが、個々の通信は通信プロトコルの実装に従って動作します。複数のノードから効果的かつ予測通りにストレージノードを使用するには、"Tessellated Intelligence System Best Practices - ノード通信のパターン"を参照してください。
NODE TYPE T31 - RANDOM ACCESS MEMORY NODE(ランダムアクセスメモリノード)
注:ランダムアクセスメモリノードは標準のTessellated Intelligence Systemデバイスには付属しません。エミュレータ及びプロトタイプハードウェアのテストユーザーは使用できます。仕様と挙動についてまだ確定しておらず、このドキュメントには記述されておりません。



TODO

-誰がフリーマーケットにTIS-100を売りに出したか見つけ出す
-信号倍増プログラムを作り直す
-ミコ最適化の参考書を探す
-ナンバープレートタブを新しくする
EMBEDDED INTERACTIVE DEBUGGER(組み込みインタラクティブデバッガー)
1.キーボードショートカット
インタラクティブデバッガーは以下のキーボードショートカットが使えます:

Ctrl-Z:最後の変更点を元に戻す
Ctrl-R:最後の変更点をやり直す
Ctrl-X:選択したテキストをクリップボードにカット
Ctrl-C:選択したテキストをクリップボードにコピー
Ctrl-V:クリップボードのテキストを貼り付ける
Ctrl-矢印キー:隣接した実行ノードに移動。

F1:命令セットのクイックリファレンスを表示
F2:anti-temper certification statusを表示 ??
F5:現在のプログラムを実行
F6:現在のプログラムをステップ実行

2.ブレークポイント
ブレークポイントを設定するには、行の先頭に感嘆符(!)を記入してください。ブレークポイントを設定時、プログラムがその行を実行する前にプログラムが中断され、ステップ実行するには面倒なコードを簡単にデバッグすることができます。

MOV LEFT, ACC
!ADD ACC         この命令を実行する前にプログラムは中断されます
MOV ACC, DOWN
VISUALIZATION MODULE(視覚化モジュール)
1.視覚化モジュール取扱方法
TIS-100 はプログラムに基づいてイメージを作成し、表示できる視覚化モジュールを備えています。モジュールの表示内容は、開始X座標、開始Y座標、1つ以上の色情報、そして終端を示す負の値(よく -1 が使われる)から構成されるコマンドシーケンスを送ることによって変更できます。座標系は表示領域の左上を原点 (0, 0) とします。

視覚化モジュールは次の色をサポートしています:
0: 黒
1: 鼠色
2: 灰色
3: 白
4: 赤

2. 視覚化モジュール解像度
標準 TIS-100 視覚化モジュールは幅30文字、高さ18文字です
"イメージ コンソール サンドボックス" は、幅36文字、高さ22文字のより大きな視覚化モジュールを備えています。

2. コマンドシーケンス例
0,0,3,-1 モジュールディスプレイの左上隅に単一の白い画素を描画します。
0,0,4,4,4,4,4,-1 モジュールディスプレイの左上隅に水平の赤い線を描画します。

※Jillpon氏訳
< >
10 Comments
PigeonBB Nov 29, 2017 @ 9:10am 
日本語訳ありがとうございます。だいぶ助かりました。
2点報告があります。
1. 表紙にある手紙が未翻訳のようです。
2. キーボードショートカットのRedoが [Ctrl+Y] のところ [Ctrl+R] になってます。
BCC  [author] Jul 1, 2015 @ 11:53pm 
or equalが無かったですね。訂正しておきます。
kohata Jul 1, 2015 @ 11:26pm 
JGZ
原文で(greater than zero)となっているので0超過だと思います
0以上であれば(greater than or equal to zero)なので
BCC  [author] Jun 5, 2015 @ 4:47am 
>Jillponさん
ご指摘ありがとうございます。
誤字でしたが、以上/未満は原文に沿って翻訳します。視覚化モジュールの項目は最初のpdfファイルから存在しました。
Jillpon Jun 5, 2015 @ 4:23am 
視覚化モジュールは次の色をサポートしています:
0: 黒
1: 鼠色
2: 灰色
3: 白
4: 赤

2. 視覚化モジュール解像度
標準 TIS-100 視覚化モジュールは幅30文字、高さ18文字です。
"イメージ コンソール サンドボックス" は、幅36文字、高さ22文字のより大きな視覚化モジュールを備えています。

2. コマンドシーケンス例
0,0,3,-1 モジュールディスプレイの左上隅に単一の白い画素を描画します。
0,0,4,4,4,4,4,-1 モジュールディスプレイの左上隅に水平の赤い線を描画します。
Jillpon Jun 5, 2015 @ 4:23am 
VISUALIZATION MODULE (視覚化モジュール)
1. 視覚化モジュール取扱方法

TIS-100 はプログラムに基づいてイメージを作成し、表示できる視覚化モジュールを備えています。モジュールの表示内容は、開始X座標、開始Y座標、1つ以上の色情報、そして終端を示す負の値(よく -1 が使われる)から構成されるコマンドシーケンスを送ることによって変更できます。座標系は表示領域の左上を原点 (0, 0) とします。
Jillpon Jun 5, 2015 @ 4:22am 
いつの間にかマニュアルの末尾に VISUALIZATION MODULE というページが追加されているような気がするんですが、これって最初からありましたっけ?^^;
まだ翻訳していなければ、ざっくり意訳したものを書いておきますので、よかったら使ってください。マズい所やより良い表現があれば皆さん是非ツッコミよろしくお願いします。
Jillpon Jun 5, 2015 @ 4:11am 
修正確認しましたー。英語マニュアルに記載されている命令セットとサンプルコードが翻訳されていると、この内容片手に挑める人が増えると思います。翻訳ありがとうございます。

あと、気づいた点を列挙させていただきます。
とっても細かい話なのですが 2-13 JGZ の説明の翻訳で『0以上』の箇所は『0より大きい場合』など『以』を使わない表現の方が良いかもです。関連する箇所としては、2-14 JLZ の説明と『3. プログラム例』のサンプル部分で『0以上/以下だったら』が該当します。

EMBEDDED INTERACTIVE DEBUGGER のブレークポイントの前に項番『2.』を追加
BCC  [author] Jun 4, 2015 @ 5:19pm 
間違えてコメント欄を削除してしまいました。
BCC  [author] Jun 4, 2015 @ 5:18pm 
>Jillponさん
ありがとうございます。修正しておきました。