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

【システム構成】1クロックで限界を超えて処理する!「多重命令発行プロセッサ」|情報処理問題1000本ノック

プロセッサの性能を高める究極の手法。「1サイクルに1命令」という基本の枠組みを壊し、同時に複数の命令を撃ち出す驚異のメカニズムを攻略しましょう。

1. 【 問題 】:プロセッサの並列処理アーキテクチャ

【 問題 】 コンピュータのCPU(プロセッサ)の高速化技術において、CPU内部に複数の演算器(実行ユニット)を搭載し、1サイクル(1クロック信号)あたりに複数の命令を同時に読み込んで実行へと移す(発行する)ことができるプロセッサの総称(仕組み)として、最も適切なものはどれでしょうか?

① パイプラインプロセッサ (Pipeline Processor)
② 多重命令発行プロセッサ (Multiple Instruction Issue Processor)
③ コプロセッサ (Co-processor)
④ CISCプロセッサ (Complex Instruction Set Computer)

2. 正解:

正解: ② 多重命令発行プロセッサ(複数命令発行プロセッサ)

3. 解説:演算器を並べて同時にアタックする

初期のCPUは「1サイクルあたり1つの命令を処理する」のが限界でした。しかし、演算を行うパーツ(演算器)をCPUの中に2つ、3つと並べて配置し、それらに同時に命令を割り振ることで、1サイクルあたり複数の命令を並列実行させる仕組みが作られました。これが多重命令発行プロセッサです。

【多重命令発行の具体的な2大アプローチ】

試験では、この多重命令発行プロセッサの「具体的な中身(アプローチ)」として以下の2つが超頻出です。

スーパースカラ(Super Scalar)
→ 命令の依存関係(順番通りに実行してバグらないか)を、CPUのハードウェアがリアルタイムに判断して、同時に実行できる命令を複数発行する方式。
VLIW(Very Long Instruction Word)
→ 同時に実行できる複数の命令を、コンパイラ(ソフトウェア側)が事前に長い1つの命令にまとめておき、CPUはそれをそのまま並列実行する方式。
[ 選択肢のひっかけポイント(プロセッサの分類) ]
★ ① パイプラインプロセッサ:命令を「翻訳」「実行」などのステージに細分化し、前の命令の終わりを待たずに次の命令をずらして開始する(ベルトコンベア式)プロセッサです。1サイクルあたりに「発行(開始)」する命令自体は1つです。
★ ③ コプロセッサ:メインのCPUを補助するために、浮動小数点演算や画像処理などを専門に担当する「補助プロセッサ」のことです。
★ ④ CISCプロセッサ:複雑で高機能な命令セットをハードウェアで直接実行するタイプのCPUアーキテクチャ(Intelのx86など)のことです。

1. 理解のコツ: 「ラーメン屋さんの厨房」に例えてみましょう。
・1人の職人が、麺茹で、盛り付けをずらしながら同時進行するのがパイプラインです。
・それに対して、厨房に職人を2〜3人並べて、チャイムが1回鳴る(1サイクル)ごとに「はい、ラーメン2丁同時に一気に作り始めて!(多重命令発行)」と指示を出すのがこの仕組みです。圧倒的なスピードアップが図れます。
2. 試験対策の視点: 「1サイクルあたり複数の命令を実行」「複数(多重)の命令を発行」という文脈があれば多重命令発行プロセッサが正解です。午前試験では、この言葉そのものの定義を問う問題のほか、前述の「スーパースカラ」や「VLIW」という具体的な名称とセットで正解の選択肢に絡んでくる、システム構成(アーキテクチャ)の超重要基本です。


4. まとめ

「CPUの内部に複数の実行ユニットを持たせ、1クロックの間に同時に複数の命令を撃ち出すことで、クロック周波数以上の処理速度を叩き出す設計思想」。これが多重命令発行プロセッサです。現代のIntelやAMD、Appleのプロセッサなどはすべてこの多重命令発行(スーパースカラなど)を極限まで進化させた構造になっており、私たちのPCの超高速なマルチタスクを支えています。


PR

【システム構成】待ち時間をゼロにする同期マジック!「SDRAM」|情報処理問題1000本ノック

CPUがどれだけ高速になっても、メモリ(DRAM)からのデータ到着を待っていては失速してしまいます。クロックに同期して連続転送を行うSDRAMの仕組みを攻略しましょう。

1. 【 問題 】:メインメモリの高速化と同期技術

