応用情報処理技術者試験の対策サイトです。 応用情報処理技術者試験の午前問題を中心とした基礎用語の解説を中心に掲載します。書き始めたばかりなので、内容はまだまだ不十分です。
カテゴリ:

3.コンピュータ > 3.2.2 キャッシュメモリ

キャッシュメモリとは
キャッシュメモリに関して過去問(H22春FE午後問1)では、「キャッシュメモリとは,主記憶とCPUの間に置く高速アクセスが可能なメモリである。キャッシュメモリとCPU及び主記憶との関係を図1に示す。データをキャッシュメモリに保持しておくことによって、CPUは速度の遅い主記憶に直接アクセスしなくて済むので,処理の高速化が図れる。」とあります。
実際に、過去問(H22春FE午後問1)をみてみましょう。
問1 キャッシュメモリに関する次の記述を読んで,設問1,  2に答えよ。

キャッシュメモリとは,主記憶とCPUの間に置く高速アクセスが可能なメモリである。キャッシュメモリとCPU及び主記憶との関係を図1に示す。データをキャッシュメモリに保持しておくことによって、CPUは速度の遅い主記憶に直接アクセスしなくて済むので,処理の高速化が図れる。
1

ここでは,ハードウェアのアーキテクチャを次のように仮定する。
(1)主記憶はブロック(1ブロックは100語から成る)に分割されている。各ブロックには,その先頭番地が小さいものから順に1,  2,  3,…とブロック番号が振られている。主記憶とキャッシュメモリ間はブロック単位でデータが転送される。
(2)キャッシュメモリには,命令を保持しておく命令キャッシュと,データを保持しておくデータキャッシュの2種類がある。ここでは,データキャッシュ(以下,キャッシュという)だけを考える。
応用情報技術者試験を勉強する成子 

Proxyサーバもキャッシュによって高速化する機能があります。
はい。キャッシュメモリもProxyサーバのキャッシュ機能と同様と考えればいいでしょう。

また、キャッシュメモリの効果として,過去問(H28年春FE午前問11)では、「主記憶から読み出したデータをキャッシュメモリに保持し,  CPUが後で同じデータを読み出すときのデータ転送を高速に行う。」とあります。

キャッシュメモリは多段構成になっていることが多い。
1次キャッシュ、2次キャッシュと呼ばれる
1次キャッシュは容量が小さいが高速、2次キャッシュは容量が大きいが低速であることが多い。
2次キャッシュにもなければ、メインメモリに問い合わせされる。

過去問(H24年春IP問65)では、CPUのキャッシュメモリに関して、「1次キャッシュは最初にアクセスされ,2次キャッシュは1次キャッシュにデータがないときにアクセスされる。」と述べられています。

過去問(H22春FE午後問1)をみてみましょう。
(2)キャッシュメモリには,命令を保持しておく命令キャッシュと,データを保持しておくデータキャッシュの2種類がある。ここでは,データキャッシュ(以下,キャッシュという)だけを考える。
(3)キャッシュの構成は,図2のとおりとする。
キャッシュは,ディレクトリ部とデータ部から成る。

(中略)

(ハ)フラグ:対応するデータ部のバッファにブロックを読み込んだとき,0に初期化される。対応するデータ部のバッファに保持されている内容がCPUの処理によって変更されると,1に変わる。
2
キャッシュにはまず、プログラムなどの命令を保持しておく命令キャッシュと、データを保持しておくデータキャッシュがあります。プログラムなどの命令は、基本的には変わりません。でも、データは演算処理などをすると変わりますよね。
応用情報技術者試験を勉強する成子 

じゃあ、キャッシュ(メモリ)だけじゃなく、本当のデータを保存しているメインメモリのデータも変える必要がありますね。




そうなんです。

応用情報技術者試験では、出題がほとんどありません。

旧い過去問(H21年秋AP午前)までさかのぼると、以下の問題を見つけました。
問11 キャッシュメモリのアクセス時間が10ナノ秒,主記憶のアクセス時間が60ナノ秒,キャッシュメモリのヒット率が90%であるときの,実効アクセス時間は何ナノ秒か。
ア 15  イ 25  ウ 35  エ 55

別の過去問(H28春ES午前2問2)を見てみましょう。
問2 キャッシュメモリのアクセス時間が主記憶のアクセス時間の1/30で,ヒット率が95%のとき,主記憶の実効アクセス時間は,主記憶のアクセス時間の約何倍になるか。

ア 0.03  イ 0.08  ウ 0.37  エ 0.95

ダイレクトマップ
過去問(H24春AP午前玉10)では、「キャッシュメモリにおけるダイレクトマップ方式」の説明として「一つのメモリブロックをキャッシュ内の単一のロケーションに割り当てる。」と解説しています。キャッシュメモリの領域と、メインメモリのブロックを固定で対応付けます。
応用情報技術者試験を勉強する成子 

メモリブロックって何ですか?




主記憶は一定の大きさでブロックに分割されています。実際の様子は、以下を参照してください。
http://sm.seeeko.com/archives/cat_60251192.html

ダイレクトマップは、以下のようになります。
キャッシュメモリ 

フルアソシアティブ方式
メインメモリのアドレスと、キャッシュメモリの場所が対応づけされていない方法。つまり、どこに配置してもいいという方法です。特定のダイレクトマップ方式とは対極の関係にあります。

