Comments
Description
Transcript
アルテラ SoC アーキテクチャ・ブリーフ
アーキテクチャ・ブリーフ SoC FPGA のハードウェア・アクセラレーション はじめに プロセッサと FPGA を 1 つのデバイスに統合する主な利点の 1 つは、様々な機能を FPGA にオフロード してシステム性能を高速化できることです。この性能向上を実現するには、データを迅速かつコヒーレ ントに転送することが重要です。これは、ARMⓇ プロセッサと FPGA ロジックを高速オンチップ・イン タコネクト・バスで統合して性能を向上させるとともに、アクセラレータ・コヒーレンシ・ポートでコヒー レンシを得ることによって、今日の SoC FPGA ベースのシステムで可能になります。 このアーキテクチャ・ブリーフでは、ARM CortexⓇ -A9 プロセッサと極めて汎用的なアクセラレータ・ コヒーレンシ・ポートを利用することで広範なアプリケーションの動作を高速化する利点について説明 します。 このアーキテクチャ・ブリーフの内容は、www.altera.co.jp/socarchitecture でご覧いただけるオンライ ン・ビデオ、「システム性能 : プロセッサと FPGA 間のインタコネクト」で重点的に解説しています。 ハードウェア・アクセラレーションとキャッシュ・コヒーレンシ プロセッサと FPGA を統合したシステムの主な利点は、計算量の多い機能を FPGA ロジックで高速化し てシステムの性能を向上させることができることです。CRC ( 巡回冗長検査 ) の計算から TCP/IP スタッ ク全体のオフロードまで、ほぼすべての処理を FPGA ロジックで高速化することによってプロセッサを オフロードできます。FPGA ベースのアクセラレータによって新しい結果が出たら、できるだけ迅速にデー タをプロセッサに戻してプロセッサが扱うデータを更新できるようにする必要があります。 ARM Cortex-A9 プロセッサ・ベースの SoC FPGA は、アクセラレータ・コヒーレンシ・ポート (ACP) と 呼ばれる機能を内蔵しています。FPGA ベースのハードウェア・アクセラレータが生成した新しいデータ は、ACP を経由する低レイテンシな接続によってプロセッサの L2 キャッシュに直接転送されます。この 動作は迅速かつコヒーレントに実行されます。 図 1. アクセラレータ・コヒーレンシ・ポート (ACP) と ACP ID マッパーをハイライトしたアルテラ CycloneⓇ V SoC FPGA のブロック図 FPGA の領域 コントロール ・ブロック FPGA-HPS HPS-FPGA 軽量 HPS-FPGA マスタ スレーブ スレーブ 32/64/128 ビット AXI バス FPGA FPGA-HPS ブリッジ マネージャ 32ビット AXIバス L4、32 ビット・バス 32/64/128 ビット AXI バス 32ビット AXIバス L3 インタコネクト (NIC-301) DAP MPU サブシステム ARM Cortex-A9 MPCore 32ビット AHBバス CPU0 64ビット AXIバス 32ビット AXIバス ETR SD/MMC EMAC (2) USB OTG (2) 32 ビット AXI バス 軽量 HPS-FPGA ブリッジ HPS-FPGA ブリッジ 64ビット AXIバス 64ビット AXIバス 1-6 マスタ L3 メイン・ スイッチ 32ビット AHBバス 32ビット AXIバス ACP ID マッパー 32ビット AXIバス STM 32ビット AXIバス 32ビット AHBバス ブート ROM 64ビット AXIバス オンチップ RAM 32ビット AXIバス 32ビット NAND AXIバス フラッシュ SDRAM 64ビット AXIバス 32ビット AXIバス CPU1 SCU L2 キャッシュ 64ビット AXIバス L3 マスタ・ ペリフェラル・ 32ビット AXIバス スイッチ ACP AC P DMA コントローラ・ サブシステム 32ビット AXIバス 32ビット AXIバス L3 スレーブ・ペリフェラル・スイッチ 32ビット AXIバス 32ビット AHBバス 4 線式 SPI フラッシュ L4、32ビット APBバス UART (2) タイマ (4) 2 IC (4) ウォッチ ドッグ・ タイマ (2) CAN (2) GPIO (3) SPI (4) Clock マネージャ Reset マネージャ Scan マネージャ System マネージャ = ACP および ACP ID マッパー ACP ロジックは L2 キャッシュのコヒーレンシを自動的に維持するため、コヒーレントなデータ転送には約 30 サイクルが必要です。デー タのコヒーレンシを確保するための別の方法は L2 キャッシュをフラッシュすることですが、それを完了するには数百サイクルを要し ます。 アルテラ SoC FPGA は、 表 1 に示すように FPGA ベースの機能とプロセッサ・ペリフェラルの両方でコヒーレントなトランザクショ ンをサポートします。 アルテラ以外の SoC FPGA は 1 個の専用ポートを介した FPGA 機能のみをサポートしており、 プロセッサ・ペリフェ ラルからのトランザクションはサポートしていません。 ARM は元々、一般に専用アクセラレータや、ACP サポートを必要とするペリフェラルを少数しか持たないフルカスタム SoC 用に ACP インタフェースを設計しました。そのため、ARM ACP インタフェースは 8 つのインフライトまたは保留トランザクションしかサポー トしません。しかし、SoC FPGA は柔軟かつプログラマブルなアーキテクチャを持つため、コヒーレント・サポートを必要とするハー ドウェア・アクセラレータをさらに多く必要とするかもしれません。アルテラ SoC FPGA は、8 つ以上の機能をサポートするために、8 つのインフライト・トランザクションの他に無限個の保留トランザクションをサポートする ACP ID マッパーを組み込んでいます。 表 1. SoC FPGA のアクセラレータ・コヒーレンシ・ポート (ACP) の違い アルテラ SoC FPGA Xilinx Zynq-7000 EPP ACP による FPGA ベース・マスタのサポート あり あり ACP によるプロセッサ・ペリフェラル・マスタのサポート あり なし ACP ID マッパー あり なし ACP がサポートするインフライト・トランザクション数 8 8 ( インフライトまたは保留の合計 ) ACP がサポートする保留トランザクション数 無制限 8 ( インフライトまたは保留の合計 ) ACP ポート・コンフィギュレーション x64 AXI x64 AXI ACP ポート・クロック・ソース 1/2 CPU クロック (800 MHz CPU では 400 MHz) FPGA (150 MHz) アプリケーションの例:拡張カルマン・フィルタ アルテラ拡張カルマン・フィルタ (EKF) リファレンス・デザインは、ハードウェア・アクセラレーションを FPGA に実装する利点の一 例です。EKF は、防衛レーダー、ソナー、誘導、および航法システム、慣性航法センサー、車載センサー・フュージョン、および工業 用モーター制御に一般に使用されるアルゴリズムです。EKF はカルマン・フィルタの非線形バージョンで、モデルに非線形動作を含む システムに使用するのに適しています。そのアルゴリズムは、非線形モデルの線形化を繰り返し実行します。 このアルゴリズムのハードウェア・アクセラレーションは、アプリケーション固有部分を ARM プロセッサに残してアルゴリズムの汎 用部分を FPGA にオフロードすることによって実現できます。このアプローチにより、11 万 LE を持つ Cyclone V SoC の FPGA ロジッ クの 10 % 未満しか使用せずに、システム性能を 2 倍以上に向上させることができます。 図 2. レーダーに実装したアルテラ拡張カルマン・フィルタ・リファレンス・デザインのブロック図 ターゲット・ シミュレータ レーダー・ シミュレータ System-inthe-Loop レーダー追跡装置 拡張カルマン・フィルタ Mathworks Matlab レーダー測定 ターゲットの推定状態 視覚化 System-inthe-Loop ターゲット 管理 拡張 カルマン・ フィルタ Matlab API (システム・コンソール) まとめ 主要機能をプロセッサから FPGA にオフロードすると、システム性能の著しい向上とシステム消費電力の削減を実現できます。SoC FPGA ベースのシステムでこの性能上の利点を得るには、プロセッサと FPGA の間の高速/低レイテンシ・インタコネクトが極めて重 要です。L2 キャッシュを利用するアクセラレータ機能では、アクセラレータ・コヒーレンシ・ポート (ACP) を使用してメモリのコヒー レンシを維持することも同様に極めて重要です。今日市販されている SoC FPGA のどの ACP も同じように作られているわけではありま せん。アルテラ SoC の ACP は、他社 ACP より広範なオプションとマスタを実装して最大の多様性と性能を提供します。 詳細情報 拡張カルマン・フィルタのリファレンス・デザインについては、 ア ル テ ラ の ウ ェ ブ サ イ ト (http://www.altera.com/literature/ds/ Extended_Kalman_Filter.pdf) をご覧ください。 コード内のホットスポットを FPGA オフロード候補として特定す るのに使用できる ARM DS-5TM Streamline プロファイリング・ツー ルや、FPGA の抽象化と並列化の実装に使用するアルテラ SDK for OpenCLTM など、アルテラ SoC FPGA にハードウェア・アクセラ レーションを実装するための開発ツールの詳細については以下関 連リンクをご覧ください。 ARM DS-5 Streamline: http://ds.arm.com/ja/ds-5/optimize/ アルテラ SDK for OpenCL: http://www.altera.co.jp/opencl 〒163-1332 東京都新宿区西新宿6-5-1 新宿アイランドタワー32F 私書箱1594号 TEL. 03-3340-9480 FAX. 03-3340-9487 www.altera.co.jp E-mail: [email protected] Altera Corporation 101 Innovation Drive, San Jose, CA 95134 USA www.altera.com 本資料に掲載されている内容は、製品の仕様の変更等により予告なく変更される可能性があります。最新の情報はアルテラ・ウェブサイトをご参照ください。 Copyright © 2015 Altera Corporation. All rights reserved. Altera, the stylized Altera logo, specific device designations, and all other words and logos that are identified as trademarks and/or service marks are, unless noted otherwise, the trademarks and service marks of Altera Corporation in the U.S. and other countries. All other product or service names are the property of their respective holders. Altera products are protected under numerous U.S. and foreign patents and pending applications, mask work rights, and copyrights. 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. January 2015 SS-01246/JP