NORフラッシュ|XIP向けランダム読み出し不揮発

NORフラッシュ

NORフラッシュは、浮遊ゲートMOSFETを用いた不揮発性メモリであり、ランダムアクセス性能とコードの実行容易性に優れる。セルはビット線に並列接続されるためアドレス単位の直接リードが可能で、マイコンやSoCのブートコード、PCのBIOS/UEFI、産業機器の制御プログラム格納に広く用いられる。高密度化とページ転送に最適化されたNAND系に比べ、NORフラッシュは読み出しの即応性とアドレス空間へのメモリマップ(XiP)に適する特性を持つ。

セル構造と配線

セルは浮遊ゲートを持つ単一トランジスタで構成され、ソースは共通のソースライン、ドレインは各ビット線、ゲートはワード線に接続される。セルがビット線に並列でぶら下がる構造(NOR配線)により、選択ワード線を活性化すると対象アドレスのセルを直接読み出せる。並列接続のためセル面積は相対的に大きく、ビット密度はNANDより低いが、ワード単位のランダムリードに強いという設計上の帰結をもつ。

動作原理(書込・消去・読出)

書き込み(プログラム)はドレイン付近の強電界で生成されたホットエレクトロンを浮遊ゲートへ注入する現象を利用する。消去はゲート酸化膜を介したFowler–Nordheimトンネル効果により電子を引き抜く。読出しはしきい値電圧の変化をソース-ドレイン電流のオン/オフとして検出する。アレイの信頼性維持のため、消去はセクタ単位(例:4KB、32KB、64KB等)で行われることが多い。

特性:ランダムアクセスとXiP

NORフラッシュはアドレス・データバス(パラレル)やシリアルインターフェース上でメモリマップされ、CPUから通常のリードメモリのように扱える。これによりコードのXiP(eXecute-in-Place)が可能となり、起動時にRAMへコードを展開する時間と容量を節約できる。パラレル型は数十ns級のアクセス、シリアル型でもクロック駆動により高速連続リードが可能で、初期ブートや割り込み処理の応答性が求められる用途に適合する。

インターフェース(SPI/QSPI/OSPIとパラレル)

低ピン数のSPI型はコマンド/アドレス/データをシリアル伝送し、デュアル/クワッド(QSPI)やOctal(OSPI)では同時データ線を増やしてスループットを高める。近年はDDR転送やDQS信号に対応した高速化品も一般的である。レガシーのパラレルNORは8/16bitバスでアドレス/データを直接扱い、待ち時間の少ないダイレクトリードに強い。パッケージはSOP/TSOP/WSON/BGAなど用途に応じて選ばれる。

コマンド体系と標準化

SPI系NORではJEDEC準拠のコマンドが事実上の標準である。代表例として、デバイスID読出し(9Fh)、ライトイネーブル(06h)、ステータスレジスタ読出し(05h)、セクタ消去(20hまたはD8h)、チップ消去(C7h/60h)、ページプログラム(02h)などがある。SFDP(Serial Flash Discoverable Parameters)は容量、アドレッシング幅、サポートモード等を自己記述し、異種デバイス間の互換性確保に寄与する。

耐久性・保持と信頼性機能

一般的な書換え耐久は104〜105サイクル、データ保持は10〜20年程度が目安である(温度・保持条件に依存)。エラー率が低く小容量のコード格納中心であればECCを省略できる場合もあるが、高速モードや大容量化に伴いビットエラー対策としてECC/CRC、リードリトライ、ソフトデコードなどが実装される。セキュア領域(OTP)やブロックプロテクト、ライトプロテクト端子により不正書込みや意図せぬ消去を抑止できる。

用途とアプリケーション

NORフラッシュはMCU/MPUのブートROM代替、PCのBIOS/UEFI、組込み機器のファームウェア格納、ネットワーク装置の設定保存、車載ECUのプログラム、産業用PLC/HMI、メータ・計測器などで広く使われる。起動コードの安定供給とフィールドでのファーム更新(FOTA)に好適である。コードはXiP、または一部をRAMへシャドウして実行される。

プログラム/消去時間と電源設計

ページプログラムには数百µs〜数ms、セクタ消去には数十〜数百ms、チップ全消去にはさらに長い時間を要する。システム設計では、電源瞬断やリセット介入時の書込み中断に備えてロールバック可能な更新手順、割込み禁止区間の最小化、ステータスビット監視、WEL(Write Enable Latch)の厳格運用が重要となる。ノイズ対策としてデカップリング、グラウンド配線の低インダクタンス化、信号立上りの整合も不可欠である。

アドレッシングと容量拡張

128Mbitを超えるデバイスでは24bitを超えるアドレス拡張(4-byteアドレッシングやバンク切替)が必要になる場合がある。ブートROMからの初期アクセス互換性を確保するため、SFDPや固定モードの初期設定、レジスタの不揮発反映可否を事前に評価する。メモリマップ時は即時性の高い領域(ベクタテーブル等)と書換え頻度が高い領域(ログ等)を物理セクタ境界で分離するとメンテナンス性が高い。

SFDPとセキュリティ拡張

SFDPは動作タイミング、サポートコマンド、高速モード、電圧範囲などをテーブル化して提供する。加えて、近年はユニークID、OTP領域、リージョンベースのロック、署名付き更新フローといったセキュリティ拡張が実装される。セキュアブートと組み合わせれば改ざん検出やロールバック防止策の実装が容易になる。

設計時のチェックリスト

  • 必要なセクタサイズと更新単位の整合(設定・ファーム領域の分離)
  • 消去・書込み時間を考慮したタイムアウト、進捗表示、電源瞬断対策
  • プロテクトビット、WP端子、リセット端子の配線と安全な初期化
  • 高速モード時の信号整合:配線長、終端、クロックジッタ、DQS整合
  • 長期保持と温度条件に基づく寿命見積り、必要に応じたECC/リフレッシュ

関連技術との位置づけ

NORフラッシュは「コード主体・ランダム読出しの即応性」を重視する領域を担う。不揮発メモリ全体の中で、EEPROMより高密度、NANDよりランダム性とXiP適性が高いという特性の組合せにより、ブートと制御に不可欠なストレージとして位置づく。規格やコマンド互換が整備されているため、異なるベンダ間でも移行設計が比較的容易である。

コメント(β版)