web-dev-qa-db-ja.com

タブレットなどのコンピュータのOSでフラッシュメモリを使用できるようにするものは何ですか?

フラッシュドライブ(USBスティック)が発明されて以来、人々は自分たちのOSをそれらで実行できるかどうか疑問に思いました。答えは"no"でした。これは、OSに必要な書き込み回数によって、フラッシュドライブがすぐに使い果たされるためです。

SSDが普及するにつれ、オペレーティングシステムをSSDで実行できるようにするために、ウェアレベリングテクノロジーが改善されました。

さまざまなタブレット、ネットブック、その他のスリムなコンピューターは、ハードドライブやSSDの代わりにフラッシュメモリを使用し、OSはそこに保存されます。これはどのようにして突然実用的になりましたか?たとえば、彼らは通常、ウェアレベリング技術を実装していますか?

7
RockPaperLizard

「OSに必要な書き込み回数によってフラッシュドライブがすぐに使い果たされるため、答えは「いいえ」でした。」

TLDR:最終的に主流の使用に対して費用効果が高くなりました。

その摩耗が唯一の懸念事項は、ちょっとした仮定です。かなりの期間、ソリッドステートメモリで動作するシステムがありました-カーパターを構築した多くの人々は、CFカード(PATAと電気的に互換性があり、PATAハードドライブの代わりにインストールするのは簡単です)、および産業用PCから起動しました小型で頑丈なフラッシュベースのストレージがあります。とはいえ、平均人には多くの選択肢がありませんでした。高価なCFカードとラップトップ用のアダプターを購入するか、デスクトップ用のモジュールユニットにある非常に高価な小型の産業用ディスクを見つけることができます。それらは現代のハードドライブと比較してそれほど大きくはありませんでした(現代のIDE DOMは8GBまたは16GBだと思います)。標準よりもずっと前にソリッドステートシステムドライブをセットアップできたはずです。 'SSDが一般的になりました

私の知る限り、ウェアレベリングの普遍的/魔法的な改善は実際にはありませんでした。 インクリメンタルの改善がありました(高価なSLCからMLC、TLC、さらにはQLCに移行し、プロセスサイズが小さくなりましたが、これらはすべて低コストで、いくらか高くなっています摩耗のリスク)。 Flashはロット安くなっています。

摩耗の問題がなかったいくつかの選択肢もありました-たとえば、システム全体をROM(おそらくisソリッドステート)で実行しますストレージ)、多くの初期のSSDやPalmパイロットのようなポータブルデバイスが使用したバッテリーバックアップRAM。これらは今日では一般的ではありません。ハードドライブロックと比較して、バッテリーバックアップRAM(高価すぎる)、初期のソリッドステートデバイス(やや高価)、または フラグ付きの農民 (決して捕まえられない、ひどいデータ密度) 最新のフラッシュメモリは、高速消去のeepromの子孫です )、eepromは、長年にわたってファームウェアなどを保存するための電子デバイスで使用されてきました。

ハードドライブは、大容量(これは重要です!)、低(ish)コスト、および比較的十分なストレージの素晴らしい交差点にありました。

最新のローエンドPCでemmcsを見つける理由は、コンポーネントが比較的安価で、そのコストで(デスクトップOSの場合)十分に大きく、携帯電話コンポーネントと共通点があるためです。標準インターフェースで大量生産。また、ボリュームに対して優れた密度のストレージを提供します。これらのマシンの多くがpaltry32または64gbドライブを備えていることを考えると、10年前の大部分のハードドライブと同等であり、この役割では賢明な選択肢です。

Emmcsとflashで、適度な量のメモリを手頃な価格適度な速度で保存できるようになりました。それが人々が彼らのために行く理由です。

4
Journeyman Geek

タブレットから電話、スマートウォッチ、SSD、さらにはカメラやUSBサムドライブのSDカードまで、すべてのフラッシュメモリデバイスがNVRAMテクノロジーを使用しています。違いは、NVRAMのアーキテクチャと、オペレーティングシステムがファイルシステムをどのストレージメディアにマウントするかです。

