メモリ基本講座 「半導体メモリとは何ぞや」

メモリという言葉は、よく聞きますよね。英語で記憶または思い出のことですが、その中でも半導体素子を利用して電気的にデータの記録を行う装置を「半導体メモリ」といいます。
この記事では「半導体メモリ」に関して解説していきます。
日々、世界では様々なアプリケーションを開発されていますが、データを記録しないでよいアプリケーションはありません。 プログラム、静止画データ、動画データなど、どこかに必ず記憶しておく必要があります。
つまり、どんなアプリケーションにも必ずメモリは搭載されている!と言えます。
よって、誰でも一度は使用したことがある、これから使用する可能性がある半導体になります。
ちなみに、「メモリ」 と言うとパソコンのメインメモリ(いわゆる DIMM) をイメージすることが一般的のようです。
メモリの種類
メモリは、大きく分けて下記の2種類に分類されます。
- 不揮発性(ROM:Read Only Memory) : 電源を切っても記録を保持し続ける
揮発性(RAM:Random Access Memory) : 電源を切ると記録が消えてしまう
不揮発性メモリにプログラムを記録しておいて、そこから実行するプログラムのみを揮発性メモリに読み込んで、 CPU がそれを解釈して実行する。
不揮発性メモリに静止画データを記録しておいて、表示が必要なデータだけを揮発性メモリに読み込んで、 そこからディスプレイ等に展開する。
・・・といった使われ方をします。
この場合、電源を切ると揮発性メモリのデータは消えてしまうので、 電源ON/OFFが発生するたびに、不揮発性メモリから揮発性メモリへのデータの移動が発生します。
下図が、ほぼすべてのメモリとそれを利用した応用製品の一覧になります。(図1)
図1 : メモリの種類
メモリはどこに使われる?
いろんな種類があるメモリですが、ではどこに使われるのでしょうか?
そのイメージを 図2に示します。
PC をイメージしていますが、大体どのアプリケーションもこのような構成になります。
CPU(考えて実行するところ。例えるなら人間の脳味噌。)の近くには、 頻繁にアクセスするデータを置きます。よって、高速なメモリが必要なため、一般的にはCPUに内蔵されている小規模のRAMが使用されます。
主記憶装置(メインメモリ、と呼ばれることが多い) として使えるメモリは、 DRAM, SRAM, NOR Flash 等、1命令単位で読み出しができるメモリに限られます。
CPU がひとつの命令を実行するのに、ひとつずつしか命令を読み出せないためです。
補助記憶装置(ストレージ) として使うメモリは、主に不揮発性です。
多少低速でもよいので、大容量で安価なものになります。
1命令単位ずつの読み出しができないものが多く、 必要なデータが含まれる範囲をがばっと主記憶装置に展開します。
CPU は、そうして主記憶装置に展開されたプログラムをひとつずつ実行したり、 画像データを出力装置に出力したりします。
図2 : 各メモリをどこに使うか
# NOR Flash は、1命令単位で読み出しが出来る不揮発性メモリです。
# 補助記憶装置なしで、主記憶装置に NOR のみ使う、ということも可能です。
# ただし、NOR は小容量のため、小規模なアプリケーションでしか実現できません。
メモリの仕様を検討する際、 そのメモリがどこに使われるのか、どんなデータが置かれるのか、 を考えて、使用するメモリを選ぶのがポイントになります。
おまけ:FPGAのConfiguration 用 ROMって何してるの?
FPGA とは、field-programmable gate array という名が示すとおり、 内部の回路が書き換え可能なロジックデバイス、です。 大きな SRAM だと思ってください。
電源を切ると、その回路のデータは消えてしまいますので、 電源を入れるたびに、回路データを FPGA に書き込む必要があります。
そのため、回路データを不揮発性メモリに記録しておいて、電源を入れるとそのメモリから、 FPGA に回路データが展開されて実行可能となる、という仕組みが必要です。 それに使われる不揮発性メモリが Configuration ROM と呼ばれるもので、 主に NOR Flash が使われています。
SRAMについては GSIテクノロジーの取り扱いがあります。