テクノロジ編

【応用情報】フラッシュメモリの仕組みとウェアレベリングについて解説

この記事では応用情報で出題されるフラッシュメモリについてIT初心者にも分かりやすく解説します。

フラッシュメモリ

  • フラッシュメモリは補助記憶装置の一つで、USBメモリやSDカードに使われる
  • フラッシュメモリは電力供給が無くてもデータを保持し続けることができる。これを不揮発性と呼ぶ。
  • フラッシュメモリはページ単位でデータの書込みと読出しをし、ブロック単位でデータの消去を行う。
  • 既に記録しているデータを書き換えるときは、一度データを消去してから、改めて、データを書込む。
  • データを保存する箱はデータを書込む度に劣化するため、均等にデータの書込みを行うようにして、フラッシュメモリの寿命を延ばす、ウェアレベリングという技術がある。

応用情報ではフラッシュメモリに関する問題が出題されます。是非最後までご覧ください。

補助記憶装置

コンピュータの五大装置である記憶装置には、主記憶装置補助記憶装置がありますが、
フラッシュメモリは補助記憶装置の一つです。

まず、主記憶装置はCPUと高速でデータをやり取りするための記憶装置で、
補助記憶装置はデータを半永続的に記録するための記憶装置です。
主記憶装置はパソコンの中に内蔵されており、メインメモリと呼ばれることもあります。
補助記憶装置にはパソコンの中に内蔵されているハードディスクや、CD・DVDなどの光ディスク、USBやSDカードなどのフラッシュメモリがあります。

補助記憶装置はデータの保存が目的なので、電力の供給が無くてもデータを保持し続ける、不揮発性と呼ばれる性質を持ちます。一方、主記憶装置は電力供給が無くなるとデータが消えてしまう揮発性と呼ばれる性質を持ちます。上書き保存せずにパソコンをシャットダウンすればデータは消えてしまいますよね。これが揮発性です。

フラッシュメモリ

フラッシュメモリはUSBメモリやスマホのメモリカードに使われている補助記憶装置です。

フラッシュメモリは不揮発性だが劣化する

コンピュータは全てのデータを電気が流れている(=1)か電気が流れていないか(=0)で表現します。例えば、「あ」は「0011000001000010」と表現出来ます。

そのため、フラッシュメモリもデータを0と1だけを使って記録します
フラッシュメモリでは、箱の中に電子が入っている状態を「0」、電子が入っていない状態を「1」をして記録します。電子は電気を運ぶものです。この箱を酸化膜と呼ばれる電子を通さない物質で囲むことで、電力供給が無くてもデータが消えないようにしています。この性質を不揮発性と呼びます。

では、この酸化膜に囲まれた箱の中にどうやって電子を入れるのでしょうか?
実はこの箱、電子が沢山入ったSi(シリコン)基板の上にあります。箱の中に電子を入れるときは上からプラスの電圧をかけます。電子はマイナスの電気を帯びているので、上に引き寄せられていき、普通は電子を通さない酸化膜を突き破って箱の中に入ります。

情報を書き込む度に、本来は電子を通さない酸化膜を突き破るので、書き込みを繰り返すと酸化膜が劣化し、電子を保持出来なくなってしまいます。そのため、フラッシュメモリは他のメモリに比べて寿命が短いです

データをページ・ブロック単位で管理する

フラッシュメモリに限らず、記憶装置はデータを記録している箱が並んでいて、データを書き込んだり、読み込んだり、消去するときは「どの箱に対して実行するのか」を指定します。

ただ、この箱を1個1個管理できるようにしようとすると、当然メモリの仕組みは複雑になります。そこで、箱をページやブロックと呼ばれる単位でまとめてしまいます。
書込みや読込みはページ単位で、消去はブロック単位で行うようにします
こうすることで、安価で大容量のメモリを実現しました。

データを書き換える

フラッシュメモリではデータの上書きが出来ません。えっ?って思いますよね。
フラッシュメモリはデータの消去と書き込みしか出来ません
なので、一度ブロック上のデータを全て消してから、書き換えたデータを書き込むということをします。

ウェアレベリング

フラッシュメモリのデータを入れる箱はデータを書き込む度に酸化膜が劣化します。
なので、同じブロックばかりを使っていると、その部分が早く劣化し、フラッシュメモリの寿命が早く来てしまうという現象が起きてしまいます。

これを防ぐための技術がウェアレベリングです。
ウェアレベリングでは、データの書込み回数をブロック毎に管理し、出来るだけ均等にブロックを使うように制御します。出来るだけ全てのブロックを均等に使うことで、フラッシュメモリの寿命を少しでも延ばそうという技術ですね。

応用情報技術者試験での出題例

令和6年度春期問11

応用情報技術者
午前試験 
令和6年度春期問11

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

ア 0.48    イ 0.75    ウ 0.93    エ 1.20

正解と解説

正解は”ア”

15Mバイトのプログラムは40%に圧縮されて、6Mバイトになっています。
主記憶への転送速度が20Mバイト/秒なので、6Mバイトに圧縮されたプログラムの転送には0.3秒掛かります。

また、1Mバイトに圧縮されたデータの展開に0.03秒掛かるので、6Mバイトのデータの展開には0.03×6=0.18秒掛かります。

よって、合計で0.48秒掛かることが分かります。

令和5年度秋期問10

応用情報技術者
午前試験 
令和5年度秋期問10

ファイルシステムをフラッシュメモリで構成するとき,ブロックごとの書換え回数を管理することによって,フラッシュメモリの寿命を延ばす技術はどれか。

ア ウェアレベリング
イ ジャーナリング
ウ デフラグ
エ ライトアンプリフィケーション

正解と解説

正解は”ア”

ブロック毎の書換え回数が均等になるように管理して、フラッシュメモリの寿命を延ばす技術をウェアレベリングと呼びます。

令和5年度春期問11

応用情報技術者
午前試験 
令和5年度春期問11

フラッシュメモリにおけるウェアレベリングの説明として,適切なものはどれか。

ア 各ブロックの書込み回数がなるべく均等になるように,物理的な書込み位置を選択する。

イ 記憶するセルの電子の量に応じて,複数のビット情報を記録する。

ウ 不良のブロックを検出し,交換領域にある正常な別のブロックで書き換える。

エ ブロック単位でデータを消去し,新しいデータを書き込む。

正解と解説

正解は”ア”

ブロック毎の書換え回数が均等になるように管理して、フラッシュメモリの寿命を延ばす技術をウェアレベリングと呼びます。

令和4年度秋期問22

応用情報技術者
午前試験 
令和4年度秋期問22

フラッシュメモリの特徴として,適切なものはどれか。

ア 書込み回数は無制限である。

イ 書込み時は回路基板から外して,専用のROMライターで書き込まなければならない。

ウ 定期的にリフレッシュしないと,データが失われる。

エ データ書換え時には,あらかじめ前のデータを消去してから書込みを行う。

正解と解説

正解は”エ”

ア フラッシュメモリは書込みの度に酸化膜が劣化するため、無制限ではありません。
イ データを書込むときは、基板内の電子をメモリの箱に移動させます。よって誤りです。
ウ フラッシュメモリは不揮発性で、電力の供給が無くてもデータを保持し続けることが出来ます。よって誤りです。
エ データを書換えるときは、前のデータを消去した後、改めて、新しくしたデータを書込みます。よって正しいです。