トップページ

ブートコードなど重要データの保護:NORフラッシュのデータ保護設定を利用し、システムの信頼性を向上させる

組込みシステムにおいて、シリアルNORフラッシュメモリは、512Mビット以下の容量を必要とするアプリケーション向けに、コードストレージおよびデータストレージ用の高信頼性、低容量メモリとしてよく使用されています。

業界全体で幅広い採用を容易にするために、シリアルNORフラッシュメモリは、たとえば、マイコンまたはSoCのシリアル・インタフェースで制御されるなど、特定の標準に準拠しています。これらの標準機能の1つとして、格納されたデータの保護機能があります。これは、メモリセルアレイ全体のうち、誤作動の許されないデータが格納されている特定部分、多くはブートコードに適用されます。なぜなら、ブートコードが失われたり、一部が書き換えられたりすると、システム全体が無効になってしまうからです。

例えばノイズによる誤消去やマイコンまたはSoCの誤動作によって上書きされる可能性があるので、保護機能は、保護されたブロック内のデータが破損していないことを保証するのに役立ちます。

保護されたブロックを含む領域に消去またはプログラムコマンドを実行した場合、これらのコマンドは無視されます。 つまり、保護されたブロックは読み取り専用メモリとしてタグ付けされます。

以前からシリアルNORフラッシュメモリにはデータ保護機能が標準的に実装されてきました。しかし、これは、より大容量なメモリを使用する際のフレキシビリティを妨げてしまいます。ウィンボンドは標準の保護機能に独自の拡張機能を導入し、ブロックサイズと保護機能の動作をより詳細に制御できるようにしました。 この記事では、これらの新機能を導入した理由と、活用方法について説明します。

 

保護対象となるブロックサイズの増加

データ保護機能が実装された初期のシリアルNORフラッシュメモリは、現在よりもはるかに小容量でした。したがって、保護が必要なメモリセルアレイ全体を部分的に設定するのに、ステータスレジスタ内の3つのブロックプロテクション(BP)ビットで十分でした。ウィンボンドの シリアルNORフラッシュメモリのデータシートでも、これらのステータスレジスタのビットはBP0、BP1およびBP2として示されています。 これらの3つのビットは、アレイの64分の1から2分の1にわたる保護領域サイズを選択するための8つのオプションを提供します(図1参照)。

1:ステータスレジスタのBPxビットにより、ユーザーは保護領域のサイズを設定できます。 (出典:Winbond W25Q128JVデータシート)

 

したがって、ユーザーが利用できる最大の粒度は、メモリセルアレイ全体の64分の1です。 現在、これが問題になり始めています。組み込みシステムは、以前よりも多くのストレージを必要としており、フラッシュメモリのメーカーがより大容量製品を提供するようになったからです。たとえば、ウィンボンドのシリアルNORフラッシュメモリW25Q128JVは、容量が128Mビットなので、64分の1は2Mビットです。 たとえば、保護したいデータが50Kビットのブートコードのみで、他のデータには保護が必要ない場合はどうでしょうか?この場合、2Mビットの保護領域に、わずか50Kビットのコードしか格納できません。保護されたブロックのほとんどは空のままです。

ウィンボンドは、この問題を解決すべく新しい保護設定機能を導入しました。図1の左端に示すステータスレジスタのSECビットです。これにより、ブロックレベルでなくセクタごとに保護領域を設定できます。図2に示す通り、これはメモリセルアレイを4096分の1まで小さく分割します。例えば、W25Q128JVの場合、4096分の1は32Kビットです。 これにより、ほとんどのメモリセルアレイには保護をかけずコードやデータの格納に使用できる状態で、ブートコードなどのクリティカルなコードの非常に小さな部分のみ保護するというフレキシビリティを持つことができます。

図2:ステータスレジスタのSECビットによりセクタレベルでの保護設定が可能です。 (出典:Winbond W25Q128JVデータシート)

 

図2の黄色で示したのは、もうひとつの保護設定機能であるTB(Top / Bottom)ビットです。 デフォルト(TB = 0)では、ブロックまたはセクタ保護の割り当てが、メモリセルアレイの最下部から開始されるようになっています。 これは、ほとんどのCPUがメモリセルアレイの最下部に格納されたブートコードから起動するためです。ブートコードが格納される保護領域は、メインメモリの効率的な使用と高速動作をするため、最下部に配置する必要があります。

ただし、インテルのCPUはメモリセルアレイの最上部に格納されたブートコードから起動します。 したがって、TBビットをTB = 1に設定することで、ブロックまたはセクタの保護領域をメモリセルアレイの最上部に割り当てることができます。

 

メモリセルアレイの大部分にブロック保護を適用

