RECONF Jan.25, 2012

午前中は農工大セッションだな… 関根先生の学生さんがメイン。
[WEBアプリに用いるFPGA用IP:TCP/IP回路]
ICMP と、TCP の MSS とか window scaling とか timestamp を実装。
TCP stack はSPARTAN-3 で 4598 slices か。
CardBus の FPGA Card に載ってるとかかっこいい。
TCP再整理 (到着パケットの並べ替えってこと、だそうだ) をやっているのはうちだけ、とのこと。質問したらバッファはけっこう柔軟に制御している模様。なんかすげー
アプリケーションが FPGA 上の TCP スタックを使っているときに、CPU からも TCP スタックへアクセスすることができる仕組み。
TCP offload は普通 10G とかそういう速度がターゲットだけど、この研究の野望は何かありますか? → 高速性の追求より「大規模な論理回路でなにができるか」ということに興味を持っている、とのこと。
デモ動画を延々とみせながらしゃべる、というのが斬新でよいね。これはちゃんと練習している証拠。
[シフトレジスタを用いた音声合成回路における声道形状の決定]
波形レベルでの音声合成は不自然だったりいろいろ。
発声器官を論理回路で模擬したらもっとうまくいくはず。
声道形状をモデル化し、そのパラメータをレジスタに入れて・・・
シフトレジスタで進行波と後退波を動かす。この際にパルス密度で空気密度を表現することで1ビット幅で済ませている。進行波レジスタと後退波レジスタの途中にあちこち演算器が入っている仕組み。
X 線写真に基づいて作った。
演算は
– パルス分割=進行波と後退波を透過波と反射波に分割
– パルス合成=透過波と反射波の演算
– パルス反転=固定端だったり自由端だったり
いまのところあんまりいい結果になっていない。
– 高周波成分が多い
– 第2フォルマントの影響がない。母音が違うとスペクトルの谷があるのだが…
とのこと。周波数依存でエネルギーが減衰するような仕組みがないからだと考えている。FFT/IFFT でこの処理を追加したところだいぶ改善した。
FFT/IFFT の結果から共鳴とかそういう回路を追加していきたい。つまり、X 線写真だけじゃモデル化には不十分だったということだそうです。
使っているのは XC3S4000.
[子音・母音認識システムにおける音声前処理回路]
波形がフレーム内である基準値を何度通過したかをカウントする (ゼロクロス処理)。母音は定常波形、子音は非定常なので、これで判別できる模様。ピッチ周期は話者によって違うので、メリン変換 (Mellin Transform) というのをつかって正規化する。
このあたりをごりごりやってから Haar-wavelet やってテンプレートマッチング。
前処理を HW でやって、最後はソフトウェアで処理。
ゼロクロスとか、binary tree で合計の計算やるより FIR みたいに直列でやったほうがいいんじゃない? (Virtex のドキュメントとかに書いてあるよね) → 検討してないとのこと (ゲートたくさん使ってもいいや、と思ったので。あとレイテンシ命なので)
[同期シフトデータ転送による2次元アレイ型トラッキングハードウェア]
同期シフト伝送面白いな。
2次元アレイで他のモジュールのデータを参照するときに、全体で同期して同じ方向にデータを転送することで、配線や競合を削減することができる。直接伝送するのとちがって、途中で中継してもらわないといけないオーバーヘッドはある。
これで孤立点除去とかやるの。かっけー。
類似度判定とかは難しそうだなあ。その場合はヒストグラムをやりとりするのか。
ボトルネックになっているのは block module のなかの control processor とのこと。
[階層型画像特徴の学習機能を有する画像認識システム]
木構造型テンプレートを作ることによって顔画像を分類したり。
顔画像全領域でのテンプレートだと大変なので、特徴領域と非特徴領域を自動的に。
SOM か・・・
SOM は4層。それぞれ違う解像度で入れる。だんだん高解像度になる。
[Low area and high speed logarithmic converter for DSP applications]
No shown.
[分割MTMDDs for CFマシンについて]
MTMDDは多値決定グラフ的なもの。
遅くはなるけど節点数をがっつり節約できるので、分割しないやつでは表現できないものを表現できるようになる。
(ちょっと呼ばれて会場の外に出てました。ごめんなさい…)
多分岐命令と output 命令だけで動く。
MCNC89 benchmark で評価しているがもうちょっと実用的な方向にもっていきたい。合成ツールとか。
[優先度付きSMTプロセッサにおけるリアルタイム処理用IPC制御機構]
組み込みでも性能はほしいけど、SMT とか使うとリアルタイム性の保証がむずかしい。
– WCET 解析 (worst case execution time)
– IPC 制御 (instruction per clock を制御する)
Responsive multithreaded processor: 最大8スレッド、優先度つき
ソフトウェアで目標 IPC を設定して、制御周期ごとに調整する。
命令フェッチの制御だけだとリソース不足には対応できないから、中の優先度の制御もしないと。そこはハードウェアで。
優先度はひとつ上のレベルのものから借りることができる。
制御サイクルは 10k clock cycle 。
[ITRON仕様OSのマルチスレッドプロセッサ拡張]
[ 多電源可変パイプラインルータにおける電源ドメインサイズの解析 ]
DVFS は難しいよね。せいぜい隣接するルータを整数倍の周波数にするとか・・・(いや位相が・・・)
同じ周波数でパイプライン段数を変える。2 cycle mode と 3 cycle mode. でも、あんまりしょっちゅう変えるとかえって悪くなる。
NAS Parallel Benchmark.
性能は 2.1%悪化。電力は10%改善。面積は 14% だったかな?
ルータ単位ではなくて、入力チャネルごとに電源電圧をかえるとかをかんがえる。でもあんまり粒度こまかくすると大変じゃないかなー。
電圧下げたら wormhole から virtual cut through とかにする必要があるかもね、みたいなコメントも。
[インピーダンス・リコンフィギュレーションによる超高速信号の信号品質改善の提案]
10GHz だと波長は 1.5cm なので、LSI の中でもシグナルインテグリティでが問題になるぜ。
伝送路をいくつもの線幅の区間に分けて、うまく反射させてつたえる。SPICE にかけて GA で選択淘汰。
実機評価。1GHz でやるのは難しいので scale up 法。250MHz とか 500MHz で評価する。
10GS/sec の 2GHz オシロ。アクティブプローブ。
もう50Ω配線じゃだめなのか。
4GHz くらいまでいけそう。
コネクタではインダクタンスが入るので、そういうのも試してみる。いける。
クロック信号だけじゃなくて、インパルスを入れたときの応答をみることで、ランダム信号でもちゃんと eye が開く。
表皮効果で高周波成分が抜けて波形が丸くなるのを防ぐにはふつう pre-emphasis とか equalizer が必要。STL は反射波を重ね合わせてやるのでなかなかむずかしいが、反射端をつけたしてやることでかなりきれいな波形に。
すげえ・・・
SIP とかの短い伝送路でも使えますか? (山崎先生) → 実験用の基板はスケールアップ実験のために長くなっているので、基本的には短くてもいけるはず。波長の問題もあるけど、ミリ単位でも使えそうな結果が出ている。
動作周波数がアプリケーションで変わるような場合はどうですか? (関根先生) → トランジスタをつけて、キャパシタを on/off することでできる、ということはシミュレーションで試している。
一本の線を設計するのに数時間かかるのが問題だけど、まあ、だいじょうぶか。GA で2000世代くらい。
[トラフィック解析によるオンチップルータのバンド幅制御]
組み込みとかではヘテロ NoC も出てくるよね→通信量の偏りも起きるよね。
FPGA の long line みたいなのを入れるとかいう研究もある。
で、通信量が多いところはビット幅を増やすことにした。
異なるビット幅でも通信できたり VC のあたりをちょっといじったりしてルータを作ったよ。
太いところから細いところにいくのは気をつけないとデータ壊す。
Virtual cut through なのはなぜ? → wormhole だとビット幅がかわるところで詰まっちゃう可能性が高いっす。
static な解析ができるのなら VC の数を変えてどうこう、というの、できるんじゃないかと思いますので頑張ってください的なコメント。
[リコンフィギャラブルプロセッサSTPを用いた省電力ネットワークトポロジの高速近似解法]
トラフィックの集約によりルータを落とせるようにする。問題はネットワーク性能を維持しつつ最小の消費電力になるようなトポロジを見つける方法。
80ノード200リンクで20sec が目標だけど、いまのところ2分くらいかかってる。
STP (というか DRP) なつかしい・・・
トポロジは BRITE でつくった (waxman model).
ノード数が小さいと Intel のほうが早いけど、あんまり大きいとコンテキスト数がたりない。
VLANはりかえるのも大変だから20secあればあんまり早すぎてもしかたがなく、まあ充分、ということなのか。
[マルチメディア処理に向けたリコンフィギュラブルプロセッサの実現と評価]
reconfigurable processor で浮動小数点演算をやりたい。いいね。
16×16 のALU アレイが載っている。
正規化と丸めは、ちょっと大変だけど ALU アレイでやっつけることにした。
ALU ができる演算の種類を増やしたり、スイッチのところをちょっといじって、ビット分割 (sign, exponent, fraction) をやりやすくしてある。これにより、1ブロックあたりのconfiguration bitは43から73に増加。
で、こんどは書き込みが大変なので、複数同時書き込みしたりとか。なかなかいいですね。
FLOPS どんくらいになりそうですかね? (はまださん) → まだあんまりはっきりしていません。
可変論理部にはレジスタとかFFは? (わたなべさん@岡山) → ありますあります
[動的再構成可能なSU(3)スピン回路を用いたロボット制御中枢の設計]
ソフトウェアだけでなくセンサやアクチュエータを制御するハードウェアも更新しないと。
SU(3) というのは群論がベースだそうな。閉じたベクトル空間での回転を表す群として、リー群というのがある。状態機械も閉じた状態空間のなかで状態遷移するから似てる…と。
それでこれを使って状態遷移図が成長するようなのをやりましょうと。
なんかすげえな。
[移動型ロボットに統合する知能処理回路]
全体のいろいろ。音声合成とか顔認識はここにつながってたのか!

