NORフラッシュ完全ガイド:仕組み・NAND比較・SPI進化と設計上の注意点

NORフラッシュとは概説

NORフラッシュは、不揮発性半導体メモリ(フラッシュメモリ)の一種で、個々のメモリセルが論理的に「並列(NOR)接続」されたアーキテクチャを持ちます。読み出し時にランダムアクセスが可能で、プログラム(書き込み)と消去(ブロック単位)は電気的に行われます。主にファームウェアやブートローダ、コード格納(XIP:Execute In Place)用途で長年使われてきました。

基本構造と動作原理

NORフラッシュのメモリセルはMOSFETに浮遊ゲート(floating gate)を設けた構造が一般的で、ここに電子を蓄えることで閾値電圧を変化させ、0/1を表現します。代表的な動作は次の通りです。

  • 読み出し(Read):セルの閾値電圧を参照して電流の流れを確認し、論理値を判定。NORはランダムにアドレスを指定して単一セル(あるいはバイト)を直接読み出せるのが特徴。
  • プログラム(Program/Write):通常ホットエレクトロン注入(hot-electron injection)やその他の手法で浮遊ゲートに電子を注入してプログラムする。NORはバイト単位でのプログラムが可能な製品が多い(NANDはページ単位が主)。
  • 消去(Erase):通常はFowler–Nordheimトンネル(トンネル放出)で浮遊ゲートの電子を飛ばして初期状態に戻す。消去はブロック(セクタ)単位で行われる。

NORとNANDの違い(主要比較点)

  • アーキテクチャ:NORは並列接続でランダムアクセスが可能。NANDは直列接続で高密度・ブロック/ページアクセス向け。
  • 用途:NORはコード格納(ファームウェア、ブートローダ)、XIPに有利。NANDは大容量データストレージ(SSD、eMMC、SDカード)に向く。
  • 性能:ランダムリード遅延が小さくCPUバスに直結して実行できる(XIP)。一方で書き込み・消去のレイテンシやコスト/ビットはNANDより劣る。
  • コストと密度:NORはセルあたりの面積が大きく、単位容量あたりのコストが高い。NANDは高密度で安価。
  • インターフェース:従来はパラレル(8/16-bit)でRAM互換にマップする製品があったが、近年はSPI/Quad-SPI/Octal-SPIといったシリアルインターフェースが主流。

インターフェースと規格

近年の主流はシリアルSPI系の「SPI NOR」で、ピン数を抑えつつ高速化(Dual/Quad/Octal SPI)で帯域を引き上げています。JEDECによるSerial Flash関連の仕様(SFDP:Serial Flash Discoverable Parameters)により、デバイスの自動認識や高速モードの共通化が進みています。古くはパラレルNOR(メモリマップI/O)としてCPUのアドレス空間に直接マップしてXIPを行う方式が一般的でした。

特徴的な長所・短所

  • 長所
    • ランダムリードが速く、バイト/ワード単位でアクセス可能。
    • XIPに適し、ブートROMやファームウェアの常駐に向く。
    • 読み出し時のエラー発生確率が比較的低く、単純なシステム構成で扱える。
  • 短所
    • 容量あたりのコストが高く、大容量化が難しい(NANDに比べて)。
    • 消去はブロック単位で行うため、頻繁な書き換えには不向き。
    • 書き込み(program)/消去(erase)の耐久(書換回数)には限界がある。

性能指標と信頼性

一般的なNORの指標としては以下のようなものがあります(代表値、製品や世代により差がある)。

  • 耐久性(Program/Erase サイクル):おおむね10^4(1万回)程度が一般的だが、プロセスや用途によっては10^5に近いものもある。
  • 保持(Retention):データ保持期間は典型的に10年以上を目標とする製品が多い。
  • 読み出し遅延:パラレルNORはアドレスバスに接続したときのアクセスサイクルが短く、即時実行が可能。SPI NORはクロックで転送するためクロック周波数に依存するが、Quad/Octal化で高速化。
  • エラー要因:リード/プログラム/消去の各動作で生じるディストラブ(read disturb / program disturb)、保持劣化、ビットフリップなど。容量が増すとECCの必要性が上がる。

実装上の注意点(設計/運用)

システム設計においてNORフラッシュを使う際に留意すべき点は以下です。

  • 消去範囲の管理:消去はブロック単位(セクタ)で行うため、小さく頻繁な上書きがあるデータ格納には不向き。ログや一時データはEEPROM/FRAM/SEEPROMやNAND+ファイルシステムに任せる。
  • 耐久対策:頻繁に書き換える領域にはウェアレベリングや書換回数管理を導入するか、別記憶媒体を検討する。
  • ECCとデータ検査:容量が大きくなると、単純なCRCよりもECCの導入が必要になる場合がある(特にファイルシステムやデータ領域)。
  • 電源/タイミング:プログラム/消去時は高電圧ストレスや電流変動がある。電源監視や割り込み排除、タイムアウト管理が重要。
  • セキュリティ機能:近年のSPI NORはOTP、デバイスロック、認証、暗号化ストレージなどを搭載するものがある。セキュアブート設計との整合を取る。

用途と市場の変化

伝統的にはNORはファームウェア領域(BIOS/UEFI、組み込みシステムのブートコード)で使われてきました。近年は以下のように用途と市場が変化しています。

  • 小~中容量のコードストレージ用途では、SPI NORが低ピン数で便利なため依然広く使われる。
  • 大容量化の要求がある場合は、NAND+XIPキャッシュやNANDベースのストレージが採用されることが増加。
  • 新しい不揮発性メモリ(MRAM、FRAM、ReRAMなど)が特定用途でNORの代替を開始しているが、コストや性能要件でNORの役割は残る。
  • セキュアブート、暗号化、信頼できるストレージとしての機能強化が進んでいる。

SPI NORの進化(Quad/Octalなど)

SPI NORは従来のシリアル1bit転送から、2線/4線/8線の並列化(Dual/Quad/Octal SPI)と高クロック化によりシーケンシャル読み出し性能を大幅に向上させています。またSFDP(Serial Flash Discoverable Parameters)によりホストがデバイスの機能やパラメータを自動検出でき、互換性が向上しました。これにより外付けフラッシュからのXIPや高速フェッチがより現実的になっています。

信頼性向上技術とテスト

製造・設計上は以下の技術や手法で信頼性を確保します。

  • マージンテスト(プログラム/保持/読取マージン)やビット寿命試験。
  • ECCやリードリトライ、データリマップによるビットエラー対策。
  • プロセス技術の最適化(チャージトラップ型セルなど)やトランザクションの冗長化。
  • セキュリティ機能(改竄検出や暗号化)による整合性確保。

将来展望

NORフラッシュは、低〜中容量のコードストレージ用途で当面の間重要性を保つ見込みです。ただし以下の点が変動要因となります。

  • 大容量が必要な用途はNANDや新しい不揮発性メモリに移行。
  • SPIやQuad/Octalの性能向上で外付けNORのXIPや高速フェッチがさらに実用化。
  • セキュリティや信頼性機能の統合が進み、ソフトウェア/プラットフォームとの連携が強化される。

まとめ(設計者への提言)

NORフラッシュは、ランダムリード性能とXIP適性により組み込み機器やブート領域で強みを持ちます。設計時には消去粒度・耐久性・電源要件・インターフェース(パラレル vs SPI)を正しく把握し、必要に応じてECC・ウェアレベリング・セキュリティ機能の採用を検討してください。大容量や高書き換え頻度のデータ用途には適さないため、用途に応じた記憶媒体選定が重要です。

参考文献