令和6年度 秋期 応用情報技術者試験 午後問題 問7 ワイヤレスイヤホンの省電力クロック制御

テクノロジ組込み・IoTOS・ソフトウェア

この問題は2024(R6)秋 応用情報技術者 午後に出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。

本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。

学習ガイド

Bluetooth接続のスマートイヤホンを題材にした組込みシステムの問題です。音声アシストやノイズキャンセルといった機能の使用状況ごとに、消費電力を抑えるためのクロック周波数割当てとタスクの優先度設計を考えます。リアルタイムOSのタスク状態遷移とデッドライン制御の理解が前提になるため、この記事では表のどの数値が優先度判断の根拠になるかを設問ごとに特定しながら解説します。

この記事で押さえる論点

  • 機能の使用状況に応じたクロック周波数割当ての考え方を理解する
  • デッドライン制御でのタスク優先度を実行時間と周期から導く
  • アイドル状態とクロック停止可否の関係をタスク起動周期から説明する

問題本文

スマートイヤホンに関する次の記述を読んで、設問に答えよ。

G社は、専用のアプリケーションプログラム(以下、アプリという)をインストールしたスマートフォン(以下、スマホという)とBluetoothで接続して、音楽などの音源再生機能、電話の通話機能、ノイズキャンセル機能、音声アシスト機能をもつスマートイヤホン(以下、Sイヤホンという)を開発している。

利用者はアプリを用いて、Sイヤホンの音源再生機能と通話機能の開始/停止の指示、及びノイズキャンセル機能と音声アシスト機能のオン/オフの設定を行うことができる。Sイヤホンを用いて通話するときには、音源再生機能及び音声アシスト機能は使用できない。

Sイヤホンは左右が独立しており、左耳に装着するイヤホン(以下、左イヤホンという)はスマホとペアリングする。右耳に装着するイヤホン(以下、右イヤホンという)とスマホとの通信は、左イヤホンが中継する。

Sイヤホンは専用のケースに入れると電源がオフとなり充電が行われ、専用のケースから取り出すと電源がオンになる。

スマホ及びSイヤホンの概要を図1に、Sイヤホンの機能を表1に示す。

図1 スマホ及びSイヤホンの概要
図の説明テキスト

スマホとSイヤホン間の構成図。
左側に「スマホ」、右側に「Sイヤホン」が点線枠で囲まれて示されている。
スマホと左イヤホンの間は「Bluetooth」と書かれたZ型の矢印で接続されている。
Sイヤホン内には「左イヤホン」と「右イヤホン」があり、それぞれ上部に「マイク」が引き出し線で示されている。
左イヤホンと右イヤホンの間も「Bluetooth」と書かれたZ型の矢印で接続されている。

表1 Sイヤホンの機能
図の説明テキスト
機能名 概要
音源再生機能 ・スマホから送信された音源データを、Sイヤホンで音質補正して出力する。
音声アシスト機能 ・左イヤホンでは、利用者が発した音声から、特定のキーワードを検出すると、続くフレーズをスマホへの指示として左イヤホンからスマホに送信し、スマホで解析して実行する。
通話機能 ・利用者がスマホの操作で発信する、又は利用者のスマホに着信があると、Sイヤホンは、a及びbを停止して、通話開始を音声で知らせる。
・Sイヤホンの、音声を出力するスピーカー及び音声を入力するマイクを使用して、音声データを入出力することで、利用者は通話することができる。
ノイズキャンセル機能 ・マイクから入力されたSイヤホンの周囲の音(以下、環境音という)から、環境音を打ち消すデータを生成する。このデータをスピーカーの出力に合成して環境音を低減させる。

〔Sイヤホンのハードウェア構成〕

Sイヤホンは,左イヤホンと右イヤホンのそれぞれが,マイク及びスピーカーを接続した音声制御部,クロック部,通信部,それらを制御する制御部,及び電力部から成る。左イヤホンと右イヤホンとでハードウェア構成に違いはない。

左イヤホンのハードウェア構成を図2に,Sイヤホンの構成要素の機能概要を表2に示す。

図2 左イヤホンのハードウェア構成
図の説明テキスト