RECONF

[低電力アクセラレータCMA-1におけるウェーブパイプラインの適用]
CMA.
PE アレイは完全な組み合わせ回路。
データーフローはレジスタファイルのところで管理する。そこだけクロックが通ってる。
演算ごとにPEの遅延をモデル化してPEアレイの遅延を推定することでぎりぎりのタイミングを狙えるようにする。
電圧を落としたときの電力性能比を向上。でも電圧が上がるともったいない感じ。
早すぎるのも問題だったりするのか。
最小遅延と最大遅延の間でデータを受け取らないといけない。
[標準CMOSロジックプロセスで実現する不揮発性化した再構成デバイスの検討]
トランジスタの間をフローティングゲートにして標準 CMOS で作れる。むかしの IBM のえらい人が開発したらしい。書き込みには高電圧が必要で、読み出しのところにはアンプがいるみたい。
と思ったけどアンプは使えないので工夫している。おもろい。が、不揮発性メモリでトランジスタ2つで、追加のトランジスタが6つか・・・あれでも面積は 34% しかふえないの?
書き込み電圧はチャージポンプで内部に持たせてもいいんだけど、電圧とかの条件がまだよくわからないのでとりあえず外から入れることにした。
MPLD のアーキテクチャはおもしろそうだ。
[多電源電圧方式による動的再構成プロセッサの低消費電力化および電圧マッピング手法の提案]
High Vth と Low Vth の PE を半分ずつ。
Vdd は PE ごとに High / Low をえらべる。
SE は電圧固定。
Vdd はコンテキスト切り替え時になるべく変更しないようにしたい。
同じ演算でも Vth の違いで 3.5 倍くらい時間が違う。
Vdd 割り当てアルゴリズムでベストケースで 50% くらい電力を削れた。
[LUT間の入力共有に基づく小面積論理クラスタ構造の一提案]
ふつうの LUT と、Double Box (何本かの入力を共有するふたつの LUT) の混在するクラスタから成る FPGA に関する考察。MCNC で評価とってる。
なかなかおもしろい。
[自己組織化マップを用いたFPGA配置手法の提案]
SOM のサイズは 11×11 ノード。
FPGA のアレイサイズと合わせてある。
ベクトルの次元数はモジュールの数と同じ。
入力層は無向グラフとしたネットリスト。近接関係とか fanout を考えないといけないが…
出力層は配線構造。
ネットリストなので接続関係からくる距離にユークリッド距離が適用できなくて内積でやってる。
[ハードウェア設計のためのモデルコンパイラ開発と実証実験]
すみません、おじさんには UML とかわかりません。
[合議制アルゴリズムのアプリケーションを用いたリコンフィギャラブルシステムの評価]
弘中先生の所の RC-SYS をつかって、複数のアルゴリズムで connect 6 を解いてごりごり、というお話。
[動的再構成システムに迎えた部分再構成データの再配置に関する一検討]
Virtex-6 でもやっぱり再配置はむずかしいのか。
Proxy logic が場所ごとに違うのは厄介だな。
[マルチプロセッサ対応システムレベル設計環境SystemBuilderを用いたFPGA向け設計事例]
プロファイラをFPGA上にのっけたお話。
まあ外に引っ張り出すより中で監視した方がいいよね。いろいろ大変だけど。
効果的なSW/HW分割点をさがすのにべんり。
ハードウェアプラットフォームの依存性は理想的にはないんだけど、いまのところは Stratix II で動いている。glue logic のところを作れば移植できると思う。
[高速データバスに接続されたFPGAにおけるHWボトルネックを解消するための設計フレームワーク]
モジュール数を最適化してデータ転送が詰まるのを防ぐ。
XAPP1052 で PCIe transaction layer のスループットが測れるのか。
データ並列のところだけだとちょっとアレかなー という意見も。そうですね。
[リモートからのLUT書き換えによる動的部分再構成の基礎検討]
学生の時の研究であって会社の仕事じゃないそうです。そうだよね。びっくりした。
SRLC16E として LUT を書き換えるとかできるの?すごいな。
DP-DDI (データを直接回路化してパターン認識するやつ) に適用。
iPhone で LUT の中身を生成するとか新鮮だな。
組み合わせ回路でいろいろできるならこういうのたのしそう。
[動的再構成ビジョンチップアーキテクチャ上での並列テンプレートマッチング]
exact matching なのか。顔認識とかにはまだ使えない。
データも光で入れるのは楽しそうだなー、と。
[再構成型プロセッサDS-HIEにおける電力計測プログラムによる性能評価]
スマートメーター。ディジットシリアル。
平方根とか必要だと大変そうね。
[動的再構成可能ハードウェアを利用したパターンマッチング処理手法の提案]
セキュリティ。
NFA でマッチング。
DFA だと状態遷移表が爆発しちゃうんで。ただし、NFA でも正規表現をサポートしようとすると回路が爆発しちゃうので、正規表現は使えないとのこと。
[ダイナミックリコンフィギャラブルSTPエンジンを用いた適応型Viterbi復号器の設計と実装]
Viterbi の拘束長をビットエラーレートに応じて変更。
拘束長が長い方がスループット下がるの?そりゃそうか。
どうせ一度通信が途切れるんだから送信側より速く切り替えできてもしょうがないんじゃないかと思ったり。
[データを直接回路化したパターン認識装置の性能比較評価]
DDI. ソナースペクトル。消費電力とか。
DDI のいろいろがよくわかった。ふむ。楽しそうすぎる。
[FPGA によるSAT問題のプリプロセッサの実現]
SAT competition というのがあるのか。熱いな。
– 節の削除
– リテラルの削除
– 変数の削除
変数が何万とかあるのか…

ETNET Day 2

