(これは、10GB/秒を視野に入れた4部構成の投稿の3つ目です。 最初のパートでは、映画を見るロボットが 10GB/s の SSD を使って何ができるかを仮定して説明しました。 第2回は、コンピュータ技術で使用される標準的な測定単位であるビットとバイトを定義しました。 このセクションでは、ストレージとデータに関する特に混乱しやすい問題、つまり、同じ単位の接頭辞に対して 2 つの一般的な定義があることについて説明を試みます。 第 2 回で、ギガは 10 億を意味することを確認しました。したがって、500GB のドライブは、465 億ではなく 5000 億バイトの容量を持つはずです。
そうです!
そして、それも正しくありません。
たまたまこの不一致について調べたのなら、おそらく不足している 35GB はまったく不足していないことに気づいたことでしょう。 それは、ギガは必ずしもあなたが思うようには使われないということです。 パン屋さんが「ダース」を「13」と呼ぶように、「ギガ」は「1,073,741,824」という意味で使われることがあるのです。
A Trip Down Memory Lane
Computers は、データ ファイルに含まれる情報と命令を使用します。 これらのデータ ファイルは、現代のコンピュータ システムでは、一次メモリと二次ストレージの 2 つの場所に存在します。 一次メモリは、現在最も一般的なランダムアクセスメモリ(RAM)で、コンピュータプロセッサがすぐにアクセスできるデータが格納されています。 二次記憶装置は、ハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)など、主に長期的なストレージである。 二次記憶装置にあるデータは、コンピューターが使用する前に、まずRAMに移動させる必要があります。 この状況は、オフィスの机とファイルキャビネットに似ている。 オフィスのデスクトップ上のドキュメントは RAM 内のファイルのようなもので、コンピューター プロセッサーのように、アクセス、読み取り、アクションをすぐに実行できる唯一のものです。ファイル キャビネット、つまり二次記憶装置のドキュメントも同様に使用できますが、キャビネットから取り出してデスクトップに置いた後でのみ、使用できます。 この記事の第 2 部で述べたように、これらのサイズは通常、数千、数百万、あるいは数十億バイトに及ぶため、これらのサイズが特別な接頭辞なしに言及されることはほとんどありません。 この問題は、二次記憶装置のメーカーは歴史的に、ドライブの記憶容量を測定するために従来の接頭辞の定義を使用してきたのに対し、RAM や CPU チップのメーカーはまったく同じ接頭辞に別の定義を使用することを選択したために発生しました。 現在の形は1960年に国際単位系(SI)で標準化されたものである。 メートル法は10を基本としているので、接頭辞は10の整数乗に対応する。 例えば、キロは103で、10を3倍した1,000を意味する。 それ以降の接頭語は、その1000の累乗で簡単に表すことができる。 例えば、メガは1,0002(1,000,000)、ギガは1,0003(1,000,000,000)である。 ストレージ業界では、二次記憶装置の容量を表すのにメートル法の接頭辞を使っています。
一次記憶装置について話すときは、二進法の接頭辞が登場します。 データが一次メモリーに格納されると、各情報に一意のアドレスが割り当てられ、プロセッサが必要なときにデータを見つけることができるようになる。 当初、メインメモリの容量は絶対数で表されましたが、初期のコンピュータ専門家がより大きなメモリ容量を表す必要性を感じたとき、それを表すために接頭辞を使用する必要性を感じました。 ストレージ業界では、すでにSIベースのメートル法による接頭辞が採用されていた。 そこで、利便性を考え、接頭辞を採用することにした。 2進数で1,024、つまり210が10進数で1,000、つまり103とほぼ等しいことに着目し、1,000を意味するキロではなく、1,024を意味するキロという接頭辞を使うようになったのだ! それ以降の接頭語は、その1,024の累乗で表すことができる。 たとえば、メガは 1,0242 に、ギガは 1,0243 になりました。
次の表は、この投稿のパート 2 で紹介した表を拡大したもので、各接頭語の意味だけでなく、両システムの接頭語の正確な値も含まれています。 この数字をギガバイトで割ると、2 つの異なる値が得られるということです。 国際単位系やストレージメーカーが採用しているように、ギガバイトを1,0003(または1,000,000,000)バイトと定義すると、500,000,000,000バイトは500GBと同じになるのです。 RAMメーカーや一部の主要OSが採用しているように、ギガバイトを1,0243(または1,073,741,824)バイトと定義すると、500,000,000,000バイトは465GBと同じになるのですが、初期にはこの近似度の差は無視できるほど小さく、問題にはならなかったのです。 結局のところ、メートル法のキロバイトとバイナリ法のキロバイトの差はわずか2.4%に過ぎません。 しかも、1,000バイトのストレージなのか、1,024バイトのメモリなのか、KBを語れば誰でもわかることだった。 しかし、時代が進むにつれて、メモリもストレージも容量が大きくなってきた。 容量が大きくなると、同じ接頭辞でも10進数と2進数の相対的な違いが顕著になる。 例えば、2進数とメートル法のキロの違いは2.4%に過ぎないが、ギガの違いは7.4%、ペタの話になると12.6%にもなる!
この違いが問題になる可能性があるため、科学界では1990年代後半から、大きな2進数の接頭語について新しい明確な命名規則を正式に確立する動きが出ていた。 1998年に国際電気標準会議(IEC)、国際標準化機構(ISO)、米国国立標準技術研究所(NIST)の標準化団体によって採用され、現在では「IEC接頭辞」と呼ばれている。 この接頭語は、両者を明確に区別するためのもので、SI接頭語の最初の2文字とbi(binaryの略)を組み合わせた短縮形として形成されています。 次の表に接頭辞とその意味の一覧を示す。
NASA の Mars Climate Orbiter が 1999 年に起こした悪名高い燃焼事故のように、もう一方の接頭語を使うべきときにもう一方の接頭語を間違って使った場合の影響は劇的ではないかもしれませんが、そのような事態は起こりません。 ソフトウェアがスラスターの力を「ポンド」で計算し、別のソフトウェアがそれをメートル法の「ニュートン」であると仮定してデータを取り込んだ場合、これらのシステムの違いを理解することで、驚いたり、少なくとも混乱したりせずに済むことがあります。残念ながら、すべてのコンピュータ、ソフトウェア、メモリメーカーが標準的な科学的定義を使用しているわけではないので、メートル法と2進法の両方の解釈で同じ接頭辞が使用されている可能性がまだ残っているのです。 インストールしたストレージデバイスが標準的な接頭辞を使ってある容量を表示しているのに、オペレーティングシステムが一次記憶容量と二次記憶容量を二進数の接頭辞で表示しているために、消費者が別の容量のように見えるという混乱がまだ生じているのです。 今日、この混乱を軽減するために、ほとんどのストレージ メーカーは、使用する接頭辞の正確な値を定義する説明を製品や文献に記載しています。
この記事の次のパートでは、転送速度と、データでそれを表現する際に考慮すべき独自の事柄を取り上げます。