資格道場 › レッスン一覧 › ハードウェア
ハードウェア・3/7・11分

フリップフロップと半導体メモリ(SRAM・DRAM・フラッシュ)

ゴール

フリップフロップが「1ビットを覚える順序回路」であることと、NAND 2個で組んだ RS フリップフロップの状態を自力で追えるようになる。SRAM・DRAM・フラッシュメモリの特徴を選択肢から見分け、過去問の「どのメモリか」問題を確実に取れるようになる。

メモリの見分け問題は毎回のように出題され、公開過去問では DRAM が本試験系9回・免除17回、フラッシュメモリが本試験系6回・免除14回と特に多い。ここで覚える「キャッシュ=SRAM、主記憶=DRAM、SSD・USBメモリ=フラッシュ」は、PC やサーバのスペック表を読むときにもそのまま使える。

このレッスンで稽古する(用語チェック・過去問)

結論:試験で覚えることは3行

  • フリップフロップ=二つの安定状態をもち、1ビットを記憶する順序回路
  • SRAM=記憶セルがフリップフロップ。高速でリフレッシュ不要なのでキャッシュメモリに使う
  • DRAM=記憶セルがコンデンサ。リフレッシュが必要だが安く大容量なので主記憶に使う。フラッシュメモリは不揮発で、ブロック単位で電気的に消去できる

選択肢を見て、この3行のどれに当たるかを照らし合わせれば、ほとんどの問題が解けます。

組合せ回路と順序回路のちがい

前のレッスンで扱った NAND や加算器は組合せ回路です。出力が今の入力だけで決まり、過去のことは覚えていません。

これに対して順序回路は、出力が今の入力と、それまでの状態の両方で決まる回路です。出力を入力側に戻す**帰還(フィードバック)**の配線があるので、前の状態を覚えておけます。

組合せ回路 順序回路
出力を決めるもの 今の入力だけ 今の入力+覚えている状態
記憶 しない する
例 AND・OR・NAND ゲート、加算器 フリップフロップ、カウンタ、レジスタ

たとえるなら、組合せ回路は「押している間だけ点くインターホンのボタン」、順序回路は「押すたびに点く・消えるが切り替わり、手を離してもそのまま残る照明スイッチ」です。

フリップフロップ=二つの安定状態で1ビットを覚える

フリップフロップ(FF)は、「0の状態」と「1の状態」という二つの安定状態をもつ回路です。この性質を双安定と呼びます。電源が入っている間は、入力で切り替えない限り今の状態を保ち続けるので、1ビットを記憶できます。

試験の答え方は決まっていて、「二つの安定状態をもつ順序回路」と問われたらフリップフロップです。選択肢に並ぶ NAND ゲートや加算器は組合せ回路、コンデンサは部品の名前なので、どれも順序回路ではありません。

NAND で組んだ RS フリップフロップの動き

NAND 2個の出力を、互いに相手の入力へたすき掛けで戻すと RS フリップフロップになります。過去問の図は「AND の出力に NOT をつないだもの」が2組描かれていますが、AND+NOT は NAND と同じです。

  • X = NAND(S, Y)
  • Y = NAND(R, X)

NAND は「入力に1つでも0があれば出力は1、全部1のときだけ0」です。この性質から、NAND 型の RS フリップフロップは次のように動きます。

S R 動き
0 1 セット:X=1、Y=0
1 0 リセット:X=0、Y=1
1 1 保持:直前の状態のまま
0 0 X、Y がどちらも1になる(使わない組合せ)

入力を0にすると働き、1に戻すと保持になる点が肝心です(入力を0にしたときに働くので「負論理入力」と呼びます)。計算の進め方は下の例題で順に追います。

flowchart LR
  S["入力 S"] --> N1["NAND 1"]
  N1 --> X["出力 X"]
  R["入力 R"] --> N2["NAND 2"]
  N2 --> Y["出力 Y"]
  X -->|"帰還"| N2
  Y -->|"帰還"| N1
保持セット保持リセット保持SRXYSを1に戻してもX=1のまま=保持初めは X=0、Y=1 の状態(線が上=1、下=0)
NAND型RSフリップフロップの時間変化。S を0にするとセットされ、1に戻しても X=1 のまま保持される。

半導体メモリの地図:揮発性と不揮発性

