PSoC® 3/4/5LP デバイス CPU のコード実行とフラッシュメモリへの書込み - KBA90912 - Community Translated (JA)

Version 2

    Community Translated by  Motoo Tanaka Expert       Version: **

     

    Translation - English: CPU Code Execution and Writing to Flash Memory of PSoC® 3/4/5LP Devices - KBA90912

     

    質問:

    PSoC 3/4/5LP デバイスでフラッシュメモリへの書込みを行っている間は CPU の実行は停止されてしまいますか?

     

    回答:

    PSoC 3/4/5LP デバイスにおいて、フラッシュメモリへの書込みはブロッキングです。PSoC 3/4/5LP デバイスは不揮発性メモリの消去とプログラムオペラーションを行うシステムパフォーマンスコントローラ (SPC) と呼ばれるハードウェアブロックを内蔵しています。フラッシュメモリからの CPU コードの実行は SPC がフラッシュメモリへのデータ書込みを終了するまでの間は停止されます。

     

    PSoC 3/5LP  デバイスではフラッシュメモリはキャッシュコントローラか SPC  が読むことができます;しかしフラッシュメモリへの書込みは SPC のみが実行可能です。

    もし SPC とキャッシュコントローラが同時にフラッシュメモリにアクセスを行おうとすると、キャッシュコントローラは SPC のフラッシュメモリへのアクセスが終了するまで待たなくてはなりません。CPU はキャッシュコントローラを介してフラッシュメモリにアクセスするので、この状況下では停止することになります。

     

    CyWriteRowFull(), CyWriteRowData(), CyWriteRowConfig() API は SPC を介してフラッシュメモリへ書込みを行います。

    キャッシュミスによって CPU がコードをフラッシュメモリからフェッチする必要がある場合、キャッシュコントローラは SPC がフラッシュメモリへの書込み処理を終了するまで待たなくてはなりません。そのためフラッシュメモリからの CPU コードの実行はフラッシュメモリへの書込みが終了するまで停止されます。

     

    PSoC 4 デバイスはキャッシュメモリがありません。

    しかし、CySysFlashWriteRow() API を使用したフラッシュメモリへの書込みはブロッキング命令で、そのためフラッシュメモリからの CPU 実行はフラッシュメモリ書込みが行われている間停止します。CPU の実行はフラッシュメモリ書込み処理の終了後に再開されます。

     

    PSoC 4 と PSoC 5LP デバイスでは、フラッシュメモリへの書込みが行われている間、SRAM メモリからのコードを実行することが可能です。