next up previous
: [問題] 第二回の演習問題 : マイクロプロセッサ演習 : マイクロプロセッサ演習

はじめに

今回は「コンピュータの性能評価」という内容を取り扱うが、 その内容に関連する Web ページを紹介する。 「CPU の性能をクロック周波数だけで評価するのは妥当か」という内容である。

AMD、Athlon1.5GHz でメガヘルツ神話打倒キャンペーン (2001/8 ITMedia)
Intelも脱クロック偏重 (2004/3 ITMedia)

さて、今回の演習を行うための予備知識を以下で説明しておこう。 前回説明したように、C 言語で書かれたプログラムをコンパイルすると アセンブリ言語で書かれたプログラムが出力される。 その様子を図 1 に示した。

図 1: C 言語からアセンブリ言語へのコンパイル
\begin{figure}\begin{center}\epsfxsize =8cm \epsfbox{compile.eps}\end{center}\end{figure}
このとき、アセンブリ言語で書かれたプログラムは図にあるように 命令の列として表現される。

この命令が CPU によって一命令づつ実行されることになる [1]。 C 言語による表現に比べ、アセンブリ言語でのプログラムは非常に 冗長になっていることに注意しよう。これは CPU の振舞いを 逐一記述しているためである。

ある CPU で定義されている命令を集めたものはその CPU の命令セット と呼ばれる。 CPU によって命令セットは異なるため、アセンブリ言語の文法も各 CPU で異なる。本演習で扱うのは MIPS R2000 と呼ばれる CPU のアセンブリ言語である。 MIPS は RISC (Reduced Instruction Set Computer) 型の CPU の一つであり、 その構造もシンプルであるため学習には適している。

また、CPU には「クロック」と呼ばれるものがあり、 クロックに同期して命令が実行される。このとき、 図2のように一命令の実行ごとに複数のクロックがかかるのが普通である [2]。

図 2: クロックに同期した命令の実行
\begin{figure}\begin{center}\epsfxsize =8cm \epsfbox{clock.eps}\end{center}\end{figure}

また、一命令を実行するのに必要なクロック数の平均値を CPI (clock cycle per instruction) と呼ぶ。

最後に、以下の問題を解くためのヒントを図 3 に載せる。

図 3: 性能評価に関する公式 (ヒント)
\begin{figure*}\begin{center}
\epsfbox{efficiency.eps}\end{center}\end{figure*}


平成16年10月8日