忍者ブログ
情報処理技術者試験の合格を目指す全受験者のための、1問1問「徹底解説」ブログです。単なる過去問の暗記ではなく、なぜその答えになるのかを本質的に理解できるよう解説します。書籍などでは学べない最新用語やトレンドを踏まえてご紹介します。

【開発技術】単語を並べて構造を作る!「構文解析」|情報処理問題1000本ノック

切り分けられた単語(トークン)が、プログラミング言語のルール(文法)に則っているかをチェックし、プログラムの構造を解析する重要な工程を攻略しましょう。

1. 問題:プログラムの構造解析

【 問題 】 コンパイラの処理において、字句解析によって分割されたトークンの並びが、その言語の文法規則に適合しているかを判定し、「構文木(抽象構文木)」と呼ばれるツリー構造を生成する工程を何と呼ぶでしょうか?

ア、字句解析   イ、構文解析   ウ、意味解析   エ、最適化

2. 正解:言語処理プロセスに関する正解

正解: イ、構文解析(こうぶんかいせき)

※英語では「Syntax Analysis」や「Parsing(パース)」と呼びます。

3. 解説:文法チェックと「木」の構築

字句解析が「単語の切り出し」だったのに対し、構文解析は「文章の組み立て」を担当します。

【図解:構文解析の役割】

■ 処理内容
・トークンの並びが正しいか(例:カッコが閉じているか、演算子の位置は正しいか)を確認します。
・プログラムの論理的な階層構造を「構文木」として表現します。

■ 構文木のイメージ (a + b * c)
   +
  / \
 a   *
    / \
   b   c
(掛け算を先に計算するような木構造になります)
[ 関連用語:バッカス・ナウア記法 (BNF) ]
★ 構文解析の基準となる「文法の定義」を記述するための記法です。情報処理試験では、このBNF記法に基づいて正誤を判定させる問題もセットでよく登場します。

1. 理解のコツ: 英語の授業で行う「S(主語) V(動詞) O(目的語)」の判別と同じです。「単語は合っているか?」を見るのが字句解析、「文法(並び順)は合っているか?」を見るのが構文解析です。ここでミスが見つかると「Syntax Error(構文エラー)」が発生します。
2. 試験対策の視点: 「トークンから構文木を作る」「文法規則に適合するか」というフレーズがあれば構文解析です。また、次のステップである「意味解析(型チェックなど)」との境界線を意識しておきましょう。


4. まとめ

「トークンから構文木を作る」。これが構文解析です。バラバラだった単語に構造を与え、コンピュータが計算できる「論理の形」へと整える、コンパイラの知能とも言える工程です。



PR

【開発技術】ソースコードを単語に切り分ける!「字句解析」|情報処理問題1000本ノック

人間が書いたプログラムをコンピュータが理解できるように翻訳する「コンパイラ」。その最初の工程であり、文字列を意味のある最小単位に分解する重要なステップを攻略しましょう。

1. 問題:コンパイラの処理工程

【 問題 】 コンパイラがソースコードを処理する過程において、プログラムの文字列を走査し、キーワード、識別子、定数、演算子といった意味を持つ最小の単位(トークン)に分割する工程を何と呼ぶでしょうか?

ア、字句解析   イ、構文解析   ウ、意味解析   エ、コード生成

2. 正解:言語処理プロセスに関する正解

正解: ア、字句解析(じくかいせき)

※英語では「Lexical Analysis」と呼びます。

3. 解説:翻訳の最初の「下ごしらえ」

コンパイラは、いきなり全体を理解するのではなく、段階を踏んで翻訳を進めます。

【図解:コンパイラの主な翻訳フロー】

① 字句解析 ★今回の正解
・文字列を「トークン(字句)」に切り分けます。
・例:total = a + 10; → [total] [=] [a] [+] [10] [;]

② 構文解析
・切り分けられたトークンの並びが、文法通りかチェックします。
・「構文木(抽象構文木)」と呼ばれるツリー構造を作ります。

③ 意味解析
・「変数aは宣言されているか?」「型は合っているか?」など、意味的な正しさをチェックします。

④ 最適化・コード生成
・より速く動くように効率化し、最終的な機械語(オブジェクトコード)を出力します。
[ 関連用語:トークン ]
★ プログラムにおける「単語」のようなものです。字句解析では、スペースやコメントを取り除き、このトークンの列へと変換します。

