平成30年度 春期 午前Ⅱ 問15
ハードウェア
アドレスバスに関する問題
プログラムと定数を ROM から読み出すために,アドレスバスとチップセレクト信号(C̅S̅)を図のように接続した。アドレスバスは A_0 が LSB である。この ROM にアクセスできるメモリアドレスの範囲はどれか。ここで,解答群の数値は 16 進数で表記してある。
ROM の接続図:
- アドレスバス(A_15~A_0)のうち A_13~A_0 → ROM のアドレス端子 A_13~A_0
- A_15・A_14 → NOR → ROM の C̅S̅(負論理入力)
- ア0000 ~ 1FFF
- イ4000 ~ 7FFF
- ウ4000 ~ FFFF
- エC000 ~ FFFF
答えと解説を見る
✓ これが正解ウ4000 ~ FFFF
解説
A_15 か A_14 が1なら選ばれ、範囲は 4000〜FFFF です。
C̅S̅ は負論理の入力なので、ROM が選択されるのは C̅S̅ が 0 のときです。C̅S̅ には A_15 と A_14 の NOR の出力がつながっています。NOR の出力は、入力がともに 0 のときだけ 1 で、どちらか一方でも 1 なら 0 になります。したがって、A_15 と A_14 の組が 00 のときだけ ROM は選ばれず、01、10、11 のときに選ばれます。上位2ビットが 01 の範囲は 4000〜7FFF、10 は 8000〜BFFF、11 は C000〜FFFF なので、合わせて 4000〜FFFF です。ROM には A_13〜A_0 しかつながっていないため、同じ内容がこの三つの範囲に繰り返し現れます。負論理の入力とゲートの真理値を組み合わせ、どの上位ビットで選ばれるかを先に決めると解けます。
ほかの選択肢はなぜ違うのか
- ア0000 ~ 1FFF:0000〜1FFF は、上位3ビットが 000 の範囲です。この回路では A_15 と A_14 がともに 0 のとき NOR の出力が 1 になり、負論理の C̅S̅ では ROM が選ばれないので、むしろアクセスできない範囲に入ります。
- イ4000 ~ 7FFF:4000〜7FFF は、上位2ビットが 01 の範囲だけです。NOR の出力はどちらかの入力が 1 なら 0 になるので、10 と 11 の範囲でも ROM が選ばれ、8000〜FFFF が抜けている分だけ狭すぎます。
- エC000 ~ FFFF:C000〜FFFF は、上位2ビットがともに 1 のときだけ選ばれる範囲で、A_15 と A_14 の NAND で選ぶ回路ならこの結果になります。NOR の出力はどちらか一方が 1 でも 0 になるので、4000〜BFFF も選ばれる範囲に含まれます。
出典:平成30年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問15
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)