ITmedia NEWSに「1Byteが8bitに決まったワケ」に関する解説が出ていました。言われてみれば、1Byte=8bitと習ったことはあるものの、なぜそうなのかは判りません。興味深い話題だったので記事を丁寧に読んでみました。
IBMの資料
IBMのスーパーコンピューターであるStretch(IBM 7030)の設計をしていた時代(1956年)に1Byte=8bitとした5個の理由が列記されていました。どれも「なるほど」と思わせる内容でした。
(ちなみにIBM 7030は野心的な性能見積もりを達成できず事前に契約をしていた顧客以外への販売は行わなかったそうです)
(1)8bitあれば256種類の文字まで表現できるので大多数のアプリケーションに十分と考えられる
(2)1文字が1バイトで表現されるのでレコード長は文字数として扱える
(3)1Byte(=8bit)は記憶容量が小さく経済的
(4)10進数の1桁は4bitで表現できる。1Byteの中で2桁分の数値を扱える
(5)4bitと8bitは2の累乗であり、バイナリアドレッシングとビットレベル1へのインデックス付けの機能を利用することができる
(1)については、アルファベットを使っている欧米としての発想です。タイプライターで打ち込める文字種から考えれば、256種類の文字が表現できれば十分だということが判ります。ただ、日本など漢字を扱う国では、とても256文字種では足らないので、2Byteを使って全角文字を表現しています。
(3)についても、以前、COBOLを使っていた時にサイン付きパックという変数定義があったことを思い出しました。2Byteの変数であれば、3桁の数字とサイン(+・-)を表現できます。(他に複数桁全体を2進数で表現する変数定義、1Byteで1文字を表現するゾーン形式などもあります)
IBM System/360の貢献
また、1960年代初めまでは1Byteのbit数がまちまちであったものの、IBMが1964年に大ヒットした汎用機であるSystem/360を発売し、このアーキテクチャーとして1Byte=8bitとなるように実装されていたことが決定的なのではないかということです、
今となってはスマホですら数GBのメインメモリを搭載していますが、この当時はメモリの価格は非常に高かったので、少ないメモリ量でいかに効率的にマシンを動かすか様々な工夫が行われていた時代です。しかし、今となっても1Byte=8bitがコンピュータ上で表現される単位として変わらず使われていることは、とても興味深いことだと思いました。
コメント