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

【コンピュータ】前の計算結果が出るまで待って!パイプラインの「データハザード」|情報処理問題1000本ノック

パイプライン処理のスピードを狂わせる3大ハザードの第2弾。プログラムの「計算の順番(依存関係)」が原因で発生する、データハザードの仕組みを攻略しましょう。

1. 【 問題 】:パイプライン処理の阻害要因

【 問題 】 CPUのパイプライン処理において、ある命令を実行するために必要なデータが、直前の命令の処理が完了していないためにまだ利用できず、次の命令の実行を待たせる(ストールさせる)必要がある現象はどれでしょうか?

① 制御ハザード (Control Hazard)
② データハザード (Data Hazard)
③ 構造ハザード (Structural Hazard)
④ 動的ハザード (Dynamic Hazard)

2. 正解:

正解: ② データハザード(Data Hazard)

3. 解説:前の人が答えを書くまで、次の計算ができない

データハザードは、連続する命令の間に「データの依存関係(前のアウトプットが、次のインプットになる関係)」があるときに発生します。

【データハザードの具体例と回避ワザ】

以下のような2つの計算が連続しているとします。
・命令1: X = A + B
・命令2: Y = X × C

パイプラインでこの2つをほぼ同時に進めようとしても、命令2が掛け算を行うステージに達した瞬間、「命令1の足し算の結果(Xの値)が、まだレジスタに書き込まれていなくて手に入らない!」という事態になります。これがデータハザードです。

■ 現代CPUの対策:フォワーディング(バイパス)
・レジスタへの書き込みを待っていると遅いため、前の命令の演算器(ALU)から出たホカホカの計算結果を、レジスタを経由せずに「次の命令の演算器へ直接横流し(フォワーディング)する」専用のバイパス回路を設けることで、このハザードによる待ち時間を最小限に抑えています。
[ 3大ハザードの特徴的な一言キーワード ]
構造ハザード = ハードウェア(メモリや演算器)の奪い合い
データハザード必要なデータがまだ準備できていない(依存関係)ココ!
制御ハザード = 分岐命令(if文)によって次に実行する命令が決まらない

1. 理解のコツ: 「書類のバケツリレー」をイメージしてください。1人目が「書類に金額を計算して書き込む」、2人目が「その金額にハンコを押す」という作業を並行しています。1人目が計算をモタついていると、2人目は前の書類が回ってこないため、手元にデータ(書類)がなくて作業がストップしてしまいます。これがデータハザードです。
2. 試験対策 of 視点: 「実行に必要なデータが利用できない」「処理が完了していない」「依存関係」というフレーズがあればデータハザードが一択です。構造ハザードと並んで午前試験の超ド定番なので、文章のニュアンスだけで一瞬で切り分けられるようにしておきましょう。


4. まとめ

「データの前後関係が原因で、前の処理が終わるまで次の命令がデータを読み込めずに立ち往生する現象」。これがデータハザードです。ハードウェアの工夫(フォワーディング)だけでなく、コンパイラが「依存関係のない別の命令を間にうまく挟み込む(命令の並べ替え)」といったソフトウェア側の知恵も使って、このハザードは日々克服されています。


PR

【コンピュータ構成】命令の渋滞を巻き起こす!「パイプラインハザード」|情報処理問題1000本ノック

複数の命令を重ね合わせて高速処理する「パイプライン処理」において、処理のスムーズな流れをストップさせてしまう妨げ(障害)、ハザードの概念を攻略しましょう。

1. 【 問題 】:パイプライン処理の阻害要因

【 問題 】 CPUのパイプライン処理において、前の命令と後ろの命令との依存関係や、ハードウェアの競合などが原因となり、特定のクロックサイクルで次の命令が実行できず、処理の遅延(ストール)が発生してしまう事象を何と呼ぶでしょうか?

① フラグメンテーション
② ハザード(Hazard)
③ スワッピング
④ オーバーフロー

2. 正解:

正解: ② ハザード(Hazard)

3. 解説:パイプラインの「渋滞」と「空回り」

現代のCPUは、1つの命令が終わるのを待たずに、まるで工場のベルトコンベア(パイプライン)のように次の命令を次々と重ねて実行します。しかし、ある原因によってその流れがピタッと止まってしまうことがあります。この障害をハザードと呼びます。

【ハザードが起きるとどうなる?】

■ 処理のストール(一時停止)
・ハザードが発生すると、CPUは安全のために後ろの命令をそのステージで強制的に待機させます。この待機時間を「ストール(またはバブル/泡)」と呼び、CPUの中に「何も処理をしない空のクロックサイクル」が生まれてしまいます。

■ ハザードの3大分類(次回以降で詳述)
1. 構造ハザード:同じハードウェア部品(メモリなど)を同時に使おうとして衝突する。
2. データハザード:前の命令の計算結果がまだ出ていないのに、後ろの命令がその値を使おうとする。
3. 制御ハザード:条件分岐命令によって、次にどの命令を実行すべきかが確定するまで後ろの命令を読み込めない。
[ 選択肢のひっかけポイント ]
★ ①:メモリの空き領域が細切れになって無駄ができる現象です。
★ ③:主記憶(メモリ)と補助記憶(HDD/SSD)の間で中身を入れ替える処理です。
★ ④:計算結果が表現できる最大値を超えてしまう現象です。

1. 理解のコツ: 「全自動の洗濯から乾燥までのコインランドリー(パイプライン)」をイメージしてください。1人目が洗濯を終えて乾燥機に移ったら、2人目がすぐに洗濯機を使い始めることで効率を上げます。しかし、もし「前の人が乾燥機から服を取り出し忘れている(データの未確定)」や「乾燥機が1台しかなくて奪い合いになる(ハードの衝突)」が起きると、次の人は作業をストップして待つしかありません。この流れを止めるトラブル全般がハザードです。
2. 試験対策 of 視点: 「特定のクロックサイクルで命令が実行できない」「処理の遅延が発生する事象」と来たらハザードが正解です。CPUの性能(CPI:1命令あたりのクロックサイクル数)を悪化させる最大の原因として、非常に重視される概念です。


4. まとめ

「パイプライン処理の効率的な流れをストップさせてしまう、命令実行の阻害要因」。これがハザードです。このハザードをいかにソフトウェア(コンパイラの最適化)やハードウェア(バイパス処理など)で回避するかが、プロセッサ設計の腕の見せ所です。


【コンピュータ構成】CPUの歩幅を決める!「単一クロック」と「複数クロック」|情報処理問題1000本ノック

プロセッサが命令を実行するタイミングの制御方式。シンプルだけど無駄が出る方式と、効率的だけど複雑な方式、それぞれのトレードオフを攻略しましょう。

1. 【 問題 】:プロセッサの制御方式

【 問題 】 CPUの命令実行における「単一クロックサイクル方式」と「複数クロックサイクル方式」の比較に関する記述のうち、適切なものはどれでしょうか?

① 単一クロックサイクル方式は、最も処理に時間がかかる命令に合わせて1サイクルの長さを決めるため、単純な命令を実行する際の時間的無駄が大きくなる。
② 複数クロックサイクル方式は、すべての命令を均一に1クロックサイクルで実行するため、制御回路の設計が非常にシンプルになる。
③ 単一クロックサイクル方式は、1つの命令を複数の短いステップに分割して実行するため、クロック周波数を高く設定しやすい。
④ 複数クロックサイクル方式は、複雑な命令であっても必ず1サイクルで完了させるため、ハードウェアの利用効率が最大化される。

2. 正解:

正解: ① 単一クロックサイクル方式は、最も処理に時間がかかる命令に合わせて1サイクルの長さを決めるため、単純な命令を実行する際の時間的無駄が大きくなる。

3. 解説:1歩の長さをどうデザインするか

