STM32H7 – Chrom-GRC

TM

グラフィックMMU

1.0版

TM

こんにちは、STM32 Chrom(クローム)-GRC プレゼンテーショ
ンにようこそ.
この章では、グラフィカルなアプリケーションで使用されるメモリ管理ユニットの機能を紹介します。

1

概要
グラフィックMMU
AHB
スレーブAHB
マスター

2• グラフィックMMUは、表示形状(例:丸い表示)に応じてメモリの使用量を最適化することを目的としたグラフィカル指向メモリ管理ユニット

ステータスレジスタ

MMU

コントロールレジスタ
ルックアップテーブル

アプリケーション側の利点• ディスプレイ形状に応じたメモリ使用量の削減• 完全に設定可能な表示形状• 透過的な統合• システムの任意のメモリで動作

TM

Chrom-GRC は、表示形状に従ってメモリ使用量を最適化するグラフィック指向のメモリ管理ユニットです。
TM
Chrom-GRC は、可視ピクセルのみをメモリに格納することで、メモリ使用量を減らします。表示形状に従って完全に構成可能であり、完全な透過処理も可能です。
TM
Chrom-GRC は、任意のメモリとSTM32の任意のマスターとなる周辺機能と連携して動作します。

2

主な機能

3

• 主な機能• グラフィカル･フレームバッファ･ストレージ用のグラフィック仮想バッファは最大4つ• 各仮想バッファは、1ラインあたり3072バイトまたは4096バイト、1024ラインを持つ• バッファ･オーバーフロー時の割り込み(バッファあたり1回)• メモリ転送エラーの場合の割込み• 柔軟なIP• 完全にプログラム可能なディスプレイ形状により、可視ピクセルのみを物理的に格納可能• 各仮想バッファは、任意のシステム･メモリに物理的にマッピング可能

TM

Chrom-GRC は、STM32システムのマスターからは、グラフィカルなフレームバッファを格納する4つの仮想バッファとして認識されます。
各仮想バッファは、1ラインあたり3072バイトまたは4096バイトの1024ラインで構成されています。各ラインのサイズはソフトウェアで設定可能です。
バッファ容量を超えるアクセスがあった場合は、バッファオーバーフロー割り込みが発生し、誤った物理メモリアクセスがあった場
合は、メモリ転送エラーが発生します。

仮想バッファのどのバイトを物理メモリに格納するか（または格納しないか）を定義するために、ルックアップテーブルに表示形状が記述されています。
この非常に柔軟なアーキテクチャのおかげで、可視ピクセルのみが効果的に保存され、各仮想バッファはシステムのどのメモリにも物理的にマッピングすることができます。

3

機能の概要4

192/256ブロック (3072/4096バイト)
16バイトブロック

画面ブロックの外ラインN 最後に表示されるブロック

1024ラインラインN 最初に表示されるブロック

仮想フレームバッファ

物理メモリ

各仮想バッファーは、1024ラインあたり3072バイトまたは4096バイトの連続メモリ・スペースとして見られます。
各ラインは192または256、16バイトのブロックで構成されます。
この例では、画面外ブロック(ここでは白で示されています)は物理メモリにマップされません。
各ラインについて、最初に表示されるブロックと最後に表示されるブロックがルックアップテーブルに格納されます。
各ラインの可視ブロックのみが物理メモリに格納されます。

4

機能の概要5

192/256ブロック(3072/4096バイト)
16バイトブロック

画面ブロックの外ラインN 最後に表示されるブロック

ラインN+1 最初の可視ブロック

1024ラインラインN 最初に表示されるブロック

仮想フレームバッファ

ラインN+1 最後に表示されるブロック

物理メモリ

操作は各ラインに対して繰り返され、最初のブロックと最後のブロックを示します。
最初と最後のブロック番号はすべてルックアップテーブルに格納されます。

5

機能の概要6

192/256ブロック(3072/4096バイト)
16バイトブロック

画面ブロックの外ラインN 最後に表示されるブロック

1024ラインラインN 最初に表示されるブロック

仮想フレームバッファ

ラインN+1 最後に表示されるブロック

ラインN+1 最初の可視ブロック

物理メモリ
連続メモリロケーション

そして、すべての可視ブロックは、非長方形の表示形状のためのスペースの膨大な量を節約し、連続的な方法で物理メモリに格納されます。

6

図形の説明を表示

7• ディスプレイの形状は、ルックアップテーブルに記載される• この説明は、4つの仮想フレームバッファに共通• 各ラインのLUTエントリの内容は下記の通り• イネーブル• 最初の可視ブロック• 最後に表示されたブロック• 物理メモリのラインオフセット• 各仮想バッファは、物理メモリ内に独自のベースアドレスを持つ

