« 夢かうつつか | メイン | ゆとり教育とは言うけれど・・・ »

2009年07月07日

マイコンと並列処理

昔から、マイコンで並列処理って、どうやったらいいのかなあ、と考えていた。
せっかく1個あたりのマイコンは、VAXぐらいの性能は十分にあるわけで、
物理的に小さいことを生かせば、まあ、いわばメニーコアといえなくもない。

たとえばUSBコネクタつきのマイコンがあって、OSの1つのスレッドを担当させる。
USBハブでどんどん増やしていけば、マルチスレッド。
もちろんスレッドのほうが多いときは、1つのマイコンで複数のスレッドを担当させる。

マイコン(コア)の数が多いほど、マルチスレッドの処理能力があがる。
そのコア数は、動的に変更可能なわけだ。

昔、恩師が、デバイスとマテリアルの違い、という話をしていた。
マテリアルは、半分にしたら性能も半分になるもの。例えば「おもり」は、半分にすれば、「重さ」という性能は半分になる。
デバイスは、半分にしたら機能を損なうもの。例えばコンピュータ。
では、コンピュータがマテリアルになるためには?みたいな、ほとんど与太話だったが、この話を聞いたときから、ずっと心のどこかにひっかかっていたんだけど、このマイコンでマルチスレッドの話は、これに通じる話になるんじゃないだろうか。

マテリアルは、その構成要素(例えば原子や分子)の粒度が非常に小さいので、半分にしたら機能が半分になるわけで、コンピュータも、その構成要素の粒度を小さくすればマテリアルになるわけで、この話も理にかなっているといえなくもない。

並列計算機的には、素結合共有メモリなわけで、マイコン間の通信がボトルネックになるのは明らかなので、ここがポイントの予感。

あまりにも漠然とした話なので、問題をなにか具体化することを、ちょっと考えてみよう。

投稿者 akita : 2009年07月07日 08:41

コメント

なるほど

この話をヒントに

ボトルネックになるバスをあえて低粒度にすると

並列性、スケラビリティーが共に高いものができるかも

とか考えてみました。

ここでの粒度というのがバス幅なのかバス占有時間

なのか共有データのサイズそのものなのかはたまた

まったく別のファクターなのか

見極める必要がありそうですけど…

バス自体をインテリジェンスにしちゃえば

って結構おもしろそー

投稿者 ぎしちょう : 2009年07月13日 21:46

ぎしちょうさん、こんにちは(おひさしぶりです)
低粒度なバス、ですか。なるほど。低粒度というか、キャパシティの十分なバス、みたいな感じですかね。

バスがイニシアチブをとるコンピュータ、って、どんなもんなんですかね。

投稿者 akita : 2009年07月17日 21:03

うぅ〜ん DDMPとか?

イメージ的には生物の神経ネットワークみたいのが

思いうかびます。

投稿者 ぎしちょう : 2009年07月21日 21:38

DDMPですか・・・データフローマシン、ですよね。なんか違うかな?

投稿者 akita : 2009年07月27日 21:37

これはどうでしょう?

http://www.xmos.com/

投稿者 ぎしちょう : 2009年08月18日 20:04

これは見逃していました。節穴。
http://www.atmarkit.co.jp/fsys/zunouhoudan/091zunou/xmos_cpu.html
http://www.kumikomi.net/archives/2009/05/lsixmos_semiconductorxs1-g.php
あたりに解説がありますが、面白そうですね。(産業的にはアレかもしれませんけど)
Digi-Keyからも買えるようですね。

ただ、個人的には、イメージしているのと、ちょっと違うかなあ・・・

投稿者 akita : 2009年08月19日 08:36

私も産業的にアレなものにしか興味ないので

これで、バスアバータを能動的に切り替えたり

したら近いかなっと

投稿者 ぎしちょう : 2009年08月20日 10:04

そうですね、通信のところが、なんとなく違うかな・・・

投稿者 akita : 2009年08月20日 17:18

スレッド毎の通信を流せるらしいですけど

投稿者 ぎしちょう : 2009年08月21日 17:40

ふーむ。

投稿者 akita : 2009年08月21日 18:18

コメントしてください




保存しますか?

(書式を変更するような一部のHTMLタグを使うことができます)