フラッシュメモリを使用してWindowsなどのデスクトップシステムを実行することは、かなり前から推奨されていませんでした。しかし、何がそれをモバイルデバイスにとって望ましく実行可能なオプションにしたのでしょうか?今日のスーパーユーザーのQ&A投稿には、好奇心旺盛な読者の質問に対する回答があります。
今日の質疑応答セッションは、コミュニティ主導のQ&AWebサイトのグループであるStackExchangeの下位区分であるSuperUserの好意で行われます。
質問
スーパーユーザーリーダーのRockPaperLizardは、eMMCフラッシュメモリがPCではなくモバイルデバイスで実行可能になる理由を知りたいと考えています。
USBフラッシュドライブが発明されて以来、人々は自分たちのオペレーティングシステムをそれらで実行できるかどうか疑問に思ってきました。オペレーティングシステムに必要な書き込みの数によってすぐに使い果たされるため、答えは常に「いいえ」でした。
SSDの人気が高まるにつれ、オペレーティングシステムをSSDで実行できるようにするために、ウェアレベリングテクノロジーが向上しました。さまざまなタブレット、ネットブック、その他のスリムなコンピューターは、ハードドライブやSSDの代わりにフラッシュメモリを使用し、オペレーティングシステムはそこに保存されます。
これはどのようにして突然実用的になりましたか?たとえば、彼らは通常、ウェアレベリング技術を実装していますか?
eMMCフラッシュメモリをモバイルデバイスで実行可能にするが、PCでは実行できない理由は何ですか?
答え
スーパーユーザーの貢献者であるSpeeddymonとJourneymanGeekが答えを持っています。まず、Speeddymon:
タブレットから携帯電話、スマートウォッチ、SSD、カメラのSDカード、USBサムドライブまで、すべてのフラッシュメモリデバイスはNVRAMテクノロジーを使用しています。違いは、NVRAMアーキテクチャと、オペレーティングシステムがファイルシステムをどのストレージメディアにマウントするかです。
Androidタブレットおよび携帯電話の場合、NVRAMテクノロジーはeMMCベースです。このテクノロジーで私が見つけることができるデータは、3kから10kの書き込みサイクルを示唆しています。残念ながら、ウィキペディアはこのテクノロジーの書き込みサイクルについて空白であるため、これまでに見つけたものはどれも決定的なものではありません。私が見た他のすべての場所はたまたまさまざまなフォーラムだったので、私が信頼できる情報源と呼ぶことはほとんどありません。
比較のために、NANDまたはNORテクノロジーを使用するSSDなどの他のNVRAMテクノロジーの書き込みサイクルは10kから30kの間です。
次に、オペレーティングシステムによるファイルシステムのマウント方法の選択について説明します。 Appleのやり方については話せませんが、Androidの場合、チップはハードドライブのように分割されています。デバイスの製造元に応じて、オペレーティングシステムパーティション、データパーティション、およびその他の独自のパーティションがいくつかあります。
実際のルートパーティションは、カーネルと一緒に圧縮ファイル(jffs2、cramfsなど)としてバンドルされているブートローダー内に存在するため、デバイスのステージ1の起動が完了すると(通常はメーカーのロゴ画面)、カーネルが起動し、ルートパーティションがRAMディスクとして同時にマウントされます。
オペレーティングシステムが起動すると、プライマリパーティションのファイルシステム(/ system、Android 4.0より前のデバイスではjffs2、Android4.0以降のデバイスではext2 / 3/4、最新のデバイスではxfs)が読み取り専用としてマウントされます。データを書き込むことはできません。もちろん、これはデバイスのいわゆる「ルート化」によって回避できます。これにより、スーパーユーザーとしてアクセスでき、パーティションを読み取り/書き込みとして再マウントできます。 「ユーザー」データは、チップ上の別のパーティションに書き込まれます(/ data、Androidバージョンに基づく上記と同じ規則に従います)。
SDカードスロットを捨てる携帯電話が増えるにつれ、すべてのデータがSDカードではなくeMMCストレージに保存されるようになったため、書き込みサイクルの上限に達するのが早くなると思うかもしれません。幸い、ほとんどのファイルシステムは、特定のストレージ領域への書き込みの失敗を検出します。書き込みが失敗した場合、データはサイレントに新しいストレージ領域に保存され、不良領域(不良ブロックと呼ばれる)はファイルシステムドライバーによって封鎖され、将来データがそこに書き込まれなくなります。読み取りが失敗した場合、データは破損としてマークされ、ユーザーにファイルシステムチェック(またはチェックディスク)を実行するように指示されるか、デバイスは次回の起動時にファイルシステムを自動的にチェックします。
実際のところ、Googleは不良ブロックを自動的に検出して処理するための特許を持っています。 電子データフラッシュカードのフラッシュメモリ内の不良ブロックの管理
もっと要点を言えば、これが突然どのように実用化されたかについてのあなたの質問は、尋ねるのに正しい質問ではありません。そもそもそれは決して非現実的ではありませんでした。ディスクへの書き込み回数が多いため、SSDにオペレーティングシステム(Windows)をインストールしないことを強くお勧めします(おそらく)。
たとえば、レジストリは1秒あたり文字通り数百の読み取りと書き込みを受信します。これは、 Microsoft-SysInternals Regmon Tool 。
ウェアレベリングがないため、レジストリに毎秒書き込まれるデータが最終的に早期導入者に追いつき、レジストリの破損によりシステムが起動できなくなったため、Windowsのインストールは第1世代のSSDでは推奨されませんでした。
タブレット、携帯電話、およびその他のほとんどすべての組み込みデバイスでは、レジストリがないため(もちろん、Windows Embeddedデバイスは例外です)、フラッシュメディアの同じ部分にデータが常に書き込まれる心配はありません。
時々ランダムなBSODが表示される可能性のある公共の場所(Walmart、Krogerなど)にある多くのキオスクなどのWindows Embeddedデバイスの場合、実行できる構成はそれほど多くありません。変更されないように意図された構成で事前に設計されています。ほとんどの場合、変更が行われるのはチップが書き込まれる前だけです。食料品店への支払いなど、保存する必要のあるものはすべて、ネットワークを介してサーバー上の店舗のデータベースに送られます。
ジャーニーマンオタクからの回答が続きます:
オペレーティングシステムに必要な書き込みの数によってすぐに使い果たされるため、答えは常に「いいえ」でした。
それらは最終的に主流の使用のために費用効果が高くなりました。その「摩耗」が唯一の懸念事項であるというのは、ちょっとした仮定です。かなりの期間、ソリッドステートメモリで実行されているシステムがあります。 CFカード(PATAと電気的に互換性があり、PATAハードドライブと比較してインストールが簡単)から起動するカーパターを構築した多くの人々、および産業用コンピューターには、小型で頑丈なフラッシュベースのストレージがありました。
とはいえ、平均的な人には選択肢があまりありませんでした。高価なCFカードとラップトップ用のアダプターを購入するか、デスクトップ用のモジュールユニットにある非常に高価な小型の産業用ディスクを見つけることができます。それらは現代のハードドライブと比較してそれほど大きくはありませんでした(現代のIDE DOMは8GBまたは16GBで最高になると思います)。標準のSSDが一般的になる前に、ソリッドステートシステムドライブをセットアップすることができたはずです。
私の知る限り、ウェアレベリングの普遍的/魔法的な改善は実際にはありませんでした。高価なSLCからMLC、TLC、さらにはQLCに移行し、プロセスサイズを小さくする一方で、段階的な改善が行われています(これらはすべてコストが低く、摩耗のリスクが高くなります)。フラッシュはずっと安くなっています。
摩耗の問題がなかったいくつかの選択肢もありました。たとえば、システム全体をROM(おそらくソリッドステートストレージ)とバッテリーバックアップRAMで実行します。これは、多くの初期のSSDやPalmPilotなどのポータブルデバイスで使用されていました。これらのどれも今日一般的ではありません。ハードドライブは、バッテリーでバックアップされたRAM(高すぎる)、初期のソリッドステートデバイス(やや高価)、または 旗のある農民 (ひどいデータ密度のために決して捕まえられませんでした)。最新のフラッシュメモリでさえ 高速消去EEPROMの子孫 eepromは、ファームウェアなどを保存するための電子デバイスで長年使用されてきました。
ハードドライブは、大容量(これは重要です)、低コスト、および比較的十分なストレージがうまく交差しているだけです。
最新のローエンドコンピュータでeMMCを見つける理由は、コンポーネントが比較的安価で、そのコストで十分な大きさ(デスクトップオペレーティングシステム用)であり、携帯電話コンポーネントと共通しているため、標準のインターフェイスで大量に生産されるためです。また、ボリュームに対して高密度のストレージを提供します。これらのマシンの多くがわずかな32GBまたは64GBのドライブを備えていることを考えると、10年前の大部分のハードドライブと同等であるため、この役割では賢明な選択肢です。
私たちはついに、eMMCとフラッシュに適切な量のメモリを手頃な価格で適切な速度で保存できるようになりました。そのため、人々はそれらを求めています。
説明に追加するものがありますか?コメントで音を立ててください。他の技術に精通したStackExchangeユーザーからの回答をもっと読みたいですか? ここで完全なディスカッションスレッドをチェックしてください 。
画像クレジット: マーティン・ヴォルトリ(Flickr)