【 問題 】 コンピュータの主記憶(メインメモリ)に用いられる半導体メモリのうち、システムクロック(CPUの動作基準となる同期信号)に完全に同期して動作させることで、従来のDRAMに存在した制御用タイミングの待ち時間(オーバーヘッド)を無くし、バースト転送などの連続データ転送を高速に行えるようにしたメモリはどれでしょうか?

① SRAM (Static RAM)
② SDRAM (Synchronous DRAM)
③ フラッシュメモリ (Flash Memory)
④ VRAM (Video RAM)

2. 正解:

正解: ② SDRAM(Synchronous DRAM / 同期DRAM)

3. 解説:CPUとメモリの「呼吸」を合わせる

従来のDRAM(非同期DRAM)は、CPUとは異なる独自のタイミングでデータをやり取りしていたため、データの準備ができるまでCPUが手を止めて待つ時間(オーバーヘッド)が発生していました。これを劇的に改善したのがSDRAM(同期DRAM)です。

【SDRAMがオーバーヘッドなしで連続転送できる理由】

・名前にある「Synchronous(シンクロナス)」とは「同期する」という意味です。
・マザーボード上を流れる規則正しいリズム(システムクロック)に、メモリ側が完全に「呼吸」を合わせます。
・これにより、CPUから「データをくれ」と言われた次の瞬間から、クロックの刻みに合わせて「1、2、3、4」と、途切れることなく連続してデータを出力(バースト転送)できるようになり、無駄な待ち時間が完全に消滅しました。 ← ココが問題の正解!
[ 選択肢のひっかけポイント(すべて異なる役割のRAM) ]
★ ① SRAM:フリップフロップ回路を使い、SDRAMよりもさらに超高速ですが、構造が複雑で高価なため、主記憶ではなく「キャッシュメモリ」に使われます。
★ ③ フラッシュメモリ:電源を切ってもデータが消えない(不揮発性)メモリで、SSDやUSBメモリに使われます。
★ ④ VRAM:ディスプレイに画面を表示するための画像データを一時的に保存する、グラフィックス専用のメモリです。

1. 理解のコツ: 「大縄跳び」をイメージしてください。これまでのDRAMは、縄が回るタイミングを見計らって「せーの」でバラバラに飛び込んでいたため、入るまでに躊躇する時間(オーバーヘッド)がありました。一方、SDRAMは縄の回転(クロック)と完全にシンクロして、全員がメトロノームのように等間隔でリズムよく「タン、タン、タン、タン」と連続して飛び込んでいく(連続転送する)仕組みです。だから無駄がありません。
2. 試験対策の視点: 「DRAM」「オーバーヘッドなし」「システムクロックに同期」「連続転送」というキーワードが揃えば「SDRAM(同期DRAM)」が一択です。基本情報や応用情報の午前試験では、メモリの分類(RAM/ROM、揮発/不揮発、動的/静的)の集大成として非常によく狙われる重要知識です。


4. まとめ

「CPUの動作クロックと完全に同期させることで、無駄な待ち時間を排除してデータを一気に送り出す主記憶用メモリ」。これがSDRAMです。現在PCパーツショップで売られている「DDR4」や「DDR5」といったメインメモリも、すべてこのSDRAMの正統な進化系であり、現代のPCの高速動作に絶対欠かせないパーツとなっています。


【システム構成】同時アクセスでスピードの限界を突破!「キャッシュのバンク分割」|情報処理問題1000本ノック

CPUがどれだけ高速になっても、キャッシュメモリへのアクセスが1列の渋滞を起こしては意味がありません。キャッシュを小分けにして並列処理する「バンク」の仕組みを攻略しましょう。

1. 【 問題 】:キャッシュメモリの高速化技術

【 問題 】 キャッシュメモリへのアクセスを高速化する手法において、キャッシュメモリ内部を同時に(並列に)アクセス可能な複数の独立した単位に分割し、それぞれが異なるアドレスへの読み書きを同時に処理できるようにしたとき、この分割されたメモリの単位を何と呼ぶでしょうか?

① セクター (Sector)
② ライン (Line)
③ バンク (Bank)
④ ページ (Page)

2. 正解:

正解: ③ バンク(Bank)

3. 解説:窓口を増やして「待ち時間」をゼロにする

CPUがマルチコア化し、同時にたくさんのデータをキャッシュから読み書きしようとすると、キャッシュのアクセスポート(出入り口)が1つしかない場合、順番待ち(衝突)が発生してしまいます。これを解決するのが「マルチバンク(バンク分割)」です。

【バンク分割(マルチバンクキャッシュ)の仕組み】