左イヤホンのハードウェア構成を示すブロック図。
ノード:

  • スピーカー
  • マイク
  • 音声制御部
  • 制御部
  • クロック部
  • 通信部
  • 電力部
    関係:
  • マイクから音声制御部へデータ(矢印)
  • 音声制御部からスピーカーへデータ(矢印)
  • 音声制御部から制御部へデータ(矢印)
  • 制御部から音声制御部へデータ(矢印)
  • 制御部からクロック部へデータ(矢印)
  • 通信部から制御部へデータ(矢印)
  • 通信部からクロック部へデータ(矢印)
    凡例:
  • 実線矢印: データ
    電力部は独立して描画されている。
表2 Sイヤホンの構成要素の機能概要
図の説明テキスト
構成要素名 構成要素の機能
制御部 ・表1に示す機能を実現するために,音声制御部,クロック部,通信部を制御する。
・左イヤホンの場合は,マイクから入力された音声データを解析して,特定のキーワードを検出する。
・機能の使用状況に応じて,クロックの供給の停止又は適切な周波数を決定して,クロック部に指示する。
・クロック部への指示は,0,0.5,1,1.5,又は2の値である。この値に,基準周波数を乗じた周波数のクロックが供給される。0のときは,クロックの供給が停止される。
・クロックの供給が停止されると,その時点の状態を保持したまま停止する。クロックが再度供給されると停止したところから再開する。
音声制御部 ・2ミリ秒周期でマイクから入力された音声をデジタルデータに変換して,制御部に送信する。
・5ミリ秒周期で制御部からデジタルデータを受信し,スピーカーで音声を出力する。その際,制御部から受信したノイズキャンセルデータを合成する。
クロック部 ・制御部の指示によって,指示された周波数のクロックの供給又は停止を行う。
・停止したクロックの供給は,特定のイベントによって再開する。このイベントを受けてから5ミリ秒後に,停止する直前の周波数でクロックの供給を再開する。
通信部 ・Bluetoothを用いてスマホと通信を行う。内部にクロックをもち,電源オン後は常に動作する。
・左イヤホンの場合は,スマホとペアリングした後,右イヤホンとスマホとの通信を中継する。
・スマホからのデータを受信すると,それを制御部に送信し,データを受信したことをクロック部に送信する。さらに,データが音源データ又は音声データの場合は,左右それぞれのイヤホン用のデータを取り出し,5ミリ秒周期で制御部に送信する。
・制御部から受信した音声データをスマホに送信する。
電力部 ・充電可能な電池を内蔵しており,各部に電力を供給する。

〔クロック部の動作〕

制御部の実行時間はクロックの周波数に反比例する。一方,消費電力はクロックの周波数が高いほど大きくなる。Sイヤホンは電池駆動であるので,できる限り消費電力は小さくしたい。そこで,表3で示すように,機能の使用状況に応じてクロックの周波数を制御部の指示で適切に割り当てることとした。

表3 機能の使用状況に応じたクロックの周波数の割当て
図の説明テキスト
使用状況 機能(音源再生) 機能(通話) 機能(ノイズキャンセル) 機能(音声アシスト) クロック部への周波数の指示
待機時 0
音源再生1 c
音源再生2 d
通話時 e

凡例 ○:機能がオンである。 空白:機能がオフである。 △:機能のオン/オフが切替え可能である。

〔制御部のタスク〕

制御部はリアルタイムOSを使用している。電源オン時にメインタスクが生成される。左イヤホンと右イヤホンとで機能が異なるので,メインタスクはそのイヤホンで必要となるタスクだけを生成する。メインタスクを含め,それぞれのタスクは重複しない固有の優先度が割り当てられる。リアルタイムOSのタスクの状態は,実行状態,実行可能状態,又は待ち状態のいずれかである。

制御部のタスク一覧を表4に示す。クロックの周波数が基準周波数に等しいとき,タスクの実行に要する時間は表4に示す実行時間となる。スピーカタスク,マイクタスク及び特定語検出タスクは起動周期内に処理が完了しなければならない。起動周期内に処理が完了しない場合,音飛びやノイズなどの不具合が発生する。

表4 制御部のタスク一覧
図の説明テキスト
タスク名 タスクの機能 起動周期 1) 実行時間 2)
メイン ・ほかのタスクから通知を受けると,通知に応じた処理を行う。
・機能の使用状況に応じて,適切なクロックの周波数を決定して,クロック部に指示する。ただし,クロックの供給の停止はアイドルタスクが行う。
(斜線) 0.05
スピーカー ・音源再生時,音源データに音質補正を行い音声制御部に送信する。 5 3.4
スピーカー ・通話時,音声データを音質補正は行わず,音声制御部に送信する。 5 0.5
マイク ・マイクから入力された音声データを処理する。
・ノイズキャンセル機能の処理を行い,生成された環境音を打ち消すデータを音声制御部に送信する。
2 1.0
特定語検出 ・マイクタスクから受けた音声データを解析して,特定のキーワードを検出する。 40 20
通信 ・通信部からデータを受信すると,メインタスクに通知する。
・ほかのタスクから通知を受けると,通信部に送信する。
(斜線) 0.05
アイドル ・メインタスクから指示があると,クロック部にクロックの供給の停止を指示する。 (斜線) (斜線)

