Most of modern processors have some much faster cache memories than a main memory, and therefore, it is important to hit the cache memories for efficient execution. We previously proposed Global Load Instruction Aggregation (GLIA), which improves cache hit rate by reordering load instructions in the way that ones accessing to the same arrays or records were aggregated. The technique was effective for small arrays, but had a disadvantage for big arrays even if they were aggregated. We propose a new load instruction aggregation technique considering dimensions of arrays. In the new technique, load instructions which have more common higher dimensions are aggregated prior to other ones accessing to the same arrays. We show that the aggregation manner achieves more improvement of cache hit rate independently of the size of arrays included in programs.%現在のプロセッサは,プロセッサの演算速度に比べて低速なメモリと,メモリより高速なキャッシュメモリを備えていることが多い.このような構成のプロセッサ上で,プログラムを効率的に動作させるためには,キヤッシュメモリの有効な利用が重要である.著者らは,前研究において,同じ配列や構造体のデータを参照するロード命令を集約し,メモリアクセス順序を連続させることによってデータの空間的局所性を高め,キャッシュのヒット率を向上させる大域ロード命令集約を提案した.しかしながら,大域ロード命令集約は,集約させる対象を同じ配列としており,サイズの大きい配列において,キャッシュミスを生じる可能性があった.本研究は,配列の次元を考慮した集約を行うことによって,従来法よりもキャッシュヒット率を向上させる手法を提案する.本手法では,同じ配列に対するロード命令でも,空間的局所性が高い次元を優先して集約する.
展开▼