メモリは、まず電源を切ると消えるかどうかで二つに分かれます。

  • 揮発性(電源を切ると消える)= RAM(読み書きできるメモリ)。SRAM と DRAM がある
  • 不揮発性(電源を切っても残る)= ROM 系。マスクROM、EPROM、EEPROM、フラッシュメモリがある

SDRAM は「クロックに同期して動く DRAM」で、DRAM の仲間です。RDRAM も DRAM の一種です。「DRAM」の文字を含む選択肢は、すべてコンデンサで記憶するメモリだと考えてかまいません。

半導体メモリ揮発性(RAM)電源を切ると消える不揮発性(ROM系)電源を切っても残るSRAMDRAMSDRAM・RDRAM(DRAMの仲間)マスクROMEPROMEEPROMフラッシュ「DRAM」とあればコンデンサで記憶
半導体メモリを電源を切ると消えるかどうかで分けた地図。DRAM の文字を含むものは DRAM の仲間。

SRAM と DRAM:記憶セルの中身で見分ける

記憶セルとは、1ビットを覚える最小の部品のことです。SRAM と DRAM は、この記憶セルの作りで見分けます。

SRAM(エスラム) DRAM(ディーラム)
記憶セル フリップフロップ コンデンサ(電荷の有無で記憶)
リフレッシュ 不要 必要(電荷が漏れるため)
速度 高速 SRAM より遅い
構造・集積度 複雑で集積度が低い 単純で高集積
ビット単価 高い 安い
主な用途 キャッシュメモリ 主記憶(PC のメインメモリ)
電源を切ると 消える(揮発性) 消える(揮発性)

リフレッシュとは、DRAM のコンデンサから少しずつ漏れていく電荷を、定期的に読み出して書き戻す操作です。水が少しずつ漏れるバケツに、ときどき水を足して水位を保つ作業にあたります。DRAM は構造が単純なぶん大容量で安く作れるので、主記憶に使われています。

電荷時間電荷が少しずつ漏れるリフレッシュ=読み出して書き戻す漏れるバケツに時々水を足すのと同じ
DRAM のコンデンサの電荷は時間とともに漏れて減り、リフレッシュで読み出して書き戻すたびに元に戻る。

フラッシュメモリ:不揮発・ブロック単位で電気的に消去

フラッシュメモリは、電源を切ってもデータが残る不揮発性のメモリです。SSD、USB メモリ、SD カード、デジカメや音楽プレーヤの記録媒体に使われています。中身には NAND 型と NOR 型があり、SSD に使われるのは主に NAND 型です。

試験に出る特徴は次の4つです。

  • ブロック単位で電気的に消去できる(1バイトずつではなく、まとめて消す)
  • 書き換えるときは、先に古いデータを消去してから書き込む
  • 書込み回数には上限がある(無制限ではない)
  • 基板に付けたまま書き換えられる(専用の ROM ライタは不要)

この4つ目の性質から、マイコン(家電などに組み込む小さなコンピュータ)の内蔵メモリにフラッシュメモリを使えば、出荷後もソフトウェアを書き換えられます。製品のファームウェアのアップデートができるのは、この仕組みのおかげです。

① CをXに変えたい:まずA〜Hを退避ABCDEFGH② ブロック全体をまとめて電気的に消去A〜H すべて消えて空になる③ ブロック全体を書き直す(A・B・D〜H も書き込み直す)ABXDEFGH一部の変更でもブロックごと書き直す書込み回数には上限がある
フラッシュメモリの書き換え。C だけ変えたいときも、中身を退避してブロック全体を電気的に消去し、A・B・D〜H も含めてブロック全体を書き直す。

ROM 系の見分け表(ひっかけ選択肢の出どころ)

フラッシュメモリの問題では、ほかの ROM の特徴が誤りの選択肢として並びます。

メモリ 消去・書換えの方法 ひっかけでの出方
マスクROM 製造時に内容を書き込み、書換え不可 「書換えできない記録媒体」
EPROM 紫外線で全データを一括消去 「紫外線で全データを一括消去」
EEPROM 電気的に1バイト単位で消去・書込み 「1バイト単位で消去・書込み可能な不揮発性メモリ」
フラッシュメモリ 電気的にブロック単位で消去 ← これが正解の特徴

「紫外線」とあれば EPROM、「1バイト単位」とあれば EEPROM、「ブロック単位」とあればフラッシュメモリです。

