私は客観的なタイプの質問を解決しようとしています、試験に来ました。私は実際に正しい答えを知りません、そしてそれを得る方法を知りません、あなたの助けが必要です。ありがとうございました 。
質問:特定のシステムでは、メインメモリのアクセス時間は100nsです。キャッシュはメインメモリより10倍高速で、ライトスループロトコルを使用します。読み取り要求のヒット率が0.92で、CPUによって生成されたメモリ要求の85%が読み取り用で、残りが書き込み用である場合。その場合、読み取り要求と書き込み要求の両方の平均時間の考慮事項は
a)14.62ns
b)348.47ns
c)29.62ns
d)296.2ns
私の仕事::::
さて、メモリアクセス時間= 100ns
キャッシュアクセス時間は= 10 ns(10倍高速)になります
In order to find avg time we have a formula
Tavg = hc+(1-h)M
where h = hit rate
(1-h) = miss rate
c = time to access information from cache
M = miss penalty (time to access main memory)
ライトスルー操作:キャッシュの場所とメインメモリの場所が同時に更新されます。
CPUによって生成された85%の要求が読み取り要求であり、15%が書き込み要求であると仮定されます。
Tavg = 0.85(avg time for read request)+ 0.15(avg time for write request)
= 0.85(0.92*10+0.08*100)+0.15(avg time for write request)
// * 0.92は読み取り要求のヒット率ですが、書き込み要求のヒット率は指定されていませんか?
書き込み要求のヒット率が読み取り要求のヒット率と同じであると仮定すると、
= 0.85(0.92*10+0.08*100)+0.15(0.92*(10+100)+0.08*100)
=31 ns
書き込みリクエストのヒット率が0%だとすると、
= 0.85(0.92*10+0.08*100)+0.15(0*110+1*100)
=29.62 ns
2番目の仮定は正しいです。
ライトスルーキャッシュを使用すると、変更されたブロックがすぐにメモリに書き込まれ、次にディスクに書き込まれます。ディスクアクセス時間は指定されていないため、式から除外されます。私の表記法は少し異なりますが、将来の読者のためにそのように投稿します。 William StallingsOperating Systems:Internals and Design Principlesで与えられた表記法を使用しました。
与えられた:
Tm = 100ns
Tc = 10ns /* 10x faster than Tm */
Hr = 0.92 /* Hit rate reading */
85% reading => 15% of the time writing
解決策:
The effective access time for reading:
Te_r = Hr * Tc + (1-Hr)Tm = 0.92*10 + (1 - 0.92)100 = 9.2 + 8 = 17.2
The effective access time for writing, is determined from the Hit rate Hw,
which is always 0, because the data must be immediately written onto the
memory.
Te_w = Hw * Tc + (1-Hw)Tm = 0*10 + (1 - 0)100 = 100
Taking into account the percentage:
0.85*17.2 + 0.15*100 = 14.62 + 15 = 29.62
Q.E.D
読み取りのみを考慮した平均アクセス時間= 0.92 * 10 + 0.08 * 100 = 17.2ns。
書き込みのみを考慮した平均アクセス時間= 100 ns(書き込みスルーでは、ヒットまたはミスであっても更新するためにメモリに戻る必要があるため。ヒット率= 0.5およびミス= 0.5と仮定すると、0.5 * 100 + 0.5 * 100 = 1 * 100)
したがって、読み取りと書き込みの両方の合計アクセス時間は、-0.85 * 17.2 + 0.15 * 100 = 14.62 + 15 = 29.62nsになります。
**書き込みのヒット率を読み取りのヒット率と同じにすることはできません。書き込み要求(ライトスルー)の場合は、どのような場合でも、メモリに書き戻す必要があります。したがって、書き込みアクセス時間はメモリアクセス時間と等しくなります。
ライトスルーポリシーの場合、およびキャッシュミスが発生したときにデータがメインメモリから直接読み取られる場合、
Tavg(for write)=Hw*Tm +(1-Hw)*Tm = Tm
Hw =書き込みのヒット率、Tm =メインメモリにアクセスする時間
この式では、キャッシュのヒットとミスの両方の場合で、通常はTm >> Tcであるため、Tm時間自体でデータの更新と読み取りを同時に行うことができます。したがって、読み取りのTcは無視できます。
したがって、この質問の書き込みのヒット率を知る必要はありません。答えは29.62nsになります