Q:例えばですね、複数セグメントを使って、セグメント0で1段目の処理をやりました。で、2段目の処理をセグメント1でやります、なんてケースで間にRAMを入れる形で使うことも出来る訳ですよね?

A:そうです。

Q:で、(前出の)図1では間にリレースロットが入ってるわけですが、リレースロットの変わりにRAMQを使うって事も出来るんですか?

A:いずれにしてもNext Generationでは、こうしてギャップな事を、結果的にやらないと効率が上がらないという事に結論としてなりまして。最初に作った素の段階では、そういった議論もあったのですが、一番最初の仮定というのは、入口側と出口側は、処理を始める時と終わった時に大量にデータを送受信するから、そこに(RAMが)あったほうがいいだろう、と。

Q:ああ!

A:内部も若干有った方が良いだろうし、RAMは使うだろうけれど、それよりも演算機が有った方が良いだろうから、RAMはそんなに必要は無いと。入れて出すという部分はもろにBottleneckになるわけです。そこで蓄えながら、同時に入れて出すとかですね、そういう構造になって来ています。ところが結果的にRAMがタイミング調整の物だけだと、結局そこって必ずリレーが不足していますよね。そこは色々批判が出ておりまして、演算機でも、リレーを吸収するような仕組みとを色々入れていまして、カタログ内に有るんですけれど、次のものは結果的にそこの効率がもっと上がるような形にしています。

Q:それはDAPDNA-3の話ですか?

A:DAPDNA-IMSの話です。

Q:IMSでもそういう事を?

A:そうですね。そこはだいぶフィードバックを入れたんで。見かけ上、物理的には倍以上、というか3倍近くです(PEの数が)増えていますが、アプリケーションの実装の観点からは(PEが)増えたのと々程度まで効果がでるようになっています。

Q:IMSの話でもうちょっと聞かせて下さい。現在は6セグメントで、次がどうなるか判りませんが、セグメントが増えてゆく場合に二次元でやってくと、やっぱりどうしても制約が出ると思うのですが。で、例えば貫通VIAなどで三次元方向に進んゆくのか、それとも二次元だけれどもう少し自由度を高めるという方向なのか。

A:今現状、直近でやっている物はは二次元の自由度を高めるという事でやっています。あと、3次元については、レイヤーで重ねるのか、それともマルチチップにして重ねるかどうかという議論も含めて、可能性として議論してます。それはちょっと先の話になります。

Q:例えばセグメントが9個で3×3という配置だとすると、真ん中1個はどこにも行けるけど、それ以外だと最長では間にリレースロットを四つ経由することになってしまって、トポロジー的に難しいのかなっていう気がしますが。

Q:うーん、いい答えかどうかわからないですけど、行き方は色々あると思うのですが、結果的に、隣接間の配線自由度上げましょうという方向で。例えば近傍のセグメント同士で、無関係なデータをお互い飛ばす頻度というのは、そんなに大量では無いでしょう。ですから、近傍間のConnectivityのRichさを何とかguarantyしましょう、と。あとセグメント間に、セグメント境界があるという事を意識しなくても良いように、先程仰った様に、そのセグメントの間に演算機入れて置くとか。ただ演算機入れただけでは十分ではないので、それは別の目的に使えるとかですね。

今まではセグメントがはっきりわかるような、その境界ってのを意識してましたけど、Wiringで若干制限が無いとは言いませんが、今の様にセグメント境界を意識しなくてもいいような方法ですね。コンパイラ側から見ると、「セグメントだからこういうケースの場合こうするああする」というような議論をしなくても済む形の自由度を上げるって言う事はやっています。ただ結果的に遠くのものも繋がなければいけないという事は起こっているんで、そこはまあ、別な議論として。結局Latencyが少し発生しますけれど、遠くの方に飛ばす為には送るタイミングを少し、1clockとか2clock余分に時間掛けさせるとか、そういう形で繋ごうとしてます。で、それは待ち合わせだけの問題なんですね。頻度がそんなに大きくなければ、大きなペナルティにはならない訳です。

Q:たしかに頻度の、つまりアプリケーション次第なんですよね。

A:そうですね。