図2に示すように、標準のシリアルNORフラッシュメモリは、プログラム/消去からの保護ブロック構成オプションとして、最小で64分の1から、最大でメモリセルアレイの半分まで設定可能です。しかし、一部のアプリケーションでは、ユーザーデータの格納領域はゼロまたはほぼゼロであり、ほとんどすべてのメモリセルアレイがブートコードや固定のアプリケーションコードによって占められています。その一例として、テレビのリモコンが挙げられます。エンドユーザーがめったに構成設定(リモコンと新たなメディアデバイスをペアリングするなど)をしないため、保護されていない領域はほとんど必要ありません。メモリセルアレイのほとんどはアプリケーションコード用に使用され、データが変更されることもないため、プログラム/消去からの保護機能の恩恵を受けます。

ウィンボンドは、このようなアプリケーションの要件を満たすために、保護設定機能としてコンプリメント(CMP)ビットを導入しました。これは、BPビットとSECビットによって設定された保護領域を反転します。たとえば、CMP = 0のデフォルト設定かつ、BPビットでメモリセルアレイの64分の1を保護するように設定されているとき、CMP = 1を設定すると保護領域がメモリセルアレイの64分の63に設定され、64分の1は 保護されない設定となります。

 

ハードウェアロックによる保護の強化

シリアルNORフラッシュメモリは、ブロック/セクタ保護設定にハードウェアロックを適用することで、ブートコードなどの重要なデータを確実に保護することができます。これは/WPピンを介して実行されます(図3参照)。 /WPピンの状態はステータスレジスタのSRP(ステータスレジスタプロテクト)ビットで制御されます。

3:W25Q128JV、SOICパッケージのピン配置。ライトプロテクト(/WP)ピンが含まれています。 (出典:W25Q128JVデータシート)

 

単純な書き込み保護機能を持つパラレルNORフラッシュメモリにおいて、/WPピンに精通しているユーザーもいます。しかし、シリアルNORフラッシュメモリの/WPピンの機能はパラレルNORフラッシュメモリとは異なります。これは、ブロックおよびセクタのプログラム/消去保護を設定するBPビットおよびSECビットの設定値を保護します。BPビットとSECビットが設定されSRP=1のとき、/WPピンがアサート(/WP = Low)されるとBPビットおよびSECビットの設定値は保護されます。/WPピンをHighするとBPビットとSECビットの保護は解除されます。

 

重要データを最大限保護

ウィンボンドのシリアルNORフラッシュメモリは、工場から出荷された後、ユーザーによって保護されたブロックをワンタイムプログラマブル(OTP)メモリに変換可能です。これにより保護されたブロックが決してプログラムまたは消去されないことを保証できます。

これは、ブロックおよびセクタ保護の設定に永久的なロックを適用することで実現されます。 いわゆるアクティブパーマネントロックは、SRL(ステータスレジスタロック)ビットとともに使用可能です。これは恒久的、取消不能の形で保護されたブロック内のデータをロックします。将来、保護されたコードにバグが見つかった場合や重要なセキュリティアップデートを適用する必要が出た場合でも、アクティブパーマネントロックが適用されている場合は実行できません。これは深刻な問題です。ウィンボンドは解決策として、アクティブパーマネントロックの適用に、特別な命令シーケンスを実行することを必要としています(命令はデータシートに記載されていません)。

ユーザーにとって、さらに魅力的なのは、電源ロックダウン機能です。これは、シリアルNORフラッシュメモリがアクティブなときは、ステータスレジスタの設定をロックするのと同じ効果があります。しかし、シリアルNORフラッシュメモリがパワーダウンされるたびにそのロックが解除されます。 これにより、電源ロックダウンが再実行される前、電源が投入されるたびにレジスタ設定を変更するためのウィンドウが開きます。

 

進化したシリアルNORフラッシュメモリによる高度なデータ保護

この記事では、重要なデータを保護する目的で使用可能なシリアルNORフラッシュメモリの様々な機能について説明しました。これらの保護機能により、ノイズに起因するビットエラーや、マイコン/SoCによる誤書き込みで、システム全体が無効になってしまうリスクを回避できます。

シリアルNORフラッシュメモリの長年のユーザーでも、保護機能や、保護設定ロックのためのオプション範囲を必ずしも熟知しているわけではありません。ウィンボンドのシリアル NORフラッシュの充実したレジスタ設定を用いることで、信頼性向上を可能にします。

製品に関してのご質問は、mkt_online@winbond.comまでお問い合わせください。

ウィンボンド・エレクトロニクス/フラッシュメモリ・テクニカルマーケティング・アプリケーションエンジニアリング 副ディレクター ケン・リン著

テクニカル記事

TOP

Copyright © Winbond All Rights Reserved.

This website uses cookies to ensure you get the best experience on our website. Learn more
OK