[ Virtual HILS – システム全体仮想化による、組込みソフト検証の高効率化 – ]
自動車の電子制御システム。
ECUの数は1台あたり100+台… CANとかで連携したりしている。
OSを載せることができないケースが多い (オーバーヘッドとかの問題) ので、通信、割り込み、制御を全部書く必要がある。テストが大変!
電子的モックアップを使ってやっている。実機 ECU, 実機バイナリ。メカ系のリアルタイムシミュレータに AD/DA がついたりしている。システムがでかい。これを全部がっつり仮想化する。
任意のところで内部状態が観測できるし、ドメインをまたいだ可視化ができる。かっこいい。
HILS が1500万円、VHILSは2000万円 (75%がISSの費用だけど…)。VHILS は実行時間が3倍かかる。
インタフェイスが CAN に限られているのでモデル化はそれほど大変じゃなかった模様だが、アナログの線が入ったらどうしようかなあ、とのこと。
ISS を自作すれば安くなるんだけど、詳細な CPU モデルが手に入るかどうかが問題で、Synopsys とかはそのへんを CPU ベンダから出してもらってやっているとのこと。あるいは CPU ベンダが出している ISS にラッパを噛ませる方法もある、とか。このへんがいろいろ大変そう。
[ ネットワーク混在型Cell/B.E.クラスタにおけるHigh Performance Linpackの性能評価 ]
Roadrunner は Inifiniband だけど、ケーブルが 1万+円 / m.
GbE と 10GbE の混在で安上がりにしたいぜ。
Blade のシャーシ内が GbE でシャーシ間が 10GbE。まあ、機材的にちょっとしょうがない。10GbE のスループットが GbE の 1.2 倍しか出ないのは謎らしい (もっと出ると思うんだけどなあ…) ジャンボフレーム使ってない、とかかしら?
10GbE をどれくらい混ぜると性能にどう影響するか、みたいなのを測定。
HPL 以外のはこれからやりたいと思っている。あと、自動チューニングですね。
[ キャッシュインジェクションを用いた受信キューのキャッシュ制御方式の提案]
IBM Power Edge of Network (PowerEN) を使っている。
FCI, UCI (仮名)が実装されている。
16コア。4コアずつで 2MB L2 を共有。
Host Ether Accelerator からキャッシュインジェクションできる。
プリフェッチとキャッシュインジェクションの組み合わせを提案・実装。
かなり効きます。むー。こういうの重要かもなあ。
Intel- Direct Cache Access (DCA)
NICからのメモリ書き込みに合わせてプリフェッチ。NICも対応している必要アリ。
これちょっとサーベイしよう。
[テスト工数配分方法の評価手法と組込みソフトの派生開発プロジェクトへの適用]
改変母体の過去の不具合が多いモジュールは
1. 改変母体のソースコードが複雑
2. 改変母体の仕様を記録したドキュメントが残っていない
3. 人的な (笑) 要因
なので、それをもとにしたやつを作る場合は頑張ってテストする必要がある、と。
テスト件数というのは手法によっても変わってくるのでは? → 最低の件数を決めたい
最終的に出てくるのが経験とか傾向のような内的なものになっちゃいがちなんだけど、たとえば日立さんのグループ全体とかをみたら一般化できないか?
etc.
[文書診断法の診断観点と指摘水準におけるコーディング規約の分析]
作業工程の成果物を測りたい。文書診断法。
コーディング規則を用いてプログラムの品質を評価できないかな、というお話。
機械処理ではない。
プログラミング教育に倣い、開発文書の書き方教育を整備。
システム開発文書品質研究会 ASDoQ を立ち上げ。
[テストプログラム生成ツールのフロントエンドプロセッサの開発]
きのうの RTOS の発表に関連した発表。
コード生成と前処理を切り離して、システムが変わっても簡単に対応できるようにする。あるいは担当者間でのばらつきを改称できる。
コード生成ツールが正しいコードを吐いているかのテストはどうするの?→テストケースの分だけはテストが必要です。
[Windowsヒューマノイド・ロボット・コントローラALICEの通信速度評価]
すみません、昼食から戻ってくるのが遅くなりました…
[MCAPIを用いた組込み向け耐故障分散共有メモリの実装]
SCASH なつかしい。
SCASH-FT (耐故障) を作ってる。
組み込み用のネットワークの PEARL (PCI Express Adaptive Link) に移植したい。既に MCAPI (Multicore Communication API) というプロトコルがその上で動いている。
[ユーザ空間の例外処理情報を利用した組み込みシステム向け例外処理実装方式の検討]
複雑なシステムになると watchdog timer による再起動はさすがにダメ。
try と catch みたいなのってお手軽にきっちりした例外処理を実装できる訳で、いいよね、というお話。ただ、いろんな言語が出てきちゃってるので統合するのはムズカシイよね…
[ 単一磁束量子論理回路のためのタイミング故障のモデル化とテスト手法の検討 ]
SFQ 回路。4K くらいで使うんだが、冷やす電気代を考えても消費電力的にお得って、すごいな。クロックツリー合成・自動配線・設計検証などの研究は行われている。今回は故障テスト。
信号伝達にはクロックとデータを同時にえいやっと送る模様。データのパルスとクロックの間のタイミングがあわないと誤動作。
浮動小数点演算器の設計例がでてた。遅延調整の素子がたくさん必要だとのこと。
クロックがデータよりも先に到着する(concurrent flow)とデータがクロックよりも先に到着する (clock follow data) がある。これふつうの半導体とはだいぶ様子が異なる印象。
[ 高速リアルタイムデータ収集用ネットワークレコーダの開発 ]
Virtex-5 FX + 6x10GbE + PCIe x16 + 2xDRAM 128MB + 8xSATA (SSD)
URL フィルタ (hash + binary search) とかを実装して記録したりすることができる。60Gbps で有害サイトフィルタとか :p
ハイスループットな実験の生データ記録とかにいいよね。
[ AFMを用いたネットワーク障害検知方法の検討 ]
drc/dst IP address, port, protocol とかをつかってフローを観測すると多次元解析で異常がわかるんじゃないか的発表。いや、気持ちはわかるけどそれリアルタイムにできるのか…
質問してみたところ、いちおう 10Gbps でも動いているのだそうです。
アイデアは面白いな。だが後出しジャンケンにならない(リアルタイムで検出ができるような)実装はムズカシイかもしれん。
[ 全画面やフレームレートという概念を排除した新しい表示方式の提案 ]
これちょっと面白い。うまく標準化できれば用途も開けそうだけど、どうなんかね。
FPGA のってるけど基本的には LVDS のインタフェイスとして使っていて、だいたいの処理は SH でやってるみたいだ。実装そのものよりプロトコルが問題のような。

ETNET Day 1

