| バイト | |
|---|---|
| 単位系 | ビットから派生した単位 |
| 単位 | デジタル情報、データサイズ |
| シンボル | B、 o(8ビットの場合) |
バイトはデジタル情報の単位であり、通常は8ビットで構成されます。歴史的に、バイトはコンピュータでテキストの1文字をエンコードするために使用されるビット数でした[ 1 ] [ 2 ]。このため、バイトは多くのコンピュータアーキテクチャでアドレス指定可能なメモリの最小単位です。任意のサイズのバイトを一般的な8ビットの定義と区別するために、インターネットプロトコル(RFC 791 )などのネットワークプロトコルドキュメントでは、8ビットバイトをオクテットと呼びます[ 3 ]。オクテット内のビットは通常、ビットエンディアンに応じて0から7または7から0の番号でカウントされます。
バイトのサイズは歴史的にハードウェアに依存しており、サイズを義務付ける明確な標準は存在しなかった。1~48ビットのサイズが使用されてきた。[ 4 ] [ 5 ] [ 6 ] [ 7 ] 6ビットの文字コードは初期のエンコードシステムでよく使用された実装であり、1960年代には6ビットと9ビットのバイトを使用するコンピュータが一般的だった。これらのシステムは、2、3、4、5、6、8、または10個の6ビットバイトに対応する12、18、24、30、36、48、または60ビットのメモリワードを持つことが多く、レガシーシステムで21世紀まで存続した。この時代には、バイトという用語が一般的になる前は、命令ストリーム内のビットのグループ化はシラブル[ a ]またはスラブと呼ばれることが多かった。
現代の事実上の標準である8ビットは、ISO/IEC 2382-1:1993に文書化されているように、2の累乗であり、2の8乗は256なので、1バイトに0から255までの2進数エンコード値を許可する便利な2の累乗である。 [ 8 ]国際標準IEC 80000-13は、この共通の意味を成文化した。多くの種類のアプリケーションは8ビット以下で表現できる情報を使用しており、プロセッサ設計者は通常、この使用に合わせて最適化する。主要な商用コンピューティングアーキテクチャの普及により、8ビットバイトが広く受け入れられるようになった。[ 9 ]現代のアーキテクチャでは通常、それぞれ4バイトまたは8バイトで構成される32ビットまたは64ビットのワードが使用される。
バイトの単位記号は、国際電気標準会議(IEC)と電気電子学会(IEEE)によって大文字のBで指定されている。 [ 10 ]国際的には、単位オクテットは8ビットのシーケンスを明示的に定義し、「バイト」という用語の潜在的な曖昧さを排除している。[ 11 ] [ 12 ]オクテットの記号「o」は、バイトとベルの間の記号「B」の曖昧さを都合よく排除している。
バイトという用語は、1956年6月にヴェルナー・ブッフホルツによって造語されました。 [ 4 ] [ 13 ] [ 14 ] [ b ] IBM Stretch [ 15 ] [ 16 ] [ 1 ] [ 13 ] [ 14 ] [ 17 ] [ 18 ]コンピュータの初期設計段階で、ビットへのアドレス指定と、バイトサイズが命令にエンコードされた可変長フィールド(VFL)命令を備えていました。[ 13 ]これは、誤ってビットに変化するのを避けるために、biteを意図的に書き換えたものです。[ 1 ] [ 13 ] [ 19 ] [ c ]
コンピュータのワードサイズよりも小さいビットグループ、特に4ビットのグループを指すバイトのもう1つの起源は、ルイス・G・ドゥーリーによる記録に残っています。彼は、 1956年か1957年にMITリンカーン研究所でジュール・シュワルツとディック・ビーラーとともにSAGEと呼ばれる防空システムに取り組んでいたときに、この用語を造ったと主張しました。このシステムは、ランド、MIT、IBMによって共同開発されました。[ 20 ] [ 21 ]その後、シュワルツの言語JOVIALで実際にこの用語が使用されましたが、著者はそれがAN/FSQ-31から派生したものであると漠然と記憶していました。[ 22 ] [ 21 ]
初期のコンピュータは、さまざまな 4 ビットの 2進化 10 進数(BCD) 表現と、米国陸軍( FIELDATA ) と海軍で一般的な印刷可能なグラフィック パターン用の6 ビットコードを使用していました。これらの表現には、英数字と特殊なグラフィック シンボルが含まれていました。これらのセットは 1963 年に 7 ビットのコーディングに拡張され、米国標準情報交換コード(ASCII) または連邦情報処理規格と呼ばれ、1960 年代に米国政府および大学のさまざまな部門で使用されていた互換性のないテレプリンター コードに取って代わりました。ASCII には、大文字と小文字のアルファベットの区別、書き言葉の送信を容易にする制御文字のセット、ページ送りや改行などの印刷装置の機能、および伝送媒体上のデータ フローの物理的または論理的制御が含まれていました。[ 18 ] 1960年代初頭、IBMはASCII標準化にも積極的に取り組んでいたが、同時にSystem/360製品ラインに8ビットの拡張2進化10進コード(EBCDIC)を導入した。これは、以前のカードパンチで使用されていた6ビットの2進化10進数(BCDIC)表現を拡張したものである[ d ] 。 [ 23 ] System/360の知名度により、8ビットの記憶サイズが広く採用されるようになったが、[ 18 ] [ 16 ] [ 13 ] EBCDICとASCIIのエンコード方式は細部では異なる。
1960年代初頭、AT&Tは長距離幹線にデジタル電話を導入しました。この技術では、8ビットのμ-law符号化が採用されました。この大規模な投資により、8ビットデータの伝送コストが削減されることが期待されました。
ドナルド・クヌースは『 The Art of Computer Programming』第1巻(初版1968年)において、仮想のMIXコンピュータにおける「バイト」という語を、「不特定の量の情報を含み、少なくとも64の異なる値、最大100の異なる値を保持できる単位」として用いている。[ 24 ]彼は、「1975年頃から、バイトという言葉は正確に8つの2進数字の列を意味するようになった。MIXに関連してバイトについて語る際には、バイトがまだ標準化されていなかった時代を思い起こさせ、以前の意味に限定する」と述べている。[ 24 ]
1970年代に8ビットマイクロプロセッサが開発されたことで、この記憶容量が普及しました。Intel 8086の前身であるIntel 8080などのマイクロプロセッサは、1バイト内の4ビットペアに対して、10進加算調整(DAA)命令などの少数の演算を実行することもできました。4ビットの量は、ニブル(ニブルとも呼ばれます)と呼ばれることが多く、1つの16進数で便宜的に表されます。
オクテットという用語は、8ビットのサイズを明確に指定します。[ 18 ] [ 12 ]これはプロトコル定義で広く使用されています。
歴史的には、少なくとも西ヨーロッパでは、オクタッドまたはオクタードという用語が8ビットを表すために使用されていました。 [ 25 ] [ 26 ]しかし、この用法はもはや一般的ではありません。この用語の正確な起源は不明ですが、1960年代と1970年代のイギリス、オランダ、ドイツの文献、そしてフィリップスのメインフレームコンピュータのドキュメント全体に見られます。
バイトの単位記号は、IEC 80000-13、IEEE 1541、およびメトリック交換形式[ 10 ]で大文字のBとして 規定されています。
国際数量体系(ISQ)において、Bはベル(対数電力比の単位)の記号でもあるため、IEC規格と矛盾が生じます。しかし、ベルはあまり使用されない単位であるため、混乱の危険性はほとんどありません。ベルは主に10の位の分数であるデシベル(dB)で信号強度や音圧レベルの測定に使用され、10分の1バイトの単位であるデシバイトなどの分数は伝送速度などの派生単位でのみ使用されます。
オクテットを表す小文字のoは、IEC 80000-13でオクテットの記号として定義されており、フランス語[ 27 ]やルーマニア語などの言語で一般的に使用されています。また、koやMoのように、倍数を表すメトリック接頭辞と組み合わせて使用されることもあります。
| マルチバイト単位 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 膨大なデータ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
バイトの単位の倍数は、国際単位系(SI) に従って10 の累乗に基づくメートル法で定義されます。SI では、たとえば、接頭辞キロは1000 (10 3 ) と定義されます。また、2 の累乗に基づく二進法もあります。歴史的に、二進法ではメートル法と同じ接頭辞が使用されていましたが、定量化の方法が異なっていました。後者のシステムの命名法が混乱を招いています。10 の累乗に基づくシステムでは、標準のSI 接頭辞(キロ、メガ、ギガ、...) とそれに対応する記号 (k、M、G、...) が使用されます。現代の二進法では、接頭辞としてkibi、mebi、gibiなどと、それに対応する記号 (Ki、Mi、Gi、...) が使用されます。二進法の歴史的な使用法では、今でも接頭辞 K、M、G が使用されています。
キロバイトの場合、10進法と2進法の解釈の違いは比較的小さく(キビバイトより約2%小さい)、単位が大きくなるにつれて両者の差は大きくなります(相対的な差は3桁ごとに2.4%ずつ大きくなります)。例えば、10の累乗を基準とするテラバイトは、2の累乗を基準とするテビバイトより約9%小さくなります。
10の累乗を用いた接頭辞の定義(1キロバイト(記号kB)は1,000バイトと定義)は、国際電気標準会議(IEC)によって推奨されている。[ 28 ] IEC規格では、1ヨタバイト(YB)(1000の8乗バイト)までの8つの倍数が定義されている。[ 29 ]追加の接頭辞ronna-( 1000の9乗)とquetta-(1000の10乗)は、2022年に国際度量衡局(BIPM)によって採用された。 [ 30 ] [ 31 ]
この定義は、コンピュータネットワークのデータ転送速度の単位、内部バス、ハードドライブやフラッシュメディアの転送速度、ISP契約、およびほとんどのストレージメディア、特にハードドライブ[ 32 ]やSSD、フラッシュベースのストレージ[ 33 ] 、 CD、DVD [ 34 ]、Blu-rayの容量に最も一般的に使用されています。この定義を使用するオペレーティングシステムには、 Android(および派生版)、macOS、[ 35 ] iOS、[ 35 ]、WatchOS、Ubuntu、[ 36 ]、Debian [ 37 ]、ChromeOS、HarmonyOS、Gnomeデスクトップ環境などがあります。また、 CPUクロック速度やパフォーマンスの測定値など、コンピューティングにおけるSI接頭辞の他の用法とも一致しています。
IBM System 360および関連するディスク・テープ・システムでは、バイトを8ビットに設定し、容量を10進法で表記していました。[ 38 ]初期の8インチ、5.25インチ、3.5インチのフロッピーディスクは、より正確な「KiB」ではなく「KB」を用いて1024の倍数で容量を示していました。後期の大型の8インチ、5.25インチ、3.5インチのフロッピーディスクは、1024,000の倍数で容量を示し、「KB」=1024バイト、「MB」=1024,000バイトというハイブリッド 表記を採用していました。初期の5.25インチディスクは、128バイトと256バイトのセクターを使用していたにもかかわらず、10進法を使用していました。[ 39 ]ハードディスクは、主に256バイト、その後512バイトのブロックが使用され、4096バイトのブロックが標準となりました。[ 40 ]
2の累乗に基づく単位系は、1キビバイト(KiB)が1,024(すなわち2の10)バイトに等しいというものであり、SI接頭辞の誤用による混乱を解決するためにIECによって作成され[ 41 ]、国際標準IEC 80000-13で定義され、国内外の標準化団体(BIPM、IEC、NIST )によってサポートされている。IEC標準では、10のそのような倍数が定義されており、最大1キュービバイト(QiB)が1024の10バイトに等しい。[ 42 ]これらの単位記号は実際にはほとんど使用されない。[ 43 ]注目すべき例外は、KDEとQtツールキットに基づくアプリケーションである。
1990年代のJEDEC規格では、1キロバイト(KB)が1,024バイトに等しく、[ 44 ] [ 45 ] [ 46 ] 1メガバイト(MB)が1024の2乗バイト、1ギガバイト(GB)が1024の3乗バイトに等しいという、同じ単位の歴史的な命名規則が規定されており、これはRAMに使用されている。JEDEC規格では最初の3つの倍数(GBまで)のみ規定されており、TB以上については言及されていない。これらの単位は、異なるソフトウェアを使用して比較することによってのみ認識できる。KBのKが大文字になっていることが、指標となる場合もある。混乱を招き、不正確ではあるが、[ 47 ]この規則はMicrosoft Windowsオペレーティングシステム[ 48 ]やメインメモリやCPU キャッシュサイズなどのランダムアクセスメモリ容量、またVodafone [ 49 ]、[ 50 ]、[ 51 ] 、 [ 52 ]などの一部の通信会社のマーケティングや課金にも使用されている。ストレージ容量については、macOS と iOS では Mac OS X 10.5 Leopard と iOS 10 までこの歴史的な規則が使用されていたが、それ以降は 10 の累乗に基づく単位に切り替えられた。[ 35 ]
様々なコンピュータベンダーが、様々なサイズのデータを表す用語を独自に考案しており、時には同じベンダー内でも、同じ用語で異なるサイズを表す場合があります。これらの用語には、ダブルワード、ハーフワード、ロングワード、クアッドワード、スラブ、スーパーワード、シラブルなどがあります。また、非公式な用語も存在します。例えば、4ビットを表すハーフバイトやニブル、 1000 8を表すオクタルバイトなどです。

