あうー

最近長名の blog が真面目だという話ですが、もう忙しすぎて全然面白いことを思いつきません。 いい加減、寝たい。

最近長名の blog が真面目だという話ですが、もう忙しすぎて全然面白いことを思いつきません。
いい加減、寝たいですが、ちーっとも仕事が片付かない。
あちこちにご迷惑をおかけしております。ごめんなさい…

倫理とか

そうなんですよ。 もちろん、サポートされる文字セットが広くなるのはいいことなんですけどね。

GT明朝とトロンを批判する
科学者にも技術者にも、動機と志の哲学が必要、というのは、実に正しい。
誰のための科学か、誰のための技術か、
いやもっとはっきり言おう。誰のための予算か、だ。
研究のための研究ならば、国民の税金など使う資格はないのだよ。
そのへんちゃんと理解しておかないとね。
文字の話をしておくと、文字の数は無限だと思う。
たとえ26文字しかないことになっているアルファベットでも。

RECONF2005 65-68 (Dec.01: Architecture II)

意図せずして最初のをサボってしまいましたあうあう。

意図せずして最初のをサボってしまいましたあうあう。
日立の動的再構成なデバイスに関するセッション。

構成情報の階層記憶制御による再構成型プロセッサ FE-GAの性能・面積比の向上

演算セルアレイ(ALUセル、MLT(乗算/MAC)セル、基本的に16bit) はクロスバを介してLoad/Store セル・ローカルメモリに接続。コンフィギュレーションマネージャを外部(といってもチップ内部)に持ち、セルの類似性を利用して構成情報を圧縮することで構成情報のサイズを 1/5 くらいまで落とすことができる。圧縮しないと構成情報の転送がボトルネックになってしまう。構成情報はバックグラウンドでロード可能。

Q & A

IPFlex 佐藤さん: 構成情報のサイズはどれくらい?公表できれば教えてください
→ALU, MLT セルの構成情報は 96bit とか。予稿にでています
久我先生@熊本大: 16エントリくらいが面積効率的な落としどころなのか、増やすとどうなるか
→階層化することでそれくらいでも性能が出せるようになった、と

再構成プロセッサ FE-GA のオーディオ処理への応用

AAC 128kbps, 2ch, 44.1kHz のエンコードをシミュレータ上で実行。シミュレータの演算のところは cycle level accurate、制御系は functional level.
102MHz で 8 倍速AACエンコードを実現。FIR とか DCT で、組み込み向け single MAC DSP の 10 倍くらい?
configuration を preload することで、4.8M cycle くらいかかるのが 32k cycle に。さらに圧縮することで、2k 回くらい入れ替えなきゃいけないのを1回にすることができた。
今後は開発環境も整備していく予定。

Q & A

NEC の梶原さん: ALUとMULのブロックが 3:1 で入ってますが、どんな感じで決めたかというのと、今回の実装でのリソース消費状況を教えてください。
→ ALU-MUL-ALU-ALU が8列ある構成は、ALUx4 7列 + MULx4 1列よりだいぶ使用効率が上がる感じでした。
早稲田の木村先生: Cのリファレンスコードからマッピングをされたようですが、loop unrolling とか、そういうtuningはどんな感じでやりましたか?
→ FFT はバタフライまで広げてから mapping. その他のアプリケーションでは 2、3重くらいのループをまんなかまであけて、あとはデータアクセスの順番をチューニングしたりとか
コンパイラを作る上で従来型のプロセッサと違うところは?
→ interconnection の制約のある 2 次元のアレイに、命令列を流し込むと 3 次元になるわけで、そのへんが難しいかも
末吉先生: VLIW の一種みたいなものですよね。接続が限られているうえにしかも non-uniform ですし、大変。アプリケーションひとつにどれくらいかかりました?
→ ふたりくらいで半年とか。ツールほしいです。
佐藤さん@日立: non-uniform なところに DFG をマップするのが大変。C のプログラムをうまくマップするのもやっぱり大変。その 2 点くらいと、configuration / data のロードを演算を止めることなく行えるようにするところのスケジューリングが難しいかな。ポインタを使って圧縮制御をするところも、静的にプログラムを眺められないような場合には、また大変です。
IPFlex の芝さん: Loop unrolling で carry dependency とかがあるとやばいと思うんですが、フィードバックとかの機構はあるんでしょうか?
→ DSP 関係では依存関係が複雑だったりするので、HPC な場合と違ってコンパイラ的には難しいかな。小さなループで依存関係がある場合は、チップの上でなんとかできるが、大きい場合には一度ローカルメモリに吐き出してから処理する必要があります。

