飛行機のスケジュールが遅れ、日本への到着が1日遅れたため、COOL Chips XI初日の特別講演が出来なかったノースカロライナ州立大のYan Solihin准教授であるが、主催者側が2日目の予定をやりくりして、マルチコアのスケーラビリティーに関する30分程度の講演が行われた。

マルチコアのスケーラビリティーについて講演を行うノースカロライナ州立大のYan Solihin准教授。

過去の研究から、キャッシュの再使用率は、最高のブロックに較べて、その次の頻度のブロックはr倍、その次は、更にr倍という風に、等比級数的に減少していくことが分かっている。

この関係を使ってキャッシュミス率を定式化すると、次の式のようになる。

また、この式から、容量SのキャッシュとS’のキャッシュのミス率の比は、

となる。そしてSPEC2006プログラムで、この比例係数のrを調べてみると、0.54~0.85の範囲であり、プログラムによってある程度のばらつきがあるが、平均としては0.72であったという。つまり、面積一定、メモリバンド幅一定のチップで、集積するコア数を増やすと計算能力が上がりメモリアクセスが性能に比例して増加するが、キャッシュに使用できる面積=容量が減り、キャッシュミスが増加して、メモリバンド幅が性能制約となる。一方、キャッシュに多くの面積を割り当てると、集積するコア数が減り、性能が抑えられるという関係にある。この関係に、上記のミス率の式を適用することにより、コア数とキャッシュ容量の最適点を求めることができる。

現状でチップ面積の半分をコア、半分をキャッシュとした場合をベースラインとして、チップ面積が大きくなった場合の最適点を求めると、面積2倍で性能は1.8倍、4倍で3.2倍、8倍で5.8倍となる。これは、集積度が2倍、4倍、8倍になった場合に相当し、コアだけを密度に比例して個数を増やして集積しても、性能は比例して向上しないことを示している。これに対処する方法として、Solihin准教授は、小規模コアを使う方法と、キャッシュとして現在一般的なSRAMよりも記憶セルが小さく大容量にできるDRAMを使用することを提案した。

小規模コアは面積が小さく、キャッシュ面積に対する負担が小さい、また、性能も大きいコアに較べてある程度低いのでメモリアクセスの回数が少なくなる。このため、大きなコアの場合は14コアが最適点であったのに対して、半分の面積のコアを使えば、20コアの搭載が最適点となる。また、DRAMをキャッシュに使うことにより、キャッシュ容量を4倍に増加することが可能で、14コアの最適点が23コアまで増加できる。

さらに、キャッシュコヒーレンス手法の改善によりチップ間のデータ転送回数を減らしたり、メモリとの間のデータ転送に圧縮を適用して、メモリバンド幅の利用効率を上げる手法もスケーラビリティーの改善に有効であると述べた。