セットアソシアティブ方式
ダイレクトマップとフスアソシアティブ方式の折衷案です。一定の領域に区切って、自由に配置(フルアソシアティブ方式)できます。
過去問(H21春AP午前問13)を見てみましょう。
問13 CPUと主記憶との間に置かれるキャッシュメモリにおいて,主記憶のあるブロックを,キャッシュメモリの複数の特定ブロックに対応付ける方式はどれか。
ア セットアソシアティプ方式
イ ダイレクトマッピング方式
ウ フルアソシアティブ方式
エ ライトスルー方式
正解は、アです。

実際の過去問(H22春FE午後問1)を例に、内容の理解を深めましょう。
(前略)

(3)キャッシュの構成は,図2のとおりとする。
キャッシュは,ディレクトリ部とデータ部から成る。
データ部はバッファ1~3の三つのバッファから成り,各バッファは1ブロック分の主記憶の内容を保持できる。
ディレクトリ部は,データ部のバッファ1~3に対応したディレクトリ1~3から成る。それぞれのディレクトリは次の内容を保持する三つのフィールドから成る。
なお,データ部のバッファが未使用の場合は,対応するディレクトリの三つのフィールドすべてに0が入っている。
(イ)ブロック番号:対応するデータ部のバッファが保持する主記憶のブロック番号
(ロ)順位 :キャッシュ内に最も古くから存在するブロックから順に1,  2,  3と番号が振られる。
(ハ)フラグ:対応するデータ部のバッファにブロックを読み込んだとき, 0に初期化される。対応するデータ部のバッファに保持されている内容がCPUの処理によって変更されると,1に変わる。
2
このように、キャッシュメモリはいくつかの領域に分割され、メインメモリの情報をブロックなどの一定単位で保持します。
このときの、キャッシュメモリとメインメモリの領域の割り当ての方法が、上記の3つの方法です。

過去問(H22春FE午後問1)をみてみましょう。
(2)キャッシュメモリには,命令を保持しておく命令キャッシュと,データを保持しておくデータキャッシュの2種類がある。ここでは,データキャッシュ(以下,キャッシュという)だけを考える。
(3)キャッシュの構成は,図2のとおりとする。
キャッシュは,ディレクトリ部とデータ部から成る。

(中略)

(ハ)フラグ:対応するデータ部のバッファにブロックを読み込んだとき,0に初期化される。対応するデータ部のバッファに保持されている内容がCPUの処理によって変更されると,1に変わる。
2
キャッシュにはまず、プログラムなどの命令を保持しておく命令キャッシュと、データを保持しておくデータキャッシュがあります。プログラムなどの命令は、基本的には変わりません。でも、データは演算処理などをすると変わりますよね。
応用情報技術者試験を勉強する成子 

じゃあ、キャッシュ(メモリ)だけじゃなく、本当のデータを保存しているメインメモリのデータも変える必要がありますね。
そうなんです。このとき、すぐに書き込むのか後で書き込むのかによって、処理スピードが変わってきます。具体的には、以下で述べる2つの方法があります。

ライトスルー
過去問(平成29年春期午前問10)では、キャッシュメモリのライトスルーの説明として,「キャッシュメモリと主記憶の両方に同時にデータを書き込む。」と述べています。

ライトバック
過去問(H24秋SM午前玉20)では、「主記憶アクセスの高速化技術であるライトバック方式における,キャッシュメモリ及び主記憶への書込みの説明」として、「キャッシュメモリにだけ書き込み,対応する主記憶の更新は,キャッシュメモリからデータが追い出されるときに行う。」とあります。
a
過去問(H24秋高度午前橘5)を見てみましょう。
問5 キャッシュメモリヘの書込み動作には,ライトスルー方式とライトバック方式がある。それぞれの特徴のうち,適切なものはどれか。
ア ライトスルー方式では,データをキャッシュメモリだけに書き込むので,高速に書込みができる。
イ ライトスルー方式では,データをキャッシュメモリと主記憶の両方に同時に書き込むので,主記憶の内容は常に最新である。
ウ ライトバック方式では,データをキャッシュメモリと主記憶の両方に同時に書き込むので,速度が遅い。
エ ライトバック方式では,読出し時にキャッシュミスが発生してキャッシュメモリの内容が追い出されるときに,主記憶に書き戻す必要が生じることはない。
順に見て行きましょう。
ア ライトスルー方式では,データをキャッシュメモリだけに書き込むので,高速に書込みができる。⇒両方に書き込むので、速度が遅くなります。
イ ライトスルー方式では,データをキャッシュメモリと主記憶の両方に同時に書き込むので,主記憶の内容は常に最新である。 ⇒正解
ウ ライトバック方式では,データをキャッシュメモリと主記憶の両方に同時に書き込むので,速度が遅い。⇒後で書き込む、高速です。
エ ライトバック方式では,読出し時にキャッシュミスが発生してキャッシュメモリの内容が追い出されるときに,主記憶に書き戻す必要が生じることはない。 ⇒必要が生じることがあります。

別の過去問(平成29年春期 午前 問10)を見てみましょう。
問10 キャッシュメモリのライトスルーの説明として,適切なものはどれか。

ア CPUが書込み動作をする時,キャッシュメモリだけにデータを書き込む。
イ キャッシュメモリと主記憶の両方に同時にデータを書き込む。
ウ 主記憶のデータの変更は,キャッシュメモリから当該データが追い出される時に行う。
エ 主記憶へのアクセス頻度が少ないので,バスの占有率が低い
正解は、イです。

スポンサードリンク

このページのトップヘ