2

組み込みデータロギングアプリケーションにFATファイルシステムを使用することを検討しています。ロガーは、毎分40バイトのデータを継続的に追加するファイルを1つだけ作成します。数年の使用後、これは100万回を超える書き込みサイクルになります。私の質問は:FATシステムはファイルが追加されるたびにファイルアロケーションテーブルを変更しますか?ファイルの終わりがどこにあるかをどのように追跡しますか?EndOfFileマーカーを最後に配置するだけですか、それとも長さをFATテーブルに格納しますか?書き込みを行うたびにFATテーブルが変更される場合は、わずか2、3年でフラッシュメモリを使い果たしてしまいます。FATシステムはこのアプリケーションに使用するのに適切ですか?

もう1つの考えは、生データのバイトをメモリカードに保存し、書き込みを行うたびにデータの最後にEndOfFileマーカーを配置できるということです。ただし、これは、ロガーからデータを取得する唯一の方法がPCやカードリーダーではなくシリアル転送を介することを意味するため、あまり望ましくありません。

4

5 に答える 5

3

FATは、ファイルを変更するとディレクトリテーブルを更新します(少なくとも、ファイルを閉じると、変更しないとどうなるかわかりません)。これはファイルサイズだけでなく、最終変更日でもあります。

http://en.wikipedia.org/wiki/File_Allocation_Table#Directory_table

フラッシュコントローラーが透明なウェアレベリングを行わず、フラッシュドライバーがウェアレベリングを平準化するために物を移動しない場合は、ウェアレベリング発生する可能性があります。マニュアルを参照してください。ただし、消費者向けハードウェアを使用している場合は、どこかですべてがウェアレベリングされていると思います。

プラス面として、心配しているイベントが1分ごとにしか発生しない場合は、2年分のログエントリが実際に実際のハードウェアを破壊するかどうかを確認するテストで、それを大幅に高速化できるはずです。関連するメーカーのドキュメントを探すよりも速いかもしれません...

于 2010-09-01T13:25:26.593 に答える
2

いいえ、フラッシュ ファイル システム ドライバーは、摩耗を最小限に抑えてメモリ セル全体に分散させるように明示的に設計されています。ほぼゼロのシーク タイムを利用します。あなたのデータレートは低く、それは長い間続くでしょう。メディアの年次交換を指定することは、リスクを最小限に抑える簡単な方法です。

于 2010-09-01T13:15:28.957 に答える
0

電源障害またはデバイスのリセットが発生した場合に FAT ファイル システムの一貫性がどうなるかを確認しましたか?

デバイスでこのような障害が発生した場合、書き込み中のログ エントリだけを失ってはなりません。古いエントリは有効なままにする必要があります。

いいえ、データを読み戻す必要がある場合、FAT は適切ではありません。

フラッシュ メモリがデータでいっぱいになるとどうなるかをさらに検討する必要があります。新しいデータ用のスペースをどのように確保しますか? この点の要件を定義する必要があります。

于 2010-09-09T14:52:22.360 に答える
0

大きなフラッシュ チップは、サイズが 264 (256+8) バイトの 2 のべき乗倍数であるサブページ、2 のべき乗倍数であるページ、およびそのべき乗であるブロックに分割されます。 -その倍数。空白のページはすべて FF として読み取られます。一度に 1 ページずつ書き込むことができます。書き込み可能な最小単位はサブページです。サブページが書き込まれると、それを含むブロック全体が消去されるまで再書き込みできません。小さいフラッシュ チップでは、ページのバイトを個別に書き込むことができますが、空白のバイトにのみ書き込むことができますが、多くの大きなチップでは不可能であることに注意してください。現在の世代のチップでは、サブページ サイズは 528 バイト、ページ サイズは 2048+64 バイト、ブロック サイズは 128K+4096 バイトだと思います。

MMC、SD、CompactFlash、またはその他のカード (基本的に SmartMedia 以外のもの) は、フラッシュ チップとプロセッサを組み合わせて、PC スタイルのセクタ書き込みを処理します。基本的に何が起こるかというと、セクターが書き込まれると、コントローラーは空白ページを見つけ、そこにそのセクターの新しいバージョンを、それがどのセクターであるかを示す最大 16 バイトの「ヘッダー」情報と共に書き込みます。さまざまな情報のすべてのページが配置されている場所の地図。

スマートメディア カードは、フラッシュ インターフェイスを直接公開し、カメラ、カード リーダー、またはそれを使用するその他のデバイスに依存して、標準的な方法に従ってこのようなデータ管理を実行します。

2 ギガ カード上の 4,000,000 ページすべての行方を追跡するには、12 ~ 16 メガバイトの RAM が必要になるか、12 ~ 16 メガバイトのフラッシュをセカンダリ ルックアップ テーブルとして使用する必要があることに注意してください。後者のアプローチを使用すると、フラッシュ ページへの書き込みごとに、ルックアップ テーブルへの書き込みも必要になります。低速のフラッシュ デバイスがこのようなアプローチを使用しても、まったく驚かないでしょう (約 16,000 の「間接的な」ページの所在を追跡するだけでよいようにするため)。

いずれにせよ、最も重要な点は、フラッシュの書き込み時間は予測できないということですが、通常はフラッシュの摩耗について心配する必要はありません。

于 2010-09-01T16:48:17.623 に答える
0

唯一の操作が 1 つのファイルに追加することである場合は、ファイルシステムを放棄して、フラッシュ デバイスをデータ テープとして使用する方が簡単な場合があります。ただし、フラッシュの種類とそのブロック サイズを考慮する必要があります。

于 2010-09-01T16:36:02.197 に答える