SRAM・DRAM・NOR・NAND・EEPROM・FRAM・MRAM・eMMC:メモリの違いと使い分け

「不揮発で、書き換えられて、速い」メモリはありません。どのメモリも、書き換え回数・容量・速度・価格のどれかを犠牲にしているので、用途から逆引きできるように整理します。

最終更新: 2026-10-28 メモリフラッシュEEPROMeMMC

まず 3 つに分ける

メモリは、電源を切ると消える揮発性(SRAM、DRAM)、電源を切っても残りフローティングゲートに電子を蓄えるフラッシュ系(NOR、NAND、eMMC、EEPROM)、電源を切っても残りバイト単位で書ける新しい不揮発メモリ(FRAM、MRAM)の 3 群に分けると見通しがよくなります。EEPROM 以外のフラッシュ系は、消去がブロック単位です。

用途に合わせたメモリの選定
用途に合わせたメモリの選定。概念を表すAI生成イラストです。実際の回路・条件は本文の図と説明を参照してください。
メモリの 3 つの群と名前の包含関係メモリを揮発性、フラッシュ系、新しい不揮発メモリの 3 群に分けた図。揮発性の群では DRAM の中に SDRAM、その中に DDR がある。フラッシュ系の群では、NOR と NAND がフラッシュにまとめられ、NAND にコントローラを足したものが eMMC、バイト単位で書けるものが EEPROM。新しい不揮発メモリの群には FRAM と MRAM がある。 3 つの群と、名前の関係 SDRAM は DRAM の一種、eMMC の中身は NAND 揮発性 フラッシュ系 新しい不揮発メモリ SRAM 6 トランジスタのフリップフロップ DRAM 1 トランジスタ + 1 コンデンサ SDRAM クロックに同期する DRAM DDR SDRAM の世代名 DDR〜DDR5、低電力版は LPDDR フラッシュ NOR と NAND の総称 NOR NAND eMMC NAND + コントローラ EEPROM 同じ原理で、バイト単位で書けるもの FRAM 強誘電体の分極方向で記憶 MRAM 磁性層の磁化方向で記憶
図1:メモリの 3 つの群と、名前の包含関係。SDRAM は DRAM の一種で、DDR はその世代名。eMMC の中身は NAND。

容量と書き換え回数で比べる

メモリの比較(値は代表的な範囲。品種により大きく変わる)
種類揮発容量書き換え単位書き換え回数書き込み時間
SRAMする数 kB〜数 MBバイト無制限数 ns
DRAM / SDRAM / DDRする64MB〜数 GBバイト(バースト)無制限数十 ns
NOR フラッシュしない1MB〜256MB書き: バイト、消去: セクタ(4k〜64kB)10 万回書き µs、消去 数百 ms
NAND フラッシュ(生)しない1GB〜数 TB書き: ページ(数 kB)、消去: ブロック(MB)SLC 10 万、TLC 3 千回書き 数百 µs、消去 数 ms
eMMCしない4GB〜256GBセクタ(512B、内部は NAND)コントローラが管理数百 µs〜
EEPROMしない1kbit〜4Mbitバイト100 万回5ms(ページ)
FRAMしない4kbit〜16Mbitバイト10¹⁴ 回数十 ns(待ちなし)
MRAMしない1Mbit〜1Gbitバイト無制限(10¹⁵ 以上)数十 ns
メモリの種類ごとの容量と書き換え回数横軸に容量(1kbit〜1Tbit)、縦軸に書き換え回数(10³〜10¹⁶)を取り、SRAM・DRAM・MRAM・FRAM・EEPROM・NOR・NAND・eMMC の領域を四角で示した散布図。 大容量と無制限の書き換えは両立しない 代表的な品種の範囲。揮発性メモリの書き換え回数は「無制限」を 10¹⁶ に置いた 1kbit 1Mbit 1Gbit 1Tbit 10³ 10⁶ 10⁹ 10¹² 10¹⁵ 書き換え回数 容量 SRAM DRAM / DDR MRAM FRAM EEPROM NOR NAND eMMC 揮発性(電源を切ると消える) フラッシュ系(回数に上限) バイト単位で書ける不揮発
図2:容量と書き換え回数の地図。大容量で書き換えにも強い「右上」は存在しない。

