数年ほど前に、プロセッサーの演算よりも、プロセッサー間の通信の方が重要になるとして、NoC(network on chip)の研究が盛んになった。NoCのアーキテクチャーを使った製品も出てきたので、NoCはある程度の成功を収めたといえる。プロセッサー、通信と来れば、あとはメモリーである。

 ここのところノーマークだったメモリーがビッグデータ時代のコンピューティングの中心になるかもしれないという議論が「DATE 14:2014 Design, Automation and Test in Europe」(ドイツ・ドレスデンで2014年3月24日~28日に開催」であった。「セッション9.8 Embedded Tutorial:Memcomputing: the Cape of Good Hope」がそれである。メモリーコンピューティングは喜望峰ということだ。講演者は3人。米University of South CarolinaのYuriy Pershin氏と、米Missouri University of Science and TechnologyのChun Zhang氏、米Case Western Reserve UniversityのSwarup Bhunia氏である。

 最初に登壇したPershin氏は、フォンノイマン型の計算機の欠点はプロセッサーとメモリーの間の通信がボトルネックになること、今後のビッグデータ時代の計算機では演算よりもデータが処理の中心となることを指摘して、チュートリアルの趣旨を明らかにした。セッションタイトルにもある「メモリーコンピューティング」では、例えば、メインメモリー並みに大きいメモリーをプロセッサーのそばに置き、全データをそのメモリーにおいて演算する。また、メモリーをプロセッサーの近傍に分散して配置したり、メモリーをLook Up Table風に利用して演算することを指すのだという。

 一般的には、そのようなメモリーの使い方は効率が悪いとされてきた。が、解析や分析、認識といった大量のデータの処理に対しては、これまでの常識とは違って「メモリーコンピューティングで飛躍的に性能が向上する可能性がある」とPershin氏は述べた。そして、これらメモリーコンピューティングにおいて並列な同時アクセスが可能となるデバイスとして、memristors(抵抗付きメモリー)、memcapacitors(キャパシター付きメモリー), meminductors(インダクター付きメモリー)を解説した。

 次に登壇したZhang氏は、メモリーコンピューティングにおいて、メモリーの階層をどう定義すればよいか、メモリーをどう配置すればよいか、LUT風のメモリーで演算させるにはどのような演算割り当てればよいか、などの判断を行うためのシミュレーター「MSim」に関して説明した。このシミュレータはオープンソースで入手できるという。なお、このシミュレーターを使ったところ、8ビットの加算にメモリーは32Kバイト必要だと分かったとした。