とある科学の備忘録

とある科学の備忘録

CやPythonのプログラミング、Arduino等を使った電子工作をメインに書いています。また、木製CNCやドローンの自作製作記も更新中です。たまに機械学習とかもやってます。

メモリの種類と回路と特徴まとめ

メモリには、下の図のように多くの種類があります。それぞれの特徴や動作回路などをまとめてみました。
f:id:pythonjacascript:20181209211839j:plain

RAM

メモリは大きく分けて「RAM」と「ROM」の2種類があります。


その分け方は、「揮発性」か「不揮発性」かどうかです。
「揮発性」とは、電源を切ってもデータを記憶できる性質のことです。
RAMは揮発性があり(電源を切ると同時にデータも消える)、一方でROMは不揮発性があります(電源を切っても記憶したデータはそのまま保持)。


RAMは「Random Access Memory」の略です。


ROM

ROMはRAMと違い、「不揮発性」があります。「不揮発性」とは、電源を切っても記憶内容は消えない性質のことです。この性質を利用して、パソコンのBIOS設定の記憶装置などに使用されています。


Read Only Memory」の略です。「Read Only」のため、読み出し専用のメモリで、本来の意味では書き込みはできません。
しかし、「RAM(ランダムアクセスで読み書きできるメモリ)」の対義語の意味で使われているため、消去と追記ができるものもROMと呼ばれることもあります。EPROMの類などがその例です。


DRAM

DRAM は「Dynamic Random Access Memory」 の略で、コンデンサを使って情報を記憶するRAMです。

ひとつのセル(1bitの情報を記憶できる区域)ごとに、下のような回路が組まれています。
f:id:pythonjacascript:20181209223117j:plain
このように、1つのメモリセルは1個のトランジスタMOSFET)と1個のキャパシタから構成されています。データの記憶は、コンデンサ電荷がたまっているかどうかで判別します。

そして、一つのセルから Word Line と Bit Line という2つの信号線が出ています。

今から、それぞれがデータの読み書き時にどのように動作しているかを解説します。

(1)書き込み時

まず、書き込み動作について説明します。書き込み動作が行われるときには、書き込みを行うセルの Word Line をONにします。すると、Word Line をONにしたメモリセルのFETがONになり、特定のアドレスのセルのみ書き込み動作を行うことができます。 Word Line については後程解説します。


f:id:pythonjacascript:20181209222953j:plain
メモリセルに1(HIGH)を書き込むには、 Bit Line の電圧を上げ、FETを通してキャパシタを充電します。
一方、0(LOW)を書き込むには、 Bit Line の電圧を下げ、キャパシタを放電します。


つまり、
コンデンサ電荷がたまっている=1(HIGH)が保存
コンデンサ電荷がたまっていない=0(LOW)が保存

ということになります。

(2)読み込み時

次に、読み込み動作について説明します。

メモリセルのデータを読み込むには、書き込みの時と同様に、読み込みたいセルの Word Line をONにします。
f:id:pythonjacascript:20181209223004j:plain

こうすることで、各FETのゲインに電圧がかかり、ソース・ドレイン間が導通します。
そのため、コンデンサから電気が放電され、データを読み取ることができます。

もしコンデンサが充電されていれば(1が記憶されていれば)、そのメモリセルの Bit Line はHIGHになります。
反対に、コンデンサが充電されていなければ(0が記憶されていれば)、そのメモリセルの Bit Line はLOWになります。

この電圧の差をオペアンプで増幅し、読み込み信号とします。

実際の回路

今まで紹介してきたのは、1つのメモリセル当たりの書き込み/読み込み動作です。しかし、実際のメモリは、下のようにメモリセルが大量に配置されています。
f:id:pythonjacascript:20181209225206j:plain

上の写真は4bit × 4データ(word)のメモリの回路図です。

そのとき、特定のセルのデータを読み書きするには、Word Line を使用します。

例えば、Word2のデータを取り出したい時には、Word2の Word Line をHIGHにします。
すると、Word2の4つのFETのみONになるため、Bit Lineを通じて読み書きできるのはWord2のデータとなります。