・キャッシュ全体の容量を、例えば「バンク0」「バンク1」「バンク2」「バンク3」のように、4つの独立したエリア(バンク)に小分けに分割します。 ← ココが問題の正解!
・それぞれのバンクは独自の制御回路を持っているため、「コアAがバンク0からデータを読み出しながら、同時にコアBがバンク2にデータを書き込む」という並列アクセスが可能になります。

※このように、連続するアドレスを異なるバンクに割り当て、順番にズラしながら超高速で並列アクセスする主記憶側の技術を「メモリインターリーブ」と呼び、概念として非常に深く繋がっています。
[ 選択肢のひっかけポイント(すべてメモリの異なる『単位』) ]
★ ① セクター:ハードディスク(HDD)などの磁気ディスクにおいて、データを読み書きする際の最小の物理的な単位です。
★ ② ライン(ブロック):キャッシュメモリと主記憶との間で、データをまとめて転送する際の基本単位のことです。
★ ④ ページ:仮想記憶(バーチャルメモリ)において、主記憶と磁気ディスクの間でデータを入れ替える(ページング)際の固定長の単位のことです。

1. 理解のコツ: 「銀行(Bank)の窓口」をイメージしてください。大きくて高性能な金庫(キャッシュ)が1つあっても、窓口(アクセスポート)が1つしかなければ、客(CPUの各コア)は大行列を作ってしまいます。そこで、金庫の区画を物理的に4つの窓口(バンク)に分割し、4人が同時に手続き(アクセス)できるようにしたのです。この分割された個々の窓口の単位がバンクです。
2. 試験対策の視点: 「同時にアクセス可能」「複数の単位に分割」「その単位」というフレーズが来たら「バンク(マルチバンク)」です。基本情報や応用情報の午前試験では、コンピュータのアーキテクチャ(プロセッサの高速化技法)として、前述の「セットアソシアティブ」などと組み合わせて出題されることが多い、上級者向けの重要用語です。


4. まとめ

「キャッシュメモリを物理的に複数に小分けにし、データの衝突を防いで並列アクセスを可能にする独立ユニット」。これがバンクです。現在の超高性能なCPUでは、このマルチバンク構造をキャッシュ(L1やL2)に採用することで、マルチコアCPUが吐き出す膨大なデータ要求をスピードを落とさずにさばき切る工夫が施されています。


【システム構成】速度と効率を両立する超重要メカニズム!「セットアソシアティブ」|情報処理問題1000本ノック

CPUと主記憶の速度差を埋めるキャッシュメモリ。主記憶のデータをキャッシュ上のどこに配置(マッピング)するか、その割り当てアルゴリズムを攻略しましょう。

1. 【 問題 】:キャッシュメモリの割付方式

【 問題 】 キャッシュメモリにおいて、主記憶(メインメモリ)のデータをキャッシュに割り当てる(マッピングする)方式のうち、キャッシュメモリを複数の「セット」と呼ばれるブロックのグループ単位に分割し、主記憶の各ブロックが割り当てられるセット(グループ)があらかじめ固定されている方式はどれでしょうか?

① ダイレクトマッピング方式(直接写像方式)
② フルアソシアティブ方式(全連想方式)
③ セットアソシアティブ方式(組連想方式)
④ ライトバック方式(Write-Back)

2. 正解:

正解: ③ セットアソシアティブ方式(組連想方式)

3. 解説:自由度と検索スピードのバランスを追求した決定版

主記憶のデータをキャッシュメモリへ割り当てる方式は、主に3つあります。今回の正解である「セットアソシアティブ」は、①と②の欠点を補い合うために生まれた現在最も主流の方式です。

【キャッシュマッピング3大方式の比較】

■ ① ダイレクトマッピング方式
特徴:主記憶のデータが置かれるキャッシュ上の場所が「1カ所」にガチガチに固定されます。構造が単純で高速ですが、同じ場所に別のデータが来るとすぐに追い出されるため、ヒット率が下がります(競合が多い)。

■ ② フルアソシアティブ方式
特徴:キャッシュ上の「どこにでも」自由にデータを置けます。空いている場所を有効活用できるためヒット率は上がりますが、いざデータを「探す」ときに全箇所を総当たりで検索する必要があり、回路が複雑化し遅くなります。

■ ③ セットアソシアティブ方式
特徴:キャッシュをいくつかの「グループ(セット)」に分割します。「主記憶のこのデータは、キャッシュの『Aグループ(セット)』のどこかに置く」というルールにします。グループ内であれば何番目の部屋を使っても自由です。← ココが問題の正解!
[ 選択肢のひっかけポイント ]
★ ④ ライトバック方式:マッピング方式ではなく、CPUがデータを書き込む際の方式です。キャッシュにだけ高速に書き込み、主記憶への書き込みはキャッシュからデータが追い出されるまで後回しにする仕組みです。

