植物 植物
直前対策講座:NFPとヒット率

AOBA's Information Processing Education



1997/10/05

注意1:このページは、回線を切断した後でゆっくりご覧になってください(テキストを印刷する場合は、その取り扱いに注意してください)。

注意2:背景が白地の画面を長時間見つめていると頭が痛くなってしまいますので、ここは背景をグレーにしています。


「平成3年 第1種 午前 問5」

問5 計算機システムの性能に関する次の記述を読んで、設問中の(   )に入れるべき最も適切な字句を、解答群の中から選べ。

 図及び表に示すようなキャッシュメモリと主記憶(合わせて記憶装置と呼ぶ)をもつ2台のCPU XとYがある。これら2台のCPUは命令実行時間が異なるだけで、命令群、キャッシュメモリの読取り方法、キャッシュメモリと主記憶の入替え方法、1命令当たりの記憶装置の参照頻度等の仕様はすべて同じである。

 また、CPUの平均命令実行時間は、記憶装置の平均読取り時間(CPUから見た主記憶装置とキャッシュメモリを合わせた平均読取り時間)に比例し、記憶装置の平均読取り時間が同じであれば、CPUの平均命令実行時間は同じになるものとする。

 なお、取り出したい情報が、キャッシュメモリにない確率をNFP(Not Found Probability)という。

図

表 読取り時間
記憶装置CPU XCPU Y
キャッシュメモリ40 ns20 ns
主記憶400 ns600 ns

[設問]

(1) ( a )の容量が大きいほど、NFPは( b )なる。
 キャッシュメモリの読取り時間をTc,主記憶の読取り時間をTmとすると、CPUから見た記憶装置の平均読取り時間は、NFPを用いて( c )と表すことができる。

(2) NFPが( d )のとき、CPU XとYの平均命令実行時間は同程度となる。

(3) NFPが0.1のとき、CPU XとYの平均命令実行時間を同程度とするには、CPU Xの主記憶の読取り出間を( e )ns程度にすればよい。

(4) NFPが0.08であるとすると、( f )のほうが平均命令実行時間が短い。

(5) NFPの値が一定であるとき、CPUの平均命令実行時間を短くするためには、主記憶またはキャッシュメモリの( g )

a,bに関する解答群

 ア CPU X  イ CPU Y  ウ キャッシュメモリ  エ 主記憶  オ 大きく  カ 小さく

cに関する解答群

 ア Tc×NFP+Tm×NFP
 イ (Tc×NFP+Tm×NFP)÷2
 ウ Tc×NFP×Tm×(1−NFP)
 エ Tc×(1−NFP)+Tm×NFP
 オ Tc×NFP+Tm×(1−NFP)
 カ Tc×(1−NFP)+Tm×(1−NFP)
 キ (Tc×(1−NFP)+Tm)×NFP
 ク ((Tc+Tm)×(1−NFP))÷2

d,eに関する解答群

 ア 0.05    イ 0.07    ウ 0.09
 エ 0.91    オ 13.3    カ 45.2
 キ 420     ク 1,200    ケ 1,420

fに関する解答群

 ア CPU X     イ CPU Y

gに関する解答群

 ア 容量を大きくすればよい
 イ 容量を小さくすればよい
 ウ 読取り時間を短くすればよい
 エ 読取り時間を長くすればよい


解説

 問題文にあるように、取り出したい情報がキャッシュメモリにない確率をNFP(Not Found Probability)といいます。逆に、取り出したい情報がキャッシュメモリにある確率をヒット率といいます(ヒット率=1−NFP)。
 NFPやヒット率に関する問題は、数学における”期待値”を考えることによって解くことができます。
 大事な公式は次に示す式だけであり、これさえ覚えておけば、この類の問題は楽勝でしょう。

 平均読取り時間
=キャッシュメモリの読取り時間*(1−NFP)+主記憶の読取り時間*NFP
=キャッシュメモリの読取り時間*ヒット率+主記憶の読取り時間*(1−ヒット率)

aとbについて

 感覚で分かりますね。キャッシュメモリの容量が大きいほど、NFPは小さくなります(言い換えるとヒット率が大きくなります)。

cについて

 先に説明した平均読取り時間を求める公式のキャッシュメモリの読取り時間にTc,主記憶の読取り時間にTmを代入します。したがって、

Tc×(1−NFP)+Tm×NFP です。

dについて

 CPU Xの平均読取り時間=40ns*(1−NFP)+400ns*NFP・・・@
 CPU Yの平均読取り時間=20ns*(1−NFP)+600ns*NFP・・・A

 この両者が等しいのですから、@式=A式とします。

 40ns*(1−NFP)+400ns*NFP=20ns*(1−NFP)+600ns*NFP

 このNFPを解いて、NFP=20/220=0.0909....

(注)ns=10-9sec

eについて

 CPU Xの平均読取り時間=40ns*(1−0.1)+Tm*0.1・・・B
 CPU Yの平均読取り時間=20ns*(1−0.1)+600ns*0.1・・・C

 この両者が等しいのですから、B式=C式とします。

 40ns*(1−0.1)+Tm*0.1=20ns*(1−0.1)+600ns*0.1

 このTmを解いて、Tm=420ns

fについて

 CPU Xの平均読取り時間=40ns*(1−0.08)+400ns*0.08=68.8ns
 CPU Yの平均読取り時間=20ns*(1−0.08)+600ns*0.08=66.4ns

 CPU Yの方が平均読取り時間が短いので、平均命令実行時間も短いですね(問題文より)。

gについて

 問題文に答えがモロに載っているようなものです(”CPUの平均命令実行時間は、記憶装置の平均読取り時間に比例し・・・・”)。
 なお、主記憶又はキャッシュメモリの容量を変化させると、NFPも変化します。つまり、NFPが一定ではありませんので、アとイは題意に合いません。

こんなふうに、NFP(ヒット率)に関する問題は簡単ですよ。


解答

a−ウ  b−カ  c−エ  d−ウ  e−キ  f−イ  g−ウ