STM32MP1 – DDRSS
DDR サブシステム
1.0 版

STM32MP1 DDR メモリサブシステムのプレゼンテーションにようこそ。

1

主な機能

2

• マルチ規格：DDR3/3L、LPDDR2/3（*）• 周波数：• DDR3/3L <= 533MHz（1066Mbps）• LPDDR2/3 <= 533MHz（1066Mbps）• インタフェース幅： フル（x32）またはハーフ（x16）• メモリマップのアドレス範囲により 1GB に制限される容量• シングルランクのみ（*）オンダイターミナル（ODT）の無いLPDDR3 がサポートされます。

DDR サブシステムの主な機能は次の通りです。
• 複数の DDR 規格：DDR3、DDR3L、LPDDR2、LPDDR3• すべての規格において最大周波数は 533MHz（1066Mbpsの DDR）です。
• LPDDR2 のサポートと同様、オンダイターミナル（ODT）の無いLPDDR3 がサポートされることに注意してください。
•32bit インタフェース幅は、フル（32bit）またはハーフ（16bit）に設定できます。

•デバイスは 16bit DDR インタフェースのみでパッケージすることもできることに注意してください。

•

容量は、メモリマップのアドレス範囲により 1GB に制限されます。

•DDRSS はシングルランクのみサポートしています。

•DDR3 メモリと DDR3L メモリは電源電圧以外は同様です（DDR3 の場合は 1. 5V、DDR3L の場合は 1.35 V）。わかりやすくするために、DDR3L のみを参考にしています。
2

SDRAM トポロジと容量の選択

3• SDRAM トポロジには次のものがあります。
• 1 つの SDRAM デバイスによるポイントツーポイント（p2p）• 2 つの SDRAM デバイスによるフライバイ• トポロジは、SDRAM と PHY のインタフェース幅に従って設定されます。

DQ[31:16]

DDR3L
x16

DDRSS
x16

DDRSS
x32

DDRSS
x32
DQ[15:0]

DDR3L
x16CA

フライバイトポロジ

DQ[31:0]LPDDR2/3
x32

CA

ポイントツーポイントトポロジ（x32）

DQ[15:0]

DDR3L
x16

CA

ポイントツーポイントトポロジ（x16）

DRAM トポロジには次のものがあります。
• ポイントツーポイント（p2p）は、ボードの 1 つの SDRAM デバイスで適用でき、16bit DDR3L または 32bit LPDDR2/3 メモリに該当します。
•フライバイは、ボードの 2 つの DDR3L デバイス（16bit）と32bit（フル）インタフェースで適用できます。

フライバイトポロジの場合、コマンド／アドレスバス（CA バス）で 2つの DDR3L デバイスに順に接続されます。バイトレーングループ（DQ/DQS）は、ポイントツーポイントで接続されます。VTT へ、コ
マンド／アドレスバスのターミネーションを使用することもお勧めします。
適切なトポロジは、SDRAM メモリデバイスと DDR のインタフェース幅によって決まり、SDRAM デバイス数で容量を考慮することになります。
LPDDR2/3 デバイスはほとんど 32bit データバス幅で使用できますが、DDR33/3L デバイスはほとんど 16bit データバス幅で使用できます。
3

DDRSS の概要

4• DDR サブシステム（DDRSS）の構成は次の通り• DDR コントローラ（DDCTRL）• DFI インタフェースで AXI バスのトランザクションを SDRAM コマンドに変換• 64bit AXI からの AXI ポートアービトレーションを実行• 最適な DDR 利用のためのトラフィッククラス（QoS）に応じて DRAM コマンドをスケジュール• DRAM のリフレッシュをスケジュール• DDR PHY（DDRPHYC）• JEDEC に準拠した SDRAM へのコマンド／アドレス（CA バス）およびデータ書込み（DQ/DQS）• JEDEC に準拠した SDRAM からのデータ読出し（DQ/DQS）• DDR3 および LPDDR2/3 の規格に対応した PHY および SDRAM の初期化サポート

DDR サブシステム（DDRSS）は次の 2 個の主なパーツから構成されます。
•DDR コントローラ（DDCTRL）•DDR PHY（DDRPHYC）