1. 理解のコツ: 英文を読むときに、まず「英単語の区切り」を見つけるのが字句解析、その単語の並びから「これはS+V+Oの文法だ」と判断するのが構文解析です。まずは単語に分けないと、文法チェックもできません。
2. 試験対策の視点: 「トークンに分割」「最小単位」というキーワードがあれば字句解析です。また、これら一連の工程(字句→構文→意味→最適化→生成)の順番を問う問題も非常に多いので、セットで流れを覚えてしまいましょう。


4. まとめ

「ソースコードをトークンに分割する」。これが字句解析です。どんなに複雑なシステムも、まずはこの地道な「単語の切り出し」からすべてが始まります。

【システム構成】止まらない仕組みの二大巨頭!「冗長化の構成方式」|情報処理問題1000本ノック

システムを多重化する際、予備の機材をどう待機させておくかによって、コストや性能、切り替え時間が大きく変わります。現場でも頻出の2つの構成をマスターしましょう。

1. 問題:冗長化構成の分類

【 問題 】 クラスター構成において、複数のコンポーネントがすべて同時に稼働し、通常時から負荷を分散して処理を行う方式を[   A   ]、稼働系(Active)のみが処理を行い、待機系(Standby)は故障時に備えて待機する方式を[   B   ]と呼びます。空欄に入る適切な組み合わせはどれでしょうか?

ア、A:アクティブ・スタンバイ B:アクティブ・アクティブ
イ、A:アクティブ・アクティブ B:アクティブ・スタンバイ
ウ、A:ホットスタンバイ    B:コールドスタンバイ
エ、A:デュプレックスシステム B:デュアルシステム

2. 正解:高可用性設計に関する正解

正解: イ、A:アクティブ・アクティブ B:アクティブ・スタンバイ

3. 解説:効率重視か、確実性重視か

それぞれの方式には、リソースの活用効率や障害発生時の挙動に明確な違いがあります。

【図解:2つの冗長化方式】

■ Active-Active(アクティブ・アクティブ) ★A
状態:すべての機器が同時に稼働。
メリット:複数台で処理を分担(負荷分散)するため、システム全体の性能が高まる。無駄なリソースがない。
注意点:1台故障すると、残った方の負荷が急増し、性能が低下する可能性がある。

■ Active-Standby(アクティブ・スタンバイ) ★B
状態:1台が本番用として働き、他方は予備として待機。
メリット:構成がシンプルで、切り替え後の性能変化が予測しやすい。
注意点:通常時は予備機が何も処理しないため、リソースのコストパフォーマンスは低い。
[ スタンバイ側の「温まり具合」による分類 ]
アクティブ・スタンバイは、待機状態によってさらに細分化されます。
ホットスタンバイ:予備機もOSを起動し、即座に切り替え可能。
ウォームスタンバイ:OSは起動しているが、アプリケーションは準備中。
コールドスタンバイ:予備機は電源オフ(または別の用途で使用)。

1. 理解のコツ: アクティブ・アクティブは「2人で協力して荷物を運ぶ」イメージ、アクティブ・スタンバイは「1人が運び、もう1人は後ろからついてくる(交代要員)」イメージです。
2. 試験対策の視点: 「負荷分散(ロードバランシング)」というキーワードがあればアクティブ・アクティブ、「切り替え(フェイルオーバー)」という言葉が強調されていればアクティブ・スタンバイを意識しましょう。また、デュアルシステム(同じ処理を2系統で行い結果を照合)との違いもよく問われます。


4. まとめ

「全員で働くか、予備を置いておくか」。これがActive-ActiveActive-Standbyの違いです。システムの要求性能やコスト、許容されるダウンタイムに応じて、最適な構成を選択することが設計の鍵となります。

【システム構成】たった一つの故障が命取り!「単一障害点(SPOF)」|情報処理問題1000本ノック

どれだけ高価なサーバーを並べても、たった一つの部品や回線が共有されているだけで、システム全体が止まってしまうリスクがあります。その「急所」を見つけ出し、対策する考え方を攻略しましょう。

1. 問題:システムの脆弱性と信頼性

【 問題 】 システム構成において、その箇所が故障するとシステム全体が停止してしまうような、冗長化(多重化)されていない単一の箇所を何と呼ぶでしょうか?

ア、ボトルネック   イ、デッドロック   ウ、SPOF(Single Point of Failure)   エ、フェイルセーフ

2. 正解:信頼性設計に関する正解

正解: ウ、SPOF(Single Point of Failure)

※日本語では「単一障害点(たんいつしょうがいてん)」と呼びます。

