Contents
【問題】
【難易度】★★★★☆(やや難しい)
次の文章は,プロセッサ高速化のためのアーキテクチャに関する記述である。文中の\( \ \fbox{$\hskip3em\Rule{0pt}{0.8em}{0em}$} \ \)に当てはまる最も適切なものを解答群の中から選べ。
\( \ \mathrm {RISC} \ \)は,機能の単純な機械命令でかつ命令種別を削減してハードウェア量を少なくすることを目的とし,処理を行うための命令数は\( \ \fbox { (1) } \ \)ものの動作周波数の向上が図れるコンピュータアーキテクチャである。この方式は\( \ 1 \ \)命令を\( \ 1 \ \)クロックで実行することができるが,実際は\( \ 1 \ \)命令を複数のステージに分割し,\( \ \fbox { (2) } \ \)を用い,流れ作業のように処理を行うことで,見掛け上の\( \ 1 \ \)クロックごとでの命令実行を可能としている。
しかし\( \ \fbox { (2) } \ \)では,命令間に依存関係がある場合は,先の命令が完了してからでないと次の命令が実行できなくなる。このような現象で,先行命令が更新したレジスタの内容を後続命令が使うため,先行命令の演算結果が格納されるまで後続命令が開始できない状態を\( \ \fbox { (3) } \ \)ハザードという。
\( \ \fbox { (2) } \ \)を発展させたものとして,各ステージのハードウェアを複数準備し,引き続く命令を並列処理する\( \ \fbox { (4) } \ \)があり,更に処理が高速となる。
\( \ \fbox { (3) } \ \)ハザードを改善する手法として,プログラムに記述されている順序では後続の命令であっても,先行命令に対して依存関係がないときは,処理に必要なデータが整って実行可能となった段階で命令を実行させる\( \ \fbox { (5) } \ \)実行がある。この場合,命令列への正確な割り込み処理が要求される組み込み用途のプロセッサでは,先に終わった後続命令の結果をバッファに保持し,レジスタの更新はプログラム記述順に行うなどの対策が必要となる。
〔問8の解答群〕
\[
\begin{eqnarray}
&(イ)& アウトオブオーダ &(ロ)& 制 御 &(ハ)& 命令パイプライン \\[ 5pt ]
&(ニ)& 多くなる &(ホ)& 投 機 &(ヘ)& データ \\[ 5pt ]
&(ト)& 構 造 &(チ)& スーパスカラ &(リ)& 分岐予測 \\[ 5pt ]
&(ヌ)& キャッシュメモリ &(ル)& 命令スケジューリング &(ヲ)& フォワーディング \\[ 5pt ]
&(ワ)& 少なくなる &(カ)& 変わらない &(ヨ)& デュアルポート
\end{eqnarray}
\]
【ワンポイント解説】
ほとんどの受験生が選択しないと思われるコンピュータの問題です。プロセッサ高速化のためのアーキテクチャとしては,本問の\( \ \mathrm {RISC} \ \)の他に\( \ \mathrm {CISC} \ \)があります。興味のある方はネットで検索してみて下さい。
【解答】
(1)解答:ニ
解答候補は(ニ)多くなる,(ワ)少なくなる,(カ)変わらない,ですが,\( \ \mathrm {RISC} \ \)は複雑な命令を分割し,並列に実行するために,全体の命令数は多くなります。
(2)解答:ハ
1命令を複数のステージに分割し流れ作業のように処理を行うことを命令パイプラインと言います。
(3)解答:ヘ
先行命令が更新したレジスタの内容を後続命令が使うため,先行命令の演算結果が格納されるまで後続命令が開始できない状態をデータハザードと言います。
(4)解答:チ
命令パイプラインを発展させたものとして,各ステージのハードウェアを複数準備し,引き続く命令を並列処理するものをスーパスカラと言います。
(5)解答:イ
プログラムに記述されている順序では後続の命令であっても,先行命令に対して依存関係がないときは,処理に必要なデータが整って実行可能となった段階で命令を実行させるものをアウトオブオーダ実行と呼びます。