Fugue Kyoto Software Research, Inc.
製品概要
コンセプト
ユースケース
技術情報
Fugueだけではなく、フラッシュメモリやフラッシュファイルシステムについて解説などを掲載しています。
 はじめに
 フラッシュとは
 NAND型フラッシュの
 リードライトのパフォーマンス
 不良ブロックの処理
 ビット・エラーとECC
 メモリ・マッピング
 リクラメーション
 ウェア・レベリング
 フラッシュファイルシステムと
 FATファイル・システムの
 電源瞬断による破損
 電源瞬断対策
 おわりに
パートナ
お問合せ
top >  技術情報 >  「Interface」 2004年12月号
リード/ライトのパフォーマンス
   NAND型フラッシュのデータ・ポートは,通常20MHz(50ns)のリード・サイクルに対応できます. つまりフラッシュ内部のバッファへのデータの読み書きは20Mバイト/s(×8)ないし40Mバイト/s(×16)の転送スピードが出せるのです.

   しかしながら,実際のシステムに接続した場合には,さまざまな要因によってこれだけのスループットを出すことは不可能です.

   まず,チップ自身のオーバヘッドがあります.読み出しのセットアップ・タイムや書き込みの処理時間, さらにはコマンドとアドレスを投入するサイクルの時間などのオーバヘッドがかかります.

   次にメモリ・バスがこれだけのスループットを出せません.CPUからI/Oマッピングされたデバイスへアクセスするには, アドレス・サイクルとデータ・サイクル,それにいくらかのウェイト・サイクルが必要です. さらに読み出したデータはメイン・メモリ上のバッファ領域に書き込まれるので,こちらの書き込み動作でもバスがふさがれてしまいます.

   ファイル・システムなどを通じてデータをアクセスする場合は,データの転送だけでなく,ソフトウェアでECCを計算するオーバヘッドなどもあり, 最大でも2〜3Mバイト/sが目安になるでしょう.上記のようにメモリ・バスのサイクルを考慮して, CPUのキャッシュをぎりぎりまで使ったとしてこの倍程度が限界でしょう.これ以上のパフォーマンスが必要ならば, 何か特殊なハードウェアの支援が必須です.

   NANDフラッシュからのデータ転送をNANDコントローラのDMA機能を使ったとしても,同様にメモリ・バスのバンド幅がボトルネックになってくるので, データ転送の性能はそれほど向上しません.DMAを使うことでCPUを空けることができるので,システム全体の効率向上には効果があるでしょう.

   以上から,データ転送速度を試算したものを表3に示します.

  表3   データ転送速度の試算
  フラッシュ
  ページ・サイズ   528バイト(512+16)
  メモリ・セル読み出し時間   25μs
  プログラミング時間   200μs
  アドレス投入   4サイクル
  データ・サイズ   8ビット
  メモリ・バス   クロック 50MHz(20ns) 4wait
  リード/ライト 6clock 120ns
  リード
  リード・コマンド   1×120ns  =  120ns
  アドレス   4×120ns  =  480ns
  メモリ・セル読み出し   25ns
  データ転送   528×120ns  =  63,360ns
  合計   88,960ns
  転送速度   512バイト/88,960ns  =  5.76Mバイト/s
  ライト
  データ投入コマンド   1×120ns  =  120ns
  アドレス   4×120ns  =  480ns
  データ   528×120ns  =  63,360ns
  プログラム・コマンド   1×120ns  =  120ns
  プログラミング時間   200μs
  合計   264,080ns
  転送速度   512バイト/264,080  =  1.94Mバイト/s
   
NAND型フラッシュの読み出し/書き込み操作 << >> 不良ブロックの処理