3. 解説:「鎖の強さは、最も弱い環で決まる」

SPOFをなくすことは、高可用性(ハイアベイラビリティ)を実現するための第一歩です。

【図解:SPOFの具体例と対策】

■ よくあるSPOFの例
ネットワーク:2台のサーバーを繋いでいるが、大元のルーターが1台しかない。
電源:サーバーは二重化したが、電源タップが1つでそこから全ての電力を取っている。
ストレージ:計算機はたくさんあるが、データ保存先が1台のNASに集中している。

■ 対策:冗長化(Redundancy)
・同じ機能を持つ機器を2つ以上用意(多重化)し、一方が故障しても他方が処理を引き継げるように設計します。
[ 関連用語:ボトルネックとの違い ]
SPOF:壊れると「停止」するもの(有無の問題)。
ボトルネック:そこが詰まると「低速」になるもの(性能の問題)。

1. 理解のコツ: どんなに頑丈な吊り橋でも、メインのワイヤーが1本しかなければ、それが切れた瞬間に終わりです。その「1本しかないワイヤー」がSPOFです。ITシステムでは、サーバー、スイッチ、ディスク、さらには電源や回線、時には「特定の作業ができる唯一の担当者」さえもSPOFになり得ます。
2. 実務・試験の視点: システムの稼働率(可用性)を計算する際、SPOFがある構成では、その箇所の稼働率がシステム全体の最大稼働率を制限してしまいます。設計図(構成図)を見て「ここが死んだら全部止まるな」という場所を探す訓練が重要です。


4. まとめ

「多重化されておらず、故障がシステム全体の停止に直結する箇所」。これがSPOF(単一障害点)です。これを見つけ出し、一つずつ消していく作業こそが、止まらないシステムを作るための基本となります。



【データベース】時間を自在に操る復旧!「PITR」の真価|情報処理問題1000本ノック

「最新まで戻す」のは当たり前。PITRの本当の凄さは、あえて「少し前の時点」を指定して復旧できる柔軟性にあります。その仕組みを深掘りしましょう。

1. 疑問:PITRは「最新」まで戻すこと?

【 解説 】 PITR(Point In Time Recovery)の「Point In Time」とは、文字通り「ある特定の時点」という意味です。もちろん「障害が発生する直前の最新状態」を目指して復旧することも多いですが、以下のようなケースで本領を発揮します。

【PITRが活躍する「最新に戻さない」ケース】

■ シナリオ:人為的なミス
・14:00に、担当者が間違って重要なデータを「全削除」してしまった!
最新(14:01)に戻すと…:データが削除された後の「空っぽの状態」になってしまいます。
PITRで13:59に戻すと…:削除される「1分前」の正常な状態をピンポイントで復元できます!

2. 仕組み:バックアップ + ログの積み上げ

復旧作業は、以下の2段階で行われます。これを理解すると、なぜ「点」で戻せるかがわかります。

① フルバックアップのリストア
まずは、過去に取ったバックアップ(例:昨日の深夜3時)を丸ごと戻します。この時点では「昨日の状態」です。

② ロールフォワード(前進復旧)
バックアップ以降に記録された「更新ログ(WALやアーカイブログ)」を、指定した時刻まで1つずつ適用していきます。
★ここで「最新(障害直前)」まで流せば最新になりますし、「ミスをする直前」で止めれば過去の時点になります。

3. 試験対策:紛らわしい用語との比較

用語復旧のゴール
ロールフォワード ログを使ってデータを前進させ、最新状態(または指定時点)にする処理そのもの。
PITR 「○時○分」と時刻を指定して、その瞬間の状態を再現する「手法」のこと。

1. 理解のコツ: PITRはデータベースの「タイムマシン」です。エンジニアが「14時00分00秒の時点に戻れ」と命令すれば、ログをそこまで再生してピタッと止めてくれるイメージです。
2. データベース管理者の視点: PITRを可能にするためには、更新ログを捨てずに保存しておく「アーカイブログモード」の設定が必須です。これができていないと、バックアップを取った時点(面)までしか戻せません。


4. まとめ

PITRは「最新まで戻る」ことも含め、「任意のタイミングを選択して復旧できる」非常に強力な機能です。障害復旧だけでなく、操作ミスという「人災」からデータを守るための必須知識と言えます。


【コンピュータシステム】外からの合図に即座に対応!「外部割込み」|情報処理問題1000本ノック

CPUがプログラムを実行中に、外部の機器や内部のタイマーから緊急の知らせが入ることがあります。これらを整理して正しく分類できるようにしましょう。