再構成プロセッサ FE-GA 上への FFT へのマッピング

日立の佐藤さん。数学のご出身なのですね(かっこいい!)。
ALU-MUL-ALU-ALUな構成だが、右からも左からもデータが流せたりするので、MUL-ALU-ALU-ALU とか、MUL が3つめ4つめにあるような構成を取ることもできる。
基数2の Cooley-Tukey 型を、4×4 cell に入れて、FE-GA にふたつ載せる。
セル利用率 90.5% でサイクル数オーバーヘッドは 3.5%。

Q & A

トヨタITの方: FFTを効率よくするためにクロスバを導入したりしているようなのだが、アプリケーションを載せてみてアーキテクチャにフィードバックしたのはどんな点?
→ クロスバは最初から載せようか、という感じだったのだけれど、MUL をどの列に置くかをわりと自由にとれるような機構 (FFT では最初の行に置きたかった) とかを入れてもらった。あと、メモリから ALU に転送するときの遅延を自由にとれる仕掛けとか。
1k point とか 2k point の場合、基数を4とか8にすると思うのだが、基数が上がった場合に同じような実装で対応できるのでしょうか?
→ まあ、同じバタフライなので、なんとかなるんでないかと。途中で分割する必要はあるけれど。
飯田先生@熊本大: 4×8 というサイズはアプリケーションを作ってみて最適だとわかったのか、大きくしたり小さくする必要はどうなのか。
→ コアを複数接続することによるスケーラビリティはあるので大丈夫だと思う。ただ、いまのところマルチメディアな小さいものしかやっていないので、WLAN のようなのをやると難しいかも。

RECONF2005 62-64 (Dec.01: Security & Dependability)

動的再構成プロセッサに搭載した異常通信の探知機能ルータなどで行う DDoS をはじめとする攻撃からのプロテクション。 FPGA なんかでやると、ルールの更新などに時間がかかってしまうため、動的再構成デバイスがよさそう。

動的再構成プロセッサに搭載した異常通信の探知機能

日立中央研究所の方。
ルータなどで行う DDoS をはじめとする攻撃からのプロテクション。
FPGA なんかでやると、ルールの更新などに時間がかかってしまうため、動的再構成デバイスがよさそう。防御方式(アルゴリズム)も新しく提案しており、面積を削減しつつスループット向上と異常通信遮断までの時間短縮を図っている。汎用のマイクロプロセッサを使う場合と比べると、あまり大きなメモリが使えないところが難しいが、うまいことやっている模様。

Q & A

井口先生: アルゴリズムが変わるってどれくらい変わるのか?
→1パケット毎に configuration が変わるのが理想的なので、FPGA だとちょっとしんどいかも。いまはまだそこまで行ってないのだけれど。
DDoS のは DDoS の人とか、P2P は P2P の人とか、それぞれの攻撃の種類によって新しい開発者が必要?
→C 言語でいうところの数十行程度の変更なのだけれど、ハードウェアにすると(判定部分を作ったりするのが)大変
飯田先生: 再構成するのはどのタイミング?
→1500octet なパケットがきたときに、判定に使うのはほんの一部なので、使わない部分が到着している間に再構成すればよい。64octet な packet とか、短いのが連続してくるとだいぶキビシイ
NEC 梶原さん: 検出するときに、テーブル参照だけすればよいのであれば、データパスそのものは書き換えなくて済むわけで、reconfigurable である必要はないと思うのだが
→アルゴリズムそのものが変わらないと対応できないので、そういう構成はちょっとムリです

FPGAを用いたウィルスチェックシステムの提案

