SSEC のプログラム方法

目次

全体構造

データ表現

周辺機器番号(r)バスの指定(b)そのほかの設定(s)四つ組

実行ユニット

非対称命令フィールド

命令

NOP加減算条件判断乗算除算

ふたつのシフト

half correctionシフト

次回につづく


命令フィールド

まずは、特許書面の図を見てもらいましょう。(クリックで拡大)

命令構造

S1 / S2で各フィールドの名前を変えてあります。これは区別のためで、意味的にはほぼ同じです。

(先に書いたような若干の違いはあります)


S1 の左から見ましょう。

P と書かれた範囲内が、さらに Ps Pb Pr に分割されています。これが、データ一つ分です。

先に説明した通り、s はデータの扱い、b はレジスタ、r は装置番号を指定します。


同様のものが、S1 には P Q R 、S2 には T U V と並んでいます。


以降は、S1 / S2 まとめて書きます。

SH1 / SH2 は、書き込み時にシフトする際の1の位の数値です。

シフトしたくない時は 0 を書くことになります。


OP1 / OP2 は、命令になります。2桁ですが、実は8種類しかありません。(後述)


S1 / S2 は、次の命令が収められた装置を2桁で指定します。

実際の装置番号とは異なり、その対応はプラグボードで示します。




S1 / S2 の紙テープを示す模式図は、縦線で区切りが入っています。


下には、Cols. 1 2 3 …と番号が振ってあります。20まであります。

これが、20桁の数値を BCD で表していることになります。


BCD なので、1つの桁は 4bit 。区切り線も、穴を4つ開けられる幅で入っています。


ここで、Ps / Ts の部分、Cols. 1の部分を注目してください。

他のフィールドより横幅が狭く書かれています。


実は、ここだけ 2bit しかないのです。

テープは、横に 80の穴を開けられる、パンチカードの幅になっています。

しかし、左右両端に歯車で送るための穴を開けてあるため、数値を表すのに 78bit しか使えないのです。


そのため、Ps / Ts は、1桁と言いながら 0~3 の数値しか使えません。




このフィールドは、先ほど書いた、データの扱いを決めるものです。

その意味は、0~3 の時は「入力」、4~9の時は「出力」でした。


ところで、先に「S1 では、読み取り専用のデータ位置が1つあった」と書きました。

それが P フィールドです。ハード的に読み取り専用で、命令数値上も読み取り専用に制限されてしまうのです。


では、S2 の T フィールドは?

こちらは、「読み書き両用」です。

実は、この次に書く命令により、制限付きながらも書き込み用とすることができました。


…とはいえ、「S2 では、書き込み専用のデータ位置が1つあった」とも書きました。

これは V フィールドです。


基本的には、読み取りが2つと書き込みが1つで命令を形成していましたから、T フィールドをわざわざ書き込みに指定する理由はありませんでした。


SSEC では、事実上 P Q / T U で計算するデータを指定し、R / V に結果データを残す場所を指定することになります。


命令

OP1 / OP2 に示される命令です。

5種類、8命令しかありません。


以下、 S1 の P / Q を入力データ、R を出力データと設定し、OP1 に命令を設定した際の動作を前提として説明します。


NOP

・00 No operation of the acuumulator


何もしません。No Op。


まさか、コンピューターの登場以前から NOP があったとは!

この話、掘り下げると深いので詳細は別記事にします。


加減算

・01 Accumulation without half correction

・02 Accumulation without half correction

・04 Accumulation with half correction of the sum


「累算処理」を行います。

3つの命令がありますが、まずは共通した使い方から。


加減算とデータ転送の2つの使い方があります。


基本的には、集計機らしく「加算」を行います。


R = P + Q です。


減算にしたい場合は、 Qs 部分で符号の逆転を指示します。




データ転送を行う場合、「データの扱い」のフィールドを使い、入出力を1つづつ用意します。

使わないフィールドは、すべてを 0 にする必要があります。


表引き装置を使用する際は、データ転送で表引き装置にキーとなるデータを「書き込み」、別の命令で表引き装置から「読み出し」ます。


この時、キーの書き込みは P から Q に送る形で記述し、結果の読出しは Q から R に送る形で記述していたようです。
転送の書き方を変えることで、意図を明示していたのでしょう。



命令 01 は、OP2 でのみ使用可能です。

先に書いた通り、先頭となるデータ T は、データの扱いが 2bit しかなく、「読出し」専用となってしまいます。

これを、強制的に「書き込み」に指定します。先に書いた通り、これを使わなくてはならない理由はありません。


そのほかは 命令 02 と同じです。


命令 02 と 04 の違いは half correction の有無なのですが、これについては後述します。

(この後紹介する命令でも、half correction の有無で2通りある場合は同様)


次ページ: 条件判断


前ページ 1 2 3 4 次ページ

(ページ作成 2015-06-11)

前記事:高速化のために     戻る     次記事:SSECの周辺装置
トップページへ

-- share --

2000

-- follow --




- Reverse Link -