DFI は、DDR コントローラと DDR PHY の間の標準インタフェースです。
DDRCTRL は次の各処理を実行します。
•DFI インタフェースで AXI バスのトランザクションを DRAM 転送に変換•

AXI ポートアービトレーション。DDRCTRL はデュアル 64bit AXI を搭載•

最適な DDR 利用のためのトラフィッククラス（QoS）に応じて DRAM コマン
ドをスケジュール

•DRAM のリフレッシュをスケジュール

DDR PHY（DDRPHYC）は次の各処理を実行します。
•JEDEC のタイミングに準拠したコマンド／アドレス（CA バス）の駆動とデータ書込み（DQ/DQS）•JEDEC のタイミングに準拠した FIFO データ読出し（DQ/DQS）•DDR3 および LPDDR2/3 の規格に対応した PHY および DRAM のプログ
ラム可能な初期化4

DDRSS ブロック図5DDR サブシステム
CA レーン
AXI ポート 0

DDRCTRL
AXI ポート 1レジスタ

DFI 2.1

バイトレーン 0

DDRPHY

バイトレーン 1
バイトレーン 2レジスタ

バイトレーン 3

APB
APB

これは、DDR サブシステム（DDRSS）の簡略化されたブロック図です。
DDRCTRL は SoC バックボーンに接続されたマルチ規格 DDRコントローラであり、DFI インタフェースで DDR コマンドを生成します。
DFI の仕様では、メモリコントローラと PHY インタフェースの間の汎用的なインタフェースプロトコルが定義されています。
DDRPHYC は、SDRAM メモリデバイスの実際の信号をサポートするマルチ規格 PHY インタフェースです。
また、DDRPHYC は必要な初期化シーケンスと、SDRAM で必要となる細かいタイミング制御もサポートしています。
DDRCTRL および DDRPHYC には独自の制御レジスタがあります。
DDRCTRL は 2 個の AXI ポートによって SoC バックボーンに接続されています。
DDRPHYC には、コマンド／アドレスバスと 4 個のバイトレーンを搭載したスライスベースのアーキテクチャがあります。

5

DDRCTRL の機能（1/3）

6• コントローラと非同期の 64bit AXI4 ポートインタフェース（XPI）が 2 個搭載されています。
• DDRPHYC への DFI 2.1 準拠のインタフェースがあります。
• シングルランク設定です。
• DDRC クロックと DDR PHY の周波数比は 1:1 です。
• SDRAM コマンドジェネレータ向けの高機能なスケジューラがあります。
• 3 個のトラフィッククラス（読出し時）と、2 個のトラフィッククラス（書込み時）の QoS サポートがあります。
• 低い優先順位トラフィックのスタベーションを回避するオプションがあります。
• プログラム可能なバースト長オプション（4、8、16）があります。
• 同じアドレスに対する複数の書込みアクセスを 1 つの書込みアクセスに組み合わせる書込み組み合わせがあります。
• プログラム可能な時間内にトランザクション到達が不足したことによって生じる自動 SDRAM パワーダウンのオン／オフをサポートします。
• トランザクション到達が不足したことによって生じる自動のクロック停止（LPDDR2/3）のオン／オフをサポートします。
• ハードウェアの低電力インタフェースでプログラム可能な時間内にトランザクション到達が不足したことによって生じる自動低電力モード動作をサポートします。

