0

通常、20% のメモリ命令があります。5% のデータ TLB ミスがあり、それぞれの処理に 100 サイクルが必要であると仮定します。各命令の実行に 1 サイクルが必要であり、キャッシュ内の各メモリ操作は 1 サイクルであり、データ アクセスの 10% がキャッシュ ミスであると仮定します。各キャッシュ ミスは 15 サイクルなので、1000 命令を実行するのにかかる時間はどれくらいか。

答えはわかりませんが、TLB とキャッシュの両方が存在することに混乱しています。キャッシュと TLB は同じものであるという印象を受けましたか?

4

2 に答える 2

0

キャッシュミスのオーバーヘッド = 14 サイクル

TLB ミスのオーバーヘッド = 99 サイクル

キャッシュミス = 1000 * 20% * 10% = 20

TLB ミス = 1000 * 20% * 5% = 10

合計サイクル数 = 1000 サイクル + (キャッシュ ミスによるオーバーヘッド) + (TLB ミスによるオーバーヘッド)

                = 1000 + (20 * 14) + (10 * 99) = 1000 + 280 + 990 = 2270 cycles
于 2015-12-16T05:39:32.820 に答える
0

それらは2つの非常に異なるものです...

簡単に言うと、TLB にはアドレスのみが含まれますが(TLB は仮想アドレスの変換を高速化するために必要です)、キャッシュには何でも (つまり、あらゆる種類のメモリ、コードまたはデータ) を含めることができます。

于 2014-02-10T17:15:56.047 に答える