ITmedia NEWS > 社会とIT >

「1Byteが8bitに決まったワケ」についての長い話 まずは「バベッジの階差機関」から(5/7 ページ)

» 2022年02月03日 19時00分 公開
[大原雄介ITmedia]

1Byte = 4/6/7/9/etc...bit

 Byteという言葉はそんなわけで1950年台から使われ始め、70年代にはもう定着していたものと思われるが、それが表すbit数はまちまちであった。

 先の4004にしても、4-bit Byteなんて言い方をしていたことからも想像がつく。そもそものStretchにしてから、「文字列を全部格納する単位として8bitが都合が良かった」というのが最初の理由に挙がっているくらいなので、つまり文字数が少なければもっと少なくても良いということになる。

 今では想像もつかないが、1970年代や80年代はメモリが超貴重であった。バックホルツ氏は「8bitが経済的」とか説明しているが、これは当時のIBMが複数の文字コードを扱う必要があったから、というのも一因である。

 ただ逆に言えば文字コードをもっと減らせば、少ないbit数でByteを構成しても差し支えない、ということになる。実際IBMが1959年に発表したIBM 1400シリーズやその互換マシンであるHoneywell H-200シリーズは6-bit Byteの構成だったし、HoneywellからこのH-200の技術導入を行って1960年にNECが発表したNEAC 2200シリーズもやはり6-bit Byteだった。

 猛烈に昔の話になるが、このNEAC 2200シリーズはキャラクタマシンとして国内でも随分流行った製品である。

 これがキャラクタマシンと呼ばれた理由は、6-bit Byteのままでカナ文字を扱えるようにした(そのため英数とカナ文字を切り替えて使う方式であった)ため、8-bit Byteの競合製品(要するにIBM System/360)と比較して「少ないメモリで同じ表示ができる」ことを売り物にしていた時期があったためだ。

 もっとも、英数字とカナが煩雑に切り替わると、むしろ必要となるデータ量は増える場合もあったが、何しろメモリが少ない時期の話だから、これはこれで合理性があった。

 ちなみにこのHoneywellやNECの場合は6-bit Byteが基本なので、12/24/36bitという形でシステムを高性能化する形になっている。

 面白いのはこのNEC、NEACシリーズの後にACOSシリーズの後継として1970年台にNECが(当時の通産省の補助金がらみで東芝と提携する形で)発表したACOSシリーズはACOS-2/4/6の3種類の異なるアーキテクチャであるが、このハイエンドのACOS-6は9-bit Byteの構成だった。

 もっとも実際には18bitないし36bitで処理することが多く、36bitに4文字を格納(文字あたり9bit)したり6文字を格納したり(文字あたり6bit)と、いろいろな処理モードを持っていた辺り、純粋に9-bit Byteとして扱っていたのかどうかちょっと判断が付かない。

 同じく9bitマシンとして代表的なDECのPDP-10の場合も、内部的には36bitのWord単位での処理を行っており、一応マニュアルには1Word≒4 Byteだから9bit、とされているのだと思われる。

 厳密に書くと、PDP-10のCPUであるKA-10のマニュアルによれば、内部はFull-word(36bit)とHalf-word(18bit)、それとByteでのアクセスが可能、となっているためだ。

 なぜここが「=」ではなく「≒」かというと、Full-wordは36bit、Half-wordは18bitと明確に記されているにもかかわらず、Byteにはサイズが明記されておらず、挙げ句の果てには“Byte instructions operate on bytes of any size”とか書いてあるので9bitはもちろん可能ではあるが、他のサイズでの扱いも可能なように見える。

 まあ世間的にはPDP-10は9bit Byteと扱われているが、実際にどうかというと、ちょっと疑問である。

 その他の例でいえば、例えば東芝が1973年に開発したTLCS-12やその後継のTLCS-12Aは名前の通り12bitのマイコンであるが、これがByteの扱いをどうしているのかは不明である。

 他にも5/7/11bitのマシンがあった、といわれているが筆者はお目にかかったことがない。

 理由の1つは、そういう変わったマシンは作れなくはないが、作るメリットが薄いということにある。例えばメモリ。ほとんどのSRAMなりDRAMなりは4bitないし8bitでのアクセスになる。

 大規模なマシンであれば、バス幅を36bitとかにすれば4bit×9ということで9組のSRAMやDRAMをセットにする形でアクセスできるようにすれば良いから問題ない。ところが18bitではどうなるか? というと、4bitのSRAMやDRAMではうまくフィットしないことになる。

 9bitとか7bitとかも同じ話で、作れなくはないが無駄が多い構成になることは否めない。1960年代とかだと、そもそもメモリの主流は磁気コアメモリだった。磁気コアメモリならら5bitだろうが11bitだろうが、好きなように構成可能であったが、1970年台にこれらがSRAMやDRAMに取って代わられると、こうした自由度が大幅に減り、1Byteを4の倍数のbit数にしないと都合が悪いシーンが多々出てくるようになった。

 だからといってByte=12bitとかにすると、今度は1Byteが大きすぎるということになる。4bitだと逆に少なすぎであり、結局消去法的に8bitが一番都合が良いサイズだった、というのが実装の観点での回答になるかと思う。

Copyright © ITmedia, Inc. All Rights Reserved.