2017-06-10 16 views
0

私は命令キャッシュのヒット率を計算しようとしています。私はシミュレータでキャッシュをシミュレートし、PCでそれをフィードします。キャッシュで見つかったPCの数や検出されたPCの数、それらのOpCodeフィールドが一致しているとヒット率を報告する必要があるのでしょうか?命令キャッシュにオペコードが格納されていますか?

これらの質問は、命令キャッシュの目的の性質に戻ります。命令キャッシュはOpCodeの検索に使用されていますか?ブランチターゲットを格納するBranch Target Buffer(BTB)にあります。 BTBの場合、ヒット率は、PCがヒットした後、ターゲットが一致した時点で計算されます。 (より詳細に:分岐予測器が正しく予測し、分岐がとられると)命令キャッシュにもこのようなことがあるかどうかを知りたい。

答えて

1

分岐予測とキャッシュという概念が混乱しています。分岐予測子は、を予測するために使用され、は分岐の結果になります。分岐が取られると予測される場合、次のPCはBTAC(分岐ターゲットアドレスキャッシュ)から取られる。ヒット情報は、実際の分岐ターゲットと方向が計算されたときに後になります。ここで、ブランチの予測された方向と結果の両方を実際の結果と比較します。それらのすべてが一致すればヒットします。

一方、キャッシュはCPUへの迅速なデータアクセスを提供するためにデータを格納するために使用されます。したがって、ヒットを得るために「オペコード」を比較する必要はありません。

オペコードを保存しておく必要がありますが、ヒットしたオペコードを検索できるようにする必要があります。キャッシュヒットを取得するには、有効なキャッシュラインからタグを取得し、それを現在のタグと比較するだけです。ここでタグは、キャッシュの実装に応じて、PCの一部のビットに過ぎません。

関連する問題