1メガバイトの容量を持つディスクの広告を見ると、これは何を意味するのでしょうか? 3つの妥当な答えがあり、どれが正しいのかご存知の方はいらっしゃいますか?… 最小容量と最大容量の差はわずか5%未満なので、これはそれほど重要な問題ではありません。とはいえ、標準的な基準値、あるいは基準値が存在するかどうかを知ることができれば幸いです。
— アラン・D・プラット著『図書館の小型コンピュータ』 1982年[ 53 ]
現代のコンピュータメモリは2進アーキテクチャを採用しているため、2の累乗に基づくメモリ単位の定義が最も実用的です。2進数の倍数にキロという単位が用いられるようになったのは、便宜上の理由からです。1024はおよそ1000。[ 27 ]この定義はパーソナルコンピューティングの初期の数十年間に人気があり、タンドン5 1/4インチDDフロッピーフォーマット(368 640バイト)が「360KB」として宣伝されている。1024バイトの規格を採用していた。しかし、これは普遍的なものではなかった。シュガートSA-400 5 1/4インチフロッピーディスクは、フォーマットされていない状態で109,375バイトの容量を持ち、[ 54 ] 1000バイトの規格を採用し、「110キロバイト」と宣伝されていた[ 55 ] 。同様に、8インチDEC RX01フロッピー(1975年)は、256バイトでフォーマットされ、「256k」と宣伝されていた。[ 56 ]一部のデバイスは2つの定義を混ぜて宣伝されていた。最も顕著な例として、「1.44MB」と宣伝されているフロッピーディスクの実際の容量は1440 KiB、1.47 MB または 1.41 MiB に相当します。
1995年、国際純正応用化学連合(IUPAC)の命名法および記号に関する部会委員会は、この曖昧さを解決しようと、1024の累乗を表す2進接頭辞として、キビ(キロバイナリ)、メビ(メガバイナリ)、ギビ(ギガバイナリ)を提案した。[ 57 ] [ 58 ]
1998年12月、IECは、1024の累乗を明確に示すためにIUPACが提案した接頭辞(kibi、mebi、gibiなど)を採用することで、このような複数の用法と定義に対処しました。[ 59 ]したがって、1キビバイト(1 KiB)は1024 1バイト = 1024 バイト、1メビバイト(1 MiB)は1024 2バイト =1 048 576バイトなど。
1999年、ドナルド・クヌースはキビバイトを「ラージキロバイト」(KKB)と呼ぶことを提案した。[ 60 ]
IECはIUPACの提案を採用し、1999年1月に規格を公表した。[ 61 ] [ 62 ] IECの接頭辞は国際量体系の一部である。IECはさらに、キロバイトは1キロバイトを指す場合にのみ使用するように規定した。1000バイト。[ 63 ]
バイトの倍数に関する2進法と10進法の定義をめぐる消費者の混乱から生じた訴訟は、一般的にメーカーに有利な結果となり、裁判所はギガバイトまたはGBの法的定義は1GB =1 000 000 000 (10 9 )バイト(10進数の定義)ではなく、2進数の定義(2 30、つまり、1 073 741 824)。具体的には、北カリフォルニア地区連邦地方裁判所は、「米国議会は、ギガバイトの十進法による定義を『米国の貿易と商業』の目的上『好ましい』ものとみなしている[...]カリフォルニア州議会も同様に、この州におけるすべての『取引』に十進法を採用している」と判決を下した。 [ 64 ]
ドライブ製造業者のウエスタンデジタルに対する訴訟のように、それ以前の訴訟では、裁判所の判断が下されることなく和解に至った例もあった。[ 65 ] [ 66 ]ウエスタンデジタルはこの問題を解決し、製品に実際の容量は宣伝されている容量と異なる場合があることを明示的に記載した免責事項を追加した。[ 65 ]シーゲイトも同様の理由で訴えられ、和解に至った。[ 65 ] [ 67 ]
| ユニット | おおよその同等 |
|---|---|
| 少し | 真(1)または偽(0)を示す ブール変数 |
| バイト | 基本的なラテン文字。 |
| キロバイト | 『ジャバウォック』 のテキスト |
| 典型的なファビコン | |
| メガバイト | 『ハリー・ポッターと炎のゴブレット』のテキスト[ 68 ] |
| ギガバイト | 4.7 GBのDVDに約20分のビデオ |
| 1.5インチ標準CD | |
| テラバイト | 2007年最大の消費者向けハードドライブ[ 69 ] |
| 標準ブルーレイ20枚またはDVD213枚 | |
| ペタバイト | MP3でエンコードされた音楽の2000年[ 70 ] |
| エクサバイト | 2004年の世界の月間インターネットトラフィック[ 71 ] |
| ゼタバイト | 2016年の世界年間インターネットトラフィック(ゼタバイト時代として知られる)[ 72 ] |
多くのプログラミング言語では、データ型byteが定義されています。
Java [ 73 ]、.NET ( C#、F#、VB.NET ) [ 74 ]、Rust [ 75 ]、D [ 76 ]、Go [ 77 ]、Swift [ 78 ]、JavaScript [ 79 ]、Python [ 80 ]、Ruby はすべて、正確に256の異なる値を保持できる8ビットバイトを定義し、使用します。
CおよびC++プログラミング言語では、バイトは「実行環境の基本文字セットの任意のメンバーを保持できる大きさの、アドレス指定可能なデータ記憶単位」と定義されています(C標準規格3.6項)。C標準規格では、整数データ型のunsigned charは少なくとも256の異なる値を保持し、少なくとも8ビットで表現される必要があります(5.2.4.2.1項)。CおよびC++の様々な実装では、バイトの記憶域として8、9、16、32、または36ビットが予約されています。[ 81 ] [ 82 ] [ f ]さらに、CおよびC++標準規格では、2つのバイトの間にギャップがあってはならないことが規定されています。これは、メモリ内のすべてのビットが1バイトの一部であることを意味します。[ 83 ]
しかし、現代のソフトウェアのほとんどは、8ビット以外のバイトサイズでコンパイルすると実際には動作しません。さらに、POSIXでは「1バイトは連続した8ビットのシーケンスで構成される」と規定されています。[ 84 ]現在、8ビット以外のバイトは、 DSPのようなニッチな用途にしか利用されていません。
データ伝送システムにおいて、バイトはシリアルデータストリーム内の連続したビット列として使用され、データの最小単位を表します。非同期通信の場合、完全な伝送単位には通常、スタートビット、1~2個のストップビット、そして場合によってはパリティビットが含まれます。したがって、実際のデータは5~8ビットですが、そのサイズは7~12ビットの範囲になります。[ 85 ]同期通信の場合、エラーチェックには通常、フレーム末尾のバイトが使用されます。
CHAR_BITファイルlimits.hに実装どおりに文書化されています。ビット に加えて、ここでマシン設計によって課される構造を説明するために使用される用語を以下に挙げます。 バイト は、文字をエンコードするために使用されるビットのグループ、または入出力ユニットとの間で並行して送信されるビット数を示します。ここで文字以外の用語が使用されるのは、特定の文字が異なるアプリケーションで複数のコードによって表される場合があり、異なるコードが異なるビット数 (つまり、異なるバイト サイズ) を使用する可能性があるためです。 入出力送信では、ビットのグループ化は完全に任意で、実際の文字とは関係がありません (この用語はバイトから作られた造語ですが、誤ってビットに変わるのを避けるために綴りが変更されています)。 ワードは、1 メモリ サイクルでメモリからまたはメモリに並行して送信されるデータ ビットの数で構成されます。したがって、ワード サイズはメモリの構造的プロパティとして定義されます (カテナという用語は、Bull GAMMA 60コンピュータの設計者がこの目的で作った造語です)。 ブロック は、単一の入出力命令に応答して入出力ユニットとの間で送信されるワードの数を指します。 ブロック サイズは入出力ユニットの構造的プロパティです。それは設計によって固定されていたか、プログラムによって変更できるように残されていた可能性があります。
オクテット 8ビットバイト。
[...] 編集の観点から最も重要なのは、1 から 6 ビットの長さの任意の文字または数字を処理できることです。図 2 は、メモリから並列に送られる 60 ビットのワードを文字、またはここで呼んでいる「バイト」に変換して加算器にシリアルに送信するために使用されるシフト マトリックスを示しています。60 ビットは、6 つの異なるレベルの磁気コアにダンプされます。したがって、位置 9 から 1 が出てくると、その下の 6 つのコアすべてに現れます。任意の対角線にパルスを送信すると、その線に沿って格納されている 6 ビットが加算器に送信されます。加算器は、すべてのビットを受け入れることも、一部のビットだけを受け入れることもできます。右から始まる 4 ビットの 10進数字 を操作する必要があると仮定します。0 の対角線に最初にパルスが送信され、0 から 5 の 6 ビットが送信されます。加算器は、そのうち最初の 4 ビット (0 から 3) のみを受け入れます。ビット 4 と 5 は無視されます。次に、対角線4にパルスが送られます。これによりビット4から9が出力され、最後の2ビットは再び無視されます。以下同様に、6ビットすべてを英数字処理 に使用したり、1ビットのみのバイトを論理解析に使用したり、任意のビット数だけバイトをオフセットしたりすることも同様に簡単です。これらはすべて、適切なシフト対角線を引くことで実現できます。加算器の出力において、同様のマトリックス構成を用いて直列動作から並列動作へと切り替えます。[...]
バイト - コンピュータワードの区分。注: 12 ビット、24 ビット、48 ビットのバイトについて説明します。
Byte = zusammengehörige Folge von ia neun Bits;ダヴォン・シンド・アハト・ダテンビッツ、新しい人生のプリュフビット注: 1 バイトは通常 9 ビット (8 つのデータ ビットと 1 つのパリティ ビット) のグループとして定義されます。
バイト: 複数のビットで構成される文字列。単位として扱われ、通常は文字または文字の一部を表します。 注: 1 バイトのビット数は、特定のデータ処理システムごとに固定されています。2 バイトのビット数は通常8です。
バイト、オクテット、8ビットバイト:8ビットで構成される文字列。
1950年代半ばにIBMのプロジェクト・ストレッチに携わっていたW・ブッフホルツ氏から、以下の手紙をいただきました。彼の手紙には、その経緯が記されています。 私は貴誌の定期購読者ではありませんが、1976年11月号に掲載された「バイト」という用語の起源に関する質問について、私がこの専門用語を使ったことを知っていた同僚から聞きました(1976年11月号BYTEの77ページ、「Olde Englishe」参照)。ファイルを調べましたが、出生証明書は見つかりませんでした。しかし、「バイト」は1977年に21歳の誕生日を迎え、成熟期を迎えていると確信しています。8 ビットを意味するバイトは、1960年代半ばに広く普及させたIBM System/360に由来すると考えられています。編集者が、この用語の起源が初期のストレッチ・コンピュータに遡る点を指摘するのは正しいのですが(ただし、ストレッチ・コンピュータはIBMが開発した第二世代のトランジスタ式コンピュータの中で、最後のものではなかったという点は誤りです)。 ファイル内で最初に発見された言及は、Stretchの開発初期段階である1956年6月に書かれた内部メモに含まれていました。バイトは1から6までの任意の数の並列ビットで構成されると説明されていました。したがって、バイトの長さは状況に応じて適切に設定されていました。バイトが初めて使用されたのは、1950年代の入出力機器においてで、当時は一度に6ビットを処理していました。8ビットバイトへの移行の可能性は1956年8月に検討され、その後まもなくStretchの設計に組み込まれました。 この用語が初めて公に言及されたのは、1959年6月のIRE Transactions on Electronic Computers誌121ページに掲載された、GA Blaauw、F.P. Brooks Jr、W Buchholzによる論文「Processing Data in Bits and Pieces 」です。この論文の概念は、W Buchholz編『 Planning a Computer System (Project Stretch)』 (McGraw-Hill Book Company、1962年)の第4章で詳しく説明されています。この用語の造語理由は、同書の40ページで次のように説明されています。バイトとは、文字を符号化するために使用されるビットの集合、または入出力装置間で並列に伝送されるビット数を表します。ここで「文字」以外の用語を使用するのは、特定の文字が異なるアプリケーションで複数のコードで表現される場合があり、また異なるコードでは異なるビット数(つまり、異なるバイトサイズ)が使用される場合があるためです。入出力伝送において、ビットの集合は完全に任意であり、実際の文字とは無関係です。(この用語は「bite (バイト)」から派生した造語ですが、誤って「bit(ビット)」と表記されるのを避けるために「bit」に書き換えられています。) System/360は、2の累乗である基本バイトサイズとワードサイズなど、Stretchの概念の多くを引き継ぎました。しかし、経済性を考慮して、バイトサイズは最大8ビットに固定され、ビットレベルのアドレス指定はバイトアドレス指定に置き換えられました。 それ以来、「バイト」という用語は一般的に8ビットを意味するようになり、一般的な用語として定着しました。 他に、コンピューター分野に特化した造語で、英語の一般辞書に掲載されているものはありますか?
1956年夏:ゲリット・ブラウ、フレッド・ブルックス、ヴェルナー・ブッフホルツ、ジョン・コック、ジム・ポメレーンがStretchチームに加わる。ロイド・ハンターがトランジスタ担当のリーダーとなる。 1956年7月:ヴェルナー・ブッフホルツは報告書の中で、Stretchにおける64ビットワード長の利点を列挙した。これはまた、NSAの8ビットバイト要件もサポートする。ヴェルナーの「バイト」という用語が初めて普及したのはこのメモによる。
注意:この年表では、「バイト」という用語の誕生年を1956 年 7 月と誤って指定していますが、ブッフホルツは実際には1956 年 6 月からこの用語を使用していました。
[...] 60は1、2、3、4、5、6の倍数です。したがって、1ビットから6ビットの長さのバイトは、1ワードと次のワードの間でバイトを分割することなく、60ビットワードに効率的にパックできます。より長いバイトが必要な場合は、もちろん60ビットはもはや理想的ではありません。現在のアプリケーションでは、1ビット、4ビット、6ビットが本当に重要なケースです。64 ビットワードでは、入出力で6ビットバイトを扱う際に、ワード内の4ビットを未使用のままにするなど、何らかの妥協が必要になることがよくあります。しかし、LINKコンピュータはこれらのギャップを編集し、ワード間で分割されたバイトを処理する機能を備えています。[...]
[...] シリアル通信における入出力バイトの最大サイズは、エラー検出・訂正ビットを除いて8ビットになります。したがって、Exchangeは8ビットバイト単位で動作し、1バイトあたり8ビット未満の入出力ユニットは残りのビットを空白のままにします。結果として生じるギャップは、後でプログラミングによって削除できます。[...]
IBMに入社して、64文字制限がもたらす混乱を目の当たりにしました。特に、大文字と小文字の両方が必要となるワードプロセッサについて考え始めた時は、その混乱は顕著でした。 既存の47文字に小文字26文字を加えると73文字となり、6ビットで表現できる文字数より9文字も多くなります。私が知る限り、8ビットバイトを搭載した最初のコンピュータであるSTRETCH を 念頭に、パンチカードの文字コードを256文字まで拡張するという提案もしました[1]。真剣に受け止めてくれた人もいましたが、私は単なるパロディーだと考えていました。 そこで7ビット文字について考え始めた人もいましたが、これはとんでもない話でした。IBMのSTRETCHコンピュータを背景に、8文字ずつに分割できる64文字の単語を扱うという状況下で(8ビットのグループを表す「バイト」という用語を考案したヴェルナー・ブッフホルツ博士の指導の下、私はSTRETCHの文字セットを設計しました)、文字セットは8ビット単位のグループ分けを64文字で表現する必要がありました。 [2] 256ビットまで扱える汎用的な8ビット文字セットを作るのは合理的に思えました。当時の私のモットーは「2の累乗は魔法だ」でした。そこで私が率いるグループは、そのような提案を立案し、その正当性を証明しました[3]。しかし、ASCIIを公式化する標準化グループに提示したところ、少々進歩しすぎたため、彼らは当面7ビットセット、あるいは上位半分を将来の作業に残す8ビットセットで中止しました。IBM 360は8ビット文字を使用していましたが、直接ASCIIではありませんでした。こうして、 ブッフホルツの「バイト」は広く普及しました。私自身は、多くの理由からその名前が好きではありませんでした。設計では8ビットが並列に動作していました。しかしその後、CPU内部とテープドライブの両方に、自己チェック用の9ビットを備えたIBMの新しい部品が登場しました。この9ビットバイトをマスコミに公開したのは1973年のことでした。しかしそれよりずっと前、 1965年から66年にかけてフランスのCie. Bullでソフトウェア事業を率いていた頃、私は「バイト」という表現はもはや推奨されず、「オクテット」という表現が使われるべきだと主張しました。当時私が好んでいた言葉が、今では「オクテット」という表現が主流になっていることにお気づきでしょう。 これは、16ビット、32ビット、64ビット、さらには128ビットを並列に伝送できる新しい通信方式の登場によって正当化されています。しかし、一部の愚かな人々は、この並列転送を理由に、今では「16ビットバイト」と呼んでいます。これはUNICODEセットにも見られるものです。確信はありませんが、もしかしたら「ヘクステット」と呼ぶべきかもしれません。しかし、私の主張が今でも正しいことにお気づきになるでしょう。2の累乗は、今でも魔法の力を持っているのです!
バイトという用語は、1956年から1957年頃にMITリンカーン研究所で、ランド研究所、リンカーン研究所、およびIBMが共同開発したSAGE(北米防空システム)というプロジェクトの中で作られました。その時代には、コンピュータのメモリ構造はすでにワード サイズで定義されていました。ワードは x 個のビットで構成され、ビットはワード内のバイナリ表記の位置を表します。操作は通常、フル ワード内のすべてのビットに対して行われます。 私たちは、フル ワード サイズ未満の論理ビット セットを指すためにバイトという用語を作りました。当時は、具体的に x ビットとして定義されていませんでしたが、コード化されたデータ項目のほとんどが4 ビットのサイズであったため、通常は 4 ビットのセットを指していました。その後まもなく、私は他の職務に就き、SAGE から外れました。長年アジアで過ごした後、米国に戻り、バイトという用語が新しいマイクロコンピュータ テクノロジで基本的なアドレス指定可能なメモリ ユニットを指すために使用されていることを知って困惑しました。
ACMカンファレンスで行われたプログラミング言語の歴史に関する 質疑応答で、次のようなやり取りがありました。 [ジョン・グッドイナフ氏:JOVIAL で「バイト」という用語が使われているとおっしゃっていましたが、この用語の由来はどこから来たのですか? ] [ジュール・シュワルツ氏(JOVIALの発明者): 私の記憶では、AN/FSQ-31は709とは全く異なるコンピュータで、バイト指向でした。確かなことは覚えていませんが、そのコンピュータの説明に「バイト」という言葉が含まれていて、私たちもそれを使用していたことはほぼ間違いありません。 ] [フレッド・ブルックス氏: それについて少しお伺いしてもよろしいでしょうか?STRETCHの定義の一部としてWerner Buchholz氏がこの言葉を造語し、AN/FSQ-31はSTRETCHからこの言葉を引用しましたが、この言葉の考案者はWerner氏であることは間違いありません。 ] [ シュワルツ氏: その通りです。ありがとうございます。 ]
DVDの命名法では、1ギガバイトは10億バイトと定義されています…