ベクトルプロセッサ用キャッシュメモリにおける MSHR の性能評価
佐藤義永 1， 撫佐昭裕 1、 2， 江川隆輔 1， 滝沢寛之 1， 岡部公起 1， 小林広明 1
1 東北大学， 2 日本電気株式会社{yoshiei, musa}@sc.isc.tohoku.ac.jp，{egawa, tacky, okabe, koba}@isc.tohoku.ac.jp
概要： ベクトルコンピュータにおける演算性能(Gflop/s)あたりのメモリバンド幅(GB/s)が低下しており，その影響で実行効率が低下する恐れがある．そこで我々はベクトルプロセッサ向けのキャッシュメモリ機構（ベクトルキャッシュ）を提案している．本報告では，姫野ベンチマークによる性能評価を通じ， Miss Status Handling Register (MSHR)をベクトルキャッシュ内部に備えることで，キャッシュミスが起きた場合の冗長なベクトルロード時間を削減し，実行効率が向上することを明らかにする．MSHR の有効性を検証した結果，ベクトルキャッシュがない場合と比較して最大で 94%の実行効率の向上を達成できることを示した．

1はじめにスーパーコンピュータによるシミュレーショ
ンは理論と実験に並ぶ第3の手法として先端科学分野で重要な役割を担っており，高精度・大規模なシミュレーションが求められることから，より高性能なスーパーコンピュータが必要とされている．しかし近年，CPUに実装可能な入出力ピン数の物理的限界から，メモリバンド幅の向上が今まで以上に困難となっている．その結果，演算性能(Gflop/s)あたりのメモリバンド幅(GB/s)が減尐し，実アプリケーションの実行効率が低下する
恐 れ が あ る [1] ． NEC 製 ベ ク ト ル ス ー パ ー コ ン
ピュータであるSXシリーズにおいても，SX-7で4B/flop，SX-9では2.5B/flopと演算性能あたりのメモリバンド幅が下降傾向にある．そこで我々は，高い実効性能の実現を目的として，ベクトルプロセッサ用キャッシュメモリ機構(以下ベクトルキャッシュ)を提案している[2]．
本報告では，ベクトルキャッシュの効果をより高めるため，キャッシュミス時のロード時間削減
を 目 的 と し て Miss Status Handling Register(MSHR)を導入し，その性能評価を行う．

図 1. ベクトルキャッシュと MSHR を加えたベクトルプロセッサ

クトルロードはメインメモリヘアクセスを行う前に MSHR を確認し，共通するメモリアドレスが存在する場合にはメモリへのアクセスは行われず，データの到着を待つ．結果として，キャッシュミス時の冗長するメモリアクセスを削減でき，メモリロード時間の増加を抑制する効果が期待できる．

3

性能評価
MSHR を加えたベクトルキャッシュを NEC

SX-7 に導入した場合の性能評価を行う．本評価ではキャッシュのラインサイズ 8 バイトの 2-way

MSHR 付きベクトルキャッシュ機構

セットアソシアティブ方式を採用し，キャッシュ

本研究では､演算性能向上に比べて相対的に性能低下が起きているメモリバンド幅をカバーすると共にメモリアクセスレイテンシを削減するために，ベクトルプロセッサ向けキャッシュについて検討する．本ベクトルキャッシュには，キャッシュミス時のアドレス情報管理のために，MSHR[3]を用意し，ノンブロッキングキャッシュを実現する．図 1 にベクトルキャッシュと MSHR を加えたベクトルプロセッサを示す．MSHR はキャッシュミスを起こしたベクトルロードのメモリアドレスを記録しておくレジスタである．後続するベ

また，キャッシュ-レジスタ間を 4B/flop，メモリ-2

容量は 16KB から 2MB まで変化させ評価する．
キャッシュ間を 4B/flop，2B/flop，1B/flop と変化させて比較評価する．評価にはポアッソン方程式
解法をヤコビの反復法で解く際の主要ループで構成された姫野ベンチマークのカーネルを用いる．
はじめに，問題サイズを変化させた時の実行効率を評価する．用いるキャッシュメモリの容量は2MB である．実験の目的は，キャッシュによるメモリバンド幅低下の影響を軽減する効果と短ベク

