3次元FPGAアレイVocaliseの回路構成方法 - 関根研究室 - 東京農工大学

社団法人 電子情報通信学会
THE INSTITUTE OF ELECTRONICS,
INFORMATION AND COMMUNICATION ENGINEERS
信学技報
TECHNICAL REPORT OF IEICE.
3 次元 FPGA アレイ Vocalise の回路構成方法
久保 泰正†
黎
江†
集
祐介†
小笠原
麦†
関根 優年†
† 東京農工大学 大学院 工学府
〒 184-8588 東京都小金井市中町 2-14-16
E-mail: †{kubo,lijiang,atsumari,ogasawara}@sekne-lab.ei.tuat.ac.jp, ††[email protected]
あらまし
制御用と演算用 2 つの FPGA を搭載した FPGA カードを多数組み合わせることで 3 次元 FPGA アレイ
HPC システム,Virtual Object by Configurable Array of Little Scalable Engine (Vocalise)を構築した.このシス
テムは 6 方向に直接接続する I/O を持っているため高速で通信が可能である.本報告ではこの Vocalise での回路書き
込み・通信・制御方法について述べる.更に Vocalise の適応例として画層処理回路などを構成しロボットに搭載する
応用例を示す.
キーワード
Vocalise,3 次元 FPGA アレイ,Reconfigurable HPC
The Circuit Configuration method of 3D FPGA-Array System
“ Vocalise ”
Hiromasa KUBO† , Jiang LI† , Yusuke ATSUMARI† , Baku OGASAWARA† , and Masatoshi
SEKINE†
† The Graduate School of Engineering, Tokyo University of Agriculture and Technology Naka-Chou 2-24-16,
Koganei-Shi, Tokyo, 184-8588 Japan
E-mail: †{kubo,lijiang,atsumari,ogasawara}@sekne-lab.ei.tuat.ac.jp, ††[email protected]
Abstract We have been developing the 3D FPGA-Array HPC system named as“ Vocalise(Virtual Object by
Configurable Array of Little Scalable Engine) ”that is composed of large numbers of the FPGA card which has
controller FPGA and processing FPGA. This system has 6 I/O terminals for connecting each other in 3 dimensional
formations. Therefore, this system enables to achieve high speed communication among FPGAs in the FPGA
arrays. We present communication and cotrol system. Furthermore, we show how to implement image processing
circuit within“ Vocalise ”for the robot.
Key words Vocalise,3D FPGA-Array,Reconfigurable HPC
1. は じ め に
ray of Little Scalable Engine)と呼び,その研究を行なってい
る.Vocalise は 2 枚の FPGA カードを搭載した hwModuleVS
現在多方面で利用されている HPC(HighPerformanceCon-
と呼ばれるカードを 3 次元方向に積層することで構成されてい
puting)は汎用プロセッサ(CPU)を複数搭載したノードを並
る.計算用途により,積層する hwModuleVS の枚数を変える
列に動作させるクラスタ型が主流である.この方式は多用途で
ことで任意の規模のシステムを構築することができる.最大規
ある一方,計算用途によっては演算速度や消費電力の面で非効
模は 4 × 4 × 8 の計 128 枚となっている.
率となる.そこで汎用プロセッサに変わり GPGPU(General
FPGA をシステムとして用いる際,開発時間の長さが欠点と
Purpose computing on GPU)や ASIC(Application Specific
して挙げられる.そこで我々は hw/sw 複合体を提唱した.こ
Integrated Circuit),FPGA(Field Programmable Gate Ar-
れはハードウェアをソフトウェアのオブジェクトとして捉えて
ray)等を用いた HPC が提案されてきた.
強調動作させることで双方の利点を活かすシステムである.こ
我々の研究室では回路を自由に設計でき,再構成可能な特長
を持つ FPGA を利用した ReconfigurableHPC を構築した [2].
このシステムを Vocalise(Virtual Object by Configurable Ar-
の hw/sw 複合体を HPC システムにも用いることで効率よく
開発を進めることが出来る.
本研究では 3 次元 FPGA アレイ HPC システムである Vo-
—1—
calise システムを構築し,プラットフォームとしての利用を考
えた.また,Vocalise のスケーラブルな特長を利用したロボッ
トのサブシステムとの連携も行なっている.
2. hw/sw 複合体
2. 1 hw/sw 複合体の概要
hw/sw 複合体とは,HostPC と FPGA や SDRAM,PCI バ
スを搭載した hwModule ボードにより構成されるシステムで
図 2 hwModuleV2 の外観.
ある [1].FPGA で処理されるオブジェクトを hwObject 呼び,
ソフトウェアのオブジェクトの一部として HostPC 上で扱うこ
とが出来る.hwObject は hwNet と呼ばれる仮想回路として
FPGA 上に実装される.hwModule ボードの SDRAM や PCI
バスの制御を行うための InterFace(I/F)回路と hwNet は分
離されているため(図 1),設計者は hwNet の中身を変更する
だけで任意の回路を実装することが出来る.
また,I/F 回路と hwNet は FIB(FPGA Internal Bus)と
呼ばれるバスプロトコルを設けることで,異なる hwModule
ボードを利用する場合でも hwNet と外部との通信は同様なも
図 3 hwModuleVS の外観.
のとなるように設計されている.hw/sw 複合体では設計コスト
がかかるハードウェア設計を,hwNet の設計に絞ることでコス
トの低減を行なっている.
とならないように設計されている.
Vocalise の制御は HostPC に搭載した hwModuleV2 または
hwModuleVL から行うが,本研究では hwModuleV2 を利用
した.
3. Vocalise
3. 1 Vocalise の概要
hwModuleVS を 3 次元方向に多数接続した Reconfigurable
HPC を Vocalise と呼ぶ.hwModuleVS の枚数は演算規模に
図 1 hwNet 概要.
合わせて任意に変更できるスケーラブルな設計となっている.
Vocalise の制御には HostPC に搭載された hwModuleV2 と
2. 2 hwModule ボード
hwModuleVS を 4 枚並べた BridgeVS を用いる.HostPC か
hw/sw 複合体のプラットフォームとして hwModule ボード
ら Vocalise までの構成を図 4 に示す.
を開発し利用している.hwModule ボードには hwModuleV2
(図 2)や hwModuleVL,hwModuleVS(図 3)などがある.
hwModuleV2 及び hwModuleVL は HostPC と PCI バスを介
して接続できる FPGA ボードであり,基板上には FPGA(Xil-
inx XC3S4000),SDRAM(16MB),外部入出力コネクタが搭
載されている.更に,hwModuleVL には USB ポートや LAN
ポートが搭載されている.
hwModuleVS は PE ボードと Sub2 ボードという 2 枚の
FPGA ボードにより構成されている.PE ボード状の FPGA
には hwModuleV2 と同種の FPGA を搭載しているので,hw-
ModuleV2 用に作成した hwNet を hwModuleVS でも利用する
ことが出来る.Sub2 ボード上には FPGA(Xilinx XC3S700A)
が搭載されており、PE ボードの制御や隣接する hwModuleVS
とのデータ通信を担っている。また,hwModuleVS は 3 次元 6
図 4 Vocalise の構成.
方向の外部接続端子を装備しているため,複数の hwModuleVS
を直接繋ぎ合わせることで 3 次元アレイを構成することが出来
Vocalise は VC bus(Vocalise Communication Bus)と VI
る.直接接続することにより外部 I/O の帯域幅がボトルネック
bus(Vocalise Internal Bus)の 2 つのバスを用いて通信を行
—2—
う.また,Vocalise 内の各 hwModuleVS には【BridgeVS 内の
しデータの設定完了を SRDY で通知する.
固有 ID(0∼3)】-【BridgeVS から見た列数(0∼3)】-【各列
内の何番目か(0∼7)】という規則で固有のアドレスが割り振
られている.VC bus は hwModuleV2 から BridgeVS を通じ
て各列の hwModuleVS へ接続されている.そのため VC bus
を用いることで Vocalise 内のどのボードにも通信をする事がで
きる.VI bus は hwModuleVS に搭載された 6 方向の外部接続
端子を利用して,隣接する hwModuleVS との通信を行う.
3. 2 VC bus
3. 2. 1 仕
様
VC bus はアドレス・データ共有線 32 本,制御線 6 本,ク
図 6 VC bus の WRITE 時の動作.
ロック線 1 本の計 39 本により構成されたバスである [5].VC
bus を使用する全ての回路がマスター・スレーブの両機能を持
3. 2. 2 VC bus コマンド機能
ち同一バス上のあればどのボード同士でも通信が可能である.
VC bus を多様なモードで利用するために,A/D 線でアドレ
図 6 に VC bus を用いて READ 動作を行った時の波形を示す.
スを送る際,上位ビットを用いてコマンド機能を実装した(図
また,以下に VC bus の各信号の詳細を示す.
5・図 6).コマンド機能には,通常転送モード,SDRAM 読
み書きモード,HostPC のソフトウェアから制御を行うための
モードの 3 種類がある.
3. 2. 3 バースト転送
今までの VC bus の仕様では MRDY 信号と SRDY 信号は
データ毎に一回ずつアサートとディアサートを繰り返さなけれ
ばならなかった.データを高速で転送するために,MRDY 信
号と SRDY 信号をアサートしたままデータを転送するバース
ト転送機能を追加した.
3. 3 VI bus
図 5 VC bus の READ 動作時の動作.
VI bus は hwModuleVS の外部接続端子を利用して隣接ボー
ド間の通信を行うためのバスである.このバスは片方向通信,
CLK クロック線
半二重通信,全二重通信の 3 つの通信モードがある.片方向通
REQ 送信先までの VC bus 仕様権を得る際にマスター側が
信では動作周波数が 133[MHz] で,通信速度は 4.256[Gbps] に
アサートする信号
達することが確認済みである.
ACK VC bus の使用が可能となると BridegeVS によりア
3. 4 BridgeVS
サートされる信号
HostPC と Vocalise の仲介と,Vocalise の制御を行うのが,
SEL VC bus の使用権を得ている間にマスター側がアサート
BridgeVS である.BridgeVS を構成している hwModuleVS の
する信号
内部には Vocalise 内のすべての hwModuleVS を制御できるよ
MRDY データ転送時にマスター側がアサートする信号
うな Arbiter 回路と Selecter 回路が搭載されている.また,一
SRDY データ転送時にスレーブ側が MRDY を受信したこと
つの hwModuleVS は HostPC からのバス,Vocalise からの 4
をマスター側に通知する信号
つのバス,隣接ボードからの 2 つのバスの計 7 つの VC bus を
FRAME アドレスデータ線においてアドレスを出力する際
制御している.BridgeVS は同時に複数の VC bus をブリッジ
にマスター側がアサートする信号
することも可能である.
A/D アドレス・データ共有線
BridgeVS は各方向から REQ 信号が来るとアドレスの確認
図 6 に WRITE 動作時の VC bus の動作を示し,マスター
を行い,転送先の VC bus の状況を確認する.目的の VC bus
側が VC bus を利用した場合の動作を説明する.まず他のボー
が利用可能であれば,ACK 信号を返して,マスターとスレー
ドがすでに REQ 信号,SEL 信号をアサートしていないかの確
ブの VC bus のブリッジを行う.
認を行う.アサートしていなければ REQ 信号と FRAME 信
3. 5 Vocalise のコンフィグレーション
号をアサートし A/D 線にアドレスを出力する.アドレス先の
3. 5. 1 回路書き込み
VC bus が占有可能であれば BridegeVS より ACK 信号がア
第 3. 2 節で示した VC bus は Vocalise 内の FPGA をコン
サートされる.これを受けてマスター側は SEL 信号をアサー
フィグレーションする際 Configuration bus として動作する.コ
トする.書き込みデータの設定完了を通知するか読み出しの要
ンフィグレーション方式として SelectMAP 方式を採用した [3].
求を MRDY を用いて行う.指定したアドレスが割り振られた
FPGA のコンフィグレーションの順番は次のようになる.
ボードのスレーブ回路が書き込みデータの受信完了又は読み出
—3—
( 1 ) HostPC に搭載された hwModuleV2 または hwMod-
uleVL
御するためのモジュールである.
ConfigurationController
( 2 ) BridgeVS の hwModuleVS-Sub2 ボード
hwModuleV2 から Vocalise 内の hwModuleVS のコンフィグ
( 3 ) BridgeVS の hwModuleVS-PE ボード
レーションを行うためのモジュールである.
( 4 ) Vocalise の hwModuleVS-Sub2 ボード
VCus
( 5 ) Vocalise の hwModuleVS-PE ボード
VC busMaster,VC busSlave,HNIO,ConfigurationCon-
1 枚から 4 枚の hwModuleVS で構成された FPGA アレイをコ
troller を管理するためのモジュールである.
ンフィグレーションするのにかかる時間を表 1 に示す.なお,
ConfigurationSwitch
回路データをソフトウェアから hwModuleV2 の LocalMemory
PE ボードの選択書き込みを行うモジュールである.第 3. 5. 2
に格納するまでの時間は含めていない.Vocalise 内の Sub2 ボー
節に詳細を記す.
ドは直列に接続されているため,基盤の枚数と同じコンフィグ
3. 5. 2 選択書き込み
レーションプロセスを行う必要が有る.そのため,Sub2 ボー
Vocalise 内のすべての PE ボードにはアドレスが割り振られ
ド 1 枚につきコンフィグレーションに約 0.05[s] を要する.対
ているため,特定の PE ボードの回路のみを書き換えることが可
して,Vocalise 内の PE ボードはすべて Sub2 ボードを経由し
能である.Sub2 ボードに書き込まれる回路は図 7 の左下 Sub2
て並列に行われるため,コンフィグレーションにかかる時間は
Board と書かれている部分である.Host 側(BridegeVS 側)
hwModuleVS の枚数によらず約 0.2[s] である.
から送られてきたデータは「FDATA IOBUFController」に
バッファされる.隣接する VS へのデータは「BDATA IOBUF-
表 1 FPGA アレイの回路書き込み時間 [s]
1枚
2枚
3枚
4枚
Controller」へ送られ,PE ボードへのデータは「SIMDATA
IOBUFController」へ送られる.特定の PE ボードの回路を書
Sub Board 0.051 0.101 0.152 0.203
き換える役割は図 7 の「ConfigurationSwitch」モジュールが
PE Board
行っている.
「ConfigurationSwitch」は図 8 のような仕様となっ
0.201 0.201 0.201 0.202
ている.このモジュールの動作を説明する.
Vocalise を構成する回路を図 7 に示す.各モジュールの役割
を説明する.
図 8 ConfigurationSwitch の仕様.
( 1 ) まず,Vocalise 内の全ての PE ボードに同じ回路を書
き込む.その際,PE ボードのアドレスを Sub2 ボード側に送
信する.
( 2 ) Host から FRAME 信号をアサートすると同時に,書
き込みを行いたい PE ボードのアドレスを送信する.
( 3 ) Host はアドレスを送信し終わったと同時に FRAME
図 7 Vocalise を構成する回路.
信号をディアサートする.
( 4 ) Host により送られて来た PE ボードのアドレスを
VCBusMaster
VC bus を駆動するためのマスターモジュールである.FIB 規
則に則って他のボードと通信を行うことが出来る.
VCBusSlave
VC bus のスレーブモジュールで,アドレスが自分宛だと判断
すると自動的に駆動する.PE ボードにおいては SDRAM コン
トローラに接続されている.
HNIO
Sub2 ボードが確認する.送られてきた PE ボードのアドレス
は隣の Sub2 ボードへ送信する.
( 5 ) 自分の PE ボードのアドレスが送られてくれば,PE
ボードに SelectMAP 信号の PROG B 信号を送信して PE
ボードのコンフィグレーションを開始する.自分の PE ボード
のアドレスがなければ,PE ボードには何も信号を送らない.
( 6 ) 隣の Sub2 ボードも,終端の Sub2 ボードまで(4)と
(5)の動作を繰り返す.
HostPC のソフトウェアから hwModuleV2 や PE ボードを制
—4—
3. 6 動 作 試 験
3. 6. 1 VC bus の動作
HostPC に hwModuleV2 を搭載し,hwModuleVS を 1 次元
に 3 枚に並べたものを接続し,VCBbus の動作試験を行った.
図 5,図 6 の流れに沿って動作を行うことで,データのバース
ト転送・読み出しを確認した.また,選択回路書き込みも図 8
の動作を行うことで,3 枚あるボードの内,任意の PE ボード
を書き込むことが確認出来た.
3. 6. 2 hwModuleVL による動作
HostPC に hwModuleVL を搭載して hwModuleVS1 枚の回
路の書き込みを行った.hwModuleVL を用いた回路書き込み
回路の概要を図 9 に示す.
図 9 hwModuleVL を用いた回路書き込み回路の概要.
図 10 に hwModuleVL を用いた回路書き込みの動作(図 9
内の“ SelectMapOutput ”モジュールの動作)を示す.書き込
み方法は SelectMAP 方式に則っており,hwModuleV2 を用い
た場合とほぼ同じである.異なる点は回路データを HostPC の
MainMemory から“ CMPortControllerforSpConfig ”モジュー
ルまで渡す際に DMA(Direct Memory Access)を利用した点
である.
以下に動作の流れを示す.なお,今回は書き込み対象の Sub2
ボード及び PE ボードを 1 枚であるので,CSI B(Chip Select
Input)信号は常にゼロである.RDWR B(Read Write)信
号に関してもライト動作のみであるので常にゼロである.
図 10 hwModuleVL を用いた回路書き込み動作.
Power Up
hwModuleVS の電源を入れる.
Device Initialization
書き込みを行う Sub2 ボードに PROG B 信号をアサートする
と,Sub2 ボードから INIT B 信号がアサートされる.
Configuration Load
INIT B がディアサートされた後,回路データを 8[bit] で Sub2
ボード側に送信する.
Start Up
回路データを送信して 8 クロック以上経過後 Sub2 ボードから
書き込み完了の DONE 信号がアサートされる.
図 11
Sub2 ボードの書き込みが完了したら,同様に PE ボードの
ロボット全体図.
書き込みを行った.その結果正常に書き込みを行うことが出
来た.また,DMA を用いることで書き込みに要する時間が
ボットに搭載されたロータリーエンコーダからのパルスにより
hwModuleV2 の場合と比べて短縮することが出来た.
移動量を計算し,自己位置推定を行うことでフィードバック制
4. ロ ボット
御を行う.
アーム制御
4. 1 システム構成
アーム部分に搭載されたサーボモータを指定された目標角度
我々の研究室で並行して開発しているロボットは画像認識,
までになめらかに動かすための制御パルスを生成する.アーム
音声認識,音声合成,アクチュエータ制御などの研究の土台と
の先端には加速度センサが取り付けられており,センサが過大
なるものである.ロボットの全体図を図 11 に示す.システム
な値を出力した際,回避行動を取るようにしている.
構成は図 12 のようになっている.ロボットに統合するサブシ
画像距離計測
ステムは以下のようになっている [4].
画像距離測定はステレオマッチングを用いてカメラ画像から
移動制御
周囲の物体までの位置を検出する.左右のカメラ画像から中か
設定された目標座標に向かうように左右の車輪に接続された
らテンプレート画像との差分絶対値和が小さくなる位置を探し,
ステッピングモータを制御する.また,ロボットは内部に座標
その視差を元に物体までの動作を計測する.
系を持っており,自分の現在座標や目標座標の情報を持つ.ロ
画像特徴学習・認識
—5—
データベース
アクセス
中央制御
swObject
hwObject
hardware
ユーザー
アプリケーション
(ロボット)
サブシステム
実装機能
(四肢制御)
専用回路
インタフェース
(移動制御)
専用回路
インタフェース
(アーム制御)
専用回路
(移動制御
回路)
専用回路
(アーム制御
回路)
実装機能
(画像認識)
ソフトウェア
処理
(条件分岐)
専用回路
インタフェース
専用回路
図 12
ソフトウェア
処理
ネットワーク
SSD
言葉
実装機能
(音声認識)
実装機能
(音声合成)
専用回路
インタフェース
専用回路
インタフェース
SATソルバ
インタフェース
専用回路
専用回路
ハードウェア
SATソルバ
●●●
実装機能
(行動計画)
ロボットのシステム構成.
ロボットに搭載されたカメラから画像を取得し,Wavelet 変
XC3S4000 では 2 層までの木構造型 SOM しか実装できないが
換を行う.画像認識は多重解像度解析とテンプレートマッチン
Vocalise に木構造型 SOM を構築することで階層数の制限を無
グを組み合わせ行う.低解像度画像のマッチングにより探索領
くすことが出来る.そのため,階層処理を大規模に行うことが
域の絞り込みを行い,高解像度画像では絞りこまれた領域に対
出来る.
してマッチングを行うことで演算量の削減を行う.画像特徴学
習は Wavelet 変換による多重解像度解析と,自己組織化マップ
を組み合わせた多重解像度木構造型 SOM を用いる.低解像度
から高解像度化するに従い,段階的に特長領域を絞り込んで学
習を行う.
Vocalise を用いることでロボットにサブシステムの統合を行
うことが出来ると考えられる.
5. む す び
本研究では,スケーラブルな Reconfigurable HPC である,
音声認識
Vocalise の通信・制御システム提案した.Vocalise の通信方式
音声認識は蝸牛内のリンパ液による音の減衰を Wavelet 変換
である VC bus は Vocalise 内のどの hwModuleVS 間でも通信
により模擬し,多重解像度化を並列に行うことで人間のような
を行うことができる.更に Vocalise 内の任意の PE ボードを選
聴覚処理を実時間で行う.このシステムは母音認識回路と子音
択して回路のコンフィグレーションを行うことができるため,
認識回路に分けて,その認識結果を合わせることで音素を特定
他の PE ボードが演算中でも回路を書き換えて利用することが
する.
出来る.
音声合成
音声合成はシフトレジスタ列により模擬された声帯・声道・
口腔に,空気の疎密波を模擬したパルス波を流し,音声合成を
シミュレートする.シフトレジスタを用いることで回路内で仮
想的に自然現象を再現し,物理的な値を元にすることでパラ
メータ調整を行うことが出来ると考えられる.
ネットワーク通信
ロボットがネットワークにアクセスできるように TCP/IP ス
タックを用いる.我々の研究室ではフルスペックの TCP/IP ス
タックをハードウェアで実現している.
動画像処理
ロボットが取得する映像をエンコード・デコード等の動画像
処理を行い,通信量を削減する.我々の研究室ではハードウェ
アによる動画像コーデックを用いることで実時間での動画像転
送を可能にしている.
4. 2 Vocalise へのサブシステム搭載
現在ロボットの運動制御のサブシステムがロボットに搭載さ
れた hwModuleV2 に実装されている.今後画像認識や音声認
識,音声合成機能を拡張するにあたって,FPGA 回路リソース
の数が hwModuleV2 のみでは足りなくなる.
画像特徴学習では木構造型 SOM の階層を増やすことで分類
これらの特長を用いることでロボットのサブシステム統合に
利用することが出来る.
今後の課題としては以下のものが挙げられる.
( 1 ) 遠距離 hwModuleVS 間の通信を行えるようにする.
( 2 ) 実際に Vocalise 内に画像認識回路を構成し多階層での
処理を行う.
( 3 ) Vocalise を 2 × 3 × 2 と小規模に構成しロボットのサ
ブシステムを構築する.
文
献
[1] 関根優年,佐藤季花,工藤健慈,田向権,
“ hw/sw 複合体,”第
21 回回路とシステムワークショップ講演論文集,pp.207-212,
April 2008.
[2] 飯島浩晃,佐藤一輝,関根優年,
“ FPGA アレイを用いたスケー
ラブルな Reconfigurable HPC,”電子情報通信学会技術研究報
告,Vol.107,No.418,pp.13-18,Jan 2008.
[3] 佐藤一輝,黎江,高橋健一,田向権,小林祐一,関根優年,
“ FPGA
アレイに実装するポアソン方程式と CIP 法演算回路の性能評価,”
電子情報通信学会技術研究報告,Vol.109,No.396,pp.19-24,
Jan 2010.
[4] 鈴木拓也,山崎優作,田向権,関根優年,
“ 移動型ロボットに統合
する知能処理回路,”電子情報通信学会技術研究報告,Vol.111,
No.399,Jan 2012.
[5] 集祐介,黎江,久保泰正,田向権,関根優年,
“ 3 次元 FPGA ア
レイ HPC システム Vocalise の性能評価,”電子情報通信学会
技術研究報告,Vol.112,No.321,pp.201-206,Nov 2012.
の精度を向上することが出来るが,その分回路規模を消費し
てしまう.hwModuleV2 に搭載されている FPGA デバイスの
—6—