| 情報の単位 |
| 情報理論的 |
|---|
| データストレージ |
| 量子情報 |
ビットは、コンピューティングとデジタル通信における最も基本的な情報単位です。この名称は、 2進数(binary digit)を組み合わせた造語です。[ 1 ]ビットは、 2つの値のいずれかを持つ論理状態を表します。これらの値は、一般的に1と0で表されますが、真/偽、はい/いいえ、オン/オフ、+ / -などの他の表現も広く使用されています。
これらの値と、基盤となるストレージまたはデバイスの物理状態との関係は慣例であり、同じデバイスまたはプログラム内であっても異なる割り当てが使用される場合があります。物理的には2状態デバイスで実装される場合があります。
連続した2進数のグループは、一般的にビット列、ビットベクトル、または1次元(または多次元)ビット配列と呼ばれます。8ビットのグループは1 バイトと呼ばれますが、歴史的にはバイトのサイズは厳密に定義されていません。[ 2 ]多くの場合、ハーフワード、フルワード、ダブルワード、クワドラプルワードは、2のべき乗のバイト数で構成されます。4ビットの文字列は通常、ニブルと呼ばれます。
情報理論において、1ビットとは、等確率で0か1をとるランダムな2値変数の情報エントロピー[ 3 ]、またはそのような変数の値が判明したときに得られる情報である。[ 4 ] [ 5 ]情報単位としてのビットは、クロード・E・シャノンにちなんでシャノン[6]とも呼ばれる。2進アルファベット(すなわち)上の記号として符号化されたデジタル文字列の長さの尺度として、ビットはビニット[ 7 ]と呼ばれてきたが、この用法は現在では稀である。[ 8 ]
データ圧縮における目的は、文字列のより短い表現を見つけて、格納または転送時に必要なビット数を減らすことです。文字列は、その前に短い表現に圧縮され、ストレージから読み取られたり受信されたりするときに元の形式に解凍されます。アルゴリズム情報理論の分野では、受信側が文字列の圧縮に使用された手法について最小限の事前知識しか持っていないという仮定の下、文字列の削減不可能な情報量 (つまり、ビット単位での可能な限り短い表現長) を研究します。エラー検出および訂正における目的は、文字列に冗長データを追加して、格納または転送中にエラーを検出または訂正できるようにすることです。冗長データは追加前に計算されて格納または転送され、データの読み取りまたは受信時にチェックまたは訂正されます。
2進数の記号は、IEC 80000-13 :2008規格では「ビット」、 IEEE 1541-2002規格では小文字の「b」のいずれかです。後者を使用すると、バイトを表す国際標準記号である大文字の「B」と混同される可能性があります。
ラルフ・ハートリーは1928年に対数的な情報量の使用を提案した。[ 9 ]クロード・E・シャノンは1948年の画期的な論文「通信の数学的理論」で初めて「ビット」という言葉を使用した。 [ 10 ] [ 11 ] [ 12 ]彼はその語源を、1947年1月9日のベル研究所のメモで「2進情報桁」を単に「ビット」と短縮したジョン・W・テューキーにあるとした。[ 10 ]
ビットは、2つの異なる状態のいずれかで存在するデジタルデバイスまたはその他の物理システムによって保存されます。これらの状態には、フリップフロップの2つの安定状態、電気スイッチの2つの位置、回路によって許容される2つの異なる電圧または電流レベル、2つの異なる光強度レベル、磁化または分極の2つの方向、可逆的な二本鎖DNAの方向などがあります。
おそらくバイナリ記憶装置の最も古い例は、バジル・ブションとジャン=バティスト・ファルコン(1732年)によって発明され、ジョセフ・マリー・ジャカール(1804年)によって開発され、後にセミョン・コルサコフ、チャールズ・バベッジ、ヘルマン・ホレリス、そしてIBMなどの初期のコンピュータメーカーに採用されたパンチカードである。そのアイデアの派生として、穴あき紙テープがある。これらすべてのシステムでは、媒体(カードまたはテープ)は概念的に穴の位置の配列を保持しており、各位置は穴が開いているか開いていないかであり、したがって1ビットの情報を伝送していた。ビットによるテキストの符号化は、モールス信号(1844年)やテレタイプ(1870年)などの初期のデジタル通信機器でも使用されていた。
離散論理を用いた最初の電気機器(エレベーターや信号機の制御回路、電話交換機、コンラート・ツーゼのコンピュータなど)は、ビットを電気リレーの「開」または「閉」の状態として表現していました。これらのリレーは機械式スイッチとして機能し、物理的に状態を切り替えてバイナリデータを表現するため、初期のコンピュータおよび制御システムの基本的な構成要素となりました。1940年代以降、リレーが真空管に置き換えられると、コンピュータ開発者は、水銀遅延線を伝わる圧力パルス、ブラウン管の内面に蓄積される電荷、フォトリソグラフィー技術によってガラスディスクに印刷された不透明な点など、さまざまなストレージ方式を試しました。
1950年代から1960年代にかけて、これらの方式は磁気コアメモリ、磁気テープ、ドラム、ディスクなどの磁気記憶装置に大きく取って代わられました。これらの装置では、ビットは強磁性膜の特定領域の磁化の極性、あるいはある方向から別の方向への極性の変化によって表されていました。同じ原理は後に1980年代に開発された磁気バブルメモリにも利用され、現在でも地下鉄の切符や一部のクレジットカードなど、様々な磁気テープ製品に使用されています。
ダイナミックランダムアクセスメモリやソリッドステートドライブなどの現代の半導体メモリでは、ビットの2つの値は、コンデンサまたはフローティングゲートMOSFETに蓄積された2つの電荷レベルによって表されます。特定の種類のプログラマブルロジックアレイやリードオンリーメモリでは、ビットは回路の特定のポイントにおける導電パスの有無によって表される場合があります。光ディスクでは、ビットは反射面上の微細なピットの有無としてエンコードされます。1次元バーコードと2次元QRコードでは、ビットは黒または白の線または四角形としてエンコードされます。
現代のデジタルコンピューティングでは、ビットはブール論理ゲートで変換されます。
シリアル伝送では、ビットは1つずつ送信されます。一方、パラレル伝送では、複数のビットが同時に送信されます。シリアルコンピュータは、ビットシリアル方式またはバイトシリアル方式のいずれかで情報を処理します。データ通信の観点から見ると、バイトシリアル伝送はバイナリ信号を用いた8方向パラレル伝送です。
Cなどのプログラミング言語では、ビット演算はバイナリ文字列をバイナリ数値として解釈するのではなく、ビットのベクトルであるかのように操作します。
データ転送速度は通常、SI単位の10進数の倍数で測定されます。例えば、チャネル容量は8 kbit/s = 1 kB/sと指定される場合があります。
ファイルサイズは、多くの場合、IECのバイト単位(2進数)で測定されます。例えば、1 KiB = 1024 バイト = 8192 ビットです。歴史的な理由により、ファイルサイズがIEC標準のKi、Mi、Giではなく、曖昧なK、M、Gという接頭辞を用いた2進数の乗数で指定される場合、混乱が生じる可能性があります。[ 13 ]
大容量ストレージデバイスは通常、1 TB =バイトなど、10 進 SI 倍数で測定されます。
紛らわしいことに、 DRAMチップなどの直接アドレス指定可能なメモリデバイス、あるいはメモリモジュール上のそのようなチップの集合体の記憶容量は、IEC推奨のGi接頭辞ではなく、曖昧な接頭辞Gを用いて2進数の倍数で指定されます。例えば、「1GB」の容量を持つと指定(および宣伝)されているDRAMチップは、バイト単位の容量を持っています。2022年時点でも、「8GB」の容量を持つメモリシステムに対する一般的な理解と、SI法における正しい「8GB」の意味との間の差異は、ソフトウェア設計者にとって依然として問題となっていました。[ 14 ]
ビットは国際単位系(SI)では定義されていません。しかし、国際電気標準会議(IEC)は規格IEC 60027を発行しており、2進数の記号は「ビット」とし、キロビットを表す「kbit」のように、すべての倍数でこの記号を使用する必要があると規定しています。[ 15 ]一方、小文字の「b」も広く使用されており、IEEE 1541規格(2002年)でも推奨されています。一方、バイトを表す標準的かつ慣習的な記号は大文字の「B」です。
| 複数ビットユニット | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 膨大なデータ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
複数ビットは、いくつかの方法で表現および表現できます。情報技術で一般的に繰り返し発生するビットのグループを表現する便宜上、伝統的にいくつかの情報単位が使用されてきました。最も一般的なのは、1956年6月にWerner Buchholzによって造られた単位バイトです。これは歴史的に、コンピュータでテキストの1文字をエンコードするために使用されるビットのグループを表すために使用されてきました[ 2 ] [ 16 ] [ 17 ] [ 18 ] [ 19 ] 。このため、多くのコンピュータアーキテクチャで基本的なアドレス指定可能な要素として使用されました。1993年までに、ハードウェア設計の傾向は8ビットバイトに収束しました[ 20 ]。 ただし、基礎となるハードウェア設計に依存する曖昧さのため、単位オクテットが8ビットのシーケンスを明示的に示すように定義されました。
コンピュータは通常、固定サイズのビット群を単位として操作します。この単位は慣習的に「ワード」と呼ばれます。バイトと同様に、ワードのビット数もハードウェアの設計によって異なり、通常は8~80ビットですが、一部の特殊なコンピュータではそれ以上のビット数になることもあります。21世紀初頭には、市販のパーソナルコンピュータやサーバーコンピュータのワードサイズは32ビットまたは64ビットです。
国際単位系(IOS)は、標準化された単位の倍数を表す一連の十進接頭辞を定義しており、これらはビットやバイトにも一般的に用いられます。キロ(10 3)からクエッタ(10 30)までの接頭辞は1000の倍数で増加し、対応する単位はキロビット(kbit)からクエッタビット(Qbit)です。
...]
IBM
の
STRETCH
コンピュータを背景に、8ビットのグループに分割可能な64文字の単語を処理していました(私は、8ビットのグループを表す「
バイト」という用語を考案した
Werner Buchholz
博士の指導の下、その文字セットを設計しました
)。[...]
IBM 360は
8ビット文字を使用していましたが、ASCIIを直接使用したわけではありませんでした。そのため、Buchholzの「バイト」という名前は広く普及しました。私自身は、多くの理由からこの名前が好きではありませんでした。[...]
対数の底の選択は、情報測定の単位の選択に対応する。基数 2 が使用される場合、結果の単位は 2 進数、またはもっと簡単に言えば
JW Tukey
が提案した言葉である
ビット
と呼ばれることがあります。
{{cite book}}:ISBN / 日付の非互換性(ヘルプ)[...] 編集の観点から最も重要なのは、1ビットから6ビットまでの任意の文字または数字を処理できることです。[...] シフトマトリックスは、
メモリから並列に送られる60ビット
ワードを、
加算器に
シリアル
に送られる文字(ここでは「
バイト
」と呼んでいます)に変換するために使用します
。60ビットは、 6つの異なるレベルの
磁気コア
にダンプされます。したがって、位置9から1が出てくると、その下の6つのコアすべてに1が現れます。 [...] 加算器は、すべてのビットを受け入れることも、一部のビットのみを受け入れることもできます。[...] 右から4ビットの
10進数
で演算を行うとします。最初に対角0にパルスが送られ、0~5の6ビットが送信されます。加算器は、そのうち最初の4ビット(0~3)のみを受け入れます。ビット4と5は無視されます。次に、対角4にパルスが送られます。これにより、ビット4~9が送信され、最後の2ビットは再び無視されます。[...]
英数字
処理に6ビットすべてを使用することも、1ビットのみのバイトを論理分析のために処理することも、バイトを任意のビット数だけオフセットすることも同様に簡単です。[...]
Stretch
の開発初期段階の1956年6月に書かれた社内メモに含まれていました
。
バイトは
1から6までの任意の数の並列ビットで構成されると説明されていました。したがって、バイトの長さは状況に応じて適切に設定されていました。バイトが初めて使用されたのは、1950年代の入出力機器においてで、当時は6ビットずつ処理されていました。8ビットバイトへの移行の可能性は1956年8月に検討され、その後まもなくStretchの設計に組み込まれました。この用語が初めて公に言及されたのは、1959年6月のIRE Transactions on Electronic Computers誌121ページに掲載された、G A 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に変化することを避けるために綴りが変えられています
。)
System/360 は
、2 の累乗である基本的なバイト サイズとワード サイズを含む、Stretch の概念の多くを引き継ぎました。ただし、経済性を考慮して、バイト サイズは最大 8 ビットに固定され、ビット レベルのアドレス指定はバイト アドレス指定に置き換えられました。 [...]