私は問題に取り組んでいます(私は自分の知識をチェックしている人にもっと興味があるので、ここで問題を少し変えるつもりです)。誰かがDキャッシュの理解が正確であることを確認できますか?
3つの10x20次元A、B、Cの配列はすべて倍精度浮動小数点数を保持します。 2048行のDキャッシュがあり、それぞれの長さは256バイトです。それは行優先順位です。
そのあとのように実行しますいくつかのコードを持っている:Aがアドレス0x10014000にある
for(i = 0 to 9)
for(j = 0 to 19)
C[i][j] = A[i][j] + B[i][j]
、Bは、アドレス0x10019000にあり、Cはアドレスで0x1001E000
で、質問は、読み取りヒットを要求し、ライトミス。
私が理解する限り、倍精度浮動小数点数は8バイトです。行の長さはそれぞれ256バイトであるため、キャッシュの各行は32個の値を保持できます。また、2048行であるため、キャッシュには65536個の値を格納できます。右?
A、B、およびCはそれぞれ200個の要素を有する。それは、AとBの最初の読み込み後のすべてが読み込みヒットになることを意味しますか?そして、Cが最初にDキャッシュにロードされていないときに、書き込みミスが1つしかありませんか?
これは正確なのですか、間違っていますか?それは正しいとは言えませんが、私は何が欠けているのか分かりません。