AR# 36719

|

MIG 7 シリーズおよび Virtex-6 DDR2/DDR3 ソリューション センター - デザイン アシスタント - メモリ コントローラーの効率および改善

説明

SDRAM のパフォーマンスを全体的に計算するには、ピーク バンド幅と効率を考慮する必要があります。

ピーク近くのバンド幅は読み出しまたは書き込みのバースト中にのみ発生します。オーバーヘッドは、効率的なデータ レートを低くする DRAM データ バスに常に発生します。

DRAM データ バスのオーバーヘッドの例は次のとおりです。

  • 新しいバンク/行のアクティブ時間
  • 同じバンク内の行を変更するためのプリチャージ時間
  • 読み出しアクセスに変更するための書き込み回復時間
  • 読み出しから書き込みへ変更するためのバス転換時間
  • リフレッシュ時間
  • ZA キャリブレーション時間 (DDR3 のみ)
  • Virtex-6 DDR3/DDR2 デザインに必要な周期的な読み出し

オーバーヘッドを全体的な SDRAM パフォーマンスに含めるには、効率および有効なバンド幅の計算に次のものを使用する必要があります。

  • 効率 (%) = データ転送クロック サイクル数 / 合計クロック サイクル
  • 有効バンド幅 = ピーク バンド幅 * 効率

注記: 書き込みと読み出しで別々の効率を設定する場合もあります。効率レートは書き込みと読み出しで別々に計算することができます。

注記: このアンサーは、ザイリンクス MIG ソリューション センター (Xilinx Answer 34243) の一部です。

ザイリンクス MIG ソリューション センターには、MIG に関する質問が集められています。MIG を含むデザインを新しく作成する場合、または問題をトラブルシュートする場合は、このザイリンクス MIG ソリューション センターから情報を入手してください。

ソリューション

7 シリーズおよび Virtex-6 FPGA DDR2/DDR3 デザインの読み出しおよび書き込みの効率はほぼ 100% になっています。効率はメモリ コントローラー デザインとそのコンフィギュレーション方法によって変わるのですが、効率に最も影響を与えるのはトラフィック パターンです。正確な効率を計算するには、ターゲットのトラフィック パターンをシミュレーションすることが重要です。

効率を上げるためのメモリ コントローラーのカスタマイズ

コントローラー ロジックの最順序付けの使用

7 シリーズおよび Virtex-6 DDR3/DDR2 のメモリ コントローラーには、データ スループットおよびレイテンシを最適化するため受信したリクエストの順序を変えるオプションがあります。これは ORDERING パラメーターを有効または無効にすることで使用できます。再順序付けロジックは、メモリ動作がシーケンシャルでなく、バンクまたは行の開閉が頻繁でなければならないシステムで非常に役立ちます。このロジックはバス転換時間を短縮するのに読み出しをまとめる上で便利でもあります。メモリ アクセスがシーケンシャルな場合は、この再順序付けロジックでは全体的な効率を高めることはできない可能性があります。

効率を計算するためにトラフィック パターンをシミュレーションするとき、ターゲット トラフィック パターンに対するこのロジックの利点を分析するのに、ORDERING パラメーターを有効 (NORMAL) または無効 (STRICT) にすることができます。このパラメーターは MIG ツールを使用するか、または最上位 RTL モジュール (example_top.v または core_name.v など) で設定することができます。

最順序付けコントローラーについては、(Xilinx Answer 34392) を参照してください。

バンク マシンの数をカスタマイズ

7 シリーズおよび Virtex-6 DDR3/DDR2 のデザインは、バンク マシンのユーザー/ネーティブ インターフェイスからのリクエストを格納します。デザインが保存できるリクエストの数はデザインにあるバンク数によります。デザインでのバンク マシンの使用および、バンク マシンの数の変更方法については、(Xilinx Answer 36505) を参照してください。 

バンク マシンの数を増すことでメモリ コントローラの全体的な効率が高まる可能性があります。たとえば、次の行に移動する前に、トラフィック パターンがすべてのバンクの 1 行に書き込みを送信する場合 (B0R0、B1R0、B2R0、B3R0 への書き込みの後に B0R1、B1R1、B2R1、B3R1 が続く)、5 つのバンク マシンを使用すると、2 つ、3 つ、または 4 つを使用する場合よりも効率が高くなります。Row0 の各バンクのリクエストは最初の 4 つのバンク マシンに割り当てることができます。プリチャージ/アクティベートが必要な Row1 へのリクエストが受信されると、5 つ目のバンク マシンにこのリクエストが割り当てられ、ほかのバンク マシンで保留のリクエストが完了します。また、トラフィック パターンを異なる数のバンク マシンでシミュレーションすることで、効率が改善可能な箇所や、追加ロジックが役に立っていない場合を確認することができます。

