令和3年度 秋期 エンベデッドシステムスペシャリスト試験 午前II 問12

プログラムと定数をROMから読み出すために,アドレスバスとチップセレクト信号(CS)を図のように接続した。アドレスバスはA0がLSBである。このROMにアクセスできるメモリアドレスの範囲はどれか。ここで,解答群の数値は16進数で表記してある。

ROMとアドレスバスの接続図
図の説明テキスト

プログラムと定数をROMから読み出すためのメモリアドレス接続を示す論理回路図。上部に「アドレスバス (A15〜A0)」という太い信号線があり、そこからA15とA14の線が分岐してNORゲート(ORゲートの出力に反転丸記号がついたもの)に入力されている。NORゲートの出力はROMのチップセレクト端子(CSに上線が付いた負論理のアクティブロー端子)に接続されている。また、アドレスバスからA13〜A0の線が分岐し、ROMのアドレス入力端子群(A13...A0)に接続されている。

解答・解説

正解: ウ. 4000 〜 FFFF

ROMにアクセスできるのは、ROMのチップセレクト信号(CS‾\overline{\text{CS}})が有効になる場合です。図のROMのCS端子には負論理を示す上線と丸記号がついているため、入力が 0(Lレベル)のときにROMが有効になります。

図の回路構成から、以下のことが分かります。

  • CS‾\overline{\text{CS}} 端子には、アドレスバスの A15A_{15} と A14A_{14} を入力とするNORゲートの出力が接続されています。
  • NORゲートは、すべての入力が 0 のときのみ出力が 1 となり、それ以外の(少なくとも1つの入力が 1 の)場合は出力が 0 になります。

したがって、ROMが有効(CS‾=0\overline{\text{CS}} = 0)になる条件は、A15A_{15} と A14A_{14} の少なくとも一方が 1 であることです。
逆に、アクセスできない条件は A15=0A_{15} = 0 かつ A14=0A_{14} = 0 の場合です。

16ビットのメモリアドレス(A15A14A13…A0A_{15} A_{14} A_{13} \dots A_{0})を2進数で表し、範囲を確認します。

  • アクセスできない範囲(A15=0,A14=0A_{15}=0, A_{14}=0):
    0000 0000 0000 0000 〜 0011 1111 1111 1111
    (16進数で 0000 〜 3FFF)
  • アクセスできる範囲(上記以外):
    0100 0000 0000 0000 〜 1111 1111 1111 1111
    (16進数で 4000 〜 FFFF)

よって、アクセスできるメモリアドレスの範囲は 4000 〜 FFFF となります。

各選択肢の解説

  • ア(0000 〜 1FFF)
    A15=0,A14=0A_{15}=0, A_{14}=0 となるアドレスが含まれており、NORゲートの出力が 1 (アクセス不可)になるため誤りです。
  • イ(4000 〜 7FFF)
    A15=0,A14=1A_{15}=0, A_{14}=1 の範囲のみを指しています。A15=1A_{15}=1 の範囲(8000 〜 FFFF)もアクセス可能であるため誤りです。
  • ウ(4000 〜 FFFF)
    正解です。A15A_{15} と A14A_{14} の少なくとも一方が 1 になるすべてのアドレス範囲を正しく示しています。
  • エ(C000 〜 FFFF)
    A15=1,A14=1A_{15}=1, A_{14}=1 の範囲のみを指しています。他の条件(A15=0,A14=1A_{15}=0, A_{14}=1 や A15=1,A14=0A_{15}=1, A_{14}=0)でもアクセス可能であるため不足しており誤りです。

Spineチーム