カテゴリ:1.コンピュータ > 1.3 記憶装置

記憶装置には、CPU内のレジスタ、キャッシュメモリ、メインメモリ(主記憶)、補助記憶装置(HDDなど)があります。試験で最も問われるのは、この中のキャッシュメモリとメインメモリです。※レジスタはCPUの中にある(小容量の)記憶装置と考えましょう。 

1.記憶装置とは

 コンピュータで利用される記憶装置には、主記憶装置と補助記憶装置があります。主記憶装置の代表例は主記憶(メインメモリ)です。主記憶装置は、プログラムやデータを一時的に記憶するためのものです。
補助記憶装置の代表例は、ハードディスクやUSBメモリがあります。これらは、電源を切った後もデータが保存されますので、長期にデータを記憶・保存することが可能です。
以下に、両者の違いを整理します。

 

概要

記憶装置の例

速度

価格

主記憶装置

CPUと直接アクセスできる記憶装置

・主記憶(メインメモリ)に使われるDRAM

・キャッシュメモリに使われるSRAM

速い

 

高い

 

補助記憶装置

CPUとは直接アクセスできない記憶装置(主記憶装置以外の記憶装置のこと)

・ハードディスク(磁気ディスク装置)

USBメモリ(フラッシュメモリ)

遅い

安い

※主記憶(メインメモリ)、キャッシュメモリ、DRAM、SRAMの言葉はこのあとに解説
 CPU,主記憶、補助記憶の関係は、机の上での仕事に置き換えられる例を見た人が多いでしょう。
皆さん、机の上で仕事をしますよね。皆さんの頭脳がCPUです。
メモリは机や書庫です。机の上に書類や資料を置きます。
机の上がキャッシュメモリです。すぐに手が届きます。脇卓がメインメモリです。毎回開け閉めをして書類を取り出します。壁にある書庫が補助記憶装置と考えましょう。

■Q.問題です。PCの絵を描いて、記憶装置がどれになるか書き込みましょう。
CPU内のレジスタ、キャッシュメモリ、メインメモリ(主記憶)、補助記憶装置(HDDとUSBメモリ)を記載してください。
以下に、具体的な図があるので、イメージしやすいか
https://121ware.com/navigate/application/prevent/useful/20160405/index.html

2.メインメモリとキャッシュメモリ

 キャッシュメモリとは,主記憶とCPUの間に置く高速アクセスが可能なメモリです。主記憶から読み出したデータをキャッシュメモリに保持し,  CPUが後で同じデータを読み出すときのデータ転送を高速に行うことができます。
a

3.磁気ディスク(1)磁気ディスクについて
磁気ディスクとは、磁性体の粉を円盤のディスクに塗ったもの。PCのハードディスクと考えましょう。
以下に分かりやすい写真があります。
http://www.pasonisan.com/pc-parts/hdd.html

・データを記録するのは、同心円上に並んだトラックです。
・トラック、セクタのトラックとは、陸上競技のトラックと同じ
・磁気ヘッドがSとN極を変化させ磁気を与える。SSのならびを1、SとNのならびを0として記憶させる。読み込むのも同じ
・磁気ディスクと磁気ヘッドは数ナノメートルの距離しか離れておらず、壊れやすい。

(2)アクセス時間
・アクセス時間=位置決め時間+回転待ち時間+データ転送時間
・回転待ち時間  たとえば、回転数が6000回転/分であれば、1秒で100回転。1回転10ミリ秒。平均するために2で割ると、5ミリ秒が平均回転待ち時間。
・データ転送時間は、データ量をデータ転送速度で割る。

H26春FE午前
問12 磁気ディスク装置の性能に関する記述のうち,適切なものはどれか。
ア アクセス時間は,回転速度を上げるか位置決め時間を短縮すると短くなる。
イ アクセス時間は,処理装置の前処理時間,データ転送後の後処理時間も含む。
ウ 記憶容量は,トラック当たりの記憶容量と1シリンダ当たりのトラック数だけで
 決まる。
エ データ転送速度は,回転速度と回転待ち時間で決まる。

(3)アクセス時間とサイクル時間
アクセス時間+再読み込み時間=サイクルタイム
再読み込み時間とは、読み書きの指令を受けて、実行し、次の読み書きができる状態になるまでに必要な時間です。たとえば、DRAMにおけるリフレッシュの時間などもその一つでしょう。