トル時のメモリアクセスレイテンシ削減の検証でに MSHR を導入することで，キャッシュメモリをある．結果を図 2 に示す．図 2 より，問題サイズ用いない場合と比較して 94%の実行効率の向上をが大きくなるにつれて実行効率が向上していくこ得られることが示された．とが分かる．問題サイズ大きくなると演算時間が増加しメモリロード時間が隠ぺいされ，実行時間4まとめに対する演算時間の割合が増加するためである．

本報告では，姫野ベンチマークを用いてベクト

しかし，B/flop が減尐するとメモリロード時間がルキャッシュの性能を評価した．評価結果より，増加し，隠ぺいできなくなるために実行効率が大全てのサイズにおいてベクトルキャッシュがきく低下する．これに対し，本研究で提案するベB/flop の減尐に伴う実行効率低下の改善に有効でクトルキャッシュは，このような状況においてもあることを示した．さらに，キャッシュミスが頻メモリロード時間を削減し，実行効率の向上に貢出する大きな問題サイズの場合では MSHR のメ献する．また，SS や S において 4B/flop 時でもモリロード時間削減の効果が大きく，実行効率のキャッシュを利用することでより高い実行効率が向上が得られた．また，小さい問題サイズの場合得られる．SS や S においてはベクトル長が 64，ではキャッシュの高メモリバンド幅よりも低レイ128 と短く，メモリレイテンシが表面化するが，テンシ効果が影響し，実行効率の向上が得られる．

キャッシュを導入することでレイテンシが削減さ参考文献

れ，実行効率が向上する．

[1] Kobayashi, H., et al, “Implication of Memory
Performance in Vector-Parallel and Scalar
Parallel HEC,” High Performance Computing on Vector Systems 2006, Springer-Verlag, pages 21-50, 2006.
[2] Kobayashi, H., et al, “The Potential ofOn-Chip Memory Systems for Future Vector
Architectures,” High Performance Computing on Vector Systems 2007, Springer-Verlag, pages 247-264, 2007.

効果の検証を行う．結果を図 3 に示す．横軸はキャッシュ容量，縦軸は実行効率である．MSHRを用いない場合には，キャッシュ容量が 256KBより小さくなるにつれ，2B/flop 以下では実行効率が低下していく．これはキャッシュ容量の不足によるキャッシュミス率の増加によるものである．
そこで MSHR を導入した場合に注目すると，全ての場合において実行効率が向上する．特にキャッシュミスが増える 256KB 以下の場合において高い効果を示し，MSHR を用いることで最大 20%の性能向上が得られることが分かる．図 4 に MSHRによるメモリロード時間の削減率を示す．1B/flopの場合では最大で 20%のメモリロード時間を削減[3] D. Kroft., "Lockup-Free Instruction
Fetch/Prefetch Cache Organization," International Symposium on Computer Architecture Proceedings of the 8th annual symposium on Computer Architecture, pages
81–87, 1981.

実行効率

でき，その結果として 2MB のベクトルキャッシュ
40%
35%
30%
25%
20%
15%
10%
5%
0%

4B/flop
4B/flopwith cache
2B/flop
2B/flopwith cache
1B/flop

実行効率

SS
40%
35%
30%
25%
20%
15%
10%
5%
0%SML

図 2. 問題サイズ毎の実行効率

XL

1B/flopwith cache

メモリロード時間の削減率

次に，キャッシュ容量毎の実行効率と MSHR の25%
20%
15%

4B/flop
2B/flop
1B/flop10%
5%0%キャッシュ容量
図 4. MSHR によるメモリロード時間削減率
4B/flop
4B/flop with MSHR
2B/flop
2B/flop with MSHR
1B/flop
1B/flop with MSHR

キャッシュ容量
図 3. キャッシュ容量毎の実行効率と MSHR の効果(問題サイズ L)