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

【コンピュータ】1つの命令をこなすのに何ステップ必要?「CPI」の定義|情報処理問題1000本ノック

CPUの計算スピードを測るための重要指標。前回の「クロック」の知識をベースに、命令1つあたりにかかるテンポの数を表す「CPI」の概念を攻略しましょう。

1. 【 問題 】:CPUの性能指標であるCPIの定義

【 問題 】 コンピュータのCPUの性能を表す指標の一つであり、「クロックあたりの実行命令回数の逆数」として定義され、CPUが「1つの命令」を実行するために平均して何周期(何クロック)必要かを表すものはどれでしょうか?

① MIPS (Million Instructions Per Second)
② CPI (Cycles Per Instruction)
③ クロック周波数 (Clock Frequency)
④ スループット (Throughput)

2. 正解:

正解: ② CPI (Cycles Per Instruction)

3. 解説:数字が「小さいほど優秀」な効率性の指標

CPUの性能は、メトロノームのテンポ(クロック周波数)だけで決まるわけではありません。「1回のテンポでどれだけ仕事をこなせるか」という効率も重要であり、それを測るのがCPIです。

【CPIの計算の仕組みと「逆数」の意味】

「クロックあたりの実行命令回数の逆数」とは?:例えば、1クロックで平均 $0.2$ 回の命令を処理できるCPUがあるとします。この「$0.2$」の逆数をとると、$$ \frac{1}{0.2} = 5 $$ となります。この「5」という数値が、「1つの命令を終わらせるのに、メトロノームを5回カチカチと刻む必要がある」という意味のCPIになります。 ← ココが問題の正解!

試験での実戦計算(MIPSとの関係)
午前試験では、「クロック周波数が $1.0\text{GHz}$(1秒間に10億クロック)で、CPIが 2 のCPUの性能は何MIPSか?」という問題が定番です。1命令に2クロックかかるので、1秒間に実行できる命令は $$ 10億 \div 2 = 5億回 $$ です。MIPSは100万回単位なので、答えは「500MIPS」となります。このようにクロック周波数、CPI、MIPSは常にセットで出題されます。
[ 選択肢のひっかけポイント(CPUの性能計算で必ず混ぜられる用語) ]
★ ① MIPS:CPUが「1秒間に何百万回の命令を実行できるか」を表す指標です。CPIの数字が小さくなる(効率が上がる)ほど、このMIPSの値は大きくなります。
★ ③ クロック周波数:前問で学んだ、1秒間に何回の電子的なメトロノーム(パルス)を刻むかというスピードそのもの(Hz)です。
★ ④ スループット:CPU単体ではなく、システム全体が単位時間あたりに処理できる仕事量(処理能力)を表す広い意味の用語です。

1. 理解のコツ: 「大工さんの作業効率」に例えてみましょう。
・大工さんがトンカチを「1回叩く」のを1クロックとします。
・「釘を1本打つ(1命令)」という仕事を終わらせるために、トンカチを平均4回叩く必要があるなら、CPIは「4」です。もし、新型の頑丈なトンカチに変えて2回叩くだけで釘が打てるようになれば、CPIは「2」に下がります。CPIの数値が小さければ小さいほど、少ないステップ数で仕事をこなせる「効率が良い優秀なCPU」ということになります。
2. 試験対策の視点: 「クロックあたりの実行命令回数の逆数」「1命令あたりに必要なクロック数」という表現が出たら「CPI」が一択です。基本情報や応用情報の午前試験では、文章題として定義を問われるだけでなく、先述したようなMIPS値や実行時間を求める計算問題のパーツとして「CPI = ○」の形で確実に登場するため、公式の分子と分母の関係を直感的に理解しておくことが合格への必須条件です。


4. まとめ

「CPUが1つのプログラム命令を処理するために、内部でメトロノームを何回カチカチと進めなければならないかという、処理効率の指標」。これがCPIです。どれだけクロック周波数(テンポ)を上げても、このCPIの数字が大きい(無駄なステップが多い)とコンピュータは速くなりません。ハードウェアの真の強さを計算する上で、絶対に欠かせない数理概念です。


PR

【コンピュータ】回路全体を動かす電子の指揮者!「クロック」の役割|情報処理問題1000本ノック