[ Soft Error-Aware Scheduling in High-Level Synthesis ]
– N冗長化 (時間的・空間的三重化とか)
– 面積・性能・信頼性の異なる複数種類の演算器を活用
task と agent の割り当て制限:
– task i はタイプが一致した agent j にのみ割り当てることができる
– task i はただひとつの agent j にのみ割り当てることができる
たとえばレジスタは大きな演算器より信頼性が高いと考えられるので、データの滞在時間を考慮しつつ総信頼性を最大化するように解く。
CPLEX で解くのか。ほっほー
レイテンシや面積の制約がきついときにいい感じだ。
瀬戸先生:
信頼性の値ってのはどういうこと? → ソフトエラーの確率。
違う種類の演算器の信頼性をかけ算するってのは問題ないの? → いまのところそれで問題ないと思っているがほかの方法を考えないといけないかも。
名古屋大学の先生:
システム全体の信頼性で考えたときに、使用頻度の高い回路と低い回路のそれを考慮しないといけないと思うのだが → (むむむ、ちょっとこれは議論がわからなかった…)
ライフタイム という言葉がキモな気がするんだけど、ちょっと難しい。
でも手堅くやっている印象。
[ インクリメンタル高位合成に向けた設計記述間差分の計算手法 ]
VDECの吉田先生。
高位合成だと自動生成された RTL が読めない・・・
ASIC 設計がやり直しになるケースは圧倒的に論理設計の問題が多い。ま、IR drop でダメとかも 15% あるそうで、ちょっと怖い。
高位記述間の diff をとりたい。
– でもシンボル名の変更とか難しい
– 最適化がいろいろ行われるのも問題・・・
– ダメ?
DFG になってからやる
– 最大共通部分グラフをみつける
– 大きいのはムリ
– ダメ!
というわけでまんなかでやりましょう。
– 中間命令列に変換してから差分を抽出。
– 列の間の差分計算なので、グラフ間より簡単で、 O(n log(n)) に落ちる
– 演算・制御フローを一貫して表現可能
– LLVM 内部表現を使う
– 弱点はグラフ間差分の方が小さいことがある
命令列の並びは変えずに、命令名 (シンボル名) を変更することで差分を最小化する手法。
1. 中間命令列に変換
2. 文字列比較 (つまり /usr/bin/diff) でがっつり
– 名前の再割り当て
3. 競合グラフをつくり、最大独立集合によって厳密解を求める
Cyneum というのを作っているそうだ。フロントエンドは LLVM.
IDCT コードでやってみた。行計算ループと列計算ループを入れ替えたりしても数秒で抽出してくれる。
NEC 若林さん:
これは loop unrolling とかしたあとに適応するの? → Yes
グローバルに名前をつけ直すんじゃなくて、ローカルに名前をつけてやればいいのでは? → basic block の形がかわっちゃっても追跡できたりするようにしたい。step 2 が網羅的なことを全然しないので、マッチする部分が山ほど出てきて効率が悪くなっているってこともない。step 2 でがーっとやって一気に絞り込むのが重要ということですね!
[マルチプロセッサ対応RTOSに対するAPIテストの実施]
名古屋大学には組み込みシステム研究センターがあるのか!
マルチプロセッサになると RTOS の自社開発をする会社が減っている模様。作るのが大変だから。でもそうするといろんなテストをしなければいけない。
TOPPERS/FMP kernel: iTron を拡張したやつ。プロセッサをまたいだAPIの発行 (ほかのプロセッサで走っているタスクにメッセージを投げる) とか、タスクのマイグレーション (ほかのプロセッサへ) ができる。
ターゲットシステムの要件(プロセッサ数とかロック方式)を入れると、テストケースを抽出してテストプログラムを作ってくれる。
ARMの命令セットシミュレータ SkyEye をマルチプロセッサ用に拡張して評価。
48 tests, 79 の不具合発見。実機でも評価。これはカーネルのプラットフォーム依存な部分の評価に必須。ロック周り・割り込み周りとかでの不具合が出てくる。
今後もテストスイートの開発をいろいろ。
確率的に起きる事象を拾えた、ということだが、タイミングを揺らすような工夫はなにか入っている? → シミュレータを使うと同期のタイミングを設定したりできるので、いろいろ(実機では起きないほどの)揺さぶりをかけることができる。
仕様をモデルを書いてテストケースを自動生成、みたいなことはしないのか? → RTOSの仕様を記号化して書くとか網羅的にやるとか、書くだけで死ぬし状態爆発が起きるし、むかしやって大変な目に遭われた方もいるので・・・ conformance test くらいが限度になっちゃう。conformance test を通っただけでは誰でもつかってくれないので、形式的テストでそれ以上のことをしたい。 → えーそこは納得しないけどありがとうございました (笑)
[マルチプロセッサ対応RTOS向けテストプログラム生成ツールにおけるプロセッサ間同期の実現]
同期をちゃんといれないと動くテストも動かんもんね。
うーん、しかし、なんか必要性とかがよくわからんかったなあ。まあ、こういうソフトウェア工学的なことは素人だからなんですけど。
[リアルタイム処理向けマルチコアタスク配置の評価関数設計]
SMP ではなく AMP (パーティション方式、つまり静的コア配置) が対象。
マルチコアにタスクを分散配置する問題はタスク数が増えると短時間で解を得ることが難しいNP困難問題。bin-packing 的にヒューリスティクスを使う手法は提案されている。この分野では基本的にタスクはその種類ごとに周期的に発生するもので、単発でぽっと起きたりはしないものらしい(まあ、制御だったらそういうもんか。)
タスク配置問題を解くためには、実用に沿った評価関数と、それを使った配置アルゴリズムの設計が必要。
評価関数3種
– 負荷バランス
– コア間依存
– Worst case response time (タスクセット内の各タスクの応答時間の累計値が極力小さくなるように配置: 適当に配置すると依存関係で待ち時間が発生しちゃう訳ですね)
評価項目3種
– コア間依存数
– 待ち時間率
– 不均衡率 (負荷バランスの偏り具合。0なら均等)
全般的に WCRT は有効。コア間依存でやると・・・依存はゼロになっちゃうけど、うわあああ、という結果。
NEC 若林さん:
コンパイルの時に静的に最適配置できないの? → リアルタイムなので、同じ優先度で依存のないタスクがかち合ったときにどっちが先に行くか、場合によって違うから
CPUの切り替えのペナルティとかは?レジスタの値を渡したりするのは大変ですよね → そこは実行時間に比べて充分短いという仮定でやっているんだけど、アプリケーションによって違ってくるから、今後やってみることが課題。
はなわさん:
2 core でやっているけど、4 core とかへ適用するのはどれくらい大変ですか? → 全く同じように適用できますが、やっていると依存待ち時間が長くなることがわかっているので、タスクセットの作り方とかを手直しすることが先かも。
[HW/SW Cosimulation framework based on software component system]
TECS.
HW のほうはどうすんだ、と思ったら ModelSim とか使うのか。
日立 八木さん:
基本的にふつうのCではなくTECSで書かれているものが対象ということでOK? → はい
どれくらい使えますか? → 動作合成ツールが対応している範囲ならそのままのコードで。
瀬戸先生:
TECS を使うとここを HW, ここを SW みたいなのや、どことどこを並列、というのは簡単に指定できるということ? → そゆことです。データ並列性を何分割するかとかは design property で指定できて、コードをいじる必要はない。
こういう環境は便利だと思うんだけど IDE 的な (デバッグとかの) サポートが必要で、でもそうするとコンポーネントの中で起きている何かが問題だったりすると思うけどどうしていったらいいと思うか → これから考えなきゃいけないんだけど、トレースを使えばまあ、どこで問題が起きているかある程度はわかります。
名古屋大 松原先生:
HW/SW mapping とかは、システムレベル設計ツールがやってくれることなんじゃないかなあ、と思っているんだけど、そういうツールがほしい入力を作るってことだよね → (質疑が追い切れませんでした。ムズカシイ)
[リアルタイムアプリケーション向けタスク処理定義可能なスケジューリングシミュレータ]
いろんなタスクスケジューリングアルゴリズムが提案されているがRTOSのほとんどは固定優先度スケジューリングしかサポートしていない。いろんなアプリに対していろんなスケジューリングを試したい。
従来のシミュレータは
– タスクのパラメータ (起動間隔や実行時間) が固定
– タスク内条件分岐、タスク間依存関係、割り込みなどの非同期処理が定義できない
などの問題が。できたとしてもマルチコアに対応してなかったりとか。
こういうのを一通りカバーできるようにした。
若林さん:
どれくらい強力? → ISSでの数時間がこれ使うと数分になる
スケジューラを作るひと・スケジューリングアルゴリズムを考える人のためのもの → Yes (松原先生焦る。アルゴリズムもアーキテクチャもシミュレーションなら動かせるので、設計の早い段階でいろいろ試せるようにしたい、ということだそうです)
[Android携帯端末アプリケーション向け消費電力プロファイリング手法]
Android アプリケーションのシミュレーションで消費電力を推定する。さらにメソッド単位で分割して。既存手法はDMMとか使うので大変。
OSから取得できるパラメータからの消費電力見積もり。
全体の消費電力と重回帰分析でつきあわせればバラせるのかな。
使ったリソース量をどうやって拾うかが問題。低レベル API にフックするか /proc を見るか。Android は VM で動いてるんで前者は案外楽勝らしい。無線通信とかのコストのメソッドへの割り振りはCPU時間でざっくり割っちゃう。/proc からどれだけ正確に拾えるかとか、オーバーヘッドはどれくらいかとか、ちゃんと検証している。低レベル API にフックするのはかなりオーバーヘッドがある。
ああでもまだ実装してないのか・・・
塙さん:
WiFi でも通信状況で電力がずいぶん変わってくると思うが。エミュレータというのはどのレベルのエミュレータ?消費電力とどうからむのかはエミュレータでわかるの? → WiFi ではある程度線型モデルだということを実験で確認している。3G ではムリムリ。
いやー通信量を実行時間で山分けにするのはいくら何でも乱暴じゃないか・・・
[無線によるユビキタス情報配信システムの設計・構築手法の検討]
むかしの実験で三条烏丸から三条寺町まで HTTP サーバつき WiFi / Bluetooth AP を設置したそうな。それにつなぐ端末をもって歩いてもらう実験。お店情報とかが降ってくる。
– 自立して動作して情報提供する多数のノード
– それに接続して情報を収集・加工・提示する端末
なわけだが、やってみるといろいろ保守が大変、と。でもなあ・・・べつに Linux 動いてるんだったら、一度動いてしまえばあとはまとめてネットワーク越しに管理すりゃいいんじゃないかと思うんだけどなあ… 壊れない限りはね。それに、なんかコンテンツを発信するのにわざわざAP設置しないといけないってどうなのよ?

