令和4年度 エンベデッドシステムスペシャリスト試験(以下、ES試験)の午後Ⅰ試験問2は何度解いても得点が稼げない。
この問題はシステムの内部構造もそうだが、限られた制約の中で生成するデータの作られたかを抑えられるかにかかっていると思う。
個人的にはこれを45分程度の短時間の間に理解するというのはかなり厳しいのではないかと感じた。
自分の理解を深めることを目的に、時間をかけて問題文をじっくり読んで解説してみたいと思う。
今回は、この問題の設問1にフォーカスを当てて自分勝手な解説をしてみたいと思う。
そして、同じ悩みを持つあなたに届くようにまとめてみたいと思う。
令和4年度 ES試験 午後Ⅰ試験 問2は競泳計時システムが題材となっている
競泳計時システムとは慣れない言葉じゃのぉ~
世界水泳などで用いられているシステムと考えるとイメージが湧きやすいです!
この問題は、多分東京オリンピックや世界水泳などで用いられた競泳選手の競技全般を管理するシステムが題材になったのだと思う。
まずは問題文を見てみよう。
ページ数は7ページで段落タイトルは4つ。
設問数は3問で、小問数は20問。
問題文は平均的だが解答ボリュームが少し多く感じる問題である。
設問1 (1) の計算問題で時間消費しないように注意しよう
設問1でいきなりややこしい計算問題が登場するよ、、、
私はここで時間を大量消費してしまったよ、、、
まずは、設問1を見てみよう。
設問1はタイマー部に関する問である。
タイマー部に関する記述を追ってみよう。
すると、競泳計時システムの概要説明の図2(審判計時機の構成)部分に登場する。
次に、審判計時機のタイマー部に関する仕様は〔審判計時機のタイマー部〕段落で説明されている。
設問1に関係する重要箇所は以下の赤枠部分である。
審判計時機は基準タイマーとサブタイマーの2つで構成されており、図2と一致する。
設問1の(1)では、サブタイマーの設定値と基準タイマーで計測できる競技時間が求められているため、順を追ってみてみたいと思う。
まずは、サブタイマーの設定値である。
これを解くためにはもう一か所、以下の情報が必要となる。
審判計時機の更新・表示タイミングは、1/100秒=10ミリ秒である。
サブタイマーは1/32ミリ秒でカウントアップすることから、10ミリ秒 ÷ (1/32)ミリ秒 = 320となる。
次に、基準タイマーで計測できる最大時間である。
これは、以下の情報がヒントとなる。
基準タイマーは20ビットのカウントアップタイマーで、この値が16進数でFFFFFまでカウントアップされる。
一方で競技開始時の故障判定とフライング判定を行うために、先頭1ビット(上記赤枠内の16進数80000)で制御していることが分かる。
よって、純粋に計測時間で使用できるのは16進数で7FFFFまでということになる。
この値を10進数に変換すると、524,287となる。
基準タイマーは1/100秒ごとに更新されるため、524,287秒 × (1/100)秒 = 5,242.87秒となる。
これを分に換算すると、5,242.87秒 ÷ 60秒 = 87.381分となる。
最後に、設問に「小数点以下を切り捨て」と記載があるため、87分が解答となる。
設問1 (2) はデータ構造の理解がカギを握る!
続いて、設問1の(2)を見てみよう。
フライングの検出方法である。
これは、タイマー部の計測レジスタの情報がカギとなる。
計測レジスタは、スタート台及びタッチ版から出力信号が入力されるたびに、出力元を表すデータが記録される。
この出力元を表すデータを活用してフライング判定するにはどうしたらよいかという問題だ。
では、フライングはどのような場合に該当するのかを確認しよう。
すると、〔審判計時機のタイマー部〕のタイトル段落のすぐ上にフライング判定の仕様が記載されている。
設問で問われているのは「リレー競技の引継ぎ」時のフライング判定となるため、上記の「前の選手がタッチ版に触れるよりも先に、選手がスタート台を離れる」状態を計測レジスタに記録されたデータで判断するというものである。
さらに4×100mリレーの引継ぎということは、50mを往復したら次の選手に引き継ぐということだ。
表2を確認すると、タッチ板やスタート台に1と2があることに気付く。
これが何を意味するのかを確認すると、冒頭のシステム概要の説明部分に記載がある。
スタート台、タッチ板1はスタート側と記載がある。
50mの往復が終わった選手が次の選手に引き継ぐ場合、タッチ板1にタッチした後にスタート台1から離れなければならない。
裏を返すと、タッチ板1にタッチしない状態でスタート台1から離れるとフライングになるということだ。
この状態を計測レジスタで判断するために、改めて表2を確認してみよう。
解答例としては、「出力元ID000の記録の前に、出力元ID100の記録を検出する。」となる。
ちなみに、私は「計測レジスタの出力元ID000が記録される前に出力元ID100が記録された場合」と回答した。
まとめ
今回は、令和4年度 ES試験 午後Ⅰ試験 問2の設問1までを自分勝手に解説してみた。
この問題は、高精度な計測が必要となる組込みシステムであり、制限のある仕様の中で正確な競技時間を測定するための仕組みである。
そのため、ビットカウンターや記憶領域の少ないレジスタを駆使して高精度な計測を行うシステムを題材として難易度を高めているのだと思う。
最後に設問1のIPA解答例をまとめて締めくくりたいと思う。
(1) (a)320 (b)87
(2) 出力元ID000の記録の前に、出力元ID100の記録を検出する。
コメント