(4)ディスクキャッシュ
キャッシュメモリと同様に、CPUから磁気ディスクへの読取りを早くするために、主記憶上にディスクキャッシュというキャッシュを持つことがあります。これにより、磁気ディスクにアクセスする回数を減らせます。
※キャッシュメモリはCPUの中、ディスクキャッシュは主記憶装置の中にあるのが違いです。

4.記憶装置の過去問を解いてみよう

(1)H29秋

(H25秋AP問11と同じ)
問11 容量が a Mバイトでアクセス時間が x ナノ秒の命令キャッシュと,容量が b Mバイトでアクセス時間が y ナノ秒の主記憶をもつシステムにおいて,CPUからみた,主記憶と命令キャッシュとを合わせた平均アクセス時間を表す式はどれか。ここで読み込みたい命令コードがキャッシュに存在しない確率を r とし,キャッシュ管理に関するオーバヘッドは無視できるものとする。
H29a-問11





【正解】イ

(2)H29秋

問20 SRAMと比較した場合のDRAMの特徴はどれか。
ア 主にキャッシュメモリとして使用される。
イ データを保持するためのリフレッシュ又はアクセス動作が不要である。
ウ メモリセル構成が単純なので,ビット当たりの単価が安くなる。
エ メモリセルにフリップフロップを用いてデータを保存する。





【正解】ウ

(3)H29春

問11 15 M バイトのプログラムを圧縮した状態でフラッシュメモリに格納している。プログラムの圧縮率が40%,フラッシュメモリから主記憶への転送速度が20Mバイト/秒であリ,1Mバイトに圧縮されたデータの展開に主記憶上で0.03秒が掛かるとき,このプログラムが主記憶に展開されるまでの時間は何秒か。ここで,フラッシュメモリから主記憶への転送と圧縮データの展開は同時には行われないものとする。

ア 0.48     イ 0.75     ウ 0.93     エ 1.20
イメージが湧きにくい場合は、図にするといいでしょう。つたない図ですが、たとえば、以下になります。
f:id:mamori_yuto:20190205102346j:plain
15 M バイトのプログラムを圧縮率40%で圧縮しているので、ファイルサイズは15M×0.4=6M
①転送にかかる時間
6Mバイトのファイルを、転送速度(20Mバイト/秒)で転送するので、時間は6÷20=0.3秒
②圧縮されたデータの展開にかかる時間
1Mの展開に、0.03秒かかるので、6Mバイトであれば、6×0.03=0.18秒
①と②を合計すると、0.3秒+0.18秒=0.48秒
【正解】ア

(4)H28春

問21 DRAMの説明として,適切なものはどれか。
ア 1バイト単位でデータの消去及び書込みが可能な不揮発性のメモリであり,電源遮断時もデータ保持が必要な用途に用いられる。
イ 不揮発性のメモリでNAND型又はNOR型があり,SSDに用いられる。
ウ メモリセルはフリップフロップで構成され,キャッシュメモリに用いられる。
エ リフレッシュ動作が必要なメモリであり,PCの主記憶として用いられる。





【正解】エ

(5)H27秋

問10 MMU(Memory Management Unit)の説明として,適切なものはどれか。
ア CPUからのページフォールドを受けて,物理ページのスワップを行う。
イ CPUが指定した仮想アドレスを物理アドレスに対応させる。
ウ OSの一部分であり,キャッシュ制御機能及びバス調整機能を有する。
エ 主記憶のデータの一部を保持し,CPUと主記憶の速度差を吸収する。





【正解】イ

(6)H25秋

問22 SRAMと比較した場合のDRAMの特徴はどれか。
ア 主にキャッシュメモリとして使用される。
イ データを保持するためのリフレッシュ又はアクセス動作が不要である。
ウ メモリセル構成が単純なので,ビット当たりの単価が安くなる。
エ メモリセルにフリップフロップを用いてデータを保存する。





【正解】ウ


1.キャッシュメモリとは