すべてのラインパラメーターは、内部ルックアップテーブルに格納されます。
説明は、4つの仮想フレームバッファすべてで同じです。
各ラインに対して、次のパラメータが格納されます。
• ラインの有効ビット• 最初に表示されるブロックの番号• 最後に表示されたブロックの番号• 物理メモリ内のラインオフセット。ラインオフセットは、ユー
ザーがプログラムした物理バッファ・ベース・アドレスと、ラインのブロック0を保管する必要があるアドレスとの間のオフセットです。
各仮想バッファは、物理メモリ内に独自のベースアドレスを持ちます。

7

動作モード8• 2つの動作モード• 192ブロックモード:各フレームバッファ･ラインは192ブロックまたは16バイトで構成• 256ブロックモード:各フレームバッファ･ラインは256ブロックまたは16バイトで構成• フレームバッファのピクセル単位のラインサイズ
モード

16bpp

24bpp

32bpp

192BM

1536ピクセル/ライン

1024ピクセル/ライン

768ピクセル/ライン

256BM

2048ピクセル/ライン

1365,3ピクセル/ライン

1024ピクセル/ライン• 192ブロックモードは、24bppモードでピクセルの整数数を持つ

TM

Chrom-GRC は2つの動作モードで実行されます。
• ライン毎192ブロックモード• ライン毎256ブロックモード
1ラインあたりの192ブロックは、フレームバッファのカラーモードがピクセルあたり24ビットの場合に、1ラインあたりのピクセル数を整数で設定できるため便利です。

8ゲイン

9

• ラウンドディスプレイのグラフィカル･フレームバッファのゲインは、ピクセルあたりのビット数に応じて〜20%• STM32H7キットの390x390ラウンドディスプレイの例

TM

モード

正方形のサイズ

Chrom-GRC
最適化されたサイズ

サイズ削減

16bpp

297,1 Kバイト

238,3 Kバイト

-19,8 %

24bpp

445,6 Kバイト

355,5 Kバイト

-20,2 %

32bpp

594,1 Kバイト

471,0 Kバイト

-20,7 %

Chromメモリ内の可視ピクセルのスマートマッピングにより、
TM
GRC はグラフィカルフレームバッファのRAM使用量を大幅に削減します。
丸い表示の場合、ゲインは20%を超えています。フレームバッ
ファのカラーモードによっては、若干の変動が生じる場合があります。

9

割込み
割込みイベント

10

説明

AHBマスターエラー

AHBマスターポートでエラーが発生

バッファ 0 オーバーフロー

バッファ 0 アドレスの計算中にオーバーフローが発生

バッファ 1 オーバーフロー

バッファ 1 アドレスの計算中にオーバーフローが発生

バッファ 2 オーバーフロー

バッファ 2 アドレスの計算中にオーバーフローが発生

バッファ 3 オーバーフロー

バッファ 3 アドレスの計算中にオーバーフローが発生

TM

Chrom-GRC は、5つの割込みソースを管理します:• 物理メモリへのAHBトランザクション中にエラーが発生した場
合のAHBマスターエラー• 4バッファのオフセット計算中にオーバーフローが発生したときのバッファオーバーフロー(バッファごとに1回)

10低電力モード
モード
DRUN
DSTOP
DSTOP2

11

説明
アクティブ
停止
ペリフェラル･レジスタの内容は保持

STANDBY

パワーダウン
STANDBYモードを終了した後、ペリフェラルを再初期化する必要がある

SHUTDOWN

パワーダウン
SHUTDOWNモードを終了した後、ペリフェラルを再初期化する必要がある

Chrom-GRCはDRUNモードでアクティブです。
DSTOPモードまたはDSTOP2モードでは、Chrom-GRCが停止し、そのレジスタの内容が保持されます。
STANDBYモードまたは、SHUTDOWNモードでは、ChromGRCはパワーダウン状態になり、後で再初期化する必要があります。

11アプリケーションの例

12• コネクティビティとグラフィックスを備えた組み込みアプリケーション:

BTモジュール

DSI

UART

I2C

シリアルFlash

OctoSPI

ボタン

I/O

ディスプレイ
タッチパネル

STM32H7I2S

GFXMMU

オーディオ
コーデック

• グラフィックMMUはグラフィックアプリケーションのため内部RAMの使用を最適化• 外部SRAM/SDRAMは不要• 内部RAM(0-WS)でのグラフィカル操作の高速化

ウェアラブルアプリケーションには、高品質のユーザーインタフェイスと共に低電力管理機能が必要です。このコンテキストでは、
TM
Chrom-GRC は内部RAMの使用量を最適化し、SRAM/SDRAM用の外部コンポーネントを追加する必要はなくなりました。グラフィカルコンテンツの作成は、内部ゼロウェイト状
態RAMのおかげでさらに高速です。

12

関連ペリフェラル

13• 詳細については、このペリフェラルにリンクされているこれらのトレーニングを参照ください• RCC(GFXMMUクロック･コントロール、GFXMMUイネーブル/リセット)• 割込み(GFXMMU割込みマッピング)

RCCと割込みに関連するペリフェラルトレーニングスライドを参照できます。

13