1. 問題:外部割込みの要因

【 問題 】 コンピュータの割込み処理のうち、CPUの外部にある装置やタイマーなど、プログラムの実行状態とは直接関係なく発生する「外部割込み」に該当するものはどれでしょうか?

1. ゼロによる除算(ゼロ除算)
2. 存在しない命令コード(不正命令)の実行
3. タイマーによる設定時間の通知
4. ページフォールト(主記憶にないページへのアクセス)の発生

2. 正解:割込み処理に関する正解

正解: 3. タイマーによる通知

3. 解説:「内部」か「外部」かの境界線

割込みは、その原因が「CPU内部のプログラム実行によるもの」か「CPU外部の要因によるもの」かで大きく2つに分けられます。

【図解:割込みの種類と具体例】

■ 外部割込み ★今回の正解
要因:CPUの外側から発生するイベント。
具体例
 - タイマー割込み:設定した時間が経過した。
 - 入出力割込み:キーボード入力やディスクの読み書き完了。
 - コンソール割込み:オペレーターによる操作。
 - 機械チェック割込み:電源異常やメモリのパリティエラーなど。

■ 内部割込み(ソフトウエア割込み・例外)
要因:プログラムの実行中に、その内容によって発生するもの。
具体例
 - プログラム割込み:ゼロ除算(選択肢1)、不正命令(選択肢2)、オーバーフロー。
 - SVC割込み:OSの機能(システムコール)を呼び出す時。
 - ページフォールト:仮想記憶の制御(選択肢4)。
[ 覚え方のポイント ]
内部割込み:そのプログラムを実行したから「自業自得」で起きたもの(計算ミスやOSへの依頼)。
外部割込み:プログラムの都合に関わらず「外から勝手に」やってくるもの。

1. 理解のコツ: 外部割込みは、いわば「外からの呼び鈴」です。作業の手を止めて玄関へ向かうように、CPUは現在の状態を一時保存して、割り込んできた緊急事態(入力対応や時間管理)を優先して処理します。
2. 試験対策の視点: 「ゼロ除算」と「タイマー」は、内部と外部を区別する問題で最もよく使われる典型的なキーワードです。この2つの違いを基準に覚えるのが効率的です。


4. まとめ

「プログラムの実行とは無関係に外から発生する」。これが外部割込みです。コンピュータが時間通りに動作したり、私たちの入力に即座に反応したりできるのは、この割込みの仕組みがあるおかげです。

【情報セキュリティ】数式で鍵をあぶり出す!「線形解読法」|情報処理問題1000本ノック

現代の暗号は非常に強固ですが、入力(平文)と出力(暗号文)の間にわずかでも「統計的な偏り」があると、そこから鍵を推測されるリスクがあります。高度な解読理論を攻略しましょう。

1. 問題:暗号解読手法の分類

【 問題 】 暗号解読手法のうち、平文のビットと暗号文のビットを組み合わせた排他的論理和(XOR)の値と、鍵のビットとの間に成り立つ「線形近似式」を求め、その確率的な偏りを分析することで、効率的に鍵を推測する手法はどれでしょうか?

ア、線形解読法   イ、差分解読法   ウ、ブルートフォース法   エ、辞書攻撃法

2. 正解:暗号解読に関する正解

正解: ア、線形解読法(Linear Cryptanalysis)

3. 解説:わずかな「偏り」を鍵にする

線形解読法は、平文と暗号文の対応関係を数式(線形近似式)で表し、その式が成り立つ確率が「0.5(50%)」からどれだけズレているかに注目します。

【図解:代表的な解読手法の比較】

■ 線形解読法 ★今回の正解
特徴:平文と暗号文の関係を「1次式」で近似し、統計的な偏りから鍵を予測します。
効果:すべての鍵を試す総当たりよりも、少ない計算量で解読できる場合があります。

■ 差分解読法 ★選択肢イ
特徴:2つの平文の「差分」が、暗号化した後にどのような「差分」として現れるかを分析します。これも統計的な偏りを利用します。

■ ブルートフォース法(総当たり攻撃) ★選択肢ウ
特徴:理論的な弱点を探るのではなく、すべての鍵のパターンをしらみつぶしに試します。

■ 辞書攻撃法 ★選択肢エ
特徴:よく使われる単語やパスワードのリスト(辞書)を使って効率的に試行します。
[ 現代暗号の対策 ]
Sボックスの設計:DESやAESなどのブロック暗号では、内部の変換テーブル(Sボックス)を設計する際、線形解読法や差分解読法に対して十分な耐性(偏りが出ないこと)を持つよう数学的に工夫されています。

