記憶素子

メモリを構成する最小単位は、0か1かを記憶するものです。これを記憶素子と言いましょう。現在一般に使われているのは2種類でひとつは SRAM(Static Random Access Memory)もう一つは DRAM(Dynamic Random Access Memory)です。

コンピュータ部品として売られているものはまず間違いなくDRAMです。SDRAMはSynchronous DRAM のこと。DDRと言えばDDR-SDRAM(Double Data Rate SDRAM) のことです。

SRAM

電気的なシーソーのようなものがあって、片方を下げると片方があがります。どちらかが下がればその状態を保つのにエネルギーを使いません。データの更新があってもう片方を下げるまで何もしなくてもそのままになっています。これが Static Random Access Memory と呼ばれる理由です。

高速、低消費電力が長所ですが、構造がDRAMより複雑なため、小さく作れない、コストが高いという短所があります。速度を必要とするキャッシュメモリや、低消費電力であることが必要な携帯型機器でよく用いられます。

フリップフロップ回路

SRAMで使用される「電気的なシーソーのようなもの」がフリップフロップという回路です。いくつかのパターンがありますがこれは一例です。

flipflopの一例

この動作を学にあたり、2点注意があります。

1.入力にS,R、出力にQ1,Q2がありますが、出力はQ1のみを考えます。

2.S,Rは普段は0で、シーソーを倒すために一瞬だけ1にするボタンだと理解してください。ずっと1にしておくということはありません。

この2点を押さえると後は簡単です。

SはsetでQ1を1に倒します。

RはresetでQ1を0に倒します。

NANDの復習

動作を追いかけるためにNANDの復習をします。

NAND
A B X
001
011
101
110

今回の目的のため次のように考えます。

ABの入力のうちどちらかが0であれば出力Xは1。両方1の時は0。どちらかが1のときはもう一方の値がわかるまでは判断できない。

動作

S,Rの付近をクリックするとQ1が変化します。

0 0
0
0

S,R,Q1の付近に0,1の表示に加えて、配線にも0ならば青、1ならば赤と色をつけています。

Rボタンで初期化
SRABCD Q1Q2
初期値 001??1 ??最初はQ1,Q2が0なのか1なのかはわからない
RをON 011??0 ??Dは0になる
次の瞬間 011??0 ?1Dが0ならばCが何でもQ2は1
次の瞬間 011100 01Q2が1ならBも1。A,Bが共に1なのでQ1は0
Rをoff 001101 01Rを戻すとDは1になるがCが0なので他は変わらない。
再びRをON 011100 01Rを押してもCが0なのでQ2は1のまま。他も変わらない。
Rをoff 001101 01Rを戻すとDは1になるがCが0なので他は変わらない。

ここまででスイッチを入れてから、全体をリセット(初期化)するところまでです。

SボタンでQ1をセットする
SRABCD Q1Q2
リセットされた 001101 01Rを戻すとDは1になるがCが0なので他は変わらない。
SをON 100101 01Aは0になる
次の瞬間 100101 11Aが0になればQ1が1になる
次の瞬間 100111 10Q1が1ならCも1。C,Dが共に1なのでQ2は0
次の瞬間 100011 10Q2が0ならBも0。Aはもともと0なのでQ1は1のまま。
Sをoff 001011 10Sを戻すとAは1になるがBが0なので他は変わらない。
再びSをON 100011 10Sを押してもBが0なのでQ1は1のまま。他も変わらない。
Sをoff 001011 10Sを戻すとAは1になるがBが0なので他は変わらない。

DRAM

小さなコンデンサと読み書きのための1個のトランジスタでできています。部品数が少なく小さく安く作れます。

しかし、コンデンサは時間が経つと放電していくので定期的に充電し直します。これをリフレッシュといいますが、このために電力消費が大きくなり、リフレッシュ中はデータの読み書きができないので動作が遅くなります。

構造は簡単なので図示しません。

聖愛中学高等学校
http://www.seiai.ed.jp/
Aug. 2009