令和7年度 秋期 応用情報技術者試験 午前 問23

16ビットのダウンカウンターを用い,カウンターの値が0になると割込みを発生するハードウェアタイマーがある。カウンターに初期値として10進数の150をセットしてタイマーをスタートすると,最初の割込みが発生するまでの時間は何マイクロ秒か。ここで,タイマーの入力クロック周波数は16 MHzを32分周したものとする。

解答・解説

正解: エ. 300

ハードウェアタイマーの割込み発生までの時間を求める問題です。以下の手順で計算します。

1. 入力クロックの周波数を求める

元のクロック周波数は 16 MHz16 \text{ MHz} です。これを 32分周 しているので、タイマーに入力されるクロック周波数は以下のようになります。
16 MHz÷32=0.5 MHz16 \text{ MHz} \div 32 = 0.5 \text{ MHz}
1 MHz=106 Hz1 \text{ MHz} = 10^6 \text{ Hz} なので、これは 500,000 Hz500,000 \text{ Hz} (500 kHz500 \text{ kHz}) に相当します。

2. 1クロックの周期を求める

周波数 ff と周期 TT の関係は T=1fT = \frac{1}{f} です。
T=10.5×106=2×10−6 秒T = \frac{1}{0.5 \times 10^6} = 2 \times 10^{-6} \text{ 秒}
10−610^{-6} 秒は 1 \mus1 \text{ \mu s} (マイクロ秒) なので、1クロックの周期は 2 \mus2 \text{ \mu s} となります。

3. 割込みが発生するまでの時間を求める

ダウンカウンターに初期値 150 をセットし、1クロック(2 \mus2 \text{ \mu s})ごとに1ずつ減算されます。カウンターの値が0になったときに割込みが発生するため、必要な時間は以下の通りです。
150×2 \mus=300 \mus150 \times 2 \text{ \mu s} = 300 \text{ \mu s}

したがって、正解は 300 マイクロ秒となります。

各選択肢の解説

  • ア 0.3: 周波数 0.5 MHz0.5 \text{ MHz} を時間と勘違いして、150150 を 500500 で割ってしまった誤答です (150÷500=0.3150 \div 500 = 0.3)。
  • イ 2: 1クロックあたりの周期 (2 \mus2 \text{ \mu s}) をそのまま選んでしまった誤答です。
  • ウ 150: カウンターの初期値をそのまま時間と勘違いした誤答です。
  • エ 300: 正解です。

Spineチーム