Weitere ähnliche Inhalte Ähnlich wie FPGAって、何? (20) Kürzlich hochgeladen (10) FPGAって、何?2. このセッションの目的
FPGA(Field-Programmable Gate Array)は、論理仕様をプログラムす
ることで任意の論理回路を実現できる論理デバイスです
ディープラーニングやIoT等の分野で、FPGAの名前を聞いたことが
あるかと思います
そんなFPGAの特長や仕組み、設計方法、CPU・GPUとの違いなどの
解説を通して、FPGAとはどんなもので、どんなことが出来そうかを
少しでも知って頂けることを目標としています
1
4. 自己紹介
小松 豊彦 (こまつ とよひこ) ・ komat (こまっと)
組込系のソフトウェア技術者らしい
C#が好き
デジタルガジェット大好き
3
5. こんなニュースがありました
インテル、アルテラ買収で合意 -- 買収額は167億ドル [2015/6/1]
(※当時の相場で約2兆円)
https://japan.cnet.com/article/35065319/
インテル(Intel):言わずと知れた世界第1位の半導体メーカー
アルテラ(ALTERA):プログラマブルロジックデバイスの代表的企業
なぜ、インテルはこのような買収を行ったのか?
4
6. インテルのニュースリリース
インテル コーポレーション、アルテラの買収を完了 [2015/12/28]
https://newsroom.intel.co.jp/news-releases/%E3%82%A4%E3%83%B3%E3%83%86%E3%83%AB-
%E3%82%B3%E3%83%BC%E3%83%9D%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%80%81%E3%82%A2%E3%83%AB%E3%83%86%E3
%83%A9%E3%81%AE%E8%B2%B7%E5%8F%8E%E3%82%92%E5%AE%8C/
インテル コーポレーション 副社長 兼 プログラマブル・ソリューション事業本部長
ダン・マクナマラ氏のメッセージより:
『アルテラの業界をリードするFPGA技術や顧客サポートと、インテ
ルの世界レベルの半導体製造技術を組み合わせることで、顧客はこれ
までにない性能と電力効率を兼ね備えた次世代の電子システムを構築
することができます』
FPGA技術の可能性は計り知れない?
5
7. 一方、マイクロソフトでは
The moonshot that succeeded: How Bing and Azure are using an AI
supercomputer in the cloud [2016/10/17]
https://blogs.microsoft.com/ai/2016/10/17/the_moonshot_that_succeeded/
“A team of Microsoft engineers and researchers, working together, has created a system
that uses a reprogrammable computer chip called a field programmable gate array, or
FPGA, to accelerate Bing and Azure.”
『マイクロソフトの技術者と研究者は共同で、BingとAzureを加速させるために、
FPGA(field programmable gate array)と呼ばれる再プログラミング可能なコンピューター
チップを使ったシステムを開発した』
FPGAを使ってそんなことも出来る!
6
12. Microsoft Project Brainwave
Microsoft unveils Project Brainwave for real-time AI
https://www.microsoft.com/en-us/research/blog/microsoft-unveils-project-brainwave/
データセンターのネットワークにFPGAを直結
超低遅延な処理が可能
搭載FPGA: Intel Stratix 10 TX
100G Ethernet MAC Hard IP
Quad-Core 64bit ARM Cortex-A53
PCI Express (Gen3, x16) Hard IP
11
13. おいくら?
数百円~数百万円
Intel Stratix 10 GX [1SG280HU3F50E2VGS1] ※2,753,000LE, サンプル品
https://www.altera.co.jp/products/fpga/stratix-series/stratix-10/overview.html
24,470.12 USD (2,895,057円) ※550万LEの最上位品だと一体いくらするんだろうか・・・
Intel MAX 10 [10M02DCV36C8G] ※2,000LE
https://www.altera.co.jp/products/fpga/max-series/max-10/overview.html
3.78 USD (447円) ※1個あたり。一括大量購入で単価は更に安価になる
※Digi Key調べ、2017/08/20現在
https://www.digikey.jp/
12
15. 論理ブロックの構造
LUT (Lookup Table)
任意の論理回路を表現
FA (Full Adder)
全加算器
演算や比較を行う
DFF (D Flip Flop)
データの保持
タイミングの調整
MUX (Multiplexer)
内部信号の選択
製品によって構成は異なるが、概ねこんな感じ
14
https://commons.wikimedia.org/wiki/File:FPGA_cell_example.png
19. CPU・GPUとのざっくり比較
FPGA CPU (GP)GPU
処理方式
フロー
ステートマシン
プログラム プログラム
同時処理数
論理ブロック単位
~数十万以上
スレッド単位
~数十
スレッド単位
~数百以上
演算機能
LUTによる論理回路
組み合わせ次第
整数・SIMD・
浮動小数点
整数・SIMD・
浮動/固定小数点
ハードウェアレベルの
スケーラビリティ
特に制限なし
1~4
同一製品に限る
1~3
同一製品に限る
特色
どんな演算や処理にも
対応・注力できる
最速ではないが
何でも演算出来る
大量の並列演算が得意
18
※同列で比較するのはフェアではない項目もあります
22. 設計手法の移り変わり
以前はハードウェア記述言語(HDL)で記述して設計することが殆どだった
HDL: Hardware description language
様々なモジュールをGUI上で接続するだけでSoCを構成できるソリュー
ションが登場
【例】Intel Qsys : システム統合ツール
https://www.altera.co.jp/products/design-software/fpga-design/quartus-prime/features/qts-qsys.html
SoC: System on Chip
最近は高位合成(HLS)によって、ソフトウェアで設計して、そのままハー
ドウェア化することも可能になった
HLS: High Level Synthesis
21
25. インタフェース設計・電力設計
信号レベル
CMOS, LVDS …
ピンアサイン
入力, 出力, データ, クロック …
プロトコル・タイミング
PCI Express, USB, Ethernet …
消費電力
論理規模や動作周波数によって消費電力が大きく変わる
24
FPGAを動かすには、FPGAをハードウェアに搭載す
る必要がある
搭載するハードウェアが既にある場合(メーカー製
の拡張ボード等)は、その仕様に合わせる。メー
カーが設計済みのデータを用意してある場合は、そ
れを利用する
ハードウェアをこれから作る場合は、搭載予定の他
のデバイスとどのように通信するのかを、把握して
おく必要がある
27. タイミング設計
データの伝達には時間がかかる (光速は超えられない)
同じデータでもビット毎に到達時間が異なる (スキューと呼ぶ)
どのデータがどんなタイミングで到達する必要があるのかを
予め設計しておく
論理合成時に、設計したタイミングで動作できるかを確認可能
必要に応じて、論理ブロックの配置を変更したり、
わざと遅延処理を入れたりして、タイミングを調整する
26
35. もっと手軽に試したい
開発ボードは各社から発売されている
Terasic DE0 nano (Intel Cyclone IV)
http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&No=593
開発ツールには無償版がある
Intel Quartus Prime Lite Edition (新しいデバイス向け: Cyclone IV~, MAX 10)
https://www.altera.co.jp/products/design-software/fpga-design/quartus-prime/overview.html
Intel Quartus II Web Edition (古いデバイス向け: ~Cyclone III)
34
Terasic DE0 nano
39. DE0 nano
マニュアルから必要な情報を読み取る
DE0-nano User Manualより
FPGA: Intel Cyclone IV EP4CE22F17C6N
コンフィグROM: EPCS64 (要Flash Loader)
緑色LED (A15ピン, Hレベルで点灯)
クロック発信器 (50MHz, R8ピン)
I/O standard 3.3V
38
40. 手順
New Project Wizard
FPGAは “EP4CE22F17C6”を選択。語尾のNは要らない。ここではファイルも追加しない
Pin Planner
“led0”と”clock_50”という名前のピンを、それぞれ”A15”ピンと”R8”ピンに設定。
Reserved列に信号方向を設定(それぞれOutput, Input)
“Create Top-Level Design File”で、Verilogファイル(.vファイル)を生成
生成されたVerilog ファイルにソースを追加
Compile
大量のWarningは気にしない。TimeQuestがどうのこうの出てくるのも気にしない
Programmer
FPGAに直接書き込んでも動作する (ただし書き込んだデータは電源オフで消える)
LED1~8がほんのり点灯するが、問題なし (未使用ピンがweak pullupされるため。本来ならLレベルにすべき)
39
41. Lチカのソース(追加部分)
// {ALTERA_IO_BEGIN} DO NOT REMOVE THIS LINE!
output led0;
input clock_50;
reg led0_reg = 1'b1;
reg [31:0] counter = 0;
assign led0 = led0_reg;
parameter COUNT = (50000000 / 2) - 1;
always @(posedge clock_50) begin
led0_reg <= (counter == COUNT) ? ~led0_reg : led0_reg;
counter <= (counter == COUNT) ? 0 : counter + 1;
end
// {ALTERA_IO_END} DO NOT REMOVE THIS LINE!
40
この部分を追加する
42. 参考文献・リンク集
FPGAの原理と構成 (天野英晴 著、オーム社 刊)
http://shop.ohmsha.co.jp/shopdetail/000000004588/
高位合成について思ったこと
http://nahitafu.cocolog-nifty.com/nahitafu/2015/09/post-912f.html
Inside the Microsoft FPGA-based configurable cloud
https://azure.microsoft.com/en-us/resources/videos/build-2017-
inside-the-microsoft-fpga-based-configurable-cloud/
41
45. 参考文献・リンク集(つづき)
Intel MAX 10
https://www.altera.co.jp/products/fpga/max-series/max-
10/overview.html
改訂 入門Verilog HDL記述 (小林 優 著, CQ出版社 刊)
http://www.cqpub.co.jp/hanbai/books/33/33981.htm
Open Cores
https://opencores.org/
※オープンソースのハードウェアIPコア
44