試験での問われ方

  • 「〜はどれか」型:「フリップフロップを使ったメモリ」なら SRAM、「コンデンサの電荷で記憶」なら DRAM 系(SDRAM を含む)、「デジカメの記録媒体」ならフラッシュメモリ
  • 「DRAM の説明はどれか」型:4つの選択肢が SRAM・DRAM・EEPROM・フラッシュの説明になっていて、メモリの種類だけ入れ替えてある。「リフレッシュ」「主記憶」「高集積・安い」が DRAM のキーワード
  • 「フラッシュの説明はどれか」型:「キャッシュに使う」(SRAM)、「紫外線で消去」(EPROM)、「周期的な再書込みが必要」(DRAM)が誤りの選択肢として定番
  • RS フリップフロップ型(免除試験で出題):S を 0 にしてから 1 に戻すと、元に戻らず保持することを問う
例題 1

NAND 型 RS フリップフロップ:S を一度 0 にして 1 に戻すと?

図の論理回路において,S=1,R=1,X=0,Y=1 のとき,S を一旦 0 にした後,再び 1 に戻した。この操作を行った後の X,Y の値はどれか。
論理回路: 上段は AND 素子(入力 S と下段 Y 側からの帰還線)の出力を NOT 素子に通した出力が X。下段は AND 素子(入力 R と上段 X 側からの帰還線)の出力を NOT 素子に通した出力が Y。X の出力線は下段 AND の入力へ,Y の出力線は上段 AND の入力へ,それぞれ交差して帰還する(NAND を使った RS フリップフロップ相当)。

ア X=0,Y=0
イ X=0,Y=1
ウ X=1,Y=0
エ X=1,Y=1

出典:基本情報技術者試験 科目A免除 修了試験 20180128 実施分 問22

解き方と答えを見る
  1. 式を書く。AND+NOT は NAND なので、X=NAND(S, Y)、Y=NAND(R, X)。NAND は「入力に0が1つでもあれば1、全部1のときだけ0」。
  2. 最初の状態を確かめる。S=1、R=1、X=0、Y=1 なので、X=NAND(1, 1)=0、Y=NAND(1, 0)=1。式と合っていて安定している。
  3. S を 0 にする。X=NAND(0, Y)。入力に0があるので、Y の値に関係なく X=1。
  4. 変わった X を下段に入れる。Y=NAND(R, X)=NAND(1, 1)=0。
  5. 変わった Y を上段に入れて確かめる。X=NAND(0, 0)=1。X=1、Y=0 で落ち着く(ここまでがセット)。
  6. S を 1 に戻す。X=NAND(1, Y)=NAND(1, 0)=1。X は 1 のまま。
  7. 下段も確かめる。Y=NAND(1, X)=NAND(1, 1)=0。Y も 0 のまま。S=1、R=1 は保持なので、セットした状態が残る。

答え:X=1、Y=0(ウ)。S を 1 に戻しても元の X=0、Y=1 には戻らず、セットした状態を保持する。menjo_20160724#21 も同じ回路・同じ操作なので答えは同じくウ。

要点(試験直前に読む)

  • 二つの安定状態をもつ順序回路=フリップフロップ(1ビットを記憶する)。NAND ゲートと加算器は組合せ回路。
  • SRAM=フリップフロップ・高速・リフレッシュ不要・キャッシュ。DRAM=コンデンサ・リフレッシュ必要・高集積で安い・主記憶。
  • SDRAM・RDRAM は DRAM の仲間で、記憶の仕組みはコンデンサ。
  • フラッシュメモリ=不揮発・ブロック単位で電気的に消去・消してから書く・書込み回数に上限あり。SSD・USB メモリ・デジカメに使う。
  • フラッシュメモリを内蔵したマイコンは、出荷後もソフトウェアを書き換えられる。
  • NAND 型 RS フリップフロップは、入力を0にすると働き、1に戻すと保持する。S を一度0にして戻すと X=1、Y=0 のまま。

ひっかけ

  • 「SDRAM はフリップフロップを使った高速メモリ」と誤解させるひっかけ。名前に DRAM を含むものは、すべてコンデンサ式と覚える。
  • DRAM の説明を問う問題では、SRAM(フリップフロップ・キャッシュ)、EEPROM(1バイト単位)、フラッシュ(NAND 型・SSD)の説明が誤りの選択肢として並ぶ。「リフレッシュ」「主記憶」「安い」を探す。
  • フラッシュメモリの誤りの選択肢は「キャッシュに使う」(SRAM)、「紫外線で一括消去」(EPROM)、「周期的な再書込みが必要」(DRAM)、「書込み回数は無制限」(上限がある)の4パターン。
  • RS フリップフロップで、S を1に戻せば元の状態に戻ると考えるのは誤り。S=1、R=1 は保持なので、直前のセット状態(X=1、Y=0)が残る。
  • フラッシュ内蔵マイコンの利点として「処理性能が上がる」「コードが小さくなる」が並ぶが、正解は「出荷後に書き換えられる」の一点。

