これに関する信頼できる情報は見つかりません。SD / MMCカードハードウェアの完全な仕様がありません。
本当ですか?私の高レベルのアプリケーションでは、これらのカードを使用する際にウェアレベリングを考慮する必要はありませんか?
編集
誰かがウェアレベリングがSD仕様によって保証されていることを確認できますか?ほとんどのベンダーがそうしているように見えますが、仕様では必須ではありません。
これに関する信頼できる情報は見つかりません。SD / MMCカードハードウェアの完全な仕様がありません。
本当ですか?私の高レベルのアプリケーションでは、これらのカードを使用する際にウェアレベリングを考慮する必要はありませんか?
編集
誰かがウェアレベリングがSD仕様によって保証されていることを確認できますか?ほとんどのベンダーがそうしているように見えますが、仕様では必須ではありません。
回答:
私はSDアソシエーションのメンバーであった会社で働いています。私たちは2.0(SDHC)仕様に精通しています。SDカードの仕様には、ウェアレベリングに関するエントリはありません。SDメーカーが選択した場合、それを処理するのはSDメーカーに完全に依存しています。ある人はそうするかもしれないが、そうではない人もいることを見てきました(超安価な偽造SDカードに注意してください)。SDXCにより、ウェアレベリングが含まれるように変更された可能性がありますが、それはわかりません。残念ながら、それを実際に示す唯一の方法は、公式の仕様を理解することです。おそらくオンラインで見つけることができますが、SDアソシエーションは本当にあなたにそれを支払うことを望んでいます。
サイドノートとして、2GBのカードを取り、それが何度も何度も何度も書き始めると、カードが死んで書き込み不可能になる前に平均して約10TBになります。また、SDカードは、データがいつ不良であるかを知らせません。つまり、PCのハードドライブのようにI / Oエラーを返しません。10TBは大量のデータであるため、これは組み込み設計の問題ではないかもしれませんが、誰かにとっての要因になる可能性があります。
それは本当です!MicroSDカードには、黒いプラスチックでカプセル化された(ARM)マイクロコントローラーに結合されたNANDフラッシュチップが含まれています。http://www.bunniestudios.com/blog/?p=898で説明しています。
フォローアップ記事の最後にhttp://www.bunniestudios.com/blog/?p=918コントローラーを統合するBunnieのポジショニングは、おそらく事前にフラッシュをテストするよりもコストがかからないでしょう。
SanDiskのSDカード製品マニュアルの引用:「1.9ウェアレベリング。ウェアレベリングは、NANDメモリを使用したSDカードの消去プーリング機能の本質的な部分です。」SanDiskブランドカードのデータシートですべてを読むことができます。
はい、SD / MMCカードには、ウェアレベリングを行うコントローラーがあります。そうでなければ、間違った書き込みパターンで数分で破壊することができます。
それは実際、一部の組み込みプロジェクトにとって問題です。どのセクターがいつでも平準化される可能性があるかを(明らかに)知る方法はまったくないので、間違った時間に電源を入れ直すと、どこを書いているかに関係なく、カード上のどこのデータも破壊される可能性があります。(私が知っている方法を尋ねないでください:))
SDカードは、クリーンなシステムシャットダウン(または少なくとも書き込みの完了を許可)を保証するシステムで使用する必要があります。そうしないと、データが(最終的に)失われます。
編集
問題は、ウェアレベリングプロセスが完全に隠されていることです。ディスク上の任意のセクターはいつでも移動でき(書き込まれたページと交換)、そのプロセスの途中で電源が落ちた場合、ランダムセクターが破損する可能性があります。
この動きを実装する合理的に安全な方法がありますが、仕様にはないので、カードがそれを行うとは信じられません。1枚のカードをテストし、動作させると、製造業者は部品番号を変更せずに実装を変更できます。
テストから、私のSDカードのコントローラーはこれを安全な方法でまったく行いません。
停電耐性のために特別に宣伝されている「高信頼性」SDカードを調べるかもしれませんが、メーカーにそれを正しく行うことを信頼する必要があります。ページの消去を直接制御したい。私はまだこれを理解しようとしています。
従来のNANDフラッシュデバイスは個々の512バイトセクターの消去をサポートできず、従来のNANDフラッシュデバイスもサイズが大きくないため、従来のNANDフラッシュメモリを使用したSDカードは、何らかのセクター仮想化を使用する必要がありますセクターの書き込みを試みるたびにデバイスがそのセクターの消去ブロック内のすべてのセクターを(RAMにでも)コピーし、ブロックを消去して書き込む必要がある場合、わずかに許容できる程度のパフォーマンスを得ることができますすべてのセクターが戻ります。ほとんどのセクター仮想化手法は、本質的にある程度のウェアレベリングです。品質の高いデバイスと模造品の違いの最大の問題は、デバイスがブロック間のレベリングを積極的に均等化しようとする程度であり、疑似ランダムブロックの割り当てと、均一に近い結果が得られることを期待して単純に使用します。実際には、ほとんどの場合、ランダム/最適な割り当てでも十分であると予想されます。
興味深いことに、バッテリーが少ない場合や電話がクラッシュ/シャットダウンした場合など、多くのデバイスが特に高密度のSDカードやmicroSDカードを破損します。一部のカード(咳Ad t /咳)でよく知られているように、特定の外部リーダーで読み取り不能なカードの現象が発生するが、一部のマイクロバリエーションでは正常に機能するため、問題は電圧供給の不適切な調整であると思われますコンピュータショップ。
私はこの障害で現在カードを回復していますが、奇妙なことにデータのほとんどは回復可能ですが、一部のセクターはこの試行ごとに変化します。ウェアレベリング自体に問題があるのでしょうか?(はい、複数のリーダーを試しましたが、同じ障害です!)
また、いくつかの成功した「nuking」ゾンビカード、つまり、フォーマットを完了しないか、読み取り専用のカードがありました。わずかな割合でのみ機能しますが、ほとんどの「公式」ガイドラインよりもはるかに敏感です。
このように処理されたテストカードは、故障するまで4か月続きました。ノイズのある電圧の供給に使用されたデバイスがなかった場合、寿命は長くなる可能性があります。