Androidタブレットおよび電話の場合、NVRAMテクノロジーはeMMCベースです。このテクノロジーで私が見つけることができるデータは、3kから10kの書き込みサイクルを示唆しています。残念ながら、ウィキペディアはこのテクノロジーの書き込みサイクルについて空白であるため、これまでに見つけたものはどれも決定的なものではありません。私が見た他のすべての場所はたまたまさまざまなフォーラムだったので、私が信頼できる情報源と呼ぶことはほとんどありません。

比較のために、NANDまたはNORテクノロジーを使用するSSDなどの他のNVRAMテクノロジーでは、書き込みサイクルは10k〜30kです。

さて、ファイルシステムをマウントする方法のOSの選択に関して.... Appleがどのようにそれを行うかについては言えませんが、Androidの場合、チップはハードドライブのようにパーティション分割されます。デバイスの製造元に応じて、OSパーティション、データパーティション、およびその他の独自のパーティションがいくつかあります。実際のルートパーティションは、カーネルと一緒に圧縮ファイル(jffs2、cramfsなど)としてバンドルされているブートローダー内に存在するため、デバイスのステージ1の起動が完了すると(通常はメーカーのロゴ画面)、カーネルが起動します。ルートパーティションは同時にRAMディスクとしてマウントされます。

OSが起動すると、プライマリパーティションのファイルシステム(/ system、Android4.0より前のデバイスではjffs2、Android4.0より前のデバイスではext2/3/4、xfs)がマウントされます。最新のデバイスでは)読み取り専用であるため、データを書き込むことはできません。もちろん、これはデバイスのいわゆる「ルート化」によって回避できます。これにより、スーパーユーザーとしてアクセスでき、パーティションを読み取り/書き込みとして再マウントできます。 「ユーザー」データは、チップ上の別のパーティションに書き込まれます(/ data、Androidバージョンに基づく上記と同じ規則に従います)。

ますます多くの電話がsdcardスロットを捨てるにつれて、すべてのデータがsdcardではなくeMMCストレージに保存されるようになったため、書き込みの上限に達するのが早くなると思うかもしれません。幸い、ほとんどのファイルシステムは、特定のストレージ領域への書き込みの失敗を検出します。書き込みが失敗した場合、データはストレージの新しい領域にサイレントに保存され、不良領域(不良ブロックと呼ばれる)はファイルシステムドライバーによって封鎖され、将来データがそこに書き込まれなくなります。読み取りが失敗した場合、データは破損としてマークされ、ユーザーはファイルシステムチェックまたはチェックディスクを実行するように指示されるか、デバイスは次回の起動時にファイルシステムを自動的にチェックします。

実際のところ、Googleは不良ブロックを自動的に検出して処理する特許を持っています。

https://www.google.com/patents/US7690031

さらに詳しく言えば、「これはどのようにして突然実用化されたのですか?」という質問です。尋ねるのは正しい質問ではありません。むしろ、そもそもそれは決して非現実的ではありませんでした。 OSがディスクに対して行う書き込みの数が多いため、SSD(おそらく)にOS(Windows)をインストールしないことを強くお勧めします。