CPUは「クロック信号」というテンポに合わせて動きます。命令には「すぐ終わるもの(足し算など)」と「時間がかかるもの(メモリへのアクセスなど)」がありますが、これをどう処理するかの違いです。

【2つの方式の特徴とトレードオフ】

■ 単一クロックサイクル方式(シングルサイクル)
仕組み1つの命令を「1クロック」で一気に終わらせます。
デメリット:時計の「カチッ」という1拍の長さを、一番重い(時間のかかる)命令に合わせる必要があります。そのため、一瞬で終わる軽い命令のときも、次の「カチッ」が来るまでCPUが何もせず待つことになり、無駄(隙間時間)が生まれます。
メリット:制御が非常にシンプル。

■ 複数クロックサイクル方式(マルチサイクル)
仕組み:1つの命令を細かく分解し、重さに応じて「2クロック」や「5クロック」のように複数のサイクルをかけて実行します。
メリット:1拍の長さ(サイクルタイム)自体を極限まで短くできるため、軽い命令は短い時間でサクサク終わり、無駄がありません。
デメリット:今どのステップを実行しているかを管理する「制御回路」が複雑になります。
[ 選択肢のひっかけポイント ]
★ ②・④:「すべての命令を1サイクルで実行する」のは単一クロックサイクル方式の説明です。
★ ③:「命令を複数のステップに分割してクロック周波数を高くできる」のは複数クロックサイクル方式のメリットです。

1. 理解のコツ: 「足並みをそろえる遠足」をイメージしてください。歩くのが一番遅い人に合わせて全員の1歩の長さをゆっくりにするのが単一クロック方式です。元気な人はすぐ1歩を踏み出せるのに、全員が揃うまで待つので無駄が生まれます。一方、「軽い命令は1歩」「重い命令は3歩進む」というように、テンポ(クロック)を細かく刻んで個別に合わせるのが複数クロック方式です。
2. 試験対策の視点: 「最も時間のかかる命令に合わせる」「時間的な無駄ができる」というフレーズがあれば単一クロック方式の特徴です。この複数クロック方式をさらに進化させ、前の命令が終わる前に次の命令を重ねて実行していく高度な技術「パイプライン処理」への架け橋となる重要な基本知識です。


4. まとめ

「最遅の命令に合わせるため無駄が出るがシンプルな単一クロック」と、「1サイクルを短くして命令ごとに分割する効率的な複数クロック」。これがプロセッサ制御の2大アプローチです。コンピュータがいかにして無駄を削ぎ落として高速化してきたかの歴史を知る上で、必須の概念です。


【コンピュータシステム】光で世界を立体的に捉える!「LiDAR」|情報処理問題1000本ノック

電波ではなく「光」を使うことで、周囲の障害物の形や距離を目にも留まらぬ速さでスキャンする。自動運転の「目」となる注目技術、LiDARを攻略しましょう。

1. 【 問題 】:センサ技術と自動運転

【 問題 】 自動運転システムや3次元マッピングなどで広く用いられている技術で、対象物に向けてレーザー光を照射し、それが反射して戻ってくるまでの時間や波長の変化を測定することで、対象物までの距離や形状を精密に計測する仕組みはどれでしょうか?

① RADAR(レーダー)
② SONAR(ソナー)
③ LiDAR(ライダー)
④ インクリメンタルエンコーダ

2. 正解:

正解: ③ LiDAR(Light Detection And Ranging / ライダー)

3. 解説:レーザー光が作る3Dマップ

LiDARは、1秒間に数十万回以上ものレーザー光を周囲に照射し、跳ね返ってきた光のデータを集めることで、周囲の環境をリアルタイムに「点群(ポイントクラウド)データ」として3次元モデル化します。

【他のセンサ技術との違い】

■ LiDAR(光)
特徴:レーザー光(赤外線など)を使う。波長が短いため、障害物の「精密な形や位置」をクッキリ捉えるのが大得意。