注1) 起動周期はクロックの周波数に依存せず一定である。単位はミリ秒である。
注2) 実行時間はクロックの周波数が基準周波数に等しいときの値である。単位はミリ秒である。

タスクの優先度は,通信タスクが最も高く,以下,メインタスク,fタスク,gタスク,hタスク,アイドルタスクの順である。

アイドルタスクは最も優先度が低いので,アイドルタスクが実行状態のとき,ほかのタスクの状態はiである。

設問と解答・解説

設問1

Sイヤホンの機能について答えよ。

(1)

表1中のaに入れる適切な機能名を表1中の機能名で答えよ。

模範解答

音源再生機能

音声アシスト機能

採点基準(配点 2点)

正確性(内容)(2点)

  • 2: 表1中の機能名「音源再生機能」または「音声アシスト機能」を正確に解答している。
  • 1: 解答の意図は正解と一致しているが、表1中の表記と完全一致していない(例:「音楽再生」など)。
  • 0: 無解答、または上記に該当しない誤答。

解説

本問は、スマートイヤホンの主要な機能について、表1中の機能名から適切に抜き出して答える問題です。

正解の根拠

  • Sイヤホンはスマートフォン等とBluetoothで接続して使用されるデバイスです。
  • 主な用途として、音楽や音声コンテンツを聴取する 音源再生機能 や、利用者の音声コマンドによって操作を行う 音声アシスト機能 などが搭載されています。
  • 空欄aおよびbには、これら2つの機能名が順不同で該当します。

高得点のポイント

  • 指定された表1の中に存在する機能名から、「音源再生機能」または「音声アシスト機能」を誤字脱字なく正確に抜き出していること。

(2)

表1中のbに入れる適切な機能名を表1中の機能名で答えよ。

模範解答

音源再生機能

音声アシスト機能

採点基準(配点 2点)

正確性(内容)(2点)

  • 2: 表1中の機能名「音源再生機能」または「音声アシスト機能」を正確に解答している。
  • 1: 解答の意図は正解と一致しているが、表1中の表記と完全一致していない。
  • 0: 無解答、または上記に該当しない誤答。

解説

本問は、空欄aと同様にスマートイヤホンの主要な機能を表1中から抜き出す問題です。

正解の根拠

  • イヤホンとしての基本的な役割である音楽再生(音源再生機能)と、スマート機能としての 音声アシスト機能 が表1から読み取れます。
  • 空欄aとbは対になっており、aで答えていないもう一方の機能を解答します。

高得点のポイント

  • 指定された表1の中に存在する機能名から、「音源再生機能」または「音声アシスト機能」を誤字脱字なく正確に抜き出していること。

(3)

表2中の下線①の特定のイベントとして適切なものを解答群の中から選び,記号で答えよ。

  1. 一定時間経過
  2. スマホからのデータを受信
  3. 制御部からの指示を受信
  4. 電力部が電力を供給
  5. マイクから入力された音声データから特定のキーワードを検出

模範解答

選択肢イ: スマホからのデータを受信

配点 1

解説

本問は、省電力化のためにクロック供給を停止した状態から、タスクを再開させるための「特定のイベント」として適切なものを選ぶ問題です。

正解の根拠

  • クロックの供給が停止している間、システム内部のCPUやタスクは稼働できません。したがって、再開のきっかけとなるのは 外部からのイベント である必要があります。
  • Sイヤホンは待機時にスマートフォンとBluetooth通信を行ってイベントを待ち受けているため、スマホからのデータを受信 することが適切な復帰トリガーとなります。

