フリップフロップと半導体メモリ(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
半導体メモリの地図:揮発性と不揮発性
メモリは、まず電源を切ると消えるかどうかで二つに分かれます。
- 揮発性(電源を切ると消える)= RAM(読み書きできるメモリ)。SRAM と DRAM がある
- 不揮発性(電源を切っても残る)= ROM 系。マスクROM、EPROM、EEPROM、フラッシュメモリがある
SDRAM は「クロックに同期して動く DRAM」で、DRAM の仲間です。RDRAM も DRAM の一種です。「DRAM」の文字を含む選択肢は、すべてコンデンサで記憶するメモリだと考えてかまいません。
SRAM と DRAM:記憶セルの中身で見分ける
記憶セルとは、1ビットを覚える最小の部品のことです。SRAM と DRAM は、この記憶セルの作りで見分けます。
| SRAM(エスラム) | DRAM(ディーラム) | |
|---|---|---|
| 記憶セル | フリップフロップ | コンデンサ(電荷の有無で記憶) |
| リフレッシュ | 不要 | 必要(電荷が漏れるため) |
| 速度 | 高速 | SRAM より遅い |
| 構造・集積度 | 複雑で集積度が低い | 単純で高集積 |
| ビット単価 | 高い | 安い |
| 主な用途 | キャッシュメモリ | 主記憶(PC のメインメモリ) |
| 電源を切ると | 消える(揮発性) | 消える(揮発性) |
リフレッシュとは、DRAM のコンデンサから少しずつ漏れていく電荷を、定期的に読み出して書き戻す操作です。水が少しずつ漏れるバケツに、ときどき水を足して水位を保つ作業にあたります。DRAM は構造が単純なぶん大容量で安く作れるので、主記憶に使われています。
フラッシュメモリ:不揮発・ブロック単位で電気的に消去
フラッシュメモリは、電源を切ってもデータが残る不揮発性のメモリです。SSD、USB メモリ、SD カード、デジカメや音楽プレーヤの記録媒体に使われています。中身には NAND 型と NOR 型があり、SSD に使われるのは主に NAND 型です。
試験に出る特徴は次の4つです。
- ブロック単位で電気的に消去できる(1バイトずつではなく、まとめて消す)
- 書き換えるときは、先に古いデータを消去してから書き込む
- 書込み回数には上限がある(無制限ではない)
- 基板に付けたまま書き換えられる(専用の ROM ライタは不要)
この4つ目の性質から、マイコン(家電などに組み込む小さなコンピュータ)の内蔵メモリにフラッシュメモリを使えば、出荷後もソフトウェアを書き換えられます。製品のファームウェアのアップデートができるのは、この仕組みのおかげです。
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 に戻すと、元に戻らず保持することを問う
NAND 型 RS フリップフロップ:S を一度 0 にして 1 に戻すと?
ア X=0,Y=0
イ X=0,Y=1
ウ X=1,Y=0
エ X=1,Y=1
出典:基本情報技術者試験 科目A免除 修了試験 20180128 実施分 問22
解き方と答えを見る
- 式を書く。AND+NOT は NAND なので、X=NAND(S, Y)、Y=NAND(R, X)。NAND は「入力に0が1つでもあれば1、全部1のときだけ0」。
- 最初の状態を確かめる。S=1、R=1、X=0、Y=1 なので、X=NAND(1, 1)=0、Y=NAND(1, 0)=1。式と合っていて安定している。
- S を 0 にする。X=NAND(0, Y)。入力に0があるので、Y の値に関係なく X=1。
- 変わった X を下段に入れる。Y=NAND(R, X)=NAND(1, 1)=0。
- 変わった Y を上段に入れて確かめる。X=NAND(0, 0)=1。X=1、Y=0 で落ち着く(ここまでがセット)。
- S を 1 に戻す。X=NAND(1, Y)=NAND(1, 0)=1。X は 1 のまま。
- 下段も確かめる。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 ゲートや加算器は組合せ回路で、記憶しない。
出力が今の入力とそれまでの状態の両方で決まり、状態を記憶できる回路。
⚠ 組合せ回路と取り違えやすい。出力を入力側に戻す帰還の配線があれば順序回路。
二つの安定状態をもち、1ビットを記憶する順序回路。
⚠ コンデンサと取り違えやすい。フリップフロップは SRAM の記憶セル、コンデンサは DRAM の記憶セル。
二つの状態のどちらにも、入力で切り替えない限り留まり続ける性質。
セット入力 S とリセット入力 R で状態を切り替え、どちらも働かせないときは状態を保持するフリップフロップ。
⚠ NAND 型では入力を0にしたときに働き、両方1で保持になる。1で働くと思い込むと答えを間違える。
電源を切ると記憶した内容が消えるメモリ。
⚠ 不揮発性と取り違えやすい。SRAM・DRAM は揮発性、ROM 系とフラッシュメモリは不揮発性。
記憶セルにフリップフロップを使う、高速でリフレッシュ不要な RAM で、キャッシュメモリに使われる。
⚠ DRAM と取り違えやすい。フリップフロップ・キャッシュ・リフレッシュ不要なら SRAM。
コンデンサに蓄えた電荷の有無で記憶する RAM で、リフレッシュが必要だが高集積で安く、主記憶に使われる。
⚠ SRAM と取り違えやすい。コンデンサ・リフレッシュ・主記憶・ビット単価が安いなら DRAM。
クロックに同期して動作する DRAM の一種で、記憶の仕組みはコンデンサ。
⚠ 名前に S があるため SRAM と取り違えやすいが、DRAM の仲間。RDRAM も同じく DRAM 系。
DRAM のコンデンサから漏れる電荷を、定期的に読み出して書き戻し、データを保つ操作。
⚠ 必要なのは DRAM だけ。SRAM やフラッシュメモリには不要。
CPU と主記憶の速度差を埋めるために置く、小容量で高速なメモリで、SRAM が使われる。
⚠ 主記憶(DRAM)と取り違えやすい。キャッシュは SRAM、主記憶は DRAM。
CPU が実行中のプログラムやデータを置くメモリで、PC では DRAM が使われる。
電源を切っても内容が残り、ブロック単位で電気的に消去・書換えできるメモリ。
⚠ EEPROM と取り違えやすい。1バイト単位なら EEPROM、ブロック単位ならフラッシュメモリ。
電気的に1バイト単位でデータの消去と書込みができる不揮発性メモリ。
⚠ フラッシュメモリと取り違えやすい。消去の単位で見分ける(EEPROM はバイト、フラッシュはブロック)。
紫外線を当てて全データを一括消去し、書き直せる ROM。
⚠ 「紫外線」とあれば EPROM。電気で消去するのは EEPROM とフラッシュメモリ。
製造時に内容を書き込み、あとから書き換えられない ROM。
⚠ フラッシュメモリと違い、出荷後にソフトウェアを書き換えられない。
このレッスンの過去問
- フリップフロップの定義(双安定)平成26年度 秋期 基本情報技術者試験 午前 問22
- NAND素子RSフリップフロップの状態遷移基本情報技術者試験 科目A免除 修了試験 20180128 実施分 問22
- SRAMの記憶セル(フリップフロップ)平成31年度 春期 基本情報技術者試験 午前 問21
- DRAMの特性(リフレッシュ)令和元年度 秋期 基本情報技術者試験 午前 問20
- フラッシュメモリの特性(ブロック消去等)平成30年度 春期 基本情報技術者試験 午前 問22
- フラッシュメモリ内蔵マイコンの利点(出荷後の書換え)基本情報技術者試験 科目A免除 修了試験 20220724 実施分 問21