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

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

MPUの仕様を示す表
図の説明テキスト
項目 内蔵ROM 外部ROM
バス幅(ビット) 32 8
アクセスサイクル(クロック) 2 4
クロック周波数(MHz) 16 16
解答・解説

正解: イ. 125

正解の根拠

まず、MPUの1クロックあたりの時間を求めます。
クロック周波数は16MHzであるため、1クロックの時間は以下のようになります。

1÷16MHz=1÷(16×106)秒=116マイクロ秒=62.5ナノ秒1 \div 16\text{MHz} = 1 \div (16 \times 10^6)\text{秒} = \frac{1}{16}\text{マイクロ秒} = 62.5\text{ナノ秒}

次に、外部ROMに置かれた命令のデータサイズを求めます。
表の通り、外部ROMのバス幅は8ビット(1バイト)で、アクセスサイクルは4クロックです。
1回のアクセスにかかる時間は以下の通りです。

4クロック×62.5ナノ秒=250ナノ秒=0.25マイクロ秒4\text{クロック} \times 62.5\text{ナノ秒} = 250\text{ナノ秒} = 0.25\text{マイクロ秒}

外部ROMでの処理時間が1マイクロ秒であるため、命令の読み出しに必要なアクセス回数は以下の通りです。

1マイクロ秒÷0.25マイクロ秒=4回1\text{マイクロ秒} \div 0.25\text{マイクロ秒} = 4\text{回}

1回のアクセスで1バイトを読み出せるため、この命令のデータサイズは以下の通りです。

1バイト×4回=4バイト1\text{バイト} \times 4\text{回} = 4\text{バイト}

最後に、同じ命令を内蔵ROMで実行した場合の処理時間を求めます。
表の通り、内蔵ROMのバス幅は32ビット(4バイト)で、アクセスサイクルは2クロックです。
命令は4バイトバウンダリで配置されているため、4バイトの命令は1回のアクセスで読み出すことができます。
したがって、内蔵ROMでの処理時間は1回分のアクセス時間となり、以下の通り計算できます。

2クロック×62.5ナノ秒=125ナノ秒2\text{クロック} \times 62.5\text{ナノ秒} = 125\text{ナノ秒}

各選択肢の解説

  • ア: 62.5です。1クロック分の時間(62.5ナノ秒)に相当する計算結果であるため誤りです。

  • イ: 125です。正しい処理時間であり、正解です。

  • ウ: 250です。外部ROMに対する1回分のアクセス時間(250ナノ秒)に相当する計算結果であるため誤りです。

  • エ: 500です。内蔵ROMでの正しい処理時間は125ナノ秒であるため誤りです。

Spineチーム