令和元年度 秋期 応用情報処理技術者試験 午前 問10
問題
容量が \(a\) Mバイトでアクセス時間が \(x\) ナノ秒の命令キャッシュと, 容量が \(b\) Mバイトでアクセス時間が \(y\) ナノ秒の主記憶をもつシステムにおいて, CPU からみた, 主記憶と命令キャッシュとを合わせた平均アクセス時間を表す式はどれか。ここで, 読み込みたい命令コードがキャッシュに存在しない確率を \(r\) とし, キャッシュ管理に関するオーバーヘッドは無視できるものとする。
ア \( \displaystyle \frac {( 1 – r )\cdot a}{ a + b } \cdot x + \frac{r \cdot b}{ a + b } \cdot y \)
イ \( ( 1 – r )\cdot x + r \cdot y \)
ウ \( \displaystyle \frac {r \cdot a}{ a + b } \cdot x + \frac{(1 – r) \cdot b}{ a + b } \cdot y \)
エ \( r \cdot x + ( 1 – r ) \cdot y \)
解説
キャッシュは、cacheで、隠し場や、貯蔵所という意味になります。CPUなど処理装置がデータや命令などのやり取りを高速化するためのメモリーです。キャッシュメモリと表現されることもあります。単にメモリと呼ばれる主記憶装置よりも高速で、CPUと主記憶装置の間に置かれます。
CPU ←→ キャッシュ ←→ 主記憶装置
主記憶装置よりも高速なキャッシュ に、命令やデータを格納することにより、主記憶装置へのアクセスを減らせて処理を高速化します。
問題ですが、キャッシュで処理できる命令と主記憶装置で処理する命令の時間を合計した時間を表す式を聞いてきてます。
問題文から命令コードがキャッシュに存在しない確率が、\(r\)なので、キャッシュに存在する確率は、\(1-r\)になります。
問題文を整理してみます。
・命令キャッシュ
容量 :\(a\) M バイト
アクセス時間 : \(x\) ナノ秒
存在する確率 :\(1-r\)
・主記憶
容量 :\(b\) M バイト
アクセス時間 : \(y\) ナノ秒
存在しない確率:\(r\)
問題を解くまえに、命令キャッシュと主記憶それぞれに毎回アクセスすると仮定すると、アクセス時間はどのように表せるでしょうか。これは簡単かと思います。
命令キャッシュのアクセス時間と主記憶のアクセス時間の合計になるため、
\(x + y\) ナノ秒
となります。
上記仮定では、キャッシュのメリットが活きてきませんね。
主記憶装置へアクセスしなくてもキャッシュで処理して高速に処理しましょう。キャッシュで処理できる確率が\(1-r\)となります。この確率が高ければ高いほど処理が高速になります。
問題を解いていきます。
CPUからみた、主記憶と命令キャッシュを合わせた平均アクセス時間を表す式を考えるには、主記憶の平均アクセス時間と命令キャッシュの平均アクセス時間を分けて、それぞれ計算して、合計すればOKです。
・主記憶の平均アクセス時間
主記憶へのアクセス時間 × 主記憶で処理する確率
\( = y \times r\)
・命令キャッシュの平均アクセス時間
命令キャッシュへのアクセス時間 × 命令キャッシュで処理する確率
\( = x \times (1-r)\)
合計すると、
\( (y \times r\) + (x \times (1-r)))
となります。
この式と同じものは、イ \( ( 1 – r )\cdot x + r \cdot y \) となりますね。
命令キャッシュと主記憶の容量が問題文にありましたが、こちらは使わなくて表せます。引っかけですね。
主記憶や命令キャッシュで処理する確率が出ていなく、容量で計算する。となっている場合は、容量を利用しての計算となります。
正解
イ \( ( 1 – r )\cdot x + r \cdot y \)
あらためて問題と正解
容量が \(a\) Mバイトでアクセス時間が \(x\) ナノ秒の命令キャッシュと, 容量が \(b\) Mバイトでアクセス時間が \(y\) ナノ秒の主記憶をもつシステムにおいて, CPU からみた, 主記憶と命令キャッシュとを合わせた平均アクセス時間を表す式はどれか。ここで, 読み込みたい命令コードがキャッシュに存在しない確率を \(r\) とし, キャッシュ管理に関するオーバーヘッドは無視できるものとする。
ア \( \displaystyle \frac {( 1 – r )\cdot a}{ a + b } \cdot x + \frac{r \cdot b}{ a + b } \cdot y \)
イ \( ( 1 – r )\cdot x + r \cdot y \)
ウ \( \displaystyle \frac {r \cdot a}{ a + b } \cdot x + \frac{(1 – r) \cdot b}{ a + b } \cdot y \)
エ \( r \cdot x + ( 1 – r ) \cdot y \)
■正解
イ \( ( 1 – r )\cdot x + r \cdot y \)