コンピュータのハードウェアが、誤作動を起こさずに超高速で計算できる秘密。すべての電子部品が足並みを揃えて一斉に動き出すための合図「クロック」を攻略しましょう。

1. 【 問題 】:コンピュータの動作同期とクロック

【 問題 】 コンピュータを構成するCPUやメモリなどのデジタル回路において、各装置の処理のタイミングを一致させてデータを正確にやり取りするために、一定の時間間隔で規則正しく繰り返される電子的な周期信号を何と呼ぶでしょうか?

① バス (Bus)
② レジスタ (Register)
③ クロック (Clock / クロック信号)
④ 割り込み (Interrupt)

2. 正解:

正解: ③ クロック (Clock / クロック信号)

3. 解説:1秒間に何億回も刻まれる「前へすすめ」の合図

コンピュータの内部(ハードウェア)は、天文学的な数の電子スイッチ(トランジスタ)が緻密に繋がってできています。これらがバラバラのスピードで動くと、データが途中で衝突したり、前の計算が終わる前に次のデータが上書きされたりしてバグが起きてしまいます。それを防ぐために用意されているのがクロックです。

【コンピュータの心臓:クロックの仕組み】

役割:コンピュータ内部の発振器という部品から、「カチッ、カチッ」と一定の間隔で電位の波(パルス信号)が送られます。CPUをはじめとする各部品は、この信号が1回鳴る(1周期)ごとに、次の命令を読み込んだり、計算を実行したり、メモリにデータを送ったりと、すべての部品が一斉に1歩ずつ前へ進みます← ココが問題の正解!

性能の指標(クロック周波数):1秒間にこのクロックが何回繰り返されるかを「クロック周波数」と呼び、単位は「Hz(ヘルツ)」を使います。パソコンやスマホのスペック表にある「3.2GHz(ギガヘルツ)」という数字は、「1秒間に32億回」という超スピードでメトロノームが刻まれ、それに合わせて回路が動いていることを意味します。このテンポが速いコンピュータほど、単位時間あたりに処理できる計算量が多くなります。
[ 選択肢のひっかけポイント(コンピュータを構成する重要パーツ) ]
★ ① バス:CPUとメモリ、拡張カードなどの間を繋ぎ、データを行き来させるための「ハードウェア的な配線(通り道)」のことです。
★ ② レジスタ:CPUの内部に直結している、データを一時的に保管しておくための超高速な(しかし容量はごくわずかな)記憶回路のことです。
★ ④ 割り込み:CPUがプログラムを実行している最中に、外部機器からの要求(マウスが動いた、など)やエラーを検知して、現在の処理を一時中断して最優先の別処理に切り替える仕組みです。

1. 理解のコツ: 「大勢で一斉に行うラジオ体操」をイメージしてください。
・伴奏(音楽)がない状態で、全員が自分の好きなテンポで勝手に体を動かしたら、お互いに手がぶつかって大混乱になりますよね。そこで、スピーカーから「いち、に、さん、し」と規則正しい伴奏(テンポ)を流すことで、全員がピッタリ同じタイミングで腕を伸ばしたり曲げたりできます。この全員の足並みを揃えるための『伴奏(テンポ)』の役割クロックです。テンポが速くなれば、全員の動き(処理スピード)も上がります。
2. 試験対策の視点: 「一定の間隔で命令を実行」「タイミングを一致(同期)させる」という、ハードウェア全体の歩調を合わせるための信号の話が来たら「クロック」が一択です。ITパスポート、基本情報、応用情報などすべての試験の「コンピュータ構成要素(テクノロジ系)」において、CPUのカタログスペック(性能)を正しく読み解くための最上流にある超必須知識です。


4. まとめ

「コンピュータ内のすべてのハードウェア回路が、1つの狂いもなく正確に計算を進められるようにするための、電子的なメトロノーム信号」。これがクロックです。このクロックという絶対的な指揮者が一糸乱れぬタクトを振り続けてくれているからこそ、コンピュータは誤作動を起こすことなく、膨大なプログラムをスムーズに処理することができています。


【システム構成】CPUと主記憶の「速度差」を埋める!「キャッシュメモリの効果」|情報処理問題1000本ノック