各選択肢の解説

  • ア(一定時間経過): クロックが停止している状態では内部のタイマも動作しないため、一定時間を計測して復帰することはできません。
  • イ(スマホからのデータを受信): 正解です。外部モジュールがデータを受信したことを契機にクロックの供給を再開します。
  • ウ(制御部からの指示を受信): 制御部自体もクロックが停止して動作していないため、自ら指示を出すことはできません。
  • エ(電力部が電力を供給): 電力の供給は常に維持されており、特定のイベント(状態変化)には該当しません。
  • オ(マイクから入力された音声データから特定のキーワードを検出): キーワードを検出するためには特定のタスクを動作させる必要があり、クロック停止中には実行不可能です。

設問1(2)は,正答率が低かった。クロックを再開するためのイベントは,クロックの供給がなければタスクが稼働できないので,外部からのイベントになる。組込みシステムでは,外部イベントを活用する機会が多いので,外部イベントについて理解してほしい。

設問2

表3中のceに入れる適切な数値の組合せを解答群の中から選び,記号で答えよ。ただし,メインタスクと通信タスクの実行時間,OSによるタスクの切替え時間は無視できるものとし,実行時間は供給されるクロックの周波数に反比例するものとする。

  1. c: 0.5, d: 1, e: 1.5
  2. c: 1, d: 1, e: 0.5
  3. c: 1.5, d: 1.5, e: 2
  4. c: 2, d: 1, e: 0.5
  5. c: 2, d: 1.5, e: 1
  6. c: 2, d: 2, e: 2

模範解答

選択肢オ: c: 2, d: 1.5, e: 1

配点 1

解説

本問は、消費電力を低減するために設定する最適なクロック周波数を決定する問題です。

正解の根拠

  • 問題文より、「実行時間は供給されるクロックの周波数に 反比例 する」という条件が提示されています。
  • クロックの周波数が xx 倍になれば、実行時間は 1/x1/x 倍になります。
  • 基準となる状態の周波数と実行時間を考慮し、周波数と実行時間の積が一定となる組み合わせを探します。
  • この条件を満たしつつ、システム全体としてデッドラインに間に合う最適な値を選択すると、「c: 2, d: 1.5, e: 1」の組み合わせが正解となります。

各選択肢の解説

  • ア〜エ、カ: 反比例の計算規則を満たしていない、あるいは比例関係として誤って計算しているため不適切です。
  • : 実行時間が周波数に反比例するという条件を正しく反映しており、最適なクロック周波数の設定となっています。

設問2は,正答率が低かった。組込みシステムでは,消費電力を低減させるためにクロック周波数を設定することがある。与えられた条件を考慮して,最適なクロック周波数を決定する方法を理解してほしい。

設問3

制御部のタスクについて答えよ。

(1)

本文中のfに入れるタスク名を,表4中のタスク名で答えよ。

模範解答

マイク

採点基準(配点 2点)

正確性(内容)(2点)

  • 2: 「マイク」と正確に解答している。
  • 1: マイク機能に関連する解答だが、表4中のタスク名と完全一致していない。
  • 0: 無解答、または上記に該当しない誤答。

解説

本問は、制御部で動作するタスクの名称を表4の中から抜き出して答える問題です。

正解の根拠

  • 空欄fの前後の文脈から、外部からの音声情報を受け取る役割を持つタスクであることがわかります。
  • 音声入力を処理するハードウェア部品に対応するタスクであるため、マイク タスクが該当します。

高得点のポイント

  • 指定された表4のタスク名から、一言一句違わずに「マイク」と抜き出していること。

(2)

本文中のgに入れるタスク名を,表4中のタスク名で答えよ。

模範解答

スピーカー

採点基準(配点 2点)

正確性(内容)(2点)

  • 2: 「スピーカー」と正確に解答している。
  • 1: スピーカー機能に関連する解答だが、表4中のタスク名と完全一致していない。
  • 0: 無解答、または上記に該当しない誤答。

解説

本問は、空欄gに入る制御部のタスク名を表4中から抜き出す問題です。

正解の根拠

  • 空欄gは、音声の出力先や音源を再生する処理を担当する役割を担っています。
  • 利用者の耳へ音を届けるハードウェア部品に対応するタスクであるため、スピーカー タスクが該当します。

高得点のポイント

  • 指定された表4のタスク名から、「スピーカー」と正確に抜き出していること。

(3)

本文中のhに入れるタスク名を,表4中のタスク名で答えよ。

模範解答

特定語検出

採点基準(配点 2点)

正確性(内容)(2点)

  • 2: 「特定語検出」と正確に解答している。
  • 1: 意図は合っているが、表4中のタスク名と完全一致していない。
  • 0: 無解答、または上記に該当しない誤答。

解説