FPT’10, Day 3

[Obstacle-free Two-dimensional Online-Routing for Run-time Reconfigurable FPGA-based Systems]
State-of-art “Bus Macro”.
Wire を予約しておいて使えるようにすればよい。
– Virtex-II and 4: soe restrictions in the switch
– V5: heterogeneous routing fabric (not very suitable)
– V6: suitable, but only very few wires available.
Virtex-II の実装例。
Register at input and output of wire.
Pong のゲーム本体と、入力用モジュールとかで実例を出している。
Suitable for lower throughput, but 100MBaud – 70 audio channels or 41 CIF video frames.
ああなんかこれは、計算とかじゃなくて、実用アプリにはいいのかも。
[The Effect of Multi-bit Based Connections on the Area Efficiency of FPGAs Utilizing Unidirectional Routing Resources]
聞き逃した…
[ATB: Area-Time Response Balancing Algorithm for Scheduling Real-Time Hardware Tasks]
これからは Dynamic Partial Reconfiguration が大事だぜー。
[Dynamic Scheduling Monte-Carlo Framework for Multi-Accelerator Heterogeneous Clusters]
去年 american option pricing using Monte-Carlo で FPT best paper を取ったらしい。
Collaborative FPGAs+GPUs+CPUs in a cluster.
dynamic sub-task scheduling.
example: GARCH asset simulation. 33.8x speedup. FPGA + GPU + 2 CPUs
うーん。これはよしみさんがやってたやつより偉いのだろうか(アルゴリズム的に)。よくわからん。

FPT ’10, Day 2

[ Keynote 3: Bringing FPGA Design to Application Domain Experts ]
Dr. James Truchard @ National Instruments
NI LabVIEW: Enable graphical system design & verification in engineering, what spreadsheet does in finance.
Mindstorm NXT から CERN の加速器まで設計できるぜ。
Long tail for real time application: low volume な real time app というのはたくさんある。High volume なものはがんばって作ればいいけど、low volume なものは LabVIEW で作りましょう。
Compact RIO, a LabVIEW FPGA module.
Re-use drives IP abstraction levels.
Upgrade to new FPGA, board, chassis.
IP Plug’n’Play is required to accelerate innovation.
[Technology Issues Facing the World’s Largest Integrated Circuits]
Stratix V は12.5Gbps とか 28Gbps とかでるぜ、というほかは特に目新しい話はないかな。100G Ether MAC が載るらしい・・・
TSMC 28nm process, Power budget 2-20W for high-end FPGAs.
おっと、programmable power voltage だと?
Quartus が自動的に電圧を設定するらしい。まじ?
Partial reconfiguration, based existing incremental design & floorplanning tools. Can be controlled by soft logic or an external device.
省電力化には High-K metal gate が効いているの?
[Floating-point exponential functions for DSP-enabled FPGAs]
FloPoCo のひと。
単精度ではうまくテーブル引きをやるトリックをつかっており、BlockRAMひとつ。倍精度でもアドレス9bit x データ95bit なので、36×512が3つですね。
The main messages of this talk:
– FPGA computing should be done the FPGA way and not by mimicking what processors do.
– Do I really need to compute this bit?
わは。
FloPoCo いいよね。
[Modular Design of Fully Pipelined Accumulators]
ふつうの accumulator というよりは、入力を並列にしてがーっとreduction演算する感じのやつ。前作は加算器カスケードになってる。これがちゃんとパイプラインで動くのはパズルだな。
いや、なんかちょっと理解できていない気がする。
[Efficient implementation of Parallel BCD Multiplication in LUT-6 FPGAs]
BCD2bin + binary mult + bin2BCD ではなく、そのまま。
1. 0-9 の数字を Y^U (0, 5 or 10) と Y^L (-2 -1, 0, 1 or 2) に recode して処理。
2. 部分積を計算
3. BCD carry-ripple adder で足しあわせる
これちょっとおもしろいな。1 と 2 はそれぞれ1ステージ。
ゆくゆくは FloPoCo に入れたいらしい。
[Lightweight DPA Resistant Solution on FPGA to Counteract Power Models]
Differential Power Analysis か。AES の例をだしてた。
– Random inversion against hamming weight model
— All intermediate results are randomly inverted
— requires 1 bit RNG
– Random register renaming against hamming distance model
[An FPGA-Based Text Search Engine for Approximate Regular Expression Matching]
Approximate regex match か。
string match では smith-waterman systolic cell とかがあるけど、regex の実装例はないらしい。
approximate で計算するために edit distance を使う。
DP のテーブルの横幅の分だけモジュールを並べるっぽいのだが大丈夫か・・・
# of cells limits the pattern length. Max pattern length is 250 on current FPGA.
[Real-time Detection of Line Segments on FPGA]
部屋の写真から部屋の全部の corner を検出したり、道路のセンターラインとかそういう要素をずばーっと検出したり。すげーよすげーよ。丸山研。
基本的なやり方としては、ELS (elementary line segment) を見つけて、それをずずずっと merge していく。
品質はどうやって検証して、どうやって「検出終了」と判断するのか?
[True Random Number Generation in Block Memories of Reconfigurable Devices]
Generic TRNG module: 512×36 BRAM で、write collision を起こす。
あーこれはかなりおもしろいぞ。post processing の方法にもよるんだけど、7Mbps〜105Mbpsのスループットが出る!
Ring oscillator なんかに比べるとかなりいいスループット。
Robustness も検証している。ランダム性のテストはエントロピーの分布でやればいいのか。
Placement が大事かも。大事?んー。大事だよなあ。かなり。

FPT ’10, Day 1

