キャッシュサイズとアクセス遅延の間には対応関係がありますか?


9

キャッシュサイズとアクセス遅延の間には対応関係がありますか?他のすべてが同じである場合、キャッシュが大きくなると動作が遅くなりますか?もしそうなら、なぜですか?どれくらい遅いですか?


1
キャッシュ設計におけるいくつかのトレードオフを調査することに関心がある場合、HP は設計特性に基づいてレイテンシと電力使用の推定を提供するツールCACTIを開発しました。バージョン5.3のためのウェブインターフェースも利用可能です
Paul A. Clayton

回答:


5

手にあるアイテムは、ポケットにあるアイテムよりも速くアクセスできます。ポケットにあるアイテムは、Digikeyにあるアイテムよりも、食器棚にあるアイテムよりも速くアクセスできます。ここに挙げた連続する各タイプのストレージは、以前のものより大きくなりますが低速です。

だから、両方の長所を手に入れましょう。あなたの手をDigikeyの倉庫のように大きくしましょう!いいえ、それは機能しません。なぜなら、彼らはもはや実際にはもう手ではないからです。彼らはあなたの重さを量る砲弾です。

大容量ストレージのアクセスが遅い理由は、距離です。大きなストレージは、平均してあなたから遠く離れています。これは、物理的なアイテムとRAMに当てはまります。

コンピュータのメモリは、物理的なスペースを占有します。そのため、メモリが大きいほど物理的に大きくなり、そのメモリ内の一部の場所は物理的に離れます。速度制限があるため、遠くにあるものはアクセスに時間がかかります。ポケットやDigikeyの場合、制限速度は腕の速度と高速道路の制限速度です。

RAMの場合、速度制限は、電気信号の伝搬速度、ゲートとドライバーの伝搬遅延、および同期クロックの一般的な使用です。お金が問題ではなく、今日利用可能な最速のRAMテクノロジを好きなだけ買うことができたとしても、そのすべてから利益を得ることができません。必要に応じて、L1キャッシュのA4サイズのシートをレイアウトし、CPUを中央に配置します。CPUがメモリの隅にあるメモリにアクセスする必要がある場合、要求がそこに到達するまでにナノ秒かかり、戻ってくるまでにナノ秒かかります。そしてそれには、ゲートとドライバーを通過するすべての伝搬遅延は含まれていません。これにより、3GHzのCPUが大幅にスローダウンします。

同期論理は非同期論理よりも設計がはるかに簡単なので、RAMの1つの「ブロック」は同じクロックでクロックされます。メモリ全体をL1キャッシュにしたい場合は、メモリ内で最も離れた場所の最悪の場合のタイミングに対処するために、低速クロックでロット全体をクロックする必要があります。これは、離れたメモリロケーションがローカルのロケーションを抑制していることを意味します。したがって、メモリをゾーニングするのが最善の方法です。キャッシュの最も近​​いセクションと最小のセクションは、最も速いクロックを使用します。次の最も近いセクションと最小のセクションでは、少し遅いクロックを使用します。

そして今、あなたはL1とL2キャッシュとRAMを持っています。

これが次の理由である電力消費につながります。

キャッシュは実際にはかなりの電力を消費します。メモリ自体だけでなく、キャッシュラインとメインメモリの間のマッピングを処理する、メモリを取り巻くすべてのロジック。この追加ロジックのパフォーマンスを向上させると、消費電力が増加する可能性があります。これで、特定のアプリケーション(モバイル、組み込み)について、キャッシュを小さく保つインセンティブがさらに高まります。

参照キャッシュの消費電力と性能の最適化のための設計トレードオフ:Aケーススタディ(チン・ロング蘇とアルヴィン・M. Despain、1995)。


1
+1私はあなたの答えが好きです。関連するすべてのポイントをヒットし、同様にバックアップします。読みやすい
Gustavo Litovsky 2013

そうですか?答えは、数インチ対数インチの光速の遅れを前提としていますか?
Andyz Smith

1
この回答は一般的な概要としては適切ですが、最初の質問には回答しないと思います。A4サイズのキャッシュが実用的でないことを理解するために、uArchの専門家であってはなりません。OPは、キャッシュのサイズの合理的な増加と、この増加がキャッシュアクセスのレイテンシにどのように影響するかについて尋ねたと思います。
Vasiliy

1
@AndyzSmith-これは大げさな誇張と過度の単純化ですが、ある時点で、L1キャッシュを無制限に拡大できないという一般的なポイントが得られると思います。ある時点で、物理法則が入り、それを遅くします。
Rocketmagnet

オンチップ信号の遅延は光速ではなく、ネット/ワイヤと駆動ゲートキャパシタンスをRLCネットワークと見なして計算される、より複雑な値です。伝送ラインになるには十分な長さではありません。ネットが長いほど、駆動ゲートを大きくする必要があります。または、リピーターとしてバッファーを挿入する必要があります。これらはすべて、より多くの電力を消費します。
pjc50 2013

4

経済的/パフォーマンス/電力消費の要素をすべて除外すると、質問への答えは次のとおりです。それは多くのマイクロアーキテクチャの要素に依存します。

例として、このリファレンスを参照してください。テスト中のすべてのプロセッサの測定されたL1アクセスレイテンシは4クロックサイクルです。プロセッサーの周波数はほぼ同じですが、L1キャッシュのサイズは最大3倍異なります。