1. 理解のコツ: 「ホテルの部屋割り」に例えてみましょう。
・あなたの部屋は101号室だけ!と決めるのがダイレクト
・ホテル中のどの部屋でも好きなところを使っていいよ!がフルアソシアティブ
・あなたは「1階のグループ(セット)」の部屋なら、空いているどこを使ってもいいよ!とするのがセットアソシアティブです。これなら、101号室が埋まっていても102号室を使える(自由度がある)し、探すときも1階の部屋だけを見ればいい(検索が早い)ので、非常にバランスが良いのです。
2. 試験対策の視点: 「キャッシュのブロックのグループ単位」「セット単位で割り当てられる」というキーワードがあれば「セットアソシアティブ方式」が一択です。基本情報・応用情報試験の午前では、この定義を問う問題のほか、メモリのアドレス構成(タグ、セットインデックス、ブロックオフセット)に関する計算問題としても非常によく狙われる重要テーマです。


4. まとめ

「ダイレクトマッピングの検索の速さと、フルアソシアティブの無駄のなさを組み合わせ、グループ(セット)単位で割り当てを行う賢いマッピング方式」。これがセットアソシアティブ方式です。現代のPCやスマートフォンのCPUキャッシュの多くはこの方式が採用されており、プロセッサの超高速化をハードウェアの裏側から支えています。


【システム構成】メモリ不足でCPUがサボる?恐怖の「スラッシング」|情報処理問題1000本ノック

仮想記憶は便利な仕組みですが、物理メモリが限界を迎えると、システム全体の動きがカクつく致命的な状態に陥ります。そのメカニズムを攻略しましょう。

1. 【 問題 】:仮想記憶システムの管理現象

【 問題 】 仮想記憶システムにおいて、主記憶(実記憶)の容量が不十分なために、ページインおよびページアウト(データの入れ替え処理)が頻発し、プロセッサ(CPU)の処理時間の大部分がこの入れ替え処理に費やされ、結果としてアプリケーションの処理効率やCPU使用率が著しく減少する現象はどれでしょうか?

(ア)デフラグ
(イ)スラッシング
(ウ)セグメンテーション
(エ)オーバーフロー

2. 正解:

正解: (イ)スラッシング(Thrashing)

3. 解説:片付けに追われて仕事が進まないCPU

仮想記憶は、実記憶(本物のメモリ)に入り切らないデータを、ハードディスクやSSDなどの「補助記憶(スワップ領域)」に一時的に退避させることで、実際のメモリ以上の大きなプログラムを動かす技術です。

【スラッシングが起きる悪循環のメカニズム】

1. 物理メモリの容量が全然足りない状態で、たくさんのアプリを動かそうとします。
2. CPUが「次のデータを読もう」としたら、メモリにないので補助記憶から読み込む(ページイン)必要があります。
3. しかしメモリが満杯なので、今あるデータをどれか補助記憶へ追い出す(ページアウト)しかありません。
4. この「データの出し入れ」は、CPUの計算スピードに比べて圧倒的に遅い(ディスクアクセスの壁)です。
5. 結果として、CPUは「アプリの計算」をする暇がなくなり、データの出し入れの待ち時間ばかりが増えてサボる形になり、CPU使用率がガクンと下がります。これがスラッシングです。
[ 他の選択肢の重要キーワード解説 ]
★ (ア)デフラグ:ハードディスクなどの断片化(バラバラに記録された状態)を綺麗に並べ直して、読み込みを速くする最適化操作です。
★ (ウ)セグメンテーション:仮想記憶において、データを「プログラムの意味のあるまとまり(可変長)」ごとに区切って管理する方式です(固定長で区切る方式はページング方式)。
★ (エ)オーバーフロー:計算結果が、あらかじめ用意された変数の型や桁数の上限を超えてしまい、正しく表現できなくなる現象(桁あふれ)です。

1. 理解のコツ: 「狭すぎる勉強机」をイメージしてください。机(実記憶)が狭すぎて教科書が1冊しか置けません。数学の問題を1問解くたびに、数学の教科書をカバン(補助記憶)に片付けて、次は英語の教科書をカバンから引っ張り出して……という作業を毎回やっていたら、「勉強している時間」よりも「教科書を出し入れしている時間」のほうが遥かに長くなってしまいますよね。この、出し入れでパニックになっている状態がスラッシングです。
2. 試験対策の視点: 「実記憶(主記憶)の容量が不十分」「データの入れ替えが頻発(多発)」「プロセッサ(CPU)の使用率が減少(低下)」という3つの条件が揃ったら100%スラッシングです。根本的な解決策は「物理メモリを増設する」か「同時に立ち上げるアプリを減らす」ことになります。