コンピュータの性能を語る上で絶対に外せないキャッシュメモリ。その存在意義である「なぜ速くなるのか?」という最も根本的な効果を攻略しましょう。

1. 【 問題 】:キャッシュメモリの目的と効果

【 問題 】 コンピュータの基本構成において、CPU(プロセッサ)と主記憶(メインメモリ)の間に配置される「キャッシュメモリ」を導入することによって得られる効果として、最も適切なものはどれでしょうか?

① データを一時的に保持し、CPUが同じデータを再度読み出す際に、主記憶へアクセスするよりもデータ転送を高速に行う
② データを一時的に保持し、複数の演算器による並列演算のデータ受け渡しに利用する
③ 命令を一時的に保持し、デコード(命令解析)の処理を省くことで演算そのものを高速化する
④ 命令を一時的に保持し、パイプライン処理による並列演算の制御を行う

2. 正解:

正解: ① データを保持し、同じデータを読み出す際に、データ転送を高速に行う

3. 解説:足の遅い主記憶の代わりに、目の前でデータを手渡す

キャッシュメモリの最大の使命は、「超高速だけど容量が小さいCPU」と「大容量だけど動作が遅い主記憶(メインメモリ)」の間に挟まり、速度のギャップを埋めることです。

【キャッシュメモリが劇的な効果を発揮する仕組み】

1. CPUが何かデータを必要としたとき、最初は遠くにある「主記憶」までわざわざ取りに行きます。このとき、取ってきたデータを手元の「キャッシュメモリ」にもこっそりコピーして保存しておきます。
2. プログラムというものは、同じデータを何度も繰り返し使う習性(時間の局所性)があります。
3. CPUが次に「またあのデータが欲しい!」となったとき、今度はわざわざ遠い主記憶まで行かず、すぐ目の前にある超高速なキャッシュメモリから一瞬でデータを読み出す(データ転送を高速に行う)ことができます。← ココが問題の正解!
[ 選択肢のひっかけポイント(他技術との混同) ]
★ ②・④ 並列演算に利用する / 並列演算を行う:これらはキャッシュメモリの効果ではなく、CPU内部の「マルチコア」「スーパースカラ(多重命令発行)」「パイプライン」といったプロセッサ側の並列処理技術の効果です。
★ ③ 演算そのものを高速化する:キャッシュメモリはあくまでデータを「転送(出し入れ)」する速度を上げるものであり、足し算や掛け算といった「演算(計算)そのもののスピード」を速くする機能はありません。

1. 理解のコツ: 「勉強中のデスクワーク」に例えてみましょう。
・調べたい言葉が出るたびに、1階の図書室(主記憶)まで歩いて行くのは時間がかかって非効率ですよね。そこで、一度図書室から持ってきた本(データ)を、自分の机の引き出し(キャッシュメモリ)に並べておきます。
・次に同じ本が必要になったときは、1階まで行かずに引き出しからサッと取り出せるので、圧倒的に作業(データ転送)が速くなります。これがキャッシュメモリの効果そのものです。
2. 試験対策の視点: 「同じデータを読み出す際」「データ転送を高速に行う」という記述がキャッシュメモリの定義の王道です。ITパスポートから応用情報まで、すべての試験の午前で必ずと言っていいほど出題される超重要基礎問題ですので、「演算自体の高速化」や「並列処理の制御」といったひっかけ選択肢に騙されないよう、目的をシンプルに覚えておきましょう。


4. まとめ

「使用頻度の高いデータをCPUのすぐ近くに一時保存しておくことで、遅い主記憶へのアクセス回数を減らし、システム全体のデータ処理スピードを爆発的に高める高速バッファメモリ」。それがキャッシュメモリです。現代のコンピュータは、このキャッシュへの『ヒット率(データがキャッシュ内にある確率)』を高めることが、システム全体のパフォーマンスを左右する鍵となっています。


【システム構成】書き換えるまでコピーを後回し!「Copy on Write(CoW)」|情報処理問題1000本ノック

OSが新しいプロセスを作る際、メモリを丸ごとコピーするのは非常に重い処理になります。その無駄を極限まで削る、省エネかつ高速なメモリ管理技術を攻略しましょう。

