エンベデッドシステムスペシャリスト 2018年 午前2 問15
問題文
プログラムと定数をROMから読み出すために、アドレスバスとチップセレクト信号()を図のように接続した。アドレスバスはA0がLSBである。このROMにアクセスできるメモリアドレスの範囲はどれか。ここで、解答群の数値は16進数で表記してある。

選択肢
ア:0000~1FFF
イ:4000~7FFF
ウ:4000~FFFF(正解)
エ:C000~FFFF
🔒 解説は解答すると表示されます
ROMのアドレス選択範囲【午前2解説】
正解の理由
ROMのチップセレクト端子は、端子名の上線と入力側のバブルから、Lowレベルで選択される端子だと分かります。
図のゲートは、ORゲートの出力にバブルが付いているためNORゲートです。したがって、チップセレクト信号は次のようになります。
この信号がLowになるのは、またはの少なくとも一方が1のときです。つまり、上位2ビットが
00以外のアドレスでROMが選択されます。01:4000~7FFF10:8000~BFFF11:C000~FFFF
これらを合わせると、ROMにアクセスできる範囲は4000~FFFFです。よって、正解はウです。
解法ステップ
-
ROMの容量を読み取ります。
ROMのアドレス入力はA₁₃~A₀の14本なので、ROM内部で指定できるアドレス数は個です。 -
チップセレクト信号の有効レベルを確認します。
端子名の上線とバブルから、CSはLowで有効です。 -
ゲートの論理を確認します。
ORゲートの出力にバブルが付いているため、出力はです。 -
ROMが選択される条件を求めます。
出力がLowになるのは、またはが1のときです。上位2ビットが00の範囲を除き、4000~FFFFが選択されます。
選択肢別の誤答解説
-
ア:0000~1FFF
上位ビットが00の範囲です。このときNORゲートの出力はHighとなり、Low有効のCS端子は選択されません。 -
イ:4000~7FFF
上位2ビットが01の範囲だけを示しています。10と11の範囲も条件を満たすため、範囲が不足しています。 -
ウ:4000~FFFF
上位2ビットが00以外の範囲をすべて含んでおり、正しい範囲です。 -
エ:C000~FFFF
上位2ビットが11の範囲だけです。01と10の範囲もROMが選択されます。
よくある誤解
-
CSの上線やバブルを見落とす
チップセレクトがHigh有効かLow有効かで、選択条件は変わります。端子名の上線や入力側のバブルを必ず確認します。 -
バブル付きORゲートをORゲートとして扱う
出力にバブルが付いているため、論理はORではなくNORです。 -
ROMのアドレス入力本数だけでアドレス範囲を決める
A₁₃~A₀はROM内部の番地指定に使われます。アクセス可能な全体の範囲は、A₁₅・A₁₄によるチップ選択条件も合わせて判断します。
補足コラム
ROMにはA₁₃~A₀だけが接続されているため、ROM内部から見ると、上位ビットA₁₅・A₁₄の違いは区別されません。ただし、この回路では上位ビットが
00以外ならROMが選択されます。そのため、ROM内部の同じ番地が複数のアドレス範囲に対応します。このように、複数のアドレスから同じ記憶領域を参照できる状態を、アドレスのミラーと呼ぶことがあります。FAQ
なぜ4000~FFFFが連続した範囲になるのですか?
上位2ビットの組合せ
上位2ビットの組合せ
01、10、11がすべて選択条件を満たすためです。それぞれの範囲を連結すると、4000~FFFFになります。ROMの容量は、アクセス範囲の大きさと同じですか?
同じとは限りません。ROM内部の容量は14本のアドレス入力から16K個ですが、チップ選択条件により、より広いアドレス範囲から同じROMにアクセスできます。
同じとは限りません。ROM内部の容量は14本のアドレス入力から16K個ですが、チップ選択条件により、より広いアドレス範囲から同じROMにアクセスできます。
関連キーワード: ROM、アドレスバス、チップセレクト信号、アクティブロー、NORゲート、アドレスデコード、アドレスミラー

\ せっかくなら /
エンベデッドシステムスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

