特許
J-GLOBAL ID:200903039266125533
ソフトウェアプリフェッチ方法
発明者:
出願人/特許権者:
代理人 (1件):
富田 和子
公報種別:公開公報
出願番号(国際出願番号):特願平11-008234
公開番号(公開出願番号):特開2000-207224
出願日: 1999年01月14日
公開日(公表日): 2000年07月28日
要約:
【要約】【課題】 最内側ループ中にないデータの参照に対して、プリフェッチしたデータが使用される前にキャッシュから追い出されるのを防止する。【解決手段】 配列参照A(i)の直前にあるループ(605〜607)を取り出し、ループ(605〜607)全体の予測実行サイクル数dがデータをプリフェッチするのに必要なサイクル数(メモリレイテンシ)kより大きければ、ループ(605〜607)のループ1回あたりの予測実行サイクル数eを求め、メモリレイテンシに相当するループ回数β=[k/e]を計算する。そして、ループ(605〜607)を、1〜(M-β)回の繰り返しを実行する前半ループ(624〜627)と、(M-β+1)〜M回の繰り返しを実行する後半ループ(628〜630)の2つのループに分割し、前半ループ(624〜627)と後半ループ(628〜630)の間に、プリフェッチ命令(627)を挿入する。
請求項(抜粋):
プリフェッチ命令を持つプロセッサに対するオブジェクトコードを生成するコンパイラにおいて、プリフェッチの対象とするメモリ参照を含む第1のループがその内側に第2のループを有する場合に、当該第2のループのループ繰り返し1回あたりの実行サイクル数と、データをプリフェッチするのに要するサイクル数であるメモリレイテンシとに基づいて、当該メモリレイテンシに相当する第2のループの繰り返し回数βを求め、前記第2のループを、終わりのβ回を実行する後半ループと、その前までの繰り返しを実行する前半ループとに分割し、前半ループと後半ループの間にプリフェッチ命令を挿入することを特徴とするソフトウェアプリフェッチ方法。
IPC (2件):
FI (2件):
G06F 9/44 322 G
, G06F 12/08 D
Fターム (4件):
5B005JJ13
, 5B005MM01
, 5B081CC30
, 5B081CC41
前のページに戻る