8. SDRAM コントローラ・サブシステム November 2012 cv_54008-1.1 cv_54008-1.1 ハード・プロセッサ・システム(HPS)の SDRAM コントローラ・サブシステムは、 ARM® Cortex™-A9 マイクロプロセッサ・ユニット(MPU)サブシステム用の外部 SDRAM、Level 3(L3)インタコネクト、および FPGA ファブリックへの効率的なアク セスを提供します。SDRAM コントローラは、FPGA ファブリックおよび HPS の間に インタフェースを提供します。インタフェースは、Advanced Microcontroller Bus Architecture(AMBA®)Advanced eXtensible Interface(AXI™)および Avalon® Memory-Mapped(Avalon-MM)のトランザクションを受け入れ、それらのコマンドを SDRAM にとって適切なコマンドに変換し、SDRAM アクセスの詳細を管理します。 SDRAM コントローラ・サブシステムの機能 SDRAM コントローラ・サブシステムは以下の機能を提供しています。 ■ ダブル・データ・レート 2(DDR2)、DDR3、および低消費電力 DDR2 (LPDDR2)SDRAM のサポート ■ ユーザーによるコンフィギュレーションが可能なタイミング・パラメータ ■ 最大 4 Gb 集積度のパーツ ■ 2 つのチップの選択 ■ 24 ビット幅および 40 ビット幅の統合誤り訂正コード(ECC) ■ 8、16、16+ECC、32、32+ECC のユーザーによるコンフィギュレーションが可能 なメモリ幅 ■ コマンド・リオーダリング(先読みバンクの管理) ■ データ・リオーダリング(順不同のトランザクション) ■ クローズ・ページ・アクセスまたは条件オープン・ページ・アクセスのどち らかのための、ユーザーによるコンフィギュレーションが可能なポートごと のバンク・ポリシー ■ 絶対優先度および相対優先度のスケジューリングの両方に対する、ユーザー によるコンフィギュレーションが可能な優先度サポート ■ Avalon-MM および AXI を使用した最大 6 個のポートおよび最大 256 ビット幅の データ幅の柔軟な FPGA ファブリック・インタフェース・コンフィギュレー ション ■ セルフ・リフレッシュ、パーシャル・アレイ・セルフ・リフレッシュ (PASR)、パワー・ダウン、および LPDDR2 ディープ・パワー・ダウンをサ ポートする消費電力管理 © 2012 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, HARDCOPY, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos are trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device specifications before relying on any published information and before placing orders for products or services. ISO 9001:2008 Registered Cyclone V デバイス・ハンドブック Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル 2012 年 11 月 Subscribe 8‒2 第 8 章: SDRAM コントローラ・サブシステム SDRAM コントローラ・サブシステムのブロック図およびシステム統合 SDRAM コントローラ・サブシステムのブロック図およびシステム統合 SDRAM コントローラ・サブシステムは、MPU サブシステム、L3 インタコネクトの メイン・スイッチ、および FPGA ファブリックに接続します。メモリ・インタフェー スは、SDRAM コントローラ、物理層(PHY)、コントロール・レジスタとステータ ス・レジスタ(CSR)、およびそれらに関連するインタフェースから構成されていま す。 図 8–1 に、SDRAM コントローラ・サブシステムの上位レベルのブロック図を示しま す。 図 8‒1. SDRAM コントローラ・サブシステムの上位レベルのブロック図 SDRAM Controller Subsystem SDRAM Controller MPU Subsystem 64-Bit AXI Altera PHY Interface 32-Bit AXI L3 Interconnect Multi-Port Front End Single-Port Controller DDR PHY HPS I/O Pins External Memory FPGA-to-HPS SDRAM Interface 32- to 256-Bit FPGA Fabric AXI or Avalon-MM Control & Status Registers Register Slave Interface L4 Peripheral Bus (osc1_clk) SDRAM コントローラ SDRAM コントローラは、高性能のデータ・アクセスおよびランタイム・プログラム 機能を提供しています。コントローラは、ロウ衝突を低減してバス・ターンアラウ ンド時間を短縮するために、リード・トランザクションおよびライト・トランザク ションをグループ化することでデータをリオーダします。これにより、効率的なト ラフィック・パターンおよびレイテンシ削減が可能となります。 SDRAM コントローラは、マルチポート・フロント・エンド(MPFE)およびシング ル・ポート・コントローラから構成されています。MPFE は、シングル・ポート・コ ントローラへの複数の独立したインタフェースを提供します。シングル・ポート・ コントローラは、各外部メモリ・デバイスと通信してそれらを管理します。詳しく は、8–5 ページの「メモリ・コントローラのアーキテクチャ」を参照してください。 Cyclone V デバイス・ハンドブック Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル 2012 年 11 月 Altera Corporation 第 8 章: SDRAM コントローラ・サブシステム SDRAM コントローラ・サブシステムのブロック図およびシステム統合 8‒3 DDR PHY DDR PHY は、メモリ・コントローラおよびメモリ・デバイスの間に、リードおよび ライトのメモリ動作を実行する物理層インタフェースを提供します。DDR PHY には、 データフロー・コンポーネント、コントロール・コンポーネント、および SDRAM イ ンタフェースのタイミング用のキャリブレーションを処理するキャリブレーション・ ロジックがあります。 SDRAM コントローラ・サブシステムのインタフェース 以下の項では、SDRAM コントロール・サブシステムのインタフェースについて説明 します。 MPU サブシステム・インタフェース SDRAM コントローラは、専用 64 ビット AXI インタフェースを使用して MPU サブシ ステムに接続されており、mpu_l2_ram_clk クロック・ドメイン上で動作します。 L3 インタコネクト・インタフェース SDRAM コントローラは専用 32 ビット AXI インタフェースを使用して L3 インタコネ クトに接続されており、l3_main_clk クロック・ドメイン上で動作します。 CSR インタフェース CSR インタフェースは Level 4(L4)バスに接続されており、l4_sp_clk クロック・ド メイン上で動作します。MPU サブシステムは、例えばメモリ・タイミング・パラ メータ値を設定して、またはメモリを低消費電力の状態にして、コントローラおよ び PHY をコンフィギュレーションするために CSR インタフェースを使用します。ま た、SCR インタフェースは、コントローラおよび PHY のステータス・レジスタへの アクセスを提供します。 FPGA-to-HPS SDRAM インタフェース FPGA-to-HPS SDRAM インタフェースは、HPS の SDRAM コントローラ・サブシステム にアクセスする FPGA ファブリックに実装されたマスタを提供します。インタフェー スには 3 つのポート・タイプがあり、以下の AXI または Avalon-MM のインタフェー スを構築するために使用されます。 ■ コマンド・ポート — リード・コマンドおよびライト・コマンドを発行し、ライト 確認応答の受信用に使用されます。 ■ 64 ビットのリード・データ・ポート — メモリ・リードから返されるデータを受信 します。 ■ 64 ビットのライト・データ・ポート — ライト・データを送信します。 FPGA-to-HPS SDRAM インタフェースは 6 個のコマンド・ポートをサポートし、最大 6 本の Avalon-MM インタフェースまたは最大 3 本の AXI インタフェースを可能にしま す。各コマンド・ポートは、AXI 用のリード・コマンド・ポートまたはライト・コマ ンド・ポートのどちらか一方を実装するために使用できて、あるいは Avalon-MM イ ンタフェースの一部として使用できます。AXI インタフェースおよび Avalon-MM イン タフェースは、32 ビット、64 ビット、128 ビット、および 256 ビットのデータをサ ポートするためにコンフィギュレーション可能です。 2012 年 11 月 Altera Corporation Cyclone V デバイス・ハンドブック Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル 8‒4 第 8 章: SDRAM コントローラ・サブシステム SDRAM コントローラ・サブシステムのブロック図およびシステム統合 表 8–1 に、FPGA に接続されている FPGA-to-HPS SDRAM コントローラ・インタフェー ス・ポートを示します。 表 8‒1. FPGA-to-HPS SDRAM コントローラ・インタフェース・ポートのタイプ ポート・タイプ 数 コマンド 6 64 ビット・リード・データ 4 64 ビット・ライト・データ 4 FPGA-to-HPS SDRAM コントローラ・インタフェースは、以下の特性を備えてコン フィギュレーションできます。 ■ ファブリック・ロジックの必要性に応じて、ファブリックに提供するポート数の 規定範囲内で、Avalon-MM インタフェースおよび AXI インタフェースを混在させ 一致させることが可能です。 ■ FPGA-to-HPS SDRAM インタフェースの各 Avalon-MM インタフェースまたは AXI イン タフェースは、独立のクロック・ドメイン上で動作します。 ■ FPGA-to-HPS SDRAM インタフェースは、FPGA のコンフィギュレーション中にコン フィギュレーションされます。 表 8–2 に、ポートのタイプおよびデータ幅に基づいて、異なるバス・プロトコルを コンフィギュレーションする上で必要なポート数を示します。 表 8‒2. FPGA-to-HPS SDRAM ポートの使用 バス ・プロトコル コマンド リード・データ ライト・データ 2 (1) 1 128 ビット AXI 2 (1) 256 ビット AXI 32 ビットまたは 64 ビット AXI 1 (2) 2 (2) 2 (1) 4 (2) 4 (2) 32 ビットまたは 64 ビット AvalonMM 1 1 1 128 ビット Avalon-MM 1 2 2 256 ビット Avalon-MM 1 4 4 32 ビットまたは 64 ビット AvalonMM 書き込み専用 1 0 1 128 ビット Avalon-MM 書き込み専用 1 0 2 256 ビット Avalon-MM 書き込み専用 1 0 4 32 ビットまたは 64 ビット AvalonMM 読み出し専用 1 1 0 128 ビット Avalon-MM 読み出し専用 1 2 0 256 ビット Avalon-MM 読み出し専用 1 4 0 2 表 8–2 の注: (1) AXI プロトコルはリード・コマンドおよびライト・コマンドの同時発行を可能にするため、AXI イ ンタフェースを構成する上で 2 つの SDRAM コントロール・ポートが必要になります。 (2) データ・ポートの本来のサイズが 64 ビットであるため、AXI インタフェースを構成する上で余分 なリード・ポートおよびライト・ポートが必要になります。 Cyclone V デバイス・ハンドブック Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル 2012 年 11 月 Altera Corporation 第 8 章: SDRAM コントローラ・サブシステム メモリ・コントローラのアーキテクチャ 8‒5 メモリ・コントローラのアーキテクチャ SDRAM コントローラは、MPFE、シングル・ポート・コントローラ、および CSR へ のインタフェースから構成されています。 図 8–2 に、SDRAM コントローラ・サブシステムの SDRAM コントローラ部分のブ ロック図を示します。 図 8‒2. SDRAM コントローラのブロック図 SDRAM Controller Multi-Port Front End Single-Port Controller Read Data 6 Data FIFO Buffers Reorder Buffer ECC Generation & Checking Write Data 6 Data FIFO Buffers FPGA Fabric FIFO POP Logic Write Data Buffer Altera PHY Interface Command 6 Write WR Acknowledge Acknowledge Queues 10 Command FIFO Buffers Rank Timer Scheduler Command Generator Timer Bank Pool Arbiter Control & Status Register Interface MPFE MPFE は、コンフィギュレーションされたインタフェースから保留中のトランザク ションをスケジューリングして、スケジュールされたメモリ・トランザクションを シングル・ポート・コントローラに送信します。MPFE は、個別のポートに関連した すべての機能を取り扱います。 MPFE は、次の 3 つの主要なサブ・ブロックから構成されています。 2012 年 11 月 Altera Corporation Cyclone V デバイス・ハンドブック Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル 8‒6 第 8 章: SDRAM コントローラ・サブシステム メモリ・コントローラのアーキテクチャ コマンド・ブロック コマンド・ブロックは、FPGA ファブリックと HPS からのリード・トランザクション およびライト・トランザクションを受け取ります。コマンド FIFO バッファがフルの 場合、コマンド・ブロックは Ready 信号をデアサートすることでバックプレッシャ をかけます。それぞれの保留中のトランザクションのために、コマンド・ブロック はそのトランザクションの進行上で必要となる次の SDRAM バーストを計算します。 コマンド・ブロックは、ユーザー提供のコンフィギュレーション、使用可能なライ ト・データ、および割り当てられていないリード・データ空間に基づいて、保留中 の SDRAM バースト・コマンドをスケジュールします。 ライト・データ・ブロック ライト・データ・ブロックは、シングル・ポート・コントローラにデータを送信し ます。ライト・データ・ブロックは、ライト・データ FIFO バッファおよびクロック 境界クロッシングをライト・データ用に維持します。ライト・データ・ブロックは、 コマンド・ブロックが次の SDRAM ライト・バーストの適性を計算できるようにする ために、各トランザクションの保留中の書き込みデータの量をコマンド・ブロック に通知します。 リード・データ・ブロック リード・データ・ブロックは、シングル・ポート・コントローラからデータを受信 します。ポートの状態に応じて、リード・データ・ブロックは内部バッファのデー タをバッファするか、またはデータを直接クロック境界クロッシング FIFO バッファ に渡します。リード・データ・ブロックは、Avalon-MM ポート用の順不同のデータを リオーダします。 リード FIFO バッファがオーバーフローしないようにするため、リード・データ・ブ ロックは、コマンド・ブロックがリード・トランザクション・ディスパッチをペー スできるように使用可能なバッファ領域をコマンド・ブロックに通知します。 シングル・ポート・コントローラ シングル・ポート・ロジックは、以下の動作をします。 ■ 保留中 SDRAM バーストのキュー ■ 次の送信に最も効率的なバーストの選択 ■ SDRAM パイプラインのフル状態の維持 ■ すべての SDRAM タイミング・パラメータが満たされていることの確認 SDRAM のシングル・ページのためにシングル・ポート・ロジックに渡されるトラン ザクションは、順番に実行されることが保証されていますが、トランザクションは ページ間でリオーダされることがあります。各 SDRAM バーストのリードまたはライ トは、適切なアルテラの PHY インタフェース(AFI)コマンドに変換され、そのトラ ンザクション用に適切なロウでバンクを開き(必要な場合)、リード・コマンドまた はライト・コマンドを実行し、バンクをプリチャージします(必要な場合)。 シングル・ポート・ロジックは、コマンド・リオーダリング(リード・コマンドま たはライト・コマンドの実行を可能にする上でどのバンクを適切な状態にするか確 認するためにコマンド・シーケンス上で先読みします)およびデータ・リオーダリ ング(マルチポート・ロジックから受信したオーダとは異なるオーダでデータ・ト ランザクションが実行される場合であっても、データ・トランザクションがディス パッチされるようにします)を実装します。 Cyclone V デバイス・ハンドブック Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル 2012 年 11 月 Altera Corporation 第 8 章: SDRAM コントローラ・サブシステム メモリ・コントローラのアーキテクチャ 8‒7 コマンド・ジェネレータ コマンド・ジェネレータは、MPFE および内部 ECC ロジックからコマンドを受け取 り、それらのコマンドをタイマ・バンク・プールに提供します。 タイマ・バンク・プール タイマ・バンク・プールは、アービタと共にデータ・リオーダリングをイネーブル するパラレル・キューです。タイマ・バンク・プールは、受信リクエストをトラッ クしてすべてのタイミング要件が満たされることを確認し、ライト・データ・バッ ファからのライト・データ準備の確認の受信でリクエストをアービタに渡します。 アービタ アービタは、メモリ・デバイスに渡されるリクエストのオーダを決定します。アー ビタがシングル・リクエストを受信する場合、リクエストはすぐに渡されます。複 数のリクエストを受信する場合、アービタはアービトレーション・ルールを使用し てメモリ・デバイスに渡されるリクエストのオーダを決定します。 ランク・タイマ ランク・タイマは以下の機能を実行します。 ■ ランクに特有のタイミング情報の維持 ■ 指定されたタイミング・ウィンドウ内で 4 つのみアクティブになることの確認 ■ read-to-write および write-to-read のバス・ターンアラウンド・タイムの管理 ■ バンク同士の間での time-to-activate 遅延の管理 ライト・データ・バッファ ライト・データ・バッファは、MPFE からライト・データを受信し、ライト・リクエ ストの承認の上でそのデータを PHY に渡します。 ECC ブロック ECC ブロックは、シングル・ビット・エラーを検出・訂正できてダブル・ビット・ エラーを検出できるエンコーダおよびデコーダ・コレクタから構成されています。 ECC ブロックは、シングル・ビット・エラーを訂正できて、データ送信中のノイズ や機能障害によってもたらされるダブル・ビット・エラーを検出できます。 AFI インタフェース AFI インタフェースは、コントローラおよび PHY の間の通信を提供します。 CSR インタフェース CSR インタフェースは、L4 バスからアクセス可能です。このインタフェースによっ て、HPS MPU および FPGA ファブリックでのコードの実行で SDRAM コントローラを コンフィギュレーションしてモニタできるようにします。 2012 年 11 月 Altera Corporation Cyclone V デバイス・ハンドブック Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル 8‒8 第 8 章: SDRAM コントローラ・サブシステム SDRAM コントローラ・サブシステムの機能の説明 SDRAM コントローラ・サブシステムの機能の説明 この項では、SDRAM コントローラ・サブシステムの機能を説明します。 MPFE の動作 この項では、MPFE の動作を説明します。 動作のオーダリング 与えられたポートに到着する同一 SDRAM ページへのリクエストは、受信した順序で 動作します。異なるポートに到着するリクエストは、最初のトランザクションが 2 番目の到着の前に既に完了している場合を除いて、サービスの順序は保証されませ ん。 動作のオーダリングはポート内で定義されて実行されますが、ポート間では定義・ 実行されません。シングル・ポート上で受信される重複したアドレスでのすべての トランザクションは、順番に実行されます。異なるポートで受信されるトランザク ションには、最初のトランザクションが完了した後に 2 番目のトランザクションが 与えられない限り、順序の保証はありません。 Avalon-MM は書き込み確認をサポートしていません。ポートが Avalon-MM をサポー トするようにコンフィギュレーションされている場合、書き込み動作が完了してい ることを確認するために前回書き込まれた位置から読み出す必要があります。ポー トが AXI をサポートするようにコンフィギュレーションされている場合、ポートに アクセスするマスタは、書き込みが確認されてすぐに同じアドレスに対して安全に 読み出し動作を発行することができます。書き込みレイテンシを Low に維持するた めに、トランザクション・オーダが保証されてすぐに書き込みが確認されます。つ まり、任意のポートで書き込み動作として受信する同一アドレスへの動作は、書き 込み動作の後に実行されます。 トラフィックのレイテンシ全体が可能な限り Low であることを確認するために、シ ングル・ポート・ロジックは順不同のリード・データをマルチ・ポート・ロジック に返すことがあります。マルチ・ポート・ロジックは、トランザクションが順不同 で返される場合にリオーダします。トラフィック・リオーダリングの大部分は、 ポートとポート内のみでオーダされるトランザクションの間になります。ポート間 でリオーダされてもポート内ではリオーダされないトラフィックについては、リ オーダリングされる必要がありません。不要なリオーダリングを排除することで平 均レイテンシを低減します。 マルチポートのスケジューリング マルチポートのスケジューリングは、リクエストの絶対優先度およびポートの重要 度という 2 つの要素によって制御されます。 絶対優先度の評価により、高優先度のトラフィックを伝播するポートが低優先度の トラフィックを伝播するポートに先立って使用されます。スケジューラは、大きな 値ほど高い優先度で示される 8 つの優先度レベル(0 ~ 7)を認識します。例えば、 優先度 7 のトランザクションは優先度 6 以下のトランザクションよりも前にスケ ジュールされます。 Cyclone V デバイス・ハンドブック Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル 2012 年 11 月 Altera Corporation 第 8 章: SDRAM コントローラ・サブシステム SDRAM コントローラ・サブシステムの機能の説明 8‒9 複数のポートが同じ絶対優先度を持っているトラフィックを伝播する場合、ポート の重要度に基づいて相対優先度が決定されます。ポートの重要度は 5 ビットの値(0 ~ 31)で、ポートの過去・現在のサービスを訂正する DWRR(Deficit-Weighted Round Robin)アルゴリズムによって決定されます。各ポートには、ユーザーによるコン フィギュレーションが可能な重要度を加算し使用済みトラフィックを減算して、毎 サイクル更新される関連重要度があります。最重要度のポートは最も適性があるも のとみなされます。 高優先度トラフィックが迅速に使用されて、長いバーストも短いバーストもポート 間で効率的にインタリーブされるようにするために、シングル SDRAM バーストより も長い受信トランザクションは、個別に調停された各バーストを使用して SDRAM バーストのシリーズとしてスケジュールされます。 より高い優先度のポートが帯域幅を独占しているときに低優先度のポートが大規模 に稼動しないようにするため、ポートがスケジュールされた優先度に一致する場合 のみコントローラの DWRR の重要度が更新されます。そのため、優先度 7 のポート が 2 個と優先度 4 のポートが 1 個の計 3 個のポートがアクセスされる場合、優先度 7 の両方のポートの重要度は更新されますが、優先度 4 のポートは変更されずに保持 されます。 マルチポートのスケジューリングは、FPGA ファブリックに接続されているすべての ポート間および HPS 内部で実行されて、次のトランザクションが決定されます。長 いトランザクションが他のトランザクションをロックしないようにするため、また は高優先度のポートを大幅に増やすレイテンシの原因にならないようにするため、 調停は SDRAM バーストごとに実行されます。 調停は、絶対優先度および相対優先度の両方をサポートしています。絶対優先度は、 1 個のマスタが常に他よりも上または下の優先度であることが必要なアプリケーショ ンのためのものです。相対優先度は、同一優先度のポート間でのスケジュールを制 御するプログラム可能な重要度フィールドを通してサポートされています。 スケジューラは作業を保存します。書き込み動作は、SDRAM バーストが既に受信さ れている場合にとって十分なデータがあるときのみにスケジュールできます。読み 出し動作は、リード・バッファによってポートが大規模に占有されておらず効率的 な内部メモリがフリーである場合のみにスケジュールできます。 マルチポート・スケジューリングのコンフィギュレーションは、トラックがフロー 状態のときに更新されます。ポートの優先度および重要度はどちらもポートでの割 り込みトラフィックを使用せずに更新できます。更新された時点からメモリ・ク ロックの 10 サイクル以内におけるスケジューリング決定で更新が使用されるため、 優先度は必要なとき頻繁に更新できます。 リード・データの処理 MPFE にはすべてのポートで共有されるリード・バッファが含まれています。返され たデータを受信する上でポートが使用可能な場合、リード・バッファがバイパスさ れます。リード・トランザクションがメモリ・インタフェース幅の 2 倍以下のサイ ズである場合、バッファ RAM はバイパスできません。 SDRAM バーストのスケジューリング SDRAM バーストのスケジューリングは、同一のロウ / バンク組み合わせにアクセス する、オープン・ページ・アクセスとして知られるアドレスを認識します。ページ への動作はシングル・ポート・コントローラに受信される順に保存されます。 2012 年 11 月 Altera Corporation Cyclone V デバイス・ハンドブック Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル 8‒10 第 8 章: SDRAM コントローラ・サブシステム SDRAM コントローラ・サブシステムの機能の説明 SDRAM 動作の選択は 2 ステージのプロセスです。まず、保留中の各トランザクショ ンは実行に適切になるまでそのタイマを待つ必要があります。次に、トランザク ションは実行に適切な他のトランザクションに対して調停します。 以下のルールによってトランザクションの調停が制御されます。 ■ 高優先度の動作は低優先度の動作よりも優先される。 ■ 複数の動作が調停される場合、読み出し動作は書き込み動作よりも優先される。 ■ 上記のルールを適用してもまだ複数の動作が存在する場合、最も古い動作が最初 に保存される。 バンクがアイドル状態で高優先度トランザクションのチップ選択、ロウ、またはア ドレスのカラム・フィールドが既にシングル・ポート・コントローラにあるアドレ スに一致しない場合、SDRAM バースト・スケジューラの高優先度のトランザクショ ンはそのバンクのトランザクションをすぐに上回ります。バンクがアイドル状態で はない場合、そのバンクへの他の動作は高優先度の動作が終了するまで譲ります。 チップ選択、ロウ、およびカラム・フィールドがこれまでのトランザクションと一 致する場合、高優先度のトランザクションは最初に到達しているトランザクション が完了するまで譲ります。 クロッキング MPFE の FPGA ファブリック・ポートはさまざまな周波数でクロックできます。同期 化は、MPFE のクロック・ドメイン・クロッシング・ロジックによって保存されま す。コマンド・ポートはさまざまなクロック・ドメイン上で動作できますが、与え られたコマンド・ポートに関連付けられているデータ・ポートはコマンド・ポート と同じクロックである必要があります。例えば、Avalon-MM インタフェースを構築す るためのリード・ポートおよびライト・ポートとペアになっているコマンド・ポー トは、それに関連付けられているデータ・ポートと同じクロック周波数で動作する 必要があります。 シングル・ポート・コントローラの動作 この項では、シングル・ポート・コントローラの動作について説明します。 SDRAM インタフェース SDRAM インタフェースは最大 40 ビット幅であり、8 ビット、16 ビット、16 ビット +ECC、32 ビット、および 32 ビット +ECC のコンフィギュレーションに対応できま す。SDRAM インタフェースは、LPDDR2、DDR2、および DDR3 のメモリ・プロトコ ルをサポートしています。 コマンドおよびデータのリオーダリング SDRAM コントローラの中心は、コマンドおよびデータのオーダリング・エンジンで す。コマンド・リオーダリングによって、現在のトランザクションが終了する前に 以降のトランザクション用のバンクをオープンにできます。データ・リオーダリン グによって、新規のオーダが SDRAM 帯域幅の改善された使用率を可能にする場合、 トランザクションが受信されたのとは異なるオーダでトランザクションを処理でき るようになります。同じアドレスに影響する動作がデータ・インテグリティを維持 するようにするために、同じバンクおよびロウへの動作が実行されます。 Cyclone V デバイス・ハンドブック Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル 2012 年 11 月 Altera Corporation 第 8 章: SDRAM コントローラ・サブシステム SDRAM コントローラ・サブシステムの機能の説明 8‒11 図 8–3 に、ライト / リード / ライト / リードのコマンド・シーケンスが順番に実行さ れる場合と、同じコマンド・シーケンスがデータ・リオーダリングを使用して実行 される場合の、相対的なタイミングを示します。データ・リオーダリングは、バス・ ターンアラウンド・タイミング遅延またはバンク・リアサインメントなしで、書き 込み動作および読み出し動作をバーストで起こせるようにします。 図 8‒3. データ・リオーダリングの影響 Data Reordering Off Command Address WR B0R0 RD B1R0 WR B0R0 RD B1R0 Data Reordering On Command Address WR B0R0 WR B0R0 RD B1R0 RD B1R0 SDRAM コントローラは、保留中のすべてのロウ・コマンドおよびカラム・コマンド をクロック・サイクル毎にスケジュールします。 バンク・ポリシー 同じバンクとロウの組み合わせをアクティブにする上で今後のアクセスに遅延が起 きないようにするために、SDRAM コントローラのバンク・ポリシーによって、動作 が終了した後にトランザクションのバンクをオープン状態に保つように要求できる ようになります。コントローラは、同時に 8 つのバンクをオープン状態にできるた め、バンク・ソースが他の動作で必要になった場合にオープン状態のバンクがク ローズされることがあります。 SDRAM バースト・トランザクションがスケジュールされる場合、オープン・バン ク・ソースはダイナミックに割り当てられます。バンク割り当ては、受信トランザ クションが複数の SDRAM バーストをスパンする場合にはコントローラによって、あ るいは拡張コマンド・インタフェースによって自動的に要求されます。バンクの再 割り当てが必要な場合、最近最も使用されているオープン・バンクが置換として使 用されます。 保留中の次のコマンドがバンクを要求しないとコントローラが判断すると、保留中 の動作に応じてバンクはオープンかクローズの状態を維持します。タイマ・バンク・ プールにある同じロウ・アドレスに対する保留中の動作によってバンクをクローズ するように要求されると、バンクはオープン状態を維持します。バンクは同じでロ ウ・アドレスは異なる保留中の動作によってバンクをオープンのままにするように 要求されると、プリチャージ動作が起きます。 書き込みの接続 2 番目のバーストの開始アドレスが最初のバーストの終了アドレスよりも 1 大きく、 それによってバースト長が 11 ビットのバースト長カウンタをオーバーフローしない ポート上で、SDRAM コントローラは、連続したバーストから書き込み動作を接続し ます。新しいバス・コマンドを受信する前に前回のコマンドが動作を終了する場合、 書き込みの接続は起きません。 2012 年 11 月 Altera Corporation Cyclone V デバイス・ハンドブック Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル 8‒12 第 8 章: SDRAM コントローラ・サブシステム SDRAM コントローラ・サブシステムの機能の説明 バースト長のサポート コントローラは、2、4、8、16 のバースト長、8、16、32 ビットの非 ECC 動作用の データ幅、ECC がイネーブルされているとき 24、40 動作の幅をサポートします。 表 8–3 に、各バースト長での SDRAM のタイプを示します。 表 8‒3. SDRAM のバースト長 バースト長 SDRAM 4 LPDDR2、DDR2 8 DDR2、DDR3、LPDDR2 16 LPDDR2 幅のマッチング SDRAM コントローラは、データ幅の変換を自動的に実行します。 ECC シングル・ポート・コントローラは、コントローラによって計算されるメモリ ECC をサポートしています。コントローラ ECC は、標準 Hamming ロジックを使用してシ ングル・ビット・エラーおを検出・訂正し、ダブル・ビット・エラーを検出します。 コントローラ ECC は、16 ビット幅および 32 ビット幅に使用可能で、それぞれ追加 のメモリ 8 ビットを必要とするため、結果として実際にはそれぞれ 24 ビットおよび 40 ビットのメモリ幅となります。 コントローラ ECC は以下の機能を提供します。 ■ バイト書き込み — メモリ・コントローラは、リード・モディファイ・ライト動作 を実行して、ワードのビットのサブセットが書き込まれているときに ECC データ が有効の状態を維持するようにします。ワード全体(しかしフル・バースト未 満)が書き込まれていて DM ピンが接続されている場合、読み出しは必要なく、 そのワードのみが更新されます。コントローラ ECC がディセーブル状態の場合、 バイト書き込みが性能に影響することはありません。 ■ ECC ライト・バック — 読み出し動作が訂正可能なエラーを検出する場合、メモリ 位置がリード・モディファイ・ライト動作用にスケジュールされてシングル・ ビット・エラーを訂正します。ECC ライト・バックは、ctrlcfg レジスタの cfg_enable_ecc_code_overwrites フィールドを通してイネーブル / ディセーブル されます。 ■ ECC エラーの確認 — メモリ・コントローラはシングル・ビット・エラーおよびダ ブル・ビット・エラー用の割り込みを提供します。割り込みおよびエラーのス テータスは以下のようにステータス・レジスタに保存されます。 ■ dramsts レジスタは割り込みステータスを保存します。 ■ dramintr レジスタは割り込みマスクを保存します。 ■ sbecount レジスタはシングル・ビット・エラー・カウントを保存します。 ■ dbecount レジスタはダブル・ビット・エラー・カウントを保存します。 ■ erraddr レジスタは最も最近のエラーのアドレスを保存します。 Cyclone V デバイス・ハンドブック Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル 2012 年 11 月 Altera Corporation 第 8 章: SDRAM コントローラ・サブシステム SDRAM コントローラ・サブシステムの機能の説明 8‒13 バイト書き込み ECC がイネーブルされている状態でのバイト書き込みは、リード・モディファイ・ ライトとして実行されます。標準的な動作は、タイマ・バンク・プールのエントリ 1 つのみを使用します。サブワード書き込みがイネーブルされたコントロール ECC で は 2 つのエントリを使用します。最初の動作は読み出しで、2 番目の動作は書き込み です。これら 2 つの動作は、読み出しが返されるまで書き込みが実行されないよう にするためにアドレス依存性と共にタイマ・バンク・プールに送信されます。この アプローチにより、同じアドレスに対する(同じポートからの)以降の動作は、書 き込み動作の後でロウ・リスト上でオーダされるために、書き込み動作の後に実行 されます。 ワード全体(しかしフル・バースト未満)が書き込まれている場合、読み出しは必 要なく、そのワードのみが更新されます。 ECC ライト・バック コントローラ ECC がイネーブルされて読み出し動作の結果が訂正可能 ECC エラーで ある場合、ライト・バックがイネーブルされていればにコントローラはメモリの位 置を訂正します。訂正によって新規のリード・モディファイ・ライトがスケジュー ルされます。新規の読み出しは、位置変更の書き込み動作が上書きされないような 位置で実行されます。実際の ECC の訂正動作は、リード・モディファイ・ライト動 作として実行されます。 ECC エラーのユーザー確認 以下の手法で ECC エラーを確認します。 MPU サブシステムでは、割り込み信号が確認を提供し、ECC エラーの情報はステー タス・レジスタに保存されます。 f 詳しくは、Cyclone V デバイス・ハンドブック Volume 3 の Cortex-A9 Microprocessor Unit SubSystem の章を参照してください。 インタリーブのオプション コントローラは、アドレスをインタリーブする以下のオプションをサポートしてい ます。 ■ ノン・インタリーブ ■ チップ・セレクト・インタリーブなしのバンク・インタリーブ ■ チップ・セレクト・インタリーブありのバンク・インタリーブ すべてのインタリーブ例は 512 Mb x 16 DDR3 チップを使用し、バイト・アドレスと して表示されます。より小さいアドレス・フィールドの RAM では、フィールドの オーダは同じままですが幅が変化する可能性があります。 ノン・インタリーブ RAM マッピングはノン・インタリーブです。 2012 年 11 月 Altera Corporation Cyclone V デバイス・ハンドブック Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル 8‒14 第 8 章: SDRAM コントローラ・サブシステム SDRAM コントローラ・サブシステムの機能の説明 図 8–4 に、ノン・インタリーブのアドレス・デコーディングを示します。 図 8‒4. ノン・インタリーブのアドレス・デコーディング Address Decoding (512 Mb x 16 DDR3 DRAM) DDR 3 512 x 16 DDR 3 512 x16 DDR 3 512 x 16 DDR 3 512 x16 Controller 28 24 20 S B (2 :0 ) 16 12 8 0 C( 9 :0 ) R( 15 :0 ) Address Nomenclature R= Row B =Bank C =Column 4 S = Chip Select チップ・セレクト・インタリーブなしのバンク・インタリーブ チップ・セレクト・インタリーブなしのバンク・インタリーブは、ノン・インタ リーブ・アドレス・マッピングからロウおよびバンクをスワップします。このイン タリーブによって、より小規模なデータ構造がチップ内のすべてのバンクに分散で きるようになります。 図 8–5 に、チップ・セレクト・インタリーブなしのバンク・インタリーブのアドレ ス・デコーディングを示します。 図 8‒5. チップ・セレクト・インタリーブなしのバンク・インタリーブのアドレス・デ コーディング 28 S 24 20 16 R(15:0) 12 8 B(2:0) 4 0 C(9:0) チップ・セレクト・インタリーブありのバンク・インタリーブ チップ・セレクト・インタリーブありのバンク・インタリーブは、ロウ・アドレス に続いてチップ・セレクト、そしてバンク、最後にカラム・アドレスをトップに移 動します。このインタリーブによって、より小規模なデータ構造が複数のバンクお よびチップに分散できるようになります(メモリのブロックへのマルチスレッド・ アクセス用に計 16 のバンクへのアクセスを与える)。チップ間でスイッチするとメ モリのタイミングが劣化します。 Cyclone V デバイス・ハンドブック Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル 2012 年 11 月 Altera Corporation 第 8 章: SDRAM コントローラ・サブシステム SDRAM コントローラ・サブシステムの機能の説明 8‒15 図 8–6 に、チップ・セレクト・インタリーブありのバンク・インタリーブのアドレ ス・デコーディングを示します。 図 8‒6. チップ・セレクト・インタリーブありのバンク・インタリーブのアドレス・デ コーディング 28 24 20 R(15:0) 16 12 S B(2:0) 8 4 0 C(9:0) AXI 排他的動作のサポート シングル・ポート・コントローラは AXI 排他的動作をサポートしています。コント ローラは、最大 16 個の保留中書き込みを保存できてすべてのマスタ間で共有される テーブルを実装します。テーブル・エントリは排他的な読み出しに割り当てられて、 任意のマスタによる同一アドレスへの成功した書き込みではテーブル・エントリが 割り当て解除されます。 テーブルに存在しない排他的な書き込み動作は、動作の確認として排他的な失敗を 返します。排他的な読み出しが実行されるときにテーブルがフルの状態だと、テー ブルはランダム・エントリと置換します。 1 AXI 排他的動作を使用する場合、Avalon-MM インタフェースから同じ位置にアクセス すると予期せぬ結果が生じてしまう可能性があります。 メモリ保護 シングル・ポート・コントローラには、システム中のすべてのマスタからメモリを 保護する基本をソフトウェアがコンフィギュレーションできるようにするためのア ドレス保護があります。システムが AXI マスタと排他的にデザインされている場合、 TrustZone® がサポートされます。Avalon-MM を使用するポートは、ポート・レベルで の保護をコンフィギュレーションできます。 f TrustZone® について詳しくは、ARM のウェブサイト(www.arm.com)を参照してくだ さい。 メモリ保護は、メモリの物理アドレスに基づいています。メモリの範囲へのアクセ スを許可 / 禁止したり、メモリの範囲へのセキュア・アクセスを許可したりするルー ルを設定できます(あるいはそれらの組み合わせも可能)。 セキュア領域およびノン・セキュア領域は、開始アドレスおよび終了アドレス用と して 1 MB 境界を持っている開始 / 終了アドレスが含まれているルールによって指定 されます。ポートのデフォルトをオーバーライドしてすべてのトランザクションを 許可 / 禁止することができます。 2012 年 11 月 Altera Corporation Cyclone V デバイス・ハンドブック Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル 8‒16 第 8 章: SDRAM コントローラ・サブシステム SDRAM コントローラ・サブシステムの機能の説明 メモリ保護テーブルは CSR インタフェースを通してアドレス指定される内部テーブ ルであり、メモリ・アクセスを許可 / 禁止するルールが含まれています。メモリ・ア クセスを制御するための 20 のルールの最大値までコンフィギュレーションできま す。表 8–4 に、各ルールに指定できるフィールドを示します。 表 8‒4. メモリ保護テーブルのルールのためのフィールド フィールド 幅 説明 1 ルールをアクティブにするには 1 に設定します。ルールを 非アクティブにするには 0 に設定します。 10 各ポートを表す以下のようなビットを使用して、適用する ルールに対してポートを指定します。ビット 0 ~ 5 は FPGA ファブリックのポート 0 ~ 5 に対応、ビット 6 は AXI L3 ス イッチ・リードに対応しており、ビット 7 は CPU リード、 ビット 8 は L3 スイッチ・ライト、そしてビット 9 は CPU ライトです。 TID_low (1) 12 このルールが適用される下位転送 ID です。受信トランザク ションがこの値以上の場合、それらのトランザクションは 一致します。その値未満の TID を持っているポートは、よ り低いビットおよびトップにパディングされたゼロにシフ トした TID を持ちます。 TID_high (1) 12 このルールが適用される上位転送 ID です。受信トランザク ションがこの値以下の場合、それらのトランザクションは 一致します。 Address_low 12 1 MB ブロックを指す下位アドレスです。受信アドレスがこ の値以上の場合、それらのアドレスは一致します。 Address_high 12 アドレスの上限です。受信アドレスがこの値以下の場合、 それらのアドレスは一致します。 Protection 2 値 00 は保護ビットが設定されないことを表し、01 は保護 ビットが設定されます。既知の値に AXI 保護を設定しない システムでは、どちらか一方の値をプログラムする必要が あります。 Fail/allow 1 この値を 1 に設定すると動作が失敗または成功に強制され ます。 Valid Port Mask (1) 表 8–4 の注: (1) TID およびポート・マスクが冗長である可能性もありますが、テーブル内の両者を含めてルールの 圧縮を可能にします。ポートに接続されているマスタが連続した TID を持っている場合、ルールに 必要な数の点において、ポート・ベースのルールは TID ベースのルールよりも効率的であることが あります。 ポートは許可または失敗のどちらか一方のデフォルト・アクセス・ステータスを 持っており、許可・失敗の反対の値を持っているルールがデフォルトをオーバーラ イドできます。システムは、メモリ保護テーブルのすべてのルールに対して各トラ ンザクションを評価します。デフォルトでアクセスを許可するポートで受信される トランザクションは、失敗ビットがトランザクションに一致している場合のみ失敗 します。逆に、デフォルトでアクセスを回避するポートは、ルールによってトラン ザクションを渡せる場合のみアクセスが許可されます。 排他的なトランザクションは、読み出し動作のみにおいてセキュリティのチェック がオンになります。バリッド・リードが内部の排他的なテーブルでマークされる場 合のみ書き込み動作が起きます。その結果、排他的な読み出しに続いて書き込みを 実行するマスタは、排他的な読み出しが成功した場合のみメモリに書き込みできま す。 Cyclone V デバイス・ハンドブック Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル 2012 年 11 月 Altera Corporation 第 8 章: SDRAM コントローラ・サブシステム SDRAM コントローラ・サブシステムの機能の説明 8‒17 TrustZone 用のコンフィギュレーションの例 TrustZone のコンフィギュレーションでは、メモリは、セキュア・マスタによってア クセス可能なメモリの範囲、およびノンセキュア・マスタによってアクセス可能な メモリの範囲に分割されます。これらの 2 つのメモリのアドレス範囲は互いに重複 することがあります。 この例は、以下のメモリ・コンフィギュレーションを実装しています。 ■ 合計 2 GB の RAM サイズ ■ 0 ~ 512 MB の専用セキュア・エリア ■ 513 ~ 576 MB の共有エリア ■ 577 ~ 2048 MB の専用ノンセキュア・エリア この例では、各ポートはすべてのアクセスを禁止するデフォルトにコンフィギュ レーションされています。表 8–5 に、メモリ保護テーブルにプログラムされている 2 つのルールを示します。 表 8‒5. コンフィギュレーション例でのメモリ保護テーブルのルール ルール # TID Low ポート・マスク TID High Address Low Address High ポート 失敗 / 許可 1 0’b1111111111 0 4095 0 576 b01 許可 2 0’b1111111111 0 4095 512 2047 b00 許可 ポート・マスク値、TID Low、および TID High は、すべてのポートおよびポート内部 へのすべての転送に適用されます。各アクセス・リクエストはメモリ保護テーブル で評価され、トランザクションを正常に完了させることにルールが一致しない限り、 アクセス・リクエストは失敗します。 表 8–6 に、トランザクションのサンプル・セットの結果を示します。 表 8‒6. トランザクションのサンプル・セットの結果 動作 ソース アドレス ポート 結果 注記 読み出し CPU 4096 1 許可 ルール 1 に一致します。 書き込み CPU 536、870、 1 912(512 MB) 許可 ルール 1 に一致します。 書き込み L3 付属マスタ 605、028、 1 350(577 MB) 失敗 ルール 1 に一致せず(アドレス・フィー ルドの範囲外) 、ルール 2 に一致しませ ん(保護ビットが正しくない) 。 読み出し L3 付属マスタ 4096 0 失敗 ルール 1 に一致せず(誤ったポート値)、 ルール 2 に一致しません(アドレス範囲 内ではない)。 書き込み CPU 536、870、 0 912(512 MB) 許可 ルール 2 に一致します。 書き込み L3 付属マスタ 605、028、 0 350(577 MB) 許可 ルール 2 に一致します。 メモリ・ブロック間でいかなる重複も起こしたくない場合、表 8–5 の 2 つのルール のアドレス範囲を相互排他的に指定することができます。目的の TrustZone コンフィ ギュレーションによっては、保護スペースまたは非保護スペースの複数のブロック を生成するために、メモリ保護テーブルにルールを追加することができます。 2012 年 11 月 Altera Corporation Cyclone V デバイス・ハンドブック Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル 8‒18 第 8 章: SDRAM コントローラ・サブシステム SDRAM の消費電力管理 SDRAM の消費電力管理 SDRAM コントローラ・サブシステムは、SDRAM 内の以下の節電機能をサポートして います。 ■ パーシャル・アレイ・セルフ・リフレッシュ(PASR) ■ パワーダウン ■ LPDDR2 用のディープ・パワーダウン 節電モードは、ユーザー・コマンドのため、または非アクティブのどちらか一方の ために初期化します。 節電モードは、適切なコントロール・レジスタへの書き込みによって初期化されま す。このモードで SDRAM バースト・スケジューリングのバンク管理ロジックは強制 的にすべてのバンクをクローズし、パワーダウン・コマンドを発行します。指定し たクロック・サイクル間で SDRAM バースト・スケジューリング・キューが空状態の ときにコントローラがパワーダウンをイネーブルするようにプログラムすることが できます。アクティブ SDRAM コマンドを受信すると SDAM は自動的に復活します。 他のパワーダウン・モードは、ユーザー制御下でのみ実行されます。 DDR PHY DDR PHY は、メモリ・コントローラおよび外部メモリ・デバイスをスピードが要求 されるパスで接続します。 DDR PHY は以下の機能を実装します。 ■ キャリブレーション —DDR PHY は、コントローラおよび SDRAM チップ間でメモ リ・タイミングを同期させる JEDEC 特有のステップをサポートしています。キャ リブレーション・アルゴリズムはソフトウェアに実装されています。 ■ メモリ・デバイスの初期化 —DDR PHY はモード・レジスタ書き込み動作を実行し てデバイスを初期化します。DDR PHY は、ディープ・パワーダウン後に再初期化 を処理します。 ■ シングル・データ・レートをダブル・データ・レートに変換します。 クロック すべてのクロックは、ddr_dqs_clk メモリ・クロックとは非同期であると仮定されま す。すべてのトランザクションはメモリ・クロック・ドメインに同期されます。 表 8–7 に、SDRAM コントローラ・サブシステム・クロック・ドメインを示します。 表 8‒7. SDRAM コントローラ・サブシステム・クロック・ドメイン(その1) クロック名 説明 ddr_dq_clk PHY 用のクロック ddr_dqs_clk MPFE、シングル・ポート・コントローラ、CSR アクセス、お よび PHY 用のクロック ddr_2x_dqs_clk PHY 用のクロック l4_sp_clk CSR インタフェース用のクロック mpu_l2_ram_clk MPU インタフェース用のクロック Cyclone V デバイス・ハンドブック Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル 2012 年 11 月 Altera Corporation 第 8 章: SDRAM コントローラ・サブシステム リセット 8‒19 表 8‒7. SDRAM コントローラ・サブシステム・クロック・ドメイン(その2) クロック名 説明 l3_main_clk L3 インタフェース用のクロック f2h_sdram_clk[5:0] FPGA ファブリックへの FPGA-to-HPS SDRAM ポート用に使用 される 6 個の独立したクロック クロックの関係という点において、FPGA ファブリックは、構成されているポート用 のライト・データ・ポート、リード・データ・ポート、およびコマンド・ポートに 適切なクロックを接続します。 f 詳しくは、Cyclone V デバイス・ハンドブック Volume 3 の Clock Manager の章を参照して ください。 リセット SDRAM コントローラ・サブシステムは、メモリ内容を保存するかしないか定かでは ないフル・リセット(コールド・リセット)およびウォーム・リセットをサポート しています。メモリ内容を保存するために、リセット・マネージャは、ウォーム・ リセットを発行する前にシングル・ポート・コントローラがセルフ・リフレッシュ・ モードに SDRAM を付けることを要求できます。メモリ内容が保存されると、PHY お よびメモリ・タイミング・ロジックはリセットされませんが、コントローラの他の 事柄はリセットされます。 f 詳しくは、Cyclone V デバイス・ハンドブック Volume 3 の Reset Manager の章を参照して ください。 初期化 SDRAM コントローラ・サブシステムには、DRAM タイプ、DRAM タイミング・パラ メータおよびポートの相対優先度を含むコントローラの動作を制御する CSR があり ます。また、メモリ・コントローラおよび FPGA ファブリックの間にポートをコン フィギュレーションする FPGA ファブリックに応じた小規模の一連のビットもありま す。これらのビットは、Qsys の HPS GUI を使用して実装をコンフィギュレーション するためにあります。 CSR は、レジスタへのアクセスを提供する専用スレーブ・インタフェースを使用し てコンフィギュレーションされます。この領域は、SDRAM 動作、MPFE スケジュー ラ・コンフィギュレーション、および PHY キャリブレーションのすべてを制御しま す。 FPGA ファブリック・インタフェース・コンフィギュレーションは、FPGA ファブ リック内部でプログラムされ、これらのレジスタ・ビットの値はソフトウェアに よって読み出されます。FPGA-to-HPS SDRAM インタフェースがどのようにコンフィ ギュレーションされたか踏まえることなくポートをコンフィギュレーションするこ とができます。 2012 年 11 月 Altera Corporation Cyclone V デバイス・ハンドブック Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル 8‒20 第 8 章: SDRAM コントローラ・サブシステム 初期化 プロトコルの詳細 Avalon-MM 双方向ポート Avalon-MM 双方向ポートは、読み出し動作および書き込み動作をディスパッチするた めに使用される標準的な Avalon-MM ポートです。コンフィギュレーションされる各 Avalon-MM 双方向ポートは、表 8–8 に示す信号から構成されています。 表 8‒8. Avalon-MM 双方向ポートの信号 信号名 ビット 入力 / 出力 機能 clk 1 入力 Avalon-MM インタフェース用のクロックで す。 read 1 入力 リード・トランザクションを表します。 write 1 入力 ライト・トランザクションを表します。 address 32 入力 トランザクションのアドレスです。 readdata 32、64、128、ま たは 256 出力 リード・データ返信です。 出力 リード・データ返信用のバリッド・サイク ル・フラグです。 入力 トランザクション用のライト・データで す。 readdatavalid 1 writedata 32、64、128、ま たは 256 byteenable 4(32 ビット・ データ) 、8(64 ビット・デー タ)、16(128 入力 ビット・デー タ)、32(256 ビット・データ) 各ライト・バイト用のバイト・イネーブル です。 waitrequest 1 出力 トランザクションを完了するためには追加 サイクルが必要であることを表します。 burstcount 11 入力 トランザクションのバースト長です。 リード・インタフェースおよびライト・インタフェースは同じサイズにコンフィ ギュレーションされます。バイト・イネーブル・サイズはデータ・バス・サイズと スケーリングします。 f Avalon-MM プロトコルについて詳しくは、Avalon Interface Specifications を参照してくだ さい。 Avalon-MM ライト・ポート Avalon-MM ライト・ポートは、書き込み動作をディスパッチすることのみに使用され る標準的な Avalon-MM ポートです。コンフィギュレーションされる各 Avalon-MM ラ イト・ポートは、表 8–9 に示す信号から構成されています。 表 8‒9. Avalon-MM ライト・ポートの信号(その1) 信号名 ビット 入力 / 出力 機能 reset 1 入力 リセットです。 clk 1 入力 クロックです。 Cyclone V デバイス・ハンドブック Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル 2012 年 11 月 Altera Corporation 第 8 章: SDRAM コントローラ・サブシステム 初期化 8‒21 表 8‒9. Avalon-MM ライト・ポートの信号(その2) 信号名 ビット 入力 / 出力 機能 write 1 入力 ライト・トランザクションを表します。 address 32 入力 トランザクションのアドレスです。 writedata 32、64、128、ま たは 256 入力 トランザクション用のライト・データ です。 byteenable 4(32 ビット・ データ、8(64 ビット・データ)、 入力 16(128 ビット・ データ)、32(256 ビット・データ) 各ライト・バイト用のバイト・イネー ブルです。 waitrequest 1 出力 トランザクションを完了するためには 追加サイクルが必要であることを表し ます。 burstcount 11 入力 トランザクションのバースト長です。 f Avalon-MM プロトコルについて詳しくは、Avalon Interface Specifications を参照してくだ さい。 Avalon-MM リード・ポート Avalon-MM リード・ポートは、読み出し動作をディスパッチすることのみに使用され る標準的な Avalon-MM ポートです。コンフィギュレーションされる各 Avalon-MM リード・ポートは、表 8–10 に示す信号から構成されています。 表 8‒10. Avalon-MM リード・ポートの信号 信号名 ビット 入力 / 出 力 機能 reset 1 入力 リセットです。 clk 1 入力 クロックです。 read 1 入力 リード・トランザクションを表しま す。 address 32 入力 トランザクションのアドレスです。 readdata 32、64、128、ま たは 256 出力 リード・データ返信です。 readdatavalid 1 出力 リード・データ返信用のバリッド・サ イクル・フラグです。 waitrequest 1 出力 トランザクションを完了するためには 追加サイクルが必要であることを表し ます。リード・コマンドを受け取るの に遅延が必要な場合、読み出し動作で 必要になります。 burstcount 11 入力 トランザクションのバースト長です。 f Avalon-MM プロトコルについて詳しくは、Avalon Interface Specifications を参照してくだ さい。 2012 年 11 月 Altera Corporation Cyclone V デバイス・ハンドブック Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル 8‒22 第 8 章: SDRAM コントローラ・サブシステム 初期化 AXI ポート AXI ポートは AXI-3 インタフェースを使用します。 f AXI-3 インタフェースについて詳しくは、ARM のウェブサイト(www.arm.com)の AMBA Open Specifications を参照してください。 f 高性能 II コントローラ(HPC II)の AXI インタフェース・ポートについて詳しくは、 External Memory Interface Handbook の Functional Description—HPC II Controller の章を参照 してください。 コンフィギュレーションされる各 Avalon-MM リード・ポートは、表 8–11 に示す信号 から構成されています。各 AXI インタフェース信号は、クロックやリセットを含む すべての信号について他のインタフェースから独立しています。 表 8‒11. AXI ポートの信号(その1) 信号名 入力 / 出 力 ビット 機能 ARESETn 1 入力 リセットです。 ACLK 1 入力 クロックです。 ライト・アドレス・チャネル信号 AWID 4 入力 ライト識別タグです。 AWADDR 32 入力 ライト・アドレスです。 AWLEN 4 入力 ライト・バースト長です。 AWSIZE 3 入力 転送サイズの幅です。 AWBURST 2 入力 バースト・タイプです。 AWREADY 1 出力 ライト・コマンドの準備が整っている ことを表します。 AWVALID 1 入力 バリッド・ライト・コマンドを表しま す。 ライト・データ・チャネル信号 WID 4 入力 ライト・データ転送 ID です。 WDATA 32、64、128 また は 256 入力 ライト・データです。 WSTRB 4、8、16、32 入力 バイト・ベースのライト・データ・ス トローブです。各ビット幅は 8 ビット 幅の転送に対応し、32 ビット幅は 256 ビット幅に対応します。 WLAST 1 入力 バースト内で最後の転送です。 WVALID 1 入力 ライト・データ + ストローブが有効で あることを表します。 WREADY 1 出力 ライト・データおよびストローブの準 備が整っていることを表します。 ライト応答チャネル信号 BID 4 出力 ライト応答転送 ID です。 BRESP 2 出力 ライト応答ステータスです。 Cyclone V デバイス・ハンドブック Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル 2012 年 11 月 Altera Corporation 第 8 章: SDRAM コントローラ・サブシステム SDRAM コントローラ・サブシステム・プログラミング・モデルの初期化 8‒23 表 8‒11. AXI ポートの信号(その2) 信号名 ビット 入力 / 出 力 機能 BVALID 1 出力 ライト応答バリッド信号です。 BREADY 1 入力 ライト応答レディ信号です。 リード・アドレス・チャネル信号 ARID 4 入力 リード識別タグです。 ARADDR 32 入力 リード・アドレスです。 ARLEN 4 入力 リード・バースト長です。 ARSIZE 3 入力 転送サイズの幅です。 ARBURST 2 入力 バースト・タイプです。 ARREADY 1 出力 リード・コマンドの準備が整っている ことを表します。 ARVALID 1 入力 バリッド・リード・コマンドを表しま す。 リード・データ・チャネル信号 RID 4 出力 リード・データ転送 ID です。 RDATA 32、64、128 また は 256 出力 リード・データです。 RRESP 2 出力 リード応答ステータスです。 RLAST 1 出力 バースト内で最後の転送です。 RVALID 1 出力 リード・データが有効であることを表 します。 RREADY 1 入力 リード・データ・チャネル・レディ信 号です。 SDRAM コントローラ・サブシステム・プログラミング・モデル の初期化 初期化 SDRAM コントローラは、CSR インタフェースを使用してコンフィギュレーション・ レジスタのソフトウェア・プログラミングを通してコンフィギュレーションされま す。SDRAM コントローラの初期化には、それぞれ異なるコントロールを持った 2 つ の個別の領域があります。 タイミング・パラメータ SDRAM コントローラは、ランタイム時にコンフィギュレーション可能なタイミン グ・パラメータ一式をサポートしています。 2012 年 11 月 Altera Corporation Cyclone V デバイス・ハンドブック Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル 8‒24 第 8 章: SDRAM コントローラ・サブシステム SDRAM コントローラのアドレス・マップおよびレジスタの定義 SDRAM コントローラのアドレス・マップおよびレジスタの定義 f アドレス・マップは、このハンドブックの volume に付属の hps.html ファイルにあり ます。ファイルを開くにはリンクをクリックします。 モジュールの説明およびベース・アドレスを見るには、スクロールして以下のモ ジュール・インスタンスのリンクをクリックします。 ■ sdr そしてレジスタおよびフィールドの説明を見るには、スクロールしてレジスタ名を クリックします。レジスタのアドレスは、各モジュール・インスタンスのベース・ アドレスに相対的なオフセットです。 f すべてのモジュールのベース・アドレスは、Cyclone V デバイス・ハンドブック Volume 3 の Introduction to the Hard Processor System の章にも示されています。 改訂履歴 表 8–12 に、本資料の改訂履歴を示します。 表 8‒12. 改訂履歴 日付 バー ジョン 変更内容 2012 年 11 月 1.1 アドレス・マップおよびレジスタの定義に関する項の追加。 2012 年 1 月 1.0 初版。 Cyclone V デバイス・ハンドブック Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル 2012 年 11 月 Altera Corporation
© Copyright 2024 ExpyDoc