web-dev-qa-db-ja.com

フラッシュメモリドライブのサイズが一般に2の倍数であるのに、ハードディスクドライブのサイズが100の倍数になるのはなぜですか?

フラッシュメモリドライブのサイズが一般に2の倍数であるのに、ハードディスクドライブのサイズが100の倍数になるのはなぜですか?

私が見たすべてのHDDの容量は、100 GB、250 GB、500 GB、2000 GBのようなもので、数字はゼロで終わりました。

しかし、フラッシュメモリベースのデバイスは、ほとんどの場合、64GB、128GBのように2の倍数のサイズでした

ごく最近、120GBまたは200GBのサイズのSSDがいくつか見られました。

これには理由がありますか?私はいつもなぜだろうと思っていましたが、見つける機会がありませんでした。

4
BemyGuest

RAMのサイズが2の累乗になるのには、その製造方法と対処方法のために十分な理由があります(フラッシュドライブについて質問されました。ご容赦ください。 CPUから出てくるバスに現れる2進数を介してアドレス指定され、すべてのRAMモジュールはバスのすべてのビットに配線されます。

1つのモジュールに4GB RAMがあります。アドレスは0からFFFFFFFFの16進数(32個の1が連続しています)になります。さらに4 GBのモジュールを追加すると、もちろん2倍になります。各2進数は2による乗算を表すため(各10進数は10による乗算を表すのと同じように)、最大アドレスは単純に1FFFFFFFFになります。メモリコントローラーは、アドレス0〜FFFFFFFFを最初のモジュールに送信することでこれを処理できます。100000000 1FFFFFFFFを介して2番目のモジュールに移動します(実際にはそれほど単純ではありませんが、それがアイデアです)。チップがますます多くの容量を運ぶため、RAMモジュール内でも同じように機能します。システム内のすべてのRAMを1つの連続するアドレスのブロックに簡単に組み合わせることができると非常に便利です。これは、モジュールのサイズが2の累乗である場合、ハードウェアレベルで最も簡単です。 。

ハードドライブに2の累乗に関連するセクターの数があるという対応する理由はありません。記録可能なサーフェスの数、トラックあたりのセクターの数、およびサーフェスあたりのトラックの数はバイナリベースではありません。それらは単に「適合するものは何でも」です。 (初期のPCハードドライブでは、トラックあたり17セクターが一般的でした。)最近のハードドライブでは、トラックあたりのセクター数は、最も外側のトラックから最も内側のトラックまで同じではありません。

したがって、ハードドライブには1024の累乗の容量になる内部的な理由はありません。複数のドライブにまたがるアドレス指定に関しては、ボリュームとファイルシステムの動作方法により、システム内のすべてのディスクストレージを連続したブロックアドレスのセットを持つ1つのブロックアレイに集約する必要はありません。また、望ましい場合でも、OSのストレージドライバスタック内のソフトウェアは、「ブロック0〜3906259999はドライブ0にあり、3906260000はドライブ1にあるものは何でも」などを追跡するのに問題はありません。これを実行する多くのストレージソフトウェアシステム(たとえば、Windowsの動的ディスクとストレージスペースの両方)は、任意のサイズのディスクドライブのコレクションから単一の「ボリューム」を作成します。

フラッシュメモリのサイズを説明する前に、RAMとハードドライブのサイズについてもう1つ詳細を明確にする必要があります:

RAMサイズは、ほとんどの場合、「バイナリプレフィックス」を使用して引用されています。つまり、「4 GB RAM」は、2から30の4倍、またはより便利な1024の4倍を意味します。 3乗、つまり4 x 1024 x 1024 x 1024 = 4,294,967,296です。ただし、ハードドライブを購入する場合、「GB」は1,000,000,000バイトを意味します。

ちなみに、これはハードドライブメーカーがより少ない容量をより高いコストで販売しようとする最近の変更ではありませんでした。ハードドライブは常にこのように引用されています。ハードドライブは、RAMがメガバイト単位のサイズになり、ギガとテラでも同じになる前は、「10進メガバイト」を使用していました。最初のハードドライブであるIBM 350 RAMACの容量は、5,000,000文字でした。 fiftyプラッターに格納されます。「5」のような主要な要素が混在している場合、2の純粋な累乗を使用するのは困難ですが、それはさておき...

このデッキのジョーカーは、USB「キー」やSDカードなどを含むソリッドステートドライブです。はい、「ユニットの前の数字」は、64のように2の小さな累乗であることがよくあります。ただし、 「G」は、ハードドライブの場合と同じように、1,000,000,000を意味します。

これが信じられない場合は、1つをコンピュータに接続して、プレフィックスなしでドライブにあるバイト数を知らせてください。 「64GB」フラッシュドライブが実際に64バイナリギガバイトである場合、その数は68,719,476,736になります(Windowsでは「64GB」と表示されます)。しかし、メーカーの細字には「1 GB = 10億バイト」などと書かれているので、実際には64,000,000,000しか保証されておらず、Windowsは59.6 GBと言っています(Windowsはハードドライブにバイナリプレフィックスを使用しているはずですが、そうではないためです) )。しかし、実際には、「G」が1024の立方体、つまり1,073,741,824を意味することを覚えていれば、59.6GBは正しいです。

さて、奇妙なことに、追加の容量はどこにありますか?参照してください、フラッシュRAM USBキー内のチップとmSATAデバイスはすべて「バイナリサイズ」で提供されます。したがって、「64GB」フラッシュドライブには「64GiB」(バイナリギガバイト)が存在する可能性があります。 )実際のフラッシュRAMの。しかし、64,000,000,000バイトしか使用できません。残りはどこにありますか?フラッシュメモリは、動作するために多くの予備スペースを必要とします。「64GB」フラッシュドライブは、予備スペースとして68,719,476,736と64,000,000,000の差を使用します。 。

はい、最近のフラッシュドライブ、特にHDの代替品は、ハードドライブのようなサイズで登場しています。私は彼らが彼らの寿命を延ばすより多くの予備のスペースのために余分を使用していると想像します。例えば「120GB」フラッシュドライブはユーザーに120,000,000,000バイトを提供しますが、チップの容量はおそらく137,438,953,472バイトです。これは、ドライブが128,000,000,000をユーザーに公開した場合よりもはるかに多くの空き容量です。

5
Jamie Hanrahan