シリアル フラッシュ デバイスの不揮発性と揮発性レジスタ - KBA228310 - Community Translated (JA)

Version 1

    Community Translated by  HiOm_1802421 Expert        Version: **

     

    Translation - English: Volatile and Non-Volatile Registers in Serial Flash Devices – KBA228310

     

    質問:

    サイプレスのシリアル フラッシュ デバイスは、その動作に揮発性と不揮発性のステータスおよび構成レジスタをどのように使用しますか?

     

    回答:

    一部のサイプレスのシリアルNORフラッシュ デバイスには、メモリ デバイスの動作を構成したり、デバイス動作の状態を示すために使用されるメモリ セルの小さなグループの、揮発性と不揮発性のステータスおよび構成レジスタがあります。同じレジスタ空間で揮発性、不揮発性、読み取り専用またはOTPビットが混合していることがあります。

     

    どれかのレジスタの不揮発性版が更新されると、対応する揮発性レジスタが新しい値に自動的に更新されます。不揮発性レジスタから揮発性の対応するレジスタへ直ちに波及します。この挙動は、不揮発性レジスタの値を更新するために使用されるコマンドは関係ありません。不揮発性レジスタは、パワーオン リセット(PoR)、ハードウェア リセット、またはソフトウェア リセット後の揮発性レジスタの初期化にのみ使用されます。フラッシュ デバイスは、動作中は常に揮発性レジスタの値を使用します。不揮発性ビットは、メイン フラッシュ アレイと同じサイクル(消去およびプログラム)耐久性を持っています。システム起動毎に不揮発レジスタ ビットへ書き込まないことを強くお勧めします。不揮発性レジスタへ書き込むときは、乱れがない安定した電源があることに特に注意する必要があります。これにより、正しいデータがレジスタに書き込まれることが保証されます。

     

    揮発性レジスタ ビットは、対応する不揮発性レジスタ ビットと異なる値にいつでも変更できます。揮発性レジスタ ビットが書き込まれると、レジスタの揮発性版のみ適切なビットが更新されます。対応する不揮発性レジスタ ビットは更新されません。パワーオン リセット、ハードウェア リセット、またはソフトウェア リセット時に、揮発性レジスタ ビットは対応する不揮発性レジスタからリロードされます。

     

    OTPビットの場合、不揮発OTPビットが更新されると、そのビットが対応する揮発性ビットは新しい値に直ちに更新されます。不揮発性OTPビットを再度更新しようとすると、このビットの値は(期待した通りに)更新されず、対応する揮発性の値も同じままです。つまり、揮発性の対応ビットも更新されません。

     

    ただしそうは言っても、不揮発性OTPビットが一度プログラムされていても、そのビットの揮発性の対応ビットが本質的に揮発性の読み取り専用でない場合、揮発性の対応ビットは不揮発性のOTPビットとは異なる値に変更できることに注意してください。デバイスの動作は、揮発性レジスタ ビットの値によって制御されます。

     

    これを理解するために例を使用して、S25FS512Sデバイスでブロック保護がどのように機能するかを見てみましょう。次の表は、ステータス レジスタ-1のビットを示しています。

     

    ステータス レジスタ-1 不揮発 (SR1NV)

    ビット76543210
    フィールド名SRWD_NVP_ERR_DE_ERR_DBP_NV2BP_NV1BP_NV0WEL_DWIP_D

     

    ステータス レジスタ-1 揮発 (SR1V)

    ビット76543210
    フィールド名SRWDP_ERRE_ERRBP2BP1BP0WELWIP

     

    SR1NVのBP_NV[2-0]およびSR1VのBP[2-0]ビットは、フラッシュ アレイの保護を制御します。これらのビット構成が保護するメモリ範囲の大きさは、両方のビット セットで同じです。BP_NV[2-0]ビットを[1-1-1]で、BP[2-0]ビットを[1-1-1]でプログラムするとします。

     

    BP_NV2BP_NV1BP_NV0Protected Fraction of MemoryBP2BP1BP0Protected Fraction of Memory
    111All Sectors110Upper Half

     

    BP_NVビット構成はフラッシュアレイ全体を保護しますが、BPビットは上半分のみを保護します。このような場合、BPビット[1-1-0]の値は、その動作サイクル中にブロック保護を制御するために使用され、メモリの上半分のみが保護されたままになります。次の電源投入、ハードウェア リセット、またはソフトウェア リセットでBPビットはBP_NVビットを使用して初期化され、[1-1-1]に更新されメモリ全体を保護します。ブロック保護構成を変更するには、保護を解除するために必要なメモリの割合に応じて、BPビットを他の値にプログラム出来ます。上記の例では、フラッシュ アレイ全体が、パワーオン リセット、ハードウェア リセット、またはソフトウェア リセットの度に保護されたままになります。この初期化構成を変更するには、BP_NVビットを変更する必要があります。