主な DDRCTL の機能は次の通りです。
コントローラと非同期の 64bit AMBA 4 AXI4 ポートインタフェース（XPI）が•2 個搭載されています。
•64bit の DDRPHYC への DFI 2.1 準拠のインタフェースがあります。
•SDRAM コマンドジェネレータと高機能なスケジューラがあります。
•
DDRC クロックと DDR PHY の周波数比は 1:1 です（SDR モード）。
•3 個のトラフィッククラス（読出し時）と、2 個のトラフィッククラス（書込み時）の高機能な QoS サポートがあります。
低い優先順位トラフィックのスタベーションを回避するオプションがあります。
••
AXI ポートでの読出し後書込み（WAR）や書込み後読出し（RAW）のコヒーレンシを保証します。
バースト長オプション（4、8、16）のプログラム可能なサポートがあります。
•
同じアドレスに対する複数の書込みアクセスを 1 つの書込みアクセスに組•み合わせる書込み組み合わせがあります。
シングルランク設定です。
•
プログラム可能な時間内にトランザクション到達が不足したことによって生•じる自動 SDRAM パワーダウンのオン／オフをサポートします。
トランザクション到達が不足したことによって生じる自動のクロック停止•（LPDDR2/3）のオン／オフをサポートします。
ハードウェアの低電力インタフェースでプログラム可能な時間内にトランザ•
クション到達が不足したことによって生じる自動低電力モード動作をサポートします。

6

DDRCTRL の機能（2/3）

7• プログラム可能なページングポリシーは、次のオプションから選択できます。
• アクセス後にページを開いたままにします（オープンページポリシー）。
• そのページのコントローラでこれ以上アクセスできない場合にページを閉じます。
• 読出し後の書込み、および書込み後の読出しで衝突した場合に一掃後、ページを開いたままにするページクローズモードの最適化に対応した各アクセスでの自動プリチャージを行います。

• 次のようにセルフリフレッシュのオン／オフをサポートします。
• プログラム可能な時間内にトランザクションが不足したことによって起動する自動セルフリフレッ
シュのオン／オフ• ソフトウェア制御下でのセルフリフレッシュのオン／オフ• ソフトウェア制御下でのディープパワーダウンのオン／オフをサポートします（LPDDR2）。
• ソフトウェア制御下での明確な SDRAM モードレジスタの更新をサポートします。
• 行、列、バンクビットをアプリケーション別に配置できる柔軟なマッパーロジックが備わっています。

プログラム可能なページングポリシーは、次のオプションから選択できます。
• アクセス後にページを開いたままにします（オープンページポリシー）。
• そのページのコントローラでこれ以上アクセスできない場合にページを閉じます。
• 読出し後の書込み、および書込み後の読出しで衝突した場合に一掃後、ページを開いたままにするページクローズモードの最適化に対応した各アクセスでの自動プリチャージを行います。
DDR コントローラは、次のようにセルフリフレッシュのオン／オフをサポートします。
• プログラム可能な時間にトランザクションが不足したことによって起動する自動セルフリフレッシュのオン／オフ• ソフトウェア制御下でのセルフリフレッシュのオン／オフ
ソフトウェア制御下でのディープパワーダウンのオン／オフをサポートします（LPDDR2）。
ソフトウェア制御下での明確な SDRAM モードレジスタの更新をサポートします。
行、列、バンクビットをアプリケーション別に配置できる柔軟なマッパーロジックが備わっています。

7

DDRCTRL の機能（3/3）

8• 1T または 2T タイミングのプログラム可能なサポートがあります。
• 次のユーザが選択可能なリフレッシュ制御オプションがあります。
• プログラム可能な平均的周期でのコントローラ生成自動リフレッシュ• 最大 8 個のコントローラ生成リフレッシュをまとめて、連続して発行する機能（これによりページクローズの数が減り、全体的な効率が高まります。）• コントローラで生成されたリフレッシュがまとめられた際に、コントローラがプログラム可能な時間内のアイドル状態において、リフレッシュを投機的に発行可能• コントローラ生成自動リフレッシュを無効にする機能• 直接ソフトウェアリクエストでリフレッシュを発行する機能• LPDDR2/3 デバイスでは全バンクリフレッシュではなく、バンクごとのリフレッシュを実行するようユーザが選択できる機能

DDR コントローラでは、プログラム可能な 1T または 2T タイミン
グをサポートしています。
リフレッシュ制御モードは、次のオプションから選択できます。
• プログラム可能な平均的周期でのコントローラ生成自動リフ
レッシュ• 最大 8 個のコントローラ生成リフレッシュをまとめて、連続して発行する機能（これによりページクローズの数が減り、全体的な効率が高まります。）• コントローラで生成されたリフレッシュがまとめられた際に、コントローラがプログラム可能な時間内のアイドル状態において、リフレッシュを投機的に発行可能• コントローラ生成自動リフレッシュを無効にする機能• 直接ソフトウェアリクエストでリフレッシュを発行する機能• LPDDR2/3 デバイスでは全バンクリフレッシュではなく、バンクごとのリフレッシュを実行するようユーザが選択できる機能

