STM32U5バスマトリックス

こんにちは。このプレゼンテーションでは、STM32U5 のマスタとスレーブを相互接続するバスマトリックスについて説明します。

1

バスマトリックスの概要
バスマルチプレクサ

Cortex-M33
C-AHB

S-AHB

高速バスマルチプレクサ
GPDMA

Icache
低速高速DcachePort0 Port1DMA2DSD
MMC1• メインバスマトリックス：SD
MMC2128 ビット

S0

FLITF
Flash 2 MB

M0

S0

S1

S2

S3

S4

S5

S6

S7

S8

S9

S10
M0

M1

SRAM1

M2

SRAM2

M3

SRAM3

M4

AHB1 ペリフェラル

M5

AHB2 ペリフェラル

M6

OCTOSPI1

M7

OCTOSPI2

M8

FSMC

M9

S0
SmartRunAHB マトリックス• キャッシュのリフィルのバスマトリックス• 128 ビットバスマトリックス• 2 AHB 128 ビットインタフェース（1 マスタ + 1 スレーブ）および 2 AHB 32 ビットインタフェース（1 マスタ + 1 スレーブ）で構成• SRD バスマトリックス：• 32 ビットバスマトリックス

メインバスマトリックス
AHB ブリッジ• 32 ビットマルチ AHB バスマトリックス• 11 AHB スレーブインタフェース（Si）+ 10 AHB マス
タインタフェース（Mi）で構成

S1
M1• 2 AHB スレーブインタフェース + 2 AHB マスタインタ
フェースで構成

LPDMA
S1
M0

AHB3/APB3 ペリフェラル

M1

SRAM4

2

複数のハイスピードペリフェラルが同時動作中であっても、バスマトリクスによって、マスタからスレーブへのアクセスが可能になるとともに、同時アクセスや効率的な動作を行うことが可能になっています。
STM32U5 Arm® Cortex®-M33 コアは、高速マスタポートを通じて Flash に直接アクセスできる命令キャッシュにより、実行用に最適化されています。
図中央の 32 ビット AHB5 マルチレイヤ・バス・マトリクスは、11 マスタと 10 スレーブを相互接続します。
128 ビット AHB5 命令キャッシュのリフィルのバスマトリックスは、2 つの 128 ビットインタフェースと 2つの 32 ビットインタフェースで構成されています。
128 ビットインタフェースは、命令キャッシュに接続されたスレーブ 0 ポートと、フラッシュメモリインタフェースまたは FLITF に接続されたマスタ 0 ポートです。
32 ビットインタフェースは、Flash メモリへのアクセスを有効にするメインバスマトリックスに接続されたスレーブ 1 ポートと、メインバスマトリックスに接続されたマスタ 1 ポートです。
32 ビット AHB5 SmartRun ドメインまたは SRD バスマトリックスには、2 つのスレーブインタフェース（メインマトリックスおよび LPDMA）と、2 つのマスタインタフェース（AHB3/APB3 ペリフェラルおよびSRAM4）があります。
これらのバスマトリックスは、各マスタを特定のスレーブに遅延なく接続するために使用される高速バスマルチプレクサを備えています。同じマスタに対しても、他のスレーブでは新しいアクセスのたびに少なくとも 1 サイクルの遅延が発生します。
ユニークな高速バスマルチプレクサがどの特定の列にも存在することがわかります。ICACHE 低速
ポート用の FSMC など、遅延なしでアクセスされる関連するマスタのデフォルトスレーブを選択します。

2S バスCortex-M33
C-AHB• S-AHB 相互接続（内部メモリ）：

S-AHB• ペリフェラル/SRAM 領域にあるデータにアクセスするために使用

Icache
低速高速Dcache

S0
M0• SRAM1、2、3 の場合：

32→128

S1
M1

S1

ゼロ遅延

• DCACHE S-AHB（外部メモリ）

128→32S0• 内部 SRAM（SRAM1、2、3、SRAM4、およびBKPSRAM）に接続された 3 つのマスタ

S2S3

内部 SRAM（1、2、3）

S4

S5