Friday pickup bus at 8:30.
[ Opening ]
– Received total 163
– Regular oral 32
– Special oral 5
– Poster 52
– Demo 9
– Accepted total 98
– JP submission 23, regular 6, poster 7, demo 1.
– Asia submission 63, accept 37
– Design competition: reversi opponent.
[ Keynote 1: Reconfigurable Computing – Evolution of Von Neumann Architecture ]
Prof. ShaoJun Wei at Tsinghua University.
修士をここで取ったあとベルギーで博士をとられて、いまは母校の講壇だそうです。かっこいい。
– Golden Moore: semiconductor, scaling-down rule
– Von Neumann: computer, Von Neumann architecture
Power density はだいたい一定のはずだったけど、プロセスの微細化が進むと急速に大きくなった。漏れ電流が無視できないから。Scale down が cost down であった時代も終わりつつあり、cost/gate は 32nm → 22nm では 3% しか変わらない。
Von Neumann architecture はいろいろ進歩したけど、instruction をとってきて operand をとってきて計算して store して、という Von Neumann bottleneck は本質的に解決していない。
これを解決するために datapath と controller を分けて、reconfigurable processor を作ればいいじゃないか、というお話。Operating system (マルチタスクが問題!), 高位合成から power gating まで…
Datapath のところは ALU array で、controller のところは RISC-based programmable FSM で作っている。
この手の dynamically reconfigurable array では design partitioning が重要。データパスを切り分けるときに気をつけないと deadlock したりする。
中国の半導体輸入量は 138 billion USD/year. まじか… 組み立てて再輸出する分とかも入っており、国内消費は 1/6 くらいっぽい。
[ Keynote 2: FPGA Platforms leading the way in the apps of ‘More than Moore’s’ technology ]
Dr. Ivo Bolsens, Senior Vice President and CTO, Xilinx.
Design cost challenge → チップを作ることはリスクを抱えること。
LSI まわりへの投資は急速に減っているみたい。
そうすると、従来の ASIC/ASSP と FPGA の application boundary が移動して、FPGA を使った方がいい範囲が広くなる。
More than Moore: stacked silicon interconnect.
– Chip-to-chip via standard I/Os and serdes: more gates but… 🙁
– Xilinx のアレは、silicon interposer の上に FPGA slice を並べて作っている。standard I/O で作るより性能面でずっと有利。Interposer は TSMC が作っている模様。
– Chip-package co-design. In-package power plane, on chip decoupling caps…
Programmable platform
– legacy: CPU – North bridge – south bridge – PCI – FPGA = I/O extension
– current: CPU- south bridge – PCI – FPGA = co-processing
– new: CPU – HT/QPI – FPGA = peer-computing (cache coherent!)
やっぱいちいち DMA とかごりごり書いてるようじゃ世の中変わらんかなあ。
[ An FPGA architecture supporting dynamically controlled power gating ]
University of British Colombia, Canada.
Turn off regions at run-time with on-chip control.
ASIC designers do this regularly.
But in FPGA:
– routing for control signals
– handling rush current in a programmable way.
ハイエンドの FPGA では電力がしんどくなってきている (絶対そうだよね) ので、なんとかしなければならない。
Proposed architecturea:
– Divide FPGA device into power-controlled regions
– Used general-purpose routing fabric for control signals
Logic block と routing channel (LB から配線にのせるところ) は power control ができる。スイッチは問題 (やってないっぽい)。
sleep transistor をどれだけの範囲で共有するか。範囲を大きくすれば面積は節約できるけど、大きくしすぎると設計が難しい。
Rush current: limit how much can be turned at once.
1) expose it to the user: usual ASIC way
2) expose it to the CAD tools
3) dedicated architectural support: i.e., programmable delay elements in turn-on circuits so they don’t turn on at once.
Current solution is (1).
評価はSPICEでやっている模様。
– Area overhead: static gating > dynamic gating by 33%, but less than 1% overhead compared to ungated version.
– Leakage: Dynamic gating &gt static by 11%. dynamic / static < ungated by 40+%.
– Delay overhead is 10%.
Isolation block が必要では? コストは計算に入っている? → 出力バッファのところでやっている。off にしたブロックの出力をごりっと停める (いいの?)
switch は? → 全面的な再設計が必要です。
[ A tiled programmable fabric for quantum-dot cellular automata ]
IIT Delhi の学生さん。量子ドットですって!?
4 quantum dots in each cell, 2 mobile electrons – binary 0, 1, NULL を表現。wire や各種のゲートが作れる。
クロックは 4-cycle で表現。
– LUTs, CLBs, Switches – NOT NECESSARY
– Selective clocking: let the unused cells relax
– Reduce defects: use clock based scheme
ああなんかわかった。ゲートも配線も同じ仕組みでできてるんだ・・・
programming / clocking のところがよくわからんとです。
シリコンでの実現まではどれくらいかかりそう?→まだけっこうね・・・
[ Phase-change-memory-based storage elements for configurable logic ]
Non-volatile FPGA is expensive… New technological opportunities?
Phase-change RAM principle:
– Material with 2 stable phases: polycrystal (high conductivity) and amorphous (low conductivity).
– requires heater electrode + contact
– non-volatile, small size, low delay and cost friendly!
書き込み時間は 50ns くらいかな。
面積は SRAM 115 > FLash 46 > PCM 30.
Area reduction up to 13%, delay reduction up to 51%!
PCM、つまりresistor memoryは4kΩだけど pass transistor なら9kΩ。抵抗が小さいから遅延も小さい。
製造のための具体的な問題はそれほどないらしい。
writing cycle が問題で、現状のSRAM cell のようには使えないので、Flash の代替として考えるのが正しい、とのこと。
[Dynamic Reconfigurable Bit-Parallel architecture for large-scale regular expression matching]
Yusaku Kaneta @ 北大院
Massive regex matching in apps such as NIDS (Network intrusion detection system) etc.
Static compilation approach: fast but hard to change regex in runtime.
Dynamic reconfiguration approach: suitable for dynamic reconfiguration, but worst-case performance is not guaranteed.
Proposal:
– Dynamic BP-NFA architecture
– Dynamic reconfiguration by bit-parallel NFA simulation
– Extended patterns
Dynamic BP-NFA on Virtex-5 FPGA.
- BP-NFA for string pattern: 54 slices, 2.9Gbps
– BP-NFA for extended patterns: 123 slices, 1.6Gbps.
– It’s FAST!
– Worst-case performance is GUARANTEED, while others are not.
– Fast reconfiguration.
すごい。
Can process 256 patterns in parallel.
[ Impact on Reconfigurable Hardware on Acceelrating MPI_Reduce() ]
Already implemented MPI_Barrier() in previous research and got promising results.
Testbed: Xilinx ML410 Board x 64 + bidirectional SATA cable.
PowerPC 300MHz + reduce core + 16 local link interfaces.
小さなメッセージがたくさん飛ぶような状況では commodity なクラスタより改善するとのこと。大きいメッセージの場合は RDMA が威力を発揮するから?
scalability が改善する点はよさそう。
[Accelerating HMMER on FPGA using Parallel Prefixes and Reductions]
Writing Virterbi and DP.
[Multiple dataset reduction on FPGAs ]
No shown?
[ Accelerating FPGA Development Through the Automatic Parallel Application of Standard Implementation Tools ]
Pain for large-scale FPGA implementations:
– No software-like linkage allowing concurrent module implementation
– Global implementation changes when adding or changing signal probe
– P&R algorithm is mostly single threaded and memory eating
Implement each major block as a partial module
– Simplified PR design flow without reconfiguration
– Automatic floorplanning, including bus macro insertion
モジュールごとに配置配線しておいて、くっつけるときは inter-module net delay だけ考えるのか。
自動フロアプランのところとか、かっこいい。
incremental design をうまく使って P&R にかかる時間とかかなり短縮される模様。
design verification とかも短縮できるよね!
[Parallelizing FPGA Placement Using Transactional Memory]
CAD の並列化は重要 – simulated annealing based placement
1. start with random placement of blks
2. randomly pick a pair of blks to swap
3. evaluate and loop
いろいろな trial があるわけだからそこは並列化できるよね。
Swap を accept するか reject するか、というのを、transaction を exec するか abort するかで表現できるといい感じ。
STM (software based transactional memory) has high overhead, but no HTM (hardware TM) yet.
– New software transactional memory (tinySTM)
– potential easier parallelization with TM.
– based on VPR (Versatile P&R) 5.0
– Platform: 8 CPUs
学生が1ヶ月でやってのけた。つまりわりと実装は簡単。P&R はリニアに速くなるけど QoR degradation がすごい (30%) 。abort rate も 60% と高い。
VPR 自体が途中でやりなおすためのコードをもっているので、そのあたりを改善したりしてみたところ、QoR deg worst 35% to 8%, avg 7% to 2% で、かなり改善。
[A Message-Passing Multi-Softcore Architecture on FPGA for Breadth-First Search]
Breadth-first search in graph.
global buffer と barrier sync が必要。ちょっとよくわからん。
[Deterministic Multi-Core Parallel Routing for FPGAs]
Routing を並列化するお話。
PathFinder: VPR と並んで Xilinx/Altera のベースになっているやつ。Maze routing を使っている。
1. Route all signals (allow shorts)
2. Increase penalties for shorts
3. Route all signals
3.1 rip-up and re-route next signal
3.2 update congestion
3.3 return to 3.1 if more signals remaining
4. return to 2 if shorts remain
– Fine-grained: maze routing of a single net in parallel
— using pthreads, parallelize calculation of forward cost & adding coresponding nodes to the priority queue
— for N procs, maintain N separate priority queues to avoid need of locks
– Coarse-grained: each node routes different net
— 3 のところがまるごと並列化されて MPI でつながる
Fine-grained は Core2Quad (FSB共有) では遅いけど Core i5 (L3 共有) ならいける。Coarse-grained ならどちらでも。
[The TransC Process Model and Interprocess Communication]
TransC language
– C-like
– Supports parallel processes: communication via data streams
– Multiple return values (!)
[Comparing Performance and Energy Efficiency of FPGAs and GPUs for High Productivity Computing]
いくつかのアプリケーションで比較評価してる。
FPGA で FFT やると速いな。flops/W は圧倒的。
Monte-carlo は FPGA のほうが GPU より速いっぽいんだけど、ううむ。どういうアーキテクチャでやってるか気になるぞ。
[Local-and-Global Stall Mechanism for systolic Computational- Memory Array on Extensible Multi-FPGA System]
東北大の王さん。
異なったクロックドメイン間の systolic array 状の PE たちを同期させるシステムの話。FIFO の empty 信号などから生成した local stall signal と、それを全部 or とった global stall signal を使う。

