フリップフロップがメモリになる理屈って? そんなムチャな質問、せんといて(汗)
だって、「タマゴが目玉焼きになる理屈は何ですか?」みたいな質問なんだもの。
|
まずねぇ、メモリって何さ?
メモリって、「情報を記憶するもの」だぁねぇ。
じゃ、情報って何さ?
メモリが記憶する情報って、「1または0の論理値」だぁねぇ。
ほんで、記憶するって何さ?
いっぺん論理値を書き込む動作を行ったら、書き込んだ値を保持することだわさ。
ほいじゃ、1bitのメモリって何さ?
「1bitの1または0の論理値をいっぺん書き込んだら、その値を保持する回路」ってことになるさ。
|
SRFF(=SRフリップフロップ)って、例えば、
入力A、Bと出力Cがあって、
Aを'1'にするとCが'1'になって、Bを'1'にするとCが'0'になって、A=B='0'の時は直前の値を保持するっと、
そういう回路だわさ。 (注:A=B='1'にしちゃったら、後は知らないよ)
だから、
Aへ'1'を入力することを「'1'を書き込む動作」、Bへ'1'を入力することを「'0'を書き込む動作」と定義すれば、
SRFFは立派なメモリになれちゃうってコト。
あとは、回路の中での使い方次第。 生かすも殺すも、回路を設計するアナタ次第。
|
世界初ローソクメモリ |
 |
火が点いてたら’1’
火が消えてたら'0' |
ほんじゃ、全てのメモリはSRFFで出来てるかって? 答えはNO。
SRFFは「メモリとして使用できる」ってゆーダケであって、メモリとして使用できるものは、他にもある。
極端に言えば、コンデンサ。
充電してるか放電してるかで'1'と'0'の状態を示すことにし、電荷が抜けて状態が読めなくなる前に再チャージする。
パソコンのメインメモリ(SIMMでもDIMMでもDDRでも)は、こーゆー原理で動いています。
論理回路の一部に含まれるようなメモリの場合、論理回路を構成するトランジスタでメモリも作ってしまうのが一般的。そうすると、D-FlipFlopやSRFFでもってメモリを構成してしまうのが、楽って言えば楽です。
ただ、キャッシュメモリのようにある程度固まったサイズのメモリを構成する場合は、集積度を上げるために、ANDとかFlipFlopとかってレベルじゃなくって、トランジスタを1ヶづつ組み合わせて専用のメモリ回路を作る場合もあります。
|
メモリってのは、かなり広い概念を含んだコトバです。
「メモリ=情報を記憶するデバイス」と解釈すれば、紙とエンピツだってメモリです。
「電気信号として読み出し可能なもの」って条件を追加したとしても、CD-ROMだってメモリです。
さらには、形状とか、インタフェースとか、電気的書き込み可否とか、ランダムアクセス可否とか、いろんな要素が絡んできます。
その昔はフェライトのビーズを電線で編んだよーなメモリもあったらしいし、リレーを組み合わせたってメモリは作れます。。。ただし消費電力と大きさは、知らん (別ページ「論理回路はどんなんがある?」を参照のこと:笑)
実世界では、いろんな種類のメモリが適材適所で使われています。 電気的なメモリであれば、必ず論理回路との組み合わせで動作します。
最初に論理シミュレータを使って論理回路とメモリの動作を学習する時には、メモリ=FlipFlopと考えて問題ないと思います。 ただしそれは、最も簡単にメモリを理解するモデルに過ぎません。
メモリ=FlipFlopだなんて言う固定観念を作らずに、お脳を柔軟にしておきましょう。
|