上記のテストでいくつかの異なるプロセッサ間でL1への一定のレイテンシが発生する理由は、キャッシュのマイクロアーキテクチャにあります。キャッシュアクセス自体(メモリからのデータの取得)は、単一のクロックサイクルしかかかりません。追加の3サイクルは、アクセスのデコード、データの存在の確認などに費やされます。追加のステージの数は、テスト中のプロセッサ全体で同じであるため、アクセスのレイテンシは同じです。

上記の例にもかかわらず、キャッシュレイテンシはキャッシュのサイズに依存しないという結論に達すべきではありません。誰かが途方もなく大きいL1キャッシュを実装しようとすると、キャッシュの読み取りに必要なすべての操作を実行するロジックも大きくなります。ある時点で、このすべてのロジックによる伝搬遅延は長すぎ、事前に1クロックサイクルだけかかっていた操作を複数のクロックサイクルに分割する必要があります。これにより、レイテンシが増加します。

問題のキャッシュがSRAMに実装されていると仮定すると、キャッシュサイズによって最も影響を受けるモジュールは、行デコーダーとマルチプレクサです。ただし、非常に大きなキャッシュの場合、センスアンプでも影響を受けます。容量が大きいためにビットラインの電圧振幅が小さくなると、「強力な」センスアンプが必要になります。つまり、ロジック速度への最も深刻な影響は、配線相互接続容量によって追加されます。この容量は、SRAMサイズに対する線形依存以上のものです。正確な詳細は実装固有です。

現在、L1キャッシュは、パフォーマンスが最も重要であるため、レイテンシがかなり安定しています。L2キャッシュとL3キャッシュを分析しようとすると、状況が非常に複雑になります。

マルチコアプロセッサを検討すると、状況はさらに複雑になります。キャッシュコヒーレンシを確保するための追加ロジックがあります。これは、キャッシュアクセスのレイテンシに影響を与える追加の要因、つまりすべてのコアのメモリへのアクセスの履歴につながります。

概要

ご覧のとおり、質問は簡単なものではなく、完全に回答することはできません。ただし、経済的でパフォーマンスが望ましいキャッシュを検討する場合、キャッシュのサイズはレイテンシにそれほど影響を与えないと思います。

興味のある読者向け:

このリファレンスは、最新のCPUのパフォーマンス要因の非常に詳細な分析です。そこにはキャッシュ関連の資料がたくさんあります。コンピュータアーキテクチャとマイクロアーキテクチャの原則に関する深い理解が必要です(または、この分野の専門家になるために知っておく必要があるトピックの優れた要約)。


答えてくれてありがとう!あなたと@Rocketmagnetの答えはほぼ補完的です。両方を選択できるといいのですが。私はすでに引用文献のコピーを引用しており、最近このトピックに非常に興味を持っているので、質問です。
ivanmp 2013

読み取り操作を実行するロジックがキャッシュサイズに依存する理由 または離散ジャンプがない場合、アクセス時間とサイズの式は何ですか?
Andyz Smith

どのコンポーネントについて具体的に説明できますか:「重要な繰り返しとは、加算器、デコーダ、SRAMワードライン、SRAMビットライン、センスアンプ、バイトステアリングマルチプレクサ、バイパスです。マルチプレクサ。」ロジックが大きくなりますか? en.wikipedia.org/wiki/Sum_addressed_decoder
Andyz Smith

@AndyzSmith、アクセス時間とサイズの式は、キャッシュを設計およびシミュレーションしている人だけが与えることができます。私が投稿したリファレンスでは、L1からデータを取得するのに4クロックサイクルかかることを確認できますが、これらの読み取りに関連するスラックを推定しようとする人はいません。数式を求めることは、多くの追加の実装固有の情報がなければ、実際的な問題ではありません。
Vasiliy

1
@AndyzSmith、問題のキャッシュがSRAMに実装されていると仮定すると、キャッシュサイズによって最も影響を受けるモジュールは、行デコーダーとマルチプレクサです。ただし、センスアンプでも、非常に大きなキャッシュの場合は影響を受けます。容量が大きいため、ビット線の電圧振幅が小さい->「より強力な」センスアンプ。つまり、ロジック速度への最も深刻な影響は、配線相互接続容量によって追加されます。この容量は、SRAMサイズに対する線形依存以上のものです。ここでも、詳細は実装固有です。
Vasiliy

3

CPUキャッシュテストエンジニアはこちら-コメントのDave Tweedが正しい説明をしています。キャッシュは、CPUの予想価格でパフォーマンスを最大化するサイズになっています。キャッシュは一般にダイスペースの最大の消費者であり、そのサイズは経済(およびパフォーマンス)に大きな違いをもたらします。

IntelのIvy Bridge CPUファミリーのページをご覧ください:http : //ark.intel.com/products/codename/29902/Ivy-Bridge

トップエンドのXeonには30MBのキャッシュが付属し、12コアを持ち、コストは約$ 2700です。3MBのキャッシュを備えたローエンドのi3(i3-3217)は、ラップトップ全体でわずか500ドルです(個別に見つけることはできません)。

Xeonは究極のパフォーマンスを提供しますが、製造とテストのコストも高くなります。i3の方がはるかに安価ですが、トレードオフはダイのサイズが小さくなることであり、その中でキャッシュが最も大きな部分を占めます。


2
非常に興味深い答え。しかし、質問で述べたように、私は経済的で明白な答えを探しているのではありません。私が理解しようとしているのは、非常に(512 MBを超える)大きなキャッシュへのアクセスに関連するパフォーマンスに関連しています。サイズはキャッシュのパフォーマンスを低下させますか?
ivanmp 2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.