外部メモリ
この章では、組込みのグラフィック・ユーザ・インタフェース用の外部メモリの選択に役立つ情報を中心に説明します。 この章を読む前に、予備考察およびマイクロコントローラのセクションを読み、適切な外部メモリを選択する際に重要になる依存関係を理解しておくことをお勧めします。
TouchGFX GUIアプリケーションの実行時には、フレームバッファ、ビットマップ、フォント、変換内容などを保存するために外部メモリが必要になることがあります。 TouchGFX GUIの実行において外部メモリに依存するわけではありませんが、フレームバッファの保存用の内部RAM(マイクロコントローラ内)または外部RAMのいずれか、データ保存用の内部 および/または 外部Flashのいずれかが必要になります。
次の概要では、STM32マイクロコントローラで使用できるいくつかの外部メモリを示しています。 さまざまなメモリ例のいくつかは、シリアル・インタフェースとパラレル・インタフェースの両方で使用できます。
さまざまなSTM32マイクロコントローラに多様な外部メモリ・インタフェースが提供されているので、多様な外部メモリに接続できます。
不揮発性メモリ
GUIアプリケーションでは、ビットマップ、フォント、変換内容、およびTouchGFXアプリケーション・コードなどのグラフィカル・データ・アセットの一部またはすべてを保存するために、主に不揮発性ストレージ(Flash)が使用されます。 不揮発性メモリはSTM32製品によってサポートされており、パラレルまたはシリアル・メモリのいずれかを使用してさまざまな構成で、多様なタイプのマイクロコントローラ・インタフェースに接続できます。
不揮発性ストレージは、以下によって選定されます。
- 密度
- 性能
- インタフェースのタイプ(パラレル / シリアル)
- 部品点数
NOR Flash
NOR Flashは不揮発性メモリの一つで、メモリ内のあらゆる領域へのランダム・アクセスが可能になります。
通常のNOR Flashの容量範囲は、128Mbit~2Gbitです。
たとえば、解像度が480x320で色深度が16bppの場合、ユーザ・インタフェースでは全画面のバックグラウンド画像用に最大300KBが必要です。 ここでは、ボタン、スライダー、アイコン、使用フォント、言語数などに必要な追加のビットマップは考慮されていません。 256Mbit(32MB)のNOR Flashには最大100個の固有の全画面画像を保存できます。 ただし、必要な残りのグラフィカル・アセットを追加する場合はもっと少なくなります。
NOR Flashはメモリ・マップド・モードで使用できます。 このモードでは読み出し操作で外部Flashが内部メモリとして認識されます。 このモードでは、CPUが停止した低電力モードでもシステム・マスタ(DMA、LTDC、DMA2D、GFXMMU、またはSDMMC)がメモリに自律的にアクセスできるので、モバイルおよびウェアラブル・アプリケーションに最適です。
NOR Flashメモリは以下のようなさまざまなインタフェース・オプションが用意されています。
- パラレルNOR Flash(x8またはx16のインタフェース)
- シリアルNOR Flash(シリアル・メモリ用のシングル、デュアル、クワッド、オクトのデータライン設定、HyperBus Flash)
シリアルNOR Flashメモリ
シリアルNOR Flashメモリは、グラフィカル・アプリケーションのストレージとして広く使用されています。
このメモリ・タイプには以下のような利点があります。
- 高い周波数
- プリント回路基板(PCB)の配線の簡素化と基板サイズの削減
- アドレス可能領域が最大256MBのメモリ・マップド・モード
- 必要なピン数が4ピン~12ピン
NORシングル、デュアル、クワッド、オクトFlashメモリ
NOR Flashメモリは、さまざまなデータライン構成が用意されています。
- シングル
- デュアル
- クワッド
- オクト
データラインの多いシリアルNOR Flashメモリに切り替えると、メモリ・インタフェースの性能と帯域幅が強化されますが、STM32製品とのインタフェースのために必要なピン数が増えます。
データラインの数に応じた、さまざまなSPIメモリの概要を以下に示します。
パラレルNOR Flashメモリ
パラレルNOR Flashメモリには、性能や構成の点でシリアルFlashメモリと同じ利点があります。 パラレルNOR Flashはメモリ・マップド・モードに構成可能で、内部メモリであるかのようにアクセスすることができます。 パラレルおよびシリアルNOR Flashの違いは、ピンの数とプリント回路基板(PCB)の複雑さです。
NOR Flashメモリには最大47ピンが必要で、このうちアドレス用に最大24ピン、データ用に最大16ピン必要になります。
NAND Flash メモリ
NAND Flashメモリは、大容量のグラフィカル・アセットと高速の書き込みと消去操作を必要とするグラフィカル・アプリケーションに最適です。 NAND Flashメモリはメモリ・マップド・モードで構成できないため、コードの実行にはお勧めできません。
NAND Flashの容量範囲は、1 Gbit~512 Gbitです。
NAND Flashの使用時には、RAM内のキャッシュを使用する必要が生じることがよくあります。 これにより、現在使用しているグラフィック・アセットをRAMに移動し、キャッシュから描画できるようになります。
eMMCメモリ
MMC Associationによって策定されたeMMC(Embedded Multi Media Card)は、NAND Flashと同等に機能し、マスタ統合コントローラが追加されています。 eMMCの明らかな利点の一つは、パッケージにコントローラが統合されており、標準のインタフェースとFlashメモリの管理機能を備えていることです。 これにより、製造メーカーは製品開発の他の部分に集中し、開発期間を短縮することができます。
eMMC Flashの容量範囲は、2Gbit~128Gbitです。
eMMCはNANDやNOR Flashと比較するとランダム読み出し性能が低くなります。 eMMCでは、ランダム読み出し速度の低さを克服するためにキャッシュの追加が必要になる場合があります。
eMMC Flashメモリには最大10ピンが必要で、このうち最大8ピンがデータ用、2ピンが制御用です。
揮発性メモリ
外部の揮発性メモリは主にフレームバッファを保存するために使用され、マイクロコントローラ内部のRAMの容量が不十分な場合や、場合によっては非メモリ・マップドFlashからアセットをキャッシュするために使用されます。 このセクションでは、GUIを実行する組込みシステムでよく使用されるSRAM、SDRAM、PSRAMについて重点的に説明します。 ただし、これ以外にも色々な変種が提供されており、メモリ製造メーカーは「Hyper RAM」、「IoT RAM」、「Octal RAM」など、それぞれのメモリに異なる命名スキームを使用しています。 これら大部分に共通しているのは、サポートするSTM32マイクロコンピュータを見つけることができる点です。
適切な外部RAMを選定するために、以下の点に留意することをお勧めします。
- 密度
- 性能
- 消費電力
- インタフェース 、ピンのサイズ
- フレームバッファの設計
SRAM
SRAMとはスタティック・ランダムアクセス・メモリのことで、電源が供給されている限りビット・データを保持します。 一般的にSRAMでは、DRAMよりも高速アクセスが可能ですが、コスト高になる可能性があり、密度も低くなります。 SRAMは通常はDRAMと比較してアクセス時間が短い(高速である)ので、アニメーション、スケーリング、回転などを多用するGUIにより適しています。 SRAMには同期モードと非同期モードの両方がサポートされ、同期モードの方が高い帯域幅を提供しますが、インタフェースが複雑になります。
Note
SDRAM
SDRAMとはダイナミック・ランダムアクセス・メモリのことで、データの各ビットをキャパシタに保存します。 同じ量のデータを保存するために必要な物理的スペースはSRAMと比較して少なくなります。 データを維持するために定期的なリフレッシュが必要なので、SRAMよりも大きな電力が必要です。
通常、SDRAMの容量密度は16Mbitから最大512Mbitの範囲で、8bit、16bit、32bitインタフェースで使用でき、100MHz~200MHzの周波数で動作します。
24bpp 800x480の解像度で実行される2つのフレームバッファを保存するのに適したSDRAMは、32MbitのSDRAMだと考えられます。 ダブル・フレームバッファ設計では最大18MbitのRAMが必要になるからです。
PSRAM
PSRAMとは疑似スタティック・ランダムアクセス・メモリのことで、DRAMの内部構造(制御ロジック)とSRAMのインタフェースを持っています。 通常は、8Mbit~256Mbitの範囲の容量密度です。 従来のSDRAMやSRAMと比較して、PSRAMは高速で低消費電力という利点があります。
その他のメモリ
新しいOctal RAMおよびHyper RAMメモリは、シリアルの8bitインタフェースをシングルおよびデュアル・データレート・モードで使用しており、高スループットと優れた集積機能を提供します。
外部RAM容量密度の選択
外部RAMにフレームバッファを配置する方針をお持ちの場合は、次の表に市販のさまざまな容量密度のRAMの概要が示されています。
ここには、1、2、4、8、16、24bit/pixelのダブル・フレームバッファ構成で実行するために必要なRAMの概要も示されています(これらの数値を2で割れば、シングル・フレームバッファで必要な容量密度がわかります)。
場合によってはシングル・フレームバッファ構成で十分ですし、一部のSTM32マイクロコントローラには、フレームバッファを配置するのに十分なRAMが内蔵されています。