「午前1の対策を進めていたら、突然CPUのパイプラインだのキャッシュのヒット率だのという、セキュリティと何の関係もなさそうな計算問題が出てきた」
情報処理安全確保支援士(SC)試験を目指す人にとって、午前1(科目A-1)のコンピュータ構成要素は、まさに専門外からの飛び道具です。応用情報技術者試験の午前問題から共通で出題されるため、セキュリティ以外の分野が容赦なく飛んできます。
なお、IPAの発表によると、2026年度から試験区分の名称が変更される予定です。SC試験では午前Ⅰが科目A-1、午前Ⅱが科目A-2、午後が科目Bという呼び方になり、あわせてCBT方式へ移行する予定とされています(出題範囲・出題数・試験時間に変更はないとされています)。制度変更の詳細は「【2026年度版】情報処理安全確保支援士試験のCBT化で何が変わる?科目A/科目Bの新名称と対策の変え方」で解説しているので、そちらを参照してください。いずれも現時点では予定であり確定情報ではありません。本記事では検索でたどり着きやすい「午前1」の呼称を主軸にしつつ、新名称を併記して進めます。
筆者は1999年からインフラエンジニアとしてサーバやネットワークを触り、その後CIOとしてIT投資の判断を担いました。ハードウェアの仕様書を読んでサーバを調達する仕事は何度もやりましたが、「このCPUのCPIはいくつか」を紙の上で計算したことは一度もありません。実務ではベンチマークの結果を見て決めるからです。それでも試験ではこの計算が出ます。ならば割り切って、出るところだけを最短で拾いにいきましょう。
本シリーズの全体戦略は導入記事「元CIOが実践するスタミナ温存術!「コスパ極振り」最短エスケープルート・完全版ロードマップ」に、前回の基礎理論は「基礎理論の壁を越える!離散数学とアルゴリズムの頻出パターン・完全攻略ガイド」にまとめています。本記事はその3本目、テクノロジ系の第2関門にあたります。
この記事で学べること
- 午前1のコンピュータ構成要素で「取る問題」と「捨てる問題」の線引き
- 命令実行サイクル、パイプライン、ハザード、スーパースカラ、投機実行の要点
- レジスタから補助記憶までの記憶階層と、キャッシュメモリの動作原理
- 実効アクセス時間、CPI、MIPS、命令ミックスの計算を途中式つきで解く手順
- SC受験者が引っかかりやすい単位換算と用語の混同ポイント
午前1のコンピュータ構成要素は「計算問題だけ」拾いに行く
コンピュータ構成要素はハードウェアの話題が広く、まともに勉強すると際限がありません。まずは午前1という試験の性質から、どこに時間を投じるべきかを決めます。
午前1は60点で通過する試験である
午前1は30問・50分、基準点は60点です。つまり18問正解すれば通過であり、12問は落としてよい計算になります。出題は応用情報技術者試験の午前問題から抜粋される形で、テクノロジ系・マネジメント系・ストラテジ系の3分野から構成されます。分野の中ではテクノロジ系の比重が大きく、その中の1テーマがコンピュータ構成要素です。
ここで大事なのは、コンピュータ構成要素は「テクノロジ系の中の1テーマ」でしかない、という距離感です。1回の試験で出るのは多くて数問。にもかかわらず、参考書のページ数は分厚い。ここに全力投球するのは、コスパの観点で明確に誤りです。
取る問題:計算問題は毎回ほぼ同じ形で出る
一方で、このテーマには非常に美味しい特徴があります。計算問題の型が決まっているという点です。
- キャッシュメモリの実効アクセス時間(ヒット率を使った加重平均)
- クロック周波数とCPIから命令実行時間やMIPSを求める計算
- 命令ミックス(各命令の出現率と実行クロック数)から平均を求める計算
この3つは、数字が入れ替わるだけで手順は毎回同じです。しかも電卓は使えませんが、計算自体は小数の掛け算と足し算だけ。一度手順を体で覚えれば、以後は安定して得点できるという、暗記科目より遥かに寿命の長い投資になります。本記事が計算に紙面を割くのはこのためです。
捨てる問題:デバイスの細かい仕様は追わない
逆に、以下のような領域は深追いしないと決めてよいでしょう。
- 各種メモリ規格の世代ごとの転送速度や型番
- 入出力インタフェースの規格ごとのピン数やバージョン差
- 特定アーキテクチャに固有の命令セットの詳細
これらは覚える量に対して出題確率が低く、しかも一問一答で潰しても隣接知識に波及しません。試験本番で出会ったら、選択肢を2つに絞って勘で選び、次の問題へ進むのが正解です。午前1は「わからない問題に粘って時間を溶かす」ことが最大の敗因になります。捨てる判断も立派な対策です。
実務でCPUのスペックを選んでいた頃の話
スペックを選ぶという判断は、実務でも日常でした。インフラエンジニア時代、顧客のサーバを構築する際、CPU・メモリ・HDD容量といった基本スペックは選定のうえでとても重要な要素でした。当時、CPUのスペックを確認するときは周波数を重要視していた記憶があります。1次キャッシュ、2次キャッシュ、CPU内のメモリ容量も気にはしていましたが、決め手は周波数だったと思います。
余談ですが、当時は自作PCを使っていたので、CPUのクロックアップは日常的に行っていました。クロックを上げるとベンチマークソフトの数値も良くなります。ただし、上げすぎると熱暴走する。これも当時経験した懐かしい思い出です。
「クロック周波数を上げれば速くなる。ただし物理的な限界がある」というこの体感は、この先で扱うCPI・命令ミックス・パイプラインの話にそのままつながります。性能は周波数だけで決まるものではない、という前提を持って読み進めてください。
+おまけ:毎日1通の無料メール講座つき。登録した日が「1日目」、図解と論理で16週間かけて基礎も固まります。
CPUのアーキテクチャ:命令実行サイクルとパイプライン
CPUの内部動作は、試験では「流れの順序」と「並列化の効果」の2点に集約されます。物理的な回路の話ではなく、時間の使い方の話として捉えると一気に整理できます。
命令実行サイクルは決まった順序で回る
CPUは1つの命令を、決まった段階(ステージ)に分けて処理します。教材によって4段階だったり5段階だったりしますが、代表的な5段階は次のとおりです。
- 命令フェッチ(Instruction Fetch):主記憶から命令を取り出し、命令レジスタに格納する
- 命令デコード(Instruction Decode):命令を解読し、何をすべきかを判定する
- オペランドアドレス計算・オペランド読出し:処理対象データの実効アドレスを求め、データを読み出す
- 命令実行(Execute):演算装置(ALU)で演算を行う
- 結果の書き戻し(Write Back):結果をレジスタや主記憶に格納する
この順序自体が問われることもあります。特に「命令の取り出しが先か、解読が先か」は取り違えやすいポイントです。取り出さなければ解読できない、と物理的に考えれば間違えません。