用語(16)

組合せ回路 くみあわせかいろ
出力が今の入力だけで決まり、状態を記憶しない回路。
⚠ 順序回路と取り違えやすい。AND・OR・NAND ゲートや加算器は組合せ回路で、記憶しない。
順序回路 じゅんじょかいろ
出力が今の入力とそれまでの状態の両方で決まり、状態を記憶できる回路。
⚠ 組合せ回路と取り違えやすい。出力を入力側に戻す帰還の配線があれば順序回路。
フリップフロップ flip-flop
二つの安定状態をもち、1ビットを記憶する順序回路。
⚠ コンデンサと取り違えやすい。フリップフロップは SRAM の記憶セル、コンデンサは DRAM の記憶セル。
双安定 そうあんてい
二つの状態のどちらにも、入力で切り替えない限り留まり続ける性質。
RS フリップフロップ Reset-Set flip-flop
セット入力 S とリセット入力 R で状態を切り替え、どちらも働かせないときは状態を保持するフリップフロップ。
⚠ NAND 型では入力を0にしたときに働き、両方1で保持になる。1で働くと思い込むと答えを間違える。
揮発性メモリ きはつせいメモリ
電源を切ると記憶した内容が消えるメモリ。
⚠ 不揮発性と取り違えやすい。SRAM・DRAM は揮発性、ROM 系とフラッシュメモリは不揮発性。
SRAM Static Random Access Memory
記憶セルにフリップフロップを使う、高速でリフレッシュ不要な RAM で、キャッシュメモリに使われる。
⚠ DRAM と取り違えやすい。フリップフロップ・キャッシュ・リフレッシュ不要なら SRAM。
DRAM Dynamic Random Access Memory
コンデンサに蓄えた電荷の有無で記憶する RAM で、リフレッシュが必要だが高集積で安く、主記憶に使われる。
⚠ SRAM と取り違えやすい。コンデンサ・リフレッシュ・主記憶・ビット単価が安いなら DRAM。
SDRAM Synchronous Dynamic Random Access Memory
クロックに同期して動作する DRAM の一種で、記憶の仕組みはコンデンサ。
⚠ 名前に S があるため SRAM と取り違えやすいが、DRAM の仲間。RDRAM も同じく DRAM 系。
リフレッシュ refresh
DRAM のコンデンサから漏れる電荷を、定期的に読み出して書き戻し、データを保つ操作。
⚠ 必要なのは DRAM だけ。SRAM やフラッシュメモリには不要。
キャッシュメモリ cache memory
CPU と主記憶の速度差を埋めるために置く、小容量で高速なメモリで、SRAM が使われる。
⚠ 主記憶(DRAM)と取り違えやすい。キャッシュは SRAM、主記憶は DRAM。
主記憶 しゅきおく
CPU が実行中のプログラムやデータを置くメモリで、PC では DRAM が使われる。
フラッシュメモリ flash memory
電源を切っても内容が残り、ブロック単位で電気的に消去・書換えできるメモリ。
⚠ EEPROM と取り違えやすい。1バイト単位なら EEPROM、ブロック単位ならフラッシュメモリ。
EEPROM Electrically Erasable Programmable Read Only Memory
電気的に1バイト単位でデータの消去と書込みができる不揮発性メモリ。
⚠ フラッシュメモリと取り違えやすい。消去の単位で見分ける(EEPROM はバイト、フラッシュはブロック)。
EPROM Erasable Programmable Read Only Memory
紫外線を当てて全データを一括消去し、書き直せる ROM。
⚠ 「紫外線」とあれば EPROM。電気で消去するのは EEPROM とフラッシュメモリ。
マスクROM mask Read Only Memory
製造時に内容を書き込み、あとから書き換えられない ROM。
⚠ フラッシュメモリと違い、出荷後にソフトウェアを書き換えられない。

このレッスンの過去問

このレッスンで稽古する