[ 科学技術計算エンジンに使用するディジットシリアル浮動小数点演算器の開発 ]
多倍長演算器を構成するために word parallel ではなく、digit serial の演算器を作った。面積では圧倒的に小さくなるはずで、面積あたりの性能では、高精度の場合に DS な FP ALU のほうが有利になると考えられる。
作ったのはまず、 DS な integer multiplier と divider (これが一番大きな面積を占めるので)。 それを使って FP ALU を作った。デバイスは Rohm 0.18um.
面積あたりの FLOP 数は word parallel に比べてちょっと下がっちゃったが、まだ合成だけでレイアウトをしていないし、レイアウトをすれば word parallel が悪くなるかも。
10進演算器にも応用できる? (井口先生) → できると思うがまだ考えてません。
入力がすべてくるまで中の処理ははじまらない? (天野先生) → 指数部、仮数部、符号の LSB から入れるようにして、最初のデータがきたらすぐスタートするのだが、入出力に数サイクル掛かるのは仕方ない。
バレルシフタは所要サイクル数がデータに依存すると思うが、それによって性能が変わったりはしないの? → worst case に合わせて設計してあります。
乗算器は 1 クロックでやってるの? (泉先生) → DS でも word parallel でも、パイプラインにはしていません。
パイプライン化したらどうなる? → word parallel のほうは性能があがると思うが、入出力のポート数が少ないアドバンテージはかわらないので、そこはいいかなと。
消費電力が下がったりはしませんか? (梶原さん) → 検討させていただきます。
[ 粒度可変論理セルにおける入力粒度最適化の一検討 ]
熊大の学生さん。
VGLC (Variable Grain Logic Cell): ALU と LUT の hybrid cell.
VGLC は複数の BLE (Basic Logic Element) から成る。BLE は LUT と同等のランダムロジック表現と、misc logic という、より入力ビット数の多い (ただし論理関数空間のカバレッジが 100% ではない) 論理関数表現モードを持つ。
BLE の入力数 (入力粒度): ひとつの BLE に実装できる canonical form の入力数を変化させる。
たとえば、
入力数2: 2-LUT と同等の機能、4-misc logic まで実装可能
入力数3: 3-LUT と同等の機能、5-misc logic まで実装可能
のような感じ。
MCNC benchmark で評価。粒度を大きくすると当然使用論理セル数は減少するが、それ以上にセルの面積増加が深刻になる。また、あまり粒度を大きくしても論理セル数の減少は緩やかになって、悲しい。これは、入力ビット数が増えると misc logic で表現できる論理関数のカバレッジが急激に下がってしまうので使用される機会が減ることに一因がある模様。
でも、入力数の多い CF はメモリ使用率の向上に効く。
Elias Ahmed and Jonathan Rose: “The effect of LUT and cluster size on deep-submicron FPGA performance and density” (IEEE Trans. VLSI)という論文が要チェック。
BLE の粒度がかわると BLE の遅延が変わったりはしないの? (谷川先生) → すこしかわるけど、それほど大きく変化しないはず。
Misc と CF とどっちを優先して technology mapping する? (泉先生) → HeteroMap をもとに作っている。基本的に段数最適化。
[ 動的リコンフィギャラブルプロセッサ MuCCRA-2b の実機評価 ]
動作中の LSI は AC 成分がいろいろあるわけだが、テスタで測った電力はどれくらい正確だと思っている? (泉先生) → まあ、桁がわかっている程度かと
画像が乱れた、というのは目で確認している? → はい。いちおうロジアナでも見てますが。
複数PE分を時分割で emulation していて、配線相当分が入っていないと考えていいですか (梶原さん) → はい。でも、PE 内のは入ってます。
最高動作周波数は I/O が絡む形でやっている? (渡辺先生) → 実機評価ではメモリが外にあるので、I/Oも入ってます。FPGA の I/O 遅延も入ってしまうけど…
開発環境は -2 と -2b で同じ? (谷川先生) → 同じコンパイラで作って、(コンテキスト配送がいらないのでそこのところを) ちょっといじってる。
[ ソフトコアプロセッサの高信頼化に向けた三重冗長実装の一検討 ]
一宮さん@末吉研。
Permanent error: LUT, interconnection, RAM などで起きる SEU
Transient error: FF で起きる SEU
MicroBlaze を3つ並べて voter をつける。でも、voter をつけると CP が長くなるらしくて、2割くらい動作周波数が落ちるのと、メモリを3倍食う。
メモリは 3 つの MicroBlaze で共有することで解決するが、さらに 25% 周波数が下がり、オリジナルと比べると 41.5%…
性能を稼ぐためにキャッシュを使うアプローチも。BRAM をキャッシュとして使い、メモリは外部の DDR SDRAM. この場合は voter が DDR SDRAM コントローラの手前に入る。動作周波数はかなりいいが、SDRAM コントローラが大きいのが問題。
メモリは TMR で一番重要だと思うんだけど共有しちゃっていいの? (渡辺先生) → ECC とかあるので、いいかなーと。
SEU の試験方法に何かいいのはある? → bit file を壊してみるとか。
キャッシュを共有してvoter を入れる、というのはどうでしょう? (谷川先生) → MicroBlaze からキャッシュを切り離さないといけないので、ちょっと難しいかもしれません。
[ 書き換え可能ハードウェアを用いた体故障性能向上手法の研究 ]
山口さん。
(面白いネタをたくさん仕込むぜ!と意気込んでおられたのでばっちり録画しました。うひひ)
[ 再構成デバイス MPLD への組み合わせ回路マッピング手法の検討 ]
小田さん@広島市立大。
MPLD は他の PLD と基本構成が全然違うので、マッピングツールが必要。
コンフィギュレーションはメモリへの書き込み動作と同じなので、高速。
メモリとしても PLD としても使える。
基本要素は MLUT で、基本的には LUT と同じ機能で、DP-RAM の片方のポートをメモリ動作用、もう片方を LUT 動作用にしている。配線は固定されており、MLUT がスイッチにもなるようだ。
テクノロジ非依存最適化のところは design compiler で、2入力以下の素子しか使わないようにやる。テクノロジ依存のところ+配置配線は自前。
配線4のときは PCA の Plastic part だ! 1 bit adder とかシフトレジスタみたいに並べられるものはいいけど、配線のほうが大変じゃないかしら。論理を削減しようとして頑張っても、配置配線のほうがずっと重要になる可能性が高いと思います (泉先生) → 今回はそれほど詳しく説明してませんが、次回お楽しみに。
ひとつの MLUT のサイズは? メモリとして作ると、ある程度大きい方が効率がいい (井口先生) → 6 入出力対なので、2^6 x 6
実装例が adder とかなので、算術演算以外の (きれいじゃない) ものもやってほしい
かっこいいんだけど、配線が全部メモリを通るのはちょっと実用的にしんどいかもしれない (ふんがさん) → 実は検討してます。
あと、入出力の数が同じ、というより、入力のほうが多いのが自然かも。