東邦大学のひと。
802.3 (Ethernet) のレベルでパケットをがーっと読んでウィルスチェックしてくれるシステム。set top box 用みたいな感じ。ClamAV で使われている、Virus の signature から HDL を自動生成するところがカッコイイと思う。ていうか、10Gbps ですかマジですか。FPGA は Stratix で、33MHz で動かしております。
複数の Ethernet フレームに分割された virus が原状だと検出できませぬ。あと、検出後にどうするかが問題だ。こっちは実装云々というより、アイデアの問題かもな。
なんかこれすごいですよ。質疑応答も大盛り上がり。
トヨタITの方: データベースだけを更新するやり方で OK?
→ワイヤのつなぎ方でマッチングをしているので、回路の構成そのものを変更する必要がある。
データベースだけ更新する方法だとどうよ?
→そうするとメモリの読み出しとかが問題になってしまう (そりゃそうだ)
FPGAの構成データもネットワークで転送するわけだが、それが安全であることはどうやって保証する?
→FPGAの暗号化機能があるので、構成情報を暗号化して送信すればOKでないかな
お名前失念しました: signature の長さと数を教えてください
→SW で使っているものだと数百ビット程度のものが多い。FPGA 実装では 64bit でマッチングして、256 種類の signature を処理している。antivirus なソフトウェアは数万とか対応してるわけだが、現実に同時に流行ってるやつは100種類くらいなので、意外に充分かも
松下の前田さん: パターンが更新される前にやられちゃったら終わりだと思うんですが、けっきょく PC のほうに対策用の何かを入れなきゃいけない?
→まあ、なんでも2重3重にやらないとダメですよね。あとは、ネットワークの入り口においておくことで、スループットを落とさずにネットワーク全体を守ることができる。ディジタル家電とかも含めてな。
これ、antivirus software のデータベースを更新するときにパケットが捨てられちゃうことってないのか? とか思うんだけど、本質的じゃないし、ま、いっか。

Reconfiguration による FPGA の固定故障検出

平木研の中村さん。
宇宙とか砂漠とか無人島で FPGA が壊れちゃうと交換しにいけないので、どこが壊れたかをリモートで検出できる仕掛けが必要。部分的にぶっ壊れている場合にそこを使わずになんとかする方法、というのはわりとみんなやっているわけだが、検出のほうはうぬぬぬ、という感じなわけで。
検査時間に効いてくるのは当然、検査対象のサイズとテストの回数なので、そこを小さくすることを目指す。
使っている回路だけをテストするとか、0/1 に固定されている場所はチェックしなくておっけいとか、そういったところで検査対象の回路規模を絞り込む。
Xilinx の ncd ファイルを ncdread でテキストにして、配置配線情報をテキストにして読んでいる。んで、そこから故障検出回路を作るわけだ。
広島市立大の井上先生: 入力を動かしたときに応答がトグルするかどうかだけチェックするだけじゃだめで、正しく動いていて出力に伝わるかをみないといけないと思うわけですが
→あ、ちゃんと、結果が正しいかはチェックしています
明治大学の井口先生: 検査というか、どこが壊れてるかを診断するところまで考えてるわけですよね?
→はい
そのほかの FPGA テストの手法との差を明確にするとよいのでは

RECONF2005 59-61 (Dec.01)

A Solution for perfect classified networksRoesener さん @ Nishi Lab.off-chip なデータはすべて encrypt する、physical layer encryption..

研究会の受け付けやってて最初の2つは聞けませんでした。

A Solution for perfect classified networks

Roesener さん @ Nishi Lab.
off-chip なデータはすべて encrypt する、physical layer encryption.
AES とか ECC (楕円) とか。
前のやり方(ってどれだ)よりも面積減らすことができた。1Gbps で動かせる。

Q & A

IPFlex 佐藤さん: Altera と Xilinx でずいぶん latency が違うが?
→ 使ったチップの性能が違うので。

Smart e-pickup

最近国内線搭乗はチケットレスで、空港の機械にクレジットカード突っ込んでチェックインしてたのだが、こっちにくるときのフライトが満席ギリギリで、結局チェックインカウンターで座席をもらうことになってしまった。 Web でチェックインしておくと、チケット受け取りだけ空港でやればよいのだそづd、やってみた。

最近国内線搭乗はチケットレスで、空港の機械にクレジットカード突っ込んでチェックインしてたのだが、こっちにくるときのフライトが満席ギリギリで、結局チェックインカウンターで座席をもらうことになってしまった。Web でチェックインしておくと、チケット受け取りだけ、マイレージカード使って空港でやればよいのだそうで、やってみた。PC の画面で座席指定とかまでできるようになっており、便利。