リフレッシュおよび ZQ キャリブレーション コマンドの手動送信

連続する書き込みまたは読み出しを割り込むリフレッシュ コマンドおよび ZQ キャリブレーション コマンドは、効率に影響を与えます。長く連続する書き込みや読み出しの間はこれらのコマンドを無効にしておき、アイドル中に JEDEC 必須コマンドを完了するのがよいでしょう。この方法を選択した場合、これらのコマンドに対し JEDEC タイミング要件が満たされていることを必ず確認してください。詳細は該当する JEDEC 規格を参照してください。

リフレッシュ コマンドを無効にするには、TREFI パラメーターを 0 に設定します。このパラメーターは最上位 RTL モジュールで設定します (example_top.v/core_name.v など)。リフレッシュを手動で送信するには、app_ref_req 信号をアサートします。この信号は MIG デザインの最上位にはありませんが、mem_intfc.v モジュールにあります。

ZQ キャリブレーション コマンドを無効にするには、tZQI パラメーターを 0 に設定します。このパラメーターは最上位 RTL モジュールで設定します (example_top.v/core_name.v など)。ZQ キャリブレーションを手動で送信するには、app_zq_req 信号をアサートします。この信号は MIG デザインの最上位にはありませんが、mem_intfc.v モジュールにあります。

リフレッシュの詳細について、または 7 シリーズおよび Virtex-6 FPGA デザインでリフレッシュ コマンドを送信する方法については、(Xilinx Answer 34371) を参照してください。

ZQ キャリブレーションについて、または 7 シリーズおよび Virtex-6 FPGA デザインでZQ キャリブレーション コマンドを送信する方法については、(Xilinx Answer 34355) を参照してください。

書き込み中の周期的な読み出しをディスエーブルにする

7 シリーズおよび Virtex-6 FPGA DDR3/DDR2 デザインは、位相検出を実行し、VT 変動があってもデータを正しく取り込むためのアライメントを実行するため、周期的な読み出し (1us 毎) を送信します。

周期的な読み出しに関しては、読み出しまたはアイドル中に効率に影響を与えないので、配慮する必要はありません。ユーザーによって読み出しが送信されている間、バスでの追加読み出しを避けるため、この読み出しでデザインが保留になります。ユーザー読み出しの間、デザインは DQS を監視するだけです。 

ダミーとしての書き込みが長く連続している間に読み出しがバス サイクルを使用する点に中が必要になります。書き込み中のダミー読み出しを手動で無効にするため、ユーザー デザインへの追加ロジックの追加を検討する必要があるかもしれません。書き込みストリーム中に 1us ごとに増分するカウンターがロジックに含まれます。連続書き込みが完了すると、追加されたロジックが処理されなかった数のダミー読み出しを送信します (たとえば書き込みが 4us であればダミー読み出しは 4 つ)。

ダミー読み出しは app_periodic_rd_req 信号を使用して手動でリクエストすることができます (mem_intfc.v モジュールにある)。位相検出器が必要なシフトを実行したことを確認するため、ユーザーが実際の読み出しをリクエストする前に、処理されなかったダミー読み出しを完了する必要があります。

周期的な読み出しおよび位相検出回路でそれを使用する方法については、(Xilinx Answer 34480) を参照してください。

ネイティブ インターフェイス vs ユーザー インターフェイス

シーケンシャル アドレス指定など再順序付けロジックからは効率を上げられないことが発覚したトラフィック パターンがある場合、ユーザー インターフェイスではなく直接ネイティブ インターフェイスに接続したほうがよいケースがあります。 

MIG コアにはユーザー インターフェイス上にビルドされたネイティブ インターフェイスが含まれています。ユーザー インターフェイスはデータをバッファー化し、ユーザーによってリクエストされた順序でデータを戻します。ユーザー インターフェイスは追加レイテンシを追加するので、再順序付けが実行されていないときは、レイテンシを低減するためにネイティブ インターフェイスを使用できます。

その他の情報

Virtex-6 FPGA メモリ コントローラーの自動プリチャージ コマンド使用方法については、(Xilinx Answer 36752) を参照してください。

注記: UltraScale または UltraScale+ デバイスにはこれは適用しません。

アンサー レコード リファレンス

マスター アンサー レコード

Answer Number アンサータイトル 問題の発生したバージョン 修正バージョン
34243 ザイリンクス メモリ インターフェイス ソリューション センター N/A N/A

関連アンサー レコード

AR# 36719
日付 06/26/2017
ステータス アクティブ
種類 ソリューション センター
デバイス 詳細 概略
IP
People Also Viewed