アルテラ 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