キャッシュメモリに関して過去問(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次キャッシュにデータがないときにアクセスされる。」と述べられています。
また、キャッシュメモリはCPUに内蔵されています。
ですので、PCのスペック一覧では、CPUの欄に記載されています。
以下はPanasonicのLet's Noteのスペック表です。
https://panasonic.biz/cns/pc/prod/note/lx5y/spec.html
CPUの欄に、キャッシュメモリが3MBであることが記載されています。メインメモリ4GBに比べたら、とても小さいですよね。
Letsnote

参考ですが、自分のPCのキャッシュメモリのサイズを調査するには、CPU-Zなどのツールを入れる必要があります。
このツールを使うと、1次、2次、3次(3次は無い場合場合もあり)毎のメモリ容量が分かります。

2.ヒット率と実効アクセス時間

 CPUからのアクセス先は、低速なメモリと高速なキャッシュメモリがあります。キャッシュメモリにデータが存在する(ヒットする)確率をヒット率と言います。
 また、ヒット率を加味した実効アクセス時間は、以下の式で求められます。

 実効アクセス時間=キャッシュメモリのアクセス時間×ヒット率+主記憶のアクセス時間×(1-ヒット率)

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

旧い過去問(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





【正解】イ

3.メモリデータの対応付け

(1)ダイレクトマップ

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

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




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

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

(2)フルアソシアティブ方式

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

(3)セットアソシアティブ方式

ダイレクトマップとフスアソシアティブ方式の折衷案です。一定の領域に区切って、自由に配置(フルアソシアティブ方式)できます。
過去問(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つの方法です。 

4.キャッシュメモリのライトスルーとライトバック

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






【正解】イ

 

5.参考:割当

過去問(H22春FE午後問1)をみてみましょう。

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

(中略)

(ハ)フラグ:対応するデータ部のバッファにブロックを読み込んだとき,0に初期化される。対応するデータ部のバッファに保持されている内容がCPUの処理によって変更されると,1に変わる。
2

キャッシュにはまず、プログラムなどの命令を保持しておく命令キャッシュと、データを保持しておくデータキャッシュがあります。プログラムなどの命令は、基本的には変わりません。でも、データは演算処理などをすると変わりますよね。
応用情報技術者試験を勉強する成子 

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

そうなんです。

6.キャッシュメモリの過去問を解いてみよう

(1)H29春

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







【正解】イ

(2)H26秋

問9 キャッシュの書込み方式には,ライトスルー方式とライトバック方式がある。ライトバック方式を使用する目的として,適切なものはどれか。
ア キャッシュと主記憶の一貫性(コヒーレンシ)を保ちながら,書込みを行う。
イ キャッシュミスが発生したときに,キャッシュの内容の主記憶への書き戻しを不要にする。
ウ 個々のプロセッサがそれぞれのキャッシュをもつマルチプロセッサシステムにおいて,キャッシュ管理をライトスルー方式よりも簡単な回路構成で実現する。
エ プロセッサから主記憶への書込み頻度を減らす。







【正解】エ

過去問(H22春FE午後問1)をもとに、主記憶(メインメモリ)へのデータの割り当てに関して理解を深めましょう。
(1)主記憶はブロック(1ブロックは100語から成る)に分割されている。各ブロックには,その先頭番地が小さいものから順に1,2,3,…とブロック番号が振られている。
このように、ブロックに分割されています。具体的な様子は後半に記載します。

ではここで、プログラムを実行します。プログラムの概要は以下です。(問題文より)
i: 99, i≧0, -1
・A[i] ← A[i] + B[i] + C[i]
・D[i] ← A[i]
このプログラムについて、簡単に解説します。
iの初期値は99です。iに-1を順に加えて、0になるまで続けます。つまり、iは、99,98,97・・・0
・A[i] に A[i] + B[i] + C[i]の合計を入れます。
・D[i] に A[i]の値を入れます。

問題文の続きです。
(1)配列A,B,C及びDは100個の要素から成り, 1要素は1語である。添字は0から始まるものとする。
4つの配列A[i]、B[i]、C[i]、D[i]は、100個の要素からなります。A[0]、A[1]・・・A[100]です。

さて、問題文の続きです。
(1)配列A,B,C及びDは100個の要素から成り, 1要素は1語である。添字は0から始まるものとする。
(2)データ領域の主記憶への割付けは,次のとおりとする。
①Aの配列領域:4000~4099番地(ブロック番号41)
 A[0]は4000番地,A[1]は4001番地という順に割り付けられる。
② Bの配列領域:4100~4199番地(ブロック番号42)
③ cの配列領域:4200~4299番地(ブロック番号43)
④ Dの配列領域: 4300~4399番地(ブロック番号44)
⑤ 定数-1と99の格納領域:4400,  4401番地(ブロック番号45)
(3)変数iはレジスタを使用し,主記憶への割付けは行わない。
この問題文および、その後の問題文表1から、主記憶(メインメモリ)には、プログラムやデータ(配列の値含む)は、以下のようになっていることが分かります。

memori


実際にプログラムを書いてみて、その結果はこちら
http://sm.seeeko.com/archives/65924620.html

 

1.揮発性メモリと不揮発性メモリ

半導体メモリは大きく、電源を切ってもデータを保持できるか否かで、揮発性メモリと不揮発性メモリに分けられます。
(1)RAM:揮発性メモリ  →電源を切ってもデータを保持できる
揮発性メモリはRAM(Random Accdess Memory)に分類される。
 ①SRAM
  キャッシュメモリで使われます。
 ②DRAM
  メインメモリ(主記憶)で使われます。

(2)ROM:不揮発性メモリ →電源を切ったらデータが消える
不揮発性メモリはROM(Read Only Memory)に分類される。ROMだらかRead Onlyと思われるかもしれないが、書き換え可能なUSBメモリなどのフラッシュメモリも含まれる。技術的な仕組みで分類すると、不揮発性メモリに分類されると考えておこう。
 ①マスクROM
   たとえば、昔のゲーム機のソフトなど、書き換えが必要が無い場合に利用。コストが安く抑えられるのが利点。
 ②PROM
  その中に、EEPROMに文類されるUSBメモリ(フラッシュメモリ)がある。

半導体メモリに該当する部分を簡単に図にすると、以下のようになります。

メモリ
▼図:半導体メモリの全体像

2.揮発性メモリ 

電源を切るとデータを保持できない。パソコンのメインメモリ(主記憶)を思い浮かべてください。PCのメモリ情報は、電源を入れると消えますよね。
①SRAM
高速なので、フラッシュメモリに利用されます。過去問では、「アクセスが高速なので,キャッシュメモリなどに使用される(H18春AD午前問1)」、「高速に書換えができ,CPUのキャッシュメモリに用いられる。(H28秋AP午前問21)」、・・・ 
②DRAM
主記憶(メインメモリ)に利用されます。過去問では、「リフレッシュ処理が必要であるが何度でも書換えができるので,主記憶などに使用される(H18春AD午前問1)」、「周期的にデータの再書込みが必要である(H28秋AP午前問21)」・・・

リフレッシュ
DRAMは時間が経過すると、電荷が失われ、データが消えてしまいます。そこで、リフレッシュ(再書き込み)が必要になります。
 

 

用途

価格

速度

リフレッシュ

DRAM

メインメモリ

安い

遅い

必要

SRAM

キャッシュメモリ

高い

速い

不要

3.不揮発性メモリ

電源を切ってもデータを保持できる。USBメモリがその代表です。電源を切っても(PCから抜いても)、データは消えませんよね。

①マスクROM
工場でデータを書き込み、利用者が書き換えることはできません。ゲームソフトのように、一度書き込んだら後から変えないようなもので利用されます。書き換えることができない反面、大量生産でコストを抑えることができます。
過去問(H23秋FE午前問12)では、「組込みシステムのプログラムを格納するメモリとして,マスクROMを使用するメリット」として、「イ 出荷後のプログラムの不正な書換えを防ぐことができる」と述べられています。

②PROM(Programmable ROM)
利用者がプログラム操作(Programmable)等によって書き換える記憶装置です。
  ア)UV-EPROM(Ultra-Violet Erasable PROM):Ultra-Violetとは、紫外線のことです。「UVケア」という言葉は、日常的に使いますよね。Ultra-Violet Erasableなので、紫外線(UV)で消去可能(Erasable)という意味です。 過去問では、「紫外線で全内容の消去ができる(H28秋AP午前問21)」 
  イ)EEPROM(Electrically Erasable PROM): ここに分類されるものの一つにフラッシュメモリがある。フラッシュメモリに関して過去問では、「ブロック単位で電気的に内容の消去ができる(H28秋AP午前問21)」、「書換えができる記憶保持型のメモリなので, USBメモリやSDカードに使用される(H18春AD午前問1)」、「ディジタルカメラの画像データや携帯音楽プレーヤの音楽データの記録媒体として利用されている(H21秋FE午前問9)」と述べられています。
応用情報技術者試験を勉強する成子 

CD-ROMはどちらに含まれるのですか?
CD-ROMやDVD-Rなどは、電子機器ではなく、半導体で出来ていません。よって、そもそも半導体メモリではありません。

半導体メモリに該当する部分を簡単に図にすると、以下のようになります。
 

4.過去問

■平成28年秋期 午前 問21
問21 フラッシュメモリに関する記述として,適切なものはどれか。

ア 高速に書換えができ,CPUのキャッシュメモリに用いられる。
イ 紫外線で全内容の消去ができる。
ウ 周期的にデータの再書込みが必要である。
エ ブロック単位で電気的に内容の消去ができる。

正解は、エです。

■H17春FE午前問16
問16 電気信号によってデータの書換え,消去が可能なメモリであり,電源を切っても内容を保持できるものはどれか。
ア DRAM
ウ フラッシュメモリ
イ SRAM
エ マスクROM
正解はウのフラッシュメモリ

■H18春AD午前問1
問1 フラッシュメモリの特徴として,適切なものはどれか。
ア アクセスが高速なので,キャッシュメモリなどに使用される。 ⇒SRAM
イ 一度しか書き込めないので,プログラムメモリなどに使用される。⇒ROM
ウ 書換えができる記憶保持型のメモリなので, USBメモリやSDカードに使用される。⇒正解、フラッシュメモリ
エ リフレッシュ処理が必要であるが何度でも書換えができるので,主記憶などに使用される。⇒DRAM

■(H22春IP問81)
問81 フラッシュメモリに関する記述として,適切なものはどれか。
ア 一度だけデータを書き込むことができ,以後読出し専用である。
イ 記憶内容の保持に電力供給を必要としない。
ウ 小型化が難しいので,ディジタルカメラの記憶媒体には利用されない。エ レーザ光を用いてデータの読み書きを行う。

■H22秋AP午前
問70 ワンチップマイコンの内蔵メモリとしてフラッシュメモリが採用されている理由として,適切なものはどれか。
ア ソフトウェアのコードサイズを小さくできる。
イ マイコン出荷後もソフトウェアの書換えが可能である。
ウ マイコンの処理性能が向上する。
エ マスクROMよりも信頼性が向上する。

■H21秋IP
問57 フラッシュメモリを用いたSSD (SoUd State Drive)\t,ハードディスクの代わりとして期待されている記憶装置である。このSSDを用いるときに留意すべき点はどれか。
ア 書込み回数に上限がある。
イ 書込みより読出しが遅い。
ウ 振動や衝撃に弱い。
エ ファイルの断片化による性能悪化が著しい。

■H24春FE午前
問12 DRAMのリフレッシュ動作の説明として,適切なものはどれか。
ア 一定時間ごとに内容を外部記憶装置に書き込む。
イ システムの電源投入時に,全領域を0で初期化する。
ウ データを保持するために,一定時間ごとにアクセスする。
エ 内容を更新するときに,データを一旦消去する。

メモリインタリーブは、「主記憶を複数の独立したグループに分けて,各グループに交互にアクセスすることによって,主記憶へのアクセスの高速化を図る(平成29年秋AP問10)」ことです。高速化というのは、CPUと主記憶の間の通信の高速化です。

平成28年秋期 午前 問10
問10 メモリインタリーブの目的として,適切なものはどれか。

ア 同一のバンクに連続してアクセスしたとき,アクセス時間を短くする。
イ 同一のバンクの連続したアドレスにアクセスしたとき,キャッシュミス発生時のアクセス時間を短くする。
ウ 一つのバンクが故障しても,システムが停止しないようにする。
エ 複数のバンクに割り振った連続したアドレスにアクセスしたとき,アクセス時間を短くする。
正解は、エです。

■H29秋
問9 メモリインタリーブの説明はどれか。
ア CPUと磁気ディスク装置との間に半導体メモリによるデータバッファを設けて,磁気ディスクアクセスの高速化を図る。
イ 主記憶のデータの一部をキャッシュメモリにコピーすることによって,CPUと主記憶とのアクセス速度のギャップを埋め,メモリアクセスの高速化を図る。
ウ 主記憶へのアクセスを高速化するために,アクセス要求,データの読み書き及び後処理が終わってから,次のメモリアクセスの処理に移る。
エ 主記憶を複数の独立したグループに分けて,各グループに交互にアクセスすることによって,主記憶へのアクセスの高速化を図る。

【正解】エ

■H25秋
問10 メモリインタリーブの説明として,適切なものはどれか。
ア 新しい情報をキャッシュメモリに取り出すとき,キャッシュ上では不要になった情報を主記憶に書き込む。
イ 主記憶のアクセス時間と磁気ディスクのアクセス時間とのギャップを補う。
ウ 主記憶の更新と同時にキャッシュメモリの更新を行う。
エ 主記憶を幾つかの区画に分割し,連続したメモリアドレスへのアクセスを高速化する。

【正解】エ

問11 15 M バイトのプログラムを圧縮した状態でフラッシュメモリに格納している。プログラムの圧縮率が40%,フラッシュメモリから主記憶への転送速度が20Mバイト/秒であリ,1Mバイトに圧縮されたデータの展開に主記憶上で0.03秒が掛かるとき,このプログラムが主記憶に展開されるまでの時間は何秒か。ここで,フラッシュメモリから主記憶への転送と圧縮データの展開は同時には行われないものとする。

ア 0.48          
イ 0.75          
ウ 0.93          
エ 1.20
正解は、アです。

データをメモリ上に書き込むとき、メモリの住所の小さい値から書き込むのか、大きい値から書き込むのか、どちらでしょう。
応用情報技術者試験を勉強する成子 

内部構造なので、どっちでもいいです。




たしかに、どっちでもいいですよね。
とはいえ、試験に出題されるからには勉強する必要があるので、少しお付き合いください。
この順番はバイトオーダーと言うのですが、CPUによって決まっています。皆さんにも馴染みが深いIntel系では、大きい値から書き込みます。これをリトルエンディアンと言います。逆に、小さい方から書き込むのをビックエンディアンと言います。

過去問(H29春AP午前問21)を見てみましょう。
リトルエンディアン
ここで、ABCD1234という値をメモリに配置します。細かい解説はすっ飛ばして、リトルエンディアンでは単純に、住所の大きい方から配置します。また、「AB」という2つの値で1バイトですから、2つずつセットします。
正解はイです。

関連する問題が、H23春AP午前問11です。 ※テキストデータでごめんなさい。
問11 主記憶の1000番地から,表のように4バイトの整数データが格納されている。これを32ビットのレジスタにロードするとき,プロセッサのエンディアンレジスタにロードされる数値との組合せとして,正しいものはどれか。
バイトアドレス データ
1000 00
1001 01
1002 02
1003 03

 リトルエンディアン ピッグエンディアン
ア 00010203 02030001
イ 00010203 03020100
ウ 02030001 00010203
エ 03020100 00010203
正解は、エです。

また、以下も参照ください
http://sc.seeeko.com/archives/5377814.html

トルエンディアンに関しては、IPAの資料も参照ください。
https://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/c007.html

復習ではあるが、メモリにはDRAM(主記憶)、SRAM(キャッシュメモリ)USBメモリに利用するフラッシュメモリがある。
フラッシュメモリは不揮発性(つまり、電源を切ってもデータが消えない)
従来のハードディスクに代わって、フラッシュメモリのSSDに置き換わりつつある。
NAND型フラッシュメモリの種類として、
①SLC
②MLC
がある。さらに、③TLC(Triple Level Cell)やさらに並列作業を進めたものもある
今では、ストレージも磁気ディスクではなくフレッシュメモリでできている。回転しないから壊れにくいという利点がある(と思う)。

■H29秋NW午前Ⅱ
問22 MLC(Multi-Level Cell)フラッシュメモリの特徴として,適切なものはどれか。
ア コンデンサに蓄えた電荷を用いて,データを記憶する。
イ 電気抵抗の値を用いて,データを記憶する。
ウ 一つのメモリセルに2ビット以上のデータを記憶する。
エ フリップフロップを利用して,データを記憶する。

MLC(Multi-Level Cell)フラッシュメモリは、一つのメモリセルに2ビット以上のデータを記憶します。一方、SLC(Single-Level Cell)フラッシュメモリは、一つのメモリセルに1ビットのデータを記憶します。
正解:ウ

ハードディスクに比べてかなり高額ではあるが、読み書きスピードがとても速い。将来が期待されている記憶媒体
障害にもつよく、ハードディスクが読み込むときの音も無い。

今後じっくり調べたい。

↑このページのトップヘ