8

DDR 転送元同期タイミング

9CK
CK/CK#•

PHY でセンターアラインされたコマンド／アドレス（DDR3 の場合は SDR、LPDDR2/3 の場合は DDR）

•PHY でセンターアラインされた
DQ/DQS の書込み•

SDRAM でエッジアラインされた DQDQS の読出し
スレーブ DLL を使用した PHY によるセンターアライン

CA バス
アドレスコマンドコントロール

PHY

データ（DQ <7:0>）
ストローブ（DQS）

SDRAM

ストローブ（DQS）

DM
データバス

データ（DQ）

データ（DQ <31:24>）
ストローブ（DQS）

DM

ストローブ（DQS）
セットアップデータ（DQ）

ホールド•

これは、転送元同期信号を使用する DDR インタフェースの簡略化された図です。このインタフェースには、複数の信号グループがあります。
•

コマンド／アドレス信号で構成される CA バスグループは、単方向であり、差動クロック信号 CK/CK# に関係します。CA 信号は、遅延ロックループ回路（MDLL）による PHY 出力でセンターアラインされます。
CA バスは、DDR3 ではシングルエッジ（SDR）、LPDDR2/3 ではデュアルエッジ（DDR）を使用します。

•

バイトレーンごとの DQ/DQS グループ： これらの信号は、書込みコ
マンドや読出しコマンドに応じて双方向となります。このデータグルー
プにはデータ（DQ）とデータマスク（DM）の信号が含まれており、DQS/DQS# ストローブに関係します。
書込みアクセスの場合、DQ/DQS は MDLL による PHY 出力でセンターアラインされます。
読出しアクセスの場合、DQ/DQS は SDRAM エッジでエッジアラインされ、PHY が入出力信号をゲーティングし、SDLL を使用した最適なサンプリングのために DQS/DQS# を再整列します。

さらに、細かいステップ遅延をグループ内の各信号に適用して、最適なタイミングマージンを設定できます。これは、調整の手順でカバーされます。

9DDRPHYC 構造

10• DDRPHYC は最適な信号遅延を一致させるためにバイトレーンアーキテクチャを使用します。
• DDRPHYC は、CA バスに MDLL とバイトレーンごとに MSDLL を備えた DLLベースアーキテクチャを使用します。
• この DLL は次の目的に使用します。
• CK/CK# 信号を 180°（SDR）および 90°（DDR）遅延させて、CA バスを DDR タイミングに調整します。
• 出力 DQS/DQS# 信号を 90°遅延させて、書込みアクセス中のバイトレーンを調整します。
• 入力 DQS/DQS# 信号を 90°遅延させて、読出しアクセス中のバイトレーンをキャプチャします。

DDRPHYC はグループ内のすべての信号をほぼ一致させるた
めにバイトレーンアーキテクチャを使用します。
また、SDRAM メモリへのコマンド／アドレス信号にマスタ DLL（MDLL）を使用し、バイトレーングループごとにマスタ／スレーブDLL（MSDLL）を使用します。
MDLL を使用すれば、CK/CK# の遅延を DDR3L デバイスの場
合は 180°（SDR モード）、LPDDR2/3 デバイスの場合は 90°（DDR モード）調整できます。
MSDLL を使用すれば、DQS/DQS# 出力信号を 90°遅延させ、書込みデータをセンターアラインできます。
MSDLL を使用すれば、DQS/DQS# 入力信号を 90°遅延させ、読出しデータをセンターアラインできます。

1011APBJTAGDFI 2.1

DDRPHYC ブロック図