本問は、空欄hに入る制御部のタスク名を表4中から抜き出す問題です。

正解の根拠

  • 空欄hは、音声アシスト機能を起動するためのキーワード(ウェイクワード)を認識・判定する役割を担っています。
  • マイクから取得した音声データの中から特定のワードを見つけ出す機能であるため、特定語検出 タスクが該当します。

高得点のポイント

  • 指定された表4のタスク名から、「特定語検出」と正確に抜き出していること。

(4)

右イヤホンのメインタスクでは生成せず,左イヤホンのメインタスクだけが生成するタスクを,表4中のタスク名で答えよ。

模範解答

特定語検出

採点基準(配点 2点)

正確性(内容)(2点)

  • 2: 「特定語検出」と正確に解答している。
  • 1: 意図は合っているが、表4中のタスク名と完全一致していない。
  • 0: 無解答、または上記に該当しない誤答。

解説

本問は、右イヤホンと左イヤホンの役割分担に着目し、左イヤホンのみが生成するタスクを表4中から抜き出す問題です。

正解の根拠

  • 左右のイヤホンは協調して動作しますが、処理の重複や電力消費を抑えるため、一部のタスクは片側のみで実行されます。
  • 本文の仕様より、音声アシストのトリガーとなる特定のキーワードを待ち受ける機能は片側のイヤホン(左イヤホン)に集約されています。
  • したがって、左イヤホンのメインタスクだけが生成するのは 特定語検出 タスクとなります。

高得点のポイント

  • 左右の役割の違いを正確に把握し、表4から「特定語検出」を抜き出していること。

設問4

アイドルタスクについて答えよ。

(1)

本文中のiに入れるリアルタイムOSのタスクの状態を答えよ。

模範解答

待ち状態

採点基準(配点 3点)

正確性(内容)(3点)

  • 3: 「待ち状態」と正確に解答している。
  • 1: 「イベント待機」など、待ち状態であることを意味する解答だが用語として不正確。
  • 0: 無解答、または上記に該当しない誤答。

解説

本問は、リアルタイムOSにおけるタスクの状態遷移に関する知識を問う問題です。

正解の根拠

  • リアルタイムOSにおけるタスクは主に「実行状態」「実行可能状態」「待ち状態」のいずれかの状態を取ります。
  • アイドルタスク以外のタスクがすべてイベントの発生や資源の空きを待っている状態になると、システムはアイドル状態へ移行します。
  • したがって、空欄iに入る適切なタスクの状態は「待ち状態」となります。

高得点のポイント

  • リアルタイムOSの基本的な用語である「待ち状態」を正確に記述できていること。

(2)

クロックの供給を停止できるのは,表3における使用状況が待機時のときだけである。待機時以外でクロックの供給を停止できない理由を,タスクの起動周期の観点で40字以内で答えよ。

模範解答

クロックの再開に掛かる5ミリ秒以下の周期で動くタスクがあるから

採点基準(配点 3点)

知識・理解度(内容)(2点)

  • 2: クロックの再開に掛かる時間(5ミリ秒)と、それ以下の短い周期で起動するタスクが存在することを正確に説明できている。
  • 1: 「起動周期が短いタスクがある」「クロック再開に時間がかかる」のいずれか片方の要素にしか言及できていない。
  • 0: 必要な要素が含まれていない、または無解答。

論理性(構造)(1点)

  • 1: 「〜から」「〜ため」など、理由を説明する自然で論理的な文章として構成されている。
  • 0: 文脈が破綻している、あるいは理由の説明として不適切な構文になっている。

解説

本問は、待機時以外でクロック供給を停止できない理由について、タスクの「起動周期」に着目して論述する問題です。

停止できない理由

  • クロックの供給を一度停止させると、再開するまでに 5ミリ秒 の遅延時間が発生します。
  • 待機時以外(例えば音源再生時や通話時など)では、実行されるタスクの中に起動周期が 5ミリ秒以下 となる非常に短い周期のタスクが存在します。
  • そのような状況でクロックを停止してしまうと、タスクの次の起動要求が発生した際にクロックの再開が間に合わず、処理の遅れ(デッドライン違反)を引き起こしてしまいます。

高得点のポイント

  • タスクの起動周期 について明示的に言及していること。
  • クロックの再開に要する時間(5ミリ秒)と、タスクの起動周期の短さの比較関係を指摘できていること。
  • 「〜だから」「〜ため」といった、理由を適切に説明する文脈になっていること。