ITmedia NEWS > 社会とIT >

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

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

1Byte=8bitに対する技術的な回答

 ということでやっと冒頭の話に戻ってきた。

 ところで次はByteという概念だ。そもそもByteって何? という話である。Byteの意味は何かという話は先のSEライダー氏の回答にもあるように、ISO/IEC_80000-13:2008の中で、情報系の単位として8bitの塊を1Byteと表現する、と定義されており、それが1Byte=8bitの根拠ではあるのだが、そもそもそのByteという言葉はどこから出て来たのか?

 これは超絶古くて1956年にさかのぼる。最初にByteという言葉を発明したのは、IBMの(失敗した)スーパーコンピュータであるStretch(IBM 7030)の設計の際だそうだ。この設計にあたって、bitとの混用を防ぐためにByteという言葉を作った、という説明がある(写真4)。

photo 写真4:出典はComputer History Museumでアーカイブされた“COMPUTER SYSTEM Project Stretch”。著者はワーナー・バックホルツ氏である。赤枠部が当該箇所

 一般的にはCharacterと呼ばれるところを、内部ではByteという言葉を使って区別したとしている。つまり当初は1つのキャラクターを表現するのに必要なbitの塊をByteと表現したわけだ。

 ただそうなると、1Byteのサイズというのはキャラクターを表現するのに何bit必要だったか、で変わってくることになる。実際先のProject Stretchのドキュメントを読むと89-character Setと49-character Setという2種類のキャラクター表現が利用可能で、これを表現するのに、

a) Single 6-bit byte

b) Double 6-bit byte = single 12-bit byte

c) Single 8-bit byte

d) Single 12-bit byte for standard characters(punched-card code) and two 12-bit byte for other characters

という具合に複数の選択肢があり、ここから最終的に8bitを選んでいるが、その理由として、

1. 256文字分の容量は、大多数のアプリケーションに十分であると考えられる

2. 1文字は1バイトで表されるので、(内部に記憶する)レコード長はその文字数として扱える(これはd案の欠点に対しての話:d案だと文字種によってレコード長が変わってしまう)

3. 8-bit Byteは、記憶容量が小さく経済的である

4. 純粋に数字を扱う場合,10進数の1桁は4bitで表現でき、その4bit byteを2個、8bit byteにまとめられる。このような数値データのパッキングは必須ではないが、高速化と記憶効率の向上のために一般的に行われている。厳密にいえば、4-bit Byteは別のコードに属するが、例えば4-bitと6-bitの組み合わせに比べて、4-bitと8-bitの方式はシンプルであり、設計やアドレス指定ロジックをすっきりさせることにつながる

5. 4-bitと8-bitのbyteサイズは2の累乗であり、コンピュータ設計者はバイナリアドレッシングとビットレベル1へのインデックス付けの強力な機能を利用することができる

の5つが挙げられている。

 まあこれがByteという言葉が生まれた理由と、1byte=8bitになった源流、として良いかと思う。

Copyright © ITmedia, Inc. All Rights Reserved.