0

これらは以前の宿題の問題ですが、試験の復習として使用しています。実際に問題になっているものから数値を変更しています。概念を確実に把握したいだけです。私はすでに答えを持っています。私がそれらを理解していることを明確にする必要があります。これは宿題ではなく復習です。

とにかく、これはCPIの側面に焦点を当てています

最初の問題:

1 GHz プロセッサで実行されるアプリケーションには、30% のロード/ストア命令、30% の算術演算、および 40% の分岐命令があります。個々の CPI は、ロード/ストアの場合は 3、算術演算の場合は 4、分岐命令の場合は 5 です。指定されたプロセッサでのこのプログラムの全体的な CPI を決定します。

私の答え: 全体の CPI は、サブ CPI の合計に、サブ CPI が発生するパーセンテージを掛けたものです。つまり、3*0.3 + 4*0.3 + 5*0.4 = 0.9 + 1.2 + 2 = 4.1 です。

現在、プロセッサは 1.6GHz で動作するように強化されています。分岐命令の CPI は同じままですが、ロード/ストアおよび算術命令の CPI は両方とも 6 サイクルに増加します。分岐命令の 30% とロードストアの 10% を排除する新しいコンパイラが使用されています。新しい全体的な CPI と、アプリケーションが高速または低速になる係数を決定します。

私の答え: 繰り返しになりますが、新しい CPI はその部分の合計にすぎません。ただし、パーツが変更されているため、これを考慮する必要があります。分岐命令は 30% (0.4*0.7=0.28) 減少し、ロードストアは 10% (0.3*0.9=0.27) 減少します。算術命令が残りの命令 (1-0.28-0.27=0.45)、つまり 45% を占めるようになります。これらに新しいサブ CPI を掛けて、6*0.45+6*0.27+5*0.28=5.72 を取得します。

現在、プロセッサの機能強化は 60% 速く、CPI は (5.72-4.1)/4.1 = 39.5% 大きくなっています。したがって、アプリケーションは約 0.6*0.395 = 23.7% 速く実行されます。

さて、2番目の問題:

ロード/ストア アーキテクチャを備えた新しいプロセッサの理想的な CPI は 1.25 です。このプロセッサの典型的なアプリケーションは、50% が算術演算とロジック、25% が条件付き分岐、25% がロード/ストアです。メモリは、個別のデータ キャッシュと命令キャッシュを介してアクセスされ、命令キャッシュ ミス率は 5%、データ ミス率は 10% です。キャッシュ ミスのペナルティは 100 サイクルで、ヒットしてもペナルティは発生しません。

実効CPIとは?

私の答え: 実効 CPI は、理想的な CPI に、キャッシュ アクセスによる命令ごとのストール サイクルを加えたものです。理想的な CPI は、与えられているように 1.25 です。命令ごとのストール サイクルは (0.1*100*0.25) + (0.05*100*1) = 7.5 です。0.1*100*0.25 は、データ ミス率にストール サイクル ペナルティを掛けたもので、ロード/ストアの割合 (データ アクセスが行われる場所) も掛けたものです。0.05*100*1 は命令キャッシュ ミス率です。これは、命令キャッシュ ミス率にストールしたサイクル ペナルティを掛けたものです。命令アクセスはプログラムの 100% で発生するため、これに 1 を掛けます。これに続いて、実効 CPI は次のようになります。 1.25 + 7.5 = 8.75。

一般的なアプリケーションの 1000 命令あたりのミス数と、一般的なアプリケーションの平均メモリ アクセス時間 (クロック サイクル) は?

私の答え: 1000 命令あたりのミス数は、キャッシュ アクセスによる 1 命令あたりのストール サイクル (上記のように: 7.5) に等しく、1000 で割ると 7.5/1000 = 0.0075 となります。

平均メモリ アクセス時間 (AMAT) について説明するときは、まずアクセスの総数について説明する必要があります。これは、データ アクセスの割合 (25%) に命令アクセスの割合 (100%) を加えたもの、つまり 125%=1.25 です。 . データ アクセスは .25/1.25 で、命令アクセスは 1/1.25 です。

AMAT は、データ アクセスのパーセンテージ (.25/1.25) にヒット時間 (1) とデータ ミス率の合計を掛けて、ミス ペナルティ (0.1*100) を掛けた値、または (.25/1.25)(1) と等しくなります。 +0.1*100) であり、これは、命令アクセスのパーセンテージ (1/1.25) に、ヒット時間 (1) と命令ミス率の合計にミス ペナルティ (0.05*100) を掛けた値を掛けた値、または (1 /1.25)(1+0.05*100)。まとめると、AMAT は (.25/1.25)(1+0.1*100)+(1/1.25)(1+0.05*100)=7 です。

繰り返しますが、テキストの壁で申し訳ありません。私が間違っている場合は、私がどのように間違っているかを理解できるようにしてください. できるだけ簡単に理解できるように、すべての作品を表示しようとしました。前もって感謝します。

4

1 に答える 1

0

質問の後半に誤りがあります。彼らが尋ねるとき:

What is the misses per 1000 instruction for typical applications and what is the average memory
access time (in clock cycles) for typical applications?

ここで必要なのは、1000 命令ごとに得られるミスの数です。この場合、命令キャッシュ ミスの場合は 1000*1*0.05、データ キャッシュ ミスの場合は 1000*0.25*0.1 になります。これは、1000 命令あたり 75 ミスに相当します。

AMAT を計算するには、式 AMAT = ヒット時間 + (ミス率*ミス ペナルティ) を使用します。

この場合、ミス率は 75/1000 で、ミス ペナルティは 100 サイクルです。ヒット時間は 1.25 サイクル (理想的な CPI!) として与えられます。

これがあなたの試験に役立つことを願っています!

于 2014-02-22T17:28:20.253 に答える