揮発性:SRAM と DRAM

SRAM は 1 ビットにトランジスタ 6 個を使うフリップフロップです。リフレッシュが要らず、数 ns で読み書きできますが、セルが大きく、マイコン内蔵で数十〜数百 kB、外付けで数 MB が上限です。

DRAM は 1 ビットがトランジスタ 1 個とコンデンサ 1 個です。電荷が漏れるので、数十 ms ごとに読み出して書き戻す(リフレッシュ)必要があります。セルが小さく、GB 単位が安く手に入ります。リフレッシュやタイミング制御を行うメモリコントローラがプロセッサ側に要るので、持たないマイコンにはつなげません。Linux を動かすプロセッサには DDR コントローラがあります。

選択の基準は単純で、数 MB 以下なら SRAM、それ以上なら DRAM です。中間の数 MB には、QSPI 接続の疑似 SRAM(PSRAM、内部は DRAM でリフレッシュを内蔵)が使われます。

フラッシュ系:NOR、NAND、EEPROM、eMMC

フラッシュは電子をフローティングゲートに閉じ込めて記憶します。書き込み(電子を入れる)はビット単位でできますが、消去(電子を抜く)はまとまった単位でしか行えません。この制約が、以下の違いのほとんどを生みます。

NOR フラッシュは、セルが並列につながっていて、任意のアドレスをランダムに読めます。プロセッサが命令を直接読み出せる(XIP、Execute In Place)ので、起動コードの置き場になります。消去には数百 ms かかります。

NAND フラッシュは、セルを直列につないで面積を詰めたものです。ビットエラーが日常的に起きるため、ECC(誤り訂正)と不良ブロック管理が必須です。書き換え回数は SLC で 10 万回、MLC で 1 万回、TLC で 3 千回、QLC で 1 千回と、多値化するほど安く、弱くなります。

eMMC は NAND にコントローラを載せ、ECC・ウェアレベリング・不良ブロック管理を内部で済ませたものです。外からは 512B セクタの読み書きだけで、Linux のルートファイルシステムの標準的な置き場です。

EEPROM は、バイト単位で消去・書き込みできる小容量の不揮発メモリです。書き込みに 5ms 程度かかりますが 100 万回書け、設定値・校正値の置き場になります。

フラッシュの書き込み単位と消去単位NOR、NAND、EEPROM の書き込み単位と消去単位を比べた図。NOR は 1 つのセクタ(4kB から 64kB)の中にバイト単位の書き込み単位が並ぶ。NAND は 1 つのブロック(数百 kB から数 MB)の中にページ(数 kB)単位の書き込み単位が並ぶ。EEPROM は消去も書き込みもバイト単位。 書き込みの単位は小さく、消去の単位は大きい 縮尺は実際と異なる。NOR と NAND の消去は、ブロックを丸ごと行う NOR 消去:セクタ(4kB〜64kB) 書き込み:バイト NAND 消去:ブロック(数百 kB〜数 MB) 書き込み:ページ(数 kB) EEPROM 消去も書き込みも:バイト 1 を 0 にするのは書き込みでできる。0 を 1 に戻すには消去が要る。
図3:フラッシュの書き込み単位と消去単位。

FRAM と MRAM:バイト単位で書ける不揮発

FRAM(強誘電体メモリ)は、強誘電体の分極方向で記憶します。バイト単位で待ち時間なしに書け(書き込みサイクル数十 ns)、10¹⁴ 回書き換えられます。EEPROM のような 5ms の書き込み待ちがなく、書き込み中に電源が落ちてもデータがおかしくなりません。容量は 16Mbit 程度までで、EEPROM より高価です。

MRAM(磁気抵抗メモリ)は、磁性層の磁化方向で記憶します。書き換え回数は事実上無制限で、SRAM と同じ速度・インターフェースの品種があり、電池でバックアップした SRAM の置き換えに使われます。1Gbit 級まで出ていますが、価格は DRAM の数十倍です。

