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 くらい?

今週の自転車

ずっと毎日新しいエントリにしてたのだが、週ごとにまとめて書くことにしよう。
というわけでこのエントリは随時更新予定。
11/12 19.65km @ 24.0km/h (48m55s), odo 9826.4km
11/11 18.35km @ 19.2km/h (57m03s), odo 9806.7km
11/10 20.07km @ 22.1km/h (54m17s) , odo 9788.3km
11/9 32.06km @ 21.5km/h (1h29m18s), odo 9768.2km

TinyOS + iris mote on FreeBSD HOWTO

This is how to make our iris mote with MTS400 sensor board work with FreeBSD. Although it’s difficult to make the full feature of TinyOS toolkit (especially Java based tools on the host side) because of several limitations of the toolkit, it’s still possible to develop everything on the motes and host PC(s) with FreeBSD.
Before getting started, the user must be join dialer group to “dialer” group to control /dev/cua*.
[ Step 1: ports setup ]
Since iris motes have Atmel’s AVR processors, we need avr cross compiler to make them work. I’ve installed following softwares from FreeBSD ports collection.
– devel/avr-gcc
– devel/avr-libc (without documentation)
– devel/avr-gdb
– devel/avarice
– devel/avrdude (needs “cp /usr/local/etc/avrdude.conf /etc/avrdude/” after installation)
[ Step 2: NesCC installation ]
To compile programs run on motes, we need NesC compiler (that calls avr-gcc for iris motes). However, NesC has a small incompatibility with the latest avr-gcc comes with FreeBSD ports. Simply edit src/unparse.c and comment out line 812 and 813. Without this patch, avr-gcc will experience an “internal compiler error”, then terminates abruptly.
nesc-1.3.2/src/unparse.c
811: /* gcc wants the attributes here */
812: // prt_type_elements(CAST(type_element, d->attributes),
813: // flag_gccize ? 0 : psd_no_target_attributes);
Then just:
% ./configure –prefix=${HOME}/work/xbow/tools
% gmake
% gmake install
this will install nescc in ~/work/xbow/tools.
[ Step 3: Build TinyOS environment ]
Since I couldn’t build latest trunk (revision at r5194) for iris motes and TinyOS-2.1.1.3 doesn’t have mts400 driver, I’ve checked out trunk at revision r5166 and it builds.
% cd ~/work/xbow/
% svn checkout http://tinyos-main.googlecode.com/svn/trunk tinyos-5166 -r 5166
% ln -s tinyos-5166 tinyos
% set path = ( /usr/local/diablo-jdk1.6.0/bin ~/work/xbow/tools/bin $path )
% setenv TOSROOT ~/work/xbow/tinyos/
% setenv TOSDIR ~/work/xbow/tinyos/tos
% setenv CLASSPATH ~/work/xbow/tinyos/support/sdk/java/tinyos.jar:.
% setenv MAKERULES ~/work/xbow/tinyos/support/make/Makerules
Next, we need some patches to build TinyOS on FreeBSD before building the tools:
% cd tinyos/tools
% vi configure (change #!/bin/sh on the first line to #!/usr/local/bin/bash. That’s because FreeBSD’s Bourne shell can’t run the script…)
% vi misc/tos-locate-jre (replace “readlink -q” by “readlink”. The command doesn’t require -q option.)
% ./configure –prefix=${HOME}/work/xbow/tools
% gmake && gmake install
This will install uisp and many other programs in ~/work/xbow/tools/bin. Unfortunately I still can’t run Java based tools, I can use C based SDKs.
[ Step 4: Program the Mote NOW! ]
The first one is the “Blink” application. Assume that the programmer appears on /dev/cuaU0 (and the mote interface on /dev/cuaU1).
% cd ~/work/xbow/tinyos/apps/Blink
% gmake iris
% gmake iris reinstall mib520,/dev/cuaU0
The LEDs will blink!
Next thing is test with radio… The client ID must be specified at gmake reinstall.
Compile for client:
% cd ~/work/xbow/tinyos/apps/tutorials/BlinkToRadio
% gmake iris
Install for client 0x1234:
% gmake iris reinstall,0x1234 mib520,/dev/cuaU0
Install for client 0xabcd:
% gmake iris reinstall,0xabcd mib520,/dev/cuaU0
Set up the basestation:
% cd ~/work/xbow/tinyos/apps/tutorials/Basestation
% gmake iris
% gmake iris reinstall mib520,/dev/cuaU0
Compile C based serial forwarder:
% cd ~/work/xbow/tinyos/support/sdk/c/sf
% sh bootstrap && ./configure && gmake
% ./seriallisten /dev/cuaaU1 57600
The packets are displayed by serial forwarer:
00 ff ff ab cd 04 00 06 ab cd 00 01
00 ff ff ab cd 04 00 06 ab cd 00 02
00 ff ff ab cd 04 00 06 ab cd 00 03
00 ff ff ab cd 04 00 06 ab cd 00 04
00 ff ff ab cd 04 00 06 ab cd 00 05
00 ff ff 12 34 04 00 06 12 34 00 01
00 ff ff ab cd 04 00 06 ab cd 00 06
00 ff ff 12 34 04 00 06 12 34 00 02
00 ff ff ab cd 04 00 06 ab cd 00 07
00 ff ff 12 34 04 00 06 12 34 00 03
00 ff ff ab cd 04 00 06 ab cd 00 08
OK, cool.

RIS: 再生可能集積システム研究会 @ ひよし

[3次元積層技術を用いた乗算回路設計に関する研究]
山形大の多田先生。
3-D ベクトルプロセッサとかもある。
コア・ベクトルキャッシュ・I/O が3段重ねで、電力効率を上げられる。
もうちょっと細かい粒度の、演算器とかを作れないか?というのがこの研究の課題。
配線長が長くなってしまうかと思いきや、回路内の長い配線をうまく減らせて、総配線長が短縮し、6〜30% くらい遅延を削減できた。
回路を subblock に分割し、かつ貫通配線の数を抑えるように最適化することが重要。
先行研究としては Kogg-Stone ADder の3次元実装というのがある。
論理深度レベル分割では層を増やしても遅延の改善が見られなくなる。
ビットスライス分割は3層でも遅延が減らせる。
クリティカルパス上のゲートが多数の場合には均等な分割が困難。
TSV を経由することによりクリティカルパスが変化する可能性も。
部分積の生成・圧縮部 (booth encoder + wallace tree) をバラしてみました。
ビットスライス分割よりクリティカルパスを考慮した分割のほうが面積が増える+総配線長は長くなる。
TSV は本来遅延に悪影響を及ぼすが、遅延を改善することができた。
2次元実装と比べて最大で 27% 。
遅延には容量成分がかなり効いてくる。
TSV のサイズは縦横 1um で高さが 2um くらいのものを想定していますが、ちょっといまの技術では作るのはキビシイかも、とのこと。
[再利用可能な動的リコンフィギャラブルプロセッサの開発]
ふんがさん。
半導体は環境にやさしいか?
消費電力とか廃棄ではなくて、一番問題なのは製造時の薬品やエネルギーの使用かも。
さまざまな製品で汎用的に使えるチップがあれば、製品を廃棄するとこに取り出して転用、みたいなことができるのではないか。
だけど基本的には新しいプロセスを使った方が圧倒的にお得なので、大量生産大量消費の世界になっておるわけです。半田付けをはがしたりするのは問題だし。
しかし、いい加減プロセスの微細化も遅くなってきているし、集積度以外は改善しなくなってきているので、状況は変わるかも。
ビルディングブロック型 SoC.
製造後にいろいろ積み重ねちゃって何でも使えるようにすればいい。
誘導 (磁界) 結合ならたくさん積み重ねられるし、電源以外は半田付けが不要。
放熱とかはアレですが。
MuCCRA-Cube はプロセッサとプロセッサが 1:1 でつながるようになっている。
データ転送クロックは 1.5GHz, プロセッサクロックは 15MHz なので、プロセッサから見ると1クロックにたくさんのビットを送れる。
W 単位の消費電力の場合のワイヤレス送電はけっこう大変。
[三次元ワイヤレス接続用ルータおよびバス構造の提案]
佐々木くん@ふんが研。
容量結合は2枚までしかいけないので誘導結合です。
バブルフロー制御楽しいな。パケットがぐるぐる回って、受信先の入力バッファが空いてたら拾える。トークンリングみたい。
共有バス型の通信モジュールも積んでおり、これだと Tx がひとりで残り全員が Rx になる。各レイヤがタイムスロットごとに順番に Tx になる。
チップは12月にできる。
シミュレーションで core 200MHz, inductor 4Gbps at 40mW という結果が出ている。
バブルフロー制御はリンク使用率が uniform traffic で 90%とかまでいける。いいね。
共有バスのほうは timeslot が回ってこないと送れないのでそれほどでもない。
[省エネ世界におけるシリコンウェハ]
シリコンウェハ出荷数量・面積ともに 8inch は減っており、12in に移行。
200mm や 300mm は伸びているが 450 はどうかな… という状況。
パワーデバイスでは IGBT がモリモリ伸びている。
5年先くらいまでは IGBT はシリコン、SiC はダイオードなら使われるようになるかも。
高耐圧用だと中性子照射炉が必要。日本には・・・ 世界的には将来の供給不足が見込まれる。
地殻までだと O(49.5), Si (25.8), Al (7.56), Fe (4.70) マントルまで入れると Fe が多いけど、さすがに人間が使えるのは地殻だし、Si は枯渇しない。
シリコンウェアはどこまで効率的に使われているのか?
ウェハの出荷容器はウェハ1枚と同じくらい (1万円くらい)。リユースしてます。
300mm シリコン単結晶、引き上げ時の長さは 1.6m 〜 2.5m くらい。頭としっぽは太さが違うから使えないので、長いほどよい。
150kg のだと、使えるのは 61kg, 300kg なら 171kg (57%) が使える。
つまり、引き上げでの収率はたかだか 60% (ここでの残りの部分は純度がいいからまた使えるということかな?)
加工収率は 1.2mm から 775um にするからここで 65%。これの残りは不純物(特に砥石)の混じり具合によってセメントにしたり、あるいは太陽電池方面などへ。
さいごは 30um〜70um にするからもっと捨てている。
ウエハの内側と外側での特性の違いとかあるんだけど、300mm くらいはちょうどよいらしい。
引き上げたままだと void が入っちゃったりするので、表面だけ無欠陥にするような加工 (気相成長させたりとか、高温で anneal するとかね) が必要。内側の void は放熱とかのためにあったほうがいいときもある。
radiation tolerant とか industrial / military temp なのを作るには、ある程度ウェハの特性も関係してくる。
[状態評価を用いた多重化方式によるモジュールの長寿命設計]
過半数のモジュールが壊れても大丈夫な stateful NMR を改良して、resettable stateful NMR.
モジュールが復旧したときに、モジュールの状態評価を正常に戻すことができる。
復旧、という概念がディジタル回路とかだと実際のところどうなの? → チップを取り替えるとかそういう、モジュールレベルのことになりそう。
[旧型PCにもとづく太陽光発電によるグリッドの提案]
太陽電池 1m^2 で年間石油換算 39L, 森林面積 316m^2 に相当。
ということはガソリン 40 リットル燃やしたら 316平方メートルの森林が1年かけて吸収しなきゃいけないということですね?
実験で使ってるPCは Atom とか Celeron M なので、うーん…
でもこれ四年生がやってる研究なので、続きは本人次第かな。がんばれー