|
公開日:2018/10/4 , 最終更新日:2019/9/8
|
・In English
前提知識
・マイコンの構成要素
マイコンの構成素子の一つであるメモリ(ROM,RAM,レジスタ,キャッシュ等)について説明します。以下はマイコンの構成例になります。
■レジスタ、キャッシュ、RAM
レジスタ、キャッシュ、RAM(Random Access Memory)はいずれもCPUの演算結果などのデータを格納するためのメモリ(記憶装置)です。
実はレジスタやキャッシュもRAMの一種で、レジスタ、キャッシュに使用しているRAMはSRAM(StaticのS)で、メインメモリはDRAM(DynamicのD)を使用しております。
なおRAMと言えばこのメインメモリを指す場合が多いと思います。
これらメモリはアクセス速度と記憶容量に違いがあります。レジスタはCPUに近い場所にあるためアクセス速度が最も高速で、CPUの演算結果を一時的に格納してCPUを高速にします。
キャッシュもCPUに近い場所にあり、これはメインメモリへのアクセス頻度の高いデータを一時的にキャッシュに格納することでメインメモリへのアクセスを減らし、高速にデータを読み出します。
レジスタとキャッシュの違いは、レジスタが演算を高速にするため、キャッシュはメモリアクセスを高速にするためという目的の違いがあります。
メインメモリはアクセスが最も遅いですが大容量のデータを格納できます。
<SRAMとDRAMの違い>
DRAMに比べてSRAMは高速であると説明しましたが、それはCPUに近いかどうかだけではなく、その構造にも理由があります。
SRAMにはフリップフロップ回路を用いており、トランジスタで記憶を保持(0と1を記憶)します。
一方DRAMはコンデンサで記憶を保持するため、電荷の移動に時間がかかります (コンデンサの充放電に時間がかかるのと同じイメージ)。
トランジスタの方が高速だが高価で、コンデンサの方が安く大容量になります。
■RAMの補足説明
RAMは揮発性メモリといい電源が切れると内容が消えてしまいます。ただし自動車等に使うコンピュータはバッテリーに繋いでおり、
キーを切っても電源を維持してRAMの情報を保持させているものもあり、それらのRAMはバックアップRAMまたはKAM(Keep Alive Memory)といいます。
昔のファミコンのカセットでもセーブデータを保存するにバックアップRAMを使用しており、カセットの中に電池が入っておりました。この電池が切れた時にセーブデータが失われるので、久しぶりにやろうとしたらセーブデータが消えているという事がよくありました。
メインメモリのRAMについてその内訳を説明します。下図の様に、大きく分けてプログラム領域、データ領域、スタック領域の3つの領域に分かれております。
プログラム領域は、変数を呼び出すためのプログラムが格納。データ領域は更に静的領域とヒープ領域に分かれており、主にグローバル変数やstatic変数等を格納。
スタック領域はCPU内のレジスタを一時的にここに退避させたり、ローカル変数を格納する領域になっております。
なお、よくデスクトップPCにメモリを増設して処理速度を早くするという話がありますが、それはこのRAMの事になります。
後述するROMではありません (ROMの性質から、増設しても処理性能を向上させるものではありません)。
またスマートフォンの分野では内部ストレージ(データ保存領域)の事をROMといい、そこから更にメモリーという場合があります。
処理性能を語る上でのメモリーとはRAMにもかかわらず、それを内部ストレージと混同して比較してしまう場合があるので注意が必要です。
■ROM
ROM(Read Only Memory)とは読み出し専用のメモリとなり(一部特殊なROMは書き込み可能。後述)、電源が無くても内容が保持されることから
不揮発性メモリ(NVM: Non-Volatile Memory)と呼ばれます。
ROMにはソフトウェアが動作するためのプログラムや、プログラムを動かすためのデータが書き込まれています。
プログラムやデータはソフトウェアが動作している最中に変わるものではないので、マイコン製造時に書き込んでおきます。これをマスクROMといいます。
またソフトウェア自体をROMという場合もあります(ROMに書き込むものという意味から、と思われる)。
書き込み可能なROM(その時点でRead Onlyではないですが)として、電気で情報を消去できるEEPROM (Electrically Erasable Programmable ROM,イースクエアピーROMともいう)があります。
バックアップRAMとは違って外部電源を必要とせずにデータを保持できるので、外部電源の喪失のリスクを排除して確実に情報を保持し続けたい場合はこちらを使います。
それならばバックアップRAMは使わず全てEEPROMを使えば良いと思うかもしれませんが、EEPROM等はデータの書き込み回数に制限が有り10万回程度なので、頻繁にデータを書き込む場合には向きません。DRAMは10の15乗回は書き込めるので書き込み回数に事実上制限が無いです。
他に書き換え可能なROMにはフラッシュメモリがあり、これもEEPROMの一種ですが、違いはデータ消去をブロック単位で行うことで構造を簡素化し、結果大容量を実現しているのがフラッシュメモリとなります。USBメモリー等がこれに当たります。
フラッシュメモリはEEPROMより書き込み回数が少なく、数万回から数千回のものもあります。
(なおフラッシュメモリはEEPROMの一種とは言いつつも、EEPROMとは呼ばず区別して使っている事が多いです)
なお家庭用ゲーム機のカセット等の容量を語る時はROMの容量です。処理の速度ではなく、どれだけプログラムデータがあるかや、音楽や画像等に容量を使っているかを示しています。
昔のゲーム機のNEOGEOはその凄さを表すのに100Mショックと言ったりしてました。(100Mバイトではなく、100Mビット(=12.5Mバイト)だったと後から知ってショックを受けましたが)
■RAM,ROMまとめ
以上をまとめると以下の様になります。
サブチャンネルあります。⇒ 何かのお役に立てればと
|
|