エンベデッドシステムスペシャリスト 2022年 午前2 問14
問題文
内蔵ROM又は外部ROMに置いたプログラムを実行できるMPUがある。このMPUのバス幅、アクセスサイクル、クロック周波数の仕様を表に示す。このMPUで、外部ROMに置かれたある命令を実行したところ、処理時間は1マイクロ秒だった。同じ命令を内蔵ROMに置いて処理した場合、処理時間は何ナノ秒か。ここで、この命令はバスアクセス時間内に実行が完了し、命令は4バイトバウンダリで配置されているものとする。

選択肢
ア:62.5
イ:125(正解)
ウ:250
エ:500
🔒 解説は解答すると表示されます
ROMバス幅と命令実行時間【午前2解説】
正解の理由
正解は、125ナノ秒を示すイです。
クロック周波数は内蔵ROM・外部ROMともに16MHzなので、1クロックの時間は次のとおりです。
内蔵ROMのアクセスサイクルは2クロックです。したがって、1回のアクセスにかかる時間は次のとおりです。
内蔵ROMのバス幅は32ビット、つまり4バイトです。命令は4バイト境界に配置されているため、必要な4バイトを1回のアクセスで読み出せます。また、命令の実行はバスアクセス時間内に完了します。よって、処理時間は125ナノ秒です。
解法ステップ
-
クロック周期を求めます。
16MHzの1クロックは62.5ナノ秒です。 -
外部ROMのアクセス時間を確認します。
1回のアクセスは4クロックなので、ナノ秒です。 -
外部ROMでのアクセス回数を求めます。
バス幅は8ビット、つまり1回に1バイトを読み出します。1マイクロ秒は250ナノ秒の4倍なので、命令の読み出しには4回のアクセスが必要です。 -
内蔵ROMでのアクセス回数と時間を求めます。
内蔵ROMのバス幅は32ビットで、4バイトを1回で読み出せます。アクセス時間は2クロックなので、処理時間はナノ秒です。
選択肢別の誤答解説
-
ア:62.5ナノ秒
1クロック分の時間です。内蔵ROMのアクセスには2クロックかかるため、1クロック分だけでは不足します。 -
イ:125ナノ秒
内蔵ROMの2クロック分のアクセス時間です。4バイトを1回のアクセスで読み出せるため、これが正解です。 -
ウ:250ナノ秒
外部ROMの1回分のアクセス時間です。内蔵ROMのアクセス時間と取り違えています。 -
エ:500ナノ秒
外部ROMで2回アクセスする場合の時間に相当します。今回は外部ROMで4回アクセスするための時間が1マイクロ秒です。内蔵ROMでは4バイトを1回で読み出せます。
よくある誤解
-
周波数の数値をそのまま時間として扱う誤り
16MHzは1秒間のクロック数です。1クロックの時間に直すには、周波数の逆数を求めます。 -
バス幅とアクセスサイクルを混同する誤り
バス幅は1回に転送できるデータ量、アクセスサイクルは1回の転送に必要なクロック数です。それぞれ別に考えます。 -
命令の実行時間に独立した時間が加わると考える誤り
この問題では、命令はバスアクセス時間内に実行が完了します。そのため、処理時間は必要なメモリアクセス時間で求められます。
補足コラム
バス幅が広いほど、1回のアクセスで転送できるデータ量が増えます。この問題では、外部ROMは8ビット幅なので1バイトずつ読み出しますが、内蔵ROMは32ビット幅なので4バイトをまとめて読み出せます。
また、「4バイト境界に配置」という条件は、命令のデータが内蔵ROMの32ビット幅に対応した4バイト単位の読み出しで扱えることを示しています。
FAQ
Q. なぜ外部ROMの処理時間は1マイクロ秒になるのですか?
A. 外部ROMは8ビット幅なので、1回のアクセスで1バイトを読み出します。4バイトの読み出しには4回必要で、1回のアクセスは250ナノ秒です。したがって、ナノ秒、つまり1マイクロ秒です。
A. 外部ROMは8ビット幅なので、1回のアクセスで1バイトを読み出します。4バイトの読み出しには4回必要で、1回のアクセスは250ナノ秒です。したがって、ナノ秒、つまり1マイクロ秒です。
Q. 内蔵ROMではなぜ外部ROMより速くなるのですか?
A. 内蔵ROMは32ビット幅なので、4バイトを1回のアクセスで読み出せます。さらに、1回のアクセスは2クロックで完了します。
A. 内蔵ROMは32ビット幅なので、4バイトを1回のアクセスで読み出せます。さらに、1回のアクセスは2クロックで完了します。
関連キーワード: バス幅、アクセスサイクル、クロック周波数、クロック周期、ROM、メモリアクセス

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