Design Gaia 2010, Day 3

[データを直接回路化したパターン認識装置の消費電力評価]
kernel法を使って確率密度関数でやる。かっこいい。
(メモとったのだけど、消してしまいました。。。)
[電力を再構成可能なFlex Power FPGAの低電力プロセスによる試作と評価]
static power は
– V5: 65%
– V6: 62%
– V7: 45%
くらい。
今回は低電力プロセスを使った Flex Power FPGA.
オフ電流の変化幅が大きい。high/low Vt 混在時のオフ電流削減効果の向上率が小さかった。
設計ツールはどうするの? → 配置配線のときに閾値をどうマッピングするかが問題。ツールは共同研究者が開発しております。
16ビットカウンタのどこがどれくらい電力を使ってるかという情報はある → ありません。
high/low Vt でスピードがかわるのとかはどう評価しているか → on 電流が減るのでそれでスピードが変わる。混在させた場合はそれを相殺できる。
[近磁界測定によるサイドチャネル評価実験]
暗号処理中の FPGA の電磁波チャネルからどのように情報が漏洩しているか?
放射電磁波のホットスポットは存在するか?
V5 に AES を載せて磁界測定。
まずは磁界強度マップを作る。それで、そこに磁界プローブを当てて測定。
ちゃんと10ラウンドの波形がみえる!
相関解析で鍵が破れてしまうことを確認した。
[ PCI-Expressに接続されたFPGAによる並列ループの効果的処理手法 ]
Impulse C を使って高位合成する人むけのやつ。
[確率密度関数の推定法とMIA成功率に関する一考察]
CPA: Correlation power analysis
MIA: 相互情報量
MIA でヒストグラム法、核密度推定法、最尤推定法。
CPA より少ない取得波形で鍵を導出しているが、波形数をふやしてもどうも収束しないっぽい。ビン幅やバンド幅をちょっと調整する必要があるかもしれません、とのこと。
[Performance Evaluation for PUF-based Authentication Systems with Shift Post-processing]
ふたたび堀さん。
物理的に複製不可能、というやつ。
39% の企業が、自社製品の偽物をみたことがある。
市場の 5% 前後の製品が偽物!? 特にチップが危ない。
biometrics な手法を用いてチップの個体識別。
False accept rate / false reject rate が問題。
ROC とか久しぶりにみたな・・・
[ TFT SRAMを用いた3D-FPGAの開発 ]
90nm CMOS + Cu9層まではふつうに作れる。そこに via を植えて、amorphous Si を載せて・・・普通にトランジスタを作る。位置あわせが重要。
TFT transistor の性能が問題。a-Si は mobility が低い。ライフタイムも。製造時に400度以上に持って行けないのもつらいよ。
でも configuration SRAM が逃げるのでだいぶチップが小さくなるし、いろいろプロセス上の制約があるけど所望の特性が得られている。量産時にはメタルマスクで作ったROMに置き換えることも考えられる。
FPGA だから読み出しの遅さがクリティカルパスになることはないと思うんだけど、リーク電流はどうでしょう (宇佐美先生) → 最終製品ではメタルにするので、そっちは問題ない。TFT のほうはまだ測っていないし、信頼性なんかでも不安が残るので出荷はまだ先かな。
FPGA のアーキテクチャは Xilinx 的なものですか (名古屋先生) → そうです。→ 写真で見えてる四角はなんでしょう → configuration SRAM のブロック? → 容量は? → 100k LUT で 22Mb かな。
[ Impulse Cを用いた車載向け低コスト顔向き認識システムのFPGAへの実装 ]
25fps 以上はいらない。とにかく低コストで。
TAT も短くしたいので、ImpulseC でやっている。
性能はまあまあだが Spartan3 には入らなかった模様。。。
インタフェイスのめんどくさいところを作るのを Impulse C に任せて中身の一部を HDL でごつっと書く、というやりかたもいいかな、と。
赤外線を使うのは画像処理にくらべてロバスト性が高く、コストが低いから。
[ FPGAによるデフォルト強度モデルの高速化 ]

Design Gaia 2010, Day 2

