検索
ニュース

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

Twitterで話題になっていた、「1Byteは何故8bitなのか?」という課題に、コンピュータの歴史に詳しい大原雄介さんが取り組んでくれた。

Share
Tweet
LINE
Hatena

1Byte=8bitになったのはSystem/360がそうしたから?

 逆に1Byte=8bitにした理由として大きいといわれているものに、IBMのSystem/360がある。

 IBMはIBM 1400シリーズの後継としてSystem/360を1964年に発表するが、ここでIBMは1Byte=8bitとなるように実装している。この理由について、ちょうど当事者であるフレデリック・ブルックス氏にインタビューを行った動画がYouTubeに上がっている。

 ブルックス氏はSystem/360のプロジェクトマネジャーとして、アーキテクチャの策定をすべく20人程のアーキテクトと一緒にコネチカット州のモーテルにこもって数週間を過ごしたあと、全員を複数の小チームに分けてコンペティションを行ったそうだ。

 結果、他の案に比べて非常に強力(なシステムになる)と思われる2つの案が残ったそうだ。一案はジーン・アムダール氏が加わったチームが考えた6bitベースのもの。もう一案がエレイン・ボーフム氏らが加わったチームのもので、これは8bitベースだったという。

 当時の判断では6bitベースは科学技術計算に、8bitベースは商用に向いているというものだったが、ブルックス氏は最終的にここで8bitに決定している。

 6bitベースというのは、48bitとか96bitの演算の実装を前提にしたものだ。当時科学技術計算ではこうした長さが必要とされていた。

 その一方、当時文字列は大文字のみで、なので英数記号を全部入れても49文字で済んでいたから、6bit=64文字分があれば収まった。ところが小文字まで入れると64文字では収まらないことになる。

 1960年代、IBMのメインフレームを使うアプリケーションの75%が数値データであったそうだ。数値といっても、例えば金融系だとどうしても2進演算のままでは丸め誤差とかが10進の場合と異なってしまう。このため、4bitで10進の一桁を扱うBCD(Binary-Coded Decimal)というデータフォーマットが使われていた。

 これを6bitベースのマシンで扱うということは、12bitで3桁、24bitで6桁になって効率が悪い。8bitにすれば1Byteで2桁の数字を同時に扱えることになり、効率が上がるわけだ。

 文字列の問題もさることながら、こうした商用の数値演算用途を考えた場合、6bitより8bitの方が効率が良い、というのがブルックス氏の判断である。そしてSystem/360が大成功を収めたことで、競合メーカーも相次いで6bitや9bitから8bitベースにシフトしていくことになる。その意味では、「System/360が1Byte=8bitにしたから」というのも、1つの答えではあろうと思う。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る