パイプラインは「工場のライン」で理解する
素直に処理すると、1つ目の命令が5ステージすべてを終えるまで、2つ目の命令は待たされます。5ステージそれぞれに専用の回路があるのに、常に1つしか動いていない。これは明らかにもったいない。
そこで、1つ目の命令がステージ2に進んだら、空いたステージ1で2つ目の命令のフェッチを始めます。これがパイプラインです。流れ作業の工場ラインとまったく同じ発想で、各工程を遊ばせないことで単位時間あたりの処理数を増やします。
ここで重要なのは、パイプラインは1命令あたりの所要時間を短くするわけではないという点です。1つの命令が最初から最後まで通り抜ける時間(レイテンシ)は変わりません。速くなるのはスループット、つまり単位時間あたりに完了する命令数です。ここは選択肢の引っかけとして頻出なので、はっきり区別してください。

パイプラインの処理時間を計算する
パイプラインの処理時間には公式があります。ステージ数を D、実行する命令数を N、1ステージあたりの所要時間(1クロックサイクル)を T とすると、全体の所要時間は次の式で求められます。
所要時間 = (N + D − 1)× T
なぜこの式になるかというと、最初の1命令がラインを通り抜けるのに D サイクルかかり、そのあとは1サイクルごとに1命令ずつ完了していくからです。残りの(N − 1)命令が1サイクルずつ追加される、と考えれば D + (N − 1) = N + D − 1 になります。
具体例で確認します。
5ステージのパイプラインを持つCPUで、100命令を実行する。1クロックサイクルは0.5ナノ秒(ns)とする。
- パイプラインなし:1命令あたり5サイクル必要なので、100 × 5 × 0.5ns = 250ns
- パイプラインあり:(100 + 5 − 1) × 0.5ns = 104 × 0.5ns = 52ns
約4.8倍の高速化です。理論上の上限がステージ数(この場合5倍)であり、実際にはそこにわずかに届かない。この「上限に近づくが超えない」という感覚を持っておくと、選択肢の異常値を弾けます。
パイプラインハザード:3種類を区別する
理想どおりに流れないのがパイプラインの現実です。流れが乱れる要因をパイプラインハザードと呼び、3種類に分類されます。
- 構造ハザード(資源競合):同じハードウェア資源を複数の命令が同時に使おうとして待たされる。例えば命令のフェッチとデータの読出しが同じメモリポートを奪い合うケース
- データハザード:先行命令の計算結果を後続命令が使うため、結果が出るまで進めない。加算結果をすぐ次の命令で使う場合など
- 制御ハザード(分岐ハザード):分岐命令があると、次にどの命令を取り出すべきかが確定せず、先読みが無駄になる
対策もセットで覚えます。データハザードには、演算結果を書き戻しを待たずに次の命令へ直接渡すフォワーディング(バイパス)。制御ハザードには分岐予測や遅延分岐。どうしても回避できない場合は、パイプラインに空の段(バブル)を挿入して待たせるストールが発生します。
学び始めの人がつまずくのは、この3つの名前と中身の対応です。資源の取り合いが構造、データの依存がデータ、行き先が決まらないのが制御、と原因側で覚えると混乱しません。
スーパースカラ、スーパーパイプライン、VLIW
パイプラインをさらに推し進めた高速化手法も、用語問題として問われます。
- スーパースカラ:パイプラインそのものを複数本用意し、同一クロックで複数の命令を並行して実行する。「横に増やす」イメージ
- スーパーパイプライン:各ステージをさらに細かく分割してステージ数を増やし、クロック周波数を上げやすくする。「縦に細かくする」イメージ
- VLIW(Very Long Instruction Word):同時実行できる複数の命令をコンパイラがあらかじめ1つの長い命令語にまとめる。並列化の判断をハードウェアではなくコンパイラが担う点が特徴
- アウトオブオーダー実行:依存関係のない命令を、プログラムの記述順序と異なる順番で先に実行する
VLIWだけは「誰が並列化を判断するか」という軸が違うので、そこを引っかけてきます。VLIWはコンパイラ担当と紐づけておけば十分です。
投機実行と分岐予測はセキュリティにもつながる
制御ハザードを回避するため、現代のCPUは分岐の結果が確定する前に「たぶんこっちだろう」と予測した側の命令を先に実行してしまいます。これが投機実行(Speculative Execution)です。予測が当たれば時間の丸儲け、外れたら実行結果を破棄してやり直します。
SC受験者にとって面白いのはここからです。予測が外れて結果を破棄しても、投機的に実行した過程でキャッシュに残ったデータの痕跡までは消えません。この痕跡をアクセス時間の差から読み取る攻撃が、2018年に公表されたSpectreおよびMeltdownです。CPUの高速化技術が、そのままサイドチャネル攻撃の入口になった典型例と言えます。
午前1では純粋な性能の話として出題されますが、こうしてセキュリティ側と接続しておくと記憶に残りやすく、午前2や午後の伏線にもなります。
記憶階層とキャッシュメモリ
CPUをいくら速くしても、データが届かなければ意味がありません。速度差を埋めるための階層構造が、この分野の中心テーマです。
記憶階層は「速くて小さい」から「遅くて大きい」へ
記憶装置は、CPUに近いほど高速・小容量・高価、遠いほど低速・大容量・安価という明確な階層をなしています。
| 階層 | 主な実装 | 速度の目安 | 容量の目安 |
|---|---|---|---|
| レジスタ | CPU内部 | 最速 | 数十〜数百バイト |
| キャッシュメモリ(L1/L2/L3) | SRAM | 非常に高速 | 数十KB〜数十MB |
| 主記憶 | DRAM | 高速 | 数GB〜数百GB |
| 補助記憶 | SSD、HDD | 低速 | 数百GB〜数TB |
SRAM(Static RAM)はフリップフロップで構成され、電源が入っている限りリフレッシュ動作なしで内容を保持します。高速ですが回路規模が大きく高価なので、キャッシュに使われます。DRAM(Dynamic RAM)はコンデンサに電荷を蓄える方式で、放置すると電荷が抜けるため定期的なリフレッシュが必要です。安価で大容量化しやすいので主記憶に使われます。
この「リフレッシュが必要なのはどちらか」は定番の出題です。Dynamic は動的にリフレッシュし続ける必要があると、名前から引き出せるようにしておくと確実です。