これは、DDRPHY コントローラの簡略化されたブロック図です。
物理ユーティリティブロック（PUBL）には、制御レジスタと複数のステートマシンが含まれています。
PUBL は、DDR 初期化シーケンスを含む PHY アクティビティのシーケンスの処理を実行します。
PUBL は、インピーダンス較正とプログラム可能な実行を伴う複数の「組込み」調整をサポートします。
MDLL および MSDLL は内部タイミングモジュール（ITM）にクロック位相を生成しています。

11DDRPHYC の機能

12• DLL のリセットおよびロック機能を持った PHY 初期化• SDRAM 規格に準拠した MRS および ZQCL コマンドを含む SRAM 初期化• 外部 240Ω を使用した出力駆動および ODT インピーダンス較正（ZCAL）• 読出しデータの最適なゲーティングを指定するための DQS ゲートトレーニング（DQSTRN）のサポート• 読出し DQ/DQS アイセンタリング遅延調整のサポート（ソフトウェア）• 読出し DQ 遅延調整のサポート（ソフトウェア）• PUBL による実速度ループバックテスト用の BIST エンジンのサポート

これは、DDRPHYC の機能の概要です。
•DLL のリセットおよびロック機能を持った PHY 初期化•

SDRAM 規格に準拠した MRS および ZQCL コマンドを含む
SRAM 初期化•

出力駆動および ODT インピーダンス較正（ZCAL）•

読出しデータの最適なゲーティングを指定するための DQS
ゲートトレーニング（DQSTRN）•

細かいステップ遅延がある読出し DQ/DQS アイセンタリングのサポート（ソフトウェア）•

細かいステップ遅延がある読出し DQ 遅延調整のサポート（ソフトウェア）•PUBL による実速度ループバックテスト用の BIST エンジンもサポート

12

PHY 初期化シーケンス

13

SDRAM 初期化と DQSTRN を含む完全な PHY 初期化がこの図に示されています。
シーケンスは、PIR レジスタで定義され、制御されます。このシーケンスは、システムリセット後に起動します。
起動中にソフトウェアによって決定される調整パラメータが保存され、格納されます。

13

DQS ゲートトレーニング

14• DQS ゲートは、読出し DQS が受信読出しデータをサンプリングするための PHY読出しロジックに伝播する枠です。
• DQS ゲートの位置は、ラウンドトリップ遅延に依存します。
• DQS ゲートは、クオータビット精度に配置する必要があります。
• PUBL は、組込み DQS ゲートトレーニングシーケンス（DQSTRN）をサポートしており、初期化中にデフォルトで起動します。
• DQSTRN は、DDR3 MPR レジスタの代わりに SDRAM 配列を使用しています。
デフォルトの行／バンク／列では、0 が選択されています。

DQS ゲートは、読出し DQS が受信読出しデータをサンプリングするための PHY 読出しロジックに伝播する枠です。
DQS ゲートの位置は、ラウンドトリップ遅延に依存します。
DQS ゲートは、クオータビット精度に配置する必要があります。
PUBL は、組込み DQS ゲートトレーニングシーケンス（DQSTRN）をサポートしており、初期化中にデフォルトで起動します。
DQSTRN は、DDR3 MPR レジスタの代わりに SDRAM 配列を使用しています。デフォルトの行／バンク／列では、0 が選択されています。

14

DQ/DQS 読出し調整

15• DQ および DQS は細かいステップで遅延させることができます（～+/-20pS）。
• DQ ビット遅延は、DQ ビットの不一致を補正するために使用します（DQ ビットスキュー排除）。
• DQS/DQS# 遅延は、DQ サンプリングの最適な配置を行うために使用します（DQS 読出しアイセンタリング）。

• DQ/DQS 読出し調整は、STM32CubeMx ツールでサポートされた最適な設定を見つけるためのソフトウェア手順です。
• DQ ビットスキュー排除と DQS 読出しアイセンタリングは、ボード起動時に実行する必要があり、決定された最適な設定が DDR 設定レジスタに保存されます。

DQ および DQS は細かいステップで遅延させることができます（～+/-20pS）（ピコ秒）。
•DQ ビット遅延は、DQ ビットの不一致を補正するために使用します（DQ ビットスキュー排除）。