1. 【 問題 】:OSのメモリ管理とプロセス生成

【 問題 】 Linuxなどのオペレーティングシステム(OS)において、あるプロセスから新しい子プロセスを生成(fork)する際、最初は親プロセスのメモリ空間(データ)を新しいメモリ領域にコピーせず、同じ領域への参照(リンク)のみを共有させ、その後、いずれかのプロセスがデータを「書き換えた(変更した)時点」で初めて、その変更されたメモリページのみを別領域にコピーする方式はどれでしょうか?

① ページイン (Page-in)
② メモリマップド I/O (Memory-Mapped I/O)
③ コピーオンライト (Copy on Write / CoW)
④ スワッピング (Swapping)

2. 正解:

正解: ③ コピーオンライト(Copy on Write / CoW)

3. 解説:「必要になるまで仕事をサボる」賢いアルゴリズム

新しいプロセスを作る時、親が持っている膨大なメモリデータをすべて複製(コピー)しようとすると、メモリが大量に消費され、CPUの処理時間も奪われてしまいます。これを「遅延評価(あと回し)」で解決するのがコピーオンライト(CoW)です。

【コピーオンライト(CoW)の劇的なメリット】

・子プロセスを作った直後は、親も子も「全く同じデータ(読み取り専用)」を見ているため、メモリ空間にリンクを貼る(参照を共有する)だけで済ませ、コピーは一切行いません
・多くのケースでは、子プロセスは生成された後、すぐに別のプログラムを実行(exec)して自分のメモリを上書きするため、実は「親のデータのコピー」は無駄になることが多いのです。
・もし、親子どちらかのプロセスがデータを「書き換えよう(Writeしよう)」としたら、OSがそれを検知して、その書き換える部分(ページ)だけを急いで別メモリに複製(Copy)し、お互いのデータを独立させます。← ココが問題の核心!
[ 選択肢のひっかけポイント(すべてOS・メモリ関連用語) ]
★ ① ページイン:仮想記憶において、必要になったプログラムやデータを磁気ディスクから主記憶(メインメモリ)に読み込む動作のことです。
★ ② メモリマップド I/O:CPUが外部の周辺機器(I/O装置)にアクセスする際、特定のメモリ番地(アドレス)に機器を割り当て、通常のメモリ読み書きと同じ命令で制御する方式です。
★ ④ スワッピング:主記憶の空き容量が不足した際、プロセス丸ごと単位で一時的に磁気ディスク(退避領域)へと追い出したり(スワップアウト)、戻したり(スワップイン)するメモリ管理の手法です。

1. 理解のコツ: 「書類の共有」に例えてみましょう。部下に「この資料を参考に仕事をして」と渡すとき、最初から何百ページもある資料をコピーして配るのは紙の無駄(メモリの無駄)ですよね。だから最初は「オフィスの共有サーバーにある同じファイルを読んで(リンク)」と指示します。そして、部下が「自分の担当部分だけ数値を書き換えたいです」と言ったその時に初めて、そのページだけを複製して編集させる。この「書き換えるタイミング(On Write)でコピー(Copy)する」という仕組みがコピーオンライトです。
2. 試験対策の視点: 「子プロセスの生成時」「最初はコピーせずにリンク(共有)」「変更があった時にメモリのコピーを行う」という記述があればコピーオンライトが一択です。基本情報や応用情報の午前試験だけでなく、近年の仮想化技術(Dockerなどのコンテナや、仮想マシンのスナップショット機能)の裏側で動いている基本原理としても非常によく狙われる重要トレンドキーワードです。


4. まとめ

「プロセスの生成を高速化するため、メモリの複製を極限まで後回しにし、データの書き換えが発生した瞬間に対象部分だけをコピーする合理的なメモリ管理技術」。これがコピーオンライト(CoW)です。この仕組みのおかげで、現代のOSはマルチタスク(大量のプロセス起動)を驚くほど軽量かつ一瞬で行うことができています。


【システム構成】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の超高速なマルチタスクを支えています。


【システム構成】待ち時間をゼロにする同期マジック!「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%以上に達しており、制御ハザードによるロスを極限まで減らす設計になっています。


        
  • 1
  • 2
  • 3