FSMC
OctoSPI• 外部メモリには、データキャッシュ（FSMC、OCTOPSPI）を介してアクセス• 命令フェッチおよびデータ領域に配置された外部メモ
リへのデータアクセスに使用• このバスを介した命令のフェッチは、C-AHB バスおよび ICACHE 低速ポートを介したフェッチよりも効率低下3Cortex-M33 によって開始された内部 SRAM メモリへのアクセスは、S-AHB ポートを介して実行されます。S-AHB ポートに接続されたデマルチプレクサは、アドレスに従って、メインバスマトリックス内のスレーブポートを選択します。
- SRAM1 にアクセスする場合は S2- SRAM2、SRAM4、およびバックアップ SRAM にアクセスする場合は S3- SRAM2 にアクセスする場合は S4
SRAM1、2、3 の場合、現時点で他のマスタが SRAM にアクセスしていない場合の遅延時間はゼロです。
SRAM1、SRAM2、および SRAM3 は、連続的に配置された S-AHB バスからアクセスできます。
FSMC または OctoSPI コントローラに接続された外部メモリへのアクセスは、リクエストがキャッシュ不可としてマークされている場合でも、DCACHE を介して実行されます。
これらのアクセスは、マッピングの外部データ領域に配置された、データリクエスト、ならびに命令リクエストの場合があります。
S-AHB および DCACHE を介した命令のフェッチは、C-AHB バスおよび ICACHE 低速
ポートを介したフェッチよりも効率が落ちることに注意してください。これが、ICACHE がアドレス再配置機能をサポートする理由です。

3GPDMA バス
デフォルトスレーブ
GPDMA
Port0 Port1
S0

FLITF
Flash 2 MB

M0

S1

S7

S8

S9

S10
M0

M1

SRAM1

M2

SRAM2

M3

SRAM3

M4

AHB1 ペリフェラル

M5

AHB2 ペリフェラル

M6

OCTOSPI1

M7

OCTOSPI2

M8

FSMC

SmartRunAHB マトリックス

LPDMA1

S0S1• 内部メモリ：Flash SRAM1、2、3、4 およびBKPSRAM• 外部メモリ OCTOSPI + FSMC• APB1 および APB2 ペリフェラルを含む AHB1 ペリフェラル• AHB2 ペリフェラル• SRD ペリフェラル

M8

AHB ブリッジ• BusMatrix への 2 AHB マスタインタフェース• GPDMA のアクセス先：M1

S6• GPDMA バス：• デフォルトスレーブ：
M0

AHB3/APB3 ペリフェラル

M1

SRAM4

• AHB1 ペリフェラルポート 0• SRAM1：port1
4

GPDMA にはデュアル双方向マスタポートがあります。ポート 0 お
よびポート 1 では、同時転送をサポートします。
マスタポートは、内部と外部のメモリ、内部と外部のペリフェラルなど、マイクロコントローラ内の任意のメモリマップされたリソースにアクセスできます。
ポート 0 は、AHB1 ペリフェラルのアクセスのデフォルトスレーブです。
ポート 1 は、SRAM1 アクセスのデフォルトスレーブです。

4

SDMMC1 および SDMMC2 の DMA コントローラ
デフォルトスレーブSD
MMC1SD
MMC2S0

FLITF
Flash 2 MB

M0

S1

• メモリにデータを読み書きするために、SDMMC1および SDMMC2 の DMA でのみ使用

M1

S6

S7

S8

S9S10M0

M1

SRAM1

M2SRAM2

M3

SRAM3

M4

AHB1 ペリフェラル

M5

AHB2 ペリフェラル

M6

OCTOSPI1

M7

OCTOSPI2

M8

FSMC

M8

SmartRunAHB マトリックス

AHB ブリッジ

LPDMA1

S0

S1• SDMMC1 および SDMMC2 の DMA マスタバスはバスマトリックスと接続• これらのバスはデータメモリを対象• 内部 Flash メモリ• 内部 SRAM（SRAM1、SRAM2、およびSRAM3）• FSMC または OCTOSPI を介した外部メモリ• デフォルトスレーブ：• SRAM1（両方）M0

AHB3/APB3 ペリフェラル

M1