なぜキャッシュが効くのか:参照の局所性
キャッシュが機能する根拠は、プログラムの動作に偏りがあるという経験則です。これを参照の局所性(Locality of Reference)と呼びます。
- 時間的局所性:一度アクセスしたデータは、近い将来もう一度アクセスされる可能性が高い(ループ内の変数など)
- 空間的局所性:あるアドレスにアクセスしたら、その近くのアドレスもアクセスされる可能性が高い(配列の連続処理など)
だからキャッシュは、要求されたデータだけでなく前後のデータもまとめて(ブロック単位、ラインとも呼ぶ)読み込みます。空間的局所性を先回りして利用しているわけです。
L1・L2・L3の役割分担
現代のCPUはキャッシュ自体を多段化しています。
- L1キャッシュ:CPUコアに最も近く最速。容量は小さい。命令用(I-cache)とデータ用(D-cache)に分離されていることが多い
- L2キャッシュ:L1より大きく、やや低速。コアごとに持つ構成が一般的
- L3キャッシュ:さらに大容量で、複数のコアで共有されることが多い
CPUはまずL1を探し、なければL2、L3、それでもなければ主記憶へ、と順に降りていきます。降りるほど時間がかかるため、上の階層でのヒット率がそのまま体感性能を左右します。
ライトスルーとライトバック
読み出しだけならキャッシュは単純ですが、書き込みが絡むと「キャッシュと主記憶の内容が食い違う」という問題が生じます。その扱い方に2方式あります。
- ライトスルー(write through):CPUがキャッシュに書き込むと同時に、主記憶にも必ず書き込む。キャッシュと主記憶の内容が常に一致するため整合性の管理が簡単だが、書き込みのたびに低速な主記憶へアクセスするので書き込み性能は落ちる
- ライトバック(write back):書き込みはキャッシュに対してのみ行い、そのブロックがキャッシュから追い出されるときにまとめて主記憶へ反映する。書き込みが速い一方、主記憶の内容が一時的に古いままになるため、整合性の管理(更新されたことを示すダーティビットの管理や、他コアとの一貫性制御)が複雑になる
試験での問われ方は「性能と整合性のトレードオフ」です。速いのはライトバック、単純で安全なのはライトスルーという対比で押さえます。学び始めの人は名前の向きを取り違えがちですが、スルー(through)は「素通りして主記憶まで届く」、バック(back)は「後回しにして戻す」と語感で結びつけると迷いません。