■ RADAR(電波)
特徴:電波(ミリ波など)を使う。悪天候(雨や霧)に強く、遠くの物体を検知するのが得意だが、詳細な形を識別するのは苦手。

■ SONAR(音波)
特徴:超音波を使う。主に水中(潜水艦)や、車のバックセンサなど至近距離の検知に使われる。
[ 身近な活用例 ]
自動運転車:ルーフやバンパーに搭載され、歩行者や他車、道路の白線などを検知する。
スマートフォン:高級スマホのカメラ付近に搭載され、暗い場所でのピント合わせや、AR(拡張現実)の空間認識に活躍している。

1. 理解のコツ: やまびこ(山彦)の光バージョンです。「ヤッホー」と叫んで返ってくる時間で山までの距離を測るように、光を発射して戻る時間(Time of Flight: ToF)を計算して、瞬時に周囲の3Dマップを作り上げます。
2. 試験対策の視点: 「光(レーザー)を放射」「反射光から距離を測定」「自動運転」というキーワードの組み合わせが出たらLiDARが正解です。電波を使う「RADAR(レーダー)」との違いが非常によく狙われます。


4. まとめ

「レーザー光を使って、物体の距離や形状を正確に測定する技術」。これがLiDARです。自動運転レベル3以上の高度なシステムや、スマート都市(スマートシティ)における空間認識の基盤として、今後ますます出題が増えるトレンド用語です。


【コンピュータ構成】次にやるべきことを忘れない!「プログラムカウンタ」|情報処理問題1000本ノック

CPUがプログラムを順番に実行できるのは、常に「次はこの場所(アドレス)」と教えてくれるガイドがいるからです。その役割を担う「プログラムカウンタ」を攻略しましょう。

1. 【 問題 】:CPU内のレジスタ

【 問題 】 CPUの構成要素であるレジスタのうち、次に実行すべき命令が格納されている主記憶装置(メインメモリ)のアドレスを保持しているものはどれでしょうか?

① アキュムレータ
② 命令レジスタ
③ プログラムカウンタ
④ インデックスレジスタ

2. 正解:

正解: ③ プログラムカウンタ(Program Counter)

3. 解説:CPUの「しおり」の役割

プログラムは主記憶(メモリ)上に一列に並んでいます。CPUはそれを一つずつ取り出して実行しますが、その「読み取り位置」を覚えているのがプログラムカウンタです。

【CPUが命令を実行する流れ】

1. 命令の取り出し(フェッチ)
プログラムカウンタが指すアドレスの命令を、メモリから読み出します。

2. カウントアップ
・命令を取り出したら、プログラムカウンタの値は自動的に次の命令のアドレスに更新されます。

3. 命令の解読と実行
・取り出した命令を「命令レジスタ」に入れ、解読(デコード)して実行します。
[ 混同しやすい「命令レジスタ」との違い ]
プログラムカウンタ:次に実行する命令の「場所(アドレス)」を指すもの。
命令レジスタ:取り出した命令の「中身そのもの」を一時的に置くもの。

1. 理解のコツ: 読書をしている時の「指先」や「しおり」をイメージしてください。今読んでいる場所ではなく、「次に読むべき行」を指し示しているのがプログラムカウンタです。
2. 試験対策の視点: 「次に実行すべき」「命令のアドレス」「記憶・保持」という言葉が揃ったらプログラムカウンタが正解です。分岐命令(ジャンプ)が実行されたときは、このカウンタの値がジャンプ先のアドレスに書き換えられることで、実行順序が飛びます。


4. まとめ

「次に実行する命令のアドレスを保持するレジスタ」。これがプログラムカウンタです。CPUが迷子にならずにプログラムを先へ進めるための、ナビゲーターのような存在です。


【コンピュータシステム】空き時間を許さない!「アウトオブオーダ実行」|情報処理問題1000本ノック

プログラムに書かれた順番を律儀に守るのではなく、データの準備ができたものから「追い越し」を許可して実行する、現代CPUの驚異的なスピードの裏側を攻略しましょう。

