pulpul 日本の試験

基本情報技術者 概念書 · コンピュータ構成要素

プロセッサの構成と性能

要点と定義

プロセッサは命令を取り出して解読し、演算やデータの移動を行う装置です。制御装置は命令の順序や各装置の動きを制御し、演算装置は加算器などを使って算術演算や論理演算を実行します。レジスタはプロセッサ内の高速な記憶場所で、処理中の命令やデータを一時保持します。命令レジスタは取り出した命令を保持し、命令アドレスレジスタ(プログラムカウンタ)は次に取り出す命令のアドレスを保持します。アキュムレーターや汎用レジスタは演算途中の値やデータに使われます。命令を命令レジスタに置き、デコーダで解読して実行する流れを理解すると、各レジスタの役割を区別できます。

CPUは幅広い種類の命令を順に実行する処理に使われ、GPUは多数の演算を並列に進める構成をもち、画像処理や3D演算などに適します。大量の同種の演算を並列化できる場合にGPUの特性が活きます。

プロセッサの性能を表す指標の一つがMIPSで、1秒当たりの命令実行数を百万命令単位で表します。命令ごとに必要なクロック数が異なるとき、平均CPI(1命令当たりの平均クロック数)は命令の出現率で重み付けして求めます。単純化した見積りでは、実行命令数/秒 ≈ クロック周波数/平均CPI です。

割込みは、通常の命令実行の流れを一時中断して、発生した事象への処理に移る仕組みです。命令実行中の例外など、プロセッサ内部の処理が原因となるものは内部割込みです。ゼロ除算や不正な命令コード、ページフォールトが例に挙げられます。タイマや入出力装置など、プロセッサの外部の事象が原因となるものは外部割込みです。入出力完了の通知も外部からの事象です。

適用条件と例

平均CPIを使うときは、命令の種類ごとのクロック数と出現率が同じ実行を表していることを確認します。たとえば、4クロックの命令が30%、8クロックが60%、10クロックが10%なら、平均CPIは 4×0.30 + 8×0.60 + 10×0.10 = 7 です。700 MHzのCPUなら、見積り上の命令数は毎秒 700×10⁶÷7 = 100×10⁶、すなわち100 MIPSです。出現率は合計が100%になることも確かめます。

同じ式で、1 GHzかつ平均CPIが0.8なら、毎秒 10⁹÷0.8 = 1.25×10⁹命令です。「万命令」単位なら1.25×10⁹÷10⁴ = 125,000万命令となります。周波数をHzに直し、求める単位に換算してから答えると、桁の取り違えを避けられます。これは平均CPIとクロック周波数から求める単純な見積りです。

命令の処理を追うときは、命令の取出し、解読、必要なデータの取出し、実行という順を意識します。たとえば数字を一桁ずつ十進数に変換する処理では、途中値をv、新しい桁をxとすると、新しい値は10v+xです。2vを作り、その値を複製して一方を8倍すれば、2v+8v+x=10v+xになります。これはシフトと加算を組み合わせる考え方の例です。過年度の午後問題に登場したアセンブラや命令表記は、レジスタや命令実行を具体的に追う基礎例として読めます。

この節の続き

ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。

アプリでこの節を読む