マッピング方式と置換アルゴリズム
主記憶のどのブロックをキャッシュのどこに置くか、という対応付けの方式も出題範囲です。
- ダイレクトマッピング:主記憶のブロックごとに、置けるキャッシュの場所が1か所に固定される。回路が単純で高速だが、同じ場所を奪い合う競合が起きやすい
- フルアソシアティブ:どのブロックもキャッシュの任意の場所に置ける。競合は起きにくいが、探索の回路が複雑で高価
- セットアソシアティブ:キャッシュを複数のセットに分け、セット内であれば任意の場所に置ける。上記2つの中間で、実際のCPUで広く使われる
キャッシュが満杯のときに何を追い出すかを決めるのが置換アルゴリズムで、最も長く使われていないものを追い出すLRU(Least Recently Used)、参照回数が最も少ないものを追い出すLFU(Least Frequently Used)、先に入れたものから追い出すFIFOがあります。LRUとLFUは「最近使っていない」か「使用回数が少ない」かの違いで、選択肢を入れ替える引っかけが定番です。
実効アクセス時間の計算:ここが最大の得点源
いよいよ本題の計算です。ここは確実に取りにいきます。
実効アクセス時間 = キャッシュのアクセス時間 × ヒット率 + 主記憶のアクセス時間 × (1 − ヒット率)
なぜこの式かというと、アクセスのうちヒット率の割合はキャッシュの速度で、残りのミス率の割合は主記憶の速度で処理されるからです。要するに速度の加重平均であり、公式というより「割合で按分する」という考え方そのものです。
例題1
キャッシュメモリのアクセス時間が10ns、主記憶のアクセス時間が100ns、キャッシュのヒット率が90%のとき、実効アクセス時間は何nsか。
手順を分解します。
- ヒット率90% = 0.9、ミス率は 1 − 0.9 = 0.1
- ヒット時の寄与:10ns × 0.9 = 9ns
- ミス時の寄与:100ns × 0.1 = 10ns
- 合計:9ns + 10ns = 19ns
主記憶だけなら100nsかかるところが19nsになりました。ヒット率が9割あるだけで、実に5倍以上の改善です。この威力の実感が、キャッシュという仕組みが存在する理由そのものです。
例題2:ヒット率が下がるとどうなるか
同じ条件でヒット率を50%にしてみます。
- 10ns × 0.5 + 100ns × 0.5 = 5ns + 50ns = 55ns
ヒット率が90%から50%へ下がっただけで、実効アクセス時間は19nsから55nsへ、約2.9倍に悪化しました。式そのものはヒット率の一次関数(線形)ですが、キャッシュと主記憶の速度差が10倍あるため、ヒット率がわずかに下がるだけで実効アクセス時間は大きく伸びるという感覚は、選択肢の妥当性を検算するときに役立ちます。
注意すべき出題バリエーション
問題文によっては「ミス時は、キャッシュを探した後に主記憶へアクセスする」と読める条件が与えられることがあります。その場合は次の式になります。
- 実効アクセス時間 = キャッシュのアクセス時間 + ミス率 × 主記憶のアクセス時間
- 例題1の数値なら:10ns + 0.1 × 100ns = 10ns + 10ns = 20ns
19nsと20ns、どちらも選択肢に並んでいたら、問題文の記述で判断するしかありません。まず加重平均の式で解き、問題文に「ミス時は主記憶を追加でアクセスする」旨の明示があれば後者に切り替える、という手順で臨めば取りこぼしません。
例題3:2階層キャッシュの場合
L1キャッシュのアクセス時間2ns、L2キャッシュのアクセス時間10ns、主記憶のアクセス時間60ns。L1のヒット率は95%、L1でミスした場合にL2でヒットする確率は80%とする。実効アクセス時間は何nsか。
本問は各階層のアクセス時間が「そこに到達した場合の総アクセス時間」として与えられているため、例題1で使った加重平均型で解きます。階層が増えても考え方は同じで、確率の枝分かれを順にたどるだけです。
- L1でヒット:確率0.95 → 2ns × 0.95 = 1.9ns
- L1でミス(確率0.05)のうちL2でヒット:0.05 × 0.8 = 0.04 → 10ns × 0.04 = 0.4ns
- L1でもL2でもミス:0.05 × 0.2 = 0.01 → 60ns × 0.01 = 0.6ns
- 合計:1.9 + 0.4 + 0.6 = 2.9ns
確率の合計が 0.95 + 0.04 + 0.01 = 1.00 になっていることを確認するのが検算のコツです。ここが1にならないなら、枝の切り分けをどこかで間違えています。

