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

選択肢
ア:
イ:
ウ:(正解)
エ:
🔒 解説は解答すると表示されます
ROMのアドレス範囲【午前2解説】
正解の理由
ROMにはアドレス入力として 〜 の14本が接続されています。そのため、ROM内で指定できるアドレス数は 個、16進数では 個です。
上位のアドレス線 と は、ROMの選択に使われています。図のゲートはORゲートの出力が反転したNORゲートであり、出力は両方の入力が0のときだけ1になります。ROMのチップセレクト信号はアクティブローなので、信号が0になるとROMが選択されます。
したがって、 と の少なくとも一方が1のときにROMが選択されます。これは、上位2ビットが
00 となる 〜 を除いた範囲です。よって、ROMにアクセスできる範囲は 〜 であり、ウが正解です。解法ステップ
-
ROMのアドレス入力が 〜 なので、ROMの容量は 個です。
-
上位2ビット の値ごとに、アドレス空間を4分割します。
-
NORゲートの出力は、入力のどちらかが1なら0になります。
-
チップセレクトはアクティブローなので、出力が0になる
01、10、11の範囲でROMが選択されます。 -
以上から、範囲は 〜 です。
選択肢別の誤答解説
-
ア:〜
アドレス範囲が 個で、ROMのアドレス入力14本が表す 個より狭い範囲です。また、上位2ビットが00のときはROMが選択されません。 -
イ:〜
上位2ビットが01の範囲だけを選んでいます。10と11の範囲でもNORゲートの出力が0となり、ROMは選択されます。 -
ウ:〜
上位2ビットが00の範囲を除き、01、10、11の範囲を含むため正解です。 -
エ:〜
上位2ビットが11の範囲だけです。01と10の範囲もROMが選択されます。
よくある誤解
-
アクティブローの信号は、0のときに無効だと思ってしまう
アクティブローは、信号が0のときに有効です。チップセレクト信号 も、0でROMが選択されます。 -
ROMの容量だけでアドレス範囲を決めてしまう
ROMの容量から分かるのは、選択されたときにROMが扱えるアドレス数です。メモリ空間のどこに配置されるかは、上位アドレス線とチップセレクト回路で決まります。 -
NORゲートをORゲートと同じ動作だと思ってしまう
NORはORの出力を反転したものです。入力のどちらかが1なら出力は0になります。
補足コラム
このROMは 個のアドレスを持ちます。メモリアドレス空間は、上位2ビットによって同じ大きさの4ブロックに分けられています。そのうち3ブロックでROMが選択されるため、ROMはメモリ空間の複数の範囲に対応します。こうした配置は、アドレスデコード回路の接続によって決まります。
FAQ
なぜ 〜 だけでROMの容量が分かるのですか?
アドレス線が14本あると、各線が0または1を取る組合せは 通りです。したがって、ROM内の 個の場所を指定できます。
アドレス線が14本あると、各線が0または1を取る組合せは 通りです。したがって、ROM内の 個の場所を指定できます。
のとき、なぜROMは選択されないのですか?
このときNORゲートの出力は1です。チップセレクトはアクティブローなので、信号が1のときはROMが選択されません。
このときNORゲートの出力は1です。チップセレクトはアクティブローなので、信号が1のときはROMが選択されません。
関連キーワード: アクティブロー、チップセレクト、NORゲート、アドレスデコード、ROM容量

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