SRAM45SD および MMC のコントローラはマスタモジュールです。
SD/MMC に書き込まれたデータは RAM のバッファから読み出され、SD/MMC から読み出されたデータは RAM のバッファに格納されるため、これらは内部または外部の任意のメモリにアクセスできます。
両方のコントローラのデフォルトスレーブは SRAM1 です。

5

SmartRun ドメイン（SRD）バスマトリックス• GPDMA は CPU ドメインでのみ使用可能（システムクロックが使用可能な場合）
メインバスマトリックス

SmartRunAHB マトリックス•

AHB ブリッジ

LPDMA

S0

S1
M0

AHB3 ペリフェラル

M1

SRAM4

APB ブリッジ

APB3 ペリフェラル

GPDMA は、システムクロックが使用可能な場合、すべての SRD
スレーブにアクセス可能• LPDMA は SRAM4 および AHB3/APB3 ペリフェラルにのみアクセス可能•

DMA に依存しており、LP モード中に Stop 2 までの自律動作が可能• 次を相互接続する 32 ビット AHB バスマトリックス：••

2 マスタ：•

メイン AHB バスマトリックス•

LPDMA（1 つのマスタポートを備えた低電力 DMA）

2 スレーブ：•AHB3 および APB3 ペリフェラル•

内部 SRAM4（16 KB）

6

一部のペリフェラルは自律モードをサポートしています。これらは、マイクロコ
ントローラが低電力 STOP モードの間はアクティブなままです。
これらのペリフェラルは、STOP モードでもステータスレジスタを操作し、更新するために、必要に応じてカーネルクロックリクエストと AHB/APB バスク
ロックリクエストを生成します。
自律型ペリフェラルが DMA リクエストを有効にして設定されている場合、データ転送は AHB/APB クロックによって実行されます。
AHB1、AHB2、APB1、および APB2 に配置された自律型ペリフェラルは、CDとも呼ばれる CPU ドメインに属しており、GPDMA と SRAM1、SRAM2、SRAM3、または SRAM4 がある場合のみ、STOP 0 と STOP 1 では自律的です。
メインマトリックスは CD に属しています。
AHB3 または APB3 に配置された自律型ペリフェラルは、SRD とも呼ばれる
SmartRun ドメインに属しており、LPDMA と SRAM4 がある場合、STOP 0、STOP 1、および STOP 2 では自律的です。
LPDMA は SRAM4 および AHB3/APB3 ペリフェラルにのみアクセスできます。

6

アービトレーション• アービトレーション：• すべてのバスマトリックスアービトレーション構成は、ラウンドロビン方式• 最小番号のリクエスタから開始• アービトレーションは、許可されたアービトレーションポイントで実行• 新しいアービトレーションが発生する前に、開始されたバーストをすべて終了• バースト長が指定されていない場合、4 ビートごとにアービトレーションが実行• 各アービトレーション変更が有効になるまでに 1 クロックサイクルが必要• 非デフォルトスレーブの場合の全遅延時間 = 1 サイクル

• デフォルトスレーブの場合は遅延なし = 0 サイクル

7

このバスマトリックスによって、マスタ間のアクセス調停を管理します。
アービトレーションはラウンドロビンアルゴリズムを使用し、これは最小番号のリクエスタから開始します。
バーストを横取りできないようにするために、アービトレーションは許可されたアービトレーションポイントで実行されます。
このバスマトリックスは、各マスタを特定のスレーブに遅延なく接続するために使用される高速バスマルチプレクサを備えています。
同じマスタに対しても、他のスレーブでは新しいアクセスのたびに少なくとも 1 サイクルの遅延が発生します。

7© STMicroelectronics - All rights reserved.
ST logo is a trademark or a registered trademark of STMicroelectronics International NV or its affiliates in the EU and/or other countries.
For additional information about ST trademarks, please refer to www.st.com/trademarks.
All other product or service names are the property of their respective owners.

このプレゼンテーション以外に、次のプレゼンテーションを参照できます。
• 命令キャッシュ（ICACHE）• データキャッシュ（DCACHE）• 電源管理（PWR）• リセットおよびクロックコントローラ（RCC）

8