•DQS/DQS# 遅延は、DQ サンプリングの配置を最適化するのに役立ちます（DQS 読出しアイセンタリング）。

DQ/DQS 読出し調整は、STM32CubeMx ツールでサポートされた最適な設定を見つけるためのソフトウェア手順です。
DQ ビットスキュー排除と DQS 読出しアイセンタリングは、ボード起動時に実行する必要があり、決定された最適な設定が DDR設定レジスタに保存されます。

15

低電力機能16• DDR サブシステムのさまざまな箇所に省電力スキームが実装されています。
• SDRAM：プリチャージパワーダウン、セルフリフレッシュ、クロックの無効化• DDRPHYC：DLL および I/O の低電力モード• DDRCTRL および SoC： クロックゲーティング• セルフリフレッシュは、DDRCTRL によってサポートされる主な省電力機能です。
これは、3 種類の方法で使用できます。
• ソフトウェアからの明確な制御（SSR）• アイドルタイムアウトベース（ASR）• ハードウェアからの制御（HSR）

DDR サブシステムのさまざまな箇所に省電力スキームが実装されています。
•SDRAM： プリチャージパワーダウン、セルフリフレッシュ、クロックの無効化の搭載•DDRPHYC：DLL および I/O の低電力モード•

DDRCTRL および SoC： クロックゲーティングの搭載

セルフリフレッシュは、DDRCTRL によってサポートされる主な省電力機能です。これは、3 種類の方法で使用できます。
•ソフトウェアからの明確な制御（SSR）•アイドルタイムアウトベース（ASR）•

ハードウェアからの制御（HSR）

16

DDRSS の設定

17• DDRCTRL および DDRPHYC のレジスタは、DDRSS 初期化前の SDRAM タイミングと設定に応じてプログラムされます。
• DDRSS の設定には、STM32CubeMx DDR パネルでユーザによる最小限の情報が必要になります。
• DDRSS を初期化すると、DDRSS を使用できるようになります。AXI ポートの有効化が最終ステップになります。
• 事前に指定された設定パラメータの他に、ボードの起動中に STM32CubeMx ツールで調整パラメータが決定されます。
• DDR メモリを設定して、PHY を最適化されたタイミングに調整したら、設定の堅牢性をテストする必要があります。テストスイート一式は、STM32CubeMx ツールによって提供されます。
• 設定パラメータは、通常の DDR 動作前に保存され、格納されます。

DDRCTRL および DDRPHYC のレジスタは、DDRSS 初期化
前の SDRAM タイミングと設定に応じてプログラムされます。
DDRSS の設定には、STM32CubeMx DDR パネルでユーザによる最小限の情報が必要になります。
DDRSS を初期化すると、DDRSS を使用できるようになります。
AXI ポートの有効化が最終ステップになります。

事前に指定された設定パラメータの他に、ボードの起動中にSTM32CubeMx ツールで調整パラメータが決定されます。
DDR メモリを設定して、PHY を最適化されたタイミングに調整したら、設定の堅牢性をテストする必要があります。テストスイート
一式は、STM32CubeMx ツールによって提供されます。

設定パラメータは、通常の DDR 動作前に保存され、格納されます。

17参照

18

• DDR3 SDRAM 規格：JEDEC JESD79-3F• LPDDR2 SDRAM 規格：JEDEC JESD209-2F• LPDDR3 SDRAM 規格：JEDEC JESD209-3C• RM0436 リファレンスマニュアル STM32MP15xxx advanced Arm®-based 32-bit
MPU• AN5168：DDR Subsystem initialization and configuration.
• AN5122：DDR PCB Design guidelines• STM32CubeMX ツール

詳細については、次の関連文書を参照してください。
•DDR3 SDRAM 規格：JEDEC JESD79-3F•

LPDDR2 SDRAM 規格：JEDEC JESD209-2F•

LPDDR3 SDRAM 規格：JEDEC JESD209-3C•RM0436 リファレンスマニュアル STM32MP15xxx
advanced Arm-based 32-bit MPU•AN5168：DDR Subsystem initialization and configuration.

•AN5122：DDR PCB Design guidelines•STM32CubeMX ツール18