CPUの性能指標を計算で押さえる
性能指標の計算も、覚える式は少なく、単位換算さえ間違えなければ確実に得点できる領域です。
クロック周波数とクロックサイクル時間は逆数の関係
CPUはクロックという一定周期の信号に合わせて動作します。1秒間のクロック数がクロック周波数(単位はHz)、1クロックにかかる時間がクロックサイクル時間です。両者は単純な逆数の関係にあります。
クロックサイクル時間 = 1 ÷ クロック周波数
- 1GHz = 10億回/秒 → 1 ÷ (1 × 10^9) = 1ns
- 2GHz → 1 ÷ (2 × 10^9) = 0.5ns
- 1.25GHz → 1 ÷ (1.25 × 10^9) = 0.8ns
ここで生じる事故のほとんどは単位換算です。1GHz のときに 1ns、これを基準点として暗記しておけば、2GHzなら半分の0.5ns、500MHzなら倍の2ns、と暗算で出せます。試験本番で指数計算をゼロから組み立てるより遥かに速くて安全です。
CPIから命令実行時間を求める
CPI(Cycles Per Instruction)は、1命令の実行に必要な平均クロック数です。ここから1命令の実行時間が出ます。
命令実行時間 = CPI × クロックサイクル時間
1命令にCPI回のクロックが必要で、1クロックの長さがクロックサイクル時間なのだから、掛けるだけです。
例題4
クロック周波数1.25GHz、CPIが4のCPUがある。1命令の平均実行時間は何nsか。
- クロックサイクル時間 = 1 ÷ 1.25GHz = 0.8ns
- 命令実行時間 = 4 × 0.8ns = 3.2ns
MIPSは「1秒間に何百万命令か」
MIPS(Million Instructions Per Second)は、1秒間に実行できる命令数を百万単位で表した指標です。
MIPS = 1 ÷ 命令実行時間(秒) ÷ 10^6
実務的には「命令実行時間の逆数が毎秒命令数、それを百万で割る」だけです。
例題4の続き
- 命令実行時間 3.2ns = 3.2 × 10^-9 秒
- 1秒あたりの命令数 = 1 ÷ (3.2 × 10^-9) = 3.125 × 10^8 = 312,500,000命令
- MIPS = 312,500,000 ÷ 10^6 = 312.5 MIPS
覚え方としては、1命令1nsなら1000MIPSを基準にすると速いです。1ns = 10^-9秒なので毎秒10億命令、つまり1000MIPS。3.2nsならその 1 ÷ 3.2 倍で312.5MIPS、と暗算できます。
なお、浮動小数点演算の性能を表すFLOPS(Floating point Operations Per Second)という別の指標もあります。MIPSは命令数、FLOPSは浮動小数点演算数を数えるもので、対象が違います。科学技術計算やAI処理の性能比較ではFLOPSが使われます。
命令ミックスによる平均CPIの計算
実際のCPUでは、命令の種類ごとに必要なクロック数が異なります。単純な加算は速く、メモリアクセスを伴う命令は遅い。そこで、命令の出現比率を重みとして平均を取ります。これが命令ミックスです。
平均CPI = Σ(各命令の出現率 × その命令の実行クロック数)
これも実効アクセス時間とまったく同じ、加重平均の考え方です。式の形が同じなので、片方を理解すればもう片方も自動的に解けます。
例題5
あるCPUの命令ミックスが次のとおりである。クロック周波数は1.6GHzとする。平均命令実行時間とMIPS値を求めよ。
| 命令の種類 | 出現率 | 実行クロック数 |
|---|---|---|
| 演算命令 | 50% | 4 |
| 転送命令 | 30% | 8 |
| 分岐命令 | 20% | 10 |
手順を省略せずに追います。
- 出現率の合計を確認:50% + 30% + 20% = 100%(ここが100%にならなければ問題文の読み違い)
- 平均CPIを計算:
- 演算命令:0.5 × 4 = 2.0
- 転送命令:0.3 × 8 = 2.4
- 分岐命令:0.2 × 10 = 2.0
- 合計:2.0 + 2.4 + 2.0 = 6.4クロック
- クロックサイクル時間:1 ÷ 1.6GHz = 0.625ns
- 平均命令実行時間:6.4 × 0.625ns = 4ns
- MIPS:1 ÷ (4 × 10^-9) = 2.5 × 10^8 = 250,000,000命令/秒 → 250 MIPS
検算の勘所は、平均CPIが最小値4と最大値10の間、かつ出現率が最も高い演算命令(4クロック)寄りに引っ張られるはずだ、という感覚です。6.4はその範囲に収まっています。計算ミスで平均CPIが12などと出たら、その時点で間違いだと気づけます。
単位換算の罠を先に潰しておく
この分野で落とす原因は、理解不足よりも単位の取り違えが圧倒的に多いです。試験前に次を確認しておいてください。
- ミリ秒(ms)= 10^-3秒、マイクロ秒(μs)= 10^-6秒、ナノ秒(ns)= 10^-9秒、ピコ秒(ps)= 10^-12秒
- MHz = 10^6 Hz、GHz = 10^9 Hz
- MIPSは「百万命令毎秒」なので、毎秒命令数を10^6で割る
- ヒット率が「%」で与えられたら、必ず小数に直してから掛ける(90%を90のまま掛けない)
特に最後の項目は、焦っているときほど起こります。問題文の%を見た瞬間に小数へ書き直すという手癖をつけておくと事故が減ります。
講師時代、講義の確認問題として、基本情報や応用情報で出題されそうな計算問題を解かせていました。間違いが多かったのは単位変換で、メガとビットの換算あたりが定番のつまずきどころでした。しかも電卓もExcelも使わせていなかったので、受講者にはかなり面倒だったはずです。正直に言えば、自分なら絶対に電卓かExcelを使います。
それでも解かせていたのは、実務ではシステムの容量計算などで単位換算を散々経験することになる、と伝えたかったからです。つまずくのは公式ではなく単位のほうだ、という点は、容量計算でも本節のns・GHzでも変わりません。
一方で、計算問題はテストくらいでしかやる機会がないので、やり方は意外とすぐ忘れてしまいます。だからこそ、「忘れる前提で、手順として覚える」のが試験対策としては正解です。%は見た瞬間に小数へ直す、単位は先に10のべき乗へ揃える。この2つを固定の手つきにしてしまえば、久しぶりに解いても同じ精度で処理できます。
SC試験での出題パターンと対策
最後に、実際の試験でどう問われ、どう時間を使うかを整理します。
午前1で狙われる論点
過去の午前1では、コンピュータ構成要素から次のような形で繰り返し出題されています。具体的な年度の特定は避けますが、型としては安定しています。
- キャッシュメモリの実効アクセス時間を、ヒット率から求める計算
- クロック周波数とCPI、あるいは命令ミックスから、命令実行時間やMIPSを求める計算
- ライトスルーとライトバックの違いを問う用語問題
- パイプライン、スーパースカラ、VLIW、投機実行などの高速化技術の定義を問う用語問題
- SRAMとDRAMの特性の違い(リフレッシュの要否、用途)
計算問題と用語問題の両方が出ます。用語問題は選択肢の言い換えで判別する形が多く、定義を1行で言えるかどうかが勝負になります。
学び始めの人がつまずく3つのポイント
- パイプラインで1命令が速くなると思い込む:速くなるのはスループットであり、1命令のレイテンシは変わりません。「単位時間あたりの処理数が増える」と正確に言えるかを自己チェックしてください
- ライトスルーとライトバックの向きを逆に覚える:整合性が単純なのはライトスルー、書き込みが速いのはライトバック。トレードオフの向きごと覚えます
- ヒット率とミス率の取り違え:問題文が「ミス率10%」で与えられている場合、ヒット率は90%です。式に代入する前に、どちらが与えられているかを声に出して確認するくらいで丁度いいです
時間配分:計算問題も2分で切る
午前1は30問50分、単純平均で1問100秒(約1分40秒)です。計算問題は手を動かす分だけ時間を食いますが、それでも2分を超えたら一度飛ばして、最後に戻る運用を推奨します。本記事で扱った計算はいずれも、手順を覚えていれば1分以内に解けるものばかりです。逆に言えば、1分考えて手順が浮かばない問題は、その場で粘っても浮かびません。
そして繰り返しますが、午前1は60点で通過です。コンピュータ構成要素で1問落としても、他分野で取り返せます。この分野に必要以上の時間を投じないこと自体が、SC受験者にとっての最適戦略です。
【演習】コンピュータ構成要素とCPU性能計算 理解度チェック(全10問)
午前1(科目A-1)ではキャッシュの実効アクセス時間やMIPSの計算が数値を変えて繰り返し出題され、パイプラインや記憶素子の特性は用語の定義を問う形で登場します。定番のひっかけは、ライトスルーとライトバックの向きの入れ替え、ヒット率とミス率の取り違え、パイプラインが1命令のレイテンシを短縮すると誤認させる選択肢、そしてSRAMとDRAMのリフレッシュの要否の逆転です。以下の練習問題で本記事の理解度を確認してみましょう。
まとめ:割り切って計算パターンだけを持ち帰る
コンピュータ構成要素は、SC受験者にとって完全に専門外の分野です。だからこそ、範囲を広げずに「型が決まっている計算問題」と「1行で定義を言える用語」だけを持ち帰るのが最短ルートになります。
本記事で扱った計算は、実効アクセス時間、CPIとMIPS、命令ミックスの3つ。この3つはすべて加重平均か逆数という、たった2つの操作に還元できます。式を丸暗記するのではなく、「割合で按分している」「1秒あたりに直している」と意味で捉えておけば、数字が変わっても、階層が増えても対応できます。
筆者はインフラエンジニアとしてサーバのスペック表を数え切れないほど読み、CIOとしてIT投資の判断も下してきましたが、現場でCPIを手計算する場面には出会いませんでした。それでも、キャッシュが効くから性能が出るという構造の理解や、書き込み方式が整合性と速度のトレードオフであるという感覚は、システムの性能問題を切り分けるときに確実に効いてきます。試験のための計算は、その構造を体に入れるための入口だと考えると、無駄な作業には見えなくなるはずです。
そして最後にもう一度。午前1は60点で通過する試験です。この分野に完璧を求めず、計算3パターンと用語の定義を押さえたら、次の分野へ進んでください。残った時間はすべて、あなたの本丸であるセキュリティに投じるべきです。
本記事は情報処理安全確保支援士(SC)試験対策を目的として作成しています。
参考資料
+おまけ:毎日1通の無料メール講座つき。登録した日が「1日目」、図解と論理で16週間かけて基礎も固まります。