1. 理解のコツ: 「平文と暗号文を足し引き(XOR)してみたら、完全なランダムではなく、わずかに鍵のヒントが見えてしまった」という現象を利用するのが線形解読法です。
2. 試験対策の視点: 「平文と暗号文のビットの排他的論理和」「線形近似式」「統計的」といったキーワードが出たら線形解読法です。差分解読法とセットで「既知平文攻撃(平文と暗号文のペアが手に入っている状態での攻撃)」の代表例として覚えましょう。


4. まとめ

「暗号化鍵を統計的に予測して、計算量を減らす」。これが線形解読法です。力任せではなく、数学的な「透かし」を見つけることで、暗号の城壁を内側から崩そうとする知的な攻撃手法です。

【コンピュータシステム】コンパイラが並列化を指揮する!「VLIW」|情報処理問題1000本ノック

CPUが実行時に「どの命令を同時に動かせるか」を考えるのではなく、あらかじめコンパイラが「これとこれは同時にやってOK」とセットにして送り出す職人技のような手法を攻略しましょう。

1. 問題:非常に長い命令語による高速化

【 問題 】 コンパイラが、依存関係のない複数の命令を一つにまとめ、非常に長い一つの命令語として定義します。CPUはそれを一度に読み込み、複数の演算器で並行して実行するアーキテクチャを何と呼ぶでしょうか?

ア、RISC   イ、CISC   ウ、VLIW   エ、SIMD

2. 正解:プロセッサアーキテクチャに関する正解

正解: ウ、VLIW(Very Long Instruction Word)

3. 解説:ハードウェアの負担をソフトウェアが肩代わりする

VLIWは、その名の通り「非常に長い命令語」を意味します。1つの長い命令の中に、複数の小さな命令が詰め込まれています。

【図解:VLIWの仕組みと特徴】

■ 仕組み
・コンパイラがプログラムを解析し、同時に実行できる命令をパックします。
・CPUは、届いたパックをそのまま複数の演算器に流し込むだけなので、構造が非常にシンプルになります。

■ メリット
・CPU側に「並列実行できるか」を判断する複雑な回路(スケジューラ)が不要になり、省電力化や高効率化が図れます。

■ デメリット
・コンパイラの性能に依存します。また、互換性のある新しいCPUが出た場合でも、命令の長さが変わると再コンパイルが必要になるなど、互換性の維持が難しい側面があります。
[ スーパースカラとの比較 ]
スーパースカラ:実行時に「CPU」が並列化できるか判断する(ハード依存)。
VLIW:コンパイル時に「ソフトウェア」が並列化を決定する(ソフト依存)。

1. 理解のコツ: 「お弁当箱」をイメージしてください。おかず(命令)をどう詰めるかを「コンパイラ」が事前に完璧に決めておき、食べる人(CPU)は蓋を開けて一気に全部食べるだけ、というスタイルがVLIWです。
2. 試験対策の視点: 「コンパイラが命令を最適化・並列化する」「非常に長い命令語」というキーワードがあればVLIWです。かつては高性能サーバーや特定のDSP(デジタル信号処理プロセッサ)などで多く採用されていました。


4. まとめ

「1つの大きな命令をサイクル毎にまとめて発行する」。これがVLIWです。ハードウェアをシンプルに保ちつつ、ソフトウェアの知能によって高い並列処理能力を引き出す独創的なアーキテクチャです。

【コンピュータシステム】過去に学び未来を当てる!「動的分岐予測」|情報処理問題1000本ノック

プログラムの実行パターンは常に一定ではありません。CPUが「前回の結果」を学習し、その時々の状況に応じて賢く予測を変化させる仕組みを攻略しましょう。

1. 問題:実行状態に応じた予測技術

【 問題 】 CPUの分岐予測技術のうち、プログラム実行時の分岐履歴(過去にどちらに分岐したか)を記録しておき、その統計情報に基づいて次に実行される分岐先を動的に決定する方式を何と呼ぶでしょうか?

ア、静的分岐予測   イ、動的分岐予測   ウ、固定分岐予測   エ、遅延分岐

2. 正解:プロセッサアーキテクチャに関する正解

正解: イ、動的分岐予測(Dynamic Branch Prediction)

3. 解説:履歴を活用する「学習型」の予測