1. 問題:命令実行の順序制御

【 問題 】 CPUの高速化技術において、プログラムに記述された命令の順序に縛られず、データの依存関係がない命令を見つけ出し、実行に必要なリソースやデータが整ったものから順に実行する方式を何と呼ぶでしょうか?

ア、インオーダ実行   イ、投機実行   ウ、アウトオブオーダ実行   エ、スーパースカラ

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

正解: ウ、アウトオブオーダ実行(Out-of-Order Execution)

3. 解説:渋滞を回避して「追い越し」で進む

「Out-of-Order」とは「順序を外れた」という意味です。前の命令が時間のかかる処理(メモリ待ちなど)をしていても、後ろの命令が先に終わらせてしまう仕組みです。

【図解:アウトオブオーダの仕組み】

■ 仕組み
1. 命令の取り出し:順番通りに取り出します。
2. 実行待ち(スケジューリング):命令の依存関係をチェックし、準備完了したものを演算器へ投入します(ここで順序が入れ替わります)。
3. 結果の確定(コミット):計算が終わってもすぐには反映せず、最後に元の順番通りに整列させて完了します。

■ メリット
・特定の命令で発生した待ち時間(ストール)を、後続の命令を実行することで埋めることができ、CPUの稼働率が上がります。
[ セットで覚えたい:レジスタリネーミング ]
★ 命令の順序を入れ替える際、同じ名前のレジスタ(変数のようなもの)を使い回していると衝突が起きます。これを避けるために、CPU内部で一時的に別のレジスタ名を割り当てる技術が併用されます。

1. 理解のコツ: 料理の注文(プログラム)をイメージしてください。「1番:時間のかかる煮込み料理」「2番:すぐできるサラダ」と注文が入ったとき、1番が完成するのを待たずに2番のサラダを先に作り始めるのがアウトオブオーダです。
2. 試験対策の視点: 「データの依存関係がない」「順序を変更して」「準備ができたものから実行」という表現がキーワードです。ちなみに、順番通りにしか実行しない方式を「インオーダ」と呼びます。


4. まとめ

「依存関係のない命令を、準備ができた順に実行する」。これがアウトオブオーダです。内部で複雑なパズルを解くように順序を入れ替えることで、CPUは一分一秒の無駄もなく計算を続けています。


【コンピュータシステム】コンパイラが並列化を指揮する!「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の内部で行われている、高度な「予測と挑戦」がコンピュータの快適さを支えています。

【コンピュータシステム】流れ作業で高速化!「パイプライン処理」|情報処理問題1000本ノック

CPUが1つの命令を終えてから次に取りかかるのではなく、各工程を分担して同時に動かすことで、単位時間あたりの処理量を劇的に増やす仕組みを攻略しましょう。

1. 問題:命令実行の並列化技術

【 問題 】 CPUの命令実行プロセスにおいて、「フェッチ(命令取出し)」「デコード(命令解読)」「エグゼキュート(実行)」といった各段階を独立したステージに分け、複数の命令を1ステージずつずらして並行して実行する方式を何と呼ぶでしょうか?

ア、マルチスレッド   イ、パイプライン   ウ、DMA制御   エ、キャッシュメモリ

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

正解: イ、パイプライン(Pipeline)

3. 解説:工場の「ベルトコンベア」と同じ原理

命令を一つずつ順番に終わらせる方式に比べ、パイプライン方式は各パーツ(演算器など)の空き時間をなくすことで高速化を実現します。

【図解:パイプラインの実行イメージ】

命令1:[フェッチ][デコード][実行]
命令2:    [フェッチ][デコード][実行]
命令3:        [フェッチ][デコード][実行]

■ 特徴
・一つの命令が終わる前に、次の命令の「フェッチ」を開始します。
・理想的な状態では、1サイクルごとに一つの命令が完了することになります。
[ 注意点:パイプラインハザード ]<br
        
  • 1
  • 2
  • 3