[ ダイナミック光再構成型ゲートアレイの動的部分再構成の性能評価 ]
渡邊先生のところの学生さん。
ダイナミック光再構成アーキテクチャにおける回折光の影響。
他のビットにいくはずの光が回折してきて記憶に影響を与えるかどうか。
バックグラウンド光が多くても 4.33s は保持できることを確認。悪くない、というか充分。
[ 3次元LSIチップ積層集積技術に期待されるシステム性能の向上 ]
Si貫通ビア。SIP とちがって I/O バッファや ESD 回路を介すことなく、ダイを積層することで SoC みたいなものを簡単につくれるといいいなあ。
消費電力平準化をしないといけない。熱応力とかの問題もあるかな?
ヒートスプレッダによるホットスポットの抑制。
インターポーザ (積層したチップの支持体) は 1um – 10um くらいの配線を使うけど、そのあたりの技術というのは案外いいものがない。感光性ポリイミドを使ってリソグラフィできれいに穴を作ったりできる手法を開発。
試作したやつは差動ストリップラインが載っていて、両端に 20um のパッドがついてる。膜圧をかえてふたつつくった。薄いほうはさすがに特性きついか。20Gbps の eye diagram はいい感じ。
インターポーザのもう一つの役割は電源供給。最近のは電圧変動マージンが小さいので、キャパシタ内蔵したりとかしておる。
ホットスポットを赤外線カメラでリアルタイムで観察したりとか。60fps でみてるけど、これは最終的に msec オーダーまで見られるようにしたい。これはクロックゲーティング云々というよりも、熱の拡散を考えると時間分解能としては msec オーダーということで。
インターポーザの中を差動にするのはなぜ? → インターポーザは外につなぐ役割が大きいので、内部で閉じるものはシングルエンドでいいかも。差動のドライバとかはインターポーザに入るのかな?
隣接する層だけを接続するとの、何層もぶち抜くものの製造上の違いとかはあるのか? → チップ裏面での配線は難しいし、結局のところあまり製造上の困難さはかわらないかも。バス方式のほうが使う側はやりやすいだろうと思っている。
TSV の長さは10層積んでも1mmくらい。
[疑似SoCを用いた異種デバイス集積ウェハレベルシステムインテグレーション技術]
東芝の山田さん。(がるしあさんではない)
インターポーザ上に CMOS, MEMS などいろいろ、プロセス互換性のないものを混載すると幸せになれる。だけどこれでは小型化に限界がある。
それぞれのウェハを検査したあと切り取って組み合わせて並べ直して樹脂でかためて (ウェハ再構築)、そのあとでさらに微細配線を行う。つまりダイの組み合わせとその間の配線だけ再設計すればいいわけですね。ウェハ再構築と、異種デバイス間配線が問題。
かっこいいぞこれ!
エポキシで固めるときは真空中でやらないといけないんだって・・・
樹脂とチップの膨張係数が違うので熱応力が怖い。エポキシに気泡が入ったりしてもヤバい。
エポキシ樹脂にはたくさん石英のつぶを混ぜており、これで熱応力を減らしている。
配線は line/space が 5um/5um, 2um/2um, 1um/1um など。できてる。
ベアチップで入手できない場合は外から買ってきたパッケージを切って入れる、とかもできちゃうのか・・・いいの?売ってくれなくなりそう・・・
SIPより高くつかない? → インターポーザがないので実は SIP より安く上がる可能性が高い。回路基板メーカーが生きていけるのは、インターポーザが高いから。
樹脂の部分に TSV を作って3次元化・・・
[FPGAアレイを用いた再構成可能なHPCシステムの評価および高位言語による回路生成]
CPU上で動作させる swObject
FPGA上で動作させる hwObject
hwObject は普通にライブラリとして呼べるのでコードを書く人はあんまり考えなくてもいい。
Impluse C vs 手書き。回路規模は 1.5 倍くらい?
自動生成される回路のインタフェイスはわりと簡単で、自分で書いたものとの組み合わせもできるらしい。
hw/sw のインタフェイスのところは作ったの?(みやじい)→通信ができることを確認した程度です→あとでやりかたをおしえてください
[Ethernetによる疎結合型FPGAクラスタシステムのためのOS機能]
児島先生。
RCSYS-2, RCSYS-2.5
Ethernet (communication) / USB (config) で host と FPGA boards がつながる。
RCSYS-2.5ではFPGAボード16台構成。
むかしの密結合版と同じような環境でプログラムできる。
[先読みヘテロジニアスMDDマシンについて]
決定グラフマシン。決定グラフを評価するのが仕事。
命令はふたつだけで、超速くてちっちゃくて低消費電力。
制御回路(シーケンサ)とかネットワーク機器とか。
BDDは二分岐、MDDは多分岐。
MDDのほうが同じ結果を出すまでのステップ数を減らせる。
BDDは命令長が固定でいい。
HMDDは分岐する数が毎回かわるかもしれないから・・・間接アドレッシングすればいい。
間接アドレッシングだと2回読まなきゃいけないけど、prefetch するようにすればそのオーバーヘッドはわりと隠蔽できる。
prefetch をするアーキテクチャのほうが簡単だった。
HMDD 熱いな。メモリサイズで性能がかわるのか・・・・
[An FPGA Implementation of CRC slicing-by-N algorithm]
CRC の計算は大変らしい。10Gbps とかだと CPU では全然おいついてこないという・・・
V4LX200 を全部使って 60Gbps くらい。同時に処理するビット数を減らせば回路も半分、スループットも半分みたいな感じ。
[タスクの振舞いを考慮した動的部分再構成システム向けスケジューリングの検討]
部分再構成でいろんなタスクを実行。だけど順番が重要。
[シリコンをベースにした光電気融合技術 ~ シリコンフォトニクスによる光回路と電子回路の集積 ~]
通信は光、計算は電気、という分業がなされてきたが、そろそろ光がもっと近距離の伝送を担うことになる?
しかし、それをうまくやっていくにはエネルギー密度とコストが重要。チップ内で使うなら超小型化も重要。
そこでシリコンフォトニクス。
シリコンは通信波長帯で高屈折率材料なので、光回路も超小型集積化して低エネルギー化できる。シリコンに電子素子構造を付加して光を直接制御できる。高度な微細加工技術、量産設備などがそろっている。CMOSコンパチブルで作れれば最高っす。
シリコン・リブ導波路 4um くらい。 R=500-100um
シリコン細線導波路 0.5×0.2um くらい。R=2-5um。これが実用化するとほぼ直角に曲げられるし、かなりいいね。
いろいろな素子のシリコン互換化=CMOSプロセスを通せるようなものにすること (たとえばあんまり製造時に温度あげられないとかね)、が量産で重要。
分岐できたり、光ファイバに接続できたりするようなものができている。が、加工精度がきわめて重要。
波長多重されたのが流れているところからリング共振器とかで特定の波長だけを切り出したりすることができる。
減衰器は導波路の両隣に P/N を作ってやって電流を流せばいいらしい。すごい。でも応答速度がよくないみたい。
変調も同じようなノリでできて高速動作もできるんだけど、サイズやエネルギーが問題。
レーザー光源はけっこう大きな問題。シリコンは基本的に光らないので、なにか貼り付けてやる必要がある。
Intel では Ranman laser on Si を作っている。あるいは日立は Si 極薄膜を使った量子井戸 (QW) で光らせてる。

Design Gaia 2010, Day 1

[LSI配線の課題と光配線]
広島大学の横山先生。
計算はエネルギーを消費するか?
– 可逆演算ならかからない
– 不可逆なら、不要なデータを消去するためのエネルギーが必要
という議論あり。
これだけだとほとんど電気食わないはずだが、実際にはその百億倍とかの電力を食ってる。根本的な原因は直流電源からパルス列を作っていること。これは抵抗を小さくしても応答が速くなるだけで、消費電力は変わらない。
じゃあ交流電源にすればいいかな。on/off だと効率は悪いままだから位相変調すればいい。でも、回路は大きくなるし、高周波になれば電磁波輻射が起きてロスが増える。そもそも効率のよい高周波電源を作るのは難しい。
光なら簡単に変復調も位相差検波もできる。光導波路を作ってやればロスもおきない。
ロジックが 1/3 でクロックとバスの消費電力が 2/3 くらいになるなら、後者を光配線しちゃえばいいのでは?
長距離配線では RC 線路だけだとしんどいのでリピータを入れて波形のナマリをなおしてやる。遅延時間は改善するが電力や面積で不利。伝送線路を使うとCで蓄えたエネルギは再利用できるが、最後の終端抵抗が全部消費しちゃうのでもったいない。
クロック分配用の、伝送線路を用いた定在波発振法というのがある。伝送線路を終端しないで反射させ、発振させる。おもしれー!!! 問題は電磁波輻射。伝送線路は速いんだけど、表皮効果の問題で、微細化すると抵抗が増える。円断面の導波管にすりゃいいんだけど、LSI に使えるように細くすると周波数が光になっちゃう。
光配線もシリコンプロセスで作れるっぽい。四角いやつ。
光配線の特徴
– 広帯域
– 非干渉性 (交差可能)・WDM
– CR がない
– インピーダンスマッチングいらない
など。問題はデバイス技術。
モノリシック光配線 LSI を作っている。
p/n 型光変調器と光プール。光プールにたくさんの p/n 光変調器を向けて、光プールを通じて波長多重通信する。
[LSIチップ光配線開発の現状と課題]
MIRAI-Selete の大橋さん。
1cm 以上だと差動伝送線路 (やっぱりリピータが必要) より光配線のほうがいい。
Serdes で多重化して高速シリアル伝送だと、serdes の消費電力が 200mW とかになるけど、WDM なら受動デバイスだから 0mW !
エレクトロニクスと同じくらいの値段で素子が作れるかとか、結合したところで光の強度が半分になっちゃうとかそういう問題もあり。
オンチップの IP コア間の接続とか。アービトレーションも光でやるといっている人もいるけど、そこは電気のほうが (コスト的に) いいかな、とか。ただしその場合は遅延とかのペナルティがあるので、もうちょっと詰めないと。(というか、こういうのって作ってみないとわかんないのかなあ、と思ったり)
[光配線技術の研究動向と将来展望]
日立の菅原さん。
光トランシーバ (SFPとかの、標準化されたやつ) は7年で1桁小型・省電力化。値段は2桁くらい落ちてる。
Si 変調器とか、CMOS-Ge 集積受信器などが熱い。
40GbE, 100GbE では 10m までが 10Gbps のメタルの束。100m までは MMF (multi-mode fiber) 、それ以上は SMF.
オンチップな話としては、シリコンを直接光らせる、とか。でもこれはちょっと大変そう。
ネットワークとか、バックプレーンとかで使う系のお話が中心。ま、現状で光配線というとそっちのほうが現実的だな。
[半導体製品のESD現象とESD設計技術]
ルネサスの石塚さん。
ESD の研究者は日本にはあんまりいないらしい…
デバイスレベル: 未実装部品の pin to pin や、基板組立時の部品 to 基板 (デバイス破壊が問題)。
システムレベル: モジュールや製品 to 人体など。デバイス破壊だけでなく、誤動作も問題に。
ESDのアレはパッドの下に全部入れるの?
45nm で 30x180um とかのが全部のパッドの下に入る。これはI/Oインタフェイスも含んでいて、ESD対策の部分は 1/3 くらい?