Q:なるほど。その瞬間瞬間の話で思い出したんですが、現在は4バンク構成になっていますよね。で、四つで足りる内はいいと思うんですが、これ例えば一つどうしても足りなくて、五つ欲しいとか六つ欲しいとかいった事はありえますよね? で、現時点でもフォアグランドである処理が動いている時に、DAPの方から例えばこのバンクを別のものに入れ替えろとかいう事はできるわけですか?

A:はい、できます。

Q:それはどの位のタイミングでできるんですか? まあ、サイズにも拠るんでしょうけど。

A:一面全部取り替えると恐らく100μs近く掛かると思います。切り替えは1 clockで行きますけど

Q:ええ、切り替えは早いですね。

A:それ(バンクの入れ替え)はもっと短くも出来るんですが、短くすると何が起こるかと言いますと、それ専用のデータパーツ以外の、メモリもそうだし、バンド幅を上げるための仕組みもそうですし、ですので配線に必要なダイサイズが余計に増える事になるので、トランジスタを乗せられるダイサイズが悪化するというトレードオフになります。で、100μsで切り替えるという数字ですが、これはお客様のアプリケーションにもよるのですが、通常は少なくとも最低でも数十μs~数百μs以上走ってるんですよね。要するに走ってるバックグラウンドの間に入れ替えが出来ていれば、次の準備に入れるので、お客さんのフラストレーションは少ないだろうというのはあります。

ただ問題は、これ実際にあったんですが、アプリケーションによっては、H.264とか色々な、お客さんが思ってる事をやろうとした時に、すでにできあがったソースコードというものがある訳です。我々のアーキテクチュアに特化したものでは無いので、それの改造とか改良をできるだけやらずに、そこのある部分をそのままインプリメントしようとすると、先ほど言いましたように、短い時間で(バンクを)チェンジしないといけないとかそういう事が起こってきます。そうした場合には、我々の想定している「100μs位は良いだろう」という話は逆に、「数十μsを割らないと困る」とか「数μs」(笑)とか大変な話になってしまいます。技術的には可能ですが、でもそれは驚くようなコストに跳ね返ります、と。そこのトレードオフとして、スムーズに切り替える時間が100μs位であれば(いいのかな)、と。msのオーダーで言うと、毎秒一万回交換できる訳です。で、お客様のアプリケーションを見ていると、実は一万回もチェンジしていないです。せいぜいが数十回とか、そういうオーダーですから。それから見ると、短い時間で交換したいという要求はありますが、トレードオフになりますという事です。

Q:今「一面交換」、つまり「全部すると」というおっしゃり方でしたけど、では例えば半分とか三分の一だけとかいうのは有りえるんですか?

A:技術的には可能です。それなりにソフトウェアを採用しなければいけないんですけど。

Q:で、全部で4バンクという数字は、今後のバージョンでは増えていったりする可能性は有るんでしょうか?

A:えー、HDLで書かれた回路を直接交換しようとすると、増やさないといけないという結論になっています。問題はコストでして、次の世代の製品は、想定するアプリケーションを絞っていますので、許される交換に必要な時間という意味では十分間に合うということで、コストの関係で(バンク数を)減らすという事を検討してます。減らしても一応間に合えばいいという発想ですね。ですから、まぁ二面以下になることは無いと思うんですけど、二面プラス一面とかですね、あるいはせいぜい二面とか。処理している最中、次の準備とか走りますから。ただこれはどこまでやるんだと言うのは、それ以上にはならないでしょうから、増やした方がどんどん優位性があるというパターンにするのか、先ほど言った様に回路まで交換動作した場合にどうするかとか、今後のトレードオフの課題となります。それを救済するような方法もちょっと検討はしてるんですけど。内部にちょっと高いバンド幅のメモリ持たせるとかですね、そこが更にキャッシングできるので、そう言う意味で対応するとか、それは議論としてはあります。