どちらも、頻繁に書く、電源断があり得る、容量は小さくてよい、という用途に向きます。フラッシュで同じことをするにはウェアレベリングと電源断対策が要り、FRAM を 1 個足すほうが安く済むことがほとんどです。

用途から選ぶ

用途別のメモリの選び方
用途選ぶメモリ理由と注意
起動コード・ファームウェアマイコン内蔵フラッシュ。足りなければ QSPI NORXIP でき、ランダム読み出しが速い。NAND なら小さな NOR か eMMC のブートパーティションと組み合わせる
作業用メモリ数百 kB までは内蔵 SRAM、数 MB なら PSRAM か外付け SRAM、それ以上は DDRDDR はメモリコントローラを持つプロセッサが前提
設定値・校正値(書き換えは年に数回〜日に数回)I²C EEPROM内蔵フラッシュのエミュレーションでもよいが、消去単位と回数を計算する
積算値・カウンタ(秒〜分ごとに書く)FRAM か MRAMEEPROM では毎秒書くと、100 万回を約 2 週間で使い切る
ログ・測定データ(大量、追記)SPI NAND、eMMC、SD カード生 NAND は ECC と不良ブロック管理を自分で持つ必要がある
OS のファイルシステムeMMCSD カードは抜き差しと粗悪品のリスクがある
電源断で消えてはいけない直前の状態FRAM か MRAM書き込み中に電源が落ちてもデータがおかしくならない

よくある失敗

  • フラッシュに毎秒書くと、消去回数の上限に 1〜2 日で達します。4kB セクタに 16 バイトの設定を書くたびに消去する設計も、10 万回で寿命です。RAM に貯めて間隔を空けて書くか、ウェアレベリング(セクタ内で書く位置をずらす)を実装するか、EEPROM か FRAM を別に持ちます。
  • EEPROM は書き込み中(5ms)は応答しないので、ACK ポーリングで待ちます。
  • 書き込み中に電源が落ちると、フラッシュも EEPROM もそのページが不定になります。2 面に交互に書いて CRC で選ぶか、FRAM を使います。
  • 生 NAND は出荷時から不良ブロックがあり、使用中にビット化けするので、SLC でも ECC は必須です。
  • eMMC の内部は TLC NAND で、書き込み総量に上限(TBW)があります。高頻度のログは、寿命を計算し、SLC モードや産業用グレードを検討します。
  • DDR3 以上は等長・インピーダンス・終端の設計が要り、4 層では厳しくなります。モジュール(SOM)の利用も検討します。
  • 磁石(スピーカ、リレー、ホールセンサ用)が近いとデータが化ける MRAM の品種があります。データシートの磁界耐性を確認します。

よくある質問

EEPROM とフラッシュの違いは何ですか。
EEPROM はバイト単位で消去でき、小容量(数 Mbit まで)で 100 万回書き換えられます。フラッシュは消去がセクタやブロック単位で、大容量で安価ですが 10 万回以下です。
SDRAM と DDR は別のものですか。
DDR は SDRAM の一種です。単に「SDRAM」と言うと、古い SDR SDRAM(3.3V、133MHz 程度)を指すことが多いです。
eMMC と SD カードは何が違いますか。
中身(NAND + コントローラ)はほぼ同じです。eMMC は半田付けする BGA で、ブートパーティションを持ち、量産品向けです。SD カードは着脱できる代わりに、品質のばらつきと接触不良があります。
FRAM と MRAM のどちらを選べばよいですか。
小容量(数 Mbit 以下)で価格を抑えたいなら FRAM、大容量や SRAM 互換のパラレルインターフェースが必要なら MRAM です。

参考にした規格・資料

  • JEDEC JESD79 シリーズ / JESD84(eMMC) — DDR SDRAM と eMMC の規格
  • ONFI(Open NAND Flash Interface)仕様 — 生 NAND のインターフェースと ECC 要件
  • 各メモリメーカのデータシート — 書き換え回数、データ保持期間、書き込み時間、TBW

← コラム一覧へ