2011-10-17 8 views
1

、私は以下に記載される問題で立ち往生しています、時間的局所性が

を示すであろう一般的な特徴と、プログラムの動作を説明してフェッチ:
データに関しては(a)の低時間的局所
(b)の命令に関しては、低時間的局所性が

をフェッチアクセスし、私は、時間的局所性を理解し、私はそれが再して何を意味理解することができませんデータアクセスと命令フェッチを行う。もし誰かが私にそれを説明できるなら、私はとても感謝しています。

答えて

1

CPUのデータと命令にアクセスするためのキャッシュの最適化について説明しています。本質的に、時間的局所性が低いということは、頻繁に再利用されるものの、1つの大きなチャンク(すなわち、時間の経過とともに)には再利用されないものを意味する。低い時間的局所性の

例:

read file 
process data 
output result 
.... 
read file 
process data 
output result 
.... 
read file 
process data 
output result 

あなたは再手配することができ、これを改善するためので、すべての読み込みが一緒に行われていることを、すべての処理をまとめて実行され、すべての出力が一緒に行われます。

CPUのコンテキストでは、頻繁にメモリを読み取る必要がある場合は、一度読み取ってキャッシュし、できるだけ多くの部分を破棄してから廃棄してください。命令については、非常に高速なキャッシュ(通常はL1)にループ命令のようなものを保つことを意味します。データの場合は、最もよく使うものをキャッシュすることを意味します。

は、適切な説明のためにこれらのリンクを参照してくださいコードの
http://www.dotnetperls.com/temporal-locality
http://en.wikipedia.org/wiki/Locality_of_reference#Use_of_spatial_and_temporal_locality:_hierarchical_memory

+0

が、私はまだ両方のための時間的局所性について混乱しています。この例では、2つのうちのどちらを指定しましたか(命令フェッチ/データアクセス)? –

+0

例は両方のためのものでした。読み取り、処理、および出力操作には、それらに関連付けられたコードブロックがあります。現在の状態では、各コードブロックがメモリからフェッチされ、実行されます。操作がクラスタ化されている(すなわち、読み込み、読み込み、処理、処理、処理、出力、出力、出力)場合、コードブロックはそれぞれ3回ではなく1回ずつメモリから読み出すことができる。同じことが操作によって使用されるすべての変数またはデータに適用されます。 – Polynomial

+0

ありがとうございます。一時的な地域が一般的に高いか低いかを教えてください。どちらが良いですか? –

0
  • 低い時間的局所性にはループや指示の無い再利用を意味しません。
  • コードの時間的局所性が高いということは、再利用の多いタイトなループを意味します。
  • コードの空間的局所性が低いことは、離れた場所へのジャンプが多いことを意味します。
  • コードの空間的局所性が高いということは、ブランチ/ジャンプがまったくないことを意味します。

REFERENCE:コンピュータの構成と設計:ハードウェア/ソフトウェアインターフェース

関連する問題