More Related Content
Similar to 「招待講演:ACRi ルームの小さな FPGA ボードで何がどこまでできるか」 (20)
「招待講演:ACRi ルームの小さな FPGA ボードで何がどこまでできるか」
- 2. アウトライン
©︎ 2020 Adaptive Computing Research Initiative - ACRi 2
• 自己紹介 & ACRi ルームの紹介
• ACRi ルームの Arty ボードが使えるようになるまで
• Arty ボードで何ができるか?
• Arty ボードでどこまでできるか?
- 3. 自己紹介
©︎ 2020 Adaptive Computing Research Initiative - ACRi 3
• 藤枝 直輝(ふじえだ なおき)
• 愛知工業大学 工学部電気学科 講師
• ACRi ルーム 副室長
• 主な研究テーマ
• 計算機アーキテクチャ
• FPGA応用
• 組込みシステム
• セキュアプロセッサ
FPGA を使って,
何か面白いことがしたい!
- 4. 自己紹介
©︎ 2020 Adaptive Computing Research Initiative - ACRi 4
• MieruPC プロジェクト(学生時代)
• ハードからソフトまで,中身が「見える」教育向け計算機
• なんだかんだで100台くらいは売れた
- 5. 自己紹介
©︎ 2020 Adaptive Computing Research Initiative - ACRi 5
出典: 燃やせ!工作魂──PCを“ゼロ”から作る「MieruPC」, ITmedia PC User,
http://plusd.itmedia.co.jp/pcuser/articles/1007/07/news073.html
藤枝
(当時25
歳)
東工大 吉瀬先生
(ACRi 代表)
- 6. ACRi ルーム
©︎ 2020 Adaptive Computing Research Initiative - ACRi 6
• https://gw.acri.c.titech.ac.jp/
- 7. リアル ACRi ルーム(in 東工大)
©︎ 2020 Adaptive Computing Research Initiative - ACRi 7
FPGA StarterBOX
Alveo アクセラレータを
搭載したサーバ(4台)
Arty ボード x 10~15を
搭載したサーバ(7台)
- 8. Arty サーバ
©︎ 2020 Adaptive Computing Research Initiative - ACRi 8
ドライブベイの
各スロットに Arty ボード
ケース上にも
Arty ボードが数台
- 9. Arty (Arty A7-35) ボード
©︎ 2020 Adaptive Computing Research Initiative - ACRi 9
• Digilent 社のエントリー向け FPGA ボード
• Xilinx Artix-7 XC7A35T 搭載
• 秋月電子で買うと ¥15,800
• エントリー向けとはいえ,
できることは多い
• ……というのが今日の話
画像出典: Digilent
https://reference.digilentinc.com/reference/programmable-logic/arty-a7/start
- 10. アウトライン
©︎ 2020 Adaptive Computing Research Initiative - ACRi 10
• 自己紹介 & ACRi ルームの紹介
• ACRi ルームの Arty ボードが使えるようになるまで
• Arty ボードで何ができるか?
• Arty ボードでどこまでできるか?
- 12. アカウント申請
©︎ 2020 Adaptive Computing Research Initiative - ACRi 12
• https://gw.acri.c.titech.ac.jp/wp/registration
• 利用規約の一読を
• ユーザー名には a-z, 0-9, _ が使用可能(ただし,先頭2文字は u_)
• ウェビナー参加者向けプロモーションコード
tryacri1127nf
- 13. 2種類のアカウント
©︎ 2020 Adaptive Computing Research Initiative - ACRi 13
• 予約システムのアカウント でサーバを予約して
• 利用環境サーバのアカウント でサーバを使う
gw.acri.c.titech.ac.jp
https
ssh
オンライン予約システ
ム
(OLB)
Webサーバ(WordPress)
利用環境の各サーバ
- 14. 予約システム
©︎ 2020 Adaptive Computing Research Initiative - ACRi 14
• 1枠3時間でサーバの予約ができる
• 1日の予約は2枠(現在,期間限定で4枠に増枠中)まで
• 【New!】 現在の時間枠も予約可能(10/26~)
- 15. 利用環境への接続
©︎ 2020 Adaptive Computing Research Initiative - ACRi 15
• gw.acri.c.titech.ac.jp に SSH 接続
• RDP のためのポート転送も設定する
• リモートデスクトップ接続で転送元ポートに接続
• 接続前にオプションを表示し,
ユーザ名欄に自分のユーザ名を入力しておく
- 17. アウトライン
©︎ 2020 Adaptive Computing Research Initiative - ACRi 17
• 自己紹介 & ACRi ルームの紹介
• ACRi ルームの Arty ボードが使えるようになるまで
• Arty ボードで何ができるか?
• Arty ボードでどこまでできるか?
- 18. Arty の主な構成要素
©︎ 2020 Adaptive Computing Research Initiative - ACRi 18
• FPGA
• Xilinx Artix-7 XC7A35T
• DRAM
• 256 MB @ 667 MHz
• microUSB ポート
• ボード内で JTAG,UART へ変換
• その他,スイッチや LED など
画像出典: Digilent
https://reference.digilentinc.com/reference/programmable-logic/arty-a7/start
- 19. FPGA
©︎ 2020 Adaptive Computing Research Initiative - ACRi 19
• Xilinx Vivado で開発
• ハードウェア記述言語 (HDL) で回路を記述したり
• 回路部品 (IP コア) を組み合わせてシステムを構築したり
• C/C++ で記述した動作を高位合成で回路に落とし込んだり
• 設計技法はさまざま
- 20. DRAM
©︎ 2020 Adaptive Computing Research Initiative - ACRi 20
• FPGA 内部の SRAM
• 高速・並列アクセス可能だが,容量が
少ない(Arty は約 200 kB)
• より多くのメモリ領域を扱いたい
場合は,外部の DRAM を使う
• DRAM コントローラ
• MIG (Memory Interface
Generator) IP コアを使う
画像出典: Thiem Van Chu, MIG を使って DRAM メモリを動かそう (4), ACRi ブログ
https://www.acri.c.titech.ac.jp/wordpress/archives/8036
- 21. microUSB ポート
©︎ 2020 Adaptive Computing Research Initiative - ACRi 21
• 給電,通信はすべてケーブル1本で
• FPGAへの書き込みおよびデバッグ(JTAG)
• PC との通信(UART)
• ボード上の変換回路がうまくやってくれる
(詳細は企業秘密らしい……)
- 22. スイッチ・LEDは……
©︎ 2020 Adaptive Computing Research Initiative - ACRi 22
• ACRi ルームでは直接触れることはできない
• かわりに,仮想 I/O (VIO) IP コアを使うと,
Vivado の画面から入出力を操作できる
- 23. 例: 真性乱数生成器 (TRNG)
©︎ 2020 Adaptive Computing Research Initiative - ACRi 23
• 電子デバイス等の物理的挙動を使って,予測不可能な
乱数を生成する回路
• 本質的に実機評価が不可欠
• 素子のアナログな挙動を利用するため,ディジタルの世界の
論理シミュレーションでは,出力の生成・評価ができない!
電子
デバイス
物理的挙動 ランダムな
ビット列
1, 0, 1, 1, 0, ...
※ FPGA における真性乱数生成器について,詳しくは ACRi ブログにて連載中
https://www.acri.c.titech.ac.jp/wordpress/archives/category/20q3-06b
- 24. 真性乱数の生成・評価回路
©︎ 2020 Adaptive Computing Research Initiative - ACRi 24
• 真性乱数生成器の改良に関する研究 (@ FPL 2020)
• https://github.com/nfproc/TC-TERO
• TERO(遷移効果リングオシレータ)とよばれる回路がベー
ス
• 以下の2つを同一の回路で行う必要がある
• 適切なパラメータの調査
• そのパラメータを使った乱数の生成
• リセット時の状態に応じて,モードを切り替える
• 手元の実機で検証するときにはスイッチを使っていたが……
• VIO を使えば ACRi ルームでも使える!
- 25. 生成・評価回路の全体像
©︎ 2020 Adaptive Computing Research Initiative - ACRi 25
• モード設定(MODE),パラメータ設定(SW),
リセット(RST)を VIO から操作する
真性乱数
生成回路
データ
変換回路
シリアル
送信回路
全体の制御回路
TXD
LED
MODE
SW
CLK
RST
- 26. VIO を使う
©︎ 2020 Adaptive Computing Research Initiative - ACRi 26
• VIO のインスタンスを設定してプロジェクトに追加
• 入出力ポートを VIO に接続するよう,記述を変更
※ VIO の使い方の詳細は,以下の記事で詳しく述べられている.
三好 健文, FPGA をもっと活用するために IP コアを使ってみよう (2), ACRi ブログ
https://www.acri.c.titech.ac.jp/wordpress/archives/43
- 27. VIO を操作する
©︎ 2020 Adaptive Computing Research Initiative - ACRi 27
• いつも通り FPGA に書き込む
• 自動的に VIO の操作に必要な .ltx ファイルも指定される
• Hardware Manager に VIO が追加されるので,
そこから入力の切り替え・出力の確認ができる
- 28. データ収集・集計のスクリプトを実行
©︎ 2020 Adaptive Computing Research Initiative - ACRi 28
• シリアル出力をファイルに保存
• ライブラリの都合上 Python 版を使う
• 保存したファイルを集計
• カウンタ値なら分布のチェック
• 乱数なら統計的な偏りがないかの試験実施
- 29. 得られた分布の例
©︎ 2020 Adaptive Computing Research Initiative - ACRi 29
• カウンタ値がほどよい分散をもつ
• 理論モデルとおおむね一致する
• 最下位ビット(=偶奇)を出力すれば,
ランダムなビット列となる
• ACRi ルームの Arty ボードでも,
手元の実機で行った実験と
同様の結果を再現できた!
- 30. アウトライン
©︎ 2020 Adaptive Computing Research Initiative - ACRi 30
• 自己紹介 & ACRi ルームの紹介
• ACRi ルームの Arty ボードが使えるようになるまで
• Arty ボードで何ができるか?
• Arty ボードでどこまでできるか?
- 31. 10年ちょっと前の低価格 FPGA
©︎ 2020 Adaptive Computing Research Initiative - ACRi 31
• Spartan-3E
• MieruPC で使用(2010年版では主に XC3S250E)
• システム全体でロジックのほぼ 100% を使用
Spartan-3E XC3S250E
≒ MieruPC 1個分
- 32. カタログスペックで比較……?
©︎ 2020 Adaptive Computing Research Initiative - ACRi 32
• 搭載されている論理素子の個数を比較
• Spartan-3E XC3S250E
• Artix-7 XC7A35T
型番 スライス [個] LUT [個] FF [個] ブロックRAM
[kb]
乗算器/
DSP [個]
XC3S250E 2,448 4,896 4,896 216 12
XC7A35T 5,200 20,800 41,600 1,800 90
2.12x ?
- 33. スライスの内部構造
©︎ 2020 Adaptive Computing Research Initiative - ACRi 33
• スライス1個あたりの LUT,フリップフロップ(FF)
• Spartan-3E はどちらも2個
• Artix-7 は LUT 4個,FF 8個
- 34. LUT の内部構造
©︎ 2020 Adaptive Computing Research Initiative - ACRi 34
• 1個の LUT で表せる組合せ回路
• Spartan-3E は4入力1出力
• Artix-7 は「6入力1出力」「5入力2出力」
「3入力1出力 + 2入力1出力」のいずれか
• スライスや LUT が指し示す回路は
世代により異なるので,単純比較は×
- 35. 例: Plasma
©︎ 2020 Adaptive Computing Research Initiative - ACRi 35
• MIPS ライクのオープンソースソフトプロセッサ
• https://opencores.org/projects/plasma
• MIPS I におおむね準拠,実質4段のパイプライン
• リファレンス設計が Spartan-3E 向け
Fetch
1
Fetch
2
Decode
Execute
Memory
(or WriteBack)
Write
Back
- 36. Plasma を Artix-7 向けに移植
©︎ 2020 Adaptive Computing Research Initiative - ACRi 36
• Plasma 付属のメモリコントローラ
• Spartan-3E のスタータボード向けに書かれている
• Artix-7 向けにはブロック RAM に置換
• ハードウェア使用量の評価には含めない
• 論理合成環境
• Spartan-3E: ISE 14.7
• Artix-7: Vivado 2014.4
• 昔取ったデータなのでバージョンが古いがご愛嬌
- 37. 評価結果
©︎ 2020 Adaptive Computing Research Initiative - ACRi 37
• スライス・LUT・FF の個数
• 最大動作周波数
• ISE ではツールによる見積もり(Fmax)
• Vivado ではタイミング制約を満たした最大値
対象 スライス [個] LUT [個] FF [個] 動作周波数
[MHz]
Spartan-3E > 1,648 3,295 439 35
Artix-7 457 1,655 430 59
1/3.61 1.7x
- 38. 総合すると……
©︎ 2020 Adaptive Computing Research Initiative - ACRi 38
• Arty では,おおよそ MieruPC 約7.7個分の論理を
実装可能(しかも速い)
型番 スライス [個] LUT [個] FF [個] ブロックRAM
[kb]
乗算器/
DSP [個]
XC3S250E 2,448 4,896 4,896 216 12
XC7A35T 5,200 20,800 41,600 1,800 90
単純比較で 2.12 倍 x
スライス1個が 3.61 倍効率的
(プロセッサを実装した場合)
- 39. まとめ
©︎ 2020 Adaptive Computing Research Initiative - ACRi 39
• ACRi ルームの小さな FPGA ボードでも,できることは
たくさんある!
• HDL,IP コア,高位合成などを用いた設計を修得できる
• 大規模な回路の実装が不要なら,研究にも十分使える
(アイディアで勝負?)
• ちょっとしたプロセッサなら,余裕で実装できる
• それでも物足りなくなったら……?
• Alveo を試してみる
• 用途に合った FPGA ボードを買って,手元で動かしてみる