分岐の傾向は、実行されているデータの種類やループの回数によって変化します。これをリアルタイムで追いかけるのが動的予測の強みです。

【図解:動的予測と静的予測の違い】

■ 動的分岐予測 ★今回の正解
仕組み:CPU内部の「分岐履歴テーブル」に過去の結果を保存します。
特徴:「前回が『分岐する』だったから、今回も『分岐する』だろう」と、実行中に予測を更新します。ループ処理などで非常に高い的中率を誇ります。

■ 静的分岐予測
仕組み:実行時の履歴は見ず、命令の種類やコードの構造からあらかじめ予測を固定します。
特徴:「ループの戻り方向は常に『分岐する』とみなす」といった単純なルールに基づきます。
[ 2ビット予測器(飽和カウンタ) ]
★ 動的予測でよく使われる手法です。「1回外れただけでは予測を変えず、2回連続で外れたら予測を切り替える」といった仕組みで、一時的なイレギュラーによる予測ミスを防いでいます。

1. 理解のコツ: 静的予測が「マニュアル通りに動く新人」なら、動的予測は「経験から傾向を読み取るベテラン」です。何度も通る道(ループ)であれば、ベテランはほぼ100%の確率で次を当てることができます。
2. 試験対策の視点: 「実行時の履歴を利用する」というフレーズがあれば「動的」です。逆に「コンパイル時」や「命令の種類で決める」といった言葉があれば「静的」を選びましょう。現代のプロセッサでは、この動的な仕組みが主流となっています。


4. まとめ

「前回の結果を予測に活かす」。これが動的分岐予測です。コンピュータが自らの過去の動きから学習し、パイプラインのストールを最小限に抑えることで、圧倒的な処理速度を実現しています。

【コンピュータシステム】外れてもいいから先にやる!「分岐予測と投機実行」|情報処理問題1000本ノック

プログラムの中には多くの「もし~なら(if文など)」という分岐が存在します。CPUがその結果を待たずに「次はおそらくこうなるだろう」と予測して突き進む、驚きの高速化技術を攻略しましょう。

1. 問題:パイプラインを止めない高度な推測技術

【 問題 】 CPUがプログラムの実行中、条件分岐命令の結果が確定する前に、過去の履歴などから分岐先を予測する技術を[   A   ]、その予測に基づいてあらかじめ後続の命令を実行しておくことを[   B   ]と呼びます。空欄に入る適切な組み合わせはどれでしょうか?

ア、A:キャッシュメモリ B:割込み処理
イ、A:分岐予測     B:投機実行
ウ、A:スーパースカラ  B:アウトオブオーダ
エ、A:レジスタ     B:フェッチ

2. 正解:プロセッサアーキテクチャに関する正解

正解: イ、A:分岐予測 B:投機実行

3. 解説:不確実な未来に賭けるスピードアップ

パイプライン処理は、分岐命令に弱いです。結果が出るまで待っていると、その間パイプラインが空っぽ(ストール)になってしまうため、CPUは「賭け」に出ます。

【図解:予測と実行のサイクル】

■ 分岐予測(Branch Prediction)
・「このループはさっきから何度も繰り返しているから、次もまた繰り返すはずだ」といった統計的なデータ(分岐履歴)から、次に行くべき道を予想します。

■ 投機実行(Speculative Execution)
・分岐予測で「こっちだろう」と決めた先の命令を、結果が出る前に実行してしまいます。
・予測が当たれば、そのまま結果を採用できるので爆速になります。
・予測が外れれば、実行した結果を捨てて、正しい道からやり直します。
[ なぜ「投機」と呼ぶのか ]
★ 資産運用の「投機(リスクを取ってリターンを狙う)」と同じ意味です。外れたときのリスク(やり直しのコスト)よりも、当たったときのリターン(高速化)の方が大きいと判断して実行するため、こう呼ばれます。

1. 理解のコツ: 「信号が青になるのを確信して、ブレーキから足を離して発進の準備をする」ようなものです。実際に青になればスムーズに加速できますが、万が一赤のままならブレーキを踏み直す必要がある、というイメージです。
2. 試験対策の視点: 「パイプラインハザードの解消法」としてセットで問われます。特に現代の高性能CPUでは、予測的中率は90%を優に超えており、この技術なしでは現在の処理能力は実現できません。


4. まとめ

「分岐を予測し、先に計算しておく」。これが分岐予測投機実行です。CPUの内部で行われている、高度な「予測と挑戦」がコンピュータの快適さを支えています。