エンベデッドシステムスペシャリスト試験参考書
組込み分野の最高峰の国家資格、エンベデッドシステムスペシャリスト(ES)。本コースは午前(科目A)の四肢択一を対象に、ES固有の午前II専門(組込みプロセッサ・メモリ・リアルタイムOS・ハードウェアIF・組込みソフトウェア・IoT/機能安全/低消費電力)を中心に対策します(午前I共通は応用情報 AP コースが土台/午後の記述・論述式は対象外)。
エンベデッドシステムスペシャリスト試験(ES)について
エンベデッドシステムスペシャリスト試験(ES)は、IPA(情報処理技術者試験) が提供するプロフェッショナル・エキスパートレベルの認定資格です。このページでは、試験範囲を全 6 章・25 節の参考書として体系的に解説し、本番形式の練習問題で理解度を確認できます。下の章一覧から順に読み進め、「問題集で演習する」で実力を試すのが効率的な学習の流れです。
試験で問われる分野(出題範囲の目安)
- プロセッサとコンピュータ構成約 16%
- メモリとストレージ約 14%
- リアルタイムOSとタスク管理約 20%
- ハードウェアとインタフェース約 18%
- 組込みソフトウェア開発約 18%
- IoT・機能安全・低消費電力約 14%
配点は本番試験の目安です。各分野は下の章・節で詳しく解説しています。
1プロセッサとコンピュータ構成
- 1.1組込みプロセッサとMCU/DSP
MCU(マイコン)・DSP・汎用CPU・SoCそれぞれの用途と、RISC/CISCの設計思想の違い、ARM Cortex-M/R/Aシリーズの用途別ラインナップ、そして組込み機器の要件(リアルタイム性・消費電力・コスト・演算特性)から最適なプロセッサ構成を選ぶ判断力を学びます。
- 1.2命令実行とパイプライン
フェッチから書戻しまでの命令実行サイクル、複数命令を段階的に並行処理するパイプライン処理、パイプラインを乱すハザード(データ/構造/制御ハザード)と分岐予測、そして組込み機器のリアルタイム性・応答性の予測可能性を優先した性能設計を判断する力を学びます。
- 1.3割込み機構
外部/内部割込みの違い、割込み発生時に処理ルーチンの先頭アドレスを引くベクタテーブル、複数の割込みを裁く優先度と多重割込み(ネスト)、割込み発生から処理開始までの割込み遅延、そしてISR(割込みサービスルーチン)を短く保つ設計判断を学びます。
- 1.4クロック・タイマ・ウォッチドッグ
発振器とPLL(位相同期回路)によるクロック生成・分周、時間計測やイベント生成を担うタイマ/カウンタとPWM出力、そしてソフトウェアの暴走を検出し自動リセットするウォッチドッグタイマ(WDT)を使った信頼性設計の判断力を学びます。
2メモリとストレージ
- 2.1メモリ階層とアクセス
高速だが高価なSRAM、大容量だがリフレッシュが必要なDRAMというメモリ階層の特性差、アクセスレイテンシとコスト・容量のトレードオフ、そして組込み機器特有の容量・コスト・消費電力の制約の中でメモリ構成をどう選ぶかを学びます。
- 2.2キャッシュとメモリ保護
キャッシュ更新の2方式であるライトスルーとライトバック、性能を左右するヒット率、そして組込みシステム特有のリアルタイム性への影響(キャッシュミスによる応答時間のばらつき)、さらにアドレス空間や領域を保護するMMUとMPUの違いを学びます。
- 2.3不揮発メモリ
電源を切ってもデータを保持する不揮発メモリの代表格であるNORフラッシュとNANDフラッシュの用途の違い、バイト単位で書き換え可能なEEPROM、そして組込みで避けて通れない書換え回数上限と、それを分散させるウェアレベリングの仕組みを学びます。
- 2.4DMAとメモリマップドI/O
CPUを介さずメモリとデバイス間でデータ転送を行いCPU負荷を分散するDMA(ダイレクトメモリアクセス)、周辺デバイスのレジスタをメモリ空間の一部として扱うメモリマップドI/O、そして複数のマスタがバスを共有するときに生じるバス調停とリアルタイム性との競合を学びます。
3リアルタイムOSとタスク管理
- 3.1RTOSの役割とタスク状態遷移
RTOS(リアルタイムOS)が汎用OSと何を優先して設計されているか、カーネルが担うタスク管理・スケジューリング・割込み処理の役割、タスクの実行・実行可能・待ち(休止含む)の3状態遷移、そして組込み開発で「RTOSを採用すべきか、ベアメタル(RTOS無し)で十分か」を判断する観点を学びます。
- 3.2スケジューリング
優先度ベーススケジューリングとラウンドロビンの違い、固定優先度方式の代表であるレートモノトニック(RM)とそのスケジュール可能性の利用率上限(Liu&Laylandの式)、動的優先度方式のEDF(Earliest Deadline First)、そしてプリエンプションの有無が応答性に与える影響を、実際の周期タスク集合が締め切りを守れるかという判断とともに学びます。
- 3.3タスク間同期・通信
排他制御のためのセマフォとミューテックスの用途の違い(カウンティング資源管理 vs 排他所有権)、イベント発生を伝えるイベントフラグ、データの受け渡しに使うメールボックスとメッセージキューの違いを、実際のタスク間連携の設計場面でどれを選ぶべきかという判断とともに学びます。
- 3.4優先度逆転とデッドロック
優先度逆転が発生する機序(高優先度タスクが低優先度タスクの保持する資源待ちで足止めされ、さらに中優先度タスクに割り込まれて無期限に遅延する)と、その解決策である優先度継承(priority inheritance)と優先度上限(priority ceiling)の違い、そしてデッドロックの発生4条件(循環待ちを含む)と回避策を学びます。
- 3.5割込みとリアルタイム性
ISR(割込みサービスルーチン)とタスクを分離し、時間のかかる処理を遅延処理(deferred processing)へ委譲する設計、ハードリアルタイムとソフトリアルタイムの違い、割込み遅延(interrupt latency)とジッタの発生要因、そして応答時間解析によって最悪応答時間を見積もる考え方を学びます。
4ハードウェアとインタフェース
- 4.1論理回路
入力の組合せだけで出力が決まる組合せ回路と、過去の状態を記憶する順序回路の違い、カルノー図による論理式の簡単化、状態を保持するフリップフロップ、そしてクロック同期回路のセットアップ時間・ホールド時間制約を学び、組込みハードウェア設計の判断力を養います。
- 4.2センサとアクチュエータ
温度・加速度・光などを電気信号に変えるセンサ、電気信号を物理的な動きに変えるアクチュエータ(DCモータ・ステッピングモータ・サーボモータ)、そしてモータの速度・位置を制御するPWMとHブリッジ駆動を学び、要件に応じたセンサ/アクチュエータ選定の判断力を養います。
- 4.3AD/DA変換
アナログ信号をデジタル値に変換するAD変換の分解能と量子化誤差、原信号を正しく復元できる条件を示す標本化定理(ナイキストの定理)とエイリアシング、そして高周波成分を除去するローパスフィルタ(LPF)を学び、実務でのAD/DA選定判断力を養います。
- 4.4シリアル通信インタフェース
2線で複数デバイスを接続するI2C、高速全二重のSPI、調歩同期のUART、車載向け差動信号のCANという4大シリアル通信方式の電気的・プロトコル的特性を比較し、要件に応じて最適なインタフェースを選ぶ判断力を養います。
- 4.5GPIO・バス・タイマ
汎用入出力ピンGPIOの入力回路設計(プルアップ・オープンドレイン)、CPUと周辺デバイスを結ぶアドレスバス/データバス/制御バス、そして時間計測・波形生成を担う入力キャプチャ・出力コンペア・PWMタイマ機能を学び、組込みハードウェアの基礎的な入出力設計判断力を養います。
5組込みソフトウェア開発
- 5.1クロス開発環境
PCなどのホスト上でターゲット(組込みボード)向けの実行コードを生成するクロスコンパイラ・リンカ・ロケータの役割、ターゲット実機を直接デバッグするICE・JTAG・SWD・エミュレータの使い分け、そして実機デバッグの現場での判断力を学びます。
- 5.2デバイスドライバとファームウェア
ハードウェアのレジスタ操作と割込み処理を抽象化するデバイスドライバの役割、電源投入直後にシステムを立ち上げるブートローダ、そして現場で機器を更新するOTA(Over-The-Air)更新におけるフェイルセーフ・ロールバック設計を学びます。
- 5.3状態遷移設計とイベント駆動
組込み機器のふるまいを整理する状態遷移図/表、外部からの入力に応じて処理するイベント駆動方式と一定周期で状態を確認するポーリング方式の使い分け、そして未定義の遷移を残さない網羅性・例外遷移の設計を学びます。
- 5.4割込みハンドラとリソース管理
ISR(割込みサービスルーチン)を短く保ち後続処理へ委譲する設計原則、リエントラントな関数設計とクリティカルセクションによる排他制御、そして限られたスタック/ヒープを守るメモリ枯渇・メモリリークへの対処を学びます。
6IoT・機能安全・低消費電力
- 6.1IoTと無線通信
至近距離の低消費電力接続を担うBLE(Bluetooth Low Energy)、家庭内LANのWi-Fiとメッシュ型のZigbee、広域を低消費電力で結ぶLPWA(LoRa・NB-IoT・920MHz帯)、クラウドに集約する前にセンサ近傍で処理するエッジコンピューティング、そして起動時の正当性を保証するセキュアブートと現地更新のOTA(Over-The-Air)を学びます。
- 6.2低消費電力設計
CPUを止めて消費電力を落とすスリープ・ディープスリープ、不要な回路への動作クロックを止めるクロックゲーティング、処理負荷に応じて電圧・周波数を動的に下げるDVFS、普段は休止し必要な時だけ起きて通信する間欠動作、そしてこれらを踏まえた平均電流と電池寿命の見積りを学びます。
- 6.3機能安全と信頼性
電気・電子・プログラマブル電子系の機能安全の一般規格IEC61508と自動車向けのISO26262、その安全水準を示すSIL・ASIL、故障の影響を体系的に洗い出すFMEA・FTA、故障時に安全側へ倒すフェールセーフと機能を縮退させて継続するフェールソフト、多重化で単一故障をカバーする冗長化・多数決、そして目標値に追従させるPID制御を学びます。

