Q:今はまだSingle CPUしかハンドリングしていない?

A:今は一個のCPUが見える格好になってます。僕自身は、次にCPUがマルチ化した時に、そのマルチCPUの中でOSはどうハンドリングされべきだか、とかそういった事を総合的に、今までとは違ったやり方でサービスするべきだと思っています。

一つは処理量というのがありますね。重い処理があった時に、分割出来て、並列性が見つけられるといった場合。すいません、いろいろウチの広報から言われたんで言える部分が限定されるんですけど(笑)、ちょっと漫画的に、例えばここのテーブルがいろいろな物に変化できるとします。この面が、例えば液晶みたいなものだと考えてください。液晶といっても、まぁ三次元(で回路)を生成できるようなものを仮定してください。

ここで、仮にCPUが四つとか八つとか必要になった時に、CPUがどこの位置にどう生成するか、を自由に選べるようになったら、自由度がずっと上がりますよね。現在はというと、例えばCPUを4つ作った場合、それを使おうと使うまいと(CPUは)そこに置かれたままになります。で、アプリケーションの動作によって色々な処理量が必要になるわけで、大量のスループットが必要な場合と、そんなに動かなくていい場合とか、幅があるはずなんですよね。問題は、ここでピーク性能に合わせて(レイアウトを行って)あとを残りで遣り繰りするのか、それとも結局ピーク性能は出ないので、そこは最低限できるようにして、その分処理時間を倍になっても仕方ないとするか。

Q:トレードオフなわけですね?

A:そうです。問題はこうしたそのトレードオフがある時に、CPUのポジションですが、CPUが必要無い時に存在して頑張っているということは、余り効率的ではありませんよね? ですから、好きなタイミングでCPUをチップの好きな場所に生成して消せるとか。もっと言えばInstructionを1個投げる度にDecoderが生成されて、終わったら消せるとか。もしそういう事が出来るならば、基本的にはCPUも部品ですので、もはやCPUがどこに存在するかという議論では無く、必要な構成がすぐ生成できるかどうかの問題な訳です。あるいは一定の個数(のCPU)があったとしても、ある1サイクルで見たら、そのInstructionのDecodingとCoder側のData Pathが必要に応じて中でチェンジして実現するような格好になるとか。

Process側から見ると、ちょうど料理人が今、まな板で料理するのと同じなんですね。Memoryとか周辺が付いているので、Processerが行う事とは、言ってみれば料理人がばかばか(食材を)切るようなものですね。これだと料理するのが一箇所のような格好になってしまうんですが、それは別に料理の食材を移動するんではなくて、食材によってはMemory上である処理まで進んだらCPUを消して、他のもっと並列でやらなければいけない回路を生成するとか、そういう事を自由にできるようにしたい。

データの処理を無理矢理CPUからMemory、Memoryから別のModuleにバトンタッチするなんて必要は(本来)無いんですよね。無駄な動きを押さえ、そこで必要なものを生成して消して、という形で加算で実行していく格好にしていったら、Memoryは必ずしも一箇所ある必要はないし。並列処理で分散できるようなら一挙に広がって、Memoryの個数が並列度数を上げるとか、そういった事をダイナミックに切り替えられる様な形になって行くと、もっと効率が上がるんですよね。

今のハードウェアの技術的な進歩というのは、もちろん勿論色々な所でトライはされていますし、アイディアもあるんですが、そこがまだ製品化という形では実現されてませんので、そういった形を(狙ってゆきたい)。

現在我々はデータ処理を、高速ラインと言っているのですが、粒度の荒い16bitと32bit、次は16bitになるのですが、そういった単位で現在処理を行っていますが、それが処理に応じて数bitとか、逆に数百bitとか。つまり自由にですね、そういったものを自由にそのGranularityを変えられる様な形に持っていけたら、もっと効率の良い処理が可能になる、と。効率が良いというのはトータルとして効率がいいという意味です。ある瞬間で見た場合、Staticな部分は効率が悪いんですね。効率が悪いというか、Granularityが悪いというのは、つまり余分な冗長部分な回路を生成する事になるので、そういったものを、ある瞬間のSnapshotで見た場合には無駄なわけです。ところが、トータルとして動いている時にはそれは無駄にならない。

そうしたトレードオフが出来る様になってきて、ではこれをどう現実の製品開発の中で、ユーザーさんから見て「これはいいんじゃないか」とか、あるいは使って「役に立つよ」と言って頂ける様な所に落とし込んで行くかというのは、これからのチャレンジかと思ってます。すいません、さっき言ったご質問のところは…

Q:いや充分に答えていただきました(笑)。余談ですが昔Micronがデータ移動するから遅くなるんで、Memoryの中に演算機入れちゃえというコンセプトを出していたんですが、あれにすごく近いお話に…

A:そうですね。

Q:Micronの場合、外部に出すから遅いんで合って、中だけであれば100倍位の速度で動くという話でしたが、あの世界ですね。

A:そうですね。きれいにそれが実現できたら、すごくいいと思います。