リフレッシュ

このようにデータの読み書きを行うDRAMですが、ある欠点があります。
それは、コンデンサ内の電荷が時間とともに放電されるため、たとえ電源をつないだままでも時間がたつとデータが読み取れなくなる、ということです。

そこで、DRAMの制御装置は「リフレッシュ」という作業を定期的に行っています。「リフレッシュ」とは、一定時間ごとにDRAMの内容を読み込み、そのままの情報を再び書き込む、という動作のことです。これをコンデンサの自然放電が完全に完了する前に行うことで、データを保持することができます。


特徴

DRAMには次のような特徴があります

・一定電力を最低限消費する
データを保持し続けるためにはそのためには、↑のようなリフレッシュを行う必要があります。
そのため、データのアクセスのあるなしに関係なく電力を消費します。


・高密度
1つのメモリセル当たり2つの部品で構成されているので、高密度で製作することができます。
具体的には、次に紹介するSRAM約4倍の密度を実現できます。


・安価
部品数が少ないため、安価に大容量のメモリを製作することができます。


・スピードが微妙
コンデンサを使ったメモリでアクセス速度がやや遅くなります。また、定期的にリフレッシュ(データの書き直し)が必要であることも、本来のデータ読み書きを遅くする原因になっています。


SRAM

SRAM ( Static rANDOM aCCESS Memory)の略です。

ひとつ当たりのメモリセルは、下図のようにフリップフロップで構成されています。
f:id:pythonjacascript:20181209230829j:plain:h300

このように、一つのメモリセル当たり4つのFETで構成されています。
動作の解説はシーケンス制御の記事で説明予定です。

特徴

SRAMには、次のような特徴があります。

・高価
ひとつのメモリセル当たりFETを4個使用しているため、その分高価になります。

・高速
DRAMと違ってコンデンサを使用していないため、高速で読み書きが可能です。
また、リフレッシュ作業もないため、いつでもデータに読み書きが可能です。

・低集積
部品数が(DRAMと比べて)多いため、容量当たりの体積が大きくなります。

マスクROM

マスクROMは集積回路の配線によって記憶情報を記憶する不揮発性のメモリです。

種類&構造

書き込み方法には、「コンタクト書き込み」と「イオン書き込み」の二つがあるようです。
回路などについては、こちらのサイトを参考にしてください。
http://www.s-graphics.co.jp/nanoelectronics/kaitai/memory/4.htm

特徴

以下のような特徴があります。
・安価
大量生産時にチップ単価を安く抑えられる点から、ボリュームの出る(数万台以上の出荷が見込める)ゲーム機のソフトや組み込み機器で多く使われています。


・高集積
メモリセル構造や周辺回路が半導体メモリの中で最も単純なため、集積度を高くできます。


一方で、このような欠点があるため、近年ではフラッシュメモリに置き換えられている場合も多いようです。

EPROM

EPROM (Erasable Programmable Read Only Memory)は、不揮発性メモリの一種です。

EPROMの特徴はデータの消去方法で、紫外線を使って記憶内容を消去します。

メモリセルは、MOSFETによって構成されています。書き込み時には、通常より高い電圧を印加して、個々のFETにかきこむようです。

PICなどのプログラム保存用メモリに使われていましたが、近年ではあまり見かけません。

EEPROM

EEPROM(Electrically Erasable Programmable Read-Only Memory)は不揮発性メモリの一種です。
フローティングゲートMOSFETの配列で構成されています。
フローティングゲートMOSFET特有の性質を利用して、電源が供給されなくてもデータを保存し続けることができるよう設計されています。

USBメモリのように大量のデータを格納する用途では、従来型のEEPROMよりもその一種であるフラッシュメモリなどの方が経済的である。EEPROMは


フラッシュメモリ

EEPROMを改良して、ブロック単位もしくは一括での消去ができ、大容量化・書き込みの高速化などを行ったものをフラッシュメモリと言います。
SDカードやUSBメモリー等、今日私たちが利用している不揮発性メモリの多くはフラッシュメモリです。