4. まとめ

「メモリ不足が原因で、データの入れ替え処理ばかりに追われてシステムがほぼフリーズしてしまう現象」。これがスラッシングです。実務でも、古いPCで重い作業をしたときにハードディスクのアクセスランプが点っぱなしになり、マウスカーソルすら動かなくなるあの現象の正体が、まさにこのスラッシングです。


【コンピュータ】分岐の先がわからない!パイプラインの「制御ハザード」|情報処理問題1000本ノック

パイプライン3大ハザードのラストを飾るのがこれ。プログラムの「条件分岐(if文)」が原因で、次に実行すべき命令を見失ってしまう制御ハザードを攻略しましょう。

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

【 問題 】 CPUのパイプライン処理において、条件分岐命令が実行される際、その分岐結果(どちらのルートに進むか)が確定するまで、次に実行すべき命令を決定してパイプラインに読み込むことができず、処理に遅れ(ストール)が生じる現象はどれでしょうか?

① 制御ハザード (Control Hazard)
② データハザード (Data Hazard)
③ 構造ハザード (Structural Hazard)
④ 割込みハザード (Interrupt Hazard)

2. 正解:

正解: ① 制御ハザード(Control Hazard)

3. 解説:分かれ道の手前で、どっちに行くか決まるまで進めない

パイプラインは、前の命令が実行されている間に、次の命令を「先読み」してどんどん並行処理していくことで高速化しています。しかし、ここに条件分岐命令(if文やループなど)が来ると問題が発生します。

【制御ハザードの発生と、現代CPUの「予測」ワザ】

分岐命令が「条件を満たしているか?」を判定して結果が出るのは、パイプラインの後半(実行ステージなど)です。そのため、結果がわかるまでは、次にAルートの命令を読み込めばいいのか、Bルートの命令を読み込めばいいのかが分かりません。これが制御ハザードです。

■ 現代CPUの対策①:分岐予測(Branch Prediction)
・結果が出るのを待つと遅いので、CPUが過去のパターンから「今回はたぶんAルートに進むだろう」とギャンブルで予測し、そちらの命令を先読みして実行してしまいます。

■ 現代CPUの対策②:投機的実行(Speculative Execution)
・予測が「的中」していれば、そのまま超高速で処理が続きます。
・予測が「外れた」場合は、先読みして途中まで進めていた命令をすべて破棄し、正しいルートの命令を最初から読み込み直します(このロスを分岐ペナルティと呼びます)。
[ これで完璧!3大ハザードのキーワード比較 ]
構造ハザード = ハードウェア(メモリや演算器)の奪い合い
データハザード = 計算に必要なデータがまだできていない(依存関係)
制御ハザード分岐(if文)があるため、次の命令が決まらないココ!

1. 理解のコツ: 「旅行のナビゲーション」をイメージしてください。高速道路を走っていて、この先「左の東京方面」か「右の名古屋方面」かの分岐点があります。運転手(分岐命令)がどっちに行くか決める(結果が出る)まで、助手席のナビ係は次のルートの地図を先読みして準備することができません。この行き先不明による足止め制御ハザードです。
2. 試験対策の視点: 「分岐が存在するため」「他の命令(分岐条件の判定)の結果が必要となり」「次の命令が実行できない」という文脈が来たら制御ハザードが一択です。試験では、対策技術である「分岐予測」「投機的実行」という言葉とセットで出題されることも非常に多いので、まとめて覚えておくと午前試験は無敵になります。


4. まとめ

「条件分岐のせいで、次に進むべき正しいルート(命令)が確定するまでパイプラインが足止めを食らう現象」。これが制御ハザードです。現代のCPUはこの「分岐予測」の的中率が95%以上に達しており、制御ハザードによるロスを極限まで減らす設計になっています。


【コンピュータ】前の計算結果が出るまで待って!パイプラインの「データハザード」|情報処理問題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. まとめ

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


【コンピュータ構成】命令の渋滞を巻き起こす!「パイプラインハザード」|情報処理問題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以上の高度なシステムや、スマート都市(スマートシティ)における空間認識の基盤として、今後ますます出題が増えるトレンド用語です。