たとえば、レジ​​ストリは1秒あたり文字通り数百の読み取りと書き込みを受信します。これはMicrosoft/SysInternalsツールのRegmon( https://technet.Microsoft.com/en-us/sysinternals/regmon.aspx)で確認できます。

ウェアレベリングがないため、レジストリに毎秒書き込まれるデータが最終的にアーリーアダプターに追いつき、レジストリの破損によりシステムが起動できなくなる可能性があるため、(Windows)OSを第1世代SSDドライブにインストールすることはお勧めしません。

タブレットや電話、およびその他のほとんどすべての組み込みデバイスでは、レジストリがないため(Windows Embeddedデバイスはもちろん例外です)、フラッシュメディアの同じ部分にデータが常に書き込まれる心配はありません。

公開されている多くのキオスク(ウォルマートやクローガーのセルフチェックアウトキオスクを含む)などのWindows Embeddedデバイスの場合、ランダムなBSODが時々表示される可能性がありますが、それほど多くはありません。変更されないように意図された構成で事前に設計されているため、実行可能な構成の数。ほとんどの場合、変更が行われるのはチップが書き​​込まれる前だけです。保存する必要のあるもの(食料品店への支払いなど)はすべて、ネットワークを介してサーバー上の店舗のデータベースに送信されます。

3
Speeddymon

あなたの質問は、フラッシュメモリの書き込み制限が広範囲のウェアレベリングなしで、それをあらゆるコンピューティングデバイスのプライマリストレージに不適切にするという仮定を前提としています。 SSDに見られるウェアレベリングなしで、この目的のためにフラッシュメモリを使用する、タブレット、ネットブック、スマートフォンなどのさまざまなコンピューティングデバイスがあります。

メモリ寿命

一般的に、これらのデバイスで使用されているメモリの寿命がフラッシュドライブやSDカードよりも長いという証拠は見つかりませんでした。

フラッシュメモリを使用していますが、ペンドライブやSDカードとは若干の違いがあります。これらのコンピューターは通常、SDカードやフラッシュドライブとは異なるアーキテクチャーを備えた、コントローラーとフラッシュメモリをシングルチップに搭載したeMMCを使用します。 eMMCコントローラーの違いの1つは、ハードドライブをエミュレートするため、コンピューターはそれを起動可能なデバイスと見なすということです。それはデザインの便利さです。

一部のメーカーは、eMMCコントローラーのウェアレベリングが優れており、一般的なSDカードやフラッシュドライブよりも堅牢なエラー修正機能を備えていると主張しています。改善されたECCの意味するところは、より多くの劣化に耐えることができ、それでも機能するため、有効寿命が長くなることです。

これらはすべて独自仕様であるため、それをサポートするハードデータを見つけることは困難です。長持ちするハイエンドのeMMCがあるとしても、それは必ずしもこれらのデバイスの大部分で使用されているものではありません。 eMMCの書き込み制限について私が見つけたその他の情報は、SDカードやペンドライブと同じ一般的な球場にあるようです。

一般に、これらのデバイスのプライマリストレージとしてフラッシュメモリを使用するための基礎は、長寿命のメモリではないように思われます。書き込み制限については誰もが間違っていませんでした。使用法は、要件が異なるという事実によって説明することができます。

プラットフォームの違い

PCやラップトップは、人々が長い間使用することを期待している汎用コンピューターです。フラッシュドライブとメモリカードは、処理するように設計された一般的な書き込み量と予想される耐用年数を考えると、プライマリストレージデバイスとしてはあまり適していません。これは、質問で説明したガイダンスに反映されており、変更されていません(少なくとも現在の世代のフラッシュメモリでは)。

タブレット、ネットブック、スマートフォンなどは別の状況です。フラッシュメモリをプライマリストレージとして使用しているのは、限定目的のデバイスです。それらが処理するように設計されたタスク、他の用途をサポートするために利用可能な最小限のハードウェアリソース、それらの基本設計、およびそれらのOSとソフトウェアは、PCと比較して書き込みが少なくなります。これらのデバイスがフラッシュメモリ(交換不可能な形式)に依存していることを考えると、書き込み制限は、それらで実行されるものの考慮事項です。

また、平均余命も短くなります。フラッシュメモリをプライマリストレージとして使用するデバイスは安価であり、人々が頻繁にアップグレードする市場向けに設計されています。デバイスは、小さなフォームファクタで特定の機能を提供し、それらが構築されたコンポーネントに基づいて持続する限り持続します。フラッシュメモリの前にバッテリーが故障したり、部品が破損したりする可能性があります。そして、あなたのデバイスが時代遅れであり、最新のモデルと交換する必要があることをあなたに納得させるための絶え間ないマーケティングがあります。

ヘンリー・フォードがエンジニアを廃車置き場に送り、まだ良い死んだ車の部品を探していたという話があります。それらの部品は、長持ちする必要がないため、より安価に製造できるという考えでした。そのロジックは、これらのデバイスのフラッシュメモリに適用されます。それは十分に長く続く必要があるだけで、デバイスより長く続く必要はありません。

ボトムライン

PCが処理するように設計されているほどプライマリストレージへの書き込みを行わず、同じ耐用年数の期待を持たない、安価で小型のコンピューティングデバイスの市場ニッチがあります。 eMMC形式のメモリは、安価で、小さく、起動可能で、そのアプリケーションには十分です。

2
fixer1234