2018-08-23 14:22 — asano
カテゴリー:
今は汎用の(組み込みではない)コンピュータでは最低でも32ビットの整数が扱え浮動小数点演算もハードウェアでサポートされるのが当たり前になっています。
今回はこのあたりの事情について何回かに分けて書いていきたいと思っています。
第1回は個人で使えるようになる以前の話です。
まずは黎明期の有名なコンピュータをいくつか挙げてみましょう。
年 | 国 | 名称 | 素子 | 語長 | 備考 |
---|---|---|---|---|---|
1946 | 米 | ENIAC | 真空管 | 10進10桁 | プログラムはパッチパネル |
1949 | 英 | EDSAC | 真空管 | 17ビット | |
1951 | 米 | EDVAC | 真空管 | 44ビット | 後に浮動小数点演算装置を追加 |
1954 | 米 | UNIVAC 120 | 真空管 | 10進10桁 | 近代科学資料館に展示あり プログラムはパッチボード |
1956 | 日 | FUJIC | 真空管 | 32ビット | 国立科学博物館に展示あり |
1956 | 日 | FACOM 128 | リレー | 仮数部10進8桁 指数部10進2桁 浮動小数点 | 池田記念室に改良型のFACOM 128Bが現存(動態) プログラムは紙テープ・カード |
1956 | 日 | ETL Mark III | トランジスタ | 16ビット | 研究用 |
1957 | 日 | MUSASINO-1 | パラメトロン | 40ビット | NTT技術史料館に改良型のMUSASINO-1Bあり |
1957 | 日 | ETL Mark IV | トランジスタ | 10進6桁 | |
1958 | 日 | PC-1 | パラメトロン | 36ビット | |
1959 | 日 | TAC | 真空管 | 78ビット 浮動小数点 | 東芝未来科学館に一部が現存 |
だいぶ偏っているのは実機を見たもの・資料のあるものを優先したためです。
これを見て驚くのは少しでも素子数を減らしたい真空管やリレーの時代から語長がとても長いことです。それも現在のように語長を長くすればその分パフォーマンス的に有利になる(もちろん当時もそういう側面はあったでしょうが)、というよりはアプリケーションが必要とする桁数を実装しているように見えます。
一つには桁で分けて繰り返すという発想があまり無かったのではないかと思われます。
それとも関連して初期から浮動小数点演算を実装しているものもありますね。
10進(2進5進なども含む)も意外に多いことがわかります。中にはメモリアドレスも10進というビックリなものもありました。
もう一つはメモリが非常に高価な資源だったということもあるでしょう。貴重なメモリを桁ループのプログラムなんかには使えないというわけです。
この頃はビット表現も多様でした。
2進でも負数を2の補数で表すか1の補数で表すかといった違いがありましたし、10進では正数の表現だけでも多数ありました。
- 0~9を0000~1001で表す、いわゆるBCD符号
これは今でも普通に使われますね。 - 3を足して0011~1100で表す「3増し符号」
減算がしやすい、四捨五入が簡単といった特徴があります。 - 5を表す1ビットと1~4を表す4ビットを組み合わせた「二五進法」
そろばんと似ていますが、5ビット必要になってしまいます。 - 5を表す1ビットと0~4を表す3ビットを組み合わせた「二五進法」
これもそろばん風ですが4ビットで済みます。
これら以外にも特殊なものがあったようですし、さらに負数の表現や誤り検知のための冗長ビットがあったりと混沌としています。
1960年代に入ると試行錯誤の時代は終わって16,32ビットといった見慣れた語長が多くなります。
12ビットというのも結構ありました。8×2nから外れているので違和感がありますが、意外と使いやすいのではないかと思います。
アナログ信号をA/D変換する場合8ビットではさすがに不足しますし、16ビットだとノイズ対策などが大変になります。10進換算で3桁の有効数字ですから、計算尺が普及したことを考えるとこれで十分な用途は結構あったのではないでしょうか。
文字コードとしても半分の6ビットあれば大文字+数字+記号が表すことができます。
コメントを追加